/*===- 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.

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

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

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

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

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

#ifdef GET_DAGISEL_DECL
void SelectCode(SDNode *N);
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
void DAGISEL_CLASS_COLONCOLON SelectCode(SDNode *N)
{
  // Some target values are emitted as 2 bytes, TARGET_VAL handles
  // this.
  #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
  static const unsigned char MatcherTable[] = {
/*     0*/  OPC_SwitchOpcode /*387 cases */, 116|128,11|128,1/*17908*/, TARGET_VAL(ISD::STORE),// ->17914
/*     6*/    OPC_RecordMemRef,
/*     7*/    OPC_RecordNode, // #0 = 'st' chained node
/*     8*/    OPC_Scope, 119|128,7/*1015*/, /*->1026*/ // 9 children in Scope
/*    11*/      OPC_RecordChild1, // #1 = $src
/*    12*/      OPC_Scope, 67, /*->81*/ // 22 children in Scope
/*    14*/        OPC_CheckChild1Type, MVT::v4f32,
/*    16*/        OPC_RecordChild2, // #2 = $dst
/*    17*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*    19*/        OPC_CheckPredicate, 1, // Predicate_store
/*    21*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*    23*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*    25*/        OPC_Scope, 17, /*->44*/ // 3 children in Scope
/*    27*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*    29*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*    32*/          OPC_EmitMergeInputChains1_0,
/*    33*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v4f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4f32] }:$src)
/*    44*/        /*Scope*/ 17, /*->62*/
/*    45*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*    47*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*    50*/          OPC_EmitMergeInputChains1_0,
/*    51*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVNTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v4f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (MOVNTPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4f32] }:$src)
/*    62*/        /*Scope*/ 17, /*->80*/
/*    63*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*    65*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*    68*/          OPC_EmitMergeInputChains1_0,
/*    69*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v4f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTPSZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4f32] }:$src)
/*    80*/        0, /*End of Scope*/
/*    81*/      /*Scope*/ 67, /*->149*/
/*    82*/        OPC_CheckChild1Type, MVT::v2f64,
/*    84*/        OPC_RecordChild2, // #2 = $dst
/*    85*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*    87*/        OPC_CheckPredicate, 1, // Predicate_store
/*    89*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*    91*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*    93*/        OPC_Scope, 17, /*->112*/ // 3 children in Scope
/*    95*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*    97*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   100*/          OPC_EmitMergeInputChains1_0,
/*   101*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v2f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTPDmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2f64] }:$src)
/*   112*/        /*Scope*/ 17, /*->130*/
/*   113*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*   115*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   118*/          OPC_EmitMergeInputChains1_0,
/*   119*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVNTPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v2f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (MOVNTPDmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2f64] }:$src)
/*   130*/        /*Scope*/ 17, /*->148*/
/*   131*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*   133*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   136*/          OPC_EmitMergeInputChains1_0,
/*   137*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v2f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTPDZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2f64] }:$src)
/*   148*/        0, /*End of Scope*/
/*   149*/      /*Scope*/ 49, /*->199*/
/*   150*/        OPC_CheckChild1Type, MVT::v8f32,
/*   152*/        OPC_RecordChild2, // #2 = $dst
/*   153*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   155*/        OPC_CheckPredicate, 1, // Predicate_store
/*   157*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   159*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   161*/        OPC_Scope, 17, /*->180*/ // 2 children in Scope
/*   163*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   165*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   168*/          OPC_EmitMergeInputChains1_0,
/*   169*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256:{ *:[v8f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTPSYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8f32] }:$src)
/*   180*/        /*Scope*/ 17, /*->198*/
/*   181*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*   183*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   186*/          OPC_EmitMergeInputChains1_0,
/*   187*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTPSZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v8f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTPSZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8f32] }:$src)
/*   198*/        0, /*End of Scope*/
/*   199*/      /*Scope*/ 49, /*->249*/
/*   200*/        OPC_CheckChild1Type, MVT::v4f64,
/*   202*/        OPC_RecordChild2, // #2 = $dst
/*   203*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   205*/        OPC_CheckPredicate, 1, // Predicate_store
/*   207*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   209*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   211*/        OPC_Scope, 17, /*->230*/ // 2 children in Scope
/*   213*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   215*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   218*/          OPC_EmitMergeInputChains1_0,
/*   219*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256:{ *:[v4f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTPDYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4f64] }:$src)
/*   230*/        /*Scope*/ 17, /*->248*/
/*   231*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*   233*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   236*/          OPC_EmitMergeInputChains1_0,
/*   237*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTPDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v4f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTPDZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4f64] }:$src)
/*   248*/        0, /*End of Scope*/
/*   249*/      /*Scope*/ 67, /*->317*/
/*   250*/        OPC_CheckChild1Type, MVT::v2i64,
/*   252*/        OPC_RecordChild2, // #2 = $dst
/*   253*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   255*/        OPC_CheckPredicate, 1, // Predicate_store
/*   257*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   259*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   261*/        OPC_Scope, 17, /*->280*/ // 3 children in Scope
/*   263*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   265*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   268*/          OPC_EmitMergeInputChains1_0,
/*   269*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src)
/*   280*/        /*Scope*/ 17, /*->298*/
/*   281*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*   283*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   286*/          OPC_EmitMergeInputChains1_0,
/*   287*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (MOVNTDQmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src)
/*   298*/        /*Scope*/ 17, /*->316*/
/*   299*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*   301*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   304*/          OPC_EmitMergeInputChains1_0,
/*   305*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/*   316*/        0, /*End of Scope*/
/*   317*/      /*Scope*/ 49, /*->367*/
/*   318*/        OPC_CheckChild1Type, MVT::v4i64,
/*   320*/        OPC_RecordChild2, // #2 = $dst
/*   321*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   323*/        OPC_CheckPredicate, 1, // Predicate_store
/*   325*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   327*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   329*/        OPC_Scope, 17, /*->348*/ // 2 children in Scope
/*   331*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   333*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   336*/          OPC_EmitMergeInputChains1_0,
/*   337*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src)
/*   348*/        /*Scope*/ 17, /*->366*/
/*   349*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*   351*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   354*/          OPC_EmitMergeInputChains1_0,
/*   355*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/*   366*/        0, /*End of Scope*/
/*   367*/      /*Scope*/ 26, /*->394*/
/*   368*/        OPC_CheckChild1Type, MVT::i32,
/*   370*/        OPC_RecordChild2, // #2 = $dst
/*   371*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   373*/        OPC_CheckPredicate, 1, // Predicate_store
/*   375*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   377*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasSSE2())
/*   379*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   382*/        OPC_EmitMergeInputChains1_0,
/*   383*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOVNTImr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st GR32:{ *:[i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 422
                  // Dst: (MOVNTImr addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/*   394*/      /*Scope*/ 26, /*->421*/
/*   395*/        OPC_CheckChild1Type, MVT::i64,
/*   397*/        OPC_RecordChild2, // #2 = $dst
/*   398*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   400*/        OPC_CheckPredicate, 1, // Predicate_store
/*   402*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   404*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasSSE2())
/*   406*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   409*/        OPC_EmitMergeInputChains1_0,
/*   410*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOVNTI_64mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st GR64:{ *:[i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 422
                  // Dst: (MOVNTI_64mr addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/*   421*/      /*Scope*/ 49, /*->471*/
/*   422*/        OPC_CheckChild1Type, MVT::v8i32,
/*   424*/        OPC_RecordChild2, // #2 = $dst
/*   425*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   427*/        OPC_CheckPredicate, 1, // Predicate_store
/*   429*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   431*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   433*/        OPC_Scope, 17, /*->452*/ // 2 children in Scope
/*   435*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   437*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   440*/          OPC_EmitMergeInputChains1_0,
/*   441*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src)
/*   452*/        /*Scope*/ 17, /*->470*/
/*   453*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   455*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   458*/          OPC_EmitMergeInputChains1_0,
/*   459*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8i32] }:$src)
/*   470*/        0, /*End of Scope*/
/*   471*/      /*Scope*/ 49, /*->521*/
/*   472*/        OPC_CheckChild1Type, MVT::v16i16,
/*   474*/        OPC_RecordChild2, // #2 = $dst
/*   475*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   477*/        OPC_CheckPredicate, 1, // Predicate_store
/*   479*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   481*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   483*/        OPC_Scope, 17, /*->502*/ // 2 children in Scope
/*   485*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   487*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   490*/          OPC_EmitMergeInputChains1_0,
/*   491*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v16i16] }:$src)
/*   502*/        /*Scope*/ 17, /*->520*/
/*   503*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   505*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   508*/          OPC_EmitMergeInputChains1_0,
/*   509*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v16i16] }:$src)
/*   520*/        0, /*End of Scope*/
/*   521*/      /*Scope*/ 49, /*->571*/
/*   522*/        OPC_CheckChild1Type, MVT::v32i8,
/*   524*/        OPC_RecordChild2, // #2 = $dst
/*   525*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   527*/        OPC_CheckPredicate, 1, // Predicate_store
/*   529*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   531*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   533*/        OPC_Scope, 17, /*->552*/ // 2 children in Scope
/*   535*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   537*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   540*/          OPC_EmitMergeInputChains1_0,
/*   541*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256:{ *:[v32i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v32i8] }:$src)
/*   552*/        /*Scope*/ 17, /*->570*/
/*   553*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   555*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   558*/          OPC_EmitMergeInputChains1_0,
/*   559*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v32i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v32i8] }:$src)
/*   570*/        0, /*End of Scope*/
/*   571*/      /*Scope*/ 67, /*->639*/
/*   572*/        OPC_CheckChild1Type, MVT::v4i32,
/*   574*/        OPC_RecordChild2, // #2 = $dst
/*   575*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   577*/        OPC_CheckPredicate, 1, // Predicate_store
/*   579*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   581*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   583*/        OPC_Scope, 17, /*->602*/ // 3 children in Scope
/*   585*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   587*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   590*/          OPC_EmitMergeInputChains1_0,
/*   591*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src)
/*   602*/        /*Scope*/ 17, /*->620*/
/*   603*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*   605*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   608*/          OPC_EmitMergeInputChains1_0,
/*   609*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (MOVNTDQmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src)
/*   620*/        /*Scope*/ 17, /*->638*/
/*   621*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   623*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   626*/          OPC_EmitMergeInputChains1_0,
/*   627*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4i32] }:$src)
/*   638*/        0, /*End of Scope*/
/*   639*/      /*Scope*/ 67, /*->707*/
/*   640*/        OPC_CheckChild1Type, MVT::v8i16,
/*   642*/        OPC_RecordChild2, // #2 = $dst
/*   643*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   645*/        OPC_CheckPredicate, 1, // Predicate_store
/*   647*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   649*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   651*/        OPC_Scope, 17, /*->670*/ // 3 children in Scope
/*   653*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   655*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   658*/          OPC_EmitMergeInputChains1_0,
/*   659*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v8i16] }:$src)
/*   670*/        /*Scope*/ 17, /*->688*/
/*   671*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*   673*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   676*/          OPC_EmitMergeInputChains1_0,
/*   677*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (MOVNTDQmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v8i16] }:$src)
/*   688*/        /*Scope*/ 17, /*->706*/
/*   689*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   691*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   694*/          OPC_EmitMergeInputChains1_0,
/*   695*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v8i16] }:$src)
/*   706*/        0, /*End of Scope*/
/*   707*/      /*Scope*/ 67, /*->775*/
/*   708*/        OPC_CheckChild1Type, MVT::v16i8,
/*   710*/        OPC_RecordChild2, // #2 = $dst
/*   711*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   713*/        OPC_CheckPredicate, 1, // Predicate_store
/*   715*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   717*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   719*/        OPC_Scope, 17, /*->738*/ // 3 children in Scope
/*   721*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   723*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   726*/          OPC_EmitMergeInputChains1_0,
/*   727*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v16i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v16i8] }:$src)
/*   738*/        /*Scope*/ 17, /*->756*/
/*   739*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*   741*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   744*/          OPC_EmitMergeInputChains1_0,
/*   745*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[v16i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (MOVNTDQmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v16i8] }:$src)
/*   756*/        /*Scope*/ 17, /*->774*/
/*   757*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   759*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   762*/          OPC_EmitMergeInputChains1_0,
/*   763*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v16i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v16i8] }:$src)
/*   774*/        0, /*End of Scope*/
/*   775*/      /*Scope*/ 28, /*->804*/
/*   776*/        OPC_CheckChild1Type, MVT::v8i64,
/*   778*/        OPC_RecordChild2, // #2 = $dst
/*   779*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   781*/        OPC_CheckPredicate, 1, // Predicate_store
/*   783*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   785*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   787*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   789*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   792*/        OPC_EmitMergeInputChains1_0,
/*   793*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (VMOVNTDQZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/*   804*/      /*Scope*/ 28, /*->833*/
/*   805*/        OPC_CheckChild1Type, MVT::v8f64,
/*   807*/        OPC_RecordChild2, // #2 = $dst
/*   808*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   810*/        OPC_CheckPredicate, 1, // Predicate_store
/*   812*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   814*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   816*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   818*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   821*/        OPC_EmitMergeInputChains1_0,
/*   822*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTPDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR512:{ *:[v8f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (VMOVNTPDZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8f64] }:$src)
/*   833*/      /*Scope*/ 28, /*->862*/
/*   834*/        OPC_CheckChild1Type, MVT::v16f32,
/*   836*/        OPC_RecordChild2, // #2 = $dst
/*   837*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   839*/        OPC_CheckPredicate, 1, // Predicate_store
/*   841*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   843*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   845*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   847*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   850*/        OPC_EmitMergeInputChains1_0,
/*   851*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTPSZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR512:{ *:[v16f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (VMOVNTPSZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16f32] }:$src)
/*   862*/      /*Scope*/ 28, /*->891*/
/*   863*/        OPC_CheckChild1Type, MVT::v16i32,
/*   865*/        OPC_RecordChild2, // #2 = $dst
/*   866*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   868*/        OPC_CheckPredicate, 1, // Predicate_store
/*   870*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   872*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   874*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   876*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   879*/        OPC_EmitMergeInputChains1_0,
/*   880*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (VMOVNTDQZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src)
/*   891*/      /*Scope*/ 28, /*->920*/
/*   892*/        OPC_CheckChild1Type, MVT::v32i16,
/*   894*/        OPC_RecordChild2, // #2 = $dst
/*   895*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   897*/        OPC_CheckPredicate, 1, // Predicate_store
/*   899*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   901*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   903*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   905*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   908*/        OPC_EmitMergeInputChains1_0,
/*   909*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR512:{ *:[v32i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (VMOVNTDQZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v32i16] }:$src)
/*   920*/      /*Scope*/ 28, /*->949*/
/*   921*/        OPC_CheckChild1Type, MVT::v64i8,
/*   923*/        OPC_RecordChild2, // #2 = $dst
/*   924*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   926*/        OPC_CheckPredicate, 1, // Predicate_store
/*   928*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   930*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   932*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   934*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   937*/        OPC_EmitMergeInputChains1_0,
/*   938*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVNTDQZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR512:{ *:[v64i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>><<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (VMOVNTDQZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v64i8] }:$src)
/*   949*/      /*Scope*/ 37, /*->987*/
/*   950*/        OPC_CheckChild1Type, MVT::f32,
/*   952*/        OPC_RecordChild2, // #2 = $dst
/*   953*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   955*/        OPC_CheckPredicate, 1, // Predicate_store
/*   957*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   959*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/*   961*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   964*/        OPC_EmitMergeInputChains1_0,
/*   965*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*   968*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 8,  // Results = #9
/*   976*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOVNTSS), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                  // Src: (st FR32:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 422
                  // Dst: (MOVNTSS addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*   987*/      /*Scope*/ 37, /*->1025*/
/*   988*/        OPC_CheckChild1Type, MVT::f64,
/*   990*/        OPC_RecordChild2, // #2 = $dst
/*   991*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   993*/        OPC_CheckPredicate, 1, // Predicate_store
/*   995*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   997*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/*   999*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1002*/        OPC_EmitMergeInputChains1_0,
/*  1003*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*  1006*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f64, 2/*#Ops*/, 1, 8,  // Results = #9
/*  1014*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOVNTSD), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                  // Src: (st FR64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 422
                  // Dst: (MOVNTSD addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*  1025*/      0, /*End of Scope*/
/*  1026*/    /*Scope*/ 86|128,96/*12374*/, /*->13402*/
/*  1028*/      OPC_MoveChild1,
/*  1029*/      OPC_SwitchOpcode /*19 cases */, 30|128,5/*670*/, TARGET_VAL(ISD::SHL),// ->1704
/*  1034*/        OPC_MoveChild0,
/*  1035*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  1038*/        OPC_RecordMemRef,
/*  1039*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  1040*/        OPC_CheckFoldableChainNode,
/*  1041*/        OPC_RecordChild1, // #2 = $dst
/*  1042*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  1044*/        OPC_Scope, 48, /*->1094*/ // 16 children in Scope
/*  1046*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1048*/          OPC_MoveParent,
/*  1049*/          OPC_MoveChild1,
/*  1050*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1053*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1054*/          OPC_MoveChild1,
/*  1055*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1058*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*  1060*/          OPC_MoveParent,
/*  1061*/          OPC_CheckType, MVT::i8,
/*  1063*/          OPC_MoveParent,
/*  1064*/          OPC_CheckType, MVT::i8,
/*  1066*/          OPC_MoveParent,
/*  1067*/          OPC_CheckChild2Same, 2,
/*  1069*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1071*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1073*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1076*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1080*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1083*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (shl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHL8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1094*/        /*Scope*/ 48, /*->1143*/
/*  1095*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1097*/          OPC_MoveParent,
/*  1098*/          OPC_MoveChild1,
/*  1099*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1102*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1103*/          OPC_MoveChild1,
/*  1104*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1107*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*  1109*/          OPC_MoveParent,
/*  1110*/          OPC_CheckType, MVT::i8,
/*  1112*/          OPC_MoveParent,
/*  1113*/          OPC_CheckType, MVT::i16,
/*  1115*/          OPC_MoveParent,
/*  1116*/          OPC_CheckChild2Same, 2,
/*  1118*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1120*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1122*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1125*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1129*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1132*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHL16mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1143*/        /*Scope*/ 48, /*->1192*/
/*  1144*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1146*/          OPC_MoveParent,
/*  1147*/          OPC_MoveChild1,
/*  1148*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1151*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1152*/          OPC_MoveChild1,
/*  1153*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1156*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*  1158*/          OPC_MoveParent,
/*  1159*/          OPC_CheckType, MVT::i8,
/*  1161*/          OPC_MoveParent,
/*  1162*/          OPC_CheckType, MVT::i32,
/*  1164*/          OPC_MoveParent,
/*  1165*/          OPC_CheckChild2Same, 2,
/*  1167*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1169*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1171*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1174*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1178*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1181*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHL32mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1192*/        /*Scope*/ 48, /*->1241*/
/*  1193*/          OPC_CheckPredicate, 9, // Predicate_load
/*  1195*/          OPC_MoveParent,
/*  1196*/          OPC_MoveChild1,
/*  1197*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1200*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1201*/          OPC_MoveChild1,
/*  1202*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1205*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/*  1207*/          OPC_MoveParent,
/*  1208*/          OPC_CheckType, MVT::i8,
/*  1210*/          OPC_MoveParent,
/*  1211*/          OPC_CheckType, MVT::i64,
/*  1213*/          OPC_MoveParent,
/*  1214*/          OPC_CheckChild2Same, 2,
/*  1216*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1218*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1220*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1223*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1227*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1230*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHL64mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1241*/        /*Scope*/ 34, /*->1276*/
/*  1242*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1244*/          OPC_MoveParent,
/*  1245*/          OPC_CheckChild1Integer, 1, 
/*  1247*/          OPC_CheckChild1Type, MVT::i8,
/*  1249*/          OPC_CheckType, MVT::i8,
/*  1251*/          OPC_MoveParent,
/*  1252*/          OPC_CheckChild2Same, 2,
/*  1254*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1256*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1258*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1261*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1265*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (shl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, 1:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (SHL8m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1276*/        /*Scope*/ 34, /*->1311*/
/*  1277*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1279*/          OPC_MoveParent,
/*  1280*/          OPC_CheckChild1Integer, 1, 
/*  1282*/          OPC_CheckChild1Type, MVT::i8,
/*  1284*/          OPC_CheckType, MVT::i16,
/*  1286*/          OPC_MoveParent,
/*  1287*/          OPC_CheckChild2Same, 2,
/*  1289*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1291*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1293*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1296*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1300*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL16m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  1311*/        /*Scope*/ 34, /*->1346*/
/*  1312*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1314*/          OPC_MoveParent,
/*  1315*/          OPC_CheckChild1Integer, 1, 
/*  1317*/          OPC_CheckChild1Type, MVT::i8,
/*  1319*/          OPC_CheckType, MVT::i32,
/*  1321*/          OPC_MoveParent,
/*  1322*/          OPC_CheckChild2Same, 2,
/*  1324*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1326*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1328*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1331*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1335*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL32m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  1346*/        /*Scope*/ 36, /*->1383*/
/*  1347*/          OPC_CheckPredicate, 9, // Predicate_load
/*  1349*/          OPC_MoveParent,
/*  1350*/          OPC_CheckChild1Integer, 1, 
/*  1352*/          OPC_CheckChild1Type, MVT::i8,
/*  1354*/          OPC_CheckType, MVT::i64,
/*  1356*/          OPC_MoveParent,
/*  1357*/          OPC_CheckChild2Same, 2,
/*  1359*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1361*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1363*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  1365*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1368*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1372*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  1383*/        /*Scope*/ 41, /*->1425*/
/*  1384*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1386*/          OPC_MoveParent,
/*  1387*/          OPC_RecordChild1, // #3 = $src
/*  1388*/          OPC_MoveChild1,
/*  1389*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1392*/          OPC_CheckType, MVT::i8,
/*  1394*/          OPC_MoveParent,
/*  1395*/          OPC_CheckType, MVT::i8,
/*  1397*/          OPC_MoveParent,
/*  1398*/          OPC_CheckChild2Same, 2,
/*  1400*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1402*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1404*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1407*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1411*/          OPC_EmitConvertToTarget, 3,
/*  1413*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (shl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, (imm:{ *:[i8] }):$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (SHL8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/*  1425*/        /*Scope*/ 41, /*->1467*/
/*  1426*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1428*/          OPC_MoveParent,
/*  1429*/          OPC_RecordChild1, // #3 = $src
/*  1430*/          OPC_MoveChild1,
/*  1431*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1434*/          OPC_CheckType, MVT::i8,
/*  1436*/          OPC_MoveParent,
/*  1437*/          OPC_CheckType, MVT::i16,
/*  1439*/          OPC_MoveParent,
/*  1440*/          OPC_CheckChild2Same, 2,
/*  1442*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1444*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1446*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1449*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1453*/          OPC_EmitConvertToTarget, 3,
/*  1455*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  1467*/        /*Scope*/ 41, /*->1509*/
/*  1468*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1470*/          OPC_MoveParent,
/*  1471*/          OPC_RecordChild1, // #3 = $src
/*  1472*/          OPC_MoveChild1,
/*  1473*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1476*/          OPC_CheckType, MVT::i8,
/*  1478*/          OPC_MoveParent,
/*  1479*/          OPC_CheckType, MVT::i32,
/*  1481*/          OPC_MoveParent,
/*  1482*/          OPC_CheckChild2Same, 2,
/*  1484*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1486*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1488*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1491*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1495*/          OPC_EmitConvertToTarget, 3,
/*  1497*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  1509*/        /*Scope*/ 43, /*->1553*/
/*  1510*/          OPC_CheckPredicate, 9, // Predicate_load
/*  1512*/          OPC_MoveParent,
/*  1513*/          OPC_RecordChild1, // #3 = $src
/*  1514*/          OPC_MoveChild1,
/*  1515*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1518*/          OPC_CheckType, MVT::i8,
/*  1520*/          OPC_MoveParent,
/*  1521*/          OPC_CheckType, MVT::i64,
/*  1523*/          OPC_MoveParent,
/*  1524*/          OPC_CheckChild2Same, 2,
/*  1526*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1528*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1530*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  1532*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1535*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1539*/          OPC_EmitConvertToTarget, 3,
/*  1541*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  1553*/        /*Scope*/ 36, /*->1590*/
/*  1554*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1556*/          OPC_MoveParent,
/*  1557*/          OPC_RecordChild1, // #3 = physreg input CL
/*  1558*/          OPC_CheckChild1Type, MVT::i8,
/*  1560*/          OPC_CheckType, MVT::i8,
/*  1562*/          OPC_MoveParent,
/*  1563*/          OPC_CheckChild2Same, 2,
/*  1565*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1567*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1569*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1572*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1576*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1579*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (shl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, CL:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SHL8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1590*/        /*Scope*/ 36, /*->1627*/
/*  1591*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1593*/          OPC_MoveParent,
/*  1594*/          OPC_RecordChild1, // #3 = physreg input CL
/*  1595*/          OPC_CheckChild1Type, MVT::i8,
/*  1597*/          OPC_CheckType, MVT::i16,
/*  1599*/          OPC_MoveParent,
/*  1600*/          OPC_CheckChild2Same, 2,
/*  1602*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1604*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1606*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1609*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1613*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1616*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  1627*/        /*Scope*/ 36, /*->1664*/
/*  1628*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1630*/          OPC_MoveParent,
/*  1631*/          OPC_RecordChild1, // #3 = physreg input CL
/*  1632*/          OPC_CheckChild1Type, MVT::i8,
/*  1634*/          OPC_CheckType, MVT::i32,
/*  1636*/          OPC_MoveParent,
/*  1637*/          OPC_CheckChild2Same, 2,
/*  1639*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1641*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1643*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1646*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1650*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1653*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  1664*/        /*Scope*/ 38, /*->1703*/
/*  1665*/          OPC_CheckPredicate, 9, // Predicate_load
/*  1667*/          OPC_MoveParent,
/*  1668*/          OPC_RecordChild1, // #3 = physreg input CL
/*  1669*/          OPC_CheckChild1Type, MVT::i8,
/*  1671*/          OPC_CheckType, MVT::i64,
/*  1673*/          OPC_MoveParent,
/*  1674*/          OPC_CheckChild2Same, 2,
/*  1676*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1678*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1680*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  1682*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1685*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1689*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1692*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHL64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  1703*/        0, /*End of Scope*/
/*  1704*/      /*SwitchOpcode*/ 30|128,5/*670*/, TARGET_VAL(ISD::SRL),// ->2378
/*  1708*/        OPC_MoveChild0,
/*  1709*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  1712*/        OPC_RecordMemRef,
/*  1713*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  1714*/        OPC_CheckFoldableChainNode,
/*  1715*/        OPC_RecordChild1, // #2 = $dst
/*  1716*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  1718*/        OPC_Scope, 48, /*->1768*/ // 16 children in Scope
/*  1720*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1722*/          OPC_MoveParent,
/*  1723*/          OPC_MoveChild1,
/*  1724*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1727*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1728*/          OPC_MoveChild1,
/*  1729*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1732*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*  1734*/          OPC_MoveParent,
/*  1735*/          OPC_CheckType, MVT::i8,
/*  1737*/          OPC_MoveParent,
/*  1738*/          OPC_CheckType, MVT::i8,
/*  1740*/          OPC_MoveParent,
/*  1741*/          OPC_CheckChild2Same, 2,
/*  1743*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1745*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1747*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1750*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1754*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1757*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (srl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHR8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1768*/        /*Scope*/ 48, /*->1817*/
/*  1769*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1771*/          OPC_MoveParent,
/*  1772*/          OPC_MoveChild1,
/*  1773*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1776*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1777*/          OPC_MoveChild1,
/*  1778*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1781*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*  1783*/          OPC_MoveParent,
/*  1784*/          OPC_CheckType, MVT::i8,
/*  1786*/          OPC_MoveParent,
/*  1787*/          OPC_CheckType, MVT::i16,
/*  1789*/          OPC_MoveParent,
/*  1790*/          OPC_CheckChild2Same, 2,
/*  1792*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1794*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1796*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1799*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1803*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1806*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHR16mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1817*/        /*Scope*/ 48, /*->1866*/
/*  1818*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1820*/          OPC_MoveParent,
/*  1821*/          OPC_MoveChild1,
/*  1822*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1825*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1826*/          OPC_MoveChild1,
/*  1827*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1830*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*  1832*/          OPC_MoveParent,
/*  1833*/          OPC_CheckType, MVT::i8,
/*  1835*/          OPC_MoveParent,
/*  1836*/          OPC_CheckType, MVT::i32,
/*  1838*/          OPC_MoveParent,
/*  1839*/          OPC_CheckChild2Same, 2,
/*  1841*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1843*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1845*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1848*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1852*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1855*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHR32mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1866*/        /*Scope*/ 48, /*->1915*/
/*  1867*/          OPC_CheckPredicate, 9, // Predicate_load
/*  1869*/          OPC_MoveParent,
/*  1870*/          OPC_MoveChild1,
/*  1871*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1874*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1875*/          OPC_MoveChild1,
/*  1876*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1879*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/*  1881*/          OPC_MoveParent,
/*  1882*/          OPC_CheckType, MVT::i8,
/*  1884*/          OPC_MoveParent,
/*  1885*/          OPC_CheckType, MVT::i64,
/*  1887*/          OPC_MoveParent,
/*  1888*/          OPC_CheckChild2Same, 2,
/*  1890*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1892*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1894*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1897*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1901*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1904*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHR64mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1915*/        /*Scope*/ 34, /*->1950*/
/*  1916*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1918*/          OPC_MoveParent,
/*  1919*/          OPC_CheckChild1Integer, 1, 
/*  1921*/          OPC_CheckChild1Type, MVT::i8,
/*  1923*/          OPC_CheckType, MVT::i8,
/*  1925*/          OPC_MoveParent,
/*  1926*/          OPC_CheckChild2Same, 2,
/*  1928*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1930*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1932*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1935*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1939*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (srl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, 1:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (SHR8m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1950*/        /*Scope*/ 34, /*->1985*/
/*  1951*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1953*/          OPC_MoveParent,
/*  1954*/          OPC_CheckChild1Integer, 1, 
/*  1956*/          OPC_CheckChild1Type, MVT::i8,
/*  1958*/          OPC_CheckType, MVT::i16,
/*  1960*/          OPC_MoveParent,
/*  1961*/          OPC_CheckChild2Same, 2,
/*  1963*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1965*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1967*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1970*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1974*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR16m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  1985*/        /*Scope*/ 34, /*->2020*/
/*  1986*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1988*/          OPC_MoveParent,
/*  1989*/          OPC_CheckChild1Integer, 1, 
/*  1991*/          OPC_CheckChild1Type, MVT::i8,
/*  1993*/          OPC_CheckType, MVT::i32,
/*  1995*/          OPC_MoveParent,
/*  1996*/          OPC_CheckChild2Same, 2,
/*  1998*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2000*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2002*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2005*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2009*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR32m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  2020*/        /*Scope*/ 36, /*->2057*/
/*  2021*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2023*/          OPC_MoveParent,
/*  2024*/          OPC_CheckChild1Integer, 1, 
/*  2026*/          OPC_CheckChild1Type, MVT::i8,
/*  2028*/          OPC_CheckType, MVT::i64,
/*  2030*/          OPC_MoveParent,
/*  2031*/          OPC_CheckChild2Same, 2,
/*  2033*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2035*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2037*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  2039*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2042*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2046*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  2057*/        /*Scope*/ 41, /*->2099*/
/*  2058*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2060*/          OPC_MoveParent,
/*  2061*/          OPC_RecordChild1, // #3 = $src
/*  2062*/          OPC_MoveChild1,
/*  2063*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2066*/          OPC_CheckType, MVT::i8,
/*  2068*/          OPC_MoveParent,
/*  2069*/          OPC_CheckType, MVT::i8,
/*  2071*/          OPC_MoveParent,
/*  2072*/          OPC_CheckChild2Same, 2,
/*  2074*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2076*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2078*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2081*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2085*/          OPC_EmitConvertToTarget, 3,
/*  2087*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (srl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, (imm:{ *:[i8] }):$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (SHR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/*  2099*/        /*Scope*/ 41, /*->2141*/
/*  2100*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2102*/          OPC_MoveParent,
/*  2103*/          OPC_RecordChild1, // #3 = $src
/*  2104*/          OPC_MoveChild1,
/*  2105*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2108*/          OPC_CheckType, MVT::i8,
/*  2110*/          OPC_MoveParent,
/*  2111*/          OPC_CheckType, MVT::i16,
/*  2113*/          OPC_MoveParent,
/*  2114*/          OPC_CheckChild2Same, 2,
/*  2116*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2118*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2120*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2123*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2127*/          OPC_EmitConvertToTarget, 3,
/*  2129*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  2141*/        /*Scope*/ 41, /*->2183*/
/*  2142*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2144*/          OPC_MoveParent,
/*  2145*/          OPC_RecordChild1, // #3 = $src
/*  2146*/          OPC_MoveChild1,
/*  2147*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2150*/          OPC_CheckType, MVT::i8,
/*  2152*/          OPC_MoveParent,
/*  2153*/          OPC_CheckType, MVT::i32,
/*  2155*/          OPC_MoveParent,
/*  2156*/          OPC_CheckChild2Same, 2,
/*  2158*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2160*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2162*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2165*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2169*/          OPC_EmitConvertToTarget, 3,
/*  2171*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  2183*/        /*Scope*/ 43, /*->2227*/
/*  2184*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2186*/          OPC_MoveParent,
/*  2187*/          OPC_RecordChild1, // #3 = $src
/*  2188*/          OPC_MoveChild1,
/*  2189*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2192*/          OPC_CheckType, MVT::i8,
/*  2194*/          OPC_MoveParent,
/*  2195*/          OPC_CheckType, MVT::i64,
/*  2197*/          OPC_MoveParent,
/*  2198*/          OPC_CheckChild2Same, 2,
/*  2200*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2202*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2204*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  2206*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2209*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2213*/          OPC_EmitConvertToTarget, 3,
/*  2215*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  2227*/        /*Scope*/ 36, /*->2264*/
/*  2228*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2230*/          OPC_MoveParent,
/*  2231*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2232*/          OPC_CheckChild1Type, MVT::i8,
/*  2234*/          OPC_CheckType, MVT::i8,
/*  2236*/          OPC_MoveParent,
/*  2237*/          OPC_CheckChild2Same, 2,
/*  2239*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2241*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2243*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2246*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2250*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2253*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (srl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, CL:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SHR8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  2264*/        /*Scope*/ 36, /*->2301*/
/*  2265*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2267*/          OPC_MoveParent,
/*  2268*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2269*/          OPC_CheckChild1Type, MVT::i8,
/*  2271*/          OPC_CheckType, MVT::i16,
/*  2273*/          OPC_MoveParent,
/*  2274*/          OPC_CheckChild2Same, 2,
/*  2276*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2278*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2280*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2283*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2287*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2290*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  2301*/        /*Scope*/ 36, /*->2338*/
/*  2302*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2304*/          OPC_MoveParent,
/*  2305*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2306*/          OPC_CheckChild1Type, MVT::i8,
/*  2308*/          OPC_CheckType, MVT::i32,
/*  2310*/          OPC_MoveParent,
/*  2311*/          OPC_CheckChild2Same, 2,
/*  2313*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2315*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2317*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2320*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2324*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2327*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  2338*/        /*Scope*/ 38, /*->2377*/
/*  2339*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2341*/          OPC_MoveParent,
/*  2342*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2343*/          OPC_CheckChild1Type, MVT::i8,
/*  2345*/          OPC_CheckType, MVT::i64,
/*  2347*/          OPC_MoveParent,
/*  2348*/          OPC_CheckChild2Same, 2,
/*  2350*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2352*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2354*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  2356*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2359*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2363*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2366*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHR64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  2377*/        0, /*End of Scope*/
/*  2378*/      /*SwitchOpcode*/ 30|128,5/*670*/, TARGET_VAL(ISD::SRA),// ->3052
/*  2382*/        OPC_MoveChild0,
/*  2383*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  2386*/        OPC_RecordMemRef,
/*  2387*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  2388*/        OPC_CheckFoldableChainNode,
/*  2389*/        OPC_RecordChild1, // #2 = $dst
/*  2390*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  2392*/        OPC_Scope, 48, /*->2442*/ // 16 children in Scope
/*  2394*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2396*/          OPC_MoveParent,
/*  2397*/          OPC_MoveChild1,
/*  2398*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  2401*/          OPC_RecordChild0, // #3 = physreg input CL
/*  2402*/          OPC_MoveChild1,
/*  2403*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2406*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*  2408*/          OPC_MoveParent,
/*  2409*/          OPC_CheckType, MVT::i8,
/*  2411*/          OPC_MoveParent,
/*  2412*/          OPC_CheckType, MVT::i8,
/*  2414*/          OPC_MoveParent,
/*  2415*/          OPC_CheckChild2Same, 2,
/*  2417*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2419*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2421*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2424*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2428*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2431*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (sra:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SAR8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  2442*/        /*Scope*/ 48, /*->2491*/
/*  2443*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2445*/          OPC_MoveParent,
/*  2446*/          OPC_MoveChild1,
/*  2447*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  2450*/          OPC_RecordChild0, // #3 = physreg input CL
/*  2451*/          OPC_MoveChild1,
/*  2452*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2455*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*  2457*/          OPC_MoveParent,
/*  2458*/          OPC_CheckType, MVT::i8,
/*  2460*/          OPC_MoveParent,
/*  2461*/          OPC_CheckType, MVT::i16,
/*  2463*/          OPC_MoveParent,
/*  2464*/          OPC_CheckChild2Same, 2,
/*  2466*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2468*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2470*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2473*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2477*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2480*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SAR16mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  2491*/        /*Scope*/ 48, /*->2540*/
/*  2492*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2494*/          OPC_MoveParent,
/*  2495*/          OPC_MoveChild1,
/*  2496*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  2499*/          OPC_RecordChild0, // #3 = physreg input CL
/*  2500*/          OPC_MoveChild1,
/*  2501*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2504*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*  2506*/          OPC_MoveParent,
/*  2507*/          OPC_CheckType, MVT::i8,
/*  2509*/          OPC_MoveParent,
/*  2510*/          OPC_CheckType, MVT::i32,
/*  2512*/          OPC_MoveParent,
/*  2513*/          OPC_CheckChild2Same, 2,
/*  2515*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2517*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2519*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2522*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2526*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2529*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SAR32mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  2540*/        /*Scope*/ 48, /*->2589*/
/*  2541*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2543*/          OPC_MoveParent,
/*  2544*/          OPC_MoveChild1,
/*  2545*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  2548*/          OPC_RecordChild0, // #3 = physreg input CL
/*  2549*/          OPC_MoveChild1,
/*  2550*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2553*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/*  2555*/          OPC_MoveParent,
/*  2556*/          OPC_CheckType, MVT::i8,
/*  2558*/          OPC_MoveParent,
/*  2559*/          OPC_CheckType, MVT::i64,
/*  2561*/          OPC_MoveParent,
/*  2562*/          OPC_CheckChild2Same, 2,
/*  2564*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2566*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2568*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2571*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2575*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2578*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SAR64mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  2589*/        /*Scope*/ 34, /*->2624*/
/*  2590*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2592*/          OPC_MoveParent,
/*  2593*/          OPC_CheckChild1Integer, 1, 
/*  2595*/          OPC_CheckChild1Type, MVT::i8,
/*  2597*/          OPC_CheckType, MVT::i8,
/*  2599*/          OPC_MoveParent,
/*  2600*/          OPC_CheckChild2Same, 2,
/*  2602*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2604*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2606*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2609*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2613*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (sra:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, 1:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (SAR8m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  2624*/        /*Scope*/ 34, /*->2659*/
/*  2625*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2627*/          OPC_MoveParent,
/*  2628*/          OPC_CheckChild1Integer, 1, 
/*  2630*/          OPC_CheckChild1Type, MVT::i8,
/*  2632*/          OPC_CheckType, MVT::i16,
/*  2634*/          OPC_MoveParent,
/*  2635*/          OPC_CheckChild2Same, 2,
/*  2637*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2639*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2641*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2644*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2648*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR16m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  2659*/        /*Scope*/ 34, /*->2694*/
/*  2660*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2662*/          OPC_MoveParent,
/*  2663*/          OPC_CheckChild1Integer, 1, 
/*  2665*/          OPC_CheckChild1Type, MVT::i8,
/*  2667*/          OPC_CheckType, MVT::i32,
/*  2669*/          OPC_MoveParent,
/*  2670*/          OPC_CheckChild2Same, 2,
/*  2672*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2674*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2676*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2679*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2683*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR32m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  2694*/        /*Scope*/ 36, /*->2731*/
/*  2695*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2697*/          OPC_MoveParent,
/*  2698*/          OPC_CheckChild1Integer, 1, 
/*  2700*/          OPC_CheckChild1Type, MVT::i8,
/*  2702*/          OPC_CheckType, MVT::i64,
/*  2704*/          OPC_MoveParent,
/*  2705*/          OPC_CheckChild2Same, 2,
/*  2707*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2709*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2711*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  2713*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2716*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2720*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  2731*/        /*Scope*/ 41, /*->2773*/
/*  2732*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2734*/          OPC_MoveParent,
/*  2735*/          OPC_RecordChild1, // #3 = $src
/*  2736*/          OPC_MoveChild1,
/*  2737*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2740*/          OPC_CheckType, MVT::i8,
/*  2742*/          OPC_MoveParent,
/*  2743*/          OPC_CheckType, MVT::i8,
/*  2745*/          OPC_MoveParent,
/*  2746*/          OPC_CheckChild2Same, 2,
/*  2748*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2750*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2752*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2755*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2759*/          OPC_EmitConvertToTarget, 3,
/*  2761*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (sra:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, (imm:{ *:[i8] }):$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (SAR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/*  2773*/        /*Scope*/ 41, /*->2815*/
/*  2774*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2776*/          OPC_MoveParent,
/*  2777*/          OPC_RecordChild1, // #3 = $src
/*  2778*/          OPC_MoveChild1,
/*  2779*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2782*/          OPC_CheckType, MVT::i8,
/*  2784*/          OPC_MoveParent,
/*  2785*/          OPC_CheckType, MVT::i16,
/*  2787*/          OPC_MoveParent,
/*  2788*/          OPC_CheckChild2Same, 2,
/*  2790*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2792*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2794*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2797*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2801*/          OPC_EmitConvertToTarget, 3,
/*  2803*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  2815*/        /*Scope*/ 41, /*->2857*/
/*  2816*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2818*/          OPC_MoveParent,
/*  2819*/          OPC_RecordChild1, // #3 = $src
/*  2820*/          OPC_MoveChild1,
/*  2821*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2824*/          OPC_CheckType, MVT::i8,
/*  2826*/          OPC_MoveParent,
/*  2827*/          OPC_CheckType, MVT::i32,
/*  2829*/          OPC_MoveParent,
/*  2830*/          OPC_CheckChild2Same, 2,
/*  2832*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2834*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2836*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2839*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2843*/          OPC_EmitConvertToTarget, 3,
/*  2845*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  2857*/        /*Scope*/ 43, /*->2901*/
/*  2858*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2860*/          OPC_MoveParent,
/*  2861*/          OPC_RecordChild1, // #3 = $src
/*  2862*/          OPC_MoveChild1,
/*  2863*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2866*/          OPC_CheckType, MVT::i8,
/*  2868*/          OPC_MoveParent,
/*  2869*/          OPC_CheckType, MVT::i64,
/*  2871*/          OPC_MoveParent,
/*  2872*/          OPC_CheckChild2Same, 2,
/*  2874*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2876*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2878*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  2880*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2883*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2887*/          OPC_EmitConvertToTarget, 3,
/*  2889*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  2901*/        /*Scope*/ 36, /*->2938*/
/*  2902*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2904*/          OPC_MoveParent,
/*  2905*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2906*/          OPC_CheckChild1Type, MVT::i8,
/*  2908*/          OPC_CheckType, MVT::i8,
/*  2910*/          OPC_MoveParent,
/*  2911*/          OPC_CheckChild2Same, 2,
/*  2913*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2915*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2917*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2920*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2924*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2927*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (sra:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, CL:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SAR8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  2938*/        /*Scope*/ 36, /*->2975*/
/*  2939*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2941*/          OPC_MoveParent,
/*  2942*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2943*/          OPC_CheckChild1Type, MVT::i8,
/*  2945*/          OPC_CheckType, MVT::i16,
/*  2947*/          OPC_MoveParent,
/*  2948*/          OPC_CheckChild2Same, 2,
/*  2950*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2952*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2954*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2957*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2961*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2964*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  2975*/        /*Scope*/ 36, /*->3012*/
/*  2976*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2978*/          OPC_MoveParent,
/*  2979*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2980*/          OPC_CheckChild1Type, MVT::i8,
/*  2982*/          OPC_CheckType, MVT::i32,
/*  2984*/          OPC_MoveParent,
/*  2985*/          OPC_CheckChild2Same, 2,
/*  2987*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2989*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2991*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2994*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2998*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3001*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  3012*/        /*Scope*/ 38, /*->3051*/
/*  3013*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3015*/          OPC_MoveParent,
/*  3016*/          OPC_RecordChild1, // #3 = physreg input CL
/*  3017*/          OPC_CheckChild1Type, MVT::i8,
/*  3019*/          OPC_CheckType, MVT::i64,
/*  3021*/          OPC_MoveParent,
/*  3022*/          OPC_CheckChild2Same, 2,
/*  3024*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3026*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3028*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  3030*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3033*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3037*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3040*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SAR64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  3051*/        0, /*End of Scope*/
/*  3052*/      /*SwitchOpcode*/ 44|128,6/*812*/, TARGET_VAL(ISD::ROTL),// ->3868
/*  3056*/        OPC_MoveChild0,
/*  3057*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  3060*/        OPC_RecordMemRef,
/*  3061*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  3062*/        OPC_CheckFoldableChainNode,
/*  3063*/        OPC_RecordChild1, // #2 = $dst
/*  3064*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  3066*/        OPC_Scope, 48, /*->3116*/ // 20 children in Scope
/*  3068*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3070*/          OPC_MoveParent,
/*  3071*/          OPC_MoveChild1,
/*  3072*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3075*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3076*/          OPC_MoveChild1,
/*  3077*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3080*/          OPC_CheckPredicate, 11, // Predicate_immShift8
/*  3082*/          OPC_MoveParent,
/*  3083*/          OPC_CheckType, MVT::i8,
/*  3085*/          OPC_MoveParent,
/*  3086*/          OPC_CheckType, MVT::i8,
/*  3088*/          OPC_MoveParent,
/*  3089*/          OPC_CheckChild2Same, 2,
/*  3091*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3093*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3095*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3098*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3102*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3105*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift8>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROL8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3116*/        /*Scope*/ 48, /*->3165*/
/*  3117*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3119*/          OPC_MoveParent,
/*  3120*/          OPC_MoveChild1,
/*  3121*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3124*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3125*/          OPC_MoveChild1,
/*  3126*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3129*/          OPC_CheckPredicate, 12, // Predicate_immShift16
/*  3131*/          OPC_MoveParent,
/*  3132*/          OPC_CheckType, MVT::i8,
/*  3134*/          OPC_MoveParent,
/*  3135*/          OPC_CheckType, MVT::i16,
/*  3137*/          OPC_MoveParent,
/*  3138*/          OPC_CheckChild2Same, 2,
/*  3140*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3142*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3144*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3147*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3151*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3154*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotl:{ *:[i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift16>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROL16mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3165*/        /*Scope*/ 48, /*->3214*/
/*  3166*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3168*/          OPC_MoveParent,
/*  3169*/          OPC_MoveChild1,
/*  3170*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3173*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3174*/          OPC_MoveChild1,
/*  3175*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3178*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*  3180*/          OPC_MoveParent,
/*  3181*/          OPC_CheckType, MVT::i8,
/*  3183*/          OPC_MoveParent,
/*  3184*/          OPC_CheckType, MVT::i32,
/*  3186*/          OPC_MoveParent,
/*  3187*/          OPC_CheckChild2Same, 2,
/*  3189*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3191*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3193*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3196*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3200*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3203*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotl:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROL32mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3214*/        /*Scope*/ 48, /*->3263*/
/*  3215*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3217*/          OPC_MoveParent,
/*  3218*/          OPC_MoveChild1,
/*  3219*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3222*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3223*/          OPC_MoveChild1,
/*  3224*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3227*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/*  3229*/          OPC_MoveParent,
/*  3230*/          OPC_CheckType, MVT::i8,
/*  3232*/          OPC_MoveParent,
/*  3233*/          OPC_CheckType, MVT::i64,
/*  3235*/          OPC_MoveParent,
/*  3236*/          OPC_CheckChild2Same, 2,
/*  3238*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3240*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3242*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3245*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3249*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3252*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotl:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROL64mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3263*/        /*Scope*/ 34, /*->3298*/
/*  3264*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3266*/          OPC_MoveParent,
/*  3267*/          OPC_CheckChild1Integer, 1, 
/*  3269*/          OPC_CheckChild1Type, MVT::i8,
/*  3271*/          OPC_CheckType, MVT::i8,
/*  3273*/          OPC_MoveParent,
/*  3274*/          OPC_CheckChild2Same, 2,
/*  3276*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3278*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3280*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3283*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3287*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, 1:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (ROL8m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3298*/        /*Scope*/ 34, /*->3333*/
/*  3299*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3301*/          OPC_MoveParent,
/*  3302*/          OPC_CheckChild1Integer, 1, 
/*  3304*/          OPC_CheckChild1Type, MVT::i8,
/*  3306*/          OPC_CheckType, MVT::i16,
/*  3308*/          OPC_MoveParent,
/*  3309*/          OPC_CheckChild2Same, 2,
/*  3311*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3313*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3318*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3322*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL16m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  3333*/        /*Scope*/ 34, /*->3368*/
/*  3334*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3336*/          OPC_MoveParent,
/*  3337*/          OPC_CheckChild1Integer, 1, 
/*  3339*/          OPC_CheckChild1Type, MVT::i8,
/*  3341*/          OPC_CheckType, MVT::i32,
/*  3343*/          OPC_MoveParent,
/*  3344*/          OPC_CheckChild2Same, 2,
/*  3346*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3348*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3350*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3353*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3357*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL32m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  3368*/        /*Scope*/ 36, /*->3405*/
/*  3369*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3371*/          OPC_MoveParent,
/*  3372*/          OPC_CheckChild1Integer, 1, 
/*  3374*/          OPC_CheckChild1Type, MVT::i8,
/*  3376*/          OPC_CheckType, MVT::i64,
/*  3378*/          OPC_MoveParent,
/*  3379*/          OPC_CheckChild2Same, 2,
/*  3381*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3383*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3385*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  3387*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3390*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3394*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  3405*/        /*Scope*/ 34, /*->3440*/
/*  3406*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3408*/          OPC_MoveParent,
/*  3409*/          OPC_CheckChild1Integer, 7, 
/*  3411*/          OPC_CheckChild1Type, MVT::i8,
/*  3413*/          OPC_CheckType, MVT::i8,
/*  3415*/          OPC_MoveParent,
/*  3416*/          OPC_CheckChild2Same, 2,
/*  3418*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3420*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3422*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3425*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3429*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, 7:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (ROR8m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3440*/        /*Scope*/ 34, /*->3475*/
/*  3441*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3443*/          OPC_MoveParent,
/*  3444*/          OPC_CheckChild1Integer, 15, 
/*  3446*/          OPC_CheckChild1Type, MVT::i8,
/*  3448*/          OPC_CheckType, MVT::i16,
/*  3450*/          OPC_MoveParent,
/*  3451*/          OPC_CheckChild2Same, 2,
/*  3453*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3455*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3457*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3460*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3464*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR16m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotl:{ *:[i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 15:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (ROR16m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3475*/        /*Scope*/ 34, /*->3510*/
/*  3476*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3478*/          OPC_MoveParent,
/*  3479*/          OPC_CheckChild1Integer, 31, 
/*  3481*/          OPC_CheckChild1Type, MVT::i8,
/*  3483*/          OPC_CheckType, MVT::i32,
/*  3485*/          OPC_MoveParent,
/*  3486*/          OPC_CheckChild2Same, 2,
/*  3488*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3490*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3492*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3495*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3499*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR32m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotl:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 31:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (ROR32m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3510*/        /*Scope*/ 36, /*->3547*/
/*  3511*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3513*/          OPC_MoveParent,
/*  3514*/          OPC_CheckChild1Integer, 63, 
/*  3516*/          OPC_CheckChild1Type, MVT::i8,
/*  3518*/          OPC_CheckType, MVT::i64,
/*  3520*/          OPC_MoveParent,
/*  3521*/          OPC_CheckChild2Same, 2,
/*  3523*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3525*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3527*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  3529*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3532*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3536*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotl:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 63:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (ROR64m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3547*/        /*Scope*/ 41, /*->3589*/
/*  3548*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3550*/          OPC_MoveParent,
/*  3551*/          OPC_RecordChild1, // #3 = $src1
/*  3552*/          OPC_MoveChild1,
/*  3553*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3556*/          OPC_CheckType, MVT::i8,
/*  3558*/          OPC_MoveParent,
/*  3559*/          OPC_CheckType, MVT::i8,
/*  3561*/          OPC_MoveParent,
/*  3562*/          OPC_CheckChild2Same, 2,
/*  3564*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3566*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3568*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3571*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3575*/          OPC_EmitConvertToTarget, 3,
/*  3577*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (rotl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, (imm:{ *:[i8] }):$src1), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (ROL8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src1)
/*  3589*/        /*Scope*/ 41, /*->3631*/
/*  3590*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3592*/          OPC_MoveParent,
/*  3593*/          OPC_RecordChild1, // #3 = $src1
/*  3594*/          OPC_MoveChild1,
/*  3595*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3598*/          OPC_CheckType, MVT::i8,
/*  3600*/          OPC_MoveParent,
/*  3601*/          OPC_CheckType, MVT::i16,
/*  3603*/          OPC_MoveParent,
/*  3604*/          OPC_CheckChild2Same, 2,
/*  3606*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3608*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3610*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3613*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3617*/          OPC_EmitConvertToTarget, 3,
/*  3619*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  3631*/        /*Scope*/ 41, /*->3673*/
/*  3632*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3634*/          OPC_MoveParent,
/*  3635*/          OPC_RecordChild1, // #3 = $src1
/*  3636*/          OPC_MoveChild1,
/*  3637*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3640*/          OPC_CheckType, MVT::i8,
/*  3642*/          OPC_MoveParent,
/*  3643*/          OPC_CheckType, MVT::i32,
/*  3645*/          OPC_MoveParent,
/*  3646*/          OPC_CheckChild2Same, 2,
/*  3648*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3650*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3652*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3655*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3659*/          OPC_EmitConvertToTarget, 3,
/*  3661*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  3673*/        /*Scope*/ 43, /*->3717*/
/*  3674*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3676*/          OPC_MoveParent,
/*  3677*/          OPC_RecordChild1, // #3 = $src1
/*  3678*/          OPC_MoveChild1,
/*  3679*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3682*/          OPC_CheckType, MVT::i8,
/*  3684*/          OPC_MoveParent,
/*  3685*/          OPC_CheckType, MVT::i64,
/*  3687*/          OPC_MoveParent,
/*  3688*/          OPC_CheckChild2Same, 2,
/*  3690*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3692*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3694*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  3696*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3699*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3703*/          OPC_EmitConvertToTarget, 3,
/*  3705*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  3717*/        /*Scope*/ 36, /*->3754*/
/*  3718*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3720*/          OPC_MoveParent,
/*  3721*/          OPC_RecordChild1, // #3 = physreg input CL
/*  3722*/          OPC_CheckChild1Type, MVT::i8,
/*  3724*/          OPC_CheckType, MVT::i8,
/*  3726*/          OPC_MoveParent,
/*  3727*/          OPC_CheckChild2Same, 2,
/*  3729*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3731*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3733*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3736*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3740*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3743*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotl:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, CL:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ROL8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3754*/        /*Scope*/ 36, /*->3791*/
/*  3755*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3757*/          OPC_MoveParent,
/*  3758*/          OPC_RecordChild1, // #3 = physreg input CL
/*  3759*/          OPC_CheckChild1Type, MVT::i8,
/*  3761*/          OPC_CheckType, MVT::i16,
/*  3763*/          OPC_MoveParent,
/*  3764*/          OPC_CheckChild2Same, 2,
/*  3766*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3768*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3770*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3773*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3777*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3780*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  3791*/        /*Scope*/ 36, /*->3828*/
/*  3792*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3794*/          OPC_MoveParent,
/*  3795*/          OPC_RecordChild1, // #3 = physreg input CL
/*  3796*/          OPC_CheckChild1Type, MVT::i8,
/*  3798*/          OPC_CheckType, MVT::i32,
/*  3800*/          OPC_MoveParent,
/*  3801*/          OPC_CheckChild2Same, 2,
/*  3803*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3805*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3807*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3810*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3814*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3817*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  3828*/        /*Scope*/ 38, /*->3867*/
/*  3829*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3831*/          OPC_MoveParent,
/*  3832*/          OPC_RecordChild1, // #3 = physreg input CL
/*  3833*/          OPC_CheckChild1Type, MVT::i8,
/*  3835*/          OPC_CheckType, MVT::i64,
/*  3837*/          OPC_MoveParent,
/*  3838*/          OPC_CheckChild2Same, 2,
/*  3840*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3842*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3844*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  3846*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3849*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3853*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3856*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  3867*/        0, /*End of Scope*/
/*  3868*/      /*SwitchOpcode*/ 16|128,4/*528*/, TARGET_VAL(ISD::ROTR),// ->4400
/*  3872*/        OPC_MoveChild0,
/*  3873*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  3876*/        OPC_RecordMemRef,
/*  3877*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  3878*/        OPC_CheckFoldableChainNode,
/*  3879*/        OPC_RecordChild1, // #2 = $dst
/*  3880*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  3882*/        OPC_Scope, 48, /*->3932*/ // 12 children in Scope
/*  3884*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3886*/          OPC_MoveParent,
/*  3887*/          OPC_MoveChild1,
/*  3888*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3891*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3892*/          OPC_MoveChild1,
/*  3893*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3896*/          OPC_CheckPredicate, 11, // Predicate_immShift8
/*  3898*/          OPC_MoveParent,
/*  3899*/          OPC_CheckType, MVT::i8,
/*  3901*/          OPC_MoveParent,
/*  3902*/          OPC_CheckType, MVT::i8,
/*  3904*/          OPC_MoveParent,
/*  3905*/          OPC_CheckChild2Same, 2,
/*  3907*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3909*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3911*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3914*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3918*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3921*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotr:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift8>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROR8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3932*/        /*Scope*/ 48, /*->3981*/
/*  3933*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3935*/          OPC_MoveParent,
/*  3936*/          OPC_MoveChild1,
/*  3937*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3940*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3941*/          OPC_MoveChild1,
/*  3942*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3945*/          OPC_CheckPredicate, 12, // Predicate_immShift16
/*  3947*/          OPC_MoveParent,
/*  3948*/          OPC_CheckType, MVT::i8,
/*  3950*/          OPC_MoveParent,
/*  3951*/          OPC_CheckType, MVT::i16,
/*  3953*/          OPC_MoveParent,
/*  3954*/          OPC_CheckChild2Same, 2,
/*  3956*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3958*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3960*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3963*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3967*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3970*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotr:{ *:[i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift16>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROR16mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3981*/        /*Scope*/ 48, /*->4030*/
/*  3982*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3984*/          OPC_MoveParent,
/*  3985*/          OPC_MoveChild1,
/*  3986*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3989*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3990*/          OPC_MoveChild1,
/*  3991*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3994*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*  3996*/          OPC_MoveParent,
/*  3997*/          OPC_CheckType, MVT::i8,
/*  3999*/          OPC_MoveParent,
/*  4000*/          OPC_CheckType, MVT::i32,
/*  4002*/          OPC_MoveParent,
/*  4003*/          OPC_CheckChild2Same, 2,
/*  4005*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4007*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4009*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4012*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4016*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4019*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotr:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROR32mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4030*/        /*Scope*/ 48, /*->4079*/
/*  4031*/          OPC_CheckPredicate, 9, // Predicate_load
/*  4033*/          OPC_MoveParent,
/*  4034*/          OPC_MoveChild1,
/*  4035*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  4038*/          OPC_RecordChild0, // #3 = physreg input CL
/*  4039*/          OPC_MoveChild1,
/*  4040*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4043*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/*  4045*/          OPC_MoveParent,
/*  4046*/          OPC_CheckType, MVT::i8,
/*  4048*/          OPC_MoveParent,
/*  4049*/          OPC_CheckType, MVT::i64,
/*  4051*/          OPC_MoveParent,
/*  4052*/          OPC_CheckChild2Same, 2,
/*  4054*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4056*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4058*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4061*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4065*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4068*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotr:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROR64mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4079*/        /*Scope*/ 41, /*->4121*/
/*  4080*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  4082*/          OPC_MoveParent,
/*  4083*/          OPC_RecordChild1, // #3 = $src
/*  4084*/          OPC_MoveChild1,
/*  4085*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4088*/          OPC_CheckType, MVT::i8,
/*  4090*/          OPC_MoveParent,
/*  4091*/          OPC_CheckType, MVT::i8,
/*  4093*/          OPC_MoveParent,
/*  4094*/          OPC_CheckChild2Same, 2,
/*  4096*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4098*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4100*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4103*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4107*/          OPC_EmitConvertToTarget, 3,
/*  4109*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (rotr:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, (imm:{ *:[i8] }):$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (ROR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/*  4121*/        /*Scope*/ 41, /*->4163*/
/*  4122*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  4124*/          OPC_MoveParent,
/*  4125*/          OPC_RecordChild1, // #3 = $src
/*  4126*/          OPC_MoveChild1,
/*  4127*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4130*/          OPC_CheckType, MVT::i8,
/*  4132*/          OPC_MoveParent,
/*  4133*/          OPC_CheckType, MVT::i16,
/*  4135*/          OPC_MoveParent,
/*  4136*/          OPC_CheckChild2Same, 2,
/*  4138*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4140*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4142*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4145*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4149*/          OPC_EmitConvertToTarget, 3,
/*  4151*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  4163*/        /*Scope*/ 41, /*->4205*/
/*  4164*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  4166*/          OPC_MoveParent,
/*  4167*/          OPC_RecordChild1, // #3 = $src
/*  4168*/          OPC_MoveChild1,
/*  4169*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4172*/          OPC_CheckType, MVT::i8,
/*  4174*/          OPC_MoveParent,
/*  4175*/          OPC_CheckType, MVT::i32,
/*  4177*/          OPC_MoveParent,
/*  4178*/          OPC_CheckChild2Same, 2,
/*  4180*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4182*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4184*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4187*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4191*/          OPC_EmitConvertToTarget, 3,
/*  4193*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  4205*/        /*Scope*/ 43, /*->4249*/
/*  4206*/          OPC_CheckPredicate, 9, // Predicate_load
/*  4208*/          OPC_MoveParent,
/*  4209*/          OPC_RecordChild1, // #3 = $src
/*  4210*/          OPC_MoveChild1,
/*  4211*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4214*/          OPC_CheckType, MVT::i8,
/*  4216*/          OPC_MoveParent,
/*  4217*/          OPC_CheckType, MVT::i64,
/*  4219*/          OPC_MoveParent,
/*  4220*/          OPC_CheckChild2Same, 2,
/*  4222*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4224*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4226*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  4228*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4231*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4235*/          OPC_EmitConvertToTarget, 3,
/*  4237*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  4249*/        /*Scope*/ 36, /*->4286*/
/*  4250*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  4252*/          OPC_MoveParent,
/*  4253*/          OPC_RecordChild1, // #3 = physreg input CL
/*  4254*/          OPC_CheckChild1Type, MVT::i8,
/*  4256*/          OPC_CheckType, MVT::i8,
/*  4258*/          OPC_MoveParent,
/*  4259*/          OPC_CheckChild2Same, 2,
/*  4261*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4263*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4265*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4268*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4272*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4275*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotr:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, CL:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ROR8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4286*/        /*Scope*/ 36, /*->4323*/
/*  4287*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  4289*/          OPC_MoveParent,
/*  4290*/          OPC_RecordChild1, // #3 = physreg input CL
/*  4291*/          OPC_CheckChild1Type, MVT::i8,
/*  4293*/          OPC_CheckType, MVT::i16,
/*  4295*/          OPC_MoveParent,
/*  4296*/          OPC_CheckChild2Same, 2,
/*  4298*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4300*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4302*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4305*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4309*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4312*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  4323*/        /*Scope*/ 36, /*->4360*/
/*  4324*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  4326*/          OPC_MoveParent,
/*  4327*/          OPC_RecordChild1, // #3 = physreg input CL
/*  4328*/          OPC_CheckChild1Type, MVT::i8,
/*  4330*/          OPC_CheckType, MVT::i32,
/*  4332*/          OPC_MoveParent,
/*  4333*/          OPC_CheckChild2Same, 2,
/*  4335*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4337*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4339*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4342*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4346*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4349*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  4360*/        /*Scope*/ 38, /*->4399*/
/*  4361*/          OPC_CheckPredicate, 9, // Predicate_load
/*  4363*/          OPC_MoveParent,
/*  4364*/          OPC_RecordChild1, // #3 = physreg input CL
/*  4365*/          OPC_CheckChild1Type, MVT::i8,
/*  4367*/          OPC_CheckType, MVT::i64,
/*  4369*/          OPC_MoveParent,
/*  4370*/          OPC_CheckChild2Same, 2,
/*  4372*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4374*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4376*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  4378*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4381*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4385*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4388*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  4399*/        0, /*End of Scope*/
/*  4400*/      /*SwitchOpcode*/ 31|128,4/*543*/, TARGET_VAL(ISD::SUB),// ->4947
/*  4404*/        OPC_Scope, 12|128,1/*140*/, /*->4547*/ // 2 children in Scope
/*  4407*/          OPC_CheckChild0Integer, 0, 
/*  4409*/          OPC_MoveChild1,
/*  4410*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  4413*/          OPC_RecordMemRef,
/*  4414*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  4415*/          OPC_CheckFoldableChainNode,
/*  4416*/          OPC_RecordChild1, // #2 = $dst
/*  4417*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  4419*/          OPC_Scope, 30, /*->4451*/ // 4 children in Scope
/*  4421*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/*  4423*/            OPC_MoveParent,
/*  4424*/            OPC_CheckType, MVT::i8,
/*  4426*/            OPC_MoveParent,
/*  4427*/            OPC_CheckChild2Same, 2,
/*  4429*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4431*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4433*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4436*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4440*/            OPC_MorphNodeTo1, TARGET_VAL(X86::NEG8m), 0|OPFL_Chain|OPFL_MemRefs,
                          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_loadi8>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                      // Dst: (NEG8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4451*/          /*Scope*/ 30, /*->4482*/
/*  4452*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/*  4454*/            OPC_MoveParent,
/*  4455*/            OPC_CheckType, MVT::i16,
/*  4457*/            OPC_MoveParent,
/*  4458*/            OPC_CheckChild2Same, 2,
/*  4460*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4462*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4464*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4467*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4471*/            OPC_MorphNodeTo1, TARGET_VAL(X86::NEG16m), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  4482*/          /*Scope*/ 30, /*->4513*/
/*  4483*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*  4485*/            OPC_MoveParent,
/*  4486*/            OPC_CheckType, MVT::i32,
/*  4488*/            OPC_MoveParent,
/*  4489*/            OPC_CheckChild2Same, 2,
/*  4491*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4493*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4495*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4498*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4502*/            OPC_MorphNodeTo1, TARGET_VAL(X86::NEG32m), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  4513*/          /*Scope*/ 32, /*->4546*/
/*  4514*/            OPC_CheckPredicate, 9, // Predicate_load
/*  4516*/            OPC_MoveParent,
/*  4517*/            OPC_CheckType, MVT::i64,
/*  4519*/            OPC_MoveParent,
/*  4520*/            OPC_CheckChild2Same, 2,
/*  4522*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4524*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4526*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  4528*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4531*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4535*/            OPC_MorphNodeTo1, TARGET_VAL(X86::NEG64m), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  4546*/          0, /*End of Scope*/
/*  4547*/        /*Scope*/ 13|128,3/*397*/, /*->4946*/
/*  4549*/          OPC_MoveChild0,
/*  4550*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  4553*/          OPC_RecordMemRef,
/*  4554*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  4555*/          OPC_CheckFoldableChainNode,
/*  4556*/          OPC_RecordChild1, // #2 = $dst
/*  4557*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  4559*/          OPC_CheckPredicate, 9, // Predicate_load
/*  4561*/          OPC_MoveParent,
/*  4562*/          OPC_RecordChild1, // #3 = $src
/*  4563*/          OPC_Scope, 7|128,2/*263*/, /*->4829*/ // 5 children in Scope
/*  4566*/            OPC_MoveChild1,
/*  4567*/            OPC_Scope, 25|128,1/*153*/, /*->4723*/ // 4 children in Scope
/*  4570*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4573*/              OPC_Scope, 35, /*->4610*/ // 4 children in Scope
/*  4575*/                OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  4577*/                OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  4579*/                OPC_MoveParent,
/*  4580*/                OPC_CheckType, MVT::i16,
/*  4582*/                OPC_MoveParent,
/*  4583*/                OPC_CheckChild2Same, 2,
/*  4585*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4587*/                OPC_CheckPredicate, 1, // Predicate_store
/*  4589*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4592*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4596*/                OPC_EmitConvertToTarget, 3,
/*  4598*/                OPC_MorphNodeTo1, TARGET_VAL(X86::SUB16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              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>><<P:Predicate_i16immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (SUB16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/*  4610*/              /*Scope*/ 35, /*->4646*/
/*  4611*/                OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  4613*/                OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  4615*/                OPC_MoveParent,
/*  4616*/                OPC_CheckType, MVT::i32,
/*  4618*/                OPC_MoveParent,
/*  4619*/                OPC_CheckChild2Same, 2,
/*  4621*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4623*/                OPC_CheckPredicate, 1, // Predicate_store
/*  4625*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4628*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4632*/                OPC_EmitConvertToTarget, 3,
/*  4634*/                OPC_MorphNodeTo1, TARGET_VAL(X86::SUB32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              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>><<P:Predicate_i32immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (SUB32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/*  4646*/              /*Scope*/ 37, /*->4684*/
/*  4647*/                OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  4649*/                OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  4651*/                OPC_MoveParent,
/*  4652*/                OPC_CheckType, MVT::i64,
/*  4654*/                OPC_MoveParent,
/*  4655*/                OPC_CheckChild2Same, 2,
/*  4657*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4659*/                OPC_CheckPredicate, 1, // Predicate_store
/*  4661*/                OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  4663*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4666*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4670*/                OPC_EmitConvertToTarget, 3,
/*  4672*/                OPC_MorphNodeTo1, TARGET_VAL(X86::SUB64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              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>><<P:Predicate_i64immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (SUB64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  4684*/              /*Scope*/ 37, /*->4722*/
/*  4685*/                OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*  4687*/                OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*  4689*/                OPC_MoveParent,
/*  4690*/                OPC_CheckType, MVT::i64,
/*  4692*/                OPC_MoveParent,
/*  4693*/                OPC_CheckChild2Same, 2,
/*  4695*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4697*/                OPC_CheckPredicate, 1, // Predicate_store
/*  4699*/                OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  4701*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4704*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4708*/                OPC_EmitConvertToTarget, 3,
/*  4710*/                OPC_MorphNodeTo1, TARGET_VAL(X86::SUB64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                              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>><<P:Predicate_i64immSExt32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (SUB64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  4722*/              0, /*End of Scope*/
/*  4723*/            /*Scope*/ 34, /*->4758*/
/*  4724*/              OPC_CheckPredicate, 16, // Predicate_imm8_su
/*  4726*/              OPC_MoveParent,
/*  4727*/              OPC_CheckType, MVT::i8,
/*  4729*/              OPC_MoveParent,
/*  4730*/              OPC_CheckChild2Same, 2,
/*  4732*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4734*/              OPC_CheckPredicate, 1, // Predicate_store
/*  4736*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4739*/              OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  4742*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4746*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUB8mi), 0|OPFL_Chain|OPFL_MemRefs,
                            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>>, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (SUB8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  4758*/            /*Scope*/ 34, /*->4793*/
/*  4759*/              OPC_CheckPredicate, 16, // Predicate_imm16_su
/*  4761*/              OPC_MoveParent,
/*  4762*/              OPC_CheckType, MVT::i16,
/*  4764*/              OPC_MoveParent,
/*  4765*/              OPC_CheckChild2Same, 2,
/*  4767*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4769*/              OPC_CheckPredicate, 1, // Predicate_store
/*  4771*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4774*/              OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  4777*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4781*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUB16mi), 0|OPFL_Chain|OPFL_MemRefs,
                            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>>, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (SUB16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  4793*/            /*Scope*/ 34, /*->4828*/
/*  4794*/              OPC_CheckPredicate, 16, // Predicate_imm32_su
/*  4796*/              OPC_MoveParent,
/*  4797*/              OPC_CheckType, MVT::i32,
/*  4799*/              OPC_MoveParent,
/*  4800*/              OPC_CheckChild2Same, 2,
/*  4802*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4804*/              OPC_CheckPredicate, 1, // Predicate_store
/*  4806*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4809*/              OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  4812*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4816*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUB32mi), 0|OPFL_Chain|OPFL_MemRefs,
                            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>>, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (SUB32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  4828*/            0, /*End of Scope*/
/*  4829*/          /*Scope*/ 28, /*->4858*/
/*  4830*/            OPC_CheckType, MVT::i8,
/*  4832*/            OPC_MoveParent,
/*  4833*/            OPC_CheckChild2Same, 2,
/*  4835*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4837*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4839*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4842*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4846*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  4858*/          /*Scope*/ 28, /*->4887*/
/*  4859*/            OPC_CheckType, MVT::i16,
/*  4861*/            OPC_MoveParent,
/*  4862*/            OPC_CheckChild2Same, 2,
/*  4864*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4866*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4868*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4871*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4875*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  4887*/          /*Scope*/ 28, /*->4916*/
/*  4888*/            OPC_CheckType, MVT::i32,
/*  4890*/            OPC_MoveParent,
/*  4891*/            OPC_CheckChild2Same, 2,
/*  4893*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4895*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4897*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4900*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4904*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  4916*/          /*Scope*/ 28, /*->4945*/
/*  4917*/            OPC_CheckType, MVT::i64,
/*  4919*/            OPC_MoveParent,
/*  4920*/            OPC_CheckChild2Same, 2,
/*  4922*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4924*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4926*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4929*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4933*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  4945*/          0, /*End of Scope*/
/*  4946*/        0, /*End of Scope*/
/*  4947*/      /*SwitchOpcode*/ 94|128,6/*862*/, TARGET_VAL(ISD::XOR),// ->5813
/*  4951*/        OPC_Scope, 64|128,3/*448*/, /*->5402*/ // 4 children in Scope
/*  4954*/          OPC_MoveChild0,
/*  4955*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  4958*/          OPC_RecordMemRef,
/*  4959*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  4960*/          OPC_CheckFoldableChainNode,
/*  4961*/          OPC_RecordChild1, // #2 = $dst
/*  4962*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  4964*/          OPC_Scope, 40, /*->5006*/ // 4 children in Scope
/*  4966*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/*  4968*/            OPC_MoveParent,
/*  4969*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  4980*/            OPC_CheckType, MVT::i8,
/*  4982*/            OPC_MoveParent,
/*  4983*/            OPC_CheckChild2Same, 2,
/*  4985*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4987*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4989*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4992*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4996*/            OPC_MorphNodeTo0, TARGET_VAL(X86::NOT8m), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (st (xor:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, -1:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                      // Dst: (NOT8m addr:{ *:[iPTR] }:$dst)
/*  5006*/          /*Scope*/ 40, /*->5047*/
/*  5007*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/*  5009*/            OPC_MoveParent,
/*  5010*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  5021*/            OPC_CheckType, MVT::i16,
/*  5023*/            OPC_MoveParent,
/*  5024*/            OPC_CheckChild2Same, 2,
/*  5026*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5028*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5030*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  5033*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5037*/            OPC_MorphNodeTo0, TARGET_VAL(X86::NOT16m), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5047*/          /*Scope*/ 40, /*->5088*/
/*  5048*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*  5050*/            OPC_MoveParent,
/*  5051*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  5062*/            OPC_CheckType, MVT::i32,
/*  5064*/            OPC_MoveParent,
/*  5065*/            OPC_CheckChild2Same, 2,
/*  5067*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5069*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5071*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  5074*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5078*/            OPC_MorphNodeTo0, TARGET_VAL(X86::NOT32m), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5088*/          /*Scope*/ 55|128,2/*311*/, /*->5401*/
/*  5090*/            OPC_CheckPredicate, 9, // Predicate_load
/*  5092*/            OPC_MoveParent,
/*  5093*/            OPC_Scope, 39, /*->5134*/ // 2 children in Scope
/*  5095*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  5106*/              OPC_CheckType, MVT::i64,
/*  5108*/              OPC_MoveParent,
/*  5109*/              OPC_CheckChild2Same, 2,
/*  5111*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5113*/              OPC_CheckPredicate, 1, // Predicate_store
/*  5115*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  5117*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  5120*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5124*/              OPC_MorphNodeTo0, TARGET_VAL(X86::NOT64m), 0|OPFL_Chain|OPFL_MemRefs,
                            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)
/*  5134*/            /*Scope*/ 8|128,2/*264*/, /*->5400*/
/*  5136*/              OPC_RecordChild1, // #3 = $src
/*  5137*/              OPC_MoveChild1,
/*  5138*/              OPC_Scope, 25|128,1/*153*/, /*->5294*/ // 4 children in Scope
/*  5141*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5144*/                OPC_Scope, 35, /*->5181*/ // 4 children in Scope
/*  5146*/                  OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  5148*/                  OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  5150*/                  OPC_MoveParent,
/*  5151*/                  OPC_CheckType, MVT::i16,
/*  5153*/                  OPC_MoveParent,
/*  5154*/                  OPC_CheckChild2Same, 2,
/*  5156*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5158*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  5160*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5163*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5167*/                  OPC_EmitConvertToTarget, 3,
/*  5169*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::XOR16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                                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>><<P:Predicate_i16immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                            // Dst: (XOR16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/*  5181*/                /*Scope*/ 35, /*->5217*/
/*  5182*/                  OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  5184*/                  OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  5186*/                  OPC_MoveParent,
/*  5187*/                  OPC_CheckType, MVT::i32,
/*  5189*/                  OPC_MoveParent,
/*  5190*/                  OPC_CheckChild2Same, 2,
/*  5192*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5194*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  5196*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5199*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5203*/                  OPC_EmitConvertToTarget, 3,
/*  5205*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::XOR32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                                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>><<P:Predicate_i32immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                            // Dst: (XOR32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/*  5217*/                /*Scope*/ 37, /*->5255*/
/*  5218*/                  OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  5220*/                  OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  5222*/                  OPC_MoveParent,
/*  5223*/                  OPC_CheckType, MVT::i64,
/*  5225*/                  OPC_MoveParent,
/*  5226*/                  OPC_CheckChild2Same, 2,
/*  5228*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5230*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  5232*/                  OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  5234*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5237*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5241*/                  OPC_EmitConvertToTarget, 3,
/*  5243*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::XOR64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                                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>><<P:Predicate_i64immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                            // Dst: (XOR64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  5255*/                /*Scope*/ 37, /*->5293*/
/*  5256*/                  OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*  5258*/                  OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*  5260*/                  OPC_MoveParent,
/*  5261*/                  OPC_CheckType, MVT::i64,
/*  5263*/                  OPC_MoveParent,
/*  5264*/                  OPC_CheckChild2Same, 2,
/*  5266*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5268*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  5270*/                  OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  5272*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5275*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5279*/                  OPC_EmitConvertToTarget, 3,
/*  5281*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::XOR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                                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>><<P:Predicate_i64immSExt32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                            // Dst: (XOR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  5293*/                0, /*End of Scope*/
/*  5294*/              /*Scope*/ 34, /*->5329*/
/*  5295*/                OPC_CheckPredicate, 16, // Predicate_imm8_su
/*  5297*/                OPC_MoveParent,
/*  5298*/                OPC_CheckType, MVT::i8,
/*  5300*/                OPC_MoveParent,
/*  5301*/                OPC_CheckChild2Same, 2,
/*  5303*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5305*/                OPC_CheckPredicate, 1, // Predicate_store
/*  5307*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5310*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  5313*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5317*/                OPC_MorphNodeTo1, TARGET_VAL(X86::XOR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                              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>>, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (XOR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  5329*/              /*Scope*/ 34, /*->5364*/
/*  5330*/                OPC_CheckPredicate, 16, // Predicate_imm16_su
/*  5332*/                OPC_MoveParent,
/*  5333*/                OPC_CheckType, MVT::i16,
/*  5335*/                OPC_MoveParent,
/*  5336*/                OPC_CheckChild2Same, 2,
/*  5338*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5340*/                OPC_CheckPredicate, 1, // Predicate_store
/*  5342*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5345*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  5348*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5352*/                OPC_MorphNodeTo1, TARGET_VAL(X86::XOR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                              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>>, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (XOR16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  5364*/              /*Scope*/ 34, /*->5399*/
/*  5365*/                OPC_CheckPredicate, 16, // Predicate_imm32_su
/*  5367*/                OPC_MoveParent,
/*  5368*/                OPC_CheckType, MVT::i32,
/*  5370*/                OPC_MoveParent,
/*  5371*/                OPC_CheckChild2Same, 2,
/*  5373*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5375*/                OPC_CheckPredicate, 1, // Predicate_store
/*  5377*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5380*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  5383*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5387*/                OPC_MorphNodeTo1, TARGET_VAL(X86::XOR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                              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>>, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (XOR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  5399*/              0, /*End of Scope*/
/*  5400*/            0, /*End of Scope*/
/*  5401*/          0, /*End of Scope*/
/*  5402*/        /*Scope*/ 20|128,1/*148*/, /*->5552*/
/*  5404*/          OPC_RecordChild0, // #1 = $src
/*  5405*/          OPC_MoveChild0,
/*  5406*/          OPC_Scope, 47, /*->5455*/ // 3 children in Scope
/*  5408*/            OPC_CheckPredicate, 16, // Predicate_imm8_su
/*  5410*/            OPC_MoveParent,
/*  5411*/            OPC_MoveChild1,
/*  5412*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5415*/            OPC_RecordMemRef,
/*  5416*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  5417*/            OPC_CheckFoldableChainNode,
/*  5418*/            OPC_RecordChild1, // #3 = $dst
/*  5419*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5421*/            OPC_CheckPredicate, 9, // Predicate_load
/*  5423*/            OPC_MoveParent,
/*  5424*/            OPC_CheckType, MVT::i8,
/*  5426*/            OPC_MoveParent,
/*  5427*/            OPC_CheckChild2Same, 3,
/*  5429*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5431*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5433*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  5436*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  5439*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  5443*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (xor:{ *:[i8] } relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src, (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (XOR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  5455*/          /*Scope*/ 47, /*->5503*/
/*  5456*/            OPC_CheckPredicate, 16, // Predicate_imm16_su
/*  5458*/            OPC_MoveParent,
/*  5459*/            OPC_MoveChild1,
/*  5460*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5463*/            OPC_RecordMemRef,
/*  5464*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  5465*/            OPC_CheckFoldableChainNode,
/*  5466*/            OPC_RecordChild1, // #3 = $dst
/*  5467*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5469*/            OPC_CheckPredicate, 9, // Predicate_load
/*  5471*/            OPC_MoveParent,
/*  5472*/            OPC_CheckType, MVT::i16,
/*  5474*/            OPC_MoveParent,
/*  5475*/            OPC_CheckChild2Same, 3,
/*  5477*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5479*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5481*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  5484*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  5487*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  5491*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (xor:{ *:[i16] } relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src, (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (XOR16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  5503*/          /*Scope*/ 47, /*->5551*/
/*  5504*/            OPC_CheckPredicate, 16, // Predicate_imm32_su
/*  5506*/            OPC_MoveParent,
/*  5507*/            OPC_MoveChild1,
/*  5508*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5511*/            OPC_RecordMemRef,
/*  5512*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  5513*/            OPC_CheckFoldableChainNode,
/*  5514*/            OPC_RecordChild1, // #3 = $dst
/*  5515*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5517*/            OPC_CheckPredicate, 9, // Predicate_load
/*  5519*/            OPC_MoveParent,
/*  5520*/            OPC_CheckType, MVT::i32,
/*  5522*/            OPC_MoveParent,
/*  5523*/            OPC_CheckChild2Same, 3,
/*  5525*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5527*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5529*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  5532*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  5535*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  5539*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (xor:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (XOR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  5551*/          0, /*End of Scope*/
/*  5552*/        /*Scope*/ 0|128,1/*128*/, /*->5682*/
/*  5554*/          OPC_MoveChild0,
/*  5555*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5558*/          OPC_RecordMemRef,
/*  5559*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  5560*/          OPC_CheckFoldableChainNode,
/*  5561*/          OPC_RecordChild1, // #2 = $dst
/*  5562*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5564*/          OPC_CheckPredicate, 9, // Predicate_load
/*  5566*/          OPC_MoveParent,
/*  5567*/          OPC_RecordChild1, // #3 = $src
/*  5568*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->5597
/*  5571*/            OPC_MoveParent,
/*  5572*/            OPC_CheckChild2Same, 2,
/*  5574*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5576*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5578*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5581*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5585*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5597*/          /*SwitchType*/ 26, MVT::i16,// ->5625
/*  5599*/            OPC_MoveParent,
/*  5600*/            OPC_CheckChild2Same, 2,
/*  5602*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5604*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5606*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5609*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5613*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5625*/          /*SwitchType*/ 26, MVT::i32,// ->5653
/*  5627*/            OPC_MoveParent,
/*  5628*/            OPC_CheckChild2Same, 2,
/*  5630*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5632*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5634*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5637*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5641*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5653*/          /*SwitchType*/ 26, MVT::i64,// ->5681
/*  5655*/            OPC_MoveParent,
/*  5656*/            OPC_CheckChild2Same, 2,
/*  5658*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5660*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5662*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5665*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5669*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5681*/          0, // EndSwitchType
/*  5682*/        /*Scope*/ 0|128,1/*128*/, /*->5812*/
/*  5684*/          OPC_RecordChild0, // #1 = $src
/*  5685*/          OPC_MoveChild1,
/*  5686*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5689*/          OPC_RecordMemRef,
/*  5690*/          OPC_RecordNode, // #2 = 'ld' chained node
/*  5691*/          OPC_CheckFoldableChainNode,
/*  5692*/          OPC_RecordChild1, // #3 = $dst
/*  5693*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5695*/          OPC_CheckPredicate, 9, // Predicate_load
/*  5697*/          OPC_MoveParent,
/*  5698*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->5727
/*  5701*/            OPC_MoveParent,
/*  5702*/            OPC_CheckChild2Same, 3,
/*  5704*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5706*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5708*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5711*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  5715*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5727*/          /*SwitchType*/ 26, MVT::i16,// ->5755
/*  5729*/            OPC_MoveParent,
/*  5730*/            OPC_CheckChild2Same, 3,
/*  5732*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5734*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5736*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5739*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  5743*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5755*/          /*SwitchType*/ 26, MVT::i32,// ->5783
/*  5757*/            OPC_MoveParent,
/*  5758*/            OPC_CheckChild2Same, 3,
/*  5760*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5762*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5764*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5767*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  5771*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5783*/          /*SwitchType*/ 26, MVT::i64,// ->5811
/*  5785*/            OPC_MoveParent,
/*  5786*/            OPC_CheckChild2Same, 3,
/*  5788*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5790*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5792*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5795*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  5799*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5811*/          0, // EndSwitchType
/*  5812*/        0, /*End of Scope*/
/*  5813*/      /*SwitchOpcode*/ 48|128,9/*1200*/, TARGET_VAL(ISD::ADD),// ->7017
/*  5817*/        OPC_Scope, 18|128,6/*786*/, /*->6606*/ // 4 children in Scope
/*  5820*/          OPC_MoveChild0,
/*  5821*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5824*/          OPC_RecordMemRef,
/*  5825*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  5826*/          OPC_CheckFoldableChainNode,
/*  5827*/          OPC_RecordChild1, // #2 = $dst
/*  5828*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5830*/          OPC_Scope, 34, /*->5866*/ // 11 children in Scope
/*  5832*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/*  5834*/            OPC_MoveParent,
/*  5835*/            OPC_CheckChild1Integer, 1, 
/*  5837*/            OPC_CheckType, MVT::i8,
/*  5839*/            OPC_MoveParent,
/*  5840*/            OPC_CheckChild2Same, 2,
/*  5842*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5844*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5846*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*  5848*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  5851*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5855*/            OPC_MorphNodeTo1, TARGET_VAL(X86::INC8m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (st (add:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, 1:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                      // Dst: (INC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  5866*/          /*Scope*/ 34, /*->5901*/
/*  5867*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/*  5869*/            OPC_MoveParent,
/*  5870*/            OPC_CheckChild1Integer, 1, 
/*  5872*/            OPC_CheckType, MVT::i16,
/*  5874*/            OPC_MoveParent,
/*  5875*/            OPC_CheckChild2Same, 2,
/*  5877*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5879*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5881*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*  5883*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  5886*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5890*/            OPC_MorphNodeTo1, TARGET_VAL(X86::INC16m), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5901*/          /*Scope*/ 34, /*->5936*/
/*  5902*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*  5904*/            OPC_MoveParent,
/*  5905*/            OPC_CheckChild1Integer, 1, 
/*  5907*/            OPC_CheckType, MVT::i32,
/*  5909*/            OPC_MoveParent,
/*  5910*/            OPC_CheckChild2Same, 2,
/*  5912*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5914*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5916*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*  5918*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  5921*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5925*/            OPC_MorphNodeTo1, TARGET_VAL(X86::INC32m), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5936*/          /*Scope*/ 34, /*->5971*/
/*  5937*/            OPC_CheckPredicate, 9, // Predicate_load
/*  5939*/            OPC_MoveParent,
/*  5940*/            OPC_CheckChild1Integer, 1, 
/*  5942*/            OPC_CheckType, MVT::i64,
/*  5944*/            OPC_MoveParent,
/*  5945*/            OPC_CheckChild2Same, 2,
/*  5947*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5949*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5951*/            OPC_CheckPatternPredicate, 10, // (Subtarget->is64Bit()) && (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*  5953*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  5956*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5960*/            OPC_MorphNodeTo1, TARGET_VAL(X86::INC64m), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  5971*/          /*Scope*/ 43, /*->6015*/
/*  5972*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/*  5974*/            OPC_MoveParent,
/*  5975*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  5986*/            OPC_CheckType, MVT::i8,
/*  5988*/            OPC_MoveParent,
/*  5989*/            OPC_CheckChild2Same, 2,
/*  5991*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5993*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5995*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*  5997*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6000*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6004*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DEC8m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (st (add:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, -1:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                      // Dst: (DEC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  6015*/          /*Scope*/ 43, /*->6059*/
/*  6016*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/*  6018*/            OPC_MoveParent,
/*  6019*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  6030*/            OPC_CheckType, MVT::i16,
/*  6032*/            OPC_MoveParent,
/*  6033*/            OPC_CheckChild2Same, 2,
/*  6035*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6037*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6039*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*  6041*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6044*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6048*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DEC16m), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  6059*/          /*Scope*/ 43, /*->6103*/
/*  6060*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*  6062*/            OPC_MoveParent,
/*  6063*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  6074*/            OPC_CheckType, MVT::i32,
/*  6076*/            OPC_MoveParent,
/*  6077*/            OPC_CheckChild2Same, 2,
/*  6079*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6081*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6083*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*  6085*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6088*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6092*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DEC32m), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  6103*/          /*Scope*/ 43, /*->6147*/
/*  6104*/            OPC_CheckPredicate, 9, // Predicate_load
/*  6106*/            OPC_MoveParent,
/*  6107*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  6118*/            OPC_CheckType, MVT::i64,
/*  6120*/            OPC_MoveParent,
/*  6121*/            OPC_CheckChild2Same, 2,
/*  6123*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6125*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6127*/            OPC_CheckPatternPredicate, 10, // (Subtarget->is64Bit()) && (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*  6129*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6132*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6136*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DEC64m), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  6147*/          /*Scope*/ 46, /*->6194*/
/*  6148*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/*  6150*/            OPC_MoveParent,
/*  6151*/            OPC_CheckChild1Integer, 0|128,1/*128*/, 
/*  6154*/            OPC_CheckType, MVT::i16,
/*  6156*/            OPC_MoveParent,
/*  6157*/            OPC_CheckChild2Same, 2,
/*  6159*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6161*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6163*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6166*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6170*/            OPC_EmitInteger, MVT::i16, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*  6182*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          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] })
/*  6194*/          /*Scope*/ 46, /*->6241*/
/*  6195*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*  6197*/            OPC_MoveParent,
/*  6198*/            OPC_CheckChild1Integer, 0|128,1/*128*/, 
/*  6201*/            OPC_CheckType, MVT::i32,
/*  6203*/            OPC_MoveParent,
/*  6204*/            OPC_CheckChild2Same, 2,
/*  6206*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6208*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6210*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6213*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6217*/            OPC_EmitInteger, MVT::i32, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*  6229*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          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] })
/*  6241*/          /*Scope*/ 106|128,2/*362*/, /*->6605*/
/*  6243*/            OPC_CheckPredicate, 9, // Predicate_load
/*  6245*/            OPC_MoveParent,
/*  6246*/            OPC_Scope, 43, /*->6291*/ // 3 children in Scope
/*  6248*/              OPC_CheckChild1Integer, 0|128,1/*128*/, 
/*  6251*/              OPC_CheckType, MVT::i64,
/*  6253*/              OPC_MoveParent,
/*  6254*/              OPC_CheckChild2Same, 2,
/*  6256*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6258*/              OPC_CheckPredicate, 1, // Predicate_store
/*  6260*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6263*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6267*/              OPC_EmitInteger, MVT::i64, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*  6279*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUB64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            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] })
/*  6291*/            /*Scope*/ 46, /*->6338*/
/*  6292*/              OPC_CheckChild1Integer, 0|128,0|128,0|128,0|128,8/*2147483648*/, 
/*  6298*/              OPC_CheckType, MVT::i64,
/*  6300*/              OPC_MoveParent,
/*  6301*/              OPC_CheckChild2Same, 2,
/*  6303*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6305*/              OPC_CheckPredicate, 1, // Predicate_store
/*  6307*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6310*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6314*/              OPC_EmitInteger, MVT::i64, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1/*18446744071562067968*/, 
/*  6326*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUB64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                            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>>, 2147483648:{ *:[i64] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                        // Dst: (SUB64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -2147483648:{ *:[i64] })
/*  6338*/            /*Scope*/ 8|128,2/*264*/, /*->6604*/
/*  6340*/              OPC_RecordChild1, // #3 = $src
/*  6341*/              OPC_MoveChild1,
/*  6342*/              OPC_Scope, 25|128,1/*153*/, /*->6498*/ // 4 children in Scope
/*  6345*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6348*/                OPC_Scope, 35, /*->6385*/ // 4 children in Scope
/*  6350*/                  OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  6352*/                  OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  6354*/                  OPC_MoveParent,
/*  6355*/                  OPC_CheckType, MVT::i16,
/*  6357*/                  OPC_MoveParent,
/*  6358*/                  OPC_CheckChild2Same, 2,
/*  6360*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6362*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  6364*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6367*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6371*/                  OPC_EmitConvertToTarget, 3,
/*  6373*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::ADD16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                                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>><<P:Predicate_i16immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                            // Dst: (ADD16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/*  6385*/                /*Scope*/ 35, /*->6421*/
/*  6386*/                  OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  6388*/                  OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  6390*/                  OPC_MoveParent,
/*  6391*/                  OPC_CheckType, MVT::i32,
/*  6393*/                  OPC_MoveParent,
/*  6394*/                  OPC_CheckChild2Same, 2,
/*  6396*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6398*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  6400*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6403*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6407*/                  OPC_EmitConvertToTarget, 3,
/*  6409*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::ADD32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                                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>><<P:Predicate_i32immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                            // Dst: (ADD32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/*  6421*/                /*Scope*/ 37, /*->6459*/
/*  6422*/                  OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  6424*/                  OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  6426*/                  OPC_MoveParent,
/*  6427*/                  OPC_CheckType, MVT::i64,
/*  6429*/                  OPC_MoveParent,
/*  6430*/                  OPC_CheckChild2Same, 2,
/*  6432*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6434*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  6436*/                  OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  6438*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6441*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6445*/                  OPC_EmitConvertToTarget, 3,
/*  6447*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::ADD64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                                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>><<P:Predicate_i64immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                            // Dst: (ADD64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  6459*/                /*Scope*/ 37, /*->6497*/
/*  6460*/                  OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*  6462*/                  OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*  6464*/                  OPC_MoveParent,
/*  6465*/                  OPC_CheckType, MVT::i64,
/*  6467*/                  OPC_MoveParent,
/*  6468*/                  OPC_CheckChild2Same, 2,
/*  6470*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6472*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  6474*/                  OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  6476*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6479*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6483*/                  OPC_EmitConvertToTarget, 3,
/*  6485*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::ADD64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                                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>><<P:Predicate_i64immSExt32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                            // Dst: (ADD64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  6497*/                0, /*End of Scope*/
/*  6498*/              /*Scope*/ 34, /*->6533*/
/*  6499*/                OPC_CheckPredicate, 16, // Predicate_imm8_su
/*  6501*/                OPC_MoveParent,
/*  6502*/                OPC_CheckType, MVT::i8,
/*  6504*/                OPC_MoveParent,
/*  6505*/                OPC_CheckChild2Same, 2,
/*  6507*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6509*/                OPC_CheckPredicate, 1, // Predicate_store
/*  6511*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6514*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  6517*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6521*/                OPC_MorphNodeTo1, TARGET_VAL(X86::ADD8mi), 0|OPFL_Chain|OPFL_MemRefs,
                              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>>, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (ADD8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  6533*/              /*Scope*/ 34, /*->6568*/
/*  6534*/                OPC_CheckPredicate, 16, // Predicate_imm16_su
/*  6536*/                OPC_MoveParent,
/*  6537*/                OPC_CheckType, MVT::i16,
/*  6539*/                OPC_MoveParent,
/*  6540*/                OPC_CheckChild2Same, 2,
/*  6542*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6544*/                OPC_CheckPredicate, 1, // Predicate_store
/*  6546*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6549*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  6552*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6556*/                OPC_MorphNodeTo1, TARGET_VAL(X86::ADD16mi), 0|OPFL_Chain|OPFL_MemRefs,
                              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>>, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (ADD16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  6568*/              /*Scope*/ 34, /*->6603*/
/*  6569*/                OPC_CheckPredicate, 16, // Predicate_imm32_su
/*  6571*/                OPC_MoveParent,
/*  6572*/                OPC_CheckType, MVT::i32,
/*  6574*/                OPC_MoveParent,
/*  6575*/                OPC_CheckChild2Same, 2,
/*  6577*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6579*/                OPC_CheckPredicate, 1, // Predicate_store
/*  6581*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6584*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  6587*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6591*/                OPC_MorphNodeTo1, TARGET_VAL(X86::ADD32mi), 0|OPFL_Chain|OPFL_MemRefs,
                              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>>, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (ADD32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  6603*/              0, /*End of Scope*/
/*  6604*/            0, /*End of Scope*/
/*  6605*/          0, /*End of Scope*/
/*  6606*/        /*Scope*/ 20|128,1/*148*/, /*->6756*/
/*  6608*/          OPC_RecordChild0, // #1 = $src
/*  6609*/          OPC_MoveChild0,
/*  6610*/          OPC_Scope, 47, /*->6659*/ // 3 children in Scope
/*  6612*/            OPC_CheckPredicate, 16, // Predicate_imm8_su
/*  6614*/            OPC_MoveParent,
/*  6615*/            OPC_MoveChild1,
/*  6616*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  6619*/            OPC_RecordMemRef,
/*  6620*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  6621*/            OPC_CheckFoldableChainNode,
/*  6622*/            OPC_RecordChild1, // #3 = $dst
/*  6623*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  6625*/            OPC_CheckPredicate, 9, // Predicate_load
/*  6627*/            OPC_MoveParent,
/*  6628*/            OPC_CheckType, MVT::i8,
/*  6630*/            OPC_MoveParent,
/*  6631*/            OPC_CheckChild2Same, 3,
/*  6633*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6635*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6637*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  6640*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  6643*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  6647*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (add:{ *:[i8] } relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src, (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (ADD8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  6659*/          /*Scope*/ 47, /*->6707*/
/*  6660*/            OPC_CheckPredicate, 16, // Predicate_imm16_su
/*  6662*/            OPC_MoveParent,
/*  6663*/            OPC_MoveChild1,
/*  6664*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  6667*/            OPC_RecordMemRef,
/*  6668*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  6669*/            OPC_CheckFoldableChainNode,
/*  6670*/            OPC_RecordChild1, // #3 = $dst
/*  6671*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  6673*/            OPC_CheckPredicate, 9, // Predicate_load
/*  6675*/            OPC_MoveParent,
/*  6676*/            OPC_CheckType, MVT::i16,
/*  6678*/            OPC_MoveParent,
/*  6679*/            OPC_CheckChild2Same, 3,
/*  6681*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6683*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6685*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  6688*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  6691*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  6695*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (add:{ *:[i16] } relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src, (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (ADD16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  6707*/          /*Scope*/ 47, /*->6755*/
/*  6708*/            OPC_CheckPredicate, 16, // Predicate_imm32_su
/*  6710*/            OPC_MoveParent,
/*  6711*/            OPC_MoveChild1,
/*  6712*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  6715*/            OPC_RecordMemRef,
/*  6716*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  6717*/            OPC_CheckFoldableChainNode,
/*  6718*/            OPC_RecordChild1, // #3 = $dst
/*  6719*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  6721*/            OPC_CheckPredicate, 9, // Predicate_load
/*  6723*/            OPC_MoveParent,
/*  6724*/            OPC_CheckType, MVT::i32,
/*  6726*/            OPC_MoveParent,
/*  6727*/            OPC_CheckChild2Same, 3,
/*  6729*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6731*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6733*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  6736*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  6739*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  6743*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (add:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (ADD32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  6755*/          0, /*End of Scope*/
/*  6756*/        /*Scope*/ 0|128,1/*128*/, /*->6886*/
/*  6758*/          OPC_MoveChild0,
/*  6759*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  6762*/          OPC_RecordMemRef,
/*  6763*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  6764*/          OPC_CheckFoldableChainNode,
/*  6765*/          OPC_RecordChild1, // #2 = $dst
/*  6766*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  6768*/          OPC_CheckPredicate, 9, // Predicate_load
/*  6770*/          OPC_MoveParent,
/*  6771*/          OPC_RecordChild1, // #3 = $src
/*  6772*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->6801
/*  6775*/            OPC_MoveParent,
/*  6776*/            OPC_CheckChild2Same, 2,
/*  6778*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6780*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6782*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6785*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6789*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  6801*/          /*SwitchType*/ 26, MVT::i16,// ->6829
/*  6803*/            OPC_MoveParent,
/*  6804*/            OPC_CheckChild2Same, 2,
/*  6806*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6808*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6810*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6813*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6817*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  6829*/          /*SwitchType*/ 26, MVT::i32,// ->6857
/*  6831*/            OPC_MoveParent,
/*  6832*/            OPC_CheckChild2Same, 2,
/*  6834*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6836*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6838*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6841*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6845*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  6857*/          /*SwitchType*/ 26, MVT::i64,// ->6885
/*  6859*/            OPC_MoveParent,
/*  6860*/            OPC_CheckChild2Same, 2,
/*  6862*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6864*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6866*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6869*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6873*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  6885*/          0, // EndSwitchType
/*  6886*/        /*Scope*/ 0|128,1/*128*/, /*->7016*/
/*  6888*/          OPC_RecordChild0, // #1 = $src
/*  6889*/          OPC_MoveChild1,
/*  6890*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  6893*/          OPC_RecordMemRef,
/*  6894*/          OPC_RecordNode, // #2 = 'ld' chained node
/*  6895*/          OPC_CheckFoldableChainNode,
/*  6896*/          OPC_RecordChild1, // #3 = $dst
/*  6897*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  6899*/          OPC_CheckPredicate, 9, // Predicate_load
/*  6901*/          OPC_MoveParent,
/*  6902*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->6931
/*  6905*/            OPC_MoveParent,
/*  6906*/            OPC_CheckChild2Same, 3,
/*  6908*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6910*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6912*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6915*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  6919*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  6931*/          /*SwitchType*/ 26, MVT::i16,// ->6959
/*  6933*/            OPC_MoveParent,
/*  6934*/            OPC_CheckChild2Same, 3,
/*  6936*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6938*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6940*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6943*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  6947*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  6959*/          /*SwitchType*/ 26, MVT::i32,// ->6987
/*  6961*/            OPC_MoveParent,
/*  6962*/            OPC_CheckChild2Same, 3,
/*  6964*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6966*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6968*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6971*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  6975*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  6987*/          /*SwitchType*/ 26, MVT::i64,// ->7015
/*  6989*/            OPC_MoveParent,
/*  6990*/            OPC_CheckChild2Same, 3,
/*  6992*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6994*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6996*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6999*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7003*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  7015*/          0, // EndSwitchType
/*  7016*/        0, /*End of Scope*/
/*  7017*/      /*SwitchOpcode*/ 51|128,5/*691*/, TARGET_VAL(ISD::AND),// ->7712
/*  7021*/        OPC_Scope, 21|128,2/*277*/, /*->7301*/ // 4 children in Scope
/*  7024*/          OPC_MoveChild0,
/*  7025*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7028*/          OPC_RecordMemRef,
/*  7029*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  7030*/          OPC_CheckFoldableChainNode,
/*  7031*/          OPC_RecordChild1, // #2 = $dst
/*  7032*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7034*/          OPC_CheckPredicate, 9, // Predicate_load
/*  7036*/          OPC_MoveParent,
/*  7037*/          OPC_RecordChild1, // #3 = $src
/*  7038*/          OPC_MoveChild1,
/*  7039*/          OPC_Scope, 25|128,1/*153*/, /*->7195*/ // 4 children in Scope
/*  7042*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7045*/            OPC_Scope, 35, /*->7082*/ // 4 children in Scope
/*  7047*/              OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  7049*/              OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  7051*/              OPC_MoveParent,
/*  7052*/              OPC_CheckType, MVT::i16,
/*  7054*/              OPC_MoveParent,
/*  7055*/              OPC_CheckChild2Same, 2,
/*  7057*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7059*/              OPC_CheckPredicate, 1, // Predicate_store
/*  7061*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7064*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7068*/              OPC_EmitConvertToTarget, 3,
/*  7070*/              OPC_MorphNodeTo1, TARGET_VAL(X86::AND16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            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>><<P:Predicate_i16immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (AND16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/*  7082*/            /*Scope*/ 35, /*->7118*/
/*  7083*/              OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  7085*/              OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  7087*/              OPC_MoveParent,
/*  7088*/              OPC_CheckType, MVT::i32,
/*  7090*/              OPC_MoveParent,
/*  7091*/              OPC_CheckChild2Same, 2,
/*  7093*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7095*/              OPC_CheckPredicate, 1, // Predicate_store
/*  7097*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7100*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7104*/              OPC_EmitConvertToTarget, 3,
/*  7106*/              OPC_MorphNodeTo1, TARGET_VAL(X86::AND32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            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>><<P:Predicate_i32immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (AND32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/*  7118*/            /*Scope*/ 37, /*->7156*/
/*  7119*/              OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  7121*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  7123*/              OPC_MoveParent,
/*  7124*/              OPC_CheckType, MVT::i64,
/*  7126*/              OPC_MoveParent,
/*  7127*/              OPC_CheckChild2Same, 2,
/*  7129*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7131*/              OPC_CheckPredicate, 1, // Predicate_store
/*  7133*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  7135*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7138*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7142*/              OPC_EmitConvertToTarget, 3,
/*  7144*/              OPC_MorphNodeTo1, TARGET_VAL(X86::AND64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            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>><<P:Predicate_i64immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (AND64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  7156*/            /*Scope*/ 37, /*->7194*/
/*  7157*/              OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*  7159*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*  7161*/              OPC_MoveParent,
/*  7162*/              OPC_CheckType, MVT::i64,
/*  7164*/              OPC_MoveParent,
/*  7165*/              OPC_CheckChild2Same, 2,
/*  7167*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7169*/              OPC_CheckPredicate, 1, // Predicate_store
/*  7171*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  7173*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7176*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7180*/              OPC_EmitConvertToTarget, 3,
/*  7182*/              OPC_MorphNodeTo1, TARGET_VAL(X86::AND64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                            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>><<P:Predicate_i64immSExt32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (AND64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  7194*/            0, /*End of Scope*/
/*  7195*/          /*Scope*/ 34, /*->7230*/
/*  7196*/            OPC_CheckPredicate, 16, // Predicate_imm8_su
/*  7198*/            OPC_MoveParent,
/*  7199*/            OPC_CheckType, MVT::i8,
/*  7201*/            OPC_MoveParent,
/*  7202*/            OPC_CheckChild2Same, 2,
/*  7204*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7206*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7208*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7211*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  7214*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7218*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (AND8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  7230*/          /*Scope*/ 34, /*->7265*/
/*  7231*/            OPC_CheckPredicate, 16, // Predicate_imm16_su
/*  7233*/            OPC_MoveParent,
/*  7234*/            OPC_CheckType, MVT::i16,
/*  7236*/            OPC_MoveParent,
/*  7237*/            OPC_CheckChild2Same, 2,
/*  7239*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7241*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7243*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7246*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  7249*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7253*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (AND16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  7265*/          /*Scope*/ 34, /*->7300*/
/*  7266*/            OPC_CheckPredicate, 16, // Predicate_imm32_su
/*  7268*/            OPC_MoveParent,
/*  7269*/            OPC_CheckType, MVT::i32,
/*  7271*/            OPC_MoveParent,
/*  7272*/            OPC_CheckChild2Same, 2,
/*  7274*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7276*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7278*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7281*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  7284*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7288*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (AND32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  7300*/          0, /*End of Scope*/
/*  7301*/        /*Scope*/ 20|128,1/*148*/, /*->7451*/
/*  7303*/          OPC_RecordChild0, // #1 = $src
/*  7304*/          OPC_MoveChild0,
/*  7305*/          OPC_Scope, 47, /*->7354*/ // 3 children in Scope
/*  7307*/            OPC_CheckPredicate, 16, // Predicate_imm8_su
/*  7309*/            OPC_MoveParent,
/*  7310*/            OPC_MoveChild1,
/*  7311*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7314*/            OPC_RecordMemRef,
/*  7315*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  7316*/            OPC_CheckFoldableChainNode,
/*  7317*/            OPC_RecordChild1, // #3 = $dst
/*  7318*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7320*/            OPC_CheckPredicate, 9, // Predicate_load
/*  7322*/            OPC_MoveParent,
/*  7323*/            OPC_CheckType, MVT::i8,
/*  7325*/            OPC_MoveParent,
/*  7326*/            OPC_CheckChild2Same, 3,
/*  7328*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7330*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7332*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  7335*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  7338*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7342*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (and:{ *:[i8] } relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src, (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (AND8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  7354*/          /*Scope*/ 47, /*->7402*/
/*  7355*/            OPC_CheckPredicate, 16, // Predicate_imm16_su
/*  7357*/            OPC_MoveParent,
/*  7358*/            OPC_MoveChild1,
/*  7359*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7362*/            OPC_RecordMemRef,
/*  7363*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  7364*/            OPC_CheckFoldableChainNode,
/*  7365*/            OPC_RecordChild1, // #3 = $dst
/*  7366*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7368*/            OPC_CheckPredicate, 9, // Predicate_load
/*  7370*/            OPC_MoveParent,
/*  7371*/            OPC_CheckType, MVT::i16,
/*  7373*/            OPC_MoveParent,
/*  7374*/            OPC_CheckChild2Same, 3,
/*  7376*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7378*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7380*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  7383*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  7386*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7390*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (and:{ *:[i16] } relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src, (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (AND16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  7402*/          /*Scope*/ 47, /*->7450*/
/*  7403*/            OPC_CheckPredicate, 16, // Predicate_imm32_su
/*  7405*/            OPC_MoveParent,
/*  7406*/            OPC_MoveChild1,
/*  7407*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7410*/            OPC_RecordMemRef,
/*  7411*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  7412*/            OPC_CheckFoldableChainNode,
/*  7413*/            OPC_RecordChild1, // #3 = $dst
/*  7414*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7416*/            OPC_CheckPredicate, 9, // Predicate_load
/*  7418*/            OPC_MoveParent,
/*  7419*/            OPC_CheckType, MVT::i32,
/*  7421*/            OPC_MoveParent,
/*  7422*/            OPC_CheckChild2Same, 3,
/*  7424*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7426*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7428*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  7431*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  7434*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7438*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (and:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (AND32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  7450*/          0, /*End of Scope*/
/*  7451*/        /*Scope*/ 0|128,1/*128*/, /*->7581*/
/*  7453*/          OPC_MoveChild0,
/*  7454*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7457*/          OPC_RecordMemRef,
/*  7458*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  7459*/          OPC_CheckFoldableChainNode,
/*  7460*/          OPC_RecordChild1, // #2 = $dst
/*  7461*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7463*/          OPC_CheckPredicate, 9, // Predicate_load
/*  7465*/          OPC_MoveParent,
/*  7466*/          OPC_RecordChild1, // #3 = $src
/*  7467*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->7496
/*  7470*/            OPC_MoveParent,
/*  7471*/            OPC_CheckChild2Same, 2,
/*  7473*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7475*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7477*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7480*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7484*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  7496*/          /*SwitchType*/ 26, MVT::i16,// ->7524
/*  7498*/            OPC_MoveParent,
/*  7499*/            OPC_CheckChild2Same, 2,
/*  7501*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7503*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7505*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7508*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7512*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  7524*/          /*SwitchType*/ 26, MVT::i32,// ->7552
/*  7526*/            OPC_MoveParent,
/*  7527*/            OPC_CheckChild2Same, 2,
/*  7529*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7531*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7533*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7536*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7540*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  7552*/          /*SwitchType*/ 26, MVT::i64,// ->7580
/*  7554*/            OPC_MoveParent,
/*  7555*/            OPC_CheckChild2Same, 2,
/*  7557*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7559*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7561*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7564*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7568*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  7580*/          0, // EndSwitchType
/*  7581*/        /*Scope*/ 0|128,1/*128*/, /*->7711*/
/*  7583*/          OPC_RecordChild0, // #1 = $src
/*  7584*/          OPC_MoveChild1,
/*  7585*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7588*/          OPC_RecordMemRef,
/*  7589*/          OPC_RecordNode, // #2 = 'ld' chained node
/*  7590*/          OPC_CheckFoldableChainNode,
/*  7591*/          OPC_RecordChild1, // #3 = $dst
/*  7592*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7594*/          OPC_CheckPredicate, 9, // Predicate_load
/*  7596*/          OPC_MoveParent,
/*  7597*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->7626
/*  7600*/            OPC_MoveParent,
/*  7601*/            OPC_CheckChild2Same, 3,
/*  7603*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7605*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7607*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7610*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7614*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  7626*/          /*SwitchType*/ 26, MVT::i16,// ->7654
/*  7628*/            OPC_MoveParent,
/*  7629*/            OPC_CheckChild2Same, 3,
/*  7631*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7633*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7635*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7638*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7642*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  7654*/          /*SwitchType*/ 26, MVT::i32,// ->7682
/*  7656*/            OPC_MoveParent,
/*  7657*/            OPC_CheckChild2Same, 3,
/*  7659*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7661*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7663*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7666*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7670*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  7682*/          /*SwitchType*/ 26, MVT::i64,// ->7710
/*  7684*/            OPC_MoveParent,
/*  7685*/            OPC_CheckChild2Same, 3,
/*  7687*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7689*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7691*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7694*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7698*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  7710*/          0, // EndSwitchType
/*  7711*/        0, /*End of Scope*/
/*  7712*/      /*SwitchOpcode*/ 51|128,5/*691*/, TARGET_VAL(ISD::OR),// ->8407
/*  7716*/        OPC_Scope, 21|128,2/*277*/, /*->7996*/ // 4 children in Scope
/*  7719*/          OPC_MoveChild0,
/*  7720*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7723*/          OPC_RecordMemRef,
/*  7724*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  7725*/          OPC_CheckFoldableChainNode,
/*  7726*/          OPC_RecordChild1, // #2 = $dst
/*  7727*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7729*/          OPC_CheckPredicate, 9, // Predicate_load
/*  7731*/          OPC_MoveParent,
/*  7732*/          OPC_RecordChild1, // #3 = $src
/*  7733*/          OPC_MoveChild1,
/*  7734*/          OPC_Scope, 25|128,1/*153*/, /*->7890*/ // 4 children in Scope
/*  7737*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7740*/            OPC_Scope, 35, /*->7777*/ // 4 children in Scope
/*  7742*/              OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  7744*/              OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  7746*/              OPC_MoveParent,
/*  7747*/              OPC_CheckType, MVT::i16,
/*  7749*/              OPC_MoveParent,
/*  7750*/              OPC_CheckChild2Same, 2,
/*  7752*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7754*/              OPC_CheckPredicate, 1, // Predicate_store
/*  7756*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7759*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7763*/              OPC_EmitConvertToTarget, 3,
/*  7765*/              OPC_MorphNodeTo1, TARGET_VAL(X86::OR16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            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>><<P:Predicate_i16immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (OR16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/*  7777*/            /*Scope*/ 35, /*->7813*/
/*  7778*/              OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  7780*/              OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  7782*/              OPC_MoveParent,
/*  7783*/              OPC_CheckType, MVT::i32,
/*  7785*/              OPC_MoveParent,
/*  7786*/              OPC_CheckChild2Same, 2,
/*  7788*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7790*/              OPC_CheckPredicate, 1, // Predicate_store
/*  7792*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7795*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7799*/              OPC_EmitConvertToTarget, 3,
/*  7801*/              OPC_MorphNodeTo1, TARGET_VAL(X86::OR32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            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>><<P:Predicate_i32immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (OR32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/*  7813*/            /*Scope*/ 37, /*->7851*/
/*  7814*/              OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  7816*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  7818*/              OPC_MoveParent,
/*  7819*/              OPC_CheckType, MVT::i64,
/*  7821*/              OPC_MoveParent,
/*  7822*/              OPC_CheckChild2Same, 2,
/*  7824*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7826*/              OPC_CheckPredicate, 1, // Predicate_store
/*  7828*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  7830*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7833*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7837*/              OPC_EmitConvertToTarget, 3,
/*  7839*/              OPC_MorphNodeTo1, TARGET_VAL(X86::OR64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            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>><<P:Predicate_i64immSExt8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (OR64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  7851*/            /*Scope*/ 37, /*->7889*/
/*  7852*/              OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*  7854*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*  7856*/              OPC_MoveParent,
/*  7857*/              OPC_CheckType, MVT::i64,
/*  7859*/              OPC_MoveParent,
/*  7860*/              OPC_CheckChild2Same, 2,
/*  7862*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7864*/              OPC_CheckPredicate, 1, // Predicate_store
/*  7866*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  7868*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7871*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7875*/              OPC_EmitConvertToTarget, 3,
/*  7877*/              OPC_MorphNodeTo1, TARGET_VAL(X86::OR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                            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>><<P:Predicate_i64immSExt32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (OR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  7889*/            0, /*End of Scope*/
/*  7890*/          /*Scope*/ 34, /*->7925*/
/*  7891*/            OPC_CheckPredicate, 16, // Predicate_imm8_su
/*  7893*/            OPC_MoveParent,
/*  7894*/            OPC_CheckType, MVT::i8,
/*  7896*/            OPC_MoveParent,
/*  7897*/            OPC_CheckChild2Same, 2,
/*  7899*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7901*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7903*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7906*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  7909*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7913*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (OR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  7925*/          /*Scope*/ 34, /*->7960*/
/*  7926*/            OPC_CheckPredicate, 16, // Predicate_imm16_su
/*  7928*/            OPC_MoveParent,
/*  7929*/            OPC_CheckType, MVT::i16,
/*  7931*/            OPC_MoveParent,
/*  7932*/            OPC_CheckChild2Same, 2,
/*  7934*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7936*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7938*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7941*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  7944*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7948*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (OR16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  7960*/          /*Scope*/ 34, /*->7995*/
/*  7961*/            OPC_CheckPredicate, 16, // Predicate_imm32_su
/*  7963*/            OPC_MoveParent,
/*  7964*/            OPC_CheckType, MVT::i32,
/*  7966*/            OPC_MoveParent,
/*  7967*/            OPC_CheckChild2Same, 2,
/*  7969*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7971*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7973*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7976*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  7979*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7983*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (OR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  7995*/          0, /*End of Scope*/
/*  7996*/        /*Scope*/ 20|128,1/*148*/, /*->8146*/
/*  7998*/          OPC_RecordChild0, // #1 = $src
/*  7999*/          OPC_MoveChild0,
/*  8000*/          OPC_Scope, 47, /*->8049*/ // 3 children in Scope
/*  8002*/            OPC_CheckPredicate, 16, // Predicate_imm8_su
/*  8004*/            OPC_MoveParent,
/*  8005*/            OPC_MoveChild1,
/*  8006*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8009*/            OPC_RecordMemRef,
/*  8010*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  8011*/            OPC_CheckFoldableChainNode,
/*  8012*/            OPC_RecordChild1, // #3 = $dst
/*  8013*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8015*/            OPC_CheckPredicate, 9, // Predicate_load
/*  8017*/            OPC_MoveParent,
/*  8018*/            OPC_CheckType, MVT::i8,
/*  8020*/            OPC_MoveParent,
/*  8021*/            OPC_CheckChild2Same, 3,
/*  8023*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8025*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8027*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  8030*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8033*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8037*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (or:{ *:[i8] } relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src, (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (OR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  8049*/          /*Scope*/ 47, /*->8097*/
/*  8050*/            OPC_CheckPredicate, 16, // Predicate_imm16_su
/*  8052*/            OPC_MoveParent,
/*  8053*/            OPC_MoveChild1,
/*  8054*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8057*/            OPC_RecordMemRef,
/*  8058*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  8059*/            OPC_CheckFoldableChainNode,
/*  8060*/            OPC_RecordChild1, // #3 = $dst
/*  8061*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8063*/            OPC_CheckPredicate, 9, // Predicate_load
/*  8065*/            OPC_MoveParent,
/*  8066*/            OPC_CheckType, MVT::i16,
/*  8068*/            OPC_MoveParent,
/*  8069*/            OPC_CheckChild2Same, 3,
/*  8071*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8073*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8075*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  8078*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8081*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8085*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (or:{ *:[i16] } relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src, (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (OR16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  8097*/          /*Scope*/ 47, /*->8145*/
/*  8098*/            OPC_CheckPredicate, 16, // Predicate_imm32_su
/*  8100*/            OPC_MoveParent,
/*  8101*/            OPC_MoveChild1,
/*  8102*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8105*/            OPC_RecordMemRef,
/*  8106*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  8107*/            OPC_CheckFoldableChainNode,
/*  8108*/            OPC_RecordChild1, // #3 = $dst
/*  8109*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8111*/            OPC_CheckPredicate, 9, // Predicate_load
/*  8113*/            OPC_MoveParent,
/*  8114*/            OPC_CheckType, MVT::i32,
/*  8116*/            OPC_MoveParent,
/*  8117*/            OPC_CheckChild2Same, 3,
/*  8119*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8121*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8123*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  8126*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8129*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8133*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (or:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (OR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  8145*/          0, /*End of Scope*/
/*  8146*/        /*Scope*/ 0|128,1/*128*/, /*->8276*/
/*  8148*/          OPC_MoveChild0,
/*  8149*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8152*/          OPC_RecordMemRef,
/*  8153*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  8154*/          OPC_CheckFoldableChainNode,
/*  8155*/          OPC_RecordChild1, // #2 = $dst
/*  8156*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8158*/          OPC_CheckPredicate, 9, // Predicate_load
/*  8160*/          OPC_MoveParent,
/*  8161*/          OPC_RecordChild1, // #3 = $src
/*  8162*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->8191
/*  8165*/            OPC_MoveParent,
/*  8166*/            OPC_CheckChild2Same, 2,
/*  8168*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8170*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8172*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8175*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8179*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  8191*/          /*SwitchType*/ 26, MVT::i16,// ->8219
/*  8193*/            OPC_MoveParent,
/*  8194*/            OPC_CheckChild2Same, 2,
/*  8196*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8198*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8200*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8203*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8207*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  8219*/          /*SwitchType*/ 26, MVT::i32,// ->8247
/*  8221*/            OPC_MoveParent,
/*  8222*/            OPC_CheckChild2Same, 2,
/*  8224*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8226*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8228*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8231*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8235*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  8247*/          /*SwitchType*/ 26, MVT::i64,// ->8275
/*  8249*/            OPC_MoveParent,
/*  8250*/            OPC_CheckChild2Same, 2,
/*  8252*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8254*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8256*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8259*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8263*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  8275*/          0, // EndSwitchType
/*  8276*/        /*Scope*/ 0|128,1/*128*/, /*->8406*/
/*  8278*/          OPC_RecordChild0, // #1 = $src
/*  8279*/          OPC_MoveChild1,
/*  8280*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8283*/          OPC_RecordMemRef,
/*  8284*/          OPC_RecordNode, // #2 = 'ld' chained node
/*  8285*/          OPC_CheckFoldableChainNode,
/*  8286*/          OPC_RecordChild1, // #3 = $dst
/*  8287*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8289*/          OPC_CheckPredicate, 9, // Predicate_load
/*  8291*/          OPC_MoveParent,
/*  8292*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->8321
/*  8295*/            OPC_MoveParent,
/*  8296*/            OPC_CheckChild2Same, 3,
/*  8298*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8300*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8302*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8305*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8309*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  8321*/          /*SwitchType*/ 26, MVT::i16,// ->8349
/*  8323*/            OPC_MoveParent,
/*  8324*/            OPC_CheckChild2Same, 3,
/*  8326*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8328*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8330*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8333*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8337*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  8349*/          /*SwitchType*/ 26, MVT::i32,// ->8377
/*  8351*/            OPC_MoveParent,
/*  8352*/            OPC_CheckChild2Same, 3,
/*  8354*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8356*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8358*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8361*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8365*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  8377*/          /*SwitchType*/ 26, MVT::i64,// ->8405
/*  8379*/            OPC_MoveParent,
/*  8380*/            OPC_CheckChild2Same, 3,
/*  8382*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8384*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8386*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8389*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8393*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*  8405*/          0, // EndSwitchType
/*  8406*/        0, /*End of Scope*/
/*  8407*/      /*SwitchOpcode*/ 53|128,3/*437*/, TARGET_VAL(X86ISD::ADC),// ->8848
/*  8411*/        OPC_MoveChild0,
/*  8412*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8415*/        OPC_RecordMemRef,
/*  8416*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  8417*/        OPC_CheckFoldableChainNode,
/*  8418*/        OPC_RecordChild1, // #2 = $dst
/*  8419*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8421*/        OPC_CheckPredicate, 9, // Predicate_load
/*  8423*/        OPC_MoveParent,
/*  8424*/        OPC_RecordChild1, // #3 = $src
/*  8425*/        OPC_Scope, 35|128,2/*291*/, /*->8719*/ // 2 children in Scope
/*  8428*/          OPC_MoveChild1,
/*  8429*/          OPC_Scope, 41|128,1/*169*/, /*->8601*/ // 4 children in Scope
/*  8432*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8435*/            OPC_Scope, 39, /*->8476*/ // 4 children in Scope
/*  8437*/              OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  8439*/              OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  8441*/              OPC_MoveParent,
/*  8442*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8443*/              OPC_CheckType, MVT::i16,
/*  8445*/              OPC_MoveParent,
/*  8446*/              OPC_CheckChild2Same, 2,
/*  8448*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8450*/              OPC_CheckPredicate, 1, // Predicate_store
/*  8452*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8455*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8459*/              OPC_EmitConvertToTarget, 3,
/*  8461*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8464*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADC16mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                            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>><<P:Predicate_i16immSExt8_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (ADC16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/*  8476*/            /*Scope*/ 39, /*->8516*/
/*  8477*/              OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  8479*/              OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  8481*/              OPC_MoveParent,
/*  8482*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8483*/              OPC_CheckType, MVT::i32,
/*  8485*/              OPC_MoveParent,
/*  8486*/              OPC_CheckChild2Same, 2,
/*  8488*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8490*/              OPC_CheckPredicate, 1, // Predicate_store
/*  8492*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8495*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8499*/              OPC_EmitConvertToTarget, 3,
/*  8501*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8504*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADC32mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                            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>><<P:Predicate_i32immSExt8_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (ADC32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/*  8516*/            /*Scope*/ 41, /*->8558*/
/*  8517*/              OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  8519*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  8521*/              OPC_MoveParent,
/*  8522*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8523*/              OPC_CheckType, MVT::i64,
/*  8525*/              OPC_MoveParent,
/*  8526*/              OPC_CheckChild2Same, 2,
/*  8528*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8530*/              OPC_CheckPredicate, 1, // Predicate_store
/*  8532*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  8534*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8537*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8541*/              OPC_EmitConvertToTarget, 3,
/*  8543*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8546*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADC64mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                            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>><<P:Predicate_i64immSExt8_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (ADC64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  8558*/            /*Scope*/ 41, /*->8600*/
/*  8559*/              OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*  8561*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*  8563*/              OPC_MoveParent,
/*  8564*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8565*/              OPC_CheckType, MVT::i64,
/*  8567*/              OPC_MoveParent,
/*  8568*/              OPC_CheckChild2Same, 2,
/*  8570*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8572*/              OPC_CheckPredicate, 1, // Predicate_store
/*  8574*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  8576*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8579*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8583*/              OPC_EmitConvertToTarget, 3,
/*  8585*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8588*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADC64mi32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                            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>><<P:Predicate_i64immSExt32_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (ADC64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  8600*/            0, /*End of Scope*/
/*  8601*/          /*Scope*/ 38, /*->8640*/
/*  8602*/            OPC_CheckPredicate, 16, // Predicate_imm8_su
/*  8604*/            OPC_MoveParent,
/*  8605*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8606*/            OPC_CheckType, MVT::i8,
/*  8608*/            OPC_MoveParent,
/*  8609*/            OPC_CheckChild2Same, 2,
/*  8611*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8613*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8615*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8618*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  8621*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8625*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8628*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADC8mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (ADC8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  8640*/          /*Scope*/ 38, /*->8679*/
/*  8641*/            OPC_CheckPredicate, 16, // Predicate_imm16_su
/*  8643*/            OPC_MoveParent,
/*  8644*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8645*/            OPC_CheckType, MVT::i16,
/*  8647*/            OPC_MoveParent,
/*  8648*/            OPC_CheckChild2Same, 2,
/*  8650*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8652*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8654*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8657*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  8660*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8664*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8667*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADC16mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (ADC16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  8679*/          /*Scope*/ 38, /*->8718*/
/*  8680*/            OPC_CheckPredicate, 16, // Predicate_imm32_su
/*  8682*/            OPC_MoveParent,
/*  8683*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8684*/            OPC_CheckType, MVT::i32,
/*  8686*/            OPC_MoveParent,
/*  8687*/            OPC_CheckChild2Same, 2,
/*  8689*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8691*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8693*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8696*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  8699*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8703*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8706*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADC32mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (ADC32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  8718*/          0, /*End of Scope*/
/*  8719*/        /*Scope*/ 127, /*->8847*/
/*  8720*/          OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8721*/          OPC_SwitchType /*4 cases */, 29, MVT::i8,// ->8753
/*  8724*/            OPC_MoveParent,
/*  8725*/            OPC_CheckChild2Same, 2,
/*  8727*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8729*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8731*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8734*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8738*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8741*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADC8mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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)
/*  8753*/          /*SwitchType*/ 29, MVT::i16,// ->8784
/*  8755*/            OPC_MoveParent,
/*  8756*/            OPC_CheckChild2Same, 2,
/*  8758*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8760*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8762*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8765*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8769*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8772*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADC16mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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)
/*  8784*/          /*SwitchType*/ 29, MVT::i32,// ->8815
/*  8786*/            OPC_MoveParent,
/*  8787*/            OPC_CheckChild2Same, 2,
/*  8789*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8791*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8793*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8796*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8800*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8803*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADC32mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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)
/*  8815*/          /*SwitchType*/ 29, MVT::i64,// ->8846
/*  8817*/            OPC_MoveParent,
/*  8818*/            OPC_CheckChild2Same, 2,
/*  8820*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8822*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8824*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8827*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8831*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8834*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADC64mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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)
/*  8846*/          0, // EndSwitchType
/*  8847*/        0, /*End of Scope*/
/*  8848*/      /*SwitchOpcode*/ 53|128,3/*437*/, TARGET_VAL(X86ISD::SBB),// ->9289
/*  8852*/        OPC_MoveChild0,
/*  8853*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8856*/        OPC_RecordMemRef,
/*  8857*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  8858*/        OPC_CheckFoldableChainNode,
/*  8859*/        OPC_RecordChild1, // #2 = $dst
/*  8860*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8862*/        OPC_CheckPredicate, 9, // Predicate_load
/*  8864*/        OPC_MoveParent,
/*  8865*/        OPC_RecordChild1, // #3 = $src
/*  8866*/        OPC_Scope, 35|128,2/*291*/, /*->9160*/ // 2 children in Scope
/*  8869*/          OPC_MoveChild1,
/*  8870*/          OPC_Scope, 41|128,1/*169*/, /*->9042*/ // 4 children in Scope
/*  8873*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8876*/            OPC_Scope, 39, /*->8917*/ // 4 children in Scope
/*  8878*/              OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  8880*/              OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  8882*/              OPC_MoveParent,
/*  8883*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8884*/              OPC_CheckType, MVT::i16,
/*  8886*/              OPC_MoveParent,
/*  8887*/              OPC_CheckChild2Same, 2,
/*  8889*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8891*/              OPC_CheckPredicate, 1, // Predicate_store
/*  8893*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8896*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8900*/              OPC_EmitConvertToTarget, 3,
/*  8902*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8905*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SBB16mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                            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>><<P:Predicate_i16immSExt8_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (SBB16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/*  8917*/            /*Scope*/ 39, /*->8957*/
/*  8918*/              OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  8920*/              OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  8922*/              OPC_MoveParent,
/*  8923*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8924*/              OPC_CheckType, MVT::i32,
/*  8926*/              OPC_MoveParent,
/*  8927*/              OPC_CheckChild2Same, 2,
/*  8929*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8931*/              OPC_CheckPredicate, 1, // Predicate_store
/*  8933*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8936*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8940*/              OPC_EmitConvertToTarget, 3,
/*  8942*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8945*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SBB32mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                            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>><<P:Predicate_i32immSExt8_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (SBB32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/*  8957*/            /*Scope*/ 41, /*->8999*/
/*  8958*/              OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  8960*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  8962*/              OPC_MoveParent,
/*  8963*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8964*/              OPC_CheckType, MVT::i64,
/*  8966*/              OPC_MoveParent,
/*  8967*/              OPC_CheckChild2Same, 2,
/*  8969*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8971*/              OPC_CheckPredicate, 1, // Predicate_store
/*  8973*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  8975*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8978*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8982*/              OPC_EmitConvertToTarget, 3,
/*  8984*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8987*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SBB64mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                            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>><<P:Predicate_i64immSExt8_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (SBB64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  8999*/            /*Scope*/ 41, /*->9041*/
/*  9000*/              OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*  9002*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*  9004*/              OPC_MoveParent,
/*  9005*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9006*/              OPC_CheckType, MVT::i64,
/*  9008*/              OPC_MoveParent,
/*  9009*/              OPC_CheckChild2Same, 2,
/*  9011*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9013*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9015*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  9017*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9020*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9024*/              OPC_EmitConvertToTarget, 3,
/*  9026*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9029*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SBB64mi32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                            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>><<P:Predicate_i64immSExt32_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                        // Dst: (SBB64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/*  9041*/            0, /*End of Scope*/
/*  9042*/          /*Scope*/ 38, /*->9081*/
/*  9043*/            OPC_CheckPredicate, 16, // Predicate_imm8_su
/*  9045*/            OPC_MoveParent,
/*  9046*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9047*/            OPC_CheckType, MVT::i8,
/*  9049*/            OPC_MoveParent,
/*  9050*/            OPC_CheckChild2Same, 2,
/*  9052*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9054*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9056*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9059*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  9062*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9066*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9069*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SBB8mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (SBB8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  9081*/          /*Scope*/ 38, /*->9120*/
/*  9082*/            OPC_CheckPredicate, 16, // Predicate_imm16_su
/*  9084*/            OPC_MoveParent,
/*  9085*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9086*/            OPC_CheckType, MVT::i16,
/*  9088*/            OPC_MoveParent,
/*  9089*/            OPC_CheckChild2Same, 2,
/*  9091*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9093*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9095*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9098*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  9101*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9105*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9108*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SBB16mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (SBB16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  9120*/          /*Scope*/ 38, /*->9159*/
/*  9121*/            OPC_CheckPredicate, 16, // Predicate_imm32_su
/*  9123*/            OPC_MoveParent,
/*  9124*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9125*/            OPC_CheckType, MVT::i32,
/*  9127*/            OPC_MoveParent,
/*  9128*/            OPC_CheckChild2Same, 2,
/*  9130*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9132*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9134*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9137*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  9140*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9144*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9147*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SBB32mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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>>, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (SBB32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  9159*/          0, /*End of Scope*/
/*  9160*/        /*Scope*/ 127, /*->9288*/
/*  9161*/          OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9162*/          OPC_SwitchType /*4 cases */, 29, MVT::i8,// ->9194
/*  9165*/            OPC_MoveParent,
/*  9166*/            OPC_CheckChild2Same, 2,
/*  9168*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9170*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9172*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9175*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9179*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9182*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SBB8mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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)
/*  9194*/          /*SwitchType*/ 29, MVT::i16,// ->9225
/*  9196*/            OPC_MoveParent,
/*  9197*/            OPC_CheckChild2Same, 2,
/*  9199*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9201*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9203*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9206*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9210*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9213*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SBB16mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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)
/*  9225*/          /*SwitchType*/ 29, MVT::i32,// ->9256
/*  9227*/            OPC_MoveParent,
/*  9228*/            OPC_CheckChild2Same, 2,
/*  9230*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9232*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9234*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9237*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9241*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9244*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SBB32mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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)
/*  9256*/          /*SwitchType*/ 29, MVT::i64,// ->9287
/*  9258*/            OPC_MoveParent,
/*  9259*/            OPC_CheckChild2Same, 2,
/*  9261*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9263*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9265*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9268*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9272*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9275*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SBB64mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          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)
/*  9287*/          0, // EndSwitchType
/*  9288*/        0, /*End of Scope*/
/*  9289*/      /*SwitchOpcode*/ 5|128,2/*261*/, TARGET_VAL(X86ISD::SHLD),// ->9554
/*  9293*/        OPC_MoveChild0,
/*  9294*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  9297*/        OPC_RecordMemRef,
/*  9298*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  9299*/        OPC_CheckFoldableChainNode,
/*  9300*/        OPC_RecordChild1, // #2 = $dst
/*  9301*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  9303*/        OPC_Scope, 43, /*->9348*/ // 6 children in Scope
/*  9305*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  9307*/          OPC_MoveParent,
/*  9308*/          OPC_RecordChild1, // #3 = $src2
/*  9309*/          OPC_RecordChild2, // #4 = $src3
/*  9310*/          OPC_MoveChild2,
/*  9311*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9314*/          OPC_CheckType, MVT::i8,
/*  9316*/          OPC_MoveParent,
/*  9317*/          OPC_CheckType, MVT::i16,
/*  9319*/          OPC_MoveParent,
/*  9320*/          OPC_CheckChild2Same, 2,
/*  9322*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9324*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9326*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9329*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9333*/          OPC_EmitConvertToTarget, 4,
/*  9335*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHLD16mri8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  9348*/        /*Scope*/ 43, /*->9392*/
/*  9349*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  9351*/          OPC_MoveParent,
/*  9352*/          OPC_RecordChild1, // #3 = $src2
/*  9353*/          OPC_RecordChild2, // #4 = $src3
/*  9354*/          OPC_MoveChild2,
/*  9355*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9358*/          OPC_CheckType, MVT::i8,
/*  9360*/          OPC_MoveParent,
/*  9361*/          OPC_CheckType, MVT::i32,
/*  9363*/          OPC_MoveParent,
/*  9364*/          OPC_CheckChild2Same, 2,
/*  9366*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9368*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9370*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9373*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9377*/          OPC_EmitConvertToTarget, 4,
/*  9379*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHLD32mri8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  9392*/        /*Scope*/ 43, /*->9436*/
/*  9393*/          OPC_CheckPredicate, 9, // Predicate_load
/*  9395*/          OPC_MoveParent,
/*  9396*/          OPC_RecordChild1, // #3 = $src2
/*  9397*/          OPC_RecordChild2, // #4 = $src3
/*  9398*/          OPC_MoveChild2,
/*  9399*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9402*/          OPC_CheckType, MVT::i8,
/*  9404*/          OPC_MoveParent,
/*  9405*/          OPC_CheckType, MVT::i64,
/*  9407*/          OPC_MoveParent,
/*  9408*/          OPC_CheckChild2Same, 2,
/*  9410*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9412*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9414*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9417*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9421*/          OPC_EmitConvertToTarget, 4,
/*  9423*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHLD64mri8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  9436*/        /*Scope*/ 38, /*->9475*/
/*  9437*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  9439*/          OPC_MoveParent,
/*  9440*/          OPC_RecordChild1, // #3 = $src2
/*  9441*/          OPC_RecordChild2, // #4 = physreg input CL
/*  9442*/          OPC_CheckChild2Type, MVT::i8,
/*  9444*/          OPC_CheckType, MVT::i16,
/*  9446*/          OPC_MoveParent,
/*  9447*/          OPC_CheckChild2Same, 2,
/*  9449*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9451*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9453*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9456*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9460*/          OPC_EmitCopyToReg, 4, X86::CL,
/*  9463*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHLD16mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  9475*/        /*Scope*/ 38, /*->9514*/
/*  9476*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  9478*/          OPC_MoveParent,
/*  9479*/          OPC_RecordChild1, // #3 = $src2
/*  9480*/          OPC_RecordChild2, // #4 = physreg input CL
/*  9481*/          OPC_CheckChild2Type, MVT::i8,
/*  9483*/          OPC_CheckType, MVT::i32,
/*  9485*/          OPC_MoveParent,
/*  9486*/          OPC_CheckChild2Same, 2,
/*  9488*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9490*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9492*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9495*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9499*/          OPC_EmitCopyToReg, 4, X86::CL,
/*  9502*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHLD32mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  9514*/        /*Scope*/ 38, /*->9553*/
/*  9515*/          OPC_CheckPredicate, 9, // Predicate_load
/*  9517*/          OPC_MoveParent,
/*  9518*/          OPC_RecordChild1, // #3 = $src2
/*  9519*/          OPC_RecordChild2, // #4 = physreg input CL
/*  9520*/          OPC_CheckChild2Type, MVT::i8,
/*  9522*/          OPC_CheckType, MVT::i64,
/*  9524*/          OPC_MoveParent,
/*  9525*/          OPC_CheckChild2Same, 2,
/*  9527*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9529*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9531*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9534*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9538*/          OPC_EmitCopyToReg, 4, X86::CL,
/*  9541*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHLD64mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  9553*/        0, /*End of Scope*/
/*  9554*/      /*SwitchOpcode*/ 5|128,2/*261*/, TARGET_VAL(X86ISD::SHRD),// ->9819
/*  9558*/        OPC_MoveChild0,
/*  9559*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  9562*/        OPC_RecordMemRef,
/*  9563*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  9564*/        OPC_CheckFoldableChainNode,
/*  9565*/        OPC_RecordChild1, // #2 = $dst
/*  9566*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  9568*/        OPC_Scope, 43, /*->9613*/ // 6 children in Scope
/*  9570*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  9572*/          OPC_MoveParent,
/*  9573*/          OPC_RecordChild1, // #3 = $src2
/*  9574*/          OPC_RecordChild2, // #4 = $src3
/*  9575*/          OPC_MoveChild2,
/*  9576*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9579*/          OPC_CheckType, MVT::i8,
/*  9581*/          OPC_MoveParent,
/*  9582*/          OPC_CheckType, MVT::i16,
/*  9584*/          OPC_MoveParent,
/*  9585*/          OPC_CheckChild2Same, 2,
/*  9587*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9589*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9591*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9594*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9598*/          OPC_EmitConvertToTarget, 4,
/*  9600*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRD16mri8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  9613*/        /*Scope*/ 43, /*->9657*/
/*  9614*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  9616*/          OPC_MoveParent,
/*  9617*/          OPC_RecordChild1, // #3 = $src2
/*  9618*/          OPC_RecordChild2, // #4 = $src3
/*  9619*/          OPC_MoveChild2,
/*  9620*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9623*/          OPC_CheckType, MVT::i8,
/*  9625*/          OPC_MoveParent,
/*  9626*/          OPC_CheckType, MVT::i32,
/*  9628*/          OPC_MoveParent,
/*  9629*/          OPC_CheckChild2Same, 2,
/*  9631*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9633*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9635*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9638*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9642*/          OPC_EmitConvertToTarget, 4,
/*  9644*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRD32mri8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  9657*/        /*Scope*/ 43, /*->9701*/
/*  9658*/          OPC_CheckPredicate, 9, // Predicate_load
/*  9660*/          OPC_MoveParent,
/*  9661*/          OPC_RecordChild1, // #3 = $src2
/*  9662*/          OPC_RecordChild2, // #4 = $src3
/*  9663*/          OPC_MoveChild2,
/*  9664*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9667*/          OPC_CheckType, MVT::i8,
/*  9669*/          OPC_MoveParent,
/*  9670*/          OPC_CheckType, MVT::i64,
/*  9672*/          OPC_MoveParent,
/*  9673*/          OPC_CheckChild2Same, 2,
/*  9675*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9677*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9679*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9682*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9686*/          OPC_EmitConvertToTarget, 4,
/*  9688*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRD64mri8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*  9701*/        /*Scope*/ 38, /*->9740*/
/*  9702*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  9704*/          OPC_MoveParent,
/*  9705*/          OPC_RecordChild1, // #3 = $src2
/*  9706*/          OPC_RecordChild2, // #4 = physreg input CL
/*  9707*/          OPC_CheckChild2Type, MVT::i8,
/*  9709*/          OPC_CheckType, MVT::i16,
/*  9711*/          OPC_MoveParent,
/*  9712*/          OPC_CheckChild2Same, 2,
/*  9714*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9716*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9718*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9721*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9725*/          OPC_EmitCopyToReg, 4, X86::CL,
/*  9728*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRD16mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  9740*/        /*Scope*/ 38, /*->9779*/
/*  9741*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  9743*/          OPC_MoveParent,
/*  9744*/          OPC_RecordChild1, // #3 = $src2
/*  9745*/          OPC_RecordChild2, // #4 = physreg input CL
/*  9746*/          OPC_CheckChild2Type, MVT::i8,
/*  9748*/          OPC_CheckType, MVT::i32,
/*  9750*/          OPC_MoveParent,
/*  9751*/          OPC_CheckChild2Same, 2,
/*  9753*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9755*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9757*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9760*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9764*/          OPC_EmitCopyToReg, 4, X86::CL,
/*  9767*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRD32mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  9779*/        /*Scope*/ 38, /*->9818*/
/*  9780*/          OPC_CheckPredicate, 9, // Predicate_load
/*  9782*/          OPC_MoveParent,
/*  9783*/          OPC_RecordChild1, // #3 = $src2
/*  9784*/          OPC_RecordChild2, // #4 = physreg input CL
/*  9785*/          OPC_CheckChild2Type, MVT::i8,
/*  9787*/          OPC_CheckType, MVT::i64,
/*  9789*/          OPC_MoveParent,
/*  9790*/          OPC_CheckChild2Same, 2,
/*  9792*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9794*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9796*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9799*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9803*/          OPC_EmitCopyToReg, 4, X86::CL,
/*  9806*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRD64mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/*  9818*/        0, /*End of Scope*/
/*  9819*/      /*SwitchOpcode*/ 4|128,8/*1028*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->10851
/*  9823*/        OPC_Scope, 72|128,4/*584*/, /*->10410*/ // 2 children in Scope
/*  9826*/          OPC_MoveChild0,
/*  9827*/          OPC_SwitchOpcode /*4 cases */, 32|128,1/*160*/, TARGET_VAL(X86ISD::UNPCKH),// ->9992
/*  9832*/            OPC_Scope, 84, /*->9918*/ // 2 children in Scope
/*  9834*/              OPC_MoveChild0,
/*  9835*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  9838*/              OPC_RecordChild0, // #1 = $src
/*  9839*/              OPC_CheckChild0Type, MVT::v4f32,
/*  9841*/              OPC_MoveParent,
/*  9842*/              OPC_MoveChild1,
/*  9843*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  9846*/              OPC_CheckChild0Same, 1,
/*  9848*/              OPC_MoveParent,
/*  9849*/              OPC_CheckType, MVT::v2f64,
/*  9851*/              OPC_MoveParent,
/*  9852*/              OPC_CheckChild1Integer, 0, 
/*  9854*/              OPC_CheckType, MVT::f64,
/*  9856*/              OPC_MoveParent,
/*  9857*/              OPC_RecordChild2, // #2 = $dst
/*  9858*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9860*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9862*/              OPC_Scope, 17, /*->9881*/ // 3 children in Scope
/*  9864*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*  9866*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  9869*/                OPC_EmitMergeInputChains1_0,
/*  9870*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVHPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[f64] } (X86Unpckh:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src), (bitconvert:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src)), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 39
                          // Dst: (VMOVHPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4f32] }:$src)
/*  9881*/              /*Scope*/ 17, /*->9899*/
/*  9882*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*  9884*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  9887*/                OPC_EmitMergeInputChains1_0,
/*  9888*/                OPC_MorphNodeTo0, TARGET_VAL(X86::MOVHPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[f64] } (X86Unpckh:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src), (bitconvert:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src)), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 39
                          // Dst: (MOVHPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4f32] }:$src)
/*  9899*/              /*Scope*/ 17, /*->9917*/
/*  9900*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*  9902*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  9905*/                OPC_EmitMergeInputChains1_0,
/*  9906*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVHPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[f64] } (X86Unpckh:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src)), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 39
                          // Dst: (VMOVHPSZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4f32] }:$src)
/*  9917*/              0, /*End of Scope*/
/*  9918*/            /*Scope*/ 72, /*->9991*/
/*  9919*/              OPC_RecordChild0, // #1 = $src
/*  9920*/              OPC_CheckChild1Same, 1,
/*  9922*/              OPC_CheckType, MVT::v2f64,
/*  9924*/              OPC_MoveParent,
/*  9925*/              OPC_CheckChild1Integer, 0, 
/*  9927*/              OPC_CheckType, MVT::f64,
/*  9929*/              OPC_MoveParent,
/*  9930*/              OPC_RecordChild2, // #2 = $dst
/*  9931*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9933*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9935*/              OPC_Scope, 17, /*->9954*/ // 3 children in Scope
/*  9937*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*  9939*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  9942*/                OPC_EmitMergeInputChains1_0,
/*  9943*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVHPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[f64] } (X86Unpckh:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, VR128:{ *:[v2f64] }:$src), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 33
                          // Dst: (VMOVHPDmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2f64] }:$src)
/*  9954*/              /*Scope*/ 17, /*->9972*/
/*  9955*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*  9957*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  9960*/                OPC_EmitMergeInputChains1_0,
/*  9961*/                OPC_MorphNodeTo0, TARGET_VAL(X86::MOVHPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[f64] } (X86Unpckh:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, VR128:{ *:[v2f64] }:$src), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 33
                          // Dst: (MOVHPDmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2f64] }:$src)
/*  9972*/              /*Scope*/ 17, /*->9990*/
/*  9973*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*  9975*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  9978*/                OPC_EmitMergeInputChains1_0,
/*  9979*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVHPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[f64] } (X86Unpckh:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, VR128X:{ *:[v2f64] }:$src), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 33
                          // Dst: (VMOVHPDZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2f64] }:$src)
/*  9990*/              0, /*End of Scope*/
/*  9991*/            0, /*End of Scope*/
/*  9992*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VPERMILPI),// ->10049
/*  9995*/            OPC_RecordChild0, // #1 = $src
/*  9996*/            OPC_CheckChild1Integer, 1, 
/*  9998*/            OPC_CheckType, MVT::v2f64,
/* 10000*/            OPC_MoveParent,
/* 10001*/            OPC_CheckChild1Integer, 0, 
/* 10003*/            OPC_CheckType, MVT::f64,
/* 10005*/            OPC_MoveParent,
/* 10006*/            OPC_RecordChild2, // #2 = $dst
/* 10007*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10009*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10011*/            OPC_Scope, 17, /*->10030*/ // 2 children in Scope
/* 10013*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10015*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10018*/              OPC_EmitMergeInputChains1_0,
/* 10019*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVHPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (extractelt:{ *:[f64] } (X86VPermilpi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, 1:{ *:[i8] }), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 38
                        // Dst: (VMOVHPDmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2f64] }:$src)
/* 10030*/            /*Scope*/ 17, /*->10048*/
/* 10031*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10033*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10036*/              OPC_EmitMergeInputChains1_0,
/* 10037*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVHPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (extractelt:{ *:[f64] } (X86VPermilpi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, 1:{ *:[i8] }), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 38
                        // Dst: (VMOVHPDZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2f64] }:$src)
/* 10048*/            0, /*End of Scope*/
/* 10049*/          /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::SHUFP),// ->10087
/* 10052*/            OPC_RecordChild0, // #1 = $src
/* 10053*/            OPC_CheckChild1Same, 1,
/* 10055*/            OPC_CheckChild2Integer, 1, 
/* 10057*/            OPC_CheckType, MVT::v2f64,
/* 10059*/            OPC_MoveParent,
/* 10060*/            OPC_CheckChild1Integer, 0, 
/* 10062*/            OPC_CheckType, MVT::f64,
/* 10064*/            OPC_MoveParent,
/* 10065*/            OPC_RecordChild2, // #2 = $dst
/* 10066*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10068*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10070*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 10072*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10075*/            OPC_EmitMergeInputChains1_0,
/* 10076*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOVHPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st (extractelt:{ *:[f64] } (X86Shufp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, VR128:{ *:[v2f64] }:$src, 1:{ *:[i8] }), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 38
                      // Dst: (MOVHPDmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2f64] }:$src)
/* 10087*/          /*SwitchOpcode*/ 62|128,2/*318*/, TARGET_VAL(ISD::BITCAST),// ->10409
/* 10091*/            OPC_Scope, 127, /*->10220*/ // 2 children in Scope
/* 10093*/              OPC_MoveChild0,
/* 10094*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTPS2PH),
/* 10097*/              OPC_RecordChild0, // #1 = $src1
/* 10098*/              OPC_CheckChild0Type, MVT::v4f32,
/* 10100*/              OPC_RecordChild1, // #2 = $src2
/* 10101*/              OPC_CheckType, MVT::v8i16,
/* 10103*/              OPC_MoveParent,
/* 10104*/              OPC_SwitchType /*2 cases */, 55, MVT::v2f64,// ->10162
/* 10107*/                OPC_MoveParent,
/* 10108*/                OPC_CheckChild1Integer, 0, 
/* 10110*/                OPC_CheckType, MVT::f64,
/* 10112*/                OPC_MoveParent,
/* 10113*/                OPC_RecordChild2, // #3 = $dst
/* 10114*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10116*/                OPC_CheckPredicate, 1, // Predicate_store
/* 10118*/                OPC_Scope, 20, /*->10140*/ // 2 children in Scope
/* 10120*/                  OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/* 10122*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10125*/                  OPC_EmitMergeInputChains1_0,
/* 10126*/                  OPC_EmitConvertToTarget, 2,
/* 10128*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHmr), 0|OPFL_Chain|OPFL_MemRefs,
                                7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                            // Src: (st (extractelt:{ *:[f64] } (bitconvert:{ *:[v2f64] } (X86cvtps2ph:{ *:[v8i16] } VR128:{ *:[v4f32] }:$src1, i32:{ *:[i32] }:$src2)), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 36
                            // Dst: (VCVTPS2PHmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 10140*/                /*Scope*/ 20, /*->10161*/
/* 10141*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10143*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10146*/                  OPC_EmitMergeInputChains1_0,
/* 10147*/                  OPC_EmitConvertToTarget, 2,
/* 10149*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                                7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                            // Src: (st (extractelt:{ *:[f64] } (bitconvert:{ *:[v2f64] } (X86cvtps2ph:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, i32:{ *:[i32] }:$src2)), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 36
                            // Dst: (VCVTPS2PHZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 10161*/                0, /*End of Scope*/
/* 10162*/              /*SwitchType*/ 55, MVT::v2i64,// ->10219
/* 10164*/                OPC_MoveParent,
/* 10165*/                OPC_CheckChild1Integer, 0, 
/* 10167*/                OPC_CheckType, MVT::i64,
/* 10169*/                OPC_MoveParent,
/* 10170*/                OPC_RecordChild2, // #3 = $dst
/* 10171*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10173*/                OPC_CheckPredicate, 1, // Predicate_store
/* 10175*/                OPC_Scope, 20, /*->10197*/ // 2 children in Scope
/* 10177*/                  OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/* 10179*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10182*/                  OPC_EmitMergeInputChains1_0,
/* 10183*/                  OPC_EmitConvertToTarget, 2,
/* 10185*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHmr), 0|OPFL_Chain|OPFL_MemRefs,
                                7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                            // Src: (st (extractelt:{ *:[i64] } (bitconvert:{ *:[v2i64] } (X86cvtps2ph:{ *:[v8i16] } VR128:{ *:[v4f32] }:$src1, i32:{ *:[i32] }:$src2)), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 36
                            // Dst: (VCVTPS2PHmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 10197*/                /*Scope*/ 20, /*->10218*/
/* 10198*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10200*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10203*/                  OPC_EmitMergeInputChains1_0,
/* 10204*/                  OPC_EmitConvertToTarget, 2,
/* 10206*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                                7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                            // Src: (st (extractelt:{ *:[i64] } (bitconvert:{ *:[v2i64] } (X86cvtps2ph:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, i32:{ *:[i32] }:$src2)), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 36
                            // Dst: (VCVTPS2PHZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 10218*/                0, /*End of Scope*/
/* 10219*/              0, // EndSwitchType
/* 10220*/            /*Scope*/ 58|128,1/*186*/, /*->10408*/
/* 10222*/              OPC_RecordChild0, // #1 = $src
/* 10223*/              OPC_CheckChild0Type, MVT::v4f32,
/* 10225*/              OPC_SwitchType /*3 cases */, 67, MVT::v2f64,// ->10295
/* 10228*/                OPC_MoveParent,
/* 10229*/                OPC_CheckChild1Integer, 0, 
/* 10231*/                OPC_CheckType, MVT::f64,
/* 10233*/                OPC_MoveParent,
/* 10234*/                OPC_RecordChild2, // #2 = $dst
/* 10235*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10237*/                OPC_CheckPredicate, 1, // Predicate_store
/* 10239*/                OPC_Scope, 17, /*->10258*/ // 3 children in Scope
/* 10241*/                  OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10243*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10246*/                  OPC_EmitMergeInputChains1_0,
/* 10247*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                                6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                            // Src: (st (extractelt:{ *:[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)
/* 10258*/                /*Scope*/ 17, /*->10276*/
/* 10259*/                  OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 10261*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10264*/                  OPC_EmitMergeInputChains1_0,
/* 10265*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                                6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                            // Src: (st (extractelt:{ *:[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)
/* 10276*/                /*Scope*/ 17, /*->10294*/
/* 10277*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10279*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10282*/                  OPC_EmitMergeInputChains1_0,
/* 10283*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVLPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                                6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                            // Src: (st (extractelt:{ *:[f64] } (bitconvert:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 33
                            // Dst: (VMOVLPSZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4f32] }:$src)
/* 10294*/                0, /*End of Scope*/
/* 10295*/              /*SwitchType*/ 28, MVT::v2i64,// ->10325
/* 10297*/                OPC_MoveParent,
/* 10298*/                OPC_CheckChild1Integer, 0, 
/* 10300*/                OPC_CheckType, MVT::i64,
/* 10302*/                OPC_MoveParent,
/* 10303*/                OPC_RecordChild2, // #2 = $src1
/* 10304*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10306*/                OPC_CheckPredicate, 1, // Predicate_store
/* 10308*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 10310*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 10313*/                OPC_EmitMergeInputChains1_0,
/* 10314*/                OPC_MorphNodeTo0, TARGET_VAL(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[i64] } (bitconvert:{ *:[v2i64] } VR128:{ *:[v4f32] }:$src2), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 33
                          // Dst: (MOVLPSmr addr:{ *:[iPTR] }:$src1, VR128:{ *:[v4f32] }:$src2)
/* 10325*/              /*SwitchType*/ 80, MVT::v4i32,// ->10407
/* 10327*/                OPC_MoveParent,
/* 10328*/                OPC_RecordChild1, // #2 = $src2
/* 10329*/                OPC_MoveChild1,
/* 10330*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10333*/                OPC_MoveParent,
/* 10334*/                OPC_CheckType, MVT::i32,
/* 10336*/                OPC_MoveParent,
/* 10337*/                OPC_RecordChild2, // #3 = $dst
/* 10338*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10340*/                OPC_CheckPredicate, 1, // Predicate_store
/* 10342*/                OPC_Scope, 20, /*->10364*/ // 3 children in Scope
/* 10344*/                  OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10346*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10349*/                  OPC_EmitMergeInputChains1_0,
/* 10350*/                  OPC_EmitConvertToTarget, 2,
/* 10352*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                                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:{ *:[i8] }):$src2)
/* 10364*/                /*Scope*/ 20, /*->10385*/
/* 10365*/                  OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 10367*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10370*/                  OPC_EmitMergeInputChains1_0,
/* 10371*/                  OPC_EmitConvertToTarget, 2,
/* 10373*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::EXTRACTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                                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:{ *:[i8] }):$src2)
/* 10385*/                /*Scope*/ 20, /*->10406*/
/* 10386*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10388*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10391*/                  OPC_EmitMergeInputChains1_0,
/* 10392*/                  OPC_EmitConvertToTarget, 2,
/* 10394*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTPSZmr), 0|OPFL_Chain|OPFL_MemRefs,
                                7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                            // Src: (st (extractelt:{ *:[i32] } (bitconvert:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src1), (imm:{ *:[iPTR] }):$src2), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 31
                            // Dst: (VEXTRACTPSZmr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src2)
/* 10406*/                0, /*End of Scope*/
/* 10407*/              0, // EndSwitchType
/* 10408*/            0, /*End of Scope*/
/* 10409*/          0, // EndSwitchOpcode
/* 10410*/        /*Scope*/ 54|128,3/*438*/, /*->10850*/
/* 10412*/          OPC_RecordChild0, // #1 = $src
/* 10413*/          OPC_Scope, 68, /*->10483*/ // 4 children in Scope
/* 10415*/            OPC_CheckChild0Type, MVT::v2f64,
/* 10417*/            OPC_CheckChild1Integer, 0, 
/* 10419*/            OPC_CheckType, MVT::f64,
/* 10421*/            OPC_MoveParent,
/* 10422*/            OPC_RecordChild2, // #2 = $dst
/* 10423*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10425*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10427*/            OPC_Scope, 17, /*->10446*/ // 3 children in Scope
/* 10429*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10431*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10434*/              OPC_EmitMergeInputChains1_0,
/* 10435*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (extractelt:{ *:[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)
/* 10446*/            /*Scope*/ 17, /*->10464*/
/* 10447*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 10449*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10452*/              OPC_EmitMergeInputChains1_0,
/* 10453*/              OPC_MorphNodeTo0, TARGET_VAL(X86::MOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (extractelt:{ *:[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)
/* 10464*/            /*Scope*/ 17, /*->10482*/
/* 10465*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10467*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10470*/              OPC_EmitMergeInputChains1_0,
/* 10471*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVLPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (VMOVLPDZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2f64] }:$src)
/* 10482*/            0, /*End of Scope*/
/* 10483*/          /*Scope*/ 2|128,1/*130*/, /*->10615*/
/* 10485*/            OPC_CheckChild0Type, MVT::v4i32,
/* 10487*/            OPC_Scope, 66, /*->10555*/ // 2 children in Scope
/* 10489*/              OPC_CheckChild1Integer, 0, 
/* 10491*/              OPC_CheckType, MVT::i32,
/* 10493*/              OPC_MoveParent,
/* 10494*/              OPC_RecordChild2, // #2 = $dst
/* 10495*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10497*/              OPC_CheckPredicate, 1, // Predicate_store
/* 10499*/              OPC_Scope, 17, /*->10518*/ // 3 children in Scope
/* 10501*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10503*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10506*/                OPC_EmitMergeInputChains1_0,
/* 10507*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVPDI2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[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)
/* 10518*/              /*Scope*/ 17, /*->10536*/
/* 10519*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 10521*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10524*/                OPC_EmitMergeInputChains1_0,
/* 10525*/                OPC_MorphNodeTo0, TARGET_VAL(X86::MOVPDI2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[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)
/* 10536*/              /*Scope*/ 17, /*->10554*/
/* 10537*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10539*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10542*/                OPC_EmitMergeInputChains1_0,
/* 10543*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVPDI2DIZmr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[i32] } VR128X:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                          // Dst: (VMOVPDI2DIZmr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4i32] }:$src)
/* 10554*/              0, /*End of Scope*/
/* 10555*/            /*Scope*/ 58, /*->10614*/
/* 10556*/              OPC_RecordChild1, // #2 = $src2
/* 10557*/              OPC_MoveChild1,
/* 10558*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10561*/              OPC_MoveParent,
/* 10562*/              OPC_CheckType, MVT::i32,
/* 10564*/              OPC_MoveParent,
/* 10565*/              OPC_RecordChild2, // #3 = $dst
/* 10566*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10568*/              OPC_CheckPredicate, 1, // Predicate_store
/* 10570*/              OPC_Scope, 20, /*->10592*/ // 2 children in Scope
/* 10572*/                OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/* 10574*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10577*/                OPC_EmitMergeInputChains1_0,
/* 10578*/                OPC_EmitConvertToTarget, 2,
/* 10580*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VPEXTRDmr), 0|OPFL_Chain|OPFL_MemRefs,
                              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:{ *:[i8] }):$src2)
/* 10592*/              /*Scope*/ 20, /*->10613*/
/* 10593*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 10595*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10598*/                OPC_EmitMergeInputChains1_0,
/* 10599*/                OPC_EmitConvertToTarget, 2,
/* 10601*/                OPC_MorphNodeTo0, TARGET_VAL(X86::PEXTRDmr), 0|OPFL_Chain|OPFL_MemRefs,
                              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:{ *:[i8] }):$src2)
/* 10613*/              0, /*End of Scope*/
/* 10614*/            0, /*End of Scope*/
/* 10615*/          /*Scope*/ 2|128,1/*130*/, /*->10747*/
/* 10617*/            OPC_CheckChild0Type, MVT::v2i64,
/* 10619*/            OPC_Scope, 66, /*->10687*/ // 2 children in Scope
/* 10621*/              OPC_CheckChild1Integer, 0, 
/* 10623*/              OPC_CheckType, MVT::i64,
/* 10625*/              OPC_MoveParent,
/* 10626*/              OPC_RecordChild2, // #2 = $dst
/* 10627*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10629*/              OPC_CheckPredicate, 1, // Predicate_store
/* 10631*/              OPC_Scope, 17, /*->10650*/ // 3 children in Scope
/* 10633*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10635*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10638*/                OPC_EmitMergeInputChains1_0,
/* 10639*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVPQI2QImr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[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)
/* 10650*/              /*Scope*/ 17, /*->10668*/
/* 10651*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 10653*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10656*/                OPC_EmitMergeInputChains1_0,
/* 10657*/                OPC_MorphNodeTo0, TARGET_VAL(X86::MOVPQI2QImr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[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)
/* 10668*/              /*Scope*/ 17, /*->10686*/
/* 10669*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10671*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10674*/                OPC_EmitMergeInputChains1_0,
/* 10675*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVPQI2QIZmr), 0|OPFL_Chain|OPFL_MemRefs,
                              6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                          // Src: (st (extractelt:{ *:[i64] } VR128X:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                          // Dst: (VMOVPQI2QIZmr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/* 10686*/              0, /*End of Scope*/
/* 10687*/            /*Scope*/ 58, /*->10746*/
/* 10688*/              OPC_RecordChild1, // #2 = $src2
/* 10689*/              OPC_MoveChild1,
/* 10690*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10693*/              OPC_MoveParent,
/* 10694*/              OPC_CheckType, MVT::i64,
/* 10696*/              OPC_MoveParent,
/* 10697*/              OPC_RecordChild2, // #3 = $dst
/* 10698*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10700*/              OPC_CheckPredicate, 1, // Predicate_store
/* 10702*/              OPC_Scope, 20, /*->10724*/ // 2 children in Scope
/* 10704*/                OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/* 10706*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10709*/                OPC_EmitMergeInputChains1_0,
/* 10710*/                OPC_EmitConvertToTarget, 2,
/* 10712*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VPEXTRQmr), 0|OPFL_Chain|OPFL_MemRefs,
                              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:{ *:[i8] }):$src2)
/* 10724*/              /*Scope*/ 20, /*->10745*/
/* 10725*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 10727*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10730*/                OPC_EmitMergeInputChains1_0,
/* 10731*/                OPC_EmitConvertToTarget, 2,
/* 10733*/                OPC_MorphNodeTo0, TARGET_VAL(X86::PEXTRQmr), 0|OPFL_Chain|OPFL_MemRefs,
                              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:{ *:[i8] }):$src2)
/* 10745*/              0, /*End of Scope*/
/* 10746*/            0, /*End of Scope*/
/* 10747*/          /*Scope*/ 101, /*->10849*/
/* 10748*/            OPC_CheckChild0Type, MVT::v4f32,
/* 10750*/            OPC_CheckChild1Integer, 0, 
/* 10752*/            OPC_CheckType, MVT::f32,
/* 10754*/            OPC_MoveParent,
/* 10755*/            OPC_RecordChild2, // #2 = $dst
/* 10756*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10758*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10760*/            OPC_Scope, 28, /*->10790*/ // 3 children in Scope
/* 10762*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10764*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10767*/              OPC_EmitMergeInputChains1_0,
/* 10768*/              OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/* 10771*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 10779*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (VMOVSSmr addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[f32] } VR128:{ *:[v4f32] }:$src, FR32:{ *:[i32] }))
/* 10790*/            /*Scope*/ 28, /*->10819*/
/* 10791*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 10793*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10796*/              OPC_EmitMergeInputChains1_0,
/* 10797*/              OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/* 10800*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 10808*/              OPC_MorphNodeTo0, TARGET_VAL(X86::MOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (MOVSSmr addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[f32] } VR128:{ *:[v4f32] }:$src, FR32:{ *:[i32] }))
/* 10819*/            /*Scope*/ 28, /*->10848*/
/* 10820*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10822*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10825*/              OPC_EmitMergeInputChains1_0,
/* 10826*/              OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/* 10829*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 10837*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSZmr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (VMOVSSZmr addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[f32] } VR128X:{ *:[v4f32] }:$src, FR32X:{ *:[i32] }))
/* 10848*/            0, /*End of Scope*/
/* 10849*/          0, /*End of Scope*/
/* 10850*/        0, /*End of Scope*/
/* 10851*/      /*SwitchOpcode*/ 49|128,2/*305*/, TARGET_VAL(ISD::TRUNCATE),// ->11160
/* 10855*/        OPC_MoveChild0,
/* 10856*/        OPC_SwitchOpcode /*3 cases */, 2|128,1/*130*/, TARGET_VAL(ISD::SRL),// ->10991
/* 10861*/          OPC_RecordChild0, // #1 = $src
/* 10862*/          OPC_CheckChild1Integer, 8, 
/* 10864*/          OPC_CheckChild1Type, MVT::i8,
/* 10866*/          OPC_CheckPredicate, 17, // Predicate_srl_su
/* 10868*/          OPC_SwitchType /*3 cases */, 37, MVT::i64,// ->10908
/* 10871*/            OPC_MoveParent,
/* 10872*/            OPC_CheckPredicate, 17, // Predicate_trunc_su
/* 10874*/            OPC_CheckType, MVT::i8,
/* 10876*/            OPC_MoveParent,
/* 10877*/            OPC_RecordChild2, // #2 = $dst
/* 10878*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10880*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10882*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10885*/            OPC_EmitMergeInputChains1_0,
/* 10886*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 10889*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 10897*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOV8mr_NOREX), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // 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:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[i8] } GR64:{ *:[i64] }:$src, sub_8bit_hi:{ *:[i32] }))
/* 10908*/          /*SwitchType*/ 39, MVT::i32,// ->10949
/* 10910*/            OPC_MoveParent,
/* 10911*/            OPC_CheckPredicate, 17, // Predicate_trunc_su
/* 10913*/            OPC_CheckType, MVT::i8,
/* 10915*/            OPC_MoveParent,
/* 10916*/            OPC_RecordChild2, // #2 = $dst
/* 10917*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10919*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10921*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 10923*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10926*/            OPC_EmitMergeInputChains1_0,
/* 10927*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 10930*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 10938*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOV8mr_NOREX), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // 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:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[i8] } GR32:{ *:[i32] }:$src, sub_8bit_hi:{ *:[i32] }))
/* 10949*/          /*SwitchType*/ 39, MVT::i16,// ->10990
/* 10951*/            OPC_MoveParent,
/* 10952*/            OPC_CheckPredicate, 17, // Predicate_trunc_su
/* 10954*/            OPC_CheckType, MVT::i8,
/* 10956*/            OPC_MoveParent,
/* 10957*/            OPC_RecordChild2, // #2 = $dst
/* 10958*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10960*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10962*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 10964*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10967*/            OPC_EmitMergeInputChains1_0,
/* 10968*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 10971*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 10979*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOV8mr_NOREX), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // 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:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[i8] } GR16:{ *:[i16] }:$src, sub_8bit_hi:{ *:[i32] }))
/* 10990*/          0, // EndSwitchType
/* 10991*/        /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::PEXTRB),// ->11075
/* 10994*/          OPC_RecordChild0, // #1 = $src1
/* 10995*/          OPC_RecordChild1, // #2 = $src2
/* 10996*/          OPC_MoveChild1,
/* 10997*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11000*/          OPC_MoveParent,
/* 11001*/          OPC_MoveParent,
/* 11002*/          OPC_CheckType, MVT::i8,
/* 11004*/          OPC_MoveParent,
/* 11005*/          OPC_RecordChild2, // #3 = $dst
/* 11006*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11008*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11010*/          OPC_Scope, 20, /*->11032*/ // 3 children in Scope
/* 11012*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/* 11014*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11017*/            OPC_EmitMergeInputChains1_0,
/* 11018*/            OPC_EmitConvertToTarget, 2,
/* 11020*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPEXTRBmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                      // Src: (st (trunc:{ *:[i8] } (X86pextrb:{ *:[i32] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[iPTR] }):$src2)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 31
                      // Dst: (VPEXTRBmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/* 11032*/          /*Scope*/ 20, /*->11053*/
/* 11033*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 11035*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11038*/            OPC_EmitMergeInputChains1_0,
/* 11039*/            OPC_EmitConvertToTarget, 2,
/* 11041*/            OPC_MorphNodeTo0, TARGET_VAL(X86::PEXTRBmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                      // Src: (st (trunc:{ *:[i8] } (X86pextrb:{ *:[i32] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[iPTR] }):$src2)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 31
                      // Dst: (PEXTRBmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/* 11053*/          /*Scope*/ 20, /*->11074*/
/* 11054*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 11056*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11059*/            OPC_EmitMergeInputChains1_0,
/* 11060*/            OPC_EmitConvertToTarget, 2,
/* 11062*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPEXTRBZmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                      // Src: (st (trunc:{ *:[i8] } (X86pextrb:{ *:[i32] } VR128X:{ *:[v16i8] }:$src1, (imm:{ *:[iPTR] }):$src2)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 31
                      // Dst: (VPEXTRBZmr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/* 11074*/          0, /*End of Scope*/
/* 11075*/        /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::PEXTRW),// ->11159
/* 11078*/          OPC_RecordChild0, // #1 = $src1
/* 11079*/          OPC_RecordChild1, // #2 = $src2
/* 11080*/          OPC_MoveChild1,
/* 11081*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11084*/          OPC_MoveParent,
/* 11085*/          OPC_MoveParent,
/* 11086*/          OPC_CheckType, MVT::i16,
/* 11088*/          OPC_MoveParent,
/* 11089*/          OPC_RecordChild2, // #3 = $dst
/* 11090*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11092*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11094*/          OPC_Scope, 20, /*->11116*/ // 3 children in Scope
/* 11096*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/* 11098*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11101*/            OPC_EmitMergeInputChains1_0,
/* 11102*/            OPC_EmitConvertToTarget, 2,
/* 11104*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPEXTRWmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                      // Src: (st (trunc:{ *:[i16] } (X86pextrw:{ *:[i32] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[iPTR] }):$src2)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 31
                      // Dst: (VPEXTRWmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/* 11116*/          /*Scope*/ 20, /*->11137*/
/* 11117*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 11119*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11122*/            OPC_EmitMergeInputChains1_0,
/* 11123*/            OPC_EmitConvertToTarget, 2,
/* 11125*/            OPC_MorphNodeTo0, TARGET_VAL(X86::PEXTRWmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                      // Src: (st (trunc:{ *:[i16] } (X86pextrw:{ *:[i32] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[iPTR] }):$src2)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 31
                      // Dst: (PEXTRWmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/* 11137*/          /*Scope*/ 20, /*->11158*/
/* 11138*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 11140*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11143*/            OPC_EmitMergeInputChains1_0,
/* 11144*/            OPC_EmitConvertToTarget, 2,
/* 11146*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPEXTRWZmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                      // Src: (st (trunc:{ *:[i16] } (X86pextrw:{ *:[i32] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[iPTR] }):$src2)), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 31
                      // Dst: (VPEXTRWZmr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/* 11158*/          0, /*End of Scope*/
/* 11159*/        0, // EndSwitchOpcode
/* 11160*/      /*SwitchOpcode*/ 75, TARGET_VAL(ISD::BITCAST),// ->11238
/* 11163*/        OPC_MoveChild0,
/* 11164*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 11167*/        OPC_MoveChild0,
/* 11168*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 11171*/        OPC_RecordChild0, // #1 = $src1
/* 11172*/        OPC_CheckChild0Type, MVT::v4f32,
/* 11174*/        OPC_CheckType, MVT::v4i32,
/* 11176*/        OPC_MoveParent,
/* 11177*/        OPC_RecordChild1, // #2 = $src2
/* 11178*/        OPC_MoveChild1,
/* 11179*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11182*/        OPC_MoveParent,
/* 11183*/        OPC_CheckType, MVT::i32,
/* 11185*/        OPC_MoveParent,
/* 11186*/        OPC_CheckType, MVT::f32,
/* 11188*/        OPC_MoveParent,
/* 11189*/        OPC_RecordChild2, // #3 = $dst
/* 11190*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11192*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11194*/        OPC_Scope, 20, /*->11216*/ // 2 children in Scope
/* 11196*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 11198*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11201*/          OPC_EmitMergeInputChains1_0,
/* 11202*/          OPC_EmitConvertToTarget, 2,
/* 11204*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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:{ *:[i8] }):$src2)
/* 11216*/        /*Scope*/ 20, /*->11237*/
/* 11217*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 11219*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11222*/          OPC_EmitMergeInputChains1_0,
/* 11223*/          OPC_EmitConvertToTarget, 2,
/* 11225*/          OPC_MorphNodeTo0, TARGET_VAL(X86::EXTRACTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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:{ *:[i8] }):$src2)
/* 11237*/        0, /*End of Scope*/
/* 11238*/      /*SwitchOpcode*/ 50|128,3/*434*/, TARGET_VAL(X86ISD::SETCC),// ->11676
/* 11242*/        OPC_Scope, 26, /*->11270*/ // 16 children in Scope
/* 11244*/          OPC_CheckChild0Integer, 13, 
/* 11246*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11247*/          OPC_MoveParent,
/* 11248*/          OPC_RecordChild2, // #2 = $dst
/* 11249*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11251*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11253*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11256*/          OPC_EmitMergeInputChains1_0,
/* 11257*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11260*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETOm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11270*/        /*Scope*/ 26, /*->11297*/
/* 11271*/          OPC_CheckChild0Integer, 10, 
/* 11273*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11274*/          OPC_MoveParent,
/* 11275*/          OPC_RecordChild2, // #2 = $dst
/* 11276*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11278*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11280*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11283*/          OPC_EmitMergeInputChains1_0,
/* 11284*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11287*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETNOm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11297*/        /*Scope*/ 26, /*->11324*/
/* 11298*/          OPC_CheckChild0Integer, 2, 
/* 11300*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11301*/          OPC_MoveParent,
/* 11302*/          OPC_RecordChild2, // #2 = $dst
/* 11303*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11305*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11307*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11310*/          OPC_EmitMergeInputChains1_0,
/* 11311*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11314*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETBm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11324*/        /*Scope*/ 26, /*->11351*/
/* 11325*/          OPC_CheckChild0Integer, 1, 
/* 11327*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11328*/          OPC_MoveParent,
/* 11329*/          OPC_RecordChild2, // #2 = $dst
/* 11330*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11332*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11334*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11337*/          OPC_EmitMergeInputChains1_0,
/* 11338*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11341*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETAEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11351*/        /*Scope*/ 26, /*->11378*/
/* 11352*/          OPC_CheckChild0Integer, 4, 
/* 11354*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11355*/          OPC_MoveParent,
/* 11356*/          OPC_RecordChild2, // #2 = $dst
/* 11357*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11359*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11361*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11364*/          OPC_EmitMergeInputChains1_0,
/* 11365*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11368*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11378*/        /*Scope*/ 26, /*->11405*/
/* 11379*/          OPC_CheckChild0Integer, 9, 
/* 11381*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11382*/          OPC_MoveParent,
/* 11383*/          OPC_RecordChild2, // #2 = $dst
/* 11384*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11386*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11388*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11391*/          OPC_EmitMergeInputChains1_0,
/* 11392*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11395*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETNEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11405*/        /*Scope*/ 26, /*->11432*/
/* 11406*/          OPC_CheckChild0Integer, 3, 
/* 11408*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11409*/          OPC_MoveParent,
/* 11410*/          OPC_RecordChild2, // #2 = $dst
/* 11411*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11413*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11415*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11418*/          OPC_EmitMergeInputChains1_0,
/* 11419*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11422*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETBEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11432*/        /*Scope*/ 26, /*->11459*/
/* 11433*/          OPC_CheckChild0Integer, 0, 
/* 11435*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11436*/          OPC_MoveParent,
/* 11437*/          OPC_RecordChild2, // #2 = $dst
/* 11438*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11440*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11442*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11445*/          OPC_EmitMergeInputChains1_0,
/* 11446*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11449*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETAm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11459*/        /*Scope*/ 26, /*->11486*/
/* 11460*/          OPC_CheckChild0Integer, 15, 
/* 11462*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11463*/          OPC_MoveParent,
/* 11464*/          OPC_RecordChild2, // #2 = $dst
/* 11465*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11467*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11469*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11472*/          OPC_EmitMergeInputChains1_0,
/* 11473*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11476*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETSm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11486*/        /*Scope*/ 26, /*->11513*/
/* 11487*/          OPC_CheckChild0Integer, 12, 
/* 11489*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11490*/          OPC_MoveParent,
/* 11491*/          OPC_RecordChild2, // #2 = $dst
/* 11492*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11494*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11496*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11499*/          OPC_EmitMergeInputChains1_0,
/* 11500*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11503*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETNSm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11513*/        /*Scope*/ 26, /*->11540*/
/* 11514*/          OPC_CheckChild0Integer, 14, 
/* 11516*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11517*/          OPC_MoveParent,
/* 11518*/          OPC_RecordChild2, // #2 = $dst
/* 11519*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11521*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11523*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11526*/          OPC_EmitMergeInputChains1_0,
/* 11527*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11530*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETPm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11540*/        /*Scope*/ 26, /*->11567*/
/* 11541*/          OPC_CheckChild0Integer, 11, 
/* 11543*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11544*/          OPC_MoveParent,
/* 11545*/          OPC_RecordChild2, // #2 = $dst
/* 11546*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11548*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11550*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11553*/          OPC_EmitMergeInputChains1_0,
/* 11554*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11557*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETNPm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11567*/        /*Scope*/ 26, /*->11594*/
/* 11568*/          OPC_CheckChild0Integer, 7, 
/* 11570*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11571*/          OPC_MoveParent,
/* 11572*/          OPC_RecordChild2, // #2 = $dst
/* 11573*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11575*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11577*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11580*/          OPC_EmitMergeInputChains1_0,
/* 11581*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11584*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETLm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11594*/        /*Scope*/ 26, /*->11621*/
/* 11595*/          OPC_CheckChild0Integer, 6, 
/* 11597*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11598*/          OPC_MoveParent,
/* 11599*/          OPC_RecordChild2, // #2 = $dst
/* 11600*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11602*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11604*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11607*/          OPC_EmitMergeInputChains1_0,
/* 11608*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11611*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETGEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11621*/        /*Scope*/ 26, /*->11648*/
/* 11622*/          OPC_CheckChild0Integer, 8, 
/* 11624*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11625*/          OPC_MoveParent,
/* 11626*/          OPC_RecordChild2, // #2 = $dst
/* 11627*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11629*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11631*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11634*/          OPC_EmitMergeInputChains1_0,
/* 11635*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11638*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETLEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11648*/        /*Scope*/ 26, /*->11675*/
/* 11649*/          OPC_CheckChild0Integer, 5, 
/* 11651*/          OPC_RecordChild1, // #1 = physreg input EFLAGS
/* 11652*/          OPC_MoveParent,
/* 11653*/          OPC_RecordChild2, // #2 = $dst
/* 11654*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11656*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11658*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11661*/          OPC_EmitMergeInputChains1_0,
/* 11662*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/* 11665*/          OPC_MorphNodeTo0, TARGET_VAL(X86::SETGm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        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)
/* 11675*/        0, /*End of Scope*/
/* 11676*/      /*SwitchOpcode*/ 57|128,13/*1721*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->13401
/* 11680*/        OPC_RecordChild0, // #1 = $src
/* 11681*/        OPC_Scope, 8|128,1/*136*/, /*->11820*/ // 13 children in Scope
/* 11684*/          OPC_CheckChild0Type, MVT::v4f64,
/* 11686*/          OPC_CheckChild1Integer, 0, 
/* 11688*/          OPC_CheckChild1Type, MVT::iPTR,
/* 11690*/          OPC_CheckType, MVT::v2f64,
/* 11692*/          OPC_MoveParent,
/* 11693*/          OPC_RecordChild2, // #2 = $dst
/* 11694*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11696*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11698*/          OPC_Scope, 30, /*->11730*/ // 4 children in Scope
/* 11700*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 11702*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 11704*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11707*/            OPC_EmitMergeInputChains1_0,
/* 11708*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 11711*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11719*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVAPDmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }))
/* 11730*/          /*Scope*/ 28, /*->11759*/
/* 11731*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 11733*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11736*/            OPC_EmitMergeInputChains1_0,
/* 11737*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 11740*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11748*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVUPDmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }))
/* 11759*/          /*Scope*/ 30, /*->11790*/
/* 11760*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 11762*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 11764*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11767*/            OPC_EmitMergeInputChains1_0,
/* 11768*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 11771*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11779*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVAPDZ128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }))
/* 11790*/          /*Scope*/ 28, /*->11819*/
/* 11791*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 11793*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11796*/            OPC_EmitMergeInputChains1_0,
/* 11797*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 11800*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11808*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVUPDZ128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }))
/* 11819*/          0, /*End of Scope*/
/* 11820*/        /*Scope*/ 8|128,1/*136*/, /*->11958*/
/* 11822*/          OPC_CheckChild0Type, MVT::v8f32,
/* 11824*/          OPC_CheckChild1Integer, 0, 
/* 11826*/          OPC_CheckChild1Type, MVT::iPTR,
/* 11828*/          OPC_CheckType, MVT::v4f32,
/* 11830*/          OPC_MoveParent,
/* 11831*/          OPC_RecordChild2, // #2 = $dst
/* 11832*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11834*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11836*/          OPC_Scope, 30, /*->11868*/ // 4 children in Scope
/* 11838*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 11840*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 11842*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11845*/            OPC_EmitMergeInputChains1_0,
/* 11846*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 11849*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11857*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVAPSmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }))
/* 11868*/          /*Scope*/ 28, /*->11897*/
/* 11869*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 11871*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11874*/            OPC_EmitMergeInputChains1_0,
/* 11875*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 11878*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11886*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVUPSmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }))
/* 11897*/          /*Scope*/ 30, /*->11928*/
/* 11898*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 11900*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 11902*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11905*/            OPC_EmitMergeInputChains1_0,
/* 11906*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 11909*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11917*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVAPSZ128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }))
/* 11928*/          /*Scope*/ 28, /*->11957*/
/* 11929*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 11931*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11934*/            OPC_EmitMergeInputChains1_0,
/* 11935*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 11938*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11946*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVUPSZ128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }))
/* 11957*/          0, /*End of Scope*/
/* 11958*/        /*Scope*/ 8|128,1/*136*/, /*->12096*/
/* 11960*/          OPC_CheckChild0Type, MVT::v4i64,
/* 11962*/          OPC_CheckChild1Integer, 0, 
/* 11964*/          OPC_CheckChild1Type, MVT::iPTR,
/* 11966*/          OPC_CheckType, MVT::v2i64,
/* 11968*/          OPC_MoveParent,
/* 11969*/          OPC_RecordChild2, // #2 = $dst
/* 11970*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11972*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11974*/          OPC_Scope, 30, /*->12006*/ // 4 children in Scope
/* 11976*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 11978*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 11980*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11983*/            OPC_EmitMergeInputChains1_0,
/* 11984*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 11987*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11995*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQAmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQAmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }))
/* 12006*/          /*Scope*/ 28, /*->12035*/
/* 12007*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 12009*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12012*/            OPC_EmitMergeInputChains1_0,
/* 12013*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12016*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12024*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQUmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQUmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }))
/* 12035*/          /*Scope*/ 30, /*->12066*/
/* 12036*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12038*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12040*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12043*/            OPC_EmitMergeInputChains1_0,
/* 12044*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12047*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12055*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }))
/* 12066*/          /*Scope*/ 28, /*->12095*/
/* 12067*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12069*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12072*/            OPC_EmitMergeInputChains1_0,
/* 12073*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12076*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12084*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }))
/* 12095*/          0, /*End of Scope*/
/* 12096*/        /*Scope*/ 8|128,1/*136*/, /*->12234*/
/* 12098*/          OPC_CheckChild0Type, MVT::v8i32,
/* 12100*/          OPC_CheckChild1Integer, 0, 
/* 12102*/          OPC_CheckChild1Type, MVT::iPTR,
/* 12104*/          OPC_CheckType, MVT::v4i32,
/* 12106*/          OPC_MoveParent,
/* 12107*/          OPC_RecordChild2, // #2 = $dst
/* 12108*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12110*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12112*/          OPC_Scope, 30, /*->12144*/ // 4 children in Scope
/* 12114*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12116*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 12118*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12121*/            OPC_EmitMergeInputChains1_0,
/* 12122*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12125*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12133*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQAmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQAmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }))
/* 12144*/          /*Scope*/ 28, /*->12173*/
/* 12145*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 12147*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12150*/            OPC_EmitMergeInputChains1_0,
/* 12151*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12154*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12162*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQUmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQUmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }))
/* 12173*/          /*Scope*/ 30, /*->12204*/
/* 12174*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12176*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12178*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12181*/            OPC_EmitMergeInputChains1_0,
/* 12182*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12185*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12193*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }))
/* 12204*/          /*Scope*/ 28, /*->12233*/
/* 12205*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12207*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12210*/            OPC_EmitMergeInputChains1_0,
/* 12211*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12214*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12222*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }))
/* 12233*/          0, /*End of Scope*/
/* 12234*/        /*Scope*/ 8|128,1/*136*/, /*->12372*/
/* 12236*/          OPC_CheckChild0Type, MVT::v16i16,
/* 12238*/          OPC_CheckChild1Integer, 0, 
/* 12240*/          OPC_CheckChild1Type, MVT::iPTR,
/* 12242*/          OPC_CheckType, MVT::v8i16,
/* 12244*/          OPC_MoveParent,
/* 12245*/          OPC_RecordChild2, // #2 = $dst
/* 12246*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12248*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12250*/          OPC_Scope, 30, /*->12282*/ // 4 children in Scope
/* 12252*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12254*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 12256*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12259*/            OPC_EmitMergeInputChains1_0,
/* 12260*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12263*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12271*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQAmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQAmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] }))
/* 12282*/          /*Scope*/ 28, /*->12311*/
/* 12283*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 12285*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12288*/            OPC_EmitMergeInputChains1_0,
/* 12289*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12292*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12300*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQUmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQUmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] }))
/* 12311*/          /*Scope*/ 30, /*->12342*/
/* 12312*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12314*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12316*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12319*/            OPC_EmitMergeInputChains1_0,
/* 12320*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12323*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12331*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] }))
/* 12342*/          /*Scope*/ 28, /*->12371*/
/* 12343*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12345*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12348*/            OPC_EmitMergeInputChains1_0,
/* 12349*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12352*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12360*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] }))
/* 12371*/          0, /*End of Scope*/
/* 12372*/        /*Scope*/ 8|128,1/*136*/, /*->12510*/
/* 12374*/          OPC_CheckChild0Type, MVT::v32i8,
/* 12376*/          OPC_CheckChild1Integer, 0, 
/* 12378*/          OPC_CheckChild1Type, MVT::iPTR,
/* 12380*/          OPC_CheckType, MVT::v16i8,
/* 12382*/          OPC_MoveParent,
/* 12383*/          OPC_RecordChild2, // #2 = $dst
/* 12384*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12386*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12388*/          OPC_Scope, 30, /*->12420*/ // 4 children in Scope
/* 12390*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12392*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 12394*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12397*/            OPC_EmitMergeInputChains1_0,
/* 12398*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12401*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12409*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQAmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQAmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] }))
/* 12420*/          /*Scope*/ 28, /*->12449*/
/* 12421*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 12423*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12426*/            OPC_EmitMergeInputChains1_0,
/* 12427*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12430*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12438*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQUmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQUmr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] }))
/* 12449*/          /*Scope*/ 30, /*->12480*/
/* 12450*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12452*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12454*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12457*/            OPC_EmitMergeInputChains1_0,
/* 12458*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12461*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12469*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] }))
/* 12480*/          /*Scope*/ 28, /*->12509*/
/* 12481*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12483*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12486*/            OPC_EmitMergeInputChains1_0,
/* 12487*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12490*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12498*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] }))
/* 12509*/          0, /*End of Scope*/
/* 12510*/        /*Scope*/ 76, /*->12587*/
/* 12511*/          OPC_CheckChild0Type, MVT::v8f64,
/* 12513*/          OPC_CheckChild1Integer, 0, 
/* 12515*/          OPC_CheckChild1Type, MVT::iPTR,
/* 12517*/          OPC_CheckType, MVT::v2f64,
/* 12519*/          OPC_MoveParent,
/* 12520*/          OPC_RecordChild2, // #2 = $dst
/* 12521*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12523*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12525*/          OPC_Scope, 30, /*->12557*/ // 2 children in Scope
/* 12527*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12529*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12531*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12534*/            OPC_EmitMergeInputChains1_0,
/* 12535*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12538*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12546*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVAPDZ128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, sub_xmm:{ *:[i32] }))
/* 12557*/          /*Scope*/ 28, /*->12586*/
/* 12558*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12560*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12563*/            OPC_EmitMergeInputChains1_0,
/* 12564*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12567*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12575*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVUPDZ128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, sub_xmm:{ *:[i32] }))
/* 12586*/          0, /*End of Scope*/
/* 12587*/        /*Scope*/ 76, /*->12664*/
/* 12588*/          OPC_CheckChild0Type, MVT::v16f32,
/* 12590*/          OPC_CheckChild1Integer, 0, 
/* 12592*/          OPC_CheckChild1Type, MVT::iPTR,
/* 12594*/          OPC_CheckType, MVT::v4f32,
/* 12596*/          OPC_MoveParent,
/* 12597*/          OPC_RecordChild2, // #2 = $dst
/* 12598*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12600*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12602*/          OPC_Scope, 30, /*->12634*/ // 2 children in Scope
/* 12604*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12606*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12608*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12611*/            OPC_EmitMergeInputChains1_0,
/* 12612*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12615*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12623*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVAPSZ128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, sub_xmm:{ *:[i32] }))
/* 12634*/          /*Scope*/ 28, /*->12663*/
/* 12635*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12637*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12640*/            OPC_EmitMergeInputChains1_0,
/* 12641*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12644*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12652*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVUPSZ128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, sub_xmm:{ *:[i32] }))
/* 12663*/          0, /*End of Scope*/
/* 12664*/        /*Scope*/ 76, /*->12741*/
/* 12665*/          OPC_CheckChild0Type, MVT::v8i64,
/* 12667*/          OPC_CheckChild1Integer, 0, 
/* 12669*/          OPC_CheckChild1Type, MVT::iPTR,
/* 12671*/          OPC_CheckType, MVT::v2i64,
/* 12673*/          OPC_MoveParent,
/* 12674*/          OPC_RecordChild2, // #2 = $dst
/* 12675*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12677*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12679*/          OPC_Scope, 30, /*->12711*/ // 2 children in Scope
/* 12681*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12683*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12685*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12688*/            OPC_EmitMergeInputChains1_0,
/* 12689*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12692*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12700*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, sub_xmm:{ *:[i32] }))
/* 12711*/          /*Scope*/ 28, /*->12740*/
/* 12712*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12714*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12717*/            OPC_EmitMergeInputChains1_0,
/* 12718*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12721*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12729*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, sub_xmm:{ *:[i32] }))
/* 12740*/          0, /*End of Scope*/
/* 12741*/        /*Scope*/ 76, /*->12818*/
/* 12742*/          OPC_CheckChild0Type, MVT::v16i32,
/* 12744*/          OPC_CheckChild1Integer, 0, 
/* 12746*/          OPC_CheckChild1Type, MVT::iPTR,
/* 12748*/          OPC_CheckType, MVT::v4i32,
/* 12750*/          OPC_MoveParent,
/* 12751*/          OPC_RecordChild2, // #2 = $dst
/* 12752*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12754*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12756*/          OPC_Scope, 30, /*->12788*/ // 2 children in Scope
/* 12758*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12760*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12762*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12765*/            OPC_EmitMergeInputChains1_0,
/* 12766*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12769*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12777*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, sub_xmm:{ *:[i32] }))
/* 12788*/          /*Scope*/ 28, /*->12817*/
/* 12789*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12791*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12794*/            OPC_EmitMergeInputChains1_0,
/* 12795*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12798*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12806*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, sub_xmm:{ *:[i32] }))
/* 12817*/          0, /*End of Scope*/
/* 12818*/        /*Scope*/ 76, /*->12895*/
/* 12819*/          OPC_CheckChild0Type, MVT::v32i16,
/* 12821*/          OPC_CheckChild1Integer, 0, 
/* 12823*/          OPC_CheckChild1Type, MVT::iPTR,
/* 12825*/          OPC_CheckType, MVT::v8i16,
/* 12827*/          OPC_MoveParent,
/* 12828*/          OPC_RecordChild2, // #2 = $dst
/* 12829*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12831*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12833*/          OPC_Scope, 30, /*->12865*/ // 2 children in Scope
/* 12835*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12837*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12839*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12842*/            OPC_EmitMergeInputChains1_0,
/* 12843*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12846*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12854*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, sub_xmm:{ *:[i32] }))
/* 12865*/          /*Scope*/ 28, /*->12894*/
/* 12866*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12868*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12871*/            OPC_EmitMergeInputChains1_0,
/* 12872*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12875*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12883*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, sub_xmm:{ *:[i32] }))
/* 12894*/          0, /*End of Scope*/
/* 12895*/        /*Scope*/ 76, /*->12972*/
/* 12896*/          OPC_CheckChild0Type, MVT::v64i8,
/* 12898*/          OPC_CheckChild1Integer, 0, 
/* 12900*/          OPC_CheckChild1Type, MVT::iPTR,
/* 12902*/          OPC_CheckType, MVT::v16i8,
/* 12904*/          OPC_MoveParent,
/* 12905*/          OPC_RecordChild2, // #2 = $dst
/* 12906*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12908*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12910*/          OPC_Scope, 30, /*->12942*/ // 2 children in Scope
/* 12912*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12914*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12916*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12919*/            OPC_EmitMergeInputChains1_0,
/* 12920*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12923*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12931*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                      // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, sub_xmm:{ *:[i32] }))
/* 12942*/          /*Scope*/ 28, /*->12971*/
/* 12943*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12945*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12948*/            OPC_EmitMergeInputChains1_0,
/* 12949*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 12952*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 12960*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, sub_xmm:{ *:[i32] }))
/* 12971*/          0, /*End of Scope*/
/* 12972*/        /*Scope*/ 42|128,3/*426*/, /*->13400*/
/* 12974*/          OPC_CheckChild1Integer, 0, 
/* 12976*/          OPC_CheckChild1Type, MVT::iPTR,
/* 12978*/          OPC_SwitchType /*6 cases */, 68, MVT::v4f64,// ->13049
/* 12981*/            OPC_MoveParent,
/* 12982*/            OPC_RecordChild2, // #2 = $dst
/* 12983*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12985*/            OPC_CheckPredicate, 1, // Predicate_store
/* 12987*/            OPC_Scope, 30, /*->13019*/ // 2 children in Scope
/* 12989*/              OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 12991*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12993*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12996*/              OPC_EmitMergeInputChains1_0,
/* 12997*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13000*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13008*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                        // Dst: (VMOVAPDZ256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, sub_ymm:{ *:[i32] }))
/* 13019*/            /*Scope*/ 28, /*->13048*/
/* 13020*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13022*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13025*/              OPC_EmitMergeInputChains1_0,
/* 13026*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13029*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13037*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (VMOVUPDZ256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, sub_ymm:{ *:[i32] }))
/* 13048*/            0, /*End of Scope*/
/* 13049*/          /*SwitchType*/ 68, MVT::v8f32,// ->13119
/* 13051*/            OPC_MoveParent,
/* 13052*/            OPC_RecordChild2, // #2 = $dst
/* 13053*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13055*/            OPC_CheckPredicate, 1, // Predicate_store
/* 13057*/            OPC_Scope, 30, /*->13089*/ // 2 children in Scope
/* 13059*/              OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 13061*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13063*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13066*/              OPC_EmitMergeInputChains1_0,
/* 13067*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13070*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v8f32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13078*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                        // Dst: (VMOVAPSZ256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, sub_ymm:{ *:[i32] }))
/* 13089*/            /*Scope*/ 28, /*->13118*/
/* 13090*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13092*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13095*/              OPC_EmitMergeInputChains1_0,
/* 13096*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13099*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v8f32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13107*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (VMOVUPSZ256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, sub_ymm:{ *:[i32] }))
/* 13118*/            0, /*End of Scope*/
/* 13119*/          /*SwitchType*/ 68, MVT::v4i64,// ->13189
/* 13121*/            OPC_MoveParent,
/* 13122*/            OPC_RecordChild2, // #2 = $dst
/* 13123*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13125*/            OPC_CheckPredicate, 1, // Predicate_store
/* 13127*/            OPC_Scope, 30, /*->13159*/ // 2 children in Scope
/* 13129*/              OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 13131*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13133*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13136*/              OPC_EmitMergeInputChains1_0,
/* 13137*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13140*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4i64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13148*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                        // Dst: (VMOVDQA64Z256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, sub_ymm:{ *:[i32] }))
/* 13159*/            /*Scope*/ 28, /*->13188*/
/* 13160*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13162*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13165*/              OPC_EmitMergeInputChains1_0,
/* 13166*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13169*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4i64, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13177*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (VMOVDQU64Z256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, sub_ymm:{ *:[i32] }))
/* 13188*/            0, /*End of Scope*/
/* 13189*/          /*SwitchType*/ 68, MVT::v8i32,// ->13259
/* 13191*/            OPC_MoveParent,
/* 13192*/            OPC_RecordChild2, // #2 = $dst
/* 13193*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13195*/            OPC_CheckPredicate, 1, // Predicate_store
/* 13197*/            OPC_Scope, 30, /*->13229*/ // 2 children in Scope
/* 13199*/              OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 13201*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13203*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13206*/              OPC_EmitMergeInputChains1_0,
/* 13207*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13210*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v8i32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13218*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                        // Dst: (VMOVDQA64Z256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, sub_ymm:{ *:[i32] }))
/* 13229*/            /*Scope*/ 28, /*->13258*/
/* 13230*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13232*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13235*/              OPC_EmitMergeInputChains1_0,
/* 13236*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13239*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v8i32, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13247*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (VMOVDQU64Z256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, sub_ymm:{ *:[i32] }))
/* 13258*/            0, /*End of Scope*/
/* 13259*/          /*SwitchType*/ 68, MVT::v16i16,// ->13329
/* 13261*/            OPC_MoveParent,
/* 13262*/            OPC_RecordChild2, // #2 = $dst
/* 13263*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13265*/            OPC_CheckPredicate, 1, // Predicate_store
/* 13267*/            OPC_Scope, 30, /*->13299*/ // 2 children in Scope
/* 13269*/              OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 13271*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13273*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13276*/              OPC_EmitMergeInputChains1_0,
/* 13277*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13280*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v16i16, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13288*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                        // Dst: (VMOVDQA64Z256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, sub_ymm:{ *:[i32] }))
/* 13299*/            /*Scope*/ 28, /*->13328*/
/* 13300*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13302*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13305*/              OPC_EmitMergeInputChains1_0,
/* 13306*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13309*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v16i16, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13317*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (VMOVDQU64Z256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, sub_ymm:{ *:[i32] }))
/* 13328*/            0, /*End of Scope*/
/* 13329*/          /*SwitchType*/ 68, MVT::v32i8,// ->13399
/* 13331*/            OPC_MoveParent,
/* 13332*/            OPC_RecordChild2, // #2 = $dst
/* 13333*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13335*/            OPC_CheckPredicate, 1, // Predicate_store
/* 13337*/            OPC_Scope, 30, /*->13369*/ // 2 children in Scope
/* 13339*/              OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 13341*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13343*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13346*/              OPC_EmitMergeInputChains1_0,
/* 13347*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13350*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v32i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13358*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 30
                        // Dst: (VMOVDQA64Z256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, sub_ymm:{ *:[i32] }))
/* 13369*/            /*Scope*/ 28, /*->13398*/
/* 13370*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13372*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13375*/              OPC_EmitMergeInputChains1_0,
/* 13376*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 13379*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v32i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 13387*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                            6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (VMOVDQU64Z256mr addr:{ *:[iPTR] }:$dst, (EXTRACT_SUBREG:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, sub_ymm:{ *:[i32] }))
/* 13398*/            0, /*End of Scope*/
/* 13399*/          0, // EndSwitchType
/* 13400*/        0, /*End of Scope*/
/* 13401*/      0, // EndSwitchOpcode
/* 13402*/    /*Scope*/ 124|128,7/*1020*/, /*->14424*/
/* 13404*/      OPC_RecordChild1, // #1 = $ext
/* 13405*/      OPC_MoveChild1,
/* 13406*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 13409*/      OPC_RecordChild0, // #2 = $src1
/* 13410*/      OPC_Scope, 38, /*->13450*/ // 22 children in Scope
/* 13412*/        OPC_CheckChild0Type, MVT::v8f32,
/* 13414*/        OPC_MoveChild1,
/* 13415*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13418*/        OPC_CheckType, MVT::iPTR,
/* 13420*/        OPC_MoveParent,
/* 13421*/        OPC_CheckType, MVT::v4f32,
/* 13423*/        OPC_MoveParent,
/* 13424*/        OPC_RecordChild2, // #3 = $dst
/* 13425*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13427*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13429*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 13431*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13434*/        OPC_EmitMergeInputChains1_0,
/* 13435*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13438*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v4f32] } VR256:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4f32] }:$ext))
/* 13450*/      /*Scope*/ 38, /*->13489*/
/* 13451*/        OPC_CheckChild0Type, MVT::v4f64,
/* 13453*/        OPC_MoveChild1,
/* 13454*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13457*/        OPC_CheckType, MVT::iPTR,
/* 13459*/        OPC_MoveParent,
/* 13460*/        OPC_CheckType, MVT::v2f64,
/* 13462*/        OPC_MoveParent,
/* 13463*/        OPC_RecordChild2, // #3 = $dst
/* 13464*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13466*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13468*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 13470*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13473*/        OPC_EmitMergeInputChains1_0,
/* 13474*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13477*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v2f64] } VR256:{ *:[v4f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2f64] }:$ext))
/* 13489*/      /*Scope*/ 63, /*->13553*/
/* 13490*/        OPC_CheckChild0Type, MVT::v4i64,
/* 13492*/        OPC_MoveChild1,
/* 13493*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13496*/        OPC_CheckType, MVT::iPTR,
/* 13498*/        OPC_MoveParent,
/* 13499*/        OPC_CheckType, MVT::v2i64,
/* 13501*/        OPC_MoveParent,
/* 13502*/        OPC_RecordChild2, // #3 = $dst
/* 13503*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13505*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13507*/        OPC_Scope, 21, /*->13530*/ // 2 children in Scope
/* 13509*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 13511*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13514*/          OPC_EmitMergeInputChains1_0,
/* 13515*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13518*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2i64] }:$ext))
/* 13530*/        /*Scope*/ 21, /*->13552*/
/* 13531*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 13533*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13536*/          OPC_EmitMergeInputChains1_0,
/* 13537*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13540*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTI128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2i64] }:$ext))
/* 13552*/        0, /*End of Scope*/
/* 13553*/      /*Scope*/ 63, /*->13617*/
/* 13554*/        OPC_CheckChild0Type, MVT::v8i32,
/* 13556*/        OPC_MoveChild1,
/* 13557*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13560*/        OPC_CheckType, MVT::iPTR,
/* 13562*/        OPC_MoveParent,
/* 13563*/        OPC_CheckType, MVT::v4i32,
/* 13565*/        OPC_MoveParent,
/* 13566*/        OPC_RecordChild2, // #3 = $dst
/* 13567*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13569*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13571*/        OPC_Scope, 21, /*->13594*/ // 2 children in Scope
/* 13573*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 13575*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13578*/          OPC_EmitMergeInputChains1_0,
/* 13579*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13582*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4i32] }:$ext))
/* 13594*/        /*Scope*/ 21, /*->13616*/
/* 13595*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 13597*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13600*/          OPC_EmitMergeInputChains1_0,
/* 13601*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13604*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTI128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4i32] }:$ext))
/* 13616*/        0, /*End of Scope*/
/* 13617*/      /*Scope*/ 63, /*->13681*/
/* 13618*/        OPC_CheckChild0Type, MVT::v16i16,
/* 13620*/        OPC_MoveChild1,
/* 13621*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13624*/        OPC_CheckType, MVT::iPTR,
/* 13626*/        OPC_MoveParent,
/* 13627*/        OPC_CheckType, MVT::v8i16,
/* 13629*/        OPC_MoveParent,
/* 13630*/        OPC_RecordChild2, // #3 = $dst
/* 13631*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13633*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13635*/        OPC_Scope, 21, /*->13658*/ // 2 children in Scope
/* 13637*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 13639*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13642*/          OPC_EmitMergeInputChains1_0,
/* 13643*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13646*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v8i16] }:$ext))
/* 13658*/        /*Scope*/ 21, /*->13680*/
/* 13659*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 13661*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13664*/          OPC_EmitMergeInputChains1_0,
/* 13665*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13668*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTI128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v8i16] }:$ext))
/* 13680*/        0, /*End of Scope*/
/* 13681*/      /*Scope*/ 63, /*->13745*/
/* 13682*/        OPC_CheckChild0Type, MVT::v32i8,
/* 13684*/        OPC_MoveChild1,
/* 13685*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13688*/        OPC_CheckType, MVT::iPTR,
/* 13690*/        OPC_MoveParent,
/* 13691*/        OPC_CheckType, MVT::v16i8,
/* 13693*/        OPC_MoveParent,
/* 13694*/        OPC_RecordChild2, // #3 = $dst
/* 13695*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13697*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13699*/        OPC_Scope, 21, /*->13722*/ // 2 children in Scope
/* 13701*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 13703*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13706*/          OPC_EmitMergeInputChains1_0,
/* 13707*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13710*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v16i8] }:$ext))
/* 13722*/        /*Scope*/ 21, /*->13744*/
/* 13723*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 13725*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13728*/          OPC_EmitMergeInputChains1_0,
/* 13729*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13732*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTI128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v16i8] }:$ext))
/* 13744*/        0, /*End of Scope*/
/* 13745*/      /*Scope*/ 38, /*->13784*/
/* 13746*/        OPC_CheckChild0Type, MVT::v16f32,
/* 13748*/        OPC_MoveChild1,
/* 13749*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13752*/        OPC_CheckType, MVT::iPTR,
/* 13754*/        OPC_MoveParent,
/* 13755*/        OPC_CheckType, MVT::v4f32,
/* 13757*/        OPC_MoveParent,
/* 13758*/        OPC_RecordChild2, // #3 = $dst
/* 13759*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13761*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13763*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 13765*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13768*/        OPC_EmitMergeInputChains1_0,
/* 13769*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13772*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF32x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTF32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 13784*/      /*Scope*/ 36, /*->13821*/
/* 13785*/        OPC_MoveChild1,
/* 13786*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13789*/        OPC_CheckType, MVT::iPTR,
/* 13791*/        OPC_MoveParent,
/* 13792*/        OPC_CheckType, MVT::v4f64,
/* 13794*/        OPC_MoveParent,
/* 13795*/        OPC_RecordChild2, // #3 = $dst
/* 13796*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13798*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13800*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 13802*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13805*/        OPC_EmitMergeInputChains1_0,
/* 13806*/        OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 13809*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF64x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTF64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 13821*/      /*Scope*/ 38, /*->13860*/
/* 13822*/        OPC_CheckChild0Type, MVT::v8f32,
/* 13824*/        OPC_MoveChild1,
/* 13825*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13828*/        OPC_CheckType, MVT::iPTR,
/* 13830*/        OPC_MoveParent,
/* 13831*/        OPC_CheckType, MVT::v4f32,
/* 13833*/        OPC_MoveParent,
/* 13834*/        OPC_RecordChild2, // #3 = $dst
/* 13835*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13837*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13839*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13841*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13844*/        OPC_EmitMergeInputChains1_0,
/* 13845*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13848*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF32x4Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTF32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 13860*/      /*Scope*/ 38, /*->13899*/
/* 13861*/        OPC_CheckChild0Type, MVT::v16i32,
/* 13863*/        OPC_MoveChild1,
/* 13864*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13867*/        OPC_CheckType, MVT::iPTR,
/* 13869*/        OPC_MoveParent,
/* 13870*/        OPC_CheckType, MVT::v4i32,
/* 13872*/        OPC_MoveParent,
/* 13873*/        OPC_RecordChild2, // #3 = $dst
/* 13874*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13876*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13878*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 13880*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13883*/        OPC_EmitMergeInputChains1_0,
/* 13884*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13887*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI32x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTI32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 13899*/      /*Scope*/ 36, /*->13936*/
/* 13900*/        OPC_MoveChild1,
/* 13901*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13904*/        OPC_CheckType, MVT::iPTR,
/* 13906*/        OPC_MoveParent,
/* 13907*/        OPC_CheckType, MVT::v4i64,
/* 13909*/        OPC_MoveParent,
/* 13910*/        OPC_RecordChild2, // #3 = $dst
/* 13911*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13913*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13915*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 13917*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13920*/        OPC_EmitMergeInputChains1_0,
/* 13921*/        OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 13924*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI64x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTI64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 13936*/      /*Scope*/ 38, /*->13975*/
/* 13937*/        OPC_CheckChild0Type, MVT::v8i32,
/* 13939*/        OPC_MoveChild1,
/* 13940*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13943*/        OPC_CheckType, MVT::iPTR,
/* 13945*/        OPC_MoveParent,
/* 13946*/        OPC_CheckType, MVT::v4i32,
/* 13948*/        OPC_MoveParent,
/* 13949*/        OPC_RecordChild2, // #3 = $dst
/* 13950*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13952*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13954*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 13956*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13959*/        OPC_EmitMergeInputChains1_0,
/* 13960*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 13963*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI32x4Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTI32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 13975*/      /*Scope*/ 38, /*->14014*/
/* 13976*/        OPC_CheckChild0Type, MVT::v8f64,
/* 13978*/        OPC_MoveChild1,
/* 13979*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13982*/        OPC_CheckType, MVT::iPTR,
/* 13984*/        OPC_MoveParent,
/* 13985*/        OPC_CheckType, MVT::v2f64,
/* 13987*/        OPC_MoveParent,
/* 13988*/        OPC_RecordChild2, // #3 = $dst
/* 13989*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13991*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13993*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 13995*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13998*/        OPC_EmitMergeInputChains1_0,
/* 13999*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 14002*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF32x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTF32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/* 14014*/      /*Scope*/ 38, /*->14053*/
/* 14015*/        OPC_CheckChild0Type, MVT::v8i64,
/* 14017*/        OPC_MoveChild1,
/* 14018*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14021*/        OPC_CheckType, MVT::iPTR,
/* 14023*/        OPC_MoveParent,
/* 14024*/        OPC_CheckType, MVT::v2i64,
/* 14026*/        OPC_MoveParent,
/* 14027*/        OPC_RecordChild2, // #3 = $dst
/* 14028*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14030*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14032*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 14034*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14037*/        OPC_EmitMergeInputChains1_0,
/* 14038*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 14041*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI32x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTI32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/* 14053*/      /*Scope*/ 67, /*->14121*/
/* 14054*/        OPC_MoveChild1,
/* 14055*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14058*/        OPC_CheckType, MVT::iPTR,
/* 14060*/        OPC_MoveParent,
/* 14061*/        OPC_SwitchType /*2 cases */, 27, MVT::v8f32,// ->14091
/* 14064*/          OPC_MoveParent,
/* 14065*/          OPC_RecordChild2, // #3 = $dst
/* 14066*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14068*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14070*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 14072*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14075*/          OPC_EmitMergeInputChains1_0,
/* 14076*/          OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 14079*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF64x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTF64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ext))
/* 14091*/        /*SwitchType*/ 27, MVT::v8i32,// ->14120
/* 14093*/          OPC_MoveParent,
/* 14094*/          OPC_RecordChild2, // #3 = $dst
/* 14095*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14097*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14099*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 14101*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14104*/          OPC_EmitMergeInputChains1_0,
/* 14105*/          OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 14108*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI64x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTI64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ext))
/* 14120*/        0, // EndSwitchType
/* 14121*/      /*Scope*/ 38, /*->14160*/
/* 14122*/        OPC_CheckChild0Type, MVT::v4f64,
/* 14124*/        OPC_MoveChild1,
/* 14125*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14128*/        OPC_CheckType, MVT::iPTR,
/* 14130*/        OPC_MoveParent,
/* 14131*/        OPC_CheckType, MVT::v2f64,
/* 14133*/        OPC_MoveParent,
/* 14134*/        OPC_RecordChild2, // #3 = $dst
/* 14135*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14137*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14139*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14141*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14144*/        OPC_EmitMergeInputChains1_0,
/* 14145*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 14148*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTF32x4Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTF32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/* 14160*/      /*Scope*/ 38, /*->14199*/
/* 14161*/        OPC_CheckChild0Type, MVT::v4i64,
/* 14163*/        OPC_MoveChild1,
/* 14164*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14167*/        OPC_CheckType, MVT::iPTR,
/* 14169*/        OPC_MoveParent,
/* 14170*/        OPC_CheckType, MVT::v2i64,
/* 14172*/        OPC_MoveParent,
/* 14173*/        OPC_RecordChild2, // #3 = $dst
/* 14174*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14176*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14178*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14180*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14183*/        OPC_EmitMergeInputChains1_0,
/* 14184*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 14187*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI32x4Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTI32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/* 14199*/      /*Scope*/ 38, /*->14238*/
/* 14200*/        OPC_CheckChild0Type, MVT::v16i16,
/* 14202*/        OPC_MoveChild1,
/* 14203*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14206*/        OPC_CheckType, MVT::iPTR,
/* 14208*/        OPC_MoveParent,
/* 14209*/        OPC_CheckType, MVT::v8i16,
/* 14211*/        OPC_MoveParent,
/* 14212*/        OPC_RecordChild2, // #3 = $dst
/* 14213*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14215*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14217*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14219*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14222*/        OPC_EmitMergeInputChains1_0,
/* 14223*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 14226*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI32x4Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTI32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/* 14238*/      /*Scope*/ 38, /*->14277*/
/* 14239*/        OPC_CheckChild0Type, MVT::v32i8,
/* 14241*/        OPC_MoveChild1,
/* 14242*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14245*/        OPC_CheckType, MVT::iPTR,
/* 14247*/        OPC_MoveParent,
/* 14248*/        OPC_CheckType, MVT::v16i8,
/* 14250*/        OPC_MoveParent,
/* 14251*/        OPC_RecordChild2, // #3 = $dst
/* 14252*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14254*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14256*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14258*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14261*/        OPC_EmitMergeInputChains1_0,
/* 14262*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 14265*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI32x4Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTI32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/* 14277*/      /*Scope*/ 38, /*->14316*/
/* 14278*/        OPC_CheckChild0Type, MVT::v32i16,
/* 14280*/        OPC_MoveChild1,
/* 14281*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14284*/        OPC_CheckType, MVT::iPTR,
/* 14286*/        OPC_MoveParent,
/* 14287*/        OPC_CheckType, MVT::v8i16,
/* 14289*/        OPC_MoveParent,
/* 14290*/        OPC_RecordChild2, // #3 = $dst
/* 14291*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14293*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14295*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 14297*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14300*/        OPC_EmitMergeInputChains1_0,
/* 14301*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 14304*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI32x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTI32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v32i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/* 14316*/      /*Scope*/ 38, /*->14355*/
/* 14317*/        OPC_CheckChild0Type, MVT::v64i8,
/* 14319*/        OPC_MoveChild1,
/* 14320*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14323*/        OPC_CheckType, MVT::iPTR,
/* 14325*/        OPC_MoveParent,
/* 14326*/        OPC_CheckType, MVT::v16i8,
/* 14328*/        OPC_MoveParent,
/* 14329*/        OPC_RecordChild2, // #3 = $dst
/* 14330*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14332*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14334*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 14336*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14339*/        OPC_EmitMergeInputChains1_0,
/* 14340*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 14343*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI32x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                  // Src: (st (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (VEXTRACTI32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v64i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/* 14355*/      /*Scope*/ 67, /*->14423*/
/* 14356*/        OPC_MoveChild1,
/* 14357*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14360*/        OPC_CheckType, MVT::iPTR,
/* 14362*/        OPC_MoveParent,
/* 14363*/        OPC_SwitchType /*2 cases */, 27, MVT::v16i16,// ->14393
/* 14366*/          OPC_MoveParent,
/* 14367*/          OPC_RecordChild2, // #3 = $dst
/* 14368*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14370*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14372*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 14374*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14377*/          OPC_EmitMergeInputChains1_0,
/* 14378*/          OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 14381*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI64x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTI64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v32i16] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/* 14393*/        /*SwitchType*/ 27, MVT::v32i8,// ->14422
/* 14395*/          OPC_MoveParent,
/* 14396*/          OPC_RecordChild2, // #3 = $dst
/* 14397*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14399*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14401*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 14403*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14406*/          OPC_EmitMergeInputChains1_0,
/* 14407*/          OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 14410*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VEXTRACTI64x4Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 9, 
                    // Src: (st (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VEXTRACTI64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v64i8] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/* 14422*/        0, // EndSwitchType
/* 14423*/      0, /*End of Scope*/
/* 14424*/    /*Scope*/ 9|128,2/*265*/, /*->14691*/
/* 14426*/      OPC_MoveChild1,
/* 14427*/      OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->14508
/* 14431*/        OPC_RecordChild0, // #1 = $src1
/* 14432*/        OPC_Scope, 36, /*->14470*/ // 2 children in Scope
/* 14434*/          OPC_CheckChild0Type, MVT::v4i32,
/* 14436*/          OPC_RecordChild1, // #2 = $src2
/* 14437*/          OPC_MoveChild1,
/* 14438*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14441*/          OPC_MoveParent,
/* 14442*/          OPC_CheckType, MVT::i32,
/* 14444*/          OPC_MoveParent,
/* 14445*/          OPC_RecordChild2, // #3 = $dst
/* 14446*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14448*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14450*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 14452*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14455*/          OPC_EmitMergeInputChains1_0,
/* 14456*/          OPC_EmitConvertToTarget, 2,
/* 14458*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPEXTRDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                    // Src: (st (extractelt:{ *:[i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[iPTR] }):$src2), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VPEXTRDZmr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/* 14470*/        /*Scope*/ 36, /*->14507*/
/* 14471*/          OPC_CheckChild0Type, MVT::v2i64,
/* 14473*/          OPC_RecordChild1, // #2 = $src2
/* 14474*/          OPC_MoveChild1,
/* 14475*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14478*/          OPC_MoveParent,
/* 14479*/          OPC_CheckType, MVT::i64,
/* 14481*/          OPC_MoveParent,
/* 14482*/          OPC_RecordChild2, // #3 = $dst
/* 14483*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14485*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14487*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 14489*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14492*/          OPC_EmitMergeInputChains1_0,
/* 14493*/          OPC_EmitConvertToTarget, 2,
/* 14495*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPEXTRQZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                    // Src: (st (extractelt:{ *:[i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[iPTR] }):$src2), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VPEXTRQZmr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/* 14507*/        0, /*End of Scope*/
/* 14508*/      /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::Wrapper),// ->14690
/* 14512*/        OPC_RecordChild0, // #1 = $src
/* 14513*/        OPC_MoveChild0,
/* 14514*/        OPC_SwitchOpcode /*6 cases */, 26, TARGET_VAL(ISD::TargetConstantPool),// ->14544
/* 14518*/          OPC_MoveParent,
/* 14519*/          OPC_CheckType, MVT::i64,
/* 14521*/          OPC_MoveParent,
/* 14522*/          OPC_RecordChild2, // #2 = $dst
/* 14523*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14525*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14527*/          OPC_CheckPatternPredicate, 21, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 14529*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14532*/          OPC_EmitMergeInputChains1_0,
/* 14533*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 14544*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetJumpTable),// ->14573
/* 14547*/          OPC_MoveParent,
/* 14548*/          OPC_CheckType, MVT::i64,
/* 14550*/          OPC_MoveParent,
/* 14551*/          OPC_RecordChild2, // #2 = $dst
/* 14552*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14554*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14556*/          OPC_CheckPatternPredicate, 21, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 14558*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14561*/          OPC_EmitMergeInputChains1_0,
/* 14562*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 14573*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetGlobalAddress),// ->14602
/* 14576*/          OPC_MoveParent,
/* 14577*/          OPC_CheckType, MVT::i64,
/* 14579*/          OPC_MoveParent,
/* 14580*/          OPC_RecordChild2, // #2 = $dst
/* 14581*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14583*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14585*/          OPC_CheckPatternPredicate, 21, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 14587*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14590*/          OPC_EmitMergeInputChains1_0,
/* 14591*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 14602*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetExternalSymbol),// ->14631
/* 14605*/          OPC_MoveParent,
/* 14606*/          OPC_CheckType, MVT::i64,
/* 14608*/          OPC_MoveParent,
/* 14609*/          OPC_RecordChild2, // #2 = $dst
/* 14610*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14612*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14614*/          OPC_CheckPatternPredicate, 21, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 14616*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14619*/          OPC_EmitMergeInputChains1_0,
/* 14620*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 14631*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::MCSymbol),// ->14660
/* 14634*/          OPC_MoveParent,
/* 14635*/          OPC_CheckType, MVT::i64,
/* 14637*/          OPC_MoveParent,
/* 14638*/          OPC_RecordChild2, // #2 = $dst
/* 14639*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14641*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14643*/          OPC_CheckPatternPredicate, 21, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 14645*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14648*/          OPC_EmitMergeInputChains1_0,
/* 14649*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st (X86Wrapper:{ *:[i64] } (mcsym:{ *:[i64] }):$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (MOV64mi32 addr:{ *:[iPTR] }:$dst, (mcsym:{ *:[i64] }):$src)
/* 14660*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetBlockAddress),// ->14689
/* 14663*/          OPC_MoveParent,
/* 14664*/          OPC_CheckType, MVT::i64,
/* 14666*/          OPC_MoveParent,
/* 14667*/          OPC_RecordChild2, // #2 = $dst
/* 14668*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14670*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14672*/          OPC_CheckPatternPredicate, 21, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 14674*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14677*/          OPC_EmitMergeInputChains1_0,
/* 14678*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 14689*/        0, // EndSwitchOpcode
/* 14690*/      0, // EndSwitchOpcode
/* 14691*/    /*Scope*/ 91, /*->14783*/
/* 14692*/      OPC_CheckChild1Integer, 0, 
/* 14694*/      OPC_Scope, 28, /*->14724*/ // 3 children in Scope
/* 14696*/        OPC_CheckChild1Type, MVT::i16,
/* 14698*/        OPC_RecordChild2, // #1 = $dst
/* 14699*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14701*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14703*/        OPC_CheckPatternPredicate, 22, // (MF->getFunction().optForMinSize())
/* 14705*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 14708*/        OPC_EmitMergeInputChains1_0,
/* 14709*/        OPC_EmitInteger, MVT::i16, 0, 
/* 14712*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AND16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (st 0:{ *:[i16] }, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 27
                  // Dst: (AND16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 0:{ *:[i16] })
/* 14724*/      /*Scope*/ 28, /*->14753*/
/* 14725*/        OPC_CheckChild1Type, MVT::i32,
/* 14727*/        OPC_RecordChild2, // #1 = $dst
/* 14728*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14730*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14732*/        OPC_CheckPatternPredicate, 22, // (MF->getFunction().optForMinSize())
/* 14734*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 14737*/        OPC_EmitMergeInputChains1_0,
/* 14738*/        OPC_EmitInteger, MVT::i32, 0, 
/* 14741*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AND32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (st 0:{ *:[i32] }, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 27
                  // Dst: (AND32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 0:{ *:[i32] })
/* 14753*/      /*Scope*/ 28, /*->14782*/
/* 14754*/        OPC_CheckChild1Type, MVT::i64,
/* 14756*/        OPC_RecordChild2, // #1 = $dst
/* 14757*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14759*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14761*/        OPC_CheckPatternPredicate, 22, // (MF->getFunction().optForMinSize())
/* 14763*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 14766*/        OPC_EmitMergeInputChains1_0,
/* 14767*/        OPC_EmitInteger, MVT::i64, 0, 
/* 14770*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AND64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (st 0:{ *:[i64] }, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 27
                  // Dst: (AND64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 0:{ *:[i64] })
/* 14782*/      0, /*End of Scope*/
/* 14783*/    /*Scope*/ 127, /*->14911*/
/* 14784*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 14795*/      OPC_Scope, 37, /*->14834*/ // 3 children in Scope
/* 14797*/        OPC_CheckChild1Type, MVT::i16,
/* 14799*/        OPC_RecordChild2, // #1 = $dst
/* 14800*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14802*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14804*/        OPC_CheckPatternPredicate, 22, // (MF->getFunction().optForMinSize())
/* 14806*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 14809*/        OPC_EmitMergeInputChains1_0,
/* 14810*/        OPC_EmitInteger, MVT::i16, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 14822*/        OPC_MorphNodeTo1, TARGET_VAL(X86::OR16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (st -1:{ *:[i16] }, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 27
                  // Dst: (OR16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i16] })
/* 14834*/      /*Scope*/ 37, /*->14872*/
/* 14835*/        OPC_CheckChild1Type, MVT::i32,
/* 14837*/        OPC_RecordChild2, // #1 = $dst
/* 14838*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14840*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14842*/        OPC_CheckPatternPredicate, 22, // (MF->getFunction().optForMinSize())
/* 14844*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 14847*/        OPC_EmitMergeInputChains1_0,
/* 14848*/        OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 14860*/        OPC_MorphNodeTo1, TARGET_VAL(X86::OR32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (st -1:{ *:[i32] }, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 27
                  // Dst: (OR32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i32] })
/* 14872*/      /*Scope*/ 37, /*->14910*/
/* 14873*/        OPC_CheckChild1Type, MVT::i64,
/* 14875*/        OPC_RecordChild2, // #1 = $dst
/* 14876*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14878*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14880*/        OPC_CheckPatternPredicate, 22, // (MF->getFunction().optForMinSize())
/* 14882*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 14885*/        OPC_EmitMergeInputChains1_0,
/* 14886*/        OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 14898*/        OPC_MorphNodeTo1, TARGET_VAL(X86::OR64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (st -1:{ *:[i64] }, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 27
                  // Dst: (OR64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i64] })
/* 14910*/      0, /*End of Scope*/
/* 14911*/    /*Scope*/ 122, /*->15034*/
/* 14912*/      OPC_RecordChild1, // #1 = $src
/* 14913*/      OPC_MoveChild1,
/* 14914*/      OPC_SwitchType /*4 cases */, 32, MVT::i64,// ->14949
/* 14917*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14920*/        OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 14922*/        OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/* 14924*/        OPC_MoveParent,
/* 14925*/        OPC_RecordChild2, // #2 = $dst
/* 14926*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14928*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14930*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 14932*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14935*/        OPC_EmitMergeInputChains1_0,
/* 14936*/        OPC_EmitConvertToTarget, 1,
/* 14938*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (st (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>><<P:Predicate_i64immSExt32_su>>:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 26
                  // Dst: (MOV64mi32 addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/* 14949*/      /*SwitchType*/ 26, MVT::i8,// ->14977
/* 14951*/        OPC_CheckPredicate, 16, // Predicate_imm8_su
/* 14953*/        OPC_MoveParent,
/* 14954*/        OPC_RecordChild2, // #2 = $dst
/* 14955*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14957*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14959*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #3
/* 14962*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14965*/        OPC_EmitMergeInputChains1_0,
/* 14966*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOV8mi), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                  // Src: (st relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                  // Dst: (MOV8mi addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/* 14977*/      /*SwitchType*/ 26, MVT::i16,// ->15005
/* 14979*/        OPC_CheckPredicate, 16, // Predicate_imm16_su
/* 14981*/        OPC_MoveParent,
/* 14982*/        OPC_RecordChild2, // #2 = $dst
/* 14983*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14985*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14987*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #3
/* 14990*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 14993*/        OPC_EmitMergeInputChains1_0,
/* 14994*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOV16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                  // Src: (st relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                  // Dst: (MOV16mi addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/* 15005*/      /*SwitchType*/ 26, MVT::i32,// ->15033
/* 15007*/        OPC_CheckPredicate, 16, // Predicate_imm32_su
/* 15009*/        OPC_MoveParent,
/* 15010*/        OPC_RecordChild2, // #2 = $dst
/* 15011*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15013*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15015*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #3
/* 15018*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 15021*/        OPC_EmitMergeInputChains1_0,
/* 15022*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOV32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                  // Src: (st relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                  // Dst: (MOV32mi addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/* 15033*/      0, // EndSwitchType
/* 15034*/    /*Scope*/ 59|128,2/*315*/, /*->15351*/
/* 15036*/      OPC_MoveChild1,
/* 15037*/      OPC_SwitchOpcode /*3 cases */, 78, TARGET_VAL(ISD::BSWAP),// ->15119
/* 15041*/        OPC_RecordChild0, // #1 = $src
/* 15042*/        OPC_SwitchType /*3 cases */, 23, MVT::i16,// ->15068
/* 15045*/          OPC_MoveParent,
/* 15046*/          OPC_RecordChild2, // #2 = $dst
/* 15047*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15049*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15051*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasMOVBE())
/* 15053*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15056*/          OPC_EmitMergeInputChains1_0,
/* 15057*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVBE16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15068*/        /*SwitchType*/ 23, MVT::i32,// ->15093
/* 15070*/          OPC_MoveParent,
/* 15071*/          OPC_RecordChild2, // #2 = $dst
/* 15072*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15074*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15076*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasMOVBE())
/* 15078*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15081*/          OPC_EmitMergeInputChains1_0,
/* 15082*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVBE32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15093*/        /*SwitchType*/ 23, MVT::i64,// ->15118
/* 15095*/          OPC_MoveParent,
/* 15096*/          OPC_RecordChild2, // #2 = $dst
/* 15097*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15099*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15101*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasMOVBE())
/* 15103*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15106*/          OPC_EmitMergeInputChains1_0,
/* 15107*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVBE64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15118*/        0, // EndSwitchType
/* 15119*/      /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(ISD::BITCAST),// ->15258
/* 15123*/        OPC_RecordChild0, // #1 = $src
/* 15124*/        OPC_SwitchType /*2 cases */, 64, MVT::i64,// ->15191
/* 15127*/          OPC_CheckChild0Type, MVT::f64,
/* 15129*/          OPC_MoveParent,
/* 15130*/          OPC_RecordChild2, // #2 = $dst
/* 15131*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15133*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15135*/          OPC_Scope, 17, /*->15154*/ // 3 children in Scope
/* 15137*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 15139*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15142*/            OPC_EmitMergeInputChains1_0,
/* 15143*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDto64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 15154*/          /*Scope*/ 17, /*->15172*/
/* 15155*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 15157*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15160*/            OPC_EmitMergeInputChains1_0,
/* 15161*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOVSDto64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 15172*/          /*Scope*/ 17, /*->15190*/
/* 15173*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15175*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15178*/            OPC_EmitMergeInputChains1_0,
/* 15179*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDto64Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st (bitconvert:{ *:[i64] } FR64X:{ *:[f64] }:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                      // Dst: (VMOVSDto64Zmr addr:{ *:[iPTR] }:$dst, FR64X:{ *:[f64] }:$src)
/* 15190*/          0, /*End of Scope*/
/* 15191*/        /*SwitchType*/ 64, MVT::i32,// ->15257
/* 15193*/          OPC_CheckChild0Type, MVT::f32,
/* 15195*/          OPC_MoveParent,
/* 15196*/          OPC_RecordChild2, // #2 = $dst
/* 15197*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15199*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15201*/          OPC_Scope, 17, /*->15220*/ // 3 children in Scope
/* 15203*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 15205*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15208*/            OPC_EmitMergeInputChains1_0,
/* 15209*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSS2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 15220*/          /*Scope*/ 17, /*->15238*/
/* 15221*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 15223*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15226*/            OPC_EmitMergeInputChains1_0,
/* 15227*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOVSS2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 15238*/          /*Scope*/ 17, /*->15256*/
/* 15239*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15241*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15244*/            OPC_EmitMergeInputChains1_0,
/* 15245*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSS2DIZmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st (bitconvert:{ *:[i32] } FR32X:{ *:[f32] }:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                      // Dst: (VMOVSS2DIZmr addr:{ *:[iPTR] }:$dst, FR32X:{ *:[f32] }:$src)
/* 15256*/          0, /*End of Scope*/
/* 15257*/        0, // EndSwitchType
/* 15258*/      /*SwitchOpcode*/ 89, TARGET_VAL(X86ISD::CVTPS2PH),// ->15350
/* 15261*/        OPC_RecordChild0, // #1 = $src1
/* 15262*/        OPC_SwitchType /*2 cases */, 53, MVT::v8i16,// ->15318
/* 15265*/          OPC_CheckChild0Type, MVT::v8f32,
/* 15267*/          OPC_RecordChild1, // #2 = $src2
/* 15268*/          OPC_MoveParent,
/* 15269*/          OPC_RecordChild2, // #3 = $dst
/* 15270*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15272*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15274*/          OPC_Scope, 20, /*->15296*/ // 2 children in Scope
/* 15276*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/* 15278*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 15281*/            OPC_EmitMergeInputChains1_0,
/* 15282*/            OPC_EmitConvertToTarget, 2,
/* 15284*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                      // Src: (st (X86cvtps2ph:{ *:[v8i16] } VR256:{ *:[v8f32] }:$src1, i32:{ *:[i32] }:$src2), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                      // Dst: (VCVTPS2PHYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 15296*/          /*Scope*/ 20, /*->15317*/
/* 15297*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15299*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 15302*/            OPC_EmitMergeInputChains1_0,
/* 15303*/            OPC_EmitConvertToTarget, 2,
/* 15305*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                      // Src: (st (X86cvtps2ph:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src1, i32:{ *:[i32] }:$src2), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                      // Dst: (VCVTPS2PHZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 15317*/          0, /*End of Scope*/
/* 15318*/        /*SwitchType*/ 29, MVT::v16i16,// ->15349
/* 15320*/          OPC_CheckChild0Type, MVT::v16f32,
/* 15322*/          OPC_RecordChild1, // #2 = $src2
/* 15323*/          OPC_MoveParent,
/* 15324*/          OPC_RecordChild2, // #3 = $dst
/* 15325*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15327*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15329*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15331*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 15334*/          OPC_EmitMergeInputChains1_0,
/* 15335*/          OPC_EmitConvertToTarget, 2,
/* 15337*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                    // Src: (st (X86cvtps2ph:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src1, i32:{ *:[i32] }:$src2), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                    // Dst: (VCVTPS2PHZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 15349*/        0, // EndSwitchType
/* 15350*/      0, // EndSwitchOpcode
/* 15351*/    /*Scope*/ 0|128,20/*2560*/, /*->17913*/
/* 15353*/      OPC_RecordChild1, // #1 = $src
/* 15354*/      OPC_Scope, 82, /*->15438*/ // 32 children in Scope
/* 15356*/        OPC_CheckChild1Type, MVT::f32,
/* 15358*/        OPC_RecordChild2, // #2 = $op
/* 15359*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15361*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15363*/        OPC_Scope, 18, /*->15383*/ // 4 children in Scope
/* 15365*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/* 15367*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 15370*/          OPC_EmitMergeInputChains1_0,
/* 15371*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ST_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i16, 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:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP32:{ *:[f32] }:$src)
/* 15383*/        /*Scope*/ 17, /*->15401*/
/* 15384*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 15386*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15389*/          OPC_EmitMergeInputChains1_0,
/* 15390*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15401*/        /*Scope*/ 17, /*->15419*/
/* 15402*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 15404*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15407*/          OPC_EmitMergeInputChains1_0,
/* 15408*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15419*/        /*Scope*/ 17, /*->15437*/
/* 15420*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15422*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15425*/          OPC_EmitMergeInputChains1_0,
/* 15426*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st FR32X:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVSSZmr addr:{ *:[iPTR] }:$dst, FR32X:{ *:[f32] }:$src)
/* 15437*/        0, /*End of Scope*/
/* 15438*/      /*Scope*/ 108, /*->15547*/
/* 15439*/        OPC_CheckChild1Type, MVT::f64,
/* 15441*/        OPC_RecordChild2, // #2 = $op
/* 15442*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15444*/        OPC_Scope, 22, /*->15468*/ // 2 children in Scope
/* 15446*/          OPC_CheckPredicate, 19, // Predicate_truncstore
/* 15448*/          OPC_CheckPredicate, 20, // Predicate_truncstoref32
/* 15450*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/* 15452*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 15455*/          OPC_EmitMergeInputChains1_0,
/* 15456*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ST_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i16, 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:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/* 15468*/        /*Scope*/ 77, /*->15546*/
/* 15469*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15471*/          OPC_Scope, 18, /*->15491*/ // 4 children in Scope
/* 15473*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/* 15475*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 15478*/            OPC_EmitMergeInputChains1_0,
/* 15479*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ST_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i16, 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:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/* 15491*/          /*Scope*/ 17, /*->15509*/
/* 15492*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 15494*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15497*/            OPC_EmitMergeInputChains1_0,
/* 15498*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 15509*/          /*Scope*/ 17, /*->15527*/
/* 15510*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 15512*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15515*/            OPC_EmitMergeInputChains1_0,
/* 15516*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 15527*/          /*Scope*/ 17, /*->15545*/
/* 15528*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15530*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15533*/            OPC_EmitMergeInputChains1_0,
/* 15534*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st FR64X:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                      // Dst: (VMOVSDZmr addr:{ *:[iPTR] }:$dst, FR64X:{ *:[f64] }:$src)
/* 15545*/          0, /*End of Scope*/
/* 15546*/        0, /*End of Scope*/
/* 15547*/      /*Scope*/ 69, /*->15617*/
/* 15548*/        OPC_CheckChild1Type, MVT::f80,
/* 15550*/        OPC_RecordChild2, // #2 = $op
/* 15551*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15553*/        OPC_Scope, 42, /*->15597*/ // 2 children in Scope
/* 15555*/          OPC_CheckPredicate, 19, // Predicate_truncstore
/* 15557*/          OPC_Scope, 18, /*->15577*/ // 2 children in Scope
/* 15559*/            OPC_CheckPredicate, 20, // Predicate_truncstoref32
/* 15561*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 15564*/            OPC_EmitMergeInputChains1_0,
/* 15565*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ST_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i16, 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:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/* 15577*/          /*Scope*/ 18, /*->15596*/
/* 15578*/            OPC_CheckPredicate, 21, // Predicate_truncstoref64
/* 15580*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 15583*/            OPC_EmitMergeInputChains1_0,
/* 15584*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ST_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i16, 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:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/* 15596*/          0, /*End of Scope*/
/* 15597*/        /*Scope*/ 18, /*->15616*/
/* 15598*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15600*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 15603*/          OPC_EmitMergeInputChains1_0,
/* 15604*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ST_FpP80m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i16, 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:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/* 15616*/        0, /*End of Scope*/
/* 15617*/      /*Scope*/ 22, /*->15640*/
/* 15618*/        OPC_CheckChild1Type, MVT::i8,
/* 15620*/        OPC_RecordChild2, // #2 = $dst
/* 15621*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15623*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15625*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15628*/        OPC_EmitMergeInputChains1_0,
/* 15629*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOV8mr), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 15640*/      /*Scope*/ 22, /*->15663*/
/* 15641*/        OPC_CheckChild1Type, MVT::i16,
/* 15643*/        OPC_RecordChild2, // #2 = $dst
/* 15644*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15646*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15648*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15651*/        OPC_EmitMergeInputChains1_0,
/* 15652*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOV16mr), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 15663*/      /*Scope*/ 22, /*->15686*/
/* 15664*/        OPC_CheckChild1Type, MVT::i32,
/* 15666*/        OPC_RecordChild2, // #2 = $dst
/* 15667*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15669*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15671*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15674*/        OPC_EmitMergeInputChains1_0,
/* 15675*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOV32mr), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 15686*/      /*Scope*/ 22, /*->15709*/
/* 15687*/        OPC_CheckChild1Type, MVT::i64,
/* 15689*/        OPC_RecordChild2, // #2 = $dst
/* 15690*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15692*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15694*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15697*/        OPC_EmitMergeInputChains1_0,
/* 15698*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOV64mr), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 15709*/      /*Scope*/ 123, /*->15833*/
/* 15710*/        OPC_CheckChild1Type, MVT::v4f32,
/* 15712*/        OPC_RecordChild2, // #2 = $dst
/* 15713*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15715*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15717*/        OPC_Scope, 19, /*->15738*/ // 6 children in Scope
/* 15719*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 15721*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15723*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15726*/          OPC_EmitMergeInputChains1_0,
/* 15727*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15738*/        /*Scope*/ 17, /*->15756*/
/* 15739*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15741*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15744*/          OPC_EmitMergeInputChains1_0,
/* 15745*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15756*/        /*Scope*/ 19, /*->15776*/
/* 15757*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 15759*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 15761*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15764*/          OPC_EmitMergeInputChains1_0,
/* 15765*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15776*/        /*Scope*/ 17, /*->15794*/
/* 15777*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 15779*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15782*/          OPC_EmitMergeInputChains1_0,
/* 15783*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15794*/        /*Scope*/ 19, /*->15814*/
/* 15795*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 15797*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 15799*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15802*/          OPC_EmitMergeInputChains1_0,
/* 15803*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v4f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVAPSZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4f32] }:$src)
/* 15814*/        /*Scope*/ 17, /*->15832*/
/* 15815*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 15817*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15820*/          OPC_EmitMergeInputChains1_0,
/* 15821*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v4f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVUPSZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4f32] }:$src)
/* 15832*/        0, /*End of Scope*/
/* 15833*/      /*Scope*/ 123, /*->15957*/
/* 15834*/        OPC_CheckChild1Type, MVT::v2f64,
/* 15836*/        OPC_RecordChild2, // #2 = $dst
/* 15837*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15839*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15841*/        OPC_Scope, 19, /*->15862*/ // 6 children in Scope
/* 15843*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 15845*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15847*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15850*/          OPC_EmitMergeInputChains1_0,
/* 15851*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15862*/        /*Scope*/ 17, /*->15880*/
/* 15863*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15865*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15868*/          OPC_EmitMergeInputChains1_0,
/* 15869*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15880*/        /*Scope*/ 19, /*->15900*/
/* 15881*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 15883*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 15885*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15888*/          OPC_EmitMergeInputChains1_0,
/* 15889*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVAPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15900*/        /*Scope*/ 17, /*->15918*/
/* 15901*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 15903*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15906*/          OPC_EmitMergeInputChains1_0,
/* 15907*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVUPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 15918*/        /*Scope*/ 19, /*->15938*/
/* 15919*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 15921*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 15923*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15926*/          OPC_EmitMergeInputChains1_0,
/* 15927*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v2f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVAPDZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2f64] }:$src)
/* 15938*/        /*Scope*/ 17, /*->15956*/
/* 15939*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 15941*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15944*/          OPC_EmitMergeInputChains1_0,
/* 15945*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v2f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVUPDZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2f64] }:$src)
/* 15956*/        0, /*End of Scope*/
/* 15957*/      /*Scope*/ 85, /*->16043*/
/* 15958*/        OPC_CheckChild1Type, MVT::v8f32,
/* 15960*/        OPC_RecordChild2, // #2 = $dst
/* 15961*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15963*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15965*/        OPC_Scope, 19, /*->15986*/ // 4 children in Scope
/* 15967*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 15969*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15971*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15974*/          OPC_EmitMergeInputChains1_0,
/* 15975*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256:{ *:[v8f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVAPSYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8f32] }:$src)
/* 15986*/        /*Scope*/ 17, /*->16004*/
/* 15987*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15989*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15992*/          OPC_EmitMergeInputChains1_0,
/* 15993*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 16004*/        /*Scope*/ 19, /*->16024*/
/* 16005*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16007*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16009*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16012*/          OPC_EmitMergeInputChains1_0,
/* 16013*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v8f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVAPSZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8f32] }:$src)
/* 16024*/        /*Scope*/ 17, /*->16042*/
/* 16025*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16027*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16030*/          OPC_EmitMergeInputChains1_0,
/* 16031*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v8f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVUPSZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8f32] }:$src)
/* 16042*/        0, /*End of Scope*/
/* 16043*/      /*Scope*/ 85, /*->16129*/
/* 16044*/        OPC_CheckChild1Type, MVT::v4f64,
/* 16046*/        OPC_RecordChild2, // #2 = $dst
/* 16047*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 16049*/        OPC_CheckPredicate, 1, // Predicate_store
/* 16051*/        OPC_Scope, 19, /*->16072*/ // 4 children in Scope
/* 16053*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16055*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16057*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16060*/          OPC_EmitMergeInputChains1_0,
/* 16061*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256:{ *:[v4f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVAPDYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4f64] }:$src)
/* 16072*/        /*Scope*/ 17, /*->16090*/
/* 16073*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16075*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16078*/          OPC_EmitMergeInputChains1_0,
/* 16079*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 16090*/        /*Scope*/ 19, /*->16110*/
/* 16091*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16093*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16095*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16098*/          OPC_EmitMergeInputChains1_0,
/* 16099*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v4f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVAPDZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4f64] }:$src)
/* 16110*/        /*Scope*/ 17, /*->16128*/
/* 16111*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16113*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16116*/          OPC_EmitMergeInputChains1_0,
/* 16117*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v4f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVUPDZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4f64] }:$src)
/* 16128*/        0, /*End of Scope*/
/* 16129*/      /*Scope*/ 25|128,1/*153*/, /*->16284*/
/* 16131*/        OPC_CheckChild1Type, MVT::v4i64,
/* 16133*/        OPC_RecordChild2, // #2 = $dst
/* 16134*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 16136*/        OPC_Scope, 80, /*->16218*/ // 2 children in Scope
/* 16138*/          OPC_CheckPredicate, 1, // Predicate_store
/* 16140*/          OPC_Scope, 19, /*->16161*/ // 4 children in Scope
/* 16142*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16144*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16146*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16149*/            OPC_EmitMergeInputChains1_0,
/* 16150*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVAPSYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src)
/* 16161*/          /*Scope*/ 17, /*->16179*/
/* 16162*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16164*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16167*/            OPC_EmitMergeInputChains1_0,
/* 16168*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 16179*/          /*Scope*/ 19, /*->16199*/
/* 16180*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16182*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16184*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16187*/            OPC_EmitMergeInputChains1_0,
/* 16188*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVDQA64Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/* 16199*/          /*Scope*/ 17, /*->16217*/
/* 16200*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16202*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16205*/            OPC_EmitMergeInputChains1_0,
/* 16206*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                      // Dst: (VMOVDQU64Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/* 16217*/          0, /*End of Scope*/
/* 16218*/        /*Scope*/ 64, /*->16283*/
/* 16219*/          OPC_CheckPredicate, 19, // Predicate_truncstore
/* 16221*/          OPC_Scope, 19, /*->16242*/ // 3 children in Scope
/* 16223*/            OPC_CheckPredicate, 22, // Predicate_truncstorevi8
/* 16225*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16227*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16230*/            OPC_EmitMergeInputChains1_0,
/* 16231*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQBZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi8>> - Complexity = 22
                      // Dst: (VPMOVQBZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/* 16242*/          /*Scope*/ 19, /*->16262*/
/* 16243*/            OPC_CheckPredicate, 23, // Predicate_truncstorevi16
/* 16245*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16247*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16250*/            OPC_EmitMergeInputChains1_0,
/* 16251*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQWZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi16>> - Complexity = 22
                      // Dst: (VPMOVQWZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/* 16262*/          /*Scope*/ 19, /*->16282*/
/* 16263*/            OPC_CheckPredicate, 24, // Predicate_truncstorevi32
/* 16265*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16267*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16270*/            OPC_EmitMergeInputChains1_0,
/* 16271*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi32>> - Complexity = 22
                      // Dst: (VPMOVQDZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/* 16282*/          0, /*End of Scope*/
/* 16283*/        0, /*End of Scope*/
/* 16284*/      /*Scope*/ 5|128,1/*133*/, /*->16419*/
/* 16286*/        OPC_CheckChild1Type, MVT::v8i32,
/* 16288*/        OPC_RecordChild2, // #2 = $dst
/* 16289*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 16291*/        OPC_Scope, 80, /*->16373*/ // 2 children in Scope
/* 16293*/          OPC_CheckPredicate, 1, // Predicate_store
/* 16295*/          OPC_Scope, 19, /*->16316*/ // 4 children in Scope
/* 16297*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16299*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16301*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16304*/            OPC_EmitMergeInputChains1_0,
/* 16305*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVAPSYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src)
/* 16316*/          /*Scope*/ 17, /*->16334*/
/* 16317*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16319*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16322*/            OPC_EmitMergeInputChains1_0,
/* 16323*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 16334*/          /*Scope*/ 19, /*->16354*/
/* 16335*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16337*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 16339*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16342*/            OPC_EmitMergeInputChains1_0,
/* 16343*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVDQA64Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8i32] }:$src)
/* 16354*/          /*Scope*/ 17, /*->16372*/
/* 16355*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 16357*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16360*/            OPC_EmitMergeInputChains1_0,
/* 16361*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                      // Dst: (VMOVDQU64Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8i32] }:$src)
/* 16372*/          0, /*End of Scope*/
/* 16373*/        /*Scope*/ 44, /*->16418*/
/* 16374*/          OPC_CheckPredicate, 19, // Predicate_truncstore
/* 16376*/          OPC_Scope, 19, /*->16397*/ // 2 children in Scope
/* 16378*/            OPC_CheckPredicate, 22, // Predicate_truncstorevi8
/* 16380*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16382*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16385*/            OPC_EmitMergeInputChains1_0,
/* 16386*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDBZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi8>> - Complexity = 22
                      // Dst: (VPMOVDBZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8i32] }:$src)
/* 16397*/          /*Scope*/ 19, /*->16417*/
/* 16398*/            OPC_CheckPredicate, 23, // Predicate_truncstorevi16
/* 16400*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16402*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16405*/            OPC_EmitMergeInputChains1_0,
/* 16406*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDWZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi16>> - Complexity = 22
                      // Dst: (VPMOVDWZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8i32] }:$src)
/* 16417*/          0, /*End of Scope*/
/* 16418*/        0, /*End of Scope*/
/* 16419*/      /*Scope*/ 110, /*->16530*/
/* 16420*/        OPC_CheckChild1Type, MVT::v16i16,
/* 16422*/        OPC_RecordChild2, // #2 = $dst
/* 16423*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 16425*/        OPC_Scope, 80, /*->16507*/ // 2 children in Scope
/* 16427*/          OPC_CheckPredicate, 1, // Predicate_store
/* 16429*/          OPC_Scope, 19, /*->16450*/ // 4 children in Scope
/* 16431*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16433*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16435*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16438*/            OPC_EmitMergeInputChains1_0,
/* 16439*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVAPSYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v16i16] }:$src)
/* 16450*/          /*Scope*/ 17, /*->16468*/
/* 16451*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16453*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16456*/            OPC_EmitMergeInputChains1_0,
/* 16457*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 16468*/          /*Scope*/ 19, /*->16488*/
/* 16469*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16471*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 16473*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16476*/            OPC_EmitMergeInputChains1_0,
/* 16477*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256X:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVDQA64Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v16i16] }:$src)
/* 16488*/          /*Scope*/ 17, /*->16506*/
/* 16489*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 16491*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16494*/            OPC_EmitMergeInputChains1_0,
/* 16495*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR256X:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                      // Dst: (VMOVDQU64Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v16i16] }:$src)
/* 16506*/          0, /*End of Scope*/
/* 16507*/        /*Scope*/ 21, /*->16529*/
/* 16508*/          OPC_CheckPredicate, 19, // Predicate_truncstore
/* 16510*/          OPC_CheckPredicate, 22, // Predicate_truncstorevi8
/* 16512*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 16514*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16517*/          OPC_EmitMergeInputChains1_0,
/* 16518*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVWBZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi8>> - Complexity = 22
                    // Dst: (VPMOVWBZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v16i16] }:$src)
/* 16529*/        0, /*End of Scope*/
/* 16530*/      /*Scope*/ 85, /*->16616*/
/* 16531*/        OPC_CheckChild1Type, MVT::v32i8,
/* 16533*/        OPC_RecordChild2, // #2 = $dst
/* 16534*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 16536*/        OPC_CheckPredicate, 1, // Predicate_store
/* 16538*/        OPC_Scope, 19, /*->16559*/ // 4 children in Scope
/* 16540*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16542*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16544*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16547*/          OPC_EmitMergeInputChains1_0,
/* 16548*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256:{ *:[v32i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVAPSYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v32i8] }:$src)
/* 16559*/        /*Scope*/ 17, /*->16577*/
/* 16560*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16562*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16565*/          OPC_EmitMergeInputChains1_0,
/* 16566*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 16577*/        /*Scope*/ 19, /*->16597*/
/* 16578*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16580*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 16582*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16585*/          OPC_EmitMergeInputChains1_0,
/* 16586*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v32i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVDQA64Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v32i8] }:$src)
/* 16597*/        /*Scope*/ 17, /*->16615*/
/* 16598*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 16600*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16603*/          OPC_EmitMergeInputChains1_0,
/* 16604*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR256X:{ *:[v32i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVDQU64Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v32i8] }:$src)
/* 16615*/        0, /*End of Scope*/
/* 16616*/      /*Scope*/ 63|128,1/*191*/, /*->16809*/
/* 16618*/        OPC_CheckChild1Type, MVT::v2i64,
/* 16620*/        OPC_RecordChild2, // #2 = $dst
/* 16621*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 16623*/        OPC_Scope, 118, /*->16743*/ // 2 children in Scope
/* 16625*/          OPC_CheckPredicate, 1, // Predicate_store
/* 16627*/          OPC_Scope, 19, /*->16648*/ // 6 children in Scope
/* 16629*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16631*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 16633*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16636*/            OPC_EmitMergeInputChains1_0,
/* 16637*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 16648*/          /*Scope*/ 17, /*->16666*/
/* 16649*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 16651*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16654*/            OPC_EmitMergeInputChains1_0,
/* 16655*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 16666*/          /*Scope*/ 19, /*->16686*/
/* 16667*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16669*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16671*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16674*/            OPC_EmitMergeInputChains1_0,
/* 16675*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQAmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VMOVDQAmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src)
/* 16686*/          /*Scope*/ 17, /*->16704*/
/* 16687*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16689*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16692*/            OPC_EmitMergeInputChains1_0,
/* 16693*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQUmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VMOVDQUmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src)
/* 16704*/          /*Scope*/ 19, /*->16724*/
/* 16705*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16707*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16709*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16712*/            OPC_EmitMergeInputChains1_0,
/* 16713*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/* 16724*/          /*Scope*/ 17, /*->16742*/
/* 16725*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16727*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16730*/            OPC_EmitMergeInputChains1_0,
/* 16731*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                      // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/* 16742*/          0, /*End of Scope*/
/* 16743*/        /*Scope*/ 64, /*->16808*/
/* 16744*/          OPC_CheckPredicate, 19, // Predicate_truncstore
/* 16746*/          OPC_Scope, 19, /*->16767*/ // 3 children in Scope
/* 16748*/            OPC_CheckPredicate, 22, // Predicate_truncstorevi8
/* 16750*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16752*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16755*/            OPC_EmitMergeInputChains1_0,
/* 16756*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQBZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi8>> - Complexity = 22
                      // Dst: (VPMOVQBZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/* 16767*/          /*Scope*/ 19, /*->16787*/
/* 16768*/            OPC_CheckPredicate, 23, // Predicate_truncstorevi16
/* 16770*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16772*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16775*/            OPC_EmitMergeInputChains1_0,
/* 16776*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQWZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi16>> - Complexity = 22
                      // Dst: (VPMOVQWZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/* 16787*/          /*Scope*/ 19, /*->16807*/
/* 16788*/            OPC_CheckPredicate, 24, // Predicate_truncstorevi32
/* 16790*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16792*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16795*/            OPC_EmitMergeInputChains1_0,
/* 16796*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi32>> - Complexity = 22
                      // Dst: (VPMOVQDZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/* 16807*/          0, /*End of Scope*/
/* 16808*/        0, /*End of Scope*/
/* 16809*/      /*Scope*/ 43|128,1/*171*/, /*->16982*/
/* 16811*/        OPC_CheckChild1Type, MVT::v4i32,
/* 16813*/        OPC_RecordChild2, // #2 = $dst
/* 16814*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 16816*/        OPC_Scope, 118, /*->16936*/ // 2 children in Scope
/* 16818*/          OPC_CheckPredicate, 1, // Predicate_store
/* 16820*/          OPC_Scope, 19, /*->16841*/ // 6 children in Scope
/* 16822*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16824*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 16826*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16829*/            OPC_EmitMergeInputChains1_0,
/* 16830*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 16841*/          /*Scope*/ 17, /*->16859*/
/* 16842*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 16844*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16847*/            OPC_EmitMergeInputChains1_0,
/* 16848*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 16859*/          /*Scope*/ 19, /*->16879*/
/* 16860*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16862*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16864*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16867*/            OPC_EmitMergeInputChains1_0,
/* 16868*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQAmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VMOVDQAmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src)
/* 16879*/          /*Scope*/ 17, /*->16897*/
/* 16880*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 16882*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16885*/            OPC_EmitMergeInputChains1_0,
/* 16886*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQUmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VMOVDQUmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src)
/* 16897*/          /*Scope*/ 19, /*->16917*/
/* 16898*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16900*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 16902*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16905*/            OPC_EmitMergeInputChains1_0,
/* 16906*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4i32] }:$src)
/* 16917*/          /*Scope*/ 17, /*->16935*/
/* 16918*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 16920*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16923*/            OPC_EmitMergeInputChains1_0,
/* 16924*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                      // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4i32] }:$src)
/* 16935*/          0, /*End of Scope*/
/* 16936*/        /*Scope*/ 44, /*->16981*/
/* 16937*/          OPC_CheckPredicate, 19, // Predicate_truncstore
/* 16939*/          OPC_Scope, 19, /*->16960*/ // 2 children in Scope
/* 16941*/            OPC_CheckPredicate, 22, // Predicate_truncstorevi8
/* 16943*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16945*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16948*/            OPC_EmitMergeInputChains1_0,
/* 16949*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDBZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi8>> - Complexity = 22
                      // Dst: (VPMOVDBZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4i32] }:$src)
/* 16960*/          /*Scope*/ 19, /*->16980*/
/* 16961*/            OPC_CheckPredicate, 23, // Predicate_truncstorevi16
/* 16963*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16965*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 16968*/            OPC_EmitMergeInputChains1_0,
/* 16969*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDWZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi16>> - Complexity = 22
                      // Dst: (VPMOVDWZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4i32] }:$src)
/* 16980*/          0, /*End of Scope*/
/* 16981*/        0, /*End of Scope*/
/* 16982*/      /*Scope*/ 20|128,1/*148*/, /*->17132*/
/* 16984*/        OPC_CheckChild1Type, MVT::v8i16,
/* 16986*/        OPC_RecordChild2, // #2 = $dst
/* 16987*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 16989*/        OPC_Scope, 118, /*->17109*/ // 2 children in Scope
/* 16991*/          OPC_CheckPredicate, 1, // Predicate_store
/* 16993*/          OPC_Scope, 19, /*->17014*/ // 6 children in Scope
/* 16995*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 16997*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 16999*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17002*/            OPC_EmitMergeInputChains1_0,
/* 17003*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 17014*/          /*Scope*/ 17, /*->17032*/
/* 17015*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 17017*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17020*/            OPC_EmitMergeInputChains1_0,
/* 17021*/            OPC_MorphNodeTo0, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/* 17032*/          /*Scope*/ 19, /*->17052*/
/* 17033*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17035*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 17037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17040*/            OPC_EmitMergeInputChains1_0,
/* 17041*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQAmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VMOVDQAmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v8i16] }:$src)
/* 17052*/          /*Scope*/ 17, /*->17070*/
/* 17053*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 17055*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17058*/            OPC_EmitMergeInputChains1_0,
/* 17059*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQUmr), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VMOVDQUmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v8i16] }:$src)
/* 17070*/          /*Scope*/ 19, /*->17090*/
/* 17071*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17073*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 17075*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17078*/            OPC_EmitMergeInputChains1_0,
/* 17079*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR128X:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v8i16] }:$src)
/* 17090*/          /*Scope*/ 17, /*->17108*/
/* 17091*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 17093*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17096*/            OPC_EmitMergeInputChains1_0,
/* 17097*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR128X:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                      // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v8i16] }:$src)
/* 17108*/          0, /*End of Scope*/
/* 17109*/        /*Scope*/ 21, /*->17131*/
/* 17110*/          OPC_CheckPredicate, 19, // Predicate_truncstore
/* 17112*/          OPC_CheckPredicate, 22, // Predicate_truncstorevi8
/* 17114*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 17116*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17119*/          OPC_EmitMergeInputChains1_0,
/* 17120*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVWBZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi8>> - Complexity = 22
                    // Dst: (VPMOVWBZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v8i16] }:$src)
/* 17131*/        0, /*End of Scope*/
/* 17132*/      /*Scope*/ 123, /*->17256*/
/* 17133*/        OPC_CheckChild1Type, MVT::v16i8,
/* 17135*/        OPC_RecordChild2, // #2 = $dst
/* 17136*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17138*/        OPC_CheckPredicate, 1, // Predicate_store
/* 17140*/        OPC_Scope, 19, /*->17161*/ // 6 children in Scope
/* 17142*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17144*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 17146*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17149*/          OPC_EmitMergeInputChains1_0,
/* 17150*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 17161*/        /*Scope*/ 17, /*->17179*/
/* 17162*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 17164*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17167*/          OPC_EmitMergeInputChains1_0,
/* 17168*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 17179*/        /*Scope*/ 19, /*->17199*/
/* 17180*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17182*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 17184*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17187*/          OPC_EmitMergeInputChains1_0,
/* 17188*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQAmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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: (VMOVDQAmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v16i8] }:$src)
/* 17199*/        /*Scope*/ 17, /*->17217*/
/* 17200*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 17202*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17205*/          OPC_EmitMergeInputChains1_0,
/* 17206*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQUmr), 0|OPFL_Chain|OPFL_MemRefs,
                        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: (VMOVDQUmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v16i8] }:$src)
/* 17217*/        /*Scope*/ 19, /*->17237*/
/* 17218*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17220*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 17222*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17225*/          OPC_EmitMergeInputChains1_0,
/* 17226*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v16i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVDQA64Z128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v16i8] }:$src)
/* 17237*/        /*Scope*/ 17, /*->17255*/
/* 17238*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 17240*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17243*/          OPC_EmitMergeInputChains1_0,
/* 17244*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[v16i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVDQU64Z128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v16i8] }:$src)
/* 17255*/        0, /*End of Scope*/
/* 17256*/      /*Scope*/ 24, /*->17281*/
/* 17257*/        OPC_CheckChild1Type, MVT::v8i1,
/* 17259*/        OPC_RecordChild2, // #2 = $dst
/* 17260*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17262*/        OPC_CheckPredicate, 1, // Predicate_store
/* 17264*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 17266*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17269*/        OPC_EmitMergeInputChains1_0,
/* 17270*/        OPC_MorphNodeTo0, TARGET_VAL(X86::KMOVBmk), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VK8:{ *:[v8i1] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (KMOVBmk addr:{ *:[iPTR] }:$dst, VK8:{ *:[v8i1] }:$src)
/* 17281*/      /*Scope*/ 24, /*->17306*/
/* 17282*/        OPC_CheckChild1Type, MVT::v16i1,
/* 17284*/        OPC_RecordChild2, // #2 = $dst
/* 17285*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17287*/        OPC_CheckPredicate, 1, // Predicate_store
/* 17289*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17291*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17294*/        OPC_EmitMergeInputChains1_0,
/* 17295*/        OPC_MorphNodeTo0, TARGET_VAL(X86::KMOVWmk), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VK16:{ *:[v16i1] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (KMOVWmk addr:{ *:[iPTR] }:$dst, VK16:{ *:[v16i1] }:$src)
/* 17306*/      /*Scope*/ 24, /*->17331*/
/* 17307*/        OPC_CheckChild1Type, MVT::v32i1,
/* 17309*/        OPC_RecordChild2, // #2 = $dst
/* 17310*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17312*/        OPC_CheckPredicate, 1, // Predicate_store
/* 17314*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 17316*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17319*/        OPC_EmitMergeInputChains1_0,
/* 17320*/        OPC_MorphNodeTo0, TARGET_VAL(X86::KMOVDmk), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VK32:{ *:[v32i1] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (KMOVDmk addr:{ *:[iPTR] }:$dst, VK32:{ *:[v32i1] }:$src)
/* 17331*/      /*Scope*/ 24, /*->17356*/
/* 17332*/        OPC_CheckChild1Type, MVT::v64i1,
/* 17334*/        OPC_RecordChild2, // #2 = $dst
/* 17335*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17337*/        OPC_CheckPredicate, 1, // Predicate_store
/* 17339*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 17341*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17344*/        OPC_EmitMergeInputChains1_0,
/* 17345*/        OPC_MorphNodeTo0, TARGET_VAL(X86::KMOVQmk), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VK64:{ *:[v64i1] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (KMOVQmk addr:{ *:[iPTR] }:$dst, VK64:{ *:[v64i1] }:$src)
/* 17356*/      /*Scope*/ 47, /*->17404*/
/* 17357*/        OPC_CheckChild1Type, MVT::v16f32,
/* 17359*/        OPC_RecordChild2, // #2 = $dst
/* 17360*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17362*/        OPC_CheckPredicate, 1, // Predicate_store
/* 17364*/        OPC_Scope, 19, /*->17385*/ // 2 children in Scope
/* 17366*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17368*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17370*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17373*/          OPC_EmitMergeInputChains1_0,
/* 17374*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR512:{ *:[v16f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVAPSZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16f32] }:$src)
/* 17385*/        /*Scope*/ 17, /*->17403*/
/* 17386*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17388*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17391*/          OPC_EmitMergeInputChains1_0,
/* 17392*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR512:{ *:[v16f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVUPSZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16f32] }:$src)
/* 17403*/        0, /*End of Scope*/
/* 17404*/      /*Scope*/ 47, /*->17452*/
/* 17405*/        OPC_CheckChild1Type, MVT::v8f64,
/* 17407*/        OPC_RecordChild2, // #2 = $dst
/* 17408*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17410*/        OPC_CheckPredicate, 1, // Predicate_store
/* 17412*/        OPC_Scope, 19, /*->17433*/ // 2 children in Scope
/* 17414*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17416*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17418*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17421*/          OPC_EmitMergeInputChains1_0,
/* 17422*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR512:{ *:[v8f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVAPDZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8f64] }:$src)
/* 17433*/        /*Scope*/ 17, /*->17451*/
/* 17434*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17436*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17439*/          OPC_EmitMergeInputChains1_0,
/* 17440*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR512:{ *:[v8f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVUPDZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8f64] }:$src)
/* 17451*/        0, /*End of Scope*/
/* 17452*/      /*Scope*/ 115, /*->17568*/
/* 17453*/        OPC_CheckChild1Type, MVT::v8i64,
/* 17455*/        OPC_RecordChild2, // #2 = $dst
/* 17456*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17458*/        OPC_Scope, 42, /*->17502*/ // 2 children in Scope
/* 17460*/          OPC_CheckPredicate, 1, // Predicate_store
/* 17462*/          OPC_Scope, 19, /*->17483*/ // 2 children in Scope
/* 17464*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17466*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17468*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17471*/            OPC_EmitMergeInputChains1_0,
/* 17472*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVDQA64Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/* 17483*/          /*Scope*/ 17, /*->17501*/
/* 17484*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17486*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17489*/            OPC_EmitMergeInputChains1_0,
/* 17490*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                      // Dst: (VMOVDQU64Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/* 17501*/          0, /*End of Scope*/
/* 17502*/        /*Scope*/ 64, /*->17567*/
/* 17503*/          OPC_CheckPredicate, 19, // Predicate_truncstore
/* 17505*/          OPC_Scope, 19, /*->17526*/ // 3 children in Scope
/* 17507*/            OPC_CheckPredicate, 22, // Predicate_truncstorevi8
/* 17509*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17511*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17514*/            OPC_EmitMergeInputChains1_0,
/* 17515*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQBZmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi8>> - Complexity = 22
                      // Dst: (VPMOVQBZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/* 17526*/          /*Scope*/ 19, /*->17546*/
/* 17527*/            OPC_CheckPredicate, 23, // Predicate_truncstorevi16
/* 17529*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17531*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17534*/            OPC_EmitMergeInputChains1_0,
/* 17535*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQWZmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi16>> - Complexity = 22
                      // Dst: (VPMOVQWZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/* 17546*/          /*Scope*/ 19, /*->17566*/
/* 17547*/            OPC_CheckPredicate, 24, // Predicate_truncstorevi32
/* 17549*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17551*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17554*/            OPC_EmitMergeInputChains1_0,
/* 17555*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi32>> - Complexity = 22
                      // Dst: (VPMOVQDZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/* 17566*/          0, /*End of Scope*/
/* 17567*/        0, /*End of Scope*/
/* 17568*/      /*Scope*/ 95, /*->17664*/
/* 17569*/        OPC_CheckChild1Type, MVT::v16i32,
/* 17571*/        OPC_RecordChild2, // #2 = $dst
/* 17572*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17574*/        OPC_Scope, 42, /*->17618*/ // 2 children in Scope
/* 17576*/          OPC_CheckPredicate, 1, // Predicate_store
/* 17578*/          OPC_Scope, 19, /*->17599*/ // 2 children in Scope
/* 17580*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17582*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17584*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17587*/            OPC_EmitMergeInputChains1_0,
/* 17588*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVDQA64Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src)
/* 17599*/          /*Scope*/ 17, /*->17617*/
/* 17600*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17602*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17605*/            OPC_EmitMergeInputChains1_0,
/* 17606*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                      // Dst: (VMOVDQU64Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src)
/* 17617*/          0, /*End of Scope*/
/* 17618*/        /*Scope*/ 44, /*->17663*/
/* 17619*/          OPC_CheckPredicate, 19, // Predicate_truncstore
/* 17621*/          OPC_Scope, 19, /*->17642*/ // 2 children in Scope
/* 17623*/            OPC_CheckPredicate, 22, // Predicate_truncstorevi8
/* 17625*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17627*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17630*/            OPC_EmitMergeInputChains1_0,
/* 17631*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDBZmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi8>> - Complexity = 22
                      // Dst: (VPMOVDBZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src)
/* 17642*/          /*Scope*/ 19, /*->17662*/
/* 17643*/            OPC_CheckPredicate, 23, // Predicate_truncstorevi16
/* 17645*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17647*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17650*/            OPC_EmitMergeInputChains1_0,
/* 17651*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDWZmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi16>> - Complexity = 22
                      // Dst: (VPMOVDWZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src)
/* 17662*/          0, /*End of Scope*/
/* 17663*/        0, /*End of Scope*/
/* 17664*/      /*Scope*/ 72, /*->17737*/
/* 17665*/        OPC_CheckChild1Type, MVT::v32i16,
/* 17667*/        OPC_RecordChild2, // #2 = $dst
/* 17668*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17670*/        OPC_Scope, 42, /*->17714*/ // 2 children in Scope
/* 17672*/          OPC_CheckPredicate, 1, // Predicate_store
/* 17674*/          OPC_Scope, 19, /*->17695*/ // 2 children in Scope
/* 17676*/            OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17678*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17680*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17683*/            OPC_EmitMergeInputChains1_0,
/* 17684*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR512:{ *:[v32i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                      // Dst: (VMOVDQA64Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v32i16] }:$src)
/* 17695*/          /*Scope*/ 17, /*->17713*/
/* 17696*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17698*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17701*/            OPC_EmitMergeInputChains1_0,
/* 17702*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st VR512:{ *:[v32i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                      // Dst: (VMOVDQU64Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v32i16] }:$src)
/* 17713*/          0, /*End of Scope*/
/* 17714*/        /*Scope*/ 21, /*->17736*/
/* 17715*/          OPC_CheckPredicate, 19, // Predicate_truncstore
/* 17717*/          OPC_CheckPredicate, 22, // Predicate_truncstorevi8
/* 17719*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 17721*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17724*/          OPC_EmitMergeInputChains1_0,
/* 17725*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVWBZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR512:{ *:[v32i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi8>> - Complexity = 22
                    // Dst: (VPMOVWBZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v32i16] }:$src)
/* 17736*/        0, /*End of Scope*/
/* 17737*/      /*Scope*/ 47, /*->17785*/
/* 17738*/        OPC_CheckChild1Type, MVT::v64i8,
/* 17740*/        OPC_RecordChild2, // #2 = $dst
/* 17741*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17743*/        OPC_CheckPredicate, 1, // Predicate_store
/* 17745*/        OPC_Scope, 19, /*->17766*/ // 2 children in Scope
/* 17747*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17749*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17751*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17754*/          OPC_EmitMergeInputChains1_0,
/* 17755*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR512:{ *:[v64i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVDQA64Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v64i8] }:$src)
/* 17766*/        /*Scope*/ 17, /*->17784*/
/* 17767*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17769*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17772*/          OPC_EmitMergeInputChains1_0,
/* 17773*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Zmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR512:{ *:[v64i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVDQU64Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v64i8] }:$src)
/* 17784*/        0, /*End of Scope*/
/* 17785*/      /*Scope*/ 24, /*->17810*/
/* 17786*/        OPC_CheckChild1Type, MVT::x86mmx,
/* 17788*/        OPC_RecordChild2, // #2 = $dst
/* 17789*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17791*/        OPC_CheckPredicate, 1, // Predicate_store
/* 17793*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 17795*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17798*/        OPC_EmitMergeInputChains1_0,
/* 17799*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MMX_MOVQ64mr), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 17810*/      /*Scope*/ 65, /*->17876*/
/* 17811*/        OPC_CheckChild1Type, MVT::f128,
/* 17813*/        OPC_RecordChild2, // #2 = $dst
/* 17814*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17816*/        OPC_CheckPredicate, 1, // Predicate_store
/* 17818*/        OPC_Scope, 28, /*->17848*/ // 2 children in Scope
/* 17820*/          OPC_CheckPredicate, 18, // Predicate_alignedstore
/* 17822*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17825*/          OPC_EmitMergeInputChains1_0,
/* 17826*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 17829*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f128, 2/*#Ops*/, 1, 8,  // Results = #9
/* 17837*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                    // Src: (st VR128:{ *:[f128] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (MOVAPSmr addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src, VR128:{ *:[i32] }))
/* 17848*/        /*Scope*/ 26, /*->17875*/
/* 17849*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17852*/          OPC_EmitMergeInputChains1_0,
/* 17853*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 17856*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f128, 2/*#Ops*/, 1, 8,  // Results = #9
/* 17864*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                    // Src: (st VR128:{ *:[f128] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (MOVUPSmr addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src, VR128:{ *:[i32] }))
/* 17875*/        0, /*End of Scope*/
/* 17876*/      /*Scope*/ 35, /*->17912*/
/* 17877*/        OPC_CheckChild1Type, MVT::v1i1,
/* 17879*/        OPC_RecordChild2, // #2 = $dst
/* 17880*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 17882*/        OPC_CheckPredicate, 1, // Predicate_store
/* 17884*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 17886*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 17889*/        OPC_EmitMergeInputChains1_0,
/* 17890*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 17893*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 1, 8,  // Results = #9
/* 17901*/        OPC_MorphNodeTo0, TARGET_VAL(X86::KMOVBmk), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                  // Src: (st VK1:{ *:[v1i1] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (KMOVBmk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v8i1] } VK1:{ *:[v1i1] }:$src, VK8:{ *:[i32] }))
/* 17912*/      0, /*End of Scope*/
/* 17913*/    0, /*End of Scope*/
/* 17914*/  /*SwitchOpcode*/ 110|128,19/*2542*/, TARGET_VAL(ISD::MSTORE),// ->20460
/* 17918*/    OPC_RecordMemRef,
/* 17919*/    OPC_RecordNode, // #0 = 'masked_store' chained node
/* 17920*/    OPC_RecordChild1, // #1 = $dst
/* 17921*/    OPC_Scope, 18|128,5/*658*/, /*->18582*/ // 2 children in Scope
/* 17924*/      OPC_MoveChild2,
/* 17925*/      OPC_SwitchOpcode /*3 cases */, 21|128,2/*277*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->18207
/* 17930*/        OPC_MoveChild0,
/* 17931*/        OPC_SwitchOpcode /*2 cases */, 124, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->18059
/* 17935*/          OPC_MoveChild0,
/* 17936*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 17939*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 17941*/          OPC_MoveParent,
/* 17942*/          OPC_MoveChild1,
/* 17943*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 17946*/          OPC_MoveChild0,
/* 17947*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 17950*/          OPC_MoveChild0,
/* 17951*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 17954*/          OPC_RecordChild0, // #2 = $mask
/* 17955*/          OPC_CheckChild1Integer, 1, 
/* 17957*/          OPC_CheckType, MVT::i8,
/* 17959*/          OPC_MoveParent,
/* 17960*/          OPC_CheckType, MVT::v8i1,
/* 17962*/          OPC_MoveParent,
/* 17963*/          OPC_CheckChild1Integer, 0, 
/* 17965*/          OPC_CheckChild1Type, MVT::iPTR,
/* 17967*/          OPC_CheckType, MVT::v2i1,
/* 17969*/          OPC_MoveParent,
/* 17970*/          OPC_CheckChild2Integer, 0, 
/* 17972*/          OPC_CheckChild2Type, MVT::iPTR,
/* 17974*/          OPC_CheckType, MVT::v16i1,
/* 17976*/          OPC_MoveParent,
/* 17977*/          OPC_CheckChild1Integer, 0, 
/* 17979*/          OPC_CheckChild1Type, MVT::iPTR,
/* 17981*/          OPC_CheckType, MVT::v8i1,
/* 17983*/          OPC_MoveParent,
/* 17984*/          OPC_MoveChild3,
/* 17985*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 17988*/          OPC_MoveChild0,
/* 17989*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 17992*/          OPC_MoveParent,
/* 17993*/          OPC_RecordChild1, // #3 = $src
/* 17994*/          OPC_CheckChild1Type, MVT::v2f64,
/* 17996*/          OPC_CheckChild2Integer, 0, 
/* 17998*/          OPC_CheckChild2Type, MVT::iPTR,
/* 18000*/          OPC_CheckType, MVT::v8f64,
/* 18002*/          OPC_MoveParent,
/* 18003*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18006*/          OPC_EmitMergeInputChains1_0,
/* 18007*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/* 18013*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 18016*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 18025*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 18028*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 18036*/          OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/* 18039*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 3, 14,  // Results = #15
/* 18047*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 13, 15, 
                    // Src: (masked_store addr:{ *:[iPTR] }:$dst, (extract_subvector:{ *:[v8i1] } (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, (extract_subvector:{ *:[v2i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), (insert_subvector:{ *:[v8f64] } (undef:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })) - Complexity = 71
                    // Dst: (VMOVSDZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } VR128X:{ *:[v2f64] }:$src, FR64X:{ *:[i32] }))
/* 18059*/        /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(ISD::BITCAST),// ->18206
/* 18063*/          OPC_MoveChild0,
/* 18064*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 18067*/          OPC_RecordChild0, // #2 = $mask
/* 18068*/          OPC_CheckChild1Integer, 1, 
/* 18070*/          OPC_CheckType, MVT::i8,
/* 18072*/          OPC_MoveParent,
/* 18073*/          OPC_CheckType, MVT::v8i1,
/* 18075*/          OPC_MoveParent,
/* 18076*/          OPC_CheckChild1Integer, 0, 
/* 18078*/          OPC_CheckChild1Type, MVT::iPTR,
/* 18080*/          OPC_SwitchType /*2 cases */, 60, MVT::v4i1,// ->18143
/* 18083*/            OPC_MoveParent,
/* 18084*/            OPC_RecordChild3, // #3 = $src
/* 18085*/            OPC_CheckChild3Type, MVT::v4f32,
/* 18087*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18090*/            OPC_EmitMergeInputChains1_0,
/* 18091*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #9
/* 18097*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 18100*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 18109*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 18112*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 18120*/            OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/* 18123*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f32, 2/*#Ops*/, 3, 14,  // Results = #15
/* 18131*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 13, 15, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, (extract_subvector:{ *:[v4i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), VR128X:{ *:[v4f32] }:$src) - Complexity = 40
                      // Dst: (VMOVSSZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f32] } VR128X:{ *:[v4f32] }:$src, FR32X:{ *:[i32] }))
/* 18143*/          /*SwitchType*/ 60, MVT::v2i1,// ->18205
/* 18145*/            OPC_MoveParent,
/* 18146*/            OPC_RecordChild3, // #3 = $src
/* 18147*/            OPC_CheckChild3Type, MVT::v2f64,
/* 18149*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18152*/            OPC_EmitMergeInputChains1_0,
/* 18153*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #9
/* 18159*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 18162*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 18171*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 18174*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 18182*/            OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/* 18185*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 3, 14,  // Results = #15
/* 18193*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 13, 15, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, (extract_subvector:{ *:[v2i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), VR128X:{ *:[v2f64] }:$src) - Complexity = 40
                      // Dst: (VMOVSDZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } VR128X:{ *:[v2f64] }:$src, FR64X:{ *:[i32] }))
/* 18205*/          0, // EndSwitchType
/* 18206*/        0, // EndSwitchOpcode
/* 18207*/      /*SwitchOpcode*/ 117, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->18327
/* 18210*/        OPC_MoveChild0,
/* 18211*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 18214*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 18216*/        OPC_MoveParent,
/* 18217*/        OPC_MoveChild1,
/* 18218*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 18221*/        OPC_MoveChild0,
/* 18222*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 18225*/        OPC_MoveChild0,
/* 18226*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 18229*/        OPC_RecordChild0, // #2 = $mask
/* 18230*/        OPC_CheckChild1Integer, 1, 
/* 18232*/        OPC_CheckType, MVT::i8,
/* 18234*/        OPC_MoveParent,
/* 18235*/        OPC_CheckType, MVT::v8i1,
/* 18237*/        OPC_MoveParent,
/* 18238*/        OPC_CheckChild1Integer, 0, 
/* 18240*/        OPC_CheckChild1Type, MVT::iPTR,
/* 18242*/        OPC_CheckType, MVT::v4i1,
/* 18244*/        OPC_MoveParent,
/* 18245*/        OPC_CheckChild2Integer, 0, 
/* 18247*/        OPC_CheckChild2Type, MVT::iPTR,
/* 18249*/        OPC_CheckType, MVT::v16i1,
/* 18251*/        OPC_MoveParent,
/* 18252*/        OPC_MoveChild3,
/* 18253*/        OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 18256*/        OPC_MoveChild0,
/* 18257*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 18260*/        OPC_MoveParent,
/* 18261*/        OPC_RecordChild1, // #3 = $src
/* 18262*/        OPC_CheckChild1Type, MVT::v4f32,
/* 18264*/        OPC_CheckChild2Integer, 0, 
/* 18266*/        OPC_CheckChild2Type, MVT::iPTR,
/* 18268*/        OPC_CheckType, MVT::v16f32,
/* 18270*/        OPC_MoveParent,
/* 18271*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18274*/        OPC_EmitMergeInputChains1_0,
/* 18275*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #9
/* 18281*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 18284*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 18293*/        OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 18296*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 18304*/        OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/* 18307*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 3, 14,  // Results = #15
/* 18315*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 13, 15, 
                  // Src: (masked_store addr:{ *:[iPTR] }:$dst, (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, (extract_subvector:{ *:[v4i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })) - Complexity = 63
                  // Dst: (VMOVSSZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f32] } VR128X:{ *:[v4f32] }:$src, FR32X:{ *:[i32] }))
/* 18327*/      /*SwitchOpcode*/ 122|128,1/*250*/, TARGET_VAL(ISD::BITCAST),// ->18581
/* 18331*/        OPC_MoveChild0,
/* 18332*/        OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::TRUNCATE),// ->18409
/* 18336*/          OPC_MoveChild0,
/* 18337*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 18340*/          OPC_RecordChild0, // #2 = $mask
/* 18341*/          OPC_CheckChild1Integer, 1, 
/* 18343*/          OPC_CheckType, MVT::i32,
/* 18345*/          OPC_MoveParent,
/* 18346*/          OPC_CheckType, MVT::i16,
/* 18348*/          OPC_MoveParent,
/* 18349*/          OPC_CheckType, MVT::v16i1,
/* 18351*/          OPC_MoveParent,
/* 18352*/          OPC_MoveChild3,
/* 18353*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 18356*/          OPC_MoveChild0,
/* 18357*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 18360*/          OPC_MoveParent,
/* 18361*/          OPC_RecordChild1, // #3 = $src
/* 18362*/          OPC_CheckChild1Type, MVT::v4f32,
/* 18364*/          OPC_CheckChild2Integer, 0, 
/* 18366*/          OPC_CheckChild2Type, MVT::iPTR,
/* 18368*/          OPC_CheckType, MVT::v16f32,
/* 18370*/          OPC_MoveParent,
/* 18371*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18374*/          OPC_EmitMergeInputChains1_0,
/* 18375*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 18378*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 2, 9,  // Results = #10
/* 18386*/          OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/* 18389*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 3, 11,  // Results = #12
/* 18397*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 10, 12, 
                    // Src: (masked_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[v16i1] } (trunc:{ *:[i16] } (and:{ *:[i32] } GR32:{ *:[i32] }:$mask, 1:{ *:[i32] }))), (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })) - Complexity = 46
                    // Dst: (VMOVSSZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } GR32:{ *:[i32] }:$mask, VK1WM:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f32] } VR128X:{ *:[v4f32] }:$src, FR32X:{ *:[i32] }))
/* 18409*/        /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(ISD::AND),// ->18580
/* 18413*/          OPC_RecordChild0, // #2 = $mask
/* 18414*/          OPC_CheckChild1Integer, 1, 
/* 18416*/          OPC_SwitchType /*2 cases */, 79, MVT::i16,// ->18498
/* 18419*/            OPC_MoveParent,
/* 18420*/            OPC_CheckType, MVT::v16i1,
/* 18422*/            OPC_MoveParent,
/* 18423*/            OPC_MoveChild3,
/* 18424*/            OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 18427*/            OPC_MoveChild0,
/* 18428*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 18431*/            OPC_MoveParent,
/* 18432*/            OPC_RecordChild1, // #3 = $src
/* 18433*/            OPC_CheckChild1Type, MVT::v4f32,
/* 18435*/            OPC_CheckChild2Integer, 0, 
/* 18437*/            OPC_CheckChild2Type, MVT::iPTR,
/* 18439*/            OPC_CheckType, MVT::v16f32,
/* 18441*/            OPC_MoveParent,
/* 18442*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18445*/            OPC_EmitMergeInputChains1_0,
/* 18446*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #9
/* 18452*/            OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 18455*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 18464*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 18467*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 18475*/            OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/* 18478*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f32, 2/*#Ops*/, 3, 14,  // Results = #15
/* 18486*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 13, 15, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[v16i1] } (and:{ *:[i16] } GR16:{ *:[i16] }:$mask, 1:{ *:[i16] })), (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })) - Complexity = 43
                      // Dst: (VMOVSSZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$mask, sub_16bit:{ *:[i32] }), VK1WM:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f32] } VR128X:{ *:[v4f32] }:$src, FR32X:{ *:[i32] }))
/* 18498*/          /*SwitchType*/ 79, MVT::i8,// ->18579
/* 18500*/            OPC_MoveParent,
/* 18501*/            OPC_CheckType, MVT::v8i1,
/* 18503*/            OPC_MoveParent,
/* 18504*/            OPC_MoveChild3,
/* 18505*/            OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 18508*/            OPC_MoveChild0,
/* 18509*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 18512*/            OPC_MoveParent,
/* 18513*/            OPC_RecordChild1, // #3 = $src
/* 18514*/            OPC_CheckChild1Type, MVT::v2f64,
/* 18516*/            OPC_CheckChild2Integer, 0, 
/* 18518*/            OPC_CheckChild2Type, MVT::iPTR,
/* 18520*/            OPC_CheckType, MVT::v8f64,
/* 18522*/            OPC_MoveParent,
/* 18523*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18526*/            OPC_EmitMergeInputChains1_0,
/* 18527*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #9
/* 18533*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 18536*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 18545*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 18548*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 18556*/            OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/* 18559*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 3, 14,  // Results = #15
/* 18567*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 13, 15, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), (insert_subvector:{ *:[v8f64] } (undef:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })) - Complexity = 43
                      // Dst: (VMOVSDZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } VR128X:{ *:[v2f64] }:$src, FR64X:{ *:[i32] }))
/* 18579*/          0, // EndSwitchType
/* 18580*/        0, // EndSwitchOpcode
/* 18581*/      0, // EndSwitchOpcode
/* 18582*/    /*Scope*/ 83|128,14/*1875*/, /*->20459*/
/* 18584*/      OPC_RecordChild2, // #2 = $mask
/* 18585*/      OPC_Scope, 73, /*->18660*/ // 10 children in Scope
/* 18587*/        OPC_CheckChild2Type, MVT::v4i32,
/* 18589*/        OPC_RecordChild3, // #3 = $src
/* 18590*/        OPC_Scope, 22, /*->18614*/ // 2 children in Scope
/* 18592*/          OPC_CheckChild3Type, MVT::v4f32,
/* 18594*/          OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 18596*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 18598*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18601*/          OPC_EmitMergeInputChains1_0,
/* 18602*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4f32] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                    // Dst: (VMASKMOVPSmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4f32] }:$src)
/* 18614*/        /*Scope*/ 44, /*->18659*/
/* 18615*/          OPC_CheckChild3Type, MVT::v4i32,
/* 18617*/          OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 18619*/          OPC_Scope, 18, /*->18639*/ // 2 children in Scope
/* 18621*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 18623*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18626*/            OPC_EmitMergeInputChains1_0,
/* 18627*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4i32] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                      // Dst: (VMASKMOVPSmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4i32] }:$src)
/* 18639*/          /*Scope*/ 18, /*->18658*/
/* 18640*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 18642*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18645*/            OPC_EmitMergeInputChains1_0,
/* 18646*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4i32] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                      // Dst: (VPMASKMOVDmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4i32] }:$src)
/* 18658*/          0, /*End of Scope*/
/* 18659*/        0, /*End of Scope*/
/* 18660*/      /*Scope*/ 73, /*->18734*/
/* 18661*/        OPC_CheckChild2Type, MVT::v2i64,
/* 18663*/        OPC_RecordChild3, // #3 = $src
/* 18664*/        OPC_Scope, 22, /*->18688*/ // 2 children in Scope
/* 18666*/          OPC_CheckChild3Type, MVT::v2f64,
/* 18668*/          OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 18670*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 18672*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18675*/          OPC_EmitMergeInputChains1_0,
/* 18676*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2f64] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                    // Dst: (VMASKMOVPDmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2f64] }:$src)
/* 18688*/        /*Scope*/ 44, /*->18733*/
/* 18689*/          OPC_CheckChild3Type, MVT::v2i64,
/* 18691*/          OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 18693*/          OPC_Scope, 18, /*->18713*/ // 2 children in Scope
/* 18695*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 18697*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18700*/            OPC_EmitMergeInputChains1_0,
/* 18701*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2i64] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                      // Dst: (VMASKMOVPDmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2i64] }:$src)
/* 18713*/          /*Scope*/ 18, /*->18732*/
/* 18714*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 18716*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18719*/            OPC_EmitMergeInputChains1_0,
/* 18720*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVQmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2i64] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                      // Dst: (VPMASKMOVQmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2i64] }:$src)
/* 18732*/          0, /*End of Scope*/
/* 18733*/        0, /*End of Scope*/
/* 18734*/      /*Scope*/ 73, /*->18808*/
/* 18735*/        OPC_CheckChild2Type, MVT::v8i32,
/* 18737*/        OPC_RecordChild3, // #3 = $src
/* 18738*/        OPC_Scope, 22, /*->18762*/ // 2 children in Scope
/* 18740*/          OPC_CheckChild3Type, MVT::v8f32,
/* 18742*/          OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 18744*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 18746*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18749*/          OPC_EmitMergeInputChains1_0,
/* 18750*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8f32] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                    // Dst: (VMASKMOVPSYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8f32] }:$src)
/* 18762*/        /*Scope*/ 44, /*->18807*/
/* 18763*/          OPC_CheckChild3Type, MVT::v8i32,
/* 18765*/          OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 18767*/          OPC_Scope, 18, /*->18787*/ // 2 children in Scope
/* 18769*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 18771*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18774*/            OPC_EmitMergeInputChains1_0,
/* 18775*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8i32] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                      // Dst: (VMASKMOVPSYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8i32] }:$src)
/* 18787*/          /*Scope*/ 18, /*->18806*/
/* 18788*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 18790*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18793*/            OPC_EmitMergeInputChains1_0,
/* 18794*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8i32] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                      // Dst: (VPMASKMOVDYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8i32] }:$src)
/* 18806*/          0, /*End of Scope*/
/* 18807*/        0, /*End of Scope*/
/* 18808*/      /*Scope*/ 73, /*->18882*/
/* 18809*/        OPC_CheckChild2Type, MVT::v4i64,
/* 18811*/        OPC_RecordChild3, // #3 = $src
/* 18812*/        OPC_Scope, 22, /*->18836*/ // 2 children in Scope
/* 18814*/          OPC_CheckChild3Type, MVT::v4f64,
/* 18816*/          OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 18818*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 18820*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18823*/          OPC_EmitMergeInputChains1_0,
/* 18824*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4f64] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                    // Dst: (VMASKMOVPDYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4f64] }:$src)
/* 18836*/        /*Scope*/ 44, /*->18881*/
/* 18837*/          OPC_CheckChild3Type, MVT::v4i64,
/* 18839*/          OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 18841*/          OPC_Scope, 18, /*->18861*/ // 2 children in Scope
/* 18843*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 18845*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18848*/            OPC_EmitMergeInputChains1_0,
/* 18849*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4i64] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                      // Dst: (VMASKMOVPDYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4i64] }:$src)
/* 18861*/          /*Scope*/ 18, /*->18880*/
/* 18862*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 18864*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18867*/            OPC_EmitMergeInputChains1_0,
/* 18868*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVQYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4i64] }:$src)<<P:Predicate_X86mstore>> - Complexity = 22
                      // Dst: (VPMASKMOVQYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4i64] }:$src)
/* 18880*/          0, /*End of Scope*/
/* 18881*/        0, /*End of Scope*/
/* 18882*/      /*Scope*/ 53|128,2/*309*/, /*->19193*/
/* 18884*/        OPC_CheckChild2Type, MVT::v16i1,
/* 18886*/        OPC_RecordChild3, // #3 = $src
/* 18887*/        OPC_Scope, 69, /*->18958*/ // 4 children in Scope
/* 18889*/          OPC_CheckChild3Type, MVT::v16f32,
/* 18891*/          OPC_Scope, 22, /*->18915*/ // 3 children in Scope
/* 18893*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 18895*/            OPC_CheckPredicate, 27, // Predicate_masked_store_aligned512
/* 18897*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18899*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18902*/            OPC_EmitMergeInputChains1_0,
/* 18903*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned512>> - Complexity = 22
                      // Dst: (VMOVAPSZmrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/* 18915*/          /*Scope*/ 20, /*->18936*/
/* 18916*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 18918*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18920*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18923*/            OPC_EmitMergeInputChains1_0,
/* 18924*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVUPSZmrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/* 18936*/          /*Scope*/ 20, /*->18957*/
/* 18937*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 18939*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18941*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18944*/            OPC_EmitMergeInputChains1_0,
/* 18945*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VCOMPRESSPSZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/* 18957*/          0, /*End of Scope*/
/* 18958*/        /*Scope*/ 116, /*->19075*/
/* 18959*/          OPC_CheckChild3Type, MVT::v16i32,
/* 18961*/          OPC_Scope, 22, /*->18985*/ // 4 children in Scope
/* 18963*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 18965*/            OPC_CheckPredicate, 27, // Predicate_masked_store_aligned512
/* 18967*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18969*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18972*/            OPC_EmitMergeInputChains1_0,
/* 18973*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA32Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned512>> - Complexity = 22
                      // Dst: (VMOVDQA32Zmrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/* 18985*/          /*Scope*/ 20, /*->19006*/
/* 18986*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 18988*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18990*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18993*/            OPC_EmitMergeInputChains1_0,
/* 18994*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU32Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU32Zmrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/* 19006*/          /*Scope*/ 46, /*->19053*/
/* 19007*/            OPC_CheckPredicate, 29, // Predicate_X86mtruncstore
/* 19009*/            OPC_Scope, 20, /*->19031*/ // 2 children in Scope
/* 19011*/              OPC_CheckPredicate, 30, // Predicate_masked_truncstorevi8
/* 19013*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19015*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19018*/              OPC_EmitMergeInputChains1_0,
/* 19019*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 22
                        // Dst: (VPMOVDBZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/* 19031*/            /*Scope*/ 20, /*->19052*/
/* 19032*/              OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi16
/* 19034*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19036*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19039*/              OPC_EmitMergeInputChains1_0,
/* 19040*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 22
                        // Dst: (VPMOVDWZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/* 19052*/            0, /*End of Scope*/
/* 19053*/          /*Scope*/ 20, /*->19074*/
/* 19054*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 19056*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19058*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19061*/            OPC_EmitMergeInputChains1_0,
/* 19062*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VPCOMPRESSDZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/* 19074*/          0, /*End of Scope*/
/* 19075*/        /*Scope*/ 46, /*->19122*/
/* 19076*/          OPC_CheckChild3Type, MVT::v16i8,
/* 19078*/          OPC_Scope, 20, /*->19100*/ // 2 children in Scope
/* 19080*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 19082*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 19084*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19087*/            OPC_EmitMergeInputChains1_0,
/* 19088*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU8Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU8Z128mrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/* 19100*/          /*Scope*/ 20, /*->19121*/
/* 19101*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 19103*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/* 19105*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19108*/            OPC_EmitMergeInputChains1_0,
/* 19109*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VPCOMPRESSBZ128mrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/* 19121*/          0, /*End of Scope*/
/* 19122*/        /*Scope*/ 69, /*->19192*/
/* 19123*/          OPC_CheckChild3Type, MVT::v16i16,
/* 19125*/          OPC_Scope, 20, /*->19147*/ // 3 children in Scope
/* 19127*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 19129*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 19131*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19134*/            OPC_EmitMergeInputChains1_0,
/* 19135*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU16Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU16Z256mrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/* 19147*/          /*Scope*/ 22, /*->19170*/
/* 19148*/            OPC_CheckPredicate, 29, // Predicate_X86mtruncstore
/* 19150*/            OPC_CheckPredicate, 30, // Predicate_masked_truncstorevi8
/* 19152*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 19154*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19157*/            OPC_EmitMergeInputChains1_0,
/* 19158*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVWBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 22
                      // Dst: (VPMOVWBZ256mrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/* 19170*/          /*Scope*/ 20, /*->19191*/
/* 19171*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 19173*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/* 19175*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19178*/            OPC_EmitMergeInputChains1_0,
/* 19179*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VPCOMPRESSWZ256mrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/* 19191*/          0, /*End of Scope*/
/* 19192*/        0, /*End of Scope*/
/* 19193*/      /*Scope*/ 87|128,3/*471*/, /*->19666*/
/* 19195*/        OPC_CheckChild2Type, MVT::v8i1,
/* 19197*/        OPC_RecordChild3, // #3 = $src
/* 19198*/        OPC_Scope, 69, /*->19269*/ // 5 children in Scope
/* 19200*/          OPC_CheckChild3Type, MVT::v8f32,
/* 19202*/          OPC_Scope, 22, /*->19226*/ // 3 children in Scope
/* 19204*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 19206*/            OPC_CheckPredicate, 32, // Predicate_masked_store_aligned256
/* 19208*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19210*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19213*/            OPC_EmitMergeInputChains1_0,
/* 19214*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned256>> - Complexity = 22
                      // Dst: (VMOVAPSZ256mrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/* 19226*/          /*Scope*/ 20, /*->19247*/
/* 19227*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 19229*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19231*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19234*/            OPC_EmitMergeInputChains1_0,
/* 19235*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVUPSZ256mrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/* 19247*/          /*Scope*/ 20, /*->19268*/
/* 19248*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 19250*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19252*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19255*/            OPC_EmitMergeInputChains1_0,
/* 19256*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPSZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VCOMPRESSPSZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/* 19268*/          0, /*End of Scope*/
/* 19269*/        /*Scope*/ 69, /*->19339*/
/* 19270*/          OPC_CheckChild3Type, MVT::v8f64,
/* 19272*/          OPC_Scope, 22, /*->19296*/ // 3 children in Scope
/* 19274*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 19276*/            OPC_CheckPredicate, 27, // Predicate_masked_store_aligned512
/* 19278*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19280*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19283*/            OPC_EmitMergeInputChains1_0,
/* 19284*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned512>> - Complexity = 22
                      // Dst: (VMOVAPDZmrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/* 19296*/          /*Scope*/ 20, /*->19317*/
/* 19297*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 19299*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19301*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19304*/            OPC_EmitMergeInputChains1_0,
/* 19305*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVUPDZmrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/* 19317*/          /*Scope*/ 20, /*->19338*/
/* 19318*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 19320*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19322*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19325*/            OPC_EmitMergeInputChains1_0,
/* 19326*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VCOMPRESSPDZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/* 19338*/          0, /*End of Scope*/
/* 19339*/        /*Scope*/ 116, /*->19456*/
/* 19340*/          OPC_CheckChild3Type, MVT::v8i32,
/* 19342*/          OPC_Scope, 22, /*->19366*/ // 4 children in Scope
/* 19344*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 19346*/            OPC_CheckPredicate, 32, // Predicate_masked_store_aligned256
/* 19348*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19350*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19353*/            OPC_EmitMergeInputChains1_0,
/* 19354*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA32Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned256>> - Complexity = 22
                      // Dst: (VMOVDQA32Z256mrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/* 19366*/          /*Scope*/ 20, /*->19387*/
/* 19367*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 19369*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19371*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19374*/            OPC_EmitMergeInputChains1_0,
/* 19375*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU32Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU32Z256mrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/* 19387*/          /*Scope*/ 46, /*->19434*/
/* 19388*/            OPC_CheckPredicate, 29, // Predicate_X86mtruncstore
/* 19390*/            OPC_Scope, 20, /*->19412*/ // 2 children in Scope
/* 19392*/              OPC_CheckPredicate, 30, // Predicate_masked_truncstorevi8
/* 19394*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19396*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19399*/              OPC_EmitMergeInputChains1_0,
/* 19400*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 22
                        // Dst: (VPMOVDBZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/* 19412*/            /*Scope*/ 20, /*->19433*/
/* 19413*/              OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi16
/* 19415*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19417*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19420*/              OPC_EmitMergeInputChains1_0,
/* 19421*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 22
                        // Dst: (VPMOVDWZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/* 19433*/            0, /*End of Scope*/
/* 19434*/          /*Scope*/ 20, /*->19455*/
/* 19435*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 19437*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19439*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19442*/            OPC_EmitMergeInputChains1_0,
/* 19443*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VPCOMPRESSDZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/* 19455*/          0, /*End of Scope*/
/* 19456*/        /*Scope*/ 9|128,1/*137*/, /*->19595*/
/* 19458*/          OPC_CheckChild3Type, MVT::v8i64,
/* 19460*/          OPC_Scope, 22, /*->19484*/ // 4 children in Scope
/* 19462*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 19464*/            OPC_CheckPredicate, 27, // Predicate_masked_store_aligned512
/* 19466*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19468*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19471*/            OPC_EmitMergeInputChains1_0,
/* 19472*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned512>> - Complexity = 22
                      // Dst: (VMOVDQA64Zmrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 19484*/          /*Scope*/ 20, /*->19505*/
/* 19485*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 19487*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19489*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19492*/            OPC_EmitMergeInputChains1_0,
/* 19493*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU64Zmrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 19505*/          /*Scope*/ 67, /*->19573*/
/* 19506*/            OPC_CheckPredicate, 29, // Predicate_X86mtruncstore
/* 19508*/            OPC_Scope, 20, /*->19530*/ // 3 children in Scope
/* 19510*/              OPC_CheckPredicate, 30, // Predicate_masked_truncstorevi8
/* 19512*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19514*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19517*/              OPC_EmitMergeInputChains1_0,
/* 19518*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 22
                        // Dst: (VPMOVQBZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 19530*/            /*Scope*/ 20, /*->19551*/
/* 19531*/              OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi16
/* 19533*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19535*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19538*/              OPC_EmitMergeInputChains1_0,
/* 19539*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 22
                        // Dst: (VPMOVQWZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 19551*/            /*Scope*/ 20, /*->19572*/
/* 19552*/              OPC_CheckPredicate, 33, // Predicate_masked_truncstorevi32
/* 19554*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19556*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19559*/              OPC_EmitMergeInputChains1_0,
/* 19560*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi32>> - Complexity = 22
                        // Dst: (VPMOVQDZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 19572*/            0, /*End of Scope*/
/* 19573*/          /*Scope*/ 20, /*->19594*/
/* 19574*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 19576*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 19578*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19581*/            OPC_EmitMergeInputChains1_0,
/* 19582*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSQZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VPCOMPRESSQZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 19594*/          0, /*End of Scope*/
/* 19595*/        /*Scope*/ 69, /*->19665*/
/* 19596*/          OPC_CheckChild3Type, MVT::v8i16,
/* 19598*/          OPC_Scope, 20, /*->19620*/ // 3 children in Scope
/* 19600*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 19602*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 19604*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19607*/            OPC_EmitMergeInputChains1_0,
/* 19608*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU16Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU16Z128mrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/* 19620*/          /*Scope*/ 22, /*->19643*/
/* 19621*/            OPC_CheckPredicate, 29, // Predicate_X86mtruncstore
/* 19623*/            OPC_CheckPredicate, 30, // Predicate_masked_truncstorevi8
/* 19625*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 19627*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19630*/            OPC_EmitMergeInputChains1_0,
/* 19631*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVWBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 22
                      // Dst: (VPMOVWBZ128mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/* 19643*/          /*Scope*/ 20, /*->19664*/
/* 19644*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 19646*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/* 19648*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19651*/            OPC_EmitMergeInputChains1_0,
/* 19652*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VPCOMPRESSWZ128mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/* 19664*/          0, /*End of Scope*/
/* 19665*/        0, /*End of Scope*/
/* 19666*/      /*Scope*/ 17|128,3/*401*/, /*->20069*/
/* 19668*/        OPC_CheckChild2Type, MVT::v4i1,
/* 19670*/        OPC_RecordChild3, // #3 = $src
/* 19671*/        OPC_Scope, 69, /*->19742*/ // 4 children in Scope
/* 19673*/          OPC_CheckChild3Type, MVT::v4f32,
/* 19675*/          OPC_Scope, 22, /*->19699*/ // 3 children in Scope
/* 19677*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 19679*/            OPC_CheckPredicate, 34, // Predicate_masked_store_aligned128
/* 19681*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19683*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19686*/            OPC_EmitMergeInputChains1_0,
/* 19687*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned128>> - Complexity = 22
                      // Dst: (VMOVAPSZ128mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/* 19699*/          /*Scope*/ 20, /*->19720*/
/* 19700*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 19702*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19704*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19707*/            OPC_EmitMergeInputChains1_0,
/* 19708*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVUPSZ128mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/* 19720*/          /*Scope*/ 20, /*->19741*/
/* 19721*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 19723*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19725*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19728*/            OPC_EmitMergeInputChains1_0,
/* 19729*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPSZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VCOMPRESSPSZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/* 19741*/          0, /*End of Scope*/
/* 19742*/        /*Scope*/ 69, /*->19812*/
/* 19743*/          OPC_CheckChild3Type, MVT::v4f64,
/* 19745*/          OPC_Scope, 22, /*->19769*/ // 3 children in Scope
/* 19747*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 19749*/            OPC_CheckPredicate, 32, // Predicate_masked_store_aligned256
/* 19751*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19753*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19756*/            OPC_EmitMergeInputChains1_0,
/* 19757*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned256>> - Complexity = 22
                      // Dst: (VMOVAPDZ256mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/* 19769*/          /*Scope*/ 20, /*->19790*/
/* 19770*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 19772*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19774*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19777*/            OPC_EmitMergeInputChains1_0,
/* 19778*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVUPDZ256mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/* 19790*/          /*Scope*/ 20, /*->19811*/
/* 19791*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 19793*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19795*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19798*/            OPC_EmitMergeInputChains1_0,
/* 19799*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VCOMPRESSPDZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/* 19811*/          0, /*End of Scope*/
/* 19812*/        /*Scope*/ 116, /*->19929*/
/* 19813*/          OPC_CheckChild3Type, MVT::v4i32,
/* 19815*/          OPC_Scope, 22, /*->19839*/ // 4 children in Scope
/* 19817*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 19819*/            OPC_CheckPredicate, 34, // Predicate_masked_store_aligned128
/* 19821*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19823*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19826*/            OPC_EmitMergeInputChains1_0,
/* 19827*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA32Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned128>> - Complexity = 22
                      // Dst: (VMOVDQA32Z128mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/* 19839*/          /*Scope*/ 20, /*->19860*/
/* 19840*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 19842*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19844*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19847*/            OPC_EmitMergeInputChains1_0,
/* 19848*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU32Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU32Z128mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/* 19860*/          /*Scope*/ 46, /*->19907*/
/* 19861*/            OPC_CheckPredicate, 29, // Predicate_X86mtruncstore
/* 19863*/            OPC_Scope, 20, /*->19885*/ // 2 children in Scope
/* 19865*/              OPC_CheckPredicate, 30, // Predicate_masked_truncstorevi8
/* 19867*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19869*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19872*/              OPC_EmitMergeInputChains1_0,
/* 19873*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 22
                        // Dst: (VPMOVDBZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/* 19885*/            /*Scope*/ 20, /*->19906*/
/* 19886*/              OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi16
/* 19888*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19890*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19893*/              OPC_EmitMergeInputChains1_0,
/* 19894*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 22
                        // Dst: (VPMOVDWZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/* 19906*/            0, /*End of Scope*/
/* 19907*/          /*Scope*/ 20, /*->19928*/
/* 19908*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 19910*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19912*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19915*/            OPC_EmitMergeInputChains1_0,
/* 19916*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VPCOMPRESSDZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/* 19928*/          0, /*End of Scope*/
/* 19929*/        /*Scope*/ 9|128,1/*137*/, /*->20068*/
/* 19931*/          OPC_CheckChild3Type, MVT::v4i64,
/* 19933*/          OPC_Scope, 22, /*->19957*/ // 4 children in Scope
/* 19935*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 19937*/            OPC_CheckPredicate, 32, // Predicate_masked_store_aligned256
/* 19939*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19941*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19944*/            OPC_EmitMergeInputChains1_0,
/* 19945*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned256>> - Complexity = 22
                      // Dst: (VMOVDQA64Z256mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 19957*/          /*Scope*/ 20, /*->19978*/
/* 19958*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 19960*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19962*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 19965*/            OPC_EmitMergeInputChains1_0,
/* 19966*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU64Z256mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 19978*/          /*Scope*/ 67, /*->20046*/
/* 19979*/            OPC_CheckPredicate, 29, // Predicate_X86mtruncstore
/* 19981*/            OPC_Scope, 20, /*->20003*/ // 3 children in Scope
/* 19983*/              OPC_CheckPredicate, 30, // Predicate_masked_truncstorevi8
/* 19985*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 19987*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19990*/              OPC_EmitMergeInputChains1_0,
/* 19991*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 22
                        // Dst: (VPMOVQBZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 20003*/            /*Scope*/ 20, /*->20024*/
/* 20004*/              OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi16
/* 20006*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20008*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20011*/              OPC_EmitMergeInputChains1_0,
/* 20012*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 22
                        // Dst: (VPMOVQWZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 20024*/            /*Scope*/ 20, /*->20045*/
/* 20025*/              OPC_CheckPredicate, 33, // Predicate_masked_truncstorevi32
/* 20027*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20029*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20032*/              OPC_EmitMergeInputChains1_0,
/* 20033*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi32>> - Complexity = 22
                        // Dst: (VPMOVQDZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 20045*/            0, /*End of Scope*/
/* 20046*/          /*Scope*/ 20, /*->20067*/
/* 20047*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 20049*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20051*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20054*/            OPC_EmitMergeInputChains1_0,
/* 20055*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSQZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VPCOMPRESSQZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 20067*/          0, /*End of Scope*/
/* 20068*/        0, /*End of Scope*/
/* 20069*/      /*Scope*/ 86|128,1/*214*/, /*->20285*/
/* 20071*/        OPC_CheckChild2Type, MVT::v2i1,
/* 20073*/        OPC_RecordChild3, // #3 = $src
/* 20074*/        OPC_Scope, 69, /*->20145*/ // 2 children in Scope
/* 20076*/          OPC_CheckChild3Type, MVT::v2f64,
/* 20078*/          OPC_Scope, 22, /*->20102*/ // 3 children in Scope
/* 20080*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 20082*/            OPC_CheckPredicate, 34, // Predicate_masked_store_aligned128
/* 20084*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20086*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 20089*/            OPC_EmitMergeInputChains1_0,
/* 20090*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned128>> - Complexity = 22
                      // Dst: (VMOVAPDZ128mrk addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/* 20102*/          /*Scope*/ 20, /*->20123*/
/* 20103*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 20105*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20107*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 20110*/            OPC_EmitMergeInputChains1_0,
/* 20111*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVUPDZ128mrk addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/* 20123*/          /*Scope*/ 20, /*->20144*/
/* 20124*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 20126*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20128*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20131*/            OPC_EmitMergeInputChains1_0,
/* 20132*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VCOMPRESSPDZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/* 20144*/          0, /*End of Scope*/
/* 20145*/        /*Scope*/ 9|128,1/*137*/, /*->20284*/
/* 20147*/          OPC_CheckChild3Type, MVT::v2i64,
/* 20149*/          OPC_Scope, 22, /*->20173*/ // 4 children in Scope
/* 20151*/            OPC_CheckPredicate, 26, // Predicate_X86mstore
/* 20153*/            OPC_CheckPredicate, 34, // Predicate_masked_store_aligned128
/* 20155*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20157*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 20160*/            OPC_EmitMergeInputChains1_0,
/* 20161*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_X86mstore>><<P:Predicate_masked_store_aligned128>> - Complexity = 22
                      // Dst: (VMOVDQA64Z128mrk addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 20173*/          /*Scope*/ 20, /*->20194*/
/* 20174*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 20176*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20178*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 20181*/            OPC_EmitMergeInputChains1_0,
/* 20182*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU64Z128mrk addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 20194*/          /*Scope*/ 67, /*->20262*/
/* 20195*/            OPC_CheckPredicate, 29, // Predicate_X86mtruncstore
/* 20197*/            OPC_Scope, 20, /*->20219*/ // 3 children in Scope
/* 20199*/              OPC_CheckPredicate, 30, // Predicate_masked_truncstorevi8
/* 20201*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20203*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20206*/              OPC_EmitMergeInputChains1_0,
/* 20207*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 22
                        // Dst: (VPMOVQBZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 20219*/            /*Scope*/ 20, /*->20240*/
/* 20220*/              OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi16
/* 20222*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20224*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20227*/              OPC_EmitMergeInputChains1_0,
/* 20228*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 22
                        // Dst: (VPMOVQWZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 20240*/            /*Scope*/ 20, /*->20261*/
/* 20241*/              OPC_CheckPredicate, 33, // Predicate_masked_truncstorevi32
/* 20243*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20245*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20248*/              OPC_EmitMergeInputChains1_0,
/* 20249*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                        // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi32>> - Complexity = 22
                        // Dst: (VPMOVQDZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 20261*/            0, /*End of Scope*/
/* 20262*/          /*Scope*/ 20, /*->20283*/
/* 20263*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 20265*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 20267*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20270*/            OPC_EmitMergeInputChains1_0,
/* 20271*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSQZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VPCOMPRESSQZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 20283*/          0, /*End of Scope*/
/* 20284*/        0, /*End of Scope*/
/* 20285*/      /*Scope*/ 49, /*->20335*/
/* 20286*/        OPC_CheckChild2Type, MVT::v64i1,
/* 20288*/        OPC_RecordChild3, // #3 = $src
/* 20289*/        OPC_CheckChild3Type, MVT::v64i8,
/* 20291*/        OPC_Scope, 20, /*->20313*/ // 2 children in Scope
/* 20293*/          OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 20295*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 20297*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 20300*/          OPC_EmitMergeInputChains1_0,
/* 20301*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU8Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                    // Dst: (VMOVDQU8Zmrk addr:{ *:[iPTR] }:$ptr, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)
/* 20313*/        /*Scope*/ 20, /*->20334*/
/* 20314*/          OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 20316*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/* 20318*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20321*/          OPC_EmitMergeInputChains1_0,
/* 20322*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                    // Dst: (VPCOMPRESSBZmrk addr:{ *:[iPTR] }:$dst, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)
/* 20334*/        0, /*End of Scope*/
/* 20335*/      /*Scope*/ 122, /*->20458*/
/* 20336*/        OPC_CheckChild2Type, MVT::v32i1,
/* 20338*/        OPC_RecordChild3, // #3 = $src
/* 20339*/        OPC_Scope, 46, /*->20387*/ // 2 children in Scope
/* 20341*/          OPC_CheckChild3Type, MVT::v32i8,
/* 20343*/          OPC_Scope, 20, /*->20365*/ // 2 children in Scope
/* 20345*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 20347*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 20349*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 20352*/            OPC_EmitMergeInputChains1_0,
/* 20353*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU8Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU8Z256mrk addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/* 20365*/          /*Scope*/ 20, /*->20386*/
/* 20366*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 20368*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/* 20370*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20373*/            OPC_EmitMergeInputChains1_0,
/* 20374*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VPCOMPRESSBZ256mrk addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/* 20386*/          0, /*End of Scope*/
/* 20387*/        /*Scope*/ 69, /*->20457*/
/* 20388*/          OPC_CheckChild3Type, MVT::v32i16,
/* 20390*/          OPC_Scope, 20, /*->20412*/ // 3 children in Scope
/* 20392*/            OPC_CheckPredicate, 26, // Predicate_masked_store_unaligned
/* 20394*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 20396*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 20399*/            OPC_EmitMergeInputChains1_0,
/* 20400*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU16Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)<<P:Predicate_masked_store_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU16Zmrk addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/* 20412*/          /*Scope*/ 22, /*->20435*/
/* 20413*/            OPC_CheckPredicate, 29, // Predicate_X86mtruncstore
/* 20415*/            OPC_CheckPredicate, 30, // Predicate_masked_truncstorevi8
/* 20417*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 20419*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20422*/            OPC_EmitMergeInputChains1_0,
/* 20423*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVWBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 22
                      // Dst: (VPMOVWBZmrk addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/* 20435*/          /*Scope*/ 20, /*->20456*/
/* 20436*/            OPC_CheckPredicate, 28, // Predicate_X86mCompressingStore
/* 20438*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/* 20440*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20443*/            OPC_EmitMergeInputChains1_0,
/* 20444*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                      // Src: (masked_store addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)<<P:Predicate_X86mCompressingStore>> - Complexity = 22
                      // Dst: (VPCOMPRESSWZmrk addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/* 20456*/          0, /*End of Scope*/
/* 20457*/        0, /*End of Scope*/
/* 20458*/      0, /*End of Scope*/
/* 20459*/    0, /*End of Scope*/
/* 20460*/  /*SwitchOpcode*/ 117|128,14/*1909*/, TARGET_VAL(ISD::ATOMIC_STORE),// ->22373
/* 20464*/    OPC_RecordMemRef,
/* 20465*/    OPC_RecordNode, // #0 = 'atomic_store' chained node
/* 20466*/    OPC_RecordChild1, // #1 = $dst
/* 20467*/    OPC_Scope, 56|128,13/*1720*/, /*->22190*/ // 2 children in Scope
/* 20470*/      OPC_MoveChild2,
/* 20471*/      OPC_SwitchOpcode /*5 cases */, 49|128,1/*177*/, TARGET_VAL(ISD::BITCAST),// ->20653
/* 20476*/        OPC_MoveChild0,
/* 20477*/        OPC_CheckOpcode, TARGET_VAL(ISD::FADD),
/* 20480*/        OPC_Scope, 85, /*->20567*/ // 2 children in Scope
/* 20482*/          OPC_MoveChild0,
/* 20483*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20486*/          OPC_MoveChild0,
/* 20487*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 20490*/          OPC_RecordMemRef,
/* 20491*/          OPC_RecordNode, // #2 = 'atomic_load' chained node
/* 20492*/          OPC_CheckFoldableChainNode,
/* 20493*/          OPC_CheckChild1Same, 1,
/* 20495*/          OPC_SwitchType /*2 cases */, 33, MVT::i32,// ->20531
/* 20498*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 20500*/            OPC_MoveParent,
/* 20501*/            OPC_MoveParent,
/* 20502*/            OPC_RecordChild1, // #3 = $src
/* 20503*/            OPC_CheckType, MVT::f32,
/* 20505*/            OPC_MoveParent,
/* 20506*/            OPC_CheckType, MVT::i32,
/* 20508*/            OPC_MoveParent,
/* 20509*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 20511*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasSSE1())
/* 20513*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20516*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20520*/            OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_FADD32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[i32] } (fadd:{ *:[f32] } (bitconvert:{ *:[f32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>), FR32:{ *:[f32] }:$src)))<<P:Predicate_atomic_store_32>> - Complexity = 53
                      // Dst: (RELEASE_FADD32mr addr:{ *:[iPTR] }:$dst, FR32:{ *:[f32] }:$src)
/* 20531*/          /*SwitchType*/ 33, MVT::i64,// ->20566
/* 20533*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 20535*/            OPC_MoveParent,
/* 20536*/            OPC_MoveParent,
/* 20537*/            OPC_RecordChild1, // #3 = $src
/* 20538*/            OPC_CheckType, MVT::f64,
/* 20540*/            OPC_MoveParent,
/* 20541*/            OPC_CheckType, MVT::i64,
/* 20543*/            OPC_MoveParent,
/* 20544*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 20546*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasSSE2())
/* 20548*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20551*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20555*/            OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_FADD64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[i64] } (fadd:{ *:[f64] } (bitconvert:{ *:[f64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>), FR64:{ *:[f64] }:$src)))<<P:Predicate_atomic_store_64>> - Complexity = 53
                      // Dst: (RELEASE_FADD64mr addr:{ *:[iPTR] }:$dst, FR64:{ *:[f64] }:$src)
/* 20566*/          0, // EndSwitchType
/* 20567*/        /*Scope*/ 84, /*->20652*/
/* 20568*/          OPC_RecordChild0, // #2 = $src
/* 20569*/          OPC_MoveChild1,
/* 20570*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20573*/          OPC_MoveChild0,
/* 20574*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 20577*/          OPC_RecordMemRef,
/* 20578*/          OPC_RecordNode, // #3 = 'atomic_load' chained node
/* 20579*/          OPC_CheckFoldableChainNode,
/* 20580*/          OPC_CheckChild1Same, 1,
/* 20582*/          OPC_SwitchType /*2 cases */, 32, MVT::i32,// ->20617
/* 20585*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 20587*/            OPC_MoveParent,
/* 20588*/            OPC_MoveParent,
/* 20589*/            OPC_CheckType, MVT::f32,
/* 20591*/            OPC_MoveParent,
/* 20592*/            OPC_CheckType, MVT::i32,
/* 20594*/            OPC_MoveParent,
/* 20595*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 20597*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasSSE1())
/* 20599*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20602*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 20606*/            OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_FADD32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[i32] } (fadd:{ *:[f32] } FR32:{ *:[f32] }:$src, (bitconvert:{ *:[f32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>))))<<P:Predicate_atomic_store_32>> - Complexity = 53
                      // Dst: (RELEASE_FADD32mr addr:{ *:[iPTR] }:$dst, FR32:{ *:[f32] }:$src)
/* 20617*/          /*SwitchType*/ 32, MVT::i64,// ->20651
/* 20619*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 20621*/            OPC_MoveParent,
/* 20622*/            OPC_MoveParent,
/* 20623*/            OPC_CheckType, MVT::f64,
/* 20625*/            OPC_MoveParent,
/* 20626*/            OPC_CheckType, MVT::i64,
/* 20628*/            OPC_MoveParent,
/* 20629*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 20631*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasSSE2())
/* 20633*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20636*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 20640*/            OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_FADD64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[i64] } (fadd:{ *:[f64] } FR64:{ *:[f64] }:$src, (bitconvert:{ *:[f64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>))))<<P:Predicate_atomic_store_64>> - Complexity = 53
                      // Dst: (RELEASE_FADD64mr addr:{ *:[iPTR] }:$dst, FR64:{ *:[f64] }:$src)
/* 20651*/          0, // EndSwitchType
/* 20652*/        0, /*End of Scope*/
/* 20653*/      /*SwitchOpcode*/ 81|128,4/*593*/, TARGET_VAL(ISD::ADD),// ->21250
/* 20657*/        OPC_Scope, 108|128,3/*492*/, /*->21152*/ // 2 children in Scope
/* 20660*/          OPC_MoveChild0,
/* 20661*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 20664*/          OPC_RecordMemRef,
/* 20665*/          OPC_RecordNode, // #2 = 'atomic_load' chained node
/* 20666*/          OPC_CheckFoldableChainNode,
/* 20667*/          OPC_CheckChild1Same, 1,
/* 20669*/          OPC_Scope, 30, /*->20701*/ // 13 children in Scope
/* 20671*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 20673*/            OPC_MoveParent,
/* 20674*/            OPC_CheckChild1Integer, 1, 
/* 20676*/            OPC_CheckType, MVT::i8,
/* 20678*/            OPC_MoveParent,
/* 20679*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 20681*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/* 20683*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 20686*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20690*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_INC8m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, 1:{ *:[i8] }))<<P:Predicate_atomic_store_8>> - Complexity = 52
                      // Dst: (RELEASE_INC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 20701*/          /*Scope*/ 30, /*->20732*/
/* 20702*/            OPC_CheckPredicate, 38, // Predicate_atomic_load_16
/* 20704*/            OPC_MoveParent,
/* 20705*/            OPC_CheckChild1Integer, 1, 
/* 20707*/            OPC_CheckType, MVT::i16,
/* 20709*/            OPC_MoveParent,
/* 20710*/            OPC_CheckPredicate, 38, // Predicate_atomic_store_16
/* 20712*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/* 20714*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 20717*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20721*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_INC16m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, 1:{ *:[i16] }))<<P:Predicate_atomic_store_16>> - Complexity = 52
                      // Dst: (RELEASE_INC16m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 20732*/          /*Scope*/ 30, /*->20763*/
/* 20733*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 20735*/            OPC_MoveParent,
/* 20736*/            OPC_CheckChild1Integer, 1, 
/* 20738*/            OPC_CheckType, MVT::i32,
/* 20740*/            OPC_MoveParent,
/* 20741*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 20743*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/* 20745*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 20748*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20752*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_INC32m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, 1:{ *:[i32] }))<<P:Predicate_atomic_store_32>> - Complexity = 52
                      // Dst: (RELEASE_INC32m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 20763*/          /*Scope*/ 30, /*->20794*/
/* 20764*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 20766*/            OPC_MoveParent,
/* 20767*/            OPC_CheckChild1Integer, 1, 
/* 20769*/            OPC_CheckType, MVT::i64,
/* 20771*/            OPC_MoveParent,
/* 20772*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 20774*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/* 20776*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 20779*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20783*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_INC64m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, 1:{ *:[i64] }))<<P:Predicate_atomic_store_64>> - Complexity = 52
                      // Dst: (RELEASE_INC64m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 20794*/          /*Scope*/ 39, /*->20834*/
/* 20795*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 20797*/            OPC_MoveParent,
/* 20798*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 20809*/            OPC_CheckType, MVT::i8,
/* 20811*/            OPC_MoveParent,
/* 20812*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 20814*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/* 20816*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 20819*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20823*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_DEC8m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, -1:{ *:[i8] }))<<P:Predicate_atomic_store_8>> - Complexity = 52
                      // Dst: (RELEASE_DEC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 20834*/          /*Scope*/ 39, /*->20874*/
/* 20835*/            OPC_CheckPredicate, 38, // Predicate_atomic_load_16
/* 20837*/            OPC_MoveParent,
/* 20838*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 20849*/            OPC_CheckType, MVT::i16,
/* 20851*/            OPC_MoveParent,
/* 20852*/            OPC_CheckPredicate, 38, // Predicate_atomic_store_16
/* 20854*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/* 20856*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 20859*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20863*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_DEC16m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, -1:{ *:[i16] }))<<P:Predicate_atomic_store_16>> - Complexity = 52
                      // Dst: (RELEASE_DEC16m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 20874*/          /*Scope*/ 39, /*->20914*/
/* 20875*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 20877*/            OPC_MoveParent,
/* 20878*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 20889*/            OPC_CheckType, MVT::i32,
/* 20891*/            OPC_MoveParent,
/* 20892*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 20894*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/* 20896*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 20899*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20903*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_DEC32m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, -1:{ *:[i32] }))<<P:Predicate_atomic_store_32>> - Complexity = 52
                      // Dst: (RELEASE_DEC32m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 20914*/          /*Scope*/ 77, /*->20992*/
/* 20915*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 20917*/            OPC_MoveParent,
/* 20918*/            OPC_Scope, 36, /*->20956*/ // 2 children in Scope
/* 20920*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 20931*/              OPC_CheckType, MVT::i64,
/* 20933*/              OPC_MoveParent,
/* 20934*/              OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 20936*/              OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/* 20938*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 20941*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20945*/              OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_DEC64m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, -1:{ *:[i64] }))<<P:Predicate_atomic_store_64>> - Complexity = 52
                        // Dst: (RELEASE_DEC64m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 20956*/            /*Scope*/ 34, /*->20991*/
/* 20957*/              OPC_RecordChild1, // #3 = $src
/* 20958*/              OPC_MoveChild1,
/* 20959*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20962*/              OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 20964*/              OPC_MoveParent,
/* 20965*/              OPC_CheckType, MVT::i64,
/* 20967*/              OPC_MoveParent,
/* 20968*/              OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 20970*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20973*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20977*/              OPC_EmitConvertToTarget, 3,
/* 20979*/              OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_ADD64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                        // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src))<<P:Predicate_atomic_store_64>> - Complexity = 51
                        // Dst: (RELEASE_ADD64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/* 20991*/            0, /*End of Scope*/
/* 20992*/          /*Scope*/ 35, /*->21028*/
/* 20993*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 20995*/            OPC_MoveParent,
/* 20996*/            OPC_RecordChild1, // #3 = $src
/* 20997*/            OPC_MoveChild1,
/* 20998*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21001*/            OPC_MoveParent,
/* 21002*/            OPC_CheckType, MVT::i8,
/* 21004*/            OPC_MoveParent,
/* 21005*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 21007*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21010*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21014*/            OPC_EmitConvertToTarget, 3,
/* 21016*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_ADD8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, (imm:{ *:[i8] }):$src))<<P:Predicate_atomic_store_8>> - Complexity = 50
                      // Dst: (RELEASE_ADD8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/* 21028*/          /*Scope*/ 35, /*->21064*/
/* 21029*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 21031*/            OPC_MoveParent,
/* 21032*/            OPC_RecordChild1, // #3 = $src
/* 21033*/            OPC_MoveChild1,
/* 21034*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21037*/            OPC_MoveParent,
/* 21038*/            OPC_CheckType, MVT::i32,
/* 21040*/            OPC_MoveParent,
/* 21041*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 21043*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21046*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21050*/            OPC_EmitConvertToTarget, 3,
/* 21052*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_ADD32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, (imm:{ *:[i32] }):$src))<<P:Predicate_atomic_store_32>> - Complexity = 50
                      // Dst: (RELEASE_ADD32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 21064*/          /*Scope*/ 28, /*->21093*/
/* 21065*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 21067*/            OPC_MoveParent,
/* 21068*/            OPC_RecordChild1, // #3 = $src
/* 21069*/            OPC_CheckType, MVT::i8,
/* 21071*/            OPC_MoveParent,
/* 21072*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 21074*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21077*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21081*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_ADD8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, GR8:{ *:[i8] }:$src))<<P:Predicate_atomic_store_8>> - Complexity = 47
                      // Dst: (RELEASE_ADD8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 21093*/          /*Scope*/ 28, /*->21122*/
/* 21094*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 21096*/            OPC_MoveParent,
/* 21097*/            OPC_RecordChild1, // #3 = $src
/* 21098*/            OPC_CheckType, MVT::i32,
/* 21100*/            OPC_MoveParent,
/* 21101*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 21103*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21106*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_ADD32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, GR32:{ *:[i32] }:$src))<<P:Predicate_atomic_store_32>> - Complexity = 47
                      // Dst: (RELEASE_ADD32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 21122*/          /*Scope*/ 28, /*->21151*/
/* 21123*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 21125*/            OPC_MoveParent,
/* 21126*/            OPC_RecordChild1, // #3 = $src
/* 21127*/            OPC_CheckType, MVT::i64,
/* 21129*/            OPC_MoveParent,
/* 21130*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 21132*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21135*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21139*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_ADD64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, GR64:{ *:[i64] }:$src))<<P:Predicate_atomic_store_64>> - Complexity = 47
                      // Dst: (RELEASE_ADD64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 21151*/          0, /*End of Scope*/
/* 21152*/        /*Scope*/ 96, /*->21249*/
/* 21153*/          OPC_RecordChild0, // #2 = $src
/* 21154*/          OPC_MoveChild1,
/* 21155*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 21158*/          OPC_RecordMemRef,
/* 21159*/          OPC_RecordNode, // #3 = 'atomic_load' chained node
/* 21160*/          OPC_CheckFoldableChainNode,
/* 21161*/          OPC_CheckChild1Same, 1,
/* 21163*/          OPC_Scope, 27, /*->21192*/ // 3 children in Scope
/* 21165*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 21167*/            OPC_MoveParent,
/* 21168*/            OPC_CheckType, MVT::i8,
/* 21170*/            OPC_MoveParent,
/* 21171*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 21173*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21176*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21180*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_ADD8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i8] } GR8:{ *:[i8] }:$src, (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>))<<P:Predicate_atomic_store_8>> - Complexity = 47
                      // Dst: (RELEASE_ADD8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 21192*/          /*Scope*/ 27, /*->21220*/
/* 21193*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 21195*/            OPC_MoveParent,
/* 21196*/            OPC_CheckType, MVT::i32,
/* 21198*/            OPC_MoveParent,
/* 21199*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 21201*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21204*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21208*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_ADD32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>))<<P:Predicate_atomic_store_32>> - Complexity = 47
                      // Dst: (RELEASE_ADD32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 21220*/          /*Scope*/ 27, /*->21248*/
/* 21221*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 21223*/            OPC_MoveParent,
/* 21224*/            OPC_CheckType, MVT::i64,
/* 21226*/            OPC_MoveParent,
/* 21227*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 21229*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21232*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21236*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_ADD64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>))<<P:Predicate_atomic_store_64>> - Complexity = 47
                      // Dst: (RELEASE_ADD64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 21248*/          0, /*End of Scope*/
/* 21249*/        0, /*End of Scope*/
/* 21250*/      /*SwitchOpcode*/ 53|128,2/*309*/, TARGET_VAL(ISD::AND),// ->21563
/* 21254*/        OPC_Scope, 80|128,1/*208*/, /*->21465*/ // 2 children in Scope
/* 21257*/          OPC_MoveChild0,
/* 21258*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 21261*/          OPC_RecordMemRef,
/* 21262*/          OPC_RecordNode, // #2 = 'atomic_load' chained node
/* 21263*/          OPC_CheckFoldableChainNode,
/* 21264*/          OPC_CheckChild1Same, 1,
/* 21266*/          OPC_Scope, 37, /*->21305*/ // 6 children in Scope
/* 21268*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 21270*/            OPC_MoveParent,
/* 21271*/            OPC_RecordChild1, // #3 = $src
/* 21272*/            OPC_MoveChild1,
/* 21273*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21276*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 21278*/            OPC_MoveParent,
/* 21279*/            OPC_CheckType, MVT::i64,
/* 21281*/            OPC_MoveParent,
/* 21282*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 21284*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21287*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21291*/            OPC_EmitConvertToTarget, 3,
/* 21293*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_AND64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src))<<P:Predicate_atomic_store_64>> - Complexity = 51
                      // Dst: (RELEASE_AND64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/* 21305*/          /*Scope*/ 35, /*->21341*/
/* 21306*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 21308*/            OPC_MoveParent,
/* 21309*/            OPC_RecordChild1, // #3 = $src
/* 21310*/            OPC_MoveChild1,
/* 21311*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21314*/            OPC_MoveParent,
/* 21315*/            OPC_CheckType, MVT::i8,
/* 21317*/            OPC_MoveParent,
/* 21318*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 21320*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21323*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21327*/            OPC_EmitConvertToTarget, 3,
/* 21329*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_AND8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, (imm:{ *:[i8] }):$src))<<P:Predicate_atomic_store_8>> - Complexity = 50
                      // Dst: (RELEASE_AND8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/* 21341*/          /*Scope*/ 35, /*->21377*/
/* 21342*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 21344*/            OPC_MoveParent,
/* 21345*/            OPC_RecordChild1, // #3 = $src
/* 21346*/            OPC_MoveChild1,
/* 21347*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21350*/            OPC_MoveParent,
/* 21351*/            OPC_CheckType, MVT::i32,
/* 21353*/            OPC_MoveParent,
/* 21354*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 21356*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21359*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21363*/            OPC_EmitConvertToTarget, 3,
/* 21365*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_AND32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, (imm:{ *:[i32] }):$src))<<P:Predicate_atomic_store_32>> - Complexity = 50
                      // Dst: (RELEASE_AND32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 21377*/          /*Scope*/ 28, /*->21406*/
/* 21378*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 21380*/            OPC_MoveParent,
/* 21381*/            OPC_RecordChild1, // #3 = $src
/* 21382*/            OPC_CheckType, MVT::i8,
/* 21384*/            OPC_MoveParent,
/* 21385*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 21387*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21390*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21394*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_AND8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, GR8:{ *:[i8] }:$src))<<P:Predicate_atomic_store_8>> - Complexity = 47
                      // Dst: (RELEASE_AND8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 21406*/          /*Scope*/ 28, /*->21435*/
/* 21407*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 21409*/            OPC_MoveParent,
/* 21410*/            OPC_RecordChild1, // #3 = $src
/* 21411*/            OPC_CheckType, MVT::i32,
/* 21413*/            OPC_MoveParent,
/* 21414*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 21416*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21419*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21423*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_AND32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, GR32:{ *:[i32] }:$src))<<P:Predicate_atomic_store_32>> - Complexity = 47
                      // Dst: (RELEASE_AND32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 21435*/          /*Scope*/ 28, /*->21464*/
/* 21436*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 21438*/            OPC_MoveParent,
/* 21439*/            OPC_RecordChild1, // #3 = $src
/* 21440*/            OPC_CheckType, MVT::i64,
/* 21442*/            OPC_MoveParent,
/* 21443*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 21445*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21448*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21452*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_AND64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, GR64:{ *:[i64] }:$src))<<P:Predicate_atomic_store_64>> - Complexity = 47
                      // Dst: (RELEASE_AND64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 21464*/          0, /*End of Scope*/
/* 21465*/        /*Scope*/ 96, /*->21562*/
/* 21466*/          OPC_RecordChild0, // #2 = $src
/* 21467*/          OPC_MoveChild1,
/* 21468*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 21471*/          OPC_RecordMemRef,
/* 21472*/          OPC_RecordNode, // #3 = 'atomic_load' chained node
/* 21473*/          OPC_CheckFoldableChainNode,
/* 21474*/          OPC_CheckChild1Same, 1,
/* 21476*/          OPC_Scope, 27, /*->21505*/ // 3 children in Scope
/* 21478*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 21480*/            OPC_MoveParent,
/* 21481*/            OPC_CheckType, MVT::i8,
/* 21483*/            OPC_MoveParent,
/* 21484*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 21486*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21489*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21493*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_AND8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i8] } GR8:{ *:[i8] }:$src, (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>))<<P:Predicate_atomic_store_8>> - Complexity = 47
                      // Dst: (RELEASE_AND8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 21505*/          /*Scope*/ 27, /*->21533*/
/* 21506*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 21508*/            OPC_MoveParent,
/* 21509*/            OPC_CheckType, MVT::i32,
/* 21511*/            OPC_MoveParent,
/* 21512*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 21514*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21517*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_AND32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>))<<P:Predicate_atomic_store_32>> - Complexity = 47
                      // Dst: (RELEASE_AND32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 21533*/          /*Scope*/ 27, /*->21561*/
/* 21534*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 21536*/            OPC_MoveParent,
/* 21537*/            OPC_CheckType, MVT::i64,
/* 21539*/            OPC_MoveParent,
/* 21540*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 21542*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21545*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21549*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_AND64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>))<<P:Predicate_atomic_store_64>> - Complexity = 47
                      // Dst: (RELEASE_AND64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 21561*/          0, /*End of Scope*/
/* 21562*/        0, /*End of Scope*/
/* 21563*/      /*SwitchOpcode*/ 53|128,2/*309*/, TARGET_VAL(ISD::OR),// ->21876
/* 21567*/        OPC_Scope, 80|128,1/*208*/, /*->21778*/ // 2 children in Scope
/* 21570*/          OPC_MoveChild0,
/* 21571*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 21574*/          OPC_RecordMemRef,
/* 21575*/          OPC_RecordNode, // #2 = 'atomic_load' chained node
/* 21576*/          OPC_CheckFoldableChainNode,
/* 21577*/          OPC_CheckChild1Same, 1,
/* 21579*/          OPC_Scope, 37, /*->21618*/ // 6 children in Scope
/* 21581*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 21583*/            OPC_MoveParent,
/* 21584*/            OPC_RecordChild1, // #3 = $src
/* 21585*/            OPC_MoveChild1,
/* 21586*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21589*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 21591*/            OPC_MoveParent,
/* 21592*/            OPC_CheckType, MVT::i64,
/* 21594*/            OPC_MoveParent,
/* 21595*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 21597*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21600*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21604*/            OPC_EmitConvertToTarget, 3,
/* 21606*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_OR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src))<<P:Predicate_atomic_store_64>> - Complexity = 51
                      // Dst: (RELEASE_OR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/* 21618*/          /*Scope*/ 35, /*->21654*/
/* 21619*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 21621*/            OPC_MoveParent,
/* 21622*/            OPC_RecordChild1, // #3 = $src
/* 21623*/            OPC_MoveChild1,
/* 21624*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21627*/            OPC_MoveParent,
/* 21628*/            OPC_CheckType, MVT::i8,
/* 21630*/            OPC_MoveParent,
/* 21631*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 21633*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21636*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21640*/            OPC_EmitConvertToTarget, 3,
/* 21642*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_OR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, (imm:{ *:[i8] }):$src))<<P:Predicate_atomic_store_8>> - Complexity = 50
                      // Dst: (RELEASE_OR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/* 21654*/          /*Scope*/ 35, /*->21690*/
/* 21655*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 21657*/            OPC_MoveParent,
/* 21658*/            OPC_RecordChild1, // #3 = $src
/* 21659*/            OPC_MoveChild1,
/* 21660*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21663*/            OPC_MoveParent,
/* 21664*/            OPC_CheckType, MVT::i32,
/* 21666*/            OPC_MoveParent,
/* 21667*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 21669*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21672*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21676*/            OPC_EmitConvertToTarget, 3,
/* 21678*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_OR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, (imm:{ *:[i32] }):$src))<<P:Predicate_atomic_store_32>> - Complexity = 50
                      // Dst: (RELEASE_OR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 21690*/          /*Scope*/ 28, /*->21719*/
/* 21691*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 21693*/            OPC_MoveParent,
/* 21694*/            OPC_RecordChild1, // #3 = $src
/* 21695*/            OPC_CheckType, MVT::i8,
/* 21697*/            OPC_MoveParent,
/* 21698*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 21700*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21703*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21707*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_OR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, GR8:{ *:[i8] }:$src))<<P:Predicate_atomic_store_8>> - Complexity = 47
                      // Dst: (RELEASE_OR8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 21719*/          /*Scope*/ 28, /*->21748*/
/* 21720*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 21722*/            OPC_MoveParent,
/* 21723*/            OPC_RecordChild1, // #3 = $src
/* 21724*/            OPC_CheckType, MVT::i32,
/* 21726*/            OPC_MoveParent,
/* 21727*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 21729*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21732*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21736*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_OR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, GR32:{ *:[i32] }:$src))<<P:Predicate_atomic_store_32>> - Complexity = 47
                      // Dst: (RELEASE_OR32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 21748*/          /*Scope*/ 28, /*->21777*/
/* 21749*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 21751*/            OPC_MoveParent,
/* 21752*/            OPC_RecordChild1, // #3 = $src
/* 21753*/            OPC_CheckType, MVT::i64,
/* 21755*/            OPC_MoveParent,
/* 21756*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 21758*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21761*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21765*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_OR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, GR64:{ *:[i64] }:$src))<<P:Predicate_atomic_store_64>> - Complexity = 47
                      // Dst: (RELEASE_OR64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 21777*/          0, /*End of Scope*/
/* 21778*/        /*Scope*/ 96, /*->21875*/
/* 21779*/          OPC_RecordChild0, // #2 = $src
/* 21780*/          OPC_MoveChild1,
/* 21781*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 21784*/          OPC_RecordMemRef,
/* 21785*/          OPC_RecordNode, // #3 = 'atomic_load' chained node
/* 21786*/          OPC_CheckFoldableChainNode,
/* 21787*/          OPC_CheckChild1Same, 1,
/* 21789*/          OPC_Scope, 27, /*->21818*/ // 3 children in Scope
/* 21791*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 21793*/            OPC_MoveParent,
/* 21794*/            OPC_CheckType, MVT::i8,
/* 21796*/            OPC_MoveParent,
/* 21797*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 21799*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21802*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21806*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_OR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i8] } GR8:{ *:[i8] }:$src, (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>))<<P:Predicate_atomic_store_8>> - Complexity = 47
                      // Dst: (RELEASE_OR8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 21818*/          /*Scope*/ 27, /*->21846*/
/* 21819*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 21821*/            OPC_MoveParent,
/* 21822*/            OPC_CheckType, MVT::i32,
/* 21824*/            OPC_MoveParent,
/* 21825*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 21827*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21830*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21834*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_OR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i32] } GR32:{ *:[i32] }:$src, (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>))<<P:Predicate_atomic_store_32>> - Complexity = 47
                      // Dst: (RELEASE_OR32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 21846*/          /*Scope*/ 27, /*->21874*/
/* 21847*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 21849*/            OPC_MoveParent,
/* 21850*/            OPC_CheckType, MVT::i64,
/* 21852*/            OPC_MoveParent,
/* 21853*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 21855*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21858*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21862*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_OR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i64] } GR64:{ *:[i64] }:$src, (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>))<<P:Predicate_atomic_store_64>> - Complexity = 47
                      // Dst: (RELEASE_OR64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 21874*/          0, /*End of Scope*/
/* 21875*/        0, /*End of Scope*/
/* 21876*/      /*SwitchOpcode*/ 53|128,2/*309*/, TARGET_VAL(ISD::XOR),// ->22189
/* 21880*/        OPC_Scope, 80|128,1/*208*/, /*->22091*/ // 2 children in Scope
/* 21883*/          OPC_MoveChild0,
/* 21884*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 21887*/          OPC_RecordMemRef,
/* 21888*/          OPC_RecordNode, // #2 = 'atomic_load' chained node
/* 21889*/          OPC_CheckFoldableChainNode,
/* 21890*/          OPC_CheckChild1Same, 1,
/* 21892*/          OPC_Scope, 37, /*->21931*/ // 6 children in Scope
/* 21894*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 21896*/            OPC_MoveParent,
/* 21897*/            OPC_RecordChild1, // #3 = $src
/* 21898*/            OPC_MoveChild1,
/* 21899*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21902*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 21904*/            OPC_MoveParent,
/* 21905*/            OPC_CheckType, MVT::i64,
/* 21907*/            OPC_MoveParent,
/* 21908*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 21910*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21913*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21917*/            OPC_EmitConvertToTarget, 3,
/* 21919*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_XOR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src))<<P:Predicate_atomic_store_64>> - Complexity = 51
                      // Dst: (RELEASE_XOR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/* 21931*/          /*Scope*/ 35, /*->21967*/
/* 21932*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 21934*/            OPC_MoveParent,
/* 21935*/            OPC_RecordChild1, // #3 = $src
/* 21936*/            OPC_MoveChild1,
/* 21937*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21940*/            OPC_MoveParent,
/* 21941*/            OPC_CheckType, MVT::i8,
/* 21943*/            OPC_MoveParent,
/* 21944*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 21946*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21949*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21953*/            OPC_EmitConvertToTarget, 3,
/* 21955*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_XOR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, (imm:{ *:[i8] }):$src))<<P:Predicate_atomic_store_8>> - Complexity = 50
                      // Dst: (RELEASE_XOR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/* 21967*/          /*Scope*/ 35, /*->22003*/
/* 21968*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 21970*/            OPC_MoveParent,
/* 21971*/            OPC_RecordChild1, // #3 = $src
/* 21972*/            OPC_MoveChild1,
/* 21973*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21976*/            OPC_MoveParent,
/* 21977*/            OPC_CheckType, MVT::i32,
/* 21979*/            OPC_MoveParent,
/* 21980*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 21982*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21985*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 21989*/            OPC_EmitConvertToTarget, 3,
/* 21991*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_XOR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, (imm:{ *:[i32] }):$src))<<P:Predicate_atomic_store_32>> - Complexity = 50
                      // Dst: (RELEASE_XOR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 22003*/          /*Scope*/ 28, /*->22032*/
/* 22004*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 22006*/            OPC_MoveParent,
/* 22007*/            OPC_RecordChild1, // #3 = $src
/* 22008*/            OPC_CheckType, MVT::i8,
/* 22010*/            OPC_MoveParent,
/* 22011*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 22013*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 22016*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 22020*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_XOR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, GR8:{ *:[i8] }:$src))<<P:Predicate_atomic_store_8>> - Complexity = 47
                      // Dst: (RELEASE_XOR8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 22032*/          /*Scope*/ 28, /*->22061*/
/* 22033*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 22035*/            OPC_MoveParent,
/* 22036*/            OPC_RecordChild1, // #3 = $src
/* 22037*/            OPC_CheckType, MVT::i32,
/* 22039*/            OPC_MoveParent,
/* 22040*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 22042*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 22045*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 22049*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_XOR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, GR32:{ *:[i32] }:$src))<<P:Predicate_atomic_store_32>> - Complexity = 47
                      // Dst: (RELEASE_XOR32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 22061*/          /*Scope*/ 28, /*->22090*/
/* 22062*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 22064*/            OPC_MoveParent,
/* 22065*/            OPC_RecordChild1, // #3 = $src
/* 22066*/            OPC_CheckType, MVT::i64,
/* 22068*/            OPC_MoveParent,
/* 22069*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 22071*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 22074*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 22078*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_XOR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, GR64:{ *:[i64] }:$src))<<P:Predicate_atomic_store_64>> - Complexity = 47
                      // Dst: (RELEASE_XOR64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 22090*/          0, /*End of Scope*/
/* 22091*/        /*Scope*/ 96, /*->22188*/
/* 22092*/          OPC_RecordChild0, // #2 = $src
/* 22093*/          OPC_MoveChild1,
/* 22094*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 22097*/          OPC_RecordMemRef,
/* 22098*/          OPC_RecordNode, // #3 = 'atomic_load' chained node
/* 22099*/          OPC_CheckFoldableChainNode,
/* 22100*/          OPC_CheckChild1Same, 1,
/* 22102*/          OPC_Scope, 27, /*->22131*/ // 3 children in Scope
/* 22104*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/* 22106*/            OPC_MoveParent,
/* 22107*/            OPC_CheckType, MVT::i8,
/* 22109*/            OPC_MoveParent,
/* 22110*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 22112*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 22115*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 22119*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_XOR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i8] } GR8:{ *:[i8] }:$src, (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>))<<P:Predicate_atomic_store_8>> - Complexity = 47
                      // Dst: (RELEASE_XOR8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 22131*/          /*Scope*/ 27, /*->22159*/
/* 22132*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 22134*/            OPC_MoveParent,
/* 22135*/            OPC_CheckType, MVT::i32,
/* 22137*/            OPC_MoveParent,
/* 22138*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 22140*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 22143*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 22147*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_XOR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>))<<P:Predicate_atomic_store_32>> - Complexity = 47
                      // Dst: (RELEASE_XOR32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 22159*/          /*Scope*/ 27, /*->22187*/
/* 22160*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/* 22162*/            OPC_MoveParent,
/* 22163*/            OPC_CheckType, MVT::i64,
/* 22165*/            OPC_MoveParent,
/* 22166*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 22168*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 22171*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 22175*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RELEASE_XOR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>))<<P:Predicate_atomic_store_64>> - Complexity = 47
                      // Dst: (RELEASE_XOR64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 22187*/          0, /*End of Scope*/
/* 22188*/        0, /*End of Scope*/
/* 22189*/      0, // EndSwitchOpcode
/* 22190*/    /*Scope*/ 52|128,1/*180*/, /*->22372*/
/* 22192*/      OPC_RecordChild2, // #2 = $src
/* 22193*/      OPC_Scope, 96, /*->22291*/ // 5 children in Scope
/* 22195*/        OPC_MoveChild2,
/* 22196*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22199*/        OPC_SwitchType /*4 cases */, 22, MVT::i64,// ->22224
/* 22202*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 22204*/          OPC_MoveParent,
/* 22205*/          OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 22207*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22210*/          OPC_EmitMergeInputChains1_0,
/* 22211*/          OPC_EmitConvertToTarget, 2,
/* 22213*/          OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src)<<P:Predicate_atomic_store_64>> - Complexity = 26
                    // Dst: (RELEASE_MOV64mi32 addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/* 22224*/        /*SwitchType*/ 20, MVT::i8,// ->22246
/* 22226*/          OPC_MoveParent,
/* 22227*/          OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 22229*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22232*/          OPC_EmitMergeInputChains1_0,
/* 22233*/          OPC_EmitConvertToTarget, 2,
/* 22235*/          OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_MOV8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)<<P:Predicate_atomic_store_8>> - Complexity = 25
                    // Dst: (RELEASE_MOV8mi addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/* 22246*/        /*SwitchType*/ 20, MVT::i16,// ->22268
/* 22248*/          OPC_MoveParent,
/* 22249*/          OPC_CheckPredicate, 38, // Predicate_atomic_store_16
/* 22251*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22254*/          OPC_EmitMergeInputChains1_0,
/* 22255*/          OPC_EmitConvertToTarget, 2,
/* 22257*/          OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_MOV16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)<<P:Predicate_atomic_store_16>> - Complexity = 25
                    // Dst: (RELEASE_MOV16mi addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/* 22268*/        /*SwitchType*/ 20, MVT::i32,// ->22290
/* 22270*/          OPC_MoveParent,
/* 22271*/          OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 22273*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22276*/          OPC_EmitMergeInputChains1_0,
/* 22277*/          OPC_EmitConvertToTarget, 2,
/* 22279*/          OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_MOV32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)<<P:Predicate_atomic_store_32>> - Complexity = 25
                    // Dst: (RELEASE_MOV32mi addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 22290*/        0, // EndSwitchType
/* 22291*/      /*Scope*/ 19, /*->22311*/
/* 22292*/        OPC_CheckChild2Type, MVT::i8,
/* 22294*/        OPC_CheckPredicate, 37, // Predicate_atomic_store_8
/* 22296*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22299*/        OPC_EmitMergeInputChains1_0,
/* 22300*/        OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_MOV8mr), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 22311*/      /*Scope*/ 19, /*->22331*/
/* 22312*/        OPC_CheckChild2Type, MVT::i16,
/* 22314*/        OPC_CheckPredicate, 38, // Predicate_atomic_store_16
/* 22316*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22319*/        OPC_EmitMergeInputChains1_0,
/* 22320*/        OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_MOV16mr), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 22331*/      /*Scope*/ 19, /*->22351*/
/* 22332*/        OPC_CheckChild2Type, MVT::i32,
/* 22334*/        OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 22336*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22339*/        OPC_EmitMergeInputChains1_0,
/* 22340*/        OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_MOV32mr), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 22351*/      /*Scope*/ 19, /*->22371*/
/* 22352*/        OPC_CheckChild2Type, MVT::i64,
/* 22354*/        OPC_CheckPredicate, 36, // Predicate_atomic_store_64
/* 22356*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22359*/        OPC_EmitMergeInputChains1_0,
/* 22360*/        OPC_MorphNodeTo0, TARGET_VAL(X86::RELEASE_MOV64mr), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 22371*/      0, /*End of Scope*/
/* 22372*/    0, /*End of Scope*/
/* 22373*/  /*SwitchOpcode*/ 107|128,15/*2027*/, TARGET_VAL(ISD::SRL),// ->24404
/* 22377*/    OPC_Scope, 125|128,5/*765*/, /*->23145*/ // 2 children in Scope
/* 22380*/      OPC_MoveChild0,
/* 22381*/      OPC_SwitchOpcode /*3 cases */, 120|128,3/*504*/, TARGET_VAL(ISD::SHL),// ->22890
/* 22386*/        OPC_Scope, 26|128,2/*282*/, /*->22671*/ // 2 children in Scope
/* 22389*/          OPC_MoveChild0,
/* 22390*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 22393*/          OPC_RecordMemRef,
/* 22394*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 22395*/          OPC_CheckFoldableChainNode,
/* 22396*/          OPC_RecordChild1, // #1 = $src
/* 22397*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 22399*/          OPC_Scope, 60, /*->22461*/ // 4 children in Scope
/* 22401*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 22403*/            OPC_MoveParent,
/* 22404*/            OPC_MoveChild1,
/* 22405*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 22408*/            OPC_MoveChild0,
/* 22409*/            OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22412*/            OPC_CheckChild0Integer, 32, 
/* 22414*/            OPC_RecordChild1, // #2 = $lz
/* 22415*/            OPC_CheckType, MVT::i32,
/* 22417*/            OPC_MoveParent,
/* 22418*/            OPC_CheckType, MVT::i8,
/* 22420*/            OPC_MoveParent,
/* 22421*/            OPC_MoveParent,
/* 22422*/            OPC_MoveChild1,
/* 22423*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 22426*/            OPC_MoveChild0,
/* 22427*/            OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22430*/            OPC_CheckChild0Integer, 32, 
/* 22432*/            OPC_CheckChild1Same, 2,
/* 22434*/            OPC_CheckType, MVT::i32,
/* 22436*/            OPC_MoveParent,
/* 22437*/            OPC_CheckType, MVT::i8,
/* 22439*/            OPC_MoveParent,
/* 22440*/            OPC_CheckType, MVT::i32,
/* 22442*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 22444*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 22447*/            OPC_EmitMergeInputChains1_0,
/* 22448*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (srl:{ *:[i32] } (shl:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (trunc:{ *:[i8] } (sub:{ *:[i32] } 32:{ *:[i32] }, GR32:{ *:[i32] }:$lz))), (trunc:{ *:[i8] } (sub:{ *:[i32] } 32:{ *:[i32] }, GR32:{ *:[i32] }:$lz))) - Complexity = 50
                      // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, GR32:{ *:[i32] }:$lz)
/* 22461*/          /*Scope*/ 78, /*->22540*/
/* 22462*/            OPC_CheckPredicate, 9, // Predicate_load
/* 22464*/            OPC_MoveParent,
/* 22465*/            OPC_MoveChild1,
/* 22466*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 22469*/            OPC_MoveChild0,
/* 22470*/            OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22473*/            OPC_CheckChild0Integer, 64, 
/* 22475*/            OPC_RecordChild1, // #2 = $lz
/* 22476*/            OPC_CheckType, MVT::i32,
/* 22478*/            OPC_MoveParent,
/* 22479*/            OPC_CheckType, MVT::i8,
/* 22481*/            OPC_MoveParent,
/* 22482*/            OPC_MoveParent,
/* 22483*/            OPC_MoveChild1,
/* 22484*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 22487*/            OPC_MoveChild0,
/* 22488*/            OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22491*/            OPC_CheckChild0Integer, 64, 
/* 22493*/            OPC_CheckChild1Same, 2,
/* 22495*/            OPC_CheckType, MVT::i32,
/* 22497*/            OPC_MoveParent,
/* 22498*/            OPC_CheckType, MVT::i8,
/* 22500*/            OPC_MoveParent,
/* 22501*/            OPC_CheckType, MVT::i64,
/* 22503*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 22505*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 22508*/            OPC_EmitMergeInputChains1_0,
/* 22509*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #8
/* 22515*/            OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 22518*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 22527*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                      // Src: (srl:{ *:[i64] } (shl:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (trunc:{ *:[i8] } (sub:{ *:[i32] } 64:{ *:[i32] }, GR32:{ *:[i32] }:$lz))), (trunc:{ *:[i8] } (sub:{ *:[i32] } 64:{ *:[i32] }, GR32:{ *:[i32] }:$lz))) - Complexity = 50
                      // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR32:{ *:[i32] }:$lz, sub_32bit:{ *:[i32] }))
/* 22540*/          /*Scope*/ 64, /*->22605*/
/* 22541*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 22543*/            OPC_MoveParent,
/* 22544*/            OPC_MoveChild1,
/* 22545*/            OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22548*/            OPC_CheckChild0Integer, 32, 
/* 22550*/            OPC_RecordChild1, // #2 = $lz
/* 22551*/            OPC_CheckType, MVT::i8,
/* 22553*/            OPC_MoveParent,
/* 22554*/            OPC_MoveParent,
/* 22555*/            OPC_MoveChild1,
/* 22556*/            OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22559*/            OPC_CheckChild0Integer, 32, 
/* 22561*/            OPC_CheckChild1Same, 2,
/* 22563*/            OPC_CheckType, MVT::i8,
/* 22565*/            OPC_MoveParent,
/* 22566*/            OPC_CheckType, MVT::i32,
/* 22568*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 22570*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 22573*/            OPC_EmitMergeInputChains1_0,
/* 22574*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #8
/* 22580*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 22583*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 22592*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                      // Src: (srl:{ *:[i32] } (shl:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (sub:{ *:[i8] } 32:{ *:[i8] }, GR8:{ *:[i8] }:$lz)), (sub:{ *:[i8] } 32:{ *:[i8] }, GR8:{ *:[i8] }:$lz)) - Complexity = 44
                      // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 22605*/          /*Scope*/ 64, /*->22670*/
/* 22606*/            OPC_CheckPredicate, 9, // Predicate_load
/* 22608*/            OPC_MoveParent,
/* 22609*/            OPC_MoveChild1,
/* 22610*/            OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22613*/            OPC_CheckChild0Integer, 64, 
/* 22615*/            OPC_RecordChild1, // #2 = $lz
/* 22616*/            OPC_CheckType, MVT::i8,
/* 22618*/            OPC_MoveParent,
/* 22619*/            OPC_MoveParent,
/* 22620*/            OPC_MoveChild1,
/* 22621*/            OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22624*/            OPC_CheckChild0Integer, 64, 
/* 22626*/            OPC_CheckChild1Same, 2,
/* 22628*/            OPC_CheckType, MVT::i8,
/* 22630*/            OPC_MoveParent,
/* 22631*/            OPC_CheckType, MVT::i64,
/* 22633*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 22635*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 22638*/            OPC_EmitMergeInputChains1_0,
/* 22639*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #8
/* 22645*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 22648*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 22657*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                      // Src: (srl:{ *:[i64] } (shl:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (sub:{ *:[i8] } 64:{ *:[i8] }, GR8:{ *:[i8] }:$lz)), (sub:{ *:[i8] } 64:{ *:[i8] }, GR8:{ *:[i8] }:$lz)) - Complexity = 44
                      // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 22670*/          0, /*End of Scope*/
/* 22671*/        /*Scope*/ 88|128,1/*216*/, /*->22889*/
/* 22673*/          OPC_RecordChild0, // #0 = $src
/* 22674*/          OPC_MoveChild1,
/* 22675*/          OPC_SwitchOpcode /*2 cases */, 106, TARGET_VAL(ISD::TRUNCATE),// ->22785
/* 22679*/            OPC_MoveChild0,
/* 22680*/            OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22683*/            OPC_CheckType, MVT::i32,
/* 22685*/            OPC_Scope, 39, /*->22726*/ // 2 children in Scope
/* 22687*/              OPC_CheckChild0Integer, 32, 
/* 22689*/              OPC_RecordChild1, // #1 = $lz
/* 22690*/              OPC_MoveParent,
/* 22691*/              OPC_CheckType, MVT::i8,
/* 22693*/              OPC_MoveParent,
/* 22694*/              OPC_MoveParent,
/* 22695*/              OPC_MoveChild1,
/* 22696*/              OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 22699*/              OPC_MoveChild0,
/* 22700*/              OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22703*/              OPC_CheckChild0Integer, 32, 
/* 22705*/              OPC_CheckChild1Same, 1,
/* 22707*/              OPC_CheckType, MVT::i32,
/* 22709*/              OPC_MoveParent,
/* 22710*/              OPC_CheckType, MVT::i8,
/* 22712*/              OPC_MoveParent,
/* 22713*/              OPC_CheckType, MVT::i32,
/* 22715*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 22717*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                        // Src: (srl:{ *:[i32] } (shl:{ *:[i32] } GR32:{ *:[i32] }:$src, (trunc:{ *:[i8] } (sub:{ *:[i32] } 32:{ *:[i32] }, GR32:{ *:[i32] }:$lz))), (trunc:{ *:[i8] } (sub:{ *:[i32] } 32:{ *:[i32] }, GR32:{ *:[i32] }:$lz))) - Complexity = 28
                        // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, GR32:{ *:[i32] }:$lz)
/* 22726*/            /*Scope*/ 57, /*->22784*/
/* 22727*/              OPC_CheckChild0Integer, 64, 
/* 22729*/              OPC_RecordChild1, // #1 = $lz
/* 22730*/              OPC_MoveParent,
/* 22731*/              OPC_CheckType, MVT::i8,
/* 22733*/              OPC_MoveParent,
/* 22734*/              OPC_MoveParent,
/* 22735*/              OPC_MoveChild1,
/* 22736*/              OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 22739*/              OPC_MoveChild0,
/* 22740*/              OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22743*/              OPC_CheckChild0Integer, 64, 
/* 22745*/              OPC_CheckChild1Same, 1,
/* 22747*/              OPC_CheckType, MVT::i32,
/* 22749*/              OPC_MoveParent,
/* 22750*/              OPC_CheckType, MVT::i8,
/* 22752*/              OPC_MoveParent,
/* 22753*/              OPC_CheckType, MVT::i64,
/* 22755*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 22757*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 22763*/              OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 22766*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 22775*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                            MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                        // Src: (srl:{ *:[i64] } (shl:{ *:[i64] } GR64:{ *:[i64] }:$src, (trunc:{ *:[i8] } (sub:{ *:[i32] } 64:{ *:[i32] }, GR32:{ *:[i32] }:$lz))), (trunc:{ *:[i8] } (sub:{ *:[i32] } 64:{ *:[i32] }, GR32:{ *:[i32] }:$lz))) - Complexity = 28
                        // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR32:{ *:[i32] }:$lz, sub_32bit:{ *:[i32] }))
/* 22784*/            0, /*End of Scope*/
/* 22785*/          /*SwitchOpcode*/ 100, TARGET_VAL(ISD::SUB),// ->22888
/* 22788*/            OPC_CheckType, MVT::i8,
/* 22790*/            OPC_Scope, 47, /*->22839*/ // 2 children in Scope
/* 22792*/              OPC_CheckChild0Integer, 32, 
/* 22794*/              OPC_RecordChild1, // #1 = $lz
/* 22795*/              OPC_MoveParent,
/* 22796*/              OPC_MoveParent,
/* 22797*/              OPC_MoveChild1,
/* 22798*/              OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22801*/              OPC_CheckChild0Integer, 32, 
/* 22803*/              OPC_CheckChild1Same, 1,
/* 22805*/              OPC_CheckType, MVT::i8,
/* 22807*/              OPC_MoveParent,
/* 22808*/              OPC_CheckType, MVT::i32,
/* 22810*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 22812*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/* 22818*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 22821*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 22830*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4, 
                        // Src: (srl:{ *:[i32] } (shl:{ *:[i32] } GR32:{ *:[i32] }:$src, (sub:{ *:[i8] } 32:{ *:[i8] }, GR8:{ *:[i8] }:$lz)), (sub:{ *:[i8] } 32:{ *:[i8] }, GR8:{ *:[i8] }:$lz)) - Complexity = 22
                        // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 22839*/            /*Scope*/ 47, /*->22887*/
/* 22840*/              OPC_CheckChild0Integer, 64, 
/* 22842*/              OPC_RecordChild1, // #1 = $lz
/* 22843*/              OPC_MoveParent,
/* 22844*/              OPC_MoveParent,
/* 22845*/              OPC_MoveChild1,
/* 22846*/              OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 22849*/              OPC_CheckChild0Integer, 64, 
/* 22851*/              OPC_CheckChild1Same, 1,
/* 22853*/              OPC_CheckType, MVT::i8,
/* 22855*/              OPC_MoveParent,
/* 22856*/              OPC_CheckType, MVT::i64,
/* 22858*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 22860*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 22866*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 22869*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 22878*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                            MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                        // Src: (srl:{ *:[i64] } (shl:{ *:[i64] } GR64:{ *:[i64] }:$src, (sub:{ *:[i8] } 64:{ *:[i8] }, GR8:{ *:[i8] }:$lz)), (sub:{ *:[i8] } 64:{ *:[i8] }, GR8:{ *:[i8] }:$lz)) - Complexity = 22
                        // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 22887*/            0, /*End of Scope*/
/* 22888*/          0, // EndSwitchOpcode
/* 22889*/        0, /*End of Scope*/
/* 22890*/      /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(ISD::LOAD),// ->23106
/* 22894*/        OPC_RecordMemRef,
/* 22895*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 22896*/        OPC_CheckFoldableChainNode,
/* 22897*/        OPC_RecordChild1, // #1 = $src1
/* 22898*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 22900*/        OPC_Scope, 56, /*->22958*/ // 4 children in Scope
/* 22902*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 22904*/          OPC_MoveParent,
/* 22905*/          OPC_MoveChild1,
/* 22906*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 22909*/          OPC_RecordChild0, // #2 = $src2
/* 22910*/          OPC_MoveChild1,
/* 22911*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22914*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/* 22916*/          OPC_MoveParent,
/* 22917*/          OPC_CheckType, MVT::i8,
/* 22919*/          OPC_MoveParent,
/* 22920*/          OPC_CheckType, MVT::i32,
/* 22922*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 22924*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 22927*/          OPC_EmitMergeInputChains1_0,
/* 22928*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/* 22934*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 22937*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 22946*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRX32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                    // Src: (srl:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 32
                    // Dst: (SHRX32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 22958*/        /*Scope*/ 56, /*->23015*/
/* 22959*/          OPC_CheckPredicate, 9, // Predicate_load
/* 22961*/          OPC_MoveParent,
/* 22962*/          OPC_MoveChild1,
/* 22963*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 22966*/          OPC_RecordChild0, // #2 = $src2
/* 22967*/          OPC_MoveChild1,
/* 22968*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22971*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/* 22973*/          OPC_MoveParent,
/* 22974*/          OPC_CheckType, MVT::i8,
/* 22976*/          OPC_MoveParent,
/* 22977*/          OPC_CheckType, MVT::i64,
/* 22979*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 22981*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 22984*/          OPC_EmitMergeInputChains1_0,
/* 22985*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #8
/* 22991*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 22994*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 23003*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRX64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                    // Src: (srl:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 32
                    // Dst: (SHRX64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 23015*/        /*Scope*/ 44, /*->23060*/
/* 23016*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 23018*/          OPC_MoveParent,
/* 23019*/          OPC_RecordChild1, // #2 = $src2
/* 23020*/          OPC_CheckChild1Type, MVT::i8,
/* 23022*/          OPC_CheckType, MVT::i32,
/* 23024*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 23026*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 23029*/          OPC_EmitMergeInputChains1_0,
/* 23030*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/* 23036*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 23039*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 23048*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRX32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                    // Src: (srl:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR8:{ *:[i8] }:$src2) - Complexity = 25
                    // Dst: (SHRX32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 23060*/        /*Scope*/ 44, /*->23105*/
/* 23061*/          OPC_CheckPredicate, 9, // Predicate_load
/* 23063*/          OPC_MoveParent,
/* 23064*/          OPC_RecordChild1, // #2 = $src2
/* 23065*/          OPC_CheckChild1Type, MVT::i8,
/* 23067*/          OPC_CheckType, MVT::i64,
/* 23069*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 23071*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 23074*/          OPC_EmitMergeInputChains1_0,
/* 23075*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #8
/* 23081*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 23084*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 23093*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRX64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                    // Src: (srl:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:{ *:[i8] }:$src2) - Complexity = 25
                    // Dst: (SHRX64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 23105*/        0, /*End of Scope*/
/* 23106*/      /*SwitchOpcode*/ 35, TARGET_VAL(ISD::AND),// ->23144
/* 23109*/        OPC_RecordChild0, // #0 = $src
/* 23110*/        OPC_MoveChild1,
/* 23111*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 23114*/        OPC_CheckPredicate, 39, // Predicate_immff00_ffff
/* 23116*/        OPC_MoveParent,
/* 23117*/        OPC_CheckPredicate, 17, // Predicate_and_su
/* 23119*/        OPC_MoveParent,
/* 23120*/        OPC_CheckChild1Integer, 8, 
/* 23122*/        OPC_CheckChild1Type, MVT::i8,
/* 23124*/        OPC_CheckType, MVT::i32,
/* 23126*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 23129*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23137*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                      MVT::i32, 1/*#Ops*/, 2, 
                  // Src: (srl:{ *:[i32] } (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immff00_ffff>>)<<P:Predicate_and_su>>, 8:{ *:[i8] }) - Complexity = 16
                  // Dst: (MOVZX32rr8_NOREX:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR32:{ *:[i32] }:$src, sub_8bit_hi:{ *:[i32] }))
/* 23144*/      0, // EndSwitchOpcode
/* 23145*/    /*Scope*/ 104|128,9/*1256*/, /*->24403*/
/* 23147*/      OPC_RecordChild0, // #0 = $src1
/* 23148*/      OPC_Scope, 25|128,1/*153*/, /*->23304*/ // 6 children in Scope
/* 23151*/        OPC_MoveChild1,
/* 23152*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 23155*/        OPC_RecordChild0, // #1 = $src2
/* 23156*/        OPC_MoveChild1,
/* 23157*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 23160*/        OPC_Scope, 36, /*->23198*/ // 4 children in Scope
/* 23162*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/* 23164*/          OPC_MoveParent,
/* 23165*/          OPC_CheckType, MVT::i8,
/* 23167*/          OPC_MoveParent,
/* 23168*/          OPC_CheckType, MVT::i32,
/* 23170*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 23172*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 23178*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 23181*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 23190*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRX32rr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 4, 
                    // Src: (srl:{ *:[i32] } GR32:{ *:[i32] }:$src1, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 11
                    // Dst: (SHRX32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 23198*/        /*Scope*/ 36, /*->23235*/
/* 23199*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/* 23201*/          OPC_MoveParent,
/* 23202*/          OPC_CheckType, MVT::i8,
/* 23204*/          OPC_MoveParent,
/* 23205*/          OPC_CheckType, MVT::i64,
/* 23207*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 23209*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 23215*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 23218*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 23227*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHRX64rr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 4, 
                    // Src: (srl:{ *:[i64] } GR64:{ *:[i64] }:$src1, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 11
                    // Dst: (SHRX64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 23235*/        /*Scope*/ 47, /*->23283*/
/* 23236*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/* 23238*/          OPC_MoveParent,
/* 23239*/          OPC_CheckType, MVT::i8,
/* 23241*/          OPC_MoveParent,
/* 23242*/          OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->23256
/* 23245*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 23248*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHR8rCL), 0|OPFL_GlueInput,
                          MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (srl:{ *:[i8] } GR8:{ *:[i8] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                      // Dst: (SHR8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 23256*/          /*SwitchType*/ 11, MVT::i16,// ->23269
/* 23258*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 23261*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHR16rCL), 0|OPFL_GlueInput,
                          MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (srl:{ *:[i16] } GR16:{ *:[i16] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                      // Dst: (SHR16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 23269*/          /*SwitchType*/ 11, MVT::i32,// ->23282
/* 23271*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 23274*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHR32rCL), 0|OPFL_GlueInput,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (srl:{ *:[i32] } GR32:{ *:[i32] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                      // Dst: (SHR32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 23282*/          0, // EndSwitchType
/* 23283*/        /*Scope*/ 19, /*->23303*/
/* 23284*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/* 23286*/          OPC_MoveParent,
/* 23287*/          OPC_CheckType, MVT::i8,
/* 23289*/          OPC_MoveParent,
/* 23290*/          OPC_CheckType, MVT::i64,
/* 23292*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 23295*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHR64rCL), 0|OPFL_GlueInput,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:{ *:[i64] } GR64:{ *:[i64] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 10
                    // Dst: (SHR64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 23303*/        0, /*End of Scope*/
/* 23304*/      /*Scope*/ 46, /*->23351*/
/* 23305*/        OPC_CheckChild1Integer, 1, 
/* 23307*/        OPC_CheckChild1Type, MVT::i8,
/* 23309*/        OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->23320
/* 23312*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHR8r1), 0,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:{ *:[i8] } GR8:{ *:[i8] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (SHR8r1:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 23320*/        /*SwitchType*/ 8, MVT::i16,// ->23330
/* 23322*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHR16r1), 0,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:{ *:[i16] } GR16:{ *:[i16] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (SHR16r1:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 23330*/        /*SwitchType*/ 8, MVT::i32,// ->23340
/* 23332*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHR32r1), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:{ *:[i32] } GR32:{ *:[i32] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (SHR32r1:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 23340*/        /*SwitchType*/ 8, MVT::i64,// ->23350
/* 23342*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHR64r1), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:{ *:[i64] } GR64:{ *:[i64] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (SHR64r1:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 23350*/        0, // EndSwitchType
/* 23351*/      /*Scope*/ 35, /*->23387*/
/* 23352*/        OPC_CheckChild1Integer, 8, 
/* 23354*/        OPC_CheckChild1Type, MVT::i8,
/* 23356*/        OPC_CheckType, MVT::i16,
/* 23358*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 23361*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23369*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                      MVT::i32, 1/*#Ops*/, 2,  // Results = #3
/* 23376*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 23379*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 3, 4, 
                  // Src: (srl:{ *:[i16] } GR16:{ *:[i16] }:$src, 8:{ *:[i8] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[i16] } (MOVZX32rr8_NOREX:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR16:{ *:[i16] }:$src, sub_8bit_hi:{ *:[i32] })), sub_16bit:{ *:[i32] })
/* 23387*/      /*Scope*/ 58|128,1/*186*/, /*->23575*/
/* 23389*/        OPC_RecordChild1, // #1 = $src2
/* 23390*/        OPC_Scope, 61, /*->23453*/ // 2 children in Scope
/* 23392*/          OPC_MoveChild1,
/* 23393*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 23396*/          OPC_CheckType, MVT::i8,
/* 23398*/          OPC_MoveParent,
/* 23399*/          OPC_SwitchType /*4 cases */, 11, MVT::i8,// ->23413
/* 23402*/            OPC_EmitConvertToTarget, 1,
/* 23404*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHR8ri), 0,
                          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)
/* 23413*/          /*SwitchType*/ 11, MVT::i16,// ->23426
/* 23415*/            OPC_EmitConvertToTarget, 1,
/* 23417*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHR16ri), 0,
                          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)
/* 23426*/          /*SwitchType*/ 11, MVT::i32,// ->23439
/* 23428*/            OPC_EmitConvertToTarget, 1,
/* 23430*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHR32ri), 0,
                          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)
/* 23439*/          /*SwitchType*/ 11, MVT::i64,// ->23452
/* 23441*/            OPC_EmitConvertToTarget, 1,
/* 23443*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHR64ri), 0,
                          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)
/* 23452*/          0, // EndSwitchType
/* 23453*/        /*Scope*/ 120, /*->23574*/
/* 23454*/          OPC_CheckChild1Type, MVT::i8,
/* 23456*/          OPC_SwitchType /*4 cases */, 43, MVT::i32,// ->23502
/* 23459*/            OPC_Scope, 28, /*->23489*/ // 2 children in Scope
/* 23461*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 23463*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/* 23469*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 23472*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 23481*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SHRX32rr), 0,
                            MVT::i32, 2/*#Ops*/, 0, 4, 
                        // Src: (srl:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR8:{ *:[i8] }:$src2) - Complexity = 4
                        // Dst: (SHRX32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 23489*/            /*Scope*/ 11, /*->23501*/
/* 23490*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 23493*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SHR32rCL), 0|OPFL_GlueInput,
                            MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (srl:{ *:[i32] } GR32:{ *:[i32] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                        // Dst: (SHR32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 23501*/            0, /*End of Scope*/
/* 23502*/          /*SwitchType*/ 43, MVT::i64,// ->23547
/* 23504*/            OPC_Scope, 28, /*->23534*/ // 2 children in Scope
/* 23506*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 23508*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 23514*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 23517*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 23526*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SHRX64rr), 0,
                            MVT::i64, 2/*#Ops*/, 0, 4, 
                        // Src: (srl:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR8:{ *:[i8] }:$src2) - Complexity = 4
                        // Dst: (SHRX64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 23534*/            /*Scope*/ 11, /*->23546*/
/* 23535*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 23538*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SHR64rCL), 0|OPFL_GlueInput,
                            MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (srl:{ *:[i64] } GR64:{ *:[i64] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                        // Dst: (SHR64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 23546*/            0, /*End of Scope*/
/* 23547*/          /*SwitchType*/ 11, MVT::i8,// ->23560
/* 23549*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 23552*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHR8rCL), 0|OPFL_GlueInput,
                          MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (srl:{ *:[i8] } GR8:{ *:[i8] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                      // Dst: (SHR8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 23560*/          /*SwitchType*/ 11, MVT::i16,// ->23573
/* 23562*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 23565*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHR16rCL), 0|OPFL_GlueInput,
                          MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (srl:{ *:[i16] } GR16:{ *:[i16] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                      // Dst: (SHR16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 23573*/          0, // EndSwitchType
/* 23574*/        0, /*End of Scope*/
/* 23575*/      /*Scope*/ 4|128,4/*516*/, /*->24093*/
/* 23577*/        OPC_MoveChild1,
/* 23578*/        OPC_SwitchOpcode /*3 cases */, 85|128,1/*213*/, TARGET_VAL(ISD::BITCAST),// ->23796
/* 23583*/          OPC_MoveChild0,
/* 23584*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23587*/          OPC_RecordMemRef,
/* 23588*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 23589*/          OPC_CheckFoldableChainNode,
/* 23590*/          OPC_RecordChild1, // #2 = $src2
/* 23591*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23593*/          OPC_CheckPredicate, 9, // Predicate_load
/* 23595*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 23597*/          OPC_SwitchType /*3 cases */, 71, MVT::v2i64,// ->23671
/* 23600*/            OPC_MoveParent,
/* 23601*/            OPC_SwitchType /*2 cases */, 43, MVT::v4i32,// ->23647
/* 23604*/              OPC_MoveParent,
/* 23605*/              OPC_CheckType, MVT::v4i32,
/* 23607*/              OPC_Scope, 18, /*->23627*/ // 2 children in Scope
/* 23609*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 23611*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23614*/                OPC_EmitMergeInputChains1_1,
/* 23615*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (srl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSRLVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23627*/              /*Scope*/ 18, /*->23646*/
/* 23628*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 23630*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23633*/                OPC_EmitMergeInputChains1_1,
/* 23634*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (srl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSRLVDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23646*/              0, /*End of Scope*/
/* 23647*/            /*SwitchType*/ 21, MVT::v8i16,// ->23670
/* 23649*/              OPC_MoveParent,
/* 23650*/              OPC_CheckType, MVT::v8i16,
/* 23652*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 23654*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23657*/              OPC_EmitMergeInputChains1_1,
/* 23658*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRLVWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23670*/            0, // EndSwitchType
/* 23671*/          /*SwitchType*/ 71, MVT::v4i64,// ->23744
/* 23673*/            OPC_MoveParent,
/* 23674*/            OPC_SwitchType /*2 cases */, 43, MVT::v8i32,// ->23720
/* 23677*/              OPC_MoveParent,
/* 23678*/              OPC_CheckType, MVT::v8i32,
/* 23680*/              OPC_Scope, 18, /*->23700*/ // 2 children in Scope
/* 23682*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 23684*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23687*/                OPC_EmitMergeInputChains1_1,
/* 23688*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (srl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSRLVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23700*/              /*Scope*/ 18, /*->23719*/
/* 23701*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 23703*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23706*/                OPC_EmitMergeInputChains1_1,
/* 23707*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (srl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSRLVDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23719*/              0, /*End of Scope*/
/* 23720*/            /*SwitchType*/ 21, MVT::v16i16,// ->23743
/* 23722*/              OPC_MoveParent,
/* 23723*/              OPC_CheckType, MVT::v16i16,
/* 23725*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 23727*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23730*/              OPC_EmitMergeInputChains1_1,
/* 23731*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRLVWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23743*/            0, // EndSwitchType
/* 23744*/          /*SwitchType*/ 49, MVT::v8i64,// ->23795
/* 23746*/            OPC_MoveParent,
/* 23747*/            OPC_SwitchType /*2 cases */, 21, MVT::v16i32,// ->23771
/* 23750*/              OPC_MoveParent,
/* 23751*/              OPC_CheckType, MVT::v16i32,
/* 23753*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 23755*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23758*/              OPC_EmitMergeInputChains1_1,
/* 23759*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRLVDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23771*/            /*SwitchType*/ 21, MVT::v32i16,// ->23794
/* 23773*/              OPC_MoveParent,
/* 23774*/              OPC_CheckType, MVT::v32i16,
/* 23776*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 23778*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23781*/              OPC_EmitMergeInputChains1_1,
/* 23782*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRLVWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23794*/            0, // EndSwitchType
/* 23795*/          0, // EndSwitchType
/* 23796*/        /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST),// ->23964
/* 23800*/          OPC_MoveChild0,
/* 23801*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23804*/          OPC_RecordMemRef,
/* 23805*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 23806*/          OPC_CheckFoldableChainNode,
/* 23807*/          OPC_RecordChild1, // #2 = $src2
/* 23808*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23810*/          OPC_SwitchType /*2 cases */, 74, MVT::i32,// ->23887
/* 23813*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 23815*/            OPC_MoveParent,
/* 23816*/            OPC_SwitchType /*3 cases */, 21, MVT::v16i32,// ->23840
/* 23819*/              OPC_MoveParent,
/* 23820*/              OPC_CheckType, MVT::v16i32,
/* 23822*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 23824*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23827*/              OPC_EmitMergeInputChains1_1,
/* 23828*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSRLVDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23840*/            /*SwitchType*/ 21, MVT::v8i32,// ->23863
/* 23842*/              OPC_MoveParent,
/* 23843*/              OPC_CheckType, MVT::v8i32,
/* 23845*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 23847*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23850*/              OPC_EmitMergeInputChains1_1,
/* 23851*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSRLVDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23863*/            /*SwitchType*/ 21, MVT::v4i32,// ->23886
/* 23865*/              OPC_MoveParent,
/* 23866*/              OPC_CheckType, MVT::v4i32,
/* 23868*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 23870*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23873*/              OPC_EmitMergeInputChains1_1,
/* 23874*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSRLVDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23886*/            0, // EndSwitchType
/* 23887*/          /*SwitchType*/ 74, MVT::i64,// ->23963
/* 23889*/            OPC_CheckPredicate, 9, // Predicate_load
/* 23891*/            OPC_MoveParent,
/* 23892*/            OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->23916
/* 23895*/              OPC_MoveParent,
/* 23896*/              OPC_CheckType, MVT::v8i64,
/* 23898*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 23900*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23903*/              OPC_EmitMergeInputChains1_1,
/* 23904*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSRLVQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23916*/            /*SwitchType*/ 21, MVT::v4i64,// ->23939
/* 23918*/              OPC_MoveParent,
/* 23919*/              OPC_CheckType, MVT::v4i64,
/* 23921*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 23923*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23926*/              OPC_EmitMergeInputChains1_1,
/* 23927*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSRLVQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23939*/            /*SwitchType*/ 21, MVT::v2i64,// ->23962
/* 23941*/              OPC_MoveParent,
/* 23942*/              OPC_CheckType, MVT::v2i64,
/* 23944*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 23946*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23949*/              OPC_EmitMergeInputChains1_1,
/* 23950*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSRLVQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 23962*/            0, // EndSwitchType
/* 23963*/          0, // EndSwitchType
/* 23964*/        /*SwitchOpcode*/ 125, TARGET_VAL(ISD::LOAD),// ->24092
/* 23967*/          OPC_RecordMemRef,
/* 23968*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 23969*/          OPC_CheckFoldableChainNode,
/* 23970*/          OPC_RecordChild1, // #2 = $src2
/* 23971*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23973*/          OPC_CheckPredicate, 9, // Predicate_load
/* 23975*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 23977*/          OPC_SwitchType /*3 cases */, 43, MVT::v2i64,// ->24023
/* 23980*/            OPC_MoveParent,
/* 23981*/            OPC_CheckType, MVT::v2i64,
/* 23983*/            OPC_Scope, 18, /*->24003*/ // 2 children in Scope
/* 23985*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 23987*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23990*/              OPC_EmitMergeInputChains1_1,
/* 23991*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPSRLVQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 24003*/            /*Scope*/ 18, /*->24022*/
/* 24004*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 24006*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24009*/              OPC_EmitMergeInputChains1_1,
/* 24010*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPSRLVQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 24022*/            0, /*End of Scope*/
/* 24023*/          /*SwitchType*/ 43, MVT::v4i64,// ->24068
/* 24025*/            OPC_MoveParent,
/* 24026*/            OPC_CheckType, MVT::v4i64,
/* 24028*/            OPC_Scope, 18, /*->24048*/ // 2 children in Scope
/* 24030*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 24032*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24035*/              OPC_EmitMergeInputChains1_1,
/* 24036*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPSRLVQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 24048*/            /*Scope*/ 18, /*->24067*/
/* 24049*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 24051*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24054*/              OPC_EmitMergeInputChains1_1,
/* 24055*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (srl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPSRLVQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 24067*/            0, /*End of Scope*/
/* 24068*/          /*SwitchType*/ 21, MVT::v8i64,// ->24091
/* 24070*/            OPC_MoveParent,
/* 24071*/            OPC_CheckType, MVT::v8i64,
/* 24073*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 24075*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24078*/            OPC_EmitMergeInputChains1_1,
/* 24079*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (srl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRLVQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 24091*/          0, // EndSwitchType
/* 24092*/        0, // EndSwitchOpcode
/* 24093*/      /*Scope*/ 51|128,2/*307*/, /*->24402*/
/* 24095*/        OPC_RecordChild1, // #1 = $src2
/* 24096*/        OPC_SwitchType /*9 cases */, 26, MVT::v4i32,// ->24125
/* 24099*/          OPC_CheckChild1Type, MVT::v4i32,
/* 24101*/          OPC_Scope, 10, /*->24113*/ // 2 children in Scope
/* 24103*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 24105*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRLVDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 24113*/          /*Scope*/ 10, /*->24124*/
/* 24114*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 24116*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRLVDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/* 24124*/          0, /*End of Scope*/
/* 24125*/        /*SwitchType*/ 26, MVT::v8i32,// ->24153
/* 24127*/          OPC_CheckChild1Type, MVT::v8i32,
/* 24129*/          OPC_Scope, 10, /*->24141*/ // 2 children in Scope
/* 24131*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 24133*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDYrr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRLVDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/* 24141*/          /*Scope*/ 10, /*->24152*/
/* 24142*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 24144*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRLVDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/* 24152*/          0, /*End of Scope*/
/* 24153*/        /*SwitchType*/ 26, MVT::v2i64,// ->24181
/* 24155*/          OPC_CheckChild1Type, MVT::v2i64,
/* 24157*/          OPC_Scope, 10, /*->24169*/ // 2 children in Scope
/* 24159*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 24161*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQrr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRLVQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 24169*/          /*Scope*/ 10, /*->24180*/
/* 24170*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 24172*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRLVQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 24180*/          0, /*End of Scope*/
/* 24181*/        /*SwitchType*/ 26, MVT::v4i64,// ->24209
/* 24183*/          OPC_CheckChild1Type, MVT::v4i64,
/* 24185*/          OPC_Scope, 10, /*->24197*/ // 2 children in Scope
/* 24187*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 24189*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQYrr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRLVQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 24197*/          /*Scope*/ 10, /*->24208*/
/* 24198*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 24200*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRLVQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 24208*/          0, /*End of Scope*/
/* 24209*/        /*SwitchType*/ 12, MVT::v16i32,// ->24223
/* 24211*/          OPC_CheckChild1Type, MVT::v16i32,
/* 24213*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 24215*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (srl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/* 24223*/        /*SwitchType*/ 12, MVT::v8i64,// ->24237
/* 24225*/          OPC_CheckChild1Type, MVT::v8i64,
/* 24227*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 24229*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrr), 0,
                        MVT::v8i64, 2/*#Ops*/, 0, 1, 
                    // Src: (srl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 24237*/        /*SwitchType*/ 12, MVT::v32i16,// ->24251
/* 24239*/          OPC_CheckChild1Type, MVT::v32i16,
/* 24241*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 24243*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZrr), 0,
                        MVT::v32i16, 2/*#Ops*/, 0, 1, 
                    // Src: (srl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/* 24251*/        /*SwitchType*/ 73, MVT::v16i16,// ->24326
/* 24253*/          OPC_CheckChild1Type, MVT::v16i16,
/* 24255*/          OPC_Scope, 10, /*->24267*/ // 2 children in Scope
/* 24257*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 24259*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ256rr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRLVWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/* 24267*/          /*Scope*/ 57, /*->24325*/
/* 24268*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 24270*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #2
/* 24276*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 24279*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 24288*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 24294*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 24297*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 24306*/            OPC_EmitNode1, TARGET_VAL(X86::VPSRLVWZrr), 0,
                          MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/* 24314*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 24317*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i16, 2/*#Ops*/, 8, 9, 
                      // Src: (srl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v16i16] } (VPSRLVWZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/* 24325*/          0, /*End of Scope*/
/* 24326*/        /*SwitchType*/ 73, MVT::v8i16,// ->24401
/* 24328*/          OPC_CheckChild1Type, MVT::v8i16,
/* 24330*/          OPC_Scope, 10, /*->24342*/ // 2 children in Scope
/* 24332*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 24334*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ128rr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRLVWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/* 24342*/          /*Scope*/ 57, /*->24400*/
/* 24343*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 24345*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #2
/* 24351*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 24354*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 24363*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 24369*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 24372*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 24381*/            OPC_EmitNode1, TARGET_VAL(X86::VPSRLVWZrr), 0,
                          MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/* 24389*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 24392*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 8, 9, 
                      // Src: (srl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } (VPSRLVWZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/* 24400*/          0, /*End of Scope*/
/* 24401*/        0, // EndSwitchType
/* 24402*/      0, /*End of Scope*/
/* 24403*/    0, /*End of Scope*/
/* 24404*/  /*SwitchOpcode*/ 77|128,8|128,3/*50253*/, TARGET_VAL(ISD::AND),// ->74662
/* 24409*/    OPC_Scope, 103|128,10/*1383*/, /*->25795*/ // 189 children in Scope
/* 24412*/      OPC_MoveChild0,
/* 24413*/      OPC_SwitchOpcode /*4 cases */, 16|128,6/*784*/, TARGET_VAL(ISD::LOAD),// ->25202
/* 24418*/        OPC_RecordMemRef,
/* 24419*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 24420*/        OPC_CheckFoldableChainNode,
/* 24421*/        OPC_RecordChild1, // #1 = $src
/* 24422*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24424*/        OPC_Scope, 57, /*->24483*/ // 6 children in Scope
/* 24426*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 24428*/          OPC_MoveParent,
/* 24429*/          OPC_MoveChild1,
/* 24430*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/* 24433*/          OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 24444*/          OPC_MoveChild1,
/* 24445*/          OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 24448*/          OPC_MoveChild0,
/* 24449*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 24452*/          OPC_CheckChild0Integer, 32, 
/* 24454*/          OPC_RecordChild1, // #2 = $lz
/* 24455*/          OPC_CheckType, MVT::i32,
/* 24457*/          OPC_MoveParent,
/* 24458*/          OPC_CheckType, MVT::i8,
/* 24460*/          OPC_MoveParent,
/* 24461*/          OPC_MoveParent,
/* 24462*/          OPC_CheckType, MVT::i32,
/* 24464*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 24466*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 24469*/          OPC_EmitMergeInputChains1_0,
/* 24470*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (and:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (srl:{ *:[i32] } -1:{ *:[i32] }, (trunc:{ *:[i8] } (sub:{ *:[i32] } 32:{ *:[i32] }, GR32:{ *:[i32] }:$lz)))) - Complexity = 44
                    // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, GR32:{ *:[i32] }:$lz)
/* 24483*/        /*Scope*/ 75, /*->24559*/
/* 24484*/          OPC_CheckPredicate, 9, // Predicate_load
/* 24486*/          OPC_MoveParent,
/* 24487*/          OPC_MoveChild1,
/* 24488*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/* 24491*/          OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 24502*/          OPC_MoveChild1,
/* 24503*/          OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 24506*/          OPC_MoveChild0,
/* 24507*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 24510*/          OPC_CheckChild0Integer, 64, 
/* 24512*/          OPC_RecordChild1, // #2 = $lz
/* 24513*/          OPC_CheckType, MVT::i32,
/* 24515*/          OPC_MoveParent,
/* 24516*/          OPC_CheckType, MVT::i8,
/* 24518*/          OPC_MoveParent,
/* 24519*/          OPC_MoveParent,
/* 24520*/          OPC_CheckType, MVT::i64,
/* 24522*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 24524*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 24527*/          OPC_EmitMergeInputChains1_0,
/* 24528*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #8
/* 24534*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 24537*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 24546*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                    // Src: (and:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (srl:{ *:[i64] } -1:{ *:[i64] }, (trunc:{ *:[i8] } (sub:{ *:[i32] } 64:{ *:[i32] }, GR32:{ *:[i32] }:$lz)))) - Complexity = 44
                    // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR32:{ *:[i32] }:$lz, sub_32bit:{ *:[i32] }))
/* 24559*/        /*Scope*/ 79|128,1/*207*/, /*->24768*/
/* 24561*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 24563*/          OPC_MoveParent,
/* 24564*/          OPC_MoveChild1,
/* 24565*/          OPC_SwitchOpcode /*3 cases */, 61, TARGET_VAL(ISD::ADD),// ->24630
/* 24569*/            OPC_MoveChild0,
/* 24570*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 24573*/            OPC_CheckChild0Integer, 1, 
/* 24575*/            OPC_RecordChild1, // #2 = $lz
/* 24576*/            OPC_CheckChild1Type, MVT::i8,
/* 24578*/            OPC_MoveParent,
/* 24579*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 24590*/            OPC_MoveParent,
/* 24591*/            OPC_CheckType, MVT::i32,
/* 24593*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 24595*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 24598*/            OPC_EmitMergeInputChains1_0,
/* 24599*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #8
/* 24605*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 24608*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 24617*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                      // Src: (and:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (add:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i32] })) - Complexity = 41
                      // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 24630*/          /*SwitchOpcode*/ 70, TARGET_VAL(ISD::XOR),// ->24703
/* 24633*/            OPC_MoveChild0,
/* 24634*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 24637*/            OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 24648*/            OPC_RecordChild1, // #2 = $lz
/* 24649*/            OPC_CheckChild1Type, MVT::i8,
/* 24651*/            OPC_MoveParent,
/* 24652*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 24663*/            OPC_MoveParent,
/* 24664*/            OPC_CheckType, MVT::i32,
/* 24666*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 24668*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 24671*/            OPC_EmitMergeInputChains1_0,
/* 24672*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #8
/* 24678*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 24681*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 24690*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                      // Src: (and:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (xor:{ *:[i32] } (shl:{ *:[i32] } -1:{ *:[i32] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i32] })) - Complexity = 41
                      // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 24703*/          /*SwitchOpcode*/ 61, TARGET_VAL(ISD::SRL),// ->24767
/* 24706*/            OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 24717*/            OPC_MoveChild1,
/* 24718*/            OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 24721*/            OPC_CheckChild0Integer, 32, 
/* 24723*/            OPC_RecordChild1, // #2 = $lz
/* 24724*/            OPC_CheckType, MVT::i8,
/* 24726*/            OPC_MoveParent,
/* 24727*/            OPC_MoveParent,
/* 24728*/            OPC_CheckType, MVT::i32,
/* 24730*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 24732*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 24735*/            OPC_EmitMergeInputChains1_0,
/* 24736*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #8
/* 24742*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 24745*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 24754*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                      // Src: (and:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (srl:{ *:[i32] } -1:{ *:[i32] }, (sub:{ *:[i8] } 32:{ *:[i8] }, GR8:{ *:[i8] }:$lz))) - Complexity = 41
                      // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 24767*/          0, // EndSwitchOpcode
/* 24768*/        /*Scope*/ 91|128,2/*347*/, /*->25117*/
/* 24770*/          OPC_CheckPredicate, 9, // Predicate_load
/* 24772*/          OPC_MoveParent,
/* 24773*/          OPC_Scope, 76|128,1/*204*/, /*->24980*/ // 2 children in Scope
/* 24776*/            OPC_MoveChild1,
/* 24777*/            OPC_SwitchOpcode /*3 cases */, 61, TARGET_VAL(ISD::ADD),// ->24842
/* 24781*/              OPC_MoveChild0,
/* 24782*/              OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 24785*/              OPC_CheckChild0Integer, 1, 
/* 24787*/              OPC_RecordChild1, // #2 = $lz
/* 24788*/              OPC_CheckChild1Type, MVT::i8,
/* 24790*/              OPC_MoveParent,
/* 24791*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 24802*/              OPC_MoveParent,
/* 24803*/              OPC_CheckType, MVT::i64,
/* 24805*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 24807*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 24810*/              OPC_EmitMergeInputChains1_0,
/* 24811*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #8
/* 24817*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 24820*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 24829*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                        // Src: (and:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (add:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i64] })) - Complexity = 41
                        // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 24842*/            /*SwitchOpcode*/ 70, TARGET_VAL(ISD::XOR),// ->24915
/* 24845*/              OPC_MoveChild0,
/* 24846*/              OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 24849*/              OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 24860*/              OPC_RecordChild1, // #2 = $lz
/* 24861*/              OPC_CheckChild1Type, MVT::i8,
/* 24863*/              OPC_MoveParent,
/* 24864*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 24875*/              OPC_MoveParent,
/* 24876*/              OPC_CheckType, MVT::i64,
/* 24878*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 24880*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 24883*/              OPC_EmitMergeInputChains1_0,
/* 24884*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #8
/* 24890*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 24893*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 24902*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                        // Src: (and:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (xor:{ *:[i64] } (shl:{ *:[i64] } -1:{ *:[i64] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i64] })) - Complexity = 41
                        // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 24915*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::SRL),// ->24979
/* 24918*/              OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 24929*/              OPC_MoveChild1,
/* 24930*/              OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 24933*/              OPC_CheckChild0Integer, 64, 
/* 24935*/              OPC_RecordChild1, // #2 = $lz
/* 24936*/              OPC_CheckType, MVT::i8,
/* 24938*/              OPC_MoveParent,
/* 24939*/              OPC_MoveParent,
/* 24940*/              OPC_CheckType, MVT::i64,
/* 24942*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 24944*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 24947*/              OPC_EmitMergeInputChains1_0,
/* 24948*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #8
/* 24954*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 24957*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 24966*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                        // Src: (and:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (srl:{ *:[i64] } -1:{ *:[i64] }, (sub:{ *:[i8] } 64:{ *:[i8] }, GR8:{ *:[i8] }:$lz))) - Complexity = 41
                        // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 24979*/            0, // EndSwitchOpcode
/* 24980*/          /*Scope*/ 6|128,1/*134*/, /*->25116*/
/* 24982*/            OPC_RecordChild1, // #2 = $mask
/* 24983*/            OPC_MoveChild1,
/* 24984*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 24987*/            OPC_CheckPredicate, 41, // Predicate_AndMask64
/* 24989*/            OPC_MoveParent,
/* 24990*/            OPC_CheckType, MVT::i64,
/* 24992*/            OPC_Scope, 24, /*->25018*/ // 3 children in Scope
/* 24994*/              OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 24996*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 24999*/              OPC_EmitMergeInputChains1_0,
/* 25000*/              OPC_EmitConvertToTarget, 2,
/* 25002*/              OPC_EmitNodeXForm, 2, 8, // BEXTRMaskXForm
/* 25005*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTRI64mi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (and:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_AndMask64>>:$mask) - Complexity = 29
                        // Dst: (BEXTRI64mi:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (BEXTRMaskXForm:{ *:[i64] } (imm:{ *:[i64] }):$mask))
/* 25018*/            /*Scope*/ 46, /*->25065*/
/* 25019*/              OPC_CheckPatternPredicate, 35, // (Subtarget->hasBMI()) && (!Subtarget->hasBMI2()) && (!Subtarget->hasTBM())
/* 25021*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 25024*/              OPC_EmitMergeInputChains1_0,
/* 25025*/              OPC_EmitInteger, MVT::i64, 0, 
/* 25028*/              OPC_EmitConvertToTarget, 2,
/* 25030*/              OPC_EmitNodeXForm, 2, 9, // BEXTRMaskXForm
/* 25033*/              OPC_EmitNode1, TARGET_VAL(X86::MOV32ri), 0,
                            MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 25040*/              OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 25043*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::i64, 3/*#Ops*/, 8, 11, 12,  // Results = #13
/* 25052*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 13, 
                        // Src: (and:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_AndMask64>>:$mask) - Complexity = 29
                        // Dst: (BEXTR64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32ri:{ *:[i32] } (BEXTRMaskXForm:{ *:[i32] } (imm:{ *:[i64] }):$mask)), sub_32bit:{ *:[i32] }))
/* 25065*/            /*Scope*/ 49, /*->25115*/
/* 25066*/              OPC_CheckPatternPredicate, 36, // (Subtarget->hasBMI2()) && (!Subtarget->hasTBM())
/* 25068*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 25071*/              OPC_EmitMergeInputChains1_0,
/* 25072*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #8
/* 25078*/              OPC_EmitConvertToTarget, 2,
/* 25080*/              OPC_EmitNodeXForm, 3, 9, // CountTrailingOnes
/* 25083*/              OPC_EmitNode1, TARGET_VAL(X86::MOV8ri), 0,
                            MVT::i8, 1/*#Ops*/, 10,  // Results = #11
/* 25090*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 25093*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 8, 11, 12,  // Results = #13
/* 25102*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 13, 
                        // Src: (and:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_AndMask64>>:$mask) - Complexity = 29
                        // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (MOV8ri:{ *:[i8] } (CountTrailingOnes:{ *:[i8] } (imm:{ *:[i64] }):$mask)), sub_8bit:{ *:[i32] }))
/* 25115*/            0, /*End of Scope*/
/* 25116*/          0, /*End of Scope*/
/* 25117*/        /*Scope*/ 41, /*->25159*/
/* 25118*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 25120*/          OPC_MoveParent,
/* 25121*/          OPC_MoveChild1,
/* 25122*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 25125*/          OPC_RecordChild0, // #2 = $src1
/* 25126*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25137*/          OPC_MoveParent,
/* 25138*/          OPC_CheckType, MVT::i32,
/* 25140*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 25142*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25145*/          OPC_EmitMergeInputChains1_0,
/* 25146*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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>>, (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] })) - Complexity = 27
                    // Dst: (ANDN32rm:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 25159*/        /*Scope*/ 41, /*->25201*/
/* 25160*/          OPC_CheckPredicate, 9, // Predicate_load
/* 25162*/          OPC_MoveParent,
/* 25163*/          OPC_MoveChild1,
/* 25164*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 25167*/          OPC_RecordChild0, // #2 = $src1
/* 25168*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25179*/          OPC_MoveParent,
/* 25180*/          OPC_CheckType, MVT::i64,
/* 25182*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 25184*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25187*/          OPC_EmitMergeInputChains1_0,
/* 25188*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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>>, (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] })) - Complexity = 27
                    // Dst: (ANDN64rm:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 25201*/        0, /*End of Scope*/
/* 25202*/      /*SwitchOpcode*/ 124|128,1/*252*/, TARGET_VAL(ISD::SRL),// ->25458
/* 25206*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25217*/        OPC_MoveChild1,
/* 25218*/        OPC_SwitchOpcode /*2 cases */, 112, TARGET_VAL(ISD::TRUNCATE),// ->25334
/* 25222*/          OPC_MoveChild0,
/* 25223*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 25226*/          OPC_CheckType, MVT::i32,
/* 25228*/          OPC_Scope, 42, /*->25272*/ // 2 children in Scope
/* 25230*/            OPC_CheckChild0Integer, 32, 
/* 25232*/            OPC_RecordChild1, // #0 = $lz
/* 25233*/            OPC_MoveParent,
/* 25234*/            OPC_CheckType, MVT::i8,
/* 25236*/            OPC_MoveParent,
/* 25237*/            OPC_MoveParent,
/* 25238*/            OPC_MoveChild1,
/* 25239*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25242*/            OPC_RecordMemRef,
/* 25243*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 25244*/            OPC_CheckFoldableChainNode,
/* 25245*/            OPC_RecordChild1, // #2 = $src
/* 25246*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25248*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 25250*/            OPC_MoveParent,
/* 25251*/            OPC_CheckType, MVT::i32,
/* 25253*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 25255*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 25258*/            OPC_EmitMergeInputChains1_1,
/* 25259*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 0, 
                      // Src: (and:{ *:[i32] } (srl:{ *:[i32] } -1:{ *:[i32] }, (trunc:{ *:[i8] } (sub:{ *:[i32] } 32:{ *:[i32] }, GR32:{ *:[i32] }:$lz))), (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 44
                      // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, GR32:{ *:[i32] }:$lz)
/* 25272*/          /*Scope*/ 60, /*->25333*/
/* 25273*/            OPC_CheckChild0Integer, 64, 
/* 25275*/            OPC_RecordChild1, // #0 = $lz
/* 25276*/            OPC_MoveParent,
/* 25277*/            OPC_CheckType, MVT::i8,
/* 25279*/            OPC_MoveParent,
/* 25280*/            OPC_MoveParent,
/* 25281*/            OPC_MoveChild1,
/* 25282*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25285*/            OPC_RecordMemRef,
/* 25286*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 25287*/            OPC_CheckFoldableChainNode,
/* 25288*/            OPC_RecordChild1, // #2 = $src
/* 25289*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25291*/            OPC_CheckPredicate, 9, // Predicate_load
/* 25293*/            OPC_MoveParent,
/* 25294*/            OPC_CheckType, MVT::i64,
/* 25296*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 25298*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 25301*/            OPC_EmitMergeInputChains1_1,
/* 25302*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #8
/* 25308*/            OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 25311*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/* 25320*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                      // Src: (and:{ *:[i64] } (srl:{ *:[i64] } -1:{ *:[i64] }, (trunc:{ *:[i8] } (sub:{ *:[i32] } 64:{ *:[i32] }, GR32:{ *:[i32] }:$lz))), (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 44
                      // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR32:{ *:[i32] }:$lz, sub_32bit:{ *:[i32] }))
/* 25333*/          0, /*End of Scope*/
/* 25334*/        /*SwitchOpcode*/ 120, TARGET_VAL(ISD::SUB),// ->25457
/* 25337*/          OPC_CheckType, MVT::i8,
/* 25339*/          OPC_Scope, 57, /*->25398*/ // 2 children in Scope
/* 25341*/            OPC_CheckChild0Integer, 32, 
/* 25343*/            OPC_RecordChild1, // #0 = $lz
/* 25344*/            OPC_MoveParent,
/* 25345*/            OPC_MoveParent,
/* 25346*/            OPC_MoveChild1,
/* 25347*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25350*/            OPC_RecordMemRef,
/* 25351*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 25352*/            OPC_CheckFoldableChainNode,
/* 25353*/            OPC_RecordChild1, // #2 = $src
/* 25354*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25356*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 25358*/            OPC_MoveParent,
/* 25359*/            OPC_CheckType, MVT::i32,
/* 25361*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 25363*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 25366*/            OPC_EmitMergeInputChains1_1,
/* 25367*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #8
/* 25373*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 25376*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/* 25385*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                      // Src: (and:{ *:[i32] } (srl:{ *:[i32] } -1:{ *:[i32] }, (sub:{ *:[i8] } 32:{ *:[i8] }, GR8:{ *:[i8] }:$lz)), (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 41
                      // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 25398*/          /*Scope*/ 57, /*->25456*/
/* 25399*/            OPC_CheckChild0Integer, 64, 
/* 25401*/            OPC_RecordChild1, // #0 = $lz
/* 25402*/            OPC_MoveParent,
/* 25403*/            OPC_MoveParent,
/* 25404*/            OPC_MoveChild1,
/* 25405*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25408*/            OPC_RecordMemRef,
/* 25409*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 25410*/            OPC_CheckFoldableChainNode,
/* 25411*/            OPC_RecordChild1, // #2 = $src
/* 25412*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25414*/            OPC_CheckPredicate, 9, // Predicate_load
/* 25416*/            OPC_MoveParent,
/* 25417*/            OPC_CheckType, MVT::i64,
/* 25419*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 25421*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 25424*/            OPC_EmitMergeInputChains1_1,
/* 25425*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #8
/* 25431*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 25434*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/* 25443*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                      // Src: (and:{ *:[i64] } (srl:{ *:[i64] } -1:{ *:[i64] }, (sub:{ *:[i8] } 64:{ *:[i8] }, GR8:{ *:[i8] }:$lz)), (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 41
                      // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 25456*/          0, /*End of Scope*/
/* 25457*/        0, // EndSwitchOpcode
/* 25458*/      /*SwitchOpcode*/ 120, TARGET_VAL(ISD::ADD),// ->25581
/* 25461*/        OPC_MoveChild0,
/* 25462*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 25465*/        OPC_CheckChild0Integer, 1, 
/* 25467*/        OPC_RecordChild1, // #0 = $lz
/* 25468*/        OPC_CheckChild1Type, MVT::i8,
/* 25470*/        OPC_MoveParent,
/* 25471*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25482*/        OPC_MoveParent,
/* 25483*/        OPC_MoveChild1,
/* 25484*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25487*/        OPC_RecordMemRef,
/* 25488*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25489*/        OPC_CheckFoldableChainNode,
/* 25490*/        OPC_RecordChild1, // #2 = $src
/* 25491*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25493*/        OPC_Scope, 42, /*->25537*/ // 2 children in Scope
/* 25495*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 25497*/          OPC_MoveParent,
/* 25498*/          OPC_CheckType, MVT::i32,
/* 25500*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 25502*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 25505*/          OPC_EmitMergeInputChains1_1,
/* 25506*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/* 25512*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 25515*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/* 25524*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                    // Src: (and:{ *:[i32] } (add:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i32] }), (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 41
                    // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 25537*/        /*Scope*/ 42, /*->25580*/
/* 25538*/          OPC_CheckPredicate, 9, // Predicate_load
/* 25540*/          OPC_MoveParent,
/* 25541*/          OPC_CheckType, MVT::i64,
/* 25543*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 25545*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 25548*/          OPC_EmitMergeInputChains1_1,
/* 25549*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #8
/* 25555*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 25558*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/* 25567*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                    // Src: (and:{ *:[i64] } (add:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i64] }), (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 41
                    // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 25580*/        0, /*End of Scope*/
/* 25581*/      /*SwitchOpcode*/ 81|128,1/*209*/, TARGET_VAL(ISD::XOR),// ->25794
/* 25585*/        OPC_Scope, 1|128,1/*129*/, /*->25717*/ // 2 children in Scope
/* 25588*/          OPC_MoveChild0,
/* 25589*/          OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 25592*/          OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25603*/          OPC_RecordChild1, // #0 = $lz
/* 25604*/          OPC_CheckChild1Type, MVT::i8,
/* 25606*/          OPC_MoveParent,
/* 25607*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25618*/          OPC_MoveParent,
/* 25619*/          OPC_MoveChild1,
/* 25620*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25623*/          OPC_RecordMemRef,
/* 25624*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 25625*/          OPC_CheckFoldableChainNode,
/* 25626*/          OPC_RecordChild1, // #2 = $src
/* 25627*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25629*/          OPC_Scope, 42, /*->25673*/ // 2 children in Scope
/* 25631*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 25633*/            OPC_MoveParent,
/* 25634*/            OPC_CheckType, MVT::i32,
/* 25636*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 25638*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 25641*/            OPC_EmitMergeInputChains1_1,
/* 25642*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #8
/* 25648*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 25651*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/* 25660*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                      // Src: (and:{ *:[i32] } (xor:{ *:[i32] } (shl:{ *:[i32] } -1:{ *:[i32] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i32] }), (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 41
                      // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 25673*/          /*Scope*/ 42, /*->25716*/
/* 25674*/            OPC_CheckPredicate, 9, // Predicate_load
/* 25676*/            OPC_MoveParent,
/* 25677*/            OPC_CheckType, MVT::i64,
/* 25679*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 25681*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 25684*/            OPC_EmitMergeInputChains1_1,
/* 25685*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #8
/* 25691*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 25694*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/* 25703*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                      // Src: (and:{ *:[i64] } (xor:{ *:[i64] } (shl:{ *:[i64] } -1:{ *:[i64] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i64] }), (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 41
                      // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 25716*/          0, /*End of Scope*/
/* 25717*/        /*Scope*/ 75, /*->25793*/
/* 25718*/          OPC_RecordChild0, // #0 = $src1
/* 25719*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25730*/          OPC_MoveParent,
/* 25731*/          OPC_MoveChild1,
/* 25732*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25735*/          OPC_RecordMemRef,
/* 25736*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 25737*/          OPC_CheckFoldableChainNode,
/* 25738*/          OPC_RecordChild1, // #2 = $src2
/* 25739*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25741*/          OPC_Scope, 24, /*->25767*/ // 2 children in Scope
/* 25743*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 25745*/            OPC_MoveParent,
/* 25746*/            OPC_CheckType, MVT::i32,
/* 25748*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 25750*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25753*/            OPC_EmitMergeInputChains1_1,
/* 25754*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN32rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] }), (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 27
                      // Dst: (ANDN32rm:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 25767*/          /*Scope*/ 24, /*->25792*/
/* 25768*/            OPC_CheckPredicate, 9, // Predicate_load
/* 25770*/            OPC_MoveParent,
/* 25771*/            OPC_CheckType, MVT::i64,
/* 25773*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 25775*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25778*/            OPC_EmitMergeInputChains1_1,
/* 25779*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[i64] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] }), (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 27
                      // Dst: (ANDN64rm:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 25792*/          0, /*End of Scope*/
/* 25793*/        0, /*End of Scope*/
/* 25794*/      0, // EndSwitchOpcode
/* 25795*/    /*Scope*/ 105, /*->25901*/
/* 25796*/      OPC_RecordChild0, // #0 = $src1
/* 25797*/      OPC_MoveChild1,
/* 25798*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25801*/      OPC_RecordMemRef,
/* 25802*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 25803*/      OPC_CheckFoldableChainNode,
/* 25804*/      OPC_RecordChild1, // #2 = $src2
/* 25805*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25807*/      OPC_Scope, 22, /*->25831*/ // 4 children in Scope
/* 25809*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 25811*/        OPC_MoveParent,
/* 25812*/        OPC_CheckType, MVT::i8,
/* 25814*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25817*/        OPC_EmitMergeInputChains1_1,
/* 25818*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>) - Complexity = 25
                  // Dst: (AND8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 25831*/      /*Scope*/ 22, /*->25854*/
/* 25832*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 25834*/        OPC_MoveParent,
/* 25835*/        OPC_CheckType, MVT::i16,
/* 25837*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25840*/        OPC_EmitMergeInputChains1_1,
/* 25841*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 25854*/      /*Scope*/ 22, /*->25877*/
/* 25855*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 25857*/        OPC_MoveParent,
/* 25858*/        OPC_CheckType, MVT::i32,
/* 25860*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25863*/        OPC_EmitMergeInputChains1_1,
/* 25864*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 25877*/      /*Scope*/ 22, /*->25900*/
/* 25878*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25880*/        OPC_MoveParent,
/* 25881*/        OPC_CheckType, MVT::i64,
/* 25883*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25886*/        OPC_EmitMergeInputChains1_1,
/* 25887*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 25900*/      0, /*End of Scope*/
/* 25901*/    /*Scope*/ 108, /*->26010*/
/* 25902*/      OPC_MoveChild0,
/* 25903*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25906*/      OPC_RecordMemRef,
/* 25907*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 25908*/      OPC_CheckFoldableChainNode,
/* 25909*/      OPC_RecordChild1, // #1 = $src2
/* 25910*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25912*/      OPC_Scope, 23, /*->25937*/ // 4 children in Scope
/* 25914*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 25916*/        OPC_MoveParent,
/* 25917*/        OPC_RecordChild1, // #2 = $src1
/* 25918*/        OPC_CheckType, MVT::i8,
/* 25920*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25923*/        OPC_EmitMergeInputChains1_0,
/* 25924*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>, GR8:{ *:[i8] }:$src1) - Complexity = 25
                  // Dst: (AND8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 25937*/      /*Scope*/ 23, /*->25961*/
/* 25938*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 25940*/        OPC_MoveParent,
/* 25941*/        OPC_RecordChild1, // #2 = $src1
/* 25942*/        OPC_CheckType, MVT::i16,
/* 25944*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25947*/        OPC_EmitMergeInputChains1_0,
/* 25948*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 25961*/      /*Scope*/ 23, /*->25985*/
/* 25962*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 25964*/        OPC_MoveParent,
/* 25965*/        OPC_RecordChild1, // #2 = $src1
/* 25966*/        OPC_CheckType, MVT::i32,
/* 25968*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25971*/        OPC_EmitMergeInputChains1_0,
/* 25972*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 25985*/      /*Scope*/ 23, /*->26009*/
/* 25986*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25988*/        OPC_MoveParent,
/* 25989*/        OPC_RecordChild1, // #2 = $src1
/* 25990*/        OPC_CheckType, MVT::i64,
/* 25992*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25995*/        OPC_EmitMergeInputChains1_0,
/* 25996*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 26009*/      0, /*End of Scope*/
/* 26010*/    /*Scope*/ 47, /*->26058*/
/* 26011*/      OPC_RecordChild0, // #0 = $src
/* 26012*/      OPC_MoveChild1,
/* 26013*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/* 26016*/      OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26027*/      OPC_MoveChild1,
/* 26028*/      OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 26031*/      OPC_MoveChild0,
/* 26032*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 26035*/      OPC_CheckChild0Integer, 32, 
/* 26037*/      OPC_RecordChild1, // #1 = $lz
/* 26038*/      OPC_CheckType, MVT::i32,
/* 26040*/      OPC_MoveParent,
/* 26041*/      OPC_CheckType, MVT::i8,
/* 26043*/      OPC_MoveParent,
/* 26044*/      OPC_MoveParent,
/* 26045*/      OPC_CheckType, MVT::i32,
/* 26047*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26049*/      OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                    MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (srl:{ *:[i32] } -1:{ *:[i32] }, (trunc:{ *:[i8] } (sub:{ *:[i32] } 32:{ *:[i32] }, GR32:{ *:[i32] }:$lz)))) - Complexity = 22
                // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, GR32:{ *:[i32] }:$lz)
/* 26058*/    /*Scope*/ 47, /*->26106*/
/* 26059*/      OPC_MoveChild0,
/* 26060*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/* 26063*/      OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26074*/      OPC_MoveChild1,
/* 26075*/      OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 26078*/      OPC_MoveChild0,
/* 26079*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 26082*/      OPC_CheckChild0Integer, 32, 
/* 26084*/      OPC_RecordChild1, // #0 = $lz
/* 26085*/      OPC_CheckType, MVT::i32,
/* 26087*/      OPC_MoveParent,
/* 26088*/      OPC_CheckType, MVT::i8,
/* 26090*/      OPC_MoveParent,
/* 26091*/      OPC_MoveParent,
/* 26092*/      OPC_RecordChild1, // #1 = $src
/* 26093*/      OPC_CheckType, MVT::i32,
/* 26095*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26097*/      OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                    MVT::i32, MVT::i32, 2/*#Ops*/, 1, 0, 
                // Src: (and:{ *:[i32] } (srl:{ *:[i32] } -1:{ *:[i32] }, (trunc:{ *:[i8] } (sub:{ *:[i32] } 32:{ *:[i32] }, GR32:{ *:[i32] }:$lz))), GR32:{ *:[i32] }:$src) - Complexity = 22
                // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, GR32:{ *:[i32] }:$lz)
/* 26106*/    /*Scope*/ 65, /*->26172*/
/* 26107*/      OPC_RecordChild0, // #0 = $src
/* 26108*/      OPC_MoveChild1,
/* 26109*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/* 26112*/      OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26123*/      OPC_MoveChild1,
/* 26124*/      OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 26127*/      OPC_MoveChild0,
/* 26128*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 26131*/      OPC_CheckChild0Integer, 64, 
/* 26133*/      OPC_RecordChild1, // #1 = $lz
/* 26134*/      OPC_CheckType, MVT::i32,
/* 26136*/      OPC_MoveParent,
/* 26137*/      OPC_CheckType, MVT::i8,
/* 26139*/      OPC_MoveParent,
/* 26140*/      OPC_MoveParent,
/* 26141*/      OPC_CheckType, MVT::i64,
/* 26143*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26145*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #2
/* 26151*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 26154*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 26163*/      OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                    MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (srl:{ *:[i64] } -1:{ *:[i64] }, (trunc:{ *:[i8] } (sub:{ *:[i32] } 64:{ *:[i32] }, GR32:{ *:[i32] }:$lz)))) - Complexity = 22
                // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR32:{ *:[i32] }:$lz, sub_32bit:{ *:[i32] }))
/* 26172*/    /*Scope*/ 15|128,2/*271*/, /*->26445*/
/* 26174*/      OPC_MoveChild0,
/* 26175*/      OPC_SwitchOpcode /*3 cases */, 61, TARGET_VAL(ISD::SRL),// ->26240
/* 26179*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26190*/        OPC_MoveChild1,
/* 26191*/        OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/* 26194*/        OPC_MoveChild0,
/* 26195*/        OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 26198*/        OPC_CheckChild0Integer, 64, 
/* 26200*/        OPC_RecordChild1, // #0 = $lz
/* 26201*/        OPC_CheckType, MVT::i32,
/* 26203*/        OPC_MoveParent,
/* 26204*/        OPC_CheckType, MVT::i8,
/* 26206*/        OPC_MoveParent,
/* 26207*/        OPC_MoveParent,
/* 26208*/        OPC_RecordChild1, // #1 = $src
/* 26209*/        OPC_CheckType, MVT::i64,
/* 26211*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26213*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 26219*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 26222*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 26231*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (and:{ *:[i64] } (srl:{ *:[i64] } -1:{ *:[i64] }, (trunc:{ *:[i8] } (sub:{ *:[i32] } 64:{ *:[i32] }, GR32:{ *:[i32] }:$lz))), GR64:{ *:[i64] }:$src) - Complexity = 22
                  // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR32:{ *:[i32] }:$lz, sub_32bit:{ *:[i32] }))
/* 26240*/      /*SwitchOpcode*/ 90, TARGET_VAL(ISD::XOR),// ->26333
/* 26243*/        OPC_RecordChild0, // #0 = $src
/* 26244*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26255*/        OPC_MoveParent,
/* 26256*/        OPC_MoveChild1,
/* 26257*/        OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 26260*/        OPC_CheckChild0Same, 0,
/* 26262*/        OPC_Scope, 29, /*->26293*/ // 2 children in Scope
/* 26264*/          OPC_CheckChild1Integer, 1, 
/* 26266*/          OPC_MoveParent,
/* 26267*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->26280
/* 26270*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 26272*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCIC32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] })) - Complexity = 19
                      // Dst: (BLCIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 26280*/          /*SwitchType*/ 10, MVT::i64,// ->26292
/* 26282*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 26284*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCIC64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i64] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] })) - Complexity = 19
                      // Dst: (BLCIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 26292*/          0, // EndSwitchType
/* 26293*/        /*Scope*/ 38, /*->26332*/
/* 26294*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26305*/          OPC_MoveParent,
/* 26306*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->26319
/* 26309*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 26311*/            OPC_MorphNodeTo2, TARGET_VAL(X86::TZMSK32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })) - Complexity = 19
                      // Dst: (TZMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 26319*/          /*SwitchType*/ 10, MVT::i64,// ->26331
/* 26321*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 26323*/            OPC_MorphNodeTo2, TARGET_VAL(X86::TZMSK64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i64] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })) - Complexity = 19
                      // Dst: (TZMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 26331*/          0, // EndSwitchType
/* 26332*/        0, /*End of Scope*/
/* 26333*/      /*SwitchOpcode*/ 108, TARGET_VAL(ISD::ADD),// ->26444
/* 26336*/        OPC_RecordChild0, // #0 = $src
/* 26337*/        OPC_Scope, 47, /*->26386*/ // 2 children in Scope
/* 26339*/          OPC_CheckChild1Integer, 1, 
/* 26341*/          OPC_MoveParent,
/* 26342*/          OPC_MoveChild1,
/* 26343*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 26346*/          OPC_CheckChild0Same, 0,
/* 26348*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26359*/          OPC_MoveParent,
/* 26360*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->26373
/* 26363*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 26365*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCIC32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })) - Complexity = 19
                      // Dst: (BLCIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 26373*/          /*SwitchType*/ 10, MVT::i64,// ->26385
/* 26375*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 26377*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCIC64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })) - Complexity = 19
                      // Dst: (BLCIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 26385*/          0, // EndSwitchType
/* 26386*/        /*Scope*/ 56, /*->26443*/
/* 26387*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26398*/          OPC_MoveParent,
/* 26399*/          OPC_MoveChild1,
/* 26400*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 26403*/          OPC_CheckChild0Same, 0,
/* 26405*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26416*/          OPC_MoveParent,
/* 26417*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->26430
/* 26420*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 26422*/            OPC_MorphNodeTo2, TARGET_VAL(X86::TZMSK32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })) - Complexity = 19
                      // Dst: (TZMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 26430*/          /*SwitchType*/ 10, MVT::i64,// ->26442
/* 26432*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 26434*/            OPC_MorphNodeTo2, TARGET_VAL(X86::TZMSK64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })) - Complexity = 19
                      // Dst: (TZMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 26442*/          0, // EndSwitchType
/* 26443*/        0, /*End of Scope*/
/* 26444*/      0, // EndSwitchOpcode
/* 26445*/    /*Scope*/ 31|128,2/*287*/, /*->26734*/
/* 26447*/      OPC_RecordChild0, // #0 = $src
/* 26448*/      OPC_MoveChild1,
/* 26449*/      OPC_SwitchOpcode /*3 cases */, 86, TARGET_VAL(ISD::ADD),// ->26539
/* 26453*/        OPC_MoveChild0,
/* 26454*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 26457*/        OPC_CheckChild0Integer, 1, 
/* 26459*/        OPC_RecordChild1, // #1 = $lz
/* 26460*/        OPC_CheckChild1Type, MVT::i8,
/* 26462*/        OPC_MoveParent,
/* 26463*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26474*/        OPC_MoveParent,
/* 26475*/        OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->26507
/* 26478*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26480*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 26486*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 26489*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 26498*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4, 
                    // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i32] })) - Complexity = 19
                    // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 26507*/        /*SwitchType*/ 29, MVT::i64,// ->26538
/* 26509*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26511*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 26517*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 26520*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 26529*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                    // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i64] })) - Complexity = 19
                    // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 26538*/        0, // EndSwitchType
/* 26539*/      /*SwitchOpcode*/ 95, TARGET_VAL(ISD::XOR),// ->26637
/* 26542*/        OPC_MoveChild0,
/* 26543*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 26546*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26557*/        OPC_RecordChild1, // #1 = $lz
/* 26558*/        OPC_CheckChild1Type, MVT::i8,
/* 26560*/        OPC_MoveParent,
/* 26561*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26572*/        OPC_MoveParent,
/* 26573*/        OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->26605
/* 26576*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26578*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 26584*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 26587*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 26596*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4, 
                    // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (xor:{ *:[i32] } (shl:{ *:[i32] } -1:{ *:[i32] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i32] })) - Complexity = 19
                    // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 26605*/        /*SwitchType*/ 29, MVT::i64,// ->26636
/* 26607*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26609*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 26615*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 26618*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 26627*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                    // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (xor:{ *:[i64] } (shl:{ *:[i64] } -1:{ *:[i64] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i64] })) - Complexity = 19
                    // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 26636*/        0, // EndSwitchType
/* 26637*/      /*SwitchOpcode*/ 93, TARGET_VAL(ISD::SRL),// ->26733
/* 26640*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26651*/        OPC_MoveChild1,
/* 26652*/        OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 26655*/        OPC_CheckType, MVT::i8,
/* 26657*/        OPC_Scope, 36, /*->26695*/ // 2 children in Scope
/* 26659*/          OPC_CheckChild0Integer, 32, 
/* 26661*/          OPC_RecordChild1, // #1 = $lz
/* 26662*/          OPC_MoveParent,
/* 26663*/          OPC_MoveParent,
/* 26664*/          OPC_CheckType, MVT::i32,
/* 26666*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26668*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 26674*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 26677*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 26686*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4, 
                    // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (srl:{ *:[i32] } -1:{ *:[i32] }, (sub:{ *:[i8] } 32:{ *:[i8] }, GR8:{ *:[i8] }:$lz))) - Complexity = 19
                    // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 26695*/        /*Scope*/ 36, /*->26732*/
/* 26696*/          OPC_CheckChild0Integer, 64, 
/* 26698*/          OPC_RecordChild1, // #1 = $lz
/* 26699*/          OPC_MoveParent,
/* 26700*/          OPC_MoveParent,
/* 26701*/          OPC_CheckType, MVT::i64,
/* 26703*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26705*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 26711*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 26714*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 26723*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                    // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (srl:{ *:[i64] } -1:{ *:[i64] }, (sub:{ *:[i8] } 64:{ *:[i8] }, GR8:{ *:[i8] }:$lz))) - Complexity = 19
                    // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 26732*/        0, /*End of Scope*/
/* 26733*/      0, // EndSwitchOpcode
/* 26734*/    /*Scope*/ 34|128,2/*290*/, /*->27026*/
/* 26736*/      OPC_MoveChild0,
/* 26737*/      OPC_SwitchOpcode /*3 cases */, 87, TARGET_VAL(ISD::ADD),// ->26828
/* 26741*/        OPC_MoveChild0,
/* 26742*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 26745*/        OPC_CheckChild0Integer, 1, 
/* 26747*/        OPC_RecordChild1, // #0 = $lz
/* 26748*/        OPC_CheckChild1Type, MVT::i8,
/* 26750*/        OPC_MoveParent,
/* 26751*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26762*/        OPC_MoveParent,
/* 26763*/        OPC_RecordChild1, // #1 = $src
/* 26764*/        OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->26796
/* 26767*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26769*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 26775*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 26778*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 26787*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4, 
                    // Src: (and:{ *:[i32] } (add:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i32] }), GR32:{ *:[i32] }:$src) - Complexity = 19
                    // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 26796*/        /*SwitchType*/ 29, MVT::i64,// ->26827
/* 26798*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26800*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 26806*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 26809*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 26818*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 4, 
                    // Src: (and:{ *:[i64] } (add:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i64] }), GR64:{ *:[i64] }:$src) - Complexity = 19
                    // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 26827*/        0, // EndSwitchType
/* 26828*/      /*SwitchOpcode*/ 96, TARGET_VAL(ISD::XOR),// ->26927
/* 26831*/        OPC_MoveChild0,
/* 26832*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 26835*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26846*/        OPC_RecordChild1, // #0 = $lz
/* 26847*/        OPC_CheckChild1Type, MVT::i8,
/* 26849*/        OPC_MoveParent,
/* 26850*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26861*/        OPC_MoveParent,
/* 26862*/        OPC_RecordChild1, // #1 = $src
/* 26863*/        OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->26895
/* 26866*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26868*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 26874*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 26877*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 26886*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4, 
                    // Src: (and:{ *:[i32] } (xor:{ *:[i32] } (shl:{ *:[i32] } -1:{ *:[i32] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i32] }), GR32:{ *:[i32] }:$src) - Complexity = 19
                    // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 26895*/        /*SwitchType*/ 29, MVT::i64,// ->26926
/* 26897*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26899*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 26905*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 26908*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 26917*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 4, 
                    // Src: (and:{ *:[i64] } (xor:{ *:[i64] } (shl:{ *:[i64] } -1:{ *:[i64] }, GR8:{ *:[i8] }:$lz), -1:{ *:[i64] }), GR64:{ *:[i64] }:$src) - Complexity = 19
                    // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 26926*/        0, // EndSwitchType
/* 26927*/      /*SwitchOpcode*/ 95, TARGET_VAL(ISD::SRL),// ->27025
/* 26930*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26941*/        OPC_MoveChild1,
/* 26942*/        OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 26945*/        OPC_CheckType, MVT::i8,
/* 26947*/        OPC_Scope, 37, /*->26986*/ // 2 children in Scope
/* 26949*/          OPC_CheckChild0Integer, 32, 
/* 26951*/          OPC_RecordChild1, // #0 = $lz
/* 26952*/          OPC_MoveParent,
/* 26953*/          OPC_MoveParent,
/* 26954*/          OPC_RecordChild1, // #1 = $src
/* 26955*/          OPC_CheckType, MVT::i32,
/* 26957*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26959*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 26965*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 26968*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 26977*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4, 
                    // Src: (and:{ *:[i32] } (srl:{ *:[i32] } -1:{ *:[i32] }, (sub:{ *:[i8] } 32:{ *:[i8] }, GR8:{ *:[i8] }:$lz)), GR32:{ *:[i32] }:$src) - Complexity = 19
                    // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 26986*/        /*Scope*/ 37, /*->27024*/
/* 26987*/          OPC_CheckChild0Integer, 64, 
/* 26989*/          OPC_RecordChild1, // #0 = $lz
/* 26990*/          OPC_MoveParent,
/* 26991*/          OPC_MoveParent,
/* 26992*/          OPC_RecordChild1, // #1 = $src
/* 26993*/          OPC_CheckType, MVT::i64,
/* 26995*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 26997*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 27003*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27006*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 27015*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 4, 
                    // Src: (and:{ *:[i64] } (srl:{ *:[i64] } -1:{ *:[i64] }, (sub:{ *:[i8] } 64:{ *:[i8] }, GR8:{ *:[i8] }:$lz)), GR64:{ *:[i64] }:$src) - Complexity = 19
                    // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$lz, sub_8bit:{ *:[i32] }))
/* 27024*/        0, /*End of Scope*/
/* 27025*/      0, // EndSwitchOpcode
/* 27026*/    /*Scope*/ 10|128,1/*138*/, /*->27166*/
/* 27028*/      OPC_RecordChild0, // #0 = $src1
/* 27029*/      OPC_MoveChild1,
/* 27030*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTL),
/* 27033*/      OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 27044*/      OPC_MoveChild1,
/* 27045*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 27048*/      OPC_RecordChild0, // #1 = $src2
/* 27049*/      OPC_MoveChild1,
/* 27050*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27053*/      OPC_Scope, 36, /*->27091*/ // 3 children in Scope
/* 27055*/        OPC_CheckPredicate, 12, // Predicate_immShift16
/* 27057*/        OPC_MoveParent,
/* 27058*/        OPC_CheckType, MVT::i8,
/* 27060*/        OPC_MoveParent,
/* 27061*/        OPC_MoveParent,
/* 27062*/        OPC_CheckType, MVT::i16,
/* 27064*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 27070*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27073*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 27082*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (and:{ *:[i16] } GR16:{ *:[i16] }:$src1, (rotl:{ *:[i16] } -2:{ *:[i16] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift16>>))) - Complexity = 18
                  // Dst: (BTR16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27091*/      /*Scope*/ 36, /*->27128*/
/* 27092*/        OPC_CheckPredicate, 6, // Predicate_immShift32
/* 27094*/        OPC_MoveParent,
/* 27095*/        OPC_CheckType, MVT::i8,
/* 27097*/        OPC_MoveParent,
/* 27098*/        OPC_MoveParent,
/* 27099*/        OPC_CheckType, MVT::i32,
/* 27101*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 27107*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27110*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 27119*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src1, (rotl:{ *:[i32] } -2:{ *:[i32] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>))) - Complexity = 18
                  // Dst: (BTR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27128*/      /*Scope*/ 36, /*->27165*/
/* 27129*/        OPC_CheckPredicate, 10, // Predicate_immShift64
/* 27131*/        OPC_MoveParent,
/* 27132*/        OPC_CheckType, MVT::i8,
/* 27134*/        OPC_MoveParent,
/* 27135*/        OPC_MoveParent,
/* 27136*/        OPC_CheckType, MVT::i64,
/* 27138*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 27144*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27147*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 27156*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src1, (rotl:{ *:[i64] } -2:{ *:[i64] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>))) - Complexity = 18
                  // Dst: (BTR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27165*/      0, /*End of Scope*/
/* 27166*/    /*Scope*/ 12|128,1/*140*/, /*->27308*/
/* 27168*/      OPC_MoveChild0,
/* 27169*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTL),
/* 27172*/      OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 27183*/      OPC_MoveChild1,
/* 27184*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 27187*/      OPC_RecordChild0, // #0 = $src2
/* 27188*/      OPC_MoveChild1,
/* 27189*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27192*/      OPC_Scope, 37, /*->27231*/ // 3 children in Scope
/* 27194*/        OPC_CheckPredicate, 12, // Predicate_immShift16
/* 27196*/        OPC_MoveParent,
/* 27197*/        OPC_CheckType, MVT::i8,
/* 27199*/        OPC_MoveParent,
/* 27200*/        OPC_MoveParent,
/* 27201*/        OPC_RecordChild1, // #1 = $src1
/* 27202*/        OPC_CheckType, MVT::i16,
/* 27204*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 27210*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27213*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 27222*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (and:{ *:[i16] } (rotl:{ *:[i16] } -2:{ *:[i16] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift16>>)), GR16:{ *:[i16] }:$src1) - Complexity = 18
                  // Dst: (BTR16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27231*/      /*Scope*/ 37, /*->27269*/
/* 27232*/        OPC_CheckPredicate, 6, // Predicate_immShift32
/* 27234*/        OPC_MoveParent,
/* 27235*/        OPC_CheckType, MVT::i8,
/* 27237*/        OPC_MoveParent,
/* 27238*/        OPC_MoveParent,
/* 27239*/        OPC_RecordChild1, // #1 = $src1
/* 27240*/        OPC_CheckType, MVT::i32,
/* 27242*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 27248*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27251*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 27260*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (and:{ *:[i32] } (rotl:{ *:[i32] } -2:{ *:[i32] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), GR32:{ *:[i32] }:$src1) - Complexity = 18
                  // Dst: (BTR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27269*/      /*Scope*/ 37, /*->27307*/
/* 27270*/        OPC_CheckPredicate, 10, // Predicate_immShift64
/* 27272*/        OPC_MoveParent,
/* 27273*/        OPC_CheckType, MVT::i8,
/* 27275*/        OPC_MoveParent,
/* 27276*/        OPC_MoveParent,
/* 27277*/        OPC_RecordChild1, // #1 = $src1
/* 27278*/        OPC_CheckType, MVT::i64,
/* 27280*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 27286*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27289*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 27298*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (and:{ *:[i64] } (rotl:{ *:[i64] } -2:{ *:[i64] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)), GR64:{ *:[i64] }:$src1) - Complexity = 18
                  // Dst: (BTR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27307*/      0, /*End of Scope*/
/* 27308*/    /*Scope*/ 72, /*->27381*/
/* 27309*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 27312*/      OPC_MoveChild0,
/* 27313*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/* 27316*/      OPC_RecordChild0, // #0 = $src
/* 27317*/      OPC_CheckChild1Integer, 8, 
/* 27319*/      OPC_CheckChild1Type, MVT::i8,
/* 27321*/      OPC_CheckPredicate, 17, // Predicate_srl_su
/* 27323*/      OPC_MoveParent,
/* 27324*/      OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->27345
/* 27327*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 27330*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 27338*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                      MVT::i32, 1/*#Ops*/, 2, 
                  // Src: (and:{ *:[i32] } (srl:{ *:[i32] } GR32:{ *:[i32] }:$src, 8:{ *:[i8] })<<P:Predicate_srl_su>>, 255:{ *:[i32] }) - Complexity = 17
                  // Dst: (MOVZX32rr8_NOREX:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR32:{ *:[i32] }:$src, sub_8bit_hi:{ *:[i32] }))
/* 27345*/      /*SwitchType*/ 33, MVT::i64,// ->27380
/* 27347*/        OPC_EmitInteger, MVT::i64, 0, 
/* 27350*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 27353*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27361*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                      MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 27368*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 27371*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 1, 4, 5, 
                  // 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] }, (MOVZX32rr8_NOREX:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR64:{ *:[i64] }:$src, sub_8bit_hi:{ *:[i32] })), sub_32bit:{ *:[i32] })
/* 27380*/      0, // EndSwitchType
/* 27381*/    /*Scope*/ 21, /*->27403*/
/* 27382*/      OPC_MoveChild0,
/* 27383*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/* 27386*/      OPC_CheckChild0Integer, 2, 
/* 27388*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/* 27389*/      OPC_MoveParent,
/* 27390*/      OPC_CheckChild1Integer, 1, 
/* 27392*/      OPC_CheckType, MVT::i8,
/* 27394*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/* 27397*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETBr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (and:{ *:[i8] } (X86setcc_c:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] }), 1:{ *:[i8] }) - Complexity = 16
                // Dst: (SETBr:{ *:[i8] })
/* 27403*/    /*Scope*/ 114, /*->27518*/
/* 27404*/      OPC_RecordChild0, // #0 = $src
/* 27405*/      OPC_MoveChild1,
/* 27406*/      OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::ADD),// ->27483
/* 27410*/        OPC_CheckChild0Same, 0,
/* 27412*/        OPC_Scope, 38, /*->27452*/ // 2 children in Scope
/* 27414*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27425*/          OPC_MoveParent,
/* 27426*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->27439
/* 27429*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 27431*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSR32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })) - Complexity = 11
                      // Dst: (BLSR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 27439*/          /*SwitchType*/ 10, MVT::i64,// ->27451
/* 27441*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 27443*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSR64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })) - Complexity = 11
                      // Dst: (BLSR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 27451*/          0, // EndSwitchType
/* 27452*/        /*Scope*/ 29, /*->27482*/
/* 27453*/          OPC_CheckChild1Integer, 1, 
/* 27455*/          OPC_MoveParent,
/* 27456*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->27469
/* 27459*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 27461*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCFILL32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] })) - Complexity = 11
                      // Dst: (BLCFILL32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 27469*/          /*SwitchType*/ 10, MVT::i64,// ->27481
/* 27471*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 27473*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCFILL64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] })) - Complexity = 11
                      // Dst: (BLCFILL64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 27481*/          0, // EndSwitchType
/* 27482*/        0, /*End of Scope*/
/* 27483*/      /*SwitchOpcode*/ 31, TARGET_VAL(ISD::SUB),// ->27517
/* 27486*/        OPC_CheckChild0Integer, 0, 
/* 27488*/        OPC_CheckChild1Same, 0,
/* 27490*/        OPC_MoveParent,
/* 27491*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->27504
/* 27494*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 27496*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSI32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (sub:{ *:[i32] } 0:{ *:[i32] }, GR32:{ *:[i32] }:$src)) - Complexity = 11
                    // Dst: (BLSI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 27504*/        /*SwitchType*/ 10, MVT::i64,// ->27516
/* 27506*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 27508*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSI64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (sub:{ *:[i64] } 0:{ *:[i64] }, GR64:{ *:[i64] }:$src)) - Complexity = 11
                    // Dst: (BLSI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 27516*/        0, // EndSwitchType
/* 27517*/      0, // EndSwitchOpcode
/* 27518*/    /*Scope*/ 117, /*->27636*/
/* 27519*/      OPC_MoveChild0,
/* 27520*/      OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::ADD),// ->27600
/* 27524*/        OPC_RecordChild0, // #0 = $src
/* 27525*/        OPC_Scope, 31, /*->27558*/ // 2 children in Scope
/* 27527*/          OPC_CheckChild1Integer, 1, 
/* 27529*/          OPC_MoveParent,
/* 27530*/          OPC_CheckChild1Same, 0,
/* 27532*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->27545
/* 27535*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 27537*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCFILL32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), GR32:{ *:[i32] }:$src) - Complexity = 11
                      // Dst: (BLCFILL32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 27545*/          /*SwitchType*/ 10, MVT::i64,// ->27557
/* 27547*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 27549*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCFILL64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), GR64:{ *:[i64] }:$src) - Complexity = 11
                      // Dst: (BLCFILL64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 27557*/          0, // EndSwitchType
/* 27558*/        /*Scope*/ 40, /*->27599*/
/* 27559*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27570*/          OPC_MoveParent,
/* 27571*/          OPC_CheckChild1Same, 0,
/* 27573*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->27586
/* 27576*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 27578*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSR32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src) - Complexity = 11
                      // Dst: (BLSR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 27586*/          /*SwitchType*/ 10, MVT::i64,// ->27598
/* 27588*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 27590*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSR64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (and:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src) - Complexity = 11
                      // Dst: (BLSR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 27598*/          0, // EndSwitchType
/* 27599*/        0, /*End of Scope*/
/* 27600*/      /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SUB),// ->27635
/* 27603*/        OPC_CheckChild0Integer, 0, 
/* 27605*/        OPC_RecordChild1, // #0 = $src
/* 27606*/        OPC_MoveParent,
/* 27607*/        OPC_CheckChild1Same, 0,
/* 27609*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->27622
/* 27612*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 27614*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSI32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (and:{ *:[i32] } (sub:{ *:[i32] } 0:{ *:[i32] }, GR32:{ *:[i32] }:$src), GR32:{ *:[i32] }:$src) - Complexity = 11
                    // Dst: (BLSI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 27622*/        /*SwitchType*/ 10, MVT::i64,// ->27634
/* 27624*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 27626*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSI64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (and:{ *:[i64] } (sub:{ *:[i64] } 0:{ *:[i64] }, GR64:{ *:[i64] }:$src), GR64:{ *:[i64] }:$src) - Complexity = 11
                    // Dst: (BLSI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 27634*/        0, // EndSwitchType
/* 27635*/      0, // EndSwitchOpcode
/* 27636*/    /*Scope*/ 109, /*->27746*/
/* 27637*/      OPC_RecordChild0, // #0 = $src1
/* 27638*/      OPC_MoveChild1,
/* 27639*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTL),
/* 27642*/      OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 27653*/      OPC_RecordChild1, // #1 = $src2
/* 27654*/      OPC_CheckChild1Type, MVT::i8,
/* 27656*/      OPC_MoveParent,
/* 27657*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->27687
/* 27660*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 27666*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27669*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 27678*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (and:{ *:[i16] } GR16:{ *:[i16] }:$src1, (rotl:{ *:[i16] } -2:{ *:[i16] }, GR8:{ *:[i8] }:$src2)) - Complexity = 11
                  // Dst: (BTR16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27687*/      /*SwitchType*/ 27, MVT::i32,// ->27716
/* 27689*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 27695*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27698*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 27707*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src1, (rotl:{ *:[i32] } -2:{ *:[i32] }, GR8:{ *:[i8] }:$src2)) - Complexity = 11
                  // Dst: (BTR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27716*/      /*SwitchType*/ 27, MVT::i64,// ->27745
/* 27718*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 27724*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27727*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 27736*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src1, (rotl:{ *:[i64] } -2:{ *:[i64] }, GR8:{ *:[i8] }:$src2)) - Complexity = 11
                  // Dst: (BTR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27745*/      0, // EndSwitchType
/* 27746*/    /*Scope*/ 109, /*->27856*/
/* 27747*/      OPC_MoveChild0,
/* 27748*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTL),
/* 27751*/      OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 27762*/      OPC_RecordChild1, // #0 = $src2
/* 27763*/      OPC_CheckChild1Type, MVT::i8,
/* 27765*/      OPC_MoveParent,
/* 27766*/      OPC_RecordChild1, // #1 = $src1
/* 27767*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->27797
/* 27770*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 27776*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27779*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 27788*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (and:{ *:[i16] } (rotl:{ *:[i16] } -2:{ *:[i16] }, GR8:{ *:[i8] }:$src2), GR16:{ *:[i16] }:$src1) - Complexity = 11
                  // Dst: (BTR16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27797*/      /*SwitchType*/ 27, MVT::i32,// ->27826
/* 27799*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 27805*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27808*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 27817*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (and:{ *:[i32] } (rotl:{ *:[i32] } -2:{ *:[i32] }, GR8:{ *:[i8] }:$src2), GR32:{ *:[i32] }:$src1) - Complexity = 11
                  // Dst: (BTR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27826*/      /*SwitchType*/ 27, MVT::i64,// ->27855
/* 27828*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 27834*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27837*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 27846*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (and:{ *:[i64] } (rotl:{ *:[i64] } -2:{ *:[i64] }, GR8:{ *:[i8] }:$src2), GR64:{ *:[i64] }:$src1) - Complexity = 11
                  // Dst: (BTR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 27855*/      0, // EndSwitchType
/* 27856*/    /*Scope*/ 25, /*->27882*/
/* 27857*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 27861*/      OPC_RecordChild0, // #0 = $src1
/* 27862*/      OPC_CheckType, MVT::i32,
/* 27864*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 27867*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2
/* 27875*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rr16), 0,
                    MVT::i32, 1/*#Ops*/, 2, 
                // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src1, 65535:{ *:[i32] }) - Complexity = 9
                // Dst: (MOVZX32rr16:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i16] } GR32:{ *:[i32] }:$src1, sub_16bit:{ *:[i32] }))
/* 27882*/    /*Scope*/ 57, /*->27940*/
/* 27883*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 27886*/      OPC_RecordChild0, // #0 = $src1
/* 27887*/      OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->27908
/* 27890*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27893*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 27901*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rr8), 0,
                      MVT::i32, 1/*#Ops*/, 2, 
                  // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src1, 255:{ *:[i32] }) - Complexity = 9
                  // Dst: (MOVZX32rr8:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR32:{ *:[i32] }:$src1, sub_8bit:{ *:[i32] }))
/* 27908*/      /*SwitchType*/ 29, MVT::i16,// ->27939
/* 27910*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 27913*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 27921*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                      MVT::i32, 1/*#Ops*/, 2,  // Results = #3
/* 27928*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 27931*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 3, 4, 
                  // Src: (and:{ *:[i16] } GR16:{ *:[i16] }:$src1, 255:{ *:[i16] }) - Complexity = 9
                  // Dst: (EXTRACT_SUBREG:{ *:[i16] } (MOVZX32rr8:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR16:{ *:[i16] }:$src1, sub_8bit:{ *:[i32] })), sub_16bit:{ *:[i32] })
/* 27939*/      0, // EndSwitchType
/* 27940*/    /*Scope*/ 42, /*->27983*/
/* 27941*/      OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/, 
/* 27947*/      OPC_RecordChild0, // #0 = $src
/* 27948*/      OPC_CheckType, MVT::i64,
/* 27950*/      OPC_EmitInteger, MVT::i64, 0, 
/* 27953*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 27956*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27964*/      OPC_EmitNode1, TARGET_VAL(X86::MOV32rr), 0,
                    MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 27971*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 27974*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::i64, 3/*#Ops*/, 1, 4, 5, 
                // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, 4294967295:{ *:[i64] }) - Complexity = 9
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32rr:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GR64:{ *:[i64] }:$src, sub_32bit:{ *:[i32] })), sub_32bit:{ *:[i32] })
/* 27983*/    /*Scope*/ 40, /*->28024*/
/* 27984*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 27988*/      OPC_RecordChild0, // #0 = $src
/* 27989*/      OPC_CheckType, MVT::i64,
/* 27991*/      OPC_EmitInteger, MVT::i64, 0, 
/* 27994*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 27997*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i16, 2/*#Ops*/, 0, 2,  // Results = #3
/* 28005*/      OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr16), 0,
                    MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 28012*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 28015*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::i64, 3/*#Ops*/, 1, 4, 5, 
                // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, 65535:{ *:[i64] }) - Complexity = 9
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rr16:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i16] } GR64:{ *:[i64] }:$src, sub_16bit:{ *:[i32] })), sub_32bit:{ *:[i32] })
/* 28024*/    /*Scope*/ 39, /*->28064*/
/* 28025*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 28028*/      OPC_RecordChild0, // #0 = $src
/* 28029*/      OPC_CheckType, MVT::i64,
/* 28031*/      OPC_EmitInteger, MVT::i64, 0, 
/* 28034*/      OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 28037*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i8, 2/*#Ops*/, 0, 2,  // Results = #3
/* 28045*/      OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                    MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 28052*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 28055*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::i64, 3/*#Ops*/, 1, 4, 5, 
                // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, 255:{ *:[i64] }) - Complexity = 9
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rr8:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR64:{ *:[i64] }:$src, sub_8bit:{ *:[i32] })), sub_32bit:{ *:[i32] })
/* 28064*/    /*Scope*/ 88|128,2/*344*/, /*->28410*/
/* 28066*/      OPC_RecordChild0, // #0 = $src1
/* 28067*/      OPC_RecordChild1, // #1 = $mask
/* 28068*/      OPC_MoveChild1,
/* 28069*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28072*/      OPC_Scope, 21, /*->28095*/ // 10 children in Scope
/* 28074*/        OPC_CheckPredicate, 42, // Predicate_BTRMask64
/* 28076*/        OPC_MoveParent,
/* 28077*/        OPC_CheckType, MVT::i64,
/* 28079*/        OPC_CheckPatternPredicate, 38, // (MF->getFunction().optForSize())
/* 28081*/        OPC_EmitConvertToTarget, 1,
/* 28083*/        OPC_EmitNodeXForm, 4, 2, // BTRXForm
/* 28086*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTR64ri8), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                  // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_BTRMask64>>:$mask) - Complexity = 8
                  // Dst: (BTR64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (BTRXForm:{ *:[i64] } (imm:{ *:[i64] }):$mask))
/* 28095*/      /*Scope*/ 45, /*->28141*/
/* 28096*/        OPC_CheckPredicate, 43, // Predicate_i64immZExt32SExt8
/* 28098*/        OPC_MoveParent,
/* 28099*/        OPC_CheckType, MVT::i64,
/* 28101*/        OPC_EmitInteger, MVT::i64, 0, 
/* 28104*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 28107*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 28115*/        OPC_EmitConvertToTarget, 1,
/* 28117*/        OPC_EmitNodeXForm, 5, 5, // GetLo8XForm
/* 28120*/        OPC_EmitNode2, TARGET_VAL(X86::AND32ri8), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7 #8
/* 28129*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 28132*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 7, 9, 
                  // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_i64immZExt32SExt8>>:$imm) - Complexity = 8
                  // 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] })
/* 28141*/      /*Scope*/ 45, /*->28187*/
/* 28142*/        OPC_CheckPredicate, 44, // Predicate_i64immZExt32
/* 28144*/        OPC_MoveParent,
/* 28145*/        OPC_CheckType, MVT::i64,
/* 28147*/        OPC_EmitInteger, MVT::i64, 0, 
/* 28150*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 28153*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 28161*/        OPC_EmitConvertToTarget, 1,
/* 28163*/        OPC_EmitNodeXForm, 6, 5, // GetLo32XForm
/* 28166*/        OPC_EmitNode2, TARGET_VAL(X86::AND32ri), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7 #8
/* 28175*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 28178*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 7, 9, 
                  // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_i64immZExt32>>:$imm) - Complexity = 8
                  // 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] })
/* 28187*/      /*Scope*/ 21, /*->28209*/
/* 28188*/        OPC_CheckPredicate, 41, // Predicate_AndMask64
/* 28190*/        OPC_MoveParent,
/* 28191*/        OPC_CheckType, MVT::i64,
/* 28193*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 28195*/        OPC_EmitConvertToTarget, 1,
/* 28197*/        OPC_EmitNodeXForm, 2, 2, // BEXTRMaskXForm
/* 28200*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTRI64ri), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                  // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_AndMask64>>:$mask) - Complexity = 7
                  // Dst: (BEXTRI64ri:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (BEXTRMaskXForm:{ *:[i64] } (imm:{ *:[i64] }):$mask))
/* 28209*/      /*Scope*/ 16, /*->28226*/
/* 28210*/        OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 28212*/        OPC_MoveParent,
/* 28213*/        OPC_CheckType, MVT::i16,
/* 28215*/        OPC_EmitConvertToTarget, 1,
/* 28217*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND16ri8), 0,
                      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)
/* 28226*/      /*Scope*/ 16, /*->28243*/
/* 28227*/        OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 28229*/        OPC_MoveParent,
/* 28230*/        OPC_CheckType, MVT::i32,
/* 28232*/        OPC_EmitConvertToTarget, 1,
/* 28234*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND32ri8), 0,
                      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)
/* 28243*/      /*Scope*/ 16, /*->28260*/
/* 28244*/        OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 28246*/        OPC_MoveParent,
/* 28247*/        OPC_CheckType, MVT::i64,
/* 28249*/        OPC_EmitConvertToTarget, 1,
/* 28251*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND64ri8), 0,
                      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)
/* 28260*/      /*Scope*/ 16, /*->28277*/
/* 28261*/        OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 28263*/        OPC_MoveParent,
/* 28264*/        OPC_CheckType, MVT::i64,
/* 28266*/        OPC_EmitConvertToTarget, 1,
/* 28268*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND64ri32), 0,
                      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)
/* 28277*/      /*Scope*/ 88, /*->28366*/
/* 28278*/        OPC_CheckPredicate, 41, // Predicate_AndMask64
/* 28280*/        OPC_MoveParent,
/* 28281*/        OPC_CheckType, MVT::i64,
/* 28283*/        OPC_Scope, 38, /*->28323*/ // 2 children in Scope
/* 28285*/          OPC_CheckPatternPredicate, 35, // (Subtarget->hasBMI()) && (!Subtarget->hasBMI2()) && (!Subtarget->hasTBM())
/* 28287*/          OPC_EmitInteger, MVT::i64, 0, 
/* 28290*/          OPC_EmitConvertToTarget, 1,
/* 28292*/          OPC_EmitNodeXForm, 2, 3, // BEXTRMaskXForm
/* 28295*/          OPC_EmitNode1, TARGET_VAL(X86::MOV32ri), 0,
                        MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/* 28302*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 28305*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 5, 6,  // Results = #7
/* 28314*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTR64rr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 7, 
                    // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_AndMask64>>:$mask) - Complexity = 7
                    // Dst: (BEXTR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32ri:{ *:[i32] } (BEXTRMaskXForm:{ *:[i32] } (imm:{ *:[i64] }):$mask)), sub_32bit:{ *:[i32] }))
/* 28323*/        /*Scope*/ 41, /*->28365*/
/* 28324*/          OPC_CheckPatternPredicate, 36, // (Subtarget->hasBMI2()) && (!Subtarget->hasTBM())
/* 28326*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 28332*/          OPC_EmitConvertToTarget, 1,
/* 28334*/          OPC_EmitNodeXForm, 3, 3, // CountTrailingOnes
/* 28337*/          OPC_EmitNode1, TARGET_VAL(X86::MOV8ri), 0,
                        MVT::i8, 1/*#Ops*/, 4,  // Results = #5
/* 28344*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 28347*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 5, 6,  // Results = #7
/* 28356*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 7, 
                    // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_AndMask64>>:$mask) - Complexity = 7
                    // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (MOV8ri:{ *:[i8] } (CountTrailingOnes:{ *:[i8] } (imm:{ *:[i64] }):$mask)), sub_8bit:{ *:[i32] }))
/* 28365*/        0, /*End of Scope*/
/* 28366*/      /*Scope*/ 42, /*->28409*/
/* 28367*/        OPC_MoveParent,
/* 28368*/        OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->28382
/* 28371*/          OPC_EmitConvertToTarget, 1,
/* 28373*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND8ri), 0,
                        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)
/* 28382*/        /*SwitchType*/ 11, MVT::i16,// ->28395
/* 28384*/          OPC_EmitConvertToTarget, 1,
/* 28386*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND16ri), 0,
                        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)
/* 28395*/        /*SwitchType*/ 11, MVT::i32,// ->28408
/* 28397*/          OPC_EmitConvertToTarget, 1,
/* 28399*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND32ri), 0,
                        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)
/* 28408*/        0, // EndSwitchType
/* 28409*/      0, /*End of Scope*/
/* 28410*/    /*Scope*/ 46, /*->28457*/
/* 28411*/      OPC_MoveChild0,
/* 28412*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 28415*/      OPC_RecordChild0, // #0 = $src1
/* 28416*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28427*/      OPC_MoveParent,
/* 28428*/      OPC_RecordChild1, // #1 = $src2
/* 28429*/      OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->28443
/* 28432*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 28434*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src2) - Complexity = 5
                  // Dst: (ANDN32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 28443*/      /*SwitchType*/ 11, MVT::i64,// ->28456
/* 28445*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 28447*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[i64] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src2) - Complexity = 5
                  // Dst: (ANDN64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 28456*/      0, // EndSwitchType
/* 28457*/    /*Scope*/ 124|128,6/*892*/, /*->29351*/
/* 28459*/      OPC_RecordChild0, // #0 = $src2
/* 28460*/      OPC_Scope, 45, /*->28507*/ // 3 children in Scope
/* 28462*/        OPC_MoveChild1,
/* 28463*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 28466*/        OPC_RecordChild0, // #1 = $src1
/* 28467*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28478*/        OPC_MoveParent,
/* 28479*/        OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->28493
/* 28482*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 28484*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN32rr), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 0, 
                    // Src: (and:{ *:[i32] } GR32:{ *:[i32] }:$src2, (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] })) - Complexity = 5
                    // Dst: (ANDN32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 28493*/        /*SwitchType*/ 11, MVT::i64,// ->28506
/* 28495*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 28497*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN64rr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 0, 
                    // Src: (and:{ *:[i64] } GR64:{ *:[i64] }:$src2, (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] })) - Complexity = 5
                    // Dst: (ANDN64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 28506*/        0, // EndSwitchType
/* 28507*/      /*Scope*/ 47, /*->28555*/
/* 28508*/        OPC_RecordChild1, // #1 = $src2
/* 28509*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->28521
/* 28512*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND8rr), 0,
                        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)
/* 28521*/        /*SwitchType*/ 9, MVT::i16,// ->28532
/* 28523*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND16rr), 0,
                        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)
/* 28532*/        /*SwitchType*/ 9, MVT::i32,// ->28543
/* 28534*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND32rr), 0,
                        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)
/* 28543*/        /*SwitchType*/ 9, MVT::i64,// ->28554
/* 28545*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND64rr), 0,
                        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)
/* 28554*/        0, // EndSwitchType
/* 28555*/      /*Scope*/ 25|128,6/*793*/, /*->29350*/
/* 28557*/        OPC_MoveChild1,
/* 28558*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 28561*/        OPC_MoveChild0,
/* 28562*/        OPC_SwitchOpcode /*2 cases */, 27|128,4/*539*/, TARGET_VAL(ISD::BITCAST),// ->29106
/* 28567*/          OPC_MoveChild0,
/* 28568*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 28571*/          OPC_Scope, 84|128,3/*468*/, /*->29042*/ // 2 children in Scope
/* 28574*/            OPC_RecordChild0, // #1 = $src1
/* 28575*/            OPC_MoveChild1,
/* 28576*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28579*/            OPC_RecordMemRef,
/* 28580*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 28581*/            OPC_CheckFoldableChainNode,
/* 28582*/            OPC_RecordChild1, // #3 = $src2
/* 28583*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28585*/            OPC_CheckPredicate, 9, // Predicate_load
/* 28587*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 28589*/            OPC_MoveParent,
/* 28590*/            OPC_SwitchType /*3 cases */, 19|128,1/*147*/, MVT::v8i64,// ->28741
/* 28594*/              OPC_MoveParent,
/* 28595*/              OPC_SwitchType /*2 cases */, 70, MVT::v32i16,// ->28668
/* 28598*/                OPC_MoveParent,
/* 28599*/                OPC_MoveChild1,
/* 28600*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 28603*/                OPC_MoveChild0,
/* 28604*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 28607*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 28609*/                OPC_CheckType, MVT::v16i32,
/* 28611*/                OPC_MoveParent,
/* 28612*/                OPC_MoveParent,
/* 28613*/                OPC_MoveChild2,
/* 28614*/                OPC_Scope, 25, /*->28641*/ // 2 children in Scope
/* 28616*/                  OPC_CheckCondCode, ISD::SETNE,
/* 28618*/                  OPC_MoveParent,
/* 28619*/                  OPC_MoveParent,
/* 28620*/                  OPC_CheckType, MVT::v32i1,
/* 28622*/                  OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 28624*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 28627*/                  OPC_EmitMergeInputChains1_2,
/* 28628*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v32i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTMWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 28641*/                /*Scope*/ 25, /*->28667*/
/* 28642*/                  OPC_CheckCondCode, ISD::SETEQ,
/* 28644*/                  OPC_MoveParent,
/* 28645*/                  OPC_MoveParent,
/* 28646*/                  OPC_CheckType, MVT::v32i1,
/* 28648*/                  OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 28650*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 28653*/                  OPC_EmitMergeInputChains1_2,
/* 28654*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v32i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTNMWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 28667*/                0, /*End of Scope*/
/* 28668*/              /*SwitchType*/ 70, MVT::v64i8,// ->28740
/* 28670*/                OPC_MoveParent,
/* 28671*/                OPC_MoveChild1,
/* 28672*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 28675*/                OPC_MoveChild0,
/* 28676*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 28679*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 28681*/                OPC_CheckType, MVT::v16i32,
/* 28683*/                OPC_MoveParent,
/* 28684*/                OPC_MoveParent,
/* 28685*/                OPC_MoveChild2,
/* 28686*/                OPC_Scope, 25, /*->28713*/ // 2 children in Scope
/* 28688*/                  OPC_CheckCondCode, ISD::SETNE,
/* 28690*/                  OPC_MoveParent,
/* 28691*/                  OPC_MoveParent,
/* 28692*/                  OPC_CheckType, MVT::v64i1,
/* 28694*/                  OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 28696*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 28699*/                  OPC_EmitMergeInputChains1_2,
/* 28700*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v64i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 28713*/                /*Scope*/ 25, /*->28739*/
/* 28714*/                  OPC_CheckCondCode, ISD::SETEQ,
/* 28716*/                  OPC_MoveParent,
/* 28717*/                  OPC_MoveParent,
/* 28718*/                  OPC_CheckType, MVT::v64i1,
/* 28720*/                  OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 28722*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 28725*/                  OPC_EmitMergeInputChains1_2,
/* 28726*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v64i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTNMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 28739*/                0, /*End of Scope*/
/* 28740*/              0, // EndSwitchType
/* 28741*/            /*SwitchType*/ 19|128,1/*147*/, MVT::v4i64,// ->28891
/* 28744*/              OPC_MoveParent,
/* 28745*/              OPC_SwitchType /*2 cases */, 70, MVT::v16i16,// ->28818
/* 28748*/                OPC_MoveParent,
/* 28749*/                OPC_MoveChild1,
/* 28750*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 28753*/                OPC_MoveChild0,
/* 28754*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 28757*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 28759*/                OPC_CheckType, MVT::v8i32,
/* 28761*/                OPC_MoveParent,
/* 28762*/                OPC_MoveParent,
/* 28763*/                OPC_MoveChild2,
/* 28764*/                OPC_Scope, 25, /*->28791*/ // 2 children in Scope
/* 28766*/                  OPC_CheckCondCode, ISD::SETNE,
/* 28768*/                  OPC_MoveParent,
/* 28769*/                  OPC_MoveParent,
/* 28770*/                  OPC_CheckType, MVT::v16i1,
/* 28772*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 28774*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 28777*/                  OPC_EmitMergeInputChains1_2,
/* 28778*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTMWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 28791*/                /*Scope*/ 25, /*->28817*/
/* 28792*/                  OPC_CheckCondCode, ISD::SETEQ,
/* 28794*/                  OPC_MoveParent,
/* 28795*/                  OPC_MoveParent,
/* 28796*/                  OPC_CheckType, MVT::v16i1,
/* 28798*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 28800*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 28803*/                  OPC_EmitMergeInputChains1_2,
/* 28804*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTNMWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 28817*/                0, /*End of Scope*/
/* 28818*/              /*SwitchType*/ 70, MVT::v32i8,// ->28890
/* 28820*/                OPC_MoveParent,
/* 28821*/                OPC_MoveChild1,
/* 28822*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 28825*/                OPC_MoveChild0,
/* 28826*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 28829*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 28831*/                OPC_CheckType, MVT::v8i32,
/* 28833*/                OPC_MoveParent,
/* 28834*/                OPC_MoveParent,
/* 28835*/                OPC_MoveChild2,
/* 28836*/                OPC_Scope, 25, /*->28863*/ // 2 children in Scope
/* 28838*/                  OPC_CheckCondCode, ISD::SETNE,
/* 28840*/                  OPC_MoveParent,
/* 28841*/                  OPC_MoveParent,
/* 28842*/                  OPC_CheckType, MVT::v32i1,
/* 28844*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 28846*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 28849*/                  OPC_EmitMergeInputChains1_2,
/* 28850*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v32i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 28863*/                /*Scope*/ 25, /*->28889*/
/* 28864*/                  OPC_CheckCondCode, ISD::SETEQ,
/* 28866*/                  OPC_MoveParent,
/* 28867*/                  OPC_MoveParent,
/* 28868*/                  OPC_CheckType, MVT::v32i1,
/* 28870*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 28872*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 28875*/                  OPC_EmitMergeInputChains1_2,
/* 28876*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v32i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTNMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 28889*/                0, /*End of Scope*/
/* 28890*/              0, // EndSwitchType
/* 28891*/            /*SwitchType*/ 19|128,1/*147*/, MVT::v2i64,// ->29041
/* 28894*/              OPC_MoveParent,
/* 28895*/              OPC_SwitchType /*2 cases */, 70, MVT::v8i16,// ->28968
/* 28898*/                OPC_MoveParent,
/* 28899*/                OPC_MoveChild1,
/* 28900*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 28903*/                OPC_MoveChild0,
/* 28904*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 28907*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 28909*/                OPC_CheckType, MVT::v4i32,
/* 28911*/                OPC_MoveParent,
/* 28912*/                OPC_MoveParent,
/* 28913*/                OPC_MoveChild2,
/* 28914*/                OPC_Scope, 25, /*->28941*/ // 2 children in Scope
/* 28916*/                  OPC_CheckCondCode, ISD::SETNE,
/* 28918*/                  OPC_MoveParent,
/* 28919*/                  OPC_MoveParent,
/* 28920*/                  OPC_CheckType, MVT::v8i1,
/* 28922*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 28924*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 28927*/                  OPC_EmitMergeInputChains1_2,
/* 28928*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTMWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 28941*/                /*Scope*/ 25, /*->28967*/
/* 28942*/                  OPC_CheckCondCode, ISD::SETEQ,
/* 28944*/                  OPC_MoveParent,
/* 28945*/                  OPC_MoveParent,
/* 28946*/                  OPC_CheckType, MVT::v8i1,
/* 28948*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 28950*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 28953*/                  OPC_EmitMergeInputChains1_2,
/* 28954*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTNMWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 28967*/                0, /*End of Scope*/
/* 28968*/              /*SwitchType*/ 70, MVT::v16i8,// ->29040
/* 28970*/                OPC_MoveParent,
/* 28971*/                OPC_MoveChild1,
/* 28972*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 28975*/                OPC_MoveChild0,
/* 28976*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 28979*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 28981*/                OPC_CheckType, MVT::v4i32,
/* 28983*/                OPC_MoveParent,
/* 28984*/                OPC_MoveParent,
/* 28985*/                OPC_MoveChild2,
/* 28986*/                OPC_Scope, 25, /*->29013*/ // 2 children in Scope
/* 28988*/                  OPC_CheckCondCode, ISD::SETNE,
/* 28990*/                  OPC_MoveParent,
/* 28991*/                  OPC_MoveParent,
/* 28992*/                  OPC_CheckType, MVT::v16i1,
/* 28994*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 28996*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 28999*/                  OPC_EmitMergeInputChains1_2,
/* 29000*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29013*/                /*Scope*/ 25, /*->29039*/
/* 29014*/                  OPC_CheckCondCode, ISD::SETEQ,
/* 29016*/                  OPC_MoveParent,
/* 29017*/                  OPC_MoveParent,
/* 29018*/                  OPC_CheckType, MVT::v16i1,
/* 29020*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 29022*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29025*/                  OPC_EmitMergeInputChains1_2,
/* 29026*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                            // Dst: (VPTESTNMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29039*/                0, /*End of Scope*/
/* 29040*/              0, // EndSwitchType
/* 29041*/            0, // EndSwitchType
/* 29042*/          /*Scope*/ 62, /*->29105*/
/* 29043*/            OPC_MoveChild0,
/* 29044*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29047*/            OPC_RecordMemRef,
/* 29048*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 29049*/            OPC_CheckFoldableChainNode,
/* 29050*/            OPC_RecordChild1, // #2 = $src2
/* 29051*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29053*/            OPC_CheckPredicate, 9, // Predicate_load
/* 29055*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 29057*/            OPC_MoveParent,
/* 29058*/            OPC_RecordChild1, // #3 = $src1
/* 29059*/            OPC_CheckType, MVT::v8i64,
/* 29061*/            OPC_MoveParent,
/* 29062*/            OPC_CheckType, MVT::v32i16,
/* 29064*/            OPC_MoveParent,
/* 29065*/            OPC_MoveChild1,
/* 29066*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29069*/            OPC_MoveChild0,
/* 29070*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29073*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29075*/            OPC_CheckType, MVT::v16i32,
/* 29077*/            OPC_MoveParent,
/* 29078*/            OPC_MoveParent,
/* 29079*/            OPC_MoveChild2,
/* 29080*/            OPC_CheckCondCode, ISD::SETNE,
/* 29082*/            OPC_MoveParent,
/* 29083*/            OPC_MoveParent,
/* 29084*/            OPC_CheckType, MVT::v32i1,
/* 29086*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 29088*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29091*/            OPC_EmitMergeInputChains1_1,
/* 29092*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                      // Dst: (VPTESTMWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29105*/          0, /*End of Scope*/
/* 29106*/        /*SwitchOpcode*/ 111|128,1/*239*/, TARGET_VAL(ISD::AND),// ->29349
/* 29110*/          OPC_RecordChild0, // #1 = $src1
/* 29111*/          OPC_MoveChild1,
/* 29112*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 29115*/          OPC_MoveChild0,
/* 29116*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29119*/          OPC_RecordMemRef,
/* 29120*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 29121*/          OPC_CheckFoldableChainNode,
/* 29122*/          OPC_RecordChild1, // #3 = $src2
/* 29123*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29125*/          OPC_CheckPredicate, 9, // Predicate_load
/* 29127*/          OPC_CheckType, MVT::i64,
/* 29129*/          OPC_MoveParent,
/* 29130*/          OPC_MoveParent,
/* 29131*/          OPC_SwitchType /*3 cases */, 70, MVT::v8i64,// ->29204
/* 29134*/            OPC_MoveParent,
/* 29135*/            OPC_MoveChild1,
/* 29136*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29139*/            OPC_MoveChild0,
/* 29140*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29143*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29145*/            OPC_CheckType, MVT::v16i32,
/* 29147*/            OPC_MoveParent,
/* 29148*/            OPC_MoveParent,
/* 29149*/            OPC_MoveChild2,
/* 29150*/            OPC_Scope, 25, /*->29177*/ // 2 children in Scope
/* 29152*/              OPC_CheckCondCode, ISD::SETNE,
/* 29154*/              OPC_MoveParent,
/* 29155*/              OPC_MoveParent,
/* 29156*/              OPC_CheckType, MVT::v8i1,
/* 29158*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 29160*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29163*/              OPC_EmitMergeInputChains1_2,
/* 29164*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                        // Dst: (VPTESTMQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29177*/            /*Scope*/ 25, /*->29203*/
/* 29178*/              OPC_CheckCondCode, ISD::SETEQ,
/* 29180*/              OPC_MoveParent,
/* 29181*/              OPC_MoveParent,
/* 29182*/              OPC_CheckType, MVT::v8i1,
/* 29184*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 29186*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29189*/              OPC_EmitMergeInputChains1_2,
/* 29190*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                        // Dst: (VPTESTNMQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29203*/            0, /*End of Scope*/
/* 29204*/          /*SwitchType*/ 70, MVT::v4i64,// ->29276
/* 29206*/            OPC_MoveParent,
/* 29207*/            OPC_MoveChild1,
/* 29208*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29211*/            OPC_MoveChild0,
/* 29212*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29215*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29217*/            OPC_CheckType, MVT::v8i32,
/* 29219*/            OPC_MoveParent,
/* 29220*/            OPC_MoveParent,
/* 29221*/            OPC_MoveChild2,
/* 29222*/            OPC_Scope, 25, /*->29249*/ // 2 children in Scope
/* 29224*/              OPC_CheckCondCode, ISD::SETNE,
/* 29226*/              OPC_MoveParent,
/* 29227*/              OPC_MoveParent,
/* 29228*/              OPC_CheckType, MVT::v4i1,
/* 29230*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 29232*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29235*/              OPC_EmitMergeInputChains1_2,
/* 29236*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                        // Dst: (VPTESTMQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29249*/            /*Scope*/ 25, /*->29275*/
/* 29250*/              OPC_CheckCondCode, ISD::SETEQ,
/* 29252*/              OPC_MoveParent,
/* 29253*/              OPC_MoveParent,
/* 29254*/              OPC_CheckType, MVT::v4i1,
/* 29256*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 29258*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29261*/              OPC_EmitMergeInputChains1_2,
/* 29262*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                        // Dst: (VPTESTNMQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29275*/            0, /*End of Scope*/
/* 29276*/          /*SwitchType*/ 70, MVT::v2i64,// ->29348
/* 29278*/            OPC_MoveParent,
/* 29279*/            OPC_MoveChild1,
/* 29280*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29283*/            OPC_MoveChild0,
/* 29284*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29287*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29289*/            OPC_CheckType, MVT::v4i32,
/* 29291*/            OPC_MoveParent,
/* 29292*/            OPC_MoveParent,
/* 29293*/            OPC_MoveChild2,
/* 29294*/            OPC_Scope, 25, /*->29321*/ // 2 children in Scope
/* 29296*/              OPC_CheckCondCode, ISD::SETNE,
/* 29298*/              OPC_MoveParent,
/* 29299*/              OPC_MoveParent,
/* 29300*/              OPC_CheckType, MVT::v2i1,
/* 29302*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 29304*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29307*/              OPC_EmitMergeInputChains1_2,
/* 29308*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                        // Dst: (VPTESTMQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29321*/            /*Scope*/ 25, /*->29347*/
/* 29322*/              OPC_CheckCondCode, ISD::SETEQ,
/* 29324*/              OPC_MoveParent,
/* 29325*/              OPC_MoveParent,
/* 29326*/              OPC_CheckType, MVT::v2i1,
/* 29328*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 29330*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29333*/              OPC_EmitMergeInputChains1_2,
/* 29334*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                        // Dst: (VPTESTNMQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29347*/            0, /*End of Scope*/
/* 29348*/          0, // EndSwitchType
/* 29349*/        0, // EndSwitchOpcode
/* 29350*/      0, /*End of Scope*/
/* 29351*/    /*Scope*/ 14|128,1/*142*/, /*->29495*/
/* 29353*/      OPC_MoveChild0,
/* 29354*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 29357*/      OPC_MoveChild0,
/* 29358*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29361*/      OPC_MoveChild0,
/* 29362*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 29365*/      OPC_Scope, 63, /*->29430*/ // 2 children in Scope
/* 29367*/        OPC_RecordChild0, // #0 = $src1
/* 29368*/        OPC_MoveChild1,
/* 29369*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29372*/        OPC_RecordMemRef,
/* 29373*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 29374*/        OPC_CheckFoldableChainNode,
/* 29375*/        OPC_RecordChild1, // #2 = $src2
/* 29376*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29378*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29380*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 29382*/        OPC_MoveParent,
/* 29383*/        OPC_CheckType, MVT::v8i64,
/* 29385*/        OPC_MoveParent,
/* 29386*/        OPC_CheckType, MVT::v32i16,
/* 29388*/        OPC_MoveParent,
/* 29389*/        OPC_MoveChild1,
/* 29390*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29393*/        OPC_MoveChild0,
/* 29394*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29397*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29399*/        OPC_CheckType, MVT::v16i32,
/* 29401*/        OPC_MoveParent,
/* 29402*/        OPC_MoveParent,
/* 29403*/        OPC_MoveChild2,
/* 29404*/        OPC_CheckCondCode, ISD::SETNE,
/* 29406*/        OPC_MoveParent,
/* 29407*/        OPC_MoveParent,
/* 29408*/        OPC_RecordChild1, // #3 = $mask
/* 29409*/        OPC_CheckType, MVT::v32i1,
/* 29411*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 29413*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29416*/        OPC_EmitMergeInputChains1_1,
/* 29417*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29430*/      /*Scope*/ 63, /*->29494*/
/* 29431*/        OPC_MoveChild0,
/* 29432*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29435*/        OPC_RecordMemRef,
/* 29436*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 29437*/        OPC_CheckFoldableChainNode,
/* 29438*/        OPC_RecordChild1, // #1 = $src2
/* 29439*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29441*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29443*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 29445*/        OPC_MoveParent,
/* 29446*/        OPC_RecordChild1, // #2 = $src1
/* 29447*/        OPC_CheckType, MVT::v8i64,
/* 29449*/        OPC_MoveParent,
/* 29450*/        OPC_CheckType, MVT::v32i16,
/* 29452*/        OPC_MoveParent,
/* 29453*/        OPC_MoveChild1,
/* 29454*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29457*/        OPC_MoveChild0,
/* 29458*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29461*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29463*/        OPC_CheckType, MVT::v16i32,
/* 29465*/        OPC_MoveParent,
/* 29466*/        OPC_MoveParent,
/* 29467*/        OPC_MoveChild2,
/* 29468*/        OPC_CheckCondCode, ISD::SETNE,
/* 29470*/        OPC_MoveParent,
/* 29471*/        OPC_MoveParent,
/* 29472*/        OPC_RecordChild1, // #3 = $mask
/* 29473*/        OPC_CheckType, MVT::v32i1,
/* 29475*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 29477*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29480*/        OPC_EmitMergeInputChains1_0,
/* 29481*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29494*/      0, /*End of Scope*/
/* 29495*/    /*Scope*/ 75, /*->29571*/
/* 29496*/      OPC_RecordChild0, // #0 = $mask
/* 29497*/      OPC_MoveChild1,
/* 29498*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 29501*/      OPC_MoveChild0,
/* 29502*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29505*/      OPC_MoveChild0,
/* 29506*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 29509*/      OPC_MoveChild0,
/* 29510*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29513*/      OPC_RecordMemRef,
/* 29514*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 29515*/      OPC_CheckFoldableChainNode,
/* 29516*/      OPC_RecordChild1, // #2 = $src2
/* 29517*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29519*/      OPC_CheckPredicate, 9, // Predicate_load
/* 29521*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 29523*/      OPC_MoveParent,
/* 29524*/      OPC_RecordChild1, // #3 = $src1
/* 29525*/      OPC_CheckType, MVT::v8i64,
/* 29527*/      OPC_MoveParent,
/* 29528*/      OPC_CheckType, MVT::v64i8,
/* 29530*/      OPC_MoveParent,
/* 29531*/      OPC_MoveChild1,
/* 29532*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29535*/      OPC_MoveChild0,
/* 29536*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29539*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29541*/      OPC_CheckType, MVT::v16i32,
/* 29543*/      OPC_MoveParent,
/* 29544*/      OPC_MoveParent,
/* 29545*/      OPC_MoveChild2,
/* 29546*/      OPC_CheckCondCode, ISD::SETNE,
/* 29548*/      OPC_MoveParent,
/* 29549*/      OPC_MoveParent,
/* 29550*/      OPC_CheckType, MVT::v64i1,
/* 29552*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 29554*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29557*/      OPC_EmitMergeInputChains1_1,
/* 29558*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v64i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29571*/    /*Scope*/ 14|128,1/*142*/, /*->29715*/
/* 29573*/      OPC_MoveChild0,
/* 29574*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 29577*/      OPC_MoveChild0,
/* 29578*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29581*/      OPC_MoveChild0,
/* 29582*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 29585*/      OPC_Scope, 63, /*->29650*/ // 2 children in Scope
/* 29587*/        OPC_RecordChild0, // #0 = $src1
/* 29588*/        OPC_MoveChild1,
/* 29589*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29592*/        OPC_RecordMemRef,
/* 29593*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 29594*/        OPC_CheckFoldableChainNode,
/* 29595*/        OPC_RecordChild1, // #2 = $src2
/* 29596*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29598*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29600*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 29602*/        OPC_MoveParent,
/* 29603*/        OPC_CheckType, MVT::v8i64,
/* 29605*/        OPC_MoveParent,
/* 29606*/        OPC_CheckType, MVT::v64i8,
/* 29608*/        OPC_MoveParent,
/* 29609*/        OPC_MoveChild1,
/* 29610*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29613*/        OPC_MoveChild0,
/* 29614*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29617*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29619*/        OPC_CheckType, MVT::v16i32,
/* 29621*/        OPC_MoveParent,
/* 29622*/        OPC_MoveParent,
/* 29623*/        OPC_MoveChild2,
/* 29624*/        OPC_CheckCondCode, ISD::SETNE,
/* 29626*/        OPC_MoveParent,
/* 29627*/        OPC_MoveParent,
/* 29628*/        OPC_RecordChild1, // #3 = $mask
/* 29629*/        OPC_CheckType, MVT::v64i1,
/* 29631*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 29633*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29636*/        OPC_EmitMergeInputChains1_1,
/* 29637*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29650*/      /*Scope*/ 63, /*->29714*/
/* 29651*/        OPC_MoveChild0,
/* 29652*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29655*/        OPC_RecordMemRef,
/* 29656*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 29657*/        OPC_CheckFoldableChainNode,
/* 29658*/        OPC_RecordChild1, // #1 = $src2
/* 29659*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29661*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29663*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 29665*/        OPC_MoveParent,
/* 29666*/        OPC_RecordChild1, // #2 = $src1
/* 29667*/        OPC_CheckType, MVT::v8i64,
/* 29669*/        OPC_MoveParent,
/* 29670*/        OPC_CheckType, MVT::v64i8,
/* 29672*/        OPC_MoveParent,
/* 29673*/        OPC_MoveChild1,
/* 29674*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29677*/        OPC_MoveChild0,
/* 29678*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29681*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29683*/        OPC_CheckType, MVT::v16i32,
/* 29685*/        OPC_MoveParent,
/* 29686*/        OPC_MoveParent,
/* 29687*/        OPC_MoveChild2,
/* 29688*/        OPC_CheckCondCode, ISD::SETNE,
/* 29690*/        OPC_MoveParent,
/* 29691*/        OPC_MoveParent,
/* 29692*/        OPC_RecordChild1, // #3 = $mask
/* 29693*/        OPC_CheckType, MVT::v64i1,
/* 29695*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 29697*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29700*/        OPC_EmitMergeInputChains1_0,
/* 29701*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29714*/      0, /*End of Scope*/
/* 29715*/    /*Scope*/ 75, /*->29791*/
/* 29716*/      OPC_RecordChild0, // #0 = $mask
/* 29717*/      OPC_MoveChild1,
/* 29718*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 29721*/      OPC_MoveChild0,
/* 29722*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29725*/      OPC_MoveChild0,
/* 29726*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 29729*/      OPC_MoveChild0,
/* 29730*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29733*/      OPC_RecordMemRef,
/* 29734*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 29735*/      OPC_CheckFoldableChainNode,
/* 29736*/      OPC_RecordChild1, // #2 = $src2
/* 29737*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29739*/      OPC_CheckPredicate, 9, // Predicate_load
/* 29741*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 29743*/      OPC_MoveParent,
/* 29744*/      OPC_RecordChild1, // #3 = $src1
/* 29745*/      OPC_CheckType, MVT::v4i64,
/* 29747*/      OPC_MoveParent,
/* 29748*/      OPC_CheckType, MVT::v16i16,
/* 29750*/      OPC_MoveParent,
/* 29751*/      OPC_MoveChild1,
/* 29752*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29755*/      OPC_MoveChild0,
/* 29756*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29759*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29761*/      OPC_CheckType, MVT::v8i32,
/* 29763*/      OPC_MoveParent,
/* 29764*/      OPC_MoveParent,
/* 29765*/      OPC_MoveChild2,
/* 29766*/      OPC_CheckCondCode, ISD::SETNE,
/* 29768*/      OPC_MoveParent,
/* 29769*/      OPC_MoveParent,
/* 29770*/      OPC_CheckType, MVT::v16i1,
/* 29772*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 29774*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29777*/      OPC_EmitMergeInputChains1_1,
/* 29778*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTMWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29791*/    /*Scope*/ 14|128,1/*142*/, /*->29935*/
/* 29793*/      OPC_MoveChild0,
/* 29794*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 29797*/      OPC_MoveChild0,
/* 29798*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29801*/      OPC_MoveChild0,
/* 29802*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 29805*/      OPC_Scope, 63, /*->29870*/ // 2 children in Scope
/* 29807*/        OPC_RecordChild0, // #0 = $src1
/* 29808*/        OPC_MoveChild1,
/* 29809*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29812*/        OPC_RecordMemRef,
/* 29813*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 29814*/        OPC_CheckFoldableChainNode,
/* 29815*/        OPC_RecordChild1, // #2 = $src2
/* 29816*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29818*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29820*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 29822*/        OPC_MoveParent,
/* 29823*/        OPC_CheckType, MVT::v4i64,
/* 29825*/        OPC_MoveParent,
/* 29826*/        OPC_CheckType, MVT::v16i16,
/* 29828*/        OPC_MoveParent,
/* 29829*/        OPC_MoveChild1,
/* 29830*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29833*/        OPC_MoveChild0,
/* 29834*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29837*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29839*/        OPC_CheckType, MVT::v8i32,
/* 29841*/        OPC_MoveParent,
/* 29842*/        OPC_MoveParent,
/* 29843*/        OPC_MoveChild2,
/* 29844*/        OPC_CheckCondCode, ISD::SETNE,
/* 29846*/        OPC_MoveParent,
/* 29847*/        OPC_MoveParent,
/* 29848*/        OPC_RecordChild1, // #3 = $mask
/* 29849*/        OPC_CheckType, MVT::v16i1,
/* 29851*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 29853*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29856*/        OPC_EmitMergeInputChains1_1,
/* 29857*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29870*/      /*Scope*/ 63, /*->29934*/
/* 29871*/        OPC_MoveChild0,
/* 29872*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29875*/        OPC_RecordMemRef,
/* 29876*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 29877*/        OPC_CheckFoldableChainNode,
/* 29878*/        OPC_RecordChild1, // #1 = $src2
/* 29879*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29881*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29883*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 29885*/        OPC_MoveParent,
/* 29886*/        OPC_RecordChild1, // #2 = $src1
/* 29887*/        OPC_CheckType, MVT::v4i64,
/* 29889*/        OPC_MoveParent,
/* 29890*/        OPC_CheckType, MVT::v16i16,
/* 29892*/        OPC_MoveParent,
/* 29893*/        OPC_MoveChild1,
/* 29894*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29897*/        OPC_MoveChild0,
/* 29898*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29901*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29903*/        OPC_CheckType, MVT::v8i32,
/* 29905*/        OPC_MoveParent,
/* 29906*/        OPC_MoveParent,
/* 29907*/        OPC_MoveChild2,
/* 29908*/        OPC_CheckCondCode, ISD::SETNE,
/* 29910*/        OPC_MoveParent,
/* 29911*/        OPC_MoveParent,
/* 29912*/        OPC_RecordChild1, // #3 = $mask
/* 29913*/        OPC_CheckType, MVT::v16i1,
/* 29915*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 29917*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29920*/        OPC_EmitMergeInputChains1_0,
/* 29921*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 29934*/      0, /*End of Scope*/
/* 29935*/    /*Scope*/ 75, /*->30011*/
/* 29936*/      OPC_RecordChild0, // #0 = $mask
/* 29937*/      OPC_MoveChild1,
/* 29938*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 29941*/      OPC_MoveChild0,
/* 29942*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29945*/      OPC_MoveChild0,
/* 29946*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 29949*/      OPC_MoveChild0,
/* 29950*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29953*/      OPC_RecordMemRef,
/* 29954*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 29955*/      OPC_CheckFoldableChainNode,
/* 29956*/      OPC_RecordChild1, // #2 = $src2
/* 29957*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29959*/      OPC_CheckPredicate, 9, // Predicate_load
/* 29961*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 29963*/      OPC_MoveParent,
/* 29964*/      OPC_RecordChild1, // #3 = $src1
/* 29965*/      OPC_CheckType, MVT::v2i64,
/* 29967*/      OPC_MoveParent,
/* 29968*/      OPC_CheckType, MVT::v8i16,
/* 29970*/      OPC_MoveParent,
/* 29971*/      OPC_MoveChild1,
/* 29972*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 29975*/      OPC_MoveChild0,
/* 29976*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29979*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 29981*/      OPC_CheckType, MVT::v4i32,
/* 29983*/      OPC_MoveParent,
/* 29984*/      OPC_MoveParent,
/* 29985*/      OPC_MoveChild2,
/* 29986*/      OPC_CheckCondCode, ISD::SETNE,
/* 29988*/      OPC_MoveParent,
/* 29989*/      OPC_MoveParent,
/* 29990*/      OPC_CheckType, MVT::v8i1,
/* 29992*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 29994*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29997*/      OPC_EmitMergeInputChains1_1,
/* 29998*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTMWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30011*/    /*Scope*/ 14|128,1/*142*/, /*->30155*/
/* 30013*/      OPC_MoveChild0,
/* 30014*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 30017*/      OPC_MoveChild0,
/* 30018*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30021*/      OPC_MoveChild0,
/* 30022*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 30025*/      OPC_Scope, 63, /*->30090*/ // 2 children in Scope
/* 30027*/        OPC_RecordChild0, // #0 = $src1
/* 30028*/        OPC_MoveChild1,
/* 30029*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30032*/        OPC_RecordMemRef,
/* 30033*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 30034*/        OPC_CheckFoldableChainNode,
/* 30035*/        OPC_RecordChild1, // #2 = $src2
/* 30036*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30038*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30040*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 30042*/        OPC_MoveParent,
/* 30043*/        OPC_CheckType, MVT::v2i64,
/* 30045*/        OPC_MoveParent,
/* 30046*/        OPC_CheckType, MVT::v8i16,
/* 30048*/        OPC_MoveParent,
/* 30049*/        OPC_MoveChild1,
/* 30050*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30053*/        OPC_MoveChild0,
/* 30054*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30057*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30059*/        OPC_CheckType, MVT::v4i32,
/* 30061*/        OPC_MoveParent,
/* 30062*/        OPC_MoveParent,
/* 30063*/        OPC_MoveChild2,
/* 30064*/        OPC_CheckCondCode, ISD::SETNE,
/* 30066*/        OPC_MoveParent,
/* 30067*/        OPC_MoveParent,
/* 30068*/        OPC_RecordChild1, // #3 = $mask
/* 30069*/        OPC_CheckType, MVT::v8i1,
/* 30071*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 30073*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30076*/        OPC_EmitMergeInputChains1_1,
/* 30077*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30090*/      /*Scope*/ 63, /*->30154*/
/* 30091*/        OPC_MoveChild0,
/* 30092*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30095*/        OPC_RecordMemRef,
/* 30096*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30097*/        OPC_CheckFoldableChainNode,
/* 30098*/        OPC_RecordChild1, // #1 = $src2
/* 30099*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30101*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30103*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 30105*/        OPC_MoveParent,
/* 30106*/        OPC_RecordChild1, // #2 = $src1
/* 30107*/        OPC_CheckType, MVT::v2i64,
/* 30109*/        OPC_MoveParent,
/* 30110*/        OPC_CheckType, MVT::v8i16,
/* 30112*/        OPC_MoveParent,
/* 30113*/        OPC_MoveChild1,
/* 30114*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30117*/        OPC_MoveChild0,
/* 30118*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30121*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30123*/        OPC_CheckType, MVT::v4i32,
/* 30125*/        OPC_MoveParent,
/* 30126*/        OPC_MoveParent,
/* 30127*/        OPC_MoveChild2,
/* 30128*/        OPC_CheckCondCode, ISD::SETNE,
/* 30130*/        OPC_MoveParent,
/* 30131*/        OPC_MoveParent,
/* 30132*/        OPC_RecordChild1, // #3 = $mask
/* 30133*/        OPC_CheckType, MVT::v8i1,
/* 30135*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 30137*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30140*/        OPC_EmitMergeInputChains1_0,
/* 30141*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30154*/      0, /*End of Scope*/
/* 30155*/    /*Scope*/ 75, /*->30231*/
/* 30156*/      OPC_RecordChild0, // #0 = $mask
/* 30157*/      OPC_MoveChild1,
/* 30158*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 30161*/      OPC_MoveChild0,
/* 30162*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30165*/      OPC_MoveChild0,
/* 30166*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 30169*/      OPC_MoveChild0,
/* 30170*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30173*/      OPC_RecordMemRef,
/* 30174*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 30175*/      OPC_CheckFoldableChainNode,
/* 30176*/      OPC_RecordChild1, // #2 = $src2
/* 30177*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30179*/      OPC_CheckPredicate, 9, // Predicate_load
/* 30181*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 30183*/      OPC_MoveParent,
/* 30184*/      OPC_RecordChild1, // #3 = $src1
/* 30185*/      OPC_CheckType, MVT::v4i64,
/* 30187*/      OPC_MoveParent,
/* 30188*/      OPC_CheckType, MVT::v32i8,
/* 30190*/      OPC_MoveParent,
/* 30191*/      OPC_MoveChild1,
/* 30192*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30195*/      OPC_MoveChild0,
/* 30196*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30199*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30201*/      OPC_CheckType, MVT::v8i32,
/* 30203*/      OPC_MoveParent,
/* 30204*/      OPC_MoveParent,
/* 30205*/      OPC_MoveChild2,
/* 30206*/      OPC_CheckCondCode, ISD::SETNE,
/* 30208*/      OPC_MoveParent,
/* 30209*/      OPC_MoveParent,
/* 30210*/      OPC_CheckType, MVT::v32i1,
/* 30212*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 30214*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30217*/      OPC_EmitMergeInputChains1_1,
/* 30218*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v32i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30231*/    /*Scope*/ 14|128,1/*142*/, /*->30375*/
/* 30233*/      OPC_MoveChild0,
/* 30234*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 30237*/      OPC_MoveChild0,
/* 30238*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30241*/      OPC_MoveChild0,
/* 30242*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 30245*/      OPC_Scope, 63, /*->30310*/ // 2 children in Scope
/* 30247*/        OPC_RecordChild0, // #0 = $src1
/* 30248*/        OPC_MoveChild1,
/* 30249*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30252*/        OPC_RecordMemRef,
/* 30253*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 30254*/        OPC_CheckFoldableChainNode,
/* 30255*/        OPC_RecordChild1, // #2 = $src2
/* 30256*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30258*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30260*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 30262*/        OPC_MoveParent,
/* 30263*/        OPC_CheckType, MVT::v4i64,
/* 30265*/        OPC_MoveParent,
/* 30266*/        OPC_CheckType, MVT::v32i8,
/* 30268*/        OPC_MoveParent,
/* 30269*/        OPC_MoveChild1,
/* 30270*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30273*/        OPC_MoveChild0,
/* 30274*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30277*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30279*/        OPC_CheckType, MVT::v8i32,
/* 30281*/        OPC_MoveParent,
/* 30282*/        OPC_MoveParent,
/* 30283*/        OPC_MoveChild2,
/* 30284*/        OPC_CheckCondCode, ISD::SETNE,
/* 30286*/        OPC_MoveParent,
/* 30287*/        OPC_MoveParent,
/* 30288*/        OPC_RecordChild1, // #3 = $mask
/* 30289*/        OPC_CheckType, MVT::v32i1,
/* 30291*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 30293*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30296*/        OPC_EmitMergeInputChains1_1,
/* 30297*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30310*/      /*Scope*/ 63, /*->30374*/
/* 30311*/        OPC_MoveChild0,
/* 30312*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30315*/        OPC_RecordMemRef,
/* 30316*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30317*/        OPC_CheckFoldableChainNode,
/* 30318*/        OPC_RecordChild1, // #1 = $src2
/* 30319*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30321*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30323*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 30325*/        OPC_MoveParent,
/* 30326*/        OPC_RecordChild1, // #2 = $src1
/* 30327*/        OPC_CheckType, MVT::v4i64,
/* 30329*/        OPC_MoveParent,
/* 30330*/        OPC_CheckType, MVT::v32i8,
/* 30332*/        OPC_MoveParent,
/* 30333*/        OPC_MoveChild1,
/* 30334*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30337*/        OPC_MoveChild0,
/* 30338*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30341*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30343*/        OPC_CheckType, MVT::v8i32,
/* 30345*/        OPC_MoveParent,
/* 30346*/        OPC_MoveParent,
/* 30347*/        OPC_MoveChild2,
/* 30348*/        OPC_CheckCondCode, ISD::SETNE,
/* 30350*/        OPC_MoveParent,
/* 30351*/        OPC_MoveParent,
/* 30352*/        OPC_RecordChild1, // #3 = $mask
/* 30353*/        OPC_CheckType, MVT::v32i1,
/* 30355*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 30357*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30360*/        OPC_EmitMergeInputChains1_0,
/* 30361*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30374*/      0, /*End of Scope*/
/* 30375*/    /*Scope*/ 75, /*->30451*/
/* 30376*/      OPC_RecordChild0, // #0 = $mask
/* 30377*/      OPC_MoveChild1,
/* 30378*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 30381*/      OPC_MoveChild0,
/* 30382*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30385*/      OPC_MoveChild0,
/* 30386*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 30389*/      OPC_MoveChild0,
/* 30390*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30393*/      OPC_RecordMemRef,
/* 30394*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 30395*/      OPC_CheckFoldableChainNode,
/* 30396*/      OPC_RecordChild1, // #2 = $src2
/* 30397*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30399*/      OPC_CheckPredicate, 9, // Predicate_load
/* 30401*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 30403*/      OPC_MoveParent,
/* 30404*/      OPC_RecordChild1, // #3 = $src1
/* 30405*/      OPC_CheckType, MVT::v2i64,
/* 30407*/      OPC_MoveParent,
/* 30408*/      OPC_CheckType, MVT::v16i8,
/* 30410*/      OPC_MoveParent,
/* 30411*/      OPC_MoveChild1,
/* 30412*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30415*/      OPC_MoveChild0,
/* 30416*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30419*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30421*/      OPC_CheckType, MVT::v4i32,
/* 30423*/      OPC_MoveParent,
/* 30424*/      OPC_MoveParent,
/* 30425*/      OPC_MoveChild2,
/* 30426*/      OPC_CheckCondCode, ISD::SETNE,
/* 30428*/      OPC_MoveParent,
/* 30429*/      OPC_MoveParent,
/* 30430*/      OPC_CheckType, MVT::v16i1,
/* 30432*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 30434*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30437*/      OPC_EmitMergeInputChains1_1,
/* 30438*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30451*/    /*Scope*/ 14|128,1/*142*/, /*->30595*/
/* 30453*/      OPC_MoveChild0,
/* 30454*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 30457*/      OPC_MoveChild0,
/* 30458*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30461*/      OPC_MoveChild0,
/* 30462*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 30465*/      OPC_Scope, 63, /*->30530*/ // 2 children in Scope
/* 30467*/        OPC_RecordChild0, // #0 = $src1
/* 30468*/        OPC_MoveChild1,
/* 30469*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30472*/        OPC_RecordMemRef,
/* 30473*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 30474*/        OPC_CheckFoldableChainNode,
/* 30475*/        OPC_RecordChild1, // #2 = $src2
/* 30476*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30478*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30480*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 30482*/        OPC_MoveParent,
/* 30483*/        OPC_CheckType, MVT::v2i64,
/* 30485*/        OPC_MoveParent,
/* 30486*/        OPC_CheckType, MVT::v16i8,
/* 30488*/        OPC_MoveParent,
/* 30489*/        OPC_MoveChild1,
/* 30490*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30493*/        OPC_MoveChild0,
/* 30494*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30497*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30499*/        OPC_CheckType, MVT::v4i32,
/* 30501*/        OPC_MoveParent,
/* 30502*/        OPC_MoveParent,
/* 30503*/        OPC_MoveChild2,
/* 30504*/        OPC_CheckCondCode, ISD::SETNE,
/* 30506*/        OPC_MoveParent,
/* 30507*/        OPC_MoveParent,
/* 30508*/        OPC_RecordChild1, // #3 = $mask
/* 30509*/        OPC_CheckType, MVT::v16i1,
/* 30511*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 30513*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30516*/        OPC_EmitMergeInputChains1_1,
/* 30517*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30530*/      /*Scope*/ 63, /*->30594*/
/* 30531*/        OPC_MoveChild0,
/* 30532*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30535*/        OPC_RecordMemRef,
/* 30536*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30537*/        OPC_CheckFoldableChainNode,
/* 30538*/        OPC_RecordChild1, // #1 = $src2
/* 30539*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30541*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30543*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 30545*/        OPC_MoveParent,
/* 30546*/        OPC_RecordChild1, // #2 = $src1
/* 30547*/        OPC_CheckType, MVT::v2i64,
/* 30549*/        OPC_MoveParent,
/* 30550*/        OPC_CheckType, MVT::v16i8,
/* 30552*/        OPC_MoveParent,
/* 30553*/        OPC_MoveChild1,
/* 30554*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30557*/        OPC_MoveChild0,
/* 30558*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30561*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30563*/        OPC_CheckType, MVT::v4i32,
/* 30565*/        OPC_MoveParent,
/* 30566*/        OPC_MoveParent,
/* 30567*/        OPC_MoveChild2,
/* 30568*/        OPC_CheckCondCode, ISD::SETNE,
/* 30570*/        OPC_MoveParent,
/* 30571*/        OPC_MoveParent,
/* 30572*/        OPC_RecordChild1, // #3 = $mask
/* 30573*/        OPC_CheckType, MVT::v16i1,
/* 30575*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 30577*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30580*/        OPC_EmitMergeInputChains1_0,
/* 30581*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30594*/      0, /*End of Scope*/
/* 30595*/    /*Scope*/ 73, /*->30669*/
/* 30596*/      OPC_RecordChild0, // #0 = $mask
/* 30597*/      OPC_MoveChild1,
/* 30598*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 30601*/      OPC_MoveChild0,
/* 30602*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 30605*/      OPC_MoveChild0,
/* 30606*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 30609*/      OPC_MoveChild0,
/* 30610*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30613*/      OPC_RecordMemRef,
/* 30614*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 30615*/      OPC_CheckFoldableChainNode,
/* 30616*/      OPC_RecordChild1, // #2 = $src2
/* 30617*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30619*/      OPC_CheckPredicate, 9, // Predicate_load
/* 30621*/      OPC_CheckType, MVT::i64,
/* 30623*/      OPC_MoveParent,
/* 30624*/      OPC_MoveParent,
/* 30625*/      OPC_RecordChild1, // #3 = $src1
/* 30626*/      OPC_CheckType, MVT::v8i64,
/* 30628*/      OPC_MoveParent,
/* 30629*/      OPC_MoveChild1,
/* 30630*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30633*/      OPC_MoveChild0,
/* 30634*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30637*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30639*/      OPC_CheckType, MVT::v16i32,
/* 30641*/      OPC_MoveParent,
/* 30642*/      OPC_MoveParent,
/* 30643*/      OPC_MoveChild2,
/* 30644*/      OPC_CheckCondCode, ISD::SETNE,
/* 30646*/      OPC_MoveParent,
/* 30647*/      OPC_MoveParent,
/* 30648*/      OPC_CheckType, MVT::v8i1,
/* 30650*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 30652*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30655*/      OPC_EmitMergeInputChains1_1,
/* 30656*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTMQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30669*/    /*Scope*/ 14|128,1/*142*/, /*->30813*/
/* 30671*/      OPC_MoveChild0,
/* 30672*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 30675*/      OPC_MoveChild0,
/* 30676*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 30679*/      OPC_Scope, 65, /*->30746*/ // 2 children in Scope
/* 30681*/        OPC_RecordChild0, // #0 = $src1
/* 30682*/        OPC_MoveChild1,
/* 30683*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 30686*/        OPC_MoveChild0,
/* 30687*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30690*/        OPC_RecordMemRef,
/* 30691*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 30692*/        OPC_CheckFoldableChainNode,
/* 30693*/        OPC_RecordChild1, // #2 = $src2
/* 30694*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30696*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30698*/        OPC_CheckType, MVT::i64,
/* 30700*/        OPC_MoveParent,
/* 30701*/        OPC_MoveParent,
/* 30702*/        OPC_CheckType, MVT::v8i64,
/* 30704*/        OPC_MoveParent,
/* 30705*/        OPC_MoveChild1,
/* 30706*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30709*/        OPC_MoveChild0,
/* 30710*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30713*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30715*/        OPC_CheckType, MVT::v16i32,
/* 30717*/        OPC_MoveParent,
/* 30718*/        OPC_MoveParent,
/* 30719*/        OPC_MoveChild2,
/* 30720*/        OPC_CheckCondCode, ISD::SETNE,
/* 30722*/        OPC_MoveParent,
/* 30723*/        OPC_MoveParent,
/* 30724*/        OPC_RecordChild1, // #3 = $mask
/* 30725*/        OPC_CheckType, MVT::v8i1,
/* 30727*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 30729*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30732*/        OPC_EmitMergeInputChains1_1,
/* 30733*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30746*/      /*Scope*/ 65, /*->30812*/
/* 30747*/        OPC_MoveChild0,
/* 30748*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 30751*/        OPC_MoveChild0,
/* 30752*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30755*/        OPC_RecordMemRef,
/* 30756*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30757*/        OPC_CheckFoldableChainNode,
/* 30758*/        OPC_RecordChild1, // #1 = $src2
/* 30759*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30761*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30763*/        OPC_CheckType, MVT::i64,
/* 30765*/        OPC_MoveParent,
/* 30766*/        OPC_MoveParent,
/* 30767*/        OPC_RecordChild1, // #2 = $src1
/* 30768*/        OPC_CheckType, MVT::v8i64,
/* 30770*/        OPC_MoveParent,
/* 30771*/        OPC_MoveChild1,
/* 30772*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30775*/        OPC_MoveChild0,
/* 30776*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30779*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30781*/        OPC_CheckType, MVT::v16i32,
/* 30783*/        OPC_MoveParent,
/* 30784*/        OPC_MoveParent,
/* 30785*/        OPC_MoveChild2,
/* 30786*/        OPC_CheckCondCode, ISD::SETNE,
/* 30788*/        OPC_MoveParent,
/* 30789*/        OPC_MoveParent,
/* 30790*/        OPC_RecordChild1, // #3 = $mask
/* 30791*/        OPC_CheckType, MVT::v8i1,
/* 30793*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 30795*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30798*/        OPC_EmitMergeInputChains1_0,
/* 30799*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30812*/      0, /*End of Scope*/
/* 30813*/    /*Scope*/ 73, /*->30887*/
/* 30814*/      OPC_RecordChild0, // #0 = $mask
/* 30815*/      OPC_MoveChild1,
/* 30816*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 30819*/      OPC_MoveChild0,
/* 30820*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 30823*/      OPC_MoveChild0,
/* 30824*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 30827*/      OPC_MoveChild0,
/* 30828*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30831*/      OPC_RecordMemRef,
/* 30832*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 30833*/      OPC_CheckFoldableChainNode,
/* 30834*/      OPC_RecordChild1, // #2 = $src2
/* 30835*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30837*/      OPC_CheckPredicate, 9, // Predicate_load
/* 30839*/      OPC_CheckType, MVT::i64,
/* 30841*/      OPC_MoveParent,
/* 30842*/      OPC_MoveParent,
/* 30843*/      OPC_RecordChild1, // #3 = $src1
/* 30844*/      OPC_CheckType, MVT::v4i64,
/* 30846*/      OPC_MoveParent,
/* 30847*/      OPC_MoveChild1,
/* 30848*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30851*/      OPC_MoveChild0,
/* 30852*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30855*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30857*/      OPC_CheckType, MVT::v8i32,
/* 30859*/      OPC_MoveParent,
/* 30860*/      OPC_MoveParent,
/* 30861*/      OPC_MoveChild2,
/* 30862*/      OPC_CheckCondCode, ISD::SETNE,
/* 30864*/      OPC_MoveParent,
/* 30865*/      OPC_MoveParent,
/* 30866*/      OPC_CheckType, MVT::v4i1,
/* 30868*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 30870*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30873*/      OPC_EmitMergeInputChains1_1,
/* 30874*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTMQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30887*/    /*Scope*/ 14|128,1/*142*/, /*->31031*/
/* 30889*/      OPC_MoveChild0,
/* 30890*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 30893*/      OPC_MoveChild0,
/* 30894*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 30897*/      OPC_Scope, 65, /*->30964*/ // 2 children in Scope
/* 30899*/        OPC_RecordChild0, // #0 = $src1
/* 30900*/        OPC_MoveChild1,
/* 30901*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 30904*/        OPC_MoveChild0,
/* 30905*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30908*/        OPC_RecordMemRef,
/* 30909*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 30910*/        OPC_CheckFoldableChainNode,
/* 30911*/        OPC_RecordChild1, // #2 = $src2
/* 30912*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30914*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30916*/        OPC_CheckType, MVT::i64,
/* 30918*/        OPC_MoveParent,
/* 30919*/        OPC_MoveParent,
/* 30920*/        OPC_CheckType, MVT::v4i64,
/* 30922*/        OPC_MoveParent,
/* 30923*/        OPC_MoveChild1,
/* 30924*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30927*/        OPC_MoveChild0,
/* 30928*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30931*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30933*/        OPC_CheckType, MVT::v8i32,
/* 30935*/        OPC_MoveParent,
/* 30936*/        OPC_MoveParent,
/* 30937*/        OPC_MoveChild2,
/* 30938*/        OPC_CheckCondCode, ISD::SETNE,
/* 30940*/        OPC_MoveParent,
/* 30941*/        OPC_MoveParent,
/* 30942*/        OPC_RecordChild1, // #3 = $mask
/* 30943*/        OPC_CheckType, MVT::v4i1,
/* 30945*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 30947*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30950*/        OPC_EmitMergeInputChains1_1,
/* 30951*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 30964*/      /*Scope*/ 65, /*->31030*/
/* 30965*/        OPC_MoveChild0,
/* 30966*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 30969*/        OPC_MoveChild0,
/* 30970*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30973*/        OPC_RecordMemRef,
/* 30974*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30975*/        OPC_CheckFoldableChainNode,
/* 30976*/        OPC_RecordChild1, // #1 = $src2
/* 30977*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30979*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30981*/        OPC_CheckType, MVT::i64,
/* 30983*/        OPC_MoveParent,
/* 30984*/        OPC_MoveParent,
/* 30985*/        OPC_RecordChild1, // #2 = $src1
/* 30986*/        OPC_CheckType, MVT::v4i64,
/* 30988*/        OPC_MoveParent,
/* 30989*/        OPC_MoveChild1,
/* 30990*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 30993*/        OPC_MoveChild0,
/* 30994*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30997*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 30999*/        OPC_CheckType, MVT::v8i32,
/* 31001*/        OPC_MoveParent,
/* 31002*/        OPC_MoveParent,
/* 31003*/        OPC_MoveChild2,
/* 31004*/        OPC_CheckCondCode, ISD::SETNE,
/* 31006*/        OPC_MoveParent,
/* 31007*/        OPC_MoveParent,
/* 31008*/        OPC_RecordChild1, // #3 = $mask
/* 31009*/        OPC_CheckType, MVT::v4i1,
/* 31011*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 31013*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31016*/        OPC_EmitMergeInputChains1_0,
/* 31017*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31030*/      0, /*End of Scope*/
/* 31031*/    /*Scope*/ 73, /*->31105*/
/* 31032*/      OPC_RecordChild0, // #0 = $mask
/* 31033*/      OPC_MoveChild1,
/* 31034*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 31037*/      OPC_MoveChild0,
/* 31038*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 31041*/      OPC_MoveChild0,
/* 31042*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 31045*/      OPC_MoveChild0,
/* 31046*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31049*/      OPC_RecordMemRef,
/* 31050*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 31051*/      OPC_CheckFoldableChainNode,
/* 31052*/      OPC_RecordChild1, // #2 = $src2
/* 31053*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31055*/      OPC_CheckPredicate, 9, // Predicate_load
/* 31057*/      OPC_CheckType, MVT::i64,
/* 31059*/      OPC_MoveParent,
/* 31060*/      OPC_MoveParent,
/* 31061*/      OPC_RecordChild1, // #3 = $src1
/* 31062*/      OPC_CheckType, MVT::v2i64,
/* 31064*/      OPC_MoveParent,
/* 31065*/      OPC_MoveChild1,
/* 31066*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31069*/      OPC_MoveChild0,
/* 31070*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31073*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31075*/      OPC_CheckType, MVT::v4i32,
/* 31077*/      OPC_MoveParent,
/* 31078*/      OPC_MoveParent,
/* 31079*/      OPC_MoveChild2,
/* 31080*/      OPC_CheckCondCode, ISD::SETNE,
/* 31082*/      OPC_MoveParent,
/* 31083*/      OPC_MoveParent,
/* 31084*/      OPC_CheckType, MVT::v2i1,
/* 31086*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 31088*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31091*/      OPC_EmitMergeInputChains1_1,
/* 31092*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTMQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31105*/    /*Scope*/ 14|128,1/*142*/, /*->31249*/
/* 31107*/      OPC_MoveChild0,
/* 31108*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 31111*/      OPC_MoveChild0,
/* 31112*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 31115*/      OPC_Scope, 65, /*->31182*/ // 2 children in Scope
/* 31117*/        OPC_RecordChild0, // #0 = $src1
/* 31118*/        OPC_MoveChild1,
/* 31119*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 31122*/        OPC_MoveChild0,
/* 31123*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31126*/        OPC_RecordMemRef,
/* 31127*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 31128*/        OPC_CheckFoldableChainNode,
/* 31129*/        OPC_RecordChild1, // #2 = $src2
/* 31130*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31132*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31134*/        OPC_CheckType, MVT::i64,
/* 31136*/        OPC_MoveParent,
/* 31137*/        OPC_MoveParent,
/* 31138*/        OPC_CheckType, MVT::v2i64,
/* 31140*/        OPC_MoveParent,
/* 31141*/        OPC_MoveChild1,
/* 31142*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31145*/        OPC_MoveChild0,
/* 31146*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31149*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31151*/        OPC_CheckType, MVT::v4i32,
/* 31153*/        OPC_MoveParent,
/* 31154*/        OPC_MoveParent,
/* 31155*/        OPC_MoveChild2,
/* 31156*/        OPC_CheckCondCode, ISD::SETNE,
/* 31158*/        OPC_MoveParent,
/* 31159*/        OPC_MoveParent,
/* 31160*/        OPC_RecordChild1, // #3 = $mask
/* 31161*/        OPC_CheckType, MVT::v2i1,
/* 31163*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 31165*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31168*/        OPC_EmitMergeInputChains1_1,
/* 31169*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31182*/      /*Scope*/ 65, /*->31248*/
/* 31183*/        OPC_MoveChild0,
/* 31184*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 31187*/        OPC_MoveChild0,
/* 31188*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31191*/        OPC_RecordMemRef,
/* 31192*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31193*/        OPC_CheckFoldableChainNode,
/* 31194*/        OPC_RecordChild1, // #1 = $src2
/* 31195*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31197*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31199*/        OPC_CheckType, MVT::i64,
/* 31201*/        OPC_MoveParent,
/* 31202*/        OPC_MoveParent,
/* 31203*/        OPC_RecordChild1, // #2 = $src1
/* 31204*/        OPC_CheckType, MVT::v2i64,
/* 31206*/        OPC_MoveParent,
/* 31207*/        OPC_MoveChild1,
/* 31208*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31211*/        OPC_MoveChild0,
/* 31212*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31215*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31217*/        OPC_CheckType, MVT::v4i32,
/* 31219*/        OPC_MoveParent,
/* 31220*/        OPC_MoveParent,
/* 31221*/        OPC_MoveChild2,
/* 31222*/        OPC_CheckCondCode, ISD::SETNE,
/* 31224*/        OPC_MoveParent,
/* 31225*/        OPC_MoveParent,
/* 31226*/        OPC_RecordChild1, // #3 = $mask
/* 31227*/        OPC_CheckType, MVT::v2i1,
/* 31229*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 31231*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31234*/        OPC_EmitMergeInputChains1_0,
/* 31235*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTMQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31248*/      0, /*End of Scope*/
/* 31249*/    /*Scope*/ 75, /*->31325*/
/* 31250*/      OPC_RecordChild0, // #0 = $mask
/* 31251*/      OPC_MoveChild1,
/* 31252*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 31255*/      OPC_MoveChild0,
/* 31256*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31259*/      OPC_MoveChild0,
/* 31260*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 31263*/      OPC_MoveChild0,
/* 31264*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31267*/      OPC_RecordMemRef,
/* 31268*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 31269*/      OPC_CheckFoldableChainNode,
/* 31270*/      OPC_RecordChild1, // #2 = $src2
/* 31271*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31273*/      OPC_CheckPredicate, 9, // Predicate_load
/* 31275*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 31277*/      OPC_MoveParent,
/* 31278*/      OPC_RecordChild1, // #3 = $src1
/* 31279*/      OPC_CheckType, MVT::v8i64,
/* 31281*/      OPC_MoveParent,
/* 31282*/      OPC_CheckType, MVT::v32i16,
/* 31284*/      OPC_MoveParent,
/* 31285*/      OPC_MoveChild1,
/* 31286*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31289*/      OPC_MoveChild0,
/* 31290*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31293*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31295*/      OPC_CheckType, MVT::v16i32,
/* 31297*/      OPC_MoveParent,
/* 31298*/      OPC_MoveParent,
/* 31299*/      OPC_MoveChild2,
/* 31300*/      OPC_CheckCondCode, ISD::SETEQ,
/* 31302*/      OPC_MoveParent,
/* 31303*/      OPC_MoveParent,
/* 31304*/      OPC_CheckType, MVT::v32i1,
/* 31306*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 31308*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31311*/      OPC_EmitMergeInputChains1_1,
/* 31312*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v32i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTNMWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31325*/    /*Scope*/ 14|128,1/*142*/, /*->31469*/
/* 31327*/      OPC_MoveChild0,
/* 31328*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 31331*/      OPC_MoveChild0,
/* 31332*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31335*/      OPC_MoveChild0,
/* 31336*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 31339*/      OPC_Scope, 63, /*->31404*/ // 2 children in Scope
/* 31341*/        OPC_RecordChild0, // #0 = $src1
/* 31342*/        OPC_MoveChild1,
/* 31343*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31346*/        OPC_RecordMemRef,
/* 31347*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 31348*/        OPC_CheckFoldableChainNode,
/* 31349*/        OPC_RecordChild1, // #2 = $src2
/* 31350*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31352*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31354*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 31356*/        OPC_MoveParent,
/* 31357*/        OPC_CheckType, MVT::v8i64,
/* 31359*/        OPC_MoveParent,
/* 31360*/        OPC_CheckType, MVT::v32i16,
/* 31362*/        OPC_MoveParent,
/* 31363*/        OPC_MoveChild1,
/* 31364*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31367*/        OPC_MoveChild0,
/* 31368*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31371*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31373*/        OPC_CheckType, MVT::v16i32,
/* 31375*/        OPC_MoveParent,
/* 31376*/        OPC_MoveParent,
/* 31377*/        OPC_MoveChild2,
/* 31378*/        OPC_CheckCondCode, ISD::SETEQ,
/* 31380*/        OPC_MoveParent,
/* 31381*/        OPC_MoveParent,
/* 31382*/        OPC_RecordChild1, // #3 = $mask
/* 31383*/        OPC_CheckType, MVT::v32i1,
/* 31385*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 31387*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31390*/        OPC_EmitMergeInputChains1_1,
/* 31391*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31404*/      /*Scope*/ 63, /*->31468*/
/* 31405*/        OPC_MoveChild0,
/* 31406*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31409*/        OPC_RecordMemRef,
/* 31410*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31411*/        OPC_CheckFoldableChainNode,
/* 31412*/        OPC_RecordChild1, // #1 = $src2
/* 31413*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31415*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31417*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 31419*/        OPC_MoveParent,
/* 31420*/        OPC_RecordChild1, // #2 = $src1
/* 31421*/        OPC_CheckType, MVT::v8i64,
/* 31423*/        OPC_MoveParent,
/* 31424*/        OPC_CheckType, MVT::v32i16,
/* 31426*/        OPC_MoveParent,
/* 31427*/        OPC_MoveChild1,
/* 31428*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31431*/        OPC_MoveChild0,
/* 31432*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31435*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31437*/        OPC_CheckType, MVT::v16i32,
/* 31439*/        OPC_MoveParent,
/* 31440*/        OPC_MoveParent,
/* 31441*/        OPC_MoveChild2,
/* 31442*/        OPC_CheckCondCode, ISD::SETEQ,
/* 31444*/        OPC_MoveParent,
/* 31445*/        OPC_MoveParent,
/* 31446*/        OPC_RecordChild1, // #3 = $mask
/* 31447*/        OPC_CheckType, MVT::v32i1,
/* 31449*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 31451*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31454*/        OPC_EmitMergeInputChains1_0,
/* 31455*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31468*/      0, /*End of Scope*/
/* 31469*/    /*Scope*/ 75, /*->31545*/
/* 31470*/      OPC_RecordChild0, // #0 = $mask
/* 31471*/      OPC_MoveChild1,
/* 31472*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 31475*/      OPC_MoveChild0,
/* 31476*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31479*/      OPC_MoveChild0,
/* 31480*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 31483*/      OPC_MoveChild0,
/* 31484*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31487*/      OPC_RecordMemRef,
/* 31488*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 31489*/      OPC_CheckFoldableChainNode,
/* 31490*/      OPC_RecordChild1, // #2 = $src2
/* 31491*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31493*/      OPC_CheckPredicate, 9, // Predicate_load
/* 31495*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 31497*/      OPC_MoveParent,
/* 31498*/      OPC_RecordChild1, // #3 = $src1
/* 31499*/      OPC_CheckType, MVT::v8i64,
/* 31501*/      OPC_MoveParent,
/* 31502*/      OPC_CheckType, MVT::v64i8,
/* 31504*/      OPC_MoveParent,
/* 31505*/      OPC_MoveChild1,
/* 31506*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31509*/      OPC_MoveChild0,
/* 31510*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31513*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31515*/      OPC_CheckType, MVT::v16i32,
/* 31517*/      OPC_MoveParent,
/* 31518*/      OPC_MoveParent,
/* 31519*/      OPC_MoveChild2,
/* 31520*/      OPC_CheckCondCode, ISD::SETEQ,
/* 31522*/      OPC_MoveParent,
/* 31523*/      OPC_MoveParent,
/* 31524*/      OPC_CheckType, MVT::v64i1,
/* 31526*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 31528*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31531*/      OPC_EmitMergeInputChains1_1,
/* 31532*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v64i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTNMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31545*/    /*Scope*/ 14|128,1/*142*/, /*->31689*/
/* 31547*/      OPC_MoveChild0,
/* 31548*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 31551*/      OPC_MoveChild0,
/* 31552*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31555*/      OPC_MoveChild0,
/* 31556*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 31559*/      OPC_Scope, 63, /*->31624*/ // 2 children in Scope
/* 31561*/        OPC_RecordChild0, // #0 = $src1
/* 31562*/        OPC_MoveChild1,
/* 31563*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31566*/        OPC_RecordMemRef,
/* 31567*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 31568*/        OPC_CheckFoldableChainNode,
/* 31569*/        OPC_RecordChild1, // #2 = $src2
/* 31570*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31572*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31574*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 31576*/        OPC_MoveParent,
/* 31577*/        OPC_CheckType, MVT::v8i64,
/* 31579*/        OPC_MoveParent,
/* 31580*/        OPC_CheckType, MVT::v64i8,
/* 31582*/        OPC_MoveParent,
/* 31583*/        OPC_MoveChild1,
/* 31584*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31587*/        OPC_MoveChild0,
/* 31588*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31591*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31593*/        OPC_CheckType, MVT::v16i32,
/* 31595*/        OPC_MoveParent,
/* 31596*/        OPC_MoveParent,
/* 31597*/        OPC_MoveChild2,
/* 31598*/        OPC_CheckCondCode, ISD::SETEQ,
/* 31600*/        OPC_MoveParent,
/* 31601*/        OPC_MoveParent,
/* 31602*/        OPC_RecordChild1, // #3 = $mask
/* 31603*/        OPC_CheckType, MVT::v64i1,
/* 31605*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 31607*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31610*/        OPC_EmitMergeInputChains1_1,
/* 31611*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31624*/      /*Scope*/ 63, /*->31688*/
/* 31625*/        OPC_MoveChild0,
/* 31626*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31629*/        OPC_RecordMemRef,
/* 31630*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31631*/        OPC_CheckFoldableChainNode,
/* 31632*/        OPC_RecordChild1, // #1 = $src2
/* 31633*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31635*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31637*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 31639*/        OPC_MoveParent,
/* 31640*/        OPC_RecordChild1, // #2 = $src1
/* 31641*/        OPC_CheckType, MVT::v8i64,
/* 31643*/        OPC_MoveParent,
/* 31644*/        OPC_CheckType, MVT::v64i8,
/* 31646*/        OPC_MoveParent,
/* 31647*/        OPC_MoveChild1,
/* 31648*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31651*/        OPC_MoveChild0,
/* 31652*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31655*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31657*/        OPC_CheckType, MVT::v16i32,
/* 31659*/        OPC_MoveParent,
/* 31660*/        OPC_MoveParent,
/* 31661*/        OPC_MoveChild2,
/* 31662*/        OPC_CheckCondCode, ISD::SETEQ,
/* 31664*/        OPC_MoveParent,
/* 31665*/        OPC_MoveParent,
/* 31666*/        OPC_RecordChild1, // #3 = $mask
/* 31667*/        OPC_CheckType, MVT::v64i1,
/* 31669*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 31671*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31674*/        OPC_EmitMergeInputChains1_0,
/* 31675*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31688*/      0, /*End of Scope*/
/* 31689*/    /*Scope*/ 75, /*->31765*/
/* 31690*/      OPC_RecordChild0, // #0 = $mask
/* 31691*/      OPC_MoveChild1,
/* 31692*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 31695*/      OPC_MoveChild0,
/* 31696*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31699*/      OPC_MoveChild0,
/* 31700*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 31703*/      OPC_MoveChild0,
/* 31704*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31707*/      OPC_RecordMemRef,
/* 31708*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 31709*/      OPC_CheckFoldableChainNode,
/* 31710*/      OPC_RecordChild1, // #2 = $src2
/* 31711*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31713*/      OPC_CheckPredicate, 9, // Predicate_load
/* 31715*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 31717*/      OPC_MoveParent,
/* 31718*/      OPC_RecordChild1, // #3 = $src1
/* 31719*/      OPC_CheckType, MVT::v4i64,
/* 31721*/      OPC_MoveParent,
/* 31722*/      OPC_CheckType, MVT::v16i16,
/* 31724*/      OPC_MoveParent,
/* 31725*/      OPC_MoveChild1,
/* 31726*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31729*/      OPC_MoveChild0,
/* 31730*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31733*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31735*/      OPC_CheckType, MVT::v8i32,
/* 31737*/      OPC_MoveParent,
/* 31738*/      OPC_MoveParent,
/* 31739*/      OPC_MoveChild2,
/* 31740*/      OPC_CheckCondCode, ISD::SETEQ,
/* 31742*/      OPC_MoveParent,
/* 31743*/      OPC_MoveParent,
/* 31744*/      OPC_CheckType, MVT::v16i1,
/* 31746*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 31748*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31751*/      OPC_EmitMergeInputChains1_1,
/* 31752*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTNMWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31765*/    /*Scope*/ 14|128,1/*142*/, /*->31909*/
/* 31767*/      OPC_MoveChild0,
/* 31768*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 31771*/      OPC_MoveChild0,
/* 31772*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31775*/      OPC_MoveChild0,
/* 31776*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 31779*/      OPC_Scope, 63, /*->31844*/ // 2 children in Scope
/* 31781*/        OPC_RecordChild0, // #0 = $src1
/* 31782*/        OPC_MoveChild1,
/* 31783*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31786*/        OPC_RecordMemRef,
/* 31787*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 31788*/        OPC_CheckFoldableChainNode,
/* 31789*/        OPC_RecordChild1, // #2 = $src2
/* 31790*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31792*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31794*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 31796*/        OPC_MoveParent,
/* 31797*/        OPC_CheckType, MVT::v4i64,
/* 31799*/        OPC_MoveParent,
/* 31800*/        OPC_CheckType, MVT::v16i16,
/* 31802*/        OPC_MoveParent,
/* 31803*/        OPC_MoveChild1,
/* 31804*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31807*/        OPC_MoveChild0,
/* 31808*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31811*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31813*/        OPC_CheckType, MVT::v8i32,
/* 31815*/        OPC_MoveParent,
/* 31816*/        OPC_MoveParent,
/* 31817*/        OPC_MoveChild2,
/* 31818*/        OPC_CheckCondCode, ISD::SETEQ,
/* 31820*/        OPC_MoveParent,
/* 31821*/        OPC_MoveParent,
/* 31822*/        OPC_RecordChild1, // #3 = $mask
/* 31823*/        OPC_CheckType, MVT::v16i1,
/* 31825*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 31827*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31830*/        OPC_EmitMergeInputChains1_1,
/* 31831*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31844*/      /*Scope*/ 63, /*->31908*/
/* 31845*/        OPC_MoveChild0,
/* 31846*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31849*/        OPC_RecordMemRef,
/* 31850*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31851*/        OPC_CheckFoldableChainNode,
/* 31852*/        OPC_RecordChild1, // #1 = $src2
/* 31853*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31855*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31857*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 31859*/        OPC_MoveParent,
/* 31860*/        OPC_RecordChild1, // #2 = $src1
/* 31861*/        OPC_CheckType, MVT::v4i64,
/* 31863*/        OPC_MoveParent,
/* 31864*/        OPC_CheckType, MVT::v16i16,
/* 31866*/        OPC_MoveParent,
/* 31867*/        OPC_MoveChild1,
/* 31868*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31871*/        OPC_MoveChild0,
/* 31872*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31875*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31877*/        OPC_CheckType, MVT::v8i32,
/* 31879*/        OPC_MoveParent,
/* 31880*/        OPC_MoveParent,
/* 31881*/        OPC_MoveChild2,
/* 31882*/        OPC_CheckCondCode, ISD::SETEQ,
/* 31884*/        OPC_MoveParent,
/* 31885*/        OPC_MoveParent,
/* 31886*/        OPC_RecordChild1, // #3 = $mask
/* 31887*/        OPC_CheckType, MVT::v16i1,
/* 31889*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 31891*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31894*/        OPC_EmitMergeInputChains1_0,
/* 31895*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31908*/      0, /*End of Scope*/
/* 31909*/    /*Scope*/ 75, /*->31985*/
/* 31910*/      OPC_RecordChild0, // #0 = $mask
/* 31911*/      OPC_MoveChild1,
/* 31912*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 31915*/      OPC_MoveChild0,
/* 31916*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31919*/      OPC_MoveChild0,
/* 31920*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 31923*/      OPC_MoveChild0,
/* 31924*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31927*/      OPC_RecordMemRef,
/* 31928*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 31929*/      OPC_CheckFoldableChainNode,
/* 31930*/      OPC_RecordChild1, // #2 = $src2
/* 31931*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31933*/      OPC_CheckPredicate, 9, // Predicate_load
/* 31935*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 31937*/      OPC_MoveParent,
/* 31938*/      OPC_RecordChild1, // #3 = $src1
/* 31939*/      OPC_CheckType, MVT::v2i64,
/* 31941*/      OPC_MoveParent,
/* 31942*/      OPC_CheckType, MVT::v8i16,
/* 31944*/      OPC_MoveParent,
/* 31945*/      OPC_MoveChild1,
/* 31946*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31949*/      OPC_MoveChild0,
/* 31950*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31953*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 31955*/      OPC_CheckType, MVT::v4i32,
/* 31957*/      OPC_MoveParent,
/* 31958*/      OPC_MoveParent,
/* 31959*/      OPC_MoveChild2,
/* 31960*/      OPC_CheckCondCode, ISD::SETEQ,
/* 31962*/      OPC_MoveParent,
/* 31963*/      OPC_MoveParent,
/* 31964*/      OPC_CheckType, MVT::v8i1,
/* 31966*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 31968*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31971*/      OPC_EmitMergeInputChains1_1,
/* 31972*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTNMWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 31985*/    /*Scope*/ 14|128,1/*142*/, /*->32129*/
/* 31987*/      OPC_MoveChild0,
/* 31988*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 31991*/      OPC_MoveChild0,
/* 31992*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 31995*/      OPC_MoveChild0,
/* 31996*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 31999*/      OPC_Scope, 63, /*->32064*/ // 2 children in Scope
/* 32001*/        OPC_RecordChild0, // #0 = $src1
/* 32002*/        OPC_MoveChild1,
/* 32003*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32006*/        OPC_RecordMemRef,
/* 32007*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32008*/        OPC_CheckFoldableChainNode,
/* 32009*/        OPC_RecordChild1, // #2 = $src2
/* 32010*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32012*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32014*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 32016*/        OPC_MoveParent,
/* 32017*/        OPC_CheckType, MVT::v2i64,
/* 32019*/        OPC_MoveParent,
/* 32020*/        OPC_CheckType, MVT::v8i16,
/* 32022*/        OPC_MoveParent,
/* 32023*/        OPC_MoveChild1,
/* 32024*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32027*/        OPC_MoveChild0,
/* 32028*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32031*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32033*/        OPC_CheckType, MVT::v4i32,
/* 32035*/        OPC_MoveParent,
/* 32036*/        OPC_MoveParent,
/* 32037*/        OPC_MoveChild2,
/* 32038*/        OPC_CheckCondCode, ISD::SETEQ,
/* 32040*/        OPC_MoveParent,
/* 32041*/        OPC_MoveParent,
/* 32042*/        OPC_RecordChild1, // #3 = $mask
/* 32043*/        OPC_CheckType, MVT::v8i1,
/* 32045*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 32047*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32050*/        OPC_EmitMergeInputChains1_1,
/* 32051*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32064*/      /*Scope*/ 63, /*->32128*/
/* 32065*/        OPC_MoveChild0,
/* 32066*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32069*/        OPC_RecordMemRef,
/* 32070*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 32071*/        OPC_CheckFoldableChainNode,
/* 32072*/        OPC_RecordChild1, // #1 = $src2
/* 32073*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32075*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32077*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 32079*/        OPC_MoveParent,
/* 32080*/        OPC_RecordChild1, // #2 = $src1
/* 32081*/        OPC_CheckType, MVT::v2i64,
/* 32083*/        OPC_MoveParent,
/* 32084*/        OPC_CheckType, MVT::v8i16,
/* 32086*/        OPC_MoveParent,
/* 32087*/        OPC_MoveChild1,
/* 32088*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32091*/        OPC_MoveChild0,
/* 32092*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32095*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32097*/        OPC_CheckType, MVT::v4i32,
/* 32099*/        OPC_MoveParent,
/* 32100*/        OPC_MoveParent,
/* 32101*/        OPC_MoveChild2,
/* 32102*/        OPC_CheckCondCode, ISD::SETEQ,
/* 32104*/        OPC_MoveParent,
/* 32105*/        OPC_MoveParent,
/* 32106*/        OPC_RecordChild1, // #3 = $mask
/* 32107*/        OPC_CheckType, MVT::v8i1,
/* 32109*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 32111*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32114*/        OPC_EmitMergeInputChains1_0,
/* 32115*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32128*/      0, /*End of Scope*/
/* 32129*/    /*Scope*/ 75, /*->32205*/
/* 32130*/      OPC_RecordChild0, // #0 = $mask
/* 32131*/      OPC_MoveChild1,
/* 32132*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 32135*/      OPC_MoveChild0,
/* 32136*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32139*/      OPC_MoveChild0,
/* 32140*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 32143*/      OPC_MoveChild0,
/* 32144*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32147*/      OPC_RecordMemRef,
/* 32148*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 32149*/      OPC_CheckFoldableChainNode,
/* 32150*/      OPC_RecordChild1, // #2 = $src2
/* 32151*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32153*/      OPC_CheckPredicate, 9, // Predicate_load
/* 32155*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 32157*/      OPC_MoveParent,
/* 32158*/      OPC_RecordChild1, // #3 = $src1
/* 32159*/      OPC_CheckType, MVT::v4i64,
/* 32161*/      OPC_MoveParent,
/* 32162*/      OPC_CheckType, MVT::v32i8,
/* 32164*/      OPC_MoveParent,
/* 32165*/      OPC_MoveChild1,
/* 32166*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32169*/      OPC_MoveChild0,
/* 32170*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32173*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32175*/      OPC_CheckType, MVT::v8i32,
/* 32177*/      OPC_MoveParent,
/* 32178*/      OPC_MoveParent,
/* 32179*/      OPC_MoveChild2,
/* 32180*/      OPC_CheckCondCode, ISD::SETEQ,
/* 32182*/      OPC_MoveParent,
/* 32183*/      OPC_MoveParent,
/* 32184*/      OPC_CheckType, MVT::v32i1,
/* 32186*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 32188*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32191*/      OPC_EmitMergeInputChains1_1,
/* 32192*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v32i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTNMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32205*/    /*Scope*/ 14|128,1/*142*/, /*->32349*/
/* 32207*/      OPC_MoveChild0,
/* 32208*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 32211*/      OPC_MoveChild0,
/* 32212*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32215*/      OPC_MoveChild0,
/* 32216*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 32219*/      OPC_Scope, 63, /*->32284*/ // 2 children in Scope
/* 32221*/        OPC_RecordChild0, // #0 = $src1
/* 32222*/        OPC_MoveChild1,
/* 32223*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32226*/        OPC_RecordMemRef,
/* 32227*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32228*/        OPC_CheckFoldableChainNode,
/* 32229*/        OPC_RecordChild1, // #2 = $src2
/* 32230*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32232*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32234*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 32236*/        OPC_MoveParent,
/* 32237*/        OPC_CheckType, MVT::v4i64,
/* 32239*/        OPC_MoveParent,
/* 32240*/        OPC_CheckType, MVT::v32i8,
/* 32242*/        OPC_MoveParent,
/* 32243*/        OPC_MoveChild1,
/* 32244*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32247*/        OPC_MoveChild0,
/* 32248*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32251*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32253*/        OPC_CheckType, MVT::v8i32,
/* 32255*/        OPC_MoveParent,
/* 32256*/        OPC_MoveParent,
/* 32257*/        OPC_MoveChild2,
/* 32258*/        OPC_CheckCondCode, ISD::SETEQ,
/* 32260*/        OPC_MoveParent,
/* 32261*/        OPC_MoveParent,
/* 32262*/        OPC_RecordChild1, // #3 = $mask
/* 32263*/        OPC_CheckType, MVT::v32i1,
/* 32265*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 32267*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32270*/        OPC_EmitMergeInputChains1_1,
/* 32271*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32284*/      /*Scope*/ 63, /*->32348*/
/* 32285*/        OPC_MoveChild0,
/* 32286*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32289*/        OPC_RecordMemRef,
/* 32290*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 32291*/        OPC_CheckFoldableChainNode,
/* 32292*/        OPC_RecordChild1, // #1 = $src2
/* 32293*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32295*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32297*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 32299*/        OPC_MoveParent,
/* 32300*/        OPC_RecordChild1, // #2 = $src1
/* 32301*/        OPC_CheckType, MVT::v4i64,
/* 32303*/        OPC_MoveParent,
/* 32304*/        OPC_CheckType, MVT::v32i8,
/* 32306*/        OPC_MoveParent,
/* 32307*/        OPC_MoveChild1,
/* 32308*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32311*/        OPC_MoveChild0,
/* 32312*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32315*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32317*/        OPC_CheckType, MVT::v8i32,
/* 32319*/        OPC_MoveParent,
/* 32320*/        OPC_MoveParent,
/* 32321*/        OPC_MoveChild2,
/* 32322*/        OPC_CheckCondCode, ISD::SETEQ,
/* 32324*/        OPC_MoveParent,
/* 32325*/        OPC_MoveParent,
/* 32326*/        OPC_RecordChild1, // #3 = $mask
/* 32327*/        OPC_CheckType, MVT::v32i1,
/* 32329*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 32331*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32334*/        OPC_EmitMergeInputChains1_0,
/* 32335*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32348*/      0, /*End of Scope*/
/* 32349*/    /*Scope*/ 75, /*->32425*/
/* 32350*/      OPC_RecordChild0, // #0 = $mask
/* 32351*/      OPC_MoveChild1,
/* 32352*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 32355*/      OPC_MoveChild0,
/* 32356*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32359*/      OPC_MoveChild0,
/* 32360*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 32363*/      OPC_MoveChild0,
/* 32364*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32367*/      OPC_RecordMemRef,
/* 32368*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 32369*/      OPC_CheckFoldableChainNode,
/* 32370*/      OPC_RecordChild1, // #2 = $src2
/* 32371*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32373*/      OPC_CheckPredicate, 9, // Predicate_load
/* 32375*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 32377*/      OPC_MoveParent,
/* 32378*/      OPC_RecordChild1, // #3 = $src1
/* 32379*/      OPC_CheckType, MVT::v2i64,
/* 32381*/      OPC_MoveParent,
/* 32382*/      OPC_CheckType, MVT::v16i8,
/* 32384*/      OPC_MoveParent,
/* 32385*/      OPC_MoveChild1,
/* 32386*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32389*/      OPC_MoveChild0,
/* 32390*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32393*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32395*/      OPC_CheckType, MVT::v4i32,
/* 32397*/      OPC_MoveParent,
/* 32398*/      OPC_MoveParent,
/* 32399*/      OPC_MoveChild2,
/* 32400*/      OPC_CheckCondCode, ISD::SETEQ,
/* 32402*/      OPC_MoveParent,
/* 32403*/      OPC_MoveParent,
/* 32404*/      OPC_CheckType, MVT::v16i1,
/* 32406*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 32408*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32411*/      OPC_EmitMergeInputChains1_1,
/* 32412*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTNMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32425*/    /*Scope*/ 14|128,1/*142*/, /*->32569*/
/* 32427*/      OPC_MoveChild0,
/* 32428*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 32431*/      OPC_MoveChild0,
/* 32432*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32435*/      OPC_MoveChild0,
/* 32436*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 32439*/      OPC_Scope, 63, /*->32504*/ // 2 children in Scope
/* 32441*/        OPC_RecordChild0, // #0 = $src1
/* 32442*/        OPC_MoveChild1,
/* 32443*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32446*/        OPC_RecordMemRef,
/* 32447*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32448*/        OPC_CheckFoldableChainNode,
/* 32449*/        OPC_RecordChild1, // #2 = $src2
/* 32450*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32452*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32454*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 32456*/        OPC_MoveParent,
/* 32457*/        OPC_CheckType, MVT::v2i64,
/* 32459*/        OPC_MoveParent,
/* 32460*/        OPC_CheckType, MVT::v16i8,
/* 32462*/        OPC_MoveParent,
/* 32463*/        OPC_MoveChild1,
/* 32464*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32467*/        OPC_MoveChild0,
/* 32468*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32471*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32473*/        OPC_CheckType, MVT::v4i32,
/* 32475*/        OPC_MoveParent,
/* 32476*/        OPC_MoveParent,
/* 32477*/        OPC_MoveChild2,
/* 32478*/        OPC_CheckCondCode, ISD::SETEQ,
/* 32480*/        OPC_MoveParent,
/* 32481*/        OPC_MoveParent,
/* 32482*/        OPC_RecordChild1, // #3 = $mask
/* 32483*/        OPC_CheckType, MVT::v16i1,
/* 32485*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 32487*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32490*/        OPC_EmitMergeInputChains1_1,
/* 32491*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32504*/      /*Scope*/ 63, /*->32568*/
/* 32505*/        OPC_MoveChild0,
/* 32506*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32509*/        OPC_RecordMemRef,
/* 32510*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 32511*/        OPC_CheckFoldableChainNode,
/* 32512*/        OPC_RecordChild1, // #1 = $src2
/* 32513*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32515*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32517*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 32519*/        OPC_MoveParent,
/* 32520*/        OPC_RecordChild1, // #2 = $src1
/* 32521*/        OPC_CheckType, MVT::v2i64,
/* 32523*/        OPC_MoveParent,
/* 32524*/        OPC_CheckType, MVT::v16i8,
/* 32526*/        OPC_MoveParent,
/* 32527*/        OPC_MoveChild1,
/* 32528*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32531*/        OPC_MoveChild0,
/* 32532*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32535*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32537*/        OPC_CheckType, MVT::v4i32,
/* 32539*/        OPC_MoveParent,
/* 32540*/        OPC_MoveParent,
/* 32541*/        OPC_MoveChild2,
/* 32542*/        OPC_CheckCondCode, ISD::SETEQ,
/* 32544*/        OPC_MoveParent,
/* 32545*/        OPC_MoveParent,
/* 32546*/        OPC_RecordChild1, // #3 = $mask
/* 32547*/        OPC_CheckType, MVT::v16i1,
/* 32549*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 32551*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32554*/        OPC_EmitMergeInputChains1_0,
/* 32555*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32568*/      0, /*End of Scope*/
/* 32569*/    /*Scope*/ 73, /*->32643*/
/* 32570*/      OPC_RecordChild0, // #0 = $mask
/* 32571*/      OPC_MoveChild1,
/* 32572*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 32575*/      OPC_MoveChild0,
/* 32576*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 32579*/      OPC_MoveChild0,
/* 32580*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 32583*/      OPC_MoveChild0,
/* 32584*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32587*/      OPC_RecordMemRef,
/* 32588*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 32589*/      OPC_CheckFoldableChainNode,
/* 32590*/      OPC_RecordChild1, // #2 = $src2
/* 32591*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32593*/      OPC_CheckPredicate, 9, // Predicate_load
/* 32595*/      OPC_CheckType, MVT::i64,
/* 32597*/      OPC_MoveParent,
/* 32598*/      OPC_MoveParent,
/* 32599*/      OPC_RecordChild1, // #3 = $src1
/* 32600*/      OPC_CheckType, MVT::v8i64,
/* 32602*/      OPC_MoveParent,
/* 32603*/      OPC_MoveChild1,
/* 32604*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32607*/      OPC_MoveChild0,
/* 32608*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32611*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32613*/      OPC_CheckType, MVT::v16i32,
/* 32615*/      OPC_MoveParent,
/* 32616*/      OPC_MoveParent,
/* 32617*/      OPC_MoveChild2,
/* 32618*/      OPC_CheckCondCode, ISD::SETEQ,
/* 32620*/      OPC_MoveParent,
/* 32621*/      OPC_MoveParent,
/* 32622*/      OPC_CheckType, MVT::v8i1,
/* 32624*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 32626*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32629*/      OPC_EmitMergeInputChains1_1,
/* 32630*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTNMQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32643*/    /*Scope*/ 14|128,1/*142*/, /*->32787*/
/* 32645*/      OPC_MoveChild0,
/* 32646*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 32649*/      OPC_MoveChild0,
/* 32650*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 32653*/      OPC_Scope, 65, /*->32720*/ // 2 children in Scope
/* 32655*/        OPC_RecordChild0, // #0 = $src1
/* 32656*/        OPC_MoveChild1,
/* 32657*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 32660*/        OPC_MoveChild0,
/* 32661*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32664*/        OPC_RecordMemRef,
/* 32665*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32666*/        OPC_CheckFoldableChainNode,
/* 32667*/        OPC_RecordChild1, // #2 = $src2
/* 32668*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32670*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32672*/        OPC_CheckType, MVT::i64,
/* 32674*/        OPC_MoveParent,
/* 32675*/        OPC_MoveParent,
/* 32676*/        OPC_CheckType, MVT::v8i64,
/* 32678*/        OPC_MoveParent,
/* 32679*/        OPC_MoveChild1,
/* 32680*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32683*/        OPC_MoveChild0,
/* 32684*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32687*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32689*/        OPC_CheckType, MVT::v16i32,
/* 32691*/        OPC_MoveParent,
/* 32692*/        OPC_MoveParent,
/* 32693*/        OPC_MoveChild2,
/* 32694*/        OPC_CheckCondCode, ISD::SETEQ,
/* 32696*/        OPC_MoveParent,
/* 32697*/        OPC_MoveParent,
/* 32698*/        OPC_RecordChild1, // #3 = $mask
/* 32699*/        OPC_CheckType, MVT::v8i1,
/* 32701*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 32703*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32706*/        OPC_EmitMergeInputChains1_1,
/* 32707*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32720*/      /*Scope*/ 65, /*->32786*/
/* 32721*/        OPC_MoveChild0,
/* 32722*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 32725*/        OPC_MoveChild0,
/* 32726*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32729*/        OPC_RecordMemRef,
/* 32730*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 32731*/        OPC_CheckFoldableChainNode,
/* 32732*/        OPC_RecordChild1, // #1 = $src2
/* 32733*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32735*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32737*/        OPC_CheckType, MVT::i64,
/* 32739*/        OPC_MoveParent,
/* 32740*/        OPC_MoveParent,
/* 32741*/        OPC_RecordChild1, // #2 = $src1
/* 32742*/        OPC_CheckType, MVT::v8i64,
/* 32744*/        OPC_MoveParent,
/* 32745*/        OPC_MoveChild1,
/* 32746*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32749*/        OPC_MoveChild0,
/* 32750*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32753*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32755*/        OPC_CheckType, MVT::v16i32,
/* 32757*/        OPC_MoveParent,
/* 32758*/        OPC_MoveParent,
/* 32759*/        OPC_MoveChild2,
/* 32760*/        OPC_CheckCondCode, ISD::SETEQ,
/* 32762*/        OPC_MoveParent,
/* 32763*/        OPC_MoveParent,
/* 32764*/        OPC_RecordChild1, // #3 = $mask
/* 32765*/        OPC_CheckType, MVT::v8i1,
/* 32767*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 32769*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32772*/        OPC_EmitMergeInputChains1_0,
/* 32773*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32786*/      0, /*End of Scope*/
/* 32787*/    /*Scope*/ 73, /*->32861*/
/* 32788*/      OPC_RecordChild0, // #0 = $mask
/* 32789*/      OPC_MoveChild1,
/* 32790*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 32793*/      OPC_MoveChild0,
/* 32794*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 32797*/      OPC_MoveChild0,
/* 32798*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 32801*/      OPC_MoveChild0,
/* 32802*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32805*/      OPC_RecordMemRef,
/* 32806*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 32807*/      OPC_CheckFoldableChainNode,
/* 32808*/      OPC_RecordChild1, // #2 = $src2
/* 32809*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32811*/      OPC_CheckPredicate, 9, // Predicate_load
/* 32813*/      OPC_CheckType, MVT::i64,
/* 32815*/      OPC_MoveParent,
/* 32816*/      OPC_MoveParent,
/* 32817*/      OPC_RecordChild1, // #3 = $src1
/* 32818*/      OPC_CheckType, MVT::v4i64,
/* 32820*/      OPC_MoveParent,
/* 32821*/      OPC_MoveChild1,
/* 32822*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32825*/      OPC_MoveChild0,
/* 32826*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32829*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32831*/      OPC_CheckType, MVT::v8i32,
/* 32833*/      OPC_MoveParent,
/* 32834*/      OPC_MoveParent,
/* 32835*/      OPC_MoveChild2,
/* 32836*/      OPC_CheckCondCode, ISD::SETEQ,
/* 32838*/      OPC_MoveParent,
/* 32839*/      OPC_MoveParent,
/* 32840*/      OPC_CheckType, MVT::v4i1,
/* 32842*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 32844*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32847*/      OPC_EmitMergeInputChains1_1,
/* 32848*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTNMQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32861*/    /*Scope*/ 14|128,1/*142*/, /*->33005*/
/* 32863*/      OPC_MoveChild0,
/* 32864*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 32867*/      OPC_MoveChild0,
/* 32868*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 32871*/      OPC_Scope, 65, /*->32938*/ // 2 children in Scope
/* 32873*/        OPC_RecordChild0, // #0 = $src1
/* 32874*/        OPC_MoveChild1,
/* 32875*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 32878*/        OPC_MoveChild0,
/* 32879*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32882*/        OPC_RecordMemRef,
/* 32883*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32884*/        OPC_CheckFoldableChainNode,
/* 32885*/        OPC_RecordChild1, // #2 = $src2
/* 32886*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32888*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32890*/        OPC_CheckType, MVT::i64,
/* 32892*/        OPC_MoveParent,
/* 32893*/        OPC_MoveParent,
/* 32894*/        OPC_CheckType, MVT::v4i64,
/* 32896*/        OPC_MoveParent,
/* 32897*/        OPC_MoveChild1,
/* 32898*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32901*/        OPC_MoveChild0,
/* 32902*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32905*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32907*/        OPC_CheckType, MVT::v8i32,
/* 32909*/        OPC_MoveParent,
/* 32910*/        OPC_MoveParent,
/* 32911*/        OPC_MoveChild2,
/* 32912*/        OPC_CheckCondCode, ISD::SETEQ,
/* 32914*/        OPC_MoveParent,
/* 32915*/        OPC_MoveParent,
/* 32916*/        OPC_RecordChild1, // #3 = $mask
/* 32917*/        OPC_CheckType, MVT::v4i1,
/* 32919*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 32921*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32924*/        OPC_EmitMergeInputChains1_1,
/* 32925*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32938*/      /*Scope*/ 65, /*->33004*/
/* 32939*/        OPC_MoveChild0,
/* 32940*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 32943*/        OPC_MoveChild0,
/* 32944*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32947*/        OPC_RecordMemRef,
/* 32948*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 32949*/        OPC_CheckFoldableChainNode,
/* 32950*/        OPC_RecordChild1, // #1 = $src2
/* 32951*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32953*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32955*/        OPC_CheckType, MVT::i64,
/* 32957*/        OPC_MoveParent,
/* 32958*/        OPC_MoveParent,
/* 32959*/        OPC_RecordChild1, // #2 = $src1
/* 32960*/        OPC_CheckType, MVT::v4i64,
/* 32962*/        OPC_MoveParent,
/* 32963*/        OPC_MoveChild1,
/* 32964*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 32967*/        OPC_MoveChild0,
/* 32968*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 32971*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 32973*/        OPC_CheckType, MVT::v8i32,
/* 32975*/        OPC_MoveParent,
/* 32976*/        OPC_MoveParent,
/* 32977*/        OPC_MoveChild2,
/* 32978*/        OPC_CheckCondCode, ISD::SETEQ,
/* 32980*/        OPC_MoveParent,
/* 32981*/        OPC_MoveParent,
/* 32982*/        OPC_RecordChild1, // #3 = $mask
/* 32983*/        OPC_CheckType, MVT::v4i1,
/* 32985*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 32987*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32990*/        OPC_EmitMergeInputChains1_0,
/* 32991*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33004*/      0, /*End of Scope*/
/* 33005*/    /*Scope*/ 73, /*->33079*/
/* 33006*/      OPC_RecordChild0, // #0 = $mask
/* 33007*/      OPC_MoveChild1,
/* 33008*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 33011*/      OPC_MoveChild0,
/* 33012*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 33015*/      OPC_MoveChild0,
/* 33016*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 33019*/      OPC_MoveChild0,
/* 33020*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33023*/      OPC_RecordMemRef,
/* 33024*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 33025*/      OPC_CheckFoldableChainNode,
/* 33026*/      OPC_RecordChild1, // #2 = $src2
/* 33027*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33029*/      OPC_CheckPredicate, 9, // Predicate_load
/* 33031*/      OPC_CheckType, MVT::i64,
/* 33033*/      OPC_MoveParent,
/* 33034*/      OPC_MoveParent,
/* 33035*/      OPC_RecordChild1, // #3 = $src1
/* 33036*/      OPC_CheckType, MVT::v2i64,
/* 33038*/      OPC_MoveParent,
/* 33039*/      OPC_MoveChild1,
/* 33040*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 33043*/      OPC_MoveChild0,
/* 33044*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33047*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33049*/      OPC_CheckType, MVT::v4i32,
/* 33051*/      OPC_MoveParent,
/* 33052*/      OPC_MoveParent,
/* 33053*/      OPC_MoveChild2,
/* 33054*/      OPC_CheckCondCode, ISD::SETEQ,
/* 33056*/      OPC_MoveParent,
/* 33057*/      OPC_MoveParent,
/* 33058*/      OPC_CheckType, MVT::v2i1,
/* 33060*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33062*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33065*/      OPC_EmitMergeInputChains1_1,
/* 33066*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 41
                // Dst: (VPTESTNMQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33079*/    /*Scope*/ 14|128,1/*142*/, /*->33223*/
/* 33081*/      OPC_MoveChild0,
/* 33082*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 33085*/      OPC_MoveChild0,
/* 33086*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 33089*/      OPC_Scope, 65, /*->33156*/ // 2 children in Scope
/* 33091*/        OPC_RecordChild0, // #0 = $src1
/* 33092*/        OPC_MoveChild1,
/* 33093*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 33096*/        OPC_MoveChild0,
/* 33097*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33100*/        OPC_RecordMemRef,
/* 33101*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33102*/        OPC_CheckFoldableChainNode,
/* 33103*/        OPC_RecordChild1, // #2 = $src2
/* 33104*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33106*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33108*/        OPC_CheckType, MVT::i64,
/* 33110*/        OPC_MoveParent,
/* 33111*/        OPC_MoveParent,
/* 33112*/        OPC_CheckType, MVT::v2i64,
/* 33114*/        OPC_MoveParent,
/* 33115*/        OPC_MoveChild1,
/* 33116*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 33119*/        OPC_MoveChild0,
/* 33120*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33123*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33125*/        OPC_CheckType, MVT::v4i32,
/* 33127*/        OPC_MoveParent,
/* 33128*/        OPC_MoveParent,
/* 33129*/        OPC_MoveChild2,
/* 33130*/        OPC_CheckCondCode, ISD::SETEQ,
/* 33132*/        OPC_MoveParent,
/* 33133*/        OPC_MoveParent,
/* 33134*/        OPC_RecordChild1, // #3 = $mask
/* 33135*/        OPC_CheckType, MVT::v2i1,
/* 33137*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33139*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33142*/        OPC_EmitMergeInputChains1_1,
/* 33143*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33156*/      /*Scope*/ 65, /*->33222*/
/* 33157*/        OPC_MoveChild0,
/* 33158*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 33161*/        OPC_MoveChild0,
/* 33162*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33165*/        OPC_RecordMemRef,
/* 33166*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 33167*/        OPC_CheckFoldableChainNode,
/* 33168*/        OPC_RecordChild1, // #1 = $src2
/* 33169*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33171*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33173*/        OPC_CheckType, MVT::i64,
/* 33175*/        OPC_MoveParent,
/* 33176*/        OPC_MoveParent,
/* 33177*/        OPC_RecordChild1, // #2 = $src1
/* 33178*/        OPC_CheckType, MVT::v2i64,
/* 33180*/        OPC_MoveParent,
/* 33181*/        OPC_MoveChild1,
/* 33182*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 33185*/        OPC_MoveChild0,
/* 33186*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33189*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33191*/        OPC_CheckType, MVT::v4i32,
/* 33193*/        OPC_MoveParent,
/* 33194*/        OPC_MoveParent,
/* 33195*/        OPC_MoveChild2,
/* 33196*/        OPC_CheckCondCode, ISD::SETEQ,
/* 33198*/        OPC_MoveParent,
/* 33199*/        OPC_MoveParent,
/* 33200*/        OPC_RecordChild1, // #3 = $mask
/* 33201*/        OPC_CheckType, MVT::v2i1,
/* 33203*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33205*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33208*/        OPC_EmitMergeInputChains1_0,
/* 33209*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 41
                  // Dst: (VPTESTNMQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33222*/      0, /*End of Scope*/
/* 33223*/    /*Scope*/ 116|128,5/*756*/, /*->33981*/
/* 33225*/      OPC_RecordChild0, // #0 = $mask
/* 33226*/      OPC_MoveChild1,
/* 33227*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 33230*/      OPC_MoveChild0,
/* 33231*/      OPC_SwitchOpcode /*2 cases */, 30|128,2/*286*/, TARGET_VAL(ISD::BITCAST),// ->33522
/* 33236*/        OPC_MoveChild0,
/* 33237*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 33240*/        OPC_Scope, 94|128,1/*222*/, /*->33465*/ // 2 children in Scope
/* 33243*/          OPC_RecordChild0, // #1 = $src1
/* 33244*/          OPC_MoveChild1,
/* 33245*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33248*/          OPC_RecordMemRef,
/* 33249*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 33250*/          OPC_CheckFoldableChainNode,
/* 33251*/          OPC_RecordChild1, // #3 = $src2
/* 33252*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33254*/          OPC_CheckPredicate, 9, // Predicate_load
/* 33256*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 33258*/          OPC_MoveParent,
/* 33259*/          OPC_SwitchType /*3 cases */, 66, MVT::v8i64,// ->33328
/* 33262*/            OPC_MoveParent,
/* 33263*/            OPC_CheckType, MVT::v16i32,
/* 33265*/            OPC_MoveParent,
/* 33266*/            OPC_MoveChild1,
/* 33267*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33270*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33272*/            OPC_MoveParent,
/* 33273*/            OPC_MoveChild2,
/* 33274*/            OPC_Scope, 25, /*->33301*/ // 2 children in Scope
/* 33276*/              OPC_CheckCondCode, ISD::SETNE,
/* 33278*/              OPC_MoveParent,
/* 33279*/              OPC_MoveParent,
/* 33280*/              OPC_CheckType, MVT::v16i1,
/* 33282*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 33284*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33287*/              OPC_EmitMergeInputChains1_2,
/* 33288*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTMDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33301*/            /*Scope*/ 25, /*->33327*/
/* 33302*/              OPC_CheckCondCode, ISD::SETEQ,
/* 33304*/              OPC_MoveParent,
/* 33305*/              OPC_MoveParent,
/* 33306*/              OPC_CheckType, MVT::v16i1,
/* 33308*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 33310*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33313*/              OPC_EmitMergeInputChains1_2,
/* 33314*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTNMDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33327*/            0, /*End of Scope*/
/* 33328*/          /*SwitchType*/ 66, MVT::v4i64,// ->33396
/* 33330*/            OPC_MoveParent,
/* 33331*/            OPC_CheckType, MVT::v8i32,
/* 33333*/            OPC_MoveParent,
/* 33334*/            OPC_MoveChild1,
/* 33335*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33338*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33340*/            OPC_MoveParent,
/* 33341*/            OPC_MoveChild2,
/* 33342*/            OPC_Scope, 25, /*->33369*/ // 2 children in Scope
/* 33344*/              OPC_CheckCondCode, ISD::SETNE,
/* 33346*/              OPC_MoveParent,
/* 33347*/              OPC_MoveParent,
/* 33348*/              OPC_CheckType, MVT::v8i1,
/* 33350*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33352*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33355*/              OPC_EmitMergeInputChains1_2,
/* 33356*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTMDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33369*/            /*Scope*/ 25, /*->33395*/
/* 33370*/              OPC_CheckCondCode, ISD::SETEQ,
/* 33372*/              OPC_MoveParent,
/* 33373*/              OPC_MoveParent,
/* 33374*/              OPC_CheckType, MVT::v8i1,
/* 33376*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33378*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33381*/              OPC_EmitMergeInputChains1_2,
/* 33382*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTNMDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33395*/            0, /*End of Scope*/
/* 33396*/          /*SwitchType*/ 66, MVT::v2i64,// ->33464
/* 33398*/            OPC_MoveParent,
/* 33399*/            OPC_CheckType, MVT::v4i32,
/* 33401*/            OPC_MoveParent,
/* 33402*/            OPC_MoveChild1,
/* 33403*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33406*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33408*/            OPC_MoveParent,
/* 33409*/            OPC_MoveChild2,
/* 33410*/            OPC_Scope, 25, /*->33437*/ // 2 children in Scope
/* 33412*/              OPC_CheckCondCode, ISD::SETNE,
/* 33414*/              OPC_MoveParent,
/* 33415*/              OPC_MoveParent,
/* 33416*/              OPC_CheckType, MVT::v4i1,
/* 33418*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33420*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33423*/              OPC_EmitMergeInputChains1_2,
/* 33424*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTMDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33437*/            /*Scope*/ 25, /*->33463*/
/* 33438*/              OPC_CheckCondCode, ISD::SETEQ,
/* 33440*/              OPC_MoveParent,
/* 33441*/              OPC_MoveParent,
/* 33442*/              OPC_CheckType, MVT::v4i1,
/* 33444*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33446*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33449*/              OPC_EmitMergeInputChains1_2,
/* 33450*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTNMDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33463*/            0, /*End of Scope*/
/* 33464*/          0, // EndSwitchType
/* 33465*/        /*Scope*/ 55, /*->33521*/
/* 33466*/          OPC_MoveChild0,
/* 33467*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33470*/          OPC_RecordMemRef,
/* 33471*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 33472*/          OPC_CheckFoldableChainNode,
/* 33473*/          OPC_RecordChild1, // #2 = $src2
/* 33474*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33476*/          OPC_CheckPredicate, 9, // Predicate_load
/* 33478*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 33480*/          OPC_MoveParent,
/* 33481*/          OPC_RecordChild1, // #3 = $src1
/* 33482*/          OPC_CheckType, MVT::v8i64,
/* 33484*/          OPC_MoveParent,
/* 33485*/          OPC_CheckType, MVT::v16i32,
/* 33487*/          OPC_MoveParent,
/* 33488*/          OPC_MoveChild1,
/* 33489*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33492*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33494*/          OPC_MoveParent,
/* 33495*/          OPC_MoveChild2,
/* 33496*/          OPC_CheckCondCode, ISD::SETNE,
/* 33498*/          OPC_MoveParent,
/* 33499*/          OPC_MoveParent,
/* 33500*/          OPC_CheckType, MVT::v16i1,
/* 33502*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 33504*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33507*/          OPC_EmitMergeInputChains1_1,
/* 33508*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                    // Dst: (VPTESTMDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33521*/        0, /*End of Scope*/
/* 33522*/      /*SwitchOpcode*/ 70|128,3/*454*/, TARGET_VAL(ISD::AND),// ->33980
/* 33526*/        OPC_RecordChild0, // #1 = $src1
/* 33527*/        OPC_MoveChild1,
/* 33528*/        OPC_SwitchOpcode /*2 cases */, 85|128,1/*213*/, TARGET_VAL(X86ISD::VBROADCAST),// ->33746
/* 33533*/          OPC_MoveChild0,
/* 33534*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33537*/          OPC_RecordMemRef,
/* 33538*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 33539*/          OPC_CheckFoldableChainNode,
/* 33540*/          OPC_RecordChild1, // #3 = $src2
/* 33541*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33543*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 33545*/          OPC_CheckType, MVT::i32,
/* 33547*/          OPC_MoveParent,
/* 33548*/          OPC_MoveParent,
/* 33549*/          OPC_SwitchType /*3 cases */, 63, MVT::v16i32,// ->33615
/* 33552*/            OPC_MoveParent,
/* 33553*/            OPC_MoveChild1,
/* 33554*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33557*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33559*/            OPC_MoveParent,
/* 33560*/            OPC_MoveChild2,
/* 33561*/            OPC_Scope, 25, /*->33588*/ // 2 children in Scope
/* 33563*/              OPC_CheckCondCode, ISD::SETNE,
/* 33565*/              OPC_MoveParent,
/* 33566*/              OPC_MoveParent,
/* 33567*/              OPC_CheckType, MVT::v16i1,
/* 33569*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 33571*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33574*/              OPC_EmitMergeInputChains1_2,
/* 33575*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTMDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33588*/            /*Scope*/ 25, /*->33614*/
/* 33589*/              OPC_CheckCondCode, ISD::SETEQ,
/* 33591*/              OPC_MoveParent,
/* 33592*/              OPC_MoveParent,
/* 33593*/              OPC_CheckType, MVT::v16i1,
/* 33595*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 33597*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33600*/              OPC_EmitMergeInputChains1_2,
/* 33601*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTNMDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33614*/            0, /*End of Scope*/
/* 33615*/          /*SwitchType*/ 63, MVT::v8i32,// ->33680
/* 33617*/            OPC_MoveParent,
/* 33618*/            OPC_MoveChild1,
/* 33619*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33622*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33624*/            OPC_MoveParent,
/* 33625*/            OPC_MoveChild2,
/* 33626*/            OPC_Scope, 25, /*->33653*/ // 2 children in Scope
/* 33628*/              OPC_CheckCondCode, ISD::SETNE,
/* 33630*/              OPC_MoveParent,
/* 33631*/              OPC_MoveParent,
/* 33632*/              OPC_CheckType, MVT::v8i1,
/* 33634*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33636*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33639*/              OPC_EmitMergeInputChains1_2,
/* 33640*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTMDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33653*/            /*Scope*/ 25, /*->33679*/
/* 33654*/              OPC_CheckCondCode, ISD::SETEQ,
/* 33656*/              OPC_MoveParent,
/* 33657*/              OPC_MoveParent,
/* 33658*/              OPC_CheckType, MVT::v8i1,
/* 33660*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33662*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33665*/              OPC_EmitMergeInputChains1_2,
/* 33666*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTNMDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33679*/            0, /*End of Scope*/
/* 33680*/          /*SwitchType*/ 63, MVT::v4i32,// ->33745
/* 33682*/            OPC_MoveParent,
/* 33683*/            OPC_MoveChild1,
/* 33684*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33687*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33689*/            OPC_MoveParent,
/* 33690*/            OPC_MoveChild2,
/* 33691*/            OPC_Scope, 25, /*->33718*/ // 2 children in Scope
/* 33693*/              OPC_CheckCondCode, ISD::SETNE,
/* 33695*/              OPC_MoveParent,
/* 33696*/              OPC_MoveParent,
/* 33697*/              OPC_CheckType, MVT::v4i1,
/* 33699*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33701*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33704*/              OPC_EmitMergeInputChains1_2,
/* 33705*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTMDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33718*/            /*Scope*/ 25, /*->33744*/
/* 33719*/              OPC_CheckCondCode, ISD::SETEQ,
/* 33721*/              OPC_MoveParent,
/* 33722*/              OPC_MoveParent,
/* 33723*/              OPC_CheckType, MVT::v4i1,
/* 33725*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33727*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33730*/              OPC_EmitMergeInputChains1_2,
/* 33731*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTNMDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33744*/            0, /*End of Scope*/
/* 33745*/          0, // EndSwitchType
/* 33746*/        /*SwitchOpcode*/ 101|128,1/*229*/, TARGET_VAL(ISD::LOAD),// ->33979
/* 33750*/          OPC_RecordMemRef,
/* 33751*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 33752*/          OPC_CheckFoldableChainNode,
/* 33753*/          OPC_RecordChild1, // #3 = $src2
/* 33754*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33756*/          OPC_CheckPredicate, 9, // Predicate_load
/* 33758*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 33760*/          OPC_MoveParent,
/* 33761*/          OPC_SwitchType /*3 cases */, 70, MVT::v8i64,// ->33834
/* 33764*/            OPC_MoveParent,
/* 33765*/            OPC_MoveChild1,
/* 33766*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 33769*/            OPC_MoveChild0,
/* 33770*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33773*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33775*/            OPC_CheckType, MVT::v16i32,
/* 33777*/            OPC_MoveParent,
/* 33778*/            OPC_MoveParent,
/* 33779*/            OPC_MoveChild2,
/* 33780*/            OPC_Scope, 25, /*->33807*/ // 2 children in Scope
/* 33782*/              OPC_CheckCondCode, ISD::SETNE,
/* 33784*/              OPC_MoveParent,
/* 33785*/              OPC_MoveParent,
/* 33786*/              OPC_CheckType, MVT::v8i1,
/* 33788*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 33790*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33793*/              OPC_EmitMergeInputChains1_2,
/* 33794*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTMQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33807*/            /*Scope*/ 25, /*->33833*/
/* 33808*/              OPC_CheckCondCode, ISD::SETEQ,
/* 33810*/              OPC_MoveParent,
/* 33811*/              OPC_MoveParent,
/* 33812*/              OPC_CheckType, MVT::v8i1,
/* 33814*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 33816*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33819*/              OPC_EmitMergeInputChains1_2,
/* 33820*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTNMQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33833*/            0, /*End of Scope*/
/* 33834*/          /*SwitchType*/ 70, MVT::v4i64,// ->33906
/* 33836*/            OPC_MoveParent,
/* 33837*/            OPC_MoveChild1,
/* 33838*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 33841*/            OPC_MoveChild0,
/* 33842*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33845*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33847*/            OPC_CheckType, MVT::v8i32,
/* 33849*/            OPC_MoveParent,
/* 33850*/            OPC_MoveParent,
/* 33851*/            OPC_MoveChild2,
/* 33852*/            OPC_Scope, 25, /*->33879*/ // 2 children in Scope
/* 33854*/              OPC_CheckCondCode, ISD::SETNE,
/* 33856*/              OPC_MoveParent,
/* 33857*/              OPC_MoveParent,
/* 33858*/              OPC_CheckType, MVT::v4i1,
/* 33860*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33862*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33865*/              OPC_EmitMergeInputChains1_2,
/* 33866*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTMQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33879*/            /*Scope*/ 25, /*->33905*/
/* 33880*/              OPC_CheckCondCode, ISD::SETEQ,
/* 33882*/              OPC_MoveParent,
/* 33883*/              OPC_MoveParent,
/* 33884*/              OPC_CheckType, MVT::v4i1,
/* 33886*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33888*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33891*/              OPC_EmitMergeInputChains1_2,
/* 33892*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTNMQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33905*/            0, /*End of Scope*/
/* 33906*/          /*SwitchType*/ 70, MVT::v2i64,// ->33978
/* 33908*/            OPC_MoveParent,
/* 33909*/            OPC_MoveChild1,
/* 33910*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 33913*/            OPC_MoveChild0,
/* 33914*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 33917*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 33919*/            OPC_CheckType, MVT::v4i32,
/* 33921*/            OPC_MoveParent,
/* 33922*/            OPC_MoveParent,
/* 33923*/            OPC_MoveChild2,
/* 33924*/            OPC_Scope, 25, /*->33951*/ // 2 children in Scope
/* 33926*/              OPC_CheckCondCode, ISD::SETNE,
/* 33928*/              OPC_MoveParent,
/* 33929*/              OPC_MoveParent,
/* 33930*/              OPC_CheckType, MVT::v2i1,
/* 33932*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33934*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33937*/              OPC_EmitMergeInputChains1_2,
/* 33938*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTMQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33951*/            /*Scope*/ 25, /*->33977*/
/* 33952*/              OPC_CheckCondCode, ISD::SETEQ,
/* 33954*/              OPC_MoveParent,
/* 33955*/              OPC_MoveParent,
/* 33956*/              OPC_CheckType, MVT::v2i1,
/* 33958*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 33960*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33963*/              OPC_EmitMergeInputChains1_2,
/* 33964*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 38
                        // Dst: (VPTESTNMQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33977*/            0, /*End of Scope*/
/* 33978*/          0, // EndSwitchType
/* 33979*/        0, // EndSwitchOpcode
/* 33980*/      0, // EndSwitchOpcode
/* 33981*/    /*Scope*/ 0|128,1/*128*/, /*->34111*/
/* 33983*/      OPC_MoveChild0,
/* 33984*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 33987*/      OPC_MoveChild0,
/* 33988*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 33991*/      OPC_MoveChild0,
/* 33992*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 33995*/      OPC_Scope, 56, /*->34053*/ // 2 children in Scope
/* 33997*/        OPC_RecordChild0, // #0 = $src1
/* 33998*/        OPC_MoveChild1,
/* 33999*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34002*/        OPC_RecordMemRef,
/* 34003*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34004*/        OPC_CheckFoldableChainNode,
/* 34005*/        OPC_RecordChild1, // #2 = $src2
/* 34006*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34008*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34010*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 34012*/        OPC_MoveParent,
/* 34013*/        OPC_CheckType, MVT::v8i64,
/* 34015*/        OPC_MoveParent,
/* 34016*/        OPC_CheckType, MVT::v16i32,
/* 34018*/        OPC_MoveParent,
/* 34019*/        OPC_MoveChild1,
/* 34020*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34023*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34025*/        OPC_MoveParent,
/* 34026*/        OPC_MoveChild2,
/* 34027*/        OPC_CheckCondCode, ISD::SETNE,
/* 34029*/        OPC_MoveParent,
/* 34030*/        OPC_MoveParent,
/* 34031*/        OPC_RecordChild1, // #3 = $mask
/* 34032*/        OPC_CheckType, MVT::v16i1,
/* 34034*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 34036*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34039*/        OPC_EmitMergeInputChains1_1,
/* 34040*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34053*/      /*Scope*/ 56, /*->34110*/
/* 34054*/        OPC_MoveChild0,
/* 34055*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34058*/        OPC_RecordMemRef,
/* 34059*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 34060*/        OPC_CheckFoldableChainNode,
/* 34061*/        OPC_RecordChild1, // #1 = $src2
/* 34062*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34064*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34066*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 34068*/        OPC_MoveParent,
/* 34069*/        OPC_RecordChild1, // #2 = $src1
/* 34070*/        OPC_CheckType, MVT::v8i64,
/* 34072*/        OPC_MoveParent,
/* 34073*/        OPC_CheckType, MVT::v16i32,
/* 34075*/        OPC_MoveParent,
/* 34076*/        OPC_MoveChild1,
/* 34077*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34080*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34082*/        OPC_MoveParent,
/* 34083*/        OPC_MoveChild2,
/* 34084*/        OPC_CheckCondCode, ISD::SETNE,
/* 34086*/        OPC_MoveParent,
/* 34087*/        OPC_MoveParent,
/* 34088*/        OPC_RecordChild1, // #3 = $mask
/* 34089*/        OPC_CheckType, MVT::v16i1,
/* 34091*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 34093*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34096*/        OPC_EmitMergeInputChains1_0,
/* 34097*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34110*/      0, /*End of Scope*/
/* 34111*/    /*Scope*/ 66, /*->34178*/
/* 34112*/      OPC_RecordChild0, // #0 = $mask
/* 34113*/      OPC_MoveChild1,
/* 34114*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 34117*/      OPC_MoveChild0,
/* 34118*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 34121*/      OPC_MoveChild0,
/* 34122*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 34125*/      OPC_MoveChild0,
/* 34126*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34129*/      OPC_RecordMemRef,
/* 34130*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 34131*/      OPC_CheckFoldableChainNode,
/* 34132*/      OPC_RecordChild1, // #2 = $src2
/* 34133*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34135*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/* 34137*/      OPC_CheckType, MVT::i32,
/* 34139*/      OPC_MoveParent,
/* 34140*/      OPC_MoveParent,
/* 34141*/      OPC_RecordChild1, // #3 = $src1
/* 34142*/      OPC_CheckType, MVT::v16i32,
/* 34144*/      OPC_MoveParent,
/* 34145*/      OPC_MoveChild1,
/* 34146*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34149*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34151*/      OPC_MoveParent,
/* 34152*/      OPC_MoveChild2,
/* 34153*/      OPC_CheckCondCode, ISD::SETNE,
/* 34155*/      OPC_MoveParent,
/* 34156*/      OPC_MoveParent,
/* 34157*/      OPC_CheckType, MVT::v16i1,
/* 34159*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 34161*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34164*/      OPC_EmitMergeInputChains1_1,
/* 34165*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTMDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34178*/    /*Scope*/ 0|128,1/*128*/, /*->34308*/
/* 34180*/      OPC_MoveChild0,
/* 34181*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 34184*/      OPC_MoveChild0,
/* 34185*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 34188*/      OPC_Scope, 58, /*->34248*/ // 2 children in Scope
/* 34190*/        OPC_RecordChild0, // #0 = $src1
/* 34191*/        OPC_MoveChild1,
/* 34192*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 34195*/        OPC_MoveChild0,
/* 34196*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34199*/        OPC_RecordMemRef,
/* 34200*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34201*/        OPC_CheckFoldableChainNode,
/* 34202*/        OPC_RecordChild1, // #2 = $src2
/* 34203*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34205*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 34207*/        OPC_CheckType, MVT::i32,
/* 34209*/        OPC_MoveParent,
/* 34210*/        OPC_MoveParent,
/* 34211*/        OPC_CheckType, MVT::v16i32,
/* 34213*/        OPC_MoveParent,
/* 34214*/        OPC_MoveChild1,
/* 34215*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34218*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34220*/        OPC_MoveParent,
/* 34221*/        OPC_MoveChild2,
/* 34222*/        OPC_CheckCondCode, ISD::SETNE,
/* 34224*/        OPC_MoveParent,
/* 34225*/        OPC_MoveParent,
/* 34226*/        OPC_RecordChild1, // #3 = $mask
/* 34227*/        OPC_CheckType, MVT::v16i1,
/* 34229*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 34231*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34234*/        OPC_EmitMergeInputChains1_1,
/* 34235*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34248*/      /*Scope*/ 58, /*->34307*/
/* 34249*/        OPC_MoveChild0,
/* 34250*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 34253*/        OPC_MoveChild0,
/* 34254*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34257*/        OPC_RecordMemRef,
/* 34258*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 34259*/        OPC_CheckFoldableChainNode,
/* 34260*/        OPC_RecordChild1, // #1 = $src2
/* 34261*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34263*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 34265*/        OPC_CheckType, MVT::i32,
/* 34267*/        OPC_MoveParent,
/* 34268*/        OPC_MoveParent,
/* 34269*/        OPC_RecordChild1, // #2 = $src1
/* 34270*/        OPC_CheckType, MVT::v16i32,
/* 34272*/        OPC_MoveParent,
/* 34273*/        OPC_MoveChild1,
/* 34274*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34277*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34279*/        OPC_MoveParent,
/* 34280*/        OPC_MoveChild2,
/* 34281*/        OPC_CheckCondCode, ISD::SETNE,
/* 34283*/        OPC_MoveParent,
/* 34284*/        OPC_MoveParent,
/* 34285*/        OPC_RecordChild1, // #3 = $mask
/* 34286*/        OPC_CheckType, MVT::v16i1,
/* 34288*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 34290*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34293*/        OPC_EmitMergeInputChains1_0,
/* 34294*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34307*/      0, /*End of Scope*/
/* 34308*/    /*Scope*/ 68, /*->34377*/
/* 34309*/      OPC_RecordChild0, // #0 = $mask
/* 34310*/      OPC_MoveChild1,
/* 34311*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 34314*/      OPC_MoveChild0,
/* 34315*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 34318*/      OPC_MoveChild0,
/* 34319*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 34322*/      OPC_MoveChild0,
/* 34323*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34326*/      OPC_RecordMemRef,
/* 34327*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 34328*/      OPC_CheckFoldableChainNode,
/* 34329*/      OPC_RecordChild1, // #2 = $src2
/* 34330*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34332*/      OPC_CheckPredicate, 9, // Predicate_load
/* 34334*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 34336*/      OPC_MoveParent,
/* 34337*/      OPC_RecordChild1, // #3 = $src1
/* 34338*/      OPC_CheckType, MVT::v4i64,
/* 34340*/      OPC_MoveParent,
/* 34341*/      OPC_CheckType, MVT::v8i32,
/* 34343*/      OPC_MoveParent,
/* 34344*/      OPC_MoveChild1,
/* 34345*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34348*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34350*/      OPC_MoveParent,
/* 34351*/      OPC_MoveChild2,
/* 34352*/      OPC_CheckCondCode, ISD::SETNE,
/* 34354*/      OPC_MoveParent,
/* 34355*/      OPC_MoveParent,
/* 34356*/      OPC_CheckType, MVT::v8i1,
/* 34358*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 34360*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34363*/      OPC_EmitMergeInputChains1_1,
/* 34364*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTMDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34377*/    /*Scope*/ 0|128,1/*128*/, /*->34507*/
/* 34379*/      OPC_MoveChild0,
/* 34380*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 34383*/      OPC_MoveChild0,
/* 34384*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 34387*/      OPC_MoveChild0,
/* 34388*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 34391*/      OPC_Scope, 56, /*->34449*/ // 2 children in Scope
/* 34393*/        OPC_RecordChild0, // #0 = $src1
/* 34394*/        OPC_MoveChild1,
/* 34395*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34398*/        OPC_RecordMemRef,
/* 34399*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34400*/        OPC_CheckFoldableChainNode,
/* 34401*/        OPC_RecordChild1, // #2 = $src2
/* 34402*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34404*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34406*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 34408*/        OPC_MoveParent,
/* 34409*/        OPC_CheckType, MVT::v4i64,
/* 34411*/        OPC_MoveParent,
/* 34412*/        OPC_CheckType, MVT::v8i32,
/* 34414*/        OPC_MoveParent,
/* 34415*/        OPC_MoveChild1,
/* 34416*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34419*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34421*/        OPC_MoveParent,
/* 34422*/        OPC_MoveChild2,
/* 34423*/        OPC_CheckCondCode, ISD::SETNE,
/* 34425*/        OPC_MoveParent,
/* 34426*/        OPC_MoveParent,
/* 34427*/        OPC_RecordChild1, // #3 = $mask
/* 34428*/        OPC_CheckType, MVT::v8i1,
/* 34430*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 34432*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34435*/        OPC_EmitMergeInputChains1_1,
/* 34436*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34449*/      /*Scope*/ 56, /*->34506*/
/* 34450*/        OPC_MoveChild0,
/* 34451*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34454*/        OPC_RecordMemRef,
/* 34455*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 34456*/        OPC_CheckFoldableChainNode,
/* 34457*/        OPC_RecordChild1, // #1 = $src2
/* 34458*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34460*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34462*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 34464*/        OPC_MoveParent,
/* 34465*/        OPC_RecordChild1, // #2 = $src1
/* 34466*/        OPC_CheckType, MVT::v4i64,
/* 34468*/        OPC_MoveParent,
/* 34469*/        OPC_CheckType, MVT::v8i32,
/* 34471*/        OPC_MoveParent,
/* 34472*/        OPC_MoveChild1,
/* 34473*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34476*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34478*/        OPC_MoveParent,
/* 34479*/        OPC_MoveChild2,
/* 34480*/        OPC_CheckCondCode, ISD::SETNE,
/* 34482*/        OPC_MoveParent,
/* 34483*/        OPC_MoveParent,
/* 34484*/        OPC_RecordChild1, // #3 = $mask
/* 34485*/        OPC_CheckType, MVT::v8i1,
/* 34487*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 34489*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34492*/        OPC_EmitMergeInputChains1_0,
/* 34493*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34506*/      0, /*End of Scope*/
/* 34507*/    /*Scope*/ 66, /*->34574*/
/* 34508*/      OPC_RecordChild0, // #0 = $mask
/* 34509*/      OPC_MoveChild1,
/* 34510*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 34513*/      OPC_MoveChild0,
/* 34514*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 34517*/      OPC_MoveChild0,
/* 34518*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 34521*/      OPC_MoveChild0,
/* 34522*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34525*/      OPC_RecordMemRef,
/* 34526*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 34527*/      OPC_CheckFoldableChainNode,
/* 34528*/      OPC_RecordChild1, // #2 = $src2
/* 34529*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34531*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/* 34533*/      OPC_CheckType, MVT::i32,
/* 34535*/      OPC_MoveParent,
/* 34536*/      OPC_MoveParent,
/* 34537*/      OPC_RecordChild1, // #3 = $src1
/* 34538*/      OPC_CheckType, MVT::v8i32,
/* 34540*/      OPC_MoveParent,
/* 34541*/      OPC_MoveChild1,
/* 34542*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34545*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34547*/      OPC_MoveParent,
/* 34548*/      OPC_MoveChild2,
/* 34549*/      OPC_CheckCondCode, ISD::SETNE,
/* 34551*/      OPC_MoveParent,
/* 34552*/      OPC_MoveParent,
/* 34553*/      OPC_CheckType, MVT::v8i1,
/* 34555*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 34557*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34560*/      OPC_EmitMergeInputChains1_1,
/* 34561*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTMDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34574*/    /*Scope*/ 0|128,1/*128*/, /*->34704*/
/* 34576*/      OPC_MoveChild0,
/* 34577*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 34580*/      OPC_MoveChild0,
/* 34581*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 34584*/      OPC_Scope, 58, /*->34644*/ // 2 children in Scope
/* 34586*/        OPC_RecordChild0, // #0 = $src1
/* 34587*/        OPC_MoveChild1,
/* 34588*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 34591*/        OPC_MoveChild0,
/* 34592*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34595*/        OPC_RecordMemRef,
/* 34596*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34597*/        OPC_CheckFoldableChainNode,
/* 34598*/        OPC_RecordChild1, // #2 = $src2
/* 34599*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34601*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 34603*/        OPC_CheckType, MVT::i32,
/* 34605*/        OPC_MoveParent,
/* 34606*/        OPC_MoveParent,
/* 34607*/        OPC_CheckType, MVT::v8i32,
/* 34609*/        OPC_MoveParent,
/* 34610*/        OPC_MoveChild1,
/* 34611*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34614*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34616*/        OPC_MoveParent,
/* 34617*/        OPC_MoveChild2,
/* 34618*/        OPC_CheckCondCode, ISD::SETNE,
/* 34620*/        OPC_MoveParent,
/* 34621*/        OPC_MoveParent,
/* 34622*/        OPC_RecordChild1, // #3 = $mask
/* 34623*/        OPC_CheckType, MVT::v8i1,
/* 34625*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 34627*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34630*/        OPC_EmitMergeInputChains1_1,
/* 34631*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34644*/      /*Scope*/ 58, /*->34703*/
/* 34645*/        OPC_MoveChild0,
/* 34646*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 34649*/        OPC_MoveChild0,
/* 34650*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34653*/        OPC_RecordMemRef,
/* 34654*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 34655*/        OPC_CheckFoldableChainNode,
/* 34656*/        OPC_RecordChild1, // #1 = $src2
/* 34657*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34659*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 34661*/        OPC_CheckType, MVT::i32,
/* 34663*/        OPC_MoveParent,
/* 34664*/        OPC_MoveParent,
/* 34665*/        OPC_RecordChild1, // #2 = $src1
/* 34666*/        OPC_CheckType, MVT::v8i32,
/* 34668*/        OPC_MoveParent,
/* 34669*/        OPC_MoveChild1,
/* 34670*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34673*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34675*/        OPC_MoveParent,
/* 34676*/        OPC_MoveChild2,
/* 34677*/        OPC_CheckCondCode, ISD::SETNE,
/* 34679*/        OPC_MoveParent,
/* 34680*/        OPC_MoveParent,
/* 34681*/        OPC_RecordChild1, // #3 = $mask
/* 34682*/        OPC_CheckType, MVT::v8i1,
/* 34684*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 34686*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34689*/        OPC_EmitMergeInputChains1_0,
/* 34690*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34703*/      0, /*End of Scope*/
/* 34704*/    /*Scope*/ 68, /*->34773*/
/* 34705*/      OPC_RecordChild0, // #0 = $mask
/* 34706*/      OPC_MoveChild1,
/* 34707*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 34710*/      OPC_MoveChild0,
/* 34711*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 34714*/      OPC_MoveChild0,
/* 34715*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 34718*/      OPC_MoveChild0,
/* 34719*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34722*/      OPC_RecordMemRef,
/* 34723*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 34724*/      OPC_CheckFoldableChainNode,
/* 34725*/      OPC_RecordChild1, // #2 = $src2
/* 34726*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34728*/      OPC_CheckPredicate, 9, // Predicate_load
/* 34730*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 34732*/      OPC_MoveParent,
/* 34733*/      OPC_RecordChild1, // #3 = $src1
/* 34734*/      OPC_CheckType, MVT::v2i64,
/* 34736*/      OPC_MoveParent,
/* 34737*/      OPC_CheckType, MVT::v4i32,
/* 34739*/      OPC_MoveParent,
/* 34740*/      OPC_MoveChild1,
/* 34741*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34744*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34746*/      OPC_MoveParent,
/* 34747*/      OPC_MoveChild2,
/* 34748*/      OPC_CheckCondCode, ISD::SETNE,
/* 34750*/      OPC_MoveParent,
/* 34751*/      OPC_MoveParent,
/* 34752*/      OPC_CheckType, MVT::v4i1,
/* 34754*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 34756*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34759*/      OPC_EmitMergeInputChains1_1,
/* 34760*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTMDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34773*/    /*Scope*/ 0|128,1/*128*/, /*->34903*/
/* 34775*/      OPC_MoveChild0,
/* 34776*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 34779*/      OPC_MoveChild0,
/* 34780*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 34783*/      OPC_MoveChild0,
/* 34784*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 34787*/      OPC_Scope, 56, /*->34845*/ // 2 children in Scope
/* 34789*/        OPC_RecordChild0, // #0 = $src1
/* 34790*/        OPC_MoveChild1,
/* 34791*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34794*/        OPC_RecordMemRef,
/* 34795*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34796*/        OPC_CheckFoldableChainNode,
/* 34797*/        OPC_RecordChild1, // #2 = $src2
/* 34798*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34800*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34802*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 34804*/        OPC_MoveParent,
/* 34805*/        OPC_CheckType, MVT::v2i64,
/* 34807*/        OPC_MoveParent,
/* 34808*/        OPC_CheckType, MVT::v4i32,
/* 34810*/        OPC_MoveParent,
/* 34811*/        OPC_MoveChild1,
/* 34812*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34815*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34817*/        OPC_MoveParent,
/* 34818*/        OPC_MoveChild2,
/* 34819*/        OPC_CheckCondCode, ISD::SETNE,
/* 34821*/        OPC_MoveParent,
/* 34822*/        OPC_MoveParent,
/* 34823*/        OPC_RecordChild1, // #3 = $mask
/* 34824*/        OPC_CheckType, MVT::v4i1,
/* 34826*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 34828*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34831*/        OPC_EmitMergeInputChains1_1,
/* 34832*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34845*/      /*Scope*/ 56, /*->34902*/
/* 34846*/        OPC_MoveChild0,
/* 34847*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34850*/        OPC_RecordMemRef,
/* 34851*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 34852*/        OPC_CheckFoldableChainNode,
/* 34853*/        OPC_RecordChild1, // #1 = $src2
/* 34854*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34856*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34858*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 34860*/        OPC_MoveParent,
/* 34861*/        OPC_RecordChild1, // #2 = $src1
/* 34862*/        OPC_CheckType, MVT::v2i64,
/* 34864*/        OPC_MoveParent,
/* 34865*/        OPC_CheckType, MVT::v4i32,
/* 34867*/        OPC_MoveParent,
/* 34868*/        OPC_MoveChild1,
/* 34869*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34872*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34874*/        OPC_MoveParent,
/* 34875*/        OPC_MoveChild2,
/* 34876*/        OPC_CheckCondCode, ISD::SETNE,
/* 34878*/        OPC_MoveParent,
/* 34879*/        OPC_MoveParent,
/* 34880*/        OPC_RecordChild1, // #3 = $mask
/* 34881*/        OPC_CheckType, MVT::v4i1,
/* 34883*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 34885*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34888*/        OPC_EmitMergeInputChains1_0,
/* 34889*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34902*/      0, /*End of Scope*/
/* 34903*/    /*Scope*/ 66, /*->34970*/
/* 34904*/      OPC_RecordChild0, // #0 = $mask
/* 34905*/      OPC_MoveChild1,
/* 34906*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 34909*/      OPC_MoveChild0,
/* 34910*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 34913*/      OPC_MoveChild0,
/* 34914*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 34917*/      OPC_MoveChild0,
/* 34918*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34921*/      OPC_RecordMemRef,
/* 34922*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 34923*/      OPC_CheckFoldableChainNode,
/* 34924*/      OPC_RecordChild1, // #2 = $src2
/* 34925*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34927*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/* 34929*/      OPC_CheckType, MVT::i32,
/* 34931*/      OPC_MoveParent,
/* 34932*/      OPC_MoveParent,
/* 34933*/      OPC_RecordChild1, // #3 = $src1
/* 34934*/      OPC_CheckType, MVT::v4i32,
/* 34936*/      OPC_MoveParent,
/* 34937*/      OPC_MoveChild1,
/* 34938*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 34941*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 34943*/      OPC_MoveParent,
/* 34944*/      OPC_MoveChild2,
/* 34945*/      OPC_CheckCondCode, ISD::SETNE,
/* 34947*/      OPC_MoveParent,
/* 34948*/      OPC_MoveParent,
/* 34949*/      OPC_CheckType, MVT::v4i1,
/* 34951*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 34953*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34956*/      OPC_EmitMergeInputChains1_1,
/* 34957*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTMDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34970*/    /*Scope*/ 0|128,1/*128*/, /*->35100*/
/* 34972*/      OPC_MoveChild0,
/* 34973*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 34976*/      OPC_MoveChild0,
/* 34977*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 34980*/      OPC_Scope, 58, /*->35040*/ // 2 children in Scope
/* 34982*/        OPC_RecordChild0, // #0 = $src1
/* 34983*/        OPC_MoveChild1,
/* 34984*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 34987*/        OPC_MoveChild0,
/* 34988*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34991*/        OPC_RecordMemRef,
/* 34992*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34993*/        OPC_CheckFoldableChainNode,
/* 34994*/        OPC_RecordChild1, // #2 = $src2
/* 34995*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34997*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 34999*/        OPC_CheckType, MVT::i32,
/* 35001*/        OPC_MoveParent,
/* 35002*/        OPC_MoveParent,
/* 35003*/        OPC_CheckType, MVT::v4i32,
/* 35005*/        OPC_MoveParent,
/* 35006*/        OPC_MoveChild1,
/* 35007*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35010*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35012*/        OPC_MoveParent,
/* 35013*/        OPC_MoveChild2,
/* 35014*/        OPC_CheckCondCode, ISD::SETNE,
/* 35016*/        OPC_MoveParent,
/* 35017*/        OPC_MoveParent,
/* 35018*/        OPC_RecordChild1, // #3 = $mask
/* 35019*/        OPC_CheckType, MVT::v4i1,
/* 35021*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 35023*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35026*/        OPC_EmitMergeInputChains1_1,
/* 35027*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35040*/      /*Scope*/ 58, /*->35099*/
/* 35041*/        OPC_MoveChild0,
/* 35042*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 35045*/        OPC_MoveChild0,
/* 35046*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35049*/        OPC_RecordMemRef,
/* 35050*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 35051*/        OPC_CheckFoldableChainNode,
/* 35052*/        OPC_RecordChild1, // #1 = $src2
/* 35053*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35055*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 35057*/        OPC_CheckType, MVT::i32,
/* 35059*/        OPC_MoveParent,
/* 35060*/        OPC_MoveParent,
/* 35061*/        OPC_RecordChild1, // #2 = $src1
/* 35062*/        OPC_CheckType, MVT::v4i32,
/* 35064*/        OPC_MoveParent,
/* 35065*/        OPC_MoveChild1,
/* 35066*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35069*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35071*/        OPC_MoveParent,
/* 35072*/        OPC_MoveChild2,
/* 35073*/        OPC_CheckCondCode, ISD::SETNE,
/* 35075*/        OPC_MoveParent,
/* 35076*/        OPC_MoveParent,
/* 35077*/        OPC_RecordChild1, // #3 = $mask
/* 35078*/        OPC_CheckType, MVT::v4i1,
/* 35080*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 35082*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35085*/        OPC_EmitMergeInputChains1_0,
/* 35086*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35099*/      0, /*End of Scope*/
/* 35100*/    /*Scope*/ 68, /*->35169*/
/* 35101*/      OPC_RecordChild0, // #0 = $mask
/* 35102*/      OPC_MoveChild1,
/* 35103*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 35106*/      OPC_MoveChild0,
/* 35107*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 35110*/      OPC_MoveChild0,
/* 35111*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35114*/      OPC_RecordMemRef,
/* 35115*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 35116*/      OPC_CheckFoldableChainNode,
/* 35117*/      OPC_RecordChild1, // #2 = $src2
/* 35118*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35120*/      OPC_CheckPredicate, 9, // Predicate_load
/* 35122*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 35124*/      OPC_MoveParent,
/* 35125*/      OPC_RecordChild1, // #3 = $src1
/* 35126*/      OPC_CheckType, MVT::v8i64,
/* 35128*/      OPC_MoveParent,
/* 35129*/      OPC_MoveChild1,
/* 35130*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 35133*/      OPC_MoveChild0,
/* 35134*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35137*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35139*/      OPC_CheckType, MVT::v16i32,
/* 35141*/      OPC_MoveParent,
/* 35142*/      OPC_MoveParent,
/* 35143*/      OPC_MoveChild2,
/* 35144*/      OPC_CheckCondCode, ISD::SETNE,
/* 35146*/      OPC_MoveParent,
/* 35147*/      OPC_MoveParent,
/* 35148*/      OPC_CheckType, MVT::v8i1,
/* 35150*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 35152*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35155*/      OPC_EmitMergeInputChains1_1,
/* 35156*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTMQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35169*/    /*Scope*/ 4|128,1/*132*/, /*->35303*/
/* 35171*/      OPC_MoveChild0,
/* 35172*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 35175*/      OPC_MoveChild0,
/* 35176*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 35179*/      OPC_Scope, 60, /*->35241*/ // 2 children in Scope
/* 35181*/        OPC_RecordChild0, // #0 = $src1
/* 35182*/        OPC_MoveChild1,
/* 35183*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35186*/        OPC_RecordMemRef,
/* 35187*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 35188*/        OPC_CheckFoldableChainNode,
/* 35189*/        OPC_RecordChild1, // #2 = $src2
/* 35190*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35192*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35194*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 35196*/        OPC_MoveParent,
/* 35197*/        OPC_CheckType, MVT::v8i64,
/* 35199*/        OPC_MoveParent,
/* 35200*/        OPC_MoveChild1,
/* 35201*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 35204*/        OPC_MoveChild0,
/* 35205*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35208*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35210*/        OPC_CheckType, MVT::v16i32,
/* 35212*/        OPC_MoveParent,
/* 35213*/        OPC_MoveParent,
/* 35214*/        OPC_MoveChild2,
/* 35215*/        OPC_CheckCondCode, ISD::SETNE,
/* 35217*/        OPC_MoveParent,
/* 35218*/        OPC_MoveParent,
/* 35219*/        OPC_RecordChild1, // #3 = $mask
/* 35220*/        OPC_CheckType, MVT::v8i1,
/* 35222*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 35224*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35227*/        OPC_EmitMergeInputChains1_1,
/* 35228*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35241*/      /*Scope*/ 60, /*->35302*/
/* 35242*/        OPC_MoveChild0,
/* 35243*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35246*/        OPC_RecordMemRef,
/* 35247*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 35248*/        OPC_CheckFoldableChainNode,
/* 35249*/        OPC_RecordChild1, // #1 = $src2
/* 35250*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35252*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35254*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 35256*/        OPC_MoveParent,
/* 35257*/        OPC_RecordChild1, // #2 = $src1
/* 35258*/        OPC_CheckType, MVT::v8i64,
/* 35260*/        OPC_MoveParent,
/* 35261*/        OPC_MoveChild1,
/* 35262*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 35265*/        OPC_MoveChild0,
/* 35266*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35269*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35271*/        OPC_CheckType, MVT::v16i32,
/* 35273*/        OPC_MoveParent,
/* 35274*/        OPC_MoveParent,
/* 35275*/        OPC_MoveChild2,
/* 35276*/        OPC_CheckCondCode, ISD::SETNE,
/* 35278*/        OPC_MoveParent,
/* 35279*/        OPC_MoveParent,
/* 35280*/        OPC_RecordChild1, // #3 = $mask
/* 35281*/        OPC_CheckType, MVT::v8i1,
/* 35283*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 35285*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35288*/        OPC_EmitMergeInputChains1_0,
/* 35289*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35302*/      0, /*End of Scope*/
/* 35303*/    /*Scope*/ 68, /*->35372*/
/* 35304*/      OPC_RecordChild0, // #0 = $mask
/* 35305*/      OPC_MoveChild1,
/* 35306*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 35309*/      OPC_MoveChild0,
/* 35310*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 35313*/      OPC_MoveChild0,
/* 35314*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35317*/      OPC_RecordMemRef,
/* 35318*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 35319*/      OPC_CheckFoldableChainNode,
/* 35320*/      OPC_RecordChild1, // #2 = $src2
/* 35321*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35323*/      OPC_CheckPredicate, 9, // Predicate_load
/* 35325*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 35327*/      OPC_MoveParent,
/* 35328*/      OPC_RecordChild1, // #3 = $src1
/* 35329*/      OPC_CheckType, MVT::v4i64,
/* 35331*/      OPC_MoveParent,
/* 35332*/      OPC_MoveChild1,
/* 35333*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 35336*/      OPC_MoveChild0,
/* 35337*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35340*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35342*/      OPC_CheckType, MVT::v8i32,
/* 35344*/      OPC_MoveParent,
/* 35345*/      OPC_MoveParent,
/* 35346*/      OPC_MoveChild2,
/* 35347*/      OPC_CheckCondCode, ISD::SETNE,
/* 35349*/      OPC_MoveParent,
/* 35350*/      OPC_MoveParent,
/* 35351*/      OPC_CheckType, MVT::v4i1,
/* 35353*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 35355*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35358*/      OPC_EmitMergeInputChains1_1,
/* 35359*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTMQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35372*/    /*Scope*/ 4|128,1/*132*/, /*->35506*/
/* 35374*/      OPC_MoveChild0,
/* 35375*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 35378*/      OPC_MoveChild0,
/* 35379*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 35382*/      OPC_Scope, 60, /*->35444*/ // 2 children in Scope
/* 35384*/        OPC_RecordChild0, // #0 = $src1
/* 35385*/        OPC_MoveChild1,
/* 35386*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35389*/        OPC_RecordMemRef,
/* 35390*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 35391*/        OPC_CheckFoldableChainNode,
/* 35392*/        OPC_RecordChild1, // #2 = $src2
/* 35393*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35395*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35397*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 35399*/        OPC_MoveParent,
/* 35400*/        OPC_CheckType, MVT::v4i64,
/* 35402*/        OPC_MoveParent,
/* 35403*/        OPC_MoveChild1,
/* 35404*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 35407*/        OPC_MoveChild0,
/* 35408*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35411*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35413*/        OPC_CheckType, MVT::v8i32,
/* 35415*/        OPC_MoveParent,
/* 35416*/        OPC_MoveParent,
/* 35417*/        OPC_MoveChild2,
/* 35418*/        OPC_CheckCondCode, ISD::SETNE,
/* 35420*/        OPC_MoveParent,
/* 35421*/        OPC_MoveParent,
/* 35422*/        OPC_RecordChild1, // #3 = $mask
/* 35423*/        OPC_CheckType, MVT::v4i1,
/* 35425*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 35427*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35430*/        OPC_EmitMergeInputChains1_1,
/* 35431*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35444*/      /*Scope*/ 60, /*->35505*/
/* 35445*/        OPC_MoveChild0,
/* 35446*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35449*/        OPC_RecordMemRef,
/* 35450*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 35451*/        OPC_CheckFoldableChainNode,
/* 35452*/        OPC_RecordChild1, // #1 = $src2
/* 35453*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35455*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35457*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 35459*/        OPC_MoveParent,
/* 35460*/        OPC_RecordChild1, // #2 = $src1
/* 35461*/        OPC_CheckType, MVT::v4i64,
/* 35463*/        OPC_MoveParent,
/* 35464*/        OPC_MoveChild1,
/* 35465*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 35468*/        OPC_MoveChild0,
/* 35469*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35472*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35474*/        OPC_CheckType, MVT::v8i32,
/* 35476*/        OPC_MoveParent,
/* 35477*/        OPC_MoveParent,
/* 35478*/        OPC_MoveChild2,
/* 35479*/        OPC_CheckCondCode, ISD::SETNE,
/* 35481*/        OPC_MoveParent,
/* 35482*/        OPC_MoveParent,
/* 35483*/        OPC_RecordChild1, // #3 = $mask
/* 35484*/        OPC_CheckType, MVT::v4i1,
/* 35486*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 35488*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35491*/        OPC_EmitMergeInputChains1_0,
/* 35492*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35505*/      0, /*End of Scope*/
/* 35506*/    /*Scope*/ 68, /*->35575*/
/* 35507*/      OPC_RecordChild0, // #0 = $mask
/* 35508*/      OPC_MoveChild1,
/* 35509*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 35512*/      OPC_MoveChild0,
/* 35513*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 35516*/      OPC_MoveChild0,
/* 35517*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35520*/      OPC_RecordMemRef,
/* 35521*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 35522*/      OPC_CheckFoldableChainNode,
/* 35523*/      OPC_RecordChild1, // #2 = $src2
/* 35524*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35526*/      OPC_CheckPredicate, 9, // Predicate_load
/* 35528*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 35530*/      OPC_MoveParent,
/* 35531*/      OPC_RecordChild1, // #3 = $src1
/* 35532*/      OPC_CheckType, MVT::v2i64,
/* 35534*/      OPC_MoveParent,
/* 35535*/      OPC_MoveChild1,
/* 35536*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 35539*/      OPC_MoveChild0,
/* 35540*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35543*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35545*/      OPC_CheckType, MVT::v4i32,
/* 35547*/      OPC_MoveParent,
/* 35548*/      OPC_MoveParent,
/* 35549*/      OPC_MoveChild2,
/* 35550*/      OPC_CheckCondCode, ISD::SETNE,
/* 35552*/      OPC_MoveParent,
/* 35553*/      OPC_MoveParent,
/* 35554*/      OPC_CheckType, MVT::v2i1,
/* 35556*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 35558*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35561*/      OPC_EmitMergeInputChains1_1,
/* 35562*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTMQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35575*/    /*Scope*/ 4|128,1/*132*/, /*->35709*/
/* 35577*/      OPC_MoveChild0,
/* 35578*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 35581*/      OPC_MoveChild0,
/* 35582*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 35585*/      OPC_Scope, 60, /*->35647*/ // 2 children in Scope
/* 35587*/        OPC_RecordChild0, // #0 = $src1
/* 35588*/        OPC_MoveChild1,
/* 35589*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35592*/        OPC_RecordMemRef,
/* 35593*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 35594*/        OPC_CheckFoldableChainNode,
/* 35595*/        OPC_RecordChild1, // #2 = $src2
/* 35596*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35598*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35600*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 35602*/        OPC_MoveParent,
/* 35603*/        OPC_CheckType, MVT::v2i64,
/* 35605*/        OPC_MoveParent,
/* 35606*/        OPC_MoveChild1,
/* 35607*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 35610*/        OPC_MoveChild0,
/* 35611*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35614*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35616*/        OPC_CheckType, MVT::v4i32,
/* 35618*/        OPC_MoveParent,
/* 35619*/        OPC_MoveParent,
/* 35620*/        OPC_MoveChild2,
/* 35621*/        OPC_CheckCondCode, ISD::SETNE,
/* 35623*/        OPC_MoveParent,
/* 35624*/        OPC_MoveParent,
/* 35625*/        OPC_RecordChild1, // #3 = $mask
/* 35626*/        OPC_CheckType, MVT::v2i1,
/* 35628*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 35630*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35633*/        OPC_EmitMergeInputChains1_1,
/* 35634*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35647*/      /*Scope*/ 60, /*->35708*/
/* 35648*/        OPC_MoveChild0,
/* 35649*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35652*/        OPC_RecordMemRef,
/* 35653*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 35654*/        OPC_CheckFoldableChainNode,
/* 35655*/        OPC_RecordChild1, // #1 = $src2
/* 35656*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35658*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35660*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 35662*/        OPC_MoveParent,
/* 35663*/        OPC_RecordChild1, // #2 = $src1
/* 35664*/        OPC_CheckType, MVT::v2i64,
/* 35666*/        OPC_MoveParent,
/* 35667*/        OPC_MoveChild1,
/* 35668*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 35671*/        OPC_MoveChild0,
/* 35672*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35675*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35677*/        OPC_CheckType, MVT::v4i32,
/* 35679*/        OPC_MoveParent,
/* 35680*/        OPC_MoveParent,
/* 35681*/        OPC_MoveChild2,
/* 35682*/        OPC_CheckCondCode, ISD::SETNE,
/* 35684*/        OPC_MoveParent,
/* 35685*/        OPC_MoveParent,
/* 35686*/        OPC_RecordChild1, // #3 = $mask
/* 35687*/        OPC_CheckType, MVT::v2i1,
/* 35689*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 35691*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35694*/        OPC_EmitMergeInputChains1_0,
/* 35695*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTMQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35708*/      0, /*End of Scope*/
/* 35709*/    /*Scope*/ 68, /*->35778*/
/* 35710*/      OPC_RecordChild0, // #0 = $mask
/* 35711*/      OPC_MoveChild1,
/* 35712*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 35715*/      OPC_MoveChild0,
/* 35716*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 35719*/      OPC_MoveChild0,
/* 35720*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 35723*/      OPC_MoveChild0,
/* 35724*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35727*/      OPC_RecordMemRef,
/* 35728*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 35729*/      OPC_CheckFoldableChainNode,
/* 35730*/      OPC_RecordChild1, // #2 = $src2
/* 35731*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35733*/      OPC_CheckPredicate, 9, // Predicate_load
/* 35735*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 35737*/      OPC_MoveParent,
/* 35738*/      OPC_RecordChild1, // #3 = $src1
/* 35739*/      OPC_CheckType, MVT::v8i64,
/* 35741*/      OPC_MoveParent,
/* 35742*/      OPC_CheckType, MVT::v16i32,
/* 35744*/      OPC_MoveParent,
/* 35745*/      OPC_MoveChild1,
/* 35746*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35749*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35751*/      OPC_MoveParent,
/* 35752*/      OPC_MoveChild2,
/* 35753*/      OPC_CheckCondCode, ISD::SETEQ,
/* 35755*/      OPC_MoveParent,
/* 35756*/      OPC_MoveParent,
/* 35757*/      OPC_CheckType, MVT::v16i1,
/* 35759*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 35761*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35764*/      OPC_EmitMergeInputChains1_1,
/* 35765*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTNMDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35778*/    /*Scope*/ 0|128,1/*128*/, /*->35908*/
/* 35780*/      OPC_MoveChild0,
/* 35781*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 35784*/      OPC_MoveChild0,
/* 35785*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 35788*/      OPC_MoveChild0,
/* 35789*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 35792*/      OPC_Scope, 56, /*->35850*/ // 2 children in Scope
/* 35794*/        OPC_RecordChild0, // #0 = $src1
/* 35795*/        OPC_MoveChild1,
/* 35796*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35799*/        OPC_RecordMemRef,
/* 35800*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 35801*/        OPC_CheckFoldableChainNode,
/* 35802*/        OPC_RecordChild1, // #2 = $src2
/* 35803*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35805*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35807*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 35809*/        OPC_MoveParent,
/* 35810*/        OPC_CheckType, MVT::v8i64,
/* 35812*/        OPC_MoveParent,
/* 35813*/        OPC_CheckType, MVT::v16i32,
/* 35815*/        OPC_MoveParent,
/* 35816*/        OPC_MoveChild1,
/* 35817*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35820*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35822*/        OPC_MoveParent,
/* 35823*/        OPC_MoveChild2,
/* 35824*/        OPC_CheckCondCode, ISD::SETEQ,
/* 35826*/        OPC_MoveParent,
/* 35827*/        OPC_MoveParent,
/* 35828*/        OPC_RecordChild1, // #3 = $mask
/* 35829*/        OPC_CheckType, MVT::v16i1,
/* 35831*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 35833*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35836*/        OPC_EmitMergeInputChains1_1,
/* 35837*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35850*/      /*Scope*/ 56, /*->35907*/
/* 35851*/        OPC_MoveChild0,
/* 35852*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35855*/        OPC_RecordMemRef,
/* 35856*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 35857*/        OPC_CheckFoldableChainNode,
/* 35858*/        OPC_RecordChild1, // #1 = $src2
/* 35859*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35861*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35863*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 35865*/        OPC_MoveParent,
/* 35866*/        OPC_RecordChild1, // #2 = $src1
/* 35867*/        OPC_CheckType, MVT::v8i64,
/* 35869*/        OPC_MoveParent,
/* 35870*/        OPC_CheckType, MVT::v16i32,
/* 35872*/        OPC_MoveParent,
/* 35873*/        OPC_MoveChild1,
/* 35874*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35877*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35879*/        OPC_MoveParent,
/* 35880*/        OPC_MoveChild2,
/* 35881*/        OPC_CheckCondCode, ISD::SETEQ,
/* 35883*/        OPC_MoveParent,
/* 35884*/        OPC_MoveParent,
/* 35885*/        OPC_RecordChild1, // #3 = $mask
/* 35886*/        OPC_CheckType, MVT::v16i1,
/* 35888*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 35890*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35893*/        OPC_EmitMergeInputChains1_0,
/* 35894*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35907*/      0, /*End of Scope*/
/* 35908*/    /*Scope*/ 66, /*->35975*/
/* 35909*/      OPC_RecordChild0, // #0 = $mask
/* 35910*/      OPC_MoveChild1,
/* 35911*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 35914*/      OPC_MoveChild0,
/* 35915*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 35918*/      OPC_MoveChild0,
/* 35919*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 35922*/      OPC_MoveChild0,
/* 35923*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35926*/      OPC_RecordMemRef,
/* 35927*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 35928*/      OPC_CheckFoldableChainNode,
/* 35929*/      OPC_RecordChild1, // #2 = $src2
/* 35930*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35932*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/* 35934*/      OPC_CheckType, MVT::i32,
/* 35936*/      OPC_MoveParent,
/* 35937*/      OPC_MoveParent,
/* 35938*/      OPC_RecordChild1, // #3 = $src1
/* 35939*/      OPC_CheckType, MVT::v16i32,
/* 35941*/      OPC_MoveParent,
/* 35942*/      OPC_MoveChild1,
/* 35943*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 35946*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 35948*/      OPC_MoveParent,
/* 35949*/      OPC_MoveChild2,
/* 35950*/      OPC_CheckCondCode, ISD::SETEQ,
/* 35952*/      OPC_MoveParent,
/* 35953*/      OPC_MoveParent,
/* 35954*/      OPC_CheckType, MVT::v16i1,
/* 35956*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 35958*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35961*/      OPC_EmitMergeInputChains1_1,
/* 35962*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTNMDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 35975*/    /*Scope*/ 0|128,1/*128*/, /*->36105*/
/* 35977*/      OPC_MoveChild0,
/* 35978*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 35981*/      OPC_MoveChild0,
/* 35982*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 35985*/      OPC_Scope, 58, /*->36045*/ // 2 children in Scope
/* 35987*/        OPC_RecordChild0, // #0 = $src1
/* 35988*/        OPC_MoveChild1,
/* 35989*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 35992*/        OPC_MoveChild0,
/* 35993*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35996*/        OPC_RecordMemRef,
/* 35997*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 35998*/        OPC_CheckFoldableChainNode,
/* 35999*/        OPC_RecordChild1, // #2 = $src2
/* 36000*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36002*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 36004*/        OPC_CheckType, MVT::i32,
/* 36006*/        OPC_MoveParent,
/* 36007*/        OPC_MoveParent,
/* 36008*/        OPC_CheckType, MVT::v16i32,
/* 36010*/        OPC_MoveParent,
/* 36011*/        OPC_MoveChild1,
/* 36012*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36015*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36017*/        OPC_MoveParent,
/* 36018*/        OPC_MoveChild2,
/* 36019*/        OPC_CheckCondCode, ISD::SETEQ,
/* 36021*/        OPC_MoveParent,
/* 36022*/        OPC_MoveParent,
/* 36023*/        OPC_RecordChild1, // #3 = $mask
/* 36024*/        OPC_CheckType, MVT::v16i1,
/* 36026*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 36028*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36031*/        OPC_EmitMergeInputChains1_1,
/* 36032*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36045*/      /*Scope*/ 58, /*->36104*/
/* 36046*/        OPC_MoveChild0,
/* 36047*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 36050*/        OPC_MoveChild0,
/* 36051*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36054*/        OPC_RecordMemRef,
/* 36055*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 36056*/        OPC_CheckFoldableChainNode,
/* 36057*/        OPC_RecordChild1, // #1 = $src2
/* 36058*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36060*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 36062*/        OPC_CheckType, MVT::i32,
/* 36064*/        OPC_MoveParent,
/* 36065*/        OPC_MoveParent,
/* 36066*/        OPC_RecordChild1, // #2 = $src1
/* 36067*/        OPC_CheckType, MVT::v16i32,
/* 36069*/        OPC_MoveParent,
/* 36070*/        OPC_MoveChild1,
/* 36071*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36074*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36076*/        OPC_MoveParent,
/* 36077*/        OPC_MoveChild2,
/* 36078*/        OPC_CheckCondCode, ISD::SETEQ,
/* 36080*/        OPC_MoveParent,
/* 36081*/        OPC_MoveParent,
/* 36082*/        OPC_RecordChild1, // #3 = $mask
/* 36083*/        OPC_CheckType, MVT::v16i1,
/* 36085*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 36087*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36090*/        OPC_EmitMergeInputChains1_0,
/* 36091*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36104*/      0, /*End of Scope*/
/* 36105*/    /*Scope*/ 68, /*->36174*/
/* 36106*/      OPC_RecordChild0, // #0 = $mask
/* 36107*/      OPC_MoveChild1,
/* 36108*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 36111*/      OPC_MoveChild0,
/* 36112*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 36115*/      OPC_MoveChild0,
/* 36116*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 36119*/      OPC_MoveChild0,
/* 36120*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36123*/      OPC_RecordMemRef,
/* 36124*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 36125*/      OPC_CheckFoldableChainNode,
/* 36126*/      OPC_RecordChild1, // #2 = $src2
/* 36127*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36129*/      OPC_CheckPredicate, 9, // Predicate_load
/* 36131*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 36133*/      OPC_MoveParent,
/* 36134*/      OPC_RecordChild1, // #3 = $src1
/* 36135*/      OPC_CheckType, MVT::v4i64,
/* 36137*/      OPC_MoveParent,
/* 36138*/      OPC_CheckType, MVT::v8i32,
/* 36140*/      OPC_MoveParent,
/* 36141*/      OPC_MoveChild1,
/* 36142*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36145*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36147*/      OPC_MoveParent,
/* 36148*/      OPC_MoveChild2,
/* 36149*/      OPC_CheckCondCode, ISD::SETEQ,
/* 36151*/      OPC_MoveParent,
/* 36152*/      OPC_MoveParent,
/* 36153*/      OPC_CheckType, MVT::v8i1,
/* 36155*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36157*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36160*/      OPC_EmitMergeInputChains1_1,
/* 36161*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTNMDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36174*/    /*Scope*/ 0|128,1/*128*/, /*->36304*/
/* 36176*/      OPC_MoveChild0,
/* 36177*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 36180*/      OPC_MoveChild0,
/* 36181*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 36184*/      OPC_MoveChild0,
/* 36185*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 36188*/      OPC_Scope, 56, /*->36246*/ // 2 children in Scope
/* 36190*/        OPC_RecordChild0, // #0 = $src1
/* 36191*/        OPC_MoveChild1,
/* 36192*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36195*/        OPC_RecordMemRef,
/* 36196*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 36197*/        OPC_CheckFoldableChainNode,
/* 36198*/        OPC_RecordChild1, // #2 = $src2
/* 36199*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36201*/        OPC_CheckPredicate, 9, // Predicate_load
/* 36203*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 36205*/        OPC_MoveParent,
/* 36206*/        OPC_CheckType, MVT::v4i64,
/* 36208*/        OPC_MoveParent,
/* 36209*/        OPC_CheckType, MVT::v8i32,
/* 36211*/        OPC_MoveParent,
/* 36212*/        OPC_MoveChild1,
/* 36213*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36216*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36218*/        OPC_MoveParent,
/* 36219*/        OPC_MoveChild2,
/* 36220*/        OPC_CheckCondCode, ISD::SETEQ,
/* 36222*/        OPC_MoveParent,
/* 36223*/        OPC_MoveParent,
/* 36224*/        OPC_RecordChild1, // #3 = $mask
/* 36225*/        OPC_CheckType, MVT::v8i1,
/* 36227*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36229*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36232*/        OPC_EmitMergeInputChains1_1,
/* 36233*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36246*/      /*Scope*/ 56, /*->36303*/
/* 36247*/        OPC_MoveChild0,
/* 36248*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36251*/        OPC_RecordMemRef,
/* 36252*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 36253*/        OPC_CheckFoldableChainNode,
/* 36254*/        OPC_RecordChild1, // #1 = $src2
/* 36255*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36257*/        OPC_CheckPredicate, 9, // Predicate_load
/* 36259*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 36261*/        OPC_MoveParent,
/* 36262*/        OPC_RecordChild1, // #2 = $src1
/* 36263*/        OPC_CheckType, MVT::v4i64,
/* 36265*/        OPC_MoveParent,
/* 36266*/        OPC_CheckType, MVT::v8i32,
/* 36268*/        OPC_MoveParent,
/* 36269*/        OPC_MoveChild1,
/* 36270*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36273*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36275*/        OPC_MoveParent,
/* 36276*/        OPC_MoveChild2,
/* 36277*/        OPC_CheckCondCode, ISD::SETEQ,
/* 36279*/        OPC_MoveParent,
/* 36280*/        OPC_MoveParent,
/* 36281*/        OPC_RecordChild1, // #3 = $mask
/* 36282*/        OPC_CheckType, MVT::v8i1,
/* 36284*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36286*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36289*/        OPC_EmitMergeInputChains1_0,
/* 36290*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36303*/      0, /*End of Scope*/
/* 36304*/    /*Scope*/ 66, /*->36371*/
/* 36305*/      OPC_RecordChild0, // #0 = $mask
/* 36306*/      OPC_MoveChild1,
/* 36307*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 36310*/      OPC_MoveChild0,
/* 36311*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 36314*/      OPC_MoveChild0,
/* 36315*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 36318*/      OPC_MoveChild0,
/* 36319*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36322*/      OPC_RecordMemRef,
/* 36323*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 36324*/      OPC_CheckFoldableChainNode,
/* 36325*/      OPC_RecordChild1, // #2 = $src2
/* 36326*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36328*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/* 36330*/      OPC_CheckType, MVT::i32,
/* 36332*/      OPC_MoveParent,
/* 36333*/      OPC_MoveParent,
/* 36334*/      OPC_RecordChild1, // #3 = $src1
/* 36335*/      OPC_CheckType, MVT::v8i32,
/* 36337*/      OPC_MoveParent,
/* 36338*/      OPC_MoveChild1,
/* 36339*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36342*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36344*/      OPC_MoveParent,
/* 36345*/      OPC_MoveChild2,
/* 36346*/      OPC_CheckCondCode, ISD::SETEQ,
/* 36348*/      OPC_MoveParent,
/* 36349*/      OPC_MoveParent,
/* 36350*/      OPC_CheckType, MVT::v8i1,
/* 36352*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36354*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36357*/      OPC_EmitMergeInputChains1_1,
/* 36358*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTNMDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36371*/    /*Scope*/ 0|128,1/*128*/, /*->36501*/
/* 36373*/      OPC_MoveChild0,
/* 36374*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 36377*/      OPC_MoveChild0,
/* 36378*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 36381*/      OPC_Scope, 58, /*->36441*/ // 2 children in Scope
/* 36383*/        OPC_RecordChild0, // #0 = $src1
/* 36384*/        OPC_MoveChild1,
/* 36385*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 36388*/        OPC_MoveChild0,
/* 36389*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36392*/        OPC_RecordMemRef,
/* 36393*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 36394*/        OPC_CheckFoldableChainNode,
/* 36395*/        OPC_RecordChild1, // #2 = $src2
/* 36396*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36398*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 36400*/        OPC_CheckType, MVT::i32,
/* 36402*/        OPC_MoveParent,
/* 36403*/        OPC_MoveParent,
/* 36404*/        OPC_CheckType, MVT::v8i32,
/* 36406*/        OPC_MoveParent,
/* 36407*/        OPC_MoveChild1,
/* 36408*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36411*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36413*/        OPC_MoveParent,
/* 36414*/        OPC_MoveChild2,
/* 36415*/        OPC_CheckCondCode, ISD::SETEQ,
/* 36417*/        OPC_MoveParent,
/* 36418*/        OPC_MoveParent,
/* 36419*/        OPC_RecordChild1, // #3 = $mask
/* 36420*/        OPC_CheckType, MVT::v8i1,
/* 36422*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36424*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36427*/        OPC_EmitMergeInputChains1_1,
/* 36428*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36441*/      /*Scope*/ 58, /*->36500*/
/* 36442*/        OPC_MoveChild0,
/* 36443*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 36446*/        OPC_MoveChild0,
/* 36447*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36450*/        OPC_RecordMemRef,
/* 36451*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 36452*/        OPC_CheckFoldableChainNode,
/* 36453*/        OPC_RecordChild1, // #1 = $src2
/* 36454*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36456*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 36458*/        OPC_CheckType, MVT::i32,
/* 36460*/        OPC_MoveParent,
/* 36461*/        OPC_MoveParent,
/* 36462*/        OPC_RecordChild1, // #2 = $src1
/* 36463*/        OPC_CheckType, MVT::v8i32,
/* 36465*/        OPC_MoveParent,
/* 36466*/        OPC_MoveChild1,
/* 36467*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36470*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36472*/        OPC_MoveParent,
/* 36473*/        OPC_MoveChild2,
/* 36474*/        OPC_CheckCondCode, ISD::SETEQ,
/* 36476*/        OPC_MoveParent,
/* 36477*/        OPC_MoveParent,
/* 36478*/        OPC_RecordChild1, // #3 = $mask
/* 36479*/        OPC_CheckType, MVT::v8i1,
/* 36481*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36483*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36486*/        OPC_EmitMergeInputChains1_0,
/* 36487*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36500*/      0, /*End of Scope*/
/* 36501*/    /*Scope*/ 68, /*->36570*/
/* 36502*/      OPC_RecordChild0, // #0 = $mask
/* 36503*/      OPC_MoveChild1,
/* 36504*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 36507*/      OPC_MoveChild0,
/* 36508*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 36511*/      OPC_MoveChild0,
/* 36512*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 36515*/      OPC_MoveChild0,
/* 36516*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36519*/      OPC_RecordMemRef,
/* 36520*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 36521*/      OPC_CheckFoldableChainNode,
/* 36522*/      OPC_RecordChild1, // #2 = $src2
/* 36523*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36525*/      OPC_CheckPredicate, 9, // Predicate_load
/* 36527*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 36529*/      OPC_MoveParent,
/* 36530*/      OPC_RecordChild1, // #3 = $src1
/* 36531*/      OPC_CheckType, MVT::v2i64,
/* 36533*/      OPC_MoveParent,
/* 36534*/      OPC_CheckType, MVT::v4i32,
/* 36536*/      OPC_MoveParent,
/* 36537*/      OPC_MoveChild1,
/* 36538*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36541*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36543*/      OPC_MoveParent,
/* 36544*/      OPC_MoveChild2,
/* 36545*/      OPC_CheckCondCode, ISD::SETEQ,
/* 36547*/      OPC_MoveParent,
/* 36548*/      OPC_MoveParent,
/* 36549*/      OPC_CheckType, MVT::v4i1,
/* 36551*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36553*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36556*/      OPC_EmitMergeInputChains1_1,
/* 36557*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTNMDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36570*/    /*Scope*/ 0|128,1/*128*/, /*->36700*/
/* 36572*/      OPC_MoveChild0,
/* 36573*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 36576*/      OPC_MoveChild0,
/* 36577*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 36580*/      OPC_MoveChild0,
/* 36581*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 36584*/      OPC_Scope, 56, /*->36642*/ // 2 children in Scope
/* 36586*/        OPC_RecordChild0, // #0 = $src1
/* 36587*/        OPC_MoveChild1,
/* 36588*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36591*/        OPC_RecordMemRef,
/* 36592*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 36593*/        OPC_CheckFoldableChainNode,
/* 36594*/        OPC_RecordChild1, // #2 = $src2
/* 36595*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36597*/        OPC_CheckPredicate, 9, // Predicate_load
/* 36599*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 36601*/        OPC_MoveParent,
/* 36602*/        OPC_CheckType, MVT::v2i64,
/* 36604*/        OPC_MoveParent,
/* 36605*/        OPC_CheckType, MVT::v4i32,
/* 36607*/        OPC_MoveParent,
/* 36608*/        OPC_MoveChild1,
/* 36609*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36612*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36614*/        OPC_MoveParent,
/* 36615*/        OPC_MoveChild2,
/* 36616*/        OPC_CheckCondCode, ISD::SETEQ,
/* 36618*/        OPC_MoveParent,
/* 36619*/        OPC_MoveParent,
/* 36620*/        OPC_RecordChild1, // #3 = $mask
/* 36621*/        OPC_CheckType, MVT::v4i1,
/* 36623*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36625*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36628*/        OPC_EmitMergeInputChains1_1,
/* 36629*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36642*/      /*Scope*/ 56, /*->36699*/
/* 36643*/        OPC_MoveChild0,
/* 36644*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36647*/        OPC_RecordMemRef,
/* 36648*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 36649*/        OPC_CheckFoldableChainNode,
/* 36650*/        OPC_RecordChild1, // #1 = $src2
/* 36651*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36653*/        OPC_CheckPredicate, 9, // Predicate_load
/* 36655*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 36657*/        OPC_MoveParent,
/* 36658*/        OPC_RecordChild1, // #2 = $src1
/* 36659*/        OPC_CheckType, MVT::v2i64,
/* 36661*/        OPC_MoveParent,
/* 36662*/        OPC_CheckType, MVT::v4i32,
/* 36664*/        OPC_MoveParent,
/* 36665*/        OPC_MoveChild1,
/* 36666*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36669*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36671*/        OPC_MoveParent,
/* 36672*/        OPC_MoveChild2,
/* 36673*/        OPC_CheckCondCode, ISD::SETEQ,
/* 36675*/        OPC_MoveParent,
/* 36676*/        OPC_MoveParent,
/* 36677*/        OPC_RecordChild1, // #3 = $mask
/* 36678*/        OPC_CheckType, MVT::v4i1,
/* 36680*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36682*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36685*/        OPC_EmitMergeInputChains1_0,
/* 36686*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36699*/      0, /*End of Scope*/
/* 36700*/    /*Scope*/ 66, /*->36767*/
/* 36701*/      OPC_RecordChild0, // #0 = $mask
/* 36702*/      OPC_MoveChild1,
/* 36703*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 36706*/      OPC_MoveChild0,
/* 36707*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 36710*/      OPC_MoveChild0,
/* 36711*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 36714*/      OPC_MoveChild0,
/* 36715*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36718*/      OPC_RecordMemRef,
/* 36719*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 36720*/      OPC_CheckFoldableChainNode,
/* 36721*/      OPC_RecordChild1, // #2 = $src2
/* 36722*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36724*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/* 36726*/      OPC_CheckType, MVT::i32,
/* 36728*/      OPC_MoveParent,
/* 36729*/      OPC_MoveParent,
/* 36730*/      OPC_RecordChild1, // #3 = $src1
/* 36731*/      OPC_CheckType, MVT::v4i32,
/* 36733*/      OPC_MoveParent,
/* 36734*/      OPC_MoveChild1,
/* 36735*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36738*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36740*/      OPC_MoveParent,
/* 36741*/      OPC_MoveChild2,
/* 36742*/      OPC_CheckCondCode, ISD::SETEQ,
/* 36744*/      OPC_MoveParent,
/* 36745*/      OPC_MoveParent,
/* 36746*/      OPC_CheckType, MVT::v4i1,
/* 36748*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36750*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36753*/      OPC_EmitMergeInputChains1_1,
/* 36754*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTNMDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36767*/    /*Scope*/ 0|128,1/*128*/, /*->36897*/
/* 36769*/      OPC_MoveChild0,
/* 36770*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 36773*/      OPC_MoveChild0,
/* 36774*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 36777*/      OPC_Scope, 58, /*->36837*/ // 2 children in Scope
/* 36779*/        OPC_RecordChild0, // #0 = $src1
/* 36780*/        OPC_MoveChild1,
/* 36781*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 36784*/        OPC_MoveChild0,
/* 36785*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36788*/        OPC_RecordMemRef,
/* 36789*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 36790*/        OPC_CheckFoldableChainNode,
/* 36791*/        OPC_RecordChild1, // #2 = $src2
/* 36792*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36794*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 36796*/        OPC_CheckType, MVT::i32,
/* 36798*/        OPC_MoveParent,
/* 36799*/        OPC_MoveParent,
/* 36800*/        OPC_CheckType, MVT::v4i32,
/* 36802*/        OPC_MoveParent,
/* 36803*/        OPC_MoveChild1,
/* 36804*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36807*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36809*/        OPC_MoveParent,
/* 36810*/        OPC_MoveChild2,
/* 36811*/        OPC_CheckCondCode, ISD::SETEQ,
/* 36813*/        OPC_MoveParent,
/* 36814*/        OPC_MoveParent,
/* 36815*/        OPC_RecordChild1, // #3 = $mask
/* 36816*/        OPC_CheckType, MVT::v4i1,
/* 36818*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36820*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36823*/        OPC_EmitMergeInputChains1_1,
/* 36824*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36837*/      /*Scope*/ 58, /*->36896*/
/* 36838*/        OPC_MoveChild0,
/* 36839*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 36842*/        OPC_MoveChild0,
/* 36843*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36846*/        OPC_RecordMemRef,
/* 36847*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 36848*/        OPC_CheckFoldableChainNode,
/* 36849*/        OPC_RecordChild1, // #1 = $src2
/* 36850*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36852*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 36854*/        OPC_CheckType, MVT::i32,
/* 36856*/        OPC_MoveParent,
/* 36857*/        OPC_MoveParent,
/* 36858*/        OPC_RecordChild1, // #2 = $src1
/* 36859*/        OPC_CheckType, MVT::v4i32,
/* 36861*/        OPC_MoveParent,
/* 36862*/        OPC_MoveChild1,
/* 36863*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36866*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36868*/        OPC_MoveParent,
/* 36869*/        OPC_MoveChild2,
/* 36870*/        OPC_CheckCondCode, ISD::SETEQ,
/* 36872*/        OPC_MoveParent,
/* 36873*/        OPC_MoveParent,
/* 36874*/        OPC_RecordChild1, // #3 = $mask
/* 36875*/        OPC_CheckType, MVT::v4i1,
/* 36877*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 36879*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36882*/        OPC_EmitMergeInputChains1_0,
/* 36883*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36896*/      0, /*End of Scope*/
/* 36897*/    /*Scope*/ 68, /*->36966*/
/* 36898*/      OPC_RecordChild0, // #0 = $mask
/* 36899*/      OPC_MoveChild1,
/* 36900*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 36903*/      OPC_MoveChild0,
/* 36904*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 36907*/      OPC_MoveChild0,
/* 36908*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36911*/      OPC_RecordMemRef,
/* 36912*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 36913*/      OPC_CheckFoldableChainNode,
/* 36914*/      OPC_RecordChild1, // #2 = $src2
/* 36915*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36917*/      OPC_CheckPredicate, 9, // Predicate_load
/* 36919*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 36921*/      OPC_MoveParent,
/* 36922*/      OPC_RecordChild1, // #3 = $src1
/* 36923*/      OPC_CheckType, MVT::v8i64,
/* 36925*/      OPC_MoveParent,
/* 36926*/      OPC_MoveChild1,
/* 36927*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 36930*/      OPC_MoveChild0,
/* 36931*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 36934*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 36936*/      OPC_CheckType, MVT::v16i32,
/* 36938*/      OPC_MoveParent,
/* 36939*/      OPC_MoveParent,
/* 36940*/      OPC_MoveChild2,
/* 36941*/      OPC_CheckCondCode, ISD::SETEQ,
/* 36943*/      OPC_MoveParent,
/* 36944*/      OPC_MoveParent,
/* 36945*/      OPC_CheckType, MVT::v8i1,
/* 36947*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 36949*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 36952*/      OPC_EmitMergeInputChains1_1,
/* 36953*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTNMQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 36966*/    /*Scope*/ 4|128,1/*132*/, /*->37100*/
/* 36968*/      OPC_MoveChild0,
/* 36969*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 36972*/      OPC_MoveChild0,
/* 36973*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 36976*/      OPC_Scope, 60, /*->37038*/ // 2 children in Scope
/* 36978*/        OPC_RecordChild0, // #0 = $src1
/* 36979*/        OPC_MoveChild1,
/* 36980*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36983*/        OPC_RecordMemRef,
/* 36984*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 36985*/        OPC_CheckFoldableChainNode,
/* 36986*/        OPC_RecordChild1, // #2 = $src2
/* 36987*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36989*/        OPC_CheckPredicate, 9, // Predicate_load
/* 36991*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 36993*/        OPC_MoveParent,
/* 36994*/        OPC_CheckType, MVT::v8i64,
/* 36996*/        OPC_MoveParent,
/* 36997*/        OPC_MoveChild1,
/* 36998*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 37001*/        OPC_MoveChild0,
/* 37002*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37005*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 37007*/        OPC_CheckType, MVT::v16i32,
/* 37009*/        OPC_MoveParent,
/* 37010*/        OPC_MoveParent,
/* 37011*/        OPC_MoveChild2,
/* 37012*/        OPC_CheckCondCode, ISD::SETEQ,
/* 37014*/        OPC_MoveParent,
/* 37015*/        OPC_MoveParent,
/* 37016*/        OPC_RecordChild1, // #3 = $mask
/* 37017*/        OPC_CheckType, MVT::v8i1,
/* 37019*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 37021*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 37024*/        OPC_EmitMergeInputChains1_1,
/* 37025*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 37038*/      /*Scope*/ 60, /*->37099*/
/* 37039*/        OPC_MoveChild0,
/* 37040*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 37043*/        OPC_RecordMemRef,
/* 37044*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 37045*/        OPC_CheckFoldableChainNode,
/* 37046*/        OPC_RecordChild1, // #1 = $src2
/* 37047*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 37049*/        OPC_CheckPredicate, 9, // Predicate_load
/* 37051*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 37053*/        OPC_MoveParent,
/* 37054*/        OPC_RecordChild1, // #2 = $src1
/* 37055*/        OPC_CheckType, MVT::v8i64,
/* 37057*/        OPC_MoveParent,
/* 37058*/        OPC_MoveChild1,
/* 37059*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 37062*/        OPC_MoveChild0,
/* 37063*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37066*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 37068*/        OPC_CheckType, MVT::v16i32,
/* 37070*/        OPC_MoveParent,
/* 37071*/        OPC_MoveParent,
/* 37072*/        OPC_MoveChild2,
/* 37073*/        OPC_CheckCondCode, ISD::SETEQ,
/* 37075*/        OPC_MoveParent,
/* 37076*/        OPC_MoveParent,
/* 37077*/        OPC_RecordChild1, // #3 = $mask
/* 37078*/        OPC_CheckType, MVT::v8i1,
/* 37080*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 37082*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 37085*/        OPC_EmitMergeInputChains1_0,
/* 37086*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 37099*/      0, /*End of Scope*/
/* 37100*/    /*Scope*/ 68, /*->37169*/
/* 37101*/      OPC_RecordChild0, // #0 = $mask
/* 37102*/      OPC_MoveChild1,
/* 37103*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 37106*/      OPC_MoveChild0,
/* 37107*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 37110*/      OPC_MoveChild0,
/* 37111*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 37114*/      OPC_RecordMemRef,
/* 37115*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 37116*/      OPC_CheckFoldableChainNode,
/* 37117*/      OPC_RecordChild1, // #2 = $src2
/* 37118*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 37120*/      OPC_CheckPredicate, 9, // Predicate_load
/* 37122*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 37124*/      OPC_MoveParent,
/* 37125*/      OPC_RecordChild1, // #3 = $src1
/* 37126*/      OPC_CheckType, MVT::v4i64,
/* 37128*/      OPC_MoveParent,
/* 37129*/      OPC_MoveChild1,
/* 37130*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 37133*/      OPC_MoveChild0,
/* 37134*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37137*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 37139*/      OPC_CheckType, MVT::v8i32,
/* 37141*/      OPC_MoveParent,
/* 37142*/      OPC_MoveParent,
/* 37143*/      OPC_MoveChild2,
/* 37144*/      OPC_CheckCondCode, ISD::SETEQ,
/* 37146*/      OPC_MoveParent,
/* 37147*/      OPC_MoveParent,
/* 37148*/      OPC_CheckType, MVT::v4i1,
/* 37150*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37152*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 37155*/      OPC_EmitMergeInputChains1_1,
/* 37156*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTNMQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 37169*/    /*Scope*/ 4|128,1/*132*/, /*->37303*/
/* 37171*/      OPC_MoveChild0,
/* 37172*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 37175*/      OPC_MoveChild0,
/* 37176*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 37179*/      OPC_Scope, 60, /*->37241*/ // 2 children in Scope
/* 37181*/        OPC_RecordChild0, // #0 = $src1
/* 37182*/        OPC_MoveChild1,
/* 37183*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 37186*/        OPC_RecordMemRef,
/* 37187*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 37188*/        OPC_CheckFoldableChainNode,
/* 37189*/        OPC_RecordChild1, // #2 = $src2
/* 37190*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 37192*/        OPC_CheckPredicate, 9, // Predicate_load
/* 37194*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 37196*/        OPC_MoveParent,
/* 37197*/        OPC_CheckType, MVT::v4i64,
/* 37199*/        OPC_MoveParent,
/* 37200*/        OPC_MoveChild1,
/* 37201*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 37204*/        OPC_MoveChild0,
/* 37205*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37208*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 37210*/        OPC_CheckType, MVT::v8i32,
/* 37212*/        OPC_MoveParent,
/* 37213*/        OPC_MoveParent,
/* 37214*/        OPC_MoveChild2,
/* 37215*/        OPC_CheckCondCode, ISD::SETEQ,
/* 37217*/        OPC_MoveParent,
/* 37218*/        OPC_MoveParent,
/* 37219*/        OPC_RecordChild1, // #3 = $mask
/* 37220*/        OPC_CheckType, MVT::v4i1,
/* 37222*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37224*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 37227*/        OPC_EmitMergeInputChains1_1,
/* 37228*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 37241*/      /*Scope*/ 60, /*->37302*/
/* 37242*/        OPC_MoveChild0,
/* 37243*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 37246*/        OPC_RecordMemRef,
/* 37247*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 37248*/        OPC_CheckFoldableChainNode,
/* 37249*/        OPC_RecordChild1, // #1 = $src2
/* 37250*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 37252*/        OPC_CheckPredicate, 9, // Predicate_load
/* 37254*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 37256*/        OPC_MoveParent,
/* 37257*/        OPC_RecordChild1, // #2 = $src1
/* 37258*/        OPC_CheckType, MVT::v4i64,
/* 37260*/        OPC_MoveParent,
/* 37261*/        OPC_MoveChild1,
/* 37262*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 37265*/        OPC_MoveChild0,
/* 37266*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37269*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 37271*/        OPC_CheckType, MVT::v8i32,
/* 37273*/        OPC_MoveParent,
/* 37274*/        OPC_MoveParent,
/* 37275*/        OPC_MoveChild2,
/* 37276*/        OPC_CheckCondCode, ISD::SETEQ,
/* 37278*/        OPC_MoveParent,
/* 37279*/        OPC_MoveParent,
/* 37280*/        OPC_RecordChild1, // #3 = $mask
/* 37281*/        OPC_CheckType, MVT::v4i1,
/* 37283*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37285*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 37288*/        OPC_EmitMergeInputChains1_0,
/* 37289*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 37302*/      0, /*End of Scope*/
/* 37303*/    /*Scope*/ 68, /*->37372*/
/* 37304*/      OPC_RecordChild0, // #0 = $mask
/* 37305*/      OPC_MoveChild1,
/* 37306*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 37309*/      OPC_MoveChild0,
/* 37310*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 37313*/      OPC_MoveChild0,
/* 37314*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 37317*/      OPC_RecordMemRef,
/* 37318*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 37319*/      OPC_CheckFoldableChainNode,
/* 37320*/      OPC_RecordChild1, // #2 = $src2
/* 37321*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 37323*/      OPC_CheckPredicate, 9, // Predicate_load
/* 37325*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 37327*/      OPC_MoveParent,
/* 37328*/      OPC_RecordChild1, // #3 = $src1
/* 37329*/      OPC_CheckType, MVT::v2i64,
/* 37331*/      OPC_MoveParent,
/* 37332*/      OPC_MoveChild1,
/* 37333*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 37336*/      OPC_MoveChild0,
/* 37337*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37340*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 37342*/      OPC_CheckType, MVT::v4i32,
/* 37344*/      OPC_MoveParent,
/* 37345*/      OPC_MoveParent,
/* 37346*/      OPC_MoveChild2,
/* 37347*/      OPC_CheckCondCode, ISD::SETEQ,
/* 37349*/      OPC_MoveParent,
/* 37350*/      OPC_MoveParent,
/* 37351*/      OPC_CheckType, MVT::v2i1,
/* 37353*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37355*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 37358*/      OPC_EmitMergeInputChains1_1,
/* 37359*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 38
                // Dst: (VPTESTNMQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 37372*/    /*Scope*/ 4|128,1/*132*/, /*->37506*/
/* 37374*/      OPC_MoveChild0,
/* 37375*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 37378*/      OPC_MoveChild0,
/* 37379*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 37382*/      OPC_Scope, 60, /*->37444*/ // 2 children in Scope
/* 37384*/        OPC_RecordChild0, // #0 = $src1
/* 37385*/        OPC_MoveChild1,
/* 37386*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 37389*/        OPC_RecordMemRef,
/* 37390*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 37391*/        OPC_CheckFoldableChainNode,
/* 37392*/        OPC_RecordChild1, // #2 = $src2
/* 37393*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 37395*/        OPC_CheckPredicate, 9, // Predicate_load
/* 37397*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 37399*/        OPC_MoveParent,
/* 37400*/        OPC_CheckType, MVT::v2i64,
/* 37402*/        OPC_MoveParent,
/* 37403*/        OPC_MoveChild1,
/* 37404*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 37407*/        OPC_MoveChild0,
/* 37408*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37411*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 37413*/        OPC_CheckType, MVT::v4i32,
/* 37415*/        OPC_MoveParent,
/* 37416*/        OPC_MoveParent,
/* 37417*/        OPC_MoveChild2,
/* 37418*/        OPC_CheckCondCode, ISD::SETEQ,
/* 37420*/        OPC_MoveParent,
/* 37421*/        OPC_MoveParent,
/* 37422*/        OPC_RecordChild1, // #3 = $mask
/* 37423*/        OPC_CheckType, MVT::v2i1,
/* 37425*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37427*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 37430*/        OPC_EmitMergeInputChains1_1,
/* 37431*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 37444*/      /*Scope*/ 60, /*->37505*/
/* 37445*/        OPC_MoveChild0,
/* 37446*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 37449*/        OPC_RecordMemRef,
/* 37450*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 37451*/        OPC_CheckFoldableChainNode,
/* 37452*/        OPC_RecordChild1, // #1 = $src2
/* 37453*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 37455*/        OPC_CheckPredicate, 9, // Predicate_load
/* 37457*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 37459*/        OPC_MoveParent,
/* 37460*/        OPC_RecordChild1, // #2 = $src1
/* 37461*/        OPC_CheckType, MVT::v2i64,
/* 37463*/        OPC_MoveParent,
/* 37464*/        OPC_MoveChild1,
/* 37465*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 37468*/        OPC_MoveChild0,
/* 37469*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37472*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 37474*/        OPC_CheckType, MVT::v4i32,
/* 37476*/        OPC_MoveParent,
/* 37477*/        OPC_MoveParent,
/* 37478*/        OPC_MoveChild2,
/* 37479*/        OPC_CheckCondCode, ISD::SETEQ,
/* 37481*/        OPC_MoveParent,
/* 37482*/        OPC_MoveParent,
/* 37483*/        OPC_RecordChild1, // #3 = $mask
/* 37484*/        OPC_CheckType, MVT::v2i1,
/* 37486*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37488*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 37491*/        OPC_EmitMergeInputChains1_0,
/* 37492*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 38
                  // Dst: (VPTESTNMQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 37505*/      0, /*End of Scope*/
/* 37506*/    /*Scope*/ 127|128,1/*255*/, /*->37763*/
/* 37508*/      OPC_RecordChild0, // #0 = $mask
/* 37509*/      OPC_MoveChild1,
/* 37510*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::CMPM),
/* 37513*/      OPC_MoveChild0,
/* 37514*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 37517*/      OPC_MoveChild0,
/* 37518*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 37521*/      OPC_RecordMemRef,
/* 37522*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 37523*/      OPC_CheckFoldableChainNode,
/* 37524*/      OPC_RecordChild1, // #2 = $src2
/* 37525*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 37527*/      OPC_CheckPredicate, 9, // Predicate_load
/* 37529*/      OPC_SwitchType /*2 cases */, 114, MVT::f64,// ->37646
/* 37532*/        OPC_MoveParent,
/* 37533*/        OPC_SwitchType /*3 cases */, 35, MVT::v8f64,// ->37571
/* 37536*/          OPC_MoveParent,
/* 37537*/          OPC_RecordChild1, // #3 = $src1
/* 37538*/          OPC_RecordChild2, // #4 = $cc
/* 37539*/          OPC_MoveChild2,
/* 37540*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37543*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37545*/          OPC_MoveParent,
/* 37546*/          OPC_MoveParent,
/* 37547*/          OPC_CheckType, MVT::v8i1,
/* 37549*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 37551*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 37554*/          OPC_EmitMergeInputChains1_1,
/* 37555*/          OPC_EmitConvertToTarget, 4,
/* 37557*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 35
                    // Dst: (VCMPPDZrmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 37571*/        /*SwitchType*/ 35, MVT::v2f64,// ->37608
/* 37573*/          OPC_MoveParent,
/* 37574*/          OPC_RecordChild1, // #3 = $src1
/* 37575*/          OPC_RecordChild2, // #4 = $cc
/* 37576*/          OPC_MoveChild2,
/* 37577*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37580*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37582*/          OPC_MoveParent,
/* 37583*/          OPC_MoveParent,
/* 37584*/          OPC_CheckType, MVT::v2i1,
/* 37586*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37588*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 37591*/          OPC_EmitMergeInputChains1_1,
/* 37592*/          OPC_EmitConvertToTarget, 4,
/* 37594*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 35
                    // Dst: (VCMPPDZ128rmbik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 37608*/        /*SwitchType*/ 35, MVT::v4f64,// ->37645
/* 37610*/          OPC_MoveParent,
/* 37611*/          OPC_RecordChild1, // #3 = $src1
/* 37612*/          OPC_RecordChild2, // #4 = $cc
/* 37613*/          OPC_MoveChild2,
/* 37614*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37617*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37619*/          OPC_MoveParent,
/* 37620*/          OPC_MoveParent,
/* 37621*/          OPC_CheckType, MVT::v4i1,
/* 37623*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37625*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 37628*/          OPC_EmitMergeInputChains1_1,
/* 37629*/          OPC_EmitConvertToTarget, 4,
/* 37631*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 35
                    // Dst: (VCMPPDZ256rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 37645*/        0, // EndSwitchType
/* 37646*/      /*SwitchType*/ 114, MVT::f32,// ->37762
/* 37648*/        OPC_MoveParent,
/* 37649*/        OPC_SwitchType /*3 cases */, 35, MVT::v16f32,// ->37687
/* 37652*/          OPC_MoveParent,
/* 37653*/          OPC_RecordChild1, // #3 = $src1
/* 37654*/          OPC_RecordChild2, // #4 = $cc
/* 37655*/          OPC_MoveChild2,
/* 37656*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37659*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37661*/          OPC_MoveParent,
/* 37662*/          OPC_MoveParent,
/* 37663*/          OPC_CheckType, MVT::v16i1,
/* 37665*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 37667*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 37670*/          OPC_EmitMergeInputChains1_1,
/* 37671*/          OPC_EmitConvertToTarget, 4,
/* 37673*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86cmpm:{ *:[v16i1] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 35
                    // Dst: (VCMPPSZrmbik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 37687*/        /*SwitchType*/ 35, MVT::v4f32,// ->37724
/* 37689*/          OPC_MoveParent,
/* 37690*/          OPC_RecordChild1, // #3 = $src1
/* 37691*/          OPC_RecordChild2, // #4 = $cc
/* 37692*/          OPC_MoveChild2,
/* 37693*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37696*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37698*/          OPC_MoveParent,
/* 37699*/          OPC_MoveParent,
/* 37700*/          OPC_CheckType, MVT::v4i1,
/* 37702*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37704*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 37707*/          OPC_EmitMergeInputChains1_1,
/* 37708*/          OPC_EmitConvertToTarget, 4,
/* 37710*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 35
                    // Dst: (VCMPPSZ128rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 37724*/        /*SwitchType*/ 35, MVT::v8f32,// ->37761
/* 37726*/          OPC_MoveParent,
/* 37727*/          OPC_RecordChild1, // #3 = $src1
/* 37728*/          OPC_RecordChild2, // #4 = $cc
/* 37729*/          OPC_MoveChild2,
/* 37730*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37733*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37735*/          OPC_MoveParent,
/* 37736*/          OPC_MoveParent,
/* 37737*/          OPC_CheckType, MVT::v8i1,
/* 37739*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37741*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 37744*/          OPC_EmitMergeInputChains1_1,
/* 37745*/          OPC_EmitConvertToTarget, 4,
/* 37747*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 35
                    // Dst: (VCMPPSZ256rmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 37761*/        0, // EndSwitchType
/* 37762*/      0, // EndSwitchType
/* 37763*/    /*Scope*/ 4|128,2/*260*/, /*->38025*/
/* 37765*/      OPC_MoveChild0,
/* 37766*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::CMPM),
/* 37769*/      OPC_MoveChild0,
/* 37770*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 37773*/      OPC_MoveChild0,
/* 37774*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 37777*/      OPC_RecordMemRef,
/* 37778*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 37779*/      OPC_CheckFoldableChainNode,
/* 37780*/      OPC_RecordChild1, // #1 = $src2
/* 37781*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 37783*/      OPC_CheckPredicate, 9, // Predicate_load
/* 37785*/      OPC_SwitchType /*2 cases */, 117, MVT::f64,// ->37905
/* 37788*/        OPC_MoveParent,
/* 37789*/        OPC_SwitchType /*3 cases */, 36, MVT::v8f64,// ->37828
/* 37792*/          OPC_MoveParent,
/* 37793*/          OPC_RecordChild1, // #2 = $src1
/* 37794*/          OPC_RecordChild2, // #3 = $cc
/* 37795*/          OPC_MoveChild2,
/* 37796*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37799*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37801*/          OPC_MoveParent,
/* 37802*/          OPC_MoveParent,
/* 37803*/          OPC_RecordChild1, // #4 = $mask
/* 37804*/          OPC_CheckType, MVT::v8i1,
/* 37806*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 37808*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 37811*/          OPC_EmitMergeInputChains1_0,
/* 37812*/          OPC_EmitConvertToTarget, 3,
/* 37814*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 35
                    // Dst: (VCMPPDZrmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 37828*/        /*SwitchType*/ 36, MVT::v2f64,// ->37866
/* 37830*/          OPC_MoveParent,
/* 37831*/          OPC_RecordChild1, // #2 = $src1
/* 37832*/          OPC_RecordChild2, // #3 = $cc
/* 37833*/          OPC_MoveChild2,
/* 37834*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37837*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37839*/          OPC_MoveParent,
/* 37840*/          OPC_MoveParent,
/* 37841*/          OPC_RecordChild1, // #4 = $mask
/* 37842*/          OPC_CheckType, MVT::v2i1,
/* 37844*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37846*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 37849*/          OPC_EmitMergeInputChains1_0,
/* 37850*/          OPC_EmitConvertToTarget, 3,
/* 37852*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 35
                    // Dst: (VCMPPDZ128rmbik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 37866*/        /*SwitchType*/ 36, MVT::v4f64,// ->37904
/* 37868*/          OPC_MoveParent,
/* 37869*/          OPC_RecordChild1, // #2 = $src1
/* 37870*/          OPC_RecordChild2, // #3 = $cc
/* 37871*/          OPC_MoveChild2,
/* 37872*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37875*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37877*/          OPC_MoveParent,
/* 37878*/          OPC_MoveParent,
/* 37879*/          OPC_RecordChild1, // #4 = $mask
/* 37880*/          OPC_CheckType, MVT::v4i1,
/* 37882*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37884*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 37887*/          OPC_EmitMergeInputChains1_0,
/* 37888*/          OPC_EmitConvertToTarget, 3,
/* 37890*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 35
                    // Dst: (VCMPPDZ256rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 37904*/        0, // EndSwitchType
/* 37905*/      /*SwitchType*/ 117, MVT::f32,// ->38024
/* 37907*/        OPC_MoveParent,
/* 37908*/        OPC_SwitchType /*3 cases */, 36, MVT::v16f32,// ->37947
/* 37911*/          OPC_MoveParent,
/* 37912*/          OPC_RecordChild1, // #2 = $src1
/* 37913*/          OPC_RecordChild2, // #3 = $cc
/* 37914*/          OPC_MoveChild2,
/* 37915*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37918*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37920*/          OPC_MoveParent,
/* 37921*/          OPC_MoveParent,
/* 37922*/          OPC_RecordChild1, // #4 = $mask
/* 37923*/          OPC_CheckType, MVT::v16i1,
/* 37925*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 37927*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 37930*/          OPC_EmitMergeInputChains1_0,
/* 37931*/          OPC_EmitConvertToTarget, 3,
/* 37933*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } (X86cmpm:{ *:[v16i1] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 35
                    // Dst: (VCMPPSZrmbik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 37947*/        /*SwitchType*/ 36, MVT::v4f32,// ->37985
/* 37949*/          OPC_MoveParent,
/* 37950*/          OPC_RecordChild1, // #2 = $src1
/* 37951*/          OPC_RecordChild2, // #3 = $cc
/* 37952*/          OPC_MoveChild2,
/* 37953*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37956*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37958*/          OPC_MoveParent,
/* 37959*/          OPC_MoveParent,
/* 37960*/          OPC_RecordChild1, // #4 = $mask
/* 37961*/          OPC_CheckType, MVT::v4i1,
/* 37963*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 37965*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 37968*/          OPC_EmitMergeInputChains1_0,
/* 37969*/          OPC_EmitConvertToTarget, 3,
/* 37971*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 35
                    // Dst: (VCMPPSZ128rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 37985*/        /*SwitchType*/ 36, MVT::v8f32,// ->38023
/* 37987*/          OPC_MoveParent,
/* 37988*/          OPC_RecordChild1, // #2 = $src1
/* 37989*/          OPC_RecordChild2, // #3 = $cc
/* 37990*/          OPC_MoveChild2,
/* 37991*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37994*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 37996*/          OPC_MoveParent,
/* 37997*/          OPC_MoveParent,
/* 37998*/          OPC_RecordChild1, // #4 = $mask
/* 37999*/          OPC_CheckType, MVT::v8i1,
/* 38001*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 38003*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38006*/          OPC_EmitMergeInputChains1_0,
/* 38007*/          OPC_EmitConvertToTarget, 3,
/* 38009*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 35
                    // Dst: (VCMPPSZ256rmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38023*/        0, // EndSwitchType
/* 38024*/      0, // EndSwitchType
/* 38025*/    /*Scope*/ 55|128,4/*567*/, /*->38594*/
/* 38027*/      OPC_RecordChild0, // #0 = $mask
/* 38028*/      OPC_MoveChild1,
/* 38029*/      OPC_SwitchOpcode /*2 cases */, 71|128,2/*327*/, TARGET_VAL(X86ISD::CMPM),// ->38361
/* 38034*/        OPC_RecordChild0, // #1 = $src1
/* 38035*/        OPC_Scope, 53, /*->38090*/ // 6 children in Scope
/* 38037*/          OPC_CheckChild0Type, MVT::v8f64,
/* 38039*/          OPC_MoveChild1,
/* 38040*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38043*/          OPC_MoveChild0,
/* 38044*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38047*/          OPC_RecordMemRef,
/* 38048*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 38049*/          OPC_CheckFoldableChainNode,
/* 38050*/          OPC_RecordChild1, // #3 = $src2
/* 38051*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38053*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38055*/          OPC_CheckType, MVT::f64,
/* 38057*/          OPC_MoveParent,
/* 38058*/          OPC_MoveParent,
/* 38059*/          OPC_RecordChild2, // #4 = $cc
/* 38060*/          OPC_MoveChild2,
/* 38061*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38064*/          OPC_MoveParent,
/* 38065*/          OPC_MoveParent,
/* 38066*/          OPC_CheckType, MVT::v8i1,
/* 38068*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 38070*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38073*/          OPC_EmitMergeInputChains1_2,
/* 38074*/          OPC_EmitConvertToTarget, 4,
/* 38076*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc)) - Complexity = 34
                    // Dst: (VCMPPDZrmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38090*/        /*Scope*/ 53, /*->38144*/
/* 38091*/          OPC_CheckChild0Type, MVT::v2f64,
/* 38093*/          OPC_MoveChild1,
/* 38094*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38097*/          OPC_MoveChild0,
/* 38098*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38101*/          OPC_RecordMemRef,
/* 38102*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 38103*/          OPC_CheckFoldableChainNode,
/* 38104*/          OPC_RecordChild1, // #3 = $src2
/* 38105*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38107*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38109*/          OPC_CheckType, MVT::f64,
/* 38111*/          OPC_MoveParent,
/* 38112*/          OPC_MoveParent,
/* 38113*/          OPC_RecordChild2, // #4 = $cc
/* 38114*/          OPC_MoveChild2,
/* 38115*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38118*/          OPC_MoveParent,
/* 38119*/          OPC_MoveParent,
/* 38120*/          OPC_CheckType, MVT::v2i1,
/* 38122*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 38124*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38127*/          OPC_EmitMergeInputChains1_2,
/* 38128*/          OPC_EmitConvertToTarget, 4,
/* 38130*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc)) - Complexity = 34
                    // Dst: (VCMPPDZ128rmbik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38144*/        /*Scope*/ 53, /*->38198*/
/* 38145*/          OPC_CheckChild0Type, MVT::v4f64,
/* 38147*/          OPC_MoveChild1,
/* 38148*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38151*/          OPC_MoveChild0,
/* 38152*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38155*/          OPC_RecordMemRef,
/* 38156*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 38157*/          OPC_CheckFoldableChainNode,
/* 38158*/          OPC_RecordChild1, // #3 = $src2
/* 38159*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38161*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38163*/          OPC_CheckType, MVT::f64,
/* 38165*/          OPC_MoveParent,
/* 38166*/          OPC_MoveParent,
/* 38167*/          OPC_RecordChild2, // #4 = $cc
/* 38168*/          OPC_MoveChild2,
/* 38169*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38172*/          OPC_MoveParent,
/* 38173*/          OPC_MoveParent,
/* 38174*/          OPC_CheckType, MVT::v4i1,
/* 38176*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 38178*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38181*/          OPC_EmitMergeInputChains1_2,
/* 38182*/          OPC_EmitConvertToTarget, 4,
/* 38184*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc)) - Complexity = 34
                    // Dst: (VCMPPDZ256rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38198*/        /*Scope*/ 53, /*->38252*/
/* 38199*/          OPC_CheckChild0Type, MVT::v16f32,
/* 38201*/          OPC_MoveChild1,
/* 38202*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38205*/          OPC_MoveChild0,
/* 38206*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38209*/          OPC_RecordMemRef,
/* 38210*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 38211*/          OPC_CheckFoldableChainNode,
/* 38212*/          OPC_RecordChild1, // #3 = $src2
/* 38213*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38215*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38217*/          OPC_CheckType, MVT::f32,
/* 38219*/          OPC_MoveParent,
/* 38220*/          OPC_MoveParent,
/* 38221*/          OPC_RecordChild2, // #4 = $cc
/* 38222*/          OPC_MoveChild2,
/* 38223*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38226*/          OPC_MoveParent,
/* 38227*/          OPC_MoveParent,
/* 38228*/          OPC_CheckType, MVT::v16i1,
/* 38230*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 38232*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38235*/          OPC_EmitMergeInputChains1_2,
/* 38236*/          OPC_EmitConvertToTarget, 4,
/* 38238*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc)) - Complexity = 34
                    // Dst: (VCMPPSZrmbik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38252*/        /*Scope*/ 53, /*->38306*/
/* 38253*/          OPC_CheckChild0Type, MVT::v4f32,
/* 38255*/          OPC_MoveChild1,
/* 38256*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38259*/          OPC_MoveChild0,
/* 38260*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38263*/          OPC_RecordMemRef,
/* 38264*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 38265*/          OPC_CheckFoldableChainNode,
/* 38266*/          OPC_RecordChild1, // #3 = $src2
/* 38267*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38269*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38271*/          OPC_CheckType, MVT::f32,
/* 38273*/          OPC_MoveParent,
/* 38274*/          OPC_MoveParent,
/* 38275*/          OPC_RecordChild2, // #4 = $cc
/* 38276*/          OPC_MoveChild2,
/* 38277*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38280*/          OPC_MoveParent,
/* 38281*/          OPC_MoveParent,
/* 38282*/          OPC_CheckType, MVT::v4i1,
/* 38284*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 38286*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38289*/          OPC_EmitMergeInputChains1_2,
/* 38290*/          OPC_EmitConvertToTarget, 4,
/* 38292*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc)) - Complexity = 34
                    // Dst: (VCMPPSZ128rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38306*/        /*Scope*/ 53, /*->38360*/
/* 38307*/          OPC_CheckChild0Type, MVT::v8f32,
/* 38309*/          OPC_MoveChild1,
/* 38310*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38313*/          OPC_MoveChild0,
/* 38314*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38317*/          OPC_RecordMemRef,
/* 38318*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 38319*/          OPC_CheckFoldableChainNode,
/* 38320*/          OPC_RecordChild1, // #3 = $src2
/* 38321*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38323*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38325*/          OPC_CheckType, MVT::f32,
/* 38327*/          OPC_MoveParent,
/* 38328*/          OPC_MoveParent,
/* 38329*/          OPC_RecordChild2, // #4 = $cc
/* 38330*/          OPC_MoveChild2,
/* 38331*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38334*/          OPC_MoveParent,
/* 38335*/          OPC_MoveParent,
/* 38336*/          OPC_CheckType, MVT::v8i1,
/* 38338*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 38340*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38343*/          OPC_EmitMergeInputChains1_2,
/* 38344*/          OPC_EmitConvertToTarget, 4,
/* 38346*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc)) - Complexity = 34
                    // Dst: (VCMPPSZ256rmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38360*/        0, /*End of Scope*/
/* 38361*/      /*SwitchOpcode*/ 100|128,1/*228*/, TARGET_VAL(X86ISD::VFPCLASS),// ->38593
/* 38365*/        OPC_MoveChild0,
/* 38366*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38369*/        OPC_MoveChild0,
/* 38370*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38373*/        OPC_RecordMemRef,
/* 38374*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 38375*/        OPC_CheckFoldableChainNode,
/* 38376*/        OPC_RecordChild1, // #2 = $src1
/* 38377*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38379*/        OPC_CheckPredicate, 9, // Predicate_load
/* 38381*/        OPC_SwitchType /*2 cases */, 103, MVT::f32,// ->38487
/* 38384*/          OPC_MoveParent,
/* 38385*/          OPC_Scope, 31, /*->38418*/ // 3 children in Scope
/* 38387*/            OPC_MoveParent,
/* 38388*/            OPC_RecordChild1, // #3 = $src2
/* 38389*/            OPC_MoveChild1,
/* 38390*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38393*/            OPC_MoveParent,
/* 38394*/            OPC_MoveParent,
/* 38395*/            OPC_CheckType, MVT::v16i1,
/* 38397*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 38399*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 38402*/            OPC_EmitMergeInputChains1_1,
/* 38403*/            OPC_EmitConvertToTarget, 3,
/* 38405*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86Vfpclass:{ *:[v16i1] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2)) - Complexity = 34
                      // Dst: (VFPCLASSPSZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 38418*/          /*Scope*/ 33, /*->38452*/
/* 38419*/            OPC_CheckType, MVT::v4f32,
/* 38421*/            OPC_MoveParent,
/* 38422*/            OPC_RecordChild1, // #3 = $src2
/* 38423*/            OPC_MoveChild1,
/* 38424*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38427*/            OPC_MoveParent,
/* 38428*/            OPC_MoveParent,
/* 38429*/            OPC_CheckType, MVT::v4i1,
/* 38431*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 38433*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 38436*/            OPC_EmitMergeInputChains1_1,
/* 38437*/            OPC_EmitConvertToTarget, 3,
/* 38439*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2)) - Complexity = 34
                      // Dst: (VFPCLASSPSZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 38452*/          /*Scope*/ 33, /*->38486*/
/* 38453*/            OPC_CheckType, MVT::v8f32,
/* 38455*/            OPC_MoveParent,
/* 38456*/            OPC_RecordChild1, // #3 = $src2
/* 38457*/            OPC_MoveChild1,
/* 38458*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38461*/            OPC_MoveParent,
/* 38462*/            OPC_MoveParent,
/* 38463*/            OPC_CheckType, MVT::v8i1,
/* 38465*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 38467*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 38470*/            OPC_EmitMergeInputChains1_1,
/* 38471*/            OPC_EmitConvertToTarget, 3,
/* 38473*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2)) - Complexity = 34
                      // Dst: (VFPCLASSPSZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 38486*/          0, /*End of Scope*/
/* 38487*/        /*SwitchType*/ 103, MVT::f64,// ->38592
/* 38489*/          OPC_MoveParent,
/* 38490*/          OPC_Scope, 33, /*->38525*/ // 3 children in Scope
/* 38492*/            OPC_CheckType, MVT::v8f64,
/* 38494*/            OPC_MoveParent,
/* 38495*/            OPC_RecordChild1, // #3 = $src2
/* 38496*/            OPC_MoveChild1,
/* 38497*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38500*/            OPC_MoveParent,
/* 38501*/            OPC_MoveParent,
/* 38502*/            OPC_CheckType, MVT::v8i1,
/* 38504*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 38506*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 38509*/            OPC_EmitMergeInputChains1_1,
/* 38510*/            OPC_EmitConvertToTarget, 3,
/* 38512*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2)) - Complexity = 34
                      // Dst: (VFPCLASSPDZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 38525*/          /*Scope*/ 31, /*->38557*/
/* 38526*/            OPC_MoveParent,
/* 38527*/            OPC_RecordChild1, // #3 = $src2
/* 38528*/            OPC_MoveChild1,
/* 38529*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38532*/            OPC_MoveParent,
/* 38533*/            OPC_MoveParent,
/* 38534*/            OPC_CheckType, MVT::v2i1,
/* 38536*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 38538*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 38541*/            OPC_EmitMergeInputChains1_1,
/* 38542*/            OPC_EmitConvertToTarget, 3,
/* 38544*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86Vfpclass:{ *:[v2i1] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2)) - Complexity = 34
                      // Dst: (VFPCLASSPDZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 38557*/          /*Scope*/ 33, /*->38591*/
/* 38558*/            OPC_CheckType, MVT::v4f64,
/* 38560*/            OPC_MoveParent,
/* 38561*/            OPC_RecordChild1, // #3 = $src2
/* 38562*/            OPC_MoveChild1,
/* 38563*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38566*/            OPC_MoveParent,
/* 38567*/            OPC_MoveParent,
/* 38568*/            OPC_CheckType, MVT::v4i1,
/* 38570*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 38572*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 38575*/            OPC_EmitMergeInputChains1_1,
/* 38576*/            OPC_EmitConvertToTarget, 3,
/* 38578*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2)) - Complexity = 34
                      // Dst: (VFPCLASSPDZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 38591*/          0, /*End of Scope*/
/* 38592*/        0, // EndSwitchType
/* 38593*/      0, // EndSwitchOpcode
/* 38594*/    /*Scope*/ 66|128,4/*578*/, /*->39174*/
/* 38596*/      OPC_MoveChild0,
/* 38597*/      OPC_SwitchOpcode /*2 cases */, 77|128,2/*333*/, TARGET_VAL(X86ISD::CMPM),// ->38935
/* 38602*/        OPC_RecordChild0, // #0 = $src1
/* 38603*/        OPC_Scope, 54, /*->38659*/ // 6 children in Scope
/* 38605*/          OPC_CheckChild0Type, MVT::v8f64,
/* 38607*/          OPC_MoveChild1,
/* 38608*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38611*/          OPC_MoveChild0,
/* 38612*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38615*/          OPC_RecordMemRef,
/* 38616*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 38617*/          OPC_CheckFoldableChainNode,
/* 38618*/          OPC_RecordChild1, // #2 = $src2
/* 38619*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38621*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38623*/          OPC_CheckType, MVT::f64,
/* 38625*/          OPC_MoveParent,
/* 38626*/          OPC_MoveParent,
/* 38627*/          OPC_RecordChild2, // #3 = $cc
/* 38628*/          OPC_MoveChild2,
/* 38629*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38632*/          OPC_MoveParent,
/* 38633*/          OPC_MoveParent,
/* 38634*/          OPC_RecordChild1, // #4 = $mask
/* 38635*/          OPC_CheckType, MVT::v8i1,
/* 38637*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 38639*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38642*/          OPC_EmitMergeInputChains1_1,
/* 38643*/          OPC_EmitConvertToTarget, 3,
/* 38645*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 34
                    // Dst: (VCMPPDZrmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38659*/        /*Scope*/ 54, /*->38714*/
/* 38660*/          OPC_CheckChild0Type, MVT::v2f64,
/* 38662*/          OPC_MoveChild1,
/* 38663*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38666*/          OPC_MoveChild0,
/* 38667*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38670*/          OPC_RecordMemRef,
/* 38671*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 38672*/          OPC_CheckFoldableChainNode,
/* 38673*/          OPC_RecordChild1, // #2 = $src2
/* 38674*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38676*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38678*/          OPC_CheckType, MVT::f64,
/* 38680*/          OPC_MoveParent,
/* 38681*/          OPC_MoveParent,
/* 38682*/          OPC_RecordChild2, // #3 = $cc
/* 38683*/          OPC_MoveChild2,
/* 38684*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38687*/          OPC_MoveParent,
/* 38688*/          OPC_MoveParent,
/* 38689*/          OPC_RecordChild1, // #4 = $mask
/* 38690*/          OPC_CheckType, MVT::v2i1,
/* 38692*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 38694*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38697*/          OPC_EmitMergeInputChains1_1,
/* 38698*/          OPC_EmitConvertToTarget, 3,
/* 38700*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 34
                    // Dst: (VCMPPDZ128rmbik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38714*/        /*Scope*/ 54, /*->38769*/
/* 38715*/          OPC_CheckChild0Type, MVT::v4f64,
/* 38717*/          OPC_MoveChild1,
/* 38718*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38721*/          OPC_MoveChild0,
/* 38722*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38725*/          OPC_RecordMemRef,
/* 38726*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 38727*/          OPC_CheckFoldableChainNode,
/* 38728*/          OPC_RecordChild1, // #2 = $src2
/* 38729*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38731*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38733*/          OPC_CheckType, MVT::f64,
/* 38735*/          OPC_MoveParent,
/* 38736*/          OPC_MoveParent,
/* 38737*/          OPC_RecordChild2, // #3 = $cc
/* 38738*/          OPC_MoveChild2,
/* 38739*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38742*/          OPC_MoveParent,
/* 38743*/          OPC_MoveParent,
/* 38744*/          OPC_RecordChild1, // #4 = $mask
/* 38745*/          OPC_CheckType, MVT::v4i1,
/* 38747*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 38749*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38752*/          OPC_EmitMergeInputChains1_1,
/* 38753*/          OPC_EmitConvertToTarget, 3,
/* 38755*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 34
                    // Dst: (VCMPPDZ256rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38769*/        /*Scope*/ 54, /*->38824*/
/* 38770*/          OPC_CheckChild0Type, MVT::v16f32,
/* 38772*/          OPC_MoveChild1,
/* 38773*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38776*/          OPC_MoveChild0,
/* 38777*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38780*/          OPC_RecordMemRef,
/* 38781*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 38782*/          OPC_CheckFoldableChainNode,
/* 38783*/          OPC_RecordChild1, // #2 = $src2
/* 38784*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38786*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38788*/          OPC_CheckType, MVT::f32,
/* 38790*/          OPC_MoveParent,
/* 38791*/          OPC_MoveParent,
/* 38792*/          OPC_RecordChild2, // #3 = $cc
/* 38793*/          OPC_MoveChild2,
/* 38794*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38797*/          OPC_MoveParent,
/* 38798*/          OPC_MoveParent,
/* 38799*/          OPC_RecordChild1, // #4 = $mask
/* 38800*/          OPC_CheckType, MVT::v16i1,
/* 38802*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 38804*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38807*/          OPC_EmitMergeInputChains1_1,
/* 38808*/          OPC_EmitConvertToTarget, 3,
/* 38810*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 34
                    // Dst: (VCMPPSZrmbik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38824*/        /*Scope*/ 54, /*->38879*/
/* 38825*/          OPC_CheckChild0Type, MVT::v4f32,
/* 38827*/          OPC_MoveChild1,
/* 38828*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38831*/          OPC_MoveChild0,
/* 38832*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38835*/          OPC_RecordMemRef,
/* 38836*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 38837*/          OPC_CheckFoldableChainNode,
/* 38838*/          OPC_RecordChild1, // #2 = $src2
/* 38839*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38841*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38843*/          OPC_CheckType, MVT::f32,
/* 38845*/          OPC_MoveParent,
/* 38846*/          OPC_MoveParent,
/* 38847*/          OPC_RecordChild2, // #3 = $cc
/* 38848*/          OPC_MoveChild2,
/* 38849*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38852*/          OPC_MoveParent,
/* 38853*/          OPC_MoveParent,
/* 38854*/          OPC_RecordChild1, // #4 = $mask
/* 38855*/          OPC_CheckType, MVT::v4i1,
/* 38857*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 38859*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38862*/          OPC_EmitMergeInputChains1_1,
/* 38863*/          OPC_EmitConvertToTarget, 3,
/* 38865*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 34
                    // Dst: (VCMPPSZ128rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38879*/        /*Scope*/ 54, /*->38934*/
/* 38880*/          OPC_CheckChild0Type, MVT::v8f32,
/* 38882*/          OPC_MoveChild1,
/* 38883*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38886*/          OPC_MoveChild0,
/* 38887*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38890*/          OPC_RecordMemRef,
/* 38891*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 38892*/          OPC_CheckFoldableChainNode,
/* 38893*/          OPC_RecordChild1, // #2 = $src2
/* 38894*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38896*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38898*/          OPC_CheckType, MVT::f32,
/* 38900*/          OPC_MoveParent,
/* 38901*/          OPC_MoveParent,
/* 38902*/          OPC_RecordChild2, // #3 = $cc
/* 38903*/          OPC_MoveChild2,
/* 38904*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38907*/          OPC_MoveParent,
/* 38908*/          OPC_MoveParent,
/* 38909*/          OPC_RecordChild1, // #4 = $mask
/* 38910*/          OPC_CheckType, MVT::v8i1,
/* 38912*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 38914*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 38917*/          OPC_EmitMergeInputChains1_1,
/* 38918*/          OPC_EmitConvertToTarget, 3,
/* 38920*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 34
                    // Dst: (VCMPPSZ256rmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 38934*/        0, /*End of Scope*/
/* 38935*/      /*SwitchOpcode*/ 106|128,1/*234*/, TARGET_VAL(X86ISD::VFPCLASS),// ->39173
/* 38939*/        OPC_MoveChild0,
/* 38940*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 38943*/        OPC_MoveChild0,
/* 38944*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 38947*/        OPC_RecordMemRef,
/* 38948*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 38949*/        OPC_CheckFoldableChainNode,
/* 38950*/        OPC_RecordChild1, // #1 = $src1
/* 38951*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38953*/        OPC_CheckPredicate, 9, // Predicate_load
/* 38955*/        OPC_SwitchType /*2 cases */, 106, MVT::f32,// ->39064
/* 38958*/          OPC_MoveParent,
/* 38959*/          OPC_Scope, 32, /*->38993*/ // 3 children in Scope
/* 38961*/            OPC_MoveParent,
/* 38962*/            OPC_RecordChild1, // #2 = $src2
/* 38963*/            OPC_MoveChild1,
/* 38964*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38967*/            OPC_MoveParent,
/* 38968*/            OPC_MoveParent,
/* 38969*/            OPC_RecordChild1, // #3 = $mask
/* 38970*/            OPC_CheckType, MVT::v16i1,
/* 38972*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 38974*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 38977*/            OPC_EmitMergeInputChains1_0,
/* 38978*/            OPC_EmitConvertToTarget, 2,
/* 38980*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v16i1] } (X86Vfpclass:{ *:[v16i1] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 34
                      // Dst: (VFPCLASSPSZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 38993*/          /*Scope*/ 34, /*->39028*/
/* 38994*/            OPC_CheckType, MVT::v4f32,
/* 38996*/            OPC_MoveParent,
/* 38997*/            OPC_RecordChild1, // #2 = $src2
/* 38998*/            OPC_MoveChild1,
/* 38999*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39002*/            OPC_MoveParent,
/* 39003*/            OPC_MoveParent,
/* 39004*/            OPC_RecordChild1, // #3 = $mask
/* 39005*/            OPC_CheckType, MVT::v4i1,
/* 39007*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 39009*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 39012*/            OPC_EmitMergeInputChains1_0,
/* 39013*/            OPC_EmitConvertToTarget, 2,
/* 39015*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 34
                      // Dst: (VFPCLASSPSZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 39028*/          /*Scope*/ 34, /*->39063*/
/* 39029*/            OPC_CheckType, MVT::v8f32,
/* 39031*/            OPC_MoveParent,
/* 39032*/            OPC_RecordChild1, // #2 = $src2
/* 39033*/            OPC_MoveChild1,
/* 39034*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39037*/            OPC_MoveParent,
/* 39038*/            OPC_MoveParent,
/* 39039*/            OPC_RecordChild1, // #3 = $mask
/* 39040*/            OPC_CheckType, MVT::v8i1,
/* 39042*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 39044*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 39047*/            OPC_EmitMergeInputChains1_0,
/* 39048*/            OPC_EmitConvertToTarget, 2,
/* 39050*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 34
                      // Dst: (VFPCLASSPSZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 39063*/          0, /*End of Scope*/
/* 39064*/        /*SwitchType*/ 106, MVT::f64,// ->39172
/* 39066*/          OPC_MoveParent,
/* 39067*/          OPC_Scope, 34, /*->39103*/ // 3 children in Scope
/* 39069*/            OPC_CheckType, MVT::v8f64,
/* 39071*/            OPC_MoveParent,
/* 39072*/            OPC_RecordChild1, // #2 = $src2
/* 39073*/            OPC_MoveChild1,
/* 39074*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39077*/            OPC_MoveParent,
/* 39078*/            OPC_MoveParent,
/* 39079*/            OPC_RecordChild1, // #3 = $mask
/* 39080*/            OPC_CheckType, MVT::v8i1,
/* 39082*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 39084*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 39087*/            OPC_EmitMergeInputChains1_0,
/* 39088*/            OPC_EmitConvertToTarget, 2,
/* 39090*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 34
                      // Dst: (VFPCLASSPDZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 39103*/          /*Scope*/ 32, /*->39136*/
/* 39104*/            OPC_MoveParent,
/* 39105*/            OPC_RecordChild1, // #2 = $src2
/* 39106*/            OPC_MoveChild1,
/* 39107*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39110*/            OPC_MoveParent,
/* 39111*/            OPC_MoveParent,
/* 39112*/            OPC_RecordChild1, // #3 = $mask
/* 39113*/            OPC_CheckType, MVT::v2i1,
/* 39115*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 39117*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 39120*/            OPC_EmitMergeInputChains1_0,
/* 39121*/            OPC_EmitConvertToTarget, 2,
/* 39123*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v2i1] } (X86Vfpclass:{ *:[v2i1] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 34
                      // Dst: (VFPCLASSPDZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 39136*/          /*Scope*/ 34, /*->39171*/
/* 39137*/            OPC_CheckType, MVT::v4f64,
/* 39139*/            OPC_MoveParent,
/* 39140*/            OPC_RecordChild1, // #2 = $src2
/* 39141*/            OPC_MoveChild1,
/* 39142*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39145*/            OPC_MoveParent,
/* 39146*/            OPC_MoveParent,
/* 39147*/            OPC_RecordChild1, // #3 = $mask
/* 39148*/            OPC_CheckType, MVT::v4i1,
/* 39150*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 39152*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 39155*/            OPC_EmitMergeInputChains1_0,
/* 39156*/            OPC_EmitConvertToTarget, 2,
/* 39158*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 34
                      // Dst: (VFPCLASSPDZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 39171*/          0, /*End of Scope*/
/* 39172*/        0, // EndSwitchType
/* 39173*/      0, // EndSwitchOpcode
/* 39174*/    /*Scope*/ 97|128,9/*1249*/, /*->40425*/
/* 39176*/      OPC_RecordChild0, // #0 = $mask
/* 39177*/      OPC_MoveChild1,
/* 39178*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 39181*/      OPC_Scope, 36|128,9/*1188*/, /*->40372*/ // 2 children in Scope
/* 39184*/        OPC_RecordChild0, // #1 = $src1
/* 39185*/        OPC_Scope, 79, /*->39266*/ // 12 children in Scope
/* 39187*/          OPC_CheckChild0Type, MVT::v64i8,
/* 39189*/          OPC_MoveChild1,
/* 39190*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 39193*/          OPC_MoveChild0,
/* 39194*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39197*/          OPC_RecordMemRef,
/* 39198*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 39199*/          OPC_CheckFoldableChainNode,
/* 39200*/          OPC_RecordChild1, // #3 = $src2
/* 39201*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39203*/          OPC_CheckPredicate, 9, // Predicate_load
/* 39205*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 39207*/          OPC_CheckType, MVT::v8i64,
/* 39209*/          OPC_MoveParent,
/* 39210*/          OPC_MoveParent,
/* 39211*/          OPC_MoveChild2,
/* 39212*/          OPC_Scope, 25, /*->39239*/ // 2 children in Scope
/* 39214*/            OPC_CheckCondCode, ISD::SETEQ,
/* 39216*/            OPC_MoveParent,
/* 39217*/            OPC_MoveParent,
/* 39218*/            OPC_CheckType, MVT::v64i1,
/* 39220*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 39222*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39225*/            OPC_EmitMergeInputChains1_2,
/* 39226*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (X86setcc_commute:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPEQBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39239*/          /*Scope*/ 25, /*->39265*/
/* 39240*/            OPC_CheckCondCode, ISD::SETGT,
/* 39242*/            OPC_MoveParent,
/* 39243*/            OPC_MoveParent,
/* 39244*/            OPC_CheckType, MVT::v64i1,
/* 39246*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 39248*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39251*/            OPC_EmitMergeInputChains1_2,
/* 39252*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPGTBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39265*/          0, /*End of Scope*/
/* 39266*/        /*Scope*/ 79, /*->39346*/
/* 39267*/          OPC_CheckChild0Type, MVT::v32i8,
/* 39269*/          OPC_MoveChild1,
/* 39270*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 39273*/          OPC_MoveChild0,
/* 39274*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39277*/          OPC_RecordMemRef,
/* 39278*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 39279*/          OPC_CheckFoldableChainNode,
/* 39280*/          OPC_RecordChild1, // #3 = $src2
/* 39281*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39283*/          OPC_CheckPredicate, 9, // Predicate_load
/* 39285*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 39287*/          OPC_CheckType, MVT::v4i64,
/* 39289*/          OPC_MoveParent,
/* 39290*/          OPC_MoveParent,
/* 39291*/          OPC_MoveChild2,
/* 39292*/          OPC_Scope, 25, /*->39319*/ // 2 children in Scope
/* 39294*/            OPC_CheckCondCode, ISD::SETEQ,
/* 39296*/            OPC_MoveParent,
/* 39297*/            OPC_MoveParent,
/* 39298*/            OPC_CheckType, MVT::v32i1,
/* 39300*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 39302*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39305*/            OPC_EmitMergeInputChains1_2,
/* 39306*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (X86setcc_commute:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPEQBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39319*/          /*Scope*/ 25, /*->39345*/
/* 39320*/            OPC_CheckCondCode, ISD::SETGT,
/* 39322*/            OPC_MoveParent,
/* 39323*/            OPC_MoveParent,
/* 39324*/            OPC_CheckType, MVT::v32i1,
/* 39326*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 39328*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39331*/            OPC_EmitMergeInputChains1_2,
/* 39332*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPGTBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39345*/          0, /*End of Scope*/
/* 39346*/        /*Scope*/ 79, /*->39426*/
/* 39347*/          OPC_CheckChild0Type, MVT::v16i8,
/* 39349*/          OPC_MoveChild1,
/* 39350*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 39353*/          OPC_MoveChild0,
/* 39354*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39357*/          OPC_RecordMemRef,
/* 39358*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 39359*/          OPC_CheckFoldableChainNode,
/* 39360*/          OPC_RecordChild1, // #3 = $src2
/* 39361*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39363*/          OPC_CheckPredicate, 9, // Predicate_load
/* 39365*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 39367*/          OPC_CheckType, MVT::v2i64,
/* 39369*/          OPC_MoveParent,
/* 39370*/          OPC_MoveParent,
/* 39371*/          OPC_MoveChild2,
/* 39372*/          OPC_Scope, 25, /*->39399*/ // 2 children in Scope
/* 39374*/            OPC_CheckCondCode, ISD::SETEQ,
/* 39376*/            OPC_MoveParent,
/* 39377*/            OPC_MoveParent,
/* 39378*/            OPC_CheckType, MVT::v16i1,
/* 39380*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 39382*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39385*/            OPC_EmitMergeInputChains1_2,
/* 39386*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPEQBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39399*/          /*Scope*/ 25, /*->39425*/
/* 39400*/            OPC_CheckCondCode, ISD::SETGT,
/* 39402*/            OPC_MoveParent,
/* 39403*/            OPC_MoveParent,
/* 39404*/            OPC_CheckType, MVT::v16i1,
/* 39406*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 39408*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39411*/            OPC_EmitMergeInputChains1_2,
/* 39412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPGTBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39425*/          0, /*End of Scope*/
/* 39426*/        /*Scope*/ 79, /*->39506*/
/* 39427*/          OPC_CheckChild0Type, MVT::v32i16,
/* 39429*/          OPC_MoveChild1,
/* 39430*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 39433*/          OPC_MoveChild0,
/* 39434*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39437*/          OPC_RecordMemRef,
/* 39438*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 39439*/          OPC_CheckFoldableChainNode,
/* 39440*/          OPC_RecordChild1, // #3 = $src2
/* 39441*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39443*/          OPC_CheckPredicate, 9, // Predicate_load
/* 39445*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 39447*/          OPC_CheckType, MVT::v8i64,
/* 39449*/          OPC_MoveParent,
/* 39450*/          OPC_MoveParent,
/* 39451*/          OPC_MoveChild2,
/* 39452*/          OPC_Scope, 25, /*->39479*/ // 2 children in Scope
/* 39454*/            OPC_CheckCondCode, ISD::SETEQ,
/* 39456*/            OPC_MoveParent,
/* 39457*/            OPC_MoveParent,
/* 39458*/            OPC_CheckType, MVT::v32i1,
/* 39460*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 39462*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39465*/            OPC_EmitMergeInputChains1_2,
/* 39466*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (X86setcc_commute:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPEQWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39479*/          /*Scope*/ 25, /*->39505*/
/* 39480*/            OPC_CheckCondCode, ISD::SETGT,
/* 39482*/            OPC_MoveParent,
/* 39483*/            OPC_MoveParent,
/* 39484*/            OPC_CheckType, MVT::v32i1,
/* 39486*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 39488*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39491*/            OPC_EmitMergeInputChains1_2,
/* 39492*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPGTWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39505*/          0, /*End of Scope*/
/* 39506*/        /*Scope*/ 79, /*->39586*/
/* 39507*/          OPC_CheckChild0Type, MVT::v16i16,
/* 39509*/          OPC_MoveChild1,
/* 39510*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 39513*/          OPC_MoveChild0,
/* 39514*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39517*/          OPC_RecordMemRef,
/* 39518*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 39519*/          OPC_CheckFoldableChainNode,
/* 39520*/          OPC_RecordChild1, // #3 = $src2
/* 39521*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39523*/          OPC_CheckPredicate, 9, // Predicate_load
/* 39525*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 39527*/          OPC_CheckType, MVT::v4i64,
/* 39529*/          OPC_MoveParent,
/* 39530*/          OPC_MoveParent,
/* 39531*/          OPC_MoveChild2,
/* 39532*/          OPC_Scope, 25, /*->39559*/ // 2 children in Scope
/* 39534*/            OPC_CheckCondCode, ISD::SETEQ,
/* 39536*/            OPC_MoveParent,
/* 39537*/            OPC_MoveParent,
/* 39538*/            OPC_CheckType, MVT::v16i1,
/* 39540*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 39542*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39545*/            OPC_EmitMergeInputChains1_2,
/* 39546*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPEQWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39559*/          /*Scope*/ 25, /*->39585*/
/* 39560*/            OPC_CheckCondCode, ISD::SETGT,
/* 39562*/            OPC_MoveParent,
/* 39563*/            OPC_MoveParent,
/* 39564*/            OPC_CheckType, MVT::v16i1,
/* 39566*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 39568*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39571*/            OPC_EmitMergeInputChains1_2,
/* 39572*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPGTWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39585*/          0, /*End of Scope*/
/* 39586*/        /*Scope*/ 79, /*->39666*/
/* 39587*/          OPC_CheckChild0Type, MVT::v8i16,
/* 39589*/          OPC_MoveChild1,
/* 39590*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 39593*/          OPC_MoveChild0,
/* 39594*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39597*/          OPC_RecordMemRef,
/* 39598*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 39599*/          OPC_CheckFoldableChainNode,
/* 39600*/          OPC_RecordChild1, // #3 = $src2
/* 39601*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39603*/          OPC_CheckPredicate, 9, // Predicate_load
/* 39605*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 39607*/          OPC_CheckType, MVT::v2i64,
/* 39609*/          OPC_MoveParent,
/* 39610*/          OPC_MoveParent,
/* 39611*/          OPC_MoveChild2,
/* 39612*/          OPC_Scope, 25, /*->39639*/ // 2 children in Scope
/* 39614*/            OPC_CheckCondCode, ISD::SETEQ,
/* 39616*/            OPC_MoveParent,
/* 39617*/            OPC_MoveParent,
/* 39618*/            OPC_CheckType, MVT::v8i1,
/* 39620*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 39622*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39625*/            OPC_EmitMergeInputChains1_2,
/* 39626*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPEQWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39639*/          /*Scope*/ 25, /*->39665*/
/* 39640*/            OPC_CheckCondCode, ISD::SETGT,
/* 39642*/            OPC_MoveParent,
/* 39643*/            OPC_MoveParent,
/* 39644*/            OPC_CheckType, MVT::v8i1,
/* 39646*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 39648*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39651*/            OPC_EmitMergeInputChains1_2,
/* 39652*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPGTWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39665*/          0, /*End of Scope*/
/* 39666*/        /*Scope*/ 27|128,1/*155*/, /*->39823*/
/* 39668*/          OPC_CheckChild0Type, MVT::v16i32,
/* 39670*/          OPC_MoveChild1,
/* 39671*/          OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::BITCAST),// ->39748
/* 39675*/            OPC_MoveChild0,
/* 39676*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39679*/            OPC_RecordMemRef,
/* 39680*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 39681*/            OPC_CheckFoldableChainNode,
/* 39682*/            OPC_RecordChild1, // #3 = $src2
/* 39683*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39685*/            OPC_CheckPredicate, 9, // Predicate_load
/* 39687*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 39689*/            OPC_CheckType, MVT::v8i64,
/* 39691*/            OPC_MoveParent,
/* 39692*/            OPC_MoveParent,
/* 39693*/            OPC_MoveChild2,
/* 39694*/            OPC_Scope, 25, /*->39721*/ // 2 children in Scope
/* 39696*/              OPC_CheckCondCode, ISD::SETEQ,
/* 39698*/              OPC_MoveParent,
/* 39699*/              OPC_MoveParent,
/* 39700*/              OPC_CheckType, MVT::v16i1,
/* 39702*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 39704*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39707*/              OPC_EmitMergeInputChains1_2,
/* 39708*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPEQDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39721*/            /*Scope*/ 25, /*->39747*/
/* 39722*/              OPC_CheckCondCode, ISD::SETGT,
/* 39724*/              OPC_MoveParent,
/* 39725*/              OPC_MoveParent,
/* 39726*/              OPC_CheckType, MVT::v16i1,
/* 39728*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 39730*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39733*/              OPC_EmitMergeInputChains1_2,
/* 39734*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPGTDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39747*/            0, /*End of Scope*/
/* 39748*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VBROADCAST),// ->39822
/* 39751*/            OPC_MoveChild0,
/* 39752*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39755*/            OPC_RecordMemRef,
/* 39756*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 39757*/            OPC_CheckFoldableChainNode,
/* 39758*/            OPC_RecordChild1, // #3 = $src2
/* 39759*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39761*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 39763*/            OPC_CheckType, MVT::i32,
/* 39765*/            OPC_MoveParent,
/* 39766*/            OPC_MoveParent,
/* 39767*/            OPC_MoveChild2,
/* 39768*/            OPC_Scope, 25, /*->39795*/ // 2 children in Scope
/* 39770*/              OPC_CheckCondCode, ISD::SETEQ,
/* 39772*/              OPC_MoveParent,
/* 39773*/              OPC_MoveParent,
/* 39774*/              OPC_CheckType, MVT::v16i1,
/* 39776*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 39778*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39781*/              OPC_EmitMergeInputChains1_2,
/* 39782*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETEQ:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPEQDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39795*/            /*Scope*/ 25, /*->39821*/
/* 39796*/              OPC_CheckCondCode, ISD::SETGT,
/* 39798*/              OPC_MoveParent,
/* 39799*/              OPC_MoveParent,
/* 39800*/              OPC_CheckType, MVT::v16i1,
/* 39802*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 39804*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39807*/              OPC_EmitMergeInputChains1_2,
/* 39808*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETGT:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPGTDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39821*/            0, /*End of Scope*/
/* 39822*/          0, // EndSwitchOpcode
/* 39823*/        /*Scope*/ 27|128,1/*155*/, /*->39980*/
/* 39825*/          OPC_CheckChild0Type, MVT::v8i32,
/* 39827*/          OPC_MoveChild1,
/* 39828*/          OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::BITCAST),// ->39905
/* 39832*/            OPC_MoveChild0,
/* 39833*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39836*/            OPC_RecordMemRef,
/* 39837*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 39838*/            OPC_CheckFoldableChainNode,
/* 39839*/            OPC_RecordChild1, // #3 = $src2
/* 39840*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39842*/            OPC_CheckPredicate, 9, // Predicate_load
/* 39844*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 39846*/            OPC_CheckType, MVT::v4i64,
/* 39848*/            OPC_MoveParent,
/* 39849*/            OPC_MoveParent,
/* 39850*/            OPC_MoveChild2,
/* 39851*/            OPC_Scope, 25, /*->39878*/ // 2 children in Scope
/* 39853*/              OPC_CheckCondCode, ISD::SETEQ,
/* 39855*/              OPC_MoveParent,
/* 39856*/              OPC_MoveParent,
/* 39857*/              OPC_CheckType, MVT::v8i1,
/* 39859*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 39861*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39864*/              OPC_EmitMergeInputChains1_2,
/* 39865*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPEQDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39878*/            /*Scope*/ 25, /*->39904*/
/* 39879*/              OPC_CheckCondCode, ISD::SETGT,
/* 39881*/              OPC_MoveParent,
/* 39882*/              OPC_MoveParent,
/* 39883*/              OPC_CheckType, MVT::v8i1,
/* 39885*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 39887*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39890*/              OPC_EmitMergeInputChains1_2,
/* 39891*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPGTDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39904*/            0, /*End of Scope*/
/* 39905*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VBROADCAST),// ->39979
/* 39908*/            OPC_MoveChild0,
/* 39909*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39912*/            OPC_RecordMemRef,
/* 39913*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 39914*/            OPC_CheckFoldableChainNode,
/* 39915*/            OPC_RecordChild1, // #3 = $src2
/* 39916*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39918*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 39920*/            OPC_CheckType, MVT::i32,
/* 39922*/            OPC_MoveParent,
/* 39923*/            OPC_MoveParent,
/* 39924*/            OPC_MoveChild2,
/* 39925*/            OPC_Scope, 25, /*->39952*/ // 2 children in Scope
/* 39927*/              OPC_CheckCondCode, ISD::SETEQ,
/* 39929*/              OPC_MoveParent,
/* 39930*/              OPC_MoveParent,
/* 39931*/              OPC_CheckType, MVT::v8i1,
/* 39933*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 39935*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39938*/              OPC_EmitMergeInputChains1_2,
/* 39939*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETEQ:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPEQDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39952*/            /*Scope*/ 25, /*->39978*/
/* 39953*/              OPC_CheckCondCode, ISD::SETGT,
/* 39955*/              OPC_MoveParent,
/* 39956*/              OPC_MoveParent,
/* 39957*/              OPC_CheckType, MVT::v8i1,
/* 39959*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 39961*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 39964*/              OPC_EmitMergeInputChains1_2,
/* 39965*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETGT:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPGTDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 39978*/            0, /*End of Scope*/
/* 39979*/          0, // EndSwitchOpcode
/* 39980*/        /*Scope*/ 27|128,1/*155*/, /*->40137*/
/* 39982*/          OPC_CheckChild0Type, MVT::v4i32,
/* 39984*/          OPC_MoveChild1,
/* 39985*/          OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::BITCAST),// ->40062
/* 39989*/            OPC_MoveChild0,
/* 39990*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39993*/            OPC_RecordMemRef,
/* 39994*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 39995*/            OPC_CheckFoldableChainNode,
/* 39996*/            OPC_RecordChild1, // #3 = $src2
/* 39997*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39999*/            OPC_CheckPredicate, 9, // Predicate_load
/* 40001*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 40003*/            OPC_CheckType, MVT::v2i64,
/* 40005*/            OPC_MoveParent,
/* 40006*/            OPC_MoveParent,
/* 40007*/            OPC_MoveChild2,
/* 40008*/            OPC_Scope, 25, /*->40035*/ // 2 children in Scope
/* 40010*/              OPC_CheckCondCode, ISD::SETEQ,
/* 40012*/              OPC_MoveParent,
/* 40013*/              OPC_MoveParent,
/* 40014*/              OPC_CheckType, MVT::v4i1,
/* 40016*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 40018*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40021*/              OPC_EmitMergeInputChains1_2,
/* 40022*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPEQDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40035*/            /*Scope*/ 25, /*->40061*/
/* 40036*/              OPC_CheckCondCode, ISD::SETGT,
/* 40038*/              OPC_MoveParent,
/* 40039*/              OPC_MoveParent,
/* 40040*/              OPC_CheckType, MVT::v4i1,
/* 40042*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 40044*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40047*/              OPC_EmitMergeInputChains1_2,
/* 40048*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPGTDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40061*/            0, /*End of Scope*/
/* 40062*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VBROADCAST),// ->40136
/* 40065*/            OPC_MoveChild0,
/* 40066*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40069*/            OPC_RecordMemRef,
/* 40070*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 40071*/            OPC_CheckFoldableChainNode,
/* 40072*/            OPC_RecordChild1, // #3 = $src2
/* 40073*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40075*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 40077*/            OPC_CheckType, MVT::i32,
/* 40079*/            OPC_MoveParent,
/* 40080*/            OPC_MoveParent,
/* 40081*/            OPC_MoveChild2,
/* 40082*/            OPC_Scope, 25, /*->40109*/ // 2 children in Scope
/* 40084*/              OPC_CheckCondCode, ISD::SETEQ,
/* 40086*/              OPC_MoveParent,
/* 40087*/              OPC_MoveParent,
/* 40088*/              OPC_CheckType, MVT::v4i1,
/* 40090*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 40092*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40095*/              OPC_EmitMergeInputChains1_2,
/* 40096*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETEQ:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPEQDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40109*/            /*Scope*/ 25, /*->40135*/
/* 40110*/              OPC_CheckCondCode, ISD::SETGT,
/* 40112*/              OPC_MoveParent,
/* 40113*/              OPC_MoveParent,
/* 40114*/              OPC_CheckType, MVT::v4i1,
/* 40116*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 40118*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40121*/              OPC_EmitMergeInputChains1_2,
/* 40122*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETGT:{ *:[Other] })) - Complexity = 33
                        // Dst: (VPCMPGTDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40135*/            0, /*End of Scope*/
/* 40136*/          0, // EndSwitchOpcode
/* 40137*/        /*Scope*/ 77, /*->40215*/
/* 40138*/          OPC_CheckChild0Type, MVT::v8i64,
/* 40140*/          OPC_MoveChild1,
/* 40141*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 40144*/          OPC_MoveChild0,
/* 40145*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40148*/          OPC_RecordMemRef,
/* 40149*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 40150*/          OPC_CheckFoldableChainNode,
/* 40151*/          OPC_RecordChild1, // #3 = $src2
/* 40152*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40154*/          OPC_CheckPredicate, 9, // Predicate_load
/* 40156*/          OPC_CheckType, MVT::i64,
/* 40158*/          OPC_MoveParent,
/* 40159*/          OPC_MoveParent,
/* 40160*/          OPC_MoveChild2,
/* 40161*/          OPC_Scope, 25, /*->40188*/ // 2 children in Scope
/* 40163*/            OPC_CheckCondCode, ISD::SETEQ,
/* 40165*/            OPC_MoveParent,
/* 40166*/            OPC_MoveParent,
/* 40167*/            OPC_CheckType, MVT::v8i1,
/* 40169*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 40171*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40174*/            OPC_EmitMergeInputChains1_2,
/* 40175*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETEQ:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPEQQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40188*/          /*Scope*/ 25, /*->40214*/
/* 40189*/            OPC_CheckCondCode, ISD::SETGT,
/* 40191*/            OPC_MoveParent,
/* 40192*/            OPC_MoveParent,
/* 40193*/            OPC_CheckType, MVT::v8i1,
/* 40195*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 40197*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40200*/            OPC_EmitMergeInputChains1_2,
/* 40201*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETGT:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPGTQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40214*/          0, /*End of Scope*/
/* 40215*/        /*Scope*/ 77, /*->40293*/
/* 40216*/          OPC_CheckChild0Type, MVT::v4i64,
/* 40218*/          OPC_MoveChild1,
/* 40219*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 40222*/          OPC_MoveChild0,
/* 40223*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40226*/          OPC_RecordMemRef,
/* 40227*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 40228*/          OPC_CheckFoldableChainNode,
/* 40229*/          OPC_RecordChild1, // #3 = $src2
/* 40230*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40232*/          OPC_CheckPredicate, 9, // Predicate_load
/* 40234*/          OPC_CheckType, MVT::i64,
/* 40236*/          OPC_MoveParent,
/* 40237*/          OPC_MoveParent,
/* 40238*/          OPC_MoveChild2,
/* 40239*/          OPC_Scope, 25, /*->40266*/ // 2 children in Scope
/* 40241*/            OPC_CheckCondCode, ISD::SETEQ,
/* 40243*/            OPC_MoveParent,
/* 40244*/            OPC_MoveParent,
/* 40245*/            OPC_CheckType, MVT::v4i1,
/* 40247*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 40249*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40252*/            OPC_EmitMergeInputChains1_2,
/* 40253*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETEQ:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPEQQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40266*/          /*Scope*/ 25, /*->40292*/
/* 40267*/            OPC_CheckCondCode, ISD::SETGT,
/* 40269*/            OPC_MoveParent,
/* 40270*/            OPC_MoveParent,
/* 40271*/            OPC_CheckType, MVT::v4i1,
/* 40273*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 40275*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40278*/            OPC_EmitMergeInputChains1_2,
/* 40279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETGT:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPGTQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40292*/          0, /*End of Scope*/
/* 40293*/        /*Scope*/ 77, /*->40371*/
/* 40294*/          OPC_CheckChild0Type, MVT::v2i64,
/* 40296*/          OPC_MoveChild1,
/* 40297*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 40300*/          OPC_MoveChild0,
/* 40301*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40304*/          OPC_RecordMemRef,
/* 40305*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 40306*/          OPC_CheckFoldableChainNode,
/* 40307*/          OPC_RecordChild1, // #3 = $src2
/* 40308*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40310*/          OPC_CheckPredicate, 9, // Predicate_load
/* 40312*/          OPC_CheckType, MVT::i64,
/* 40314*/          OPC_MoveParent,
/* 40315*/          OPC_MoveParent,
/* 40316*/          OPC_MoveChild2,
/* 40317*/          OPC_Scope, 25, /*->40344*/ // 2 children in Scope
/* 40319*/            OPC_CheckCondCode, ISD::SETEQ,
/* 40321*/            OPC_MoveParent,
/* 40322*/            OPC_MoveParent,
/* 40323*/            OPC_CheckType, MVT::v2i1,
/* 40325*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 40327*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40330*/            OPC_EmitMergeInputChains1_2,
/* 40331*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETEQ:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPEQQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40344*/          /*Scope*/ 25, /*->40370*/
/* 40345*/            OPC_CheckCondCode, ISD::SETGT,
/* 40347*/            OPC_MoveParent,
/* 40348*/            OPC_MoveParent,
/* 40349*/            OPC_CheckType, MVT::v2i1,
/* 40351*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 40353*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40356*/            OPC_EmitMergeInputChains1_2,
/* 40357*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETGT:{ *:[Other] })) - Complexity = 33
                      // Dst: (VPCMPGTQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40370*/          0, /*End of Scope*/
/* 40371*/        0, /*End of Scope*/
/* 40372*/      /*Scope*/ 51, /*->40424*/
/* 40373*/        OPC_MoveChild0,
/* 40374*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40377*/        OPC_MoveChild0,
/* 40378*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40381*/        OPC_RecordMemRef,
/* 40382*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 40383*/        OPC_CheckFoldableChainNode,
/* 40384*/        OPC_RecordChild1, // #2 = $src2
/* 40385*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40387*/        OPC_CheckPredicate, 9, // Predicate_load
/* 40389*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 40391*/        OPC_CheckType, MVT::v8i64,
/* 40393*/        OPC_MoveParent,
/* 40394*/        OPC_CheckType, MVT::v64i8,
/* 40396*/        OPC_MoveParent,
/* 40397*/        OPC_RecordChild1, // #3 = $src1
/* 40398*/        OPC_MoveChild2,
/* 40399*/        OPC_CheckCondCode, ISD::SETEQ,
/* 40401*/        OPC_MoveParent,
/* 40402*/        OPC_MoveParent,
/* 40403*/        OPC_CheckType, MVT::v64i1,
/* 40405*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 40407*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40410*/        OPC_EmitMergeInputChains1_1,
/* 40411*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (X86setcc_commute:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                  // Dst: (VPCMPEQBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40424*/      0, /*End of Scope*/
/* 40425*/    /*Scope*/ 112, /*->40538*/
/* 40426*/      OPC_MoveChild0,
/* 40427*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 40430*/      OPC_Scope, 52, /*->40484*/ // 2 children in Scope
/* 40432*/        OPC_RecordChild0, // #0 = $src1
/* 40433*/        OPC_CheckChild0Type, MVT::v64i8,
/* 40435*/        OPC_MoveChild1,
/* 40436*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40439*/        OPC_MoveChild0,
/* 40440*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40443*/        OPC_RecordMemRef,
/* 40444*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 40445*/        OPC_CheckFoldableChainNode,
/* 40446*/        OPC_RecordChild1, // #2 = $src2
/* 40447*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40449*/        OPC_CheckPredicate, 9, // Predicate_load
/* 40451*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 40453*/        OPC_CheckType, MVT::v8i64,
/* 40455*/        OPC_MoveParent,
/* 40456*/        OPC_MoveParent,
/* 40457*/        OPC_MoveChild2,
/* 40458*/        OPC_CheckCondCode, ISD::SETEQ,
/* 40460*/        OPC_MoveParent,
/* 40461*/        OPC_MoveParent,
/* 40462*/        OPC_RecordChild1, // #3 = $mask
/* 40463*/        OPC_CheckType, MVT::v64i1,
/* 40465*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 40467*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40470*/        OPC_EmitMergeInputChains1_1,
/* 40471*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v64i1] } (X86setcc_commute:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40484*/      /*Scope*/ 52, /*->40537*/
/* 40485*/        OPC_MoveChild0,
/* 40486*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40489*/        OPC_MoveChild0,
/* 40490*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40493*/        OPC_RecordMemRef,
/* 40494*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 40495*/        OPC_CheckFoldableChainNode,
/* 40496*/        OPC_RecordChild1, // #1 = $src2
/* 40497*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40499*/        OPC_CheckPredicate, 9, // Predicate_load
/* 40501*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 40503*/        OPC_CheckType, MVT::v8i64,
/* 40505*/        OPC_MoveParent,
/* 40506*/        OPC_CheckType, MVT::v64i8,
/* 40508*/        OPC_MoveParent,
/* 40509*/        OPC_RecordChild1, // #2 = $src1
/* 40510*/        OPC_MoveChild2,
/* 40511*/        OPC_CheckCondCode, ISD::SETEQ,
/* 40513*/        OPC_MoveParent,
/* 40514*/        OPC_MoveParent,
/* 40515*/        OPC_RecordChild1, // #3 = $mask
/* 40516*/        OPC_CheckType, MVT::v64i1,
/* 40518*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 40520*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40523*/        OPC_EmitMergeInputChains1_0,
/* 40524*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v64i1] } (X86setcc_commute:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1, SETEQ:{ *:[Other] }), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40537*/      0, /*End of Scope*/
/* 40538*/    /*Scope*/ 56, /*->40595*/
/* 40539*/      OPC_RecordChild0, // #0 = $mask
/* 40540*/      OPC_MoveChild1,
/* 40541*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 40544*/      OPC_MoveChild0,
/* 40545*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40548*/      OPC_MoveChild0,
/* 40549*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40552*/      OPC_RecordMemRef,
/* 40553*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 40554*/      OPC_CheckFoldableChainNode,
/* 40555*/      OPC_RecordChild1, // #2 = $src2
/* 40556*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40558*/      OPC_CheckPredicate, 9, // Predicate_load
/* 40560*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 40562*/      OPC_CheckType, MVT::v4i64,
/* 40564*/      OPC_MoveParent,
/* 40565*/      OPC_CheckType, MVT::v32i8,
/* 40567*/      OPC_MoveParent,
/* 40568*/      OPC_RecordChild1, // #3 = $src1
/* 40569*/      OPC_MoveChild2,
/* 40570*/      OPC_CheckCondCode, ISD::SETEQ,
/* 40572*/      OPC_MoveParent,
/* 40573*/      OPC_MoveParent,
/* 40574*/      OPC_CheckType, MVT::v32i1,
/* 40576*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 40578*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40581*/      OPC_EmitMergeInputChains1_1,
/* 40582*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v32i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (X86setcc_commute:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40595*/    /*Scope*/ 112, /*->40708*/
/* 40596*/      OPC_MoveChild0,
/* 40597*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 40600*/      OPC_Scope, 52, /*->40654*/ // 2 children in Scope
/* 40602*/        OPC_RecordChild0, // #0 = $src1
/* 40603*/        OPC_CheckChild0Type, MVT::v32i8,
/* 40605*/        OPC_MoveChild1,
/* 40606*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40609*/        OPC_MoveChild0,
/* 40610*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40613*/        OPC_RecordMemRef,
/* 40614*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 40615*/        OPC_CheckFoldableChainNode,
/* 40616*/        OPC_RecordChild1, // #2 = $src2
/* 40617*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40619*/        OPC_CheckPredicate, 9, // Predicate_load
/* 40621*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 40623*/        OPC_CheckType, MVT::v4i64,
/* 40625*/        OPC_MoveParent,
/* 40626*/        OPC_MoveParent,
/* 40627*/        OPC_MoveChild2,
/* 40628*/        OPC_CheckCondCode, ISD::SETEQ,
/* 40630*/        OPC_MoveParent,
/* 40631*/        OPC_MoveParent,
/* 40632*/        OPC_RecordChild1, // #3 = $mask
/* 40633*/        OPC_CheckType, MVT::v32i1,
/* 40635*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 40637*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40640*/        OPC_EmitMergeInputChains1_1,
/* 40641*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (X86setcc_commute:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40654*/      /*Scope*/ 52, /*->40707*/
/* 40655*/        OPC_MoveChild0,
/* 40656*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40659*/        OPC_MoveChild0,
/* 40660*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40663*/        OPC_RecordMemRef,
/* 40664*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 40665*/        OPC_CheckFoldableChainNode,
/* 40666*/        OPC_RecordChild1, // #1 = $src2
/* 40667*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40669*/        OPC_CheckPredicate, 9, // Predicate_load
/* 40671*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 40673*/        OPC_CheckType, MVT::v4i64,
/* 40675*/        OPC_MoveParent,
/* 40676*/        OPC_CheckType, MVT::v32i8,
/* 40678*/        OPC_MoveParent,
/* 40679*/        OPC_RecordChild1, // #2 = $src1
/* 40680*/        OPC_MoveChild2,
/* 40681*/        OPC_CheckCondCode, ISD::SETEQ,
/* 40683*/        OPC_MoveParent,
/* 40684*/        OPC_MoveParent,
/* 40685*/        OPC_RecordChild1, // #3 = $mask
/* 40686*/        OPC_CheckType, MVT::v32i1,
/* 40688*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 40690*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40693*/        OPC_EmitMergeInputChains1_0,
/* 40694*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (X86setcc_commute:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1, SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40707*/      0, /*End of Scope*/
/* 40708*/    /*Scope*/ 56, /*->40765*/
/* 40709*/      OPC_RecordChild0, // #0 = $mask
/* 40710*/      OPC_MoveChild1,
/* 40711*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 40714*/      OPC_MoveChild0,
/* 40715*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40718*/      OPC_MoveChild0,
/* 40719*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40722*/      OPC_RecordMemRef,
/* 40723*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 40724*/      OPC_CheckFoldableChainNode,
/* 40725*/      OPC_RecordChild1, // #2 = $src2
/* 40726*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40728*/      OPC_CheckPredicate, 9, // Predicate_load
/* 40730*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 40732*/      OPC_CheckType, MVT::v2i64,
/* 40734*/      OPC_MoveParent,
/* 40735*/      OPC_CheckType, MVT::v16i8,
/* 40737*/      OPC_MoveParent,
/* 40738*/      OPC_RecordChild1, // #3 = $src1
/* 40739*/      OPC_MoveChild2,
/* 40740*/      OPC_CheckCondCode, ISD::SETEQ,
/* 40742*/      OPC_MoveParent,
/* 40743*/      OPC_MoveParent,
/* 40744*/      OPC_CheckType, MVT::v16i1,
/* 40746*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 40748*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40751*/      OPC_EmitMergeInputChains1_1,
/* 40752*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40765*/    /*Scope*/ 112, /*->40878*/
/* 40766*/      OPC_MoveChild0,
/* 40767*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 40770*/      OPC_Scope, 52, /*->40824*/ // 2 children in Scope
/* 40772*/        OPC_RecordChild0, // #0 = $src1
/* 40773*/        OPC_CheckChild0Type, MVT::v16i8,
/* 40775*/        OPC_MoveChild1,
/* 40776*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40779*/        OPC_MoveChild0,
/* 40780*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40783*/        OPC_RecordMemRef,
/* 40784*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 40785*/        OPC_CheckFoldableChainNode,
/* 40786*/        OPC_RecordChild1, // #2 = $src2
/* 40787*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40789*/        OPC_CheckPredicate, 9, // Predicate_load
/* 40791*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 40793*/        OPC_CheckType, MVT::v2i64,
/* 40795*/        OPC_MoveParent,
/* 40796*/        OPC_MoveParent,
/* 40797*/        OPC_MoveChild2,
/* 40798*/        OPC_CheckCondCode, ISD::SETEQ,
/* 40800*/        OPC_MoveParent,
/* 40801*/        OPC_MoveParent,
/* 40802*/        OPC_RecordChild1, // #3 = $mask
/* 40803*/        OPC_CheckType, MVT::v16i1,
/* 40805*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 40807*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40810*/        OPC_EmitMergeInputChains1_1,
/* 40811*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40824*/      /*Scope*/ 52, /*->40877*/
/* 40825*/        OPC_MoveChild0,
/* 40826*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40829*/        OPC_MoveChild0,
/* 40830*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40833*/        OPC_RecordMemRef,
/* 40834*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 40835*/        OPC_CheckFoldableChainNode,
/* 40836*/        OPC_RecordChild1, // #1 = $src2
/* 40837*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40839*/        OPC_CheckPredicate, 9, // Predicate_load
/* 40841*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 40843*/        OPC_CheckType, MVT::v2i64,
/* 40845*/        OPC_MoveParent,
/* 40846*/        OPC_CheckType, MVT::v16i8,
/* 40848*/        OPC_MoveParent,
/* 40849*/        OPC_RecordChild1, // #2 = $src1
/* 40850*/        OPC_MoveChild2,
/* 40851*/        OPC_CheckCondCode, ISD::SETEQ,
/* 40853*/        OPC_MoveParent,
/* 40854*/        OPC_MoveParent,
/* 40855*/        OPC_RecordChild1, // #3 = $mask
/* 40856*/        OPC_CheckType, MVT::v16i1,
/* 40858*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 40860*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40863*/        OPC_EmitMergeInputChains1_0,
/* 40864*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40877*/      0, /*End of Scope*/
/* 40878*/    /*Scope*/ 56, /*->40935*/
/* 40879*/      OPC_RecordChild0, // #0 = $mask
/* 40880*/      OPC_MoveChild1,
/* 40881*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 40884*/      OPC_MoveChild0,
/* 40885*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40888*/      OPC_MoveChild0,
/* 40889*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40892*/      OPC_RecordMemRef,
/* 40893*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 40894*/      OPC_CheckFoldableChainNode,
/* 40895*/      OPC_RecordChild1, // #2 = $src2
/* 40896*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40898*/      OPC_CheckPredicate, 9, // Predicate_load
/* 40900*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 40902*/      OPC_CheckType, MVT::v8i64,
/* 40904*/      OPC_MoveParent,
/* 40905*/      OPC_CheckType, MVT::v32i16,
/* 40907*/      OPC_MoveParent,
/* 40908*/      OPC_RecordChild1, // #3 = $src1
/* 40909*/      OPC_MoveChild2,
/* 40910*/      OPC_CheckCondCode, ISD::SETEQ,
/* 40912*/      OPC_MoveParent,
/* 40913*/      OPC_MoveParent,
/* 40914*/      OPC_CheckType, MVT::v32i1,
/* 40916*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 40918*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40921*/      OPC_EmitMergeInputChains1_1,
/* 40922*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v32i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (X86setcc_commute:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40935*/    /*Scope*/ 112, /*->41048*/
/* 40936*/      OPC_MoveChild0,
/* 40937*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 40940*/      OPC_Scope, 52, /*->40994*/ // 2 children in Scope
/* 40942*/        OPC_RecordChild0, // #0 = $src1
/* 40943*/        OPC_CheckChild0Type, MVT::v32i16,
/* 40945*/        OPC_MoveChild1,
/* 40946*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40949*/        OPC_MoveChild0,
/* 40950*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40953*/        OPC_RecordMemRef,
/* 40954*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 40955*/        OPC_CheckFoldableChainNode,
/* 40956*/        OPC_RecordChild1, // #2 = $src2
/* 40957*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40959*/        OPC_CheckPredicate, 9, // Predicate_load
/* 40961*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 40963*/        OPC_CheckType, MVT::v8i64,
/* 40965*/        OPC_MoveParent,
/* 40966*/        OPC_MoveParent,
/* 40967*/        OPC_MoveChild2,
/* 40968*/        OPC_CheckCondCode, ISD::SETEQ,
/* 40970*/        OPC_MoveParent,
/* 40971*/        OPC_MoveParent,
/* 40972*/        OPC_RecordChild1, // #3 = $mask
/* 40973*/        OPC_CheckType, MVT::v32i1,
/* 40975*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 40977*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 40980*/        OPC_EmitMergeInputChains1_1,
/* 40981*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (X86setcc_commute:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 40994*/      /*Scope*/ 52, /*->41047*/
/* 40995*/        OPC_MoveChild0,
/* 40996*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 40999*/        OPC_MoveChild0,
/* 41000*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41003*/        OPC_RecordMemRef,
/* 41004*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 41005*/        OPC_CheckFoldableChainNode,
/* 41006*/        OPC_RecordChild1, // #1 = $src2
/* 41007*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41009*/        OPC_CheckPredicate, 9, // Predicate_load
/* 41011*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 41013*/        OPC_CheckType, MVT::v8i64,
/* 41015*/        OPC_MoveParent,
/* 41016*/        OPC_CheckType, MVT::v32i16,
/* 41018*/        OPC_MoveParent,
/* 41019*/        OPC_RecordChild1, // #2 = $src1
/* 41020*/        OPC_MoveChild2,
/* 41021*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41023*/        OPC_MoveParent,
/* 41024*/        OPC_MoveParent,
/* 41025*/        OPC_RecordChild1, // #3 = $mask
/* 41026*/        OPC_CheckType, MVT::v32i1,
/* 41028*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 41030*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41033*/        OPC_EmitMergeInputChains1_0,
/* 41034*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v32i1] } (X86setcc_commute:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1, SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41047*/      0, /*End of Scope*/
/* 41048*/    /*Scope*/ 56, /*->41105*/
/* 41049*/      OPC_RecordChild0, // #0 = $mask
/* 41050*/      OPC_MoveChild1,
/* 41051*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41054*/      OPC_MoveChild0,
/* 41055*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41058*/      OPC_MoveChild0,
/* 41059*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41062*/      OPC_RecordMemRef,
/* 41063*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 41064*/      OPC_CheckFoldableChainNode,
/* 41065*/      OPC_RecordChild1, // #2 = $src2
/* 41066*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41068*/      OPC_CheckPredicate, 9, // Predicate_load
/* 41070*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 41072*/      OPC_CheckType, MVT::v4i64,
/* 41074*/      OPC_MoveParent,
/* 41075*/      OPC_CheckType, MVT::v16i16,
/* 41077*/      OPC_MoveParent,
/* 41078*/      OPC_RecordChild1, // #3 = $src1
/* 41079*/      OPC_MoveChild2,
/* 41080*/      OPC_CheckCondCode, ISD::SETEQ,
/* 41082*/      OPC_MoveParent,
/* 41083*/      OPC_MoveParent,
/* 41084*/      OPC_CheckType, MVT::v16i1,
/* 41086*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 41088*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41091*/      OPC_EmitMergeInputChains1_1,
/* 41092*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41105*/    /*Scope*/ 112, /*->41218*/
/* 41106*/      OPC_MoveChild0,
/* 41107*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41110*/      OPC_Scope, 52, /*->41164*/ // 2 children in Scope
/* 41112*/        OPC_RecordChild0, // #0 = $src1
/* 41113*/        OPC_CheckChild0Type, MVT::v16i16,
/* 41115*/        OPC_MoveChild1,
/* 41116*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41119*/        OPC_MoveChild0,
/* 41120*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41123*/        OPC_RecordMemRef,
/* 41124*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 41125*/        OPC_CheckFoldableChainNode,
/* 41126*/        OPC_RecordChild1, // #2 = $src2
/* 41127*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41129*/        OPC_CheckPredicate, 9, // Predicate_load
/* 41131*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 41133*/        OPC_CheckType, MVT::v4i64,
/* 41135*/        OPC_MoveParent,
/* 41136*/        OPC_MoveParent,
/* 41137*/        OPC_MoveChild2,
/* 41138*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41140*/        OPC_MoveParent,
/* 41141*/        OPC_MoveParent,
/* 41142*/        OPC_RecordChild1, // #3 = $mask
/* 41143*/        OPC_CheckType, MVT::v16i1,
/* 41145*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 41147*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41150*/        OPC_EmitMergeInputChains1_1,
/* 41151*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41164*/      /*Scope*/ 52, /*->41217*/
/* 41165*/        OPC_MoveChild0,
/* 41166*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41169*/        OPC_MoveChild0,
/* 41170*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41173*/        OPC_RecordMemRef,
/* 41174*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 41175*/        OPC_CheckFoldableChainNode,
/* 41176*/        OPC_RecordChild1, // #1 = $src2
/* 41177*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41179*/        OPC_CheckPredicate, 9, // Predicate_load
/* 41181*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 41183*/        OPC_CheckType, MVT::v4i64,
/* 41185*/        OPC_MoveParent,
/* 41186*/        OPC_CheckType, MVT::v16i16,
/* 41188*/        OPC_MoveParent,
/* 41189*/        OPC_RecordChild1, // #2 = $src1
/* 41190*/        OPC_MoveChild2,
/* 41191*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41193*/        OPC_MoveParent,
/* 41194*/        OPC_MoveParent,
/* 41195*/        OPC_RecordChild1, // #3 = $mask
/* 41196*/        OPC_CheckType, MVT::v16i1,
/* 41198*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 41200*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41203*/        OPC_EmitMergeInputChains1_0,
/* 41204*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41217*/      0, /*End of Scope*/
/* 41218*/    /*Scope*/ 56, /*->41275*/
/* 41219*/      OPC_RecordChild0, // #0 = $mask
/* 41220*/      OPC_MoveChild1,
/* 41221*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41224*/      OPC_MoveChild0,
/* 41225*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41228*/      OPC_MoveChild0,
/* 41229*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41232*/      OPC_RecordMemRef,
/* 41233*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 41234*/      OPC_CheckFoldableChainNode,
/* 41235*/      OPC_RecordChild1, // #2 = $src2
/* 41236*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41238*/      OPC_CheckPredicate, 9, // Predicate_load
/* 41240*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 41242*/      OPC_CheckType, MVT::v2i64,
/* 41244*/      OPC_MoveParent,
/* 41245*/      OPC_CheckType, MVT::v8i16,
/* 41247*/      OPC_MoveParent,
/* 41248*/      OPC_RecordChild1, // #3 = $src1
/* 41249*/      OPC_MoveChild2,
/* 41250*/      OPC_CheckCondCode, ISD::SETEQ,
/* 41252*/      OPC_MoveParent,
/* 41253*/      OPC_MoveParent,
/* 41254*/      OPC_CheckType, MVT::v8i1,
/* 41256*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 41258*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41261*/      OPC_EmitMergeInputChains1_1,
/* 41262*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41275*/    /*Scope*/ 112, /*->41388*/
/* 41276*/      OPC_MoveChild0,
/* 41277*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41280*/      OPC_Scope, 52, /*->41334*/ // 2 children in Scope
/* 41282*/        OPC_RecordChild0, // #0 = $src1
/* 41283*/        OPC_CheckChild0Type, MVT::v8i16,
/* 41285*/        OPC_MoveChild1,
/* 41286*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41289*/        OPC_MoveChild0,
/* 41290*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41293*/        OPC_RecordMemRef,
/* 41294*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 41295*/        OPC_CheckFoldableChainNode,
/* 41296*/        OPC_RecordChild1, // #2 = $src2
/* 41297*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41299*/        OPC_CheckPredicate, 9, // Predicate_load
/* 41301*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 41303*/        OPC_CheckType, MVT::v2i64,
/* 41305*/        OPC_MoveParent,
/* 41306*/        OPC_MoveParent,
/* 41307*/        OPC_MoveChild2,
/* 41308*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41310*/        OPC_MoveParent,
/* 41311*/        OPC_MoveParent,
/* 41312*/        OPC_RecordChild1, // #3 = $mask
/* 41313*/        OPC_CheckType, MVT::v8i1,
/* 41315*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 41317*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41320*/        OPC_EmitMergeInputChains1_1,
/* 41321*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41334*/      /*Scope*/ 52, /*->41387*/
/* 41335*/        OPC_MoveChild0,
/* 41336*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41339*/        OPC_MoveChild0,
/* 41340*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41343*/        OPC_RecordMemRef,
/* 41344*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 41345*/        OPC_CheckFoldableChainNode,
/* 41346*/        OPC_RecordChild1, // #1 = $src2
/* 41347*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41349*/        OPC_CheckPredicate, 9, // Predicate_load
/* 41351*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 41353*/        OPC_CheckType, MVT::v2i64,
/* 41355*/        OPC_MoveParent,
/* 41356*/        OPC_CheckType, MVT::v8i16,
/* 41358*/        OPC_MoveParent,
/* 41359*/        OPC_RecordChild1, // #2 = $src1
/* 41360*/        OPC_MoveChild2,
/* 41361*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41363*/        OPC_MoveParent,
/* 41364*/        OPC_MoveParent,
/* 41365*/        OPC_RecordChild1, // #3 = $mask
/* 41366*/        OPC_CheckType, MVT::v8i1,
/* 41368*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 41370*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41373*/        OPC_EmitMergeInputChains1_0,
/* 41374*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41387*/      0, /*End of Scope*/
/* 41388*/    /*Scope*/ 56, /*->41445*/
/* 41389*/      OPC_RecordChild0, // #0 = $mask
/* 41390*/      OPC_MoveChild1,
/* 41391*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41394*/      OPC_MoveChild0,
/* 41395*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41398*/      OPC_MoveChild0,
/* 41399*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41402*/      OPC_RecordMemRef,
/* 41403*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 41404*/      OPC_CheckFoldableChainNode,
/* 41405*/      OPC_RecordChild1, // #2 = $src2
/* 41406*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41408*/      OPC_CheckPredicate, 9, // Predicate_load
/* 41410*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 41412*/      OPC_CheckType, MVT::v8i64,
/* 41414*/      OPC_MoveParent,
/* 41415*/      OPC_CheckType, MVT::v16i32,
/* 41417*/      OPC_MoveParent,
/* 41418*/      OPC_RecordChild1, // #3 = $src1
/* 41419*/      OPC_MoveChild2,
/* 41420*/      OPC_CheckCondCode, ISD::SETEQ,
/* 41422*/      OPC_MoveParent,
/* 41423*/      OPC_MoveParent,
/* 41424*/      OPC_CheckType, MVT::v16i1,
/* 41426*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 41428*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41431*/      OPC_EmitMergeInputChains1_1,
/* 41432*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41445*/    /*Scope*/ 112, /*->41558*/
/* 41446*/      OPC_MoveChild0,
/* 41447*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41450*/      OPC_Scope, 52, /*->41504*/ // 2 children in Scope
/* 41452*/        OPC_RecordChild0, // #0 = $src1
/* 41453*/        OPC_CheckChild0Type, MVT::v16i32,
/* 41455*/        OPC_MoveChild1,
/* 41456*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41459*/        OPC_MoveChild0,
/* 41460*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41463*/        OPC_RecordMemRef,
/* 41464*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 41465*/        OPC_CheckFoldableChainNode,
/* 41466*/        OPC_RecordChild1, // #2 = $src2
/* 41467*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41469*/        OPC_CheckPredicate, 9, // Predicate_load
/* 41471*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 41473*/        OPC_CheckType, MVT::v8i64,
/* 41475*/        OPC_MoveParent,
/* 41476*/        OPC_MoveParent,
/* 41477*/        OPC_MoveChild2,
/* 41478*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41480*/        OPC_MoveParent,
/* 41481*/        OPC_MoveParent,
/* 41482*/        OPC_RecordChild1, // #3 = $mask
/* 41483*/        OPC_CheckType, MVT::v16i1,
/* 41485*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 41487*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41490*/        OPC_EmitMergeInputChains1_1,
/* 41491*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41504*/      /*Scope*/ 52, /*->41557*/
/* 41505*/        OPC_MoveChild0,
/* 41506*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41509*/        OPC_MoveChild0,
/* 41510*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41513*/        OPC_RecordMemRef,
/* 41514*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 41515*/        OPC_CheckFoldableChainNode,
/* 41516*/        OPC_RecordChild1, // #1 = $src2
/* 41517*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41519*/        OPC_CheckPredicate, 9, // Predicate_load
/* 41521*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 41523*/        OPC_CheckType, MVT::v8i64,
/* 41525*/        OPC_MoveParent,
/* 41526*/        OPC_CheckType, MVT::v16i32,
/* 41528*/        OPC_MoveParent,
/* 41529*/        OPC_RecordChild1, // #2 = $src1
/* 41530*/        OPC_MoveChild2,
/* 41531*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41533*/        OPC_MoveParent,
/* 41534*/        OPC_MoveParent,
/* 41535*/        OPC_RecordChild1, // #3 = $mask
/* 41536*/        OPC_CheckType, MVT::v16i1,
/* 41538*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 41540*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41543*/        OPC_EmitMergeInputChains1_0,
/* 41544*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41557*/      0, /*End of Scope*/
/* 41558*/    /*Scope*/ 54, /*->41613*/
/* 41559*/      OPC_RecordChild0, // #0 = $mask
/* 41560*/      OPC_MoveChild1,
/* 41561*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41564*/      OPC_MoveChild0,
/* 41565*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 41568*/      OPC_MoveChild0,
/* 41569*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41572*/      OPC_RecordMemRef,
/* 41573*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 41574*/      OPC_CheckFoldableChainNode,
/* 41575*/      OPC_RecordChild1, // #2 = $src2
/* 41576*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41578*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/* 41580*/      OPC_CheckType, MVT::i32,
/* 41582*/      OPC_MoveParent,
/* 41583*/      OPC_CheckType, MVT::v16i32,
/* 41585*/      OPC_MoveParent,
/* 41586*/      OPC_RecordChild1, // #3 = $src1
/* 41587*/      OPC_MoveChild2,
/* 41588*/      OPC_CheckCondCode, ISD::SETEQ,
/* 41590*/      OPC_MoveParent,
/* 41591*/      OPC_MoveParent,
/* 41592*/      OPC_CheckType, MVT::v16i1,
/* 41594*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 41596*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41599*/      OPC_EmitMergeInputChains1_1,
/* 41600*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41613*/    /*Scope*/ 108, /*->41722*/
/* 41614*/      OPC_MoveChild0,
/* 41615*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41618*/      OPC_Scope, 50, /*->41670*/ // 2 children in Scope
/* 41620*/        OPC_RecordChild0, // #0 = $src1
/* 41621*/        OPC_CheckChild0Type, MVT::v16i32,
/* 41623*/        OPC_MoveChild1,
/* 41624*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 41627*/        OPC_MoveChild0,
/* 41628*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41631*/        OPC_RecordMemRef,
/* 41632*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 41633*/        OPC_CheckFoldableChainNode,
/* 41634*/        OPC_RecordChild1, // #2 = $src2
/* 41635*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41637*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 41639*/        OPC_CheckType, MVT::i32,
/* 41641*/        OPC_MoveParent,
/* 41642*/        OPC_MoveParent,
/* 41643*/        OPC_MoveChild2,
/* 41644*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41646*/        OPC_MoveParent,
/* 41647*/        OPC_MoveParent,
/* 41648*/        OPC_RecordChild1, // #3 = $mask
/* 41649*/        OPC_CheckType, MVT::v16i1,
/* 41651*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 41653*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41656*/        OPC_EmitMergeInputChains1_1,
/* 41657*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41670*/      /*Scope*/ 50, /*->41721*/
/* 41671*/        OPC_MoveChild0,
/* 41672*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 41675*/        OPC_MoveChild0,
/* 41676*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41679*/        OPC_RecordMemRef,
/* 41680*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 41681*/        OPC_CheckFoldableChainNode,
/* 41682*/        OPC_RecordChild1, // #1 = $src2
/* 41683*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41685*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 41687*/        OPC_CheckType, MVT::i32,
/* 41689*/        OPC_MoveParent,
/* 41690*/        OPC_CheckType, MVT::v16i32,
/* 41692*/        OPC_MoveParent,
/* 41693*/        OPC_RecordChild1, // #2 = $src1
/* 41694*/        OPC_MoveChild2,
/* 41695*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41697*/        OPC_MoveParent,
/* 41698*/        OPC_MoveParent,
/* 41699*/        OPC_RecordChild1, // #3 = $mask
/* 41700*/        OPC_CheckType, MVT::v16i1,
/* 41702*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 41704*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41707*/        OPC_EmitMergeInputChains1_0,
/* 41708*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41721*/      0, /*End of Scope*/
/* 41722*/    /*Scope*/ 56, /*->41779*/
/* 41723*/      OPC_RecordChild0, // #0 = $mask
/* 41724*/      OPC_MoveChild1,
/* 41725*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41728*/      OPC_MoveChild0,
/* 41729*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41732*/      OPC_MoveChild0,
/* 41733*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41736*/      OPC_RecordMemRef,
/* 41737*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 41738*/      OPC_CheckFoldableChainNode,
/* 41739*/      OPC_RecordChild1, // #2 = $src2
/* 41740*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41742*/      OPC_CheckPredicate, 9, // Predicate_load
/* 41744*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 41746*/      OPC_CheckType, MVT::v4i64,
/* 41748*/      OPC_MoveParent,
/* 41749*/      OPC_CheckType, MVT::v8i32,
/* 41751*/      OPC_MoveParent,
/* 41752*/      OPC_RecordChild1, // #3 = $src1
/* 41753*/      OPC_MoveChild2,
/* 41754*/      OPC_CheckCondCode, ISD::SETEQ,
/* 41756*/      OPC_MoveParent,
/* 41757*/      OPC_MoveParent,
/* 41758*/      OPC_CheckType, MVT::v8i1,
/* 41760*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 41762*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41765*/      OPC_EmitMergeInputChains1_1,
/* 41766*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41779*/    /*Scope*/ 112, /*->41892*/
/* 41780*/      OPC_MoveChild0,
/* 41781*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41784*/      OPC_Scope, 52, /*->41838*/ // 2 children in Scope
/* 41786*/        OPC_RecordChild0, // #0 = $src1
/* 41787*/        OPC_CheckChild0Type, MVT::v8i32,
/* 41789*/        OPC_MoveChild1,
/* 41790*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41793*/        OPC_MoveChild0,
/* 41794*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41797*/        OPC_RecordMemRef,
/* 41798*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 41799*/        OPC_CheckFoldableChainNode,
/* 41800*/        OPC_RecordChild1, // #2 = $src2
/* 41801*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41803*/        OPC_CheckPredicate, 9, // Predicate_load
/* 41805*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 41807*/        OPC_CheckType, MVT::v4i64,
/* 41809*/        OPC_MoveParent,
/* 41810*/        OPC_MoveParent,
/* 41811*/        OPC_MoveChild2,
/* 41812*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41814*/        OPC_MoveParent,
/* 41815*/        OPC_MoveParent,
/* 41816*/        OPC_RecordChild1, // #3 = $mask
/* 41817*/        OPC_CheckType, MVT::v8i1,
/* 41819*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 41821*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41824*/        OPC_EmitMergeInputChains1_1,
/* 41825*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41838*/      /*Scope*/ 52, /*->41891*/
/* 41839*/        OPC_MoveChild0,
/* 41840*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41843*/        OPC_MoveChild0,
/* 41844*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41847*/        OPC_RecordMemRef,
/* 41848*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 41849*/        OPC_CheckFoldableChainNode,
/* 41850*/        OPC_RecordChild1, // #1 = $src2
/* 41851*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41853*/        OPC_CheckPredicate, 9, // Predicate_load
/* 41855*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 41857*/        OPC_CheckType, MVT::v4i64,
/* 41859*/        OPC_MoveParent,
/* 41860*/        OPC_CheckType, MVT::v8i32,
/* 41862*/        OPC_MoveParent,
/* 41863*/        OPC_RecordChild1, // #2 = $src1
/* 41864*/        OPC_MoveChild2,
/* 41865*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41867*/        OPC_MoveParent,
/* 41868*/        OPC_MoveParent,
/* 41869*/        OPC_RecordChild1, // #3 = $mask
/* 41870*/        OPC_CheckType, MVT::v8i1,
/* 41872*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 41874*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41877*/        OPC_EmitMergeInputChains1_0,
/* 41878*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41891*/      0, /*End of Scope*/
/* 41892*/    /*Scope*/ 54, /*->41947*/
/* 41893*/      OPC_RecordChild0, // #0 = $mask
/* 41894*/      OPC_MoveChild1,
/* 41895*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41898*/      OPC_MoveChild0,
/* 41899*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 41902*/      OPC_MoveChild0,
/* 41903*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41906*/      OPC_RecordMemRef,
/* 41907*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 41908*/      OPC_CheckFoldableChainNode,
/* 41909*/      OPC_RecordChild1, // #2 = $src2
/* 41910*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41912*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/* 41914*/      OPC_CheckType, MVT::i32,
/* 41916*/      OPC_MoveParent,
/* 41917*/      OPC_CheckType, MVT::v8i32,
/* 41919*/      OPC_MoveParent,
/* 41920*/      OPC_RecordChild1, // #3 = $src1
/* 41921*/      OPC_MoveChild2,
/* 41922*/      OPC_CheckCondCode, ISD::SETEQ,
/* 41924*/      OPC_MoveParent,
/* 41925*/      OPC_MoveParent,
/* 41926*/      OPC_CheckType, MVT::v8i1,
/* 41928*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 41930*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41933*/      OPC_EmitMergeInputChains1_1,
/* 41934*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 41947*/    /*Scope*/ 108, /*->42056*/
/* 41948*/      OPC_MoveChild0,
/* 41949*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 41952*/      OPC_Scope, 50, /*->42004*/ // 2 children in Scope
/* 41954*/        OPC_RecordChild0, // #0 = $src1
/* 41955*/        OPC_CheckChild0Type, MVT::v8i32,
/* 41957*/        OPC_MoveChild1,
/* 41958*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 41961*/        OPC_MoveChild0,
/* 41962*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 41965*/        OPC_RecordMemRef,
/* 41966*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 41967*/        OPC_CheckFoldableChainNode,
/* 41968*/        OPC_RecordChild1, // #2 = $src2
/* 41969*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 41971*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 41973*/        OPC_CheckType, MVT::i32,
/* 41975*/        OPC_MoveParent,
/* 41976*/        OPC_MoveParent,
/* 41977*/        OPC_MoveChild2,
/* 41978*/        OPC_CheckCondCode, ISD::SETEQ,
/* 41980*/        OPC_MoveParent,
/* 41981*/        OPC_MoveParent,
/* 41982*/        OPC_RecordChild1, // #3 = $mask
/* 41983*/        OPC_CheckType, MVT::v8i1,
/* 41985*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 41987*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 41990*/        OPC_EmitMergeInputChains1_1,
/* 41991*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42004*/      /*Scope*/ 50, /*->42055*/
/* 42005*/        OPC_MoveChild0,
/* 42006*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42009*/        OPC_MoveChild0,
/* 42010*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42013*/        OPC_RecordMemRef,
/* 42014*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 42015*/        OPC_CheckFoldableChainNode,
/* 42016*/        OPC_RecordChild1, // #1 = $src2
/* 42017*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42019*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 42021*/        OPC_CheckType, MVT::i32,
/* 42023*/        OPC_MoveParent,
/* 42024*/        OPC_CheckType, MVT::v8i32,
/* 42026*/        OPC_MoveParent,
/* 42027*/        OPC_RecordChild1, // #2 = $src1
/* 42028*/        OPC_MoveChild2,
/* 42029*/        OPC_CheckCondCode, ISD::SETEQ,
/* 42031*/        OPC_MoveParent,
/* 42032*/        OPC_MoveParent,
/* 42033*/        OPC_RecordChild1, // #3 = $mask
/* 42034*/        OPC_CheckType, MVT::v8i1,
/* 42036*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42038*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42041*/        OPC_EmitMergeInputChains1_0,
/* 42042*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42055*/      0, /*End of Scope*/
/* 42056*/    /*Scope*/ 56, /*->42113*/
/* 42057*/      OPC_RecordChild0, // #0 = $mask
/* 42058*/      OPC_MoveChild1,
/* 42059*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 42062*/      OPC_MoveChild0,
/* 42063*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 42066*/      OPC_MoveChild0,
/* 42067*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42070*/      OPC_RecordMemRef,
/* 42071*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 42072*/      OPC_CheckFoldableChainNode,
/* 42073*/      OPC_RecordChild1, // #2 = $src2
/* 42074*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42076*/      OPC_CheckPredicate, 9, // Predicate_load
/* 42078*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 42080*/      OPC_CheckType, MVT::v2i64,
/* 42082*/      OPC_MoveParent,
/* 42083*/      OPC_CheckType, MVT::v4i32,
/* 42085*/      OPC_MoveParent,
/* 42086*/      OPC_RecordChild1, // #3 = $src1
/* 42087*/      OPC_MoveChild2,
/* 42088*/      OPC_CheckCondCode, ISD::SETEQ,
/* 42090*/      OPC_MoveParent,
/* 42091*/      OPC_MoveParent,
/* 42092*/      OPC_CheckType, MVT::v4i1,
/* 42094*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42096*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42099*/      OPC_EmitMergeInputChains1_1,
/* 42100*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42113*/    /*Scope*/ 112, /*->42226*/
/* 42114*/      OPC_MoveChild0,
/* 42115*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 42118*/      OPC_Scope, 52, /*->42172*/ // 2 children in Scope
/* 42120*/        OPC_RecordChild0, // #0 = $src1
/* 42121*/        OPC_CheckChild0Type, MVT::v4i32,
/* 42123*/        OPC_MoveChild1,
/* 42124*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 42127*/        OPC_MoveChild0,
/* 42128*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42131*/        OPC_RecordMemRef,
/* 42132*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 42133*/        OPC_CheckFoldableChainNode,
/* 42134*/        OPC_RecordChild1, // #2 = $src2
/* 42135*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42137*/        OPC_CheckPredicate, 9, // Predicate_load
/* 42139*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 42141*/        OPC_CheckType, MVT::v2i64,
/* 42143*/        OPC_MoveParent,
/* 42144*/        OPC_MoveParent,
/* 42145*/        OPC_MoveChild2,
/* 42146*/        OPC_CheckCondCode, ISD::SETEQ,
/* 42148*/        OPC_MoveParent,
/* 42149*/        OPC_MoveParent,
/* 42150*/        OPC_RecordChild1, // #3 = $mask
/* 42151*/        OPC_CheckType, MVT::v4i1,
/* 42153*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42155*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42158*/        OPC_EmitMergeInputChains1_1,
/* 42159*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42172*/      /*Scope*/ 52, /*->42225*/
/* 42173*/        OPC_MoveChild0,
/* 42174*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 42177*/        OPC_MoveChild0,
/* 42178*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42181*/        OPC_RecordMemRef,
/* 42182*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 42183*/        OPC_CheckFoldableChainNode,
/* 42184*/        OPC_RecordChild1, // #1 = $src2
/* 42185*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42187*/        OPC_CheckPredicate, 9, // Predicate_load
/* 42189*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 42191*/        OPC_CheckType, MVT::v2i64,
/* 42193*/        OPC_MoveParent,
/* 42194*/        OPC_CheckType, MVT::v4i32,
/* 42196*/        OPC_MoveParent,
/* 42197*/        OPC_RecordChild1, // #2 = $src1
/* 42198*/        OPC_MoveChild2,
/* 42199*/        OPC_CheckCondCode, ISD::SETEQ,
/* 42201*/        OPC_MoveParent,
/* 42202*/        OPC_MoveParent,
/* 42203*/        OPC_RecordChild1, // #3 = $mask
/* 42204*/        OPC_CheckType, MVT::v4i1,
/* 42206*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42208*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42211*/        OPC_EmitMergeInputChains1_0,
/* 42212*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42225*/      0, /*End of Scope*/
/* 42226*/    /*Scope*/ 54, /*->42281*/
/* 42227*/      OPC_RecordChild0, // #0 = $mask
/* 42228*/      OPC_MoveChild1,
/* 42229*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 42232*/      OPC_MoveChild0,
/* 42233*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42236*/      OPC_MoveChild0,
/* 42237*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42240*/      OPC_RecordMemRef,
/* 42241*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 42242*/      OPC_CheckFoldableChainNode,
/* 42243*/      OPC_RecordChild1, // #2 = $src2
/* 42244*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42246*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/* 42248*/      OPC_CheckType, MVT::i32,
/* 42250*/      OPC_MoveParent,
/* 42251*/      OPC_CheckType, MVT::v4i32,
/* 42253*/      OPC_MoveParent,
/* 42254*/      OPC_RecordChild1, // #3 = $src1
/* 42255*/      OPC_MoveChild2,
/* 42256*/      OPC_CheckCondCode, ISD::SETEQ,
/* 42258*/      OPC_MoveParent,
/* 42259*/      OPC_MoveParent,
/* 42260*/      OPC_CheckType, MVT::v4i1,
/* 42262*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42264*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42267*/      OPC_EmitMergeInputChains1_1,
/* 42268*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42281*/    /*Scope*/ 108, /*->42390*/
/* 42282*/      OPC_MoveChild0,
/* 42283*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 42286*/      OPC_Scope, 50, /*->42338*/ // 2 children in Scope
/* 42288*/        OPC_RecordChild0, // #0 = $src1
/* 42289*/        OPC_CheckChild0Type, MVT::v4i32,
/* 42291*/        OPC_MoveChild1,
/* 42292*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42295*/        OPC_MoveChild0,
/* 42296*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42299*/        OPC_RecordMemRef,
/* 42300*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 42301*/        OPC_CheckFoldableChainNode,
/* 42302*/        OPC_RecordChild1, // #2 = $src2
/* 42303*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42305*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 42307*/        OPC_CheckType, MVT::i32,
/* 42309*/        OPC_MoveParent,
/* 42310*/        OPC_MoveParent,
/* 42311*/        OPC_MoveChild2,
/* 42312*/        OPC_CheckCondCode, ISD::SETEQ,
/* 42314*/        OPC_MoveParent,
/* 42315*/        OPC_MoveParent,
/* 42316*/        OPC_RecordChild1, // #3 = $mask
/* 42317*/        OPC_CheckType, MVT::v4i1,
/* 42319*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42321*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42324*/        OPC_EmitMergeInputChains1_1,
/* 42325*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42338*/      /*Scope*/ 50, /*->42389*/
/* 42339*/        OPC_MoveChild0,
/* 42340*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42343*/        OPC_MoveChild0,
/* 42344*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42347*/        OPC_RecordMemRef,
/* 42348*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 42349*/        OPC_CheckFoldableChainNode,
/* 42350*/        OPC_RecordChild1, // #1 = $src2
/* 42351*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42353*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 42355*/        OPC_CheckType, MVT::i32,
/* 42357*/        OPC_MoveParent,
/* 42358*/        OPC_CheckType, MVT::v4i32,
/* 42360*/        OPC_MoveParent,
/* 42361*/        OPC_RecordChild1, // #2 = $src1
/* 42362*/        OPC_MoveChild2,
/* 42363*/        OPC_CheckCondCode, ISD::SETEQ,
/* 42365*/        OPC_MoveParent,
/* 42366*/        OPC_MoveParent,
/* 42367*/        OPC_RecordChild1, // #3 = $mask
/* 42368*/        OPC_CheckType, MVT::v4i1,
/* 42370*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42372*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42375*/        OPC_EmitMergeInputChains1_0,
/* 42376*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42389*/      0, /*End of Scope*/
/* 42390*/    /*Scope*/ 54, /*->42445*/
/* 42391*/      OPC_RecordChild0, // #0 = $mask
/* 42392*/      OPC_MoveChild1,
/* 42393*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 42396*/      OPC_MoveChild0,
/* 42397*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42400*/      OPC_MoveChild0,
/* 42401*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42404*/      OPC_RecordMemRef,
/* 42405*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 42406*/      OPC_CheckFoldableChainNode,
/* 42407*/      OPC_RecordChild1, // #2 = $src2
/* 42408*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42410*/      OPC_CheckPredicate, 9, // Predicate_load
/* 42412*/      OPC_CheckType, MVT::i64,
/* 42414*/      OPC_MoveParent,
/* 42415*/      OPC_CheckType, MVT::v8i64,
/* 42417*/      OPC_MoveParent,
/* 42418*/      OPC_RecordChild1, // #3 = $src1
/* 42419*/      OPC_MoveChild2,
/* 42420*/      OPC_CheckCondCode, ISD::SETEQ,
/* 42422*/      OPC_MoveParent,
/* 42423*/      OPC_MoveParent,
/* 42424*/      OPC_CheckType, MVT::v8i1,
/* 42426*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 42428*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42431*/      OPC_EmitMergeInputChains1_1,
/* 42432*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42445*/    /*Scope*/ 108, /*->42554*/
/* 42446*/      OPC_MoveChild0,
/* 42447*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 42450*/      OPC_Scope, 50, /*->42502*/ // 2 children in Scope
/* 42452*/        OPC_RecordChild0, // #0 = $src1
/* 42453*/        OPC_CheckChild0Type, MVT::v8i64,
/* 42455*/        OPC_MoveChild1,
/* 42456*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42459*/        OPC_MoveChild0,
/* 42460*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42463*/        OPC_RecordMemRef,
/* 42464*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 42465*/        OPC_CheckFoldableChainNode,
/* 42466*/        OPC_RecordChild1, // #2 = $src2
/* 42467*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42469*/        OPC_CheckPredicate, 9, // Predicate_load
/* 42471*/        OPC_CheckType, MVT::i64,
/* 42473*/        OPC_MoveParent,
/* 42474*/        OPC_MoveParent,
/* 42475*/        OPC_MoveChild2,
/* 42476*/        OPC_CheckCondCode, ISD::SETEQ,
/* 42478*/        OPC_MoveParent,
/* 42479*/        OPC_MoveParent,
/* 42480*/        OPC_RecordChild1, // #3 = $mask
/* 42481*/        OPC_CheckType, MVT::v8i1,
/* 42483*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 42485*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42488*/        OPC_EmitMergeInputChains1_1,
/* 42489*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42502*/      /*Scope*/ 50, /*->42553*/
/* 42503*/        OPC_MoveChild0,
/* 42504*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42507*/        OPC_MoveChild0,
/* 42508*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42511*/        OPC_RecordMemRef,
/* 42512*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 42513*/        OPC_CheckFoldableChainNode,
/* 42514*/        OPC_RecordChild1, // #1 = $src2
/* 42515*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42517*/        OPC_CheckPredicate, 9, // Predicate_load
/* 42519*/        OPC_CheckType, MVT::i64,
/* 42521*/        OPC_MoveParent,
/* 42522*/        OPC_CheckType, MVT::v8i64,
/* 42524*/        OPC_MoveParent,
/* 42525*/        OPC_RecordChild1, // #2 = $src1
/* 42526*/        OPC_MoveChild2,
/* 42527*/        OPC_CheckCondCode, ISD::SETEQ,
/* 42529*/        OPC_MoveParent,
/* 42530*/        OPC_MoveParent,
/* 42531*/        OPC_RecordChild1, // #3 = $mask
/* 42532*/        OPC_CheckType, MVT::v8i1,
/* 42534*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 42536*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42539*/        OPC_EmitMergeInputChains1_0,
/* 42540*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42553*/      0, /*End of Scope*/
/* 42554*/    /*Scope*/ 54, /*->42609*/
/* 42555*/      OPC_RecordChild0, // #0 = $mask
/* 42556*/      OPC_MoveChild1,
/* 42557*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 42560*/      OPC_MoveChild0,
/* 42561*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42564*/      OPC_MoveChild0,
/* 42565*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42568*/      OPC_RecordMemRef,
/* 42569*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 42570*/      OPC_CheckFoldableChainNode,
/* 42571*/      OPC_RecordChild1, // #2 = $src2
/* 42572*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42574*/      OPC_CheckPredicate, 9, // Predicate_load
/* 42576*/      OPC_CheckType, MVT::i64,
/* 42578*/      OPC_MoveParent,
/* 42579*/      OPC_CheckType, MVT::v4i64,
/* 42581*/      OPC_MoveParent,
/* 42582*/      OPC_RecordChild1, // #3 = $src1
/* 42583*/      OPC_MoveChild2,
/* 42584*/      OPC_CheckCondCode, ISD::SETEQ,
/* 42586*/      OPC_MoveParent,
/* 42587*/      OPC_MoveParent,
/* 42588*/      OPC_CheckType, MVT::v4i1,
/* 42590*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42592*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42595*/      OPC_EmitMergeInputChains1_1,
/* 42596*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42609*/    /*Scope*/ 108, /*->42718*/
/* 42610*/      OPC_MoveChild0,
/* 42611*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 42614*/      OPC_Scope, 50, /*->42666*/ // 2 children in Scope
/* 42616*/        OPC_RecordChild0, // #0 = $src1
/* 42617*/        OPC_CheckChild0Type, MVT::v4i64,
/* 42619*/        OPC_MoveChild1,
/* 42620*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42623*/        OPC_MoveChild0,
/* 42624*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42627*/        OPC_RecordMemRef,
/* 42628*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 42629*/        OPC_CheckFoldableChainNode,
/* 42630*/        OPC_RecordChild1, // #2 = $src2
/* 42631*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42633*/        OPC_CheckPredicate, 9, // Predicate_load
/* 42635*/        OPC_CheckType, MVT::i64,
/* 42637*/        OPC_MoveParent,
/* 42638*/        OPC_MoveParent,
/* 42639*/        OPC_MoveChild2,
/* 42640*/        OPC_CheckCondCode, ISD::SETEQ,
/* 42642*/        OPC_MoveParent,
/* 42643*/        OPC_MoveParent,
/* 42644*/        OPC_RecordChild1, // #3 = $mask
/* 42645*/        OPC_CheckType, MVT::v4i1,
/* 42647*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42649*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42652*/        OPC_EmitMergeInputChains1_1,
/* 42653*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42666*/      /*Scope*/ 50, /*->42717*/
/* 42667*/        OPC_MoveChild0,
/* 42668*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42671*/        OPC_MoveChild0,
/* 42672*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42675*/        OPC_RecordMemRef,
/* 42676*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 42677*/        OPC_CheckFoldableChainNode,
/* 42678*/        OPC_RecordChild1, // #1 = $src2
/* 42679*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42681*/        OPC_CheckPredicate, 9, // Predicate_load
/* 42683*/        OPC_CheckType, MVT::i64,
/* 42685*/        OPC_MoveParent,
/* 42686*/        OPC_CheckType, MVT::v4i64,
/* 42688*/        OPC_MoveParent,
/* 42689*/        OPC_RecordChild1, // #2 = $src1
/* 42690*/        OPC_MoveChild2,
/* 42691*/        OPC_CheckCondCode, ISD::SETEQ,
/* 42693*/        OPC_MoveParent,
/* 42694*/        OPC_MoveParent,
/* 42695*/        OPC_RecordChild1, // #3 = $mask
/* 42696*/        OPC_CheckType, MVT::v4i1,
/* 42698*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42700*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42703*/        OPC_EmitMergeInputChains1_0,
/* 42704*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42717*/      0, /*End of Scope*/
/* 42718*/    /*Scope*/ 54, /*->42773*/
/* 42719*/      OPC_RecordChild0, // #0 = $mask
/* 42720*/      OPC_MoveChild1,
/* 42721*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 42724*/      OPC_MoveChild0,
/* 42725*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42728*/      OPC_MoveChild0,
/* 42729*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42732*/      OPC_RecordMemRef,
/* 42733*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 42734*/      OPC_CheckFoldableChainNode,
/* 42735*/      OPC_RecordChild1, // #2 = $src2
/* 42736*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42738*/      OPC_CheckPredicate, 9, // Predicate_load
/* 42740*/      OPC_CheckType, MVT::i64,
/* 42742*/      OPC_MoveParent,
/* 42743*/      OPC_CheckType, MVT::v2i64,
/* 42745*/      OPC_MoveParent,
/* 42746*/      OPC_RecordChild1, // #3 = $src1
/* 42747*/      OPC_MoveChild2,
/* 42748*/      OPC_CheckCondCode, ISD::SETEQ,
/* 42750*/      OPC_MoveParent,
/* 42751*/      OPC_MoveParent,
/* 42752*/      OPC_CheckType, MVT::v2i1,
/* 42754*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42756*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42759*/      OPC_EmitMergeInputChains1_1,
/* 42760*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86setcc_commute:{ *:[v2i1] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 33
                // Dst: (VPCMPEQQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42773*/    /*Scope*/ 107|128,6/*875*/, /*->43650*/
/* 42775*/      OPC_MoveChild0,
/* 42776*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 42779*/      OPC_Scope, 50, /*->42831*/ // 3 children in Scope
/* 42781*/        OPC_RecordChild0, // #0 = $src1
/* 42782*/        OPC_CheckChild0Type, MVT::v2i64,
/* 42784*/        OPC_MoveChild1,
/* 42785*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42788*/        OPC_MoveChild0,
/* 42789*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42792*/        OPC_RecordMemRef,
/* 42793*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 42794*/        OPC_CheckFoldableChainNode,
/* 42795*/        OPC_RecordChild1, // #2 = $src2
/* 42796*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42798*/        OPC_CheckPredicate, 9, // Predicate_load
/* 42800*/        OPC_CheckType, MVT::i64,
/* 42802*/        OPC_MoveParent,
/* 42803*/        OPC_MoveParent,
/* 42804*/        OPC_MoveChild2,
/* 42805*/        OPC_CheckCondCode, ISD::SETEQ,
/* 42807*/        OPC_MoveParent,
/* 42808*/        OPC_MoveParent,
/* 42809*/        OPC_RecordChild1, // #3 = $mask
/* 42810*/        OPC_CheckType, MVT::v2i1,
/* 42812*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42814*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42817*/        OPC_EmitMergeInputChains1_1,
/* 42818*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETEQ:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42831*/      /*Scope*/ 50, /*->42882*/
/* 42832*/        OPC_MoveChild0,
/* 42833*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 42836*/        OPC_MoveChild0,
/* 42837*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42840*/        OPC_RecordMemRef,
/* 42841*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 42842*/        OPC_CheckFoldableChainNode,
/* 42843*/        OPC_RecordChild1, // #1 = $src2
/* 42844*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42846*/        OPC_CheckPredicate, 9, // Predicate_load
/* 42848*/        OPC_CheckType, MVT::i64,
/* 42850*/        OPC_MoveParent,
/* 42851*/        OPC_CheckType, MVT::v2i64,
/* 42853*/        OPC_MoveParent,
/* 42854*/        OPC_RecordChild1, // #2 = $src1
/* 42855*/        OPC_MoveChild2,
/* 42856*/        OPC_CheckCondCode, ISD::SETEQ,
/* 42858*/        OPC_MoveParent,
/* 42859*/        OPC_MoveParent,
/* 42860*/        OPC_RecordChild1, // #3 = $mask
/* 42861*/        OPC_CheckType, MVT::v2i1,
/* 42863*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42865*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42868*/        OPC_EmitMergeInputChains1_0,
/* 42869*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (X86setcc_commute:{ *:[v2i1] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1, SETEQ:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 33
                  // Dst: (VPCMPEQQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42882*/      /*Scope*/ 125|128,5/*765*/, /*->43649*/
/* 42884*/        OPC_RecordChild0, // #0 = $src1
/* 42885*/        OPC_Scope, 51, /*->42938*/ // 12 children in Scope
/* 42887*/          OPC_CheckChild0Type, MVT::v64i8,
/* 42889*/          OPC_MoveChild1,
/* 42890*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 42893*/          OPC_MoveChild0,
/* 42894*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42897*/          OPC_RecordMemRef,
/* 42898*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 42899*/          OPC_CheckFoldableChainNode,
/* 42900*/          OPC_RecordChild1, // #2 = $src2
/* 42901*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42903*/          OPC_CheckPredicate, 9, // Predicate_load
/* 42905*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 42907*/          OPC_CheckType, MVT::v8i64,
/* 42909*/          OPC_MoveParent,
/* 42910*/          OPC_MoveParent,
/* 42911*/          OPC_MoveChild2,
/* 42912*/          OPC_CheckCondCode, ISD::SETGT,
/* 42914*/          OPC_MoveParent,
/* 42915*/          OPC_MoveParent,
/* 42916*/          OPC_RecordChild1, // #3 = $mask
/* 42917*/          OPC_CheckType, MVT::v64i1,
/* 42919*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 42921*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42924*/          OPC_EmitMergeInputChains1_1,
/* 42925*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 33
                    // Dst: (VPCMPGTBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42938*/        /*Scope*/ 51, /*->42990*/
/* 42939*/          OPC_CheckChild0Type, MVT::v32i8,
/* 42941*/          OPC_MoveChild1,
/* 42942*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 42945*/          OPC_MoveChild0,
/* 42946*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 42949*/          OPC_RecordMemRef,
/* 42950*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 42951*/          OPC_CheckFoldableChainNode,
/* 42952*/          OPC_RecordChild1, // #2 = $src2
/* 42953*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42955*/          OPC_CheckPredicate, 9, // Predicate_load
/* 42957*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 42959*/          OPC_CheckType, MVT::v4i64,
/* 42961*/          OPC_MoveParent,
/* 42962*/          OPC_MoveParent,
/* 42963*/          OPC_MoveChild2,
/* 42964*/          OPC_CheckCondCode, ISD::SETGT,
/* 42966*/          OPC_MoveParent,
/* 42967*/          OPC_MoveParent,
/* 42968*/          OPC_RecordChild1, // #3 = $mask
/* 42969*/          OPC_CheckType, MVT::v32i1,
/* 42971*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 42973*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 42976*/          OPC_EmitMergeInputChains1_1,
/* 42977*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 33
                    // Dst: (VPCMPGTBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 42990*/        /*Scope*/ 51, /*->43042*/
/* 42991*/          OPC_CheckChild0Type, MVT::v16i8,
/* 42993*/          OPC_MoveChild1,
/* 42994*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 42997*/          OPC_MoveChild0,
/* 42998*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43001*/          OPC_RecordMemRef,
/* 43002*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 43003*/          OPC_CheckFoldableChainNode,
/* 43004*/          OPC_RecordChild1, // #2 = $src2
/* 43005*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43007*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43009*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 43011*/          OPC_CheckType, MVT::v2i64,
/* 43013*/          OPC_MoveParent,
/* 43014*/          OPC_MoveParent,
/* 43015*/          OPC_MoveChild2,
/* 43016*/          OPC_CheckCondCode, ISD::SETGT,
/* 43018*/          OPC_MoveParent,
/* 43019*/          OPC_MoveParent,
/* 43020*/          OPC_RecordChild1, // #3 = $mask
/* 43021*/          OPC_CheckType, MVT::v16i1,
/* 43023*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 43025*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43028*/          OPC_EmitMergeInputChains1_1,
/* 43029*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                    // Dst: (VPCMPGTBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43042*/        /*Scope*/ 51, /*->43094*/
/* 43043*/          OPC_CheckChild0Type, MVT::v32i16,
/* 43045*/          OPC_MoveChild1,
/* 43046*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 43049*/          OPC_MoveChild0,
/* 43050*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43053*/          OPC_RecordMemRef,
/* 43054*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 43055*/          OPC_CheckFoldableChainNode,
/* 43056*/          OPC_RecordChild1, // #2 = $src2
/* 43057*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43059*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43061*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 43063*/          OPC_CheckType, MVT::v8i64,
/* 43065*/          OPC_MoveParent,
/* 43066*/          OPC_MoveParent,
/* 43067*/          OPC_MoveChild2,
/* 43068*/          OPC_CheckCondCode, ISD::SETGT,
/* 43070*/          OPC_MoveParent,
/* 43071*/          OPC_MoveParent,
/* 43072*/          OPC_RecordChild1, // #3 = $mask
/* 43073*/          OPC_CheckType, MVT::v32i1,
/* 43075*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 43077*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43080*/          OPC_EmitMergeInputChains1_1,
/* 43081*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 33
                    // Dst: (VPCMPGTWZrmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43094*/        /*Scope*/ 51, /*->43146*/
/* 43095*/          OPC_CheckChild0Type, MVT::v16i16,
/* 43097*/          OPC_MoveChild1,
/* 43098*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 43101*/          OPC_MoveChild0,
/* 43102*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43105*/          OPC_RecordMemRef,
/* 43106*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 43107*/          OPC_CheckFoldableChainNode,
/* 43108*/          OPC_RecordChild1, // #2 = $src2
/* 43109*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43111*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43113*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 43115*/          OPC_CheckType, MVT::v4i64,
/* 43117*/          OPC_MoveParent,
/* 43118*/          OPC_MoveParent,
/* 43119*/          OPC_MoveChild2,
/* 43120*/          OPC_CheckCondCode, ISD::SETGT,
/* 43122*/          OPC_MoveParent,
/* 43123*/          OPC_MoveParent,
/* 43124*/          OPC_RecordChild1, // #3 = $mask
/* 43125*/          OPC_CheckType, MVT::v16i1,
/* 43127*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 43129*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43132*/          OPC_EmitMergeInputChains1_1,
/* 43133*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                    // Dst: (VPCMPGTWZ256rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43146*/        /*Scope*/ 51, /*->43198*/
/* 43147*/          OPC_CheckChild0Type, MVT::v8i16,
/* 43149*/          OPC_MoveChild1,
/* 43150*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 43153*/          OPC_MoveChild0,
/* 43154*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43157*/          OPC_RecordMemRef,
/* 43158*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 43159*/          OPC_CheckFoldableChainNode,
/* 43160*/          OPC_RecordChild1, // #2 = $src2
/* 43161*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43163*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43165*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 43167*/          OPC_CheckType, MVT::v2i64,
/* 43169*/          OPC_MoveParent,
/* 43170*/          OPC_MoveParent,
/* 43171*/          OPC_MoveChild2,
/* 43172*/          OPC_CheckCondCode, ISD::SETGT,
/* 43174*/          OPC_MoveParent,
/* 43175*/          OPC_MoveParent,
/* 43176*/          OPC_RecordChild1, // #3 = $mask
/* 43177*/          OPC_CheckType, MVT::v8i1,
/* 43179*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 43181*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43184*/          OPC_EmitMergeInputChains1_1,
/* 43185*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                    // Dst: (VPCMPGTWZ128rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43198*/        /*Scope*/ 99, /*->43298*/
/* 43199*/          OPC_CheckChild0Type, MVT::v16i32,
/* 43201*/          OPC_MoveChild1,
/* 43202*/          OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->43251
/* 43206*/            OPC_MoveChild0,
/* 43207*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43210*/            OPC_RecordMemRef,
/* 43211*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 43212*/            OPC_CheckFoldableChainNode,
/* 43213*/            OPC_RecordChild1, // #2 = $src2
/* 43214*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43216*/            OPC_CheckPredicate, 9, // Predicate_load
/* 43218*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 43220*/            OPC_CheckType, MVT::v8i64,
/* 43222*/            OPC_MoveParent,
/* 43223*/            OPC_MoveParent,
/* 43224*/            OPC_MoveChild2,
/* 43225*/            OPC_CheckCondCode, ISD::SETGT,
/* 43227*/            OPC_MoveParent,
/* 43228*/            OPC_MoveParent,
/* 43229*/            OPC_RecordChild1, // #3 = $mask
/* 43230*/            OPC_CheckType, MVT::v16i1,
/* 43232*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 43234*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43237*/            OPC_EmitMergeInputChains1_1,
/* 43238*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                      // Dst: (VPCMPGTDZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43251*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->43297
/* 43254*/            OPC_MoveChild0,
/* 43255*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43258*/            OPC_RecordMemRef,
/* 43259*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 43260*/            OPC_CheckFoldableChainNode,
/* 43261*/            OPC_RecordChild1, // #2 = $src2
/* 43262*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43264*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 43266*/            OPC_CheckType, MVT::i32,
/* 43268*/            OPC_MoveParent,
/* 43269*/            OPC_MoveParent,
/* 43270*/            OPC_MoveChild2,
/* 43271*/            OPC_CheckCondCode, ISD::SETGT,
/* 43273*/            OPC_MoveParent,
/* 43274*/            OPC_MoveParent,
/* 43275*/            OPC_RecordChild1, // #3 = $mask
/* 43276*/            OPC_CheckType, MVT::v16i1,
/* 43278*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 43280*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43283*/            OPC_EmitMergeInputChains1_1,
/* 43284*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETGT:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 33
                      // Dst: (VPCMPGTDZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43297*/          0, // EndSwitchOpcode
/* 43298*/        /*Scope*/ 99, /*->43398*/
/* 43299*/          OPC_CheckChild0Type, MVT::v8i32,
/* 43301*/          OPC_MoveChild1,
/* 43302*/          OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->43351
/* 43306*/            OPC_MoveChild0,
/* 43307*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43310*/            OPC_RecordMemRef,
/* 43311*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 43312*/            OPC_CheckFoldableChainNode,
/* 43313*/            OPC_RecordChild1, // #2 = $src2
/* 43314*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43316*/            OPC_CheckPredicate, 9, // Predicate_load
/* 43318*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 43320*/            OPC_CheckType, MVT::v4i64,
/* 43322*/            OPC_MoveParent,
/* 43323*/            OPC_MoveParent,
/* 43324*/            OPC_MoveChild2,
/* 43325*/            OPC_CheckCondCode, ISD::SETGT,
/* 43327*/            OPC_MoveParent,
/* 43328*/            OPC_MoveParent,
/* 43329*/            OPC_RecordChild1, // #3 = $mask
/* 43330*/            OPC_CheckType, MVT::v8i1,
/* 43332*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43334*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43337*/            OPC_EmitMergeInputChains1_1,
/* 43338*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                      // Dst: (VPCMPGTDZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43351*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->43397
/* 43354*/            OPC_MoveChild0,
/* 43355*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43358*/            OPC_RecordMemRef,
/* 43359*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 43360*/            OPC_CheckFoldableChainNode,
/* 43361*/            OPC_RecordChild1, // #2 = $src2
/* 43362*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43364*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 43366*/            OPC_CheckType, MVT::i32,
/* 43368*/            OPC_MoveParent,
/* 43369*/            OPC_MoveParent,
/* 43370*/            OPC_MoveChild2,
/* 43371*/            OPC_CheckCondCode, ISD::SETGT,
/* 43373*/            OPC_MoveParent,
/* 43374*/            OPC_MoveParent,
/* 43375*/            OPC_RecordChild1, // #3 = $mask
/* 43376*/            OPC_CheckType, MVT::v8i1,
/* 43378*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43380*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43383*/            OPC_EmitMergeInputChains1_1,
/* 43384*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETGT:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                      // Dst: (VPCMPGTDZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43397*/          0, // EndSwitchOpcode
/* 43398*/        /*Scope*/ 99, /*->43498*/
/* 43399*/          OPC_CheckChild0Type, MVT::v4i32,
/* 43401*/          OPC_MoveChild1,
/* 43402*/          OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->43451
/* 43406*/            OPC_MoveChild0,
/* 43407*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43410*/            OPC_RecordMemRef,
/* 43411*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 43412*/            OPC_CheckFoldableChainNode,
/* 43413*/            OPC_RecordChild1, // #2 = $src2
/* 43414*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43416*/            OPC_CheckPredicate, 9, // Predicate_load
/* 43418*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 43420*/            OPC_CheckType, MVT::v2i64,
/* 43422*/            OPC_MoveParent,
/* 43423*/            OPC_MoveParent,
/* 43424*/            OPC_MoveChild2,
/* 43425*/            OPC_CheckCondCode, ISD::SETGT,
/* 43427*/            OPC_MoveParent,
/* 43428*/            OPC_MoveParent,
/* 43429*/            OPC_RecordChild1, // #3 = $mask
/* 43430*/            OPC_CheckType, MVT::v4i1,
/* 43432*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43434*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43437*/            OPC_EmitMergeInputChains1_1,
/* 43438*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 33
                      // Dst: (VPCMPGTDZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43451*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->43497
/* 43454*/            OPC_MoveChild0,
/* 43455*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43458*/            OPC_RecordMemRef,
/* 43459*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 43460*/            OPC_CheckFoldableChainNode,
/* 43461*/            OPC_RecordChild1, // #2 = $src2
/* 43462*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43464*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 43466*/            OPC_CheckType, MVT::i32,
/* 43468*/            OPC_MoveParent,
/* 43469*/            OPC_MoveParent,
/* 43470*/            OPC_MoveChild2,
/* 43471*/            OPC_CheckCondCode, ISD::SETGT,
/* 43473*/            OPC_MoveParent,
/* 43474*/            OPC_MoveParent,
/* 43475*/            OPC_RecordChild1, // #3 = $mask
/* 43476*/            OPC_CheckType, MVT::v4i1,
/* 43478*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43480*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43483*/            OPC_EmitMergeInputChains1_1,
/* 43484*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETGT:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 33
                      // Dst: (VPCMPGTDZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43497*/          0, // EndSwitchOpcode
/* 43498*/        /*Scope*/ 49, /*->43548*/
/* 43499*/          OPC_CheckChild0Type, MVT::v8i64,
/* 43501*/          OPC_MoveChild1,
/* 43502*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 43505*/          OPC_MoveChild0,
/* 43506*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43509*/          OPC_RecordMemRef,
/* 43510*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 43511*/          OPC_CheckFoldableChainNode,
/* 43512*/          OPC_RecordChild1, // #2 = $src2
/* 43513*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43515*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43517*/          OPC_CheckType, MVT::i64,
/* 43519*/          OPC_MoveParent,
/* 43520*/          OPC_MoveParent,
/* 43521*/          OPC_MoveChild2,
/* 43522*/          OPC_CheckCondCode, ISD::SETGT,
/* 43524*/          OPC_MoveParent,
/* 43525*/          OPC_MoveParent,
/* 43526*/          OPC_RecordChild1, // #3 = $mask
/* 43527*/          OPC_CheckType, MVT::v8i1,
/* 43529*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 43531*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43534*/          OPC_EmitMergeInputChains1_1,
/* 43535*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETGT:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 33
                    // Dst: (VPCMPGTQZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43548*/        /*Scope*/ 49, /*->43598*/
/* 43549*/          OPC_CheckChild0Type, MVT::v4i64,
/* 43551*/          OPC_MoveChild1,
/* 43552*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 43555*/          OPC_MoveChild0,
/* 43556*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43559*/          OPC_RecordMemRef,
/* 43560*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 43561*/          OPC_CheckFoldableChainNode,
/* 43562*/          OPC_RecordChild1, // #2 = $src2
/* 43563*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43565*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43567*/          OPC_CheckType, MVT::i64,
/* 43569*/          OPC_MoveParent,
/* 43570*/          OPC_MoveParent,
/* 43571*/          OPC_MoveChild2,
/* 43572*/          OPC_CheckCondCode, ISD::SETGT,
/* 43574*/          OPC_MoveParent,
/* 43575*/          OPC_MoveParent,
/* 43576*/          OPC_RecordChild1, // #3 = $mask
/* 43577*/          OPC_CheckType, MVT::v4i1,
/* 43579*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43581*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43584*/          OPC_EmitMergeInputChains1_1,
/* 43585*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETGT:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 33
                    // Dst: (VPCMPGTQZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43598*/        /*Scope*/ 49, /*->43648*/
/* 43599*/          OPC_CheckChild0Type, MVT::v2i64,
/* 43601*/          OPC_MoveChild1,
/* 43602*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 43605*/          OPC_MoveChild0,
/* 43606*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43609*/          OPC_RecordMemRef,
/* 43610*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 43611*/          OPC_CheckFoldableChainNode,
/* 43612*/          OPC_RecordChild1, // #2 = $src2
/* 43613*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43615*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43617*/          OPC_CheckType, MVT::i64,
/* 43619*/          OPC_MoveParent,
/* 43620*/          OPC_MoveParent,
/* 43621*/          OPC_MoveChild2,
/* 43622*/          OPC_CheckCondCode, ISD::SETGT,
/* 43624*/          OPC_MoveParent,
/* 43625*/          OPC_MoveParent,
/* 43626*/          OPC_RecordChild1, // #3 = $mask
/* 43627*/          OPC_CheckType, MVT::v2i1,
/* 43629*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43631*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 43634*/          OPC_EmitMergeInputChains1_1,
/* 43635*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETGT:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 33
                    // Dst: (VPCMPGTQZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 43648*/        0, /*End of Scope*/
/* 43649*/      0, /*End of Scope*/
/* 43650*/    /*Scope*/ 54|128,49/*6326*/, /*->49978*/
/* 43652*/      OPC_RecordChild0, // #0 = $mask
/* 43653*/      OPC_Scope, 103|128,27/*3559*/, /*->47215*/ // 3 children in Scope
/* 43656*/        OPC_RecordChild1, // #1 = $cc
/* 43657*/        OPC_MoveChild1,
/* 43658*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 43661*/        OPC_Scope, 60, /*->43723*/ // 60 children in Scope
/* 43663*/          OPC_RecordChild0, // #2 = $src1
/* 43664*/          OPC_CheckChild0Type, MVT::v64i8,
/* 43666*/          OPC_MoveChild1,
/* 43667*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 43670*/          OPC_MoveChild0,
/* 43671*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43674*/          OPC_RecordMemRef,
/* 43675*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 43676*/          OPC_CheckFoldableChainNode,
/* 43677*/          OPC_RecordChild1, // #4 = $src2
/* 43678*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43680*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43682*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 43684*/          OPC_CheckType, MVT::v8i64,
/* 43686*/          OPC_MoveParent,
/* 43687*/          OPC_MoveParent,
/* 43688*/          OPC_MoveChild2,
/* 43689*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 43692*/          OPC_MoveParent,
/* 43693*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 43695*/          OPC_MoveParent,
/* 43696*/          OPC_CheckType, MVT::v64i1,
/* 43698*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 43700*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43703*/          OPC_EmitMergeInputChains, 1, 3, 
/* 43706*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 43709*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 43723*/        /*Scope*/ 58, /*->43782*/
/* 43724*/          OPC_MoveChild0,
/* 43725*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 43728*/          OPC_MoveChild0,
/* 43729*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43732*/          OPC_RecordMemRef,
/* 43733*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 43734*/          OPC_CheckFoldableChainNode,
/* 43735*/          OPC_RecordChild1, // #3 = $src2
/* 43736*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43738*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43740*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 43742*/          OPC_CheckType, MVT::v8i64,
/* 43744*/          OPC_MoveParent,
/* 43745*/          OPC_CheckType, MVT::v64i8,
/* 43747*/          OPC_MoveParent,
/* 43748*/          OPC_RecordChild1, // #4 = $src1
/* 43749*/          OPC_MoveChild2,
/* 43750*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 43753*/          OPC_MoveParent,
/* 43754*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 43756*/          OPC_MoveParent,
/* 43757*/          OPC_CheckType, MVT::v64i1,
/* 43759*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 43761*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43764*/          OPC_EmitMergeInputChains1_2,
/* 43765*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 43768*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/* 43782*/        /*Scope*/ 60, /*->43843*/
/* 43783*/          OPC_RecordChild0, // #2 = $src1
/* 43784*/          OPC_CheckChild0Type, MVT::v32i8,
/* 43786*/          OPC_MoveChild1,
/* 43787*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 43790*/          OPC_MoveChild0,
/* 43791*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43794*/          OPC_RecordMemRef,
/* 43795*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 43796*/          OPC_CheckFoldableChainNode,
/* 43797*/          OPC_RecordChild1, // #4 = $src2
/* 43798*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43800*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43802*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 43804*/          OPC_CheckType, MVT::v4i64,
/* 43806*/          OPC_MoveParent,
/* 43807*/          OPC_MoveParent,
/* 43808*/          OPC_MoveChild2,
/* 43809*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 43812*/          OPC_MoveParent,
/* 43813*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 43815*/          OPC_MoveParent,
/* 43816*/          OPC_CheckType, MVT::v32i1,
/* 43818*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 43820*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43823*/          OPC_EmitMergeInputChains, 1, 3, 
/* 43826*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 43829*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 43843*/        /*Scope*/ 58, /*->43902*/
/* 43844*/          OPC_MoveChild0,
/* 43845*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 43848*/          OPC_MoveChild0,
/* 43849*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43852*/          OPC_RecordMemRef,
/* 43853*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 43854*/          OPC_CheckFoldableChainNode,
/* 43855*/          OPC_RecordChild1, // #3 = $src2
/* 43856*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43858*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43860*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 43862*/          OPC_CheckType, MVT::v4i64,
/* 43864*/          OPC_MoveParent,
/* 43865*/          OPC_CheckType, MVT::v32i8,
/* 43867*/          OPC_MoveParent,
/* 43868*/          OPC_RecordChild1, // #4 = $src1
/* 43869*/          OPC_MoveChild2,
/* 43870*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 43873*/          OPC_MoveParent,
/* 43874*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 43876*/          OPC_MoveParent,
/* 43877*/          OPC_CheckType, MVT::v32i1,
/* 43879*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 43881*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43884*/          OPC_EmitMergeInputChains1_2,
/* 43885*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 43888*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 43902*/        /*Scope*/ 60, /*->43963*/
/* 43903*/          OPC_RecordChild0, // #2 = $src1
/* 43904*/          OPC_CheckChild0Type, MVT::v16i8,
/* 43906*/          OPC_MoveChild1,
/* 43907*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 43910*/          OPC_MoveChild0,
/* 43911*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43914*/          OPC_RecordMemRef,
/* 43915*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 43916*/          OPC_CheckFoldableChainNode,
/* 43917*/          OPC_RecordChild1, // #4 = $src2
/* 43918*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43920*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43922*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 43924*/          OPC_CheckType, MVT::v2i64,
/* 43926*/          OPC_MoveParent,
/* 43927*/          OPC_MoveParent,
/* 43928*/          OPC_MoveChild2,
/* 43929*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 43932*/          OPC_MoveParent,
/* 43933*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 43935*/          OPC_MoveParent,
/* 43936*/          OPC_CheckType, MVT::v16i1,
/* 43938*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 43940*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43943*/          OPC_EmitMergeInputChains, 1, 3, 
/* 43946*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 43949*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 43963*/        /*Scope*/ 58, /*->44022*/
/* 43964*/          OPC_MoveChild0,
/* 43965*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 43968*/          OPC_MoveChild0,
/* 43969*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 43972*/          OPC_RecordMemRef,
/* 43973*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 43974*/          OPC_CheckFoldableChainNode,
/* 43975*/          OPC_RecordChild1, // #3 = $src2
/* 43976*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43978*/          OPC_CheckPredicate, 9, // Predicate_load
/* 43980*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 43982*/          OPC_CheckType, MVT::v2i64,
/* 43984*/          OPC_MoveParent,
/* 43985*/          OPC_CheckType, MVT::v16i8,
/* 43987*/          OPC_MoveParent,
/* 43988*/          OPC_RecordChild1, // #4 = $src1
/* 43989*/          OPC_MoveChild2,
/* 43990*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 43993*/          OPC_MoveParent,
/* 43994*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 43996*/          OPC_MoveParent,
/* 43997*/          OPC_CheckType, MVT::v16i1,
/* 43999*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 44001*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44004*/          OPC_EmitMergeInputChains1_2,
/* 44005*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 44008*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 44022*/        /*Scope*/ 60, /*->44083*/
/* 44023*/          OPC_RecordChild0, // #2 = $src1
/* 44024*/          OPC_CheckChild0Type, MVT::v64i8,
/* 44026*/          OPC_MoveChild1,
/* 44027*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44030*/          OPC_MoveChild0,
/* 44031*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44034*/          OPC_RecordMemRef,
/* 44035*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 44036*/          OPC_CheckFoldableChainNode,
/* 44037*/          OPC_RecordChild1, // #4 = $src2
/* 44038*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44040*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44042*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44044*/          OPC_CheckType, MVT::v8i64,
/* 44046*/          OPC_MoveParent,
/* 44047*/          OPC_MoveParent,
/* 44048*/          OPC_MoveChild2,
/* 44049*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44052*/          OPC_MoveParent,
/* 44053*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 44055*/          OPC_MoveParent,
/* 44056*/          OPC_CheckType, MVT::v64i1,
/* 44058*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 44060*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44063*/          OPC_EmitMergeInputChains, 1, 3, 
/* 44066*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 44069*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 44083*/        /*Scope*/ 58, /*->44142*/
/* 44084*/          OPC_MoveChild0,
/* 44085*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44088*/          OPC_MoveChild0,
/* 44089*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44092*/          OPC_RecordMemRef,
/* 44093*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 44094*/          OPC_CheckFoldableChainNode,
/* 44095*/          OPC_RecordChild1, // #3 = $src2
/* 44096*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44098*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44100*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44102*/          OPC_CheckType, MVT::v8i64,
/* 44104*/          OPC_MoveParent,
/* 44105*/          OPC_CheckType, MVT::v64i8,
/* 44107*/          OPC_MoveParent,
/* 44108*/          OPC_RecordChild1, // #4 = $src1
/* 44109*/          OPC_MoveChild2,
/* 44110*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44113*/          OPC_MoveParent,
/* 44114*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 44116*/          OPC_MoveParent,
/* 44117*/          OPC_CheckType, MVT::v64i1,
/* 44119*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 44121*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44124*/          OPC_EmitMergeInputChains1_2,
/* 44125*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 44128*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/* 44142*/        /*Scope*/ 60, /*->44203*/
/* 44143*/          OPC_RecordChild0, // #2 = $src1
/* 44144*/          OPC_CheckChild0Type, MVT::v32i8,
/* 44146*/          OPC_MoveChild1,
/* 44147*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44150*/          OPC_MoveChild0,
/* 44151*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44154*/          OPC_RecordMemRef,
/* 44155*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 44156*/          OPC_CheckFoldableChainNode,
/* 44157*/          OPC_RecordChild1, // #4 = $src2
/* 44158*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44160*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44162*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44164*/          OPC_CheckType, MVT::v4i64,
/* 44166*/          OPC_MoveParent,
/* 44167*/          OPC_MoveParent,
/* 44168*/          OPC_MoveChild2,
/* 44169*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44172*/          OPC_MoveParent,
/* 44173*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 44175*/          OPC_MoveParent,
/* 44176*/          OPC_CheckType, MVT::v32i1,
/* 44178*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 44180*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44183*/          OPC_EmitMergeInputChains, 1, 3, 
/* 44186*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 44189*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 44203*/        /*Scope*/ 58, /*->44262*/
/* 44204*/          OPC_MoveChild0,
/* 44205*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44208*/          OPC_MoveChild0,
/* 44209*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44212*/          OPC_RecordMemRef,
/* 44213*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 44214*/          OPC_CheckFoldableChainNode,
/* 44215*/          OPC_RecordChild1, // #3 = $src2
/* 44216*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44218*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44220*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44222*/          OPC_CheckType, MVT::v4i64,
/* 44224*/          OPC_MoveParent,
/* 44225*/          OPC_CheckType, MVT::v32i8,
/* 44227*/          OPC_MoveParent,
/* 44228*/          OPC_RecordChild1, // #4 = $src1
/* 44229*/          OPC_MoveChild2,
/* 44230*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44233*/          OPC_MoveParent,
/* 44234*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 44236*/          OPC_MoveParent,
/* 44237*/          OPC_CheckType, MVT::v32i1,
/* 44239*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 44241*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44244*/          OPC_EmitMergeInputChains1_2,
/* 44245*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 44248*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 44262*/        /*Scope*/ 60, /*->44323*/
/* 44263*/          OPC_RecordChild0, // #2 = $src1
/* 44264*/          OPC_CheckChild0Type, MVT::v16i8,
/* 44266*/          OPC_MoveChild1,
/* 44267*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44270*/          OPC_MoveChild0,
/* 44271*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44274*/          OPC_RecordMemRef,
/* 44275*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 44276*/          OPC_CheckFoldableChainNode,
/* 44277*/          OPC_RecordChild1, // #4 = $src2
/* 44278*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44280*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44282*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44284*/          OPC_CheckType, MVT::v2i64,
/* 44286*/          OPC_MoveParent,
/* 44287*/          OPC_MoveParent,
/* 44288*/          OPC_MoveChild2,
/* 44289*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44292*/          OPC_MoveParent,
/* 44293*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 44295*/          OPC_MoveParent,
/* 44296*/          OPC_CheckType, MVT::v16i1,
/* 44298*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 44300*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44303*/          OPC_EmitMergeInputChains, 1, 3, 
/* 44306*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 44309*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 44323*/        /*Scope*/ 58, /*->44382*/
/* 44324*/          OPC_MoveChild0,
/* 44325*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44328*/          OPC_MoveChild0,
/* 44329*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44332*/          OPC_RecordMemRef,
/* 44333*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 44334*/          OPC_CheckFoldableChainNode,
/* 44335*/          OPC_RecordChild1, // #3 = $src2
/* 44336*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44338*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44340*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44342*/          OPC_CheckType, MVT::v2i64,
/* 44344*/          OPC_MoveParent,
/* 44345*/          OPC_CheckType, MVT::v16i8,
/* 44347*/          OPC_MoveParent,
/* 44348*/          OPC_RecordChild1, // #4 = $src1
/* 44349*/          OPC_MoveChild2,
/* 44350*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44353*/          OPC_MoveParent,
/* 44354*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 44356*/          OPC_MoveParent,
/* 44357*/          OPC_CheckType, MVT::v16i1,
/* 44359*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 44361*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44364*/          OPC_EmitMergeInputChains1_2,
/* 44365*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 44368*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 44382*/        /*Scope*/ 60, /*->44443*/
/* 44383*/          OPC_RecordChild0, // #2 = $src1
/* 44384*/          OPC_CheckChild0Type, MVT::v32i16,
/* 44386*/          OPC_MoveChild1,
/* 44387*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44390*/          OPC_MoveChild0,
/* 44391*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44394*/          OPC_RecordMemRef,
/* 44395*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 44396*/          OPC_CheckFoldableChainNode,
/* 44397*/          OPC_RecordChild1, // #4 = $src2
/* 44398*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44400*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44402*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44404*/          OPC_CheckType, MVT::v8i64,
/* 44406*/          OPC_MoveParent,
/* 44407*/          OPC_MoveParent,
/* 44408*/          OPC_MoveChild2,
/* 44409*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44412*/          OPC_MoveParent,
/* 44413*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 44415*/          OPC_MoveParent,
/* 44416*/          OPC_CheckType, MVT::v32i1,
/* 44418*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 44420*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44423*/          OPC_EmitMergeInputChains, 1, 3, 
/* 44426*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 44429*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 44443*/        /*Scope*/ 58, /*->44502*/
/* 44444*/          OPC_MoveChild0,
/* 44445*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44448*/          OPC_MoveChild0,
/* 44449*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44452*/          OPC_RecordMemRef,
/* 44453*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 44454*/          OPC_CheckFoldableChainNode,
/* 44455*/          OPC_RecordChild1, // #3 = $src2
/* 44456*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44458*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44460*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44462*/          OPC_CheckType, MVT::v8i64,
/* 44464*/          OPC_MoveParent,
/* 44465*/          OPC_CheckType, MVT::v32i16,
/* 44467*/          OPC_MoveParent,
/* 44468*/          OPC_RecordChild1, // #4 = $src1
/* 44469*/          OPC_MoveChild2,
/* 44470*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44473*/          OPC_MoveParent,
/* 44474*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 44476*/          OPC_MoveParent,
/* 44477*/          OPC_CheckType, MVT::v32i1,
/* 44479*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 44481*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44484*/          OPC_EmitMergeInputChains1_2,
/* 44485*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 44488*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 44502*/        /*Scope*/ 60, /*->44563*/
/* 44503*/          OPC_RecordChild0, // #2 = $src1
/* 44504*/          OPC_CheckChild0Type, MVT::v16i16,
/* 44506*/          OPC_MoveChild1,
/* 44507*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44510*/          OPC_MoveChild0,
/* 44511*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44514*/          OPC_RecordMemRef,
/* 44515*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 44516*/          OPC_CheckFoldableChainNode,
/* 44517*/          OPC_RecordChild1, // #4 = $src2
/* 44518*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44520*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44522*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44524*/          OPC_CheckType, MVT::v4i64,
/* 44526*/          OPC_MoveParent,
/* 44527*/          OPC_MoveParent,
/* 44528*/          OPC_MoveChild2,
/* 44529*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44532*/          OPC_MoveParent,
/* 44533*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 44535*/          OPC_MoveParent,
/* 44536*/          OPC_CheckType, MVT::v16i1,
/* 44538*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 44540*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44543*/          OPC_EmitMergeInputChains, 1, 3, 
/* 44546*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 44549*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 44563*/        /*Scope*/ 58, /*->44622*/
/* 44564*/          OPC_MoveChild0,
/* 44565*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44568*/          OPC_MoveChild0,
/* 44569*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44572*/          OPC_RecordMemRef,
/* 44573*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 44574*/          OPC_CheckFoldableChainNode,
/* 44575*/          OPC_RecordChild1, // #3 = $src2
/* 44576*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44578*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44580*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44582*/          OPC_CheckType, MVT::v4i64,
/* 44584*/          OPC_MoveParent,
/* 44585*/          OPC_CheckType, MVT::v16i16,
/* 44587*/          OPC_MoveParent,
/* 44588*/          OPC_RecordChild1, // #4 = $src1
/* 44589*/          OPC_MoveChild2,
/* 44590*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44593*/          OPC_MoveParent,
/* 44594*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 44596*/          OPC_MoveParent,
/* 44597*/          OPC_CheckType, MVT::v16i1,
/* 44599*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 44601*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44604*/          OPC_EmitMergeInputChains1_2,
/* 44605*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 44608*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 44622*/        /*Scope*/ 60, /*->44683*/
/* 44623*/          OPC_RecordChild0, // #2 = $src1
/* 44624*/          OPC_CheckChild0Type, MVT::v8i16,
/* 44626*/          OPC_MoveChild1,
/* 44627*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44630*/          OPC_MoveChild0,
/* 44631*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44634*/          OPC_RecordMemRef,
/* 44635*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 44636*/          OPC_CheckFoldableChainNode,
/* 44637*/          OPC_RecordChild1, // #4 = $src2
/* 44638*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44640*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44642*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44644*/          OPC_CheckType, MVT::v2i64,
/* 44646*/          OPC_MoveParent,
/* 44647*/          OPC_MoveParent,
/* 44648*/          OPC_MoveChild2,
/* 44649*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44652*/          OPC_MoveParent,
/* 44653*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 44655*/          OPC_MoveParent,
/* 44656*/          OPC_CheckType, MVT::v8i1,
/* 44658*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 44660*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44663*/          OPC_EmitMergeInputChains, 1, 3, 
/* 44666*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 44669*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 44683*/        /*Scope*/ 58, /*->44742*/
/* 44684*/          OPC_MoveChild0,
/* 44685*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44688*/          OPC_MoveChild0,
/* 44689*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44692*/          OPC_RecordMemRef,
/* 44693*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 44694*/          OPC_CheckFoldableChainNode,
/* 44695*/          OPC_RecordChild1, // #3 = $src2
/* 44696*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44698*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44700*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44702*/          OPC_CheckType, MVT::v2i64,
/* 44704*/          OPC_MoveParent,
/* 44705*/          OPC_CheckType, MVT::v8i16,
/* 44707*/          OPC_MoveParent,
/* 44708*/          OPC_RecordChild1, // #4 = $src1
/* 44709*/          OPC_MoveChild2,
/* 44710*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44713*/          OPC_MoveParent,
/* 44714*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 44716*/          OPC_MoveParent,
/* 44717*/          OPC_CheckType, MVT::v8i1,
/* 44719*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 44721*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44724*/          OPC_EmitMergeInputChains1_2,
/* 44725*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 44728*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 44742*/        /*Scope*/ 60, /*->44803*/
/* 44743*/          OPC_RecordChild0, // #2 = $src1
/* 44744*/          OPC_CheckChild0Type, MVT::v32i16,
/* 44746*/          OPC_MoveChild1,
/* 44747*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44750*/          OPC_MoveChild0,
/* 44751*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44754*/          OPC_RecordMemRef,
/* 44755*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 44756*/          OPC_CheckFoldableChainNode,
/* 44757*/          OPC_RecordChild1, // #4 = $src2
/* 44758*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44760*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44762*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44764*/          OPC_CheckType, MVT::v8i64,
/* 44766*/          OPC_MoveParent,
/* 44767*/          OPC_MoveParent,
/* 44768*/          OPC_MoveChild2,
/* 44769*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44772*/          OPC_MoveParent,
/* 44773*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 44775*/          OPC_MoveParent,
/* 44776*/          OPC_CheckType, MVT::v32i1,
/* 44778*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 44780*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44783*/          OPC_EmitMergeInputChains, 1, 3, 
/* 44786*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 44789*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 44803*/        /*Scope*/ 58, /*->44862*/
/* 44804*/          OPC_MoveChild0,
/* 44805*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44808*/          OPC_MoveChild0,
/* 44809*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44812*/          OPC_RecordMemRef,
/* 44813*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 44814*/          OPC_CheckFoldableChainNode,
/* 44815*/          OPC_RecordChild1, // #3 = $src2
/* 44816*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44818*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44820*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44822*/          OPC_CheckType, MVT::v8i64,
/* 44824*/          OPC_MoveParent,
/* 44825*/          OPC_CheckType, MVT::v32i16,
/* 44827*/          OPC_MoveParent,
/* 44828*/          OPC_RecordChild1, // #4 = $src1
/* 44829*/          OPC_MoveChild2,
/* 44830*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44833*/          OPC_MoveParent,
/* 44834*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 44836*/          OPC_MoveParent,
/* 44837*/          OPC_CheckType, MVT::v32i1,
/* 44839*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 44841*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44844*/          OPC_EmitMergeInputChains1_2,
/* 44845*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 44848*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 44862*/        /*Scope*/ 60, /*->44923*/
/* 44863*/          OPC_RecordChild0, // #2 = $src1
/* 44864*/          OPC_CheckChild0Type, MVT::v16i16,
/* 44866*/          OPC_MoveChild1,
/* 44867*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44870*/          OPC_MoveChild0,
/* 44871*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44874*/          OPC_RecordMemRef,
/* 44875*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 44876*/          OPC_CheckFoldableChainNode,
/* 44877*/          OPC_RecordChild1, // #4 = $src2
/* 44878*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44880*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44882*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44884*/          OPC_CheckType, MVT::v4i64,
/* 44886*/          OPC_MoveParent,
/* 44887*/          OPC_MoveParent,
/* 44888*/          OPC_MoveChild2,
/* 44889*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44892*/          OPC_MoveParent,
/* 44893*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 44895*/          OPC_MoveParent,
/* 44896*/          OPC_CheckType, MVT::v16i1,
/* 44898*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 44900*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44903*/          OPC_EmitMergeInputChains, 1, 3, 
/* 44906*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 44909*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 44923*/        /*Scope*/ 58, /*->44982*/
/* 44924*/          OPC_MoveChild0,
/* 44925*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44928*/          OPC_MoveChild0,
/* 44929*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44932*/          OPC_RecordMemRef,
/* 44933*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 44934*/          OPC_CheckFoldableChainNode,
/* 44935*/          OPC_RecordChild1, // #3 = $src2
/* 44936*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44938*/          OPC_CheckPredicate, 9, // Predicate_load
/* 44940*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 44942*/          OPC_CheckType, MVT::v4i64,
/* 44944*/          OPC_MoveParent,
/* 44945*/          OPC_CheckType, MVT::v16i16,
/* 44947*/          OPC_MoveParent,
/* 44948*/          OPC_RecordChild1, // #4 = $src1
/* 44949*/          OPC_MoveChild2,
/* 44950*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 44953*/          OPC_MoveParent,
/* 44954*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 44956*/          OPC_MoveParent,
/* 44957*/          OPC_CheckType, MVT::v16i1,
/* 44959*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 44961*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44964*/          OPC_EmitMergeInputChains1_2,
/* 44965*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 44968*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 44982*/        /*Scope*/ 60, /*->45043*/
/* 44983*/          OPC_RecordChild0, // #2 = $src1
/* 44984*/          OPC_CheckChild0Type, MVT::v8i16,
/* 44986*/          OPC_MoveChild1,
/* 44987*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 44990*/          OPC_MoveChild0,
/* 44991*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 44994*/          OPC_RecordMemRef,
/* 44995*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 44996*/          OPC_CheckFoldableChainNode,
/* 44997*/          OPC_RecordChild1, // #4 = $src2
/* 44998*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45000*/          OPC_CheckPredicate, 9, // Predicate_load
/* 45002*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 45004*/          OPC_CheckType, MVT::v2i64,
/* 45006*/          OPC_MoveParent,
/* 45007*/          OPC_MoveParent,
/* 45008*/          OPC_MoveChild2,
/* 45009*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45012*/          OPC_MoveParent,
/* 45013*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 45015*/          OPC_MoveParent,
/* 45016*/          OPC_CheckType, MVT::v8i1,
/* 45018*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 45020*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45023*/          OPC_EmitMergeInputChains, 1, 3, 
/* 45026*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 45029*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 45043*/        /*Scope*/ 58, /*->45102*/
/* 45044*/          OPC_MoveChild0,
/* 45045*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45048*/          OPC_MoveChild0,
/* 45049*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45052*/          OPC_RecordMemRef,
/* 45053*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 45054*/          OPC_CheckFoldableChainNode,
/* 45055*/          OPC_RecordChild1, // #3 = $src2
/* 45056*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45058*/          OPC_CheckPredicate, 9, // Predicate_load
/* 45060*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 45062*/          OPC_CheckType, MVT::v2i64,
/* 45064*/          OPC_MoveParent,
/* 45065*/          OPC_CheckType, MVT::v8i16,
/* 45067*/          OPC_MoveParent,
/* 45068*/          OPC_RecordChild1, // #4 = $src1
/* 45069*/          OPC_MoveChild2,
/* 45070*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45073*/          OPC_MoveParent,
/* 45074*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 45076*/          OPC_MoveParent,
/* 45077*/          OPC_CheckType, MVT::v8i1,
/* 45079*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 45081*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45084*/          OPC_EmitMergeInputChains1_2,
/* 45085*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 45088*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 45102*/        /*Scope*/ 60, /*->45163*/
/* 45103*/          OPC_RecordChild0, // #2 = $src1
/* 45104*/          OPC_CheckChild0Type, MVT::v16i32,
/* 45106*/          OPC_MoveChild1,
/* 45107*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45110*/          OPC_MoveChild0,
/* 45111*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45114*/          OPC_RecordMemRef,
/* 45115*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 45116*/          OPC_CheckFoldableChainNode,
/* 45117*/          OPC_RecordChild1, // #4 = $src2
/* 45118*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45120*/          OPC_CheckPredicate, 9, // Predicate_load
/* 45122*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 45124*/          OPC_CheckType, MVT::v8i64,
/* 45126*/          OPC_MoveParent,
/* 45127*/          OPC_MoveParent,
/* 45128*/          OPC_MoveChild2,
/* 45129*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45132*/          OPC_MoveParent,
/* 45133*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 45135*/          OPC_MoveParent,
/* 45136*/          OPC_CheckType, MVT::v16i1,
/* 45138*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 45140*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45143*/          OPC_EmitMergeInputChains, 1, 3, 
/* 45146*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 45149*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 45163*/        /*Scope*/ 58, /*->45222*/
/* 45164*/          OPC_MoveChild0,
/* 45165*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45168*/          OPC_MoveChild0,
/* 45169*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45172*/          OPC_RecordMemRef,
/* 45173*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 45174*/          OPC_CheckFoldableChainNode,
/* 45175*/          OPC_RecordChild1, // #3 = $src2
/* 45176*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45178*/          OPC_CheckPredicate, 9, // Predicate_load
/* 45180*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 45182*/          OPC_CheckType, MVT::v8i64,
/* 45184*/          OPC_MoveParent,
/* 45185*/          OPC_CheckType, MVT::v16i32,
/* 45187*/          OPC_MoveParent,
/* 45188*/          OPC_RecordChild1, // #4 = $src1
/* 45189*/          OPC_MoveChild2,
/* 45190*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45193*/          OPC_MoveParent,
/* 45194*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 45196*/          OPC_MoveParent,
/* 45197*/          OPC_CheckType, MVT::v16i1,
/* 45199*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 45201*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45204*/          OPC_EmitMergeInputChains1_2,
/* 45205*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 45208*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 45222*/        /*Scope*/ 58, /*->45281*/
/* 45223*/          OPC_RecordChild0, // #2 = $src1
/* 45224*/          OPC_CheckChild0Type, MVT::v16i32,
/* 45226*/          OPC_MoveChild1,
/* 45227*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 45230*/          OPC_MoveChild0,
/* 45231*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45234*/          OPC_RecordMemRef,
/* 45235*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 45236*/          OPC_CheckFoldableChainNode,
/* 45237*/          OPC_RecordChild1, // #4 = $src2
/* 45238*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45240*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 45242*/          OPC_CheckType, MVT::i32,
/* 45244*/          OPC_MoveParent,
/* 45245*/          OPC_MoveParent,
/* 45246*/          OPC_MoveChild2,
/* 45247*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45250*/          OPC_MoveParent,
/* 45251*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 45253*/          OPC_MoveParent,
/* 45254*/          OPC_CheckType, MVT::v16i1,
/* 45256*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 45258*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45261*/          OPC_EmitMergeInputChains, 1, 3, 
/* 45264*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 45267*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 45281*/        /*Scope*/ 56, /*->45338*/
/* 45282*/          OPC_MoveChild0,
/* 45283*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 45286*/          OPC_MoveChild0,
/* 45287*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45290*/          OPC_RecordMemRef,
/* 45291*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 45292*/          OPC_CheckFoldableChainNode,
/* 45293*/          OPC_RecordChild1, // #3 = $src2
/* 45294*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45296*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 45298*/          OPC_CheckType, MVT::i32,
/* 45300*/          OPC_MoveParent,
/* 45301*/          OPC_CheckType, MVT::v16i32,
/* 45303*/          OPC_MoveParent,
/* 45304*/          OPC_RecordChild1, // #4 = $src1
/* 45305*/          OPC_MoveChild2,
/* 45306*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45309*/          OPC_MoveParent,
/* 45310*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 45312*/          OPC_MoveParent,
/* 45313*/          OPC_CheckType, MVT::v16i1,
/* 45315*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 45317*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45320*/          OPC_EmitMergeInputChains1_2,
/* 45321*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 45324*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 45338*/        /*Scope*/ 60, /*->45399*/
/* 45339*/          OPC_RecordChild0, // #2 = $src1
/* 45340*/          OPC_CheckChild0Type, MVT::v8i32,
/* 45342*/          OPC_MoveChild1,
/* 45343*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45346*/          OPC_MoveChild0,
/* 45347*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45350*/          OPC_RecordMemRef,
/* 45351*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 45352*/          OPC_CheckFoldableChainNode,
/* 45353*/          OPC_RecordChild1, // #4 = $src2
/* 45354*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45356*/          OPC_CheckPredicate, 9, // Predicate_load
/* 45358*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 45360*/          OPC_CheckType, MVT::v4i64,
/* 45362*/          OPC_MoveParent,
/* 45363*/          OPC_MoveParent,
/* 45364*/          OPC_MoveChild2,
/* 45365*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45368*/          OPC_MoveParent,
/* 45369*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 45371*/          OPC_MoveParent,
/* 45372*/          OPC_CheckType, MVT::v8i1,
/* 45374*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45376*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45379*/          OPC_EmitMergeInputChains, 1, 3, 
/* 45382*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 45385*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 45399*/        /*Scope*/ 58, /*->45458*/
/* 45400*/          OPC_MoveChild0,
/* 45401*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45404*/          OPC_MoveChild0,
/* 45405*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45408*/          OPC_RecordMemRef,
/* 45409*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 45410*/          OPC_CheckFoldableChainNode,
/* 45411*/          OPC_RecordChild1, // #3 = $src2
/* 45412*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45414*/          OPC_CheckPredicate, 9, // Predicate_load
/* 45416*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 45418*/          OPC_CheckType, MVT::v4i64,
/* 45420*/          OPC_MoveParent,
/* 45421*/          OPC_CheckType, MVT::v8i32,
/* 45423*/          OPC_MoveParent,
/* 45424*/          OPC_RecordChild1, // #4 = $src1
/* 45425*/          OPC_MoveChild2,
/* 45426*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45429*/          OPC_MoveParent,
/* 45430*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 45432*/          OPC_MoveParent,
/* 45433*/          OPC_CheckType, MVT::v8i1,
/* 45435*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45437*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45440*/          OPC_EmitMergeInputChains1_2,
/* 45441*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 45444*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 45458*/        /*Scope*/ 58, /*->45517*/
/* 45459*/          OPC_RecordChild0, // #2 = $src1
/* 45460*/          OPC_CheckChild0Type, MVT::v8i32,
/* 45462*/          OPC_MoveChild1,
/* 45463*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 45466*/          OPC_MoveChild0,
/* 45467*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45470*/          OPC_RecordMemRef,
/* 45471*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 45472*/          OPC_CheckFoldableChainNode,
/* 45473*/          OPC_RecordChild1, // #4 = $src2
/* 45474*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45476*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 45478*/          OPC_CheckType, MVT::i32,
/* 45480*/          OPC_MoveParent,
/* 45481*/          OPC_MoveParent,
/* 45482*/          OPC_MoveChild2,
/* 45483*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45486*/          OPC_MoveParent,
/* 45487*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 45489*/          OPC_MoveParent,
/* 45490*/          OPC_CheckType, MVT::v8i1,
/* 45492*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45494*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45497*/          OPC_EmitMergeInputChains, 1, 3, 
/* 45500*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 45503*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 45517*/        /*Scope*/ 56, /*->45574*/
/* 45518*/          OPC_MoveChild0,
/* 45519*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 45522*/          OPC_MoveChild0,
/* 45523*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45526*/          OPC_RecordMemRef,
/* 45527*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 45528*/          OPC_CheckFoldableChainNode,
/* 45529*/          OPC_RecordChild1, // #3 = $src2
/* 45530*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45532*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 45534*/          OPC_CheckType, MVT::i32,
/* 45536*/          OPC_MoveParent,
/* 45537*/          OPC_CheckType, MVT::v8i32,
/* 45539*/          OPC_MoveParent,
/* 45540*/          OPC_RecordChild1, // #4 = $src1
/* 45541*/          OPC_MoveChild2,
/* 45542*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45545*/          OPC_MoveParent,
/* 45546*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 45548*/          OPC_MoveParent,
/* 45549*/          OPC_CheckType, MVT::v8i1,
/* 45551*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45553*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45556*/          OPC_EmitMergeInputChains1_2,
/* 45557*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 45560*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 45574*/        /*Scope*/ 60, /*->45635*/
/* 45575*/          OPC_RecordChild0, // #2 = $src1
/* 45576*/          OPC_CheckChild0Type, MVT::v4i32,
/* 45578*/          OPC_MoveChild1,
/* 45579*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45582*/          OPC_MoveChild0,
/* 45583*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45586*/          OPC_RecordMemRef,
/* 45587*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 45588*/          OPC_CheckFoldableChainNode,
/* 45589*/          OPC_RecordChild1, // #4 = $src2
/* 45590*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45592*/          OPC_CheckPredicate, 9, // Predicate_load
/* 45594*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 45596*/          OPC_CheckType, MVT::v2i64,
/* 45598*/          OPC_MoveParent,
/* 45599*/          OPC_MoveParent,
/* 45600*/          OPC_MoveChild2,
/* 45601*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45604*/          OPC_MoveParent,
/* 45605*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 45607*/          OPC_MoveParent,
/* 45608*/          OPC_CheckType, MVT::v4i1,
/* 45610*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45612*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45615*/          OPC_EmitMergeInputChains, 1, 3, 
/* 45618*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 45621*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 45635*/        /*Scope*/ 58, /*->45694*/
/* 45636*/          OPC_MoveChild0,
/* 45637*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45640*/          OPC_MoveChild0,
/* 45641*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45644*/          OPC_RecordMemRef,
/* 45645*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 45646*/          OPC_CheckFoldableChainNode,
/* 45647*/          OPC_RecordChild1, // #3 = $src2
/* 45648*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45650*/          OPC_CheckPredicate, 9, // Predicate_load
/* 45652*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 45654*/          OPC_CheckType, MVT::v2i64,
/* 45656*/          OPC_MoveParent,
/* 45657*/          OPC_CheckType, MVT::v4i32,
/* 45659*/          OPC_MoveParent,
/* 45660*/          OPC_RecordChild1, // #4 = $src1
/* 45661*/          OPC_MoveChild2,
/* 45662*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45665*/          OPC_MoveParent,
/* 45666*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 45668*/          OPC_MoveParent,
/* 45669*/          OPC_CheckType, MVT::v4i1,
/* 45671*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45673*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45676*/          OPC_EmitMergeInputChains1_2,
/* 45677*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 45680*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 45694*/        /*Scope*/ 58, /*->45753*/
/* 45695*/          OPC_RecordChild0, // #2 = $src1
/* 45696*/          OPC_CheckChild0Type, MVT::v4i32,
/* 45698*/          OPC_MoveChild1,
/* 45699*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 45702*/          OPC_MoveChild0,
/* 45703*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45706*/          OPC_RecordMemRef,
/* 45707*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 45708*/          OPC_CheckFoldableChainNode,
/* 45709*/          OPC_RecordChild1, // #4 = $src2
/* 45710*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45712*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 45714*/          OPC_CheckType, MVT::i32,
/* 45716*/          OPC_MoveParent,
/* 45717*/          OPC_MoveParent,
/* 45718*/          OPC_MoveChild2,
/* 45719*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45722*/          OPC_MoveParent,
/* 45723*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 45725*/          OPC_MoveParent,
/* 45726*/          OPC_CheckType, MVT::v4i1,
/* 45728*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45730*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45733*/          OPC_EmitMergeInputChains, 1, 3, 
/* 45736*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 45739*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 45753*/        /*Scope*/ 56, /*->45810*/
/* 45754*/          OPC_MoveChild0,
/* 45755*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 45758*/          OPC_MoveChild0,
/* 45759*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45762*/          OPC_RecordMemRef,
/* 45763*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 45764*/          OPC_CheckFoldableChainNode,
/* 45765*/          OPC_RecordChild1, // #3 = $src2
/* 45766*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45768*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 45770*/          OPC_CheckType, MVT::i32,
/* 45772*/          OPC_MoveParent,
/* 45773*/          OPC_CheckType, MVT::v4i32,
/* 45775*/          OPC_MoveParent,
/* 45776*/          OPC_RecordChild1, // #4 = $src1
/* 45777*/          OPC_MoveChild2,
/* 45778*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45781*/          OPC_MoveParent,
/* 45782*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 45784*/          OPC_MoveParent,
/* 45785*/          OPC_CheckType, MVT::v4i1,
/* 45787*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45789*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45792*/          OPC_EmitMergeInputChains1_2,
/* 45793*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 45796*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 45810*/        /*Scope*/ 60, /*->45871*/
/* 45811*/          OPC_RecordChild0, // #2 = $src1
/* 45812*/          OPC_CheckChild0Type, MVT::v16i32,
/* 45814*/          OPC_MoveChild1,
/* 45815*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45818*/          OPC_MoveChild0,
/* 45819*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45822*/          OPC_RecordMemRef,
/* 45823*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 45824*/          OPC_CheckFoldableChainNode,
/* 45825*/          OPC_RecordChild1, // #4 = $src2
/* 45826*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45828*/          OPC_CheckPredicate, 9, // Predicate_load
/* 45830*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 45832*/          OPC_CheckType, MVT::v8i64,
/* 45834*/          OPC_MoveParent,
/* 45835*/          OPC_MoveParent,
/* 45836*/          OPC_MoveChild2,
/* 45837*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45840*/          OPC_MoveParent,
/* 45841*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 45843*/          OPC_MoveParent,
/* 45844*/          OPC_CheckType, MVT::v16i1,
/* 45846*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 45848*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45851*/          OPC_EmitMergeInputChains, 1, 3, 
/* 45854*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 45857*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 45871*/        /*Scope*/ 58, /*->45930*/
/* 45872*/          OPC_MoveChild0,
/* 45873*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45876*/          OPC_MoveChild0,
/* 45877*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45880*/          OPC_RecordMemRef,
/* 45881*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 45882*/          OPC_CheckFoldableChainNode,
/* 45883*/          OPC_RecordChild1, // #3 = $src2
/* 45884*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45886*/          OPC_CheckPredicate, 9, // Predicate_load
/* 45888*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 45890*/          OPC_CheckType, MVT::v8i64,
/* 45892*/          OPC_MoveParent,
/* 45893*/          OPC_CheckType, MVT::v16i32,
/* 45895*/          OPC_MoveParent,
/* 45896*/          OPC_RecordChild1, // #4 = $src1
/* 45897*/          OPC_MoveChild2,
/* 45898*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45901*/          OPC_MoveParent,
/* 45902*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 45904*/          OPC_MoveParent,
/* 45905*/          OPC_CheckType, MVT::v16i1,
/* 45907*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 45909*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45912*/          OPC_EmitMergeInputChains1_2,
/* 45913*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 45916*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 45930*/        /*Scope*/ 58, /*->45989*/
/* 45931*/          OPC_RecordChild0, // #2 = $src1
/* 45932*/          OPC_CheckChild0Type, MVT::v16i32,
/* 45934*/          OPC_MoveChild1,
/* 45935*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 45938*/          OPC_MoveChild0,
/* 45939*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45942*/          OPC_RecordMemRef,
/* 45943*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 45944*/          OPC_CheckFoldableChainNode,
/* 45945*/          OPC_RecordChild1, // #4 = $src2
/* 45946*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45948*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 45950*/          OPC_CheckType, MVT::i32,
/* 45952*/          OPC_MoveParent,
/* 45953*/          OPC_MoveParent,
/* 45954*/          OPC_MoveChild2,
/* 45955*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 45958*/          OPC_MoveParent,
/* 45959*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 45961*/          OPC_MoveParent,
/* 45962*/          OPC_CheckType, MVT::v16i1,
/* 45964*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 45966*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45969*/          OPC_EmitMergeInputChains, 1, 3, 
/* 45972*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 45975*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 45989*/        /*Scope*/ 56, /*->46046*/
/* 45990*/          OPC_MoveChild0,
/* 45991*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 45994*/          OPC_MoveChild0,
/* 45995*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 45998*/          OPC_RecordMemRef,
/* 45999*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 46000*/          OPC_CheckFoldableChainNode,
/* 46001*/          OPC_RecordChild1, // #3 = $src2
/* 46002*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46004*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 46006*/          OPC_CheckType, MVT::i32,
/* 46008*/          OPC_MoveParent,
/* 46009*/          OPC_CheckType, MVT::v16i32,
/* 46011*/          OPC_MoveParent,
/* 46012*/          OPC_RecordChild1, // #4 = $src1
/* 46013*/          OPC_MoveChild2,
/* 46014*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46017*/          OPC_MoveParent,
/* 46018*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 46020*/          OPC_MoveParent,
/* 46021*/          OPC_CheckType, MVT::v16i1,
/* 46023*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 46025*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46028*/          OPC_EmitMergeInputChains1_2,
/* 46029*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 46032*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 46046*/        /*Scope*/ 60, /*->46107*/
/* 46047*/          OPC_RecordChild0, // #2 = $src1
/* 46048*/          OPC_CheckChild0Type, MVT::v8i32,
/* 46050*/          OPC_MoveChild1,
/* 46051*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 46054*/          OPC_MoveChild0,
/* 46055*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46058*/          OPC_RecordMemRef,
/* 46059*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 46060*/          OPC_CheckFoldableChainNode,
/* 46061*/          OPC_RecordChild1, // #4 = $src2
/* 46062*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46064*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46066*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 46068*/          OPC_CheckType, MVT::v4i64,
/* 46070*/          OPC_MoveParent,
/* 46071*/          OPC_MoveParent,
/* 46072*/          OPC_MoveChild2,
/* 46073*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46076*/          OPC_MoveParent,
/* 46077*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 46079*/          OPC_MoveParent,
/* 46080*/          OPC_CheckType, MVT::v8i1,
/* 46082*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46084*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46087*/          OPC_EmitMergeInputChains, 1, 3, 
/* 46090*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 46093*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 46107*/        /*Scope*/ 58, /*->46166*/
/* 46108*/          OPC_MoveChild0,
/* 46109*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 46112*/          OPC_MoveChild0,
/* 46113*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46116*/          OPC_RecordMemRef,
/* 46117*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 46118*/          OPC_CheckFoldableChainNode,
/* 46119*/          OPC_RecordChild1, // #3 = $src2
/* 46120*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46122*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46124*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 46126*/          OPC_CheckType, MVT::v4i64,
/* 46128*/          OPC_MoveParent,
/* 46129*/          OPC_CheckType, MVT::v8i32,
/* 46131*/          OPC_MoveParent,
/* 46132*/          OPC_RecordChild1, // #4 = $src1
/* 46133*/          OPC_MoveChild2,
/* 46134*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46137*/          OPC_MoveParent,
/* 46138*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 46140*/          OPC_MoveParent,
/* 46141*/          OPC_CheckType, MVT::v8i1,
/* 46143*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46145*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46148*/          OPC_EmitMergeInputChains1_2,
/* 46149*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 46152*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 46166*/        /*Scope*/ 58, /*->46225*/
/* 46167*/          OPC_RecordChild0, // #2 = $src1
/* 46168*/          OPC_CheckChild0Type, MVT::v8i32,
/* 46170*/          OPC_MoveChild1,
/* 46171*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46174*/          OPC_MoveChild0,
/* 46175*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46178*/          OPC_RecordMemRef,
/* 46179*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 46180*/          OPC_CheckFoldableChainNode,
/* 46181*/          OPC_RecordChild1, // #4 = $src2
/* 46182*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46184*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 46186*/          OPC_CheckType, MVT::i32,
/* 46188*/          OPC_MoveParent,
/* 46189*/          OPC_MoveParent,
/* 46190*/          OPC_MoveChild2,
/* 46191*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46194*/          OPC_MoveParent,
/* 46195*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 46197*/          OPC_MoveParent,
/* 46198*/          OPC_CheckType, MVT::v8i1,
/* 46200*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46202*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46205*/          OPC_EmitMergeInputChains, 1, 3, 
/* 46208*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 46211*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 46225*/        /*Scope*/ 56, /*->46282*/
/* 46226*/          OPC_MoveChild0,
/* 46227*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46230*/          OPC_MoveChild0,
/* 46231*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46234*/          OPC_RecordMemRef,
/* 46235*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 46236*/          OPC_CheckFoldableChainNode,
/* 46237*/          OPC_RecordChild1, // #3 = $src2
/* 46238*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46240*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 46242*/          OPC_CheckType, MVT::i32,
/* 46244*/          OPC_MoveParent,
/* 46245*/          OPC_CheckType, MVT::v8i32,
/* 46247*/          OPC_MoveParent,
/* 46248*/          OPC_RecordChild1, // #4 = $src1
/* 46249*/          OPC_MoveChild2,
/* 46250*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46253*/          OPC_MoveParent,
/* 46254*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 46256*/          OPC_MoveParent,
/* 46257*/          OPC_CheckType, MVT::v8i1,
/* 46259*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46261*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46264*/          OPC_EmitMergeInputChains1_2,
/* 46265*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 46268*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 46282*/        /*Scope*/ 60, /*->46343*/
/* 46283*/          OPC_RecordChild0, // #2 = $src1
/* 46284*/          OPC_CheckChild0Type, MVT::v4i32,
/* 46286*/          OPC_MoveChild1,
/* 46287*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 46290*/          OPC_MoveChild0,
/* 46291*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46294*/          OPC_RecordMemRef,
/* 46295*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 46296*/          OPC_CheckFoldableChainNode,
/* 46297*/          OPC_RecordChild1, // #4 = $src2
/* 46298*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46300*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46302*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 46304*/          OPC_CheckType, MVT::v2i64,
/* 46306*/          OPC_MoveParent,
/* 46307*/          OPC_MoveParent,
/* 46308*/          OPC_MoveChild2,
/* 46309*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46312*/          OPC_MoveParent,
/* 46313*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 46315*/          OPC_MoveParent,
/* 46316*/          OPC_CheckType, MVT::v4i1,
/* 46318*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46320*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46323*/          OPC_EmitMergeInputChains, 1, 3, 
/* 46326*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 46329*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 46343*/        /*Scope*/ 58, /*->46402*/
/* 46344*/          OPC_MoveChild0,
/* 46345*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 46348*/          OPC_MoveChild0,
/* 46349*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46352*/          OPC_RecordMemRef,
/* 46353*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 46354*/          OPC_CheckFoldableChainNode,
/* 46355*/          OPC_RecordChild1, // #3 = $src2
/* 46356*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46358*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46360*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 46362*/          OPC_CheckType, MVT::v2i64,
/* 46364*/          OPC_MoveParent,
/* 46365*/          OPC_CheckType, MVT::v4i32,
/* 46367*/          OPC_MoveParent,
/* 46368*/          OPC_RecordChild1, // #4 = $src1
/* 46369*/          OPC_MoveChild2,
/* 46370*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46373*/          OPC_MoveParent,
/* 46374*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 46376*/          OPC_MoveParent,
/* 46377*/          OPC_CheckType, MVT::v4i1,
/* 46379*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46381*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46384*/          OPC_EmitMergeInputChains1_2,
/* 46385*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 46388*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 46402*/        /*Scope*/ 58, /*->46461*/
/* 46403*/          OPC_RecordChild0, // #2 = $src1
/* 46404*/          OPC_CheckChild0Type, MVT::v4i32,
/* 46406*/          OPC_MoveChild1,
/* 46407*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46410*/          OPC_MoveChild0,
/* 46411*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46414*/          OPC_RecordMemRef,
/* 46415*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 46416*/          OPC_CheckFoldableChainNode,
/* 46417*/          OPC_RecordChild1, // #4 = $src2
/* 46418*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46420*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 46422*/          OPC_CheckType, MVT::i32,
/* 46424*/          OPC_MoveParent,
/* 46425*/          OPC_MoveParent,
/* 46426*/          OPC_MoveChild2,
/* 46427*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46430*/          OPC_MoveParent,
/* 46431*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 46433*/          OPC_MoveParent,
/* 46434*/          OPC_CheckType, MVT::v4i1,
/* 46436*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46438*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46441*/          OPC_EmitMergeInputChains, 1, 3, 
/* 46444*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 46447*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 46461*/        /*Scope*/ 56, /*->46518*/
/* 46462*/          OPC_MoveChild0,
/* 46463*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46466*/          OPC_MoveChild0,
/* 46467*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46470*/          OPC_RecordMemRef,
/* 46471*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 46472*/          OPC_CheckFoldableChainNode,
/* 46473*/          OPC_RecordChild1, // #3 = $src2
/* 46474*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46476*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 46478*/          OPC_CheckType, MVT::i32,
/* 46480*/          OPC_MoveParent,
/* 46481*/          OPC_CheckType, MVT::v4i32,
/* 46483*/          OPC_MoveParent,
/* 46484*/          OPC_RecordChild1, // #4 = $src1
/* 46485*/          OPC_MoveChild2,
/* 46486*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46489*/          OPC_MoveParent,
/* 46490*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 46492*/          OPC_MoveParent,
/* 46493*/          OPC_CheckType, MVT::v4i1,
/* 46495*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46497*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46500*/          OPC_EmitMergeInputChains1_2,
/* 46501*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 46504*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 46518*/        /*Scope*/ 58, /*->46577*/
/* 46519*/          OPC_RecordChild0, // #2 = $src1
/* 46520*/          OPC_CheckChild0Type, MVT::v8i64,
/* 46522*/          OPC_MoveChild1,
/* 46523*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46526*/          OPC_MoveChild0,
/* 46527*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46530*/          OPC_RecordMemRef,
/* 46531*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 46532*/          OPC_CheckFoldableChainNode,
/* 46533*/          OPC_RecordChild1, // #4 = $src2
/* 46534*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46536*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46538*/          OPC_CheckType, MVT::i64,
/* 46540*/          OPC_MoveParent,
/* 46541*/          OPC_MoveParent,
/* 46542*/          OPC_MoveChild2,
/* 46543*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46546*/          OPC_MoveParent,
/* 46547*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 46549*/          OPC_MoveParent,
/* 46550*/          OPC_CheckType, MVT::v8i1,
/* 46552*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 46554*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46557*/          OPC_EmitMergeInputChains, 1, 3, 
/* 46560*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 46563*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 46577*/        /*Scope*/ 56, /*->46634*/
/* 46578*/          OPC_MoveChild0,
/* 46579*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46582*/          OPC_MoveChild0,
/* 46583*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46586*/          OPC_RecordMemRef,
/* 46587*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 46588*/          OPC_CheckFoldableChainNode,
/* 46589*/          OPC_RecordChild1, // #3 = $src2
/* 46590*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46592*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46594*/          OPC_CheckType, MVT::i64,
/* 46596*/          OPC_MoveParent,
/* 46597*/          OPC_CheckType, MVT::v8i64,
/* 46599*/          OPC_MoveParent,
/* 46600*/          OPC_RecordChild1, // #4 = $src1
/* 46601*/          OPC_MoveChild2,
/* 46602*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46605*/          OPC_MoveParent,
/* 46606*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 46608*/          OPC_MoveParent,
/* 46609*/          OPC_CheckType, MVT::v8i1,
/* 46611*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 46613*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46616*/          OPC_EmitMergeInputChains1_2,
/* 46617*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 46620*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 46634*/        /*Scope*/ 58, /*->46693*/
/* 46635*/          OPC_RecordChild0, // #2 = $src1
/* 46636*/          OPC_CheckChild0Type, MVT::v4i64,
/* 46638*/          OPC_MoveChild1,
/* 46639*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46642*/          OPC_MoveChild0,
/* 46643*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46646*/          OPC_RecordMemRef,
/* 46647*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 46648*/          OPC_CheckFoldableChainNode,
/* 46649*/          OPC_RecordChild1, // #4 = $src2
/* 46650*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46652*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46654*/          OPC_CheckType, MVT::i64,
/* 46656*/          OPC_MoveParent,
/* 46657*/          OPC_MoveParent,
/* 46658*/          OPC_MoveChild2,
/* 46659*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46662*/          OPC_MoveParent,
/* 46663*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 46665*/          OPC_MoveParent,
/* 46666*/          OPC_CheckType, MVT::v4i1,
/* 46668*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46670*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46673*/          OPC_EmitMergeInputChains, 1, 3, 
/* 46676*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 46679*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 46693*/        /*Scope*/ 56, /*->46750*/
/* 46694*/          OPC_MoveChild0,
/* 46695*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46698*/          OPC_MoveChild0,
/* 46699*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46702*/          OPC_RecordMemRef,
/* 46703*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 46704*/          OPC_CheckFoldableChainNode,
/* 46705*/          OPC_RecordChild1, // #3 = $src2
/* 46706*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46708*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46710*/          OPC_CheckType, MVT::i64,
/* 46712*/          OPC_MoveParent,
/* 46713*/          OPC_CheckType, MVT::v4i64,
/* 46715*/          OPC_MoveParent,
/* 46716*/          OPC_RecordChild1, // #4 = $src1
/* 46717*/          OPC_MoveChild2,
/* 46718*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46721*/          OPC_MoveParent,
/* 46722*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 46724*/          OPC_MoveParent,
/* 46725*/          OPC_CheckType, MVT::v4i1,
/* 46727*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46729*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46732*/          OPC_EmitMergeInputChains1_2,
/* 46733*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 46736*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 46750*/        /*Scope*/ 58, /*->46809*/
/* 46751*/          OPC_RecordChild0, // #2 = $src1
/* 46752*/          OPC_CheckChild0Type, MVT::v2i64,
/* 46754*/          OPC_MoveChild1,
/* 46755*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46758*/          OPC_MoveChild0,
/* 46759*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46762*/          OPC_RecordMemRef,
/* 46763*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 46764*/          OPC_CheckFoldableChainNode,
/* 46765*/          OPC_RecordChild1, // #4 = $src2
/* 46766*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46768*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46770*/          OPC_CheckType, MVT::i64,
/* 46772*/          OPC_MoveParent,
/* 46773*/          OPC_MoveParent,
/* 46774*/          OPC_MoveChild2,
/* 46775*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46778*/          OPC_MoveParent,
/* 46779*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 46781*/          OPC_MoveParent,
/* 46782*/          OPC_CheckType, MVT::v2i1,
/* 46784*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46786*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46789*/          OPC_EmitMergeInputChains, 1, 3, 
/* 46792*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 46795*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 46809*/        /*Scope*/ 56, /*->46866*/
/* 46810*/          OPC_MoveChild0,
/* 46811*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46814*/          OPC_MoveChild0,
/* 46815*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46818*/          OPC_RecordMemRef,
/* 46819*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 46820*/          OPC_CheckFoldableChainNode,
/* 46821*/          OPC_RecordChild1, // #3 = $src2
/* 46822*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46824*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46826*/          OPC_CheckType, MVT::i64,
/* 46828*/          OPC_MoveParent,
/* 46829*/          OPC_CheckType, MVT::v2i64,
/* 46831*/          OPC_MoveParent,
/* 46832*/          OPC_RecordChild1, // #4 = $src1
/* 46833*/          OPC_MoveChild2,
/* 46834*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46837*/          OPC_MoveParent,
/* 46838*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 46840*/          OPC_MoveParent,
/* 46841*/          OPC_CheckType, MVT::v2i1,
/* 46843*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 46845*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46848*/          OPC_EmitMergeInputChains1_2,
/* 46849*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 46852*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 46866*/        /*Scope*/ 58, /*->46925*/
/* 46867*/          OPC_RecordChild0, // #2 = $src1
/* 46868*/          OPC_CheckChild0Type, MVT::v8i64,
/* 46870*/          OPC_MoveChild1,
/* 46871*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46874*/          OPC_MoveChild0,
/* 46875*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46878*/          OPC_RecordMemRef,
/* 46879*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 46880*/          OPC_CheckFoldableChainNode,
/* 46881*/          OPC_RecordChild1, // #4 = $src2
/* 46882*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46884*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46886*/          OPC_CheckType, MVT::i64,
/* 46888*/          OPC_MoveParent,
/* 46889*/          OPC_MoveParent,
/* 46890*/          OPC_MoveChild2,
/* 46891*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46894*/          OPC_MoveParent,
/* 46895*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 46897*/          OPC_MoveParent,
/* 46898*/          OPC_CheckType, MVT::v8i1,
/* 46900*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 46902*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46905*/          OPC_EmitMergeInputChains, 1, 3, 
/* 46908*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 46911*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 46925*/        /*Scope*/ 56, /*->46982*/
/* 46926*/          OPC_MoveChild0,
/* 46927*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46930*/          OPC_MoveChild0,
/* 46931*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46934*/          OPC_RecordMemRef,
/* 46935*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 46936*/          OPC_CheckFoldableChainNode,
/* 46937*/          OPC_RecordChild1, // #3 = $src2
/* 46938*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 46940*/          OPC_CheckPredicate, 9, // Predicate_load
/* 46942*/          OPC_CheckType, MVT::i64,
/* 46944*/          OPC_MoveParent,
/* 46945*/          OPC_CheckType, MVT::v8i64,
/* 46947*/          OPC_MoveParent,
/* 46948*/          OPC_RecordChild1, // #4 = $src1
/* 46949*/          OPC_MoveChild2,
/* 46950*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 46953*/          OPC_MoveParent,
/* 46954*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 46956*/          OPC_MoveParent,
/* 46957*/          OPC_CheckType, MVT::v8i1,
/* 46959*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 46961*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46964*/          OPC_EmitMergeInputChains1_2,
/* 46965*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 46968*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 46982*/        /*Scope*/ 58, /*->47041*/
/* 46983*/          OPC_RecordChild0, // #2 = $src1
/* 46984*/          OPC_CheckChild0Type, MVT::v4i64,
/* 46986*/          OPC_MoveChild1,
/* 46987*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 46990*/          OPC_MoveChild0,
/* 46991*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 46994*/          OPC_RecordMemRef,
/* 46995*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 46996*/          OPC_CheckFoldableChainNode,
/* 46997*/          OPC_RecordChild1, // #4 = $src2
/* 46998*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47000*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47002*/          OPC_CheckType, MVT::i64,
/* 47004*/          OPC_MoveParent,
/* 47005*/          OPC_MoveParent,
/* 47006*/          OPC_MoveChild2,
/* 47007*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47010*/          OPC_MoveParent,
/* 47011*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 47013*/          OPC_MoveParent,
/* 47014*/          OPC_CheckType, MVT::v4i1,
/* 47016*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 47018*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47021*/          OPC_EmitMergeInputChains, 1, 3, 
/* 47024*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 47027*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 47041*/        /*Scope*/ 56, /*->47098*/
/* 47042*/          OPC_MoveChild0,
/* 47043*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 47046*/          OPC_MoveChild0,
/* 47047*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47050*/          OPC_RecordMemRef,
/* 47051*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 47052*/          OPC_CheckFoldableChainNode,
/* 47053*/          OPC_RecordChild1, // #3 = $src2
/* 47054*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47056*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47058*/          OPC_CheckType, MVT::i64,
/* 47060*/          OPC_MoveParent,
/* 47061*/          OPC_CheckType, MVT::v4i64,
/* 47063*/          OPC_MoveParent,
/* 47064*/          OPC_RecordChild1, // #4 = $src1
/* 47065*/          OPC_MoveChild2,
/* 47066*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47069*/          OPC_MoveParent,
/* 47070*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 47072*/          OPC_MoveParent,
/* 47073*/          OPC_CheckType, MVT::v4i1,
/* 47075*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 47077*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47080*/          OPC_EmitMergeInputChains1_2,
/* 47081*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 47084*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 47098*/        /*Scope*/ 58, /*->47157*/
/* 47099*/          OPC_RecordChild0, // #2 = $src1
/* 47100*/          OPC_CheckChild0Type, MVT::v2i64,
/* 47102*/          OPC_MoveChild1,
/* 47103*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 47106*/          OPC_MoveChild0,
/* 47107*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47110*/          OPC_RecordMemRef,
/* 47111*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 47112*/          OPC_CheckFoldableChainNode,
/* 47113*/          OPC_RecordChild1, // #4 = $src2
/* 47114*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47116*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47118*/          OPC_CheckType, MVT::i64,
/* 47120*/          OPC_MoveParent,
/* 47121*/          OPC_MoveParent,
/* 47122*/          OPC_MoveChild2,
/* 47123*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47126*/          OPC_MoveParent,
/* 47127*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 47129*/          OPC_MoveParent,
/* 47130*/          OPC_CheckType, MVT::v2i1,
/* 47132*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 47134*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47137*/          OPC_EmitMergeInputChains, 1, 3, 
/* 47140*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 47143*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 47157*/        /*Scope*/ 56, /*->47214*/
/* 47158*/          OPC_MoveChild0,
/* 47159*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 47162*/          OPC_MoveChild0,
/* 47163*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47166*/          OPC_RecordMemRef,
/* 47167*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 47168*/          OPC_CheckFoldableChainNode,
/* 47169*/          OPC_RecordChild1, // #3 = $src2
/* 47170*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47172*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47174*/          OPC_CheckType, MVT::i64,
/* 47176*/          OPC_MoveParent,
/* 47177*/          OPC_CheckType, MVT::v2i64,
/* 47179*/          OPC_MoveParent,
/* 47180*/          OPC_RecordChild1, // #4 = $src1
/* 47181*/          OPC_MoveChild2,
/* 47182*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47185*/          OPC_MoveParent,
/* 47186*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 47188*/          OPC_MoveParent,
/* 47189*/          OPC_CheckType, MVT::v2i1,
/* 47191*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 47193*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47196*/          OPC_EmitMergeInputChains1_2,
/* 47197*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 47200*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 32
                    // Dst: (VPCMPUQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 47214*/        0, /*End of Scope*/
/* 47215*/      /*Scope*/ 114|128,1/*242*/, /*->47459*/
/* 47217*/        OPC_MoveChild1,
/* 47218*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::CMPM),
/* 47221*/        OPC_MoveChild0,
/* 47222*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47225*/        OPC_RecordMemRef,
/* 47226*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 47227*/        OPC_CheckFoldableChainNode,
/* 47228*/        OPC_RecordChild1, // #2 = $src2
/* 47229*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47231*/        OPC_CheckPredicate, 9, // Predicate_load
/* 47233*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 47235*/        OPC_SwitchType /*6 cases */, 35, MVT::v8f64,// ->47273
/* 47238*/          OPC_MoveParent,
/* 47239*/          OPC_RecordChild1, // #3 = $src1
/* 47240*/          OPC_RecordChild2, // #4 = $cc
/* 47241*/          OPC_MoveChild2,
/* 47242*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47245*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 47247*/          OPC_MoveParent,
/* 47248*/          OPC_MoveParent,
/* 47249*/          OPC_CheckType, MVT::v8i1,
/* 47251*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 47253*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47256*/          OPC_EmitMergeInputChains1_1,
/* 47257*/          OPC_EmitConvertToTarget, 4,
/* 47259*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 32
                    // Dst: (VCMPPDZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 47273*/        /*SwitchType*/ 35, MVT::v2f64,// ->47310
/* 47275*/          OPC_MoveParent,
/* 47276*/          OPC_RecordChild1, // #3 = $src1
/* 47277*/          OPC_RecordChild2, // #4 = $cc
/* 47278*/          OPC_MoveChild2,
/* 47279*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47282*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 47284*/          OPC_MoveParent,
/* 47285*/          OPC_MoveParent,
/* 47286*/          OPC_CheckType, MVT::v2i1,
/* 47288*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 47290*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47293*/          OPC_EmitMergeInputChains1_1,
/* 47294*/          OPC_EmitConvertToTarget, 4,
/* 47296*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 32
                    // Dst: (VCMPPDZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 47310*/        /*SwitchType*/ 35, MVT::v4f64,// ->47347
/* 47312*/          OPC_MoveParent,
/* 47313*/          OPC_RecordChild1, // #3 = $src1
/* 47314*/          OPC_RecordChild2, // #4 = $cc
/* 47315*/          OPC_MoveChild2,
/* 47316*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47319*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 47321*/          OPC_MoveParent,
/* 47322*/          OPC_MoveParent,
/* 47323*/          OPC_CheckType, MVT::v4i1,
/* 47325*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 47327*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47330*/          OPC_EmitMergeInputChains1_1,
/* 47331*/          OPC_EmitConvertToTarget, 4,
/* 47333*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 32
                    // Dst: (VCMPPDZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 47347*/        /*SwitchType*/ 35, MVT::v16f32,// ->47384
/* 47349*/          OPC_MoveParent,
/* 47350*/          OPC_RecordChild1, // #3 = $src1
/* 47351*/          OPC_RecordChild2, // #4 = $cc
/* 47352*/          OPC_MoveChild2,
/* 47353*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47356*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 47358*/          OPC_MoveParent,
/* 47359*/          OPC_MoveParent,
/* 47360*/          OPC_CheckType, MVT::v16i1,
/* 47362*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 47364*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47367*/          OPC_EmitMergeInputChains1_1,
/* 47368*/          OPC_EmitConvertToTarget, 4,
/* 47370*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86cmpm:{ *:[v16i1] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 32
                    // Dst: (VCMPPSZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 47384*/        /*SwitchType*/ 35, MVT::v4f32,// ->47421
/* 47386*/          OPC_MoveParent,
/* 47387*/          OPC_RecordChild1, // #3 = $src1
/* 47388*/          OPC_RecordChild2, // #4 = $cc
/* 47389*/          OPC_MoveChild2,
/* 47390*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47393*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 47395*/          OPC_MoveParent,
/* 47396*/          OPC_MoveParent,
/* 47397*/          OPC_CheckType, MVT::v4i1,
/* 47399*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 47401*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47404*/          OPC_EmitMergeInputChains1_1,
/* 47405*/          OPC_EmitConvertToTarget, 4,
/* 47407*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 32
                    // Dst: (VCMPPSZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 47421*/        /*SwitchType*/ 35, MVT::v8f32,// ->47458
/* 47423*/          OPC_MoveParent,
/* 47424*/          OPC_RecordChild1, // #3 = $src1
/* 47425*/          OPC_RecordChild2, // #4 = $cc
/* 47426*/          OPC_MoveChild2,
/* 47427*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47430*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 47432*/          OPC_MoveParent,
/* 47433*/          OPC_MoveParent,
/* 47434*/          OPC_CheckType, MVT::v8i1,
/* 47436*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 47438*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47441*/          OPC_EmitMergeInputChains1_1,
/* 47442*/          OPC_EmitConvertToTarget, 4,
/* 47444*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc)) - Complexity = 32
                    // Dst: (VCMPPSZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 47458*/        0, // EndSwitchType
/* 47459*/      /*Scope*/ 84|128,19/*2516*/, /*->49977*/
/* 47461*/        OPC_MoveChild0,
/* 47462*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 47465*/        OPC_Scope, 88|128,10/*1368*/, /*->48836*/ // 2 children in Scope
/* 47468*/          OPC_RecordChild0, // #1 = $src1
/* 47469*/          OPC_Scope, 91, /*->47562*/ // 12 children in Scope
/* 47471*/            OPC_CheckChild0Type, MVT::v64i8,
/* 47473*/            OPC_MoveChild1,
/* 47474*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 47477*/            OPC_MoveChild0,
/* 47478*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47481*/            OPC_RecordMemRef,
/* 47482*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 47483*/            OPC_CheckFoldableChainNode,
/* 47484*/            OPC_RecordChild1, // #3 = $src2
/* 47485*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47487*/            OPC_CheckPredicate, 9, // Predicate_load
/* 47489*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 47491*/            OPC_CheckType, MVT::v8i64,
/* 47493*/            OPC_MoveParent,
/* 47494*/            OPC_MoveParent,
/* 47495*/            OPC_MoveChild2,
/* 47496*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47499*/            OPC_MoveParent,
/* 47500*/            OPC_Scope, 29, /*->47531*/ // 2 children in Scope
/* 47502*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 47504*/              OPC_MoveParent,
/* 47505*/              OPC_RecordChild1, // #4 = $mask
/* 47506*/              OPC_CheckType, MVT::v64i1,
/* 47508*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 47510*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47513*/              OPC_EmitMergeInputChains1_2,
/* 47514*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 47517*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 47531*/            /*Scope*/ 29, /*->47561*/
/* 47532*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 47534*/              OPC_MoveParent,
/* 47535*/              OPC_RecordChild1, // #4 = $mask
/* 47536*/              OPC_CheckType, MVT::v64i1,
/* 47538*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 47540*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47543*/              OPC_EmitMergeInputChains1_2,
/* 47544*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 47547*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPUBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 47561*/            0, /*End of Scope*/
/* 47562*/          /*Scope*/ 91, /*->47654*/
/* 47563*/            OPC_CheckChild0Type, MVT::v32i8,
/* 47565*/            OPC_MoveChild1,
/* 47566*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 47569*/            OPC_MoveChild0,
/* 47570*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47573*/            OPC_RecordMemRef,
/* 47574*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 47575*/            OPC_CheckFoldableChainNode,
/* 47576*/            OPC_RecordChild1, // #3 = $src2
/* 47577*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47579*/            OPC_CheckPredicate, 9, // Predicate_load
/* 47581*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 47583*/            OPC_CheckType, MVT::v4i64,
/* 47585*/            OPC_MoveParent,
/* 47586*/            OPC_MoveParent,
/* 47587*/            OPC_MoveChild2,
/* 47588*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47591*/            OPC_MoveParent,
/* 47592*/            OPC_Scope, 29, /*->47623*/ // 2 children in Scope
/* 47594*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 47596*/              OPC_MoveParent,
/* 47597*/              OPC_RecordChild1, // #4 = $mask
/* 47598*/              OPC_CheckType, MVT::v32i1,
/* 47600*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47602*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47605*/              OPC_EmitMergeInputChains1_2,
/* 47606*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 47609*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 47623*/            /*Scope*/ 29, /*->47653*/
/* 47624*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 47626*/              OPC_MoveParent,
/* 47627*/              OPC_RecordChild1, // #4 = $mask
/* 47628*/              OPC_CheckType, MVT::v32i1,
/* 47630*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47632*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47635*/              OPC_EmitMergeInputChains1_2,
/* 47636*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 47639*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPUBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 47653*/            0, /*End of Scope*/
/* 47654*/          /*Scope*/ 91, /*->47746*/
/* 47655*/            OPC_CheckChild0Type, MVT::v16i8,
/* 47657*/            OPC_MoveChild1,
/* 47658*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 47661*/            OPC_MoveChild0,
/* 47662*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47665*/            OPC_RecordMemRef,
/* 47666*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 47667*/            OPC_CheckFoldableChainNode,
/* 47668*/            OPC_RecordChild1, // #3 = $src2
/* 47669*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47671*/            OPC_CheckPredicate, 9, // Predicate_load
/* 47673*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 47675*/            OPC_CheckType, MVT::v2i64,
/* 47677*/            OPC_MoveParent,
/* 47678*/            OPC_MoveParent,
/* 47679*/            OPC_MoveChild2,
/* 47680*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47683*/            OPC_MoveParent,
/* 47684*/            OPC_Scope, 29, /*->47715*/ // 2 children in Scope
/* 47686*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 47688*/              OPC_MoveParent,
/* 47689*/              OPC_RecordChild1, // #4 = $mask
/* 47690*/              OPC_CheckType, MVT::v16i1,
/* 47692*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47694*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47697*/              OPC_EmitMergeInputChains1_2,
/* 47698*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 47701*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 47715*/            /*Scope*/ 29, /*->47745*/
/* 47716*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 47718*/              OPC_MoveParent,
/* 47719*/              OPC_RecordChild1, // #4 = $mask
/* 47720*/              OPC_CheckType, MVT::v16i1,
/* 47722*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47724*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47727*/              OPC_EmitMergeInputChains1_2,
/* 47728*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 47731*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPUBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 47745*/            0, /*End of Scope*/
/* 47746*/          /*Scope*/ 91, /*->47838*/
/* 47747*/            OPC_CheckChild0Type, MVT::v32i16,
/* 47749*/            OPC_MoveChild1,
/* 47750*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 47753*/            OPC_MoveChild0,
/* 47754*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47757*/            OPC_RecordMemRef,
/* 47758*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 47759*/            OPC_CheckFoldableChainNode,
/* 47760*/            OPC_RecordChild1, // #3 = $src2
/* 47761*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47763*/            OPC_CheckPredicate, 9, // Predicate_load
/* 47765*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 47767*/            OPC_CheckType, MVT::v8i64,
/* 47769*/            OPC_MoveParent,
/* 47770*/            OPC_MoveParent,
/* 47771*/            OPC_MoveChild2,
/* 47772*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47775*/            OPC_MoveParent,
/* 47776*/            OPC_Scope, 29, /*->47807*/ // 2 children in Scope
/* 47778*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 47780*/              OPC_MoveParent,
/* 47781*/              OPC_RecordChild1, // #4 = $mask
/* 47782*/              OPC_CheckType, MVT::v32i1,
/* 47784*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 47786*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47789*/              OPC_EmitMergeInputChains1_2,
/* 47790*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 47793*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 47807*/            /*Scope*/ 29, /*->47837*/
/* 47808*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 47810*/              OPC_MoveParent,
/* 47811*/              OPC_RecordChild1, // #4 = $mask
/* 47812*/              OPC_CheckType, MVT::v32i1,
/* 47814*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 47816*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47819*/              OPC_EmitMergeInputChains1_2,
/* 47820*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 47823*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPUWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 47837*/            0, /*End of Scope*/
/* 47838*/          /*Scope*/ 91, /*->47930*/
/* 47839*/            OPC_CheckChild0Type, MVT::v16i16,
/* 47841*/            OPC_MoveChild1,
/* 47842*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 47845*/            OPC_MoveChild0,
/* 47846*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47849*/            OPC_RecordMemRef,
/* 47850*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 47851*/            OPC_CheckFoldableChainNode,
/* 47852*/            OPC_RecordChild1, // #3 = $src2
/* 47853*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47855*/            OPC_CheckPredicate, 9, // Predicate_load
/* 47857*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 47859*/            OPC_CheckType, MVT::v4i64,
/* 47861*/            OPC_MoveParent,
/* 47862*/            OPC_MoveParent,
/* 47863*/            OPC_MoveChild2,
/* 47864*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47867*/            OPC_MoveParent,
/* 47868*/            OPC_Scope, 29, /*->47899*/ // 2 children in Scope
/* 47870*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 47872*/              OPC_MoveParent,
/* 47873*/              OPC_RecordChild1, // #4 = $mask
/* 47874*/              OPC_CheckType, MVT::v16i1,
/* 47876*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47878*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47881*/              OPC_EmitMergeInputChains1_2,
/* 47882*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 47885*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 47899*/            /*Scope*/ 29, /*->47929*/
/* 47900*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 47902*/              OPC_MoveParent,
/* 47903*/              OPC_RecordChild1, // #4 = $mask
/* 47904*/              OPC_CheckType, MVT::v16i1,
/* 47906*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47908*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47911*/              OPC_EmitMergeInputChains1_2,
/* 47912*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 47915*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPUWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 47929*/            0, /*End of Scope*/
/* 47930*/          /*Scope*/ 91, /*->48022*/
/* 47931*/            OPC_CheckChild0Type, MVT::v8i16,
/* 47933*/            OPC_MoveChild1,
/* 47934*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 47937*/            OPC_MoveChild0,
/* 47938*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47941*/            OPC_RecordMemRef,
/* 47942*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 47943*/            OPC_CheckFoldableChainNode,
/* 47944*/            OPC_RecordChild1, // #3 = $src2
/* 47945*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47947*/            OPC_CheckPredicate, 9, // Predicate_load
/* 47949*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 47951*/            OPC_CheckType, MVT::v2i64,
/* 47953*/            OPC_MoveParent,
/* 47954*/            OPC_MoveParent,
/* 47955*/            OPC_MoveChild2,
/* 47956*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47959*/            OPC_MoveParent,
/* 47960*/            OPC_Scope, 29, /*->47991*/ // 2 children in Scope
/* 47962*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 47964*/              OPC_MoveParent,
/* 47965*/              OPC_RecordChild1, // #4 = $mask
/* 47966*/              OPC_CheckType, MVT::v8i1,
/* 47968*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47970*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47973*/              OPC_EmitMergeInputChains1_2,
/* 47974*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 47977*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 47991*/            /*Scope*/ 29, /*->48021*/
/* 47992*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 47994*/              OPC_MoveParent,
/* 47995*/              OPC_RecordChild1, // #4 = $mask
/* 47996*/              OPC_CheckType, MVT::v8i1,
/* 47998*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 48000*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48003*/              OPC_EmitMergeInputChains1_2,
/* 48004*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48007*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPUWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 48021*/            0, /*End of Scope*/
/* 48022*/          /*Scope*/ 51|128,1/*179*/, /*->48203*/
/* 48024*/            OPC_CheckChild0Type, MVT::v16i32,
/* 48026*/            OPC_MoveChild1,
/* 48027*/            OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(ISD::BITCAST),// ->48116
/* 48031*/              OPC_MoveChild0,
/* 48032*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48035*/              OPC_RecordMemRef,
/* 48036*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 48037*/              OPC_CheckFoldableChainNode,
/* 48038*/              OPC_RecordChild1, // #3 = $src2
/* 48039*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48041*/              OPC_CheckPredicate, 9, // Predicate_load
/* 48043*/              OPC_CheckPredicate, 40, // Predicate_vecload
/* 48045*/              OPC_CheckType, MVT::v8i64,
/* 48047*/              OPC_MoveParent,
/* 48048*/              OPC_MoveParent,
/* 48049*/              OPC_MoveChild2,
/* 48050*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48053*/              OPC_MoveParent,
/* 48054*/              OPC_Scope, 29, /*->48085*/ // 2 children in Scope
/* 48056*/                OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 48058*/                OPC_MoveParent,
/* 48059*/                OPC_RecordChild1, // #4 = $mask
/* 48060*/                OPC_CheckType, MVT::v16i1,
/* 48062*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 48064*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48067*/                OPC_EmitMergeInputChains1_2,
/* 48068*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48071*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 48085*/              /*Scope*/ 29, /*->48115*/
/* 48086*/                OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 48088*/                OPC_MoveParent,
/* 48089*/                OPC_RecordChild1, // #4 = $mask
/* 48090*/                OPC_CheckType, MVT::v16i1,
/* 48092*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 48094*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48097*/                OPC_EmitMergeInputChains1_2,
/* 48098*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48101*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPUDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 48115*/              0, /*End of Scope*/
/* 48116*/            /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VBROADCAST),// ->48202
/* 48119*/              OPC_MoveChild0,
/* 48120*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48123*/              OPC_RecordMemRef,
/* 48124*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 48125*/              OPC_CheckFoldableChainNode,
/* 48126*/              OPC_RecordChild1, // #3 = $src2
/* 48127*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48129*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/* 48131*/              OPC_CheckType, MVT::i32,
/* 48133*/              OPC_MoveParent,
/* 48134*/              OPC_MoveParent,
/* 48135*/              OPC_MoveChild2,
/* 48136*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48139*/              OPC_MoveParent,
/* 48140*/              OPC_Scope, 29, /*->48171*/ // 2 children in Scope
/* 48142*/                OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 48144*/                OPC_MoveParent,
/* 48145*/                OPC_RecordChild1, // #4 = $mask
/* 48146*/                OPC_CheckType, MVT::v16i1,
/* 48148*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 48150*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48153*/                OPC_EmitMergeInputChains1_2,
/* 48154*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48157*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 48171*/              /*Scope*/ 29, /*->48201*/
/* 48172*/                OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 48174*/                OPC_MoveParent,
/* 48175*/                OPC_RecordChild1, // #4 = $mask
/* 48176*/                OPC_CheckType, MVT::v16i1,
/* 48178*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 48180*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48183*/                OPC_EmitMergeInputChains1_2,
/* 48184*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48187*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPUDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 48201*/              0, /*End of Scope*/
/* 48202*/            0, // EndSwitchOpcode
/* 48203*/          /*Scope*/ 51|128,1/*179*/, /*->48384*/
/* 48205*/            OPC_CheckChild0Type, MVT::v8i32,
/* 48207*/            OPC_MoveChild1,
/* 48208*/            OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(ISD::BITCAST),// ->48297
/* 48212*/              OPC_MoveChild0,
/* 48213*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48216*/              OPC_RecordMemRef,
/* 48217*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 48218*/              OPC_CheckFoldableChainNode,
/* 48219*/              OPC_RecordChild1, // #3 = $src2
/* 48220*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48222*/              OPC_CheckPredicate, 9, // Predicate_load
/* 48224*/              OPC_CheckPredicate, 40, // Predicate_vecload
/* 48226*/              OPC_CheckType, MVT::v4i64,
/* 48228*/              OPC_MoveParent,
/* 48229*/              OPC_MoveParent,
/* 48230*/              OPC_MoveChild2,
/* 48231*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48234*/              OPC_MoveParent,
/* 48235*/              OPC_Scope, 29, /*->48266*/ // 2 children in Scope
/* 48237*/                OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 48239*/                OPC_MoveParent,
/* 48240*/                OPC_RecordChild1, // #4 = $mask
/* 48241*/                OPC_CheckType, MVT::v8i1,
/* 48243*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48245*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48248*/                OPC_EmitMergeInputChains1_2,
/* 48249*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48252*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 48266*/              /*Scope*/ 29, /*->48296*/
/* 48267*/                OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 48269*/                OPC_MoveParent,
/* 48270*/                OPC_RecordChild1, // #4 = $mask
/* 48271*/                OPC_CheckType, MVT::v8i1,
/* 48273*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48275*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48278*/                OPC_EmitMergeInputChains1_2,
/* 48279*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48282*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPUDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 48296*/              0, /*End of Scope*/
/* 48297*/            /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VBROADCAST),// ->48383
/* 48300*/              OPC_MoveChild0,
/* 48301*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48304*/              OPC_RecordMemRef,
/* 48305*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 48306*/              OPC_CheckFoldableChainNode,
/* 48307*/              OPC_RecordChild1, // #3 = $src2
/* 48308*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48310*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/* 48312*/              OPC_CheckType, MVT::i32,
/* 48314*/              OPC_MoveParent,
/* 48315*/              OPC_MoveParent,
/* 48316*/              OPC_MoveChild2,
/* 48317*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48320*/              OPC_MoveParent,
/* 48321*/              OPC_Scope, 29, /*->48352*/ // 2 children in Scope
/* 48323*/                OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 48325*/                OPC_MoveParent,
/* 48326*/                OPC_RecordChild1, // #4 = $mask
/* 48327*/                OPC_CheckType, MVT::v8i1,
/* 48329*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48331*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48334*/                OPC_EmitMergeInputChains1_2,
/* 48335*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48338*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 48352*/              /*Scope*/ 29, /*->48382*/
/* 48353*/                OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 48355*/                OPC_MoveParent,
/* 48356*/                OPC_RecordChild1, // #4 = $mask
/* 48357*/                OPC_CheckType, MVT::v8i1,
/* 48359*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48361*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48364*/                OPC_EmitMergeInputChains1_2,
/* 48365*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48368*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPUDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 48382*/              0, /*End of Scope*/
/* 48383*/            0, // EndSwitchOpcode
/* 48384*/          /*Scope*/ 51|128,1/*179*/, /*->48565*/
/* 48386*/            OPC_CheckChild0Type, MVT::v4i32,
/* 48388*/            OPC_MoveChild1,
/* 48389*/            OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(ISD::BITCAST),// ->48478
/* 48393*/              OPC_MoveChild0,
/* 48394*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48397*/              OPC_RecordMemRef,
/* 48398*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 48399*/              OPC_CheckFoldableChainNode,
/* 48400*/              OPC_RecordChild1, // #3 = $src2
/* 48401*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48403*/              OPC_CheckPredicate, 9, // Predicate_load
/* 48405*/              OPC_CheckPredicate, 40, // Predicate_vecload
/* 48407*/              OPC_CheckType, MVT::v2i64,
/* 48409*/              OPC_MoveParent,
/* 48410*/              OPC_MoveParent,
/* 48411*/              OPC_MoveChild2,
/* 48412*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48415*/              OPC_MoveParent,
/* 48416*/              OPC_Scope, 29, /*->48447*/ // 2 children in Scope
/* 48418*/                OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 48420*/                OPC_MoveParent,
/* 48421*/                OPC_RecordChild1, // #4 = $mask
/* 48422*/                OPC_CheckType, MVT::v4i1,
/* 48424*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48426*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48429*/                OPC_EmitMergeInputChains1_2,
/* 48430*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48433*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 48447*/              /*Scope*/ 29, /*->48477*/
/* 48448*/                OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 48450*/                OPC_MoveParent,
/* 48451*/                OPC_RecordChild1, // #4 = $mask
/* 48452*/                OPC_CheckType, MVT::v4i1,
/* 48454*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48456*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48459*/                OPC_EmitMergeInputChains1_2,
/* 48460*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48463*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPUDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/* 48477*/              0, /*End of Scope*/
/* 48478*/            /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VBROADCAST),// ->48564
/* 48481*/              OPC_MoveChild0,
/* 48482*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48485*/              OPC_RecordMemRef,
/* 48486*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 48487*/              OPC_CheckFoldableChainNode,
/* 48488*/              OPC_RecordChild1, // #3 = $src2
/* 48489*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48491*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/* 48493*/              OPC_CheckType, MVT::i32,
/* 48495*/              OPC_MoveParent,
/* 48496*/              OPC_MoveParent,
/* 48497*/              OPC_MoveChild2,
/* 48498*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48501*/              OPC_MoveParent,
/* 48502*/              OPC_Scope, 29, /*->48533*/ // 2 children in Scope
/* 48504*/                OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 48506*/                OPC_MoveParent,
/* 48507*/                OPC_RecordChild1, // #4 = $mask
/* 48508*/                OPC_CheckType, MVT::v4i1,
/* 48510*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48512*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48515*/                OPC_EmitMergeInputChains1_2,
/* 48516*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48519*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 48533*/              /*Scope*/ 29, /*->48563*/
/* 48534*/                OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 48536*/                OPC_MoveParent,
/* 48537*/                OPC_RecordChild1, // #4 = $mask
/* 48538*/                OPC_CheckType, MVT::v4i1,
/* 48540*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48542*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48545*/                OPC_EmitMergeInputChains1_2,
/* 48546*/                OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48549*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                          // Dst: (VPCMPUDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/* 48563*/              0, /*End of Scope*/
/* 48564*/            0, // EndSwitchOpcode
/* 48565*/          /*Scope*/ 89, /*->48655*/
/* 48566*/            OPC_CheckChild0Type, MVT::v8i64,
/* 48568*/            OPC_MoveChild1,
/* 48569*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 48572*/            OPC_MoveChild0,
/* 48573*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48576*/            OPC_RecordMemRef,
/* 48577*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 48578*/            OPC_CheckFoldableChainNode,
/* 48579*/            OPC_RecordChild1, // #3 = $src2
/* 48580*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48582*/            OPC_CheckPredicate, 9, // Predicate_load
/* 48584*/            OPC_CheckType, MVT::i64,
/* 48586*/            OPC_MoveParent,
/* 48587*/            OPC_MoveParent,
/* 48588*/            OPC_MoveChild2,
/* 48589*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48592*/            OPC_MoveParent,
/* 48593*/            OPC_Scope, 29, /*->48624*/ // 2 children in Scope
/* 48595*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 48597*/              OPC_MoveParent,
/* 48598*/              OPC_RecordChild1, // #4 = $mask
/* 48599*/              OPC_CheckType, MVT::v8i1,
/* 48601*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 48603*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48606*/              OPC_EmitMergeInputChains1_2,
/* 48607*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48610*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 48624*/            /*Scope*/ 29, /*->48654*/
/* 48625*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 48627*/              OPC_MoveParent,
/* 48628*/              OPC_RecordChild1, // #4 = $mask
/* 48629*/              OPC_CheckType, MVT::v8i1,
/* 48631*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 48633*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48636*/              OPC_EmitMergeInputChains1_2,
/* 48637*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48640*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPUQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 48654*/            0, /*End of Scope*/
/* 48655*/          /*Scope*/ 89, /*->48745*/
/* 48656*/            OPC_CheckChild0Type, MVT::v4i64,
/* 48658*/            OPC_MoveChild1,
/* 48659*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 48662*/            OPC_MoveChild0,
/* 48663*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48666*/            OPC_RecordMemRef,
/* 48667*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 48668*/            OPC_CheckFoldableChainNode,
/* 48669*/            OPC_RecordChild1, // #3 = $src2
/* 48670*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48672*/            OPC_CheckPredicate, 9, // Predicate_load
/* 48674*/            OPC_CheckType, MVT::i64,
/* 48676*/            OPC_MoveParent,
/* 48677*/            OPC_MoveParent,
/* 48678*/            OPC_MoveChild2,
/* 48679*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48682*/            OPC_MoveParent,
/* 48683*/            OPC_Scope, 29, /*->48714*/ // 2 children in Scope
/* 48685*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 48687*/              OPC_MoveParent,
/* 48688*/              OPC_RecordChild1, // #4 = $mask
/* 48689*/              OPC_CheckType, MVT::v4i1,
/* 48691*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48693*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48696*/              OPC_EmitMergeInputChains1_2,
/* 48697*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48700*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 48714*/            /*Scope*/ 29, /*->48744*/
/* 48715*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 48717*/              OPC_MoveParent,
/* 48718*/              OPC_RecordChild1, // #4 = $mask
/* 48719*/              OPC_CheckType, MVT::v4i1,
/* 48721*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48723*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48726*/              OPC_EmitMergeInputChains1_2,
/* 48727*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48730*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPUQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 48744*/            0, /*End of Scope*/
/* 48745*/          /*Scope*/ 89, /*->48835*/
/* 48746*/            OPC_CheckChild0Type, MVT::v2i64,
/* 48748*/            OPC_MoveChild1,
/* 48749*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 48752*/            OPC_MoveChild0,
/* 48753*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48756*/            OPC_RecordMemRef,
/* 48757*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 48758*/            OPC_CheckFoldableChainNode,
/* 48759*/            OPC_RecordChild1, // #3 = $src2
/* 48760*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48762*/            OPC_CheckPredicate, 9, // Predicate_load
/* 48764*/            OPC_CheckType, MVT::i64,
/* 48766*/            OPC_MoveParent,
/* 48767*/            OPC_MoveParent,
/* 48768*/            OPC_MoveChild2,
/* 48769*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48772*/            OPC_MoveParent,
/* 48773*/            OPC_Scope, 29, /*->48804*/ // 2 children in Scope
/* 48775*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 48777*/              OPC_MoveParent,
/* 48778*/              OPC_RecordChild1, // #4 = $mask
/* 48779*/              OPC_CheckType, MVT::v2i1,
/* 48781*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48783*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48786*/              OPC_EmitMergeInputChains1_2,
/* 48787*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48790*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 48804*/            /*Scope*/ 29, /*->48834*/
/* 48805*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 48807*/              OPC_MoveParent,
/* 48808*/              OPC_RecordChild1, // #4 = $mask
/* 48809*/              OPC_CheckType, MVT::v2i1,
/* 48811*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48813*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48816*/              OPC_EmitMergeInputChains1_2,
/* 48817*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 48820*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 32
                        // Dst: (VPCMPUQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/* 48834*/            0, /*End of Scope*/
/* 48835*/          0, /*End of Scope*/
/* 48836*/        /*Scope*/ 114|128,8/*1138*/, /*->49976*/
/* 48838*/          OPC_MoveChild0,
/* 48839*/          OPC_SwitchOpcode /*2 cases */, 33|128,5/*673*/, TARGET_VAL(ISD::BITCAST),// ->49517
/* 48844*/            OPC_MoveChild0,
/* 48845*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48848*/            OPC_RecordMemRef,
/* 48849*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 48850*/            OPC_CheckFoldableChainNode,
/* 48851*/            OPC_RecordChild1, // #2 = $src2
/* 48852*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48854*/            OPC_CheckPredicate, 9, // Predicate_load
/* 48856*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 48858*/            OPC_SwitchType /*3 cases */, 88|128,1/*216*/, MVT::v8i64,// ->49078
/* 48862*/              OPC_MoveParent,
/* 48863*/              OPC_SwitchType /*3 cases */, 69, MVT::v64i8,// ->48935
/* 48866*/                OPC_MoveParent,
/* 48867*/                OPC_RecordChild1, // #3 = $src1
/* 48868*/                OPC_MoveChild2,
/* 48869*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48872*/                OPC_MoveParent,
/* 48873*/                OPC_Scope, 29, /*->48904*/ // 2 children in Scope
/* 48875*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 48877*/                  OPC_MoveParent,
/* 48878*/                  OPC_RecordChild1, // #4 = $mask
/* 48879*/                  OPC_CheckType, MVT::v64i1,
/* 48881*/                  OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 48883*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48886*/                  OPC_EmitMergeInputChains1_1,
/* 48887*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 48890*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v64i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/* 48904*/                /*Scope*/ 29, /*->48934*/
/* 48905*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 48907*/                  OPC_MoveParent,
/* 48908*/                  OPC_RecordChild1, // #4 = $mask
/* 48909*/                  OPC_CheckType, MVT::v64i1,
/* 48911*/                  OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 48913*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48916*/                  OPC_EmitMergeInputChains1_1,
/* 48917*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 48920*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v64i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/* 48934*/                0, /*End of Scope*/
/* 48935*/              /*SwitchType*/ 69, MVT::v32i16,// ->49006
/* 48937*/                OPC_MoveParent,
/* 48938*/                OPC_RecordChild1, // #3 = $src1
/* 48939*/                OPC_MoveChild2,
/* 48940*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48943*/                OPC_MoveParent,
/* 48944*/                OPC_Scope, 29, /*->48975*/ // 2 children in Scope
/* 48946*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 48948*/                  OPC_MoveParent,
/* 48949*/                  OPC_RecordChild1, // #4 = $mask
/* 48950*/                  OPC_CheckType, MVT::v32i1,
/* 48952*/                  OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 48954*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48957*/                  OPC_EmitMergeInputChains1_1,
/* 48958*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 48961*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v32i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 48975*/                /*Scope*/ 29, /*->49005*/
/* 48976*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 48978*/                  OPC_MoveParent,
/* 48979*/                  OPC_RecordChild1, // #4 = $mask
/* 48980*/                  OPC_CheckType, MVT::v32i1,
/* 48982*/                  OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 48984*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48987*/                  OPC_EmitMergeInputChains1_1,
/* 48988*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 48991*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v32i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 49005*/                0, /*End of Scope*/
/* 49006*/              /*SwitchType*/ 69, MVT::v16i32,// ->49077
/* 49008*/                OPC_MoveParent,
/* 49009*/                OPC_RecordChild1, // #3 = $src1
/* 49010*/                OPC_MoveChild2,
/* 49011*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49014*/                OPC_MoveParent,
/* 49015*/                OPC_Scope, 29, /*->49046*/ // 2 children in Scope
/* 49017*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49019*/                  OPC_MoveParent,
/* 49020*/                  OPC_RecordChild1, // #4 = $mask
/* 49021*/                  OPC_CheckType, MVT::v16i1,
/* 49023*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49025*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49028*/                  OPC_EmitMergeInputChains1_1,
/* 49029*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49032*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 49046*/                /*Scope*/ 29, /*->49076*/
/* 49047*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49049*/                  OPC_MoveParent,
/* 49050*/                  OPC_RecordChild1, // #4 = $mask
/* 49051*/                  OPC_CheckType, MVT::v16i1,
/* 49053*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49055*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49058*/                  OPC_EmitMergeInputChains1_1,
/* 49059*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49062*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 49076*/                0, /*End of Scope*/
/* 49077*/              0, // EndSwitchType
/* 49078*/            /*SwitchType*/ 88|128,1/*216*/, MVT::v4i64,// ->49297
/* 49081*/              OPC_MoveParent,
/* 49082*/              OPC_SwitchType /*3 cases */, 69, MVT::v32i8,// ->49154
/* 49085*/                OPC_MoveParent,
/* 49086*/                OPC_RecordChild1, // #3 = $src1
/* 49087*/                OPC_MoveChild2,
/* 49088*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49091*/                OPC_MoveParent,
/* 49092*/                OPC_Scope, 29, /*->49123*/ // 2 children in Scope
/* 49094*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49096*/                  OPC_MoveParent,
/* 49097*/                  OPC_RecordChild1, // #4 = $mask
/* 49098*/                  OPC_CheckType, MVT::v32i1,
/* 49100*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 49102*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49105*/                  OPC_EmitMergeInputChains1_1,
/* 49106*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49109*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v32i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 49123*/                /*Scope*/ 29, /*->49153*/
/* 49124*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49126*/                  OPC_MoveParent,
/* 49127*/                  OPC_RecordChild1, // #4 = $mask
/* 49128*/                  OPC_CheckType, MVT::v32i1,
/* 49130*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 49132*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49135*/                  OPC_EmitMergeInputChains1_1,
/* 49136*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49139*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v32i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 49153*/                0, /*End of Scope*/
/* 49154*/              /*SwitchType*/ 69, MVT::v16i16,// ->49225
/* 49156*/                OPC_MoveParent,
/* 49157*/                OPC_RecordChild1, // #3 = $src1
/* 49158*/                OPC_MoveChild2,
/* 49159*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49162*/                OPC_MoveParent,
/* 49163*/                OPC_Scope, 29, /*->49194*/ // 2 children in Scope
/* 49165*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49167*/                  OPC_MoveParent,
/* 49168*/                  OPC_RecordChild1, // #4 = $mask
/* 49169*/                  OPC_CheckType, MVT::v16i1,
/* 49171*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 49173*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49176*/                  OPC_EmitMergeInputChains1_1,
/* 49177*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49180*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 49194*/                /*Scope*/ 29, /*->49224*/
/* 49195*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49197*/                  OPC_MoveParent,
/* 49198*/                  OPC_RecordChild1, // #4 = $mask
/* 49199*/                  OPC_CheckType, MVT::v16i1,
/* 49201*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 49203*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49206*/                  OPC_EmitMergeInputChains1_1,
/* 49207*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49210*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 49224*/                0, /*End of Scope*/
/* 49225*/              /*SwitchType*/ 69, MVT::v8i32,// ->49296
/* 49227*/                OPC_MoveParent,
/* 49228*/                OPC_RecordChild1, // #3 = $src1
/* 49229*/                OPC_MoveChild2,
/* 49230*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49233*/                OPC_MoveParent,
/* 49234*/                OPC_Scope, 29, /*->49265*/ // 2 children in Scope
/* 49236*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49238*/                  OPC_MoveParent,
/* 49239*/                  OPC_RecordChild1, // #4 = $mask
/* 49240*/                  OPC_CheckType, MVT::v8i1,
/* 49242*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49244*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49247*/                  OPC_EmitMergeInputChains1_1,
/* 49248*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49251*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 49265*/                /*Scope*/ 29, /*->49295*/
/* 49266*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49268*/                  OPC_MoveParent,
/* 49269*/                  OPC_RecordChild1, // #4 = $mask
/* 49270*/                  OPC_CheckType, MVT::v8i1,
/* 49272*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49274*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49277*/                  OPC_EmitMergeInputChains1_1,
/* 49278*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49281*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 49295*/                0, /*End of Scope*/
/* 49296*/              0, // EndSwitchType
/* 49297*/            /*SwitchType*/ 88|128,1/*216*/, MVT::v2i64,// ->49516
/* 49300*/              OPC_MoveParent,
/* 49301*/              OPC_SwitchType /*3 cases */, 69, MVT::v16i8,// ->49373
/* 49304*/                OPC_MoveParent,
/* 49305*/                OPC_RecordChild1, // #3 = $src1
/* 49306*/                OPC_MoveChild2,
/* 49307*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49310*/                OPC_MoveParent,
/* 49311*/                OPC_Scope, 29, /*->49342*/ // 2 children in Scope
/* 49313*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49315*/                  OPC_MoveParent,
/* 49316*/                  OPC_RecordChild1, // #4 = $mask
/* 49317*/                  OPC_CheckType, MVT::v16i1,
/* 49319*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 49321*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49324*/                  OPC_EmitMergeInputChains1_1,
/* 49325*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49328*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 49342*/                /*Scope*/ 29, /*->49372*/
/* 49343*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49345*/                  OPC_MoveParent,
/* 49346*/                  OPC_RecordChild1, // #4 = $mask
/* 49347*/                  OPC_CheckType, MVT::v16i1,
/* 49349*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 49351*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49354*/                  OPC_EmitMergeInputChains1_1,
/* 49355*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49358*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 49372*/                0, /*End of Scope*/
/* 49373*/              /*SwitchType*/ 69, MVT::v8i16,// ->49444
/* 49375*/                OPC_MoveParent,
/* 49376*/                OPC_RecordChild1, // #3 = $src1
/* 49377*/                OPC_MoveChild2,
/* 49378*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49381*/                OPC_MoveParent,
/* 49382*/                OPC_Scope, 29, /*->49413*/ // 2 children in Scope
/* 49384*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49386*/                  OPC_MoveParent,
/* 49387*/                  OPC_RecordChild1, // #4 = $mask
/* 49388*/                  OPC_CheckType, MVT::v8i1,
/* 49390*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 49392*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49395*/                  OPC_EmitMergeInputChains1_1,
/* 49396*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49399*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 49413*/                /*Scope*/ 29, /*->49443*/
/* 49414*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49416*/                  OPC_MoveParent,
/* 49417*/                  OPC_RecordChild1, // #4 = $mask
/* 49418*/                  OPC_CheckType, MVT::v8i1,
/* 49420*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 49422*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49425*/                  OPC_EmitMergeInputChains1_1,
/* 49426*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49429*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 49443*/                0, /*End of Scope*/
/* 49444*/              /*SwitchType*/ 69, MVT::v4i32,// ->49515
/* 49446*/                OPC_MoveParent,
/* 49447*/                OPC_RecordChild1, // #3 = $src1
/* 49448*/                OPC_MoveChild2,
/* 49449*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49452*/                OPC_MoveParent,
/* 49453*/                OPC_Scope, 29, /*->49484*/ // 2 children in Scope
/* 49455*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49457*/                  OPC_MoveParent,
/* 49458*/                  OPC_RecordChild1, // #4 = $mask
/* 49459*/                  OPC_CheckType, MVT::v4i1,
/* 49461*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49463*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49466*/                  OPC_EmitMergeInputChains1_1,
/* 49467*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49470*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 49484*/                /*Scope*/ 29, /*->49514*/
/* 49485*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49487*/                  OPC_MoveParent,
/* 49488*/                  OPC_RecordChild1, // #4 = $mask
/* 49489*/                  OPC_CheckType, MVT::v4i1,
/* 49491*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49493*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49496*/                  OPC_EmitMergeInputChains1_1,
/* 49497*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49500*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 49514*/                0, /*End of Scope*/
/* 49515*/              0, // EndSwitchType
/* 49516*/            0, // EndSwitchType
/* 49517*/          /*SwitchOpcode*/ 70|128,3/*454*/, TARGET_VAL(X86ISD::VBROADCAST),// ->49975
/* 49521*/            OPC_MoveChild0,
/* 49522*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49525*/            OPC_RecordMemRef,
/* 49526*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 49527*/            OPC_CheckFoldableChainNode,
/* 49528*/            OPC_RecordChild1, // #2 = $src2
/* 49529*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49531*/            OPC_SwitchType /*2 cases */, 90|128,1/*218*/, MVT::i32,// ->49753
/* 49535*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/* 49537*/              OPC_MoveParent,
/* 49538*/              OPC_SwitchType /*3 cases */, 69, MVT::v16i32,// ->49610
/* 49541*/                OPC_MoveParent,
/* 49542*/                OPC_RecordChild1, // #3 = $src1
/* 49543*/                OPC_MoveChild2,
/* 49544*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49547*/                OPC_MoveParent,
/* 49548*/                OPC_Scope, 29, /*->49579*/ // 2 children in Scope
/* 49550*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49552*/                  OPC_MoveParent,
/* 49553*/                  OPC_RecordChild1, // #4 = $mask
/* 49554*/                  OPC_CheckType, MVT::v16i1,
/* 49556*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49558*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49561*/                  OPC_EmitMergeInputChains1_1,
/* 49562*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49565*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 49579*/                /*Scope*/ 29, /*->49609*/
/* 49580*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49582*/                  OPC_MoveParent,
/* 49583*/                  OPC_RecordChild1, // #4 = $mask
/* 49584*/                  OPC_CheckType, MVT::v16i1,
/* 49586*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49588*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49591*/                  OPC_EmitMergeInputChains1_1,
/* 49592*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49595*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 49609*/                0, /*End of Scope*/
/* 49610*/              /*SwitchType*/ 69, MVT::v8i32,// ->49681
/* 49612*/                OPC_MoveParent,
/* 49613*/                OPC_RecordChild1, // #3 = $src1
/* 49614*/                OPC_MoveChild2,
/* 49615*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49618*/                OPC_MoveParent,
/* 49619*/                OPC_Scope, 29, /*->49650*/ // 2 children in Scope
/* 49621*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49623*/                  OPC_MoveParent,
/* 49624*/                  OPC_RecordChild1, // #4 = $mask
/* 49625*/                  OPC_CheckType, MVT::v8i1,
/* 49627*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49629*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49632*/                  OPC_EmitMergeInputChains1_1,
/* 49633*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49636*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 49650*/                /*Scope*/ 29, /*->49680*/
/* 49651*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49653*/                  OPC_MoveParent,
/* 49654*/                  OPC_RecordChild1, // #4 = $mask
/* 49655*/                  OPC_CheckType, MVT::v8i1,
/* 49657*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49659*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49662*/                  OPC_EmitMergeInputChains1_1,
/* 49663*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49666*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 49680*/                0, /*End of Scope*/
/* 49681*/              /*SwitchType*/ 69, MVT::v4i32,// ->49752
/* 49683*/                OPC_MoveParent,
/* 49684*/                OPC_RecordChild1, // #3 = $src1
/* 49685*/                OPC_MoveChild2,
/* 49686*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49689*/                OPC_MoveParent,
/* 49690*/                OPC_Scope, 29, /*->49721*/ // 2 children in Scope
/* 49692*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49694*/                  OPC_MoveParent,
/* 49695*/                  OPC_RecordChild1, // #4 = $mask
/* 49696*/                  OPC_CheckType, MVT::v4i1,
/* 49698*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49700*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49703*/                  OPC_EmitMergeInputChains1_1,
/* 49704*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49707*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 49721*/                /*Scope*/ 29, /*->49751*/
/* 49722*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49724*/                  OPC_MoveParent,
/* 49725*/                  OPC_RecordChild1, // #4 = $mask
/* 49726*/                  OPC_CheckType, MVT::v4i1,
/* 49728*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49730*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49733*/                  OPC_EmitMergeInputChains1_1,
/* 49734*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49737*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 49751*/                0, /*End of Scope*/
/* 49752*/              0, // EndSwitchType
/* 49753*/            /*SwitchType*/ 90|128,1/*218*/, MVT::i64,// ->49974
/* 49756*/              OPC_CheckPredicate, 9, // Predicate_load
/* 49758*/              OPC_MoveParent,
/* 49759*/              OPC_SwitchType /*3 cases */, 69, MVT::v8i64,// ->49831
/* 49762*/                OPC_MoveParent,
/* 49763*/                OPC_RecordChild1, // #3 = $src1
/* 49764*/                OPC_MoveChild2,
/* 49765*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49768*/                OPC_MoveParent,
/* 49769*/                OPC_Scope, 29, /*->49800*/ // 2 children in Scope
/* 49771*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49773*/                  OPC_MoveParent,
/* 49774*/                  OPC_RecordChild1, // #4 = $mask
/* 49775*/                  OPC_CheckType, MVT::v8i1,
/* 49777*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49779*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49782*/                  OPC_EmitMergeInputChains1_1,
/* 49783*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49786*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 49800*/                /*Scope*/ 29, /*->49830*/
/* 49801*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49803*/                  OPC_MoveParent,
/* 49804*/                  OPC_RecordChild1, // #4 = $mask
/* 49805*/                  OPC_CheckType, MVT::v8i1,
/* 49807*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49809*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49812*/                  OPC_EmitMergeInputChains1_1,
/* 49813*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49816*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 49830*/                0, /*End of Scope*/
/* 49831*/              /*SwitchType*/ 69, MVT::v4i64,// ->49902
/* 49833*/                OPC_MoveParent,
/* 49834*/                OPC_RecordChild1, // #3 = $src1
/* 49835*/                OPC_MoveChild2,
/* 49836*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49839*/                OPC_MoveParent,
/* 49840*/                OPC_Scope, 29, /*->49871*/ // 2 children in Scope
/* 49842*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49844*/                  OPC_MoveParent,
/* 49845*/                  OPC_RecordChild1, // #4 = $mask
/* 49846*/                  OPC_CheckType, MVT::v4i1,
/* 49848*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49850*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49853*/                  OPC_EmitMergeInputChains1_1,
/* 49854*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49857*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 49871*/                /*Scope*/ 29, /*->49901*/
/* 49872*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49874*/                  OPC_MoveParent,
/* 49875*/                  OPC_RecordChild1, // #4 = $mask
/* 49876*/                  OPC_CheckType, MVT::v4i1,
/* 49878*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49880*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49883*/                  OPC_EmitMergeInputChains1_1,
/* 49884*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49887*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 49901*/                0, /*End of Scope*/
/* 49902*/              /*SwitchType*/ 69, MVT::v2i64,// ->49973
/* 49904*/                OPC_MoveParent,
/* 49905*/                OPC_RecordChild1, // #3 = $src1
/* 49906*/                OPC_MoveChild2,
/* 49907*/                OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49910*/                OPC_MoveParent,
/* 49911*/                OPC_Scope, 29, /*->49942*/ // 2 children in Scope
/* 49913*/                  OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 49915*/                  OPC_MoveParent,
/* 49916*/                  OPC_RecordChild1, // #4 = $mask
/* 49917*/                  OPC_CheckType, MVT::v2i1,
/* 49919*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49921*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49924*/                  OPC_EmitMergeInputChains1_1,
/* 49925*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49928*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 49942*/                /*Scope*/ 29, /*->49972*/
/* 49943*/                  OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 49945*/                  OPC_MoveParent,
/* 49946*/                  OPC_RecordChild1, // #4 = $mask
/* 49947*/                  OPC_CheckType, MVT::v2i1,
/* 49949*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49951*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49954*/                  OPC_EmitMergeInputChains1_1,
/* 49955*/                  OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 49958*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmibk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                            // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 32
                            // Dst: (VPCMPUQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 49972*/                0, /*End of Scope*/
/* 49973*/              0, // EndSwitchType
/* 49974*/            0, // EndSwitchType
/* 49975*/          0, // EndSwitchOpcode
/* 49976*/        0, /*End of Scope*/
/* 49977*/      0, /*End of Scope*/
/* 49978*/    /*Scope*/ 120|128,1/*248*/, /*->50228*/
/* 49980*/      OPC_MoveChild0,
/* 49981*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::CMPM),
/* 49984*/      OPC_MoveChild0,
/* 49985*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49988*/      OPC_RecordMemRef,
/* 49989*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 49990*/      OPC_CheckFoldableChainNode,
/* 49991*/      OPC_RecordChild1, // #1 = $src2
/* 49992*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49994*/      OPC_CheckPredicate, 9, // Predicate_load
/* 49996*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 49998*/      OPC_SwitchType /*6 cases */, 36, MVT::v8f64,// ->50037
/* 50001*/        OPC_MoveParent,
/* 50002*/        OPC_RecordChild1, // #2 = $src1
/* 50003*/        OPC_RecordChild2, // #3 = $cc
/* 50004*/        OPC_MoveChild2,
/* 50005*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50008*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 50010*/        OPC_MoveParent,
/* 50011*/        OPC_MoveParent,
/* 50012*/        OPC_RecordChild1, // #4 = $mask
/* 50013*/        OPC_CheckType, MVT::v8i1,
/* 50015*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 50017*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50020*/        OPC_EmitMergeInputChains1_0,
/* 50021*/        OPC_EmitConvertToTarget, 3,
/* 50023*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                  // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                  // Dst: (VCMPPDZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50037*/      /*SwitchType*/ 36, MVT::v2f64,// ->50075
/* 50039*/        OPC_MoveParent,
/* 50040*/        OPC_RecordChild1, // #2 = $src1
/* 50041*/        OPC_RecordChild2, // #3 = $cc
/* 50042*/        OPC_MoveChild2,
/* 50043*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50046*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 50048*/        OPC_MoveParent,
/* 50049*/        OPC_MoveParent,
/* 50050*/        OPC_RecordChild1, // #4 = $mask
/* 50051*/        OPC_CheckType, MVT::v2i1,
/* 50053*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50055*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50058*/        OPC_EmitMergeInputChains1_0,
/* 50059*/        OPC_EmitConvertToTarget, 3,
/* 50061*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                  // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 32
                  // Dst: (VCMPPDZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50075*/      /*SwitchType*/ 36, MVT::v4f64,// ->50113
/* 50077*/        OPC_MoveParent,
/* 50078*/        OPC_RecordChild1, // #2 = $src1
/* 50079*/        OPC_RecordChild2, // #3 = $cc
/* 50080*/        OPC_MoveChild2,
/* 50081*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50084*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 50086*/        OPC_MoveParent,
/* 50087*/        OPC_MoveParent,
/* 50088*/        OPC_RecordChild1, // #4 = $mask
/* 50089*/        OPC_CheckType, MVT::v4i1,
/* 50091*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50093*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50096*/        OPC_EmitMergeInputChains1_0,
/* 50097*/        OPC_EmitConvertToTarget, 3,
/* 50099*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                  // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                  // Dst: (VCMPPDZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50113*/      /*SwitchType*/ 36, MVT::v16f32,// ->50151
/* 50115*/        OPC_MoveParent,
/* 50116*/        OPC_RecordChild1, // #2 = $src1
/* 50117*/        OPC_RecordChild2, // #3 = $cc
/* 50118*/        OPC_MoveChild2,
/* 50119*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50122*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 50124*/        OPC_MoveParent,
/* 50125*/        OPC_MoveParent,
/* 50126*/        OPC_RecordChild1, // #4 = $mask
/* 50127*/        OPC_CheckType, MVT::v16i1,
/* 50129*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 50131*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50134*/        OPC_EmitMergeInputChains1_0,
/* 50135*/        OPC_EmitConvertToTarget, 3,
/* 50137*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                  // Src: (and:{ *:[v16i1] } (X86cmpm:{ *:[v16i1] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                  // Dst: (VCMPPSZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50151*/      /*SwitchType*/ 36, MVT::v4f32,// ->50189
/* 50153*/        OPC_MoveParent,
/* 50154*/        OPC_RecordChild1, // #2 = $src1
/* 50155*/        OPC_RecordChild2, // #3 = $cc
/* 50156*/        OPC_MoveChild2,
/* 50157*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50160*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 50162*/        OPC_MoveParent,
/* 50163*/        OPC_MoveParent,
/* 50164*/        OPC_RecordChild1, // #4 = $mask
/* 50165*/        OPC_CheckType, MVT::v4i1,
/* 50167*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50169*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50172*/        OPC_EmitMergeInputChains1_0,
/* 50173*/        OPC_EmitConvertToTarget, 3,
/* 50175*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                  // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                  // Dst: (VCMPPSZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50189*/      /*SwitchType*/ 36, MVT::v8f32,// ->50227
/* 50191*/        OPC_MoveParent,
/* 50192*/        OPC_RecordChild1, // #2 = $src1
/* 50193*/        OPC_RecordChild2, // #3 = $cc
/* 50194*/        OPC_MoveChild2,
/* 50195*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50198*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/* 50200*/        OPC_MoveParent,
/* 50201*/        OPC_MoveParent,
/* 50202*/        OPC_RecordChild1, // #4 = $mask
/* 50203*/        OPC_CheckType, MVT::v8i1,
/* 50205*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50207*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50210*/        OPC_EmitMergeInputChains1_0,
/* 50211*/        OPC_EmitConvertToTarget, 3,
/* 50213*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 8/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 10, 
                  // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                  // Dst: (VCMPPSZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50227*/      0, // EndSwitchType
/* 50228*/    /*Scope*/ 37|128,7/*933*/, /*->51163*/
/* 50230*/      OPC_RecordChild0, // #0 = $mask
/* 50231*/      OPC_MoveChild1,
/* 50232*/      OPC_SwitchOpcode /*4 cases */, 41|128,2/*297*/, TARGET_VAL(X86ISD::CMPM),// ->50534
/* 50237*/        OPC_RecordChild0, // #1 = $src1
/* 50238*/        OPC_Scope, 48, /*->50288*/ // 6 children in Scope
/* 50240*/          OPC_CheckChild0Type, MVT::v8f64,
/* 50242*/          OPC_MoveChild1,
/* 50243*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50246*/          OPC_RecordMemRef,
/* 50247*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50248*/          OPC_CheckFoldableChainNode,
/* 50249*/          OPC_RecordChild1, // #3 = $src2
/* 50250*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50252*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50254*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 50256*/          OPC_MoveParent,
/* 50257*/          OPC_RecordChild2, // #4 = $cc
/* 50258*/          OPC_MoveChild2,
/* 50259*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50262*/          OPC_MoveParent,
/* 50263*/          OPC_MoveParent,
/* 50264*/          OPC_CheckType, MVT::v8i1,
/* 50266*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 50268*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50271*/          OPC_EmitMergeInputChains1_2,
/* 50272*/          OPC_EmitConvertToTarget, 4,
/* 50274*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc)) - Complexity = 31
                    // Dst: (VCMPPDZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50288*/        /*Scope*/ 48, /*->50337*/
/* 50289*/          OPC_CheckChild0Type, MVT::v2f64,
/* 50291*/          OPC_MoveChild1,
/* 50292*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50295*/          OPC_RecordMemRef,
/* 50296*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50297*/          OPC_CheckFoldableChainNode,
/* 50298*/          OPC_RecordChild1, // #3 = $src2
/* 50299*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50301*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50303*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 50305*/          OPC_MoveParent,
/* 50306*/          OPC_RecordChild2, // #4 = $cc
/* 50307*/          OPC_MoveChild2,
/* 50308*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50311*/          OPC_MoveParent,
/* 50312*/          OPC_MoveParent,
/* 50313*/          OPC_CheckType, MVT::v2i1,
/* 50315*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50317*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50320*/          OPC_EmitMergeInputChains1_2,
/* 50321*/          OPC_EmitConvertToTarget, 4,
/* 50323*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc)) - Complexity = 31
                    // Dst: (VCMPPDZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50337*/        /*Scope*/ 48, /*->50386*/
/* 50338*/          OPC_CheckChild0Type, MVT::v4f64,
/* 50340*/          OPC_MoveChild1,
/* 50341*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50344*/          OPC_RecordMemRef,
/* 50345*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50346*/          OPC_CheckFoldableChainNode,
/* 50347*/          OPC_RecordChild1, // #3 = $src2
/* 50348*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50350*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50352*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 50354*/          OPC_MoveParent,
/* 50355*/          OPC_RecordChild2, // #4 = $cc
/* 50356*/          OPC_MoveChild2,
/* 50357*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50360*/          OPC_MoveParent,
/* 50361*/          OPC_MoveParent,
/* 50362*/          OPC_CheckType, MVT::v4i1,
/* 50364*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50366*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50369*/          OPC_EmitMergeInputChains1_2,
/* 50370*/          OPC_EmitConvertToTarget, 4,
/* 50372*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc)) - Complexity = 31
                    // Dst: (VCMPPDZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50386*/        /*Scope*/ 48, /*->50435*/
/* 50387*/          OPC_CheckChild0Type, MVT::v16f32,
/* 50389*/          OPC_MoveChild1,
/* 50390*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50393*/          OPC_RecordMemRef,
/* 50394*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50395*/          OPC_CheckFoldableChainNode,
/* 50396*/          OPC_RecordChild1, // #3 = $src2
/* 50397*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50399*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50401*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 50403*/          OPC_MoveParent,
/* 50404*/          OPC_RecordChild2, // #4 = $cc
/* 50405*/          OPC_MoveChild2,
/* 50406*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50409*/          OPC_MoveParent,
/* 50410*/          OPC_MoveParent,
/* 50411*/          OPC_CheckType, MVT::v16i1,
/* 50413*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 50415*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50418*/          OPC_EmitMergeInputChains1_2,
/* 50419*/          OPC_EmitConvertToTarget, 4,
/* 50421*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc)) - Complexity = 31
                    // Dst: (VCMPPSZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50435*/        /*Scope*/ 48, /*->50484*/
/* 50436*/          OPC_CheckChild0Type, MVT::v4f32,
/* 50438*/          OPC_MoveChild1,
/* 50439*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50442*/          OPC_RecordMemRef,
/* 50443*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50444*/          OPC_CheckFoldableChainNode,
/* 50445*/          OPC_RecordChild1, // #3 = $src2
/* 50446*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50448*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50450*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 50452*/          OPC_MoveParent,
/* 50453*/          OPC_RecordChild2, // #4 = $cc
/* 50454*/          OPC_MoveChild2,
/* 50455*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50458*/          OPC_MoveParent,
/* 50459*/          OPC_MoveParent,
/* 50460*/          OPC_CheckType, MVT::v4i1,
/* 50462*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50464*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50467*/          OPC_EmitMergeInputChains1_2,
/* 50468*/          OPC_EmitConvertToTarget, 4,
/* 50470*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc)) - Complexity = 31
                    // Dst: (VCMPPSZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50484*/        /*Scope*/ 48, /*->50533*/
/* 50485*/          OPC_CheckChild0Type, MVT::v8f32,
/* 50487*/          OPC_MoveChild1,
/* 50488*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50491*/          OPC_RecordMemRef,
/* 50492*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50493*/          OPC_CheckFoldableChainNode,
/* 50494*/          OPC_RecordChild1, // #3 = $src2
/* 50495*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50497*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50499*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 50501*/          OPC_MoveParent,
/* 50502*/          OPC_RecordChild2, // #4 = $cc
/* 50503*/          OPC_MoveChild2,
/* 50504*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50507*/          OPC_MoveParent,
/* 50508*/          OPC_MoveParent,
/* 50509*/          OPC_CheckType, MVT::v8i1,
/* 50511*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50513*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50516*/          OPC_EmitMergeInputChains1_2,
/* 50517*/          OPC_EmitConvertToTarget, 4,
/* 50519*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc)) - Complexity = 31
                    // Dst: (VCMPPSZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 50533*/        0, /*End of Scope*/
/* 50534*/      /*SwitchOpcode*/ 88|128,1/*216*/, TARGET_VAL(X86ISD::VFPCLASS),// ->50754
/* 50538*/        OPC_MoveChild0,
/* 50539*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50542*/        OPC_RecordMemRef,
/* 50543*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 50544*/        OPC_CheckFoldableChainNode,
/* 50545*/        OPC_RecordChild1, // #2 = $src1
/* 50546*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50548*/        OPC_CheckPredicate, 9, // Predicate_load
/* 50550*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 50552*/        OPC_Scope, 31, /*->50585*/ // 6 children in Scope
/* 50554*/          OPC_MoveParent,
/* 50555*/          OPC_RecordChild1, // #3 = $src2
/* 50556*/          OPC_MoveChild1,
/* 50557*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50560*/          OPC_MoveParent,
/* 50561*/          OPC_MoveParent,
/* 50562*/          OPC_CheckType, MVT::v16i1,
/* 50564*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 50566*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 50569*/          OPC_EmitMergeInputChains1_1,
/* 50570*/          OPC_EmitConvertToTarget, 3,
/* 50572*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86Vfpclass:{ *:[v16i1] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2)) - Complexity = 31
                    // Dst: (VFPCLASSPSZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 50585*/        /*Scope*/ 33, /*->50619*/
/* 50586*/          OPC_CheckType, MVT::v4f32,
/* 50588*/          OPC_MoveParent,
/* 50589*/          OPC_RecordChild1, // #3 = $src2
/* 50590*/          OPC_MoveChild1,
/* 50591*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50594*/          OPC_MoveParent,
/* 50595*/          OPC_MoveParent,
/* 50596*/          OPC_CheckType, MVT::v4i1,
/* 50598*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 50600*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 50603*/          OPC_EmitMergeInputChains1_1,
/* 50604*/          OPC_EmitConvertToTarget, 3,
/* 50606*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2)) - Complexity = 31
                    // Dst: (VFPCLASSPSZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 50619*/        /*Scope*/ 33, /*->50653*/
/* 50620*/          OPC_CheckType, MVT::v8f32,
/* 50622*/          OPC_MoveParent,
/* 50623*/          OPC_RecordChild1, // #3 = $src2
/* 50624*/          OPC_MoveChild1,
/* 50625*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50628*/          OPC_MoveParent,
/* 50629*/          OPC_MoveParent,
/* 50630*/          OPC_CheckType, MVT::v8i1,
/* 50632*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 50634*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 50637*/          OPC_EmitMergeInputChains1_1,
/* 50638*/          OPC_EmitConvertToTarget, 3,
/* 50640*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2)) - Complexity = 31
                    // Dst: (VFPCLASSPSZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 50653*/        /*Scope*/ 33, /*->50687*/
/* 50654*/          OPC_CheckType, MVT::v8f64,
/* 50656*/          OPC_MoveParent,
/* 50657*/          OPC_RecordChild1, // #3 = $src2
/* 50658*/          OPC_MoveChild1,
/* 50659*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50662*/          OPC_MoveParent,
/* 50663*/          OPC_MoveParent,
/* 50664*/          OPC_CheckType, MVT::v8i1,
/* 50666*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 50668*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 50671*/          OPC_EmitMergeInputChains1_1,
/* 50672*/          OPC_EmitConvertToTarget, 3,
/* 50674*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2)) - Complexity = 31
                    // Dst: (VFPCLASSPDZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 50687*/        /*Scope*/ 31, /*->50719*/
/* 50688*/          OPC_MoveParent,
/* 50689*/          OPC_RecordChild1, // #3 = $src2
/* 50690*/          OPC_MoveChild1,
/* 50691*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50694*/          OPC_MoveParent,
/* 50695*/          OPC_MoveParent,
/* 50696*/          OPC_CheckType, MVT::v2i1,
/* 50698*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 50700*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 50703*/          OPC_EmitMergeInputChains1_1,
/* 50704*/          OPC_EmitConvertToTarget, 3,
/* 50706*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86Vfpclass:{ *:[v2i1] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2)) - Complexity = 31
                    // Dst: (VFPCLASSPDZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 50719*/        /*Scope*/ 33, /*->50753*/
/* 50720*/          OPC_CheckType, MVT::v4f64,
/* 50722*/          OPC_MoveParent,
/* 50723*/          OPC_RecordChild1, // #3 = $src2
/* 50724*/          OPC_MoveChild1,
/* 50725*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50728*/          OPC_MoveParent,
/* 50729*/          OPC_MoveParent,
/* 50730*/          OPC_CheckType, MVT::v4i1,
/* 50732*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 50734*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 50737*/          OPC_EmitMergeInputChains1_1,
/* 50738*/          OPC_EmitConvertToTarget, 3,
/* 50740*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2)) - Complexity = 31
                    // Dst: (VFPCLASSPDZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 50753*/        0, /*End of Scope*/
/* 50754*/      /*SwitchOpcode*/ 0|128,2/*256*/, TARGET_VAL(ISD::BITCAST),// ->51014
/* 50758*/        OPC_MoveChild0,
/* 50759*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 50762*/        OPC_MoveChild0,
/* 50763*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50766*/        OPC_RecordMemRef,
/* 50767*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 50768*/        OPC_CheckFoldableChainNode,
/* 50769*/        OPC_RecordChild1, // #2 = $src2
/* 50770*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50772*/        OPC_Scope, 79, /*->50853*/ // 2 children in Scope
/* 50774*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 50776*/          OPC_CheckType, MVT::i32,
/* 50778*/          OPC_MoveParent,
/* 50779*/          OPC_SwitchType /*3 cases */, 22, MVT::v16i32,// ->50804
/* 50782*/            OPC_MoveParent,
/* 50783*/            OPC_MoveParent,
/* 50784*/            OPC_CheckType, MVT::v8i64,
/* 50786*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 50788*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 50791*/            OPC_EmitMergeInputChains1_1,
/* 50792*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPANDDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 50804*/          /*SwitchType*/ 22, MVT::v8i32,// ->50828
/* 50806*/            OPC_MoveParent,
/* 50807*/            OPC_MoveParent,
/* 50808*/            OPC_CheckType, MVT::v4i64,
/* 50810*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50812*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 50815*/            OPC_EmitMergeInputChains1_1,
/* 50816*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPANDDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 50828*/          /*SwitchType*/ 22, MVT::v4i32,// ->50852
/* 50830*/            OPC_MoveParent,
/* 50831*/            OPC_MoveParent,
/* 50832*/            OPC_CheckType, MVT::v2i64,
/* 50834*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50836*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 50839*/            OPC_EmitMergeInputChains1_1,
/* 50840*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPANDDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 50852*/          0, // EndSwitchType
/* 50853*/        /*Scope*/ 30|128,1/*158*/, /*->51013*/
/* 50855*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50857*/          OPC_SwitchType /*2 cases */, 75, MVT::f32,// ->50935
/* 50860*/            OPC_MoveParent,
/* 50861*/            OPC_SwitchType /*3 cases */, 22, MVT::v4f32,// ->50886
/* 50864*/              OPC_MoveParent,
/* 50865*/              OPC_MoveParent,
/* 50866*/              OPC_CheckType, MVT::v2i64,
/* 50868*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 50870*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 50873*/              OPC_EmitMergeInputChains1_1,
/* 50874*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 50886*/            /*SwitchType*/ 22, MVT::v8f32,// ->50910
/* 50888*/              OPC_MoveParent,
/* 50889*/              OPC_MoveParent,
/* 50890*/              OPC_CheckType, MVT::v4i64,
/* 50892*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 50894*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 50897*/              OPC_EmitMergeInputChains1_1,
/* 50898*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 50910*/            /*SwitchType*/ 22, MVT::v16f32,// ->50934
/* 50912*/              OPC_MoveParent,
/* 50913*/              OPC_MoveParent,
/* 50914*/              OPC_CheckType, MVT::v8i64,
/* 50916*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 50918*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 50921*/              OPC_EmitMergeInputChains1_1,
/* 50922*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 50934*/            0, // EndSwitchType
/* 50935*/          /*SwitchType*/ 75, MVT::f64,// ->51012
/* 50937*/            OPC_MoveParent,
/* 50938*/            OPC_SwitchType /*3 cases */, 22, MVT::v2f64,// ->50963
/* 50941*/              OPC_MoveParent,
/* 50942*/              OPC_MoveParent,
/* 50943*/              OPC_CheckType, MVT::v2i64,
/* 50945*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 50947*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 50950*/              OPC_EmitMergeInputChains1_1,
/* 50951*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 50963*/            /*SwitchType*/ 22, MVT::v4f64,// ->50987
/* 50965*/              OPC_MoveParent,
/* 50966*/              OPC_MoveParent,
/* 50967*/              OPC_CheckType, MVT::v4i64,
/* 50969*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 50971*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 50974*/              OPC_EmitMergeInputChains1_1,
/* 50975*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 50987*/            /*SwitchType*/ 22, MVT::v8f64,// ->51011
/* 50989*/              OPC_MoveParent,
/* 50990*/              OPC_MoveParent,
/* 50991*/              OPC_CheckType, MVT::v8i64,
/* 50993*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 50995*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 50998*/              OPC_EmitMergeInputChains1_1,
/* 50999*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51011*/            0, // EndSwitchType
/* 51012*/          0, // EndSwitchType
/* 51013*/        0, /*End of Scope*/
/* 51014*/      /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VPSHUFBITQMB),// ->51162
/* 51018*/        OPC_RecordChild0, // #1 = $src1
/* 51019*/        OPC_Scope, 46, /*->51067*/ // 3 children in Scope
/* 51021*/          OPC_CheckChild0Type, MVT::v64i8,
/* 51023*/          OPC_MoveChild1,
/* 51024*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51027*/          OPC_MoveChild0,
/* 51028*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51031*/          OPC_RecordMemRef,
/* 51032*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 51033*/          OPC_CheckFoldableChainNode,
/* 51034*/          OPC_RecordChild1, // #3 = $src2
/* 51035*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51037*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51039*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 51041*/          OPC_CheckType, MVT::v8i64,
/* 51043*/          OPC_MoveParent,
/* 51044*/          OPC_MoveParent,
/* 51045*/          OPC_MoveParent,
/* 51046*/          OPC_CheckType, MVT::v64i1,
/* 51048*/          OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/* 51050*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 51053*/          OPC_EmitMergeInputChains1_2,
/* 51054*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (X86Vpshufbitqmb:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))) - Complexity = 31
                    // Dst: (VPSHUFBITQMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51067*/        /*Scope*/ 46, /*->51114*/
/* 51068*/          OPC_CheckChild0Type, MVT::v32i8,
/* 51070*/          OPC_MoveChild1,
/* 51071*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51074*/          OPC_MoveChild0,
/* 51075*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51078*/          OPC_RecordMemRef,
/* 51079*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 51080*/          OPC_CheckFoldableChainNode,
/* 51081*/          OPC_RecordChild1, // #3 = $src2
/* 51082*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51084*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51086*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 51088*/          OPC_CheckType, MVT::v4i64,
/* 51090*/          OPC_MoveParent,
/* 51091*/          OPC_MoveParent,
/* 51092*/          OPC_MoveParent,
/* 51093*/          OPC_CheckType, MVT::v32i1,
/* 51095*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 51097*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 51100*/          OPC_EmitMergeInputChains1_2,
/* 51101*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (X86Vpshufbitqmb:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))) - Complexity = 31
                    // Dst: (VPSHUFBITQMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51114*/        /*Scope*/ 46, /*->51161*/
/* 51115*/          OPC_CheckChild0Type, MVT::v16i8,
/* 51117*/          OPC_MoveChild1,
/* 51118*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51121*/          OPC_MoveChild0,
/* 51122*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51125*/          OPC_RecordMemRef,
/* 51126*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 51127*/          OPC_CheckFoldableChainNode,
/* 51128*/          OPC_RecordChild1, // #3 = $src2
/* 51129*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51131*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51133*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 51135*/          OPC_CheckType, MVT::v2i64,
/* 51137*/          OPC_MoveParent,
/* 51138*/          OPC_MoveParent,
/* 51139*/          OPC_MoveParent,
/* 51140*/          OPC_CheckType, MVT::v16i1,
/* 51142*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 51144*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 51147*/          OPC_EmitMergeInputChains1_2,
/* 51148*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpshufbitqmb:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))) - Complexity = 31
                    // Dst: (VPSHUFBITQMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51161*/        0, /*End of Scope*/
/* 51162*/      0, // EndSwitchOpcode
/* 51163*/    /*Scope*/ 60|128,7/*956*/, /*->52121*/
/* 51165*/      OPC_MoveChild0,
/* 51166*/      OPC_SwitchOpcode /*4 cases */, 47|128,2/*303*/, TARGET_VAL(X86ISD::CMPM),// ->51474
/* 51171*/        OPC_RecordChild0, // #0 = $src1
/* 51172*/        OPC_Scope, 49, /*->51223*/ // 6 children in Scope
/* 51174*/          OPC_CheckChild0Type, MVT::v8f64,
/* 51176*/          OPC_MoveChild1,
/* 51177*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51180*/          OPC_RecordMemRef,
/* 51181*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 51182*/          OPC_CheckFoldableChainNode,
/* 51183*/          OPC_RecordChild1, // #2 = $src2
/* 51184*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51186*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51188*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 51190*/          OPC_MoveParent,
/* 51191*/          OPC_RecordChild2, // #3 = $cc
/* 51192*/          OPC_MoveChild2,
/* 51193*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51196*/          OPC_MoveParent,
/* 51197*/          OPC_MoveParent,
/* 51198*/          OPC_RecordChild1, // #4 = $mask
/* 51199*/          OPC_CheckType, MVT::v8i1,
/* 51201*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 51203*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51206*/          OPC_EmitMergeInputChains1_1,
/* 51207*/          OPC_EmitConvertToTarget, 3,
/* 51209*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 31
                    // Dst: (VCMPPDZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 51223*/        /*Scope*/ 49, /*->51273*/
/* 51224*/          OPC_CheckChild0Type, MVT::v2f64,
/* 51226*/          OPC_MoveChild1,
/* 51227*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51230*/          OPC_RecordMemRef,
/* 51231*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 51232*/          OPC_CheckFoldableChainNode,
/* 51233*/          OPC_RecordChild1, // #2 = $src2
/* 51234*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51236*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51238*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 51240*/          OPC_MoveParent,
/* 51241*/          OPC_RecordChild2, // #3 = $cc
/* 51242*/          OPC_MoveChild2,
/* 51243*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51246*/          OPC_MoveParent,
/* 51247*/          OPC_MoveParent,
/* 51248*/          OPC_RecordChild1, // #4 = $mask
/* 51249*/          OPC_CheckType, MVT::v2i1,
/* 51251*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51253*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51256*/          OPC_EmitMergeInputChains1_1,
/* 51257*/          OPC_EmitConvertToTarget, 3,
/* 51259*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 31
                    // Dst: (VCMPPDZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 51273*/        /*Scope*/ 49, /*->51323*/
/* 51274*/          OPC_CheckChild0Type, MVT::v4f64,
/* 51276*/          OPC_MoveChild1,
/* 51277*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51280*/          OPC_RecordMemRef,
/* 51281*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 51282*/          OPC_CheckFoldableChainNode,
/* 51283*/          OPC_RecordChild1, // #2 = $src2
/* 51284*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51286*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51288*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 51290*/          OPC_MoveParent,
/* 51291*/          OPC_RecordChild2, // #3 = $cc
/* 51292*/          OPC_MoveChild2,
/* 51293*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51296*/          OPC_MoveParent,
/* 51297*/          OPC_MoveParent,
/* 51298*/          OPC_RecordChild1, // #4 = $mask
/* 51299*/          OPC_CheckType, MVT::v4i1,
/* 51301*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51303*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51306*/          OPC_EmitMergeInputChains1_1,
/* 51307*/          OPC_EmitConvertToTarget, 3,
/* 51309*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 31
                    // Dst: (VCMPPDZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 51323*/        /*Scope*/ 49, /*->51373*/
/* 51324*/          OPC_CheckChild0Type, MVT::v16f32,
/* 51326*/          OPC_MoveChild1,
/* 51327*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51330*/          OPC_RecordMemRef,
/* 51331*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 51332*/          OPC_CheckFoldableChainNode,
/* 51333*/          OPC_RecordChild1, // #2 = $src2
/* 51334*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51336*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51338*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 51340*/          OPC_MoveParent,
/* 51341*/          OPC_RecordChild2, // #3 = $cc
/* 51342*/          OPC_MoveChild2,
/* 51343*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51346*/          OPC_MoveParent,
/* 51347*/          OPC_MoveParent,
/* 51348*/          OPC_RecordChild1, // #4 = $mask
/* 51349*/          OPC_CheckType, MVT::v16i1,
/* 51351*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 51353*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51356*/          OPC_EmitMergeInputChains1_1,
/* 51357*/          OPC_EmitConvertToTarget, 3,
/* 51359*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v16i1] } (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 31
                    // Dst: (VCMPPSZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 51373*/        /*Scope*/ 49, /*->51423*/
/* 51374*/          OPC_CheckChild0Type, MVT::v4f32,
/* 51376*/          OPC_MoveChild1,
/* 51377*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51380*/          OPC_RecordMemRef,
/* 51381*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 51382*/          OPC_CheckFoldableChainNode,
/* 51383*/          OPC_RecordChild1, // #2 = $src2
/* 51384*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51386*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51388*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 51390*/          OPC_MoveParent,
/* 51391*/          OPC_RecordChild2, // #3 = $cc
/* 51392*/          OPC_MoveChild2,
/* 51393*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51396*/          OPC_MoveParent,
/* 51397*/          OPC_MoveParent,
/* 51398*/          OPC_RecordChild1, // #4 = $mask
/* 51399*/          OPC_CheckType, MVT::v4i1,
/* 51401*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51403*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51406*/          OPC_EmitMergeInputChains1_1,
/* 51407*/          OPC_EmitConvertToTarget, 3,
/* 51409*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 31
                    // Dst: (VCMPPSZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 51423*/        /*Scope*/ 49, /*->51473*/
/* 51424*/          OPC_CheckChild0Type, MVT::v8f32,
/* 51426*/          OPC_MoveChild1,
/* 51427*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51430*/          OPC_RecordMemRef,
/* 51431*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 51432*/          OPC_CheckFoldableChainNode,
/* 51433*/          OPC_RecordChild1, // #2 = $src2
/* 51434*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51436*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51438*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 51440*/          OPC_MoveParent,
/* 51441*/          OPC_RecordChild2, // #3 = $cc
/* 51442*/          OPC_MoveChild2,
/* 51443*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51446*/          OPC_MoveParent,
/* 51447*/          OPC_MoveParent,
/* 51448*/          OPC_RecordChild1, // #4 = $mask
/* 51449*/          OPC_CheckType, MVT::v8i1,
/* 51451*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51453*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51456*/          OPC_EmitMergeInputChains1_1,
/* 51457*/          OPC_EmitConvertToTarget, 3,
/* 51459*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 31
                    // Dst: (VCMPPSZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/* 51473*/        0, /*End of Scope*/
/* 51474*/      /*SwitchOpcode*/ 94|128,1/*222*/, TARGET_VAL(X86ISD::VFPCLASS),// ->51700
/* 51478*/        OPC_MoveChild0,
/* 51479*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51482*/        OPC_RecordMemRef,
/* 51483*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 51484*/        OPC_CheckFoldableChainNode,
/* 51485*/        OPC_RecordChild1, // #1 = $src1
/* 51486*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51488*/        OPC_CheckPredicate, 9, // Predicate_load
/* 51490*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 51492*/        OPC_Scope, 32, /*->51526*/ // 6 children in Scope
/* 51494*/          OPC_MoveParent,
/* 51495*/          OPC_RecordChild1, // #2 = $src2
/* 51496*/          OPC_MoveChild1,
/* 51497*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51500*/          OPC_MoveParent,
/* 51501*/          OPC_MoveParent,
/* 51502*/          OPC_RecordChild1, // #3 = $mask
/* 51503*/          OPC_CheckType, MVT::v16i1,
/* 51505*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 51507*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 51510*/          OPC_EmitMergeInputChains1_0,
/* 51511*/          OPC_EmitConvertToTarget, 2,
/* 51513*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v16i1] } (X86Vfpclass:{ *:[v16i1] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 31
                    // Dst: (VFPCLASSPSZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 51526*/        /*Scope*/ 34, /*->51561*/
/* 51527*/          OPC_CheckType, MVT::v4f32,
/* 51529*/          OPC_MoveParent,
/* 51530*/          OPC_RecordChild1, // #2 = $src2
/* 51531*/          OPC_MoveChild1,
/* 51532*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51535*/          OPC_MoveParent,
/* 51536*/          OPC_MoveParent,
/* 51537*/          OPC_RecordChild1, // #3 = $mask
/* 51538*/          OPC_CheckType, MVT::v4i1,
/* 51540*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 51542*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 51545*/          OPC_EmitMergeInputChains1_0,
/* 51546*/          OPC_EmitConvertToTarget, 2,
/* 51548*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 31
                    // Dst: (VFPCLASSPSZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 51561*/        /*Scope*/ 34, /*->51596*/
/* 51562*/          OPC_CheckType, MVT::v8f32,
/* 51564*/          OPC_MoveParent,
/* 51565*/          OPC_RecordChild1, // #2 = $src2
/* 51566*/          OPC_MoveChild1,
/* 51567*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51570*/          OPC_MoveParent,
/* 51571*/          OPC_MoveParent,
/* 51572*/          OPC_RecordChild1, // #3 = $mask
/* 51573*/          OPC_CheckType, MVT::v8i1,
/* 51575*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 51577*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 51580*/          OPC_EmitMergeInputChains1_0,
/* 51581*/          OPC_EmitConvertToTarget, 2,
/* 51583*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 31
                    // Dst: (VFPCLASSPSZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 51596*/        /*Scope*/ 34, /*->51631*/
/* 51597*/          OPC_CheckType, MVT::v8f64,
/* 51599*/          OPC_MoveParent,
/* 51600*/          OPC_RecordChild1, // #2 = $src2
/* 51601*/          OPC_MoveChild1,
/* 51602*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51605*/          OPC_MoveParent,
/* 51606*/          OPC_MoveParent,
/* 51607*/          OPC_RecordChild1, // #3 = $mask
/* 51608*/          OPC_CheckType, MVT::v8i1,
/* 51610*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 51612*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 51615*/          OPC_EmitMergeInputChains1_0,
/* 51616*/          OPC_EmitConvertToTarget, 2,
/* 51618*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 31
                    // Dst: (VFPCLASSPDZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 51631*/        /*Scope*/ 32, /*->51664*/
/* 51632*/          OPC_MoveParent,
/* 51633*/          OPC_RecordChild1, // #2 = $src2
/* 51634*/          OPC_MoveChild1,
/* 51635*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51638*/          OPC_MoveParent,
/* 51639*/          OPC_MoveParent,
/* 51640*/          OPC_RecordChild1, // #3 = $mask
/* 51641*/          OPC_CheckType, MVT::v2i1,
/* 51643*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 51645*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 51648*/          OPC_EmitMergeInputChains1_0,
/* 51649*/          OPC_EmitConvertToTarget, 2,
/* 51651*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v2i1] } (X86Vfpclass:{ *:[v2i1] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 31
                    // Dst: (VFPCLASSPDZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 51664*/        /*Scope*/ 34, /*->51699*/
/* 51665*/          OPC_CheckType, MVT::v4f64,
/* 51667*/          OPC_MoveParent,
/* 51668*/          OPC_RecordChild1, // #2 = $src2
/* 51669*/          OPC_MoveChild1,
/* 51670*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51673*/          OPC_MoveParent,
/* 51674*/          OPC_MoveParent,
/* 51675*/          OPC_RecordChild1, // #3 = $mask
/* 51676*/          OPC_CheckType, MVT::v4i1,
/* 51678*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 51680*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 51683*/          OPC_EmitMergeInputChains1_0,
/* 51684*/          OPC_EmitConvertToTarget, 2,
/* 51686*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                    // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 31
                    // Dst: (VFPCLASSPDZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 51699*/        0, /*End of Scope*/
/* 51700*/      /*SwitchOpcode*/ 9|128,2/*265*/, TARGET_VAL(ISD::BITCAST),// ->51969
/* 51704*/        OPC_MoveChild0,
/* 51705*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 51708*/        OPC_MoveChild0,
/* 51709*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51712*/        OPC_RecordMemRef,
/* 51713*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 51714*/        OPC_CheckFoldableChainNode,
/* 51715*/        OPC_RecordChild1, // #1 = $src2
/* 51716*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51718*/        OPC_Scope, 82, /*->51802*/ // 2 children in Scope
/* 51720*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 51722*/          OPC_CheckType, MVT::i32,
/* 51724*/          OPC_MoveParent,
/* 51725*/          OPC_SwitchType /*3 cases */, 23, MVT::v16i32,// ->51751
/* 51728*/            OPC_MoveParent,
/* 51729*/            OPC_MoveParent,
/* 51730*/            OPC_RecordChild1, // #2 = $src1
/* 51731*/            OPC_CheckType, MVT::v8i64,
/* 51733*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 51735*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 51738*/            OPC_EmitMergeInputChains1_0,
/* 51739*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                      // Dst: (VPANDDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51751*/          /*SwitchType*/ 23, MVT::v8i32,// ->51776
/* 51753*/            OPC_MoveParent,
/* 51754*/            OPC_MoveParent,
/* 51755*/            OPC_RecordChild1, // #2 = $src1
/* 51756*/            OPC_CheckType, MVT::v4i64,
/* 51758*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51760*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 51763*/            OPC_EmitMergeInputChains1_0,
/* 51764*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                      // Dst: (VPANDDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51776*/          /*SwitchType*/ 23, MVT::v4i32,// ->51801
/* 51778*/            OPC_MoveParent,
/* 51779*/            OPC_MoveParent,
/* 51780*/            OPC_RecordChild1, // #2 = $src1
/* 51781*/            OPC_CheckType, MVT::v2i64,
/* 51783*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51785*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 51788*/            OPC_EmitMergeInputChains1_0,
/* 51789*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                      // Dst: (VPANDDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51801*/          0, // EndSwitchType
/* 51802*/        /*Scope*/ 36|128,1/*164*/, /*->51968*/
/* 51804*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51806*/          OPC_SwitchType /*2 cases */, 78, MVT::f32,// ->51887
/* 51809*/            OPC_MoveParent,
/* 51810*/            OPC_SwitchType /*3 cases */, 23, MVT::v4f32,// ->51836
/* 51813*/              OPC_MoveParent,
/* 51814*/              OPC_MoveParent,
/* 51815*/              OPC_RecordChild1, // #2 = $src1
/* 51816*/              OPC_CheckType, MVT::v2i64,
/* 51818*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 51820*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 51823*/              OPC_EmitMergeInputChains1_0,
/* 51824*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPANDDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51836*/            /*SwitchType*/ 23, MVT::v8f32,// ->51861
/* 51838*/              OPC_MoveParent,
/* 51839*/              OPC_MoveParent,
/* 51840*/              OPC_RecordChild1, // #2 = $src1
/* 51841*/              OPC_CheckType, MVT::v4i64,
/* 51843*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 51845*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 51848*/              OPC_EmitMergeInputChains1_0,
/* 51849*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPANDDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51861*/            /*SwitchType*/ 23, MVT::v16f32,// ->51886
/* 51863*/              OPC_MoveParent,
/* 51864*/              OPC_MoveParent,
/* 51865*/              OPC_RecordChild1, // #2 = $src1
/* 51866*/              OPC_CheckType, MVT::v8i64,
/* 51868*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 51870*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 51873*/              OPC_EmitMergeInputChains1_0,
/* 51874*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPANDDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51886*/            0, // EndSwitchType
/* 51887*/          /*SwitchType*/ 78, MVT::f64,// ->51967
/* 51889*/            OPC_MoveParent,
/* 51890*/            OPC_SwitchType /*3 cases */, 23, MVT::v2f64,// ->51916
/* 51893*/              OPC_MoveParent,
/* 51894*/              OPC_MoveParent,
/* 51895*/              OPC_RecordChild1, // #2 = $src1
/* 51896*/              OPC_CheckType, MVT::v2i64,
/* 51898*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 51900*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 51903*/              OPC_EmitMergeInputChains1_0,
/* 51904*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPANDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51916*/            /*SwitchType*/ 23, MVT::v4f64,// ->51941
/* 51918*/              OPC_MoveParent,
/* 51919*/              OPC_MoveParent,
/* 51920*/              OPC_RecordChild1, // #2 = $src1
/* 51921*/              OPC_CheckType, MVT::v4i64,
/* 51923*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 51925*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 51928*/              OPC_EmitMergeInputChains1_0,
/* 51929*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPANDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51941*/            /*SwitchType*/ 23, MVT::v8f64,// ->51966
/* 51943*/              OPC_MoveParent,
/* 51944*/              OPC_MoveParent,
/* 51945*/              OPC_RecordChild1, // #2 = $src1
/* 51946*/              OPC_CheckType, MVT::v8i64,
/* 51948*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 51950*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 51953*/              OPC_EmitMergeInputChains1_0,
/* 51954*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPANDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51966*/            0, // EndSwitchType
/* 51967*/          0, // EndSwitchType
/* 51968*/        0, /*End of Scope*/
/* 51969*/      /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(X86ISD::VPSHUFBITQMB),// ->52120
/* 51973*/        OPC_RecordChild0, // #0 = $src1
/* 51974*/        OPC_Scope, 47, /*->52023*/ // 3 children in Scope
/* 51976*/          OPC_CheckChild0Type, MVT::v64i8,
/* 51978*/          OPC_MoveChild1,
/* 51979*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51982*/          OPC_MoveChild0,
/* 51983*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51986*/          OPC_RecordMemRef,
/* 51987*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 51988*/          OPC_CheckFoldableChainNode,
/* 51989*/          OPC_RecordChild1, // #2 = $src2
/* 51990*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51992*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51994*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 51996*/          OPC_CheckType, MVT::v8i64,
/* 51998*/          OPC_MoveParent,
/* 51999*/          OPC_MoveParent,
/* 52000*/          OPC_MoveParent,
/* 52001*/          OPC_RecordChild1, // #3 = $mask
/* 52002*/          OPC_CheckType, MVT::v64i1,
/* 52004*/          OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/* 52006*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52009*/          OPC_EmitMergeInputChains1_1,
/* 52010*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v64i1] } (X86Vpshufbitqmb:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 31
                    // Dst: (VPSHUFBITQMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52023*/        /*Scope*/ 47, /*->52071*/
/* 52024*/          OPC_CheckChild0Type, MVT::v32i8,
/* 52026*/          OPC_MoveChild1,
/* 52027*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52030*/          OPC_MoveChild0,
/* 52031*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52034*/          OPC_RecordMemRef,
/* 52035*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 52036*/          OPC_CheckFoldableChainNode,
/* 52037*/          OPC_RecordChild1, // #2 = $src2
/* 52038*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52040*/          OPC_CheckPredicate, 9, // Predicate_load
/* 52042*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 52044*/          OPC_CheckType, MVT::v4i64,
/* 52046*/          OPC_MoveParent,
/* 52047*/          OPC_MoveParent,
/* 52048*/          OPC_MoveParent,
/* 52049*/          OPC_RecordChild1, // #3 = $mask
/* 52050*/          OPC_CheckType, MVT::v32i1,
/* 52052*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 52054*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52057*/          OPC_EmitMergeInputChains1_1,
/* 52058*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v32i1] } (X86Vpshufbitqmb:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 31
                    // Dst: (VPSHUFBITQMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52071*/        /*Scope*/ 47, /*->52119*/
/* 52072*/          OPC_CheckChild0Type, MVT::v16i8,
/* 52074*/          OPC_MoveChild1,
/* 52075*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52078*/          OPC_MoveChild0,
/* 52079*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52082*/          OPC_RecordMemRef,
/* 52083*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 52084*/          OPC_CheckFoldableChainNode,
/* 52085*/          OPC_RecordChild1, // #2 = $src2
/* 52086*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52088*/          OPC_CheckPredicate, 9, // Predicate_load
/* 52090*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 52092*/          OPC_CheckType, MVT::v2i64,
/* 52094*/          OPC_MoveParent,
/* 52095*/          OPC_MoveParent,
/* 52096*/          OPC_MoveParent,
/* 52097*/          OPC_RecordChild1, // #3 = $mask
/* 52098*/          OPC_CheckType, MVT::v16i1,
/* 52100*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 52102*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52105*/          OPC_EmitMergeInputChains1_1,
/* 52106*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v16i1] } (X86Vpshufbitqmb:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 31
                    // Dst: (VPSHUFBITQMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52119*/        0, /*End of Scope*/
/* 52120*/      0, // EndSwitchOpcode
/* 52121*/    /*Scope*/ 20|128,2/*276*/, /*->52399*/
/* 52123*/      OPC_RecordChild0, // #0 = $mask
/* 52124*/      OPC_MoveChild1,
/* 52125*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 52128*/      OPC_Scope, 94|128,1/*222*/, /*->52353*/ // 2 children in Scope
/* 52131*/        OPC_RecordChild0, // #1 = $src1
/* 52132*/        OPC_Scope, 72, /*->52206*/ // 3 children in Scope
/* 52134*/          OPC_CheckChild0Type, MVT::v8i64,
/* 52136*/          OPC_MoveChild1,
/* 52137*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52140*/          OPC_RecordMemRef,
/* 52141*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 52142*/          OPC_CheckFoldableChainNode,
/* 52143*/          OPC_RecordChild1, // #3 = $src2
/* 52144*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52146*/          OPC_CheckPredicate, 9, // Predicate_load
/* 52148*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 52150*/          OPC_MoveParent,
/* 52151*/          OPC_MoveChild2,
/* 52152*/          OPC_Scope, 25, /*->52179*/ // 2 children in Scope
/* 52154*/            OPC_CheckCondCode, ISD::SETEQ,
/* 52156*/            OPC_MoveParent,
/* 52157*/            OPC_MoveParent,
/* 52158*/            OPC_CheckType, MVT::v8i1,
/* 52160*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 52162*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52165*/            OPC_EmitMergeInputChains1_2,
/* 52166*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETEQ:{ *:[Other] })) - Complexity = 30
                      // Dst: (VPCMPEQQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52179*/          /*Scope*/ 25, /*->52205*/
/* 52180*/            OPC_CheckCondCode, ISD::SETGT,
/* 52182*/            OPC_MoveParent,
/* 52183*/            OPC_MoveParent,
/* 52184*/            OPC_CheckType, MVT::v8i1,
/* 52186*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 52188*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52191*/            OPC_EmitMergeInputChains1_2,
/* 52192*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETGT:{ *:[Other] })) - Complexity = 30
                      // Dst: (VPCMPGTQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52205*/          0, /*End of Scope*/
/* 52206*/        /*Scope*/ 72, /*->52279*/
/* 52207*/          OPC_CheckChild0Type, MVT::v4i64,
/* 52209*/          OPC_MoveChild1,
/* 52210*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52213*/          OPC_RecordMemRef,
/* 52214*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 52215*/          OPC_CheckFoldableChainNode,
/* 52216*/          OPC_RecordChild1, // #3 = $src2
/* 52217*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52219*/          OPC_CheckPredicate, 9, // Predicate_load
/* 52221*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 52223*/          OPC_MoveParent,
/* 52224*/          OPC_MoveChild2,
/* 52225*/          OPC_Scope, 25, /*->52252*/ // 2 children in Scope
/* 52227*/            OPC_CheckCondCode, ISD::SETEQ,
/* 52229*/            OPC_MoveParent,
/* 52230*/            OPC_MoveParent,
/* 52231*/            OPC_CheckType, MVT::v4i1,
/* 52233*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52235*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52238*/            OPC_EmitMergeInputChains1_2,
/* 52239*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETEQ:{ *:[Other] })) - Complexity = 30
                      // Dst: (VPCMPEQQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52252*/          /*Scope*/ 25, /*->52278*/
/* 52253*/            OPC_CheckCondCode, ISD::SETGT,
/* 52255*/            OPC_MoveParent,
/* 52256*/            OPC_MoveParent,
/* 52257*/            OPC_CheckType, MVT::v4i1,
/* 52259*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52261*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52264*/            OPC_EmitMergeInputChains1_2,
/* 52265*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETGT:{ *:[Other] })) - Complexity = 30
                      // Dst: (VPCMPGTQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52278*/          0, /*End of Scope*/
/* 52279*/        /*Scope*/ 72, /*->52352*/
/* 52280*/          OPC_CheckChild0Type, MVT::v2i64,
/* 52282*/          OPC_MoveChild1,
/* 52283*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52286*/          OPC_RecordMemRef,
/* 52287*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 52288*/          OPC_CheckFoldableChainNode,
/* 52289*/          OPC_RecordChild1, // #3 = $src2
/* 52290*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52292*/          OPC_CheckPredicate, 9, // Predicate_load
/* 52294*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 52296*/          OPC_MoveParent,
/* 52297*/          OPC_MoveChild2,
/* 52298*/          OPC_Scope, 25, /*->52325*/ // 2 children in Scope
/* 52300*/            OPC_CheckCondCode, ISD::SETEQ,
/* 52302*/            OPC_MoveParent,
/* 52303*/            OPC_MoveParent,
/* 52304*/            OPC_CheckType, MVT::v2i1,
/* 52306*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52308*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52311*/            OPC_EmitMergeInputChains1_2,
/* 52312*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETEQ:{ *:[Other] })) - Complexity = 30
                      // Dst: (VPCMPEQQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52325*/          /*Scope*/ 25, /*->52351*/
/* 52326*/            OPC_CheckCondCode, ISD::SETGT,
/* 52328*/            OPC_MoveParent,
/* 52329*/            OPC_MoveParent,
/* 52330*/            OPC_CheckType, MVT::v2i1,
/* 52332*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52334*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52337*/            OPC_EmitMergeInputChains1_2,
/* 52338*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i1, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETGT:{ *:[Other] })) - Complexity = 30
                      // Dst: (VPCMPGTQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52351*/          0, /*End of Scope*/
/* 52352*/        0, /*End of Scope*/
/* 52353*/      /*Scope*/ 44, /*->52398*/
/* 52354*/        OPC_MoveChild0,
/* 52355*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52358*/        OPC_RecordMemRef,
/* 52359*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 52360*/        OPC_CheckFoldableChainNode,
/* 52361*/        OPC_RecordChild1, // #2 = $src2
/* 52362*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52364*/        OPC_CheckPredicate, 9, // Predicate_load
/* 52366*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 52368*/        OPC_CheckType, MVT::v8i64,
/* 52370*/        OPC_MoveParent,
/* 52371*/        OPC_RecordChild1, // #3 = $src1
/* 52372*/        OPC_MoveChild2,
/* 52373*/        OPC_CheckCondCode, ISD::SETEQ,
/* 52375*/        OPC_MoveParent,
/* 52376*/        OPC_MoveParent,
/* 52377*/        OPC_CheckType, MVT::v8i1,
/* 52379*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 52381*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52384*/        OPC_EmitMergeInputChains1_1,
/* 52385*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 30
                  // Dst: (VPCMPEQQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52398*/      0, /*End of Scope*/
/* 52399*/    /*Scope*/ 98, /*->52498*/
/* 52400*/      OPC_MoveChild0,
/* 52401*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 52404*/      OPC_Scope, 45, /*->52451*/ // 2 children in Scope
/* 52406*/        OPC_RecordChild0, // #0 = $src1
/* 52407*/        OPC_CheckChild0Type, MVT::v8i64,
/* 52409*/        OPC_MoveChild1,
/* 52410*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52413*/        OPC_RecordMemRef,
/* 52414*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 52415*/        OPC_CheckFoldableChainNode,
/* 52416*/        OPC_RecordChild1, // #2 = $src2
/* 52417*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52419*/        OPC_CheckPredicate, 9, // Predicate_load
/* 52421*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 52423*/        OPC_MoveParent,
/* 52424*/        OPC_MoveChild2,
/* 52425*/        OPC_CheckCondCode, ISD::SETEQ,
/* 52427*/        OPC_MoveParent,
/* 52428*/        OPC_MoveParent,
/* 52429*/        OPC_RecordChild1, // #3 = $mask
/* 52430*/        OPC_CheckType, MVT::v8i1,
/* 52432*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 52434*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52437*/        OPC_EmitMergeInputChains1_1,
/* 52438*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 30
                  // Dst: (VPCMPEQQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52451*/      /*Scope*/ 45, /*->52497*/
/* 52452*/        OPC_MoveChild0,
/* 52453*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52456*/        OPC_RecordMemRef,
/* 52457*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 52458*/        OPC_CheckFoldableChainNode,
/* 52459*/        OPC_RecordChild1, // #1 = $src2
/* 52460*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52462*/        OPC_CheckPredicate, 9, // Predicate_load
/* 52464*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 52466*/        OPC_CheckType, MVT::v8i64,
/* 52468*/        OPC_MoveParent,
/* 52469*/        OPC_RecordChild1, // #2 = $src1
/* 52470*/        OPC_MoveChild2,
/* 52471*/        OPC_CheckCondCode, ISD::SETEQ,
/* 52473*/        OPC_MoveParent,
/* 52474*/        OPC_MoveParent,
/* 52475*/        OPC_RecordChild1, // #3 = $mask
/* 52476*/        OPC_CheckType, MVT::v8i1,
/* 52478*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 52480*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52483*/        OPC_EmitMergeInputChains1_0,
/* 52484*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 30
                  // Dst: (VPCMPEQQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52497*/      0, /*End of Scope*/
/* 52498*/    /*Scope*/ 49, /*->52548*/
/* 52499*/      OPC_RecordChild0, // #0 = $mask
/* 52500*/      OPC_MoveChild1,
/* 52501*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 52504*/      OPC_MoveChild0,
/* 52505*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52508*/      OPC_RecordMemRef,
/* 52509*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 52510*/      OPC_CheckFoldableChainNode,
/* 52511*/      OPC_RecordChild1, // #2 = $src2
/* 52512*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52514*/      OPC_CheckPredicate, 9, // Predicate_load
/* 52516*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 52518*/      OPC_CheckType, MVT::v4i64,
/* 52520*/      OPC_MoveParent,
/* 52521*/      OPC_RecordChild1, // #3 = $src1
/* 52522*/      OPC_MoveChild2,
/* 52523*/      OPC_CheckCondCode, ISD::SETEQ,
/* 52525*/      OPC_MoveParent,
/* 52526*/      OPC_MoveParent,
/* 52527*/      OPC_CheckType, MVT::v4i1,
/* 52529*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52531*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52534*/      OPC_EmitMergeInputChains1_1,
/* 52535*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 30
                // Dst: (VPCMPEQQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52548*/    /*Scope*/ 98, /*->52647*/
/* 52549*/      OPC_MoveChild0,
/* 52550*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 52553*/      OPC_Scope, 45, /*->52600*/ // 2 children in Scope
/* 52555*/        OPC_RecordChild0, // #0 = $src1
/* 52556*/        OPC_CheckChild0Type, MVT::v4i64,
/* 52558*/        OPC_MoveChild1,
/* 52559*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52562*/        OPC_RecordMemRef,
/* 52563*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 52564*/        OPC_CheckFoldableChainNode,
/* 52565*/        OPC_RecordChild1, // #2 = $src2
/* 52566*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52568*/        OPC_CheckPredicate, 9, // Predicate_load
/* 52570*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 52572*/        OPC_MoveParent,
/* 52573*/        OPC_MoveChild2,
/* 52574*/        OPC_CheckCondCode, ISD::SETEQ,
/* 52576*/        OPC_MoveParent,
/* 52577*/        OPC_MoveParent,
/* 52578*/        OPC_RecordChild1, // #3 = $mask
/* 52579*/        OPC_CheckType, MVT::v4i1,
/* 52581*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52583*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52586*/        OPC_EmitMergeInputChains1_1,
/* 52587*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 30
                  // Dst: (VPCMPEQQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52600*/      /*Scope*/ 45, /*->52646*/
/* 52601*/        OPC_MoveChild0,
/* 52602*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52605*/        OPC_RecordMemRef,
/* 52606*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 52607*/        OPC_CheckFoldableChainNode,
/* 52608*/        OPC_RecordChild1, // #1 = $src2
/* 52609*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52611*/        OPC_CheckPredicate, 9, // Predicate_load
/* 52613*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 52615*/        OPC_CheckType, MVT::v4i64,
/* 52617*/        OPC_MoveParent,
/* 52618*/        OPC_RecordChild1, // #2 = $src1
/* 52619*/        OPC_MoveChild2,
/* 52620*/        OPC_CheckCondCode, ISD::SETEQ,
/* 52622*/        OPC_MoveParent,
/* 52623*/        OPC_MoveParent,
/* 52624*/        OPC_RecordChild1, // #3 = $mask
/* 52625*/        OPC_CheckType, MVT::v4i1,
/* 52627*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52629*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52632*/        OPC_EmitMergeInputChains1_0,
/* 52633*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 30
                  // Dst: (VPCMPEQQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52646*/      0, /*End of Scope*/
/* 52647*/    /*Scope*/ 49, /*->52697*/
/* 52648*/      OPC_RecordChild0, // #0 = $mask
/* 52649*/      OPC_MoveChild1,
/* 52650*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 52653*/      OPC_MoveChild0,
/* 52654*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52657*/      OPC_RecordMemRef,
/* 52658*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 52659*/      OPC_CheckFoldableChainNode,
/* 52660*/      OPC_RecordChild1, // #2 = $src2
/* 52661*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52663*/      OPC_CheckPredicate, 9, // Predicate_load
/* 52665*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 52667*/      OPC_CheckType, MVT::v2i64,
/* 52669*/      OPC_MoveParent,
/* 52670*/      OPC_RecordChild1, // #3 = $src1
/* 52671*/      OPC_MoveChild2,
/* 52672*/      OPC_CheckCondCode, ISD::SETEQ,
/* 52674*/      OPC_MoveParent,
/* 52675*/      OPC_MoveParent,
/* 52676*/      OPC_CheckType, MVT::v2i1,
/* 52678*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52680*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52683*/      OPC_EmitMergeInputChains1_1,
/* 52684*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86setcc_commute:{ *:[v2i1] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, SETEQ:{ *:[Other] })) - Complexity = 30
                // Dst: (VPCMPEQQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52697*/    /*Scope*/ 110|128,1/*238*/, /*->52937*/
/* 52699*/      OPC_MoveChild0,
/* 52700*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 52703*/      OPC_Scope, 45, /*->52750*/ // 3 children in Scope
/* 52705*/        OPC_RecordChild0, // #0 = $src1
/* 52706*/        OPC_CheckChild0Type, MVT::v2i64,
/* 52708*/        OPC_MoveChild1,
/* 52709*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52712*/        OPC_RecordMemRef,
/* 52713*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 52714*/        OPC_CheckFoldableChainNode,
/* 52715*/        OPC_RecordChild1, // #2 = $src2
/* 52716*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52718*/        OPC_CheckPredicate, 9, // Predicate_load
/* 52720*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 52722*/        OPC_MoveParent,
/* 52723*/        OPC_MoveChild2,
/* 52724*/        OPC_CheckCondCode, ISD::SETEQ,
/* 52726*/        OPC_MoveParent,
/* 52727*/        OPC_MoveParent,
/* 52728*/        OPC_RecordChild1, // #3 = $mask
/* 52729*/        OPC_CheckType, MVT::v2i1,
/* 52731*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52733*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52736*/        OPC_EmitMergeInputChains1_1,
/* 52737*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETEQ:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 30
                  // Dst: (VPCMPEQQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52750*/      /*Scope*/ 45, /*->52796*/
/* 52751*/        OPC_MoveChild0,
/* 52752*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52755*/        OPC_RecordMemRef,
/* 52756*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 52757*/        OPC_CheckFoldableChainNode,
/* 52758*/        OPC_RecordChild1, // #1 = $src2
/* 52759*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52761*/        OPC_CheckPredicate, 9, // Predicate_load
/* 52763*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 52765*/        OPC_CheckType, MVT::v2i64,
/* 52767*/        OPC_MoveParent,
/* 52768*/        OPC_RecordChild1, // #2 = $src1
/* 52769*/        OPC_MoveChild2,
/* 52770*/        OPC_CheckCondCode, ISD::SETEQ,
/* 52772*/        OPC_MoveParent,
/* 52773*/        OPC_MoveParent,
/* 52774*/        OPC_RecordChild1, // #3 = $mask
/* 52775*/        OPC_CheckType, MVT::v2i1,
/* 52777*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52779*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52782*/        OPC_EmitMergeInputChains1_0,
/* 52783*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (and:{ *:[v2i1] } (X86setcc_commute:{ *:[v2i1] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, SETEQ:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 30
                  // Dst: (VPCMPEQQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52796*/      /*Scope*/ 10|128,1/*138*/, /*->52936*/
/* 52798*/        OPC_RecordChild0, // #0 = $src1
/* 52799*/        OPC_Scope, 44, /*->52845*/ // 3 children in Scope
/* 52801*/          OPC_CheckChild0Type, MVT::v8i64,
/* 52803*/          OPC_MoveChild1,
/* 52804*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52807*/          OPC_RecordMemRef,
/* 52808*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 52809*/          OPC_CheckFoldableChainNode,
/* 52810*/          OPC_RecordChild1, // #2 = $src2
/* 52811*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52813*/          OPC_CheckPredicate, 9, // Predicate_load
/* 52815*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 52817*/          OPC_MoveParent,
/* 52818*/          OPC_MoveChild2,
/* 52819*/          OPC_CheckCondCode, ISD::SETGT,
/* 52821*/          OPC_MoveParent,
/* 52822*/          OPC_MoveParent,
/* 52823*/          OPC_RecordChild1, // #3 = $mask
/* 52824*/          OPC_CheckType, MVT::v8i1,
/* 52826*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 52828*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52831*/          OPC_EmitMergeInputChains1_1,
/* 52832*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETGT:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 30
                    // Dst: (VPCMPGTQZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52845*/        /*Scope*/ 44, /*->52890*/
/* 52846*/          OPC_CheckChild0Type, MVT::v4i64,
/* 52848*/          OPC_MoveChild1,
/* 52849*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52852*/          OPC_RecordMemRef,
/* 52853*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 52854*/          OPC_CheckFoldableChainNode,
/* 52855*/          OPC_RecordChild1, // #2 = $src2
/* 52856*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52858*/          OPC_CheckPredicate, 9, // Predicate_load
/* 52860*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 52862*/          OPC_MoveParent,
/* 52863*/          OPC_MoveChild2,
/* 52864*/          OPC_CheckCondCode, ISD::SETGT,
/* 52866*/          OPC_MoveParent,
/* 52867*/          OPC_MoveParent,
/* 52868*/          OPC_RecordChild1, // #3 = $mask
/* 52869*/          OPC_CheckType, MVT::v4i1,
/* 52871*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52873*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52876*/          OPC_EmitMergeInputChains1_1,
/* 52877*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETGT:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 30
                    // Dst: (VPCMPGTQZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52890*/        /*Scope*/ 44, /*->52935*/
/* 52891*/          OPC_CheckChild0Type, MVT::v2i64,
/* 52893*/          OPC_MoveChild1,
/* 52894*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52897*/          OPC_RecordMemRef,
/* 52898*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 52899*/          OPC_CheckFoldableChainNode,
/* 52900*/          OPC_RecordChild1, // #2 = $src2
/* 52901*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52903*/          OPC_CheckPredicate, 9, // Predicate_load
/* 52905*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 52907*/          OPC_MoveParent,
/* 52908*/          OPC_MoveChild2,
/* 52909*/          OPC_CheckCondCode, ISD::SETGT,
/* 52911*/          OPC_MoveParent,
/* 52912*/          OPC_MoveParent,
/* 52913*/          OPC_RecordChild1, // #3 = $mask
/* 52914*/          OPC_CheckType, MVT::v2i1,
/* 52916*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52918*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52921*/          OPC_EmitMergeInputChains1_1,
/* 52922*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETGT:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 30
                    // Dst: (VPCMPGTQZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52935*/        0, /*End of Scope*/
/* 52936*/      0, /*End of Scope*/
/* 52937*/    /*Scope*/ 78|128,9/*1230*/, /*->54169*/
/* 52939*/      OPC_RecordChild0, // #0 = $mask
/* 52940*/      OPC_Scope, 3|128,5/*643*/, /*->53586*/ // 3 children in Scope
/* 52943*/        OPC_RecordChild1, // #1 = $cc
/* 52944*/        OPC_MoveChild1,
/* 52945*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 52948*/        OPC_Scope, 53, /*->53003*/ // 12 children in Scope
/* 52950*/          OPC_RecordChild0, // #2 = $src1
/* 52951*/          OPC_CheckChild0Type, MVT::v8i64,
/* 52953*/          OPC_MoveChild1,
/* 52954*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52957*/          OPC_RecordMemRef,
/* 52958*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 52959*/          OPC_CheckFoldableChainNode,
/* 52960*/          OPC_RecordChild1, // #4 = $src2
/* 52961*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52963*/          OPC_CheckPredicate, 9, // Predicate_load
/* 52965*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 52967*/          OPC_MoveParent,
/* 52968*/          OPC_MoveChild2,
/* 52969*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52972*/          OPC_MoveParent,
/* 52973*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 52975*/          OPC_MoveParent,
/* 52976*/          OPC_CheckType, MVT::v8i1,
/* 52978*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 52980*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52983*/          OPC_EmitMergeInputChains, 1, 3, 
/* 52986*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 52989*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53003*/        /*Scope*/ 51, /*->53055*/
/* 53004*/          OPC_MoveChild0,
/* 53005*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53008*/          OPC_RecordMemRef,
/* 53009*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 53010*/          OPC_CheckFoldableChainNode,
/* 53011*/          OPC_RecordChild1, // #3 = $src2
/* 53012*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53014*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53016*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53018*/          OPC_CheckType, MVT::v8i64,
/* 53020*/          OPC_MoveParent,
/* 53021*/          OPC_RecordChild1, // #4 = $src1
/* 53022*/          OPC_MoveChild2,
/* 53023*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53026*/          OPC_MoveParent,
/* 53027*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 53029*/          OPC_MoveParent,
/* 53030*/          OPC_CheckType, MVT::v8i1,
/* 53032*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53034*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53037*/          OPC_EmitMergeInputChains1_2,
/* 53038*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 53041*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53055*/        /*Scope*/ 53, /*->53109*/
/* 53056*/          OPC_RecordChild0, // #2 = $src1
/* 53057*/          OPC_CheckChild0Type, MVT::v4i64,
/* 53059*/          OPC_MoveChild1,
/* 53060*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53063*/          OPC_RecordMemRef,
/* 53064*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 53065*/          OPC_CheckFoldableChainNode,
/* 53066*/          OPC_RecordChild1, // #4 = $src2
/* 53067*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53069*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53071*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53073*/          OPC_MoveParent,
/* 53074*/          OPC_MoveChild2,
/* 53075*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53078*/          OPC_MoveParent,
/* 53079*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 53081*/          OPC_MoveParent,
/* 53082*/          OPC_CheckType, MVT::v4i1,
/* 53084*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53086*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53089*/          OPC_EmitMergeInputChains, 1, 3, 
/* 53092*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 53095*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53109*/        /*Scope*/ 51, /*->53161*/
/* 53110*/          OPC_MoveChild0,
/* 53111*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53114*/          OPC_RecordMemRef,
/* 53115*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 53116*/          OPC_CheckFoldableChainNode,
/* 53117*/          OPC_RecordChild1, // #3 = $src2
/* 53118*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53120*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53122*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53124*/          OPC_CheckType, MVT::v4i64,
/* 53126*/          OPC_MoveParent,
/* 53127*/          OPC_RecordChild1, // #4 = $src1
/* 53128*/          OPC_MoveChild2,
/* 53129*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53132*/          OPC_MoveParent,
/* 53133*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 53135*/          OPC_MoveParent,
/* 53136*/          OPC_CheckType, MVT::v4i1,
/* 53138*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53140*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53143*/          OPC_EmitMergeInputChains1_2,
/* 53144*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 53147*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 53161*/        /*Scope*/ 53, /*->53215*/
/* 53162*/          OPC_RecordChild0, // #2 = $src1
/* 53163*/          OPC_CheckChild0Type, MVT::v2i64,
/* 53165*/          OPC_MoveChild1,
/* 53166*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53169*/          OPC_RecordMemRef,
/* 53170*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 53171*/          OPC_CheckFoldableChainNode,
/* 53172*/          OPC_RecordChild1, // #4 = $src2
/* 53173*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53175*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53177*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53179*/          OPC_MoveParent,
/* 53180*/          OPC_MoveChild2,
/* 53181*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53184*/          OPC_MoveParent,
/* 53185*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 53187*/          OPC_MoveParent,
/* 53188*/          OPC_CheckType, MVT::v2i1,
/* 53190*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53192*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53195*/          OPC_EmitMergeInputChains, 1, 3, 
/* 53198*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 53201*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53215*/        /*Scope*/ 51, /*->53267*/
/* 53216*/          OPC_MoveChild0,
/* 53217*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53220*/          OPC_RecordMemRef,
/* 53221*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 53222*/          OPC_CheckFoldableChainNode,
/* 53223*/          OPC_RecordChild1, // #3 = $src2
/* 53224*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53226*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53228*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53230*/          OPC_CheckType, MVT::v2i64,
/* 53232*/          OPC_MoveParent,
/* 53233*/          OPC_RecordChild1, // #4 = $src1
/* 53234*/          OPC_MoveChild2,
/* 53235*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53238*/          OPC_MoveParent,
/* 53239*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 53241*/          OPC_MoveParent,
/* 53242*/          OPC_CheckType, MVT::v2i1,
/* 53244*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53246*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53249*/          OPC_EmitMergeInputChains1_2,
/* 53250*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 53253*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 53267*/        /*Scope*/ 53, /*->53321*/
/* 53268*/          OPC_RecordChild0, // #2 = $src1
/* 53269*/          OPC_CheckChild0Type, MVT::v8i64,
/* 53271*/          OPC_MoveChild1,
/* 53272*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53275*/          OPC_RecordMemRef,
/* 53276*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 53277*/          OPC_CheckFoldableChainNode,
/* 53278*/          OPC_RecordChild1, // #4 = $src2
/* 53279*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53281*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53283*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53285*/          OPC_MoveParent,
/* 53286*/          OPC_MoveChild2,
/* 53287*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53290*/          OPC_MoveParent,
/* 53291*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 53293*/          OPC_MoveParent,
/* 53294*/          OPC_CheckType, MVT::v8i1,
/* 53296*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53298*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53301*/          OPC_EmitMergeInputChains, 1, 3, 
/* 53304*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 53307*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53321*/        /*Scope*/ 51, /*->53373*/
/* 53322*/          OPC_MoveChild0,
/* 53323*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53326*/          OPC_RecordMemRef,
/* 53327*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 53328*/          OPC_CheckFoldableChainNode,
/* 53329*/          OPC_RecordChild1, // #3 = $src2
/* 53330*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53332*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53334*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53336*/          OPC_CheckType, MVT::v8i64,
/* 53338*/          OPC_MoveParent,
/* 53339*/          OPC_RecordChild1, // #4 = $src1
/* 53340*/          OPC_MoveChild2,
/* 53341*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53344*/          OPC_MoveParent,
/* 53345*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 53347*/          OPC_MoveParent,
/* 53348*/          OPC_CheckType, MVT::v8i1,
/* 53350*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53352*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53355*/          OPC_EmitMergeInputChains1_2,
/* 53356*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 53359*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53373*/        /*Scope*/ 53, /*->53427*/
/* 53374*/          OPC_RecordChild0, // #2 = $src1
/* 53375*/          OPC_CheckChild0Type, MVT::v4i64,
/* 53377*/          OPC_MoveChild1,
/* 53378*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53381*/          OPC_RecordMemRef,
/* 53382*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 53383*/          OPC_CheckFoldableChainNode,
/* 53384*/          OPC_RecordChild1, // #4 = $src2
/* 53385*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53387*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53389*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53391*/          OPC_MoveParent,
/* 53392*/          OPC_MoveChild2,
/* 53393*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53396*/          OPC_MoveParent,
/* 53397*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 53399*/          OPC_MoveParent,
/* 53400*/          OPC_CheckType, MVT::v4i1,
/* 53402*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53404*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53407*/          OPC_EmitMergeInputChains, 1, 3, 
/* 53410*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 53413*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53427*/        /*Scope*/ 51, /*->53479*/
/* 53428*/          OPC_MoveChild0,
/* 53429*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53432*/          OPC_RecordMemRef,
/* 53433*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 53434*/          OPC_CheckFoldableChainNode,
/* 53435*/          OPC_RecordChild1, // #3 = $src2
/* 53436*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53438*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53440*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53442*/          OPC_CheckType, MVT::v4i64,
/* 53444*/          OPC_MoveParent,
/* 53445*/          OPC_RecordChild1, // #4 = $src1
/* 53446*/          OPC_MoveChild2,
/* 53447*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53450*/          OPC_MoveParent,
/* 53451*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 53453*/          OPC_MoveParent,
/* 53454*/          OPC_CheckType, MVT::v4i1,
/* 53456*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53458*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53461*/          OPC_EmitMergeInputChains1_2,
/* 53462*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 53465*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 53479*/        /*Scope*/ 53, /*->53533*/
/* 53480*/          OPC_RecordChild0, // #2 = $src1
/* 53481*/          OPC_CheckChild0Type, MVT::v2i64,
/* 53483*/          OPC_MoveChild1,
/* 53484*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53487*/          OPC_RecordMemRef,
/* 53488*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 53489*/          OPC_CheckFoldableChainNode,
/* 53490*/          OPC_RecordChild1, // #4 = $src2
/* 53491*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53493*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53495*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53497*/          OPC_MoveParent,
/* 53498*/          OPC_MoveChild2,
/* 53499*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53502*/          OPC_MoveParent,
/* 53503*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 53505*/          OPC_MoveParent,
/* 53506*/          OPC_CheckType, MVT::v2i1,
/* 53508*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53510*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53513*/          OPC_EmitMergeInputChains, 1, 3, 
/* 53516*/          OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 53519*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53533*/        /*Scope*/ 51, /*->53585*/
/* 53534*/          OPC_MoveChild0,
/* 53535*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53538*/          OPC_RecordMemRef,
/* 53539*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 53540*/          OPC_CheckFoldableChainNode,
/* 53541*/          OPC_RecordChild1, // #3 = $src2
/* 53542*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53544*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53546*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53548*/          OPC_CheckType, MVT::v2i64,
/* 53550*/          OPC_MoveParent,
/* 53551*/          OPC_RecordChild1, // #4 = $src1
/* 53552*/          OPC_MoveChild2,
/* 53553*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53556*/          OPC_MoveParent,
/* 53557*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 53559*/          OPC_MoveParent,
/* 53560*/          OPC_CheckType, MVT::v2i1,
/* 53562*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53564*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53567*/          OPC_EmitMergeInputChains1_2,
/* 53568*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm_commute
/* 53571*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 8/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 10, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 53585*/        0, /*End of Scope*/
/* 53586*/      /*Scope*/ 113|128,3/*497*/, /*->54085*/
/* 53588*/        OPC_MoveChild0,
/* 53589*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 53592*/        OPC_Scope, 2|128,2/*258*/, /*->53853*/ // 2 children in Scope
/* 53595*/          OPC_RecordChild0, // #1 = $src1
/* 53596*/          OPC_Scope, 84, /*->53682*/ // 3 children in Scope
/* 53598*/            OPC_CheckChild0Type, MVT::v8i64,
/* 53600*/            OPC_MoveChild1,
/* 53601*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53604*/            OPC_RecordMemRef,
/* 53605*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 53606*/            OPC_CheckFoldableChainNode,
/* 53607*/            OPC_RecordChild1, // #3 = $src2
/* 53608*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53610*/            OPC_CheckPredicate, 9, // Predicate_load
/* 53612*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 53614*/            OPC_MoveParent,
/* 53615*/            OPC_MoveChild2,
/* 53616*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53619*/            OPC_MoveParent,
/* 53620*/            OPC_Scope, 29, /*->53651*/ // 2 children in Scope
/* 53622*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 53624*/              OPC_MoveParent,
/* 53625*/              OPC_RecordChild1, // #4 = $mask
/* 53626*/              OPC_CheckType, MVT::v8i1,
/* 53628*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53630*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53633*/              OPC_EmitMergeInputChains1_2,
/* 53634*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 53637*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPQZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53651*/            /*Scope*/ 29, /*->53681*/
/* 53652*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 53654*/              OPC_MoveParent,
/* 53655*/              OPC_RecordChild1, // #4 = $mask
/* 53656*/              OPC_CheckType, MVT::v8i1,
/* 53658*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53660*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53663*/              OPC_EmitMergeInputChains1_2,
/* 53664*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 53667*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUQZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53681*/            0, /*End of Scope*/
/* 53682*/          /*Scope*/ 84, /*->53767*/
/* 53683*/            OPC_CheckChild0Type, MVT::v4i64,
/* 53685*/            OPC_MoveChild1,
/* 53686*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53689*/            OPC_RecordMemRef,
/* 53690*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 53691*/            OPC_CheckFoldableChainNode,
/* 53692*/            OPC_RecordChild1, // #3 = $src2
/* 53693*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53695*/            OPC_CheckPredicate, 9, // Predicate_load
/* 53697*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 53699*/            OPC_MoveParent,
/* 53700*/            OPC_MoveChild2,
/* 53701*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53704*/            OPC_MoveParent,
/* 53705*/            OPC_Scope, 29, /*->53736*/ // 2 children in Scope
/* 53707*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 53709*/              OPC_MoveParent,
/* 53710*/              OPC_RecordChild1, // #4 = $mask
/* 53711*/              OPC_CheckType, MVT::v4i1,
/* 53713*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53715*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53718*/              OPC_EmitMergeInputChains1_2,
/* 53719*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 53722*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPQZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53736*/            /*Scope*/ 29, /*->53766*/
/* 53737*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 53739*/              OPC_MoveParent,
/* 53740*/              OPC_RecordChild1, // #4 = $mask
/* 53741*/              OPC_CheckType, MVT::v4i1,
/* 53743*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53745*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53748*/              OPC_EmitMergeInputChains1_2,
/* 53749*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 53752*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUQZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53766*/            0, /*End of Scope*/
/* 53767*/          /*Scope*/ 84, /*->53852*/
/* 53768*/            OPC_CheckChild0Type, MVT::v2i64,
/* 53770*/            OPC_MoveChild1,
/* 53771*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53774*/            OPC_RecordMemRef,
/* 53775*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 53776*/            OPC_CheckFoldableChainNode,
/* 53777*/            OPC_RecordChild1, // #3 = $src2
/* 53778*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53780*/            OPC_CheckPredicate, 9, // Predicate_load
/* 53782*/            OPC_CheckPredicate, 40, // Predicate_vecload
/* 53784*/            OPC_MoveParent,
/* 53785*/            OPC_MoveChild2,
/* 53786*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53789*/            OPC_MoveParent,
/* 53790*/            OPC_Scope, 29, /*->53821*/ // 2 children in Scope
/* 53792*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 53794*/              OPC_MoveParent,
/* 53795*/              OPC_RecordChild1, // #4 = $mask
/* 53796*/              OPC_CheckType, MVT::v2i1,
/* 53798*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53800*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53803*/              OPC_EmitMergeInputChains1_2,
/* 53804*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 53807*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPQZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53821*/            /*Scope*/ 29, /*->53851*/
/* 53822*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 53824*/              OPC_MoveParent,
/* 53825*/              OPC_RecordChild1, // #4 = $mask
/* 53826*/              OPC_CheckType, MVT::v2i1,
/* 53828*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53830*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53833*/              OPC_EmitMergeInputChains1_2,
/* 53834*/              OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 53837*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 8/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUQZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/* 53851*/            0, /*End of Scope*/
/* 53852*/          0, /*End of Scope*/
/* 53853*/        /*Scope*/ 101|128,1/*229*/, /*->54084*/
/* 53855*/          OPC_MoveChild0,
/* 53856*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 53859*/          OPC_RecordMemRef,
/* 53860*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 53861*/          OPC_CheckFoldableChainNode,
/* 53862*/          OPC_RecordChild1, // #2 = $src2
/* 53863*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 53865*/          OPC_CheckPredicate, 9, // Predicate_load
/* 53867*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 53869*/          OPC_SwitchType /*3 cases */, 69, MVT::v8i64,// ->53941
/* 53872*/            OPC_MoveParent,
/* 53873*/            OPC_RecordChild1, // #3 = $src1
/* 53874*/            OPC_MoveChild2,
/* 53875*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53878*/            OPC_MoveParent,
/* 53879*/            OPC_Scope, 29, /*->53910*/ // 2 children in Scope
/* 53881*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 53883*/              OPC_MoveParent,
/* 53884*/              OPC_RecordChild1, // #4 = $mask
/* 53885*/              OPC_CheckType, MVT::v8i1,
/* 53887*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53889*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53892*/              OPC_EmitMergeInputChains1_1,
/* 53893*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 53896*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPQZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53910*/            /*Scope*/ 29, /*->53940*/
/* 53911*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 53913*/              OPC_MoveParent,
/* 53914*/              OPC_RecordChild1, // #4 = $mask
/* 53915*/              OPC_CheckType, MVT::v8i1,
/* 53917*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53919*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53922*/              OPC_EmitMergeInputChains1_1,
/* 53923*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 53926*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUQZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53940*/            0, /*End of Scope*/
/* 53941*/          /*SwitchType*/ 69, MVT::v4i64,// ->54012
/* 53943*/            OPC_MoveParent,
/* 53944*/            OPC_RecordChild1, // #3 = $src1
/* 53945*/            OPC_MoveChild2,
/* 53946*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53949*/            OPC_MoveParent,
/* 53950*/            OPC_Scope, 29, /*->53981*/ // 2 children in Scope
/* 53952*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 53954*/              OPC_MoveParent,
/* 53955*/              OPC_RecordChild1, // #4 = $mask
/* 53956*/              OPC_CheckType, MVT::v4i1,
/* 53958*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53960*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53963*/              OPC_EmitMergeInputChains1_1,
/* 53964*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 53967*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPQZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 53981*/            /*Scope*/ 29, /*->54011*/
/* 53982*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 53984*/              OPC_MoveParent,
/* 53985*/              OPC_RecordChild1, // #4 = $mask
/* 53986*/              OPC_CheckType, MVT::v4i1,
/* 53988*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53990*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53993*/              OPC_EmitMergeInputChains1_1,
/* 53994*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 53997*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUQZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 54011*/            0, /*End of Scope*/
/* 54012*/          /*SwitchType*/ 69, MVT::v2i64,// ->54083
/* 54014*/            OPC_MoveParent,
/* 54015*/            OPC_RecordChild1, // #3 = $src1
/* 54016*/            OPC_MoveChild2,
/* 54017*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54020*/            OPC_MoveParent,
/* 54021*/            OPC_Scope, 29, /*->54052*/ // 2 children in Scope
/* 54023*/              OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/* 54025*/              OPC_MoveParent,
/* 54026*/              OPC_RecordChild1, // #4 = $mask
/* 54027*/              OPC_CheckType, MVT::v2i1,
/* 54029*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 54031*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54034*/              OPC_EmitMergeInputChains1_1,
/* 54035*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 54038*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPQZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 54052*/            /*Scope*/ 29, /*->54082*/
/* 54053*/              OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/* 54055*/              OPC_MoveParent,
/* 54056*/              OPC_RecordChild1, // #4 = $mask
/* 54057*/              OPC_CheckType, MVT::v2i1,
/* 54059*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 54061*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54064*/              OPC_EmitMergeInputChains1_1,
/* 54065*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/* 54068*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 8/*#Ops*/, 4, 3, 5, 6, 7, 8, 9, 10, 
                        // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUQZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 54082*/            0, /*End of Scope*/
/* 54083*/          0, // EndSwitchType
/* 54084*/        0, /*End of Scope*/
/* 54085*/      /*Scope*/ 82, /*->54168*/
/* 54086*/        OPC_MoveChild1,
/* 54087*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 54090*/        OPC_MoveChild0,
/* 54091*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 54094*/        OPC_RecordMemRef,
/* 54095*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 54096*/        OPC_CheckFoldableChainNode,
/* 54097*/        OPC_RecordChild1, // #2 = $src2
/* 54098*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 54100*/        OPC_CheckPredicate, 9, // Predicate_load
/* 54102*/        OPC_CheckType, MVT::i64,
/* 54104*/        OPC_MoveParent,
/* 54105*/        OPC_MoveParent,
/* 54106*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->54127
/* 54109*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 54111*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54114*/          OPC_EmitMergeInputChains1_1,
/* 54115*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VPANDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54127*/        /*SwitchType*/ 18, MVT::v4i64,// ->54147
/* 54129*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 54131*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54134*/          OPC_EmitMergeInputChains1_1,
/* 54135*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VPANDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54147*/        /*SwitchType*/ 18, MVT::v2i64,// ->54167
/* 54149*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 54151*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54154*/          OPC_EmitMergeInputChains1_1,
/* 54155*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VPANDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54167*/        0, // EndSwitchType
/* 54168*/      0, /*End of Scope*/
/* 54169*/    /*Scope*/ 83, /*->54253*/
/* 54170*/      OPC_MoveChild0,
/* 54171*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/* 54174*/      OPC_MoveChild0,
/* 54175*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 54178*/      OPC_RecordMemRef,
/* 54179*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 54180*/      OPC_CheckFoldableChainNode,
/* 54181*/      OPC_RecordChild1, // #1 = $src2
/* 54182*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 54184*/      OPC_CheckPredicate, 9, // Predicate_load
/* 54186*/      OPC_CheckType, MVT::i64,
/* 54188*/      OPC_MoveParent,
/* 54189*/      OPC_MoveParent,
/* 54190*/      OPC_RecordChild1, // #2 = $src1
/* 54191*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->54212
/* 54194*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 54196*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54199*/        OPC_EmitMergeInputChains1_0,
/* 54200*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (and:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                  // Dst: (VPANDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54212*/      /*SwitchType*/ 18, MVT::v4i64,// ->54232
/* 54214*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 54216*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54219*/        OPC_EmitMergeInputChains1_0,
/* 54220*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (and:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                  // Dst: (VPANDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54232*/      /*SwitchType*/ 18, MVT::v2i64,// ->54252
/* 54234*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 54236*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54239*/        OPC_EmitMergeInputChains1_0,
/* 54240*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (and:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                  // Dst: (VPANDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54252*/      0, // EndSwitchType
/* 54253*/    /*Scope*/ 28|128,1/*156*/, /*->54411*/
/* 54255*/      OPC_RecordChild0, // #0 = $mask
/* 54256*/      OPC_MoveChild1,
/* 54257*/      OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(X86ISD::FSETCCM),// ->54338
/* 54261*/        OPC_RecordChild0, // #1 = $src1
/* 54262*/        OPC_Scope, 36, /*->54300*/ // 2 children in Scope
/* 54264*/          OPC_CheckChild0Type, MVT::v4f32,
/* 54266*/          OPC_RecordChild1, // #2 = $src2
/* 54267*/          OPC_RecordChild2, // #3 = $cc
/* 54268*/          OPC_MoveChild2,
/* 54269*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54272*/          OPC_MoveParent,
/* 54273*/          OPC_MoveParent,
/* 54274*/          OPC_CheckType, MVT::v1i1,
/* 54276*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 54278*/          OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/* 54281*/          OPC_EmitMergeInputChains, 1, 9, 
/* 54284*/          OPC_EmitConvertToTarget, 3,
/* 54286*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 10, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 27
                    // Dst: (VCMPSSZrm_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 54300*/        /*Scope*/ 36, /*->54337*/
/* 54301*/          OPC_CheckChild0Type, MVT::v2f64,
/* 54303*/          OPC_RecordChild1, // #2 = $src2
/* 54304*/          OPC_RecordChild2, // #3 = $cc
/* 54305*/          OPC_MoveChild2,
/* 54306*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54309*/          OPC_MoveParent,
/* 54310*/          OPC_MoveParent,
/* 54311*/          OPC_CheckType, MVT::v1i1,
/* 54313*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 54315*/          OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/* 54318*/          OPC_EmitMergeInputChains, 1, 9, 
/* 54321*/          OPC_EmitConvertToTarget, 3,
/* 54323*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 10, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 27
                    // Dst: (VCMPSDZrm_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 54337*/        0, /*End of Scope*/
/* 54338*/      /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::VFPCLASSS),// ->54410
/* 54341*/        OPC_RecordChild0, // #1 = $src1
/* 54342*/        OPC_Scope, 32, /*->54376*/ // 2 children in Scope
/* 54344*/          OPC_CheckChild0Type, MVT::v4f32,
/* 54346*/          OPC_RecordChild1, // #2 = $src2
/* 54347*/          OPC_MoveChild1,
/* 54348*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54351*/          OPC_MoveParent,
/* 54352*/          OPC_MoveParent,
/* 54353*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 54355*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src1 #3 #4 #5 #6 #7 + chain result
/* 54358*/          OPC_EmitMergeInputChains, 1, 8, 
/* 54361*/          OPC_EmitConvertToTarget, 2,
/* 54363*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86Vfpclasss:{ *:[v1i1] } sse_load_f32:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)) - Complexity = 27
                    // Dst: (VFPCLASSSSZrmk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, sse_load_f32:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 54376*/        /*Scope*/ 32, /*->54409*/
/* 54377*/          OPC_CheckChild0Type, MVT::v2f64,
/* 54379*/          OPC_RecordChild1, // #2 = $src2
/* 54380*/          OPC_MoveChild1,
/* 54381*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54384*/          OPC_MoveParent,
/* 54385*/          OPC_MoveParent,
/* 54386*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 54388*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src1 #3 #4 #5 #6 #7 + chain result
/* 54391*/          OPC_EmitMergeInputChains, 1, 8, 
/* 54394*/          OPC_EmitConvertToTarget, 2,
/* 54396*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86Vfpclasss:{ *:[v1i1] } sse_load_f64:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)) - Complexity = 27
                    // Dst: (VFPCLASSSDZrmk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, sse_load_f64:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/* 54409*/        0, /*End of Scope*/
/* 54410*/      0, // EndSwitchOpcode
/* 54411*/    /*Scope*/ 31|128,1/*159*/, /*->54572*/
/* 54413*/      OPC_MoveChild0,
/* 54414*/      OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::FSETCCM),// ->54497
/* 54418*/        OPC_RecordChild0, // #0 = $src1
/* 54419*/        OPC_Scope, 37, /*->54458*/ // 2 children in Scope
/* 54421*/          OPC_CheckChild0Type, MVT::v4f32,
/* 54423*/          OPC_RecordChild1, // #1 = $src2
/* 54424*/          OPC_RecordChild2, // #2 = $cc
/* 54425*/          OPC_MoveChild2,
/* 54426*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54429*/          OPC_MoveParent,
/* 54430*/          OPC_MoveParent,
/* 54431*/          OPC_RecordChild1, // #3 = $mask
/* 54432*/          OPC_CheckType, MVT::v1i1,
/* 54434*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 54436*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/* 54439*/          OPC_EmitMergeInputChains, 1, 9, 
/* 54442*/          OPC_EmitConvertToTarget, 2,
/* 54444*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 10, 
                    // Src: (and:{ *:[v1i1] } (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc), VK1WM:{ *:[v1i1] }:$mask) - Complexity = 27
                    // Dst: (VCMPSSZrm_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 54458*/        /*Scope*/ 37, /*->54496*/
/* 54459*/          OPC_CheckChild0Type, MVT::v2f64,
/* 54461*/          OPC_RecordChild1, // #1 = $src2
/* 54462*/          OPC_RecordChild2, // #2 = $cc
/* 54463*/          OPC_MoveChild2,
/* 54464*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54467*/          OPC_MoveParent,
/* 54468*/          OPC_MoveParent,
/* 54469*/          OPC_RecordChild1, // #3 = $mask
/* 54470*/          OPC_CheckType, MVT::v1i1,
/* 54472*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 54474*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/* 54477*/          OPC_EmitMergeInputChains, 1, 9, 
/* 54480*/          OPC_EmitConvertToTarget, 2,
/* 54482*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 10, 
                    // Src: (and:{ *:[v1i1] } (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc), VK1WM:{ *:[v1i1] }:$mask) - Complexity = 27
                    // Dst: (VCMPSDZrm_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 54496*/        0, /*End of Scope*/
/* 54497*/      /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VFPCLASSS),// ->54571
/* 54500*/        OPC_RecordChild0, // #0 = $src1
/* 54501*/        OPC_Scope, 33, /*->54536*/ // 2 children in Scope
/* 54503*/          OPC_CheckChild0Type, MVT::v4f32,
/* 54505*/          OPC_RecordChild1, // #1 = $src2
/* 54506*/          OPC_MoveChild1,
/* 54507*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54510*/          OPC_MoveParent,
/* 54511*/          OPC_MoveParent,
/* 54512*/          OPC_RecordChild1, // #2 = $mask
/* 54513*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 54515*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src1 #3 #4 #5 #6 #7 + chain result
/* 54518*/          OPC_EmitMergeInputChains, 1, 8, 
/* 54521*/          OPC_EmitConvertToTarget, 1,
/* 54523*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 9, 
                    // Src: (and:{ *:[v1i1] } (X86Vfpclasss:{ *:[v1i1] } sse_load_f32:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2), VK1WM:{ *:[v1i1] }:$mask) - Complexity = 27
                    // Dst: (VFPCLASSSSZrmk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, sse_load_f32:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 54536*/        /*Scope*/ 33, /*->54570*/
/* 54537*/          OPC_CheckChild0Type, MVT::v2f64,
/* 54539*/          OPC_RecordChild1, // #1 = $src2
/* 54540*/          OPC_MoveChild1,
/* 54541*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54544*/          OPC_MoveParent,
/* 54545*/          OPC_MoveParent,
/* 54546*/          OPC_RecordChild1, // #2 = $mask
/* 54547*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 54549*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src1 #3 #4 #5 #6 #7 + chain result
/* 54552*/          OPC_EmitMergeInputChains, 1, 8, 
/* 54555*/          OPC_EmitConvertToTarget, 1,
/* 54557*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 9, 
                    // Src: (and:{ *:[v1i1] } (X86Vfpclasss:{ *:[v1i1] } sse_load_f64:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2), VK1WM:{ *:[v1i1] }:$mask) - Complexity = 27
                    // Dst: (VFPCLASSSDZrmk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, sse_load_f64:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/* 54570*/        0, /*End of Scope*/
/* 54571*/      0, // EndSwitchOpcode
/* 54572*/    /*Scope*/ 40|128,1/*168*/, /*->54742*/
/* 54574*/      OPC_RecordChild0, // #0 = $src1
/* 54575*/      OPC_MoveChild1,
/* 54576*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 54579*/      OPC_RecordMemRef,
/* 54580*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 54581*/      OPC_CheckFoldableChainNode,
/* 54582*/      OPC_RecordChild1, // #2 = $src2
/* 54583*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 54585*/      OPC_CheckPredicate, 9, // Predicate_load
/* 54587*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 54589*/      OPC_Scope, 21, /*->54612*/ // 3 children in Scope
/* 54591*/        OPC_MoveParent,
/* 54592*/        OPC_CheckType, MVT::v2i64,
/* 54594*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 54596*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54599*/        OPC_EmitMergeInputChains1_1,
/* 54600*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>) - Complexity = 25
                  // Dst: (VPANDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54612*/      /*Scope*/ 23, /*->54636*/
/* 54613*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 54615*/        OPC_MoveParent,
/* 54616*/        OPC_CheckType, MVT::v2i64,
/* 54618*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 54620*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54623*/        OPC_EmitMergeInputChains1_1,
/* 54624*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PANDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54636*/      /*Scope*/ 104, /*->54741*/
/* 54637*/        OPC_MoveParent,
/* 54638*/        OPC_SwitchType /*3 cases */, 59, MVT::v4i64,// ->54700
/* 54641*/          OPC_Scope, 18, /*->54661*/ // 3 children in Scope
/* 54643*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 54645*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54648*/            OPC_EmitMergeInputChains1_1,
/* 54649*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPANDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54661*/          /*Scope*/ 18, /*->54680*/
/* 54662*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 54664*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54667*/            OPC_EmitMergeInputChains1_1,
/* 54668*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VANDPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54680*/          /*Scope*/ 18, /*->54699*/
/* 54681*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 54683*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54686*/            OPC_EmitMergeInputChains1_1,
/* 54687*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPANDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54699*/          0, /*End of Scope*/
/* 54700*/        /*SwitchType*/ 18, MVT::v8i64,// ->54720
/* 54702*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 54704*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54707*/          OPC_EmitMergeInputChains1_1,
/* 54708*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPANDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54720*/        /*SwitchType*/ 18, MVT::v2i64,// ->54740
/* 54722*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 54724*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54727*/          OPC_EmitMergeInputChains1_1,
/* 54728*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPANDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54740*/        0, // EndSwitchType
/* 54741*/      0, /*End of Scope*/
/* 54742*/    /*Scope*/ 42|128,1/*170*/, /*->54914*/
/* 54744*/      OPC_MoveChild0,
/* 54745*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 54748*/      OPC_RecordMemRef,
/* 54749*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 54750*/      OPC_CheckFoldableChainNode,
/* 54751*/      OPC_RecordChild1, // #1 = $src2
/* 54752*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 54754*/      OPC_CheckPredicate, 9, // Predicate_load
/* 54756*/      OPC_CheckPredicate, 40, // Predicate_vecload
/* 54758*/      OPC_Scope, 22, /*->54782*/ // 3 children in Scope
/* 54760*/        OPC_MoveParent,
/* 54761*/        OPC_RecordChild1, // #2 = $src1
/* 54762*/        OPC_CheckType, MVT::v2i64,
/* 54764*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 54766*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54769*/        OPC_EmitMergeInputChains1_0,
/* 54770*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (VPANDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54782*/      /*Scope*/ 24, /*->54807*/
/* 54783*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 54785*/        OPC_MoveParent,
/* 54786*/        OPC_RecordChild1, // #2 = $src1
/* 54787*/        OPC_CheckType, MVT::v2i64,
/* 54789*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 54791*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54794*/        OPC_EmitMergeInputChains1_0,
/* 54795*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (PANDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54807*/      /*Scope*/ 105, /*->54913*/
/* 54808*/        OPC_MoveParent,
/* 54809*/        OPC_RecordChild1, // #2 = $src1
/* 54810*/        OPC_SwitchType /*3 cases */, 59, MVT::v4i64,// ->54872
/* 54813*/          OPC_Scope, 18, /*->54833*/ // 3 children in Scope
/* 54815*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 54817*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54820*/            OPC_EmitMergeInputChains1_0,
/* 54821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPANDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54833*/          /*Scope*/ 18, /*->54852*/
/* 54834*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 54836*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54839*/            OPC_EmitMergeInputChains1_0,
/* 54840*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54852*/          /*Scope*/ 18, /*->54871*/
/* 54853*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 54855*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54858*/            OPC_EmitMergeInputChains1_0,
/* 54859*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VANDPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54871*/          0, /*End of Scope*/
/* 54872*/        /*SwitchType*/ 18, MVT::v8i64,// ->54892
/* 54874*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 54876*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54879*/          OPC_EmitMergeInputChains1_0,
/* 54880*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPANDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54892*/        /*SwitchType*/ 18, MVT::v2i64,// ->54912
/* 54894*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 54896*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 54899*/          OPC_EmitMergeInputChains1_0,
/* 54900*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPANDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 54912*/        0, // EndSwitchType
/* 54913*/      0, /*End of Scope*/
/* 54914*/    /*Scope*/ 112|128,2/*368*/, /*->55284*/
/* 54916*/      OPC_RecordChild0, // #0 = $mask
/* 54917*/      OPC_MoveChild1,
/* 54918*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 54921*/      OPC_MoveChild0,
/* 54922*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 54925*/      OPC_MoveChild0,
/* 54926*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 54929*/      OPC_RecordChild0, // #1 = $src1
/* 54930*/      OPC_RecordChild1, // #2 = $src2
/* 54931*/      OPC_SwitchType /*3 cases */, 115, MVT::v8i64,// ->55049
/* 54934*/        OPC_MoveParent,
/* 54935*/        OPC_SwitchType /*2 cases */, 54, MVT::v32i16,// ->54992
/* 54938*/          OPC_MoveParent,
/* 54939*/          OPC_MoveChild1,
/* 54940*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 54943*/          OPC_MoveChild0,
/* 54944*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 54947*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 54949*/          OPC_CheckType, MVT::v16i32,
/* 54951*/          OPC_MoveParent,
/* 54952*/          OPC_MoveParent,
/* 54953*/          OPC_MoveChild2,
/* 54954*/          OPC_Scope, 17, /*->54973*/ // 2 children in Scope
/* 54956*/            OPC_CheckCondCode, ISD::SETNE,
/* 54958*/            OPC_MoveParent,
/* 54959*/            OPC_MoveParent,
/* 54960*/            OPC_CheckType, MVT::v32i1,
/* 54962*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 54964*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTMWZrrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 54973*/          /*Scope*/ 17, /*->54991*/
/* 54974*/            OPC_CheckCondCode, ISD::SETEQ,
/* 54976*/            OPC_MoveParent,
/* 54977*/            OPC_MoveParent,
/* 54978*/            OPC_CheckType, MVT::v32i1,
/* 54980*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 54982*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTNMWZrrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 54991*/          0, /*End of Scope*/
/* 54992*/        /*SwitchType*/ 54, MVT::v64i8,// ->55048
/* 54994*/          OPC_MoveParent,
/* 54995*/          OPC_MoveChild1,
/* 54996*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 54999*/          OPC_MoveChild0,
/* 55000*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55003*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55005*/          OPC_CheckType, MVT::v16i32,
/* 55007*/          OPC_MoveParent,
/* 55008*/          OPC_MoveParent,
/* 55009*/          OPC_MoveChild2,
/* 55010*/          OPC_Scope, 17, /*->55029*/ // 2 children in Scope
/* 55012*/            OPC_CheckCondCode, ISD::SETNE,
/* 55014*/            OPC_MoveParent,
/* 55015*/            OPC_MoveParent,
/* 55016*/            OPC_CheckType, MVT::v64i1,
/* 55018*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 55020*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTMBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 55029*/          /*Scope*/ 17, /*->55047*/
/* 55030*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55032*/            OPC_MoveParent,
/* 55033*/            OPC_MoveParent,
/* 55034*/            OPC_CheckType, MVT::v64i1,
/* 55036*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 55038*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTNMBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 55047*/          0, /*End of Scope*/
/* 55048*/        0, // EndSwitchType
/* 55049*/      /*SwitchType*/ 115, MVT::v4i64,// ->55166
/* 55051*/        OPC_MoveParent,
/* 55052*/        OPC_SwitchType /*2 cases */, 54, MVT::v16i16,// ->55109
/* 55055*/          OPC_MoveParent,
/* 55056*/          OPC_MoveChild1,
/* 55057*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55060*/          OPC_MoveChild0,
/* 55061*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55064*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55066*/          OPC_CheckType, MVT::v8i32,
/* 55068*/          OPC_MoveParent,
/* 55069*/          OPC_MoveParent,
/* 55070*/          OPC_MoveChild2,
/* 55071*/          OPC_Scope, 17, /*->55090*/ // 2 children in Scope
/* 55073*/            OPC_CheckCondCode, ISD::SETNE,
/* 55075*/            OPC_MoveParent,
/* 55076*/            OPC_MoveParent,
/* 55077*/            OPC_CheckType, MVT::v16i1,
/* 55079*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55081*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTMWZ256rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 55090*/          /*Scope*/ 17, /*->55108*/
/* 55091*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55093*/            OPC_MoveParent,
/* 55094*/            OPC_MoveParent,
/* 55095*/            OPC_CheckType, MVT::v16i1,
/* 55097*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55099*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTNMWZ256rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 55108*/          0, /*End of Scope*/
/* 55109*/        /*SwitchType*/ 54, MVT::v32i8,// ->55165
/* 55111*/          OPC_MoveParent,
/* 55112*/          OPC_MoveChild1,
/* 55113*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55116*/          OPC_MoveChild0,
/* 55117*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55120*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55122*/          OPC_CheckType, MVT::v8i32,
/* 55124*/          OPC_MoveParent,
/* 55125*/          OPC_MoveParent,
/* 55126*/          OPC_MoveChild2,
/* 55127*/          OPC_Scope, 17, /*->55146*/ // 2 children in Scope
/* 55129*/            OPC_CheckCondCode, ISD::SETNE,
/* 55131*/            OPC_MoveParent,
/* 55132*/            OPC_MoveParent,
/* 55133*/            OPC_CheckType, MVT::v32i1,
/* 55135*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55137*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTMBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 55146*/          /*Scope*/ 17, /*->55164*/
/* 55147*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55149*/            OPC_MoveParent,
/* 55150*/            OPC_MoveParent,
/* 55151*/            OPC_CheckType, MVT::v32i1,
/* 55153*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55155*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTNMBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 55164*/          0, /*End of Scope*/
/* 55165*/        0, // EndSwitchType
/* 55166*/      /*SwitchType*/ 115, MVT::v2i64,// ->55283
/* 55168*/        OPC_MoveParent,
/* 55169*/        OPC_SwitchType /*2 cases */, 54, MVT::v8i16,// ->55226
/* 55172*/          OPC_MoveParent,
/* 55173*/          OPC_MoveChild1,
/* 55174*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55177*/          OPC_MoveChild0,
/* 55178*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55181*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55183*/          OPC_CheckType, MVT::v4i32,
/* 55185*/          OPC_MoveParent,
/* 55186*/          OPC_MoveParent,
/* 55187*/          OPC_MoveChild2,
/* 55188*/          OPC_Scope, 17, /*->55207*/ // 2 children in Scope
/* 55190*/            OPC_CheckCondCode, ISD::SETNE,
/* 55192*/            OPC_MoveParent,
/* 55193*/            OPC_MoveParent,
/* 55194*/            OPC_CheckType, MVT::v8i1,
/* 55196*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55198*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTMWZ128rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 55207*/          /*Scope*/ 17, /*->55225*/
/* 55208*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55210*/            OPC_MoveParent,
/* 55211*/            OPC_MoveParent,
/* 55212*/            OPC_CheckType, MVT::v8i1,
/* 55214*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55216*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTNMWZ128rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 55225*/          0, /*End of Scope*/
/* 55226*/        /*SwitchType*/ 54, MVT::v16i8,// ->55282
/* 55228*/          OPC_MoveParent,
/* 55229*/          OPC_MoveChild1,
/* 55230*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55233*/          OPC_MoveChild0,
/* 55234*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55237*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55239*/          OPC_CheckType, MVT::v4i32,
/* 55241*/          OPC_MoveParent,
/* 55242*/          OPC_MoveParent,
/* 55243*/          OPC_MoveChild2,
/* 55244*/          OPC_Scope, 17, /*->55263*/ // 2 children in Scope
/* 55246*/            OPC_CheckCondCode, ISD::SETNE,
/* 55248*/            OPC_MoveParent,
/* 55249*/            OPC_MoveParent,
/* 55250*/            OPC_CheckType, MVT::v16i1,
/* 55252*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55254*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTMBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 55263*/          /*Scope*/ 17, /*->55281*/
/* 55264*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55266*/            OPC_MoveParent,
/* 55267*/            OPC_MoveParent,
/* 55268*/            OPC_CheckType, MVT::v16i1,
/* 55270*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55272*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 19
                      // Dst: (VPTESTNMBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 55281*/          0, /*End of Scope*/
/* 55282*/        0, // EndSwitchType
/* 55283*/      0, // EndSwitchType
/* 55284*/    /*Scope*/ 123|128,2/*379*/, /*->55665*/
/* 55286*/      OPC_MoveChild0,
/* 55287*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 55290*/      OPC_MoveChild0,
/* 55291*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55294*/      OPC_MoveChild0,
/* 55295*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 55298*/      OPC_RecordChild0, // #0 = $src1
/* 55299*/      OPC_RecordChild1, // #1 = $src2
/* 55300*/      OPC_SwitchType /*3 cases */, 119, MVT::v8i64,// ->55422
/* 55303*/        OPC_MoveParent,
/* 55304*/        OPC_SwitchType /*2 cases */, 56, MVT::v32i16,// ->55363
/* 55307*/          OPC_MoveParent,
/* 55308*/          OPC_MoveChild1,
/* 55309*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55312*/          OPC_MoveChild0,
/* 55313*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55316*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55318*/          OPC_CheckType, MVT::v16i32,
/* 55320*/          OPC_MoveParent,
/* 55321*/          OPC_MoveParent,
/* 55322*/          OPC_MoveChild2,
/* 55323*/          OPC_Scope, 18, /*->55343*/ // 2 children in Scope
/* 55325*/            OPC_CheckCondCode, ISD::SETNE,
/* 55327*/            OPC_MoveParent,
/* 55328*/            OPC_MoveParent,
/* 55329*/            OPC_RecordChild1, // #2 = $mask
/* 55330*/            OPC_CheckType, MVT::v32i1,
/* 55332*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 55334*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTMWZrrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 55343*/          /*Scope*/ 18, /*->55362*/
/* 55344*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55346*/            OPC_MoveParent,
/* 55347*/            OPC_MoveParent,
/* 55348*/            OPC_RecordChild1, // #2 = $mask
/* 55349*/            OPC_CheckType, MVT::v32i1,
/* 55351*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 55353*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTNMWZrrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 55362*/          0, /*End of Scope*/
/* 55363*/        /*SwitchType*/ 56, MVT::v64i8,// ->55421
/* 55365*/          OPC_MoveParent,
/* 55366*/          OPC_MoveChild1,
/* 55367*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55370*/          OPC_MoveChild0,
/* 55371*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55374*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55376*/          OPC_CheckType, MVT::v16i32,
/* 55378*/          OPC_MoveParent,
/* 55379*/          OPC_MoveParent,
/* 55380*/          OPC_MoveChild2,
/* 55381*/          OPC_Scope, 18, /*->55401*/ // 2 children in Scope
/* 55383*/            OPC_CheckCondCode, ISD::SETNE,
/* 55385*/            OPC_MoveParent,
/* 55386*/            OPC_MoveParent,
/* 55387*/            OPC_RecordChild1, // #2 = $mask
/* 55388*/            OPC_CheckType, MVT::v64i1,
/* 55390*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 55392*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTMBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 55401*/          /*Scope*/ 18, /*->55420*/
/* 55402*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55404*/            OPC_MoveParent,
/* 55405*/            OPC_MoveParent,
/* 55406*/            OPC_RecordChild1, // #2 = $mask
/* 55407*/            OPC_CheckType, MVT::v64i1,
/* 55409*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 55411*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTNMBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 55420*/          0, /*End of Scope*/
/* 55421*/        0, // EndSwitchType
/* 55422*/      /*SwitchType*/ 119, MVT::v4i64,// ->55543
/* 55424*/        OPC_MoveParent,
/* 55425*/        OPC_SwitchType /*2 cases */, 56, MVT::v16i16,// ->55484
/* 55428*/          OPC_MoveParent,
/* 55429*/          OPC_MoveChild1,
/* 55430*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55433*/          OPC_MoveChild0,
/* 55434*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55437*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55439*/          OPC_CheckType, MVT::v8i32,
/* 55441*/          OPC_MoveParent,
/* 55442*/          OPC_MoveParent,
/* 55443*/          OPC_MoveChild2,
/* 55444*/          OPC_Scope, 18, /*->55464*/ // 2 children in Scope
/* 55446*/            OPC_CheckCondCode, ISD::SETNE,
/* 55448*/            OPC_MoveParent,
/* 55449*/            OPC_MoveParent,
/* 55450*/            OPC_RecordChild1, // #2 = $mask
/* 55451*/            OPC_CheckType, MVT::v16i1,
/* 55453*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55455*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTMWZ256rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 55464*/          /*Scope*/ 18, /*->55483*/
/* 55465*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55467*/            OPC_MoveParent,
/* 55468*/            OPC_MoveParent,
/* 55469*/            OPC_RecordChild1, // #2 = $mask
/* 55470*/            OPC_CheckType, MVT::v16i1,
/* 55472*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55474*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTNMWZ256rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 55483*/          0, /*End of Scope*/
/* 55484*/        /*SwitchType*/ 56, MVT::v32i8,// ->55542
/* 55486*/          OPC_MoveParent,
/* 55487*/          OPC_MoveChild1,
/* 55488*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55491*/          OPC_MoveChild0,
/* 55492*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55495*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55497*/          OPC_CheckType, MVT::v8i32,
/* 55499*/          OPC_MoveParent,
/* 55500*/          OPC_MoveParent,
/* 55501*/          OPC_MoveChild2,
/* 55502*/          OPC_Scope, 18, /*->55522*/ // 2 children in Scope
/* 55504*/            OPC_CheckCondCode, ISD::SETNE,
/* 55506*/            OPC_MoveParent,
/* 55507*/            OPC_MoveParent,
/* 55508*/            OPC_RecordChild1, // #2 = $mask
/* 55509*/            OPC_CheckType, MVT::v32i1,
/* 55511*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55513*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTMBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 55522*/          /*Scope*/ 18, /*->55541*/
/* 55523*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55525*/            OPC_MoveParent,
/* 55526*/            OPC_MoveParent,
/* 55527*/            OPC_RecordChild1, // #2 = $mask
/* 55528*/            OPC_CheckType, MVT::v32i1,
/* 55530*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55532*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTNMBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 55541*/          0, /*End of Scope*/
/* 55542*/        0, // EndSwitchType
/* 55543*/      /*SwitchType*/ 119, MVT::v2i64,// ->55664
/* 55545*/        OPC_MoveParent,
/* 55546*/        OPC_SwitchType /*2 cases */, 56, MVT::v8i16,// ->55605
/* 55549*/          OPC_MoveParent,
/* 55550*/          OPC_MoveChild1,
/* 55551*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55554*/          OPC_MoveChild0,
/* 55555*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55558*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55560*/          OPC_CheckType, MVT::v4i32,
/* 55562*/          OPC_MoveParent,
/* 55563*/          OPC_MoveParent,
/* 55564*/          OPC_MoveChild2,
/* 55565*/          OPC_Scope, 18, /*->55585*/ // 2 children in Scope
/* 55567*/            OPC_CheckCondCode, ISD::SETNE,
/* 55569*/            OPC_MoveParent,
/* 55570*/            OPC_MoveParent,
/* 55571*/            OPC_RecordChild1, // #2 = $mask
/* 55572*/            OPC_CheckType, MVT::v8i1,
/* 55574*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55576*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTMWZ128rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 55585*/          /*Scope*/ 18, /*->55604*/
/* 55586*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55588*/            OPC_MoveParent,
/* 55589*/            OPC_MoveParent,
/* 55590*/            OPC_RecordChild1, // #2 = $mask
/* 55591*/            OPC_CheckType, MVT::v8i1,
/* 55593*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55595*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTNMWZ128rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 55604*/          0, /*End of Scope*/
/* 55605*/        /*SwitchType*/ 56, MVT::v16i8,// ->55663
/* 55607*/          OPC_MoveParent,
/* 55608*/          OPC_MoveChild1,
/* 55609*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55612*/          OPC_MoveChild0,
/* 55613*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55616*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55618*/          OPC_CheckType, MVT::v4i32,
/* 55620*/          OPC_MoveParent,
/* 55621*/          OPC_MoveParent,
/* 55622*/          OPC_MoveChild2,
/* 55623*/          OPC_Scope, 18, /*->55643*/ // 2 children in Scope
/* 55625*/            OPC_CheckCondCode, ISD::SETNE,
/* 55627*/            OPC_MoveParent,
/* 55628*/            OPC_MoveParent,
/* 55629*/            OPC_RecordChild1, // #2 = $mask
/* 55630*/            OPC_CheckType, MVT::v16i1,
/* 55632*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55634*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTMBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 55643*/          /*Scope*/ 18, /*->55662*/
/* 55644*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55646*/            OPC_MoveParent,
/* 55647*/            OPC_MoveParent,
/* 55648*/            OPC_RecordChild1, // #2 = $mask
/* 55649*/            OPC_CheckType, MVT::v16i1,
/* 55651*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 55653*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 19
                      // Dst: (VPTESTNMBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 55662*/          0, /*End of Scope*/
/* 55663*/        0, // EndSwitchType
/* 55664*/      0, // EndSwitchType
/* 55665*/    /*Scope*/ 81|128,5/*721*/, /*->56388*/
/* 55667*/      OPC_RecordChild0, // #0 = $mask
/* 55668*/      OPC_MoveChild1,
/* 55669*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 55672*/      OPC_MoveChild0,
/* 55673*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55676*/      OPC_MoveChild0,
/* 55677*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 55680*/      OPC_RecordChild0, // #1 = $src1
/* 55681*/      OPC_RecordChild1, // #2 = $src2
/* 55682*/      OPC_SwitchType /*2 cases */, 93|128,2/*349*/, MVT::v4i64,// ->56035
/* 55686*/        OPC_MoveParent,
/* 55687*/        OPC_SwitchType /*2 cases */, 42|128,1/*170*/, MVT::v32i8,// ->55861
/* 55691*/          OPC_MoveParent,
/* 55692*/          OPC_MoveChild1,
/* 55693*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55696*/          OPC_MoveChild0,
/* 55697*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55700*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55702*/          OPC_CheckType, MVT::v8i32,
/* 55704*/          OPC_MoveParent,
/* 55705*/          OPC_MoveParent,
/* 55706*/          OPC_MoveChild2,
/* 55707*/          OPC_Scope, 75, /*->55784*/ // 2 children in Scope
/* 55709*/            OPC_CheckCondCode, ISD::SETNE,
/* 55711*/            OPC_MoveParent,
/* 55712*/            OPC_MoveParent,
/* 55713*/            OPC_CheckType, MVT::v32i1,
/* 55715*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55717*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 55720*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 55728*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 55734*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55737*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 55746*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 55752*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55755*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 55764*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 55773*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 55776*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 55784*/          /*Scope*/ 75, /*->55860*/
/* 55785*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55787*/            OPC_MoveParent,
/* 55788*/            OPC_MoveParent,
/* 55789*/            OPC_CheckType, MVT::v32i1,
/* 55791*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55793*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 55796*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 55804*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 55810*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55813*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 55822*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 55828*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55831*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 55840*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 55849*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 55852*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTNMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 55860*/          0, /*End of Scope*/
/* 55861*/        /*SwitchType*/ 42|128,1/*170*/, MVT::v16i16,// ->56034
/* 55864*/          OPC_MoveParent,
/* 55865*/          OPC_MoveChild1,
/* 55866*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 55869*/          OPC_MoveChild0,
/* 55870*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 55873*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 55875*/          OPC_CheckType, MVT::v8i32,
/* 55877*/          OPC_MoveParent,
/* 55878*/          OPC_MoveParent,
/* 55879*/          OPC_MoveChild2,
/* 55880*/          OPC_Scope, 75, /*->55957*/ // 2 children in Scope
/* 55882*/            OPC_CheckCondCode, ISD::SETNE,
/* 55884*/            OPC_MoveParent,
/* 55885*/            OPC_MoveParent,
/* 55886*/            OPC_CheckType, MVT::v16i1,
/* 55888*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55890*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 55893*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 55901*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 55907*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55910*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 55919*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 55925*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55928*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 55937*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 55946*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 55949*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 55957*/          /*Scope*/ 75, /*->56033*/
/* 55958*/            OPC_CheckCondCode, ISD::SETEQ,
/* 55960*/            OPC_MoveParent,
/* 55961*/            OPC_MoveParent,
/* 55962*/            OPC_CheckType, MVT::v16i1,
/* 55964*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55966*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 55969*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 55977*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 55983*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55986*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 55995*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 56001*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56004*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 56013*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 56022*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 56025*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 56033*/          0, /*End of Scope*/
/* 56034*/        0, // EndSwitchType
/* 56035*/      /*SwitchType*/ 93|128,2/*349*/, MVT::v2i64,// ->56387
/* 56038*/        OPC_MoveParent,
/* 56039*/        OPC_SwitchType /*2 cases */, 42|128,1/*170*/, MVT::v16i8,// ->56213
/* 56043*/          OPC_MoveParent,
/* 56044*/          OPC_MoveChild1,
/* 56045*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56048*/          OPC_MoveChild0,
/* 56049*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 56052*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 56054*/          OPC_CheckType, MVT::v4i32,
/* 56056*/          OPC_MoveParent,
/* 56057*/          OPC_MoveParent,
/* 56058*/          OPC_MoveChild2,
/* 56059*/          OPC_Scope, 75, /*->56136*/ // 2 children in Scope
/* 56061*/            OPC_CheckCondCode, ISD::SETNE,
/* 56063*/            OPC_MoveParent,
/* 56064*/            OPC_MoveParent,
/* 56065*/            OPC_CheckType, MVT::v16i1,
/* 56067*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56069*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 56072*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 56080*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 56086*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56089*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 56098*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 56104*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56107*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 56116*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 56125*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 56128*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 56136*/          /*Scope*/ 75, /*->56212*/
/* 56137*/            OPC_CheckCondCode, ISD::SETEQ,
/* 56139*/            OPC_MoveParent,
/* 56140*/            OPC_MoveParent,
/* 56141*/            OPC_CheckType, MVT::v16i1,
/* 56143*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56145*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 56148*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 56156*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 56162*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56165*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 56174*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 56180*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56183*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 56192*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 56201*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 56204*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 56212*/          0, /*End of Scope*/
/* 56213*/        /*SwitchType*/ 42|128,1/*170*/, MVT::v8i16,// ->56386
/* 56216*/          OPC_MoveParent,
/* 56217*/          OPC_MoveChild1,
/* 56218*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56221*/          OPC_MoveChild0,
/* 56222*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 56225*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 56227*/          OPC_CheckType, MVT::v4i32,
/* 56229*/          OPC_MoveParent,
/* 56230*/          OPC_MoveParent,
/* 56231*/          OPC_MoveChild2,
/* 56232*/          OPC_Scope, 75, /*->56309*/ // 2 children in Scope
/* 56234*/            OPC_CheckCondCode, ISD::SETNE,
/* 56236*/            OPC_MoveParent,
/* 56237*/            OPC_MoveParent,
/* 56238*/            OPC_CheckType, MVT::v8i1,
/* 56240*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56242*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 56245*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 56253*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 56259*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56262*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 56271*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 56277*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56280*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 56289*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 56298*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 56301*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 56309*/          /*Scope*/ 75, /*->56385*/
/* 56310*/            OPC_CheckCondCode, ISD::SETEQ,
/* 56312*/            OPC_MoveParent,
/* 56313*/            OPC_MoveParent,
/* 56314*/            OPC_CheckType, MVT::v8i1,
/* 56316*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56318*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 56321*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 56329*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 56335*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56338*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 56347*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 56353*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56356*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 56365*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 56374*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 56377*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 56385*/          0, /*End of Scope*/
/* 56386*/        0, // EndSwitchType
/* 56387*/      0, // EndSwitchType
/* 56388*/    /*Scope*/ 88|128,5/*728*/, /*->57118*/
/* 56390*/      OPC_MoveChild0,
/* 56391*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 56394*/      OPC_MoveChild0,
/* 56395*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56398*/      OPC_MoveChild0,
/* 56399*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 56402*/      OPC_RecordChild0, // #0 = $src1
/* 56403*/      OPC_RecordChild1, // #1 = $src2
/* 56404*/      OPC_SwitchType /*2 cases */, 97|128,2/*353*/, MVT::v4i64,// ->56761
/* 56408*/        OPC_MoveParent,
/* 56409*/        OPC_SwitchType /*2 cases */, 44|128,1/*172*/, MVT::v32i8,// ->56585
/* 56413*/          OPC_MoveParent,
/* 56414*/          OPC_MoveChild1,
/* 56415*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56418*/          OPC_MoveChild0,
/* 56419*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 56422*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 56424*/          OPC_CheckType, MVT::v8i32,
/* 56426*/          OPC_MoveParent,
/* 56427*/          OPC_MoveParent,
/* 56428*/          OPC_MoveChild2,
/* 56429*/          OPC_Scope, 76, /*->56507*/ // 2 children in Scope
/* 56431*/            OPC_CheckCondCode, ISD::SETNE,
/* 56433*/            OPC_MoveParent,
/* 56434*/            OPC_MoveParent,
/* 56435*/            OPC_RecordChild1, // #2 = $mask
/* 56436*/            OPC_CheckType, MVT::v32i1,
/* 56438*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56440*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 56443*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 56451*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 56457*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56460*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 56469*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 56475*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56478*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 56487*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 56496*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 56499*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK32:{ *:[v32i1] }:$mask) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 56507*/          /*Scope*/ 76, /*->56584*/
/* 56508*/            OPC_CheckCondCode, ISD::SETEQ,
/* 56510*/            OPC_MoveParent,
/* 56511*/            OPC_MoveParent,
/* 56512*/            OPC_RecordChild1, // #2 = $mask
/* 56513*/            OPC_CheckType, MVT::v32i1,
/* 56515*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56517*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 56520*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 56528*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 56534*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56537*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 56546*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 56552*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56555*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 56564*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 56573*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 56576*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK32:{ *:[v32i1] }:$mask) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTNMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 56584*/          0, /*End of Scope*/
/* 56585*/        /*SwitchType*/ 44|128,1/*172*/, MVT::v16i16,// ->56760
/* 56588*/          OPC_MoveParent,
/* 56589*/          OPC_MoveChild1,
/* 56590*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56593*/          OPC_MoveChild0,
/* 56594*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 56597*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 56599*/          OPC_CheckType, MVT::v8i32,
/* 56601*/          OPC_MoveParent,
/* 56602*/          OPC_MoveParent,
/* 56603*/          OPC_MoveChild2,
/* 56604*/          OPC_Scope, 76, /*->56682*/ // 2 children in Scope
/* 56606*/            OPC_CheckCondCode, ISD::SETNE,
/* 56608*/            OPC_MoveParent,
/* 56609*/            OPC_MoveParent,
/* 56610*/            OPC_RecordChild1, // #2 = $mask
/* 56611*/            OPC_CheckType, MVT::v16i1,
/* 56613*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56615*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 56618*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 56626*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 56632*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56635*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 56644*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 56650*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56653*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 56662*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 56671*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 56674*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 56682*/          /*Scope*/ 76, /*->56759*/
/* 56683*/            OPC_CheckCondCode, ISD::SETEQ,
/* 56685*/            OPC_MoveParent,
/* 56686*/            OPC_MoveParent,
/* 56687*/            OPC_RecordChild1, // #2 = $mask
/* 56688*/            OPC_CheckType, MVT::v16i1,
/* 56690*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56692*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 56695*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 56703*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 56709*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56712*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 56721*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 56727*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56730*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 56739*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 56748*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 56751*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 56759*/          0, /*End of Scope*/
/* 56760*/        0, // EndSwitchType
/* 56761*/      /*SwitchType*/ 97|128,2/*353*/, MVT::v2i64,// ->57117
/* 56764*/        OPC_MoveParent,
/* 56765*/        OPC_SwitchType /*2 cases */, 44|128,1/*172*/, MVT::v16i8,// ->56941
/* 56769*/          OPC_MoveParent,
/* 56770*/          OPC_MoveChild1,
/* 56771*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56774*/          OPC_MoveChild0,
/* 56775*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 56778*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 56780*/          OPC_CheckType, MVT::v4i32,
/* 56782*/          OPC_MoveParent,
/* 56783*/          OPC_MoveParent,
/* 56784*/          OPC_MoveChild2,
/* 56785*/          OPC_Scope, 76, /*->56863*/ // 2 children in Scope
/* 56787*/            OPC_CheckCondCode, ISD::SETNE,
/* 56789*/            OPC_MoveParent,
/* 56790*/            OPC_MoveParent,
/* 56791*/            OPC_RecordChild1, // #2 = $mask
/* 56792*/            OPC_CheckType, MVT::v16i1,
/* 56794*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56796*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 56799*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 56807*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 56813*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56816*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 56825*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 56831*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56834*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 56843*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 56852*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 56855*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 56863*/          /*Scope*/ 76, /*->56940*/
/* 56864*/            OPC_CheckCondCode, ISD::SETEQ,
/* 56866*/            OPC_MoveParent,
/* 56867*/            OPC_MoveParent,
/* 56868*/            OPC_RecordChild1, // #2 = $mask
/* 56869*/            OPC_CheckType, MVT::v16i1,
/* 56871*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56873*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 56876*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 56884*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 56890*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56893*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 56902*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 56908*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56911*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 56920*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 56929*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 56932*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 56940*/          0, /*End of Scope*/
/* 56941*/        /*SwitchType*/ 44|128,1/*172*/, MVT::v8i16,// ->57116
/* 56944*/          OPC_MoveParent,
/* 56945*/          OPC_MoveChild1,
/* 56946*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56949*/          OPC_MoveChild0,
/* 56950*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 56953*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 56955*/          OPC_CheckType, MVT::v4i32,
/* 56957*/          OPC_MoveParent,
/* 56958*/          OPC_MoveParent,
/* 56959*/          OPC_MoveChild2,
/* 56960*/          OPC_Scope, 76, /*->57038*/ // 2 children in Scope
/* 56962*/            OPC_CheckCondCode, ISD::SETNE,
/* 56964*/            OPC_MoveParent,
/* 56965*/            OPC_MoveParent,
/* 56966*/            OPC_RecordChild1, // #2 = $mask
/* 56967*/            OPC_CheckType, MVT::v8i1,
/* 56969*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56971*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 56974*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 56982*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 56988*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56991*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 57000*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 57006*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 57009*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 57018*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 57027*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 57030*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 57038*/          /*Scope*/ 76, /*->57115*/
/* 57039*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57041*/            OPC_MoveParent,
/* 57042*/            OPC_MoveParent,
/* 57043*/            OPC_RecordChild1, // #2 = $mask
/* 57044*/            OPC_CheckType, MVT::v8i1,
/* 57046*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 57048*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 57051*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 57059*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 57065*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 57068*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 57077*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 57083*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 57086*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 57095*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 57104*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 57107*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 19
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 57115*/          0, /*End of Scope*/
/* 57116*/        0, // EndSwitchType
/* 57117*/      0, // EndSwitchType
/* 57118*/    /*Scope*/ 96|128,2/*352*/, /*->57472*/
/* 57120*/      OPC_RecordChild0, // #0 = $mask
/* 57121*/      OPC_MoveChild1,
/* 57122*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 57125*/      OPC_MoveChild0,
/* 57126*/      OPC_SwitchOpcode /*2 cases */, 36|128,1/*164*/, TARGET_VAL(ISD::BITCAST),// ->57295
/* 57131*/        OPC_MoveChild0,
/* 57132*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 57135*/        OPC_RecordChild0, // #1 = $src1
/* 57136*/        OPC_RecordChild1, // #2 = $src2
/* 57137*/        OPC_SwitchType /*3 cases */, 50, MVT::v8i64,// ->57190
/* 57140*/          OPC_MoveParent,
/* 57141*/          OPC_CheckType, MVT::v16i32,
/* 57143*/          OPC_MoveParent,
/* 57144*/          OPC_MoveChild1,
/* 57145*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57148*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57150*/          OPC_MoveParent,
/* 57151*/          OPC_MoveChild2,
/* 57152*/          OPC_Scope, 17, /*->57171*/ // 2 children in Scope
/* 57154*/            OPC_CheckCondCode, ISD::SETNE,
/* 57156*/            OPC_MoveParent,
/* 57157*/            OPC_MoveParent,
/* 57158*/            OPC_CheckType, MVT::v16i1,
/* 57160*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57162*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTMDZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 57171*/          /*Scope*/ 17, /*->57189*/
/* 57172*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57174*/            OPC_MoveParent,
/* 57175*/            OPC_MoveParent,
/* 57176*/            OPC_CheckType, MVT::v16i1,
/* 57178*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57180*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTNMDZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 57189*/          0, /*End of Scope*/
/* 57190*/        /*SwitchType*/ 50, MVT::v4i64,// ->57242
/* 57192*/          OPC_MoveParent,
/* 57193*/          OPC_CheckType, MVT::v8i32,
/* 57195*/          OPC_MoveParent,
/* 57196*/          OPC_MoveChild1,
/* 57197*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57200*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57202*/          OPC_MoveParent,
/* 57203*/          OPC_MoveChild2,
/* 57204*/          OPC_Scope, 17, /*->57223*/ // 2 children in Scope
/* 57206*/            OPC_CheckCondCode, ISD::SETNE,
/* 57208*/            OPC_MoveParent,
/* 57209*/            OPC_MoveParent,
/* 57210*/            OPC_CheckType, MVT::v8i1,
/* 57212*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57214*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTMDZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 57223*/          /*Scope*/ 17, /*->57241*/
/* 57224*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57226*/            OPC_MoveParent,
/* 57227*/            OPC_MoveParent,
/* 57228*/            OPC_CheckType, MVT::v8i1,
/* 57230*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57232*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTNMDZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 57241*/          0, /*End of Scope*/
/* 57242*/        /*SwitchType*/ 50, MVT::v2i64,// ->57294
/* 57244*/          OPC_MoveParent,
/* 57245*/          OPC_CheckType, MVT::v4i32,
/* 57247*/          OPC_MoveParent,
/* 57248*/          OPC_MoveChild1,
/* 57249*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57252*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57254*/          OPC_MoveParent,
/* 57255*/          OPC_MoveChild2,
/* 57256*/          OPC_Scope, 17, /*->57275*/ // 2 children in Scope
/* 57258*/            OPC_CheckCondCode, ISD::SETNE,
/* 57260*/            OPC_MoveParent,
/* 57261*/            OPC_MoveParent,
/* 57262*/            OPC_CheckType, MVT::v4i1,
/* 57264*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57266*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rrk), 0,
                          MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTMDZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 57275*/          /*Scope*/ 17, /*->57293*/
/* 57276*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57278*/            OPC_MoveParent,
/* 57279*/            OPC_MoveParent,
/* 57280*/            OPC_CheckType, MVT::v4i1,
/* 57282*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57284*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rrk), 0,
                          MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTNMDZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 57293*/          0, /*End of Scope*/
/* 57294*/        0, // EndSwitchType
/* 57295*/      /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(ISD::AND),// ->57471
/* 57299*/        OPC_RecordChild0, // #1 = $src1
/* 57300*/        OPC_RecordChild1, // #2 = $src2
/* 57301*/        OPC_SwitchType /*3 cases */, 54, MVT::v8i64,// ->57358
/* 57304*/          OPC_MoveParent,
/* 57305*/          OPC_MoveChild1,
/* 57306*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57309*/          OPC_MoveChild0,
/* 57310*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57313*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57315*/          OPC_CheckType, MVT::v16i32,
/* 57317*/          OPC_MoveParent,
/* 57318*/          OPC_MoveParent,
/* 57319*/          OPC_MoveChild2,
/* 57320*/          OPC_Scope, 17, /*->57339*/ // 2 children in Scope
/* 57322*/            OPC_CheckCondCode, ISD::SETNE,
/* 57324*/            OPC_MoveParent,
/* 57325*/            OPC_MoveParent,
/* 57326*/            OPC_CheckType, MVT::v8i1,
/* 57328*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57330*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTMQZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 57339*/          /*Scope*/ 17, /*->57357*/
/* 57340*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57342*/            OPC_MoveParent,
/* 57343*/            OPC_MoveParent,
/* 57344*/            OPC_CheckType, MVT::v8i1,
/* 57346*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57348*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTNMQZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 57357*/          0, /*End of Scope*/
/* 57358*/        /*SwitchType*/ 54, MVT::v4i64,// ->57414
/* 57360*/          OPC_MoveParent,
/* 57361*/          OPC_MoveChild1,
/* 57362*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57365*/          OPC_MoveChild0,
/* 57366*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57369*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57371*/          OPC_CheckType, MVT::v8i32,
/* 57373*/          OPC_MoveParent,
/* 57374*/          OPC_MoveParent,
/* 57375*/          OPC_MoveChild2,
/* 57376*/          OPC_Scope, 17, /*->57395*/ // 2 children in Scope
/* 57378*/            OPC_CheckCondCode, ISD::SETNE,
/* 57380*/            OPC_MoveParent,
/* 57381*/            OPC_MoveParent,
/* 57382*/            OPC_CheckType, MVT::v4i1,
/* 57384*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57386*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rrk), 0,
                          MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTMQZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 57395*/          /*Scope*/ 17, /*->57413*/
/* 57396*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57398*/            OPC_MoveParent,
/* 57399*/            OPC_MoveParent,
/* 57400*/            OPC_CheckType, MVT::v4i1,
/* 57402*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57404*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rrk), 0,
                          MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTNMQZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 57413*/          0, /*End of Scope*/
/* 57414*/        /*SwitchType*/ 54, MVT::v2i64,// ->57470
/* 57416*/          OPC_MoveParent,
/* 57417*/          OPC_MoveChild1,
/* 57418*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57421*/          OPC_MoveChild0,
/* 57422*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57425*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57427*/          OPC_CheckType, MVT::v4i32,
/* 57429*/          OPC_MoveParent,
/* 57430*/          OPC_MoveParent,
/* 57431*/          OPC_MoveChild2,
/* 57432*/          OPC_Scope, 17, /*->57451*/ // 2 children in Scope
/* 57434*/            OPC_CheckCondCode, ISD::SETNE,
/* 57436*/            OPC_MoveParent,
/* 57437*/            OPC_MoveParent,
/* 57438*/            OPC_CheckType, MVT::v2i1,
/* 57440*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57442*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rrk), 0,
                          MVT::v2i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTMQZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 57451*/          /*Scope*/ 17, /*->57469*/
/* 57452*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57454*/            OPC_MoveParent,
/* 57455*/            OPC_MoveParent,
/* 57456*/            OPC_CheckType, MVT::v2i1,
/* 57458*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57460*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rrk), 0,
                          MVT::v2i1, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 16
                      // Dst: (VPTESTNMQZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 57469*/          0, /*End of Scope*/
/* 57470*/        0, // EndSwitchType
/* 57471*/      0, // EndSwitchOpcode
/* 57472*/    /*Scope*/ 107|128,2/*363*/, /*->57837*/
/* 57474*/      OPC_MoveChild0,
/* 57475*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 57478*/      OPC_MoveChild0,
/* 57479*/      OPC_SwitchOpcode /*2 cases */, 42|128,1/*170*/, TARGET_VAL(ISD::BITCAST),// ->57654
/* 57484*/        OPC_MoveChild0,
/* 57485*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 57488*/        OPC_RecordChild0, // #0 = $src1
/* 57489*/        OPC_RecordChild1, // #1 = $src2
/* 57490*/        OPC_SwitchType /*3 cases */, 52, MVT::v8i64,// ->57545
/* 57493*/          OPC_MoveParent,
/* 57494*/          OPC_CheckType, MVT::v16i32,
/* 57496*/          OPC_MoveParent,
/* 57497*/          OPC_MoveChild1,
/* 57498*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57501*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57503*/          OPC_MoveParent,
/* 57504*/          OPC_MoveChild2,
/* 57505*/          OPC_Scope, 18, /*->57525*/ // 2 children in Scope
/* 57507*/            OPC_CheckCondCode, ISD::SETNE,
/* 57509*/            OPC_MoveParent,
/* 57510*/            OPC_MoveParent,
/* 57511*/            OPC_RecordChild1, // #2 = $mask
/* 57512*/            OPC_CheckType, MVT::v16i1,
/* 57514*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57516*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTMDZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 57525*/          /*Scope*/ 18, /*->57544*/
/* 57526*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57528*/            OPC_MoveParent,
/* 57529*/            OPC_MoveParent,
/* 57530*/            OPC_RecordChild1, // #2 = $mask
/* 57531*/            OPC_CheckType, MVT::v16i1,
/* 57533*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57535*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTNMDZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 57544*/          0, /*End of Scope*/
/* 57545*/        /*SwitchType*/ 52, MVT::v4i64,// ->57599
/* 57547*/          OPC_MoveParent,
/* 57548*/          OPC_CheckType, MVT::v8i32,
/* 57550*/          OPC_MoveParent,
/* 57551*/          OPC_MoveChild1,
/* 57552*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57555*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57557*/          OPC_MoveParent,
/* 57558*/          OPC_MoveChild2,
/* 57559*/          OPC_Scope, 18, /*->57579*/ // 2 children in Scope
/* 57561*/            OPC_CheckCondCode, ISD::SETNE,
/* 57563*/            OPC_MoveParent,
/* 57564*/            OPC_MoveParent,
/* 57565*/            OPC_RecordChild1, // #2 = $mask
/* 57566*/            OPC_CheckType, MVT::v8i1,
/* 57568*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57570*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTMDZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 57579*/          /*Scope*/ 18, /*->57598*/
/* 57580*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57582*/            OPC_MoveParent,
/* 57583*/            OPC_MoveParent,
/* 57584*/            OPC_RecordChild1, // #2 = $mask
/* 57585*/            OPC_CheckType, MVT::v8i1,
/* 57587*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57589*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTNMDZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 57598*/          0, /*End of Scope*/
/* 57599*/        /*SwitchType*/ 52, MVT::v2i64,// ->57653
/* 57601*/          OPC_MoveParent,
/* 57602*/          OPC_CheckType, MVT::v4i32,
/* 57604*/          OPC_MoveParent,
/* 57605*/          OPC_MoveChild1,
/* 57606*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57609*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57611*/          OPC_MoveParent,
/* 57612*/          OPC_MoveChild2,
/* 57613*/          OPC_Scope, 18, /*->57633*/ // 2 children in Scope
/* 57615*/            OPC_CheckCondCode, ISD::SETNE,
/* 57617*/            OPC_MoveParent,
/* 57618*/            OPC_MoveParent,
/* 57619*/            OPC_RecordChild1, // #2 = $mask
/* 57620*/            OPC_CheckType, MVT::v4i1,
/* 57622*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57624*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rrk), 0,
                          MVT::v4i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTMDZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 57633*/          /*Scope*/ 18, /*->57652*/
/* 57634*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57636*/            OPC_MoveParent,
/* 57637*/            OPC_MoveParent,
/* 57638*/            OPC_RecordChild1, // #2 = $mask
/* 57639*/            OPC_CheckType, MVT::v4i1,
/* 57641*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57643*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rrk), 0,
                          MVT::v4i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTNMDZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 57652*/          0, /*End of Scope*/
/* 57653*/        0, // EndSwitchType
/* 57654*/      /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(ISD::AND),// ->57836
/* 57658*/        OPC_RecordChild0, // #0 = $src1
/* 57659*/        OPC_RecordChild1, // #1 = $src2
/* 57660*/        OPC_SwitchType /*3 cases */, 56, MVT::v8i64,// ->57719
/* 57663*/          OPC_MoveParent,
/* 57664*/          OPC_MoveChild1,
/* 57665*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57668*/          OPC_MoveChild0,
/* 57669*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57672*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57674*/          OPC_CheckType, MVT::v16i32,
/* 57676*/          OPC_MoveParent,
/* 57677*/          OPC_MoveParent,
/* 57678*/          OPC_MoveChild2,
/* 57679*/          OPC_Scope, 18, /*->57699*/ // 2 children in Scope
/* 57681*/            OPC_CheckCondCode, ISD::SETNE,
/* 57683*/            OPC_MoveParent,
/* 57684*/            OPC_MoveParent,
/* 57685*/            OPC_RecordChild1, // #2 = $mask
/* 57686*/            OPC_CheckType, MVT::v8i1,
/* 57688*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57690*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTMQZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 57699*/          /*Scope*/ 18, /*->57718*/
/* 57700*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57702*/            OPC_MoveParent,
/* 57703*/            OPC_MoveParent,
/* 57704*/            OPC_RecordChild1, // #2 = $mask
/* 57705*/            OPC_CheckType, MVT::v8i1,
/* 57707*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57709*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTNMQZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 57718*/          0, /*End of Scope*/
/* 57719*/        /*SwitchType*/ 56, MVT::v4i64,// ->57777
/* 57721*/          OPC_MoveParent,
/* 57722*/          OPC_MoveChild1,
/* 57723*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57726*/          OPC_MoveChild0,
/* 57727*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57730*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57732*/          OPC_CheckType, MVT::v8i32,
/* 57734*/          OPC_MoveParent,
/* 57735*/          OPC_MoveParent,
/* 57736*/          OPC_MoveChild2,
/* 57737*/          OPC_Scope, 18, /*->57757*/ // 2 children in Scope
/* 57739*/            OPC_CheckCondCode, ISD::SETNE,
/* 57741*/            OPC_MoveParent,
/* 57742*/            OPC_MoveParent,
/* 57743*/            OPC_RecordChild1, // #2 = $mask
/* 57744*/            OPC_CheckType, MVT::v4i1,
/* 57746*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57748*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rrk), 0,
                          MVT::v4i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTMQZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 57757*/          /*Scope*/ 18, /*->57776*/
/* 57758*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57760*/            OPC_MoveParent,
/* 57761*/            OPC_MoveParent,
/* 57762*/            OPC_RecordChild1, // #2 = $mask
/* 57763*/            OPC_CheckType, MVT::v4i1,
/* 57765*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57767*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rrk), 0,
                          MVT::v4i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTNMQZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 57776*/          0, /*End of Scope*/
/* 57777*/        /*SwitchType*/ 56, MVT::v2i64,// ->57835
/* 57779*/          OPC_MoveParent,
/* 57780*/          OPC_MoveChild1,
/* 57781*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57784*/          OPC_MoveChild0,
/* 57785*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57788*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57790*/          OPC_CheckType, MVT::v4i32,
/* 57792*/          OPC_MoveParent,
/* 57793*/          OPC_MoveParent,
/* 57794*/          OPC_MoveChild2,
/* 57795*/          OPC_Scope, 18, /*->57815*/ // 2 children in Scope
/* 57797*/            OPC_CheckCondCode, ISD::SETNE,
/* 57799*/            OPC_MoveParent,
/* 57800*/            OPC_MoveParent,
/* 57801*/            OPC_RecordChild1, // #2 = $mask
/* 57802*/            OPC_CheckType, MVT::v2i1,
/* 57804*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57806*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rrk), 0,
                          MVT::v2i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTMQZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 57815*/          /*Scope*/ 18, /*->57834*/
/* 57816*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57818*/            OPC_MoveParent,
/* 57819*/            OPC_MoveParent,
/* 57820*/            OPC_RecordChild1, // #2 = $mask
/* 57821*/            OPC_CheckType, MVT::v2i1,
/* 57823*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57825*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rrk), 0,
                          MVT::v2i1, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 16
                      // Dst: (VPTESTNMQZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 57834*/          0, /*End of Scope*/
/* 57835*/        0, // EndSwitchType
/* 57836*/      0, // EndSwitchOpcode
/* 57837*/    /*Scope*/ 72|128,5/*712*/, /*->58551*/
/* 57839*/      OPC_RecordChild0, // #0 = $mask
/* 57840*/      OPC_MoveChild1,
/* 57841*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 57844*/      OPC_MoveChild0,
/* 57845*/      OPC_SwitchOpcode /*2 cases */, 90|128,2/*346*/, TARGET_VAL(ISD::BITCAST),// ->58196
/* 57850*/        OPC_MoveChild0,
/* 57851*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 57854*/        OPC_RecordChild0, // #1 = $src1
/* 57855*/        OPC_RecordChild1, // #2 = $src2
/* 57856*/        OPC_SwitchType /*2 cases */, 38|128,1/*166*/, MVT::v4i64,// ->58026
/* 57860*/          OPC_MoveParent,
/* 57861*/          OPC_CheckType, MVT::v8i32,
/* 57863*/          OPC_MoveParent,
/* 57864*/          OPC_MoveChild1,
/* 57865*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 57868*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 57870*/          OPC_MoveParent,
/* 57871*/          OPC_MoveChild2,
/* 57872*/          OPC_Scope, 75, /*->57949*/ // 2 children in Scope
/* 57874*/            OPC_CheckCondCode, ISD::SETNE,
/* 57876*/            OPC_MoveParent,
/* 57877*/            OPC_MoveParent,
/* 57878*/            OPC_CheckType, MVT::v8i1,
/* 57880*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 57882*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 57885*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 57893*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 57899*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 57902*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 57911*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 57917*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 57920*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 57929*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 57938*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 57941*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 57949*/          /*Scope*/ 75, /*->58025*/
/* 57950*/            OPC_CheckCondCode, ISD::SETEQ,
/* 57952*/            OPC_MoveParent,
/* 57953*/            OPC_MoveParent,
/* 57954*/            OPC_CheckType, MVT::v8i1,
/* 57956*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 57958*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 57961*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 57969*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 57975*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 57978*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 57987*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 57993*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 57996*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 58005*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 58014*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 58017*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 58025*/          0, /*End of Scope*/
/* 58026*/        /*SwitchType*/ 38|128,1/*166*/, MVT::v2i64,// ->58195
/* 58029*/          OPC_MoveParent,
/* 58030*/          OPC_CheckType, MVT::v4i32,
/* 58032*/          OPC_MoveParent,
/* 58033*/          OPC_MoveChild1,
/* 58034*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 58037*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 58039*/          OPC_MoveParent,
/* 58040*/          OPC_MoveChild2,
/* 58041*/          OPC_Scope, 75, /*->58118*/ // 2 children in Scope
/* 58043*/            OPC_CheckCondCode, ISD::SETNE,
/* 58045*/            OPC_MoveParent,
/* 58046*/            OPC_MoveParent,
/* 58047*/            OPC_CheckType, MVT::v4i1,
/* 58049*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 58051*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 58054*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 58062*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 58068*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58071*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 58080*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 58086*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58089*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 58098*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 58107*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 58110*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 58118*/          /*Scope*/ 75, /*->58194*/
/* 58119*/            OPC_CheckCondCode, ISD::SETEQ,
/* 58121*/            OPC_MoveParent,
/* 58122*/            OPC_MoveParent,
/* 58123*/            OPC_CheckType, MVT::v4i1,
/* 58125*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 58127*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 58130*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 58138*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 58144*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58147*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 58156*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 58162*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58165*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 58174*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 58183*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 58186*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 58194*/          0, /*End of Scope*/
/* 58195*/        0, // EndSwitchType
/* 58196*/      /*SwitchOpcode*/ 94|128,2/*350*/, TARGET_VAL(ISD::AND),// ->58550
/* 58200*/        OPC_RecordChild0, // #1 = $src1
/* 58201*/        OPC_RecordChild1, // #2 = $src2
/* 58202*/        OPC_SwitchType /*2 cases */, 42|128,1/*170*/, MVT::v4i64,// ->58376
/* 58206*/          OPC_MoveParent,
/* 58207*/          OPC_MoveChild1,
/* 58208*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 58211*/          OPC_MoveChild0,
/* 58212*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 58215*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 58217*/          OPC_CheckType, MVT::v8i32,
/* 58219*/          OPC_MoveParent,
/* 58220*/          OPC_MoveParent,
/* 58221*/          OPC_MoveChild2,
/* 58222*/          OPC_Scope, 75, /*->58299*/ // 2 children in Scope
/* 58224*/            OPC_CheckCondCode, ISD::SETNE,
/* 58226*/            OPC_MoveParent,
/* 58227*/            OPC_MoveParent,
/* 58228*/            OPC_CheckType, MVT::v4i1,
/* 58230*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 58232*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 58235*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 58243*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 58249*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 58252*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 58261*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 58267*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 58270*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 58279*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 58288*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 58291*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 58299*/          /*Scope*/ 75, /*->58375*/
/* 58300*/            OPC_CheckCondCode, ISD::SETEQ,
/* 58302*/            OPC_MoveParent,
/* 58303*/            OPC_MoveParent,
/* 58304*/            OPC_CheckType, MVT::v4i1,
/* 58306*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 58308*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 58311*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 58319*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 58325*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 58328*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 58337*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 58343*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 58346*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 58355*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 58364*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 58367*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 58375*/          0, /*End of Scope*/
/* 58376*/        /*SwitchType*/ 42|128,1/*170*/, MVT::v2i64,// ->58549
/* 58379*/          OPC_MoveParent,
/* 58380*/          OPC_MoveChild1,
/* 58381*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 58384*/          OPC_MoveChild0,
/* 58385*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 58388*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 58390*/          OPC_CheckType, MVT::v4i32,
/* 58392*/          OPC_MoveParent,
/* 58393*/          OPC_MoveParent,
/* 58394*/          OPC_MoveChild2,
/* 58395*/          OPC_Scope, 75, /*->58472*/ // 2 children in Scope
/* 58397*/            OPC_CheckCondCode, ISD::SETNE,
/* 58399*/            OPC_MoveParent,
/* 58400*/            OPC_MoveParent,
/* 58401*/            OPC_CheckType, MVT::v2i1,
/* 58403*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 58405*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 58408*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 58416*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 58422*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58425*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 58434*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 58440*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58443*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 58452*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 58461*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 58464*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 58472*/          /*Scope*/ 75, /*->58548*/
/* 58473*/            OPC_CheckCondCode, ISD::SETEQ,
/* 58475*/            OPC_MoveParent,
/* 58476*/            OPC_MoveParent,
/* 58477*/            OPC_CheckType, MVT::v2i1,
/* 58479*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 58481*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 58484*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 58492*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 58498*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58501*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 58510*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 58516*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58519*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 58528*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 58537*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 58540*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTNMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 58548*/          0, /*End of Scope*/
/* 58549*/        0, // EndSwitchType
/* 58550*/      0, // EndSwitchOpcode
/* 58551*/    /*Scope*/ 79|128,5/*719*/, /*->59272*/
/* 58553*/      OPC_MoveChild0,
/* 58554*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 58557*/      OPC_MoveChild0,
/* 58558*/      OPC_SwitchOpcode /*2 cases */, 94|128,2/*350*/, TARGET_VAL(ISD::BITCAST),// ->58913
/* 58563*/        OPC_MoveChild0,
/* 58564*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 58567*/        OPC_RecordChild0, // #0 = $src1
/* 58568*/        OPC_RecordChild1, // #1 = $src2
/* 58569*/        OPC_SwitchType /*2 cases */, 40|128,1/*168*/, MVT::v4i64,// ->58741
/* 58573*/          OPC_MoveParent,
/* 58574*/          OPC_CheckType, MVT::v8i32,
/* 58576*/          OPC_MoveParent,
/* 58577*/          OPC_MoveChild1,
/* 58578*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 58581*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 58583*/          OPC_MoveParent,
/* 58584*/          OPC_MoveChild2,
/* 58585*/          OPC_Scope, 76, /*->58663*/ // 2 children in Scope
/* 58587*/            OPC_CheckCondCode, ISD::SETNE,
/* 58589*/            OPC_MoveParent,
/* 58590*/            OPC_MoveParent,
/* 58591*/            OPC_RecordChild1, // #2 = $mask
/* 58592*/            OPC_CheckType, MVT::v8i1,
/* 58594*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 58596*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 58599*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 58607*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 58613*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 58616*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 58625*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 58631*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 58634*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 58643*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 58652*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 58655*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 58663*/          /*Scope*/ 76, /*->58740*/
/* 58664*/            OPC_CheckCondCode, ISD::SETEQ,
/* 58666*/            OPC_MoveParent,
/* 58667*/            OPC_MoveParent,
/* 58668*/            OPC_RecordChild1, // #2 = $mask
/* 58669*/            OPC_CheckType, MVT::v8i1,
/* 58671*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 58673*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 58676*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 58684*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 58690*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 58693*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 58702*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 58708*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 58711*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 58720*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 58729*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 58732*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 58740*/          0, /*End of Scope*/
/* 58741*/        /*SwitchType*/ 40|128,1/*168*/, MVT::v2i64,// ->58912
/* 58744*/          OPC_MoveParent,
/* 58745*/          OPC_CheckType, MVT::v4i32,
/* 58747*/          OPC_MoveParent,
/* 58748*/          OPC_MoveChild1,
/* 58749*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 58752*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 58754*/          OPC_MoveParent,
/* 58755*/          OPC_MoveChild2,
/* 58756*/          OPC_Scope, 76, /*->58834*/ // 2 children in Scope
/* 58758*/            OPC_CheckCondCode, ISD::SETNE,
/* 58760*/            OPC_MoveParent,
/* 58761*/            OPC_MoveParent,
/* 58762*/            OPC_RecordChild1, // #2 = $mask
/* 58763*/            OPC_CheckType, MVT::v4i1,
/* 58765*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 58767*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 58770*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 58778*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 58784*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58787*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 58796*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 58802*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58805*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 58814*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 58823*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 58826*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 58834*/          /*Scope*/ 76, /*->58911*/
/* 58835*/            OPC_CheckCondCode, ISD::SETEQ,
/* 58837*/            OPC_MoveParent,
/* 58838*/            OPC_MoveParent,
/* 58839*/            OPC_RecordChild1, // #2 = $mask
/* 58840*/            OPC_CheckType, MVT::v4i1,
/* 58842*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 58844*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 58847*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 58855*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 58861*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58864*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 58873*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 58879*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 58882*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 58891*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 58900*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 58903*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 58911*/          0, /*End of Scope*/
/* 58912*/        0, // EndSwitchType
/* 58913*/      /*SwitchOpcode*/ 98|128,2/*354*/, TARGET_VAL(ISD::AND),// ->59271
/* 58917*/        OPC_RecordChild0, // #0 = $src1
/* 58918*/        OPC_RecordChild1, // #1 = $src2
/* 58919*/        OPC_SwitchType /*2 cases */, 44|128,1/*172*/, MVT::v4i64,// ->59095
/* 58923*/          OPC_MoveParent,
/* 58924*/          OPC_MoveChild1,
/* 58925*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 58928*/          OPC_MoveChild0,
/* 58929*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 58932*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 58934*/          OPC_CheckType, MVT::v8i32,
/* 58936*/          OPC_MoveParent,
/* 58937*/          OPC_MoveParent,
/* 58938*/          OPC_MoveChild2,
/* 58939*/          OPC_Scope, 76, /*->59017*/ // 2 children in Scope
/* 58941*/            OPC_CheckCondCode, ISD::SETNE,
/* 58943*/            OPC_MoveParent,
/* 58944*/            OPC_MoveParent,
/* 58945*/            OPC_RecordChild1, // #2 = $mask
/* 58946*/            OPC_CheckType, MVT::v4i1,
/* 58948*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 58950*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 58953*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 58961*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 58967*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 58970*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 58979*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 58985*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 58988*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 58997*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 59006*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 59009*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 59017*/          /*Scope*/ 76, /*->59094*/
/* 59018*/            OPC_CheckCondCode, ISD::SETEQ,
/* 59020*/            OPC_MoveParent,
/* 59021*/            OPC_MoveParent,
/* 59022*/            OPC_RecordChild1, // #2 = $mask
/* 59023*/            OPC_CheckType, MVT::v4i1,
/* 59025*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 59027*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 59030*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 59038*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 59044*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 59047*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 59056*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 59062*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 59065*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 59074*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 59083*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 59086*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 59094*/          0, /*End of Scope*/
/* 59095*/        /*SwitchType*/ 44|128,1/*172*/, MVT::v2i64,// ->59270
/* 59098*/          OPC_MoveParent,
/* 59099*/          OPC_MoveChild1,
/* 59100*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 59103*/          OPC_MoveChild0,
/* 59104*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 59107*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 59109*/          OPC_CheckType, MVT::v4i32,
/* 59111*/          OPC_MoveParent,
/* 59112*/          OPC_MoveParent,
/* 59113*/          OPC_MoveChild2,
/* 59114*/          OPC_Scope, 76, /*->59192*/ // 2 children in Scope
/* 59116*/            OPC_CheckCondCode, ISD::SETNE,
/* 59118*/            OPC_MoveParent,
/* 59119*/            OPC_MoveParent,
/* 59120*/            OPC_RecordChild1, // #2 = $mask
/* 59121*/            OPC_CheckType, MVT::v2i1,
/* 59123*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 59125*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 59128*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 59136*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 59142*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 59145*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 59154*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 59160*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 59163*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 59172*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 59181*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 59184*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK2:{ *:[v2i1] }:$mask) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 59192*/          /*Scope*/ 76, /*->59269*/
/* 59193*/            OPC_CheckCondCode, ISD::SETEQ,
/* 59195*/            OPC_MoveParent,
/* 59196*/            OPC_MoveParent,
/* 59197*/            OPC_RecordChild1, // #2 = $mask
/* 59198*/            OPC_CheckType, MVT::v2i1,
/* 59200*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 59202*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 59205*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 59213*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 59219*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 59222*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 59231*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 59237*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 59240*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 59249*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 59258*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 59261*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 11, 12, 
                      // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK2:{ *:[v2i1] }:$mask) - Complexity = 16
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTNMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 59269*/          0, /*End of Scope*/
/* 59270*/        0, // EndSwitchType
/* 59271*/      0, // EndSwitchOpcode
/* 59272*/    /*Scope*/ 2|128,1/*130*/, /*->59404*/
/* 59274*/      OPC_RecordChild0, // #0 = $mask
/* 59275*/      OPC_MoveChild1,
/* 59276*/      OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(X86ISD::FSETCCM_RND),// ->59341
/* 59280*/        OPC_RecordChild0, // #1 = $src1
/* 59281*/        OPC_Scope, 28, /*->59311*/ // 2 children in Scope
/* 59283*/          OPC_CheckChild0Type, MVT::v4f32,
/* 59285*/          OPC_RecordChild1, // #2 = $src2
/* 59286*/          OPC_RecordChild2, // #3 = $cc
/* 59287*/          OPC_MoveChild2,
/* 59288*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59291*/          OPC_MoveParent,
/* 59292*/          OPC_CheckChild3Integer, 8, 
/* 59294*/          OPC_MoveParent,
/* 59295*/          OPC_CheckType, MVT::v1i1,
/* 59297*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59299*/          OPC_EmitConvertToTarget, 3,
/* 59301*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrrb_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpmsRnd:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] })) - Complexity = 14
                    // Dst: (VCMPSSZrrb_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 59311*/        /*Scope*/ 28, /*->59340*/
/* 59312*/          OPC_CheckChild0Type, MVT::v2f64,
/* 59314*/          OPC_RecordChild1, // #2 = $src2
/* 59315*/          OPC_RecordChild2, // #3 = $cc
/* 59316*/          OPC_MoveChild2,
/* 59317*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59320*/          OPC_MoveParent,
/* 59321*/          OPC_CheckChild3Integer, 8, 
/* 59323*/          OPC_MoveParent,
/* 59324*/          OPC_CheckType, MVT::v1i1,
/* 59326*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59328*/          OPC_EmitConvertToTarget, 3,
/* 59330*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrrb_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpmsRnd:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] })) - Complexity = 14
                    // Dst: (VCMPSDZrrb_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 59340*/        0, /*End of Scope*/
/* 59341*/      /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::CMPM_RND),// ->59403
/* 59344*/        OPC_RecordChild0, // #1 = $src1
/* 59345*/        OPC_Scope, 28, /*->59375*/ // 2 children in Scope
/* 59347*/          OPC_CheckChild0Type, MVT::v8f64,
/* 59349*/          OPC_RecordChild1, // #2 = $src2
/* 59350*/          OPC_RecordChild2, // #3 = $cc
/* 59351*/          OPC_MoveChild2,
/* 59352*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59355*/          OPC_MoveParent,
/* 59356*/          OPC_CheckChild3Integer, 8, 
/* 59358*/          OPC_MoveParent,
/* 59359*/          OPC_CheckType, MVT::v8i1,
/* 59361*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59363*/          OPC_EmitConvertToTarget, 3,
/* 59365*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrribk), 0,
                        MVT::v8i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpmRnd:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] })) - Complexity = 14
                    // Dst: (VCMPPDZrribk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 59375*/        /*Scope*/ 26, /*->59402*/
/* 59376*/          OPC_RecordChild1, // #2 = $src2
/* 59377*/          OPC_RecordChild2, // #3 = $cc
/* 59378*/          OPC_MoveChild2,
/* 59379*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59382*/          OPC_MoveParent,
/* 59383*/          OPC_CheckChild3Integer, 8, 
/* 59385*/          OPC_MoveParent,
/* 59386*/          OPC_CheckType, MVT::v16i1,
/* 59388*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59390*/          OPC_EmitConvertToTarget, 3,
/* 59392*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrribk), 0,
                        MVT::v16i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86cmpmRnd:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] })) - Complexity = 14
                    // Dst: (VCMPPSZrribk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 59402*/        0, /*End of Scope*/
/* 59403*/      0, // EndSwitchOpcode
/* 59404*/    /*Scope*/ 5|128,1/*133*/, /*->59539*/
/* 59406*/      OPC_MoveChild0,
/* 59407*/      OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(X86ISD::FSETCCM_RND),// ->59474
/* 59411*/        OPC_RecordChild0, // #0 = $src1
/* 59412*/        OPC_Scope, 29, /*->59443*/ // 2 children in Scope
/* 59414*/          OPC_CheckChild0Type, MVT::v4f32,
/* 59416*/          OPC_RecordChild1, // #1 = $src2
/* 59417*/          OPC_RecordChild2, // #2 = $cc
/* 59418*/          OPC_MoveChild2,
/* 59419*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59422*/          OPC_MoveParent,
/* 59423*/          OPC_CheckChild3Integer, 8, 
/* 59425*/          OPC_MoveParent,
/* 59426*/          OPC_RecordChild1, // #3 = $mask
/* 59427*/          OPC_CheckType, MVT::v1i1,
/* 59429*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59431*/          OPC_EmitConvertToTarget, 2,
/* 59433*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrrb_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v1i1] } (X86cmpmsRnd:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask) - Complexity = 14
                    // Dst: (VCMPSSZrrb_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 59443*/        /*Scope*/ 29, /*->59473*/
/* 59444*/          OPC_CheckChild0Type, MVT::v2f64,
/* 59446*/          OPC_RecordChild1, // #1 = $src2
/* 59447*/          OPC_RecordChild2, // #2 = $cc
/* 59448*/          OPC_MoveChild2,
/* 59449*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59452*/          OPC_MoveParent,
/* 59453*/          OPC_CheckChild3Integer, 8, 
/* 59455*/          OPC_MoveParent,
/* 59456*/          OPC_RecordChild1, // #3 = $mask
/* 59457*/          OPC_CheckType, MVT::v1i1,
/* 59459*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59461*/          OPC_EmitConvertToTarget, 2,
/* 59463*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrrb_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v1i1] } (X86cmpmsRnd:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask) - Complexity = 14
                    // Dst: (VCMPSDZrrb_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 59473*/        0, /*End of Scope*/
/* 59474*/      /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::CMPM_RND),// ->59538
/* 59477*/        OPC_RecordChild0, // #0 = $src1
/* 59478*/        OPC_Scope, 29, /*->59509*/ // 2 children in Scope
/* 59480*/          OPC_CheckChild0Type, MVT::v8f64,
/* 59482*/          OPC_RecordChild1, // #1 = $src2
/* 59483*/          OPC_RecordChild2, // #2 = $cc
/* 59484*/          OPC_MoveChild2,
/* 59485*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59488*/          OPC_MoveParent,
/* 59489*/          OPC_CheckChild3Integer, 8, 
/* 59491*/          OPC_MoveParent,
/* 59492*/          OPC_RecordChild1, // #3 = $mask
/* 59493*/          OPC_CheckType, MVT::v8i1,
/* 59495*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59497*/          OPC_EmitConvertToTarget, 2,
/* 59499*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrribk), 0,
                        MVT::v8i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v8i1] } (X86cmpmRnd:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 14
                    // Dst: (VCMPPDZrribk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 59509*/        /*Scope*/ 27, /*->59537*/
/* 59510*/          OPC_RecordChild1, // #1 = $src2
/* 59511*/          OPC_RecordChild2, // #2 = $cc
/* 59512*/          OPC_MoveChild2,
/* 59513*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59516*/          OPC_MoveParent,
/* 59517*/          OPC_CheckChild3Integer, 8, 
/* 59519*/          OPC_MoveParent,
/* 59520*/          OPC_RecordChild1, // #3 = $mask
/* 59521*/          OPC_CheckType, MVT::v16i1,
/* 59523*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59525*/          OPC_EmitConvertToTarget, 2,
/* 59527*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrribk), 0,
                        MVT::v16i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v16i1] } (X86cmpmRnd:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 14
                    // Dst: (VCMPPSZrribk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 59537*/        0, /*End of Scope*/
/* 59538*/      0, // EndSwitchOpcode
/* 59539*/    /*Scope*/ 0|128,4/*512*/, /*->60053*/
/* 59541*/      OPC_RecordChild0, // #0 = $mask
/* 59542*/      OPC_MoveChild1,
/* 59543*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 59546*/      OPC_RecordChild0, // #1 = $src
/* 59547*/      OPC_Scope, 55, /*->59604*/ // 9 children in Scope
/* 59549*/        OPC_CheckChild0Type, MVT::v32i16,
/* 59551*/        OPC_MoveChild1,
/* 59552*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 59555*/        OPC_MoveChild0,
/* 59556*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 59559*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 59561*/        OPC_CheckType, MVT::v16i32,
/* 59563*/        OPC_MoveParent,
/* 59564*/        OPC_MoveParent,
/* 59565*/        OPC_MoveChild2,
/* 59566*/        OPC_Scope, 17, /*->59585*/ // 2 children in Scope
/* 59568*/          OPC_CheckCondCode, ISD::SETNE,
/* 59570*/          OPC_MoveParent,
/* 59571*/          OPC_MoveParent,
/* 59572*/          OPC_CheckType, MVT::v32i1,
/* 59574*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 59576*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src, (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTMWZrrk:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src)
/* 59585*/        /*Scope*/ 17, /*->59603*/
/* 59586*/          OPC_CheckCondCode, ISD::SETEQ,
/* 59588*/          OPC_MoveParent,
/* 59589*/          OPC_MoveParent,
/* 59590*/          OPC_CheckType, MVT::v32i1,
/* 59592*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 59594*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src, (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTNMWZrrk:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src)
/* 59603*/        0, /*End of Scope*/
/* 59604*/      /*Scope*/ 55, /*->59660*/
/* 59605*/        OPC_CheckChild0Type, MVT::v64i8,
/* 59607*/        OPC_MoveChild1,
/* 59608*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 59611*/        OPC_MoveChild0,
/* 59612*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 59615*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 59617*/        OPC_CheckType, MVT::v16i32,
/* 59619*/        OPC_MoveParent,
/* 59620*/        OPC_MoveParent,
/* 59621*/        OPC_MoveChild2,
/* 59622*/        OPC_Scope, 17, /*->59641*/ // 2 children in Scope
/* 59624*/          OPC_CheckCondCode, ISD::SETNE,
/* 59626*/          OPC_MoveParent,
/* 59627*/          OPC_MoveParent,
/* 59628*/          OPC_CheckType, MVT::v64i1,
/* 59630*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 59632*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v64i1] } VK64:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src, (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTMBZrrk:{ *:[v64i1] } VK64:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src)
/* 59641*/        /*Scope*/ 17, /*->59659*/
/* 59642*/          OPC_CheckCondCode, ISD::SETEQ,
/* 59644*/          OPC_MoveParent,
/* 59645*/          OPC_MoveParent,
/* 59646*/          OPC_CheckType, MVT::v64i1,
/* 59648*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 59650*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v64i1] } VK64:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src, (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTNMBZrrk:{ *:[v64i1] } VK64:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src)
/* 59659*/        0, /*End of Scope*/
/* 59660*/      /*Scope*/ 55, /*->59716*/
/* 59661*/        OPC_CheckChild0Type, MVT::v16i16,
/* 59663*/        OPC_MoveChild1,
/* 59664*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 59667*/        OPC_MoveChild0,
/* 59668*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 59671*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 59673*/        OPC_CheckType, MVT::v8i32,
/* 59675*/        OPC_MoveParent,
/* 59676*/        OPC_MoveParent,
/* 59677*/        OPC_MoveChild2,
/* 59678*/        OPC_Scope, 17, /*->59697*/ // 2 children in Scope
/* 59680*/          OPC_CheckCondCode, ISD::SETNE,
/* 59682*/          OPC_MoveParent,
/* 59683*/          OPC_MoveParent,
/* 59684*/          OPC_CheckType, MVT::v16i1,
/* 59686*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 59688*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTMWZ256rrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src)
/* 59697*/        /*Scope*/ 17, /*->59715*/
/* 59698*/          OPC_CheckCondCode, ISD::SETEQ,
/* 59700*/          OPC_MoveParent,
/* 59701*/          OPC_MoveParent,
/* 59702*/          OPC_CheckType, MVT::v16i1,
/* 59704*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 59706*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTNMWZ256rrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src)
/* 59715*/        0, /*End of Scope*/
/* 59716*/      /*Scope*/ 55, /*->59772*/
/* 59717*/        OPC_CheckChild0Type, MVT::v8i16,
/* 59719*/        OPC_MoveChild1,
/* 59720*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 59723*/        OPC_MoveChild0,
/* 59724*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 59727*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 59729*/        OPC_CheckType, MVT::v4i32,
/* 59731*/        OPC_MoveParent,
/* 59732*/        OPC_MoveParent,
/* 59733*/        OPC_MoveChild2,
/* 59734*/        OPC_Scope, 17, /*->59753*/ // 2 children in Scope
/* 59736*/          OPC_CheckCondCode, ISD::SETNE,
/* 59738*/          OPC_MoveParent,
/* 59739*/          OPC_MoveParent,
/* 59740*/          OPC_CheckType, MVT::v8i1,
/* 59742*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 59744*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTMWZ128rrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src)
/* 59753*/        /*Scope*/ 17, /*->59771*/
/* 59754*/          OPC_CheckCondCode, ISD::SETEQ,
/* 59756*/          OPC_MoveParent,
/* 59757*/          OPC_MoveParent,
/* 59758*/          OPC_CheckType, MVT::v8i1,
/* 59760*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 59762*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTNMWZ128rrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src)
/* 59771*/        0, /*End of Scope*/
/* 59772*/      /*Scope*/ 55, /*->59828*/
/* 59773*/        OPC_CheckChild0Type, MVT::v32i8,
/* 59775*/        OPC_MoveChild1,
/* 59776*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 59779*/        OPC_MoveChild0,
/* 59780*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 59783*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 59785*/        OPC_CheckType, MVT::v8i32,
/* 59787*/        OPC_MoveParent,
/* 59788*/        OPC_MoveParent,
/* 59789*/        OPC_MoveChild2,
/* 59790*/        OPC_Scope, 17, /*->59809*/ // 2 children in Scope
/* 59792*/          OPC_CheckCondCode, ISD::SETNE,
/* 59794*/          OPC_MoveParent,
/* 59795*/          OPC_MoveParent,
/* 59796*/          OPC_CheckType, MVT::v32i1,
/* 59798*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 59800*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTMBZ256rrk:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src)
/* 59809*/        /*Scope*/ 17, /*->59827*/
/* 59810*/          OPC_CheckCondCode, ISD::SETEQ,
/* 59812*/          OPC_MoveParent,
/* 59813*/          OPC_MoveParent,
/* 59814*/          OPC_CheckType, MVT::v32i1,
/* 59816*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 59818*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTNMBZ256rrk:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src)
/* 59827*/        0, /*End of Scope*/
/* 59828*/      /*Scope*/ 55, /*->59884*/
/* 59829*/        OPC_CheckChild0Type, MVT::v16i8,
/* 59831*/        OPC_MoveChild1,
/* 59832*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 59835*/        OPC_MoveChild0,
/* 59836*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 59839*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 59841*/        OPC_CheckType, MVT::v4i32,
/* 59843*/        OPC_MoveParent,
/* 59844*/        OPC_MoveParent,
/* 59845*/        OPC_MoveChild2,
/* 59846*/        OPC_Scope, 17, /*->59865*/ // 2 children in Scope
/* 59848*/          OPC_CheckCondCode, ISD::SETNE,
/* 59850*/          OPC_MoveParent,
/* 59851*/          OPC_MoveParent,
/* 59852*/          OPC_CheckType, MVT::v16i1,
/* 59854*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 59856*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTMBZ128rrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src)
/* 59865*/        /*Scope*/ 17, /*->59883*/
/* 59866*/          OPC_CheckCondCode, ISD::SETEQ,
/* 59868*/          OPC_MoveParent,
/* 59869*/          OPC_MoveParent,
/* 59870*/          OPC_CheckType, MVT::v16i1,
/* 59872*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 59874*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTNMBZ128rrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src)
/* 59883*/        0, /*End of Scope*/
/* 59884*/      /*Scope*/ 55, /*->59940*/
/* 59885*/        OPC_CheckChild0Type, MVT::v8i64,
/* 59887*/        OPC_MoveChild1,
/* 59888*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 59891*/        OPC_MoveChild0,
/* 59892*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 59895*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 59897*/        OPC_CheckType, MVT::v16i32,
/* 59899*/        OPC_MoveParent,
/* 59900*/        OPC_MoveParent,
/* 59901*/        OPC_MoveChild2,
/* 59902*/        OPC_Scope, 17, /*->59921*/ // 2 children in Scope
/* 59904*/          OPC_CheckCondCode, ISD::SETNE,
/* 59906*/          OPC_MoveParent,
/* 59907*/          OPC_MoveParent,
/* 59908*/          OPC_CheckType, MVT::v8i1,
/* 59910*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59912*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTMQZrrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src)
/* 59921*/        /*Scope*/ 17, /*->59939*/
/* 59922*/          OPC_CheckCondCode, ISD::SETEQ,
/* 59924*/          OPC_MoveParent,
/* 59925*/          OPC_MoveParent,
/* 59926*/          OPC_CheckType, MVT::v8i1,
/* 59928*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59930*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTNMQZrrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src)
/* 59939*/        0, /*End of Scope*/
/* 59940*/      /*Scope*/ 55, /*->59996*/
/* 59941*/        OPC_CheckChild0Type, MVT::v4i64,
/* 59943*/        OPC_MoveChild1,
/* 59944*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 59947*/        OPC_MoveChild0,
/* 59948*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 59951*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 59953*/        OPC_CheckType, MVT::v8i32,
/* 59955*/        OPC_MoveParent,
/* 59956*/        OPC_MoveParent,
/* 59957*/        OPC_MoveChild2,
/* 59958*/        OPC_Scope, 17, /*->59977*/ // 2 children in Scope
/* 59960*/          OPC_CheckCondCode, ISD::SETNE,
/* 59962*/          OPC_MoveParent,
/* 59963*/          OPC_MoveParent,
/* 59964*/          OPC_CheckType, MVT::v4i1,
/* 59966*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 59968*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTMQZ256rrk:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src)
/* 59977*/        /*Scope*/ 17, /*->59995*/
/* 59978*/          OPC_CheckCondCode, ISD::SETEQ,
/* 59980*/          OPC_MoveParent,
/* 59981*/          OPC_MoveParent,
/* 59982*/          OPC_CheckType, MVT::v4i1,
/* 59984*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 59986*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTNMQZ256rrk:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src)
/* 59995*/        0, /*End of Scope*/
/* 59996*/      /*Scope*/ 55, /*->60052*/
/* 59997*/        OPC_CheckChild0Type, MVT::v2i64,
/* 59999*/        OPC_MoveChild1,
/* 60000*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60003*/        OPC_MoveChild0,
/* 60004*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60007*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60009*/        OPC_CheckType, MVT::v4i32,
/* 60011*/        OPC_MoveParent,
/* 60012*/        OPC_MoveParent,
/* 60013*/        OPC_MoveChild2,
/* 60014*/        OPC_Scope, 17, /*->60033*/ // 2 children in Scope
/* 60016*/          OPC_CheckCondCode, ISD::SETNE,
/* 60018*/          OPC_MoveParent,
/* 60019*/          OPC_MoveParent,
/* 60020*/          OPC_CheckType, MVT::v2i1,
/* 60022*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 60024*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTMQZ128rrk:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src)
/* 60033*/        /*Scope*/ 17, /*->60051*/
/* 60034*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60036*/          OPC_MoveParent,
/* 60037*/          OPC_MoveParent,
/* 60038*/          OPC_CheckType, MVT::v2i1,
/* 60040*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 60042*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (VPTESTNMQZ128rrk:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src)
/* 60051*/        0, /*End of Scope*/
/* 60052*/      0, /*End of Scope*/
/* 60053*/    /*Scope*/ 17|128,4/*529*/, /*->60584*/
/* 60055*/      OPC_MoveChild0,
/* 60056*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 60059*/      OPC_RecordChild0, // #0 = $src
/* 60060*/      OPC_Scope, 57, /*->60119*/ // 9 children in Scope
/* 60062*/        OPC_CheckChild0Type, MVT::v32i16,
/* 60064*/        OPC_MoveChild1,
/* 60065*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60068*/        OPC_MoveChild0,
/* 60069*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60072*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60074*/        OPC_CheckType, MVT::v16i32,
/* 60076*/        OPC_MoveParent,
/* 60077*/        OPC_MoveParent,
/* 60078*/        OPC_MoveChild2,
/* 60079*/        OPC_Scope, 18, /*->60099*/ // 2 children in Scope
/* 60081*/          OPC_CheckCondCode, ISD::SETNE,
/* 60083*/          OPC_MoveParent,
/* 60084*/          OPC_MoveParent,
/* 60085*/          OPC_RecordChild1, // #1 = $mask
/* 60086*/          OPC_CheckType, MVT::v32i1,
/* 60088*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 60090*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src, (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK32:{ *:[v32i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTMWZrrk:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src)
/* 60099*/        /*Scope*/ 18, /*->60118*/
/* 60100*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60102*/          OPC_MoveParent,
/* 60103*/          OPC_MoveParent,
/* 60104*/          OPC_RecordChild1, // #1 = $mask
/* 60105*/          OPC_CheckType, MVT::v32i1,
/* 60107*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 60109*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src, (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK32:{ *:[v32i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTNMWZrrk:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src)
/* 60118*/        0, /*End of Scope*/
/* 60119*/      /*Scope*/ 57, /*->60177*/
/* 60120*/        OPC_CheckChild0Type, MVT::v64i8,
/* 60122*/        OPC_MoveChild1,
/* 60123*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60126*/        OPC_MoveChild0,
/* 60127*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60130*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60132*/        OPC_CheckType, MVT::v16i32,
/* 60134*/        OPC_MoveParent,
/* 60135*/        OPC_MoveParent,
/* 60136*/        OPC_MoveChild2,
/* 60137*/        OPC_Scope, 18, /*->60157*/ // 2 children in Scope
/* 60139*/          OPC_CheckCondCode, ISD::SETNE,
/* 60141*/          OPC_MoveParent,
/* 60142*/          OPC_MoveParent,
/* 60143*/          OPC_RecordChild1, // #1 = $mask
/* 60144*/          OPC_CheckType, MVT::v64i1,
/* 60146*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 60148*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src, (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK64:{ *:[v64i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTMBZrrk:{ *:[v64i1] } VK64:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src)
/* 60157*/        /*Scope*/ 18, /*->60176*/
/* 60158*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60160*/          OPC_MoveParent,
/* 60161*/          OPC_MoveParent,
/* 60162*/          OPC_RecordChild1, // #1 = $mask
/* 60163*/          OPC_CheckType, MVT::v64i1,
/* 60165*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 60167*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src, (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK64:{ *:[v64i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTNMBZrrk:{ *:[v64i1] } VK64:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src)
/* 60176*/        0, /*End of Scope*/
/* 60177*/      /*Scope*/ 57, /*->60235*/
/* 60178*/        OPC_CheckChild0Type, MVT::v16i16,
/* 60180*/        OPC_MoveChild1,
/* 60181*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60184*/        OPC_MoveChild0,
/* 60185*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60188*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60190*/        OPC_CheckType, MVT::v8i32,
/* 60192*/        OPC_MoveParent,
/* 60193*/        OPC_MoveParent,
/* 60194*/        OPC_MoveChild2,
/* 60195*/        OPC_Scope, 18, /*->60215*/ // 2 children in Scope
/* 60197*/          OPC_CheckCondCode, ISD::SETNE,
/* 60199*/          OPC_MoveParent,
/* 60200*/          OPC_MoveParent,
/* 60201*/          OPC_RecordChild1, // #1 = $mask
/* 60202*/          OPC_CheckType, MVT::v16i1,
/* 60204*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 60206*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTMWZ256rrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src)
/* 60215*/        /*Scope*/ 18, /*->60234*/
/* 60216*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60218*/          OPC_MoveParent,
/* 60219*/          OPC_MoveParent,
/* 60220*/          OPC_RecordChild1, // #1 = $mask
/* 60221*/          OPC_CheckType, MVT::v16i1,
/* 60223*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 60225*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTNMWZ256rrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src)
/* 60234*/        0, /*End of Scope*/
/* 60235*/      /*Scope*/ 57, /*->60293*/
/* 60236*/        OPC_CheckChild0Type, MVT::v8i16,
/* 60238*/        OPC_MoveChild1,
/* 60239*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60242*/        OPC_MoveChild0,
/* 60243*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60246*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60248*/        OPC_CheckType, MVT::v4i32,
/* 60250*/        OPC_MoveParent,
/* 60251*/        OPC_MoveParent,
/* 60252*/        OPC_MoveChild2,
/* 60253*/        OPC_Scope, 18, /*->60273*/ // 2 children in Scope
/* 60255*/          OPC_CheckCondCode, ISD::SETNE,
/* 60257*/          OPC_MoveParent,
/* 60258*/          OPC_MoveParent,
/* 60259*/          OPC_RecordChild1, // #1 = $mask
/* 60260*/          OPC_CheckType, MVT::v8i1,
/* 60262*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 60264*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTMWZ128rrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src)
/* 60273*/        /*Scope*/ 18, /*->60292*/
/* 60274*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60276*/          OPC_MoveParent,
/* 60277*/          OPC_MoveParent,
/* 60278*/          OPC_RecordChild1, // #1 = $mask
/* 60279*/          OPC_CheckType, MVT::v8i1,
/* 60281*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 60283*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTNMWZ128rrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src)
/* 60292*/        0, /*End of Scope*/
/* 60293*/      /*Scope*/ 57, /*->60351*/
/* 60294*/        OPC_CheckChild0Type, MVT::v32i8,
/* 60296*/        OPC_MoveChild1,
/* 60297*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60300*/        OPC_MoveChild0,
/* 60301*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60304*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60306*/        OPC_CheckType, MVT::v8i32,
/* 60308*/        OPC_MoveParent,
/* 60309*/        OPC_MoveParent,
/* 60310*/        OPC_MoveChild2,
/* 60311*/        OPC_Scope, 18, /*->60331*/ // 2 children in Scope
/* 60313*/          OPC_CheckCondCode, ISD::SETNE,
/* 60315*/          OPC_MoveParent,
/* 60316*/          OPC_MoveParent,
/* 60317*/          OPC_RecordChild1, // #1 = $mask
/* 60318*/          OPC_CheckType, MVT::v32i1,
/* 60320*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 60322*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK32:{ *:[v32i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTMBZ256rrk:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src)
/* 60331*/        /*Scope*/ 18, /*->60350*/
/* 60332*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60334*/          OPC_MoveParent,
/* 60335*/          OPC_MoveParent,
/* 60336*/          OPC_RecordChild1, // #1 = $mask
/* 60337*/          OPC_CheckType, MVT::v32i1,
/* 60339*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 60341*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK32:{ *:[v32i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTNMBZ256rrk:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src)
/* 60350*/        0, /*End of Scope*/
/* 60351*/      /*Scope*/ 57, /*->60409*/
/* 60352*/        OPC_CheckChild0Type, MVT::v16i8,
/* 60354*/        OPC_MoveChild1,
/* 60355*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60358*/        OPC_MoveChild0,
/* 60359*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60362*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60364*/        OPC_CheckType, MVT::v4i32,
/* 60366*/        OPC_MoveParent,
/* 60367*/        OPC_MoveParent,
/* 60368*/        OPC_MoveChild2,
/* 60369*/        OPC_Scope, 18, /*->60389*/ // 2 children in Scope
/* 60371*/          OPC_CheckCondCode, ISD::SETNE,
/* 60373*/          OPC_MoveParent,
/* 60374*/          OPC_MoveParent,
/* 60375*/          OPC_RecordChild1, // #1 = $mask
/* 60376*/          OPC_CheckType, MVT::v16i1,
/* 60378*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 60380*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTMBZ128rrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src)
/* 60389*/        /*Scope*/ 18, /*->60408*/
/* 60390*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60392*/          OPC_MoveParent,
/* 60393*/          OPC_MoveParent,
/* 60394*/          OPC_RecordChild1, // #1 = $mask
/* 60395*/          OPC_CheckType, MVT::v16i1,
/* 60397*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 60399*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTNMBZ128rrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src)
/* 60408*/        0, /*End of Scope*/
/* 60409*/      /*Scope*/ 57, /*->60467*/
/* 60410*/        OPC_CheckChild0Type, MVT::v8i64,
/* 60412*/        OPC_MoveChild1,
/* 60413*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60416*/        OPC_MoveChild0,
/* 60417*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60420*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60422*/        OPC_CheckType, MVT::v16i32,
/* 60424*/        OPC_MoveParent,
/* 60425*/        OPC_MoveParent,
/* 60426*/        OPC_MoveChild2,
/* 60427*/        OPC_Scope, 18, /*->60447*/ // 2 children in Scope
/* 60429*/          OPC_CheckCondCode, ISD::SETNE,
/* 60431*/          OPC_MoveParent,
/* 60432*/          OPC_MoveParent,
/* 60433*/          OPC_RecordChild1, // #1 = $mask
/* 60434*/          OPC_CheckType, MVT::v8i1,
/* 60436*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 60438*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTMQZrrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src)
/* 60447*/        /*Scope*/ 18, /*->60466*/
/* 60448*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60450*/          OPC_MoveParent,
/* 60451*/          OPC_MoveParent,
/* 60452*/          OPC_RecordChild1, // #1 = $mask
/* 60453*/          OPC_CheckType, MVT::v8i1,
/* 60455*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 60457*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTNMQZrrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src)
/* 60466*/        0, /*End of Scope*/
/* 60467*/      /*Scope*/ 57, /*->60525*/
/* 60468*/        OPC_CheckChild0Type, MVT::v4i64,
/* 60470*/        OPC_MoveChild1,
/* 60471*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60474*/        OPC_MoveChild0,
/* 60475*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60478*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60480*/        OPC_CheckType, MVT::v8i32,
/* 60482*/        OPC_MoveParent,
/* 60483*/        OPC_MoveParent,
/* 60484*/        OPC_MoveChild2,
/* 60485*/        OPC_Scope, 18, /*->60505*/ // 2 children in Scope
/* 60487*/          OPC_CheckCondCode, ISD::SETNE,
/* 60489*/          OPC_MoveParent,
/* 60490*/          OPC_MoveParent,
/* 60491*/          OPC_RecordChild1, // #1 = $mask
/* 60492*/          OPC_CheckType, MVT::v4i1,
/* 60494*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 60496*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTMQZ256rrk:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src)
/* 60505*/        /*Scope*/ 18, /*->60524*/
/* 60506*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60508*/          OPC_MoveParent,
/* 60509*/          OPC_MoveParent,
/* 60510*/          OPC_RecordChild1, // #1 = $mask
/* 60511*/          OPC_CheckType, MVT::v4i1,
/* 60513*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 60515*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTNMQZ256rrk:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src)
/* 60524*/        0, /*End of Scope*/
/* 60525*/      /*Scope*/ 57, /*->60583*/
/* 60526*/        OPC_CheckChild0Type, MVT::v2i64,
/* 60528*/        OPC_MoveChild1,
/* 60529*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60532*/        OPC_MoveChild0,
/* 60533*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60536*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60538*/        OPC_CheckType, MVT::v4i32,
/* 60540*/        OPC_MoveParent,
/* 60541*/        OPC_MoveParent,
/* 60542*/        OPC_MoveChild2,
/* 60543*/        OPC_Scope, 18, /*->60563*/ // 2 children in Scope
/* 60545*/          OPC_CheckCondCode, ISD::SETNE,
/* 60547*/          OPC_MoveParent,
/* 60548*/          OPC_MoveParent,
/* 60549*/          OPC_RecordChild1, // #1 = $mask
/* 60550*/          OPC_CheckType, MVT::v2i1,
/* 60552*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 60554*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK2:{ *:[v2i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTMQZ128rrk:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src)
/* 60563*/        /*Scope*/ 18, /*->60582*/
/* 60564*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60566*/          OPC_MoveParent,
/* 60567*/          OPC_MoveParent,
/* 60568*/          OPC_RecordChild1, // #1 = $mask
/* 60569*/          OPC_CheckType, MVT::v2i1,
/* 60571*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 60573*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 1, 0, 0, 
                    // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK2:{ *:[v2i1] }:$mask) - Complexity = 13
                    // Dst: (VPTESTNMQZ128rrk:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src)
/* 60582*/        0, /*End of Scope*/
/* 60583*/      0, /*End of Scope*/
/* 60584*/    /*Scope*/ 22|128,8/*1046*/, /*->61632*/
/* 60586*/      OPC_RecordChild0, // #0 = $mask
/* 60587*/      OPC_MoveChild1,
/* 60588*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 60591*/      OPC_RecordChild0, // #1 = $src
/* 60592*/      OPC_Scope, 43|128,1/*171*/, /*->60766*/ // 6 children in Scope
/* 60595*/        OPC_CheckChild0Type, MVT::v32i8,
/* 60597*/        OPC_MoveChild1,
/* 60598*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60601*/        OPC_MoveChild0,
/* 60602*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60605*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60607*/        OPC_CheckType, MVT::v8i32,
/* 60609*/        OPC_MoveParent,
/* 60610*/        OPC_MoveParent,
/* 60611*/        OPC_MoveChild2,
/* 60612*/        OPC_Scope, 75, /*->60689*/ // 2 children in Scope
/* 60614*/          OPC_CheckCondCode, ISD::SETNE,
/* 60616*/          OPC_MoveParent,
/* 60617*/          OPC_MoveParent,
/* 60618*/          OPC_CheckType, MVT::v32i1,
/* 60620*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 60622*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 60625*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60633*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #4
/* 60639*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 60642*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 60651*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #7
/* 60657*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 60660*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 60669*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 60678*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 60681*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 60689*/        /*Scope*/ 75, /*->60765*/
/* 60690*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60692*/          OPC_MoveParent,
/* 60693*/          OPC_MoveParent,
/* 60694*/          OPC_CheckType, MVT::v32i1,
/* 60696*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 60698*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 60701*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60709*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #4
/* 60715*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 60718*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 60727*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #7
/* 60733*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 60736*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 60745*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 60754*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 60757*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTNMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 60765*/        0, /*End of Scope*/
/* 60766*/      /*Scope*/ 43|128,1/*171*/, /*->60939*/
/* 60768*/        OPC_CheckChild0Type, MVT::v16i8,
/* 60770*/        OPC_MoveChild1,
/* 60771*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60774*/        OPC_MoveChild0,
/* 60775*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60778*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60780*/        OPC_CheckType, MVT::v4i32,
/* 60782*/        OPC_MoveParent,
/* 60783*/        OPC_MoveParent,
/* 60784*/        OPC_MoveChild2,
/* 60785*/        OPC_Scope, 75, /*->60862*/ // 2 children in Scope
/* 60787*/          OPC_CheckCondCode, ISD::SETNE,
/* 60789*/          OPC_MoveParent,
/* 60790*/          OPC_MoveParent,
/* 60791*/          OPC_CheckType, MVT::v16i1,
/* 60793*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 60795*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 60798*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60806*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #4
/* 60812*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 60815*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 60824*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #7
/* 60830*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 60833*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 60842*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 60851*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60854*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 60862*/        /*Scope*/ 75, /*->60938*/
/* 60863*/          OPC_CheckCondCode, ISD::SETEQ,
/* 60865*/          OPC_MoveParent,
/* 60866*/          OPC_MoveParent,
/* 60867*/          OPC_CheckType, MVT::v16i1,
/* 60869*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 60871*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 60874*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60882*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #4
/* 60888*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 60891*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 60900*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #7
/* 60906*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 60909*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 60918*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 60927*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60930*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 60938*/        0, /*End of Scope*/
/* 60939*/      /*Scope*/ 43|128,1/*171*/, /*->61112*/
/* 60941*/        OPC_CheckChild0Type, MVT::v16i16,
/* 60943*/        OPC_MoveChild1,
/* 60944*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 60947*/        OPC_MoveChild0,
/* 60948*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 60951*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 60953*/        OPC_CheckType, MVT::v8i32,
/* 60955*/        OPC_MoveParent,
/* 60956*/        OPC_MoveParent,
/* 60957*/        OPC_MoveChild2,
/* 60958*/        OPC_Scope, 75, /*->61035*/ // 2 children in Scope
/* 60960*/          OPC_CheckCondCode, ISD::SETNE,
/* 60962*/          OPC_MoveParent,
/* 60963*/          OPC_MoveParent,
/* 60964*/          OPC_CheckType, MVT::v16i1,
/* 60966*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 60968*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 60971*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60979*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #4
/* 60985*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 60988*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 60997*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #7
/* 61003*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61006*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 61015*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61024*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 61027*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 61035*/        /*Scope*/ 75, /*->61111*/
/* 61036*/          OPC_CheckCondCode, ISD::SETEQ,
/* 61038*/          OPC_MoveParent,
/* 61039*/          OPC_MoveParent,
/* 61040*/          OPC_CheckType, MVT::v16i1,
/* 61042*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61044*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 61047*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61055*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #4
/* 61061*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61064*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 61073*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #7
/* 61079*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61082*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 61091*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61100*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 61103*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 61111*/        0, /*End of Scope*/
/* 61112*/      /*Scope*/ 43|128,1/*171*/, /*->61285*/
/* 61114*/        OPC_CheckChild0Type, MVT::v8i16,
/* 61116*/        OPC_MoveChild1,
/* 61117*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 61120*/        OPC_MoveChild0,
/* 61121*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 61124*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 61126*/        OPC_CheckType, MVT::v4i32,
/* 61128*/        OPC_MoveParent,
/* 61129*/        OPC_MoveParent,
/* 61130*/        OPC_MoveChild2,
/* 61131*/        OPC_Scope, 75, /*->61208*/ // 2 children in Scope
/* 61133*/          OPC_CheckCondCode, ISD::SETNE,
/* 61135*/          OPC_MoveParent,
/* 61136*/          OPC_MoveParent,
/* 61137*/          OPC_CheckType, MVT::v8i1,
/* 61139*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61141*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 61144*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61152*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #4
/* 61158*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61161*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 61170*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #7
/* 61176*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61179*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 61188*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61197*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61200*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 61208*/        /*Scope*/ 75, /*->61284*/
/* 61209*/          OPC_CheckCondCode, ISD::SETEQ,
/* 61211*/          OPC_MoveParent,
/* 61212*/          OPC_MoveParent,
/* 61213*/          OPC_CheckType, MVT::v8i1,
/* 61215*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61217*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 61220*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61228*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #4
/* 61234*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61237*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 61246*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #7
/* 61252*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61255*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 61264*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61273*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61276*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 61284*/        0, /*End of Scope*/
/* 61285*/      /*Scope*/ 43|128,1/*171*/, /*->61458*/
/* 61287*/        OPC_CheckChild0Type, MVT::v4i64,
/* 61289*/        OPC_MoveChild1,
/* 61290*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 61293*/        OPC_MoveChild0,
/* 61294*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 61297*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 61299*/        OPC_CheckType, MVT::v8i32,
/* 61301*/        OPC_MoveParent,
/* 61302*/        OPC_MoveParent,
/* 61303*/        OPC_MoveChild2,
/* 61304*/        OPC_Scope, 75, /*->61381*/ // 2 children in Scope
/* 61306*/          OPC_CheckCondCode, ISD::SETNE,
/* 61308*/          OPC_MoveParent,
/* 61309*/          OPC_MoveParent,
/* 61310*/          OPC_CheckType, MVT::v4i1,
/* 61312*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61314*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61317*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61325*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/* 61331*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61334*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 61343*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #7
/* 61349*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61352*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 61361*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61370*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 61373*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 61381*/        /*Scope*/ 75, /*->61457*/
/* 61382*/          OPC_CheckCondCode, ISD::SETEQ,
/* 61384*/          OPC_MoveParent,
/* 61385*/          OPC_MoveParent,
/* 61386*/          OPC_CheckType, MVT::v4i1,
/* 61388*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61390*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61393*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61401*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/* 61407*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61410*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 61419*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #7
/* 61425*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61428*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 61437*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61446*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 61449*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 61457*/        0, /*End of Scope*/
/* 61458*/      /*Scope*/ 43|128,1/*171*/, /*->61631*/
/* 61460*/        OPC_CheckChild0Type, MVT::v2i64,
/* 61462*/        OPC_MoveChild1,
/* 61463*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 61466*/        OPC_MoveChild0,
/* 61467*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 61470*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 61472*/        OPC_CheckType, MVT::v4i32,
/* 61474*/        OPC_MoveParent,
/* 61475*/        OPC_MoveParent,
/* 61476*/        OPC_MoveChild2,
/* 61477*/        OPC_Scope, 75, /*->61554*/ // 2 children in Scope
/* 61479*/          OPC_CheckCondCode, ISD::SETNE,
/* 61481*/          OPC_MoveParent,
/* 61482*/          OPC_MoveParent,
/* 61483*/          OPC_CheckType, MVT::v2i1,
/* 61485*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61487*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61490*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61498*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/* 61504*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61507*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 61516*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #7
/* 61522*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61525*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 61534*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61543*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 61546*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 61554*/        /*Scope*/ 75, /*->61630*/
/* 61555*/          OPC_CheckCondCode, ISD::SETEQ,
/* 61557*/          OPC_MoveParent,
/* 61558*/          OPC_MoveParent,
/* 61559*/          OPC_CheckType, MVT::v2i1,
/* 61561*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61563*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61566*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61574*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/* 61580*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61583*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 61592*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #7
/* 61598*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61601*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 61610*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61619*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 61622*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] })) - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTNMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 61630*/        0, /*End of Scope*/
/* 61631*/      0, /*End of Scope*/
/* 61632*/    /*Scope*/ 96|128,8/*1120*/, /*->62754*/
/* 61634*/      OPC_MoveChild0,
/* 61635*/      OPC_SwitchOpcode /*2 cases */, 29|128,8/*1053*/, TARGET_VAL(ISD::SETCC),// ->62693
/* 61640*/        OPC_RecordChild0, // #0 = $src
/* 61641*/        OPC_Scope, 45|128,1/*173*/, /*->61817*/ // 6 children in Scope
/* 61644*/          OPC_CheckChild0Type, MVT::v32i8,
/* 61646*/          OPC_MoveChild1,
/* 61647*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 61650*/          OPC_MoveChild0,
/* 61651*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 61654*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 61656*/          OPC_CheckType, MVT::v8i32,
/* 61658*/          OPC_MoveParent,
/* 61659*/          OPC_MoveParent,
/* 61660*/          OPC_MoveChild2,
/* 61661*/          OPC_Scope, 76, /*->61739*/ // 2 children in Scope
/* 61663*/            OPC_CheckCondCode, ISD::SETNE,
/* 61665*/            OPC_MoveParent,
/* 61666*/            OPC_MoveParent,
/* 61667*/            OPC_RecordChild1, // #1 = $mask
/* 61668*/            OPC_CheckType, MVT::v32i1,
/* 61670*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61672*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 61675*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 61683*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #4
/* 61689*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61692*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 61701*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #7
/* 61707*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61710*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 61719*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61728*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 61731*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK32:{ *:[v32i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 61739*/          /*Scope*/ 76, /*->61816*/
/* 61740*/            OPC_CheckCondCode, ISD::SETEQ,
/* 61742*/            OPC_MoveParent,
/* 61743*/            OPC_MoveParent,
/* 61744*/            OPC_RecordChild1, // #1 = $mask
/* 61745*/            OPC_CheckType, MVT::v32i1,
/* 61747*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61749*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 61752*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 61760*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #4
/* 61766*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61769*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 61778*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #7
/* 61784*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61787*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 61796*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61805*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 61808*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK32:{ *:[v32i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTNMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 61816*/          0, /*End of Scope*/
/* 61817*/        /*Scope*/ 45|128,1/*173*/, /*->61992*/
/* 61819*/          OPC_CheckChild0Type, MVT::v16i8,
/* 61821*/          OPC_MoveChild1,
/* 61822*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 61825*/          OPC_MoveChild0,
/* 61826*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 61829*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 61831*/          OPC_CheckType, MVT::v4i32,
/* 61833*/          OPC_MoveParent,
/* 61834*/          OPC_MoveParent,
/* 61835*/          OPC_MoveChild2,
/* 61836*/          OPC_Scope, 76, /*->61914*/ // 2 children in Scope
/* 61838*/            OPC_CheckCondCode, ISD::SETNE,
/* 61840*/            OPC_MoveParent,
/* 61841*/            OPC_MoveParent,
/* 61842*/            OPC_RecordChild1, // #1 = $mask
/* 61843*/            OPC_CheckType, MVT::v16i1,
/* 61845*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61847*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 61850*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 61858*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #4
/* 61864*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61867*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 61876*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #7
/* 61882*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61885*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 61894*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61903*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 61906*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 61914*/          /*Scope*/ 76, /*->61991*/
/* 61915*/            OPC_CheckCondCode, ISD::SETEQ,
/* 61917*/            OPC_MoveParent,
/* 61918*/            OPC_MoveParent,
/* 61919*/            OPC_RecordChild1, // #1 = $mask
/* 61920*/            OPC_CheckType, MVT::v16i1,
/* 61922*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61924*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 61927*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 61935*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #4
/* 61941*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61944*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 61953*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #7
/* 61959*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61962*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 61971*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrrk), 0,
                          MVT::v64i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 61980*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 61983*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 61991*/          0, /*End of Scope*/
/* 61992*/        /*Scope*/ 45|128,1/*173*/, /*->62167*/
/* 61994*/          OPC_CheckChild0Type, MVT::v16i16,
/* 61996*/          OPC_MoveChild1,
/* 61997*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 62000*/          OPC_MoveChild0,
/* 62001*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 62004*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 62006*/          OPC_CheckType, MVT::v8i32,
/* 62008*/          OPC_MoveParent,
/* 62009*/          OPC_MoveParent,
/* 62010*/          OPC_MoveChild2,
/* 62011*/          OPC_Scope, 76, /*->62089*/ // 2 children in Scope
/* 62013*/            OPC_CheckCondCode, ISD::SETNE,
/* 62015*/            OPC_MoveParent,
/* 62016*/            OPC_MoveParent,
/* 62017*/            OPC_RecordChild1, // #1 = $mask
/* 62018*/            OPC_CheckType, MVT::v16i1,
/* 62020*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 62022*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 62025*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 62033*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #4
/* 62039*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 62042*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 62051*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #7
/* 62057*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 62060*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 62069*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 62078*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 62081*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 62089*/          /*Scope*/ 76, /*->62166*/
/* 62090*/            OPC_CheckCondCode, ISD::SETEQ,
/* 62092*/            OPC_MoveParent,
/* 62093*/            OPC_MoveParent,
/* 62094*/            OPC_RecordChild1, // #1 = $mask
/* 62095*/            OPC_CheckType, MVT::v16i1,
/* 62097*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 62099*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 62102*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 62110*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #4
/* 62116*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 62119*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 62128*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #7
/* 62134*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 62137*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 62146*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 62155*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 62158*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 62166*/          0, /*End of Scope*/
/* 62167*/        /*Scope*/ 45|128,1/*173*/, /*->62342*/
/* 62169*/          OPC_CheckChild0Type, MVT::v8i16,
/* 62171*/          OPC_MoveChild1,
/* 62172*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 62175*/          OPC_MoveChild0,
/* 62176*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 62179*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 62181*/          OPC_CheckType, MVT::v4i32,
/* 62183*/          OPC_MoveParent,
/* 62184*/          OPC_MoveParent,
/* 62185*/          OPC_MoveChild2,
/* 62186*/          OPC_Scope, 76, /*->62264*/ // 2 children in Scope
/* 62188*/            OPC_CheckCondCode, ISD::SETNE,
/* 62190*/            OPC_MoveParent,
/* 62191*/            OPC_MoveParent,
/* 62192*/            OPC_RecordChild1, // #1 = $mask
/* 62193*/            OPC_CheckType, MVT::v8i1,
/* 62195*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 62197*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 62200*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 62208*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #4
/* 62214*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 62217*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 62226*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #7
/* 62232*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 62235*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 62244*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 62253*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 62256*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 62264*/          /*Scope*/ 76, /*->62341*/
/* 62265*/            OPC_CheckCondCode, ISD::SETEQ,
/* 62267*/            OPC_MoveParent,
/* 62268*/            OPC_MoveParent,
/* 62269*/            OPC_RecordChild1, // #1 = $mask
/* 62270*/            OPC_CheckType, MVT::v8i1,
/* 62272*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 62274*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 62277*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 62285*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #4
/* 62291*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 62294*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 62303*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #7
/* 62309*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 62312*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 62321*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrrk), 0,
                          MVT::v32i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 62330*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 62333*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 62341*/          0, /*End of Scope*/
/* 62342*/        /*Scope*/ 45|128,1/*173*/, /*->62517*/
/* 62344*/          OPC_CheckChild0Type, MVT::v4i64,
/* 62346*/          OPC_MoveChild1,
/* 62347*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 62350*/          OPC_MoveChild0,
/* 62351*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 62354*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 62356*/          OPC_CheckType, MVT::v8i32,
/* 62358*/          OPC_MoveParent,
/* 62359*/          OPC_MoveParent,
/* 62360*/          OPC_MoveChild2,
/* 62361*/          OPC_Scope, 76, /*->62439*/ // 2 children in Scope
/* 62363*/            OPC_CheckCondCode, ISD::SETNE,
/* 62365*/            OPC_MoveParent,
/* 62366*/            OPC_MoveParent,
/* 62367*/            OPC_RecordChild1, // #1 = $mask
/* 62368*/            OPC_CheckType, MVT::v4i1,
/* 62370*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 62372*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 62375*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 62383*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #4
/* 62389*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 62392*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 62401*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #7
/* 62407*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 62410*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 62419*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 62428*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 62431*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 62439*/          /*Scope*/ 76, /*->62516*/
/* 62440*/            OPC_CheckCondCode, ISD::SETEQ,
/* 62442*/            OPC_MoveParent,
/* 62443*/            OPC_MoveParent,
/* 62444*/            OPC_RecordChild1, // #1 = $mask
/* 62445*/            OPC_CheckType, MVT::v4i1,
/* 62447*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 62449*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 62452*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 62460*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #4
/* 62466*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 62469*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 62478*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #7
/* 62484*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 62487*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 62496*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 62505*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 62508*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 62516*/          0, /*End of Scope*/
/* 62517*/        /*Scope*/ 45|128,1/*173*/, /*->62692*/
/* 62519*/          OPC_CheckChild0Type, MVT::v2i64,
/* 62521*/          OPC_MoveChild1,
/* 62522*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 62525*/          OPC_MoveChild0,
/* 62526*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 62529*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 62531*/          OPC_CheckType, MVT::v4i32,
/* 62533*/          OPC_MoveParent,
/* 62534*/          OPC_MoveParent,
/* 62535*/          OPC_MoveChild2,
/* 62536*/          OPC_Scope, 76, /*->62614*/ // 2 children in Scope
/* 62538*/            OPC_CheckCondCode, ISD::SETNE,
/* 62540*/            OPC_MoveParent,
/* 62541*/            OPC_MoveParent,
/* 62542*/            OPC_RecordChild1, // #1 = $mask
/* 62543*/            OPC_CheckType, MVT::v2i1,
/* 62545*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 62547*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 62550*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 62558*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #4
/* 62564*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 62567*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 62576*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #7
/* 62582*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 62585*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 62594*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 62603*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 62606*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }), VK2:{ *:[v2i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 62614*/          /*Scope*/ 76, /*->62691*/
/* 62615*/            OPC_CheckCondCode, ISD::SETEQ,
/* 62617*/            OPC_MoveParent,
/* 62618*/            OPC_MoveParent,
/* 62619*/            OPC_RecordChild1, // #1 = $mask
/* 62620*/            OPC_CheckType, MVT::v2i1,
/* 62622*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 62624*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 62627*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 62635*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #4
/* 62641*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 62644*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 62653*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #7
/* 62659*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 62662*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 62671*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 62680*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 62683*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }), VK2:{ *:[v2i1] }:$mask) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTNMQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 62691*/          0, /*End of Scope*/
/* 62692*/        0, /*End of Scope*/
/* 62693*/      /*SwitchOpcode*/ 57, TARGET_VAL(ISD::XOR),// ->62753
/* 62696*/        OPC_RecordChild0, // #0 = $src1
/* 62697*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 62708*/        OPC_MoveParent,
/* 62709*/        OPC_RecordChild1, // #1 = $src2
/* 62710*/        OPC_CheckType, MVT::v1i1,
/* 62712*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 62715*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 62723*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 62726*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 62734*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 62742*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 62745*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i1, 2/*#Ops*/, 6, 7, 
                  // Src: (and:{ *:[v1i1] } (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, -1:{ *:[v1i1] }), VK1:{ *:[v1i1] }:$src2) - Complexity = 11
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 62753*/      0, // EndSwitchOpcode
/* 62754*/    /*Scope*/ 61, /*->62816*/
/* 62755*/      OPC_RecordChild0, // #0 = $src2
/* 62756*/      OPC_MoveChild1,
/* 62757*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 62760*/      OPC_RecordChild0, // #1 = $src1
/* 62761*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 62772*/      OPC_MoveParent,
/* 62773*/      OPC_CheckType, MVT::v1i1,
/* 62775*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 62778*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 62786*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 62789*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 62797*/      OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 62805*/      OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 62808*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v1i1, 2/*#Ops*/, 6, 7, 
                // Src: (and:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src2, (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, -1:{ *:[v1i1] })) - Complexity = 11
                // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 62816*/    /*Scope*/ 64, /*->62881*/
/* 62817*/      OPC_MoveChild0,
/* 62818*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 62821*/      OPC_RecordChild0, // #0 = $src1
/* 62822*/      OPC_MoveChild1,
/* 62823*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 62826*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 62828*/      OPC_MoveParent,
/* 62829*/      OPC_MoveParent,
/* 62830*/      OPC_RecordChild1, // #1 = $src2
/* 62831*/      OPC_SwitchType /*4 cases */, 10, MVT::v8i1,// ->62844
/* 62834*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 62836*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v8i1] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                  // Dst: (KANDNBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/* 62844*/      /*SwitchType*/ 10, MVT::v16i1,// ->62856
/* 62846*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 62848*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v16i1] } (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>), VK16:{ *:[v16i1] }:$src2) - Complexity = 10
                  // Dst: (KANDNWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/* 62856*/      /*SwitchType*/ 10, MVT::v32i1,// ->62868
/* 62858*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 62860*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v32i1] } (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>), VK32:{ *:[v32i1] }:$src2) - Complexity = 10
                  // Dst: (KANDNDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/* 62868*/      /*SwitchType*/ 10, MVT::v64i1,// ->62880
/* 62870*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 62872*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v64i1] } (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>), VK64:{ *:[v64i1] }:$src2) - Complexity = 10
                  // Dst: (KANDNQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/* 62880*/      0, // EndSwitchType
/* 62881*/    /*Scope*/ 27|128,1/*155*/, /*->63038*/
/* 62883*/      OPC_RecordChild0, // #0 = $mask
/* 62884*/      OPC_MoveChild1,
/* 62885*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 62888*/      OPC_RecordChild0, // #1 = $src
/* 62889*/      OPC_Scope, 48, /*->62939*/ // 3 children in Scope
/* 62891*/        OPC_CheckChild0Type, MVT::v16i32,
/* 62893*/        OPC_MoveChild1,
/* 62894*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 62897*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 62899*/        OPC_MoveParent,
/* 62900*/        OPC_MoveChild2,
/* 62901*/        OPC_Scope, 17, /*->62920*/ // 2 children in Scope
/* 62903*/          OPC_CheckCondCode, ISD::SETNE,
/* 62905*/          OPC_MoveParent,
/* 62906*/          OPC_MoveParent,
/* 62907*/          OPC_CheckType, MVT::v16i1,
/* 62909*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 62911*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 10
                    // Dst: (VPTESTMDZrrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src)
/* 62920*/        /*Scope*/ 17, /*->62938*/
/* 62921*/          OPC_CheckCondCode, ISD::SETEQ,
/* 62923*/          OPC_MoveParent,
/* 62924*/          OPC_MoveParent,
/* 62925*/          OPC_CheckType, MVT::v16i1,
/* 62927*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 62929*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 10
                    // Dst: (VPTESTNMDZrrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src)
/* 62938*/        0, /*End of Scope*/
/* 62939*/      /*Scope*/ 48, /*->62988*/
/* 62940*/        OPC_CheckChild0Type, MVT::v8i32,
/* 62942*/        OPC_MoveChild1,
/* 62943*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 62946*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 62948*/        OPC_MoveParent,
/* 62949*/        OPC_MoveChild2,
/* 62950*/        OPC_Scope, 17, /*->62969*/ // 2 children in Scope
/* 62952*/          OPC_CheckCondCode, ISD::SETNE,
/* 62954*/          OPC_MoveParent,
/* 62955*/          OPC_MoveParent,
/* 62956*/          OPC_CheckType, MVT::v8i1,
/* 62958*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62960*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 10
                    // Dst: (VPTESTMDZ256rrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src)
/* 62969*/        /*Scope*/ 17, /*->62987*/
/* 62970*/          OPC_CheckCondCode, ISD::SETEQ,
/* 62972*/          OPC_MoveParent,
/* 62973*/          OPC_MoveParent,
/* 62974*/          OPC_CheckType, MVT::v8i1,
/* 62976*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62978*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 10
                    // Dst: (VPTESTNMDZ256rrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src)
/* 62987*/        0, /*End of Scope*/
/* 62988*/      /*Scope*/ 48, /*->63037*/
/* 62989*/        OPC_CheckChild0Type, MVT::v4i32,
/* 62991*/        OPC_MoveChild1,
/* 62992*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 62995*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 62997*/        OPC_MoveParent,
/* 62998*/        OPC_MoveChild2,
/* 62999*/        OPC_Scope, 17, /*->63018*/ // 2 children in Scope
/* 63001*/          OPC_CheckCondCode, ISD::SETNE,
/* 63003*/          OPC_MoveParent,
/* 63004*/          OPC_MoveParent,
/* 63005*/          OPC_CheckType, MVT::v4i1,
/* 63007*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 63009*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 10
                    // Dst: (VPTESTMDZ128rrk:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src)
/* 63018*/        /*Scope*/ 17, /*->63036*/
/* 63019*/          OPC_CheckCondCode, ISD::SETEQ,
/* 63021*/          OPC_MoveParent,
/* 63022*/          OPC_MoveParent,
/* 63023*/          OPC_CheckType, MVT::v4i1,
/* 63025*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 63027*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 1, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 10
                    // Dst: (VPTESTNMDZ128rrk:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src)
/* 63036*/        0, /*End of Scope*/
/* 63037*/      0, /*End of Scope*/
/* 63038*/    /*Scope*/ 26, /*->63065*/
/* 63039*/      OPC_MoveChild0,
/* 63040*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 63043*/      OPC_MoveChild0,
/* 63044*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63047*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63049*/      OPC_MoveParent,
/* 63050*/      OPC_RecordChild1, // #0 = $src1
/* 63051*/      OPC_MoveParent,
/* 63052*/      OPC_RecordChild1, // #1 = $src2
/* 63053*/      OPC_CheckType, MVT::v8i1,
/* 63055*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 63057*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNBrr), 0,
                    MVT::v8i1, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v8i1] } (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, VK8:{ *:[v8i1] }:$src1), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                // Dst: (KANDNBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/* 63065*/    /*Scope*/ 51, /*->63117*/
/* 63066*/      OPC_RecordChild0, // #0 = $src2
/* 63067*/      OPC_MoveChild1,
/* 63068*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 63071*/      OPC_Scope, 21, /*->63094*/ // 2 children in Scope
/* 63073*/        OPC_RecordChild0, // #1 = $src1
/* 63074*/        OPC_MoveChild1,
/* 63075*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63078*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63080*/        OPC_MoveParent,
/* 63081*/        OPC_MoveParent,
/* 63082*/        OPC_CheckType, MVT::v8i1,
/* 63084*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 63086*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (KANDNBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/* 63094*/      /*Scope*/ 21, /*->63116*/
/* 63095*/        OPC_MoveChild0,
/* 63096*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63099*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63101*/        OPC_MoveParent,
/* 63102*/        OPC_RecordChild1, // #1 = $src1
/* 63103*/        OPC_MoveParent,
/* 63104*/        OPC_CheckType, MVT::v8i1,
/* 63106*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 63108*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, VK8:{ *:[v8i1] }:$src1)) - Complexity = 10
                  // Dst: (KANDNBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/* 63116*/      0, /*End of Scope*/
/* 63117*/    /*Scope*/ 26, /*->63144*/
/* 63118*/      OPC_MoveChild0,
/* 63119*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 63122*/      OPC_MoveChild0,
/* 63123*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63126*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63128*/      OPC_MoveParent,
/* 63129*/      OPC_RecordChild1, // #0 = $src1
/* 63130*/      OPC_MoveParent,
/* 63131*/      OPC_RecordChild1, // #1 = $src2
/* 63132*/      OPC_CheckType, MVT::v16i1,
/* 63134*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 63136*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v16i1] } (xor:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>, VK16:{ *:[v16i1] }:$src1), VK16:{ *:[v16i1] }:$src2) - Complexity = 10
                // Dst: (KANDNWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/* 63144*/    /*Scope*/ 51, /*->63196*/
/* 63145*/      OPC_RecordChild0, // #0 = $src2
/* 63146*/      OPC_MoveChild1,
/* 63147*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 63150*/      OPC_Scope, 21, /*->63173*/ // 2 children in Scope
/* 63152*/        OPC_RecordChild0, // #1 = $src1
/* 63153*/        OPC_MoveChild1,
/* 63154*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63157*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63159*/        OPC_MoveParent,
/* 63160*/        OPC_MoveParent,
/* 63161*/        OPC_CheckType, MVT::v16i1,
/* 63163*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 63165*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src2, (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (KANDNWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/* 63173*/      /*Scope*/ 21, /*->63195*/
/* 63174*/        OPC_MoveChild0,
/* 63175*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63178*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63180*/        OPC_MoveParent,
/* 63181*/        OPC_RecordChild1, // #1 = $src1
/* 63182*/        OPC_MoveParent,
/* 63183*/        OPC_CheckType, MVT::v16i1,
/* 63185*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 63187*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src2, (xor:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>, VK16:{ *:[v16i1] }:$src1)) - Complexity = 10
                  // Dst: (KANDNWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/* 63195*/      0, /*End of Scope*/
/* 63196*/    /*Scope*/ 26, /*->63223*/
/* 63197*/      OPC_MoveChild0,
/* 63198*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 63201*/      OPC_MoveChild0,
/* 63202*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63205*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63207*/      OPC_MoveParent,
/* 63208*/      OPC_RecordChild1, // #0 = $src1
/* 63209*/      OPC_MoveParent,
/* 63210*/      OPC_RecordChild1, // #1 = $src2
/* 63211*/      OPC_CheckType, MVT::v32i1,
/* 63213*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 63215*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNDrr), 0,
                    MVT::v32i1, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v32i1] } (xor:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>, VK32:{ *:[v32i1] }:$src1), VK32:{ *:[v32i1] }:$src2) - Complexity = 10
                // Dst: (KANDNDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/* 63223*/    /*Scope*/ 51, /*->63275*/
/* 63224*/      OPC_RecordChild0, // #0 = $src2
/* 63225*/      OPC_MoveChild1,
/* 63226*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 63229*/      OPC_Scope, 21, /*->63252*/ // 2 children in Scope
/* 63231*/        OPC_RecordChild0, // #1 = $src1
/* 63232*/        OPC_MoveChild1,
/* 63233*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63236*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63238*/        OPC_MoveParent,
/* 63239*/        OPC_MoveParent,
/* 63240*/        OPC_CheckType, MVT::v32i1,
/* 63242*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 63244*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src2, (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (KANDNDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/* 63252*/      /*Scope*/ 21, /*->63274*/
/* 63253*/        OPC_MoveChild0,
/* 63254*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63257*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63259*/        OPC_MoveParent,
/* 63260*/        OPC_RecordChild1, // #1 = $src1
/* 63261*/        OPC_MoveParent,
/* 63262*/        OPC_CheckType, MVT::v32i1,
/* 63264*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 63266*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src2, (xor:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>, VK32:{ *:[v32i1] }:$src1)) - Complexity = 10
                  // Dst: (KANDNDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/* 63274*/      0, /*End of Scope*/
/* 63275*/    /*Scope*/ 26, /*->63302*/
/* 63276*/      OPC_MoveChild0,
/* 63277*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 63280*/      OPC_MoveChild0,
/* 63281*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63284*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63286*/      OPC_MoveParent,
/* 63287*/      OPC_RecordChild1, // #0 = $src1
/* 63288*/      OPC_MoveParent,
/* 63289*/      OPC_RecordChild1, // #1 = $src2
/* 63290*/      OPC_CheckType, MVT::v64i1,
/* 63292*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 63294*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNQrr), 0,
                    MVT::v64i1, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v64i1] } (xor:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>, VK64:{ *:[v64i1] }:$src1), VK64:{ *:[v64i1] }:$src2) - Complexity = 10
                // Dst: (KANDNQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/* 63302*/    /*Scope*/ 51, /*->63354*/
/* 63303*/      OPC_RecordChild0, // #0 = $src2
/* 63304*/      OPC_MoveChild1,
/* 63305*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 63308*/      OPC_Scope, 21, /*->63331*/ // 2 children in Scope
/* 63310*/        OPC_RecordChild0, // #1 = $src1
/* 63311*/        OPC_MoveChild1,
/* 63312*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63315*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63317*/        OPC_MoveParent,
/* 63318*/        OPC_MoveParent,
/* 63319*/        OPC_CheckType, MVT::v64i1,
/* 63321*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 63323*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src2, (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (KANDNQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/* 63331*/      /*Scope*/ 21, /*->63353*/
/* 63332*/        OPC_MoveChild0,
/* 63333*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63336*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63338*/        OPC_MoveParent,
/* 63339*/        OPC_RecordChild1, // #1 = $src1
/* 63340*/        OPC_MoveParent,
/* 63341*/        OPC_CheckType, MVT::v64i1,
/* 63343*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 63345*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src2, (xor:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>, VK64:{ *:[v64i1] }:$src1)) - Complexity = 10
                  // Dst: (KANDNQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/* 63353*/      0, /*End of Scope*/
/* 63354*/    /*Scope*/ 114|128,2/*370*/, /*->63726*/
/* 63356*/      OPC_MoveChild0,
/* 63357*/      OPC_SwitchOpcode /*2 cases */, 28|128,1/*156*/, TARGET_VAL(ISD::SETCC),// ->63518
/* 63362*/        OPC_RecordChild0, // #0 = $src
/* 63363*/        OPC_Scope, 50, /*->63415*/ // 3 children in Scope
/* 63365*/          OPC_CheckChild0Type, MVT::v16i32,
/* 63367*/          OPC_MoveChild1,
/* 63368*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63371*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 63373*/          OPC_MoveParent,
/* 63374*/          OPC_MoveChild2,
/* 63375*/          OPC_Scope, 18, /*->63395*/ // 2 children in Scope
/* 63377*/            OPC_CheckCondCode, ISD::SETNE,
/* 63379*/            OPC_MoveParent,
/* 63380*/            OPC_MoveParent,
/* 63381*/            OPC_RecordChild1, // #1 = $mask
/* 63382*/            OPC_CheckType, MVT::v16i1,
/* 63384*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 63386*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 1, 0, 0, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 10
                      // Dst: (VPTESTMDZrrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src)
/* 63395*/          /*Scope*/ 18, /*->63414*/
/* 63396*/            OPC_CheckCondCode, ISD::SETEQ,
/* 63398*/            OPC_MoveParent,
/* 63399*/            OPC_MoveParent,
/* 63400*/            OPC_RecordChild1, // #1 = $mask
/* 63401*/            OPC_CheckType, MVT::v16i1,
/* 63403*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 63405*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 1, 0, 0, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 10
                      // Dst: (VPTESTNMDZrrk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src)
/* 63414*/          0, /*End of Scope*/
/* 63415*/        /*Scope*/ 50, /*->63466*/
/* 63416*/          OPC_CheckChild0Type, MVT::v8i32,
/* 63418*/          OPC_MoveChild1,
/* 63419*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63422*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 63424*/          OPC_MoveParent,
/* 63425*/          OPC_MoveChild2,
/* 63426*/          OPC_Scope, 18, /*->63446*/ // 2 children in Scope
/* 63428*/            OPC_CheckCondCode, ISD::SETNE,
/* 63430*/            OPC_MoveParent,
/* 63431*/            OPC_MoveParent,
/* 63432*/            OPC_RecordChild1, // #1 = $mask
/* 63433*/            OPC_CheckType, MVT::v8i1,
/* 63435*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 63437*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 1, 0, 0, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 10
                      // Dst: (VPTESTMDZ256rrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src)
/* 63446*/          /*Scope*/ 18, /*->63465*/
/* 63447*/            OPC_CheckCondCode, ISD::SETEQ,
/* 63449*/            OPC_MoveParent,
/* 63450*/            OPC_MoveParent,
/* 63451*/            OPC_RecordChild1, // #1 = $mask
/* 63452*/            OPC_CheckType, MVT::v8i1,
/* 63454*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 63456*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rrk), 0,
                          MVT::v8i1, 3/*#Ops*/, 1, 0, 0, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 10
                      // Dst: (VPTESTNMDZ256rrk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src)
/* 63465*/          0, /*End of Scope*/
/* 63466*/        /*Scope*/ 50, /*->63517*/
/* 63467*/          OPC_CheckChild0Type, MVT::v4i32,
/* 63469*/          OPC_MoveChild1,
/* 63470*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63473*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 63475*/          OPC_MoveParent,
/* 63476*/          OPC_MoveChild2,
/* 63477*/          OPC_Scope, 18, /*->63497*/ // 2 children in Scope
/* 63479*/            OPC_CheckCondCode, ISD::SETNE,
/* 63481*/            OPC_MoveParent,
/* 63482*/            OPC_MoveParent,
/* 63483*/            OPC_RecordChild1, // #1 = $mask
/* 63484*/            OPC_CheckType, MVT::v4i1,
/* 63486*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 63488*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rrk), 0,
                          MVT::v4i1, 3/*#Ops*/, 1, 0, 0, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 10
                      // Dst: (VPTESTMDZ128rrk:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src)
/* 63497*/          /*Scope*/ 18, /*->63516*/
/* 63498*/            OPC_CheckCondCode, ISD::SETEQ,
/* 63500*/            OPC_MoveParent,
/* 63501*/            OPC_MoveParent,
/* 63502*/            OPC_RecordChild1, // #1 = $mask
/* 63503*/            OPC_CheckType, MVT::v4i1,
/* 63505*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 63507*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rrk), 0,
                          MVT::v4i1, 3/*#Ops*/, 1, 0, 0, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 10
                      // Dst: (VPTESTNMDZ128rrk:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src)
/* 63516*/          0, /*End of Scope*/
/* 63517*/        0, /*End of Scope*/
/* 63518*/      /*SwitchOpcode*/ 75|128,1/*203*/, TARGET_VAL(ISD::XOR),// ->63725
/* 63522*/        OPC_Scope, 15|128,1/*143*/, /*->63668*/ // 2 children in Scope
/* 63525*/          OPC_RecordChild0, // #0 = $src1
/* 63526*/          OPC_MoveChild1,
/* 63527*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63530*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63532*/          OPC_MoveParent,
/* 63533*/          OPC_MoveParent,
/* 63534*/          OPC_RecordChild1, // #1 = $src2
/* 63535*/          OPC_SwitchType /*3 cases */, 43, MVT::v8i1,// ->63581
/* 63538*/            OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/* 63540*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63543*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 63551*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63554*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 63562*/            OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 63570*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 63573*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 6, 7, 
                      // Src: (and:{ *:[v8i1] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/* 63581*/          /*SwitchType*/ 41, MVT::v2i1,// ->63624
/* 63583*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63586*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 63594*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63597*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 63605*/            OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 63613*/            OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 63616*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 6, 7, 
                      // Src: (and:{ *:[v2i1] } (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>), VK2:{ *:[v2i1] }:$src2) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 63624*/          /*SwitchType*/ 41, MVT::v4i1,// ->63667
/* 63626*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63629*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 63637*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63640*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 63648*/            OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 63656*/            OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 63659*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 6, 7, 
                      // Src: (and:{ *:[v4i1] } (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>), VK4:{ *:[v4i1] }:$src2) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 63667*/          0, // EndSwitchType
/* 63668*/        /*Scope*/ 55, /*->63724*/
/* 63669*/          OPC_MoveChild0,
/* 63670*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63673*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63675*/          OPC_MoveParent,
/* 63676*/          OPC_RecordChild1, // #0 = $src1
/* 63677*/          OPC_MoveParent,
/* 63678*/          OPC_RecordChild1, // #1 = $src2
/* 63679*/          OPC_CheckType, MVT::v8i1,
/* 63681*/          OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/* 63683*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63686*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 63694*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63697*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 63705*/          OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 63713*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 63716*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 6, 7, 
                    // Src: (and:{ *:[v8i1] } (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, VK8:{ *:[v8i1] }:$src1), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/* 63724*/        0, /*End of Scope*/
/* 63725*/      0, // EndSwitchOpcode
/* 63726*/    /*Scope*/ 117, /*->63844*/
/* 63727*/      OPC_RecordChild0, // #0 = $src2
/* 63728*/      OPC_MoveChild1,
/* 63729*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 63732*/      OPC_Scope, 54, /*->63788*/ // 2 children in Scope
/* 63734*/        OPC_RecordChild0, // #1 = $src1
/* 63735*/        OPC_MoveChild1,
/* 63736*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63739*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63741*/        OPC_MoveParent,
/* 63742*/        OPC_MoveParent,
/* 63743*/        OPC_CheckType, MVT::v8i1,
/* 63745*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/* 63747*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63750*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 63758*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63761*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63769*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 63777*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 63780*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 6, 7, 
                  // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/* 63788*/      /*Scope*/ 54, /*->63843*/
/* 63789*/        OPC_MoveChild0,
/* 63790*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63793*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63795*/        OPC_MoveParent,
/* 63796*/        OPC_RecordChild1, // #1 = $src1
/* 63797*/        OPC_MoveParent,
/* 63798*/        OPC_CheckType, MVT::v8i1,
/* 63800*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/* 63802*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63805*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 63813*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63816*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63824*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 63832*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 63835*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 6, 7, 
                  // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, VK8:{ *:[v8i1] }:$src1)) - Complexity = 10
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/* 63843*/      0, /*End of Scope*/
/* 63844*/    /*Scope*/ 57, /*->63902*/
/* 63845*/      OPC_MoveChild0,
/* 63846*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 63849*/      OPC_MoveChild0,
/* 63850*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63853*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63855*/      OPC_MoveParent,
/* 63856*/      OPC_RecordChild1, // #0 = $src1
/* 63857*/      OPC_MoveParent,
/* 63858*/      OPC_RecordChild1, // #1 = $src2
/* 63859*/      OPC_CheckType, MVT::v2i1,
/* 63861*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63864*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 63872*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63875*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 63883*/      OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 63891*/      OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 63894*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2i1, 2/*#Ops*/, 6, 7, 
                // Src: (and:{ *:[v2i1] } (xor:{ *:[v2i1] } (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>, VK2:{ *:[v2i1] }:$src1), VK2:{ *:[v2i1] }:$src2) - Complexity = 10
                // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 63902*/    /*Scope*/ 113, /*->64016*/
/* 63903*/      OPC_RecordChild0, // #0 = $src2
/* 63904*/      OPC_MoveChild1,
/* 63905*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 63908*/      OPC_Scope, 52, /*->63962*/ // 2 children in Scope
/* 63910*/        OPC_RecordChild0, // #1 = $src1
/* 63911*/        OPC_MoveChild1,
/* 63912*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63915*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63917*/        OPC_MoveParent,
/* 63918*/        OPC_MoveParent,
/* 63919*/        OPC_CheckType, MVT::v2i1,
/* 63921*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63924*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 63932*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63935*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63943*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 63951*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 63954*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 6, 7, 
                  // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src2, (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 63962*/      /*Scope*/ 52, /*->64015*/
/* 63963*/        OPC_MoveChild0,
/* 63964*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 63967*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 63969*/        OPC_MoveParent,
/* 63970*/        OPC_RecordChild1, // #1 = $src1
/* 63971*/        OPC_MoveParent,
/* 63972*/        OPC_CheckType, MVT::v2i1,
/* 63974*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63977*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 63985*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63988*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63996*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 64004*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 64007*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 6, 7, 
                  // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src2, (xor:{ *:[v2i1] } (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>, VK2:{ *:[v2i1] }:$src1)) - Complexity = 10
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 64015*/      0, /*End of Scope*/
/* 64016*/    /*Scope*/ 57, /*->64074*/
/* 64017*/      OPC_MoveChild0,
/* 64018*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 64021*/      OPC_MoveChild0,
/* 64022*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 64025*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 64027*/      OPC_MoveParent,
/* 64028*/      OPC_RecordChild1, // #0 = $src1
/* 64029*/      OPC_MoveParent,
/* 64030*/      OPC_RecordChild1, // #1 = $src2
/* 64031*/      OPC_CheckType, MVT::v4i1,
/* 64033*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64036*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 64044*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64047*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 64055*/      OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 64063*/      OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 64066*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4i1, 2/*#Ops*/, 6, 7, 
                // Src: (and:{ *:[v4i1] } (xor:{ *:[v4i1] } (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>, VK4:{ *:[v4i1] }:$src1), VK4:{ *:[v4i1] }:$src2) - Complexity = 10
                // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 64074*/    /*Scope*/ 70|128,3/*454*/, /*->64530*/
/* 64076*/      OPC_RecordChild0, // #0 = $src2
/* 64077*/      OPC_MoveChild1,
/* 64078*/      OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::XOR),// ->64190
/* 64082*/        OPC_Scope, 52, /*->64136*/ // 2 children in Scope
/* 64084*/          OPC_RecordChild0, // #1 = $src1
/* 64085*/          OPC_MoveChild1,
/* 64086*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 64089*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 64091*/          OPC_MoveParent,
/* 64092*/          OPC_MoveParent,
/* 64093*/          OPC_CheckType, MVT::v4i1,
/* 64095*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64098*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 64106*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64109*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 64117*/          OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 64125*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 64128*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 6, 7, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src2, (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 64136*/        /*Scope*/ 52, /*->64189*/
/* 64137*/          OPC_MoveChild0,
/* 64138*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 64141*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/* 64143*/          OPC_MoveParent,
/* 64144*/          OPC_RecordChild1, // #1 = $src1
/* 64145*/          OPC_MoveParent,
/* 64146*/          OPC_CheckType, MVT::v4i1,
/* 64148*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64151*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 64159*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64162*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 64170*/          OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 64178*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 64181*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 6, 7, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src2, (xor:{ *:[v4i1] } (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>, VK4:{ *:[v4i1] }:$src1)) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 64189*/        0, /*End of Scope*/
/* 64190*/      /*SwitchOpcode*/ 79|128,2/*335*/, TARGET_VAL(ISD::SETCC),// ->64529
/* 64194*/        OPC_RecordChild0, // #1 = $src
/* 64195*/        OPC_Scope, 36|128,1/*164*/, /*->64362*/ // 2 children in Scope
/* 64198*/          OPC_CheckChild0Type, MVT::v8i32,
/* 64200*/          OPC_MoveChild1,
/* 64201*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 64204*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 64206*/          OPC_MoveParent,
/* 64207*/          OPC_MoveChild2,
/* 64208*/          OPC_Scope, 75, /*->64285*/ // 2 children in Scope
/* 64210*/            OPC_CheckCondCode, ISD::SETNE,
/* 64212*/            OPC_MoveParent,
/* 64213*/            OPC_MoveParent,
/* 64214*/            OPC_CheckType, MVT::v8i1,
/* 64216*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64218*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64221*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 64229*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #4
/* 64235*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64238*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 64247*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #7
/* 64253*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64256*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 64265*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 64274*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 64277*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 64285*/          /*Scope*/ 75, /*->64361*/
/* 64286*/            OPC_CheckCondCode, ISD::SETEQ,
/* 64288*/            OPC_MoveParent,
/* 64289*/            OPC_MoveParent,
/* 64290*/            OPC_CheckType, MVT::v8i1,
/* 64292*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64294*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64297*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 64305*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #4
/* 64311*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64314*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 64323*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #7
/* 64329*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64332*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 64341*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 64350*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 64353*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 64361*/          0, /*End of Scope*/
/* 64362*/        /*Scope*/ 36|128,1/*164*/, /*->64528*/
/* 64364*/          OPC_CheckChild0Type, MVT::v4i32,
/* 64366*/          OPC_MoveChild1,
/* 64367*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 64370*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 64372*/          OPC_MoveParent,
/* 64373*/          OPC_MoveChild2,
/* 64374*/          OPC_Scope, 75, /*->64451*/ // 2 children in Scope
/* 64376*/            OPC_CheckCondCode, ISD::SETNE,
/* 64378*/            OPC_MoveParent,
/* 64379*/            OPC_MoveParent,
/* 64380*/            OPC_CheckType, MVT::v4i1,
/* 64382*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64384*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64387*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 64395*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #4
/* 64401*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64404*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 64413*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #7
/* 64419*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64422*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 64431*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 64440*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 64443*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] })) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 64451*/          /*Scope*/ 75, /*->64527*/
/* 64452*/            OPC_CheckCondCode, ISD::SETEQ,
/* 64454*/            OPC_MoveParent,
/* 64455*/            OPC_MoveParent,
/* 64456*/            OPC_CheckType, MVT::v4i1,
/* 64458*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64460*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64463*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 64471*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #4
/* 64477*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64480*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 64489*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #7
/* 64495*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64498*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 64507*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                          MVT::v16i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 64516*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 64519*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 10, 11, 
                      // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] })) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 64527*/          0, /*End of Scope*/
/* 64528*/        0, /*End of Scope*/
/* 64529*/      0, // EndSwitchOpcode
/* 64530*/    /*Scope*/ 87|128,2/*343*/, /*->64875*/
/* 64532*/      OPC_MoveChild0,
/* 64533*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 64536*/      OPC_RecordChild0, // #0 = $src
/* 64537*/      OPC_Scope, 38|128,1/*166*/, /*->64706*/ // 2 children in Scope
/* 64540*/        OPC_CheckChild0Type, MVT::v8i32,
/* 64542*/        OPC_MoveChild1,
/* 64543*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 64546*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 64548*/        OPC_MoveParent,
/* 64549*/        OPC_MoveChild2,
/* 64550*/        OPC_Scope, 76, /*->64628*/ // 2 children in Scope
/* 64552*/          OPC_CheckCondCode, ISD::SETNE,
/* 64554*/          OPC_MoveParent,
/* 64555*/          OPC_MoveParent,
/* 64556*/          OPC_RecordChild1, // #1 = $mask
/* 64557*/          OPC_CheckType, MVT::v8i1,
/* 64559*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64561*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64564*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 64572*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #4
/* 64578*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64581*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 64590*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #7
/* 64596*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64599*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 64608*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 64617*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 64620*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 64628*/        /*Scope*/ 76, /*->64705*/
/* 64629*/          OPC_CheckCondCode, ISD::SETEQ,
/* 64631*/          OPC_MoveParent,
/* 64632*/          OPC_MoveParent,
/* 64633*/          OPC_RecordChild1, // #1 = $mask
/* 64634*/          OPC_CheckType, MVT::v8i1,
/* 64636*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64638*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64641*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 64649*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #4
/* 64655*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64658*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 64667*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #7
/* 64673*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64676*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 64685*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 64694*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 64697*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 64705*/        0, /*End of Scope*/
/* 64706*/      /*Scope*/ 38|128,1/*166*/, /*->64874*/
/* 64708*/        OPC_CheckChild0Type, MVT::v4i32,
/* 64710*/        OPC_MoveChild1,
/* 64711*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 64714*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/* 64716*/        OPC_MoveParent,
/* 64717*/        OPC_MoveChild2,
/* 64718*/        OPC_Scope, 76, /*->64796*/ // 2 children in Scope
/* 64720*/          OPC_CheckCondCode, ISD::SETNE,
/* 64722*/          OPC_MoveParent,
/* 64723*/          OPC_MoveParent,
/* 64724*/          OPC_RecordChild1, // #1 = $mask
/* 64725*/          OPC_CheckType, MVT::v4i1,
/* 64727*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64729*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64732*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 64740*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #4
/* 64746*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64749*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 64758*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #7
/* 64764*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64767*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 64776*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 64785*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 64788*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 64796*/        /*Scope*/ 76, /*->64873*/
/* 64797*/          OPC_CheckCondCode, ISD::SETEQ,
/* 64799*/          OPC_MoveParent,
/* 64800*/          OPC_MoveParent,
/* 64801*/          OPC_RecordChild1, // #1 = $mask
/* 64802*/          OPC_CheckType, MVT::v4i1,
/* 64804*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64806*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64809*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 64817*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #4
/* 64823*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64826*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 64835*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #7
/* 64841*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64844*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/* 64853*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 3, 6, 9,  // Results = #10
/* 64862*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 64865*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 10, 11, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 64873*/        0, /*End of Scope*/
/* 64874*/      0, /*End of Scope*/
/* 64875*/    /*Scope*/ 54|128,3/*438*/, /*->65315*/
/* 64877*/      OPC_RecordChild0, // #0 = $mask
/* 64878*/      OPC_MoveChild1,
/* 64879*/      OPC_SwitchOpcode /*4 cases */, 57, TARGET_VAL(X86ISD::FSETCCM),// ->64940
/* 64883*/        OPC_RecordChild0, // #1 = $src1
/* 64884*/        OPC_Scope, 26, /*->64912*/ // 2 children in Scope
/* 64886*/          OPC_CheckChild0Type, MVT::v4f32,
/* 64888*/          OPC_RecordChild1, // #2 = $src2
/* 64889*/          OPC_RecordChild2, // #3 = $cc
/* 64890*/          OPC_MoveChild2,
/* 64891*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64894*/          OPC_MoveParent,
/* 64895*/          OPC_MoveParent,
/* 64896*/          OPC_CheckType, MVT::v1i1,
/* 64898*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 64900*/          OPC_EmitConvertToTarget, 3,
/* 64902*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrr_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                    // Dst: (VCMPSSZrr_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 64912*/        /*Scope*/ 26, /*->64939*/
/* 64913*/          OPC_CheckChild0Type, MVT::v2f64,
/* 64915*/          OPC_RecordChild1, // #2 = $src2
/* 64916*/          OPC_RecordChild2, // #3 = $cc
/* 64917*/          OPC_MoveChild2,
/* 64918*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64921*/          OPC_MoveParent,
/* 64922*/          OPC_MoveParent,
/* 64923*/          OPC_CheckType, MVT::v1i1,
/* 64925*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 64927*/          OPC_EmitConvertToTarget, 3,
/* 64929*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrr_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                    // Dst: (VCMPSDZrr_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 64939*/        0, /*End of Scope*/
/* 64940*/      /*SwitchOpcode*/ 37|128,1/*165*/, TARGET_VAL(X86ISD::CMPM),// ->65109
/* 64944*/        OPC_RecordChild0, // #1 = $src1
/* 64945*/        OPC_Scope, 26, /*->64973*/ // 6 children in Scope
/* 64947*/          OPC_CheckChild0Type, MVT::v8f64,
/* 64949*/          OPC_RecordChild1, // #2 = $src2
/* 64950*/          OPC_RecordChild2, // #3 = $cc
/* 64951*/          OPC_MoveChild2,
/* 64952*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64955*/          OPC_MoveParent,
/* 64956*/          OPC_MoveParent,
/* 64957*/          OPC_CheckType, MVT::v8i1,
/* 64959*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 64961*/          OPC_EmitConvertToTarget, 3,
/* 64963*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                        MVT::v8i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                    // Dst: (VCMPPDZrrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 64973*/        /*Scope*/ 26, /*->65000*/
/* 64974*/          OPC_CheckChild0Type, MVT::v2f64,
/* 64976*/          OPC_RecordChild1, // #2 = $src2
/* 64977*/          OPC_RecordChild2, // #3 = $cc
/* 64978*/          OPC_MoveChild2,
/* 64979*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64982*/          OPC_MoveParent,
/* 64983*/          OPC_MoveParent,
/* 64984*/          OPC_CheckType, MVT::v2i1,
/* 64986*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 64988*/          OPC_EmitConvertToTarget, 3,
/* 64990*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rrik), 0,
                        MVT::v2i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                    // Dst: (VCMPPDZ128rrik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65000*/        /*Scope*/ 26, /*->65027*/
/* 65001*/          OPC_CheckChild0Type, MVT::v4f64,
/* 65003*/          OPC_RecordChild1, // #2 = $src2
/* 65004*/          OPC_RecordChild2, // #3 = $cc
/* 65005*/          OPC_MoveChild2,
/* 65006*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65009*/          OPC_MoveParent,
/* 65010*/          OPC_MoveParent,
/* 65011*/          OPC_CheckType, MVT::v4i1,
/* 65013*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 65015*/          OPC_EmitConvertToTarget, 3,
/* 65017*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rrik), 0,
                        MVT::v4i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                    // Dst: (VCMPPDZ256rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65027*/        /*Scope*/ 26, /*->65054*/
/* 65028*/          OPC_CheckChild0Type, MVT::v16f32,
/* 65030*/          OPC_RecordChild1, // #2 = $src2
/* 65031*/          OPC_RecordChild2, // #3 = $cc
/* 65032*/          OPC_MoveChild2,
/* 65033*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65036*/          OPC_MoveParent,
/* 65037*/          OPC_MoveParent,
/* 65038*/          OPC_CheckType, MVT::v16i1,
/* 65040*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 65042*/          OPC_EmitConvertToTarget, 3,
/* 65044*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                        MVT::v16i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                    // Dst: (VCMPPSZrrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65054*/        /*Scope*/ 26, /*->65081*/
/* 65055*/          OPC_CheckChild0Type, MVT::v4f32,
/* 65057*/          OPC_RecordChild1, // #2 = $src2
/* 65058*/          OPC_RecordChild2, // #3 = $cc
/* 65059*/          OPC_MoveChild2,
/* 65060*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65063*/          OPC_MoveParent,
/* 65064*/          OPC_MoveParent,
/* 65065*/          OPC_CheckType, MVT::v4i1,
/* 65067*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 65069*/          OPC_EmitConvertToTarget, 3,
/* 65071*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rrik), 0,
                        MVT::v4i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                    // Dst: (VCMPPSZ128rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65081*/        /*Scope*/ 26, /*->65108*/
/* 65082*/          OPC_CheckChild0Type, MVT::v8f32,
/* 65084*/          OPC_RecordChild1, // #2 = $src2
/* 65085*/          OPC_RecordChild2, // #3 = $cc
/* 65086*/          OPC_MoveChild2,
/* 65087*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65090*/          OPC_MoveParent,
/* 65091*/          OPC_MoveParent,
/* 65092*/          OPC_CheckType, MVT::v8i1,
/* 65094*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 65096*/          OPC_EmitConvertToTarget, 3,
/* 65098*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rrik), 0,
                        MVT::v8i1, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                    // Dst: (VCMPPSZ256rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65108*/        0, /*End of Scope*/
/* 65109*/      /*SwitchOpcode*/ 21|128,1/*149*/, TARGET_VAL(X86ISD::VFPCLASS),// ->65262
/* 65113*/        OPC_RecordChild0, // #1 = $src1
/* 65114*/        OPC_Scope, 22, /*->65138*/ // 6 children in Scope
/* 65116*/          OPC_RecordChild1, // #2 = $src2
/* 65117*/          OPC_MoveChild1,
/* 65118*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65121*/          OPC_MoveParent,
/* 65122*/          OPC_MoveParent,
/* 65123*/          OPC_CheckType, MVT::v16i1,
/* 65125*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 65127*/          OPC_EmitConvertToTarget, 2,
/* 65129*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86Vfpclass:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)) - Complexity = 9
                    // Dst: (VFPCLASSPSZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65138*/        /*Scope*/ 24, /*->65163*/
/* 65139*/          OPC_CheckChild0Type, MVT::v4f32,
/* 65141*/          OPC_RecordChild1, // #2 = $src2
/* 65142*/          OPC_MoveChild1,
/* 65143*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65146*/          OPC_MoveParent,
/* 65147*/          OPC_MoveParent,
/* 65148*/          OPC_CheckType, MVT::v4i1,
/* 65150*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 65152*/          OPC_EmitConvertToTarget, 2,
/* 65154*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)) - Complexity = 9
                    // Dst: (VFPCLASSPSZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65163*/        /*Scope*/ 24, /*->65188*/
/* 65164*/          OPC_CheckChild0Type, MVT::v8f32,
/* 65166*/          OPC_RecordChild1, // #2 = $src2
/* 65167*/          OPC_MoveChild1,
/* 65168*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65171*/          OPC_MoveParent,
/* 65172*/          OPC_MoveParent,
/* 65173*/          OPC_CheckType, MVT::v8i1,
/* 65175*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 65177*/          OPC_EmitConvertToTarget, 2,
/* 65179*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)) - Complexity = 9
                    // Dst: (VFPCLASSPSZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65188*/        /*Scope*/ 24, /*->65213*/
/* 65189*/          OPC_CheckChild0Type, MVT::v8f64,
/* 65191*/          OPC_RecordChild1, // #2 = $src2
/* 65192*/          OPC_MoveChild1,
/* 65193*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65196*/          OPC_MoveParent,
/* 65197*/          OPC_MoveParent,
/* 65198*/          OPC_CheckType, MVT::v8i1,
/* 65200*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 65202*/          OPC_EmitConvertToTarget, 2,
/* 65204*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)) - Complexity = 9
                    // Dst: (VFPCLASSPDZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65213*/        /*Scope*/ 22, /*->65236*/
/* 65214*/          OPC_RecordChild1, // #2 = $src2
/* 65215*/          OPC_MoveChild1,
/* 65216*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65219*/          OPC_MoveParent,
/* 65220*/          OPC_MoveParent,
/* 65221*/          OPC_CheckType, MVT::v2i1,
/* 65223*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 65225*/          OPC_EmitConvertToTarget, 2,
/* 65227*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86Vfpclass:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)) - Complexity = 9
                    // Dst: (VFPCLASSPDZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65236*/        /*Scope*/ 24, /*->65261*/
/* 65237*/          OPC_CheckChild0Type, MVT::v4f64,
/* 65239*/          OPC_RecordChild1, // #2 = $src2
/* 65240*/          OPC_MoveChild1,
/* 65241*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65244*/          OPC_MoveParent,
/* 65245*/          OPC_MoveParent,
/* 65246*/          OPC_CheckType, MVT::v4i1,
/* 65248*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 65250*/          OPC_EmitConvertToTarget, 2,
/* 65252*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)) - Complexity = 9
                    // Dst: (VFPCLASSPDZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65261*/        0, /*End of Scope*/
/* 65262*/      /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VFPCLASSS),// ->65314
/* 65265*/        OPC_RecordChild0, // #1 = $src1
/* 65266*/        OPC_Scope, 22, /*->65290*/ // 2 children in Scope
/* 65268*/          OPC_CheckChild0Type, MVT::v4f32,
/* 65270*/          OPC_RecordChild1, // #2 = $src2
/* 65271*/          OPC_MoveChild1,
/* 65272*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65275*/          OPC_MoveParent,
/* 65276*/          OPC_MoveParent,
/* 65277*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 65279*/          OPC_EmitConvertToTarget, 2,
/* 65281*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrrk), 0,
                        MVT::v1i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)) - Complexity = 9
                    // Dst: (VFPCLASSSSZrrk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65290*/        /*Scope*/ 22, /*->65313*/
/* 65291*/          OPC_CheckChild0Type, MVT::v2f64,
/* 65293*/          OPC_RecordChild1, // #2 = $src2
/* 65294*/          OPC_MoveChild1,
/* 65295*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65298*/          OPC_MoveParent,
/* 65299*/          OPC_MoveParent,
/* 65300*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 65302*/          OPC_EmitConvertToTarget, 2,
/* 65304*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrrk), 0,
                        MVT::v1i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)) - Complexity = 9
                    // Dst: (VFPCLASSSDZrrk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65313*/        0, /*End of Scope*/
/* 65314*/      0, // EndSwitchOpcode
/* 65315*/    /*Scope*/ 69|128,3/*453*/, /*->65770*/
/* 65317*/      OPC_MoveChild0,
/* 65318*/      OPC_SwitchOpcode /*4 cases */, 59, TARGET_VAL(X86ISD::FSETCCM),// ->65381
/* 65322*/        OPC_RecordChild0, // #0 = $src1
/* 65323*/        OPC_Scope, 27, /*->65352*/ // 2 children in Scope
/* 65325*/          OPC_CheckChild0Type, MVT::v4f32,
/* 65327*/          OPC_RecordChild1, // #1 = $src2
/* 65328*/          OPC_RecordChild2, // #2 = $cc
/* 65329*/          OPC_MoveChild2,
/* 65330*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65333*/          OPC_MoveParent,
/* 65334*/          OPC_MoveParent,
/* 65335*/          OPC_RecordChild1, // #3 = $mask
/* 65336*/          OPC_CheckType, MVT::v1i1,
/* 65338*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 65340*/          OPC_EmitConvertToTarget, 2,
/* 65342*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrr_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v1i1] } (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc), VK1WM:{ *:[v1i1] }:$mask) - Complexity = 9
                    // Dst: (VCMPSSZrr_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65352*/        /*Scope*/ 27, /*->65380*/
/* 65353*/          OPC_CheckChild0Type, MVT::v2f64,
/* 65355*/          OPC_RecordChild1, // #1 = $src2
/* 65356*/          OPC_RecordChild2, // #2 = $cc
/* 65357*/          OPC_MoveChild2,
/* 65358*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65361*/          OPC_MoveParent,
/* 65362*/          OPC_MoveParent,
/* 65363*/          OPC_RecordChild1, // #3 = $mask
/* 65364*/          OPC_CheckType, MVT::v1i1,
/* 65366*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 65368*/          OPC_EmitConvertToTarget, 2,
/* 65370*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrr_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v1i1] } (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc), VK1WM:{ *:[v1i1] }:$mask) - Complexity = 9
                    // Dst: (VCMPSDZrr_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65380*/        0, /*End of Scope*/
/* 65381*/      /*SwitchOpcode*/ 43|128,1/*171*/, TARGET_VAL(X86ISD::CMPM),// ->65556
/* 65385*/        OPC_RecordChild0, // #0 = $src1
/* 65386*/        OPC_Scope, 27, /*->65415*/ // 6 children in Scope
/* 65388*/          OPC_CheckChild0Type, MVT::v8f64,
/* 65390*/          OPC_RecordChild1, // #1 = $src2
/* 65391*/          OPC_RecordChild2, // #2 = $cc
/* 65392*/          OPC_MoveChild2,
/* 65393*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65396*/          OPC_MoveParent,
/* 65397*/          OPC_MoveParent,
/* 65398*/          OPC_RecordChild1, // #3 = $mask
/* 65399*/          OPC_CheckType, MVT::v8i1,
/* 65401*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 65403*/          OPC_EmitConvertToTarget, 2,
/* 65405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                        MVT::v8i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 9
                    // Dst: (VCMPPDZrrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65415*/        /*Scope*/ 27, /*->65443*/
/* 65416*/          OPC_CheckChild0Type, MVT::v2f64,
/* 65418*/          OPC_RecordChild1, // #1 = $src2
/* 65419*/          OPC_RecordChild2, // #2 = $cc
/* 65420*/          OPC_MoveChild2,
/* 65421*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65424*/          OPC_MoveParent,
/* 65425*/          OPC_MoveParent,
/* 65426*/          OPC_RecordChild1, // #3 = $mask
/* 65427*/          OPC_CheckType, MVT::v2i1,
/* 65429*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 65431*/          OPC_EmitConvertToTarget, 2,
/* 65433*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rrik), 0,
                        MVT::v2i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 9
                    // Dst: (VCMPPDZ128rrik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65443*/        /*Scope*/ 27, /*->65471*/
/* 65444*/          OPC_CheckChild0Type, MVT::v4f64,
/* 65446*/          OPC_RecordChild1, // #1 = $src2
/* 65447*/          OPC_RecordChild2, // #2 = $cc
/* 65448*/          OPC_MoveChild2,
/* 65449*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65452*/          OPC_MoveParent,
/* 65453*/          OPC_MoveParent,
/* 65454*/          OPC_RecordChild1, // #3 = $mask
/* 65455*/          OPC_CheckType, MVT::v4i1,
/* 65457*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 65459*/          OPC_EmitConvertToTarget, 2,
/* 65461*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rrik), 0,
                        MVT::v4i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$cc), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 9
                    // Dst: (VCMPPDZ256rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65471*/        /*Scope*/ 27, /*->65499*/
/* 65472*/          OPC_CheckChild0Type, MVT::v16f32,
/* 65474*/          OPC_RecordChild1, // #1 = $src2
/* 65475*/          OPC_RecordChild2, // #2 = $cc
/* 65476*/          OPC_MoveChild2,
/* 65477*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65480*/          OPC_MoveParent,
/* 65481*/          OPC_MoveParent,
/* 65482*/          OPC_RecordChild1, // #3 = $mask
/* 65483*/          OPC_CheckType, MVT::v16i1,
/* 65485*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 65487*/          OPC_EmitConvertToTarget, 2,
/* 65489*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                        MVT::v16i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v16i1] } (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 9
                    // Dst: (VCMPPSZrrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65499*/        /*Scope*/ 27, /*->65527*/
/* 65500*/          OPC_CheckChild0Type, MVT::v4f32,
/* 65502*/          OPC_RecordChild1, // #1 = $src2
/* 65503*/          OPC_RecordChild2, // #2 = $cc
/* 65504*/          OPC_MoveChild2,
/* 65505*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65508*/          OPC_MoveParent,
/* 65509*/          OPC_MoveParent,
/* 65510*/          OPC_RecordChild1, // #3 = $mask
/* 65511*/          OPC_CheckType, MVT::v4i1,
/* 65513*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 65515*/          OPC_EmitConvertToTarget, 2,
/* 65517*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rrik), 0,
                        MVT::v4i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 9
                    // Dst: (VCMPPSZ128rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65527*/        /*Scope*/ 27, /*->65555*/
/* 65528*/          OPC_CheckChild0Type, MVT::v8f32,
/* 65530*/          OPC_RecordChild1, // #1 = $src2
/* 65531*/          OPC_RecordChild2, // #2 = $cc
/* 65532*/          OPC_MoveChild2,
/* 65533*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65536*/          OPC_MoveParent,
/* 65537*/          OPC_MoveParent,
/* 65538*/          OPC_RecordChild1, // #3 = $mask
/* 65539*/          OPC_CheckType, MVT::v8i1,
/* 65541*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 65543*/          OPC_EmitConvertToTarget, 2,
/* 65545*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rrik), 0,
                        MVT::v8i1, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$cc), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 9
                    // Dst: (VCMPPSZ256rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$cc)
/* 65555*/        0, /*End of Scope*/
/* 65556*/      /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(X86ISD::VFPCLASS),// ->65715
/* 65560*/        OPC_RecordChild0, // #0 = $src1
/* 65561*/        OPC_Scope, 23, /*->65586*/ // 6 children in Scope
/* 65563*/          OPC_RecordChild1, // #1 = $src2
/* 65564*/          OPC_MoveChild1,
/* 65565*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65568*/          OPC_MoveParent,
/* 65569*/          OPC_MoveParent,
/* 65570*/          OPC_RecordChild1, // #2 = $mask
/* 65571*/          OPC_CheckType, MVT::v16i1,
/* 65573*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 65575*/          OPC_EmitConvertToTarget, 1,
/* 65577*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (and:{ *:[v16i1] } (X86Vfpclass:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 9
                    // Dst: (VFPCLASSPSZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65586*/        /*Scope*/ 25, /*->65612*/
/* 65587*/          OPC_CheckChild0Type, MVT::v4f32,
/* 65589*/          OPC_RecordChild1, // #1 = $src2
/* 65590*/          OPC_MoveChild1,
/* 65591*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65594*/          OPC_MoveParent,
/* 65595*/          OPC_MoveParent,
/* 65596*/          OPC_RecordChild1, // #2 = $mask
/* 65597*/          OPC_CheckType, MVT::v4i1,
/* 65599*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 65601*/          OPC_EmitConvertToTarget, 1,
/* 65603*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 9
                    // Dst: (VFPCLASSPSZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65612*/        /*Scope*/ 25, /*->65638*/
/* 65613*/          OPC_CheckChild0Type, MVT::v8f32,
/* 65615*/          OPC_RecordChild1, // #1 = $src2
/* 65616*/          OPC_MoveChild1,
/* 65617*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65620*/          OPC_MoveParent,
/* 65621*/          OPC_MoveParent,
/* 65622*/          OPC_RecordChild1, // #2 = $mask
/* 65623*/          OPC_CheckType, MVT::v8i1,
/* 65625*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 65627*/          OPC_EmitConvertToTarget, 1,
/* 65629*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 9
                    // Dst: (VFPCLASSPSZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65638*/        /*Scope*/ 25, /*->65664*/
/* 65639*/          OPC_CheckChild0Type, MVT::v8f64,
/* 65641*/          OPC_RecordChild1, // #1 = $src2
/* 65642*/          OPC_MoveChild1,
/* 65643*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65646*/          OPC_MoveParent,
/* 65647*/          OPC_MoveParent,
/* 65648*/          OPC_RecordChild1, // #2 = $mask
/* 65649*/          OPC_CheckType, MVT::v8i1,
/* 65651*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 65653*/          OPC_EmitConvertToTarget, 1,
/* 65655*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 9
                    // Dst: (VFPCLASSPDZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65664*/        /*Scope*/ 23, /*->65688*/
/* 65665*/          OPC_RecordChild1, // #1 = $src2
/* 65666*/          OPC_MoveChild1,
/* 65667*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65670*/          OPC_MoveParent,
/* 65671*/          OPC_MoveParent,
/* 65672*/          OPC_RecordChild1, // #2 = $mask
/* 65673*/          OPC_CheckType, MVT::v2i1,
/* 65675*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 65677*/          OPC_EmitConvertToTarget, 1,
/* 65679*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (and:{ *:[v2i1] } (X86Vfpclass:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 9
                    // Dst: (VFPCLASSPDZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65688*/        /*Scope*/ 25, /*->65714*/
/* 65689*/          OPC_CheckChild0Type, MVT::v4f64,
/* 65691*/          OPC_RecordChild1, // #1 = $src2
/* 65692*/          OPC_MoveChild1,
/* 65693*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65696*/          OPC_MoveParent,
/* 65697*/          OPC_MoveParent,
/* 65698*/          OPC_RecordChild1, // #2 = $mask
/* 65699*/          OPC_CheckType, MVT::v4i1,
/* 65701*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 65703*/          OPC_EmitConvertToTarget, 1,
/* 65705*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 9
                    // Dst: (VFPCLASSPDZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65714*/        0, /*End of Scope*/
/* 65715*/      /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::VFPCLASSS),// ->65769
/* 65718*/        OPC_RecordChild0, // #0 = $src1
/* 65719*/        OPC_Scope, 23, /*->65744*/ // 2 children in Scope
/* 65721*/          OPC_CheckChild0Type, MVT::v4f32,
/* 65723*/          OPC_RecordChild1, // #1 = $src2
/* 65724*/          OPC_MoveChild1,
/* 65725*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65728*/          OPC_MoveParent,
/* 65729*/          OPC_MoveParent,
/* 65730*/          OPC_RecordChild1, // #2 = $mask
/* 65731*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 65733*/          OPC_EmitConvertToTarget, 1,
/* 65735*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrrk), 0,
                        MVT::v1i1, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (and:{ *:[v1i1] } (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2), VK1WM:{ *:[v1i1] }:$mask) - Complexity = 9
                    // Dst: (VFPCLASSSSZrrk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65744*/        /*Scope*/ 23, /*->65768*/
/* 65745*/          OPC_CheckChild0Type, MVT::v2f64,
/* 65747*/          OPC_RecordChild1, // #1 = $src2
/* 65748*/          OPC_MoveChild1,
/* 65749*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65752*/          OPC_MoveParent,
/* 65753*/          OPC_MoveParent,
/* 65754*/          OPC_RecordChild1, // #2 = $mask
/* 65755*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 65757*/          OPC_EmitConvertToTarget, 1,
/* 65759*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrrk), 0,
                        MVT::v1i1, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (and:{ *:[v1i1] } (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2), VK1WM:{ *:[v1i1] }:$mask) - Complexity = 9
                    // Dst: (VFPCLASSSDZrrk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/* 65768*/        0, /*End of Scope*/
/* 65769*/      0, // EndSwitchOpcode
/* 65770*/    /*Scope*/ 92|128,2/*348*/, /*->66120*/
/* 65772*/      OPC_RecordChild0, // #0 = $mask
/* 65773*/      OPC_MoveChild1,
/* 65774*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::CMPM),
/* 65777*/      OPC_RecordChild0, // #1 = $src1
/* 65778*/      OPC_Scope, 84, /*->65864*/ // 4 children in Scope
/* 65780*/        OPC_CheckChild0Type, MVT::v8f32,
/* 65782*/        OPC_RecordChild1, // #2 = $src2
/* 65783*/        OPC_RecordChild2, // #3 = $cc
/* 65784*/        OPC_MoveChild2,
/* 65785*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65788*/        OPC_MoveParent,
/* 65789*/        OPC_MoveParent,
/* 65790*/        OPC_CheckType, MVT::v8i1,
/* 65792*/        OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 65794*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 65797*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 65805*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #6
/* 65811*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 65814*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65823*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #9
/* 65829*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 65832*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65841*/        OPC_EmitConvertToTarget, 3,
/* 65843*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                      MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65853*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 65856*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 13, 14, 
                  // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VCMPPSZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src2, sub_ymm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK8:{ *:[i32] })
/* 65864*/      /*Scope*/ 84, /*->65949*/
/* 65865*/        OPC_CheckChild0Type, MVT::v4f32,
/* 65867*/        OPC_RecordChild1, // #2 = $src2
/* 65868*/        OPC_RecordChild2, // #3 = $cc
/* 65869*/        OPC_MoveChild2,
/* 65870*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65873*/        OPC_MoveParent,
/* 65874*/        OPC_MoveParent,
/* 65875*/        OPC_CheckType, MVT::v4i1,
/* 65877*/        OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 65879*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 65882*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 65890*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #6
/* 65896*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65899*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65908*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #9
/* 65914*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65917*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65926*/        OPC_EmitConvertToTarget, 3,
/* 65928*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                      MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65938*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 65941*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPSZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src2, sub_xmm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 65949*/      /*Scope*/ 84, /*->66034*/
/* 65950*/        OPC_CheckChild0Type, MVT::v4f64,
/* 65952*/        OPC_RecordChild1, // #2 = $src2
/* 65953*/        OPC_RecordChild2, // #3 = $cc
/* 65954*/        OPC_MoveChild2,
/* 65955*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 65958*/        OPC_MoveParent,
/* 65959*/        OPC_MoveParent,
/* 65960*/        OPC_CheckType, MVT::v4i1,
/* 65962*/        OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 65964*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 65967*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 65975*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #6
/* 65981*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 65984*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65993*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #9
/* 65999*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 66002*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 66011*/        OPC_EmitConvertToTarget, 3,
/* 66013*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                      MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 66023*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 66026*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPDZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src2, sub_ymm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 66034*/      /*Scope*/ 84, /*->66119*/
/* 66035*/        OPC_CheckChild0Type, MVT::v2f64,
/* 66037*/        OPC_RecordChild1, // #2 = $src2
/* 66038*/        OPC_RecordChild2, // #3 = $cc
/* 66039*/        OPC_MoveChild2,
/* 66040*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66043*/        OPC_MoveParent,
/* 66044*/        OPC_MoveParent,
/* 66045*/        OPC_CheckType, MVT::v2i1,
/* 66047*/        OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 66049*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 66052*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 66060*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #6
/* 66066*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 66069*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 66078*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #9
/* 66084*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 66087*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 66096*/        OPC_EmitConvertToTarget, 3,
/* 66098*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                      MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 66108*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 66111*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 13, 14, 
                  // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)) - Complexity = 9
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VCMPPDZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src2, sub_xmm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK2:{ *:[i32] })
/* 66119*/      0, /*End of Scope*/
/* 66120*/    /*Scope*/ 95|128,2/*351*/, /*->66473*/
/* 66122*/      OPC_MoveChild0,
/* 66123*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::CMPM),
/* 66126*/      OPC_RecordChild0, // #0 = $src1
/* 66127*/      OPC_Scope, 85, /*->66214*/ // 4 children in Scope
/* 66129*/        OPC_CheckChild0Type, MVT::v8f32,
/* 66131*/        OPC_RecordChild1, // #1 = $src2
/* 66132*/        OPC_RecordChild2, // #2 = $cc
/* 66133*/        OPC_MoveChild2,
/* 66134*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66137*/        OPC_MoveParent,
/* 66138*/        OPC_MoveParent,
/* 66139*/        OPC_RecordChild1, // #3 = $mask
/* 66140*/        OPC_CheckType, MVT::v8i1,
/* 66142*/        OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 66144*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 66147*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 66155*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #6
/* 66161*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 66164*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 6, 0, 7,  // Results = #8
/* 66173*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #9
/* 66179*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 66182*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 66191*/        OPC_EmitConvertToTarget, 2,
/* 66193*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                      MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 66203*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 66206*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 13, 14, 
                  // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$cc), VK8:{ *:[v8i1] }:$mask) - Complexity = 9
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VCMPPSZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src2, sub_ymm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK8:{ *:[i32] })
/* 66214*/      /*Scope*/ 85, /*->66300*/
/* 66215*/        OPC_CheckChild0Type, MVT::v4f32,
/* 66217*/        OPC_RecordChild1, // #1 = $src2
/* 66218*/        OPC_RecordChild2, // #2 = $cc
/* 66219*/        OPC_MoveChild2,
/* 66220*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66223*/        OPC_MoveParent,
/* 66224*/        OPC_MoveParent,
/* 66225*/        OPC_RecordChild1, // #3 = $mask
/* 66226*/        OPC_CheckType, MVT::v4i1,
/* 66228*/        OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 66230*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 66233*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 66241*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #6
/* 66247*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 66250*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 6, 0, 7,  // Results = #8
/* 66259*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #9
/* 66265*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 66268*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 66277*/        OPC_EmitConvertToTarget, 2,
/* 66279*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                      MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 66289*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 66292*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc), VK4:{ *:[v4i1] }:$mask) - Complexity = 9
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPSZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src2, sub_xmm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 66300*/      /*Scope*/ 85, /*->66386*/
/* 66301*/        OPC_CheckChild0Type, MVT::v4f64,
/* 66303*/        OPC_RecordChild1, // #1 = $src2
/* 66304*/        OPC_RecordChild2, // #2 = $cc
/* 66305*/        OPC_MoveChild2,
/* 66306*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66309*/        OPC_MoveParent,
/* 66310*/        OPC_MoveParent,
/* 66311*/        OPC_RecordChild1, // #3 = $mask
/* 66312*/        OPC_CheckType, MVT::v4i1,
/* 66314*/        OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 66316*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 66319*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 66327*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #6
/* 66333*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 66336*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 6, 0, 7,  // Results = #8
/* 66345*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #9
/* 66351*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 66354*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 66363*/        OPC_EmitConvertToTarget, 2,
/* 66365*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                      MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 66375*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 66378*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$cc), VK4:{ *:[v4i1] }:$mask) - Complexity = 9
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPDZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src2, sub_ymm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 66386*/      /*Scope*/ 85, /*->66472*/
/* 66387*/        OPC_CheckChild0Type, MVT::v2f64,
/* 66389*/        OPC_RecordChild1, // #1 = $src2
/* 66390*/        OPC_RecordChild2, // #2 = $cc
/* 66391*/        OPC_MoveChild2,
/* 66392*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66395*/        OPC_MoveParent,
/* 66396*/        OPC_MoveParent,
/* 66397*/        OPC_RecordChild1, // #3 = $mask
/* 66398*/        OPC_CheckType, MVT::v2i1,
/* 66400*/        OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 66402*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 66405*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 66413*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #6
/* 66419*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 66422*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 6, 0, 7,  // Results = #8
/* 66431*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #9
/* 66437*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 66440*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 66449*/        OPC_EmitConvertToTarget, 2,
/* 66451*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                      MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 66461*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 66464*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 13, 14, 
                  // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc), VK2:{ *:[v2i1] }:$mask) - Complexity = 9
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VCMPPDZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src2, sub_xmm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK2:{ *:[i32] })
/* 66472*/      0, /*End of Scope*/
/* 66473*/    /*Scope*/ 12|128,4/*524*/, /*->66999*/
/* 66475*/      OPC_RecordChild0, // #0 = $mask
/* 66476*/      OPC_MoveChild1,
/* 66477*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 66480*/      OPC_RecordChild0, // #1 = $src1
/* 66481*/      OPC_Scope, 42, /*->66525*/ // 12 children in Scope
/* 66483*/        OPC_CheckChild0Type, MVT::v64i8,
/* 66485*/        OPC_RecordChild1, // #2 = $src2
/* 66486*/        OPC_MoveChild2,
/* 66487*/        OPC_Scope, 17, /*->66506*/ // 2 children in Scope
/* 66489*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66491*/          OPC_MoveParent,
/* 66492*/          OPC_MoveParent,
/* 66493*/          OPC_CheckType, MVT::v64i1,
/* 66495*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 66497*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (X86setcc_commute:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/* 66506*/        /*Scope*/ 17, /*->66524*/
/* 66507*/          OPC_CheckCondCode, ISD::SETGT,
/* 66509*/          OPC_MoveParent,
/* 66510*/          OPC_MoveParent,
/* 66511*/          OPC_CheckType, MVT::v64i1,
/* 66513*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 66515*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/* 66524*/        0, /*End of Scope*/
/* 66525*/      /*Scope*/ 42, /*->66568*/
/* 66526*/        OPC_CheckChild0Type, MVT::v32i8,
/* 66528*/        OPC_RecordChild1, // #2 = $src2
/* 66529*/        OPC_MoveChild2,
/* 66530*/        OPC_Scope, 17, /*->66549*/ // 2 children in Scope
/* 66532*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66534*/          OPC_MoveParent,
/* 66535*/          OPC_MoveParent,
/* 66536*/          OPC_CheckType, MVT::v32i1,
/* 66538*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 66540*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ256rrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (X86setcc_commute:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/* 66549*/        /*Scope*/ 17, /*->66567*/
/* 66550*/          OPC_CheckCondCode, ISD::SETGT,
/* 66552*/          OPC_MoveParent,
/* 66553*/          OPC_MoveParent,
/* 66554*/          OPC_CheckType, MVT::v32i1,
/* 66556*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 66558*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ256rrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/* 66567*/        0, /*End of Scope*/
/* 66568*/      /*Scope*/ 42, /*->66611*/
/* 66569*/        OPC_CheckChild0Type, MVT::v16i8,
/* 66571*/        OPC_RecordChild1, // #2 = $src2
/* 66572*/        OPC_MoveChild2,
/* 66573*/        OPC_Scope, 17, /*->66592*/ // 2 children in Scope
/* 66575*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66577*/          OPC_MoveParent,
/* 66578*/          OPC_MoveParent,
/* 66579*/          OPC_CheckType, MVT::v16i1,
/* 66581*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 66583*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ128rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/* 66592*/        /*Scope*/ 17, /*->66610*/
/* 66593*/          OPC_CheckCondCode, ISD::SETGT,
/* 66595*/          OPC_MoveParent,
/* 66596*/          OPC_MoveParent,
/* 66597*/          OPC_CheckType, MVT::v16i1,
/* 66599*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 66601*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ128rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/* 66610*/        0, /*End of Scope*/
/* 66611*/      /*Scope*/ 42, /*->66654*/
/* 66612*/        OPC_CheckChild0Type, MVT::v32i16,
/* 66614*/        OPC_RecordChild1, // #2 = $src2
/* 66615*/        OPC_MoveChild2,
/* 66616*/        OPC_Scope, 17, /*->66635*/ // 2 children in Scope
/* 66618*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66620*/          OPC_MoveParent,
/* 66621*/          OPC_MoveParent,
/* 66622*/          OPC_CheckType, MVT::v32i1,
/* 66624*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 66626*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (X86setcc_commute:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQWZrrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/* 66635*/        /*Scope*/ 17, /*->66653*/
/* 66636*/          OPC_CheckCondCode, ISD::SETGT,
/* 66638*/          OPC_MoveParent,
/* 66639*/          OPC_MoveParent,
/* 66640*/          OPC_CheckType, MVT::v32i1,
/* 66642*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 66644*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTWZrrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/* 66653*/        0, /*End of Scope*/
/* 66654*/      /*Scope*/ 42, /*->66697*/
/* 66655*/        OPC_CheckChild0Type, MVT::v16i16,
/* 66657*/        OPC_RecordChild1, // #2 = $src2
/* 66658*/        OPC_MoveChild2,
/* 66659*/        OPC_Scope, 17, /*->66678*/ // 2 children in Scope
/* 66661*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66663*/          OPC_MoveParent,
/* 66664*/          OPC_MoveParent,
/* 66665*/          OPC_CheckType, MVT::v16i1,
/* 66667*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 66669*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ256rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQWZ256rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/* 66678*/        /*Scope*/ 17, /*->66696*/
/* 66679*/          OPC_CheckCondCode, ISD::SETGT,
/* 66681*/          OPC_MoveParent,
/* 66682*/          OPC_MoveParent,
/* 66683*/          OPC_CheckType, MVT::v16i1,
/* 66685*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 66687*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ256rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTWZ256rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/* 66696*/        0, /*End of Scope*/
/* 66697*/      /*Scope*/ 42, /*->66740*/
/* 66698*/        OPC_CheckChild0Type, MVT::v8i16,
/* 66700*/        OPC_RecordChild1, // #2 = $src2
/* 66701*/        OPC_MoveChild2,
/* 66702*/        OPC_Scope, 17, /*->66721*/ // 2 children in Scope
/* 66704*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66706*/          OPC_MoveParent,
/* 66707*/          OPC_MoveParent,
/* 66708*/          OPC_CheckType, MVT::v8i1,
/* 66710*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 66712*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ128rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQWZ128rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/* 66721*/        /*Scope*/ 17, /*->66739*/
/* 66722*/          OPC_CheckCondCode, ISD::SETGT,
/* 66724*/          OPC_MoveParent,
/* 66725*/          OPC_MoveParent,
/* 66726*/          OPC_CheckType, MVT::v8i1,
/* 66728*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 66730*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ128rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTWZ128rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/* 66739*/        0, /*End of Scope*/
/* 66740*/      /*Scope*/ 42, /*->66783*/
/* 66741*/        OPC_CheckChild0Type, MVT::v16i32,
/* 66743*/        OPC_RecordChild1, // #2 = $src2
/* 66744*/        OPC_MoveChild2,
/* 66745*/        OPC_Scope, 17, /*->66764*/ // 2 children in Scope
/* 66747*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66749*/          OPC_MoveParent,
/* 66750*/          OPC_MoveParent,
/* 66751*/          OPC_CheckType, MVT::v16i1,
/* 66753*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 66755*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQDZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/* 66764*/        /*Scope*/ 17, /*->66782*/
/* 66765*/          OPC_CheckCondCode, ISD::SETGT,
/* 66767*/          OPC_MoveParent,
/* 66768*/          OPC_MoveParent,
/* 66769*/          OPC_CheckType, MVT::v16i1,
/* 66771*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 66773*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTDZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/* 66782*/        0, /*End of Scope*/
/* 66783*/      /*Scope*/ 42, /*->66826*/
/* 66784*/        OPC_CheckChild0Type, MVT::v8i32,
/* 66786*/        OPC_RecordChild1, // #2 = $src2
/* 66787*/        OPC_MoveChild2,
/* 66788*/        OPC_Scope, 17, /*->66807*/ // 2 children in Scope
/* 66790*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66792*/          OPC_MoveParent,
/* 66793*/          OPC_MoveParent,
/* 66794*/          OPC_CheckType, MVT::v8i1,
/* 66796*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 66798*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQDZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/* 66807*/        /*Scope*/ 17, /*->66825*/
/* 66808*/          OPC_CheckCondCode, ISD::SETGT,
/* 66810*/          OPC_MoveParent,
/* 66811*/          OPC_MoveParent,
/* 66812*/          OPC_CheckType, MVT::v8i1,
/* 66814*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 66816*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ256rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTDZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/* 66825*/        0, /*End of Scope*/
/* 66826*/      /*Scope*/ 42, /*->66869*/
/* 66827*/        OPC_CheckChild0Type, MVT::v4i32,
/* 66829*/        OPC_RecordChild1, // #2 = $src2
/* 66830*/        OPC_MoveChild2,
/* 66831*/        OPC_Scope, 17, /*->66850*/ // 2 children in Scope
/* 66833*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66835*/          OPC_MoveParent,
/* 66836*/          OPC_MoveParent,
/* 66837*/          OPC_CheckType, MVT::v4i1,
/* 66839*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 66841*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQDZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/* 66850*/        /*Scope*/ 17, /*->66868*/
/* 66851*/          OPC_CheckCondCode, ISD::SETGT,
/* 66853*/          OPC_MoveParent,
/* 66854*/          OPC_MoveParent,
/* 66855*/          OPC_CheckType, MVT::v4i1,
/* 66857*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 66859*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ128rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTDZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/* 66868*/        0, /*End of Scope*/
/* 66869*/      /*Scope*/ 42, /*->66912*/
/* 66870*/        OPC_CheckChild0Type, MVT::v8i64,
/* 66872*/        OPC_RecordChild1, // #2 = $src2
/* 66873*/        OPC_MoveChild2,
/* 66874*/        OPC_Scope, 17, /*->66893*/ // 2 children in Scope
/* 66876*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66878*/          OPC_MoveParent,
/* 66879*/          OPC_MoveParent,
/* 66880*/          OPC_CheckType, MVT::v8i1,
/* 66882*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 66884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQQZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 66893*/        /*Scope*/ 17, /*->66911*/
/* 66894*/          OPC_CheckCondCode, ISD::SETGT,
/* 66896*/          OPC_MoveParent,
/* 66897*/          OPC_MoveParent,
/* 66898*/          OPC_CheckType, MVT::v8i1,
/* 66900*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 66902*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTQZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 66911*/        0, /*End of Scope*/
/* 66912*/      /*Scope*/ 42, /*->66955*/
/* 66913*/        OPC_CheckChild0Type, MVT::v4i64,
/* 66915*/        OPC_RecordChild1, // #2 = $src2
/* 66916*/        OPC_MoveChild2,
/* 66917*/        OPC_Scope, 17, /*->66936*/ // 2 children in Scope
/* 66919*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66921*/          OPC_MoveParent,
/* 66922*/          OPC_MoveParent,
/* 66923*/          OPC_CheckType, MVT::v4i1,
/* 66925*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 66927*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQQZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 66936*/        /*Scope*/ 17, /*->66954*/
/* 66937*/          OPC_CheckCondCode, ISD::SETGT,
/* 66939*/          OPC_MoveParent,
/* 66940*/          OPC_MoveParent,
/* 66941*/          OPC_CheckType, MVT::v4i1,
/* 66943*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 66945*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTQZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 66954*/        0, /*End of Scope*/
/* 66955*/      /*Scope*/ 42, /*->66998*/
/* 66956*/        OPC_CheckChild0Type, MVT::v2i64,
/* 66958*/        OPC_RecordChild1, // #2 = $src2
/* 66959*/        OPC_MoveChild2,
/* 66960*/        OPC_Scope, 17, /*->66979*/ // 2 children in Scope
/* 66962*/          OPC_CheckCondCode, ISD::SETEQ,
/* 66964*/          OPC_MoveParent,
/* 66965*/          OPC_MoveParent,
/* 66966*/          OPC_CheckType, MVT::v2i1,
/* 66968*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 66970*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPEQQZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 66979*/        /*Scope*/ 17, /*->66997*/
/* 66980*/          OPC_CheckCondCode, ISD::SETGT,
/* 66982*/          OPC_MoveParent,
/* 66983*/          OPC_MoveParent,
/* 66984*/          OPC_CheckType, MVT::v2i1,
/* 66986*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 66988*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (VPCMPGTQZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 66997*/        0, /*End of Scope*/
/* 66998*/      0, /*End of Scope*/
/* 66999*/    /*Scope*/ 35|128,4/*547*/, /*->67548*/
/* 67001*/      OPC_MoveChild0,
/* 67002*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 67005*/      OPC_RecordChild0, // #0 = $src1
/* 67006*/      OPC_Scope, 44, /*->67052*/ // 12 children in Scope
/* 67008*/        OPC_CheckChild0Type, MVT::v64i8,
/* 67010*/        OPC_RecordChild1, // #1 = $src2
/* 67011*/        OPC_MoveChild2,
/* 67012*/        OPC_Scope, 18, /*->67032*/ // 2 children in Scope
/* 67014*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67016*/          OPC_MoveParent,
/* 67017*/          OPC_MoveParent,
/* 67018*/          OPC_RecordChild1, // #2 = $mask
/* 67019*/          OPC_CheckType, MVT::v64i1,
/* 67021*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 67023*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v64i1] } (X86setcc_commute:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, SETEQ:{ *:[Other] }), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/* 67032*/        /*Scope*/ 18, /*->67051*/
/* 67033*/          OPC_CheckCondCode, ISD::SETGT,
/* 67035*/          OPC_MoveParent,
/* 67036*/          OPC_MoveParent,
/* 67037*/          OPC_RecordChild1, // #2 = $mask
/* 67038*/          OPC_CheckType, MVT::v64i1,
/* 67040*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 67042*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, SETGT:{ *:[Other] }), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/* 67051*/        0, /*End of Scope*/
/* 67052*/      /*Scope*/ 44, /*->67097*/
/* 67053*/        OPC_CheckChild0Type, MVT::v32i8,
/* 67055*/        OPC_RecordChild1, // #1 = $src2
/* 67056*/        OPC_MoveChild2,
/* 67057*/        OPC_Scope, 18, /*->67077*/ // 2 children in Scope
/* 67059*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67061*/          OPC_MoveParent,
/* 67062*/          OPC_MoveParent,
/* 67063*/          OPC_RecordChild1, // #2 = $mask
/* 67064*/          OPC_CheckType, MVT::v32i1,
/* 67066*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 67068*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ256rrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v32i1] } (X86setcc_commute:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/* 67077*/        /*Scope*/ 18, /*->67096*/
/* 67078*/          OPC_CheckCondCode, ISD::SETGT,
/* 67080*/          OPC_MoveParent,
/* 67081*/          OPC_MoveParent,
/* 67082*/          OPC_RecordChild1, // #2 = $mask
/* 67083*/          OPC_CheckType, MVT::v32i1,
/* 67085*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 67087*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ256rrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETGT:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/* 67096*/        0, /*End of Scope*/
/* 67097*/      /*Scope*/ 44, /*->67142*/
/* 67098*/        OPC_CheckChild0Type, MVT::v16i8,
/* 67100*/        OPC_RecordChild1, // #1 = $src2
/* 67101*/        OPC_MoveChild2,
/* 67102*/        OPC_Scope, 18, /*->67122*/ // 2 children in Scope
/* 67104*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67106*/          OPC_MoveParent,
/* 67107*/          OPC_MoveParent,
/* 67108*/          OPC_RecordChild1, // #2 = $mask
/* 67109*/          OPC_CheckType, MVT::v16i1,
/* 67111*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 67113*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ128rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/* 67122*/        /*Scope*/ 18, /*->67141*/
/* 67123*/          OPC_CheckCondCode, ISD::SETGT,
/* 67125*/          OPC_MoveParent,
/* 67126*/          OPC_MoveParent,
/* 67127*/          OPC_RecordChild1, // #2 = $mask
/* 67128*/          OPC_CheckType, MVT::v16i1,
/* 67130*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 67132*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ128rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETGT:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/* 67141*/        0, /*End of Scope*/
/* 67142*/      /*Scope*/ 44, /*->67187*/
/* 67143*/        OPC_CheckChild0Type, MVT::v32i16,
/* 67145*/        OPC_RecordChild1, // #1 = $src2
/* 67146*/        OPC_MoveChild2,
/* 67147*/        OPC_Scope, 18, /*->67167*/ // 2 children in Scope
/* 67149*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67151*/          OPC_MoveParent,
/* 67152*/          OPC_MoveParent,
/* 67153*/          OPC_RecordChild1, // #2 = $mask
/* 67154*/          OPC_CheckType, MVT::v32i1,
/* 67156*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 67158*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v32i1] } (X86setcc_commute:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, SETEQ:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQWZrrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/* 67167*/        /*Scope*/ 18, /*->67186*/
/* 67168*/          OPC_CheckCondCode, ISD::SETGT,
/* 67170*/          OPC_MoveParent,
/* 67171*/          OPC_MoveParent,
/* 67172*/          OPC_RecordChild1, // #2 = $mask
/* 67173*/          OPC_CheckType, MVT::v32i1,
/* 67175*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 67177*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, SETGT:{ *:[Other] }), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTWZrrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/* 67186*/        0, /*End of Scope*/
/* 67187*/      /*Scope*/ 44, /*->67232*/
/* 67188*/        OPC_CheckChild0Type, MVT::v16i16,
/* 67190*/        OPC_RecordChild1, // #1 = $src2
/* 67191*/        OPC_MoveChild2,
/* 67192*/        OPC_Scope, 18, /*->67212*/ // 2 children in Scope
/* 67194*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67196*/          OPC_MoveParent,
/* 67197*/          OPC_MoveParent,
/* 67198*/          OPC_RecordChild1, // #2 = $mask
/* 67199*/          OPC_CheckType, MVT::v16i1,
/* 67201*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 67203*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ256rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQWZ256rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/* 67212*/        /*Scope*/ 18, /*->67231*/
/* 67213*/          OPC_CheckCondCode, ISD::SETGT,
/* 67215*/          OPC_MoveParent,
/* 67216*/          OPC_MoveParent,
/* 67217*/          OPC_RecordChild1, // #2 = $mask
/* 67218*/          OPC_CheckType, MVT::v16i1,
/* 67220*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 67222*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ256rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETGT:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTWZ256rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/* 67231*/        0, /*End of Scope*/
/* 67232*/      /*Scope*/ 44, /*->67277*/
/* 67233*/        OPC_CheckChild0Type, MVT::v8i16,
/* 67235*/        OPC_RecordChild1, // #1 = $src2
/* 67236*/        OPC_MoveChild2,
/* 67237*/        OPC_Scope, 18, /*->67257*/ // 2 children in Scope
/* 67239*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67241*/          OPC_MoveParent,
/* 67242*/          OPC_MoveParent,
/* 67243*/          OPC_RecordChild1, // #2 = $mask
/* 67244*/          OPC_CheckType, MVT::v8i1,
/* 67246*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 67248*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ128rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQWZ128rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/* 67257*/        /*Scope*/ 18, /*->67276*/
/* 67258*/          OPC_CheckCondCode, ISD::SETGT,
/* 67260*/          OPC_MoveParent,
/* 67261*/          OPC_MoveParent,
/* 67262*/          OPC_RecordChild1, // #2 = $mask
/* 67263*/          OPC_CheckType, MVT::v8i1,
/* 67265*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 67267*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ128rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETGT:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTWZ128rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/* 67276*/        0, /*End of Scope*/
/* 67277*/      /*Scope*/ 44, /*->67322*/
/* 67278*/        OPC_CheckChild0Type, MVT::v16i32,
/* 67280*/        OPC_RecordChild1, // #1 = $src2
/* 67281*/        OPC_MoveChild2,
/* 67282*/        OPC_Scope, 18, /*->67302*/ // 2 children in Scope
/* 67284*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67286*/          OPC_MoveParent,
/* 67287*/          OPC_MoveParent,
/* 67288*/          OPC_RecordChild1, // #2 = $mask
/* 67289*/          OPC_CheckType, MVT::v16i1,
/* 67291*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 67293*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, SETEQ:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQDZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/* 67302*/        /*Scope*/ 18, /*->67321*/
/* 67303*/          OPC_CheckCondCode, ISD::SETGT,
/* 67305*/          OPC_MoveParent,
/* 67306*/          OPC_MoveParent,
/* 67307*/          OPC_RecordChild1, // #2 = $mask
/* 67308*/          OPC_CheckType, MVT::v16i1,
/* 67310*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 67312*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, SETGT:{ *:[Other] }), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTDZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/* 67321*/        0, /*End of Scope*/
/* 67322*/      /*Scope*/ 44, /*->67367*/
/* 67323*/        OPC_CheckChild0Type, MVT::v8i32,
/* 67325*/        OPC_RecordChild1, // #1 = $src2
/* 67326*/        OPC_MoveChild2,
/* 67327*/        OPC_Scope, 18, /*->67347*/ // 2 children in Scope
/* 67329*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67331*/          OPC_MoveParent,
/* 67332*/          OPC_MoveParent,
/* 67333*/          OPC_RecordChild1, // #2 = $mask
/* 67334*/          OPC_CheckType, MVT::v8i1,
/* 67336*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67338*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQDZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/* 67347*/        /*Scope*/ 18, /*->67366*/
/* 67348*/          OPC_CheckCondCode, ISD::SETGT,
/* 67350*/          OPC_MoveParent,
/* 67351*/          OPC_MoveParent,
/* 67352*/          OPC_RecordChild1, // #2 = $mask
/* 67353*/          OPC_CheckType, MVT::v8i1,
/* 67355*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67357*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ256rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETGT:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTDZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/* 67366*/        0, /*End of Scope*/
/* 67367*/      /*Scope*/ 44, /*->67412*/
/* 67368*/        OPC_CheckChild0Type, MVT::v4i32,
/* 67370*/        OPC_RecordChild1, // #1 = $src2
/* 67371*/        OPC_MoveChild2,
/* 67372*/        OPC_Scope, 18, /*->67392*/ // 2 children in Scope
/* 67374*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67376*/          OPC_MoveParent,
/* 67377*/          OPC_MoveParent,
/* 67378*/          OPC_RecordChild1, // #2 = $mask
/* 67379*/          OPC_CheckType, MVT::v4i1,
/* 67381*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67383*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQDZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/* 67392*/        /*Scope*/ 18, /*->67411*/
/* 67393*/          OPC_CheckCondCode, ISD::SETGT,
/* 67395*/          OPC_MoveParent,
/* 67396*/          OPC_MoveParent,
/* 67397*/          OPC_RecordChild1, // #2 = $mask
/* 67398*/          OPC_CheckType, MVT::v4i1,
/* 67400*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67402*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ128rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETGT:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTDZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/* 67411*/        0, /*End of Scope*/
/* 67412*/      /*Scope*/ 44, /*->67457*/
/* 67413*/        OPC_CheckChild0Type, MVT::v8i64,
/* 67415*/        OPC_RecordChild1, // #1 = $src2
/* 67416*/        OPC_MoveChild2,
/* 67417*/        OPC_Scope, 18, /*->67437*/ // 2 children in Scope
/* 67419*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67421*/          OPC_MoveParent,
/* 67422*/          OPC_MoveParent,
/* 67423*/          OPC_RecordChild1, // #2 = $mask
/* 67424*/          OPC_CheckType, MVT::v8i1,
/* 67426*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 67428*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, SETEQ:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQQZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 67437*/        /*Scope*/ 18, /*->67456*/
/* 67438*/          OPC_CheckCondCode, ISD::SETGT,
/* 67440*/          OPC_MoveParent,
/* 67441*/          OPC_MoveParent,
/* 67442*/          OPC_RecordChild1, // #2 = $mask
/* 67443*/          OPC_CheckType, MVT::v8i1,
/* 67445*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 67447*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, SETGT:{ *:[Other] }), VK8WM:{ *:[v8i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTQZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 67456*/        0, /*End of Scope*/
/* 67457*/      /*Scope*/ 44, /*->67502*/
/* 67458*/        OPC_CheckChild0Type, MVT::v4i64,
/* 67460*/        OPC_RecordChild1, // #1 = $src2
/* 67461*/        OPC_MoveChild2,
/* 67462*/        OPC_Scope, 18, /*->67482*/ // 2 children in Scope
/* 67464*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67466*/          OPC_MoveParent,
/* 67467*/          OPC_MoveParent,
/* 67468*/          OPC_RecordChild1, // #2 = $mask
/* 67469*/          OPC_CheckType, MVT::v4i1,
/* 67471*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67473*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETEQ:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQQZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 67482*/        /*Scope*/ 18, /*->67501*/
/* 67483*/          OPC_CheckCondCode, ISD::SETGT,
/* 67485*/          OPC_MoveParent,
/* 67486*/          OPC_MoveParent,
/* 67487*/          OPC_RecordChild1, // #2 = $mask
/* 67488*/          OPC_CheckType, MVT::v4i1,
/* 67490*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67492*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETGT:{ *:[Other] }), VK4WM:{ *:[v4i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTQZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 67501*/        0, /*End of Scope*/
/* 67502*/      /*Scope*/ 44, /*->67547*/
/* 67503*/        OPC_CheckChild0Type, MVT::v2i64,
/* 67505*/        OPC_RecordChild1, // #1 = $src2
/* 67506*/        OPC_MoveChild2,
/* 67507*/        OPC_Scope, 18, /*->67527*/ // 2 children in Scope
/* 67509*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67511*/          OPC_MoveParent,
/* 67512*/          OPC_MoveParent,
/* 67513*/          OPC_RecordChild1, // #2 = $mask
/* 67514*/          OPC_CheckType, MVT::v2i1,
/* 67516*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67518*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v2i1] } (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETEQ:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPEQQZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 67527*/        /*Scope*/ 18, /*->67546*/
/* 67528*/          OPC_CheckCondCode, ISD::SETGT,
/* 67530*/          OPC_MoveParent,
/* 67531*/          OPC_MoveParent,
/* 67532*/          OPC_RecordChild1, // #2 = $mask
/* 67533*/          OPC_CheckType, MVT::v2i1,
/* 67535*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67537*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETGT:{ *:[Other] }), VK2WM:{ *:[v2i1] }:$mask) - Complexity = 8
                    // Dst: (VPCMPGTQZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 67546*/        0, /*End of Scope*/
/* 67547*/      0, /*End of Scope*/
/* 67548*/    /*Scope*/ 8|128,10/*1288*/, /*->68838*/
/* 67550*/      OPC_RecordChild0, // #0 = $mask
/* 67551*/      OPC_MoveChild1,
/* 67552*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 67555*/      OPC_RecordChild0, // #1 = $src1
/* 67556*/      OPC_Scope, 30|128,1/*158*/, /*->67717*/ // 8 children in Scope
/* 67559*/        OPC_CheckChild0Type, MVT::v8i32,
/* 67561*/        OPC_RecordChild1, // #2 = $src2
/* 67562*/        OPC_MoveChild2,
/* 67563*/        OPC_Scope, 75, /*->67640*/ // 2 children in Scope
/* 67565*/          OPC_CheckCondCode, ISD::SETGT,
/* 67567*/          OPC_MoveParent,
/* 67568*/          OPC_MoveParent,
/* 67569*/          OPC_CheckType, MVT::v8i1,
/* 67571*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 67573*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 67576*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 67584*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 67590*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 67593*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 67602*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 67608*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 67611*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 67620*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 67629*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 67632*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPGTDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 67640*/        /*Scope*/ 75, /*->67716*/
/* 67641*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67643*/          OPC_MoveParent,
/* 67644*/          OPC_MoveParent,
/* 67645*/          OPC_CheckType, MVT::v8i1,
/* 67647*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 67649*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 67652*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 67660*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 67666*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 67669*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 67678*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 67684*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 67687*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 67696*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 67705*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 67708*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPEQDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 67716*/        0, /*End of Scope*/
/* 67717*/      /*Scope*/ 30|128,1/*158*/, /*->67877*/
/* 67719*/        OPC_CheckChild0Type, MVT::v4i32,
/* 67721*/        OPC_RecordChild1, // #2 = $src2
/* 67722*/        OPC_MoveChild2,
/* 67723*/        OPC_Scope, 75, /*->67800*/ // 2 children in Scope
/* 67725*/          OPC_CheckCondCode, ISD::SETGT,
/* 67727*/          OPC_MoveParent,
/* 67728*/          OPC_MoveParent,
/* 67729*/          OPC_CheckType, MVT::v4i1,
/* 67731*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 67733*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 67736*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 67744*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 67750*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 67753*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 67762*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 67768*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 67771*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 67780*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 67789*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 67792*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPGTDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 67800*/        /*Scope*/ 75, /*->67876*/
/* 67801*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67803*/          OPC_MoveParent,
/* 67804*/          OPC_MoveParent,
/* 67805*/          OPC_CheckType, MVT::v4i1,
/* 67807*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 67809*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 67812*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 67820*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 67826*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 67829*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 67838*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 67844*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 67847*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 67856*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 67865*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 67868*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPEQDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 67876*/        0, /*End of Scope*/
/* 67877*/      /*Scope*/ 30|128,1/*158*/, /*->68037*/
/* 67879*/        OPC_CheckChild0Type, MVT::v4i64,
/* 67881*/        OPC_RecordChild1, // #2 = $src2
/* 67882*/        OPC_MoveChild2,
/* 67883*/        OPC_Scope, 75, /*->67960*/ // 2 children in Scope
/* 67885*/          OPC_CheckCondCode, ISD::SETGT,
/* 67887*/          OPC_MoveParent,
/* 67888*/          OPC_MoveParent,
/* 67889*/          OPC_CheckType, MVT::v4i1,
/* 67891*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 67893*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 67896*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 67904*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 67910*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 67913*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 67922*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 67928*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 67931*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 67940*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 67949*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 67952*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPGTQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 67960*/        /*Scope*/ 75, /*->68036*/
/* 67961*/          OPC_CheckCondCode, ISD::SETEQ,
/* 67963*/          OPC_MoveParent,
/* 67964*/          OPC_MoveParent,
/* 67965*/          OPC_CheckType, MVT::v4i1,
/* 67967*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 67969*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 67972*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 67980*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 67986*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 67989*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 67998*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 68004*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68007*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68016*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68025*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 68028*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPEQQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 68036*/        0, /*End of Scope*/
/* 68037*/      /*Scope*/ 30|128,1/*158*/, /*->68197*/
/* 68039*/        OPC_CheckChild0Type, MVT::v2i64,
/* 68041*/        OPC_RecordChild1, // #2 = $src2
/* 68042*/        OPC_MoveChild2,
/* 68043*/        OPC_Scope, 75, /*->68120*/ // 2 children in Scope
/* 68045*/          OPC_CheckCondCode, ISD::SETGT,
/* 68047*/          OPC_MoveParent,
/* 68048*/          OPC_MoveParent,
/* 68049*/          OPC_CheckType, MVT::v2i1,
/* 68051*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 68053*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 68056*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 68064*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 68070*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68073*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 68082*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 68088*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68091*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68100*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68109*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 68112*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPGTQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 68120*/        /*Scope*/ 75, /*->68196*/
/* 68121*/          OPC_CheckCondCode, ISD::SETEQ,
/* 68123*/          OPC_MoveParent,
/* 68124*/          OPC_MoveParent,
/* 68125*/          OPC_CheckType, MVT::v2i1,
/* 68127*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 68129*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 68132*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 68140*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 68146*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68149*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 68158*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 68164*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68167*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68176*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68185*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 68188*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPEQQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 68196*/        0, /*End of Scope*/
/* 68197*/      /*Scope*/ 30|128,1/*158*/, /*->68357*/
/* 68199*/        OPC_CheckChild0Type, MVT::v32i8,
/* 68201*/        OPC_RecordChild1, // #2 = $src2
/* 68202*/        OPC_MoveChild2,
/* 68203*/        OPC_Scope, 75, /*->68280*/ // 2 children in Scope
/* 68205*/          OPC_CheckCondCode, ISD::SETGT,
/* 68207*/          OPC_MoveParent,
/* 68208*/          OPC_MoveParent,
/* 68209*/          OPC_CheckType, MVT::v32i1,
/* 68211*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 68213*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 68216*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 68224*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 68230*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68233*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 68242*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 68248*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68251*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68260*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68269*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 68272*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPGTBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 68280*/        /*Scope*/ 75, /*->68356*/
/* 68281*/          OPC_CheckCondCode, ISD::SETEQ,
/* 68283*/          OPC_MoveParent,
/* 68284*/          OPC_MoveParent,
/* 68285*/          OPC_CheckType, MVT::v32i1,
/* 68287*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 68289*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 68292*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 68300*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 68306*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68309*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 68318*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 68324*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68327*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68336*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68345*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 68348*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (X86setcc_commute:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPEQBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 68356*/        0, /*End of Scope*/
/* 68357*/      /*Scope*/ 30|128,1/*158*/, /*->68517*/
/* 68359*/        OPC_CheckChild0Type, MVT::v16i8,
/* 68361*/        OPC_RecordChild1, // #2 = $src2
/* 68362*/        OPC_MoveChild2,
/* 68363*/        OPC_Scope, 75, /*->68440*/ // 2 children in Scope
/* 68365*/          OPC_CheckCondCode, ISD::SETGT,
/* 68367*/          OPC_MoveParent,
/* 68368*/          OPC_MoveParent,
/* 68369*/          OPC_CheckType, MVT::v16i1,
/* 68371*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 68373*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 68376*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 68384*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 68390*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68393*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 68402*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 68408*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68411*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68420*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68429*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 68432*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPGTBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 68440*/        /*Scope*/ 75, /*->68516*/
/* 68441*/          OPC_CheckCondCode, ISD::SETEQ,
/* 68443*/          OPC_MoveParent,
/* 68444*/          OPC_MoveParent,
/* 68445*/          OPC_CheckType, MVT::v16i1,
/* 68447*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 68449*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 68452*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 68460*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 68466*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68469*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 68478*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 68484*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68487*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68496*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68505*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 68508*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPEQBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 68516*/        0, /*End of Scope*/
/* 68517*/      /*Scope*/ 30|128,1/*158*/, /*->68677*/
/* 68519*/        OPC_CheckChild0Type, MVT::v16i16,
/* 68521*/        OPC_RecordChild1, // #2 = $src2
/* 68522*/        OPC_MoveChild2,
/* 68523*/        OPC_Scope, 75, /*->68600*/ // 2 children in Scope
/* 68525*/          OPC_CheckCondCode, ISD::SETGT,
/* 68527*/          OPC_MoveParent,
/* 68528*/          OPC_MoveParent,
/* 68529*/          OPC_CheckType, MVT::v16i1,
/* 68531*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 68533*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 68536*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 68544*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 68550*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68553*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 68562*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 68568*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68571*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68580*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68589*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 68592*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPGTWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 68600*/        /*Scope*/ 75, /*->68676*/
/* 68601*/          OPC_CheckCondCode, ISD::SETEQ,
/* 68603*/          OPC_MoveParent,
/* 68604*/          OPC_MoveParent,
/* 68605*/          OPC_CheckType, MVT::v16i1,
/* 68607*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 68609*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 68612*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 68620*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 68626*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68629*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 68638*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 68644*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68647*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68656*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68665*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 68668*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (X86setcc_commute:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPEQWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 68676*/        0, /*End of Scope*/
/* 68677*/      /*Scope*/ 30|128,1/*158*/, /*->68837*/
/* 68679*/        OPC_CheckChild0Type, MVT::v8i16,
/* 68681*/        OPC_RecordChild1, // #2 = $src2
/* 68682*/        OPC_MoveChild2,
/* 68683*/        OPC_Scope, 75, /*->68760*/ // 2 children in Scope
/* 68685*/          OPC_CheckCondCode, ISD::SETGT,
/* 68687*/          OPC_MoveParent,
/* 68688*/          OPC_MoveParent,
/* 68689*/          OPC_CheckType, MVT::v8i1,
/* 68691*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 68693*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 68696*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 68704*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 68710*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68713*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 68722*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 68728*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68731*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68740*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68749*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 68752*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETGT:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPGTWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 68760*/        /*Scope*/ 75, /*->68836*/
/* 68761*/          OPC_CheckCondCode, ISD::SETEQ,
/* 68763*/          OPC_MoveParent,
/* 68764*/          OPC_MoveParent,
/* 68765*/          OPC_CheckType, MVT::v8i1,
/* 68767*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 68769*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 68772*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 3,  // Results = #4
/* 68780*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 68786*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68789*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 68798*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 68804*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68807*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68816*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68825*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 68828*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (X86setcc_commute:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETEQ:{ *:[Other] })) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPEQWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 68836*/        0, /*End of Scope*/
/* 68837*/      0, /*End of Scope*/
/* 68838*/    /*Scope*/ 23|128,10/*1303*/, /*->70143*/
/* 68840*/      OPC_MoveChild0,
/* 68841*/      OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 68844*/      OPC_RecordChild0, // #0 = $src1
/* 68845*/      OPC_Scope, 32|128,1/*160*/, /*->69008*/ // 8 children in Scope
/* 68848*/        OPC_CheckChild0Type, MVT::v8i32,
/* 68850*/        OPC_RecordChild1, // #1 = $src2
/* 68851*/        OPC_MoveChild2,
/* 68852*/        OPC_Scope, 76, /*->68930*/ // 2 children in Scope
/* 68854*/          OPC_CheckCondCode, ISD::SETGT,
/* 68856*/          OPC_MoveParent,
/* 68857*/          OPC_MoveParent,
/* 68858*/          OPC_RecordChild1, // #2 = $mask
/* 68859*/          OPC_CheckType, MVT::v8i1,
/* 68861*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 68863*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 68866*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 68874*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 68880*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68883*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 68892*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 68898*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68901*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 68910*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68919*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 68922*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETGT:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPGTDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 68930*/        /*Scope*/ 76, /*->69007*/
/* 68931*/          OPC_CheckCondCode, ISD::SETEQ,
/* 68933*/          OPC_MoveParent,
/* 68934*/          OPC_MoveParent,
/* 68935*/          OPC_RecordChild1, // #2 = $mask
/* 68936*/          OPC_CheckType, MVT::v8i1,
/* 68938*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 68940*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 68943*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 68951*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 68957*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68960*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 68969*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 68975*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68978*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 68987*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 68996*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 68999*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETEQ:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPEQDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/* 69007*/        0, /*End of Scope*/
/* 69008*/      /*Scope*/ 32|128,1/*160*/, /*->69170*/
/* 69010*/        OPC_CheckChild0Type, MVT::v4i32,
/* 69012*/        OPC_RecordChild1, // #1 = $src2
/* 69013*/        OPC_MoveChild2,
/* 69014*/        OPC_Scope, 76, /*->69092*/ // 2 children in Scope
/* 69016*/          OPC_CheckCondCode, ISD::SETGT,
/* 69018*/          OPC_MoveParent,
/* 69019*/          OPC_MoveParent,
/* 69020*/          OPC_RecordChild1, // #2 = $mask
/* 69021*/          OPC_CheckType, MVT::v4i1,
/* 69023*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 69025*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 69028*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69036*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 69042*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69045*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69054*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 69060*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69063*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69072*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69081*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 69084*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETGT:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPGTDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 69092*/        /*Scope*/ 76, /*->69169*/
/* 69093*/          OPC_CheckCondCode, ISD::SETEQ,
/* 69095*/          OPC_MoveParent,
/* 69096*/          OPC_MoveParent,
/* 69097*/          OPC_RecordChild1, // #2 = $mask
/* 69098*/          OPC_CheckType, MVT::v4i1,
/* 69100*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 69102*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 69105*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69113*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 69119*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69122*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69131*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #8
/* 69137*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69140*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69149*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQDZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69158*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 69161*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETEQ:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPEQDZrrk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/* 69169*/        0, /*End of Scope*/
/* 69170*/      /*Scope*/ 32|128,1/*160*/, /*->69332*/
/* 69172*/        OPC_CheckChild0Type, MVT::v4i64,
/* 69174*/        OPC_RecordChild1, // #1 = $src2
/* 69175*/        OPC_MoveChild2,
/* 69176*/        OPC_Scope, 76, /*->69254*/ // 2 children in Scope
/* 69178*/          OPC_CheckCondCode, ISD::SETGT,
/* 69180*/          OPC_MoveParent,
/* 69181*/          OPC_MoveParent,
/* 69182*/          OPC_RecordChild1, // #2 = $mask
/* 69183*/          OPC_CheckType, MVT::v4i1,
/* 69185*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 69187*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 69190*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69198*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 69204*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69207*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69216*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 69222*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69225*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69234*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69243*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 69246*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETGT:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPGTQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 69254*/        /*Scope*/ 76, /*->69331*/
/* 69255*/          OPC_CheckCondCode, ISD::SETEQ,
/* 69257*/          OPC_MoveParent,
/* 69258*/          OPC_MoveParent,
/* 69259*/          OPC_RecordChild1, // #2 = $mask
/* 69260*/          OPC_CheckType, MVT::v4i1,
/* 69262*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 69264*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 69267*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69275*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 69281*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69284*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69293*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 69299*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69302*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69311*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69320*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 69323*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v4i1] } (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETEQ:{ *:[Other] }), VK4:{ *:[v4i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPEQQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/* 69331*/        0, /*End of Scope*/
/* 69332*/      /*Scope*/ 32|128,1/*160*/, /*->69494*/
/* 69334*/        OPC_CheckChild0Type, MVT::v2i64,
/* 69336*/        OPC_RecordChild1, // #1 = $src2
/* 69337*/        OPC_MoveChild2,
/* 69338*/        OPC_Scope, 76, /*->69416*/ // 2 children in Scope
/* 69340*/          OPC_CheckCondCode, ISD::SETGT,
/* 69342*/          OPC_MoveParent,
/* 69343*/          OPC_MoveParent,
/* 69344*/          OPC_RecordChild1, // #2 = $mask
/* 69345*/          OPC_CheckType, MVT::v2i1,
/* 69347*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 69349*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 69352*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69360*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 69366*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69369*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69378*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 69384*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69387*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69396*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69405*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 69408*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETGT:{ *:[Other] }), VK2:{ *:[v2i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPGTQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 69416*/        /*Scope*/ 76, /*->69493*/
/* 69417*/          OPC_CheckCondCode, ISD::SETEQ,
/* 69419*/          OPC_MoveParent,
/* 69420*/          OPC_MoveParent,
/* 69421*/          OPC_RecordChild1, // #2 = $mask
/* 69422*/          OPC_CheckType, MVT::v2i1,
/* 69424*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 69426*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 69429*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69437*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 69443*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69446*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69455*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 69461*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69464*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69473*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQQZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69482*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 69485*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v2i1] } (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETEQ:{ *:[Other] }), VK2:{ *:[v2i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPEQQZrrk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/* 69493*/        0, /*End of Scope*/
/* 69494*/      /*Scope*/ 32|128,1/*160*/, /*->69656*/
/* 69496*/        OPC_CheckChild0Type, MVT::v32i8,
/* 69498*/        OPC_RecordChild1, // #1 = $src2
/* 69499*/        OPC_MoveChild2,
/* 69500*/        OPC_Scope, 76, /*->69578*/ // 2 children in Scope
/* 69502*/          OPC_CheckCondCode, ISD::SETGT,
/* 69504*/          OPC_MoveParent,
/* 69505*/          OPC_MoveParent,
/* 69506*/          OPC_RecordChild1, // #2 = $mask
/* 69507*/          OPC_CheckType, MVT::v32i1,
/* 69509*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 69511*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 69514*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69522*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 69528*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69531*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69540*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 69546*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69549*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69558*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69567*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 69570*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETGT:{ *:[Other] }), VK32:{ *:[v32i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPGTBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 69578*/        /*Scope*/ 76, /*->69655*/
/* 69579*/          OPC_CheckCondCode, ISD::SETEQ,
/* 69581*/          OPC_MoveParent,
/* 69582*/          OPC_MoveParent,
/* 69583*/          OPC_RecordChild1, // #2 = $mask
/* 69584*/          OPC_CheckType, MVT::v32i1,
/* 69586*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 69588*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 69591*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69599*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 69605*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69608*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69617*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 69623*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69626*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69635*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69644*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 69647*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v32i1] } (X86setcc_commute:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETEQ:{ *:[Other] }), VK32:{ *:[v32i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPEQBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/* 69655*/        0, /*End of Scope*/
/* 69656*/      /*Scope*/ 32|128,1/*160*/, /*->69818*/
/* 69658*/        OPC_CheckChild0Type, MVT::v16i8,
/* 69660*/        OPC_RecordChild1, // #1 = $src2
/* 69661*/        OPC_MoveChild2,
/* 69662*/        OPC_Scope, 76, /*->69740*/ // 2 children in Scope
/* 69664*/          OPC_CheckCondCode, ISD::SETGT,
/* 69666*/          OPC_MoveParent,
/* 69667*/          OPC_MoveParent,
/* 69668*/          OPC_RecordChild1, // #2 = $mask
/* 69669*/          OPC_CheckType, MVT::v16i1,
/* 69671*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 69673*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 69676*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69684*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 69690*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69693*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69702*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 69708*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69711*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69720*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69729*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 69732*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETGT:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPGTBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 69740*/        /*Scope*/ 76, /*->69817*/
/* 69741*/          OPC_CheckCondCode, ISD::SETEQ,
/* 69743*/          OPC_MoveParent,
/* 69744*/          OPC_MoveParent,
/* 69745*/          OPC_RecordChild1, // #2 = $mask
/* 69746*/          OPC_CheckType, MVT::v16i1,
/* 69748*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 69750*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 69753*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69761*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #5
/* 69767*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69770*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69779*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #8
/* 69785*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69788*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69797*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69806*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 69809*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETEQ:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPEQBZrrk:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/* 69817*/        0, /*End of Scope*/
/* 69818*/      /*Scope*/ 32|128,1/*160*/, /*->69980*/
/* 69820*/        OPC_CheckChild0Type, MVT::v16i16,
/* 69822*/        OPC_RecordChild1, // #1 = $src2
/* 69823*/        OPC_MoveChild2,
/* 69824*/        OPC_Scope, 76, /*->69902*/ // 2 children in Scope
/* 69826*/          OPC_CheckCondCode, ISD::SETGT,
/* 69828*/          OPC_MoveParent,
/* 69829*/          OPC_MoveParent,
/* 69830*/          OPC_RecordChild1, // #2 = $mask
/* 69831*/          OPC_CheckType, MVT::v16i1,
/* 69833*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 69835*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 69838*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69846*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 69852*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69855*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69864*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 69870*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69873*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69882*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69891*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 69894*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETGT:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPGTWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 69902*/        /*Scope*/ 76, /*->69979*/
/* 69903*/          OPC_CheckCondCode, ISD::SETEQ,
/* 69905*/          OPC_MoveParent,
/* 69906*/          OPC_MoveParent,
/* 69907*/          OPC_RecordChild1, // #2 = $mask
/* 69908*/          OPC_CheckType, MVT::v16i1,
/* 69910*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 69912*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 69915*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 69923*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 69929*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69932*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 69941*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 69947*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 69950*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 69959*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 69968*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 69971*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v16i1] } (X86setcc_commute:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETEQ:{ *:[Other] }), VK16:{ *:[v16i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPEQWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/* 69979*/        0, /*End of Scope*/
/* 69980*/      /*Scope*/ 32|128,1/*160*/, /*->70142*/
/* 69982*/        OPC_CheckChild0Type, MVT::v8i16,
/* 69984*/        OPC_RecordChild1, // #1 = $src2
/* 69985*/        OPC_MoveChild2,
/* 69986*/        OPC_Scope, 76, /*->70064*/ // 2 children in Scope
/* 69988*/          OPC_CheckCondCode, ISD::SETGT,
/* 69990*/          OPC_MoveParent,
/* 69991*/          OPC_MoveParent,
/* 69992*/          OPC_RecordChild1, // #2 = $mask
/* 69993*/          OPC_CheckType, MVT::v8i1,
/* 69995*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 69997*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 70000*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 70008*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 70014*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 70017*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 70026*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 70032*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 70035*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 70044*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 70053*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 70056*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETGT:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPGTWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 70064*/        /*Scope*/ 76, /*->70141*/
/* 70065*/          OPC_CheckCondCode, ISD::SETEQ,
/* 70067*/          OPC_MoveParent,
/* 70068*/          OPC_MoveParent,
/* 70069*/          OPC_RecordChild1, // #2 = $mask
/* 70070*/          OPC_CheckType, MVT::v8i1,
/* 70072*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 70074*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 70077*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 70085*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 70091*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 70094*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/* 70103*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #8
/* 70109*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 70112*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 70121*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQWZrrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 4, 7, 10,  // Results = #11
/* 70130*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 70133*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 11, 12, 
                    // Src: (and:{ *:[v8i1] } (X86setcc_commute:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETEQ:{ *:[Other] }), VK8:{ *:[v8i1] }:$mask) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPEQWZrrk:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/* 70141*/        0, /*End of Scope*/
/* 70142*/      0, /*End of Scope*/
/* 70143*/    /*Scope*/ 39|128,32/*4135*/, /*->74280*/
/* 70145*/      OPC_RecordChild0, // #0 = $mask
/* 70146*/      OPC_Scope, 4|128,5/*644*/, /*->70793*/ // 5 children in Scope
/* 70149*/        OPC_RecordChild1, // #1 = $cc
/* 70150*/        OPC_MoveChild1,
/* 70151*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 70154*/        OPC_RecordChild0, // #2 = $src1
/* 70155*/        OPC_Scope, 52, /*->70209*/ // 12 children in Scope
/* 70157*/          OPC_CheckChild0Type, MVT::v64i8,
/* 70159*/          OPC_RecordChild1, // #3 = $src2
/* 70160*/          OPC_MoveChild2,
/* 70161*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70164*/          OPC_MoveParent,
/* 70165*/          OPC_Scope, 20, /*->70187*/ // 2 children in Scope
/* 70167*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70169*/            OPC_MoveParent,
/* 70170*/            OPC_CheckType, MVT::v64i1,
/* 70172*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 70174*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70177*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPBZrrik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70187*/          /*Scope*/ 20, /*->70208*/
/* 70188*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70190*/            OPC_MoveParent,
/* 70191*/            OPC_CheckType, MVT::v64i1,
/* 70193*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 70195*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70198*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUBZrrik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70208*/          0, /*End of Scope*/
/* 70209*/        /*Scope*/ 52, /*->70262*/
/* 70210*/          OPC_CheckChild0Type, MVT::v32i8,
/* 70212*/          OPC_RecordChild1, // #3 = $src2
/* 70213*/          OPC_MoveChild2,
/* 70214*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70217*/          OPC_MoveParent,
/* 70218*/          OPC_Scope, 20, /*->70240*/ // 2 children in Scope
/* 70220*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70222*/            OPC_MoveParent,
/* 70223*/            OPC_CheckType, MVT::v32i1,
/* 70225*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70227*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70230*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ256rrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPBZ256rrik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70240*/          /*Scope*/ 20, /*->70261*/
/* 70241*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70243*/            OPC_MoveParent,
/* 70244*/            OPC_CheckType, MVT::v32i1,
/* 70246*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70248*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70251*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ256rrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUBZ256rrik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70261*/          0, /*End of Scope*/
/* 70262*/        /*Scope*/ 52, /*->70315*/
/* 70263*/          OPC_CheckChild0Type, MVT::v16i8,
/* 70265*/          OPC_RecordChild1, // #3 = $src2
/* 70266*/          OPC_MoveChild2,
/* 70267*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70270*/          OPC_MoveParent,
/* 70271*/          OPC_Scope, 20, /*->70293*/ // 2 children in Scope
/* 70273*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70275*/            OPC_MoveParent,
/* 70276*/            OPC_CheckType, MVT::v16i1,
/* 70278*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70280*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70283*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ128rrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPBZ128rrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70293*/          /*Scope*/ 20, /*->70314*/
/* 70294*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70296*/            OPC_MoveParent,
/* 70297*/            OPC_CheckType, MVT::v16i1,
/* 70299*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70301*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70304*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ128rrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUBZ128rrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70314*/          0, /*End of Scope*/
/* 70315*/        /*Scope*/ 52, /*->70368*/
/* 70316*/          OPC_CheckChild0Type, MVT::v32i16,
/* 70318*/          OPC_RecordChild1, // #3 = $src2
/* 70319*/          OPC_MoveChild2,
/* 70320*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70323*/          OPC_MoveParent,
/* 70324*/          OPC_Scope, 20, /*->70346*/ // 2 children in Scope
/* 70326*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70328*/            OPC_MoveParent,
/* 70329*/            OPC_CheckType, MVT::v32i1,
/* 70331*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 70333*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70336*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPWZrrik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70346*/          /*Scope*/ 20, /*->70367*/
/* 70347*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70349*/            OPC_MoveParent,
/* 70350*/            OPC_CheckType, MVT::v32i1,
/* 70352*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 70354*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70357*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUWZrrik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70367*/          0, /*End of Scope*/
/* 70368*/        /*Scope*/ 52, /*->70421*/
/* 70369*/          OPC_CheckChild0Type, MVT::v16i16,
/* 70371*/          OPC_RecordChild1, // #3 = $src2
/* 70372*/          OPC_MoveChild2,
/* 70373*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70376*/          OPC_MoveParent,
/* 70377*/          OPC_Scope, 20, /*->70399*/ // 2 children in Scope
/* 70379*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70381*/            OPC_MoveParent,
/* 70382*/            OPC_CheckType, MVT::v16i1,
/* 70384*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70386*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70389*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ256rrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPWZ256rrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70399*/          /*Scope*/ 20, /*->70420*/
/* 70400*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70402*/            OPC_MoveParent,
/* 70403*/            OPC_CheckType, MVT::v16i1,
/* 70405*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70407*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70410*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ256rrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUWZ256rrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70420*/          0, /*End of Scope*/
/* 70421*/        /*Scope*/ 52, /*->70474*/
/* 70422*/          OPC_CheckChild0Type, MVT::v8i16,
/* 70424*/          OPC_RecordChild1, // #3 = $src2
/* 70425*/          OPC_MoveChild2,
/* 70426*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70429*/          OPC_MoveParent,
/* 70430*/          OPC_Scope, 20, /*->70452*/ // 2 children in Scope
/* 70432*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70434*/            OPC_MoveParent,
/* 70435*/            OPC_CheckType, MVT::v8i1,
/* 70437*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70439*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70442*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ128rrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPWZ128rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70452*/          /*Scope*/ 20, /*->70473*/
/* 70453*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70455*/            OPC_MoveParent,
/* 70456*/            OPC_CheckType, MVT::v8i1,
/* 70458*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70460*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70463*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ128rrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUWZ128rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70473*/          0, /*End of Scope*/
/* 70474*/        /*Scope*/ 52, /*->70527*/
/* 70475*/          OPC_CheckChild0Type, MVT::v16i32,
/* 70477*/          OPC_RecordChild1, // #3 = $src2
/* 70478*/          OPC_MoveChild2,
/* 70479*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70482*/          OPC_MoveParent,
/* 70483*/          OPC_Scope, 20, /*->70505*/ // 2 children in Scope
/* 70485*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70487*/            OPC_MoveParent,
/* 70488*/            OPC_CheckType, MVT::v16i1,
/* 70490*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 70492*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70495*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPDZrrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70505*/          /*Scope*/ 20, /*->70526*/
/* 70506*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70508*/            OPC_MoveParent,
/* 70509*/            OPC_CheckType, MVT::v16i1,
/* 70511*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 70513*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70516*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUDZrrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70526*/          0, /*End of Scope*/
/* 70527*/        /*Scope*/ 52, /*->70580*/
/* 70528*/          OPC_CheckChild0Type, MVT::v8i32,
/* 70530*/          OPC_RecordChild1, // #3 = $src2
/* 70531*/          OPC_MoveChild2,
/* 70532*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70535*/          OPC_MoveParent,
/* 70536*/          OPC_Scope, 20, /*->70558*/ // 2 children in Scope
/* 70538*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70540*/            OPC_MoveParent,
/* 70541*/            OPC_CheckType, MVT::v8i1,
/* 70543*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 70545*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70548*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPDZ256rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70558*/          /*Scope*/ 20, /*->70579*/
/* 70559*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70561*/            OPC_MoveParent,
/* 70562*/            OPC_CheckType, MVT::v8i1,
/* 70564*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 70566*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70569*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUDZ256rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70579*/          0, /*End of Scope*/
/* 70580*/        /*Scope*/ 52, /*->70633*/
/* 70581*/          OPC_CheckChild0Type, MVT::v4i32,
/* 70583*/          OPC_RecordChild1, // #3 = $src2
/* 70584*/          OPC_MoveChild2,
/* 70585*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70588*/          OPC_MoveParent,
/* 70589*/          OPC_Scope, 20, /*->70611*/ // 2 children in Scope
/* 70591*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70593*/            OPC_MoveParent,
/* 70594*/            OPC_CheckType, MVT::v4i1,
/* 70596*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 70598*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70601*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rrik), 0,
                          MVT::v4i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPDZ128rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70611*/          /*Scope*/ 20, /*->70632*/
/* 70612*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70614*/            OPC_MoveParent,
/* 70615*/            OPC_CheckType, MVT::v4i1,
/* 70617*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 70619*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70622*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rrik), 0,
                          MVT::v4i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUDZ128rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70632*/          0, /*End of Scope*/
/* 70633*/        /*Scope*/ 52, /*->70686*/
/* 70634*/          OPC_CheckChild0Type, MVT::v8i64,
/* 70636*/          OPC_RecordChild1, // #3 = $src2
/* 70637*/          OPC_MoveChild2,
/* 70638*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70641*/          OPC_MoveParent,
/* 70642*/          OPC_Scope, 20, /*->70664*/ // 2 children in Scope
/* 70644*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70646*/            OPC_MoveParent,
/* 70647*/            OPC_CheckType, MVT::v8i1,
/* 70649*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 70651*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70654*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPQZrrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70664*/          /*Scope*/ 20, /*->70685*/
/* 70665*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70667*/            OPC_MoveParent,
/* 70668*/            OPC_CheckType, MVT::v8i1,
/* 70670*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 70672*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70675*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUQZrrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70685*/          0, /*End of Scope*/
/* 70686*/        /*Scope*/ 52, /*->70739*/
/* 70687*/          OPC_CheckChild0Type, MVT::v4i64,
/* 70689*/          OPC_RecordChild1, // #3 = $src2
/* 70690*/          OPC_MoveChild2,
/* 70691*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70694*/          OPC_MoveParent,
/* 70695*/          OPC_Scope, 20, /*->70717*/ // 2 children in Scope
/* 70697*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70699*/            OPC_MoveParent,
/* 70700*/            OPC_CheckType, MVT::v4i1,
/* 70702*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 70704*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70707*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rrik), 0,
                          MVT::v4i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPQZ256rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70717*/          /*Scope*/ 20, /*->70738*/
/* 70718*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70720*/            OPC_MoveParent,
/* 70721*/            OPC_CheckType, MVT::v4i1,
/* 70723*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 70725*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70728*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rrik), 0,
                          MVT::v4i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUQZ256rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70738*/          0, /*End of Scope*/
/* 70739*/        /*Scope*/ 52, /*->70792*/
/* 70740*/          OPC_CheckChild0Type, MVT::v2i64,
/* 70742*/          OPC_RecordChild1, // #3 = $src2
/* 70743*/          OPC_MoveChild2,
/* 70744*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70747*/          OPC_MoveParent,
/* 70748*/          OPC_Scope, 20, /*->70770*/ // 2 children in Scope
/* 70750*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70752*/            OPC_MoveParent,
/* 70753*/            OPC_CheckType, MVT::v2i1,
/* 70755*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 70757*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70760*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rrik), 0,
                          MVT::v2i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPQZ128rrik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70770*/          /*Scope*/ 20, /*->70791*/
/* 70771*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70773*/            OPC_MoveParent,
/* 70774*/            OPC_CheckType, MVT::v2i1,
/* 70776*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 70778*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 70781*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rrik), 0,
                          MVT::v2i1, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (VPCMPUQZ128rrik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70791*/          0, /*End of Scope*/
/* 70792*/        0, /*End of Scope*/
/* 70793*/      /*Scope*/ 27|128,5/*667*/, /*->71462*/
/* 70795*/        OPC_MoveChild0,
/* 70796*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 70799*/        OPC_RecordChild0, // #1 = $src1
/* 70800*/        OPC_Scope, 54, /*->70856*/ // 12 children in Scope
/* 70802*/          OPC_CheckChild0Type, MVT::v64i8,
/* 70804*/          OPC_RecordChild1, // #2 = $src2
/* 70805*/          OPC_MoveChild2,
/* 70806*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70809*/          OPC_MoveParent,
/* 70810*/          OPC_Scope, 21, /*->70833*/ // 2 children in Scope
/* 70812*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70814*/            OPC_MoveParent,
/* 70815*/            OPC_RecordChild1, // #3 = $mask
/* 70816*/            OPC_CheckType, MVT::v64i1,
/* 70818*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 70820*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 70823*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPBZrrik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70833*/          /*Scope*/ 21, /*->70855*/
/* 70834*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70836*/            OPC_MoveParent,
/* 70837*/            OPC_RecordChild1, // #3 = $mask
/* 70838*/            OPC_CheckType, MVT::v64i1,
/* 70840*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 70842*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 70845*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v64i1] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUBZrrik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70855*/          0, /*End of Scope*/
/* 70856*/        /*Scope*/ 54, /*->70911*/
/* 70857*/          OPC_CheckChild0Type, MVT::v32i8,
/* 70859*/          OPC_RecordChild1, // #2 = $src2
/* 70860*/          OPC_MoveChild2,
/* 70861*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70864*/          OPC_MoveParent,
/* 70865*/          OPC_Scope, 21, /*->70888*/ // 2 children in Scope
/* 70867*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70869*/            OPC_MoveParent,
/* 70870*/            OPC_RecordChild1, // #3 = $mask
/* 70871*/            OPC_CheckType, MVT::v32i1,
/* 70873*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70875*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 70878*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ256rrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPBZ256rrik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70888*/          /*Scope*/ 21, /*->70910*/
/* 70889*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70891*/            OPC_MoveParent,
/* 70892*/            OPC_RecordChild1, // #3 = $mask
/* 70893*/            OPC_CheckType, MVT::v32i1,
/* 70895*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70897*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 70900*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ256rrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUBZ256rrik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70910*/          0, /*End of Scope*/
/* 70911*/        /*Scope*/ 54, /*->70966*/
/* 70912*/          OPC_CheckChild0Type, MVT::v16i8,
/* 70914*/          OPC_RecordChild1, // #2 = $src2
/* 70915*/          OPC_MoveChild2,
/* 70916*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70919*/          OPC_MoveParent,
/* 70920*/          OPC_Scope, 21, /*->70943*/ // 2 children in Scope
/* 70922*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70924*/            OPC_MoveParent,
/* 70925*/            OPC_RecordChild1, // #3 = $mask
/* 70926*/            OPC_CheckType, MVT::v16i1,
/* 70928*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70930*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 70933*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ128rrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPBZ128rrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70943*/          /*Scope*/ 21, /*->70965*/
/* 70944*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 70946*/            OPC_MoveParent,
/* 70947*/            OPC_RecordChild1, // #3 = $mask
/* 70948*/            OPC_CheckType, MVT::v16i1,
/* 70950*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 70952*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 70955*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ128rrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUBZ128rrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70965*/          0, /*End of Scope*/
/* 70966*/        /*Scope*/ 54, /*->71021*/
/* 70967*/          OPC_CheckChild0Type, MVT::v32i16,
/* 70969*/          OPC_RecordChild1, // #2 = $src2
/* 70970*/          OPC_MoveChild2,
/* 70971*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 70974*/          OPC_MoveParent,
/* 70975*/          OPC_Scope, 21, /*->70998*/ // 2 children in Scope
/* 70977*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 70979*/            OPC_MoveParent,
/* 70980*/            OPC_RecordChild1, // #3 = $mask
/* 70981*/            OPC_CheckType, MVT::v32i1,
/* 70983*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 70985*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 70988*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPWZrrik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 70998*/          /*Scope*/ 21, /*->71020*/
/* 70999*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71001*/            OPC_MoveParent,
/* 71002*/            OPC_RecordChild1, // #3 = $mask
/* 71003*/            OPC_CheckType, MVT::v32i1,
/* 71005*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 71007*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71010*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUWZrrik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71020*/          0, /*End of Scope*/
/* 71021*/        /*Scope*/ 54, /*->71076*/
/* 71022*/          OPC_CheckChild0Type, MVT::v16i16,
/* 71024*/          OPC_RecordChild1, // #2 = $src2
/* 71025*/          OPC_MoveChild2,
/* 71026*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71029*/          OPC_MoveParent,
/* 71030*/          OPC_Scope, 21, /*->71053*/ // 2 children in Scope
/* 71032*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71034*/            OPC_MoveParent,
/* 71035*/            OPC_RecordChild1, // #3 = $mask
/* 71036*/            OPC_CheckType, MVT::v16i1,
/* 71038*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 71040*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71043*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ256rrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPWZ256rrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71053*/          /*Scope*/ 21, /*->71075*/
/* 71054*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71056*/            OPC_MoveParent,
/* 71057*/            OPC_RecordChild1, // #3 = $mask
/* 71058*/            OPC_CheckType, MVT::v16i1,
/* 71060*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 71062*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71065*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ256rrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUWZ256rrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71075*/          0, /*End of Scope*/
/* 71076*/        /*Scope*/ 54, /*->71131*/
/* 71077*/          OPC_CheckChild0Type, MVT::v8i16,
/* 71079*/          OPC_RecordChild1, // #2 = $src2
/* 71080*/          OPC_MoveChild2,
/* 71081*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71084*/          OPC_MoveParent,
/* 71085*/          OPC_Scope, 21, /*->71108*/ // 2 children in Scope
/* 71087*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71089*/            OPC_MoveParent,
/* 71090*/            OPC_RecordChild1, // #3 = $mask
/* 71091*/            OPC_CheckType, MVT::v8i1,
/* 71093*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 71095*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71098*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ128rrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPWZ128rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71108*/          /*Scope*/ 21, /*->71130*/
/* 71109*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71111*/            OPC_MoveParent,
/* 71112*/            OPC_RecordChild1, // #3 = $mask
/* 71113*/            OPC_CheckType, MVT::v8i1,
/* 71115*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 71117*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71120*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ128rrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUWZ128rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71130*/          0, /*End of Scope*/
/* 71131*/        /*Scope*/ 54, /*->71186*/
/* 71132*/          OPC_CheckChild0Type, MVT::v16i32,
/* 71134*/          OPC_RecordChild1, // #2 = $src2
/* 71135*/          OPC_MoveChild2,
/* 71136*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71139*/          OPC_MoveParent,
/* 71140*/          OPC_Scope, 21, /*->71163*/ // 2 children in Scope
/* 71142*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71144*/            OPC_MoveParent,
/* 71145*/            OPC_RecordChild1, // #3 = $mask
/* 71146*/            OPC_CheckType, MVT::v16i1,
/* 71148*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 71150*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71153*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPDZrrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71163*/          /*Scope*/ 21, /*->71185*/
/* 71164*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71166*/            OPC_MoveParent,
/* 71167*/            OPC_RecordChild1, // #3 = $mask
/* 71168*/            OPC_CheckType, MVT::v16i1,
/* 71170*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 71172*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71175*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUDZrrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71185*/          0, /*End of Scope*/
/* 71186*/        /*Scope*/ 54, /*->71241*/
/* 71187*/          OPC_CheckChild0Type, MVT::v8i32,
/* 71189*/          OPC_RecordChild1, // #2 = $src2
/* 71190*/          OPC_MoveChild2,
/* 71191*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71194*/          OPC_MoveParent,
/* 71195*/          OPC_Scope, 21, /*->71218*/ // 2 children in Scope
/* 71197*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71199*/            OPC_MoveParent,
/* 71200*/            OPC_RecordChild1, // #3 = $mask
/* 71201*/            OPC_CheckType, MVT::v8i1,
/* 71203*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71205*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71208*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPDZ256rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71218*/          /*Scope*/ 21, /*->71240*/
/* 71219*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71221*/            OPC_MoveParent,
/* 71222*/            OPC_RecordChild1, // #3 = $mask
/* 71223*/            OPC_CheckType, MVT::v8i1,
/* 71225*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71227*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71230*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUDZ256rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71240*/          0, /*End of Scope*/
/* 71241*/        /*Scope*/ 54, /*->71296*/
/* 71242*/          OPC_CheckChild0Type, MVT::v4i32,
/* 71244*/          OPC_RecordChild1, // #2 = $src2
/* 71245*/          OPC_MoveChild2,
/* 71246*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71249*/          OPC_MoveParent,
/* 71250*/          OPC_Scope, 21, /*->71273*/ // 2 children in Scope
/* 71252*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71254*/            OPC_MoveParent,
/* 71255*/            OPC_RecordChild1, // #3 = $mask
/* 71256*/            OPC_CheckType, MVT::v4i1,
/* 71258*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71260*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71263*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rrik), 0,
                          MVT::v4i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPDZ128rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71273*/          /*Scope*/ 21, /*->71295*/
/* 71274*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71276*/            OPC_MoveParent,
/* 71277*/            OPC_RecordChild1, // #3 = $mask
/* 71278*/            OPC_CheckType, MVT::v4i1,
/* 71280*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71282*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71285*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rrik), 0,
                          MVT::v4i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUDZ128rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71295*/          0, /*End of Scope*/
/* 71296*/        /*Scope*/ 54, /*->71351*/
/* 71297*/          OPC_CheckChild0Type, MVT::v8i64,
/* 71299*/          OPC_RecordChild1, // #2 = $src2
/* 71300*/          OPC_MoveChild2,
/* 71301*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71304*/          OPC_MoveParent,
/* 71305*/          OPC_Scope, 21, /*->71328*/ // 2 children in Scope
/* 71307*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71309*/            OPC_MoveParent,
/* 71310*/            OPC_RecordChild1, // #3 = $mask
/* 71311*/            OPC_CheckType, MVT::v8i1,
/* 71313*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 71315*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71318*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPQZrrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71328*/          /*Scope*/ 21, /*->71350*/
/* 71329*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71331*/            OPC_MoveParent,
/* 71332*/            OPC_RecordChild1, // #3 = $mask
/* 71333*/            OPC_CheckType, MVT::v8i1,
/* 71335*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 71337*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71340*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUQZrrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71350*/          0, /*End of Scope*/
/* 71351*/        /*Scope*/ 54, /*->71406*/
/* 71352*/          OPC_CheckChild0Type, MVT::v4i64,
/* 71354*/          OPC_RecordChild1, // #2 = $src2
/* 71355*/          OPC_MoveChild2,
/* 71356*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71359*/          OPC_MoveParent,
/* 71360*/          OPC_Scope, 21, /*->71383*/ // 2 children in Scope
/* 71362*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71364*/            OPC_MoveParent,
/* 71365*/            OPC_RecordChild1, // #3 = $mask
/* 71366*/            OPC_CheckType, MVT::v4i1,
/* 71368*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71370*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71373*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rrik), 0,
                          MVT::v4i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPQZ256rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71383*/          /*Scope*/ 21, /*->71405*/
/* 71384*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71386*/            OPC_MoveParent,
/* 71387*/            OPC_RecordChild1, // #3 = $mask
/* 71388*/            OPC_CheckType, MVT::v4i1,
/* 71390*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71392*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71395*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rrik), 0,
                          MVT::v4i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUQZ256rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71405*/          0, /*End of Scope*/
/* 71406*/        /*Scope*/ 54, /*->71461*/
/* 71407*/          OPC_CheckChild0Type, MVT::v2i64,
/* 71409*/          OPC_RecordChild1, // #2 = $src2
/* 71410*/          OPC_MoveChild2,
/* 71411*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71414*/          OPC_MoveParent,
/* 71415*/          OPC_Scope, 21, /*->71438*/ // 2 children in Scope
/* 71417*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71419*/            OPC_MoveParent,
/* 71420*/            OPC_RecordChild1, // #3 = $mask
/* 71421*/            OPC_CheckType, MVT::v2i1,
/* 71423*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71425*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71428*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rrik), 0,
                          MVT::v2i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPQZ128rrik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71438*/          /*Scope*/ 21, /*->71460*/
/* 71439*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71441*/            OPC_MoveParent,
/* 71442*/            OPC_RecordChild1, // #3 = $mask
/* 71443*/            OPC_CheckType, MVT::v2i1,
/* 71445*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71447*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 71450*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rrik), 0,
                          MVT::v2i1, 4/*#Ops*/, 3, 1, 2, 4, 
                      // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                      // Dst: (VPCMPUQZ128rrik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] })):$cc))
/* 71460*/          0, /*End of Scope*/
/* 71461*/        0, /*End of Scope*/
/* 71462*/      /*Scope*/ 88|128,10/*1368*/, /*->72832*/
/* 71464*/        OPC_RecordChild1, // #1 = $cc
/* 71465*/        OPC_MoveChild1,
/* 71466*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 71469*/        OPC_RecordChild0, // #2 = $src1
/* 71470*/        OPC_Scope, 40|128,1/*168*/, /*->71641*/ // 8 children in Scope
/* 71473*/          OPC_CheckChild0Type, MVT::v8i32,
/* 71475*/          OPC_RecordChild1, // #3 = $src2
/* 71476*/          OPC_MoveChild2,
/* 71477*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71480*/          OPC_MoveParent,
/* 71481*/          OPC_Scope, 78, /*->71561*/ // 2 children in Scope
/* 71483*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71485*/            OPC_MoveParent,
/* 71486*/            OPC_CheckType, MVT::v8i1,
/* 71488*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 71490*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 71493*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 71501*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 71507*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71510*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 71519*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 71525*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71528*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 71537*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 71540*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 71550*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 71553*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPDZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 71561*/          /*Scope*/ 78, /*->71640*/
/* 71562*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71564*/            OPC_MoveParent,
/* 71565*/            OPC_CheckType, MVT::v8i1,
/* 71567*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 71569*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 71572*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 71580*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 71586*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71589*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 71598*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 71604*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71607*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 71616*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 71619*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 71629*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 71632*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUDZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 71640*/          0, /*End of Scope*/
/* 71641*/        /*Scope*/ 40|128,1/*168*/, /*->71811*/
/* 71643*/          OPC_CheckChild0Type, MVT::v4i32,
/* 71645*/          OPC_RecordChild1, // #3 = $src2
/* 71646*/          OPC_MoveChild2,
/* 71647*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71650*/          OPC_MoveParent,
/* 71651*/          OPC_Scope, 78, /*->71731*/ // 2 children in Scope
/* 71653*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71655*/            OPC_MoveParent,
/* 71656*/            OPC_CheckType, MVT::v4i1,
/* 71658*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 71660*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 71663*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 71671*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 71677*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 71680*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 71689*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 71695*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 71698*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 71707*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 71710*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 71720*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 71723*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPDZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 71731*/          /*Scope*/ 78, /*->71810*/
/* 71732*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71734*/            OPC_MoveParent,
/* 71735*/            OPC_CheckType, MVT::v4i1,
/* 71737*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 71739*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 71742*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 71750*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 71756*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 71759*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 71768*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 71774*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 71777*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 71786*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 71789*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 71799*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 71802*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUDZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 71810*/          0, /*End of Scope*/
/* 71811*/        /*Scope*/ 40|128,1/*168*/, /*->71981*/
/* 71813*/          OPC_CheckChild0Type, MVT::v4i64,
/* 71815*/          OPC_RecordChild1, // #3 = $src2
/* 71816*/          OPC_MoveChild2,
/* 71817*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71820*/          OPC_MoveParent,
/* 71821*/          OPC_Scope, 78, /*->71901*/ // 2 children in Scope
/* 71823*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71825*/            OPC_MoveParent,
/* 71826*/            OPC_CheckType, MVT::v4i1,
/* 71828*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 71830*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 71833*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 71841*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 71847*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71850*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 71859*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 71865*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71868*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 71877*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 71880*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 71890*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 71893*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPQZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 71901*/          /*Scope*/ 78, /*->71980*/
/* 71902*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 71904*/            OPC_MoveParent,
/* 71905*/            OPC_CheckType, MVT::v4i1,
/* 71907*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 71909*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 71912*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 71920*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 71926*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71929*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 71938*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 71944*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71947*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 71956*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 71959*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 71969*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 71972*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUQZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 71980*/          0, /*End of Scope*/
/* 71981*/        /*Scope*/ 40|128,1/*168*/, /*->72151*/
/* 71983*/          OPC_CheckChild0Type, MVT::v2i64,
/* 71985*/          OPC_RecordChild1, // #3 = $src2
/* 71986*/          OPC_MoveChild2,
/* 71987*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 71990*/          OPC_MoveParent,
/* 71991*/          OPC_Scope, 78, /*->72071*/ // 2 children in Scope
/* 71993*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 71995*/            OPC_MoveParent,
/* 71996*/            OPC_CheckType, MVT::v2i1,
/* 71998*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 72000*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 72003*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 72011*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 72017*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72020*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 72029*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 72035*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72038*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 72047*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 72050*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 72060*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 72063*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPQZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 72071*/          /*Scope*/ 78, /*->72150*/
/* 72072*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 72074*/            OPC_MoveParent,
/* 72075*/            OPC_CheckType, MVT::v2i1,
/* 72077*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 72079*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 72082*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 72090*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 72096*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72099*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 72108*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 72114*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72117*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 72126*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 72129*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 72139*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 72142*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPUQZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 72150*/          0, /*End of Scope*/
/* 72151*/        /*Scope*/ 40|128,1/*168*/, /*->72321*/
/* 72153*/          OPC_CheckChild0Type, MVT::v32i8,
/* 72155*/          OPC_RecordChild1, // #3 = $src2
/* 72156*/          OPC_MoveChild2,
/* 72157*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 72160*/          OPC_MoveParent,
/* 72161*/          OPC_Scope, 78, /*->72241*/ // 2 children in Scope
/* 72163*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 72165*/            OPC_MoveParent,
/* 72166*/            OPC_CheckType, MVT::v32i1,
/* 72168*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 72170*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 72173*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 72181*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 72187*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72190*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 72199*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 72205*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72208*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 72217*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 72220*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 72230*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 72233*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPBZrrik:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v32i1] }:$cc)), VK32:{ *:[i32] })
/* 72241*/          /*Scope*/ 78, /*->72320*/
/* 72242*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 72244*/            OPC_MoveParent,
/* 72245*/            OPC_CheckType, MVT::v32i1,
/* 72247*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 72249*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 72252*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 72260*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 72266*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72269*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 72278*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 72284*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72287*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 72296*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 72299*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 72309*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 72312*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask, (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPUBZrrik:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v32i1] }:$cc)), VK32:{ *:[i32] })
/* 72320*/          0, /*End of Scope*/
/* 72321*/        /*Scope*/ 40|128,1/*168*/, /*->72491*/
/* 72323*/          OPC_CheckChild0Type, MVT::v16i8,
/* 72325*/          OPC_RecordChild1, // #3 = $src2
/* 72326*/          OPC_MoveChild2,
/* 72327*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 72330*/          OPC_MoveParent,
/* 72331*/          OPC_Scope, 78, /*->72411*/ // 2 children in Scope
/* 72333*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 72335*/            OPC_MoveParent,
/* 72336*/            OPC_CheckType, MVT::v16i1,
/* 72338*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 72340*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 72343*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 72351*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 72357*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72360*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 72369*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 72375*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72378*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 72387*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 72390*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 72400*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 72403*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPBZrrik:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/* 72411*/          /*Scope*/ 78, /*->72490*/
/* 72412*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 72414*/            OPC_MoveParent,
/* 72415*/            OPC_CheckType, MVT::v16i1,
/* 72417*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 72419*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 72422*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 72430*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 72436*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72439*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 72448*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 72454*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72457*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 72466*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 72469*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 72479*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 72482*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPUBZrrik:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/* 72490*/          0, /*End of Scope*/
/* 72491*/        /*Scope*/ 40|128,1/*168*/, /*->72661*/
/* 72493*/          OPC_CheckChild0Type, MVT::v16i16,
/* 72495*/          OPC_RecordChild1, // #3 = $src2
/* 72496*/          OPC_MoveChild2,
/* 72497*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 72500*/          OPC_MoveParent,
/* 72501*/          OPC_Scope, 78, /*->72581*/ // 2 children in Scope
/* 72503*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 72505*/            OPC_MoveParent,
/* 72506*/            OPC_CheckType, MVT::v16i1,
/* 72508*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 72510*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 72513*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 72521*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 72527*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72530*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 72539*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 72545*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72548*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 72557*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 72560*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 72570*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 72573*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPWZrrik:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/* 72581*/          /*Scope*/ 78, /*->72660*/
/* 72582*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 72584*/            OPC_MoveParent,
/* 72585*/            OPC_CheckType, MVT::v16i1,
/* 72587*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 72589*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 72592*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 72600*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 72606*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72609*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 72618*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 72624*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72627*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 72636*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 72639*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 72649*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 72652*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPUWZrrik:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/* 72660*/          0, /*End of Scope*/
/* 72661*/        /*Scope*/ 40|128,1/*168*/, /*->72831*/
/* 72663*/          OPC_CheckChild0Type, MVT::v8i16,
/* 72665*/          OPC_RecordChild1, // #3 = $src2
/* 72666*/          OPC_MoveChild2,
/* 72667*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 72670*/          OPC_MoveParent,
/* 72671*/          OPC_Scope, 78, /*->72751*/ // 2 children in Scope
/* 72673*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 72675*/            OPC_MoveParent,
/* 72676*/            OPC_CheckType, MVT::v8i1,
/* 72678*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 72680*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 72683*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 72691*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 72697*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72700*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 72709*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 72715*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72718*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 72727*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 72730*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 72740*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 72743*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPWZrrik:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 72751*/          /*Scope*/ 78, /*->72830*/
/* 72752*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 72754*/            OPC_MoveParent,
/* 72755*/            OPC_CheckType, MVT::v8i1,
/* 72757*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 72759*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 72762*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 72770*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 72776*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72779*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 72788*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 72794*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72797*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 72806*/            OPC_EmitNodeXForm, 7, 1, // X86pcmpm_imm
/* 72809*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 72819*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 72822*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUWZrrik:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 72830*/          0, /*End of Scope*/
/* 72831*/        0, /*End of Scope*/
/* 72832*/      /*Scope*/ 103|128,10/*1383*/, /*->74217*/
/* 72834*/        OPC_MoveChild0,
/* 72835*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 72838*/        OPC_RecordChild0, // #1 = $src1
/* 72839*/        OPC_Scope, 42|128,1/*170*/, /*->73012*/ // 8 children in Scope
/* 72842*/          OPC_CheckChild0Type, MVT::v8i32,
/* 72844*/          OPC_RecordChild1, // #2 = $src2
/* 72845*/          OPC_MoveChild2,
/* 72846*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 72849*/          OPC_MoveParent,
/* 72850*/          OPC_Scope, 79, /*->72931*/ // 2 children in Scope
/* 72852*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 72854*/            OPC_MoveParent,
/* 72855*/            OPC_RecordChild1, // #3 = $mask
/* 72856*/            OPC_CheckType, MVT::v8i1,
/* 72858*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 72860*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 72863*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 72871*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 72877*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72880*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 72889*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 72895*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72898*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 72907*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 72910*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 72920*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 72923*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK8:{ *:[v8i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPDZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 72931*/          /*Scope*/ 79, /*->73011*/
/* 72932*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 72934*/            OPC_MoveParent,
/* 72935*/            OPC_RecordChild1, // #3 = $mask
/* 72936*/            OPC_CheckType, MVT::v8i1,
/* 72938*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 72940*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 72943*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 72951*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 72957*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72960*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 72969*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 72975*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 72978*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 72987*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 72990*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73000*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 73003*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK8:{ *:[v8i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUDZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 73011*/          0, /*End of Scope*/
/* 73012*/        /*Scope*/ 42|128,1/*170*/, /*->73184*/
/* 73014*/          OPC_CheckChild0Type, MVT::v4i32,
/* 73016*/          OPC_RecordChild1, // #2 = $src2
/* 73017*/          OPC_MoveChild2,
/* 73018*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 73021*/          OPC_MoveParent,
/* 73022*/          OPC_Scope, 79, /*->73103*/ // 2 children in Scope
/* 73024*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 73026*/            OPC_MoveParent,
/* 73027*/            OPC_RecordChild1, // #3 = $mask
/* 73028*/            OPC_CheckType, MVT::v4i1,
/* 73030*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 73032*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 73035*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73043*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 73049*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73052*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 73061*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 73067*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73070*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 73079*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 73082*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73092*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 73095*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPDZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 73103*/          /*Scope*/ 79, /*->73183*/
/* 73104*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 73106*/            OPC_MoveParent,
/* 73107*/            OPC_RecordChild1, // #3 = $mask
/* 73108*/            OPC_CheckType, MVT::v4i1,
/* 73110*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 73112*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 73115*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73123*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 73129*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73132*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 73141*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 73147*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73150*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 73159*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 73162*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73172*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 73175*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUDZrrik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 73183*/          0, /*End of Scope*/
/* 73184*/        /*Scope*/ 42|128,1/*170*/, /*->73356*/
/* 73186*/          OPC_CheckChild0Type, MVT::v4i64,
/* 73188*/          OPC_RecordChild1, // #2 = $src2
/* 73189*/          OPC_MoveChild2,
/* 73190*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 73193*/          OPC_MoveParent,
/* 73194*/          OPC_Scope, 79, /*->73275*/ // 2 children in Scope
/* 73196*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 73198*/            OPC_MoveParent,
/* 73199*/            OPC_RecordChild1, // #3 = $mask
/* 73200*/            OPC_CheckType, MVT::v4i1,
/* 73202*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 73204*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 73207*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73215*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 73221*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73224*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 73233*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 73239*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73242*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 73251*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 73254*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73264*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 73267*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPQZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 73275*/          /*Scope*/ 79, /*->73355*/
/* 73276*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 73278*/            OPC_MoveParent,
/* 73279*/            OPC_RecordChild1, // #3 = $mask
/* 73280*/            OPC_CheckType, MVT::v4i1,
/* 73282*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 73284*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 73287*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73295*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 73301*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73304*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 73313*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 73319*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73322*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 73331*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 73334*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73344*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 73347*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUQZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 73355*/          0, /*End of Scope*/
/* 73356*/        /*Scope*/ 42|128,1/*170*/, /*->73528*/
/* 73358*/          OPC_CheckChild0Type, MVT::v2i64,
/* 73360*/          OPC_RecordChild1, // #2 = $src2
/* 73361*/          OPC_MoveChild2,
/* 73362*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 73365*/          OPC_MoveParent,
/* 73366*/          OPC_Scope, 79, /*->73447*/ // 2 children in Scope
/* 73368*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 73370*/            OPC_MoveParent,
/* 73371*/            OPC_RecordChild1, // #3 = $mask
/* 73372*/            OPC_CheckType, MVT::v2i1,
/* 73374*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 73376*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 73379*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73387*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 73393*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73396*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 73405*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 73411*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73414*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 73423*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 73426*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73436*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 73439*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK2:{ *:[v2i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPQZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 73447*/          /*Scope*/ 79, /*->73527*/
/* 73448*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 73450*/            OPC_MoveParent,
/* 73451*/            OPC_RecordChild1, // #3 = $mask
/* 73452*/            OPC_CheckType, MVT::v2i1,
/* 73454*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 73456*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 73459*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73467*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 73473*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73476*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 73485*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 73491*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73494*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 73503*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 73506*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73516*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 73519*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK2:{ *:[v2i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPUQZrrik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 73527*/          0, /*End of Scope*/
/* 73528*/        /*Scope*/ 42|128,1/*170*/, /*->73700*/
/* 73530*/          OPC_CheckChild0Type, MVT::v32i8,
/* 73532*/          OPC_RecordChild1, // #2 = $src2
/* 73533*/          OPC_MoveChild2,
/* 73534*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 73537*/          OPC_MoveParent,
/* 73538*/          OPC_Scope, 79, /*->73619*/ // 2 children in Scope
/* 73540*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 73542*/            OPC_MoveParent,
/* 73543*/            OPC_RecordChild1, // #3 = $mask
/* 73544*/            OPC_CheckType, MVT::v32i1,
/* 73546*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 73548*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 73551*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73559*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 73565*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73568*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 73577*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 73583*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73586*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 73595*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 73598*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73608*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 73611*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK32:{ *:[v32i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPBZrrik:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v32i1] }:$cc)), VK32:{ *:[i32] })
/* 73619*/          /*Scope*/ 79, /*->73699*/
/* 73620*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 73622*/            OPC_MoveParent,
/* 73623*/            OPC_RecordChild1, // #3 = $mask
/* 73624*/            OPC_CheckType, MVT::v32i1,
/* 73626*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 73628*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 73631*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73639*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 73645*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73648*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 73657*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 73663*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73666*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 73675*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 73678*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73688*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 73691*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v32i1] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK32:{ *:[v32i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPUBZrrik:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v32i1] }:$cc)), VK32:{ *:[i32] })
/* 73699*/          0, /*End of Scope*/
/* 73700*/        /*Scope*/ 42|128,1/*170*/, /*->73872*/
/* 73702*/          OPC_CheckChild0Type, MVT::v16i8,
/* 73704*/          OPC_RecordChild1, // #2 = $src2
/* 73705*/          OPC_MoveChild2,
/* 73706*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 73709*/          OPC_MoveParent,
/* 73710*/          OPC_Scope, 79, /*->73791*/ // 2 children in Scope
/* 73712*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 73714*/            OPC_MoveParent,
/* 73715*/            OPC_RecordChild1, // #3 = $mask
/* 73716*/            OPC_CheckType, MVT::v16i1,
/* 73718*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 73720*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 73723*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73731*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 73737*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73740*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 73749*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 73755*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73758*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 73767*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 73770*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73780*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 73783*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK16:{ *:[v16i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPBZrrik:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/* 73791*/          /*Scope*/ 79, /*->73871*/
/* 73792*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 73794*/            OPC_MoveParent,
/* 73795*/            OPC_RecordChild1, // #3 = $mask
/* 73796*/            OPC_CheckType, MVT::v16i1,
/* 73798*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 73800*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 73803*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73811*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 73817*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73820*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 73829*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 73835*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73838*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 73847*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 73850*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73860*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 73863*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK16:{ *:[v16i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPUBZrrik:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$mask, VK64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/* 73871*/          0, /*End of Scope*/
/* 73872*/        /*Scope*/ 42|128,1/*170*/, /*->74044*/
/* 73874*/          OPC_CheckChild0Type, MVT::v16i16,
/* 73876*/          OPC_RecordChild1, // #2 = $src2
/* 73877*/          OPC_MoveChild2,
/* 73878*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 73881*/          OPC_MoveParent,
/* 73882*/          OPC_Scope, 79, /*->73963*/ // 2 children in Scope
/* 73884*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 73886*/            OPC_MoveParent,
/* 73887*/            OPC_RecordChild1, // #3 = $mask
/* 73888*/            OPC_CheckType, MVT::v16i1,
/* 73890*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 73892*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 73895*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73903*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 73909*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73912*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 73921*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 73927*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73930*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 73939*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 73942*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 73952*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 73955*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK16:{ *:[v16i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPWZrrik:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/* 73963*/          /*Scope*/ 79, /*->74043*/
/* 73964*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 73966*/            OPC_MoveParent,
/* 73967*/            OPC_RecordChild1, // #3 = $mask
/* 73968*/            OPC_CheckType, MVT::v16i1,
/* 73970*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 73972*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 73975*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 73983*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 73989*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73992*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 74001*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 74007*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 74010*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 74019*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 74022*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 74032*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 74035*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v16i1] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK16:{ *:[v16i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPUWZrrik:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/* 74043*/          0, /*End of Scope*/
/* 74044*/        /*Scope*/ 42|128,1/*170*/, /*->74216*/
/* 74046*/          OPC_CheckChild0Type, MVT::v8i16,
/* 74048*/          OPC_RecordChild1, // #2 = $src2
/* 74049*/          OPC_MoveChild2,
/* 74050*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 74053*/          OPC_MoveParent,
/* 74054*/          OPC_Scope, 79, /*->74135*/ // 2 children in Scope
/* 74056*/            OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/* 74058*/            OPC_MoveParent,
/* 74059*/            OPC_RecordChild1, // #3 = $mask
/* 74060*/            OPC_CheckType, MVT::v8i1,
/* 74062*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 74064*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 74067*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 74075*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 74081*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74084*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 74093*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 74099*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74102*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 74111*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 74114*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 74124*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 74127*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc, VK8:{ *:[v8i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPWZrrik:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 74135*/          /*Scope*/ 79, /*->74215*/
/* 74136*/            OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/* 74138*/            OPC_MoveParent,
/* 74139*/            OPC_RecordChild1, // #3 = $mask
/* 74140*/            OPC_CheckType, MVT::v8i1,
/* 74142*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 74144*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 74147*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 74155*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 74161*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74164*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 74173*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 74179*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74182*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 74191*/            OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/* 74194*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 74204*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 74207*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 13, 14, 
                      // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc, VK8:{ *:[v8i1] }:$mask) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUWZrrik:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 74215*/          0, /*End of Scope*/
/* 74216*/        0, /*End of Scope*/
/* 74217*/      /*Scope*/ 61, /*->74279*/
/* 74218*/        OPC_MoveChild1,
/* 74219*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VPSHUFBITQMB),
/* 74222*/        OPC_RecordChild0, // #1 = $src1
/* 74223*/        OPC_Scope, 17, /*->74242*/ // 3 children in Scope
/* 74225*/          OPC_CheckChild0Type, MVT::v64i8,
/* 74227*/          OPC_RecordChild1, // #2 = $src2
/* 74228*/          OPC_MoveParent,
/* 74229*/          OPC_CheckType, MVT::v64i1,
/* 74231*/          OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/* 74233*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZrrk), 0,
                        MVT::v64i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, (X86Vpshufbitqmb:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)) - Complexity = 6
                    // Dst: (VPSHUFBITQMBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/* 74242*/        /*Scope*/ 17, /*->74260*/
/* 74243*/          OPC_CheckChild0Type, MVT::v32i8,
/* 74245*/          OPC_RecordChild1, // #2 = $src2
/* 74246*/          OPC_MoveParent,
/* 74247*/          OPC_CheckType, MVT::v32i1,
/* 74249*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 74251*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ256rrk), 0,
                        MVT::v32i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, (X86Vpshufbitqmb:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)) - Complexity = 6
                    // Dst: (VPSHUFBITQMBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/* 74260*/        /*Scope*/ 17, /*->74278*/
/* 74261*/          OPC_CheckChild0Type, MVT::v16i8,
/* 74263*/          OPC_RecordChild1, // #2 = $src2
/* 74264*/          OPC_MoveParent,
/* 74265*/          OPC_CheckType, MVT::v16i1,
/* 74267*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 74269*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ128rrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpshufbitqmb:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)) - Complexity = 6
                    // Dst: (VPSHUFBITQMBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/* 74278*/        0, /*End of Scope*/
/* 74279*/      0, /*End of Scope*/
/* 74280*/    /*Scope*/ 64, /*->74345*/
/* 74281*/      OPC_MoveChild0,
/* 74282*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VPSHUFBITQMB),
/* 74285*/      OPC_RecordChild0, // #0 = $src1
/* 74286*/      OPC_Scope, 18, /*->74306*/ // 3 children in Scope
/* 74288*/        OPC_CheckChild0Type, MVT::v64i8,
/* 74290*/        OPC_RecordChild1, // #1 = $src2
/* 74291*/        OPC_MoveParent,
/* 74292*/        OPC_RecordChild1, // #2 = $mask
/* 74293*/        OPC_CheckType, MVT::v64i1,
/* 74295*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/* 74297*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZrrk), 0,
                      MVT::v64i1, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (and:{ *:[v64i1] } (X86Vpshufbitqmb:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VK64WM:{ *:[v64i1] }:$mask) - Complexity = 6
                  // Dst: (VPSHUFBITQMBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/* 74306*/      /*Scope*/ 18, /*->74325*/
/* 74307*/        OPC_CheckChild0Type, MVT::v32i8,
/* 74309*/        OPC_RecordChild1, // #1 = $src2
/* 74310*/        OPC_MoveParent,
/* 74311*/        OPC_RecordChild1, // #2 = $mask
/* 74312*/        OPC_CheckType, MVT::v32i1,
/* 74314*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 74316*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ256rrk), 0,
                      MVT::v32i1, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (and:{ *:[v32i1] } (X86Vpshufbitqmb:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VK32WM:{ *:[v32i1] }:$mask) - Complexity = 6
                  // Dst: (VPSHUFBITQMBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/* 74325*/      /*Scope*/ 18, /*->74344*/
/* 74326*/        OPC_CheckChild0Type, MVT::v16i8,
/* 74328*/        OPC_RecordChild1, // #1 = $src2
/* 74329*/        OPC_MoveParent,
/* 74330*/        OPC_RecordChild1, // #2 = $mask
/* 74331*/        OPC_CheckType, MVT::v16i1,
/* 74333*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 74335*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ128rrk), 0,
                      MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (and:{ *:[v16i1] } (X86Vpshufbitqmb:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VK16WM:{ *:[v16i1] }:$mask) - Complexity = 6
                  // Dst: (VPSHUFBITQMBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/* 74344*/      0, /*End of Scope*/
/* 74345*/    /*Scope*/ 58|128,2/*314*/, /*->74661*/
/* 74347*/      OPC_RecordChild0, // #0 = $src1
/* 74348*/      OPC_RecordChild1, // #1 = $src2
/* 74349*/      OPC_SwitchType /*10 cases */, 35, MVT::v2i64,// ->74387
/* 74352*/        OPC_Scope, 10, /*->74364*/ // 3 children in Scope
/* 74354*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 74356*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrr), 0,
                        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)
/* 74364*/        /*Scope*/ 10, /*->74375*/
/* 74365*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 74367*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrr), 0,
                        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)
/* 74375*/        /*Scope*/ 10, /*->74386*/
/* 74376*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 74378*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPANDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 74386*/        0, /*End of Scope*/
/* 74387*/      /*SwitchType*/ 35, MVT::v4i64,// ->74424
/* 74389*/        OPC_Scope, 10, /*->74401*/ // 3 children in Scope
/* 74391*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 74393*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPANDYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 74401*/        /*Scope*/ 10, /*->74412*/
/* 74402*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 74404*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrr), 0,
                        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)
/* 74412*/        /*Scope*/ 10, /*->74423*/
/* 74413*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 74415*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPANDQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 74423*/        0, /*End of Scope*/
/* 74424*/      /*SwitchType*/ 57, MVT::v8i1,// ->74483
/* 74426*/        OPC_Scope, 10, /*->74438*/ // 2 children in Scope
/* 74428*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/* 74430*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KANDBrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2) - Complexity = 3
                    // Dst: (KANDBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/* 74438*/        /*Scope*/ 43, /*->74482*/
/* 74439*/          OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/* 74441*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 74444*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 74452*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 74455*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 74463*/          OPC_EmitNode1, TARGET_VAL(X86::KANDWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 74471*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 74474*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 6, 7, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KANDWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/* 74482*/        0, /*End of Scope*/
/* 74483*/      /*SwitchType*/ 10, MVT::v16i1,// ->74495
/* 74485*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 74487*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2) - Complexity = 3
                  // Dst: (KANDWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/* 74495*/      /*SwitchType*/ 10, MVT::v32i1,// ->74507
/* 74497*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 74499*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2) - Complexity = 3
                  // Dst: (KANDDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/* 74507*/      /*SwitchType*/ 10, MVT::v64i1,// ->74519
/* 74509*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 74511*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2) - Complexity = 3
                  // Dst: (KANDQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/* 74519*/      /*SwitchType*/ 10, MVT::v8i64,// ->74531
/* 74521*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 74523*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPANDQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 74531*/      /*SwitchType*/ 41, MVT::v1i1,// ->74574
/* 74533*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 74536*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 74544*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 74547*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 74555*/        OPC_EmitNode1, TARGET_VAL(X86::KANDWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 74563*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 74566*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i1, 2/*#Ops*/, 6, 7, 
                  // Src: (and:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, VK1:{ *:[v1i1] }:$src2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KANDWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 74574*/      /*SwitchType*/ 41, MVT::v2i1,// ->74617
/* 74576*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 74579*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 74587*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 74590*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 74598*/        OPC_EmitNode1, TARGET_VAL(X86::KANDWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 74606*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 74609*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 6, 7, 
                  // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, VK2:{ *:[v2i1] }:$src2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KANDWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 74617*/      /*SwitchType*/ 41, MVT::v4i1,// ->74660
/* 74619*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 74622*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 74630*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 74633*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 74641*/        OPC_EmitNode1, TARGET_VAL(X86::KANDWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 74649*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 74652*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 6, 7, 
                  // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, VK4:{ *:[v4i1] }:$src2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KANDWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/* 74660*/      0, // EndSwitchType
/* 74661*/    0, /*End of Scope*/
/* 74662*/  /*SwitchOpcode*/ 106|128,13/*1770*/, TARGET_VAL(X86ISD::CMP),// ->76436
/* 74666*/    OPC_Scope, 6|128,6/*774*/, /*->75443*/ // 6 children in Scope
/* 74669*/      OPC_MoveChild0,
/* 74670*/      OPC_SwitchOpcode /*2 cases */, 32|128,4/*544*/, TARGET_VAL(ISD::AND),// ->75219
/* 74675*/        OPC_Scope, 30|128,1/*158*/, /*->74836*/ // 4 children in Scope
/* 74678*/          OPC_MoveChild0,
/* 74679*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74682*/          OPC_RecordMemRef,
/* 74683*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 74684*/          OPC_CheckFoldableChainNode,
/* 74685*/          OPC_RecordChild1, // #1 = $dst
/* 74686*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74688*/          OPC_Scope, 40, /*->74730*/ // 4 children in Scope
/* 74690*/            OPC_CheckPredicate, 9, // Predicate_load
/* 74692*/            OPC_MoveParent,
/* 74693*/            OPC_RecordChild1, // #2 = $src
/* 74694*/            OPC_MoveChild1,
/* 74695*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74698*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 74700*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/* 74702*/            OPC_MoveParent,
/* 74703*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 74705*/            OPC_CheckType, MVT::i64,
/* 74707*/            OPC_MoveParent,
/* 74708*/            OPC_CheckChild1Integer, 0, 
/* 74710*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 74712*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 74715*/            OPC_EmitMergeInputChains1_0,
/* 74716*/            OPC_EmitConvertToTarget, 2,
/* 74718*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          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>><<P:Predicate_i64immSExt32_su>>:$src)<<P:Predicate_and_su>>, 0:{ *:[i64] }) - Complexity = 38
                      // Dst: (TEST64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/* 74730*/          /*Scope*/ 34, /*->74765*/
/* 74731*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/* 74733*/            OPC_MoveParent,
/* 74734*/            OPC_RecordChild1, // #2 = $src
/* 74735*/            OPC_MoveChild1,
/* 74736*/            OPC_CheckPredicate, 16, // Predicate_imm8_su
/* 74738*/            OPC_MoveParent,
/* 74739*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 74741*/            OPC_CheckType, MVT::i8,
/* 74743*/            OPC_MoveParent,
/* 74744*/            OPC_CheckChild1Integer, 0, 
/* 74746*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 74749*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 74752*/            OPC_EmitMergeInputChains1_0,
/* 74753*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          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_loadi8>>, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src)<<P:Predicate_and_su>>, 0:{ *:[i8] }) - Complexity = 37
                      // Dst: (TEST8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/* 74765*/          /*Scope*/ 34, /*->74800*/
/* 74766*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/* 74768*/            OPC_MoveParent,
/* 74769*/            OPC_RecordChild1, // #2 = $src
/* 74770*/            OPC_MoveChild1,
/* 74771*/            OPC_CheckPredicate, 16, // Predicate_imm16_su
/* 74773*/            OPC_MoveParent,
/* 74774*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 74776*/            OPC_CheckType, MVT::i16,
/* 74778*/            OPC_MoveParent,
/* 74779*/            OPC_CheckChild1Integer, 0, 
/* 74781*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 74784*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 74787*/            OPC_EmitMergeInputChains1_0,
/* 74788*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          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_loadi16>>, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src)<<P:Predicate_and_su>>, 0:{ *:[i16] }) - Complexity = 37
                      // Dst: (TEST16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/* 74800*/          /*Scope*/ 34, /*->74835*/
/* 74801*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 74803*/            OPC_MoveParent,
/* 74804*/            OPC_RecordChild1, // #2 = $src
/* 74805*/            OPC_MoveChild1,
/* 74806*/            OPC_CheckPredicate, 16, // Predicate_imm32_su
/* 74808*/            OPC_MoveParent,
/* 74809*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 74811*/            OPC_CheckType, MVT::i32,
/* 74813*/            OPC_MoveParent,
/* 74814*/            OPC_CheckChild1Integer, 0, 
/* 74816*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 74819*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 74822*/            OPC_EmitMergeInputChains1_0,
/* 74823*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          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_loadi32>>, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 37
                      // Dst: (TEST32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/* 74835*/          0, /*End of Scope*/
/* 74836*/        /*Scope*/ 5|128,1/*133*/, /*->74971*/
/* 74838*/          OPC_RecordChild0, // #0 = $src
/* 74839*/          OPC_MoveChild0,
/* 74840*/          OPC_Scope, 42, /*->74884*/ // 3 children in Scope
/* 74842*/            OPC_CheckPredicate, 16, // Predicate_imm8_su
/* 74844*/            OPC_MoveParent,
/* 74845*/            OPC_MoveChild1,
/* 74846*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74849*/            OPC_RecordMemRef,
/* 74850*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 74851*/            OPC_CheckFoldableChainNode,
/* 74852*/            OPC_RecordChild1, // #2 = $dst
/* 74853*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74855*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/* 74857*/            OPC_MoveParent,
/* 74858*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 74860*/            OPC_CheckType, MVT::i8,
/* 74862*/            OPC_MoveParent,
/* 74863*/            OPC_CheckChild1Integer, 0, 
/* 74865*/            OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #3
/* 74868*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 74871*/            OPC_EmitMergeInputChains1_1,
/* 74872*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i8] } relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src, (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>)<<P:Predicate_and_su>>, 0:{ *:[i8] }) - Complexity = 37
                      // Dst: (TEST8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/* 74884*/          /*Scope*/ 42, /*->74927*/
/* 74885*/            OPC_CheckPredicate, 16, // Predicate_imm16_su
/* 74887*/            OPC_MoveParent,
/* 74888*/            OPC_MoveChild1,
/* 74889*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74892*/            OPC_RecordMemRef,
/* 74893*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 74894*/            OPC_CheckFoldableChainNode,
/* 74895*/            OPC_RecordChild1, // #2 = $dst
/* 74896*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74898*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/* 74900*/            OPC_MoveParent,
/* 74901*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 74903*/            OPC_CheckType, MVT::i16,
/* 74905*/            OPC_MoveParent,
/* 74906*/            OPC_CheckChild1Integer, 0, 
/* 74908*/            OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #3
/* 74911*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 74914*/            OPC_EmitMergeInputChains1_1,
/* 74915*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i16] } relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src, (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)<<P:Predicate_and_su>>, 0:{ *:[i16] }) - Complexity = 37
                      // Dst: (TEST16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/* 74927*/          /*Scope*/ 42, /*->74970*/
/* 74928*/            OPC_CheckPredicate, 16, // Predicate_imm32_su
/* 74930*/            OPC_MoveParent,
/* 74931*/            OPC_MoveChild1,
/* 74932*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74935*/            OPC_RecordMemRef,
/* 74936*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 74937*/            OPC_CheckFoldableChainNode,
/* 74938*/            OPC_RecordChild1, // #2 = $dst
/* 74939*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74941*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 74943*/            OPC_MoveParent,
/* 74944*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 74946*/            OPC_CheckType, MVT::i32,
/* 74948*/            OPC_MoveParent,
/* 74949*/            OPC_CheckChild1Integer, 0, 
/* 74951*/            OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #3
/* 74954*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 74957*/            OPC_EmitMergeInputChains1_1,
/* 74958*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 37
                      // Dst: (TEST32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/* 74970*/          0, /*End of Scope*/
/* 74971*/        /*Scope*/ 124, /*->75096*/
/* 74972*/          OPC_MoveChild0,
/* 74973*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74976*/          OPC_RecordMemRef,
/* 74977*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 74978*/          OPC_CheckFoldableChainNode,
/* 74979*/          OPC_RecordChild1, // #1 = $dst
/* 74980*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74982*/          OPC_Scope, 27, /*->75011*/ // 4 children in Scope
/* 74984*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/* 74986*/            OPC_MoveParent,
/* 74987*/            OPC_RecordChild1, // #2 = $src
/* 74988*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 74990*/            OPC_CheckType, MVT::i8,
/* 74992*/            OPC_MoveParent,
/* 74993*/            OPC_CheckChild1Integer, 0, 
/* 74995*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 74998*/            OPC_EmitMergeInputChains1_0,
/* 74999*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, GR8:{ *:[i8] }:$src)<<P:Predicate_and_su>>, 0:{ *:[i8] }) - Complexity = 34
                      // Dst: (TEST8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 75011*/          /*Scope*/ 27, /*->75039*/
/* 75012*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/* 75014*/            OPC_MoveParent,
/* 75015*/            OPC_RecordChild1, // #2 = $src
/* 75016*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 75018*/            OPC_CheckType, MVT::i16,
/* 75020*/            OPC_MoveParent,
/* 75021*/            OPC_CheckChild1Integer, 0, 
/* 75023*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75026*/            OPC_EmitMergeInputChains1_0,
/* 75027*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:{ *:[i16] }:$src)<<P:Predicate_and_su>>, 0:{ *:[i16] }) - Complexity = 34
                      // Dst: (TEST16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 75039*/          /*Scope*/ 27, /*->75067*/
/* 75040*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 75042*/            OPC_MoveParent,
/* 75043*/            OPC_RecordChild1, // #2 = $src
/* 75044*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 75046*/            OPC_CheckType, MVT::i32,
/* 75048*/            OPC_MoveParent,
/* 75049*/            OPC_CheckChild1Integer, 0, 
/* 75051*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75054*/            OPC_EmitMergeInputChains1_0,
/* 75055*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:{ *:[i32] }:$src)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 34
                      // Dst: (TEST32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 75067*/          /*Scope*/ 27, /*->75095*/
/* 75068*/            OPC_CheckPredicate, 9, // Predicate_load
/* 75070*/            OPC_MoveParent,
/* 75071*/            OPC_RecordChild1, // #2 = $src
/* 75072*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 75074*/            OPC_CheckType, MVT::i64,
/* 75076*/            OPC_MoveParent,
/* 75077*/            OPC_CheckChild1Integer, 0, 
/* 75079*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75082*/            OPC_EmitMergeInputChains1_0,
/* 75083*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:{ *:[i64] }:$src)<<P:Predicate_and_su>>, 0:{ *:[i64] }) - Complexity = 34
                      // Dst: (TEST64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 75095*/          0, /*End of Scope*/
/* 75096*/        /*Scope*/ 121, /*->75218*/
/* 75097*/          OPC_RecordChild0, // #0 = $src
/* 75098*/          OPC_MoveChild1,
/* 75099*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75102*/          OPC_RecordMemRef,
/* 75103*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 75104*/          OPC_CheckFoldableChainNode,
/* 75105*/          OPC_RecordChild1, // #2 = $dst
/* 75106*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75108*/          OPC_Scope, 26, /*->75136*/ // 4 children in Scope
/* 75110*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/* 75112*/            OPC_MoveParent,
/* 75113*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 75115*/            OPC_CheckType, MVT::i8,
/* 75117*/            OPC_MoveParent,
/* 75118*/            OPC_CheckChild1Integer, 0, 
/* 75120*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75123*/            OPC_EmitMergeInputChains1_1,
/* 75124*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 0, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i8] } GR8:{ *:[i8] }:$src, (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>)<<P:Predicate_and_su>>, 0:{ *:[i8] }) - Complexity = 34
                      // Dst: (TEST8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 75136*/          /*Scope*/ 26, /*->75163*/
/* 75137*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/* 75139*/            OPC_MoveParent,
/* 75140*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 75142*/            OPC_CheckType, MVT::i16,
/* 75144*/            OPC_MoveParent,
/* 75145*/            OPC_CheckChild1Integer, 0, 
/* 75147*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75150*/            OPC_EmitMergeInputChains1_1,
/* 75151*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 0, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i16] } GR16:{ *:[i16] }:$src, (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)<<P:Predicate_and_su>>, 0:{ *:[i16] }) - Complexity = 34
                      // Dst: (TEST16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 75163*/          /*Scope*/ 26, /*->75190*/
/* 75164*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 75166*/            OPC_MoveParent,
/* 75167*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 75169*/            OPC_CheckType, MVT::i32,
/* 75171*/            OPC_MoveParent,
/* 75172*/            OPC_CheckChild1Integer, 0, 
/* 75174*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75177*/            OPC_EmitMergeInputChains1_1,
/* 75178*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 0, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 34
                      // Dst: (TEST32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 75190*/          /*Scope*/ 26, /*->75217*/
/* 75191*/            OPC_CheckPredicate, 9, // Predicate_load
/* 75193*/            OPC_MoveParent,
/* 75194*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 75196*/            OPC_CheckType, MVT::i64,
/* 75198*/            OPC_MoveParent,
/* 75199*/            OPC_CheckChild1Integer, 0, 
/* 75201*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75204*/            OPC_EmitMergeInputChains1_1,
/* 75205*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 0, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_and_su>>, 0:{ *:[i64] }) - Complexity = 34
                      // Dst: (TEST64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 75217*/          0, /*End of Scope*/
/* 75218*/        0, /*End of Scope*/
/* 75219*/      /*SwitchOpcode*/ 91|128,1/*219*/, TARGET_VAL(ISD::LOAD),// ->75442
/* 75223*/        OPC_RecordMemRef,
/* 75224*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 75225*/        OPC_CheckFoldableChainNode,
/* 75226*/        OPC_RecordChild1, // #1 = $dst
/* 75227*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75229*/        OPC_SwitchType /*4 cases */, 57, MVT::i16,// ->75289
/* 75232*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/* 75234*/          OPC_MoveParent,
/* 75235*/          OPC_RecordChild1, // #2 = $src
/* 75236*/          OPC_MoveChild1,
/* 75237*/          OPC_Scope, 26, /*->75265*/ // 2 children in Scope
/* 75239*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 75242*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 75244*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 75246*/            OPC_MoveParent,
/* 75247*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75250*/            OPC_EmitMergeInputChains1_0,
/* 75251*/            OPC_EmitConvertToTarget, 2,
/* 75253*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86cmp:{ *:[i32] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>><<P:Predicate_i16immSExt8_su>>:$src) - Complexity = 29
                      // Dst: (CMP16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/* 75265*/          /*Scope*/ 22, /*->75288*/
/* 75266*/            OPC_CheckPredicate, 16, // Predicate_imm16_su
/* 75268*/            OPC_MoveParent,
/* 75269*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75272*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 75275*/            OPC_EmitMergeInputChains1_0,
/* 75276*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86cmp:{ *:[i32] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src) - Complexity = 28
                      // Dst: (CMP16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/* 75288*/          0, /*End of Scope*/
/* 75289*/        /*SwitchType*/ 57, MVT::i32,// ->75348
/* 75291*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 75293*/          OPC_MoveParent,
/* 75294*/          OPC_RecordChild1, // #2 = $src
/* 75295*/          OPC_MoveChild1,
/* 75296*/          OPC_Scope, 26, /*->75324*/ // 2 children in Scope
/* 75298*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 75301*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 75303*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 75305*/            OPC_MoveParent,
/* 75306*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75309*/            OPC_EmitMergeInputChains1_0,
/* 75310*/            OPC_EmitConvertToTarget, 2,
/* 75312*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86cmp:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>><<P:Predicate_i32immSExt8_su>>:$src) - Complexity = 29
                      // Dst: (CMP32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 75324*/          /*Scope*/ 22, /*->75347*/
/* 75325*/            OPC_CheckPredicate, 16, // Predicate_imm32_su
/* 75327*/            OPC_MoveParent,
/* 75328*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75331*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 75334*/            OPC_EmitMergeInputChains1_0,
/* 75335*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86cmp:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src) - Complexity = 28
                      // Dst: (CMP32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/* 75347*/          0, /*End of Scope*/
/* 75348*/        /*SwitchType*/ 62, MVT::i64,// ->75412
/* 75350*/          OPC_CheckPredicate, 9, // Predicate_load
/* 75352*/          OPC_MoveParent,
/* 75353*/          OPC_RecordChild1, // #2 = $src
/* 75354*/          OPC_MoveChild1,
/* 75355*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 75358*/          OPC_Scope, 25, /*->75385*/ // 2 children in Scope
/* 75360*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 75362*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 75364*/            OPC_MoveParent,
/* 75365*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 75367*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75370*/            OPC_EmitMergeInputChains1_0,
/* 75371*/            OPC_EmitConvertToTarget, 2,
/* 75373*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          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>><<P:Predicate_i64immSExt8_su>>:$src) - Complexity = 29
                      // Dst: (CMP64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/* 75385*/          /*Scope*/ 25, /*->75411*/
/* 75386*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 75388*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/* 75390*/            OPC_MoveParent,
/* 75391*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 75393*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75396*/            OPC_EmitMergeInputChains1_0,
/* 75397*/            OPC_EmitConvertToTarget, 2,
/* 75399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          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>><<P:Predicate_i64immSExt32_su>>:$src) - Complexity = 29
                      // Dst: (CMP64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src)
/* 75411*/          0, /*End of Scope*/
/* 75412*/        /*SwitchType*/ 27, MVT::i8,// ->75441
/* 75414*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/* 75416*/          OPC_MoveParent,
/* 75417*/          OPC_RecordChild1, // #2 = $src
/* 75418*/          OPC_MoveChild1,
/* 75419*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/* 75421*/          OPC_MoveParent,
/* 75422*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75425*/          OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 75428*/          OPC_EmitMergeInputChains1_0,
/* 75429*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMP8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86cmp:{ *:[i32] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src) - Complexity = 28
                    // Dst: (CMP8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/* 75441*/        0, // EndSwitchType
/* 75442*/      0, // EndSwitchOpcode
/* 75443*/    /*Scope*/ 3|128,1/*131*/, /*->75576*/
/* 75445*/      OPC_RecordChild0, // #0 = $src1
/* 75446*/      OPC_Scope, 31, /*->75479*/ // 4 children in Scope
/* 75448*/        OPC_CheckChild0Type, MVT::i8,
/* 75450*/        OPC_MoveChild1,
/* 75451*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75454*/        OPC_RecordMemRef,
/* 75455*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 75456*/        OPC_CheckFoldableChainNode,
/* 75457*/        OPC_RecordChild1, // #2 = $src2
/* 75458*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75460*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 75462*/        OPC_MoveParent,
/* 75463*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 75466*/        OPC_EmitMergeInputChains1_1,
/* 75467*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMP8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>) - Complexity = 25
                  // Dst: (CMP8rm:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 75479*/      /*Scope*/ 31, /*->75511*/
/* 75480*/        OPC_CheckChild0Type, MVT::i16,
/* 75482*/        OPC_MoveChild1,
/* 75483*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75486*/        OPC_RecordMemRef,
/* 75487*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 75488*/        OPC_CheckFoldableChainNode,
/* 75489*/        OPC_RecordChild1, // #2 = $src2
/* 75490*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75492*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 75494*/        OPC_MoveParent,
/* 75495*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 75498*/        OPC_EmitMergeInputChains1_1,
/* 75499*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMP16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 75511*/      /*Scope*/ 31, /*->75543*/
/* 75512*/        OPC_CheckChild0Type, MVT::i32,
/* 75514*/        OPC_MoveChild1,
/* 75515*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75518*/        OPC_RecordMemRef,
/* 75519*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 75520*/        OPC_CheckFoldableChainNode,
/* 75521*/        OPC_RecordChild1, // #2 = $src2
/* 75522*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75524*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 75526*/        OPC_MoveParent,
/* 75527*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 75530*/        OPC_EmitMergeInputChains1_1,
/* 75531*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMP32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 75543*/      /*Scope*/ 31, /*->75575*/
/* 75544*/        OPC_CheckChild0Type, MVT::i64,
/* 75546*/        OPC_MoveChild1,
/* 75547*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75550*/        OPC_RecordMemRef,
/* 75551*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 75552*/        OPC_CheckFoldableChainNode,
/* 75553*/        OPC_RecordChild1, // #2 = $src2
/* 75554*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75556*/        OPC_CheckPredicate, 9, // Predicate_load
/* 75558*/        OPC_MoveParent,
/* 75559*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 75562*/        OPC_EmitMergeInputChains1_1,
/* 75563*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMP64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 75575*/      0, /*End of Scope*/
/* 75576*/    /*Scope*/ 100, /*->75677*/
/* 75577*/      OPC_MoveChild0,
/* 75578*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75581*/      OPC_RecordMemRef,
/* 75582*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 75583*/      OPC_CheckFoldableChainNode,
/* 75584*/      OPC_RecordChild1, // #1 = $dst
/* 75585*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75587*/      OPC_SwitchType /*4 cases */, 20, MVT::i8,// ->75610
/* 75590*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 75592*/        OPC_MoveParent,
/* 75593*/        OPC_RecordChild1, // #2 = $src
/* 75594*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75597*/        OPC_EmitMergeInputChains1_0,
/* 75598*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMP8mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86cmp:{ *:[i32] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, GR8:{ *:[i8] }:$src) - Complexity = 25
                  // Dst: (CMP8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 75610*/      /*SwitchType*/ 20, MVT::i16,// ->75632
/* 75612*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 75614*/        OPC_MoveParent,
/* 75615*/        OPC_RecordChild1, // #2 = $src
/* 75616*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75619*/        OPC_EmitMergeInputChains1_0,
/* 75620*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMP16mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86cmp:{ *:[i32] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:{ *:[i16] }:$src) - Complexity = 25
                  // Dst: (CMP16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 75632*/      /*SwitchType*/ 20, MVT::i32,// ->75654
/* 75634*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 75636*/        OPC_MoveParent,
/* 75637*/        OPC_RecordChild1, // #2 = $src
/* 75638*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75641*/        OPC_EmitMergeInputChains1_0,
/* 75642*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMP32mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86cmp:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:{ *:[i32] }:$src) - Complexity = 25
                  // Dst: (CMP32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 75654*/      /*SwitchType*/ 20, MVT::i64,// ->75676
/* 75656*/        OPC_CheckPredicate, 9, // Predicate_load
/* 75658*/        OPC_MoveParent,
/* 75659*/        OPC_RecordChild1, // #2 = $src
/* 75660*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 75663*/        OPC_EmitMergeInputChains1_0,
/* 75664*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMP64mr), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 75676*/      0, // EndSwitchType
/* 75677*/    /*Scope*/ 25|128,1/*153*/, /*->75832*/
/* 75679*/      OPC_RecordChild0, // #0 = $src1
/* 75680*/      OPC_Scope, 74, /*->75756*/ // 2 children in Scope
/* 75682*/        OPC_CheckChild0Type, MVT::f32,
/* 75684*/        OPC_MoveChild1,
/* 75685*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75688*/        OPC_RecordMemRef,
/* 75689*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 75690*/        OPC_CheckFoldableChainNode,
/* 75691*/        OPC_RecordChild1, // #2 = $src2
/* 75692*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75694*/        OPC_CheckPredicate, 9, // Predicate_load
/* 75696*/        OPC_MoveParent,
/* 75697*/        OPC_Scope, 18, /*->75717*/ // 3 children in Scope
/* 75699*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 75701*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 75704*/          OPC_EmitMergeInputChains1_1,
/* 75705*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 75717*/        /*Scope*/ 18, /*->75736*/
/* 75718*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 75720*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 75723*/          OPC_EmitMergeInputChains1_1,
/* 75724*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 75736*/        /*Scope*/ 18, /*->75755*/
/* 75737*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 75739*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 75742*/          OPC_EmitMergeInputChains1_1,
/* 75743*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cmp:{ *:[i32] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VUCOMISSZrm:{ *:[i32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 75755*/        0, /*End of Scope*/
/* 75756*/      /*Scope*/ 74, /*->75831*/
/* 75757*/        OPC_CheckChild0Type, MVT::f64,
/* 75759*/        OPC_MoveChild1,
/* 75760*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75763*/        OPC_RecordMemRef,
/* 75764*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 75765*/        OPC_CheckFoldableChainNode,
/* 75766*/        OPC_RecordChild1, // #2 = $src2
/* 75767*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75769*/        OPC_CheckPredicate, 9, // Predicate_load
/* 75771*/        OPC_MoveParent,
/* 75772*/        OPC_Scope, 18, /*->75792*/ // 3 children in Scope
/* 75774*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 75776*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 75779*/          OPC_EmitMergeInputChains1_1,
/* 75780*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 75792*/        /*Scope*/ 18, /*->75811*/
/* 75793*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 75795*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 75798*/          OPC_EmitMergeInputChains1_1,
/* 75799*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/* 75811*/        /*Scope*/ 18, /*->75830*/
/* 75812*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 75814*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 75817*/          OPC_EmitMergeInputChains1_1,
/* 75818*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cmp:{ *:[i32] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VUCOMISDZrm:{ *:[i32] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 75830*/        0, /*End of Scope*/
/* 75831*/      0, /*End of Scope*/
/* 75832*/    /*Scope*/ 109|128,1/*237*/, /*->76071*/
/* 75834*/      OPC_MoveChild0,
/* 75835*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 75838*/      OPC_RecordChild0, // #0 = $src1
/* 75839*/      OPC_Scope, 98, /*->75939*/ // 3 children in Scope
/* 75841*/        OPC_RecordChild1, // #1 = $src2
/* 75842*/        OPC_MoveChild1,
/* 75843*/        OPC_Scope, 27, /*->75872*/ // 4 children in Scope
/* 75845*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 75848*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 75850*/          OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/* 75852*/          OPC_MoveParent,
/* 75853*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 75855*/          OPC_CheckType, MVT::i64,
/* 75857*/          OPC_MoveParent,
/* 75858*/          OPC_CheckChild1Integer, 0, 
/* 75860*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 75862*/          OPC_EmitConvertToTarget, 1,
/* 75864*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST64ri32), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>><<P:Predicate_i64immSExt32_su>>:$src2)<<P:Predicate_and_su>>, 0:{ *:[i64] }) - Complexity = 16
                    // Dst: (TEST64ri32:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/* 75872*/        /*Scope*/ 21, /*->75894*/
/* 75873*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/* 75875*/          OPC_MoveParent,
/* 75876*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 75878*/          OPC_CheckType, MVT::i8,
/* 75880*/          OPC_MoveParent,
/* 75881*/          OPC_CheckChild1Integer, 0, 
/* 75883*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 75886*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST8ri), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i8] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2)<<P:Predicate_and_su>>, 0:{ *:[i8] }) - Complexity = 15
                    // Dst: (TEST8ri:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 75894*/        /*Scope*/ 21, /*->75916*/
/* 75895*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/* 75897*/          OPC_MoveParent,
/* 75898*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 75900*/          OPC_CheckType, MVT::i16,
/* 75902*/          OPC_MoveParent,
/* 75903*/          OPC_CheckChild1Integer, 0, 
/* 75905*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 75908*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST16ri), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i16] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2)<<P:Predicate_and_su>>, 0:{ *:[i16] }) - Complexity = 15
                    // Dst: (TEST16ri:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 75916*/        /*Scope*/ 21, /*->75938*/
/* 75917*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/* 75919*/          OPC_MoveParent,
/* 75920*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 75922*/          OPC_CheckType, MVT::i32,
/* 75924*/          OPC_MoveParent,
/* 75925*/          OPC_CheckChild1Integer, 0, 
/* 75927*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 75930*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST32ri), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 15
                    // Dst: (TEST32ri:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 75938*/        0, /*End of Scope*/
/* 75939*/      /*Scope*/ 72, /*->76012*/
/* 75940*/        OPC_MoveChild0,
/* 75941*/        OPC_Scope, 22, /*->75965*/ // 3 children in Scope
/* 75943*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/* 75945*/          OPC_MoveParent,
/* 75946*/          OPC_RecordChild1, // #1 = $src1
/* 75947*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 75949*/          OPC_CheckType, MVT::i8,
/* 75951*/          OPC_MoveParent,
/* 75952*/          OPC_CheckChild1Integer, 0, 
/* 75954*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 75957*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST8ri), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i8] } relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2, GR8:{ *:[i8] }:$src1)<<P:Predicate_and_su>>, 0:{ *:[i8] }) - Complexity = 15
                    // Dst: (TEST8ri:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 75965*/        /*Scope*/ 22, /*->75988*/
/* 75966*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/* 75968*/          OPC_MoveParent,
/* 75969*/          OPC_RecordChild1, // #1 = $src1
/* 75970*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 75972*/          OPC_CheckType, MVT::i16,
/* 75974*/          OPC_MoveParent,
/* 75975*/          OPC_CheckChild1Integer, 0, 
/* 75977*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 75980*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST16ri), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i16] } relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2, GR16:{ *:[i16] }:$src1)<<P:Predicate_and_su>>, 0:{ *:[i16] }) - Complexity = 15
                    // Dst: (TEST16ri:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 75988*/        /*Scope*/ 22, /*->76011*/
/* 75989*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/* 75991*/          OPC_MoveParent,
/* 75992*/          OPC_RecordChild1, // #1 = $src1
/* 75993*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 75995*/          OPC_CheckType, MVT::i32,
/* 75997*/          OPC_MoveParent,
/* 75998*/          OPC_CheckChild1Integer, 0, 
/* 76000*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 76003*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST32ri), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2, GR32:{ *:[i32] }:$src1)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 15
                    // Dst: (TEST32ri:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 76011*/        0, /*End of Scope*/
/* 76012*/      /*Scope*/ 57, /*->76070*/
/* 76013*/        OPC_RecordChild1, // #1 = $src2
/* 76014*/        OPC_CheckPredicate, 17, // Predicate_and_su
/* 76016*/        OPC_SwitchType /*4 cases */, 11, MVT::i8,// ->76030
/* 76019*/          OPC_MoveParent,
/* 76020*/          OPC_CheckChild1Integer, 0, 
/* 76022*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST8rr), 0,
                        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)
/* 76030*/        /*SwitchType*/ 11, MVT::i16,// ->76043
/* 76032*/          OPC_MoveParent,
/* 76033*/          OPC_CheckChild1Integer, 0, 
/* 76035*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST16rr), 0,
                        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)
/* 76043*/        /*SwitchType*/ 11, MVT::i32,// ->76056
/* 76045*/          OPC_MoveParent,
/* 76046*/          OPC_CheckChild1Integer, 0, 
/* 76048*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST32rr), 0,
                        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)
/* 76056*/        /*SwitchType*/ 11, MVT::i64,// ->76069
/* 76058*/          OPC_MoveParent,
/* 76059*/          OPC_CheckChild1Integer, 0, 
/* 76061*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST64rr), 0,
                        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)
/* 76069*/        0, // EndSwitchType
/* 76070*/      0, /*End of Scope*/
/* 76071*/    /*Scope*/ 106|128,2/*362*/, /*->76435*/
/* 76073*/      OPC_RecordChild0, // #0 = $src1
/* 76074*/      OPC_Scope, 44, /*->76120*/ // 7 children in Scope
/* 76076*/        OPC_CheckChild0Type, MVT::i8,
/* 76078*/        OPC_Scope, 10, /*->76090*/ // 2 children in Scope
/* 76080*/          OPC_CheckChild1Integer, 0, 
/* 76082*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST8rr), 0,
                        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)
/* 76090*/        /*Scope*/ 28, /*->76119*/
/* 76091*/          OPC_RecordChild1, // #1 = $src2
/* 76092*/          OPC_Scope, 15, /*->76109*/ // 2 children in Scope
/* 76094*/            OPC_MoveChild1,
/* 76095*/            OPC_CheckPredicate, 16, // Predicate_imm8_su
/* 76097*/            OPC_MoveParent,
/* 76098*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 76101*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP8ri), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86cmp:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2) - Complexity = 6
                      // Dst: (CMP8ri:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 76109*/          /*Scope*/ 8, /*->76118*/
/* 76110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP8rr), 0,
                          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)
/* 76118*/          0, /*End of Scope*/
/* 76119*/        0, /*End of Scope*/
/* 76120*/      /*Scope*/ 66, /*->76187*/
/* 76121*/        OPC_CheckChild0Type, MVT::i16,
/* 76123*/        OPC_Scope, 10, /*->76135*/ // 2 children in Scope
/* 76125*/          OPC_CheckChild1Integer, 0, 
/* 76127*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST16rr), 0,
                        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)
/* 76135*/        /*Scope*/ 50, /*->76186*/
/* 76136*/          OPC_RecordChild1, // #1 = $src2
/* 76137*/          OPC_Scope, 37, /*->76176*/ // 2 children in Scope
/* 76139*/            OPC_MoveChild1,
/* 76140*/            OPC_Scope, 18, /*->76160*/ // 2 children in Scope
/* 76142*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76145*/              OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 76147*/              OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 76149*/              OPC_MoveParent,
/* 76150*/              OPC_EmitConvertToTarget, 1,
/* 76152*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CMP16ri8), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86cmp:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>><<P:Predicate_i16immSExt8_su>>:$src2) - Complexity = 7
                        // Dst: (CMP16ri8:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/* 76160*/            /*Scope*/ 14, /*->76175*/
/* 76161*/              OPC_CheckPredicate, 16, // Predicate_imm16_su
/* 76163*/              OPC_MoveParent,
/* 76164*/              OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 76167*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CMP16ri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86cmp:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2) - Complexity = 6
                        // Dst: (CMP16ri:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 76175*/            0, /*End of Scope*/
/* 76176*/          /*Scope*/ 8, /*->76185*/
/* 76177*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP16rr), 0,
                          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)
/* 76185*/          0, /*End of Scope*/
/* 76186*/        0, /*End of Scope*/
/* 76187*/      /*Scope*/ 66, /*->76254*/
/* 76188*/        OPC_CheckChild0Type, MVT::i32,
/* 76190*/        OPC_Scope, 10, /*->76202*/ // 2 children in Scope
/* 76192*/          OPC_CheckChild1Integer, 0, 
/* 76194*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST32rr), 0,
                        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)
/* 76202*/        /*Scope*/ 50, /*->76253*/
/* 76203*/          OPC_RecordChild1, // #1 = $src2
/* 76204*/          OPC_Scope, 37, /*->76243*/ // 2 children in Scope
/* 76206*/            OPC_MoveChild1,
/* 76207*/            OPC_Scope, 18, /*->76227*/ // 2 children in Scope
/* 76209*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76212*/              OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 76214*/              OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 76216*/              OPC_MoveParent,
/* 76217*/              OPC_EmitConvertToTarget, 1,
/* 76219*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CMP32ri8), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86cmp:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>><<P:Predicate_i32immSExt8_su>>:$src2) - Complexity = 7
                        // Dst: (CMP32ri8:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 76227*/            /*Scope*/ 14, /*->76242*/
/* 76228*/              OPC_CheckPredicate, 16, // Predicate_imm32_su
/* 76230*/              OPC_MoveParent,
/* 76231*/              OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 76234*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CMP32ri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86cmp:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2) - Complexity = 6
                        // Dst: (CMP32ri:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 76242*/            0, /*End of Scope*/
/* 76243*/          /*Scope*/ 8, /*->76252*/
/* 76244*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP32rr), 0,
                          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)
/* 76252*/          0, /*End of Scope*/
/* 76253*/        0, /*End of Scope*/
/* 76254*/      /*Scope*/ 67, /*->76322*/
/* 76255*/        OPC_CheckChild0Type, MVT::i64,
/* 76257*/        OPC_Scope, 10, /*->76269*/ // 2 children in Scope
/* 76259*/          OPC_CheckChild1Integer, 0, 
/* 76261*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST64rr), 0,
                        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)
/* 76269*/        /*Scope*/ 51, /*->76321*/
/* 76270*/          OPC_RecordChild1, // #1 = $src2
/* 76271*/          OPC_Scope, 38, /*->76311*/ // 2 children in Scope
/* 76273*/            OPC_MoveChild1,
/* 76274*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76277*/            OPC_Scope, 15, /*->76294*/ // 2 children in Scope
/* 76279*/              OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 76281*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 76283*/              OPC_MoveParent,
/* 76284*/              OPC_EmitConvertToTarget, 1,
/* 76286*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CMP64ri8), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86cmp:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>><<P:Predicate_i64immSExt8_su>>:$src2) - Complexity = 7
                        // Dst: (CMP64ri8:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/* 76294*/            /*Scope*/ 15, /*->76310*/
/* 76295*/              OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 76297*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/* 76299*/              OPC_MoveParent,
/* 76300*/              OPC_EmitConvertToTarget, 1,
/* 76302*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CMP64ri32), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86cmp:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>><<P:Predicate_i64immSExt32_su>>:$src2) - Complexity = 7
                        // Dst: (CMP64ri32:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/* 76310*/            0, /*End of Scope*/
/* 76311*/          /*Scope*/ 8, /*->76320*/
/* 76312*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP64rr), 0,
                          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)
/* 76320*/          0, /*End of Scope*/
/* 76321*/        0, /*End of Scope*/
/* 76322*/      /*Scope*/ 49, /*->76372*/
/* 76323*/        OPC_CheckChild0Type, MVT::f32,
/* 76325*/        OPC_RecordChild1, // #1 = $rhs
/* 76326*/        OPC_Scope, 10, /*->76338*/ // 4 children in Scope
/* 76328*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/* 76330*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_FpIr32), 0,
                        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)
/* 76338*/        /*Scope*/ 10, /*->76349*/
/* 76339*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 76341*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSrr), 0,
                        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)
/* 76349*/        /*Scope*/ 10, /*->76360*/
/* 76350*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 76352*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISSrr), 0,
                        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)
/* 76360*/        /*Scope*/ 10, /*->76371*/
/* 76361*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 76363*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSZrr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmp:{ *:[i32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (VUCOMISSZrr:{ *:[i32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/* 76371*/        0, /*End of Scope*/
/* 76372*/      /*Scope*/ 49, /*->76422*/
/* 76373*/        OPC_CheckChild0Type, MVT::f64,
/* 76375*/        OPC_RecordChild1, // #1 = $rhs
/* 76376*/        OPC_Scope, 10, /*->76388*/ // 4 children in Scope
/* 76378*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/* 76380*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_FpIr64), 0,
                        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)
/* 76388*/        /*Scope*/ 10, /*->76399*/
/* 76389*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 76391*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDrr), 0,
                        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)
/* 76399*/        /*Scope*/ 10, /*->76410*/
/* 76400*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 76402*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISDrr), 0,
                        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)
/* 76410*/        /*Scope*/ 10, /*->76421*/
/* 76411*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 76413*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDZrr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmp:{ *:[i32] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (VUCOMISDZrr:{ *:[i32] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/* 76421*/        0, /*End of Scope*/
/* 76422*/      /*Scope*/ 11, /*->76434*/
/* 76423*/        OPC_CheckChild0Type, MVT::f80,
/* 76425*/        OPC_RecordChild1, // #1 = $rhs
/* 76426*/        OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_FpIr80), 0,
                      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)
/* 76434*/      0, /*End of Scope*/
/* 76435*/    0, /*End of Scope*/
/* 76436*/  /*SwitchOpcode*/ 61|128,118/*15165*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->91605
/* 76440*/    OPC_Scope, 75, /*->76517*/ // 216 children in Scope
/* 76442*/      OPC_CheckChild0Integer, 13|128,49/*6285*/, 
/* 76445*/      OPC_RecordChild1, // #0 = $src1
/* 76446*/      OPC_Scope, 47, /*->76495*/ // 2 children in Scope
/* 76448*/        OPC_MoveChild2,
/* 76449*/        OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/* 76452*/        OPC_MoveChild0,
/* 76453*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76456*/        OPC_RecordMemRef,
/* 76457*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 76458*/        OPC_CheckFoldableChainNode,
/* 76459*/        OPC_RecordChild1, // #2 = $src2
/* 76460*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76462*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 76464*/        OPC_CheckType, MVT::i16,
/* 76466*/        OPC_MoveParent,
/* 76467*/        OPC_MoveParent,
/* 76468*/        OPC_RecordChild3, // #3 = $src3
/* 76469*/        OPC_MoveChild3,
/* 76470*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76473*/        OPC_MoveParent,
/* 76474*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 76476*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 76479*/        OPC_EmitMergeInputChains1_1,
/* 76480*/        OPC_EmitConvertToTarget, 3,
/* 76482*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PINSRWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6285:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (anyext:{ *:[i32] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>), (imm:{ *:[i32] }):$src3) - Complexity = 36
                  // Dst: (MMX_PINSRWrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/* 76495*/      /*Scope*/ 20, /*->76516*/
/* 76496*/        OPC_RecordChild2, // #1 = $src2
/* 76497*/        OPC_RecordChild3, // #2 = $src3
/* 76498*/        OPC_MoveChild3,
/* 76499*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76502*/        OPC_MoveParent,
/* 76503*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 76505*/        OPC_EmitConvertToTarget, 2,
/* 76507*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PINSRWrr), 0,
                      MVT::x86mmx, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6285:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 11
                  // Dst: (MMX_PINSRWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$src3)
/* 76516*/      0, /*End of Scope*/
/* 76517*/    /*Scope*/ 68, /*->76586*/
/* 76518*/      OPC_CheckChild0Integer, 1|128,49/*6273*/, 
/* 76521*/      OPC_RecordChild1, // #0 = $src1
/* 76522*/      OPC_Scope, 40, /*->76564*/ // 2 children in Scope
/* 76524*/        OPC_MoveChild2,
/* 76525*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76528*/        OPC_RecordMemRef,
/* 76529*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 76530*/        OPC_CheckFoldableChainNode,
/* 76531*/        OPC_RecordChild1, // #2 = $src2
/* 76532*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76534*/        OPC_CheckPredicate, 9, // Predicate_load
/* 76536*/        OPC_MoveParent,
/* 76537*/        OPC_RecordChild3, // #3 = $src3
/* 76538*/        OPC_MoveChild3,
/* 76539*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76542*/        OPC_MoveParent,
/* 76543*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 76545*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 76548*/        OPC_EmitMergeInputChains1_1,
/* 76549*/        OPC_EmitConvertToTarget, 3,
/* 76551*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PALIGNRrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6273:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (MMX_PALIGNRrmi:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 76564*/      /*Scope*/ 20, /*->76585*/
/* 76565*/        OPC_RecordChild2, // #1 = $src2
/* 76566*/        OPC_RecordChild3, // #2 = $src3
/* 76567*/        OPC_MoveChild3,
/* 76568*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76571*/        OPC_MoveParent,
/* 76572*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 76574*/        OPC_EmitConvertToTarget, 2,
/* 76576*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PALIGNRrri), 0,
                      MVT::x86mmx, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6273:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                  // Dst: (MMX_PALIGNRrri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2, (imm:{ *:[i8] }):$src3)
/* 76585*/      0, /*End of Scope*/
/* 76586*/    /*Scope*/ 65, /*->76652*/
/* 76587*/      OPC_CheckChild0Integer, 121|128,49/*6393*/, 
/* 76590*/      OPC_Scope, 39, /*->76631*/ // 2 children in Scope
/* 76592*/        OPC_MoveChild1,
/* 76593*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76596*/        OPC_RecordMemRef,
/* 76597*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 76598*/        OPC_CheckFoldableChainNode,
/* 76599*/        OPC_RecordChild1, // #1 = $src1
/* 76600*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76602*/        OPC_CheckPredicate, 9, // Predicate_load
/* 76604*/        OPC_MoveParent,
/* 76605*/        OPC_RecordChild2, // #2 = $src2
/* 76606*/        OPC_MoveChild2,
/* 76607*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76610*/        OPC_MoveParent,
/* 76611*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 76613*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 76616*/        OPC_EmitMergeInputChains1_0,
/* 76617*/        OPC_EmitConvertToTarget, 2,
/* 76619*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSHUFWmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6393:{ *:[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)
/* 76631*/      /*Scope*/ 19, /*->76651*/
/* 76632*/        OPC_RecordChild1, // #0 = $src1
/* 76633*/        OPC_RecordChild2, // #1 = $src2
/* 76634*/        OPC_MoveChild2,
/* 76635*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 76638*/        OPC_MoveParent,
/* 76639*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 76641*/        OPC_EmitConvertToTarget, 1,
/* 76643*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSHUFWri), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6393:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 11
                  // Dst: (MMX_PSHUFWri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i8] }):$src2)
/* 76651*/      0, /*End of Scope*/
/* 76652*/    /*Scope*/ 53, /*->76706*/
/* 76653*/      OPC_CheckChild0Integer, 84|128,48/*6228*/, 
/* 76656*/      OPC_Scope, 33, /*->76691*/ // 2 children in Scope
/* 76658*/        OPC_MoveChild1,
/* 76659*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76662*/        OPC_RecordMemRef,
/* 76663*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 76664*/        OPC_CheckFoldableChainNode,
/* 76665*/        OPC_RecordChild1, // #1 = $src1
/* 76666*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76668*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 76670*/        OPC_MoveParent,
/* 76671*/        OPC_RecordChild2, // #2 = $src2
/* 76672*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76674*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 76677*/        OPC_EmitMergeInputChains1_0,
/* 76678*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6228:{ *:[iPTR] }, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:{ *:[i32] }:$src2) - Complexity = 30
                  // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, GR32:{ *:[i32] }:$src2)
/* 76691*/      /*Scope*/ 13, /*->76705*/
/* 76692*/        OPC_RecordChild1, // #0 = $src1
/* 76693*/        OPC_RecordChild2, // #1 = $src2
/* 76694*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76696*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6228:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2) - Complexity = 8
                  // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 76705*/      0, /*End of Scope*/
/* 76706*/    /*Scope*/ 53, /*->76760*/
/* 76707*/      OPC_CheckChild0Integer, 85|128,48/*6229*/, 
/* 76710*/      OPC_Scope, 33, /*->76745*/ // 2 children in Scope
/* 76712*/        OPC_MoveChild1,
/* 76713*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76716*/        OPC_RecordMemRef,
/* 76717*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 76718*/        OPC_CheckFoldableChainNode,
/* 76719*/        OPC_RecordChild1, // #1 = $src1
/* 76720*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76722*/        OPC_CheckPredicate, 9, // Predicate_load
/* 76724*/        OPC_MoveParent,
/* 76725*/        OPC_RecordChild2, // #2 = $src2
/* 76726*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76728*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 76731*/        OPC_EmitMergeInputChains1_0,
/* 76732*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6229:{ *:[iPTR] }, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:{ *:[i64] }:$src2) - Complexity = 30
                  // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, GR64:{ *:[i64] }:$src2)
/* 76745*/      /*Scope*/ 13, /*->76759*/
/* 76746*/        OPC_RecordChild1, // #0 = $src1
/* 76747*/        OPC_RecordChild2, // #1 = $src2
/* 76748*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76750*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6229:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 8
                  // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 76759*/      0, /*End of Scope*/
/* 76760*/    /*Scope*/ 50, /*->76811*/
/* 76761*/      OPC_CheckChild0Integer, 86|128,48/*6230*/, 
/* 76764*/      OPC_RecordChild1, // #0 = $src1
/* 76765*/      OPC_Scope, 31, /*->76798*/ // 2 children in Scope
/* 76767*/        OPC_MoveChild2,
/* 76768*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76771*/        OPC_RecordMemRef,
/* 76772*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 76773*/        OPC_CheckFoldableChainNode,
/* 76774*/        OPC_RecordChild1, // #2 = $src2
/* 76775*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76777*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 76779*/        OPC_MoveParent,
/* 76780*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76782*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 76785*/        OPC_EmitMergeInputChains1_1,
/* 76786*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PDEP32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6230:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 30
                  // Dst: (PDEP32rm:{ *:[i32] } GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 76798*/      /*Scope*/ 11, /*->76810*/
/* 76799*/        OPC_RecordChild2, // #1 = $src2
/* 76800*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76802*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PDEP32rr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6230:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2) - Complexity = 8
                  // Dst: (PDEP32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 76810*/      0, /*End of Scope*/
/* 76811*/    /*Scope*/ 50, /*->76862*/
/* 76812*/      OPC_CheckChild0Integer, 87|128,48/*6231*/, 
/* 76815*/      OPC_RecordChild1, // #0 = $src1
/* 76816*/      OPC_Scope, 31, /*->76849*/ // 2 children in Scope
/* 76818*/        OPC_MoveChild2,
/* 76819*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76822*/        OPC_RecordMemRef,
/* 76823*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 76824*/        OPC_CheckFoldableChainNode,
/* 76825*/        OPC_RecordChild1, // #2 = $src2
/* 76826*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76828*/        OPC_CheckPredicate, 9, // Predicate_load
/* 76830*/        OPC_MoveParent,
/* 76831*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76833*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 76836*/        OPC_EmitMergeInputChains1_1,
/* 76837*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PDEP64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6231:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PDEP64rm:{ *:[i64] } GR64:{ *:[i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 76849*/      /*Scope*/ 11, /*->76861*/
/* 76850*/        OPC_RecordChild2, // #1 = $src2
/* 76851*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76853*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PDEP64rr), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6231:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 8
                  // Dst: (PDEP64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 76861*/      0, /*End of Scope*/
/* 76862*/    /*Scope*/ 50, /*->76913*/
/* 76863*/      OPC_CheckChild0Integer, 88|128,48/*6232*/, 
/* 76866*/      OPC_RecordChild1, // #0 = $src1
/* 76867*/      OPC_Scope, 31, /*->76900*/ // 2 children in Scope
/* 76869*/        OPC_MoveChild2,
/* 76870*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76873*/        OPC_RecordMemRef,
/* 76874*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 76875*/        OPC_CheckFoldableChainNode,
/* 76876*/        OPC_RecordChild1, // #2 = $src2
/* 76877*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76879*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 76881*/        OPC_MoveParent,
/* 76882*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76884*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 76887*/        OPC_EmitMergeInputChains1_1,
/* 76888*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PEXT32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6232:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 30
                  // Dst: (PEXT32rm:{ *:[i32] } GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 76900*/      /*Scope*/ 11, /*->76912*/
/* 76901*/        OPC_RecordChild2, // #1 = $src2
/* 76902*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76904*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PEXT32rr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6232:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2) - Complexity = 8
                  // Dst: (PEXT32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 76912*/      0, /*End of Scope*/
/* 76913*/    /*Scope*/ 50, /*->76964*/
/* 76914*/      OPC_CheckChild0Integer, 89|128,48/*6233*/, 
/* 76917*/      OPC_RecordChild1, // #0 = $src1
/* 76918*/      OPC_Scope, 31, /*->76951*/ // 2 children in Scope
/* 76920*/        OPC_MoveChild2,
/* 76921*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76924*/        OPC_RecordMemRef,
/* 76925*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 76926*/        OPC_CheckFoldableChainNode,
/* 76927*/        OPC_RecordChild1, // #2 = $src2
/* 76928*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76930*/        OPC_CheckPredicate, 9, // Predicate_load
/* 76932*/        OPC_MoveParent,
/* 76933*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76935*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 76938*/        OPC_EmitMergeInputChains1_1,
/* 76939*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PEXT64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6233:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PEXT64rm:{ *:[i64] } GR64:{ *:[i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 76951*/      /*Scope*/ 11, /*->76963*/
/* 76952*/        OPC_RecordChild2, // #1 = $src2
/* 76953*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 76955*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PEXT64rr), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6233:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 8
                  // Dst: (PEXT64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 76963*/      0, /*End of Scope*/
/* 76964*/    /*Scope*/ 50, /*->77015*/
/* 76965*/      OPC_CheckChild0Integer, 99|128,50/*6499*/, 
/* 76968*/      OPC_RecordChild1, // #0 = $src1
/* 76969*/      OPC_Scope, 31, /*->77002*/ // 2 children in Scope
/* 76971*/        OPC_MoveChild2,
/* 76972*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76975*/        OPC_RecordMemRef,
/* 76976*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 76977*/        OPC_CheckFoldableChainNode,
/* 76978*/        OPC_RecordChild1, // #2 = $src2
/* 76979*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76981*/        OPC_CheckPredicate, 9, // Predicate_load
/* 76983*/        OPC_MoveParent,
/* 76984*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasSSE42())
/* 76986*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 76989*/        OPC_EmitMergeInputChains1_1,
/* 76990*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r32m8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6499:{ *:[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)
/* 77002*/      /*Scope*/ 11, /*->77014*/
/* 77003*/        OPC_RecordChild2, // #1 = $src2
/* 77004*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasSSE42())
/* 77006*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r32r8), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6499:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR8:{ *:[i8] }:$src2) - Complexity = 8
                  // Dst: (CRC32r32r8:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR8:{ *:[i8] }:$src2)
/* 77014*/      0, /*End of Scope*/
/* 77015*/    /*Scope*/ 50, /*->77066*/
/* 77016*/      OPC_CheckChild0Integer, 97|128,50/*6497*/, 
/* 77019*/      OPC_RecordChild1, // #0 = $src1
/* 77020*/      OPC_Scope, 31, /*->77053*/ // 2 children in Scope
/* 77022*/        OPC_MoveChild2,
/* 77023*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77026*/        OPC_RecordMemRef,
/* 77027*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77028*/        OPC_CheckFoldableChainNode,
/* 77029*/        OPC_RecordChild1, // #2 = $src2
/* 77030*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77032*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77034*/        OPC_MoveParent,
/* 77035*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasSSE42())
/* 77037*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77040*/        OPC_EmitMergeInputChains1_1,
/* 77041*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r32m16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6497:{ *:[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)
/* 77053*/      /*Scope*/ 11, /*->77065*/
/* 77054*/        OPC_RecordChild2, // #1 = $src2
/* 77055*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasSSE42())
/* 77057*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r32r16), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6497:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR16:{ *:[i16] }:$src2) - Complexity = 8
                  // Dst: (CRC32r32r16:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR16:{ *:[i16] }:$src2)
/* 77065*/      0, /*End of Scope*/
/* 77066*/    /*Scope*/ 50, /*->77117*/
/* 77067*/      OPC_CheckChild0Integer, 98|128,50/*6498*/, 
/* 77070*/      OPC_RecordChild1, // #0 = $src1
/* 77071*/      OPC_Scope, 31, /*->77104*/ // 2 children in Scope
/* 77073*/        OPC_MoveChild2,
/* 77074*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77077*/        OPC_RecordMemRef,
/* 77078*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77079*/        OPC_CheckFoldableChainNode,
/* 77080*/        OPC_RecordChild1, // #2 = $src2
/* 77081*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77083*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77085*/        OPC_MoveParent,
/* 77086*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasSSE42())
/* 77088*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77091*/        OPC_EmitMergeInputChains1_1,
/* 77092*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r32m32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6498:{ *:[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)
/* 77104*/      /*Scope*/ 11, /*->77116*/
/* 77105*/        OPC_RecordChild2, // #1 = $src2
/* 77106*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasSSE42())
/* 77108*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r32r32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6498:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2) - Complexity = 8
                  // Dst: (CRC32r32r32:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 77116*/      0, /*End of Scope*/
/* 77117*/    /*Scope*/ 50, /*->77168*/
/* 77118*/      OPC_CheckChild0Integer, 100|128,50/*6500*/, 
/* 77121*/      OPC_RecordChild1, // #0 = $src1
/* 77122*/      OPC_Scope, 31, /*->77155*/ // 2 children in Scope
/* 77124*/        OPC_MoveChild2,
/* 77125*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77128*/        OPC_RecordMemRef,
/* 77129*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77130*/        OPC_CheckFoldableChainNode,
/* 77131*/        OPC_RecordChild1, // #2 = $src2
/* 77132*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77134*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77136*/        OPC_MoveParent,
/* 77137*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasSSE42())
/* 77139*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77142*/        OPC_EmitMergeInputChains1_1,
/* 77143*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r64m64), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6500:{ *:[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)
/* 77155*/      /*Scope*/ 11, /*->77167*/
/* 77156*/        OPC_RecordChild2, // #1 = $src2
/* 77157*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasSSE42())
/* 77159*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r64r64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6500:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 8
                  // Dst: (CRC32r64r64:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 77167*/      0, /*End of Scope*/
/* 77168*/    /*Scope*/ 47, /*->77216*/
/* 77169*/      OPC_CheckChild0Integer, 119|128,50/*6519*/, 
/* 77172*/      OPC_Scope, 30, /*->77204*/ // 2 children in Scope
/* 77174*/        OPC_MoveChild1,
/* 77175*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77178*/        OPC_RecordMemRef,
/* 77179*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77180*/        OPC_CheckFoldableChainNode,
/* 77181*/        OPC_RecordChild1, // #1 = $src
/* 77182*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77184*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77186*/        OPC_MoveParent,
/* 77187*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 77189*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 77192*/        OPC_EmitMergeInputChains1_0,
/* 77193*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PABSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6519:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PABSBrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 77204*/      /*Scope*/ 10, /*->77215*/
/* 77205*/        OPC_RecordChild1, // #0 = $src
/* 77206*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 77208*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PABSBrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6519:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (MMX_PABSBrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 77215*/      0, /*End of Scope*/
/* 77216*/    /*Scope*/ 47, /*->77264*/
/* 77217*/      OPC_CheckChild0Integer, 121|128,50/*6521*/, 
/* 77220*/      OPC_Scope, 30, /*->77252*/ // 2 children in Scope
/* 77222*/        OPC_MoveChild1,
/* 77223*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77226*/        OPC_RecordMemRef,
/* 77227*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77228*/        OPC_CheckFoldableChainNode,
/* 77229*/        OPC_RecordChild1, // #1 = $src
/* 77230*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77232*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77234*/        OPC_MoveParent,
/* 77235*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 77237*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 77240*/        OPC_EmitMergeInputChains1_0,
/* 77241*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PABSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6521:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PABSWrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 77252*/      /*Scope*/ 10, /*->77263*/
/* 77253*/        OPC_RecordChild1, // #0 = $src
/* 77254*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 77256*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PABSWrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6521:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (MMX_PABSWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 77263*/      0, /*End of Scope*/
/* 77264*/    /*Scope*/ 47, /*->77312*/
/* 77265*/      OPC_CheckChild0Integer, 120|128,50/*6520*/, 
/* 77268*/      OPC_Scope, 30, /*->77300*/ // 2 children in Scope
/* 77270*/        OPC_MoveChild1,
/* 77271*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77274*/        OPC_RecordMemRef,
/* 77275*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77276*/        OPC_CheckFoldableChainNode,
/* 77277*/        OPC_RecordChild1, // #1 = $src
/* 77278*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77280*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77282*/        OPC_MoveParent,
/* 77283*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 77285*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 77288*/        OPC_EmitMergeInputChains1_0,
/* 77289*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PABSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6520:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PABSDrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 77300*/      /*Scope*/ 10, /*->77311*/
/* 77301*/        OPC_RecordChild1, // #0 = $src
/* 77302*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 77304*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PABSDrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6520:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (MMX_PABSDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 77311*/      0, /*End of Scope*/
/* 77312*/    /*Scope*/ 84, /*->77397*/
/* 77313*/      OPC_CheckChild0Integer, 121|128,48/*6265*/, 
/* 77316*/      OPC_Scope, 32, /*->77350*/ // 3 children in Scope
/* 77318*/        OPC_RecordChild1, // #0 = $src1
/* 77319*/        OPC_MoveChild2,
/* 77320*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77323*/        OPC_RecordMemRef,
/* 77324*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77325*/        OPC_CheckFoldableChainNode,
/* 77326*/        OPC_RecordChild1, // #2 = $src2
/* 77327*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77329*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77331*/        OPC_MoveParent,
/* 77332*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77334*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77337*/        OPC_EmitMergeInputChains1_1,
/* 77338*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6265:{ *:[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)
/* 77350*/      /*Scope*/ 32, /*->77383*/
/* 77351*/        OPC_MoveChild1,
/* 77352*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77355*/        OPC_RecordMemRef,
/* 77356*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77357*/        OPC_CheckFoldableChainNode,
/* 77358*/        OPC_RecordChild1, // #1 = $src2
/* 77359*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77361*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77363*/        OPC_MoveParent,
/* 77364*/        OPC_RecordChild2, // #2 = $src1
/* 77365*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77367*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77370*/        OPC_EmitMergeInputChains1_0,
/* 77371*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6265:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:{ *:[x86mmx] }:$src1) - Complexity = 30
                  // Dst: (MMX_PADDBirm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 77383*/      /*Scope*/ 12, /*->77396*/
/* 77384*/        OPC_RecordChild1, // #0 = $src1
/* 77385*/        OPC_RecordChild2, // #1 = $src2
/* 77386*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77388*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6265:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 77396*/      0, /*End of Scope*/
/* 77397*/    /*Scope*/ 84, /*->77482*/
/* 77398*/      OPC_CheckChild0Integer, 124|128,48/*6268*/, 
/* 77401*/      OPC_Scope, 32, /*->77435*/ // 3 children in Scope
/* 77403*/        OPC_RecordChild1, // #0 = $src1
/* 77404*/        OPC_MoveChild2,
/* 77405*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77408*/        OPC_RecordMemRef,
/* 77409*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77410*/        OPC_CheckFoldableChainNode,
/* 77411*/        OPC_RecordChild1, // #2 = $src2
/* 77412*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77414*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77416*/        OPC_MoveParent,
/* 77417*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77419*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77422*/        OPC_EmitMergeInputChains1_1,
/* 77423*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6268:{ *:[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)
/* 77435*/      /*Scope*/ 32, /*->77468*/
/* 77436*/        OPC_MoveChild1,
/* 77437*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77440*/        OPC_RecordMemRef,
/* 77441*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77442*/        OPC_CheckFoldableChainNode,
/* 77443*/        OPC_RecordChild1, // #1 = $src2
/* 77444*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77446*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77448*/        OPC_MoveParent,
/* 77449*/        OPC_RecordChild2, // #2 = $src1
/* 77450*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77452*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77455*/        OPC_EmitMergeInputChains1_0,
/* 77456*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6268:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:{ *:[x86mmx] }:$src1) - Complexity = 30
                  // Dst: (MMX_PADDWirm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 77468*/      /*Scope*/ 12, /*->77481*/
/* 77469*/        OPC_RecordChild1, // #0 = $src1
/* 77470*/        OPC_RecordChild2, // #1 = $src2
/* 77471*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77473*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6268:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 77481*/      0, /*End of Scope*/
/* 77482*/    /*Scope*/ 84, /*->77567*/
/* 77483*/      OPC_CheckChild0Integer, 122|128,48/*6266*/, 
/* 77486*/      OPC_Scope, 32, /*->77520*/ // 3 children in Scope
/* 77488*/        OPC_RecordChild1, // #0 = $src1
/* 77489*/        OPC_MoveChild2,
/* 77490*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77493*/        OPC_RecordMemRef,
/* 77494*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77495*/        OPC_CheckFoldableChainNode,
/* 77496*/        OPC_RecordChild1, // #2 = $src2
/* 77497*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77499*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77501*/        OPC_MoveParent,
/* 77502*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77504*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77507*/        OPC_EmitMergeInputChains1_1,
/* 77508*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6266:{ *:[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)
/* 77520*/      /*Scope*/ 32, /*->77553*/
/* 77521*/        OPC_MoveChild1,
/* 77522*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77525*/        OPC_RecordMemRef,
/* 77526*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77527*/        OPC_CheckFoldableChainNode,
/* 77528*/        OPC_RecordChild1, // #1 = $src2
/* 77529*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77531*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77533*/        OPC_MoveParent,
/* 77534*/        OPC_RecordChild2, // #2 = $src1
/* 77535*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77537*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77540*/        OPC_EmitMergeInputChains1_0,
/* 77541*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6266:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:{ *:[x86mmx] }:$src1) - Complexity = 30
                  // Dst: (MMX_PADDDirm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 77553*/      /*Scope*/ 12, /*->77566*/
/* 77554*/        OPC_RecordChild1, // #0 = $src1
/* 77555*/        OPC_RecordChild2, // #1 = $src2
/* 77556*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77558*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6266:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 77566*/      0, /*End of Scope*/
/* 77567*/    /*Scope*/ 84, /*->77652*/
/* 77568*/      OPC_CheckChild0Integer, 123|128,48/*6267*/, 
/* 77571*/      OPC_Scope, 32, /*->77605*/ // 3 children in Scope
/* 77573*/        OPC_RecordChild1, // #0 = $src1
/* 77574*/        OPC_MoveChild2,
/* 77575*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77578*/        OPC_RecordMemRef,
/* 77579*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77580*/        OPC_CheckFoldableChainNode,
/* 77581*/        OPC_RecordChild1, // #2 = $src2
/* 77582*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77584*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77586*/        OPC_MoveParent,
/* 77587*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 77589*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77592*/        OPC_EmitMergeInputChains1_1,
/* 77593*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDQirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6267:{ *:[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)
/* 77605*/      /*Scope*/ 32, /*->77638*/
/* 77606*/        OPC_MoveChild1,
/* 77607*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77610*/        OPC_RecordMemRef,
/* 77611*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77612*/        OPC_CheckFoldableChainNode,
/* 77613*/        OPC_RecordChild1, // #1 = $src2
/* 77614*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77616*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77618*/        OPC_MoveParent,
/* 77619*/        OPC_RecordChild2, // #2 = $src1
/* 77620*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 77622*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77625*/        OPC_EmitMergeInputChains1_0,
/* 77626*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDQirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6267:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:{ *:[x86mmx] }:$src1) - Complexity = 30
                  // Dst: (MMX_PADDQirm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 77638*/      /*Scope*/ 12, /*->77651*/
/* 77639*/        OPC_RecordChild1, // #0 = $src1
/* 77640*/        OPC_RecordChild2, // #1 = $src2
/* 77641*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 77643*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDQirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6267:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDQirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 77651*/      0, /*End of Scope*/
/* 77652*/    /*Scope*/ 84, /*->77737*/
/* 77653*/      OPC_CheckChild0Integer, 125|128,48/*6269*/, 
/* 77656*/      OPC_Scope, 32, /*->77690*/ // 3 children in Scope
/* 77658*/        OPC_RecordChild1, // #0 = $src1
/* 77659*/        OPC_MoveChild2,
/* 77660*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77663*/        OPC_RecordMemRef,
/* 77664*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77665*/        OPC_CheckFoldableChainNode,
/* 77666*/        OPC_RecordChild1, // #2 = $src2
/* 77667*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77669*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77671*/        OPC_MoveParent,
/* 77672*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77674*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77677*/        OPC_EmitMergeInputChains1_1,
/* 77678*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6269:{ *:[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)
/* 77690*/      /*Scope*/ 32, /*->77723*/
/* 77691*/        OPC_MoveChild1,
/* 77692*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77695*/        OPC_RecordMemRef,
/* 77696*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77697*/        OPC_CheckFoldableChainNode,
/* 77698*/        OPC_RecordChild1, // #1 = $src2
/* 77699*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77701*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77703*/        OPC_MoveParent,
/* 77704*/        OPC_RecordChild2, // #2 = $src1
/* 77705*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77707*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77710*/        OPC_EmitMergeInputChains1_0,
/* 77711*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6269:{ *:[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)
/* 77723*/      /*Scope*/ 12, /*->77736*/
/* 77724*/        OPC_RecordChild1, // #0 = $src1
/* 77725*/        OPC_RecordChild2, // #1 = $src2
/* 77726*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77728*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDSBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6269:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDSBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 77736*/      0, /*End of Scope*/
/* 77737*/    /*Scope*/ 84, /*->77822*/
/* 77738*/      OPC_CheckChild0Integer, 126|128,48/*6270*/, 
/* 77741*/      OPC_Scope, 32, /*->77775*/ // 3 children in Scope
/* 77743*/        OPC_RecordChild1, // #0 = $src1
/* 77744*/        OPC_MoveChild2,
/* 77745*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77748*/        OPC_RecordMemRef,
/* 77749*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77750*/        OPC_CheckFoldableChainNode,
/* 77751*/        OPC_RecordChild1, // #2 = $src2
/* 77752*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77754*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77756*/        OPC_MoveParent,
/* 77757*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77759*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77762*/        OPC_EmitMergeInputChains1_1,
/* 77763*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6270:{ *:[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)
/* 77775*/      /*Scope*/ 32, /*->77808*/
/* 77776*/        OPC_MoveChild1,
/* 77777*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77780*/        OPC_RecordMemRef,
/* 77781*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77782*/        OPC_CheckFoldableChainNode,
/* 77783*/        OPC_RecordChild1, // #1 = $src2
/* 77784*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77786*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77788*/        OPC_MoveParent,
/* 77789*/        OPC_RecordChild2, // #2 = $src1
/* 77790*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77792*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77795*/        OPC_EmitMergeInputChains1_0,
/* 77796*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6270:{ *:[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)
/* 77808*/      /*Scope*/ 12, /*->77821*/
/* 77809*/        OPC_RecordChild1, // #0 = $src1
/* 77810*/        OPC_RecordChild2, // #1 = $src2
/* 77811*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77813*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6270:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 77821*/      0, /*End of Scope*/
/* 77822*/    /*Scope*/ 84, /*->77907*/
/* 77823*/      OPC_CheckChild0Integer, 127|128,48/*6271*/, 
/* 77826*/      OPC_Scope, 32, /*->77860*/ // 3 children in Scope
/* 77828*/        OPC_RecordChild1, // #0 = $src1
/* 77829*/        OPC_MoveChild2,
/* 77830*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77833*/        OPC_RecordMemRef,
/* 77834*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77835*/        OPC_CheckFoldableChainNode,
/* 77836*/        OPC_RecordChild1, // #2 = $src2
/* 77837*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77839*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77841*/        OPC_MoveParent,
/* 77842*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77844*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77847*/        OPC_EmitMergeInputChains1_1,
/* 77848*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDUSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6271:{ *:[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)
/* 77860*/      /*Scope*/ 32, /*->77893*/
/* 77861*/        OPC_MoveChild1,
/* 77862*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77865*/        OPC_RecordMemRef,
/* 77866*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77867*/        OPC_CheckFoldableChainNode,
/* 77868*/        OPC_RecordChild1, // #1 = $src2
/* 77869*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77871*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77873*/        OPC_MoveParent,
/* 77874*/        OPC_RecordChild2, // #2 = $src1
/* 77875*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77877*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77880*/        OPC_EmitMergeInputChains1_0,
/* 77881*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDUSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6271:{ *:[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)
/* 77893*/      /*Scope*/ 12, /*->77906*/
/* 77894*/        OPC_RecordChild1, // #0 = $src1
/* 77895*/        OPC_RecordChild2, // #1 = $src2
/* 77896*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77898*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDUSBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6271:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDUSBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 77906*/      0, /*End of Scope*/
/* 77907*/    /*Scope*/ 84, /*->77992*/
/* 77908*/      OPC_CheckChild0Integer, 0|128,49/*6272*/, 
/* 77911*/      OPC_Scope, 32, /*->77945*/ // 3 children in Scope
/* 77913*/        OPC_RecordChild1, // #0 = $src1
/* 77914*/        OPC_MoveChild2,
/* 77915*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77918*/        OPC_RecordMemRef,
/* 77919*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77920*/        OPC_CheckFoldableChainNode,
/* 77921*/        OPC_RecordChild1, // #2 = $src2
/* 77922*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77924*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77926*/        OPC_MoveParent,
/* 77927*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77929*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77932*/        OPC_EmitMergeInputChains1_1,
/* 77933*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDUSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6272:{ *:[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)
/* 77945*/      /*Scope*/ 32, /*->77978*/
/* 77946*/        OPC_MoveChild1,
/* 77947*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77950*/        OPC_RecordMemRef,
/* 77951*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77952*/        OPC_CheckFoldableChainNode,
/* 77953*/        OPC_RecordChild1, // #1 = $src2
/* 77954*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77956*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77958*/        OPC_MoveParent,
/* 77959*/        OPC_RecordChild2, // #2 = $src1
/* 77960*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77962*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77965*/        OPC_EmitMergeInputChains1_0,
/* 77966*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDUSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6272:{ *:[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)
/* 77978*/      /*Scope*/ 12, /*->77991*/
/* 77979*/        OPC_RecordChild1, // #0 = $src1
/* 77980*/        OPC_RecordChild2, // #1 = $src2
/* 77981*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 77983*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDUSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6272:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDUSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 77991*/      0, /*End of Scope*/
/* 77992*/    /*Scope*/ 50, /*->78043*/
/* 77993*/      OPC_CheckChild0Integer, 126|128,50/*6526*/, 
/* 77996*/      OPC_RecordChild1, // #0 = $src1
/* 77997*/      OPC_Scope, 31, /*->78030*/ // 2 children in Scope
/* 77999*/        OPC_MoveChild2,
/* 78000*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78003*/        OPC_RecordMemRef,
/* 78004*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78005*/        OPC_CheckFoldableChainNode,
/* 78006*/        OPC_RecordChild1, // #2 = $src2
/* 78007*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78009*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78011*/        OPC_MoveParent,
/* 78012*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78014*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78017*/        OPC_EmitMergeInputChains1_1,
/* 78018*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6526:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PHADDWrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 78030*/      /*Scope*/ 11, /*->78042*/
/* 78031*/        OPC_RecordChild2, // #1 = $src2
/* 78032*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78034*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHADDWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6526:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHADDWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78042*/      0, /*End of Scope*/
/* 78043*/    /*Scope*/ 50, /*->78094*/
/* 78044*/      OPC_CheckChild0Integer, 122|128,50/*6522*/, 
/* 78047*/      OPC_RecordChild1, // #0 = $src1
/* 78048*/      OPC_Scope, 31, /*->78081*/ // 2 children in Scope
/* 78050*/        OPC_MoveChild2,
/* 78051*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78054*/        OPC_RecordMemRef,
/* 78055*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78056*/        OPC_CheckFoldableChainNode,
/* 78057*/        OPC_RecordChild1, // #2 = $src2
/* 78058*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78060*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78062*/        OPC_MoveParent,
/* 78063*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78065*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78068*/        OPC_EmitMergeInputChains1_1,
/* 78069*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6522:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PHADDDrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 78081*/      /*Scope*/ 11, /*->78093*/
/* 78082*/        OPC_RecordChild2, // #1 = $src2
/* 78083*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78085*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHADDDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6522:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHADDDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78093*/      0, /*End of Scope*/
/* 78094*/    /*Scope*/ 50, /*->78145*/
/* 78095*/      OPC_CheckChild0Integer, 124|128,50/*6524*/, 
/* 78098*/      OPC_RecordChild1, // #0 = $src1
/* 78099*/      OPC_Scope, 31, /*->78132*/ // 2 children in Scope
/* 78101*/        OPC_MoveChild2,
/* 78102*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78105*/        OPC_RecordMemRef,
/* 78106*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78107*/        OPC_CheckFoldableChainNode,
/* 78108*/        OPC_RecordChild1, // #2 = $src2
/* 78109*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78111*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78113*/        OPC_MoveParent,
/* 78114*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78116*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78119*/        OPC_EmitMergeInputChains1_1,
/* 78120*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6524:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PHADDSWrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 78132*/      /*Scope*/ 11, /*->78144*/
/* 78133*/        OPC_RecordChild2, // #1 = $src2
/* 78134*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78136*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHADDSWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6524:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHADDSWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78144*/      0, /*End of Scope*/
/* 78145*/    /*Scope*/ 50, /*->78196*/
/* 78146*/      OPC_CheckChild0Integer, 42|128,49/*6314*/, 
/* 78149*/      OPC_RecordChild1, // #0 = $src1
/* 78150*/      OPC_Scope, 31, /*->78183*/ // 2 children in Scope
/* 78152*/        OPC_MoveChild2,
/* 78153*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78156*/        OPC_RecordMemRef,
/* 78157*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78158*/        OPC_CheckFoldableChainNode,
/* 78159*/        OPC_RecordChild1, // #2 = $src2
/* 78160*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78162*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78164*/        OPC_MoveParent,
/* 78165*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78167*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78170*/        OPC_EmitMergeInputChains1_1,
/* 78171*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6314:{ *:[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)
/* 78183*/      /*Scope*/ 11, /*->78195*/
/* 78184*/        OPC_RecordChild2, // #1 = $src2
/* 78185*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78187*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6314:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78195*/      0, /*End of Scope*/
/* 78196*/    /*Scope*/ 50, /*->78247*/
/* 78197*/      OPC_CheckChild0Integer, 45|128,49/*6317*/, 
/* 78200*/      OPC_RecordChild1, // #0 = $src1
/* 78201*/      OPC_Scope, 31, /*->78234*/ // 2 children in Scope
/* 78203*/        OPC_MoveChild2,
/* 78204*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78207*/        OPC_RecordMemRef,
/* 78208*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78209*/        OPC_CheckFoldableChainNode,
/* 78210*/        OPC_RecordChild1, // #2 = $src2
/* 78211*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78213*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78215*/        OPC_MoveParent,
/* 78216*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78218*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78221*/        OPC_EmitMergeInputChains1_1,
/* 78222*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6317:{ *:[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)
/* 78234*/      /*Scope*/ 11, /*->78246*/
/* 78235*/        OPC_RecordChild2, // #1 = $src2
/* 78236*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78238*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6317:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78246*/      0, /*End of Scope*/
/* 78247*/    /*Scope*/ 50, /*->78298*/
/* 78248*/      OPC_CheckChild0Integer, 43|128,49/*6315*/, 
/* 78251*/      OPC_RecordChild1, // #0 = $src1
/* 78252*/      OPC_Scope, 31, /*->78285*/ // 2 children in Scope
/* 78254*/        OPC_MoveChild2,
/* 78255*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78258*/        OPC_RecordMemRef,
/* 78259*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78260*/        OPC_CheckFoldableChainNode,
/* 78261*/        OPC_RecordChild1, // #2 = $src2
/* 78262*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78264*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78266*/        OPC_MoveParent,
/* 78267*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78269*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78272*/        OPC_EmitMergeInputChains1_1,
/* 78273*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6315:{ *:[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)
/* 78285*/      /*Scope*/ 11, /*->78297*/
/* 78286*/        OPC_RecordChild2, // #1 = $src2
/* 78287*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78289*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6315:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78297*/      0, /*End of Scope*/
/* 78298*/    /*Scope*/ 50, /*->78349*/
/* 78299*/      OPC_CheckChild0Integer, 44|128,49/*6316*/, 
/* 78302*/      OPC_RecordChild1, // #0 = $src1
/* 78303*/      OPC_Scope, 31, /*->78336*/ // 2 children in Scope
/* 78305*/        OPC_MoveChild2,
/* 78306*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78309*/        OPC_RecordMemRef,
/* 78310*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78311*/        OPC_CheckFoldableChainNode,
/* 78312*/        OPC_RecordChild1, // #2 = $src2
/* 78313*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78315*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78317*/        OPC_MoveParent,
/* 78318*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 78320*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78323*/        OPC_EmitMergeInputChains1_1,
/* 78324*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBQirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6316:{ *:[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)
/* 78336*/      /*Scope*/ 11, /*->78348*/
/* 78337*/        OPC_RecordChild2, // #1 = $src2
/* 78338*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 78340*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBQirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6316:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBQirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78348*/      0, /*End of Scope*/
/* 78349*/    /*Scope*/ 50, /*->78400*/
/* 78350*/      OPC_CheckChild0Integer, 46|128,49/*6318*/, 
/* 78353*/      OPC_RecordChild1, // #0 = $src1
/* 78354*/      OPC_Scope, 31, /*->78387*/ // 2 children in Scope
/* 78356*/        OPC_MoveChild2,
/* 78357*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78360*/        OPC_RecordMemRef,
/* 78361*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78362*/        OPC_CheckFoldableChainNode,
/* 78363*/        OPC_RecordChild1, // #2 = $src2
/* 78364*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78366*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78368*/        OPC_MoveParent,
/* 78369*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78371*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78374*/        OPC_EmitMergeInputChains1_1,
/* 78375*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6318:{ *:[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)
/* 78387*/      /*Scope*/ 11, /*->78399*/
/* 78388*/        OPC_RecordChild2, // #1 = $src2
/* 78389*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78391*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBSBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6318:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBSBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78399*/      0, /*End of Scope*/
/* 78400*/    /*Scope*/ 50, /*->78451*/
/* 78401*/      OPC_CheckChild0Integer, 47|128,49/*6319*/, 
/* 78404*/      OPC_RecordChild1, // #0 = $src1
/* 78405*/      OPC_Scope, 31, /*->78438*/ // 2 children in Scope
/* 78407*/        OPC_MoveChild2,
/* 78408*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78411*/        OPC_RecordMemRef,
/* 78412*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78413*/        OPC_CheckFoldableChainNode,
/* 78414*/        OPC_RecordChild1, // #2 = $src2
/* 78415*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78417*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78419*/        OPC_MoveParent,
/* 78420*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78422*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78425*/        OPC_EmitMergeInputChains1_1,
/* 78426*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6319:{ *:[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)
/* 78438*/      /*Scope*/ 11, /*->78450*/
/* 78439*/        OPC_RecordChild2, // #1 = $src2
/* 78440*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78442*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6319:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78450*/      0, /*End of Scope*/
/* 78451*/    /*Scope*/ 50, /*->78502*/
/* 78452*/      OPC_CheckChild0Integer, 48|128,49/*6320*/, 
/* 78455*/      OPC_RecordChild1, // #0 = $src1
/* 78456*/      OPC_Scope, 31, /*->78489*/ // 2 children in Scope
/* 78458*/        OPC_MoveChild2,
/* 78459*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78462*/        OPC_RecordMemRef,
/* 78463*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78464*/        OPC_CheckFoldableChainNode,
/* 78465*/        OPC_RecordChild1, // #2 = $src2
/* 78466*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78468*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78470*/        OPC_MoveParent,
/* 78471*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78473*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78476*/        OPC_EmitMergeInputChains1_1,
/* 78477*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBUSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6320:{ *:[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)
/* 78489*/      /*Scope*/ 11, /*->78501*/
/* 78490*/        OPC_RecordChild2, // #1 = $src2
/* 78491*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78493*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBUSBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6320:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBUSBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78501*/      0, /*End of Scope*/
/* 78502*/    /*Scope*/ 50, /*->78553*/
/* 78503*/      OPC_CheckChild0Integer, 49|128,49/*6321*/, 
/* 78506*/      OPC_RecordChild1, // #0 = $src1
/* 78507*/      OPC_Scope, 31, /*->78540*/ // 2 children in Scope
/* 78509*/        OPC_MoveChild2,
/* 78510*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78513*/        OPC_RecordMemRef,
/* 78514*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78515*/        OPC_CheckFoldableChainNode,
/* 78516*/        OPC_RecordChild1, // #2 = $src2
/* 78517*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78519*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78521*/        OPC_MoveParent,
/* 78522*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78524*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78527*/        OPC_EmitMergeInputChains1_1,
/* 78528*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBUSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6321:{ *:[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)
/* 78540*/      /*Scope*/ 11, /*->78552*/
/* 78541*/        OPC_RecordChild2, // #1 = $src2
/* 78542*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78544*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBUSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6321:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBUSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78552*/      0, /*End of Scope*/
/* 78553*/    /*Scope*/ 50, /*->78604*/
/* 78554*/      OPC_CheckChild0Integer, 4|128,51/*6532*/, 
/* 78557*/      OPC_RecordChild1, // #0 = $src1
/* 78558*/      OPC_Scope, 31, /*->78591*/ // 2 children in Scope
/* 78560*/        OPC_MoveChild2,
/* 78561*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78564*/        OPC_RecordMemRef,
/* 78565*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78566*/        OPC_CheckFoldableChainNode,
/* 78567*/        OPC_RecordChild1, // #2 = $src2
/* 78568*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78570*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78572*/        OPC_MoveParent,
/* 78573*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78575*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78578*/        OPC_EmitMergeInputChains1_1,
/* 78579*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHSUBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6532:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PHSUBWrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 78591*/      /*Scope*/ 11, /*->78603*/
/* 78592*/        OPC_RecordChild2, // #1 = $src2
/* 78593*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78595*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHSUBWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6532:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHSUBWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78603*/      0, /*End of Scope*/
/* 78604*/    /*Scope*/ 50, /*->78655*/
/* 78605*/      OPC_CheckChild0Integer, 0|128,51/*6528*/, 
/* 78608*/      OPC_RecordChild1, // #0 = $src1
/* 78609*/      OPC_Scope, 31, /*->78642*/ // 2 children in Scope
/* 78611*/        OPC_MoveChild2,
/* 78612*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78615*/        OPC_RecordMemRef,
/* 78616*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78617*/        OPC_CheckFoldableChainNode,
/* 78618*/        OPC_RecordChild1, // #2 = $src2
/* 78619*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78621*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78623*/        OPC_MoveParent,
/* 78624*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78626*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78629*/        OPC_EmitMergeInputChains1_1,
/* 78630*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHSUBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6528:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PHSUBDrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 78642*/      /*Scope*/ 11, /*->78654*/
/* 78643*/        OPC_RecordChild2, // #1 = $src2
/* 78644*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78646*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHSUBDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6528:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHSUBDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78654*/      0, /*End of Scope*/
/* 78655*/    /*Scope*/ 50, /*->78706*/
/* 78656*/      OPC_CheckChild0Integer, 2|128,51/*6530*/, 
/* 78659*/      OPC_RecordChild1, // #0 = $src1
/* 78660*/      OPC_Scope, 31, /*->78693*/ // 2 children in Scope
/* 78662*/        OPC_MoveChild2,
/* 78663*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78666*/        OPC_RecordMemRef,
/* 78667*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78668*/        OPC_CheckFoldableChainNode,
/* 78669*/        OPC_RecordChild1, // #2 = $src2
/* 78670*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78672*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78674*/        OPC_MoveParent,
/* 78675*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78677*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78680*/        OPC_EmitMergeInputChains1_1,
/* 78681*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6530:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PHSUBSWrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 78693*/      /*Scope*/ 11, /*->78705*/
/* 78694*/        OPC_RecordChild2, // #1 = $src2
/* 78695*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 78697*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHSUBSWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6530:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHSUBSWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78705*/      0, /*End of Scope*/
/* 78706*/    /*Scope*/ 84, /*->78791*/
/* 78707*/      OPC_CheckChild0Integer, 22|128,49/*6294*/, 
/* 78710*/      OPC_Scope, 32, /*->78744*/ // 3 children in Scope
/* 78712*/        OPC_RecordChild1, // #0 = $src1
/* 78713*/        OPC_MoveChild2,
/* 78714*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78717*/        OPC_RecordMemRef,
/* 78718*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78719*/        OPC_CheckFoldableChainNode,
/* 78720*/        OPC_RecordChild1, // #2 = $src2
/* 78721*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78723*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78725*/        OPC_MoveParent,
/* 78726*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78728*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78731*/        OPC_EmitMergeInputChains1_1,
/* 78732*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULLWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6294:{ *:[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)
/* 78744*/      /*Scope*/ 32, /*->78777*/
/* 78745*/        OPC_MoveChild1,
/* 78746*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78749*/        OPC_RecordMemRef,
/* 78750*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 78751*/        OPC_CheckFoldableChainNode,
/* 78752*/        OPC_RecordChild1, // #1 = $src2
/* 78753*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78755*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78757*/        OPC_MoveParent,
/* 78758*/        OPC_RecordChild2, // #2 = $src1
/* 78759*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78761*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78764*/        OPC_EmitMergeInputChains1_0,
/* 78765*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULLWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6294:{ *:[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)
/* 78777*/      /*Scope*/ 12, /*->78790*/
/* 78778*/        OPC_RecordChild1, // #0 = $src1
/* 78779*/        OPC_RecordChild2, // #1 = $src2
/* 78780*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78782*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULLWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6294:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMULLWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78790*/      0, /*End of Scope*/
/* 78791*/    /*Scope*/ 84, /*->78876*/
/* 78792*/      OPC_CheckChild0Integer, 20|128,49/*6292*/, 
/* 78795*/      OPC_Scope, 32, /*->78829*/ // 3 children in Scope
/* 78797*/        OPC_RecordChild1, // #0 = $src1
/* 78798*/        OPC_MoveChild2,
/* 78799*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78802*/        OPC_RecordMemRef,
/* 78803*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78804*/        OPC_CheckFoldableChainNode,
/* 78805*/        OPC_RecordChild1, // #2 = $src2
/* 78806*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78808*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78810*/        OPC_MoveParent,
/* 78811*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78813*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78816*/        OPC_EmitMergeInputChains1_1,
/* 78817*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6292:{ *:[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)
/* 78829*/      /*Scope*/ 32, /*->78862*/
/* 78830*/        OPC_MoveChild1,
/* 78831*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78834*/        OPC_RecordMemRef,
/* 78835*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 78836*/        OPC_CheckFoldableChainNode,
/* 78837*/        OPC_RecordChild1, // #1 = $src2
/* 78838*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78840*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78842*/        OPC_MoveParent,
/* 78843*/        OPC_RecordChild2, // #2 = $src1
/* 78844*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78846*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78849*/        OPC_EmitMergeInputChains1_0,
/* 78850*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6292:{ *:[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)
/* 78862*/      /*Scope*/ 12, /*->78875*/
/* 78863*/        OPC_RecordChild1, // #0 = $src1
/* 78864*/        OPC_RecordChild2, // #1 = $src2
/* 78865*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 78867*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6292:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMULHWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78875*/      0, /*End of Scope*/
/* 78876*/    /*Scope*/ 84, /*->78961*/
/* 78877*/      OPC_CheckChild0Integer, 21|128,49/*6293*/, 
/* 78880*/      OPC_Scope, 32, /*->78914*/ // 3 children in Scope
/* 78882*/        OPC_RecordChild1, // #0 = $src1
/* 78883*/        OPC_MoveChild2,
/* 78884*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78887*/        OPC_RecordMemRef,
/* 78888*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78889*/        OPC_CheckFoldableChainNode,
/* 78890*/        OPC_RecordChild1, // #2 = $src2
/* 78891*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78893*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78895*/        OPC_MoveParent,
/* 78896*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 78898*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78901*/        OPC_EmitMergeInputChains1_1,
/* 78902*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHUWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6293:{ *:[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)
/* 78914*/      /*Scope*/ 32, /*->78947*/
/* 78915*/        OPC_MoveChild1,
/* 78916*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78919*/        OPC_RecordMemRef,
/* 78920*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 78921*/        OPC_CheckFoldableChainNode,
/* 78922*/        OPC_RecordChild1, // #1 = $src2
/* 78923*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78925*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78927*/        OPC_MoveParent,
/* 78928*/        OPC_RecordChild2, // #2 = $src1
/* 78929*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 78931*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78934*/        OPC_EmitMergeInputChains1_0,
/* 78935*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHUWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6293:{ *:[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)
/* 78947*/      /*Scope*/ 12, /*->78960*/
/* 78948*/        OPC_RecordChild1, // #0 = $src1
/* 78949*/        OPC_RecordChild2, // #1 = $src2
/* 78950*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 78952*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHUWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6293:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMULHUWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 78960*/      0, /*End of Scope*/
/* 78961*/    /*Scope*/ 84, /*->79046*/
/* 78962*/      OPC_CheckChild0Integer, 23|128,49/*6295*/, 
/* 78965*/      OPC_Scope, 32, /*->78999*/ // 3 children in Scope
/* 78967*/        OPC_RecordChild1, // #0 = $src1
/* 78968*/        OPC_MoveChild2,
/* 78969*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78972*/        OPC_RecordMemRef,
/* 78973*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 78974*/        OPC_CheckFoldableChainNode,
/* 78975*/        OPC_RecordChild1, // #2 = $src2
/* 78976*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 78978*/        OPC_CheckPredicate, 9, // Predicate_load
/* 78980*/        OPC_MoveParent,
/* 78981*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 78983*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 78986*/        OPC_EmitMergeInputChains1_1,
/* 78987*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULUDQirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6295:{ *:[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)
/* 78999*/      /*Scope*/ 32, /*->79032*/
/* 79000*/        OPC_MoveChild1,
/* 79001*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79004*/        OPC_RecordMemRef,
/* 79005*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 79006*/        OPC_CheckFoldableChainNode,
/* 79007*/        OPC_RecordChild1, // #1 = $src2
/* 79008*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79010*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79012*/        OPC_MoveParent,
/* 79013*/        OPC_RecordChild2, // #2 = $src1
/* 79014*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 79016*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79019*/        OPC_EmitMergeInputChains1_0,
/* 79020*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULUDQirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6295:{ *:[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)
/* 79032*/      /*Scope*/ 12, /*->79045*/
/* 79033*/        OPC_RecordChild1, // #0 = $src1
/* 79034*/        OPC_RecordChild2, // #1 = $src2
/* 79035*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 79037*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULUDQirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6295:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMULUDQirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79045*/      0, /*End of Scope*/
/* 79046*/    /*Scope*/ 84, /*->79131*/
/* 79047*/      OPC_CheckChild0Integer, 8|128,51/*6536*/, 
/* 79050*/      OPC_Scope, 32, /*->79084*/ // 3 children in Scope
/* 79052*/        OPC_RecordChild1, // #0 = $src1
/* 79053*/        OPC_MoveChild2,
/* 79054*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79057*/        OPC_RecordMemRef,
/* 79058*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79059*/        OPC_CheckFoldableChainNode,
/* 79060*/        OPC_RecordChild1, // #2 = $src2
/* 79061*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79063*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79065*/        OPC_MoveParent,
/* 79066*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 79068*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79071*/        OPC_EmitMergeInputChains1_1,
/* 79072*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHRSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6536:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PMULHRSWrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 79084*/      /*Scope*/ 32, /*->79117*/
/* 79085*/        OPC_MoveChild1,
/* 79086*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79089*/        OPC_RecordMemRef,
/* 79090*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 79091*/        OPC_CheckFoldableChainNode,
/* 79092*/        OPC_RecordChild1, // #1 = $src2
/* 79093*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79095*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79097*/        OPC_MoveParent,
/* 79098*/        OPC_RecordChild2, // #2 = $src1
/* 79099*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 79101*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79104*/        OPC_EmitMergeInputChains1_0,
/* 79105*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHRSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6536:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:{ *:[x86mmx] }:$src1) - Complexity = 30
                  // Dst: (MMX_PMULHRSWrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 79117*/      /*Scope*/ 12, /*->79130*/
/* 79118*/        OPC_RecordChild1, // #0 = $src1
/* 79119*/        OPC_RecordChild2, // #1 = $src2
/* 79120*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 79122*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHRSWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6536:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMULHRSWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79130*/      0, /*End of Scope*/
/* 79131*/    /*Scope*/ 84, /*->79216*/
/* 79132*/      OPC_CheckChild0Integer, 14|128,49/*6286*/, 
/* 79135*/      OPC_Scope, 32, /*->79169*/ // 3 children in Scope
/* 79137*/        OPC_RecordChild1, // #0 = $src1
/* 79138*/        OPC_MoveChild2,
/* 79139*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79142*/        OPC_RecordMemRef,
/* 79143*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79144*/        OPC_CheckFoldableChainNode,
/* 79145*/        OPC_RecordChild1, // #2 = $src2
/* 79146*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79148*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79150*/        OPC_MoveParent,
/* 79151*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 79153*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79156*/        OPC_EmitMergeInputChains1_1,
/* 79157*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMADDWDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6286:{ *:[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)
/* 79169*/      /*Scope*/ 32, /*->79202*/
/* 79170*/        OPC_MoveChild1,
/* 79171*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79174*/        OPC_RecordMemRef,
/* 79175*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 79176*/        OPC_CheckFoldableChainNode,
/* 79177*/        OPC_RecordChild1, // #1 = $src2
/* 79178*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79180*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79182*/        OPC_MoveParent,
/* 79183*/        OPC_RecordChild2, // #2 = $src1
/* 79184*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 79186*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79189*/        OPC_EmitMergeInputChains1_0,
/* 79190*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMADDWDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6286:{ *:[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)
/* 79202*/      /*Scope*/ 12, /*->79215*/
/* 79203*/        OPC_RecordChild1, // #0 = $src1
/* 79204*/        OPC_RecordChild2, // #1 = $src2
/* 79205*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 79207*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMADDWDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6286:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMADDWDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79215*/      0, /*End of Scope*/
/* 79216*/    /*Scope*/ 50, /*->79267*/
/* 79217*/      OPC_CheckChild0Integer, 6|128,51/*6534*/, 
/* 79220*/      OPC_RecordChild1, // #0 = $src1
/* 79221*/      OPC_Scope, 31, /*->79254*/ // 2 children in Scope
/* 79223*/        OPC_MoveChild2,
/* 79224*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79227*/        OPC_RecordMemRef,
/* 79228*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79229*/        OPC_CheckFoldableChainNode,
/* 79230*/        OPC_RecordChild1, // #2 = $src2
/* 79231*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79233*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79235*/        OPC_MoveParent,
/* 79236*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 79238*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79241*/        OPC_EmitMergeInputChains1_1,
/* 79242*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMADDUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6534:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PMADDUBSWrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 79254*/      /*Scope*/ 11, /*->79266*/
/* 79255*/        OPC_RecordChild2, // #1 = $src2
/* 79256*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 79258*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMADDUBSWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6534:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMADDUBSWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79266*/      0, /*End of Scope*/
/* 79267*/    /*Scope*/ 84, /*->79352*/
/* 79268*/      OPC_CheckChild0Integer, 4|128,49/*6276*/, 
/* 79271*/      OPC_Scope, 32, /*->79305*/ // 3 children in Scope
/* 79273*/        OPC_RecordChild1, // #0 = $src1
/* 79274*/        OPC_MoveChild2,
/* 79275*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79278*/        OPC_RecordMemRef,
/* 79279*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79280*/        OPC_CheckFoldableChainNode,
/* 79281*/        OPC_RecordChild1, // #2 = $src2
/* 79282*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79284*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79286*/        OPC_MoveParent,
/* 79287*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79289*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79292*/        OPC_EmitMergeInputChains1_1,
/* 79293*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PAVGBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6276:{ *:[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)
/* 79305*/      /*Scope*/ 32, /*->79338*/
/* 79306*/        OPC_MoveChild1,
/* 79307*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79310*/        OPC_RecordMemRef,
/* 79311*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 79312*/        OPC_CheckFoldableChainNode,
/* 79313*/        OPC_RecordChild1, // #1 = $src2
/* 79314*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79316*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79318*/        OPC_MoveParent,
/* 79319*/        OPC_RecordChild2, // #2 = $src1
/* 79320*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79322*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79325*/        OPC_EmitMergeInputChains1_0,
/* 79326*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PAVGBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6276:{ *:[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)
/* 79338*/      /*Scope*/ 12, /*->79351*/
/* 79339*/        OPC_RecordChild1, // #0 = $src1
/* 79340*/        OPC_RecordChild2, // #1 = $src2
/* 79341*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79343*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PAVGBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6276:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PAVGBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79351*/      0, /*End of Scope*/
/* 79352*/    /*Scope*/ 84, /*->79437*/
/* 79353*/      OPC_CheckChild0Integer, 5|128,49/*6277*/, 
/* 79356*/      OPC_Scope, 32, /*->79390*/ // 3 children in Scope
/* 79358*/        OPC_RecordChild1, // #0 = $src1
/* 79359*/        OPC_MoveChild2,
/* 79360*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79363*/        OPC_RecordMemRef,
/* 79364*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79365*/        OPC_CheckFoldableChainNode,
/* 79366*/        OPC_RecordChild1, // #2 = $src2
/* 79367*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79369*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79371*/        OPC_MoveParent,
/* 79372*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79374*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79377*/        OPC_EmitMergeInputChains1_1,
/* 79378*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PAVGWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6277:{ *:[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)
/* 79390*/      /*Scope*/ 32, /*->79423*/
/* 79391*/        OPC_MoveChild1,
/* 79392*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79395*/        OPC_RecordMemRef,
/* 79396*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 79397*/        OPC_CheckFoldableChainNode,
/* 79398*/        OPC_RecordChild1, // #1 = $src2
/* 79399*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79401*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79403*/        OPC_MoveParent,
/* 79404*/        OPC_RecordChild2, // #2 = $src1
/* 79405*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79407*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79410*/        OPC_EmitMergeInputChains1_0,
/* 79411*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PAVGWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6277:{ *:[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)
/* 79423*/      /*Scope*/ 12, /*->79436*/
/* 79424*/        OPC_RecordChild1, // #0 = $src1
/* 79425*/        OPC_RecordChild2, // #1 = $src2
/* 79426*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79428*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PAVGWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6277:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PAVGWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79436*/      0, /*End of Scope*/
/* 79437*/    /*Scope*/ 84, /*->79522*/
/* 79438*/      OPC_CheckChild0Integer, 18|128,49/*6290*/, 
/* 79441*/      OPC_Scope, 32, /*->79475*/ // 3 children in Scope
/* 79443*/        OPC_RecordChild1, // #0 = $src1
/* 79444*/        OPC_MoveChild2,
/* 79445*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79448*/        OPC_RecordMemRef,
/* 79449*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79450*/        OPC_CheckFoldableChainNode,
/* 79451*/        OPC_RecordChild1, // #2 = $src2
/* 79452*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79454*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79456*/        OPC_MoveParent,
/* 79457*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79459*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79462*/        OPC_EmitMergeInputChains1_1,
/* 79463*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMINUBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6290:{ *:[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)
/* 79475*/      /*Scope*/ 32, /*->79508*/
/* 79476*/        OPC_MoveChild1,
/* 79477*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79480*/        OPC_RecordMemRef,
/* 79481*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 79482*/        OPC_CheckFoldableChainNode,
/* 79483*/        OPC_RecordChild1, // #1 = $src2
/* 79484*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79486*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79488*/        OPC_MoveParent,
/* 79489*/        OPC_RecordChild2, // #2 = $src1
/* 79490*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79492*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79495*/        OPC_EmitMergeInputChains1_0,
/* 79496*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMINUBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6290:{ *:[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)
/* 79508*/      /*Scope*/ 12, /*->79521*/
/* 79509*/        OPC_RecordChild1, // #0 = $src1
/* 79510*/        OPC_RecordChild2, // #1 = $src2
/* 79511*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79513*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMINUBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6290:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMINUBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79521*/      0, /*End of Scope*/
/* 79522*/    /*Scope*/ 84, /*->79607*/
/* 79523*/      OPC_CheckChild0Integer, 17|128,49/*6289*/, 
/* 79526*/      OPC_Scope, 32, /*->79560*/ // 3 children in Scope
/* 79528*/        OPC_RecordChild1, // #0 = $src1
/* 79529*/        OPC_MoveChild2,
/* 79530*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79533*/        OPC_RecordMemRef,
/* 79534*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79535*/        OPC_CheckFoldableChainNode,
/* 79536*/        OPC_RecordChild1, // #2 = $src2
/* 79537*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79539*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79541*/        OPC_MoveParent,
/* 79542*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79544*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79547*/        OPC_EmitMergeInputChains1_1,
/* 79548*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMINSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6289:{ *:[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)
/* 79560*/      /*Scope*/ 32, /*->79593*/
/* 79561*/        OPC_MoveChild1,
/* 79562*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79565*/        OPC_RecordMemRef,
/* 79566*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 79567*/        OPC_CheckFoldableChainNode,
/* 79568*/        OPC_RecordChild1, // #1 = $src2
/* 79569*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79571*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79573*/        OPC_MoveParent,
/* 79574*/        OPC_RecordChild2, // #2 = $src1
/* 79575*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79577*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79580*/        OPC_EmitMergeInputChains1_0,
/* 79581*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMINSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6289:{ *:[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)
/* 79593*/      /*Scope*/ 12, /*->79606*/
/* 79594*/        OPC_RecordChild1, // #0 = $src1
/* 79595*/        OPC_RecordChild2, // #1 = $src2
/* 79596*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79598*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMINSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6289:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMINSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79606*/      0, /*End of Scope*/
/* 79607*/    /*Scope*/ 84, /*->79692*/
/* 79608*/      OPC_CheckChild0Integer, 16|128,49/*6288*/, 
/* 79611*/      OPC_Scope, 32, /*->79645*/ // 3 children in Scope
/* 79613*/        OPC_RecordChild1, // #0 = $src1
/* 79614*/        OPC_MoveChild2,
/* 79615*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79618*/        OPC_RecordMemRef,
/* 79619*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79620*/        OPC_CheckFoldableChainNode,
/* 79621*/        OPC_RecordChild1, // #2 = $src2
/* 79622*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79624*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79626*/        OPC_MoveParent,
/* 79627*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79629*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79632*/        OPC_EmitMergeInputChains1_1,
/* 79633*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMAXUBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6288:{ *:[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)
/* 79645*/      /*Scope*/ 32, /*->79678*/
/* 79646*/        OPC_MoveChild1,
/* 79647*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79650*/        OPC_RecordMemRef,
/* 79651*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 79652*/        OPC_CheckFoldableChainNode,
/* 79653*/        OPC_RecordChild1, // #1 = $src2
/* 79654*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79656*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79658*/        OPC_MoveParent,
/* 79659*/        OPC_RecordChild2, // #2 = $src1
/* 79660*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79662*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79665*/        OPC_EmitMergeInputChains1_0,
/* 79666*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMAXUBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6288:{ *:[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)
/* 79678*/      /*Scope*/ 12, /*->79691*/
/* 79679*/        OPC_RecordChild1, // #0 = $src1
/* 79680*/        OPC_RecordChild2, // #1 = $src2
/* 79681*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79683*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMAXUBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6288:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMAXUBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79691*/      0, /*End of Scope*/
/* 79692*/    /*Scope*/ 84, /*->79777*/
/* 79693*/      OPC_CheckChild0Integer, 15|128,49/*6287*/, 
/* 79696*/      OPC_Scope, 32, /*->79730*/ // 3 children in Scope
/* 79698*/        OPC_RecordChild1, // #0 = $src1
/* 79699*/        OPC_MoveChild2,
/* 79700*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79703*/        OPC_RecordMemRef,
/* 79704*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79705*/        OPC_CheckFoldableChainNode,
/* 79706*/        OPC_RecordChild1, // #2 = $src2
/* 79707*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79709*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79711*/        OPC_MoveParent,
/* 79712*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79714*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79717*/        OPC_EmitMergeInputChains1_1,
/* 79718*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMAXSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6287:{ *:[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)
/* 79730*/      /*Scope*/ 32, /*->79763*/
/* 79731*/        OPC_MoveChild1,
/* 79732*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79735*/        OPC_RecordMemRef,
/* 79736*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 79737*/        OPC_CheckFoldableChainNode,
/* 79738*/        OPC_RecordChild1, // #1 = $src2
/* 79739*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79741*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79743*/        OPC_MoveParent,
/* 79744*/        OPC_RecordChild2, // #2 = $src1
/* 79745*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79747*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79750*/        OPC_EmitMergeInputChains1_0,
/* 79751*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMAXSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6287:{ *:[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)
/* 79763*/      /*Scope*/ 12, /*->79776*/
/* 79764*/        OPC_RecordChild1, // #0 = $src1
/* 79765*/        OPC_RecordChild2, // #1 = $src2
/* 79766*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79768*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMAXSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6287:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMAXSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79776*/      0, /*End of Scope*/
/* 79777*/    /*Scope*/ 84, /*->79862*/
/* 79778*/      OPC_CheckChild0Integer, 25|128,49/*6297*/, 
/* 79781*/      OPC_Scope, 32, /*->79815*/ // 3 children in Scope
/* 79783*/        OPC_RecordChild1, // #0 = $src1
/* 79784*/        OPC_MoveChild2,
/* 79785*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79788*/        OPC_RecordMemRef,
/* 79789*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79790*/        OPC_CheckFoldableChainNode,
/* 79791*/        OPC_RecordChild1, // #2 = $src2
/* 79792*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79794*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79796*/        OPC_MoveParent,
/* 79797*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79799*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79802*/        OPC_EmitMergeInputChains1_1,
/* 79803*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSADBWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6297:{ *:[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)
/* 79815*/      /*Scope*/ 32, /*->79848*/
/* 79816*/        OPC_MoveChild1,
/* 79817*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79820*/        OPC_RecordMemRef,
/* 79821*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 79822*/        OPC_CheckFoldableChainNode,
/* 79823*/        OPC_RecordChild1, // #1 = $src2
/* 79824*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79826*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79828*/        OPC_MoveParent,
/* 79829*/        OPC_RecordChild2, // #2 = $src1
/* 79830*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79832*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79835*/        OPC_EmitMergeInputChains1_0,
/* 79836*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSADBWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6297:{ *:[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)
/* 79848*/      /*Scope*/ 12, /*->79861*/
/* 79849*/        OPC_RecordChild1, // #0 = $src1
/* 79850*/        OPC_RecordChild2, // #1 = $src2
/* 79851*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 79853*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSADBWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6297:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSADBWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79861*/      0, /*End of Scope*/
/* 79862*/    /*Scope*/ 50, /*->79913*/
/* 79863*/      OPC_CheckChild0Integer, 12|128,51/*6540*/, 
/* 79866*/      OPC_RecordChild1, // #0 = $src1
/* 79867*/      OPC_Scope, 31, /*->79900*/ // 2 children in Scope
/* 79869*/        OPC_MoveChild2,
/* 79870*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79873*/        OPC_RecordMemRef,
/* 79874*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79875*/        OPC_CheckFoldableChainNode,
/* 79876*/        OPC_RecordChild1, // #2 = $src2
/* 79877*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79879*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79881*/        OPC_MoveParent,
/* 79882*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 79884*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79887*/        OPC_EmitMergeInputChains1_1,
/* 79888*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSIGNBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6540:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PSIGNBrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 79900*/      /*Scope*/ 11, /*->79912*/
/* 79901*/        OPC_RecordChild2, // #1 = $src2
/* 79902*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 79904*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSIGNBrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6540:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSIGNBrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79912*/      0, /*End of Scope*/
/* 79913*/    /*Scope*/ 50, /*->79964*/
/* 79914*/      OPC_CheckChild0Integer, 16|128,51/*6544*/, 
/* 79917*/      OPC_RecordChild1, // #0 = $src1
/* 79918*/      OPC_Scope, 31, /*->79951*/ // 2 children in Scope
/* 79920*/        OPC_MoveChild2,
/* 79921*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79924*/        OPC_RecordMemRef,
/* 79925*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79926*/        OPC_CheckFoldableChainNode,
/* 79927*/        OPC_RecordChild1, // #2 = $src2
/* 79928*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79930*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79932*/        OPC_MoveParent,
/* 79933*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 79935*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79938*/        OPC_EmitMergeInputChains1_1,
/* 79939*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSIGNWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6544:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PSIGNWrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 79951*/      /*Scope*/ 11, /*->79963*/
/* 79952*/        OPC_RecordChild2, // #1 = $src2
/* 79953*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 79955*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSIGNWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6544:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSIGNWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 79963*/      0, /*End of Scope*/
/* 79964*/    /*Scope*/ 50, /*->80015*/
/* 79965*/      OPC_CheckChild0Integer, 14|128,51/*6542*/, 
/* 79968*/      OPC_RecordChild1, // #0 = $src1
/* 79969*/      OPC_Scope, 31, /*->80002*/ // 2 children in Scope
/* 79971*/        OPC_MoveChild2,
/* 79972*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79975*/        OPC_RecordMemRef,
/* 79976*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 79977*/        OPC_CheckFoldableChainNode,
/* 79978*/        OPC_RecordChild1, // #2 = $src2
/* 79979*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79981*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79983*/        OPC_MoveParent,
/* 79984*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 79986*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 79989*/        OPC_EmitMergeInputChains1_1,
/* 79990*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSIGNDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6542:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PSIGNDrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 80002*/      /*Scope*/ 11, /*->80014*/
/* 80003*/        OPC_RecordChild2, // #1 = $src2
/* 80004*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 80006*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSIGNDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6542:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSIGNDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80014*/      0, /*End of Scope*/
/* 80015*/    /*Scope*/ 84, /*->80100*/
/* 80016*/      OPC_CheckChild0Integer, 2|128,49/*6274*/, 
/* 80019*/      OPC_Scope, 32, /*->80053*/ // 3 children in Scope
/* 80021*/        OPC_RecordChild1, // #0 = $src1
/* 80022*/        OPC_MoveChild2,
/* 80023*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80026*/        OPC_RecordMemRef,
/* 80027*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80028*/        OPC_CheckFoldableChainNode,
/* 80029*/        OPC_RecordChild1, // #2 = $src2
/* 80030*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80032*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80034*/        OPC_MoveParent,
/* 80035*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80037*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80040*/        OPC_EmitMergeInputChains1_1,
/* 80041*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PANDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6274:{ *:[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)
/* 80053*/      /*Scope*/ 32, /*->80086*/
/* 80054*/        OPC_MoveChild1,
/* 80055*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80058*/        OPC_RecordMemRef,
/* 80059*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 80060*/        OPC_CheckFoldableChainNode,
/* 80061*/        OPC_RecordChild1, // #1 = $src2
/* 80062*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80064*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80066*/        OPC_MoveParent,
/* 80067*/        OPC_RecordChild2, // #2 = $src1
/* 80068*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80070*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80073*/        OPC_EmitMergeInputChains1_0,
/* 80074*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PANDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6274:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:{ *:[x86mmx] }:$src1) - Complexity = 30
                  // Dst: (MMX_PANDirm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 80086*/      /*Scope*/ 12, /*->80099*/
/* 80087*/        OPC_RecordChild1, // #0 = $src1
/* 80088*/        OPC_RecordChild2, // #1 = $src2
/* 80089*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80091*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PANDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6274:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PANDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80099*/      0, /*End of Scope*/
/* 80100*/    /*Scope*/ 84, /*->80185*/
/* 80101*/      OPC_CheckChild0Integer, 24|128,49/*6296*/, 
/* 80104*/      OPC_Scope, 32, /*->80138*/ // 3 children in Scope
/* 80106*/        OPC_RecordChild1, // #0 = $src1
/* 80107*/        OPC_MoveChild2,
/* 80108*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80111*/        OPC_RecordMemRef,
/* 80112*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80113*/        OPC_CheckFoldableChainNode,
/* 80114*/        OPC_RecordChild1, // #2 = $src2
/* 80115*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80117*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80119*/        OPC_MoveParent,
/* 80120*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80122*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80125*/        OPC_EmitMergeInputChains1_1,
/* 80126*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PORirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6296:{ *:[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)
/* 80138*/      /*Scope*/ 32, /*->80171*/
/* 80139*/        OPC_MoveChild1,
/* 80140*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80143*/        OPC_RecordMemRef,
/* 80144*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 80145*/        OPC_CheckFoldableChainNode,
/* 80146*/        OPC_RecordChild1, // #1 = $src2
/* 80147*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80149*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80151*/        OPC_MoveParent,
/* 80152*/        OPC_RecordChild2, // #2 = $src1
/* 80153*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80155*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80158*/        OPC_EmitMergeInputChains1_0,
/* 80159*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PORirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6296:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:{ *:[x86mmx] }:$src1) - Complexity = 30
                  // Dst: (MMX_PORirm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 80171*/      /*Scope*/ 12, /*->80184*/
/* 80172*/        OPC_RecordChild1, // #0 = $src1
/* 80173*/        OPC_RecordChild2, // #1 = $src2
/* 80174*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80176*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PORirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6296:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PORirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80184*/      0, /*End of Scope*/
/* 80185*/    /*Scope*/ 84, /*->80270*/
/* 80186*/      OPC_CheckChild0Integer, 56|128,49/*6328*/, 
/* 80189*/      OPC_Scope, 32, /*->80223*/ // 3 children in Scope
/* 80191*/        OPC_RecordChild1, // #0 = $src1
/* 80192*/        OPC_MoveChild2,
/* 80193*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80196*/        OPC_RecordMemRef,
/* 80197*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80198*/        OPC_CheckFoldableChainNode,
/* 80199*/        OPC_RecordChild1, // #2 = $src2
/* 80200*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80202*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80204*/        OPC_MoveParent,
/* 80205*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80207*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80210*/        OPC_EmitMergeInputChains1_1,
/* 80211*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PXORirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6328:{ *:[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)
/* 80223*/      /*Scope*/ 32, /*->80256*/
/* 80224*/        OPC_MoveChild1,
/* 80225*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80228*/        OPC_RecordMemRef,
/* 80229*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 80230*/        OPC_CheckFoldableChainNode,
/* 80231*/        OPC_RecordChild1, // #1 = $src2
/* 80232*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80234*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80236*/        OPC_MoveParent,
/* 80237*/        OPC_RecordChild2, // #2 = $src1
/* 80238*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80240*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80243*/        OPC_EmitMergeInputChains1_0,
/* 80244*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PXORirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6328:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:{ *:[x86mmx] }:$src1) - Complexity = 30
                  // Dst: (MMX_PXORirm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 80256*/      /*Scope*/ 12, /*->80269*/
/* 80257*/        OPC_RecordChild1, // #0 = $src1
/* 80258*/        OPC_RecordChild2, // #1 = $src2
/* 80259*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80261*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PXORirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6328:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PXORirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80269*/      0, /*End of Scope*/
/* 80270*/    /*Scope*/ 50, /*->80321*/
/* 80271*/      OPC_CheckChild0Integer, 3|128,49/*6275*/, 
/* 80274*/      OPC_RecordChild1, // #0 = $src1
/* 80275*/      OPC_Scope, 31, /*->80308*/ // 2 children in Scope
/* 80277*/        OPC_MoveChild2,
/* 80278*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80281*/        OPC_RecordMemRef,
/* 80282*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80283*/        OPC_CheckFoldableChainNode,
/* 80284*/        OPC_RecordChild1, // #2 = $src2
/* 80285*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80287*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80289*/        OPC_MoveParent,
/* 80290*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80292*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80295*/        OPC_EmitMergeInputChains1_1,
/* 80296*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PANDNirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6275:{ *:[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)
/* 80308*/      /*Scope*/ 11, /*->80320*/
/* 80309*/        OPC_RecordChild2, // #1 = $src2
/* 80310*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80312*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PANDNirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6275:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PANDNirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80320*/      0, /*End of Scope*/
/* 80321*/    /*Scope*/ 50, /*->80372*/
/* 80322*/      OPC_CheckChild0Integer, 38|128,49/*6310*/, 
/* 80325*/      OPC_RecordChild1, // #0 = $src1
/* 80326*/      OPC_Scope, 31, /*->80359*/ // 2 children in Scope
/* 80328*/        OPC_MoveChild2,
/* 80329*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80332*/        OPC_RecordMemRef,
/* 80333*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80334*/        OPC_CheckFoldableChainNode,
/* 80335*/        OPC_RecordChild1, // #2 = $src2
/* 80336*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80338*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80340*/        OPC_MoveParent,
/* 80341*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80343*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80346*/        OPC_EmitMergeInputChains1_1,
/* 80347*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6310:{ *:[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)
/* 80359*/      /*Scope*/ 11, /*->80371*/
/* 80360*/        OPC_RecordChild2, // #1 = $src2
/* 80361*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80363*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6310:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSRLWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80371*/      0, /*End of Scope*/
/* 80372*/    /*Scope*/ 50, /*->80423*/
/* 80373*/      OPC_CheckChild0Integer, 36|128,49/*6308*/, 
/* 80376*/      OPC_RecordChild1, // #0 = $src1
/* 80377*/      OPC_Scope, 31, /*->80410*/ // 2 children in Scope
/* 80379*/        OPC_MoveChild2,
/* 80380*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80383*/        OPC_RecordMemRef,
/* 80384*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80385*/        OPC_CheckFoldableChainNode,
/* 80386*/        OPC_RecordChild1, // #2 = $src2
/* 80387*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80389*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80391*/        OPC_MoveParent,
/* 80392*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80394*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80397*/        OPC_EmitMergeInputChains1_1,
/* 80398*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6308:{ *:[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)
/* 80410*/      /*Scope*/ 11, /*->80422*/
/* 80411*/        OPC_RecordChild2, // #1 = $src2
/* 80412*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80414*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6308:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSRLDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80422*/      0, /*End of Scope*/
/* 80423*/    /*Scope*/ 50, /*->80474*/
/* 80424*/      OPC_CheckChild0Integer, 37|128,49/*6309*/, 
/* 80427*/      OPC_RecordChild1, // #0 = $src1
/* 80428*/      OPC_Scope, 31, /*->80461*/ // 2 children in Scope
/* 80430*/        OPC_MoveChild2,
/* 80431*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80434*/        OPC_RecordMemRef,
/* 80435*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80436*/        OPC_CheckFoldableChainNode,
/* 80437*/        OPC_RecordChild1, // #2 = $src2
/* 80438*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80440*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80442*/        OPC_MoveParent,
/* 80443*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80445*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80448*/        OPC_EmitMergeInputChains1_1,
/* 80449*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6309:{ *:[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)
/* 80461*/      /*Scope*/ 11, /*->80473*/
/* 80462*/        OPC_RecordChild2, // #1 = $src2
/* 80463*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80465*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLQrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6309:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSRLQrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80473*/      0, /*End of Scope*/
/* 80474*/    /*Scope*/ 50, /*->80525*/
/* 80475*/      OPC_CheckChild0Integer, 28|128,49/*6300*/, 
/* 80478*/      OPC_RecordChild1, // #0 = $src1
/* 80479*/      OPC_Scope, 31, /*->80512*/ // 2 children in Scope
/* 80481*/        OPC_MoveChild2,
/* 80482*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80485*/        OPC_RecordMemRef,
/* 80486*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80487*/        OPC_CheckFoldableChainNode,
/* 80488*/        OPC_RecordChild1, // #2 = $src2
/* 80489*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80491*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80493*/        OPC_MoveParent,
/* 80494*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80496*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80499*/        OPC_EmitMergeInputChains1_1,
/* 80500*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6300:{ *:[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)
/* 80512*/      /*Scope*/ 11, /*->80524*/
/* 80513*/        OPC_RecordChild2, // #1 = $src2
/* 80514*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80516*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6300:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSLLWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80524*/      0, /*End of Scope*/
/* 80525*/    /*Scope*/ 50, /*->80576*/
/* 80526*/      OPC_CheckChild0Integer, 26|128,49/*6298*/, 
/* 80529*/      OPC_RecordChild1, // #0 = $src1
/* 80530*/      OPC_Scope, 31, /*->80563*/ // 2 children in Scope
/* 80532*/        OPC_MoveChild2,
/* 80533*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80536*/        OPC_RecordMemRef,
/* 80537*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80538*/        OPC_CheckFoldableChainNode,
/* 80539*/        OPC_RecordChild1, // #2 = $src2
/* 80540*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80542*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80544*/        OPC_MoveParent,
/* 80545*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80547*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80550*/        OPC_EmitMergeInputChains1_1,
/* 80551*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6298:{ *:[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)
/* 80563*/      /*Scope*/ 11, /*->80575*/
/* 80564*/        OPC_RecordChild2, // #1 = $src2
/* 80565*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80567*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6298:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSLLDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80575*/      0, /*End of Scope*/
/* 80576*/    /*Scope*/ 50, /*->80627*/
/* 80577*/      OPC_CheckChild0Integer, 27|128,49/*6299*/, 
/* 80580*/      OPC_RecordChild1, // #0 = $src1
/* 80581*/      OPC_Scope, 31, /*->80614*/ // 2 children in Scope
/* 80583*/        OPC_MoveChild2,
/* 80584*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80587*/        OPC_RecordMemRef,
/* 80588*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80589*/        OPC_CheckFoldableChainNode,
/* 80590*/        OPC_RecordChild1, // #2 = $src2
/* 80591*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80593*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80595*/        OPC_MoveParent,
/* 80596*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80598*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80601*/        OPC_EmitMergeInputChains1_1,
/* 80602*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6299:{ *:[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)
/* 80614*/      /*Scope*/ 11, /*->80626*/
/* 80615*/        OPC_RecordChild2, // #1 = $src2
/* 80616*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80618*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLQrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6299:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSLLQrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80626*/      0, /*End of Scope*/
/* 80627*/    /*Scope*/ 50, /*->80678*/
/* 80628*/      OPC_CheckChild0Integer, 33|128,49/*6305*/, 
/* 80631*/      OPC_RecordChild1, // #0 = $src1
/* 80632*/      OPC_Scope, 31, /*->80665*/ // 2 children in Scope
/* 80634*/        OPC_MoveChild2,
/* 80635*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80638*/        OPC_RecordMemRef,
/* 80639*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80640*/        OPC_CheckFoldableChainNode,
/* 80641*/        OPC_RecordChild1, // #2 = $src2
/* 80642*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80644*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80646*/        OPC_MoveParent,
/* 80647*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80649*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80652*/        OPC_EmitMergeInputChains1_1,
/* 80653*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRAWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6305:{ *:[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)
/* 80665*/      /*Scope*/ 11, /*->80677*/
/* 80666*/        OPC_RecordChild2, // #1 = $src2
/* 80667*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80669*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRAWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6305:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSRAWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80677*/      0, /*End of Scope*/
/* 80678*/    /*Scope*/ 50, /*->80729*/
/* 80679*/      OPC_CheckChild0Integer, 32|128,49/*6304*/, 
/* 80682*/      OPC_RecordChild1, // #0 = $src1
/* 80683*/      OPC_Scope, 31, /*->80716*/ // 2 children in Scope
/* 80685*/        OPC_MoveChild2,
/* 80686*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80689*/        OPC_RecordMemRef,
/* 80690*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80691*/        OPC_CheckFoldableChainNode,
/* 80692*/        OPC_RecordChild1, // #2 = $src2
/* 80693*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80695*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80697*/        OPC_MoveParent,
/* 80698*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80700*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80703*/        OPC_EmitMergeInputChains1_1,
/* 80704*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRADrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6304:{ *:[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)
/* 80716*/      /*Scope*/ 11, /*->80728*/
/* 80717*/        OPC_RecordChild2, // #1 = $src2
/* 80718*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80720*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRADrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6304:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSRADrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80728*/      0, /*End of Scope*/
/* 80729*/    /*Scope*/ 84, /*->80814*/
/* 80730*/      OPC_CheckChild0Integer, 6|128,49/*6278*/, 
/* 80733*/      OPC_Scope, 32, /*->80767*/ // 3 children in Scope
/* 80735*/        OPC_RecordChild1, // #0 = $src1
/* 80736*/        OPC_MoveChild2,
/* 80737*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80740*/        OPC_RecordMemRef,
/* 80741*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80742*/        OPC_CheckFoldableChainNode,
/* 80743*/        OPC_RecordChild1, // #2 = $src2
/* 80744*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80746*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80748*/        OPC_MoveParent,
/* 80749*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80751*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80754*/        OPC_EmitMergeInputChains1_1,
/* 80755*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6278:{ *:[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)
/* 80767*/      /*Scope*/ 32, /*->80800*/
/* 80768*/        OPC_MoveChild1,
/* 80769*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80772*/        OPC_RecordMemRef,
/* 80773*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 80774*/        OPC_CheckFoldableChainNode,
/* 80775*/        OPC_RecordChild1, // #1 = $src2
/* 80776*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80778*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80780*/        OPC_MoveParent,
/* 80781*/        OPC_RecordChild2, // #2 = $src1
/* 80782*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80784*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80787*/        OPC_EmitMergeInputChains1_0,
/* 80788*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6278:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:{ *:[x86mmx] }:$src1) - Complexity = 30
                  // Dst: (MMX_PCMPEQBirm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 80800*/      /*Scope*/ 12, /*->80813*/
/* 80801*/        OPC_RecordChild1, // #0 = $src1
/* 80802*/        OPC_RecordChild2, // #1 = $src2
/* 80803*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80805*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6278:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPEQBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80813*/      0, /*End of Scope*/
/* 80814*/    /*Scope*/ 84, /*->80899*/
/* 80815*/      OPC_CheckChild0Integer, 8|128,49/*6280*/, 
/* 80818*/      OPC_Scope, 32, /*->80852*/ // 3 children in Scope
/* 80820*/        OPC_RecordChild1, // #0 = $src1
/* 80821*/        OPC_MoveChild2,
/* 80822*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80825*/        OPC_RecordMemRef,
/* 80826*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80827*/        OPC_CheckFoldableChainNode,
/* 80828*/        OPC_RecordChild1, // #2 = $src2
/* 80829*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80831*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80833*/        OPC_MoveParent,
/* 80834*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80836*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80839*/        OPC_EmitMergeInputChains1_1,
/* 80840*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6280:{ *:[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)
/* 80852*/      /*Scope*/ 32, /*->80885*/
/* 80853*/        OPC_MoveChild1,
/* 80854*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80857*/        OPC_RecordMemRef,
/* 80858*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 80859*/        OPC_CheckFoldableChainNode,
/* 80860*/        OPC_RecordChild1, // #1 = $src2
/* 80861*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80863*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80865*/        OPC_MoveParent,
/* 80866*/        OPC_RecordChild2, // #2 = $src1
/* 80867*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80869*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80872*/        OPC_EmitMergeInputChains1_0,
/* 80873*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6280:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:{ *:[x86mmx] }:$src1) - Complexity = 30
                  // Dst: (MMX_PCMPEQWirm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 80885*/      /*Scope*/ 12, /*->80898*/
/* 80886*/        OPC_RecordChild1, // #0 = $src1
/* 80887*/        OPC_RecordChild2, // #1 = $src2
/* 80888*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80890*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6280:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPEQWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80898*/      0, /*End of Scope*/
/* 80899*/    /*Scope*/ 84, /*->80984*/
/* 80900*/      OPC_CheckChild0Integer, 7|128,49/*6279*/, 
/* 80903*/      OPC_Scope, 32, /*->80937*/ // 3 children in Scope
/* 80905*/        OPC_RecordChild1, // #0 = $src1
/* 80906*/        OPC_MoveChild2,
/* 80907*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80910*/        OPC_RecordMemRef,
/* 80911*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80912*/        OPC_CheckFoldableChainNode,
/* 80913*/        OPC_RecordChild1, // #2 = $src2
/* 80914*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80916*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80918*/        OPC_MoveParent,
/* 80919*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80921*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80924*/        OPC_EmitMergeInputChains1_1,
/* 80925*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6279:{ *:[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)
/* 80937*/      /*Scope*/ 32, /*->80970*/
/* 80938*/        OPC_MoveChild1,
/* 80939*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80942*/        OPC_RecordMemRef,
/* 80943*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 80944*/        OPC_CheckFoldableChainNode,
/* 80945*/        OPC_RecordChild1, // #1 = $src2
/* 80946*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80948*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80950*/        OPC_MoveParent,
/* 80951*/        OPC_RecordChild2, // #2 = $src1
/* 80952*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80954*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80957*/        OPC_EmitMergeInputChains1_0,
/* 80958*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6279:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:{ *:[x86mmx] }:$src1) - Complexity = 30
                  // Dst: (MMX_PCMPEQDirm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 80970*/      /*Scope*/ 12, /*->80983*/
/* 80971*/        OPC_RecordChild1, // #0 = $src1
/* 80972*/        OPC_RecordChild2, // #1 = $src2
/* 80973*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 80975*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6279:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPEQDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 80983*/      0, /*End of Scope*/
/* 80984*/    /*Scope*/ 50, /*->81035*/
/* 80985*/      OPC_CheckChild0Integer, 9|128,49/*6281*/, 
/* 80988*/      OPC_RecordChild1, // #0 = $src1
/* 80989*/      OPC_Scope, 31, /*->81022*/ // 2 children in Scope
/* 80991*/        OPC_MoveChild2,
/* 80992*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80995*/        OPC_RecordMemRef,
/* 80996*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 80997*/        OPC_CheckFoldableChainNode,
/* 80998*/        OPC_RecordChild1, // #2 = $src2
/* 80999*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81001*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81003*/        OPC_MoveParent,
/* 81004*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81006*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81009*/        OPC_EmitMergeInputChains1_1,
/* 81010*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPGTBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6281:{ *:[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)
/* 81022*/      /*Scope*/ 11, /*->81034*/
/* 81023*/        OPC_RecordChild2, // #1 = $src2
/* 81024*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81026*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPGTBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6281:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPGTBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81034*/      0, /*End of Scope*/
/* 81035*/    /*Scope*/ 50, /*->81086*/
/* 81036*/      OPC_CheckChild0Integer, 11|128,49/*6283*/, 
/* 81039*/      OPC_RecordChild1, // #0 = $src1
/* 81040*/      OPC_Scope, 31, /*->81073*/ // 2 children in Scope
/* 81042*/        OPC_MoveChild2,
/* 81043*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81046*/        OPC_RecordMemRef,
/* 81047*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81048*/        OPC_CheckFoldableChainNode,
/* 81049*/        OPC_RecordChild1, // #2 = $src2
/* 81050*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81052*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81054*/        OPC_MoveParent,
/* 81055*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81057*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81060*/        OPC_EmitMergeInputChains1_1,
/* 81061*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPGTWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6283:{ *:[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)
/* 81073*/      /*Scope*/ 11, /*->81085*/
/* 81074*/        OPC_RecordChild2, // #1 = $src2
/* 81075*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81077*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPGTWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6283:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPGTWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81085*/      0, /*End of Scope*/
/* 81086*/    /*Scope*/ 50, /*->81137*/
/* 81087*/      OPC_CheckChild0Integer, 10|128,49/*6282*/, 
/* 81090*/      OPC_RecordChild1, // #0 = $src1
/* 81091*/      OPC_Scope, 31, /*->81124*/ // 2 children in Scope
/* 81093*/        OPC_MoveChild2,
/* 81094*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81097*/        OPC_RecordMemRef,
/* 81098*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81099*/        OPC_CheckFoldableChainNode,
/* 81100*/        OPC_RecordChild1, // #2 = $src2
/* 81101*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81103*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81105*/        OPC_MoveParent,
/* 81106*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81108*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81111*/        OPC_EmitMergeInputChains1_1,
/* 81112*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPGTDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6282:{ *:[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)
/* 81124*/      /*Scope*/ 11, /*->81136*/
/* 81125*/        OPC_RecordChild2, // #1 = $src2
/* 81126*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81128*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPGTDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6282:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPGTDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81136*/      0, /*End of Scope*/
/* 81137*/    /*Scope*/ 50, /*->81188*/
/* 81138*/      OPC_CheckChild0Integer, 50|128,49/*6322*/, 
/* 81141*/      OPC_RecordChild1, // #0 = $src1
/* 81142*/      OPC_Scope, 31, /*->81175*/ // 2 children in Scope
/* 81144*/        OPC_MoveChild2,
/* 81145*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81148*/        OPC_RecordMemRef,
/* 81149*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81150*/        OPC_CheckFoldableChainNode,
/* 81151*/        OPC_RecordChild1, // #2 = $src2
/* 81152*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81154*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81156*/        OPC_MoveParent,
/* 81157*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81159*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81162*/        OPC_EmitMergeInputChains1_1,
/* 81163*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKHBWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6322:{ *:[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)
/* 81175*/      /*Scope*/ 11, /*->81187*/
/* 81176*/        OPC_RecordChild2, // #1 = $src2
/* 81177*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81179*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKHBWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6322:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKHBWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81187*/      0, /*End of Scope*/
/* 81188*/    /*Scope*/ 50, /*->81239*/
/* 81189*/      OPC_CheckChild0Integer, 52|128,49/*6324*/, 
/* 81192*/      OPC_RecordChild1, // #0 = $src1
/* 81193*/      OPC_Scope, 31, /*->81226*/ // 2 children in Scope
/* 81195*/        OPC_MoveChild2,
/* 81196*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81199*/        OPC_RecordMemRef,
/* 81200*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81201*/        OPC_CheckFoldableChainNode,
/* 81202*/        OPC_RecordChild1, // #2 = $src2
/* 81203*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81205*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81207*/        OPC_MoveParent,
/* 81208*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81210*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81213*/        OPC_EmitMergeInputChains1_1,
/* 81214*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKHWDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6324:{ *:[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)
/* 81226*/      /*Scope*/ 11, /*->81238*/
/* 81227*/        OPC_RecordChild2, // #1 = $src2
/* 81228*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81230*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKHWDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6324:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKHWDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81238*/      0, /*End of Scope*/
/* 81239*/    /*Scope*/ 50, /*->81290*/
/* 81240*/      OPC_CheckChild0Integer, 51|128,49/*6323*/, 
/* 81243*/      OPC_RecordChild1, // #0 = $src1
/* 81244*/      OPC_Scope, 31, /*->81277*/ // 2 children in Scope
/* 81246*/        OPC_MoveChild2,
/* 81247*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81250*/        OPC_RecordMemRef,
/* 81251*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81252*/        OPC_CheckFoldableChainNode,
/* 81253*/        OPC_RecordChild1, // #2 = $src2
/* 81254*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81256*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81258*/        OPC_MoveParent,
/* 81259*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81261*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81264*/        OPC_EmitMergeInputChains1_1,
/* 81265*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKHDQirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6323:{ *:[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)
/* 81277*/      /*Scope*/ 11, /*->81289*/
/* 81278*/        OPC_RecordChild2, // #1 = $src2
/* 81279*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81281*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKHDQirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6323:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKHDQirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81289*/      0, /*End of Scope*/
/* 81290*/    /*Scope*/ 50, /*->81341*/
/* 81291*/      OPC_CheckChild0Integer, 53|128,49/*6325*/, 
/* 81294*/      OPC_RecordChild1, // #0 = $src1
/* 81295*/      OPC_Scope, 31, /*->81328*/ // 2 children in Scope
/* 81297*/        OPC_MoveChild2,
/* 81298*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81301*/        OPC_RecordMemRef,
/* 81302*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81303*/        OPC_CheckFoldableChainNode,
/* 81304*/        OPC_RecordChild1, // #2 = $src2
/* 81305*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81307*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81309*/        OPC_MoveParent,
/* 81310*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81312*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81315*/        OPC_EmitMergeInputChains1_1,
/* 81316*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKLBWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6325:{ *:[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)
/* 81328*/      /*Scope*/ 11, /*->81340*/
/* 81329*/        OPC_RecordChild2, // #1 = $src2
/* 81330*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81332*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKLBWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6325:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKLBWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81340*/      0, /*End of Scope*/
/* 81341*/    /*Scope*/ 50, /*->81392*/
/* 81342*/      OPC_CheckChild0Integer, 55|128,49/*6327*/, 
/* 81345*/      OPC_RecordChild1, // #0 = $src1
/* 81346*/      OPC_Scope, 31, /*->81379*/ // 2 children in Scope
/* 81348*/        OPC_MoveChild2,
/* 81349*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81352*/        OPC_RecordMemRef,
/* 81353*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81354*/        OPC_CheckFoldableChainNode,
/* 81355*/        OPC_RecordChild1, // #2 = $src2
/* 81356*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81358*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81360*/        OPC_MoveParent,
/* 81361*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81363*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81366*/        OPC_EmitMergeInputChains1_1,
/* 81367*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKLWDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6327:{ *:[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)
/* 81379*/      /*Scope*/ 11, /*->81391*/
/* 81380*/        OPC_RecordChild2, // #1 = $src2
/* 81381*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81383*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKLWDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6327:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKLWDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81391*/      0, /*End of Scope*/
/* 81392*/    /*Scope*/ 50, /*->81443*/
/* 81393*/      OPC_CheckChild0Integer, 54|128,49/*6326*/, 
/* 81396*/      OPC_RecordChild1, // #0 = $src1
/* 81397*/      OPC_Scope, 31, /*->81430*/ // 2 children in Scope
/* 81399*/        OPC_MoveChild2,
/* 81400*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81403*/        OPC_RecordMemRef,
/* 81404*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81405*/        OPC_CheckFoldableChainNode,
/* 81406*/        OPC_RecordChild1, // #2 = $src2
/* 81407*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81409*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81411*/        OPC_MoveParent,
/* 81412*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81414*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81417*/        OPC_EmitMergeInputChains1_1,
/* 81418*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKLDQirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6326:{ *:[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)
/* 81430*/      /*Scope*/ 11, /*->81442*/
/* 81431*/        OPC_RecordChild2, // #1 = $src2
/* 81432*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81434*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKLDQirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6326:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKLDQirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81442*/      0, /*End of Scope*/
/* 81443*/    /*Scope*/ 50, /*->81494*/
/* 81444*/      OPC_CheckChild0Integer, 119|128,48/*6263*/, 
/* 81447*/      OPC_RecordChild1, // #0 = $src1
/* 81448*/      OPC_Scope, 31, /*->81481*/ // 2 children in Scope
/* 81450*/        OPC_MoveChild2,
/* 81451*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81454*/        OPC_RecordMemRef,
/* 81455*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81456*/        OPC_CheckFoldableChainNode,
/* 81457*/        OPC_RecordChild1, // #2 = $src2
/* 81458*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81460*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81462*/        OPC_MoveParent,
/* 81463*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81465*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81468*/        OPC_EmitMergeInputChains1_1,
/* 81469*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PACKSSWBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6263:{ *:[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)
/* 81481*/      /*Scope*/ 11, /*->81493*/
/* 81482*/        OPC_RecordChild2, // #1 = $src2
/* 81483*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81485*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PACKSSWBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6263:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PACKSSWBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81493*/      0, /*End of Scope*/
/* 81494*/    /*Scope*/ 50, /*->81545*/
/* 81495*/      OPC_CheckChild0Integer, 118|128,48/*6262*/, 
/* 81498*/      OPC_RecordChild1, // #0 = $src1
/* 81499*/      OPC_Scope, 31, /*->81532*/ // 2 children in Scope
/* 81501*/        OPC_MoveChild2,
/* 81502*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81505*/        OPC_RecordMemRef,
/* 81506*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81507*/        OPC_CheckFoldableChainNode,
/* 81508*/        OPC_RecordChild1, // #2 = $src2
/* 81509*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81511*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81513*/        OPC_MoveParent,
/* 81514*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81516*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81519*/        OPC_EmitMergeInputChains1_1,
/* 81520*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PACKSSDWirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6262:{ *:[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)
/* 81532*/      /*Scope*/ 11, /*->81544*/
/* 81533*/        OPC_RecordChild2, // #1 = $src2
/* 81534*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81536*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PACKSSDWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6262:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PACKSSDWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81544*/      0, /*End of Scope*/
/* 81545*/    /*Scope*/ 50, /*->81596*/
/* 81546*/      OPC_CheckChild0Integer, 120|128,48/*6264*/, 
/* 81549*/      OPC_RecordChild1, // #0 = $src1
/* 81550*/      OPC_Scope, 31, /*->81583*/ // 2 children in Scope
/* 81552*/        OPC_MoveChild2,
/* 81553*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81556*/        OPC_RecordMemRef,
/* 81557*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81558*/        OPC_CheckFoldableChainNode,
/* 81559*/        OPC_RecordChild1, // #2 = $src2
/* 81560*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81562*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81564*/        OPC_MoveParent,
/* 81565*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81567*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81570*/        OPC_EmitMergeInputChains1_1,
/* 81571*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PACKUSWBirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6264:{ *:[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)
/* 81583*/      /*Scope*/ 11, /*->81595*/
/* 81584*/        OPC_RecordChild2, // #1 = $src2
/* 81585*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 81587*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PACKUSWBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6264:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PACKUSWBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81595*/      0, /*End of Scope*/
/* 81596*/    /*Scope*/ 50, /*->81647*/
/* 81597*/      OPC_CheckChild0Integer, 10|128,51/*6538*/, 
/* 81600*/      OPC_RecordChild1, // #0 = $src1
/* 81601*/      OPC_Scope, 31, /*->81634*/ // 2 children in Scope
/* 81603*/        OPC_MoveChild2,
/* 81604*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81607*/        OPC_RecordMemRef,
/* 81608*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81609*/        OPC_CheckFoldableChainNode,
/* 81610*/        OPC_RecordChild1, // #2 = $src2
/* 81611*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81613*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81615*/        OPC_MoveParent,
/* 81616*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 81618*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81621*/        OPC_EmitMergeInputChains1_1,
/* 81622*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSHUFBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6538:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PSHUFBrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 81634*/      /*Scope*/ 11, /*->81646*/
/* 81635*/        OPC_RecordChild2, // #1 = $src2
/* 81636*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 81638*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSHUFBrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6538:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSHUFBrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81646*/      0, /*End of Scope*/
/* 81647*/    /*Scope*/ 47, /*->81695*/
/* 81648*/      OPC_CheckChild0Integer, 108|128,49/*6380*/, 
/* 81651*/      OPC_Scope, 30, /*->81683*/ // 2 children in Scope
/* 81653*/        OPC_MoveChild1,
/* 81654*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81657*/        OPC_RecordMemRef,
/* 81658*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 81659*/        OPC_CheckFoldableChainNode,
/* 81660*/        OPC_RecordChild1, // #1 = $src
/* 81661*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81663*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81665*/        OPC_MoveParent,
/* 81666*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 81668*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 81671*/        OPC_EmitMergeInputChains1_0,
/* 81672*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPS2PIirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6380:{ *:[iPTR] }, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_CVTPS2PIirm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 81683*/      /*Scope*/ 10, /*->81694*/
/* 81684*/        OPC_RecordChild1, // #0 = $src
/* 81685*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 81687*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPS2PIirr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6380:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (MMX_CVTPS2PIirr:{ *:[x86mmx] } VR128:{ *:[v4f32] }:$src)
/* 81694*/      0, /*End of Scope*/
/* 81695*/    /*Scope*/ 51, /*->81747*/
/* 81696*/      OPC_CheckChild0Integer, 105|128,49/*6377*/, 
/* 81699*/      OPC_Scope, 34, /*->81735*/ // 2 children in Scope
/* 81701*/        OPC_MoveChild1,
/* 81702*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81705*/        OPC_RecordMemRef,
/* 81706*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 81707*/        OPC_CheckFoldableChainNode,
/* 81708*/        OPC_RecordChild1, // #1 = $src
/* 81709*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81711*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81713*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 81715*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 81717*/        OPC_MoveParent,
/* 81718*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 81720*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 81723*/        OPC_EmitMergeInputChains1_0,
/* 81724*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPD2PIirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6377:{ *:[iPTR] }, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (MMX_CVTPD2PIirm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 81735*/      /*Scope*/ 10, /*->81746*/
/* 81736*/        OPC_RecordChild1, // #0 = $src
/* 81737*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 81739*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPD2PIirr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6377:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (MMX_CVTPD2PIirr:{ *:[x86mmx] } VR128:{ *:[v2f64] }:$src)
/* 81746*/      0, /*End of Scope*/
/* 81747*/    /*Scope*/ 47, /*->81795*/
/* 81748*/      OPC_CheckChild0Integer, 112|128,49/*6384*/, 
/* 81751*/      OPC_Scope, 30, /*->81783*/ // 2 children in Scope
/* 81753*/        OPC_MoveChild1,
/* 81754*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81757*/        OPC_RecordMemRef,
/* 81758*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 81759*/        OPC_CheckFoldableChainNode,
/* 81760*/        OPC_RecordChild1, // #1 = $src
/* 81761*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81763*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81765*/        OPC_MoveParent,
/* 81766*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 81768*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 81771*/        OPC_EmitMergeInputChains1_0,
/* 81772*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTTPS2PIirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6384:{ *:[iPTR] }, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_CVTTPS2PIirm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 81783*/      /*Scope*/ 10, /*->81794*/
/* 81784*/        OPC_RecordChild1, // #0 = $src
/* 81785*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 81787*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTTPS2PIirr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6384:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (MMX_CVTTPS2PIirr:{ *:[x86mmx] } VR128:{ *:[v4f32] }:$src)
/* 81794*/      0, /*End of Scope*/
/* 81795*/    /*Scope*/ 51, /*->81847*/
/* 81796*/      OPC_CheckChild0Integer, 111|128,49/*6383*/, 
/* 81799*/      OPC_Scope, 34, /*->81835*/ // 2 children in Scope
/* 81801*/        OPC_MoveChild1,
/* 81802*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81805*/        OPC_RecordMemRef,
/* 81806*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 81807*/        OPC_CheckFoldableChainNode,
/* 81808*/        OPC_RecordChild1, // #1 = $src
/* 81809*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81811*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81813*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 81815*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 81817*/        OPC_MoveParent,
/* 81818*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 81820*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 81823*/        OPC_EmitMergeInputChains1_0,
/* 81824*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTTPD2PIirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6383:{ *:[iPTR] }, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (MMX_CVTTPD2PIirm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 81835*/      /*Scope*/ 10, /*->81846*/
/* 81836*/        OPC_RecordChild1, // #0 = $src
/* 81837*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 81839*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTTPD2PIirr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6383:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (MMX_CVTTPD2PIirr:{ *:[x86mmx] } VR128:{ *:[v2f64] }:$src)
/* 81846*/      0, /*End of Scope*/
/* 81847*/    /*Scope*/ 50, /*->81898*/
/* 81848*/      OPC_CheckChild0Integer, 11|128,42/*5387*/, 
/* 81851*/      OPC_RecordChild1, // #0 = $src1
/* 81852*/      OPC_Scope, 31, /*->81885*/ // 2 children in Scope
/* 81854*/        OPC_MoveChild2,
/* 81855*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81858*/        OPC_RecordMemRef,
/* 81859*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81860*/        OPC_CheckFoldableChainNode,
/* 81861*/        OPC_RecordChild1, // #2 = $src2
/* 81862*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81864*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81866*/        OPC_MoveParent,
/* 81867*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 81869*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81872*/        OPC_EmitMergeInputChains1_1,
/* 81873*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PAVGUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5387:{ *:[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)
/* 81885*/      /*Scope*/ 11, /*->81897*/
/* 81886*/        OPC_RecordChild2, // #1 = $src2
/* 81887*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 81889*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PAVGUSBrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5387:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PAVGUSBrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81897*/      0, /*End of Scope*/
/* 81898*/    /*Scope*/ 47, /*->81946*/
/* 81899*/      OPC_CheckChild0Integer, 12|128,42/*5388*/, 
/* 81902*/      OPC_Scope, 30, /*->81934*/ // 2 children in Scope
/* 81904*/        OPC_MoveChild1,
/* 81905*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81908*/        OPC_RecordMemRef,
/* 81909*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 81910*/        OPC_CheckFoldableChainNode,
/* 81911*/        OPC_RecordChild1, // #1 = $src
/* 81912*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81914*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81916*/        OPC_MoveParent,
/* 81917*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 81919*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 81922*/        OPC_EmitMergeInputChains1_0,
/* 81923*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PF2IDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5388:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PF2IDrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 81934*/      /*Scope*/ 10, /*->81945*/
/* 81935*/        OPC_RecordChild1, // #0 = $src
/* 81936*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 81938*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PF2IDrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5388:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PF2IDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 81945*/      0, /*End of Scope*/
/* 81946*/    /*Scope*/ 50, /*->81997*/
/* 81947*/      OPC_CheckChild0Integer, 13|128,42/*5389*/, 
/* 81950*/      OPC_RecordChild1, // #0 = $src1
/* 81951*/      OPC_Scope, 31, /*->81984*/ // 2 children in Scope
/* 81953*/        OPC_MoveChild2,
/* 81954*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81957*/        OPC_RecordMemRef,
/* 81958*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 81959*/        OPC_CheckFoldableChainNode,
/* 81960*/        OPC_RecordChild1, // #2 = $src2
/* 81961*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81963*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81965*/        OPC_MoveParent,
/* 81966*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 81968*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81971*/        OPC_EmitMergeInputChains1_1,
/* 81972*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFACCrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5389:{ *:[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)
/* 81984*/      /*Scope*/ 11, /*->81996*/
/* 81985*/        OPC_RecordChild2, // #1 = $src2
/* 81986*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 81988*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFACCrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5389:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFACCrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 81996*/      0, /*End of Scope*/
/* 81997*/    /*Scope*/ 50, /*->82048*/
/* 81998*/      OPC_CheckChild0Integer, 14|128,42/*5390*/, 
/* 82001*/      OPC_RecordChild1, // #0 = $src1
/* 82002*/      OPC_Scope, 31, /*->82035*/ // 2 children in Scope
/* 82004*/        OPC_MoveChild2,
/* 82005*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82008*/        OPC_RecordMemRef,
/* 82009*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82010*/        OPC_CheckFoldableChainNode,
/* 82011*/        OPC_RecordChild1, // #2 = $src2
/* 82012*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82014*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82016*/        OPC_MoveParent,
/* 82017*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82019*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82022*/        OPC_EmitMergeInputChains1_1,
/* 82023*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFADDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5390:{ *:[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)
/* 82035*/      /*Scope*/ 11, /*->82047*/
/* 82036*/        OPC_RecordChild2, // #1 = $src2
/* 82037*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82039*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFADDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5390:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFADDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82047*/      0, /*End of Scope*/
/* 82048*/    /*Scope*/ 50, /*->82099*/
/* 82049*/      OPC_CheckChild0Integer, 15|128,42/*5391*/, 
/* 82052*/      OPC_RecordChild1, // #0 = $src1
/* 82053*/      OPC_Scope, 31, /*->82086*/ // 2 children in Scope
/* 82055*/        OPC_MoveChild2,
/* 82056*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82059*/        OPC_RecordMemRef,
/* 82060*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82061*/        OPC_CheckFoldableChainNode,
/* 82062*/        OPC_RecordChild1, // #2 = $src2
/* 82063*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82065*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82067*/        OPC_MoveParent,
/* 82068*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82070*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82073*/        OPC_EmitMergeInputChains1_1,
/* 82074*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFCMPEQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5391:{ *:[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)
/* 82086*/      /*Scope*/ 11, /*->82098*/
/* 82087*/        OPC_RecordChild2, // #1 = $src2
/* 82088*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82090*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFCMPEQrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5391:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFCMPEQrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82098*/      0, /*End of Scope*/
/* 82099*/    /*Scope*/ 50, /*->82150*/
/* 82100*/      OPC_CheckChild0Integer, 16|128,42/*5392*/, 
/* 82103*/      OPC_RecordChild1, // #0 = $src1
/* 82104*/      OPC_Scope, 31, /*->82137*/ // 2 children in Scope
/* 82106*/        OPC_MoveChild2,
/* 82107*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82110*/        OPC_RecordMemRef,
/* 82111*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82112*/        OPC_CheckFoldableChainNode,
/* 82113*/        OPC_RecordChild1, // #2 = $src2
/* 82114*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82116*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82118*/        OPC_MoveParent,
/* 82119*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82121*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82124*/        OPC_EmitMergeInputChains1_1,
/* 82125*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFCMPGErm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5392:{ *:[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)
/* 82137*/      /*Scope*/ 11, /*->82149*/
/* 82138*/        OPC_RecordChild2, // #1 = $src2
/* 82139*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82141*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFCMPGErr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5392:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFCMPGErr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82149*/      0, /*End of Scope*/
/* 82150*/    /*Scope*/ 50, /*->82201*/
/* 82151*/      OPC_CheckChild0Integer, 17|128,42/*5393*/, 
/* 82154*/      OPC_RecordChild1, // #0 = $src1
/* 82155*/      OPC_Scope, 31, /*->82188*/ // 2 children in Scope
/* 82157*/        OPC_MoveChild2,
/* 82158*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82161*/        OPC_RecordMemRef,
/* 82162*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82163*/        OPC_CheckFoldableChainNode,
/* 82164*/        OPC_RecordChild1, // #2 = $src2
/* 82165*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82167*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82169*/        OPC_MoveParent,
/* 82170*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82172*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82175*/        OPC_EmitMergeInputChains1_1,
/* 82176*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFCMPGTrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5393:{ *:[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)
/* 82188*/      /*Scope*/ 11, /*->82200*/
/* 82189*/        OPC_RecordChild2, // #1 = $src2
/* 82190*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82192*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFCMPGTrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5393:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFCMPGTrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82200*/      0, /*End of Scope*/
/* 82201*/    /*Scope*/ 50, /*->82252*/
/* 82202*/      OPC_CheckChild0Integer, 18|128,42/*5394*/, 
/* 82205*/      OPC_RecordChild1, // #0 = $src1
/* 82206*/      OPC_Scope, 31, /*->82239*/ // 2 children in Scope
/* 82208*/        OPC_MoveChild2,
/* 82209*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82212*/        OPC_RecordMemRef,
/* 82213*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82214*/        OPC_CheckFoldableChainNode,
/* 82215*/        OPC_RecordChild1, // #2 = $src2
/* 82216*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82218*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82220*/        OPC_MoveParent,
/* 82221*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82223*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82226*/        OPC_EmitMergeInputChains1_1,
/* 82227*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFMAXrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5394:{ *:[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)
/* 82239*/      /*Scope*/ 11, /*->82251*/
/* 82240*/        OPC_RecordChild2, // #1 = $src2
/* 82241*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82243*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFMAXrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5394:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFMAXrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82251*/      0, /*End of Scope*/
/* 82252*/    /*Scope*/ 50, /*->82303*/
/* 82253*/      OPC_CheckChild0Integer, 19|128,42/*5395*/, 
/* 82256*/      OPC_RecordChild1, // #0 = $src1
/* 82257*/      OPC_Scope, 31, /*->82290*/ // 2 children in Scope
/* 82259*/        OPC_MoveChild2,
/* 82260*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82263*/        OPC_RecordMemRef,
/* 82264*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82265*/        OPC_CheckFoldableChainNode,
/* 82266*/        OPC_RecordChild1, // #2 = $src2
/* 82267*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82269*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82271*/        OPC_MoveParent,
/* 82272*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82274*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82277*/        OPC_EmitMergeInputChains1_1,
/* 82278*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFMINrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5395:{ *:[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)
/* 82290*/      /*Scope*/ 11, /*->82302*/
/* 82291*/        OPC_RecordChild2, // #1 = $src2
/* 82292*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82294*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFMINrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5395:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFMINrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82302*/      0, /*End of Scope*/
/* 82303*/    /*Scope*/ 50, /*->82354*/
/* 82304*/      OPC_CheckChild0Integer, 20|128,42/*5396*/, 
/* 82307*/      OPC_RecordChild1, // #0 = $src1
/* 82308*/      OPC_Scope, 31, /*->82341*/ // 2 children in Scope
/* 82310*/        OPC_MoveChild2,
/* 82311*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82314*/        OPC_RecordMemRef,
/* 82315*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82316*/        OPC_CheckFoldableChainNode,
/* 82317*/        OPC_RecordChild1, // #2 = $src2
/* 82318*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82320*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82322*/        OPC_MoveParent,
/* 82323*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82325*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82328*/        OPC_EmitMergeInputChains1_1,
/* 82329*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFMULrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5396:{ *:[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)
/* 82341*/      /*Scope*/ 11, /*->82353*/
/* 82342*/        OPC_RecordChild2, // #1 = $src2
/* 82343*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82345*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFMULrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5396:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFMULrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82353*/      0, /*End of Scope*/
/* 82354*/    /*Scope*/ 47, /*->82402*/
/* 82355*/      OPC_CheckChild0Integer, 21|128,42/*5397*/, 
/* 82358*/      OPC_Scope, 30, /*->82390*/ // 2 children in Scope
/* 82360*/        OPC_MoveChild1,
/* 82361*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82364*/        OPC_RecordMemRef,
/* 82365*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 82366*/        OPC_CheckFoldableChainNode,
/* 82367*/        OPC_RecordChild1, // #1 = $src
/* 82368*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82370*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82372*/        OPC_MoveParent,
/* 82373*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82375*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 82378*/        OPC_EmitMergeInputChains1_0,
/* 82379*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRCPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5397:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PFRCPrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 82390*/      /*Scope*/ 10, /*->82401*/
/* 82391*/        OPC_RecordChild1, // #0 = $src
/* 82392*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82394*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRCPrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5397:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PFRCPrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 82401*/      0, /*End of Scope*/
/* 82402*/    /*Scope*/ 50, /*->82453*/
/* 82403*/      OPC_CheckChild0Integer, 22|128,42/*5398*/, 
/* 82406*/      OPC_RecordChild1, // #0 = $src1
/* 82407*/      OPC_Scope, 31, /*->82440*/ // 2 children in Scope
/* 82409*/        OPC_MoveChild2,
/* 82410*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82413*/        OPC_RecordMemRef,
/* 82414*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82415*/        OPC_CheckFoldableChainNode,
/* 82416*/        OPC_RecordChild1, // #2 = $src2
/* 82417*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82419*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82421*/        OPC_MoveParent,
/* 82422*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82424*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82427*/        OPC_EmitMergeInputChains1_1,
/* 82428*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRCPIT1rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5398:{ *:[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)
/* 82440*/      /*Scope*/ 11, /*->82452*/
/* 82441*/        OPC_RecordChild2, // #1 = $src2
/* 82442*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82444*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRCPIT1rr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5398:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFRCPIT1rr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82452*/      0, /*End of Scope*/
/* 82453*/    /*Scope*/ 50, /*->82504*/
/* 82454*/      OPC_CheckChild0Integer, 23|128,42/*5399*/, 
/* 82457*/      OPC_RecordChild1, // #0 = $src1
/* 82458*/      OPC_Scope, 31, /*->82491*/ // 2 children in Scope
/* 82460*/        OPC_MoveChild2,
/* 82461*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82464*/        OPC_RecordMemRef,
/* 82465*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82466*/        OPC_CheckFoldableChainNode,
/* 82467*/        OPC_RecordChild1, // #2 = $src2
/* 82468*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82470*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82472*/        OPC_MoveParent,
/* 82473*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82475*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82478*/        OPC_EmitMergeInputChains1_1,
/* 82479*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRCPIT2rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5399:{ *:[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)
/* 82491*/      /*Scope*/ 11, /*->82503*/
/* 82492*/        OPC_RecordChild2, // #1 = $src2
/* 82493*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82495*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRCPIT2rr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5399:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFRCPIT2rr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82503*/      0, /*End of Scope*/
/* 82504*/    /*Scope*/ 50, /*->82555*/
/* 82505*/      OPC_CheckChild0Integer, 24|128,42/*5400*/, 
/* 82508*/      OPC_RecordChild1, // #0 = $src1
/* 82509*/      OPC_Scope, 31, /*->82542*/ // 2 children in Scope
/* 82511*/        OPC_MoveChild2,
/* 82512*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82515*/        OPC_RecordMemRef,
/* 82516*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82517*/        OPC_CheckFoldableChainNode,
/* 82518*/        OPC_RecordChild1, // #2 = $src2
/* 82519*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82521*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82523*/        OPC_MoveParent,
/* 82524*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82526*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82529*/        OPC_EmitMergeInputChains1_1,
/* 82530*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRSQIT1rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5400:{ *:[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)
/* 82542*/      /*Scope*/ 11, /*->82554*/
/* 82543*/        OPC_RecordChild2, // #1 = $src2
/* 82544*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82546*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRSQIT1rr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5400:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFRSQIT1rr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82554*/      0, /*End of Scope*/
/* 82555*/    /*Scope*/ 47, /*->82603*/
/* 82556*/      OPC_CheckChild0Integer, 25|128,42/*5401*/, 
/* 82559*/      OPC_Scope, 30, /*->82591*/ // 2 children in Scope
/* 82561*/        OPC_MoveChild1,
/* 82562*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82565*/        OPC_RecordMemRef,
/* 82566*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 82567*/        OPC_CheckFoldableChainNode,
/* 82568*/        OPC_RecordChild1, // #1 = $src
/* 82569*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82571*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82573*/        OPC_MoveParent,
/* 82574*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82576*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 82579*/        OPC_EmitMergeInputChains1_0,
/* 82580*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRSQRTrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5401:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PFRSQRTrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 82591*/      /*Scope*/ 10, /*->82602*/
/* 82592*/        OPC_RecordChild1, // #0 = $src
/* 82593*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82595*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRSQRTrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5401:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PFRSQRTrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 82602*/      0, /*End of Scope*/
/* 82603*/    /*Scope*/ 50, /*->82654*/
/* 82604*/      OPC_CheckChild0Integer, 26|128,42/*5402*/, 
/* 82607*/      OPC_RecordChild1, // #0 = $src1
/* 82608*/      OPC_Scope, 31, /*->82641*/ // 2 children in Scope
/* 82610*/        OPC_MoveChild2,
/* 82611*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82614*/        OPC_RecordMemRef,
/* 82615*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82616*/        OPC_CheckFoldableChainNode,
/* 82617*/        OPC_RecordChild1, // #2 = $src2
/* 82618*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82620*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82622*/        OPC_MoveParent,
/* 82623*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82625*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82628*/        OPC_EmitMergeInputChains1_1,
/* 82629*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFSUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5402:{ *:[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)
/* 82641*/      /*Scope*/ 11, /*->82653*/
/* 82642*/        OPC_RecordChild2, // #1 = $src2
/* 82643*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82645*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFSUBrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5402:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFSUBrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82653*/      0, /*End of Scope*/
/* 82654*/    /*Scope*/ 50, /*->82705*/
/* 82655*/      OPC_CheckChild0Integer, 27|128,42/*5403*/, 
/* 82658*/      OPC_RecordChild1, // #0 = $src1
/* 82659*/      OPC_Scope, 31, /*->82692*/ // 2 children in Scope
/* 82661*/        OPC_MoveChild2,
/* 82662*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82665*/        OPC_RecordMemRef,
/* 82666*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82667*/        OPC_CheckFoldableChainNode,
/* 82668*/        OPC_RecordChild1, // #2 = $src2
/* 82669*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82671*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82673*/        OPC_MoveParent,
/* 82674*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82676*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82679*/        OPC_EmitMergeInputChains1_1,
/* 82680*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFSUBRrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5403:{ *:[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)
/* 82692*/      /*Scope*/ 11, /*->82704*/
/* 82693*/        OPC_RecordChild2, // #1 = $src2
/* 82694*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82696*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFSUBRrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5403:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFSUBRrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82704*/      0, /*End of Scope*/
/* 82705*/    /*Scope*/ 47, /*->82753*/
/* 82706*/      OPC_CheckChild0Integer, 28|128,42/*5404*/, 
/* 82709*/      OPC_Scope, 30, /*->82741*/ // 2 children in Scope
/* 82711*/        OPC_MoveChild1,
/* 82712*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82715*/        OPC_RecordMemRef,
/* 82716*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 82717*/        OPC_CheckFoldableChainNode,
/* 82718*/        OPC_RecordChild1, // #1 = $src
/* 82719*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82721*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82723*/        OPC_MoveParent,
/* 82724*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82726*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 82729*/        OPC_EmitMergeInputChains1_0,
/* 82730*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PI2FDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5404:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PI2FDrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 82741*/      /*Scope*/ 10, /*->82752*/
/* 82742*/        OPC_RecordChild1, // #0 = $src
/* 82743*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82745*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PI2FDrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5404:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PI2FDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 82752*/      0, /*End of Scope*/
/* 82753*/    /*Scope*/ 50, /*->82804*/
/* 82754*/      OPC_CheckChild0Integer, 29|128,42/*5405*/, 
/* 82757*/      OPC_RecordChild1, // #0 = $src1
/* 82758*/      OPC_Scope, 31, /*->82791*/ // 2 children in Scope
/* 82760*/        OPC_MoveChild2,
/* 82761*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82764*/        OPC_RecordMemRef,
/* 82765*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82766*/        OPC_CheckFoldableChainNode,
/* 82767*/        OPC_RecordChild1, // #2 = $src2
/* 82768*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82770*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82772*/        OPC_MoveParent,
/* 82773*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82775*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82778*/        OPC_EmitMergeInputChains1_1,
/* 82779*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHRWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5405:{ *:[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)
/* 82791*/      /*Scope*/ 11, /*->82803*/
/* 82792*/        OPC_RecordChild2, // #1 = $src2
/* 82793*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82795*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHRWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5405:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PMULHRWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82803*/      0, /*End of Scope*/
/* 82804*/    /*Scope*/ 47, /*->82852*/
/* 82805*/      OPC_CheckChild0Integer, 30|128,42/*5406*/, 
/* 82808*/      OPC_Scope, 30, /*->82840*/ // 2 children in Scope
/* 82810*/        OPC_MoveChild1,
/* 82811*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82814*/        OPC_RecordMemRef,
/* 82815*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 82816*/        OPC_CheckFoldableChainNode,
/* 82817*/        OPC_RecordChild1, // #1 = $src
/* 82818*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82820*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82822*/        OPC_MoveParent,
/* 82823*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82825*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 82828*/        OPC_EmitMergeInputChains1_0,
/* 82829*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PF2IWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5406:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PF2IWrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 82840*/      /*Scope*/ 10, /*->82851*/
/* 82841*/        OPC_RecordChild1, // #0 = $src
/* 82842*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82844*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PF2IWrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5406:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PF2IWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 82851*/      0, /*End of Scope*/
/* 82852*/    /*Scope*/ 47, /*->82900*/
/* 82853*/      OPC_CheckChild0Integer, 33|128,42/*5409*/, 
/* 82856*/      OPC_Scope, 30, /*->82888*/ // 2 children in Scope
/* 82858*/        OPC_MoveChild1,
/* 82859*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82862*/        OPC_RecordMemRef,
/* 82863*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 82864*/        OPC_CheckFoldableChainNode,
/* 82865*/        OPC_RecordChild1, // #1 = $src
/* 82866*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82868*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82870*/        OPC_MoveParent,
/* 82871*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82873*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 82876*/        OPC_EmitMergeInputChains1_0,
/* 82877*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PI2FWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5409:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PI2FWrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 82888*/      /*Scope*/ 10, /*->82899*/
/* 82889*/        OPC_RecordChild1, // #0 = $src
/* 82890*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82892*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PI2FWrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5409:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PI2FWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 82899*/      0, /*End of Scope*/
/* 82900*/    /*Scope*/ 50, /*->82951*/
/* 82901*/      OPC_CheckChild0Integer, 31|128,42/*5407*/, 
/* 82904*/      OPC_RecordChild1, // #0 = $src1
/* 82905*/      OPC_Scope, 31, /*->82938*/ // 2 children in Scope
/* 82907*/        OPC_MoveChild2,
/* 82908*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82911*/        OPC_RecordMemRef,
/* 82912*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82913*/        OPC_CheckFoldableChainNode,
/* 82914*/        OPC_RecordChild1, // #2 = $src2
/* 82915*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82917*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82919*/        OPC_MoveParent,
/* 82920*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82922*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82925*/        OPC_EmitMergeInputChains1_1,
/* 82926*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFNACCrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5407:{ *:[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)
/* 82938*/      /*Scope*/ 11, /*->82950*/
/* 82939*/        OPC_RecordChild2, // #1 = $src2
/* 82940*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82942*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFNACCrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5407:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFNACCrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 82950*/      0, /*End of Scope*/
/* 82951*/    /*Scope*/ 50, /*->83002*/
/* 82952*/      OPC_CheckChild0Integer, 32|128,42/*5408*/, 
/* 82955*/      OPC_RecordChild1, // #0 = $src1
/* 82956*/      OPC_Scope, 31, /*->82989*/ // 2 children in Scope
/* 82958*/        OPC_MoveChild2,
/* 82959*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82962*/        OPC_RecordMemRef,
/* 82963*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 82964*/        OPC_CheckFoldableChainNode,
/* 82965*/        OPC_RecordChild1, // #2 = $src2
/* 82966*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82968*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82970*/        OPC_MoveParent,
/* 82971*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82973*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82976*/        OPC_EmitMergeInputChains1_1,
/* 82977*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFPNACCrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5408:{ *:[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)
/* 82989*/      /*Scope*/ 11, /*->83001*/
/* 82990*/        OPC_RecordChild2, // #1 = $src2
/* 82991*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 82993*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFPNACCrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5408:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFPNACCrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 83001*/      0, /*End of Scope*/
/* 83002*/    /*Scope*/ 47, /*->83050*/
/* 83003*/      OPC_CheckChild0Integer, 34|128,42/*5410*/, 
/* 83006*/      OPC_Scope, 30, /*->83038*/ // 2 children in Scope
/* 83008*/        OPC_MoveChild1,
/* 83009*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 83012*/        OPC_RecordMemRef,
/* 83013*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 83014*/        OPC_CheckFoldableChainNode,
/* 83015*/        OPC_RecordChild1, // #1 = $src
/* 83016*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 83018*/        OPC_CheckPredicate, 9, // Predicate_load
/* 83020*/        OPC_MoveParent,
/* 83021*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 83023*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 83026*/        OPC_EmitMergeInputChains1_0,
/* 83027*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PSWAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5410:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PSWAPDrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 83038*/      /*Scope*/ 10, /*->83049*/
/* 83039*/        OPC_RecordChild1, // #0 = $src
/* 83040*/        OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 83042*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PSWAPDrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 5410:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PSWAPDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 83049*/      0, /*End of Scope*/
/* 83050*/    /*Scope*/ 96, /*->83147*/
/* 83051*/      OPC_CheckChild0Integer, 18|128,50/*6418*/, 
/* 83054*/      OPC_RecordChild1, // #0 = $src
/* 83055*/      OPC_Scope, 19, /*->83076*/ // 6 children in Scope
/* 83057*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83059*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83062*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83065*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6418:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (VCVTSD2SIrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/* 83076*/      /*Scope*/ 19, /*->83096*/
/* 83077*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 83079*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83082*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83085*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6418:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (CVTSD2SIrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/* 83096*/      /*Scope*/ 19, /*->83116*/
/* 83097*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83099*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83102*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83105*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6418:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (VCVTSD2SIZrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/* 83116*/      /*Scope*/ 9, /*->83126*/
/* 83117*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83119*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SIrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6418:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VCVTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
/* 83126*/      /*Scope*/ 9, /*->83136*/
/* 83127*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 83129*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SIrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6418:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (CVTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
/* 83136*/      /*Scope*/ 9, /*->83146*/
/* 83137*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83139*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SIZrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6418:{ *:[iPTR] }, VR128X:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VCVTSD2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/* 83146*/      0, /*End of Scope*/
/* 83147*/    /*Scope*/ 96, /*->83244*/
/* 83148*/      OPC_CheckChild0Integer, 19|128,50/*6419*/, 
/* 83151*/      OPC_RecordChild1, // #0 = $src
/* 83152*/      OPC_Scope, 19, /*->83173*/ // 6 children in Scope
/* 83154*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83156*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83159*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83162*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6419:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (VCVTSD2SI64rm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/* 83173*/      /*Scope*/ 19, /*->83193*/
/* 83174*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 83176*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83179*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83182*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6419:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (CVTSD2SI64rm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/* 83193*/      /*Scope*/ 19, /*->83213*/
/* 83194*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83196*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83199*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83202*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6419:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (VCVTSD2SI64Zrm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/* 83213*/      /*Scope*/ 9, /*->83223*/
/* 83214*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83216*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SI64rr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6419:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VCVTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
/* 83223*/      /*Scope*/ 9, /*->83233*/
/* 83224*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 83226*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SI64rr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6419:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (CVTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
/* 83233*/      /*Scope*/ 9, /*->83243*/
/* 83234*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83236*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SI64Zrr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6419:{ *:[iPTR] }, VR128X:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VCVTSD2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/* 83243*/      0, /*End of Scope*/
/* 83244*/    /*Scope*/ 96, /*->83341*/
/* 83245*/      OPC_CheckChild0Integer, 113|128,49/*6385*/, 
/* 83248*/      OPC_RecordChild1, // #0 = $src
/* 83249*/      OPC_Scope, 19, /*->83270*/ // 6 children in Scope
/* 83251*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83253*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83256*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83259*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6385:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (VCVTTSS2SIrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/* 83270*/      /*Scope*/ 19, /*->83290*/
/* 83271*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 83273*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83276*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83279*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6385:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (CVTTSS2SIrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/* 83290*/      /*Scope*/ 19, /*->83310*/
/* 83291*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83293*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83296*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83299*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6385:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (VCVTTSS2SIZrm_Int:{ *:[i32] } ssmem:{ *:[v4f32] }:$src)
/* 83310*/      /*Scope*/ 9, /*->83320*/
/* 83311*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83313*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6385:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VCVTTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
/* 83320*/      /*Scope*/ 9, /*->83330*/
/* 83321*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 83323*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SIrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6385:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (CVTTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
/* 83330*/      /*Scope*/ 9, /*->83340*/
/* 83331*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83333*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6385:{ *:[iPTR] }, VR128X:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VCVTTSS2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/* 83340*/      0, /*End of Scope*/
/* 83341*/    /*Scope*/ 96, /*->83438*/
/* 83342*/      OPC_CheckChild0Integer, 114|128,49/*6386*/, 
/* 83345*/      OPC_RecordChild1, // #0 = $src
/* 83346*/      OPC_Scope, 19, /*->83367*/ // 6 children in Scope
/* 83348*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83350*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83353*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83356*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6386:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (VCVTTSS2SI64rm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/* 83367*/      /*Scope*/ 19, /*->83387*/
/* 83368*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 83370*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83373*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83376*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6386:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (CVTTSS2SI64rm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/* 83387*/      /*Scope*/ 19, /*->83407*/
/* 83388*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83390*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83393*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83396*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6386:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (VCVTTSS2SI64Zrm_Int:{ *:[i64] } ssmem:{ *:[v4f32] }:$src)
/* 83407*/      /*Scope*/ 9, /*->83417*/
/* 83408*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83410*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64rr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6386:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VCVTTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
/* 83417*/      /*Scope*/ 9, /*->83427*/
/* 83418*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 83420*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SI64rr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6386:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (CVTTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
/* 83427*/      /*Scope*/ 9, /*->83437*/
/* 83428*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83430*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6386:{ *:[iPTR] }, VR128X:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VCVTTSS2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/* 83437*/      0, /*End of Scope*/
/* 83438*/    /*Scope*/ 96, /*->83535*/
/* 83439*/      OPC_CheckChild0Integer, 23|128,50/*6423*/, 
/* 83442*/      OPC_RecordChild1, // #0 = $src
/* 83443*/      OPC_Scope, 19, /*->83464*/ // 6 children in Scope
/* 83445*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83447*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83450*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83453*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6423:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (VCVTTSD2SIrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/* 83464*/      /*Scope*/ 19, /*->83484*/
/* 83465*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 83467*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83470*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83473*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6423:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (CVTTSD2SIrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/* 83484*/      /*Scope*/ 19, /*->83504*/
/* 83485*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83487*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83490*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83493*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6423:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (VCVTTSD2SIZrm_Int:{ *:[i32] } sdmem:{ *:[v2f64] }:$src)
/* 83504*/      /*Scope*/ 9, /*->83514*/
/* 83505*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83507*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6423:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VCVTTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
/* 83514*/      /*Scope*/ 9, /*->83524*/
/* 83515*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 83517*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SIrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6423:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (CVTTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
/* 83524*/      /*Scope*/ 9, /*->83534*/
/* 83525*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83527*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6423:{ *:[iPTR] }, VR128X:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VCVTTSD2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/* 83534*/      0, /*End of Scope*/
/* 83535*/    /*Scope*/ 96, /*->83632*/
/* 83536*/      OPC_CheckChild0Integer, 24|128,50/*6424*/, 
/* 83539*/      OPC_RecordChild1, // #0 = $src
/* 83540*/      OPC_Scope, 19, /*->83561*/ // 6 children in Scope
/* 83542*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83544*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83547*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83550*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6424:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (VCVTTSD2SI64rm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/* 83561*/      /*Scope*/ 19, /*->83581*/
/* 83562*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 83564*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83567*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83570*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6424:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (CVTTSD2SI64rm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/* 83581*/      /*Scope*/ 19, /*->83601*/
/* 83582*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83584*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83587*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83590*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6424:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (VCVTTSD2SI64Zrm_Int:{ *:[i64] } sdmem:{ *:[v2f64] }:$src)
/* 83601*/      /*Scope*/ 9, /*->83611*/
/* 83602*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83604*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64rr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6424:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VCVTTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
/* 83611*/      /*Scope*/ 9, /*->83621*/
/* 83612*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 83614*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SI64rr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6424:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (CVTTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
/* 83621*/      /*Scope*/ 9, /*->83631*/
/* 83622*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83624*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6424:{ *:[iPTR] }, VR128X:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VCVTTSD2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/* 83631*/      0, /*End of Scope*/
/* 83632*/    /*Scope*/ 96, /*->83729*/
/* 83633*/      OPC_CheckChild0Integer, 109|128,49/*6381*/, 
/* 83636*/      OPC_RecordChild1, // #0 = $src
/* 83637*/      OPC_Scope, 19, /*->83658*/ // 6 children in Scope
/* 83639*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83641*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83644*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83647*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6381:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (VCVTSS2SIrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/* 83658*/      /*Scope*/ 19, /*->83678*/
/* 83659*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 83661*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83664*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83667*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6381:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (CVTSS2SIrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/* 83678*/      /*Scope*/ 19, /*->83698*/
/* 83679*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83681*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83684*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83687*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6381:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (VCVTSS2SIZrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/* 83698*/      /*Scope*/ 9, /*->83708*/
/* 83699*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83701*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SIrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6381:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VCVTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
/* 83708*/      /*Scope*/ 9, /*->83718*/
/* 83709*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 83711*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SIrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6381:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (CVTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
/* 83718*/      /*Scope*/ 9, /*->83728*/
/* 83719*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83721*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SIZrr_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 6381:{ *:[iPTR] }, VR128X:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VCVTSS2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/* 83728*/      0, /*End of Scope*/
/* 83729*/    /*Scope*/ 96, /*->83826*/
/* 83730*/      OPC_CheckChild0Integer, 110|128,49/*6382*/, 
/* 83733*/      OPC_RecordChild1, // #0 = $src
/* 83734*/      OPC_Scope, 19, /*->83755*/ // 6 children in Scope
/* 83736*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83738*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83741*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83744*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6382:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (VCVTSS2SI64rm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/* 83755*/      /*Scope*/ 19, /*->83775*/
/* 83756*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 83758*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83761*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83764*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6382:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (CVTSS2SI64rm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/* 83775*/      /*Scope*/ 19, /*->83795*/
/* 83776*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83778*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 83781*/        OPC_EmitMergeInputChains, 1, 6, 
/* 83784*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6382:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (VCVTSS2SI64Zrm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/* 83795*/      /*Scope*/ 9, /*->83805*/
/* 83796*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 83798*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SI64rr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6382:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VCVTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
/* 83805*/      /*Scope*/ 9, /*->83815*/
/* 83806*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 83808*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SI64rr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6382:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (CVTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
/* 83815*/      /*Scope*/ 9, /*->83825*/
/* 83816*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 83818*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SI64Zrr_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 6382:{ *:[iPTR] }, VR128X:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VCVTSS2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/* 83825*/      0, /*End of Scope*/
/* 83826*/    /*Scope*/ 22, /*->83849*/
/* 83827*/      OPC_CheckChild0Integer, 41|128,49/*6313*/, 
/* 83830*/      OPC_RecordChild1, // #0 = $src1
/* 83831*/      OPC_RecordChild2, // #1 = $src2
/* 83832*/      OPC_MoveChild2,
/* 83833*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83836*/      OPC_MoveParent,
/* 83837*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 83839*/      OPC_EmitConvertToTarget, 1,
/* 83841*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLWri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6313:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSRLWri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2)
/* 83849*/    /*Scope*/ 22, /*->83872*/
/* 83850*/      OPC_CheckChild0Integer, 39|128,49/*6311*/, 
/* 83853*/      OPC_RecordChild1, // #0 = $src1
/* 83854*/      OPC_RecordChild2, // #1 = $src2
/* 83855*/      OPC_MoveChild2,
/* 83856*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83859*/      OPC_MoveParent,
/* 83860*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 83862*/      OPC_EmitConvertToTarget, 1,
/* 83864*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLDri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6311:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSRLDri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2)
/* 83872*/    /*Scope*/ 22, /*->83895*/
/* 83873*/      OPC_CheckChild0Integer, 40|128,49/*6312*/, 
/* 83876*/      OPC_RecordChild1, // #0 = $src1
/* 83877*/      OPC_RecordChild2, // #1 = $src2
/* 83878*/      OPC_MoveChild2,
/* 83879*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83882*/      OPC_MoveParent,
/* 83883*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 83885*/      OPC_EmitConvertToTarget, 1,
/* 83887*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLQri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6312:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSRLQri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2)
/* 83895*/    /*Scope*/ 22, /*->83918*/
/* 83896*/      OPC_CheckChild0Integer, 31|128,49/*6303*/, 
/* 83899*/      OPC_RecordChild1, // #0 = $src1
/* 83900*/      OPC_RecordChild2, // #1 = $src2
/* 83901*/      OPC_MoveChild2,
/* 83902*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83905*/      OPC_MoveParent,
/* 83906*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 83908*/      OPC_EmitConvertToTarget, 1,
/* 83910*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLWri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6303:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSLLWri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2)
/* 83918*/    /*Scope*/ 22, /*->83941*/
/* 83919*/      OPC_CheckChild0Integer, 29|128,49/*6301*/, 
/* 83922*/      OPC_RecordChild1, // #0 = $src1
/* 83923*/      OPC_RecordChild2, // #1 = $src2
/* 83924*/      OPC_MoveChild2,
/* 83925*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83928*/      OPC_MoveParent,
/* 83929*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 83931*/      OPC_EmitConvertToTarget, 1,
/* 83933*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLDri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6301:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSLLDri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2)
/* 83941*/    /*Scope*/ 22, /*->83964*/
/* 83942*/      OPC_CheckChild0Integer, 30|128,49/*6302*/, 
/* 83945*/      OPC_RecordChild1, // #0 = $src1
/* 83946*/      OPC_RecordChild2, // #1 = $src2
/* 83947*/      OPC_MoveChild2,
/* 83948*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83951*/      OPC_MoveParent,
/* 83952*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 83954*/      OPC_EmitConvertToTarget, 1,
/* 83956*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLQri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6302:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSLLQri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2)
/* 83964*/    /*Scope*/ 22, /*->83987*/
/* 83965*/      OPC_CheckChild0Integer, 35|128,49/*6307*/, 
/* 83968*/      OPC_RecordChild1, // #0 = $src1
/* 83969*/      OPC_RecordChild2, // #1 = $src2
/* 83970*/      OPC_MoveChild2,
/* 83971*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83974*/      OPC_MoveParent,
/* 83975*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 83977*/      OPC_EmitConvertToTarget, 1,
/* 83979*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRAWri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6307:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSRAWri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2)
/* 83987*/    /*Scope*/ 22, /*->84010*/
/* 83988*/      OPC_CheckChild0Integer, 34|128,49/*6306*/, 
/* 83991*/      OPC_RecordChild1, // #0 = $src1
/* 83992*/      OPC_RecordChild2, // #1 = $src2
/* 83993*/      OPC_MoveChild2,
/* 83994*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83997*/      OPC_MoveParent,
/* 83998*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 84000*/      OPC_EmitConvertToTarget, 1,
/* 84002*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRADri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6306:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSRADri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2)
/* 84010*/    /*Scope*/ 22, /*->84033*/
/* 84011*/      OPC_CheckChild0Integer, 12|128,49/*6284*/, 
/* 84014*/      OPC_RecordChild1, // #0 = $src1
/* 84015*/      OPC_RecordChild2, // #1 = $src2
/* 84016*/      OPC_MoveChild2,
/* 84017*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84020*/      OPC_MoveParent,
/* 84021*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 84023*/      OPC_EmitConvertToTarget, 1,
/* 84025*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PEXTRWrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 6284:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PEXTRWrr:{ *:[i32] } VR64:{ *:[x86mmx] }:$src1, (imm:{ *:[i32] }):$src2)
/* 84033*/    /*Scope*/ 13, /*->84047*/
/* 84034*/      OPC_CheckChild0Integer, 19|128,49/*6291*/, 
/* 84037*/      OPC_RecordChild1, // #0 = $src
/* 84038*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 84040*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMOVMSKBrr), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 6291:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                // Dst: (MMX_PMOVMSKBrr:{ *:[i32] } VR64:{ *:[x86mmx] }:$src)
/* 84047*/    /*Scope*/ 89|128,1/*217*/, /*->84266*/
/* 84049*/      OPC_CheckChild0Integer, 86|128,50/*6486*/, 
/* 84052*/      OPC_Scope, 85, /*->84139*/ // 3 children in Scope
/* 84054*/        OPC_RecordChild1, // #0 = $src1
/* 84055*/        OPC_MoveChild2,
/* 84056*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84059*/        OPC_MoveChild0,
/* 84060*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84063*/        OPC_RecordMemRef,
/* 84064*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 84065*/        OPC_CheckFoldableChainNode,
/* 84066*/        OPC_RecordChild1, // #2 = $src2
/* 84067*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84069*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84071*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84073*/        OPC_CheckType, MVT::v2i64,
/* 84075*/        OPC_Scope, 29, /*->84106*/ // 2 children in Scope
/* 84077*/          OPC_MoveParent,
/* 84078*/          OPC_MoveParent,
/* 84079*/          OPC_RecordChild3, // #3 = $src3
/* 84080*/          OPC_MoveChild3,
/* 84081*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84084*/          OPC_MoveParent,
/* 84085*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 84087*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 84090*/          OPC_EmitMergeInputChains1_1,
/* 84091*/          OPC_EmitConvertToTarget, 3,
/* 84093*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6486:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 36
                    // Dst: (VMPSADBWrmi:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 84106*/        /*Scope*/ 31, /*->84138*/
/* 84107*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 84109*/          OPC_MoveParent,
/* 84110*/          OPC_MoveParent,
/* 84111*/          OPC_RecordChild3, // #3 = $src3
/* 84112*/          OPC_MoveChild3,
/* 84113*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84116*/          OPC_MoveParent,
/* 84117*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 84119*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 84122*/          OPC_EmitMergeInputChains1_1,
/* 84123*/          OPC_EmitConvertToTarget, 3,
/* 84125*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6486:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), (imm:{ *:[i8] }):$src3) - Complexity = 36
                    // Dst: (MPSADBWrmi:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 84138*/        0, /*End of Scope*/
/* 84139*/      /*Scope*/ 86, /*->84226*/
/* 84140*/        OPC_MoveChild1,
/* 84141*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84144*/        OPC_MoveChild0,
/* 84145*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84148*/        OPC_RecordMemRef,
/* 84149*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 84150*/        OPC_CheckFoldableChainNode,
/* 84151*/        OPC_RecordChild1, // #1 = $src2
/* 84152*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84154*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84156*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84158*/        OPC_CheckType, MVT::v2i64,
/* 84160*/        OPC_Scope, 30, /*->84192*/ // 2 children in Scope
/* 84162*/          OPC_MoveParent,
/* 84163*/          OPC_MoveParent,
/* 84164*/          OPC_RecordChild2, // #2 = $src1
/* 84165*/          OPC_RecordChild3, // #3 = $src3
/* 84166*/          OPC_MoveChild3,
/* 84167*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84170*/          OPC_MoveParent,
/* 84171*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 84173*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 84176*/          OPC_EmitMergeInputChains1_0,
/* 84177*/          OPC_EmitConvertToTarget, 3,
/* 84179*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6486:{ *:[iPTR] }, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 36
                    // Dst: (VMPSADBWrmi:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 84192*/        /*Scope*/ 32, /*->84225*/
/* 84193*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 84195*/          OPC_MoveParent,
/* 84196*/          OPC_MoveParent,
/* 84197*/          OPC_RecordChild2, // #2 = $src1
/* 84198*/          OPC_RecordChild3, // #3 = $src3
/* 84199*/          OPC_MoveChild3,
/* 84200*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84203*/          OPC_MoveParent,
/* 84204*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 84206*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 84209*/          OPC_EmitMergeInputChains1_0,
/* 84210*/          OPC_EmitConvertToTarget, 3,
/* 84212*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6486:{ *:[iPTR] }, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 36
                    // Dst: (MPSADBWrmi:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 84225*/        0, /*End of Scope*/
/* 84226*/      /*Scope*/ 38, /*->84265*/
/* 84227*/        OPC_RecordChild1, // #0 = $src1
/* 84228*/        OPC_RecordChild2, // #1 = $src2
/* 84229*/        OPC_RecordChild3, // #2 = $src3
/* 84230*/        OPC_MoveChild3,
/* 84231*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84234*/        OPC_MoveParent,
/* 84235*/        OPC_Scope, 13, /*->84250*/ // 2 children in Scope
/* 84237*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 84239*/          OPC_EmitConvertToTarget, 2,
/* 84241*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWrri), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6486:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VMPSADBWrri:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/* 84250*/        /*Scope*/ 13, /*->84264*/
/* 84251*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 84253*/          OPC_EmitConvertToTarget, 2,
/* 84255*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MPSADBWrri), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6486:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (MPSADBWrri:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/* 84264*/        0, /*End of Scope*/
/* 84265*/      0, /*End of Scope*/
/* 84266*/    /*Scope*/ 1|128,1/*129*/, /*->84397*/
/* 84268*/      OPC_CheckChild0Integer, 5|128,43/*5509*/, 
/* 84271*/      OPC_Scope, 50, /*->84323*/ // 3 children in Scope
/* 84273*/        OPC_RecordChild1, // #0 = $src1
/* 84274*/        OPC_MoveChild2,
/* 84275*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84278*/        OPC_MoveChild0,
/* 84279*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84282*/        OPC_RecordMemRef,
/* 84283*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 84284*/        OPC_CheckFoldableChainNode,
/* 84285*/        OPC_RecordChild1, // #2 = $src2
/* 84286*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84288*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84290*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84292*/        OPC_CheckType, MVT::v4i64,
/* 84294*/        OPC_MoveParent,
/* 84295*/        OPC_MoveParent,
/* 84296*/        OPC_RecordChild3, // #3 = $src3
/* 84297*/        OPC_MoveChild3,
/* 84298*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84301*/        OPC_MoveParent,
/* 84302*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 84304*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 84307*/        OPC_EmitMergeInputChains1_1,
/* 84308*/        OPC_EmitConvertToTarget, 3,
/* 84310*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 5509:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 36
                  // Dst: (VMPSADBWYrmi:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 84323*/      /*Scope*/ 50, /*->84374*/
/* 84324*/        OPC_MoveChild1,
/* 84325*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84328*/        OPC_MoveChild0,
/* 84329*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84332*/        OPC_RecordMemRef,
/* 84333*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 84334*/        OPC_CheckFoldableChainNode,
/* 84335*/        OPC_RecordChild1, // #1 = $src2
/* 84336*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84338*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84340*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84342*/        OPC_CheckType, MVT::v4i64,
/* 84344*/        OPC_MoveParent,
/* 84345*/        OPC_MoveParent,
/* 84346*/        OPC_RecordChild2, // #2 = $src1
/* 84347*/        OPC_RecordChild3, // #3 = $src3
/* 84348*/        OPC_MoveChild3,
/* 84349*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84352*/        OPC_MoveParent,
/* 84353*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 84355*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 84358*/        OPC_EmitMergeInputChains1_0,
/* 84359*/        OPC_EmitConvertToTarget, 3,
/* 84361*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 5509:{ *:[iPTR] }, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 36
                  // Dst: (VMPSADBWYrmi:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 84374*/      /*Scope*/ 21, /*->84396*/
/* 84375*/        OPC_RecordChild1, // #0 = $src1
/* 84376*/        OPC_RecordChild2, // #1 = $src2
/* 84377*/        OPC_RecordChild3, // #2 = $src3
/* 84378*/        OPC_MoveChild3,
/* 84379*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84382*/        OPC_MoveParent,
/* 84383*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 84385*/        OPC_EmitConvertToTarget, 2,
/* 84387*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWYrri), 0,
                      MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 5509:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                  // Dst: (VMPSADBWYrri:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/* 84396*/      0, /*End of Scope*/
/* 84397*/    /*Scope*/ 79, /*->84477*/
/* 84398*/      OPC_CheckChild0Integer, 92|128,49/*6364*/, 
/* 84401*/      OPC_RecordChild1, // #0 = $src1
/* 84402*/      OPC_Scope, 51, /*->84455*/ // 2 children in Scope
/* 84404*/        OPC_MoveChild2,
/* 84405*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84408*/        OPC_MoveChild0,
/* 84409*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84412*/        OPC_RecordMemRef,
/* 84413*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 84414*/        OPC_CheckFoldableChainNode,
/* 84415*/        OPC_RecordChild1, // #2 = $src2
/* 84416*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84418*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84420*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84422*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 84424*/        OPC_CheckType, MVT::v2i64,
/* 84426*/        OPC_MoveParent,
/* 84427*/        OPC_MoveParent,
/* 84428*/        OPC_RecordChild3, // #3 = $src3
/* 84429*/        OPC_MoveChild3,
/* 84430*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84433*/        OPC_MoveParent,
/* 84434*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 84436*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 84439*/        OPC_EmitMergeInputChains1_1,
/* 84440*/        OPC_EmitConvertToTarget, 3,
/* 84442*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1RNDS4rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6364:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), (imm:{ *:[i8] }):$src3) - Complexity = 36
                  // Dst: (SHA1RNDS4rmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 84455*/      /*Scope*/ 20, /*->84476*/
/* 84456*/        OPC_RecordChild2, // #1 = $src2
/* 84457*/        OPC_RecordChild3, // #2 = $src3
/* 84458*/        OPC_MoveChild3,
/* 84459*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84462*/        OPC_MoveParent,
/* 84463*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 84465*/        OPC_EmitConvertToTarget, 2,
/* 84467*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1RNDS4rri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6364:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                  // Dst: (SHA1RNDS4rri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)
/* 84476*/      0, /*End of Scope*/
/* 84477*/    /*Scope*/ 56, /*->84534*/
/* 84478*/      OPC_CheckChild0Integer, 85|128,51/*6613*/, 
/* 84481*/      OPC_Scope, 39, /*->84522*/ // 2 children in Scope
/* 84483*/        OPC_MoveChild1,
/* 84484*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84487*/        OPC_MoveChild0,
/* 84488*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84491*/        OPC_RecordMemRef,
/* 84492*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 84493*/        OPC_CheckFoldableChainNode,
/* 84494*/        OPC_RecordChild1, // #1 = $src
/* 84495*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84497*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84499*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84501*/        OPC_CheckType, MVT::v2i64,
/* 84503*/        OPC_MoveParent,
/* 84504*/        OPC_MoveParent,
/* 84505*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84507*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 84510*/        OPC_EmitMergeInputChains1_0,
/* 84511*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6613:{ *:[iPTR] }, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHSUBWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 84522*/      /*Scope*/ 10, /*->84533*/
/* 84523*/        OPC_RecordChild1, // #0 = $src
/* 84524*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84526*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBWDrr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6613:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src) - Complexity = 8
                  // Dst: (VPHSUBWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
/* 84533*/      0, /*End of Scope*/
/* 84534*/    /*Scope*/ 56, /*->84591*/
/* 84535*/      OPC_CheckChild0Integer, 84|128,51/*6612*/, 
/* 84538*/      OPC_Scope, 39, /*->84579*/ // 2 children in Scope
/* 84540*/        OPC_MoveChild1,
/* 84541*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84544*/        OPC_MoveChild0,
/* 84545*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84548*/        OPC_RecordMemRef,
/* 84549*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 84550*/        OPC_CheckFoldableChainNode,
/* 84551*/        OPC_RecordChild1, // #1 = $src
/* 84552*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84554*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84556*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84558*/        OPC_CheckType, MVT::v2i64,
/* 84560*/        OPC_MoveParent,
/* 84561*/        OPC_MoveParent,
/* 84562*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84564*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 84567*/        OPC_EmitMergeInputChains1_0,
/* 84568*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6612:{ *:[iPTR] }, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHSUBDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 84579*/      /*Scope*/ 10, /*->84590*/
/* 84580*/        OPC_RecordChild1, // #0 = $src
/* 84581*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84583*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBDQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6612:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src) - Complexity = 8
                  // Dst: (VPHSUBDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
/* 84590*/      0, /*End of Scope*/
/* 84591*/    /*Scope*/ 56, /*->84648*/
/* 84592*/      OPC_CheckChild0Integer, 83|128,51/*6611*/, 
/* 84595*/      OPC_Scope, 39, /*->84636*/ // 2 children in Scope
/* 84597*/        OPC_MoveChild1,
/* 84598*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84601*/        OPC_MoveChild0,
/* 84602*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84605*/        OPC_RecordMemRef,
/* 84606*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 84607*/        OPC_CheckFoldableChainNode,
/* 84608*/        OPC_RecordChild1, // #1 = $src
/* 84609*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84611*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84613*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84615*/        OPC_CheckType, MVT::v2i64,
/* 84617*/        OPC_MoveParent,
/* 84618*/        OPC_MoveParent,
/* 84619*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84621*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 84624*/        OPC_EmitMergeInputChains1_0,
/* 84625*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6611:{ *:[iPTR] }, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHSUBBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/* 84636*/      /*Scope*/ 10, /*->84647*/
/* 84637*/        OPC_RecordChild1, // #0 = $src
/* 84638*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84640*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBBWrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6611:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHSUBBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
/* 84647*/      0, /*End of Scope*/
/* 84648*/    /*Scope*/ 56, /*->84705*/
/* 84649*/      OPC_CheckChild0Integer, 82|128,51/*6610*/, 
/* 84652*/      OPC_Scope, 39, /*->84693*/ // 2 children in Scope
/* 84654*/        OPC_MoveChild1,
/* 84655*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84658*/        OPC_MoveChild0,
/* 84659*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84662*/        OPC_RecordMemRef,
/* 84663*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 84664*/        OPC_CheckFoldableChainNode,
/* 84665*/        OPC_RecordChild1, // #1 = $src
/* 84666*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84668*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84670*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84672*/        OPC_CheckType, MVT::v2i64,
/* 84674*/        OPC_MoveParent,
/* 84675*/        OPC_MoveParent,
/* 84676*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84678*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 84681*/        OPC_EmitMergeInputChains1_0,
/* 84682*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6610:{ *:[iPTR] }, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 84693*/      /*Scope*/ 10, /*->84704*/
/* 84694*/        OPC_RecordChild1, // #0 = $src
/* 84695*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84697*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDWQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6610:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src) - Complexity = 8
                  // Dst: (VPHADDWQrr:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src)
/* 84704*/      0, /*End of Scope*/
/* 84705*/    /*Scope*/ 56, /*->84762*/
/* 84706*/      OPC_CheckChild0Integer, 81|128,51/*6609*/, 
/* 84709*/      OPC_Scope, 39, /*->84750*/ // 2 children in Scope
/* 84711*/        OPC_MoveChild1,
/* 84712*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84715*/        OPC_MoveChild0,
/* 84716*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84719*/        OPC_RecordMemRef,
/* 84720*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 84721*/        OPC_CheckFoldableChainNode,
/* 84722*/        OPC_RecordChild1, // #1 = $src
/* 84723*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84725*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84727*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84729*/        OPC_CheckType, MVT::v2i64,
/* 84731*/        OPC_MoveParent,
/* 84732*/        OPC_MoveParent,
/* 84733*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84735*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 84738*/        OPC_EmitMergeInputChains1_0,
/* 84739*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6609:{ *:[iPTR] }, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 84750*/      /*Scope*/ 10, /*->84761*/
/* 84751*/        OPC_RecordChild1, // #0 = $src
/* 84752*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84754*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDWDrr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6609:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src) - Complexity = 8
                  // Dst: (VPHADDWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
/* 84761*/      0, /*End of Scope*/
/* 84762*/    /*Scope*/ 56, /*->84819*/
/* 84763*/      OPC_CheckChild0Integer, 80|128,51/*6608*/, 
/* 84766*/      OPC_Scope, 39, /*->84807*/ // 2 children in Scope
/* 84768*/        OPC_MoveChild1,
/* 84769*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84772*/        OPC_MoveChild0,
/* 84773*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84776*/        OPC_RecordMemRef,
/* 84777*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 84778*/        OPC_CheckFoldableChainNode,
/* 84779*/        OPC_RecordChild1, // #1 = $src
/* 84780*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84782*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84784*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84786*/        OPC_CheckType, MVT::v2i64,
/* 84788*/        OPC_MoveParent,
/* 84789*/        OPC_MoveParent,
/* 84790*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84792*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 84795*/        OPC_EmitMergeInputChains1_0,
/* 84796*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6608:{ *:[iPTR] }, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDUWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 84807*/      /*Scope*/ 10, /*->84818*/
/* 84808*/        OPC_RecordChild1, // #0 = $src
/* 84809*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84811*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUWQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6608:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src) - Complexity = 8
                  // Dst: (VPHADDUWQrr:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src)
/* 84818*/      0, /*End of Scope*/
/* 84819*/    /*Scope*/ 56, /*->84876*/
/* 84820*/      OPC_CheckChild0Integer, 79|128,51/*6607*/, 
/* 84823*/      OPC_Scope, 39, /*->84864*/ // 2 children in Scope
/* 84825*/        OPC_MoveChild1,
/* 84826*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84829*/        OPC_MoveChild0,
/* 84830*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84833*/        OPC_RecordMemRef,
/* 84834*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 84835*/        OPC_CheckFoldableChainNode,
/* 84836*/        OPC_RecordChild1, // #1 = $src
/* 84837*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84839*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84841*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84843*/        OPC_CheckType, MVT::v2i64,
/* 84845*/        OPC_MoveParent,
/* 84846*/        OPC_MoveParent,
/* 84847*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84849*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 84852*/        OPC_EmitMergeInputChains1_0,
/* 84853*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6607:{ *:[iPTR] }, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDUWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 84864*/      /*Scope*/ 10, /*->84875*/
/* 84865*/        OPC_RecordChild1, // #0 = $src
/* 84866*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84868*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUWDrr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6607:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src) - Complexity = 8
                  // Dst: (VPHADDUWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
/* 84875*/      0, /*End of Scope*/
/* 84876*/    /*Scope*/ 56, /*->84933*/
/* 84877*/      OPC_CheckChild0Integer, 78|128,51/*6606*/, 
/* 84880*/      OPC_Scope, 39, /*->84921*/ // 2 children in Scope
/* 84882*/        OPC_MoveChild1,
/* 84883*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84886*/        OPC_MoveChild0,
/* 84887*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84890*/        OPC_RecordMemRef,
/* 84891*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 84892*/        OPC_CheckFoldableChainNode,
/* 84893*/        OPC_RecordChild1, // #1 = $src
/* 84894*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84896*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84898*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84900*/        OPC_CheckType, MVT::v2i64,
/* 84902*/        OPC_MoveParent,
/* 84903*/        OPC_MoveParent,
/* 84904*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84906*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 84909*/        OPC_EmitMergeInputChains1_0,
/* 84910*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6606:{ *:[iPTR] }, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDUDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 84921*/      /*Scope*/ 10, /*->84932*/
/* 84922*/        OPC_RecordChild1, // #0 = $src
/* 84923*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84925*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUDQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6606:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src) - Complexity = 8
                  // Dst: (VPHADDUDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
/* 84932*/      0, /*End of Scope*/
/* 84933*/    /*Scope*/ 56, /*->84990*/
/* 84934*/      OPC_CheckChild0Integer, 77|128,51/*6605*/, 
/* 84937*/      OPC_Scope, 39, /*->84978*/ // 2 children in Scope
/* 84939*/        OPC_MoveChild1,
/* 84940*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 84943*/        OPC_MoveChild0,
/* 84944*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84947*/        OPC_RecordMemRef,
/* 84948*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 84949*/        OPC_CheckFoldableChainNode,
/* 84950*/        OPC_RecordChild1, // #1 = $src
/* 84951*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84953*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84955*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 84957*/        OPC_CheckType, MVT::v2i64,
/* 84959*/        OPC_MoveParent,
/* 84960*/        OPC_MoveParent,
/* 84961*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84963*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 84966*/        OPC_EmitMergeInputChains1_0,
/* 84967*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6605:{ *:[iPTR] }, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDUBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/* 84978*/      /*Scope*/ 10, /*->84989*/
/* 84979*/        OPC_RecordChild1, // #0 = $src
/* 84980*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 84982*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUBWrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6605:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDUBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
/* 84989*/      0, /*End of Scope*/
/* 84990*/    /*Scope*/ 56, /*->85047*/
/* 84991*/      OPC_CheckChild0Integer, 76|128,51/*6604*/, 
/* 84994*/      OPC_Scope, 39, /*->85035*/ // 2 children in Scope
/* 84996*/        OPC_MoveChild1,
/* 84997*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85000*/        OPC_MoveChild0,
/* 85001*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85004*/        OPC_RecordMemRef,
/* 85005*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85006*/        OPC_CheckFoldableChainNode,
/* 85007*/        OPC_RecordChild1, // #1 = $src
/* 85008*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85010*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85012*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85014*/        OPC_CheckType, MVT::v2i64,
/* 85016*/        OPC_MoveParent,
/* 85017*/        OPC_MoveParent,
/* 85018*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85020*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 85023*/        OPC_EmitMergeInputChains1_0,
/* 85024*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6604:{ *:[iPTR] }, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDUBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 85035*/      /*Scope*/ 10, /*->85046*/
/* 85036*/        OPC_RecordChild1, // #0 = $src
/* 85037*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85039*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUBQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6604:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDUBQrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src)
/* 85046*/      0, /*End of Scope*/
/* 85047*/    /*Scope*/ 56, /*->85104*/
/* 85048*/      OPC_CheckChild0Integer, 75|128,51/*6603*/, 
/* 85051*/      OPC_Scope, 39, /*->85092*/ // 2 children in Scope
/* 85053*/        OPC_MoveChild1,
/* 85054*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85057*/        OPC_MoveChild0,
/* 85058*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85061*/        OPC_RecordMemRef,
/* 85062*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85063*/        OPC_CheckFoldableChainNode,
/* 85064*/        OPC_RecordChild1, // #1 = $src
/* 85065*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85067*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85069*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85071*/        OPC_CheckType, MVT::v2i64,
/* 85073*/        OPC_MoveParent,
/* 85074*/        OPC_MoveParent,
/* 85075*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85077*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 85080*/        OPC_EmitMergeInputChains1_0,
/* 85081*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6603:{ *:[iPTR] }, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDUBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 85092*/      /*Scope*/ 10, /*->85103*/
/* 85093*/        OPC_RecordChild1, // #0 = $src
/* 85094*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85096*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUBDrr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6603:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDUBDrr:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src)
/* 85103*/      0, /*End of Scope*/
/* 85104*/    /*Scope*/ 56, /*->85161*/
/* 85105*/      OPC_CheckChild0Integer, 74|128,51/*6602*/, 
/* 85108*/      OPC_Scope, 39, /*->85149*/ // 2 children in Scope
/* 85110*/        OPC_MoveChild1,
/* 85111*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85114*/        OPC_MoveChild0,
/* 85115*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85118*/        OPC_RecordMemRef,
/* 85119*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85120*/        OPC_CheckFoldableChainNode,
/* 85121*/        OPC_RecordChild1, // #1 = $src
/* 85122*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85124*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85126*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85128*/        OPC_CheckType, MVT::v2i64,
/* 85130*/        OPC_MoveParent,
/* 85131*/        OPC_MoveParent,
/* 85132*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85134*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 85137*/        OPC_EmitMergeInputChains1_0,
/* 85138*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6602:{ *:[iPTR] }, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 85149*/      /*Scope*/ 10, /*->85160*/
/* 85150*/        OPC_RecordChild1, // #0 = $src
/* 85151*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85153*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDDQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6602:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src) - Complexity = 8
                  // Dst: (VPHADDDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
/* 85160*/      0, /*End of Scope*/
/* 85161*/    /*Scope*/ 56, /*->85218*/
/* 85162*/      OPC_CheckChild0Integer, 73|128,51/*6601*/, 
/* 85165*/      OPC_Scope, 39, /*->85206*/ // 2 children in Scope
/* 85167*/        OPC_MoveChild1,
/* 85168*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85171*/        OPC_MoveChild0,
/* 85172*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85175*/        OPC_RecordMemRef,
/* 85176*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85177*/        OPC_CheckFoldableChainNode,
/* 85178*/        OPC_RecordChild1, // #1 = $src
/* 85179*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85181*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85183*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85185*/        OPC_CheckType, MVT::v2i64,
/* 85187*/        OPC_MoveParent,
/* 85188*/        OPC_MoveParent,
/* 85189*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85191*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 85194*/        OPC_EmitMergeInputChains1_0,
/* 85195*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6601:{ *:[iPTR] }, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/* 85206*/      /*Scope*/ 10, /*->85217*/
/* 85207*/        OPC_RecordChild1, // #0 = $src
/* 85208*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85210*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDBWrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6601:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
/* 85217*/      0, /*End of Scope*/
/* 85218*/    /*Scope*/ 56, /*->85275*/
/* 85219*/      OPC_CheckChild0Integer, 72|128,51/*6600*/, 
/* 85222*/      OPC_Scope, 39, /*->85263*/ // 2 children in Scope
/* 85224*/        OPC_MoveChild1,
/* 85225*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85228*/        OPC_MoveChild0,
/* 85229*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85232*/        OPC_RecordMemRef,
/* 85233*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85234*/        OPC_CheckFoldableChainNode,
/* 85235*/        OPC_RecordChild1, // #1 = $src
/* 85236*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85238*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85240*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85242*/        OPC_CheckType, MVT::v2i64,
/* 85244*/        OPC_MoveParent,
/* 85245*/        OPC_MoveParent,
/* 85246*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85248*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 85251*/        OPC_EmitMergeInputChains1_0,
/* 85252*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6600:{ *:[iPTR] }, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 85263*/      /*Scope*/ 10, /*->85274*/
/* 85264*/        OPC_RecordChild1, // #0 = $src
/* 85265*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85267*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDBQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6600:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDBQrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src)
/* 85274*/      0, /*End of Scope*/
/* 85275*/    /*Scope*/ 56, /*->85332*/
/* 85276*/      OPC_CheckChild0Integer, 71|128,51/*6599*/, 
/* 85279*/      OPC_Scope, 39, /*->85320*/ // 2 children in Scope
/* 85281*/        OPC_MoveChild1,
/* 85282*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85285*/        OPC_MoveChild0,
/* 85286*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85289*/        OPC_RecordMemRef,
/* 85290*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85291*/        OPC_CheckFoldableChainNode,
/* 85292*/        OPC_RecordChild1, // #1 = $src
/* 85293*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85295*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85297*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85299*/        OPC_CheckType, MVT::v2i64,
/* 85301*/        OPC_MoveParent,
/* 85302*/        OPC_MoveParent,
/* 85303*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85305*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 85308*/        OPC_EmitMergeInputChains1_0,
/* 85309*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6599:{ *:[iPTR] }, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 85320*/      /*Scope*/ 10, /*->85331*/
/* 85321*/        OPC_RecordChild1, // #0 = $src
/* 85322*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85324*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDBDrr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6599:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDBDrr:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src)
/* 85331*/      0, /*End of Scope*/
/* 85332*/    /*Scope*/ 108, /*->85441*/
/* 85333*/      OPC_CheckChild0Integer, 97|128,51/*6625*/, 
/* 85336*/      OPC_Scope, 43, /*->85381*/ // 3 children in Scope
/* 85338*/        OPC_RecordChild1, // #0 = $src1
/* 85339*/        OPC_MoveChild2,
/* 85340*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85343*/        OPC_MoveChild0,
/* 85344*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85347*/        OPC_RecordMemRef,
/* 85348*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 85349*/        OPC_CheckFoldableChainNode,
/* 85350*/        OPC_RecordChild1, // #2 = $src2
/* 85351*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85353*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85355*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85357*/        OPC_CheckType, MVT::v2i64,
/* 85359*/        OPC_MoveParent,
/* 85360*/        OPC_MoveParent,
/* 85361*/        OPC_RecordChild3, // #3 = $src3
/* 85362*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85364*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85367*/        OPC_EmitMergeInputChains1_1,
/* 85368*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADCSWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6625:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMADCSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85381*/      /*Scope*/ 43, /*->85425*/
/* 85382*/        OPC_MoveChild1,
/* 85383*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85386*/        OPC_MoveChild0,
/* 85387*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85390*/        OPC_RecordMemRef,
/* 85391*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85392*/        OPC_CheckFoldableChainNode,
/* 85393*/        OPC_RecordChild1, // #1 = $src2
/* 85394*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85396*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85398*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85400*/        OPC_CheckType, MVT::v2i64,
/* 85402*/        OPC_MoveParent,
/* 85403*/        OPC_MoveParent,
/* 85404*/        OPC_RecordChild2, // #2 = $src1
/* 85405*/        OPC_RecordChild3, // #3 = $src3
/* 85406*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85408*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85411*/        OPC_EmitMergeInputChains1_0,
/* 85412*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADCSWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6625:{ *:[iPTR] }, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMADCSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85425*/      /*Scope*/ 14, /*->85440*/
/* 85426*/        OPC_RecordChild1, // #0 = $src1
/* 85427*/        OPC_RecordChild2, // #1 = $src2
/* 85428*/        OPC_RecordChild3, // #2 = $src3
/* 85429*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85431*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADCSWDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6625:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMADCSWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85440*/      0, /*End of Scope*/
/* 85441*/    /*Scope*/ 108, /*->85550*/
/* 85442*/      OPC_CheckChild0Integer, 96|128,51/*6624*/, 
/* 85445*/      OPC_Scope, 43, /*->85490*/ // 3 children in Scope
/* 85447*/        OPC_RecordChild1, // #0 = $src1
/* 85448*/        OPC_MoveChild2,
/* 85449*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85452*/        OPC_MoveChild0,
/* 85453*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85456*/        OPC_RecordMemRef,
/* 85457*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 85458*/        OPC_CheckFoldableChainNode,
/* 85459*/        OPC_RecordChild1, // #2 = $src2
/* 85460*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85462*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85464*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85466*/        OPC_CheckType, MVT::v2i64,
/* 85468*/        OPC_MoveParent,
/* 85469*/        OPC_MoveParent,
/* 85470*/        OPC_RecordChild3, // #3 = $src3
/* 85471*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85473*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85476*/        OPC_EmitMergeInputChains1_1,
/* 85477*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADCSSWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6624:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMADCSSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85490*/      /*Scope*/ 43, /*->85534*/
/* 85491*/        OPC_MoveChild1,
/* 85492*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85495*/        OPC_MoveChild0,
/* 85496*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85499*/        OPC_RecordMemRef,
/* 85500*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85501*/        OPC_CheckFoldableChainNode,
/* 85502*/        OPC_RecordChild1, // #1 = $src2
/* 85503*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85505*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85507*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85509*/        OPC_CheckType, MVT::v2i64,
/* 85511*/        OPC_MoveParent,
/* 85512*/        OPC_MoveParent,
/* 85513*/        OPC_RecordChild2, // #2 = $src1
/* 85514*/        OPC_RecordChild3, // #3 = $src3
/* 85515*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85517*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85520*/        OPC_EmitMergeInputChains1_0,
/* 85521*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADCSSWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6624:{ *:[iPTR] }, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMADCSSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85534*/      /*Scope*/ 14, /*->85549*/
/* 85535*/        OPC_RecordChild1, // #0 = $src1
/* 85536*/        OPC_RecordChild2, // #1 = $src2
/* 85537*/        OPC_RecordChild3, // #2 = $src3
/* 85538*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85540*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADCSSWDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6624:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMADCSSWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85549*/      0, /*End of Scope*/
/* 85550*/    /*Scope*/ 108, /*->85659*/
/* 85551*/      OPC_CheckChild0Integer, 95|128,51/*6623*/, 
/* 85554*/      OPC_Scope, 43, /*->85599*/ // 3 children in Scope
/* 85556*/        OPC_RecordChild1, // #0 = $src1
/* 85557*/        OPC_MoveChild2,
/* 85558*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85561*/        OPC_MoveChild0,
/* 85562*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85565*/        OPC_RecordMemRef,
/* 85566*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 85567*/        OPC_CheckFoldableChainNode,
/* 85568*/        OPC_RecordChild1, // #2 = $src2
/* 85569*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85571*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85573*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85575*/        OPC_CheckType, MVT::v2i64,
/* 85577*/        OPC_MoveParent,
/* 85578*/        OPC_MoveParent,
/* 85579*/        OPC_RecordChild3, // #3 = $src3
/* 85580*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85582*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85585*/        OPC_EmitMergeInputChains1_1,
/* 85586*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSWWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6623:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src3) - Complexity = 33
                  // Dst: (VPMACSWWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 85599*/      /*Scope*/ 43, /*->85643*/
/* 85600*/        OPC_MoveChild1,
/* 85601*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85604*/        OPC_MoveChild0,
/* 85605*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85608*/        OPC_RecordMemRef,
/* 85609*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85610*/        OPC_CheckFoldableChainNode,
/* 85611*/        OPC_RecordChild1, // #1 = $src2
/* 85612*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85614*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85616*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85618*/        OPC_CheckType, MVT::v2i64,
/* 85620*/        OPC_MoveParent,
/* 85621*/        OPC_MoveParent,
/* 85622*/        OPC_RecordChild2, // #2 = $src1
/* 85623*/        OPC_RecordChild3, // #3 = $src3
/* 85624*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85626*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85629*/        OPC_EmitMergeInputChains1_0,
/* 85630*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSWWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6623:{ *:[iPTR] }, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src3) - Complexity = 33
                  // Dst: (VPMACSWWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 85643*/      /*Scope*/ 14, /*->85658*/
/* 85644*/        OPC_RecordChild1, // #0 = $src1
/* 85645*/        OPC_RecordChild2, // #1 = $src2
/* 85646*/        OPC_RecordChild3, // #2 = $src3
/* 85647*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85649*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSWWrr), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6623:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3) - Complexity = 8
                  // Dst: (VPMACSWWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 85658*/      0, /*End of Scope*/
/* 85659*/    /*Scope*/ 108, /*->85768*/
/* 85660*/      OPC_CheckChild0Integer, 94|128,51/*6622*/, 
/* 85663*/      OPC_Scope, 43, /*->85708*/ // 3 children in Scope
/* 85665*/        OPC_RecordChild1, // #0 = $src1
/* 85666*/        OPC_MoveChild2,
/* 85667*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85670*/        OPC_MoveChild0,
/* 85671*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85674*/        OPC_RecordMemRef,
/* 85675*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 85676*/        OPC_CheckFoldableChainNode,
/* 85677*/        OPC_RecordChild1, // #2 = $src2
/* 85678*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85680*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85682*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85684*/        OPC_CheckType, MVT::v2i64,
/* 85686*/        OPC_MoveParent,
/* 85687*/        OPC_MoveParent,
/* 85688*/        OPC_RecordChild3, // #3 = $src3
/* 85689*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85691*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85694*/        OPC_EmitMergeInputChains1_1,
/* 85695*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6622:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMACSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85708*/      /*Scope*/ 43, /*->85752*/
/* 85709*/        OPC_MoveChild1,
/* 85710*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85713*/        OPC_MoveChild0,
/* 85714*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85717*/        OPC_RecordMemRef,
/* 85718*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85719*/        OPC_CheckFoldableChainNode,
/* 85720*/        OPC_RecordChild1, // #1 = $src2
/* 85721*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85723*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85725*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85727*/        OPC_CheckType, MVT::v2i64,
/* 85729*/        OPC_MoveParent,
/* 85730*/        OPC_MoveParent,
/* 85731*/        OPC_RecordChild2, // #2 = $src1
/* 85732*/        OPC_RecordChild3, // #3 = $src3
/* 85733*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85735*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85738*/        OPC_EmitMergeInputChains1_0,
/* 85739*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6622:{ *:[iPTR] }, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMACSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85752*/      /*Scope*/ 14, /*->85767*/
/* 85753*/        OPC_RecordChild1, // #0 = $src1
/* 85754*/        OPC_RecordChild2, // #1 = $src2
/* 85755*/        OPC_RecordChild3, // #2 = $src3
/* 85756*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85758*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSWDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6622:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMACSWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85767*/      0, /*End of Scope*/
/* 85768*/    /*Scope*/ 108, /*->85877*/
/* 85769*/      OPC_CheckChild0Integer, 93|128,51/*6621*/, 
/* 85772*/      OPC_Scope, 43, /*->85817*/ // 3 children in Scope
/* 85774*/        OPC_RecordChild1, // #0 = $src1
/* 85775*/        OPC_MoveChild2,
/* 85776*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85779*/        OPC_MoveChild0,
/* 85780*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85783*/        OPC_RecordMemRef,
/* 85784*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 85785*/        OPC_CheckFoldableChainNode,
/* 85786*/        OPC_RecordChild1, // #2 = $src2
/* 85787*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85789*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85791*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85793*/        OPC_CheckType, MVT::v2i64,
/* 85795*/        OPC_MoveParent,
/* 85796*/        OPC_MoveParent,
/* 85797*/        OPC_RecordChild3, // #3 = $src3
/* 85798*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85800*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85803*/        OPC_EmitMergeInputChains1_1,
/* 85804*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSWWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6621:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src3) - Complexity = 33
                  // Dst: (VPMACSSWWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 85817*/      /*Scope*/ 43, /*->85861*/
/* 85818*/        OPC_MoveChild1,
/* 85819*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85822*/        OPC_MoveChild0,
/* 85823*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85826*/        OPC_RecordMemRef,
/* 85827*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85828*/        OPC_CheckFoldableChainNode,
/* 85829*/        OPC_RecordChild1, // #1 = $src2
/* 85830*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85832*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85834*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85836*/        OPC_CheckType, MVT::v2i64,
/* 85838*/        OPC_MoveParent,
/* 85839*/        OPC_MoveParent,
/* 85840*/        OPC_RecordChild2, // #2 = $src1
/* 85841*/        OPC_RecordChild3, // #3 = $src3
/* 85842*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85844*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85847*/        OPC_EmitMergeInputChains1_0,
/* 85848*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSWWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6621:{ *:[iPTR] }, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src3) - Complexity = 33
                  // Dst: (VPMACSSWWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 85861*/      /*Scope*/ 14, /*->85876*/
/* 85862*/        OPC_RecordChild1, // #0 = $src1
/* 85863*/        OPC_RecordChild2, // #1 = $src2
/* 85864*/        OPC_RecordChild3, // #2 = $src3
/* 85865*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85867*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSWWrr), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6621:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3) - Complexity = 8
                  // Dst: (VPMACSSWWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 85876*/      0, /*End of Scope*/
/* 85877*/    /*Scope*/ 108, /*->85986*/
/* 85878*/      OPC_CheckChild0Integer, 92|128,51/*6620*/, 
/* 85881*/      OPC_Scope, 43, /*->85926*/ // 3 children in Scope
/* 85883*/        OPC_RecordChild1, // #0 = $src1
/* 85884*/        OPC_MoveChild2,
/* 85885*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85888*/        OPC_MoveChild0,
/* 85889*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85892*/        OPC_RecordMemRef,
/* 85893*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 85894*/        OPC_CheckFoldableChainNode,
/* 85895*/        OPC_RecordChild1, // #2 = $src2
/* 85896*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85898*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85900*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85902*/        OPC_CheckType, MVT::v2i64,
/* 85904*/        OPC_MoveParent,
/* 85905*/        OPC_MoveParent,
/* 85906*/        OPC_RecordChild3, // #3 = $src3
/* 85907*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85909*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85912*/        OPC_EmitMergeInputChains1_1,
/* 85913*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6620:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMACSSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85926*/      /*Scope*/ 43, /*->85970*/
/* 85927*/        OPC_MoveChild1,
/* 85928*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85931*/        OPC_MoveChild0,
/* 85932*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85935*/        OPC_RecordMemRef,
/* 85936*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85937*/        OPC_CheckFoldableChainNode,
/* 85938*/        OPC_RecordChild1, // #1 = $src2
/* 85939*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85941*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85943*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 85945*/        OPC_CheckType, MVT::v2i64,
/* 85947*/        OPC_MoveParent,
/* 85948*/        OPC_MoveParent,
/* 85949*/        OPC_RecordChild2, // #2 = $src1
/* 85950*/        OPC_RecordChild3, // #3 = $src3
/* 85951*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85953*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 85956*/        OPC_EmitMergeInputChains1_0,
/* 85957*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6620:{ *:[iPTR] }, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMACSSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85970*/      /*Scope*/ 14, /*->85985*/
/* 85971*/        OPC_RecordChild1, // #0 = $src1
/* 85972*/        OPC_RecordChild2, // #1 = $src2
/* 85973*/        OPC_RecordChild3, // #2 = $src3
/* 85974*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 85976*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSWDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6620:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMACSSWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 85985*/      0, /*End of Scope*/
/* 85986*/    /*Scope*/ 108, /*->86095*/
/* 85987*/      OPC_CheckChild0Integer, 91|128,51/*6619*/, 
/* 85990*/      OPC_Scope, 43, /*->86035*/ // 3 children in Scope
/* 85992*/        OPC_RecordChild1, // #0 = $src1
/* 85993*/        OPC_MoveChild2,
/* 85994*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85997*/        OPC_MoveChild0,
/* 85998*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86001*/        OPC_RecordMemRef,
/* 86002*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 86003*/        OPC_CheckFoldableChainNode,
/* 86004*/        OPC_RecordChild1, // #2 = $src2
/* 86005*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86007*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86009*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86011*/        OPC_CheckType, MVT::v2i64,
/* 86013*/        OPC_MoveParent,
/* 86014*/        OPC_MoveParent,
/* 86015*/        OPC_RecordChild3, // #3 = $src3
/* 86016*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86018*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86021*/        OPC_EmitMergeInputChains1_1,
/* 86022*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDQLrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6619:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v2i64] }:$src3) - Complexity = 33
                  // Dst: (VPMACSSDQLrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86035*/      /*Scope*/ 43, /*->86079*/
/* 86036*/        OPC_MoveChild1,
/* 86037*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86040*/        OPC_MoveChild0,
/* 86041*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86044*/        OPC_RecordMemRef,
/* 86045*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 86046*/        OPC_CheckFoldableChainNode,
/* 86047*/        OPC_RecordChild1, // #1 = $src2
/* 86048*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86050*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86052*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86054*/        OPC_CheckType, MVT::v2i64,
/* 86056*/        OPC_MoveParent,
/* 86057*/        OPC_MoveParent,
/* 86058*/        OPC_RecordChild2, // #2 = $src1
/* 86059*/        OPC_RecordChild3, // #3 = $src3
/* 86060*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86062*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86065*/        OPC_EmitMergeInputChains1_0,
/* 86066*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDQLrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6619:{ *:[iPTR] }, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v2i64] }:$src3) - Complexity = 33
                  // Dst: (VPMACSSDQLrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86079*/      /*Scope*/ 14, /*->86094*/
/* 86080*/        OPC_RecordChild1, // #0 = $src1
/* 86081*/        OPC_RecordChild2, // #1 = $src2
/* 86082*/        OPC_RecordChild3, // #2 = $src3
/* 86083*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86085*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDQLrr), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6619:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3) - Complexity = 8
                  // Dst: (VPMACSSDQLrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86094*/      0, /*End of Scope*/
/* 86095*/    /*Scope*/ 108, /*->86204*/
/* 86096*/      OPC_CheckChild0Integer, 90|128,51/*6618*/, 
/* 86099*/      OPC_Scope, 43, /*->86144*/ // 3 children in Scope
/* 86101*/        OPC_RecordChild1, // #0 = $src1
/* 86102*/        OPC_MoveChild2,
/* 86103*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86106*/        OPC_MoveChild0,
/* 86107*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86110*/        OPC_RecordMemRef,
/* 86111*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 86112*/        OPC_CheckFoldableChainNode,
/* 86113*/        OPC_RecordChild1, // #2 = $src2
/* 86114*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86116*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86118*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86120*/        OPC_CheckType, MVT::v2i64,
/* 86122*/        OPC_MoveParent,
/* 86123*/        OPC_MoveParent,
/* 86124*/        OPC_RecordChild3, // #3 = $src3
/* 86125*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86127*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86130*/        OPC_EmitMergeInputChains1_1,
/* 86131*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDQHrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6618:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v2i64] }:$src3) - Complexity = 33
                  // Dst: (VPMACSSDQHrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86144*/      /*Scope*/ 43, /*->86188*/
/* 86145*/        OPC_MoveChild1,
/* 86146*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86149*/        OPC_MoveChild0,
/* 86150*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86153*/        OPC_RecordMemRef,
/* 86154*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 86155*/        OPC_CheckFoldableChainNode,
/* 86156*/        OPC_RecordChild1, // #1 = $src2
/* 86157*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86159*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86161*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86163*/        OPC_CheckType, MVT::v2i64,
/* 86165*/        OPC_MoveParent,
/* 86166*/        OPC_MoveParent,
/* 86167*/        OPC_RecordChild2, // #2 = $src1
/* 86168*/        OPC_RecordChild3, // #3 = $src3
/* 86169*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86171*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86174*/        OPC_EmitMergeInputChains1_0,
/* 86175*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDQHrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6618:{ *:[iPTR] }, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v2i64] }:$src3) - Complexity = 33
                  // Dst: (VPMACSSDQHrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86188*/      /*Scope*/ 14, /*->86203*/
/* 86189*/        OPC_RecordChild1, // #0 = $src1
/* 86190*/        OPC_RecordChild2, // #1 = $src2
/* 86191*/        OPC_RecordChild3, // #2 = $src3
/* 86192*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86194*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDQHrr), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6618:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3) - Complexity = 8
                  // Dst: (VPMACSSDQHrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86203*/      0, /*End of Scope*/
/* 86204*/    /*Scope*/ 108, /*->86313*/
/* 86205*/      OPC_CheckChild0Integer, 89|128,51/*6617*/, 
/* 86208*/      OPC_Scope, 43, /*->86253*/ // 3 children in Scope
/* 86210*/        OPC_RecordChild1, // #0 = $src1
/* 86211*/        OPC_MoveChild2,
/* 86212*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86215*/        OPC_MoveChild0,
/* 86216*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86219*/        OPC_RecordMemRef,
/* 86220*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 86221*/        OPC_CheckFoldableChainNode,
/* 86222*/        OPC_RecordChild1, // #2 = $src2
/* 86223*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86225*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86227*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86229*/        OPC_CheckType, MVT::v2i64,
/* 86231*/        OPC_MoveParent,
/* 86232*/        OPC_MoveParent,
/* 86233*/        OPC_RecordChild3, // #3 = $src3
/* 86234*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86236*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86239*/        OPC_EmitMergeInputChains1_1,
/* 86240*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6617:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMACSSDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 86253*/      /*Scope*/ 43, /*->86297*/
/* 86254*/        OPC_MoveChild1,
/* 86255*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86258*/        OPC_MoveChild0,
/* 86259*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86262*/        OPC_RecordMemRef,
/* 86263*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 86264*/        OPC_CheckFoldableChainNode,
/* 86265*/        OPC_RecordChild1, // #1 = $src2
/* 86266*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86268*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86270*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86272*/        OPC_CheckType, MVT::v2i64,
/* 86274*/        OPC_MoveParent,
/* 86275*/        OPC_MoveParent,
/* 86276*/        OPC_RecordChild2, // #2 = $src1
/* 86277*/        OPC_RecordChild3, // #3 = $src3
/* 86278*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86280*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86283*/        OPC_EmitMergeInputChains1_0,
/* 86284*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6617:{ *:[iPTR] }, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMACSSDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 86297*/      /*Scope*/ 14, /*->86312*/
/* 86298*/        OPC_RecordChild1, // #0 = $src1
/* 86299*/        OPC_RecordChild2, // #1 = $src2
/* 86300*/        OPC_RecordChild3, // #2 = $src3
/* 86301*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86303*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6617:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMACSSDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 86312*/      0, /*End of Scope*/
/* 86313*/    /*Scope*/ 108, /*->86422*/
/* 86314*/      OPC_CheckChild0Integer, 88|128,51/*6616*/, 
/* 86317*/      OPC_Scope, 43, /*->86362*/ // 3 children in Scope
/* 86319*/        OPC_RecordChild1, // #0 = $src1
/* 86320*/        OPC_MoveChild2,
/* 86321*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86324*/        OPC_MoveChild0,
/* 86325*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86328*/        OPC_RecordMemRef,
/* 86329*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 86330*/        OPC_CheckFoldableChainNode,
/* 86331*/        OPC_RecordChild1, // #2 = $src2
/* 86332*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86334*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86336*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86338*/        OPC_CheckType, MVT::v2i64,
/* 86340*/        OPC_MoveParent,
/* 86341*/        OPC_MoveParent,
/* 86342*/        OPC_RecordChild3, // #3 = $src3
/* 86343*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86345*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86348*/        OPC_EmitMergeInputChains1_1,
/* 86349*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQLrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6616:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v2i64] }:$src3) - Complexity = 33
                  // Dst: (VPMACSDQLrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86362*/      /*Scope*/ 43, /*->86406*/
/* 86363*/        OPC_MoveChild1,
/* 86364*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86367*/        OPC_MoveChild0,
/* 86368*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86371*/        OPC_RecordMemRef,
/* 86372*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 86373*/        OPC_CheckFoldableChainNode,
/* 86374*/        OPC_RecordChild1, // #1 = $src2
/* 86375*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86377*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86379*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86381*/        OPC_CheckType, MVT::v2i64,
/* 86383*/        OPC_MoveParent,
/* 86384*/        OPC_MoveParent,
/* 86385*/        OPC_RecordChild2, // #2 = $src1
/* 86386*/        OPC_RecordChild3, // #3 = $src3
/* 86387*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86389*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86392*/        OPC_EmitMergeInputChains1_0,
/* 86393*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQLrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6616:{ *:[iPTR] }, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v2i64] }:$src3) - Complexity = 33
                  // Dst: (VPMACSDQLrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86406*/      /*Scope*/ 14, /*->86421*/
/* 86407*/        OPC_RecordChild1, // #0 = $src1
/* 86408*/        OPC_RecordChild2, // #1 = $src2
/* 86409*/        OPC_RecordChild3, // #2 = $src3
/* 86410*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86412*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQLrr), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6616:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3) - Complexity = 8
                  // Dst: (VPMACSDQLrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86421*/      0, /*End of Scope*/
/* 86422*/    /*Scope*/ 108, /*->86531*/
/* 86423*/      OPC_CheckChild0Integer, 87|128,51/*6615*/, 
/* 86426*/      OPC_Scope, 43, /*->86471*/ // 3 children in Scope
/* 86428*/        OPC_RecordChild1, // #0 = $src1
/* 86429*/        OPC_MoveChild2,
/* 86430*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86433*/        OPC_MoveChild0,
/* 86434*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86437*/        OPC_RecordMemRef,
/* 86438*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 86439*/        OPC_CheckFoldableChainNode,
/* 86440*/        OPC_RecordChild1, // #2 = $src2
/* 86441*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86443*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86445*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86447*/        OPC_CheckType, MVT::v2i64,
/* 86449*/        OPC_MoveParent,
/* 86450*/        OPC_MoveParent,
/* 86451*/        OPC_RecordChild3, // #3 = $src3
/* 86452*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86454*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86457*/        OPC_EmitMergeInputChains1_1,
/* 86458*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQHrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6615:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v2i64] }:$src3) - Complexity = 33
                  // Dst: (VPMACSDQHrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86471*/      /*Scope*/ 43, /*->86515*/
/* 86472*/        OPC_MoveChild1,
/* 86473*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86476*/        OPC_MoveChild0,
/* 86477*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86480*/        OPC_RecordMemRef,
/* 86481*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 86482*/        OPC_CheckFoldableChainNode,
/* 86483*/        OPC_RecordChild1, // #1 = $src2
/* 86484*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86486*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86488*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86490*/        OPC_CheckType, MVT::v2i64,
/* 86492*/        OPC_MoveParent,
/* 86493*/        OPC_MoveParent,
/* 86494*/        OPC_RecordChild2, // #2 = $src1
/* 86495*/        OPC_RecordChild3, // #3 = $src3
/* 86496*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86498*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86501*/        OPC_EmitMergeInputChains1_0,
/* 86502*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQHrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6615:{ *:[iPTR] }, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v2i64] }:$src3) - Complexity = 33
                  // Dst: (VPMACSDQHrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86515*/      /*Scope*/ 14, /*->86530*/
/* 86516*/        OPC_RecordChild1, // #0 = $src1
/* 86517*/        OPC_RecordChild2, // #1 = $src2
/* 86518*/        OPC_RecordChild3, // #2 = $src3
/* 86519*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86521*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQHrr), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6615:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3) - Complexity = 8
                  // Dst: (VPMACSDQHrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 86530*/      0, /*End of Scope*/
/* 86531*/    /*Scope*/ 108, /*->86640*/
/* 86532*/      OPC_CheckChild0Integer, 86|128,51/*6614*/, 
/* 86535*/      OPC_Scope, 43, /*->86580*/ // 3 children in Scope
/* 86537*/        OPC_RecordChild1, // #0 = $src1
/* 86538*/        OPC_MoveChild2,
/* 86539*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86542*/        OPC_MoveChild0,
/* 86543*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86546*/        OPC_RecordMemRef,
/* 86547*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 86548*/        OPC_CheckFoldableChainNode,
/* 86549*/        OPC_RecordChild1, // #2 = $src2
/* 86550*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86552*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86554*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86556*/        OPC_CheckType, MVT::v2i64,
/* 86558*/        OPC_MoveParent,
/* 86559*/        OPC_MoveParent,
/* 86560*/        OPC_RecordChild3, // #3 = $src3
/* 86561*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86563*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86566*/        OPC_EmitMergeInputChains1_1,
/* 86567*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6614:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMACSDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 86580*/      /*Scope*/ 43, /*->86624*/
/* 86581*/        OPC_MoveChild1,
/* 86582*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86585*/        OPC_MoveChild0,
/* 86586*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86589*/        OPC_RecordMemRef,
/* 86590*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 86591*/        OPC_CheckFoldableChainNode,
/* 86592*/        OPC_RecordChild1, // #1 = $src2
/* 86593*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86595*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86597*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86599*/        OPC_CheckType, MVT::v2i64,
/* 86601*/        OPC_MoveParent,
/* 86602*/        OPC_MoveParent,
/* 86603*/        OPC_RecordChild2, // #2 = $src1
/* 86604*/        OPC_RecordChild3, // #3 = $src3
/* 86605*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86607*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86610*/        OPC_EmitMergeInputChains1_0,
/* 86611*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6614:{ *:[iPTR] }, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 33
                  // Dst: (VPMACSDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 86624*/      /*Scope*/ 14, /*->86639*/
/* 86625*/        OPC_RecordChild1, // #0 = $src1
/* 86626*/        OPC_RecordChild2, // #1 = $src2
/* 86627*/        OPC_RecordChild3, // #2 = $src3
/* 86628*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 86630*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6614:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMACSDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 86639*/      0, /*End of Scope*/
/* 86640*/    /*Scope*/ 99, /*->86740*/
/* 86641*/      OPC_CheckChild0Integer, 13|128,51/*6541*/, 
/* 86644*/      OPC_RecordChild1, // #0 = $src1
/* 86645*/      OPC_Scope, 66, /*->86713*/ // 2 children in Scope
/* 86647*/        OPC_MoveChild2,
/* 86648*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86651*/        OPC_MoveChild0,
/* 86652*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86655*/        OPC_RecordMemRef,
/* 86656*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 86657*/        OPC_CheckFoldableChainNode,
/* 86658*/        OPC_RecordChild1, // #2 = $src2
/* 86659*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86661*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86663*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86665*/        OPC_CheckType, MVT::v2i64,
/* 86667*/        OPC_Scope, 20, /*->86689*/ // 2 children in Scope
/* 86669*/          OPC_MoveParent,
/* 86670*/          OPC_MoveParent,
/* 86671*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 86673*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 86676*/          OPC_EmitMergeInputChains1_1,
/* 86677*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 6541:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                    // Dst: (VPSIGNBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86689*/        /*Scope*/ 22, /*->86712*/
/* 86690*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 86692*/          OPC_MoveParent,
/* 86693*/          OPC_MoveParent,
/* 86694*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 86696*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 86699*/          OPC_EmitMergeInputChains1_1,
/* 86700*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSIGNBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 6541:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (PSIGNBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86712*/        0, /*End of Scope*/
/* 86713*/      /*Scope*/ 25, /*->86739*/
/* 86714*/        OPC_RecordChild2, // #1 = $src2
/* 86715*/        OPC_Scope, 10, /*->86727*/ // 2 children in Scope
/* 86717*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 86719*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 6541:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 8
                    // Dst: (VPSIGNBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/* 86727*/        /*Scope*/ 10, /*->86738*/
/* 86728*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 86730*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSIGNBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 6541:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 8
                    // Dst: (PSIGNBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/* 86738*/        0, /*End of Scope*/
/* 86739*/      0, /*End of Scope*/
/* 86740*/    /*Scope*/ 99, /*->86840*/
/* 86741*/      OPC_CheckChild0Integer, 17|128,51/*6545*/, 
/* 86744*/      OPC_RecordChild1, // #0 = $src1
/* 86745*/      OPC_Scope, 66, /*->86813*/ // 2 children in Scope
/* 86747*/        OPC_MoveChild2,
/* 86748*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86751*/        OPC_MoveChild0,
/* 86752*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86755*/        OPC_RecordMemRef,
/* 86756*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 86757*/        OPC_CheckFoldableChainNode,
/* 86758*/        OPC_RecordChild1, // #2 = $src2
/* 86759*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86761*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86763*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86765*/        OPC_CheckType, MVT::v2i64,
/* 86767*/        OPC_Scope, 20, /*->86789*/ // 2 children in Scope
/* 86769*/          OPC_MoveParent,
/* 86770*/          OPC_MoveParent,
/* 86771*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 86773*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 86776*/          OPC_EmitMergeInputChains1_1,
/* 86777*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6545:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                    // Dst: (VPSIGNWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86789*/        /*Scope*/ 22, /*->86812*/
/* 86790*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 86792*/          OPC_MoveParent,
/* 86793*/          OPC_MoveParent,
/* 86794*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 86796*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 86799*/          OPC_EmitMergeInputChains1_1,
/* 86800*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSIGNWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6545:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (PSIGNWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86812*/        0, /*End of Scope*/
/* 86813*/      /*Scope*/ 25, /*->86839*/
/* 86814*/        OPC_RecordChild2, // #1 = $src2
/* 86815*/        OPC_Scope, 10, /*->86827*/ // 2 children in Scope
/* 86817*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 86819*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6545:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (VPSIGNWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 86827*/        /*Scope*/ 10, /*->86838*/
/* 86828*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 86830*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSIGNWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6545:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (PSIGNWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 86838*/        0, /*End of Scope*/
/* 86839*/      0, /*End of Scope*/
/* 86840*/    /*Scope*/ 99, /*->86940*/
/* 86841*/      OPC_CheckChild0Integer, 15|128,51/*6543*/, 
/* 86844*/      OPC_RecordChild1, // #0 = $src1
/* 86845*/      OPC_Scope, 66, /*->86913*/ // 2 children in Scope
/* 86847*/        OPC_MoveChild2,
/* 86848*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86851*/        OPC_MoveChild0,
/* 86852*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86855*/        OPC_RecordMemRef,
/* 86856*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 86857*/        OPC_CheckFoldableChainNode,
/* 86858*/        OPC_RecordChild1, // #2 = $src2
/* 86859*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86861*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86863*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86865*/        OPC_CheckType, MVT::v2i64,
/* 86867*/        OPC_Scope, 20, /*->86889*/ // 2 children in Scope
/* 86869*/          OPC_MoveParent,
/* 86870*/          OPC_MoveParent,
/* 86871*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 86873*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 86876*/          OPC_EmitMergeInputChains1_1,
/* 86877*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6543:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                    // Dst: (VPSIGNDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86889*/        /*Scope*/ 22, /*->86912*/
/* 86890*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 86892*/          OPC_MoveParent,
/* 86893*/          OPC_MoveParent,
/* 86894*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 86896*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 86899*/          OPC_EmitMergeInputChains1_1,
/* 86900*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSIGNDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6543:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (PSIGNDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86912*/        0, /*End of Scope*/
/* 86913*/      /*Scope*/ 25, /*->86939*/
/* 86914*/        OPC_RecordChild2, // #1 = $src2
/* 86915*/        OPC_Scope, 10, /*->86927*/ // 2 children in Scope
/* 86917*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 86919*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6543:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                    // Dst: (VPSIGNDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 86927*/        /*Scope*/ 10, /*->86938*/
/* 86928*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 86930*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSIGNDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6543:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                    // Dst: (PSIGNDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 86938*/        0, /*End of Scope*/
/* 86939*/      0, /*End of Scope*/
/* 86940*/    /*Scope*/ 99, /*->87040*/
/* 86941*/      OPC_CheckChild0Integer, 125|128,50/*6525*/, 
/* 86944*/      OPC_RecordChild1, // #0 = $src1
/* 86945*/      OPC_Scope, 66, /*->87013*/ // 2 children in Scope
/* 86947*/        OPC_MoveChild2,
/* 86948*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 86951*/        OPC_MoveChild0,
/* 86952*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86955*/        OPC_RecordMemRef,
/* 86956*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 86957*/        OPC_CheckFoldableChainNode,
/* 86958*/        OPC_RecordChild1, // #2 = $src2
/* 86959*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86961*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86963*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 86965*/        OPC_CheckType, MVT::v2i64,
/* 86967*/        OPC_Scope, 20, /*->86989*/ // 2 children in Scope
/* 86969*/          OPC_MoveParent,
/* 86970*/          OPC_MoveParent,
/* 86971*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 86973*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 86976*/          OPC_EmitMergeInputChains1_1,
/* 86977*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6525:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                    // Dst: (VPHADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86989*/        /*Scope*/ 22, /*->87012*/
/* 86990*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 86992*/          OPC_MoveParent,
/* 86993*/          OPC_MoveParent,
/* 86994*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 86996*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 86999*/          OPC_EmitMergeInputChains1_1,
/* 87000*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PHADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6525:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (PHADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87012*/        0, /*End of Scope*/
/* 87013*/      /*Scope*/ 25, /*->87039*/
/* 87014*/        OPC_RecordChild2, // #1 = $src2
/* 87015*/        OPC_Scope, 10, /*->87027*/ // 2 children in Scope
/* 87017*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 87019*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6525:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (VPHADDSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 87027*/        /*Scope*/ 10, /*->87038*/
/* 87028*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 87030*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PHADDSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6525:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (PHADDSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 87038*/        0, /*End of Scope*/
/* 87039*/      0, /*End of Scope*/
/* 87040*/    /*Scope*/ 99, /*->87140*/
/* 87041*/      OPC_CheckChild0Integer, 3|128,51/*6531*/, 
/* 87044*/      OPC_RecordChild1, // #0 = $src1
/* 87045*/      OPC_Scope, 66, /*->87113*/ // 2 children in Scope
/* 87047*/        OPC_MoveChild2,
/* 87048*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87051*/        OPC_MoveChild0,
/* 87052*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87055*/        OPC_RecordMemRef,
/* 87056*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87057*/        OPC_CheckFoldableChainNode,
/* 87058*/        OPC_RecordChild1, // #2 = $src2
/* 87059*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87061*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87063*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87065*/        OPC_CheckType, MVT::v2i64,
/* 87067*/        OPC_Scope, 20, /*->87089*/ // 2 children in Scope
/* 87069*/          OPC_MoveParent,
/* 87070*/          OPC_MoveParent,
/* 87071*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 87073*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87076*/          OPC_EmitMergeInputChains1_1,
/* 87077*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6531:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                    // Dst: (VPHSUBSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87089*/        /*Scope*/ 22, /*->87112*/
/* 87090*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 87092*/          OPC_MoveParent,
/* 87093*/          OPC_MoveParent,
/* 87094*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 87096*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87099*/          OPC_EmitMergeInputChains1_1,
/* 87100*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PHSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6531:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (PHSUBSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87112*/        0, /*End of Scope*/
/* 87113*/      /*Scope*/ 25, /*->87139*/
/* 87114*/        OPC_RecordChild2, // #1 = $src2
/* 87115*/        OPC_Scope, 10, /*->87127*/ // 2 children in Scope
/* 87117*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 87119*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6531:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (VPHSUBSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 87127*/        /*Scope*/ 10, /*->87138*/
/* 87128*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 87130*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PHSUBSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 6531:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (PHSUBSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 87138*/        0, /*End of Scope*/
/* 87139*/      0, /*End of Scope*/
/* 87140*/    /*Scope*/ 59, /*->87200*/
/* 87141*/      OPC_CheckChild0Integer, 31|128,43/*5535*/, 
/* 87144*/      OPC_RecordChild1, // #0 = $src1
/* 87145*/      OPC_Scope, 40, /*->87187*/ // 2 children in Scope
/* 87147*/        OPC_MoveChild2,
/* 87148*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87151*/        OPC_MoveChild0,
/* 87152*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87155*/        OPC_RecordMemRef,
/* 87156*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87157*/        OPC_CheckFoldableChainNode,
/* 87158*/        OPC_RecordChild1, // #2 = $src2
/* 87159*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87161*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87163*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87165*/        OPC_CheckType, MVT::v4i64,
/* 87167*/        OPC_MoveParent,
/* 87168*/        OPC_MoveParent,
/* 87169*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87171*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87174*/        OPC_EmitMergeInputChains1_1,
/* 87175*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v32i8] } 5535:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPSIGNBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87187*/      /*Scope*/ 11, /*->87199*/
/* 87188*/        OPC_RecordChild2, // #1 = $src2
/* 87189*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87191*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNBYrr), 0,
                      MVT::v32i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v32i8] } 5535:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 8
                  // Dst: (VPSIGNBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/* 87199*/      0, /*End of Scope*/
/* 87200*/    /*Scope*/ 59, /*->87260*/
/* 87201*/      OPC_CheckChild0Integer, 33|128,43/*5537*/, 
/* 87204*/      OPC_RecordChild1, // #0 = $src1
/* 87205*/      OPC_Scope, 40, /*->87247*/ // 2 children in Scope
/* 87207*/        OPC_MoveChild2,
/* 87208*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87211*/        OPC_MoveChild0,
/* 87212*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87215*/        OPC_RecordMemRef,
/* 87216*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87217*/        OPC_CheckFoldableChainNode,
/* 87218*/        OPC_RecordChild1, // #2 = $src2
/* 87219*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87221*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87223*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87225*/        OPC_CheckType, MVT::v4i64,
/* 87227*/        OPC_MoveParent,
/* 87228*/        OPC_MoveParent,
/* 87229*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87231*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87234*/        OPC_EmitMergeInputChains1_1,
/* 87235*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 5537:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPSIGNWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87247*/      /*Scope*/ 11, /*->87259*/
/* 87248*/        OPC_RecordChild2, // #1 = $src2
/* 87249*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87251*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNWYrr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 5537:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 8
                  // Dst: (VPSIGNWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/* 87259*/      0, /*End of Scope*/
/* 87260*/    /*Scope*/ 59, /*->87320*/
/* 87261*/      OPC_CheckChild0Integer, 32|128,43/*5536*/, 
/* 87264*/      OPC_RecordChild1, // #0 = $src1
/* 87265*/      OPC_Scope, 40, /*->87307*/ // 2 children in Scope
/* 87267*/        OPC_MoveChild2,
/* 87268*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87271*/        OPC_MoveChild0,
/* 87272*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87275*/        OPC_RecordMemRef,
/* 87276*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87277*/        OPC_CheckFoldableChainNode,
/* 87278*/        OPC_RecordChild1, // #2 = $src2
/* 87279*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87281*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87283*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87285*/        OPC_CheckType, MVT::v4i64,
/* 87287*/        OPC_MoveParent,
/* 87288*/        OPC_MoveParent,
/* 87289*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87291*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87294*/        OPC_EmitMergeInputChains1_1,
/* 87295*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i32] } 5536:{ *:[iPTR] }, VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPSIGNDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87307*/      /*Scope*/ 11, /*->87319*/
/* 87308*/        OPC_RecordChild2, // #1 = $src2
/* 87309*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87311*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNDYrr), 0,
                      MVT::v8i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i32] } 5536:{ *:[iPTR] }, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 8
                  // Dst: (VPSIGNDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/* 87319*/      0, /*End of Scope*/
/* 87320*/    /*Scope*/ 59, /*->87380*/
/* 87321*/      OPC_CheckChild0Integer, 18|128,43/*5522*/, 
/* 87324*/      OPC_RecordChild1, // #0 = $src1
/* 87325*/      OPC_Scope, 40, /*->87367*/ // 2 children in Scope
/* 87327*/        OPC_MoveChild2,
/* 87328*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87331*/        OPC_MoveChild0,
/* 87332*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87335*/        OPC_RecordMemRef,
/* 87336*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87337*/        OPC_CheckFoldableChainNode,
/* 87338*/        OPC_RecordChild1, // #2 = $src2
/* 87339*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87341*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87343*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87345*/        OPC_CheckType, MVT::v4i64,
/* 87347*/        OPC_MoveParent,
/* 87348*/        OPC_MoveParent,
/* 87349*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87351*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87354*/        OPC_EmitMergeInputChains1_1,
/* 87355*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 5522:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHADDSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87367*/      /*Scope*/ 11, /*->87379*/
/* 87368*/        OPC_RecordChild2, // #1 = $src2
/* 87369*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87371*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDSWYrr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 5522:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 8
                  // Dst: (VPHADDSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/* 87379*/      0, /*End of Scope*/
/* 87380*/    /*Scope*/ 59, /*->87440*/
/* 87381*/      OPC_CheckChild0Integer, 21|128,43/*5525*/, 
/* 87384*/      OPC_RecordChild1, // #0 = $src1
/* 87385*/      OPC_Scope, 40, /*->87427*/ // 2 children in Scope
/* 87387*/        OPC_MoveChild2,
/* 87388*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87391*/        OPC_MoveChild0,
/* 87392*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87395*/        OPC_RecordMemRef,
/* 87396*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87397*/        OPC_CheckFoldableChainNode,
/* 87398*/        OPC_RecordChild1, // #2 = $src2
/* 87399*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87401*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87403*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87405*/        OPC_CheckType, MVT::v4i64,
/* 87407*/        OPC_MoveParent,
/* 87408*/        OPC_MoveParent,
/* 87409*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87411*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87414*/        OPC_EmitMergeInputChains1_1,
/* 87415*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 5525:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 33
                  // Dst: (VPHSUBSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87427*/      /*Scope*/ 11, /*->87439*/
/* 87428*/        OPC_RecordChild2, // #1 = $src2
/* 87429*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87431*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBSWYrr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 5525:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 8
                  // Dst: (VPHSUBSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/* 87439*/      0, /*End of Scope*/
/* 87440*/    /*Scope*/ 110, /*->87551*/
/* 87441*/      OPC_CheckChild0Integer, 88|128,50/*6488*/, 
/* 87444*/      OPC_RecordChild1, // #0 = $src1
/* 87445*/      OPC_Scope, 72, /*->87519*/ // 2 children in Scope
/* 87447*/        OPC_MoveChild2,
/* 87448*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87451*/        OPC_MoveChild0,
/* 87452*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87455*/        OPC_RecordMemRef,
/* 87456*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87457*/        OPC_CheckFoldableChainNode,
/* 87458*/        OPC_RecordChild1, // #2 = $src2
/* 87459*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87461*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87463*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87465*/        OPC_CheckType, MVT::v2i64,
/* 87467*/        OPC_Scope, 22, /*->87491*/ // 2 children in Scope
/* 87469*/          OPC_MoveParent,
/* 87470*/          OPC_MoveParent,
/* 87471*/          OPC_RecordChild3, // #3 = $src3
/* 87472*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 87474*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 87477*/          OPC_EmitMergeInputChains1_1,
/* 87478*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDVBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 6488:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src3) - Complexity = 33
                    // Dst: (VPBLENDVBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v16i8] }:$src3)
/* 87491*/        /*Scope*/ 26, /*->87518*/
/* 87492*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 87494*/          OPC_MoveParent,
/* 87495*/          OPC_MoveParent,
/* 87496*/          OPC_RecordChild3, // #3 = physreg input XMM0
/* 87497*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 87499*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 87502*/          OPC_EmitMergeInputChains1_1,
/* 87503*/          OPC_EmitCopyToReg, 3, X86::XMM0,
/* 87506*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDVBrm0), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 6488:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), XMM0:{ *:[v16i8] }) - Complexity = 33
                    // Dst: (PBLENDVBrm0:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87518*/        0, /*End of Scope*/
/* 87519*/      /*Scope*/ 30, /*->87550*/
/* 87520*/        OPC_RecordChild2, // #1 = $src2
/* 87521*/        OPC_RecordChild3, // #2 = $src3
/* 87522*/        OPC_Scope, 11, /*->87535*/ // 2 children in Scope
/* 87524*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 87526*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDVBrr), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 6488:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, VR128:{ *:[v16i8] }:$src3) - Complexity = 8
                    // Dst: (VPBLENDVBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, VR128:{ *:[v16i8] }:$src3)
/* 87535*/        /*Scope*/ 13, /*->87549*/
/* 87536*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 87538*/          OPC_EmitCopyToReg, 2, X86::XMM0,
/* 87541*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDVBrr0), 0|OPFL_GlueInput,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 6488:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, XMM0:{ *:[v16i8] }) - Complexity = 8
                    // Dst: (PBLENDVBrr0:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/* 87549*/        0, /*End of Scope*/
/* 87550*/      0, /*End of Scope*/
/* 87551*/    /*Scope*/ 63, /*->87615*/
/* 87552*/      OPC_CheckChild0Integer, 14|128,43/*5518*/, 
/* 87555*/      OPC_RecordChild1, // #0 = $src1
/* 87556*/      OPC_Scope, 42, /*->87600*/ // 2 children in Scope
/* 87558*/        OPC_MoveChild2,
/* 87559*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87562*/        OPC_MoveChild0,
/* 87563*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87566*/        OPC_RecordMemRef,
/* 87567*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87568*/        OPC_CheckFoldableChainNode,
/* 87569*/        OPC_RecordChild1, // #2 = $src2
/* 87570*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87572*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87574*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87576*/        OPC_CheckType, MVT::v4i64,
/* 87578*/        OPC_MoveParent,
/* 87579*/        OPC_MoveParent,
/* 87580*/        OPC_RecordChild3, // #3 = $src3
/* 87581*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87583*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 87586*/        OPC_EmitMergeInputChains1_1,
/* 87587*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDVBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v32i8] } 5518:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src3) - Complexity = 33
                  // Dst: (VPBLENDVBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v32i8] }:$src3)
/* 87600*/      /*Scope*/ 13, /*->87614*/
/* 87601*/        OPC_RecordChild2, // #1 = $src2
/* 87602*/        OPC_RecordChild3, // #2 = $src3
/* 87603*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 87605*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDVBYrr), 0,
                      MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v32i8] } 5518:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, VR256:{ *:[v32i8] }:$src3) - Complexity = 8
                  // Dst: (VPBLENDVBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, VR256:{ *:[v32i8] }:$src3)
/* 87614*/      0, /*End of Scope*/
/* 87615*/    /*Scope*/ 61, /*->87677*/
/* 87616*/      OPC_CheckChild0Integer, 91|128,49/*6363*/, 
/* 87619*/      OPC_RecordChild1, // #0 = $src1
/* 87620*/      OPC_Scope, 42, /*->87664*/ // 2 children in Scope
/* 87622*/        OPC_MoveChild2,
/* 87623*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87626*/        OPC_MoveChild0,
/* 87627*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87630*/        OPC_RecordMemRef,
/* 87631*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87632*/        OPC_CheckFoldableChainNode,
/* 87633*/        OPC_RecordChild1, // #2 = $src2
/* 87634*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87636*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87638*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87640*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 87642*/        OPC_CheckType, MVT::v2i64,
/* 87644*/        OPC_MoveParent,
/* 87645*/        OPC_MoveParent,
/* 87646*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87648*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87651*/        OPC_EmitMergeInputChains1_1,
/* 87652*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1NEXTErm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6363:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (SHA1NEXTErm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87664*/      /*Scope*/ 11, /*->87676*/
/* 87665*/        OPC_RecordChild2, // #1 = $src2
/* 87666*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87668*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1NEXTErr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6363:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                  // Dst: (SHA1NEXTErr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 87676*/      0, /*End of Scope*/
/* 87677*/    /*Scope*/ 61, /*->87739*/
/* 87678*/      OPC_CheckChild0Integer, 89|128,49/*6361*/, 
/* 87681*/      OPC_RecordChild1, // #0 = $src1
/* 87682*/      OPC_Scope, 42, /*->87726*/ // 2 children in Scope
/* 87684*/        OPC_MoveChild2,
/* 87685*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87688*/        OPC_MoveChild0,
/* 87689*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87692*/        OPC_RecordMemRef,
/* 87693*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87694*/        OPC_CheckFoldableChainNode,
/* 87695*/        OPC_RecordChild1, // #2 = $src2
/* 87696*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87698*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87700*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87702*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 87704*/        OPC_CheckType, MVT::v2i64,
/* 87706*/        OPC_MoveParent,
/* 87707*/        OPC_MoveParent,
/* 87708*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87710*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87713*/        OPC_EmitMergeInputChains1_1,
/* 87714*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1MSG1rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6361:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (SHA1MSG1rm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87726*/      /*Scope*/ 11, /*->87738*/
/* 87727*/        OPC_RecordChild2, // #1 = $src2
/* 87728*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87730*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1MSG1rr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6361:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                  // Dst: (SHA1MSG1rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 87738*/      0, /*End of Scope*/
/* 87739*/    /*Scope*/ 61, /*->87801*/
/* 87740*/      OPC_CheckChild0Integer, 90|128,49/*6362*/, 
/* 87743*/      OPC_RecordChild1, // #0 = $src1
/* 87744*/      OPC_Scope, 42, /*->87788*/ // 2 children in Scope
/* 87746*/        OPC_MoveChild2,
/* 87747*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87750*/        OPC_MoveChild0,
/* 87751*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87754*/        OPC_RecordMemRef,
/* 87755*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87756*/        OPC_CheckFoldableChainNode,
/* 87757*/        OPC_RecordChild1, // #2 = $src2
/* 87758*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87760*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87762*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87764*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 87766*/        OPC_CheckType, MVT::v2i64,
/* 87768*/        OPC_MoveParent,
/* 87769*/        OPC_MoveParent,
/* 87770*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87772*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87775*/        OPC_EmitMergeInputChains1_1,
/* 87776*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1MSG2rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6362:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (SHA1MSG2rm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87788*/      /*Scope*/ 11, /*->87800*/
/* 87789*/        OPC_RecordChild2, // #1 = $src2
/* 87790*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87792*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1MSG2rr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6362:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                  // Dst: (SHA1MSG2rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 87800*/      0, /*End of Scope*/
/* 87801*/    /*Scope*/ 69, /*->87871*/
/* 87802*/      OPC_CheckChild0Integer, 95|128,49/*6367*/, 
/* 87805*/      OPC_RecordChild1, // #0 = $src1
/* 87806*/      OPC_Scope, 46, /*->87854*/ // 2 children in Scope
/* 87808*/        OPC_MoveChild2,
/* 87809*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87812*/        OPC_MoveChild0,
/* 87813*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87816*/        OPC_RecordMemRef,
/* 87817*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87818*/        OPC_CheckFoldableChainNode,
/* 87819*/        OPC_RecordChild1, // #2 = $src2
/* 87820*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87822*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87824*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87826*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 87828*/        OPC_CheckType, MVT::v2i64,
/* 87830*/        OPC_MoveParent,
/* 87831*/        OPC_MoveParent,
/* 87832*/        OPC_RecordChild3, // #3 = physreg input XMM0
/* 87833*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87835*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 87838*/        OPC_EmitMergeInputChains1_1,
/* 87839*/        OPC_EmitCopyToReg, 3, X86::XMM0,
/* 87842*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA256RNDS2rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::v4i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6367:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), XMM0:{ *:[v4i32] }) - Complexity = 33
                  // Dst: (SHA256RNDS2rm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87854*/      /*Scope*/ 15, /*->87870*/
/* 87855*/        OPC_RecordChild2, // #1 = $src2
/* 87856*/        OPC_RecordChild3, // #2 = physreg input XMM0
/* 87857*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87859*/        OPC_EmitCopyToReg, 2, X86::XMM0,
/* 87862*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA256RNDS2rr), 0|OPFL_GlueInput,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6367:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, XMM0:{ *:[v4i32] }) - Complexity = 8
                  // Dst: (SHA256RNDS2rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 87870*/      0, /*End of Scope*/
/* 87871*/    /*Scope*/ 61, /*->87933*/
/* 87872*/      OPC_CheckChild0Integer, 93|128,49/*6365*/, 
/* 87875*/      OPC_RecordChild1, // #0 = $src1
/* 87876*/      OPC_Scope, 42, /*->87920*/ // 2 children in Scope
/* 87878*/        OPC_MoveChild2,
/* 87879*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87882*/        OPC_MoveChild0,
/* 87883*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87886*/        OPC_RecordMemRef,
/* 87887*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87888*/        OPC_CheckFoldableChainNode,
/* 87889*/        OPC_RecordChild1, // #2 = $src2
/* 87890*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87892*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87894*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87896*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 87898*/        OPC_CheckType, MVT::v2i64,
/* 87900*/        OPC_MoveParent,
/* 87901*/        OPC_MoveParent,
/* 87902*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87904*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87907*/        OPC_EmitMergeInputChains1_1,
/* 87908*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA256MSG1rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6365:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (SHA256MSG1rm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87920*/      /*Scope*/ 11, /*->87932*/
/* 87921*/        OPC_RecordChild2, // #1 = $src2
/* 87922*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87924*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA256MSG1rr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6365:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                  // Dst: (SHA256MSG1rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 87932*/      0, /*End of Scope*/
/* 87933*/    /*Scope*/ 61, /*->87995*/
/* 87934*/      OPC_CheckChild0Integer, 94|128,49/*6366*/, 
/* 87937*/      OPC_RecordChild1, // #0 = $src1
/* 87938*/      OPC_Scope, 42, /*->87982*/ // 2 children in Scope
/* 87940*/        OPC_MoveChild2,
/* 87941*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 87944*/        OPC_MoveChild0,
/* 87945*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87948*/        OPC_RecordMemRef,
/* 87949*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87950*/        OPC_CheckFoldableChainNode,
/* 87951*/        OPC_RecordChild1, // #2 = $src2
/* 87952*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87954*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87956*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 87958*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 87960*/        OPC_CheckType, MVT::v2i64,
/* 87962*/        OPC_MoveParent,
/* 87963*/        OPC_MoveParent,
/* 87964*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87966*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87969*/        OPC_EmitMergeInputChains1_1,
/* 87970*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA256MSG2rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6366:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (SHA256MSG2rm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87982*/      /*Scope*/ 11, /*->87994*/
/* 87983*/        OPC_RecordChild2, // #1 = $src2
/* 87984*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasSHA())
/* 87986*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA256MSG2rr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6366:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                  // Dst: (SHA256MSG2rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 87994*/      0, /*End of Scope*/
/* 87995*/    /*Scope*/ 116, /*->88112*/
/* 87996*/      OPC_CheckChild0Integer, 52|128,42/*5428*/, 
/* 87999*/      OPC_Scope, 74, /*->88075*/ // 2 children in Scope
/* 88001*/        OPC_MoveChild1,
/* 88002*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88005*/        OPC_RecordMemRef,
/* 88006*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 88007*/        OPC_CheckFoldableChainNode,
/* 88008*/        OPC_RecordChild1, // #1 = $src1
/* 88009*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88011*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88013*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88015*/        OPC_Scope, 27, /*->88044*/ // 2 children in Scope
/* 88017*/          OPC_MoveParent,
/* 88018*/          OPC_RecordChild2, // #2 = $src2
/* 88019*/          OPC_MoveChild2,
/* 88020*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88023*/          OPC_MoveParent,
/* 88024*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasAES()) && (Subtarget->hasAVX())
/* 88026*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 88029*/          OPC_EmitMergeInputChains1_0,
/* 88030*/          OPC_EmitConvertToTarget, 2,
/* 88032*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESKEYGENASSIST128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5428:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 33
                    // Dst: (VAESKEYGENASSIST128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/* 88044*/        /*Scope*/ 29, /*->88074*/
/* 88045*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 88047*/          OPC_MoveParent,
/* 88048*/          OPC_RecordChild2, // #2 = $src2
/* 88049*/          OPC_MoveChild2,
/* 88050*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88053*/          OPC_MoveParent,
/* 88054*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 88056*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 88059*/          OPC_EmitMergeInputChains1_0,
/* 88060*/          OPC_EmitConvertToTarget, 2,
/* 88062*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESKEYGENASSIST128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5428:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i8] }):$src2) - Complexity = 33
                    // Dst: (AESKEYGENASSIST128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/* 88074*/        0, /*End of Scope*/
/* 88075*/      /*Scope*/ 35, /*->88111*/
/* 88076*/        OPC_RecordChild1, // #0 = $src1
/* 88077*/        OPC_RecordChild2, // #1 = $src2
/* 88078*/        OPC_MoveChild2,
/* 88079*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88082*/        OPC_MoveParent,
/* 88083*/        OPC_Scope, 12, /*->88097*/ // 2 children in Scope
/* 88085*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasAES()) && (Subtarget->hasAVX())
/* 88087*/          OPC_EmitConvertToTarget, 1,
/* 88089*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESKEYGENASSIST128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5428:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 11
                    // Dst: (VAESKEYGENASSIST128rr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/* 88097*/        /*Scope*/ 12, /*->88110*/
/* 88098*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 88100*/          OPC_EmitConvertToTarget, 1,
/* 88102*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESKEYGENASSIST128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5428:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 11
                    // Dst: (AESKEYGENASSIST128rr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/* 88110*/        0, /*End of Scope*/
/* 88111*/      0, /*End of Scope*/
/* 88112*/    /*Scope*/ 79|128,2/*335*/, /*->88449*/
/* 88114*/      OPC_CheckChild0Integer, 60|128,49/*6332*/, 
/* 88117*/      OPC_Scope, 45, /*->88164*/ // 7 children in Scope
/* 88119*/        OPC_RecordChild1, // #0 = $src1
/* 88120*/        OPC_MoveChild2,
/* 88121*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88124*/        OPC_RecordMemRef,
/* 88125*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 88126*/        OPC_CheckFoldableChainNode,
/* 88127*/        OPC_RecordChild1, // #2 = $src2
/* 88128*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88130*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88132*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88134*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 88136*/        OPC_MoveParent,
/* 88137*/        OPC_RecordChild3, // #3 = $src3
/* 88138*/        OPC_MoveChild3,
/* 88139*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88142*/        OPC_MoveParent,
/* 88143*/        OPC_CheckPatternPredicate, 54, // (Subtarget->hasPCLMUL()) && (!Subtarget->hasAVX())
/* 88145*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88148*/        OPC_EmitMergeInputChains1_1,
/* 88149*/        OPC_EmitConvertToTarget, 3,
/* 88151*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PCLMULQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6332:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (PCLMULQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88164*/      /*Scope*/ 48, /*->88213*/
/* 88165*/        OPC_MoveChild1,
/* 88166*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88169*/        OPC_RecordMemRef,
/* 88170*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 88171*/        OPC_CheckFoldableChainNode,
/* 88172*/        OPC_RecordChild1, // #1 = $src2
/* 88173*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88175*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88177*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88179*/        OPC_CheckPredicate, 48, // Predicate_memop
/* 88181*/        OPC_MoveParent,
/* 88182*/        OPC_RecordChild2, // #2 = $src1
/* 88183*/        OPC_RecordChild3, // #3 = $src3
/* 88184*/        OPC_MoveChild3,
/* 88185*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88188*/        OPC_MoveParent,
/* 88189*/        OPC_CheckPatternPredicate, 54, // (Subtarget->hasPCLMUL()) && (!Subtarget->hasAVX())
/* 88191*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88194*/        OPC_EmitMergeInputChains1_0,
/* 88195*/        OPC_EmitConvertToTarget, 3,
/* 88197*/        OPC_EmitNodeXForm, 9, 9, // PCLMULCommuteImm
/* 88200*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PCLMULQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6332:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (PCLMULQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/* 88213*/      /*Scope*/ 43, /*->88257*/
/* 88214*/        OPC_RecordChild1, // #0 = $src1
/* 88215*/        OPC_MoveChild2,
/* 88216*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88219*/        OPC_RecordMemRef,
/* 88220*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 88221*/        OPC_CheckFoldableChainNode,
/* 88222*/        OPC_RecordChild1, // #2 = $src2
/* 88223*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88225*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88227*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88229*/        OPC_MoveParent,
/* 88230*/        OPC_RecordChild3, // #3 = $src3
/* 88231*/        OPC_MoveChild3,
/* 88232*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88235*/        OPC_MoveParent,
/* 88236*/        OPC_CheckPatternPredicate, 55, // (Subtarget->hasAVX()) && (Subtarget->hasPCLMUL()) && (!Subtarget->hasVLX() || !Subtarget->hasVPCLMULQDQ())
/* 88238*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88241*/        OPC_EmitMergeInputChains1_1,
/* 88242*/        OPC_EmitConvertToTarget, 3,
/* 88244*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6332:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88257*/      /*Scope*/ 46, /*->88304*/
/* 88258*/        OPC_MoveChild1,
/* 88259*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88262*/        OPC_RecordMemRef,
/* 88263*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 88264*/        OPC_CheckFoldableChainNode,
/* 88265*/        OPC_RecordChild1, // #1 = $src2
/* 88266*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88268*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88270*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88272*/        OPC_MoveParent,
/* 88273*/        OPC_RecordChild2, // #2 = $src1
/* 88274*/        OPC_RecordChild3, // #3 = $src3
/* 88275*/        OPC_MoveChild3,
/* 88276*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88279*/        OPC_MoveParent,
/* 88280*/        OPC_CheckPatternPredicate, 55, // (Subtarget->hasAVX()) && (Subtarget->hasPCLMUL()) && (!Subtarget->hasVLX() || !Subtarget->hasVPCLMULQDQ())
/* 88282*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88285*/        OPC_EmitMergeInputChains1_0,
/* 88286*/        OPC_EmitConvertToTarget, 3,
/* 88288*/        OPC_EmitNodeXForm, 9, 9, // PCLMULCommuteImm
/* 88291*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6332:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/* 88304*/      /*Scope*/ 43, /*->88348*/
/* 88305*/        OPC_RecordChild1, // #0 = $src1
/* 88306*/        OPC_MoveChild2,
/* 88307*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88310*/        OPC_RecordMemRef,
/* 88311*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 88312*/        OPC_CheckFoldableChainNode,
/* 88313*/        OPC_RecordChild1, // #2 = $src2
/* 88314*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88316*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88318*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88320*/        OPC_MoveParent,
/* 88321*/        OPC_RecordChild3, // #3 = $src3
/* 88322*/        OPC_MoveChild3,
/* 88323*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88326*/        OPC_MoveParent,
/* 88327*/        OPC_CheckPatternPredicate, 56, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 88329*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88332*/        OPC_EmitMergeInputChains1_1,
/* 88333*/        OPC_EmitConvertToTarget, 3,
/* 88335*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6332:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88348*/      /*Scope*/ 46, /*->88395*/
/* 88349*/        OPC_MoveChild1,
/* 88350*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88353*/        OPC_RecordMemRef,
/* 88354*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 88355*/        OPC_CheckFoldableChainNode,
/* 88356*/        OPC_RecordChild1, // #1 = $src2
/* 88357*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88359*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88361*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88363*/        OPC_MoveParent,
/* 88364*/        OPC_RecordChild2, // #2 = $src1
/* 88365*/        OPC_RecordChild3, // #3 = $src3
/* 88366*/        OPC_MoveChild3,
/* 88367*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88370*/        OPC_MoveParent,
/* 88371*/        OPC_CheckPatternPredicate, 56, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 88373*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88376*/        OPC_EmitMergeInputChains1_0,
/* 88377*/        OPC_EmitConvertToTarget, 3,
/* 88379*/        OPC_EmitNodeXForm, 9, 9, // PCLMULCommuteImm
/* 88382*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6332:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/* 88395*/      /*Scope*/ 52, /*->88448*/
/* 88396*/        OPC_RecordChild1, // #0 = $src1
/* 88397*/        OPC_RecordChild2, // #1 = $src2
/* 88398*/        OPC_RecordChild3, // #2 = $src3
/* 88399*/        OPC_MoveChild3,
/* 88400*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88403*/        OPC_MoveParent,
/* 88404*/        OPC_Scope, 13, /*->88419*/ // 3 children in Scope
/* 88406*/          OPC_CheckPatternPredicate, 54, // (Subtarget->hasPCLMUL()) && (!Subtarget->hasAVX())
/* 88408*/          OPC_EmitConvertToTarget, 2,
/* 88410*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCLMULQDQrr), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6332:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (PCLMULQDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88419*/        /*Scope*/ 13, /*->88433*/
/* 88420*/          OPC_CheckPatternPredicate, 55, // (Subtarget->hasAVX()) && (Subtarget->hasPCLMUL()) && (!Subtarget->hasVLX() || !Subtarget->hasVPCLMULQDQ())
/* 88422*/          OPC_EmitConvertToTarget, 2,
/* 88424*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQrr), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6332:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VPCLMULQDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88433*/        /*Scope*/ 13, /*->88447*/
/* 88434*/          OPC_CheckPatternPredicate, 56, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 88436*/          OPC_EmitConvertToTarget, 2,
/* 88438*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ128rr), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6332:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VPCLMULQDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88447*/        0, /*End of Scope*/
/* 88448*/      0, /*End of Scope*/
/* 88449*/    /*Scope*/ 98|128,1/*226*/, /*->88677*/
/* 88451*/      OPC_CheckChild0Integer, 61|128,49/*6333*/, 
/* 88454*/      OPC_Scope, 43, /*->88499*/ // 5 children in Scope
/* 88456*/        OPC_RecordChild1, // #0 = $src1
/* 88457*/        OPC_MoveChild2,
/* 88458*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88461*/        OPC_RecordMemRef,
/* 88462*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 88463*/        OPC_CheckFoldableChainNode,
/* 88464*/        OPC_RecordChild1, // #2 = $src2
/* 88465*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88467*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88469*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88471*/        OPC_MoveParent,
/* 88472*/        OPC_RecordChild3, // #3 = $src3
/* 88473*/        OPC_MoveChild3,
/* 88474*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88477*/        OPC_MoveParent,
/* 88478*/        OPC_CheckPatternPredicate, 57, // (Subtarget->hasVPCLMULQDQ()) && (!Subtarget->hasVLX())
/* 88480*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88483*/        OPC_EmitMergeInputChains1_1,
/* 88484*/        OPC_EmitConvertToTarget, 3,
/* 88486*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6333:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88499*/      /*Scope*/ 46, /*->88546*/
/* 88500*/        OPC_MoveChild1,
/* 88501*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88504*/        OPC_RecordMemRef,
/* 88505*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 88506*/        OPC_CheckFoldableChainNode,
/* 88507*/        OPC_RecordChild1, // #1 = $src2
/* 88508*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88510*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88512*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88514*/        OPC_MoveParent,
/* 88515*/        OPC_RecordChild2, // #2 = $src1
/* 88516*/        OPC_RecordChild3, // #3 = $src3
/* 88517*/        OPC_MoveChild3,
/* 88518*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88521*/        OPC_MoveParent,
/* 88522*/        OPC_CheckPatternPredicate, 57, // (Subtarget->hasVPCLMULQDQ()) && (!Subtarget->hasVLX())
/* 88524*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88527*/        OPC_EmitMergeInputChains1_0,
/* 88528*/        OPC_EmitConvertToTarget, 3,
/* 88530*/        OPC_EmitNodeXForm, 9, 9, // PCLMULCommuteImm
/* 88533*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6333:{ *:[iPTR] }, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/* 88546*/      /*Scope*/ 43, /*->88590*/
/* 88547*/        OPC_RecordChild1, // #0 = $src1
/* 88548*/        OPC_MoveChild2,
/* 88549*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88552*/        OPC_RecordMemRef,
/* 88553*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 88554*/        OPC_CheckFoldableChainNode,
/* 88555*/        OPC_RecordChild1, // #2 = $src2
/* 88556*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88558*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88560*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88562*/        OPC_MoveParent,
/* 88563*/        OPC_RecordChild3, // #3 = $src3
/* 88564*/        OPC_MoveChild3,
/* 88565*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88568*/        OPC_MoveParent,
/* 88569*/        OPC_CheckPatternPredicate, 56, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 88571*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88574*/        OPC_EmitMergeInputChains1_1,
/* 88575*/        OPC_EmitConvertToTarget, 3,
/* 88577*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6333:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88590*/      /*Scope*/ 46, /*->88637*/
/* 88591*/        OPC_MoveChild1,
/* 88592*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88595*/        OPC_RecordMemRef,
/* 88596*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 88597*/        OPC_CheckFoldableChainNode,
/* 88598*/        OPC_RecordChild1, // #1 = $src2
/* 88599*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88601*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88603*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88605*/        OPC_MoveParent,
/* 88606*/        OPC_RecordChild2, // #2 = $src1
/* 88607*/        OPC_RecordChild3, // #3 = $src3
/* 88608*/        OPC_MoveChild3,
/* 88609*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88612*/        OPC_MoveParent,
/* 88613*/        OPC_CheckPatternPredicate, 56, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 88615*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88618*/        OPC_EmitMergeInputChains1_0,
/* 88619*/        OPC_EmitConvertToTarget, 3,
/* 88621*/        OPC_EmitNodeXForm, 9, 9, // PCLMULCommuteImm
/* 88624*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6333:{ *:[iPTR] }, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/* 88637*/      /*Scope*/ 38, /*->88676*/
/* 88638*/        OPC_RecordChild1, // #0 = $src1
/* 88639*/        OPC_RecordChild2, // #1 = $src2
/* 88640*/        OPC_RecordChild3, // #2 = $src3
/* 88641*/        OPC_MoveChild3,
/* 88642*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88645*/        OPC_MoveParent,
/* 88646*/        OPC_Scope, 13, /*->88661*/ // 2 children in Scope
/* 88648*/          OPC_CheckPatternPredicate, 57, // (Subtarget->hasVPCLMULQDQ()) && (!Subtarget->hasVLX())
/* 88650*/          OPC_EmitConvertToTarget, 2,
/* 88652*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQYrr), 0,
                        MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6333:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VPCLMULQDQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88661*/        /*Scope*/ 13, /*->88675*/
/* 88662*/          OPC_CheckPatternPredicate, 56, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 88664*/          OPC_EmitConvertToTarget, 2,
/* 88666*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ256rr), 0,
                        MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6333:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VPCLMULQDQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88675*/        0, /*End of Scope*/
/* 88676*/      0, /*End of Scope*/
/* 88677*/    /*Scope*/ 118, /*->88796*/
/* 88678*/      OPC_CheckChild0Integer, 62|128,49/*6334*/, 
/* 88681*/      OPC_Scope, 43, /*->88726*/ // 3 children in Scope
/* 88683*/        OPC_RecordChild1, // #0 = $src1
/* 88684*/        OPC_MoveChild2,
/* 88685*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88688*/        OPC_RecordMemRef,
/* 88689*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 88690*/        OPC_CheckFoldableChainNode,
/* 88691*/        OPC_RecordChild1, // #2 = $src2
/* 88692*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88694*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88696*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88698*/        OPC_MoveParent,
/* 88699*/        OPC_RecordChild3, // #3 = $src3
/* 88700*/        OPC_MoveChild3,
/* 88701*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88704*/        OPC_MoveParent,
/* 88705*/        OPC_CheckPatternPredicate, 58, // (Subtarget->hasAVX512()) && (Subtarget->hasVPCLMULQDQ())
/* 88707*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88710*/        OPC_EmitMergeInputChains1_1,
/* 88711*/        OPC_EmitConvertToTarget, 3,
/* 88713*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 6334:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88726*/      /*Scope*/ 46, /*->88773*/
/* 88727*/        OPC_MoveChild1,
/* 88728*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88731*/        OPC_RecordMemRef,
/* 88732*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 88733*/        OPC_CheckFoldableChainNode,
/* 88734*/        OPC_RecordChild1, // #1 = $src2
/* 88735*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88737*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88739*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88741*/        OPC_MoveParent,
/* 88742*/        OPC_RecordChild2, // #2 = $src1
/* 88743*/        OPC_RecordChild3, // #3 = $src3
/* 88744*/        OPC_MoveChild3,
/* 88745*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88748*/        OPC_MoveParent,
/* 88749*/        OPC_CheckPatternPredicate, 58, // (Subtarget->hasAVX512()) && (Subtarget->hasVPCLMULQDQ())
/* 88751*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 88754*/        OPC_EmitMergeInputChains1_0,
/* 88755*/        OPC_EmitConvertToTarget, 3,
/* 88757*/        OPC_EmitNodeXForm, 9, 9, // PCLMULCommuteImm
/* 88760*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 6334:{ *:[iPTR] }, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/* 88773*/      /*Scope*/ 21, /*->88795*/
/* 88774*/        OPC_RecordChild1, // #0 = $src1
/* 88775*/        OPC_RecordChild2, // #1 = $src2
/* 88776*/        OPC_RecordChild3, // #2 = $src3
/* 88777*/        OPC_MoveChild3,
/* 88778*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 88781*/        OPC_MoveParent,
/* 88782*/        OPC_CheckPatternPredicate, 58, // (Subtarget->hasAVX512()) && (Subtarget->hasVPCLMULQDQ())
/* 88784*/        OPC_EmitConvertToTarget, 2,
/* 88786*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZrr), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 6334:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                  // Dst: (VPCLMULQDQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/* 88795*/      0, /*End of Scope*/
/* 88796*/    /*Scope*/ 122, /*->88919*/
/* 88797*/      OPC_CheckChild0Integer, 45|128,42/*5421*/, 
/* 88800*/      OPC_RecordChild1, // #0 = $src1
/* 88801*/      OPC_Scope, 78, /*->88881*/ // 2 children in Scope
/* 88803*/        OPC_MoveChild2,
/* 88804*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88807*/        OPC_RecordMemRef,
/* 88808*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 88809*/        OPC_CheckFoldableChainNode,
/* 88810*/        OPC_RecordChild1, // #2 = $src2
/* 88811*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88813*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88815*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88817*/        OPC_Scope, 19, /*->88838*/ // 3 children in Scope
/* 88819*/          OPC_MoveParent,
/* 88820*/          OPC_CheckPatternPredicate, 59, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 88822*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88825*/          OPC_EmitMergeInputChains1_1,
/* 88826*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5421:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESENCrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 88838*/        /*Scope*/ 21, /*->88860*/
/* 88839*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 88841*/          OPC_MoveParent,
/* 88842*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 88844*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88847*/          OPC_EmitMergeInputChains1_1,
/* 88848*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESENCrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5421:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESENCrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 88860*/        /*Scope*/ 19, /*->88880*/
/* 88861*/          OPC_MoveParent,
/* 88862*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 88864*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88867*/          OPC_EmitMergeInputChains1_1,
/* 88868*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5421:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESENCZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 88880*/        0, /*End of Scope*/
/* 88881*/      /*Scope*/ 36, /*->88918*/
/* 88882*/        OPC_RecordChild2, // #1 = $src2
/* 88883*/        OPC_Scope, 10, /*->88895*/ // 3 children in Scope
/* 88885*/          OPC_CheckPatternPredicate, 59, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 88887*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5421:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 88895*/        /*Scope*/ 10, /*->88906*/
/* 88896*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 88898*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESENCrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5421:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (AESENCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 88906*/        /*Scope*/ 10, /*->88917*/
/* 88907*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 88909*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5421:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 88917*/        0, /*End of Scope*/
/* 88918*/      0, /*End of Scope*/
/* 88919*/    /*Scope*/ 122, /*->89042*/
/* 88920*/      OPC_CheckChild0Integer, 48|128,42/*5424*/, 
/* 88923*/      OPC_RecordChild1, // #0 = $src1
/* 88924*/      OPC_Scope, 78, /*->89004*/ // 2 children in Scope
/* 88926*/        OPC_MoveChild2,
/* 88927*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88930*/        OPC_RecordMemRef,
/* 88931*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 88932*/        OPC_CheckFoldableChainNode,
/* 88933*/        OPC_RecordChild1, // #2 = $src2
/* 88934*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88936*/        OPC_CheckPredicate, 9, // Predicate_load
/* 88938*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 88940*/        OPC_Scope, 19, /*->88961*/ // 3 children in Scope
/* 88942*/          OPC_MoveParent,
/* 88943*/          OPC_CheckPatternPredicate, 59, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 88945*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88948*/          OPC_EmitMergeInputChains1_1,
/* 88949*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5424:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESENCLASTrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 88961*/        /*Scope*/ 21, /*->88983*/
/* 88962*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 88964*/          OPC_MoveParent,
/* 88965*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 88967*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88970*/          OPC_EmitMergeInputChains1_1,
/* 88971*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESENCLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5424:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESENCLASTrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 88983*/        /*Scope*/ 19, /*->89003*/
/* 88984*/          OPC_MoveParent,
/* 88985*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 88987*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88990*/          OPC_EmitMergeInputChains1_1,
/* 88991*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5424:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESENCLASTZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89003*/        0, /*End of Scope*/
/* 89004*/      /*Scope*/ 36, /*->89041*/
/* 89005*/        OPC_RecordChild2, // #1 = $src2
/* 89006*/        OPC_Scope, 10, /*->89018*/ // 3 children in Scope
/* 89008*/          OPC_CheckPatternPredicate, 59, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 89010*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5424:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 89018*/        /*Scope*/ 10, /*->89029*/
/* 89019*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 89021*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESENCLASTrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5424:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (AESENCLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 89029*/        /*Scope*/ 10, /*->89040*/
/* 89030*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89032*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5424:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCLASTZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 89040*/        0, /*End of Scope*/
/* 89041*/      0, /*End of Scope*/
/* 89042*/    /*Scope*/ 122, /*->89165*/
/* 89043*/      OPC_CheckChild0Integer, 39|128,42/*5415*/, 
/* 89046*/      OPC_RecordChild1, // #0 = $src1
/* 89047*/      OPC_Scope, 78, /*->89127*/ // 2 children in Scope
/* 89049*/        OPC_MoveChild2,
/* 89050*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89053*/        OPC_RecordMemRef,
/* 89054*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 89055*/        OPC_CheckFoldableChainNode,
/* 89056*/        OPC_RecordChild1, // #2 = $src2
/* 89057*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89059*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89061*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89063*/        OPC_Scope, 19, /*->89084*/ // 3 children in Scope
/* 89065*/          OPC_MoveParent,
/* 89066*/          OPC_CheckPatternPredicate, 59, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 89068*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89071*/          OPC_EmitMergeInputChains1_1,
/* 89072*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5415:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESDECrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89084*/        /*Scope*/ 21, /*->89106*/
/* 89085*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 89087*/          OPC_MoveParent,
/* 89088*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 89090*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89093*/          OPC_EmitMergeInputChains1_1,
/* 89094*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESDECrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5415:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESDECrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89106*/        /*Scope*/ 19, /*->89126*/
/* 89107*/          OPC_MoveParent,
/* 89108*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89110*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89113*/          OPC_EmitMergeInputChains1_1,
/* 89114*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5415:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESDECZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89126*/        0, /*End of Scope*/
/* 89127*/      /*Scope*/ 36, /*->89164*/
/* 89128*/        OPC_RecordChild2, // #1 = $src2
/* 89129*/        OPC_Scope, 10, /*->89141*/ // 3 children in Scope
/* 89131*/          OPC_CheckPatternPredicate, 59, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 89133*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5415:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 89141*/        /*Scope*/ 10, /*->89152*/
/* 89142*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 89144*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESDECrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5415:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (AESDECrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 89152*/        /*Scope*/ 10, /*->89163*/
/* 89153*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89155*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5415:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 89163*/        0, /*End of Scope*/
/* 89164*/      0, /*End of Scope*/
/* 89165*/    /*Scope*/ 122, /*->89288*/
/* 89166*/      OPC_CheckChild0Integer, 42|128,42/*5418*/, 
/* 89169*/      OPC_RecordChild1, // #0 = $src1
/* 89170*/      OPC_Scope, 78, /*->89250*/ // 2 children in Scope
/* 89172*/        OPC_MoveChild2,
/* 89173*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89176*/        OPC_RecordMemRef,
/* 89177*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 89178*/        OPC_CheckFoldableChainNode,
/* 89179*/        OPC_RecordChild1, // #2 = $src2
/* 89180*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89182*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89184*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89186*/        OPC_Scope, 19, /*->89207*/ // 3 children in Scope
/* 89188*/          OPC_MoveParent,
/* 89189*/          OPC_CheckPatternPredicate, 59, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 89191*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89194*/          OPC_EmitMergeInputChains1_1,
/* 89195*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5418:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESDECLASTrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89207*/        /*Scope*/ 21, /*->89229*/
/* 89208*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 89210*/          OPC_MoveParent,
/* 89211*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 89213*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89216*/          OPC_EmitMergeInputChains1_1,
/* 89217*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESDECLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5418:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESDECLASTrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89229*/        /*Scope*/ 19, /*->89249*/
/* 89230*/          OPC_MoveParent,
/* 89231*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89233*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89236*/          OPC_EmitMergeInputChains1_1,
/* 89237*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5418:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESDECLASTZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89249*/        0, /*End of Scope*/
/* 89250*/      /*Scope*/ 36, /*->89287*/
/* 89251*/        OPC_RecordChild2, // #1 = $src2
/* 89252*/        OPC_Scope, 10, /*->89264*/ // 3 children in Scope
/* 89254*/          OPC_CheckPatternPredicate, 59, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 89256*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5418:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 89264*/        /*Scope*/ 10, /*->89275*/
/* 89265*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 89267*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESDECLASTrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5418:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (AESDECLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 89275*/        /*Scope*/ 10, /*->89286*/
/* 89276*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89278*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5418:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECLASTZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 89286*/        0, /*End of Scope*/
/* 89287*/      0, /*End of Scope*/
/* 89288*/    /*Scope*/ 88, /*->89377*/
/* 89289*/      OPC_CheckChild0Integer, 46|128,42/*5422*/, 
/* 89292*/      OPC_RecordChild1, // #0 = $src1
/* 89293*/      OPC_Scope, 55, /*->89350*/ // 2 children in Scope
/* 89295*/        OPC_MoveChild2,
/* 89296*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89299*/        OPC_RecordMemRef,
/* 89300*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 89301*/        OPC_CheckFoldableChainNode,
/* 89302*/        OPC_RecordChild1, // #2 = $src2
/* 89303*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89305*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89307*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89309*/        OPC_MoveParent,
/* 89310*/        OPC_Scope, 18, /*->89330*/ // 2 children in Scope
/* 89312*/          OPC_CheckPatternPredicate, 61, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 89314*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89317*/          OPC_EmitMergeInputChains1_1,
/* 89318*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5422:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESENCYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89330*/        /*Scope*/ 18, /*->89349*/
/* 89331*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89333*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89336*/          OPC_EmitMergeInputChains1_1,
/* 89337*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5422:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESENCZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89349*/        0, /*End of Scope*/
/* 89350*/      /*Scope*/ 25, /*->89376*/
/* 89351*/        OPC_RecordChild2, // #1 = $src2
/* 89352*/        OPC_Scope, 10, /*->89364*/ // 2 children in Scope
/* 89354*/          OPC_CheckPatternPredicate, 61, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 89356*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5422:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 89364*/        /*Scope*/ 10, /*->89375*/
/* 89365*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89367*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5422:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 89375*/        0, /*End of Scope*/
/* 89376*/      0, /*End of Scope*/
/* 89377*/    /*Scope*/ 88, /*->89466*/
/* 89378*/      OPC_CheckChild0Integer, 49|128,42/*5425*/, 
/* 89381*/      OPC_RecordChild1, // #0 = $src1
/* 89382*/      OPC_Scope, 55, /*->89439*/ // 2 children in Scope
/* 89384*/        OPC_MoveChild2,
/* 89385*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89388*/        OPC_RecordMemRef,
/* 89389*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 89390*/        OPC_CheckFoldableChainNode,
/* 89391*/        OPC_RecordChild1, // #2 = $src2
/* 89392*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89394*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89396*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89398*/        OPC_MoveParent,
/* 89399*/        OPC_Scope, 18, /*->89419*/ // 2 children in Scope
/* 89401*/          OPC_CheckPatternPredicate, 61, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 89403*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89406*/          OPC_EmitMergeInputChains1_1,
/* 89407*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5425:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESENCLASTYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89419*/        /*Scope*/ 18, /*->89438*/
/* 89420*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89422*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89425*/          OPC_EmitMergeInputChains1_1,
/* 89426*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5425:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESENCLASTZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89438*/        0, /*End of Scope*/
/* 89439*/      /*Scope*/ 25, /*->89465*/
/* 89440*/        OPC_RecordChild2, // #1 = $src2
/* 89441*/        OPC_Scope, 10, /*->89453*/ // 2 children in Scope
/* 89443*/          OPC_CheckPatternPredicate, 61, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 89445*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5425:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCLASTYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 89453*/        /*Scope*/ 10, /*->89464*/
/* 89454*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89456*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5425:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCLASTZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 89464*/        0, /*End of Scope*/
/* 89465*/      0, /*End of Scope*/
/* 89466*/    /*Scope*/ 88, /*->89555*/
/* 89467*/      OPC_CheckChild0Integer, 40|128,42/*5416*/, 
/* 89470*/      OPC_RecordChild1, // #0 = $src1
/* 89471*/      OPC_Scope, 55, /*->89528*/ // 2 children in Scope
/* 89473*/        OPC_MoveChild2,
/* 89474*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89477*/        OPC_RecordMemRef,
/* 89478*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 89479*/        OPC_CheckFoldableChainNode,
/* 89480*/        OPC_RecordChild1, // #2 = $src2
/* 89481*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89483*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89485*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89487*/        OPC_MoveParent,
/* 89488*/        OPC_Scope, 18, /*->89508*/ // 2 children in Scope
/* 89490*/          OPC_CheckPatternPredicate, 61, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 89492*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89495*/          OPC_EmitMergeInputChains1_1,
/* 89496*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5416:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESDECYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89508*/        /*Scope*/ 18, /*->89527*/
/* 89509*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89511*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89514*/          OPC_EmitMergeInputChains1_1,
/* 89515*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5416:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESDECZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89527*/        0, /*End of Scope*/
/* 89528*/      /*Scope*/ 25, /*->89554*/
/* 89529*/        OPC_RecordChild2, // #1 = $src2
/* 89530*/        OPC_Scope, 10, /*->89542*/ // 2 children in Scope
/* 89532*/          OPC_CheckPatternPredicate, 61, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 89534*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5416:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 89542*/        /*Scope*/ 10, /*->89553*/
/* 89543*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89545*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5416:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 89553*/        0, /*End of Scope*/
/* 89554*/      0, /*End of Scope*/
/* 89555*/    /*Scope*/ 88, /*->89644*/
/* 89556*/      OPC_CheckChild0Integer, 43|128,42/*5419*/, 
/* 89559*/      OPC_RecordChild1, // #0 = $src1
/* 89560*/      OPC_Scope, 55, /*->89617*/ // 2 children in Scope
/* 89562*/        OPC_MoveChild2,
/* 89563*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89566*/        OPC_RecordMemRef,
/* 89567*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 89568*/        OPC_CheckFoldableChainNode,
/* 89569*/        OPC_RecordChild1, // #2 = $src2
/* 89570*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89572*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89574*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89576*/        OPC_MoveParent,
/* 89577*/        OPC_Scope, 18, /*->89597*/ // 2 children in Scope
/* 89579*/          OPC_CheckPatternPredicate, 61, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 89581*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89584*/          OPC_EmitMergeInputChains1_1,
/* 89585*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5419:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESDECLASTYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89597*/        /*Scope*/ 18, /*->89616*/
/* 89598*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89600*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89603*/          OPC_EmitMergeInputChains1_1,
/* 89604*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5419:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESDECLASTZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89616*/        0, /*End of Scope*/
/* 89617*/      /*Scope*/ 25, /*->89643*/
/* 89618*/        OPC_RecordChild2, // #1 = $src2
/* 89619*/        OPC_Scope, 10, /*->89631*/ // 2 children in Scope
/* 89621*/          OPC_CheckPatternPredicate, 61, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 89623*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5419:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECLASTYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 89631*/        /*Scope*/ 10, /*->89642*/
/* 89632*/          OPC_CheckPatternPredicate, 60, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 89634*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 5419:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECLASTZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 89642*/        0, /*End of Scope*/
/* 89643*/      0, /*End of Scope*/
/* 89644*/    /*Scope*/ 86, /*->89731*/
/* 89645*/      OPC_CheckChild0Integer, 51|128,42/*5427*/, 
/* 89648*/      OPC_Scope, 56, /*->89706*/ // 2 children in Scope
/* 89650*/        OPC_MoveChild1,
/* 89651*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89654*/        OPC_RecordMemRef,
/* 89655*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 89656*/        OPC_CheckFoldableChainNode,
/* 89657*/        OPC_RecordChild1, // #1 = $src1
/* 89658*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89660*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89662*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89664*/        OPC_Scope, 18, /*->89684*/ // 2 children in Scope
/* 89666*/          OPC_MoveParent,
/* 89667*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasAES()) && (Subtarget->hasAVX())
/* 89669*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 89672*/          OPC_EmitMergeInputChains1_0,
/* 89673*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESIMCrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5427:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                    // Dst: (VAESIMCrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/* 89684*/        /*Scope*/ 20, /*->89705*/
/* 89685*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 89687*/          OPC_MoveParent,
/* 89688*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 89690*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 89693*/          OPC_EmitMergeInputChains1_0,
/* 89694*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESIMCrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5427:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESIMCrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/* 89705*/        0, /*End of Scope*/
/* 89706*/      /*Scope*/ 23, /*->89730*/
/* 89707*/        OPC_RecordChild1, // #0 = $src1
/* 89708*/        OPC_Scope, 9, /*->89719*/ // 2 children in Scope
/* 89710*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasAES()) && (Subtarget->hasAVX())
/* 89712*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESIMCrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5427:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1) - Complexity = 8
                    // Dst: (VAESIMCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1)
/* 89719*/        /*Scope*/ 9, /*->89729*/
/* 89720*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 89722*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESIMCrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5427:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1) - Complexity = 8
                    // Dst: (AESIMCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1)
/* 89729*/        0, /*End of Scope*/
/* 89730*/      0, /*End of Scope*/
/* 89731*/    /*Scope*/ 52, /*->89784*/
/* 89732*/      OPC_CheckChild0Integer, 47|128,42/*5423*/, 
/* 89735*/      OPC_RecordChild1, // #0 = $src1
/* 89736*/      OPC_Scope, 33, /*->89771*/ // 2 children in Scope
/* 89738*/        OPC_MoveChild2,
/* 89739*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89742*/        OPC_RecordMemRef,
/* 89743*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 89744*/        OPC_CheckFoldableChainNode,
/* 89745*/        OPC_RecordChild1, // #2 = $src2
/* 89746*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89748*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89750*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89752*/        OPC_MoveParent,
/* 89753*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 89755*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89758*/        OPC_EmitMergeInputChains1_1,
/* 89759*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 5423:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                  // Dst: (VAESENCZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89771*/      /*Scope*/ 11, /*->89783*/
/* 89772*/        OPC_RecordChild2, // #1 = $src2
/* 89773*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 89775*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 5423:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 8
                  // Dst: (VAESENCZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 89783*/      0, /*End of Scope*/
/* 89784*/    /*Scope*/ 52, /*->89837*/
/* 89785*/      OPC_CheckChild0Integer, 50|128,42/*5426*/, 
/* 89788*/      OPC_RecordChild1, // #0 = $src1
/* 89789*/      OPC_Scope, 33, /*->89824*/ // 2 children in Scope
/* 89791*/        OPC_MoveChild2,
/* 89792*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89795*/        OPC_RecordMemRef,
/* 89796*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 89797*/        OPC_CheckFoldableChainNode,
/* 89798*/        OPC_RecordChild1, // #2 = $src2
/* 89799*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89801*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89803*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89805*/        OPC_MoveParent,
/* 89806*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 89808*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89811*/        OPC_EmitMergeInputChains1_1,
/* 89812*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 5426:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                  // Dst: (VAESENCLASTZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89824*/      /*Scope*/ 11, /*->89836*/
/* 89825*/        OPC_RecordChild2, // #1 = $src2
/* 89826*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 89828*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 5426:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 8
                  // Dst: (VAESENCLASTZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 89836*/      0, /*End of Scope*/
/* 89837*/    /*Scope*/ 52, /*->89890*/
/* 89838*/      OPC_CheckChild0Integer, 41|128,42/*5417*/, 
/* 89841*/      OPC_RecordChild1, // #0 = $src1
/* 89842*/      OPC_Scope, 33, /*->89877*/ // 2 children in Scope
/* 89844*/        OPC_MoveChild2,
/* 89845*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89848*/        OPC_RecordMemRef,
/* 89849*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 89850*/        OPC_CheckFoldableChainNode,
/* 89851*/        OPC_RecordChild1, // #2 = $src2
/* 89852*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89854*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89856*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89858*/        OPC_MoveParent,
/* 89859*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 89861*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89864*/        OPC_EmitMergeInputChains1_1,
/* 89865*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 5417:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                  // Dst: (VAESDECZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89877*/      /*Scope*/ 11, /*->89889*/
/* 89878*/        OPC_RecordChild2, // #1 = $src2
/* 89879*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 89881*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 5417:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 8
                  // Dst: (VAESDECZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 89889*/      0, /*End of Scope*/
/* 89890*/    /*Scope*/ 52, /*->89943*/
/* 89891*/      OPC_CheckChild0Integer, 44|128,42/*5420*/, 
/* 89894*/      OPC_RecordChild1, // #0 = $src1
/* 89895*/      OPC_Scope, 33, /*->89930*/ // 2 children in Scope
/* 89897*/        OPC_MoveChild2,
/* 89898*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89901*/        OPC_RecordMemRef,
/* 89902*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 89903*/        OPC_CheckFoldableChainNode,
/* 89904*/        OPC_RecordChild1, // #2 = $src2
/* 89905*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89907*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89909*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89911*/        OPC_MoveParent,
/* 89912*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 89914*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89917*/        OPC_EmitMergeInputChains1_1,
/* 89918*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 5420:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                  // Dst: (VAESDECLASTZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89930*/      /*Scope*/ 11, /*->89942*/
/* 89931*/        OPC_RecordChild2, // #1 = $src2
/* 89932*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 89934*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 5420:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 8
                  // Dst: (VAESDECLASTZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 89942*/      0, /*End of Scope*/
/* 89943*/    /*Scope*/ 15, /*->89959*/
/* 89944*/      OPC_CheckChild0Integer, 115|128,50/*6515*/, 
/* 89947*/      OPC_RecordChild1, // #0 = $src
/* 89948*/      OPC_RecordChild2, // #1 = $mask
/* 89949*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/* 89951*/      OPC_MorphNodeTo1, TARGET_VAL(X86::EXTRQ), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6515:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src, VR128:{ *:[v16i8] }:$mask) - Complexity = 8
                // Dst: (EXTRQ:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, VR128:{ *:[v16i8] }:$mask)
/* 89959*/    /*Scope*/ 15, /*->89975*/
/* 89960*/      OPC_CheckChild0Integer, 117|128,50/*6517*/, 
/* 89963*/      OPC_RecordChild1, // #0 = $src
/* 89964*/      OPC_RecordChild2, // #1 = $mask
/* 89965*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/* 89967*/      OPC_MorphNodeTo1, TARGET_VAL(X86::INSERTQ), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6517:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src, VR128:{ *:[v2i64] }:$mask) - Complexity = 8
                // Dst: (INSERTQ:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, VR128:{ *:[v2i64] }:$mask)
/* 89975*/    /*Scope*/ 73|128,1/*201*/, /*->90178*/
/* 89977*/      OPC_CheckChild0Integer, 84|128,50/*6484*/, 
/* 89980*/      OPC_Scope, 77, /*->90059*/ // 3 children in Scope
/* 89982*/        OPC_RecordChild1, // #0 = $src1
/* 89983*/        OPC_MoveChild2,
/* 89984*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89987*/        OPC_RecordMemRef,
/* 89988*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 89989*/        OPC_CheckFoldableChainNode,
/* 89990*/        OPC_RecordChild1, // #2 = $src2
/* 89991*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89993*/        OPC_CheckPredicate, 9, // Predicate_load
/* 89995*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 89997*/        OPC_Scope, 28, /*->90027*/ // 2 children in Scope
/* 89999*/          OPC_MoveParent,
/* 90000*/          OPC_RecordChild3, // #3 = $src3
/* 90001*/          OPC_MoveChild3,
/* 90002*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90005*/          OPC_MoveParent,
/* 90006*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90008*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90011*/          OPC_EmitMergeInputChains1_1,
/* 90012*/          OPC_EmitConvertToTarget, 3,
/* 90014*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6484:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (VDPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90027*/        /*Scope*/ 30, /*->90058*/
/* 90028*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 90030*/          OPC_MoveParent,
/* 90031*/          OPC_RecordChild3, // #3 = $src3
/* 90032*/          OPC_MoveChild3,
/* 90033*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90036*/          OPC_MoveParent,
/* 90037*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 90039*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90042*/          OPC_EmitMergeInputChains1_1,
/* 90043*/          OPC_EmitConvertToTarget, 3,
/* 90045*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6484:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (DPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90058*/        0, /*End of Scope*/
/* 90059*/      /*Scope*/ 78, /*->90138*/
/* 90060*/        OPC_MoveChild1,
/* 90061*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90064*/        OPC_RecordMemRef,
/* 90065*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 90066*/        OPC_CheckFoldableChainNode,
/* 90067*/        OPC_RecordChild1, // #1 = $src2
/* 90068*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90070*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90072*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90074*/        OPC_Scope, 29, /*->90105*/ // 2 children in Scope
/* 90076*/          OPC_MoveParent,
/* 90077*/          OPC_RecordChild2, // #2 = $src1
/* 90078*/          OPC_RecordChild3, // #3 = $src3
/* 90079*/          OPC_MoveChild3,
/* 90080*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90083*/          OPC_MoveParent,
/* 90084*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90086*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90089*/          OPC_EmitMergeInputChains1_0,
/* 90090*/          OPC_EmitConvertToTarget, 3,
/* 90092*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6484:{ *:[iPTR] }, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (VDPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90105*/        /*Scope*/ 31, /*->90137*/
/* 90106*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 90108*/          OPC_MoveParent,
/* 90109*/          OPC_RecordChild2, // #2 = $src1
/* 90110*/          OPC_RecordChild3, // #3 = $src3
/* 90111*/          OPC_MoveChild3,
/* 90112*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90115*/          OPC_MoveParent,
/* 90116*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 90118*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90121*/          OPC_EmitMergeInputChains1_0,
/* 90122*/          OPC_EmitConvertToTarget, 3,
/* 90124*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6484:{ *:[iPTR] }, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (DPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90137*/        0, /*End of Scope*/
/* 90138*/      /*Scope*/ 38, /*->90177*/
/* 90139*/        OPC_RecordChild1, // #0 = $src1
/* 90140*/        OPC_RecordChild2, // #1 = $src2
/* 90141*/        OPC_RecordChild3, // #2 = $src3
/* 90142*/        OPC_MoveChild3,
/* 90143*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90146*/        OPC_MoveParent,
/* 90147*/        OPC_Scope, 13, /*->90162*/ // 2 children in Scope
/* 90149*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90151*/          OPC_EmitConvertToTarget, 2,
/* 90153*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6484:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VDPPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90162*/        /*Scope*/ 13, /*->90176*/
/* 90163*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 90165*/          OPC_EmitConvertToTarget, 2,
/* 90167*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6484:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (DPPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90176*/        0, /*End of Scope*/
/* 90177*/      0, /*End of Scope*/
/* 90178*/    /*Scope*/ 73|128,1/*201*/, /*->90381*/
/* 90180*/      OPC_CheckChild0Integer, 83|128,50/*6483*/, 
/* 90183*/      OPC_Scope, 77, /*->90262*/ // 3 children in Scope
/* 90185*/        OPC_RecordChild1, // #0 = $src1
/* 90186*/        OPC_MoveChild2,
/* 90187*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90190*/        OPC_RecordMemRef,
/* 90191*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 90192*/        OPC_CheckFoldableChainNode,
/* 90193*/        OPC_RecordChild1, // #2 = $src2
/* 90194*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90196*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90198*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90200*/        OPC_Scope, 28, /*->90230*/ // 2 children in Scope
/* 90202*/          OPC_MoveParent,
/* 90203*/          OPC_RecordChild3, // #3 = $src3
/* 90204*/          OPC_MoveChild3,
/* 90205*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90208*/          OPC_MoveParent,
/* 90209*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90211*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90214*/          OPC_EmitMergeInputChains1_1,
/* 90215*/          OPC_EmitConvertToTarget, 3,
/* 90217*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6483:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (VDPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90230*/        /*Scope*/ 30, /*->90261*/
/* 90231*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 90233*/          OPC_MoveParent,
/* 90234*/          OPC_RecordChild3, // #3 = $src3
/* 90235*/          OPC_MoveChild3,
/* 90236*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90239*/          OPC_MoveParent,
/* 90240*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 90242*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90245*/          OPC_EmitMergeInputChains1_1,
/* 90246*/          OPC_EmitConvertToTarget, 3,
/* 90248*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6483:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (DPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90261*/        0, /*End of Scope*/
/* 90262*/      /*Scope*/ 78, /*->90341*/
/* 90263*/        OPC_MoveChild1,
/* 90264*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90267*/        OPC_RecordMemRef,
/* 90268*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 90269*/        OPC_CheckFoldableChainNode,
/* 90270*/        OPC_RecordChild1, // #1 = $src2
/* 90271*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90273*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90275*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90277*/        OPC_Scope, 29, /*->90308*/ // 2 children in Scope
/* 90279*/          OPC_MoveParent,
/* 90280*/          OPC_RecordChild2, // #2 = $src1
/* 90281*/          OPC_RecordChild3, // #3 = $src3
/* 90282*/          OPC_MoveChild3,
/* 90283*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90286*/          OPC_MoveParent,
/* 90287*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90289*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90292*/          OPC_EmitMergeInputChains1_0,
/* 90293*/          OPC_EmitConvertToTarget, 3,
/* 90295*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6483:{ *:[iPTR] }, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (VDPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90308*/        /*Scope*/ 31, /*->90340*/
/* 90309*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 90311*/          OPC_MoveParent,
/* 90312*/          OPC_RecordChild2, // #2 = $src1
/* 90313*/          OPC_RecordChild3, // #3 = $src3
/* 90314*/          OPC_MoveChild3,
/* 90315*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90318*/          OPC_MoveParent,
/* 90319*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 90321*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90324*/          OPC_EmitMergeInputChains1_0,
/* 90325*/          OPC_EmitConvertToTarget, 3,
/* 90327*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6483:{ *:[iPTR] }, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (DPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90340*/        0, /*End of Scope*/
/* 90341*/      /*Scope*/ 38, /*->90380*/
/* 90342*/        OPC_RecordChild1, // #0 = $src1
/* 90343*/        OPC_RecordChild2, // #1 = $src2
/* 90344*/        OPC_RecordChild3, // #2 = $src3
/* 90345*/        OPC_MoveChild3,
/* 90346*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90349*/        OPC_MoveParent,
/* 90350*/        OPC_Scope, 13, /*->90365*/ // 2 children in Scope
/* 90352*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90354*/          OPC_EmitConvertToTarget, 2,
/* 90356*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6483:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VDPPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90365*/        /*Scope*/ 13, /*->90379*/
/* 90366*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 90368*/          OPC_EmitConvertToTarget, 2,
/* 90370*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6483:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (DPPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90379*/        0, /*End of Scope*/
/* 90380*/      0, /*End of Scope*/
/* 90381*/    /*Scope*/ 115, /*->90497*/
/* 90382*/      OPC_CheckChild0Integer, 64|128,42/*5440*/, 
/* 90385*/      OPC_Scope, 43, /*->90430*/ // 3 children in Scope
/* 90387*/        OPC_RecordChild1, // #0 = $src1
/* 90388*/        OPC_MoveChild2,
/* 90389*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90392*/        OPC_RecordMemRef,
/* 90393*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 90394*/        OPC_CheckFoldableChainNode,
/* 90395*/        OPC_RecordChild1, // #2 = $src2
/* 90396*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90398*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90400*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90402*/        OPC_MoveParent,
/* 90403*/        OPC_RecordChild3, // #3 = $src3
/* 90404*/        OPC_MoveChild3,
/* 90405*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90408*/        OPC_MoveParent,
/* 90409*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90411*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90414*/        OPC_EmitMergeInputChains1_1,
/* 90415*/        OPC_EmitConvertToTarget, 3,
/* 90417*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f32] } 5440:{ *:[iPTR] }, VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VDPPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90430*/      /*Scope*/ 43, /*->90474*/
/* 90431*/        OPC_MoveChild1,
/* 90432*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90435*/        OPC_RecordMemRef,
/* 90436*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 90437*/        OPC_CheckFoldableChainNode,
/* 90438*/        OPC_RecordChild1, // #1 = $src2
/* 90439*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90441*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90443*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90445*/        OPC_MoveParent,
/* 90446*/        OPC_RecordChild2, // #2 = $src1
/* 90447*/        OPC_RecordChild3, // #3 = $src3
/* 90448*/        OPC_MoveChild3,
/* 90449*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90452*/        OPC_MoveParent,
/* 90453*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90455*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90458*/        OPC_EmitMergeInputChains1_0,
/* 90459*/        OPC_EmitConvertToTarget, 3,
/* 90461*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f32] } 5440:{ *:[iPTR] }, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VDPPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90474*/      /*Scope*/ 21, /*->90496*/
/* 90475*/        OPC_RecordChild1, // #0 = $src1
/* 90476*/        OPC_RecordChild2, // #1 = $src2
/* 90477*/        OPC_RecordChild3, // #2 = $src3
/* 90478*/        OPC_MoveChild3,
/* 90479*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90482*/        OPC_MoveParent,
/* 90483*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90485*/        OPC_EmitConvertToTarget, 2,
/* 90487*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSYrri), 0,
                      MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f32] } 5440:{ *:[iPTR] }, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 11
                  // Dst: (VDPPSYrri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3)
/* 90496*/      0, /*End of Scope*/
/* 90497*/    /*Scope*/ 49, /*->90547*/
/* 90498*/      OPC_CheckChild0Integer, 55|128,51/*6583*/, 
/* 90501*/      OPC_Scope, 32, /*->90535*/ // 2 children in Scope
/* 90503*/        OPC_MoveChild1,
/* 90504*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90507*/        OPC_RecordMemRef,
/* 90508*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 90509*/        OPC_CheckFoldableChainNode,
/* 90510*/        OPC_RecordChild1, // #1 = $src
/* 90511*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90513*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90515*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90517*/        OPC_MoveParent,
/* 90518*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 90520*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 90523*/        OPC_EmitMergeInputChains1_0,
/* 90524*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6583:{ *:[iPTR] }, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                  // Dst: (VFRCZPSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/* 90535*/      /*Scope*/ 10, /*->90546*/
/* 90536*/        OPC_RecordChild1, // #0 = $src
/* 90537*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 90539*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPSrr), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6583:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VFRCZPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/* 90546*/      0, /*End of Scope*/
/* 90547*/    /*Scope*/ 49, /*->90597*/
/* 90548*/      OPC_CheckChild0Integer, 56|128,51/*6584*/, 
/* 90551*/      OPC_Scope, 32, /*->90585*/ // 2 children in Scope
/* 90553*/        OPC_MoveChild1,
/* 90554*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90557*/        OPC_RecordMemRef,
/* 90558*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 90559*/        OPC_CheckFoldableChainNode,
/* 90560*/        OPC_RecordChild1, // #1 = $src
/* 90561*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90563*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90565*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90567*/        OPC_MoveParent,
/* 90568*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 90570*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 90573*/        OPC_EmitMergeInputChains1_0,
/* 90574*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f32] } 6584:{ *:[iPTR] }, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                  // Dst: (VFRCZPSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/* 90585*/      /*Scope*/ 10, /*->90596*/
/* 90586*/        OPC_RecordChild1, // #0 = $src
/* 90587*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 90589*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPSYrr), 0,
                      MVT::v8f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f32] } 6584:{ *:[iPTR] }, VR256:{ *:[v8f32] }:$src) - Complexity = 8
                  // Dst: (VFRCZPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src)
/* 90596*/      0, /*End of Scope*/
/* 90597*/    /*Scope*/ 49, /*->90647*/
/* 90598*/      OPC_CheckChild0Integer, 53|128,51/*6581*/, 
/* 90601*/      OPC_Scope, 32, /*->90635*/ // 2 children in Scope
/* 90603*/        OPC_MoveChild1,
/* 90604*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90607*/        OPC_RecordMemRef,
/* 90608*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 90609*/        OPC_CheckFoldableChainNode,
/* 90610*/        OPC_RecordChild1, // #1 = $src
/* 90611*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90613*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90615*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90617*/        OPC_MoveParent,
/* 90618*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 90620*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 90623*/        OPC_EmitMergeInputChains1_0,
/* 90624*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6581:{ *:[iPTR] }, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                  // Dst: (VFRCZPDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/* 90635*/      /*Scope*/ 10, /*->90646*/
/* 90636*/        OPC_RecordChild1, // #0 = $src
/* 90637*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 90639*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPDrr), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6581:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VFRCZPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/* 90646*/      0, /*End of Scope*/
/* 90647*/    /*Scope*/ 49, /*->90697*/
/* 90648*/      OPC_CheckChild0Integer, 54|128,51/*6582*/, 
/* 90651*/      OPC_Scope, 32, /*->90685*/ // 2 children in Scope
/* 90653*/        OPC_MoveChild1,
/* 90654*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90657*/        OPC_RecordMemRef,
/* 90658*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 90659*/        OPC_CheckFoldableChainNode,
/* 90660*/        OPC_RecordChild1, // #1 = $src
/* 90661*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90663*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90665*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90667*/        OPC_MoveParent,
/* 90668*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 90670*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 90673*/        OPC_EmitMergeInputChains1_0,
/* 90674*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f64] } 6582:{ *:[iPTR] }, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 30
                  // Dst: (VFRCZPDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/* 90685*/      /*Scope*/ 10, /*->90696*/
/* 90686*/        OPC_RecordChild1, // #0 = $src
/* 90687*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 90689*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPDYrr), 0,
                      MVT::v4f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f64] } 6582:{ *:[iPTR] }, VR256:{ *:[v4f64] }:$src) - Complexity = 8
                  // Dst: (VFRCZPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src)
/* 90696*/      0, /*End of Scope*/
/* 90697*/    /*Scope*/ 102, /*->90800*/
/* 90698*/      OPC_CheckChild0Integer, 81|128,50/*6481*/, 
/* 90701*/      OPC_RecordChild1, // #0 = $src1
/* 90702*/      OPC_Scope, 64, /*->90768*/ // 2 children in Scope
/* 90704*/        OPC_MoveChild2,
/* 90705*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90708*/        OPC_RecordMemRef,
/* 90709*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 90710*/        OPC_CheckFoldableChainNode,
/* 90711*/        OPC_RecordChild1, // #2 = $src2
/* 90712*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90714*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90716*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90718*/        OPC_Scope, 21, /*->90741*/ // 2 children in Scope
/* 90720*/          OPC_MoveParent,
/* 90721*/          OPC_RecordChild3, // #3 = $src3
/* 90722*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90724*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90727*/          OPC_EmitMergeInputChains1_1,
/* 90728*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6481:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 30
                    // Dst: (VBLENDVPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/* 90741*/        /*Scope*/ 25, /*->90767*/
/* 90742*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 90744*/          OPC_MoveParent,
/* 90745*/          OPC_RecordChild3, // #3 = physreg input XMM0
/* 90746*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 90748*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90751*/          OPC_EmitMergeInputChains1_1,
/* 90752*/          OPC_EmitCopyToReg, 3, X86::XMM0,
/* 90755*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPDrm0), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6481:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, XMM0:{ *:[v2f64] }) - Complexity = 30
                    // Dst: (BLENDVPDrm0:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 90767*/        0, /*End of Scope*/
/* 90768*/      /*Scope*/ 30, /*->90799*/
/* 90769*/        OPC_RecordChild2, // #1 = $src2
/* 90770*/        OPC_RecordChild3, // #2 = $src3
/* 90771*/        OPC_Scope, 11, /*->90784*/ // 2 children in Scope
/* 90773*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90775*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDrr), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6481:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3) - Complexity = 8
                    // Dst: (VBLENDVPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/* 90784*/        /*Scope*/ 13, /*->90798*/
/* 90785*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 90787*/          OPC_EmitCopyToReg, 2, X86::XMM0,
/* 90790*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPDrr0), 0|OPFL_GlueInput,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6481:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, XMM0:{ *:[v2f64] }) - Complexity = 8
                    // Dst: (BLENDVPDrr0:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/* 90798*/        0, /*End of Scope*/
/* 90799*/      0, /*End of Scope*/
/* 90800*/    /*Scope*/ 56, /*->90857*/
/* 90801*/      OPC_CheckChild0Integer, 55|128,42/*5431*/, 
/* 90804*/      OPC_RecordChild1, // #0 = $src1
/* 90805*/      OPC_Scope, 35, /*->90842*/ // 2 children in Scope
/* 90807*/        OPC_MoveChild2,
/* 90808*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90811*/        OPC_RecordMemRef,
/* 90812*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 90813*/        OPC_CheckFoldableChainNode,
/* 90814*/        OPC_RecordChild1, // #2 = $src2
/* 90815*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90817*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90819*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90821*/        OPC_MoveParent,
/* 90822*/        OPC_RecordChild3, // #3 = $src3
/* 90823*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90825*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90828*/        OPC_EmitMergeInputChains1_1,
/* 90829*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5431:{ *:[iPTR] }, VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 30
                  // Dst: (VBLENDVPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/* 90842*/      /*Scope*/ 13, /*->90856*/
/* 90843*/        OPC_RecordChild2, // #1 = $src2
/* 90844*/        OPC_RecordChild3, // #2 = $src3
/* 90845*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90847*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDYrr), 0,
                      MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5431:{ *:[iPTR] }, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3) - Complexity = 8
                  // Dst: (VBLENDVPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/* 90856*/      0, /*End of Scope*/
/* 90857*/    /*Scope*/ 102, /*->90960*/
/* 90858*/      OPC_CheckChild0Integer, 82|128,50/*6482*/, 
/* 90861*/      OPC_RecordChild1, // #0 = $src1
/* 90862*/      OPC_Scope, 64, /*->90928*/ // 2 children in Scope
/* 90864*/        OPC_MoveChild2,
/* 90865*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90868*/        OPC_RecordMemRef,
/* 90869*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 90870*/        OPC_CheckFoldableChainNode,
/* 90871*/        OPC_RecordChild1, // #2 = $src2
/* 90872*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90874*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90876*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90878*/        OPC_Scope, 21, /*->90901*/ // 2 children in Scope
/* 90880*/          OPC_MoveParent,
/* 90881*/          OPC_RecordChild3, // #3 = $src3
/* 90882*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90884*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90887*/          OPC_EmitMergeInputChains1_1,
/* 90888*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6482:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 30
                    // Dst: (VBLENDVPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/* 90901*/        /*Scope*/ 25, /*->90927*/
/* 90902*/          OPC_CheckPredicate, 48, // Predicate_memop
/* 90904*/          OPC_MoveParent,
/* 90905*/          OPC_RecordChild3, // #3 = physreg input XMM0
/* 90906*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 90908*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90911*/          OPC_EmitMergeInputChains1_1,
/* 90912*/          OPC_EmitCopyToReg, 3, X86::XMM0,
/* 90915*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPSrm0), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6482:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, XMM0:{ *:[v4f32] }) - Complexity = 30
                    // Dst: (BLENDVPSrm0:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 90927*/        0, /*End of Scope*/
/* 90928*/      /*Scope*/ 30, /*->90959*/
/* 90929*/        OPC_RecordChild2, // #1 = $src2
/* 90930*/        OPC_RecordChild3, // #2 = $src3
/* 90931*/        OPC_Scope, 11, /*->90944*/ // 2 children in Scope
/* 90933*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90935*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSrr), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6482:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3) - Complexity = 8
                    // Dst: (VBLENDVPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/* 90944*/        /*Scope*/ 13, /*->90958*/
/* 90945*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 90947*/          OPC_EmitCopyToReg, 2, X86::XMM0,
/* 90950*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPSrr0), 0|OPFL_GlueInput,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6482:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, XMM0:{ *:[v4f32] }) - Complexity = 8
                    // Dst: (BLENDVPSrr0:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/* 90958*/        0, /*End of Scope*/
/* 90959*/      0, /*End of Scope*/
/* 90960*/    /*Scope*/ 56, /*->91017*/
/* 90961*/      OPC_CheckChild0Integer, 56|128,42/*5432*/, 
/* 90964*/      OPC_RecordChild1, // #0 = $src1
/* 90965*/      OPC_Scope, 35, /*->91002*/ // 2 children in Scope
/* 90967*/        OPC_MoveChild2,
/* 90968*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90971*/        OPC_RecordMemRef,
/* 90972*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 90973*/        OPC_CheckFoldableChainNode,
/* 90974*/        OPC_RecordChild1, // #2 = $src2
/* 90975*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90977*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90979*/        OPC_CheckPredicate, 40, // Predicate_vecload
/* 90981*/        OPC_MoveParent,
/* 90982*/        OPC_RecordChild3, // #3 = $src3
/* 90983*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 90985*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 90988*/        OPC_EmitMergeInputChains1_1,
/* 90989*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f32] } 5432:{ *:[iPTR] }, VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 30
                  // Dst: (VBLENDVPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/* 91002*/      /*Scope*/ 13, /*->91016*/
/* 91003*/        OPC_RecordChild2, // #1 = $src2
/* 91004*/        OPC_RecordChild3, // #2 = $src3
/* 91005*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 91007*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSYrr), 0,
                      MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f32] } 5432:{ *:[iPTR] }, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3) - Complexity = 8
                  // Dst: (VBLENDVPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/* 91016*/      0, /*End of Scope*/
/* 91017*/    /*Scope*/ 47, /*->91065*/
/* 91018*/      OPC_CheckChild0Integer, 106|128,49/*6378*/, 
/* 91021*/      OPC_Scope, 30, /*->91053*/ // 2 children in Scope
/* 91023*/        OPC_MoveChild1,
/* 91024*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 91027*/        OPC_RecordMemRef,
/* 91028*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 91029*/        OPC_CheckFoldableChainNode,
/* 91030*/        OPC_RecordChild1, // #1 = $src
/* 91031*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 91033*/        OPC_CheckPredicate, 9, // Predicate_load
/* 91035*/        OPC_MoveParent,
/* 91036*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 91038*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 91041*/        OPC_EmitMergeInputChains1_0,
/* 91042*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPI2PDirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6378:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_CVTPI2PDirm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/* 91053*/      /*Scope*/ 10, /*->91064*/
/* 91054*/        OPC_RecordChild1, // #0 = $src
/* 91055*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 91057*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPI2PDirr), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6378:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (MMX_CVTPI2PDirr:{ *:[v2f64] } VR64:{ *:[x86mmx] }:$src)
/* 91064*/      0, /*End of Scope*/
/* 91065*/    /*Scope*/ 50, /*->91116*/
/* 91066*/      OPC_CheckChild0Integer, 107|128,49/*6379*/, 
/* 91069*/      OPC_RecordChild1, // #0 = $src1
/* 91070*/      OPC_Scope, 31, /*->91103*/ // 2 children in Scope
/* 91072*/        OPC_MoveChild2,
/* 91073*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 91076*/        OPC_RecordMemRef,
/* 91077*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 91078*/        OPC_CheckFoldableChainNode,
/* 91079*/        OPC_RecordChild1, // #2 = $src2
/* 91080*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 91082*/        OPC_CheckPredicate, 9, // Predicate_load
/* 91084*/        OPC_MoveParent,
/* 91085*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 91087*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 91090*/        OPC_EmitMergeInputChains1_1,
/* 91091*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPI2PSirm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6379:{ *:[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)
/* 91103*/      /*Scope*/ 11, /*->91115*/
/* 91104*/        OPC_RecordChild2, // #1 = $src2
/* 91105*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 91107*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPI2PSirr), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6379:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_CVTPI2PSirr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 91115*/      0, /*End of Scope*/
/* 91116*/    /*Scope*/ 89, /*->91206*/
/* 91117*/      OPC_CheckChild0Integer, 98|128,49/*6370*/, 
/* 91120*/      OPC_RecordChild1, // #0 = $src1
/* 91121*/      OPC_RecordChild2, // #1 = $src
/* 91122*/      OPC_RecordChild3, // #2 = $cc
/* 91123*/      OPC_MoveChild3,
/* 91124*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91127*/      OPC_MoveParent,
/* 91128*/      OPC_Scope, 23, /*->91153*/ // 4 children in Scope
/* 91130*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 91132*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src #3 #4 #5 #6 #7 + chain result
/* 91135*/        OPC_EmitMergeInputChains, 1, 8, 
/* 91138*/        OPC_EmitConvertToTarget, 2,
/* 91140*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6370:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc) - Complexity = 29
                  // Dst: (VCMPSSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc)
/* 91153*/      /*Scope*/ 23, /*->91177*/
/* 91154*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 91156*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src #3 #4 #5 #6 #7 + chain result
/* 91159*/        OPC_EmitMergeInputChains, 1, 8, 
/* 91162*/        OPC_EmitConvertToTarget, 2,
/* 91164*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6370:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc) - Complexity = 29
                  // Dst: (CMPSSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc)
/* 91177*/      /*Scope*/ 13, /*->91191*/
/* 91178*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 91180*/        OPC_EmitConvertToTarget, 2,
/* 91182*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSrr_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6370:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc) - Complexity = 11
                  // Dst: (VCMPSSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc)
/* 91191*/      /*Scope*/ 13, /*->91205*/
/* 91192*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 91194*/        OPC_EmitConvertToTarget, 2,
/* 91196*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSSrr_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6370:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc) - Complexity = 11
                  // Dst: (CMPSSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc)
/* 91205*/      0, /*End of Scope*/
/* 91206*/    /*Scope*/ 89, /*->91296*/
/* 91207*/      OPC_CheckChild0Integer, 8|128,50/*6408*/, 
/* 91210*/      OPC_RecordChild1, // #0 = $src1
/* 91211*/      OPC_RecordChild2, // #1 = $src
/* 91212*/      OPC_RecordChild3, // #2 = $cc
/* 91213*/      OPC_MoveChild3,
/* 91214*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91217*/      OPC_MoveParent,
/* 91218*/      OPC_Scope, 23, /*->91243*/ // 4 children in Scope
/* 91220*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 91222*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src #3 #4 #5 #6 #7 + chain result
/* 91225*/        OPC_EmitMergeInputChains, 1, 8, 
/* 91228*/        OPC_EmitConvertToTarget, 2,
/* 91230*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6408:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc) - Complexity = 29
                  // Dst: (VCMPSDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc)
/* 91243*/      /*Scope*/ 23, /*->91267*/
/* 91244*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 91246*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src #3 #4 #5 #6 #7 + chain result
/* 91249*/        OPC_EmitMergeInputChains, 1, 8, 
/* 91252*/        OPC_EmitConvertToTarget, 2,
/* 91254*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6408:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc) - Complexity = 29
                  // Dst: (CMPSDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc)
/* 91267*/      /*Scope*/ 13, /*->91281*/
/* 91268*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 91270*/        OPC_EmitConvertToTarget, 2,
/* 91272*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDrr_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6408:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc) - Complexity = 11
                  // Dst: (VCMPSDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc)
/* 91281*/      /*Scope*/ 13, /*->91295*/
/* 91282*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 91284*/        OPC_EmitConvertToTarget, 2,
/* 91286*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSDrr_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6408:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc) - Complexity = 11
                  // Dst: (CMPSDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc)
/* 91295*/      0, /*End of Scope*/
/* 91296*/    /*Scope*/ 34, /*->91331*/
/* 91297*/      OPC_CheckChild0Integer, 58|128,51/*6586*/, 
/* 91300*/      OPC_RecordChild1, // #0 = $src
/* 91301*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 91303*/      OPC_Scope, 17, /*->91322*/ // 2 children in Scope
/* 91305*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 91308*/        OPC_EmitMergeInputChains, 1, 6, 
/* 91311*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6586:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (VFRCZSSrm:{ *:[v4f32] } sse_load_f32:{ *:[v4f32] }:$src)
/* 91322*/      /*Scope*/ 7, /*->91330*/
/* 91323*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZSSrr), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6586:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VFRCZSSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/* 91330*/      0, /*End of Scope*/
/* 91331*/    /*Scope*/ 34, /*->91366*/
/* 91332*/      OPC_CheckChild0Integer, 57|128,51/*6585*/, 
/* 91335*/      OPC_RecordChild1, // #0 = $src
/* 91336*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/* 91338*/      OPC_Scope, 17, /*->91357*/ // 2 children in Scope
/* 91340*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 91343*/        OPC_EmitMergeInputChains, 1, 6, 
/* 91346*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6585:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (VFRCZSDrm:{ *:[v2f64] } sse_load_f64:{ *:[v2f64] }:$src)
/* 91357*/      /*Scope*/ 7, /*->91365*/
/* 91358*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZSDrr), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 6585:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VFRCZSDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/* 91365*/      0, /*End of Scope*/
/* 91366*/    /*Scope*/ 71, /*->91438*/
/* 91367*/      OPC_CheckChild0Integer, 20|128,50/*6420*/, 
/* 91370*/      OPC_RecordChild1, // #0 = $src1
/* 91371*/      OPC_RecordChild2, // #1 = $src2
/* 91372*/      OPC_Scope, 20, /*->91394*/ // 4 children in Scope
/* 91374*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 91376*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/* 91379*/        OPC_EmitMergeInputChains, 1, 7, 
/* 91382*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6420:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 26
                  // Dst: (VCVTSD2SSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/* 91394*/      /*Scope*/ 20, /*->91415*/
/* 91395*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 91397*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/* 91400*/        OPC_EmitMergeInputChains, 1, 7, 
/* 91403*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6420:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 26
                  // Dst: (CVTSD2SSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/* 91415*/      /*Scope*/ 10, /*->91426*/
/* 91416*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 91418*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6420:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 8
                  // Dst: (VCVTSD2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2)
/* 91426*/      /*Scope*/ 10, /*->91437*/
/* 91427*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 91429*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SSrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6420:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 8
                  // Dst: (CVTSD2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2)
/* 91437*/      0, /*End of Scope*/
/* 91438*/    /*Scope*/ 82, /*->91521*/
/* 91439*/      OPC_CheckChild0Integer, 125|128,49/*6397*/, 
/* 91442*/      OPC_RecordChild1, // #0 = $src2
/* 91443*/      OPC_Scope, 26, /*->91471*/ // 4 children in Scope
/* 91445*/        OPC_CheckPatternPredicate, 63, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 91447*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src2 #1 #2 #3 #4 #5 + chain result
/* 91450*/        OPC_EmitMergeInputChains, 1, 6, 
/* 91453*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #7
/* 91459*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RSQRTSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 7, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6397:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 26
                  // Dst: (RSQRTSSm_Int:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), addr:{ *:[v4f32] }:$src2)
/* 91471*/      /*Scope*/ 26, /*->91498*/
/* 91472*/        OPC_CheckPatternPredicate, 64, // (Subtarget->hasAVX()) && (MF->getFunction().optForSize())
/* 91474*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src2 #1 #2 #3 #4 #5 + chain result
/* 91477*/        OPC_EmitMergeInputChains, 1, 6, 
/* 91480*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #7
/* 91486*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRTSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 7, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6397:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 26
                  // Dst: (VRSQRTSSm_Int:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), addr:{ *:[v4f32] }:$src2)
/* 91498*/      /*Scope*/ 10, /*->91509*/
/* 91499*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 91501*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RSQRTSSr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6397:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (RSQRTSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
/* 91509*/      /*Scope*/ 10, /*->91520*/
/* 91510*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 91512*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRTSSr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6397:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VRSQRTSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
/* 91520*/      0, /*End of Scope*/
/* 91521*/    /*Scope*/ 82, /*->91604*/
/* 91522*/      OPC_CheckChild0Integer, 123|128,49/*6395*/, 
/* 91525*/      OPC_RecordChild1, // #0 = $src2
/* 91526*/      OPC_Scope, 26, /*->91554*/ // 4 children in Scope
/* 91528*/        OPC_CheckPatternPredicate, 63, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 91530*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src2 #1 #2 #3 #4 #5 + chain result
/* 91533*/        OPC_EmitMergeInputChains, 1, 6, 
/* 91536*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #7
/* 91542*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RCPSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 7, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6395:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 26
                  // Dst: (RCPSSm_Int:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), addr:{ *:[v4f32] }:$src2)
/* 91554*/      /*Scope*/ 26, /*->91581*/
/* 91555*/        OPC_CheckPatternPredicate, 64, // (Subtarget->hasAVX()) && (MF->getFunction().optForSize())
/* 91557*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src2 #1 #2 #3 #4 #5 + chain result
/* 91560*/        OPC_EmitMergeInputChains, 1, 6, 
/* 91563*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #7
/* 91569*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCPSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 7, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6395:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 26
                  // Dst: (VRCPSSm_Int:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), addr:{ *:[v4f32] }:$src2)
/* 91581*/      /*Scope*/ 10, /*->91592*/
/* 91582*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 91584*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RCPSSr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6395:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (RCPSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
/* 91592*/      /*Scope*/ 10, /*->91603*/
/* 91593*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 91595*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCPSSr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 6395:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VRCPSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
/* 91603*/      0, /*End of Scope*/
/* 91604*/    0, /*End of Scope*/
/* 91605*/  /*SwitchOpcode*/ 69|128,3/*453*/, TARGET_VAL(X86ISD::ADC),// ->92062
/* 91609*/    OPC_RecordChild0, // #0 = $src1
/* 91610*/    OPC_Scope, 50|128,1/*178*/, /*->91791*/ // 2 children in Scope
/* 91613*/      OPC_MoveChild1,
/* 91614*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 91617*/      OPC_RecordMemRef,
/* 91618*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 91619*/      OPC_CheckFoldableChainNode,
/* 91620*/      OPC_RecordChild1, // #2 = $src2
/* 91621*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 91623*/      OPC_Scope, 28, /*->91653*/ // 6 children in Scope
/* 91625*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 91627*/        OPC_MoveParent,
/* 91628*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 91629*/        OPC_CheckType, MVT::i32,
/* 91631*/        OPC_CheckPatternPredicate, 65, // (Subtarget->hasADX())
/* 91633*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 91636*/        OPC_EmitMergeInputChains1_1,
/* 91637*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 91640*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADCX32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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 = 35
                  // Dst: (ADCX32rm:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 91653*/      /*Scope*/ 28, /*->91682*/
/* 91654*/        OPC_CheckPredicate, 9, // Predicate_load
/* 91656*/        OPC_MoveParent,
/* 91657*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 91658*/        OPC_CheckType, MVT::i64,
/* 91660*/        OPC_CheckPatternPredicate, 65, // (Subtarget->hasADX())
/* 91662*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 91665*/        OPC_EmitMergeInputChains1_1,
/* 91666*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 91669*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADCX64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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 = 35
                  // Dst: (ADCX64rm:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 91682*/      /*Scope*/ 26, /*->91709*/
/* 91683*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 91685*/        OPC_MoveParent,
/* 91686*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 91687*/        OPC_CheckType, MVT::i8,
/* 91689*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 91692*/        OPC_EmitMergeInputChains1_1,
/* 91693*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 91696*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADC8rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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_loadi8>>, EFLAGS:{ *:[i32] }) - Complexity = 25
                  // Dst: (ADC8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 91709*/      /*Scope*/ 26, /*->91736*/
/* 91710*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 91712*/        OPC_MoveParent,
/* 91713*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 91714*/        OPC_CheckType, MVT::i16,
/* 91716*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 91719*/        OPC_EmitMergeInputChains1_1,
/* 91720*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 91723*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADC16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 91736*/      /*Scope*/ 26, /*->91763*/
/* 91737*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 91739*/        OPC_MoveParent,
/* 91740*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 91741*/        OPC_CheckType, MVT::i32,
/* 91743*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 91746*/        OPC_EmitMergeInputChains1_1,
/* 91747*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 91750*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADC32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 91763*/      /*Scope*/ 26, /*->91790*/
/* 91764*/        OPC_CheckPredicate, 9, // Predicate_load
/* 91766*/        OPC_MoveParent,
/* 91767*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 91768*/        OPC_CheckType, MVT::i64,
/* 91770*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 91773*/        OPC_EmitMergeInputChains1_1,
/* 91774*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 91777*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADC64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 91790*/      0, /*End of Scope*/
/* 91791*/    /*Scope*/ 12|128,2/*268*/, /*->92061*/
/* 91793*/      OPC_RecordChild1, // #1 = $src2
/* 91794*/      OPC_Scope, 35, /*->91831*/ // 3 children in Scope
/* 91796*/        OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 91797*/        OPC_SwitchType /*2 cases */, 14, MVT::i32,// ->91814
/* 91800*/          OPC_CheckPatternPredicate, 65, // (Subtarget->hasADX())
/* 91802*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 91805*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADCX32rr), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adc_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2, EFLAGS:{ *:[i32] }) - Complexity = 13
                    // Dst: (ADCX32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 91814*/        /*SwitchType*/ 14, MVT::i64,// ->91830
/* 91816*/          OPC_CheckPatternPredicate, 65, // (Subtarget->hasADX())
/* 91818*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 91821*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADCX64rr), 0|OPFL_GlueInput,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adc_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2, EFLAGS:{ *:[i32] }) - Complexity = 13
                    // Dst: (ADCX64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 91830*/        0, // EndSwitchType
/* 91831*/      /*Scope*/ 39|128,1/*167*/, /*->92000*/
/* 91833*/        OPC_MoveChild1,
/* 91834*/        OPC_Scope, 97, /*->91933*/ // 4 children in Scope
/* 91836*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91839*/          OPC_Scope, 22, /*->91863*/ // 4 children in Scope
/* 91841*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 91843*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 91845*/            OPC_MoveParent,
/* 91846*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 91847*/            OPC_CheckType, MVT::i16,
/* 91849*/            OPC_EmitConvertToTarget, 1,
/* 91851*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 91854*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADC16ri8), 0|OPFL_GlueInput,
                          MVT::i16, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (X86adc_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>><<P:Predicate_i16immSExt8_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 7
                      // Dst: (ADC16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/* 91863*/          /*Scope*/ 22, /*->91886*/
/* 91864*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 91866*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 91868*/            OPC_MoveParent,
/* 91869*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 91870*/            OPC_CheckType, MVT::i32,
/* 91872*/            OPC_EmitConvertToTarget, 1,
/* 91874*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 91877*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADC32ri8), 0|OPFL_GlueInput,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (X86adc_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>><<P:Predicate_i32immSExt8_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 7
                      // Dst: (ADC32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 91886*/          /*Scope*/ 22, /*->91909*/
/* 91887*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 91889*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 91891*/            OPC_MoveParent,
/* 91892*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 91893*/            OPC_CheckType, MVT::i64,
/* 91895*/            OPC_EmitConvertToTarget, 1,
/* 91897*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 91900*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADC64ri8), 0|OPFL_GlueInput,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (X86adc_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>><<P:Predicate_i64immSExt8_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 7
                      // Dst: (ADC64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/* 91909*/          /*Scope*/ 22, /*->91932*/
/* 91910*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 91912*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/* 91914*/            OPC_MoveParent,
/* 91915*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 91916*/            OPC_CheckType, MVT::i64,
/* 91918*/            OPC_EmitConvertToTarget, 1,
/* 91920*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 91923*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADC64ri32), 0|OPFL_GlueInput,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (X86adc_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>><<P:Predicate_i64immSExt32_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 7
                      // Dst: (ADC64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/* 91932*/          0, /*End of Scope*/
/* 91933*/        /*Scope*/ 21, /*->91955*/
/* 91934*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/* 91936*/          OPC_MoveParent,
/* 91937*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 91938*/          OPC_CheckType, MVT::i8,
/* 91940*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/* 91943*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 91946*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC8ri), 0|OPFL_GlueInput,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86adc_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (ADC8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 91955*/        /*Scope*/ 21, /*->91977*/
/* 91956*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/* 91958*/          OPC_MoveParent,
/* 91959*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 91960*/          OPC_CheckType, MVT::i16,
/* 91962*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/* 91965*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 91968*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC16ri), 0|OPFL_GlueInput,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86adc_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (ADC16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 91977*/        /*Scope*/ 21, /*->91999*/
/* 91978*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/* 91980*/          OPC_MoveParent,
/* 91981*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 91982*/          OPC_CheckType, MVT::i32,
/* 91984*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/* 91987*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 91990*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC32ri), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86adc_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (ADC32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 91999*/        0, /*End of Scope*/
/* 92000*/      /*Scope*/ 59, /*->92060*/
/* 92001*/        OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 92002*/        OPC_SwitchType /*4 cases */, 12, MVT::i8,// ->92017
/* 92005*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 92008*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC8rr), 0|OPFL_GlueInput,
                        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)
/* 92017*/        /*SwitchType*/ 12, MVT::i16,// ->92031
/* 92019*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 92022*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC16rr), 0|OPFL_GlueInput,
                        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)
/* 92031*/        /*SwitchType*/ 12, MVT::i32,// ->92045
/* 92033*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 92036*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC32rr), 0|OPFL_GlueInput,
                        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)
/* 92045*/        /*SwitchType*/ 12, MVT::i64,// ->92059
/* 92047*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 92050*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC64rr), 0|OPFL_GlueInput,
                        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)
/* 92059*/        0, // EndSwitchType
/* 92060*/      0, /*End of Scope*/
/* 92061*/    0, /*End of Scope*/
/* 92062*/  /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(ISD::PREFETCH),// ->92244
/* 92066*/    OPC_RecordMemRef,
/* 92067*/    OPC_RecordNode, // #0 = 'prefetch' chained node
/* 92068*/    OPC_RecordChild1, // #1 = $addr
/* 92069*/    OPC_Scope, 54, /*->92125*/ // 2 children in Scope
/* 92071*/      OPC_CheckChild2Integer, 1, 
/* 92073*/      OPC_CheckChild2Type, MVT::i32,
/* 92075*/      OPC_MoveChild3,
/* 92076*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92079*/      OPC_Scope, 21, /*->92102*/ // 2 children in Scope
/* 92081*/        OPC_CheckPredicate, 50, // Predicate_PrefetchWLevel
/* 92083*/        OPC_MoveParent,
/* 92084*/        OPC_CheckChild4Integer, 1, 
/* 92086*/        OPC_CheckPatternPredicate, 66, // (Subtarget->hasPRFCHW())
/* 92088*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$addr #2 #3 #4 #5 #6
/* 92091*/        OPC_EmitMergeInputChains1_0,
/* 92092*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PREFETCHW), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (prefetch addr:{ *:[iPTR] }:$addr, 1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_PrefetchWLevel>>, 1:{ *:[i32] }) - Complexity = 35
                  // Dst: (PREFETCHW addr:{ *:[iPTR] }:$addr)
/* 92102*/      /*Scope*/ 21, /*->92124*/
/* 92103*/        OPC_CheckPredicate, 51, // Predicate_PrefetchWT1Level
/* 92105*/        OPC_MoveParent,
/* 92106*/        OPC_CheckChild4Integer, 1, 
/* 92108*/        OPC_CheckPatternPredicate, 67, // (Subtarget->hasPREFETCHWT1())
/* 92110*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$addr #2 #3 #4 #5 #6
/* 92113*/        OPC_EmitMergeInputChains1_0,
/* 92114*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PREFETCHWT1), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (prefetch addr:{ *:[iPTR] }:$addr, 1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_PrefetchWT1Level>>, 1:{ *:[i32] }) - Complexity = 35
                  // Dst: (PREFETCHWT1 addr:{ *:[iPTR] }:$addr)
/* 92124*/      0, /*End of Scope*/
/* 92125*/    /*Scope*/ 117, /*->92243*/
/* 92126*/      OPC_MoveChild2,
/* 92127*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92130*/      OPC_CheckType, MVT::i32,
/* 92132*/      OPC_MoveParent,
/* 92133*/      OPC_Scope, 20, /*->92155*/ // 5 children in Scope
/* 92135*/        OPC_CheckChild3Integer, 3, 
/* 92137*/        OPC_CheckChild4Integer, 1, 
/* 92139*/        OPC_CheckPatternPredicate, 68, // (Subtarget->hasSSEPrefetch())
/* 92141*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92144*/        OPC_EmitMergeInputChains1_0,
/* 92145*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PREFETCHT0), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 92155*/      /*Scope*/ 20, /*->92176*/
/* 92156*/        OPC_CheckChild3Integer, 2, 
/* 92158*/        OPC_CheckChild4Integer, 1, 
/* 92160*/        OPC_CheckPatternPredicate, 68, // (Subtarget->hasSSEPrefetch())
/* 92162*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92165*/        OPC_EmitMergeInputChains1_0,
/* 92166*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PREFETCHT1), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 92176*/      /*Scope*/ 20, /*->92197*/
/* 92177*/        OPC_CheckChild3Integer, 1, 
/* 92179*/        OPC_CheckChild4Integer, 1, 
/* 92181*/        OPC_CheckPatternPredicate, 68, // (Subtarget->hasSSEPrefetch())
/* 92183*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92186*/        OPC_EmitMergeInputChains1_0,
/* 92187*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PREFETCHT2), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 92197*/      /*Scope*/ 20, /*->92218*/
/* 92198*/        OPC_CheckChild3Integer, 0, 
/* 92200*/        OPC_CheckChild4Integer, 1, 
/* 92202*/        OPC_CheckPatternPredicate, 68, // (Subtarget->hasSSEPrefetch())
/* 92204*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92207*/        OPC_EmitMergeInputChains1_0,
/* 92208*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PREFETCHNTA), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/* 92218*/      /*Scope*/ 23, /*->92242*/
/* 92219*/        OPC_MoveChild3,
/* 92220*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92223*/        OPC_MoveParent,
/* 92224*/        OPC_CheckChild4Integer, 1, 
/* 92226*/        OPC_CheckPatternPredicate, 69, // (Subtarget->has3DNow()) && (!Subtarget->hasSSEPrefetch())
/* 92228*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$addr #2 #3 #4 #5 #6
/* 92231*/        OPC_EmitMergeInputChains1_0,
/* 92232*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PREFETCH), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (prefetch addr:{ *:[iPTR] }:$addr, (imm:{ *:[i32] }), (imm:{ *:[i32] }), 1:{ *:[i32] }) - Complexity = 32
                  // Dst: (PREFETCH addr:{ *:[iPTR] }:$addr)
/* 92242*/      0, /*End of Scope*/
/* 92243*/    0, /*End of Scope*/
/* 92244*/  /*SwitchOpcode*/ 76|128,15/*1996*/, TARGET_VAL(ISD::INTRINSIC_VOID),// ->94244
/* 92248*/    OPC_RecordNode, // #0 = 'intrinsic_void' chained node
/* 92249*/    OPC_Scope, 70, /*->92321*/ // 79 children in Scope
/* 92251*/      OPC_CheckChild1Integer, 112|128,48/*6256*/, 
/* 92254*/      OPC_RecordChild2, // #1 = $src0
/* 92255*/      OPC_Scope, 42, /*->92299*/ // 2 children in Scope
/* 92257*/        OPC_MoveChild3,
/* 92258*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 92261*/        OPC_RecordMemRef,
/* 92262*/        OPC_RecordNode, // #2 = 'ld' chained node
/* 92263*/        OPC_CheckFoldableChainNode,
/* 92264*/        OPC_RecordChild1, // #3 = $src1
/* 92265*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 92267*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 92269*/        OPC_MoveParent,
/* 92270*/        OPC_RecordChild4, // #4 = $cntl
/* 92271*/        OPC_MoveChild4,
/* 92272*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92275*/        OPC_MoveParent,
/* 92276*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/* 92278*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/* 92281*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/* 92285*/        OPC_EmitConvertToTarget, 4,
/* 92287*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LWPVAL32rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (intrinsic_void 6256:{ *:[iPTR] }, GR32:{ *:[i32] }:$src0, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:{ *:[i32] }):$cntl) - Complexity = 33
                  // Dst: (LWPVAL32rmi GR32:{ *:[i32] }:$src0, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$cntl)
/* 92299*/      /*Scope*/ 20, /*->92320*/
/* 92300*/        OPC_RecordChild3, // #2 = $src1
/* 92301*/        OPC_RecordChild4, // #3 = $cntl
/* 92302*/        OPC_MoveChild4,
/* 92303*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92306*/        OPC_MoveParent,
/* 92307*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/* 92309*/        OPC_EmitMergeInputChains1_0,
/* 92310*/        OPC_EmitConvertToTarget, 3,
/* 92312*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LWPVAL32rri), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 2, 4, 
                  // Src: (intrinsic_void 6256:{ *:[iPTR] }, GR32:{ *:[i32] }:$src0, GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$cntl) - Complexity = 11
                  // Dst: (LWPVAL32rri GR32:{ *:[i32] }:$src0, GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$cntl)
/* 92320*/      0, /*End of Scope*/
/* 92321*/    /*Scope*/ 70, /*->92392*/
/* 92322*/      OPC_CheckChild1Integer, 113|128,48/*6257*/, 
/* 92325*/      OPC_RecordChild2, // #1 = $src0
/* 92326*/      OPC_Scope, 42, /*->92370*/ // 2 children in Scope
/* 92328*/        OPC_MoveChild3,
/* 92329*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 92332*/        OPC_RecordMemRef,
/* 92333*/        OPC_RecordNode, // #2 = 'ld' chained node
/* 92334*/        OPC_CheckFoldableChainNode,
/* 92335*/        OPC_RecordChild1, // #3 = $src1
/* 92336*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 92338*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 92340*/        OPC_MoveParent,
/* 92341*/        OPC_RecordChild4, // #4 = $cntl
/* 92342*/        OPC_MoveChild4,
/* 92343*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92346*/        OPC_MoveParent,
/* 92347*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/* 92349*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/* 92352*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/* 92356*/        OPC_EmitConvertToTarget, 4,
/* 92358*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LWPVAL64rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (intrinsic_void 6257:{ *:[iPTR] }, GR64:{ *:[i64] }:$src0, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:{ *:[i32] }):$cntl) - Complexity = 33
                  // Dst: (LWPVAL64rmi GR64:{ *:[i64] }:$src0, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$cntl)
/* 92370*/      /*Scope*/ 20, /*->92391*/
/* 92371*/        OPC_RecordChild3, // #2 = $src1
/* 92372*/        OPC_RecordChild4, // #3 = $cntl
/* 92373*/        OPC_MoveChild4,
/* 92374*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92377*/        OPC_MoveParent,
/* 92378*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/* 92380*/        OPC_EmitMergeInputChains1_0,
/* 92381*/        OPC_EmitConvertToTarget, 3,
/* 92383*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LWPVAL64rri), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 2, 4, 
                  // Src: (intrinsic_void 6257:{ *:[iPTR] }, GR64:{ *:[i64] }:$src0, GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$cntl) - Complexity = 11
                  // Dst: (LWPVAL64rri GR64:{ *:[i64] }:$src0, GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$cntl)
/* 92391*/      0, /*End of Scope*/
/* 92392*/    /*Scope*/ 49, /*->92442*/
/* 92393*/      OPC_CheckChild1Integer, 63|128,49/*6335*/, 
/* 92396*/      OPC_Scope, 32, /*->92430*/ // 2 children in Scope
/* 92398*/        OPC_MoveChild2,
/* 92399*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 92402*/        OPC_RecordMemRef,
/* 92403*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 92404*/        OPC_CheckFoldableChainNode,
/* 92405*/        OPC_RecordChild1, // #2 = $dst
/* 92406*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 92408*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 92410*/        OPC_MoveParent,
/* 92411*/        OPC_CheckPatternPredicate, 71, // (Subtarget->hasPTWRITE())
/* 92413*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 92416*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 92420*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PTWRITEm), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 6335:{ *:[iPTR] }, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 30
                  // Dst: (PTWRITEm addr:{ *:[iPTR] }:$dst)
/* 92430*/      /*Scope*/ 10, /*->92441*/
/* 92431*/        OPC_RecordChild2, // #1 = $dst
/* 92432*/        OPC_CheckPatternPredicate, 71, // (Subtarget->hasPTWRITE())
/* 92434*/        OPC_EmitMergeInputChains1_0,
/* 92435*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PTWRITEr), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 6335:{ *:[iPTR] }, GR32:{ *:[i32] }:$dst) - Complexity = 8
                  // Dst: (PTWRITEr GR32:{ *:[i32] }:$dst)
/* 92441*/      0, /*End of Scope*/
/* 92442*/    /*Scope*/ 49, /*->92492*/
/* 92443*/      OPC_CheckChild1Integer, 64|128,49/*6336*/, 
/* 92446*/      OPC_Scope, 32, /*->92480*/ // 2 children in Scope
/* 92448*/        OPC_MoveChild2,
/* 92449*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 92452*/        OPC_RecordMemRef,
/* 92453*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 92454*/        OPC_CheckFoldableChainNode,
/* 92455*/        OPC_RecordChild1, // #2 = $dst
/* 92456*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 92458*/        OPC_CheckPredicate, 9, // Predicate_load
/* 92460*/        OPC_MoveParent,
/* 92461*/        OPC_CheckPatternPredicate, 72, // (Subtarget->hasPTWRITE()) && (Subtarget->is64Bit())
/* 92463*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 92466*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 92470*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PTWRITE64m), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 6336:{ *:[iPTR] }, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PTWRITE64m addr:{ *:[iPTR] }:$dst)
/* 92480*/      /*Scope*/ 10, /*->92491*/
/* 92481*/        OPC_RecordChild2, // #1 = $dst
/* 92482*/        OPC_CheckPatternPredicate, 72, // (Subtarget->hasPTWRITE()) && (Subtarget->is64Bit())
/* 92484*/        OPC_EmitMergeInputChains1_0,
/* 92485*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PTWRITE64r), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 6336:{ *:[iPTR] }, GR64:{ *:[i64] }:$dst) - Complexity = 8
                  // Dst: (PTWRITE64r GR64:{ *:[i64] }:$dst)
/* 92491*/      0, /*End of Scope*/
/* 92492*/    /*Scope*/ 22, /*->92515*/
/* 92493*/      OPC_CheckChild1Integer, 95|128,48/*6239*/, 
/* 92496*/      OPC_RecordChild2, // #1 = $dst
/* 92497*/      OPC_RecordChild3, // #2 = $src
/* 92498*/      OPC_CheckPatternPredicate, 73, // (Subtarget->hasMOVDIRI())
/* 92500*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 92503*/      OPC_EmitMergeInputChains1_0,
/* 92504*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MOVDIRI32), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 6239:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src) - Complexity = 26
                // Dst: (MOVDIRI32 addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 92515*/    /*Scope*/ 22, /*->92538*/
/* 92516*/      OPC_CheckChild1Integer, 96|128,48/*6240*/, 
/* 92519*/      OPC_RecordChild2, // #1 = $dst
/* 92520*/      OPC_RecordChild3, // #2 = $src
/* 92521*/      OPC_CheckPatternPredicate, 74, // (Subtarget->hasMOVDIRI()) && (Subtarget->is64Bit())
/* 92523*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 92526*/      OPC_EmitMergeInputChains1_0,
/* 92527*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MOVDIRI64), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 6240:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src) - Complexity = 26
                // Dst: (MOVDIRI64 addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 92538*/    /*Scope*/ 48, /*->92587*/
/* 92539*/      OPC_CheckChild1Integer, 58|128,49/*6330*/, 
/* 92542*/      OPC_RecordChild2, // #1 = $dst
/* 92543*/      OPC_Scope, 20, /*->92565*/ // 2 children in Scope
/* 92545*/        OPC_CheckChild2Type, MVT::i32,
/* 92547*/        OPC_RecordChild3, // #2 = $src
/* 92548*/        OPC_CheckPatternPredicate, 75, // (Subtarget->hasMOVDIR64B())
/* 92550*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 92553*/        OPC_EmitMergeInputChains1_0,
/* 92554*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOVDIR64B32), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 6330:{ *:[iPTR] }, GR32:{ *:[i32] }:$dst, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (MOVDIR64B32 GR32:{ *:[i32] }:$dst, addr:{ *:[iPTR] }:$src)
/* 92565*/      /*Scope*/ 20, /*->92586*/
/* 92566*/        OPC_CheckChild2Type, MVT::i64,
/* 92568*/        OPC_RecordChild3, // #2 = $src
/* 92569*/        OPC_CheckPatternPredicate, 76, // (Subtarget->hasMOVDIR64B()) && (Subtarget->is64Bit())
/* 92571*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 92574*/        OPC_EmitMergeInputChains1_0,
/* 92575*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOVDIR64B64), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 6330:{ *:[iPTR] }, GR64:{ *:[i64] }:$dst, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (MOVDIR64B64 GR64:{ *:[i64] }:$dst, addr:{ *:[iPTR] }:$src)
/* 92586*/      0, /*End of Scope*/
/* 92587*/    /*Scope*/ 20, /*->92608*/
/* 92588*/      OPC_CheckChild1Integer, 91|128,48/*6235*/, 
/* 92591*/      OPC_RecordChild2, // #1 = $src
/* 92592*/      OPC_CheckPatternPredicate, 77, // (Subtarget->hasCLFLUSHOPT())
/* 92594*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92597*/      OPC_EmitMergeInputChains1_0,
/* 92598*/      OPC_MorphNodeTo0, TARGET_VAL(X86::CLFLUSHOPT), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 6235:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (CLFLUSHOPT addr:{ *:[iPTR] }:$src)
/* 92608*/    /*Scope*/ 20, /*->92629*/
/* 92609*/      OPC_CheckChild1Integer, 93|128,48/*6237*/, 
/* 92612*/      OPC_RecordChild2, // #1 = $src
/* 92613*/      OPC_CheckPatternPredicate, 78, // (Subtarget->hasCLWB())
/* 92615*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92618*/      OPC_EmitMergeInputChains1_0,
/* 92619*/      OPC_MorphNodeTo0, TARGET_VAL(X86::CLWB), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 6237:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (CLWB addr:{ *:[iPTR] }:$src)
/* 92629*/    /*Scope*/ 20, /*->92650*/
/* 92630*/      OPC_CheckChild1Integer, 90|128,48/*6234*/, 
/* 92633*/      OPC_RecordChild2, // #1 = $src
/* 92634*/      OPC_CheckPatternPredicate, 79, // (Subtarget->hasCLDEMOTE())
/* 92636*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92639*/      OPC_EmitMergeInputChains1_0,
/* 92640*/      OPC_MorphNodeTo0, TARGET_VAL(X86::CLDEMOTE), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 6234:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (CLDEMOTE addr:{ *:[iPTR] }:$src)
/* 92650*/    /*Scope*/ 20, /*->92671*/
/* 92651*/      OPC_CheckChild1Integer, 103|128,48/*6247*/, 
/* 92654*/      OPC_RecordChild2, // #1 = $dst
/* 92655*/      OPC_CheckPatternPredicate, 80, // (Subtarget->hasFXSR())
/* 92657*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 92660*/      OPC_EmitMergeInputChains1_0,
/* 92661*/      OPC_MorphNodeTo0, TARGET_VAL(X86::FXSAVE), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 6247:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (FXSAVE addr:{ *:[iPTR] }:$dst)
/* 92671*/    /*Scope*/ 20, /*->92692*/
/* 92672*/      OPC_CheckChild1Integer, 104|128,48/*6248*/, 
/* 92675*/      OPC_RecordChild2, // #1 = $dst
/* 92676*/      OPC_CheckPatternPredicate, 81, // (Subtarget->hasFXSR()) && (Subtarget->is64Bit())
/* 92678*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 92681*/      OPC_EmitMergeInputChains1_0,
/* 92682*/      OPC_MorphNodeTo0, TARGET_VAL(X86::FXSAVE64), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 6248:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (FXSAVE64 addr:{ *:[iPTR] }:$dst)
/* 92692*/    /*Scope*/ 20, /*->92713*/
/* 92693*/      OPC_CheckChild1Integer, 101|128,48/*6245*/, 
/* 92696*/      OPC_RecordChild2, // #1 = $src
/* 92697*/      OPC_CheckPatternPredicate, 80, // (Subtarget->hasFXSR())
/* 92699*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92702*/      OPC_EmitMergeInputChains1_0,
/* 92703*/      OPC_MorphNodeTo0, TARGET_VAL(X86::FXRSTOR), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 6245:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (FXRSTOR addr:{ *:[iPTR] }:$src)
/* 92713*/    /*Scope*/ 20, /*->92734*/
/* 92714*/      OPC_CheckChild1Integer, 102|128,48/*6246*/, 
/* 92717*/      OPC_RecordChild2, // #1 = $src
/* 92718*/      OPC_CheckPatternPredicate, 81, // (Subtarget->hasFXSR()) && (Subtarget->is64Bit())
/* 92720*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92723*/      OPC_EmitMergeInputChains1_0,
/* 92724*/      OPC_MorphNodeTo0, TARGET_VAL(X86::FXRSTOR64), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 6246:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (FXRSTOR64 addr:{ *:[iPTR] }:$src)
/* 92734*/    /*Scope*/ 20, /*->92755*/
/* 92735*/      OPC_CheckChild1Integer, 6|128,50/*6406*/, 
/* 92738*/      OPC_RecordChild2, // #1 = $src
/* 92739*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasSSE2())
/* 92741*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92744*/      OPC_EmitMergeInputChains1_0,
/* 92745*/      OPC_MorphNodeTo0, TARGET_VAL(X86::CLFLUSH), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 6406:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (CLFLUSH addr:{ *:[iPTR] }:$src)
/* 92755*/    /*Scope*/ 38, /*->92794*/
/* 92756*/      OPC_CheckChild1Integer, 115|128,49/*6387*/, 
/* 92759*/      OPC_RecordChild2, // #1 = $src
/* 92760*/      OPC_Scope, 16, /*->92778*/ // 2 children in Scope
/* 92762*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 92764*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92767*/        OPC_EmitMergeInputChains1_0,
/* 92768*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VLDMXCSR), 0|OPFL_Chain,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_void 6387:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (VLDMXCSR addr:{ *:[iPTR] }:$src)
/* 92778*/      /*Scope*/ 14, /*->92793*/
/* 92779*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 92782*/        OPC_EmitMergeInputChains1_0,
/* 92783*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LDMXCSR), 0|OPFL_Chain,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_void 6387:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (LDMXCSR addr:{ *:[iPTR] }:$src)
/* 92793*/      0, /*End of Scope*/
/* 92794*/    /*Scope*/ 38, /*->92833*/
/* 92795*/      OPC_CheckChild1Integer, 127|128,49/*6399*/, 
/* 92798*/      OPC_RecordChild2, // #1 = $dst
/* 92799*/      OPC_Scope, 16, /*->92817*/ // 2 children in Scope
/* 92801*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 92803*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 92806*/        OPC_EmitMergeInputChains1_0,
/* 92807*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VSTMXCSR), 0|OPFL_Chain,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_void 6399:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                  // Dst: (VSTMXCSR addr:{ *:[iPTR] }:$dst)
/* 92817*/      /*Scope*/ 14, /*->92832*/
/* 92818*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 92821*/        OPC_EmitMergeInputChains1_0,
/* 92822*/        OPC_MorphNodeTo0, TARGET_VAL(X86::STMXCSR), 0|OPFL_Chain,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_void 6399:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                  // Dst: (STMXCSR addr:{ *:[iPTR] }:$dst)
/* 92832*/      0, /*End of Scope*/
/* 92833*/    /*Scope*/ 24, /*->92858*/
/* 92834*/      OPC_CheckChild1Integer, 76|128,42/*5452*/, 
/* 92837*/      OPC_RecordChild2, // #1 = $dst
/* 92838*/      OPC_RecordChild3, // #2 = $src1
/* 92839*/      OPC_RecordChild4, // #3 = $src2
/* 92840*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 92842*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 92845*/      OPC_EmitMergeInputChains1_0,
/* 92846*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 5452:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 26
                // Dst: (VMASKMOVPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/* 92858*/    /*Scope*/ 24, /*->92883*/
/* 92859*/      OPC_CheckChild1Integer, 77|128,42/*5453*/, 
/* 92862*/      OPC_RecordChild2, // #1 = $dst
/* 92863*/      OPC_RecordChild3, // #2 = $src1
/* 92864*/      OPC_RecordChild4, // #3 = $src2
/* 92865*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 92867*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 92870*/      OPC_EmitMergeInputChains1_0,
/* 92871*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSYmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 5453:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 26
                // Dst: (VMASKMOVPSYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/* 92883*/    /*Scope*/ 24, /*->92908*/
/* 92884*/      OPC_CheckChild1Integer, 74|128,42/*5450*/, 
/* 92887*/      OPC_RecordChild2, // #1 = $dst
/* 92888*/      OPC_RecordChild3, // #2 = $src1
/* 92889*/      OPC_RecordChild4, // #3 = $src2
/* 92890*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 92892*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 92895*/      OPC_EmitMergeInputChains1_0,
/* 92896*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 5450:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 26
                // Dst: (VMASKMOVPDmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/* 92908*/    /*Scope*/ 24, /*->92933*/
/* 92909*/      OPC_CheckChild1Integer, 75|128,42/*5451*/, 
/* 92912*/      OPC_RecordChild2, // #1 = $dst
/* 92913*/      OPC_RecordChild3, // #2 = $src1
/* 92914*/      OPC_RecordChild4, // #3 = $src2
/* 92915*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 92917*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 92920*/      OPC_EmitMergeInputChains1_0,
/* 92921*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDYmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 5451:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 26
                // Dst: (VMASKMOVPDYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4f64] }:$src2)
/* 92933*/    /*Scope*/ 24, /*->92958*/
/* 92934*/      OPC_CheckChild1Integer, 1|128,43/*5505*/, 
/* 92937*/      OPC_RecordChild2, // #1 = $dst
/* 92938*/      OPC_RecordChild3, // #2 = $src1
/* 92939*/      OPC_RecordChild4, // #3 = $src2
/* 92940*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 92942*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 92945*/      OPC_EmitMergeInputChains1_0,
/* 92946*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVDmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 5505:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 26
                // Dst: (VPMASKMOVDmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 92958*/    /*Scope*/ 24, /*->92983*/
/* 92959*/      OPC_CheckChild1Integer, 2|128,43/*5506*/, 
/* 92962*/      OPC_RecordChild2, // #1 = $dst
/* 92963*/      OPC_RecordChild3, // #2 = $src1
/* 92964*/      OPC_RecordChild4, // #3 = $src2
/* 92965*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 92967*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 92970*/      OPC_EmitMergeInputChains1_0,
/* 92971*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVDYmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 5506:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 26
                // Dst: (VPMASKMOVDYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/* 92983*/    /*Scope*/ 24, /*->93008*/
/* 92984*/      OPC_CheckChild1Integer, 3|128,43/*5507*/, 
/* 92987*/      OPC_RecordChild2, // #1 = $dst
/* 92988*/      OPC_RecordChild3, // #2 = $src1
/* 92989*/      OPC_RecordChild4, // #3 = $src2
/* 92990*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 92992*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 92995*/      OPC_EmitMergeInputChains1_0,
/* 92996*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVQmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 5507:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 26
                // Dst: (VPMASKMOVQmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 93008*/    /*Scope*/ 24, /*->93033*/
/* 93009*/      OPC_CheckChild1Integer, 4|128,43/*5508*/, 
/* 93012*/      OPC_RecordChild2, // #1 = $dst
/* 93013*/      OPC_RecordChild3, // #2 = $src1
/* 93014*/      OPC_RecordChild4, // #3 = $src2
/* 93015*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/* 93017*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93020*/      OPC_EmitMergeInputChains1_0,
/* 93021*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVQYmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 5508:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 26
                // Dst: (VPMASKMOVQYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 93033*/    /*Scope*/ 22, /*->93056*/
/* 93034*/      OPC_CheckChild1Integer, 117|128,48/*6261*/, 
/* 93037*/      OPC_RecordChild2, // #1 = $dst
/* 93038*/      OPC_RecordChild3, // #2 = $src
/* 93039*/      OPC_CheckPatternPredicate, 44, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 93041*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 93044*/      OPC_EmitMergeInputChains1_0,
/* 93045*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MMX_MOVNTQmr), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 6261:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR64:{ *:[x86mmx] }:$src) - Complexity = 26
                // Dst: (MMX_MOVNTQmr addr:{ *:[iPTR] }:$dst, VR64:{ *:[x86mmx] }:$src)
/* 93056*/    /*Scope*/ 18, /*->93075*/
/* 93057*/      OPC_CheckChild1Integer, 82|128,49/*6354*/, 
/* 93060*/      OPC_RecordChild2, // #1 = $src
/* 93061*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 93064*/      OPC_EmitMergeInputChains1_0,
/* 93065*/      OPC_MorphNodeTo0, TARGET_VAL(X86::RSTORSSP), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 6354:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (RSTORSSP addr:{ *:[iPTR] }:$src)
/* 93075*/    /*Scope*/ 20, /*->93096*/
/* 93076*/      OPC_CheckChild1Integer, 45|128,51/*6573*/, 
/* 93079*/      OPC_RecordChild2, // #1 = $src
/* 93080*/      OPC_RecordChild3, // #2 = $dst
/* 93081*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 93084*/      OPC_EmitMergeInputChains1_0,
/* 93085*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRSSD), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (intrinsic_void 6573:{ *:[iPTR] }, GR32:{ *:[i32] }:$src, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (WRSSD addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 93096*/    /*Scope*/ 20, /*->93117*/
/* 93097*/      OPC_CheckChild1Integer, 46|128,51/*6574*/, 
/* 93100*/      OPC_RecordChild2, // #1 = $src
/* 93101*/      OPC_RecordChild3, // #2 = $dst
/* 93102*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 93105*/      OPC_EmitMergeInputChains1_0,
/* 93106*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRSSQ), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (intrinsic_void 6574:{ *:[iPTR] }, GR64:{ *:[i64] }:$src, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (WRSSQ addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 93117*/    /*Scope*/ 20, /*->93138*/
/* 93118*/      OPC_CheckChild1Integer, 47|128,51/*6575*/, 
/* 93121*/      OPC_RecordChild2, // #1 = $src
/* 93122*/      OPC_RecordChild3, // #2 = $dst
/* 93123*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 93126*/      OPC_EmitMergeInputChains1_0,
/* 93127*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRUSSD), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (intrinsic_void 6575:{ *:[iPTR] }, GR32:{ *:[i32] }:$src, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (WRUSSD addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 93138*/    /*Scope*/ 20, /*->93159*/
/* 93139*/      OPC_CheckChild1Integer, 48|128,51/*6576*/, 
/* 93142*/      OPC_RecordChild2, // #1 = $src
/* 93143*/      OPC_RecordChild3, // #2 = $dst
/* 93144*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 93147*/      OPC_EmitMergeInputChains1_0,
/* 93148*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRUSSQ), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (intrinsic_void 6576:{ *:[iPTR] }, GR64:{ *:[i64] }:$src, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (WRUSSQ addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 93159*/    /*Scope*/ 18, /*->93178*/
/* 93160*/      OPC_CheckChild1Integer, 92|128,48/*6236*/, 
/* 93163*/      OPC_RecordChild2, // #1 = $src
/* 93164*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 93167*/      OPC_EmitMergeInputChains1_0,
/* 93168*/      OPC_MorphNodeTo0, TARGET_VAL(X86::CLRSSBSY), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 6236:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (CLRSSBSY addr:{ *:[iPTR] }:$src)
/* 93178*/    /*Scope*/ 28, /*->93207*/
/* 93179*/      OPC_CheckChild1Integer, 119|128,51/*6647*/, 
/* 93182*/      OPC_RecordChild2, // #1 = $dst
/* 93183*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93184*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93185*/      OPC_CheckPatternPredicate, 82, // (Subtarget->hasXSAVE())
/* 93187*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93190*/      OPC_EmitMergeInputChains1_0,
/* 93191*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93194*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93197*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVE), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6647:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVE addr:{ *:[iPTR] }:$dst)
/* 93207*/    /*Scope*/ 28, /*->93236*/
/* 93208*/      OPC_CheckChild1Integer, 120|128,51/*6648*/, 
/* 93211*/      OPC_RecordChild2, // #1 = $dst
/* 93212*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93213*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93214*/      OPC_CheckPatternPredicate, 83, // (Subtarget->hasXSAVE()) && (Subtarget->is64Bit())
/* 93216*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93219*/      OPC_EmitMergeInputChains1_0,
/* 93220*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93223*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93226*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVE64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6648:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVE64 addr:{ *:[iPTR] }:$dst)
/* 93236*/    /*Scope*/ 28, /*->93265*/
/* 93237*/      OPC_CheckChild1Integer, 115|128,51/*6643*/, 
/* 93240*/      OPC_RecordChild2, // #1 = $dst
/* 93241*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93242*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93243*/      OPC_CheckPatternPredicate, 82, // (Subtarget->hasXSAVE())
/* 93245*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93248*/      OPC_EmitMergeInputChains1_0,
/* 93249*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93252*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93255*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XRSTOR), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6643:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XRSTOR addr:{ *:[iPTR] }:$dst)
/* 93265*/    /*Scope*/ 28, /*->93294*/
/* 93266*/      OPC_CheckChild1Integer, 116|128,51/*6644*/, 
/* 93269*/      OPC_RecordChild2, // #1 = $dst
/* 93270*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93271*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93272*/      OPC_CheckPatternPredicate, 83, // (Subtarget->hasXSAVE()) && (Subtarget->is64Bit())
/* 93274*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93277*/      OPC_EmitMergeInputChains1_0,
/* 93278*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93281*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93284*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XRSTOR64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6644:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XRSTOR64 addr:{ *:[iPTR] }:$dst)
/* 93294*/    /*Scope*/ 28, /*->93323*/
/* 93295*/      OPC_CheckChild1Integer, 123|128,51/*6651*/, 
/* 93298*/      OPC_RecordChild2, // #1 = $dst
/* 93299*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93300*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93301*/      OPC_CheckPatternPredicate, 84, // (Subtarget->hasXSAVEOPT())
/* 93303*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93306*/      OPC_EmitMergeInputChains1_0,
/* 93307*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93310*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93313*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVEOPT), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6651:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVEOPT addr:{ *:[iPTR] }:$dst)
/* 93323*/    /*Scope*/ 28, /*->93352*/
/* 93324*/      OPC_CheckChild1Integer, 124|128,51/*6652*/, 
/* 93327*/      OPC_RecordChild2, // #1 = $dst
/* 93328*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93329*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93330*/      OPC_CheckPatternPredicate, 85, // (Subtarget->hasXSAVEOPT()) && (Subtarget->is64Bit())
/* 93332*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93335*/      OPC_EmitMergeInputChains1_0,
/* 93336*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93339*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93342*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVEOPT64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6652:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVEOPT64 addr:{ *:[iPTR] }:$dst)
/* 93352*/    /*Scope*/ 28, /*->93381*/
/* 93353*/      OPC_CheckChild1Integer, 121|128,51/*6649*/, 
/* 93356*/      OPC_RecordChild2, // #1 = $dst
/* 93357*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93358*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93359*/      OPC_CheckPatternPredicate, 86, // (Subtarget->hasXSAVEC())
/* 93361*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93364*/      OPC_EmitMergeInputChains1_0,
/* 93365*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93368*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93371*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVEC), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6649:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVEC addr:{ *:[iPTR] }:$dst)
/* 93381*/    /*Scope*/ 28, /*->93410*/
/* 93382*/      OPC_CheckChild1Integer, 122|128,51/*6650*/, 
/* 93385*/      OPC_RecordChild2, // #1 = $dst
/* 93386*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93387*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93388*/      OPC_CheckPatternPredicate, 87, // (Subtarget->hasXSAVEC()) && (Subtarget->is64Bit())
/* 93390*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93393*/      OPC_EmitMergeInputChains1_0,
/* 93394*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93397*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93400*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVEC64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6650:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVEC64 addr:{ *:[iPTR] }:$dst)
/* 93410*/    /*Scope*/ 28, /*->93439*/
/* 93411*/      OPC_CheckChild1Integer, 125|128,51/*6653*/, 
/* 93414*/      OPC_RecordChild2, // #1 = $dst
/* 93415*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93416*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93417*/      OPC_CheckPatternPredicate, 88, // (Subtarget->hasXSAVES())
/* 93419*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93422*/      OPC_EmitMergeInputChains1_0,
/* 93423*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93426*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93429*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVES), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6653:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVES addr:{ *:[iPTR] }:$dst)
/* 93439*/    /*Scope*/ 28, /*->93468*/
/* 93440*/      OPC_CheckChild1Integer, 126|128,51/*6654*/, 
/* 93443*/      OPC_RecordChild2, // #1 = $dst
/* 93444*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93445*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93446*/      OPC_CheckPatternPredicate, 83, // (Subtarget->hasXSAVE()) && (Subtarget->is64Bit())
/* 93448*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93451*/      OPC_EmitMergeInputChains1_0,
/* 93452*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93455*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93458*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVES64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6654:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVES64 addr:{ *:[iPTR] }:$dst)
/* 93468*/    /*Scope*/ 28, /*->93497*/
/* 93469*/      OPC_CheckChild1Integer, 117|128,51/*6645*/, 
/* 93472*/      OPC_RecordChild2, // #1 = $dst
/* 93473*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93474*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93475*/      OPC_CheckPatternPredicate, 88, // (Subtarget->hasXSAVES())
/* 93477*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93480*/      OPC_EmitMergeInputChains1_0,
/* 93481*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93484*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93487*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XRSTORS), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6645:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XRSTORS addr:{ *:[iPTR] }:$dst)
/* 93497*/    /*Scope*/ 28, /*->93526*/
/* 93498*/      OPC_CheckChild1Integer, 118|128,51/*6646*/, 
/* 93501*/      OPC_RecordChild2, // #1 = $dst
/* 93502*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 93503*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 93504*/      OPC_CheckPatternPredicate, 89, // (Subtarget->hasXSAVES()) && (Subtarget->is64Bit())
/* 93506*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 93509*/      OPC_EmitMergeInputChains1_0,
/* 93510*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 93513*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 93516*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XRSTORS64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 6646:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XRSTORS64 addr:{ *:[iPTR] }:$dst)
/* 93526*/    /*Scope*/ 65, /*->93592*/
/* 93527*/      OPC_CheckChild1Integer, 108|128,48/*6252*/, 
/* 93530*/      OPC_RecordChild2, // #1 = $src1
/* 93531*/      OPC_RecordChild3, // #2 = $src2
/* 93532*/      OPC_Scope, 17, /*->93551*/ // 2 children in Scope
/* 93534*/        OPC_CheckPatternPredicate, 90, // (Subtarget->hasINVPCID()) && (!Subtarget->is64Bit())
/* 93536*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93539*/        OPC_EmitMergeInputChains1_0,
/* 93540*/        OPC_MorphNodeTo0, TARGET_VAL(X86::INVPCID32), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 6252:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2) - Complexity = 26
                  // Dst: (INVPCID32 GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93551*/      /*Scope*/ 39, /*->93591*/
/* 93552*/        OPC_CheckPatternPredicate, 91, // (Subtarget->hasINVPCID()) && (Subtarget->is64Bit())
/* 93554*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93557*/        OPC_EmitMergeInputChains1_0,
/* 93558*/        OPC_EmitInteger, MVT::i64, 0, 
/* 93561*/        OPC_EmitNode1, TARGET_VAL(X86::MOV32rr), 0,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #9
/* 93568*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 93571*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 93580*/        OPC_MorphNodeTo0, TARGET_VAL(X86::INVPCID64), 0|OPFL_Chain,
                      6/*#Ops*/, 11, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 6252:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2) - Complexity = 26
                  // Dst: (INVPCID64 (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1), sub_32bit:{ *:[i32] }), addr:{ *:[iPTR] }:$src2)
/* 93591*/      0, /*End of Scope*/
/* 93592*/    /*Scope*/ 24, /*->93617*/
/* 93593*/      OPC_CheckChild1Integer, 57|128,49/*6329*/, 
/* 93596*/      OPC_RecordChild2, // #1 = $src1
/* 93597*/      OPC_RecordChild3, // #2 = $src2
/* 93598*/      OPC_RecordChild4, // #3 = $src3
/* 93599*/      OPC_CheckPatternPredicate, 92, // (Subtarget->hasMWAITX())
/* 93601*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 93604*/      OPC_EmitMergeInputChains1_0,
/* 93605*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MONITORX), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 6329:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src1, GR32:{ *:[i32] }:$src2, GR32:{ *:[i32] }:$src3) - Complexity = 26
                // Dst: (MONITORX addr:{ *:[iPTR] }:$src1, GR32:{ *:[i32] }:$src2, GR32:{ *:[i32] }:$src3)
/* 93617*/    /*Scope*/ 20, /*->93638*/
/* 93618*/      OPC_CheckChild1Integer, 94|128,48/*6238*/, 
/* 93621*/      OPC_RecordChild2, // #1 = $src1
/* 93622*/      OPC_CheckPatternPredicate, 93, // (Subtarget->hasCLZERO())
/* 93624*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 93627*/      OPC_EmitMergeInputChains1_0,
/* 93628*/      OPC_MorphNodeTo0, TARGET_VAL(X86::CLZERO), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 6238:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src1) - Complexity = 26
                // Dst: (CLZERO addr:{ *:[iPTR] }:$src1)
/* 93638*/    /*Scope*/ 24, /*->93663*/
/* 93639*/      OPC_CheckChild1Integer, 79|128,50/*6479*/, 
/* 93642*/      OPC_RecordChild2, // #1 = $src1
/* 93643*/      OPC_RecordChild3, // #2 = $src2
/* 93644*/      OPC_RecordChild4, // #3 = $src3
/* 93645*/      OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/* 93647*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 93650*/      OPC_EmitMergeInputChains1_0,
/* 93651*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MONITOR), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 6479:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src1, GR32:{ *:[i32] }:$src2, GR32:{ *:[i32] }:$src3) - Complexity = 26
                // Dst: (MONITOR addr:{ *:[iPTR] }:$src1, GR32:{ *:[i32] }:$src2, GR32:{ *:[i32] }:$src3)
/* 93663*/    /*Scope*/ 30, /*->93694*/
/* 93664*/      OPC_CheckChild1Integer, 107|128,48/*6251*/, 
/* 93667*/      OPC_Scope, 8, /*->93677*/ // 2 children in Scope
/* 93669*/        OPC_CheckChild2Integer, 3, 
/* 93671*/        OPC_EmitMergeInputChains1_0,
/* 93672*/        OPC_MorphNodeTo0, TARGET_VAL(X86::INT3), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (intrinsic_void 6251:{ *:[iPTR] }, 3:{ *:[i8] }) - Complexity = 13
                  // Dst: (INT3)
/* 93677*/      /*Scope*/ 15, /*->93693*/
/* 93678*/        OPC_RecordChild2, // #1 = $trap
/* 93679*/        OPC_MoveChild2,
/* 93680*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 93683*/        OPC_MoveParent,
/* 93684*/        OPC_EmitMergeInputChains1_0,
/* 93685*/        OPC_EmitConvertToTarget, 1,
/* 93687*/        OPC_MorphNodeTo0, TARGET_VAL(X86::INT), 0|OPFL_Chain,
                      1/*#Ops*/, 2, 
                  // Src: (intrinsic_void 6251:{ *:[iPTR] }, (imm:{ *:[i8] }):$trap) - Complexity = 11
                  // Dst: (INT (imm:{ *:[i8] }):$trap)
/* 93693*/      0, /*End of Scope*/
/* 93694*/    /*Scope*/ 20, /*->93715*/
/* 93695*/      OPC_CheckChild1Integer, 49|128,51/*6577*/, 
/* 93698*/      OPC_RecordChild2, // #1 = $imm
/* 93699*/      OPC_MoveChild2,
/* 93700*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 93703*/      OPC_MoveParent,
/* 93704*/      OPC_CheckPatternPredicate, 95, // (Subtarget->hasRTM())
/* 93706*/      OPC_EmitMergeInputChains1_0,
/* 93707*/      OPC_EmitConvertToTarget, 1,
/* 93709*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XABORT), 0|OPFL_Chain,
                    1/*#Ops*/, 2, 
                // Src: (intrinsic_void 6577:{ *:[iPTR] }, (imm:{ *:[i8] }):$imm) - Complexity = 11
                // Dst: (XABORT (imm:{ *:[i8] }):$imm)
/* 93715*/    /*Scope*/ 30, /*->93746*/
/* 93716*/      OPC_CheckChild1Integer, 109|128,48/*6253*/, 
/* 93719*/      OPC_RecordChild2, // #1 = $src
/* 93720*/      OPC_Scope, 11, /*->93733*/ // 2 children in Scope
/* 93722*/        OPC_CheckChild2Type, MVT::i32,
/* 93724*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/* 93726*/        OPC_EmitMergeInputChains1_0,
/* 93727*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LLWPCB), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 6253:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                  // Dst: (LLWPCB GR32:{ *:[i32] }:$src)
/* 93733*/      /*Scope*/ 11, /*->93745*/
/* 93734*/        OPC_CheckChild2Type, MVT::i64,
/* 93736*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/* 93738*/        OPC_EmitMergeInputChains1_0,
/* 93739*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LLWPCB64), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 6253:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                  // Dst: (LLWPCB64 GR64:{ *:[i64] }:$src)
/* 93745*/      0, /*End of Scope*/
/* 93746*/    /*Scope*/ 23, /*->93770*/
/* 93747*/      OPC_CheckChild1Integer, 59|128,49/*6331*/, 
/* 93750*/      OPC_RecordChild2, // #1 = physreg input ECX
/* 93751*/      OPC_RecordChild3, // #2 = physreg input EAX
/* 93752*/      OPC_RecordChild4, // #3 = physreg input EBX
/* 93753*/      OPC_CheckPatternPredicate, 92, // (Subtarget->hasMWAITX())
/* 93755*/      OPC_EmitMergeInputChains1_0,
/* 93756*/      OPC_EmitCopyToReg, 1, X86::ECX,
/* 93759*/      OPC_EmitCopyToReg, 2, X86::EAX,
/* 93762*/      OPC_EmitCopyToReg, 3, X86::EBX,
/* 93765*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MWAITXrrr), 0|OPFL_Chain|OPFL_GlueInput,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6331:{ *:[iPTR] }, ECX:{ *:[i32] }, EAX:{ *:[i32] }, EBX:{ *:[i32] }) - Complexity = 8
                // Dst: (MWAITXrrr)
/* 93770*/    /*Scope*/ 42, /*->93813*/
/* 93771*/      OPC_CheckChild1Integer, 23|128,51/*6551*/, 
/* 93774*/      OPC_RecordChild2, // #1 = $src
/* 93775*/      OPC_Scope, 11, /*->93788*/ // 3 children in Scope
/* 93777*/        OPC_CheckChild2Type, MVT::i16,
/* 93779*/        OPC_CheckPatternPredicate, 96, // (Subtarget->hasWAITPKG()) && (!Subtarget->is64Bit())
/* 93781*/        OPC_EmitMergeInputChains1_0,
/* 93782*/        OPC_MorphNodeTo0, TARGET_VAL(X86::UMONITOR16), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 6551:{ *:[iPTR] }, GR16:{ *:[i16] }:$src) - Complexity = 8
                  // Dst: (UMONITOR16 GR16:{ *:[i16] }:$src)
/* 93788*/      /*Scope*/ 11, /*->93800*/
/* 93789*/        OPC_CheckChild2Type, MVT::i32,
/* 93791*/        OPC_CheckPatternPredicate, 97, // (Subtarget->hasWAITPKG())
/* 93793*/        OPC_EmitMergeInputChains1_0,
/* 93794*/        OPC_MorphNodeTo0, TARGET_VAL(X86::UMONITOR32), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 6551:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                  // Dst: (UMONITOR32 GR32:{ *:[i32] }:$src)
/* 93800*/      /*Scope*/ 11, /*->93812*/
/* 93801*/        OPC_CheckChild2Type, MVT::i64,
/* 93803*/        OPC_CheckPatternPredicate, 98, // (Subtarget->hasWAITPKG()) && (Subtarget->is64Bit())
/* 93805*/        OPC_EmitMergeInputChains1_0,
/* 93806*/        OPC_MorphNodeTo0, TARGET_VAL(X86::UMONITOR64), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 6551:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                  // Dst: (UMONITOR64 GR64:{ *:[i64] }:$src)
/* 93812*/      0, /*End of Scope*/
/* 93813*/    /*Scope*/ 9, /*->93823*/
/* 93814*/      OPC_CheckChild1Integer, 40|128,50/*6440*/, 
/* 93817*/      OPC_EmitMergeInputChains1_0,
/* 93818*/      OPC_MorphNodeTo0, TARGET_VAL(X86::PAUSE), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6440:{ *:[iPTR] }) - Complexity = 8
                // Dst: (PAUSE)
/* 93823*/    /*Scope*/ 11, /*->93835*/
/* 93824*/      OPC_CheckChild1Integer, 126|128,49/*6398*/, 
/* 93827*/      OPC_CheckPatternPredicate, 31, // (Subtarget->hasSSE1())
/* 93829*/      OPC_EmitMergeInputChains1_0,
/* 93830*/      OPC_MorphNodeTo0, TARGET_VAL(X86::SFENCE), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6398:{ *:[iPTR] }) - Complexity = 8
                // Dst: (SFENCE)
/* 93835*/    /*Scope*/ 11, /*->93847*/
/* 93836*/      OPC_CheckChild1Integer, 25|128,50/*6425*/, 
/* 93839*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasSSE2())
/* 93841*/      OPC_EmitMergeInputChains1_0,
/* 93842*/      OPC_MorphNodeTo0, TARGET_VAL(X86::LFENCE), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6425:{ *:[iPTR] }) - Complexity = 8
                // Dst: (LFENCE)
/* 93847*/    /*Scope*/ 11, /*->93859*/
/* 93848*/      OPC_CheckChild1Integer, 29|128,50/*6429*/, 
/* 93851*/      OPC_CheckPatternPredicate, 99, // (Subtarget->hasMFence())
/* 93853*/      OPC_EmitMergeInputChains1_0,
/* 93854*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MFENCE), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6429:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFENCE)
/* 93859*/    /*Scope*/ 74, /*->93934*/
/* 93860*/      OPC_CheckChild1Integer, 26|128,50/*6426*/, 
/* 93863*/      OPC_RecordChild2, // #1 = $src
/* 93864*/      OPC_RecordChild3, // #2 = $mask
/* 93865*/      OPC_RecordChild4, // #3 = physreg input EDI
/* 93866*/      OPC_Scope, 32, /*->93900*/ // 2 children in Scope
/* 93868*/        OPC_CheckChild4Type, MVT::i32,
/* 93870*/        OPC_Scope, 13, /*->93885*/ // 2 children in Scope
/* 93872*/          OPC_CheckPatternPredicate, 100, // (Subtarget->hasAVX()) && (!Subtarget->is64Bit())
/* 93874*/          OPC_EmitMergeInputChains1_0,
/* 93875*/          OPC_EmitCopyToReg, 3, X86::EDI,
/* 93878*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVDQU), 0|OPFL_Chain|OPFL_GlueInput,
                        2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_void 6426:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask, EDI:{ *:[i32] }) - Complexity = 8
                    // Dst: (VMASKMOVDQU VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask)
/* 93885*/        /*Scope*/ 13, /*->93899*/
/* 93886*/          OPC_CheckPatternPredicate, 101, // (!Subtarget->is64Bit()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 93888*/          OPC_EmitMergeInputChains1_0,
/* 93889*/          OPC_EmitCopyToReg, 3, X86::EDI,
/* 93892*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MASKMOVDQU), 0|OPFL_Chain|OPFL_GlueInput,
                        2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_void 6426:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask, EDI:{ *:[i32] }) - Complexity = 8
                    // Dst: (MASKMOVDQU VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask)
/* 93899*/        0, /*End of Scope*/
/* 93900*/      /*Scope*/ 32, /*->93933*/
/* 93901*/        OPC_CheckChild4Type, MVT::i64,
/* 93903*/        OPC_Scope, 13, /*->93918*/ // 2 children in Scope
/* 93905*/          OPC_CheckPatternPredicate, 102, // (Subtarget->hasAVX()) && (Subtarget->is64Bit())
/* 93907*/          OPC_EmitMergeInputChains1_0,
/* 93908*/          OPC_EmitCopyToReg, 3, X86::RDI,
/* 93911*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVDQU64), 0|OPFL_Chain|OPFL_GlueInput,
                        2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_void 6426:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask, RDI:{ *:[i64] }) - Complexity = 8
                    // Dst: (VMASKMOVDQU64 VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask)
/* 93918*/        /*Scope*/ 13, /*->93932*/
/* 93919*/          OPC_CheckPatternPredicate, 103, // (Subtarget->is64Bit()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 93921*/          OPC_EmitMergeInputChains1_0,
/* 93922*/          OPC_EmitCopyToReg, 3, X86::RDI,
/* 93925*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MASKMOVDQU64), 0|OPFL_Chain|OPFL_GlueInput,
                        2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_void 6426:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask, RDI:{ *:[i64] }) - Complexity = 8
                    // Dst: (MASKMOVDQU64 VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask)
/* 93932*/        0, /*End of Scope*/
/* 93933*/      0, /*End of Scope*/
/* 93934*/    /*Scope*/ 19, /*->93954*/
/* 93935*/      OPC_CheckChild1Integer, 80|128,50/*6480*/, 
/* 93938*/      OPC_RecordChild2, // #1 = physreg input ECX
/* 93939*/      OPC_RecordChild3, // #2 = physreg input EAX
/* 93940*/      OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/* 93942*/      OPC_EmitMergeInputChains1_0,
/* 93943*/      OPC_EmitCopyToReg, 1, X86::ECX,
/* 93946*/      OPC_EmitCopyToReg, 2, X86::EAX,
/* 93949*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MWAITrr), 0|OPFL_Chain|OPFL_GlueInput,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6480:{ *:[iPTR] }, ECX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 8
                // Dst: (MWAITrr)
/* 93954*/    /*Scope*/ 11, /*->93966*/
/* 93955*/      OPC_CheckChild1Integer, 107|128,42/*5483*/, 
/* 93958*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 93960*/      OPC_EmitMergeInputChains1_0,
/* 93961*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VZEROALL), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 5483:{ *:[iPTR] }) - Complexity = 8
                // Dst: (VZEROALL)
/* 93966*/    /*Scope*/ 11, /*->93978*/
/* 93967*/      OPC_CheckChild1Integer, 108|128,42/*5484*/, 
/* 93970*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/* 93972*/      OPC_EmitMergeInputChains1_0,
/* 93973*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VZEROUPPER), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 5484:{ *:[iPTR] }) - Complexity = 8
                // Dst: (VZEROUPPER)
/* 93978*/    /*Scope*/ 11, /*->93990*/
/* 93979*/      OPC_CheckChild1Integer, 114|128,48/*6258*/, 
/* 93982*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/* 93984*/      OPC_EmitMergeInputChains1_0,
/* 93985*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MMX_EMMS), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6258:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MMX_EMMS)
/* 93990*/    /*Scope*/ 40, /*->94031*/
/* 93991*/      OPC_CheckChild1Integer, 116|128,48/*6260*/, 
/* 93994*/      OPC_RecordChild2, // #1 = $src
/* 93995*/      OPC_RecordChild3, // #2 = $mask
/* 93996*/      OPC_RecordChild4, // #3 = physreg input EDI
/* 93997*/      OPC_Scope, 15, /*->94014*/ // 2 children in Scope
/* 93999*/        OPC_CheckChild4Type, MVT::i32,
/* 94001*/        OPC_CheckPatternPredicate, 104, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1()) && (!Subtarget->is64Bit())
/* 94003*/        OPC_EmitMergeInputChains1_0,
/* 94004*/        OPC_EmitCopyToReg, 3, X86::EDI,
/* 94007*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MMX_MASKMOVQ), 0|OPFL_Chain|OPFL_GlueInput,
                      2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_void 6260:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src, VR64:{ *:[x86mmx] }:$mask, EDI:{ *:[i32] }) - Complexity = 8
                  // Dst: (MMX_MASKMOVQ VR64:{ *:[x86mmx] }:$src, VR64:{ *:[x86mmx] }:$mask)
/* 94014*/      /*Scope*/ 15, /*->94030*/
/* 94015*/        OPC_CheckChild4Type, MVT::i64,
/* 94017*/        OPC_CheckPatternPredicate, 105, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1()) && (Subtarget->is64Bit())
/* 94019*/        OPC_EmitMergeInputChains1_0,
/* 94020*/        OPC_EmitCopyToReg, 3, X86::RDI,
/* 94023*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MMX_MASKMOVQ64), 0|OPFL_Chain|OPFL_GlueInput,
                      2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_void 6260:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src, VR64:{ *:[x86mmx] }:$mask, RDI:{ *:[i64] }) - Complexity = 8
                  // Dst: (MMX_MASKMOVQ64 VR64:{ *:[x86mmx] }:$src, VR64:{ *:[x86mmx] }:$mask)
/* 94030*/      0, /*End of Scope*/
/* 94031*/    /*Scope*/ 11, /*->94043*/
/* 94032*/      OPC_CheckChild1Integer, 115|128,48/*6259*/, 
/* 94035*/      OPC_CheckPatternPredicate, 48, // (Subtarget->has3DNow())
/* 94037*/      OPC_EmitMergeInputChains1_0,
/* 94038*/      OPC_MorphNodeTo0, TARGET_VAL(X86::FEMMS), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6259:{ *:[iPTR] }) - Complexity = 8
                // Dst: (FEMMS)
/* 94043*/    /*Scope*/ 11, /*->94055*/
/* 94044*/      OPC_CheckChild1Integer, 51|128,51/*6579*/, 
/* 94047*/      OPC_CheckPatternPredicate, 95, // (Subtarget->hasRTM())
/* 94049*/      OPC_EmitMergeInputChains1_0,
/* 94050*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XEND), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6579:{ *:[iPTR] }) - Complexity = 8
                // Dst: (XEND)
/* 94055*/    /*Scope*/ 9, /*->94065*/
/* 94056*/      OPC_CheckChild1Integer, 38|128,51/*6566*/, 
/* 94059*/      OPC_EmitMergeInputChains1_0,
/* 94060*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WBINVD), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6566:{ *:[iPTR] }) - Complexity = 8
                // Dst: (WBINVD)
/* 94065*/    /*Scope*/ 11, /*->94077*/
/* 94066*/      OPC_CheckChild1Integer, 39|128,51/*6567*/, 
/* 94069*/      OPC_CheckPatternPredicate, 106, // (Subtarget->hasWBNOINVD())
/* 94071*/      OPC_EmitMergeInputChains1_0,
/* 94072*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WBNOINVD), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6567:{ *:[iPTR] }) - Complexity = 8
                // Dst: (WBNOINVD)
/* 94077*/    /*Scope*/ 11, /*->94089*/
/* 94078*/      OPC_CheckChild1Integer, 105|128,48/*6249*/, 
/* 94081*/      OPC_RecordChild2, // #1 = $src
/* 94082*/      OPC_EmitMergeInputChains1_0,
/* 94083*/      OPC_MorphNodeTo0, TARGET_VAL(X86::INCSSPD), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 6249:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (INCSSPD GR32:{ *:[i32] }:$src)
/* 94089*/    /*Scope*/ 11, /*->94101*/
/* 94090*/      OPC_CheckChild1Integer, 106|128,48/*6250*/, 
/* 94093*/      OPC_RecordChild2, // #1 = $src
/* 94094*/      OPC_EmitMergeInputChains1_0,
/* 94095*/      OPC_MorphNodeTo0, TARGET_VAL(X86::INCSSPQ), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 6250:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                // Dst: (INCSSPQ GR64:{ *:[i64] }:$src)
/* 94101*/    /*Scope*/ 9, /*->94111*/
/* 94102*/      OPC_CheckChild1Integer, 83|128,49/*6355*/, 
/* 94105*/      OPC_EmitMergeInputChains1_0,
/* 94106*/      OPC_MorphNodeTo0, TARGET_VAL(X86::SAVEPREVSSP), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6355:{ *:[iPTR] }) - Complexity = 8
                // Dst: (SAVEPREVSSP)
/* 94111*/    /*Scope*/ 9, /*->94121*/
/* 94112*/      OPC_CheckChild1Integer, 88|128,49/*6360*/, 
/* 94115*/      OPC_EmitMergeInputChains1_0,
/* 94116*/      OPC_MorphNodeTo0, TARGET_VAL(X86::SETSSBSY), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6360:{ *:[iPTR] }) - Complexity = 8
                // Dst: (SETSSBSY)
/* 94121*/    /*Scope*/ 23, /*->94145*/
/* 94122*/      OPC_CheckChild1Integer, 127|128,51/*6655*/, 
/* 94125*/      OPC_RecordChild2, // #1 = physreg input ECX
/* 94126*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 94127*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 94128*/      OPC_CheckPatternPredicate, 82, // (Subtarget->hasXSAVE())
/* 94130*/      OPC_EmitMergeInputChains1_0,
/* 94131*/      OPC_EmitCopyToReg, 1, X86::ECX,
/* 94134*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 94137*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 94140*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSETBV), 0|OPFL_Chain|OPFL_GlueInput,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6655:{ *:[iPTR] }, ECX:{ *:[i32] }, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 8
                // Dst: (XSETBV)
/* 94145*/    /*Scope*/ 13, /*->94159*/
/* 94146*/      OPC_CheckChild1Integer, 40|128,51/*6568*/, 
/* 94149*/      OPC_RecordChild2, // #1 = $src
/* 94150*/      OPC_CheckPatternPredicate, 107, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/* 94152*/      OPC_EmitMergeInputChains1_0,
/* 94153*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRFSBASE), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 6568:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (WRFSBASE GR32:{ *:[i32] }:$src)
/* 94159*/    /*Scope*/ 13, /*->94173*/
/* 94160*/      OPC_CheckChild1Integer, 41|128,51/*6569*/, 
/* 94163*/      OPC_RecordChild2, // #1 = $src
/* 94164*/      OPC_CheckPatternPredicate, 107, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/* 94166*/      OPC_EmitMergeInputChains1_0,
/* 94167*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRFSBASE64), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 6569:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                // Dst: (WRFSBASE64 GR64:{ *:[i64] }:$src)
/* 94173*/    /*Scope*/ 13, /*->94187*/
/* 94174*/      OPC_CheckChild1Integer, 42|128,51/*6570*/, 
/* 94177*/      OPC_RecordChild2, // #1 = $src
/* 94178*/      OPC_CheckPatternPredicate, 107, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/* 94180*/      OPC_EmitMergeInputChains1_0,
/* 94181*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRGSBASE), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 6570:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (WRGSBASE GR32:{ *:[i32] }:$src)
/* 94187*/    /*Scope*/ 13, /*->94201*/
/* 94188*/      OPC_CheckChild1Integer, 43|128,51/*6571*/, 
/* 94191*/      OPC_RecordChild2, // #1 = $src
/* 94192*/      OPC_CheckPatternPredicate, 107, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/* 94194*/      OPC_EmitMergeInputChains1_0,
/* 94195*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRGSBASE64), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 6571:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                // Dst: (WRGSBASE64 GR64:{ *:[i64] }:$src)
/* 94201*/    /*Scope*/ 14, /*->94216*/
/* 94202*/      OPC_CheckChild1Integer, 99|128,48/*6243*/, 
/* 94205*/      OPC_RecordChild2, // #1 = $src
/* 94206*/      OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/* 94208*/      OPC_EmitMergeInputChains1_0,
/* 94209*/      OPC_MorphNodeTo1, TARGET_VAL(X86::WRFLAGS32), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_void 6243:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (WRFLAGS32:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 94216*/    /*Scope*/ 14, /*->94231*/
/* 94217*/      OPC_CheckChild1Integer, 100|128,48/*6244*/, 
/* 94220*/      OPC_RecordChild2, // #1 = $src
/* 94221*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 94223*/      OPC_EmitMergeInputChains1_0,
/* 94224*/      OPC_MorphNodeTo1, TARGET_VAL(X86::WRFLAGS64), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_void 6244:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                // Dst: (WRFLAGS64:{ *:[i64] } GR64:{ *:[i64] }:$src)
/* 94231*/    /*Scope*/ 11, /*->94243*/
/* 94232*/      OPC_CheckChild1Integer, 44|128,51/*6572*/, 
/* 94235*/      OPC_RecordChild2, // #1 = $src
/* 94236*/      OPC_EmitMergeInputChains1_0,
/* 94237*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRPKRU), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 6572:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (WRPKRU GR32:{ *:[i32] }:$src)
/* 94243*/    0, /*End of Scope*/
/* 94244*/  /*SwitchOpcode*/ 84|128,11/*1492*/, TARGET_VAL(ISD::SRA),// ->95740
/* 94248*/    OPC_Scope, 88|128,1/*216*/, /*->94467*/ // 2 children in Scope
/* 94251*/      OPC_MoveChild0,
/* 94252*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 94255*/      OPC_RecordMemRef,
/* 94256*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 94257*/      OPC_CheckFoldableChainNode,
/* 94258*/      OPC_RecordChild1, // #1 = $src1
/* 94259*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 94261*/      OPC_Scope, 56, /*->94319*/ // 4 children in Scope
/* 94263*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 94265*/        OPC_MoveParent,
/* 94266*/        OPC_MoveChild1,
/* 94267*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 94270*/        OPC_RecordChild0, // #2 = $src2
/* 94271*/        OPC_MoveChild1,
/* 94272*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94275*/        OPC_CheckPredicate, 6, // Predicate_immShift32
/* 94277*/        OPC_MoveParent,
/* 94278*/        OPC_CheckType, MVT::i8,
/* 94280*/        OPC_MoveParent,
/* 94281*/        OPC_CheckType, MVT::i32,
/* 94283*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 94285*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 94288*/        OPC_EmitMergeInputChains1_0,
/* 94289*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #8
/* 94295*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 94298*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 94307*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SARX32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                  // Src: (sra:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 32
                  // Dst: (SARX32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 94319*/      /*Scope*/ 56, /*->94376*/
/* 94320*/        OPC_CheckPredicate, 9, // Predicate_load
/* 94322*/        OPC_MoveParent,
/* 94323*/        OPC_MoveChild1,
/* 94324*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 94327*/        OPC_RecordChild0, // #2 = $src2
/* 94328*/        OPC_MoveChild1,
/* 94329*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94332*/        OPC_CheckPredicate, 10, // Predicate_immShift64
/* 94334*/        OPC_MoveParent,
/* 94335*/        OPC_CheckType, MVT::i8,
/* 94337*/        OPC_MoveParent,
/* 94338*/        OPC_CheckType, MVT::i64,
/* 94340*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 94342*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 94345*/        OPC_EmitMergeInputChains1_0,
/* 94346*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #8
/* 94352*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 94355*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 94364*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SARX64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                  // Src: (sra:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 32
                  // Dst: (SARX64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 94376*/      /*Scope*/ 44, /*->94421*/
/* 94377*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 94379*/        OPC_MoveParent,
/* 94380*/        OPC_RecordChild1, // #2 = $src2
/* 94381*/        OPC_CheckChild1Type, MVT::i8,
/* 94383*/        OPC_CheckType, MVT::i32,
/* 94385*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 94387*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 94390*/        OPC_EmitMergeInputChains1_0,
/* 94391*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #8
/* 94397*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 94400*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 94409*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SARX32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                  // Src: (sra:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR8:{ *:[i8] }:$src2) - Complexity = 25
                  // Dst: (SARX32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 94421*/      /*Scope*/ 44, /*->94466*/
/* 94422*/        OPC_CheckPredicate, 9, // Predicate_load
/* 94424*/        OPC_MoveParent,
/* 94425*/        OPC_RecordChild1, // #2 = $src2
/* 94426*/        OPC_CheckChild1Type, MVT::i8,
/* 94428*/        OPC_CheckType, MVT::i64,
/* 94430*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 94432*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 94435*/        OPC_EmitMergeInputChains1_0,
/* 94436*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #8
/* 94442*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 94445*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 94454*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SARX64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                  // Src: (sra:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:{ *:[i8] }:$src2) - Complexity = 25
                  // Dst: (SARX64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 94466*/      0, /*End of Scope*/
/* 94467*/    /*Scope*/ 118|128,9/*1270*/, /*->95739*/
/* 94469*/      OPC_RecordChild0, // #0 = $src1
/* 94470*/      OPC_Scope, 25|128,1/*153*/, /*->94626*/ // 5 children in Scope
/* 94473*/        OPC_MoveChild1,
/* 94474*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 94477*/        OPC_RecordChild0, // #1 = $src2
/* 94478*/        OPC_MoveChild1,
/* 94479*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94482*/        OPC_Scope, 36, /*->94520*/ // 4 children in Scope
/* 94484*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/* 94486*/          OPC_MoveParent,
/* 94487*/          OPC_CheckType, MVT::i8,
/* 94489*/          OPC_MoveParent,
/* 94490*/          OPC_CheckType, MVT::i32,
/* 94492*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 94494*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 94500*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 94503*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 94512*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SARX32rr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 4, 
                    // Src: (sra:{ *:[i32] } GR32:{ *:[i32] }:$src1, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 11
                    // Dst: (SARX32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 94520*/        /*Scope*/ 36, /*->94557*/
/* 94521*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/* 94523*/          OPC_MoveParent,
/* 94524*/          OPC_CheckType, MVT::i8,
/* 94526*/          OPC_MoveParent,
/* 94527*/          OPC_CheckType, MVT::i64,
/* 94529*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 94531*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 94537*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 94540*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 94549*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SARX64rr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 4, 
                    // Src: (sra:{ *:[i64] } GR64:{ *:[i64] }:$src1, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 11
                    // Dst: (SARX64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 94557*/        /*Scope*/ 47, /*->94605*/
/* 94558*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/* 94560*/          OPC_MoveParent,
/* 94561*/          OPC_CheckType, MVT::i8,
/* 94563*/          OPC_MoveParent,
/* 94564*/          OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->94578
/* 94567*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 94570*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SAR8rCL), 0|OPFL_GlueInput,
                          MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (sra:{ *:[i8] } GR8:{ *:[i8] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                      // Dst: (SAR8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 94578*/          /*SwitchType*/ 11, MVT::i16,// ->94591
/* 94580*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 94583*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SAR16rCL), 0|OPFL_GlueInput,
                          MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (sra:{ *:[i16] } GR16:{ *:[i16] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                      // Dst: (SAR16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 94591*/          /*SwitchType*/ 11, MVT::i32,// ->94604
/* 94593*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 94596*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SAR32rCL), 0|OPFL_GlueInput,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (sra:{ *:[i32] } GR32:{ *:[i32] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                      // Dst: (SAR32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 94604*/          0, // EndSwitchType
/* 94605*/        /*Scope*/ 19, /*->94625*/
/* 94606*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/* 94608*/          OPC_MoveParent,
/* 94609*/          OPC_CheckType, MVT::i8,
/* 94611*/          OPC_MoveParent,
/* 94612*/          OPC_CheckType, MVT::i64,
/* 94614*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 94617*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SAR64rCL), 0|OPFL_GlueInput,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (sra:{ *:[i64] } GR64:{ *:[i64] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 10
                    // Dst: (SAR64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 94625*/        0, /*End of Scope*/
/* 94626*/      /*Scope*/ 46, /*->94673*/
/* 94627*/        OPC_CheckChild1Integer, 1, 
/* 94629*/        OPC_CheckChild1Type, MVT::i8,
/* 94631*/        OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->94642
/* 94634*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SAR8r1), 0,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (sra:{ *:[i8] } GR8:{ *:[i8] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (SAR8r1:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 94642*/        /*SwitchType*/ 8, MVT::i16,// ->94652
/* 94644*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SAR16r1), 0,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (sra:{ *:[i16] } GR16:{ *:[i16] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (SAR16r1:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 94652*/        /*SwitchType*/ 8, MVT::i32,// ->94662
/* 94654*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SAR32r1), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (sra:{ *:[i32] } GR32:{ *:[i32] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (SAR32r1:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 94662*/        /*SwitchType*/ 8, MVT::i64,// ->94672
/* 94664*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SAR64r1), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (sra:{ *:[i64] } GR64:{ *:[i64] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (SAR64r1:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 94672*/        0, // EndSwitchType
/* 94673*/      /*Scope*/ 58|128,1/*186*/, /*->94861*/
/* 94675*/        OPC_RecordChild1, // #1 = $src2
/* 94676*/        OPC_Scope, 61, /*->94739*/ // 2 children in Scope
/* 94678*/          OPC_MoveChild1,
/* 94679*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94682*/          OPC_CheckType, MVT::i8,
/* 94684*/          OPC_MoveParent,
/* 94685*/          OPC_SwitchType /*4 cases */, 11, MVT::i8,// ->94699
/* 94688*/            OPC_EmitConvertToTarget, 1,
/* 94690*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SAR8ri), 0,
                          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)
/* 94699*/          /*SwitchType*/ 11, MVT::i16,// ->94712
/* 94701*/            OPC_EmitConvertToTarget, 1,
/* 94703*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SAR16ri), 0,
                          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)
/* 94712*/          /*SwitchType*/ 11, MVT::i32,// ->94725
/* 94714*/            OPC_EmitConvertToTarget, 1,
/* 94716*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SAR32ri), 0,
                          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)
/* 94725*/          /*SwitchType*/ 11, MVT::i64,// ->94738
/* 94727*/            OPC_EmitConvertToTarget, 1,
/* 94729*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SAR64ri), 0,
                          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)
/* 94738*/          0, // EndSwitchType
/* 94739*/        /*Scope*/ 120, /*->94860*/
/* 94740*/          OPC_CheckChild1Type, MVT::i8,
/* 94742*/          OPC_SwitchType /*4 cases */, 43, MVT::i32,// ->94788
/* 94745*/            OPC_Scope, 28, /*->94775*/ // 2 children in Scope
/* 94747*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 94749*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/* 94755*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 94758*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 94767*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SARX32rr), 0,
                            MVT::i32, 2/*#Ops*/, 0, 4, 
                        // Src: (sra:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR8:{ *:[i8] }:$src2) - Complexity = 4
                        // Dst: (SARX32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 94775*/            /*Scope*/ 11, /*->94787*/
/* 94776*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 94779*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SAR32rCL), 0|OPFL_GlueInput,
                            MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (sra:{ *:[i32] } GR32:{ *:[i32] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                        // Dst: (SAR32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 94787*/            0, /*End of Scope*/
/* 94788*/          /*SwitchType*/ 43, MVT::i64,// ->94833
/* 94790*/            OPC_Scope, 28, /*->94820*/ // 2 children in Scope
/* 94792*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 94794*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 94800*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 94803*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 94812*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SARX64rr), 0,
                            MVT::i64, 2/*#Ops*/, 0, 4, 
                        // Src: (sra:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR8:{ *:[i8] }:$src2) - Complexity = 4
                        // Dst: (SARX64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 94820*/            /*Scope*/ 11, /*->94832*/
/* 94821*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 94824*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SAR64rCL), 0|OPFL_GlueInput,
                            MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (sra:{ *:[i64] } GR64:{ *:[i64] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                        // Dst: (SAR64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 94832*/            0, /*End of Scope*/
/* 94833*/          /*SwitchType*/ 11, MVT::i8,// ->94846
/* 94835*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 94838*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SAR8rCL), 0|OPFL_GlueInput,
                          MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (sra:{ *:[i8] } GR8:{ *:[i8] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                      // Dst: (SAR8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 94846*/          /*SwitchType*/ 11, MVT::i16,// ->94859
/* 94848*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 94851*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SAR16rCL), 0|OPFL_GlueInput,
                          MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (sra:{ *:[i16] } GR16:{ *:[i16] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                      // Dst: (SAR16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 94859*/          0, // EndSwitchType
/* 94860*/        0, /*End of Scope*/
/* 94861*/      /*Scope*/ 88|128,3/*472*/, /*->95335*/
/* 94863*/        OPC_MoveChild1,
/* 94864*/        OPC_SwitchOpcode /*3 cases */, 85|128,1/*213*/, TARGET_VAL(ISD::BITCAST),// ->95082
/* 94869*/          OPC_MoveChild0,
/* 94870*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 94873*/          OPC_RecordMemRef,
/* 94874*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 94875*/          OPC_CheckFoldableChainNode,
/* 94876*/          OPC_RecordChild1, // #2 = $src2
/* 94877*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 94879*/          OPC_CheckPredicate, 9, // Predicate_load
/* 94881*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 94883*/          OPC_SwitchType /*3 cases */, 71, MVT::v2i64,// ->94957
/* 94886*/            OPC_MoveParent,
/* 94887*/            OPC_SwitchType /*2 cases */, 43, MVT::v4i32,// ->94933
/* 94890*/              OPC_MoveParent,
/* 94891*/              OPC_CheckType, MVT::v4i32,
/* 94893*/              OPC_Scope, 18, /*->94913*/ // 2 children in Scope
/* 94895*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 94897*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94900*/                OPC_EmitMergeInputChains1_1,
/* 94901*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sra:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSRAVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 94913*/              /*Scope*/ 18, /*->94932*/
/* 94914*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 94916*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94919*/                OPC_EmitMergeInputChains1_1,
/* 94920*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSRAVDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 94932*/              0, /*End of Scope*/
/* 94933*/            /*SwitchType*/ 21, MVT::v8i16,// ->94956
/* 94935*/              OPC_MoveParent,
/* 94936*/              OPC_CheckType, MVT::v8i16,
/* 94938*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 94940*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94943*/              OPC_EmitMergeInputChains1_1,
/* 94944*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRAVWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 94956*/            0, // EndSwitchType
/* 94957*/          /*SwitchType*/ 71, MVT::v4i64,// ->95030
/* 94959*/            OPC_MoveParent,
/* 94960*/            OPC_SwitchType /*2 cases */, 43, MVT::v8i32,// ->95006
/* 94963*/              OPC_MoveParent,
/* 94964*/              OPC_CheckType, MVT::v8i32,
/* 94966*/              OPC_Scope, 18, /*->94986*/ // 2 children in Scope
/* 94968*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 94970*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94973*/                OPC_EmitMergeInputChains1_1,
/* 94974*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sra:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSRAVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 94986*/              /*Scope*/ 18, /*->95005*/
/* 94987*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 94989*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94992*/                OPC_EmitMergeInputChains1_1,
/* 94993*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSRAVDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95005*/              0, /*End of Scope*/
/* 95006*/            /*SwitchType*/ 21, MVT::v16i16,// ->95029
/* 95008*/              OPC_MoveParent,
/* 95009*/              OPC_CheckType, MVT::v16i16,
/* 95011*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 95013*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95016*/              OPC_EmitMergeInputChains1_1,
/* 95017*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRAVWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95029*/            0, // EndSwitchType
/* 95030*/          /*SwitchType*/ 49, MVT::v8i64,// ->95081
/* 95032*/            OPC_MoveParent,
/* 95033*/            OPC_SwitchType /*2 cases */, 21, MVT::v16i32,// ->95057
/* 95036*/              OPC_MoveParent,
/* 95037*/              OPC_CheckType, MVT::v16i32,
/* 95039*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95041*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95044*/              OPC_EmitMergeInputChains1_1,
/* 95045*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRAVDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95057*/            /*SwitchType*/ 21, MVT::v32i16,// ->95080
/* 95059*/              OPC_MoveParent,
/* 95060*/              OPC_CheckType, MVT::v32i16,
/* 95062*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 95064*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95067*/              OPC_EmitMergeInputChains1_1,
/* 95068*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRAVWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95080*/            0, // EndSwitchType
/* 95081*/          0, // EndSwitchType
/* 95082*/        /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST),// ->95250
/* 95086*/          OPC_MoveChild0,
/* 95087*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 95090*/          OPC_RecordMemRef,
/* 95091*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 95092*/          OPC_CheckFoldableChainNode,
/* 95093*/          OPC_RecordChild1, // #2 = $src2
/* 95094*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 95096*/          OPC_SwitchType /*2 cases */, 74, MVT::i32,// ->95173
/* 95099*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 95101*/            OPC_MoveParent,
/* 95102*/            OPC_SwitchType /*3 cases */, 21, MVT::v16i32,// ->95126
/* 95105*/              OPC_MoveParent,
/* 95106*/              OPC_CheckType, MVT::v16i32,
/* 95108*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95110*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95113*/              OPC_EmitMergeInputChains1_1,
/* 95114*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSRAVDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95126*/            /*SwitchType*/ 21, MVT::v8i32,// ->95149
/* 95128*/              OPC_MoveParent,
/* 95129*/              OPC_CheckType, MVT::v8i32,
/* 95131*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95133*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95136*/              OPC_EmitMergeInputChains1_1,
/* 95137*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSRAVDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95149*/            /*SwitchType*/ 21, MVT::v4i32,// ->95172
/* 95151*/              OPC_MoveParent,
/* 95152*/              OPC_CheckType, MVT::v4i32,
/* 95154*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95156*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95159*/              OPC_EmitMergeInputChains1_1,
/* 95160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSRAVDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95172*/            0, // EndSwitchType
/* 95173*/          /*SwitchType*/ 74, MVT::i64,// ->95249
/* 95175*/            OPC_CheckPredicate, 9, // Predicate_load
/* 95177*/            OPC_MoveParent,
/* 95178*/            OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->95202
/* 95181*/              OPC_MoveParent,
/* 95182*/              OPC_CheckType, MVT::v8i64,
/* 95184*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95186*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95189*/              OPC_EmitMergeInputChains1_1,
/* 95190*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSRAVQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95202*/            /*SwitchType*/ 21, MVT::v4i64,// ->95225
/* 95204*/              OPC_MoveParent,
/* 95205*/              OPC_CheckType, MVT::v4i64,
/* 95207*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95209*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95212*/              OPC_EmitMergeInputChains1_1,
/* 95213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSRAVQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95225*/            /*SwitchType*/ 21, MVT::v2i64,// ->95248
/* 95227*/              OPC_MoveParent,
/* 95228*/              OPC_CheckType, MVT::v2i64,
/* 95230*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95232*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95235*/              OPC_EmitMergeInputChains1_1,
/* 95236*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSRAVQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95248*/            0, // EndSwitchType
/* 95249*/          0, // EndSwitchType
/* 95250*/        /*SwitchOpcode*/ 81, TARGET_VAL(ISD::LOAD),// ->95334
/* 95253*/          OPC_RecordMemRef,
/* 95254*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 95255*/          OPC_CheckFoldableChainNode,
/* 95256*/          OPC_RecordChild1, // #2 = $src2
/* 95257*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 95259*/          OPC_CheckPredicate, 9, // Predicate_load
/* 95261*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 95263*/          OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->95287
/* 95266*/            OPC_MoveParent,
/* 95267*/            OPC_CheckType, MVT::v8i64,
/* 95269*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95271*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95274*/            OPC_EmitMergeInputChains1_1,
/* 95275*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (sra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRAVQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95287*/          /*SwitchType*/ 21, MVT::v4i64,// ->95310
/* 95289*/            OPC_MoveParent,
/* 95290*/            OPC_CheckType, MVT::v4i64,
/* 95292*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95294*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95297*/            OPC_EmitMergeInputChains1_1,
/* 95298*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (sra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRAVQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95310*/          /*SwitchType*/ 21, MVT::v2i64,// ->95333
/* 95312*/            OPC_MoveParent,
/* 95313*/            OPC_CheckType, MVT::v2i64,
/* 95315*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95317*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95320*/            OPC_EmitMergeInputChains1_1,
/* 95321*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (sra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRAVQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95333*/          0, // EndSwitchType
/* 95334*/        0, // EndSwitchOpcode
/* 95335*/      /*Scope*/ 17|128,3/*401*/, /*->95738*/
/* 95337*/        OPC_RecordChild1, // #1 = $src2
/* 95338*/        OPC_SwitchType /*9 cases */, 26, MVT::v4i32,// ->95367
/* 95341*/          OPC_CheckChild1Type, MVT::v4i32,
/* 95343*/          OPC_Scope, 10, /*->95355*/ // 2 children in Scope
/* 95345*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 95347*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRAVDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 95355*/          /*Scope*/ 10, /*->95366*/
/* 95356*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95358*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRAVDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/* 95366*/          0, /*End of Scope*/
/* 95367*/        /*SwitchType*/ 26, MVT::v8i32,// ->95395
/* 95369*/          OPC_CheckChild1Type, MVT::v8i32,
/* 95371*/          OPC_Scope, 10, /*->95383*/ // 2 children in Scope
/* 95373*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 95375*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDYrr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRAVDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/* 95383*/          /*Scope*/ 10, /*->95394*/
/* 95384*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95386*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRAVDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/* 95394*/          0, /*End of Scope*/
/* 95395*/        /*SwitchType*/ 12, MVT::v16i32,// ->95409
/* 95397*/          OPC_CheckChild1Type, MVT::v16i32,
/* 95399*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95401*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRAVDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/* 95409*/        /*SwitchType*/ 12, MVT::v8i64,// ->95423
/* 95411*/          OPC_CheckChild1Type, MVT::v8i64,
/* 95413*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95415*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrr), 0,
                        MVT::v8i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                    // Dst: (VPSRAVQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 95423*/        /*SwitchType*/ 73, MVT::v4i64,// ->95498
/* 95425*/          OPC_CheckChild1Type, MVT::v4i64,
/* 95427*/          OPC_Scope, 10, /*->95439*/ // 2 children in Scope
/* 95429*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95431*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRAVQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 95439*/          /*Scope*/ 57, /*->95497*/
/* 95440*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 95442*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/* 95448*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 95451*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 95460*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 95466*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 95469*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 95478*/            OPC_EmitNode1, TARGET_VAL(X86::VPSRAVQZrr), 0,
                          MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/* 95486*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 95489*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i64, 2/*#Ops*/, 8, 9, 
                      // Src: (sra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPSRAVQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/* 95497*/          0, /*End of Scope*/
/* 95498*/        /*SwitchType*/ 73, MVT::v2i64,// ->95573
/* 95500*/          OPC_CheckChild1Type, MVT::v2i64,
/* 95502*/          OPC_Scope, 10, /*->95514*/ // 2 children in Scope
/* 95504*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95506*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRAVQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 95514*/          /*Scope*/ 57, /*->95572*/
/* 95515*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 95517*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/* 95523*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 95526*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 95535*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 95541*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 95544*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 95553*/            OPC_EmitNode1, TARGET_VAL(X86::VPSRAVQZrr), 0,
                          MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/* 95561*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 95564*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 8, 9, 
                      // Src: (sra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPSRAVQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/* 95572*/          0, /*End of Scope*/
/* 95573*/        /*SwitchType*/ 12, MVT::v32i16,// ->95587
/* 95575*/          OPC_CheckChild1Type, MVT::v32i16,
/* 95577*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 95579*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrr), 0,
                        MVT::v32i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                    // Dst: (VPSRAVWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/* 95587*/        /*SwitchType*/ 73, MVT::v16i16,// ->95662
/* 95589*/          OPC_CheckChild1Type, MVT::v16i16,
/* 95591*/          OPC_Scope, 10, /*->95603*/ // 2 children in Scope
/* 95593*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 95595*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRAVWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/* 95603*/          /*Scope*/ 57, /*->95661*/
/* 95604*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 95606*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #2
/* 95612*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 95615*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 95624*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 95630*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 95633*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 95642*/            OPC_EmitNode1, TARGET_VAL(X86::VPSRAVWZrr), 0,
                          MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/* 95650*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 95653*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i16, 2/*#Ops*/, 8, 9, 
                      // Src: (sra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v16i16] } (VPSRAVWZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/* 95661*/          0, /*End of Scope*/
/* 95662*/        /*SwitchType*/ 73, MVT::v8i16,// ->95737
/* 95664*/          OPC_CheckChild1Type, MVT::v8i16,
/* 95666*/          OPC_Scope, 10, /*->95678*/ // 2 children in Scope
/* 95668*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 95670*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRAVWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/* 95678*/          /*Scope*/ 57, /*->95736*/
/* 95679*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 95681*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #2
/* 95687*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 95690*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 95699*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 95705*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 95708*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 95717*/            OPC_EmitNode1, TARGET_VAL(X86::VPSRAVWZrr), 0,
                          MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/* 95725*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 95728*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 8, 9, 
                      // Src: (sra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } (VPSRAVWZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/* 95736*/          0, /*End of Scope*/
/* 95737*/        0, // EndSwitchType
/* 95738*/      0, /*End of Scope*/
/* 95739*/    0, /*End of Scope*/
/* 95740*/  /*SwitchOpcode*/ 96|128,11/*1504*/, TARGET_VAL(ISD::SHL),// ->97248
/* 95744*/    OPC_Scope, 88|128,1/*216*/, /*->95963*/ // 3 children in Scope
/* 95747*/      OPC_MoveChild0,
/* 95748*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 95751*/      OPC_RecordMemRef,
/* 95752*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 95753*/      OPC_CheckFoldableChainNode,
/* 95754*/      OPC_RecordChild1, // #1 = $src1
/* 95755*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 95757*/      OPC_Scope, 56, /*->95815*/ // 4 children in Scope
/* 95759*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 95761*/        OPC_MoveParent,
/* 95762*/        OPC_MoveChild1,
/* 95763*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 95766*/        OPC_RecordChild0, // #2 = $src2
/* 95767*/        OPC_MoveChild1,
/* 95768*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 95771*/        OPC_CheckPredicate, 6, // Predicate_immShift32
/* 95773*/        OPC_MoveParent,
/* 95774*/        OPC_CheckType, MVT::i8,
/* 95776*/        OPC_MoveParent,
/* 95777*/        OPC_CheckType, MVT::i32,
/* 95779*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 95781*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 95784*/        OPC_EmitMergeInputChains1_0,
/* 95785*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #8
/* 95791*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 95794*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 95803*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHLX32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                  // Src: (shl:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 32
                  // Dst: (SHLX32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 95815*/      /*Scope*/ 56, /*->95872*/
/* 95816*/        OPC_CheckPredicate, 9, // Predicate_load
/* 95818*/        OPC_MoveParent,
/* 95819*/        OPC_MoveChild1,
/* 95820*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 95823*/        OPC_RecordChild0, // #2 = $src2
/* 95824*/        OPC_MoveChild1,
/* 95825*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 95828*/        OPC_CheckPredicate, 10, // Predicate_immShift64
/* 95830*/        OPC_MoveParent,
/* 95831*/        OPC_CheckType, MVT::i8,
/* 95833*/        OPC_MoveParent,
/* 95834*/        OPC_CheckType, MVT::i64,
/* 95836*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 95838*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 95841*/        OPC_EmitMergeInputChains1_0,
/* 95842*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #8
/* 95848*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 95851*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 95860*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHLX64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                  // Src: (shl:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 32
                  // Dst: (SHLX64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 95872*/      /*Scope*/ 44, /*->95917*/
/* 95873*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 95875*/        OPC_MoveParent,
/* 95876*/        OPC_RecordChild1, // #2 = $src2
/* 95877*/        OPC_CheckChild1Type, MVT::i8,
/* 95879*/        OPC_CheckType, MVT::i32,
/* 95881*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 95883*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 95886*/        OPC_EmitMergeInputChains1_0,
/* 95887*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #8
/* 95893*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 95896*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 95905*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHLX32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                  // Src: (shl:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR8:{ *:[i8] }:$src2) - Complexity = 25
                  // Dst: (SHLX32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 95917*/      /*Scope*/ 44, /*->95962*/
/* 95918*/        OPC_CheckPredicate, 9, // Predicate_load
/* 95920*/        OPC_MoveParent,
/* 95921*/        OPC_RecordChild1, // #2 = $src2
/* 95922*/        OPC_CheckChild1Type, MVT::i8,
/* 95924*/        OPC_CheckType, MVT::i64,
/* 95926*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 95928*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 95931*/        OPC_EmitMergeInputChains1_0,
/* 95932*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #8
/* 95938*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 95941*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 95950*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHLX64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 10, 
                  // Src: (shl:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:{ *:[i8] }:$src2) - Complexity = 25
                  // Dst: (SHLX64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 95962*/      0, /*End of Scope*/
/* 95963*/    /*Scope*/ 57, /*->96021*/
/* 95964*/      OPC_RecordNode, // #0 = $src
/* 95965*/      OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->96004
/* 95968*/        OPC_Scope, 16, /*->95986*/ // 2 children in Scope
/* 95970*/          OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/* 95972*/          OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 95975*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LEA32r), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: lea32addr:{ *:[i32] }:$src - Complexity = 18
                    // Dst: (LEA32r:{ *:[i32] } lea32addr:{ *:[i32] }:$src)
/* 95986*/        /*Scope*/ 16, /*->96003*/
/* 95987*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 95989*/          OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/* 95992*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64_32r), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: lea64_32addr:{ *:[i32] }:$src - Complexity = 18
                    // Dst: (LEA64_32r:{ *:[i32] } lea64_32addr:{ *:[i32] }:$src)
/* 96003*/        0, /*End of Scope*/
/* 96004*/      /*SwitchType*/ 14, MVT::i64,// ->96020
/* 96006*/        OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 96009*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64r), 0,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea64addr:{ *:[i64] }:$src - Complexity = 18
                  // Dst: (LEA64r:{ *:[i64] } lea64addr:{ *:[i64] }:$src)
/* 96020*/      0, // EndSwitchType
/* 96021*/    /*Scope*/ 72|128,9/*1224*/, /*->97247*/
/* 96023*/      OPC_RecordChild0, // #0 = $src1
/* 96024*/      OPC_Scope, 25|128,1/*153*/, /*->96180*/ // 5 children in Scope
/* 96027*/        OPC_MoveChild1,
/* 96028*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 96031*/        OPC_RecordChild0, // #1 = $src2
/* 96032*/        OPC_MoveChild1,
/* 96033*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96036*/        OPC_Scope, 36, /*->96074*/ // 4 children in Scope
/* 96038*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/* 96040*/          OPC_MoveParent,
/* 96041*/          OPC_CheckType, MVT::i8,
/* 96043*/          OPC_MoveParent,
/* 96044*/          OPC_CheckType, MVT::i32,
/* 96046*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 96048*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 96054*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96057*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 96066*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHLX32rr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 4, 
                    // Src: (shl:{ *:[i32] } GR32:{ *:[i32] }:$src1, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 11
                    // Dst: (SHLX32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 96074*/        /*Scope*/ 36, /*->96111*/
/* 96075*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/* 96077*/          OPC_MoveParent,
/* 96078*/          OPC_CheckType, MVT::i8,
/* 96080*/          OPC_MoveParent,
/* 96081*/          OPC_CheckType, MVT::i64,
/* 96083*/          OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 96085*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 96091*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96094*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 96103*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SHLX64rr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 4, 
                    // Src: (shl:{ *:[i64] } GR64:{ *:[i64] }:$src1, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 11
                    // Dst: (SHLX64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 96111*/        /*Scope*/ 47, /*->96159*/
/* 96112*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/* 96114*/          OPC_MoveParent,
/* 96115*/          OPC_CheckType, MVT::i8,
/* 96117*/          OPC_MoveParent,
/* 96118*/          OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->96132
/* 96121*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 96124*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHL8rCL), 0|OPFL_GlueInput,
                          MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (shl:{ *:[i8] } GR8:{ *:[i8] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                      // Dst: (SHL8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 96132*/          /*SwitchType*/ 11, MVT::i16,// ->96145
/* 96134*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 96137*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHL16rCL), 0|OPFL_GlueInput,
                          MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (shl:{ *:[i16] } GR16:{ *:[i16] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                      // Dst: (SHL16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 96145*/          /*SwitchType*/ 11, MVT::i32,// ->96158
/* 96147*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 96150*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHL32rCL), 0|OPFL_GlueInput,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (shl:{ *:[i32] } GR32:{ *:[i32] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                      // Dst: (SHL32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 96158*/          0, // EndSwitchType
/* 96159*/        /*Scope*/ 19, /*->96179*/
/* 96160*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/* 96162*/          OPC_MoveParent,
/* 96163*/          OPC_CheckType, MVT::i8,
/* 96165*/          OPC_MoveParent,
/* 96166*/          OPC_CheckType, MVT::i64,
/* 96168*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 96171*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHL64rCL), 0|OPFL_GlueInput,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (shl:{ *:[i64] } GR64:{ *:[i64] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 10
                    // Dst: (SHL64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 96179*/        0, /*End of Scope*/
/* 96180*/      /*Scope*/ 50, /*->96231*/
/* 96181*/        OPC_CheckChild1Integer, 1, 
/* 96183*/        OPC_CheckChild1Type, MVT::i8,
/* 96185*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->96197
/* 96188*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8rr), 0,
                        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)
/* 96197*/        /*SwitchType*/ 9, MVT::i16,// ->96208
/* 96199*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16rr), 0,
                        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)
/* 96208*/        /*SwitchType*/ 9, MVT::i32,// ->96219
/* 96210*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32rr), 0,
                        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)
/* 96219*/        /*SwitchType*/ 9, MVT::i64,// ->96230
/* 96221*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64rr), 0,
                        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)
/* 96230*/        0, // EndSwitchType
/* 96231*/      /*Scope*/ 58|128,1/*186*/, /*->96419*/
/* 96233*/        OPC_RecordChild1, // #1 = $src2
/* 96234*/        OPC_Scope, 61, /*->96297*/ // 2 children in Scope
/* 96236*/          OPC_MoveChild1,
/* 96237*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96240*/          OPC_CheckType, MVT::i8,
/* 96242*/          OPC_MoveParent,
/* 96243*/          OPC_SwitchType /*4 cases */, 11, MVT::i8,// ->96257
/* 96246*/            OPC_EmitConvertToTarget, 1,
/* 96248*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHL8ri), 0,
                          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)
/* 96257*/          /*SwitchType*/ 11, MVT::i16,// ->96270
/* 96259*/            OPC_EmitConvertToTarget, 1,
/* 96261*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHL16ri), 0,
                          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)
/* 96270*/          /*SwitchType*/ 11, MVT::i32,// ->96283
/* 96272*/            OPC_EmitConvertToTarget, 1,
/* 96274*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHL32ri), 0,
                          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)
/* 96283*/          /*SwitchType*/ 11, MVT::i64,// ->96296
/* 96285*/            OPC_EmitConvertToTarget, 1,
/* 96287*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHL64ri), 0,
                          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)
/* 96296*/          0, // EndSwitchType
/* 96297*/        /*Scope*/ 120, /*->96418*/
/* 96298*/          OPC_CheckChild1Type, MVT::i8,
/* 96300*/          OPC_SwitchType /*4 cases */, 43, MVT::i32,// ->96346
/* 96303*/            OPC_Scope, 28, /*->96333*/ // 2 children in Scope
/* 96305*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 96307*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/* 96313*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96316*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 96325*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SHLX32rr), 0,
                            MVT::i32, 2/*#Ops*/, 0, 4, 
                        // Src: (shl:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR8:{ *:[i8] }:$src2) - Complexity = 4
                        // Dst: (SHLX32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 96333*/            /*Scope*/ 11, /*->96345*/
/* 96334*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 96337*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SHL32rCL), 0|OPFL_GlueInput,
                            MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (shl:{ *:[i32] } GR32:{ *:[i32] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                        // Dst: (SHL32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 96345*/            0, /*End of Scope*/
/* 96346*/          /*SwitchType*/ 43, MVT::i64,// ->96391
/* 96348*/            OPC_Scope, 28, /*->96378*/ // 2 children in Scope
/* 96350*/              OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/* 96352*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 96358*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96361*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 96370*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SHLX64rr), 0,
                            MVT::i64, 2/*#Ops*/, 0, 4, 
                        // Src: (shl:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR8:{ *:[i8] }:$src2) - Complexity = 4
                        // Dst: (SHLX64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 96378*/            /*Scope*/ 11, /*->96390*/
/* 96379*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 96382*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SHL64rCL), 0|OPFL_GlueInput,
                            MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (shl:{ *:[i64] } GR64:{ *:[i64] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                        // Dst: (SHL64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 96390*/            0, /*End of Scope*/
/* 96391*/          /*SwitchType*/ 11, MVT::i8,// ->96404
/* 96393*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 96396*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHL8rCL), 0|OPFL_GlueInput,
                          MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (shl:{ *:[i8] } GR8:{ *:[i8] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                      // Dst: (SHL8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 96404*/          /*SwitchType*/ 11, MVT::i16,// ->96417
/* 96406*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 96409*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHL16rCL), 0|OPFL_GlueInput,
                          MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (shl:{ *:[i16] } GR16:{ *:[i16] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                      // Dst: (SHL16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 96417*/          0, // EndSwitchType
/* 96418*/        0, /*End of Scope*/
/* 96419*/      /*Scope*/ 4|128,4/*516*/, /*->96937*/
/* 96421*/        OPC_MoveChild1,
/* 96422*/        OPC_SwitchOpcode /*3 cases */, 85|128,1/*213*/, TARGET_VAL(ISD::BITCAST),// ->96640
/* 96427*/          OPC_MoveChild0,
/* 96428*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 96431*/          OPC_RecordMemRef,
/* 96432*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 96433*/          OPC_CheckFoldableChainNode,
/* 96434*/          OPC_RecordChild1, // #2 = $src2
/* 96435*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 96437*/          OPC_CheckPredicate, 9, // Predicate_load
/* 96439*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 96441*/          OPC_SwitchType /*3 cases */, 71, MVT::v2i64,// ->96515
/* 96444*/            OPC_MoveParent,
/* 96445*/            OPC_SwitchType /*2 cases */, 43, MVT::v4i32,// ->96491
/* 96448*/              OPC_MoveParent,
/* 96449*/              OPC_CheckType, MVT::v4i32,
/* 96451*/              OPC_Scope, 18, /*->96471*/ // 2 children in Scope
/* 96453*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 96455*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96458*/                OPC_EmitMergeInputChains1_1,
/* 96459*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (shl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSLLVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96471*/              /*Scope*/ 18, /*->96490*/
/* 96472*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 96474*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96477*/                OPC_EmitMergeInputChains1_1,
/* 96478*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (shl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSLLVDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96490*/              0, /*End of Scope*/
/* 96491*/            /*SwitchType*/ 21, MVT::v8i16,// ->96514
/* 96493*/              OPC_MoveParent,
/* 96494*/              OPC_CheckType, MVT::v8i16,
/* 96496*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 96498*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96501*/              OPC_EmitMergeInputChains1_1,
/* 96502*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSLLVWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96514*/            0, // EndSwitchType
/* 96515*/          /*SwitchType*/ 71, MVT::v4i64,// ->96588
/* 96517*/            OPC_MoveParent,
/* 96518*/            OPC_SwitchType /*2 cases */, 43, MVT::v8i32,// ->96564
/* 96521*/              OPC_MoveParent,
/* 96522*/              OPC_CheckType, MVT::v8i32,
/* 96524*/              OPC_Scope, 18, /*->96544*/ // 2 children in Scope
/* 96526*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 96528*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96531*/                OPC_EmitMergeInputChains1_1,
/* 96532*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (shl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSLLVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96544*/              /*Scope*/ 18, /*->96563*/
/* 96545*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 96547*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96550*/                OPC_EmitMergeInputChains1_1,
/* 96551*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (shl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSLLVDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96563*/              0, /*End of Scope*/
/* 96564*/            /*SwitchType*/ 21, MVT::v16i16,// ->96587
/* 96566*/              OPC_MoveParent,
/* 96567*/              OPC_CheckType, MVT::v16i16,
/* 96569*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 96571*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96574*/              OPC_EmitMergeInputChains1_1,
/* 96575*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSLLVWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96587*/            0, // EndSwitchType
/* 96588*/          /*SwitchType*/ 49, MVT::v8i64,// ->96639
/* 96590*/            OPC_MoveParent,
/* 96591*/            OPC_SwitchType /*2 cases */, 21, MVT::v16i32,// ->96615
/* 96594*/              OPC_MoveParent,
/* 96595*/              OPC_CheckType, MVT::v16i32,
/* 96597*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 96599*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96602*/              OPC_EmitMergeInputChains1_1,
/* 96603*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSLLVDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96615*/            /*SwitchType*/ 21, MVT::v32i16,// ->96638
/* 96617*/              OPC_MoveParent,
/* 96618*/              OPC_CheckType, MVT::v32i16,
/* 96620*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 96622*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96625*/              OPC_EmitMergeInputChains1_1,
/* 96626*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSLLVWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96638*/            0, // EndSwitchType
/* 96639*/          0, // EndSwitchType
/* 96640*/        /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST),// ->96808
/* 96644*/          OPC_MoveChild0,
/* 96645*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 96648*/          OPC_RecordMemRef,
/* 96649*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 96650*/          OPC_CheckFoldableChainNode,
/* 96651*/          OPC_RecordChild1, // #2 = $src2
/* 96652*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 96654*/          OPC_SwitchType /*2 cases */, 74, MVT::i32,// ->96731
/* 96657*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 96659*/            OPC_MoveParent,
/* 96660*/            OPC_SwitchType /*3 cases */, 21, MVT::v16i32,// ->96684
/* 96663*/              OPC_MoveParent,
/* 96664*/              OPC_CheckType, MVT::v16i32,
/* 96666*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 96668*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96671*/              OPC_EmitMergeInputChains1_1,
/* 96672*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSLLVDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96684*/            /*SwitchType*/ 21, MVT::v8i32,// ->96707
/* 96686*/              OPC_MoveParent,
/* 96687*/              OPC_CheckType, MVT::v8i32,
/* 96689*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 96691*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96694*/              OPC_EmitMergeInputChains1_1,
/* 96695*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSLLVDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96707*/            /*SwitchType*/ 21, MVT::v4i32,// ->96730
/* 96709*/              OPC_MoveParent,
/* 96710*/              OPC_CheckType, MVT::v4i32,
/* 96712*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 96714*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96717*/              OPC_EmitMergeInputChains1_1,
/* 96718*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSLLVDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96730*/            0, // EndSwitchType
/* 96731*/          /*SwitchType*/ 74, MVT::i64,// ->96807
/* 96733*/            OPC_CheckPredicate, 9, // Predicate_load
/* 96735*/            OPC_MoveParent,
/* 96736*/            OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->96760
/* 96739*/              OPC_MoveParent,
/* 96740*/              OPC_CheckType, MVT::v8i64,
/* 96742*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 96744*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96747*/              OPC_EmitMergeInputChains1_1,
/* 96748*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSLLVQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96760*/            /*SwitchType*/ 21, MVT::v4i64,// ->96783
/* 96762*/              OPC_MoveParent,
/* 96763*/              OPC_CheckType, MVT::v4i64,
/* 96765*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 96767*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96770*/              OPC_EmitMergeInputChains1_1,
/* 96771*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSLLVQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96783*/            /*SwitchType*/ 21, MVT::v2i64,// ->96806
/* 96785*/              OPC_MoveParent,
/* 96786*/              OPC_CheckType, MVT::v2i64,
/* 96788*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 96790*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96793*/              OPC_EmitMergeInputChains1_1,
/* 96794*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSLLVQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96806*/            0, // EndSwitchType
/* 96807*/          0, // EndSwitchType
/* 96808*/        /*SwitchOpcode*/ 125, TARGET_VAL(ISD::LOAD),// ->96936
/* 96811*/          OPC_RecordMemRef,
/* 96812*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 96813*/          OPC_CheckFoldableChainNode,
/* 96814*/          OPC_RecordChild1, // #2 = $src2
/* 96815*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 96817*/          OPC_CheckPredicate, 9, // Predicate_load
/* 96819*/          OPC_CheckPredicate, 40, // Predicate_vecload
/* 96821*/          OPC_SwitchType /*3 cases */, 43, MVT::v2i64,// ->96867
/* 96824*/            OPC_MoveParent,
/* 96825*/            OPC_CheckType, MVT::v2i64,
/* 96827*/            OPC_Scope, 18, /*->96847*/ // 2 children in Scope
/* 96829*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 96831*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96834*/              OPC_EmitMergeInputChains1_1,
/* 96835*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPSLLVQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96847*/            /*Scope*/ 18, /*->96866*/
/* 96848*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 96850*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96853*/              OPC_EmitMergeInputChains1_1,
/* 96854*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPSLLVQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96866*/            0, /*End of Scope*/
/* 96867*/          /*SwitchType*/ 43, MVT::v4i64,// ->96912
/* 96869*/            OPC_MoveParent,
/* 96870*/            OPC_CheckType, MVT::v4i64,
/* 96872*/            OPC_Scope, 18, /*->96892*/ // 2 children in Scope
/* 96874*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 96876*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96879*/              OPC_EmitMergeInputChains1_1,
/* 96880*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPSLLVQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96892*/            /*Scope*/ 18, /*->96911*/
/* 96893*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 96895*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96898*/              OPC_EmitMergeInputChains1_1,
/* 96899*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (shl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPSLLVQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96911*/            0, /*End of Scope*/
/* 96912*/          /*SwitchType*/ 21, MVT::v8i64,// ->96935
/* 96914*/            OPC_MoveParent,
/* 96915*/            OPC_CheckType, MVT::v8i64,
/* 96917*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 96919*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 96922*/            OPC_EmitMergeInputChains1_1,
/* 96923*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (shl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSLLVQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 96935*/          0, // EndSwitchType
/* 96936*/        0, // EndSwitchOpcode
/* 96937*/      /*Scope*/ 51|128,2/*307*/, /*->97246*/
/* 96939*/        OPC_RecordChild1, // #1 = $src2
/* 96940*/        OPC_SwitchType /*9 cases */, 26, MVT::v4i32,// ->96969
/* 96943*/          OPC_CheckChild1Type, MVT::v4i32,
/* 96945*/          OPC_Scope, 10, /*->96957*/ // 2 children in Scope
/* 96947*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 96949*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (shl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSLLVDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 96957*/          /*Scope*/ 10, /*->96968*/
/* 96958*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 96960*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (shl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSLLVDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/* 96968*/          0, /*End of Scope*/
/* 96969*/        /*SwitchType*/ 26, MVT::v8i32,// ->96997
/* 96971*/          OPC_CheckChild1Type, MVT::v8i32,
/* 96973*/          OPC_Scope, 10, /*->96985*/ // 2 children in Scope
/* 96975*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 96977*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDYrr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (shl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPSLLVDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/* 96985*/          /*Scope*/ 10, /*->96996*/
/* 96986*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 96988*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (shl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPSLLVDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/* 96996*/          0, /*End of Scope*/
/* 96997*/        /*SwitchType*/ 26, MVT::v2i64,// ->97025
/* 96999*/          OPC_CheckChild1Type, MVT::v2i64,
/* 97001*/          OPC_Scope, 10, /*->97013*/ // 2 children in Scope
/* 97003*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 97005*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQrr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (shl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSLLVQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 97013*/          /*Scope*/ 10, /*->97024*/
/* 97014*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 97016*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (shl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSLLVQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 97024*/          0, /*End of Scope*/
/* 97025*/        /*SwitchType*/ 26, MVT::v4i64,// ->97053
/* 97027*/          OPC_CheckChild1Type, MVT::v4i64,
/* 97029*/          OPC_Scope, 10, /*->97041*/ // 2 children in Scope
/* 97031*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 97033*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQYrr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (shl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (VPSLLVQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 97041*/          /*Scope*/ 10, /*->97052*/
/* 97042*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 97044*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (shl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (VPSLLVQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 97052*/          0, /*End of Scope*/
/* 97053*/        /*SwitchType*/ 12, MVT::v16i32,// ->97067
/* 97055*/          OPC_CheckChild1Type, MVT::v16i32,
/* 97057*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 97059*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (shl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/* 97067*/        /*SwitchType*/ 12, MVT::v8i64,// ->97081
/* 97069*/          OPC_CheckChild1Type, MVT::v8i64,
/* 97071*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 97073*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrr), 0,
                        MVT::v8i64, 2/*#Ops*/, 0, 1, 
                    // Src: (shl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 97081*/        /*SwitchType*/ 12, MVT::v32i16,// ->97095
/* 97083*/          OPC_CheckChild1Type, MVT::v32i16,
/* 97085*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/* 97087*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZrr), 0,
                        MVT::v32i16, 2/*#Ops*/, 0, 1, 
                    // Src: (shl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/* 97095*/        /*SwitchType*/ 73, MVT::v16i16,// ->97170
/* 97097*/          OPC_CheckChild1Type, MVT::v16i16,
/* 97099*/          OPC_Scope, 10, /*->97111*/ // 2 children in Scope
/* 97101*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 97103*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ256rr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (shl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (VPSLLVWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/* 97111*/          /*Scope*/ 57, /*->97169*/
/* 97112*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 97114*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #2
/* 97120*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 97123*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 97132*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 97138*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 97141*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 97150*/            OPC_EmitNode1, TARGET_VAL(X86::VPSLLVWZrr), 0,
                          MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/* 97158*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 97161*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i16, 2/*#Ops*/, 8, 9, 
                      // Src: (shl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v16i16] } (VPSLLVWZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/* 97169*/          0, /*End of Scope*/
/* 97170*/        /*SwitchType*/ 73, MVT::v8i16,// ->97245
/* 97172*/          OPC_CheckChild1Type, MVT::v8i16,
/* 97174*/          OPC_Scope, 10, /*->97186*/ // 2 children in Scope
/* 97176*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 97178*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ128rr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (shl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSLLVWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/* 97186*/          /*Scope*/ 57, /*->97244*/
/* 97187*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 97189*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #2
/* 97195*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 97198*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 97207*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/* 97213*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 97216*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 97225*/            OPC_EmitNode1, TARGET_VAL(X86::VPSLLVWZrr), 0,
                          MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/* 97233*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 97236*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 8, 9, 
                      // Src: (shl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } (VPSLLVWZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/* 97244*/          0, /*End of Scope*/
/* 97245*/        0, // EndSwitchType
/* 97246*/      0, /*End of Scope*/
/* 97247*/    0, /*End of Scope*/
/* 97248*/  /*SwitchOpcode*/ 101|128,2/*357*/, TARGET_VAL(X86ISD::BEXTR),// ->97609
/* 97252*/    OPC_Scope, 85|128,1/*213*/, /*->97468*/ // 2 children in Scope
/* 97255*/      OPC_MoveChild0,
/* 97256*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 97259*/      OPC_RecordMemRef,
/* 97260*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 97261*/      OPC_CheckFoldableChainNode,
/* 97262*/      OPC_RecordChild1, // #1 = $src1
/* 97263*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 97265*/      OPC_Scope, 84, /*->97351*/ // 3 children in Scope
/* 97267*/        OPC_CheckPredicate, 9, // Predicate_load
/* 97269*/        OPC_MoveParent,
/* 97270*/        OPC_RecordChild1, // #2 = $src2
/* 97271*/        OPC_Scope, 46, /*->97319*/ // 2 children in Scope
/* 97273*/          OPC_CheckType, MVT::i64,
/* 97275*/          OPC_CheckPatternPredicate, 109, // (Subtarget->hasBMI()) && (!Subtarget->hasTBM())
/* 97277*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 97280*/          OPC_CheckComplexPat, /*CP*/7, /*#*/2, // selectMOV64Imm32:$src2 #8
/* 97283*/          OPC_EmitMergeInputChains1_0,
/* 97284*/          OPC_EmitInteger, MVT::i64, 0, 
/* 97287*/          OPC_EmitNode1, TARGET_VAL(X86::MOV32ri64), 0,
                        MVT::i32, 1/*#Ops*/, 8,  // Results = #10
/* 97294*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 97297*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 97306*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 12, 
                    // Src: (X86bextr:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, mov64imm32:{ *:[i64] }:$src2) - Complexity = 31
                    // Dst: (BEXTR64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32ri64:{ *:[i32] } mov64imm32:{ *:[i64] }:$src2), sub_32bit:{ *:[i32] }))
/* 97319*/        /*Scope*/ 30, /*->97350*/
/* 97320*/          OPC_MoveChild1,
/* 97321*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97324*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 97326*/          OPC_MoveParent,
/* 97327*/          OPC_CheckType, MVT::i64,
/* 97329*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 97331*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 97334*/          OPC_EmitMergeInputChains1_0,
/* 97335*/          OPC_EmitConvertToTarget, 2,
/* 97337*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTRI64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86bextr:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$cntl) - Complexity = 29
                    // Dst: (BEXTRI64mi:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i64] }):$cntl)
/* 97350*/        0, /*End of Scope*/
/* 97351*/      /*Scope*/ 89, /*->97441*/
/* 97352*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 97354*/        OPC_MoveParent,
/* 97355*/        OPC_RecordChild1, // #2 = $cntl
/* 97356*/        OPC_Scope, 60, /*->97418*/ // 2 children in Scope
/* 97358*/          OPC_MoveChild1,
/* 97359*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97362*/          OPC_MoveParent,
/* 97363*/          OPC_CheckType, MVT::i32,
/* 97365*/          OPC_Scope, 21, /*->97388*/ // 2 children in Scope
/* 97367*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 97369*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 97372*/            OPC_EmitMergeInputChains1_0,
/* 97373*/            OPC_EmitConvertToTarget, 2,
/* 97375*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTRI32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86bextr:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:{ *:[i32] }):$cntl) - Complexity = 28
                      // Dst: (BEXTRI32mi:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$cntl)
/* 97388*/          /*Scope*/ 28, /*->97417*/
/* 97389*/            OPC_CheckPatternPredicate, 109, // (Subtarget->hasBMI()) && (!Subtarget->hasTBM())
/* 97391*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 97394*/            OPC_EmitMergeInputChains1_0,
/* 97395*/            OPC_EmitConvertToTarget, 2,
/* 97397*/            OPC_EmitNode1, TARGET_VAL(X86::MOV32ri), 0,
                          MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 97404*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (X86bextr:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (BEXTR32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (MOV32ri:{ *:[i32] } (imm:{ *:[i32] }):$src2))
/* 97417*/          0, /*End of Scope*/
/* 97418*/        /*Scope*/ 21, /*->97440*/
/* 97419*/          OPC_CheckType, MVT::i32,
/* 97421*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 97423*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 97426*/          OPC_EmitMergeInputChains1_0,
/* 97427*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86bextr:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:{ *:[i32] }:$src2) - Complexity = 25
                    // Dst: (BEXTR32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, GR32:{ *:[i32] }:$src2)
/* 97440*/        0, /*End of Scope*/
/* 97441*/      /*Scope*/ 25, /*->97467*/
/* 97442*/        OPC_CheckPredicate, 9, // Predicate_load
/* 97444*/        OPC_MoveParent,
/* 97445*/        OPC_RecordChild1, // #2 = $src2
/* 97446*/        OPC_CheckType, MVT::i64,
/* 97448*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 97450*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 97453*/        OPC_EmitMergeInputChains1_0,
/* 97454*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86bextr:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:{ *:[i64] }:$src2) - Complexity = 25
                  // Dst: (BEXTR64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, GR64:{ *:[i64] }:$src2)
/* 97467*/      0, /*End of Scope*/
/* 97468*/    /*Scope*/ 10|128,1/*138*/, /*->97608*/
/* 97470*/      OPC_RecordChild0, // #0 = $src1
/* 97471*/      OPC_RecordChild1, // #1 = $src2
/* 97472*/      OPC_Scope, 38, /*->97512*/ // 4 children in Scope
/* 97474*/        OPC_CheckType, MVT::i64,
/* 97476*/        OPC_CheckPatternPredicate, 109, // (Subtarget->hasBMI()) && (!Subtarget->hasTBM())
/* 97478*/        OPC_CheckComplexPat, /*CP*/7, /*#*/1, // selectMOV64Imm32:$src2 #2
/* 97481*/        OPC_EmitInteger, MVT::i64, 0, 
/* 97484*/        OPC_EmitNode1, TARGET_VAL(X86::MOV32ri64), 0,
                      MVT::i32, 1/*#Ops*/, 2,  // Results = #4
/* 97491*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 97494*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 97503*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTR64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 6, 
                  // Src: (X86bextr:{ *:[i64] } GR64:{ *:[i64] }:$src1, mov64imm32:{ *:[i64] }:$src2) - Complexity = 9
                  // Dst: (BEXTR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32ri64:{ *:[i32] } mov64imm32:{ *:[i64] }:$src2), sub_32bit:{ *:[i32] }))
/* 97512*/      /*Scope*/ 66, /*->97579*/
/* 97513*/        OPC_MoveChild1,
/* 97514*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97517*/        OPC_Scope, 18, /*->97537*/ // 2 children in Scope
/* 97519*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/* 97521*/          OPC_MoveParent,
/* 97522*/          OPC_CheckType, MVT::i64,
/* 97524*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 97526*/          OPC_EmitConvertToTarget, 1,
/* 97528*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTRI64ri), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86bextr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$cntl) - Complexity = 7
                    // Dst: (BEXTRI64ri:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$cntl)
/* 97537*/        /*Scope*/ 40, /*->97578*/
/* 97538*/          OPC_MoveParent,
/* 97539*/          OPC_CheckType, MVT::i32,
/* 97541*/          OPC_Scope, 13, /*->97556*/ // 2 children in Scope
/* 97543*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/* 97545*/            OPC_EmitConvertToTarget, 1,
/* 97547*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTRI32ri), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86bextr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$cntl) - Complexity = 6
                      // Dst: (BEXTRI32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$cntl)
/* 97556*/          /*Scope*/ 20, /*->97577*/
/* 97557*/            OPC_CheckPatternPredicate, 109, // (Subtarget->hasBMI()) && (!Subtarget->hasTBM())
/* 97559*/            OPC_EmitConvertToTarget, 1,
/* 97561*/            OPC_EmitNode1, TARGET_VAL(X86::MOV32ri), 0,
                          MVT::i32, 1/*#Ops*/, 2,  // Results = #3
/* 97568*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTR32rr), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (X86bextr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                      // Dst: (BEXTR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (MOV32ri:{ *:[i32] } (imm:{ *:[i32] }):$src2))
/* 97577*/          0, /*End of Scope*/
/* 97578*/        0, /*End of Scope*/
/* 97579*/      /*Scope*/ 13, /*->97593*/
/* 97580*/        OPC_CheckType, MVT::i32,
/* 97582*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 97584*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTR32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86bextr:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2) - Complexity = 3
                  // Dst: (BEXTR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 97593*/      /*Scope*/ 13, /*->97607*/
/* 97594*/        OPC_CheckType, MVT::i64,
/* 97596*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/* 97598*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BEXTR64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86bextr:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 3
                  // Dst: (BEXTR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 97607*/      0, /*End of Scope*/
/* 97608*/    0, /*End of Scope*/
/* 97609*/  /*SwitchOpcode*/ 118|128,35/*4598*/, TARGET_VAL(X86ISD::CMOV),// ->102211
/* 97613*/    OPC_Scope, 45|128,11/*1453*/, /*->99069*/ // 3 children in Scope
/* 97616*/      OPC_RecordChild0, // #0 = $src1
/* 97617*/      OPC_MoveChild1,
/* 97618*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 97621*/      OPC_RecordMemRef,
/* 97622*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 97623*/      OPC_CheckFoldableChainNode,
/* 97624*/      OPC_RecordChild1, // #2 = $src2
/* 97625*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 97627*/      OPC_Scope, 29, /*->97658*/ // 48 children in Scope
/* 97629*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 97631*/        OPC_MoveParent,
/* 97632*/        OPC_CheckChild2Integer, 13, 
/* 97634*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97635*/        OPC_CheckType, MVT::i16,
/* 97637*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97639*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97642*/        OPC_EmitMergeInputChains1_1,
/* 97643*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97646*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVO16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97658*/      /*Scope*/ 29, /*->97688*/
/* 97659*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 97661*/        OPC_MoveParent,
/* 97662*/        OPC_CheckChild2Integer, 13, 
/* 97664*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97665*/        OPC_CheckType, MVT::i32,
/* 97667*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97669*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97672*/        OPC_EmitMergeInputChains1_1,
/* 97673*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97676*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVO32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97688*/      /*Scope*/ 29, /*->97718*/
/* 97689*/        OPC_CheckPredicate, 9, // Predicate_load
/* 97691*/        OPC_MoveParent,
/* 97692*/        OPC_CheckChild2Integer, 13, 
/* 97694*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97695*/        OPC_CheckType, MVT::i64,
/* 97697*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97699*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97702*/        OPC_EmitMergeInputChains1_1,
/* 97703*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97706*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVO64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97718*/      /*Scope*/ 29, /*->97748*/
/* 97719*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 97721*/        OPC_MoveParent,
/* 97722*/        OPC_CheckChild2Integer, 10, 
/* 97724*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97725*/        OPC_CheckType, MVT::i16,
/* 97727*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97729*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97732*/        OPC_EmitMergeInputChains1_1,
/* 97733*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97736*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNO16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97748*/      /*Scope*/ 29, /*->97778*/
/* 97749*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 97751*/        OPC_MoveParent,
/* 97752*/        OPC_CheckChild2Integer, 10, 
/* 97754*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97755*/        OPC_CheckType, MVT::i32,
/* 97757*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97759*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97762*/        OPC_EmitMergeInputChains1_1,
/* 97763*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97766*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNO32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97778*/      /*Scope*/ 29, /*->97808*/
/* 97779*/        OPC_CheckPredicate, 9, // Predicate_load
/* 97781*/        OPC_MoveParent,
/* 97782*/        OPC_CheckChild2Integer, 10, 
/* 97784*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97785*/        OPC_CheckType, MVT::i64,
/* 97787*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97789*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97792*/        OPC_EmitMergeInputChains1_1,
/* 97793*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97796*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNO64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97808*/      /*Scope*/ 29, /*->97838*/
/* 97809*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 97811*/        OPC_MoveParent,
/* 97812*/        OPC_CheckChild2Integer, 2, 
/* 97814*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97815*/        OPC_CheckType, MVT::i16,
/* 97817*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97819*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97822*/        OPC_EmitMergeInputChains1_1,
/* 97823*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97826*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVB16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97838*/      /*Scope*/ 29, /*->97868*/
/* 97839*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 97841*/        OPC_MoveParent,
/* 97842*/        OPC_CheckChild2Integer, 2, 
/* 97844*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97845*/        OPC_CheckType, MVT::i32,
/* 97847*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97849*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97852*/        OPC_EmitMergeInputChains1_1,
/* 97853*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97856*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVB32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97868*/      /*Scope*/ 29, /*->97898*/
/* 97869*/        OPC_CheckPredicate, 9, // Predicate_load
/* 97871*/        OPC_MoveParent,
/* 97872*/        OPC_CheckChild2Integer, 2, 
/* 97874*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97875*/        OPC_CheckType, MVT::i64,
/* 97877*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97879*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97882*/        OPC_EmitMergeInputChains1_1,
/* 97883*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97886*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVB64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97898*/      /*Scope*/ 29, /*->97928*/
/* 97899*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 97901*/        OPC_MoveParent,
/* 97902*/        OPC_CheckChild2Integer, 1, 
/* 97904*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97905*/        OPC_CheckType, MVT::i16,
/* 97907*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97909*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97912*/        OPC_EmitMergeInputChains1_1,
/* 97913*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97916*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVAE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97928*/      /*Scope*/ 29, /*->97958*/
/* 97929*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 97931*/        OPC_MoveParent,
/* 97932*/        OPC_CheckChild2Integer, 1, 
/* 97934*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97935*/        OPC_CheckType, MVT::i32,
/* 97937*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97939*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97942*/        OPC_EmitMergeInputChains1_1,
/* 97943*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97946*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVAE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97958*/      /*Scope*/ 29, /*->97988*/
/* 97959*/        OPC_CheckPredicate, 9, // Predicate_load
/* 97961*/        OPC_MoveParent,
/* 97962*/        OPC_CheckChild2Integer, 1, 
/* 97964*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97965*/        OPC_CheckType, MVT::i64,
/* 97967*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97969*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97972*/        OPC_EmitMergeInputChains1_1,
/* 97973*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 97976*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVAE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 97988*/      /*Scope*/ 29, /*->98018*/
/* 97989*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 97991*/        OPC_MoveParent,
/* 97992*/        OPC_CheckChild2Integer, 4, 
/* 97994*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 97995*/        OPC_CheckType, MVT::i16,
/* 97997*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 97999*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98002*/        OPC_EmitMergeInputChains1_1,
/* 98003*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98006*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98018*/      /*Scope*/ 29, /*->98048*/
/* 98019*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 98021*/        OPC_MoveParent,
/* 98022*/        OPC_CheckChild2Integer, 4, 
/* 98024*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98025*/        OPC_CheckType, MVT::i32,
/* 98027*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98029*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98032*/        OPC_EmitMergeInputChains1_1,
/* 98033*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98036*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98048*/      /*Scope*/ 29, /*->98078*/
/* 98049*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98051*/        OPC_MoveParent,
/* 98052*/        OPC_CheckChild2Integer, 4, 
/* 98054*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98055*/        OPC_CheckType, MVT::i64,
/* 98057*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98059*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98062*/        OPC_EmitMergeInputChains1_1,
/* 98063*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98066*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98078*/      /*Scope*/ 29, /*->98108*/
/* 98079*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 98081*/        OPC_MoveParent,
/* 98082*/        OPC_CheckChild2Integer, 9, 
/* 98084*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98085*/        OPC_CheckType, MVT::i16,
/* 98087*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98089*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98092*/        OPC_EmitMergeInputChains1_1,
/* 98093*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98096*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98108*/      /*Scope*/ 29, /*->98138*/
/* 98109*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 98111*/        OPC_MoveParent,
/* 98112*/        OPC_CheckChild2Integer, 9, 
/* 98114*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98115*/        OPC_CheckType, MVT::i32,
/* 98117*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98119*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98122*/        OPC_EmitMergeInputChains1_1,
/* 98123*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98126*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98138*/      /*Scope*/ 29, /*->98168*/
/* 98139*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98141*/        OPC_MoveParent,
/* 98142*/        OPC_CheckChild2Integer, 9, 
/* 98144*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98145*/        OPC_CheckType, MVT::i64,
/* 98147*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98149*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98152*/        OPC_EmitMergeInputChains1_1,
/* 98153*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98156*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98168*/      /*Scope*/ 29, /*->98198*/
/* 98169*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 98171*/        OPC_MoveParent,
/* 98172*/        OPC_CheckChild2Integer, 3, 
/* 98174*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98175*/        OPC_CheckType, MVT::i16,
/* 98177*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98179*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98182*/        OPC_EmitMergeInputChains1_1,
/* 98183*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98186*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVBE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98198*/      /*Scope*/ 29, /*->98228*/
/* 98199*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 98201*/        OPC_MoveParent,
/* 98202*/        OPC_CheckChild2Integer, 3, 
/* 98204*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98205*/        OPC_CheckType, MVT::i32,
/* 98207*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98209*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98212*/        OPC_EmitMergeInputChains1_1,
/* 98213*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98216*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVBE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98228*/      /*Scope*/ 29, /*->98258*/
/* 98229*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98231*/        OPC_MoveParent,
/* 98232*/        OPC_CheckChild2Integer, 3, 
/* 98234*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98235*/        OPC_CheckType, MVT::i64,
/* 98237*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98239*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98242*/        OPC_EmitMergeInputChains1_1,
/* 98243*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98246*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVBE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98258*/      /*Scope*/ 29, /*->98288*/
/* 98259*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 98261*/        OPC_MoveParent,
/* 98262*/        OPC_CheckChild2Integer, 0, 
/* 98264*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98265*/        OPC_CheckType, MVT::i16,
/* 98267*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98269*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98272*/        OPC_EmitMergeInputChains1_1,
/* 98273*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98276*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVA16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98288*/      /*Scope*/ 29, /*->98318*/
/* 98289*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 98291*/        OPC_MoveParent,
/* 98292*/        OPC_CheckChild2Integer, 0, 
/* 98294*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98295*/        OPC_CheckType, MVT::i32,
/* 98297*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98299*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98302*/        OPC_EmitMergeInputChains1_1,
/* 98303*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98306*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVA32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98318*/      /*Scope*/ 29, /*->98348*/
/* 98319*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98321*/        OPC_MoveParent,
/* 98322*/        OPC_CheckChild2Integer, 0, 
/* 98324*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98325*/        OPC_CheckType, MVT::i64,
/* 98327*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98329*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98332*/        OPC_EmitMergeInputChains1_1,
/* 98333*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98336*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVA64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98348*/      /*Scope*/ 29, /*->98378*/
/* 98349*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 98351*/        OPC_MoveParent,
/* 98352*/        OPC_CheckChild2Integer, 15, 
/* 98354*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98355*/        OPC_CheckType, MVT::i16,
/* 98357*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98359*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98362*/        OPC_EmitMergeInputChains1_1,
/* 98363*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98366*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVS16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98378*/      /*Scope*/ 29, /*->98408*/
/* 98379*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 98381*/        OPC_MoveParent,
/* 98382*/        OPC_CheckChild2Integer, 15, 
/* 98384*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98385*/        OPC_CheckType, MVT::i32,
/* 98387*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98389*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98392*/        OPC_EmitMergeInputChains1_1,
/* 98393*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98396*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVS32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98408*/      /*Scope*/ 29, /*->98438*/
/* 98409*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98411*/        OPC_MoveParent,
/* 98412*/        OPC_CheckChild2Integer, 15, 
/* 98414*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98415*/        OPC_CheckType, MVT::i64,
/* 98417*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98419*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98422*/        OPC_EmitMergeInputChains1_1,
/* 98423*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98426*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVS64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98438*/      /*Scope*/ 29, /*->98468*/
/* 98439*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 98441*/        OPC_MoveParent,
/* 98442*/        OPC_CheckChild2Integer, 12, 
/* 98444*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98445*/        OPC_CheckType, MVT::i16,
/* 98447*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98449*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98452*/        OPC_EmitMergeInputChains1_1,
/* 98453*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98456*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNS16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98468*/      /*Scope*/ 29, /*->98498*/
/* 98469*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 98471*/        OPC_MoveParent,
/* 98472*/        OPC_CheckChild2Integer, 12, 
/* 98474*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98475*/        OPC_CheckType, MVT::i32,
/* 98477*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98479*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98482*/        OPC_EmitMergeInputChains1_1,
/* 98483*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98486*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNS32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98498*/      /*Scope*/ 29, /*->98528*/
/* 98499*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98501*/        OPC_MoveParent,
/* 98502*/        OPC_CheckChild2Integer, 12, 
/* 98504*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98505*/        OPC_CheckType, MVT::i64,
/* 98507*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98509*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98512*/        OPC_EmitMergeInputChains1_1,
/* 98513*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98516*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNS64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98528*/      /*Scope*/ 29, /*->98558*/
/* 98529*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 98531*/        OPC_MoveParent,
/* 98532*/        OPC_CheckChild2Integer, 14, 
/* 98534*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98535*/        OPC_CheckType, MVT::i16,
/* 98537*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98539*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98542*/        OPC_EmitMergeInputChains1_1,
/* 98543*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98546*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVP16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98558*/      /*Scope*/ 29, /*->98588*/
/* 98559*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 98561*/        OPC_MoveParent,
/* 98562*/        OPC_CheckChild2Integer, 14, 
/* 98564*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98565*/        OPC_CheckType, MVT::i32,
/* 98567*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98569*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98572*/        OPC_EmitMergeInputChains1_1,
/* 98573*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98576*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVP32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98588*/      /*Scope*/ 29, /*->98618*/
/* 98589*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98591*/        OPC_MoveParent,
/* 98592*/        OPC_CheckChild2Integer, 14, 
/* 98594*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98595*/        OPC_CheckType, MVT::i64,
/* 98597*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98599*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98602*/        OPC_EmitMergeInputChains1_1,
/* 98603*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98606*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVP64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98618*/      /*Scope*/ 29, /*->98648*/
/* 98619*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 98621*/        OPC_MoveParent,
/* 98622*/        OPC_CheckChild2Integer, 11, 
/* 98624*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98625*/        OPC_CheckType, MVT::i16,
/* 98627*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98629*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98632*/        OPC_EmitMergeInputChains1_1,
/* 98633*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98636*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNP16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98648*/      /*Scope*/ 29, /*->98678*/
/* 98649*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 98651*/        OPC_MoveParent,
/* 98652*/        OPC_CheckChild2Integer, 11, 
/* 98654*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98655*/        OPC_CheckType, MVT::i32,
/* 98657*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98659*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98662*/        OPC_EmitMergeInputChains1_1,
/* 98663*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98666*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNP32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98678*/      /*Scope*/ 29, /*->98708*/
/* 98679*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98681*/        OPC_MoveParent,
/* 98682*/        OPC_CheckChild2Integer, 11, 
/* 98684*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98685*/        OPC_CheckType, MVT::i64,
/* 98687*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98689*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98692*/        OPC_EmitMergeInputChains1_1,
/* 98693*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98696*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNP64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98708*/      /*Scope*/ 29, /*->98738*/
/* 98709*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 98711*/        OPC_MoveParent,
/* 98712*/        OPC_CheckChild2Integer, 7, 
/* 98714*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98715*/        OPC_CheckType, MVT::i16,
/* 98717*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98719*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98722*/        OPC_EmitMergeInputChains1_1,
/* 98723*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98726*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVL16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98738*/      /*Scope*/ 29, /*->98768*/
/* 98739*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 98741*/        OPC_MoveParent,
/* 98742*/        OPC_CheckChild2Integer, 7, 
/* 98744*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98745*/        OPC_CheckType, MVT::i32,
/* 98747*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98749*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98752*/        OPC_EmitMergeInputChains1_1,
/* 98753*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98756*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVL32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98768*/      /*Scope*/ 29, /*->98798*/
/* 98769*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98771*/        OPC_MoveParent,
/* 98772*/        OPC_CheckChild2Integer, 7, 
/* 98774*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98775*/        OPC_CheckType, MVT::i64,
/* 98777*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98779*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98782*/        OPC_EmitMergeInputChains1_1,
/* 98783*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98786*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVL64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98798*/      /*Scope*/ 29, /*->98828*/
/* 98799*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 98801*/        OPC_MoveParent,
/* 98802*/        OPC_CheckChild2Integer, 6, 
/* 98804*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98805*/        OPC_CheckType, MVT::i16,
/* 98807*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98809*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98812*/        OPC_EmitMergeInputChains1_1,
/* 98813*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98816*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVGE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98828*/      /*Scope*/ 29, /*->98858*/
/* 98829*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 98831*/        OPC_MoveParent,
/* 98832*/        OPC_CheckChild2Integer, 6, 
/* 98834*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98835*/        OPC_CheckType, MVT::i32,
/* 98837*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98839*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98842*/        OPC_EmitMergeInputChains1_1,
/* 98843*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98846*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVGE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98858*/      /*Scope*/ 29, /*->98888*/
/* 98859*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98861*/        OPC_MoveParent,
/* 98862*/        OPC_CheckChild2Integer, 6, 
/* 98864*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98865*/        OPC_CheckType, MVT::i64,
/* 98867*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98869*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98872*/        OPC_EmitMergeInputChains1_1,
/* 98873*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98876*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVGE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98888*/      /*Scope*/ 29, /*->98918*/
/* 98889*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 98891*/        OPC_MoveParent,
/* 98892*/        OPC_CheckChild2Integer, 8, 
/* 98894*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98895*/        OPC_CheckType, MVT::i16,
/* 98897*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98899*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98902*/        OPC_EmitMergeInputChains1_1,
/* 98903*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98906*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVLE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98918*/      /*Scope*/ 29, /*->98948*/
/* 98919*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 98921*/        OPC_MoveParent,
/* 98922*/        OPC_CheckChild2Integer, 8, 
/* 98924*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98925*/        OPC_CheckType, MVT::i32,
/* 98927*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98929*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98932*/        OPC_EmitMergeInputChains1_1,
/* 98933*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98936*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVLE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98948*/      /*Scope*/ 29, /*->98978*/
/* 98949*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98951*/        OPC_MoveParent,
/* 98952*/        OPC_CheckChild2Integer, 8, 
/* 98954*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98955*/        OPC_CheckType, MVT::i64,
/* 98957*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98959*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98962*/        OPC_EmitMergeInputChains1_1,
/* 98963*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98966*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVLE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 98978*/      /*Scope*/ 29, /*->99008*/
/* 98979*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 98981*/        OPC_MoveParent,
/* 98982*/        OPC_CheckChild2Integer, 5, 
/* 98984*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 98985*/        OPC_CheckType, MVT::i16,
/* 98987*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 98989*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98992*/        OPC_EmitMergeInputChains1_1,
/* 98993*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 98996*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVG16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99008*/      /*Scope*/ 29, /*->99038*/
/* 99009*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 99011*/        OPC_MoveParent,
/* 99012*/        OPC_CheckChild2Integer, 5, 
/* 99014*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99015*/        OPC_CheckType, MVT::i32,
/* 99017*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99019*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 99022*/        OPC_EmitMergeInputChains1_1,
/* 99023*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99026*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVG32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99038*/      /*Scope*/ 29, /*->99068*/
/* 99039*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99041*/        OPC_MoveParent,
/* 99042*/        OPC_CheckChild2Integer, 5, 
/* 99044*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99045*/        OPC_CheckType, MVT::i64,
/* 99047*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99049*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 99052*/        OPC_EmitMergeInputChains1_1,
/* 99053*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99056*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVG64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99068*/      0, /*End of Scope*/
/* 99069*/    /*Scope*/ 92|128,11/*1500*/, /*->100571*/
/* 99071*/      OPC_MoveChild0,
/* 99072*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 99075*/      OPC_RecordMemRef,
/* 99076*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 99077*/      OPC_CheckFoldableChainNode,
/* 99078*/      OPC_RecordChild1, // #1 = $src1
/* 99079*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 99081*/      OPC_Scope, 30, /*->99113*/ // 48 children in Scope
/* 99083*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 99085*/        OPC_MoveParent,
/* 99086*/        OPC_RecordChild1, // #2 = $src2
/* 99087*/        OPC_CheckChild2Integer, 2, 
/* 99089*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99090*/        OPC_CheckType, MVT::i16,
/* 99092*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99094*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99097*/        OPC_EmitMergeInputChains1_0,
/* 99098*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99101*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVAE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99113*/      /*Scope*/ 30, /*->99144*/
/* 99114*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 99116*/        OPC_MoveParent,
/* 99117*/        OPC_RecordChild1, // #2 = $src2
/* 99118*/        OPC_CheckChild2Integer, 2, 
/* 99120*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99121*/        OPC_CheckType, MVT::i32,
/* 99123*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99125*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99128*/        OPC_EmitMergeInputChains1_0,
/* 99129*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99132*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVAE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99144*/      /*Scope*/ 30, /*->99175*/
/* 99145*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99147*/        OPC_MoveParent,
/* 99148*/        OPC_RecordChild1, // #2 = $src2
/* 99149*/        OPC_CheckChild2Integer, 2, 
/* 99151*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99152*/        OPC_CheckType, MVT::i64,
/* 99154*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99156*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99159*/        OPC_EmitMergeInputChains1_0,
/* 99160*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99163*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVAE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99175*/      /*Scope*/ 30, /*->99206*/
/* 99176*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 99178*/        OPC_MoveParent,
/* 99179*/        OPC_RecordChild1, // #2 = $src2
/* 99180*/        OPC_CheckChild2Integer, 1, 
/* 99182*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99183*/        OPC_CheckType, MVT::i16,
/* 99185*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99187*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99190*/        OPC_EmitMergeInputChains1_0,
/* 99191*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99194*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVB16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99206*/      /*Scope*/ 30, /*->99237*/
/* 99207*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 99209*/        OPC_MoveParent,
/* 99210*/        OPC_RecordChild1, // #2 = $src2
/* 99211*/        OPC_CheckChild2Integer, 1, 
/* 99213*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99214*/        OPC_CheckType, MVT::i32,
/* 99216*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99218*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99221*/        OPC_EmitMergeInputChains1_0,
/* 99222*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99225*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVB32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99237*/      /*Scope*/ 30, /*->99268*/
/* 99238*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99240*/        OPC_MoveParent,
/* 99241*/        OPC_RecordChild1, // #2 = $src2
/* 99242*/        OPC_CheckChild2Integer, 1, 
/* 99244*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99245*/        OPC_CheckType, MVT::i64,
/* 99247*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99249*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99252*/        OPC_EmitMergeInputChains1_0,
/* 99253*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99256*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVB64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99268*/      /*Scope*/ 30, /*->99299*/
/* 99269*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 99271*/        OPC_MoveParent,
/* 99272*/        OPC_RecordChild1, // #2 = $src2
/* 99273*/        OPC_CheckChild2Integer, 4, 
/* 99275*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99276*/        OPC_CheckType, MVT::i16,
/* 99278*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99280*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99283*/        OPC_EmitMergeInputChains1_0,
/* 99284*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99287*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99299*/      /*Scope*/ 30, /*->99330*/
/* 99300*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 99302*/        OPC_MoveParent,
/* 99303*/        OPC_RecordChild1, // #2 = $src2
/* 99304*/        OPC_CheckChild2Integer, 4, 
/* 99306*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99307*/        OPC_CheckType, MVT::i32,
/* 99309*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99311*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99314*/        OPC_EmitMergeInputChains1_0,
/* 99315*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99318*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99330*/      /*Scope*/ 30, /*->99361*/
/* 99331*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99333*/        OPC_MoveParent,
/* 99334*/        OPC_RecordChild1, // #2 = $src2
/* 99335*/        OPC_CheckChild2Integer, 4, 
/* 99337*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99338*/        OPC_CheckType, MVT::i64,
/* 99340*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99342*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99345*/        OPC_EmitMergeInputChains1_0,
/* 99346*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99349*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99361*/      /*Scope*/ 30, /*->99392*/
/* 99362*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 99364*/        OPC_MoveParent,
/* 99365*/        OPC_RecordChild1, // #2 = $src2
/* 99366*/        OPC_CheckChild2Integer, 9, 
/* 99368*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99369*/        OPC_CheckType, MVT::i16,
/* 99371*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99373*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99376*/        OPC_EmitMergeInputChains1_0,
/* 99377*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99380*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99392*/      /*Scope*/ 30, /*->99423*/
/* 99393*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 99395*/        OPC_MoveParent,
/* 99396*/        OPC_RecordChild1, // #2 = $src2
/* 99397*/        OPC_CheckChild2Integer, 9, 
/* 99399*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99400*/        OPC_CheckType, MVT::i32,
/* 99402*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99404*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99407*/        OPC_EmitMergeInputChains1_0,
/* 99408*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99411*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99423*/      /*Scope*/ 30, /*->99454*/
/* 99424*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99426*/        OPC_MoveParent,
/* 99427*/        OPC_RecordChild1, // #2 = $src2
/* 99428*/        OPC_CheckChild2Integer, 9, 
/* 99430*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99431*/        OPC_CheckType, MVT::i64,
/* 99433*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99435*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99438*/        OPC_EmitMergeInputChains1_0,
/* 99439*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99442*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99454*/      /*Scope*/ 30, /*->99485*/
/* 99455*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 99457*/        OPC_MoveParent,
/* 99458*/        OPC_RecordChild1, // #2 = $src2
/* 99459*/        OPC_CheckChild2Integer, 3, 
/* 99461*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99462*/        OPC_CheckType, MVT::i16,
/* 99464*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99466*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99469*/        OPC_EmitMergeInputChains1_0,
/* 99470*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99473*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVA16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99485*/      /*Scope*/ 30, /*->99516*/
/* 99486*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 99488*/        OPC_MoveParent,
/* 99489*/        OPC_RecordChild1, // #2 = $src2
/* 99490*/        OPC_CheckChild2Integer, 3, 
/* 99492*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99493*/        OPC_CheckType, MVT::i32,
/* 99495*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99497*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99500*/        OPC_EmitMergeInputChains1_0,
/* 99501*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99504*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVA32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99516*/      /*Scope*/ 30, /*->99547*/
/* 99517*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99519*/        OPC_MoveParent,
/* 99520*/        OPC_RecordChild1, // #2 = $src2
/* 99521*/        OPC_CheckChild2Integer, 3, 
/* 99523*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99524*/        OPC_CheckType, MVT::i64,
/* 99526*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99528*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99531*/        OPC_EmitMergeInputChains1_0,
/* 99532*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99535*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVA64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99547*/      /*Scope*/ 30, /*->99578*/
/* 99548*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 99550*/        OPC_MoveParent,
/* 99551*/        OPC_RecordChild1, // #2 = $src2
/* 99552*/        OPC_CheckChild2Integer, 0, 
/* 99554*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99555*/        OPC_CheckType, MVT::i16,
/* 99557*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99559*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99562*/        OPC_EmitMergeInputChains1_0,
/* 99563*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99566*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVBE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99578*/      /*Scope*/ 30, /*->99609*/
/* 99579*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 99581*/        OPC_MoveParent,
/* 99582*/        OPC_RecordChild1, // #2 = $src2
/* 99583*/        OPC_CheckChild2Integer, 0, 
/* 99585*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99586*/        OPC_CheckType, MVT::i32,
/* 99588*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99590*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99593*/        OPC_EmitMergeInputChains1_0,
/* 99594*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99597*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVBE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99609*/      /*Scope*/ 30, /*->99640*/
/* 99610*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99612*/        OPC_MoveParent,
/* 99613*/        OPC_RecordChild1, // #2 = $src2
/* 99614*/        OPC_CheckChild2Integer, 0, 
/* 99616*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99617*/        OPC_CheckType, MVT::i64,
/* 99619*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99621*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99624*/        OPC_EmitMergeInputChains1_0,
/* 99625*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99628*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVBE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99640*/      /*Scope*/ 30, /*->99671*/
/* 99641*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 99643*/        OPC_MoveParent,
/* 99644*/        OPC_RecordChild1, // #2 = $src2
/* 99645*/        OPC_CheckChild2Integer, 7, 
/* 99647*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99648*/        OPC_CheckType, MVT::i16,
/* 99650*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99652*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99655*/        OPC_EmitMergeInputChains1_0,
/* 99656*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99659*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVGE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99671*/      /*Scope*/ 30, /*->99702*/
/* 99672*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 99674*/        OPC_MoveParent,
/* 99675*/        OPC_RecordChild1, // #2 = $src2
/* 99676*/        OPC_CheckChild2Integer, 7, 
/* 99678*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99679*/        OPC_CheckType, MVT::i32,
/* 99681*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99683*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99686*/        OPC_EmitMergeInputChains1_0,
/* 99687*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99690*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVGE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99702*/      /*Scope*/ 30, /*->99733*/
/* 99703*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99705*/        OPC_MoveParent,
/* 99706*/        OPC_RecordChild1, // #2 = $src2
/* 99707*/        OPC_CheckChild2Integer, 7, 
/* 99709*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99710*/        OPC_CheckType, MVT::i64,
/* 99712*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99714*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99717*/        OPC_EmitMergeInputChains1_0,
/* 99718*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99721*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVGE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99733*/      /*Scope*/ 30, /*->99764*/
/* 99734*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 99736*/        OPC_MoveParent,
/* 99737*/        OPC_RecordChild1, // #2 = $src2
/* 99738*/        OPC_CheckChild2Integer, 6, 
/* 99740*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99741*/        OPC_CheckType, MVT::i16,
/* 99743*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99745*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99748*/        OPC_EmitMergeInputChains1_0,
/* 99749*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99752*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVL16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99764*/      /*Scope*/ 30, /*->99795*/
/* 99765*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 99767*/        OPC_MoveParent,
/* 99768*/        OPC_RecordChild1, // #2 = $src2
/* 99769*/        OPC_CheckChild2Integer, 6, 
/* 99771*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99772*/        OPC_CheckType, MVT::i32,
/* 99774*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99776*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99779*/        OPC_EmitMergeInputChains1_0,
/* 99780*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99783*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVL32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99795*/      /*Scope*/ 30, /*->99826*/
/* 99796*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99798*/        OPC_MoveParent,
/* 99799*/        OPC_RecordChild1, // #2 = $src2
/* 99800*/        OPC_CheckChild2Integer, 6, 
/* 99802*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99803*/        OPC_CheckType, MVT::i64,
/* 99805*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99807*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99810*/        OPC_EmitMergeInputChains1_0,
/* 99811*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99814*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVL64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99826*/      /*Scope*/ 30, /*->99857*/
/* 99827*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 99829*/        OPC_MoveParent,
/* 99830*/        OPC_RecordChild1, // #2 = $src2
/* 99831*/        OPC_CheckChild2Integer, 8, 
/* 99833*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99834*/        OPC_CheckType, MVT::i16,
/* 99836*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99838*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99841*/        OPC_EmitMergeInputChains1_0,
/* 99842*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99845*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVG16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99857*/      /*Scope*/ 30, /*->99888*/
/* 99858*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 99860*/        OPC_MoveParent,
/* 99861*/        OPC_RecordChild1, // #2 = $src2
/* 99862*/        OPC_CheckChild2Integer, 8, 
/* 99864*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99865*/        OPC_CheckType, MVT::i32,
/* 99867*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99869*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99872*/        OPC_EmitMergeInputChains1_0,
/* 99873*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99876*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVG32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99888*/      /*Scope*/ 30, /*->99919*/
/* 99889*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99891*/        OPC_MoveParent,
/* 99892*/        OPC_RecordChild1, // #2 = $src2
/* 99893*/        OPC_CheckChild2Integer, 8, 
/* 99895*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99896*/        OPC_CheckType, MVT::i64,
/* 99898*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99900*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99903*/        OPC_EmitMergeInputChains1_0,
/* 99904*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99907*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVG64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99919*/      /*Scope*/ 30, /*->99950*/
/* 99920*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 99922*/        OPC_MoveParent,
/* 99923*/        OPC_RecordChild1, // #2 = $src2
/* 99924*/        OPC_CheckChild2Integer, 5, 
/* 99926*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99927*/        OPC_CheckType, MVT::i16,
/* 99929*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99931*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99934*/        OPC_EmitMergeInputChains1_0,
/* 99935*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99938*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVLE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99950*/      /*Scope*/ 30, /*->99981*/
/* 99951*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 99953*/        OPC_MoveParent,
/* 99954*/        OPC_RecordChild1, // #2 = $src2
/* 99955*/        OPC_CheckChild2Integer, 5, 
/* 99957*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99958*/        OPC_CheckType, MVT::i32,
/* 99960*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99962*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99965*/        OPC_EmitMergeInputChains1_0,
/* 99966*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 99969*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVLE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/* 99981*/      /*Scope*/ 30, /*->100012*/
/* 99982*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99984*/        OPC_MoveParent,
/* 99985*/        OPC_RecordChild1, // #2 = $src2
/* 99986*/        OPC_CheckChild2Integer, 5, 
/* 99988*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 99989*/        OPC_CheckType, MVT::i64,
/* 99991*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/* 99993*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 99996*/        OPC_EmitMergeInputChains1_0,
/* 99997*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100000*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVLE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100012*/      /*Scope*/ 30, /*->100043*/
/*100013*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*100015*/        OPC_MoveParent,
/*100016*/        OPC_RecordChild1, // #2 = $src2
/*100017*/        OPC_CheckChild2Integer, 14, 
/*100019*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100020*/        OPC_CheckType, MVT::i16,
/*100022*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100024*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100027*/        OPC_EmitMergeInputChains1_0,
/*100028*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100031*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNP16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100043*/      /*Scope*/ 30, /*->100074*/
/*100044*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*100046*/        OPC_MoveParent,
/*100047*/        OPC_RecordChild1, // #2 = $src2
/*100048*/        OPC_CheckChild2Integer, 14, 
/*100050*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100051*/        OPC_CheckType, MVT::i32,
/*100053*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100055*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100058*/        OPC_EmitMergeInputChains1_0,
/*100059*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100062*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNP32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100074*/      /*Scope*/ 30, /*->100105*/
/*100075*/        OPC_CheckPredicate, 9, // Predicate_load
/*100077*/        OPC_MoveParent,
/*100078*/        OPC_RecordChild1, // #2 = $src2
/*100079*/        OPC_CheckChild2Integer, 14, 
/*100081*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100082*/        OPC_CheckType, MVT::i64,
/*100084*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100086*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100089*/        OPC_EmitMergeInputChains1_0,
/*100090*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100093*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNP64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100105*/      /*Scope*/ 30, /*->100136*/
/*100106*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*100108*/        OPC_MoveParent,
/*100109*/        OPC_RecordChild1, // #2 = $src2
/*100110*/        OPC_CheckChild2Integer, 11, 
/*100112*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100113*/        OPC_CheckType, MVT::i16,
/*100115*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100117*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100120*/        OPC_EmitMergeInputChains1_0,
/*100121*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100124*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVP16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100136*/      /*Scope*/ 30, /*->100167*/
/*100137*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*100139*/        OPC_MoveParent,
/*100140*/        OPC_RecordChild1, // #2 = $src2
/*100141*/        OPC_CheckChild2Integer, 11, 
/*100143*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100144*/        OPC_CheckType, MVT::i32,
/*100146*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100148*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100151*/        OPC_EmitMergeInputChains1_0,
/*100152*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100155*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVP32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100167*/      /*Scope*/ 30, /*->100198*/
/*100168*/        OPC_CheckPredicate, 9, // Predicate_load
/*100170*/        OPC_MoveParent,
/*100171*/        OPC_RecordChild1, // #2 = $src2
/*100172*/        OPC_CheckChild2Integer, 11, 
/*100174*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100175*/        OPC_CheckType, MVT::i64,
/*100177*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100179*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100182*/        OPC_EmitMergeInputChains1_0,
/*100183*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100186*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVP64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100198*/      /*Scope*/ 30, /*->100229*/
/*100199*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*100201*/        OPC_MoveParent,
/*100202*/        OPC_RecordChild1, // #2 = $src2
/*100203*/        OPC_CheckChild2Integer, 15, 
/*100205*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100206*/        OPC_CheckType, MVT::i16,
/*100208*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100210*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100213*/        OPC_EmitMergeInputChains1_0,
/*100214*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100217*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNS16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100229*/      /*Scope*/ 30, /*->100260*/
/*100230*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*100232*/        OPC_MoveParent,
/*100233*/        OPC_RecordChild1, // #2 = $src2
/*100234*/        OPC_CheckChild2Integer, 15, 
/*100236*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100237*/        OPC_CheckType, MVT::i32,
/*100239*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100241*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100244*/        OPC_EmitMergeInputChains1_0,
/*100245*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100248*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNS32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100260*/      /*Scope*/ 30, /*->100291*/
/*100261*/        OPC_CheckPredicate, 9, // Predicate_load
/*100263*/        OPC_MoveParent,
/*100264*/        OPC_RecordChild1, // #2 = $src2
/*100265*/        OPC_CheckChild2Integer, 15, 
/*100267*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100268*/        OPC_CheckType, MVT::i64,
/*100270*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100272*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100275*/        OPC_EmitMergeInputChains1_0,
/*100276*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100279*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNS64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100291*/      /*Scope*/ 30, /*->100322*/
/*100292*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*100294*/        OPC_MoveParent,
/*100295*/        OPC_RecordChild1, // #2 = $src2
/*100296*/        OPC_CheckChild2Integer, 12, 
/*100298*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100299*/        OPC_CheckType, MVT::i16,
/*100301*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100303*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100306*/        OPC_EmitMergeInputChains1_0,
/*100307*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100310*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVS16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100322*/      /*Scope*/ 30, /*->100353*/
/*100323*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*100325*/        OPC_MoveParent,
/*100326*/        OPC_RecordChild1, // #2 = $src2
/*100327*/        OPC_CheckChild2Integer, 12, 
/*100329*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100330*/        OPC_CheckType, MVT::i32,
/*100332*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100334*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100337*/        OPC_EmitMergeInputChains1_0,
/*100338*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100341*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVS32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100353*/      /*Scope*/ 30, /*->100384*/
/*100354*/        OPC_CheckPredicate, 9, // Predicate_load
/*100356*/        OPC_MoveParent,
/*100357*/        OPC_RecordChild1, // #2 = $src2
/*100358*/        OPC_CheckChild2Integer, 12, 
/*100360*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100361*/        OPC_CheckType, MVT::i64,
/*100363*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100365*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100368*/        OPC_EmitMergeInputChains1_0,
/*100369*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100372*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVS64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100384*/      /*Scope*/ 30, /*->100415*/
/*100385*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*100387*/        OPC_MoveParent,
/*100388*/        OPC_RecordChild1, // #2 = $src2
/*100389*/        OPC_CheckChild2Integer, 13, 
/*100391*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100392*/        OPC_CheckType, MVT::i16,
/*100394*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100396*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100399*/        OPC_EmitMergeInputChains1_0,
/*100400*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100403*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNO16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100415*/      /*Scope*/ 30, /*->100446*/
/*100416*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*100418*/        OPC_MoveParent,
/*100419*/        OPC_RecordChild1, // #2 = $src2
/*100420*/        OPC_CheckChild2Integer, 13, 
/*100422*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100423*/        OPC_CheckType, MVT::i32,
/*100425*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100427*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100430*/        OPC_EmitMergeInputChains1_0,
/*100431*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100434*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNO32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100446*/      /*Scope*/ 30, /*->100477*/
/*100447*/        OPC_CheckPredicate, 9, // Predicate_load
/*100449*/        OPC_MoveParent,
/*100450*/        OPC_RecordChild1, // #2 = $src2
/*100451*/        OPC_CheckChild2Integer, 13, 
/*100453*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100454*/        OPC_CheckType, MVT::i64,
/*100456*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100458*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100461*/        OPC_EmitMergeInputChains1_0,
/*100462*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100465*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNO64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100477*/      /*Scope*/ 30, /*->100508*/
/*100478*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*100480*/        OPC_MoveParent,
/*100481*/        OPC_RecordChild1, // #2 = $src2
/*100482*/        OPC_CheckChild2Integer, 10, 
/*100484*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100485*/        OPC_CheckType, MVT::i16,
/*100487*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100489*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100492*/        OPC_EmitMergeInputChains1_0,
/*100493*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100496*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVO16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100508*/      /*Scope*/ 30, /*->100539*/
/*100509*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*100511*/        OPC_MoveParent,
/*100512*/        OPC_RecordChild1, // #2 = $src2
/*100513*/        OPC_CheckChild2Integer, 10, 
/*100515*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100516*/        OPC_CheckType, MVT::i32,
/*100518*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100520*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100523*/        OPC_EmitMergeInputChains1_0,
/*100524*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100527*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVO32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100539*/      /*Scope*/ 30, /*->100570*/
/*100540*/        OPC_CheckPredicate, 9, // Predicate_load
/*100542*/        OPC_MoveParent,
/*100543*/        OPC_RecordChild1, // #2 = $src2
/*100544*/        OPC_CheckChild2Integer, 10, 
/*100546*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*100547*/        OPC_CheckType, MVT::i64,
/*100549*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100551*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/*100554*/        OPC_EmitMergeInputChains1_0,
/*100555*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*100558*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVO64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*100570*/      0, /*End of Scope*/
/*100571*/    /*Scope*/ 101|128,12/*1637*/, /*->102210*/
/*100573*/      OPC_RecordChild0, // #0 = $src1
/*100574*/      OPC_RecordChild1, // #1 = $src2
/*100575*/      OPC_Scope, 50, /*->100627*/ // 26 children in Scope
/*100577*/        OPC_CheckChild2Integer, 13, 
/*100579*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*100580*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->100596
/*100583*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100585*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100588*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVO16rr), 0|OPFL_GlueInput,
                        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)
/*100596*/        /*SwitchType*/ 13, MVT::i32,// ->100611
/*100598*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100600*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100603*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVO32rr), 0|OPFL_GlueInput,
                        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)
/*100611*/        /*SwitchType*/ 13, MVT::i64,// ->100626
/*100613*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100615*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100618*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVO64rr), 0|OPFL_GlueInput,
                        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)
/*100626*/        0, // EndSwitchType
/*100627*/      /*Scope*/ 50, /*->100678*/
/*100628*/        OPC_CheckChild2Integer, 10, 
/*100630*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*100631*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->100647
/*100634*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100636*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100639*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNO16rr), 0|OPFL_GlueInput,
                        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)
/*100647*/        /*SwitchType*/ 13, MVT::i32,// ->100662
/*100649*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100651*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100654*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNO32rr), 0|OPFL_GlueInput,
                        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)
/*100662*/        /*SwitchType*/ 13, MVT::i64,// ->100677
/*100664*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100666*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100669*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNO64rr), 0|OPFL_GlueInput,
                        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)
/*100677*/        0, // EndSwitchType
/*100678*/      /*Scope*/ 50, /*->100729*/
/*100679*/        OPC_CheckChild2Integer, 2, 
/*100681*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*100682*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->100698
/*100685*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100687*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100690*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVB16rr), 0|OPFL_GlueInput,
                        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)
/*100698*/        /*SwitchType*/ 13, MVT::i32,// ->100713
/*100700*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100702*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100705*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVB32rr), 0|OPFL_GlueInput,
                        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)
/*100713*/        /*SwitchType*/ 13, MVT::i64,// ->100728
/*100715*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100717*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100720*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVB64rr), 0|OPFL_GlueInput,
                        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)
/*100728*/        0, // EndSwitchType
/*100729*/      /*Scope*/ 50, /*->100780*/
/*100730*/        OPC_CheckChild2Integer, 1, 
/*100732*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*100733*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->100749
/*100736*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100738*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100741*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVAE16rr), 0|OPFL_GlueInput,
                        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)
/*100749*/        /*SwitchType*/ 13, MVT::i32,// ->100764
/*100751*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100753*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100756*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVAE32rr), 0|OPFL_GlueInput,
                        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)
/*100764*/        /*SwitchType*/ 13, MVT::i64,// ->100779
/*100766*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100768*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100771*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVAE64rr), 0|OPFL_GlueInput,
                        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)
/*100779*/        0, // EndSwitchType
/*100780*/      /*Scope*/ 50, /*->100831*/
/*100781*/        OPC_CheckChild2Integer, 4, 
/*100783*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*100784*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->100800
/*100787*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100789*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100792*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVE16rr), 0|OPFL_GlueInput,
                        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)
/*100800*/        /*SwitchType*/ 13, MVT::i32,// ->100815
/*100802*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100804*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100807*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVE32rr), 0|OPFL_GlueInput,
                        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)
/*100815*/        /*SwitchType*/ 13, MVT::i64,// ->100830
/*100817*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100819*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100822*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVE64rr), 0|OPFL_GlueInput,
                        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)
/*100830*/        0, // EndSwitchType
/*100831*/      /*Scope*/ 50, /*->100882*/
/*100832*/        OPC_CheckChild2Integer, 9, 
/*100834*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*100835*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->100851
/*100838*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100840*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100843*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNE16rr), 0|OPFL_GlueInput,
                        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)
/*100851*/        /*SwitchType*/ 13, MVT::i32,// ->100866
/*100853*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100855*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100858*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNE32rr), 0|OPFL_GlueInput,
                        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)
/*100866*/        /*SwitchType*/ 13, MVT::i64,// ->100881
/*100868*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100870*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100873*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNE64rr), 0|OPFL_GlueInput,
                        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)
/*100881*/        0, // EndSwitchType
/*100882*/      /*Scope*/ 50, /*->100933*/
/*100883*/        OPC_CheckChild2Integer, 3, 
/*100885*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*100886*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->100902
/*100889*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100891*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100894*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVBE16rr), 0|OPFL_GlueInput,
                        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)
/*100902*/        /*SwitchType*/ 13, MVT::i32,// ->100917
/*100904*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100906*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100909*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVBE32rr), 0|OPFL_GlueInput,
                        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)
/*100917*/        /*SwitchType*/ 13, MVT::i64,// ->100932
/*100919*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100921*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100924*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVBE64rr), 0|OPFL_GlueInput,
                        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)
/*100932*/        0, // EndSwitchType
/*100933*/      /*Scope*/ 50, /*->100984*/
/*100934*/        OPC_CheckChild2Integer, 0, 
/*100936*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*100937*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->100953
/*100940*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100942*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100945*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVA16rr), 0|OPFL_GlueInput,
                        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)
/*100953*/        /*SwitchType*/ 13, MVT::i32,// ->100968
/*100955*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100957*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100960*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVA32rr), 0|OPFL_GlueInput,
                        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)
/*100968*/        /*SwitchType*/ 13, MVT::i64,// ->100983
/*100970*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100972*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100975*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVA64rr), 0|OPFL_GlueInput,
                        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)
/*100983*/        0, // EndSwitchType
/*100984*/      /*Scope*/ 50, /*->101035*/
/*100985*/        OPC_CheckChild2Integer, 15, 
/*100987*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*100988*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->101004
/*100991*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*100993*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*100996*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVS16rr), 0|OPFL_GlueInput,
                        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)
/*101004*/        /*SwitchType*/ 13, MVT::i32,// ->101019
/*101006*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101008*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101011*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVS32rr), 0|OPFL_GlueInput,
                        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)
/*101019*/        /*SwitchType*/ 13, MVT::i64,// ->101034
/*101021*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101023*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101026*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVS64rr), 0|OPFL_GlueInput,
                        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)
/*101034*/        0, // EndSwitchType
/*101035*/      /*Scope*/ 50, /*->101086*/
/*101036*/        OPC_CheckChild2Integer, 12, 
/*101038*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101039*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->101055
/*101042*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101044*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101047*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNS16rr), 0|OPFL_GlueInput,
                        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)
/*101055*/        /*SwitchType*/ 13, MVT::i32,// ->101070
/*101057*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101059*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101062*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNS32rr), 0|OPFL_GlueInput,
                        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)
/*101070*/        /*SwitchType*/ 13, MVT::i64,// ->101085
/*101072*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101074*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101077*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNS64rr), 0|OPFL_GlueInput,
                        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)
/*101085*/        0, // EndSwitchType
/*101086*/      /*Scope*/ 50, /*->101137*/
/*101087*/        OPC_CheckChild2Integer, 14, 
/*101089*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101090*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->101106
/*101093*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101095*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101098*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVP16rr), 0|OPFL_GlueInput,
                        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)
/*101106*/        /*SwitchType*/ 13, MVT::i32,// ->101121
/*101108*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101110*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101113*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVP32rr), 0|OPFL_GlueInput,
                        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)
/*101121*/        /*SwitchType*/ 13, MVT::i64,// ->101136
/*101123*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101125*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101128*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVP64rr), 0|OPFL_GlueInput,
                        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)
/*101136*/        0, // EndSwitchType
/*101137*/      /*Scope*/ 50, /*->101188*/
/*101138*/        OPC_CheckChild2Integer, 11, 
/*101140*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101141*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->101157
/*101144*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101146*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101149*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNP16rr), 0|OPFL_GlueInput,
                        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)
/*101157*/        /*SwitchType*/ 13, MVT::i32,// ->101172
/*101159*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101161*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101164*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNP32rr), 0|OPFL_GlueInput,
                        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)
/*101172*/        /*SwitchType*/ 13, MVT::i64,// ->101187
/*101174*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101176*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101179*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVNP64rr), 0|OPFL_GlueInput,
                        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)
/*101187*/        0, // EndSwitchType
/*101188*/      /*Scope*/ 50, /*->101239*/
/*101189*/        OPC_CheckChild2Integer, 7, 
/*101191*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101192*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->101208
/*101195*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101197*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101200*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVL16rr), 0|OPFL_GlueInput,
                        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)
/*101208*/        /*SwitchType*/ 13, MVT::i32,// ->101223
/*101210*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101212*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101215*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVL32rr), 0|OPFL_GlueInput,
                        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)
/*101223*/        /*SwitchType*/ 13, MVT::i64,// ->101238
/*101225*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101227*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101230*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVL64rr), 0|OPFL_GlueInput,
                        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)
/*101238*/        0, // EndSwitchType
/*101239*/      /*Scope*/ 50, /*->101290*/
/*101240*/        OPC_CheckChild2Integer, 6, 
/*101242*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101243*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->101259
/*101246*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101248*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101251*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVGE16rr), 0|OPFL_GlueInput,
                        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)
/*101259*/        /*SwitchType*/ 13, MVT::i32,// ->101274
/*101261*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101263*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101266*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVGE32rr), 0|OPFL_GlueInput,
                        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)
/*101274*/        /*SwitchType*/ 13, MVT::i64,// ->101289
/*101276*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101278*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101281*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVGE64rr), 0|OPFL_GlueInput,
                        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)
/*101289*/        0, // EndSwitchType
/*101290*/      /*Scope*/ 50, /*->101341*/
/*101291*/        OPC_CheckChild2Integer, 8, 
/*101293*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101294*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->101310
/*101297*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101299*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101302*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVLE16rr), 0|OPFL_GlueInput,
                        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)
/*101310*/        /*SwitchType*/ 13, MVT::i32,// ->101325
/*101312*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101314*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101317*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVLE32rr), 0|OPFL_GlueInput,
                        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)
/*101325*/        /*SwitchType*/ 13, MVT::i64,// ->101340
/*101327*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101329*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101332*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVLE64rr), 0|OPFL_GlueInput,
                        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)
/*101340*/        0, // EndSwitchType
/*101341*/      /*Scope*/ 50, /*->101392*/
/*101342*/        OPC_CheckChild2Integer, 5, 
/*101344*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101345*/        OPC_SwitchType /*3 cases */, 13, MVT::i16,// ->101361
/*101348*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101350*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101353*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVG16rr), 0|OPFL_GlueInput,
                        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)
/*101361*/        /*SwitchType*/ 13, MVT::i32,// ->101376
/*101363*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101365*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101368*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVG32rr), 0|OPFL_GlueInput,
                        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)
/*101376*/        /*SwitchType*/ 13, MVT::i64,// ->101391
/*101378*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101380*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101383*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOVG64rr), 0|OPFL_GlueInput,
                        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)
/*101391*/        0, // EndSwitchType
/*101392*/      /*Scope*/ 61, /*->101454*/
/*101393*/        OPC_RecordChild2, // #2 = $cond
/*101394*/        OPC_MoveChild2,
/*101395*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101398*/        OPC_MoveParent,
/*101399*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*101400*/        OPC_SwitchType /*3 cases */, 14, MVT::i8,// ->101417
/*101403*/          OPC_EmitConvertToTarget, 2,
/*101405*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*101408*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_GR8), 0|OPFL_GlueInput,
                        MVT::i8, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[i8] } GR8:{ *:[i8] }:$t, GR8:{ *:[i8] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_GR8:{ *:[i8] } GR8:{ *:[i8] }:$t, GR8:{ *:[i8] }:$f, (imm:{ *:[i8] }):$cond)
/*101417*/        /*SwitchType*/ 16, MVT::i32,// ->101435
/*101419*/          OPC_CheckPatternPredicate, 111, // (!Subtarget->hasCMov())
/*101421*/          OPC_EmitConvertToTarget, 2,
/*101423*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*101426*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_GR32), 0|OPFL_GlueInput,
                        MVT::i32, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[i32] } GR32:{ *:[i32] }:$t, GR32:{ *:[i32] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_GR32:{ *:[i32] } GR32:{ *:[i32] }:$t, GR32:{ *:[i32] }:$f, (imm:{ *:[i8] }):$cond)
/*101435*/        /*SwitchType*/ 16, MVT::i16,// ->101453
/*101437*/          OPC_CheckPatternPredicate, 111, // (!Subtarget->hasCMov())
/*101439*/          OPC_EmitConvertToTarget, 2,
/*101441*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*101444*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_GR16), 0|OPFL_GlueInput,
                        MVT::i16, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[i16] } GR16:{ *:[i16] }:$t, GR16:{ *:[i16] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_GR16:{ *:[i16] } GR16:{ *:[i16] }:$t, GR16:{ *:[i16] }:$f, (imm:{ *:[i8] }):$cond)
/*101453*/        0, // EndSwitchType
/*101454*/      /*Scope*/ 53, /*->101508*/
/*101455*/        OPC_CheckChild2Integer, 2, 
/*101457*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101458*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->101475
/*101461*/          OPC_CheckPatternPredicate, 112, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/*101463*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101466*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVB_Fp32), 0|OPFL_GlueInput,
                        MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2, 2:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVB_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*101475*/        /*SwitchType*/ 14, MVT::f64,// ->101491
/*101477*/          OPC_CheckPatternPredicate, 113, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/*101479*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101482*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVB_Fp64), 0|OPFL_GlueInput,
                        MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2, 2:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVB_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*101491*/        /*SwitchType*/ 14, MVT::f80,// ->101507
/*101493*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101495*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101498*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVB_Fp80), 0|OPFL_GlueInput,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2, 2:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVB_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*101507*/        0, // EndSwitchType
/*101508*/      /*Scope*/ 53, /*->101562*/
/*101509*/        OPC_CheckChild2Integer, 3, 
/*101511*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101512*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->101529
/*101515*/          OPC_CheckPatternPredicate, 112, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/*101517*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101520*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVBE_Fp32), 0|OPFL_GlueInput,
                        MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2, 3:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVBE_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*101529*/        /*SwitchType*/ 14, MVT::f64,// ->101545
/*101531*/          OPC_CheckPatternPredicate, 113, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/*101533*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101536*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVBE_Fp64), 0|OPFL_GlueInput,
                        MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2, 3:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVBE_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*101545*/        /*SwitchType*/ 14, MVT::f80,// ->101561
/*101547*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101549*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101552*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVBE_Fp80), 0|OPFL_GlueInput,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2, 3:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVBE_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*101561*/        0, // EndSwitchType
/*101562*/      /*Scope*/ 53, /*->101616*/
/*101563*/        OPC_CheckChild2Integer, 4, 
/*101565*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101566*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->101583
/*101569*/          OPC_CheckPatternPredicate, 112, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/*101571*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101574*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVE_Fp32), 0|OPFL_GlueInput,
                        MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2, 4:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVE_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*101583*/        /*SwitchType*/ 14, MVT::f64,// ->101599
/*101585*/          OPC_CheckPatternPredicate, 113, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/*101587*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101590*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVE_Fp64), 0|OPFL_GlueInput,
                        MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2, 4:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVE_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*101599*/        /*SwitchType*/ 14, MVT::f80,// ->101615
/*101601*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101603*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101606*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVE_Fp80), 0|OPFL_GlueInput,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2, 4:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVE_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*101615*/        0, // EndSwitchType
/*101616*/      /*Scope*/ 53, /*->101670*/
/*101617*/        OPC_CheckChild2Integer, 14, 
/*101619*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101620*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->101637
/*101623*/          OPC_CheckPatternPredicate, 112, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/*101625*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101628*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVP_Fp32), 0|OPFL_GlueInput,
                        MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2, 14:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVP_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*101637*/        /*SwitchType*/ 14, MVT::f64,// ->101653
/*101639*/          OPC_CheckPatternPredicate, 113, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/*101641*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101644*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVP_Fp64), 0|OPFL_GlueInput,
                        MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2, 14:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVP_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*101653*/        /*SwitchType*/ 14, MVT::f80,// ->101669
/*101655*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101657*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101660*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVP_Fp80), 0|OPFL_GlueInput,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2, 14:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVP_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*101669*/        0, // EndSwitchType
/*101670*/      /*Scope*/ 53, /*->101724*/
/*101671*/        OPC_CheckChild2Integer, 1, 
/*101673*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101674*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->101691
/*101677*/          OPC_CheckPatternPredicate, 112, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/*101679*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101682*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNB_Fp32), 0|OPFL_GlueInput,
                        MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2, 1:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNB_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*101691*/        /*SwitchType*/ 14, MVT::f64,// ->101707
/*101693*/          OPC_CheckPatternPredicate, 113, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/*101695*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101698*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNB_Fp64), 0|OPFL_GlueInput,
                        MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2, 1:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNB_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*101707*/        /*SwitchType*/ 14, MVT::f80,// ->101723
/*101709*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101711*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101714*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNB_Fp80), 0|OPFL_GlueInput,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2, 1:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNB_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*101723*/        0, // EndSwitchType
/*101724*/      /*Scope*/ 53, /*->101778*/
/*101725*/        OPC_CheckChild2Integer, 0, 
/*101727*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101728*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->101745
/*101731*/          OPC_CheckPatternPredicate, 112, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/*101733*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101736*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNBE_Fp32), 0|OPFL_GlueInput,
                        MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2, 0:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNBE_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*101745*/        /*SwitchType*/ 14, MVT::f64,// ->101761
/*101747*/          OPC_CheckPatternPredicate, 113, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/*101749*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101752*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNBE_Fp64), 0|OPFL_GlueInput,
                        MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2, 0:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNBE_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*101761*/        /*SwitchType*/ 14, MVT::f80,// ->101777
/*101763*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101765*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101768*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNBE_Fp80), 0|OPFL_GlueInput,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2, 0:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNBE_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*101777*/        0, // EndSwitchType
/*101778*/      /*Scope*/ 53, /*->101832*/
/*101779*/        OPC_CheckChild2Integer, 9, 
/*101781*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101782*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->101799
/*101785*/          OPC_CheckPatternPredicate, 112, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/*101787*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101790*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNE_Fp32), 0|OPFL_GlueInput,
                        MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2, 9:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNE_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*101799*/        /*SwitchType*/ 14, MVT::f64,// ->101815
/*101801*/          OPC_CheckPatternPredicate, 113, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/*101803*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101806*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNE_Fp64), 0|OPFL_GlueInput,
                        MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2, 9:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNE_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*101815*/        /*SwitchType*/ 14, MVT::f80,// ->101831
/*101817*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101819*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101822*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNE_Fp80), 0|OPFL_GlueInput,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2, 9:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNE_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*101831*/        0, // EndSwitchType
/*101832*/      /*Scope*/ 53, /*->101886*/
/*101833*/        OPC_CheckChild2Integer, 11, 
/*101835*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/*101836*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->101853
/*101839*/          OPC_CheckPatternPredicate, 112, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/*101841*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101844*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNP_Fp32), 0|OPFL_GlueInput,
                        MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2, 11:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNP_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*101853*/        /*SwitchType*/ 14, MVT::f64,// ->101869
/*101855*/          OPC_CheckPatternPredicate, 113, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/*101857*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101860*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNP_Fp64), 0|OPFL_GlueInput,
                        MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2, 11:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNP_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*101869*/        /*SwitchType*/ 14, MVT::f80,// ->101885
/*101871*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasCMov())
/*101873*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*101876*/          OPC_MorphNodeTo2, TARGET_VAL(X86::CMOVNP_Fp80), 0|OPFL_GlueInput,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2, 11:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNP_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*101885*/        0, // EndSwitchType
/*101886*/      /*Scope*/ 65|128,2/*321*/, /*->102209*/
/*101888*/        OPC_RecordChild2, // #2 = $cond
/*101889*/        OPC_MoveChild2,
/*101890*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101893*/        OPC_MoveParent,
/*101894*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/*101895*/        OPC_SwitchType /*17 cases */, 34, MVT::f32,// ->101932
/*101898*/          OPC_Scope, 16, /*->101916*/ // 2 children in Scope
/*101900*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*101902*/            OPC_EmitConvertToTarget, 2,
/*101904*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*101907*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_RFP32), 0|OPFL_GlueInput,
                          MVT::f32, 3/*#Ops*/, 0, 1, 4, 
                      // Src: (X86cmov:{ *:[f32] } RFP32:{ *:[f32] }:$t, RFP32:{ *:[f32] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_RFP32:{ *:[f32] } RFP32:{ *:[f32] }:$t, RFP32:{ *:[f32] }:$f, (imm:{ *:[i8] }):$cond)
/*101916*/          /*Scope*/ 14, /*->101931*/
/*101917*/            OPC_EmitConvertToTarget, 2,
/*101919*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*101922*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_FR32), 0|OPFL_GlueInput,
                          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)
/*101931*/          0, /*End of Scope*/
/*101932*/        /*SwitchType*/ 34, MVT::f64,// ->101968
/*101934*/          OPC_Scope, 16, /*->101952*/ // 2 children in Scope
/*101936*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*101938*/            OPC_EmitConvertToTarget, 2,
/*101940*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*101943*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_RFP64), 0|OPFL_GlueInput,
                          MVT::f64, 3/*#Ops*/, 0, 1, 4, 
                      // Src: (X86cmov:{ *:[f64] } RFP64:{ *:[f64] }:$t, RFP64:{ *:[f64] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_RFP64:{ *:[f64] } RFP64:{ *:[f64] }:$t, RFP64:{ *:[f64] }:$f, (imm:{ *:[i8] }):$cond)
/*101952*/          /*Scope*/ 14, /*->101967*/
/*101953*/            OPC_EmitConvertToTarget, 2,
/*101955*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*101958*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_FR64), 0|OPFL_GlueInput,
                          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)
/*101967*/          0, /*End of Scope*/
/*101968*/        /*SwitchType*/ 14, MVT::f80,// ->101984
/*101970*/          OPC_EmitConvertToTarget, 2,
/*101972*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*101975*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_RFP80), 0|OPFL_GlueInput,
                        MVT::f80, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[f80] } RFP80:{ *:[f80] }:$t, RFP80:{ *:[f80] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_RFP80:{ *:[f80] } RFP80:{ *:[f80] }:$t, RFP80:{ *:[f80] }:$f, (imm:{ *:[i8] }):$cond)
/*101984*/        /*SwitchType*/ 14, MVT::f128,// ->102000
/*101986*/          OPC_EmitConvertToTarget, 2,
/*101988*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*101991*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_F128), 0|OPFL_GlueInput,
                        MVT::f128, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[f128] } VR128:{ *:[f128] }:$t, VR128:{ *:[f128] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_F128:{ *:[f128] } VR128:{ *:[f128] }:$t, VR128:{ *:[f128] }:$f, (imm:{ *:[i8] }):$cond)
/*102000*/        /*SwitchType*/ 14, MVT::v2i64,// ->102016
/*102002*/          OPC_EmitConvertToTarget, 2,
/*102004*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102007*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V2I64), 0|OPFL_GlueInput,
                        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)
/*102016*/        /*SwitchType*/ 14, MVT::v4i64,// ->102032
/*102018*/          OPC_EmitConvertToTarget, 2,
/*102020*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102023*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V4I64), 0|OPFL_GlueInput,
                        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)
/*102032*/        /*SwitchType*/ 14, MVT::v8i64,// ->102048
/*102034*/          OPC_EmitConvertToTarget, 2,
/*102036*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102039*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V8I64), 0|OPFL_GlueInput,
                        MVT::v8i64, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[v8i64] } VR512:{ *:[v8i64] }:$t, VR512:{ *:[v8i64] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_V8I64:{ *:[v8i64] } VR512:{ *:[v8i64] }:$t, VR512:{ *:[v8i64] }:$f, (imm:{ *:[i8] }):$cond)
/*102048*/        /*SwitchType*/ 14, MVT::v8i1,// ->102064
/*102050*/          OPC_EmitConvertToTarget, 2,
/*102052*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102055*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V8I1), 0|OPFL_GlueInput,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[v8i1] } VK8:{ *:[v8i1] }:$t, VK8:{ *:[v8i1] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_V8I1:{ *:[v8i1] } VK8:{ *:[v8i1] }:$t, VK8:{ *:[v8i1] }:$f, (imm:{ *:[i8] }):$cond)
/*102064*/        /*SwitchType*/ 14, MVT::v16i1,// ->102080
/*102066*/          OPC_EmitConvertToTarget, 2,
/*102068*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102071*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V16I1), 0|OPFL_GlueInput,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[v16i1] } VK16:{ *:[v16i1] }:$t, VK16:{ *:[v16i1] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_V16I1:{ *:[v16i1] } VK16:{ *:[v16i1] }:$t, VK16:{ *:[v16i1] }:$f, (imm:{ *:[i8] }):$cond)
/*102080*/        /*SwitchType*/ 14, MVT::v32i1,// ->102096
/*102082*/          OPC_EmitConvertToTarget, 2,
/*102084*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102087*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V32I1), 0|OPFL_GlueInput,
                        MVT::v32i1, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[v32i1] } VK32:{ *:[v32i1] }:$t, VK32:{ *:[v32i1] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_V32I1:{ *:[v32i1] } VK32:{ *:[v32i1] }:$t, VK32:{ *:[v32i1] }:$f, (imm:{ *:[i8] }):$cond)
/*102096*/        /*SwitchType*/ 14, MVT::v64i1,// ->102112
/*102098*/          OPC_EmitConvertToTarget, 2,
/*102100*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102103*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V64I1), 0|OPFL_GlueInput,
                        MVT::v64i1, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[v64i1] } VK64:{ *:[v64i1] }:$t, VK64:{ *:[v64i1] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_V64I1:{ *:[v64i1] } VK64:{ *:[v64i1] }:$t, VK64:{ *:[v64i1] }:$f, (imm:{ *:[i8] }):$cond)
/*102112*/        /*SwitchType*/ 14, MVT::v4f32,// ->102128
/*102114*/          OPC_EmitConvertToTarget, 2,
/*102116*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102119*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V4F32), 0|OPFL_GlueInput,
                        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)
/*102128*/        /*SwitchType*/ 14, MVT::v2f64,// ->102144
/*102130*/          OPC_EmitConvertToTarget, 2,
/*102132*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102135*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V2F64), 0|OPFL_GlueInput,
                        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)
/*102144*/        /*SwitchType*/ 14, MVT::v8f32,// ->102160
/*102146*/          OPC_EmitConvertToTarget, 2,
/*102148*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102151*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V8F32), 0|OPFL_GlueInput,
                        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)
/*102160*/        /*SwitchType*/ 14, MVT::v4f64,// ->102176
/*102162*/          OPC_EmitConvertToTarget, 2,
/*102164*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102167*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V4F64), 0|OPFL_GlueInput,
                        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)
/*102176*/        /*SwitchType*/ 14, MVT::v8f64,// ->102192
/*102178*/          OPC_EmitConvertToTarget, 2,
/*102180*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102183*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V8F64), 0|OPFL_GlueInput,
                        MVT::v8f64, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[v8f64] } VR512:{ *:[v8f64] }:$t, VR512:{ *:[v8f64] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_V8F64:{ *:[v8f64] } VR512:{ *:[v8f64] }:$t, VR512:{ *:[v8f64] }:$f, (imm:{ *:[i8] }):$cond)
/*102192*/        /*SwitchType*/ 14, MVT::v16f32,// ->102208
/*102194*/          OPC_EmitConvertToTarget, 2,
/*102196*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*102199*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_V16F32), 0|OPFL_GlueInput,
                        MVT::v16f32, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:{ *:[v16f32] } VR512:{ *:[v16f32] }:$t, VR512:{ *:[v16f32] }:$f, (imm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_V16F32:{ *:[v16f32] } VR512:{ *:[v16f32] }:$t, VR512:{ *:[v16f32] }:$f, (imm:{ *:[i8] }):$cond)
/*102208*/        0, // EndSwitchType
/*102209*/      0, /*End of Scope*/
/*102210*/    0, /*End of Scope*/
/*102211*/  /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VAARG_64),// ->102262
/*102214*/    OPC_RecordMemRef,
/*102215*/    OPC_RecordNode, // #0 = 'X86vaarg64' chained node
/*102216*/    OPC_RecordChild1, // #1 = $ap
/*102217*/    OPC_RecordChild2, // #2 = $size
/*102218*/    OPC_MoveChild2,
/*102219*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102222*/    OPC_MoveParent,
/*102223*/    OPC_RecordChild3, // #3 = $mode
/*102224*/    OPC_MoveChild3,
/*102225*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102228*/    OPC_MoveParent,
/*102229*/    OPC_RecordChild4, // #4 = $align
/*102230*/    OPC_MoveChild4,
/*102231*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102234*/    OPC_MoveParent,
/*102235*/    OPC_CheckType, MVT::i64,
/*102237*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ap #5 #6 #7 #8 #9
/*102240*/    OPC_EmitMergeInputChains1_0,
/*102241*/    OPC_EmitConvertToTarget, 2,
/*102243*/    OPC_EmitConvertToTarget, 3,
/*102245*/    OPC_EmitConvertToTarget, 4,
/*102247*/    OPC_MorphNodeTo2, TARGET_VAL(X86::VAARG_64), 0|OPFL_Chain|OPFL_MemRefs,
                  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)
/*102262*/  /*SwitchOpcode*/ 110|128,1/*238*/, TARGET_VAL(X86ISD::TC_RETURN),// ->102504
/*102266*/    OPC_RecordNode, // #0 = 'X86tcret' chained node
/*102267*/    OPC_CaptureGlueInput,
/*102268*/    OPC_Scope, 69, /*->102339*/ // 2 children in Scope
/*102270*/      OPC_MoveChild1,
/*102271*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*102274*/      OPC_RecordMemRef,
/*102275*/      OPC_RecordNode, // #1 = 'ld' chained node
/*102276*/      OPC_CheckFoldableChainNode,
/*102277*/      OPC_RecordChild1, // #2 = $dst
/*102278*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*102280*/      OPC_CheckPredicate, 9, // Predicate_load
/*102282*/      OPC_MoveParent,
/*102283*/      OPC_RecordChild2, // #3 = $off
/*102284*/      OPC_MoveChild2,
/*102285*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102288*/      OPC_MoveParent,
/*102289*/      OPC_Scope, 24, /*->102315*/ // 2 children in Scope
/*102291*/        OPC_CheckPredicate, 52, // Predicate_X86tcret_6regs
/*102293*/        OPC_CheckPatternPredicate, 114, // (Subtarget->is64Bit()) && (!Subtarget->useRetpoline())
/*102295*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*102298*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*102302*/        OPC_EmitConvertToTarget, 3,
/*102304*/        OPC_MorphNodeTo0, TARGET_VAL(X86::TCRETURNmi64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs|OPFL_Variadic2,
                      6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86tcret (ld:{ *:[iPTR] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i32] }):$off)<<P:Predicate_X86tcret_6regs>> - Complexity = 29
                  // Dst: (TCRETURNmi64 addr:{ *:[i64] }:$dst, (imm:{ *:[i32] }):$off)
/*102315*/      /*Scope*/ 22, /*->102338*/
/*102316*/        OPC_CheckPatternPredicate, 115, // (!TM.isPositionIndependent()) && (!Subtarget->is64Bit()) && (!Subtarget->useRetpoline())
/*102318*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*102321*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*102325*/        OPC_EmitConvertToTarget, 3,
/*102327*/        OPC_MorphNodeTo0, TARGET_VAL(X86::TCRETURNmi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs|OPFL_Variadic2,
                      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 addr:{ *:[i32] }:$dst, (imm:{ *:[i32] }):$off)
/*102338*/      0, /*End of Scope*/
/*102339*/    /*Scope*/ 34|128,1/*162*/, /*->102503*/
/*102341*/      OPC_RecordChild1, // #1 = $dst
/*102342*/      OPC_Scope, 97, /*->102441*/ // 2 children in Scope
/*102344*/        OPC_MoveChild1,
/*102345*/        OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::TargetGlobalAddress),// ->102393
/*102349*/          OPC_SwitchType /*2 cases */, 19, MVT::i32,// ->102371
/*102352*/            OPC_MoveParent,
/*102353*/            OPC_RecordChild2, // #2 = $off
/*102354*/            OPC_MoveChild2,
/*102355*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102358*/            OPC_MoveParent,
/*102359*/            OPC_CheckPatternPredicate, 116, // (!Subtarget->isTarget64BitLP64())
/*102361*/            OPC_EmitMergeInputChains1_0,
/*102362*/            OPC_EmitConvertToTarget, 2,
/*102364*/            OPC_MorphNodeTo0, TARGET_VAL(X86::TCRETURNdi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                          2/*#Ops*/, 1, 3, 
                      // Src: (X86tcret (tglobaladdr:{ *:[i32] }):$dst, (imm:{ *:[i32] }):$off) - Complexity = 9
                      // Dst: (TCRETURNdi (tglobaladdr:{ *:[i32] }):$dst, (imm:{ *:[i32] }):$off)
/*102371*/          /*SwitchType*/ 19, MVT::i64,// ->102392
/*102373*/            OPC_MoveParent,
/*102374*/            OPC_RecordChild2, // #2 = $off
/*102375*/            OPC_MoveChild2,
/*102376*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102379*/            OPC_MoveParent,
/*102380*/            OPC_CheckPatternPredicate, 117, // (Subtarget->isTarget64BitLP64())
/*102382*/            OPC_EmitMergeInputChains1_0,
/*102383*/            OPC_EmitConvertToTarget, 2,
/*102385*/            OPC_MorphNodeTo0, TARGET_VAL(X86::TCRETURNdi64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                          2/*#Ops*/, 1, 3, 
                      // Src: (X86tcret (tglobaladdr:{ *:[i64] }):$dst, (imm:{ *:[i32] }):$off) - Complexity = 9
                      // Dst: (TCRETURNdi64 (tglobaladdr:{ *:[i64] }):$dst, (imm:{ *:[i32] }):$off)
/*102392*/          0, // EndSwitchType
/*102393*/        /*SwitchOpcode*/ 44, TARGET_VAL(ISD::TargetExternalSymbol),// ->102440
/*102396*/          OPC_SwitchType /*2 cases */, 19, MVT::i32,// ->102418
/*102399*/            OPC_MoveParent,
/*102400*/            OPC_RecordChild2, // #2 = $off
/*102401*/            OPC_MoveChild2,
/*102402*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102405*/            OPC_MoveParent,
/*102406*/            OPC_CheckPatternPredicate, 116, // (!Subtarget->isTarget64BitLP64())
/*102408*/            OPC_EmitMergeInputChains1_0,
/*102409*/            OPC_EmitConvertToTarget, 2,
/*102411*/            OPC_MorphNodeTo0, TARGET_VAL(X86::TCRETURNdi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                          2/*#Ops*/, 1, 3, 
                      // Src: (X86tcret (texternalsym:{ *:[i32] }):$dst, (imm:{ *:[i32] }):$off) - Complexity = 9
                      // Dst: (TCRETURNdi (texternalsym:{ *:[i32] }):$dst, (imm:{ *:[i32] }):$off)
/*102418*/          /*SwitchType*/ 19, MVT::i64,// ->102439
/*102420*/            OPC_MoveParent,
/*102421*/            OPC_RecordChild2, // #2 = $off
/*102422*/            OPC_MoveChild2,
/*102423*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102426*/            OPC_MoveParent,
/*102427*/            OPC_CheckPatternPredicate, 117, // (Subtarget->isTarget64BitLP64())
/*102429*/            OPC_EmitMergeInputChains1_0,
/*102430*/            OPC_EmitConvertToTarget, 2,
/*102432*/            OPC_MorphNodeTo0, TARGET_VAL(X86::TCRETURNdi64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                          2/*#Ops*/, 1, 3, 
                      // Src: (X86tcret (texternalsym:{ *:[i64] }):$dst, (imm:{ *:[i32] }):$off) - Complexity = 9
                      // Dst: (TCRETURNdi64 (texternalsym:{ *:[i64] }):$dst, (imm:{ *:[i32] }):$off)
/*102439*/          0, // EndSwitchType
/*102440*/        0, // EndSwitchOpcode
/*102441*/      /*Scope*/ 60, /*->102502*/
/*102442*/        OPC_RecordChild2, // #2 = $off
/*102443*/        OPC_MoveChild2,
/*102444*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102447*/        OPC_MoveParent,
/*102448*/        OPC_Scope, 12, /*->102462*/ // 4 children in Scope
/*102450*/          OPC_CheckPatternPredicate, 118, // (!Subtarget->is64Bit()) && (!Subtarget->useRetpoline())
/*102452*/          OPC_EmitMergeInputChains1_0,
/*102453*/          OPC_EmitConvertToTarget, 2,
/*102455*/          OPC_MorphNodeTo0, TARGET_VAL(X86::TCRETURNri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        2/*#Ops*/, 1, 3, 
                    // Src: (X86tcret ptr_rc_tailcall:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$off) - Complexity = 6
                    // Dst: (TCRETURNri ptr_rc_tailcall:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$off)
/*102462*/        /*Scope*/ 12, /*->102475*/
/*102463*/          OPC_CheckPatternPredicate, 114, // (Subtarget->is64Bit()) && (!Subtarget->useRetpoline())
/*102465*/          OPC_EmitMergeInputChains1_0,
/*102466*/          OPC_EmitConvertToTarget, 2,
/*102468*/          OPC_MorphNodeTo0, TARGET_VAL(X86::TCRETURNri64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        2/*#Ops*/, 1, 3, 
                    // Src: (X86tcret ptr_rc_tailcall:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$off) - Complexity = 6
                    // Dst: (TCRETURNri64 ptr_rc_tailcall:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$off)
/*102475*/        /*Scope*/ 12, /*->102488*/
/*102476*/          OPC_CheckPatternPredicate, 119, // (Subtarget->is64Bit()) && (Subtarget->useRetpoline())
/*102478*/          OPC_EmitMergeInputChains1_0,
/*102479*/          OPC_EmitConvertToTarget, 2,
/*102481*/          OPC_MorphNodeTo0, TARGET_VAL(X86::RETPOLINE_TCRETURN64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        2/*#Ops*/, 1, 3, 
                    // Src: (X86tcret ptr_rc_tailcall:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$off) - Complexity = 6
                    // Dst: (RETPOLINE_TCRETURN64 ptr_rc_tailcall:{ *:[i64] }:$dst, (imm:{ *:[i32] }):$off)
/*102488*/        /*Scope*/ 12, /*->102501*/
/*102489*/          OPC_CheckPatternPredicate, 120, // (!Subtarget->is64Bit()) && (Subtarget->useRetpoline())
/*102491*/          OPC_EmitMergeInputChains1_0,
/*102492*/          OPC_EmitConvertToTarget, 2,
/*102494*/          OPC_MorphNodeTo0, TARGET_VAL(X86::RETPOLINE_TCRETURN32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        2/*#Ops*/, 1, 3, 
                    // Src: (X86tcret ptr_rc_tailcall:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$off) - Complexity = 6
                    // Dst: (RETPOLINE_TCRETURN32 ptr_rc_tailcall:{ *:[i32] }:$dst, (imm:{ *:[i32] }):$off)
/*102501*/        0, /*End of Scope*/
/*102502*/      0, /*End of Scope*/
/*102503*/    0, /*End of Scope*/
/*102504*/  /*SwitchOpcode*/ 85|128,1/*213*/, TARGET_VAL(X86ISD::BT),// ->102721
/*102508*/    OPC_Scope, 107, /*->102617*/ // 2 children in Scope
/*102510*/      OPC_MoveChild0,
/*102511*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*102514*/      OPC_RecordMemRef,
/*102515*/      OPC_RecordNode, // #0 = 'ld' chained node
/*102516*/      OPC_CheckFoldableChainNode,
/*102517*/      OPC_RecordChild1, // #1 = $src1
/*102518*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*102520*/      OPC_SwitchType /*3 cases */, 29, MVT::i16,// ->102552
/*102523*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*102525*/        OPC_MoveParent,
/*102526*/        OPC_RecordChild1, // #2 = $src2
/*102527*/        OPC_MoveChild1,
/*102528*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102531*/        OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*102533*/        OPC_MoveParent,
/*102534*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*102537*/        OPC_EmitMergeInputChains1_0,
/*102538*/        OPC_EmitConvertToTarget, 2,
/*102540*/        OPC_MorphNodeTo1, TARGET_VAL(X86::BT16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*102552*/      /*SwitchType*/ 29, MVT::i32,// ->102583
/*102554*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*102556*/        OPC_MoveParent,
/*102557*/        OPC_RecordChild1, // #2 = $src2
/*102558*/        OPC_MoveChild1,
/*102559*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102562*/        OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*102564*/        OPC_MoveParent,
/*102565*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*102568*/        OPC_EmitMergeInputChains1_0,
/*102569*/        OPC_EmitConvertToTarget, 2,
/*102571*/        OPC_MorphNodeTo1, TARGET_VAL(X86::BT32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*102583*/      /*SwitchType*/ 31, MVT::i64,// ->102616
/*102585*/        OPC_CheckPredicate, 9, // Predicate_load
/*102587*/        OPC_MoveParent,
/*102588*/        OPC_RecordChild1, // #2 = $src2
/*102589*/        OPC_MoveChild1,
/*102590*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102593*/        OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*102595*/        OPC_MoveParent,
/*102596*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*102598*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*102601*/        OPC_EmitMergeInputChains1_0,
/*102602*/        OPC_EmitConvertToTarget, 2,
/*102604*/        OPC_MorphNodeTo1, TARGET_VAL(X86::BT64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*102616*/      0, // EndSwitchType
/*102617*/    /*Scope*/ 102, /*->102720*/
/*102618*/      OPC_RecordChild0, // #0 = $src1
/*102619*/      OPC_Scope, 32, /*->102653*/ // 3 children in Scope
/*102621*/        OPC_CheckChild0Type, MVT::i16,
/*102623*/        OPC_RecordChild1, // #1 = $src2
/*102624*/        OPC_Scope, 17, /*->102643*/ // 2 children in Scope
/*102626*/          OPC_MoveChild1,
/*102627*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102630*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*102632*/          OPC_MoveParent,
/*102633*/          OPC_EmitConvertToTarget, 1,
/*102635*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BT16ri8), 0,
                        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)
/*102643*/        /*Scope*/ 8, /*->102652*/
/*102644*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BT16rr), 0,
                        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)
/*102652*/        0, /*End of Scope*/
/*102653*/      /*Scope*/ 32, /*->102686*/
/*102654*/        OPC_CheckChild0Type, MVT::i32,
/*102656*/        OPC_RecordChild1, // #1 = $src2
/*102657*/        OPC_Scope, 17, /*->102676*/ // 2 children in Scope
/*102659*/          OPC_MoveChild1,
/*102660*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102663*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*102665*/          OPC_MoveParent,
/*102666*/          OPC_EmitConvertToTarget, 1,
/*102668*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BT32ri8), 0,
                        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)
/*102676*/        /*Scope*/ 8, /*->102685*/
/*102677*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BT32rr), 0,
                        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)
/*102685*/        0, /*End of Scope*/
/*102686*/      /*Scope*/ 32, /*->102719*/
/*102687*/        OPC_CheckChild0Type, MVT::i64,
/*102689*/        OPC_RecordChild1, // #1 = $src2
/*102690*/        OPC_Scope, 17, /*->102709*/ // 2 children in Scope
/*102692*/          OPC_MoveChild1,
/*102693*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102696*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*102698*/          OPC_MoveParent,
/*102699*/          OPC_EmitConvertToTarget, 1,
/*102701*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BT64ri8), 0,
                        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)
/*102709*/        /*Scope*/ 8, /*->102718*/
/*102710*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BT64rr), 0,
                        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)
/*102718*/        0, /*End of Scope*/
/*102719*/      0, /*End of Scope*/
/*102720*/    0, /*End of Scope*/
/*102721*/  /*SwitchOpcode*/ 8|128,4/*520*/, TARGET_VAL(X86ISD::SMUL),// ->103245
/*102725*/    OPC_Scope, 73|128,1/*201*/, /*->102929*/ // 4 children in Scope
/*102728*/      OPC_MoveChild0,
/*102729*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*102732*/      OPC_RecordMemRef,
/*102733*/      OPC_RecordNode, // #0 = 'ld' chained node
/*102734*/      OPC_CheckFoldableChainNode,
/*102735*/      OPC_RecordChild1, // #1 = $src1
/*102736*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*102738*/      OPC_Scope, 32, /*->102772*/ // 5 children in Scope
/*102740*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*102742*/        OPC_MoveParent,
/*102743*/        OPC_RecordChild1, // #2 = $src2
/*102744*/        OPC_MoveChild1,
/*102745*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102748*/        OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*102750*/        OPC_MoveParent,
/*102751*/        OPC_CheckType, MVT::i16,
/*102753*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*102756*/        OPC_EmitMergeInputChains1_0,
/*102757*/        OPC_EmitConvertToTarget, 2,
/*102759*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi16>>, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 29
                  // Dst: (IMUL16rmi8:{ *:[i16] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i16] }):$src2)
/*102772*/      /*Scope*/ 32, /*->102805*/
/*102773*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*102775*/        OPC_MoveParent,
/*102776*/        OPC_RecordChild1, // #2 = $src2
/*102777*/        OPC_MoveChild1,
/*102778*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102781*/        OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*102783*/        OPC_MoveParent,
/*102784*/        OPC_CheckType, MVT::i32,
/*102786*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*102789*/        OPC_EmitMergeInputChains1_0,
/*102790*/        OPC_EmitConvertToTarget, 2,
/*102792*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi32>>, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 29
                  // Dst: (IMUL32rmi8:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*102805*/      /*Scope*/ 60, /*->102866*/
/*102806*/        OPC_CheckPredicate, 9, // Predicate_load
/*102808*/        OPC_MoveParent,
/*102809*/        OPC_RecordChild1, // #2 = $src2
/*102810*/        OPC_MoveChild1,
/*102811*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102814*/        OPC_Scope, 24, /*->102840*/ // 2 children in Scope
/*102816*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*102818*/          OPC_MoveParent,
/*102819*/          OPC_CheckType, MVT::i64,
/*102821*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*102824*/          OPC_EmitMergeInputChains1_0,
/*102825*/          OPC_EmitConvertToTarget, 2,
/*102827*/          OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rmi32), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*102840*/        /*Scope*/ 24, /*->102865*/
/*102841*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*102843*/          OPC_MoveParent,
/*102844*/          OPC_CheckType, MVT::i64,
/*102846*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*102849*/          OPC_EmitMergeInputChains1_0,
/*102850*/          OPC_EmitConvertToTarget, 2,
/*102852*/          OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*102865*/        0, /*End of Scope*/
/*102866*/      /*Scope*/ 30, /*->102897*/
/*102867*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*102869*/        OPC_MoveParent,
/*102870*/        OPC_RecordChild1, // #2 = $src2
/*102871*/        OPC_MoveChild1,
/*102872*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102875*/        OPC_MoveParent,
/*102876*/        OPC_CheckType, MVT::i16,
/*102878*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*102881*/        OPC_EmitMergeInputChains1_0,
/*102882*/        OPC_EmitConvertToTarget, 2,
/*102884*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi16>>, (imm:{ *:[i16] }):$src2) - Complexity = 28
                  // Dst: (IMUL16rmi:{ *:[i16] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i16] }):$src2)
/*102897*/      /*Scope*/ 30, /*->102928*/
/*102898*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*102900*/        OPC_MoveParent,
/*102901*/        OPC_RecordChild1, // #2 = $src2
/*102902*/        OPC_MoveChild1,
/*102903*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102906*/        OPC_MoveParent,
/*102907*/        OPC_CheckType, MVT::i32,
/*102909*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*102912*/        OPC_EmitMergeInputChains1_0,
/*102913*/        OPC_EmitConvertToTarget, 2,
/*102915*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi32>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                  // Dst: (IMUL32rmi:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*102928*/      0, /*End of Scope*/
/*102929*/    /*Scope*/ 82, /*->103012*/
/*102930*/      OPC_RecordChild0, // #0 = $src1
/*102931*/      OPC_MoveChild1,
/*102932*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*102935*/      OPC_RecordMemRef,
/*102936*/      OPC_RecordNode, // #1 = 'ld' chained node
/*102937*/      OPC_CheckFoldableChainNode,
/*102938*/      OPC_RecordChild1, // #2 = $src2
/*102939*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*102941*/      OPC_Scope, 22, /*->102965*/ // 3 children in Scope
/*102943*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*102945*/        OPC_MoveParent,
/*102946*/        OPC_CheckType, MVT::i16,
/*102948*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102951*/        OPC_EmitMergeInputChains1_1,
/*102952*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi16>>) - Complexity = 25
                  // Dst: (IMUL16rm:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102965*/      /*Scope*/ 22, /*->102988*/
/*102966*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*102968*/        OPC_MoveParent,
/*102969*/        OPC_CheckType, MVT::i32,
/*102971*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102974*/        OPC_EmitMergeInputChains1_1,
/*102975*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi32>>) - Complexity = 25
                  // Dst: (IMUL32rm:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102988*/      /*Scope*/ 22, /*->103011*/
/*102989*/        OPC_CheckPredicate, 9, // Predicate_load
/*102991*/        OPC_MoveParent,
/*102992*/        OPC_CheckType, MVT::i64,
/*102994*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102997*/        OPC_EmitMergeInputChains1_1,
/*102998*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103011*/      0, /*End of Scope*/
/*103012*/    /*Scope*/ 84, /*->103097*/
/*103013*/      OPC_MoveChild0,
/*103014*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*103017*/      OPC_RecordMemRef,
/*103018*/      OPC_RecordNode, // #0 = 'ld' chained node
/*103019*/      OPC_CheckFoldableChainNode,
/*103020*/      OPC_RecordChild1, // #1 = $src2
/*103021*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*103023*/      OPC_Scope, 23, /*->103048*/ // 3 children in Scope
/*103025*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*103027*/        OPC_MoveParent,
/*103028*/        OPC_RecordChild1, // #2 = $src1
/*103029*/        OPC_CheckType, MVT::i16,
/*103031*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103034*/        OPC_EmitMergeInputChains1_0,
/*103035*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi16>>, GR16:{ *:[i16] }:$src1) - Complexity = 25
                  // Dst: (IMUL16rm:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103048*/      /*Scope*/ 23, /*->103072*/
/*103049*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*103051*/        OPC_MoveParent,
/*103052*/        OPC_RecordChild1, // #2 = $src1
/*103053*/        OPC_CheckType, MVT::i32,
/*103055*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103058*/        OPC_EmitMergeInputChains1_0,
/*103059*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi32>>, GR32:{ *:[i32] }:$src1) - Complexity = 25
                  // Dst: (IMUL32rm:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103072*/      /*Scope*/ 23, /*->103096*/
/*103073*/        OPC_CheckPredicate, 9, // Predicate_load
/*103075*/        OPC_MoveParent,
/*103076*/        OPC_RecordChild1, // #2 = $src1
/*103077*/        OPC_CheckType, MVT::i64,
/*103079*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103082*/        OPC_EmitMergeInputChains1_0,
/*103083*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103096*/      0, /*End of Scope*/
/*103097*/    /*Scope*/ 17|128,1/*145*/, /*->103244*/
/*103099*/      OPC_RecordChild0, // #0 = $src1
/*103100*/      OPC_RecordChild1, // #1 = $src2
/*103101*/      OPC_Scope, 104, /*->103207*/ // 4 children in Scope
/*103103*/        OPC_MoveChild1,
/*103104*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*103107*/        OPC_Scope, 16, /*->103125*/ // 5 children in Scope
/*103109*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*103111*/          OPC_MoveParent,
/*103112*/          OPC_CheckType, MVT::i16,
/*103114*/          OPC_EmitConvertToTarget, 1,
/*103116*/          OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rri8), 0,
                        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)
/*103125*/        /*Scope*/ 16, /*->103142*/
/*103126*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*103128*/          OPC_MoveParent,
/*103129*/          OPC_CheckType, MVT::i32,
/*103131*/          OPC_EmitConvertToTarget, 1,
/*103133*/          OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rri8), 0,
                        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)
/*103142*/        /*Scope*/ 16, /*->103159*/
/*103143*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*103145*/          OPC_MoveParent,
/*103146*/          OPC_CheckType, MVT::i64,
/*103148*/          OPC_EmitConvertToTarget, 1,
/*103150*/          OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rri32), 0,
                        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)
/*103159*/        /*Scope*/ 16, /*->103176*/
/*103160*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*103162*/          OPC_MoveParent,
/*103163*/          OPC_CheckType, MVT::i64,
/*103165*/          OPC_EmitConvertToTarget, 1,
/*103167*/          OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rri8), 0,
                        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)
/*103176*/        /*Scope*/ 29, /*->103206*/
/*103177*/          OPC_MoveParent,
/*103178*/          OPC_SwitchType /*2 cases */, 11, MVT::i16,// ->103192
/*103181*/            OPC_EmitConvertToTarget, 1,
/*103183*/            OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rri), 0,
                          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)
/*103192*/          /*SwitchType*/ 11, MVT::i32,// ->103205
/*103194*/            OPC_EmitConvertToTarget, 1,
/*103196*/            OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rri), 0,
                          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)
/*103205*/          0, // EndSwitchType
/*103206*/        0, /*End of Scope*/
/*103207*/      /*Scope*/ 11, /*->103219*/
/*103208*/        OPC_CheckType, MVT::i16,
/*103210*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rr), 0,
                      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)
/*103219*/      /*Scope*/ 11, /*->103231*/
/*103220*/        OPC_CheckType, MVT::i32,
/*103222*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rr), 0,
                      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)
/*103231*/      /*Scope*/ 11, /*->103243*/
/*103232*/        OPC_CheckType, MVT::i64,
/*103234*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rr), 0,
                      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)
/*103243*/      0, /*End of Scope*/
/*103244*/    0, /*End of Scope*/
/*103245*/  /*SwitchOpcode*/ 100|128,15/*2020*/, TARGET_VAL(ISD::MUL),// ->105269
/*103249*/    OPC_Scope, 73|128,1/*201*/, /*->103453*/ // 9 children in Scope
/*103252*/      OPC_MoveChild0,
/*103253*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*103256*/      OPC_RecordMemRef,
/*103257*/      OPC_RecordNode, // #0 = 'ld' chained node
/*103258*/      OPC_CheckFoldableChainNode,
/*103259*/      OPC_RecordChild1, // #1 = $src1
/*103260*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*103262*/      OPC_Scope, 32, /*->103296*/ // 5 children in Scope
/*103264*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*103266*/        OPC_MoveParent,
/*103267*/        OPC_RecordChild1, // #2 = $src2
/*103268*/        OPC_MoveChild1,
/*103269*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*103272*/        OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*103274*/        OPC_MoveParent,
/*103275*/        OPC_CheckType, MVT::i16,
/*103277*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*103280*/        OPC_EmitMergeInputChains1_0,
/*103281*/        OPC_EmitConvertToTarget, 2,
/*103283*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103296*/      /*Scope*/ 32, /*->103329*/
/*103297*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*103299*/        OPC_MoveParent,
/*103300*/        OPC_RecordChild1, // #2 = $src2
/*103301*/        OPC_MoveChild1,
/*103302*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*103305*/        OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*103307*/        OPC_MoveParent,
/*103308*/        OPC_CheckType, MVT::i32,
/*103310*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*103313*/        OPC_EmitMergeInputChains1_0,
/*103314*/        OPC_EmitConvertToTarget, 2,
/*103316*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103329*/      /*Scope*/ 60, /*->103390*/
/*103330*/        OPC_CheckPredicate, 9, // Predicate_load
/*103332*/        OPC_MoveParent,
/*103333*/        OPC_RecordChild1, // #2 = $src2
/*103334*/        OPC_MoveChild1,
/*103335*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*103338*/        OPC_Scope, 24, /*->103364*/ // 2 children in Scope
/*103340*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*103342*/          OPC_MoveParent,
/*103343*/          OPC_CheckType, MVT::i64,
/*103345*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*103348*/          OPC_EmitMergeInputChains1_0,
/*103349*/          OPC_EmitConvertToTarget, 2,
/*103351*/          OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*103364*/        /*Scope*/ 24, /*->103389*/
/*103365*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*103367*/          OPC_MoveParent,
/*103368*/          OPC_CheckType, MVT::i64,
/*103370*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*103373*/          OPC_EmitMergeInputChains1_0,
/*103374*/          OPC_EmitConvertToTarget, 2,
/*103376*/          OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rmi32), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*103389*/        0, /*End of Scope*/
/*103390*/      /*Scope*/ 30, /*->103421*/
/*103391*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*103393*/        OPC_MoveParent,
/*103394*/        OPC_RecordChild1, // #2 = $src2
/*103395*/        OPC_MoveChild1,
/*103396*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*103399*/        OPC_MoveParent,
/*103400*/        OPC_CheckType, MVT::i16,
/*103402*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*103405*/        OPC_EmitMergeInputChains1_0,
/*103406*/        OPC_EmitConvertToTarget, 2,
/*103408*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103421*/      /*Scope*/ 30, /*->103452*/
/*103422*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*103424*/        OPC_MoveParent,
/*103425*/        OPC_RecordChild1, // #2 = $src2
/*103426*/        OPC_MoveChild1,
/*103427*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*103430*/        OPC_MoveParent,
/*103431*/        OPC_CheckType, MVT::i32,
/*103433*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*103436*/        OPC_EmitMergeInputChains1_0,
/*103437*/        OPC_EmitConvertToTarget, 2,
/*103439*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103452*/      0, /*End of Scope*/
/*103453*/    /*Scope*/ 107, /*->103561*/
/*103454*/      OPC_RecordChild0, // #0 = physreg input AL
/*103455*/      OPC_MoveChild1,
/*103456*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*103459*/      OPC_RecordMemRef,
/*103460*/      OPC_RecordNode, // #1 = 'ld' chained node
/*103461*/      OPC_CheckFoldableChainNode,
/*103462*/      OPC_RecordChild1, // #2 = $src
/*103463*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*103465*/      OPC_Scope, 24, /*->103491*/ // 4 children in Scope
/*103467*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*103469*/        OPC_MoveParent,
/*103470*/        OPC_CheckType, MVT::i8,
/*103472*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*103475*/        OPC_EmitMergeInputChains1_1,
/*103476*/        OPC_EmitCopyToReg, 0, X86::AL,
/*103479*/        OPC_MorphNodeTo2, TARGET_VAL(X86::MUL8m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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_loadi8>>) - Complexity = 25
                  // Dst: (MUL8m:{ *:[i8] } addr:{ *:[iPTR] }:$src)
/*103491*/      /*Scope*/ 22, /*->103514*/
/*103492*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*103494*/        OPC_MoveParent,
/*103495*/        OPC_CheckType, MVT::i16,
/*103497*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103500*/        OPC_EmitMergeInputChains1_1,
/*103501*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103514*/      /*Scope*/ 22, /*->103537*/
/*103515*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*103517*/        OPC_MoveParent,
/*103518*/        OPC_CheckType, MVT::i32,
/*103520*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103523*/        OPC_EmitMergeInputChains1_1,
/*103524*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103537*/      /*Scope*/ 22, /*->103560*/
/*103538*/        OPC_CheckPredicate, 9, // Predicate_load
/*103540*/        OPC_MoveParent,
/*103541*/        OPC_CheckType, MVT::i64,
/*103543*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103546*/        OPC_EmitMergeInputChains1_1,
/*103547*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103560*/      0, /*End of Scope*/
/*103561*/    /*Scope*/ 84, /*->103646*/
/*103562*/      OPC_MoveChild0,
/*103563*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*103566*/      OPC_RecordMemRef,
/*103567*/      OPC_RecordNode, // #0 = 'ld' chained node
/*103568*/      OPC_CheckFoldableChainNode,
/*103569*/      OPC_RecordChild1, // #1 = $src2
/*103570*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*103572*/      OPC_Scope, 23, /*->103597*/ // 3 children in Scope
/*103574*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*103576*/        OPC_MoveParent,
/*103577*/        OPC_RecordChild1, // #2 = $src1
/*103578*/        OPC_CheckType, MVT::i16,
/*103580*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103583*/        OPC_EmitMergeInputChains1_0,
/*103584*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103597*/      /*Scope*/ 23, /*->103621*/
/*103598*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*103600*/        OPC_MoveParent,
/*103601*/        OPC_RecordChild1, // #2 = $src1
/*103602*/        OPC_CheckType, MVT::i32,
/*103604*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103607*/        OPC_EmitMergeInputChains1_0,
/*103608*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103621*/      /*Scope*/ 23, /*->103645*/
/*103622*/        OPC_CheckPredicate, 9, // Predicate_load
/*103624*/        OPC_MoveParent,
/*103625*/        OPC_RecordChild1, // #2 = $src1
/*103626*/        OPC_CheckType, MVT::i64,
/*103628*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103631*/        OPC_EmitMergeInputChains1_0,
/*103632*/        OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*103645*/      0, /*End of Scope*/
/*103646*/    /*Scope*/ 57, /*->103704*/
/*103647*/      OPC_RecordNode, // #0 = $src
/*103648*/      OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->103687
/*103651*/        OPC_Scope, 16, /*->103669*/ // 2 children in Scope
/*103653*/          OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*103655*/          OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*103658*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LEA32r), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: lea32addr:{ *:[i32] }:$src - Complexity = 18
                    // Dst: (LEA32r:{ *:[i32] } lea32addr:{ *:[i32] }:$src)
/*103669*/        /*Scope*/ 16, /*->103686*/
/*103670*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*103672*/          OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/*103675*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64_32r), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: lea64_32addr:{ *:[i32] }:$src - Complexity = 18
                    // Dst: (LEA64_32r:{ *:[i32] } lea64_32addr:{ *:[i32] }:$src)
/*103686*/        0, /*End of Scope*/
/*103687*/      /*SwitchType*/ 14, MVT::i64,// ->103703
/*103689*/        OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*103692*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64r), 0,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea64addr:{ *:[i64] }:$src - Complexity = 18
                  // Dst: (LEA64r:{ *:[i64] } lea64addr:{ *:[i64] }:$src)
/*103703*/      0, // EndSwitchType
/*103704*/    /*Scope*/ 110|128,4/*622*/, /*->104328*/
/*103706*/      OPC_RecordChild0, // #0 = $src1
/*103707*/      OPC_Scope, 30|128,1/*158*/, /*->103868*/ // 2 children in Scope
/*103710*/        OPC_RecordChild1, // #1 = $src2
/*103711*/        OPC_Scope, 104, /*->103817*/ // 5 children in Scope
/*103713*/          OPC_MoveChild1,
/*103714*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*103717*/          OPC_Scope, 16, /*->103735*/ // 5 children in Scope
/*103719*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*103721*/            OPC_MoveParent,
/*103722*/            OPC_CheckType, MVT::i16,
/*103724*/            OPC_EmitConvertToTarget, 1,
/*103726*/            OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rri8), 0,
                          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)
/*103735*/          /*Scope*/ 16, /*->103752*/
/*103736*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*103738*/            OPC_MoveParent,
/*103739*/            OPC_CheckType, MVT::i32,
/*103741*/            OPC_EmitConvertToTarget, 1,
/*103743*/            OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rri8), 0,
                          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)
/*103752*/          /*Scope*/ 16, /*->103769*/
/*103753*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*103755*/            OPC_MoveParent,
/*103756*/            OPC_CheckType, MVT::i64,
/*103758*/            OPC_EmitConvertToTarget, 1,
/*103760*/            OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rri8), 0,
                          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)
/*103769*/          /*Scope*/ 16, /*->103786*/
/*103770*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*103772*/            OPC_MoveParent,
/*103773*/            OPC_CheckType, MVT::i64,
/*103775*/            OPC_EmitConvertToTarget, 1,
/*103777*/            OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rri32), 0,
                          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)
/*103786*/          /*Scope*/ 29, /*->103816*/
/*103787*/            OPC_MoveParent,
/*103788*/            OPC_SwitchType /*2 cases */, 11, MVT::i16,// ->103802
/*103791*/              OPC_EmitConvertToTarget, 1,
/*103793*/              OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rri), 0,
                            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)
/*103802*/            /*SwitchType*/ 11, MVT::i32,// ->103815
/*103804*/              OPC_EmitConvertToTarget, 1,
/*103806*/              OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rri), 0,
                            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)
/*103815*/            0, // EndSwitchType
/*103816*/          0, /*End of Scope*/
/*103817*/        /*Scope*/ 13, /*->103831*/
/*103818*/          OPC_CheckType, MVT::i8,
/*103820*/          OPC_EmitCopyToReg, 0, X86::AL,
/*103823*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL8r), 0|OPFL_GlueInput,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (mul:{ *:[i8] } AL:{ *:[i8] }, GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (MUL8r:{ *:[i8] } GR8:{ *:[i8] }:$src)
/*103831*/        /*Scope*/ 11, /*->103843*/
/*103832*/          OPC_CheckType, MVT::i16,
/*103834*/          OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL16rr), 0,
                        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)
/*103843*/        /*Scope*/ 11, /*->103855*/
/*103844*/          OPC_CheckType, MVT::i32,
/*103846*/          OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL32rr), 0,
                        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)
/*103855*/        /*Scope*/ 11, /*->103867*/
/*103856*/          OPC_CheckType, MVT::i64,
/*103858*/          OPC_MorphNodeTo2, TARGET_VAL(X86::IMUL64rr), 0,
                        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)
/*103867*/        0, /*End of Scope*/
/*103868*/      /*Scope*/ 73|128,3/*457*/, /*->104327*/
/*103870*/        OPC_MoveChild1,
/*103871*/        OPC_SwitchOpcode /*2 cases */, 42|128,2/*298*/, TARGET_VAL(ISD::BITCAST),// ->104174
/*103876*/          OPC_MoveChild0,
/*103877*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*103880*/          OPC_RecordMemRef,
/*103881*/          OPC_RecordNode, // #1 = 'ld' chained node
/*103882*/          OPC_CheckFoldableChainNode,
/*103883*/          OPC_RecordChild1, // #2 = $src2
/*103884*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*103886*/          OPC_CheckPredicate, 9, // Predicate_load
/*103888*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*103890*/          OPC_SwitchType /*3 cases */, 15|128,1/*143*/, MVT::v2i64,// ->104037
/*103894*/            OPC_Scope, 22, /*->103918*/ // 5 children in Scope
/*103896*/              OPC_MoveParent,
/*103897*/              OPC_MoveParent,
/*103898*/              OPC_CheckType, MVT::v8i16,
/*103900*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*103902*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103905*/              OPC_EmitMergeInputChains1_1,
/*103906*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>)) - Complexity = 28
                        // Dst: (VPMULLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103918*/            /*Scope*/ 24, /*->103943*/
/*103919*/              OPC_CheckPredicate, 48, // Predicate_memop
/*103921*/              OPC_MoveParent,
/*103922*/              OPC_MoveParent,
/*103923*/              OPC_CheckType, MVT::v8i16,
/*103925*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*103927*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103930*/              OPC_EmitMergeInputChains1_1,
/*103931*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PMULLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103943*/            /*Scope*/ 22, /*->103966*/
/*103944*/              OPC_MoveParent,
/*103945*/              OPC_MoveParent,
/*103946*/              OPC_CheckType, MVT::v4i32,
/*103948*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*103950*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103953*/              OPC_EmitMergeInputChains1_1,
/*103954*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>)) - Complexity = 28
                        // Dst: (VPMULLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103966*/            /*Scope*/ 24, /*->103991*/
/*103967*/              OPC_CheckPredicate, 48, // Predicate_memop
/*103969*/              OPC_MoveParent,
/*103970*/              OPC_MoveParent,
/*103971*/              OPC_CheckType, MVT::v4i32,
/*103973*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*103975*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103978*/              OPC_EmitMergeInputChains1_1,
/*103979*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PMULLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103991*/            /*Scope*/ 44, /*->104036*/
/*103992*/              OPC_MoveParent,
/*103993*/              OPC_MoveParent,
/*103994*/              OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->104015
/*103997*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103999*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104002*/                OPC_EmitMergeInputChains1_1,
/*104003*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (mul:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMULLDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104015*/              /*SwitchType*/ 18, MVT::v8i16,// ->104035
/*104017*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*104019*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104022*/                OPC_EmitMergeInputChains1_1,
/*104023*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (mul:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMULLWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104035*/              0, // EndSwitchType
/*104036*/            0, /*End of Scope*/
/*104037*/          /*SwitchType*/ 88, MVT::v4i64,// ->104127
/*104039*/            OPC_MoveParent,
/*104040*/            OPC_MoveParent,
/*104041*/            OPC_SwitchType /*2 cases */, 40, MVT::v16i16,// ->104084
/*104044*/              OPC_Scope, 18, /*->104064*/ // 2 children in Scope
/*104046*/                OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*104048*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104051*/                OPC_EmitMergeInputChains1_1,
/*104052*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (mul:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMULLWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104064*/              /*Scope*/ 18, /*->104083*/
/*104065*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*104067*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104070*/                OPC_EmitMergeInputChains1_1,
/*104071*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (mul:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMULLWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104083*/              0, /*End of Scope*/
/*104084*/            /*SwitchType*/ 40, MVT::v8i32,// ->104126
/*104086*/              OPC_Scope, 18, /*->104106*/ // 2 children in Scope
/*104088*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*104090*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104093*/                OPC_EmitMergeInputChains1_1,
/*104094*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (mul:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMULLDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104106*/              /*Scope*/ 18, /*->104125*/
/*104107*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*104109*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104112*/                OPC_EmitMergeInputChains1_1,
/*104113*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (mul:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMULLDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104125*/              0, /*End of Scope*/
/*104126*/            0, // EndSwitchType
/*104127*/          /*SwitchType*/ 44, MVT::v8i64,// ->104173
/*104129*/            OPC_MoveParent,
/*104130*/            OPC_MoveParent,
/*104131*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i32,// ->104152
/*104134*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*104136*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104139*/              OPC_EmitMergeInputChains1_1,
/*104140*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMULLDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104152*/            /*SwitchType*/ 18, MVT::v32i16,// ->104172
/*104154*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*104156*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104159*/              OPC_EmitMergeInputChains1_1,
/*104160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMULLWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104172*/            0, // EndSwitchType
/*104173*/          0, // EndSwitchType
/*104174*/        /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->104326
/*104178*/          OPC_MoveChild0,
/*104179*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*104182*/          OPC_RecordMemRef,
/*104183*/          OPC_RecordNode, // #1 = 'ld' chained node
/*104184*/          OPC_CheckFoldableChainNode,
/*104185*/          OPC_RecordChild1, // #2 = $src2
/*104186*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*104188*/          OPC_SwitchType /*2 cases */, 66, MVT::i32,// ->104257
/*104191*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*104193*/            OPC_MoveParent,
/*104194*/            OPC_MoveParent,
/*104195*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->104216
/*104198*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*104200*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104203*/              OPC_EmitMergeInputChains1_1,
/*104204*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPMULLDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104216*/            /*SwitchType*/ 18, MVT::v8i32,// ->104236
/*104218*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*104220*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104223*/              OPC_EmitMergeInputChains1_1,
/*104224*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPMULLDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104236*/            /*SwitchType*/ 18, MVT::v4i32,// ->104256
/*104238*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*104240*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104243*/              OPC_EmitMergeInputChains1_1,
/*104244*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPMULLDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104256*/            0, // EndSwitchType
/*104257*/          /*SwitchType*/ 66, MVT::i64,// ->104325
/*104259*/            OPC_CheckPredicate, 9, // Predicate_load
/*104261*/            OPC_MoveParent,
/*104262*/            OPC_MoveParent,
/*104263*/            OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->104284
/*104266*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*104268*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104271*/              OPC_EmitMergeInputChains1_1,
/*104272*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPMULLQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104284*/            /*SwitchType*/ 18, MVT::v4i64,// ->104304
/*104286*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*104288*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104291*/              OPC_EmitMergeInputChains1_1,
/*104292*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPMULLQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104304*/            /*SwitchType*/ 18, MVT::v2i64,// ->104324
/*104306*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*104308*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104311*/              OPC_EmitMergeInputChains1_1,
/*104312*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPMULLQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104324*/            0, // EndSwitchType
/*104325*/          0, // EndSwitchType
/*104326*/        0, // EndSwitchOpcode
/*104327*/      0, /*End of Scope*/
/*104328*/    /*Scope*/ 82|128,3/*466*/, /*->104796*/
/*104330*/      OPC_MoveChild0,
/*104331*/      OPC_SwitchOpcode /*2 cases */, 49|128,2/*305*/, TARGET_VAL(ISD::BITCAST),// ->104641
/*104336*/        OPC_MoveChild0,
/*104337*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*104340*/        OPC_RecordMemRef,
/*104341*/        OPC_RecordNode, // #0 = 'ld' chained node
/*104342*/        OPC_CheckFoldableChainNode,
/*104343*/        OPC_RecordChild1, // #1 = $src2
/*104344*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*104346*/        OPC_CheckPredicate, 9, // Predicate_load
/*104348*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*104350*/        OPC_SwitchType /*3 cases */, 20|128,1/*148*/, MVT::v2i64,// ->104502
/*104354*/          OPC_Scope, 23, /*->104379*/ // 5 children in Scope
/*104356*/            OPC_MoveParent,
/*104357*/            OPC_MoveParent,
/*104358*/            OPC_RecordChild1, // #2 = $src1
/*104359*/            OPC_CheckType, MVT::v8i16,
/*104361*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*104363*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104366*/            OPC_EmitMergeInputChains1_0,
/*104367*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                      // Dst: (VPMULLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104379*/          /*Scope*/ 25, /*->104405*/
/*104380*/            OPC_CheckPredicate, 48, // Predicate_memop
/*104382*/            OPC_MoveParent,
/*104383*/            OPC_MoveParent,
/*104384*/            OPC_RecordChild1, // #2 = $src1
/*104385*/            OPC_CheckType, MVT::v8i16,
/*104387*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*104389*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104392*/            OPC_EmitMergeInputChains1_0,
/*104393*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                      // Dst: (PMULLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104405*/          /*Scope*/ 23, /*->104429*/
/*104406*/            OPC_MoveParent,
/*104407*/            OPC_MoveParent,
/*104408*/            OPC_RecordChild1, // #2 = $src1
/*104409*/            OPC_CheckType, MVT::v4i32,
/*104411*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*104413*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104416*/            OPC_EmitMergeInputChains1_0,
/*104417*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                      // Dst: (VPMULLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104429*/          /*Scope*/ 25, /*->104455*/
/*104430*/            OPC_CheckPredicate, 48, // Predicate_memop
/*104432*/            OPC_MoveParent,
/*104433*/            OPC_MoveParent,
/*104434*/            OPC_RecordChild1, // #2 = $src1
/*104435*/            OPC_CheckType, MVT::v4i32,
/*104437*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*104439*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104442*/            OPC_EmitMergeInputChains1_0,
/*104443*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                      // Dst: (PMULLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104455*/          /*Scope*/ 45, /*->104501*/
/*104456*/            OPC_MoveParent,
/*104457*/            OPC_MoveParent,
/*104458*/            OPC_RecordChild1, // #2 = $src1
/*104459*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->104480
/*104462*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*104464*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104467*/              OPC_EmitMergeInputChains1_0,
/*104468*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPMULLDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104480*/            /*SwitchType*/ 18, MVT::v8i16,// ->104500
/*104482*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*104484*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104487*/              OPC_EmitMergeInputChains1_0,
/*104488*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                        // Dst: (VPMULLWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104500*/            0, // EndSwitchType
/*104501*/          0, /*End of Scope*/
/*104502*/        /*SwitchType*/ 89, MVT::v4i64,// ->104593
/*104504*/          OPC_MoveParent,
/*104505*/          OPC_MoveParent,
/*104506*/          OPC_RecordChild1, // #2 = $src1
/*104507*/          OPC_SwitchType /*2 cases */, 40, MVT::v16i16,// ->104550
/*104510*/            OPC_Scope, 18, /*->104530*/ // 2 children in Scope
/*104512*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*104514*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104517*/              OPC_EmitMergeInputChains1_0,
/*104518*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPMULLWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104530*/            /*Scope*/ 18, /*->104549*/
/*104531*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*104533*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104536*/              OPC_EmitMergeInputChains1_0,
/*104537*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPMULLWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104549*/            0, /*End of Scope*/
/*104550*/          /*SwitchType*/ 40, MVT::v8i32,// ->104592
/*104552*/            OPC_Scope, 18, /*->104572*/ // 2 children in Scope
/*104554*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*104556*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104559*/              OPC_EmitMergeInputChains1_0,
/*104560*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPMULLDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104572*/            /*Scope*/ 18, /*->104591*/
/*104573*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*104575*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104578*/              OPC_EmitMergeInputChains1_0,
/*104579*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (mul:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPMULLDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104591*/            0, /*End of Scope*/
/*104592*/          0, // EndSwitchType
/*104593*/        /*SwitchType*/ 45, MVT::v8i64,// ->104640
/*104595*/          OPC_MoveParent,
/*104596*/          OPC_MoveParent,
/*104597*/          OPC_RecordChild1, // #2 = $src1
/*104598*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i32,// ->104619
/*104601*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*104603*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104606*/            OPC_EmitMergeInputChains1_0,
/*104607*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPMULLDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104619*/          /*SwitchType*/ 18, MVT::v32i16,// ->104639
/*104621*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*104623*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104626*/            OPC_EmitMergeInputChains1_0,
/*104627*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                      // Dst: (VPMULLWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104639*/          0, // EndSwitchType
/*104640*/        0, // EndSwitchType
/*104641*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST),// ->104795
/*104645*/        OPC_MoveChild0,
/*104646*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*104649*/        OPC_RecordMemRef,
/*104650*/        OPC_RecordNode, // #0 = 'ld' chained node
/*104651*/        OPC_CheckFoldableChainNode,
/*104652*/        OPC_RecordChild1, // #1 = $src2
/*104653*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*104655*/        OPC_SwitchType /*2 cases */, 67, MVT::i32,// ->104725
/*104658*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*104660*/          OPC_MoveParent,
/*104661*/          OPC_MoveParent,
/*104662*/          OPC_RecordChild1, // #2 = $src1
/*104663*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->104684
/*104666*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*104668*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104671*/            OPC_EmitMergeInputChains1_0,
/*104672*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPMULLDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104684*/          /*SwitchType*/ 18, MVT::v8i32,// ->104704
/*104686*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*104688*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104691*/            OPC_EmitMergeInputChains1_0,
/*104692*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                      // Dst: (VPMULLDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104704*/          /*SwitchType*/ 18, MVT::v4i32,// ->104724
/*104706*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*104708*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104711*/            OPC_EmitMergeInputChains1_0,
/*104712*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                      // Dst: (VPMULLDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104724*/          0, // EndSwitchType
/*104725*/        /*SwitchType*/ 67, MVT::i64,// ->104794
/*104727*/          OPC_CheckPredicate, 9, // Predicate_load
/*104729*/          OPC_MoveParent,
/*104730*/          OPC_MoveParent,
/*104731*/          OPC_RecordChild1, // #2 = $src1
/*104732*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->104753
/*104735*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*104737*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104740*/            OPC_EmitMergeInputChains1_0,
/*104741*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                      // Dst: (VPMULLQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104753*/          /*SwitchType*/ 18, MVT::v4i64,// ->104773
/*104755*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*104757*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104760*/            OPC_EmitMergeInputChains1_0,
/*104761*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                      // Dst: (VPMULLQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104773*/          /*SwitchType*/ 18, MVT::v2i64,// ->104793
/*104775*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*104777*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104780*/            OPC_EmitMergeInputChains1_0,
/*104781*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                      // Dst: (VPMULLQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104793*/          0, // EndSwitchType
/*104794*/        0, // EndSwitchType
/*104795*/      0, // EndSwitchOpcode
/*104796*/    /*Scope*/ 78, /*->104875*/
/*104797*/      OPC_RecordChild0, // #0 = $src1
/*104798*/      OPC_MoveChild1,
/*104799*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*104802*/      OPC_RecordMemRef,
/*104803*/      OPC_RecordNode, // #1 = 'ld' chained node
/*104804*/      OPC_CheckFoldableChainNode,
/*104805*/      OPC_RecordChild1, // #2 = $src2
/*104806*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*104808*/      OPC_CheckPredicate, 9, // Predicate_load
/*104810*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*104812*/      OPC_MoveParent,
/*104813*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->104834
/*104816*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*104818*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104821*/        OPC_EmitMergeInputChains1_1,
/*104822*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (mul:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMULLQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104834*/      /*SwitchType*/ 18, MVT::v4i64,// ->104854
/*104836*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*104838*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104841*/        OPC_EmitMergeInputChains1_1,
/*104842*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMULLQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104854*/      /*SwitchType*/ 18, MVT::v2i64,// ->104874
/*104856*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*104858*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104861*/        OPC_EmitMergeInputChains1_1,
/*104862*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMULLQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104874*/      0, // EndSwitchType
/*104875*/    /*Scope*/ 78, /*->104954*/
/*104876*/      OPC_MoveChild0,
/*104877*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*104880*/      OPC_RecordMemRef,
/*104881*/      OPC_RecordNode, // #0 = 'ld' chained node
/*104882*/      OPC_CheckFoldableChainNode,
/*104883*/      OPC_RecordChild1, // #1 = $src2
/*104884*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*104886*/      OPC_CheckPredicate, 9, // Predicate_load
/*104888*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*104890*/      OPC_MoveParent,
/*104891*/      OPC_RecordChild1, // #2 = $src1
/*104892*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->104913
/*104895*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*104897*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104900*/        OPC_EmitMergeInputChains1_0,
/*104901*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mul:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                  // Dst: (VPMULLQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104913*/      /*SwitchType*/ 18, MVT::v4i64,// ->104933
/*104915*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*104917*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104920*/        OPC_EmitMergeInputChains1_0,
/*104921*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mul:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (VPMULLQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104933*/      /*SwitchType*/ 18, MVT::v2i64,// ->104953
/*104935*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*104937*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*104940*/        OPC_EmitMergeInputChains1_0,
/*104941*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mul:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (VPMULLQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*104953*/      0, // EndSwitchType
/*104954*/    /*Scope*/ 56|128,2/*312*/, /*->105268*/
/*104956*/      OPC_RecordChild0, // #0 = $src1
/*104957*/      OPC_RecordChild1, // #1 = $src2
/*104958*/      OPC_SwitchType /*9 cases */, 35, MVT::v8i16,// ->104996
/*104961*/        OPC_Scope, 10, /*->104973*/ // 3 children in Scope
/*104963*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*104965*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWrr), 0,
                        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)
/*104973*/        /*Scope*/ 10, /*->104984*/
/*104974*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*104976*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULLWrr), 0,
                        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)
/*104984*/        /*Scope*/ 10, /*->104995*/
/*104985*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*104987*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mul:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULLWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*104995*/        0, /*End of Scope*/
/*104996*/      /*SwitchType*/ 24, MVT::v16i16,// ->105022
/*104998*/        OPC_Scope, 10, /*->105010*/ // 2 children in Scope
/*105000*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*105002*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mul:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULLWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*105010*/        /*Scope*/ 10, /*->105021*/
/*105011*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*105013*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mul:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULLWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*105021*/        0, /*End of Scope*/
/*105022*/      /*SwitchType*/ 35, MVT::v4i32,// ->105059
/*105024*/        OPC_Scope, 10, /*->105036*/ // 3 children in Scope
/*105026*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*105028*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDrr), 0,
                        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)
/*105036*/        /*Scope*/ 10, /*->105047*/
/*105037*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*105039*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULLDrr), 0,
                        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)
/*105047*/        /*Scope*/ 10, /*->105058*/
/*105048*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*105050*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (mul:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPMULLDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*105058*/        0, /*End of Scope*/
/*105059*/      /*SwitchType*/ 24, MVT::v8i32,// ->105085
/*105061*/        OPC_Scope, 10, /*->105073*/ // 2 children in Scope
/*105063*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*105065*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (mul:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPMULLDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*105073*/        /*Scope*/ 10, /*->105084*/
/*105074*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*105076*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (mul:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPMULLDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*105084*/        0, /*End of Scope*/
/*105085*/      /*SwitchType*/ 10, MVT::v16i32,// ->105097
/*105087*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*105089*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPMULLDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*105097*/      /*SwitchType*/ 10, MVT::v32i16,// ->105109
/*105099*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*105101*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPMULLWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*105109*/      /*SwitchType*/ 10, MVT::v8i64,// ->105121
/*105111*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*105113*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPMULLQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*105121*/      /*SwitchType*/ 71, MVT::v4i64,// ->105194
/*105123*/        OPC_Scope, 10, /*->105135*/ // 2 children in Scope
/*105125*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*105127*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPMULLQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*105135*/        /*Scope*/ 57, /*->105193*/
/*105136*/          OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*105138*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*105144*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*105147*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*105156*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*105162*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*105165*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*105174*/          OPC_EmitNode1, TARGET_VAL(X86::VPMULLQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*105182*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*105185*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 8, 9, 
                    // Src: (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMULLQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*105193*/        0, /*End of Scope*/
/*105194*/      /*SwitchType*/ 71, MVT::v2i64,// ->105267
/*105196*/        OPC_Scope, 10, /*->105208*/ // 2 children in Scope
/*105198*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*105200*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPMULLQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*105208*/        /*Scope*/ 57, /*->105266*/
/*105209*/          OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*105211*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*105217*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*105220*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*105229*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*105235*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*105238*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*105247*/          OPC_EmitNode1, TARGET_VAL(X86::VPMULLQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*105255*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*105258*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 8, 9, 
                    // Src: (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMULLQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*105266*/        0, /*End of Scope*/
/*105267*/      0, // EndSwitchType
/*105268*/    0, /*End of Scope*/
/*105269*/  /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::LWPINS),// ->105419
/*105273*/    OPC_RecordNode, // #0 = 'X86lwpins' chained node
/*105274*/    OPC_RecordChild1, // #1 = $src0
/*105275*/    OPC_Scope, 70, /*->105347*/ // 2 children in Scope
/*105277*/      OPC_CheckChild1Type, MVT::i32,
/*105279*/      OPC_Scope, 43, /*->105324*/ // 2 children in Scope
/*105281*/        OPC_MoveChild2,
/*105282*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*105285*/        OPC_RecordMemRef,
/*105286*/        OPC_RecordNode, // #2 = 'ld' chained node
/*105287*/        OPC_CheckFoldableChainNode,
/*105288*/        OPC_RecordChild1, // #3 = $src1
/*105289*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*105291*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*105293*/        OPC_MoveParent,
/*105294*/        OPC_RecordChild3, // #4 = $cntl
/*105295*/        OPC_MoveChild3,
/*105296*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*105299*/        OPC_MoveParent,
/*105300*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/*105302*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*105305*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*105309*/        OPC_EmitConvertToTarget, 4,
/*105311*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LWPINS32rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86lwpins:{ *:[i32] } GR32:{ *:[i32] }:$src0, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:{ *:[i32] }):$cntl) - Complexity = 28
                  // Dst: (LWPINS32rmi:{ *:[i32] } GR32:{ *:[i32] }:$src0, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$cntl)
/*105324*/      /*Scope*/ 21, /*->105346*/
/*105325*/        OPC_RecordChild2, // #2 = $src1
/*105326*/        OPC_RecordChild3, // #3 = $cntl
/*105327*/        OPC_MoveChild3,
/*105328*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*105331*/        OPC_MoveParent,
/*105332*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/*105334*/        OPC_EmitMergeInputChains1_0,
/*105335*/        OPC_EmitConvertToTarget, 3,
/*105337*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LWPINS32rri), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 1, 2, 4, 
                  // Src: (X86lwpins:{ *:[i32] } GR32:{ *:[i32] }:$src0, GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$cntl) - Complexity = 6
                  // Dst: (LWPINS32rri:{ *:[i32] } GR32:{ *:[i32] }:$src0, GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$cntl)
/*105346*/      0, /*End of Scope*/
/*105347*/    /*Scope*/ 70, /*->105418*/
/*105348*/      OPC_CheckChild1Type, MVT::i64,
/*105350*/      OPC_Scope, 43, /*->105395*/ // 2 children in Scope
/*105352*/        OPC_MoveChild2,
/*105353*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*105356*/        OPC_RecordMemRef,
/*105357*/        OPC_RecordNode, // #2 = 'ld' chained node
/*105358*/        OPC_CheckFoldableChainNode,
/*105359*/        OPC_RecordChild1, // #3 = $src1
/*105360*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*105362*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*105364*/        OPC_MoveParent,
/*105365*/        OPC_RecordChild3, // #4 = $cntl
/*105366*/        OPC_MoveChild3,
/*105367*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*105370*/        OPC_MoveParent,
/*105371*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/*105373*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*105376*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*105380*/        OPC_EmitConvertToTarget, 4,
/*105382*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LWPINS64rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86lwpins:{ *:[i32] } GR64:{ *:[i64] }:$src0, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:{ *:[i32] }):$cntl) - Complexity = 28
                  // Dst: (LWPINS64rmi:{ *:[i32] } GR64:{ *:[i64] }:$src0, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$cntl)
/*105395*/      /*Scope*/ 21, /*->105417*/
/*105396*/        OPC_RecordChild2, // #2 = $src1
/*105397*/        OPC_RecordChild3, // #3 = $cntl
/*105398*/        OPC_MoveChild3,
/*105399*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*105402*/        OPC_MoveParent,
/*105403*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/*105405*/        OPC_EmitMergeInputChains1_0,
/*105406*/        OPC_EmitConvertToTarget, 3,
/*105408*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LWPINS64rri), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 1, 2, 4, 
                  // Src: (X86lwpins:{ *:[i32] } GR64:{ *:[i64] }:$src0, GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$cntl) - Complexity = 6
                  // Dst: (LWPINS64rri:{ *:[i32] } GR64:{ *:[i64] }:$src0, GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$cntl)
/*105417*/      0, /*End of Scope*/
/*105418*/    0, /*End of Scope*/
/*105419*/  /*SwitchOpcode*/ 56|128,12/*1592*/, TARGET_VAL(ISD::ROTL),// ->107015
/*105423*/    OPC_Scope, 86, /*->105511*/ // 10 children in Scope
/*105425*/      OPC_MoveChild0,
/*105426*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*105429*/      OPC_RecordMemRef,
/*105430*/      OPC_RecordNode, // #0 = 'ld' chained node
/*105431*/      OPC_CheckFoldableChainNode,
/*105432*/      OPC_RecordChild1, // #1 = $src
/*105433*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*105435*/      OPC_Scope, 36, /*->105473*/ // 2 children in Scope
/*105437*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*105439*/        OPC_MoveParent,
/*105440*/        OPC_RecordChild1, // #2 = $shamt
/*105441*/        OPC_MoveChild1,
/*105442*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*105445*/        OPC_CheckType, MVT::i8,
/*105447*/        OPC_MoveParent,
/*105448*/        OPC_CheckType, MVT::i32,
/*105450*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/*105452*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*105455*/        OPC_EmitMergeInputChains1_0,
/*105456*/        OPC_EmitConvertToTarget, 2,
/*105458*/        OPC_EmitNodeXForm, 10, 8, // ROT32L2R_imm8
/*105461*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RORX32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                  // Src: (rotl:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:{ *:[i8] }):$shamt) - Complexity = 28
                  // Dst: (RORX32mi:{ *:[i32] } addr:{ *:[iPTR] }:$src, (ROT32L2R_imm8:{ *:[i8] } (imm:{ *:[i8] }):$shamt))
/*105473*/      /*Scope*/ 36, /*->105510*/
/*105474*/        OPC_CheckPredicate, 9, // Predicate_load
/*105476*/        OPC_MoveParent,
/*105477*/        OPC_RecordChild1, // #2 = $shamt
/*105478*/        OPC_MoveChild1,
/*105479*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*105482*/        OPC_CheckType, MVT::i8,
/*105484*/        OPC_MoveParent,
/*105485*/        OPC_CheckType, MVT::i64,
/*105487*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/*105489*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*105492*/        OPC_EmitMergeInputChains1_0,
/*105493*/        OPC_EmitConvertToTarget, 2,
/*105495*/        OPC_EmitNodeXForm, 11, 8, // ROT64L2R_imm8
/*105498*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RORX64mi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                  // Src: (rotl:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i8] }):$shamt) - Complexity = 28
                  // Dst: (RORX64mi:{ *:[i64] } addr:{ *:[iPTR] }:$src, (ROT64L2R_imm8:{ *:[i8] } (imm:{ *:[i8] }):$shamt))
/*105510*/      0, /*End of Scope*/
/*105511*/    /*Scope*/ 67|128,3/*451*/, /*->105964*/
/*105513*/      OPC_RecordChild0, // #0 = $src
/*105514*/      OPC_Scope, 80, /*->105596*/ // 9 children in Scope
/*105516*/        OPC_RecordChild1, // #1 = $shamt
/*105517*/        OPC_MoveChild1,
/*105518*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*105521*/        OPC_CheckType, MVT::i8,
/*105523*/        OPC_MoveParent,
/*105524*/        OPC_SwitchType /*2 cases */, 33, MVT::i32,// ->105560
/*105527*/          OPC_Scope, 15, /*->105544*/ // 2 children in Scope
/*105529*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/*105531*/            OPC_EmitConvertToTarget, 1,
/*105533*/            OPC_EmitNodeXForm, 10, 2, // ROT32L2R_imm8
/*105536*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RORX32ri), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (rotl:{ *:[i32] } GR32:{ *:[i32] }:$src, (imm:{ *:[i8] }):$shamt) - Complexity = 16
                      // Dst: (RORX32ri:{ *:[i32] } GR32:{ *:[i32] }:$src, (ROT32L2R_imm8:{ *:[i8] } (imm:{ *:[i8] }):$shamt))
/*105544*/          /*Scope*/ 14, /*->105559*/
/*105545*/            OPC_CheckPatternPredicate, 124, // (Subtarget->hasFastSHLDRotate())
/*105547*/            OPC_EmitConvertToTarget, 1,
/*105549*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHLD32rri8), 0,
                          MVT::i32, MVT::i32, 3/*#Ops*/, 0, 0, 2, 
                      // Src: (rotl:{ *:[i32] } GR32:{ *:[i32] }:$src, (imm:{ *:[i8] }):$shamt) - Complexity = 11
                      // Dst: (SHLD32rri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, GR32:{ *:[i32] }:$src, (imm:{ *:[i8] }):$shamt)
/*105559*/          0, /*End of Scope*/
/*105560*/        /*SwitchType*/ 33, MVT::i64,// ->105595
/*105562*/          OPC_Scope, 15, /*->105579*/ // 2 children in Scope
/*105564*/            OPC_CheckPatternPredicate, 32, // (Subtarget->hasBMI2())
/*105566*/            OPC_EmitConvertToTarget, 1,
/*105568*/            OPC_EmitNodeXForm, 11, 2, // ROT64L2R_imm8
/*105571*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RORX64ri), 0,
                          MVT::i64, 2/*#Ops*/, 0, 3, 
                      // Src: (rotl:{ *:[i64] } GR64:{ *:[i64] }:$src, (imm:{ *:[i8] }):$shamt) - Complexity = 16
                      // Dst: (RORX64ri:{ *:[i64] } GR64:{ *:[i64] }:$src, (ROT64L2R_imm8:{ *:[i8] } (imm:{ *:[i8] }):$shamt))
/*105579*/          /*Scope*/ 14, /*->105594*/
/*105580*/            OPC_CheckPatternPredicate, 124, // (Subtarget->hasFastSHLDRotate())
/*105582*/            OPC_EmitConvertToTarget, 1,
/*105584*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHLD64rri8), 0,
                          MVT::i64, MVT::i32, 3/*#Ops*/, 0, 0, 2, 
                      // Src: (rotl:{ *:[i64] } GR64:{ *:[i64] }:$src, (imm:{ *:[i8] }):$shamt) - Complexity = 11
                      // Dst: (SHLD64rri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, GR64:{ *:[i64] }:$src, (imm:{ *:[i8] }):$shamt)
/*105594*/          0, /*End of Scope*/
/*105595*/        0, // EndSwitchType
/*105596*/      /*Scope*/ 91, /*->105688*/
/*105597*/        OPC_MoveChild1,
/*105598*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*105601*/        OPC_RecordChild0, // #1 = physreg input CL
/*105602*/        OPC_MoveChild1,
/*105603*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*105606*/        OPC_Scope, 19, /*->105627*/ // 4 children in Scope
/*105608*/          OPC_CheckPredicate, 11, // Predicate_immShift8
/*105610*/          OPC_MoveParent,
/*105611*/          OPC_CheckType, MVT::i8,
/*105613*/          OPC_MoveParent,
/*105614*/          OPC_CheckType, MVT::i8,
/*105616*/          OPC_EmitCopyToReg, 1, X86::CL,
/*105619*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROL8rCL), 0|OPFL_GlueInput,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotl:{ *:[i8] } GR8:{ *:[i8] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift8>>)) - Complexity = 10
                    // Dst: (ROL8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/*105627*/        /*Scope*/ 19, /*->105647*/
/*105628*/          OPC_CheckPredicate, 12, // Predicate_immShift16
/*105630*/          OPC_MoveParent,
/*105631*/          OPC_CheckType, MVT::i8,
/*105633*/          OPC_MoveParent,
/*105634*/          OPC_CheckType, MVT::i16,
/*105636*/          OPC_EmitCopyToReg, 1, X86::CL,
/*105639*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROL16rCL), 0|OPFL_GlueInput,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotl:{ *:[i16] } GR16:{ *:[i16] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift16>>)) - Complexity = 10
                    // Dst: (ROL16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/*105647*/        /*Scope*/ 19, /*->105667*/
/*105648*/          OPC_CheckPredicate, 6, // Predicate_immShift32
/*105650*/          OPC_MoveParent,
/*105651*/          OPC_CheckType, MVT::i8,
/*105653*/          OPC_MoveParent,
/*105654*/          OPC_CheckType, MVT::i32,
/*105656*/          OPC_EmitCopyToReg, 1, X86::CL,
/*105659*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROL32rCL), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotl:{ *:[i32] } GR32:{ *:[i32] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                    // Dst: (ROL32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/*105667*/        /*Scope*/ 19, /*->105687*/
/*105668*/          OPC_CheckPredicate, 10, // Predicate_immShift64
/*105670*/          OPC_MoveParent,
/*105671*/          OPC_CheckType, MVT::i8,
/*105673*/          OPC_MoveParent,
/*105674*/          OPC_CheckType, MVT::i64,
/*105676*/          OPC_EmitCopyToReg, 1, X86::CL,
/*105679*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROL64rCL), 0|OPFL_GlueInput,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotl:{ *:[i64] } GR64:{ *:[i64] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 10
                    // Dst: (ROL64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/*105687*/        0, /*End of Scope*/
/*105688*/      /*Scope*/ 46, /*->105735*/
/*105689*/        OPC_CheckChild1Integer, 1, 
/*105691*/        OPC_CheckChild1Type, MVT::i8,
/*105693*/        OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->105704
/*105696*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROL8r1), 0,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotl:{ *:[i8] } GR8:{ *:[i8] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (ROL8r1:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/*105704*/        /*SwitchType*/ 8, MVT::i16,// ->105714
/*105706*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROL16r1), 0,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotl:{ *:[i16] } GR16:{ *:[i16] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (ROL16r1:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/*105714*/        /*SwitchType*/ 8, MVT::i32,// ->105724
/*105716*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROL32r1), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotl:{ *:[i32] } GR32:{ *:[i32] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (ROL32r1:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/*105724*/        /*SwitchType*/ 8, MVT::i64,// ->105734
/*105726*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROL64r1), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotl:{ *:[i64] } GR64:{ *:[i64] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (ROL64r1:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/*105734*/        0, // EndSwitchType
/*105735*/      /*Scope*/ 14, /*->105750*/
/*105736*/        OPC_CheckChild1Integer, 7, 
/*105738*/        OPC_CheckChild1Type, MVT::i8,
/*105740*/        OPC_CheckType, MVT::i8,
/*105742*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROR8r1), 0,
                      MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotl:{ *:[i8] } GR8:{ *:[i8] }:$src1, 7:{ *:[i8] }) - Complexity = 8
                  // Dst: (ROR8r1:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/*105750*/      /*Scope*/ 14, /*->105765*/
/*105751*/        OPC_CheckChild1Integer, 15, 
/*105753*/        OPC_CheckChild1Type, MVT::i8,
/*105755*/        OPC_CheckType, MVT::i16,
/*105757*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROR16r1), 0,
                      MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotl:{ *:[i16] } GR16:{ *:[i16] }:$src1, 15:{ *:[i8] }) - Complexity = 8
                  // Dst: (ROR16r1:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/*105765*/      /*Scope*/ 14, /*->105780*/
/*105766*/        OPC_CheckChild1Integer, 31, 
/*105768*/        OPC_CheckChild1Type, MVT::i8,
/*105770*/        OPC_CheckType, MVT::i32,
/*105772*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROR32r1), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotl:{ *:[i32] } GR32:{ *:[i32] }:$src1, 31:{ *:[i8] }) - Complexity = 8
                  // Dst: (ROR32r1:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/*105780*/      /*Scope*/ 14, /*->105795*/
/*105781*/        OPC_CheckChild1Integer, 63, 
/*105783*/        OPC_CheckChild1Type, MVT::i8,
/*105785*/        OPC_CheckType, MVT::i64,
/*105787*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROR64r1), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotl:{ *:[i64] } GR64:{ *:[i64] }:$src1, 63:{ *:[i8] }) - Complexity = 8
                  // Dst: (ROR64r1:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/*105795*/      /*Scope*/ 122, /*->105918*/
/*105796*/        OPC_RecordChild1, // #1 = $src2
/*105797*/        OPC_Scope, 61, /*->105860*/ // 2 children in Scope
/*105799*/          OPC_MoveChild1,
/*105800*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*105803*/          OPC_CheckType, MVT::i8,
/*105805*/          OPC_MoveParent,
/*105806*/          OPC_SwitchType /*4 cases */, 11, MVT::i8,// ->105820
/*105809*/            OPC_EmitConvertToTarget, 1,
/*105811*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL8ri), 0,
                          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)
/*105820*/          /*SwitchType*/ 11, MVT::i16,// ->105833
/*105822*/            OPC_EmitConvertToTarget, 1,
/*105824*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL16ri), 0,
                          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)
/*105833*/          /*SwitchType*/ 11, MVT::i32,// ->105846
/*105835*/            OPC_EmitConvertToTarget, 1,
/*105837*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL32ri), 0,
                          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)
/*105846*/          /*SwitchType*/ 11, MVT::i64,// ->105859
/*105848*/            OPC_EmitConvertToTarget, 1,
/*105850*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL64ri), 0,
                          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)
/*105859*/          0, // EndSwitchType
/*105860*/        /*Scope*/ 56, /*->105917*/
/*105861*/          OPC_CheckChild1Type, MVT::i8,
/*105863*/          OPC_SwitchType /*4 cases */, 11, MVT::i8,// ->105877
/*105866*/            OPC_EmitCopyToReg, 1, X86::CL,
/*105869*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL8rCL), 0|OPFL_GlueInput,
                          MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (rotl:{ *:[i8] } GR8:{ *:[i8] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                      // Dst: (ROL8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/*105877*/          /*SwitchType*/ 11, MVT::i16,// ->105890
/*105879*/            OPC_EmitCopyToReg, 1, X86::CL,
/*105882*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL16rCL), 0|OPFL_GlueInput,
                          MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (rotl:{ *:[i16] } GR16:{ *:[i16] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                      // Dst: (ROL16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/*105890*/          /*SwitchType*/ 11, MVT::i32,// ->105903
/*105892*/            OPC_EmitCopyToReg, 1, X86::CL,
/*105895*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL32rCL), 0|OPFL_GlueInput,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (rotl:{ *:[i32] } GR32:{ *:[i32] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                      // Dst: (ROL32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/*105903*/          /*SwitchType*/ 11, MVT::i64,// ->105916
/*105905*/            OPC_EmitCopyToReg, 1, X86::CL,
/*105908*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL64rCL), 0|OPFL_GlueInput,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (rotl:{ *:[i64] } GR64:{ *:[i64] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                      // Dst: (ROL64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/*105916*/          0, // EndSwitchType
/*105917*/        0, /*End of Scope*/
/*105918*/      /*Scope*/ 44, /*->105963*/
/*105919*/        OPC_MoveChild1,
/*105920*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*105923*/        OPC_MoveChild0,
/*105924*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*105927*/        OPC_RecordMemRef,
/*105928*/        OPC_RecordNode, // #1 = 'ld' chained node
/*105929*/        OPC_CheckFoldableChainNode,
/*105930*/        OPC_RecordChild1, // #2 = $src2
/*105931*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*105933*/        OPC_CheckPredicate, 9, // Predicate_load
/*105935*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*105937*/        OPC_CheckType, MVT::v2i64,
/*105939*/        OPC_MoveParent,
/*105940*/        OPC_CheckType, MVT::v16i8,
/*105942*/        OPC_MoveParent,
/*105943*/        OPC_CheckType, MVT::v16i8,
/*105945*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*105947*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*105950*/        OPC_EmitMergeInputChains1_1,
/*105951*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (rotl:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPROTBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*105963*/      0, /*End of Scope*/
/*105964*/    /*Scope*/ 45, /*->106010*/
/*105965*/      OPC_MoveChild0,
/*105966*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*105969*/      OPC_MoveChild0,
/*105970*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*105973*/      OPC_RecordMemRef,
/*105974*/      OPC_RecordNode, // #0 = 'ld' chained node
/*105975*/      OPC_CheckFoldableChainNode,
/*105976*/      OPC_RecordChild1, // #1 = $src1
/*105977*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*105979*/      OPC_CheckPredicate, 9, // Predicate_load
/*105981*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*105983*/      OPC_CheckType, MVT::v2i64,
/*105985*/      OPC_MoveParent,
/*105986*/      OPC_MoveParent,
/*105987*/      OPC_RecordChild1, // #2 = $src2
/*105988*/      OPC_CheckChild1Type, MVT::v16i8,
/*105990*/      OPC_CheckType, MVT::v16i8,
/*105992*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*105994*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*105997*/      OPC_EmitMergeInputChains1_0,
/*105998*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTBmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (rotl:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src2) - Complexity = 28
                // Dst: (VPROTBmr:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*106010*/    /*Scope*/ 45, /*->106056*/
/*106011*/      OPC_RecordChild0, // #0 = $src1
/*106012*/      OPC_MoveChild1,
/*106013*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*106016*/      OPC_MoveChild0,
/*106017*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*106020*/      OPC_RecordMemRef,
/*106021*/      OPC_RecordNode, // #1 = 'ld' chained node
/*106022*/      OPC_CheckFoldableChainNode,
/*106023*/      OPC_RecordChild1, // #2 = $src2
/*106024*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*106026*/      OPC_CheckPredicate, 9, // Predicate_load
/*106028*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*106030*/      OPC_CheckType, MVT::v2i64,
/*106032*/      OPC_MoveParent,
/*106033*/      OPC_CheckType, MVT::v4i32,
/*106035*/      OPC_MoveParent,
/*106036*/      OPC_CheckType, MVT::v4i32,
/*106038*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*106040*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106043*/      OPC_EmitMergeInputChains1_1,
/*106044*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (rotl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                // Dst: (VPROTDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106056*/    /*Scope*/ 45, /*->106102*/
/*106057*/      OPC_MoveChild0,
/*106058*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*106061*/      OPC_MoveChild0,
/*106062*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*106065*/      OPC_RecordMemRef,
/*106066*/      OPC_RecordNode, // #0 = 'ld' chained node
/*106067*/      OPC_CheckFoldableChainNode,
/*106068*/      OPC_RecordChild1, // #1 = $src1
/*106069*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*106071*/      OPC_CheckPredicate, 9, // Predicate_load
/*106073*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*106075*/      OPC_CheckType, MVT::v2i64,
/*106077*/      OPC_MoveParent,
/*106078*/      OPC_MoveParent,
/*106079*/      OPC_RecordChild1, // #2 = $src2
/*106080*/      OPC_CheckChild1Type, MVT::v4i32,
/*106082*/      OPC_CheckType, MVT::v4i32,
/*106084*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*106086*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*106089*/      OPC_EmitMergeInputChains1_0,
/*106090*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTDmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (rotl:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src2) - Complexity = 28
                // Dst: (VPROTDmr:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*106102*/    /*Scope*/ 45, /*->106148*/
/*106103*/      OPC_RecordChild0, // #0 = $src1
/*106104*/      OPC_MoveChild1,
/*106105*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*106108*/      OPC_MoveChild0,
/*106109*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*106112*/      OPC_RecordMemRef,
/*106113*/      OPC_RecordNode, // #1 = 'ld' chained node
/*106114*/      OPC_CheckFoldableChainNode,
/*106115*/      OPC_RecordChild1, // #2 = $src2
/*106116*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*106118*/      OPC_CheckPredicate, 9, // Predicate_load
/*106120*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*106122*/      OPC_CheckType, MVT::v2i64,
/*106124*/      OPC_MoveParent,
/*106125*/      OPC_CheckType, MVT::v8i16,
/*106127*/      OPC_MoveParent,
/*106128*/      OPC_CheckType, MVT::v8i16,
/*106130*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*106132*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106135*/      OPC_EmitMergeInputChains1_1,
/*106136*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (rotl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                // Dst: (VPROTWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106148*/    /*Scope*/ 45, /*->106194*/
/*106149*/      OPC_MoveChild0,
/*106150*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*106153*/      OPC_MoveChild0,
/*106154*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*106157*/      OPC_RecordMemRef,
/*106158*/      OPC_RecordNode, // #0 = 'ld' chained node
/*106159*/      OPC_CheckFoldableChainNode,
/*106160*/      OPC_RecordChild1, // #1 = $src1
/*106161*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*106163*/      OPC_CheckPredicate, 9, // Predicate_load
/*106165*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*106167*/      OPC_CheckType, MVT::v2i64,
/*106169*/      OPC_MoveParent,
/*106170*/      OPC_MoveParent,
/*106171*/      OPC_RecordChild1, // #2 = $src2
/*106172*/      OPC_CheckChild1Type, MVT::v8i16,
/*106174*/      OPC_CheckType, MVT::v8i16,
/*106176*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*106178*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*106181*/      OPC_EmitMergeInputChains1_0,
/*106182*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTWmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (rotl:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src2) - Complexity = 28
                // Dst: (VPROTWmr:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*106194*/    /*Scope*/ 49|128,2/*305*/, /*->106501*/
/*106196*/      OPC_RecordChild0, // #0 = $src1
/*106197*/      OPC_MoveChild1,
/*106198*/      OPC_SwitchOpcode /*3 cases */, 94, TARGET_VAL(ISD::BITCAST),// ->106296
/*106202*/        OPC_MoveChild0,
/*106203*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*106206*/        OPC_RecordMemRef,
/*106207*/        OPC_RecordNode, // #1 = 'ld' chained node
/*106208*/        OPC_CheckFoldableChainNode,
/*106209*/        OPC_RecordChild1, // #2 = $src2
/*106210*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*106212*/        OPC_CheckPredicate, 9, // Predicate_load
/*106214*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*106216*/        OPC_SwitchType /*3 cases */, 24, MVT::v8i64,// ->106243
/*106219*/          OPC_MoveParent,
/*106220*/          OPC_CheckType, MVT::v16i32,
/*106222*/          OPC_MoveParent,
/*106223*/          OPC_CheckType, MVT::v16i32,
/*106225*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*106227*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106230*/          OPC_EmitMergeInputChains1_1,
/*106231*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPROLVDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106243*/        /*SwitchType*/ 24, MVT::v4i64,// ->106269
/*106245*/          OPC_MoveParent,
/*106246*/          OPC_CheckType, MVT::v8i32,
/*106248*/          OPC_MoveParent,
/*106249*/          OPC_CheckType, MVT::v8i32,
/*106251*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106253*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106256*/          OPC_EmitMergeInputChains1_1,
/*106257*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPROLVDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106269*/        /*SwitchType*/ 24, MVT::v2i64,// ->106295
/*106271*/          OPC_MoveParent,
/*106272*/          OPC_CheckType, MVT::v4i32,
/*106274*/          OPC_MoveParent,
/*106275*/          OPC_CheckType, MVT::v4i32,
/*106277*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106279*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106282*/          OPC_EmitMergeInputChains1_1,
/*106283*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPROLVDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106295*/        0, // EndSwitchType
/*106296*/      /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST),// ->106464
/*106300*/        OPC_MoveChild0,
/*106301*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*106304*/        OPC_RecordMemRef,
/*106305*/        OPC_RecordNode, // #1 = 'ld' chained node
/*106306*/        OPC_CheckFoldableChainNode,
/*106307*/        OPC_RecordChild1, // #2 = $src2
/*106308*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*106310*/        OPC_SwitchType /*2 cases */, 74, MVT::i32,// ->106387
/*106313*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*106315*/          OPC_MoveParent,
/*106316*/          OPC_SwitchType /*3 cases */, 21, MVT::v16i32,// ->106340
/*106319*/            OPC_MoveParent,
/*106320*/            OPC_CheckType, MVT::v16i32,
/*106322*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*106324*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106327*/            OPC_EmitMergeInputChains1_1,
/*106328*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPROLVDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106340*/          /*SwitchType*/ 21, MVT::v8i32,// ->106363
/*106342*/            OPC_MoveParent,
/*106343*/            OPC_CheckType, MVT::v8i32,
/*106345*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106347*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106350*/            OPC_EmitMergeInputChains1_1,
/*106351*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPROLVDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106363*/          /*SwitchType*/ 21, MVT::v4i32,// ->106386
/*106365*/            OPC_MoveParent,
/*106366*/            OPC_CheckType, MVT::v4i32,
/*106368*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106370*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106373*/            OPC_EmitMergeInputChains1_1,
/*106374*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPROLVDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106386*/          0, // EndSwitchType
/*106387*/        /*SwitchType*/ 74, MVT::i64,// ->106463
/*106389*/          OPC_CheckPredicate, 9, // Predicate_load
/*106391*/          OPC_MoveParent,
/*106392*/          OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->106416
/*106395*/            OPC_MoveParent,
/*106396*/            OPC_CheckType, MVT::v8i64,
/*106398*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*106400*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106403*/            OPC_EmitMergeInputChains1_1,
/*106404*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPROLVQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106416*/          /*SwitchType*/ 21, MVT::v4i64,// ->106439
/*106418*/            OPC_MoveParent,
/*106419*/            OPC_CheckType, MVT::v4i64,
/*106421*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106423*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106426*/            OPC_EmitMergeInputChains1_1,
/*106427*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPROLVQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106439*/          /*SwitchType*/ 21, MVT::v2i64,// ->106462
/*106441*/            OPC_MoveParent,
/*106442*/            OPC_CheckType, MVT::v2i64,
/*106444*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106446*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106449*/            OPC_EmitMergeInputChains1_1,
/*106450*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPROLVQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106462*/          0, // EndSwitchType
/*106463*/        0, // EndSwitchType
/*106464*/      /*SwitchOpcode*/ 33, TARGET_VAL(ISD::LOAD),// ->106500
/*106467*/        OPC_RecordMemRef,
/*106468*/        OPC_RecordNode, // #1 = 'ld' chained node
/*106469*/        OPC_CheckFoldableChainNode,
/*106470*/        OPC_RecordChild1, // #2 = $src2
/*106471*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*106473*/        OPC_CheckPredicate, 9, // Predicate_load
/*106475*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*106477*/        OPC_CheckType, MVT::v2i64,
/*106479*/        OPC_MoveParent,
/*106480*/        OPC_CheckType, MVT::v2i64,
/*106482*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*106484*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106487*/        OPC_EmitMergeInputChains1_1,
/*106488*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (rotl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPROTQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106500*/      0, // EndSwitchOpcode
/*106501*/    /*Scope*/ 38, /*->106540*/
/*106502*/      OPC_MoveChild0,
/*106503*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*106506*/      OPC_RecordMemRef,
/*106507*/      OPC_RecordNode, // #0 = 'ld' chained node
/*106508*/      OPC_CheckFoldableChainNode,
/*106509*/      OPC_RecordChild1, // #1 = $src1
/*106510*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*106512*/      OPC_CheckPredicate, 9, // Predicate_load
/*106514*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*106516*/      OPC_MoveParent,
/*106517*/      OPC_RecordChild1, // #2 = $src2
/*106518*/      OPC_CheckChild1Type, MVT::v2i64,
/*106520*/      OPC_CheckType, MVT::v2i64,
/*106522*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*106524*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*106527*/      OPC_EmitMergeInputChains1_0,
/*106528*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTQmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (rotl:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2i64] }:$src2) - Complexity = 25
                // Dst: (VPROTQmr:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*106540*/    /*Scope*/ 88|128,3/*472*/, /*->107014*/
/*106542*/      OPC_RecordChild0, // #0 = $src1
/*106543*/      OPC_Scope, 85, /*->106630*/ // 2 children in Scope
/*106545*/        OPC_MoveChild1,
/*106546*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*106549*/        OPC_RecordMemRef,
/*106550*/        OPC_RecordNode, // #1 = 'ld' chained node
/*106551*/        OPC_CheckFoldableChainNode,
/*106552*/        OPC_RecordChild1, // #2 = $src2
/*106553*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*106555*/        OPC_CheckPredicate, 9, // Predicate_load
/*106557*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*106559*/        OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->106583
/*106562*/          OPC_MoveParent,
/*106563*/          OPC_CheckType, MVT::v8i64,
/*106565*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*106567*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106570*/          OPC_EmitMergeInputChains1_1,
/*106571*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPROLVQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106583*/        /*SwitchType*/ 21, MVT::v4i64,// ->106606
/*106585*/          OPC_MoveParent,
/*106586*/          OPC_CheckType, MVT::v4i64,
/*106588*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106590*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106593*/          OPC_EmitMergeInputChains1_1,
/*106594*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPROLVQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106606*/        /*SwitchType*/ 21, MVT::v2i64,// ->106629
/*106608*/          OPC_MoveParent,
/*106609*/          OPC_CheckType, MVT::v2i64,
/*106611*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106613*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*106616*/          OPC_EmitMergeInputChains1_1,
/*106617*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPROLVQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*106629*/        0, // EndSwitchType
/*106630*/      /*Scope*/ 125|128,2/*381*/, /*->107013*/
/*106632*/        OPC_RecordChild1, // #1 = $src2
/*106633*/        OPC_SwitchType /*8 cases */, 12, MVT::v16i8,// ->106648
/*106636*/          OPC_CheckChild1Type, MVT::v16i8,
/*106638*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*106640*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (rotl:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPROTBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*106648*/        /*SwitchType*/ 84, MVT::v4i32,// ->106734
/*106650*/          OPC_CheckChild1Type, MVT::v4i32,
/*106652*/          OPC_Scope, 10, /*->106664*/ // 3 children in Scope
/*106654*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*106656*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTDrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (rotl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPROTDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*106664*/          /*Scope*/ 10, /*->106675*/
/*106665*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106667*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ128rr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (rotl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPROLVDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*106675*/          /*Scope*/ 57, /*->106733*/
/*106676*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106678*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*106684*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106687*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*106696*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*106702*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106705*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*106714*/            OPC_EmitNode1, TARGET_VAL(X86::VPROLVDZrr), 0,
                          MVT::v16i32, 2/*#Ops*/, 4, 7,  // Results = #8
/*106722*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106725*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 8, 9, 
                      // Src: (rotl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VPROLVDZrr:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*106733*/          0, /*End of Scope*/
/*106734*/        /*SwitchType*/ 84, MVT::v2i64,// ->106820
/*106736*/          OPC_CheckChild1Type, MVT::v2i64,
/*106738*/          OPC_Scope, 10, /*->106750*/ // 3 children in Scope
/*106740*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*106742*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTQrr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (rotl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPROTQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*106750*/          /*Scope*/ 10, /*->106761*/
/*106751*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106753*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ128rr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (rotl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPROLVQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*106761*/          /*Scope*/ 57, /*->106819*/
/*106762*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106764*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*106770*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106773*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*106782*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*106788*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106791*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*106800*/            OPC_EmitNode1, TARGET_VAL(X86::VPROLVQZrr), 0,
                          MVT::v8i64, 2/*#Ops*/, 4, 7,  // Results = #8
/*106808*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106811*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 8, 9, 
                      // Src: (rotl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPROLVQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*106819*/          0, /*End of Scope*/
/*106820*/        /*SwitchType*/ 12, MVT::v8i16,// ->106834
/*106822*/          OPC_CheckChild1Type, MVT::v8i16,
/*106824*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*106826*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (rotl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPROTWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*106834*/        /*SwitchType*/ 12, MVT::v16i32,// ->106848
/*106836*/          OPC_CheckChild1Type, MVT::v16i32,
/*106838*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*106840*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (rotl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                    // Dst: (VPROLVDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*106848*/        /*SwitchType*/ 73, MVT::v8i32,// ->106923
/*106850*/          OPC_CheckChild1Type, MVT::v8i32,
/*106852*/          OPC_Scope, 10, /*->106864*/ // 2 children in Scope
/*106854*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106856*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ256rr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (rotl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPROLVDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*106864*/          /*Scope*/ 57, /*->106922*/
/*106865*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106867*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*106873*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106876*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*106885*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*106891*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106894*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*106903*/            OPC_EmitNode1, TARGET_VAL(X86::VPROLVDZrr), 0,
                          MVT::v16i32, 2/*#Ops*/, 4, 7,  // Results = #8
/*106911*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106914*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i32, 2/*#Ops*/, 8, 9, 
                      // Src: (rotl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VPROLVDZrr:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*106922*/          0, /*End of Scope*/
/*106923*/        /*SwitchType*/ 12, MVT::v8i64,// ->106937
/*106925*/          OPC_CheckChild1Type, MVT::v8i64,
/*106927*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*106929*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZrr), 0,
                        MVT::v8i64, 2/*#Ops*/, 0, 1, 
                    // Src: (rotl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                    // Dst: (VPROLVQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*106937*/        /*SwitchType*/ 73, MVT::v4i64,// ->107012
/*106939*/          OPC_CheckChild1Type, MVT::v4i64,
/*106941*/          OPC_Scope, 10, /*->106953*/ // 2 children in Scope
/*106943*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*106945*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ256rr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (rotl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (VPROLVQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*106953*/          /*Scope*/ 57, /*->107011*/
/*106954*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106956*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*106962*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106965*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*106974*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*106980*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106983*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*106992*/            OPC_EmitNode1, TARGET_VAL(X86::VPROLVQZrr), 0,
                          MVT::v8i64, 2/*#Ops*/, 4, 7,  // Results = #8
/*107000*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107003*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i64, 2/*#Ops*/, 8, 9, 
                      // Src: (rotl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPROLVQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*107011*/          0, /*End of Scope*/
/*107012*/        0, // EndSwitchType
/*107013*/      0, /*End of Scope*/
/*107014*/    0, /*End of Scope*/
/*107015*/  /*SwitchOpcode*/ 64|128,41/*5312*/, TARGET_VAL(X86ISD::VZEXT_MOVL),// ->112331
/*107019*/    OPC_Scope, 60|128,9/*1212*/, /*->108234*/ // 4 children in Scope
/*107022*/      OPC_MoveChild0,
/*107023*/      OPC_SwitchOpcode /*4 cases */, 22|128,2/*278*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->107306
/*107028*/        OPC_Scope, 35, /*->107065*/ // 4 children in Scope
/*107030*/          OPC_MoveChild0,
/*107031*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*107034*/          OPC_RecordMemRef,
/*107035*/          OPC_RecordNode, // #0 = 'ld' chained node
/*107036*/          OPC_CheckFoldableChainNode,
/*107037*/          OPC_RecordChild1, // #1 = $src
/*107038*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*107040*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*107042*/          OPC_CheckType, MVT::i32,
/*107044*/          OPC_MoveParent,
/*107045*/          OPC_MoveParent,
/*107046*/          OPC_CheckType, MVT::x86mmx,
/*107048*/          OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/*107050*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107053*/          OPC_EmitMergeInputChains1_0,
/*107054*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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 = 28
                    // Dst: (MMX_MOVD64rm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/*107065*/        /*Scope*/ 15, /*->107081*/
/*107066*/          OPC_RecordChild0, // #0 = $src
/*107067*/          OPC_CheckChild0Type, MVT::i32,
/*107069*/          OPC_MoveParent,
/*107070*/          OPC_CheckType, MVT::x86mmx,
/*107072*/          OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/*107074*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVD64rr), 0,
                        MVT::x86mmx, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[x86mmx] } (scalar_to_vector:{ *:[x86mmx] } GR32:{ *:[i32] }:$src)) - Complexity = 6
                    // Dst: (MMX_MOVD64rr:{ *:[x86mmx] } GR32:{ *:[i32] }:$src)
/*107081*/        /*Scope*/ 14|128,1/*142*/, /*->107225*/
/*107083*/          OPC_MoveChild0,
/*107084*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*107087*/          OPC_RecordMemRef,
/*107088*/          OPC_RecordNode, // #0 = 'ld' chained node
/*107089*/          OPC_CheckFoldableChainNode,
/*107090*/          OPC_RecordChild1, // #1 = $src
/*107091*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*107093*/          OPC_SwitchType /*2 cases */, 64, MVT::i64,// ->107160
/*107096*/            OPC_CheckPredicate, 53, // Predicate_zextload
/*107098*/            OPC_CheckPredicate, 54, // Predicate_zextloadi32
/*107100*/            OPC_MoveParent,
/*107101*/            OPC_MoveParent,
/*107102*/            OPC_CheckType, MVT::v2i64,
/*107104*/            OPC_Scope, 17, /*->107123*/ // 3 children in Scope
/*107106*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*107108*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107111*/              OPC_EmitMergeInputChains1_0,
/*107112*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_zextload>><<P:Predicate_zextloadi32>>)) - Complexity = 28
                        // Dst: (VMOVDI2PDIrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*107123*/            /*Scope*/ 17, /*->107141*/
/*107124*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*107126*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107129*/              OPC_EmitMergeInputChains1_0,
/*107130*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_zextload>><<P:Predicate_zextloadi32>>)) - Complexity = 28
                        // Dst: (MOVDI2PDIrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*107141*/            /*Scope*/ 17, /*->107159*/
/*107142*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*107144*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107147*/              OPC_EmitMergeInputChains1_0,
/*107148*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_zextload>><<P:Predicate_zextloadi32>>)) - Complexity = 28
                        // Dst: (VMOVDI2PDIZrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*107159*/            0, /*End of Scope*/
/*107160*/          /*SwitchType*/ 62, MVT::i32,// ->107224
/*107162*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*107164*/            OPC_MoveParent,
/*107165*/            OPC_MoveParent,
/*107166*/            OPC_CheckType, MVT::v4i32,
/*107168*/            OPC_Scope, 17, /*->107187*/ // 3 children in Scope
/*107170*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*107172*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107175*/              OPC_EmitMergeInputChains1_0,
/*107176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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 = 28
                        // Dst: (VMOVDI2PDIrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*107187*/            /*Scope*/ 17, /*->107205*/
/*107188*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*107190*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107193*/              OPC_EmitMergeInputChains1_0,
/*107194*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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 = 28
                        // Dst: (MOVDI2PDIrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*107205*/            /*Scope*/ 17, /*->107223*/
/*107206*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*107208*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107211*/              OPC_EmitMergeInputChains1_0,
/*107212*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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 = 28
                        // Dst: (VMOVDI2PDIZrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*107223*/            0, /*End of Scope*/
/*107224*/          0, // EndSwitchType
/*107225*/        /*Scope*/ 79, /*->107305*/
/*107226*/          OPC_RecordChild0, // #0 = $src
/*107227*/          OPC_Scope, 37, /*->107266*/ // 2 children in Scope
/*107229*/            OPC_CheckChild0Type, MVT::i32,
/*107231*/            OPC_MoveParent,
/*107232*/            OPC_CheckType, MVT::v4i32,
/*107234*/            OPC_Scope, 9, /*->107245*/ // 3 children in Scope
/*107236*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*107238*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                            MVT::v4i32, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } GR32:{ *:[i32] }:$src)) - Complexity = 6
                        // Dst: (VMOVDI2PDIrr:{ *:[v4i32] } GR32:{ *:[i32] }:$src)
/*107245*/            /*Scope*/ 9, /*->107255*/
/*107246*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*107248*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDI2PDIrr), 0,
                            MVT::v4i32, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } GR32:{ *:[i32] }:$src)) - Complexity = 6
                        // Dst: (MOVDI2PDIrr:{ *:[v4i32] } GR32:{ *:[i32] }:$src)
/*107255*/            /*Scope*/ 9, /*->107265*/
/*107256*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*107258*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIZrr), 0,
                            MVT::v4i32, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } GR32:{ *:[i32] }:$src)) - Complexity = 6
                        // Dst: (VMOVDI2PDIZrr:{ *:[v4i32] } GR32:{ *:[i32] }:$src)
/*107265*/            0, /*End of Scope*/
/*107266*/          /*Scope*/ 37, /*->107304*/
/*107267*/            OPC_CheckChild0Type, MVT::i64,
/*107269*/            OPC_MoveParent,
/*107270*/            OPC_CheckType, MVT::v2i64,
/*107272*/            OPC_Scope, 9, /*->107283*/ // 3 children in Scope
/*107274*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*107276*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOV64toPQIrr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } GR64:{ *:[i64] }:$src)) - Complexity = 6
                        // Dst: (VMOV64toPQIrr:{ *:[v2i64] } GR64:{ *:[i64] }:$src)
/*107283*/            /*Scope*/ 9, /*->107293*/
/*107284*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*107286*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64toPQIrr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } GR64:{ *:[i64] }:$src)) - Complexity = 6
                        // Dst: (MOV64toPQIrr:{ *:[v2i64] } GR64:{ *:[i64] }:$src)
/*107293*/            /*Scope*/ 9, /*->107303*/
/*107294*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*107296*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOV64toPQIZrr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } GR64:{ *:[i64] }:$src)) - Complexity = 6
                        // Dst: (VMOV64toPQIZrr:{ *:[v2i64] } GR64:{ *:[i64] }:$src)
/*107303*/            0, /*End of Scope*/
/*107304*/          0, /*End of Scope*/
/*107305*/        0, /*End of Scope*/
/*107306*/      /*SwitchOpcode*/ 56|128,3/*440*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->107750
/*107310*/        OPC_MoveChild0,
/*107311*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*107314*/        OPC_MoveParent,
/*107315*/        OPC_MoveChild1,
/*107316*/        OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*107319*/        OPC_Scope, 92|128,1/*220*/, /*->107542*/ // 2 children in Scope
/*107322*/          OPC_MoveChild0,
/*107323*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*107326*/          OPC_RecordMemRef,
/*107327*/          OPC_RecordNode, // #0 = 'ld' chained node
/*107328*/          OPC_CheckFoldableChainNode,
/*107329*/          OPC_RecordChild1, // #1 = $src
/*107330*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*107332*/          OPC_SwitchType /*2 cases */, 125, MVT::i32,// ->107460
/*107335*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*107337*/            OPC_MoveParent,
/*107338*/            OPC_Scope, 76, /*->107416*/ // 2 children in Scope
/*107340*/              OPC_MoveParent,
/*107341*/              OPC_CheckChild2Integer, 0, 
/*107343*/              OPC_CheckChild2Type, MVT::iPTR,
/*107345*/              OPC_MoveParent,
/*107346*/              OPC_CheckType, MVT::v8i32,
/*107348*/              OPC_Scope, 32, /*->107382*/ // 2 children in Scope
/*107350*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*107352*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107355*/                OPC_EmitMergeInputChains1_0,
/*107356*/                OPC_EmitInteger, MVT::i32, 0, 
/*107359*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*107370*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107373*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                              MVT::v8i32, 3/*#Ops*/, 7, 8, 9, 
                          // Src: (X86vzmovl:{ *:[v8i32] } (insert_subvector:{ *:[v8i32] } (undef:{ *:[v8i32] }), (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), 0:{ *:[iPTR] })) - Complexity = 39
                          // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i32] }, (VMOVDI2PDIrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*107382*/              /*Scope*/ 32, /*->107415*/
/*107383*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*107385*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107388*/                OPC_EmitMergeInputChains1_0,
/*107389*/                OPC_EmitInteger, MVT::i32, 0, 
/*107392*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*107403*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107406*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                              MVT::v8i32, 3/*#Ops*/, 7, 8, 9, 
                          // Src: (X86vzmovl:{ *:[v8i32] } (insert_subvector:{ *:[v8i32] } (undef:{ *:[v8i32] }), (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), 0:{ *:[iPTR] })) - Complexity = 39
                          // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i32] }, (VMOVDI2PDIZrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*107415*/              0, /*End of Scope*/
/*107416*/            /*Scope*/ 42, /*->107459*/
/*107417*/              OPC_CheckType, MVT::v4i32,
/*107419*/              OPC_MoveParent,
/*107420*/              OPC_CheckChild2Integer, 0, 
/*107422*/              OPC_CheckChild2Type, MVT::iPTR,
/*107424*/              OPC_MoveParent,
/*107425*/              OPC_CheckType, MVT::v16i32,
/*107427*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*107429*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107432*/              OPC_EmitMergeInputChains1_0,
/*107433*/              OPC_EmitInteger, MVT::i32, 0, 
/*107436*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*107447*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107450*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                            MVT::v16i32, 3/*#Ops*/, 7, 8, 9, 
                        // Src: (X86vzmovl:{ *:[v16i32] } (insert_subvector:{ *:[v16i32] } (undef:{ *:[v16i32] }), (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), 0:{ *:[iPTR] })) - Complexity = 39
                        // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i32] }, (VMOVDI2PDIZrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*107459*/            0, /*End of Scope*/
/*107460*/          /*SwitchType*/ 79, MVT::i64,// ->107541
/*107462*/            OPC_CheckPredicate, 9, // Predicate_load
/*107464*/            OPC_MoveParent,
/*107465*/            OPC_MoveParent,
/*107466*/            OPC_CheckChild2Integer, 0, 
/*107468*/            OPC_CheckChild2Type, MVT::iPTR,
/*107470*/            OPC_MoveParent,
/*107471*/            OPC_CheckType, MVT::v4i64,
/*107473*/            OPC_Scope, 32, /*->107507*/ // 2 children in Scope
/*107475*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*107477*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107480*/              OPC_EmitMergeInputChains1_0,
/*107481*/              OPC_EmitInteger, MVT::i64, 0, 
/*107484*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*107495*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107498*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                            MVT::v4i64, 3/*#Ops*/, 7, 8, 9, 
                        // Src: (X86vzmovl:{ *:[v4i64] } (insert_subvector:{ *:[v4i64] } (undef:{ *:[v4i64] }), (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 0:{ *:[iPTR] })) - Complexity = 39
                        // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOVQI2PQIrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*107507*/            /*Scope*/ 32, /*->107540*/
/*107508*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*107510*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107513*/              OPC_EmitMergeInputChains1_0,
/*107514*/              OPC_EmitInteger, MVT::i64, 0, 
/*107517*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVQI2PQIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*107528*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107531*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                            MVT::v4i64, 3/*#Ops*/, 7, 8, 9, 
                        // Src: (X86vzmovl:{ *:[v4i64] } (insert_subvector:{ *:[v4i64] } (undef:{ *:[v4i64] }), (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 0:{ *:[iPTR] })) - Complexity = 39
                        // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOVQI2PQIZrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*107540*/            0, /*End of Scope*/
/*107541*/          0, // EndSwitchType
/*107542*/        /*Scope*/ 77|128,1/*205*/, /*->107749*/
/*107544*/          OPC_RecordChild0, // #0 = $src
/*107545*/          OPC_Scope, 100, /*->107647*/ // 2 children in Scope
/*107547*/            OPC_CheckChild0Type, MVT::i64,
/*107549*/            OPC_Scope, 60, /*->107611*/ // 2 children in Scope
/*107551*/              OPC_MoveParent,
/*107552*/              OPC_CheckChild2Integer, 0, 
/*107554*/              OPC_CheckChild2Type, MVT::iPTR,
/*107556*/              OPC_MoveParent,
/*107557*/              OPC_CheckType, MVT::v4i64,
/*107559*/              OPC_Scope, 24, /*->107585*/ // 2 children in Scope
/*107561*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*107563*/                OPC_EmitInteger, MVT::i64, 0, 
/*107566*/                OPC_EmitNode1, TARGET_VAL(X86::VMOV64toPQIrr), 0,
                              MVT::v2i64, 1/*#Ops*/, 0,  // Results = #2
/*107573*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107576*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v4i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (X86vzmovl:{ *:[v4i64] } (insert_subvector:{ *:[v4i64] } (undef:{ *:[v4i64] }), (scalar_to_vector:{ *:[v2i64] } GR64:{ *:[i64] }:$src), 0:{ *:[iPTR] })) - Complexity = 17
                          // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOV64toPQIrr:{ *:[v2i64] } GR64:{ *:[i64] }:$src), sub_xmm:{ *:[i32] })
/*107585*/              /*Scope*/ 24, /*->107610*/
/*107586*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*107588*/                OPC_EmitInteger, MVT::i64, 0, 
/*107591*/                OPC_EmitNode1, TARGET_VAL(X86::VMOV64toPQIZrr), 0,
                              MVT::v2i64, 1/*#Ops*/, 0,  // Results = #2
/*107598*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107601*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v4i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (X86vzmovl:{ *:[v4i64] } (insert_subvector:{ *:[v4i64] } (undef:{ *:[v4i64] }), (scalar_to_vector:{ *:[v2i64] } GR64:{ *:[i64] }:$src), 0:{ *:[iPTR] })) - Complexity = 17
                          // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOV64toPQIZrr:{ *:[v2i64] } GR64:{ *:[i64] }:$src), sub_xmm:{ *:[i32] })
/*107610*/              0, /*End of Scope*/
/*107611*/            /*Scope*/ 34, /*->107646*/
/*107612*/              OPC_CheckType, MVT::v2i64,
/*107614*/              OPC_MoveParent,
/*107615*/              OPC_CheckChild2Integer, 0, 
/*107617*/              OPC_CheckChild2Type, MVT::iPTR,
/*107619*/              OPC_MoveParent,
/*107620*/              OPC_CheckType, MVT::v8i64,
/*107622*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*107624*/              OPC_EmitInteger, MVT::i64, 0, 
/*107627*/              OPC_EmitNode1, TARGET_VAL(X86::VMOV64toPQIZrr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0,  // Results = #2
/*107634*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107637*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v8i64, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (X86vzmovl:{ *:[v8i64] } (insert_subvector:{ *:[v8i64] } (undef:{ *:[v8i64] }), (scalar_to_vector:{ *:[v2i64] } GR64:{ *:[i64] }:$src), 0:{ *:[iPTR] })) - Complexity = 17
                        // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i64] }, (VMOV64toPQIZrr:{ *:[v2i64] } GR64:{ *:[i64] }:$src), sub_xmm:{ *:[i32] })
/*107646*/            0, /*End of Scope*/
/*107647*/          /*Scope*/ 100, /*->107748*/
/*107648*/            OPC_CheckChild0Type, MVT::i32,
/*107650*/            OPC_Scope, 60, /*->107712*/ // 2 children in Scope
/*107652*/              OPC_MoveParent,
/*107653*/              OPC_CheckChild2Integer, 0, 
/*107655*/              OPC_CheckChild2Type, MVT::iPTR,
/*107657*/              OPC_MoveParent,
/*107658*/              OPC_CheckType, MVT::v8i32,
/*107660*/              OPC_Scope, 24, /*->107686*/ // 2 children in Scope
/*107662*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*107664*/                OPC_EmitInteger, MVT::i32, 0, 
/*107667*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                              MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*107674*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107677*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (X86vzmovl:{ *:[v8i32] } (insert_subvector:{ *:[v8i32] } (undef:{ *:[v8i32] }), (scalar_to_vector:{ *:[v4i32] } GR32:{ *:[i32] }:$src), 0:{ *:[iPTR] })) - Complexity = 17
                          // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i32] }, (VMOVDI2PDIrr:{ *:[v4i32] } GR32:{ *:[i32] }:$src), sub_xmm:{ *:[i32] })
/*107686*/              /*Scope*/ 24, /*->107711*/
/*107687*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*107689*/                OPC_EmitInteger, MVT::i32, 0, 
/*107692*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIZrr), 0,
                              MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*107699*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107702*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (X86vzmovl:{ *:[v8i32] } (insert_subvector:{ *:[v8i32] } (undef:{ *:[v8i32] }), (scalar_to_vector:{ *:[v4i32] } GR32:{ *:[i32] }:$src), 0:{ *:[iPTR] })) - Complexity = 17
                          // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i32] }, (VMOVDI2PDIZrr:{ *:[v4i32] } GR32:{ *:[i32] }:$src), sub_xmm:{ *:[i32] })
/*107711*/              0, /*End of Scope*/
/*107712*/            /*Scope*/ 34, /*->107747*/
/*107713*/              OPC_CheckType, MVT::v4i32,
/*107715*/              OPC_MoveParent,
/*107716*/              OPC_CheckChild2Integer, 0, 
/*107718*/              OPC_CheckChild2Type, MVT::iPTR,
/*107720*/              OPC_MoveParent,
/*107721*/              OPC_CheckType, MVT::v16i32,
/*107723*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*107725*/              OPC_EmitInteger, MVT::i32, 0, 
/*107728*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIZrr), 0,
                            MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*107735*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107738*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v16i32, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (X86vzmovl:{ *:[v16i32] } (insert_subvector:{ *:[v16i32] } (undef:{ *:[v16i32] }), (scalar_to_vector:{ *:[v4i32] } GR32:{ *:[i32] }:$src), 0:{ *:[iPTR] })) - Complexity = 17
                        // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i32] }, (VMOVDI2PDIZrr:{ *:[v4i32] } GR32:{ *:[i32] }:$src), sub_xmm:{ *:[i32] })
/*107747*/            0, /*End of Scope*/
/*107748*/          0, /*End of Scope*/
/*107749*/        0, /*End of Scope*/
/*107750*/      /*SwitchOpcode*/ 24|128,3/*408*/, TARGET_VAL(ISD::BITCAST),// ->108162
/*107754*/        OPC_MoveChild0,
/*107755*/        OPC_SwitchOpcode /*5 cases */, 12|128,1/*140*/, TARGET_VAL(X86ISD::CVTP2SI),// ->107900
/*107760*/          OPC_Scope, 95, /*->107857*/ // 2 children in Scope
/*107762*/            OPC_MoveChild0,
/*107763*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*107766*/            OPC_RecordMemRef,
/*107767*/            OPC_RecordNode, // #0 = 'ld' chained node
/*107768*/            OPC_CheckFoldableChainNode,
/*107769*/            OPC_RecordChild1, // #1 = $src
/*107770*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*107772*/            OPC_CheckPredicate, 9, // Predicate_load
/*107774*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*107776*/            OPC_CheckType, MVT::v2f64,
/*107778*/            OPC_Scope, 24, /*->107804*/ // 3 children in Scope
/*107780*/              OPC_MoveParent,
/*107781*/              OPC_CheckType, MVT::v4i32,
/*107783*/              OPC_MoveParent,
/*107784*/              OPC_MoveParent,
/*107785*/              OPC_CheckType, MVT::v2i64,
/*107787*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*107789*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107792*/              OPC_EmitMergeInputChains1_0,
/*107793*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))) - Complexity = 31
                        // Dst: (VCVTPD2DQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*107804*/            /*Scope*/ 26, /*->107831*/
/*107805*/              OPC_CheckPredicate, 48, // Predicate_memop
/*107807*/              OPC_MoveParent,
/*107808*/              OPC_CheckType, MVT::v4i32,
/*107810*/              OPC_MoveParent,
/*107811*/              OPC_MoveParent,
/*107812*/              OPC_CheckType, MVT::v2i64,
/*107814*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*107816*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107819*/              OPC_EmitMergeInputChains1_0,
/*107820*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>))) - Complexity = 31
                        // Dst: (CVTPD2DQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*107831*/            /*Scope*/ 24, /*->107856*/
/*107832*/              OPC_MoveParent,
/*107833*/              OPC_CheckType, MVT::v4i32,
/*107835*/              OPC_MoveParent,
/*107836*/              OPC_MoveParent,
/*107837*/              OPC_CheckType, MVT::v2i64,
/*107839*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*107841*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107844*/              OPC_EmitMergeInputChains1_0,
/*107845*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))) - Complexity = 31
                        // Dst: (VCVTPD2DQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*107856*/            0, /*End of Scope*/
/*107857*/          /*Scope*/ 41, /*->107899*/
/*107858*/            OPC_RecordChild0, // #0 = $src
/*107859*/            OPC_CheckChild0Type, MVT::v2f64,
/*107861*/            OPC_CheckType, MVT::v4i32,
/*107863*/            OPC_MoveParent,
/*107864*/            OPC_MoveParent,
/*107865*/            OPC_CheckType, MVT::v2i64,
/*107867*/            OPC_Scope, 9, /*->107878*/ // 3 children in Scope
/*107869*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*107871*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQrr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvtp2Int:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src))) - Complexity = 9
                        // Dst: (VCVTPD2DQrr:{ *:[v2i64] } VR128:{ *:[v2f64] }:$src)
/*107878*/            /*Scope*/ 9, /*->107888*/
/*107879*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*107881*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPD2DQrr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvtp2Int:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src))) - Complexity = 9
                        // Dst: (CVTPD2DQrr:{ *:[v2i64] } VR128:{ *:[v2f64] }:$src)
/*107888*/            /*Scope*/ 9, /*->107898*/
/*107889*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*107891*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvtp2Int:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src))) - Complexity = 9
                        // Dst: (VCVTPD2DQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*107898*/            0, /*End of Scope*/
/*107899*/          0, /*End of Scope*/
/*107900*/        /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->108044
/*107904*/          OPC_Scope, 95, /*->108001*/ // 2 children in Scope
/*107906*/            OPC_MoveChild0,
/*107907*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*107910*/            OPC_RecordMemRef,
/*107911*/            OPC_RecordNode, // #0 = 'ld' chained node
/*107912*/            OPC_CheckFoldableChainNode,
/*107913*/            OPC_RecordChild1, // #1 = $src
/*107914*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*107916*/            OPC_CheckPredicate, 9, // Predicate_load
/*107918*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*107920*/            OPC_CheckType, MVT::v2f64,
/*107922*/            OPC_Scope, 24, /*->107948*/ // 3 children in Scope
/*107924*/              OPC_MoveParent,
/*107925*/              OPC_CheckType, MVT::v4i32,
/*107927*/              OPC_MoveParent,
/*107928*/              OPC_MoveParent,
/*107929*/              OPC_CheckType, MVT::v2i64,
/*107931*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*107933*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107936*/              OPC_EmitMergeInputChains1_0,
/*107937*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))) - Complexity = 31
                        // Dst: (VCVTTPD2DQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*107948*/            /*Scope*/ 26, /*->107975*/
/*107949*/              OPC_CheckPredicate, 48, // Predicate_memop
/*107951*/              OPC_MoveParent,
/*107952*/              OPC_CheckType, MVT::v4i32,
/*107954*/              OPC_MoveParent,
/*107955*/              OPC_MoveParent,
/*107956*/              OPC_CheckType, MVT::v2i64,
/*107958*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*107960*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107963*/              OPC_EmitMergeInputChains1_0,
/*107964*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>))) - Complexity = 31
                        // Dst: (CVTTPD2DQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*107975*/            /*Scope*/ 24, /*->108000*/
/*107976*/              OPC_MoveParent,
/*107977*/              OPC_CheckType, MVT::v4i32,
/*107979*/              OPC_MoveParent,
/*107980*/              OPC_MoveParent,
/*107981*/              OPC_CheckType, MVT::v2i64,
/*107983*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*107985*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*107988*/              OPC_EmitMergeInputChains1_0,
/*107989*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))) - Complexity = 31
                        // Dst: (VCVTTPD2DQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*108000*/            0, /*End of Scope*/
/*108001*/          /*Scope*/ 41, /*->108043*/
/*108002*/            OPC_RecordChild0, // #0 = $src
/*108003*/            OPC_CheckChild0Type, MVT::v2f64,
/*108005*/            OPC_CheckType, MVT::v4i32,
/*108007*/            OPC_MoveParent,
/*108008*/            OPC_MoveParent,
/*108009*/            OPC_CheckType, MVT::v2i64,
/*108011*/            OPC_Scope, 9, /*->108022*/ // 3 children in Scope
/*108013*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*108015*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQrr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvttp2si:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src))) - Complexity = 9
                        // Dst: (VCVTTPD2DQrr:{ *:[v2i64] } VR128:{ *:[v2f64] }:$src)
/*108022*/            /*Scope*/ 9, /*->108032*/
/*108023*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*108025*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPD2DQrr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvttp2si:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src))) - Complexity = 9
                        // Dst: (CVTTPD2DQrr:{ *:[v2i64] } VR128:{ *:[v2f64] }:$src)
/*108032*/            /*Scope*/ 9, /*->108042*/
/*108033*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*108035*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvttp2si:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src))) - Complexity = 9
                        // Dst: (VCVTTPD2DQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*108042*/            0, /*End of Scope*/
/*108043*/          0, /*End of Scope*/
/*108044*/        /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->108119
/*108047*/          OPC_RecordMemRef,
/*108048*/          OPC_RecordNode, // #0 = 'ld' chained node
/*108049*/          OPC_CheckFoldableChainNode,
/*108050*/          OPC_RecordChild1, // #1 = $src
/*108051*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*108053*/          OPC_CheckPredicate, 9, // Predicate_load
/*108055*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*108057*/          OPC_CheckType, MVT::v2i64,
/*108059*/          OPC_MoveParent,
/*108060*/          OPC_MoveParent,
/*108061*/          OPC_CheckType, MVT::v4i32,
/*108063*/          OPC_Scope, 17, /*->108082*/ // 3 children in Scope
/*108065*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*108067*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108070*/            OPC_EmitMergeInputChains1_0,
/*108071*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VMOVDI2PDIrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*108082*/          /*Scope*/ 17, /*->108100*/
/*108083*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*108085*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108088*/            OPC_EmitMergeInputChains1_0,
/*108089*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (MOVDI2PDIrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*108100*/          /*Scope*/ 17, /*->108118*/
/*108101*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*108103*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108106*/            OPC_EmitMergeInputChains1_0,
/*108107*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VMOVDI2PDIZrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*108118*/          0, /*End of Scope*/
/*108119*/        /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTP2UI),// ->108140
/*108122*/          OPC_RecordChild0, // #0 = $src
/*108123*/          OPC_CheckChild0Type, MVT::v2f64,
/*108125*/          OPC_CheckType, MVT::v4i32,
/*108127*/          OPC_MoveParent,
/*108128*/          OPC_MoveParent,
/*108129*/          OPC_CheckType, MVT::v2i64,
/*108131*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*108133*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvtp2UInt:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src))) - Complexity = 9
                    // Dst: (VCVTPD2UDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*108140*/        /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTTP2UI),// ->108161
/*108143*/          OPC_RecordChild0, // #0 = $src
/*108144*/          OPC_CheckChild0Type, MVT::v2f64,
/*108146*/          OPC_CheckType, MVT::v4i32,
/*108148*/          OPC_MoveParent,
/*108149*/          OPC_MoveParent,
/*108150*/          OPC_CheckType, MVT::v2i64,
/*108152*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*108154*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src))) - Complexity = 9
                    // Dst: (VCVTTPD2UDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*108161*/        0, // EndSwitchOpcode
/*108162*/      /*SwitchOpcode*/ 68, TARGET_VAL(ISD::LOAD),// ->108233
/*108165*/        OPC_RecordMemRef,
/*108166*/        OPC_RecordNode, // #0 = 'ld' chained node
/*108167*/        OPC_RecordChild1, // #1 = $src
/*108168*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*108170*/        OPC_CheckPredicate, 9, // Predicate_load
/*108172*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*108174*/        OPC_MoveParent,
/*108175*/        OPC_CheckType, MVT::v2i64,
/*108177*/        OPC_Scope, 17, /*->108196*/ // 3 children in Scope
/*108179*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*108181*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108184*/          OPC_EmitMergeInputChains1_0,
/*108185*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMOVQI2PQIrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*108196*/        /*Scope*/ 17, /*->108214*/
/*108197*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*108199*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108202*/          OPC_EmitMergeInputChains1_0,
/*108203*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (MOVQI2PQIrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*108214*/        /*Scope*/ 17, /*->108232*/
/*108215*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*108217*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108220*/          OPC_EmitMergeInputChains1_0,
/*108221*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVQI2PQIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMOVQI2PQIZrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*108232*/        0, /*End of Scope*/
/*108233*/      0, // EndSwitchOpcode
/*108234*/    /*Scope*/ 86|128,4/*598*/, /*->108834*/
/*108236*/      OPC_RecordChild0, // #0 = $src
/*108237*/      OPC_SwitchType /*6 cases */, 32, MVT::v2i64,// ->108272
/*108240*/        OPC_Scope, 9, /*->108251*/ // 3 children in Scope
/*108242*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*108244*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVZPQILo2PQIrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (VMOVZPQILo2PQIrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src)
/*108251*/        /*Scope*/ 9, /*->108261*/
/*108252*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*108254*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZPQILo2PQIrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (MOVZPQILo2PQIrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src)
/*108261*/        /*Scope*/ 9, /*->108271*/
/*108262*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*108264*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVZPQILo2PQIZrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (VMOVZPQILo2PQIZrr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src)
/*108271*/        0, /*End of Scope*/
/*108272*/      /*SwitchType*/ 95, MVT::v4i32,// ->108369
/*108274*/        OPC_Scope, 16, /*->108292*/ // 5 children in Scope
/*108276*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*108278*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/*108284*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vzmovl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VMOVSSrr:{ *:[v4i32] } (V_SET0:{ *:[v4i32] }), VR128:{ *:[v4i32] }:$src)
/*108292*/        /*Scope*/ 16, /*->108309*/
/*108293*/          OPC_CheckPatternPredicate, 126, // (MF->getFunction().optForSize() || !Subtarget->hasSSE41()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*108295*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/*108301*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSSrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vzmovl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (MOVSSrr:{ *:[v4i32] } (V_SET0:{ *:[v4i32] }), VR128:{ *:[v4i32] }:$src)
/*108309*/        /*Scope*/ 20, /*->108330*/
/*108310*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*108312*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/*108318*/          OPC_EmitInteger, MVT::i8, 3, 
/*108321*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrri), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86vzmovl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VPBLENDWrri:{ *:[v4i32] } (V_SET0:{ *:[v4i32] }), VR128:{ *:[v4i32] }:$src, 3:{ *:[i8] })
/*108330*/        /*Scope*/ 20, /*->108351*/
/*108331*/          OPC_CheckPatternPredicate, 128, // (!MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*108333*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/*108339*/          OPC_EmitInteger, MVT::i8, 3, 
/*108342*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrri), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86vzmovl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (PBLENDWrri:{ *:[v4i32] } (V_SET0:{ *:[v4i32] }), VR128:{ *:[v4i32] }:$src, 3:{ *:[i8] })
/*108351*/        /*Scope*/ 16, /*->108368*/
/*108352*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*108354*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/*108360*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vzmovl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VMOVSSZrr:{ *:[v4i32] } (AVX512_128_SET0:{ *:[v4i32] }), VR128X:{ *:[v4i32] }:$src)
/*108368*/        0, /*End of Scope*/
/*108369*/      /*SwitchType*/ 7|128,1/*135*/, MVT::v8i32,// ->108507
/*108372*/        OPC_Scope, 42, /*->108416*/ // 3 children in Scope
/*108374*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*108376*/          OPC_EmitInteger, MVT::i32, 0, 
/*108379*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/*108385*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108388*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*108396*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 4,  // Results = #5
/*108404*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108407*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8i32, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i32] }, (VMOVSSrr:{ *:[v4i32] } (V_SET0:{ *:[v4i32] }), (EXTRACT_SUBREG:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*108416*/        /*Scope*/ 46, /*->108463*/
/*108417*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*108419*/          OPC_EmitInteger, MVT::i32, 0, 
/*108422*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/*108428*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108431*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*108439*/          OPC_EmitInteger, MVT::i8, 3, 
/*108442*/          OPC_EmitNode1, TARGET_VAL(X86::VPBLENDWrri), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/*108451*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108454*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8i32, 3/*#Ops*/, 1, 6, 7, 
                    // Src: (X86vzmovl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i32] }, (VPBLENDWrri:{ *:[v4i32] } (V_SET0:{ *:[v4i32] }), (EXTRACT_SUBREG:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }), 3:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*108463*/        /*Scope*/ 42, /*->108506*/
/*108464*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*108466*/          OPC_EmitInteger, MVT::i32, 0, 
/*108469*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/*108475*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108478*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*108486*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 4,  // Results = #5
/*108494*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108497*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8i32, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i32] }, (VMOVSSZrr:{ *:[v4i32] } (AVX512_128_SET0:{ *:[v4i32] }), (EXTRACT_SUBREG:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*108506*/        0, /*End of Scope*/
/*108507*/      /*SwitchType*/ 7|128,1/*135*/, MVT::v4i64,// ->108645
/*108510*/        OPC_Scope, 42, /*->108554*/ // 3 children in Scope
/*108512*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*108514*/          OPC_EmitInteger, MVT::i32, 0, 
/*108517*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v2i64, 0/*#Ops*/,  // Results = #2
/*108523*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108526*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 3,  // Results = #4
/*108534*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 2, 4,  // Results = #5
/*108542*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108545*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v4i64, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i32] }, (VMOVSDrr:{ *:[v2i64] } (V_SET0:{ *:[v2i64] }), (EXTRACT_SUBREG:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*108554*/        /*Scope*/ 46, /*->108601*/
/*108555*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*108557*/          OPC_EmitInteger, MVT::i32, 0, 
/*108560*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v2i64, 0/*#Ops*/,  // Results = #2
/*108566*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108569*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 3,  // Results = #4
/*108577*/          OPC_EmitInteger, MVT::i8, 15, 
/*108580*/          OPC_EmitNode1, TARGET_VAL(X86::VPBLENDWrri), 0,
                        MVT::v2i64, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/*108589*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108592*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v4i64, 3/*#Ops*/, 1, 6, 7, 
                    // Src: (X86vzmovl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i32] }, (VPBLENDWrri:{ *:[v2i64] } (V_SET0:{ *:[v2i64] }), (EXTRACT_SUBREG:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }), 15:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*108601*/        /*Scope*/ 42, /*->108644*/
/*108602*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*108604*/          OPC_EmitInteger, MVT::i32, 0, 
/*108607*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v2i64, 0/*#Ops*/,  // Results = #2
/*108613*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108616*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 3,  // Results = #4
/*108624*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 2, 4,  // Results = #5
/*108632*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108635*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v4i64, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i32] }, (VMOVSDZrr:{ *:[v2i64] } (AVX512_128_SET0:{ *:[v2i64] }), (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*108644*/        0, /*End of Scope*/
/*108645*/      /*SwitchType*/ 92, MVT::v16i32,// ->108739
/*108647*/        OPC_Scope, 42, /*->108691*/ // 2 children in Scope
/*108649*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*108651*/          OPC_EmitInteger, MVT::i32, 0, 
/*108654*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/*108660*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108663*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*108671*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 4,  // Results = #5
/*108679*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108682*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i32] }, (VMOVSSZrr:{ *:[v4i32] } (AVX512_128_SET0:{ *:[v4i32] }), (EXTRACT_SUBREG:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*108691*/        /*Scope*/ 46, /*->108738*/
/*108692*/          OPC_CheckPatternPredicate, 130, // (Subtarget->hasAVX512()) && (!MF->getFunction().optForSize())
/*108694*/          OPC_EmitInteger, MVT::i32, 0, 
/*108697*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/*108703*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108706*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*108714*/          OPC_EmitInteger, MVT::i8, 3, 
/*108717*/          OPC_EmitNode1, TARGET_VAL(X86::VPBLENDWrri), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/*108726*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108729*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 6, 7, 
                    // Src: (X86vzmovl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i32] }, (VPBLENDWrri:{ *:[v4i32] } (V_SET0:{ *:[v4i32] }), (EXTRACT_SUBREG:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, sub_xmm:{ *:[i32] }), 3:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*108738*/        0, /*End of Scope*/
/*108739*/      /*SwitchType*/ 92, MVT::v8i64,// ->108833
/*108741*/        OPC_Scope, 42, /*->108785*/ // 2 children in Scope
/*108743*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*108745*/          OPC_EmitInteger, MVT::i32, 0, 
/*108748*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v2i64, 0/*#Ops*/,  // Results = #2
/*108754*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108757*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 3,  // Results = #4
/*108765*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 2, 4,  // Results = #5
/*108773*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108776*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i32] }, (VMOVSDZrr:{ *:[v2i64] } (AVX512_128_SET0:{ *:[v2i64] }), (EXTRACT_SUBREG:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*108785*/        /*Scope*/ 46, /*->108832*/
/*108786*/          OPC_CheckPatternPredicate, 130, // (Subtarget->hasAVX512()) && (!MF->getFunction().optForSize())
/*108788*/          OPC_EmitInteger, MVT::i32, 0, 
/*108791*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v2i64, 0/*#Ops*/,  // Results = #2
/*108797*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108800*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 3,  // Results = #4
/*108808*/          OPC_EmitInteger, MVT::i8, 15, 
/*108811*/          OPC_EmitNode1, TARGET_VAL(X86::VPBLENDWrri), 0,
                        MVT::v2i64, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/*108820*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108823*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 6, 7, 
                    // Src: (X86vzmovl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i32] }, (VPBLENDWrri:{ *:[v2i64] } (V_SET0:{ *:[v2i64] }), (EXTRACT_SUBREG:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, sub_xmm:{ *:[i32] }), 15:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*108832*/        0, /*End of Scope*/
/*108833*/      0, // EndSwitchType
/*108834*/    /*Scope*/ 78|128,22/*2894*/, /*->111730*/
/*108836*/      OPC_MoveChild0,
/*108837*/      OPC_SwitchOpcode /*4 cases */, 17|128,2/*273*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->109115
/*108842*/        OPC_MoveChild0,
/*108843*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*108846*/        OPC_MoveParent,
/*108847*/        OPC_MoveChild1,
/*108848*/        OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*108851*/        OPC_MoveChild0,
/*108852*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*108855*/        OPC_RecordMemRef,
/*108856*/        OPC_RecordNode, // #0 = 'ld' chained node
/*108857*/        OPC_CheckFoldableChainNode,
/*108858*/        OPC_RecordChild1, // #1 = $src
/*108859*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*108861*/        OPC_CheckPredicate, 9, // Predicate_load
/*108863*/        OPC_SwitchType /*2 cases */, 123, MVT::f32,// ->108989
/*108866*/          OPC_MoveParent,
/*108867*/          OPC_Scope, 76, /*->108945*/ // 2 children in Scope
/*108869*/            OPC_MoveParent,
/*108870*/            OPC_CheckChild2Integer, 0, 
/*108872*/            OPC_CheckChild2Type, MVT::iPTR,
/*108874*/            OPC_MoveParent,
/*108875*/            OPC_CheckType, MVT::v8f32,
/*108877*/            OPC_Scope, 32, /*->108911*/ // 2 children in Scope
/*108879*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*108881*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108884*/              OPC_EmitMergeInputChains1_0,
/*108885*/              OPC_EmitInteger, MVT::i32, 0, 
/*108888*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*108899*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108902*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                            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:{ *:[iPTR] })) - Complexity = 39
                        // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i32] }, (VMOVSSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*108911*/            /*Scope*/ 32, /*->108944*/
/*108912*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*108914*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108917*/              OPC_EmitMergeInputChains1_0,
/*108918*/              OPC_EmitInteger, MVT::i32, 0, 
/*108921*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*108932*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108935*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                            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:{ *:[iPTR] })) - Complexity = 39
                        // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i32] }, (VMOVSSZrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*108944*/            0, /*End of Scope*/
/*108945*/          /*Scope*/ 42, /*->108988*/
/*108946*/            OPC_CheckType, MVT::v4f32,
/*108948*/            OPC_MoveParent,
/*108949*/            OPC_CheckChild2Integer, 0, 
/*108951*/            OPC_CheckChild2Type, MVT::iPTR,
/*108953*/            OPC_MoveParent,
/*108954*/            OPC_CheckType, MVT::v16f32,
/*108956*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*108958*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108961*/            OPC_EmitMergeInputChains1_0,
/*108962*/            OPC_EmitInteger, MVT::i32, 0, 
/*108965*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*108976*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*108979*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                          MVT::v16f32, 3/*#Ops*/, 7, 8, 9, 
                      // Src: (X86vzmovl:{ *:[v16f32] } (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 0:{ *:[iPTR] })) - Complexity = 39
                      // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i32] }, (VMOVSSZrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*108988*/          0, /*End of Scope*/
/*108989*/        /*SwitchType*/ 123, MVT::f64,// ->109114
/*108991*/          OPC_MoveParent,
/*108992*/          OPC_Scope, 76, /*->109070*/ // 2 children in Scope
/*108994*/            OPC_MoveParent,
/*108995*/            OPC_CheckChild2Integer, 0, 
/*108997*/            OPC_CheckChild2Type, MVT::iPTR,
/*108999*/            OPC_MoveParent,
/*109000*/            OPC_CheckType, MVT::v4f64,
/*109002*/            OPC_Scope, 32, /*->109036*/ // 2 children in Scope
/*109004*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*109006*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109009*/              OPC_EmitMergeInputChains1_0,
/*109010*/              OPC_EmitInteger, MVT::i32, 0, 
/*109013*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*109024*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*109027*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                            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:{ *:[iPTR] })) - Complexity = 39
                        // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i32] }, (VMOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*109036*/            /*Scope*/ 32, /*->109069*/
/*109037*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*109039*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109042*/              OPC_EmitMergeInputChains1_0,
/*109043*/              OPC_EmitInteger, MVT::i32, 0, 
/*109046*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*109057*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*109060*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                            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:{ *:[iPTR] })) - Complexity = 39
                        // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i32] }, (VMOVSDZrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*109069*/            0, /*End of Scope*/
/*109070*/          /*Scope*/ 42, /*->109113*/
/*109071*/            OPC_CheckType, MVT::v2f64,
/*109073*/            OPC_MoveParent,
/*109074*/            OPC_CheckChild2Integer, 0, 
/*109076*/            OPC_CheckChild2Type, MVT::iPTR,
/*109078*/            OPC_MoveParent,
/*109079*/            OPC_CheckType, MVT::v8f64,
/*109081*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*109083*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109086*/            OPC_EmitMergeInputChains1_0,
/*109087*/            OPC_EmitInteger, MVT::i32, 0, 
/*109090*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*109101*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*109104*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                          MVT::v8f64, 3/*#Ops*/, 7, 8, 9, 
                      // Src: (X86vzmovl:{ *:[v8f64] } (insert_subvector:{ *:[v8f64] } (undef:{ *:[v8f64] }), (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 0:{ *:[iPTR] })) - Complexity = 39
                      // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i32] }, (VMOVSDZrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*109113*/          0, /*End of Scope*/
/*109114*/        0, // EndSwitchType
/*109115*/      /*SwitchOpcode*/ 37|128,2/*293*/, TARGET_VAL(ISD::BITCAST),// ->109412
/*109119*/        OPC_MoveChild0,
/*109120*/        OPC_SwitchOpcode /*4 cases */, 8|128,1/*136*/, TARGET_VAL(X86ISD::VFPROUND),// ->109261
/*109125*/          OPC_Scope, 93, /*->109220*/ // 2 children in Scope
/*109127*/            OPC_MoveChild0,
/*109128*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*109131*/            OPC_RecordMemRef,
/*109132*/            OPC_RecordNode, // #0 = 'ld' chained node
/*109133*/            OPC_CheckFoldableChainNode,
/*109134*/            OPC_RecordChild1, // #1 = $src
/*109135*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*109137*/            OPC_CheckPredicate, 9, // Predicate_load
/*109139*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*109141*/            OPC_Scope, 24, /*->109167*/ // 3 children in Scope
/*109143*/              OPC_MoveParent,
/*109144*/              OPC_CheckType, MVT::v4f32,
/*109146*/              OPC_MoveParent,
/*109147*/              OPC_MoveParent,
/*109148*/              OPC_CheckType, MVT::v2f64,
/*109150*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*109152*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109155*/              OPC_EmitMergeInputChains1_0,
/*109156*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } (X86vfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))) - Complexity = 31
                        // Dst: (VCVTPD2PSrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*109167*/            /*Scope*/ 26, /*->109194*/
/*109168*/              OPC_CheckPredicate, 48, // Predicate_memop
/*109170*/              OPC_MoveParent,
/*109171*/              OPC_CheckType, MVT::v4f32,
/*109173*/              OPC_MoveParent,
/*109174*/              OPC_MoveParent,
/*109175*/              OPC_CheckType, MVT::v2f64,
/*109177*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*109179*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109182*/              OPC_EmitMergeInputChains1_0,
/*109183*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPD2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } (X86vfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>))) - Complexity = 31
                        // Dst: (CVTPD2PSrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*109194*/            /*Scope*/ 24, /*->109219*/
/*109195*/              OPC_MoveParent,
/*109196*/              OPC_CheckType, MVT::v4f32,
/*109198*/              OPC_MoveParent,
/*109199*/              OPC_MoveParent,
/*109200*/              OPC_CheckType, MVT::v2f64,
/*109202*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*109204*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109207*/              OPC_EmitMergeInputChains1_0,
/*109208*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } (X86vfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))) - Complexity = 31
                        // Dst: (VCVTPD2PSZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*109219*/            0, /*End of Scope*/
/*109220*/          /*Scope*/ 39, /*->109260*/
/*109221*/            OPC_RecordChild0, // #0 = $src
/*109222*/            OPC_CheckType, MVT::v4f32,
/*109224*/            OPC_MoveParent,
/*109225*/            OPC_MoveParent,
/*109226*/            OPC_CheckType, MVT::v2f64,
/*109228*/            OPC_Scope, 9, /*->109239*/ // 3 children in Scope
/*109230*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*109232*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSrr), 0,
                            MVT::v2f64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } (X86vfpround:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src))) - Complexity = 9
                        // Dst: (VCVTPD2PSrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/*109239*/            /*Scope*/ 9, /*->109249*/
/*109240*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*109242*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPD2PSrr), 0,
                            MVT::v2f64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } (X86vfpround:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src))) - Complexity = 9
                        // Dst: (CVTPD2PSrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/*109249*/            /*Scope*/ 9, /*->109259*/
/*109250*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*109252*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rr), 0,
                            MVT::v2f64, 1/*#Ops*/, 0, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } (X86vfpround:{ *:[v4f32] } VR128X:{ *:[v2f64] }:$src))) - Complexity = 9
                        // Dst: (VCVTPD2PSZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src)
/*109259*/            0, /*End of Scope*/
/*109260*/          0, /*End of Scope*/
/*109261*/        /*SwitchOpcode*/ 105, TARGET_VAL(ISD::LOAD),// ->109369
/*109264*/          OPC_RecordMemRef,
/*109265*/          OPC_RecordNode, // #0 = 'ld' chained node
/*109266*/          OPC_CheckFoldableChainNode,
/*109267*/          OPC_RecordChild1, // #1 = $src
/*109268*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*109270*/          OPC_CheckPredicate, 9, // Predicate_load
/*109272*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*109274*/          OPC_CheckType, MVT::v4f32,
/*109276*/          OPC_MoveParent,
/*109277*/          OPC_MoveParent,
/*109278*/          OPC_CheckType, MVT::v2f64,
/*109280*/          OPC_Scope, 28, /*->109310*/ // 3 children in Scope
/*109282*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*109284*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109287*/            OPC_EmitMergeInputChains1_0,
/*109288*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*109299*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109302*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 7, 8, 
                      // Src: (X86vzmovl:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (VMOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*109310*/          /*Scope*/ 28, /*->109339*/
/*109311*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*109313*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109316*/            OPC_EmitMergeInputChains1_0,
/*109317*/            OPC_EmitNode1, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*109328*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109331*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 7, 8, 
                      // Src: (X86vzmovl:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (MOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*109339*/          /*Scope*/ 28, /*->109368*/
/*109340*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*109342*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109345*/            OPC_EmitMergeInputChains1_0,
/*109346*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*109357*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*109360*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 7, 8, 
                      // Src: (X86vzmovl:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (VMOVSDZrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128X:{ *:[i32] })
/*109368*/          0, /*End of Scope*/
/*109369*/        /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTSI2P),// ->109390
/*109372*/          OPC_RecordChild0, // #0 = $src
/*109373*/          OPC_CheckChild0Type, MVT::v2i64,
/*109375*/          OPC_CheckType, MVT::v4f32,
/*109377*/          OPC_MoveParent,
/*109378*/          OPC_MoveParent,
/*109379*/          OPC_CheckType, MVT::v2f64,
/*109381*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*109383*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } (X86VSintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src))) - Complexity = 9
                    // Dst: (VCVTQQ2PSZ128rr:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src)
/*109390*/        /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTUI2P),// ->109411
/*109393*/          OPC_RecordChild0, // #0 = $src
/*109394*/          OPC_CheckChild0Type, MVT::v2i64,
/*109396*/          OPC_CheckType, MVT::v4f32,
/*109398*/          OPC_MoveParent,
/*109399*/          OPC_MoveParent,
/*109400*/          OPC_CheckType, MVT::v2f64,
/*109402*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*109404*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[v2f64] } (bitconvert:{ *:[v2f64] } (X86VUintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src))) - Complexity = 9
                    // Dst: (VCVTUQQ2PSZ128rr:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src)
/*109411*/        0, // EndSwitchOpcode
/*109412*/      /*SwitchOpcode*/ 67|128,16/*2115*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->111531
/*109416*/        OPC_MoveChild0,
/*109417*/        OPC_SwitchOpcode /*5 cases */, 89|128,3/*473*/, TARGET_VAL(ISD::FMA),// ->109895
/*109422*/          OPC_Scope, 123|128,1/*251*/, /*->109676*/ // 3 children in Scope
/*109425*/            OPC_RecordChild0, // #0 = $src1
/*109426*/            OPC_Scope, 61, /*->109489*/ // 4 children in Scope
/*109428*/              OPC_RecordChild1, // #1 = $src2
/*109429*/              OPC_MoveChild2,
/*109430*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*109433*/              OPC_RecordMemRef,
/*109434*/              OPC_RecordNode, // #2 = 'ld' chained node
/*109435*/              OPC_CheckFoldableChainNode,
/*109436*/              OPC_RecordChild1, // #3 = $src3
/*109437*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*109439*/              OPC_CheckPredicate, 9, // Predicate_load
/*109441*/              OPC_MoveParent,
/*109442*/              OPC_CheckType, MVT::f32,
/*109444*/              OPC_MoveParent,
/*109445*/              OPC_MoveParent,
/*109446*/              OPC_CheckType, MVT::v4f32,
/*109448*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*109450*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*109453*/              OPC_EmitMergeInputChains1_2,
/*109454*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109457*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/*109465*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109468*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 11,  // Results = #12
/*109476*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 12, 4, 5, 6, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VFMADDSS4rm_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*109489*/            /*Scope*/ 61, /*->109551*/
/*109490*/              OPC_MoveChild1,
/*109491*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*109494*/              OPC_RecordMemRef,
/*109495*/              OPC_RecordNode, // #1 = 'ld' chained node
/*109496*/              OPC_CheckFoldableChainNode,
/*109497*/              OPC_RecordChild1, // #2 = $src2
/*109498*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*109500*/              OPC_CheckPredicate, 9, // Predicate_load
/*109502*/              OPC_MoveParent,
/*109503*/              OPC_RecordChild2, // #3 = $src3
/*109504*/              OPC_CheckType, MVT::f32,
/*109506*/              OPC_MoveParent,
/*109507*/              OPC_MoveParent,
/*109508*/              OPC_CheckType, MVT::v4f32,
/*109510*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*109512*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*109515*/              OPC_EmitMergeInputChains1_1,
/*109516*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109519*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/*109527*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109530*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*109538*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src3))) - Complexity = 31
                        // Dst: (VFMADDSS4mr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*109551*/            /*Scope*/ 61, /*->109613*/
/*109552*/              OPC_RecordChild1, // #1 = $src2
/*109553*/              OPC_MoveChild2,
/*109554*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*109557*/              OPC_RecordMemRef,
/*109558*/              OPC_RecordNode, // #2 = 'ld' chained node
/*109559*/              OPC_CheckFoldableChainNode,
/*109560*/              OPC_RecordChild1, // #3 = $src3
/*109561*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*109563*/              OPC_CheckPredicate, 9, // Predicate_load
/*109565*/              OPC_MoveParent,
/*109566*/              OPC_CheckType, MVT::f64,
/*109568*/              OPC_MoveParent,
/*109569*/              OPC_MoveParent,
/*109570*/              OPC_CheckType, MVT::v2f64,
/*109572*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*109574*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*109577*/              OPC_EmitMergeInputChains1_2,
/*109578*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109581*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/*109589*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109592*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 11,  // Results = #12
/*109600*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 12, 4, 5, 6, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VFMADDSD4rm_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*109613*/            /*Scope*/ 61, /*->109675*/
/*109614*/              OPC_MoveChild1,
/*109615*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*109618*/              OPC_RecordMemRef,
/*109619*/              OPC_RecordNode, // #1 = 'ld' chained node
/*109620*/              OPC_CheckFoldableChainNode,
/*109621*/              OPC_RecordChild1, // #2 = $src2
/*109622*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*109624*/              OPC_CheckPredicate, 9, // Predicate_load
/*109626*/              OPC_MoveParent,
/*109627*/              OPC_RecordChild2, // #3 = $src3
/*109628*/              OPC_CheckType, MVT::f64,
/*109630*/              OPC_MoveParent,
/*109631*/              OPC_MoveParent,
/*109632*/              OPC_CheckType, MVT::v2f64,
/*109634*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*109636*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*109639*/              OPC_EmitMergeInputChains1_1,
/*109640*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109643*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/*109651*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109654*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*109662*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src3))) - Complexity = 31
                        // Dst: (VFMADDSD4mr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*109675*/            0, /*End of Scope*/
/*109676*/          /*Scope*/ 111, /*->109788*/
/*109677*/            OPC_MoveChild0,
/*109678*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*109681*/            OPC_RecordMemRef,
/*109682*/            OPC_RecordNode, // #0 = 'ld' chained node
/*109683*/            OPC_CheckFoldableChainNode,
/*109684*/            OPC_RecordChild1, // #1 = $src2
/*109685*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*109687*/            OPC_CheckPredicate, 9, // Predicate_load
/*109689*/            OPC_MoveParent,
/*109690*/            OPC_RecordChild1, // #2 = $src1
/*109691*/            OPC_RecordChild2, // #3 = $src3
/*109692*/            OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->109740
/*109695*/              OPC_MoveParent,
/*109696*/              OPC_MoveParent,
/*109697*/              OPC_CheckType, MVT::v4f32,
/*109699*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*109701*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*109704*/              OPC_EmitMergeInputChains1_0,
/*109705*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109708*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 9,  // Results = #10
/*109716*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109719*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*109727*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3))) - Complexity = 31
                        // Dst: (VFMADDSS4mr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*109740*/            /*SwitchType*/ 45, MVT::f64,// ->109787
/*109742*/              OPC_MoveParent,
/*109743*/              OPC_MoveParent,
/*109744*/              OPC_CheckType, MVT::v2f64,
/*109746*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*109748*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*109751*/              OPC_EmitMergeInputChains1_0,
/*109752*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109755*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 9,  // Results = #10
/*109763*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109766*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*109774*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3))) - Complexity = 31
                        // Dst: (VFMADDSD4mr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*109787*/            0, // EndSwitchType
/*109788*/          /*Scope*/ 105, /*->109894*/
/*109789*/            OPC_RecordChild0, // #0 = $src1
/*109790*/            OPC_RecordChild1, // #1 = $src2
/*109791*/            OPC_RecordChild2, // #2 = $src3
/*109792*/            OPC_SwitchType /*2 cases */, 48, MVT::f32,// ->109843
/*109795*/              OPC_MoveParent,
/*109796*/              OPC_MoveParent,
/*109797*/              OPC_CheckType, MVT::v4f32,
/*109799*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*109801*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109804*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*109812*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109815*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 5,  // Results = #6
/*109823*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109826*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 7,  // Results = #8
/*109834*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4rr_Int), 0,
                            MVT::v4f32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3))) - Complexity = 9
                        // Dst: (VFMADDSS4rr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*109843*/            /*SwitchType*/ 48, MVT::f64,// ->109893
/*109845*/              OPC_MoveParent,
/*109846*/              OPC_MoveParent,
/*109847*/              OPC_CheckType, MVT::v2f64,
/*109849*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*109851*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109854*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/*109862*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109865*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*109873*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109876*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 7,  // Results = #8
/*109884*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4rr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3))) - Complexity = 9
                        // Dst: (VFMADDSD4rr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*109893*/            0, // EndSwitchType
/*109894*/          0, /*End of Scope*/
/*109895*/        /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(X86ISD::FMSUB),// ->110372
/*109899*/          OPC_Scope, 123|128,1/*251*/, /*->110153*/ // 3 children in Scope
/*109902*/            OPC_RecordChild0, // #0 = $src1
/*109903*/            OPC_Scope, 61, /*->109966*/ // 4 children in Scope
/*109905*/              OPC_RecordChild1, // #1 = $src2
/*109906*/              OPC_MoveChild2,
/*109907*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*109910*/              OPC_RecordMemRef,
/*109911*/              OPC_RecordNode, // #2 = 'ld' chained node
/*109912*/              OPC_CheckFoldableChainNode,
/*109913*/              OPC_RecordChild1, // #3 = $src3
/*109914*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*109916*/              OPC_CheckPredicate, 9, // Predicate_load
/*109918*/              OPC_MoveParent,
/*109919*/              OPC_CheckType, MVT::f32,
/*109921*/              OPC_MoveParent,
/*109922*/              OPC_MoveParent,
/*109923*/              OPC_CheckType, MVT::v4f32,
/*109925*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*109927*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*109930*/              OPC_EmitMergeInputChains1_2,
/*109931*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109934*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/*109942*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109945*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 11,  // Results = #12
/*109953*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSS4rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 12, 4, 5, 6, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VFMSUBSS4rm_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*109966*/            /*Scope*/ 61, /*->110028*/
/*109967*/              OPC_MoveChild1,
/*109968*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*109971*/              OPC_RecordMemRef,
/*109972*/              OPC_RecordNode, // #1 = 'ld' chained node
/*109973*/              OPC_CheckFoldableChainNode,
/*109974*/              OPC_RecordChild1, // #2 = $src2
/*109975*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*109977*/              OPC_CheckPredicate, 9, // Predicate_load
/*109979*/              OPC_MoveParent,
/*109980*/              OPC_RecordChild2, // #3 = $src3
/*109981*/              OPC_CheckType, MVT::f32,
/*109983*/              OPC_MoveParent,
/*109984*/              OPC_MoveParent,
/*109985*/              OPC_CheckType, MVT::v4f32,
/*109987*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*109989*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*109992*/              OPC_EmitMergeInputChains1_1,
/*109993*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*109996*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/*110004*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110007*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*110015*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSS4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src3))) - Complexity = 31
                        // Dst: (VFMSUBSS4mr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*110028*/            /*Scope*/ 61, /*->110090*/
/*110029*/              OPC_RecordChild1, // #1 = $src2
/*110030*/              OPC_MoveChild2,
/*110031*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*110034*/              OPC_RecordMemRef,
/*110035*/              OPC_RecordNode, // #2 = 'ld' chained node
/*110036*/              OPC_CheckFoldableChainNode,
/*110037*/              OPC_RecordChild1, // #3 = $src3
/*110038*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*110040*/              OPC_CheckPredicate, 9, // Predicate_load
/*110042*/              OPC_MoveParent,
/*110043*/              OPC_CheckType, MVT::f64,
/*110045*/              OPC_MoveParent,
/*110046*/              OPC_MoveParent,
/*110047*/              OPC_CheckType, MVT::v2f64,
/*110049*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110051*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*110054*/              OPC_EmitMergeInputChains1_2,
/*110055*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110058*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/*110066*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110069*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 11,  // Results = #12
/*110077*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSD4rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 12, 4, 5, 6, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VFMSUBSD4rm_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*110090*/            /*Scope*/ 61, /*->110152*/
/*110091*/              OPC_MoveChild1,
/*110092*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*110095*/              OPC_RecordMemRef,
/*110096*/              OPC_RecordNode, // #1 = 'ld' chained node
/*110097*/              OPC_CheckFoldableChainNode,
/*110098*/              OPC_RecordChild1, // #2 = $src2
/*110099*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*110101*/              OPC_CheckPredicate, 9, // Predicate_load
/*110103*/              OPC_MoveParent,
/*110104*/              OPC_RecordChild2, // #3 = $src3
/*110105*/              OPC_CheckType, MVT::f64,
/*110107*/              OPC_MoveParent,
/*110108*/              OPC_MoveParent,
/*110109*/              OPC_CheckType, MVT::v2f64,
/*110111*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110113*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*110116*/              OPC_EmitMergeInputChains1_1,
/*110117*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110120*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/*110128*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110131*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*110139*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSD4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src3))) - Complexity = 31
                        // Dst: (VFMSUBSD4mr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*110152*/            0, /*End of Scope*/
/*110153*/          /*Scope*/ 111, /*->110265*/
/*110154*/            OPC_MoveChild0,
/*110155*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*110158*/            OPC_RecordMemRef,
/*110159*/            OPC_RecordNode, // #0 = 'ld' chained node
/*110160*/            OPC_CheckFoldableChainNode,
/*110161*/            OPC_RecordChild1, // #1 = $src2
/*110162*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*110164*/            OPC_CheckPredicate, 9, // Predicate_load
/*110166*/            OPC_MoveParent,
/*110167*/            OPC_RecordChild1, // #2 = $src1
/*110168*/            OPC_RecordChild2, // #3 = $src3
/*110169*/            OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->110217
/*110172*/              OPC_MoveParent,
/*110173*/              OPC_MoveParent,
/*110174*/              OPC_CheckType, MVT::v4f32,
/*110176*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110178*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*110181*/              OPC_EmitMergeInputChains1_0,
/*110182*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110185*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 9,  // Results = #10
/*110193*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110196*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*110204*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSS4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3))) - Complexity = 31
                        // Dst: (VFMSUBSS4mr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*110217*/            /*SwitchType*/ 45, MVT::f64,// ->110264
/*110219*/              OPC_MoveParent,
/*110220*/              OPC_MoveParent,
/*110221*/              OPC_CheckType, MVT::v2f64,
/*110223*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110225*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*110228*/              OPC_EmitMergeInputChains1_0,
/*110229*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110232*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 9,  // Results = #10
/*110240*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110243*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*110251*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSD4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3))) - Complexity = 31
                        // Dst: (VFMSUBSD4mr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*110264*/            0, // EndSwitchType
/*110265*/          /*Scope*/ 105, /*->110371*/
/*110266*/            OPC_RecordChild0, // #0 = $src1
/*110267*/            OPC_RecordChild1, // #1 = $src2
/*110268*/            OPC_RecordChild2, // #2 = $src3
/*110269*/            OPC_SwitchType /*2 cases */, 48, MVT::f32,// ->110320
/*110272*/              OPC_MoveParent,
/*110273*/              OPC_MoveParent,
/*110274*/              OPC_CheckType, MVT::v4f32,
/*110276*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110278*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110281*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*110289*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110292*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 5,  // Results = #6
/*110300*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110303*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 7,  // Results = #8
/*110311*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSS4rr_Int), 0,
                            MVT::v4f32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3))) - Complexity = 9
                        // Dst: (VFMSUBSS4rr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*110320*/            /*SwitchType*/ 48, MVT::f64,// ->110370
/*110322*/              OPC_MoveParent,
/*110323*/              OPC_MoveParent,
/*110324*/              OPC_CheckType, MVT::v2f64,
/*110326*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110328*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110331*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/*110339*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110342*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*110350*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110353*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 7,  // Results = #8
/*110361*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSD4rr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3))) - Complexity = 9
                        // Dst: (VFMSUBSD4rr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*110370*/            0, // EndSwitchType
/*110371*/          0, /*End of Scope*/
/*110372*/        /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(X86ISD::FNMADD),// ->110849
/*110376*/          OPC_Scope, 123|128,1/*251*/, /*->110630*/ // 3 children in Scope
/*110379*/            OPC_RecordChild0, // #0 = $src1
/*110380*/            OPC_Scope, 61, /*->110443*/ // 4 children in Scope
/*110382*/              OPC_RecordChild1, // #1 = $src2
/*110383*/              OPC_MoveChild2,
/*110384*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*110387*/              OPC_RecordMemRef,
/*110388*/              OPC_RecordNode, // #2 = 'ld' chained node
/*110389*/              OPC_CheckFoldableChainNode,
/*110390*/              OPC_RecordChild1, // #3 = $src3
/*110391*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*110393*/              OPC_CheckPredicate, 9, // Predicate_load
/*110395*/              OPC_MoveParent,
/*110396*/              OPC_CheckType, MVT::f32,
/*110398*/              OPC_MoveParent,
/*110399*/              OPC_MoveParent,
/*110400*/              OPC_CheckType, MVT::v4f32,
/*110402*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110404*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*110407*/              OPC_EmitMergeInputChains1_2,
/*110408*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110411*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/*110419*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110422*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 11,  // Results = #12
/*110430*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSS4rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 12, 4, 5, 6, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VFNMADDSS4rm_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*110443*/            /*Scope*/ 61, /*->110505*/
/*110444*/              OPC_MoveChild1,
/*110445*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*110448*/              OPC_RecordMemRef,
/*110449*/              OPC_RecordNode, // #1 = 'ld' chained node
/*110450*/              OPC_CheckFoldableChainNode,
/*110451*/              OPC_RecordChild1, // #2 = $src2
/*110452*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*110454*/              OPC_CheckPredicate, 9, // Predicate_load
/*110456*/              OPC_MoveParent,
/*110457*/              OPC_RecordChild2, // #3 = $src3
/*110458*/              OPC_CheckType, MVT::f32,
/*110460*/              OPC_MoveParent,
/*110461*/              OPC_MoveParent,
/*110462*/              OPC_CheckType, MVT::v4f32,
/*110464*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110466*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*110469*/              OPC_EmitMergeInputChains1_1,
/*110470*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110473*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/*110481*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110484*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*110492*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSS4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src3))) - Complexity = 31
                        // Dst: (VFNMADDSS4mr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*110505*/            /*Scope*/ 61, /*->110567*/
/*110506*/              OPC_RecordChild1, // #1 = $src2
/*110507*/              OPC_MoveChild2,
/*110508*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*110511*/              OPC_RecordMemRef,
/*110512*/              OPC_RecordNode, // #2 = 'ld' chained node
/*110513*/              OPC_CheckFoldableChainNode,
/*110514*/              OPC_RecordChild1, // #3 = $src3
/*110515*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*110517*/              OPC_CheckPredicate, 9, // Predicate_load
/*110519*/              OPC_MoveParent,
/*110520*/              OPC_CheckType, MVT::f64,
/*110522*/              OPC_MoveParent,
/*110523*/              OPC_MoveParent,
/*110524*/              OPC_CheckType, MVT::v2f64,
/*110526*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110528*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*110531*/              OPC_EmitMergeInputChains1_2,
/*110532*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110535*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/*110543*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110546*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 11,  // Results = #12
/*110554*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSD4rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 12, 4, 5, 6, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VFNMADDSD4rm_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*110567*/            /*Scope*/ 61, /*->110629*/
/*110568*/              OPC_MoveChild1,
/*110569*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*110572*/              OPC_RecordMemRef,
/*110573*/              OPC_RecordNode, // #1 = 'ld' chained node
/*110574*/              OPC_CheckFoldableChainNode,
/*110575*/              OPC_RecordChild1, // #2 = $src2
/*110576*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*110578*/              OPC_CheckPredicate, 9, // Predicate_load
/*110580*/              OPC_MoveParent,
/*110581*/              OPC_RecordChild2, // #3 = $src3
/*110582*/              OPC_CheckType, MVT::f64,
/*110584*/              OPC_MoveParent,
/*110585*/              OPC_MoveParent,
/*110586*/              OPC_CheckType, MVT::v2f64,
/*110588*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110590*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*110593*/              OPC_EmitMergeInputChains1_1,
/*110594*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110597*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/*110605*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110608*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*110616*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSD4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src3))) - Complexity = 31
                        // Dst: (VFNMADDSD4mr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*110629*/            0, /*End of Scope*/
/*110630*/          /*Scope*/ 111, /*->110742*/
/*110631*/            OPC_MoveChild0,
/*110632*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*110635*/            OPC_RecordMemRef,
/*110636*/            OPC_RecordNode, // #0 = 'ld' chained node
/*110637*/            OPC_CheckFoldableChainNode,
/*110638*/            OPC_RecordChild1, // #1 = $src2
/*110639*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*110641*/            OPC_CheckPredicate, 9, // Predicate_load
/*110643*/            OPC_MoveParent,
/*110644*/            OPC_RecordChild1, // #2 = $src1
/*110645*/            OPC_RecordChild2, // #3 = $src3
/*110646*/            OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->110694
/*110649*/              OPC_MoveParent,
/*110650*/              OPC_MoveParent,
/*110651*/              OPC_CheckType, MVT::v4f32,
/*110653*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110655*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*110658*/              OPC_EmitMergeInputChains1_0,
/*110659*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110662*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 9,  // Results = #10
/*110670*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110673*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*110681*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSS4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3))) - Complexity = 31
                        // Dst: (VFNMADDSS4mr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*110694*/            /*SwitchType*/ 45, MVT::f64,// ->110741
/*110696*/              OPC_MoveParent,
/*110697*/              OPC_MoveParent,
/*110698*/              OPC_CheckType, MVT::v2f64,
/*110700*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110702*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*110705*/              OPC_EmitMergeInputChains1_0,
/*110706*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110709*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 9,  // Results = #10
/*110717*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110720*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*110728*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSD4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3))) - Complexity = 31
                        // Dst: (VFNMADDSD4mr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*110741*/            0, // EndSwitchType
/*110742*/          /*Scope*/ 105, /*->110848*/
/*110743*/            OPC_RecordChild0, // #0 = $src1
/*110744*/            OPC_RecordChild1, // #1 = $src2
/*110745*/            OPC_RecordChild2, // #2 = $src3
/*110746*/            OPC_SwitchType /*2 cases */, 48, MVT::f32,// ->110797
/*110749*/              OPC_MoveParent,
/*110750*/              OPC_MoveParent,
/*110751*/              OPC_CheckType, MVT::v4f32,
/*110753*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110755*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110758*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*110766*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110769*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 5,  // Results = #6
/*110777*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110780*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 7,  // Results = #8
/*110788*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSS4rr_Int), 0,
                            MVT::v4f32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3))) - Complexity = 9
                        // Dst: (VFNMADDSS4rr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*110797*/            /*SwitchType*/ 48, MVT::f64,// ->110847
/*110799*/              OPC_MoveParent,
/*110800*/              OPC_MoveParent,
/*110801*/              OPC_CheckType, MVT::v2f64,
/*110803*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110805*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110808*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/*110816*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110819*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*110827*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110830*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 7,  // Results = #8
/*110838*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSD4rr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3))) - Complexity = 9
                        // Dst: (VFNMADDSD4rr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*110847*/            0, // EndSwitchType
/*110848*/          0, /*End of Scope*/
/*110849*/        /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(X86ISD::FNMSUB),// ->111326
/*110853*/          OPC_Scope, 123|128,1/*251*/, /*->111107*/ // 3 children in Scope
/*110856*/            OPC_RecordChild0, // #0 = $src1
/*110857*/            OPC_Scope, 61, /*->110920*/ // 4 children in Scope
/*110859*/              OPC_RecordChild1, // #1 = $src2
/*110860*/              OPC_MoveChild2,
/*110861*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*110864*/              OPC_RecordMemRef,
/*110865*/              OPC_RecordNode, // #2 = 'ld' chained node
/*110866*/              OPC_CheckFoldableChainNode,
/*110867*/              OPC_RecordChild1, // #3 = $src3
/*110868*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*110870*/              OPC_CheckPredicate, 9, // Predicate_load
/*110872*/              OPC_MoveParent,
/*110873*/              OPC_CheckType, MVT::f32,
/*110875*/              OPC_MoveParent,
/*110876*/              OPC_MoveParent,
/*110877*/              OPC_CheckType, MVT::v4f32,
/*110879*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110881*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*110884*/              OPC_EmitMergeInputChains1_2,
/*110885*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110888*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/*110896*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110899*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 11,  // Results = #12
/*110907*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSS4rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 12, 4, 5, 6, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VFNMSUBSS4rm_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*110920*/            /*Scope*/ 61, /*->110982*/
/*110921*/              OPC_MoveChild1,
/*110922*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*110925*/              OPC_RecordMemRef,
/*110926*/              OPC_RecordNode, // #1 = 'ld' chained node
/*110927*/              OPC_CheckFoldableChainNode,
/*110928*/              OPC_RecordChild1, // #2 = $src2
/*110929*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*110931*/              OPC_CheckPredicate, 9, // Predicate_load
/*110933*/              OPC_MoveParent,
/*110934*/              OPC_RecordChild2, // #3 = $src3
/*110935*/              OPC_CheckType, MVT::f32,
/*110937*/              OPC_MoveParent,
/*110938*/              OPC_MoveParent,
/*110939*/              OPC_CheckType, MVT::v4f32,
/*110941*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*110943*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*110946*/              OPC_EmitMergeInputChains1_1,
/*110947*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110950*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/*110958*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*110961*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*110969*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSS4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src3))) - Complexity = 31
                        // Dst: (VFNMSUBSS4mr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*110982*/            /*Scope*/ 61, /*->111044*/
/*110983*/              OPC_RecordChild1, // #1 = $src2
/*110984*/              OPC_MoveChild2,
/*110985*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*110988*/              OPC_RecordMemRef,
/*110989*/              OPC_RecordNode, // #2 = 'ld' chained node
/*110990*/              OPC_CheckFoldableChainNode,
/*110991*/              OPC_RecordChild1, // #3 = $src3
/*110992*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*110994*/              OPC_CheckPredicate, 9, // Predicate_load
/*110996*/              OPC_MoveParent,
/*110997*/              OPC_CheckType, MVT::f64,
/*110999*/              OPC_MoveParent,
/*111000*/              OPC_MoveParent,
/*111001*/              OPC_CheckType, MVT::v2f64,
/*111003*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*111005*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*111008*/              OPC_EmitMergeInputChains1_2,
/*111009*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111012*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/*111020*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111023*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 11,  // Results = #12
/*111031*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSD4rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 12, 4, 5, 6, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VFNMSUBSD4rm_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*111044*/            /*Scope*/ 61, /*->111106*/
/*111045*/              OPC_MoveChild1,
/*111046*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*111049*/              OPC_RecordMemRef,
/*111050*/              OPC_RecordNode, // #1 = 'ld' chained node
/*111051*/              OPC_CheckFoldableChainNode,
/*111052*/              OPC_RecordChild1, // #2 = $src2
/*111053*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*111055*/              OPC_CheckPredicate, 9, // Predicate_load
/*111057*/              OPC_MoveParent,
/*111058*/              OPC_RecordChild2, // #3 = $src3
/*111059*/              OPC_CheckType, MVT::f64,
/*111061*/              OPC_MoveParent,
/*111062*/              OPC_MoveParent,
/*111063*/              OPC_CheckType, MVT::v2f64,
/*111065*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*111067*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*111070*/              OPC_EmitMergeInputChains1_1,
/*111071*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111074*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/*111082*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111085*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*111093*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSD4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src3))) - Complexity = 31
                        // Dst: (VFNMSUBSD4mr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*111106*/            0, /*End of Scope*/
/*111107*/          /*Scope*/ 111, /*->111219*/
/*111108*/            OPC_MoveChild0,
/*111109*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*111112*/            OPC_RecordMemRef,
/*111113*/            OPC_RecordNode, // #0 = 'ld' chained node
/*111114*/            OPC_CheckFoldableChainNode,
/*111115*/            OPC_RecordChild1, // #1 = $src2
/*111116*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*111118*/            OPC_CheckPredicate, 9, // Predicate_load
/*111120*/            OPC_MoveParent,
/*111121*/            OPC_RecordChild1, // #2 = $src1
/*111122*/            OPC_RecordChild2, // #3 = $src3
/*111123*/            OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->111171
/*111126*/              OPC_MoveParent,
/*111127*/              OPC_MoveParent,
/*111128*/              OPC_CheckType, MVT::v4f32,
/*111130*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*111132*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*111135*/              OPC_EmitMergeInputChains1_0,
/*111136*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111139*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 9,  // Results = #10
/*111147*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111150*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*111158*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSS4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3))) - Complexity = 31
                        // Dst: (VFNMSUBSS4mr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*111171*/            /*SwitchType*/ 45, MVT::f64,// ->111218
/*111173*/              OPC_MoveParent,
/*111174*/              OPC_MoveParent,
/*111175*/              OPC_CheckType, MVT::v2f64,
/*111177*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*111179*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*111182*/              OPC_EmitMergeInputChains1_0,
/*111183*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111186*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 9,  // Results = #10
/*111194*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111197*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*111205*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSD4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 10, 4, 5, 6, 7, 8, 12, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3))) - Complexity = 31
                        // Dst: (VFNMSUBSD4mr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*111218*/            0, // EndSwitchType
/*111219*/          /*Scope*/ 105, /*->111325*/
/*111220*/            OPC_RecordChild0, // #0 = $src1
/*111221*/            OPC_RecordChild1, // #1 = $src2
/*111222*/            OPC_RecordChild2, // #2 = $src3
/*111223*/            OPC_SwitchType /*2 cases */, 48, MVT::f32,// ->111274
/*111226*/              OPC_MoveParent,
/*111227*/              OPC_MoveParent,
/*111228*/              OPC_CheckType, MVT::v4f32,
/*111230*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*111232*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111235*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*111243*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111246*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 5,  // Results = #6
/*111254*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111257*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 7,  // Results = #8
/*111265*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSS4rr_Int), 0,
                            MVT::v4f32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3))) - Complexity = 9
                        // Dst: (VFNMSUBSS4rr_Int:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*111274*/            /*SwitchType*/ 48, MVT::f64,// ->111324
/*111276*/              OPC_MoveParent,
/*111277*/              OPC_MoveParent,
/*111278*/              OPC_CheckType, MVT::v2f64,
/*111280*/              OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/*111282*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111285*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/*111293*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111296*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*111304*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111307*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 7,  // Results = #8
/*111315*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSD4rr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3))) - Complexity = 9
                        // Dst: (VFNMSUBSD4rr_Int:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*111324*/            0, // EndSwitchType
/*111325*/          0, /*End of Scope*/
/*111326*/        /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(ISD::LOAD),// ->111530
/*111330*/          OPC_RecordMemRef,
/*111331*/          OPC_RecordNode, // #0 = 'ld' chained node
/*111332*/          OPC_CheckFoldableChainNode,
/*111333*/          OPC_RecordChild1, // #1 = $src
/*111334*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*111336*/          OPC_CheckPredicate, 9, // Predicate_load
/*111338*/          OPC_SwitchType /*2 cases */, 93, MVT::f32,// ->111434
/*111341*/            OPC_MoveParent,
/*111342*/            OPC_MoveParent,
/*111343*/            OPC_CheckType, MVT::v4f32,
/*111345*/            OPC_Scope, 28, /*->111375*/ // 3 children in Scope
/*111347*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*111349*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111352*/              OPC_EmitMergeInputChains1_0,
/*111353*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111364*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111367*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                            MVT::v4f32, 2/*#Ops*/, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } (VMOVSSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*111375*/            /*Scope*/ 28, /*->111404*/
/*111376*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*111378*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111381*/              OPC_EmitMergeInputChains1_0,
/*111382*/              OPC_EmitNode1, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111393*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111396*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                            MVT::v4f32, 2/*#Ops*/, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } (MOVSSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*111404*/            /*Scope*/ 28, /*->111433*/
/*111405*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*111407*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111410*/              OPC_EmitMergeInputChains1_0,
/*111411*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111422*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*111425*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                            MVT::v4f32, 2/*#Ops*/, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } (VMOVSSZrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), VR128X:{ *:[i32] })
/*111433*/            0, /*End of Scope*/
/*111434*/          /*SwitchType*/ 93, MVT::f64,// ->111529
/*111436*/            OPC_MoveParent,
/*111437*/            OPC_MoveParent,
/*111438*/            OPC_CheckType, MVT::v2f64,
/*111440*/            OPC_Scope, 28, /*->111470*/ // 3 children in Scope
/*111442*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*111444*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111447*/              OPC_EmitMergeInputChains1_0,
/*111448*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111459*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111462*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (VMOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*111470*/            /*Scope*/ 28, /*->111499*/
/*111471*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*111473*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111476*/              OPC_EmitMergeInputChains1_0,
/*111477*/              OPC_EmitNode1, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111488*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111491*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (MOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*111499*/            /*Scope*/ 28, /*->111528*/
/*111500*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*111502*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111505*/              OPC_EmitMergeInputChains1_0,
/*111506*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111517*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*111520*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 7, 8, 
                        // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (VMOVSDZrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128X:{ *:[i32] })
/*111528*/            0, /*End of Scope*/
/*111529*/          0, // EndSwitchType
/*111530*/        0, // EndSwitchOpcode
/*111531*/      /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ISD::LOAD),// ->111729
/*111535*/        OPC_RecordMemRef,
/*111536*/        OPC_RecordNode, // #0 = 'ld' chained node
/*111537*/        OPC_RecordChild1, // #1 = $src
/*111538*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*111540*/        OPC_CheckPredicate, 9, // Predicate_load
/*111542*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*111544*/        OPC_MoveParent,
/*111545*/        OPC_SwitchType /*2 cases */, 89, MVT::v4f32,// ->111637
/*111548*/          OPC_Scope, 28, /*->111578*/ // 3 children in Scope
/*111550*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*111552*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111555*/            OPC_EmitMergeInputChains1_0,
/*111556*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111567*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111570*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v4f32, 2/*#Ops*/, 7, 8, 
                      // Src: (X86vzmovl:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } (VMOVSSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*111578*/          /*Scope*/ 28, /*->111607*/
/*111579*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*111581*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111584*/            OPC_EmitMergeInputChains1_0,
/*111585*/            OPC_EmitNode1, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111596*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111599*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v4f32, 2/*#Ops*/, 7, 8, 
                      // Src: (X86vzmovl:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } (MOVSSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*111607*/          /*Scope*/ 28, /*->111636*/
/*111608*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*111610*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111613*/            OPC_EmitMergeInputChains1_0,
/*111614*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111625*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*111628*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v4f32, 2/*#Ops*/, 7, 8, 
                      // Src: (X86vzmovl:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } (VMOVSSZrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), VR128X:{ *:[i32] })
/*111636*/          0, /*End of Scope*/
/*111637*/        /*SwitchType*/ 89, MVT::v2f64,// ->111728
/*111639*/          OPC_Scope, 28, /*->111669*/ // 3 children in Scope
/*111641*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*111643*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111646*/            OPC_EmitMergeInputChains1_0,
/*111647*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111658*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111661*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 7, 8, 
                      // Src: (X86vzmovl:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (VMOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*111669*/          /*Scope*/ 28, /*->111698*/
/*111670*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*111672*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111675*/            OPC_EmitMergeInputChains1_0,
/*111676*/            OPC_EmitNode1, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111687*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*111690*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 7, 8, 
                      // Src: (X86vzmovl:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (MOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*111698*/          /*Scope*/ 28, /*->111727*/
/*111699*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*111701*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111704*/            OPC_EmitMergeInputChains1_0,
/*111705*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*111716*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*111719*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 7, 8, 
                      // Src: (X86vzmovl:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (VMOVSDZrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128X:{ *:[i32] })
/*111727*/          0, /*End of Scope*/
/*111728*/        0, // EndSwitchType
/*111729*/      0, // EndSwitchOpcode
/*111730*/    /*Scope*/ 86|128,4/*598*/, /*->112330*/
/*111732*/      OPC_RecordChild0, // #0 = $src
/*111733*/      OPC_SwitchType /*6 cases */, 32, MVT::v2f64,// ->111768
/*111736*/        OPC_Scope, 9, /*->111747*/ // 3 children in Scope
/*111738*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*111740*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVZPQILo2PQIrr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VMOVZPQILo2PQIrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/*111747*/        /*Scope*/ 9, /*->111757*/
/*111748*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*111750*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZPQILo2PQIrr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (MOVZPQILo2PQIrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/*111757*/        /*Scope*/ 9, /*->111767*/
/*111758*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*111760*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVZPQILo2PQIZrr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VMOVZPQILo2PQIZrr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src)
/*111767*/        0, /*End of Scope*/
/*111768*/      /*SwitchType*/ 95, MVT::v4f32,// ->111865
/*111770*/        OPC_Scope, 16, /*->111788*/ // 5 children in Scope
/*111772*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*111774*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/*111780*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vzmovl:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VMOVSSrr:{ *:[v4f32] } (V_SET0:{ *:[v4f32] }), VR128:{ *:[v4f32] }:$src)
/*111788*/        /*Scope*/ 16, /*->111805*/
/*111789*/          OPC_CheckPatternPredicate, 126, // (MF->getFunction().optForSize() || !Subtarget->hasSSE41()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*111791*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/*111797*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vzmovl:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (MOVSSrr:{ *:[v4f32] } (V_SET0:{ *:[v4f32] }), VR128:{ *:[v4f32] }:$src)
/*111805*/        /*Scope*/ 20, /*->111826*/
/*111806*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*111808*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/*111814*/          OPC_EmitInteger, MVT::i8, 1, 
/*111817*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86vzmovl:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VBLENDPSrri:{ *:[v4f32] } (V_SET0:{ *:[v4f32] }), VR128:{ *:[v4f32] }:$src, 1:{ *:[i8] })
/*111826*/        /*Scope*/ 20, /*->111847*/
/*111827*/          OPC_CheckPatternPredicate, 128, // (!MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111829*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/*111835*/          OPC_EmitInteger, MVT::i8, 1, 
/*111838*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86vzmovl:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (BLENDPSrri:{ *:[v4f32] } (V_SET0:{ *:[v4f32] }), VR128:{ *:[v4f32] }:$src, 1:{ *:[i8] })
/*111847*/        /*Scope*/ 16, /*->111864*/
/*111848*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*111850*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/*111856*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vzmovl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VMOVSSZrr:{ *:[v4f32] } (AVX512_128_SET0:{ *:[v4f32] }), VR128X:{ *:[v4f32] }:$src)
/*111864*/        0, /*End of Scope*/
/*111865*/      /*SwitchType*/ 7|128,1/*135*/, MVT::v8f32,// ->112003
/*111868*/        OPC_Scope, 42, /*->111912*/ // 3 children in Scope
/*111870*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*111872*/          OPC_EmitInteger, MVT::i32, 0, 
/*111875*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/*111881*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*111884*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*111892*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*111900*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*111903*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i32] }, (VMOVSSrr:{ *:[v4f32] } (V_SET0:{ *:[v4f32] }), (EXTRACT_SUBREG:{ *:[v4f32] } VR256:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*111912*/        /*Scope*/ 46, /*->111959*/
/*111913*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*111915*/          OPC_EmitInteger, MVT::i32, 0, 
/*111918*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/*111924*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*111927*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*111935*/          OPC_EmitInteger, MVT::i8, 1, 
/*111938*/          OPC_EmitNode1, TARGET_VAL(X86::VBLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/*111947*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*111950*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 6, 7, 
                    // Src: (X86vzmovl:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i32] }, (VBLENDPSrri:{ *:[v4f32] } (V_SET0:{ *:[v4f32] }), (EXTRACT_SUBREG:{ *:[v4f32] } VR256:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }), 1:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*111959*/        /*Scope*/ 42, /*->112002*/
/*111960*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*111962*/          OPC_EmitInteger, MVT::i32, 0, 
/*111965*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/*111971*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*111974*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*111982*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*111990*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*111993*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i32] }, (VMOVSSZrr:{ *:[v4f32] } (AVX512_128_SET0:{ *:[v4f32] }), (EXTRACT_SUBREG:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*112002*/        0, /*End of Scope*/
/*112003*/      /*SwitchType*/ 7|128,1/*135*/, MVT::v4f64,// ->112141
/*112006*/        OPC_Scope, 42, /*->112050*/ // 3 children in Scope
/*112008*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*112010*/          OPC_EmitInteger, MVT::i32, 0, 
/*112013*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #2
/*112019*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112022*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/*112030*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*112038*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112041*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i32] }, (VMOVSDrr:{ *:[v2f64] } (V_SET0:{ *:[v2f64] }), (EXTRACT_SUBREG:{ *:[v2f64] } VR256:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*112050*/        /*Scope*/ 46, /*->112097*/
/*112051*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*112053*/          OPC_EmitInteger, MVT::i32, 0, 
/*112056*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #2
/*112062*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112065*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/*112073*/          OPC_EmitInteger, MVT::i8, 1, 
/*112076*/          OPC_EmitNode1, TARGET_VAL(X86::VBLENDPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/*112085*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112088*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 6, 7, 
                    // Src: (X86vzmovl:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i32] }, (VBLENDPDrri:{ *:[v2f64] } (V_SET0:{ *:[v2f64] }), (EXTRACT_SUBREG:{ *:[v2f64] } VR256:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }), 1:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*112097*/        /*Scope*/ 42, /*->112140*/
/*112098*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*112100*/          OPC_EmitInteger, MVT::i32, 0, 
/*112103*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #2
/*112109*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112112*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/*112120*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*112128*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112131*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i32] }, (VMOVSDZrr:{ *:[v2f64] } (AVX512_128_SET0:{ *:[v2f64] }), (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*112140*/        0, /*End of Scope*/
/*112141*/      /*SwitchType*/ 92, MVT::v16f32,// ->112235
/*112143*/        OPC_Scope, 42, /*->112187*/ // 2 children in Scope
/*112145*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*112147*/          OPC_EmitInteger, MVT::i32, 0, 
/*112150*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/*112156*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112159*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*112167*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*112175*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112178*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v16f32, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i32] }, (VMOVSSZrr:{ *:[v4f32] } (AVX512_128_SET0:{ *:[v4f32] }), (EXTRACT_SUBREG:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*112187*/        /*Scope*/ 46, /*->112234*/
/*112188*/          OPC_CheckPatternPredicate, 130, // (Subtarget->hasAVX512()) && (!MF->getFunction().optForSize())
/*112190*/          OPC_EmitInteger, MVT::i32, 0, 
/*112193*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/*112199*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112202*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*112210*/          OPC_EmitInteger, MVT::i8, 1, 
/*112213*/          OPC_EmitNode1, TARGET_VAL(X86::VBLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/*112222*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112225*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v16f32, 3/*#Ops*/, 1, 6, 7, 
                    // Src: (X86vzmovl:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i32] }, (VBLENDPSrri:{ *:[v4f32] } (V_SET0:{ *:[v4f32] }), (EXTRACT_SUBREG:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, sub_xmm:{ *:[i32] }), 1:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*112234*/        0, /*End of Scope*/
/*112235*/      /*SwitchType*/ 92, MVT::v8f64,// ->112329
/*112237*/        OPC_Scope, 42, /*->112281*/ // 2 children in Scope
/*112239*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*112241*/          OPC_EmitInteger, MVT::i32, 0, 
/*112244*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #2
/*112250*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112253*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/*112261*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*112269*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112272*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8f64, 3/*#Ops*/, 1, 5, 6, 
                    // Src: (X86vzmovl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i32] }, (VMOVSDZrr:{ *:[v2f64] } (AVX512_128_SET0:{ *:[v2f64] }), (EXTRACT_SUBREG:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*112281*/        /*Scope*/ 46, /*->112328*/
/*112282*/          OPC_CheckPatternPredicate, 130, // (Subtarget->hasAVX512()) && (!MF->getFunction().optForSize())
/*112284*/          OPC_EmitInteger, MVT::i32, 0, 
/*112287*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #2
/*112293*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112296*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/*112304*/          OPC_EmitInteger, MVT::i8, 1, 
/*112307*/          OPC_EmitNode1, TARGET_VAL(X86::VBLENDPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/*112316*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*112319*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8f64, 3/*#Ops*/, 1, 6, 7, 
                    // Src: (X86vzmovl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i32] }, (VBLENDPDrri:{ *:[v2f64] } (V_SET0:{ *:[v2f64] }), (EXTRACT_SUBREG:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, sub_xmm:{ *:[i32] }), 1:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*112328*/        0, /*End of Scope*/
/*112329*/      0, // EndSwitchType
/*112330*/    0, /*End of Scope*/
/*112331*/  /*SwitchOpcode*/ 108|128,5/*748*/, TARGET_VAL(X86ISD::AND),// ->113083
/*112335*/    OPC_Scope, 48|128,1/*176*/, /*->112514*/ // 6 children in Scope
/*112338*/      OPC_MoveChild0,
/*112339*/      OPC_SwitchOpcode /*2 cases */, 75, TARGET_VAL(ISD::XOR),// ->112418
/*112343*/        OPC_RecordChild0, // #0 = $src1
/*112344*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*112355*/        OPC_MoveParent,
/*112356*/        OPC_MoveChild1,
/*112357*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*112360*/        OPC_RecordMemRef,
/*112361*/        OPC_RecordNode, // #1 = 'ld' chained node
/*112362*/        OPC_CheckFoldableChainNode,
/*112363*/        OPC_RecordChild1, // #2 = $src2
/*112364*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*112366*/        OPC_Scope, 24, /*->112392*/ // 2 children in Scope
/*112368*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*112370*/          OPC_MoveParent,
/*112371*/          OPC_CheckType, MVT::i32,
/*112373*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*112375*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112378*/          OPC_EmitMergeInputChains1_1,
/*112379*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] }), (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 27
                    // Dst: (ANDN32rm:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*112392*/        /*Scope*/ 24, /*->112417*/
/*112393*/          OPC_CheckPredicate, 9, // Predicate_load
/*112395*/          OPC_MoveParent,
/*112396*/          OPC_CheckType, MVT::i64,
/*112398*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*112400*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112403*/          OPC_EmitMergeInputChains1_1,
/*112404*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] }), (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 27
                    // Dst: (ANDN64rm:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*112417*/        0, /*End of Scope*/
/*112418*/      /*SwitchOpcode*/ 92, TARGET_VAL(ISD::LOAD),// ->112513
/*112421*/        OPC_RecordMemRef,
/*112422*/        OPC_RecordNode, // #0 = 'ld' chained node
/*112423*/        OPC_CheckFoldableChainNode,
/*112424*/        OPC_RecordChild1, // #1 = $src2
/*112425*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*112427*/        OPC_Scope, 41, /*->112470*/ // 2 children in Scope
/*112429*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*112431*/          OPC_MoveParent,
/*112432*/          OPC_MoveChild1,
/*112433*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*112436*/          OPC_RecordChild0, // #2 = $src1
/*112437*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*112448*/          OPC_MoveParent,
/*112449*/          OPC_CheckType, MVT::i32,
/*112451*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*112453*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112456*/          OPC_EmitMergeInputChains1_0,
/*112457*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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>>, (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] })) - Complexity = 27
                    // Dst: (ANDN32rm:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*112470*/        /*Scope*/ 41, /*->112512*/
/*112471*/          OPC_CheckPredicate, 9, // Predicate_load
/*112473*/          OPC_MoveParent,
/*112474*/          OPC_MoveChild1,
/*112475*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*112478*/          OPC_RecordChild0, // #2 = $src1
/*112479*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*112490*/          OPC_MoveParent,
/*112491*/          OPC_CheckType, MVT::i64,
/*112493*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*112495*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112498*/          OPC_EmitMergeInputChains1_0,
/*112499*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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>>, (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] })) - Complexity = 27
                    // Dst: (ANDN64rm:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*112512*/        0, /*End of Scope*/
/*112513*/      0, // EndSwitchOpcode
/*112514*/    /*Scope*/ 105, /*->112620*/
/*112515*/      OPC_RecordChild0, // #0 = $src1
/*112516*/      OPC_MoveChild1,
/*112517*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*112520*/      OPC_RecordMemRef,
/*112521*/      OPC_RecordNode, // #1 = 'ld' chained node
/*112522*/      OPC_CheckFoldableChainNode,
/*112523*/      OPC_RecordChild1, // #2 = $src2
/*112524*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*112526*/      OPC_Scope, 22, /*->112550*/ // 4 children in Scope
/*112528*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*112530*/        OPC_MoveParent,
/*112531*/        OPC_CheckType, MVT::i8,
/*112533*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112536*/        OPC_EmitMergeInputChains1_1,
/*112537*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>) - Complexity = 25
                  // Dst: (AND8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*112550*/      /*Scope*/ 22, /*->112573*/
/*112551*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*112553*/        OPC_MoveParent,
/*112554*/        OPC_CheckType, MVT::i16,
/*112556*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112559*/        OPC_EmitMergeInputChains1_1,
/*112560*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*112573*/      /*Scope*/ 22, /*->112596*/
/*112574*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*112576*/        OPC_MoveParent,
/*112577*/        OPC_CheckType, MVT::i32,
/*112579*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112582*/        OPC_EmitMergeInputChains1_1,
/*112583*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*112596*/      /*Scope*/ 22, /*->112619*/
/*112597*/        OPC_CheckPredicate, 9, // Predicate_load
/*112599*/        OPC_MoveParent,
/*112600*/        OPC_CheckType, MVT::i64,
/*112602*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112605*/        OPC_EmitMergeInputChains1_1,
/*112606*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*112619*/      0, /*End of Scope*/
/*112620*/    /*Scope*/ 108, /*->112729*/
/*112621*/      OPC_MoveChild0,
/*112622*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*112625*/      OPC_RecordMemRef,
/*112626*/      OPC_RecordNode, // #0 = 'ld' chained node
/*112627*/      OPC_CheckFoldableChainNode,
/*112628*/      OPC_RecordChild1, // #1 = $src2
/*112629*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*112631*/      OPC_Scope, 23, /*->112656*/ // 4 children in Scope
/*112633*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*112635*/        OPC_MoveParent,
/*112636*/        OPC_RecordChild1, // #2 = $src1
/*112637*/        OPC_CheckType, MVT::i8,
/*112639*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112642*/        OPC_EmitMergeInputChains1_0,
/*112643*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>, GR8:{ *:[i8] }:$src1) - Complexity = 25
                  // Dst: (AND8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*112656*/      /*Scope*/ 23, /*->112680*/
/*112657*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*112659*/        OPC_MoveParent,
/*112660*/        OPC_RecordChild1, // #2 = $src1
/*112661*/        OPC_CheckType, MVT::i16,
/*112663*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112666*/        OPC_EmitMergeInputChains1_0,
/*112667*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*112680*/      /*Scope*/ 23, /*->112704*/
/*112681*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*112683*/        OPC_MoveParent,
/*112684*/        OPC_RecordChild1, // #2 = $src1
/*112685*/        OPC_CheckType, MVT::i32,
/*112687*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112690*/        OPC_EmitMergeInputChains1_0,
/*112691*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*112704*/      /*Scope*/ 23, /*->112728*/
/*112705*/        OPC_CheckPredicate, 9, // Predicate_load
/*112707*/        OPC_MoveParent,
/*112708*/        OPC_RecordChild1, // #2 = $src1
/*112709*/        OPC_CheckType, MVT::i64,
/*112711*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*112714*/        OPC_EmitMergeInputChains1_0,
/*112715*/        OPC_MorphNodeTo2, TARGET_VAL(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*112728*/      0, /*End of Scope*/
/*112729*/    /*Scope*/ 78|128,1/*206*/, /*->112937*/
/*112731*/      OPC_RecordChild0, // #0 = $src1
/*112732*/      OPC_Scope, 12|128,1/*140*/, /*->112875*/ // 2 children in Scope
/*112735*/        OPC_RecordChild1, // #1 = $src2
/*112736*/        OPC_MoveChild1,
/*112737*/        OPC_Scope, 81, /*->112820*/ // 4 children in Scope
/*112739*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*112742*/          OPC_Scope, 18, /*->112762*/ // 4 children in Scope
/*112744*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*112746*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*112748*/            OPC_MoveParent,
/*112749*/            OPC_CheckType, MVT::i16,
/*112751*/            OPC_EmitConvertToTarget, 1,
/*112753*/            OPC_MorphNodeTo2, TARGET_VAL(X86::AND16ri8), 0,
                          MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86and_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>><<P:Predicate_i16immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (AND16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/*112762*/          /*Scope*/ 18, /*->112781*/
/*112763*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*112765*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*112767*/            OPC_MoveParent,
/*112768*/            OPC_CheckType, MVT::i32,
/*112770*/            OPC_EmitConvertToTarget, 1,
/*112772*/            OPC_MorphNodeTo2, TARGET_VAL(X86::AND32ri8), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>><<P:Predicate_i32immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (AND32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/*112781*/          /*Scope*/ 18, /*->112800*/
/*112782*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*112784*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*112786*/            OPC_MoveParent,
/*112787*/            OPC_CheckType, MVT::i64,
/*112789*/            OPC_EmitConvertToTarget, 1,
/*112791*/            OPC_MorphNodeTo2, TARGET_VAL(X86::AND64ri8), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>><<P:Predicate_i64immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (AND64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*112800*/          /*Scope*/ 18, /*->112819*/
/*112801*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*112803*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*112805*/            OPC_MoveParent,
/*112806*/            OPC_CheckType, MVT::i64,
/*112808*/            OPC_EmitConvertToTarget, 1,
/*112810*/            OPC_MorphNodeTo2, TARGET_VAL(X86::AND64ri32), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>><<P:Predicate_i64immSExt32_su>>:$src2) - Complexity = 7
                      // Dst: (AND64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*112819*/          0, /*End of Scope*/
/*112820*/        /*Scope*/ 17, /*->112838*/
/*112821*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/*112823*/          OPC_MoveParent,
/*112824*/          OPC_CheckType, MVT::i8,
/*112826*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*112829*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86and_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2) - Complexity = 6
                    // Dst: (AND8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/*112838*/        /*Scope*/ 17, /*->112856*/
/*112839*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/*112841*/          OPC_MoveParent,
/*112842*/          OPC_CheckType, MVT::i16,
/*112844*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*112847*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86and_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2) - Complexity = 6
                    // Dst: (AND16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/*112856*/        /*Scope*/ 17, /*->112874*/
/*112857*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/*112859*/          OPC_MoveParent,
/*112860*/          OPC_CheckType, MVT::i32,
/*112862*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*112865*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2) - Complexity = 6
                    // Dst: (AND32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/*112874*/        0, /*End of Scope*/
/*112875*/      /*Scope*/ 60, /*->112936*/
/*112876*/        OPC_MoveChild0,
/*112877*/        OPC_Scope, 18, /*->112897*/ // 3 children in Scope
/*112879*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/*112881*/          OPC_MoveParent,
/*112882*/          OPC_RecordChild1, // #1 = $src1
/*112883*/          OPC_CheckType, MVT::i8,
/*112885*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*112888*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86and_flag:{ *:[i8] }:{ *:[i32] } relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2, GR8:{ *:[i8] }:$src1) - Complexity = 6
                    // Dst: (AND8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/*112897*/        /*Scope*/ 18, /*->112916*/
/*112898*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/*112900*/          OPC_MoveParent,
/*112901*/          OPC_RecordChild1, // #1 = $src1
/*112902*/          OPC_CheckType, MVT::i16,
/*112904*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*112907*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86and_flag:{ *:[i16] }:{ *:[i32] } relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2, GR16:{ *:[i16] }:$src1) - Complexity = 6
                    // Dst: (AND16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/*112916*/        /*Scope*/ 18, /*->112935*/
/*112917*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/*112919*/          OPC_MoveParent,
/*112920*/          OPC_RecordChild1, // #1 = $src1
/*112921*/          OPC_CheckType, MVT::i32,
/*112923*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*112926*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2, GR32:{ *:[i32] }:$src1) - Complexity = 6
                    // Dst: (AND32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/*112935*/        0, /*End of Scope*/
/*112936*/      0, /*End of Scope*/
/*112937*/    /*Scope*/ 46, /*->112984*/
/*112938*/      OPC_MoveChild0,
/*112939*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*112942*/      OPC_RecordChild0, // #0 = $src1
/*112943*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*112954*/      OPC_MoveParent,
/*112955*/      OPC_RecordChild1, // #1 = $src2
/*112956*/      OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->112970
/*112959*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*112961*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src2) - Complexity = 5
                  // Dst: (ANDN32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/*112970*/      /*SwitchType*/ 11, MVT::i64,// ->112983
/*112972*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*112974*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src2) - Complexity = 5
                  // Dst: (ANDN64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/*112983*/      0, // EndSwitchType
/*112984*/    /*Scope*/ 97, /*->113082*/
/*112985*/      OPC_RecordChild0, // #0 = $src2
/*112986*/      OPC_Scope, 45, /*->113033*/ // 2 children in Scope
/*112988*/        OPC_MoveChild1,
/*112989*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*112992*/        OPC_RecordChild0, // #1 = $src1
/*112993*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*113004*/        OPC_MoveParent,
/*113005*/        OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->113019
/*113008*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*113010*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN32rr), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 0, 
                    // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src2, (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] })) - Complexity = 5
                    // Dst: (ANDN32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/*113019*/        /*SwitchType*/ 11, MVT::i64,// ->113032
/*113021*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*113023*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ANDN64rr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 0, 
                    // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src2, (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] })) - Complexity = 5
                    // Dst: (ANDN64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/*113032*/        0, // EndSwitchType
/*113033*/      /*Scope*/ 47, /*->113081*/
/*113034*/        OPC_RecordChild1, // #1 = $src2
/*113035*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->113047
/*113038*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND8rr), 0,
                        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)
/*113047*/        /*SwitchType*/ 9, MVT::i16,// ->113058
/*113049*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND16rr), 0,
                        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)
/*113058*/        /*SwitchType*/ 9, MVT::i32,// ->113069
/*113060*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND32rr), 0,
                        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)
/*113069*/        /*SwitchType*/ 9, MVT::i64,// ->113080
/*113071*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND64rr), 0,
                        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)
/*113080*/        0, // EndSwitchType
/*113081*/      0, /*End of Scope*/
/*113082*/    0, /*End of Scope*/
/*113083*/  /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTS2SI_RND),// ->113312
/*113087*/    OPC_RecordChild0, // #0 = $src
/*113088*/    OPC_Scope, 110, /*->113200*/ // 2 children in Scope
/*113090*/      OPC_CheckChild0Type, MVT::v4f32,
/*113092*/      OPC_Scope, 68, /*->113162*/ // 2 children in Scope
/*113094*/        OPC_CheckChild1Integer, 4, 
/*113096*/        OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->113129
/*113099*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113101*/          OPC_Scope, 17, /*->113120*/ // 2 children in Scope
/*113103*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113106*/            OPC_EmitMergeInputChains, 1, 6, 
/*113109*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvts2si:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTSS2SIZrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*113120*/          /*Scope*/ 7, /*->113128*/
/*113121*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SIZrr_Int), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvts2si:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSS2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*113128*/          0, /*End of Scope*/
/*113129*/        /*SwitchType*/ 30, MVT::i64,// ->113161
/*113131*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113133*/          OPC_Scope, 17, /*->113152*/ // 2 children in Scope
/*113135*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113138*/            OPC_EmitMergeInputChains, 1, 6, 
/*113141*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvts2si:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTSS2SI64Zrm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*113152*/          /*Scope*/ 7, /*->113160*/
/*113153*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SI64Zrr_Int), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (X86cvts2si:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSS2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*113160*/          0, /*End of Scope*/
/*113161*/        0, // EndSwitchType
/*113162*/      /*Scope*/ 36, /*->113199*/
/*113163*/        OPC_RecordChild1, // #1 = $rc
/*113164*/        OPC_MoveChild1,
/*113165*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113168*/        OPC_MoveParent,
/*113169*/        OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->113184
/*113172*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113174*/          OPC_EmitConvertToTarget, 1,
/*113176*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SIZrrb_Int), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cvts2si:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                    // Dst: (VCVTSS2SIZrrb_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$rc)
/*113184*/        /*SwitchType*/ 12, MVT::i64,// ->113198
/*113186*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113188*/          OPC_EmitConvertToTarget, 1,
/*113190*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SI64Zrrb_Int), 0,
                        MVT::i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cvts2si:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                    // Dst: (VCVTSS2SI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$rc)
/*113198*/        0, // EndSwitchType
/*113199*/      0, /*End of Scope*/
/*113200*/    /*Scope*/ 110, /*->113311*/
/*113201*/      OPC_CheckChild0Type, MVT::v2f64,
/*113203*/      OPC_Scope, 68, /*->113273*/ // 2 children in Scope
/*113205*/        OPC_CheckChild1Integer, 4, 
/*113207*/        OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->113240
/*113210*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113212*/          OPC_Scope, 17, /*->113231*/ // 2 children in Scope
/*113214*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113217*/            OPC_EmitMergeInputChains, 1, 6, 
/*113220*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvts2si:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTSD2SIZrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*113231*/          /*Scope*/ 7, /*->113239*/
/*113232*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SIZrr_Int), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvts2si:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSD2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*113239*/          0, /*End of Scope*/
/*113240*/        /*SwitchType*/ 30, MVT::i64,// ->113272
/*113242*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113244*/          OPC_Scope, 17, /*->113263*/ // 2 children in Scope
/*113246*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113249*/            OPC_EmitMergeInputChains, 1, 6, 
/*113252*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvts2si:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTSD2SI64Zrm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*113263*/          /*Scope*/ 7, /*->113271*/
/*113264*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SI64Zrr_Int), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (X86cvts2si:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSD2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*113271*/          0, /*End of Scope*/
/*113272*/        0, // EndSwitchType
/*113273*/      /*Scope*/ 36, /*->113310*/
/*113274*/        OPC_RecordChild1, // #1 = $rc
/*113275*/        OPC_MoveChild1,
/*113276*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113279*/        OPC_MoveParent,
/*113280*/        OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->113295
/*113283*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113285*/          OPC_EmitConvertToTarget, 1,
/*113287*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SIZrrb_Int), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cvts2si:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                    // Dst: (VCVTSD2SIZrrb_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, (imm:{ *:[i32] }):$rc)
/*113295*/        /*SwitchType*/ 12, MVT::i64,// ->113309
/*113297*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113299*/          OPC_EmitConvertToTarget, 1,
/*113301*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SI64Zrrb_Int), 0,
                        MVT::i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cvts2si:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                    // Dst: (VCVTSD2SI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, (imm:{ *:[i32] }):$rc)
/*113309*/        0, // EndSwitchType
/*113310*/      0, /*End of Scope*/
/*113311*/    0, /*End of Scope*/
/*113312*/  /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTS2UI_RND),// ->113541
/*113316*/    OPC_RecordChild0, // #0 = $src
/*113317*/    OPC_Scope, 110, /*->113429*/ // 2 children in Scope
/*113319*/      OPC_CheckChild0Type, MVT::v4f32,
/*113321*/      OPC_Scope, 68, /*->113391*/ // 2 children in Scope
/*113323*/        OPC_CheckChild1Integer, 4, 
/*113325*/        OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->113358
/*113328*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113330*/          OPC_Scope, 17, /*->113349*/ // 2 children in Scope
/*113332*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113335*/            OPC_EmitMergeInputChains, 1, 6, 
/*113338*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2USIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvts2usi:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTSS2USIZrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*113349*/          /*Scope*/ 7, /*->113357*/
/*113350*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2USIZrr_Int), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvts2usi:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSS2USIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*113357*/          0, /*End of Scope*/
/*113358*/        /*SwitchType*/ 30, MVT::i64,// ->113390
/*113360*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113362*/          OPC_Scope, 17, /*->113381*/ // 2 children in Scope
/*113364*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113367*/            OPC_EmitMergeInputChains, 1, 6, 
/*113370*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2USI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvts2usi:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTSS2USI64Zrm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*113381*/          /*Scope*/ 7, /*->113389*/
/*113382*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2USI64Zrr_Int), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (X86cvts2usi:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSS2USI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*113389*/          0, /*End of Scope*/
/*113390*/        0, // EndSwitchType
/*113391*/      /*Scope*/ 36, /*->113428*/
/*113392*/        OPC_RecordChild1, // #1 = $rc
/*113393*/        OPC_MoveChild1,
/*113394*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113397*/        OPC_MoveParent,
/*113398*/        OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->113413
/*113401*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113403*/          OPC_EmitConvertToTarget, 1,
/*113405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2USIZrrb_Int), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cvts2usi:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                    // Dst: (VCVTSS2USIZrrb_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$rc)
/*113413*/        /*SwitchType*/ 12, MVT::i64,// ->113427
/*113415*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113417*/          OPC_EmitConvertToTarget, 1,
/*113419*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2USI64Zrrb_Int), 0,
                        MVT::i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cvts2usi:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                    // Dst: (VCVTSS2USI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$rc)
/*113427*/        0, // EndSwitchType
/*113428*/      0, /*End of Scope*/
/*113429*/    /*Scope*/ 110, /*->113540*/
/*113430*/      OPC_CheckChild0Type, MVT::v2f64,
/*113432*/      OPC_Scope, 68, /*->113502*/ // 2 children in Scope
/*113434*/        OPC_CheckChild1Integer, 4, 
/*113436*/        OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->113469
/*113439*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113441*/          OPC_Scope, 17, /*->113460*/ // 2 children in Scope
/*113443*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113446*/            OPC_EmitMergeInputChains, 1, 6, 
/*113449*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2USIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvts2usi:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTSD2USIZrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*113460*/          /*Scope*/ 7, /*->113468*/
/*113461*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2USIZrr_Int), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvts2usi:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSD2USIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*113468*/          0, /*End of Scope*/
/*113469*/        /*SwitchType*/ 30, MVT::i64,// ->113501
/*113471*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113473*/          OPC_Scope, 17, /*->113492*/ // 2 children in Scope
/*113475*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113478*/            OPC_EmitMergeInputChains, 1, 6, 
/*113481*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2USI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvts2usi:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTSD2USI64Zrm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*113492*/          /*Scope*/ 7, /*->113500*/
/*113493*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2USI64Zrr_Int), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (X86cvts2usi:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSD2USI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*113500*/          0, /*End of Scope*/
/*113501*/        0, // EndSwitchType
/*113502*/      /*Scope*/ 36, /*->113539*/
/*113503*/        OPC_RecordChild1, // #1 = $rc
/*113504*/        OPC_MoveChild1,
/*113505*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113508*/        OPC_MoveParent,
/*113509*/        OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->113524
/*113512*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113514*/          OPC_EmitConvertToTarget, 1,
/*113516*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2USIZrrb_Int), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cvts2usi:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                    // Dst: (VCVTSD2USIZrrb_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, (imm:{ *:[i32] }):$rc)
/*113524*/        /*SwitchType*/ 12, MVT::i64,// ->113538
/*113526*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113528*/          OPC_EmitConvertToTarget, 1,
/*113530*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2USI64Zrrb_Int), 0,
                        MVT::i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cvts2usi:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                    // Dst: (VCVTSD2USI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, (imm:{ *:[i32] }):$rc)
/*113538*/        0, // EndSwitchType
/*113539*/      0, /*End of Scope*/
/*113540*/    0, /*End of Scope*/
/*113541*/  /*SwitchOpcode*/ 77|128,1/*205*/, TARGET_VAL(X86ISD::CVTTS2SI_RND),// ->113750
/*113545*/    OPC_RecordChild0, // #0 = $src
/*113546*/    OPC_Scope, 100, /*->113648*/ // 2 children in Scope
/*113548*/      OPC_CheckChild0Type, MVT::v4f32,
/*113550*/      OPC_Scope, 68, /*->113620*/ // 2 children in Scope
/*113552*/        OPC_CheckChild1Integer, 4, 
/*113554*/        OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->113587
/*113557*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113559*/          OPC_Scope, 17, /*->113578*/ // 2 children in Scope
/*113561*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113564*/            OPC_EmitMergeInputChains, 1, 6, 
/*113567*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvtts2IntRnd:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTTSS2SIZrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*113578*/          /*Scope*/ 7, /*->113586*/
/*113579*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrr_Int), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtts2IntRnd:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTTSS2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*113586*/          0, /*End of Scope*/
/*113587*/        /*SwitchType*/ 30, MVT::i64,// ->113619
/*113589*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113591*/          OPC_Scope, 17, /*->113610*/ // 2 children in Scope
/*113593*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113596*/            OPC_EmitMergeInputChains, 1, 6, 
/*113599*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvtts2IntRnd:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTTSS2SI64Zrm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*113610*/          /*Scope*/ 7, /*->113618*/
/*113611*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrr_Int), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (X86cvtts2IntRnd:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTTSS2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*113618*/          0, /*End of Scope*/
/*113619*/        0, // EndSwitchType
/*113620*/      /*Scope*/ 26, /*->113647*/
/*113621*/        OPC_CheckChild1Integer, 8, 
/*113623*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->113635
/*113626*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113628*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrrb_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2IntRnd:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCVTTSS2SIZrrb_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*113635*/        /*SwitchType*/ 9, MVT::i64,// ->113646
/*113637*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113639*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrrb_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2IntRnd:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCVTTSS2SI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*113646*/        0, // EndSwitchType
/*113647*/      0, /*End of Scope*/
/*113648*/    /*Scope*/ 100, /*->113749*/
/*113649*/      OPC_CheckChild0Type, MVT::v2f64,
/*113651*/      OPC_Scope, 68, /*->113721*/ // 2 children in Scope
/*113653*/        OPC_CheckChild1Integer, 4, 
/*113655*/        OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->113688
/*113658*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113660*/          OPC_Scope, 17, /*->113679*/ // 2 children in Scope
/*113662*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113665*/            OPC_EmitMergeInputChains, 1, 6, 
/*113668*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvtts2IntRnd:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTTSD2SIZrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*113679*/          /*Scope*/ 7, /*->113687*/
/*113680*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrr_Int), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtts2IntRnd:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTTSD2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*113687*/          0, /*End of Scope*/
/*113688*/        /*SwitchType*/ 30, MVT::i64,// ->113720
/*113690*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113692*/          OPC_Scope, 17, /*->113711*/ // 2 children in Scope
/*113694*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113697*/            OPC_EmitMergeInputChains, 1, 6, 
/*113700*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvtts2IntRnd:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTTSD2SI64Zrm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*113711*/          /*Scope*/ 7, /*->113719*/
/*113712*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrr_Int), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (X86cvtts2IntRnd:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTTSD2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*113719*/          0, /*End of Scope*/
/*113720*/        0, // EndSwitchType
/*113721*/      /*Scope*/ 26, /*->113748*/
/*113722*/        OPC_CheckChild1Integer, 8, 
/*113724*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->113736
/*113727*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113729*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrrb_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2IntRnd:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCVTTSD2SIZrrb_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*113736*/        /*SwitchType*/ 9, MVT::i64,// ->113747
/*113738*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113740*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrrb_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2IntRnd:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCVTTSD2SI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*113747*/        0, // EndSwitchType
/*113748*/      0, /*End of Scope*/
/*113749*/    0, /*End of Scope*/
/*113750*/  /*SwitchOpcode*/ 77|128,1/*205*/, TARGET_VAL(X86ISD::CVTTS2UI_RND),// ->113959
/*113754*/    OPC_RecordChild0, // #0 = $src
/*113755*/    OPC_Scope, 100, /*->113857*/ // 2 children in Scope
/*113757*/      OPC_CheckChild0Type, MVT::v4f32,
/*113759*/      OPC_Scope, 68, /*->113829*/ // 2 children in Scope
/*113761*/        OPC_CheckChild1Integer, 4, 
/*113763*/        OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->113796
/*113766*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113768*/          OPC_Scope, 17, /*->113787*/ // 2 children in Scope
/*113770*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113773*/            OPC_EmitMergeInputChains, 1, 6, 
/*113776*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvtts2UIntRnd:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTTSS2USIZrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*113787*/          /*Scope*/ 7, /*->113795*/
/*113788*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USIZrr_Int), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtts2UIntRnd:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTTSS2USIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*113795*/          0, /*End of Scope*/
/*113796*/        /*SwitchType*/ 30, MVT::i64,// ->113828
/*113798*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113800*/          OPC_Scope, 17, /*->113819*/ // 2 children in Scope
/*113802*/            OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113805*/            OPC_EmitMergeInputChains, 1, 6, 
/*113808*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvtts2UIntRnd:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTTSS2USI64Zrm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*113819*/          /*Scope*/ 7, /*->113827*/
/*113820*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USI64Zrr_Int), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (X86cvtts2UIntRnd:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTTSS2USI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*113827*/          0, /*End of Scope*/
/*113828*/        0, // EndSwitchType
/*113829*/      /*Scope*/ 26, /*->113856*/
/*113830*/        OPC_CheckChild1Integer, 8, 
/*113832*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->113844
/*113835*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113837*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USIZrrb_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2UIntRnd:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCVTTSS2USIZrrb_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*113844*/        /*SwitchType*/ 9, MVT::i64,// ->113855
/*113846*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113848*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USI64Zrrb_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2UIntRnd:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCVTTSS2USI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*113855*/        0, // EndSwitchType
/*113856*/      0, /*End of Scope*/
/*113857*/    /*Scope*/ 100, /*->113958*/
/*113858*/      OPC_CheckChild0Type, MVT::v2f64,
/*113860*/      OPC_Scope, 68, /*->113930*/ // 2 children in Scope
/*113862*/        OPC_CheckChild1Integer, 4, 
/*113864*/        OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->113897
/*113867*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113869*/          OPC_Scope, 17, /*->113888*/ // 2 children in Scope
/*113871*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113874*/            OPC_EmitMergeInputChains, 1, 6, 
/*113877*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvtts2UIntRnd:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTTSD2USIZrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*113888*/          /*Scope*/ 7, /*->113896*/
/*113889*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USIZrr_Int), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtts2UIntRnd:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTTSD2USIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*113896*/          0, /*End of Scope*/
/*113897*/        /*SwitchType*/ 30, MVT::i64,// ->113929
/*113899*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113901*/          OPC_Scope, 17, /*->113920*/ // 2 children in Scope
/*113903*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*113906*/            OPC_EmitMergeInputChains, 1, 6, 
/*113909*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                      // Src: (X86cvtts2UIntRnd:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 26
                      // Dst: (VCVTTSD2USI64Zrm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*113920*/          /*Scope*/ 7, /*->113928*/
/*113921*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USI64Zrr_Int), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (X86cvtts2UIntRnd:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTTSD2USI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*113928*/          0, /*End of Scope*/
/*113929*/        0, // EndSwitchType
/*113930*/      /*Scope*/ 26, /*->113957*/
/*113931*/        OPC_CheckChild1Integer, 8, 
/*113933*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->113945
/*113936*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113938*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USIZrrb_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2UIntRnd:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCVTTSD2USIZrrb_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*113945*/        /*SwitchType*/ 9, MVT::i64,// ->113956
/*113947*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113949*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USI64Zrrb_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2UIntRnd:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCVTTSD2USI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*113956*/        0, // EndSwitchType
/*113957*/      0, /*End of Scope*/
/*113958*/    0, /*End of Scope*/
/*113959*/  /*SwitchOpcode*/ 91, TARGET_VAL(X86ISD::LCMPXCHG_DAG),// ->114053
/*113962*/    OPC_RecordMemRef,
/*113963*/    OPC_RecordNode, // #0 = 'X86cas' chained node
/*113964*/    OPC_CaptureGlueInput,
/*113965*/    OPC_RecordChild1, // #1 = $ptr
/*113966*/    OPC_RecordChild2, // #2 = $swap
/*113967*/    OPC_Scope, 20, /*->113989*/ // 4 children in Scope
/*113969*/      OPC_CheckChild2Type, MVT::i8,
/*113971*/      OPC_CheckChild3Integer, 1, 
/*113973*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*113976*/      OPC_EmitMergeInputChains1_0,
/*113977*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LCMPXCHG8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                    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)
/*113989*/    /*Scope*/ 20, /*->114010*/
/*113990*/      OPC_CheckChild2Type, MVT::i16,
/*113992*/      OPC_CheckChild3Integer, 2, 
/*113994*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*113997*/      OPC_EmitMergeInputChains1_0,
/*113998*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LCMPXCHG16), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                    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)
/*114010*/    /*Scope*/ 20, /*->114031*/
/*114011*/      OPC_CheckChild2Type, MVT::i32,
/*114013*/      OPC_CheckChild3Integer, 4, 
/*114015*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*114018*/      OPC_EmitMergeInputChains1_0,
/*114019*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LCMPXCHG32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                    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)
/*114031*/    /*Scope*/ 20, /*->114052*/
/*114032*/      OPC_CheckChild2Type, MVT::i64,
/*114034*/      OPC_CheckChild3Integer, 8, 
/*114036*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*114039*/      OPC_EmitMergeInputChains1_0,
/*114040*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LCMPXCHG64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                    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)
/*114052*/    0, /*End of Scope*/
/*114053*/  /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::BSF),// ->114170
/*114056*/    OPC_Scope, 77, /*->114135*/ // 2 children in Scope
/*114058*/      OPC_MoveChild0,
/*114059*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*114062*/      OPC_RecordMemRef,
/*114063*/      OPC_RecordNode, // #0 = 'ld' chained node
/*114064*/      OPC_RecordChild1, // #1 = $src
/*114065*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*114067*/      OPC_Scope, 21, /*->114090*/ // 3 children in Scope
/*114069*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*114071*/        OPC_MoveParent,
/*114072*/        OPC_CheckType, MVT::i16,
/*114074*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114077*/        OPC_EmitMergeInputChains1_0,
/*114078*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114090*/      /*Scope*/ 21, /*->114112*/
/*114091*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*114093*/        OPC_MoveParent,
/*114094*/        OPC_CheckType, MVT::i32,
/*114096*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114099*/        OPC_EmitMergeInputChains1_0,
/*114100*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114112*/      /*Scope*/ 21, /*->114134*/
/*114113*/        OPC_CheckPredicate, 9, // Predicate_load
/*114115*/        OPC_MoveParent,
/*114116*/        OPC_CheckType, MVT::i64,
/*114118*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114121*/        OPC_EmitMergeInputChains1_0,
/*114122*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114134*/      0, /*End of Scope*/
/*114135*/    /*Scope*/ 33, /*->114169*/
/*114136*/      OPC_RecordChild0, // #0 = $src
/*114137*/      OPC_SwitchType /*3 cases */, 8, MVT::i16,// ->114148
/*114140*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF16rr), 0,
                      MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86bsf:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src) - Complexity = 3
                  // Dst: (BSF16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
/*114148*/      /*SwitchType*/ 8, MVT::i32,// ->114158
/*114150*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF32rr), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86bsf:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (BSF32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*114158*/      /*SwitchType*/ 8, MVT::i64,// ->114168
/*114160*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF64rr), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86bsf:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src) - Complexity = 3
                  // Dst: (BSF64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*114168*/      0, // EndSwitchType
/*114169*/    0, /*End of Scope*/
/*114170*/  /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::BSR),// ->114287
/*114173*/    OPC_Scope, 77, /*->114252*/ // 2 children in Scope
/*114175*/      OPC_MoveChild0,
/*114176*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*114179*/      OPC_RecordMemRef,
/*114180*/      OPC_RecordNode, // #0 = 'ld' chained node
/*114181*/      OPC_RecordChild1, // #1 = $src
/*114182*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*114184*/      OPC_Scope, 21, /*->114207*/ // 3 children in Scope
/*114186*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*114188*/        OPC_MoveParent,
/*114189*/        OPC_CheckType, MVT::i16,
/*114191*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114194*/        OPC_EmitMergeInputChains1_0,
/*114195*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114207*/      /*Scope*/ 21, /*->114229*/
/*114208*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*114210*/        OPC_MoveParent,
/*114211*/        OPC_CheckType, MVT::i32,
/*114213*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114216*/        OPC_EmitMergeInputChains1_0,
/*114217*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114229*/      /*Scope*/ 21, /*->114251*/
/*114230*/        OPC_CheckPredicate, 9, // Predicate_load
/*114232*/        OPC_MoveParent,
/*114233*/        OPC_CheckType, MVT::i64,
/*114235*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114238*/        OPC_EmitMergeInputChains1_0,
/*114239*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114251*/      0, /*End of Scope*/
/*114252*/    /*Scope*/ 33, /*->114286*/
/*114253*/      OPC_RecordChild0, // #0 = $src
/*114254*/      OPC_SwitchType /*3 cases */, 8, MVT::i16,// ->114265
/*114257*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSR16rr), 0,
                      MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86bsr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src) - Complexity = 3
                  // Dst: (BSR16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
/*114265*/      /*SwitchType*/ 8, MVT::i32,// ->114275
/*114267*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSR32rr), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86bsr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (BSR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*114275*/      /*SwitchType*/ 8, MVT::i64,// ->114285
/*114277*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSR64rr), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86bsr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src) - Complexity = 3
                  // Dst: (BSR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*114285*/      0, // EndSwitchType
/*114286*/    0, /*End of Scope*/
/*114287*/  /*SwitchOpcode*/ 121, TARGET_VAL(ISD::BSWAP),// ->114411
/*114290*/    OPC_Scope, 80, /*->114372*/ // 2 children in Scope
/*114292*/      OPC_MoveChild0,
/*114293*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*114296*/      OPC_RecordMemRef,
/*114297*/      OPC_RecordNode, // #0 = 'ld' chained node
/*114298*/      OPC_RecordChild1, // #1 = $src
/*114299*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*114301*/      OPC_Scope, 22, /*->114325*/ // 3 children in Scope
/*114303*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*114305*/        OPC_MoveParent,
/*114306*/        OPC_CheckType, MVT::i16,
/*114308*/        OPC_CheckPatternPredicate, 23, // (Subtarget->hasMOVBE())
/*114310*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114313*/        OPC_EmitMergeInputChains1_0,
/*114314*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVBE16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114325*/      /*Scope*/ 22, /*->114348*/
/*114326*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*114328*/        OPC_MoveParent,
/*114329*/        OPC_CheckType, MVT::i32,
/*114331*/        OPC_CheckPatternPredicate, 23, // (Subtarget->hasMOVBE())
/*114333*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114336*/        OPC_EmitMergeInputChains1_0,
/*114337*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVBE32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114348*/      /*Scope*/ 22, /*->114371*/
/*114349*/        OPC_CheckPredicate, 9, // Predicate_load
/*114351*/        OPC_MoveParent,
/*114352*/        OPC_CheckType, MVT::i64,
/*114354*/        OPC_CheckPatternPredicate, 23, // (Subtarget->hasMOVBE())
/*114356*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114359*/        OPC_EmitMergeInputChains1_0,
/*114360*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVBE64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114371*/      0, /*End of Scope*/
/*114372*/    /*Scope*/ 37, /*->114410*/
/*114373*/      OPC_RecordChild0, // #0 = $src
/*114374*/      OPC_SwitchType /*3 cases */, 7, MVT::i32,// ->114384
/*114377*/        OPC_MorphNodeTo1, TARGET_VAL(X86::BSWAP32r), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (bswap:{ *:[i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (BSWAP32r:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*114384*/      /*SwitchType*/ 7, MVT::i64,// ->114393
/*114386*/        OPC_MorphNodeTo1, TARGET_VAL(X86::BSWAP64r), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (bswap:{ *:[i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                  // Dst: (BSWAP64r:{ *:[i64] } GR64:{ *:[i64] }:$src)
/*114393*/      /*SwitchType*/ 14, MVT::i16,// ->114409
/*114395*/        OPC_CheckPatternPredicate, 23, // (Subtarget->hasMOVBE())
/*114397*/        OPC_EmitInteger, MVT::i8, 8, 
/*114400*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROL16ri), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (bswap:{ *:[i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                  // Dst: (ROL16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src, 8:{ *:[i8] })
/*114409*/      0, // EndSwitchType
/*114410*/    0, /*End of Scope*/
/*114411*/  /*SwitchOpcode*/ 36|128,5/*676*/, TARGET_VAL(ISD::CTLZ),// ->115091
/*114415*/    OPC_Scope, 83, /*->114500*/ // 4 children in Scope
/*114417*/      OPC_MoveChild0,
/*114418*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*114421*/      OPC_RecordMemRef,
/*114422*/      OPC_RecordNode, // #0 = 'ld' chained node
/*114423*/      OPC_RecordChild1, // #1 = $src
/*114424*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*114426*/      OPC_Scope, 23, /*->114451*/ // 3 children in Scope
/*114428*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*114430*/        OPC_MoveParent,
/*114431*/        OPC_CheckType, MVT::i16,
/*114433*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/*114435*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114438*/        OPC_EmitMergeInputChains1_0,
/*114439*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LZCNT16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114451*/      /*Scope*/ 23, /*->114475*/
/*114452*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*114454*/        OPC_MoveParent,
/*114455*/        OPC_CheckType, MVT::i32,
/*114457*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/*114459*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114462*/        OPC_EmitMergeInputChains1_0,
/*114463*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LZCNT32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114475*/      /*Scope*/ 23, /*->114499*/
/*114476*/        OPC_CheckPredicate, 9, // Predicate_load
/*114478*/        OPC_MoveParent,
/*114479*/        OPC_CheckType, MVT::i64,
/*114481*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/*114483*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114486*/        OPC_EmitMergeInputChains1_0,
/*114487*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LZCNT64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*114499*/      0, /*End of Scope*/
/*114500*/    /*Scope*/ 39, /*->114540*/
/*114501*/      OPC_RecordChild0, // #0 = $src
/*114502*/      OPC_SwitchType /*3 cases */, 10, MVT::i16,// ->114515
/*114505*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/*114507*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LZCNT16rr), 0,
                      MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                  // Dst: (LZCNT16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
/*114515*/      /*SwitchType*/ 10, MVT::i32,// ->114527
/*114517*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/*114519*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LZCNT32rr), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (LZCNT32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*114527*/      /*SwitchType*/ 10, MVT::i64,// ->114539
/*114529*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/*114531*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LZCNT64rr), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                  // Dst: (LZCNT64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*114539*/      0, // EndSwitchType
/*114540*/    /*Scope*/ 53|128,2/*309*/, /*->114851*/
/*114542*/      OPC_MoveChild0,
/*114543*/      OPC_SwitchOpcode /*3 cases */, 14|128,1/*142*/, TARGET_VAL(X86ISD::VBROADCAST),// ->114690
/*114548*/        OPC_MoveChild0,
/*114549*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*114552*/        OPC_RecordMemRef,
/*114553*/        OPC_RecordNode, // #0 = 'ld' chained node
/*114554*/        OPC_CheckFoldableChainNode,
/*114555*/        OPC_RecordChild1, // #1 = $src1
/*114556*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*114558*/        OPC_SwitchType /*2 cases */, 63, MVT::i64,// ->114624
/*114561*/          OPC_CheckPredicate, 9, // Predicate_load
/*114563*/          OPC_MoveParent,
/*114564*/          OPC_MoveParent,
/*114565*/          OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->114585
/*114568*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*114570*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114573*/            OPC_EmitMergeInputChains1_0,
/*114574*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPLZCNTQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*114585*/          /*SwitchType*/ 17, MVT::v4i64,// ->114604
/*114587*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*114589*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114592*/            OPC_EmitMergeInputChains1_0,
/*114593*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPLZCNTQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*114604*/          /*SwitchType*/ 17, MVT::v2i64,// ->114623
/*114606*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*114608*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114611*/            OPC_EmitMergeInputChains1_0,
/*114612*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPLZCNTQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*114623*/          0, // EndSwitchType
/*114624*/        /*SwitchType*/ 63, MVT::i32,// ->114689
/*114626*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*114628*/          OPC_MoveParent,
/*114629*/          OPC_MoveParent,
/*114630*/          OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->114650
/*114633*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*114635*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114638*/            OPC_EmitMergeInputChains1_0,
/*114639*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPLZCNTDZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*114650*/          /*SwitchType*/ 17, MVT::v8i32,// ->114669
/*114652*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*114654*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114657*/            OPC_EmitMergeInputChains1_0,
/*114658*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPLZCNTDZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*114669*/          /*SwitchType*/ 17, MVT::v4i32,// ->114688
/*114671*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*114673*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114676*/            OPC_EmitMergeInputChains1_0,
/*114677*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPLZCNTDZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*114688*/          0, // EndSwitchType
/*114689*/        0, // EndSwitchType
/*114690*/      /*SwitchOpcode*/ 85, TARGET_VAL(ISD::BITCAST),// ->114778
/*114693*/        OPC_MoveChild0,
/*114694*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*114697*/        OPC_RecordMemRef,
/*114698*/        OPC_RecordNode, // #0 = 'ld' chained node
/*114699*/        OPC_CheckFoldableChainNode,
/*114700*/        OPC_RecordChild1, // #1 = $src1
/*114701*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*114703*/        OPC_CheckPredicate, 9, // Predicate_load
/*114705*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*114707*/        OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->114731
/*114710*/          OPC_MoveParent,
/*114711*/          OPC_MoveParent,
/*114712*/          OPC_CheckType, MVT::v16i32,
/*114714*/          OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*114716*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114719*/          OPC_EmitMergeInputChains1_0,
/*114720*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctlz:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPLZCNTDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*114731*/        /*SwitchType*/ 21, MVT::v4i64,// ->114754
/*114733*/          OPC_MoveParent,
/*114734*/          OPC_MoveParent,
/*114735*/          OPC_CheckType, MVT::v8i32,
/*114737*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*114739*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114742*/          OPC_EmitMergeInputChains1_0,
/*114743*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctlz:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPLZCNTDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*114754*/        /*SwitchType*/ 21, MVT::v2i64,// ->114777
/*114756*/          OPC_MoveParent,
/*114757*/          OPC_MoveParent,
/*114758*/          OPC_CheckType, MVT::v4i32,
/*114760*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*114762*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114765*/          OPC_EmitMergeInputChains1_0,
/*114766*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctlz:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPLZCNTDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*114777*/        0, // EndSwitchType
/*114778*/      /*SwitchOpcode*/ 69, TARGET_VAL(ISD::LOAD),// ->114850
/*114781*/        OPC_RecordMemRef,
/*114782*/        OPC_RecordNode, // #0 = 'ld' chained node
/*114783*/        OPC_RecordChild1, // #1 = $src1
/*114784*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*114786*/        OPC_CheckPredicate, 9, // Predicate_load
/*114788*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*114790*/        OPC_MoveParent,
/*114791*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->114811
/*114794*/          OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*114796*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114799*/          OPC_EmitMergeInputChains1_0,
/*114800*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctlz:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPLZCNTQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*114811*/        /*SwitchType*/ 17, MVT::v4i64,// ->114830
/*114813*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*114815*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114818*/          OPC_EmitMergeInputChains1_0,
/*114819*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctlz:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPLZCNTQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*114830*/        /*SwitchType*/ 17, MVT::v2i64,// ->114849
/*114832*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*114834*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*114837*/          OPC_EmitMergeInputChains1_0,
/*114838*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctlz:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPLZCNTQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*114849*/        0, // EndSwitchType
/*114850*/      0, // EndSwitchOpcode
/*114851*/    /*Scope*/ 109|128,1/*237*/, /*->115090*/
/*114853*/      OPC_RecordChild0, // #0 = $src1
/*114854*/      OPC_SwitchType /*6 cases */, 9, MVT::v8i64,// ->114866
/*114857*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*114859*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPLZCNTQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1)
/*114866*/      /*SwitchType*/ 51, MVT::v4i64,// ->114919
/*114868*/        OPC_Scope, 9, /*->114879*/ // 2 children in Scope
/*114870*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*114872*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (ctlz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                    // Dst: (VPLZCNTQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1)
/*114879*/        /*Scope*/ 38, /*->114918*/
/*114880*/          OPC_CheckPatternPredicate, 135, // (Subtarget->hasCDI()) && (!Subtarget->hasVLX())
/*114882*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*114888*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*114891*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*114900*/          OPC_EmitNode1, TARGET_VAL(X86::VPLZCNTQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*114907*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*114910*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 4, 5, 
                    // Src: (ctlz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPLZCNTQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*114918*/        0, /*End of Scope*/
/*114919*/      /*SwitchType*/ 51, MVT::v2i64,// ->114972
/*114921*/        OPC_Scope, 9, /*->114932*/ // 2 children in Scope
/*114923*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*114925*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (ctlz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                    // Dst: (VPLZCNTQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1)
/*114932*/        /*Scope*/ 38, /*->114971*/
/*114933*/          OPC_CheckPatternPredicate, 135, // (Subtarget->hasCDI()) && (!Subtarget->hasVLX())
/*114935*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*114941*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*114944*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*114953*/          OPC_EmitNode1, TARGET_VAL(X86::VPLZCNTQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*114960*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*114963*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 4, 5, 
                    // Src: (ctlz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPLZCNTQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*114971*/        0, /*End of Scope*/
/*114972*/      /*SwitchType*/ 9, MVT::v16i32,// ->114983
/*114974*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*114976*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                  // Dst: (VPLZCNTDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1)
/*114983*/      /*SwitchType*/ 51, MVT::v8i32,// ->115036
/*114985*/        OPC_Scope, 9, /*->114996*/ // 2 children in Scope
/*114987*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*114989*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (ctlz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                    // Dst: (VPLZCNTDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1)
/*114996*/        /*Scope*/ 38, /*->115035*/
/*114997*/          OPC_CheckPatternPredicate, 135, // (Subtarget->hasCDI()) && (!Subtarget->hasVLX())
/*114999*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*115005*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*115008*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*115017*/          OPC_EmitNode1, TARGET_VAL(X86::VPLZCNTDZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*115024*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*115027*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i32, 2/*#Ops*/, 4, 5, 
                    // Src: (ctlz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VPLZCNTDZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*115035*/        0, /*End of Scope*/
/*115036*/      /*SwitchType*/ 51, MVT::v4i32,// ->115089
/*115038*/        OPC_Scope, 9, /*->115049*/ // 2 children in Scope
/*115040*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*115042*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (ctlz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                    // Dst: (VPLZCNTDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1)
/*115049*/        /*Scope*/ 38, /*->115088*/
/*115050*/          OPC_CheckPatternPredicate, 135, // (Subtarget->hasCDI()) && (!Subtarget->hasVLX())
/*115052*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*115058*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*115061*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*115070*/          OPC_EmitNode1, TARGET_VAL(X86::VPLZCNTDZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*115077*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*115080*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 4, 5, 
                    // Src: (ctlz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VPLZCNTDZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*115088*/        0, /*End of Scope*/
/*115089*/      0, // EndSwitchType
/*115090*/    0, /*End of Scope*/
/*115091*/  /*SwitchOpcode*/ 126, TARGET_VAL(ISD::CTTZ),// ->115220
/*115094*/    OPC_Scope, 83, /*->115179*/ // 2 children in Scope
/*115096*/      OPC_MoveChild0,
/*115097*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*115100*/      OPC_RecordMemRef,
/*115101*/      OPC_RecordNode, // #0 = 'ld' chained node
/*115102*/      OPC_RecordChild1, // #1 = $src
/*115103*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*115105*/      OPC_Scope, 23, /*->115130*/ // 3 children in Scope
/*115107*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*115109*/        OPC_MoveParent,
/*115110*/        OPC_CheckType, MVT::i16,
/*115112*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*115114*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*115117*/        OPC_EmitMergeInputChains1_0,
/*115118*/        OPC_MorphNodeTo2, TARGET_VAL(X86::TZCNT16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115130*/      /*Scope*/ 23, /*->115154*/
/*115131*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*115133*/        OPC_MoveParent,
/*115134*/        OPC_CheckType, MVT::i32,
/*115136*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*115138*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*115141*/        OPC_EmitMergeInputChains1_0,
/*115142*/        OPC_MorphNodeTo2, TARGET_VAL(X86::TZCNT32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115154*/      /*Scope*/ 23, /*->115178*/
/*115155*/        OPC_CheckPredicate, 9, // Predicate_load
/*115157*/        OPC_MoveParent,
/*115158*/        OPC_CheckType, MVT::i64,
/*115160*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*115162*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*115165*/        OPC_EmitMergeInputChains1_0,
/*115166*/        OPC_MorphNodeTo2, TARGET_VAL(X86::TZCNT64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115178*/      0, /*End of Scope*/
/*115179*/    /*Scope*/ 39, /*->115219*/
/*115180*/      OPC_RecordChild0, // #0 = $src
/*115181*/      OPC_SwitchType /*3 cases */, 10, MVT::i16,// ->115194
/*115184*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*115186*/        OPC_MorphNodeTo2, TARGET_VAL(X86::TZCNT16rr), 0,
                      MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (cttz:{ *:[i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                  // Dst: (TZCNT16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
/*115194*/      /*SwitchType*/ 10, MVT::i32,// ->115206
/*115196*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*115198*/        OPC_MorphNodeTo2, TARGET_VAL(X86::TZCNT32rr), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (cttz:{ *:[i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (TZCNT32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*115206*/      /*SwitchType*/ 10, MVT::i64,// ->115218
/*115208*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*115210*/        OPC_MorphNodeTo2, TARGET_VAL(X86::TZCNT64rr), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (cttz:{ *:[i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                  // Dst: (TZCNT64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*115218*/      0, // EndSwitchType
/*115219*/    0, /*End of Scope*/
/*115220*/  /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(X86ISD::OR),// ->115697
/*115224*/    OPC_Scope, 105, /*->115331*/ // 3 children in Scope
/*115226*/      OPC_RecordChild0, // #0 = $src1
/*115227*/      OPC_MoveChild1,
/*115228*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*115231*/      OPC_RecordMemRef,
/*115232*/      OPC_RecordNode, // #1 = 'ld' chained node
/*115233*/      OPC_CheckFoldableChainNode,
/*115234*/      OPC_RecordChild1, // #2 = $src2
/*115235*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*115237*/      OPC_Scope, 22, /*->115261*/ // 4 children in Scope
/*115239*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*115241*/        OPC_MoveParent,
/*115242*/        OPC_CheckType, MVT::i8,
/*115244*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115247*/        OPC_EmitMergeInputChains1_1,
/*115248*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>) - Complexity = 25
                  // Dst: (OR8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*115261*/      /*Scope*/ 22, /*->115284*/
/*115262*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*115264*/        OPC_MoveParent,
/*115265*/        OPC_CheckType, MVT::i16,
/*115267*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115270*/        OPC_EmitMergeInputChains1_1,
/*115271*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115284*/      /*Scope*/ 22, /*->115307*/
/*115285*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*115287*/        OPC_MoveParent,
/*115288*/        OPC_CheckType, MVT::i32,
/*115290*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115293*/        OPC_EmitMergeInputChains1_1,
/*115294*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115307*/      /*Scope*/ 22, /*->115330*/
/*115308*/        OPC_CheckPredicate, 9, // Predicate_load
/*115310*/        OPC_MoveParent,
/*115311*/        OPC_CheckType, MVT::i64,
/*115313*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115316*/        OPC_EmitMergeInputChains1_1,
/*115317*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115330*/      0, /*End of Scope*/
/*115331*/    /*Scope*/ 108, /*->115440*/
/*115332*/      OPC_MoveChild0,
/*115333*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*115336*/      OPC_RecordMemRef,
/*115337*/      OPC_RecordNode, // #0 = 'ld' chained node
/*115338*/      OPC_CheckFoldableChainNode,
/*115339*/      OPC_RecordChild1, // #1 = $src2
/*115340*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*115342*/      OPC_Scope, 23, /*->115367*/ // 4 children in Scope
/*115344*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*115346*/        OPC_MoveParent,
/*115347*/        OPC_RecordChild1, // #2 = $src1
/*115348*/        OPC_CheckType, MVT::i8,
/*115350*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115353*/        OPC_EmitMergeInputChains1_0,
/*115354*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>, GR8:{ *:[i8] }:$src1) - Complexity = 25
                  // Dst: (OR8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*115367*/      /*Scope*/ 23, /*->115391*/
/*115368*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*115370*/        OPC_MoveParent,
/*115371*/        OPC_RecordChild1, // #2 = $src1
/*115372*/        OPC_CheckType, MVT::i16,
/*115374*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115377*/        OPC_EmitMergeInputChains1_0,
/*115378*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115391*/      /*Scope*/ 23, /*->115415*/
/*115392*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*115394*/        OPC_MoveParent,
/*115395*/        OPC_RecordChild1, // #2 = $src1
/*115396*/        OPC_CheckType, MVT::i32,
/*115398*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115401*/        OPC_EmitMergeInputChains1_0,
/*115402*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115415*/      /*Scope*/ 23, /*->115439*/
/*115416*/        OPC_CheckPredicate, 9, // Predicate_load
/*115418*/        OPC_MoveParent,
/*115419*/        OPC_RecordChild1, // #2 = $src1
/*115420*/        OPC_CheckType, MVT::i64,
/*115422*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115425*/        OPC_EmitMergeInputChains1_0,
/*115426*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115439*/      0, /*End of Scope*/
/*115440*/    /*Scope*/ 126|128,1/*254*/, /*->115696*/
/*115442*/      OPC_RecordChild0, // #0 = $src1
/*115443*/      OPC_Scope, 12|128,1/*140*/, /*->115586*/ // 3 children in Scope
/*115446*/        OPC_RecordChild1, // #1 = $src2
/*115447*/        OPC_MoveChild1,
/*115448*/        OPC_Scope, 81, /*->115531*/ // 4 children in Scope
/*115450*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*115453*/          OPC_Scope, 18, /*->115473*/ // 4 children in Scope
/*115455*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*115457*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*115459*/            OPC_MoveParent,
/*115460*/            OPC_CheckType, MVT::i16,
/*115462*/            OPC_EmitConvertToTarget, 1,
/*115464*/            OPC_MorphNodeTo2, TARGET_VAL(X86::OR16ri8), 0,
                          MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86or_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>><<P:Predicate_i16immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (OR16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/*115473*/          /*Scope*/ 18, /*->115492*/
/*115474*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*115476*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*115478*/            OPC_MoveParent,
/*115479*/            OPC_CheckType, MVT::i32,
/*115481*/            OPC_EmitConvertToTarget, 1,
/*115483*/            OPC_MorphNodeTo2, TARGET_VAL(X86::OR32ri8), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>><<P:Predicate_i32immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (OR32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/*115492*/          /*Scope*/ 18, /*->115511*/
/*115493*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*115495*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*115497*/            OPC_MoveParent,
/*115498*/            OPC_CheckType, MVT::i64,
/*115500*/            OPC_EmitConvertToTarget, 1,
/*115502*/            OPC_MorphNodeTo2, TARGET_VAL(X86::OR64ri8), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>><<P:Predicate_i64immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (OR64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*115511*/          /*Scope*/ 18, /*->115530*/
/*115512*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*115514*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*115516*/            OPC_MoveParent,
/*115517*/            OPC_CheckType, MVT::i64,
/*115519*/            OPC_EmitConvertToTarget, 1,
/*115521*/            OPC_MorphNodeTo2, TARGET_VAL(X86::OR64ri32), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>><<P:Predicate_i64immSExt32_su>>:$src2) - Complexity = 7
                      // Dst: (OR64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*115530*/          0, /*End of Scope*/
/*115531*/        /*Scope*/ 17, /*->115549*/
/*115532*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/*115534*/          OPC_MoveParent,
/*115535*/          OPC_CheckType, MVT::i8,
/*115537*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*115540*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86or_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2) - Complexity = 6
                    // Dst: (OR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/*115549*/        /*Scope*/ 17, /*->115567*/
/*115550*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/*115552*/          OPC_MoveParent,
/*115553*/          OPC_CheckType, MVT::i16,
/*115555*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*115558*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86or_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2) - Complexity = 6
                    // Dst: (OR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/*115567*/        /*Scope*/ 17, /*->115585*/
/*115568*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/*115570*/          OPC_MoveParent,
/*115571*/          OPC_CheckType, MVT::i32,
/*115573*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*115576*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2) - Complexity = 6
                    // Dst: (OR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/*115585*/        0, /*End of Scope*/
/*115586*/      /*Scope*/ 60, /*->115647*/
/*115587*/        OPC_MoveChild0,
/*115588*/        OPC_Scope, 18, /*->115608*/ // 3 children in Scope
/*115590*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/*115592*/          OPC_MoveParent,
/*115593*/          OPC_RecordChild1, // #1 = $src1
/*115594*/          OPC_CheckType, MVT::i8,
/*115596*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*115599*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86or_flag:{ *:[i8] }:{ *:[i32] } relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2, GR8:{ *:[i8] }:$src1) - Complexity = 6
                    // Dst: (OR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/*115608*/        /*Scope*/ 18, /*->115627*/
/*115609*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/*115611*/          OPC_MoveParent,
/*115612*/          OPC_RecordChild1, // #1 = $src1
/*115613*/          OPC_CheckType, MVT::i16,
/*115615*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*115618*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86or_flag:{ *:[i16] }:{ *:[i32] } relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2, GR16:{ *:[i16] }:$src1) - Complexity = 6
                    // Dst: (OR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/*115627*/        /*Scope*/ 18, /*->115646*/
/*115628*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/*115630*/          OPC_MoveParent,
/*115631*/          OPC_RecordChild1, // #1 = $src1
/*115632*/          OPC_CheckType, MVT::i32,
/*115634*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*115637*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2, GR32:{ *:[i32] }:$src1) - Complexity = 6
                    // Dst: (OR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/*115646*/        0, /*End of Scope*/
/*115647*/      /*Scope*/ 47, /*->115695*/
/*115648*/        OPC_RecordChild1, // #1 = $src2
/*115649*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->115661
/*115652*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR8rr), 0,
                        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)
/*115661*/        /*SwitchType*/ 9, MVT::i16,// ->115672
/*115663*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR16rr), 0,
                        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)
/*115672*/        /*SwitchType*/ 9, MVT::i32,// ->115683
/*115674*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR32rr), 0,
                        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)
/*115683*/        /*SwitchType*/ 9, MVT::i64,// ->115694
/*115685*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR64rr), 0,
                        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)
/*115694*/        0, // EndSwitchType
/*115695*/      0, /*End of Scope*/
/*115696*/    0, /*End of Scope*/
/*115697*/  /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(X86ISD::XOR),// ->116174
/*115701*/    OPC_Scope, 105, /*->115808*/ // 3 children in Scope
/*115703*/      OPC_RecordChild0, // #0 = $src1
/*115704*/      OPC_MoveChild1,
/*115705*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*115708*/      OPC_RecordMemRef,
/*115709*/      OPC_RecordNode, // #1 = 'ld' chained node
/*115710*/      OPC_CheckFoldableChainNode,
/*115711*/      OPC_RecordChild1, // #2 = $src2
/*115712*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*115714*/      OPC_Scope, 22, /*->115738*/ // 4 children in Scope
/*115716*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*115718*/        OPC_MoveParent,
/*115719*/        OPC_CheckType, MVT::i8,
/*115721*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115724*/        OPC_EmitMergeInputChains1_1,
/*115725*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>) - Complexity = 25
                  // Dst: (XOR8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*115738*/      /*Scope*/ 22, /*->115761*/
/*115739*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*115741*/        OPC_MoveParent,
/*115742*/        OPC_CheckType, MVT::i16,
/*115744*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115747*/        OPC_EmitMergeInputChains1_1,
/*115748*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115761*/      /*Scope*/ 22, /*->115784*/
/*115762*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*115764*/        OPC_MoveParent,
/*115765*/        OPC_CheckType, MVT::i32,
/*115767*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115770*/        OPC_EmitMergeInputChains1_1,
/*115771*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115784*/      /*Scope*/ 22, /*->115807*/
/*115785*/        OPC_CheckPredicate, 9, // Predicate_load
/*115787*/        OPC_MoveParent,
/*115788*/        OPC_CheckType, MVT::i64,
/*115790*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115793*/        OPC_EmitMergeInputChains1_1,
/*115794*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115807*/      0, /*End of Scope*/
/*115808*/    /*Scope*/ 108, /*->115917*/
/*115809*/      OPC_MoveChild0,
/*115810*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*115813*/      OPC_RecordMemRef,
/*115814*/      OPC_RecordNode, // #0 = 'ld' chained node
/*115815*/      OPC_CheckFoldableChainNode,
/*115816*/      OPC_RecordChild1, // #1 = $src2
/*115817*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*115819*/      OPC_Scope, 23, /*->115844*/ // 4 children in Scope
/*115821*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*115823*/        OPC_MoveParent,
/*115824*/        OPC_RecordChild1, // #2 = $src1
/*115825*/        OPC_CheckType, MVT::i8,
/*115827*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115830*/        OPC_EmitMergeInputChains1_0,
/*115831*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>, GR8:{ *:[i8] }:$src1) - Complexity = 25
                  // Dst: (XOR8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*115844*/      /*Scope*/ 23, /*->115868*/
/*115845*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*115847*/        OPC_MoveParent,
/*115848*/        OPC_RecordChild1, // #2 = $src1
/*115849*/        OPC_CheckType, MVT::i16,
/*115851*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115854*/        OPC_EmitMergeInputChains1_0,
/*115855*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115868*/      /*Scope*/ 23, /*->115892*/
/*115869*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*115871*/        OPC_MoveParent,
/*115872*/        OPC_RecordChild1, // #2 = $src1
/*115873*/        OPC_CheckType, MVT::i32,
/*115875*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115878*/        OPC_EmitMergeInputChains1_0,
/*115879*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115892*/      /*Scope*/ 23, /*->115916*/
/*115893*/        OPC_CheckPredicate, 9, // Predicate_load
/*115895*/        OPC_MoveParent,
/*115896*/        OPC_RecordChild1, // #2 = $src1
/*115897*/        OPC_CheckType, MVT::i64,
/*115899*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*115902*/        OPC_EmitMergeInputChains1_0,
/*115903*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*115916*/      0, /*End of Scope*/
/*115917*/    /*Scope*/ 126|128,1/*254*/, /*->116173*/
/*115919*/      OPC_RecordChild0, // #0 = $src1
/*115920*/      OPC_Scope, 12|128,1/*140*/, /*->116063*/ // 3 children in Scope
/*115923*/        OPC_RecordChild1, // #1 = $src2
/*115924*/        OPC_MoveChild1,
/*115925*/        OPC_Scope, 81, /*->116008*/ // 4 children in Scope
/*115927*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*115930*/          OPC_Scope, 18, /*->115950*/ // 4 children in Scope
/*115932*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*115934*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*115936*/            OPC_MoveParent,
/*115937*/            OPC_CheckType, MVT::i16,
/*115939*/            OPC_EmitConvertToTarget, 1,
/*115941*/            OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16ri8), 0,
                          MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86xor_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>><<P:Predicate_i16immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (XOR16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/*115950*/          /*Scope*/ 18, /*->115969*/
/*115951*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*115953*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*115955*/            OPC_MoveParent,
/*115956*/            OPC_CheckType, MVT::i32,
/*115958*/            OPC_EmitConvertToTarget, 1,
/*115960*/            OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32ri8), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86xor_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>><<P:Predicate_i32immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (XOR32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/*115969*/          /*Scope*/ 18, /*->115988*/
/*115970*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*115972*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*115974*/            OPC_MoveParent,
/*115975*/            OPC_CheckType, MVT::i64,
/*115977*/            OPC_EmitConvertToTarget, 1,
/*115979*/            OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64ri8), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86xor_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>><<P:Predicate_i64immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (XOR64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*115988*/          /*Scope*/ 18, /*->116007*/
/*115989*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*115991*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*115993*/            OPC_MoveParent,
/*115994*/            OPC_CheckType, MVT::i64,
/*115996*/            OPC_EmitConvertToTarget, 1,
/*115998*/            OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64ri32), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86xor_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>><<P:Predicate_i64immSExt32_su>>:$src2) - Complexity = 7
                      // Dst: (XOR64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*116007*/          0, /*End of Scope*/
/*116008*/        /*Scope*/ 17, /*->116026*/
/*116009*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/*116011*/          OPC_MoveParent,
/*116012*/          OPC_CheckType, MVT::i8,
/*116014*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*116017*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86xor_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2) - Complexity = 6
                    // Dst: (XOR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/*116026*/        /*Scope*/ 17, /*->116044*/
/*116027*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/*116029*/          OPC_MoveParent,
/*116030*/          OPC_CheckType, MVT::i16,
/*116032*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*116035*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86xor_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2) - Complexity = 6
                    // Dst: (XOR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/*116044*/        /*Scope*/ 17, /*->116062*/
/*116045*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/*116047*/          OPC_MoveParent,
/*116048*/          OPC_CheckType, MVT::i32,
/*116050*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*116053*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86xor_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2) - Complexity = 6
                    // Dst: (XOR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/*116062*/        0, /*End of Scope*/
/*116063*/      /*Scope*/ 60, /*->116124*/
/*116064*/        OPC_MoveChild0,
/*116065*/        OPC_Scope, 18, /*->116085*/ // 3 children in Scope
/*116067*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/*116069*/          OPC_MoveParent,
/*116070*/          OPC_RecordChild1, // #1 = $src1
/*116071*/          OPC_CheckType, MVT::i8,
/*116073*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*116076*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86xor_flag:{ *:[i8] }:{ *:[i32] } relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2, GR8:{ *:[i8] }:$src1) - Complexity = 6
                    // Dst: (XOR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/*116085*/        /*Scope*/ 18, /*->116104*/
/*116086*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/*116088*/          OPC_MoveParent,
/*116089*/          OPC_RecordChild1, // #1 = $src1
/*116090*/          OPC_CheckType, MVT::i16,
/*116092*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*116095*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86xor_flag:{ *:[i16] }:{ *:[i32] } relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2, GR16:{ *:[i16] }:$src1) - Complexity = 6
                    // Dst: (XOR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/*116104*/        /*Scope*/ 18, /*->116123*/
/*116105*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/*116107*/          OPC_MoveParent,
/*116108*/          OPC_RecordChild1, // #1 = $src1
/*116109*/          OPC_CheckType, MVT::i32,
/*116111*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*116114*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86xor_flag:{ *:[i32] }:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2, GR32:{ *:[i32] }:$src1) - Complexity = 6
                    // Dst: (XOR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/*116123*/        0, /*End of Scope*/
/*116124*/      /*Scope*/ 47, /*->116172*/
/*116125*/        OPC_RecordChild1, // #1 = $src2
/*116126*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->116138
/*116129*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR8rr), 0,
                        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)
/*116138*/        /*SwitchType*/ 9, MVT::i16,// ->116149
/*116140*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16rr), 0,
                        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)
/*116149*/        /*SwitchType*/ 9, MVT::i32,// ->116160
/*116151*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32rr), 0,
                        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)
/*116160*/        /*SwitchType*/ 9, MVT::i64,// ->116171
/*116162*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64rr), 0,
                        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)
/*116171*/        0, // EndSwitchType
/*116172*/      0, /*End of Scope*/
/*116173*/    0, /*End of Scope*/
/*116174*/  /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(X86ISD::ADD),// ->116651
/*116178*/    OPC_Scope, 105, /*->116285*/ // 3 children in Scope
/*116180*/      OPC_RecordChild0, // #0 = $src1
/*116181*/      OPC_MoveChild1,
/*116182*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*116185*/      OPC_RecordMemRef,
/*116186*/      OPC_RecordNode, // #1 = 'ld' chained node
/*116187*/      OPC_CheckFoldableChainNode,
/*116188*/      OPC_RecordChild1, // #2 = $src2
/*116189*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*116191*/      OPC_Scope, 22, /*->116215*/ // 4 children in Scope
/*116193*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*116195*/        OPC_MoveParent,
/*116196*/        OPC_CheckType, MVT::i8,
/*116198*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116201*/        OPC_EmitMergeInputChains1_1,
/*116202*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>) - Complexity = 25
                  // Dst: (ADD8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*116215*/      /*Scope*/ 22, /*->116238*/
/*116216*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*116218*/        OPC_MoveParent,
/*116219*/        OPC_CheckType, MVT::i16,
/*116221*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116224*/        OPC_EmitMergeInputChains1_1,
/*116225*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*116238*/      /*Scope*/ 22, /*->116261*/
/*116239*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*116241*/        OPC_MoveParent,
/*116242*/        OPC_CheckType, MVT::i32,
/*116244*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116247*/        OPC_EmitMergeInputChains1_1,
/*116248*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*116261*/      /*Scope*/ 22, /*->116284*/
/*116262*/        OPC_CheckPredicate, 9, // Predicate_load
/*116264*/        OPC_MoveParent,
/*116265*/        OPC_CheckType, MVT::i64,
/*116267*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116270*/        OPC_EmitMergeInputChains1_1,
/*116271*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*116284*/      0, /*End of Scope*/
/*116285*/    /*Scope*/ 108, /*->116394*/
/*116286*/      OPC_MoveChild0,
/*116287*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*116290*/      OPC_RecordMemRef,
/*116291*/      OPC_RecordNode, // #0 = 'ld' chained node
/*116292*/      OPC_CheckFoldableChainNode,
/*116293*/      OPC_RecordChild1, // #1 = $src2
/*116294*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*116296*/      OPC_Scope, 23, /*->116321*/ // 4 children in Scope
/*116298*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*116300*/        OPC_MoveParent,
/*116301*/        OPC_RecordChild1, // #2 = $src1
/*116302*/        OPC_CheckType, MVT::i8,
/*116304*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116307*/        OPC_EmitMergeInputChains1_0,
/*116308*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>, GR8:{ *:[i8] }:$src1) - Complexity = 25
                  // Dst: (ADD8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*116321*/      /*Scope*/ 23, /*->116345*/
/*116322*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*116324*/        OPC_MoveParent,
/*116325*/        OPC_RecordChild1, // #2 = $src1
/*116326*/        OPC_CheckType, MVT::i16,
/*116328*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116331*/        OPC_EmitMergeInputChains1_0,
/*116332*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*116345*/      /*Scope*/ 23, /*->116369*/
/*116346*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*116348*/        OPC_MoveParent,
/*116349*/        OPC_RecordChild1, // #2 = $src1
/*116350*/        OPC_CheckType, MVT::i32,
/*116352*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116355*/        OPC_EmitMergeInputChains1_0,
/*116356*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*116369*/      /*Scope*/ 23, /*->116393*/
/*116370*/        OPC_CheckPredicate, 9, // Predicate_load
/*116372*/        OPC_MoveParent,
/*116373*/        OPC_RecordChild1, // #2 = $src1
/*116374*/        OPC_CheckType, MVT::i64,
/*116376*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116379*/        OPC_EmitMergeInputChains1_0,
/*116380*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*116393*/      0, /*End of Scope*/
/*116394*/    /*Scope*/ 126|128,1/*254*/, /*->116650*/
/*116396*/      OPC_RecordChild0, // #0 = $src1
/*116397*/      OPC_Scope, 12|128,1/*140*/, /*->116540*/ // 3 children in Scope
/*116400*/        OPC_RecordChild1, // #1 = $src2
/*116401*/        OPC_MoveChild1,
/*116402*/        OPC_Scope, 81, /*->116485*/ // 4 children in Scope
/*116404*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*116407*/          OPC_Scope, 18, /*->116427*/ // 4 children in Scope
/*116409*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*116411*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*116413*/            OPC_MoveParent,
/*116414*/            OPC_CheckType, MVT::i16,
/*116416*/            OPC_EmitConvertToTarget, 1,
/*116418*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16ri8), 0,
                          MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86add_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>><<P:Predicate_i16immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (ADD16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/*116427*/          /*Scope*/ 18, /*->116446*/
/*116428*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*116430*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*116432*/            OPC_MoveParent,
/*116433*/            OPC_CheckType, MVT::i32,
/*116435*/            OPC_EmitConvertToTarget, 1,
/*116437*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32ri8), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86add_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>><<P:Predicate_i32immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (ADD32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/*116446*/          /*Scope*/ 18, /*->116465*/
/*116447*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*116449*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*116451*/            OPC_MoveParent,
/*116452*/            OPC_CheckType, MVT::i64,
/*116454*/            OPC_EmitConvertToTarget, 1,
/*116456*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64ri8), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86add_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>><<P:Predicate_i64immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (ADD64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*116465*/          /*Scope*/ 18, /*->116484*/
/*116466*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*116468*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*116470*/            OPC_MoveParent,
/*116471*/            OPC_CheckType, MVT::i64,
/*116473*/            OPC_EmitConvertToTarget, 1,
/*116475*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64ri32), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86add_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>><<P:Predicate_i64immSExt32_su>>:$src2) - Complexity = 7
                      // Dst: (ADD64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*116484*/          0, /*End of Scope*/
/*116485*/        /*Scope*/ 17, /*->116503*/
/*116486*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/*116488*/          OPC_MoveParent,
/*116489*/          OPC_CheckType, MVT::i8,
/*116491*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*116494*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86add_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2) - Complexity = 6
                    // Dst: (ADD8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/*116503*/        /*Scope*/ 17, /*->116521*/
/*116504*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/*116506*/          OPC_MoveParent,
/*116507*/          OPC_CheckType, MVT::i16,
/*116509*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*116512*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86add_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2) - Complexity = 6
                    // Dst: (ADD16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/*116521*/        /*Scope*/ 17, /*->116539*/
/*116522*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/*116524*/          OPC_MoveParent,
/*116525*/          OPC_CheckType, MVT::i32,
/*116527*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*116530*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86add_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2) - Complexity = 6
                    // Dst: (ADD32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/*116539*/        0, /*End of Scope*/
/*116540*/      /*Scope*/ 60, /*->116601*/
/*116541*/        OPC_MoveChild0,
/*116542*/        OPC_Scope, 18, /*->116562*/ // 3 children in Scope
/*116544*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/*116546*/          OPC_MoveParent,
/*116547*/          OPC_RecordChild1, // #1 = $src1
/*116548*/          OPC_CheckType, MVT::i8,
/*116550*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*116553*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86add_flag:{ *:[i8] }:{ *:[i32] } relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2, GR8:{ *:[i8] }:$src1) - Complexity = 6
                    // Dst: (ADD8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/*116562*/        /*Scope*/ 18, /*->116581*/
/*116563*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/*116565*/          OPC_MoveParent,
/*116566*/          OPC_RecordChild1, // #1 = $src1
/*116567*/          OPC_CheckType, MVT::i16,
/*116569*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*116572*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86add_flag:{ *:[i16] }:{ *:[i32] } relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2, GR16:{ *:[i16] }:$src1) - Complexity = 6
                    // Dst: (ADD16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/*116581*/        /*Scope*/ 18, /*->116600*/
/*116582*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/*116584*/          OPC_MoveParent,
/*116585*/          OPC_RecordChild1, // #1 = $src1
/*116586*/          OPC_CheckType, MVT::i32,
/*116588*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/*116591*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86add_flag:{ *:[i32] }:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2, GR32:{ *:[i32] }:$src1) - Complexity = 6
                    // Dst: (ADD32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/*116600*/        0, /*End of Scope*/
/*116601*/      /*Scope*/ 47, /*->116649*/
/*116602*/        OPC_RecordChild1, // #1 = $src2
/*116603*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->116615
/*116606*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8rr), 0,
                        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)
/*116615*/        /*SwitchType*/ 9, MVT::i16,// ->116626
/*116617*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16rr), 0,
                        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)
/*116626*/        /*SwitchType*/ 9, MVT::i32,// ->116637
/*116628*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32rr), 0,
                        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)
/*116637*/        /*SwitchType*/ 9, MVT::i64,// ->116648
/*116639*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64rr), 0,
                        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)
/*116648*/        0, // EndSwitchType
/*116649*/      0, /*End of Scope*/
/*116650*/    0, /*End of Scope*/
/*116651*/  /*SwitchOpcode*/ 5|128,3/*389*/, TARGET_VAL(X86ISD::SUB),// ->117044
/*116655*/    OPC_Scope, 105, /*->116762*/ // 3 children in Scope
/*116657*/      OPC_RecordChild0, // #0 = $src1
/*116658*/      OPC_MoveChild1,
/*116659*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*116662*/      OPC_RecordMemRef,
/*116663*/      OPC_RecordNode, // #1 = 'ld' chained node
/*116664*/      OPC_CheckFoldableChainNode,
/*116665*/      OPC_RecordChild1, // #2 = $src2
/*116666*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*116668*/      OPC_Scope, 22, /*->116692*/ // 4 children in Scope
/*116670*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*116672*/        OPC_MoveParent,
/*116673*/        OPC_CheckType, MVT::i8,
/*116675*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116678*/        OPC_EmitMergeInputChains1_1,
/*116679*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SUB8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>) - Complexity = 25
                  // Dst: (SUB8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*116692*/      /*Scope*/ 22, /*->116715*/
/*116693*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*116695*/        OPC_MoveParent,
/*116696*/        OPC_CheckType, MVT::i16,
/*116698*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116701*/        OPC_EmitMergeInputChains1_1,
/*116702*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SUB16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*116715*/      /*Scope*/ 22, /*->116738*/
/*116716*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*116718*/        OPC_MoveParent,
/*116719*/        OPC_CheckType, MVT::i32,
/*116721*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116724*/        OPC_EmitMergeInputChains1_1,
/*116725*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SUB32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*116738*/      /*Scope*/ 22, /*->116761*/
/*116739*/        OPC_CheckPredicate, 9, // Predicate_load
/*116741*/        OPC_MoveParent,
/*116742*/        OPC_CheckType, MVT::i64,
/*116744*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*116747*/        OPC_EmitMergeInputChains1_1,
/*116748*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*116761*/      0, /*End of Scope*/
/*116762*/    /*Scope*/ 45, /*->116808*/
/*116763*/      OPC_CheckChild0Integer, 0, 
/*116765*/      OPC_RecordChild1, // #0 = $src
/*116766*/      OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->116777
/*116769*/        OPC_MorphNodeTo2, TARGET_VAL(X86::NEG8r), 0,
                      MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86sub_flag:{ *:[i8] }:{ *:[i32] } 0:{ *:[i8] }, GR8:{ *:[i8] }:$src) - Complexity = 8
                  // Dst: (NEG8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src)
/*116777*/      /*SwitchType*/ 8, MVT::i16,// ->116787
/*116779*/        OPC_MorphNodeTo2, TARGET_VAL(X86::NEG16r), 0,
                      MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86sub_flag:{ *:[i16] }:{ *:[i32] } 0:{ *:[i16] }, GR16:{ *:[i16] }:$src) - Complexity = 8
                  // Dst: (NEG16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
/*116787*/      /*SwitchType*/ 8, MVT::i32,// ->116797
/*116789*/        OPC_MorphNodeTo2, TARGET_VAL(X86::NEG32r), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86sub_flag:{ *:[i32] }:{ *:[i32] } 0:{ *:[i32] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                  // Dst: (NEG32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*116797*/      /*SwitchType*/ 8, MVT::i64,// ->116807
/*116799*/        OPC_MorphNodeTo2, TARGET_VAL(X86::NEG64r), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86sub_flag:{ *:[i64] }:{ *:[i32] } 0:{ *:[i64] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                  // Dst: (NEG64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*116807*/      0, // EndSwitchType
/*116808*/    /*Scope*/ 105|128,1/*233*/, /*->117043*/
/*116810*/      OPC_RecordChild0, // #0 = $src1
/*116811*/      OPC_RecordChild1, // #1 = $src2
/*116812*/      OPC_Scope, 51|128,1/*179*/, /*->116994*/ // 5 children in Scope
/*116815*/        OPC_MoveChild1,
/*116816*/        OPC_Scope, 81, /*->116899*/ // 6 children in Scope
/*116818*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*116821*/          OPC_Scope, 18, /*->116841*/ // 4 children in Scope
/*116823*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*116825*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*116827*/            OPC_MoveParent,
/*116828*/            OPC_CheckType, MVT::i16,
/*116830*/            OPC_EmitConvertToTarget, 1,
/*116832*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB16ri8), 0,
                          MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86sub_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>><<P:Predicate_i16immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (SUB16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/*116841*/          /*Scope*/ 18, /*->116860*/
/*116842*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*116844*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*116846*/            OPC_MoveParent,
/*116847*/            OPC_CheckType, MVT::i32,
/*116849*/            OPC_EmitConvertToTarget, 1,
/*116851*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB32ri8), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86sub_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>><<P:Predicate_i32immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (SUB32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/*116860*/          /*Scope*/ 18, /*->116879*/
/*116861*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*116863*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*116865*/            OPC_MoveParent,
/*116866*/            OPC_CheckType, MVT::i64,
/*116868*/            OPC_EmitConvertToTarget, 1,
/*116870*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64ri8), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86sub_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>><<P:Predicate_i64immSExt8_su>>:$src2) - Complexity = 7
                      // Dst: (SUB64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*116879*/          /*Scope*/ 18, /*->116898*/
/*116880*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*116882*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*116884*/            OPC_MoveParent,
/*116885*/            OPC_CheckType, MVT::i64,
/*116887*/            OPC_EmitConvertToTarget, 1,
/*116889*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64ri32), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86sub_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>><<P:Predicate_i64immSExt32_su>>:$src2) - Complexity = 7
                      // Dst: (SUB64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*116898*/          0, /*End of Scope*/
/*116899*/        /*Scope*/ 17, /*->116917*/
/*116900*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/*116902*/          OPC_MoveParent,
/*116903*/          OPC_CheckType, MVT::i8,
/*116905*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*116908*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86sub_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2) - Complexity = 6
                    // Dst: (SUB8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/*116917*/        /*Scope*/ 17, /*->116935*/
/*116918*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/*116920*/          OPC_MoveParent,
/*116921*/          OPC_CheckType, MVT::i16,
/*116923*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*116926*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86sub_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2) - Complexity = 6
                    // Dst: (SUB16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/*116935*/        /*Scope*/ 17, /*->116953*/
/*116936*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/*116938*/          OPC_MoveParent,
/*116939*/          OPC_CheckType, MVT::i32,
/*116941*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*116944*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86sub_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2) - Complexity = 6
                    // Dst: (SUB32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/*116953*/        /*Scope*/ 19, /*->116973*/
/*116954*/          OPC_CheckPredicate, 55, // Predicate_i64relocImmSExt8
/*116956*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt8_su
/*116958*/          OPC_MoveParent,
/*116959*/          OPC_CheckType, MVT::i64,
/*116961*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*116964*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64ri8), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86sub_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt8>><<P:Predicate_i64relocImmSExt8_su>>:$src2) - Complexity = 6
                    // Dst: (SUB64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt8>><<P:Predicate_i64relocImmSExt8_su>>:$src2)
/*116973*/        /*Scope*/ 19, /*->116993*/
/*116974*/          OPC_CheckPredicate, 56, // Predicate_i64relocImmSExt32
/*116976*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32_su
/*116978*/          OPC_MoveParent,
/*116979*/          OPC_CheckType, MVT::i64,
/*116981*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*116984*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64ri32), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86sub_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2) - Complexity = 6
                    // Dst: (SUB64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2)
/*116993*/        0, /*End of Scope*/
/*116994*/      /*Scope*/ 11, /*->117006*/
/*116995*/        OPC_CheckType, MVT::i8,
/*116997*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SUB8rr), 0,
                      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)
/*117006*/      /*Scope*/ 11, /*->117018*/
/*117007*/        OPC_CheckType, MVT::i16,
/*117009*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SUB16rr), 0,
                      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)
/*117018*/      /*Scope*/ 11, /*->117030*/
/*117019*/        OPC_CheckType, MVT::i32,
/*117021*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SUB32rr), 0,
                      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)
/*117030*/      /*Scope*/ 11, /*->117042*/
/*117031*/        OPC_CheckType, MVT::i64,
/*117033*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64rr), 0,
                      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)
/*117042*/      0, /*End of Scope*/
/*117043*/    0, /*End of Scope*/
/*117044*/  /*SwitchOpcode*/ 102|128,2/*358*/, TARGET_VAL(X86ISD::SBB),// ->117406
/*117048*/    OPC_RecordChild0, // #0 = $src1
/*117049*/    OPC_Scope, 120, /*->117171*/ // 2 children in Scope
/*117051*/      OPC_MoveChild1,
/*117052*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*117055*/      OPC_RecordMemRef,
/*117056*/      OPC_RecordNode, // #1 = 'ld' chained node
/*117057*/      OPC_CheckFoldableChainNode,
/*117058*/      OPC_RecordChild1, // #2 = $src2
/*117059*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*117061*/      OPC_Scope, 26, /*->117089*/ // 4 children in Scope
/*117063*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*117065*/        OPC_MoveParent,
/*117066*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/*117067*/        OPC_CheckType, MVT::i8,
/*117069*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*117072*/        OPC_EmitMergeInputChains1_1,
/*117073*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*117076*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SBB8rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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_loadi8>>, EFLAGS:{ *:[i32] }) - Complexity = 25
                  // Dst: (SBB8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*117089*/      /*Scope*/ 26, /*->117116*/
/*117090*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*117092*/        OPC_MoveParent,
/*117093*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/*117094*/        OPC_CheckType, MVT::i16,
/*117096*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*117099*/        OPC_EmitMergeInputChains1_1,
/*117100*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*117103*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SBB16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*117116*/      /*Scope*/ 26, /*->117143*/
/*117117*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*117119*/        OPC_MoveParent,
/*117120*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/*117121*/        OPC_CheckType, MVT::i32,
/*117123*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*117126*/        OPC_EmitMergeInputChains1_1,
/*117127*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*117130*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SBB32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*117143*/      /*Scope*/ 26, /*->117170*/
/*117144*/        OPC_CheckPredicate, 9, // Predicate_load
/*117146*/        OPC_MoveParent,
/*117147*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/*117148*/        OPC_CheckType, MVT::i64,
/*117150*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*117153*/        OPC_EmitMergeInputChains1_1,
/*117154*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*117157*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SBB64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      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)
/*117170*/      0, /*End of Scope*/
/*117171*/    /*Scope*/ 104|128,1/*232*/, /*->117405*/
/*117173*/      OPC_RecordChild1, // #1 = $src2
/*117174*/      OPC_Scope, 39|128,1/*167*/, /*->117344*/ // 2 children in Scope
/*117177*/        OPC_MoveChild1,
/*117178*/        OPC_Scope, 97, /*->117277*/ // 4 children in Scope
/*117180*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*117183*/          OPC_Scope, 22, /*->117207*/ // 4 children in Scope
/*117185*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*117187*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*117189*/            OPC_MoveParent,
/*117190*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/*117191*/            OPC_CheckType, MVT::i16,
/*117193*/            OPC_EmitConvertToTarget, 1,
/*117195*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*117198*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SBB16ri8), 0|OPFL_GlueInput,
                          MVT::i16, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (X86sbb_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>><<P:Predicate_i16immSExt8_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 7
                      // Dst: (SBB16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/*117207*/          /*Scope*/ 22, /*->117230*/
/*117208*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*117210*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*117212*/            OPC_MoveParent,
/*117213*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/*117214*/            OPC_CheckType, MVT::i32,
/*117216*/            OPC_EmitConvertToTarget, 1,
/*117218*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*117221*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SBB32ri8), 0|OPFL_GlueInput,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (X86sbb_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>><<P:Predicate_i32immSExt8_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 7
                      // Dst: (SBB32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/*117230*/          /*Scope*/ 22, /*->117253*/
/*117231*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*117233*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*117235*/            OPC_MoveParent,
/*117236*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/*117237*/            OPC_CheckType, MVT::i64,
/*117239*/            OPC_EmitConvertToTarget, 1,
/*117241*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*117244*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SBB64ri8), 0|OPFL_GlueInput,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (X86sbb_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>><<P:Predicate_i64immSExt8_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 7
                      // Dst: (SBB64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*117253*/          /*Scope*/ 22, /*->117276*/
/*117254*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*117256*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt32_su
/*117258*/            OPC_MoveParent,
/*117259*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/*117260*/            OPC_CheckType, MVT::i64,
/*117262*/            OPC_EmitConvertToTarget, 1,
/*117264*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*117267*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SBB64ri32), 0|OPFL_GlueInput,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (X86sbb_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>><<P:Predicate_i64immSExt32_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 7
                      // Dst: (SBB64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/*117276*/          0, /*End of Scope*/
/*117277*/        /*Scope*/ 21, /*->117299*/
/*117278*/          OPC_CheckPredicate, 16, // Predicate_imm8_su
/*117280*/          OPC_MoveParent,
/*117281*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/*117282*/          OPC_CheckType, MVT::i8,
/*117284*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/*117287*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*117290*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SBB8ri), 0|OPFL_GlueInput,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86sbb_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }<<P:Predicate_imm8_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (SBB8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/*117299*/        /*Scope*/ 21, /*->117321*/
/*117300*/          OPC_CheckPredicate, 16, // Predicate_imm16_su
/*117302*/          OPC_MoveParent,
/*117303*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/*117304*/          OPC_CheckType, MVT::i16,
/*117306*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/*117309*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*117312*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SBB16ri), 0|OPFL_GlueInput,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86sbb_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }<<P:Predicate_imm16_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (SBB16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/*117321*/        /*Scope*/ 21, /*->117343*/
/*117322*/          OPC_CheckPredicate, 16, // Predicate_imm32_su
/*117324*/          OPC_MoveParent,
/*117325*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/*117326*/          OPC_CheckType, MVT::i32,
/*117328*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/*117331*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*117334*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SBB32ri), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86sbb_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }<<P:Predicate_imm32_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (SBB32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/*117343*/        0, /*End of Scope*/
/*117344*/      /*Scope*/ 59, /*->117404*/
/*117345*/        OPC_RecordChild2, // #2 = physreg input EFLAGS
/*117346*/        OPC_SwitchType /*4 cases */, 12, MVT::i8,// ->117361
/*117349*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*117352*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SBB8rr), 0|OPFL_GlueInput,
                        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)
/*117361*/        /*SwitchType*/ 12, MVT::i16,// ->117375
/*117363*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*117366*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SBB16rr), 0|OPFL_GlueInput,
                        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)
/*117375*/        /*SwitchType*/ 12, MVT::i32,// ->117389
/*117377*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*117380*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SBB32rr), 0|OPFL_GlueInput,
                        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)
/*117389*/        /*SwitchType*/ 12, MVT::i64,// ->117403
/*117391*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*117394*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SBB64rr), 0|OPFL_GlueInput,
                        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)
/*117403*/        0, // EndSwitchType
/*117404*/      0, /*End of Scope*/
/*117405*/    0, /*End of Scope*/
/*117406*/  /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(ISD::BRIND),// ->117538
/*117410*/    OPC_RecordNode, // #0 = 'brind' chained node
/*117411*/    OPC_Scope, 84, /*->117497*/ // 2 children in Scope
/*117413*/      OPC_MoveChild1,
/*117414*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*117417*/      OPC_RecordMemRef,
/*117418*/      OPC_RecordNode, // #1 = 'ld' chained node
/*117419*/      OPC_CheckFoldableChainNode,
/*117420*/      OPC_RecordChild1, // #2 = $dst
/*117421*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*117423*/      OPC_SwitchType /*3 cases */, 22, MVT::i16,// ->117448
/*117426*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*117428*/        OPC_MoveParent,
/*117429*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*117431*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117434*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117438*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP16m), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (brind (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                  // Dst: (JMP16m addr:{ *:[iPTR] }:$dst)
/*117448*/      /*SwitchType*/ 22, MVT::i32,// ->117472
/*117450*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*117452*/        OPC_MoveParent,
/*117453*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*117455*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117458*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117462*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP32m), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*117472*/      /*SwitchType*/ 22, MVT::i64,// ->117496
/*117474*/        OPC_CheckPredicate, 9, // Predicate_load
/*117476*/        OPC_MoveParent,
/*117477*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*117479*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117482*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117486*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP64m), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*117496*/      0, // EndSwitchType
/*117497*/    /*Scope*/ 39, /*->117537*/
/*117498*/      OPC_RecordChild1, // #1 = $dst
/*117499*/      OPC_Scope, 11, /*->117512*/ // 3 children in Scope
/*117501*/        OPC_CheckChild1Type, MVT::i16,
/*117503*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*117505*/        OPC_EmitMergeInputChains1_0,
/*117506*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP16r), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (brind GR16:{ *:[i16] }:$dst) - Complexity = 3
                  // Dst: (JMP16r GR16:{ *:[i16] }:$dst)
/*117512*/      /*Scope*/ 11, /*->117524*/
/*117513*/        OPC_CheckChild1Type, MVT::i32,
/*117515*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*117517*/        OPC_EmitMergeInputChains1_0,
/*117518*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP32r), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (brind GR32:{ *:[i32] }:$dst) - Complexity = 3
                  // Dst: (JMP32r GR32:{ *:[i32] }:$dst)
/*117524*/      /*Scope*/ 11, /*->117536*/
/*117525*/        OPC_CheckChild1Type, MVT::i64,
/*117527*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*117529*/        OPC_EmitMergeInputChains1_0,
/*117530*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP64r), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (brind GR64:{ *:[i64] }:$dst) - Complexity = 3
                  // Dst: (JMP64r GR64:{ *:[i64] }:$dst)
/*117536*/      0, /*End of Scope*/
/*117537*/    0, /*End of Scope*/
/*117538*/  /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::NT_BRIND),// ->117670
/*117542*/    OPC_RecordNode, // #0 = 'X86NoTrackBrind' chained node
/*117543*/    OPC_Scope, 84, /*->117629*/ // 2 children in Scope
/*117545*/      OPC_MoveChild1,
/*117546*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*117549*/      OPC_RecordMemRef,
/*117550*/      OPC_RecordNode, // #1 = 'ld' chained node
/*117551*/      OPC_CheckFoldableChainNode,
/*117552*/      OPC_RecordChild1, // #2 = $dst
/*117553*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*117555*/      OPC_SwitchType /*3 cases */, 22, MVT::i16,// ->117580
/*117558*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*117560*/        OPC_MoveParent,
/*117561*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*117563*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117566*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117570*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP16m_NT), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86NoTrackBrind (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                  // Dst: (JMP16m_NT addr:{ *:[iPTR] }:$dst)
/*117580*/      /*SwitchType*/ 22, MVT::i32,// ->117604
/*117582*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*117584*/        OPC_MoveParent,
/*117585*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*117587*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117590*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117594*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP32m_NT), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86NoTrackBrind (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (JMP32m_NT addr:{ *:[iPTR] }:$dst)
/*117604*/      /*SwitchType*/ 22, MVT::i64,// ->117628
/*117606*/        OPC_CheckPredicate, 9, // Predicate_load
/*117608*/        OPC_MoveParent,
/*117609*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*117611*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117614*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117618*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP64m_NT), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86NoTrackBrind (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (JMP64m_NT addr:{ *:[iPTR] }:$dst)
/*117628*/      0, // EndSwitchType
/*117629*/    /*Scope*/ 39, /*->117669*/
/*117630*/      OPC_RecordChild1, // #1 = $dst
/*117631*/      OPC_Scope, 11, /*->117644*/ // 3 children in Scope
/*117633*/        OPC_CheckChild1Type, MVT::i16,
/*117635*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*117637*/        OPC_EmitMergeInputChains1_0,
/*117638*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP16r_NT), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (X86NoTrackBrind GR16:{ *:[i16] }:$dst) - Complexity = 3
                  // Dst: (JMP16r_NT GR16:{ *:[i16] }:$dst)
/*117644*/      /*Scope*/ 11, /*->117656*/
/*117645*/        OPC_CheckChild1Type, MVT::i32,
/*117647*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*117649*/        OPC_EmitMergeInputChains1_0,
/*117650*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP32r_NT), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (X86NoTrackBrind GR32:{ *:[i32] }:$dst) - Complexity = 3
                  // Dst: (JMP32r_NT GR32:{ *:[i32] }:$dst)
/*117656*/      /*Scope*/ 11, /*->117668*/
/*117657*/        OPC_CheckChild1Type, MVT::i64,
/*117659*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*117661*/        OPC_EmitMergeInputChains1_0,
/*117662*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP64r_NT), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (X86NoTrackBrind GR64:{ *:[i64] }:$dst) - Complexity = 3
                  // Dst: (JMP64r_NT GR64:{ *:[i64] }:$dst)
/*117668*/      0, /*End of Scope*/
/*117669*/    0, /*End of Scope*/
/*117670*/  /*SwitchOpcode*/ 99|128,1/*227*/, TARGET_VAL(X86ISD::CALL),// ->117901
/*117674*/    OPC_RecordNode, // #0 = 'X86call' chained node
/*117675*/    OPC_CaptureGlueInput,
/*117676*/    OPC_Scope, 84, /*->117762*/ // 2 children in Scope
/*117678*/      OPC_MoveChild1,
/*117679*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*117682*/      OPC_RecordMemRef,
/*117683*/      OPC_RecordNode, // #1 = 'ld' chained node
/*117684*/      OPC_CheckFoldableChainNode,
/*117685*/      OPC_RecordChild1, // #2 = $dst
/*117686*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*117688*/      OPC_SwitchType /*3 cases */, 22, MVT::i16,// ->117713
/*117691*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*117693*/        OPC_MoveParent,
/*117694*/        OPC_CheckPatternPredicate, 136, // (!Subtarget->slowTwoMemOps()) && (!Subtarget->is64Bit())
/*117696*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117699*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117703*/        OPC_MorphNodeTo0, TARGET_VAL(X86::CALL16m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs|OPFL_Variadic1,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86call (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                  // Dst: (CALL16m addr:{ *:[iPTR] }:$dst)
/*117713*/      /*SwitchType*/ 22, MVT::i32,// ->117737
/*117715*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*117717*/        OPC_MoveParent,
/*117718*/        OPC_CheckPatternPredicate, 137, // (!Subtarget->slowTwoMemOps()) && (!Subtarget->is64Bit()) && (!Subtarget->useRetpoline())
/*117720*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117723*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117727*/        OPC_MorphNodeTo0, TARGET_VAL(X86::CALL32m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs|OPFL_Variadic1,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86call (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (CALL32m addr:{ *:[iPTR] }:$dst)
/*117737*/      /*SwitchType*/ 22, MVT::i64,// ->117761
/*117739*/        OPC_CheckPredicate, 9, // Predicate_load
/*117741*/        OPC_MoveParent,
/*117742*/        OPC_CheckPatternPredicate, 138, // (!Subtarget->slowTwoMemOps()) && (Subtarget->is64Bit()) && (!Subtarget->useRetpoline())
/*117744*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117747*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117751*/        OPC_MorphNodeTo0, TARGET_VAL(X86::CALL64m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs|OPFL_Variadic1,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86call (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (CALL64m addr:{ *:[iPTR] }:$dst)
/*117761*/      0, // EndSwitchType
/*117762*/    /*Scope*/ 8|128,1/*136*/, /*->117900*/
/*117764*/      OPC_RecordChild1, // #1 = $dst
/*117765*/      OPC_Scope, 70, /*->117837*/ // 4 children in Scope
/*117767*/        OPC_MoveChild1,
/*117768*/        OPC_SwitchOpcode /*3 cases */, 22, TARGET_VAL(ISD::TargetGlobalAddress),// ->117794
/*117772*/          OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->117783
/*117775*/            OPC_MoveParent,
/*117776*/            OPC_EmitMergeInputChains1_0,
/*117777*/            OPC_MorphNodeTo0, TARGET_VAL(X86::CALL64pcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                          1/*#Ops*/, 1, 
                      // Src: (X86call (tglobaladdr:{ *:[i64] }):$dst) - Complexity = 6
                      // Dst: (CALL64pcrel32 (tglobaladdr:{ *:[i64] }):$dst)
/*117783*/          /*SwitchType*/ 8, MVT::i32,// ->117793
/*117785*/            OPC_MoveParent,
/*117786*/            OPC_EmitMergeInputChains1_0,
/*117787*/            OPC_MorphNodeTo0, TARGET_VAL(X86::CALLpcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                          1/*#Ops*/, 1, 
                      // Src: (X86call (tglobaladdr:{ *:[i32] }):$dst) - Complexity = 6
                      // Dst: (CALLpcrel32 (tglobaladdr:{ *:[i32] }):$dst)
/*117793*/          0, // EndSwitchType
/*117794*/        /*SwitchOpcode*/ 22, TARGET_VAL(ISD::TargetExternalSymbol),// ->117819
/*117797*/          OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->117808
/*117800*/            OPC_MoveParent,
/*117801*/            OPC_EmitMergeInputChains1_0,
/*117802*/            OPC_MorphNodeTo0, TARGET_VAL(X86::CALL64pcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                          1/*#Ops*/, 1, 
                      // Src: (X86call (texternalsym:{ *:[i64] }):$dst) - Complexity = 6
                      // Dst: (CALL64pcrel32 (texternalsym:{ *:[i64] }):$dst)
/*117808*/          /*SwitchType*/ 8, MVT::i32,// ->117818
/*117810*/            OPC_MoveParent,
/*117811*/            OPC_EmitMergeInputChains1_0,
/*117812*/            OPC_MorphNodeTo0, TARGET_VAL(X86::CALLpcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                          1/*#Ops*/, 1, 
                      // Src: (X86call (texternalsym:{ *:[i32] }):$dst) - Complexity = 6
                      // Dst: (CALLpcrel32 (texternalsym:{ *:[i32] }):$dst)
/*117818*/          0, // EndSwitchType
/*117819*/        /*SwitchOpcode*/ 14, TARGET_VAL(ISD::Constant),// ->117836
/*117822*/          OPC_CheckType, MVT::i32,
/*117824*/          OPC_MoveParent,
/*117825*/          OPC_CheckPatternPredicate, 139, // (Subtarget->isLegalToCallImmediateAddr())
/*117827*/          OPC_EmitMergeInputChains1_0,
/*117828*/          OPC_EmitConvertToTarget, 1,
/*117830*/          OPC_MorphNodeTo0, TARGET_VAL(X86::CALLpcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                        1/*#Ops*/, 2, 
                    // Src: (X86call (imm:{ *:[i32] }):$dst) - Complexity = 6
                    // Dst: (CALLpcrel32 (imm:{ *:[i32] }):$dst)
/*117836*/        0, // EndSwitchOpcode
/*117837*/      /*Scope*/ 11, /*->117849*/
/*117838*/        OPC_CheckChild1Type, MVT::i16,
/*117840*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*117842*/        OPC_EmitMergeInputChains1_0,
/*117843*/        OPC_MorphNodeTo0, TARGET_VAL(X86::CALL16r), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (X86call GR16:{ *:[i16] }:$dst) - Complexity = 3
                  // Dst: (CALL16r GR16:{ *:[i16] }:$dst)
/*117849*/      /*Scope*/ 24, /*->117874*/
/*117850*/        OPC_CheckChild1Type, MVT::i32,
/*117852*/        OPC_Scope, 9, /*->117863*/ // 2 children in Scope
/*117854*/          OPC_CheckPatternPredicate, 118, // (!Subtarget->is64Bit()) && (!Subtarget->useRetpoline())
/*117856*/          OPC_EmitMergeInputChains1_0,
/*117857*/          OPC_MorphNodeTo0, TARGET_VAL(X86::CALL32r), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                        1/*#Ops*/, 1, 
                    // Src: (X86call GR32:{ *:[i32] }:$dst) - Complexity = 3
                    // Dst: (CALL32r GR32:{ *:[i32] }:$dst)
/*117863*/        /*Scope*/ 9, /*->117873*/
/*117864*/          OPC_CheckPatternPredicate, 120, // (!Subtarget->is64Bit()) && (Subtarget->useRetpoline())
/*117866*/          OPC_EmitMergeInputChains1_0,
/*117867*/          OPC_MorphNodeTo0, TARGET_VAL(X86::RETPOLINE_CALL32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                        1/*#Ops*/, 1, 
                    // Src: (X86call GR32:{ *:[i32] }:$dst) - Complexity = 3
                    // Dst: (RETPOLINE_CALL32 GR32:{ *:[i32] }:$dst)
/*117873*/        0, /*End of Scope*/
/*117874*/      /*Scope*/ 24, /*->117899*/
/*117875*/        OPC_CheckChild1Type, MVT::i64,
/*117877*/        OPC_Scope, 9, /*->117888*/ // 2 children in Scope
/*117879*/          OPC_CheckPatternPredicate, 114, // (Subtarget->is64Bit()) && (!Subtarget->useRetpoline())
/*117881*/          OPC_EmitMergeInputChains1_0,
/*117882*/          OPC_MorphNodeTo0, TARGET_VAL(X86::CALL64r), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                        1/*#Ops*/, 1, 
                    // Src: (X86call GR64:{ *:[i64] }:$dst) - Complexity = 3
                    // Dst: (CALL64r GR64:{ *:[i64] }:$dst)
/*117888*/        /*Scope*/ 9, /*->117898*/
/*117889*/          OPC_CheckPatternPredicate, 119, // (Subtarget->is64Bit()) && (Subtarget->useRetpoline())
/*117891*/          OPC_EmitMergeInputChains1_0,
/*117892*/          OPC_MorphNodeTo0, TARGET_VAL(X86::RETPOLINE_CALL64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                        1/*#Ops*/, 1, 
                    // Src: (X86call GR64:{ *:[i64] }:$dst) - Complexity = 3
                    // Dst: (RETPOLINE_CALL64 GR64:{ *:[i64] }:$dst)
/*117898*/        0, /*End of Scope*/
/*117899*/      0, /*End of Scope*/
/*117900*/    0, /*End of Scope*/
/*117901*/  /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::NT_CALL),// ->118034
/*117905*/    OPC_RecordNode, // #0 = 'X86NoTrackCall' chained node
/*117906*/    OPC_CaptureGlueInput,
/*117907*/    OPC_Scope, 84, /*->117993*/ // 2 children in Scope
/*117909*/      OPC_MoveChild1,
/*117910*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*117913*/      OPC_RecordMemRef,
/*117914*/      OPC_RecordNode, // #1 = 'ld' chained node
/*117915*/      OPC_CheckFoldableChainNode,
/*117916*/      OPC_RecordChild1, // #2 = $dst
/*117917*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*117919*/      OPC_SwitchType /*3 cases */, 22, MVT::i16,// ->117944
/*117922*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*117924*/        OPC_MoveParent,
/*117925*/        OPC_CheckPatternPredicate, 136, // (!Subtarget->slowTwoMemOps()) && (!Subtarget->is64Bit())
/*117927*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117930*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117934*/        OPC_MorphNodeTo0, TARGET_VAL(X86::CALL16m_NT), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs|OPFL_Variadic1,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86NoTrackCall (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                  // Dst: (CALL16m_NT addr:{ *:[iPTR] }:$dst)
/*117944*/      /*SwitchType*/ 22, MVT::i32,// ->117968
/*117946*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*117948*/        OPC_MoveParent,
/*117949*/        OPC_CheckPatternPredicate, 136, // (!Subtarget->slowTwoMemOps()) && (!Subtarget->is64Bit())
/*117951*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117954*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117958*/        OPC_MorphNodeTo0, TARGET_VAL(X86::CALL32m_NT), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs|OPFL_Variadic1,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86NoTrackCall (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (CALL32m_NT addr:{ *:[iPTR] }:$dst)
/*117968*/      /*SwitchType*/ 22, MVT::i64,// ->117992
/*117970*/        OPC_CheckPredicate, 9, // Predicate_load
/*117972*/        OPC_MoveParent,
/*117973*/        OPC_CheckPatternPredicate, 140, // (!Subtarget->slowTwoMemOps()) && (Subtarget->is64Bit())
/*117975*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*117978*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*117982*/        OPC_MorphNodeTo0, TARGET_VAL(X86::CALL64m_NT), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs|OPFL_Variadic1,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86NoTrackCall (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (CALL64m_NT addr:{ *:[iPTR] }:$dst)
/*117992*/      0, // EndSwitchType
/*117993*/    /*Scope*/ 39, /*->118033*/
/*117994*/      OPC_RecordChild1, // #1 = $dst
/*117995*/      OPC_Scope, 11, /*->118008*/ // 3 children in Scope
/*117997*/        OPC_CheckChild1Type, MVT::i16,
/*117999*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*118001*/        OPC_EmitMergeInputChains1_0,
/*118002*/        OPC_MorphNodeTo0, TARGET_VAL(X86::CALL16r_NT), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (X86NoTrackCall GR16:{ *:[i16] }:$dst) - Complexity = 3
                  // Dst: (CALL16r_NT GR16:{ *:[i16] }:$dst)
/*118008*/      /*Scope*/ 11, /*->118020*/
/*118009*/        OPC_CheckChild1Type, MVT::i32,
/*118011*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*118013*/        OPC_EmitMergeInputChains1_0,
/*118014*/        OPC_MorphNodeTo0, TARGET_VAL(X86::CALL32r_NT), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (X86NoTrackCall GR32:{ *:[i32] }:$dst) - Complexity = 3
                  // Dst: (CALL32r_NT GR32:{ *:[i32] }:$dst)
/*118020*/      /*Scope*/ 11, /*->118032*/
/*118021*/        OPC_CheckChild1Type, MVT::i64,
/*118023*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*118025*/        OPC_EmitMergeInputChains1_0,
/*118026*/        OPC_MorphNodeTo0, TARGET_VAL(X86::CALL64r_NT), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (X86NoTrackCall GR64:{ *:[i64] }:$dst) - Complexity = 3
                  // Dst: (CALL64r_NT GR64:{ *:[i64] }:$dst)
/*118032*/      0, /*End of Scope*/
/*118033*/    0, /*End of Scope*/
/*118034*/  /*SwitchOpcode*/ 32|128,8/*1056*/, TARGET_VAL(ISD::FP_TO_SINT),// ->119094
/*118038*/    OPC_Scope, 127|128,1/*255*/, /*->118296*/ // 4 children in Scope
/*118041*/      OPC_MoveChild0,
/*118042*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*118045*/      OPC_RecordMemRef,
/*118046*/      OPC_RecordNode, // #0 = 'ld' chained node
/*118047*/      OPC_RecordChild1, // #1 = $src
/*118048*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*118050*/      OPC_CheckPredicate, 9, // Predicate_load
/*118052*/      OPC_SwitchType /*2 cases */, 119, MVT::f32,// ->118174
/*118055*/        OPC_MoveParent,
/*118056*/        OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->118115
/*118059*/          OPC_Scope, 17, /*->118078*/ // 3 children in Scope
/*118061*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*118063*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118066*/            OPC_EmitMergeInputChains1_0,
/*118067*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*118078*/          /*Scope*/ 17, /*->118096*/
/*118079*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*118081*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118084*/            OPC_EmitMergeInputChains1_0,
/*118085*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*118096*/          /*Scope*/ 17, /*->118114*/
/*118097*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118099*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118102*/            OPC_EmitMergeInputChains1_0,
/*118103*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VCVTTSS2SIZrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/*118114*/          0, /*End of Scope*/
/*118115*/        /*SwitchType*/ 56, MVT::i64,// ->118173
/*118117*/          OPC_Scope, 17, /*->118136*/ // 3 children in Scope
/*118119*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*118121*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118124*/            OPC_EmitMergeInputChains1_0,
/*118125*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*118136*/          /*Scope*/ 17, /*->118154*/
/*118137*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*118139*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118142*/            OPC_EmitMergeInputChains1_0,
/*118143*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*118154*/          /*Scope*/ 17, /*->118172*/
/*118155*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118157*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118160*/            OPC_EmitMergeInputChains1_0,
/*118161*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VCVTTSS2SI64Zrm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/*118172*/          0, /*End of Scope*/
/*118173*/        0, // EndSwitchType
/*118174*/      /*SwitchType*/ 119, MVT::f64,// ->118295
/*118176*/        OPC_MoveParent,
/*118177*/        OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->118236
/*118180*/          OPC_Scope, 17, /*->118199*/ // 3 children in Scope
/*118182*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*118184*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118187*/            OPC_EmitMergeInputChains1_0,
/*118188*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*118199*/          /*Scope*/ 17, /*->118217*/
/*118200*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*118202*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118205*/            OPC_EmitMergeInputChains1_0,
/*118206*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*118217*/          /*Scope*/ 17, /*->118235*/
/*118218*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118220*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118223*/            OPC_EmitMergeInputChains1_0,
/*118224*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VCVTTSD2SIZrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/*118235*/          0, /*End of Scope*/
/*118236*/        /*SwitchType*/ 56, MVT::i64,// ->118294
/*118238*/          OPC_Scope, 17, /*->118257*/ // 3 children in Scope
/*118240*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*118242*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118245*/            OPC_EmitMergeInputChains1_0,
/*118246*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*118257*/          /*Scope*/ 17, /*->118275*/
/*118258*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*118260*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118263*/            OPC_EmitMergeInputChains1_0,
/*118264*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*118275*/          /*Scope*/ 17, /*->118293*/
/*118276*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118278*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118281*/            OPC_EmitMergeInputChains1_0,
/*118282*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VCVTTSD2SI64Zrm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/*118293*/          0, /*End of Scope*/
/*118294*/        0, // EndSwitchType
/*118295*/      0, // EndSwitchType
/*118296*/    /*Scope*/ 21|128,1/*149*/, /*->118447*/
/*118298*/      OPC_RecordChild0, // #0 = $src
/*118299*/      OPC_Scope, 72, /*->118373*/ // 2 children in Scope
/*118301*/        OPC_CheckChild0Type, MVT::f32,
/*118303*/        OPC_SwitchType /*2 cases */, 32, MVT::i32,// ->118338
/*118306*/          OPC_Scope, 9, /*->118317*/ // 3 children in Scope
/*118308*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*118310*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIrr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTSS2SIrr:{ *:[i32] } FR32:{ *:[f32] }:$src)
/*118317*/          /*Scope*/ 9, /*->118327*/
/*118318*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*118320*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SIrr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (CVTTSS2SIrr:{ *:[i32] } FR32:{ *:[f32] }:$src)
/*118327*/          /*Scope*/ 9, /*->118337*/
/*118328*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118330*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTSS2SIZrr:{ *:[i32] } FR32X:{ *:[f32] }:$src)
/*118337*/          0, /*End of Scope*/
/*118338*/        /*SwitchType*/ 32, MVT::i64,// ->118372
/*118340*/          OPC_Scope, 9, /*->118351*/ // 3 children in Scope
/*118342*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*118344*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64rr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTSS2SI64rr:{ *:[i64] } FR32:{ *:[f32] }:$src)
/*118351*/          /*Scope*/ 9, /*->118361*/
/*118352*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*118354*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SI64rr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (CVTTSS2SI64rr:{ *:[i64] } FR32:{ *:[f32] }:$src)
/*118361*/          /*Scope*/ 9, /*->118371*/
/*118362*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118364*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTSS2SI64Zrr:{ *:[i64] } FR32X:{ *:[f32] }:$src)
/*118371*/          0, /*End of Scope*/
/*118372*/        0, // EndSwitchType
/*118373*/      /*Scope*/ 72, /*->118446*/
/*118374*/        OPC_CheckChild0Type, MVT::f64,
/*118376*/        OPC_SwitchType /*2 cases */, 32, MVT::i32,// ->118411
/*118379*/          OPC_Scope, 9, /*->118390*/ // 3 children in Scope
/*118381*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*118383*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIrr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTSD2SIrr:{ *:[i32] } FR64:{ *:[f64] }:$src)
/*118390*/          /*Scope*/ 9, /*->118400*/
/*118391*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*118393*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SIrr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (CVTTSD2SIrr:{ *:[i32] } FR64:{ *:[f64] }:$src)
/*118400*/          /*Scope*/ 9, /*->118410*/
/*118401*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118403*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTSD2SIZrr:{ *:[i32] } FR64X:{ *:[f64] }:$src)
/*118410*/          0, /*End of Scope*/
/*118411*/        /*SwitchType*/ 32, MVT::i64,// ->118445
/*118413*/          OPC_Scope, 9, /*->118424*/ // 3 children in Scope
/*118415*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*118417*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64rr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTSD2SI64rr:{ *:[i64] } FR64:{ *:[f64] }:$src)
/*118424*/          /*Scope*/ 9, /*->118434*/
/*118425*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*118427*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SI64rr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (CVTTSD2SI64rr:{ *:[i64] } FR64:{ *:[f64] }:$src)
/*118434*/          /*Scope*/ 9, /*->118444*/
/*118435*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118437*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTSD2SI64Zrr:{ *:[i64] } FR64X:{ *:[f64] }:$src)
/*118444*/          0, /*End of Scope*/
/*118445*/        0, // EndSwitchType
/*118446*/      0, /*End of Scope*/
/*118447*/    /*Scope*/ 74|128,2/*330*/, /*->118779*/
/*118449*/      OPC_MoveChild0,
/*118450*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*118453*/      OPC_RecordMemRef,
/*118454*/      OPC_RecordNode, // #0 = 'ld' chained node
/*118455*/      OPC_RecordChild1, // #1 = $src
/*118456*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*118458*/      OPC_CheckPredicate, 9, // Predicate_load
/*118460*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*118462*/      OPC_Scope, 48, /*->118512*/ // 10 children in Scope
/*118464*/        OPC_CheckType, MVT::v4f32,
/*118466*/        OPC_Scope, 20, /*->118488*/ // 2 children in Scope
/*118468*/          OPC_MoveParent,
/*118469*/          OPC_CheckType, MVT::v4i32,
/*118471*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*118473*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118476*/          OPC_EmitMergeInputChains1_0,
/*118477*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*118488*/        /*Scope*/ 22, /*->118511*/
/*118489*/          OPC_CheckPredicate, 48, // Predicate_memop
/*118491*/          OPC_MoveParent,
/*118492*/          OPC_CheckType, MVT::v4i32,
/*118494*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*118496*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118499*/          OPC_EmitMergeInputChains1_0,
/*118500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (CVTTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*118511*/        0, /*End of Scope*/
/*118512*/      /*Scope*/ 22, /*->118535*/
/*118513*/        OPC_CheckType, MVT::v8f32,
/*118515*/        OPC_MoveParent,
/*118516*/        OPC_CheckType, MVT::v8i32,
/*118518*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*118520*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118523*/        OPC_EmitMergeInputChains1_0,
/*118524*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fp_to_sint:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VCVTTPS2DQYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*118535*/      /*Scope*/ 22, /*->118558*/
/*118536*/        OPC_CheckType, MVT::v4f64,
/*118538*/        OPC_MoveParent,
/*118539*/        OPC_CheckType, MVT::v4i32,
/*118541*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*118543*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118546*/        OPC_EmitMergeInputChains1_0,
/*118547*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>) - Complexity = 25
                  // Dst: (VCVTTPD2DQYrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*118558*/      /*Scope*/ 20, /*->118579*/
/*118559*/        OPC_MoveParent,
/*118560*/        OPC_CheckType, MVT::v16i32,
/*118562*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118564*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118567*/        OPC_EmitMergeInputChains1_0,
/*118568*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fp_to_sint:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VCVTTPS2DQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*118579*/      /*Scope*/ 43, /*->118623*/
/*118580*/        OPC_CheckType, MVT::v8f64,
/*118582*/        OPC_MoveParent,
/*118583*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->118603
/*118586*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118588*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118591*/          OPC_EmitMergeInputChains1_0,
/*118592*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPD2DQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*118603*/        /*SwitchType*/ 17, MVT::v8i64,// ->118622
/*118605*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*118607*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118610*/          OPC_EmitMergeInputChains1_0,
/*118611*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPD2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*118622*/        0, // EndSwitchType
/*118623*/      /*Scope*/ 43, /*->118667*/
/*118624*/        OPC_CheckType, MVT::v4f32,
/*118626*/        OPC_MoveParent,
/*118627*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->118647
/*118630*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*118632*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118635*/          OPC_EmitMergeInputChains1_0,
/*118636*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPS2DQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*118647*/        /*SwitchType*/ 17, MVT::v4i64,// ->118666
/*118649*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*118651*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118654*/          OPC_EmitMergeInputChains1_0,
/*118655*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPS2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*118666*/        0, // EndSwitchType
/*118667*/      /*Scope*/ 43, /*->118711*/
/*118668*/        OPC_CheckType, MVT::v8f32,
/*118670*/        OPC_MoveParent,
/*118671*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->118691
/*118674*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*118676*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118679*/          OPC_EmitMergeInputChains1_0,
/*118680*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPS2DQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*118691*/        /*SwitchType*/ 17, MVT::v8i64,// ->118710
/*118693*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*118695*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118698*/          OPC_EmitMergeInputChains1_0,
/*118699*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPS2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*118710*/        0, // EndSwitchType
/*118711*/      /*Scope*/ 22, /*->118734*/
/*118712*/        OPC_CheckType, MVT::v4f64,
/*118714*/        OPC_MoveParent,
/*118715*/        OPC_CheckType, MVT::v4i32,
/*118717*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*118719*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118722*/        OPC_EmitMergeInputChains1_0,
/*118723*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>) - Complexity = 25
                  // Dst: (VCVTTPD2DQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*118734*/      /*Scope*/ 20, /*->118755*/
/*118735*/        OPC_MoveParent,
/*118736*/        OPC_CheckType, MVT::v2i64,
/*118738*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*118740*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118743*/        OPC_EmitMergeInputChains1_0,
/*118744*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fp_to_sint:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VCVTTPD2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*118755*/      /*Scope*/ 22, /*->118778*/
/*118756*/        OPC_CheckType, MVT::v4f64,
/*118758*/        OPC_MoveParent,
/*118759*/        OPC_CheckType, MVT::v4i64,
/*118761*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*118763*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118766*/        OPC_EmitMergeInputChains1_0,
/*118767*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fp_to_sint:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VCVTTPD2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*118778*/      0, /*End of Scope*/
/*118779*/    /*Scope*/ 56|128,2/*312*/, /*->119093*/
/*118781*/      OPC_RecordChild0, // #0 = $src
/*118782*/      OPC_SwitchType /*6 cases */, 62, MVT::v4i32,// ->118847
/*118785*/        OPC_Scope, 34, /*->118821*/ // 2 children in Scope
/*118787*/          OPC_CheckChild0Type, MVT::v4f32,
/*118789*/          OPC_Scope, 9, /*->118800*/ // 3 children in Scope
/*118791*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*118793*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQrr:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src)
/*118800*/          /*Scope*/ 9, /*->118810*/
/*118801*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*118803*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPS2DQrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (CVTTPS2DQrr:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src)
/*118810*/          /*Scope*/ 9, /*->118820*/
/*118811*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*118813*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQZ128rr:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src)
/*118820*/          0, /*End of Scope*/
/*118821*/        /*Scope*/ 24, /*->118846*/
/*118822*/          OPC_CheckChild0Type, MVT::v4f64,
/*118824*/          OPC_Scope, 9, /*->118835*/ // 2 children in Scope
/*118826*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*118828*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQYrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[v4i32] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2DQYrr:{ *:[v4i32] } VR256:{ *:[v4f64] }:$src)
/*118835*/          /*Scope*/ 9, /*->118845*/
/*118836*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*118838*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2DQZ256rr:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src)
/*118845*/          0, /*End of Scope*/
/*118846*/        0, /*End of Scope*/
/*118847*/      /*SwitchType*/ 39, MVT::v8i32,// ->118888
/*118849*/        OPC_Scope, 24, /*->118875*/ // 2 children in Scope
/*118851*/          OPC_CheckChild0Type, MVT::v8f32,
/*118853*/          OPC_Scope, 9, /*->118864*/ // 2 children in Scope
/*118855*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*118857*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQYrr:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src)
/*118864*/          /*Scope*/ 9, /*->118874*/
/*118865*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*118867*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQZ256rr:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src)
/*118874*/          0, /*End of Scope*/
/*118875*/        /*Scope*/ 11, /*->118887*/
/*118876*/          OPC_CheckChild0Type, MVT::v8f64,
/*118878*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118880*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2DQZrr:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*118887*/        0, /*End of Scope*/
/*118888*/      /*SwitchType*/ 9, MVT::v16i32,// ->118899
/*118890*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118892*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (fp_to_sint:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VCVTTPS2DQZrr:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*118899*/      /*SwitchType*/ 26, MVT::v8i64,// ->118927
/*118901*/        OPC_Scope, 11, /*->118914*/ // 2 children in Scope
/*118903*/          OPC_CheckChild0Type, MVT::v8f32,
/*118905*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*118907*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2QQZrr:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*118914*/        /*Scope*/ 11, /*->118926*/
/*118915*/          OPC_CheckChild0Type, MVT::v8f64,
/*118917*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*118919*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2QQZrr:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*118926*/        0, /*End of Scope*/
/*118927*/      /*SwitchType*/ 110, MVT::v4i64,// ->119039
/*118929*/        OPC_Scope, 53, /*->118984*/ // 2 children in Scope
/*118931*/          OPC_CheckChild0Type, MVT::v4f32,
/*118933*/          OPC_Scope, 9, /*->118944*/ // 2 children in Scope
/*118935*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*118937*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2QQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src)
/*118944*/          /*Scope*/ 38, /*->118983*/
/*118945*/            OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*118947*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f32, 0/*#Ops*/,  // Results = #1
/*118953*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*118956*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*118965*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTTPS2QQZrr), 0,
                          MVT::v8i64, 1/*#Ops*/, 3,  // Results = #4
/*118972*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*118975*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i64, 2/*#Ops*/, 4, 5, 
                      // Src: (fp_to_sint:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VCVTTPS2QQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8f32] } (IMPLICIT_DEF:{ *:[v8f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*118983*/          0, /*End of Scope*/
/*118984*/        /*Scope*/ 53, /*->119038*/
/*118985*/          OPC_CheckChild0Type, MVT::v4f64,
/*118987*/          OPC_Scope, 9, /*->118998*/ // 2 children in Scope
/*118989*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*118991*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2QQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src)
/*118998*/          /*Scope*/ 38, /*->119037*/
/*118999*/            OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*119001*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*119007*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*119010*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*119019*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTTPD2QQZrr), 0,
                          MVT::v8i64, 1/*#Ops*/, 3,  // Results = #4
/*119026*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*119029*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i64, 2/*#Ops*/, 4, 5, 
                      // Src: (fp_to_sint:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VCVTTPD2QQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*119037*/          0, /*End of Scope*/
/*119038*/        0, /*End of Scope*/
/*119039*/      /*SwitchType*/ 51, MVT::v2i64,// ->119092
/*119041*/        OPC_Scope, 9, /*->119052*/ // 2 children in Scope
/*119043*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*119045*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2QQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*119052*/        /*Scope*/ 38, /*->119091*/
/*119053*/          OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*119055*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*119061*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*119064*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*119073*/          OPC_EmitNode1, TARGET_VAL(X86::VCVTTPD2QQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 3,  // Results = #4
/*119080*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*119083*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 4, 5, 
                    // Src: (fp_to_sint:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VCVTTPD2QQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*119091*/        0, /*End of Scope*/
/*119092*/      0, // EndSwitchType
/*119093*/    0, /*End of Scope*/
/*119094*/  /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::PTEST),// ->119242
/*119098*/    OPC_RecordChild0, // #0 = $src1
/*119099*/    OPC_Scope, 89, /*->119190*/ // 2 children in Scope
/*119101*/      OPC_CheckChild0Type, MVT::v2i64,
/*119103*/      OPC_Scope, 58, /*->119163*/ // 2 children in Scope
/*119105*/        OPC_MoveChild1,
/*119106*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*119109*/        OPC_RecordMemRef,
/*119110*/        OPC_RecordNode, // #1 = 'ld' chained node
/*119111*/        OPC_CheckFoldableChainNode,
/*119112*/        OPC_RecordChild1, // #2 = $src2
/*119113*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*119115*/        OPC_CheckPredicate, 9, // Predicate_load
/*119117*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*119119*/        OPC_Scope, 19, /*->119140*/ // 2 children in Scope
/*119121*/          OPC_MoveParent,
/*119122*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119124*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*119127*/          OPC_EmitMergeInputChains1_1,
/*119128*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86ptest:{ *:[i32] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPTESTrm:{ *:[i32] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*119140*/        /*Scope*/ 21, /*->119162*/
/*119141*/          OPC_CheckPredicate, 48, // Predicate_memop
/*119143*/          OPC_MoveParent,
/*119144*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*119146*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*119149*/          OPC_EmitMergeInputChains1_1,
/*119150*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PTESTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86ptest:{ *:[i32] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PTESTrm:{ *:[i32] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*119162*/        0, /*End of Scope*/
/*119163*/      /*Scope*/ 25, /*->119189*/
/*119164*/        OPC_RecordChild1, // #1 = $src2
/*119165*/        OPC_Scope, 10, /*->119177*/ // 2 children in Scope
/*119167*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119169*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTrr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86ptest:{ *:[i32] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPTESTrr:{ *:[i32] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*119177*/        /*Scope*/ 10, /*->119188*/
/*119178*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*119180*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PTESTrr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86ptest:{ *:[i32] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (PTESTrr:{ *:[i32] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*119188*/        0, /*End of Scope*/
/*119189*/      0, /*End of Scope*/
/*119190*/    /*Scope*/ 50, /*->119241*/
/*119191*/      OPC_CheckChild0Type, MVT::v4i64,
/*119193*/      OPC_Scope, 33, /*->119228*/ // 2 children in Scope
/*119195*/        OPC_MoveChild1,
/*119196*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*119199*/        OPC_RecordMemRef,
/*119200*/        OPC_RecordNode, // #1 = 'ld' chained node
/*119201*/        OPC_CheckFoldableChainNode,
/*119202*/        OPC_RecordChild1, // #2 = $src2
/*119203*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*119205*/        OPC_CheckPredicate, 9, // Predicate_load
/*119207*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*119209*/        OPC_MoveParent,
/*119210*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119212*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*119215*/        OPC_EmitMergeInputChains1_1,
/*119216*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>) - Complexity = 25
                  // Dst: (VPTESTYrm:{ *:[i32] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*119228*/      /*Scope*/ 11, /*->119240*/
/*119229*/        OPC_RecordChild1, // #1 = $src2
/*119230*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119232*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTYrr), 0,
                      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)
/*119240*/      0, /*End of Scope*/
/*119241*/    0, /*End of Scope*/
/*119242*/  /*SwitchOpcode*/ 79|128,1/*207*/, TARGET_VAL(X86ISD::TESTP),// ->119453
/*119246*/    OPC_RecordChild0, // #0 = $src1
/*119247*/    OPC_Scope, 50, /*->119299*/ // 4 children in Scope
/*119249*/      OPC_CheckChild0Type, MVT::v4f32,
/*119251*/      OPC_Scope, 33, /*->119286*/ // 2 children in Scope
/*119253*/        OPC_MoveChild1,
/*119254*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*119257*/        OPC_RecordMemRef,
/*119258*/        OPC_RecordNode, // #1 = 'ld' chained node
/*119259*/        OPC_CheckFoldableChainNode,
/*119260*/        OPC_RecordChild1, // #2 = $src2
/*119261*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*119263*/        OPC_CheckPredicate, 9, // Predicate_load
/*119265*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*119267*/        OPC_MoveParent,
/*119268*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119270*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*119273*/        OPC_EmitMergeInputChains1_1,
/*119274*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VTESTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>) - Complexity = 25
                  // Dst: (VTESTPSrm:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*119286*/      /*Scope*/ 11, /*->119298*/
/*119287*/        OPC_RecordChild1, // #1 = $src2
/*119288*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119290*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VTESTPSrr), 0,
                      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)
/*119298*/      0, /*End of Scope*/
/*119299*/    /*Scope*/ 50, /*->119350*/
/*119300*/      OPC_CheckChild0Type, MVT::v8f32,
/*119302*/      OPC_Scope, 33, /*->119337*/ // 2 children in Scope
/*119304*/        OPC_MoveChild1,
/*119305*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*119308*/        OPC_RecordMemRef,
/*119309*/        OPC_RecordNode, // #1 = 'ld' chained node
/*119310*/        OPC_CheckFoldableChainNode,
/*119311*/        OPC_RecordChild1, // #2 = $src2
/*119312*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*119314*/        OPC_CheckPredicate, 9, // Predicate_load
/*119316*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*119318*/        OPC_MoveParent,
/*119319*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119321*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*119324*/        OPC_EmitMergeInputChains1_1,
/*119325*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VTESTPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>) - Complexity = 25
                  // Dst: (VTESTPSYrm:{ *:[i32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*119337*/      /*Scope*/ 11, /*->119349*/
/*119338*/        OPC_RecordChild1, // #1 = $src2
/*119339*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119341*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VTESTPSYrr), 0,
                      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)
/*119349*/      0, /*End of Scope*/
/*119350*/    /*Scope*/ 50, /*->119401*/
/*119351*/      OPC_CheckChild0Type, MVT::v2f64,
/*119353*/      OPC_Scope, 33, /*->119388*/ // 2 children in Scope
/*119355*/        OPC_MoveChild1,
/*119356*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*119359*/        OPC_RecordMemRef,
/*119360*/        OPC_RecordNode, // #1 = 'ld' chained node
/*119361*/        OPC_CheckFoldableChainNode,
/*119362*/        OPC_RecordChild1, // #2 = $src2
/*119363*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*119365*/        OPC_CheckPredicate, 9, // Predicate_load
/*119367*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*119369*/        OPC_MoveParent,
/*119370*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119372*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*119375*/        OPC_EmitMergeInputChains1_1,
/*119376*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VTESTPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>) - Complexity = 25
                  // Dst: (VTESTPDrm:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*119388*/      /*Scope*/ 11, /*->119400*/
/*119389*/        OPC_RecordChild1, // #1 = $src2
/*119390*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119392*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VTESTPDrr), 0,
                      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)
/*119400*/      0, /*End of Scope*/
/*119401*/    /*Scope*/ 50, /*->119452*/
/*119402*/      OPC_CheckChild0Type, MVT::v4f64,
/*119404*/      OPC_Scope, 33, /*->119439*/ // 2 children in Scope
/*119406*/        OPC_MoveChild1,
/*119407*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*119410*/        OPC_RecordMemRef,
/*119411*/        OPC_RecordNode, // #1 = 'ld' chained node
/*119412*/        OPC_CheckFoldableChainNode,
/*119413*/        OPC_RecordChild1, // #2 = $src2
/*119414*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*119416*/        OPC_CheckPredicate, 9, // Predicate_load
/*119418*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*119420*/        OPC_MoveParent,
/*119421*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119423*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*119426*/        OPC_EmitMergeInputChains1_1,
/*119427*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VTESTPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>) - Complexity = 25
                  // Dst: (VTESTPDYrm:{ *:[i32] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*119439*/      /*Scope*/ 11, /*->119451*/
/*119440*/        OPC_RecordChild1, // #1 = $src2
/*119441*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*119443*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VTESTPDYrr), 0,
                      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)
/*119451*/      0, /*End of Scope*/
/*119452*/    0, /*End of Scope*/
/*119453*/  /*SwitchOpcode*/ 7|128,8/*1031*/, TARGET_VAL(ISD::CTPOP),// ->120488
/*119457*/    OPC_Scope, 83, /*->119542*/ // 4 children in Scope
/*119459*/      OPC_MoveChild0,
/*119460*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*119463*/      OPC_RecordMemRef,
/*119464*/      OPC_RecordNode, // #0 = 'ld' chained node
/*119465*/      OPC_RecordChild1, // #1 = $src
/*119466*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*119468*/      OPC_Scope, 23, /*->119493*/ // 3 children in Scope
/*119470*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*119472*/        OPC_MoveParent,
/*119473*/        OPC_CheckType, MVT::i16,
/*119475*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/*119477*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119480*/        OPC_EmitMergeInputChains1_0,
/*119481*/        OPC_MorphNodeTo2, TARGET_VAL(X86::POPCNT16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*119493*/      /*Scope*/ 23, /*->119517*/
/*119494*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*119496*/        OPC_MoveParent,
/*119497*/        OPC_CheckType, MVT::i32,
/*119499*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/*119501*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119504*/        OPC_EmitMergeInputChains1_0,
/*119505*/        OPC_MorphNodeTo2, TARGET_VAL(X86::POPCNT32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*119517*/      /*Scope*/ 23, /*->119541*/
/*119518*/        OPC_CheckPredicate, 9, // Predicate_load
/*119520*/        OPC_MoveParent,
/*119521*/        OPC_CheckType, MVT::i64,
/*119523*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/*119525*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119528*/        OPC_EmitMergeInputChains1_0,
/*119529*/        OPC_MorphNodeTo2, TARGET_VAL(X86::POPCNT64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*119541*/      0, /*End of Scope*/
/*119542*/    /*Scope*/ 39, /*->119582*/
/*119543*/      OPC_RecordChild0, // #0 = $src
/*119544*/      OPC_SwitchType /*3 cases */, 10, MVT::i16,// ->119557
/*119547*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/*119549*/        OPC_MorphNodeTo2, TARGET_VAL(X86::POPCNT16rr), 0,
                      MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ctpop:{ *:[i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                  // Dst: (POPCNT16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
/*119557*/      /*SwitchType*/ 10, MVT::i32,// ->119569
/*119559*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/*119561*/        OPC_MorphNodeTo2, TARGET_VAL(X86::POPCNT32rr), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ctpop:{ *:[i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (POPCNT32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*119569*/      /*SwitchType*/ 10, MVT::i64,// ->119581
/*119571*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/*119573*/        OPC_MorphNodeTo2, TARGET_VAL(X86::POPCNT64rr), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ctpop:{ *:[i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                  // Dst: (POPCNT64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*119581*/      0, // EndSwitchType
/*119582*/    /*Scope*/ 46|128,3/*430*/, /*->120014*/
/*119584*/      OPC_MoveChild0,
/*119585*/      OPC_SwitchOpcode /*3 cases */, 14|128,1/*142*/, TARGET_VAL(X86ISD::VBROADCAST),// ->119732
/*119590*/        OPC_MoveChild0,
/*119591*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*119594*/        OPC_RecordMemRef,
/*119595*/        OPC_RecordNode, // #0 = 'ld' chained node
/*119596*/        OPC_CheckFoldableChainNode,
/*119597*/        OPC_RecordChild1, // #1 = $src1
/*119598*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*119600*/        OPC_SwitchType /*2 cases */, 63, MVT::i64,// ->119666
/*119603*/          OPC_CheckPredicate, 9, // Predicate_load
/*119605*/          OPC_MoveParent,
/*119606*/          OPC_MoveParent,
/*119607*/          OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->119627
/*119610*/            OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*119612*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119615*/            OPC_EmitMergeInputChains1_0,
/*119616*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPOPCNTQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*119627*/          /*SwitchType*/ 17, MVT::v4i64,// ->119646
/*119629*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*119631*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119634*/            OPC_EmitMergeInputChains1_0,
/*119635*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPOPCNTQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*119646*/          /*SwitchType*/ 17, MVT::v2i64,// ->119665
/*119648*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*119650*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119653*/            OPC_EmitMergeInputChains1_0,
/*119654*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPOPCNTQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*119665*/          0, // EndSwitchType
/*119666*/        /*SwitchType*/ 63, MVT::i32,// ->119731
/*119668*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*119670*/          OPC_MoveParent,
/*119671*/          OPC_MoveParent,
/*119672*/          OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->119692
/*119675*/            OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*119677*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119680*/            OPC_EmitMergeInputChains1_0,
/*119681*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPOPCNTDZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*119692*/          /*SwitchType*/ 17, MVT::v8i32,// ->119711
/*119694*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*119696*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119699*/            OPC_EmitMergeInputChains1_0,
/*119700*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPOPCNTDZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*119711*/          /*SwitchType*/ 17, MVT::v4i32,// ->119730
/*119713*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*119715*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119718*/            OPC_EmitMergeInputChains1_0,
/*119719*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPOPCNTDZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*119730*/          0, // EndSwitchType
/*119731*/        0, // EndSwitchType
/*119732*/      /*SwitchOpcode*/ 77|128,1/*205*/, TARGET_VAL(ISD::BITCAST),// ->119941
/*119736*/        OPC_MoveChild0,
/*119737*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*119740*/        OPC_RecordMemRef,
/*119741*/        OPC_RecordNode, // #0 = 'ld' chained node
/*119742*/        OPC_CheckFoldableChainNode,
/*119743*/        OPC_RecordChild1, // #1 = $src1
/*119744*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*119746*/        OPC_CheckPredicate, 9, // Predicate_load
/*119748*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*119750*/        OPC_SwitchType /*3 cases */, 61, MVT::v8i64,// ->119814
/*119753*/          OPC_MoveParent,
/*119754*/          OPC_MoveParent,
/*119755*/          OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->119775
/*119758*/            OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*119760*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119763*/            OPC_EmitMergeInputChains1_0,
/*119764*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPOPCNTDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*119775*/          /*SwitchType*/ 17, MVT::v64i8,// ->119794
/*119777*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*119779*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119782*/            OPC_EmitMergeInputChains1_0,
/*119783*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPOPCNTBZrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)
/*119794*/          /*SwitchType*/ 17, MVT::v32i16,// ->119813
/*119796*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*119798*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119801*/            OPC_EmitMergeInputChains1_0,
/*119802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPOPCNTWZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)
/*119813*/          0, // EndSwitchType
/*119814*/        /*SwitchType*/ 61, MVT::v4i64,// ->119877
/*119816*/          OPC_MoveParent,
/*119817*/          OPC_MoveParent,
/*119818*/          OPC_SwitchType /*3 cases */, 17, MVT::v8i32,// ->119838
/*119821*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*119823*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119826*/            OPC_EmitMergeInputChains1_0,
/*119827*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPOPCNTDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*119838*/          /*SwitchType*/ 17, MVT::v32i8,// ->119857
/*119840*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*119842*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119845*/            OPC_EmitMergeInputChains1_0,
/*119846*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPOPCNTBZ256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)
/*119857*/          /*SwitchType*/ 17, MVT::v16i16,// ->119876
/*119859*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*119861*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119864*/            OPC_EmitMergeInputChains1_0,
/*119865*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPOPCNTWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)
/*119876*/          0, // EndSwitchType
/*119877*/        /*SwitchType*/ 61, MVT::v2i64,// ->119940
/*119879*/          OPC_MoveParent,
/*119880*/          OPC_MoveParent,
/*119881*/          OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->119901
/*119884*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*119886*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119889*/            OPC_EmitMergeInputChains1_0,
/*119890*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPOPCNTDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*119901*/          /*SwitchType*/ 17, MVT::v16i8,// ->119920
/*119903*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*119905*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119908*/            OPC_EmitMergeInputChains1_0,
/*119909*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPOPCNTBZ128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)
/*119920*/          /*SwitchType*/ 17, MVT::v8i16,// ->119939
/*119922*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*119924*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119927*/            OPC_EmitMergeInputChains1_0,
/*119928*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPOPCNTWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)
/*119939*/          0, // EndSwitchType
/*119940*/        0, // EndSwitchType
/*119941*/      /*SwitchOpcode*/ 69, TARGET_VAL(ISD::LOAD),// ->120013
/*119944*/        OPC_RecordMemRef,
/*119945*/        OPC_RecordNode, // #0 = 'ld' chained node
/*119946*/        OPC_RecordChild1, // #1 = $src1
/*119947*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*119949*/        OPC_CheckPredicate, 9, // Predicate_load
/*119951*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*119953*/        OPC_MoveParent,
/*119954*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->119974
/*119957*/          OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*119959*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119962*/          OPC_EmitMergeInputChains1_0,
/*119963*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPOPCNTQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*119974*/        /*SwitchType*/ 17, MVT::v4i64,// ->119993
/*119976*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*119978*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*119981*/          OPC_EmitMergeInputChains1_0,
/*119982*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPOPCNTQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*119993*/        /*SwitchType*/ 17, MVT::v2i64,// ->120012
/*119995*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*119997*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*120000*/          OPC_EmitMergeInputChains1_0,
/*120001*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPOPCNTQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*120012*/        0, // EndSwitchType
/*120013*/      0, // EndSwitchOpcode
/*120014*/    /*Scope*/ 87|128,3/*471*/, /*->120487*/
/*120016*/      OPC_RecordChild0, // #0 = $src1
/*120017*/      OPC_SwitchType /*12 cases */, 9, MVT::v8i64,// ->120029
/*120020*/        OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*120022*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (ctpop:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPOPCNTQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1)
/*120029*/      /*SwitchType*/ 51, MVT::v4i64,// ->120082
/*120031*/        OPC_Scope, 9, /*->120042*/ // 2 children in Scope
/*120033*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*120035*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (ctpop:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                    // Dst: (VPOPCNTQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1)
/*120042*/        /*Scope*/ 38, /*->120081*/
/*120043*/          OPC_CheckPatternPredicate, 144, // (Subtarget->hasVPOPCNTDQ()) && (!Subtarget->hasVLX())
/*120045*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*120051*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*120054*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*120063*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*120070*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*120073*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 4, 5, 
                    // Src: (ctpop:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPOPCNTQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*120081*/        0, /*End of Scope*/
/*120082*/      /*SwitchType*/ 51, MVT::v2i64,// ->120135
/*120084*/        OPC_Scope, 9, /*->120095*/ // 2 children in Scope
/*120086*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*120088*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (ctpop:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                    // Dst: (VPOPCNTQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1)
/*120095*/        /*Scope*/ 38, /*->120134*/
/*120096*/          OPC_CheckPatternPredicate, 144, // (Subtarget->hasVPOPCNTDQ()) && (!Subtarget->hasVLX())
/*120098*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*120104*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*120107*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*120116*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*120123*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*120126*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 4, 5, 
                    // Src: (ctpop:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPOPCNTQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*120134*/        0, /*End of Scope*/
/*120135*/      /*SwitchType*/ 9, MVT::v16i32,// ->120146
/*120137*/        OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*120139*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (ctpop:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                  // Dst: (VPOPCNTDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1)
/*120146*/      /*SwitchType*/ 51, MVT::v8i32,// ->120199
/*120148*/        OPC_Scope, 9, /*->120159*/ // 2 children in Scope
/*120150*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*120152*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (ctpop:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                    // Dst: (VPOPCNTDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1)
/*120159*/        /*Scope*/ 38, /*->120198*/
/*120160*/          OPC_CheckPatternPredicate, 144, // (Subtarget->hasVPOPCNTDQ()) && (!Subtarget->hasVLX())
/*120162*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*120168*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*120171*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*120180*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTDZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*120187*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*120190*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i32, 2/*#Ops*/, 4, 5, 
                    // Src: (ctpop:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VPOPCNTDZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*120198*/        0, /*End of Scope*/
/*120199*/      /*SwitchType*/ 51, MVT::v4i32,// ->120252
/*120201*/        OPC_Scope, 9, /*->120212*/ // 2 children in Scope
/*120203*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*120205*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (ctpop:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                    // Dst: (VPOPCNTDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1)
/*120212*/        /*Scope*/ 38, /*->120251*/
/*120213*/          OPC_CheckPatternPredicate, 144, // (Subtarget->hasVPOPCNTDQ()) && (!Subtarget->hasVLX())
/*120215*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*120221*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*120224*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*120233*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTDZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*120240*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*120243*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 4, 5, 
                    // Src: (ctpop:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VPOPCNTDZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*120251*/        0, /*End of Scope*/
/*120252*/      /*SwitchType*/ 9, MVT::v64i8,// ->120263
/*120254*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*120256*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZrr), 0,
                      MVT::v64i8, 1/*#Ops*/, 0, 
                  // Src: (ctpop:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1) - Complexity = 3
                  // Dst: (VPOPCNTBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1)
/*120263*/      /*SwitchType*/ 51, MVT::v32i8,// ->120316
/*120265*/        OPC_Scope, 9, /*->120276*/ // 2 children in Scope
/*120267*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*120269*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ256rr), 0,
                        MVT::v32i8, 1/*#Ops*/, 0, 
                    // Src: (ctpop:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1) - Complexity = 3
                    // Dst: (VPOPCNTBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1)
/*120276*/        /*Scope*/ 38, /*->120315*/
/*120277*/          OPC_CheckPatternPredicate, 145, // (Subtarget->hasBITALG()) && (!Subtarget->hasVLX())
/*120279*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*120285*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*120288*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*120297*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTBZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*120304*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*120307*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v32i8, 2/*#Ops*/, 4, 5, 
                    // Src: (ctpop:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v32i8] } (VPOPCNTBZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*120315*/        0, /*End of Scope*/
/*120316*/      /*SwitchType*/ 51, MVT::v16i8,// ->120369
/*120318*/        OPC_Scope, 9, /*->120329*/ // 2 children in Scope
/*120320*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*120322*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ128rr), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (ctpop:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1) - Complexity = 3
                    // Dst: (VPOPCNTBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1)
/*120329*/        /*Scope*/ 38, /*->120368*/
/*120330*/          OPC_CheckPatternPredicate, 145, // (Subtarget->hasBITALG()) && (!Subtarget->hasVLX())
/*120332*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*120338*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*120341*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*120350*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTBZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*120357*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*120360*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i8, 2/*#Ops*/, 4, 5, 
                    // Src: (ctpop:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } (VPOPCNTBZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*120368*/        0, /*End of Scope*/
/*120369*/      /*SwitchType*/ 9, MVT::v32i16,// ->120380
/*120371*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*120373*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZrr), 0,
                      MVT::v32i16, 1/*#Ops*/, 0, 
                  // Src: (ctpop:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1) - Complexity = 3
                  // Dst: (VPOPCNTWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1)
/*120380*/      /*SwitchType*/ 51, MVT::v16i16,// ->120433
/*120382*/        OPC_Scope, 9, /*->120393*/ // 2 children in Scope
/*120384*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*120386*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ256rr), 0,
                        MVT::v16i16, 1/*#Ops*/, 0, 
                    // Src: (ctpop:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1) - Complexity = 3
                    // Dst: (VPOPCNTWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1)
/*120393*/        /*Scope*/ 38, /*->120432*/
/*120394*/          OPC_CheckPatternPredicate, 145, // (Subtarget->hasBITALG()) && (!Subtarget->hasVLX())
/*120396*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*120402*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*120405*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*120414*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTWZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*120421*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*120424*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i16, 2/*#Ops*/, 4, 5, 
                    // Src: (ctpop:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v16i16] } (VPOPCNTWZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*120432*/        0, /*End of Scope*/
/*120433*/      /*SwitchType*/ 51, MVT::v8i16,// ->120486
/*120435*/        OPC_Scope, 9, /*->120446*/ // 2 children in Scope
/*120437*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*120439*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ128rr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (ctpop:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1) - Complexity = 3
                    // Dst: (VPOPCNTWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1)
/*120446*/        /*Scope*/ 38, /*->120485*/
/*120447*/          OPC_CheckPatternPredicate, 145, // (Subtarget->hasBITALG()) && (!Subtarget->hasVLX())
/*120449*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*120455*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*120458*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*120467*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTWZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*120474*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*120477*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i16, 2/*#Ops*/, 4, 5, 
                    // Src: (ctpop:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } (VPOPCNTWZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*120485*/        0, /*End of Scope*/
/*120486*/      0, // EndSwitchType
/*120487*/    0, /*End of Scope*/
/*120488*/  /*SwitchOpcode*/ 20|128,6/*788*/, TARGET_VAL(ISD::FP_TO_UINT),// ->121280
/*120492*/    OPC_Scope, 99, /*->120593*/ // 4 children in Scope
/*120494*/      OPC_MoveChild0,
/*120495*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*120498*/      OPC_RecordMemRef,
/*120499*/      OPC_RecordNode, // #0 = 'ld' chained node
/*120500*/      OPC_RecordChild1, // #1 = $src
/*120501*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*120503*/      OPC_CheckPredicate, 9, // Predicate_load
/*120505*/      OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->120549
/*120508*/        OPC_MoveParent,
/*120509*/        OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->120529
/*120512*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120514*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120517*/          OPC_EmitMergeInputChains1_0,
/*120518*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_uint:{ *:[i32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSS2USIZrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/*120529*/        /*SwitchType*/ 17, MVT::i64,// ->120548
/*120531*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120533*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120536*/          OPC_EmitMergeInputChains1_0,
/*120537*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USI64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_uint:{ *:[i64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSS2USI64Zrm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/*120548*/        0, // EndSwitchType
/*120549*/      /*SwitchType*/ 41, MVT::f64,// ->120592
/*120551*/        OPC_MoveParent,
/*120552*/        OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->120572
/*120555*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120557*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120560*/          OPC_EmitMergeInputChains1_0,
/*120561*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_uint:{ *:[i32] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSD2USIZrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/*120572*/        /*SwitchType*/ 17, MVT::i64,// ->120591
/*120574*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120576*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120579*/          OPC_EmitMergeInputChains1_0,
/*120580*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USI64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_uint:{ *:[i64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSD2USI64Zrm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/*120591*/        0, // EndSwitchType
/*120592*/      0, // EndSwitchType
/*120593*/    /*Scope*/ 57, /*->120651*/
/*120594*/      OPC_RecordChild0, // #0 = $src
/*120595*/      OPC_Scope, 26, /*->120623*/ // 2 children in Scope
/*120597*/        OPC_CheckChild0Type, MVT::f32,
/*120599*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->120611
/*120602*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120604*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USIZrr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[i32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTSS2USIZrr:{ *:[i32] } FR32X:{ *:[f32] }:$src)
/*120611*/        /*SwitchType*/ 9, MVT::i64,// ->120622
/*120613*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120615*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USI64Zrr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[i64] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTSS2USI64Zrr:{ *:[i64] } FR32X:{ *:[f32] }:$src)
/*120622*/        0, // EndSwitchType
/*120623*/      /*Scope*/ 26, /*->120650*/
/*120624*/        OPC_CheckChild0Type, MVT::f64,
/*120626*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->120638
/*120629*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120631*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USIZrr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[i32] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTSD2USIZrr:{ *:[i32] } FR64X:{ *:[f64] }:$src)
/*120638*/        /*SwitchType*/ 9, MVT::i64,// ->120649
/*120640*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120642*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USI64Zrr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[i64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTSD2USI64Zrr:{ *:[i64] } FR64X:{ *:[f64] }:$src)
/*120649*/        0, // EndSwitchType
/*120650*/      0, /*End of Scope*/
/*120651*/    /*Scope*/ 107|128,1/*235*/, /*->120888*/
/*120653*/      OPC_MoveChild0,
/*120654*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*120657*/      OPC_RecordMemRef,
/*120658*/      OPC_RecordNode, // #0 = 'ld' chained node
/*120659*/      OPC_RecordChild1, // #1 = $src
/*120660*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*120662*/      OPC_CheckPredicate, 9, // Predicate_load
/*120664*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*120666*/      OPC_Scope, 20, /*->120688*/ // 7 children in Scope
/*120668*/        OPC_MoveParent,
/*120669*/        OPC_CheckType, MVT::v16i32,
/*120671*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120673*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120676*/        OPC_EmitMergeInputChains1_0,
/*120677*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fp_to_uint:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VCVTTPS2UDQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*120688*/      /*Scope*/ 43, /*->120732*/
/*120689*/        OPC_CheckType, MVT::v8f64,
/*120691*/        OPC_MoveParent,
/*120692*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->120712
/*120695*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120697*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120700*/          OPC_EmitMergeInputChains1_0,
/*120701*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_uint:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPD2UDQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*120712*/        /*SwitchType*/ 17, MVT::v8i64,// ->120731
/*120714*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*120716*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120719*/          OPC_EmitMergeInputChains1_0,
/*120720*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_uint:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPD2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*120731*/        0, // EndSwitchType
/*120732*/      /*Scope*/ 43, /*->120776*/
/*120733*/        OPC_CheckType, MVT::v4f32,
/*120735*/        OPC_MoveParent,
/*120736*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->120756
/*120739*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*120741*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120744*/          OPC_EmitMergeInputChains1_0,
/*120745*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_uint:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPS2UDQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*120756*/        /*SwitchType*/ 17, MVT::v4i64,// ->120775
/*120758*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*120760*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120763*/          OPC_EmitMergeInputChains1_0,
/*120764*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_uint:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPS2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*120775*/        0, // EndSwitchType
/*120776*/      /*Scope*/ 43, /*->120820*/
/*120777*/        OPC_CheckType, MVT::v8f32,
/*120779*/        OPC_MoveParent,
/*120780*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->120800
/*120783*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*120785*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120788*/          OPC_EmitMergeInputChains1_0,
/*120789*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_uint:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPS2UDQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*120800*/        /*SwitchType*/ 17, MVT::v8i64,// ->120819
/*120802*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*120804*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120807*/          OPC_EmitMergeInputChains1_0,
/*120808*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_uint:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPS2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*120819*/        0, // EndSwitchType
/*120820*/      /*Scope*/ 22, /*->120843*/
/*120821*/        OPC_CheckType, MVT::v4f64,
/*120823*/        OPC_MoveParent,
/*120824*/        OPC_CheckType, MVT::v4i32,
/*120826*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*120828*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120831*/        OPC_EmitMergeInputChains1_0,
/*120832*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fp_to_uint:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VCVTTPD2UDQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*120843*/      /*Scope*/ 20, /*->120864*/
/*120844*/        OPC_MoveParent,
/*120845*/        OPC_CheckType, MVT::v2i64,
/*120847*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*120849*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120852*/        OPC_EmitMergeInputChains1_0,
/*120853*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fp_to_uint:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VCVTTPD2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*120864*/      /*Scope*/ 22, /*->120887*/
/*120865*/        OPC_CheckType, MVT::v4f64,
/*120867*/        OPC_MoveParent,
/*120868*/        OPC_CheckType, MVT::v4i64,
/*120870*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*120872*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*120875*/        OPC_EmitMergeInputChains1_0,
/*120876*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fp_to_uint:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VCVTTPD2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*120887*/      0, /*End of Scope*/
/*120888*/    /*Scope*/ 5|128,3/*389*/, /*->121279*/
/*120890*/      OPC_RecordChild0, // #0 = $src
/*120891*/      OPC_SwitchType /*6 cases */, 9, MVT::v16i32,// ->120903
/*120894*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120896*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (fp_to_uint:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VCVTTPS2UDQZrr:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*120903*/      /*SwitchType*/ 68, MVT::v8i32,// ->120973
/*120905*/        OPC_Scope, 11, /*->120918*/ // 2 children in Scope
/*120907*/          OPC_CheckChild0Type, MVT::v8f64,
/*120909*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120911*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UDQZrr:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*120918*/        /*Scope*/ 53, /*->120972*/
/*120919*/          OPC_CheckChild0Type, MVT::v8f32,
/*120921*/          OPC_Scope, 9, /*->120932*/ // 2 children in Scope
/*120923*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*120925*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2UDQZ256rr:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src)
/*120932*/          /*Scope*/ 38, /*->120971*/
/*120933*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*120935*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16f32, 0/*#Ops*/,  // Results = #1
/*120941*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*120944*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*120953*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTTPS2UDQZrr), 0,
                          MVT::v16i32, 1/*#Ops*/, 3,  // Results = #4
/*120960*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*120963*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i32, 2/*#Ops*/, 4, 5, 
                      // Src: (fp_to_uint:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VCVTTPS2UDQZrr:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*120971*/          0, /*End of Scope*/
/*120972*/        0, /*End of Scope*/
/*120973*/      /*SwitchType*/ 110, MVT::v4i32,// ->121085
/*120975*/        OPC_Scope, 53, /*->121030*/ // 2 children in Scope
/*120977*/          OPC_CheckChild0Type, MVT::v4f32,
/*120979*/          OPC_Scope, 9, /*->120990*/ // 2 children in Scope
/*120981*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*120983*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2UDQZ128rr:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src)
/*120990*/          /*Scope*/ 38, /*->121029*/
/*120991*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*120993*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16f32, 0/*#Ops*/,  // Results = #1
/*120999*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*121002*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121011*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTTPS2UDQZrr), 0,
                          MVT::v16i32, 1/*#Ops*/, 3,  // Results = #4
/*121018*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*121021*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 4, 5, 
                      // Src: (fp_to_uint:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VCVTTPS2UDQZrr:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*121029*/          0, /*End of Scope*/
/*121030*/        /*Scope*/ 53, /*->121084*/
/*121031*/          OPC_CheckChild0Type, MVT::v4f64,
/*121033*/          OPC_Scope, 9, /*->121044*/ // 2 children in Scope
/*121035*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*121037*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2UDQZ256rr:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src)
/*121044*/          /*Scope*/ 38, /*->121083*/
/*121045*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*121047*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*121053*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*121056*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121065*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTTPD2UDQZrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 3,  // Results = #4
/*121072*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*121075*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 4, 5, 
                      // Src: (fp_to_uint:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VCVTTPD2UDQZrr:{ *:[v8i32] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*121083*/          0, /*End of Scope*/
/*121084*/        0, /*End of Scope*/
/*121085*/      /*SwitchType*/ 26, MVT::v8i64,// ->121113
/*121087*/        OPC_Scope, 11, /*->121100*/ // 2 children in Scope
/*121089*/          OPC_CheckChild0Type, MVT::v8f32,
/*121091*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*121093*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2UQQZrr:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*121100*/        /*Scope*/ 11, /*->121112*/
/*121101*/          OPC_CheckChild0Type, MVT::v8f64,
/*121103*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*121105*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UQQZrr:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*121112*/        0, /*End of Scope*/
/*121113*/      /*SwitchType*/ 110, MVT::v4i64,// ->121225
/*121115*/        OPC_Scope, 53, /*->121170*/ // 2 children in Scope
/*121117*/          OPC_CheckChild0Type, MVT::v4f32,
/*121119*/          OPC_Scope, 9, /*->121130*/ // 2 children in Scope
/*121121*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*121123*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2UQQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src)
/*121130*/          /*Scope*/ 38, /*->121169*/
/*121131*/            OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*121133*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f32, 0/*#Ops*/,  // Results = #1
/*121139*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*121142*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121151*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTTPS2UQQZrr), 0,
                          MVT::v8i64, 1/*#Ops*/, 3,  // Results = #4
/*121158*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*121161*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i64, 2/*#Ops*/, 4, 5, 
                      // Src: (fp_to_uint:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VCVTTPS2UQQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8f32] } (IMPLICIT_DEF:{ *:[v8f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*121169*/          0, /*End of Scope*/
/*121170*/        /*Scope*/ 53, /*->121224*/
/*121171*/          OPC_CheckChild0Type, MVT::v4f64,
/*121173*/          OPC_Scope, 9, /*->121184*/ // 2 children in Scope
/*121175*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*121177*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2UQQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src)
/*121184*/          /*Scope*/ 38, /*->121223*/
/*121185*/            OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*121187*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*121193*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*121196*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121205*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTTPD2UQQZrr), 0,
                          MVT::v8i64, 1/*#Ops*/, 3,  // Results = #4
/*121212*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*121215*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i64, 2/*#Ops*/, 4, 5, 
                      // Src: (fp_to_uint:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VCVTTPD2UQQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*121223*/          0, /*End of Scope*/
/*121224*/        0, /*End of Scope*/
/*121225*/      /*SwitchType*/ 51, MVT::v2i64,// ->121278
/*121227*/        OPC_Scope, 9, /*->121238*/ // 2 children in Scope
/*121229*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*121231*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UQQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*121238*/        /*Scope*/ 38, /*->121277*/
/*121239*/          OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*121241*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*121247*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*121250*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121259*/          OPC_EmitNode1, TARGET_VAL(X86::VCVTTPD2UQQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 3,  // Results = #4
/*121266*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*121269*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 4, 5, 
                    // Src: (fp_to_uint:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VCVTTPD2UQQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*121277*/        0, /*End of Scope*/
/*121278*/      0, // EndSwitchType
/*121279*/    0, /*End of Scope*/
/*121280*/  /*SwitchOpcode*/ 29|128,5/*669*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->121953
/*121284*/    OPC_Scope, 33, /*->121319*/ // 4 children in Scope
/*121286*/      OPC_MoveChild0,
/*121287*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*121290*/      OPC_RecordMemRef,
/*121291*/      OPC_RecordNode, // #0 = 'ld' chained node
/*121292*/      OPC_RecordChild1, // #1 = $src
/*121293*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*121295*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/*121297*/      OPC_CheckType, MVT::i32,
/*121299*/      OPC_MoveParent,
/*121300*/      OPC_CheckType, MVT::x86mmx,
/*121302*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/*121304*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121307*/      OPC_EmitMergeInputChains1_0,
/*121308*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*121319*/    /*Scope*/ 14, /*->121334*/
/*121320*/      OPC_RecordChild0, // #0 = $src
/*121321*/      OPC_CheckChild0Type, MVT::i32,
/*121323*/      OPC_CheckType, MVT::x86mmx,
/*121325*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/*121327*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVD64rr), 0,
                    MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (scalar_to_vector:{ *:[x86mmx] } GR32:{ *:[i32] }:$src) - Complexity = 3
                // Dst: (MMX_MOVD64rr:{ *:[x86mmx] } GR32:{ *:[i32] }:$src)
/*121334*/    /*Scope*/ 32|128,1/*160*/, /*->121496*/
/*121336*/      OPC_MoveChild0,
/*121337*/      OPC_SwitchOpcode /*2 cases */, 5|128,1/*133*/, TARGET_VAL(ISD::LOAD),// ->121475
/*121342*/        OPC_RecordMemRef,
/*121343*/        OPC_RecordNode, // #0 = 'ld' chained node
/*121344*/        OPC_RecordChild1, // #1 = $src
/*121345*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*121347*/        OPC_SwitchType /*2 cases */, 61, MVT::i32,// ->121411
/*121350*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*121352*/          OPC_MoveParent,
/*121353*/          OPC_CheckType, MVT::v4i32,
/*121355*/          OPC_Scope, 17, /*->121374*/ // 3 children in Scope
/*121357*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*121359*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121362*/            OPC_EmitMergeInputChains1_0,
/*121363*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*121374*/          /*Scope*/ 17, /*->121392*/
/*121375*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*121377*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121380*/            OPC_EmitMergeInputChains1_0,
/*121381*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*121392*/          /*Scope*/ 17, /*->121410*/
/*121393*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121395*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121398*/            OPC_EmitMergeInputChains1_0,
/*121399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VMOVDI2PDIZrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*121410*/          0, /*End of Scope*/
/*121411*/        /*SwitchType*/ 61, MVT::i64,// ->121474
/*121413*/          OPC_CheckPredicate, 9, // Predicate_load
/*121415*/          OPC_MoveParent,
/*121416*/          OPC_CheckType, MVT::v2i64,
/*121418*/          OPC_Scope, 17, /*->121437*/ // 3 children in Scope
/*121420*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*121422*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121425*/            OPC_EmitMergeInputChains1_0,
/*121426*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*121437*/          /*Scope*/ 17, /*->121455*/
/*121438*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*121440*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121443*/            OPC_EmitMergeInputChains1_0,
/*121444*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*121455*/          /*Scope*/ 17, /*->121473*/
/*121456*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121458*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121461*/            OPC_EmitMergeInputChains1_0,
/*121462*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVQI2PQIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VMOVQI2PQIZrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*121473*/          0, /*End of Scope*/
/*121474*/        0, // EndSwitchType
/*121475*/      /*SwitchOpcode*/ 17, TARGET_VAL(ISD::BITCAST),// ->121495
/*121478*/        OPC_RecordChild0, // #0 = $src
/*121479*/        OPC_CheckChild0Type, MVT::x86mmx,
/*121481*/        OPC_CheckType, MVT::i64,
/*121483*/        OPC_MoveParent,
/*121484*/        OPC_CheckType, MVT::v2i64,
/*121486*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*121488*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVQ2DQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (scalar_to_vector:{ *:[v2i64] } (bitconvert:{ *:[i64] } VR64:{ *:[x86mmx] }:$src)) - Complexity = 6
                  // Dst: (MMX_MOVQ2DQrr:{ *:[v2i64] } VR64:{ *:[x86mmx] }:$src)
/*121495*/      0, // EndSwitchOpcode
/*121496*/    /*Scope*/ 70|128,3/*454*/, /*->121952*/
/*121498*/      OPC_RecordChild0, // #0 = $src
/*121499*/      OPC_Scope, 15|128,1/*143*/, /*->121645*/ // 5 children in Scope
/*121502*/        OPC_CheckChild0Type, MVT::i32,
/*121504*/        OPC_SwitchType /*8 cases */, 13, MVT::v1i1,// ->121520
/*121507*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121509*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*121512*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 0, 1, 
                    // Src: (scalar_to_vector:{ *:[v1i1] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } GR32:{ *:[i32] }:$src, VK1:{ *:[i32] })
/*121520*/        /*SwitchType*/ 13, MVT::v2i1,// ->121535
/*121522*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121524*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*121527*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 0, 1, 
                    // Src: (scalar_to_vector:{ *:[v2i1] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } GR32:{ *:[i32] }:$src, VK2:{ *:[i32] })
/*121535*/        /*SwitchType*/ 13, MVT::v4i1,// ->121550
/*121537*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121539*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*121542*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 0, 1, 
                    // Src: (scalar_to_vector:{ *:[v4i1] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } GR32:{ *:[i32] }:$src, VK4:{ *:[i32] })
/*121550*/        /*SwitchType*/ 13, MVT::v8i1,// ->121565
/*121552*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121554*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*121557*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (scalar_to_vector:{ *:[v8i1] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } GR32:{ *:[i32] }:$src, VK8:{ *:[i32] })
/*121565*/        /*SwitchType*/ 13, MVT::v16i1,// ->121580
/*121567*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121569*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*121572*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 1, 
                    // Src: (scalar_to_vector:{ *:[v16i1] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } GR32:{ *:[i32] }:$src, VK16:{ *:[i32] })
/*121580*/        /*SwitchType*/ 13, MVT::v32i1,// ->121595
/*121582*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121584*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*121587*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 1, 
                    // Src: (scalar_to_vector:{ *:[v32i1] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } GR32:{ *:[i32] }:$src, VK32:{ *:[i32] })
/*121595*/        /*SwitchType*/ 13, MVT::v64i1,// ->121610
/*121597*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121599*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*121602*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 1, 
                    // Src: (scalar_to_vector:{ *:[v64i1] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } GR32:{ *:[i32] }:$src, VK64:{ *:[i32] })
/*121610*/        /*SwitchType*/ 32, MVT::v4i32,// ->121644
/*121612*/          OPC_Scope, 9, /*->121623*/ // 3 children in Scope
/*121614*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*121616*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VMOVDI2PDIrr:{ *:[v4i32] } GR32:{ *:[i32] }:$src)
/*121623*/          /*Scope*/ 9, /*->121633*/
/*121624*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*121626*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDI2PDIrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (MOVDI2PDIrr:{ *:[v4i32] } GR32:{ *:[i32] }:$src)
/*121633*/          /*Scope*/ 9, /*->121643*/
/*121634*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121636*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIZrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VMOVDI2PDIZrr:{ *:[v4i32] } GR32:{ *:[i32] }:$src)
/*121643*/          0, /*End of Scope*/
/*121644*/        0, // EndSwitchType
/*121645*/      /*Scope*/ 36, /*->121682*/
/*121646*/        OPC_CheckChild0Type, MVT::i64,
/*121648*/        OPC_CheckType, MVT::v2i64,
/*121650*/        OPC_Scope, 9, /*->121661*/ // 3 children in Scope
/*121652*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*121654*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOV64toPQIrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (scalar_to_vector:{ *:[v2i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                    // Dst: (VMOV64toPQIrr:{ *:[v2i64] } GR64:{ *:[i64] }:$src)
/*121661*/        /*Scope*/ 9, /*->121671*/
/*121662*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*121664*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64toPQIrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (scalar_to_vector:{ *:[v2i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                    // Dst: (MOV64toPQIrr:{ *:[v2i64] } GR64:{ *:[i64] }:$src)
/*121671*/        /*Scope*/ 9, /*->121681*/
/*121672*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121674*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOV64toPQIZrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (scalar_to_vector:{ *:[v2i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                    // Dst: (VMOV64toPQIZrr:{ *:[v2i64] } GR64:{ *:[i64] }:$src)
/*121681*/        0, /*End of Scope*/
/*121682*/      /*Scope*/ 107|128,1/*235*/, /*->121919*/
/*121684*/        OPC_CheckChild0Type, MVT::i8,
/*121686*/        OPC_SwitchType /*7 cases */, 31, MVT::v1i1,// ->121720
/*121689*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121691*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*121697*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*121700*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121709*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*121712*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v1i1] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }), VK1:{ *:[i32] })
/*121720*/        /*SwitchType*/ 31, MVT::v2i1,// ->121753
/*121722*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121724*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*121730*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*121733*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121742*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*121745*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v2i1] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }), VK2:{ *:[i32] })
/*121753*/        /*SwitchType*/ 31, MVT::v4i1,// ->121786
/*121755*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121757*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*121763*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*121766*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121775*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*121778*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v4i1] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }), VK4:{ *:[i32] })
/*121786*/        /*SwitchType*/ 31, MVT::v8i1,// ->121819
/*121788*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121790*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*121796*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*121799*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121808*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*121811*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v8i1] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }), VK8:{ *:[i32] })
/*121819*/        /*SwitchType*/ 31, MVT::v16i1,// ->121852
/*121821*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121823*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*121829*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*121832*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121841*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*121844*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v16i1] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }), VK16:{ *:[i32] })
/*121852*/        /*SwitchType*/ 31, MVT::v32i1,// ->121885
/*121854*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121856*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*121862*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*121865*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121874*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*121877*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v32i1] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }), VK32:{ *:[i32] })
/*121885*/        /*SwitchType*/ 31, MVT::v64i1,// ->121918
/*121887*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121889*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*121895*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*121898*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121907*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*121910*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v64i1] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }), VK64:{ *:[i32] })
/*121918*/        0, // EndSwitchType
/*121919*/      /*Scope*/ 15, /*->121935*/
/*121920*/        OPC_CheckChild0Type, MVT::f32,
/*121922*/        OPC_CheckType, MVT::v4f32,
/*121924*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*121927*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (scalar_to_vector:{ *:[v4f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] })
/*121935*/      /*Scope*/ 15, /*->121951*/
/*121936*/        OPC_CheckChild0Type, MVT::f64,
/*121938*/        OPC_CheckType, MVT::v2f64,
/*121940*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*121943*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (scalar_to_vector:{ *:[v2f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] })
/*121951*/      0, /*End of Scope*/
/*121952*/    0, /*End of Scope*/
/*121953*/  /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::MMX_MOVW2D),// ->122010
/*121956*/    OPC_Scope, 29, /*->121987*/ // 3 children in Scope
/*121958*/      OPC_MoveChild0,
/*121959*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*121962*/      OPC_RecordMemRef,
/*121963*/      OPC_RecordNode, // #0 = 'ld' chained node
/*121964*/      OPC_RecordChild1, // #1 = $src
/*121965*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*121967*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/*121969*/      OPC_MoveParent,
/*121970*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/*121972*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121975*/      OPC_EmitMergeInputChains1_0,
/*121976*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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 = 25
                // Dst: (MMX_MOVD64rm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/*121987*/    /*Scope*/ 10, /*->121998*/
/*121988*/      OPC_CheckChild0Integer, 0, 
/*121990*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/*121992*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_SET0), 0,
                    MVT::x86mmx, 0/*#Ops*/, 
                // Src: (MMX_X86movw2d:{ *:[x86mmx] } 0:{ *:[i32] }) - Complexity = 8
                // Dst: (MMX_SET0:{ *:[x86mmx] })
/*121998*/    /*Scope*/ 10, /*->122009*/
/*121999*/      OPC_RecordChild0, // #0 = $src
/*122000*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/*122002*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVD64rr), 0,
                    MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (MMX_X86movw2d:{ *:[x86mmx] } GR32:{ *:[i32] }:$src) - Complexity = 3
                // Dst: (MMX_MOVD64rr:{ *:[x86mmx] } GR32:{ *:[i32] }:$src)
/*122009*/    0, /*End of Scope*/
/*122010*/  /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::MOVDQ2Q),// ->122155
/*122014*/    OPC_Scope, 0|128,1/*128*/, /*->122145*/ // 2 children in Scope
/*122017*/      OPC_MoveChild0,
/*122018*/      OPC_SwitchOpcode /*2 cases */, 25, TARGET_VAL(ISD::LOAD),// ->122047
/*122022*/        OPC_RecordMemRef,
/*122023*/        OPC_RecordNode, // #0 = 'ld' chained node
/*122024*/        OPC_RecordChild1, // #1 = $src
/*122025*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*122027*/        OPC_CheckPredicate, 9, // Predicate_load
/*122029*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*122031*/        OPC_MoveParent,
/*122032*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122035*/        OPC_EmitMergeInputChains1_0,
/*122036*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVQ64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (MMX_X86movdq2q:{ *:[x86mmx] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (MMX_MOVQ64rm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/*122047*/      /*SwitchOpcode*/ 94, TARGET_VAL(ISD::BITCAST),// ->122144
/*122050*/        OPC_MoveChild0,
/*122051*/        OPC_SwitchOpcode /*3 cases */, 33, TARGET_VAL(X86ISD::CVTP2SI),// ->122088
/*122055*/          OPC_RecordChild0, // #0 = $src
/*122056*/          OPC_CheckType, MVT::v4i32,
/*122058*/          OPC_Scope, 13, /*->122073*/ // 2 children in Scope
/*122060*/            OPC_CheckChild0Type, MVT::v4f32,
/*122062*/            OPC_MoveParent,
/*122063*/            OPC_MoveParent,
/*122064*/            OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*122066*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPS2PIirr), 0,
                          MVT::x86mmx, 1/*#Ops*/, 0, 
                      // Src: (MMX_X86movdq2q:{ *:[x86mmx] } (bitconvert:{ *:[v2i64] } (X86cvtp2Int:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src))) - Complexity = 9
                      // Dst: (MMX_CVTPS2PIirr:{ *:[x86mmx] } VR128:{ *:[v4f32] }:$src)
/*122073*/          /*Scope*/ 13, /*->122087*/
/*122074*/            OPC_CheckChild0Type, MVT::v2f64,
/*122076*/            OPC_MoveParent,
/*122077*/            OPC_MoveParent,
/*122078*/            OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*122080*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPD2PIirr), 0,
                          MVT::x86mmx, 1/*#Ops*/, 0, 
                      // Src: (MMX_X86movdq2q:{ *:[x86mmx] } (bitconvert:{ *:[v2i64] } (X86cvtp2Int:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src))) - Complexity = 9
                      // Dst: (MMX_CVTPD2PIirr:{ *:[x86mmx] } VR128:{ *:[v2f64] }:$src)
/*122087*/          0, /*End of Scope*/
/*122088*/        /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::CVTTP2SI),// ->122124
/*122091*/          OPC_RecordChild0, // #0 = $src
/*122092*/          OPC_CheckType, MVT::v4i32,
/*122094*/          OPC_Scope, 13, /*->122109*/ // 2 children in Scope
/*122096*/            OPC_CheckChild0Type, MVT::v4f32,
/*122098*/            OPC_MoveParent,
/*122099*/            OPC_MoveParent,
/*122100*/            OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*122102*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTTPS2PIirr), 0,
                          MVT::x86mmx, 1/*#Ops*/, 0, 
                      // Src: (MMX_X86movdq2q:{ *:[x86mmx] } (bitconvert:{ *:[v2i64] } (X86cvttp2si:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src))) - Complexity = 9
                      // Dst: (MMX_CVTTPS2PIirr:{ *:[x86mmx] } VR128:{ *:[v4f32] }:$src)
/*122109*/          /*Scope*/ 13, /*->122123*/
/*122110*/            OPC_CheckChild0Type, MVT::v2f64,
/*122112*/            OPC_MoveParent,
/*122113*/            OPC_MoveParent,
/*122114*/            OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*122116*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTTPD2PIirr), 0,
                          MVT::x86mmx, 1/*#Ops*/, 0, 
                      // Src: (MMX_X86movdq2q:{ *:[x86mmx] } (bitconvert:{ *:[v2i64] } (X86cvttp2si:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src))) - Complexity = 9
                      // Dst: (MMX_CVTTPD2PIirr:{ *:[x86mmx] } VR128:{ *:[v2f64] }:$src)
/*122123*/          0, /*End of Scope*/
/*122124*/        /*SwitchOpcode*/ 16, TARGET_VAL(ISD::FP_TO_SINT),// ->122143
/*122127*/          OPC_RecordChild0, // #0 = $src
/*122128*/          OPC_CheckChild0Type, MVT::v4f32,
/*122130*/          OPC_CheckType, MVT::v4i32,
/*122132*/          OPC_MoveParent,
/*122133*/          OPC_MoveParent,
/*122134*/          OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*122136*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTTPS2PIirr), 0,
                        MVT::x86mmx, 1/*#Ops*/, 0, 
                    // Src: (MMX_X86movdq2q:{ *:[x86mmx] } (bitconvert:{ *:[v2i64] } (fp_to_sint:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src))) - Complexity = 9
                    // Dst: (MMX_CVTTPS2PIirr:{ *:[x86mmx] } VR128:{ *:[v4f32] }:$src)
/*122143*/        0, // EndSwitchOpcode
/*122144*/      0, // EndSwitchOpcode
/*122145*/    /*Scope*/ 8, /*->122154*/
/*122146*/      OPC_RecordChild0, // #0 = $src
/*122147*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVDQ2Qrr), 0,
                    MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (MMX_X86movdq2q:{ *:[x86mmx] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                // Dst: (MMX_MOVDQ2Qrr:{ *:[x86mmx] } VR128:{ *:[v2i64] }:$src)
/*122154*/    0, /*End of Scope*/
/*122155*/  /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::LADD),// ->122410
/*122159*/    OPC_RecordMemRef,
/*122160*/    OPC_RecordNode, // #0 = 'X86lock_add' chained node
/*122161*/    OPC_RecordChild1, // #1 = $dst
/*122162*/    OPC_RecordChild2, // #2 = $src2
/*122163*/    OPC_Scope, 39|128,1/*167*/, /*->122333*/ // 5 children in Scope
/*122166*/      OPC_MoveChild2,
/*122167*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*122170*/      OPC_SwitchType /*4 cases */, 46, MVT::i64,// ->122219
/*122173*/        OPC_Scope, 21, /*->122196*/ // 2 children in Scope
/*122175*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*122177*/          OPC_MoveParent,
/*122178*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122181*/          OPC_EmitMergeInputChains1_0,
/*122182*/          OPC_EmitConvertToTarget, 2,
/*122184*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_ADD64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 25
                    // Dst: (LOCK_ADD64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src2)
/*122196*/        /*Scope*/ 21, /*->122218*/
/*122197*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*122199*/          OPC_MoveParent,
/*122200*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122203*/          OPC_EmitMergeInputChains1_0,
/*122204*/          OPC_EmitConvertToTarget, 2,
/*122206*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_ADD64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_ADD64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src2)
/*122218*/        0, /*End of Scope*/
/*122219*/      /*SwitchType*/ 44, MVT::i16,// ->122265
/*122221*/        OPC_Scope, 21, /*->122244*/ // 2 children in Scope
/*122223*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*122225*/          OPC_MoveParent,
/*122226*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122229*/          OPC_EmitMergeInputChains1_0,
/*122230*/          OPC_EmitConvertToTarget, 2,
/*122232*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_ADD16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_ADD16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2)
/*122244*/        /*Scope*/ 19, /*->122264*/
/*122245*/          OPC_MoveParent,
/*122246*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122249*/          OPC_EmitMergeInputChains1_0,
/*122250*/          OPC_EmitConvertToTarget, 2,
/*122252*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_ADD16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2) - Complexity = 24
                    // Dst: (LOCK_ADD16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2)
/*122264*/        0, /*End of Scope*/
/*122265*/      /*SwitchType*/ 44, MVT::i32,// ->122311
/*122267*/        OPC_Scope, 21, /*->122290*/ // 2 children in Scope
/*122269*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*122271*/          OPC_MoveParent,
/*122272*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122275*/          OPC_EmitMergeInputChains1_0,
/*122276*/          OPC_EmitConvertToTarget, 2,
/*122278*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_ADD32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_ADD32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2)
/*122290*/        /*Scope*/ 19, /*->122310*/
/*122291*/          OPC_MoveParent,
/*122292*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122295*/          OPC_EmitMergeInputChains1_0,
/*122296*/          OPC_EmitConvertToTarget, 2,
/*122298*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_ADD32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2) - Complexity = 24
                    // Dst: (LOCK_ADD32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2)
/*122310*/        0, /*End of Scope*/
/*122311*/      /*SwitchType*/ 19, MVT::i8,// ->122332
/*122313*/        OPC_MoveParent,
/*122314*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122317*/        OPC_EmitMergeInputChains1_0,
/*122318*/        OPC_EmitConvertToTarget, 2,
/*122320*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_ADD8mi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src2) - Complexity = 24
                  // Dst: (LOCK_ADD8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src2)
/*122332*/      0, // EndSwitchType
/*122333*/    /*Scope*/ 18, /*->122352*/
/*122334*/      OPC_CheckChild2Type, MVT::i8,
/*122336*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122339*/      OPC_EmitMergeInputChains1_0,
/*122340*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_ADD8mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src2) - Complexity = 21
                // Dst: (LOCK_ADD8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src2)
/*122352*/    /*Scope*/ 18, /*->122371*/
/*122353*/      OPC_CheckChild2Type, MVT::i16,
/*122355*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122358*/      OPC_EmitMergeInputChains1_0,
/*122359*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_ADD16mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src2) - Complexity = 21
                // Dst: (LOCK_ADD16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src2)
/*122371*/    /*Scope*/ 18, /*->122390*/
/*122372*/      OPC_CheckChild2Type, MVT::i32,
/*122374*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122377*/      OPC_EmitMergeInputChains1_0,
/*122378*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_ADD32mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src2) - Complexity = 21
                // Dst: (LOCK_ADD32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src2)
/*122390*/    /*Scope*/ 18, /*->122409*/
/*122391*/      OPC_CheckChild2Type, MVT::i64,
/*122393*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122396*/      OPC_EmitMergeInputChains1_0,
/*122397*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_ADD64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src2) - Complexity = 21
                // Dst: (LOCK_ADD64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src2)
/*122409*/    0, /*End of Scope*/
/*122410*/  /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::LSUB),// ->122665
/*122414*/    OPC_RecordMemRef,
/*122415*/    OPC_RecordNode, // #0 = 'X86lock_sub' chained node
/*122416*/    OPC_RecordChild1, // #1 = $dst
/*122417*/    OPC_RecordChild2, // #2 = $src2
/*122418*/    OPC_Scope, 39|128,1/*167*/, /*->122588*/ // 5 children in Scope
/*122421*/      OPC_MoveChild2,
/*122422*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*122425*/      OPC_SwitchType /*4 cases */, 46, MVT::i64,// ->122474
/*122428*/        OPC_Scope, 21, /*->122451*/ // 2 children in Scope
/*122430*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*122432*/          OPC_MoveParent,
/*122433*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122436*/          OPC_EmitMergeInputChains1_0,
/*122437*/          OPC_EmitConvertToTarget, 2,
/*122439*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_SUB64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 25
                    // Dst: (LOCK_SUB64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src2)
/*122451*/        /*Scope*/ 21, /*->122473*/
/*122452*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*122454*/          OPC_MoveParent,
/*122455*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122458*/          OPC_EmitMergeInputChains1_0,
/*122459*/          OPC_EmitConvertToTarget, 2,
/*122461*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_SUB64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_SUB64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src2)
/*122473*/        0, /*End of Scope*/
/*122474*/      /*SwitchType*/ 44, MVT::i16,// ->122520
/*122476*/        OPC_Scope, 21, /*->122499*/ // 2 children in Scope
/*122478*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*122480*/          OPC_MoveParent,
/*122481*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122484*/          OPC_EmitMergeInputChains1_0,
/*122485*/          OPC_EmitConvertToTarget, 2,
/*122487*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_SUB16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_SUB16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2)
/*122499*/        /*Scope*/ 19, /*->122519*/
/*122500*/          OPC_MoveParent,
/*122501*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122504*/          OPC_EmitMergeInputChains1_0,
/*122505*/          OPC_EmitConvertToTarget, 2,
/*122507*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_SUB16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2) - Complexity = 24
                    // Dst: (LOCK_SUB16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2)
/*122519*/        0, /*End of Scope*/
/*122520*/      /*SwitchType*/ 44, MVT::i32,// ->122566
/*122522*/        OPC_Scope, 21, /*->122545*/ // 2 children in Scope
/*122524*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*122526*/          OPC_MoveParent,
/*122527*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122530*/          OPC_EmitMergeInputChains1_0,
/*122531*/          OPC_EmitConvertToTarget, 2,
/*122533*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_SUB32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_SUB32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2)
/*122545*/        /*Scope*/ 19, /*->122565*/
/*122546*/          OPC_MoveParent,
/*122547*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122550*/          OPC_EmitMergeInputChains1_0,
/*122551*/          OPC_EmitConvertToTarget, 2,
/*122553*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_SUB32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2) - Complexity = 24
                    // Dst: (LOCK_SUB32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2)
/*122565*/        0, /*End of Scope*/
/*122566*/      /*SwitchType*/ 19, MVT::i8,// ->122587
/*122568*/        OPC_MoveParent,
/*122569*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122572*/        OPC_EmitMergeInputChains1_0,
/*122573*/        OPC_EmitConvertToTarget, 2,
/*122575*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_SUB8mi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src2) - Complexity = 24
                  // Dst: (LOCK_SUB8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src2)
/*122587*/      0, // EndSwitchType
/*122588*/    /*Scope*/ 18, /*->122607*/
/*122589*/      OPC_CheckChild2Type, MVT::i8,
/*122591*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122594*/      OPC_EmitMergeInputChains1_0,
/*122595*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_SUB8mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src2) - Complexity = 21
                // Dst: (LOCK_SUB8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src2)
/*122607*/    /*Scope*/ 18, /*->122626*/
/*122608*/      OPC_CheckChild2Type, MVT::i16,
/*122610*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122613*/      OPC_EmitMergeInputChains1_0,
/*122614*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_SUB16mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src2) - Complexity = 21
                // Dst: (LOCK_SUB16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src2)
/*122626*/    /*Scope*/ 18, /*->122645*/
/*122627*/      OPC_CheckChild2Type, MVT::i32,
/*122629*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122632*/      OPC_EmitMergeInputChains1_0,
/*122633*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_SUB32mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src2) - Complexity = 21
                // Dst: (LOCK_SUB32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src2)
/*122645*/    /*Scope*/ 18, /*->122664*/
/*122646*/      OPC_CheckChild2Type, MVT::i64,
/*122648*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122651*/      OPC_EmitMergeInputChains1_0,
/*122652*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_SUB64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src2) - Complexity = 21
                // Dst: (LOCK_SUB64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src2)
/*122664*/    0, /*End of Scope*/
/*122665*/  /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::LOR),// ->122920
/*122669*/    OPC_RecordMemRef,
/*122670*/    OPC_RecordNode, // #0 = 'X86lock_or' chained node
/*122671*/    OPC_RecordChild1, // #1 = $dst
/*122672*/    OPC_RecordChild2, // #2 = $src2
/*122673*/    OPC_Scope, 39|128,1/*167*/, /*->122843*/ // 5 children in Scope
/*122676*/      OPC_MoveChild2,
/*122677*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*122680*/      OPC_SwitchType /*4 cases */, 46, MVT::i64,// ->122729
/*122683*/        OPC_Scope, 21, /*->122706*/ // 2 children in Scope
/*122685*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*122687*/          OPC_MoveParent,
/*122688*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122691*/          OPC_EmitMergeInputChains1_0,
/*122692*/          OPC_EmitConvertToTarget, 2,
/*122694*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_OR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_or:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 25
                    // Dst: (LOCK_OR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src2)
/*122706*/        /*Scope*/ 21, /*->122728*/
/*122707*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*122709*/          OPC_MoveParent,
/*122710*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122713*/          OPC_EmitMergeInputChains1_0,
/*122714*/          OPC_EmitConvertToTarget, 2,
/*122716*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_OR64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_or:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_OR64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src2)
/*122728*/        0, /*End of Scope*/
/*122729*/      /*SwitchType*/ 44, MVT::i16,// ->122775
/*122731*/        OPC_Scope, 21, /*->122754*/ // 2 children in Scope
/*122733*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*122735*/          OPC_MoveParent,
/*122736*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122739*/          OPC_EmitMergeInputChains1_0,
/*122740*/          OPC_EmitConvertToTarget, 2,
/*122742*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_OR16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_or:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_OR16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2)
/*122754*/        /*Scope*/ 19, /*->122774*/
/*122755*/          OPC_MoveParent,
/*122756*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122759*/          OPC_EmitMergeInputChains1_0,
/*122760*/          OPC_EmitConvertToTarget, 2,
/*122762*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_OR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_or:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2) - Complexity = 24
                    // Dst: (LOCK_OR16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2)
/*122774*/        0, /*End of Scope*/
/*122775*/      /*SwitchType*/ 44, MVT::i32,// ->122821
/*122777*/        OPC_Scope, 21, /*->122800*/ // 2 children in Scope
/*122779*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*122781*/          OPC_MoveParent,
/*122782*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122785*/          OPC_EmitMergeInputChains1_0,
/*122786*/          OPC_EmitConvertToTarget, 2,
/*122788*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_OR32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_or:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_OR32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2)
/*122800*/        /*Scope*/ 19, /*->122820*/
/*122801*/          OPC_MoveParent,
/*122802*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122805*/          OPC_EmitMergeInputChains1_0,
/*122806*/          OPC_EmitConvertToTarget, 2,
/*122808*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_OR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_or:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2) - Complexity = 24
                    // Dst: (LOCK_OR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2)
/*122820*/        0, /*End of Scope*/
/*122821*/      /*SwitchType*/ 19, MVT::i8,// ->122842
/*122823*/        OPC_MoveParent,
/*122824*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122827*/        OPC_EmitMergeInputChains1_0,
/*122828*/        OPC_EmitConvertToTarget, 2,
/*122830*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_OR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86lock_or:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src2) - Complexity = 24
                  // Dst: (LOCK_OR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src2)
/*122842*/      0, // EndSwitchType
/*122843*/    /*Scope*/ 18, /*->122862*/
/*122844*/      OPC_CheckChild2Type, MVT::i8,
/*122846*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122849*/      OPC_EmitMergeInputChains1_0,
/*122850*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_OR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_or:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src2) - Complexity = 21
                // Dst: (LOCK_OR8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src2)
/*122862*/    /*Scope*/ 18, /*->122881*/
/*122863*/      OPC_CheckChild2Type, MVT::i16,
/*122865*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122868*/      OPC_EmitMergeInputChains1_0,
/*122869*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_OR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_or:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src2) - Complexity = 21
                // Dst: (LOCK_OR16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src2)
/*122881*/    /*Scope*/ 18, /*->122900*/
/*122882*/      OPC_CheckChild2Type, MVT::i32,
/*122884*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122887*/      OPC_EmitMergeInputChains1_0,
/*122888*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_OR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_or:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src2) - Complexity = 21
                // Dst: (LOCK_OR32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src2)
/*122900*/    /*Scope*/ 18, /*->122919*/
/*122901*/      OPC_CheckChild2Type, MVT::i64,
/*122903*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122906*/      OPC_EmitMergeInputChains1_0,
/*122907*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_OR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_or:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src2) - Complexity = 21
                // Dst: (LOCK_OR64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src2)
/*122919*/    0, /*End of Scope*/
/*122920*/  /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::LAND),// ->123175
/*122924*/    OPC_RecordMemRef,
/*122925*/    OPC_RecordNode, // #0 = 'X86lock_and' chained node
/*122926*/    OPC_RecordChild1, // #1 = $dst
/*122927*/    OPC_RecordChild2, // #2 = $src2
/*122928*/    OPC_Scope, 39|128,1/*167*/, /*->123098*/ // 5 children in Scope
/*122931*/      OPC_MoveChild2,
/*122932*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*122935*/      OPC_SwitchType /*4 cases */, 46, MVT::i64,// ->122984
/*122938*/        OPC_Scope, 21, /*->122961*/ // 2 children in Scope
/*122940*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*122942*/          OPC_MoveParent,
/*122943*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122946*/          OPC_EmitMergeInputChains1_0,
/*122947*/          OPC_EmitConvertToTarget, 2,
/*122949*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_AND64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_and:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 25
                    // Dst: (LOCK_AND64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src2)
/*122961*/        /*Scope*/ 21, /*->122983*/
/*122962*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*122964*/          OPC_MoveParent,
/*122965*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122968*/          OPC_EmitMergeInputChains1_0,
/*122969*/          OPC_EmitConvertToTarget, 2,
/*122971*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_AND64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_and:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_AND64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src2)
/*122983*/        0, /*End of Scope*/
/*122984*/      /*SwitchType*/ 44, MVT::i16,// ->123030
/*122986*/        OPC_Scope, 21, /*->123009*/ // 2 children in Scope
/*122988*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*122990*/          OPC_MoveParent,
/*122991*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*122994*/          OPC_EmitMergeInputChains1_0,
/*122995*/          OPC_EmitConvertToTarget, 2,
/*122997*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_AND16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_and:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_AND16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2)
/*123009*/        /*Scope*/ 19, /*->123029*/
/*123010*/          OPC_MoveParent,
/*123011*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123014*/          OPC_EmitMergeInputChains1_0,
/*123015*/          OPC_EmitConvertToTarget, 2,
/*123017*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_AND16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_and:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2) - Complexity = 24
                    // Dst: (LOCK_AND16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2)
/*123029*/        0, /*End of Scope*/
/*123030*/      /*SwitchType*/ 44, MVT::i32,// ->123076
/*123032*/        OPC_Scope, 21, /*->123055*/ // 2 children in Scope
/*123034*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*123036*/          OPC_MoveParent,
/*123037*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123040*/          OPC_EmitMergeInputChains1_0,
/*123041*/          OPC_EmitConvertToTarget, 2,
/*123043*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_AND32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_and:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_AND32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2)
/*123055*/        /*Scope*/ 19, /*->123075*/
/*123056*/          OPC_MoveParent,
/*123057*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123060*/          OPC_EmitMergeInputChains1_0,
/*123061*/          OPC_EmitConvertToTarget, 2,
/*123063*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_AND32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_and:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2) - Complexity = 24
                    // Dst: (LOCK_AND32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2)
/*123075*/        0, /*End of Scope*/
/*123076*/      /*SwitchType*/ 19, MVT::i8,// ->123097
/*123078*/        OPC_MoveParent,
/*123079*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123082*/        OPC_EmitMergeInputChains1_0,
/*123083*/        OPC_EmitConvertToTarget, 2,
/*123085*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_AND8mi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86lock_and:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src2) - Complexity = 24
                  // Dst: (LOCK_AND8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src2)
/*123097*/      0, // EndSwitchType
/*123098*/    /*Scope*/ 18, /*->123117*/
/*123099*/      OPC_CheckChild2Type, MVT::i8,
/*123101*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123104*/      OPC_EmitMergeInputChains1_0,
/*123105*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_AND8mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_and:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src2) - Complexity = 21
                // Dst: (LOCK_AND8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src2)
/*123117*/    /*Scope*/ 18, /*->123136*/
/*123118*/      OPC_CheckChild2Type, MVT::i16,
/*123120*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123123*/      OPC_EmitMergeInputChains1_0,
/*123124*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_AND16mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_and:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src2) - Complexity = 21
                // Dst: (LOCK_AND16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src2)
/*123136*/    /*Scope*/ 18, /*->123155*/
/*123137*/      OPC_CheckChild2Type, MVT::i32,
/*123139*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123142*/      OPC_EmitMergeInputChains1_0,
/*123143*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_AND32mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_and:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src2) - Complexity = 21
                // Dst: (LOCK_AND32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src2)
/*123155*/    /*Scope*/ 18, /*->123174*/
/*123156*/      OPC_CheckChild2Type, MVT::i64,
/*123158*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123161*/      OPC_EmitMergeInputChains1_0,
/*123162*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_AND64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_and:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src2) - Complexity = 21
                // Dst: (LOCK_AND64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src2)
/*123174*/    0, /*End of Scope*/
/*123175*/  /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::LXOR),// ->123430
/*123179*/    OPC_RecordMemRef,
/*123180*/    OPC_RecordNode, // #0 = 'X86lock_xor' chained node
/*123181*/    OPC_RecordChild1, // #1 = $dst
/*123182*/    OPC_RecordChild2, // #2 = $src2
/*123183*/    OPC_Scope, 39|128,1/*167*/, /*->123353*/ // 5 children in Scope
/*123186*/      OPC_MoveChild2,
/*123187*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123190*/      OPC_SwitchType /*4 cases */, 46, MVT::i64,// ->123239
/*123193*/        OPC_Scope, 21, /*->123216*/ // 2 children in Scope
/*123195*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*123197*/          OPC_MoveParent,
/*123198*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123201*/          OPC_EmitMergeInputChains1_0,
/*123202*/          OPC_EmitConvertToTarget, 2,
/*123204*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_XOR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_xor:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 25
                    // Dst: (LOCK_XOR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src2)
/*123216*/        /*Scope*/ 21, /*->123238*/
/*123217*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*123219*/          OPC_MoveParent,
/*123220*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123223*/          OPC_EmitMergeInputChains1_0,
/*123224*/          OPC_EmitConvertToTarget, 2,
/*123226*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_XOR64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_xor:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_XOR64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] }):$src2)
/*123238*/        0, /*End of Scope*/
/*123239*/      /*SwitchType*/ 44, MVT::i16,// ->123285
/*123241*/        OPC_Scope, 21, /*->123264*/ // 2 children in Scope
/*123243*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*123245*/          OPC_MoveParent,
/*123246*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123249*/          OPC_EmitMergeInputChains1_0,
/*123250*/          OPC_EmitConvertToTarget, 2,
/*123252*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_XOR16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_xor:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_XOR16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2)
/*123264*/        /*Scope*/ 19, /*->123284*/
/*123265*/          OPC_MoveParent,
/*123266*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123269*/          OPC_EmitMergeInputChains1_0,
/*123270*/          OPC_EmitConvertToTarget, 2,
/*123272*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_XOR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_xor:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2) - Complexity = 24
                    // Dst: (LOCK_XOR16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src2)
/*123284*/        0, /*End of Scope*/
/*123285*/      /*SwitchType*/ 44, MVT::i32,// ->123331
/*123287*/        OPC_Scope, 21, /*->123310*/ // 2 children in Scope
/*123289*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*123291*/          OPC_MoveParent,
/*123292*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123295*/          OPC_EmitMergeInputChains1_0,
/*123296*/          OPC_EmitConvertToTarget, 2,
/*123298*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_XOR32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_xor:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 25
                    // Dst: (LOCK_XOR32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2)
/*123310*/        /*Scope*/ 19, /*->123330*/
/*123311*/          OPC_MoveParent,
/*123312*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123315*/          OPC_EmitMergeInputChains1_0,
/*123316*/          OPC_EmitConvertToTarget, 2,
/*123318*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_XOR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86lock_xor:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2) - Complexity = 24
                    // Dst: (LOCK_XOR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src2)
/*123330*/        0, /*End of Scope*/
/*123331*/      /*SwitchType*/ 19, MVT::i8,// ->123352
/*123333*/        OPC_MoveParent,
/*123334*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123337*/        OPC_EmitMergeInputChains1_0,
/*123338*/        OPC_EmitConvertToTarget, 2,
/*123340*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_XOR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86lock_xor:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src2) - Complexity = 24
                  // Dst: (LOCK_XOR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src2)
/*123352*/      0, // EndSwitchType
/*123353*/    /*Scope*/ 18, /*->123372*/
/*123354*/      OPC_CheckChild2Type, MVT::i8,
/*123356*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123359*/      OPC_EmitMergeInputChains1_0,
/*123360*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_XOR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_xor:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src2) - Complexity = 21
                // Dst: (LOCK_XOR8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src2)
/*123372*/    /*Scope*/ 18, /*->123391*/
/*123373*/      OPC_CheckChild2Type, MVT::i16,
/*123375*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123378*/      OPC_EmitMergeInputChains1_0,
/*123379*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_XOR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_xor:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src2) - Complexity = 21
                // Dst: (LOCK_XOR16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src2)
/*123391*/    /*Scope*/ 18, /*->123410*/
/*123392*/      OPC_CheckChild2Type, MVT::i32,
/*123394*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123397*/      OPC_EmitMergeInputChains1_0,
/*123398*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_XOR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_xor:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src2) - Complexity = 21
                // Dst: (LOCK_XOR32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src2)
/*123410*/    /*Scope*/ 18, /*->123429*/
/*123411*/      OPC_CheckChild2Type, MVT::i64,
/*123413*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/*123416*/      OPC_EmitMergeInputChains1_0,
/*123417*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_XOR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86lock_xor:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src2) - Complexity = 21
                // Dst: (LOCK_XOR64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src2)
/*123429*/    0, /*End of Scope*/
/*123430*/  /*SwitchOpcode*/ 12|128,23/*2956*/, TARGET_VAL(ISD::ADD),// ->126390
/*123434*/    OPC_Scope, 105, /*->123541*/ // 13 children in Scope
/*123436*/      OPC_RecordChild0, // #0 = $src1
/*123437*/      OPC_MoveChild1,
/*123438*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*123441*/      OPC_RecordMemRef,
/*123442*/      OPC_RecordNode, // #1 = 'ld' chained node
/*123443*/      OPC_CheckFoldableChainNode,
/*123444*/      OPC_RecordChild1, // #2 = $src2
/*123445*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*123447*/      OPC_Scope, 22, /*->123471*/ // 4 children in Scope
/*123449*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*123451*/        OPC_MoveParent,
/*123452*/        OPC_CheckType, MVT::i8,
/*123454*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*123457*/        OPC_EmitMergeInputChains1_1,
/*123458*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>) - Complexity = 25
                  // Dst: (ADD8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*123471*/      /*Scope*/ 22, /*->123494*/
/*123472*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*123474*/        OPC_MoveParent,
/*123475*/        OPC_CheckType, MVT::i16,
/*123477*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*123480*/        OPC_EmitMergeInputChains1_1,
/*123481*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*123494*/      /*Scope*/ 22, /*->123517*/
/*123495*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*123497*/        OPC_MoveParent,
/*123498*/        OPC_CheckType, MVT::i32,
/*123500*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*123503*/        OPC_EmitMergeInputChains1_1,
/*123504*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*123517*/      /*Scope*/ 22, /*->123540*/
/*123518*/        OPC_CheckPredicate, 9, // Predicate_load
/*123520*/        OPC_MoveParent,
/*123521*/        OPC_CheckType, MVT::i64,
/*123523*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*123526*/        OPC_EmitMergeInputChains1_1,
/*123527*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*123540*/      0, /*End of Scope*/
/*123541*/    /*Scope*/ 50|128,1/*178*/, /*->123721*/
/*123543*/      OPC_MoveChild0,
/*123544*/      OPC_SwitchOpcode /*2 cases */, 104, TARGET_VAL(ISD::LOAD),// ->123652
/*123548*/        OPC_RecordMemRef,
/*123549*/        OPC_RecordNode, // #0 = 'ld' chained node
/*123550*/        OPC_CheckFoldableChainNode,
/*123551*/        OPC_RecordChild1, // #1 = $src2
/*123552*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*123554*/        OPC_Scope, 23, /*->123579*/ // 4 children in Scope
/*123556*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*123558*/          OPC_MoveParent,
/*123559*/          OPC_RecordChild1, // #2 = $src1
/*123560*/          OPC_CheckType, MVT::i8,
/*123562*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*123565*/          OPC_EmitMergeInputChains1_0,
/*123566*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_loadi8>>, GR8:{ *:[i8] }:$src1) - Complexity = 25
                    // Dst: (ADD8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*123579*/        /*Scope*/ 23, /*->123603*/
/*123580*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*123582*/          OPC_MoveParent,
/*123583*/          OPC_RecordChild1, // #2 = $src1
/*123584*/          OPC_CheckType, MVT::i16,
/*123586*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*123589*/          OPC_EmitMergeInputChains1_0,
/*123590*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*123603*/        /*Scope*/ 23, /*->123627*/
/*123604*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*123606*/          OPC_MoveParent,
/*123607*/          OPC_RecordChild1, // #2 = $src1
/*123608*/          OPC_CheckType, MVT::i32,
/*123610*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*123613*/          OPC_EmitMergeInputChains1_0,
/*123614*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*123627*/        /*Scope*/ 23, /*->123651*/
/*123628*/          OPC_CheckPredicate, 9, // Predicate_load
/*123630*/          OPC_MoveParent,
/*123631*/          OPC_RecordChild1, // #2 = $src1
/*123632*/          OPC_CheckType, MVT::i64,
/*123634*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*123637*/          OPC_EmitMergeInputChains1_0,
/*123638*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*123651*/        0, /*End of Scope*/
/*123652*/      /*SwitchOpcode*/ 65, TARGET_VAL(ISD::AND),// ->123720
/*123655*/        OPC_MoveChild0,
/*123656*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*123659*/        OPC_CheckChild0Integer, 2, 
/*123661*/        OPC_RecordChild1, // #0 = physreg input EFLAGS
/*123662*/        OPC_MoveParent,
/*123663*/        OPC_CheckChild1Integer, 1, 
/*123665*/        OPC_MoveParent,
/*123666*/        OPC_RecordChild1, // #1 = $op
/*123667*/        OPC_SwitchType /*3 cases */, 15, MVT::i8,// ->123685
/*123670*/          OPC_EmitInteger, MVT::i8, 0, 
/*123673*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*123676*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC8ri), 0|OPFL_GlueInput,
                        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] })
/*123685*/        /*SwitchType*/ 15, MVT::i32,// ->123702
/*123687*/          OPC_EmitInteger, MVT::i32, 0, 
/*123690*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*123693*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC32ri8), 0|OPFL_GlueInput,
                        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] })
/*123702*/        /*SwitchType*/ 15, MVT::i64,// ->123719
/*123704*/          OPC_EmitInteger, MVT::i64, 0, 
/*123707*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*123710*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC64ri8), 0|OPFL_GlueInput,
                        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] })
/*123719*/        0, // EndSwitchType
/*123720*/      0, // EndSwitchOpcode
/*123721*/    /*Scope*/ 69, /*->123791*/
/*123722*/      OPC_RecordChild0, // #0 = $op
/*123723*/      OPC_MoveChild1,
/*123724*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*123727*/      OPC_MoveChild0,
/*123728*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*123731*/      OPC_CheckChild0Integer, 2, 
/*123733*/      OPC_RecordChild1, // #1 = physreg input EFLAGS
/*123734*/      OPC_MoveParent,
/*123735*/      OPC_CheckChild1Integer, 1, 
/*123737*/      OPC_MoveParent,
/*123738*/      OPC_SwitchType /*3 cases */, 15, MVT::i8,// ->123756
/*123741*/        OPC_EmitInteger, MVT::i8, 0, 
/*123744*/        OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*123747*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADC8ri), 0|OPFL_GlueInput,
                      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] })
/*123756*/      /*SwitchType*/ 15, MVT::i32,// ->123773
/*123758*/        OPC_EmitInteger, MVT::i32, 0, 
/*123761*/        OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*123764*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADC32ri8), 0|OPFL_GlueInput,
                      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] })
/*123773*/      /*SwitchType*/ 15, MVT::i64,// ->123790
/*123775*/        OPC_EmitInteger, MVT::i64, 0, 
/*123778*/        OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*123781*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADC64ri8), 0|OPFL_GlueInput,
                      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] })
/*123790*/      0, // EndSwitchType
/*123791*/    /*Scope*/ 57, /*->123849*/
/*123792*/      OPC_RecordNode, // #0 = $src
/*123793*/      OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->123832
/*123796*/        OPC_Scope, 16, /*->123814*/ // 2 children in Scope
/*123798*/          OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*123800*/          OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*123803*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LEA32r), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: lea32addr:{ *:[i32] }:$src - Complexity = 18
                    // Dst: (LEA32r:{ *:[i32] } lea32addr:{ *:[i32] }:$src)
/*123814*/        /*Scope*/ 16, /*->123831*/
/*123815*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*123817*/          OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/*123820*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64_32r), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: lea64_32addr:{ *:[i32] }:$src - Complexity = 18
                    // Dst: (LEA64_32r:{ *:[i32] } lea64_32addr:{ *:[i32] }:$src)
/*123831*/        0, /*End of Scope*/
/*123832*/      /*SwitchType*/ 14, MVT::i64,// ->123848
/*123834*/        OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*123837*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64r), 0,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea64addr:{ *:[i64] }:$src - Complexity = 18
                  // Dst: (LEA64r:{ *:[i64] } lea64addr:{ *:[i64] }:$src)
/*123848*/      0, // EndSwitchType
/*123849*/    /*Scope*/ 23, /*->123873*/
/*123850*/      OPC_RecordChild0, // #0 = $src1
/*123851*/      OPC_MoveChild1,
/*123852*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::Wrapper),
/*123855*/      OPC_RecordChild0, // #1 = $dst
/*123856*/      OPC_MoveChild0,
/*123857*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/*123860*/      OPC_MoveParent,
/*123861*/      OPC_MoveParent,
/*123862*/      OPC_CheckType, MVT::i64,
/*123864*/      OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64ri32), 0,
                    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)
/*123873*/    /*Scope*/ 23, /*->123897*/
/*123874*/      OPC_MoveChild0,
/*123875*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::Wrapper),
/*123878*/      OPC_RecordChild0, // #0 = $dst
/*123879*/      OPC_MoveChild0,
/*123880*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/*123883*/      OPC_MoveParent,
/*123884*/      OPC_MoveParent,
/*123885*/      OPC_RecordChild1, // #1 = $src1
/*123886*/      OPC_CheckType, MVT::i64,
/*123888*/      OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64ri32), 0,
                    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)
/*123897*/    /*Scope*/ 10|128,3/*394*/, /*->124293*/
/*123899*/      OPC_RecordChild0, // #0 = $src
/*123900*/      OPC_Scope, 52, /*->123954*/ // 5 children in Scope
/*123902*/        OPC_CheckChild1Integer, 1, 
/*123904*/        OPC_SwitchType /*4 cases */, 10, MVT::i8,// ->123917
/*123907*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*123909*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC8r), 0,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:{ *:[i8] } GR8:{ *:[i8] }:$src, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (INC8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src)
/*123917*/        /*SwitchType*/ 10, MVT::i16,// ->123929
/*123919*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*123921*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC16r), 0,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:{ *:[i16] } GR16:{ *:[i16] }:$src, 1:{ *:[i16] }) - Complexity = 8
                    // Dst: (INC16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
/*123929*/        /*SwitchType*/ 10, MVT::i32,// ->123941
/*123931*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*123933*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC32r), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }) - Complexity = 8
                    // Dst: (INC32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*123941*/        /*SwitchType*/ 10, MVT::i64,// ->123953
/*123943*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*123945*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC64r), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }) - Complexity = 8
                    // Dst: (INC64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*123953*/        0, // EndSwitchType
/*123954*/      /*Scope*/ 61, /*->124016*/
/*123955*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*123966*/        OPC_SwitchType /*4 cases */, 10, MVT::i8,// ->123979
/*123969*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*123971*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC8r), 0,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:{ *:[i8] } GR8:{ *:[i8] }:$src, -1:{ *:[i8] }) - Complexity = 8
                    // Dst: (DEC8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src)
/*123979*/        /*SwitchType*/ 10, MVT::i16,// ->123991
/*123981*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*123983*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC16r), 0,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:{ *:[i16] } GR16:{ *:[i16] }:$src, -1:{ *:[i16] }) - Complexity = 8
                    // Dst: (DEC16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
/*123991*/        /*SwitchType*/ 10, MVT::i32,// ->124003
/*123993*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*123995*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC32r), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }) - Complexity = 8
                    // Dst: (DEC32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*124003*/        /*SwitchType*/ 10, MVT::i64,// ->124015
/*124005*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
/*124007*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC64r), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }) - Complexity = 8
                    // Dst: (DEC64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*124015*/        0, // EndSwitchType
/*124016*/      /*Scope*/ 74, /*->124091*/
/*124017*/        OPC_CheckChild1Integer, 0|128,1/*128*/, 
/*124020*/        OPC_SwitchType /*3 cases */, 21, MVT::i16,// ->124044
/*124023*/          OPC_EmitInteger, MVT::i16, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*124035*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB16ri8), 0,
                        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] })
/*124044*/        /*SwitchType*/ 21, MVT::i32,// ->124067
/*124046*/          OPC_EmitInteger, MVT::i32, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*124058*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB32ri8), 0,
                        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] })
/*124067*/        /*SwitchType*/ 21, MVT::i64,// ->124090
/*124069*/          OPC_EmitInteger, MVT::i64, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*124081*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64ri8), 0,
                        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] })
/*124090*/        0, // EndSwitchType
/*124091*/      /*Scope*/ 29, /*->124121*/
/*124092*/        OPC_CheckChild1Integer, 0|128,0|128,0|128,0|128,8/*2147483648*/, 
/*124098*/        OPC_CheckType, MVT::i64,
/*124100*/        OPC_EmitInteger, MVT::i64, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1/*18446744071562067968*/, 
/*124112*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64ri32), 0,
                      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] })
/*124121*/      /*Scope*/ 41|128,1/*169*/, /*->124292*/
/*124123*/        OPC_RecordChild1, // #1 = $src2
/*124124*/        OPC_Scope, 117, /*->124243*/ // 5 children in Scope
/*124126*/          OPC_MoveChild1,
/*124127*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*124130*/          OPC_Scope, 16, /*->124148*/ // 5 children in Scope
/*124132*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*124134*/            OPC_MoveParent,
/*124135*/            OPC_CheckType, MVT::i16,
/*124137*/            OPC_EmitConvertToTarget, 1,
/*124139*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16ri8), 0,
                          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)
/*124148*/          /*Scope*/ 16, /*->124165*/
/*124149*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*124151*/            OPC_MoveParent,
/*124152*/            OPC_CheckType, MVT::i32,
/*124154*/            OPC_EmitConvertToTarget, 1,
/*124156*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32ri8), 0,
                          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)
/*124165*/          /*Scope*/ 16, /*->124182*/
/*124166*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*124168*/            OPC_MoveParent,
/*124169*/            OPC_CheckType, MVT::i64,
/*124171*/            OPC_EmitConvertToTarget, 1,
/*124173*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64ri8), 0,
                          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)
/*124182*/          /*Scope*/ 16, /*->124199*/
/*124183*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*124185*/            OPC_MoveParent,
/*124186*/            OPC_CheckType, MVT::i64,
/*124188*/            OPC_EmitConvertToTarget, 1,
/*124190*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64ri32), 0,
                          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)
/*124199*/          /*Scope*/ 42, /*->124242*/
/*124200*/            OPC_MoveParent,
/*124201*/            OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->124215
/*124204*/              OPC_EmitConvertToTarget, 1,
/*124206*/              OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8ri), 0,
                            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)
/*124215*/            /*SwitchType*/ 11, MVT::i16,// ->124228
/*124217*/              OPC_EmitConvertToTarget, 1,
/*124219*/              OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16ri), 0,
                            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)
/*124228*/            /*SwitchType*/ 11, MVT::i32,// ->124241
/*124230*/              OPC_EmitConvertToTarget, 1,
/*124232*/              OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32ri), 0,
                            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)
/*124241*/            0, // EndSwitchType
/*124242*/          0, /*End of Scope*/
/*124243*/        /*Scope*/ 11, /*->124255*/
/*124244*/          OPC_CheckType, MVT::i8,
/*124246*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8rr), 0,
                        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)
/*124255*/        /*Scope*/ 11, /*->124267*/
/*124256*/          OPC_CheckType, MVT::i16,
/*124258*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16rr), 0,
                        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)
/*124267*/        /*Scope*/ 11, /*->124279*/
/*124268*/          OPC_CheckType, MVT::i32,
/*124270*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32rr), 0,
                        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)
/*124279*/        /*Scope*/ 11, /*->124291*/
/*124280*/          OPC_CheckType, MVT::i64,
/*124282*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64rr), 0,
                        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)
/*124291*/        0, /*End of Scope*/
/*124292*/      0, /*End of Scope*/
/*124293*/    /*Scope*/ 67, /*->124361*/
/*124294*/      OPC_MoveChild0,
/*124295*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::PMULDQ),
/*124298*/      OPC_MoveChild0,
/*124299*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*124302*/      OPC_MoveChild0,
/*124303*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFD),
/*124306*/      OPC_RecordChild0, // #0 = $src1
/*124307*/      OPC_CheckChild1Integer, 117|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551605*/, 
/*124318*/      OPC_CheckType, MVT::v4i32,
/*124320*/      OPC_MoveParent,
/*124321*/      OPC_MoveParent,
/*124322*/      OPC_MoveChild1,
/*124323*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*124326*/      OPC_MoveChild0,
/*124327*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFD),
/*124330*/      OPC_RecordChild0, // #1 = $src2
/*124331*/      OPC_CheckChild1Integer, 117|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551605*/, 
/*124342*/      OPC_CheckType, MVT::v4i32,
/*124344*/      OPC_MoveParent,
/*124345*/      OPC_MoveParent,
/*124346*/      OPC_MoveParent,
/*124347*/      OPC_RecordChild1, // #2 = $src3
/*124348*/      OPC_CheckType, MVT::v2i64,
/*124350*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*124352*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQHrr), 0,
                    MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (add:{ *:[v2i64] } (X86pmuldq:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86PShufd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, -11:{ *:[i8] })), (bitconvert:{ *:[v2i64] } (X86PShufd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src2, -11:{ *:[i8] }))), VR128:{ *:[v2i64] }:$src3) - Complexity = 28
                // Dst: (VPMACSDQHrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*124361*/    /*Scope*/ 77|128,4/*589*/, /*->124952*/
/*124363*/      OPC_RecordChild0, // #0 = $src1
/*124364*/      OPC_MoveChild1,
/*124365*/      OPC_SwitchOpcode /*2 cases */, 45|128,3/*429*/, TARGET_VAL(ISD::BITCAST),// ->124799
/*124370*/        OPC_MoveChild0,
/*124371*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*124374*/        OPC_RecordMemRef,
/*124375*/        OPC_RecordNode, // #1 = 'ld' chained node
/*124376*/        OPC_CheckFoldableChainNode,
/*124377*/        OPC_RecordChild1, // #2 = $src2
/*124378*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*124380*/        OPC_CheckPredicate, 9, // Predicate_load
/*124382*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*124384*/        OPC_SwitchType /*3 cases */, 83|128,1/*211*/, MVT::v2i64,// ->124599
/*124388*/          OPC_Scope, 22, /*->124412*/ // 7 children in Scope
/*124390*/            OPC_MoveParent,
/*124391*/            OPC_MoveParent,
/*124392*/            OPC_CheckType, MVT::v16i8,
/*124394*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*124396*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124399*/            OPC_EmitMergeInputChains1_1,
/*124400*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>)) - Complexity = 28
                      // Dst: (VPADDBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124412*/          /*Scope*/ 24, /*->124437*/
/*124413*/            OPC_CheckPredicate, 48, // Predicate_memop
/*124415*/            OPC_MoveParent,
/*124416*/            OPC_MoveParent,
/*124417*/            OPC_CheckType, MVT::v16i8,
/*124419*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*124421*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124424*/            OPC_EmitMergeInputChains1_1,
/*124425*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PADDBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124437*/          /*Scope*/ 22, /*->124460*/
/*124438*/            OPC_MoveParent,
/*124439*/            OPC_MoveParent,
/*124440*/            OPC_CheckType, MVT::v8i16,
/*124442*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*124444*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124447*/            OPC_EmitMergeInputChains1_1,
/*124448*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>)) - Complexity = 28
                      // Dst: (VPADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124460*/          /*Scope*/ 24, /*->124485*/
/*124461*/            OPC_CheckPredicate, 48, // Predicate_memop
/*124463*/            OPC_MoveParent,
/*124464*/            OPC_MoveParent,
/*124465*/            OPC_CheckType, MVT::v8i16,
/*124467*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*124469*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124472*/            OPC_EmitMergeInputChains1_1,
/*124473*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124485*/          /*Scope*/ 22, /*->124508*/
/*124486*/            OPC_MoveParent,
/*124487*/            OPC_MoveParent,
/*124488*/            OPC_CheckType, MVT::v4i32,
/*124490*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*124492*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124495*/            OPC_EmitMergeInputChains1_1,
/*124496*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>)) - Complexity = 28
                      // Dst: (VPADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124508*/          /*Scope*/ 24, /*->124533*/
/*124509*/            OPC_CheckPredicate, 48, // Predicate_memop
/*124511*/            OPC_MoveParent,
/*124512*/            OPC_MoveParent,
/*124513*/            OPC_CheckType, MVT::v4i32,
/*124515*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*124517*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124520*/            OPC_EmitMergeInputChains1_1,
/*124521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124533*/          /*Scope*/ 64, /*->124598*/
/*124534*/            OPC_MoveParent,
/*124535*/            OPC_MoveParent,
/*124536*/            OPC_SwitchType /*3 cases */, 18, MVT::v4i32,// ->124557
/*124539*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*124541*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124544*/              OPC_EmitMergeInputChains1_1,
/*124545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPADDDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124557*/            /*SwitchType*/ 18, MVT::v8i16,// ->124577
/*124559*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*124561*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124564*/              OPC_EmitMergeInputChains1_1,
/*124565*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPADDWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124577*/            /*SwitchType*/ 18, MVT::v16i8,// ->124597
/*124579*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*124581*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124584*/              OPC_EmitMergeInputChains1_1,
/*124585*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPADDBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124597*/            0, // EndSwitchType
/*124598*/          0, /*End of Scope*/
/*124599*/        /*SwitchType*/ 2|128,1/*130*/, MVT::v4i64,// ->124732
/*124602*/          OPC_MoveParent,
/*124603*/          OPC_MoveParent,
/*124604*/          OPC_SwitchType /*3 cases */, 40, MVT::v32i8,// ->124647
/*124607*/            OPC_Scope, 18, /*->124627*/ // 2 children in Scope
/*124609*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*124611*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124614*/              OPC_EmitMergeInputChains1_1,
/*124615*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPADDBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124627*/            /*Scope*/ 18, /*->124646*/
/*124628*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*124630*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124633*/              OPC_EmitMergeInputChains1_1,
/*124634*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPADDBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124646*/            0, /*End of Scope*/
/*124647*/          /*SwitchType*/ 40, MVT::v16i16,// ->124689
/*124649*/            OPC_Scope, 18, /*->124669*/ // 2 children in Scope
/*124651*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*124653*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124656*/              OPC_EmitMergeInputChains1_1,
/*124657*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPADDWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124669*/            /*Scope*/ 18, /*->124688*/
/*124670*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*124672*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124675*/              OPC_EmitMergeInputChains1_1,
/*124676*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPADDWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124688*/            0, /*End of Scope*/
/*124689*/          /*SwitchType*/ 40, MVT::v8i32,// ->124731
/*124691*/            OPC_Scope, 18, /*->124711*/ // 2 children in Scope
/*124693*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*124695*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124698*/              OPC_EmitMergeInputChains1_1,
/*124699*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPADDDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124711*/            /*Scope*/ 18, /*->124730*/
/*124712*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*124714*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124717*/              OPC_EmitMergeInputChains1_1,
/*124718*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPADDDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124730*/            0, /*End of Scope*/
/*124731*/          0, // EndSwitchType
/*124732*/        /*SwitchType*/ 64, MVT::v8i64,// ->124798
/*124734*/          OPC_MoveParent,
/*124735*/          OPC_MoveParent,
/*124736*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->124757
/*124739*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*124741*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124744*/            OPC_EmitMergeInputChains1_1,
/*124745*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124757*/          /*SwitchType*/ 18, MVT::v32i16,// ->124777
/*124759*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*124761*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124764*/            OPC_EmitMergeInputChains1_1,
/*124765*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124777*/          /*SwitchType*/ 18, MVT::v64i8,// ->124797
/*124779*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*124781*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124784*/            OPC_EmitMergeInputChains1_1,
/*124785*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124797*/          0, // EndSwitchType
/*124798*/        0, // EndSwitchType
/*124799*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->124951
/*124803*/        OPC_MoveChild0,
/*124804*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*124807*/        OPC_RecordMemRef,
/*124808*/        OPC_RecordNode, // #1 = 'ld' chained node
/*124809*/        OPC_CheckFoldableChainNode,
/*124810*/        OPC_RecordChild1, // #2 = $src2
/*124811*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*124813*/        OPC_SwitchType /*2 cases */, 66, MVT::i64,// ->124882
/*124816*/          OPC_CheckPredicate, 9, // Predicate_load
/*124818*/          OPC_MoveParent,
/*124819*/          OPC_MoveParent,
/*124820*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->124841
/*124823*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*124825*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124828*/            OPC_EmitMergeInputChains1_1,
/*124829*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPADDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124841*/          /*SwitchType*/ 18, MVT::v4i64,// ->124861
/*124843*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*124845*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124848*/            OPC_EmitMergeInputChains1_1,
/*124849*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPADDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124861*/          /*SwitchType*/ 18, MVT::v2i64,// ->124881
/*124863*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*124865*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124868*/            OPC_EmitMergeInputChains1_1,
/*124869*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPADDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124881*/          0, // EndSwitchType
/*124882*/        /*SwitchType*/ 66, MVT::i32,// ->124950
/*124884*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*124886*/          OPC_MoveParent,
/*124887*/          OPC_MoveParent,
/*124888*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->124909
/*124891*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*124893*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124896*/            OPC_EmitMergeInputChains1_1,
/*124897*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPADDDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124909*/          /*SwitchType*/ 18, MVT::v8i32,// ->124929
/*124911*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*124913*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124916*/            OPC_EmitMergeInputChains1_1,
/*124917*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPADDDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124929*/          /*SwitchType*/ 18, MVT::v4i32,// ->124949
/*124931*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*124933*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124936*/            OPC_EmitMergeInputChains1_1,
/*124937*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPADDDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124949*/          0, // EndSwitchType
/*124950*/        0, // EndSwitchType
/*124951*/      0, // EndSwitchOpcode
/*124952*/    /*Scope*/ 87|128,4/*599*/, /*->125553*/
/*124954*/      OPC_MoveChild0,
/*124955*/      OPC_SwitchOpcode /*2 cases */, 54|128,3/*438*/, TARGET_VAL(ISD::BITCAST),// ->125398
/*124960*/        OPC_MoveChild0,
/*124961*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*124964*/        OPC_RecordMemRef,
/*124965*/        OPC_RecordNode, // #0 = 'ld' chained node
/*124966*/        OPC_CheckFoldableChainNode,
/*124967*/        OPC_RecordChild1, // #1 = $src2
/*124968*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*124970*/        OPC_CheckPredicate, 9, // Predicate_load
/*124972*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*124974*/        OPC_SwitchType /*3 cases */, 90|128,1/*218*/, MVT::v2i64,// ->125196
/*124978*/          OPC_Scope, 23, /*->125003*/ // 7 children in Scope
/*124980*/            OPC_MoveParent,
/*124981*/            OPC_MoveParent,
/*124982*/            OPC_RecordChild1, // #2 = $src1
/*124983*/            OPC_CheckType, MVT::v16i8,
/*124985*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*124987*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124990*/            OPC_EmitMergeInputChains1_0,
/*124991*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                      // Dst: (VPADDBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125003*/          /*Scope*/ 25, /*->125029*/
/*125004*/            OPC_CheckPredicate, 48, // Predicate_memop
/*125006*/            OPC_MoveParent,
/*125007*/            OPC_MoveParent,
/*125008*/            OPC_RecordChild1, // #2 = $src1
/*125009*/            OPC_CheckType, MVT::v16i8,
/*125011*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*125013*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125016*/            OPC_EmitMergeInputChains1_0,
/*125017*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                      // Dst: (PADDBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125029*/          /*Scope*/ 23, /*->125053*/
/*125030*/            OPC_MoveParent,
/*125031*/            OPC_MoveParent,
/*125032*/            OPC_RecordChild1, // #2 = $src1
/*125033*/            OPC_CheckType, MVT::v8i16,
/*125035*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*125037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125040*/            OPC_EmitMergeInputChains1_0,
/*125041*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                      // Dst: (VPADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125053*/          /*Scope*/ 25, /*->125079*/
/*125054*/            OPC_CheckPredicate, 48, // Predicate_memop
/*125056*/            OPC_MoveParent,
/*125057*/            OPC_MoveParent,
/*125058*/            OPC_RecordChild1, // #2 = $src1
/*125059*/            OPC_CheckType, MVT::v8i16,
/*125061*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*125063*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125066*/            OPC_EmitMergeInputChains1_0,
/*125067*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                      // Dst: (PADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125079*/          /*Scope*/ 23, /*->125103*/
/*125080*/            OPC_MoveParent,
/*125081*/            OPC_MoveParent,
/*125082*/            OPC_RecordChild1, // #2 = $src1
/*125083*/            OPC_CheckType, MVT::v4i32,
/*125085*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*125087*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125090*/            OPC_EmitMergeInputChains1_0,
/*125091*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                      // Dst: (VPADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125103*/          /*Scope*/ 25, /*->125129*/
/*125104*/            OPC_CheckPredicate, 48, // Predicate_memop
/*125106*/            OPC_MoveParent,
/*125107*/            OPC_MoveParent,
/*125108*/            OPC_RecordChild1, // #2 = $src1
/*125109*/            OPC_CheckType, MVT::v4i32,
/*125111*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*125113*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125116*/            OPC_EmitMergeInputChains1_0,
/*125117*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                      // Dst: (PADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125129*/          /*Scope*/ 65, /*->125195*/
/*125130*/            OPC_MoveParent,
/*125131*/            OPC_MoveParent,
/*125132*/            OPC_RecordChild1, // #2 = $src1
/*125133*/            OPC_SwitchType /*3 cases */, 18, MVT::v4i32,// ->125154
/*125136*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*125138*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125141*/              OPC_EmitMergeInputChains1_0,
/*125142*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPADDDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125154*/            /*SwitchType*/ 18, MVT::v8i16,// ->125174
/*125156*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*125158*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125161*/              OPC_EmitMergeInputChains1_0,
/*125162*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                        // Dst: (VPADDWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125174*/            /*SwitchType*/ 18, MVT::v16i8,// ->125194
/*125176*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*125178*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125181*/              OPC_EmitMergeInputChains1_0,
/*125182*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>), VR128X:{ *:[v16i8] }:$src1) - Complexity = 28
                        // Dst: (VPADDBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125194*/            0, // EndSwitchType
/*125195*/          0, /*End of Scope*/
/*125196*/        /*SwitchType*/ 3|128,1/*131*/, MVT::v4i64,// ->125330
/*125199*/          OPC_MoveParent,
/*125200*/          OPC_MoveParent,
/*125201*/          OPC_RecordChild1, // #2 = $src1
/*125202*/          OPC_SwitchType /*3 cases */, 40, MVT::v32i8,// ->125245
/*125205*/            OPC_Scope, 18, /*->125225*/ // 2 children in Scope
/*125207*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*125209*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125212*/              OPC_EmitMergeInputChains1_0,
/*125213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPADDBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125225*/            /*Scope*/ 18, /*->125244*/
/*125226*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*125228*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125231*/              OPC_EmitMergeInputChains1_0,
/*125232*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPADDBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125244*/            0, /*End of Scope*/
/*125245*/          /*SwitchType*/ 40, MVT::v16i16,// ->125287
/*125247*/            OPC_Scope, 18, /*->125267*/ // 2 children in Scope
/*125249*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*125251*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125254*/              OPC_EmitMergeInputChains1_0,
/*125255*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPADDWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125267*/            /*Scope*/ 18, /*->125286*/
/*125268*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*125270*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125273*/              OPC_EmitMergeInputChains1_0,
/*125274*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPADDWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125286*/            0, /*End of Scope*/
/*125287*/          /*SwitchType*/ 40, MVT::v8i32,// ->125329
/*125289*/            OPC_Scope, 18, /*->125309*/ // 2 children in Scope
/*125291*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*125293*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125296*/              OPC_EmitMergeInputChains1_0,
/*125297*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPADDDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125309*/            /*Scope*/ 18, /*->125328*/
/*125310*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*125312*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125315*/              OPC_EmitMergeInputChains1_0,
/*125316*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPADDDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125328*/            0, /*End of Scope*/
/*125329*/          0, // EndSwitchType
/*125330*/        /*SwitchType*/ 65, MVT::v8i64,// ->125397
/*125332*/          OPC_MoveParent,
/*125333*/          OPC_MoveParent,
/*125334*/          OPC_RecordChild1, // #2 = $src1
/*125335*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->125356
/*125338*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125340*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125343*/            OPC_EmitMergeInputChains1_0,
/*125344*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPADDDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125356*/          /*SwitchType*/ 18, MVT::v32i16,// ->125376
/*125358*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*125360*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125363*/            OPC_EmitMergeInputChains1_0,
/*125364*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                      // Dst: (VPADDWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125376*/          /*SwitchType*/ 18, MVT::v64i8,// ->125396
/*125378*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*125380*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125383*/            OPC_EmitMergeInputChains1_0,
/*125384*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1) - Complexity = 28
                      // Dst: (VPADDBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125396*/          0, // EndSwitchType
/*125397*/        0, // EndSwitchType
/*125398*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST),// ->125552
/*125402*/        OPC_MoveChild0,
/*125403*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*125406*/        OPC_RecordMemRef,
/*125407*/        OPC_RecordNode, // #0 = 'ld' chained node
/*125408*/        OPC_CheckFoldableChainNode,
/*125409*/        OPC_RecordChild1, // #1 = $src2
/*125410*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*125412*/        OPC_SwitchType /*2 cases */, 67, MVT::i64,// ->125482
/*125415*/          OPC_CheckPredicate, 9, // Predicate_load
/*125417*/          OPC_MoveParent,
/*125418*/          OPC_MoveParent,
/*125419*/          OPC_RecordChild1, // #2 = $src1
/*125420*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->125441
/*125423*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125425*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125428*/            OPC_EmitMergeInputChains1_0,
/*125429*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                      // Dst: (VPADDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125441*/          /*SwitchType*/ 18, MVT::v4i64,// ->125461
/*125443*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*125445*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125448*/            OPC_EmitMergeInputChains1_0,
/*125449*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                      // Dst: (VPADDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125461*/          /*SwitchType*/ 18, MVT::v2i64,// ->125481
/*125463*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*125465*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125468*/            OPC_EmitMergeInputChains1_0,
/*125469*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                      // Dst: (VPADDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125481*/          0, // EndSwitchType
/*125482*/        /*SwitchType*/ 67, MVT::i32,// ->125551
/*125484*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*125486*/          OPC_MoveParent,
/*125487*/          OPC_MoveParent,
/*125488*/          OPC_RecordChild1, // #2 = $src1
/*125489*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->125510
/*125492*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125494*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125497*/            OPC_EmitMergeInputChains1_0,
/*125498*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPADDDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125510*/          /*SwitchType*/ 18, MVT::v8i32,// ->125530
/*125512*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*125514*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125517*/            OPC_EmitMergeInputChains1_0,
/*125518*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                      // Dst: (VPADDDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125530*/          /*SwitchType*/ 18, MVT::v4i32,// ->125550
/*125532*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*125534*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125537*/            OPC_EmitMergeInputChains1_0,
/*125538*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                      // Dst: (VPADDDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125550*/          0, // EndSwitchType
/*125551*/        0, // EndSwitchType
/*125552*/      0, // EndSwitchOpcode
/*125553*/    /*Scope*/ 89|128,1/*217*/, /*->125772*/
/*125555*/      OPC_RecordChild0, // #0 = $src3
/*125556*/      OPC_MoveChild1,
/*125557*/      OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(X86ISD::PMULDQ),// ->125623
/*125561*/        OPC_MoveChild0,
/*125562*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*125565*/        OPC_MoveChild0,
/*125566*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFD),
/*125569*/        OPC_RecordChild0, // #1 = $src1
/*125570*/        OPC_CheckChild1Integer, 117|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551605*/, 
/*125581*/        OPC_CheckType, MVT::v4i32,
/*125583*/        OPC_MoveParent,
/*125584*/        OPC_MoveParent,
/*125585*/        OPC_MoveChild1,
/*125586*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*125589*/        OPC_MoveChild0,
/*125590*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFD),
/*125593*/        OPC_RecordChild0, // #2 = $src2
/*125594*/        OPC_CheckChild1Integer, 117|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551605*/, 
/*125605*/        OPC_CheckType, MVT::v4i32,
/*125607*/        OPC_MoveParent,
/*125608*/        OPC_MoveParent,
/*125609*/        OPC_MoveParent,
/*125610*/        OPC_CheckType, MVT::v2i64,
/*125612*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*125614*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQHrr), 0,
                      MVT::v2i64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (add:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, (X86pmuldq:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86PShufd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, -11:{ *:[i8] })), (bitconvert:{ *:[v2i64] } (X86PShufd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src2, -11:{ *:[i8] })))) - Complexity = 28
                  // Dst: (VPMACSDQHrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*125623*/      /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::LOAD),// ->125771
/*125627*/        OPC_RecordMemRef,
/*125628*/        OPC_RecordNode, // #1 = 'ld' chained node
/*125629*/        OPC_CheckFoldableChainNode,
/*125630*/        OPC_RecordChild1, // #2 = $src2
/*125631*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*125633*/        OPC_CheckPredicate, 9, // Predicate_load
/*125635*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*125637*/        OPC_Scope, 21, /*->125660*/ // 3 children in Scope
/*125639*/          OPC_MoveParent,
/*125640*/          OPC_CheckType, MVT::v2i64,
/*125642*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*125644*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125647*/          OPC_EmitMergeInputChains1_1,
/*125648*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VPADDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125660*/        /*Scope*/ 23, /*->125684*/
/*125661*/          OPC_CheckPredicate, 48, // Predicate_memop
/*125663*/          OPC_MoveParent,
/*125664*/          OPC_CheckType, MVT::v2i64,
/*125666*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*125668*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125671*/          OPC_EmitMergeInputChains1_1,
/*125672*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PADDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125684*/        /*Scope*/ 85, /*->125770*/
/*125685*/          OPC_MoveParent,
/*125686*/          OPC_SwitchType /*3 cases */, 40, MVT::v4i64,// ->125729
/*125689*/            OPC_Scope, 18, /*->125709*/ // 2 children in Scope
/*125691*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*125693*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125696*/              OPC_EmitMergeInputChains1_1,
/*125697*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPADDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125709*/            /*Scope*/ 18, /*->125728*/
/*125710*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*125712*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125715*/              OPC_EmitMergeInputChains1_1,
/*125716*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPADDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125728*/            0, /*End of Scope*/
/*125729*/          /*SwitchType*/ 18, MVT::v8i64,// ->125749
/*125731*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125733*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125736*/            OPC_EmitMergeInputChains1_1,
/*125737*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPADDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125749*/          /*SwitchType*/ 18, MVT::v2i64,// ->125769
/*125751*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*125753*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125756*/            OPC_EmitMergeInputChains1_1,
/*125757*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPADDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125769*/          0, // EndSwitchType
/*125770*/        0, /*End of Scope*/
/*125771*/      0, // EndSwitchOpcode
/*125772*/    /*Scope*/ 101|128,1/*229*/, /*->126003*/
/*125774*/      OPC_MoveChild0,
/*125775*/      OPC_SwitchOpcode /*4 cases */, 19|128,1/*147*/, TARGET_VAL(ISD::LOAD),// ->125927
/*125780*/        OPC_RecordMemRef,
/*125781*/        OPC_RecordNode, // #0 = 'ld' chained node
/*125782*/        OPC_CheckFoldableChainNode,
/*125783*/        OPC_RecordChild1, // #1 = $src2
/*125784*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*125786*/        OPC_CheckPredicate, 9, // Predicate_load
/*125788*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*125790*/        OPC_Scope, 22, /*->125814*/ // 3 children in Scope
/*125792*/          OPC_MoveParent,
/*125793*/          OPC_RecordChild1, // #2 = $src1
/*125794*/          OPC_CheckType, MVT::v2i64,
/*125796*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*125798*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125801*/          OPC_EmitMergeInputChains1_0,
/*125802*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPADDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125814*/        /*Scope*/ 24, /*->125839*/
/*125815*/          OPC_CheckPredicate, 48, // Predicate_memop
/*125817*/          OPC_MoveParent,
/*125818*/          OPC_RecordChild1, // #2 = $src1
/*125819*/          OPC_CheckType, MVT::v2i64,
/*125821*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*125823*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125826*/          OPC_EmitMergeInputChains1_0,
/*125827*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (PADDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125839*/        /*Scope*/ 86, /*->125926*/
/*125840*/          OPC_MoveParent,
/*125841*/          OPC_RecordChild1, // #2 = $src1
/*125842*/          OPC_SwitchType /*3 cases */, 40, MVT::v4i64,// ->125885
/*125845*/            OPC_Scope, 18, /*->125865*/ // 2 children in Scope
/*125847*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*125849*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125852*/              OPC_EmitMergeInputChains1_0,
/*125853*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPADDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125865*/            /*Scope*/ 18, /*->125884*/
/*125866*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*125868*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125871*/              OPC_EmitMergeInputChains1_0,
/*125872*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (add:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPADDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125884*/            0, /*End of Scope*/
/*125885*/          /*SwitchType*/ 18, MVT::v8i64,// ->125905
/*125887*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125889*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125892*/            OPC_EmitMergeInputChains1_0,
/*125893*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPADDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125905*/          /*SwitchType*/ 18, MVT::v2i64,// ->125925
/*125907*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*125909*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*125912*/            OPC_EmitMergeInputChains1_0,
/*125913*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPADDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*125925*/          0, // EndSwitchType
/*125926*/        0, /*End of Scope*/
/*125927*/      /*SwitchOpcode*/ 32, TARGET_VAL(ISD::MUL),// ->125962
/*125930*/        OPC_RecordChild0, // #0 = $src1
/*125931*/        OPC_RecordChild1, // #1 = $src2
/*125932*/        OPC_MoveParent,
/*125933*/        OPC_RecordChild1, // #2 = $src3
/*125934*/        OPC_SwitchType /*2 cases */, 11, MVT::v8i16,// ->125948
/*125937*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*125939*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSWWrr), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2), VR128:{ *:[v8i16] }:$src3) - Complexity = 6
                    // Dst: (VPMACSWWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
/*125948*/        /*SwitchType*/ 11, MVT::v4i32,// ->125961
/*125950*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*125952*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDDrr), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2), VR128:{ *:[v4i32] }:$src3) - Complexity = 6
                    // Dst: (VPMACSDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
/*125961*/        0, // EndSwitchType
/*125962*/      /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::PMULDQ),// ->125982
/*125965*/        OPC_RecordChild0, // #0 = $src1
/*125966*/        OPC_RecordChild1, // #1 = $src2
/*125967*/        OPC_MoveParent,
/*125968*/        OPC_RecordChild1, // #2 = $src3
/*125969*/        OPC_CheckType, MVT::v2i64,
/*125971*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*125973*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQLrr), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (add:{ *:[v2i64] } (X86pmuldq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2), VR128:{ *:[v2i64] }:$src3) - Complexity = 6
                  // Dst: (VPMACSDQLrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*125982*/      /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::VPMADDWD),// ->126002
/*125985*/        OPC_RecordChild0, // #0 = $src1
/*125986*/        OPC_RecordChild1, // #1 = $src2
/*125987*/        OPC_MoveParent,
/*125988*/        OPC_RecordChild1, // #2 = $src3
/*125989*/        OPC_CheckType, MVT::v4i32,
/*125991*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*125993*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADCSWDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (add:{ *:[v4i32] } (X86vpmaddwd:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2), VR128:{ *:[v4i32] }:$src3) - Complexity = 6
                  // Dst: (VPMADCSWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3)
/*126002*/      0, // EndSwitchOpcode
/*126003*/    /*Scope*/ 0|128,3/*384*/, /*->126389*/
/*126005*/      OPC_RecordChild0, // #0 = $src3
/*126006*/      OPC_Scope, 75, /*->126083*/ // 2 children in Scope
/*126008*/        OPC_MoveChild1,
/*126009*/        OPC_SwitchOpcode /*3 cases */, 31, TARGET_VAL(ISD::MUL),// ->126044
/*126013*/          OPC_RecordChild0, // #1 = $src1
/*126014*/          OPC_RecordChild1, // #2 = $src2
/*126015*/          OPC_MoveParent,
/*126016*/          OPC_SwitchType /*2 cases */, 11, MVT::v8i16,// ->126030
/*126019*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*126021*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSWWrr), 0,
                          MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (add:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, (mul:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)) - Complexity = 6
                      // Dst: (VPMACSWWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
/*126030*/          /*SwitchType*/ 11, MVT::v4i32,// ->126043
/*126032*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*126034*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDDrr), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (add:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, (mul:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)) - Complexity = 6
                      // Dst: (VPMACSDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
/*126043*/          0, // EndSwitchType
/*126044*/        /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::PMULDQ),// ->126063
/*126047*/          OPC_RecordChild0, // #1 = $src1
/*126048*/          OPC_RecordChild1, // #2 = $src2
/*126049*/          OPC_MoveParent,
/*126050*/          OPC_CheckType, MVT::v2i64,
/*126052*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*126054*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQLrr), 0,
                        MVT::v2i64, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (add:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, (X86pmuldq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)) - Complexity = 6
                    // Dst: (VPMACSDQLrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*126063*/        /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::VPMADDWD),// ->126082
/*126066*/          OPC_RecordChild0, // #1 = $src1
/*126067*/          OPC_RecordChild1, // #2 = $src2
/*126068*/          OPC_MoveParent,
/*126069*/          OPC_CheckType, MVT::v4i32,
/*126071*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*126073*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADCSWDrr), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (add:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, (X86vpmaddwd:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)) - Complexity = 6
                    // Dst: (VPMADCSWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3)
/*126082*/        0, // EndSwitchOpcode
/*126083*/      /*Scope*/ 47|128,2/*303*/, /*->126388*/
/*126085*/        OPC_RecordChild1, // #1 = $src2
/*126086*/        OPC_SwitchType /*12 cases */, 35, MVT::v16i8,// ->126124
/*126089*/          OPC_Scope, 10, /*->126101*/ // 3 children in Scope
/*126091*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*126093*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBrr), 0,
                          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)
/*126101*/          /*Scope*/ 10, /*->126112*/
/*126102*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*126104*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PADDBrr), 0,
                          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)
/*126112*/          /*Scope*/ 10, /*->126123*/
/*126113*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*126115*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ128rr), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                      // Dst: (VPADDBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*126123*/          0, /*End of Scope*/
/*126124*/        /*SwitchType*/ 24, MVT::v32i8,// ->126150
/*126126*/          OPC_Scope, 10, /*->126138*/ // 2 children in Scope
/*126128*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*126130*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBYrr), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                      // Dst: (VPADDBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*126138*/          /*Scope*/ 10, /*->126149*/
/*126139*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*126141*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ256rr), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                      // Dst: (VPADDBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*126149*/          0, /*End of Scope*/
/*126150*/        /*SwitchType*/ 35, MVT::v8i16,// ->126187
/*126152*/          OPC_Scope, 10, /*->126164*/ // 3 children in Scope
/*126154*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*126156*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWrr), 0,
                          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)
/*126164*/          /*Scope*/ 10, /*->126175*/
/*126165*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*126167*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PADDWrr), 0,
                          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)
/*126175*/          /*Scope*/ 10, /*->126186*/
/*126176*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*126178*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ128rr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPADDWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*126186*/          0, /*End of Scope*/
/*126187*/        /*SwitchType*/ 24, MVT::v16i16,// ->126213
/*126189*/          OPC_Scope, 10, /*->126201*/ // 2 children in Scope
/*126191*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*126193*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWYrr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (VPADDWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*126201*/          /*Scope*/ 10, /*->126212*/
/*126202*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*126204*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ256rr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (VPADDWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*126212*/          0, /*End of Scope*/
/*126213*/        /*SwitchType*/ 35, MVT::v4i32,// ->126250
/*126215*/          OPC_Scope, 10, /*->126227*/ // 3 children in Scope
/*126217*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*126219*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDrr), 0,
                          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)
/*126227*/          /*Scope*/ 10, /*->126238*/
/*126228*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*126230*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PADDDrr), 0,
                          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)
/*126238*/          /*Scope*/ 10, /*->126249*/
/*126239*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*126241*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPADDDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*126249*/          0, /*End of Scope*/
/*126250*/        /*SwitchType*/ 24, MVT::v8i32,// ->126276
/*126252*/          OPC_Scope, 10, /*->126264*/ // 2 children in Scope
/*126254*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*126256*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDYrr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPADDDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*126264*/          /*Scope*/ 10, /*->126275*/
/*126265*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*126267*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPADDDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*126275*/          0, /*End of Scope*/
/*126276*/        /*SwitchType*/ 35, MVT::v2i64,// ->126313
/*126278*/          OPC_Scope, 10, /*->126290*/ // 3 children in Scope
/*126280*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*126282*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQrr), 0,
                          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)
/*126290*/          /*Scope*/ 10, /*->126301*/
/*126291*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*126293*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PADDQrr), 0,
                          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)
/*126301*/          /*Scope*/ 10, /*->126312*/
/*126302*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*126304*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPADDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*126312*/          0, /*End of Scope*/
/*126313*/        /*SwitchType*/ 24, MVT::v4i64,// ->126339
/*126315*/          OPC_Scope, 10, /*->126327*/ // 2 children in Scope
/*126317*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*126319*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQYrr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (VPADDQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*126327*/          /*Scope*/ 10, /*->126338*/
/*126328*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*126330*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (VPADDQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*126338*/          0, /*End of Scope*/
/*126339*/        /*SwitchType*/ 10, MVT::v8i64,// ->126351
/*126341*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*126343*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrr), 0,
                        MVT::v8i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                    // Dst: (VPADDQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*126351*/        /*SwitchType*/ 10, MVT::v16i32,// ->126363
/*126353*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*126355*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                    // Dst: (VPADDDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*126363*/        /*SwitchType*/ 10, MVT::v32i16,// ->126375
/*126365*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*126367*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZrr), 0,
                        MVT::v32i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*126375*/        /*SwitchType*/ 10, MVT::v64i8,// ->126387
/*126377*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*126379*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*126387*/        0, // EndSwitchType
/*126388*/      0, /*End of Scope*/
/*126389*/    0, /*End of Scope*/
/*126390*/  /*SwitchOpcode*/ 38|128,13/*1702*/, TARGET_VAL(ISD::SUB),// ->128096
/*126394*/    OPC_Scope, 46|128,1/*174*/, /*->126571*/ // 5 children in Scope
/*126397*/      OPC_RecordChild0, // #0 = $src1
/*126398*/      OPC_MoveChild1,
/*126399*/      OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(ISD::LOAD),// ->126503
/*126403*/        OPC_RecordMemRef,
/*126404*/        OPC_RecordNode, // #1 = 'ld' chained node
/*126405*/        OPC_CheckFoldableChainNode,
/*126406*/        OPC_RecordChild1, // #2 = $src2
/*126407*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*126409*/        OPC_Scope, 22, /*->126433*/ // 4 children in Scope
/*126411*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*126413*/          OPC_MoveParent,
/*126414*/          OPC_CheckType, MVT::i8,
/*126416*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*126419*/          OPC_EmitMergeInputChains1_1,
/*126420*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB8rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_loadi8>>) - Complexity = 25
                    // Dst: (SUB8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*126433*/        /*Scope*/ 22, /*->126456*/
/*126434*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*126436*/          OPC_MoveParent,
/*126437*/          OPC_CheckType, MVT::i16,
/*126439*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*126442*/          OPC_EmitMergeInputChains1_1,
/*126443*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB16rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*126456*/        /*Scope*/ 22, /*->126479*/
/*126457*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*126459*/          OPC_MoveParent,
/*126460*/          OPC_CheckType, MVT::i32,
/*126462*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*126465*/          OPC_EmitMergeInputChains1_1,
/*126466*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*126479*/        /*Scope*/ 22, /*->126502*/
/*126480*/          OPC_CheckPredicate, 9, // Predicate_load
/*126482*/          OPC_MoveParent,
/*126483*/          OPC_CheckType, MVT::i64,
/*126485*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*126488*/          OPC_EmitMergeInputChains1_1,
/*126489*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*126502*/        0, /*End of Scope*/
/*126503*/      /*SwitchOpcode*/ 64, TARGET_VAL(ISD::AND),// ->126570
/*126506*/        OPC_MoveChild0,
/*126507*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*126510*/        OPC_CheckChild0Integer, 2, 
/*126512*/        OPC_RecordChild1, // #1 = physreg input EFLAGS
/*126513*/        OPC_MoveParent,
/*126514*/        OPC_CheckChild1Integer, 1, 
/*126516*/        OPC_MoveParent,
/*126517*/        OPC_SwitchType /*3 cases */, 15, MVT::i8,// ->126535
/*126520*/          OPC_EmitInteger, MVT::i8, 0, 
/*126523*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*126526*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SBB8ri), 0|OPFL_GlueInput,
                        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] })
/*126535*/        /*SwitchType*/ 15, MVT::i32,// ->126552
/*126537*/          OPC_EmitInteger, MVT::i32, 0, 
/*126540*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*126543*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SBB32ri8), 0|OPFL_GlueInput,
                        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] })
/*126552*/        /*SwitchType*/ 15, MVT::i64,// ->126569
/*126554*/          OPC_EmitInteger, MVT::i64, 0, 
/*126557*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*126560*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SBB64ri8), 0|OPFL_GlueInput,
                        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] })
/*126569*/        0, // EndSwitchType
/*126570*/      0, // EndSwitchOpcode
/*126571*/    /*Scope*/ 57, /*->126629*/
/*126572*/      OPC_RecordNode, // #0 = $src
/*126573*/      OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->126612
/*126576*/        OPC_Scope, 16, /*->126594*/ // 2 children in Scope
/*126578*/          OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*126580*/          OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*126583*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LEA32r), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: lea32addr:{ *:[i32] }:$src - Complexity = 18
                    // Dst: (LEA32r:{ *:[i32] } lea32addr:{ *:[i32] }:$src)
/*126594*/        /*Scope*/ 16, /*->126611*/
/*126595*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*126597*/          OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/*126600*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64_32r), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: lea64_32addr:{ *:[i32] }:$src - Complexity = 18
                    // Dst: (LEA64_32r:{ *:[i32] } lea64_32addr:{ *:[i32] }:$src)
/*126611*/        0, /*End of Scope*/
/*126612*/      /*SwitchType*/ 14, MVT::i64,// ->126628
/*126614*/        OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*126617*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64r), 0,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea64addr:{ *:[i64] }:$src - Complexity = 18
                  // Dst: (LEA64r:{ *:[i64] } lea64addr:{ *:[i64] }:$src)
/*126628*/      0, // EndSwitchType
/*126629*/    /*Scope*/ 71|128,1/*199*/, /*->126830*/
/*126631*/      OPC_RecordChild0, // #0 = $src2
/*126632*/      OPC_Scope, 4|128,1/*132*/, /*->126767*/ // 2 children in Scope
/*126635*/        OPC_MoveChild0,
/*126636*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*126639*/        OPC_Scope, 19, /*->126660*/ // 5 children in Scope
/*126641*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*126643*/          OPC_MoveParent,
/*126644*/          OPC_RecordChild1, // #1 = $src1
/*126645*/          OPC_CheckPredicate, 57, // Predicate_sub_is_xor
/*126647*/          OPC_CheckType, MVT::i16,
/*126649*/          OPC_EmitConvertToTarget, 0,
/*126651*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16ri8), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (sub:{ *:[i16] } (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2, GR16:{ *:[i16] }:$src1)<<P:Predicate_sub_is_xor>> - Complexity = 13
                    // Dst: (XOR16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)
/*126660*/        /*Scope*/ 19, /*->126680*/
/*126661*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*126663*/          OPC_MoveParent,
/*126664*/          OPC_RecordChild1, // #1 = $src1
/*126665*/          OPC_CheckPredicate, 57, // Predicate_sub_is_xor
/*126667*/          OPC_CheckType, MVT::i32,
/*126669*/          OPC_EmitConvertToTarget, 0,
/*126671*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32ri8), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (sub:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2, GR32:{ *:[i32] }:$src1)<<P:Predicate_sub_is_xor>> - Complexity = 13
                    // Dst: (XOR32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)
/*126680*/        /*Scope*/ 19, /*->126700*/
/*126681*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*126683*/          OPC_MoveParent,
/*126684*/          OPC_RecordChild1, // #1 = $src1
/*126685*/          OPC_CheckPredicate, 57, // Predicate_sub_is_xor
/*126687*/          OPC_CheckType, MVT::i64,
/*126689*/          OPC_EmitConvertToTarget, 0,
/*126691*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64ri8), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (sub:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2, GR64:{ *:[i64] }:$src1)<<P:Predicate_sub_is_xor>> - Complexity = 13
                    // Dst: (XOR64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)
/*126700*/        /*Scope*/ 19, /*->126720*/
/*126701*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*126703*/          OPC_MoveParent,
/*126704*/          OPC_RecordChild1, // #1 = $src1
/*126705*/          OPC_CheckPredicate, 57, // Predicate_sub_is_xor
/*126707*/          OPC_CheckType, MVT::i64,
/*126709*/          OPC_EmitConvertToTarget, 0,
/*126711*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64ri32), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (sub:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2, GR64:{ *:[i64] }:$src1)<<P:Predicate_sub_is_xor>> - Complexity = 13
                    // Dst: (XOR64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)
/*126720*/        /*Scope*/ 45, /*->126766*/
/*126721*/          OPC_MoveParent,
/*126722*/          OPC_RecordChild1, // #1 = $src1
/*126723*/          OPC_CheckPredicate, 57, // Predicate_sub_is_xor
/*126725*/          OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->126739
/*126728*/            OPC_EmitConvertToTarget, 0,
/*126730*/            OPC_MorphNodeTo2, TARGET_VAL(X86::XOR8ri), 0,
                          MVT::i8, MVT::i32, 2/*#Ops*/, 1, 2, 
                      // Src: (sub:{ *:[i8] } (imm:{ *:[i8] }):$src2, GR8:{ *:[i8] }:$src1)<<P:Predicate_sub_is_xor>> - Complexity = 12
                      // Dst: (XOR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*126739*/          /*SwitchType*/ 11, MVT::i16,// ->126752
/*126741*/            OPC_EmitConvertToTarget, 0,
/*126743*/            OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16ri), 0,
                          MVT::i16, MVT::i32, 2/*#Ops*/, 1, 2, 
                      // Src: (sub:{ *:[i16] } (imm:{ *:[i16] }):$src2, GR16:{ *:[i16] }:$src1)<<P:Predicate_sub_is_xor>> - Complexity = 12
                      // Dst: (XOR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/*126752*/          /*SwitchType*/ 11, MVT::i32,// ->126765
/*126754*/            OPC_EmitConvertToTarget, 0,
/*126756*/            OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32ri), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                      // Src: (sub:{ *:[i32] } (imm:{ *:[i32] }):$src2, GR32:{ *:[i32] }:$src1)<<P:Predicate_sub_is_xor>> - Complexity = 12
                      // Dst: (XOR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/*126765*/          0, // EndSwitchType
/*126766*/        0, /*End of Scope*/
/*126767*/      /*Scope*/ 61, /*->126829*/
/*126768*/        OPC_MoveChild1,
/*126769*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*126772*/        OPC_CheckChild0Integer, 2, 
/*126774*/        OPC_RecordChild1, // #1 = physreg input EFLAGS
/*126775*/        OPC_MoveParent,
/*126776*/        OPC_SwitchType /*3 cases */, 15, MVT::i8,// ->126794
/*126779*/          OPC_EmitInteger, MVT::i8, 0, 
/*126782*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*126785*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC8ri), 0|OPFL_GlueInput,
                        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] })
/*126794*/        /*SwitchType*/ 15, MVT::i32,// ->126811
/*126796*/          OPC_EmitInteger, MVT::i32, 0, 
/*126799*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*126802*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC32ri8), 0|OPFL_GlueInput,
                        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] })
/*126811*/        /*SwitchType*/ 15, MVT::i64,// ->126828
/*126813*/          OPC_EmitInteger, MVT::i64, 0, 
/*126816*/          OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*126819*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADC64ri8), 0|OPFL_GlueInput,
                        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] })
/*126828*/        0, // EndSwitchType
/*126829*/      0, /*End of Scope*/
/*126830*/    /*Scope*/ 45, /*->126876*/
/*126831*/      OPC_CheckChild0Integer, 0, 
/*126833*/      OPC_RecordChild1, // #0 = $src1
/*126834*/      OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->126845
/*126837*/        OPC_MorphNodeTo2, TARGET_VAL(X86::NEG8r), 0,
                      MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sub:{ *:[i8] } 0:{ *:[i8] }, GR8:{ *:[i8] }:$src1) - Complexity = 8
                  // Dst: (NEG8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/*126845*/      /*SwitchType*/ 8, MVT::i16,// ->126855
/*126847*/        OPC_MorphNodeTo2, TARGET_VAL(X86::NEG16r), 0,
                      MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sub:{ *:[i16] } 0:{ *:[i16] }, GR16:{ *:[i16] }:$src1) - Complexity = 8
                  // Dst: (NEG16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/*126855*/      /*SwitchType*/ 8, MVT::i32,// ->126865
/*126857*/        OPC_MorphNodeTo2, TARGET_VAL(X86::NEG32r), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sub:{ *:[i32] } 0:{ *:[i32] }, GR32:{ *:[i32] }:$src1) - Complexity = 8
                  // Dst: (NEG32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/*126865*/      /*SwitchType*/ 8, MVT::i64,// ->126875
/*126867*/        OPC_MorphNodeTo2, TARGET_VAL(X86::NEG64r), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sub:{ *:[i64] } 0:{ *:[i64] }, GR64:{ *:[i64] }:$src1) - Complexity = 8
                  // Dst: (NEG64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/*126875*/      0, // EndSwitchType
/*126876*/    /*Scope*/ 65|128,9/*1217*/, /*->128095*/
/*126878*/      OPC_RecordChild0, // #0 = $src1
/*126879*/      OPC_Scope, 41|128,1/*169*/, /*->127051*/ // 3 children in Scope
/*126882*/        OPC_RecordChild1, // #1 = $src2
/*126883*/        OPC_Scope, 117, /*->127002*/ // 5 children in Scope
/*126885*/          OPC_MoveChild1,
/*126886*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*126889*/          OPC_Scope, 16, /*->126907*/ // 5 children in Scope
/*126891*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*126893*/            OPC_MoveParent,
/*126894*/            OPC_CheckType, MVT::i16,
/*126896*/            OPC_EmitConvertToTarget, 1,
/*126898*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB16ri8), 0,
                          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)
/*126907*/          /*Scope*/ 16, /*->126924*/
/*126908*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*126910*/            OPC_MoveParent,
/*126911*/            OPC_CheckType, MVT::i32,
/*126913*/            OPC_EmitConvertToTarget, 1,
/*126915*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB32ri8), 0,
                          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)
/*126924*/          /*Scope*/ 16, /*->126941*/
/*126925*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*126927*/            OPC_MoveParent,
/*126928*/            OPC_CheckType, MVT::i64,
/*126930*/            OPC_EmitConvertToTarget, 1,
/*126932*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64ri8), 0,
                          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)
/*126941*/          /*Scope*/ 16, /*->126958*/
/*126942*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*126944*/            OPC_MoveParent,
/*126945*/            OPC_CheckType, MVT::i64,
/*126947*/            OPC_EmitConvertToTarget, 1,
/*126949*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64ri32), 0,
                          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)
/*126958*/          /*Scope*/ 42, /*->127001*/
/*126959*/            OPC_MoveParent,
/*126960*/            OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->126974
/*126963*/              OPC_EmitConvertToTarget, 1,
/*126965*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SUB8ri), 0,
                            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)
/*126974*/            /*SwitchType*/ 11, MVT::i16,// ->126987
/*126976*/              OPC_EmitConvertToTarget, 1,
/*126978*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SUB16ri), 0,
                            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)
/*126987*/            /*SwitchType*/ 11, MVT::i32,// ->127000
/*126989*/              OPC_EmitConvertToTarget, 1,
/*126991*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SUB32ri), 0,
                            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)
/*127000*/            0, // EndSwitchType
/*127001*/          0, /*End of Scope*/
/*127002*/        /*Scope*/ 11, /*->127014*/
/*127003*/          OPC_CheckType, MVT::i8,
/*127005*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB8rr), 0,
                        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)
/*127014*/        /*Scope*/ 11, /*->127026*/
/*127015*/          OPC_CheckType, MVT::i16,
/*127017*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB16rr), 0,
                        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)
/*127026*/        /*Scope*/ 11, /*->127038*/
/*127027*/          OPC_CheckType, MVT::i32,
/*127029*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB32rr), 0,
                        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)
/*127038*/        /*Scope*/ 11, /*->127050*/
/*127039*/          OPC_CheckType, MVT::i64,
/*127041*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64rr), 0,
                        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)
/*127050*/        0, /*End of Scope*/
/*127051*/      /*Scope*/ 96|128,5/*736*/, /*->127789*/
/*127053*/        OPC_MoveChild1,
/*127054*/        OPC_SwitchOpcode /*3 cases */, 45|128,3/*429*/, TARGET_VAL(ISD::BITCAST),// ->127488
/*127059*/          OPC_MoveChild0,
/*127060*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*127063*/          OPC_RecordMemRef,
/*127064*/          OPC_RecordNode, // #1 = 'ld' chained node
/*127065*/          OPC_CheckFoldableChainNode,
/*127066*/          OPC_RecordChild1, // #2 = $src2
/*127067*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*127069*/          OPC_CheckPredicate, 9, // Predicate_load
/*127071*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*127073*/          OPC_SwitchType /*3 cases */, 83|128,1/*211*/, MVT::v2i64,// ->127288
/*127077*/            OPC_Scope, 22, /*->127101*/ // 7 children in Scope
/*127079*/              OPC_MoveParent,
/*127080*/              OPC_MoveParent,
/*127081*/              OPC_CheckType, MVT::v16i8,
/*127083*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*127085*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127088*/              OPC_EmitMergeInputChains1_1,
/*127089*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>)) - Complexity = 28
                        // Dst: (VPSUBBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127101*/            /*Scope*/ 24, /*->127126*/
/*127102*/              OPC_CheckPredicate, 48, // Predicate_memop
/*127104*/              OPC_MoveParent,
/*127105*/              OPC_MoveParent,
/*127106*/              OPC_CheckType, MVT::v16i8,
/*127108*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*127110*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127113*/              OPC_EmitMergeInputChains1_1,
/*127114*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PSUBBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127126*/            /*Scope*/ 22, /*->127149*/
/*127127*/              OPC_MoveParent,
/*127128*/              OPC_MoveParent,
/*127129*/              OPC_CheckType, MVT::v8i16,
/*127131*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*127133*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127136*/              OPC_EmitMergeInputChains1_1,
/*127137*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>)) - Complexity = 28
                        // Dst: (VPSUBWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127149*/            /*Scope*/ 24, /*->127174*/
/*127150*/              OPC_CheckPredicate, 48, // Predicate_memop
/*127152*/              OPC_MoveParent,
/*127153*/              OPC_MoveParent,
/*127154*/              OPC_CheckType, MVT::v8i16,
/*127156*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*127158*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127161*/              OPC_EmitMergeInputChains1_1,
/*127162*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PSUBWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127174*/            /*Scope*/ 22, /*->127197*/
/*127175*/              OPC_MoveParent,
/*127176*/              OPC_MoveParent,
/*127177*/              OPC_CheckType, MVT::v4i32,
/*127179*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*127181*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127184*/              OPC_EmitMergeInputChains1_1,
/*127185*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>)) - Complexity = 28
                        // Dst: (VPSUBDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127197*/            /*Scope*/ 24, /*->127222*/
/*127198*/              OPC_CheckPredicate, 48, // Predicate_memop
/*127200*/              OPC_MoveParent,
/*127201*/              OPC_MoveParent,
/*127202*/              OPC_CheckType, MVT::v4i32,
/*127204*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*127206*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127209*/              OPC_EmitMergeInputChains1_1,
/*127210*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PSUBDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127222*/            /*Scope*/ 64, /*->127287*/
/*127223*/              OPC_MoveParent,
/*127224*/              OPC_MoveParent,
/*127225*/              OPC_SwitchType /*3 cases */, 18, MVT::v4i32,// ->127246
/*127228*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*127230*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127233*/                OPC_EmitMergeInputChains1_1,
/*127234*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sub:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSUBDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127246*/              /*SwitchType*/ 18, MVT::v8i16,// ->127266
/*127248*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*127250*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127253*/                OPC_EmitMergeInputChains1_1,
/*127254*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sub:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSUBWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127266*/              /*SwitchType*/ 18, MVT::v16i8,// ->127286
/*127268*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*127270*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127273*/                OPC_EmitMergeInputChains1_1,
/*127274*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sub:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSUBBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127286*/              0, // EndSwitchType
/*127287*/            0, /*End of Scope*/
/*127288*/          /*SwitchType*/ 2|128,1/*130*/, MVT::v4i64,// ->127421
/*127291*/            OPC_MoveParent,
/*127292*/            OPC_MoveParent,
/*127293*/            OPC_SwitchType /*3 cases */, 40, MVT::v32i8,// ->127336
/*127296*/              OPC_Scope, 18, /*->127316*/ // 2 children in Scope
/*127298*/                OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*127300*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127303*/                OPC_EmitMergeInputChains1_1,
/*127304*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sub:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSUBBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127316*/              /*Scope*/ 18, /*->127335*/
/*127317*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*127319*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127322*/                OPC_EmitMergeInputChains1_1,
/*127323*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sub:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSUBBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127335*/              0, /*End of Scope*/
/*127336*/            /*SwitchType*/ 40, MVT::v16i16,// ->127378
/*127338*/              OPC_Scope, 18, /*->127358*/ // 2 children in Scope
/*127340*/                OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*127342*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127345*/                OPC_EmitMergeInputChains1_1,
/*127346*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sub:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSUBWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127358*/              /*Scope*/ 18, /*->127377*/
/*127359*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*127361*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127364*/                OPC_EmitMergeInputChains1_1,
/*127365*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sub:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSUBWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127377*/              0, /*End of Scope*/
/*127378*/            /*SwitchType*/ 40, MVT::v8i32,// ->127420
/*127380*/              OPC_Scope, 18, /*->127400*/ // 2 children in Scope
/*127382*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*127384*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127387*/                OPC_EmitMergeInputChains1_1,
/*127388*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sub:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSUBDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127400*/              /*Scope*/ 18, /*->127419*/
/*127401*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*127403*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127406*/                OPC_EmitMergeInputChains1_1,
/*127407*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sub:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPSUBDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127419*/              0, /*End of Scope*/
/*127420*/            0, // EndSwitchType
/*127421*/          /*SwitchType*/ 64, MVT::v8i64,// ->127487
/*127423*/            OPC_MoveParent,
/*127424*/            OPC_MoveParent,
/*127425*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->127446
/*127428*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127430*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127433*/              OPC_EmitMergeInputChains1_1,
/*127434*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sub:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSUBDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127446*/            /*SwitchType*/ 18, MVT::v32i16,// ->127466
/*127448*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*127450*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127453*/              OPC_EmitMergeInputChains1_1,
/*127454*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sub:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSUBWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127466*/            /*SwitchType*/ 18, MVT::v64i8,// ->127486
/*127468*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*127470*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127473*/              OPC_EmitMergeInputChains1_1,
/*127474*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sub:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSUBBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127486*/            0, // EndSwitchType
/*127487*/          0, // EndSwitchType
/*127488*/        /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->127640
/*127492*/          OPC_MoveChild0,
/*127493*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*127496*/          OPC_RecordMemRef,
/*127497*/          OPC_RecordNode, // #1 = 'ld' chained node
/*127498*/          OPC_CheckFoldableChainNode,
/*127499*/          OPC_RecordChild1, // #2 = $src2
/*127500*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*127502*/          OPC_SwitchType /*2 cases */, 66, MVT::i64,// ->127571
/*127505*/            OPC_CheckPredicate, 9, // Predicate_load
/*127507*/            OPC_MoveParent,
/*127508*/            OPC_MoveParent,
/*127509*/            OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->127530
/*127512*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127514*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127517*/              OPC_EmitMergeInputChains1_1,
/*127518*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sub:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSUBQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127530*/            /*SwitchType*/ 18, MVT::v4i64,// ->127550
/*127532*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*127534*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127537*/              OPC_EmitMergeInputChains1_1,
/*127538*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sub:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSUBQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127550*/            /*SwitchType*/ 18, MVT::v2i64,// ->127570
/*127552*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*127554*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127557*/              OPC_EmitMergeInputChains1_1,
/*127558*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sub:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPSUBQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127570*/            0, // EndSwitchType
/*127571*/          /*SwitchType*/ 66, MVT::i32,// ->127639
/*127573*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*127575*/            OPC_MoveParent,
/*127576*/            OPC_MoveParent,
/*127577*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->127598
/*127580*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127582*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127585*/              OPC_EmitMergeInputChains1_1,
/*127586*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sub:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSUBDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127598*/            /*SwitchType*/ 18, MVT::v8i32,// ->127618
/*127600*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*127602*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127605*/              OPC_EmitMergeInputChains1_1,
/*127606*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sub:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSUBDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127618*/            /*SwitchType*/ 18, MVT::v4i32,// ->127638
/*127620*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*127622*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127625*/              OPC_EmitMergeInputChains1_1,
/*127626*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sub:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPSUBDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127638*/            0, // EndSwitchType
/*127639*/          0, // EndSwitchType
/*127640*/        /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::LOAD),// ->127788
/*127644*/          OPC_RecordMemRef,
/*127645*/          OPC_RecordNode, // #1 = 'ld' chained node
/*127646*/          OPC_CheckFoldableChainNode,
/*127647*/          OPC_RecordChild1, // #2 = $src2
/*127648*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*127650*/          OPC_CheckPredicate, 9, // Predicate_load
/*127652*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*127654*/          OPC_Scope, 21, /*->127677*/ // 3 children in Scope
/*127656*/            OPC_MoveParent,
/*127657*/            OPC_CheckType, MVT::v2i64,
/*127659*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*127661*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127664*/            OPC_EmitMergeInputChains1_1,
/*127665*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VPSUBQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127677*/          /*Scope*/ 23, /*->127701*/
/*127678*/            OPC_CheckPredicate, 48, // Predicate_memop
/*127680*/            OPC_MoveParent,
/*127681*/            OPC_CheckType, MVT::v2i64,
/*127683*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*127685*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127688*/            OPC_EmitMergeInputChains1_1,
/*127689*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PSUBQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127701*/          /*Scope*/ 85, /*->127787*/
/*127702*/            OPC_MoveParent,
/*127703*/            OPC_SwitchType /*3 cases */, 40, MVT::v4i64,// ->127746
/*127706*/              OPC_Scope, 18, /*->127726*/ // 2 children in Scope
/*127708*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*127710*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127713*/                OPC_EmitMergeInputChains1_1,
/*127714*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sub:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                          // Dst: (VPSUBQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127726*/              /*Scope*/ 18, /*->127745*/
/*127727*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*127729*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127732*/                OPC_EmitMergeInputChains1_1,
/*127733*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (sub:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                          // Dst: (VPSUBQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127745*/              0, /*End of Scope*/
/*127746*/            /*SwitchType*/ 18, MVT::v8i64,// ->127766
/*127748*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127750*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127753*/              OPC_EmitMergeInputChains1_1,
/*127754*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sub:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPSUBQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127766*/            /*SwitchType*/ 18, MVT::v2i64,// ->127786
/*127768*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*127770*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*127773*/              OPC_EmitMergeInputChains1_1,
/*127774*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (sub:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPSUBQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*127786*/            0, // EndSwitchType
/*127787*/          0, /*End of Scope*/
/*127788*/        0, // EndSwitchOpcode
/*127789*/      /*Scope*/ 47|128,2/*303*/, /*->128094*/
/*127791*/        OPC_RecordChild1, // #1 = $src2
/*127792*/        OPC_SwitchType /*12 cases */, 35, MVT::v16i8,// ->127830
/*127795*/          OPC_Scope, 10, /*->127807*/ // 3 children in Scope
/*127797*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*127799*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBrr), 0,
                          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)
/*127807*/          /*Scope*/ 10, /*->127818*/
/*127808*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*127810*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBBrr), 0,
                          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)
/*127818*/          /*Scope*/ 10, /*->127829*/
/*127819*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*127821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ128rr), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                      // Dst: (VPSUBBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*127829*/          0, /*End of Scope*/
/*127830*/        /*SwitchType*/ 24, MVT::v32i8,// ->127856
/*127832*/          OPC_Scope, 10, /*->127844*/ // 2 children in Scope
/*127834*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*127836*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBYrr), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                      // Dst: (VPSUBBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*127844*/          /*Scope*/ 10, /*->127855*/
/*127845*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*127847*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ256rr), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                      // Dst: (VPSUBBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*127855*/          0, /*End of Scope*/
/*127856*/        /*SwitchType*/ 35, MVT::v8i16,// ->127893
/*127858*/          OPC_Scope, 10, /*->127870*/ // 3 children in Scope
/*127860*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*127862*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWrr), 0,
                          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)
/*127870*/          /*Scope*/ 10, /*->127881*/
/*127871*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*127873*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBWrr), 0,
                          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)
/*127881*/          /*Scope*/ 10, /*->127892*/
/*127882*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*127884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ128rr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSUBWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*127892*/          0, /*End of Scope*/
/*127893*/        /*SwitchType*/ 24, MVT::v16i16,// ->127919
/*127895*/          OPC_Scope, 10, /*->127907*/ // 2 children in Scope
/*127897*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*127899*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWYrr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (VPSUBWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*127907*/          /*Scope*/ 10, /*->127918*/
/*127908*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*127910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ256rr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (VPSUBWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*127918*/          0, /*End of Scope*/
/*127919*/        /*SwitchType*/ 35, MVT::v4i32,// ->127956
/*127921*/          OPC_Scope, 10, /*->127933*/ // 3 children in Scope
/*127923*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*127925*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDrr), 0,
                          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)
/*127933*/          /*Scope*/ 10, /*->127944*/
/*127934*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*127936*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBDrr), 0,
                          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)
/*127944*/          /*Scope*/ 10, /*->127955*/
/*127945*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*127947*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ128rr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSUBDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*127955*/          0, /*End of Scope*/
/*127956*/        /*SwitchType*/ 24, MVT::v8i32,// ->127982
/*127958*/          OPC_Scope, 10, /*->127970*/ // 2 children in Scope
/*127960*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*127962*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDYrr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPSUBDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*127970*/          /*Scope*/ 10, /*->127981*/
/*127971*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*127973*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ256rr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPSUBDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*127981*/          0, /*End of Scope*/
/*127982*/        /*SwitchType*/ 35, MVT::v2i64,// ->128019
/*127984*/          OPC_Scope, 10, /*->127996*/ // 3 children in Scope
/*127986*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*127988*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQrr), 0,
                          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)
/*127996*/          /*Scope*/ 10, /*->128007*/
/*127997*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*127999*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBQrr), 0,
                          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)
/*128007*/          /*Scope*/ 10, /*->128018*/
/*128008*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*128010*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ128rr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSUBQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*128018*/          0, /*End of Scope*/
/*128019*/        /*SwitchType*/ 24, MVT::v4i64,// ->128045
/*128021*/          OPC_Scope, 10, /*->128033*/ // 2 children in Scope
/*128023*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*128025*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQYrr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (VPSUBQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*128033*/          /*Scope*/ 10, /*->128044*/
/*128034*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*128036*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ256rr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                      // Dst: (VPSUBQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*128044*/          0, /*End of Scope*/
/*128045*/        /*SwitchType*/ 10, MVT::v8i64,// ->128057
/*128047*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128049*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZrr), 0,
                        MVT::v8i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                    // Dst: (VPSUBQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*128057*/        /*SwitchType*/ 10, MVT::v16i32,// ->128069
/*128059*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128061*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                    // Dst: (VPSUBDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*128069*/        /*SwitchType*/ 10, MVT::v32i16,// ->128081
/*128071*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*128073*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZrr), 0,
                        MVT::v32i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*128081*/        /*SwitchType*/ 10, MVT::v64i8,// ->128093
/*128083*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*128085*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*128093*/        0, // EndSwitchType
/*128094*/      0, /*End of Scope*/
/*128095*/    0, /*End of Scope*/
/*128096*/  /*SwitchOpcode*/ 117|128,29/*3829*/, TARGET_VAL(ISD::OR),// ->131929
/*128100*/    OPC_Scope, 105, /*->128207*/ // 20 children in Scope
/*128102*/      OPC_RecordChild0, // #0 = $src1
/*128103*/      OPC_MoveChild1,
/*128104*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*128107*/      OPC_RecordMemRef,
/*128108*/      OPC_RecordNode, // #1 = 'ld' chained node
/*128109*/      OPC_CheckFoldableChainNode,
/*128110*/      OPC_RecordChild1, // #2 = $src2
/*128111*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*128113*/      OPC_Scope, 22, /*->128137*/ // 4 children in Scope
/*128115*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*128117*/        OPC_MoveParent,
/*128118*/        OPC_CheckType, MVT::i8,
/*128120*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*128123*/        OPC_EmitMergeInputChains1_1,
/*128124*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>) - Complexity = 25
                  // Dst: (OR8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*128137*/      /*Scope*/ 22, /*->128160*/
/*128138*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*128140*/        OPC_MoveParent,
/*128141*/        OPC_CheckType, MVT::i16,
/*128143*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*128146*/        OPC_EmitMergeInputChains1_1,
/*128147*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*128160*/      /*Scope*/ 22, /*->128183*/
/*128161*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*128163*/        OPC_MoveParent,
/*128164*/        OPC_CheckType, MVT::i32,
/*128166*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*128169*/        OPC_EmitMergeInputChains1_1,
/*128170*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*128183*/      /*Scope*/ 22, /*->128206*/
/*128184*/        OPC_CheckPredicate, 9, // Predicate_load
/*128186*/        OPC_MoveParent,
/*128187*/        OPC_CheckType, MVT::i64,
/*128189*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*128192*/        OPC_EmitMergeInputChains1_1,
/*128193*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*128206*/      0, /*End of Scope*/
/*128207*/    /*Scope*/ 108, /*->128316*/
/*128208*/      OPC_MoveChild0,
/*128209*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*128212*/      OPC_RecordMemRef,
/*128213*/      OPC_RecordNode, // #0 = 'ld' chained node
/*128214*/      OPC_CheckFoldableChainNode,
/*128215*/      OPC_RecordChild1, // #1 = $src2
/*128216*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*128218*/      OPC_Scope, 23, /*->128243*/ // 4 children in Scope
/*128220*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*128222*/        OPC_MoveParent,
/*128223*/        OPC_RecordChild1, // #2 = $src1
/*128224*/        OPC_CheckType, MVT::i8,
/*128226*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*128229*/        OPC_EmitMergeInputChains1_0,
/*128230*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>, GR8:{ *:[i8] }:$src1) - Complexity = 25
                  // Dst: (OR8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*128243*/      /*Scope*/ 23, /*->128267*/
/*128244*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*128246*/        OPC_MoveParent,
/*128247*/        OPC_RecordChild1, // #2 = $src1
/*128248*/        OPC_CheckType, MVT::i16,
/*128250*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*128253*/        OPC_EmitMergeInputChains1_0,
/*128254*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*128267*/      /*Scope*/ 23, /*->128291*/
/*128268*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*128270*/        OPC_MoveParent,
/*128271*/        OPC_RecordChild1, // #2 = $src1
/*128272*/        OPC_CheckType, MVT::i32,
/*128274*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*128277*/        OPC_EmitMergeInputChains1_0,
/*128278*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*128291*/      /*Scope*/ 23, /*->128315*/
/*128292*/        OPC_CheckPredicate, 9, // Predicate_load
/*128294*/        OPC_MoveParent,
/*128295*/        OPC_RecordChild1, // #2 = $src1
/*128296*/        OPC_CheckType, MVT::i64,
/*128298*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*128301*/        OPC_EmitMergeInputChains1_0,
/*128302*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*128315*/      0, /*End of Scope*/
/*128316*/    /*Scope*/ 52, /*->128369*/
/*128317*/      OPC_RecordChild0, // #0 = $src
/*128318*/      OPC_MoveChild1,
/*128319*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*128322*/      OPC_MoveChild0,
/*128323*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/*128326*/      OPC_CheckChild0Same, 0,
/*128328*/      OPC_CheckChild1Integer, 1, 
/*128330*/      OPC_MoveParent,
/*128331*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*128342*/      OPC_MoveParent,
/*128343*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->128356
/*128346*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128348*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI32rr), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (or:{ *:[i32] } GR32:{ *:[i32] }:$src, (xor:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), -1:{ *:[i32] })) - Complexity = 19
                  // Dst: (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*128356*/      /*SwitchType*/ 10, MVT::i64,// ->128368
/*128358*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128360*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI64rr), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (or:{ *:[i64] } GR64:{ *:[i64] }:$src, (xor:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), -1:{ *:[i64] })) - Complexity = 19
                  // Dst: (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*128368*/      0, // EndSwitchType
/*128369*/    /*Scope*/ 4|128,2/*260*/, /*->128631*/
/*128371*/      OPC_MoveChild0,
/*128372*/      OPC_SwitchOpcode /*2 cases */, 14|128,1/*142*/, TARGET_VAL(ISD::XOR),// ->128519
/*128377*/        OPC_Scope, 90, /*->128469*/ // 2 children in Scope
/*128379*/          OPC_RecordChild0, // #0 = $src
/*128380*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*128391*/          OPC_MoveParent,
/*128392*/          OPC_MoveChild1,
/*128393*/          OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/*128396*/          OPC_CheckChild0Same, 0,
/*128398*/          OPC_Scope, 38, /*->128438*/ // 2 children in Scope
/*128400*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*128411*/            OPC_MoveParent,
/*128412*/            OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->128425
/*128415*/              OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128417*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BLSIC32rr), 0,
                            MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (or:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })) - Complexity = 19
                        // Dst: (BLSIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*128425*/            /*SwitchType*/ 10, MVT::i64,// ->128437
/*128427*/              OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128429*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BLSIC64rr), 0,
                            MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (or:{ *:[i64] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })) - Complexity = 19
                        // Dst: (BLSIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*128437*/            0, // EndSwitchType
/*128438*/          /*Scope*/ 29, /*->128468*/
/*128439*/            OPC_CheckChild1Integer, 1, 
/*128441*/            OPC_MoveParent,
/*128442*/            OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->128455
/*128445*/              OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128447*/              OPC_MorphNodeTo2, TARGET_VAL(X86::T1MSKC32rr), 0,
                            MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (or:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] })) - Complexity = 19
                        // Dst: (T1MSKC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*128455*/            /*SwitchType*/ 10, MVT::i64,// ->128467
/*128457*/              OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128459*/              OPC_MorphNodeTo2, TARGET_VAL(X86::T1MSKC64rr), 0,
                            MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (or:{ *:[i64] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] })) - Complexity = 19
                        // Dst: (T1MSKC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*128467*/            0, // EndSwitchType
/*128468*/          0, /*End of Scope*/
/*128469*/        /*Scope*/ 48, /*->128518*/
/*128470*/          OPC_MoveChild0,
/*128471*/          OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/*128474*/          OPC_RecordChild0, // #0 = $src
/*128475*/          OPC_CheckChild1Integer, 1, 
/*128477*/          OPC_MoveParent,
/*128478*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*128489*/          OPC_MoveParent,
/*128490*/          OPC_CheckChild1Same, 0,
/*128492*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->128505
/*128495*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128497*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i32] } (xor:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), -1:{ *:[i32] }), GR32:{ *:[i32] }:$src) - Complexity = 19
                      // Dst: (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*128505*/          /*SwitchType*/ 10, MVT::i64,// ->128517
/*128507*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128509*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i64] } (xor:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), -1:{ *:[i64] }), GR64:{ *:[i64] }:$src) - Complexity = 19
                      // Dst: (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*128517*/          0, // EndSwitchType
/*128518*/        0, /*End of Scope*/
/*128519*/      /*SwitchOpcode*/ 108, TARGET_VAL(ISD::ADD),// ->128630
/*128522*/        OPC_RecordChild0, // #0 = $src
/*128523*/        OPC_Scope, 56, /*->128581*/ // 2 children in Scope
/*128525*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*128536*/          OPC_MoveParent,
/*128537*/          OPC_MoveChild1,
/*128538*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*128541*/          OPC_CheckChild0Same, 0,
/*128543*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*128554*/          OPC_MoveParent,
/*128555*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->128568
/*128558*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128560*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSIC32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })) - Complexity = 19
                      // Dst: (BLSIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*128568*/          /*SwitchType*/ 10, MVT::i64,// ->128580
/*128570*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128572*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSIC64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })) - Complexity = 19
                      // Dst: (BLSIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*128580*/          0, // EndSwitchType
/*128581*/        /*Scope*/ 47, /*->128629*/
/*128582*/          OPC_CheckChild1Integer, 1, 
/*128584*/          OPC_MoveParent,
/*128585*/          OPC_MoveChild1,
/*128586*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*128589*/          OPC_CheckChild0Same, 0,
/*128591*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*128602*/          OPC_MoveParent,
/*128603*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->128616
/*128606*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128608*/            OPC_MorphNodeTo2, TARGET_VAL(X86::T1MSKC32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })) - Complexity = 19
                      // Dst: (T1MSKC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*128616*/          /*SwitchType*/ 10, MVT::i64,// ->128628
/*128618*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*128620*/            OPC_MorphNodeTo2, TARGET_VAL(X86::T1MSKC64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })) - Complexity = 19
                      // Dst: (T1MSKC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*128628*/          0, // EndSwitchType
/*128629*/        0, /*End of Scope*/
/*128630*/      0, // EndSwitchOpcode
/*128631*/    /*Scope*/ 57, /*->128689*/
/*128632*/      OPC_RecordNode, // #0 = $src
/*128633*/      OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->128672
/*128636*/        OPC_Scope, 16, /*->128654*/ // 2 children in Scope
/*128638*/          OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*128640*/          OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*128643*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LEA32r), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: lea32addr:{ *:[i32] }:$src - Complexity = 18
                    // Dst: (LEA32r:{ *:[i32] } lea32addr:{ *:[i32] }:$src)
/*128654*/        /*Scope*/ 16, /*->128671*/
/*128655*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*128657*/          OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/*128660*/          OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64_32r), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: lea64_32addr:{ *:[i32] }:$src - Complexity = 18
                    // Dst: (LEA64_32r:{ *:[i32] } lea64_32addr:{ *:[i32] }:$src)
/*128671*/        0, /*End of Scope*/
/*128672*/      /*SwitchType*/ 14, MVT::i64,// ->128688
/*128674*/        OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*128677*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64r), 0,
                      MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea64addr:{ *:[i64] }:$src - Complexity = 18
                  // Dst: (LEA64r:{ *:[i64] } lea64addr:{ *:[i64] }:$src)
/*128688*/      0, // EndSwitchType
/*128689*/    /*Scope*/ 1|128,1/*129*/, /*->128820*/
/*128691*/      OPC_RecordChild0, // #0 = $src1
/*128692*/      OPC_MoveChild1,
/*128693*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*128696*/      OPC_CheckChild0Integer, 1, 
/*128698*/      OPC_MoveChild1,
/*128699*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*128702*/      OPC_RecordChild0, // #1 = $src2
/*128703*/      OPC_MoveChild1,
/*128704*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*128707*/      OPC_Scope, 36, /*->128745*/ // 3 children in Scope
/*128709*/        OPC_CheckPredicate, 12, // Predicate_immShift16
/*128711*/        OPC_MoveParent,
/*128712*/        OPC_CheckType, MVT::i8,
/*128714*/        OPC_MoveParent,
/*128715*/        OPC_MoveParent,
/*128716*/        OPC_CheckType, MVT::i16,
/*128718*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*128724*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*128727*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*128736*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (or:{ *:[i16] } GR16:{ *:[i16] }:$src1, (shl:{ *:[i16] } 1:{ *:[i16] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift16>>))) - Complexity = 18
                  // Dst: (BTS16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*128745*/      /*Scope*/ 36, /*->128782*/
/*128746*/        OPC_CheckPredicate, 6, // Predicate_immShift32
/*128748*/        OPC_MoveParent,
/*128749*/        OPC_CheckType, MVT::i8,
/*128751*/        OPC_MoveParent,
/*128752*/        OPC_MoveParent,
/*128753*/        OPC_CheckType, MVT::i32,
/*128755*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*128761*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*128764*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*128773*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (or:{ *:[i32] } GR32:{ *:[i32] }:$src1, (shl:{ *:[i32] } 1:{ *:[i32] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>))) - Complexity = 18
                  // Dst: (BTS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*128782*/      /*Scope*/ 36, /*->128819*/
/*128783*/        OPC_CheckPredicate, 10, // Predicate_immShift64
/*128785*/        OPC_MoveParent,
/*128786*/        OPC_CheckType, MVT::i8,
/*128788*/        OPC_MoveParent,
/*128789*/        OPC_MoveParent,
/*128790*/        OPC_CheckType, MVT::i64,
/*128792*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*128798*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*128801*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*128810*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (or:{ *:[i64] } GR64:{ *:[i64] }:$src1, (shl:{ *:[i64] } 1:{ *:[i64] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>))) - Complexity = 18
                  // Dst: (BTS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*128819*/      0, /*End of Scope*/
/*128820*/    /*Scope*/ 3|128,1/*131*/, /*->128953*/
/*128822*/      OPC_MoveChild0,
/*128823*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*128826*/      OPC_CheckChild0Integer, 1, 
/*128828*/      OPC_MoveChild1,
/*128829*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*128832*/      OPC_RecordChild0, // #0 = $src2
/*128833*/      OPC_MoveChild1,
/*128834*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*128837*/      OPC_Scope, 37, /*->128876*/ // 3 children in Scope
/*128839*/        OPC_CheckPredicate, 12, // Predicate_immShift16
/*128841*/        OPC_MoveParent,
/*128842*/        OPC_CheckType, MVT::i8,
/*128844*/        OPC_MoveParent,
/*128845*/        OPC_MoveParent,
/*128846*/        OPC_RecordChild1, // #1 = $src1
/*128847*/        OPC_CheckType, MVT::i16,
/*128849*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*128855*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*128858*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*128867*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (or:{ *:[i16] } (shl:{ *:[i16] } 1:{ *:[i16] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift16>>)), GR16:{ *:[i16] }:$src1) - Complexity = 18
                  // Dst: (BTS16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*128876*/      /*Scope*/ 37, /*->128914*/
/*128877*/        OPC_CheckPredicate, 6, // Predicate_immShift32
/*128879*/        OPC_MoveParent,
/*128880*/        OPC_CheckType, MVT::i8,
/*128882*/        OPC_MoveParent,
/*128883*/        OPC_MoveParent,
/*128884*/        OPC_RecordChild1, // #1 = $src1
/*128885*/        OPC_CheckType, MVT::i32,
/*128887*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*128893*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*128896*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*128905*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (or:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), GR32:{ *:[i32] }:$src1) - Complexity = 18
                  // Dst: (BTS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*128914*/      /*Scope*/ 37, /*->128952*/
/*128915*/        OPC_CheckPredicate, 10, // Predicate_immShift64
/*128917*/        OPC_MoveParent,
/*128918*/        OPC_CheckType, MVT::i8,
/*128920*/        OPC_MoveParent,
/*128921*/        OPC_MoveParent,
/*128922*/        OPC_RecordChild1, // #1 = $src1
/*128923*/        OPC_CheckType, MVT::i64,
/*128925*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*128931*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*128934*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*128943*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (or:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)), GR64:{ *:[i64] }:$src1) - Complexity = 18
                  // Dst: (BTS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*128952*/      0, /*End of Scope*/
/*128953*/    /*Scope*/ 114|128,1/*242*/, /*->129197*/
/*128955*/      OPC_RecordChild0, // #0 = $src1
/*128956*/      OPC_Scope, 115, /*->129073*/ // 2 children in Scope
/*128958*/        OPC_RecordChild1, // #1 = $src2
/*128959*/        OPC_MoveChild1,
/*128960*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*128963*/        OPC_Scope, 18, /*->128983*/ // 5 children in Scope
/*128965*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*128967*/          OPC_MoveParent,
/*128968*/          OPC_CheckPredicate, 58, // Predicate_or_is_add
/*128970*/          OPC_CheckType, MVT::i16,
/*128972*/          OPC_EmitConvertToTarget, 1,
/*128974*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16ri8_DB), 0,
                        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)
/*128983*/        /*Scope*/ 18, /*->129002*/
/*128984*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*128986*/          OPC_MoveParent,
/*128987*/          OPC_CheckPredicate, 58, // Predicate_or_is_add
/*128989*/          OPC_CheckType, MVT::i32,
/*128991*/          OPC_EmitConvertToTarget, 1,
/*128993*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32ri8_DB), 0,
                        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)
/*129002*/        /*Scope*/ 18, /*->129021*/
/*129003*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*129005*/          OPC_MoveParent,
/*129006*/          OPC_CheckPredicate, 58, // Predicate_or_is_add
/*129008*/          OPC_CheckType, MVT::i64,
/*129010*/          OPC_EmitConvertToTarget, 1,
/*129012*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64ri8_DB), 0,
                        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)
/*129021*/        /*Scope*/ 18, /*->129040*/
/*129022*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*129024*/          OPC_MoveParent,
/*129025*/          OPC_CheckPredicate, 58, // Predicate_or_is_add
/*129027*/          OPC_CheckType, MVT::i64,
/*129029*/          OPC_EmitConvertToTarget, 1,
/*129031*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64ri32_DB), 0,
                        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)
/*129040*/        /*Scope*/ 31, /*->129072*/
/*129041*/          OPC_MoveParent,
/*129042*/          OPC_CheckPredicate, 58, // Predicate_or_is_add
/*129044*/          OPC_SwitchType /*2 cases */, 11, MVT::i16,// ->129058
/*129047*/            OPC_EmitConvertToTarget, 1,
/*129049*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16ri_DB), 0,
                          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)
/*129058*/          /*SwitchType*/ 11, MVT::i32,// ->129071
/*129060*/            OPC_EmitConvertToTarget, 1,
/*129062*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32ri_DB), 0,
                          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)
/*129071*/          0, // EndSwitchType
/*129072*/        0, /*End of Scope*/
/*129073*/      /*Scope*/ 122, /*->129196*/
/*129074*/        OPC_MoveChild1,
/*129075*/        OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::SUB),// ->129119
/*129079*/          OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/*129090*/          OPC_CheckChild1Same, 0,
/*129092*/          OPC_MoveParent,
/*129093*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->129106
/*129096*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129098*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i32] } GR32:{ *:[i32] }:$src, (sub:{ *:[i32] } -2:{ *:[i32] }, GR32:{ *:[i32] }:$src)) - Complexity = 11
                      // Dst: (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*129106*/          /*SwitchType*/ 10, MVT::i64,// ->129118
/*129108*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129110*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i64] } GR64:{ *:[i64] }:$src, (sub:{ *:[i64] } -2:{ *:[i64] }, GR64:{ *:[i64] }:$src)) - Complexity = 11
                      // Dst: (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*129118*/          0, // EndSwitchType
/*129119*/        /*SwitchOpcode*/ 73, TARGET_VAL(ISD::ADD),// ->129195
/*129122*/          OPC_CheckChild0Same, 0,
/*129124*/          OPC_Scope, 29, /*->129155*/ // 2 children in Scope
/*129126*/            OPC_CheckChild1Integer, 1, 
/*129128*/            OPC_MoveParent,
/*129129*/            OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->129142
/*129132*/              OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129134*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BLCS32rr), 0,
                            MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (or:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] })) - Complexity = 11
                        // Dst: (BLCS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*129142*/            /*SwitchType*/ 10, MVT::i64,// ->129154
/*129144*/              OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129146*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BLCS64rr), 0,
                            MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (or:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] })) - Complexity = 11
                        // Dst: (BLCS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*129154*/            0, // EndSwitchType
/*129155*/          /*Scope*/ 38, /*->129194*/
/*129156*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*129167*/            OPC_MoveParent,
/*129168*/            OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->129181
/*129171*/              OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129173*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BLSFILL32rr), 0,
                            MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (or:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })) - Complexity = 11
                        // Dst: (BLSFILL32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*129181*/            /*SwitchType*/ 10, MVT::i64,// ->129193
/*129183*/              OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129185*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BLSFILL64rr), 0,
                            MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (or:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })) - Complexity = 11
                        // Dst: (BLSFILL64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*129193*/            0, // EndSwitchType
/*129194*/          0, /*End of Scope*/
/*129195*/        0, // EndSwitchOpcode
/*129196*/      0, /*End of Scope*/
/*129197*/    /*Scope*/ 126, /*->129324*/
/*129198*/      OPC_MoveChild0,
/*129199*/      OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::SUB),// ->129244
/*129203*/        OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/*129214*/        OPC_RecordChild1, // #0 = $src
/*129215*/        OPC_MoveParent,
/*129216*/        OPC_CheckChild1Same, 0,
/*129218*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->129231
/*129221*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129223*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (or:{ *:[i32] } (sub:{ *:[i32] } -2:{ *:[i32] }, GR32:{ *:[i32] }:$src), GR32:{ *:[i32] }:$src) - Complexity = 11
                    // Dst: (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*129231*/        /*SwitchType*/ 10, MVT::i64,// ->129243
/*129233*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129235*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (or:{ *:[i64] } (sub:{ *:[i64] } -2:{ *:[i64] }, GR64:{ *:[i64] }:$src), GR64:{ *:[i64] }:$src) - Complexity = 11
                    // Dst: (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*129243*/        0, // EndSwitchType
/*129244*/      /*SwitchOpcode*/ 76, TARGET_VAL(ISD::ADD),// ->129323
/*129247*/        OPC_RecordChild0, // #0 = $src
/*129248*/        OPC_Scope, 31, /*->129281*/ // 2 children in Scope
/*129250*/          OPC_CheckChild1Integer, 1, 
/*129252*/          OPC_MoveParent,
/*129253*/          OPC_CheckChild1Same, 0,
/*129255*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->129268
/*129258*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129260*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCS32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), GR32:{ *:[i32] }:$src) - Complexity = 11
                      // Dst: (BLCS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*129268*/          /*SwitchType*/ 10, MVT::i64,// ->129280
/*129270*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129272*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCS64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), GR64:{ *:[i64] }:$src) - Complexity = 11
                      // Dst: (BLCS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*129280*/          0, // EndSwitchType
/*129281*/        /*Scope*/ 40, /*->129322*/
/*129282*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*129293*/          OPC_MoveParent,
/*129294*/          OPC_CheckChild1Same, 0,
/*129296*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->129309
/*129299*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129301*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSFILL32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src) - Complexity = 11
                      // Dst: (BLSFILL32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*129309*/          /*SwitchType*/ 10, MVT::i64,// ->129321
/*129311*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*129313*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSFILL64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (or:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src) - Complexity = 11
                      // Dst: (BLSFILL64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*129321*/          0, // EndSwitchType
/*129322*/        0, /*End of Scope*/
/*129323*/      0, // EndSwitchOpcode
/*129324*/    /*Scope*/ 100, /*->129425*/
/*129325*/      OPC_RecordChild0, // #0 = $src1
/*129326*/      OPC_MoveChild1,
/*129327*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*129330*/      OPC_CheckChild0Integer, 1, 
/*129332*/      OPC_RecordChild1, // #1 = $src2
/*129333*/      OPC_CheckChild1Type, MVT::i8,
/*129335*/      OPC_MoveParent,
/*129336*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->129366
/*129339*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*129345*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*129348*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*129357*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (or:{ *:[i16] } GR16:{ *:[i16] }:$src1, (shl:{ *:[i16] } 1:{ *:[i16] }, GR8:{ *:[i8] }:$src2)) - Complexity = 11
                  // Dst: (BTS16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*129366*/      /*SwitchType*/ 27, MVT::i32,// ->129395
/*129368*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*129374*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*129377*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*129386*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (or:{ *:[i32] } GR32:{ *:[i32] }:$src1, (shl:{ *:[i32] } 1:{ *:[i32] }, GR8:{ *:[i8] }:$src2)) - Complexity = 11
                  // Dst: (BTS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*129395*/      /*SwitchType*/ 27, MVT::i64,// ->129424
/*129397*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*129403*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*129406*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*129415*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (or:{ *:[i64] } GR64:{ *:[i64] }:$src1, (shl:{ *:[i64] } 1:{ *:[i64] }, GR8:{ *:[i8] }:$src2)) - Complexity = 11
                  // Dst: (BTS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*129424*/      0, // EndSwitchType
/*129425*/    /*Scope*/ 100, /*->129526*/
/*129426*/      OPC_MoveChild0,
/*129427*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*129430*/      OPC_CheckChild0Integer, 1, 
/*129432*/      OPC_RecordChild1, // #0 = $src2
/*129433*/      OPC_CheckChild1Type, MVT::i8,
/*129435*/      OPC_MoveParent,
/*129436*/      OPC_RecordChild1, // #1 = $src1
/*129437*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->129467
/*129440*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*129446*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*129449*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*129458*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (or:{ *:[i16] } (shl:{ *:[i16] } 1:{ *:[i16] }, GR8:{ *:[i8] }:$src2), GR16:{ *:[i16] }:$src1) - Complexity = 11
                  // Dst: (BTS16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*129467*/      /*SwitchType*/ 27, MVT::i32,// ->129496
/*129469*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*129475*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*129478*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*129487*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (or:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, GR8:{ *:[i8] }:$src2), GR32:{ *:[i32] }:$src1) - Complexity = 11
                  // Dst: (BTS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*129496*/      /*SwitchType*/ 27, MVT::i64,// ->129525
/*129498*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*129504*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*129507*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*129516*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTS64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (or:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, GR8:{ *:[i8] }:$src2), GR64:{ *:[i64] }:$src1) - Complexity = 11
                  // Dst: (BTS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*129525*/      0, // EndSwitchType
/*129526*/    /*Scope*/ 103|128,1/*231*/, /*->129759*/
/*129528*/      OPC_RecordChild0, // #0 = $src1
/*129529*/      OPC_RecordChild1, // #1 = $src2
/*129530*/      OPC_Scope, 37, /*->129569*/ // 6 children in Scope
/*129532*/        OPC_CheckPredicate, 58, // Predicate_or_is_add
/*129534*/        OPC_SwitchType /*3 cases */, 9, MVT::i16,// ->129546
/*129537*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16rr_DB), 0,
                        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)
/*129546*/        /*SwitchType*/ 9, MVT::i32,// ->129557
/*129548*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32rr_DB), 0,
                        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)
/*129557*/        /*SwitchType*/ 9, MVT::i64,// ->129568
/*129559*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64rr_DB), 0,
                        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)
/*129568*/        0, // EndSwitchType
/*129569*/      /*Scope*/ 11|128,1/*139*/, /*->129710*/
/*129571*/        OPC_MoveChild1,
/*129572*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*129575*/        OPC_Scope, 21, /*->129598*/ // 6 children in Scope
/*129577*/          OPC_CheckPredicate, 59, // Predicate_BTCBTSMask64
/*129579*/          OPC_MoveParent,
/*129580*/          OPC_CheckType, MVT::i64,
/*129582*/          OPC_CheckPatternPredicate, 38, // (MF->getFunction().optForSize())
/*129584*/          OPC_EmitConvertToTarget, 1,
/*129586*/          OPC_EmitNodeXForm, 12, 2, // BTCBTSXForm
/*129589*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BTS64ri8), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (or:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_BTCBTSMask64>>:$mask) - Complexity = 8
                    // Dst: (BTS64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (BTCBTSXForm:{ *:[i64] } (imm:{ *:[i64] }):$mask))
/*129598*/        /*Scope*/ 16, /*->129615*/
/*129599*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*129601*/          OPC_MoveParent,
/*129602*/          OPC_CheckType, MVT::i16,
/*129604*/          OPC_EmitConvertToTarget, 1,
/*129606*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR16ri8), 0,
                        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)
/*129615*/        /*Scope*/ 16, /*->129632*/
/*129616*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*129618*/          OPC_MoveParent,
/*129619*/          OPC_CheckType, MVT::i32,
/*129621*/          OPC_EmitConvertToTarget, 1,
/*129623*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR32ri8), 0,
                        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)
/*129632*/        /*Scope*/ 16, /*->129649*/
/*129633*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*129635*/          OPC_MoveParent,
/*129636*/          OPC_CheckType, MVT::i64,
/*129638*/          OPC_EmitConvertToTarget, 1,
/*129640*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR64ri8), 0,
                        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)
/*129649*/        /*Scope*/ 16, /*->129666*/
/*129650*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*129652*/          OPC_MoveParent,
/*129653*/          OPC_CheckType, MVT::i64,
/*129655*/          OPC_EmitConvertToTarget, 1,
/*129657*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR64ri32), 0,
                        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)
/*129666*/        /*Scope*/ 42, /*->129709*/
/*129667*/          OPC_MoveParent,
/*129668*/          OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->129682
/*129671*/            OPC_EmitConvertToTarget, 1,
/*129673*/            OPC_MorphNodeTo2, TARGET_VAL(X86::OR8ri), 0,
                          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)
/*129682*/          /*SwitchType*/ 11, MVT::i16,// ->129695
/*129684*/            OPC_EmitConvertToTarget, 1,
/*129686*/            OPC_MorphNodeTo2, TARGET_VAL(X86::OR16ri), 0,
                          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)
/*129695*/          /*SwitchType*/ 11, MVT::i32,// ->129708
/*129697*/            OPC_EmitConvertToTarget, 1,
/*129699*/            OPC_MorphNodeTo2, TARGET_VAL(X86::OR32ri), 0,
                          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)
/*129708*/          0, // EndSwitchType
/*129709*/        0, /*End of Scope*/
/*129710*/      /*Scope*/ 11, /*->129722*/
/*129711*/        OPC_CheckType, MVT::i8,
/*129713*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR8rr), 0,
                      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)
/*129722*/      /*Scope*/ 11, /*->129734*/
/*129723*/        OPC_CheckType, MVT::i16,
/*129725*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR16rr), 0,
                      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)
/*129734*/      /*Scope*/ 11, /*->129746*/
/*129735*/        OPC_CheckType, MVT::i32,
/*129737*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR32rr), 0,
                      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)
/*129746*/      /*Scope*/ 11, /*->129758*/
/*129747*/        OPC_CheckType, MVT::i64,
/*129749*/        OPC_MorphNodeTo2, TARGET_VAL(X86::OR64rr), 0,
                      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)
/*129758*/      0, /*End of Scope*/
/*129759*/    /*Scope*/ 57|128,3/*441*/, /*->130202*/
/*129761*/      OPC_MoveChild0,
/*129762*/      OPC_SwitchOpcode /*2 cases */, 117|128,1/*245*/, TARGET_VAL(ISD::AND),// ->130012
/*129767*/        OPC_Scope, 85, /*->129854*/ // 2 children in Scope
/*129769*/          OPC_MoveChild0,
/*129770*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*129773*/          OPC_RecordMemRef,
/*129774*/          OPC_RecordNode, // #0 = 'ld' chained node
/*129775*/          OPC_CheckFoldableChainNode,
/*129776*/          OPC_RecordChild1, // #1 = $src3
/*129777*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*129779*/          OPC_CheckPredicate, 9, // Predicate_load
/*129781*/          OPC_MoveParent,
/*129782*/          OPC_RecordChild1, // #2 = $src1
/*129783*/          OPC_MoveParent,
/*129784*/          OPC_MoveChild1,
/*129785*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::ANDNP),
/*129788*/          OPC_MoveChild0,
/*129789*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*129792*/          OPC_RecordMemRef,
/*129793*/          OPC_RecordNode, // #3 = 'ld' chained node
/*129794*/          OPC_CheckFoldableChainNode,
/*129795*/          OPC_CheckChild1Same, 1,
/*129797*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*129799*/          OPC_CheckPredicate, 9, // Predicate_load
/*129801*/          OPC_MoveParent,
/*129802*/          OPC_RecordChild1, // #4 = $src2
/*129803*/          OPC_MoveParent,
/*129804*/          OPC_SwitchType /*2 cases */, 22, MVT::v2i64,// ->129829
/*129807*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*129809*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*129812*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/*129816*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src1), (X86andnp:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src2)) - Complexity = 53
                      // Dst: (VPCMOVrrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*129829*/          /*SwitchType*/ 22, MVT::v4i64,// ->129853
/*129831*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*129833*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*129836*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/*129840*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                      // Src: (or:{ *:[v4i64] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src1), (X86andnp:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src2)) - Complexity = 53
                      // Dst: (VPCMOVYrrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*129853*/          0, // EndSwitchType
/*129854*/        /*Scope*/ 27|128,1/*155*/, /*->130011*/
/*129856*/          OPC_RecordChild0, // #0 = $src1
/*129857*/          OPC_Scope, 84, /*->129943*/ // 2 children in Scope
/*129859*/            OPC_MoveChild1,
/*129860*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*129863*/            OPC_RecordMemRef,
/*129864*/            OPC_RecordNode, // #1 = 'ld' chained node
/*129865*/            OPC_CheckFoldableChainNode,
/*129866*/            OPC_RecordChild1, // #2 = $src3
/*129867*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*129869*/            OPC_CheckPredicate, 9, // Predicate_load
/*129871*/            OPC_MoveParent,
/*129872*/            OPC_MoveParent,
/*129873*/            OPC_MoveChild1,
/*129874*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::ANDNP),
/*129877*/            OPC_MoveChild0,
/*129878*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*129881*/            OPC_RecordMemRef,
/*129882*/            OPC_RecordNode, // #3 = 'ld' chained node
/*129883*/            OPC_CheckFoldableChainNode,
/*129884*/            OPC_CheckChild1Same, 2,
/*129886*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*129888*/            OPC_CheckPredicate, 9, // Predicate_load
/*129890*/            OPC_MoveParent,
/*129891*/            OPC_RecordChild1, // #4 = $src2
/*129892*/            OPC_MoveParent,
/*129893*/            OPC_SwitchType /*2 cases */, 22, MVT::v2i64,// ->129918
/*129896*/              OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*129898*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*129901*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*129905*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (X86andnp:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src2)) - Complexity = 53
                        // Dst: (VPCMOVrrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*129918*/            /*SwitchType*/ 22, MVT::v4i64,// ->129942
/*129920*/              OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*129922*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*129925*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*129929*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (or:{ *:[v4i64] } (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (X86andnp:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src2)) - Complexity = 53
                        // Dst: (VPCMOVYrrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*129942*/            0, // EndSwitchType
/*129943*/          /*Scope*/ 66, /*->130010*/
/*129944*/            OPC_RecordChild1, // #1 = $src1
/*129945*/            OPC_MoveParent,
/*129946*/            OPC_MoveChild1,
/*129947*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::ANDNP),
/*129950*/            OPC_CheckChild0Same, 0,
/*129952*/            OPC_MoveChild1,
/*129953*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*129956*/            OPC_RecordMemRef,
/*129957*/            OPC_RecordNode, // #2 = 'ld' chained node
/*129958*/            OPC_CheckFoldableChainNode,
/*129959*/            OPC_RecordChild1, // #3 = $src2
/*129960*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*129962*/            OPC_CheckPredicate, 9, // Predicate_load
/*129964*/            OPC_MoveParent,
/*129965*/            OPC_MoveParent,
/*129966*/            OPC_SwitchType /*2 cases */, 19, MVT::v2i64,// ->129988
/*129969*/              OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*129971*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*129974*/              OPC_EmitMergeInputChains1_2,
/*129975*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 0, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, VR128:{ *:[v2i64] }:$src1), (X86andnp:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 31
                        // Dst: (VPCMOVrmr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*129988*/            /*SwitchType*/ 19, MVT::v4i64,// ->130009
/*129990*/              OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*129992*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*129995*/              OPC_EmitMergeInputChains1_2,
/*129996*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 0, 
                        // Src: (or:{ *:[v4i64] } (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, VR256:{ *:[v4i64] }:$src1), (X86andnp:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 31
                        // Dst: (VPCMOVYrmr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$src3)
/*130009*/            0, // EndSwitchType
/*130010*/          0, /*End of Scope*/
/*130011*/        0, /*End of Scope*/
/*130012*/      /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(X86ISD::ANDNP),// ->130201
/*130016*/        OPC_MoveChild0,
/*130017*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*130020*/        OPC_RecordMemRef,
/*130021*/        OPC_RecordNode, // #0 = 'ld' chained node
/*130022*/        OPC_CheckFoldableChainNode,
/*130023*/        OPC_RecordChild1, // #1 = $src3
/*130024*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*130026*/        OPC_CheckPredicate, 9, // Predicate_load
/*130028*/        OPC_MoveParent,
/*130029*/        OPC_RecordChild1, // #2 = $src2
/*130030*/        OPC_MoveParent,
/*130031*/        OPC_MoveChild1,
/*130032*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*130035*/        OPC_Scope, 40, /*->130077*/ // 4 children in Scope
/*130037*/          OPC_MoveChild0,
/*130038*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*130041*/          OPC_RecordMemRef,
/*130042*/          OPC_RecordNode, // #3 = 'ld' chained node
/*130043*/          OPC_CheckFoldableChainNode,
/*130044*/          OPC_CheckChild1Same, 1,
/*130046*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*130048*/          OPC_CheckPredicate, 9, // Predicate_load
/*130050*/          OPC_MoveParent,
/*130051*/          OPC_RecordChild1, // #4 = $src1
/*130052*/          OPC_MoveParent,
/*130053*/          OPC_CheckType, MVT::v2i64,
/*130055*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*130057*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*130060*/          OPC_EmitMergeInputChains, 2, 0, 3, 
/*130064*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 
                    // Src: (or:{ *:[v2i64] } (X86andnp:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src2), (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src1)) - Complexity = 53
                    // Dst: (VPCMOVrrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*130077*/        /*Scope*/ 40, /*->130118*/
/*130078*/          OPC_RecordChild0, // #3 = $src1
/*130079*/          OPC_MoveChild1,
/*130080*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*130083*/          OPC_RecordMemRef,
/*130084*/          OPC_RecordNode, // #4 = 'ld' chained node
/*130085*/          OPC_CheckFoldableChainNode,
/*130086*/          OPC_CheckChild1Same, 1,
/*130088*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*130090*/          OPC_CheckPredicate, 9, // Predicate_load
/*130092*/          OPC_MoveParent,
/*130093*/          OPC_MoveParent,
/*130094*/          OPC_CheckType, MVT::v2i64,
/*130096*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*130098*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*130101*/          OPC_EmitMergeInputChains, 2, 0, 4, 
/*130105*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 
                    // Src: (or:{ *:[v2i64] } (X86andnp:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src2), (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 53
                    // Dst: (VPCMOVrrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*130118*/        /*Scope*/ 40, /*->130159*/
/*130119*/          OPC_MoveChild0,
/*130120*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*130123*/          OPC_RecordMemRef,
/*130124*/          OPC_RecordNode, // #3 = 'ld' chained node
/*130125*/          OPC_CheckFoldableChainNode,
/*130126*/          OPC_CheckChild1Same, 1,
/*130128*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*130130*/          OPC_CheckPredicate, 9, // Predicate_load
/*130132*/          OPC_MoveParent,
/*130133*/          OPC_RecordChild1, // #4 = $src1
/*130134*/          OPC_MoveParent,
/*130135*/          OPC_CheckType, MVT::v4i64,
/*130137*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*130139*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*130142*/          OPC_EmitMergeInputChains, 2, 0, 3, 
/*130146*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 4, 2, 5, 6, 7, 8, 9, 
                    // Src: (or:{ *:[v4i64] } (X86andnp:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src2), (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src1)) - Complexity = 53
                    // Dst: (VPCMOVYrrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*130159*/        /*Scope*/ 40, /*->130200*/
/*130160*/          OPC_RecordChild0, // #3 = $src1
/*130161*/          OPC_MoveChild1,
/*130162*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*130165*/          OPC_RecordMemRef,
/*130166*/          OPC_RecordNode, // #4 = 'ld' chained node
/*130167*/          OPC_CheckFoldableChainNode,
/*130168*/          OPC_CheckChild1Same, 1,
/*130170*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*130172*/          OPC_CheckPredicate, 9, // Predicate_load
/*130174*/          OPC_MoveParent,
/*130175*/          OPC_MoveParent,
/*130176*/          OPC_CheckType, MVT::v4i64,
/*130178*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*130180*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*130183*/          OPC_EmitMergeInputChains, 2, 0, 4, 
/*130187*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 
                    // Src: (or:{ *:[v4i64] } (X86andnp:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src2), (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 53
                    // Dst: (VPCMOVYrrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*130200*/        0, /*End of Scope*/
/*130201*/      0, // EndSwitchOpcode
/*130202*/    /*Scope*/ 5|128,2/*261*/, /*->130465*/
/*130204*/      OPC_RecordChild0, // #0 = $src1
/*130205*/      OPC_MoveChild1,
/*130206*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*130209*/      OPC_MoveChild0,
/*130210*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*130213*/      OPC_MoveChild0,
/*130214*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*130217*/      OPC_RecordMemRef,
/*130218*/      OPC_RecordNode, // #1 = 'ld' chained node
/*130219*/      OPC_CheckFoldableChainNode,
/*130220*/      OPC_RecordChild1, // #2 = $src2
/*130221*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*130223*/      OPC_Scope, 79, /*->130304*/ // 2 children in Scope
/*130225*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*130227*/        OPC_CheckType, MVT::i32,
/*130229*/        OPC_MoveParent,
/*130230*/        OPC_SwitchType /*3 cases */, 22, MVT::v16i32,// ->130255
/*130233*/          OPC_MoveParent,
/*130234*/          OPC_MoveParent,
/*130235*/          OPC_CheckType, MVT::v8i64,
/*130237*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130239*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130242*/          OPC_EmitMergeInputChains1_1,
/*130243*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (VPORDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130255*/        /*SwitchType*/ 22, MVT::v8i32,// ->130279
/*130257*/          OPC_MoveParent,
/*130258*/          OPC_MoveParent,
/*130259*/          OPC_CheckType, MVT::v4i64,
/*130261*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*130263*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130266*/          OPC_EmitMergeInputChains1_1,
/*130267*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (VPORDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130279*/        /*SwitchType*/ 22, MVT::v4i32,// ->130303
/*130281*/          OPC_MoveParent,
/*130282*/          OPC_MoveParent,
/*130283*/          OPC_CheckType, MVT::v2i64,
/*130285*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*130287*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130290*/          OPC_EmitMergeInputChains1_1,
/*130291*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (VPORDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130303*/        0, // EndSwitchType
/*130304*/      /*Scope*/ 30|128,1/*158*/, /*->130464*/
/*130306*/        OPC_CheckPredicate, 9, // Predicate_load
/*130308*/        OPC_SwitchType /*2 cases */, 75, MVT::f32,// ->130386
/*130311*/          OPC_MoveParent,
/*130312*/          OPC_SwitchType /*3 cases */, 22, MVT::v4f32,// ->130337
/*130315*/            OPC_MoveParent,
/*130316*/            OPC_MoveParent,
/*130317*/            OPC_CheckType, MVT::v2i64,
/*130319*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*130321*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130324*/            OPC_EmitMergeInputChains1_1,
/*130325*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPORDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130337*/          /*SwitchType*/ 22, MVT::v8f32,// ->130361
/*130339*/            OPC_MoveParent,
/*130340*/            OPC_MoveParent,
/*130341*/            OPC_CheckType, MVT::v4i64,
/*130343*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*130345*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130348*/            OPC_EmitMergeInputChains1_1,
/*130349*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPORDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130361*/          /*SwitchType*/ 22, MVT::v16f32,// ->130385
/*130363*/            OPC_MoveParent,
/*130364*/            OPC_MoveParent,
/*130365*/            OPC_CheckType, MVT::v8i64,
/*130367*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130369*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130372*/            OPC_EmitMergeInputChains1_1,
/*130373*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPORDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130385*/          0, // EndSwitchType
/*130386*/        /*SwitchType*/ 75, MVT::f64,// ->130463
/*130388*/          OPC_MoveParent,
/*130389*/          OPC_SwitchType /*3 cases */, 22, MVT::v2f64,// ->130414
/*130392*/            OPC_MoveParent,
/*130393*/            OPC_MoveParent,
/*130394*/            OPC_CheckType, MVT::v2i64,
/*130396*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*130398*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130401*/            OPC_EmitMergeInputChains1_1,
/*130402*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130414*/          /*SwitchType*/ 22, MVT::v4f64,// ->130438
/*130416*/            OPC_MoveParent,
/*130417*/            OPC_MoveParent,
/*130418*/            OPC_CheckType, MVT::v4i64,
/*130420*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*130422*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130425*/            OPC_EmitMergeInputChains1_1,
/*130426*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130438*/          /*SwitchType*/ 22, MVT::v8f64,// ->130462
/*130440*/            OPC_MoveParent,
/*130441*/            OPC_MoveParent,
/*130442*/            OPC_CheckType, MVT::v8i64,
/*130444*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130446*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130449*/            OPC_EmitMergeInputChains1_1,
/*130450*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130462*/          0, // EndSwitchType
/*130463*/        0, // EndSwitchType
/*130464*/      0, /*End of Scope*/
/*130465*/    /*Scope*/ 86|128,3/*470*/, /*->130937*/
/*130467*/      OPC_MoveChild0,
/*130468*/      OPC_SwitchOpcode /*3 cases */, 67, TARGET_VAL(ISD::AND),// ->130539
/*130472*/        OPC_RecordChild0, // #0 = $src1
/*130473*/        OPC_RecordChild1, // #1 = $src3
/*130474*/        OPC_MoveParent,
/*130475*/        OPC_MoveChild1,
/*130476*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::ANDNP),
/*130479*/        OPC_CheckChild0Same, 1,
/*130481*/        OPC_MoveChild1,
/*130482*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*130485*/        OPC_RecordMemRef,
/*130486*/        OPC_RecordNode, // #2 = 'ld' chained node
/*130487*/        OPC_CheckFoldableChainNode,
/*130488*/        OPC_RecordChild1, // #3 = $src2
/*130489*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*130491*/        OPC_CheckPredicate, 9, // Predicate_load
/*130493*/        OPC_MoveParent,
/*130494*/        OPC_MoveParent,
/*130495*/        OPC_SwitchType /*2 cases */, 19, MVT::v2i64,// ->130517
/*130498*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*130500*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*130503*/          OPC_EmitMergeInputChains1_2,
/*130504*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 1, 
                    // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src3), (X86andnp:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 31
                    // Dst: (VPCMOVrmr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*130517*/        /*SwitchType*/ 19, MVT::v4i64,// ->130538
/*130519*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*130521*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*130524*/          OPC_EmitMergeInputChains1_2,
/*130525*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 1, 
                    // Src: (or:{ *:[v4i64] } (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src3), (X86andnp:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 31
                    // Dst: (VPCMOVYrmr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$src3)
/*130538*/        0, // EndSwitchType
/*130539*/      /*SwitchOpcode*/ 125, TARGET_VAL(X86ISD::ANDNP),// ->130667
/*130542*/        OPC_RecordChild0, // #0 = $src3
/*130543*/        OPC_MoveChild1,
/*130544*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*130547*/        OPC_RecordMemRef,
/*130548*/        OPC_RecordNode, // #1 = 'ld' chained node
/*130549*/        OPC_CheckFoldableChainNode,
/*130550*/        OPC_RecordChild1, // #2 = $src2
/*130551*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*130553*/        OPC_CheckPredicate, 9, // Predicate_load
/*130555*/        OPC_MoveParent,
/*130556*/        OPC_MoveParent,
/*130557*/        OPC_MoveChild1,
/*130558*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*130561*/        OPC_Scope, 25, /*->130588*/ // 4 children in Scope
/*130563*/          OPC_CheckChild0Same, 0,
/*130565*/          OPC_RecordChild1, // #3 = $src1
/*130566*/          OPC_MoveParent,
/*130567*/          OPC_CheckType, MVT::v2i64,
/*130569*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*130571*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*130574*/          OPC_EmitMergeInputChains1_1,
/*130575*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                    // Src: (or:{ *:[v2i64] } (X86andnp:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, VR128:{ *:[v2i64] }:$src1)) - Complexity = 31
                    // Dst: (VPCMOVrmr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*130588*/        /*Scope*/ 25, /*->130614*/
/*130589*/          OPC_RecordChild0, // #3 = $src1
/*130590*/          OPC_CheckChild1Same, 0,
/*130592*/          OPC_MoveParent,
/*130593*/          OPC_CheckType, MVT::v2i64,
/*130595*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*130597*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*130600*/          OPC_EmitMergeInputChains1_1,
/*130601*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                    // Src: (or:{ *:[v2i64] } (X86andnp:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src3)) - Complexity = 31
                    // Dst: (VPCMOVrmr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*130614*/        /*Scope*/ 25, /*->130640*/
/*130615*/          OPC_CheckChild0Same, 0,
/*130617*/          OPC_RecordChild1, // #3 = $src1
/*130618*/          OPC_MoveParent,
/*130619*/          OPC_CheckType, MVT::v4i64,
/*130621*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*130623*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*130626*/          OPC_EmitMergeInputChains1_1,
/*130627*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                    // Src: (or:{ *:[v4i64] } (X86andnp:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, VR256:{ *:[v4i64] }:$src1)) - Complexity = 31
                    // Dst: (VPCMOVYrmr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$src3)
/*130640*/        /*Scope*/ 25, /*->130666*/
/*130641*/          OPC_RecordChild0, // #3 = $src1
/*130642*/          OPC_CheckChild1Same, 0,
/*130644*/          OPC_MoveParent,
/*130645*/          OPC_CheckType, MVT::v4i64,
/*130647*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*130649*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*130652*/          OPC_EmitMergeInputChains1_1,
/*130653*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                    // Src: (or:{ *:[v4i64] } (X86andnp:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src3)) - Complexity = 31
                    // Dst: (VPCMOVYrmr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$src3)
/*130666*/        0, /*End of Scope*/
/*130667*/      /*SwitchOpcode*/ 9|128,2/*265*/, TARGET_VAL(ISD::BITCAST),// ->130936
/*130671*/        OPC_MoveChild0,
/*130672*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*130675*/        OPC_MoveChild0,
/*130676*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*130679*/        OPC_RecordMemRef,
/*130680*/        OPC_RecordNode, // #0 = 'ld' chained node
/*130681*/        OPC_CheckFoldableChainNode,
/*130682*/        OPC_RecordChild1, // #1 = $src2
/*130683*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*130685*/        OPC_Scope, 82, /*->130769*/ // 2 children in Scope
/*130687*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*130689*/          OPC_CheckType, MVT::i32,
/*130691*/          OPC_MoveParent,
/*130692*/          OPC_SwitchType /*3 cases */, 23, MVT::v16i32,// ->130718
/*130695*/            OPC_MoveParent,
/*130696*/            OPC_MoveParent,
/*130697*/            OPC_RecordChild1, // #2 = $src1
/*130698*/            OPC_CheckType, MVT::v8i64,
/*130700*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130702*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130705*/            OPC_EmitMergeInputChains1_0,
/*130706*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                      // Dst: (VPORDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130718*/          /*SwitchType*/ 23, MVT::v8i32,// ->130743
/*130720*/            OPC_MoveParent,
/*130721*/            OPC_MoveParent,
/*130722*/            OPC_RecordChild1, // #2 = $src1
/*130723*/            OPC_CheckType, MVT::v4i64,
/*130725*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*130727*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130730*/            OPC_EmitMergeInputChains1_0,
/*130731*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                      // Dst: (VPORDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130743*/          /*SwitchType*/ 23, MVT::v4i32,// ->130768
/*130745*/            OPC_MoveParent,
/*130746*/            OPC_MoveParent,
/*130747*/            OPC_RecordChild1, // #2 = $src1
/*130748*/            OPC_CheckType, MVT::v2i64,
/*130750*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*130752*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130755*/            OPC_EmitMergeInputChains1_0,
/*130756*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                      // Dst: (VPORDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130768*/          0, // EndSwitchType
/*130769*/        /*Scope*/ 36|128,1/*164*/, /*->130935*/
/*130771*/          OPC_CheckPredicate, 9, // Predicate_load
/*130773*/          OPC_SwitchType /*2 cases */, 78, MVT::f32,// ->130854
/*130776*/            OPC_MoveParent,
/*130777*/            OPC_SwitchType /*3 cases */, 23, MVT::v4f32,// ->130803
/*130780*/              OPC_MoveParent,
/*130781*/              OPC_MoveParent,
/*130782*/              OPC_RecordChild1, // #2 = $src1
/*130783*/              OPC_CheckType, MVT::v2i64,
/*130785*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*130787*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130790*/              OPC_EmitMergeInputChains1_0,
/*130791*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPORDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130803*/            /*SwitchType*/ 23, MVT::v8f32,// ->130828
/*130805*/              OPC_MoveParent,
/*130806*/              OPC_MoveParent,
/*130807*/              OPC_RecordChild1, // #2 = $src1
/*130808*/              OPC_CheckType, MVT::v4i64,
/*130810*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*130812*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130815*/              OPC_EmitMergeInputChains1_0,
/*130816*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPORDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130828*/            /*SwitchType*/ 23, MVT::v16f32,// ->130853
/*130830*/              OPC_MoveParent,
/*130831*/              OPC_MoveParent,
/*130832*/              OPC_RecordChild1, // #2 = $src1
/*130833*/              OPC_CheckType, MVT::v8i64,
/*130835*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130837*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130840*/              OPC_EmitMergeInputChains1_0,
/*130841*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPORDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130853*/            0, // EndSwitchType
/*130854*/          /*SwitchType*/ 78, MVT::f64,// ->130934
/*130856*/            OPC_MoveParent,
/*130857*/            OPC_SwitchType /*3 cases */, 23, MVT::v2f64,// ->130883
/*130860*/              OPC_MoveParent,
/*130861*/              OPC_MoveParent,
/*130862*/              OPC_RecordChild1, // #2 = $src1
/*130863*/              OPC_CheckType, MVT::v2i64,
/*130865*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*130867*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130870*/              OPC_EmitMergeInputChains1_0,
/*130871*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130883*/            /*SwitchType*/ 23, MVT::v4f64,// ->130908
/*130885*/              OPC_MoveParent,
/*130886*/              OPC_MoveParent,
/*130887*/              OPC_RecordChild1, // #2 = $src1
/*130888*/              OPC_CheckType, MVT::v4i64,
/*130890*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*130892*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130895*/              OPC_EmitMergeInputChains1_0,
/*130896*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130908*/            /*SwitchType*/ 23, MVT::v8f64,// ->130933
/*130910*/              OPC_MoveParent,
/*130911*/              OPC_MoveParent,
/*130912*/              OPC_RecordChild1, // #2 = $src1
/*130913*/              OPC_CheckType, MVT::v8i64,
/*130915*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130917*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130920*/              OPC_EmitMergeInputChains1_0,
/*130921*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130933*/            0, // EndSwitchType
/*130934*/          0, // EndSwitchType
/*130935*/        0, /*End of Scope*/
/*130936*/      0, // EndSwitchOpcode
/*130937*/    /*Scope*/ 83, /*->131021*/
/*130938*/      OPC_RecordChild0, // #0 = $src1
/*130939*/      OPC_MoveChild1,
/*130940*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*130943*/      OPC_MoveChild0,
/*130944*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*130947*/      OPC_RecordMemRef,
/*130948*/      OPC_RecordNode, // #1 = 'ld' chained node
/*130949*/      OPC_CheckFoldableChainNode,
/*130950*/      OPC_RecordChild1, // #2 = $src2
/*130951*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*130953*/      OPC_CheckPredicate, 9, // Predicate_load
/*130955*/      OPC_CheckType, MVT::i64,
/*130957*/      OPC_MoveParent,
/*130958*/      OPC_MoveParent,
/*130959*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->130980
/*130962*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130964*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130967*/        OPC_EmitMergeInputChains1_1,
/*130968*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*130980*/      /*SwitchType*/ 18, MVT::v4i64,// ->131000
/*130982*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*130984*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*130987*/        OPC_EmitMergeInputChains1_1,
/*130988*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131000*/      /*SwitchType*/ 18, MVT::v2i64,// ->131020
/*131002*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*131004*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131007*/        OPC_EmitMergeInputChains1_1,
/*131008*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131020*/      0, // EndSwitchType
/*131021*/    /*Scope*/ 83, /*->131105*/
/*131022*/      OPC_MoveChild0,
/*131023*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*131026*/      OPC_MoveChild0,
/*131027*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*131030*/      OPC_RecordMemRef,
/*131031*/      OPC_RecordNode, // #0 = 'ld' chained node
/*131032*/      OPC_CheckFoldableChainNode,
/*131033*/      OPC_RecordChild1, // #1 = $src2
/*131034*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*131036*/      OPC_CheckPredicate, 9, // Predicate_load
/*131038*/      OPC_CheckType, MVT::i64,
/*131040*/      OPC_MoveParent,
/*131041*/      OPC_MoveParent,
/*131042*/      OPC_RecordChild1, // #2 = $src1
/*131043*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->131064
/*131046*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131048*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131051*/        OPC_EmitMergeInputChains1_0,
/*131052*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (or:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                  // Dst: (VPORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131064*/      /*SwitchType*/ 18, MVT::v4i64,// ->131084
/*131066*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*131068*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131071*/        OPC_EmitMergeInputChains1_0,
/*131072*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (or:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                  // Dst: (VPORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131084*/      /*SwitchType*/ 18, MVT::v2i64,// ->131104
/*131086*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*131088*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131091*/        OPC_EmitMergeInputChains1_0,
/*131092*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (or:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                  // Dst: (VPORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131104*/      0, // EndSwitchType
/*131105*/    /*Scope*/ 40|128,1/*168*/, /*->131275*/
/*131107*/      OPC_RecordChild0, // #0 = $src1
/*131108*/      OPC_MoveChild1,
/*131109*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*131112*/      OPC_RecordMemRef,
/*131113*/      OPC_RecordNode, // #1 = 'ld' chained node
/*131114*/      OPC_CheckFoldableChainNode,
/*131115*/      OPC_RecordChild1, // #2 = $src2
/*131116*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*131118*/      OPC_CheckPredicate, 9, // Predicate_load
/*131120*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*131122*/      OPC_Scope, 21, /*->131145*/ // 3 children in Scope
/*131124*/        OPC_MoveParent,
/*131125*/        OPC_CheckType, MVT::v2i64,
/*131127*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*131129*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131132*/        OPC_EmitMergeInputChains1_1,
/*131133*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>) - Complexity = 25
                  // Dst: (VPORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131145*/      /*Scope*/ 23, /*->131169*/
/*131146*/        OPC_CheckPredicate, 48, // Predicate_memop
/*131148*/        OPC_MoveParent,
/*131149*/        OPC_CheckType, MVT::v2i64,
/*131151*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*131153*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131156*/        OPC_EmitMergeInputChains1_1,
/*131157*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131169*/      /*Scope*/ 104, /*->131274*/
/*131170*/        OPC_MoveParent,
/*131171*/        OPC_SwitchType /*3 cases */, 59, MVT::v4i64,// ->131233
/*131174*/          OPC_Scope, 18, /*->131194*/ // 3 children in Scope
/*131176*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*131178*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131181*/            OPC_EmitMergeInputChains1_1,
/*131182*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPORYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131194*/          /*Scope*/ 18, /*->131213*/
/*131195*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*131197*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131200*/            OPC_EmitMergeInputChains1_1,
/*131201*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VORPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131213*/          /*Scope*/ 18, /*->131232*/
/*131214*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*131216*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131219*/            OPC_EmitMergeInputChains1_1,
/*131220*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPORQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131232*/          0, /*End of Scope*/
/*131233*/        /*SwitchType*/ 18, MVT::v8i64,// ->131253
/*131235*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131237*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131240*/          OPC_EmitMergeInputChains1_1,
/*131241*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPORQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131253*/        /*SwitchType*/ 18, MVT::v2i64,// ->131273
/*131255*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*131257*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131260*/          OPC_EmitMergeInputChains1_1,
/*131261*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPORQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131273*/        0, // EndSwitchType
/*131274*/      0, /*End of Scope*/
/*131275*/    /*Scope*/ 79|128,2/*335*/, /*->131612*/
/*131277*/      OPC_MoveChild0,
/*131278*/      OPC_SwitchOpcode /*3 cases */, 38|128,1/*166*/, TARGET_VAL(ISD::LOAD),// ->131449
/*131283*/        OPC_RecordMemRef,
/*131284*/        OPC_RecordNode, // #0 = 'ld' chained node
/*131285*/        OPC_CheckFoldableChainNode,
/*131286*/        OPC_RecordChild1, // #1 = $src2
/*131287*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*131289*/        OPC_CheckPredicate, 9, // Predicate_load
/*131291*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*131293*/        OPC_Scope, 22, /*->131317*/ // 3 children in Scope
/*131295*/          OPC_MoveParent,
/*131296*/          OPC_RecordChild1, // #2 = $src1
/*131297*/          OPC_CheckType, MVT::v2i64,
/*131299*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*131301*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131304*/          OPC_EmitMergeInputChains1_0,
/*131305*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131317*/        /*Scope*/ 24, /*->131342*/
/*131318*/          OPC_CheckPredicate, 48, // Predicate_memop
/*131320*/          OPC_MoveParent,
/*131321*/          OPC_RecordChild1, // #2 = $src1
/*131322*/          OPC_CheckType, MVT::v2i64,
/*131324*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*131326*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131329*/          OPC_EmitMergeInputChains1_0,
/*131330*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (PORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131342*/        /*Scope*/ 105, /*->131448*/
/*131343*/          OPC_MoveParent,
/*131344*/          OPC_RecordChild1, // #2 = $src1
/*131345*/          OPC_SwitchType /*3 cases */, 59, MVT::v4i64,// ->131407
/*131348*/            OPC_Scope, 18, /*->131368*/ // 3 children in Scope
/*131350*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*131352*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131355*/              OPC_EmitMergeInputChains1_0,
/*131356*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPORYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131368*/            /*Scope*/ 18, /*->131387*/
/*131369*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*131371*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131374*/              OPC_EmitMergeInputChains1_0,
/*131375*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPORQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131387*/            /*Scope*/ 18, /*->131406*/
/*131388*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*131390*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131393*/              OPC_EmitMergeInputChains1_0,
/*131394*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VORPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131406*/            0, /*End of Scope*/
/*131407*/          /*SwitchType*/ 18, MVT::v8i64,// ->131427
/*131409*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131411*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131414*/            OPC_EmitMergeInputChains1_0,
/*131415*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPORQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131427*/          /*SwitchType*/ 18, MVT::v2i64,// ->131447
/*131429*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*131431*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131434*/            OPC_EmitMergeInputChains1_0,
/*131435*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPORQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131447*/          0, // EndSwitchType
/*131448*/        0, /*End of Scope*/
/*131449*/      /*SwitchOpcode*/ 75, TARGET_VAL(ISD::AND),// ->131527
/*131452*/        OPC_RecordChild0, // #0 = $src3
/*131453*/        OPC_RecordChild1, // #1 = $src1
/*131454*/        OPC_MoveParent,
/*131455*/        OPC_MoveChild1,
/*131456*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::ANDNP),
/*131459*/        OPC_Scope, 32, /*->131493*/ // 2 children in Scope
/*131461*/          OPC_CheckChild0Same, 0,
/*131463*/          OPC_RecordChild1, // #2 = $src2
/*131464*/          OPC_MoveParent,
/*131465*/          OPC_SwitchType /*2 cases */, 11, MVT::v2i64,// ->131479
/*131468*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*131470*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                          MVT::v2i64, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, VR128:{ *:[v2i64] }:$src1), (X86andnp:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, VR128:{ *:[v2i64] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVrrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*131479*/          /*SwitchType*/ 11, MVT::v4i64,// ->131492
/*131481*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*131483*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                          MVT::v4i64, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v4i64] } (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, VR256:{ *:[v4i64] }:$src1), (X86andnp:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, VR256:{ *:[v4i64] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVYrrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, VR256:{ *:[v4i64] }:$src3)
/*131492*/          0, // EndSwitchType
/*131493*/        /*Scope*/ 32, /*->131526*/
/*131494*/          OPC_CheckChild0Same, 1,
/*131496*/          OPC_RecordChild1, // #2 = $src2
/*131497*/          OPC_MoveParent,
/*131498*/          OPC_SwitchType /*2 cases */, 11, MVT::v2i64,// ->131512
/*131501*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*131503*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src3), (X86andnp:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, VR128:{ *:[v2i64] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVrrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*131512*/          /*SwitchType*/ 11, MVT::v4i64,// ->131525
/*131514*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*131516*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v4i64] } (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src3), (X86andnp:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, VR256:{ *:[v4i64] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVYrrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, VR256:{ *:[v4i64] }:$src3)
/*131525*/          0, // EndSwitchType
/*131526*/        0, /*End of Scope*/
/*131527*/      /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::ANDNP),// ->131611
/*131530*/        OPC_RecordChild0, // #0 = $src3
/*131531*/        OPC_RecordChild1, // #1 = $src2
/*131532*/        OPC_MoveParent,
/*131533*/        OPC_MoveChild1,
/*131534*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*131537*/        OPC_Scope, 17, /*->131556*/ // 4 children in Scope
/*131539*/          OPC_CheckChild0Same, 0,
/*131541*/          OPC_RecordChild1, // #2 = $src1
/*131542*/          OPC_MoveParent,
/*131543*/          OPC_CheckType, MVT::v2i64,
/*131545*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*131547*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                        MVT::v2i64, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v2i64] } (X86andnp:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, VR128:{ *:[v2i64] }:$src2), (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, VR128:{ *:[v2i64] }:$src1)) - Complexity = 9
                    // Dst: (VPCMOVrrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*131556*/        /*Scope*/ 17, /*->131574*/
/*131557*/          OPC_RecordChild0, // #2 = $src1
/*131558*/          OPC_CheckChild1Same, 0,
/*131560*/          OPC_MoveParent,
/*131561*/          OPC_CheckType, MVT::v2i64,
/*131563*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*131565*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                        MVT::v2i64, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v2i64] } (X86andnp:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src3, VR128:{ *:[v2i64] }:$src2), (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src3)) - Complexity = 9
                    // Dst: (VPCMOVrrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*131574*/        /*Scope*/ 17, /*->131592*/
/*131575*/          OPC_CheckChild0Same, 0,
/*131577*/          OPC_RecordChild1, // #2 = $src1
/*131578*/          OPC_MoveParent,
/*131579*/          OPC_CheckType, MVT::v4i64,
/*131581*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*131583*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                        MVT::v4i64, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v4i64] } (X86andnp:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, VR256:{ *:[v4i64] }:$src2), (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, VR256:{ *:[v4i64] }:$src1)) - Complexity = 9
                    // Dst: (VPCMOVYrrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, VR256:{ *:[v4i64] }:$src3)
/*131592*/        /*Scope*/ 17, /*->131610*/
/*131593*/          OPC_RecordChild0, // #2 = $src1
/*131594*/          OPC_CheckChild1Same, 0,
/*131596*/          OPC_MoveParent,
/*131597*/          OPC_CheckType, MVT::v4i64,
/*131599*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*131601*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                        MVT::v4i64, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v4i64] } (X86andnp:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src3, VR256:{ *:[v4i64] }:$src2), (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src3)) - Complexity = 9
                    // Dst: (VPCMOVYrrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, VR256:{ *:[v4i64] }:$src3)
/*131610*/        0, /*End of Scope*/
/*131611*/      0, // EndSwitchOpcode
/*131612*/    /*Scope*/ 58|128,2/*314*/, /*->131928*/
/*131614*/      OPC_RecordChild0, // #0 = $src1
/*131615*/      OPC_RecordChild1, // #1 = $src2
/*131616*/      OPC_SwitchType /*10 cases */, 35, MVT::v2i64,// ->131654
/*131619*/        OPC_Scope, 10, /*->131631*/ // 3 children in Scope
/*131621*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*131623*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrr), 0,
                        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)
/*131631*/        /*Scope*/ 10, /*->131642*/
/*131632*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*131634*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PORrr), 0,
                        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)
/*131642*/        /*Scope*/ 10, /*->131653*/
/*131643*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*131645*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPORQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*131653*/        0, /*End of Scope*/
/*131654*/      /*SwitchType*/ 35, MVT::v4i64,// ->131691
/*131656*/        OPC_Scope, 10, /*->131668*/ // 3 children in Scope
/*131658*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*131660*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPORYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*131668*/        /*Scope*/ 10, /*->131679*/
/*131669*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*131671*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrr), 0,
                        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)
/*131679*/        /*Scope*/ 10, /*->131690*/
/*131680*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*131682*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPORQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*131690*/        0, /*End of Scope*/
/*131691*/      /*SwitchType*/ 57, MVT::v8i1,// ->131750
/*131693*/        OPC_Scope, 10, /*->131705*/ // 2 children in Scope
/*131695*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*131697*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KORBrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2) - Complexity = 3
                    // Dst: (KORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*131705*/        /*Scope*/ 43, /*->131749*/
/*131706*/          OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/*131708*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*131711*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*131719*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*131722*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*131730*/          OPC_EmitNode1, TARGET_VAL(X86::KORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*131738*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*131741*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 6, 7, 
                    // Src: (or:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*131749*/        0, /*End of Scope*/
/*131750*/      /*SwitchType*/ 10, MVT::v16i1,// ->131762
/*131752*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131754*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2) - Complexity = 3
                  // Dst: (KORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*131762*/      /*SwitchType*/ 10, MVT::v32i1,// ->131774
/*131764*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*131766*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KORDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2) - Complexity = 3
                  // Dst: (KORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*131774*/      /*SwitchType*/ 10, MVT::v64i1,// ->131786
/*131776*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*131778*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KORQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2) - Complexity = 3
                  // Dst: (KORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*131786*/      /*SwitchType*/ 10, MVT::v8i64,// ->131798
/*131788*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131790*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPORQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*131798*/      /*SwitchType*/ 41, MVT::v1i1,// ->131841
/*131800*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*131803*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*131811*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*131814*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*131822*/        OPC_EmitNode1, TARGET_VAL(X86::KORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*131830*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*131833*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i1, 2/*#Ops*/, 6, 7, 
                  // Src: (or:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, VK1:{ *:[v1i1] }:$src2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*131841*/      /*SwitchType*/ 41, MVT::v2i1,// ->131884
/*131843*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*131846*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*131854*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*131857*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*131865*/        OPC_EmitNode1, TARGET_VAL(X86::KORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*131873*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*131876*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 6, 7, 
                  // Src: (or:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, VK2:{ *:[v2i1] }:$src2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*131884*/      /*SwitchType*/ 41, MVT::v4i1,// ->131927
/*131886*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*131889*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*131897*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*131900*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*131908*/        OPC_EmitNode1, TARGET_VAL(X86::KORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*131916*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*131919*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 6, 7, 
                  // Src: (or:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, VK4:{ *:[v4i1] }:$src2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*131927*/      0, // EndSwitchType
/*131928*/    0, /*End of Scope*/
/*131929*/  /*SwitchOpcode*/ 111|128,39/*5103*/, TARGET_VAL(ISD::XOR),// ->137036
/*131933*/    OPC_Scope, 105, /*->132040*/ // 37 children in Scope
/*131935*/      OPC_RecordChild0, // #0 = $src1
/*131936*/      OPC_MoveChild1,
/*131937*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*131940*/      OPC_RecordMemRef,
/*131941*/      OPC_RecordNode, // #1 = 'ld' chained node
/*131942*/      OPC_CheckFoldableChainNode,
/*131943*/      OPC_RecordChild1, // #2 = $src2
/*131944*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*131946*/      OPC_Scope, 22, /*->131970*/ // 4 children in Scope
/*131948*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*131950*/        OPC_MoveParent,
/*131951*/        OPC_CheckType, MVT::i8,
/*131953*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131956*/        OPC_EmitMergeInputChains1_1,
/*131957*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>) - Complexity = 25
                  // Dst: (XOR8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*131970*/      /*Scope*/ 22, /*->131993*/
/*131971*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*131973*/        OPC_MoveParent,
/*131974*/        OPC_CheckType, MVT::i16,
/*131976*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*131979*/        OPC_EmitMergeInputChains1_1,
/*131980*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*131993*/      /*Scope*/ 22, /*->132016*/
/*131994*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*131996*/        OPC_MoveParent,
/*131997*/        OPC_CheckType, MVT::i32,
/*131999*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*132002*/        OPC_EmitMergeInputChains1_1,
/*132003*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*132016*/      /*Scope*/ 22, /*->132039*/
/*132017*/        OPC_CheckPredicate, 9, // Predicate_load
/*132019*/        OPC_MoveParent,
/*132020*/        OPC_CheckType, MVT::i64,
/*132022*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*132025*/        OPC_EmitMergeInputChains1_1,
/*132026*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*132039*/      0, /*End of Scope*/
/*132040*/    /*Scope*/ 108, /*->132149*/
/*132041*/      OPC_MoveChild0,
/*132042*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*132045*/      OPC_RecordMemRef,
/*132046*/      OPC_RecordNode, // #0 = 'ld' chained node
/*132047*/      OPC_CheckFoldableChainNode,
/*132048*/      OPC_RecordChild1, // #1 = $src2
/*132049*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*132051*/      OPC_Scope, 23, /*->132076*/ // 4 children in Scope
/*132053*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*132055*/        OPC_MoveParent,
/*132056*/        OPC_RecordChild1, // #2 = $src1
/*132057*/        OPC_CheckType, MVT::i8,
/*132059*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*132062*/        OPC_EmitMergeInputChains1_0,
/*132063*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_loadi8>>, GR8:{ *:[i8] }:$src1) - Complexity = 25
                  // Dst: (XOR8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*132076*/      /*Scope*/ 23, /*->132100*/
/*132077*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*132079*/        OPC_MoveParent,
/*132080*/        OPC_RecordChild1, // #2 = $src1
/*132081*/        OPC_CheckType, MVT::i16,
/*132083*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*132086*/        OPC_EmitMergeInputChains1_0,
/*132087*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*132100*/      /*Scope*/ 23, /*->132124*/
/*132101*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*132103*/        OPC_MoveParent,
/*132104*/        OPC_RecordChild1, // #2 = $src1
/*132105*/        OPC_CheckType, MVT::i32,
/*132107*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*132110*/        OPC_EmitMergeInputChains1_0,
/*132111*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*132124*/      /*Scope*/ 23, /*->132148*/
/*132125*/        OPC_CheckPredicate, 9, // Predicate_load
/*132127*/        OPC_MoveParent,
/*132128*/        OPC_RecordChild1, // #2 = $src1
/*132129*/        OPC_CheckType, MVT::i64,
/*132131*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*132134*/        OPC_EmitMergeInputChains1_0,
/*132135*/        OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*132148*/      0, /*End of Scope*/
/*132149*/    /*Scope*/ 1|128,1/*129*/, /*->132280*/
/*132151*/      OPC_RecordChild0, // #0 = $src1
/*132152*/      OPC_MoveChild1,
/*132153*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*132156*/      OPC_CheckChild0Integer, 1, 
/*132158*/      OPC_MoveChild1,
/*132159*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*132162*/      OPC_RecordChild0, // #1 = $src2
/*132163*/      OPC_MoveChild1,
/*132164*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*132167*/      OPC_Scope, 36, /*->132205*/ // 3 children in Scope
/*132169*/        OPC_CheckPredicate, 12, // Predicate_immShift16
/*132171*/        OPC_MoveParent,
/*132172*/        OPC_CheckType, MVT::i8,
/*132174*/        OPC_MoveParent,
/*132175*/        OPC_MoveParent,
/*132176*/        OPC_CheckType, MVT::i16,
/*132178*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*132184*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132187*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*132196*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (xor:{ *:[i16] } GR16:{ *:[i16] }:$src1, (shl:{ *:[i16] } 1:{ *:[i16] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift16>>))) - Complexity = 18
                  // Dst: (BTC16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132205*/      /*Scope*/ 36, /*->132242*/
/*132206*/        OPC_CheckPredicate, 6, // Predicate_immShift32
/*132208*/        OPC_MoveParent,
/*132209*/        OPC_CheckType, MVT::i8,
/*132211*/        OPC_MoveParent,
/*132212*/        OPC_MoveParent,
/*132213*/        OPC_CheckType, MVT::i32,
/*132215*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*132221*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132224*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*132233*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, (shl:{ *:[i32] } 1:{ *:[i32] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>))) - Complexity = 18
                  // Dst: (BTC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132242*/      /*Scope*/ 36, /*->132279*/
/*132243*/        OPC_CheckPredicate, 10, // Predicate_immShift64
/*132245*/        OPC_MoveParent,
/*132246*/        OPC_CheckType, MVT::i8,
/*132248*/        OPC_MoveParent,
/*132249*/        OPC_MoveParent,
/*132250*/        OPC_CheckType, MVT::i64,
/*132252*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*132258*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132261*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*132270*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, (shl:{ *:[i64] } 1:{ *:[i64] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>))) - Complexity = 18
                  // Dst: (BTC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132279*/      0, /*End of Scope*/
/*132280*/    /*Scope*/ 3|128,1/*131*/, /*->132413*/
/*132282*/      OPC_MoveChild0,
/*132283*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*132286*/      OPC_CheckChild0Integer, 1, 
/*132288*/      OPC_MoveChild1,
/*132289*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*132292*/      OPC_RecordChild0, // #0 = $src2
/*132293*/      OPC_MoveChild1,
/*132294*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*132297*/      OPC_Scope, 37, /*->132336*/ // 3 children in Scope
/*132299*/        OPC_CheckPredicate, 12, // Predicate_immShift16
/*132301*/        OPC_MoveParent,
/*132302*/        OPC_CheckType, MVT::i8,
/*132304*/        OPC_MoveParent,
/*132305*/        OPC_MoveParent,
/*132306*/        OPC_RecordChild1, // #1 = $src1
/*132307*/        OPC_CheckType, MVT::i16,
/*132309*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*132315*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132318*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*132327*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (xor:{ *:[i16] } (shl:{ *:[i16] } 1:{ *:[i16] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift16>>)), GR16:{ *:[i16] }:$src1) - Complexity = 18
                  // Dst: (BTC16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132336*/      /*Scope*/ 37, /*->132374*/
/*132337*/        OPC_CheckPredicate, 6, // Predicate_immShift32
/*132339*/        OPC_MoveParent,
/*132340*/        OPC_CheckType, MVT::i8,
/*132342*/        OPC_MoveParent,
/*132343*/        OPC_MoveParent,
/*132344*/        OPC_RecordChild1, // #1 = $src1
/*132345*/        OPC_CheckType, MVT::i32,
/*132347*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*132353*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132356*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*132365*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (xor:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)), GR32:{ *:[i32] }:$src1) - Complexity = 18
                  // Dst: (BTC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132374*/      /*Scope*/ 37, /*->132412*/
/*132375*/        OPC_CheckPredicate, 10, // Predicate_immShift64
/*132377*/        OPC_MoveParent,
/*132378*/        OPC_CheckType, MVT::i8,
/*132380*/        OPC_MoveParent,
/*132381*/        OPC_MoveParent,
/*132382*/        OPC_RecordChild1, // #1 = $src1
/*132383*/        OPC_CheckType, MVT::i64,
/*132385*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*132391*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132394*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*132403*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (xor:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, (and:{ *:[i8] } GR8:{ *:[i8] }:$src2, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)), GR64:{ *:[i64] }:$src1) - Complexity = 18
                  // Dst: (BTC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132412*/      0, /*End of Scope*/
/*132413*/    /*Scope*/ 78, /*->132492*/
/*132414*/      OPC_RecordChild0, // #0 = $src
/*132415*/      OPC_MoveChild1,
/*132416*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/*132419*/      OPC_CheckChild0Same, 0,
/*132421*/      OPC_Scope, 38, /*->132461*/ // 2 children in Scope
/*132423*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*132434*/        OPC_MoveParent,
/*132435*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->132448
/*132438*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*132440*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSMSK32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })) - Complexity = 11
                    // Dst: (BLSMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*132448*/        /*SwitchType*/ 10, MVT::i64,// ->132460
/*132450*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*132452*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSMSK64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })) - Complexity = 11
                    // Dst: (BLSMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*132460*/        0, // EndSwitchType
/*132461*/      /*Scope*/ 29, /*->132491*/
/*132462*/        OPC_CheckChild1Integer, 1, 
/*132464*/        OPC_MoveParent,
/*132465*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->132478
/*132468*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*132470*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCMSK32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] })) - Complexity = 11
                    // Dst: (BLCMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*132478*/        /*SwitchType*/ 10, MVT::i64,// ->132490
/*132480*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*132482*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCMSK64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] })) - Complexity = 11
                    // Dst: (BLCMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*132490*/        0, // EndSwitchType
/*132491*/      0, /*End of Scope*/
/*132492*/    /*Scope*/ 80, /*->132573*/
/*132493*/      OPC_MoveChild0,
/*132494*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/*132497*/      OPC_RecordChild0, // #0 = $src
/*132498*/      OPC_Scope, 31, /*->132531*/ // 2 children in Scope
/*132500*/        OPC_CheckChild1Integer, 1, 
/*132502*/        OPC_MoveParent,
/*132503*/        OPC_CheckChild1Same, 0,
/*132505*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->132518
/*132508*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*132510*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCMSK32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), GR32:{ *:[i32] }:$src) - Complexity = 11
                    // Dst: (BLCMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*132518*/        /*SwitchType*/ 10, MVT::i64,// ->132530
/*132520*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasTBM())
/*132522*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCMSK64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), GR64:{ *:[i64] }:$src) - Complexity = 11
                    // Dst: (BLCMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*132530*/        0, // EndSwitchType
/*132531*/      /*Scope*/ 40, /*->132572*/
/*132532*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*132543*/        OPC_MoveParent,
/*132544*/        OPC_CheckChild1Same, 0,
/*132546*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->132559
/*132549*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*132551*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSMSK32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src) - Complexity = 11
                    // Dst: (BLSMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*132559*/        /*SwitchType*/ 10, MVT::i64,// ->132571
/*132561*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI())
/*132563*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSMSK64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src) - Complexity = 11
                    // Dst: (BLSMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*132571*/        0, // EndSwitchType
/*132572*/      0, /*End of Scope*/
/*132573*/    /*Scope*/ 100, /*->132674*/
/*132574*/      OPC_RecordChild0, // #0 = $src1
/*132575*/      OPC_MoveChild1,
/*132576*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*132579*/      OPC_CheckChild0Integer, 1, 
/*132581*/      OPC_RecordChild1, // #1 = $src2
/*132582*/      OPC_CheckChild1Type, MVT::i8,
/*132584*/      OPC_MoveParent,
/*132585*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->132615
/*132588*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*132594*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132597*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*132606*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (xor:{ *:[i16] } GR16:{ *:[i16] }:$src1, (shl:{ *:[i16] } 1:{ *:[i16] }, GR8:{ *:[i8] }:$src2)) - Complexity = 11
                  // Dst: (BTC16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132615*/      /*SwitchType*/ 27, MVT::i32,// ->132644
/*132617*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*132623*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132626*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*132635*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, (shl:{ *:[i32] } 1:{ *:[i32] }, GR8:{ *:[i8] }:$src2)) - Complexity = 11
                  // Dst: (BTC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132644*/      /*SwitchType*/ 27, MVT::i64,// ->132673
/*132646*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*132652*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132655*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*132664*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 4, 
                  // Src: (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, (shl:{ *:[i64] } 1:{ *:[i64] }, GR8:{ *:[i8] }:$src2)) - Complexity = 11
                  // Dst: (BTC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132673*/      0, // EndSwitchType
/*132674*/    /*Scope*/ 100, /*->132775*/
/*132675*/      OPC_MoveChild0,
/*132676*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*132679*/      OPC_CheckChild0Integer, 1, 
/*132681*/      OPC_RecordChild1, // #0 = $src2
/*132682*/      OPC_CheckChild1Type, MVT::i8,
/*132684*/      OPC_MoveParent,
/*132685*/      OPC_RecordChild1, // #1 = $src1
/*132686*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->132716
/*132689*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*132695*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132698*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*132707*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC16rr), 0,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (xor:{ *:[i16] } (shl:{ *:[i16] } 1:{ *:[i16] }, GR8:{ *:[i8] }:$src2), GR16:{ *:[i16] }:$src1) - Complexity = 11
                  // Dst: (BTC16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132716*/      /*SwitchType*/ 27, MVT::i32,// ->132745
/*132718*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*132724*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132727*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*132736*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (xor:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, GR8:{ *:[i8] }:$src2), GR32:{ *:[i32] }:$src1) - Complexity = 11
                  // Dst: (BTC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132745*/      /*SwitchType*/ 27, MVT::i64,// ->132774
/*132747*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*132753*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*132756*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*132765*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BTC64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 4, 
                  // Src: (xor:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, GR8:{ *:[i8] }:$src2), GR64:{ *:[i64] }:$src1) - Complexity = 11
                  // Dst: (BTC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*132774*/      0, // EndSwitchType
/*132775*/    /*Scope*/ 125|128,3/*509*/, /*->133286*/
/*132777*/      OPC_RecordChild0, // #0 = $src1
/*132778*/      OPC_Scope, 49, /*->132829*/ // 3 children in Scope
/*132780*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*132791*/        OPC_SwitchType /*4 cases */, 7, MVT::i8,// ->132801
/*132794*/          OPC_MorphNodeTo1, TARGET_VAL(X86::NOT8r), 0,
                        MVT::i8, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i8] } GR8:{ *:[i8] }:$src1, -1:{ *:[i8] }) - Complexity = 8
                    // Dst: (NOT8r:{ *:[i8] } GR8:{ *:[i8] }:$src1)
/*132801*/        /*SwitchType*/ 7, MVT::i16,// ->132810
/*132803*/          OPC_MorphNodeTo1, TARGET_VAL(X86::NOT16r), 0,
                        MVT::i16, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i16] } GR16:{ *:[i16] }:$src1, -1:{ *:[i16] }) - Complexity = 8
                    // Dst: (NOT16r:{ *:[i16] } GR16:{ *:[i16] }:$src1)
/*132810*/        /*SwitchType*/ 7, MVT::i32,// ->132819
/*132812*/          OPC_MorphNodeTo1, TARGET_VAL(X86::NOT32r), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] }) - Complexity = 8
                    // Dst: (NOT32r:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/*132819*/        /*SwitchType*/ 7, MVT::i64,// ->132828
/*132821*/          OPC_MorphNodeTo1, TARGET_VAL(X86::NOT64r), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] }) - Complexity = 8
                    // Dst: (NOT64r:{ *:[i64] } GR64:{ *:[i64] }:$src1)
/*132828*/        0, // EndSwitchType
/*132829*/      /*Scope*/ 64|128,1/*192*/, /*->133023*/
/*132831*/        OPC_RecordChild1, // #1 = $mask
/*132832*/        OPC_Scope, 11|128,1/*139*/, /*->132974*/ // 5 children in Scope
/*132835*/          OPC_MoveChild1,
/*132836*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*132839*/          OPC_Scope, 21, /*->132862*/ // 6 children in Scope
/*132841*/            OPC_CheckPredicate, 59, // Predicate_BTCBTSMask64
/*132843*/            OPC_MoveParent,
/*132844*/            OPC_CheckType, MVT::i64,
/*132846*/            OPC_CheckPatternPredicate, 38, // (MF->getFunction().optForSize())
/*132848*/            OPC_EmitConvertToTarget, 1,
/*132850*/            OPC_EmitNodeXForm, 12, 2, // BTCBTSXForm
/*132853*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BTC64ri8), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_BTCBTSMask64>>:$mask) - Complexity = 8
                      // Dst: (BTC64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (BTCBTSXForm:{ *:[i64] } (imm:{ *:[i64] }):$mask))
/*132862*/          /*Scope*/ 16, /*->132879*/
/*132863*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*132865*/            OPC_MoveParent,
/*132866*/            OPC_CheckType, MVT::i16,
/*132868*/            OPC_EmitConvertToTarget, 1,
/*132870*/            OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16ri8), 0,
                          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)
/*132879*/          /*Scope*/ 16, /*->132896*/
/*132880*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*132882*/            OPC_MoveParent,
/*132883*/            OPC_CheckType, MVT::i32,
/*132885*/            OPC_EmitConvertToTarget, 1,
/*132887*/            OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32ri8), 0,
                          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)
/*132896*/          /*Scope*/ 16, /*->132913*/
/*132897*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*132899*/            OPC_MoveParent,
/*132900*/            OPC_CheckType, MVT::i64,
/*132902*/            OPC_EmitConvertToTarget, 1,
/*132904*/            OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64ri8), 0,
                          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)
/*132913*/          /*Scope*/ 16, /*->132930*/
/*132914*/            OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*132916*/            OPC_MoveParent,
/*132917*/            OPC_CheckType, MVT::i64,
/*132919*/            OPC_EmitConvertToTarget, 1,
/*132921*/            OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64ri32), 0,
                          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)
/*132930*/          /*Scope*/ 42, /*->132973*/
/*132931*/            OPC_MoveParent,
/*132932*/            OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->132946
/*132935*/              OPC_EmitConvertToTarget, 1,
/*132937*/              OPC_MorphNodeTo2, TARGET_VAL(X86::XOR8ri), 0,
                            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)
/*132946*/            /*SwitchType*/ 11, MVT::i16,// ->132959
/*132948*/              OPC_EmitConvertToTarget, 1,
/*132950*/              OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16ri), 0,
                            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)
/*132959*/            /*SwitchType*/ 11, MVT::i32,// ->132972
/*132961*/              OPC_EmitConvertToTarget, 1,
/*132963*/              OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32ri), 0,
                            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)
/*132972*/            0, // EndSwitchType
/*132973*/          0, /*End of Scope*/
/*132974*/        /*Scope*/ 11, /*->132986*/
/*132975*/          OPC_CheckType, MVT::i8,
/*132977*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR8rr), 0,
                        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)
/*132986*/        /*Scope*/ 11, /*->132998*/
/*132987*/          OPC_CheckType, MVT::i16,
/*132989*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16rr), 0,
                        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)
/*132998*/        /*Scope*/ 11, /*->133010*/
/*132999*/          OPC_CheckType, MVT::i32,
/*133001*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32rr), 0,
                        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)
/*133010*/        /*Scope*/ 11, /*->133022*/
/*133011*/          OPC_CheckType, MVT::i64,
/*133013*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64rr), 0,
                        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)
/*133022*/        0, /*End of Scope*/
/*133023*/      /*Scope*/ 4|128,2/*260*/, /*->133285*/
/*133025*/        OPC_MoveChild1,
/*133026*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*133029*/        OPC_MoveChild0,
/*133030*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*133033*/        OPC_MoveChild0,
/*133034*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*133037*/        OPC_RecordMemRef,
/*133038*/        OPC_RecordNode, // #1 = 'ld' chained node
/*133039*/        OPC_CheckFoldableChainNode,
/*133040*/        OPC_RecordChild1, // #2 = $src2
/*133041*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*133043*/        OPC_Scope, 79, /*->133124*/ // 2 children in Scope
/*133045*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*133047*/          OPC_CheckType, MVT::i32,
/*133049*/          OPC_MoveParent,
/*133050*/          OPC_SwitchType /*3 cases */, 22, MVT::v16i32,// ->133075
/*133053*/            OPC_MoveParent,
/*133054*/            OPC_MoveParent,
/*133055*/            OPC_CheckType, MVT::v8i64,
/*133057*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133059*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133062*/            OPC_EmitMergeInputChains1_1,
/*133063*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPXORDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133075*/          /*SwitchType*/ 22, MVT::v8i32,// ->133099
/*133077*/            OPC_MoveParent,
/*133078*/            OPC_MoveParent,
/*133079*/            OPC_CheckType, MVT::v4i64,
/*133081*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133083*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133086*/            OPC_EmitMergeInputChains1_1,
/*133087*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPXORDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133099*/          /*SwitchType*/ 22, MVT::v4i32,// ->133123
/*133101*/            OPC_MoveParent,
/*133102*/            OPC_MoveParent,
/*133103*/            OPC_CheckType, MVT::v2i64,
/*133105*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133107*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133110*/            OPC_EmitMergeInputChains1_1,
/*133111*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPXORDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133123*/          0, // EndSwitchType
/*133124*/        /*Scope*/ 30|128,1/*158*/, /*->133284*/
/*133126*/          OPC_CheckPredicate, 9, // Predicate_load
/*133128*/          OPC_SwitchType /*2 cases */, 75, MVT::f32,// ->133206
/*133131*/            OPC_MoveParent,
/*133132*/            OPC_SwitchType /*3 cases */, 22, MVT::v4f32,// ->133157
/*133135*/              OPC_MoveParent,
/*133136*/              OPC_MoveParent,
/*133137*/              OPC_CheckType, MVT::v2i64,
/*133139*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*133141*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133144*/              OPC_EmitMergeInputChains1_1,
/*133145*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPXORDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133157*/            /*SwitchType*/ 22, MVT::v8f32,// ->133181
/*133159*/              OPC_MoveParent,
/*133160*/              OPC_MoveParent,
/*133161*/              OPC_CheckType, MVT::v4i64,
/*133163*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*133165*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133168*/              OPC_EmitMergeInputChains1_1,
/*133169*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPXORDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133181*/            /*SwitchType*/ 22, MVT::v16f32,// ->133205
/*133183*/              OPC_MoveParent,
/*133184*/              OPC_MoveParent,
/*133185*/              OPC_CheckType, MVT::v8i64,
/*133187*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133189*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133192*/              OPC_EmitMergeInputChains1_1,
/*133193*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPXORDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133205*/            0, // EndSwitchType
/*133206*/          /*SwitchType*/ 75, MVT::f64,// ->133283
/*133208*/            OPC_MoveParent,
/*133209*/            OPC_SwitchType /*3 cases */, 22, MVT::v2f64,// ->133234
/*133212*/              OPC_MoveParent,
/*133213*/              OPC_MoveParent,
/*133214*/              OPC_CheckType, MVT::v2i64,
/*133216*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*133218*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133221*/              OPC_EmitMergeInputChains1_1,
/*133222*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPXORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133234*/            /*SwitchType*/ 22, MVT::v4f64,// ->133258
/*133236*/              OPC_MoveParent,
/*133237*/              OPC_MoveParent,
/*133238*/              OPC_CheckType, MVT::v4i64,
/*133240*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*133242*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133245*/              OPC_EmitMergeInputChains1_1,
/*133246*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPXORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133258*/            /*SwitchType*/ 22, MVT::v8f64,// ->133282
/*133260*/              OPC_MoveParent,
/*133261*/              OPC_MoveParent,
/*133262*/              OPC_CheckType, MVT::v8i64,
/*133264*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133266*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133269*/              OPC_EmitMergeInputChains1_1,
/*133270*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPXORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133282*/            0, // EndSwitchType
/*133283*/          0, // EndSwitchType
/*133284*/        0, /*End of Scope*/
/*133285*/      0, /*End of Scope*/
/*133286*/    /*Scope*/ 13|128,2/*269*/, /*->133557*/
/*133288*/      OPC_MoveChild0,
/*133289*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*133292*/      OPC_MoveChild0,
/*133293*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*133296*/      OPC_MoveChild0,
/*133297*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*133300*/      OPC_RecordMemRef,
/*133301*/      OPC_RecordNode, // #0 = 'ld' chained node
/*133302*/      OPC_CheckFoldableChainNode,
/*133303*/      OPC_RecordChild1, // #1 = $src2
/*133304*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*133306*/      OPC_Scope, 82, /*->133390*/ // 2 children in Scope
/*133308*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*133310*/        OPC_CheckType, MVT::i32,
/*133312*/        OPC_MoveParent,
/*133313*/        OPC_SwitchType /*3 cases */, 23, MVT::v16i32,// ->133339
/*133316*/          OPC_MoveParent,
/*133317*/          OPC_MoveParent,
/*133318*/          OPC_RecordChild1, // #2 = $src1
/*133319*/          OPC_CheckType, MVT::v8i64,
/*133321*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133323*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133326*/          OPC_EmitMergeInputChains1_0,
/*133327*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (xor:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                    // Dst: (VPXORDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133339*/        /*SwitchType*/ 23, MVT::v8i32,// ->133364
/*133341*/          OPC_MoveParent,
/*133342*/          OPC_MoveParent,
/*133343*/          OPC_RecordChild1, // #2 = $src1
/*133344*/          OPC_CheckType, MVT::v4i64,
/*133346*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133348*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133351*/          OPC_EmitMergeInputChains1_0,
/*133352*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                    // Dst: (VPXORDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133364*/        /*SwitchType*/ 23, MVT::v4i32,// ->133389
/*133366*/          OPC_MoveParent,
/*133367*/          OPC_MoveParent,
/*133368*/          OPC_RecordChild1, // #2 = $src1
/*133369*/          OPC_CheckType, MVT::v2i64,
/*133371*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133373*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133376*/          OPC_EmitMergeInputChains1_0,
/*133377*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                    // Dst: (VPXORDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133389*/        0, // EndSwitchType
/*133390*/      /*Scope*/ 36|128,1/*164*/, /*->133556*/
/*133392*/        OPC_CheckPredicate, 9, // Predicate_load
/*133394*/        OPC_SwitchType /*2 cases */, 78, MVT::f32,// ->133475
/*133397*/          OPC_MoveParent,
/*133398*/          OPC_SwitchType /*3 cases */, 23, MVT::v4f32,// ->133424
/*133401*/            OPC_MoveParent,
/*133402*/            OPC_MoveParent,
/*133403*/            OPC_RecordChild1, // #2 = $src1
/*133404*/            OPC_CheckType, MVT::v2i64,
/*133406*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*133408*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133411*/            OPC_EmitMergeInputChains1_0,
/*133412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                      // Dst: (VPXORDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133424*/          /*SwitchType*/ 23, MVT::v8f32,// ->133449
/*133426*/            OPC_MoveParent,
/*133427*/            OPC_MoveParent,
/*133428*/            OPC_RecordChild1, // #2 = $src1
/*133429*/            OPC_CheckType, MVT::v4i64,
/*133431*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*133433*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133436*/            OPC_EmitMergeInputChains1_0,
/*133437*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                      // Dst: (VPXORDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133449*/          /*SwitchType*/ 23, MVT::v16f32,// ->133474
/*133451*/            OPC_MoveParent,
/*133452*/            OPC_MoveParent,
/*133453*/            OPC_RecordChild1, // #2 = $src1
/*133454*/            OPC_CheckType, MVT::v8i64,
/*133456*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133458*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133461*/            OPC_EmitMergeInputChains1_0,
/*133462*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                      // Dst: (VPXORDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133474*/          0, // EndSwitchType
/*133475*/        /*SwitchType*/ 78, MVT::f64,// ->133555
/*133477*/          OPC_MoveParent,
/*133478*/          OPC_SwitchType /*3 cases */, 23, MVT::v2f64,// ->133504
/*133481*/            OPC_MoveParent,
/*133482*/            OPC_MoveParent,
/*133483*/            OPC_RecordChild1, // #2 = $src1
/*133484*/            OPC_CheckType, MVT::v2i64,
/*133486*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*133488*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133491*/            OPC_EmitMergeInputChains1_0,
/*133492*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                      // Dst: (VPXORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133504*/          /*SwitchType*/ 23, MVT::v4f64,// ->133529
/*133506*/            OPC_MoveParent,
/*133507*/            OPC_MoveParent,
/*133508*/            OPC_RecordChild1, // #2 = $src1
/*133509*/            OPC_CheckType, MVT::v4i64,
/*133511*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*133513*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133516*/            OPC_EmitMergeInputChains1_0,
/*133517*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                      // Dst: (VPXORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133529*/          /*SwitchType*/ 23, MVT::v8f64,// ->133554
/*133531*/            OPC_MoveParent,
/*133532*/            OPC_MoveParent,
/*133533*/            OPC_RecordChild1, // #2 = $src1
/*133534*/            OPC_CheckType, MVT::v8i64,
/*133536*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133538*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133541*/            OPC_EmitMergeInputChains1_0,
/*133542*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                      // Dst: (VPXORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133554*/          0, // EndSwitchType
/*133555*/        0, // EndSwitchType
/*133556*/      0, /*End of Scope*/
/*133557*/    /*Scope*/ 83, /*->133641*/
/*133558*/      OPC_RecordChild0, // #0 = $src1
/*133559*/      OPC_MoveChild1,
/*133560*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*133563*/      OPC_MoveChild0,
/*133564*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*133567*/      OPC_RecordMemRef,
/*133568*/      OPC_RecordNode, // #1 = 'ld' chained node
/*133569*/      OPC_CheckFoldableChainNode,
/*133570*/      OPC_RecordChild1, // #2 = $src2
/*133571*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*133573*/      OPC_CheckPredicate, 9, // Predicate_load
/*133575*/      OPC_CheckType, MVT::i64,
/*133577*/      OPC_MoveParent,
/*133578*/      OPC_MoveParent,
/*133579*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->133600
/*133582*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133584*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133587*/        OPC_EmitMergeInputChains1_1,
/*133588*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPXORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133600*/      /*SwitchType*/ 18, MVT::v4i64,// ->133620
/*133602*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133604*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133607*/        OPC_EmitMergeInputChains1_1,
/*133608*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPXORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133620*/      /*SwitchType*/ 18, MVT::v2i64,// ->133640
/*133622*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133624*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133627*/        OPC_EmitMergeInputChains1_1,
/*133628*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPXORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133640*/      0, // EndSwitchType
/*133641*/    /*Scope*/ 83, /*->133725*/
/*133642*/      OPC_MoveChild0,
/*133643*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*133646*/      OPC_MoveChild0,
/*133647*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*133650*/      OPC_RecordMemRef,
/*133651*/      OPC_RecordNode, // #0 = 'ld' chained node
/*133652*/      OPC_CheckFoldableChainNode,
/*133653*/      OPC_RecordChild1, // #1 = $src2
/*133654*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*133656*/      OPC_CheckPredicate, 9, // Predicate_load
/*133658*/      OPC_CheckType, MVT::i64,
/*133660*/      OPC_MoveParent,
/*133661*/      OPC_MoveParent,
/*133662*/      OPC_RecordChild1, // #2 = $src1
/*133663*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->133684
/*133666*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133668*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133671*/        OPC_EmitMergeInputChains1_0,
/*133672*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (xor:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                  // Dst: (VPXORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133684*/      /*SwitchType*/ 18, MVT::v4i64,// ->133704
/*133686*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133688*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133691*/        OPC_EmitMergeInputChains1_0,
/*133692*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (xor:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                  // Dst: (VPXORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133704*/      /*SwitchType*/ 18, MVT::v2i64,// ->133724
/*133706*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133708*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133711*/        OPC_EmitMergeInputChains1_0,
/*133712*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (xor:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                  // Dst: (VPXORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133724*/      0, // EndSwitchType
/*133725*/    /*Scope*/ 40|128,1/*168*/, /*->133895*/
/*133727*/      OPC_RecordChild0, // #0 = $src1
/*133728*/      OPC_MoveChild1,
/*133729*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*133732*/      OPC_RecordMemRef,
/*133733*/      OPC_RecordNode, // #1 = 'ld' chained node
/*133734*/      OPC_CheckFoldableChainNode,
/*133735*/      OPC_RecordChild1, // #2 = $src2
/*133736*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*133738*/      OPC_CheckPredicate, 9, // Predicate_load
/*133740*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*133742*/      OPC_Scope, 21, /*->133765*/ // 3 children in Scope
/*133744*/        OPC_MoveParent,
/*133745*/        OPC_CheckType, MVT::v2i64,
/*133747*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*133749*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133752*/        OPC_EmitMergeInputChains1_1,
/*133753*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>) - Complexity = 25
                  // Dst: (VPXORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133765*/      /*Scope*/ 23, /*->133789*/
/*133766*/        OPC_CheckPredicate, 48, // Predicate_memop
/*133768*/        OPC_MoveParent,
/*133769*/        OPC_CheckType, MVT::v2i64,
/*133771*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*133773*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133776*/        OPC_EmitMergeInputChains1_1,
/*133777*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PXORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133789*/      /*Scope*/ 104, /*->133894*/
/*133790*/        OPC_MoveParent,
/*133791*/        OPC_SwitchType /*3 cases */, 59, MVT::v4i64,// ->133853
/*133794*/          OPC_Scope, 18, /*->133814*/ // 3 children in Scope
/*133796*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*133798*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133801*/            OPC_EmitMergeInputChains1_1,
/*133802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPXORYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133814*/          /*Scope*/ 18, /*->133833*/
/*133815*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*133817*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133820*/            OPC_EmitMergeInputChains1_1,
/*133821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VXORPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133833*/          /*Scope*/ 18, /*->133852*/
/*133834*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133836*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133839*/            OPC_EmitMergeInputChains1_1,
/*133840*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPXORQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133852*/          0, /*End of Scope*/
/*133853*/        /*SwitchType*/ 18, MVT::v8i64,// ->133873
/*133855*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133857*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133860*/          OPC_EmitMergeInputChains1_1,
/*133861*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPXORQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133873*/        /*SwitchType*/ 18, MVT::v2i64,// ->133893
/*133875*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133877*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133880*/          OPC_EmitMergeInputChains1_1,
/*133881*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPXORQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133893*/        0, // EndSwitchType
/*133894*/      0, /*End of Scope*/
/*133895*/    /*Scope*/ 37|128,2/*293*/, /*->134190*/
/*133897*/      OPC_MoveChild0,
/*133898*/      OPC_SwitchOpcode /*2 cases */, 38|128,1/*166*/, TARGET_VAL(ISD::LOAD),// ->134069
/*133903*/        OPC_RecordMemRef,
/*133904*/        OPC_RecordNode, // #0 = 'ld' chained node
/*133905*/        OPC_CheckFoldableChainNode,
/*133906*/        OPC_RecordChild1, // #1 = $src2
/*133907*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*133909*/        OPC_CheckPredicate, 9, // Predicate_load
/*133911*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*133913*/        OPC_Scope, 22, /*->133937*/ // 3 children in Scope
/*133915*/          OPC_MoveParent,
/*133916*/          OPC_RecordChild1, // #2 = $src1
/*133917*/          OPC_CheckType, MVT::v2i64,
/*133919*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*133921*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133924*/          OPC_EmitMergeInputChains1_0,
/*133925*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPXORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133937*/        /*Scope*/ 24, /*->133962*/
/*133938*/          OPC_CheckPredicate, 48, // Predicate_memop
/*133940*/          OPC_MoveParent,
/*133941*/          OPC_RecordChild1, // #2 = $src1
/*133942*/          OPC_CheckType, MVT::v2i64,
/*133944*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*133946*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133949*/          OPC_EmitMergeInputChains1_0,
/*133950*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (PXORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133962*/        /*Scope*/ 105, /*->134068*/
/*133963*/          OPC_MoveParent,
/*133964*/          OPC_RecordChild1, // #2 = $src1
/*133965*/          OPC_SwitchType /*3 cases */, 59, MVT::v4i64,// ->134027
/*133968*/            OPC_Scope, 18, /*->133988*/ // 3 children in Scope
/*133970*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*133972*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133975*/              OPC_EmitMergeInputChains1_0,
/*133976*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPXORYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133988*/            /*Scope*/ 18, /*->134007*/
/*133989*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133991*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133994*/              OPC_EmitMergeInputChains1_0,
/*133995*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPXORQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134007*/            /*Scope*/ 18, /*->134026*/
/*134008*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*134010*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134013*/              OPC_EmitMergeInputChains1_0,
/*134014*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VXORPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134026*/            0, /*End of Scope*/
/*134027*/          /*SwitchType*/ 18, MVT::v8i64,// ->134047
/*134029*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134034*/            OPC_EmitMergeInputChains1_0,
/*134035*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134047*/          /*SwitchType*/ 18, MVT::v2i64,// ->134067
/*134049*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*134051*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134054*/            OPC_EmitMergeInputChains1_0,
/*134055*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134067*/          0, // EndSwitchType
/*134068*/        0, /*End of Scope*/
/*134069*/      /*SwitchOpcode*/ 117, TARGET_VAL(ISD::XOR),// ->134189
/*134072*/        OPC_RecordChild0, // #0 = $src1
/*134073*/        OPC_Scope, 56, /*->134131*/ // 2 children in Scope
/*134075*/          OPC_RecordChild1, // #1 = $src2
/*134076*/          OPC_MoveParent,
/*134077*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*134088*/          OPC_CheckType, MVT::v1i1,
/*134090*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*134093*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*134101*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*134104*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*134112*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*134120*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*134123*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v1i1] } (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, VK1:{ *:[v1i1] }:$src2), -1:{ *:[v1i1] }) - Complexity = 11
                    // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*134131*/        /*Scope*/ 56, /*->134188*/
/*134132*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*134143*/          OPC_MoveParent,
/*134144*/          OPC_RecordChild1, // #1 = $src2
/*134145*/          OPC_CheckType, MVT::v1i1,
/*134147*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*134150*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*134158*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*134161*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*134169*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*134177*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*134180*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v1i1] } (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, -1:{ *:[v1i1] }), VK1:{ *:[v1i1] }:$src2) - Complexity = 11
                    // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*134188*/        0, /*End of Scope*/
/*134189*/      0, // EndSwitchOpcode
/*134190*/    /*Scope*/ 61, /*->134252*/
/*134191*/      OPC_RecordChild0, // #0 = $src2
/*134192*/      OPC_MoveChild1,
/*134193*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*134196*/      OPC_RecordChild0, // #1 = $src1
/*134197*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*134208*/      OPC_MoveParent,
/*134209*/      OPC_CheckType, MVT::v1i1,
/*134211*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*134214*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*134222*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*134225*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*134233*/      OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*134241*/      OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*134244*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v1i1, 2/*#Ops*/, 6, 7, 
                // Src: (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src2, (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, -1:{ *:[v1i1] })) - Complexity = 11
                // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*134252*/    /*Scope*/ 64, /*->134317*/
/*134253*/      OPC_MoveChild0,
/*134254*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*134257*/      OPC_RecordChild0, // #0 = $src1
/*134258*/      OPC_RecordChild1, // #1 = $src2
/*134259*/      OPC_MoveParent,
/*134260*/      OPC_MoveChild1,
/*134261*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134264*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134266*/      OPC_MoveParent,
/*134267*/      OPC_SwitchType /*4 cases */, 10, MVT::v8i1,// ->134280
/*134270*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*134272*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v8i1] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2), (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 10
                  // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*134280*/      /*SwitchType*/ 10, MVT::v16i1,// ->134292
/*134282*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134284*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v16i1] } (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2), (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 10
                  // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*134292*/      /*SwitchType*/ 10, MVT::v32i1,// ->134304
/*134294*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134296*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v32i1] } (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2), (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 10
                  // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*134304*/      /*SwitchType*/ 10, MVT::v64i1,// ->134316
/*134306*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134308*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v64i1] } (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2), (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 10
                  // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*134316*/      0, // EndSwitchType
/*134317*/    /*Scope*/ 76, /*->134394*/
/*134318*/      OPC_RecordChild0, // #0 = $src
/*134319*/      OPC_MoveChild1,
/*134320*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*134323*/      OPC_MoveChild0,
/*134324*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134327*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134329*/      OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->134351
/*134332*/        OPC_MoveParent,
/*134333*/        OPC_MoveParent,
/*134334*/        OPC_CheckType, MVT::v8i64,
/*134336*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134338*/        OPC_EmitInteger, MVT::i8, 15, 
/*134341*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v8i64, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (VPTERNLOGQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src, 15:{ *:[i8] })
/*134351*/      /*SwitchType*/ 19, MVT::v4i32,// ->134372
/*134353*/        OPC_MoveParent,
/*134354*/        OPC_MoveParent,
/*134355*/        OPC_CheckType, MVT::v2i64,
/*134357*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*134359*/        OPC_EmitInteger, MVT::i8, 15, 
/*134362*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (VPTERNLOGQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src, 15:{ *:[i8] })
/*134372*/      /*SwitchType*/ 19, MVT::v8i32,// ->134393
/*134374*/        OPC_MoveParent,
/*134375*/        OPC_MoveParent,
/*134376*/        OPC_CheckType, MVT::v4i64,
/*134378*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*134380*/        OPC_EmitInteger, MVT::i8, 15, 
/*134383*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                      MVT::v4i64, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (VPTERNLOGQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src, 15:{ *:[i8] })
/*134393*/      0, // EndSwitchType
/*134394*/    /*Scope*/ 79, /*->134474*/
/*134395*/      OPC_MoveChild0,
/*134396*/      OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::XOR),// ->134448
/*134400*/        OPC_Scope, 22, /*->134424*/ // 2 children in Scope
/*134402*/          OPC_RecordChild0, // #0 = $src1
/*134403*/          OPC_MoveChild1,
/*134404*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134407*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134409*/          OPC_MoveParent,
/*134410*/          OPC_MoveParent,
/*134411*/          OPC_RecordChild1, // #1 = $src2
/*134412*/          OPC_CheckType, MVT::v8i1,
/*134414*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*134416*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v8i1] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*134424*/        /*Scope*/ 22, /*->134447*/
/*134425*/          OPC_MoveChild0,
/*134426*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134429*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134431*/          OPC_MoveParent,
/*134432*/          OPC_RecordChild1, // #0 = $src1
/*134433*/          OPC_MoveParent,
/*134434*/          OPC_RecordChild1, // #1 = $src2
/*134435*/          OPC_CheckType, MVT::v8i1,
/*134437*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*134439*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v8i1] } (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, VK8:{ *:[v8i1] }:$src1), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*134447*/        0, /*End of Scope*/
/*134448*/      /*SwitchOpcode*/ 22, TARGET_VAL(ISD::BUILD_VECTOR),// ->134473
/*134451*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134453*/        OPC_MoveParent,
/*134454*/        OPC_MoveChild1,
/*134455*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*134458*/        OPC_RecordChild0, // #0 = $src1
/*134459*/        OPC_RecordChild1, // #1 = $src2
/*134460*/        OPC_MoveParent,
/*134461*/        OPC_CheckType, MVT::v8i1,
/*134463*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*134465*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)) - Complexity = 10
                  // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*134473*/      0, // EndSwitchOpcode
/*134474*/    /*Scope*/ 51, /*->134526*/
/*134475*/      OPC_RecordChild0, // #0 = $src2
/*134476*/      OPC_MoveChild1,
/*134477*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*134480*/      OPC_Scope, 21, /*->134503*/ // 2 children in Scope
/*134482*/        OPC_RecordChild0, // #1 = $src1
/*134483*/        OPC_MoveChild1,
/*134484*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134487*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134489*/        OPC_MoveParent,
/*134490*/        OPC_MoveParent,
/*134491*/        OPC_CheckType, MVT::v8i1,
/*134493*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*134495*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*134503*/      /*Scope*/ 21, /*->134525*/
/*134504*/        OPC_MoveChild0,
/*134505*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134508*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134510*/        OPC_MoveParent,
/*134511*/        OPC_RecordChild1, // #1 = $src1
/*134512*/        OPC_MoveParent,
/*134513*/        OPC_CheckType, MVT::v8i1,
/*134515*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*134517*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, VK8:{ *:[v8i1] }:$src1)) - Complexity = 10
                  // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*134525*/      0, /*End of Scope*/
/*134526*/    /*Scope*/ 79, /*->134606*/
/*134527*/      OPC_MoveChild0,
/*134528*/      OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::XOR),// ->134580
/*134532*/        OPC_Scope, 22, /*->134556*/ // 2 children in Scope
/*134534*/          OPC_RecordChild0, // #0 = $src1
/*134535*/          OPC_MoveChild1,
/*134536*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134539*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134541*/          OPC_MoveParent,
/*134542*/          OPC_MoveParent,
/*134543*/          OPC_RecordChild1, // #1 = $src2
/*134544*/          OPC_CheckType, MVT::v16i1,
/*134546*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134548*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v16i1] } (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>), VK16:{ *:[v16i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*134556*/        /*Scope*/ 22, /*->134579*/
/*134557*/          OPC_MoveChild0,
/*134558*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134561*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134563*/          OPC_MoveParent,
/*134564*/          OPC_RecordChild1, // #0 = $src1
/*134565*/          OPC_MoveParent,
/*134566*/          OPC_RecordChild1, // #1 = $src2
/*134567*/          OPC_CheckType, MVT::v16i1,
/*134569*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134571*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v16i1] } (xor:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>, VK16:{ *:[v16i1] }:$src1), VK16:{ *:[v16i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*134579*/        0, /*End of Scope*/
/*134580*/      /*SwitchOpcode*/ 22, TARGET_VAL(ISD::BUILD_VECTOR),// ->134605
/*134583*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134585*/        OPC_MoveParent,
/*134586*/        OPC_MoveChild1,
/*134587*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*134590*/        OPC_RecordChild0, // #0 = $src1
/*134591*/        OPC_RecordChild1, // #1 = $src2
/*134592*/        OPC_MoveParent,
/*134593*/        OPC_CheckType, MVT::v16i1,
/*134595*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134597*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>, (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)) - Complexity = 10
                  // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*134605*/      0, // EndSwitchOpcode
/*134606*/    /*Scope*/ 51, /*->134658*/
/*134607*/      OPC_RecordChild0, // #0 = $src2
/*134608*/      OPC_MoveChild1,
/*134609*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*134612*/      OPC_Scope, 21, /*->134635*/ // 2 children in Scope
/*134614*/        OPC_RecordChild0, // #1 = $src1
/*134615*/        OPC_MoveChild1,
/*134616*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134619*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134621*/        OPC_MoveParent,
/*134622*/        OPC_MoveParent,
/*134623*/        OPC_CheckType, MVT::v16i1,
/*134625*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134627*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src2, (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*134635*/      /*Scope*/ 21, /*->134657*/
/*134636*/        OPC_MoveChild0,
/*134637*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134640*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134642*/        OPC_MoveParent,
/*134643*/        OPC_RecordChild1, // #1 = $src1
/*134644*/        OPC_MoveParent,
/*134645*/        OPC_CheckType, MVT::v16i1,
/*134647*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134649*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src2, (xor:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>, VK16:{ *:[v16i1] }:$src1)) - Complexity = 10
                  // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*134657*/      0, /*End of Scope*/
/*134658*/    /*Scope*/ 79, /*->134738*/
/*134659*/      OPC_MoveChild0,
/*134660*/      OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::XOR),// ->134712
/*134664*/        OPC_Scope, 22, /*->134688*/ // 2 children in Scope
/*134666*/          OPC_RecordChild0, // #0 = $src1
/*134667*/          OPC_MoveChild1,
/*134668*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134671*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134673*/          OPC_MoveParent,
/*134674*/          OPC_MoveParent,
/*134675*/          OPC_RecordChild1, // #1 = $src2
/*134676*/          OPC_CheckType, MVT::v32i1,
/*134678*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134680*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v32i1] } (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>), VK32:{ *:[v32i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*134688*/        /*Scope*/ 22, /*->134711*/
/*134689*/          OPC_MoveChild0,
/*134690*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134693*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134695*/          OPC_MoveParent,
/*134696*/          OPC_RecordChild1, // #0 = $src1
/*134697*/          OPC_MoveParent,
/*134698*/          OPC_RecordChild1, // #1 = $src2
/*134699*/          OPC_CheckType, MVT::v32i1,
/*134701*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134703*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v32i1] } (xor:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>, VK32:{ *:[v32i1] }:$src1), VK32:{ *:[v32i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*134711*/        0, /*End of Scope*/
/*134712*/      /*SwitchOpcode*/ 22, TARGET_VAL(ISD::BUILD_VECTOR),// ->134737
/*134715*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134717*/        OPC_MoveParent,
/*134718*/        OPC_MoveChild1,
/*134719*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*134722*/        OPC_RecordChild0, // #0 = $src1
/*134723*/        OPC_RecordChild1, // #1 = $src2
/*134724*/        OPC_MoveParent,
/*134725*/        OPC_CheckType, MVT::v32i1,
/*134727*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134729*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>, (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)) - Complexity = 10
                  // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*134737*/      0, // EndSwitchOpcode
/*134738*/    /*Scope*/ 51, /*->134790*/
/*134739*/      OPC_RecordChild0, // #0 = $src2
/*134740*/      OPC_MoveChild1,
/*134741*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*134744*/      OPC_Scope, 21, /*->134767*/ // 2 children in Scope
/*134746*/        OPC_RecordChild0, // #1 = $src1
/*134747*/        OPC_MoveChild1,
/*134748*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134751*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134753*/        OPC_MoveParent,
/*134754*/        OPC_MoveParent,
/*134755*/        OPC_CheckType, MVT::v32i1,
/*134757*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134759*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src2, (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*134767*/      /*Scope*/ 21, /*->134789*/
/*134768*/        OPC_MoveChild0,
/*134769*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134772*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134774*/        OPC_MoveParent,
/*134775*/        OPC_RecordChild1, // #1 = $src1
/*134776*/        OPC_MoveParent,
/*134777*/        OPC_CheckType, MVT::v32i1,
/*134779*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134781*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src2, (xor:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>, VK32:{ *:[v32i1] }:$src1)) - Complexity = 10
                  // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*134789*/      0, /*End of Scope*/
/*134790*/    /*Scope*/ 79, /*->134870*/
/*134791*/      OPC_MoveChild0,
/*134792*/      OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::XOR),// ->134844
/*134796*/        OPC_Scope, 22, /*->134820*/ // 2 children in Scope
/*134798*/          OPC_RecordChild0, // #0 = $src1
/*134799*/          OPC_MoveChild1,
/*134800*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134803*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134805*/          OPC_MoveParent,
/*134806*/          OPC_MoveParent,
/*134807*/          OPC_RecordChild1, // #1 = $src2
/*134808*/          OPC_CheckType, MVT::v64i1,
/*134810*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134812*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v64i1] } (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>), VK64:{ *:[v64i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*134820*/        /*Scope*/ 22, /*->134843*/
/*134821*/          OPC_MoveChild0,
/*134822*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134825*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134827*/          OPC_MoveParent,
/*134828*/          OPC_RecordChild1, // #0 = $src1
/*134829*/          OPC_MoveParent,
/*134830*/          OPC_RecordChild1, // #1 = $src2
/*134831*/          OPC_CheckType, MVT::v64i1,
/*134833*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134835*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v64i1] } (xor:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>, VK64:{ *:[v64i1] }:$src1), VK64:{ *:[v64i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*134843*/        0, /*End of Scope*/
/*134844*/      /*SwitchOpcode*/ 22, TARGET_VAL(ISD::BUILD_VECTOR),// ->134869
/*134847*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134849*/        OPC_MoveParent,
/*134850*/        OPC_MoveChild1,
/*134851*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*134854*/        OPC_RecordChild0, // #0 = $src1
/*134855*/        OPC_RecordChild1, // #1 = $src2
/*134856*/        OPC_MoveParent,
/*134857*/        OPC_CheckType, MVT::v64i1,
/*134859*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134861*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>, (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)) - Complexity = 10
                  // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*134869*/      0, // EndSwitchOpcode
/*134870*/    /*Scope*/ 51, /*->134922*/
/*134871*/      OPC_RecordChild0, // #0 = $src2
/*134872*/      OPC_MoveChild1,
/*134873*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*134876*/      OPC_Scope, 21, /*->134899*/ // 2 children in Scope
/*134878*/        OPC_RecordChild0, // #1 = $src1
/*134879*/        OPC_MoveChild1,
/*134880*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134883*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134885*/        OPC_MoveParent,
/*134886*/        OPC_MoveParent,
/*134887*/        OPC_CheckType, MVT::v64i1,
/*134889*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134891*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src2, (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*134899*/      /*Scope*/ 21, /*->134921*/
/*134900*/        OPC_MoveChild0,
/*134901*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134904*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134906*/        OPC_MoveParent,
/*134907*/        OPC_RecordChild1, // #1 = $src1
/*134908*/        OPC_MoveParent,
/*134909*/        OPC_CheckType, MVT::v64i1,
/*134911*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*134913*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src2, (xor:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>, VK64:{ *:[v64i1] }:$src1)) - Complexity = 10
                  // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*134921*/      0, /*End of Scope*/
/*134922*/    /*Scope*/ 20|128,3/*404*/, /*->135328*/
/*134924*/      OPC_MoveChild0,
/*134925*/      OPC_SwitchOpcode /*3 cases */, 74, TARGET_VAL(ISD::BITCAST),// ->135003
/*134929*/        OPC_MoveChild0,
/*134930*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*134933*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*134935*/        OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->134958
/*134938*/          OPC_MoveParent,
/*134939*/          OPC_MoveParent,
/*134940*/          OPC_RecordChild1, // #0 = $src
/*134941*/          OPC_CheckType, MVT::v8i64,
/*134943*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134945*/          OPC_EmitInteger, MVT::i8, 15, 
/*134948*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                        MVT::v8i64, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllOnesV>>), VR512:{ *:[v8i64] }:$src) - Complexity = 10
                    // Dst: (VPTERNLOGQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src, 15:{ *:[i8] })
/*134958*/        /*SwitchType*/ 20, MVT::v4i32,// ->134980
/*134960*/          OPC_MoveParent,
/*134961*/          OPC_MoveParent,
/*134962*/          OPC_RecordChild1, // #0 = $src
/*134963*/          OPC_CheckType, MVT::v2i64,
/*134965*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*134967*/          OPC_EmitInteger, MVT::i8, 15, 
/*134970*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>), VR128X:{ *:[v2i64] }:$src) - Complexity = 10
                    // Dst: (VPTERNLOGQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src, 15:{ *:[i8] })
/*134980*/        /*SwitchType*/ 20, MVT::v8i32,// ->135002
/*134982*/          OPC_MoveParent,
/*134983*/          OPC_MoveParent,
/*134984*/          OPC_RecordChild1, // #0 = $src
/*134985*/          OPC_CheckType, MVT::v4i64,
/*134987*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*134989*/          OPC_EmitInteger, MVT::i8, 15, 
/*134992*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                        MVT::v4i64, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllOnesV>>), VR256X:{ *:[v4i64] }:$src) - Complexity = 10
                    // Dst: (VPTERNLOGQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src, 15:{ *:[i8] })
/*135002*/        0, // EndSwitchType
/*135003*/      /*SwitchOpcode*/ 6|128,2/*262*/, TARGET_VAL(ISD::XOR),// ->135269
/*135007*/        OPC_Scope, 74|128,1/*202*/, /*->135212*/ // 2 children in Scope
/*135010*/          OPC_RecordChild0, // #0 = $src1
/*135011*/          OPC_Scope, 14|128,1/*142*/, /*->135156*/ // 2 children in Scope
/*135014*/            OPC_RecordChild1, // #1 = $src2
/*135015*/            OPC_MoveParent,
/*135016*/            OPC_MoveChild1,
/*135017*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135020*/            OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135022*/            OPC_MoveParent,
/*135023*/            OPC_SwitchType /*3 cases */, 43, MVT::v8i1,// ->135069
/*135026*/              OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/*135028*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135031*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135039*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135042*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135050*/              OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135058*/              OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*135061*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 6, 7, 
                        // Src: (xor:{ *:[v8i1] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2), (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 10
                        // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*135069*/            /*SwitchType*/ 41, MVT::v2i1,// ->135112
/*135071*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135074*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135082*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135085*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135093*/              OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135101*/              OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*135104*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2i1, 2/*#Ops*/, 6, 7, 
                        // Src: (xor:{ *:[v2i1] } (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, VK2:{ *:[v2i1] }:$src2), (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 10
                        // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*135112*/            /*SwitchType*/ 41, MVT::v4i1,// ->135155
/*135114*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135117*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135125*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135128*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135136*/              OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135144*/              OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*135147*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i1, 2/*#Ops*/, 6, 7, 
                        // Src: (xor:{ *:[v4i1] } (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, VK4:{ *:[v4i1] }:$src2), (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 10
                        // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*135155*/            0, // EndSwitchType
/*135156*/          /*Scope*/ 54, /*->135211*/
/*135157*/            OPC_MoveChild1,
/*135158*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135161*/            OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135163*/            OPC_MoveParent,
/*135164*/            OPC_MoveParent,
/*135165*/            OPC_RecordChild1, // #1 = $src2
/*135166*/            OPC_CheckType, MVT::v8i1,
/*135168*/            OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/*135170*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135173*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135181*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135184*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135192*/            OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135200*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*135203*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 6, 7, 
                      // Src: (xor:{ *:[v8i1] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*135211*/          0, /*End of Scope*/
/*135212*/        /*Scope*/ 55, /*->135268*/
/*135213*/          OPC_MoveChild0,
/*135214*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135217*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135219*/          OPC_MoveParent,
/*135220*/          OPC_RecordChild1, // #0 = $src1
/*135221*/          OPC_MoveParent,
/*135222*/          OPC_RecordChild1, // #1 = $src2
/*135223*/          OPC_CheckType, MVT::v8i1,
/*135225*/          OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/*135227*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135230*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135238*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135241*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135249*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135257*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*135260*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v8i1] } (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, VK8:{ *:[v8i1] }:$src1), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*135268*/        0, /*End of Scope*/
/*135269*/      /*SwitchOpcode*/ 55, TARGET_VAL(ISD::BUILD_VECTOR),// ->135327
/*135272*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135274*/        OPC_MoveParent,
/*135275*/        OPC_MoveChild1,
/*135276*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*135279*/        OPC_RecordChild0, // #0 = $src1
/*135280*/        OPC_RecordChild1, // #1 = $src2
/*135281*/        OPC_MoveParent,
/*135282*/        OPC_CheckType, MVT::v8i1,
/*135284*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/*135286*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135289*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135297*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135300*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135308*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135316*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*135319*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)) - Complexity = 10
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*135327*/      0, // EndSwitchOpcode
/*135328*/    /*Scope*/ 117, /*->135446*/
/*135329*/      OPC_RecordChild0, // #0 = $src2
/*135330*/      OPC_MoveChild1,
/*135331*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*135334*/      OPC_Scope, 54, /*->135390*/ // 2 children in Scope
/*135336*/        OPC_RecordChild0, // #1 = $src1
/*135337*/        OPC_MoveChild1,
/*135338*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135341*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135343*/        OPC_MoveParent,
/*135344*/        OPC_MoveParent,
/*135345*/        OPC_CheckType, MVT::v8i1,
/*135347*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/*135349*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135352*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*135360*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135363*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*135371*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135379*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*135382*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*135390*/      /*Scope*/ 54, /*->135445*/
/*135391*/        OPC_MoveChild0,
/*135392*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135395*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135397*/        OPC_MoveParent,
/*135398*/        OPC_RecordChild1, // #1 = $src1
/*135399*/        OPC_MoveParent,
/*135400*/        OPC_CheckType, MVT::v8i1,
/*135402*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/*135404*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135407*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*135415*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135418*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*135426*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135434*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*135437*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, VK8:{ *:[v8i1] }:$src1)) - Complexity = 10
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*135445*/      0, /*End of Scope*/
/*135446*/    /*Scope*/ 44|128,1/*172*/, /*->135620*/
/*135448*/      OPC_MoveChild0,
/*135449*/      OPC_SwitchOpcode /*2 cases */, 110, TARGET_VAL(ISD::XOR),// ->135563
/*135453*/        OPC_Scope, 53, /*->135508*/ // 2 children in Scope
/*135455*/          OPC_RecordChild0, // #0 = $src1
/*135456*/          OPC_MoveChild1,
/*135457*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135460*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135462*/          OPC_MoveParent,
/*135463*/          OPC_MoveParent,
/*135464*/          OPC_RecordChild1, // #1 = $src2
/*135465*/          OPC_CheckType, MVT::v2i1,
/*135467*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135470*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135478*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135481*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135489*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135497*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*135500*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v2i1] } (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>), VK2:{ *:[v2i1] }:$src2) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*135508*/        /*Scope*/ 53, /*->135562*/
/*135509*/          OPC_MoveChild0,
/*135510*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135513*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135515*/          OPC_MoveParent,
/*135516*/          OPC_RecordChild1, // #0 = $src1
/*135517*/          OPC_MoveParent,
/*135518*/          OPC_RecordChild1, // #1 = $src2
/*135519*/          OPC_CheckType, MVT::v2i1,
/*135521*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135524*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135532*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135535*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135543*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135551*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*135554*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v2i1] } (xor:{ *:[v2i1] } (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>, VK2:{ *:[v2i1] }:$src1), VK2:{ *:[v2i1] }:$src2) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*135562*/        0, /*End of Scope*/
/*135563*/      /*SwitchOpcode*/ 53, TARGET_VAL(ISD::BUILD_VECTOR),// ->135619
/*135566*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135568*/        OPC_MoveParent,
/*135569*/        OPC_MoveChild1,
/*135570*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*135573*/        OPC_RecordChild0, // #0 = $src1
/*135574*/        OPC_RecordChild1, // #1 = $src2
/*135575*/        OPC_MoveParent,
/*135576*/        OPC_CheckType, MVT::v2i1,
/*135578*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135581*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135589*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135592*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135600*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135608*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*135611*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v2i1] } (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>, (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, VK2:{ *:[v2i1] }:$src2)) - Complexity = 10
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*135619*/      0, // EndSwitchOpcode
/*135620*/    /*Scope*/ 113, /*->135734*/
/*135621*/      OPC_RecordChild0, // #0 = $src2
/*135622*/      OPC_MoveChild1,
/*135623*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*135626*/      OPC_Scope, 52, /*->135680*/ // 2 children in Scope
/*135628*/        OPC_RecordChild0, // #1 = $src1
/*135629*/        OPC_MoveChild1,
/*135630*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135633*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135635*/        OPC_MoveParent,
/*135636*/        OPC_MoveParent,
/*135637*/        OPC_CheckType, MVT::v2i1,
/*135639*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135642*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*135650*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135653*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*135661*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135669*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*135672*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src2, (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*135680*/      /*Scope*/ 52, /*->135733*/
/*135681*/        OPC_MoveChild0,
/*135682*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135685*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135687*/        OPC_MoveParent,
/*135688*/        OPC_RecordChild1, // #1 = $src1
/*135689*/        OPC_MoveParent,
/*135690*/        OPC_CheckType, MVT::v2i1,
/*135692*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135695*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*135703*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135706*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*135714*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135722*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*135725*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src2, (xor:{ *:[v2i1] } (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>, VK2:{ *:[v2i1] }:$src1)) - Complexity = 10
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*135733*/      0, /*End of Scope*/
/*135734*/    /*Scope*/ 44|128,1/*172*/, /*->135908*/
/*135736*/      OPC_MoveChild0,
/*135737*/      OPC_SwitchOpcode /*2 cases */, 110, TARGET_VAL(ISD::XOR),// ->135851
/*135741*/        OPC_Scope, 53, /*->135796*/ // 2 children in Scope
/*135743*/          OPC_RecordChild0, // #0 = $src1
/*135744*/          OPC_MoveChild1,
/*135745*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135748*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135750*/          OPC_MoveParent,
/*135751*/          OPC_MoveParent,
/*135752*/          OPC_RecordChild1, // #1 = $src2
/*135753*/          OPC_CheckType, MVT::v4i1,
/*135755*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135758*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135766*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135769*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135777*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135785*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*135788*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v4i1] } (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>), VK4:{ *:[v4i1] }:$src2) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*135796*/        /*Scope*/ 53, /*->135850*/
/*135797*/          OPC_MoveChild0,
/*135798*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135801*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135803*/          OPC_MoveParent,
/*135804*/          OPC_RecordChild1, // #0 = $src1
/*135805*/          OPC_MoveParent,
/*135806*/          OPC_RecordChild1, // #1 = $src2
/*135807*/          OPC_CheckType, MVT::v4i1,
/*135809*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135812*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135820*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135823*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135831*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135839*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*135842*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v4i1] } (xor:{ *:[v4i1] } (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>, VK4:{ *:[v4i1] }:$src1), VK4:{ *:[v4i1] }:$src2) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*135850*/        0, /*End of Scope*/
/*135851*/      /*SwitchOpcode*/ 53, TARGET_VAL(ISD::BUILD_VECTOR),// ->135907
/*135854*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135856*/        OPC_MoveParent,
/*135857*/        OPC_MoveChild1,
/*135858*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*135861*/        OPC_RecordChild0, // #0 = $src1
/*135862*/        OPC_RecordChild1, // #1 = $src2
/*135863*/        OPC_MoveParent,
/*135864*/        OPC_CheckType, MVT::v4i1,
/*135866*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135869*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*135877*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135880*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*135888*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135896*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*135899*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v4i1] } (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>, (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, VK4:{ *:[v4i1] }:$src2)) - Complexity = 10
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*135907*/      0, // EndSwitchOpcode
/*135908*/    /*Scope*/ 43|128,2/*299*/, /*->136209*/
/*135910*/      OPC_RecordChild0, // #0 = $src2
/*135911*/      OPC_MoveChild1,
/*135912*/      OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::XOR),// ->136024
/*135916*/        OPC_Scope, 52, /*->135970*/ // 2 children in Scope
/*135918*/          OPC_RecordChild0, // #1 = $src1
/*135919*/          OPC_MoveChild1,
/*135920*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135923*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135925*/          OPC_MoveParent,
/*135926*/          OPC_MoveParent,
/*135927*/          OPC_CheckType, MVT::v4i1,
/*135929*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135932*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*135940*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135943*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*135951*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*135959*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*135962*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src2, (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*135970*/        /*Scope*/ 52, /*->136023*/
/*135971*/          OPC_MoveChild0,
/*135972*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*135975*/          OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*135977*/          OPC_MoveParent,
/*135978*/          OPC_RecordChild1, // #1 = $src1
/*135979*/          OPC_MoveParent,
/*135980*/          OPC_CheckType, MVT::v4i1,
/*135982*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135985*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*135993*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*135996*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*136004*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*136012*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*136015*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src2, (xor:{ *:[v4i1] } (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>, VK4:{ *:[v4i1] }:$src1)) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*136023*/        0, /*End of Scope*/
/*136024*/      /*SwitchOpcode*/ 52|128,1/*180*/, TARGET_VAL(ISD::BITCAST),// ->136208
/*136028*/        OPC_MoveChild0,
/*136029*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*136032*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*136034*/        OPC_SwitchType /*2 cases */, 84, MVT::v4i32,// ->136121
/*136037*/          OPC_MoveParent,
/*136038*/          OPC_MoveParent,
/*136039*/          OPC_CheckType, MVT::v2i64,
/*136041*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*136043*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*136049*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*136052*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*136061*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*136067*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*136070*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*136079*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*136085*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*136088*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*136097*/          OPC_EmitInteger, MVT::i8, 15, 
/*136100*/          OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                        MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*136110*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*136113*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 11, 12, 
                    // Src: (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), 15:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*136121*/        /*SwitchType*/ 84, MVT::v8i32,// ->136207
/*136123*/          OPC_MoveParent,
/*136124*/          OPC_MoveParent,
/*136125*/          OPC_CheckType, MVT::v4i64,
/*136127*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*136129*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*136135*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*136138*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*136147*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*136153*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*136156*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*136165*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*136171*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*136174*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*136183*/          OPC_EmitInteger, MVT::i8, 15, 
/*136186*/          OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                        MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*136196*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*136199*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 11, 12, 
                    // Src: (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), 15:{ *:[i8] }), sub_ymm:{ *:[i32] })
/*136207*/        0, // EndSwitchType
/*136208*/      0, // EndSwitchOpcode
/*136209*/    /*Scope*/ 58|128,1/*186*/, /*->136397*/
/*136211*/      OPC_MoveChild0,
/*136212*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*136215*/      OPC_MoveChild0,
/*136216*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*136219*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*136221*/      OPC_SwitchType /*2 cases */, 85, MVT::v4i32,// ->136309
/*136224*/        OPC_MoveParent,
/*136225*/        OPC_MoveParent,
/*136226*/        OPC_RecordChild1, // #0 = $src
/*136227*/        OPC_CheckType, MVT::v2i64,
/*136229*/        OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*136231*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*136237*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*136240*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*136249*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*136255*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*136258*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*136267*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*136273*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*136276*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*136285*/        OPC_EmitInteger, MVT::i8, 15, 
/*136288*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*136298*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*136301*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>), VR128X:{ *:[v2i64] }:$src) - Complexity = 10
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), 15:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*136309*/      /*SwitchType*/ 85, MVT::v8i32,// ->136396
/*136311*/        OPC_MoveParent,
/*136312*/        OPC_MoveParent,
/*136313*/        OPC_RecordChild1, // #0 = $src
/*136314*/        OPC_CheckType, MVT::v4i64,
/*136316*/        OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*136318*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*136324*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*136327*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*136336*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*136342*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*136345*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*136354*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*136360*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*136363*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*136372*/        OPC_EmitInteger, MVT::i8, 15, 
/*136375*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*136385*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*136388*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllOnesV>>), VR256X:{ *:[v4i64] }:$src) - Complexity = 10
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), 15:{ *:[i8] }), sub_ymm:{ *:[i32] })
/*136396*/      0, // EndSwitchType
/*136397*/    /*Scope*/ 54, /*->136452*/
/*136398*/      OPC_RecordChild0, // #0 = $src
/*136399*/      OPC_MoveChild1,
/*136400*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*136403*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*136405*/      OPC_MoveParent,
/*136406*/      OPC_SwitchType /*4 cases */, 9, MVT::v8i1,// ->136418
/*136409*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*136411*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTBrr), 0,
                      MVT::v8i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (KNOTBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src)
/*136418*/      /*SwitchType*/ 9, MVT::v16i1,// ->136429
/*136420*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*136422*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src, (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (KNOTWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src)
/*136429*/      /*SwitchType*/ 9, MVT::v32i1,// ->136440
/*136431*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*136433*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTDrr), 0,
                      MVT::v32i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src, (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (KNOTDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src)
/*136440*/      /*SwitchType*/ 9, MVT::v64i1,// ->136451
/*136442*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*136444*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTQrr), 0,
                      MVT::v64i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src, (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (KNOTQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src)
/*136451*/      0, // EndSwitchType
/*136452*/    /*Scope*/ 54, /*->136507*/
/*136453*/      OPC_MoveChild0,
/*136454*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*136457*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*136459*/      OPC_MoveParent,
/*136460*/      OPC_RecordChild1, // #0 = $src
/*136461*/      OPC_SwitchType /*4 cases */, 9, MVT::v8i1,// ->136473
/*136464*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*136466*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTBrr), 0,
                      MVT::v8i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, VK8:{ *:[v8i1] }:$src) - Complexity = 7
                  // Dst: (KNOTBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src)
/*136473*/      /*SwitchType*/ 9, MVT::v16i1,// ->136484
/*136475*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*136477*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>, VK16:{ *:[v16i1] }:$src) - Complexity = 7
                  // Dst: (KNOTWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src)
/*136484*/      /*SwitchType*/ 9, MVT::v32i1,// ->136495
/*136486*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*136488*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTDrr), 0,
                      MVT::v32i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>>, VK32:{ *:[v32i1] }:$src) - Complexity = 7
                  // Dst: (KNOTDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src)
/*136495*/      /*SwitchType*/ 9, MVT::v64i1,// ->136506
/*136497*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*136499*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTQrr), 0,
                      MVT::v64i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>>, VK64:{ *:[v64i1] }:$src) - Complexity = 7
                  // Dst: (KNOTQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src)
/*136506*/      0, // EndSwitchType
/*136507*/    /*Scope*/ 105, /*->136613*/
/*136508*/      OPC_RecordChild0, // #0 = $src
/*136509*/      OPC_MoveChild1,
/*136510*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*136513*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*136515*/      OPC_MoveParent,
/*136516*/      OPC_SwitchType /*3 cases */, 31, MVT::v8i1,// ->136550
/*136519*/        OPC_CheckPatternPredicate, 146, // (Subtarget->hasAVX512()) && (!Subtarget->hasDQI())
/*136521*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136524*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*136532*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*136539*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*136542*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*136550*/      /*SwitchType*/ 29, MVT::v4i1,// ->136581
/*136552*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136555*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*136563*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*136570*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*136573*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src, (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src, VK16:{ *:[i32] })), VK4:{ *:[i32] })
/*136581*/      /*SwitchType*/ 29, MVT::v2i1,// ->136612
/*136583*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136586*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*136594*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*136601*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*136604*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src, (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src, VK16:{ *:[i32] })), VK2:{ *:[i32] })
/*136612*/      0, // EndSwitchType
/*136613*/    /*Scope*/ 105, /*->136719*/
/*136614*/      OPC_MoveChild0,
/*136615*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*136618*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*136620*/      OPC_MoveParent,
/*136621*/      OPC_RecordChild1, // #0 = $src
/*136622*/      OPC_SwitchType /*3 cases */, 31, MVT::v8i1,// ->136656
/*136625*/        OPC_CheckPatternPredicate, 146, // (Subtarget->hasAVX512()) && (!Subtarget->hasDQI())
/*136627*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136630*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*136638*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*136645*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*136648*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, VK8:{ *:[v8i1] }:$src) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*136656*/      /*SwitchType*/ 29, MVT::v4i1,// ->136687
/*136658*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136661*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*136669*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*136676*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*136679*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v4i1] } (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>>, VK4:{ *:[v4i1] }:$src) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src, VK16:{ *:[i32] })), VK4:{ *:[i32] })
/*136687*/      /*SwitchType*/ 29, MVT::v2i1,// ->136718
/*136689*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136692*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*136700*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*136707*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*136710*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v2i1] } (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>>, VK2:{ *:[v2i1] }:$src) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src, VK16:{ *:[i32] })), VK2:{ *:[i32] })
/*136718*/      0, // EndSwitchType
/*136719*/    /*Scope*/ 58|128,2/*314*/, /*->137035*/
/*136721*/      OPC_RecordChild0, // #0 = $src1
/*136722*/      OPC_RecordChild1, // #1 = $src2
/*136723*/      OPC_SwitchType /*10 cases */, 35, MVT::v2i64,// ->136761
/*136726*/        OPC_Scope, 10, /*->136738*/ // 3 children in Scope
/*136728*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*136730*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrr), 0,
                        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)
/*136738*/        /*Scope*/ 10, /*->136749*/
/*136739*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*136741*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrr), 0,
                        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)
/*136749*/        /*Scope*/ 10, /*->136760*/
/*136750*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*136752*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPXORQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*136760*/        0, /*End of Scope*/
/*136761*/      /*SwitchType*/ 35, MVT::v4i64,// ->136798
/*136763*/        OPC_Scope, 10, /*->136775*/ // 3 children in Scope
/*136765*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*136767*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPXORYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*136775*/        /*Scope*/ 10, /*->136786*/
/*136776*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*136778*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrr), 0,
                        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)
/*136786*/        /*Scope*/ 10, /*->136797*/
/*136787*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*136789*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPXORQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*136797*/        0, /*End of Scope*/
/*136798*/      /*SwitchType*/ 57, MVT::v8i1,// ->136857
/*136800*/        OPC_Scope, 10, /*->136812*/ // 2 children in Scope
/*136802*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*136804*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXORBrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2) - Complexity = 3
                    // Dst: (KXORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*136812*/        /*Scope*/ 43, /*->136856*/
/*136813*/          OPC_CheckPatternPredicate, 43, // (!Subtarget->hasDQI())
/*136815*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136818*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*136826*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136829*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*136837*/          OPC_EmitNode1, TARGET_VAL(X86::KXORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*136845*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*136848*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KXORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*136856*/        0, /*End of Scope*/
/*136857*/      /*SwitchType*/ 10, MVT::v16i1,// ->136869
/*136859*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*136861*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2) - Complexity = 3
                  // Dst: (KXORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*136869*/      /*SwitchType*/ 10, MVT::v32i1,// ->136881
/*136871*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*136873*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXORDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2) - Complexity = 3
                  // Dst: (KXORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*136881*/      /*SwitchType*/ 10, MVT::v64i1,// ->136893
/*136883*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*136885*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXORQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2) - Complexity = 3
                  // Dst: (KXORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*136893*/      /*SwitchType*/ 10, MVT::v8i64,// ->136905
/*136895*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*136897*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPXORQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*136905*/      /*SwitchType*/ 41, MVT::v1i1,// ->136948
/*136907*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136910*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*136918*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136921*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*136929*/        OPC_EmitNode1, TARGET_VAL(X86::KXORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*136937*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*136940*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, VK1:{ *:[v1i1] }:$src2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KXORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*136948*/      /*SwitchType*/ 41, MVT::v2i1,// ->136991
/*136950*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136953*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*136961*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136964*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*136972*/        OPC_EmitNode1, TARGET_VAL(X86::KXORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*136980*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*136983*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, VK2:{ *:[v2i1] }:$src2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KXORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*136991*/      /*SwitchType*/ 41, MVT::v4i1,// ->137034
/*136993*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*136996*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*137004*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*137007*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*137015*/        OPC_EmitNode1, TARGET_VAL(X86::KXORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*137023*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*137026*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, VK4:{ *:[v4i1] }:$src2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KXORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
/*137034*/      0, // EndSwitchType
/*137035*/    0, /*End of Scope*/
/*137036*/  /*SwitchOpcode*/ 114, TARGET_VAL(ISD::CTTZ_ZERO_UNDEF),// ->137153
/*137039*/    OPC_Scope, 77, /*->137118*/ // 2 children in Scope
/*137041*/      OPC_MoveChild0,
/*137042*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*137045*/      OPC_RecordMemRef,
/*137046*/      OPC_RecordNode, // #0 = 'ld' chained node
/*137047*/      OPC_RecordChild1, // #1 = $src
/*137048*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*137050*/      OPC_Scope, 21, /*->137073*/ // 3 children in Scope
/*137052*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*137054*/        OPC_MoveParent,
/*137055*/        OPC_CheckType, MVT::i16,
/*137057*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137060*/        OPC_EmitMergeInputChains1_0,
/*137061*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i16, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (cttz_zero_undef:{ *:[i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                  // Dst: (BSF16rm:{ *:[i16] }:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/*137073*/      /*Scope*/ 21, /*->137095*/
/*137074*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*137076*/        OPC_MoveParent,
/*137077*/        OPC_CheckType, MVT::i32,
/*137079*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137082*/        OPC_EmitMergeInputChains1_0,
/*137083*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (cttz_zero_undef:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (BSF32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/*137095*/      /*Scope*/ 21, /*->137117*/
/*137096*/        OPC_CheckPredicate, 9, // Predicate_load
/*137098*/        OPC_MoveParent,
/*137099*/        OPC_CheckType, MVT::i64,
/*137101*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137104*/        OPC_EmitMergeInputChains1_0,
/*137105*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (cttz_zero_undef:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (BSF64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/*137117*/      0, /*End of Scope*/
/*137118*/    /*Scope*/ 33, /*->137152*/
/*137119*/      OPC_RecordChild0, // #0 = $src
/*137120*/      OPC_SwitchType /*3 cases */, 8, MVT::i16,// ->137131
/*137123*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF16rr), 0,
                      MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (cttz_zero_undef:{ *:[i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                  // Dst: (BSF16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
/*137131*/      /*SwitchType*/ 8, MVT::i32,// ->137141
/*137133*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF32rr), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (cttz_zero_undef:{ *:[i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (BSF32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*137141*/      /*SwitchType*/ 8, MVT::i64,// ->137151
/*137143*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BSF64rr), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (cttz_zero_undef:{ *:[i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                  // Dst: (BSF64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/*137151*/      0, // EndSwitchType
/*137152*/    0, /*End of Scope*/
/*137153*/  /*SwitchOpcode*/ 65|128,33/*4289*/, TARGET_VAL(ISD::LOAD),// ->141446
/*137157*/    OPC_RecordMemRef,
/*137158*/    OPC_RecordNode, // #0 = 'ld' chained node
/*137159*/    OPC_RecordChild1, // #1 = $src
/*137160*/    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*137162*/    OPC_Scope, 19, /*->137183*/ // 36 children in Scope
/*137164*/      OPC_CheckPredicate, 5, // Predicate_loadi8
/*137166*/      OPC_CheckType, MVT::i8,
/*137168*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137171*/      OPC_EmitMergeInputChains1_0,
/*137172*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>> - Complexity = 22
                // Dst: (MOV8rm:{ *:[i8] } addr:{ *:[iPTR] }:$src)
/*137183*/    /*Scope*/ 19, /*->137203*/
/*137184*/      OPC_CheckPredicate, 7, // Predicate_loadi16
/*137186*/      OPC_CheckType, MVT::i16,
/*137188*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137191*/      OPC_EmitMergeInputChains1_0,
/*137192*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOV16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*137203*/    /*Scope*/ 19, /*->137223*/
/*137204*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/*137206*/      OPC_CheckType, MVT::i32,
/*137208*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137211*/      OPC_EmitMergeInputChains1_0,
/*137212*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*137223*/    /*Scope*/ 19, /*->137243*/
/*137224*/      OPC_CheckPredicate, 9, // Predicate_load
/*137226*/      OPC_CheckType, MVT::i64,
/*137228*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137231*/      OPC_EmitMergeInputChains1_0,
/*137232*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*137243*/    /*Scope*/ 42, /*->137286*/
/*137244*/      OPC_CheckPredicate, 60, // Predicate_sextload
/*137246*/      OPC_CheckType, MVT::i32,
/*137248*/      OPC_Scope, 17, /*->137267*/ // 2 children in Scope
/*137250*/        OPC_CheckPredicate, 61, // Predicate_sextloadi8
/*137252*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137255*/        OPC_EmitMergeInputChains1_0,
/*137256*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*137267*/      /*Scope*/ 17, /*->137285*/
/*137268*/        OPC_CheckPredicate, 62, // Predicate_sextloadi16
/*137270*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137273*/        OPC_EmitMergeInputChains1_0,
/*137274*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*137285*/      0, /*End of Scope*/
/*137286*/    /*Scope*/ 42, /*->137329*/
/*137287*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*137289*/      OPC_CheckType, MVT::i32,
/*137291*/      OPC_Scope, 17, /*->137310*/ // 2 children in Scope
/*137293*/        OPC_CheckPredicate, 61, // Predicate_zextloadi8
/*137295*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137298*/        OPC_EmitMergeInputChains1_0,
/*137299*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*137310*/      /*Scope*/ 17, /*->137328*/
/*137311*/        OPC_CheckPredicate, 62, // Predicate_zextloadi16
/*137313*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137316*/        OPC_EmitMergeInputChains1_0,
/*137317*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*137328*/      0, /*End of Scope*/
/*137329*/    /*Scope*/ 62, /*->137392*/
/*137330*/      OPC_CheckPredicate, 60, // Predicate_sextload
/*137332*/      OPC_CheckType, MVT::i64,
/*137334*/      OPC_Scope, 17, /*->137353*/ // 3 children in Scope
/*137336*/        OPC_CheckPredicate, 61, // Predicate_sextloadi8
/*137338*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137341*/        OPC_EmitMergeInputChains1_0,
/*137342*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*137353*/      /*Scope*/ 17, /*->137371*/
/*137354*/        OPC_CheckPredicate, 62, // Predicate_sextloadi16
/*137356*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137359*/        OPC_EmitMergeInputChains1_0,
/*137360*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*137371*/      /*Scope*/ 19, /*->137391*/
/*137372*/        OPC_CheckPredicate, 54, // Predicate_sextloadi32
/*137374*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*137376*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137379*/        OPC_EmitMergeInputChains1_0,
/*137380*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX64rm32), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*137391*/      0, /*End of Scope*/
/*137392*/    /*Scope*/ 21, /*->137414*/
/*137393*/      OPC_CheckPredicate, 9, // Predicate_load
/*137395*/      OPC_CheckType, MVT::x86mmx,
/*137397*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/*137399*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137402*/      OPC_EmitMergeInputChains1_0,
/*137403*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVQ64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*137414*/    /*Scope*/ 57, /*->137472*/
/*137415*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*137417*/      OPC_CheckPredicate, 63, // Predicate_zextloadi1
/*137419*/      OPC_SwitchType /*3 cases */, 15, MVT::i8,// ->137437
/*137422*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137425*/        OPC_EmitMergeInputChains1_0,
/*137426*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*137437*/      /*SwitchType*/ 15, MVT::i16,// ->137454
/*137439*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137442*/        OPC_EmitMergeInputChains1_0,
/*137443*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*137454*/      /*SwitchType*/ 15, MVT::i32,// ->137471
/*137456*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137459*/        OPC_EmitMergeInputChains1_0,
/*137460*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*137471*/      0, // EndSwitchType
/*137472*/    /*Scope*/ 119, /*->137592*/
/*137473*/      OPC_CheckPredicate, 64, // Predicate_extload
/*137475*/      OPC_Scope, 55, /*->137532*/ // 3 children in Scope
/*137477*/        OPC_CheckPredicate, 63, // Predicate_extloadi1
/*137479*/        OPC_SwitchType /*3 cases */, 15, MVT::i8,// ->137497
/*137482*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137485*/          OPC_EmitMergeInputChains1_0,
/*137486*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*137497*/        /*SwitchType*/ 15, MVT::i16,// ->137514
/*137499*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137502*/          OPC_EmitMergeInputChains1_0,
/*137503*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*137514*/        /*SwitchType*/ 15, MVT::i32,// ->137531
/*137516*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137519*/          OPC_EmitMergeInputChains1_0,
/*137520*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*137531*/        0, // EndSwitchType
/*137532*/      /*Scope*/ 38, /*->137571*/
/*137533*/        OPC_CheckPredicate, 61, // Predicate_extloadi8
/*137535*/        OPC_SwitchType /*2 cases */, 15, MVT::i16,// ->137553
/*137538*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137541*/          OPC_EmitMergeInputChains1_0,
/*137542*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*137553*/        /*SwitchType*/ 15, MVT::i32,// ->137570
/*137555*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137558*/          OPC_EmitMergeInputChains1_0,
/*137559*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*137570*/        0, // EndSwitchType
/*137571*/      /*Scope*/ 19, /*->137591*/
/*137572*/        OPC_CheckPredicate, 62, // Predicate_extloadi16
/*137574*/        OPC_CheckType, MVT::i32,
/*137576*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137579*/        OPC_EmitMergeInputChains1_0,
/*137580*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*137591*/      0, /*End of Scope*/
/*137592*/    /*Scope*/ 10|128,1/*138*/, /*->137732*/
/*137594*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*137596*/      OPC_CheckType, MVT::i64,
/*137598*/      OPC_Scope, 32, /*->137632*/ // 4 children in Scope
/*137600*/        OPC_CheckPredicate, 61, // Predicate_zextloadi8
/*137602*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137605*/        OPC_EmitMergeInputChains1_0,
/*137606*/        OPC_EmitInteger, MVT::i64, 0, 
/*137609*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*137620*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*137623*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 22
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rm8:{ *:[i32] } addr:{ *:[iPTR] }:$src), sub_32bit:{ *:[i32] })
/*137632*/      /*Scope*/ 32, /*->137665*/
/*137633*/        OPC_CheckPredicate, 62, // Predicate_zextloadi16
/*137635*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137638*/        OPC_EmitMergeInputChains1_0,
/*137639*/        OPC_EmitInteger, MVT::i64, 0, 
/*137642*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*137653*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*137656*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 22
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rm16:{ *:[i32] } addr:{ *:[iPTR] }:$src), sub_32bit:{ *:[i32] })
/*137665*/      /*Scope*/ 32, /*->137698*/
/*137666*/        OPC_CheckPredicate, 54, // Predicate_zextloadi32
/*137668*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137671*/        OPC_EmitMergeInputChains1_0,
/*137672*/        OPC_EmitInteger, MVT::i64, 0, 
/*137675*/        OPC_EmitNode1, TARGET_VAL(X86::MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*137686*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*137689*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 22
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src), sub_32bit:{ *:[i32] })
/*137698*/      /*Scope*/ 32, /*->137731*/
/*137699*/        OPC_CheckPredicate, 63, // Predicate_zextloadi1
/*137701*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137704*/        OPC_EmitMergeInputChains1_0,
/*137705*/        OPC_EmitInteger, MVT::i64, 0, 
/*137708*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*137719*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*137722*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 22
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rm8:{ *:[i32] } addr:{ *:[iPTR] }:$src), sub_32bit:{ *:[i32] })
/*137731*/      0, /*End of Scope*/
/*137732*/    /*Scope*/ 10|128,1/*138*/, /*->137872*/
/*137734*/      OPC_CheckPredicate, 64, // Predicate_extload
/*137736*/      OPC_CheckType, MVT::i64,
/*137738*/      OPC_Scope, 32, /*->137772*/ // 4 children in Scope
/*137740*/        OPC_CheckPredicate, 63, // Predicate_extloadi1
/*137742*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137745*/        OPC_EmitMergeInputChains1_0,
/*137746*/        OPC_EmitInteger, MVT::i64, 0, 
/*137749*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*137760*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*137763*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 22
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rm8:{ *:[i32] } addr:{ *:[iPTR] }:$src), sub_32bit:{ *:[i32] })
/*137772*/      /*Scope*/ 32, /*->137805*/
/*137773*/        OPC_CheckPredicate, 61, // Predicate_extloadi8
/*137775*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137778*/        OPC_EmitMergeInputChains1_0,
/*137779*/        OPC_EmitInteger, MVT::i64, 0, 
/*137782*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*137793*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*137796*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 22
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rm8:{ *:[i32] } addr:{ *:[iPTR] }:$src), sub_32bit:{ *:[i32] })
/*137805*/      /*Scope*/ 32, /*->137838*/
/*137806*/        OPC_CheckPredicate, 62, // Predicate_extloadi16
/*137808*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137811*/        OPC_EmitMergeInputChains1_0,
/*137812*/        OPC_EmitInteger, MVT::i64, 0, 
/*137815*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*137826*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*137829*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 22
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rm16:{ *:[i32] } addr:{ *:[iPTR] }:$src), sub_32bit:{ *:[i32] })
/*137838*/      /*Scope*/ 32, /*->137871*/
/*137839*/        OPC_CheckPredicate, 54, // Predicate_extloadi32
/*137841*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137844*/        OPC_EmitMergeInputChains1_0,
/*137845*/        OPC_EmitInteger, MVT::i64, 0, 
/*137848*/        OPC_EmitNode1, TARGET_VAL(X86::MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*137859*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*137862*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      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] })
/*137871*/      0, /*End of Scope*/
/*137872*/    /*Scope*/ 32, /*->137905*/
/*137873*/      OPC_CheckPredicate, 60, // Predicate_sextload
/*137875*/      OPC_CheckPredicate, 61, // Predicate_sextloadi8
/*137877*/      OPC_CheckType, MVT::i16,
/*137879*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137882*/      OPC_EmitMergeInputChains1_0,
/*137883*/      OPC_EmitNode1, TARGET_VAL(X86::MOVSX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*137894*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*137897*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                    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] })
/*137905*/    /*Scope*/ 32, /*->137938*/
/*137906*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*137908*/      OPC_CheckPredicate, 61, // Predicate_zextloadi8
/*137910*/      OPC_CheckType, MVT::i16,
/*137912*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137915*/      OPC_EmitMergeInputChains1_0,
/*137916*/      OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*137927*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*137930*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                    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] })
/*137938*/    /*Scope*/ 62, /*->138001*/
/*137939*/      OPC_CheckPredicate, 9, // Predicate_load
/*137941*/      OPC_SwitchType /*3 cases */, 18, MVT::f32,// ->137962
/*137944*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*137946*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137949*/        OPC_EmitMergeInputChains1_0,
/*137950*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, MVT::i16, 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] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*137962*/      /*SwitchType*/ 18, MVT::f64,// ->137982
/*137964*/        OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*137966*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137969*/        OPC_EmitMergeInputChains1_0,
/*137970*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, MVT::i16, 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] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*137982*/      /*SwitchType*/ 16, MVT::f80,// ->138000
/*137984*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*137987*/        OPC_EmitMergeInputChains1_0,
/*137988*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp80m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f80, MVT::i16, 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] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*138000*/      0, // EndSwitchType
/*138001*/    /*Scope*/ 68, /*->138070*/
/*138002*/      OPC_CheckPredicate, 64, // Predicate_extload
/*138004*/      OPC_SwitchType /*2 cases */, 20, MVT::f64,// ->138027
/*138007*/        OPC_CheckPredicate, 65, // Predicate_extloadf32
/*138009*/        OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*138011*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138014*/        OPC_EmitMergeInputChains1_0,
/*138015*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp32m64), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, MVT::i16, 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] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*138027*/      /*SwitchType*/ 40, MVT::f80,// ->138069
/*138029*/        OPC_Scope, 18, /*->138049*/ // 2 children in Scope
/*138031*/          OPC_CheckPredicate, 66, // Predicate_extloadf64
/*138033*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138036*/          OPC_EmitMergeInputChains1_0,
/*138037*/          OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp64m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*138049*/        /*Scope*/ 18, /*->138068*/
/*138050*/          OPC_CheckPredicate, 65, // Predicate_extloadf32
/*138052*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138055*/          OPC_EmitMergeInputChains1_0,
/*138056*/          OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*138068*/        0, /*End of Scope*/
/*138069*/      0, // EndSwitchType
/*138070*/    /*Scope*/ 84, /*->138155*/
/*138071*/      OPC_CheckPredicate, 9, // Predicate_load
/*138073*/      OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->138114
/*138076*/        OPC_Scope, 17, /*->138095*/ // 2 children in Scope
/*138078*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*138080*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138083*/          OPC_EmitMergeInputChains1_0,
/*138084*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*138095*/        /*Scope*/ 17, /*->138113*/
/*138096*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*138098*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138101*/          OPC_EmitMergeInputChains1_0,
/*138102*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*138113*/        0, /*End of Scope*/
/*138114*/      /*SwitchType*/ 38, MVT::f64,// ->138154
/*138116*/        OPC_Scope, 17, /*->138135*/ // 2 children in Scope
/*138118*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*138120*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138123*/          OPC_EmitMergeInputChains1_0,
/*138124*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*138135*/        /*Scope*/ 17, /*->138153*/
/*138136*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*138138*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138141*/          OPC_EmitMergeInputChains1_0,
/*138142*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (MOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*138153*/        0, /*End of Scope*/
/*138154*/      0, // EndSwitchType
/*138155*/    /*Scope*/ 23, /*->138179*/
/*138156*/      OPC_CheckPredicate, 64, // Predicate_extload
/*138158*/      OPC_CheckPredicate, 65, // Predicate_extloadf32
/*138160*/      OPC_CheckType, MVT::f64,
/*138162*/      OPC_CheckPatternPredicate, 147, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*138164*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138167*/      OPC_EmitMergeInputChains1_0,
/*138168*/      OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*138179*/    /*Scope*/ 42, /*->138222*/
/*138180*/      OPC_CheckPredicate, 9, // Predicate_load
/*138182*/      OPC_SwitchType /*2 cases */, 17, MVT::f32,// ->138202
/*138185*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*138187*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138190*/        OPC_EmitMergeInputChains1_0,
/*138191*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (VMOVSSZrm:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*138202*/      /*SwitchType*/ 17, MVT::f64,// ->138221
/*138204*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*138206*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138209*/        OPC_EmitMergeInputChains1_0,
/*138210*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (VMOVSDZrm:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*138221*/      0, // EndSwitchType
/*138222*/    /*Scope*/ 30, /*->138253*/
/*138223*/      OPC_CheckPredicate, 64, // Predicate_extload
/*138225*/      OPC_CheckPredicate, 65, // Predicate_extloadf32
/*138227*/      OPC_CheckType, MVT::f64,
/*138229*/      OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*138231*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138234*/      OPC_EmitMergeInputChains1_0,
/*138235*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::f64, 0/*#Ops*/,  // Results = #7
/*138241*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    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:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*138253*/    /*Scope*/ 62, /*->138316*/
/*138254*/      OPC_CheckPredicate, 9, // Predicate_load
/*138256*/      OPC_CheckType, MVT::f128,
/*138258*/      OPC_Scope, 28, /*->138288*/ // 2 children in Scope
/*138260*/        OPC_CheckPredicate, 67, // Predicate_alignedloadf128
/*138262*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138265*/        OPC_EmitMergeInputChains1_0,
/*138266*/        OPC_EmitNode1, TARGET_VAL(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*138277*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*138280*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::f128, 2/*#Ops*/, 7, 8, 
                  // Src: (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedloadf128>> - Complexity = 22
                  // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (MOVAPSrm:{ *:[f128] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*138288*/      /*Scope*/ 26, /*->138315*/
/*138289*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138292*/        OPC_EmitMergeInputChains1_0,
/*138293*/        OPC_EmitNode1, TARGET_VAL(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*138304*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*138307*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::f128, 2/*#Ops*/, 7, 8, 
                  // Src: (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (MOVUPSrm:{ *:[f128] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*138315*/      0, /*End of Scope*/
/*138316*/    /*Scope*/ 125, /*->138442*/
/*138317*/      OPC_CheckPredicate, 64, // Predicate_extload
/*138319*/      OPC_CheckPredicate, 65, // Predicate_extloadf32
/*138321*/      OPC_CheckType, MVT::f64,
/*138323*/      OPC_Scope, 24, /*->138349*/ // 4 children in Scope
/*138325*/        OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*138327*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138330*/        OPC_EmitMergeInputChains1_0,
/*138331*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #7
/*138337*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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: (VCVTSS2SDZrm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*138349*/      /*Scope*/ 27, /*->138377*/
/*138350*/        OPC_CheckPatternPredicate, 148, // (!MF->getFunction().optForSize()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*138352*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138355*/        OPC_EmitMergeInputChains1_0,
/*138356*/        OPC_EmitNode1, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*138367*/        OPC_EmitNode1, TARGET_VAL(X86::CVTSS2SDrr), 0,
                      MVT::f64, 1/*#Ops*/, 7,  // Results = #8
/*138374*/        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))
/*138377*/      /*Scope*/ 31, /*->138409*/
/*138378*/        OPC_CheckPatternPredicate, 149, // (!MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*138380*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138383*/        OPC_EmitMergeInputChains1_0,
/*138384*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #7
/*138390*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*138401*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDrr), 0|OPFL_Chain,
                      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:{ *:[f64] }), (VMOVSSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src))
/*138409*/      /*Scope*/ 31, /*->138441*/
/*138410*/        OPC_CheckPatternPredicate, 130, // (Subtarget->hasAVX512()) && (!MF->getFunction().optForSize())
/*138412*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138415*/        OPC_EmitMergeInputChains1_0,
/*138416*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #7
/*138422*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*138433*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrr), 0|OPFL_Chain,
                      MVT::f64, 2/*#Ops*/, 7, 8, 
                  // Src: (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 22
                  // Dst: (VCVTSS2SDZrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (VMOVSSZrm:{ *:[f32] } addr:{ *:[iPTR] }:$src))
/*138441*/      0, /*End of Scope*/
/*138442*/    /*Scope*/ 4|128,2/*260*/, /*->138704*/
/*138444*/      OPC_CheckPredicate, 9, // Predicate_load
/*138446*/      OPC_Scope, 123, /*->138571*/ // 7 children in Scope
/*138448*/        OPC_CheckPredicate, 68, // Predicate_nontemporalload
/*138450*/        OPC_CheckPredicate, 67, // Predicate_alignednontemporalload
/*138452*/        OPC_SwitchType /*3 cases */, 38, MVT::v4i64,// ->138493
/*138455*/          OPC_Scope, 17, /*->138474*/ // 2 children in Scope
/*138457*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*138459*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138462*/            OPC_EmitMergeInputChains1_0,
/*138463*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*138474*/          /*Scope*/ 17, /*->138492*/
/*138475*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*138477*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138480*/            OPC_EmitMergeInputChains1_0,
/*138481*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*138492*/          0, /*End of Scope*/
/*138493*/        /*SwitchType*/ 56, MVT::v2i64,// ->138551
/*138495*/          OPC_Scope, 17, /*->138514*/ // 3 children in Scope
/*138497*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138499*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138502*/            OPC_EmitMergeInputChains1_0,
/*138503*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQArm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQArm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*138514*/          /*Scope*/ 17, /*->138532*/
/*138515*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*138517*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138520*/            OPC_EmitMergeInputChains1_0,
/*138521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVNTDQArm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (MOVNTDQArm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*138532*/          /*Scope*/ 17, /*->138550*/
/*138533*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*138535*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138538*/            OPC_EmitMergeInputChains1_0,
/*138539*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*138550*/          0, /*End of Scope*/
/*138551*/        /*SwitchType*/ 17, MVT::v8i64,// ->138570
/*138553*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*138555*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138558*/          OPC_EmitMergeInputChains1_0,
/*138559*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                    // Dst: (VMOVNTDQAZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*138570*/        0, // EndSwitchType
/*138571*/      /*Scope*/ 21, /*->138593*/
/*138572*/        OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*138574*/        OPC_CheckType, MVT::v4i64,
/*138576*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138578*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138581*/        OPC_EmitMergeInputChains1_0,
/*138582*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                  // Dst: (VMOVAPSYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*138593*/      /*Scope*/ 21, /*->138615*/
/*138594*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*138596*/        OPC_CheckType, MVT::v4i64,
/*138598*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138600*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138603*/        OPC_EmitMergeInputChains1_0,
/*138604*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                  // Dst: (VMOVUPSYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*138615*/      /*Scope*/ 21, /*->138637*/
/*138616*/        OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*138618*/        OPC_CheckType, MVT::v2i64,
/*138620*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*138622*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138625*/        OPC_EmitMergeInputChains1_0,
/*138626*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                  // Dst: (MOVAPSrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*138637*/      /*Scope*/ 21, /*->138659*/
/*138638*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*138640*/        OPC_CheckType, MVT::v2i64,
/*138642*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*138644*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138647*/        OPC_EmitMergeInputChains1_0,
/*138648*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                  // Dst: (MOVUPSrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*138659*/      /*Scope*/ 21, /*->138681*/
/*138660*/        OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*138662*/        OPC_CheckType, MVT::v2i64,
/*138664*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138666*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138669*/        OPC_EmitMergeInputChains1_0,
/*138670*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQArm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                  // Dst: (VMOVDQArm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*138681*/      /*Scope*/ 21, /*->138703*/
/*138682*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*138684*/        OPC_CheckType, MVT::v2i64,
/*138686*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138688*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138691*/        OPC_EmitMergeInputChains1_0,
/*138692*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQUrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                  // Dst: (VMOVDQUrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*138703*/      0, /*End of Scope*/
/*138704*/    /*Scope*/ 3|128,1/*131*/, /*->138837*/
/*138706*/      OPC_CheckPredicate, 60, // Predicate_sextload
/*138708*/      OPC_Scope, 61, /*->138771*/ // 3 children in Scope
/*138710*/        OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*138712*/        OPC_SwitchType /*3 cases */, 17, MVT::v16i16,// ->138732
/*138715*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*138717*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138720*/          OPC_EmitMergeInputChains1_0,
/*138721*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*138732*/        /*SwitchType*/ 17, MVT::v8i32,// ->138751
/*138734*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138736*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138739*/          OPC_EmitMergeInputChains1_0,
/*138740*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*138751*/        /*SwitchType*/ 17, MVT::v4i64,// ->138770
/*138753*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138755*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138758*/          OPC_EmitMergeInputChains1_0,
/*138759*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*138770*/        0, // EndSwitchType
/*138771*/      /*Scope*/ 42, /*->138814*/
/*138772*/        OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*138774*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->138794
/*138777*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138779*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138782*/          OPC_EmitMergeInputChains1_0,
/*138783*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVSXWDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*138794*/        /*SwitchType*/ 17, MVT::v4i64,// ->138813
/*138796*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138798*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138801*/          OPC_EmitMergeInputChains1_0,
/*138802*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVSXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*138813*/        0, // EndSwitchType
/*138814*/      /*Scope*/ 21, /*->138836*/
/*138815*/        OPC_CheckPredicate, 72, // Predicate_sextloadvi32
/*138817*/        OPC_CheckType, MVT::v4i64,
/*138819*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138821*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138824*/        OPC_EmitMergeInputChains1_0,
/*138825*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>> - Complexity = 22
                  // Dst: (VPMOVSXDQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*138836*/      0, /*End of Scope*/
/*138837*/    /*Scope*/ 3|128,1/*131*/, /*->138970*/
/*138839*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*138841*/      OPC_Scope, 61, /*->138904*/ // 3 children in Scope
/*138843*/        OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*138845*/        OPC_SwitchType /*3 cases */, 17, MVT::v16i16,// ->138865
/*138848*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*138850*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138853*/          OPC_EmitMergeInputChains1_0,
/*138854*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*138865*/        /*SwitchType*/ 17, MVT::v8i32,// ->138884
/*138867*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138869*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138872*/          OPC_EmitMergeInputChains1_0,
/*138873*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*138884*/        /*SwitchType*/ 17, MVT::v4i64,// ->138903
/*138886*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138888*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138891*/          OPC_EmitMergeInputChains1_0,
/*138892*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*138903*/        0, // EndSwitchType
/*138904*/      /*Scope*/ 42, /*->138947*/
/*138905*/        OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*138907*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->138927
/*138910*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138912*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138915*/          OPC_EmitMergeInputChains1_0,
/*138916*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVZXWDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*138927*/        /*SwitchType*/ 17, MVT::v4i64,// ->138946
/*138929*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138931*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138934*/          OPC_EmitMergeInputChains1_0,
/*138935*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVZXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*138946*/        0, // EndSwitchType
/*138947*/      /*Scope*/ 21, /*->138969*/
/*138948*/        OPC_CheckPredicate, 72, // Predicate_zextloadvi32
/*138950*/        OPC_CheckType, MVT::v4i64,
/*138952*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138954*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138957*/        OPC_EmitMergeInputChains1_0,
/*138958*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>> - Complexity = 22
                  // Dst: (VPMOVZXDQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*138969*/      0, /*End of Scope*/
/*138970*/    /*Scope*/ 3|128,1/*131*/, /*->139103*/
/*138972*/      OPC_CheckPredicate, 60, // Predicate_sextload
/*138974*/      OPC_Scope, 61, /*->139037*/ // 3 children in Scope
/*138976*/        OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*138978*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i16,// ->138998
/*138981*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*138983*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*138986*/          OPC_EmitMergeInputChains1_0,
/*138987*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*138998*/        /*SwitchType*/ 17, MVT::v4i32,// ->139017
/*139000*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139002*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139005*/          OPC_EmitMergeInputChains1_0,
/*139006*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*139017*/        /*SwitchType*/ 17, MVT::v2i64,// ->139036
/*139019*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139021*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139024*/          OPC_EmitMergeInputChains1_0,
/*139025*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139036*/        0, // EndSwitchType
/*139037*/      /*Scope*/ 42, /*->139080*/
/*139038*/        OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*139040*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->139060
/*139043*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139045*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139048*/          OPC_EmitMergeInputChains1_0,
/*139049*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*139060*/        /*SwitchType*/ 17, MVT::v2i64,// ->139079
/*139062*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139064*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139067*/          OPC_EmitMergeInputChains1_0,
/*139068*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139079*/        0, // EndSwitchType
/*139080*/      /*Scope*/ 21, /*->139102*/
/*139081*/        OPC_CheckPredicate, 72, // Predicate_sextloadvi32
/*139083*/        OPC_CheckType, MVT::v2i64,
/*139085*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139087*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139090*/        OPC_EmitMergeInputChains1_0,
/*139091*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>> - Complexity = 22
                  // Dst: (VPMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139102*/      0, /*End of Scope*/
/*139103*/    /*Scope*/ 3|128,1/*131*/, /*->139236*/
/*139105*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*139107*/      OPC_Scope, 61, /*->139170*/ // 3 children in Scope
/*139109*/        OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*139111*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i16,// ->139131
/*139114*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*139116*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139119*/          OPC_EmitMergeInputChains1_0,
/*139120*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*139131*/        /*SwitchType*/ 17, MVT::v4i32,// ->139150
/*139133*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139135*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139138*/          OPC_EmitMergeInputChains1_0,
/*139139*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*139150*/        /*SwitchType*/ 17, MVT::v2i64,// ->139169
/*139152*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139154*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139157*/          OPC_EmitMergeInputChains1_0,
/*139158*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139169*/        0, // EndSwitchType
/*139170*/      /*Scope*/ 42, /*->139213*/
/*139171*/        OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*139173*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->139193
/*139176*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139178*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139181*/          OPC_EmitMergeInputChains1_0,
/*139182*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*139193*/        /*SwitchType*/ 17, MVT::v2i64,// ->139212
/*139195*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139197*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139200*/          OPC_EmitMergeInputChains1_0,
/*139201*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139212*/        0, // EndSwitchType
/*139213*/      /*Scope*/ 21, /*->139235*/
/*139214*/        OPC_CheckPredicate, 72, // Predicate_zextloadvi32
/*139216*/        OPC_CheckType, MVT::v2i64,
/*139218*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139220*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139223*/        OPC_EmitMergeInputChains1_0,
/*139224*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>> - Complexity = 22
                  // Dst: (VPMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139235*/      0, /*End of Scope*/
/*139236*/    /*Scope*/ 3|128,1/*131*/, /*->139369*/
/*139238*/      OPC_CheckPredicate, 60, // Predicate_sextload
/*139240*/      OPC_Scope, 61, /*->139303*/ // 3 children in Scope
/*139242*/        OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*139244*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i16,// ->139264
/*139247*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139249*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139252*/          OPC_EmitMergeInputChains1_0,
/*139253*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (PMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*139264*/        /*SwitchType*/ 17, MVT::v4i32,// ->139283
/*139266*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139268*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139271*/          OPC_EmitMergeInputChains1_0,
/*139272*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (PMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*139283*/        /*SwitchType*/ 17, MVT::v2i64,// ->139302
/*139285*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139287*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139290*/          OPC_EmitMergeInputChains1_0,
/*139291*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (PMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139302*/        0, // EndSwitchType
/*139303*/      /*Scope*/ 42, /*->139346*/
/*139304*/        OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*139306*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->139326
/*139309*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139311*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139314*/          OPC_EmitMergeInputChains1_0,
/*139315*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (PMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*139326*/        /*SwitchType*/ 17, MVT::v2i64,// ->139345
/*139328*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139330*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139333*/          OPC_EmitMergeInputChains1_0,
/*139334*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (PMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139345*/        0, // EndSwitchType
/*139346*/      /*Scope*/ 21, /*->139368*/
/*139347*/        OPC_CheckPredicate, 72, // Predicate_sextloadvi32
/*139349*/        OPC_CheckType, MVT::v2i64,
/*139351*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139353*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139356*/        OPC_EmitMergeInputChains1_0,
/*139357*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>> - Complexity = 22
                  // Dst: (PMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139368*/      0, /*End of Scope*/
/*139369*/    /*Scope*/ 3|128,1/*131*/, /*->139502*/
/*139371*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*139373*/      OPC_Scope, 61, /*->139436*/ // 3 children in Scope
/*139375*/        OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*139377*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i16,// ->139397
/*139380*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139382*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139385*/          OPC_EmitMergeInputChains1_0,
/*139386*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (PMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*139397*/        /*SwitchType*/ 17, MVT::v4i32,// ->139416
/*139399*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139401*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139404*/          OPC_EmitMergeInputChains1_0,
/*139405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (PMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*139416*/        /*SwitchType*/ 17, MVT::v2i64,// ->139435
/*139418*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139420*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139423*/          OPC_EmitMergeInputChains1_0,
/*139424*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (PMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139435*/        0, // EndSwitchType
/*139436*/      /*Scope*/ 42, /*->139479*/
/*139437*/        OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*139439*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->139459
/*139442*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139444*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139447*/          OPC_EmitMergeInputChains1_0,
/*139448*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (PMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*139459*/        /*SwitchType*/ 17, MVT::v2i64,// ->139478
/*139461*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139463*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139466*/          OPC_EmitMergeInputChains1_0,
/*139467*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (PMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139478*/        0, // EndSwitchType
/*139479*/      /*Scope*/ 21, /*->139501*/
/*139480*/        OPC_CheckPredicate, 72, // Predicate_zextloadvi32
/*139482*/        OPC_CheckType, MVT::v2i64,
/*139484*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*139486*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139489*/        OPC_EmitMergeInputChains1_0,
/*139490*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>> - Complexity = 22
                  // Dst: (PMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139501*/      0, /*End of Scope*/
/*139502*/    /*Scope*/ 84|128,1/*212*/, /*->139716*/
/*139504*/      OPC_CheckPredicate, 9, // Predicate_load
/*139506*/      OPC_SwitchType /*7 cases */, 17, MVT::v8i1,// ->139526
/*139509*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*139511*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139514*/        OPC_EmitMergeInputChains1_0,
/*139515*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KMOVBkm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v8i1] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (KMOVBkm:{ *:[v8i1] } addr:{ *:[iPTR] }:$src)
/*139526*/      /*SwitchType*/ 17, MVT::v16i1,// ->139545
/*139528*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139530*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139533*/        OPC_EmitMergeInputChains1_0,
/*139534*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KMOVWkm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v16i1] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (KMOVWkm:{ *:[v16i1] } addr:{ *:[iPTR] }:$src)
/*139545*/      /*SwitchType*/ 17, MVT::v32i1,// ->139564
/*139547*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*139549*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139552*/        OPC_EmitMergeInputChains1_0,
/*139553*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KMOVDkm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v32i1] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (KMOVDkm:{ *:[v32i1] } addr:{ *:[iPTR] }:$src)
/*139564*/      /*SwitchType*/ 17, MVT::v64i1,// ->139583
/*139566*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*139568*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139571*/        OPC_EmitMergeInputChains1_0,
/*139572*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KMOVQkm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v64i1] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (KMOVQkm:{ *:[v64i1] } addr:{ *:[iPTR] }:$src)
/*139583*/      /*SwitchType*/ 42, MVT::v8i64,// ->139627
/*139585*/        OPC_Scope, 19, /*->139606*/ // 2 children in Scope
/*139587*/          OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*139589*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139591*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139594*/          OPC_EmitMergeInputChains1_0,
/*139595*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVDQA64Zrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*139606*/        /*Scope*/ 19, /*->139626*/
/*139607*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*139609*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139611*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139614*/          OPC_EmitMergeInputChains1_0,
/*139615*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVDQU64Zrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*139626*/        0, /*End of Scope*/
/*139627*/      /*SwitchType*/ 42, MVT::v4i64,// ->139671
/*139629*/        OPC_Scope, 19, /*->139650*/ // 2 children in Scope
/*139631*/          OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*139633*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139635*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139638*/          OPC_EmitMergeInputChains1_0,
/*139639*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVDQA64Z256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*139650*/        /*Scope*/ 19, /*->139670*/
/*139651*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*139653*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139655*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139658*/          OPC_EmitMergeInputChains1_0,
/*139659*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVDQU64Z256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*139670*/        0, /*End of Scope*/
/*139671*/      /*SwitchType*/ 42, MVT::v2i64,// ->139715
/*139673*/        OPC_Scope, 19, /*->139694*/ // 2 children in Scope
/*139675*/          OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*139677*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139679*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139682*/          OPC_EmitMergeInputChains1_0,
/*139683*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVDQA64Z128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139694*/        /*Scope*/ 19, /*->139714*/
/*139695*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*139697*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139699*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139702*/          OPC_EmitMergeInputChains1_0,
/*139703*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVDQU64Z128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139714*/        0, /*End of Scope*/
/*139715*/      0, // EndSwitchType
/*139716*/    /*Scope*/ 106|128,2/*362*/, /*->140080*/
/*139718*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*139720*/      OPC_Scope, 47|128,1/*175*/, /*->139898*/ // 3 children in Scope
/*139723*/        OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*139725*/        OPC_SwitchType /*9 cases */, 17, MVT::v8i16,// ->139745
/*139728*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*139730*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139733*/          OPC_EmitMergeInputChains1_0,
/*139734*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*139745*/        /*SwitchType*/ 17, MVT::v16i16,// ->139764
/*139747*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*139749*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139752*/          OPC_EmitMergeInputChains1_0,
/*139753*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*139764*/        /*SwitchType*/ 17, MVT::v32i16,// ->139783
/*139766*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*139768*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139771*/          OPC_EmitMergeInputChains1_0,
/*139772*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBWZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*139783*/        /*SwitchType*/ 17, MVT::v4i32,// ->139802
/*139785*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139787*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139790*/          OPC_EmitMergeInputChains1_0,
/*139791*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*139802*/        /*SwitchType*/ 17, MVT::v8i32,// ->139821
/*139804*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139806*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139809*/          OPC_EmitMergeInputChains1_0,
/*139810*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*139821*/        /*SwitchType*/ 17, MVT::v16i32,// ->139840
/*139823*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139825*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139828*/          OPC_EmitMergeInputChains1_0,
/*139829*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*139840*/        /*SwitchType*/ 17, MVT::v2i64,// ->139859
/*139842*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139844*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139847*/          OPC_EmitMergeInputChains1_0,
/*139848*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139859*/        /*SwitchType*/ 17, MVT::v4i64,// ->139878
/*139861*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139863*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139866*/          OPC_EmitMergeInputChains1_0,
/*139867*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*139878*/        /*SwitchType*/ 17, MVT::v8i64,// ->139897
/*139880*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139882*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139885*/          OPC_EmitMergeInputChains1_0,
/*139886*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVZXBQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*139897*/        0, // EndSwitchType
/*139898*/      /*Scope*/ 118, /*->140017*/
/*139899*/        OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*139901*/        OPC_SwitchType /*6 cases */, 17, MVT::v4i32,// ->139921
/*139904*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139906*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139909*/          OPC_EmitMergeInputChains1_0,
/*139910*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVZXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*139921*/        /*SwitchType*/ 17, MVT::v8i32,// ->139940
/*139923*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139925*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139928*/          OPC_EmitMergeInputChains1_0,
/*139929*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVZXWDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*139940*/        /*SwitchType*/ 17, MVT::v16i32,// ->139959
/*139942*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139944*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139947*/          OPC_EmitMergeInputChains1_0,
/*139948*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVZXWDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*139959*/        /*SwitchType*/ 17, MVT::v2i64,// ->139978
/*139961*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139963*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139966*/          OPC_EmitMergeInputChains1_0,
/*139967*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVZXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*139978*/        /*SwitchType*/ 17, MVT::v4i64,// ->139997
/*139980*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139982*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*139985*/          OPC_EmitMergeInputChains1_0,
/*139986*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVZXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*139997*/        /*SwitchType*/ 17, MVT::v8i64,// ->140016
/*139999*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140001*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140004*/          OPC_EmitMergeInputChains1_0,
/*140005*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVZXWQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*140016*/        0, // EndSwitchType
/*140017*/      /*Scope*/ 61, /*->140079*/
/*140018*/        OPC_CheckPredicate, 72, // Predicate_zextloadvi32
/*140020*/        OPC_SwitchType /*3 cases */, 17, MVT::v2i64,// ->140040
/*140023*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140025*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140028*/          OPC_EmitMergeInputChains1_0,
/*140029*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>> - Complexity = 22
                    // Dst: (VPMOVZXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*140040*/        /*SwitchType*/ 17, MVT::v4i64,// ->140059
/*140042*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140044*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140047*/          OPC_EmitMergeInputChains1_0,
/*140048*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>> - Complexity = 22
                    // Dst: (VPMOVZXDQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*140059*/        /*SwitchType*/ 17, MVT::v8i64,// ->140078
/*140061*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140063*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140066*/          OPC_EmitMergeInputChains1_0,
/*140067*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>> - Complexity = 22
                    // Dst: (VPMOVZXDQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*140078*/        0, // EndSwitchType
/*140079*/      0, /*End of Scope*/
/*140080*/    /*Scope*/ 106|128,2/*362*/, /*->140444*/
/*140082*/      OPC_CheckPredicate, 60, // Predicate_sextload
/*140084*/      OPC_Scope, 47|128,1/*175*/, /*->140262*/ // 3 children in Scope
/*140087*/        OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*140089*/        OPC_SwitchType /*9 cases */, 17, MVT::v8i16,// ->140109
/*140092*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*140094*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140097*/          OPC_EmitMergeInputChains1_0,
/*140098*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*140109*/        /*SwitchType*/ 17, MVT::v16i16,// ->140128
/*140111*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*140113*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140116*/          OPC_EmitMergeInputChains1_0,
/*140117*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*140128*/        /*SwitchType*/ 17, MVT::v32i16,// ->140147
/*140130*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*140132*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140135*/          OPC_EmitMergeInputChains1_0,
/*140136*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBWZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*140147*/        /*SwitchType*/ 17, MVT::v4i32,// ->140166
/*140149*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140151*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140154*/          OPC_EmitMergeInputChains1_0,
/*140155*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*140166*/        /*SwitchType*/ 17, MVT::v8i32,// ->140185
/*140168*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140170*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140173*/          OPC_EmitMergeInputChains1_0,
/*140174*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*140185*/        /*SwitchType*/ 17, MVT::v16i32,// ->140204
/*140187*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140189*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140192*/          OPC_EmitMergeInputChains1_0,
/*140193*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*140204*/        /*SwitchType*/ 17, MVT::v2i64,// ->140223
/*140206*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140208*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140211*/          OPC_EmitMergeInputChains1_0,
/*140212*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*140223*/        /*SwitchType*/ 17, MVT::v4i64,// ->140242
/*140225*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140227*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140230*/          OPC_EmitMergeInputChains1_0,
/*140231*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*140242*/        /*SwitchType*/ 17, MVT::v8i64,// ->140261
/*140244*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140246*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140249*/          OPC_EmitMergeInputChains1_0,
/*140250*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 22
                    // Dst: (VPMOVSXBQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*140261*/        0, // EndSwitchType
/*140262*/      /*Scope*/ 118, /*->140381*/
/*140263*/        OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*140265*/        OPC_SwitchType /*6 cases */, 17, MVT::v4i32,// ->140285
/*140268*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140270*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140273*/          OPC_EmitMergeInputChains1_0,
/*140274*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVSXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*140285*/        /*SwitchType*/ 17, MVT::v8i32,// ->140304
/*140287*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140289*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140292*/          OPC_EmitMergeInputChains1_0,
/*140293*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVSXWDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*140304*/        /*SwitchType*/ 17, MVT::v16i32,// ->140323
/*140306*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140308*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140311*/          OPC_EmitMergeInputChains1_0,
/*140312*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVSXWDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*140323*/        /*SwitchType*/ 17, MVT::v2i64,// ->140342
/*140325*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140327*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140330*/          OPC_EmitMergeInputChains1_0,
/*140331*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVSXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*140342*/        /*SwitchType*/ 17, MVT::v4i64,// ->140361
/*140344*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140346*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140349*/          OPC_EmitMergeInputChains1_0,
/*140350*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVSXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*140361*/        /*SwitchType*/ 17, MVT::v8i64,// ->140380
/*140363*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140365*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140368*/          OPC_EmitMergeInputChains1_0,
/*140369*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 22
                    // Dst: (VPMOVSXWQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*140380*/        0, // EndSwitchType
/*140381*/      /*Scope*/ 61, /*->140443*/
/*140382*/        OPC_CheckPredicate, 72, // Predicate_sextloadvi32
/*140384*/        OPC_SwitchType /*3 cases */, 17, MVT::v2i64,// ->140404
/*140387*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140389*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140392*/          OPC_EmitMergeInputChains1_0,
/*140393*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>> - Complexity = 22
                    // Dst: (VPMOVSXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*140404*/        /*SwitchType*/ 17, MVT::v4i64,// ->140423
/*140406*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140408*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140411*/          OPC_EmitMergeInputChains1_0,
/*140412*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>> - Complexity = 22
                    // Dst: (VPMOVSXDQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*140423*/        /*SwitchType*/ 17, MVT::v8i64,// ->140442
/*140425*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140427*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140430*/          OPC_EmitMergeInputChains1_0,
/*140431*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>> - Complexity = 22
                    // Dst: (VPMOVSXDQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*140442*/        0, // EndSwitchType
/*140443*/      0, /*End of Scope*/
/*140444*/    /*Scope*/ 94|128,4/*606*/, /*->141052*/
/*140446*/      OPC_CheckPredicate, 9, // Predicate_load
/*140448*/      OPC_SwitchType /*9 cases */, 28, MVT::v1i1,// ->140479
/*140451*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*140453*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140456*/        OPC_EmitMergeInputChains1_0,
/*140457*/        OPC_EmitNode1, TARGET_VAL(X86::KMOVBkm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*140468*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*140471*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v1i1, 2/*#Ops*/, 7, 8, 
                  // Src: (ld:{ *:[v1i1] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KMOVBkm:{ *:[v8i1] } addr:{ *:[iPTR] }:$src), VK1:{ *:[i32] })
/*140479*/      /*SwitchType*/ 28, MVT::v2i1,// ->140509
/*140481*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*140483*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140486*/        OPC_EmitMergeInputChains1_0,
/*140487*/        OPC_EmitNode1, TARGET_VAL(X86::KMOVBkm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*140498*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*140501*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2i1, 2/*#Ops*/, 7, 8, 
                  // Src: (ld:{ *:[v2i1] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KMOVBkm:{ *:[v8i1] } addr:{ *:[iPTR] }:$src), VK2:{ *:[i32] })
/*140509*/      /*SwitchType*/ 28, MVT::v4i1,// ->140539
/*140511*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*140513*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140516*/        OPC_EmitMergeInputChains1_0,
/*140517*/        OPC_EmitNode1, TARGET_VAL(X86::KMOVBkm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*140528*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*140531*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 7, 8, 
                  // Src: (ld:{ *:[v4i1] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KMOVBkm:{ *:[v8i1] } addr:{ *:[iPTR] }:$src), VK4:{ *:[i32] })
/*140539*/      /*SwitchType*/ 85, MVT::v8f32,// ->140626
/*140541*/        OPC_Scope, 42, /*->140585*/ // 3 children in Scope
/*140543*/          OPC_CheckPredicate, 68, // Predicate_nontemporalload
/*140545*/          OPC_CheckPredicate, 67, // Predicate_alignednontemporalload
/*140547*/          OPC_Scope, 17, /*->140566*/ // 2 children in Scope
/*140549*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*140551*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140554*/            OPC_EmitMergeInputChains1_0,
/*140555*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*140566*/          /*Scope*/ 17, /*->140584*/
/*140567*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*140569*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140572*/            OPC_EmitMergeInputChains1_0,
/*140573*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*140584*/          0, /*End of Scope*/
/*140585*/        /*Scope*/ 19, /*->140605*/
/*140586*/          OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*140588*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140590*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140593*/          OPC_EmitMergeInputChains1_0,
/*140594*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVAPSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*140605*/        /*Scope*/ 19, /*->140625*/
/*140606*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*140608*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140610*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140613*/          OPC_EmitMergeInputChains1_0,
/*140614*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVUPSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*140625*/        0, /*End of Scope*/
/*140626*/      /*SwitchType*/ 85, MVT::v4f64,// ->140713
/*140628*/        OPC_Scope, 42, /*->140672*/ // 3 children in Scope
/*140630*/          OPC_CheckPredicate, 68, // Predicate_nontemporalload
/*140632*/          OPC_CheckPredicate, 67, // Predicate_alignednontemporalload
/*140634*/          OPC_Scope, 17, /*->140653*/ // 2 children in Scope
/*140636*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*140638*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140641*/            OPC_EmitMergeInputChains1_0,
/*140642*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*140653*/          /*Scope*/ 17, /*->140671*/
/*140654*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*140656*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140659*/            OPC_EmitMergeInputChains1_0,
/*140660*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*140671*/          0, /*End of Scope*/
/*140672*/        /*Scope*/ 19, /*->140692*/
/*140673*/          OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*140675*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140677*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140680*/          OPC_EmitMergeInputChains1_0,
/*140681*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVAPDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*140692*/        /*Scope*/ 19, /*->140712*/
/*140693*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*140695*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140697*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140700*/          OPC_EmitMergeInputChains1_0,
/*140701*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVUPDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*140712*/        0, /*End of Scope*/
/*140713*/      /*SwitchType*/ 15|128,1/*143*/, MVT::v4f32,// ->140859
/*140716*/        OPC_Scope, 60, /*->140778*/ // 5 children in Scope
/*140718*/          OPC_CheckPredicate, 68, // Predicate_nontemporalload
/*140720*/          OPC_CheckPredicate, 67, // Predicate_alignednontemporalload
/*140722*/          OPC_Scope, 17, /*->140741*/ // 3 children in Scope
/*140724*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140726*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140729*/            OPC_EmitMergeInputChains1_0,
/*140730*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQArm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQArm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*140741*/          /*Scope*/ 17, /*->140759*/
/*140742*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*140744*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140747*/            OPC_EmitMergeInputChains1_0,
/*140748*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVNTDQArm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (MOVNTDQArm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*140759*/          /*Scope*/ 17, /*->140777*/
/*140760*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*140762*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140765*/            OPC_EmitMergeInputChains1_0,
/*140766*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*140777*/          0, /*End of Scope*/
/*140778*/        /*Scope*/ 19, /*->140798*/
/*140779*/          OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*140781*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140783*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140786*/          OPC_EmitMergeInputChains1_0,
/*140787*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVAPSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*140798*/        /*Scope*/ 19, /*->140818*/
/*140799*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*140801*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140803*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140806*/          OPC_EmitMergeInputChains1_0,
/*140807*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVUPSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*140818*/        /*Scope*/ 19, /*->140838*/
/*140819*/          OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*140821*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*140823*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140826*/          OPC_EmitMergeInputChains1_0,
/*140827*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (MOVAPSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*140838*/        /*Scope*/ 19, /*->140858*/
/*140839*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*140841*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*140843*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140846*/          OPC_EmitMergeInputChains1_0,
/*140847*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (MOVUPSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*140858*/        0, /*End of Scope*/
/*140859*/      /*SwitchType*/ 15|128,1/*143*/, MVT::v2f64,// ->141005
/*140862*/        OPC_Scope, 60, /*->140924*/ // 5 children in Scope
/*140864*/          OPC_CheckPredicate, 68, // Predicate_nontemporalload
/*140866*/          OPC_CheckPredicate, 67, // Predicate_alignednontemporalload
/*140868*/          OPC_Scope, 17, /*->140887*/ // 3 children in Scope
/*140870*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140872*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140875*/            OPC_EmitMergeInputChains1_0,
/*140876*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQArm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQArm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*140887*/          /*Scope*/ 17, /*->140905*/
/*140888*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*140890*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140893*/            OPC_EmitMergeInputChains1_0,
/*140894*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVNTDQArm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (MOVNTDQArm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*140905*/          /*Scope*/ 17, /*->140923*/
/*140906*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*140908*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140911*/            OPC_EmitMergeInputChains1_0,
/*140912*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*140923*/          0, /*End of Scope*/
/*140924*/        /*Scope*/ 19, /*->140944*/
/*140925*/          OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*140927*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140929*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140932*/          OPC_EmitMergeInputChains1_0,
/*140933*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVAPDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*140944*/        /*Scope*/ 19, /*->140964*/
/*140945*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*140947*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140949*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140952*/          OPC_EmitMergeInputChains1_0,
/*140953*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVUPDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*140964*/        /*Scope*/ 19, /*->140984*/
/*140965*/          OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*140967*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*140969*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140972*/          OPC_EmitMergeInputChains1_0,
/*140973*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (MOVAPDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*140984*/        /*Scope*/ 19, /*->141004*/
/*140985*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*140987*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*140989*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*140992*/          OPC_EmitMergeInputChains1_0,
/*140993*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVUPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (MOVUPDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*141004*/        0, /*End of Scope*/
/*141005*/      /*SwitchType*/ 21, MVT::v8f64,// ->141028
/*141007*/        OPC_CheckPredicate, 68, // Predicate_nontemporalload
/*141009*/        OPC_CheckPredicate, 67, // Predicate_alignednontemporalload
/*141011*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141013*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141016*/        OPC_EmitMergeInputChains1_0,
/*141017*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                  // Dst: (VMOVNTDQAZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*141028*/      /*SwitchType*/ 21, MVT::v16f32,// ->141051
/*141030*/        OPC_CheckPredicate, 68, // Predicate_nontemporalload
/*141032*/        OPC_CheckPredicate, 67, // Predicate_alignednontemporalload
/*141034*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141036*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141039*/        OPC_EmitMergeInputChains1_0,
/*141040*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                  // Dst: (VMOVNTDQAZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*141051*/      0, // EndSwitchType
/*141052*/    /*Scope*/ 65, /*->141118*/
/*141053*/      OPC_CheckPredicate, 64, // Predicate_extload
/*141055*/      OPC_CheckPredicate, 73, // Predicate_extloadvf32
/*141057*/      OPC_SwitchType /*2 cases */, 38, MVT::v2f64,// ->141098
/*141060*/        OPC_Scope, 17, /*->141079*/ // 2 children in Scope
/*141062*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*141064*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141067*/          OPC_EmitMergeInputChains1_0,
/*141068*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>> - Complexity = 22
                    // Dst: (VCVTPS2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*141079*/        /*Scope*/ 17, /*->141097*/
/*141080*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*141082*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141085*/          OPC_EmitMergeInputChains1_0,
/*141086*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPS2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>> - Complexity = 22
                    // Dst: (CVTPS2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*141097*/        0, /*End of Scope*/
/*141098*/      /*SwitchType*/ 17, MVT::v4f64,// ->141117
/*141100*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*141102*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141105*/        OPC_EmitMergeInputChains1_0,
/*141106*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>> - Complexity = 22
                  // Dst: (VCVTPS2PDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*141117*/      0, // EndSwitchType
/*141118*/    /*Scope*/ 114|128,1/*242*/, /*->141362*/
/*141120*/      OPC_CheckPredicate, 9, // Predicate_load
/*141122*/      OPC_Scope, 118, /*->141242*/ // 2 children in Scope
/*141124*/        OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*141126*/        OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->141146
/*141129*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141131*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141134*/          OPC_EmitMergeInputChains1_0,
/*141135*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVAPSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*141146*/        /*SwitchType*/ 17, MVT::v8f32,// ->141165
/*141148*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141150*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141153*/          OPC_EmitMergeInputChains1_0,
/*141154*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVAPSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*141165*/        /*SwitchType*/ 17, MVT::v4f32,// ->141184
/*141167*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141169*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141172*/          OPC_EmitMergeInputChains1_0,
/*141173*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVAPSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*141184*/        /*SwitchType*/ 17, MVT::v8f64,// ->141203
/*141186*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141188*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141191*/          OPC_EmitMergeInputChains1_0,
/*141192*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVAPDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*141203*/        /*SwitchType*/ 17, MVT::v4f64,// ->141222
/*141205*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141207*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141210*/          OPC_EmitMergeInputChains1_0,
/*141211*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVAPDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*141222*/        /*SwitchType*/ 17, MVT::v2f64,// ->141241
/*141224*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141226*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141229*/          OPC_EmitMergeInputChains1_0,
/*141230*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>> - Complexity = 22
                    // Dst: (VMOVAPDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*141241*/        0, // EndSwitchType
/*141242*/      /*Scope*/ 118, /*->141361*/
/*141243*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*141245*/        OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->141265
/*141248*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141250*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141253*/          OPC_EmitMergeInputChains1_0,
/*141254*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVUPSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*141265*/        /*SwitchType*/ 17, MVT::v8f32,// ->141284
/*141267*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141269*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141272*/          OPC_EmitMergeInputChains1_0,
/*141273*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVUPSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*141284*/        /*SwitchType*/ 17, MVT::v4f32,// ->141303
/*141286*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141288*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141291*/          OPC_EmitMergeInputChains1_0,
/*141292*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVUPSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*141303*/        /*SwitchType*/ 17, MVT::v8f64,// ->141322
/*141305*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141307*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141310*/          OPC_EmitMergeInputChains1_0,
/*141311*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVUPDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*141322*/        /*SwitchType*/ 17, MVT::v4f64,// ->141341
/*141324*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141326*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141329*/          OPC_EmitMergeInputChains1_0,
/*141330*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVUPDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*141341*/        /*SwitchType*/ 17, MVT::v2f64,// ->141360
/*141343*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141345*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141348*/          OPC_EmitMergeInputChains1_0,
/*141349*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>> - Complexity = 22
                    // Dst: (VMOVUPDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*141360*/        0, // EndSwitchType
/*141361*/      0, /*End of Scope*/
/*141362*/    /*Scope*/ 82, /*->141445*/
/*141363*/      OPC_CheckPredicate, 64, // Predicate_extload
/*141365*/      OPC_CheckPredicate, 73, // Predicate_extloadvf32
/*141367*/      OPC_SwitchType /*3 cases */, 36, MVT::v8f64,// ->141406
/*141370*/        OPC_Scope, 15, /*->141387*/ // 2 children in Scope
/*141372*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141375*/          OPC_EmitMergeInputChains1_0,
/*141376*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>> - Complexity = 22
                    // Dst: (VCVTPS2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*141387*/        /*Scope*/ 17, /*->141405*/
/*141388*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141390*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141393*/          OPC_EmitMergeInputChains1_0,
/*141394*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>> - Complexity = 22
                    // Dst: (VCVTPS2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*141405*/        0, /*End of Scope*/
/*141406*/      /*SwitchType*/ 17, MVT::v2f64,// ->141425
/*141408*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*141410*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141413*/        OPC_EmitMergeInputChains1_0,
/*141414*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>> - Complexity = 22
                  // Dst: (VCVTPS2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*141425*/      /*SwitchType*/ 17, MVT::v4f64,// ->141444
/*141427*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*141429*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*141432*/        OPC_EmitMergeInputChains1_0,
/*141433*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>> - Complexity = 22
                  // Dst: (VCVTPS2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*141444*/      0, // EndSwitchType
/*141445*/    0, /*End of Scope*/
/*141446*/  /*SwitchOpcode*/ 86, TARGET_VAL(ISD::ATOMIC_SWAP),// ->141535
/*141449*/    OPC_RecordMemRef,
/*141450*/    OPC_RecordNode, // #0 = 'atomic_swap' chained node
/*141451*/    OPC_RecordChild1, // #1 = $ptr
/*141452*/    OPC_RecordChild2, // #2 = $val
/*141453*/    OPC_SwitchType /*4 cases */, 18, MVT::i8,// ->141474
/*141456*/      OPC_CheckPredicate, 37, // Predicate_atomic_swap_8
/*141458*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*141461*/      OPC_EmitMergeInputChains1_0,
/*141462*/      OPC_MorphNodeTo1, TARGET_VAL(X86::XCHG8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*141474*/    /*SwitchType*/ 18, MVT::i16,// ->141494
/*141476*/      OPC_CheckPredicate, 38, // Predicate_atomic_swap_16
/*141478*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*141481*/      OPC_EmitMergeInputChains1_0,
/*141482*/      OPC_MorphNodeTo1, TARGET_VAL(X86::XCHG16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*141494*/    /*SwitchType*/ 18, MVT::i32,// ->141514
/*141496*/      OPC_CheckPredicate, 35, // Predicate_atomic_swap_32
/*141498*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*141501*/      OPC_EmitMergeInputChains1_0,
/*141502*/      OPC_MorphNodeTo1, TARGET_VAL(X86::XCHG32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*141514*/    /*SwitchType*/ 18, MVT::i64,// ->141534
/*141516*/      OPC_CheckPredicate, 36, // Predicate_atomic_swap_64
/*141518*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*141521*/      OPC_EmitMergeInputChains1_0,
/*141522*/      OPC_MorphNodeTo1, TARGET_VAL(X86::XCHG64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*141534*/    0, // EndSwitchType
/*141535*/  /*SwitchOpcode*/ 26|128,3/*410*/, TARGET_VAL(X86ISD::VTRUNCSTORES),// ->141949
/*141539*/    OPC_RecordMemRef,
/*141540*/    OPC_RecordNode, // #0 = 'X86TruncSStore' chained node
/*141541*/    OPC_RecordChild1, // #1 = $src
/*141542*/    OPC_Scope, 65, /*->141609*/ // 9 children in Scope
/*141544*/      OPC_CheckChild1Type, MVT::v2i64,
/*141546*/      OPC_RecordChild2, // #2 = $dst
/*141547*/      OPC_Scope, 19, /*->141568*/ // 3 children in Scope
/*141549*/        OPC_CheckPredicate, 74, // Predicate_truncstore_s_vi8
/*141551*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141553*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141556*/        OPC_EmitMergeInputChains1_0,
/*141557*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQBZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSQBZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/*141568*/      /*Scope*/ 19, /*->141588*/
/*141569*/        OPC_CheckPredicate, 75, // Predicate_truncstore_s_vi16
/*141571*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141573*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141576*/        OPC_EmitMergeInputChains1_0,
/*141577*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQWZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSQWZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/*141588*/      /*Scope*/ 19, /*->141608*/
/*141589*/        OPC_CheckPredicate, 76, // Predicate_truncstore_s_vi32
/*141591*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141593*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141596*/        OPC_EmitMergeInputChains1_0,
/*141597*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi32>> - Complexity = 22
                  // Dst: (VPMOVSQDZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/*141608*/      0, /*End of Scope*/
/*141609*/    /*Scope*/ 65, /*->141675*/
/*141610*/      OPC_CheckChild1Type, MVT::v4i64,
/*141612*/      OPC_RecordChild2, // #2 = $dst
/*141613*/      OPC_Scope, 19, /*->141634*/ // 3 children in Scope
/*141615*/        OPC_CheckPredicate, 74, // Predicate_truncstore_s_vi8
/*141617*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141619*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141622*/        OPC_EmitMergeInputChains1_0,
/*141623*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQBZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSQBZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/*141634*/      /*Scope*/ 19, /*->141654*/
/*141635*/        OPC_CheckPredicate, 75, // Predicate_truncstore_s_vi16
/*141637*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141639*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141642*/        OPC_EmitMergeInputChains1_0,
/*141643*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQWZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSQWZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/*141654*/      /*Scope*/ 19, /*->141674*/
/*141655*/        OPC_CheckPredicate, 76, // Predicate_truncstore_s_vi32
/*141657*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141659*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141662*/        OPC_EmitMergeInputChains1_0,
/*141663*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi32>> - Complexity = 22
                  // Dst: (VPMOVSQDZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/*141674*/      0, /*End of Scope*/
/*141675*/    /*Scope*/ 65, /*->141741*/
/*141676*/      OPC_CheckChild1Type, MVT::v8i64,
/*141678*/      OPC_RecordChild2, // #2 = $dst
/*141679*/      OPC_Scope, 19, /*->141700*/ // 3 children in Scope
/*141681*/        OPC_CheckPredicate, 74, // Predicate_truncstore_s_vi8
/*141683*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141685*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141688*/        OPC_EmitMergeInputChains1_0,
/*141689*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQBZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSQBZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/*141700*/      /*Scope*/ 19, /*->141720*/
/*141701*/        OPC_CheckPredicate, 75, // Predicate_truncstore_s_vi16
/*141703*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141705*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141708*/        OPC_EmitMergeInputChains1_0,
/*141709*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQWZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSQWZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/*141720*/      /*Scope*/ 19, /*->141740*/
/*141721*/        OPC_CheckPredicate, 76, // Predicate_truncstore_s_vi32
/*141723*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141725*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141728*/        OPC_EmitMergeInputChains1_0,
/*141729*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi32>> - Complexity = 22
                  // Dst: (VPMOVSQDZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/*141740*/      0, /*End of Scope*/
/*141741*/    /*Scope*/ 45, /*->141787*/
/*141742*/      OPC_CheckChild1Type, MVT::v4i32,
/*141744*/      OPC_RecordChild2, // #2 = $dst
/*141745*/      OPC_Scope, 19, /*->141766*/ // 2 children in Scope
/*141747*/        OPC_CheckPredicate, 74, // Predicate_truncstore_s_vi8
/*141749*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141751*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141754*/        OPC_EmitMergeInputChains1_0,
/*141755*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDBZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSDBZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4i32] }:$src)
/*141766*/      /*Scope*/ 19, /*->141786*/
/*141767*/        OPC_CheckPredicate, 75, // Predicate_truncstore_s_vi16
/*141769*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141771*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141774*/        OPC_EmitMergeInputChains1_0,
/*141775*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDWZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSDWZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4i32] }:$src)
/*141786*/      0, /*End of Scope*/
/*141787*/    /*Scope*/ 45, /*->141833*/
/*141788*/      OPC_CheckChild1Type, MVT::v8i32,
/*141790*/      OPC_RecordChild2, // #2 = $dst
/*141791*/      OPC_Scope, 19, /*->141812*/ // 2 children in Scope
/*141793*/        OPC_CheckPredicate, 74, // Predicate_truncstore_s_vi8
/*141795*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141797*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141800*/        OPC_EmitMergeInputChains1_0,
/*141801*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDBZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSDBZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8i32] }:$src)
/*141812*/      /*Scope*/ 19, /*->141832*/
/*141813*/        OPC_CheckPredicate, 75, // Predicate_truncstore_s_vi16
/*141815*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141817*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141820*/        OPC_EmitMergeInputChains1_0,
/*141821*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDWZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSDWZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8i32] }:$src)
/*141832*/      0, /*End of Scope*/
/*141833*/    /*Scope*/ 45, /*->141879*/
/*141834*/      OPC_CheckChild1Type, MVT::v16i32,
/*141836*/      OPC_RecordChild2, // #2 = $dst
/*141837*/      OPC_Scope, 19, /*->141858*/ // 2 children in Scope
/*141839*/        OPC_CheckPredicate, 74, // Predicate_truncstore_s_vi8
/*141841*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141843*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141846*/        OPC_EmitMergeInputChains1_0,
/*141847*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDBZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSDBZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src)
/*141858*/      /*Scope*/ 19, /*->141878*/
/*141859*/        OPC_CheckPredicate, 75, // Predicate_truncstore_s_vi16
/*141861*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141863*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141866*/        OPC_EmitMergeInputChains1_0,
/*141867*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDWZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncSStore VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSDWZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src)
/*141878*/      0, /*End of Scope*/
/*141879*/    /*Scope*/ 22, /*->141902*/
/*141880*/      OPC_CheckChild1Type, MVT::v8i16,
/*141882*/      OPC_RecordChild2, // #2 = $dst
/*141883*/      OPC_CheckPredicate, 74, // Predicate_truncstore_s_vi8
/*141885*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*141887*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141890*/      OPC_EmitMergeInputChains1_0,
/*141891*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSWBZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86TruncSStore VR128X:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi8>> - Complexity = 22
                // Dst: (VPMOVSWBZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v8i16] }:$src)
/*141902*/    /*Scope*/ 22, /*->141925*/
/*141903*/      OPC_CheckChild1Type, MVT::v16i16,
/*141905*/      OPC_RecordChild2, // #2 = $dst
/*141906*/      OPC_CheckPredicate, 74, // Predicate_truncstore_s_vi8
/*141908*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*141910*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141913*/      OPC_EmitMergeInputChains1_0,
/*141914*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSWBZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86TruncSStore VR256X:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi8>> - Complexity = 22
                // Dst: (VPMOVSWBZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v16i16] }:$src)
/*141925*/    /*Scope*/ 22, /*->141948*/
/*141926*/      OPC_CheckChild1Type, MVT::v32i16,
/*141928*/      OPC_RecordChild2, // #2 = $dst
/*141929*/      OPC_CheckPredicate, 74, // Predicate_truncstore_s_vi8
/*141931*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*141933*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*141936*/      OPC_EmitMergeInputChains1_0,
/*141937*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSWBZmr), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86TruncSStore VR512:{ *:[v32i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_s_vi8>> - Complexity = 22
                // Dst: (VPMOVSWBZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v32i16] }:$src)
/*141948*/    0, /*End of Scope*/
/*141949*/  /*SwitchOpcode*/ 61|128,3/*445*/, TARGET_VAL(X86ISD::VMTRUNCSTORES),// ->142398
/*141953*/    OPC_RecordMemRef,
/*141954*/    OPC_RecordNode, // #0 = 'X86MTruncSStore' chained node
/*141955*/    OPC_RecordChild1, // #1 = $dst
/*141956*/    OPC_RecordChild2, // #2 = $mask
/*141957*/    OPC_Scope, 70, /*->142029*/ // 5 children in Scope
/*141959*/      OPC_CheckChild2Type, MVT::v2i1,
/*141961*/      OPC_RecordChild3, // #3 = $src
/*141962*/      OPC_CheckChild3Type, MVT::v2i64,
/*141964*/      OPC_Scope, 20, /*->141986*/ // 3 children in Scope
/*141966*/        OPC_CheckPredicate, 77, // Predicate_masked_truncstore_s_vi8
/*141968*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141970*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*141973*/        OPC_EmitMergeInputChains1_0,
/*141974*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                  // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSQBZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*141986*/      /*Scope*/ 20, /*->142007*/
/*141987*/        OPC_CheckPredicate, 78, // Predicate_masked_truncstore_s_vi16
/*141989*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141991*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*141994*/        OPC_EmitMergeInputChains1_0,
/*141995*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                  // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSQWZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*142007*/      /*Scope*/ 20, /*->142028*/
/*142008*/        OPC_CheckPredicate, 79, // Predicate_masked_truncstore_s_vi32
/*142010*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142012*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142015*/        OPC_EmitMergeInputChains1_0,
/*142016*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                  // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_masked_truncstore_s_vi32>> - Complexity = 22
                  // Dst: (VPMOVSQDZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*142028*/      0, /*End of Scope*/
/*142029*/    /*Scope*/ 120, /*->142150*/
/*142030*/      OPC_CheckChild2Type, MVT::v4i1,
/*142032*/      OPC_RecordChild3, // #3 = $src
/*142033*/      OPC_Scope, 67, /*->142102*/ // 2 children in Scope
/*142035*/        OPC_CheckChild3Type, MVT::v4i64,
/*142037*/        OPC_Scope, 20, /*->142059*/ // 3 children in Scope
/*142039*/          OPC_CheckPredicate, 77, // Predicate_masked_truncstore_s_vi8
/*142041*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142043*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142046*/          OPC_EmitMergeInputChains1_0,
/*142047*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                    // Dst: (VPMOVSQBZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*142059*/        /*Scope*/ 20, /*->142080*/
/*142060*/          OPC_CheckPredicate, 78, // Predicate_masked_truncstore_s_vi16
/*142062*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142064*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142067*/          OPC_EmitMergeInputChains1_0,
/*142068*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                    // Dst: (VPMOVSQWZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*142080*/        /*Scope*/ 20, /*->142101*/
/*142081*/          OPC_CheckPredicate, 79, // Predicate_masked_truncstore_s_vi32
/*142083*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142085*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142088*/          OPC_EmitMergeInputChains1_0,
/*142089*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_masked_truncstore_s_vi32>> - Complexity = 22
                    // Dst: (VPMOVSQDZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*142101*/        0, /*End of Scope*/
/*142102*/      /*Scope*/ 46, /*->142149*/
/*142103*/        OPC_CheckChild3Type, MVT::v4i32,
/*142105*/        OPC_Scope, 20, /*->142127*/ // 2 children in Scope
/*142107*/          OPC_CheckPredicate, 77, // Predicate_masked_truncstore_s_vi8
/*142109*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142111*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142114*/          OPC_EmitMergeInputChains1_0,
/*142115*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                    // Dst: (VPMOVSDBZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*142127*/        /*Scope*/ 20, /*->142148*/
/*142128*/          OPC_CheckPredicate, 78, // Predicate_masked_truncstore_s_vi16
/*142130*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142132*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142135*/          OPC_EmitMergeInputChains1_0,
/*142136*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                    // Dst: (VPMOVSDWZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*142148*/        0, /*End of Scope*/
/*142149*/      0, /*End of Scope*/
/*142150*/    /*Scope*/ 15|128,1/*143*/, /*->142295*/
/*142152*/      OPC_CheckChild2Type, MVT::v8i1,
/*142154*/      OPC_RecordChild3, // #3 = $src
/*142155*/      OPC_Scope, 67, /*->142224*/ // 3 children in Scope
/*142157*/        OPC_CheckChild3Type, MVT::v8i64,
/*142159*/        OPC_Scope, 20, /*->142181*/ // 3 children in Scope
/*142161*/          OPC_CheckPredicate, 77, // Predicate_masked_truncstore_s_vi8
/*142163*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142165*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142168*/          OPC_EmitMergeInputChains1_0,
/*142169*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                    // Dst: (VPMOVSQBZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*142181*/        /*Scope*/ 20, /*->142202*/
/*142182*/          OPC_CheckPredicate, 78, // Predicate_masked_truncstore_s_vi16
/*142184*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142186*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142189*/          OPC_EmitMergeInputChains1_0,
/*142190*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                    // Dst: (VPMOVSQWZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*142202*/        /*Scope*/ 20, /*->142223*/
/*142203*/          OPC_CheckPredicate, 79, // Predicate_masked_truncstore_s_vi32
/*142205*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142207*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142210*/          OPC_EmitMergeInputChains1_0,
/*142211*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_masked_truncstore_s_vi32>> - Complexity = 22
                    // Dst: (VPMOVSQDZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*142223*/        0, /*End of Scope*/
/*142224*/      /*Scope*/ 46, /*->142271*/
/*142225*/        OPC_CheckChild3Type, MVT::v8i32,
/*142227*/        OPC_Scope, 20, /*->142249*/ // 2 children in Scope
/*142229*/          OPC_CheckPredicate, 77, // Predicate_masked_truncstore_s_vi8
/*142231*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142233*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142236*/          OPC_EmitMergeInputChains1_0,
/*142237*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                    // Dst: (VPMOVSDBZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*142249*/        /*Scope*/ 20, /*->142270*/
/*142250*/          OPC_CheckPredicate, 78, // Predicate_masked_truncstore_s_vi16
/*142252*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142254*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142257*/          OPC_EmitMergeInputChains1_0,
/*142258*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                    // Dst: (VPMOVSDWZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*142270*/        0, /*End of Scope*/
/*142271*/      /*Scope*/ 22, /*->142294*/
/*142272*/        OPC_CheckChild3Type, MVT::v8i16,
/*142274*/        OPC_CheckPredicate, 77, // Predicate_masked_truncstore_s_vi8
/*142276*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*142278*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142281*/        OPC_EmitMergeInputChains1_0,
/*142282*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSWBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                  // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSWBZ128mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*142294*/      0, /*End of Scope*/
/*142295*/    /*Scope*/ 75, /*->142371*/
/*142296*/      OPC_CheckChild2Type, MVT::v16i1,
/*142298*/      OPC_RecordChild3, // #3 = $src
/*142299*/      OPC_Scope, 46, /*->142347*/ // 2 children in Scope
/*142301*/        OPC_CheckChild3Type, MVT::v16i32,
/*142303*/        OPC_Scope, 20, /*->142325*/ // 2 children in Scope
/*142305*/          OPC_CheckPredicate, 77, // Predicate_masked_truncstore_s_vi8
/*142307*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142309*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142312*/          OPC_EmitMergeInputChains1_0,
/*142313*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                    // Dst: (VPMOVSDBZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*142325*/        /*Scope*/ 20, /*->142346*/
/*142326*/          OPC_CheckPredicate, 78, // Predicate_masked_truncstore_s_vi16
/*142328*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142330*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142333*/          OPC_EmitMergeInputChains1_0,
/*142334*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                    // Dst: (VPMOVSDWZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*142346*/        0, /*End of Scope*/
/*142347*/      /*Scope*/ 22, /*->142370*/
/*142348*/        OPC_CheckChild3Type, MVT::v16i16,
/*142350*/        OPC_CheckPredicate, 77, // Predicate_masked_truncstore_s_vi8
/*142352*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*142354*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142357*/        OPC_EmitMergeInputChains1_0,
/*142358*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSWBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                  // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSWBZ256mrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*142370*/      0, /*End of Scope*/
/*142371*/    /*Scope*/ 25, /*->142397*/
/*142372*/      OPC_CheckChild2Type, MVT::v32i1,
/*142374*/      OPC_RecordChild3, // #3 = $src
/*142375*/      OPC_CheckChild3Type, MVT::v32i16,
/*142377*/      OPC_CheckPredicate, 77, // Predicate_masked_truncstore_s_vi8
/*142379*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*142381*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142384*/      OPC_EmitMergeInputChains1_0,
/*142385*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSWBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (X86MTruncSStore addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                // Dst: (VPMOVSWBZmrk addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*142397*/    0, /*End of Scope*/
/*142398*/  /*SwitchOpcode*/ 26|128,3/*410*/, TARGET_VAL(X86ISD::VTRUNCSTOREUS),// ->142812
/*142402*/    OPC_RecordMemRef,
/*142403*/    OPC_RecordNode, // #0 = 'X86TruncUSStore' chained node
/*142404*/    OPC_RecordChild1, // #1 = $src
/*142405*/    OPC_Scope, 65, /*->142472*/ // 9 children in Scope
/*142407*/      OPC_CheckChild1Type, MVT::v2i64,
/*142409*/      OPC_RecordChild2, // #2 = $dst
/*142410*/      OPC_Scope, 19, /*->142431*/ // 3 children in Scope
/*142412*/        OPC_CheckPredicate, 80, // Predicate_truncstore_us_vi8
/*142414*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142416*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142419*/        OPC_EmitMergeInputChains1_0,
/*142420*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQBZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSQBZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/*142431*/      /*Scope*/ 19, /*->142451*/
/*142432*/        OPC_CheckPredicate, 81, // Predicate_truncstore_us_vi16
/*142434*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142436*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142439*/        OPC_EmitMergeInputChains1_0,
/*142440*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQWZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSQWZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/*142451*/      /*Scope*/ 19, /*->142471*/
/*142452*/        OPC_CheckPredicate, 82, // Predicate_truncstore_us_vi32
/*142454*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142456*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142459*/        OPC_EmitMergeInputChains1_0,
/*142460*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi32>> - Complexity = 22
                  // Dst: (VPMOVUSQDZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/*142471*/      0, /*End of Scope*/
/*142472*/    /*Scope*/ 65, /*->142538*/
/*142473*/      OPC_CheckChild1Type, MVT::v4i64,
/*142475*/      OPC_RecordChild2, // #2 = $dst
/*142476*/      OPC_Scope, 19, /*->142497*/ // 3 children in Scope
/*142478*/        OPC_CheckPredicate, 80, // Predicate_truncstore_us_vi8
/*142480*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142482*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142485*/        OPC_EmitMergeInputChains1_0,
/*142486*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQBZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSQBZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/*142497*/      /*Scope*/ 19, /*->142517*/
/*142498*/        OPC_CheckPredicate, 81, // Predicate_truncstore_us_vi16
/*142500*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142502*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142505*/        OPC_EmitMergeInputChains1_0,
/*142506*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQWZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSQWZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/*142517*/      /*Scope*/ 19, /*->142537*/
/*142518*/        OPC_CheckPredicate, 82, // Predicate_truncstore_us_vi32
/*142520*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142522*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142525*/        OPC_EmitMergeInputChains1_0,
/*142526*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi32>> - Complexity = 22
                  // Dst: (VPMOVUSQDZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src)
/*142537*/      0, /*End of Scope*/
/*142538*/    /*Scope*/ 65, /*->142604*/
/*142539*/      OPC_CheckChild1Type, MVT::v8i64,
/*142541*/      OPC_RecordChild2, // #2 = $dst
/*142542*/      OPC_Scope, 19, /*->142563*/ // 3 children in Scope
/*142544*/        OPC_CheckPredicate, 80, // Predicate_truncstore_us_vi8
/*142546*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142548*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142551*/        OPC_EmitMergeInputChains1_0,
/*142552*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQBZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSQBZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/*142563*/      /*Scope*/ 19, /*->142583*/
/*142564*/        OPC_CheckPredicate, 81, // Predicate_truncstore_us_vi16
/*142566*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142568*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142571*/        OPC_EmitMergeInputChains1_0,
/*142572*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQWZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSQWZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/*142583*/      /*Scope*/ 19, /*->142603*/
/*142584*/        OPC_CheckPredicate, 82, // Predicate_truncstore_us_vi32
/*142586*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142588*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142591*/        OPC_EmitMergeInputChains1_0,
/*142592*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi32>> - Complexity = 22
                  // Dst: (VPMOVUSQDZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src)
/*142603*/      0, /*End of Scope*/
/*142604*/    /*Scope*/ 45, /*->142650*/
/*142605*/      OPC_CheckChild1Type, MVT::v4i32,
/*142607*/      OPC_RecordChild2, // #2 = $dst
/*142608*/      OPC_Scope, 19, /*->142629*/ // 2 children in Scope
/*142610*/        OPC_CheckPredicate, 80, // Predicate_truncstore_us_vi8
/*142612*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142614*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142617*/        OPC_EmitMergeInputChains1_0,
/*142618*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDBZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSDBZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4i32] }:$src)
/*142629*/      /*Scope*/ 19, /*->142649*/
/*142630*/        OPC_CheckPredicate, 81, // Predicate_truncstore_us_vi16
/*142632*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142634*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142637*/        OPC_EmitMergeInputChains1_0,
/*142638*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDWZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSDWZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4i32] }:$src)
/*142649*/      0, /*End of Scope*/
/*142650*/    /*Scope*/ 45, /*->142696*/
/*142651*/      OPC_CheckChild1Type, MVT::v8i32,
/*142653*/      OPC_RecordChild2, // #2 = $dst
/*142654*/      OPC_Scope, 19, /*->142675*/ // 2 children in Scope
/*142656*/        OPC_CheckPredicate, 80, // Predicate_truncstore_us_vi8
/*142658*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142660*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142663*/        OPC_EmitMergeInputChains1_0,
/*142664*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDBZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSDBZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8i32] }:$src)
/*142675*/      /*Scope*/ 19, /*->142695*/
/*142676*/        OPC_CheckPredicate, 81, // Predicate_truncstore_us_vi16
/*142678*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142680*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142683*/        OPC_EmitMergeInputChains1_0,
/*142684*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDWZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSDWZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8i32] }:$src)
/*142695*/      0, /*End of Scope*/
/*142696*/    /*Scope*/ 45, /*->142742*/
/*142697*/      OPC_CheckChild1Type, MVT::v16i32,
/*142699*/      OPC_RecordChild2, // #2 = $dst
/*142700*/      OPC_Scope, 19, /*->142721*/ // 2 children in Scope
/*142702*/        OPC_CheckPredicate, 80, // Predicate_truncstore_us_vi8
/*142704*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142706*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142709*/        OPC_EmitMergeInputChains1_0,
/*142710*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDBZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSDBZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src)
/*142721*/      /*Scope*/ 19, /*->142741*/
/*142722*/        OPC_CheckPredicate, 81, // Predicate_truncstore_us_vi16
/*142724*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142726*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142729*/        OPC_EmitMergeInputChains1_0,
/*142730*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDWZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86TruncUSStore VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSDWZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src)
/*142741*/      0, /*End of Scope*/
/*142742*/    /*Scope*/ 22, /*->142765*/
/*142743*/      OPC_CheckChild1Type, MVT::v8i16,
/*142745*/      OPC_RecordChild2, // #2 = $dst
/*142746*/      OPC_CheckPredicate, 80, // Predicate_truncstore_us_vi8
/*142748*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*142750*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142753*/      OPC_EmitMergeInputChains1_0,
/*142754*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSWBZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86TruncUSStore VR128X:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi8>> - Complexity = 22
                // Dst: (VPMOVUSWBZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v8i16] }:$src)
/*142765*/    /*Scope*/ 22, /*->142788*/
/*142766*/      OPC_CheckChild1Type, MVT::v16i16,
/*142768*/      OPC_RecordChild2, // #2 = $dst
/*142769*/      OPC_CheckPredicate, 80, // Predicate_truncstore_us_vi8
/*142771*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*142773*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142776*/      OPC_EmitMergeInputChains1_0,
/*142777*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSWBZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86TruncUSStore VR256X:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi8>> - Complexity = 22
                // Dst: (VPMOVUSWBZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v16i16] }:$src)
/*142788*/    /*Scope*/ 22, /*->142811*/
/*142789*/      OPC_CheckChild1Type, MVT::v32i16,
/*142791*/      OPC_RecordChild2, // #2 = $dst
/*142792*/      OPC_CheckPredicate, 80, // Predicate_truncstore_us_vi8
/*142794*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*142796*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*142799*/      OPC_EmitMergeInputChains1_0,
/*142800*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSWBZmr), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86TruncUSStore VR512:{ *:[v32i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_truncstore_us_vi8>> - Complexity = 22
                // Dst: (VPMOVUSWBZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v32i16] }:$src)
/*142811*/    0, /*End of Scope*/
/*142812*/  /*SwitchOpcode*/ 61|128,3/*445*/, TARGET_VAL(X86ISD::VMTRUNCSTOREUS),// ->143261
/*142816*/    OPC_RecordMemRef,
/*142817*/    OPC_RecordNode, // #0 = 'X86MTruncUSStore' chained node
/*142818*/    OPC_RecordChild1, // #1 = $dst
/*142819*/    OPC_RecordChild2, // #2 = $mask
/*142820*/    OPC_Scope, 70, /*->142892*/ // 5 children in Scope
/*142822*/      OPC_CheckChild2Type, MVT::v2i1,
/*142824*/      OPC_RecordChild3, // #3 = $src
/*142825*/      OPC_CheckChild3Type, MVT::v2i64,
/*142827*/      OPC_Scope, 20, /*->142849*/ // 3 children in Scope
/*142829*/        OPC_CheckPredicate, 83, // Predicate_masked_truncstore_us_vi8
/*142831*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142833*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142836*/        OPC_EmitMergeInputChains1_0,
/*142837*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                  // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSQBZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*142849*/      /*Scope*/ 20, /*->142870*/
/*142850*/        OPC_CheckPredicate, 84, // Predicate_masked_truncstore_us_vi16
/*142852*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142854*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142857*/        OPC_EmitMergeInputChains1_0,
/*142858*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                  // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSQWZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*142870*/      /*Scope*/ 20, /*->142891*/
/*142871*/        OPC_CheckPredicate, 85, // Predicate_masked_truncstore_us_vi32
/*142873*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142875*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142878*/        OPC_EmitMergeInputChains1_0,
/*142879*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                  // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)<<P:Predicate_masked_truncstore_us_vi32>> - Complexity = 22
                  // Dst: (VPMOVUSQDZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*142891*/      0, /*End of Scope*/
/*142892*/    /*Scope*/ 120, /*->143013*/
/*142893*/      OPC_CheckChild2Type, MVT::v4i1,
/*142895*/      OPC_RecordChild3, // #3 = $src
/*142896*/      OPC_Scope, 67, /*->142965*/ // 2 children in Scope
/*142898*/        OPC_CheckChild3Type, MVT::v4i64,
/*142900*/        OPC_Scope, 20, /*->142922*/ // 3 children in Scope
/*142902*/          OPC_CheckPredicate, 83, // Predicate_masked_truncstore_us_vi8
/*142904*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142906*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142909*/          OPC_EmitMergeInputChains1_0,
/*142910*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                    // Dst: (VPMOVUSQBZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*142922*/        /*Scope*/ 20, /*->142943*/
/*142923*/          OPC_CheckPredicate, 84, // Predicate_masked_truncstore_us_vi16
/*142925*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142927*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142930*/          OPC_EmitMergeInputChains1_0,
/*142931*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                    // Dst: (VPMOVUSQWZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*142943*/        /*Scope*/ 20, /*->142964*/
/*142944*/          OPC_CheckPredicate, 85, // Predicate_masked_truncstore_us_vi32
/*142946*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142948*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142951*/          OPC_EmitMergeInputChains1_0,
/*142952*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)<<P:Predicate_masked_truncstore_us_vi32>> - Complexity = 22
                    // Dst: (VPMOVUSQDZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*142964*/        0, /*End of Scope*/
/*142965*/      /*Scope*/ 46, /*->143012*/
/*142966*/        OPC_CheckChild3Type, MVT::v4i32,
/*142968*/        OPC_Scope, 20, /*->142990*/ // 2 children in Scope
/*142970*/          OPC_CheckPredicate, 83, // Predicate_masked_truncstore_us_vi8
/*142972*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142974*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142977*/          OPC_EmitMergeInputChains1_0,
/*142978*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                    // Dst: (VPMOVUSDBZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*142990*/        /*Scope*/ 20, /*->143011*/
/*142991*/          OPC_CheckPredicate, 84, // Predicate_masked_truncstore_us_vi16
/*142993*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142995*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*142998*/          OPC_EmitMergeInputChains1_0,
/*142999*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                    // Dst: (VPMOVUSDWZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*143011*/        0, /*End of Scope*/
/*143012*/      0, /*End of Scope*/
/*143013*/    /*Scope*/ 15|128,1/*143*/, /*->143158*/
/*143015*/      OPC_CheckChild2Type, MVT::v8i1,
/*143017*/      OPC_RecordChild3, // #3 = $src
/*143018*/      OPC_Scope, 67, /*->143087*/ // 3 children in Scope
/*143020*/        OPC_CheckChild3Type, MVT::v8i64,
/*143022*/        OPC_Scope, 20, /*->143044*/ // 3 children in Scope
/*143024*/          OPC_CheckPredicate, 83, // Predicate_masked_truncstore_us_vi8
/*143026*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*143028*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*143031*/          OPC_EmitMergeInputChains1_0,
/*143032*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                    // Dst: (VPMOVUSQBZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*143044*/        /*Scope*/ 20, /*->143065*/
/*143045*/          OPC_CheckPredicate, 84, // Predicate_masked_truncstore_us_vi16
/*143047*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*143049*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*143052*/          OPC_EmitMergeInputChains1_0,
/*143053*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                    // Dst: (VPMOVUSQWZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*143065*/        /*Scope*/ 20, /*->143086*/
/*143066*/          OPC_CheckPredicate, 85, // Predicate_masked_truncstore_us_vi32
/*143068*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*143070*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*143073*/          OPC_EmitMergeInputChains1_0,
/*143074*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)<<P:Predicate_masked_truncstore_us_vi32>> - Complexity = 22
                    // Dst: (VPMOVUSQDZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*143086*/        0, /*End of Scope*/
/*143087*/      /*Scope*/ 46, /*->143134*/
/*143088*/        OPC_CheckChild3Type, MVT::v8i32,
/*143090*/        OPC_Scope, 20, /*->143112*/ // 2 children in Scope
/*143092*/          OPC_CheckPredicate, 83, // Predicate_masked_truncstore_us_vi8
/*143094*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143096*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*143099*/          OPC_EmitMergeInputChains1_0,
/*143100*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                    // Dst: (VPMOVUSDBZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*143112*/        /*Scope*/ 20, /*->143133*/
/*143113*/          OPC_CheckPredicate, 84, // Predicate_masked_truncstore_us_vi16
/*143115*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143117*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*143120*/          OPC_EmitMergeInputChains1_0,
/*143121*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                    // Dst: (VPMOVUSDWZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*143133*/        0, /*End of Scope*/
/*143134*/      /*Scope*/ 22, /*->143157*/
/*143135*/        OPC_CheckChild3Type, MVT::v8i16,
/*143137*/        OPC_CheckPredicate, 83, // Predicate_masked_truncstore_us_vi8
/*143139*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*143141*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*143144*/        OPC_EmitMergeInputChains1_0,
/*143145*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSWBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                  // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSWBZ128mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*143157*/      0, /*End of Scope*/
/*143158*/    /*Scope*/ 75, /*->143234*/
/*143159*/      OPC_CheckChild2Type, MVT::v16i1,
/*143161*/      OPC_RecordChild3, // #3 = $src
/*143162*/      OPC_Scope, 46, /*->143210*/ // 2 children in Scope
/*143164*/        OPC_CheckChild3Type, MVT::v16i32,
/*143166*/        OPC_Scope, 20, /*->143188*/ // 2 children in Scope
/*143168*/          OPC_CheckPredicate, 83, // Predicate_masked_truncstore_us_vi8
/*143170*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*143172*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*143175*/          OPC_EmitMergeInputChains1_0,
/*143176*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                    // Dst: (VPMOVUSDBZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*143188*/        /*Scope*/ 20, /*->143209*/
/*143189*/          OPC_CheckPredicate, 84, // Predicate_masked_truncstore_us_vi16
/*143191*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*143193*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*143196*/          OPC_EmitMergeInputChains1_0,
/*143197*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                    // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                    // Dst: (VPMOVUSDWZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*143209*/        0, /*End of Scope*/
/*143210*/      /*Scope*/ 22, /*->143233*/
/*143211*/        OPC_CheckChild3Type, MVT::v16i16,
/*143213*/        OPC_CheckPredicate, 83, // Predicate_masked_truncstore_us_vi8
/*143215*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*143217*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*143220*/        OPC_EmitMergeInputChains1_0,
/*143221*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSWBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                  // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSWBZ256mrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*143233*/      0, /*End of Scope*/
/*143234*/    /*Scope*/ 25, /*->143260*/
/*143235*/      OPC_CheckChild2Type, MVT::v32i1,
/*143237*/      OPC_RecordChild3, // #3 = $src
/*143238*/      OPC_CheckChild3Type, MVT::v32i16,
/*143240*/      OPC_CheckPredicate, 83, // Predicate_masked_truncstore_us_vi8
/*143242*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*143244*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/*143247*/      OPC_EmitMergeInputChains1_0,
/*143248*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSWBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (X86MTruncUSStore addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                // Dst: (VPMOVUSWBZmrk addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*143260*/    0, /*End of Scope*/
/*143261*/  /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::LINC),// ->143341
/*143264*/    OPC_RecordMemRef,
/*143265*/    OPC_RecordNode, // #0 = 'X86lock_inc' chained node
/*143266*/    OPC_RecordChild1, // #1 = $dst
/*143267*/    OPC_Scope, 17, /*->143286*/ // 4 children in Scope
/*143269*/      OPC_CheckPredicate, 86, // Predicate_X86lock_inc_8
/*143271*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/*143274*/      OPC_EmitMergeInputChains1_0,
/*143275*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC8m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86lock_inc:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86lock_inc_8>> - Complexity = 22
                // Dst: (LOCK_INC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*143286*/    /*Scope*/ 17, /*->143304*/
/*143287*/      OPC_CheckPredicate, 87, // Predicate_X86lock_inc_16
/*143289*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/*143292*/      OPC_EmitMergeInputChains1_0,
/*143293*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC16m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86lock_inc:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86lock_inc_16>> - Complexity = 22
                // Dst: (LOCK_INC16m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*143304*/    /*Scope*/ 17, /*->143322*/
/*143305*/      OPC_CheckPredicate, 88, // Predicate_X86lock_inc_32
/*143307*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/*143310*/      OPC_EmitMergeInputChains1_0,
/*143311*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC32m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86lock_inc:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86lock_inc_32>> - Complexity = 22
                // Dst: (LOCK_INC32m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*143322*/    /*Scope*/ 17, /*->143340*/
/*143323*/      OPC_CheckPredicate, 89, // Predicate_X86lock_inc_64
/*143325*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/*143328*/      OPC_EmitMergeInputChains1_0,
/*143329*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC64m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86lock_inc:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86lock_inc_64>> - Complexity = 22
                // Dst: (LOCK_INC64m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*143340*/    0, /*End of Scope*/
/*143341*/  /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::LDEC),// ->143421
/*143344*/    OPC_RecordMemRef,
/*143345*/    OPC_RecordNode, // #0 = 'X86lock_dec' chained node
/*143346*/    OPC_RecordChild1, // #1 = $dst
/*143347*/    OPC_Scope, 17, /*->143366*/ // 4 children in Scope
/*143349*/      OPC_CheckPredicate, 86, // Predicate_X86lock_dec_8
/*143351*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/*143354*/      OPC_EmitMergeInputChains1_0,
/*143355*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC8m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86lock_dec:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86lock_dec_8>> - Complexity = 22
                // Dst: (LOCK_DEC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*143366*/    /*Scope*/ 17, /*->143384*/
/*143367*/      OPC_CheckPredicate, 87, // Predicate_X86lock_dec_16
/*143369*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/*143372*/      OPC_EmitMergeInputChains1_0,
/*143373*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC16m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86lock_dec:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86lock_dec_16>> - Complexity = 22
                // Dst: (LOCK_DEC16m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*143384*/    /*Scope*/ 17, /*->143402*/
/*143385*/      OPC_CheckPredicate, 88, // Predicate_X86lock_dec_32
/*143387*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/*143390*/      OPC_EmitMergeInputChains1_0,
/*143391*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC32m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86lock_dec:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86lock_dec_32>> - Complexity = 22
                // Dst: (LOCK_DEC32m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*143402*/    /*Scope*/ 17, /*->143420*/
/*143403*/      OPC_CheckPredicate, 89, // Predicate_X86lock_dec_64
/*143405*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/*143408*/      OPC_EmitMergeInputChains1_0,
/*143409*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC64m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86lock_dec:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86lock_dec_64>> - Complexity = 22
                // Dst: (LOCK_DEC64m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*143420*/    0, /*End of Scope*/
/*143421*/  /*SwitchOpcode*/ 90, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),// ->143514
/*143424*/    OPC_RecordMemRef,
/*143425*/    OPC_RecordNode, // #0 = 'atomic_load_add' chained node
/*143426*/    OPC_RecordChild1, // #1 = $ptr
/*143427*/    OPC_RecordChild2, // #2 = $val
/*143428*/    OPC_SwitchType /*4 cases */, 19, MVT::i8,// ->143450
/*143431*/      OPC_CheckPredicate, 37, // Predicate_atomic_load_add_8
/*143433*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*143436*/      OPC_EmitMergeInputChains1_0,
/*143437*/      OPC_MorphNodeTo2, TARGET_VAL(X86::LXADD8), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*143450*/    /*SwitchType*/ 19, MVT::i16,// ->143471
/*143452*/      OPC_CheckPredicate, 38, // Predicate_atomic_load_add_16
/*143454*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*143457*/      OPC_EmitMergeInputChains1_0,
/*143458*/      OPC_MorphNodeTo2, TARGET_VAL(X86::LXADD16), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*143471*/    /*SwitchType*/ 19, MVT::i32,// ->143492
/*143473*/      OPC_CheckPredicate, 35, // Predicate_atomic_load_add_32
/*143475*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*143478*/      OPC_EmitMergeInputChains1_0,
/*143479*/      OPC_MorphNodeTo2, TARGET_VAL(X86::LXADD32), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*143492*/    /*SwitchType*/ 19, MVT::i64,// ->143513
/*143494*/      OPC_CheckPredicate, 36, // Predicate_atomic_load_add_64
/*143496*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*143499*/      OPC_EmitMergeInputChains1_0,
/*143500*/      OPC_MorphNodeTo2, TARGET_VAL(X86::LXADD64), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*143513*/    0, // EndSwitchType
/*143514*/  /*SwitchOpcode*/ 81, TARGET_VAL(ISD::ATOMIC_LOAD),// ->143598
/*143517*/    OPC_RecordMemRef,
/*143518*/    OPC_RecordNode, // #0 = 'atomic_load' chained node
/*143519*/    OPC_RecordChild1, // #1 = $src
/*143520*/    OPC_SwitchType /*4 cases */, 17, MVT::i8,// ->143540
/*143523*/      OPC_CheckPredicate, 37, // Predicate_atomic_load_8
/*143525*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*143528*/      OPC_EmitMergeInputChains1_0,
/*143529*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ACQUIRE_MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*143540*/    /*SwitchType*/ 17, MVT::i16,// ->143559
/*143542*/      OPC_CheckPredicate, 38, // Predicate_atomic_load_16
/*143544*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*143547*/      OPC_EmitMergeInputChains1_0,
/*143548*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ACQUIRE_MOV16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*143559*/    /*SwitchType*/ 17, MVT::i32,// ->143578
/*143561*/      OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/*143563*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*143566*/      OPC_EmitMergeInputChains1_0,
/*143567*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ACQUIRE_MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*143578*/    /*SwitchType*/ 17, MVT::i64,// ->143597
/*143580*/      OPC_CheckPredicate, 36, // Predicate_atomic_load_64
/*143582*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*143585*/      OPC_EmitMergeInputChains1_0,
/*143586*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ACQUIRE_MOV64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    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)
/*143597*/    0, // EndSwitchType
/*143598*/  /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::FP_TO_INT16_IN_MEM),// ->143730
/*143602*/    OPC_RecordMemRef,
/*143603*/    OPC_RecordNode, // #0 = 'X86fp_to_i16mem' chained node
/*143604*/    OPC_RecordChild1, // #1 = $src
/*143605*/    OPC_Scope, 40, /*->143647*/ // 3 children in Scope
/*143607*/      OPC_CheckChild1Type, MVT::f32,
/*143609*/      OPC_RecordChild2, // #2 = $op
/*143610*/      OPC_Scope, 18, /*->143630*/ // 2 children in Scope
/*143612*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*143614*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*143617*/        OPC_EmitMergeInputChains1_0,
/*143618*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ISTT_Fp16m32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_i16mem RFP32:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$op) - Complexity = 21
                  // Dst: (ISTT_Fp16m32:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP32:{ *:[f32] }:$src)
/*143630*/      /*Scope*/ 15, /*->143646*/
/*143631*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*143634*/        OPC_EmitMergeInputChains1_0,
/*143635*/        OPC_MorphNodeTo0, TARGET_VAL(X86::FP32_TO_INT16_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*143646*/      0, /*End of Scope*/
/*143647*/    /*Scope*/ 40, /*->143688*/
/*143648*/      OPC_CheckChild1Type, MVT::f64,
/*143650*/      OPC_RecordChild2, // #2 = $op
/*143651*/      OPC_Scope, 18, /*->143671*/ // 2 children in Scope
/*143653*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*143655*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*143658*/        OPC_EmitMergeInputChains1_0,
/*143659*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ISTT_Fp16m64), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_i16mem RFP64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$op) - Complexity = 21
                  // Dst: (ISTT_Fp16m64:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/*143671*/      /*Scope*/ 15, /*->143687*/
/*143672*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*143675*/        OPC_EmitMergeInputChains1_0,
/*143676*/        OPC_MorphNodeTo0, TARGET_VAL(X86::FP64_TO_INT16_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*143687*/      0, /*End of Scope*/
/*143688*/    /*Scope*/ 40, /*->143729*/
/*143689*/      OPC_CheckChild1Type, MVT::f80,
/*143691*/      OPC_RecordChild2, // #2 = $op
/*143692*/      OPC_Scope, 18, /*->143712*/ // 2 children in Scope
/*143694*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*143696*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*143699*/        OPC_EmitMergeInputChains1_0,
/*143700*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ISTT_Fp16m80), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_i16mem RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$op) - Complexity = 21
                  // Dst: (ISTT_Fp16m80:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*143712*/      /*Scope*/ 15, /*->143728*/
/*143713*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*143716*/        OPC_EmitMergeInputChains1_0,
/*143717*/        OPC_MorphNodeTo0, TARGET_VAL(X86::FP80_TO_INT16_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*143728*/      0, /*End of Scope*/
/*143729*/    0, /*End of Scope*/
/*143730*/  /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::FP_TO_INT32_IN_MEM),// ->143862
/*143734*/    OPC_RecordMemRef,
/*143735*/    OPC_RecordNode, // #0 = 'X86fp_to_i32mem' chained node
/*143736*/    OPC_RecordChild1, // #1 = $src
/*143737*/    OPC_Scope, 40, /*->143779*/ // 3 children in Scope
/*143739*/      OPC_CheckChild1Type, MVT::f32,
/*143741*/      OPC_RecordChild2, // #2 = $op
/*143742*/      OPC_Scope, 18, /*->143762*/ // 2 children in Scope
/*143744*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*143746*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*143749*/        OPC_EmitMergeInputChains1_0,
/*143750*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ISTT_Fp32m32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_i32mem RFP32:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$op) - Complexity = 21
                  // Dst: (ISTT_Fp32m32:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP32:{ *:[f32] }:$src)
/*143762*/      /*Scope*/ 15, /*->143778*/
/*143763*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*143766*/        OPC_EmitMergeInputChains1_0,
/*143767*/        OPC_MorphNodeTo0, TARGET_VAL(X86::FP32_TO_INT32_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*143778*/      0, /*End of Scope*/
/*143779*/    /*Scope*/ 40, /*->143820*/
/*143780*/      OPC_CheckChild1Type, MVT::f64,
/*143782*/      OPC_RecordChild2, // #2 = $op
/*143783*/      OPC_Scope, 18, /*->143803*/ // 2 children in Scope
/*143785*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*143787*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*143790*/        OPC_EmitMergeInputChains1_0,
/*143791*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ISTT_Fp32m64), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_i32mem RFP64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$op) - Complexity = 21
                  // Dst: (ISTT_Fp32m64:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/*143803*/      /*Scope*/ 15, /*->143819*/
/*143804*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*143807*/        OPC_EmitMergeInputChains1_0,
/*143808*/        OPC_MorphNodeTo0, TARGET_VAL(X86::FP64_TO_INT32_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*143819*/      0, /*End of Scope*/
/*143820*/    /*Scope*/ 40, /*->143861*/
/*143821*/      OPC_CheckChild1Type, MVT::f80,
/*143823*/      OPC_RecordChild2, // #2 = $op
/*143824*/      OPC_Scope, 18, /*->143844*/ // 2 children in Scope
/*143826*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*143828*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*143831*/        OPC_EmitMergeInputChains1_0,
/*143832*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ISTT_Fp32m80), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_i32mem RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$op) - Complexity = 21
                  // Dst: (ISTT_Fp32m80:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*143844*/      /*Scope*/ 15, /*->143860*/
/*143845*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*143848*/        OPC_EmitMergeInputChains1_0,
/*143849*/        OPC_MorphNodeTo0, TARGET_VAL(X86::FP80_TO_INT32_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*143860*/      0, /*End of Scope*/
/*143861*/    0, /*End of Scope*/
/*143862*/  /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::FP_TO_INT64_IN_MEM),// ->143994
/*143866*/    OPC_RecordMemRef,
/*143867*/    OPC_RecordNode, // #0 = 'X86fp_to_i64mem' chained node
/*143868*/    OPC_RecordChild1, // #1 = $src
/*143869*/    OPC_Scope, 40, /*->143911*/ // 3 children in Scope
/*143871*/      OPC_CheckChild1Type, MVT::f32,
/*143873*/      OPC_RecordChild2, // #2 = $op
/*143874*/      OPC_Scope, 18, /*->143894*/ // 2 children in Scope
/*143876*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*143878*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*143881*/        OPC_EmitMergeInputChains1_0,
/*143882*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ISTT_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_i64mem RFP32:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$op) - Complexity = 21
                  // Dst: (ISTT_Fp64m32:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP32:{ *:[f32] }:$src)
/*143894*/      /*Scope*/ 15, /*->143910*/
/*143895*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*143898*/        OPC_EmitMergeInputChains1_0,
/*143899*/        OPC_MorphNodeTo0, TARGET_VAL(X86::FP32_TO_INT64_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*143910*/      0, /*End of Scope*/
/*143911*/    /*Scope*/ 40, /*->143952*/
/*143912*/      OPC_CheckChild1Type, MVT::f64,
/*143914*/      OPC_RecordChild2, // #2 = $op
/*143915*/      OPC_Scope, 18, /*->143935*/ // 2 children in Scope
/*143917*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*143919*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*143922*/        OPC_EmitMergeInputChains1_0,
/*143923*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ISTT_Fp64m64), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_i64mem RFP64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$op) - Complexity = 21
                  // Dst: (ISTT_Fp64m64:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/*143935*/      /*Scope*/ 15, /*->143951*/
/*143936*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*143939*/        OPC_EmitMergeInputChains1_0,
/*143940*/        OPC_MorphNodeTo0, TARGET_VAL(X86::FP64_TO_INT64_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*143951*/      0, /*End of Scope*/
/*143952*/    /*Scope*/ 40, /*->143993*/
/*143953*/      OPC_CheckChild1Type, MVT::f80,
/*143955*/      OPC_RecordChild2, // #2 = $op
/*143956*/      OPC_Scope, 18, /*->143976*/ // 2 children in Scope
/*143958*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*143960*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*143963*/        OPC_EmitMergeInputChains1_0,
/*143964*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ISTT_Fp64m80), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_i64mem RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$op) - Complexity = 21
                  // Dst: (ISTT_Fp64m80:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*143976*/      /*Scope*/ 15, /*->143992*/
/*143977*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*143980*/        OPC_EmitMergeInputChains1_0,
/*143981*/        OPC_MorphNodeTo0, TARGET_VAL(X86::FP80_TO_INT64_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*143992*/      0, /*End of Scope*/
/*143993*/    0, /*End of Scope*/
/*143994*/  /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::FST),// ->144142
/*143998*/    OPC_RecordMemRef,
/*143999*/    OPC_RecordNode, // #0 = 'X86fst' chained node
/*144000*/    OPC_CaptureGlueInput,
/*144001*/    OPC_RecordChild1, // #1 = $src
/*144002*/    OPC_Scope, 23, /*->144027*/ // 3 children in Scope
/*144004*/      OPC_CheckChild1Type, MVT::f32,
/*144006*/      OPC_RecordChild2, // #2 = $op
/*144007*/      OPC_MoveChild3,
/*144008*/      OPC_CheckValueType, MVT::f32,
/*144010*/      OPC_MoveParent,
/*144011*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*144014*/      OPC_EmitMergeInputChains1_0,
/*144015*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ST_Fp32m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fst RFP32:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$op, f32:{ *:[Other] }) - Complexity = 21
                // Dst: (ST_Fp32m:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP32:{ *:[f32] }:$src)
/*144027*/    /*Scope*/ 46, /*->144074*/
/*144028*/      OPC_CheckChild1Type, MVT::f64,
/*144030*/      OPC_RecordChild2, // #2 = $op
/*144031*/      OPC_MoveChild3,
/*144032*/      OPC_Scope, 19, /*->144053*/ // 2 children in Scope
/*144034*/        OPC_CheckValueType, MVT::f32,
/*144036*/        OPC_MoveParent,
/*144037*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*144040*/        OPC_EmitMergeInputChains1_0,
/*144041*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ST_Fp64m32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fst RFP64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$op, f32:{ *:[Other] }) - Complexity = 21
                  // Dst: (ST_Fp64m32:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/*144053*/      /*Scope*/ 19, /*->144073*/
/*144054*/        OPC_CheckValueType, MVT::f64,
/*144056*/        OPC_MoveParent,
/*144057*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*144060*/        OPC_EmitMergeInputChains1_0,
/*144061*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ST_Fp64m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fst RFP64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$op, f64:{ *:[Other] }) - Complexity = 21
                  // Dst: (ST_Fp64m:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/*144073*/      0, /*End of Scope*/
/*144074*/    /*Scope*/ 66, /*->144141*/
/*144075*/      OPC_CheckChild1Type, MVT::f80,
/*144077*/      OPC_RecordChild2, // #2 = $op
/*144078*/      OPC_MoveChild3,
/*144079*/      OPC_Scope, 19, /*->144100*/ // 3 children in Scope
/*144081*/        OPC_CheckValueType, MVT::f32,
/*144083*/        OPC_MoveParent,
/*144084*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*144087*/        OPC_EmitMergeInputChains1_0,
/*144088*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ST_Fp80m32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fst RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$op, f32:{ *:[Other] }) - Complexity = 21
                  // Dst: (ST_Fp80m32:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*144100*/      /*Scope*/ 19, /*->144120*/
/*144101*/        OPC_CheckValueType, MVT::f64,
/*144103*/        OPC_MoveParent,
/*144104*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*144107*/        OPC_EmitMergeInputChains1_0,
/*144108*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ST_Fp80m64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fst RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$op, f64:{ *:[Other] }) - Complexity = 21
                  // Dst: (ST_Fp80m64:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*144120*/      /*Scope*/ 19, /*->144140*/
/*144121*/        OPC_CheckValueType, MVT::f80,
/*144123*/        OPC_MoveParent,
/*144124*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*144127*/        OPC_EmitMergeInputChains1_0,
/*144128*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ST_FpP80m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fst RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$op, f80:{ *:[Other] }) - Complexity = 21
                  // Dst: (ST_FpP80m:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*144140*/      0, /*End of Scope*/
/*144141*/    0, /*End of Scope*/
/*144142*/  /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FNSTCW16m),// ->144163
/*144145*/    OPC_RecordMemRef,
/*144146*/    OPC_RecordNode, // #0 = 'X86fp_cwd_get16' chained node
/*144147*/    OPC_RecordChild1, // #1 = $dst
/*144148*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/*144151*/    OPC_EmitMergeInputChains1_0,
/*144152*/    OPC_MorphNodeTo1, TARGET_VAL(X86::FNSTCW16m), 0|OPFL_Chain|OPFL_MemRefs,
                  MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86fp_cwd_get16 addr:{ *:[iPTR] }:$dst) - Complexity = 21
              // Dst: (FNSTCW16m:{ *:[i16] } addr:{ *:[iPTR] }:$dst)
/*144163*/  /*SwitchOpcode*/ 79|128,1/*207*/, TARGET_VAL(X86ISD::UCOMI),// ->144374
/*144167*/    OPC_RecordChild0, // #0 = $src1
/*144168*/    OPC_Scope, 101, /*->144271*/ // 2 children in Scope
/*144170*/      OPC_CheckChild0Type, MVT::v4f32,
/*144172*/      OPC_RecordChild1, // #1 = $src2
/*144173*/      OPC_Scope, 20, /*->144195*/ // 6 children in Scope
/*144175*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144177*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144180*/        OPC_EmitMergeInputChains, 1, 7, 
/*144183*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86ucomi:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VUCOMISSrm_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*144195*/      /*Scope*/ 20, /*->144216*/
/*144196*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*144198*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144201*/        OPC_EmitMergeInputChains, 1, 7, 
/*144204*/        OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86ucomi:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (UCOMISSrm_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*144216*/      /*Scope*/ 20, /*->144237*/
/*144217*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144219*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144222*/        OPC_EmitMergeInputChains, 1, 7, 
/*144225*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86ucomi:{ *:[i32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VUCOMISSZrm_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*144237*/      /*Scope*/ 10, /*->144248*/
/*144238*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144240*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ucomi:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VUCOMISSrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*144248*/      /*Scope*/ 10, /*->144259*/
/*144249*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*144251*/        OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISSrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ucomi:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (UCOMISSrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*144259*/      /*Scope*/ 10, /*->144270*/
/*144260*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144262*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSZrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ucomi:{ *:[i32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VUCOMISSZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*144270*/      0, /*End of Scope*/
/*144271*/    /*Scope*/ 101, /*->144373*/
/*144272*/      OPC_CheckChild0Type, MVT::v2f64,
/*144274*/      OPC_RecordChild1, // #1 = $src2
/*144275*/      OPC_Scope, 20, /*->144297*/ // 6 children in Scope
/*144277*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144279*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144282*/        OPC_EmitMergeInputChains, 1, 7, 
/*144285*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86ucomi:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VUCOMISDrm_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*144297*/      /*Scope*/ 20, /*->144318*/
/*144298*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*144300*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144303*/        OPC_EmitMergeInputChains, 1, 7, 
/*144306*/        OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86ucomi:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (UCOMISDrm_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*144318*/      /*Scope*/ 20, /*->144339*/
/*144319*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144321*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144324*/        OPC_EmitMergeInputChains, 1, 7, 
/*144327*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86ucomi:{ *:[i32] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VUCOMISDZrm_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*144339*/      /*Scope*/ 10, /*->144350*/
/*144340*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144342*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ucomi:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VUCOMISDrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*144350*/      /*Scope*/ 10, /*->144361*/
/*144351*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*144353*/        OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISDrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ucomi:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (UCOMISDrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*144361*/      /*Scope*/ 10, /*->144372*/
/*144362*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144364*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDZrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ucomi:{ *:[i32] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VUCOMISDZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*144372*/      0, /*End of Scope*/
/*144373*/    0, /*End of Scope*/
/*144374*/  /*SwitchOpcode*/ 79|128,1/*207*/, TARGET_VAL(X86ISD::COMI),// ->144585
/*144378*/    OPC_RecordChild0, // #0 = $src1
/*144379*/    OPC_Scope, 101, /*->144482*/ // 2 children in Scope
/*144381*/      OPC_CheckChild0Type, MVT::v4f32,
/*144383*/      OPC_RecordChild1, // #1 = $src2
/*144384*/      OPC_Scope, 20, /*->144406*/ // 6 children in Scope
/*144386*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144388*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144391*/        OPC_EmitMergeInputChains, 1, 7, 
/*144394*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86comi:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VCOMISSrm_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*144406*/      /*Scope*/ 20, /*->144427*/
/*144407*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*144409*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144412*/        OPC_EmitMergeInputChains, 1, 7, 
/*144415*/        OPC_MorphNodeTo1, TARGET_VAL(X86::COMISSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86comi:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (COMISSrm_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*144427*/      /*Scope*/ 20, /*->144448*/
/*144428*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144430*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144433*/        OPC_EmitMergeInputChains, 1, 7, 
/*144436*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86comi:{ *:[i32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VCOMISSZrm_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*144448*/      /*Scope*/ 10, /*->144459*/
/*144449*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144451*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISSrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86comi:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VCOMISSrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*144459*/      /*Scope*/ 10, /*->144470*/
/*144460*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*144462*/        OPC_MorphNodeTo1, TARGET_VAL(X86::COMISSrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86comi:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (COMISSrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*144470*/      /*Scope*/ 10, /*->144481*/
/*144471*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144473*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISSZrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86comi:{ *:[i32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VCOMISSZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*144481*/      0, /*End of Scope*/
/*144482*/    /*Scope*/ 101, /*->144584*/
/*144483*/      OPC_CheckChild0Type, MVT::v2f64,
/*144485*/      OPC_RecordChild1, // #1 = $src2
/*144486*/      OPC_Scope, 20, /*->144508*/ // 6 children in Scope
/*144488*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144490*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144493*/        OPC_EmitMergeInputChains, 1, 7, 
/*144496*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86comi:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VCOMISDrm_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*144508*/      /*Scope*/ 20, /*->144529*/
/*144509*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*144511*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144514*/        OPC_EmitMergeInputChains, 1, 7, 
/*144517*/        OPC_MorphNodeTo1, TARGET_VAL(X86::COMISDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86comi:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (COMISDrm_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*144529*/      /*Scope*/ 20, /*->144550*/
/*144530*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144532*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*144535*/        OPC_EmitMergeInputChains, 1, 7, 
/*144538*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86comi:{ *:[i32] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VCOMISDZrm_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*144550*/      /*Scope*/ 10, /*->144561*/
/*144551*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144553*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISDrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86comi:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VCOMISDrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*144561*/      /*Scope*/ 10, /*->144572*/
/*144562*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*144564*/        OPC_MorphNodeTo1, TARGET_VAL(X86::COMISDrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86comi:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (COMISDrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*144572*/      /*Scope*/ 10, /*->144583*/
/*144573*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144575*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISDZrr_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86comi:{ *:[i32] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VCOMISDZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*144583*/      0, /*End of Scope*/
/*144584*/    0, /*End of Scope*/
/*144585*/  /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::EH_SJLJ_SETJMP),// ->144630
/*144588*/    OPC_RecordNode, // #0 = 'X86eh_sjlj_setjmp' chained node
/*144589*/    OPC_RecordChild1, // #1 = $buf
/*144590*/    OPC_CheckType, MVT::i32,
/*144592*/    OPC_Scope, 17, /*->144611*/ // 2 children in Scope
/*144594*/      OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*144596*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$buf #2 #3 #4 #5 #6
/*144599*/      OPC_EmitMergeInputChains1_0,
/*144600*/      OPC_MorphNodeTo1, TARGET_VAL(X86::EH_SjLj_SetJmp32), 0|OPFL_Chain,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86eh_sjlj_setjmp:{ *:[i32] } addr:{ *:[iPTR] }:$buf) - Complexity = 21
                // Dst: (EH_SjLj_SetJmp32:{ *:[i32] } addr:{ *:[iPTR] }:$buf)
/*144611*/    /*Scope*/ 17, /*->144629*/
/*144612*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*144614*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$buf #2 #3 #4 #5 #6
/*144617*/      OPC_EmitMergeInputChains1_0,
/*144618*/      OPC_MorphNodeTo1, TARGET_VAL(X86::EH_SjLj_SetJmp64), 0|OPFL_Chain,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86eh_sjlj_setjmp:{ *:[i32] } addr:{ *:[iPTR] }:$buf) - Complexity = 21
                // Dst: (EH_SjLj_SetJmp64:{ *:[i32] } addr:{ *:[iPTR] }:$buf)
/*144629*/    0, /*End of Scope*/
/*144630*/  /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::EH_SJLJ_LONGJMP),// ->144671
/*144633*/    OPC_RecordNode, // #0 = 'X86eh_sjlj_longjmp' chained node
/*144634*/    OPC_RecordChild1, // #1 = $buf
/*144635*/    OPC_Scope, 16, /*->144653*/ // 2 children in Scope
/*144637*/      OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*144639*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$buf #2 #3 #4 #5 #6
/*144642*/      OPC_EmitMergeInputChains1_0,
/*144643*/      OPC_MorphNodeTo0, TARGET_VAL(X86::EH_SjLj_LongJmp32), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86eh_sjlj_longjmp addr:{ *:[iPTR] }:$buf) - Complexity = 21
                // Dst: (EH_SjLj_LongJmp32 addr:{ *:[iPTR] }:$buf)
/*144653*/    /*Scope*/ 16, /*->144670*/
/*144654*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*144656*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$buf #2 #3 #4 #5 #6
/*144659*/      OPC_EmitMergeInputChains1_0,
/*144660*/      OPC_MorphNodeTo0, TARGET_VAL(X86::EH_SjLj_LongJmp64), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86eh_sjlj_longjmp addr:{ *:[iPTR] }:$buf) - Complexity = 21
                // Dst: (EH_SjLj_LongJmp64 addr:{ *:[iPTR] }:$buf)
/*144670*/    0, /*End of Scope*/
/*144671*/  /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::TLSADDR),// ->144719
/*144674*/    OPC_RecordNode, // #0 = 'X86tlsaddr' chained node
/*144675*/    OPC_CaptureGlueInput,
/*144676*/    OPC_RecordChild1, // #1 = $sym
/*144677*/    OPC_Scope, 19, /*->144698*/ // 2 children in Scope
/*144679*/      OPC_CheckChild1Type, MVT::i32,
/*144681*/      OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*144683*/      OPC_CheckComplexPat, /*CP*/8, /*#*/1, // selectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*144686*/      OPC_EmitMergeInputChains1_0,
/*144687*/      OPC_MorphNodeTo1, TARGET_VAL(X86::TLS_addr32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86tlsaddr tls32addr:{ *:[i32] }:$sym) - Complexity = 21
                // Dst: (TLS_addr32:{ *:[i32] } tls32addr:{ *:[i32] }:$sym)
/*144698*/    /*Scope*/ 19, /*->144718*/
/*144699*/      OPC_CheckChild1Type, MVT::i64,
/*144701*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*144703*/      OPC_CheckComplexPat, /*CP*/9, /*#*/1, // selectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*144706*/      OPC_EmitMergeInputChains1_0,
/*144707*/      OPC_MorphNodeTo1, TARGET_VAL(X86::TLS_addr64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86tlsaddr tls64addr:{ *:[i64] }:$sym) - Complexity = 21
                // Dst: (TLS_addr64:{ *:[i64] } tls64addr:{ *:[i64] }:$sym)
/*144718*/    0, /*End of Scope*/
/*144719*/  /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::TLSBASEADDR),// ->144767
/*144722*/    OPC_RecordNode, // #0 = 'X86tlsbaseaddr' chained node
/*144723*/    OPC_CaptureGlueInput,
/*144724*/    OPC_RecordChild1, // #1 = $sym
/*144725*/    OPC_Scope, 19, /*->144746*/ // 2 children in Scope
/*144727*/      OPC_CheckChild1Type, MVT::i32,
/*144729*/      OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*144731*/      OPC_CheckComplexPat, /*CP*/10, /*#*/1, // selectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*144734*/      OPC_EmitMergeInputChains1_0,
/*144735*/      OPC_MorphNodeTo1, TARGET_VAL(X86::TLS_base_addr32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86tlsbaseaddr tls32baseaddr:{ *:[i32] }:$sym) - Complexity = 21
                // Dst: (TLS_base_addr32:{ *:[i32] } tls32baseaddr:{ *:[i32] }:$sym)
/*144746*/    /*Scope*/ 19, /*->144766*/
/*144747*/      OPC_CheckChild1Type, MVT::i64,
/*144749*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*144751*/      OPC_CheckComplexPat, /*CP*/11, /*#*/1, // selectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*144754*/      OPC_EmitMergeInputChains1_0,
/*144755*/      OPC_MorphNodeTo1, TARGET_VAL(X86::TLS_base_addr64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86tlsbaseaddr tls64baseaddr:{ *:[i64] }:$sym) - Complexity = 21
                // Dst: (TLS_base_addr64:{ *:[i64] } tls64baseaddr:{ *:[i64] }:$sym)
/*144766*/    0, /*End of Scope*/
/*144767*/  /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::TLSCALL),// ->144813
/*144770*/    OPC_RecordNode, // #0 = 'X86TLSCall' chained node
/*144771*/    OPC_CaptureGlueInput,
/*144772*/    OPC_RecordChild1, // #1 = $sym
/*144773*/    OPC_CheckChild1Type, MVT::iPTR,
/*144775*/    OPC_Scope, 17, /*->144794*/ // 2 children in Scope
/*144777*/      OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*144779*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$sym #2 #3 #4 #5 #6
/*144782*/      OPC_EmitMergeInputChains1_0,
/*144783*/      OPC_MorphNodeTo1, TARGET_VAL(X86::TLSCall_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86TLSCall addr:{ *:[iPTR] }:$sym) - Complexity = 21
                // Dst: (TLSCall_32:{ *:[i32] } addr:{ *:[iPTR] }:$sym)
/*144794*/    /*Scope*/ 17, /*->144812*/
/*144795*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*144797*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$sym #2 #3 #4 #5 #6
/*144800*/      OPC_EmitMergeInputChains1_0,
/*144801*/      OPC_MorphNodeTo1, TARGET_VAL(X86::TLSCall_64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86TLSCall addr:{ *:[iPTR] }:$sym) - Complexity = 21
                // Dst: (TLSCall_64:{ *:[i64] } addr:{ *:[iPTR] }:$sym)
/*144812*/    0, /*End of Scope*/
/*144813*/  /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::LCMPXCHG8_DAG),// ->144835
/*144816*/    OPC_RecordMemRef,
/*144817*/    OPC_RecordNode, // #0 = 'X86cas8' chained node
/*144818*/    OPC_CaptureGlueInput,
/*144819*/    OPC_RecordChild1, // #1 = $ptr
/*144820*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #2 #3 #4 #5 #6
/*144823*/    OPC_EmitMergeInputChains1_0,
/*144824*/    OPC_MorphNodeTo1, TARGET_VAL(X86::LCMPXCHG8B), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                  MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86cas8 addr:{ *:[iPTR] }:$ptr) - Complexity = 21
              // Dst: (LCMPXCHG8B:{ *:[i32] } addr:{ *:[iPTR] }:$ptr)
/*144835*/  /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::LCMPXCHG8_SAVE_EBX_DAG),// ->144862
/*144838*/    OPC_RecordMemRef,
/*144839*/    OPC_RecordNode, // #0 = 'X86cas8save_ebx' chained node
/*144840*/    OPC_CaptureGlueInput,
/*144841*/    OPC_RecordChild1, // #1 = $ptr
/*144842*/    OPC_RecordChild2, // #2 = $ebx_input
/*144843*/    OPC_RecordChild3, // #3 = $ebx_save
/*144844*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*144847*/    OPC_EmitMergeInputChains1_0,
/*144848*/    OPC_MorphNodeTo2, TARGET_VAL(X86::LCMPXCHG8B_SAVE_EBX), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                  MVT::i32, MVT::i32, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
              // Src: (X86cas8save_ebx:{ *:[i32] } addr:{ *:[iPTR] }:$ptr, GR32:{ *:[i32] }:$ebx_input, GR32:{ *:[i32] }:$ebx_save) - Complexity = 21
              // Dst: (LCMPXCHG8B_SAVE_EBX:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$ptr, GR32:{ *:[i32] }:$ebx_input, GR32:{ *:[i32] }:$ebx_save)
/*144862*/  /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::LCMPXCHG16_DAG),// ->144886
/*144865*/    OPC_RecordMemRef,
/*144866*/    OPC_RecordNode, // #0 = 'X86cas16' chained node
/*144867*/    OPC_CaptureGlueInput,
/*144868*/    OPC_RecordChild1, // #1 = $ptr
/*144869*/    OPC_CheckPatternPredicate, 150, // (Subtarget->hasCmpxchg16b())
/*144871*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #2 #3 #4 #5 #6
/*144874*/    OPC_EmitMergeInputChains1_0,
/*144875*/    OPC_MorphNodeTo1, TARGET_VAL(X86::LCMPXCHG16B), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                  MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86cas16 addr:{ *:[iPTR] }:$ptr) - Complexity = 21
              // Dst: (LCMPXCHG16B:{ *:[i64] } addr:{ *:[iPTR] }:$ptr)
/*144886*/  /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::LCMPXCHG16_SAVE_RBX_DAG),// ->144915
/*144889*/    OPC_RecordMemRef,
/*144890*/    OPC_RecordNode, // #0 = 'X86cas16save_rbx' chained node
/*144891*/    OPC_CaptureGlueInput,
/*144892*/    OPC_RecordChild1, // #1 = $ptr
/*144893*/    OPC_RecordChild2, // #2 = $rbx_input
/*144894*/    OPC_RecordChild3, // #3 = $rbx_save
/*144895*/    OPC_CheckPatternPredicate, 150, // (Subtarget->hasCmpxchg16b())
/*144897*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*144900*/    OPC_EmitMergeInputChains1_0,
/*144901*/    OPC_MorphNodeTo2, TARGET_VAL(X86::LCMPXCHG16B_SAVE_RBX), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                  MVT::i64, MVT::i64, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
              // Src: (X86cas16save_rbx:{ *:[i64] } addr:{ *:[iPTR] }:$ptr, GR64:{ *:[i64] }:$rbx_input, GR64:{ *:[i64] }:$rbx_save) - Complexity = 21
              // Dst: (LCMPXCHG16B_SAVE_RBX:{ *:[i64] }:{ *:[i64] } addr:{ *:[iPTR] }:$ptr, GR64:{ *:[i64] }:$rbx_input, GR64:{ *:[i64] }:$rbx_save)
/*144915*/  /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::MUL_IMM),// ->144975
/*144918*/    OPC_RecordNode, // #0 = $src
/*144919*/    OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->144958
/*144922*/      OPC_Scope, 16, /*->144940*/ // 2 children in Scope
/*144924*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*144926*/        OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*144929*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LEA32r), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:{ *:[i32] }:$src - Complexity = 18
                  // Dst: (LEA32r:{ *:[i32] } lea32addr:{ *:[i32] }:$src)
/*144940*/      /*Scope*/ 16, /*->144957*/
/*144941*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*144943*/        OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/*144946*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64_32r), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea64_32addr:{ *:[i32] }:$src - Complexity = 18
                  // Dst: (LEA64_32r:{ *:[i32] } lea64_32addr:{ *:[i32] }:$src)
/*144957*/      0, /*End of Scope*/
/*144958*/    /*SwitchType*/ 14, MVT::i64,// ->144974
/*144960*/      OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*144963*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64r), 0,
                    MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea64addr:{ *:[i64] }:$src - Complexity = 18
                // Dst: (LEA64r:{ *:[i64] } lea64addr:{ *:[i64] }:$src)
/*144974*/    0, // EndSwitchType
/*144975*/  /*SwitchOpcode*/ 57, TARGET_VAL(ISD::FrameIndex),// ->145035
/*144978*/    OPC_RecordNode, // #0 = $src
/*144979*/    OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->145018
/*144982*/      OPC_Scope, 16, /*->145000*/ // 2 children in Scope
/*144984*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*144986*/        OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*144989*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LEA32r), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:{ *:[i32] }:$src - Complexity = 18
                  // Dst: (LEA32r:{ *:[i32] } lea32addr:{ *:[i32] }:$src)
/*145000*/      /*Scope*/ 16, /*->145017*/
/*145001*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*145003*/        OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/*145006*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64_32r), 0,
                      MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea64_32addr:{ *:[i32] }:$src - Complexity = 18
                  // Dst: (LEA64_32r:{ *:[i32] } lea64_32addr:{ *:[i32] }:$src)
/*145017*/      0, /*End of Scope*/
/*145018*/    /*SwitchType*/ 14, MVT::i64,// ->145034
/*145020*/      OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*145023*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64r), 0,
                    MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea64addr:{ *:[i64] }:$src - Complexity = 18
                // Dst: (LEA64r:{ *:[i64] } lea64addr:{ *:[i64] }:$src)
/*145034*/    0, // EndSwitchType
/*145035*/  /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::WrapperRIP),// ->145075
/*145038*/    OPC_RecordNode, // #0 = $src
/*145039*/    OPC_SwitchType /*2 cases */, 16, MVT::i32,// ->145058
/*145042*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*145044*/      OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/*145047*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64_32r), 0,
                    MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea64_32addr:{ *:[i32] }:$src - Complexity = 18
                // Dst: (LEA64_32r:{ *:[i32] } lea64_32addr:{ *:[i32] }:$src)
/*145058*/    /*SwitchType*/ 14, MVT::i64,// ->145074
/*145060*/      OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*145063*/      OPC_MorphNodeTo1, TARGET_VAL(X86::LEA64r), 0,
                    MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea64addr:{ *:[i64] }:$src - Complexity = 18
                // Dst: (LEA64r:{ *:[i64] } lea64addr:{ *:[i64] }:$src)
/*145074*/    0, // EndSwitchType
/*145075*/  /*SwitchOpcode*/ 16|128,4/*528*/, TARGET_VAL(ISD::TRUNCATE),// ->145607
/*145079*/    OPC_Scope, 14|128,1/*142*/, /*->145224*/ // 2 children in Scope
/*145082*/      OPC_MoveChild0,
/*145083*/      OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(ISD::SRL),// ->145168
/*145087*/        OPC_Scope, 32, /*->145121*/ // 2 children in Scope
/*145089*/          OPC_MoveChild0,
/*145090*/          OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/*145093*/          OPC_RecordChild0, // #0 = $src
/*145094*/          OPC_CheckChild0Type, MVT::i16,
/*145096*/          OPC_MoveParent,
/*145097*/          OPC_CheckChild1Integer, 8, 
/*145099*/          OPC_CheckChild1Type, MVT::i8,
/*145101*/          OPC_CheckPredicate, 17, // Predicate_srl_su
/*145103*/          OPC_CheckType, MVT::i32,
/*145105*/          OPC_MoveParent,
/*145106*/          OPC_CheckType, MVT::i8,
/*145108*/          OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*145110*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*145113*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i8, 2/*#Ops*/, 0, 1, 
                    // Src: (trunc:{ *:[i8] } (srl:{ *:[i32] } (anyext:{ *:[i32] } GR16:{ *:[i16] }:$src), 8:{ *:[i8] })<<P:Predicate_srl_su>>) - Complexity = 15
                    // Dst: (EXTRACT_SUBREG:{ *:[i8] } GR16:{ *:[i16] }:$src, sub_8bit_hi:{ *:[i32] })
/*145121*/        /*Scope*/ 45, /*->145167*/
/*145122*/          OPC_RecordChild0, // #0 = $src
/*145123*/          OPC_CheckChild1Integer, 8, 
/*145125*/          OPC_CheckChild1Type, MVT::i8,
/*145127*/          OPC_CheckPredicate, 17, // Predicate_srl_su
/*145129*/          OPC_SwitchType /*2 cases */, 16, MVT::i16,// ->145148
/*145132*/            OPC_MoveParent,
/*145133*/            OPC_CheckType, MVT::i8,
/*145135*/            OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*145137*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*145140*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i8, 2/*#Ops*/, 0, 1, 
                      // Src: (trunc:{ *:[i8] } (srl:{ *:[i16] } GR16:{ *:[i16] }:$src, 8:{ *:[i8] })<<P:Predicate_srl_su>>) - Complexity = 12
                      // Dst: (EXTRACT_SUBREG:{ *:[i8] } GR16:{ *:[i16] }:$src, sub_8bit_hi:{ *:[i32] })
/*145148*/          /*SwitchType*/ 16, MVT::i32,// ->145166
/*145150*/            OPC_MoveParent,
/*145151*/            OPC_CheckType, MVT::i8,
/*145153*/            OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*145155*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*145158*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i8, 2/*#Ops*/, 0, 1, 
                      // Src: (trunc:{ *:[i8] } (srl:{ *:[i32] } GR32:{ *:[i32] }:$src, 8:{ *:[i8] })<<P:Predicate_srl_su>>) - Complexity = 12
                      // Dst: (EXTRACT_SUBREG:{ *:[i8] } GR32:{ *:[i32] }:$src, sub_8bit_hi:{ *:[i32] })
/*145166*/          0, // EndSwitchType
/*145167*/        0, /*End of Scope*/
/*145168*/      /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::CMP),// ->145223
/*145171*/        OPC_RecordChild0, // #0 = $lhs
/*145172*/        OPC_Scope, 16, /*->145190*/ // 3 children in Scope
/*145174*/          OPC_CheckChild0Type, MVT::f32,
/*145176*/          OPC_RecordChild1, // #1 = $rhs
/*145177*/          OPC_MoveParent,
/*145178*/          OPC_CheckType, MVT::i16,
/*145180*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*145182*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_Fpr32), 0,
                        MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (trunc:{ *:[i16] } (X86cmp:{ *:[i32] } RFP32:{ *:[f32] }:$lhs, RFP32:{ *:[f32] }:$rhs)) - Complexity = 6
                    // Dst: (UCOM_Fpr32:{ *:[i16] } RFP32:{ *:[f32] }:$lhs, RFP32:{ *:[f32] }:$rhs)
/*145190*/        /*Scope*/ 16, /*->145207*/
/*145191*/          OPC_CheckChild0Type, MVT::f64,
/*145193*/          OPC_RecordChild1, // #1 = $rhs
/*145194*/          OPC_MoveParent,
/*145195*/          OPC_CheckType, MVT::i16,
/*145197*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*145199*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_Fpr64), 0,
                        MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (trunc:{ *:[i16] } (X86cmp:{ *:[i32] } RFP64:{ *:[f64] }:$lhs, RFP64:{ *:[f64] }:$rhs)) - Complexity = 6
                    // Dst: (UCOM_Fpr64:{ *:[i16] } RFP64:{ *:[f64] }:$lhs, RFP64:{ *:[f64] }:$rhs)
/*145207*/        /*Scope*/ 14, /*->145222*/
/*145208*/          OPC_CheckChild0Type, MVT::f80,
/*145210*/          OPC_RecordChild1, // #1 = $rhs
/*145211*/          OPC_MoveParent,
/*145212*/          OPC_CheckType, MVT::i16,
/*145214*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_Fpr80), 0,
                        MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (trunc:{ *:[i16] } (X86cmp:{ *:[i32] } RFP80:{ *:[f80] }:$lhs, RFP80:{ *:[f80] }:$rhs)) - Complexity = 6
                    // Dst: (UCOM_Fpr80:{ *:[i16] } RFP80:{ *:[f80] }:$lhs, RFP80:{ *:[f80] }:$rhs)
/*145222*/        0, /*End of Scope*/
/*145223*/      0, // EndSwitchOpcode
/*145224*/    /*Scope*/ 124|128,2/*380*/, /*->145606*/
/*145226*/      OPC_RecordChild0, // #0 = $src
/*145227*/      OPC_SwitchType /*9 cases */, 30, MVT::i16,// ->145260
/*145230*/        OPC_Scope, 13, /*->145245*/ // 2 children in Scope
/*145232*/          OPC_CheckChild0Type, MVT::i32,
/*145234*/          OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*145237*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (trunc:{ *:[i16] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i16] } GR32:{ *:[i32] }:$src, sub_16bit:{ *:[i32] })
/*145245*/        /*Scope*/ 13, /*->145259*/
/*145246*/          OPC_CheckChild0Type, MVT::i64,
/*145248*/          OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*145251*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (trunc:{ *:[i16] } GR64:{ *:[i64] }:$src) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i16] } GR64:{ *:[i64] }:$src, sub_16bit:{ *:[i32] })
/*145259*/        0, /*End of Scope*/
/*145260*/      /*SwitchType*/ 11, MVT::i32,// ->145273
/*145262*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*145265*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (trunc:{ *:[i32] } GR64:{ *:[i64] }:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } GR64:{ *:[i64] }:$src, sub_32bit:{ *:[i32] })
/*145273*/      /*SwitchType*/ 104, MVT::i8,// ->145379
/*145275*/        OPC_Scope, 13, /*->145290*/ // 3 children in Scope
/*145277*/          OPC_CheckChild0Type, MVT::i64,
/*145279*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*145282*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i8, 2/*#Ops*/, 0, 1, 
                    // Src: (trunc:{ *:[i8] } GR64:{ *:[i64] }:$src) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i8] } GR64:{ *:[i64] }:$src, sub_8bit:{ *:[i32] })
/*145290*/        /*Scope*/ 43, /*->145334*/
/*145291*/          OPC_CheckChild0Type, MVT::i32,
/*145293*/          OPC_Scope, 13, /*->145308*/ // 2 children in Scope
/*145295*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*145297*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*145300*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i8, 2/*#Ops*/, 0, 1, 
                      // Src: (trunc:{ *:[i8] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[i8] } GR32:{ *:[i32] }:$src, sub_8bit:{ *:[i32] })
/*145308*/          /*Scope*/ 24, /*->145333*/
/*145309*/            OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*145311*/            OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*145314*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*145322*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*145325*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          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] })
/*145333*/          0, /*End of Scope*/
/*145334*/        /*Scope*/ 43, /*->145378*/
/*145335*/          OPC_CheckChild0Type, MVT::i16,
/*145337*/          OPC_Scope, 13, /*->145352*/ // 2 children in Scope
/*145339*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*145341*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*145344*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i8, 2/*#Ops*/, 0, 1, 
                      // Src: (trunc:{ *:[i8] } GR16:{ *:[i16] }:$src) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[i8] } GR16:{ *:[i16] }:$src, sub_8bit:{ *:[i32] })
/*145352*/          /*Scope*/ 24, /*->145377*/
/*145353*/            OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*145355*/            OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*145358*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*145366*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*145369*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          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:{ *:[i32] }), sub_8bit:{ *:[i32] })
/*145377*/          0, /*End of Scope*/
/*145378*/        0, /*End of Scope*/
/*145379*/      /*SwitchType*/ 68, MVT::v8i16,// ->145449
/*145381*/        OPC_Scope, 11, /*->145394*/ // 2 children in Scope
/*145383*/          OPC_CheckChild0Type, MVT::v8i64,
/*145385*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*145387*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZrr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (trunc:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                    // Dst: (VPMOVQWZrr:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1)
/*145394*/        /*Scope*/ 53, /*->145448*/
/*145395*/          OPC_CheckChild0Type, MVT::v8i32,
/*145397*/          OPC_Scope, 9, /*->145408*/ // 2 children in Scope
/*145399*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145401*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ256rr), 0,
                          MVT::v8i16, 1/*#Ops*/, 0, 
                      // Src: (trunc:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                      // Dst: (VPMOVDWZ256rr:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1)
/*145408*/          /*Scope*/ 38, /*->145447*/
/*145409*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*145411*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*145417*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*145420*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*145429*/            OPC_EmitNode1, TARGET_VAL(X86::VPMOVDWZrr), 0,
                          MVT::v16i16, 1/*#Ops*/, 3,  // Results = #4
/*145436*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*145439*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 4, 5, 
                      // Src: (trunc:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } (VPMOVDWZrr:{ *:[v16i16] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*145447*/          0, /*End of Scope*/
/*145448*/        0, /*End of Scope*/
/*145449*/      /*SwitchType*/ 51, MVT::v4i32,// ->145502
/*145451*/        OPC_Scope, 9, /*->145462*/ // 2 children in Scope
/*145453*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145455*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ256rr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (trunc:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                    // Dst: (VPMOVQDZ256rr:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1)
/*145462*/        /*Scope*/ 38, /*->145501*/
/*145463*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*145465*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*145471*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*145474*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*145483*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVQDZrr), 0,
                        MVT::v8i32, 1/*#Ops*/, 3,  // Results = #4
/*145490*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*145493*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 4, 5, 
                    // Src: (trunc:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VPMOVQDZrr:{ *:[v8i32] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*145501*/        0, /*End of Scope*/
/*145502*/      /*SwitchType*/ 9, MVT::v8i32,// ->145513
/*145504*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*145506*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZrr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVQDZrr:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1)
/*145513*/      /*SwitchType*/ 68, MVT::v16i8,// ->145583
/*145515*/        OPC_Scope, 11, /*->145528*/ // 2 children in Scope
/*145517*/          OPC_CheckChild0Type, MVT::v16i32,
/*145519*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*145521*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrr), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (trunc:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                    // Dst: (VPMOVDBZrr:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1)
/*145528*/        /*Scope*/ 53, /*->145582*/
/*145529*/          OPC_CheckChild0Type, MVT::v16i16,
/*145531*/          OPC_Scope, 9, /*->145542*/ // 2 children in Scope
/*145533*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*145535*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ256rr), 0,
                          MVT::v16i8, 1/*#Ops*/, 0, 
                      // Src: (trunc:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1) - Complexity = 3
                      // Dst: (VPMOVWBZ256rr:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1)
/*145542*/          /*Scope*/ 38, /*->145581*/
/*145543*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*145545*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*145551*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*145554*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*145563*/            OPC_EmitNode1, TARGET_VAL(X86::VPMOVWBZrr), 0,
                          MVT::v32i8, 1/*#Ops*/, 3,  // Results = #4
/*145570*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*145573*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 4, 5, 
                      // Src: (trunc:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } (VPMOVWBZrr:{ *:[v32i8] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*145581*/          0, /*End of Scope*/
/*145582*/        0, /*End of Scope*/
/*145583*/      /*SwitchType*/ 9, MVT::v16i16,// ->145594
/*145585*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*145587*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZrr), 0,
                      MVT::v16i16, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVDWZrr:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1)
/*145594*/      /*SwitchType*/ 9, MVT::v32i8,// ->145605
/*145596*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*145598*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZrr), 0,
                      MVT::v32i8, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1) - Complexity = 3
                  // Dst: (VPMOVWBZrr:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1)
/*145605*/      0, // EndSwitchType
/*145606*/    0, /*End of Scope*/
/*145607*/  /*SwitchOpcode*/ 31|128,2/*287*/, TARGET_VAL(ISD::Constant),// ->145898
/*145611*/    OPC_Scope, 77, /*->145690*/ // 4 children in Scope
/*145613*/      OPC_CheckInteger, 0, 
/*145615*/      OPC_SwitchType /*4 cases */, 7, MVT::i32,// ->145625
/*145618*/        OPC_MorphNodeTo2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/, 
                  // Src: 0:{ *:[i32] } - Complexity = 15
                  // Dst: (MOV32r0:{ *:[i32] }:{ *:[i32] })
/*145625*/      /*SwitchType*/ 18, MVT::i8,// ->145645
/*145627*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #0 #1
/*145634*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*145637*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 2, 
                  // Src: 0:{ *:[i8] } - Complexity = 15
                  // Dst: (EXTRACT_SUBREG:{ *:[i8] } (MOV32r0:{ *:[i32] }:{ *:[i32] }), sub_8bit:{ *:[i32] })
/*145645*/      /*SwitchType*/ 18, MVT::i16,// ->145665
/*145647*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #0 #1
/*145654*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*145657*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 0, 2, 
                  // Src: 0:{ *:[i16] } - Complexity = 15
                  // Dst: (EXTRACT_SUBREG:{ *:[i16] } (MOV32r0:{ *:[i32] }:{ *:[i32] }), sub_16bit:{ *:[i32] })
/*145665*/      /*SwitchType*/ 22, MVT::i64,// ->145689
/*145667*/        OPC_EmitInteger, MVT::i64, 0, 
/*145670*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #1 #2
/*145677*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*145680*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: 0:{ *:[i64] } - Complexity = 15
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32r0:{ *:[i32] }:{ *:[i32] }), sub_32bit:{ *:[i32] })
/*145689*/      0, // EndSwitchType
/*145690*/    /*Scope*/ 37, /*->145728*/
/*145691*/      OPC_CheckInteger, 1, 
/*145693*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->145705
/*145696*/        OPC_CheckPatternPredicate, 151, // (!Subtarget->is64Bit()) && (MF->getFunction().optForSize())
/*145698*/        OPC_MorphNodeTo2, TARGET_VAL(X86::MOV32r1), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/, 
                  // Src: 1:{ *:[i32] } - Complexity = 15
                  // Dst: (MOV32r1:{ *:[i32] }:{ *:[i32] })
/*145705*/      /*SwitchType*/ 20, MVT::i16,// ->145727
/*145707*/        OPC_CheckPatternPredicate, 151, // (!Subtarget->is64Bit()) && (MF->getFunction().optForSize())
/*145709*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r1), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #0 #1
/*145716*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*145719*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 0, 2, 
                  // Src: 1:{ *:[i16] } - Complexity = 15
                  // Dst: (EXTRACT_SUBREG:{ *:[i16] } (MOV32r1:{ *:[i32] }:{ *:[i32] }), sub_16bit:{ *:[i32] })
/*145727*/      0, // EndSwitchType
/*145728*/    /*Scope*/ 46, /*->145775*/
/*145729*/      OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*145740*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->145752
/*145743*/        OPC_CheckPatternPredicate, 151, // (!Subtarget->is64Bit()) && (MF->getFunction().optForSize())
/*145745*/        OPC_MorphNodeTo2, TARGET_VAL(X86::MOV32r_1), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/, 
                  // Src: -1:{ *:[i32] } - Complexity = 15
                  // Dst: (MOV32r_1:{ *:[i32] }:{ *:[i32] })
/*145752*/      /*SwitchType*/ 20, MVT::i16,// ->145774
/*145754*/        OPC_CheckPatternPredicate, 151, // (!Subtarget->is64Bit()) && (MF->getFunction().optForSize())
/*145756*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r_1), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #0 #1
/*145763*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*145766*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 0, 2, 
                  // Src: -1:{ *:[i16] } - Complexity = 15
                  // Dst: (EXTRACT_SUBREG:{ *:[i16] } (MOV32r_1:{ *:[i32] }:{ *:[i32] }), sub_16bit:{ *:[i32] })
/*145774*/      0, // EndSwitchType
/*145775*/    /*Scope*/ 121, /*->145897*/
/*145776*/      OPC_RecordNode, // #0 = $src
/*145777*/      OPC_SwitchType /*4 cases */, 27, MVT::i32,// ->145807
/*145780*/        OPC_Scope, 13, /*->145795*/ // 2 children in Scope
/*145782*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*145784*/          OPC_CheckPatternPredicate, 152, // (!Subtarget->isTargetWin64() ||Subtarget->getFrameLowering()->hasFP(*MF)) && (MF->getFunction().optForMinSize())
/*145786*/          OPC_EmitConvertToTarget, 0,
/*145788*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOV32ImmSExti8), 0,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src - Complexity = 9
                    // Dst: (MOV32ImmSExti8:{ *:[i32] } (imm:{ *:[i32] }):$src)
/*145795*/        /*Scope*/ 10, /*->145806*/
/*145796*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #1
/*145799*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOV32ri), 0,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: relocImm:{ *:[i32] }:$src - Complexity = 3
                    // Dst: (MOV32ri:{ *:[i32] } relocImm:{ *:[i32] }:$src)
/*145806*/        0, /*End of Scope*/
/*145807*/      /*SwitchType*/ 65, MVT::i64,// ->145874
/*145809*/        OPC_Scope, 13, /*->145824*/ // 4 children in Scope
/*145811*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*145813*/          OPC_CheckPatternPredicate, 152, // (!Subtarget->isTargetWin64() ||Subtarget->getFrameLowering()->hasFP(*MF)) && (MF->getFunction().optForMinSize())
/*145815*/          OPC_EmitConvertToTarget, 0,
/*145817*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ImmSExti8), 0,
                        MVT::i64, 1/*#Ops*/, 1, 
                    // Src: (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src - Complexity = 9
                    // Dst: (MOV64ImmSExti8:{ *:[i64] } (imm:{ *:[i64] }):$src)
/*145824*/        /*Scope*/ 25, /*->145850*/
/*145825*/          OPC_CheckComplexPat, /*CP*/7, /*#*/0, // selectMOV64Imm32:$src #1
/*145828*/          OPC_EmitInteger, MVT::i64, 0, 
/*145831*/          OPC_EmitNode1, TARGET_VAL(X86::MOV32ri64), 0,
                        MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/*145838*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*145841*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                    // Src: mov64imm32:{ *:[i64] }:$src - Complexity = 7
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32ri64:{ *:[i32] } mov64imm32:{ *:[i64] }:$src), sub_32bit:{ *:[i32] })
/*145850*/        /*Scope*/ 11, /*->145862*/
/*145851*/          OPC_CheckPredicate, 15, // Predicate_i64immSExt32
/*145853*/          OPC_EmitConvertToTarget, 0,
/*145855*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri32), 0,
                        MVT::i64, 1/*#Ops*/, 1, 
                    // Src: (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src - Complexity = 4
                    // Dst: (MOV64ri32:{ *:[i64] } (imm:{ *:[i64] }):$src)
/*145862*/        /*Scope*/ 10, /*->145873*/
/*145863*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #1
/*145866*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri), 0,
                        MVT::i64, 1/*#Ops*/, 1, 
                    // Src: relocImm:{ *:[i64] }:$src - Complexity = 3
                    // Dst: (MOV64ri:{ *:[i64] } relocImm:{ *:[i64] }:$src)
/*145873*/        0, /*End of Scope*/
/*145874*/      /*SwitchType*/ 9, MVT::i8,// ->145885
/*145876*/        OPC_EmitConvertToTarget, 0,
/*145878*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV8ri), 0,
                      MVT::i8, 1/*#Ops*/, 1, 
                  // Src: (imm:{ *:[i8] }):$src - Complexity = 3
                  // Dst: (MOV8ri:{ *:[i8] } (imm:{ *:[i8] }):$src)
/*145885*/      /*SwitchType*/ 9, MVT::i16,// ->145896
/*145887*/        OPC_EmitConvertToTarget, 0,
/*145889*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV16ri), 0,
                      MVT::i16, 1/*#Ops*/, 1, 
                  // Src: (imm:{ *:[i16] }):$src - Complexity = 3
                  // Dst: (MOV16ri:{ *:[i16] } (imm:{ *:[i16] }):$src)
/*145896*/      0, // EndSwitchType
/*145897*/    0, /*End of Scope*/
/*145898*/  /*SwitchOpcode*/ 9|128,2/*265*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->146167
/*145902*/    OPC_Scope, 109, /*->146013*/ // 2 children in Scope
/*145904*/      OPC_MoveChild0,
/*145905*/      OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::SRL),// ->145976
/*145909*/        OPC_RecordChild0, // #0 = $src
/*145910*/        OPC_CheckChild1Integer, 8, 
/*145912*/        OPC_CheckChild1Type, MVT::i8,
/*145914*/        OPC_CheckPredicate, 17, // Predicate_srl_su
/*145916*/        OPC_CheckType, MVT::i16,
/*145918*/        OPC_MoveParent,
/*145919*/        OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->145940
/*145922*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*145925*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*145933*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                        MVT::i32, 1/*#Ops*/, 2, 
                    // Src: (zext:{ *:[i32] } (srl:{ *:[i16] } GR16:{ *:[i16] }:$src, 8:{ *:[i8] })<<P:Predicate_srl_su>>) - Complexity = 12
                    // Dst: (MOVZX32rr8_NOREX:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR16:{ *:[i16] }:$src, sub_8bit_hi:{ *:[i32] }))
/*145940*/        /*SwitchType*/ 33, MVT::i64,// ->145975
/*145942*/          OPC_EmitInteger, MVT::i64, 0, 
/*145945*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*145948*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i8, 2/*#Ops*/, 0, 2,  // Results = #3
/*145956*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                        MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/*145963*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*145966*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::i64, 3/*#Ops*/, 1, 4, 5, 
                    // Src: (zext:{ *:[i64] } (srl:{ *:[i16] } GR16:{ *:[i16] }:$src, 8:{ *:[i8] })<<P:Predicate_srl_su>>) - Complexity = 12
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rr8_NOREX:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR16:{ *:[i16] }:$src, sub_8bit_hi:{ *:[i32] })), sub_32bit:{ *:[i32] })
/*145975*/        0, // EndSwitchType
/*145976*/      /*SwitchOpcode*/ 33, TARGET_VAL(ISD::BITCAST),// ->146012
/*145979*/        OPC_RecordChild0, // #0 = $src
/*145980*/        OPC_SwitchType /*2 cases */, 12, MVT::i16,// ->145995
/*145983*/          OPC_CheckChild0Type, MVT::v16i1,
/*145985*/          OPC_MoveParent,
/*145986*/          OPC_CheckType, MVT::i32,
/*145988*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KMOVWrk), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (zext:{ *:[i32] } (bitconvert:{ *:[i16] } VK16:{ *:[v16i1] }:$src)) - Complexity = 6
                    // Dst: (KMOVWrk:{ *:[i32] } VK16:{ *:[v16i1] }:$src)
/*145995*/        /*SwitchType*/ 14, MVT::i8,// ->146011
/*145997*/          OPC_CheckChild0Type, MVT::v8i1,
/*145999*/          OPC_MoveParent,
/*146000*/          OPC_CheckType, MVT::i32,
/*146002*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*146004*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KMOVBrk), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (zext:{ *:[i32] } (bitconvert:{ *:[i8] } VK8:{ *:[v8i1] }:$src)) - Complexity = 6
                    // Dst: (KMOVBrk:{ *:[i32] } VK8:{ *:[v8i1] }:$src)
/*146011*/        0, // EndSwitchType
/*146012*/      0, // EndSwitchOpcode
/*146013*/    /*Scope*/ 23|128,1/*151*/, /*->146166*/
/*146015*/      OPC_RecordChild0, // #0 = $src
/*146016*/      OPC_Scope, 23, /*->146041*/ // 5 children in Scope
/*146018*/        OPC_MoveChild0,
/*146019*/        OPC_CheckPredicate, 90, // Predicate_def32
/*146021*/        OPC_CheckType, MVT::i32,
/*146023*/        OPC_MoveParent,
/*146024*/        OPC_CheckType, MVT::i64,
/*146026*/        OPC_EmitInteger, MVT::i64, 0, 
/*146029*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*146032*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      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] })
/*146041*/      /*Scope*/ 37, /*->146079*/
/*146042*/        OPC_CheckChild0Type, MVT::i8,
/*146044*/        OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->146054
/*146047*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rr8), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (zext:{ *:[i32] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (MOVZX32rr8:{ *:[i32] } GR8:{ *:[i8] }:$src)
/*146054*/        /*SwitchType*/ 22, MVT::i64,// ->146078
/*146056*/          OPC_EmitInteger, MVT::i64, 0, 
/*146059*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*146066*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*146069*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (zext:{ *:[i64] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rr8:{ *:[i32] } GR8:{ *:[i8] }:$src), sub_32bit:{ *:[i32] })
/*146078*/        0, // EndSwitchType
/*146079*/      /*Scope*/ 37, /*->146117*/
/*146080*/        OPC_CheckChild0Type, MVT::i16,
/*146082*/        OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->146092
/*146085*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rr16), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (zext:{ *:[i32] } GR16:{ *:[i16] }:$src) - Complexity = 3
                    // Dst: (MOVZX32rr16:{ *:[i32] } GR16:{ *:[i16] }:$src)
/*146092*/        /*SwitchType*/ 22, MVT::i64,// ->146116
/*146094*/          OPC_EmitInteger, MVT::i64, 0, 
/*146097*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr16), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*146104*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*146107*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (zext:{ *:[i64] } GR16:{ *:[i16] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rr16:{ *:[i32] } GR16:{ *:[i16] }:$src), sub_32bit:{ *:[i32] })
/*146116*/        0, // EndSwitchType
/*146117*/      /*Scope*/ 26, /*->146144*/
/*146118*/        OPC_CheckChild0Type, MVT::i32,
/*146120*/        OPC_CheckType, MVT::i64,
/*146122*/        OPC_EmitInteger, MVT::i64, 0, 
/*146125*/        OPC_EmitNode1, TARGET_VAL(X86::MOV32rr), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*146132*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*146135*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (zext:{ *:[i64] } GR32:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32rr:{ *:[i32] } GR32:{ *:[i32] }:$src), sub_32bit:{ *:[i32] })
/*146144*/      /*Scope*/ 20, /*->146165*/
/*146145*/        OPC_CheckType, MVT::i16,
/*146147*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*146154*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*146157*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      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] })
/*146165*/      0, /*End of Scope*/
/*146166*/    0, /*End of Scope*/
/*146167*/  /*SwitchOpcode*/ 96|128,2/*352*/, TARGET_VAL(ISD::ANY_EXTEND),// ->146523
/*146171*/    OPC_Scope, 85|128,1/*213*/, /*->146387*/ // 2 children in Scope
/*146174*/      OPC_MoveChild0,
/*146175*/      OPC_SwitchOpcode /*3 cases */, 67, TARGET_VAL(ISD::SRL),// ->146246
/*146179*/        OPC_RecordChild0, // #0 = $src
/*146180*/        OPC_CheckChild1Integer, 8, 
/*146182*/        OPC_CheckChild1Type, MVT::i8,
/*146184*/        OPC_CheckPredicate, 17, // Predicate_srl_su
/*146186*/        OPC_CheckType, MVT::i16,
/*146188*/        OPC_MoveParent,
/*146189*/        OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->146210
/*146192*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*146195*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*146203*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                        MVT::i32, 1/*#Ops*/, 2, 
                    // Src: (anyext:{ *:[i32] } (srl:{ *:[i16] } GR16:{ *:[i16] }:$src, 8:{ *:[i8] })<<P:Predicate_srl_su>>) - Complexity = 12
                    // Dst: (MOVZX32rr8_NOREX:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR16:{ *:[i16] }:$src, sub_8bit_hi:{ *:[i32] }))
/*146210*/        /*SwitchType*/ 33, MVT::i64,// ->146245
/*146212*/          OPC_EmitInteger, MVT::i64, 0, 
/*146215*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*146218*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i8, 2/*#Ops*/, 0, 2,  // Results = #3
/*146226*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                        MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/*146233*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*146236*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::i64, 3/*#Ops*/, 1, 4, 5, 
                    // Src: (anyext:{ *:[i64] } (srl:{ *:[i16] } GR16:{ *:[i16] }:$src, 8:{ *:[i8] })<<P:Predicate_srl_su>>) - Complexity = 12
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rr8_NOREX:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR16:{ *:[i16] }:$src, sub_8bit_hi:{ *:[i32] })), sub_32bit:{ *:[i32] })
/*146245*/        0, // EndSwitchType
/*146246*/      /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::SETCC_CARRY),// ->146344
/*146249*/        OPC_CheckChild0Integer, 2, 
/*146251*/        OPC_RecordChild1, // #0 = physreg input EFLAGS
/*146252*/        OPC_Scope, 13, /*->146267*/ // 5 children in Scope
/*146254*/          OPC_MoveParent,
/*146255*/          OPC_CheckType, MVT::i16,
/*146257*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*146260*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C16r), 0|OPFL_GlueInput,
                        MVT::i16, MVT::i32, 0/*#Ops*/, 
                    // Src: (anyext:{ *:[i16] } (X86setcc_c:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] })) - Complexity = 11
                    // Dst: (SETB_C16r:{ *:[i16] }:{ *:[i32] })
/*146267*/        /*Scope*/ 29, /*->146297*/
/*146268*/          OPC_CheckType, MVT::i8,
/*146270*/          OPC_MoveParent,
/*146271*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->146284
/*146274*/            OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*146277*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C32r), 0|OPFL_GlueInput,
                          MVT::i32, MVT::i32, 0/*#Ops*/, 
                      // Src: (anyext:{ *:[i32] } (X86setcc_c:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] })) - Complexity = 11
                      // Dst: (SETB_C32r:{ *:[i32] }:{ *:[i32] })
/*146284*/          /*SwitchType*/ 10, MVT::i64,// ->146296
/*146286*/            OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*146289*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C64r), 0|OPFL_GlueInput,
                          MVT::i64, MVT::i32, 0/*#Ops*/, 
                      // Src: (anyext:{ *:[i64] } (X86setcc_c:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] })) - Complexity = 11
                      // Dst: (SETB_C64r:{ *:[i64] }:{ *:[i32] })
/*146296*/          0, // EndSwitchType
/*146297*/        /*Scope*/ 13, /*->146311*/
/*146298*/          OPC_MoveParent,
/*146299*/          OPC_CheckType, MVT::i16,
/*146301*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*146304*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C16r), 0|OPFL_GlueInput,
                        MVT::i16, MVT::i32, 0/*#Ops*/, 
                    // Src: (anyext:{ *:[i16] } (X86setcc_c:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] })) - Complexity = 11
                    // Dst: (SETB_C16r:{ *:[i16] }:{ *:[i32] })
/*146311*/        /*Scope*/ 15, /*->146327*/
/*146312*/          OPC_CheckType, MVT::i8,
/*146314*/          OPC_MoveParent,
/*146315*/          OPC_CheckType, MVT::i32,
/*146317*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*146320*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C32r), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 0/*#Ops*/, 
                    // Src: (anyext:{ *:[i32] } (X86setcc_c:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] })) - Complexity = 11
                    // Dst: (SETB_C32r:{ *:[i32] }:{ *:[i32] })
/*146327*/        /*Scope*/ 15, /*->146343*/
/*146328*/          OPC_CheckType, MVT::i16,
/*146330*/          OPC_MoveParent,
/*146331*/          OPC_CheckType, MVT::i32,
/*146333*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*146336*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C32r), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 0/*#Ops*/, 
                    // Src: (anyext:{ *:[i32] } (X86setcc_c:{ *:[i16] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] })) - Complexity = 11
                    // Dst: (SETB_C32r:{ *:[i32] }:{ *:[i32] })
/*146343*/        0, /*End of Scope*/
/*146344*/      /*SwitchOpcode*/ 39, TARGET_VAL(ISD::BITCAST),// ->146386
/*146347*/        OPC_RecordChild0, // #0 = $src
/*146348*/        OPC_SwitchType /*2 cases */, 16, MVT::i16,// ->146367
/*146351*/          OPC_CheckChild0Type, MVT::v16i1,
/*146353*/          OPC_MoveParent,
/*146354*/          OPC_CheckType, MVT::i32,
/*146356*/          OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*146359*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (anyext:{ *:[i32] } (bitconvert:{ *:[i16] } VK16:{ *:[v16i1] }:$src)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VK16:{ *:[v16i1] }:$src, GR32:{ *:[i32] })
/*146367*/        /*SwitchType*/ 16, MVT::i8,// ->146385
/*146369*/          OPC_CheckChild0Type, MVT::v8i1,
/*146371*/          OPC_MoveParent,
/*146372*/          OPC_CheckType, MVT::i32,
/*146374*/          OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*146377*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (anyext:{ *:[i32] } (bitconvert:{ *:[i8] } VK8:{ *:[v8i1] }:$src)) - Complexity = 6
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VK8:{ *:[v8i1] }:$src, GR32:{ *:[i32] })
/*146385*/        0, // EndSwitchType
/*146386*/      0, // EndSwitchOpcode
/*146387*/    /*Scope*/ 5|128,1/*133*/, /*->146522*/
/*146389*/      OPC_RecordChild0, // #0 = $src
/*146390*/      OPC_SwitchType /*3 cases */, 33, MVT::i32,// ->146426
/*146393*/        OPC_Scope, 9, /*->146404*/ // 2 children in Scope
/*146395*/          OPC_CheckChild0Type, MVT::i8,
/*146397*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVZX32rr8), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (anyext:{ *:[i32] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (MOVZX32rr8:{ *:[i32] } GR8:{ *:[i8] }:$src)
/*146404*/        /*Scope*/ 20, /*->146425*/
/*146405*/          OPC_CheckChild0Type, MVT::i16,
/*146407*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*146413*/          OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*146416*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        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] })
/*146425*/        0, /*End of Scope*/
/*146426*/      /*SwitchType*/ 73, MVT::i64,// ->146501
/*146428*/        OPC_Scope, 20, /*->146450*/ // 3 children in Scope
/*146430*/          OPC_CheckChild0Type, MVT::i32,
/*146432*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #1
/*146438*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*146441*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (anyext:{ *:[i64] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR32:{ *:[i32] }:$src, sub_32bit:{ *:[i32] })
/*146450*/        /*Scope*/ 24, /*->146475*/
/*146451*/          OPC_CheckChild0Type, MVT::i8,
/*146453*/          OPC_EmitInteger, MVT::i64, 0, 
/*146456*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*146463*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*146466*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (anyext:{ *:[i64] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rr8:{ *:[i32] } GR8:{ *:[i8] }:$src), sub_32bit:{ *:[i32] })
/*146475*/        /*Scope*/ 24, /*->146500*/
/*146476*/          OPC_CheckChild0Type, MVT::i16,
/*146478*/          OPC_EmitInteger, MVT::i64, 0, 
/*146481*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr16), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*146488*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*146491*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (anyext:{ *:[i64] } GR16:{ *:[i16] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVZX32rr16:{ *:[i32] } GR16:{ *:[i16] }:$src), sub_32bit:{ *:[i32] })
/*146500*/        0, /*End of Scope*/
/*146501*/      /*SwitchType*/ 18, MVT::i16,// ->146521
/*146503*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*146510*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*146513*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      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] })
/*146521*/      0, // EndSwitchType
/*146522*/    0, /*End of Scope*/
/*146523*/  /*SwitchOpcode*/ 15|128,13/*1679*/, TARGET_VAL(ISD::BITCAST),// ->148206
/*146527*/    OPC_Scope, 23, /*->146552*/ // 8 children in Scope
/*146529*/      OPC_MoveChild0,
/*146530*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*146533*/      OPC_RecordChild0, // #0 = $src
/*146534*/      OPC_CheckChild0Type, MVT::v2i64,
/*146536*/      OPC_CheckChild1Integer, 0, 
/*146538*/      OPC_CheckType, MVT::i64,
/*146540*/      OPC_MoveParent,
/*146541*/      OPC_CheckType, MVT::x86mmx,
/*146543*/      OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*146545*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVDQ2Qrr), 0,
                    MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (bitconvert:{ *:[x86mmx] } (extractelt:{ *:[i64] } VR128:{ *:[v2i64] }:$src, 0:{ *:[iPTR] })) - Complexity = 11
                // Dst: (MMX_MOVDQ2Qrr:{ *:[x86mmx] } VR128:{ *:[v2i64] }:$src)
/*146552*/    /*Scope*/ 76|128,1/*204*/, /*->146758*/
/*146554*/      OPC_RecordChild0, // #0 = $src
/*146555*/      OPC_Scope, 15, /*->146572*/ // 8 children in Scope
/*146557*/        OPC_CheckChild0Type, MVT::v32i1,
/*146559*/        OPC_CheckType, MVT::i32,
/*146561*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*146564*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[i32] } VK32:{ *:[v32i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VK32:{ *:[v32i1] }:$src, GR32:{ *:[i32] })
/*146572*/      /*Scope*/ 15, /*->146588*/
/*146573*/        OPC_CheckChild0Type, MVT::v64i1,
/*146575*/        OPC_CheckType, MVT::i64,
/*146577*/        OPC_EmitInteger, MVT::i32, X86::GR64RegClassID,
/*146580*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[i64] } VK64:{ *:[v64i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[i64] } VK64:{ *:[v64i1] }:$src, GR64:{ *:[i32] })
/*146588*/      /*Scope*/ 49, /*->146638*/
/*146589*/        OPC_CheckChild0Type, MVT::f64,
/*146591*/        OPC_SwitchType /*2 cases */, 32, MVT::i64,// ->146626
/*146594*/          OPC_Scope, 9, /*->146605*/ // 3 children in Scope
/*146596*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*146598*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDto64rr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (bitconvert:{ *:[i64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VMOVSDto64rr:{ *:[i64] } FR64:{ *:[f64] }:$src)
/*146605*/          /*Scope*/ 9, /*->146615*/
/*146606*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*146608*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSDto64rr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (bitconvert:{ *:[i64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (MOVSDto64rr:{ *:[i64] } FR64:{ *:[f64] }:$src)
/*146615*/          /*Scope*/ 9, /*->146625*/
/*146616*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146618*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDto64Zrr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (bitconvert:{ *:[i64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VMOVSDto64Zrr:{ *:[i64] } FR64X:{ *:[f64] }:$src)
/*146625*/          0, /*End of Scope*/
/*146626*/        /*SwitchType*/ 9, MVT::x86mmx,// ->146637
/*146628*/          OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*146630*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVFR642Qrr), 0,
                        MVT::x86mmx, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[x86mmx] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (MMX_MOVFR642Qrr:{ *:[x86mmx] } FR64:{ *:[f64] }:$src)
/*146637*/        0, // EndSwitchType
/*146638*/      /*Scope*/ 36, /*->146675*/
/*146639*/        OPC_CheckChild0Type, MVT::f32,
/*146641*/        OPC_CheckType, MVT::i32,
/*146643*/        OPC_Scope, 9, /*->146654*/ // 3 children in Scope
/*146645*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*146647*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSS2DIrr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[i32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VMOVSS2DIrr:{ *:[i32] } FR32:{ *:[f32] }:$src)
/*146654*/        /*Scope*/ 9, /*->146664*/
/*146655*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*146657*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSS2DIrr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[i32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (MOVSS2DIrr:{ *:[i32] } FR32:{ *:[f32] }:$src)
/*146664*/        /*Scope*/ 9, /*->146674*/
/*146665*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146667*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSS2DIZrr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[i32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VMOVSS2DIZrr:{ *:[i32] } FR32X:{ *:[f32] }:$src)
/*146674*/        0, /*End of Scope*/
/*146675*/      /*Scope*/ 13, /*->146689*/
/*146676*/        OPC_CheckChild0Type, MVT::i64,
/*146678*/        OPC_CheckType, MVT::x86mmx,
/*146680*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/*146682*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVD64to64rr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:{ *:[x86mmx] } GR64:{ *:[i64] }:$src) - Complexity = 3
                  // Dst: (MMX_MOVD64to64rr:{ *:[x86mmx] } GR64:{ *:[i64] }:$src)
/*146689*/      /*Scope*/ 13, /*->146703*/
/*146690*/        OPC_CheckChild0Type, MVT::x86mmx,
/*146692*/        OPC_CheckType, MVT::i64,
/*146694*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/*146696*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVD64from64rr), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:{ *:[i64] } VR64:{ *:[x86mmx] }:$src) - Complexity = 3
                  // Dst: (MMX_MOVD64from64rr:{ *:[i64] } VR64:{ *:[x86mmx] }:$src)
/*146703*/      /*Scope*/ 26, /*->146730*/
/*146704*/        OPC_CheckChild0Type, MVT::v16i1,
/*146706*/        OPC_CheckType, MVT::i16,
/*146708*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*146711*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*146719*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*146722*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 2, 3, 
                  // Src: (bitconvert:{ *:[i16] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i16] } (COPY_TO_REGCLASS:{ *:[i32] } VK16:{ *:[v16i1] }:$src, GR32:{ *:[i32] }), sub_16bit:{ *:[i32] })
/*146730*/      /*Scope*/ 26, /*->146757*/
/*146731*/        OPC_CheckChild0Type, MVT::v8i1,
/*146733*/        OPC_CheckType, MVT::i8,
/*146735*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*146738*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*146746*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*146749*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 2, 3, 
                  // Src: (bitconvert:{ *:[i8] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i8] } (COPY_TO_REGCLASS:{ *:[i32] } VK8:{ *:[v8i1] }:$src, GR32:{ *:[i32] }), sub_8bit:{ *:[i32] })
/*146757*/      0, /*End of Scope*/
/*146758*/    /*Scope*/ 9|128,1/*137*/, /*->146897*/
/*146760*/      OPC_MoveChild0,
/*146761*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*146764*/      OPC_RecordMemRef,
/*146765*/      OPC_RecordNode, // #0 = 'ld' chained node
/*146766*/      OPC_RecordChild1, // #1 = $src
/*146767*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*146769*/      OPC_SwitchType /*2 cases */, 61, MVT::i32,// ->146833
/*146772*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*146774*/        OPC_MoveParent,
/*146775*/        OPC_CheckType, MVT::f32,
/*146777*/        OPC_Scope, 17, /*->146796*/ // 3 children in Scope
/*146779*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*146781*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*146784*/          OPC_EmitMergeInputChains1_0,
/*146785*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*146796*/        /*Scope*/ 17, /*->146814*/
/*146797*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*146799*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*146802*/          OPC_EmitMergeInputChains1_0,
/*146803*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*146814*/        /*Scope*/ 17, /*->146832*/
/*146815*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146817*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*146820*/          OPC_EmitMergeInputChains1_0,
/*146821*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2SSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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: (VMOVDI2SSZrm:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*146832*/        0, /*End of Scope*/
/*146833*/      /*SwitchType*/ 61, MVT::i64,// ->146896
/*146835*/        OPC_CheckPredicate, 9, // Predicate_load
/*146837*/        OPC_MoveParent,
/*146838*/        OPC_CheckType, MVT::f64,
/*146840*/        OPC_Scope, 17, /*->146859*/ // 3 children in Scope
/*146842*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*146844*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*146847*/          OPC_EmitMergeInputChains1_0,
/*146848*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOV64toSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*146859*/        /*Scope*/ 17, /*->146877*/
/*146860*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*146862*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*146865*/          OPC_EmitMergeInputChains1_0,
/*146866*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64toSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*146877*/        /*Scope*/ 17, /*->146895*/
/*146878*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146880*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*146883*/          OPC_EmitMergeInputChains1_0,
/*146884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOV64toSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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: (VMOV64toSDZrm:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*146895*/        0, /*End of Scope*/
/*146896*/      0, // EndSwitchType
/*146897*/    /*Scope*/ 90, /*->146988*/
/*146898*/      OPC_RecordChild0, // #0 = $src
/*146899*/      OPC_SwitchType /*2 cases */, 49, MVT::f64,// ->146951
/*146902*/        OPC_Scope, 34, /*->146938*/ // 2 children in Scope
/*146904*/          OPC_CheckChild0Type, MVT::i64,
/*146906*/          OPC_Scope, 9, /*->146917*/ // 3 children in Scope
/*146908*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*146910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOV64toSDrr), 0,
                          MVT::f64, 1/*#Ops*/, 0, 
                      // Src: (bitconvert:{ *:[f64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VMOV64toSDrr:{ *:[f64] } GR64:{ *:[i64] }:$src)
/*146917*/          /*Scope*/ 9, /*->146927*/
/*146918*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*146920*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64toSDrr), 0,
                          MVT::f64, 1/*#Ops*/, 0, 
                      // Src: (bitconvert:{ *:[f64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (MOV64toSDrr:{ *:[f64] } GR64:{ *:[i64] }:$src)
/*146927*/          /*Scope*/ 9, /*->146937*/
/*146928*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146930*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOV64toSDZrr), 0,
                          MVT::f64, 1/*#Ops*/, 0, 
                      // Src: (bitconvert:{ *:[f64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VMOV64toSDZrr:{ *:[f64] } GR64:{ *:[i64] }:$src)
/*146937*/          0, /*End of Scope*/
/*146938*/        /*Scope*/ 11, /*->146950*/
/*146939*/          OPC_CheckChild0Type, MVT::x86mmx,
/*146941*/          OPC_CheckPatternPredicate, 47, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*146943*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVQ2FR64rr), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[f64] } VR64:{ *:[x86mmx] }:$src) - Complexity = 3
                    // Dst: (MMX_MOVQ2FR64rr:{ *:[f64] } VR64:{ *:[x86mmx] }:$src)
/*146950*/        0, /*End of Scope*/
/*146951*/      /*SwitchType*/ 34, MVT::f32,// ->146987
/*146953*/        OPC_CheckChild0Type, MVT::i32,
/*146955*/        OPC_Scope, 9, /*->146966*/ // 3 children in Scope
/*146957*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*146959*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2SSrr), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[f32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (VMOVDI2SSrr:{ *:[f32] } GR32:{ *:[i32] }:$src)
/*146966*/        /*Scope*/ 9, /*->146976*/
/*146967*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*146969*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDI2SSrr), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[f32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (MOVDI2SSrr:{ *:[f32] } GR32:{ *:[i32] }:$src)
/*146976*/        /*Scope*/ 9, /*->146986*/
/*146977*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146979*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2SSZrr), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[f32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (VMOVDI2SSZrr:{ *:[f32] } GR32:{ *:[i32] }:$src)
/*146986*/        0, /*End of Scope*/
/*146987*/      0, // EndSwitchType
/*146988*/    /*Scope*/ 1|128,2/*257*/, /*->147247*/
/*146990*/      OPC_MoveChild0,
/*146991*/      OPC_SwitchOpcode /*2 cases */, 79|128,1/*207*/, TARGET_VAL(X86ISD::SHUF128),// ->147203
/*146996*/        OPC_RecordChild0, // #0 = $src1
/*146997*/        OPC_Scope, 28|128,1/*156*/, /*->147156*/ // 2 children in Scope
/*147000*/          OPC_MoveChild1,
/*147001*/          OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(X86ISD::VBROADCAST),// ->147081
/*147005*/            OPC_MoveChild0,
/*147006*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*147009*/            OPC_RecordMemRef,
/*147010*/            OPC_RecordNode, // #1 = 'ld' chained node
/*147011*/            OPC_CheckFoldableChainNode,
/*147012*/            OPC_RecordChild1, // #2 = $src2
/*147013*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*147015*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*147017*/            OPC_CheckType, MVT::i32,
/*147019*/            OPC_MoveParent,
/*147020*/            OPC_MoveParent,
/*147021*/            OPC_RecordChild2, // #3 = $src3
/*147022*/            OPC_MoveChild2,
/*147023*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*147026*/            OPC_MoveParent,
/*147027*/            OPC_SwitchType /*2 cases */, 24, MVT::v8i64,// ->147054
/*147030*/              OPC_MoveParent,
/*147031*/              OPC_CheckType, MVT::v16i32,
/*147033*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147035*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*147038*/              OPC_EmitMergeInputChains1_1,
/*147039*/              OPC_EmitConvertToTarget, 3,
/*147041*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3)) - Complexity = 34
                        // Dst: (VSHUFI32X4Zrmbi:{ *:[v16i32] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*147054*/            /*SwitchType*/ 24, MVT::v4i64,// ->147080
/*147056*/              OPC_MoveParent,
/*147057*/              OPC_CheckType, MVT::v8i32,
/*147059*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*147061*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*147064*/              OPC_EmitMergeInputChains1_1,
/*147065*/              OPC_EmitConvertToTarget, 3,
/*147067*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3)) - Complexity = 34
                        // Dst: (VSHUFI32X4Z256rmbi:{ *:[v8i32] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*147080*/            0, // EndSwitchType
/*147081*/          /*SwitchOpcode*/ 71, TARGET_VAL(ISD::LOAD),// ->147155
/*147084*/            OPC_RecordMemRef,
/*147085*/            OPC_RecordNode, // #1 = 'ld' chained node
/*147086*/            OPC_CheckFoldableChainNode,
/*147087*/            OPC_RecordChild1, // #2 = $src2
/*147088*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*147090*/            OPC_CheckPredicate, 9, // Predicate_load
/*147092*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*147094*/            OPC_MoveParent,
/*147095*/            OPC_RecordChild2, // #3 = $src3
/*147096*/            OPC_MoveChild2,
/*147097*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*147100*/            OPC_MoveParent,
/*147101*/            OPC_SwitchType /*2 cases */, 24, MVT::v8i64,// ->147128
/*147104*/              OPC_MoveParent,
/*147105*/              OPC_CheckType, MVT::v16i32,
/*147107*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147109*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*147112*/              OPC_EmitMergeInputChains1_1,
/*147113*/              OPC_EmitConvertToTarget, 3,
/*147115*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)) - Complexity = 31
                        // Dst: (VSHUFI32X4Zrmi:{ *:[v16i32] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*147128*/            /*SwitchType*/ 24, MVT::v4i64,// ->147154
/*147130*/              OPC_MoveParent,
/*147131*/              OPC_CheckType, MVT::v8i32,
/*147133*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*147135*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*147138*/              OPC_EmitMergeInputChains1_1,
/*147139*/              OPC_EmitConvertToTarget, 3,
/*147141*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)) - Complexity = 31
                        // Dst: (VSHUFI32X4Z256rmi:{ *:[v8i32] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*147154*/            0, // EndSwitchType
/*147155*/          0, // EndSwitchOpcode
/*147156*/        /*Scope*/ 45, /*->147202*/
/*147157*/          OPC_RecordChild1, // #1 = $src2
/*147158*/          OPC_RecordChild2, // #2 = $src3
/*147159*/          OPC_MoveChild2,
/*147160*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*147163*/          OPC_MoveParent,
/*147164*/          OPC_SwitchType /*2 cases */, 16, MVT::v8i64,// ->147183
/*147167*/            OPC_MoveParent,
/*147168*/            OPC_CheckType, MVT::v16i32,
/*147170*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147172*/            OPC_EmitConvertToTarget, 2,
/*147174*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrri), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)) - Complexity = 9
                      // Dst: (VSHUFI32X4Zrri:{ *:[v16i32] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*147183*/          /*SwitchType*/ 16, MVT::v4i64,// ->147201
/*147185*/            OPC_MoveParent,
/*147186*/            OPC_CheckType, MVT::v8i32,
/*147188*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*147190*/            OPC_EmitConvertToTarget, 2,
/*147192*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rri), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)) - Complexity = 9
                      // Dst: (VSHUFI32X4Z256rri:{ *:[v8i32] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*147201*/          0, // EndSwitchType
/*147202*/        0, /*End of Scope*/
/*147203*/      /*SwitchOpcode*/ 40, TARGET_VAL(ISD::LOAD),// ->147246
/*147206*/        OPC_RecordMemRef,
/*147207*/        OPC_RecordNode, // #0 = 'ld' chained node
/*147208*/        OPC_RecordChild1, // #1 = $src
/*147209*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*147211*/        OPC_CheckPredicate, 9, // Predicate_load
/*147213*/        OPC_CheckType, MVT::i8,
/*147215*/        OPC_MoveParent,
/*147216*/        OPC_CheckType, MVT::v8i1,
/*147218*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147220*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*147223*/        OPC_EmitMergeInputChains1_0,
/*147224*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*147235*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*147238*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v8i1, 2/*#Ops*/, 7, 8, 
                  // Src: (bitconvert:{ *:[v8i1] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (MOVZX32rm8:{ *:[i32] } addr:{ *:[iPTR] }:$src), VK8:{ *:[i32] })
/*147246*/      0, // EndSwitchOpcode
/*147247*/    /*Scope*/ 109|128,3/*493*/, /*->147742*/
/*147249*/      OPC_RecordChild0, // #0 = $src
/*147250*/      OPC_Scope, 19, /*->147271*/ // 22 children in Scope
/*147252*/        OPC_CheckChild0Type, MVT::v4i32,
/*147254*/        OPC_SwitchType /*3 cases */, 3, MVT::v2i64,// ->147260
/*147257*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v2i64] }:$src
/*147260*/        /*SwitchType*/ 3, MVT::v8i16,// ->147265
/*147262*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v8i16] }:$src
/*147265*/        /*SwitchType*/ 3, MVT::v16i8,// ->147270
/*147267*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v16i8] }:$src
/*147270*/        0, // EndSwitchType
/*147271*/      /*Scope*/ 19, /*->147291*/
/*147272*/        OPC_CheckChild0Type, MVT::v8i16,
/*147274*/        OPC_SwitchType /*3 cases */, 3, MVT::v2i64,// ->147280
/*147277*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v2i64] }:$src
/*147280*/        /*SwitchType*/ 3, MVT::v4i32,// ->147285
/*147282*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v4i32] }:$src
/*147285*/        /*SwitchType*/ 3, MVT::v16i8,// ->147290
/*147287*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v16i8] }:$src
/*147290*/        0, // EndSwitchType
/*147291*/      /*Scope*/ 19, /*->147311*/
/*147292*/        OPC_CheckChild0Type, MVT::v16i8,
/*147294*/        OPC_SwitchType /*3 cases */, 3, MVT::v2i64,// ->147300
/*147297*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v2i64] }:$src
/*147300*/        /*SwitchType*/ 3, MVT::v4i32,// ->147305
/*147302*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v4i32] }:$src
/*147305*/        /*SwitchType*/ 3, MVT::v8i16,// ->147310
/*147307*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v8i16] }:$src
/*147310*/        0, // EndSwitchType
/*147311*/      /*Scope*/ 24, /*->147336*/
/*147312*/        OPC_CheckChild0Type, MVT::v2f64,
/*147314*/        OPC_SwitchType /*4 cases */, 3, MVT::v2i64,// ->147320
/*147317*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v2i64] }:$src
/*147320*/        /*SwitchType*/ 3, MVT::v4i32,// ->147325
/*147322*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v4i32] }:$src
/*147325*/        /*SwitchType*/ 3, MVT::v8i16,// ->147330
/*147327*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v8i16] }:$src
/*147330*/        /*SwitchType*/ 3, MVT::v16i8,// ->147335
/*147332*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v16i8] }:$src
/*147335*/        0, // EndSwitchType
/*147336*/      /*Scope*/ 24, /*->147361*/
/*147337*/        OPC_CheckChild0Type, MVT::v4f32,
/*147339*/        OPC_SwitchType /*4 cases */, 3, MVT::v2i64,// ->147345
/*147342*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v2i64] }:$src
/*147345*/        /*SwitchType*/ 3, MVT::v4i32,// ->147350
/*147347*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v4i32] }:$src
/*147350*/        /*SwitchType*/ 3, MVT::v8i16,// ->147355
/*147352*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v8i16] }:$src
/*147355*/        /*SwitchType*/ 3, MVT::v16i8,// ->147360
/*147357*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v16i8] }:$src
/*147360*/        0, // EndSwitchType
/*147361*/      /*Scope*/ 19, /*->147381*/
/*147362*/        OPC_CheckChild0Type, MVT::v2i64,
/*147364*/        OPC_SwitchType /*3 cases */, 3, MVT::v4i32,// ->147370
/*147367*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v4i32] }:$src
/*147370*/        /*SwitchType*/ 3, MVT::v8i16,// ->147375
/*147372*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v8i16] }:$src
/*147375*/        /*SwitchType*/ 3, MVT::v16i8,// ->147380
/*147377*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v16i8] }:$src
/*147380*/        0, // EndSwitchType
/*147381*/      /*Scope*/ 19, /*->147401*/
/*147382*/        OPC_CheckChild0Type, MVT::v8i32,
/*147384*/        OPC_SwitchType /*3 cases */, 3, MVT::v4i64,// ->147390
/*147387*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i64] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v4i64] }:$src
/*147390*/        /*SwitchType*/ 3, MVT::v16i16,// ->147395
/*147392*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v16i16] }:$src
/*147395*/        /*SwitchType*/ 3, MVT::v32i8,// ->147400
/*147397*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v32i8] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v32i8] }:$src
/*147400*/        0, // EndSwitchType
/*147401*/      /*Scope*/ 19, /*->147421*/
/*147402*/        OPC_CheckChild0Type, MVT::v16i16,
/*147404*/        OPC_SwitchType /*3 cases */, 3, MVT::v4i64,// ->147410
/*147407*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i64] } VR256:{ *:[v16i16] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v4i64] }:$src
/*147410*/        /*SwitchType*/ 3, MVT::v8i32,// ->147415
/*147412*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i32] } VR256:{ *:[v16i16] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v8i32] }:$src
/*147415*/        /*SwitchType*/ 3, MVT::v32i8,// ->147420
/*147417*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v32i8] }:$src
/*147420*/        0, // EndSwitchType
/*147421*/      /*Scope*/ 19, /*->147441*/
/*147422*/        OPC_CheckChild0Type, MVT::v32i8,
/*147424*/        OPC_SwitchType /*3 cases */, 3, MVT::v4i64,// ->147430
/*147427*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i64] } VR256:{ *:[v32i8] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v4i64] }:$src
/*147430*/        /*SwitchType*/ 3, MVT::v8i32,// ->147435
/*147432*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i32] } VR256:{ *:[v32i8] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v8i32] }:$src
/*147435*/        /*SwitchType*/ 3, MVT::v16i16,// ->147440
/*147437*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v16i16] }:$src
/*147440*/        0, // EndSwitchType
/*147441*/      /*Scope*/ 24, /*->147466*/
/*147442*/        OPC_CheckChild0Type, MVT::v8f32,
/*147444*/        OPC_SwitchType /*4 cases */, 3, MVT::v4i64,// ->147450
/*147447*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i64] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v4i64] }:$src
/*147450*/        /*SwitchType*/ 3, MVT::v8i32,// ->147455
/*147452*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v8i32] }:$src
/*147455*/        /*SwitchType*/ 3, MVT::v16i16,// ->147460
/*147457*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i16] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v16i16] }:$src
/*147460*/        /*SwitchType*/ 3, MVT::v32i8,// ->147465
/*147462*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v32i8] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v32i8] }:$src
/*147465*/        0, // EndSwitchType
/*147466*/      /*Scope*/ 24, /*->147491*/
/*147467*/        OPC_CheckChild0Type, MVT::v4f64,
/*147469*/        OPC_SwitchType /*4 cases */, 3, MVT::v4i64,// ->147475
/*147472*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v4i64] }:$src
/*147475*/        /*SwitchType*/ 3, MVT::v8i32,// ->147480
/*147477*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i32] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v8i32] }:$src
/*147480*/        /*SwitchType*/ 3, MVT::v16i16,// ->147485
/*147482*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i16] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v16i16] }:$src
/*147485*/        /*SwitchType*/ 3, MVT::v32i8,// ->147490
/*147487*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v32i8] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v32i8] }:$src
/*147490*/        0, // EndSwitchType
/*147491*/      /*Scope*/ 19, /*->147511*/
/*147492*/        OPC_CheckChild0Type, MVT::v4i64,
/*147494*/        OPC_SwitchType /*3 cases */, 3, MVT::v8i32,// ->147500
/*147497*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i32] } VR256:{ *:[v4i64] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v8i32] }:$src
/*147500*/        /*SwitchType*/ 3, MVT::v16i16,// ->147505
/*147502*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i16] } VR256:{ *:[v4i64] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v16i16] }:$src
/*147505*/        /*SwitchType*/ 3, MVT::v32i8,// ->147510
/*147507*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v32i8] } VR256:{ *:[v4i64] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v32i8] }:$src
/*147510*/        0, // EndSwitchType
/*147511*/      /*Scope*/ 19, /*->147531*/
/*147512*/        OPC_CheckChild0Type, MVT::v16i32,
/*147514*/        OPC_SwitchType /*3 cases */, 3, MVT::v8i64,// ->147520
/*147517*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i64] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v8i64] }:$src
/*147520*/        /*SwitchType*/ 3, MVT::v32i16,// ->147525
/*147522*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v32i16] }:$src
/*147525*/        /*SwitchType*/ 3, MVT::v64i8,// ->147530
/*147527*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v64i8] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v64i8] }:$src
/*147530*/        0, // EndSwitchType
/*147531*/      /*Scope*/ 19, /*->147551*/
/*147532*/        OPC_CheckChild0Type, MVT::v32i16,
/*147534*/        OPC_SwitchType /*3 cases */, 3, MVT::v8i64,// ->147540
/*147537*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i64] } VR512:{ *:[v32i16] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v8i64] }:$src
/*147540*/        /*SwitchType*/ 3, MVT::v16i32,// ->147545
/*147542*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v16i32] }:$src
/*147545*/        /*SwitchType*/ 3, MVT::v64i8,// ->147550
/*147547*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v64i8] }:$src
/*147550*/        0, // EndSwitchType
/*147551*/      /*Scope*/ 19, /*->147571*/
/*147552*/        OPC_CheckChild0Type, MVT::v64i8,
/*147554*/        OPC_SwitchType /*3 cases */, 3, MVT::v8i64,// ->147560
/*147557*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i64] } VR512:{ *:[v64i8] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v8i64] }:$src
/*147560*/        /*SwitchType*/ 3, MVT::v16i32,// ->147565
/*147562*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i32] } VR512:{ *:[v64i8] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v16i32] }:$src
/*147565*/        /*SwitchType*/ 3, MVT::v32i16,// ->147570
/*147567*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v32i16] }:$src
/*147570*/        0, // EndSwitchType
/*147571*/      /*Scope*/ 24, /*->147596*/
/*147572*/        OPC_CheckChild0Type, MVT::v8f64,
/*147574*/        OPC_SwitchType /*4 cases */, 3, MVT::v8i64,// ->147580
/*147577*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v8i64] }:$src
/*147580*/        /*SwitchType*/ 3, MVT::v16i32,// ->147585
/*147582*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v16i32] }:$src
/*147585*/        /*SwitchType*/ 3, MVT::v32i16,// ->147590
/*147587*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v32i16] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v32i16] }:$src
/*147590*/        /*SwitchType*/ 3, MVT::v64i8,// ->147595
/*147592*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v64i8] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v64i8] }:$src
/*147595*/        0, // EndSwitchType
/*147596*/      /*Scope*/ 24, /*->147621*/
/*147597*/        OPC_CheckChild0Type, MVT::v16f32,
/*147599*/        OPC_SwitchType /*4 cases */, 3, MVT::v8i64,// ->147605
/*147602*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i64] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v8i64] }:$src
/*147605*/        /*SwitchType*/ 3, MVT::v16i32,// ->147610
/*147607*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v16i32] }:$src
/*147610*/        /*SwitchType*/ 3, MVT::v32i16,// ->147615
/*147612*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v32i16] }:$src
/*147615*/        /*SwitchType*/ 3, MVT::v64i8,// ->147620
/*147617*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v64i8] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v64i8] }:$src
/*147620*/        0, // EndSwitchType
/*147621*/      /*Scope*/ 19, /*->147641*/
/*147622*/        OPC_CheckChild0Type, MVT::v8i64,
/*147624*/        OPC_SwitchType /*3 cases */, 3, MVT::v16i32,// ->147630
/*147627*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i32] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v16i32] }:$src
/*147630*/        /*SwitchType*/ 3, MVT::v32i16,// ->147635
/*147632*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v32i16] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v32i16] }:$src
/*147635*/        /*SwitchType*/ 3, MVT::v64i8,// ->147640
/*147637*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v64i8] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v64i8] }:$src
/*147640*/        0, // EndSwitchType
/*147641*/      /*Scope*/ 15, /*->147657*/
/*147642*/        OPC_CheckChild0Type, MVT::i32,
/*147644*/        OPC_CheckType, MVT::v32i1,
/*147646*/        OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*147649*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v32i1, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v32i1] } GR32:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } GR32:{ *:[i32] }:$src, VK32:{ *:[i32] })
/*147657*/      /*Scope*/ 15, /*->147673*/
/*147658*/        OPC_CheckChild0Type, MVT::i64,
/*147660*/        OPC_CheckType, MVT::v64i1,
/*147662*/        OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*147665*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v64i1, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v64i1] } GR64:{ *:[i64] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } GR64:{ *:[i64] }:$src, VK64:{ *:[i32] })
/*147673*/      /*Scope*/ 33, /*->147707*/
/*147674*/        OPC_CheckChild0Type, MVT::i16,
/*147676*/        OPC_CheckType, MVT::v16i1,
/*147678*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #1
/*147684*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*147687*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*147696*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*147699*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 4, 
                  // Src: (bitconvert:{ *:[v16i1] } GR16:{ *:[i16] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }), VK16:{ *:[i32] })
/*147707*/      /*Scope*/ 33, /*->147741*/
/*147708*/        OPC_CheckChild0Type, MVT::i8,
/*147710*/        OPC_CheckType, MVT::v8i1,
/*147712*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #1
/*147718*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*147721*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*147730*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*147733*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 3, 4, 
                  // Src: (bitconvert:{ *:[v8i1] } GR8:{ *:[i8] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }), VK8:{ *:[i32] })
/*147741*/      0, /*End of Scope*/
/*147742*/    /*Scope*/ 100|128,1/*228*/, /*->147972*/
/*147744*/      OPC_MoveChild0,
/*147745*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*147748*/      OPC_RecordChild0, // #0 = $src1
/*147749*/      OPC_Scope, 45|128,1/*173*/, /*->147925*/ // 2 children in Scope
/*147752*/        OPC_MoveChild1,
/*147753*/        OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::BITCAST),// ->147845
/*147757*/          OPC_MoveChild0,
/*147758*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*147761*/          OPC_RecordMemRef,
/*147762*/          OPC_RecordNode, // #1 = 'ld' chained node
/*147763*/          OPC_CheckFoldableChainNode,
/*147764*/          OPC_RecordChild1, // #2 = $src2
/*147765*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*147767*/          OPC_CheckPredicate, 9, // Predicate_load
/*147769*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*147771*/          OPC_SwitchType /*2 cases */, 34, MVT::v16f32,// ->147808
/*147774*/            OPC_MoveParent,
/*147775*/            OPC_MoveParent,
/*147776*/            OPC_RecordChild2, // #3 = $src3
/*147777*/            OPC_MoveChild2,
/*147778*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*147781*/            OPC_MoveParent,
/*147782*/            OPC_CheckType, MVT::v8f64,
/*147784*/            OPC_MoveParent,
/*147785*/            OPC_CheckType, MVT::v16f32,
/*147787*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147789*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*147792*/            OPC_EmitMergeInputChains1_1,
/*147793*/            OPC_EmitConvertToTarget, 3,
/*147795*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (bitconvert:{ *:[v8f64] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3)) - Complexity = 34
                      // Dst: (VSHUFF32X4Zrmi:{ *:[v16f32] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*147808*/          /*SwitchType*/ 34, MVT::v8f32,// ->147844
/*147810*/            OPC_MoveParent,
/*147811*/            OPC_MoveParent,
/*147812*/            OPC_RecordChild2, // #3 = $src3
/*147813*/            OPC_MoveChild2,
/*147814*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*147817*/            OPC_MoveParent,
/*147818*/            OPC_CheckType, MVT::v4f64,
/*147820*/            OPC_MoveParent,
/*147821*/            OPC_CheckType, MVT::v8f32,
/*147823*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*147825*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*147828*/            OPC_EmitMergeInputChains1_1,
/*147829*/            OPC_EmitConvertToTarget, 3,
/*147831*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (bitconvert:{ *:[v4f64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3)) - Complexity = 34
                      // Dst: (VSHUFF32X4Z256rmi:{ *:[v8f32] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*147844*/          0, // EndSwitchType
/*147845*/        /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->147924
/*147848*/          OPC_MoveChild0,
/*147849*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*147852*/          OPC_RecordMemRef,
/*147853*/          OPC_RecordNode, // #1 = 'ld' chained node
/*147854*/          OPC_CheckFoldableChainNode,
/*147855*/          OPC_RecordChild1, // #2 = $src2
/*147856*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*147858*/          OPC_CheckPredicate, 9, // Predicate_load
/*147860*/          OPC_CheckType, MVT::f32,
/*147862*/          OPC_MoveParent,
/*147863*/          OPC_MoveParent,
/*147864*/          OPC_RecordChild2, // #3 = $src3
/*147865*/          OPC_MoveChild2,
/*147866*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*147869*/          OPC_MoveParent,
/*147870*/          OPC_SwitchType /*2 cases */, 24, MVT::v8f64,// ->147897
/*147873*/            OPC_MoveParent,
/*147874*/            OPC_CheckType, MVT::v16f32,
/*147876*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147878*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*147881*/            OPC_EmitMergeInputChains1_1,
/*147882*/            OPC_EmitConvertToTarget, 3,
/*147884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3)) - Complexity = 34
                      // Dst: (VSHUFF32X4Zrmbi:{ *:[v16f32] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*147897*/          /*SwitchType*/ 24, MVT::v4f64,// ->147923
/*147899*/            OPC_MoveParent,
/*147900*/            OPC_CheckType, MVT::v8f32,
/*147902*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*147904*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*147907*/            OPC_EmitMergeInputChains1_1,
/*147908*/            OPC_EmitConvertToTarget, 3,
/*147910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3)) - Complexity = 34
                      // Dst: (VSHUFF32X4Z256rmbi:{ *:[v8f32] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*147923*/          0, // EndSwitchType
/*147924*/        0, // EndSwitchOpcode
/*147925*/      /*Scope*/ 45, /*->147971*/
/*147926*/        OPC_RecordChild1, // #1 = $src2
/*147927*/        OPC_RecordChild2, // #2 = $src3
/*147928*/        OPC_MoveChild2,
/*147929*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*147932*/        OPC_MoveParent,
/*147933*/        OPC_SwitchType /*2 cases */, 16, MVT::v8f64,// ->147952
/*147936*/          OPC_MoveParent,
/*147937*/          OPC_CheckType, MVT::v16f32,
/*147939*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147941*/          OPC_EmitConvertToTarget, 2,
/*147943*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrri), 0,
                        MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)) - Complexity = 9
                    // Dst: (VSHUFF32X4Zrri:{ *:[v16f32] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*147952*/        /*SwitchType*/ 16, MVT::v4f64,// ->147970
/*147954*/          OPC_MoveParent,
/*147955*/          OPC_CheckType, MVT::v8f32,
/*147957*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*147959*/          OPC_EmitConvertToTarget, 2,
/*147961*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rri), 0,
                        MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)) - Complexity = 9
                    // Dst: (VSHUFF32X4Z256rri:{ *:[v8f32] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*147970*/        0, // EndSwitchType
/*147971*/      0, /*End of Scope*/
/*147972*/    /*Scope*/ 103|128,1/*231*/, /*->148205*/
/*147974*/      OPC_RecordChild0, // #0 = $src
/*147975*/      OPC_Scope, 14, /*->147991*/ // 18 children in Scope
/*147977*/        OPC_CheckChild0Type, MVT::v2i64,
/*147979*/        OPC_SwitchType /*2 cases */, 3, MVT::v4f32,// ->147985
/*147982*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v4f32] }:$src
/*147985*/        /*SwitchType*/ 3, MVT::v2f64,// ->147990
/*147987*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f64] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v2f64] }:$src
/*147990*/        0, // EndSwitchType
/*147991*/      /*Scope*/ 14, /*->148006*/
/*147992*/        OPC_CheckChild0Type, MVT::v4i32,
/*147994*/        OPC_SwitchType /*2 cases */, 3, MVT::v4f32,// ->148000
/*147997*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v4f32] }:$src
/*148000*/        /*SwitchType*/ 3, MVT::v2f64,// ->148005
/*148002*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v2f64] }:$src
/*148005*/        0, // EndSwitchType
/*148006*/      /*Scope*/ 14, /*->148021*/
/*148007*/        OPC_CheckChild0Type, MVT::v8i16,
/*148009*/        OPC_SwitchType /*2 cases */, 3, MVT::v4f32,// ->148015
/*148012*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v4f32] }:$src
/*148015*/        /*SwitchType*/ 3, MVT::v2f64,// ->148020
/*148017*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f64] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v2f64] }:$src
/*148020*/        0, // EndSwitchType
/*148021*/      /*Scope*/ 14, /*->148036*/
/*148022*/        OPC_CheckChild0Type, MVT::v16i8,
/*148024*/        OPC_SwitchType /*2 cases */, 3, MVT::v4f32,// ->148030
/*148027*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v4f32] }:$src
/*148030*/        /*SwitchType*/ 3, MVT::v2f64,// ->148035
/*148032*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f64] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: VR128:{ *:[v2f64] }:$src
/*148035*/        0, // EndSwitchType
/*148036*/      /*Scope*/ 7, /*->148044*/
/*148037*/        OPC_CheckChild0Type, MVT::v2f64,
/*148039*/        OPC_CheckType, MVT::v4f32,
/*148041*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                   // Dst: VR128:{ *:[v4f32] }:$src
/*148044*/      /*Scope*/ 7, /*->148052*/
/*148045*/        OPC_CheckChild0Type, MVT::v4f32,
/*148047*/        OPC_CheckType, MVT::v2f64,
/*148049*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: VR128:{ *:[v2f64] }:$src
/*148052*/      /*Scope*/ 14, /*->148067*/
/*148053*/        OPC_CheckChild0Type, MVT::v4i64,
/*148055*/        OPC_SwitchType /*2 cases */, 3, MVT::v8f32,// ->148061
/*148058*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f32] } VR256:{ *:[v4i64] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v8f32] }:$src
/*148061*/        /*SwitchType*/ 3, MVT::v4f64,// ->148066
/*148063*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f64] } VR256:{ *:[v4i64] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v4f64] }:$src
/*148066*/        0, // EndSwitchType
/*148067*/      /*Scope*/ 14, /*->148082*/
/*148068*/        OPC_CheckChild0Type, MVT::v8i32,
/*148070*/        OPC_SwitchType /*2 cases */, 3, MVT::v8f32,// ->148076
/*148073*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v8f32] }:$src
/*148076*/        /*SwitchType*/ 3, MVT::v4f64,// ->148081
/*148078*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f64] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v4f64] }:$src
/*148081*/        0, // EndSwitchType
/*148082*/      /*Scope*/ 14, /*->148097*/
/*148083*/        OPC_CheckChild0Type, MVT::v16i16,
/*148085*/        OPC_SwitchType /*2 cases */, 3, MVT::v8f32,// ->148091
/*148088*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f32] } VR256:{ *:[v16i16] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v8f32] }:$src
/*148091*/        /*SwitchType*/ 3, MVT::v4f64,// ->148096
/*148093*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f64] } VR256:{ *:[v16i16] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v4f64] }:$src
/*148096*/        0, // EndSwitchType
/*148097*/      /*Scope*/ 14, /*->148112*/
/*148098*/        OPC_CheckChild0Type, MVT::v32i8,
/*148100*/        OPC_SwitchType /*2 cases */, 3, MVT::v8f32,// ->148106
/*148103*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f32] } VR256:{ *:[v32i8] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v8f32] }:$src
/*148106*/        /*SwitchType*/ 3, MVT::v4f64,// ->148111
/*148108*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f64] } VR256:{ *:[v32i8] }:$src) - Complexity = 3
                     // Dst: VR256:{ *:[v4f64] }:$src
/*148111*/        0, // EndSwitchType
/*148112*/      /*Scope*/ 7, /*->148120*/
/*148113*/        OPC_CheckChild0Type, MVT::v4f64,
/*148115*/        OPC_CheckType, MVT::v8f32,
/*148117*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v8f32] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                   // Dst: VR256:{ *:[v8f32] }:$src
/*148120*/      /*Scope*/ 7, /*->148128*/
/*148121*/        OPC_CheckChild0Type, MVT::v8f32,
/*148123*/        OPC_CheckType, MVT::v4f64,
/*148125*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4f64] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                   // Dst: VR256:{ *:[v4f64] }:$src
/*148128*/      /*Scope*/ 14, /*->148143*/
/*148129*/        OPC_CheckChild0Type, MVT::v8i64,
/*148131*/        OPC_SwitchType /*2 cases */, 3, MVT::v8f64,// ->148137
/*148134*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v8f64] }:$src
/*148137*/        /*SwitchType*/ 3, MVT::v16f32,// ->148142
/*148139*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v16f32] }:$src
/*148142*/        0, // EndSwitchType
/*148143*/      /*Scope*/ 14, /*->148158*/
/*148144*/        OPC_CheckChild0Type, MVT::v16i32,
/*148146*/        OPC_SwitchType /*2 cases */, 3, MVT::v8f64,// ->148152
/*148149*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f64] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v8f64] }:$src
/*148152*/        /*SwitchType*/ 3, MVT::v16f32,// ->148157
/*148154*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v16f32] }:$src
/*148157*/        0, // EndSwitchType
/*148158*/      /*Scope*/ 14, /*->148173*/
/*148159*/        OPC_CheckChild0Type, MVT::v32i16,
/*148161*/        OPC_SwitchType /*2 cases */, 3, MVT::v8f64,// ->148167
/*148164*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f64] } VR512:{ *:[v32i16] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v8f64] }:$src
/*148167*/        /*SwitchType*/ 3, MVT::v16f32,// ->148172
/*148169*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16f32] } VR512:{ *:[v32i16] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v16f32] }:$src
/*148172*/        0, // EndSwitchType
/*148173*/      /*Scope*/ 14, /*->148188*/
/*148174*/        OPC_CheckChild0Type, MVT::v64i8,
/*148176*/        OPC_SwitchType /*2 cases */, 3, MVT::v8f64,// ->148182
/*148179*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f64] } VR512:{ *:[v64i8] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v8f64] }:$src
/*148182*/        /*SwitchType*/ 3, MVT::v16f32,// ->148187
/*148184*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16f32] } VR512:{ *:[v64i8] }:$src) - Complexity = 3
                     // Dst: VR512:{ *:[v16f32] }:$src
/*148187*/        0, // EndSwitchType
/*148188*/      /*Scope*/ 7, /*->148196*/
/*148189*/        OPC_CheckChild0Type, MVT::v16f32,
/*148191*/        OPC_CheckType, MVT::v8f64,
/*148193*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v8f64] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                   // Dst: VR512:{ *:[v8f64] }:$src
/*148196*/      /*Scope*/ 7, /*->148204*/
/*148197*/        OPC_CheckChild0Type, MVT::v8f64,
/*148199*/        OPC_CheckType, MVT::v16f32,
/*148201*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v16f32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                   // Dst: VR512:{ *:[v16f32] }:$src
/*148204*/      0, /*End of Scope*/
/*148205*/    0, /*End of Scope*/
/*148206*/  /*SwitchOpcode*/ 82|128,2/*338*/, TARGET_VAL(ISD::SIGN_EXTEND),// ->148548
/*148210*/    OPC_Scope, 53, /*->148265*/ // 2 children in Scope
/*148212*/      OPC_MoveChild0,
/*148213*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*148216*/      OPC_CheckChild0Integer, 2, 
/*148218*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*148219*/      OPC_Scope, 13, /*->148234*/ // 2 children in Scope
/*148221*/        OPC_MoveParent,
/*148222*/        OPC_CheckType, MVT::i16,
/*148224*/        OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*148227*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C16r), 0|OPFL_GlueInput,
                      MVT::i16, MVT::i32, 0/*#Ops*/, 
                  // Src: (sext:{ *:[i16] } (X86setcc_c:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] })) - Complexity = 11
                  // Dst: (SETB_C16r:{ *:[i16] }:{ *:[i32] })
/*148234*/      /*Scope*/ 29, /*->148264*/
/*148235*/        OPC_CheckType, MVT::i8,
/*148237*/        OPC_MoveParent,
/*148238*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->148251
/*148241*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*148244*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C32r), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 0/*#Ops*/, 
                    // Src: (sext:{ *:[i32] } (X86setcc_c:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] })) - Complexity = 11
                    // Dst: (SETB_C32r:{ *:[i32] }:{ *:[i32] })
/*148251*/        /*SwitchType*/ 10, MVT::i64,// ->148263
/*148253*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*148256*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C64r), 0|OPFL_GlueInput,
                        MVT::i64, MVT::i32, 0/*#Ops*/, 
                    // Src: (sext:{ *:[i64] } (X86setcc_c:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] })) - Complexity = 11
                    // Dst: (SETB_C64r:{ *:[i64] }:{ *:[i32] })
/*148263*/        0, // EndSwitchType
/*148264*/      0, /*End of Scope*/
/*148265*/    /*Scope*/ 24|128,2/*280*/, /*->148547*/
/*148267*/      OPC_RecordChild0, // #0 = $src
/*148268*/      OPC_Scope, 22, /*->148292*/ // 16 children in Scope
/*148270*/        OPC_CheckChild0Type, MVT::i8,
/*148272*/        OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->148282
/*148275*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX32rr8), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (sext:{ *:[i32] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (MOVSX32rr8:{ *:[i32] } GR8:{ *:[i8] }:$src)
/*148282*/        /*SwitchType*/ 7, MVT::i64,// ->148291
/*148284*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX64rr8), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (sext:{ *:[i64] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (MOVSX64rr8:{ *:[i64] } GR8:{ *:[i8] }:$src)
/*148291*/        0, // EndSwitchType
/*148292*/      /*Scope*/ 22, /*->148315*/
/*148293*/        OPC_CheckChild0Type, MVT::i16,
/*148295*/        OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->148305
/*148298*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX32rr16), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (sext:{ *:[i32] } GR16:{ *:[i16] }:$src) - Complexity = 3
                    // Dst: (MOVSX32rr16:{ *:[i32] } GR16:{ *:[i16] }:$src)
/*148305*/        /*SwitchType*/ 7, MVT::i64,// ->148314
/*148307*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX64rr16), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (sext:{ *:[i64] } GR16:{ *:[i16] }:$src) - Complexity = 3
                    // Dst: (MOVSX64rr16:{ *:[i64] } GR16:{ *:[i16] }:$src)
/*148314*/        0, // EndSwitchType
/*148315*/      /*Scope*/ 13, /*->148329*/
/*148316*/        OPC_CheckChild0Type, MVT::i32,
/*148318*/        OPC_CheckType, MVT::i64,
/*148320*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*148322*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX64rr32), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[i64] } GR32:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (MOVSX64rr32:{ *:[i64] } GR32:{ *:[i32] }:$src)
/*148329*/      /*Scope*/ 20, /*->148350*/
/*148330*/        OPC_CheckType, MVT::i16,
/*148332*/        OPC_EmitNode1, TARGET_VAL(X86::MOVSX32rr8), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*148339*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*148342*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      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] })
/*148350*/      /*Scope*/ 11, /*->148362*/
/*148351*/        OPC_CheckType, MVT::v64i8,
/*148353*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*148355*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2BZrr), 0,
                      MVT::v64i8, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v64i8] } VK64:{ *:[v64i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2BZrr:{ *:[v64i8] } VK64:{ *:[v64i1] }:$src)
/*148362*/      /*Scope*/ 11, /*->148374*/
/*148363*/        OPC_CheckType, MVT::v32i8,
/*148365*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*148367*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2BZ256rr), 0,
                      MVT::v32i8, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v32i8] } VK32:{ *:[v32i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2BZ256rr:{ *:[v32i8] } VK32:{ *:[v32i1] }:$src)
/*148374*/      /*Scope*/ 31, /*->148406*/
/*148375*/        OPC_CheckType, MVT::v16i8,
/*148377*/        OPC_Scope, 9, /*->148388*/ // 2 children in Scope
/*148379*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*148381*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2BZ128rr), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (sext:{ *:[v16i8] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                    // Dst: (VPMOVM2BZ128rr:{ *:[v16i8] } VK16:{ *:[v16i1] }:$src)
/*148388*/        /*Scope*/ 16, /*->148405*/
/*148389*/          OPC_CheckPatternPredicate, 153, // (Subtarget->hasDQI()) && (!Subtarget->hasBWI())
/*148391*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVM2DZrr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0,  // Results = #1
/*148398*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrr), 0,
                        MVT::v16i8, 1/*#Ops*/, 1, 
                    // Src: (sext:{ *:[v16i8] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                    // Dst: (VPMOVDBZrr:{ *:[v16i8] } (VPMOVM2DZrr:{ *:[v16i32] } VK16:{ *:[v16i1] }:$src))
/*148405*/        0, /*End of Scope*/
/*148406*/      /*Scope*/ 13, /*->148420*/
/*148407*/        OPC_CheckType, MVT::v32i16,
/*148409*/        OPC_CheckChild0Type, MVT::v32i1,
/*148411*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*148413*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2WZrr), 0,
                      MVT::v32i16, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v32i16] } VK32:{ *:[v32i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2WZrr:{ *:[v32i16] } VK32:{ *:[v32i1] }:$src)
/*148420*/      /*Scope*/ 33, /*->148454*/
/*148421*/        OPC_CheckType, MVT::v16i16,
/*148423*/        OPC_CheckChild0Type, MVT::v16i1,
/*148425*/        OPC_Scope, 9, /*->148436*/ // 2 children in Scope
/*148427*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*148429*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2WZ256rr), 0,
                        MVT::v16i16, 1/*#Ops*/, 0, 
                    // Src: (sext:{ *:[v16i16] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                    // Dst: (VPMOVM2WZ256rr:{ *:[v16i16] } VK16:{ *:[v16i1] }:$src)
/*148436*/        /*Scope*/ 16, /*->148453*/
/*148437*/          OPC_CheckPatternPredicate, 153, // (Subtarget->hasDQI()) && (!Subtarget->hasBWI())
/*148439*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVM2DZrr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0,  // Results = #1
/*148446*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZrr), 0,
                        MVT::v16i16, 1/*#Ops*/, 1, 
                    // Src: (sext:{ *:[v16i16] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                    // Dst: (VPMOVDWZrr:{ *:[v16i16] } (VPMOVM2DZrr:{ *:[v16i32] } VK16:{ *:[v16i1] }:$src))
/*148453*/        0, /*End of Scope*/
/*148454*/      /*Scope*/ 11, /*->148466*/
/*148455*/        OPC_CheckType, MVT::v8i16,
/*148457*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*148459*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2WZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v8i16] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2WZ128rr:{ *:[v8i16] } VK8:{ *:[v8i1] }:$src)
/*148466*/      /*Scope*/ 13, /*->148480*/
/*148467*/        OPC_CheckType, MVT::v16i32,
/*148469*/        OPC_CheckChild0Type, MVT::v16i1,
/*148471*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*148473*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2DZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v16i32] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2DZrr:{ *:[v16i32] } VK16:{ *:[v16i1] }:$src)
/*148480*/      /*Scope*/ 13, /*->148494*/
/*148481*/        OPC_CheckType, MVT::v8i32,
/*148483*/        OPC_CheckChild0Type, MVT::v8i1,
/*148485*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*148487*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2DZ256rr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v8i32] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2DZ256rr:{ *:[v8i32] } VK8:{ *:[v8i1] }:$src)
/*148494*/      /*Scope*/ 11, /*->148506*/
/*148495*/        OPC_CheckType, MVT::v4i32,
/*148497*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*148499*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2DZ128rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v4i32] } VK4:{ *:[v4i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2DZ128rr:{ *:[v4i32] } VK4:{ *:[v4i1] }:$src)
/*148506*/      /*Scope*/ 13, /*->148520*/
/*148507*/        OPC_CheckType, MVT::v8i64,
/*148509*/        OPC_CheckChild0Type, MVT::v8i1,
/*148511*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*148513*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2QZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v8i64] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2QZrr:{ *:[v8i64] } VK8:{ *:[v8i1] }:$src)
/*148520*/      /*Scope*/ 13, /*->148534*/
/*148521*/        OPC_CheckType, MVT::v4i64,
/*148523*/        OPC_CheckChild0Type, MVT::v4i1,
/*148525*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*148527*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2QZ256rr), 0,
                      MVT::v4i64, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v4i64] } VK4:{ *:[v4i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2QZ256rr:{ *:[v4i64] } VK4:{ *:[v4i1] }:$src)
/*148534*/      /*Scope*/ 11, /*->148546*/
/*148535*/        OPC_CheckType, MVT::v2i64,
/*148537*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*148539*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2QZ128rr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v2i64] } VK2:{ *:[v2i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2QZ128rr:{ *:[v2i64] } VK2:{ *:[v2i1] }:$src)
/*148546*/      0, /*End of Scope*/
/*148547*/    0, /*End of Scope*/
/*148548*/  /*SwitchOpcode*/ 8|128,7/*904*/, TARGET_VAL(ISD::ROTR),// ->149456
/*148552*/    OPC_RecordChild0, // #0 = $src1
/*148553*/    OPC_Scope, 91, /*->148646*/ // 4 children in Scope
/*148555*/      OPC_MoveChild1,
/*148556*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*148559*/      OPC_RecordChild0, // #1 = physreg input CL
/*148560*/      OPC_MoveChild1,
/*148561*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*148564*/      OPC_Scope, 19, /*->148585*/ // 4 children in Scope
/*148566*/        OPC_CheckPredicate, 11, // Predicate_immShift8
/*148568*/        OPC_MoveParent,
/*148569*/        OPC_CheckType, MVT::i8,
/*148571*/        OPC_MoveParent,
/*148572*/        OPC_CheckType, MVT::i8,
/*148574*/        OPC_EmitCopyToReg, 1, X86::CL,
/*148577*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROR8rCL), 0|OPFL_GlueInput,
                      MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:{ *:[i8] } GR8:{ *:[i8] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift8>>)) - Complexity = 10
                  // Dst: (ROR8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/*148585*/      /*Scope*/ 19, /*->148605*/
/*148586*/        OPC_CheckPredicate, 12, // Predicate_immShift16
/*148588*/        OPC_MoveParent,
/*148589*/        OPC_CheckType, MVT::i8,
/*148591*/        OPC_MoveParent,
/*148592*/        OPC_CheckType, MVT::i16,
/*148594*/        OPC_EmitCopyToReg, 1, X86::CL,
/*148597*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROR16rCL), 0|OPFL_GlueInput,
                      MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:{ *:[i16] } GR16:{ *:[i16] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift16>>)) - Complexity = 10
                  // Dst: (ROR16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/*148605*/      /*Scope*/ 19, /*->148625*/
/*148606*/        OPC_CheckPredicate, 6, // Predicate_immShift32
/*148608*/        OPC_MoveParent,
/*148609*/        OPC_CheckType, MVT::i8,
/*148611*/        OPC_MoveParent,
/*148612*/        OPC_CheckType, MVT::i32,
/*148614*/        OPC_EmitCopyToReg, 1, X86::CL,
/*148617*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROR32rCL), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                  // Dst: (ROR32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/*148625*/      /*Scope*/ 19, /*->148645*/
/*148626*/        OPC_CheckPredicate, 10, // Predicate_immShift64
/*148628*/        OPC_MoveParent,
/*148629*/        OPC_CheckType, MVT::i8,
/*148631*/        OPC_MoveParent,
/*148632*/        OPC_CheckType, MVT::i64,
/*148634*/        OPC_EmitCopyToReg, 1, X86::CL,
/*148637*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROR64rCL), 0|OPFL_GlueInput,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 10
                  // Dst: (ROR64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/*148645*/      0, /*End of Scope*/
/*148646*/    /*Scope*/ 121, /*->148768*/
/*148647*/      OPC_RecordChild1, // #1 = $src2
/*148648*/      OPC_CheckChild1Type, MVT::i8,
/*148650*/      OPC_SwitchType /*4 cases */, 27, MVT::i8,// ->148680
/*148653*/        OPC_Scope, 12, /*->148667*/ // 2 children in Scope
/*148655*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*148658*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (rotr:{ *:[i8] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2) - Complexity = 6
                    // Dst: (ROR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/*148667*/        /*Scope*/ 11, /*->148679*/
/*148668*/          OPC_EmitCopyToReg, 1, X86::CL,
/*148671*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR8rCL), 0|OPFL_GlueInput,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotr:{ *:[i8] } GR8:{ *:[i8] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                    // Dst: (ROR8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/*148679*/        0, /*End of Scope*/
/*148680*/      /*SwitchType*/ 27, MVT::i16,// ->148709
/*148682*/        OPC_Scope, 12, /*->148696*/ // 2 children in Scope
/*148684*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*148687*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (rotr:{ *:[i16] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i8] }:$src2) - Complexity = 6
                    // Dst: (ROR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i8] }:$src2)
/*148696*/        /*Scope*/ 11, /*->148708*/
/*148697*/          OPC_EmitCopyToReg, 1, X86::CL,
/*148700*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR16rCL), 0|OPFL_GlueInput,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotr:{ *:[i16] } GR16:{ *:[i16] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                    // Dst: (ROR16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/*148708*/        0, /*End of Scope*/
/*148709*/      /*SwitchType*/ 27, MVT::i32,// ->148738
/*148711*/        OPC_Scope, 12, /*->148725*/ // 2 children in Scope
/*148713*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*148716*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (rotr:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i8] }:$src2) - Complexity = 6
                    // Dst: (ROR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i8] }:$src2)
/*148725*/        /*Scope*/ 11, /*->148737*/
/*148726*/          OPC_EmitCopyToReg, 1, X86::CL,
/*148729*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR32rCL), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotr:{ *:[i32] } GR32:{ *:[i32] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                    // Dst: (ROR32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/*148737*/        0, /*End of Scope*/
/*148738*/      /*SwitchType*/ 27, MVT::i64,// ->148767
/*148740*/        OPC_Scope, 12, /*->148754*/ // 2 children in Scope
/*148742*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/*148745*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR64ri), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (rotr:{ *:[i64] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i8] }:$src2) - Complexity = 6
                    // Dst: (ROR64ri:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i8] }:$src2)
/*148754*/        /*Scope*/ 11, /*->148766*/
/*148755*/          OPC_EmitCopyToReg, 1, X86::CL,
/*148758*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR64rCL), 0|OPFL_GlueInput,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotr:{ *:[i64] } GR64:{ *:[i64] }:$src1, CL:{ *:[i8] }) - Complexity = 3
                    // Dst: (ROR64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/*148766*/        0, /*End of Scope*/
/*148767*/      0, // EndSwitchType
/*148768*/    /*Scope*/ 96|128,2/*352*/, /*->149122*/
/*148770*/      OPC_MoveChild1,
/*148771*/      OPC_SwitchOpcode /*3 cases */, 94, TARGET_VAL(ISD::BITCAST),// ->148869
/*148775*/        OPC_MoveChild0,
/*148776*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148779*/        OPC_RecordMemRef,
/*148780*/        OPC_RecordNode, // #1 = 'ld' chained node
/*148781*/        OPC_CheckFoldableChainNode,
/*148782*/        OPC_RecordChild1, // #2 = $src2
/*148783*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148785*/        OPC_CheckPredicate, 9, // Predicate_load
/*148787*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*148789*/        OPC_SwitchType /*3 cases */, 24, MVT::v8i64,// ->148816
/*148792*/          OPC_MoveParent,
/*148793*/          OPC_CheckType, MVT::v16i32,
/*148795*/          OPC_MoveParent,
/*148796*/          OPC_CheckType, MVT::v16i32,
/*148798*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*148800*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148803*/          OPC_EmitMergeInputChains1_1,
/*148804*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPRORVDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148816*/        /*SwitchType*/ 24, MVT::v4i64,// ->148842
/*148818*/          OPC_MoveParent,
/*148819*/          OPC_CheckType, MVT::v8i32,
/*148821*/          OPC_MoveParent,
/*148822*/          OPC_CheckType, MVT::v8i32,
/*148824*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148826*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148829*/          OPC_EmitMergeInputChains1_1,
/*148830*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPRORVDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148842*/        /*SwitchType*/ 24, MVT::v2i64,// ->148868
/*148844*/          OPC_MoveParent,
/*148845*/          OPC_CheckType, MVT::v4i32,
/*148847*/          OPC_MoveParent,
/*148848*/          OPC_CheckType, MVT::v4i32,
/*148850*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148852*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148855*/          OPC_EmitMergeInputChains1_1,
/*148856*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPRORVDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148868*/        0, // EndSwitchType
/*148869*/      /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST),// ->149037
/*148873*/        OPC_MoveChild0,
/*148874*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148877*/        OPC_RecordMemRef,
/*148878*/        OPC_RecordNode, // #1 = 'ld' chained node
/*148879*/        OPC_CheckFoldableChainNode,
/*148880*/        OPC_RecordChild1, // #2 = $src2
/*148881*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148883*/        OPC_SwitchType /*2 cases */, 74, MVT::i32,// ->148960
/*148886*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*148888*/          OPC_MoveParent,
/*148889*/          OPC_SwitchType /*3 cases */, 21, MVT::v16i32,// ->148913
/*148892*/            OPC_MoveParent,
/*148893*/            OPC_CheckType, MVT::v16i32,
/*148895*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*148897*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148900*/            OPC_EmitMergeInputChains1_1,
/*148901*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPRORVDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148913*/          /*SwitchType*/ 21, MVT::v8i32,// ->148936
/*148915*/            OPC_MoveParent,
/*148916*/            OPC_CheckType, MVT::v8i32,
/*148918*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148920*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148923*/            OPC_EmitMergeInputChains1_1,
/*148924*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPRORVDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148936*/          /*SwitchType*/ 21, MVT::v4i32,// ->148959
/*148938*/            OPC_MoveParent,
/*148939*/            OPC_CheckType, MVT::v4i32,
/*148941*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148943*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148946*/            OPC_EmitMergeInputChains1_1,
/*148947*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPRORVDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148959*/          0, // EndSwitchType
/*148960*/        /*SwitchType*/ 74, MVT::i64,// ->149036
/*148962*/          OPC_CheckPredicate, 9, // Predicate_load
/*148964*/          OPC_MoveParent,
/*148965*/          OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->148989
/*148968*/            OPC_MoveParent,
/*148969*/            OPC_CheckType, MVT::v8i64,
/*148971*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*148973*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148976*/            OPC_EmitMergeInputChains1_1,
/*148977*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPRORVQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148989*/          /*SwitchType*/ 21, MVT::v4i64,// ->149012
/*148991*/            OPC_MoveParent,
/*148992*/            OPC_CheckType, MVT::v4i64,
/*148994*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148996*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148999*/            OPC_EmitMergeInputChains1_1,
/*149000*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPRORVQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*149012*/          /*SwitchType*/ 21, MVT::v2i64,// ->149035
/*149014*/            OPC_MoveParent,
/*149015*/            OPC_CheckType, MVT::v2i64,
/*149017*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*149019*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*149022*/            OPC_EmitMergeInputChains1_1,
/*149023*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (rotr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPRORVQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*149035*/          0, // EndSwitchType
/*149036*/        0, // EndSwitchType
/*149037*/      /*SwitchOpcode*/ 81, TARGET_VAL(ISD::LOAD),// ->149121
/*149040*/        OPC_RecordMemRef,
/*149041*/        OPC_RecordNode, // #1 = 'ld' chained node
/*149042*/        OPC_CheckFoldableChainNode,
/*149043*/        OPC_RecordChild1, // #2 = $src2
/*149044*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149046*/        OPC_CheckPredicate, 9, // Predicate_load
/*149048*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*149050*/        OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->149074
/*149053*/          OPC_MoveParent,
/*149054*/          OPC_CheckType, MVT::v8i64,
/*149056*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149058*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*149061*/          OPC_EmitMergeInputChains1_1,
/*149062*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPRORVQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*149074*/        /*SwitchType*/ 21, MVT::v4i64,// ->149097
/*149076*/          OPC_MoveParent,
/*149077*/          OPC_CheckType, MVT::v4i64,
/*149079*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*149081*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*149084*/          OPC_EmitMergeInputChains1_1,
/*149085*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPRORVQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*149097*/        /*SwitchType*/ 21, MVT::v2i64,// ->149120
/*149099*/          OPC_MoveParent,
/*149100*/          OPC_CheckType, MVT::v2i64,
/*149102*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*149104*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*149107*/          OPC_EmitMergeInputChains1_1,
/*149108*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (rotr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPRORVQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*149120*/        0, // EndSwitchType
/*149121*/      0, // EndSwitchOpcode
/*149122*/    /*Scope*/ 75|128,2/*331*/, /*->149455*/
/*149124*/      OPC_RecordChild1, // #1 = $src2
/*149125*/      OPC_SwitchType /*6 cases */, 12, MVT::v16i32,// ->149140
/*149128*/        OPC_CheckChild1Type, MVT::v16i32,
/*149130*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149132*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (rotr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPRORVDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*149140*/      /*SwitchType*/ 73, MVT::v8i32,// ->149215
/*149142*/        OPC_CheckChild1Type, MVT::v8i32,
/*149144*/        OPC_Scope, 10, /*->149156*/ // 2 children in Scope
/*149146*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*149148*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (rotr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPRORVDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*149156*/        /*Scope*/ 57, /*->149214*/
/*149157*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*149159*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*149165*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*149168*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*149177*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*149183*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*149186*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*149195*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORVDZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 4, 7,  // Results = #8
/*149203*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*149206*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i32, 2/*#Ops*/, 8, 9, 
                    // Src: (rotr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VPRORVDZrr:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*149214*/        0, /*End of Scope*/
/*149215*/      /*SwitchType*/ 73, MVT::v4i32,// ->149290
/*149217*/        OPC_CheckChild1Type, MVT::v4i32,
/*149219*/        OPC_Scope, 10, /*->149231*/ // 2 children in Scope
/*149221*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*149223*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (rotr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPRORVDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*149231*/        /*Scope*/ 57, /*->149289*/
/*149232*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*149234*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*149240*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*149243*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*149252*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*149258*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*149261*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*149270*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORVDZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 4, 7,  // Results = #8
/*149278*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*149281*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 8, 9, 
                    // Src: (rotr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VPRORVDZrr:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*149289*/        0, /*End of Scope*/
/*149290*/      /*SwitchType*/ 12, MVT::v8i64,// ->149304
/*149292*/        OPC_CheckChild1Type, MVT::v8i64,
/*149294*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149296*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (rotr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPRORVQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*149304*/      /*SwitchType*/ 73, MVT::v4i64,// ->149379
/*149306*/        OPC_CheckChild1Type, MVT::v4i64,
/*149308*/        OPC_Scope, 10, /*->149320*/ // 2 children in Scope
/*149310*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*149312*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (rotr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPRORVQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*149320*/        /*Scope*/ 57, /*->149378*/
/*149321*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*149323*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*149329*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*149332*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*149341*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*149347*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*149350*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*149359*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORVQZrr), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 7,  // Results = #8
/*149367*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*149370*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 8, 9, 
                    // Src: (rotr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPRORVQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*149378*/        0, /*End of Scope*/
/*149379*/      /*SwitchType*/ 73, MVT::v2i64,// ->149454
/*149381*/        OPC_CheckChild1Type, MVT::v2i64,
/*149383*/        OPC_Scope, 10, /*->149395*/ // 2 children in Scope
/*149385*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*149387*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (rotr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPRORVQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*149395*/        /*Scope*/ 57, /*->149453*/
/*149396*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*149398*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*149404*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*149407*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*149416*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*149422*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*149425*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*149434*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORVQZrr), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 7,  // Results = #8
/*149442*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*149445*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 8, 9, 
                    // Src: (rotr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPRORVQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*149453*/        0, /*End of Scope*/
/*149454*/      0, // EndSwitchType
/*149455*/    0, /*End of Scope*/
/*149456*/  /*SwitchOpcode*/ 49|128,1/*177*/, TARGET_VAL(X86ISD::SHLD),// ->149637
/*149460*/    OPC_RecordChild0, // #0 = $src1
/*149461*/    OPC_RecordChild1, // #1 = $src2
/*149462*/    OPC_Scope, 69, /*->149533*/ // 2 children in Scope
/*149464*/      OPC_MoveChild2,
/*149465*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*149468*/      OPC_RecordChild0, // #2 = physreg input CL
/*149469*/      OPC_MoveChild1,
/*149470*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*149473*/      OPC_Scope, 36, /*->149511*/ // 2 children in Scope
/*149475*/        OPC_CheckPredicate, 6, // Predicate_immShift32
/*149477*/        OPC_MoveParent,
/*149478*/        OPC_CheckType, MVT::i8,
/*149480*/        OPC_MoveParent,
/*149481*/        OPC_SwitchType /*2 cases */, 12, MVT::i16,// ->149496
/*149484*/          OPC_EmitCopyToReg, 2, X86::CL,
/*149487*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHLD16rrCL), 0|OPFL_GlueInput,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86shld:{ *:[i16] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                    // Dst: (SHLD16rrCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)
/*149496*/        /*SwitchType*/ 12, MVT::i32,// ->149510
/*149498*/          OPC_EmitCopyToReg, 2, X86::CL,
/*149501*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHLD32rrCL), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86shld:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                    // Dst: (SHLD32rrCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/*149510*/        0, // EndSwitchType
/*149511*/      /*Scope*/ 20, /*->149532*/
/*149512*/        OPC_CheckPredicate, 10, // Predicate_immShift64
/*149514*/        OPC_MoveParent,
/*149515*/        OPC_CheckType, MVT::i8,
/*149517*/        OPC_MoveParent,
/*149518*/        OPC_CheckType, MVT::i64,
/*149520*/        OPC_EmitCopyToReg, 2, X86::CL,
/*149523*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SHLD64rrCL), 0|OPFL_GlueInput,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86shld:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 10
                  // Dst: (SHLD64rrCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/*149532*/      0, /*End of Scope*/
/*149533*/    /*Scope*/ 102, /*->149636*/
/*149534*/      OPC_RecordChild2, // #2 = $src3
/*149535*/      OPC_Scope, 51, /*->149588*/ // 2 children in Scope
/*149537*/        OPC_MoveChild2,
/*149538*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*149541*/        OPC_CheckType, MVT::i8,
/*149543*/        OPC_MoveParent,
/*149544*/        OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->149559
/*149547*/          OPC_EmitConvertToTarget, 2,
/*149549*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHLD16rri8), 0,
                        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)
/*149559*/        /*SwitchType*/ 12, MVT::i32,// ->149573
/*149561*/          OPC_EmitConvertToTarget, 2,
/*149563*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHLD32rri8), 0,
                        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)
/*149573*/        /*SwitchType*/ 12, MVT::i64,// ->149587
/*149575*/          OPC_EmitConvertToTarget, 2,
/*149577*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHLD64rri8), 0,
                        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)
/*149587*/        0, // EndSwitchType
/*149588*/      /*Scope*/ 46, /*->149635*/
/*149589*/        OPC_CheckChild2Type, MVT::i8,
/*149591*/        OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->149606
/*149594*/          OPC_EmitCopyToReg, 2, X86::CL,
/*149597*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHLD16rrCL), 0|OPFL_GlueInput,
                        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)
/*149606*/        /*SwitchType*/ 12, MVT::i32,// ->149620
/*149608*/          OPC_EmitCopyToReg, 2, X86::CL,
/*149611*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHLD32rrCL), 0|OPFL_GlueInput,
                        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)
/*149620*/        /*SwitchType*/ 12, MVT::i64,// ->149634
/*149622*/          OPC_EmitCopyToReg, 2, X86::CL,
/*149625*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHLD64rrCL), 0|OPFL_GlueInput,
                        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)
/*149634*/        0, // EndSwitchType
/*149635*/      0, /*End of Scope*/
/*149636*/    0, /*End of Scope*/
/*149637*/  /*SwitchOpcode*/ 49|128,1/*177*/, TARGET_VAL(X86ISD::SHRD),// ->149818
/*149641*/    OPC_RecordChild0, // #0 = $src1
/*149642*/    OPC_RecordChild1, // #1 = $src2
/*149643*/    OPC_Scope, 69, /*->149714*/ // 2 children in Scope
/*149645*/      OPC_MoveChild2,
/*149646*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*149649*/      OPC_RecordChild0, // #2 = physreg input CL
/*149650*/      OPC_MoveChild1,
/*149651*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*149654*/      OPC_Scope, 36, /*->149692*/ // 2 children in Scope
/*149656*/        OPC_CheckPredicate, 6, // Predicate_immShift32
/*149658*/        OPC_MoveParent,
/*149659*/        OPC_CheckType, MVT::i8,
/*149661*/        OPC_MoveParent,
/*149662*/        OPC_SwitchType /*2 cases */, 12, MVT::i16,// ->149677
/*149665*/          OPC_EmitCopyToReg, 2, X86::CL,
/*149668*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHRD16rrCL), 0|OPFL_GlueInput,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86shrd:{ *:[i16] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                    // Dst: (SHRD16rrCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)
/*149677*/        /*SwitchType*/ 12, MVT::i32,// ->149691
/*149679*/          OPC_EmitCopyToReg, 2, X86::CL,
/*149682*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHRD32rrCL), 0|OPFL_GlueInput,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86shrd:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift32>>)) - Complexity = 10
                    // Dst: (SHRD32rrCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/*149691*/        0, // EndSwitchType
/*149692*/      /*Scope*/ 20, /*->149713*/
/*149693*/        OPC_CheckPredicate, 10, // Predicate_immShift64
/*149695*/        OPC_MoveParent,
/*149696*/        OPC_CheckType, MVT::i8,
/*149698*/        OPC_MoveParent,
/*149699*/        OPC_CheckType, MVT::i64,
/*149701*/        OPC_EmitCopyToReg, 2, X86::CL,
/*149704*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SHRD64rrCL), 0|OPFL_GlueInput,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86shrd:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2, (and:{ *:[i8] } CL:{ *:[i8] }, (imm:{ *:[i8] })<<P:Predicate_immShift64>>)) - Complexity = 10
                  // Dst: (SHRD64rrCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/*149713*/      0, /*End of Scope*/
/*149714*/    /*Scope*/ 102, /*->149817*/
/*149715*/      OPC_RecordChild2, // #2 = $src3
/*149716*/      OPC_Scope, 51, /*->149769*/ // 2 children in Scope
/*149718*/        OPC_MoveChild2,
/*149719*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*149722*/        OPC_CheckType, MVT::i8,
/*149724*/        OPC_MoveParent,
/*149725*/        OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->149740
/*149728*/          OPC_EmitConvertToTarget, 2,
/*149730*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHRD16rri8), 0,
                        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)
/*149740*/        /*SwitchType*/ 12, MVT::i32,// ->149754
/*149742*/          OPC_EmitConvertToTarget, 2,
/*149744*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHRD32rri8), 0,
                        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)
/*149754*/        /*SwitchType*/ 12, MVT::i64,// ->149768
/*149756*/          OPC_EmitConvertToTarget, 2,
/*149758*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHRD64rri8), 0,
                        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)
/*149768*/        0, // EndSwitchType
/*149769*/      /*Scope*/ 46, /*->149816*/
/*149770*/        OPC_CheckChild2Type, MVT::i8,
/*149772*/        OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->149787
/*149775*/          OPC_EmitCopyToReg, 2, X86::CL,
/*149778*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHRD16rrCL), 0|OPFL_GlueInput,
                        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)
/*149787*/        /*SwitchType*/ 12, MVT::i32,// ->149801
/*149789*/          OPC_EmitCopyToReg, 2, X86::CL,
/*149792*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHRD32rrCL), 0|OPFL_GlueInput,
                        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)
/*149801*/        /*SwitchType*/ 12, MVT::i64,// ->149815
/*149803*/          OPC_EmitCopyToReg, 2, X86::CL,
/*149806*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SHRD64rrCL), 0|OPFL_GlueInput,
                        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)
/*149815*/        0, // EndSwitchType
/*149816*/      0, /*End of Scope*/
/*149817*/    0, /*End of Scope*/
/*149818*/  /*SwitchOpcode*/ 31|128,2/*287*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->150109
/*149822*/    OPC_Scope, 59, /*->149883*/ // 2 children in Scope
/*149824*/      OPC_MoveChild0,
/*149825*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*149828*/      OPC_RecordChild0, // #0 = $src1
/*149829*/      OPC_CheckChild0Type, MVT::v4f32,
/*149831*/      OPC_CheckType, MVT::v4i32,
/*149833*/      OPC_MoveParent,
/*149834*/      OPC_RecordChild1, // #1 = $src2
/*149835*/      OPC_MoveChild1,
/*149836*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*149839*/      OPC_MoveParent,
/*149840*/      OPC_CheckType, MVT::i32,
/*149842*/      OPC_Scope, 12, /*->149856*/ // 3 children in Scope
/*149844*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*149846*/        OPC_EmitConvertToTarget, 1,
/*149848*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTPSrr), 0,
                      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:{ *:[i8] }):$src2)
/*149856*/      /*Scope*/ 12, /*->149869*/
/*149857*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*149859*/        OPC_EmitConvertToTarget, 1,
/*149861*/        OPC_MorphNodeTo1, TARGET_VAL(X86::EXTRACTPSrr), 0,
                      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:{ *:[i8] }):$src2)
/*149869*/      /*Scope*/ 12, /*->149882*/
/*149870*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149872*/        OPC_EmitConvertToTarget, 1,
/*149874*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTPSZrr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (extractelt:{ *:[i32] } (bitconvert:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src1), (imm:{ *:[iPTR] }):$src2) - Complexity = 9
                  // Dst: (VEXTRACTPSZrr:{ *:[i32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*149882*/      0, /*End of Scope*/
/*149883*/    /*Scope*/ 95|128,1/*223*/, /*->150108*/
/*149885*/      OPC_RecordChild0, // #0 = $src
/*149886*/      OPC_Scope, 91, /*->149979*/ // 4 children in Scope
/*149888*/        OPC_CheckChild0Type, MVT::v4i32,
/*149890*/        OPC_Scope, 36, /*->149928*/ // 2 children in Scope
/*149892*/          OPC_CheckChild1Integer, 0, 
/*149894*/          OPC_CheckType, MVT::i32,
/*149896*/          OPC_Scope, 9, /*->149907*/ // 3 children in Scope
/*149898*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*149900*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVPDI2DIrr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (extractelt:{ *:[i32] } VR128:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                      // Dst: (VMOVPDI2DIrr:{ *:[i32] } VR128:{ *:[v4i32] }:$src)
/*149907*/          /*Scope*/ 9, /*->149917*/
/*149908*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*149910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVPDI2DIrr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (extractelt:{ *:[i32] } VR128:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                      // Dst: (MOVPDI2DIrr:{ *:[i32] } VR128:{ *:[v4i32] }:$src)
/*149917*/          /*Scope*/ 9, /*->149927*/
/*149918*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149920*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVPDI2DIZrr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (extractelt:{ *:[i32] } VR128X:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                      // Dst: (VMOVPDI2DIZrr:{ *:[i32] } VR128X:{ *:[v4i32] }:$src)
/*149927*/          0, /*End of Scope*/
/*149928*/        /*Scope*/ 49, /*->149978*/
/*149929*/          OPC_RecordChild1, // #1 = $src2
/*149930*/          OPC_MoveChild1,
/*149931*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*149934*/          OPC_MoveParent,
/*149935*/          OPC_CheckType, MVT::i32,
/*149937*/          OPC_Scope, 12, /*->149951*/ // 3 children in Scope
/*149939*/            OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*149941*/            OPC_EmitConvertToTarget, 1,
/*149943*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXTRDrr), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (extractelt:{ *:[i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                      // Dst: (VPEXTRDrr:{ *:[i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*149951*/          /*Scope*/ 12, /*->149964*/
/*149952*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*149954*/            OPC_EmitConvertToTarget, 1,
/*149956*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PEXTRDrr), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (extractelt:{ *:[i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                      // Dst: (PEXTRDrr:{ *:[i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*149964*/          /*Scope*/ 12, /*->149977*/
/*149965*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*149967*/            OPC_EmitConvertToTarget, 1,
/*149969*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXTRDZrr), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (extractelt:{ *:[i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                      // Dst: (VPEXTRDZrr:{ *:[i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*149977*/          0, /*End of Scope*/
/*149978*/        0, /*End of Scope*/
/*149979*/      /*Scope*/ 91, /*->150071*/
/*149980*/        OPC_CheckChild0Type, MVT::v2i64,
/*149982*/        OPC_Scope, 36, /*->150020*/ // 2 children in Scope
/*149984*/          OPC_CheckChild1Integer, 0, 
/*149986*/          OPC_CheckType, MVT::i64,
/*149988*/          OPC_Scope, 9, /*->149999*/ // 3 children in Scope
/*149990*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*149992*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVPQIto64rr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (extractelt:{ *:[i64] } VR128:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                      // Dst: (VMOVPQIto64rr:{ *:[i64] } VR128:{ *:[v2i64] }:$src)
/*149999*/          /*Scope*/ 9, /*->150009*/
/*150000*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*150002*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVPQIto64rr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (extractelt:{ *:[i64] } VR128:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                      // Dst: (MOVPQIto64rr:{ *:[i64] } VR128:{ *:[v2i64] }:$src)
/*150009*/          /*Scope*/ 9, /*->150019*/
/*150010*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*150012*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVPQIto64Zrr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (extractelt:{ *:[i64] } VR128X:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                      // Dst: (VMOVPQIto64Zrr:{ *:[i64] } VR128X:{ *:[v2i64] }:$src)
/*150019*/          0, /*End of Scope*/
/*150020*/        /*Scope*/ 49, /*->150070*/
/*150021*/          OPC_RecordChild1, // #1 = $src2
/*150022*/          OPC_MoveChild1,
/*150023*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*150026*/          OPC_MoveParent,
/*150027*/          OPC_CheckType, MVT::i64,
/*150029*/          OPC_Scope, 12, /*->150043*/ // 3 children in Scope
/*150031*/            OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*150033*/            OPC_EmitConvertToTarget, 1,
/*150035*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXTRQrr), 0,
                          MVT::i64, 2/*#Ops*/, 0, 2, 
                      // Src: (extractelt:{ *:[i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                      // Dst: (VPEXTRQrr:{ *:[i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*150043*/          /*Scope*/ 12, /*->150056*/
/*150044*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*150046*/            OPC_EmitConvertToTarget, 1,
/*150048*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PEXTRQrr), 0,
                          MVT::i64, 2/*#Ops*/, 0, 2, 
                      // Src: (extractelt:{ *:[i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                      // Dst: (PEXTRQrr:{ *:[i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*150056*/          /*Scope*/ 12, /*->150069*/
/*150057*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*150059*/            OPC_EmitConvertToTarget, 1,
/*150061*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXTRQZrr), 0,
                          MVT::i64, 2/*#Ops*/, 0, 2, 
                      // Src: (extractelt:{ *:[i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                      // Dst: (VPEXTRQZrr:{ *:[i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*150069*/          0, /*End of Scope*/
/*150070*/        0, /*End of Scope*/
/*150071*/      /*Scope*/ 17, /*->150089*/
/*150072*/        OPC_CheckChild0Type, MVT::v4f32,
/*150074*/        OPC_CheckChild1Integer, 0, 
/*150076*/        OPC_CheckType, MVT::f32,
/*150078*/        OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*150081*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } VR128:{ *:[v4f32] }:$src, FR32:{ *:[i32] })
/*150089*/      /*Scope*/ 17, /*->150107*/
/*150090*/        OPC_CheckChild0Type, MVT::v2f64,
/*150092*/        OPC_CheckChild1Integer, 0, 
/*150094*/        OPC_CheckType, MVT::f64,
/*150096*/        OPC_EmitInteger, MVT::i32, X86::FR64RegClassID,
/*150099*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (COPY_TO_REGCLASS:{ *:[f64] } VR128:{ *:[v2f64] }:$src, FR64:{ *:[i32] })
/*150107*/      0, /*End of Scope*/
/*150108*/    0, /*End of Scope*/
/*150109*/  /*SwitchOpcode*/ 40, TARGET_VAL(ISD::CALLSEQ_END),// ->150152
/*150112*/    OPC_RecordNode, // #0 = 'X86callseq_end' chained node
/*150113*/    OPC_CaptureGlueInput,
/*150114*/    OPC_RecordChild1, // #1 = $amt1
/*150115*/    OPC_MoveChild1,
/*150116*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*150119*/    OPC_MoveParent,
/*150120*/    OPC_RecordChild2, // #2 = $amt2
/*150121*/    OPC_MoveChild2,
/*150122*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*150125*/    OPC_MoveParent,
/*150126*/    OPC_Scope, 11, /*->150139*/ // 2 children in Scope
/*150128*/      OPC_CheckPatternPredicate, 116, // (!Subtarget->isTarget64BitLP64())
/*150130*/      OPC_EmitMergeInputChains1_0,
/*150131*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ADJCALLSTACKUP32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    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)
/*150139*/    /*Scope*/ 11, /*->150151*/
/*150140*/      OPC_CheckPatternPredicate, 117, // (Subtarget->isTarget64BitLP64())
/*150142*/      OPC_EmitMergeInputChains1_0,
/*150143*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ADJCALLSTACKUP64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    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)
/*150151*/    0, /*End of Scope*/
/*150152*/  /*SwitchOpcode*/ 47, TARGET_VAL(ISD::CALLSEQ_START),// ->150202
/*150155*/    OPC_RecordNode, // #0 = 'X86callseq_start' chained node
/*150156*/    OPC_RecordChild1, // #1 = $amt1
/*150157*/    OPC_MoveChild1,
/*150158*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*150161*/    OPC_MoveParent,
/*150162*/    OPC_RecordChild2, // #2 = $amt2
/*150163*/    OPC_MoveChild2,
/*150164*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*150167*/    OPC_MoveParent,
/*150168*/    OPC_Scope, 15, /*->150185*/ // 2 children in Scope
/*150170*/      OPC_CheckPatternPredicate, 116, // (!Subtarget->isTarget64BitLP64())
/*150172*/      OPC_EmitMergeInputChains1_0,
/*150173*/      OPC_EmitInteger, MVT::i32, 0, 
/*150176*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ADJCALLSTACKDOWN32), 0|OPFL_Chain|OPFL_GlueOutput,
                    MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (X86callseq_start (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) - Complexity = 9
                // Dst: (ADJCALLSTACKDOWN32:{ *:[i32] } i32imm:{ *:[i32] }:$amt1, i32imm:{ *:[i32] }:$amt2, 0:{ *:[i32] })
/*150185*/    /*Scope*/ 15, /*->150201*/
/*150186*/      OPC_CheckPatternPredicate, 117, // (Subtarget->isTarget64BitLP64())
/*150188*/      OPC_EmitMergeInputChains1_0,
/*150189*/      OPC_EmitInteger, MVT::i32, 0, 
/*150192*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ADJCALLSTACKDOWN64), 0|OPFL_Chain|OPFL_GlueOutput,
                    MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                // Src: (X86callseq_start (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) - Complexity = 9
                // Dst: (ADJCALLSTACKDOWN64:{ *:[i64] } i32imm:{ *:[i32] }:$amt1, i32imm:{ *:[i32] }:$amt2, 0:{ *:[i32] })
/*150201*/    0, /*End of Scope*/
/*150202*/  /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VASTART_SAVE_XMM_REGS),// ->150233
/*150205*/    OPC_RecordNode, // #0 = 'X86vastart_save_xmm_regs' chained node
/*150206*/    OPC_RecordChild1, // #1 = $al
/*150207*/    OPC_RecordChild2, // #2 = $regsavefi
/*150208*/    OPC_MoveChild2,
/*150209*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*150212*/    OPC_MoveParent,
/*150213*/    OPC_RecordChild3, // #3 = $offset
/*150214*/    OPC_MoveChild3,
/*150215*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*150218*/    OPC_MoveParent,
/*150219*/    OPC_EmitMergeInputChains1_0,
/*150220*/    OPC_EmitConvertToTarget, 2,
/*150222*/    OPC_EmitConvertToTarget, 3,
/*150224*/    OPC_MorphNodeTo1, TARGET_VAL(X86::VASTART_SAVE_XMM_REGS), 0|OPFL_Chain|OPFL_Variadic3,
                  MVT::i32, 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:{ *:[i32] } GR8:{ *:[i8] }:$al, (imm:{ *:[i64] }):$regsavefi, (imm:{ *:[i64] }):$offset)
/*150233*/  /*SwitchOpcode*/ 71|128,3/*455*/, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->150692
/*150237*/    OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/*150238*/    OPC_Scope, 27, /*->150267*/ // 22 children in Scope
/*150240*/      OPC_CheckChild1Integer, 96|128,49/*6368*/, 
/*150243*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->150255
/*150246*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/*150248*/        OPC_EmitMergeInputChains1_0,
/*150249*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SLWPCB), 0|OPFL_Chain,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 6368:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (SLWPCB:{ *:[i32] })
/*150255*/      /*SwitchType*/ 9, MVT::i64,// ->150266
/*150257*/        OPC_CheckPatternPredicate, 70, // (Subtarget->hasLWP())
/*150259*/        OPC_EmitMergeInputChains1_0,
/*150260*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SLWPCB64), 0|OPFL_Chain,
                      MVT::i64, 0/*#Ops*/, 
                  // Src: (intrinsic_w_chain:{ *:[i64] } 6368:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (SLWPCB64:{ *:[i64] })
/*150266*/      0, // EndSwitchType
/*150267*/    /*Scope*/ 12, /*->150280*/
/*150268*/      OPC_CheckChild1Integer, 78|128,49/*6350*/, 
/*150271*/      OPC_RecordChild2, // #1 = $src
/*150272*/      OPC_EmitMergeInputChains1_0,
/*150273*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDSSPD), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 6350:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (RDSSPD:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*150280*/    /*Scope*/ 12, /*->150293*/
/*150281*/      OPC_CheckChild1Integer, 79|128,49/*6351*/, 
/*150284*/      OPC_RecordChild2, // #1 = $src
/*150285*/      OPC_EmitMergeInputChains1_0,
/*150286*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDSSPQ), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 6351:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                // Dst: (RDSSPQ:{ *:[i64] } GR64:{ *:[i64] }:$src)
/*150293*/    /*Scope*/ 12, /*->150306*/
/*150294*/      OPC_CheckChild1Integer, 65|128,49/*6337*/, 
/*150297*/      OPC_CheckPatternPredicate, 107, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/*150299*/      OPC_EmitMergeInputChains1_0,
/*150300*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDFSBASE), 0|OPFL_Chain,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 6337:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDFSBASE:{ *:[i32] })
/*150306*/    /*Scope*/ 12, /*->150319*/
/*150307*/      OPC_CheckChild1Integer, 66|128,49/*6338*/, 
/*150310*/      OPC_CheckPatternPredicate, 107, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/*150312*/      OPC_EmitMergeInputChains1_0,
/*150313*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDFSBASE64), 0|OPFL_Chain,
                    MVT::i64, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 6338:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDFSBASE64:{ *:[i64] })
/*150319*/    /*Scope*/ 12, /*->150332*/
/*150320*/      OPC_CheckChild1Integer, 67|128,49/*6339*/, 
/*150323*/      OPC_CheckPatternPredicate, 107, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/*150325*/      OPC_EmitMergeInputChains1_0,
/*150326*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDGSBASE), 0|OPFL_Chain,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 6339:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDGSBASE:{ *:[i32] })
/*150332*/    /*Scope*/ 12, /*->150345*/
/*150333*/      OPC_CheckChild1Integer, 68|128,49/*6340*/, 
/*150336*/      OPC_CheckPatternPredicate, 107, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/*150338*/      OPC_EmitMergeInputChains1_0,
/*150339*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDGSBASE64), 0|OPFL_Chain,
                    MVT::i64, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 6340:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDGSBASE64:{ *:[i64] })
/*150345*/    /*Scope*/ 36, /*->150382*/
/*150346*/      OPC_CheckChild1Integer, 69|128,49/*6341*/, 
/*150349*/      OPC_Scope, 9, /*->150360*/ // 2 children in Scope
/*150351*/        OPC_CheckPatternPredicate, 154, // (Subtarget->hasRDPID()) && (!Subtarget->is64Bit())
/*150353*/        OPC_EmitMergeInputChains1_0,
/*150354*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RDPID32), 0|OPFL_Chain,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 6341:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (RDPID32:{ *:[i32] })
/*150360*/      /*Scope*/ 20, /*->150381*/
/*150361*/        OPC_CheckPatternPredicate, 155, // (Subtarget->hasRDPID()) && (Subtarget->is64Bit())
/*150363*/        OPC_EmitMergeInputChains1_0,
/*150364*/        OPC_EmitNode1, TARGET_VAL(X86::RDPID64), 0|OPFL_Chain,
                      MVT::i64, 0/*#Ops*/,  // Results = #1
/*150370*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*150373*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::i32, 2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 6341:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RDPID64:{ *:[i64] }), sub_32bit:{ *:[i32] })
/*150381*/      0, /*End of Scope*/
/*150382*/    /*Scope*/ 13, /*->150396*/
/*150383*/      OPC_CheckChild1Integer, 97|128,48/*6241*/, 
/*150386*/      OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*150388*/      OPC_EmitMergeInputChains1_0,
/*150389*/      OPC_MorphNodeTo2, TARGET_VAL(X86::RDFLAGS32), 0|OPFL_Chain,
                    MVT::i32, MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 6241:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDFLAGS32:{ *:[i32] }:{ *:[i32] })
/*150396*/    /*Scope*/ 13, /*->150410*/
/*150397*/      OPC_CheckChild1Integer, 98|128,48/*6242*/, 
/*150400*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*150402*/      OPC_EmitMergeInputChains1_0,
/*150403*/      OPC_MorphNodeTo2, TARGET_VAL(X86::RDFLAGS64), 0|OPFL_Chain,
                    MVT::i64, MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 6242:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDFLAGS64:{ *:[i64] }:{ *:[i32] })
/*150410*/    /*Scope*/ 10, /*->150421*/
/*150411*/      OPC_CheckChild1Integer, 70|128,49/*6342*/, 
/*150414*/      OPC_EmitMergeInputChains1_0,
/*150415*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDPKRU), 0|OPFL_Chain,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 6342:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDPKRU:{ *:[i32] })
/*150421*/    /*Scope*/ 12, /*->150434*/
/*150422*/      OPC_CheckChild1Integer, 50|128,51/*6578*/, 
/*150425*/      OPC_CheckPatternPredicate, 95, // (Subtarget->hasRTM())
/*150427*/      OPC_EmitMergeInputChains1_0,
/*150428*/      OPC_MorphNodeTo1, TARGET_VAL(X86::XBEGIN), 0|OPFL_Chain,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 6578:{ *:[iPTR] }) - Complexity = 8
                // Dst: (XBEGIN:{ *:[i32] })
/*150434*/    /*Scope*/ 42, /*->150477*/
/*150435*/      OPC_CheckChild1Integer, 78|128,50/*6478*/, 
/*150438*/      OPC_RecordChild2, // #1 = $src
/*150439*/      OPC_Scope, 17, /*->150458*/ // 2 children in Scope
/*150441*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*150443*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*150446*/        OPC_EmitMergeInputChains1_0,
/*150447*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VLDDQUrm), 0|OPFL_Chain,
                      MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_w_chain:{ *:[v16i8] } 6478:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (VLDDQUrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*150458*/      /*Scope*/ 17, /*->150476*/
/*150459*/        OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*150461*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*150464*/        OPC_EmitMergeInputChains1_0,
/*150465*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LDDQUrm), 0|OPFL_Chain,
                      MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_w_chain:{ *:[v16i8] } 6478:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (LDDQUrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*150476*/      0, /*End of Scope*/
/*150477*/    /*Scope*/ 21, /*->150499*/
/*150478*/      OPC_CheckChild1Integer, 69|128,42/*5445*/, 
/*150481*/      OPC_RecordChild2, // #1 = $src
/*150482*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*150484*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*150487*/      OPC_EmitMergeInputChains1_0,
/*150488*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VLDDQUYrm), 0|OPFL_Chain,
                    MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_w_chain:{ *:[v32i8] } 5445:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (VLDDQUYrm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*150499*/    /*Scope*/ 23, /*->150523*/
/*150500*/      OPC_CheckChild1Integer, 125|128,42/*5501*/, 
/*150503*/      OPC_RecordChild2, // #1 = $src2
/*150504*/      OPC_RecordChild3, // #2 = $src1
/*150505*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*150507*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*150510*/      OPC_EmitMergeInputChains1_0,
/*150511*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDrm), 0|OPFL_Chain,
                    MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 5501:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src1) - Complexity = 26
                // Dst: (VPMASKMOVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*150523*/    /*Scope*/ 23, /*->150547*/
/*150524*/      OPC_CheckChild1Integer, 126|128,42/*5502*/, 
/*150527*/      OPC_RecordChild2, // #1 = $src2
/*150528*/      OPC_RecordChild3, // #2 = $src1
/*150529*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*150531*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*150534*/      OPC_EmitMergeInputChains1_0,
/*150535*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDYrm), 0|OPFL_Chain,
                    MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v8i32] } 5502:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$src1) - Complexity = 26
                // Dst: (VPMASKMOVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*150547*/    /*Scope*/ 23, /*->150571*/
/*150548*/      OPC_CheckChild1Integer, 127|128,42/*5503*/, 
/*150551*/      OPC_RecordChild2, // #1 = $src2
/*150552*/      OPC_RecordChild3, // #2 = $src1
/*150553*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*150555*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*150558*/      OPC_EmitMergeInputChains1_0,
/*150559*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQrm), 0|OPFL_Chain,
                    MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v2i64] } 5503:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src1) - Complexity = 26
                // Dst: (VPMASKMOVQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*150571*/    /*Scope*/ 23, /*->150595*/
/*150572*/      OPC_CheckChild1Integer, 0|128,43/*5504*/, 
/*150575*/      OPC_RecordChild2, // #1 = $src2
/*150576*/      OPC_RecordChild3, // #2 = $src1
/*150577*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*150579*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*150582*/      OPC_EmitMergeInputChains1_0,
/*150583*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQYrm), 0|OPFL_Chain,
                    MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v4i64] } 5504:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$src1) - Complexity = 26
                // Dst: (VPMASKMOVQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*150595*/    /*Scope*/ 23, /*->150619*/
/*150596*/      OPC_CheckChild1Integer, 72|128,42/*5448*/, 
/*150599*/      OPC_RecordChild2, // #1 = $src2
/*150600*/      OPC_RecordChild3, // #2 = $src1
/*150601*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*150603*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*150606*/      OPC_EmitMergeInputChains1_0,
/*150607*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain,
                    MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v4f32] } 5448:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src1) - Complexity = 26
                // Dst: (VMASKMOVPSrm:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*150619*/    /*Scope*/ 23, /*->150643*/
/*150620*/      OPC_CheckChild1Integer, 73|128,42/*5449*/, 
/*150623*/      OPC_RecordChild2, // #1 = $src2
/*150624*/      OPC_RecordChild3, // #2 = $src1
/*150625*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*150627*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*150630*/      OPC_EmitMergeInputChains1_0,
/*150631*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain,
                    MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v8f32] } 5449:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$src1) - Complexity = 26
                // Dst: (VMASKMOVPSYrm:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*150643*/    /*Scope*/ 23, /*->150667*/
/*150644*/      OPC_CheckChild1Integer, 70|128,42/*5446*/, 
/*150647*/      OPC_RecordChild2, // #1 = $src2
/*150648*/      OPC_RecordChild3, // #2 = $src1
/*150649*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*150651*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*150654*/      OPC_EmitMergeInputChains1_0,
/*150655*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain,
                    MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v2f64] } 5446:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src1) - Complexity = 26
                // Dst: (VMASKMOVPDrm:{ *:[v2f64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*150667*/    /*Scope*/ 23, /*->150691*/
/*150668*/      OPC_CheckChild1Integer, 71|128,42/*5447*/, 
/*150671*/      OPC_RecordChild2, // #1 = $src2
/*150672*/      OPC_RecordChild3, // #2 = $src1
/*150673*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*150675*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*150678*/      OPC_EmitMergeInputChains1_0,
/*150679*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain,
                    MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5447:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$src1) - Complexity = 26
                // Dst: (VMASKMOVPDYrm:{ *:[v4f64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*150691*/    0, /*End of Scope*/
/*150692*/  /*SwitchOpcode*/ 82|128,1/*210*/, TARGET_VAL(X86ISD::SETCC),// ->150906
/*150696*/    OPC_Scope, 12, /*->150710*/ // 16 children in Scope
/*150698*/      OPC_CheckChild0Integer, 13, 
/*150700*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150701*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150704*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETOr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 13:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETOr:{ *:[i8] })
/*150710*/    /*Scope*/ 12, /*->150723*/
/*150711*/      OPC_CheckChild0Integer, 10, 
/*150713*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150714*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150717*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETNOr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 10:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETNOr:{ *:[i8] })
/*150723*/    /*Scope*/ 12, /*->150736*/
/*150724*/      OPC_CheckChild0Integer, 2, 
/*150726*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150727*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150730*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETBr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETBr:{ *:[i8] })
/*150736*/    /*Scope*/ 12, /*->150749*/
/*150737*/      OPC_CheckChild0Integer, 1, 
/*150739*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150740*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150743*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETAEr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 1:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETAEr:{ *:[i8] })
/*150749*/    /*Scope*/ 12, /*->150762*/
/*150750*/      OPC_CheckChild0Integer, 4, 
/*150752*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150753*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150756*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETEr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 4:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETEr:{ *:[i8] })
/*150762*/    /*Scope*/ 12, /*->150775*/
/*150763*/      OPC_CheckChild0Integer, 9, 
/*150765*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150766*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150769*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETNEr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 9:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETNEr:{ *:[i8] })
/*150775*/    /*Scope*/ 12, /*->150788*/
/*150776*/      OPC_CheckChild0Integer, 3, 
/*150778*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150779*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150782*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETBEr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 3:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETBEr:{ *:[i8] })
/*150788*/    /*Scope*/ 12, /*->150801*/
/*150789*/      OPC_CheckChild0Integer, 0, 
/*150791*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150792*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150795*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETAr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 0:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETAr:{ *:[i8] })
/*150801*/    /*Scope*/ 12, /*->150814*/
/*150802*/      OPC_CheckChild0Integer, 15, 
/*150804*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150805*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150808*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETSr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 15:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETSr:{ *:[i8] })
/*150814*/    /*Scope*/ 12, /*->150827*/
/*150815*/      OPC_CheckChild0Integer, 12, 
/*150817*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150818*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150821*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETNSr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 12:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETNSr:{ *:[i8] })
/*150827*/    /*Scope*/ 12, /*->150840*/
/*150828*/      OPC_CheckChild0Integer, 14, 
/*150830*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150831*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150834*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETPr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 14:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETPr:{ *:[i8] })
/*150840*/    /*Scope*/ 12, /*->150853*/
/*150841*/      OPC_CheckChild0Integer, 11, 
/*150843*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150844*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150847*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETNPr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 11:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETNPr:{ *:[i8] })
/*150853*/    /*Scope*/ 12, /*->150866*/
/*150854*/      OPC_CheckChild0Integer, 7, 
/*150856*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150857*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150860*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETLr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 7:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETLr:{ *:[i8] })
/*150866*/    /*Scope*/ 12, /*->150879*/
/*150867*/      OPC_CheckChild0Integer, 6, 
/*150869*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150870*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150873*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETGEr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 6:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETGEr:{ *:[i8] })
/*150879*/    /*Scope*/ 12, /*->150892*/
/*150880*/      OPC_CheckChild0Integer, 8, 
/*150882*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150883*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150886*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETLEr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 8:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETLEr:{ *:[i8] })
/*150892*/    /*Scope*/ 12, /*->150905*/
/*150893*/      OPC_CheckChild0Integer, 5, 
/*150895*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*150896*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*150899*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETGr), 0|OPFL_GlueInput,
                    MVT::i8, 0/*#Ops*/, 
                // Src: (X86setcc:{ *:[i8] } 5:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETGr:{ *:[i8] })
/*150905*/    0, /*End of Scope*/
/*150906*/  /*SwitchOpcode*/ 105|128,1/*233*/, TARGET_VAL(X86ISD::BRCOND),// ->151143
/*150910*/    OPC_RecordNode, // #0 = 'X86brcond' chained node
/*150911*/    OPC_RecordChild1, // #1 = $dst
/*150912*/    OPC_MoveChild1,
/*150913*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*150916*/    OPC_MoveParent,
/*150917*/    OPC_Scope, 13, /*->150932*/ // 16 children in Scope
/*150919*/      OPC_CheckChild2Integer, 13, 
/*150921*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*150922*/      OPC_EmitMergeInputChains1_0,
/*150923*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*150926*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JO_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 13:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JO_1 (bb:{ *:[Other] }):$dst)
/*150932*/    /*Scope*/ 13, /*->150946*/
/*150933*/      OPC_CheckChild2Integer, 10, 
/*150935*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*150936*/      OPC_EmitMergeInputChains1_0,
/*150937*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*150940*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JNO_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 10:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JNO_1 (bb:{ *:[Other] }):$dst)
/*150946*/    /*Scope*/ 13, /*->150960*/
/*150947*/      OPC_CheckChild2Integer, 2, 
/*150949*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*150950*/      OPC_EmitMergeInputChains1_0,
/*150951*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*150954*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JB_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 2:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JB_1 (bb:{ *:[Other] }):$dst)
/*150960*/    /*Scope*/ 13, /*->150974*/
/*150961*/      OPC_CheckChild2Integer, 1, 
/*150963*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*150964*/      OPC_EmitMergeInputChains1_0,
/*150965*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*150968*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JAE_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 1:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JAE_1 (bb:{ *:[Other] }):$dst)
/*150974*/    /*Scope*/ 13, /*->150988*/
/*150975*/      OPC_CheckChild2Integer, 4, 
/*150977*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*150978*/      OPC_EmitMergeInputChains1_0,
/*150979*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*150982*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JE_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 4:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JE_1 (bb:{ *:[Other] }):$dst)
/*150988*/    /*Scope*/ 13, /*->151002*/
/*150989*/      OPC_CheckChild2Integer, 9, 
/*150991*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*150992*/      OPC_EmitMergeInputChains1_0,
/*150993*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*150996*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JNE_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 9:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JNE_1 (bb:{ *:[Other] }):$dst)
/*151002*/    /*Scope*/ 13, /*->151016*/
/*151003*/      OPC_CheckChild2Integer, 3, 
/*151005*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*151006*/      OPC_EmitMergeInputChains1_0,
/*151007*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*151010*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JBE_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 3:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JBE_1 (bb:{ *:[Other] }):$dst)
/*151016*/    /*Scope*/ 13, /*->151030*/
/*151017*/      OPC_CheckChild2Integer, 0, 
/*151019*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*151020*/      OPC_EmitMergeInputChains1_0,
/*151021*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*151024*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JA_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 0:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JA_1 (bb:{ *:[Other] }):$dst)
/*151030*/    /*Scope*/ 13, /*->151044*/
/*151031*/      OPC_CheckChild2Integer, 15, 
/*151033*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*151034*/      OPC_EmitMergeInputChains1_0,
/*151035*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*151038*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JS_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 15:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JS_1 (bb:{ *:[Other] }):$dst)
/*151044*/    /*Scope*/ 13, /*->151058*/
/*151045*/      OPC_CheckChild2Integer, 12, 
/*151047*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*151048*/      OPC_EmitMergeInputChains1_0,
/*151049*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*151052*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JNS_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 12:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JNS_1 (bb:{ *:[Other] }):$dst)
/*151058*/    /*Scope*/ 13, /*->151072*/
/*151059*/      OPC_CheckChild2Integer, 14, 
/*151061*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*151062*/      OPC_EmitMergeInputChains1_0,
/*151063*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*151066*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JP_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 14:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JP_1 (bb:{ *:[Other] }):$dst)
/*151072*/    /*Scope*/ 13, /*->151086*/
/*151073*/      OPC_CheckChild2Integer, 11, 
/*151075*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*151076*/      OPC_EmitMergeInputChains1_0,
/*151077*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*151080*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JNP_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 11:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JNP_1 (bb:{ *:[Other] }):$dst)
/*151086*/    /*Scope*/ 13, /*->151100*/
/*151087*/      OPC_CheckChild2Integer, 7, 
/*151089*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*151090*/      OPC_EmitMergeInputChains1_0,
/*151091*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*151094*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JL_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 7:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JL_1 (bb:{ *:[Other] }):$dst)
/*151100*/    /*Scope*/ 13, /*->151114*/
/*151101*/      OPC_CheckChild2Integer, 6, 
/*151103*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*151104*/      OPC_EmitMergeInputChains1_0,
/*151105*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*151108*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JGE_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 6:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JGE_1 (bb:{ *:[Other] }):$dst)
/*151114*/    /*Scope*/ 13, /*->151128*/
/*151115*/      OPC_CheckChild2Integer, 8, 
/*151117*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*151118*/      OPC_EmitMergeInputChains1_0,
/*151119*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*151122*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JLE_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 8:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JLE_1 (bb:{ *:[Other] }):$dst)
/*151128*/    /*Scope*/ 13, /*->151142*/
/*151129*/      OPC_CheckChild2Integer, 5, 
/*151131*/      OPC_RecordChild3, // #2 = physreg input EFLAGS
/*151132*/      OPC_EmitMergeInputChains1_0,
/*151133*/      OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*151136*/      OPC_MorphNodeTo0, TARGET_VAL(X86::JG_1), 0|OPFL_Chain|OPFL_GlueInput,
                    1/*#Ops*/, 1, 
                // Src: (X86brcond (bb:{ *:[Other] }):$dst, 5:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (JG_1 (bb:{ *:[Other] }):$dst)
/*151142*/    0, /*End of Scope*/
/*151143*/  /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::SETCC_CARRY),// ->151199
/*151146*/    OPC_CheckChild0Integer, 2, 
/*151148*/    OPC_RecordChild1, // #0 = physreg input EFLAGS
/*151149*/    OPC_SwitchType /*4 cases */, 10, MVT::i8,// ->151162
/*151152*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*151155*/      OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C8r), 0|OPFL_GlueInput,
                    MVT::i8, MVT::i32, 0/*#Ops*/, 
                // Src: (X86setcc_c:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETB_C8r:{ *:[i8] }:{ *:[i32] })
/*151162*/    /*SwitchType*/ 10, MVT::i16,// ->151174
/*151164*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*151167*/      OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C16r), 0|OPFL_GlueInput,
                    MVT::i16, MVT::i32, 0/*#Ops*/, 
                // Src: (X86setcc_c:{ *:[i16] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETB_C16r:{ *:[i16] }:{ *:[i32] })
/*151174*/    /*SwitchType*/ 10, MVT::i32,// ->151186
/*151176*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*151179*/      OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C32r), 0|OPFL_GlueInput,
                    MVT::i32, MVT::i32, 0/*#Ops*/, 
                // Src: (X86setcc_c:{ *:[i32] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETB_C32r:{ *:[i32] }:{ *:[i32] })
/*151186*/    /*SwitchType*/ 10, MVT::i64,// ->151198
/*151188*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*151191*/      OPC_MorphNodeTo2, TARGET_VAL(X86::SETB_C64r), 0|OPFL_GlueInput,
                    MVT::i64, MVT::i32, 0/*#Ops*/, 
                // Src: (X86setcc_c:{ *:[i64] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                // Dst: (SETB_C64r:{ *:[i64] }:{ *:[i32] })
/*151198*/    0, // EndSwitchType
/*151199*/  /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(X86ISD::Wrapper),// ->151370
/*151203*/    OPC_Scope, 28, /*->151233*/ // 3 children in Scope
/*151205*/      OPC_RecordNode, // #0 = $src
/*151206*/      OPC_CheckType, MVT::i64,
/*151208*/      OPC_CheckComplexPat, /*CP*/7, /*#*/0, // selectMOV64Imm32:$src #1
/*151211*/      OPC_EmitInteger, MVT::i64, 0, 
/*151214*/      OPC_EmitNode1, TARGET_VAL(X86::MOV32ri64), 0,
                    MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/*151221*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*151224*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                // Src: mov64imm32:{ *:[i64] }:$src - Complexity = 7
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32ri64:{ *:[i32] } mov64imm32:{ *:[i64] }:$src), sub_32bit:{ *:[i32] })
/*151233*/    /*Scope*/ 107, /*->151341*/
/*151234*/      OPC_RecordChild0, // #0 = $dst
/*151235*/      OPC_MoveChild0,
/*151236*/      OPC_SwitchOpcode /*7 cases */, 12, TARGET_VAL(ISD::TargetConstantPool),// ->151252
/*151240*/        OPC_MoveParent,
/*151241*/        OPC_CheckType, MVT::i64,
/*151243*/        OPC_CheckPatternPredicate, 157, // (TM.getCodeModel() == CodeModel::Kernel)
/*151245*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri32), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:{ *:[i64] } (tconstpool:{ *:[i64] }):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:{ *:[i64] } (tconstpool:{ *:[i64] }):$dst)
/*151252*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetJumpTable),// ->151267
/*151255*/        OPC_MoveParent,
/*151256*/        OPC_CheckType, MVT::i64,
/*151258*/        OPC_CheckPatternPredicate, 157, // (TM.getCodeModel() == CodeModel::Kernel)
/*151260*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri32), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:{ *:[i64] } (tjumptable:{ *:[i64] }):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:{ *:[i64] } (tjumptable:{ *:[i64] }):$dst)
/*151267*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetGlobalAddress),// ->151282
/*151270*/        OPC_MoveParent,
/*151271*/        OPC_CheckType, MVT::i64,
/*151273*/        OPC_CheckPatternPredicate, 157, // (TM.getCodeModel() == CodeModel::Kernel)
/*151275*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri32), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$dst)
/*151282*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetExternalSymbol),// ->151297
/*151285*/        OPC_MoveParent,
/*151286*/        OPC_CheckType, MVT::i64,
/*151288*/        OPC_CheckPatternPredicate, 157, // (TM.getCodeModel() == CodeModel::Kernel)
/*151290*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri32), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:{ *:[i64] } (texternalsym:{ *:[i64] }):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:{ *:[i64] } (texternalsym:{ *:[i64] }):$dst)
/*151297*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::MCSymbol),// ->151312
/*151300*/        OPC_MoveParent,
/*151301*/        OPC_CheckType, MVT::i64,
/*151303*/        OPC_CheckPatternPredicate, 157, // (TM.getCodeModel() == CodeModel::Kernel)
/*151305*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri32), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:{ *:[i64] } (mcsym:{ *:[i64] }):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:{ *:[i64] } (mcsym:{ *:[i64] }):$dst)
/*151312*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetBlockAddress),// ->151327
/*151315*/        OPC_MoveParent,
/*151316*/        OPC_CheckType, MVT::i64,
/*151318*/        OPC_CheckPatternPredicate, 157, // (TM.getCodeModel() == CodeModel::Kernel)
/*151320*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri32), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:{ *:[i64] } (tblockaddress:{ *:[i64] }):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:{ *:[i64] } (tblockaddress:{ *:[i64] }):$dst)
/*151327*/      /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->151340
/*151330*/        OPC_MoveParent,
/*151331*/        OPC_CheckType, MVT::i64,
/*151333*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri32), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$dst)
/*151340*/      0, // EndSwitchOpcode
/*151341*/    /*Scope*/ 27, /*->151369*/
/*151342*/      OPC_RecordNode, // #0 = $src
/*151343*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->151356
/*151346*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #1
/*151349*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV32ri), 0,
                      MVT::i32, 1/*#Ops*/, 1, 
                  // Src: relocImm:{ *:[i32] }:$src - Complexity = 3
                  // Dst: (MOV32ri:{ *:[i32] } relocImm:{ *:[i32] }:$src)
/*151356*/      /*SwitchType*/ 10, MVT::i64,// ->151368
/*151358*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #1
/*151361*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri), 0,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: relocImm:{ *:[i64] }:$src - Complexity = 3
                  // Dst: (MOV64ri:{ *:[i64] } relocImm:{ *:[i64] }:$src)
/*151368*/      0, // EndSwitchType
/*151369*/    0, /*End of Scope*/
/*151370*/  /*SwitchOpcode*/ 15, TARGET_VAL(X86ISD::IRET),// ->151388
/*151373*/    OPC_RecordNode, // #0 = 'X86iret' chained node
/*151374*/    OPC_CaptureGlueInput,
/*151375*/    OPC_RecordChild1, // #1 = $adj
/*151376*/    OPC_MoveChild1,
/*151377*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*151380*/    OPC_MoveParent,
/*151381*/    OPC_EmitMergeInputChains1_0,
/*151382*/    OPC_MorphNodeTo0, TARGET_VAL(X86::IRET), 0|OPFL_Chain|OPFL_GlueInput,
                  1/*#Ops*/, 1, 
              // Src: (X86iret (timm:{ *:[i32] }):$adj) - Complexity = 6
              // Dst: (IRET (timm:{ *:[i32] }):$adj)
/*151388*/  /*SwitchOpcode*/ 15, TARGET_VAL(X86ISD::RET_FLAG),// ->151406
/*151391*/    OPC_RecordNode, // #0 = 'X86retflag' chained node
/*151392*/    OPC_CaptureGlueInput,
/*151393*/    OPC_RecordChild1, // #1 = $adj
/*151394*/    OPC_MoveChild1,
/*151395*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*151398*/    OPC_MoveParent,
/*151399*/    OPC_EmitMergeInputChains1_0,
/*151400*/    OPC_MorphNodeTo0, TARGET_VAL(X86::RET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
                  1/*#Ops*/, 1, 
              // Src: (X86retflag (timm:{ *:[i32] }):$adj) - Complexity = 6
              // Dst: (RET (timm:{ *:[i32] }):$adj)
/*151406*/  /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::PEXTRW),// ->151457
/*151409*/    OPC_RecordChild0, // #0 = $src1
/*151410*/    OPC_RecordChild1, // #1 = $src2
/*151411*/    OPC_MoveChild1,
/*151412*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*151415*/    OPC_MoveParent,
/*151416*/    OPC_Scope, 12, /*->151430*/ // 3 children in Scope
/*151418*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*151420*/      OPC_EmitConvertToTarget, 1,
/*151422*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXTRWrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (X86pextrw:{ *:[i32] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                // Dst: (VPEXTRWrr:{ *:[i32] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*151430*/    /*Scope*/ 12, /*->151443*/
/*151431*/      OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*151433*/      OPC_EmitConvertToTarget, 1,
/*151435*/      OPC_MorphNodeTo1, TARGET_VAL(X86::PEXTRWrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (X86pextrw:{ *:[i32] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                // Dst: (PEXTRWrr:{ *:[i32] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*151443*/    /*Scope*/ 12, /*->151456*/
/*151444*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*151446*/      OPC_EmitConvertToTarget, 1,
/*151448*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXTRWZrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (X86pextrw:{ *:[i32] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                // Dst: (VPEXTRWZrr:{ *:[i32] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*151456*/    0, /*End of Scope*/
/*151457*/  /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::PEXTRB),// ->151508
/*151460*/    OPC_RecordChild0, // #0 = $src1
/*151461*/    OPC_RecordChild1, // #1 = $src2
/*151462*/    OPC_MoveChild1,
/*151463*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*151466*/    OPC_MoveParent,
/*151467*/    OPC_Scope, 12, /*->151481*/ // 3 children in Scope
/*151469*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*151471*/      OPC_EmitConvertToTarget, 1,
/*151473*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXTRBrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (X86pextrb:{ *:[i32] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                // Dst: (VPEXTRBrr:{ *:[i32] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*151481*/    /*Scope*/ 12, /*->151494*/
/*151482*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*151484*/      OPC_EmitConvertToTarget, 1,
/*151486*/      OPC_MorphNodeTo1, TARGET_VAL(X86::PEXTRBrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (X86pextrb:{ *:[i32] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                // Dst: (PEXTRBrr:{ *:[i32] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*151494*/    /*Scope*/ 12, /*->151507*/
/*151495*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*151497*/      OPC_EmitConvertToTarget, 1,
/*151499*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXTRBZrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (X86pextrb:{ *:[i32] } VR128X:{ *:[v16i8] }:$src1, (imm:{ *:[iPTR] }):$src2) - Complexity = 6
                // Dst: (VPEXTRBZrr:{ *:[i32] } VR128X:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*151507*/    0, /*End of Scope*/
/*151508*/  /*SwitchOpcode*/ 26, TARGET_VAL(ISD::LOCAL_RECOVER),// ->151537
/*151511*/    OPC_RecordChild0, // #0 = $dst
/*151512*/    OPC_MoveChild0,
/*151513*/    OPC_CheckOpcode, TARGET_VAL(ISD::MCSymbol),
/*151516*/    OPC_MoveParent,
/*151517*/    OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->151527
/*151520*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOV32ri), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86RecoverFrameAlloc:{ *:[i32] } (mcsym:{ *:[i32] }):$dst) - Complexity = 6
                // Dst: (MOV32ri:{ *:[i32] } (mcsym:{ *:[i32] }):$dst)
/*151527*/    /*SwitchType*/ 7, MVT::i64,// ->151536
/*151529*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (X86RecoverFrameAlloc:{ *:[i64] } (mcsym:{ *:[i64] }):$dst) - Complexity = 6
                // Dst: (MOV64ri:{ *:[i64] } (mcsym:{ *:[i64] }):$dst)
/*151536*/    0, // EndSwitchType
/*151537*/  /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::INC),// ->151583
/*151540*/    OPC_RecordChild0, // #0 = $src1
/*151541*/    OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->151552
/*151544*/      OPC_MorphNodeTo2, TARGET_VAL(X86::INC8r), 0,
                    MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86inc_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1) - Complexity = 3
                // Dst: (INC8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/*151552*/    /*SwitchType*/ 8, MVT::i16,// ->151562
/*151554*/      OPC_MorphNodeTo2, TARGET_VAL(X86::INC16r), 0,
                    MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86inc_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1) - Complexity = 3
                // Dst: (INC16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/*151562*/    /*SwitchType*/ 8, MVT::i32,// ->151572
/*151564*/      OPC_MorphNodeTo2, TARGET_VAL(X86::INC32r), 0,
                    MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86inc_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1) - Complexity = 3
                // Dst: (INC32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/*151572*/    /*SwitchType*/ 8, MVT::i64,// ->151582
/*151574*/      OPC_MorphNodeTo2, TARGET_VAL(X86::INC64r), 0,
                    MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86inc_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1) - Complexity = 3
                // Dst: (INC64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/*151582*/    0, // EndSwitchType
/*151583*/  /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::DEC),// ->151629
/*151586*/    OPC_RecordChild0, // #0 = $src1
/*151587*/    OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->151598
/*151590*/      OPC_MorphNodeTo2, TARGET_VAL(X86::DEC8r), 0,
                    MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86dec_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1) - Complexity = 3
                // Dst: (DEC8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/*151598*/    /*SwitchType*/ 8, MVT::i16,// ->151608
/*151600*/      OPC_MorphNodeTo2, TARGET_VAL(X86::DEC16r), 0,
                    MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86dec_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1) - Complexity = 3
                // Dst: (DEC16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/*151608*/    /*SwitchType*/ 8, MVT::i32,// ->151618
/*151610*/      OPC_MorphNodeTo2, TARGET_VAL(X86::DEC32r), 0,
                    MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86dec_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1) - Complexity = 3
                // Dst: (DEC32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/*151618*/    /*SwitchType*/ 8, MVT::i64,// ->151628
/*151620*/      OPC_MorphNodeTo2, TARGET_VAL(X86::DEC64r), 0,
                    MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86dec_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1) - Complexity = 3
                // Dst: (DEC64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/*151628*/    0, // EndSwitchType
/*151629*/  /*SwitchOpcode*/ 12, TARGET_VAL(X86ISD::SAHF),// ->151644
/*151632*/    OPC_RecordChild0, // #0 = physreg input AH
/*151633*/    OPC_CheckPatternPredicate, 158, // (Subtarget->hasLAHFSAHF())
/*151635*/    OPC_EmitCopyToReg, 0, X86::AH,
/*151638*/    OPC_MorphNodeTo1, TARGET_VAL(X86::SAHF), 0|OPFL_GlueInput,
                  MVT::i32, 0/*#Ops*/, 
              // Src: (X86sahf:{ *:[i32] } AH:{ *:[i8] }) - Complexity = 3
              // Dst: (SAHF:{ *:[i32] })
/*151644*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::RDRAND),// ->151686
/*151647*/    OPC_RecordNode, // #0 = 'X86rdrand' chained node
/*151648*/    OPC_SwitchType /*3 cases */, 10, MVT::i16,// ->151661
/*151651*/      OPC_CheckPatternPredicate, 159, // (Subtarget->hasRDRAND())
/*151653*/      OPC_EmitMergeInputChains1_0,
/*151654*/      OPC_MorphNodeTo2, TARGET_VAL(X86::RDRAND16r), 0|OPFL_Chain,
                    MVT::i16, MVT::i32, 0/*#Ops*/, 
                // Src: (X86rdrand:{ *:[i16] }:{ *:[i32] }) - Complexity = 3
                // Dst: (RDRAND16r:{ *:[i16] }:{ *:[i32] })
/*151661*/    /*SwitchType*/ 10, MVT::i32,// ->151673
/*151663*/      OPC_CheckPatternPredicate, 159, // (Subtarget->hasRDRAND())
/*151665*/      OPC_EmitMergeInputChains1_0,
/*151666*/      OPC_MorphNodeTo2, TARGET_VAL(X86::RDRAND32r), 0|OPFL_Chain,
                    MVT::i32, MVT::i32, 0/*#Ops*/, 
                // Src: (X86rdrand:{ *:[i32] }:{ *:[i32] }) - Complexity = 3
                // Dst: (RDRAND32r:{ *:[i32] }:{ *:[i32] })
/*151673*/    /*SwitchType*/ 10, MVT::i64,// ->151685
/*151675*/      OPC_CheckPatternPredicate, 159, // (Subtarget->hasRDRAND())
/*151677*/      OPC_EmitMergeInputChains1_0,
/*151678*/      OPC_MorphNodeTo2, TARGET_VAL(X86::RDRAND64r), 0|OPFL_Chain,
                    MVT::i64, MVT::i32, 0/*#Ops*/, 
                // Src: (X86rdrand:{ *:[i64] }:{ *:[i32] }) - Complexity = 3
                // Dst: (RDRAND64r:{ *:[i64] }:{ *:[i32] })
/*151685*/    0, // EndSwitchType
/*151686*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::RDSEED),// ->151728
/*151689*/    OPC_RecordNode, // #0 = 'X86rdseed' chained node
/*151690*/    OPC_SwitchType /*3 cases */, 10, MVT::i16,// ->151703
/*151693*/      OPC_CheckPatternPredicate, 160, // (Subtarget->hasRDSEED())
/*151695*/      OPC_EmitMergeInputChains1_0,
/*151696*/      OPC_MorphNodeTo2, TARGET_VAL(X86::RDSEED16r), 0|OPFL_Chain,
                    MVT::i16, MVT::i32, 0/*#Ops*/, 
                // Src: (X86rdseed:{ *:[i16] }:{ *:[i32] }) - Complexity = 3
                // Dst: (RDSEED16r:{ *:[i16] }:{ *:[i32] })
/*151703*/    /*SwitchType*/ 10, MVT::i32,// ->151715
/*151705*/      OPC_CheckPatternPredicate, 160, // (Subtarget->hasRDSEED())
/*151707*/      OPC_EmitMergeInputChains1_0,
/*151708*/      OPC_MorphNodeTo2, TARGET_VAL(X86::RDSEED32r), 0|OPFL_Chain,
                    MVT::i32, MVT::i32, 0/*#Ops*/, 
                // Src: (X86rdseed:{ *:[i32] }:{ *:[i32] }) - Complexity = 3
                // Dst: (RDSEED32r:{ *:[i32] }:{ *:[i32] })
/*151715*/    /*SwitchType*/ 10, MVT::i64,// ->151727
/*151717*/      OPC_CheckPatternPredicate, 160, // (Subtarget->hasRDSEED())
/*151719*/      OPC_EmitMergeInputChains1_0,
/*151720*/      OPC_MorphNodeTo2, TARGET_VAL(X86::RDSEED64r), 0|OPFL_Chain,
                    MVT::i64, MVT::i32, 0/*#Ops*/, 
                // Src: (X86rdseed:{ *:[i64] }:{ *:[i32] }) - Complexity = 3
                // Dst: (RDSEED64r:{ *:[i64] }:{ *:[i32] })
/*151727*/    0, // EndSwitchType
/*151728*/  /*SwitchOpcode*/ 22, TARGET_VAL(X86ISD::UMWAIT),// ->151753
/*151731*/    OPC_RecordNode, // #0 = 'X86umwait' chained node
/*151732*/    OPC_RecordChild1, // #1 = $src
/*151733*/    OPC_CheckChild1Type, MVT::i32,
/*151735*/    OPC_RecordChild2, // #2 = physreg input EDX
/*151736*/    OPC_RecordChild3, // #3 = physreg input EAX
/*151737*/    OPC_CheckPatternPredicate, 97, // (Subtarget->hasWAITPKG())
/*151739*/    OPC_EmitMergeInputChains1_0,
/*151740*/    OPC_EmitCopyToReg, 2, X86::EDX,
/*151743*/    OPC_EmitCopyToReg, 3, X86::EAX,
/*151746*/    OPC_MorphNodeTo1, TARGET_VAL(X86::UMWAIT), 0|OPFL_Chain|OPFL_GlueInput,
                  MVT::i32, 1/*#Ops*/, 1, 
              // Src: (X86umwait:{ *:[i32] } GR32orGR64:{ *:[i32] }:$src, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 3
              // Dst: (UMWAIT:{ *:[i32] } GR32orGR64:{ *:[i32] }:$src)
/*151753*/  /*SwitchOpcode*/ 22, TARGET_VAL(X86ISD::TPAUSE),// ->151778
/*151756*/    OPC_RecordNode, // #0 = 'X86tpause' chained node
/*151757*/    OPC_RecordChild1, // #1 = $src
/*151758*/    OPC_CheckChild1Type, MVT::i32,
/*151760*/    OPC_RecordChild2, // #2 = physreg input EDX
/*151761*/    OPC_RecordChild3, // #3 = physreg input EAX
/*151762*/    OPC_CheckPatternPredicate, 97, // (Subtarget->hasWAITPKG())
/*151764*/    OPC_EmitMergeInputChains1_0,
/*151765*/    OPC_EmitCopyToReg, 2, X86::EDX,
/*151768*/    OPC_EmitCopyToReg, 3, X86::EAX,
/*151771*/    OPC_MorphNodeTo1, TARGET_VAL(X86::TPAUSE), 0|OPFL_Chain|OPFL_GlueInput,
                  MVT::i32, 1/*#Ops*/, 1, 
              // Src: (X86tpause:{ *:[i32] } GR32orGR64:{ *:[i32] }:$src, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 3
              // Dst: (TPAUSE:{ *:[i32] } GR32orGR64:{ *:[i32] }:$src)
/*151778*/  /*SwitchOpcode*/ 14, TARGET_VAL(ISD::BR),// ->151795
/*151781*/    OPC_RecordNode, // #0 = 'br' chained node
/*151782*/    OPC_RecordChild1, // #1 = $dst
/*151783*/    OPC_MoveChild1,
/*151784*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*151787*/    OPC_MoveParent,
/*151788*/    OPC_EmitMergeInputChains1_0,
/*151789*/    OPC_MorphNodeTo0, TARGET_VAL(X86::JMP_1), 0|OPFL_Chain,
                  1/*#Ops*/, 1, 
              // Src: (br (bb:{ *:[Other] }):$dst) - Complexity = 3
              // Dst: (JMP_1 (bb:{ *:[Other] }):$dst)
/*151795*/  /*SwitchOpcode*/ 10, TARGET_VAL(X86ISD::FNSTSW16r),// ->151808
/*151798*/    OPC_RecordChild0, // #0 = physreg input FPSW
/*151799*/    OPC_EmitCopyToReg, 0, X86::FPSW,
/*151802*/    OPC_MorphNodeTo1, TARGET_VAL(X86::FNSTSW16r), 0|OPFL_GlueInput,
                  MVT::i16, 0/*#Ops*/, 
              // Src: (X86fp_stsw:{ *:[i16] } FPSW:{ *:[i16] }) - Complexity = 3
              // Dst: (FNSTSW16r:{ *:[i16] })
/*151808*/  /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::MOVMSK),// ->151925
/*151811*/    OPC_RecordChild0, // #0 = $src
/*151812*/    OPC_Scope, 24, /*->151838*/ // 6 children in Scope
/*151814*/      OPC_CheckChild0Type, MVT::v4f32,
/*151816*/      OPC_Scope, 9, /*->151827*/ // 2 children in Scope
/*151818*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*151820*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVMSKPSrr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86movmsk:{ *:[i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VMOVMSKPSrr:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
/*151827*/      /*Scope*/ 9, /*->151837*/
/*151828*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*151830*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVMSKPSrr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86movmsk:{ *:[i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (MOVMSKPSrr:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
/*151837*/      0, /*End of Scope*/
/*151838*/    /*Scope*/ 24, /*->151863*/
/*151839*/      OPC_CheckChild0Type, MVT::v2f64,
/*151841*/      OPC_Scope, 9, /*->151852*/ // 2 children in Scope
/*151843*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*151845*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVMSKPDrr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86movmsk:{ *:[i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (VMOVMSKPDrr:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
/*151852*/      /*Scope*/ 9, /*->151862*/
/*151853*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*151855*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVMSKPDrr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86movmsk:{ *:[i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (MOVMSKPDrr:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
/*151862*/      0, /*End of Scope*/
/*151863*/    /*Scope*/ 11, /*->151875*/
/*151864*/      OPC_CheckChild0Type, MVT::v8f32,
/*151866*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*151868*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVMSKPSYrr), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86movmsk:{ *:[i32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                // Dst: (VMOVMSKPSYrr:{ *:[i32] } VR256:{ *:[v8f32] }:$src)
/*151875*/    /*Scope*/ 11, /*->151887*/
/*151876*/      OPC_CheckChild0Type, MVT::v4f64,
/*151878*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*151880*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVMSKPDYrr), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86movmsk:{ *:[i32] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                // Dst: (VMOVMSKPDYrr:{ *:[i32] } VR256:{ *:[v4f64] }:$src)
/*151887*/    /*Scope*/ 24, /*->151912*/
/*151888*/      OPC_CheckChild0Type, MVT::v16i8,
/*151890*/      OPC_Scope, 9, /*->151901*/ // 2 children in Scope
/*151892*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*151894*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVMSKBrr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86movmsk:{ *:[i32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                  // Dst: (VPMOVMSKBrr:{ *:[i32] } VR128:{ *:[v16i8] }:$src)
/*151901*/      /*Scope*/ 9, /*->151911*/
/*151902*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*151904*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVMSKBrr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86movmsk:{ *:[i32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                  // Dst: (PMOVMSKBrr:{ *:[i32] } VR128:{ *:[v16i8] }:$src)
/*151911*/      0, /*End of Scope*/
/*151912*/    /*Scope*/ 11, /*->151924*/
/*151913*/      OPC_CheckChild0Type, MVT::v32i8,
/*151915*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*151917*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVMSKBYrr), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86movmsk:{ *:[i32] } VR256:{ *:[v32i8] }:$src) - Complexity = 3
                // Dst: (VPMOVMSKBYrr:{ *:[i32] } VR256:{ *:[v32i8] }:$src)
/*151924*/    0, /*End of Scope*/
/*151925*/  /*SwitchOpcode*/ 7, TARGET_VAL(X86ISD::MFENCE),// ->151935
/*151928*/    OPC_RecordNode, // #0 = 'X86MFence' chained node
/*151929*/    OPC_EmitMergeInputChains1_0,
/*151930*/    OPC_MorphNodeTo0, TARGET_VAL(X86::MFENCE), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (X86MFence) - Complexity = 3
              // Dst: (MFENCE)
/*151935*/  /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::KORTEST),// ->151997
/*151938*/    OPC_RecordChild0, // #0 = $src1
/*151939*/    OPC_Scope, 13, /*->151954*/ // 4 children in Scope
/*151941*/      OPC_CheckChild0Type, MVT::v8i1,
/*151943*/      OPC_RecordChild1, // #1 = $src2
/*151944*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*151946*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KORTESTBrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86kortest:{ *:[i32] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2) - Complexity = 3
                // Dst: (KORTESTBrr:{ *:[i32] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*151954*/    /*Scope*/ 13, /*->151968*/
/*151955*/      OPC_CheckChild0Type, MVT::v16i1,
/*151957*/      OPC_RecordChild1, // #1 = $src2
/*151958*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*151960*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KORTESTWrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86kortest:{ *:[i32] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2) - Complexity = 3
                // Dst: (KORTESTWrr:{ *:[i32] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*151968*/    /*Scope*/ 13, /*->151982*/
/*151969*/      OPC_CheckChild0Type, MVT::v64i1,
/*151971*/      OPC_RecordChild1, // #1 = $src2
/*151972*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*151974*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KORTESTQrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86kortest:{ *:[i32] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2) - Complexity = 3
                // Dst: (KORTESTQrr:{ *:[i32] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*151982*/    /*Scope*/ 13, /*->151996*/
/*151983*/      OPC_CheckChild0Type, MVT::v32i1,
/*151985*/      OPC_RecordChild1, // #1 = $src2
/*151986*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*151988*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KORTESTDrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86kortest:{ *:[i32] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2) - Complexity = 3
                // Dst: (KORTESTDrr:{ *:[i32] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*151996*/    0, /*End of Scope*/
/*151997*/  /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::KTEST),// ->152059
/*152000*/    OPC_RecordChild0, // #0 = $src1
/*152001*/    OPC_Scope, 13, /*->152016*/ // 4 children in Scope
/*152003*/      OPC_CheckChild0Type, MVT::v8i1,
/*152005*/      OPC_RecordChild1, // #1 = $src2
/*152006*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*152008*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KTESTBrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86ktest:{ *:[i32] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2) - Complexity = 3
                // Dst: (KTESTBrr:{ *:[i32] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*152016*/    /*Scope*/ 13, /*->152030*/
/*152017*/      OPC_CheckChild0Type, MVT::v16i1,
/*152019*/      OPC_RecordChild1, // #1 = $src2
/*152020*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*152022*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KTESTWrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86ktest:{ *:[i32] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2) - Complexity = 3
                // Dst: (KTESTWrr:{ *:[i32] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*152030*/    /*Scope*/ 13, /*->152044*/
/*152031*/      OPC_CheckChild0Type, MVT::v64i1,
/*152033*/      OPC_RecordChild1, // #1 = $src2
/*152034*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*152036*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KTESTQrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86ktest:{ *:[i32] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2) - Complexity = 3
                // Dst: (KTESTQrr:{ *:[i32] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*152044*/    /*Scope*/ 13, /*->152058*/
/*152045*/      OPC_CheckChild0Type, MVT::v32i1,
/*152047*/      OPC_RecordChild1, // #1 = $src2
/*152048*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*152050*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KTESTDrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86ktest:{ *:[i32] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2) - Complexity = 3
                // Dst: (KTESTDrr:{ *:[i32] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*152058*/    0, /*End of Scope*/
/*152059*/  /*SwitchOpcode*/ 10, TARGET_VAL(X86ISD::MMX_MOVD2W),// ->152072
/*152062*/    OPC_RecordChild0, // #0 = $src
/*152063*/    OPC_CheckPatternPredicate, 27, // (Subtarget->hasMMX())
/*152065*/    OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVD64grr), 0,
                  MVT::i32, 1/*#Ops*/, 0, 
              // Src: (MMX_X86movd2w:{ *:[i32] } VR64:{ *:[x86mmx] }:$src) - Complexity = 3
              // Dst: (MMX_MOVD64grr:{ *:[i32] } VR64:{ *:[x86mmx] }:$src)
/*152072*/  /*SwitchOpcode*/ 10, TARGET_VAL(X86ISD::XTEST),// ->152085
/*152075*/    OPC_RecordNode, // #0 = 'X86xtest' chained node
/*152076*/    OPC_CheckPatternPredicate, 95, // (Subtarget->hasRTM())
/*152078*/    OPC_EmitMergeInputChains1_0,
/*152079*/    OPC_MorphNodeTo1, TARGET_VAL(X86::XTEST), 0|OPFL_Chain,
                  MVT::i32, 0/*#Ops*/, 
              // Src: (X86xtest:{ *:[i32] }) - Complexity = 3
              // Dst: (XTEST:{ *:[i32] })
/*152085*/  /*SwitchOpcode*/ 8, TARGET_VAL(X86ISD::RDTSC_DAG),// ->152096
/*152088*/    OPC_RecordNode, // #0 = 'X86rdtsc' chained node
/*152089*/    OPC_EmitMergeInputChains1_0,
/*152090*/    OPC_MorphNodeTo1, TARGET_VAL(X86::RDTSC), 0|OPFL_Chain|OPFL_GlueOutput,
                  MVT::i64, 0/*#Ops*/, 
              // Src: (X86rdtsc) - Complexity = 3
              // Dst: (RDTSC:{ *:[i64] })
/*152096*/  /*SwitchOpcode*/ 8, TARGET_VAL(X86ISD::RDTSCP_DAG),// ->152107
/*152099*/    OPC_RecordNode, // #0 = 'X86rdtscp' chained node
/*152100*/    OPC_EmitMergeInputChains1_0,
/*152101*/    OPC_MorphNodeTo1, TARGET_VAL(X86::RDTSCP), 0|OPFL_Chain|OPFL_GlueOutput,
                  MVT::i64, 0/*#Ops*/, 
              // Src: (X86rdtscp) - Complexity = 3
              // Dst: (RDTSCP:{ *:[i64] })
/*152107*/  /*SwitchOpcode*/ 7, TARGET_VAL(ISD::TRAP),// ->152117
/*152110*/    OPC_RecordNode, // #0 = 'trap' chained node
/*152111*/    OPC_EmitMergeInputChains1_0,
/*152112*/    OPC_MorphNodeTo0, TARGET_VAL(X86::TRAP), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (trap) - Complexity = 3
              // Dst: (TRAP)
/*152117*/  /*SwitchOpcode*/ 25, TARGET_VAL(ISD::DEBUGTRAP),// ->152145
/*152120*/    OPC_RecordNode, // #0 = 'debugtrap' chained node
/*152121*/    OPC_Scope, 8, /*->152131*/ // 2 children in Scope
/*152123*/      OPC_CheckPatternPredicate, 161, // (!Subtarget->isTargetPS4())
/*152125*/      OPC_EmitMergeInputChains1_0,
/*152126*/      OPC_MorphNodeTo0, TARGET_VAL(X86::INT3), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (debugtrap) - Complexity = 3
                // Dst: (INT3)
/*152131*/    /*Scope*/ 12, /*->152144*/
/*152132*/      OPC_CheckPatternPredicate, 162, // (Subtarget->isTargetPS4())
/*152134*/      OPC_EmitMergeInputChains1_0,
/*152135*/      OPC_EmitInteger, MVT::i8, 65, 
/*152138*/      OPC_MorphNodeTo0, TARGET_VAL(X86::INT), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (debugtrap) - Complexity = 3
                // Dst: (INT 65:{ *:[i8] })
/*152144*/    0, /*End of Scope*/
/*152145*/  /*SwitchOpcode*/ 8, TARGET_VAL(X86ISD::RDPMC_DAG),// ->152156
/*152148*/    OPC_RecordNode, // #0 = 'X86rdpmc' chained node
/*152149*/    OPC_EmitMergeInputChains1_0,
/*152150*/    OPC_MorphNodeTo1, TARGET_VAL(X86::RDPMC), 0|OPFL_Chain|OPFL_GlueOutput,
                  MVT::i64, 0/*#Ops*/, 
              // Src: (X86rdpmc) - Complexity = 3
              // Dst: (RDPMC:{ *:[i64] })
/*152156*/  /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::WIN_ALLOCA),// ->152189
/*152159*/    OPC_RecordNode, // #0 = 'X86WinAlloca' chained node
/*152160*/    OPC_RecordChild1, // #1 = $size
/*152161*/    OPC_Scope, 12, /*->152175*/ // 2 children in Scope
/*152163*/      OPC_CheckChild1Type, MVT::i32,
/*152165*/      OPC_CheckPatternPredicate, 116, // (!Subtarget->isTarget64BitLP64())
/*152167*/      OPC_EmitMergeInputChains1_0,
/*152168*/      OPC_MorphNodeTo1, TARGET_VAL(X86::WIN_ALLOCA_32), 0|OPFL_Chain|OPFL_GlueOutput,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (X86WinAlloca GR32:{ *:[i32] }:$size) - Complexity = 3
                // Dst: (WIN_ALLOCA_32:{ *:[i32] } GR32:{ *:[i32] }:$size)
/*152175*/    /*Scope*/ 12, /*->152188*/
/*152176*/      OPC_CheckChild1Type, MVT::i64,
/*152178*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*152180*/      OPC_EmitMergeInputChains1_0,
/*152181*/      OPC_MorphNodeTo1, TARGET_VAL(X86::WIN_ALLOCA_64), 0|OPFL_Chain|OPFL_GlueOutput,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (X86WinAlloca GR64:{ *:[i64] }:$size) - Complexity = 3
                // Dst: (WIN_ALLOCA_64:{ *:[i64] } GR64:{ *:[i64] }:$size)
/*152188*/    0, /*End of Scope*/
/*152189*/  /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::EH_RETURN),// ->152216
/*152192*/    OPC_RecordNode, // #0 = 'X86ehret' chained node
/*152193*/    OPC_RecordChild1, // #1 = $addr
/*152194*/    OPC_Scope, 9, /*->152205*/ // 2 children in Scope
/*152196*/      OPC_CheckChild1Type, MVT::i32,
/*152198*/      OPC_EmitMergeInputChains1_0,
/*152199*/      OPC_MorphNodeTo0, TARGET_VAL(X86::EH_RETURN), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (X86ehret GR32:{ *:[i32] }:$addr) - Complexity = 3
                // Dst: (EH_RETURN GR32:{ *:[i32] }:$addr)
/*152205*/    /*Scope*/ 9, /*->152215*/
/*152206*/      OPC_CheckChild1Type, MVT::i64,
/*152208*/      OPC_EmitMergeInputChains1_0,
/*152209*/      OPC_MorphNodeTo0, TARGET_VAL(X86::EH_RETURN64), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (X86ehret GR64:{ *:[i64] }:$addr) - Complexity = 3
                // Dst: (EH_RETURN64 GR64:{ *:[i64] }:$addr)
/*152215*/    0, /*End of Scope*/
/*152216*/  /*SwitchOpcode*/ 7, TARGET_VAL(ISD::CLEANUPRET),// ->152226
/*152219*/    OPC_RecordNode, // #0 = 'cleanupret' chained node
/*152220*/    OPC_EmitMergeInputChains1_0,
/*152221*/    OPC_MorphNodeTo0, TARGET_VAL(X86::CLEANUPRET), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (cleanupret) - Complexity = 3
              // Dst: (CLEANUPRET)
/*152226*/  /*SwitchOpcode*/ 96, TARGET_VAL(X86ISD::REP_MOVS),// ->152325
/*152229*/    OPC_RecordNode, // #0 = 'X86rep_movs' chained node
/*152230*/    OPC_CaptureGlueInput,
/*152231*/    OPC_MoveChild1,
/*152232*/    OPC_Scope, 25, /*->152259*/ // 4 children in Scope
/*152234*/      OPC_CheckValueType, MVT::i8,
/*152236*/      OPC_MoveParent,
/*152237*/      OPC_Scope, 9, /*->152248*/ // 2 children in Scope
/*152239*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*152241*/        OPC_EmitMergeInputChains1_0,
/*152242*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_MOVSB_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (X86rep_movs i8:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_MOVSB_32:{ *:[i32] })
/*152248*/      /*Scope*/ 9, /*->152258*/
/*152249*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*152251*/        OPC_EmitMergeInputChains1_0,
/*152252*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_MOVSB_64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, 0/*#Ops*/, 
                  // Src: (X86rep_movs i8:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_MOVSB_64:{ *:[i64] })
/*152258*/      0, /*End of Scope*/
/*152259*/    /*Scope*/ 25, /*->152285*/
/*152260*/      OPC_CheckValueType, MVT::i16,
/*152262*/      OPC_MoveParent,
/*152263*/      OPC_Scope, 9, /*->152274*/ // 2 children in Scope
/*152265*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*152267*/        OPC_EmitMergeInputChains1_0,
/*152268*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_MOVSW_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (X86rep_movs i16:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_MOVSW_32:{ *:[i32] })
/*152274*/      /*Scope*/ 9, /*->152284*/
/*152275*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*152277*/        OPC_EmitMergeInputChains1_0,
/*152278*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_MOVSW_64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, 0/*#Ops*/, 
                  // Src: (X86rep_movs i16:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_MOVSW_64:{ *:[i64] })
/*152284*/      0, /*End of Scope*/
/*152285*/    /*Scope*/ 25, /*->152311*/
/*152286*/      OPC_CheckValueType, MVT::i32,
/*152288*/      OPC_MoveParent,
/*152289*/      OPC_Scope, 9, /*->152300*/ // 2 children in Scope
/*152291*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*152293*/        OPC_EmitMergeInputChains1_0,
/*152294*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_MOVSD_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (X86rep_movs i32:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_MOVSD_32:{ *:[i32] })
/*152300*/      /*Scope*/ 9, /*->152310*/
/*152301*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*152303*/        OPC_EmitMergeInputChains1_0,
/*152304*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_MOVSD_64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, 0/*#Ops*/, 
                  // Src: (X86rep_movs i32:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_MOVSD_64:{ *:[i64] })
/*152310*/      0, /*End of Scope*/
/*152311*/    /*Scope*/ 12, /*->152324*/
/*152312*/      OPC_CheckValueType, MVT::i64,
/*152314*/      OPC_MoveParent,
/*152315*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*152317*/      OPC_EmitMergeInputChains1_0,
/*152318*/      OPC_MorphNodeTo1, TARGET_VAL(X86::REP_MOVSQ_64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i64, 0/*#Ops*/, 
                // Src: (X86rep_movs i64:{ *:[Other] }) - Complexity = 3
                // Dst: (REP_MOVSQ_64:{ *:[i64] })
/*152324*/    0, /*End of Scope*/
/*152325*/  /*SwitchOpcode*/ 96, TARGET_VAL(X86ISD::REP_STOS),// ->152424
/*152328*/    OPC_RecordNode, // #0 = 'X86rep_stos' chained node
/*152329*/    OPC_CaptureGlueInput,
/*152330*/    OPC_MoveChild1,
/*152331*/    OPC_Scope, 25, /*->152358*/ // 4 children in Scope
/*152333*/      OPC_CheckValueType, MVT::i8,
/*152335*/      OPC_MoveParent,
/*152336*/      OPC_Scope, 9, /*->152347*/ // 2 children in Scope
/*152338*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*152340*/        OPC_EmitMergeInputChains1_0,
/*152341*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_STOSB_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (X86rep_stos i8:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_STOSB_32:{ *:[i32] })
/*152347*/      /*Scope*/ 9, /*->152357*/
/*152348*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*152350*/        OPC_EmitMergeInputChains1_0,
/*152351*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_STOSB_64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, 0/*#Ops*/, 
                  // Src: (X86rep_stos i8:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_STOSB_64:{ *:[i64] })
/*152357*/      0, /*End of Scope*/
/*152358*/    /*Scope*/ 25, /*->152384*/
/*152359*/      OPC_CheckValueType, MVT::i16,
/*152361*/      OPC_MoveParent,
/*152362*/      OPC_Scope, 9, /*->152373*/ // 2 children in Scope
/*152364*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*152366*/        OPC_EmitMergeInputChains1_0,
/*152367*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_STOSW_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (X86rep_stos i16:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_STOSW_32:{ *:[i32] })
/*152373*/      /*Scope*/ 9, /*->152383*/
/*152374*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*152376*/        OPC_EmitMergeInputChains1_0,
/*152377*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_STOSW_64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, 0/*#Ops*/, 
                  // Src: (X86rep_stos i16:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_STOSW_64:{ *:[i64] })
/*152383*/      0, /*End of Scope*/
/*152384*/    /*Scope*/ 25, /*->152410*/
/*152385*/      OPC_CheckValueType, MVT::i32,
/*152387*/      OPC_MoveParent,
/*152388*/      OPC_Scope, 9, /*->152399*/ // 2 children in Scope
/*152390*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->is64Bit())
/*152392*/        OPC_EmitMergeInputChains1_0,
/*152393*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_STOSD_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (X86rep_stos i32:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_STOSD_32:{ *:[i32] })
/*152399*/      /*Scope*/ 9, /*->152409*/
/*152400*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*152402*/        OPC_EmitMergeInputChains1_0,
/*152403*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_STOSD_64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, 0/*#Ops*/, 
                  // Src: (X86rep_stos i32:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_STOSD_64:{ *:[i64] })
/*152409*/      0, /*End of Scope*/
/*152410*/    /*Scope*/ 12, /*->152423*/
/*152411*/      OPC_CheckValueType, MVT::i64,
/*152413*/      OPC_MoveParent,
/*152414*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*152416*/      OPC_EmitMergeInputChains1_0,
/*152417*/      OPC_MorphNodeTo1, TARGET_VAL(X86::REP_STOSQ_64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i64, 0/*#Ops*/, 
                // Src: (X86rep_stos i64:{ *:[Other] }) - Complexity = 3
                // Dst: (REP_STOSQ_64:{ *:[i64] })
/*152423*/    0, /*End of Scope*/
/*152424*/  /*SwitchOpcode*/ 7, TARGET_VAL(X86ISD::MEMBARRIER),// ->152434
/*152427*/    OPC_RecordNode, // #0 = 'X86MemBarrier' chained node
/*152428*/    OPC_EmitMergeInputChains1_0,
/*152429*/    OPC_MorphNodeTo0, TARGET_VAL(X86::Int_MemBarrier), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (X86MemBarrier) - Complexity = 3
              // Dst: (Int_MemBarrier)
/*152434*/  /*SwitchOpcode*/ 21|128,1/*149*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->152587
/*152438*/    OPC_RecordChild0, // #0 = $src
/*152439*/    OPC_MoveChild1,
/*152440*/    OPC_Scope, 45, /*->152487*/ // 3 children in Scope
/*152442*/      OPC_CheckValueType, MVT::i16,
/*152444*/      OPC_MoveParent,
/*152445*/      OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->152466
/*152448*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*152451*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*152459*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX32rr16), 0,
                      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] }))
/*152466*/      /*SwitchType*/ 18, MVT::i64,// ->152486
/*152468*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*152471*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*152479*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX64rr16), 0,
                      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] }))
/*152486*/      0, // EndSwitchType
/*152487*/    /*Scope*/ 76, /*->152564*/
/*152488*/      OPC_CheckValueType, MVT::i8,
/*152490*/      OPC_MoveParent,
/*152491*/      OPC_SwitchType /*3 cases */, 18, MVT::i32,// ->152512
/*152494*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*152497*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*152505*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX32rr8), 0,
                      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] }))
/*152512*/      /*SwitchType*/ 18, MVT::i64,// ->152532
/*152514*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*152517*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*152525*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX64rr8), 0,
                      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] }))
/*152532*/      /*SwitchType*/ 29, MVT::i16,// ->152563
/*152534*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*152537*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*152545*/        OPC_EmitNode1, TARGET_VAL(X86::MOVSX32rr8), 0,
                      MVT::i32, 1/*#Ops*/, 2,  // Results = #3
/*152552*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*152555*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      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] })
/*152563*/      0, // EndSwitchType
/*152564*/    /*Scope*/ 21, /*->152586*/
/*152565*/      OPC_CheckValueType, MVT::i32,
/*152567*/      OPC_MoveParent,
/*152568*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*152571*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*152579*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX64rr32), 0,
                    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] }))
/*152586*/    0, /*End of Scope*/
/*152587*/  /*SwitchOpcode*/ 93, TARGET_VAL(ISD::FP_TO_FP16),// ->152683
/*152590*/    OPC_RecordChild0, // #0 = $src
/*152591*/    OPC_CheckChild0Type, MVT::f32,
/*152593*/    OPC_CheckType, MVT::i16,
/*152595*/    OPC_Scope, 42, /*->152639*/ // 2 children in Scope
/*152597*/      OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*152599*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*152602*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*152610*/      OPC_EmitInteger, MVT::i32, 4, 
/*152613*/      OPC_EmitNode1, TARGET_VAL(X86::VCVTPS2PHrr), 0,
                    MVT::v8i16, 2/*#Ops*/, 2, 3,  // Results = #4
/*152621*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVPDI2DIrr), 0,
                    MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/*152628*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*152631*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i16, 2/*#Ops*/, 5, 6, 
                // Src: (fp_to_f16:{ *:[i16] } FR32:{ *:[f32] }:$src) - Complexity = 3
                // Dst: (EXTRACT_SUBREG:{ *:[i16] } (VMOVPDI2DIrr:{ *:[i32] } (VCVTPS2PHrr:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }), 4:{ *:[i32] })), sub_16bit:{ *:[i32] })
/*152639*/    /*Scope*/ 42, /*->152682*/
/*152640*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*152642*/      OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*152645*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*152653*/      OPC_EmitInteger, MVT::i32, 4, 
/*152656*/      OPC_EmitNode1, TARGET_VAL(X86::VCVTPS2PHZ128rr), 0,
                    MVT::v8i16, 2/*#Ops*/, 2, 3,  // Results = #4
/*152664*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVPDI2DIZrr), 0,
                    MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/*152671*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*152674*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i16, 2/*#Ops*/, 5, 6, 
                // Src: (fp_to_f16:{ *:[i16] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                // Dst: (EXTRACT_SUBREG:{ *:[i16] } (VMOVPDI2DIZrr:{ *:[i32] } (VCVTPS2PHZ128rr:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }), 4:{ *:[i32] })), sub_16bit:{ *:[i32] })
/*152682*/    0, /*End of Scope*/
/*152683*/  /*SwitchOpcode*/ 7, TARGET_VAL(X86ISD::EH_SJLJ_SETUP_DISPATCH),// ->152693
/*152686*/    OPC_RecordNode, // #0 = 'X86eh_sjlj_setup_dispatch' chained node
/*152687*/    OPC_EmitMergeInputChains1_0,
/*152688*/    OPC_MorphNodeTo0, TARGET_VAL(X86::Int_eh_sjlj_setup_dispatch), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (X86eh_sjlj_setup_dispatch) - Complexity = 3
              // Dst: (Int_eh_sjlj_setup_dispatch)
/*152693*/  /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::SEG_ALLOCA),// ->152730
/*152696*/    OPC_RecordNode, // #0 = 'X86SegAlloca' chained node
/*152697*/    OPC_RecordChild1, // #1 = $size
/*152698*/    OPC_SwitchType /*2 cases */, 13, MVT::i32,// ->152714
/*152701*/      OPC_CheckChild1Type, MVT::i32,
/*152703*/      OPC_CheckPatternPredicate, 116, // (!Subtarget->isTarget64BitLP64())
/*152705*/      OPC_EmitMergeInputChains1_0,
/*152706*/      OPC_MorphNodeTo2, TARGET_VAL(X86::SEG_ALLOCA_32), 0|OPFL_Chain,
                    MVT::i32, MVT::i32, 1/*#Ops*/, 1, 
                // Src: (X86SegAlloca:{ *:[i32] } GR32:{ *:[i32] }:$size) - Complexity = 3
                // Dst: (SEG_ALLOCA_32:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$size)
/*152714*/    /*SwitchType*/ 13, MVT::i64,// ->152729
/*152716*/      OPC_CheckChild1Type, MVT::i64,
/*152718*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*152720*/      OPC_EmitMergeInputChains1_0,
/*152721*/      OPC_MorphNodeTo2, TARGET_VAL(X86::SEG_ALLOCA_64), 0|OPFL_Chain,
                    MVT::i64, MVT::i64, 1/*#Ops*/, 1, 
                // Src: (X86SegAlloca:{ *:[i64] } GR64:{ *:[i64] }:$size) - Complexity = 3
                // Dst: (SEG_ALLOCA_64:{ *:[i64] }:{ *:[i64] } GR64:{ *:[i64] }:$size)
/*152729*/    0, // EndSwitchType
/*152730*/  /*SwitchOpcode*/ 21, TARGET_VAL(ISD::CATCHRET),// ->152754
/*152733*/    OPC_RecordNode, // #0 = 'catchret' chained node
/*152734*/    OPC_RecordChild1, // #1 = $dst
/*152735*/    OPC_MoveChild1,
/*152736*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*152739*/    OPC_MoveParent,
/*152740*/    OPC_RecordChild2, // #2 = $from
/*152741*/    OPC_MoveChild2,
/*152742*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*152745*/    OPC_MoveParent,
/*152746*/    OPC_EmitMergeInputChains1_0,
/*152747*/    OPC_MorphNodeTo0, TARGET_VAL(X86::CATCHRET), 0|OPFL_Chain,
                  2/*#Ops*/, 1, 2, 
              // Src: (catchret (bb:{ *:[Other] }):$dst, (bb:{ *:[Other] }):$from) - Complexity = 3
              // Dst: (CATCHRET (bb:{ *:[Other] }):$dst, (bb:{ *:[Other] }):$from)
/*152754*/  /*SwitchOpcode*/ 7, TARGET_VAL(ISD::CATCHPAD),// ->152764
/*152757*/    OPC_RecordNode, // #0 = 'catchpad' chained node
/*152758*/    OPC_EmitMergeInputChains1_0,
/*152759*/    OPC_MorphNodeTo0, TARGET_VAL(X86::CATCHPAD), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (catchpad) - Complexity = 3
              // Dst: (CATCHPAD)
/*152764*/  /*SwitchOpcode*/ 113|128,2/*369*/, TARGET_VAL(X86ISD::FSETCC),// ->153137
/*152768*/    OPC_Scope, 6|128,1/*134*/, /*->152905*/ // 2 children in Scope
/*152771*/      OPC_MoveChild0,
/*152772*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152775*/      OPC_RecordMemRef,
/*152776*/      OPC_RecordNode, // #0 = 'ld' chained node
/*152777*/      OPC_CheckFoldableChainNode,
/*152778*/      OPC_RecordChild1, // #1 = $src2
/*152779*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152781*/      OPC_CheckPredicate, 9, // Predicate_load
/*152783*/      OPC_SwitchType /*2 cases */, 58, MVT::f64,// ->152844
/*152786*/        OPC_MoveParent,
/*152787*/        OPC_RecordChild1, // #2 = $src1
/*152788*/        OPC_RecordChild2, // #3 = $cc
/*152789*/        OPC_MoveChild2,
/*152790*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*152793*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*152795*/        OPC_MoveParent,
/*152796*/        OPC_CheckType, MVT::f64,
/*152798*/        OPC_Scope, 21, /*->152821*/ // 2 children in Scope
/*152800*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*152802*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152805*/          OPC_EmitMergeInputChains1_0,
/*152806*/          OPC_EmitConvertToTarget, 3,
/*152808*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmps:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*152821*/        /*Scope*/ 21, /*->152843*/
/*152822*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*152824*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152827*/          OPC_EmitMergeInputChains1_0,
/*152828*/          OPC_EmitConvertToTarget, 3,
/*152830*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmps:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (CMPSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*152843*/        0, /*End of Scope*/
/*152844*/      /*SwitchType*/ 58, MVT::f32,// ->152904
/*152846*/        OPC_MoveParent,
/*152847*/        OPC_RecordChild1, // #2 = $src1
/*152848*/        OPC_RecordChild2, // #3 = $cc
/*152849*/        OPC_MoveChild2,
/*152850*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*152853*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*152855*/        OPC_MoveParent,
/*152856*/        OPC_CheckType, MVT::f32,
/*152858*/        OPC_Scope, 21, /*->152881*/ // 2 children in Scope
/*152860*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*152862*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152865*/          OPC_EmitMergeInputChains1_0,
/*152866*/          OPC_EmitConvertToTarget, 3,
/*152868*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmps:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*152881*/        /*Scope*/ 21, /*->152903*/
/*152882*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*152884*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152887*/          OPC_EmitMergeInputChains1_0,
/*152888*/          OPC_EmitConvertToTarget, 3,
/*152890*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmps:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (CMPSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*152903*/        0, /*End of Scope*/
/*152904*/      0, // EndSwitchType
/*152905*/    /*Scope*/ 101|128,1/*229*/, /*->153136*/
/*152907*/      OPC_RecordChild0, // #0 = $src1
/*152908*/      OPC_Scope, 112, /*->153022*/ // 2 children in Scope
/*152910*/        OPC_CheckChild0Type, MVT::f32,
/*152912*/        OPC_Scope, 67, /*->152981*/ // 2 children in Scope
/*152914*/          OPC_MoveChild1,
/*152915*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152918*/          OPC_RecordMemRef,
/*152919*/          OPC_RecordNode, // #1 = 'ld' chained node
/*152920*/          OPC_CheckFoldableChainNode,
/*152921*/          OPC_RecordChild1, // #2 = $src2
/*152922*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152924*/          OPC_CheckPredicate, 9, // Predicate_load
/*152926*/          OPC_MoveParent,
/*152927*/          OPC_RecordChild2, // #3 = $cc
/*152928*/          OPC_MoveChild2,
/*152929*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*152932*/          OPC_MoveParent,
/*152933*/          OPC_CheckType, MVT::f32,
/*152935*/          OPC_Scope, 21, /*->152958*/ // 2 children in Scope
/*152937*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*152939*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152942*/            OPC_EmitMergeInputChains1_1,
/*152943*/            OPC_EmitConvertToTarget, 3,
/*152945*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86cmps:{ *:[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)
/*152958*/          /*Scope*/ 21, /*->152980*/
/*152959*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*152961*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152964*/            OPC_EmitMergeInputChains1_1,
/*152965*/            OPC_EmitConvertToTarget, 3,
/*152967*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86cmps:{ *:[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)
/*152980*/          0, /*End of Scope*/
/*152981*/        /*Scope*/ 39, /*->153021*/
/*152982*/          OPC_RecordChild1, // #1 = $src2
/*152983*/          OPC_RecordChild2, // #2 = $cc
/*152984*/          OPC_MoveChild2,
/*152985*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*152988*/          OPC_MoveParent,
/*152989*/          OPC_CheckType, MVT::f32,
/*152991*/          OPC_Scope, 13, /*->153006*/ // 2 children in Scope
/*152993*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*152995*/            OPC_EmitConvertToTarget, 2,
/*152997*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSrr), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmps:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*153006*/          /*Scope*/ 13, /*->153020*/
/*153007*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*153009*/            OPC_EmitConvertToTarget, 2,
/*153011*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSSrr), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmps:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (CMPSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*153020*/          0, /*End of Scope*/
/*153021*/        0, /*End of Scope*/
/*153022*/      /*Scope*/ 112, /*->153135*/
/*153023*/        OPC_CheckChild0Type, MVT::f64,
/*153025*/        OPC_Scope, 67, /*->153094*/ // 2 children in Scope
/*153027*/          OPC_MoveChild1,
/*153028*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*153031*/          OPC_RecordMemRef,
/*153032*/          OPC_RecordNode, // #1 = 'ld' chained node
/*153033*/          OPC_CheckFoldableChainNode,
/*153034*/          OPC_RecordChild1, // #2 = $src2
/*153035*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*153037*/          OPC_CheckPredicate, 9, // Predicate_load
/*153039*/          OPC_MoveParent,
/*153040*/          OPC_RecordChild2, // #3 = $cc
/*153041*/          OPC_MoveChild2,
/*153042*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*153045*/          OPC_MoveParent,
/*153046*/          OPC_CheckType, MVT::f64,
/*153048*/          OPC_Scope, 21, /*->153071*/ // 2 children in Scope
/*153050*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*153052*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*153055*/            OPC_EmitMergeInputChains1_1,
/*153056*/            OPC_EmitConvertToTarget, 3,
/*153058*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86cmps:{ *:[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)
/*153071*/          /*Scope*/ 21, /*->153093*/
/*153072*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*153074*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*153077*/            OPC_EmitMergeInputChains1_1,
/*153078*/            OPC_EmitConvertToTarget, 3,
/*153080*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86cmps:{ *:[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)
/*153093*/          0, /*End of Scope*/
/*153094*/        /*Scope*/ 39, /*->153134*/
/*153095*/          OPC_RecordChild1, // #1 = $src2
/*153096*/          OPC_RecordChild2, // #2 = $cc
/*153097*/          OPC_MoveChild2,
/*153098*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*153101*/          OPC_MoveParent,
/*153102*/          OPC_CheckType, MVT::f64,
/*153104*/          OPC_Scope, 13, /*->153119*/ // 2 children in Scope
/*153106*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*153108*/            OPC_EmitConvertToTarget, 2,
/*153110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDrr), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmps:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*153119*/          /*Scope*/ 13, /*->153133*/
/*153120*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*153122*/            OPC_EmitConvertToTarget, 2,
/*153124*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSDrr), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmps:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (CMPSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*153133*/          0, /*End of Scope*/
/*153134*/        0, /*End of Scope*/
/*153135*/      0, /*End of Scope*/
/*153136*/    0, /*End of Scope*/
/*153137*/  /*SwitchOpcode*/ 67|128,15/*1987*/, TARGET_VAL(ISD::FADD),// ->155128
/*153141*/    OPC_Scope, 7|128,1/*135*/, /*->153279*/ // 11 children in Scope
/*153144*/      OPC_RecordChild0, // #0 = $src1
/*153145*/      OPC_MoveChild1,
/*153146*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*153149*/      OPC_RecordMemRef,
/*153150*/      OPC_RecordNode, // #1 = 'ld' chained node
/*153151*/      OPC_CheckFoldableChainNode,
/*153152*/      OPC_RecordChild1, // #2 = $src2
/*153153*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*153155*/      OPC_Scope, 47, /*->153204*/ // 2 children in Scope
/*153157*/        OPC_CheckPredicate, 9, // Predicate_load
/*153159*/        OPC_MoveParent,
/*153160*/        OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->153182
/*153163*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*153165*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153168*/          OPC_EmitMergeInputChains1_1,
/*153169*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153182*/        /*SwitchType*/ 19, MVT::f64,// ->153203
/*153184*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*153186*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153189*/          OPC_EmitMergeInputChains1_1,
/*153190*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153203*/        0, // EndSwitchType
/*153204*/      /*Scope*/ 73, /*->153278*/
/*153205*/        OPC_CheckPredicate, 64, // Predicate_extload
/*153207*/        OPC_Scope, 45, /*->153254*/ // 2 children in Scope
/*153209*/          OPC_CheckPredicate, 65, // Predicate_extloadf32
/*153211*/          OPC_MoveParent,
/*153212*/          OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->153234
/*153215*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*153217*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153220*/            OPC_EmitMergeInputChains1_1,
/*153221*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153234*/          /*SwitchType*/ 17, MVT::f80,// ->153253
/*153236*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153239*/            OPC_EmitMergeInputChains1_1,
/*153240*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153253*/          0, // EndSwitchType
/*153254*/        /*Scope*/ 22, /*->153277*/
/*153255*/          OPC_CheckPredicate, 66, // Predicate_extloadf64
/*153257*/          OPC_MoveParent,
/*153258*/          OPC_CheckType, MVT::f80,
/*153260*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153263*/          OPC_EmitMergeInputChains1_1,
/*153264*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153277*/        0, /*End of Scope*/
/*153278*/      0, /*End of Scope*/
/*153279*/    /*Scope*/ 9|128,1/*137*/, /*->153418*/
/*153281*/      OPC_MoveChild0,
/*153282*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*153285*/      OPC_RecordMemRef,
/*153286*/      OPC_RecordNode, // #0 = 'ld' chained node
/*153287*/      OPC_CheckFoldableChainNode,
/*153288*/      OPC_RecordChild1, // #1 = $src2
/*153289*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*153291*/      OPC_Scope, 48, /*->153341*/ // 2 children in Scope
/*153293*/        OPC_CheckPredicate, 9, // Predicate_load
/*153295*/        OPC_MoveParent,
/*153296*/        OPC_RecordChild1, // #2 = $src1
/*153297*/        OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->153319
/*153300*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*153302*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153305*/          OPC_EmitMergeInputChains1_0,
/*153306*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153319*/        /*SwitchType*/ 19, MVT::f64,// ->153340
/*153321*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*153323*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153326*/          OPC_EmitMergeInputChains1_0,
/*153327*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153340*/        0, // EndSwitchType
/*153341*/      /*Scope*/ 75, /*->153417*/
/*153342*/        OPC_CheckPredicate, 64, // Predicate_extload
/*153344*/        OPC_Scope, 46, /*->153392*/ // 2 children in Scope
/*153346*/          OPC_CheckPredicate, 65, // Predicate_extloadf32
/*153348*/          OPC_MoveParent,
/*153349*/          OPC_RecordChild1, // #2 = $src1
/*153350*/          OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->153372
/*153353*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*153355*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153358*/            OPC_EmitMergeInputChains1_0,
/*153359*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153372*/          /*SwitchType*/ 17, MVT::f80,// ->153391
/*153374*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153377*/            OPC_EmitMergeInputChains1_0,
/*153378*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153391*/          0, // EndSwitchType
/*153392*/        /*Scope*/ 23, /*->153416*/
/*153393*/          OPC_CheckPredicate, 66, // Predicate_extloadf64
/*153395*/          OPC_MoveParent,
/*153396*/          OPC_RecordChild1, // #2 = $src1
/*153397*/          OPC_CheckType, MVT::f80,
/*153399*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153402*/          OPC_EmitMergeInputChains1_0,
/*153403*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153416*/        0, /*End of Scope*/
/*153417*/      0, /*End of Scope*/
/*153418*/    /*Scope*/ 10|128,1/*138*/, /*->153558*/
/*153420*/      OPC_RecordChild0, // #0 = $src1
/*153421*/      OPC_MoveChild1,
/*153422*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*153425*/      OPC_RecordMemRef,
/*153426*/      OPC_RecordNode, // #1 = 'ld' chained node
/*153427*/      OPC_CheckFoldableChainNode,
/*153428*/      OPC_RecordChild1, // #2 = $src2
/*153429*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*153431*/      OPC_CheckPredicate, 9, // Predicate_load
/*153433*/      OPC_MoveParent,
/*153434*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->153496
/*153437*/        OPC_Scope, 18, /*->153457*/ // 3 children in Scope
/*153439*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*153441*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153444*/          OPC_EmitMergeInputChains1_1,
/*153445*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*153457*/        /*Scope*/ 18, /*->153476*/
/*153458*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*153460*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153463*/          OPC_EmitMergeInputChains1_1,
/*153464*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*153476*/        /*Scope*/ 18, /*->153495*/
/*153477*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153479*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153482*/          OPC_EmitMergeInputChains1_1,
/*153483*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[f32] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VADDSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153495*/        0, /*End of Scope*/
/*153496*/      /*SwitchType*/ 59, MVT::f64,// ->153557
/*153498*/        OPC_Scope, 18, /*->153518*/ // 3 children in Scope
/*153500*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*153502*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153505*/          OPC_EmitMergeInputChains1_1,
/*153506*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*153518*/        /*Scope*/ 18, /*->153537*/
/*153519*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*153521*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153524*/          OPC_EmitMergeInputChains1_1,
/*153525*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*153537*/        /*Scope*/ 18, /*->153556*/
/*153538*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153540*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153543*/          OPC_EmitMergeInputChains1_1,
/*153544*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[f64] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VADDSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153556*/        0, /*End of Scope*/
/*153557*/      0, // EndSwitchType
/*153558*/    /*Scope*/ 10|128,1/*138*/, /*->153698*/
/*153560*/      OPC_MoveChild0,
/*153561*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*153564*/      OPC_RecordMemRef,
/*153565*/      OPC_RecordNode, // #0 = 'ld' chained node
/*153566*/      OPC_CheckFoldableChainNode,
/*153567*/      OPC_RecordChild1, // #1 = $src2
/*153568*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*153570*/      OPC_CheckPredicate, 9, // Predicate_load
/*153572*/      OPC_MoveParent,
/*153573*/      OPC_RecordChild1, // #2 = $src1
/*153574*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->153636
/*153577*/        OPC_Scope, 18, /*->153597*/ // 3 children in Scope
/*153579*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*153581*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153584*/          OPC_EmitMergeInputChains1_0,
/*153585*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*153597*/        /*Scope*/ 18, /*->153616*/
/*153598*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*153600*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153603*/          OPC_EmitMergeInputChains1_0,
/*153604*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*153616*/        /*Scope*/ 18, /*->153635*/
/*153617*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153619*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153622*/          OPC_EmitMergeInputChains1_0,
/*153623*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (VADDSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153635*/        0, /*End of Scope*/
/*153636*/      /*SwitchType*/ 59, MVT::f64,// ->153697
/*153638*/        OPC_Scope, 18, /*->153658*/ // 3 children in Scope
/*153640*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*153642*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153645*/          OPC_EmitMergeInputChains1_0,
/*153646*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*153658*/        /*Scope*/ 18, /*->153677*/
/*153659*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*153661*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153664*/          OPC_EmitMergeInputChains1_0,
/*153665*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*153677*/        /*Scope*/ 18, /*->153696*/
/*153678*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153680*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153683*/          OPC_EmitMergeInputChains1_0,
/*153684*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (VADDSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153696*/        0, /*End of Scope*/
/*153697*/      0, // EndSwitchType
/*153698*/    /*Scope*/ 20|128,1/*148*/, /*->153848*/
/*153700*/      OPC_RecordChild0, // #0 = $src1
/*153701*/      OPC_MoveChild1,
/*153702*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*153705*/      OPC_RecordMemRef,
/*153706*/      OPC_RecordNode, // #1 = 'X86fild' chained node
/*153707*/      OPC_CheckFoldableChainNode,
/*153708*/      OPC_RecordChild1, // #2 = $src2
/*153709*/      OPC_MoveChild2,
/*153710*/      OPC_Scope, 67, /*->153779*/ // 2 children in Scope
/*153712*/        OPC_CheckValueType, MVT::i16,
/*153714*/        OPC_MoveParent,
/*153715*/        OPC_MoveParent,
/*153716*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->153738
/*153719*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*153721*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153724*/          OPC_EmitMergeInputChains1_1,
/*153725*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153738*/        /*SwitchType*/ 19, MVT::f64,// ->153759
/*153740*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*153742*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153745*/          OPC_EmitMergeInputChains1_1,
/*153746*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153759*/        /*SwitchType*/ 17, MVT::f80,// ->153778
/*153761*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153764*/          OPC_EmitMergeInputChains1_1,
/*153765*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153778*/        0, // EndSwitchType
/*153779*/      /*Scope*/ 67, /*->153847*/
/*153780*/        OPC_CheckValueType, MVT::i32,
/*153782*/        OPC_MoveParent,
/*153783*/        OPC_MoveParent,
/*153784*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->153806
/*153787*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*153789*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153792*/          OPC_EmitMergeInputChains1_1,
/*153793*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153806*/        /*SwitchType*/ 19, MVT::f64,// ->153827
/*153808*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*153810*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153813*/          OPC_EmitMergeInputChains1_1,
/*153814*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153827*/        /*SwitchType*/ 17, MVT::f80,// ->153846
/*153829*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153832*/          OPC_EmitMergeInputChains1_1,
/*153833*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153846*/        0, // EndSwitchType
/*153847*/      0, /*End of Scope*/
/*153848*/    /*Scope*/ 21|128,1/*149*/, /*->153999*/
/*153850*/      OPC_MoveChild0,
/*153851*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*153854*/      OPC_RecordMemRef,
/*153855*/      OPC_RecordNode, // #0 = 'X86fild' chained node
/*153856*/      OPC_CheckFoldableChainNode,
/*153857*/      OPC_RecordChild1, // #1 = $src2
/*153858*/      OPC_MoveChild2,
/*153859*/      OPC_Scope, 68, /*->153929*/ // 2 children in Scope
/*153861*/        OPC_CheckValueType, MVT::i16,
/*153863*/        OPC_MoveParent,
/*153864*/        OPC_MoveParent,
/*153865*/        OPC_RecordChild1, // #2 = $src1
/*153866*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->153888
/*153869*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*153871*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153874*/          OPC_EmitMergeInputChains1_0,
/*153875*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153888*/        /*SwitchType*/ 19, MVT::f64,// ->153909
/*153890*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*153892*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153895*/          OPC_EmitMergeInputChains1_0,
/*153896*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153909*/        /*SwitchType*/ 17, MVT::f80,// ->153928
/*153911*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153914*/          OPC_EmitMergeInputChains1_0,
/*153915*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153928*/        0, // EndSwitchType
/*153929*/      /*Scope*/ 68, /*->153998*/
/*153930*/        OPC_CheckValueType, MVT::i32,
/*153932*/        OPC_MoveParent,
/*153933*/        OPC_MoveParent,
/*153934*/        OPC_RecordChild1, // #2 = $src1
/*153935*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->153957
/*153938*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*153940*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153943*/          OPC_EmitMergeInputChains1_0,
/*153944*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153957*/        /*SwitchType*/ 19, MVT::f64,// ->153978
/*153959*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*153961*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153964*/          OPC_EmitMergeInputChains1_0,
/*153965*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153978*/        /*SwitchType*/ 17, MVT::f80,// ->153997
/*153980*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*153983*/          OPC_EmitMergeInputChains1_0,
/*153984*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*153997*/        0, // EndSwitchType
/*153998*/      0, /*End of Scope*/
/*153999*/    /*Scope*/ 12|128,2/*268*/, /*->154269*/
/*154001*/      OPC_RecordChild0, // #0 = $src1
/*154002*/      OPC_Scope, 112, /*->154116*/ // 2 children in Scope
/*154004*/        OPC_RecordChild1, // #1 = $src2
/*154005*/        OPC_SwitchType /*3 cases */, 47, MVT::f32,// ->154055
/*154008*/          OPC_Scope, 11, /*->154021*/ // 4 children in Scope
/*154010*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*154012*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp32), 0,
                          MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                      // Src: (fadd:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (ADD_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*154021*/          /*Scope*/ 10, /*->154032*/
/*154022*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*154024*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrr), 0,
                          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)
/*154032*/          /*Scope*/ 10, /*->154043*/
/*154033*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*154035*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrr), 0,
                          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)
/*154043*/          /*Scope*/ 10, /*->154054*/
/*154044*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154046*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr), 0,
                          MVT::f32, 2/*#Ops*/, 0, 1, 
                      // Src: (fadd:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VADDSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*154054*/          0, /*End of Scope*/
/*154055*/        /*SwitchType*/ 47, MVT::f64,// ->154104
/*154057*/          OPC_Scope, 11, /*->154070*/ // 4 children in Scope
/*154059*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*154061*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp64), 0,
                          MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                      // Src: (fadd:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (ADD_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*154070*/          /*Scope*/ 10, /*->154081*/
/*154071*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*154073*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrr), 0,
                          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)
/*154081*/          /*Scope*/ 10, /*->154092*/
/*154082*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*154084*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrr), 0,
                          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)
/*154092*/          /*Scope*/ 10, /*->154103*/
/*154093*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154095*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1, 
                      // Src: (fadd:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VADDSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*154103*/          0, /*End of Scope*/
/*154104*/        /*SwitchType*/ 9, MVT::f80,// ->154115
/*154106*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp80), 0,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (fadd:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2) - Complexity = 3
                    // Dst: (ADD_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*154115*/        0, // EndSwitchType
/*154116*/      /*Scope*/ 22|128,1/*150*/, /*->154268*/
/*154118*/        OPC_MoveChild1,
/*154119*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*154122*/        OPC_MoveChild0,
/*154123*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154126*/        OPC_RecordMemRef,
/*154127*/        OPC_RecordNode, // #1 = 'ld' chained node
/*154128*/        OPC_CheckFoldableChainNode,
/*154129*/        OPC_RecordChild1, // #2 = $src2
/*154130*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154132*/        OPC_CheckPredicate, 9, // Predicate_load
/*154134*/        OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->154201
/*154137*/          OPC_MoveParent,
/*154138*/          OPC_MoveParent,
/*154139*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->154160
/*154142*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154144*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154147*/            OPC_EmitMergeInputChains1_1,
/*154148*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VADDPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154160*/          /*SwitchType*/ 18, MVT::v4f32,// ->154180
/*154162*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154164*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154167*/            OPC_EmitMergeInputChains1_1,
/*154168*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VADDPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154180*/          /*SwitchType*/ 18, MVT::v8f32,// ->154200
/*154182*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154184*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154187*/            OPC_EmitMergeInputChains1_1,
/*154188*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VADDPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154200*/          0, // EndSwitchType
/*154201*/        /*SwitchType*/ 64, MVT::f64,// ->154267
/*154203*/          OPC_MoveParent,
/*154204*/          OPC_MoveParent,
/*154205*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->154226
/*154208*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154210*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154213*/            OPC_EmitMergeInputChains1_1,
/*154214*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VADDPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154226*/          /*SwitchType*/ 18, MVT::v2f64,// ->154246
/*154228*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154230*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154233*/            OPC_EmitMergeInputChains1_1,
/*154234*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VADDPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154246*/          /*SwitchType*/ 18, MVT::v4f64,// ->154266
/*154248*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154250*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154253*/            OPC_EmitMergeInputChains1_1,
/*154254*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VADDPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154266*/          0, // EndSwitchType
/*154267*/        0, // EndSwitchType
/*154268*/      0, /*End of Scope*/
/*154269*/    /*Scope*/ 24|128,1/*152*/, /*->154423*/
/*154271*/      OPC_MoveChild0,
/*154272*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*154275*/      OPC_MoveChild0,
/*154276*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154279*/      OPC_RecordMemRef,
/*154280*/      OPC_RecordNode, // #0 = 'ld' chained node
/*154281*/      OPC_CheckFoldableChainNode,
/*154282*/      OPC_RecordChild1, // #1 = $src2
/*154283*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154285*/      OPC_CheckPredicate, 9, // Predicate_load
/*154287*/      OPC_SwitchType /*2 cases */, 65, MVT::f32,// ->154355
/*154290*/        OPC_MoveParent,
/*154291*/        OPC_MoveParent,
/*154292*/        OPC_RecordChild1, // #2 = $src1
/*154293*/        OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->154314
/*154296*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154298*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154301*/          OPC_EmitMergeInputChains1_0,
/*154302*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                    // Dst: (VADDPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154314*/        /*SwitchType*/ 18, MVT::v4f32,// ->154334
/*154316*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154318*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154321*/          OPC_EmitMergeInputChains1_0,
/*154322*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                    // Dst: (VADDPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154334*/        /*SwitchType*/ 18, MVT::v8f32,// ->154354
/*154336*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154338*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154341*/          OPC_EmitMergeInputChains1_0,
/*154342*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                    // Dst: (VADDPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154354*/        0, // EndSwitchType
/*154355*/      /*SwitchType*/ 65, MVT::f64,// ->154422
/*154357*/        OPC_MoveParent,
/*154358*/        OPC_MoveParent,
/*154359*/        OPC_RecordChild1, // #2 = $src1
/*154360*/        OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->154381
/*154363*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154365*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154368*/          OPC_EmitMergeInputChains1_0,
/*154369*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                    // Dst: (VADDPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154381*/        /*SwitchType*/ 18, MVT::v2f64,// ->154401
/*154383*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154385*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154388*/          OPC_EmitMergeInputChains1_0,
/*154389*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                    // Dst: (VADDPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154401*/        /*SwitchType*/ 18, MVT::v4f64,// ->154421
/*154403*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154405*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154408*/          OPC_EmitMergeInputChains1_0,
/*154409*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                    // Dst: (VADDPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154421*/        0, // EndSwitchType
/*154422*/      0, // EndSwitchType
/*154423*/    /*Scope*/ 15|128,2/*271*/, /*->154696*/
/*154425*/      OPC_RecordChild0, // #0 = $src1
/*154426*/      OPC_MoveChild1,
/*154427*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154430*/      OPC_RecordMemRef,
/*154431*/      OPC_RecordNode, // #1 = 'ld' chained node
/*154432*/      OPC_CheckFoldableChainNode,
/*154433*/      OPC_RecordChild1, // #2 = $src2
/*154434*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154436*/      OPC_CheckPredicate, 9, // Predicate_load
/*154438*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*154440*/      OPC_Scope, 83, /*->154525*/ // 3 children in Scope
/*154442*/        OPC_MoveParent,
/*154443*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->154464
/*154446*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*154448*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154451*/          OPC_EmitMergeInputChains1_1,
/*154452*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154464*/        /*SwitchType*/ 18, MVT::v2f64,// ->154484
/*154466*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*154468*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154471*/          OPC_EmitMergeInputChains1_1,
/*154472*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154484*/        /*SwitchType*/ 18, MVT::v8f32,// ->154504
/*154486*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*154488*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154491*/          OPC_EmitMergeInputChains1_1,
/*154492*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VADDPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154504*/        /*SwitchType*/ 18, MVT::v4f64,// ->154524
/*154506*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*154508*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154511*/          OPC_EmitMergeInputChains1_1,
/*154512*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VADDPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154524*/        0, // EndSwitchType
/*154525*/      /*Scope*/ 45, /*->154571*/
/*154526*/        OPC_CheckPredicate, 48, // Predicate_memop
/*154528*/        OPC_MoveParent,
/*154529*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->154550
/*154532*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*154534*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154537*/          OPC_EmitMergeInputChains1_1,
/*154538*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (ADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154550*/        /*SwitchType*/ 18, MVT::v2f64,// ->154570
/*154552*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*154554*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154557*/          OPC_EmitMergeInputChains1_1,
/*154558*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (ADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154570*/        0, // EndSwitchType
/*154571*/      /*Scope*/ 123, /*->154695*/
/*154572*/        OPC_MoveParent,
/*154573*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->154594
/*154576*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154578*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154581*/          OPC_EmitMergeInputChains1_1,
/*154582*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VADDPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154594*/        /*SwitchType*/ 18, MVT::v8f64,// ->154614
/*154596*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154598*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154601*/          OPC_EmitMergeInputChains1_1,
/*154602*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VADDPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154614*/        /*SwitchType*/ 18, MVT::v4f32,// ->154634
/*154616*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154618*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154621*/          OPC_EmitMergeInputChains1_1,
/*154622*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VADDPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154634*/        /*SwitchType*/ 18, MVT::v8f32,// ->154654
/*154636*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154638*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154641*/          OPC_EmitMergeInputChains1_1,
/*154642*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VADDPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154654*/        /*SwitchType*/ 18, MVT::v2f64,// ->154674
/*154656*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154658*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154661*/          OPC_EmitMergeInputChains1_1,
/*154662*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VADDPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154674*/        /*SwitchType*/ 18, MVT::v4f64,// ->154694
/*154676*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154678*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154681*/          OPC_EmitMergeInputChains1_1,
/*154682*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VADDPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154694*/        0, // EndSwitchType
/*154695*/      0, /*End of Scope*/
/*154696*/    /*Scope*/ 17|128,2/*273*/, /*->154971*/
/*154698*/      OPC_MoveChild0,
/*154699*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154702*/      OPC_RecordMemRef,
/*154703*/      OPC_RecordNode, // #0 = 'ld' chained node
/*154704*/      OPC_CheckFoldableChainNode,
/*154705*/      OPC_RecordChild1, // #1 = $src2
/*154706*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154708*/      OPC_CheckPredicate, 9, // Predicate_load
/*154710*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*154712*/      OPC_Scope, 84, /*->154798*/ // 3 children in Scope
/*154714*/        OPC_MoveParent,
/*154715*/        OPC_RecordChild1, // #2 = $src1
/*154716*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->154737
/*154719*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*154721*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154724*/          OPC_EmitMergeInputChains1_0,
/*154725*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154737*/        /*SwitchType*/ 18, MVT::v2f64,// ->154757
/*154739*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*154741*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154744*/          OPC_EmitMergeInputChains1_0,
/*154745*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154757*/        /*SwitchType*/ 18, MVT::v8f32,// ->154777
/*154759*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*154761*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154764*/          OPC_EmitMergeInputChains1_0,
/*154765*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VADDPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154777*/        /*SwitchType*/ 18, MVT::v4f64,// ->154797
/*154779*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*154781*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154784*/          OPC_EmitMergeInputChains1_0,
/*154785*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VADDPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154797*/        0, // EndSwitchType
/*154798*/      /*Scope*/ 46, /*->154845*/
/*154799*/        OPC_CheckPredicate, 48, // Predicate_memop
/*154801*/        OPC_MoveParent,
/*154802*/        OPC_RecordChild1, // #2 = $src1
/*154803*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->154824
/*154806*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*154808*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154811*/          OPC_EmitMergeInputChains1_0,
/*154812*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (ADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154824*/        /*SwitchType*/ 18, MVT::v2f64,// ->154844
/*154826*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*154828*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154831*/          OPC_EmitMergeInputChains1_0,
/*154832*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (ADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154844*/        0, // EndSwitchType
/*154845*/      /*Scope*/ 124, /*->154970*/
/*154846*/        OPC_MoveParent,
/*154847*/        OPC_RecordChild1, // #2 = $src1
/*154848*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->154869
/*154851*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154853*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154856*/          OPC_EmitMergeInputChains1_0,
/*154857*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VADDPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154869*/        /*SwitchType*/ 18, MVT::v8f64,// ->154889
/*154871*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154873*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154876*/          OPC_EmitMergeInputChains1_0,
/*154877*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VADDPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154889*/        /*SwitchType*/ 18, MVT::v4f32,// ->154909
/*154891*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154893*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154896*/          OPC_EmitMergeInputChains1_0,
/*154897*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VADDPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154909*/        /*SwitchType*/ 18, MVT::v8f32,// ->154929
/*154911*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154913*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154916*/          OPC_EmitMergeInputChains1_0,
/*154917*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VADDPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154929*/        /*SwitchType*/ 18, MVT::v2f64,// ->154949
/*154931*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154933*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154936*/          OPC_EmitMergeInputChains1_0,
/*154937*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VADDPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154949*/        /*SwitchType*/ 18, MVT::v4f64,// ->154969
/*154951*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154953*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*154956*/          OPC_EmitMergeInputChains1_0,
/*154957*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VADDPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*154969*/        0, // EndSwitchType
/*154970*/      0, /*End of Scope*/
/*154971*/    /*Scope*/ 26|128,1/*154*/, /*->155127*/
/*154973*/      OPC_RecordChild0, // #0 = $src1
/*154974*/      OPC_RecordChild1, // #1 = $src2
/*154975*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->155013
/*154978*/        OPC_Scope, 10, /*->154990*/ // 3 children in Scope
/*154980*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*154982*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSrr), 0,
                        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)
/*154990*/        /*Scope*/ 10, /*->155001*/
/*154991*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*154993*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPSrr), 0,
                        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)
/*155001*/        /*Scope*/ 10, /*->155012*/
/*155002*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155004*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VADDPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*155012*/        0, /*End of Scope*/
/*155013*/      /*SwitchType*/ 35, MVT::v2f64,// ->155050
/*155015*/        OPC_Scope, 10, /*->155027*/ // 3 children in Scope
/*155017*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*155019*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDrr), 0,
                        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)
/*155027*/        /*Scope*/ 10, /*->155038*/
/*155028*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*155030*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPDrr), 0,
                        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)
/*155038*/        /*Scope*/ 10, /*->155049*/
/*155039*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155041*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VADDPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*155049*/        0, /*End of Scope*/
/*155050*/      /*SwitchType*/ 24, MVT::v8f32,// ->155076
/*155052*/        OPC_Scope, 10, /*->155064*/ // 2 children in Scope
/*155054*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*155056*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSYrr), 0,
                        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)
/*155064*/        /*Scope*/ 10, /*->155075*/
/*155065*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155067*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VADDPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*155075*/        0, /*End of Scope*/
/*155076*/      /*SwitchType*/ 24, MVT::v4f64,// ->155102
/*155078*/        OPC_Scope, 10, /*->155090*/ // 2 children in Scope
/*155080*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*155082*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDYrr), 0,
                        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)
/*155090*/        /*Scope*/ 10, /*->155101*/
/*155091*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155093*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VADDPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*155101*/        0, /*End of Scope*/
/*155102*/      /*SwitchType*/ 10, MVT::v16f32,// ->155114
/*155104*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155106*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrr), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VADDPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*155114*/      /*SwitchType*/ 10, MVT::v8f64,// ->155126
/*155116*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155118*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrr), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VADDPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*155126*/      0, // EndSwitchType
/*155127*/    0, /*End of Scope*/
/*155128*/  /*SwitchOpcode*/ 9|128,11/*1417*/, TARGET_VAL(ISD::FSUB),// ->156549
/*155132*/    OPC_Scope, 7|128,1/*135*/, /*->155270*/ // 5 children in Scope
/*155135*/      OPC_RecordChild0, // #0 = $src1
/*155136*/      OPC_MoveChild1,
/*155137*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155140*/      OPC_RecordMemRef,
/*155141*/      OPC_RecordNode, // #1 = 'ld' chained node
/*155142*/      OPC_CheckFoldableChainNode,
/*155143*/      OPC_RecordChild1, // #2 = $src2
/*155144*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155146*/      OPC_Scope, 47, /*->155195*/ // 2 children in Scope
/*155148*/        OPC_CheckPredicate, 9, // Predicate_load
/*155150*/        OPC_MoveParent,
/*155151*/        OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->155173
/*155154*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*155156*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155159*/          OPC_EmitMergeInputChains1_1,
/*155160*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155173*/        /*SwitchType*/ 19, MVT::f64,// ->155194
/*155175*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*155177*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155180*/          OPC_EmitMergeInputChains1_1,
/*155181*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155194*/        0, // EndSwitchType
/*155195*/      /*Scope*/ 73, /*->155269*/
/*155196*/        OPC_CheckPredicate, 64, // Predicate_extload
/*155198*/        OPC_Scope, 45, /*->155245*/ // 2 children in Scope
/*155200*/          OPC_CheckPredicate, 65, // Predicate_extloadf32
/*155202*/          OPC_MoveParent,
/*155203*/          OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->155225
/*155206*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*155208*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155211*/            OPC_EmitMergeInputChains1_1,
/*155212*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155225*/          /*SwitchType*/ 17, MVT::f80,// ->155244
/*155227*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155230*/            OPC_EmitMergeInputChains1_1,
/*155231*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155244*/          0, // EndSwitchType
/*155245*/        /*Scope*/ 22, /*->155268*/
/*155246*/          OPC_CheckPredicate, 66, // Predicate_extloadf64
/*155248*/          OPC_MoveParent,
/*155249*/          OPC_CheckType, MVT::f80,
/*155251*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155254*/          OPC_EmitMergeInputChains1_1,
/*155255*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155268*/        0, /*End of Scope*/
/*155269*/      0, /*End of Scope*/
/*155270*/    /*Scope*/ 9|128,1/*137*/, /*->155409*/
/*155272*/      OPC_MoveChild0,
/*155273*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155276*/      OPC_RecordMemRef,
/*155277*/      OPC_RecordNode, // #0 = 'ld' chained node
/*155278*/      OPC_CheckFoldableChainNode,
/*155279*/      OPC_RecordChild1, // #1 = $src2
/*155280*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155282*/      OPC_Scope, 48, /*->155332*/ // 2 children in Scope
/*155284*/        OPC_CheckPredicate, 9, // Predicate_load
/*155286*/        OPC_MoveParent,
/*155287*/        OPC_RecordChild1, // #2 = $src1
/*155288*/        OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->155310
/*155291*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*155293*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155296*/          OPC_EmitMergeInputChains1_0,
/*155297*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (SUBR_Fp32m:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155310*/        /*SwitchType*/ 19, MVT::f64,// ->155331
/*155312*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*155314*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155317*/          OPC_EmitMergeInputChains1_0,
/*155318*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (SUBR_Fp64m:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155331*/        0, // EndSwitchType
/*155332*/      /*Scope*/ 75, /*->155408*/
/*155333*/        OPC_CheckPredicate, 64, // Predicate_extload
/*155335*/        OPC_Scope, 46, /*->155383*/ // 2 children in Scope
/*155337*/          OPC_CheckPredicate, 65, // Predicate_extloadf32
/*155339*/          OPC_MoveParent,
/*155340*/          OPC_RecordChild1, // #2 = $src1
/*155341*/          OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->155363
/*155344*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*155346*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155349*/            OPC_EmitMergeInputChains1_0,
/*155350*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                      // Dst: (SUBR_Fp64m32:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155363*/          /*SwitchType*/ 17, MVT::f80,// ->155382
/*155365*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155368*/            OPC_EmitMergeInputChains1_0,
/*155369*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fsub:{ *:[f80] } (ld:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                      // Dst: (SUBR_Fp80m32:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155382*/          0, // EndSwitchType
/*155383*/        /*Scope*/ 23, /*->155407*/
/*155384*/          OPC_CheckPredicate, 66, // Predicate_extloadf64
/*155386*/          OPC_MoveParent,
/*155387*/          OPC_RecordChild1, // #2 = $src1
/*155388*/          OPC_CheckType, MVT::f80,
/*155390*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155393*/          OPC_EmitMergeInputChains1_0,
/*155394*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fsub:{ *:[f80] } (ld:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf64>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (SUBR_Fp80m64:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155407*/        0, /*End of Scope*/
/*155408*/      0, /*End of Scope*/
/*155409*/    /*Scope*/ 32|128,2/*288*/, /*->155699*/
/*155411*/      OPC_RecordChild0, // #0 = $src1
/*155412*/      OPC_MoveChild1,
/*155413*/      OPC_SwitchOpcode /*2 cases */, 5|128,1/*133*/, TARGET_VAL(ISD::LOAD),// ->155551
/*155418*/        OPC_RecordMemRef,
/*155419*/        OPC_RecordNode, // #1 = 'ld' chained node
/*155420*/        OPC_CheckFoldableChainNode,
/*155421*/        OPC_RecordChild1, // #2 = $src2
/*155422*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155424*/        OPC_CheckPredicate, 9, // Predicate_load
/*155426*/        OPC_MoveParent,
/*155427*/        OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->155489
/*155430*/          OPC_Scope, 18, /*->155450*/ // 3 children in Scope
/*155432*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*155434*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155437*/            OPC_EmitMergeInputChains1_1,
/*155438*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*155450*/          /*Scope*/ 18, /*->155469*/
/*155451*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*155453*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155456*/            OPC_EmitMergeInputChains1_1,
/*155457*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*155469*/          /*Scope*/ 18, /*->155488*/
/*155470*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155472*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155475*/            OPC_EmitMergeInputChains1_1,
/*155476*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:{ *:[f32] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSUBSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155488*/          0, /*End of Scope*/
/*155489*/        /*SwitchType*/ 59, MVT::f64,// ->155550
/*155491*/          OPC_Scope, 18, /*->155511*/ // 3 children in Scope
/*155493*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*155495*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155498*/            OPC_EmitMergeInputChains1_1,
/*155499*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*155511*/          /*Scope*/ 18, /*->155530*/
/*155512*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*155514*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155517*/            OPC_EmitMergeInputChains1_1,
/*155518*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*155530*/          /*Scope*/ 18, /*->155549*/
/*155531*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155533*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155536*/            OPC_EmitMergeInputChains1_1,
/*155537*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:{ *:[f64] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSUBSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155549*/          0, /*End of Scope*/
/*155550*/        0, // EndSwitchType
/*155551*/      /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(X86ISD::FILD),// ->155698
/*155555*/        OPC_RecordMemRef,
/*155556*/        OPC_RecordNode, // #1 = 'X86fild' chained node
/*155557*/        OPC_CheckFoldableChainNode,
/*155558*/        OPC_RecordChild1, // #2 = $src2
/*155559*/        OPC_MoveChild2,
/*155560*/        OPC_Scope, 67, /*->155629*/ // 2 children in Scope
/*155562*/          OPC_CheckValueType, MVT::i16,
/*155564*/          OPC_MoveParent,
/*155565*/          OPC_MoveParent,
/*155566*/          OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->155588
/*155569*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*155571*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155574*/            OPC_EmitMergeInputChains1_1,
/*155575*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155588*/          /*SwitchType*/ 19, MVT::f64,// ->155609
/*155590*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*155592*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155595*/            OPC_EmitMergeInputChains1_1,
/*155596*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155609*/          /*SwitchType*/ 17, MVT::f80,// ->155628
/*155611*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155614*/            OPC_EmitMergeInputChains1_1,
/*155615*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155628*/          0, // EndSwitchType
/*155629*/        /*Scope*/ 67, /*->155697*/
/*155630*/          OPC_CheckValueType, MVT::i32,
/*155632*/          OPC_MoveParent,
/*155633*/          OPC_MoveParent,
/*155634*/          OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->155656
/*155637*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*155639*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155642*/            OPC_EmitMergeInputChains1_1,
/*155643*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155656*/          /*SwitchType*/ 19, MVT::f64,// ->155677
/*155658*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*155660*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155663*/            OPC_EmitMergeInputChains1_1,
/*155664*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155677*/          /*SwitchType*/ 17, MVT::f80,// ->155696
/*155679*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155682*/            OPC_EmitMergeInputChains1_1,
/*155683*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155696*/          0, // EndSwitchType
/*155697*/        0, /*End of Scope*/
/*155698*/      0, // EndSwitchOpcode
/*155699*/    /*Scope*/ 21|128,1/*149*/, /*->155850*/
/*155701*/      OPC_MoveChild0,
/*155702*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*155705*/      OPC_RecordMemRef,
/*155706*/      OPC_RecordNode, // #0 = 'X86fild' chained node
/*155707*/      OPC_CheckFoldableChainNode,
/*155708*/      OPC_RecordChild1, // #1 = $src2
/*155709*/      OPC_MoveChild2,
/*155710*/      OPC_Scope, 68, /*->155780*/ // 2 children in Scope
/*155712*/        OPC_CheckValueType, MVT::i16,
/*155714*/        OPC_MoveParent,
/*155715*/        OPC_MoveParent,
/*155716*/        OPC_RecordChild1, // #2 = $src1
/*155717*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->155739
/*155720*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*155722*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155725*/          OPC_EmitMergeInputChains1_0,
/*155726*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fsub:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2, i16:{ *:[Other] }), RFP32:{ *:[f32] }:$src1) - Complexity = 24
                    // Dst: (SUBR_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155739*/        /*SwitchType*/ 19, MVT::f64,// ->155760
/*155741*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*155743*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155746*/          OPC_EmitMergeInputChains1_0,
/*155747*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fsub:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2, i16:{ *:[Other] }), RFP64:{ *:[f64] }:$src1) - Complexity = 24
                    // Dst: (SUBR_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155760*/        /*SwitchType*/ 17, MVT::f80,// ->155779
/*155762*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155765*/          OPC_EmitMergeInputChains1_0,
/*155766*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fsub:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2, i16:{ *:[Other] }), RFP80:{ *:[f80] }:$src1) - Complexity = 24
                    // Dst: (SUBR_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155779*/        0, // EndSwitchType
/*155780*/      /*Scope*/ 68, /*->155849*/
/*155781*/        OPC_CheckValueType, MVT::i32,
/*155783*/        OPC_MoveParent,
/*155784*/        OPC_MoveParent,
/*155785*/        OPC_RecordChild1, // #2 = $src1
/*155786*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->155808
/*155789*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*155791*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155794*/          OPC_EmitMergeInputChains1_0,
/*155795*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fsub:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2, i32:{ *:[Other] }), RFP32:{ *:[f32] }:$src1) - Complexity = 24
                    // Dst: (SUBR_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155808*/        /*SwitchType*/ 19, MVT::f64,// ->155829
/*155810*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*155812*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155815*/          OPC_EmitMergeInputChains1_0,
/*155816*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fsub:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2, i32:{ *:[Other] }), RFP64:{ *:[f64] }:$src1) - Complexity = 24
                    // Dst: (SUBR_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155829*/        /*SwitchType*/ 17, MVT::f80,// ->155848
/*155831*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*155834*/          OPC_EmitMergeInputChains1_0,
/*155835*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fsub:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2, i32:{ *:[Other] }), RFP80:{ *:[f80] }:$src1) - Complexity = 24
                    // Dst: (SUBR_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*155848*/        0, // EndSwitchType
/*155849*/      0, /*End of Scope*/
/*155850*/    /*Scope*/ 56|128,5/*696*/, /*->156548*/
/*155852*/      OPC_RecordChild0, // #0 = $src1
/*155853*/      OPC_Scope, 112, /*->155967*/ // 3 children in Scope
/*155855*/        OPC_RecordChild1, // #1 = $src2
/*155856*/        OPC_SwitchType /*3 cases */, 47, MVT::f32,// ->155906
/*155859*/          OPC_Scope, 11, /*->155872*/ // 4 children in Scope
/*155861*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*155863*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp32), 0,
                          MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                      // Src: (fsub:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (SUB_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*155872*/          /*Scope*/ 10, /*->155883*/
/*155873*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*155875*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSrr), 0,
                          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)
/*155883*/          /*Scope*/ 10, /*->155894*/
/*155884*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*155886*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSSrr), 0,
                          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)
/*155894*/          /*Scope*/ 10, /*->155905*/
/*155895*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155897*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrr), 0,
                          MVT::f32, 2/*#Ops*/, 0, 1, 
                      // Src: (fsub:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VSUBSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*155905*/          0, /*End of Scope*/
/*155906*/        /*SwitchType*/ 47, MVT::f64,// ->155955
/*155908*/          OPC_Scope, 11, /*->155921*/ // 4 children in Scope
/*155910*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*155912*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp64), 0,
                          MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                      // Src: (fsub:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (SUB_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*155921*/          /*Scope*/ 10, /*->155932*/
/*155922*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*155924*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDrr), 0,
                          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)
/*155932*/          /*Scope*/ 10, /*->155943*/
/*155933*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*155935*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSDrr), 0,
                          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)
/*155943*/          /*Scope*/ 10, /*->155954*/
/*155944*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155946*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrr), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1, 
                      // Src: (fsub:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VSUBSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*155954*/          0, /*End of Scope*/
/*155955*/        /*SwitchType*/ 9, MVT::f80,// ->155966
/*155957*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp80), 0,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (fsub:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2) - Complexity = 3
                    // Dst: (SUB_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*155966*/        0, // EndSwitchType
/*155967*/      /*Scope*/ 39|128,3/*423*/, /*->156392*/
/*155969*/        OPC_MoveChild1,
/*155970*/        OPC_SwitchOpcode /*2 cases */, 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST),// ->156121
/*155975*/          OPC_MoveChild0,
/*155976*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155979*/          OPC_RecordMemRef,
/*155980*/          OPC_RecordNode, // #1 = 'ld' chained node
/*155981*/          OPC_CheckFoldableChainNode,
/*155982*/          OPC_RecordChild1, // #2 = $src2
/*155983*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155985*/          OPC_CheckPredicate, 9, // Predicate_load
/*155987*/          OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->156054
/*155990*/            OPC_MoveParent,
/*155991*/            OPC_MoveParent,
/*155992*/            OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->156013
/*155995*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155997*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156000*/              OPC_EmitMergeInputChains1_1,
/*156001*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VSUBPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156013*/            /*SwitchType*/ 18, MVT::v4f32,// ->156033
/*156015*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156017*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156020*/              OPC_EmitMergeInputChains1_1,
/*156021*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VSUBPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156033*/            /*SwitchType*/ 18, MVT::v8f32,// ->156053
/*156035*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156037*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156040*/              OPC_EmitMergeInputChains1_1,
/*156041*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VSUBPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156053*/            0, // EndSwitchType
/*156054*/          /*SwitchType*/ 64, MVT::f64,// ->156120
/*156056*/            OPC_MoveParent,
/*156057*/            OPC_MoveParent,
/*156058*/            OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->156079
/*156061*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156063*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156066*/              OPC_EmitMergeInputChains1_1,
/*156067*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VSUBPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156079*/            /*SwitchType*/ 18, MVT::v2f64,// ->156099
/*156081*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156083*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156086*/              OPC_EmitMergeInputChains1_1,
/*156087*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VSUBPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156099*/            /*SwitchType*/ 18, MVT::v4f64,// ->156119
/*156101*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156103*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156106*/              OPC_EmitMergeInputChains1_1,
/*156107*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VSUBPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156119*/            0, // EndSwitchType
/*156120*/          0, // EndSwitchType
/*156121*/        /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::LOAD),// ->156391
/*156125*/          OPC_RecordMemRef,
/*156126*/          OPC_RecordNode, // #1 = 'ld' chained node
/*156127*/          OPC_CheckFoldableChainNode,
/*156128*/          OPC_RecordChild1, // #2 = $src2
/*156129*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*156131*/          OPC_CheckPredicate, 9, // Predicate_load
/*156133*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*156135*/          OPC_Scope, 83, /*->156220*/ // 3 children in Scope
/*156137*/            OPC_MoveParent,
/*156138*/            OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->156159
/*156141*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*156143*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156146*/              OPC_EmitMergeInputChains1_1,
/*156147*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>) - Complexity = 25
                        // Dst: (VSUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156159*/            /*SwitchType*/ 18, MVT::v2f64,// ->156179
/*156161*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*156163*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156166*/              OPC_EmitMergeInputChains1_1,
/*156167*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>) - Complexity = 25
                        // Dst: (VSUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156179*/            /*SwitchType*/ 18, MVT::v8f32,// ->156199
/*156181*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*156183*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156186*/              OPC_EmitMergeInputChains1_1,
/*156187*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>) - Complexity = 25
                        // Dst: (VSUBPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156199*/            /*SwitchType*/ 18, MVT::v4f64,// ->156219
/*156201*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*156203*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156206*/              OPC_EmitMergeInputChains1_1,
/*156207*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>) - Complexity = 25
                        // Dst: (VSUBPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156219*/            0, // EndSwitchType
/*156220*/          /*Scope*/ 45, /*->156266*/
/*156221*/            OPC_CheckPredicate, 48, // Predicate_memop
/*156223*/            OPC_MoveParent,
/*156224*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->156245
/*156227*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*156229*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156232*/              OPC_EmitMergeInputChains1_1,
/*156233*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (SUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156245*/            /*SwitchType*/ 18, MVT::v2f64,// ->156265
/*156247*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*156249*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156252*/              OPC_EmitMergeInputChains1_1,
/*156253*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (SUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156265*/            0, // EndSwitchType
/*156266*/          /*Scope*/ 123, /*->156390*/
/*156267*/            OPC_MoveParent,
/*156268*/            OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->156289
/*156271*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156273*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156276*/              OPC_EmitMergeInputChains1_1,
/*156277*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VSUBPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156289*/            /*SwitchType*/ 18, MVT::v8f64,// ->156309
/*156291*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156293*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156296*/              OPC_EmitMergeInputChains1_1,
/*156297*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VSUBPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156309*/            /*SwitchType*/ 18, MVT::v4f32,// ->156329
/*156311*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156313*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156316*/              OPC_EmitMergeInputChains1_1,
/*156317*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VSUBPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156329*/            /*SwitchType*/ 18, MVT::v8f32,// ->156349
/*156331*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156333*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156336*/              OPC_EmitMergeInputChains1_1,
/*156337*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VSUBPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156349*/            /*SwitchType*/ 18, MVT::v2f64,// ->156369
/*156351*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156353*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156356*/              OPC_EmitMergeInputChains1_1,
/*156357*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VSUBPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156369*/            /*SwitchType*/ 18, MVT::v4f64,// ->156389
/*156371*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156373*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156376*/              OPC_EmitMergeInputChains1_1,
/*156377*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VSUBPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156389*/            0, // EndSwitchType
/*156390*/          0, /*End of Scope*/
/*156391*/        0, // EndSwitchOpcode
/*156392*/      /*Scope*/ 25|128,1/*153*/, /*->156547*/
/*156394*/        OPC_RecordChild1, // #1 = $src2
/*156395*/        OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->156433
/*156398*/          OPC_Scope, 10, /*->156410*/ // 3 children in Scope
/*156400*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*156402*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSrr), 0,
                          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)
/*156410*/          /*Scope*/ 10, /*->156421*/
/*156411*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*156413*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBPSrr), 0,
                          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)
/*156421*/          /*Scope*/ 10, /*->156432*/
/*156422*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156424*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rr), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                      // Dst: (VSUBPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*156432*/          0, /*End of Scope*/
/*156433*/        /*SwitchType*/ 35, MVT::v2f64,// ->156470
/*156435*/          OPC_Scope, 10, /*->156447*/ // 3 children in Scope
/*156437*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*156439*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDrr), 0,
                          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)
/*156447*/          /*Scope*/ 10, /*->156458*/
/*156448*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*156450*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBPDrr), 0,
                          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)
/*156458*/          /*Scope*/ 10, /*->156469*/
/*156459*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156461*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rr), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                      // Dst: (VSUBPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*156469*/          0, /*End of Scope*/
/*156470*/        /*SwitchType*/ 24, MVT::v8f32,// ->156496
/*156472*/          OPC_Scope, 10, /*->156484*/ // 2 children in Scope
/*156474*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*156476*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSYrr), 0,
                          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)
/*156484*/          /*Scope*/ 10, /*->156495*/
/*156485*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156487*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rr), 0,
                          MVT::v8f32, 2/*#Ops*/, 0, 1, 
                      // Src: (fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                      // Dst: (VSUBPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*156495*/          0, /*End of Scope*/
/*156496*/        /*SwitchType*/ 24, MVT::v4f64,// ->156522
/*156498*/          OPC_Scope, 10, /*->156510*/ // 2 children in Scope
/*156500*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*156502*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDYrr), 0,
                          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)
/*156510*/          /*Scope*/ 10, /*->156521*/
/*156511*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156513*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rr), 0,
                          MVT::v4f64, 2/*#Ops*/, 0, 1, 
                      // Src: (fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                      // Dst: (VSUBPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*156521*/          0, /*End of Scope*/
/*156522*/        /*SwitchType*/ 10, MVT::v16f32,// ->156534
/*156524*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156526*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrr), 0,
                        MVT::v16f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                    // Dst: (VSUBPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*156534*/        /*SwitchType*/ 10, MVT::v8f64,// ->156546
/*156536*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156538*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrr), 0,
                        MVT::v8f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                    // Dst: (VSUBPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*156546*/        0, // EndSwitchType
/*156547*/      0, /*End of Scope*/
/*156548*/    0, /*End of Scope*/
/*156549*/  /*SwitchOpcode*/ 67|128,15/*1987*/, TARGET_VAL(ISD::FMUL),// ->158540
/*156553*/    OPC_Scope, 7|128,1/*135*/, /*->156691*/ // 11 children in Scope
/*156556*/      OPC_RecordChild0, // #0 = $src1
/*156557*/      OPC_MoveChild1,
/*156558*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*156561*/      OPC_RecordMemRef,
/*156562*/      OPC_RecordNode, // #1 = 'ld' chained node
/*156563*/      OPC_CheckFoldableChainNode,
/*156564*/      OPC_RecordChild1, // #2 = $src2
/*156565*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*156567*/      OPC_Scope, 47, /*->156616*/ // 2 children in Scope
/*156569*/        OPC_CheckPredicate, 9, // Predicate_load
/*156571*/        OPC_MoveParent,
/*156572*/        OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->156594
/*156575*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*156577*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156580*/          OPC_EmitMergeInputChains1_1,
/*156581*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156594*/        /*SwitchType*/ 19, MVT::f64,// ->156615
/*156596*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*156598*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156601*/          OPC_EmitMergeInputChains1_1,
/*156602*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156615*/        0, // EndSwitchType
/*156616*/      /*Scope*/ 73, /*->156690*/
/*156617*/        OPC_CheckPredicate, 64, // Predicate_extload
/*156619*/        OPC_Scope, 45, /*->156666*/ // 2 children in Scope
/*156621*/          OPC_CheckPredicate, 65, // Predicate_extloadf32
/*156623*/          OPC_MoveParent,
/*156624*/          OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->156646
/*156627*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*156629*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156632*/            OPC_EmitMergeInputChains1_1,
/*156633*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156646*/          /*SwitchType*/ 17, MVT::f80,// ->156665
/*156648*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156651*/            OPC_EmitMergeInputChains1_1,
/*156652*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156665*/          0, // EndSwitchType
/*156666*/        /*Scope*/ 22, /*->156689*/
/*156667*/          OPC_CheckPredicate, 66, // Predicate_extloadf64
/*156669*/          OPC_MoveParent,
/*156670*/          OPC_CheckType, MVT::f80,
/*156672*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156675*/          OPC_EmitMergeInputChains1_1,
/*156676*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156689*/        0, /*End of Scope*/
/*156690*/      0, /*End of Scope*/
/*156691*/    /*Scope*/ 9|128,1/*137*/, /*->156830*/
/*156693*/      OPC_MoveChild0,
/*156694*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*156697*/      OPC_RecordMemRef,
/*156698*/      OPC_RecordNode, // #0 = 'ld' chained node
/*156699*/      OPC_CheckFoldableChainNode,
/*156700*/      OPC_RecordChild1, // #1 = $src2
/*156701*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*156703*/      OPC_Scope, 48, /*->156753*/ // 2 children in Scope
/*156705*/        OPC_CheckPredicate, 9, // Predicate_load
/*156707*/        OPC_MoveParent,
/*156708*/        OPC_RecordChild1, // #2 = $src1
/*156709*/        OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->156731
/*156712*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*156714*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156717*/          OPC_EmitMergeInputChains1_0,
/*156718*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156731*/        /*SwitchType*/ 19, MVT::f64,// ->156752
/*156733*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*156735*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156738*/          OPC_EmitMergeInputChains1_0,
/*156739*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156752*/        0, // EndSwitchType
/*156753*/      /*Scope*/ 75, /*->156829*/
/*156754*/        OPC_CheckPredicate, 64, // Predicate_extload
/*156756*/        OPC_Scope, 46, /*->156804*/ // 2 children in Scope
/*156758*/          OPC_CheckPredicate, 65, // Predicate_extloadf32
/*156760*/          OPC_MoveParent,
/*156761*/          OPC_RecordChild1, // #2 = $src1
/*156762*/          OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->156784
/*156765*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*156767*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156770*/            OPC_EmitMergeInputChains1_0,
/*156771*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156784*/          /*SwitchType*/ 17, MVT::f80,// ->156803
/*156786*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156789*/            OPC_EmitMergeInputChains1_0,
/*156790*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156803*/          0, // EndSwitchType
/*156804*/        /*Scope*/ 23, /*->156828*/
/*156805*/          OPC_CheckPredicate, 66, // Predicate_extloadf64
/*156807*/          OPC_MoveParent,
/*156808*/          OPC_RecordChild1, // #2 = $src1
/*156809*/          OPC_CheckType, MVT::f80,
/*156811*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156814*/          OPC_EmitMergeInputChains1_0,
/*156815*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156828*/        0, /*End of Scope*/
/*156829*/      0, /*End of Scope*/
/*156830*/    /*Scope*/ 10|128,1/*138*/, /*->156970*/
/*156832*/      OPC_RecordChild0, // #0 = $src1
/*156833*/      OPC_MoveChild1,
/*156834*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*156837*/      OPC_RecordMemRef,
/*156838*/      OPC_RecordNode, // #1 = 'ld' chained node
/*156839*/      OPC_CheckFoldableChainNode,
/*156840*/      OPC_RecordChild1, // #2 = $src2
/*156841*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*156843*/      OPC_CheckPredicate, 9, // Predicate_load
/*156845*/      OPC_MoveParent,
/*156846*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->156908
/*156849*/        OPC_Scope, 18, /*->156869*/ // 3 children in Scope
/*156851*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*156853*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156856*/          OPC_EmitMergeInputChains1_1,
/*156857*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*156869*/        /*Scope*/ 18, /*->156888*/
/*156870*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*156872*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156875*/          OPC_EmitMergeInputChains1_1,
/*156876*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*156888*/        /*Scope*/ 18, /*->156907*/
/*156889*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156891*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156894*/          OPC_EmitMergeInputChains1_1,
/*156895*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[f32] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMULSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156907*/        0, /*End of Scope*/
/*156908*/      /*SwitchType*/ 59, MVT::f64,// ->156969
/*156910*/        OPC_Scope, 18, /*->156930*/ // 3 children in Scope
/*156912*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*156914*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156917*/          OPC_EmitMergeInputChains1_1,
/*156918*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*156930*/        /*Scope*/ 18, /*->156949*/
/*156931*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*156933*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156936*/          OPC_EmitMergeInputChains1_1,
/*156937*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*156949*/        /*Scope*/ 18, /*->156968*/
/*156950*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156952*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156955*/          OPC_EmitMergeInputChains1_1,
/*156956*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[f64] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMULSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*156968*/        0, /*End of Scope*/
/*156969*/      0, // EndSwitchType
/*156970*/    /*Scope*/ 10|128,1/*138*/, /*->157110*/
/*156972*/      OPC_MoveChild0,
/*156973*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*156976*/      OPC_RecordMemRef,
/*156977*/      OPC_RecordNode, // #0 = 'ld' chained node
/*156978*/      OPC_CheckFoldableChainNode,
/*156979*/      OPC_RecordChild1, // #1 = $src2
/*156980*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*156982*/      OPC_CheckPredicate, 9, // Predicate_load
/*156984*/      OPC_MoveParent,
/*156985*/      OPC_RecordChild1, // #2 = $src1
/*156986*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->157048
/*156989*/        OPC_Scope, 18, /*->157009*/ // 3 children in Scope
/*156991*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*156993*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*156996*/          OPC_EmitMergeInputChains1_0,
/*156997*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*157009*/        /*Scope*/ 18, /*->157028*/
/*157010*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*157012*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157015*/          OPC_EmitMergeInputChains1_0,
/*157016*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*157028*/        /*Scope*/ 18, /*->157047*/
/*157029*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157031*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157034*/          OPC_EmitMergeInputChains1_0,
/*157035*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (VMULSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157047*/        0, /*End of Scope*/
/*157048*/      /*SwitchType*/ 59, MVT::f64,// ->157109
/*157050*/        OPC_Scope, 18, /*->157070*/ // 3 children in Scope
/*157052*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*157054*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157057*/          OPC_EmitMergeInputChains1_0,
/*157058*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*157070*/        /*Scope*/ 18, /*->157089*/
/*157071*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*157073*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157076*/          OPC_EmitMergeInputChains1_0,
/*157077*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*157089*/        /*Scope*/ 18, /*->157108*/
/*157090*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157092*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157095*/          OPC_EmitMergeInputChains1_0,
/*157096*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (VMULSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157108*/        0, /*End of Scope*/
/*157109*/      0, // EndSwitchType
/*157110*/    /*Scope*/ 20|128,1/*148*/, /*->157260*/
/*157112*/      OPC_RecordChild0, // #0 = $src1
/*157113*/      OPC_MoveChild1,
/*157114*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*157117*/      OPC_RecordMemRef,
/*157118*/      OPC_RecordNode, // #1 = 'X86fild' chained node
/*157119*/      OPC_CheckFoldableChainNode,
/*157120*/      OPC_RecordChild1, // #2 = $src2
/*157121*/      OPC_MoveChild2,
/*157122*/      OPC_Scope, 67, /*->157191*/ // 2 children in Scope
/*157124*/        OPC_CheckValueType, MVT::i16,
/*157126*/        OPC_MoveParent,
/*157127*/        OPC_MoveParent,
/*157128*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->157150
/*157131*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*157133*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157136*/          OPC_EmitMergeInputChains1_1,
/*157137*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157150*/        /*SwitchType*/ 19, MVT::f64,// ->157171
/*157152*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*157154*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157157*/          OPC_EmitMergeInputChains1_1,
/*157158*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157171*/        /*SwitchType*/ 17, MVT::f80,// ->157190
/*157173*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157176*/          OPC_EmitMergeInputChains1_1,
/*157177*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157190*/        0, // EndSwitchType
/*157191*/      /*Scope*/ 67, /*->157259*/
/*157192*/        OPC_CheckValueType, MVT::i32,
/*157194*/        OPC_MoveParent,
/*157195*/        OPC_MoveParent,
/*157196*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->157218
/*157199*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*157201*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157204*/          OPC_EmitMergeInputChains1_1,
/*157205*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157218*/        /*SwitchType*/ 19, MVT::f64,// ->157239
/*157220*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*157222*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157225*/          OPC_EmitMergeInputChains1_1,
/*157226*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157239*/        /*SwitchType*/ 17, MVT::f80,// ->157258
/*157241*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157244*/          OPC_EmitMergeInputChains1_1,
/*157245*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157258*/        0, // EndSwitchType
/*157259*/      0, /*End of Scope*/
/*157260*/    /*Scope*/ 21|128,1/*149*/, /*->157411*/
/*157262*/      OPC_MoveChild0,
/*157263*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*157266*/      OPC_RecordMemRef,
/*157267*/      OPC_RecordNode, // #0 = 'X86fild' chained node
/*157268*/      OPC_CheckFoldableChainNode,
/*157269*/      OPC_RecordChild1, // #1 = $src2
/*157270*/      OPC_MoveChild2,
/*157271*/      OPC_Scope, 68, /*->157341*/ // 2 children in Scope
/*157273*/        OPC_CheckValueType, MVT::i16,
/*157275*/        OPC_MoveParent,
/*157276*/        OPC_MoveParent,
/*157277*/        OPC_RecordChild1, // #2 = $src1
/*157278*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->157300
/*157281*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*157283*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157286*/          OPC_EmitMergeInputChains1_0,
/*157287*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157300*/        /*SwitchType*/ 19, MVT::f64,// ->157321
/*157302*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*157304*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157307*/          OPC_EmitMergeInputChains1_0,
/*157308*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157321*/        /*SwitchType*/ 17, MVT::f80,// ->157340
/*157323*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157326*/          OPC_EmitMergeInputChains1_0,
/*157327*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157340*/        0, // EndSwitchType
/*157341*/      /*Scope*/ 68, /*->157410*/
/*157342*/        OPC_CheckValueType, MVT::i32,
/*157344*/        OPC_MoveParent,
/*157345*/        OPC_MoveParent,
/*157346*/        OPC_RecordChild1, // #2 = $src1
/*157347*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->157369
/*157350*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*157352*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157355*/          OPC_EmitMergeInputChains1_0,
/*157356*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157369*/        /*SwitchType*/ 19, MVT::f64,// ->157390
/*157371*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*157373*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157376*/          OPC_EmitMergeInputChains1_0,
/*157377*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157390*/        /*SwitchType*/ 17, MVT::f80,// ->157409
/*157392*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157395*/          OPC_EmitMergeInputChains1_0,
/*157396*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157409*/        0, // EndSwitchType
/*157410*/      0, /*End of Scope*/
/*157411*/    /*Scope*/ 12|128,2/*268*/, /*->157681*/
/*157413*/      OPC_RecordChild0, // #0 = $src1
/*157414*/      OPC_Scope, 112, /*->157528*/ // 2 children in Scope
/*157416*/        OPC_RecordChild1, // #1 = $src2
/*157417*/        OPC_SwitchType /*3 cases */, 47, MVT::f32,// ->157467
/*157420*/          OPC_Scope, 11, /*->157433*/ // 4 children in Scope
/*157422*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*157424*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp32), 0,
                          MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                      // Src: (fmul:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (MUL_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*157433*/          /*Scope*/ 10, /*->157444*/
/*157434*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*157436*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrr), 0,
                          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)
/*157444*/          /*Scope*/ 10, /*->157455*/
/*157445*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*157447*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrr), 0,
                          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)
/*157455*/          /*Scope*/ 10, /*->157466*/
/*157456*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157458*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr), 0,
                          MVT::f32, 2/*#Ops*/, 0, 1, 
                      // Src: (fmul:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VMULSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*157466*/          0, /*End of Scope*/
/*157467*/        /*SwitchType*/ 47, MVT::f64,// ->157516
/*157469*/          OPC_Scope, 11, /*->157482*/ // 4 children in Scope
/*157471*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*157473*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp64), 0,
                          MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                      // Src: (fmul:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (MUL_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*157482*/          /*Scope*/ 10, /*->157493*/
/*157483*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*157485*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrr), 0,
                          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)
/*157493*/          /*Scope*/ 10, /*->157504*/
/*157494*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*157496*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrr), 0,
                          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)
/*157504*/          /*Scope*/ 10, /*->157515*/
/*157505*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157507*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1, 
                      // Src: (fmul:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VMULSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*157515*/          0, /*End of Scope*/
/*157516*/        /*SwitchType*/ 9, MVT::f80,// ->157527
/*157518*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp80), 0,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2) - Complexity = 3
                    // Dst: (MUL_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*157527*/        0, // EndSwitchType
/*157528*/      /*Scope*/ 22|128,1/*150*/, /*->157680*/
/*157530*/        OPC_MoveChild1,
/*157531*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*157534*/        OPC_MoveChild0,
/*157535*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157538*/        OPC_RecordMemRef,
/*157539*/        OPC_RecordNode, // #1 = 'ld' chained node
/*157540*/        OPC_CheckFoldableChainNode,
/*157541*/        OPC_RecordChild1, // #2 = $src2
/*157542*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157544*/        OPC_CheckPredicate, 9, // Predicate_load
/*157546*/        OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->157613
/*157549*/          OPC_MoveParent,
/*157550*/          OPC_MoveParent,
/*157551*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->157572
/*157554*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157556*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157559*/            OPC_EmitMergeInputChains1_1,
/*157560*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMULPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157572*/          /*SwitchType*/ 18, MVT::v4f32,// ->157592
/*157574*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*157576*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157579*/            OPC_EmitMergeInputChains1_1,
/*157580*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMULPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157592*/          /*SwitchType*/ 18, MVT::v8f32,// ->157612
/*157594*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*157596*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157599*/            OPC_EmitMergeInputChains1_1,
/*157600*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMULPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157612*/          0, // EndSwitchType
/*157613*/        /*SwitchType*/ 64, MVT::f64,// ->157679
/*157615*/          OPC_MoveParent,
/*157616*/          OPC_MoveParent,
/*157617*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->157638
/*157620*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157622*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157625*/            OPC_EmitMergeInputChains1_1,
/*157626*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMULPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157638*/          /*SwitchType*/ 18, MVT::v2f64,// ->157658
/*157640*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*157642*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157645*/            OPC_EmitMergeInputChains1_1,
/*157646*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMULPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157658*/          /*SwitchType*/ 18, MVT::v4f64,// ->157678
/*157660*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*157662*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157665*/            OPC_EmitMergeInputChains1_1,
/*157666*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMULPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157678*/          0, // EndSwitchType
/*157679*/        0, // EndSwitchType
/*157680*/      0, /*End of Scope*/
/*157681*/    /*Scope*/ 24|128,1/*152*/, /*->157835*/
/*157683*/      OPC_MoveChild0,
/*157684*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*157687*/      OPC_MoveChild0,
/*157688*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157691*/      OPC_RecordMemRef,
/*157692*/      OPC_RecordNode, // #0 = 'ld' chained node
/*157693*/      OPC_CheckFoldableChainNode,
/*157694*/      OPC_RecordChild1, // #1 = $src2
/*157695*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157697*/      OPC_CheckPredicate, 9, // Predicate_load
/*157699*/      OPC_SwitchType /*2 cases */, 65, MVT::f32,// ->157767
/*157702*/        OPC_MoveParent,
/*157703*/        OPC_MoveParent,
/*157704*/        OPC_RecordChild1, // #2 = $src1
/*157705*/        OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->157726
/*157708*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157710*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157713*/          OPC_EmitMergeInputChains1_0,
/*157714*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                    // Dst: (VMULPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157726*/        /*SwitchType*/ 18, MVT::v4f32,// ->157746
/*157728*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*157730*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157733*/          OPC_EmitMergeInputChains1_0,
/*157734*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                    // Dst: (VMULPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157746*/        /*SwitchType*/ 18, MVT::v8f32,// ->157766
/*157748*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*157750*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157753*/          OPC_EmitMergeInputChains1_0,
/*157754*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                    // Dst: (VMULPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157766*/        0, // EndSwitchType
/*157767*/      /*SwitchType*/ 65, MVT::f64,// ->157834
/*157769*/        OPC_MoveParent,
/*157770*/        OPC_MoveParent,
/*157771*/        OPC_RecordChild1, // #2 = $src1
/*157772*/        OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->157793
/*157775*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157777*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157780*/          OPC_EmitMergeInputChains1_0,
/*157781*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                    // Dst: (VMULPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157793*/        /*SwitchType*/ 18, MVT::v2f64,// ->157813
/*157795*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*157797*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157800*/          OPC_EmitMergeInputChains1_0,
/*157801*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                    // Dst: (VMULPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157813*/        /*SwitchType*/ 18, MVT::v4f64,// ->157833
/*157815*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*157817*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157820*/          OPC_EmitMergeInputChains1_0,
/*157821*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                    // Dst: (VMULPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157833*/        0, // EndSwitchType
/*157834*/      0, // EndSwitchType
/*157835*/    /*Scope*/ 15|128,2/*271*/, /*->158108*/
/*157837*/      OPC_RecordChild0, // #0 = $src1
/*157838*/      OPC_MoveChild1,
/*157839*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157842*/      OPC_RecordMemRef,
/*157843*/      OPC_RecordNode, // #1 = 'ld' chained node
/*157844*/      OPC_CheckFoldableChainNode,
/*157845*/      OPC_RecordChild1, // #2 = $src2
/*157846*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157848*/      OPC_CheckPredicate, 9, // Predicate_load
/*157850*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*157852*/      OPC_Scope, 83, /*->157937*/ // 3 children in Scope
/*157854*/        OPC_MoveParent,
/*157855*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->157876
/*157858*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*157860*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157863*/          OPC_EmitMergeInputChains1_1,
/*157864*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VMULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157876*/        /*SwitchType*/ 18, MVT::v2f64,// ->157896
/*157878*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*157880*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157883*/          OPC_EmitMergeInputChains1_1,
/*157884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VMULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157896*/        /*SwitchType*/ 18, MVT::v8f32,// ->157916
/*157898*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*157900*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157903*/          OPC_EmitMergeInputChains1_1,
/*157904*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VMULPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157916*/        /*SwitchType*/ 18, MVT::v4f64,// ->157936
/*157918*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*157920*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157923*/          OPC_EmitMergeInputChains1_1,
/*157924*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VMULPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157936*/        0, // EndSwitchType
/*157937*/      /*Scope*/ 45, /*->157983*/
/*157938*/        OPC_CheckPredicate, 48, // Predicate_memop
/*157940*/        OPC_MoveParent,
/*157941*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->157962
/*157944*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*157946*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157949*/          OPC_EmitMergeInputChains1_1,
/*157950*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (MULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157962*/        /*SwitchType*/ 18, MVT::v2f64,// ->157982
/*157964*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*157966*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157969*/          OPC_EmitMergeInputChains1_1,
/*157970*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (MULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*157982*/        0, // EndSwitchType
/*157983*/      /*Scope*/ 123, /*->158107*/
/*157984*/        OPC_MoveParent,
/*157985*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->158006
/*157988*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157990*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*157993*/          OPC_EmitMergeInputChains1_1,
/*157994*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMULPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158006*/        /*SwitchType*/ 18, MVT::v8f64,// ->158026
/*158008*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158010*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158013*/          OPC_EmitMergeInputChains1_1,
/*158014*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMULPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158026*/        /*SwitchType*/ 18, MVT::v4f32,// ->158046
/*158028*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158030*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158033*/          OPC_EmitMergeInputChains1_1,
/*158034*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMULPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158046*/        /*SwitchType*/ 18, MVT::v8f32,// ->158066
/*158048*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158050*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158053*/          OPC_EmitMergeInputChains1_1,
/*158054*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMULPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158066*/        /*SwitchType*/ 18, MVT::v2f64,// ->158086
/*158068*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158070*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158073*/          OPC_EmitMergeInputChains1_1,
/*158074*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMULPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158086*/        /*SwitchType*/ 18, MVT::v4f64,// ->158106
/*158088*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158090*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158093*/          OPC_EmitMergeInputChains1_1,
/*158094*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMULPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158106*/        0, // EndSwitchType
/*158107*/      0, /*End of Scope*/
/*158108*/    /*Scope*/ 17|128,2/*273*/, /*->158383*/
/*158110*/      OPC_MoveChild0,
/*158111*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*158114*/      OPC_RecordMemRef,
/*158115*/      OPC_RecordNode, // #0 = 'ld' chained node
/*158116*/      OPC_CheckFoldableChainNode,
/*158117*/      OPC_RecordChild1, // #1 = $src2
/*158118*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158120*/      OPC_CheckPredicate, 9, // Predicate_load
/*158122*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*158124*/      OPC_Scope, 84, /*->158210*/ // 3 children in Scope
/*158126*/        OPC_MoveParent,
/*158127*/        OPC_RecordChild1, // #2 = $src1
/*158128*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->158149
/*158131*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*158133*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158136*/          OPC_EmitMergeInputChains1_0,
/*158137*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VMULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158149*/        /*SwitchType*/ 18, MVT::v2f64,// ->158169
/*158151*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*158153*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158156*/          OPC_EmitMergeInputChains1_0,
/*158157*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VMULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158169*/        /*SwitchType*/ 18, MVT::v8f32,// ->158189
/*158171*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*158173*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158176*/          OPC_EmitMergeInputChains1_0,
/*158177*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VMULPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158189*/        /*SwitchType*/ 18, MVT::v4f64,// ->158209
/*158191*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*158193*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158196*/          OPC_EmitMergeInputChains1_0,
/*158197*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VMULPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158209*/        0, // EndSwitchType
/*158210*/      /*Scope*/ 46, /*->158257*/
/*158211*/        OPC_CheckPredicate, 48, // Predicate_memop
/*158213*/        OPC_MoveParent,
/*158214*/        OPC_RecordChild1, // #2 = $src1
/*158215*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->158236
/*158218*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*158220*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158223*/          OPC_EmitMergeInputChains1_0,
/*158224*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (MULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158236*/        /*SwitchType*/ 18, MVT::v2f64,// ->158256
/*158238*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*158240*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158243*/          OPC_EmitMergeInputChains1_0,
/*158244*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (MULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158256*/        0, // EndSwitchType
/*158257*/      /*Scope*/ 124, /*->158382*/
/*158258*/        OPC_MoveParent,
/*158259*/        OPC_RecordChild1, // #2 = $src1
/*158260*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->158281
/*158263*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158265*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158268*/          OPC_EmitMergeInputChains1_0,
/*158269*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VMULPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158281*/        /*SwitchType*/ 18, MVT::v8f64,// ->158301
/*158283*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158285*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158288*/          OPC_EmitMergeInputChains1_0,
/*158289*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VMULPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158301*/        /*SwitchType*/ 18, MVT::v4f32,// ->158321
/*158303*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158305*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158308*/          OPC_EmitMergeInputChains1_0,
/*158309*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VMULPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158321*/        /*SwitchType*/ 18, MVT::v8f32,// ->158341
/*158323*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158325*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158328*/          OPC_EmitMergeInputChains1_0,
/*158329*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VMULPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158341*/        /*SwitchType*/ 18, MVT::v2f64,// ->158361
/*158343*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158345*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158348*/          OPC_EmitMergeInputChains1_0,
/*158349*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VMULPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158361*/        /*SwitchType*/ 18, MVT::v4f64,// ->158381
/*158363*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158365*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158368*/          OPC_EmitMergeInputChains1_0,
/*158369*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VMULPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158381*/        0, // EndSwitchType
/*158382*/      0, /*End of Scope*/
/*158383*/    /*Scope*/ 26|128,1/*154*/, /*->158539*/
/*158385*/      OPC_RecordChild0, // #0 = $src1
/*158386*/      OPC_RecordChild1, // #1 = $src2
/*158387*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->158425
/*158390*/        OPC_Scope, 10, /*->158402*/ // 3 children in Scope
/*158392*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*158394*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSrr), 0,
                        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)
/*158402*/        /*Scope*/ 10, /*->158413*/
/*158403*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*158405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULPSrr), 0,
                        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)
/*158413*/        /*Scope*/ 10, /*->158424*/
/*158414*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158416*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VMULPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*158424*/        0, /*End of Scope*/
/*158425*/      /*SwitchType*/ 35, MVT::v2f64,// ->158462
/*158427*/        OPC_Scope, 10, /*->158439*/ // 3 children in Scope
/*158429*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*158431*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDrr), 0,
                        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)
/*158439*/        /*Scope*/ 10, /*->158450*/
/*158440*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*158442*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULPDrr), 0,
                        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)
/*158450*/        /*Scope*/ 10, /*->158461*/
/*158451*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158453*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VMULPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*158461*/        0, /*End of Scope*/
/*158462*/      /*SwitchType*/ 24, MVT::v8f32,// ->158488
/*158464*/        OPC_Scope, 10, /*->158476*/ // 2 children in Scope
/*158466*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*158468*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSYrr), 0,
                        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)
/*158476*/        /*Scope*/ 10, /*->158487*/
/*158477*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158479*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VMULPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*158487*/        0, /*End of Scope*/
/*158488*/      /*SwitchType*/ 24, MVT::v4f64,// ->158514
/*158490*/        OPC_Scope, 10, /*->158502*/ // 2 children in Scope
/*158492*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*158494*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDYrr), 0,
                        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)
/*158502*/        /*Scope*/ 10, /*->158513*/
/*158503*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158505*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VMULPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*158513*/        0, /*End of Scope*/
/*158514*/      /*SwitchType*/ 10, MVT::v16f32,// ->158526
/*158516*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158518*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrr), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VMULPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*158526*/      /*SwitchType*/ 10, MVT::v8f64,// ->158538
/*158528*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158530*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrr), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VMULPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*158538*/      0, // EndSwitchType
/*158539*/    0, /*End of Scope*/
/*158540*/  /*SwitchOpcode*/ 9|128,11/*1417*/, TARGET_VAL(ISD::FDIV),// ->159961
/*158544*/    OPC_Scope, 7|128,1/*135*/, /*->158682*/ // 5 children in Scope
/*158547*/      OPC_RecordChild0, // #0 = $src1
/*158548*/      OPC_MoveChild1,
/*158549*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*158552*/      OPC_RecordMemRef,
/*158553*/      OPC_RecordNode, // #1 = 'ld' chained node
/*158554*/      OPC_CheckFoldableChainNode,
/*158555*/      OPC_RecordChild1, // #2 = $src2
/*158556*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158558*/      OPC_Scope, 47, /*->158607*/ // 2 children in Scope
/*158560*/        OPC_CheckPredicate, 9, // Predicate_load
/*158562*/        OPC_MoveParent,
/*158563*/        OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->158585
/*158566*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*158568*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158571*/          OPC_EmitMergeInputChains1_1,
/*158572*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158585*/        /*SwitchType*/ 19, MVT::f64,// ->158606
/*158587*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*158589*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158592*/          OPC_EmitMergeInputChains1_1,
/*158593*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158606*/        0, // EndSwitchType
/*158607*/      /*Scope*/ 73, /*->158681*/
/*158608*/        OPC_CheckPredicate, 64, // Predicate_extload
/*158610*/        OPC_Scope, 45, /*->158657*/ // 2 children in Scope
/*158612*/          OPC_CheckPredicate, 65, // Predicate_extloadf32
/*158614*/          OPC_MoveParent,
/*158615*/          OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->158637
/*158618*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*158620*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158623*/            OPC_EmitMergeInputChains1_1,
/*158624*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158637*/          /*SwitchType*/ 17, MVT::f80,// ->158656
/*158639*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158642*/            OPC_EmitMergeInputChains1_1,
/*158643*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158656*/          0, // EndSwitchType
/*158657*/        /*Scope*/ 22, /*->158680*/
/*158658*/          OPC_CheckPredicate, 66, // Predicate_extloadf64
/*158660*/          OPC_MoveParent,
/*158661*/          OPC_CheckType, MVT::f80,
/*158663*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158666*/          OPC_EmitMergeInputChains1_1,
/*158667*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158680*/        0, /*End of Scope*/
/*158681*/      0, /*End of Scope*/
/*158682*/    /*Scope*/ 9|128,1/*137*/, /*->158821*/
/*158684*/      OPC_MoveChild0,
/*158685*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*158688*/      OPC_RecordMemRef,
/*158689*/      OPC_RecordNode, // #0 = 'ld' chained node
/*158690*/      OPC_CheckFoldableChainNode,
/*158691*/      OPC_RecordChild1, // #1 = $src2
/*158692*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158694*/      OPC_Scope, 48, /*->158744*/ // 2 children in Scope
/*158696*/        OPC_CheckPredicate, 9, // Predicate_load
/*158698*/        OPC_MoveParent,
/*158699*/        OPC_RecordChild1, // #2 = $src1
/*158700*/        OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->158722
/*158703*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*158705*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158708*/          OPC_EmitMergeInputChains1_0,
/*158709*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (DIVR_Fp32m:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158722*/        /*SwitchType*/ 19, MVT::f64,// ->158743
/*158724*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*158726*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158729*/          OPC_EmitMergeInputChains1_0,
/*158730*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (DIVR_Fp64m:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158743*/        0, // EndSwitchType
/*158744*/      /*Scope*/ 75, /*->158820*/
/*158745*/        OPC_CheckPredicate, 64, // Predicate_extload
/*158747*/        OPC_Scope, 46, /*->158795*/ // 2 children in Scope
/*158749*/          OPC_CheckPredicate, 65, // Predicate_extloadf32
/*158751*/          OPC_MoveParent,
/*158752*/          OPC_RecordChild1, // #2 = $src1
/*158753*/          OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->158775
/*158756*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*158758*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158761*/            OPC_EmitMergeInputChains1_0,
/*158762*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                      // Dst: (DIVR_Fp64m32:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158775*/          /*SwitchType*/ 17, MVT::f80,// ->158794
/*158777*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158780*/            OPC_EmitMergeInputChains1_0,
/*158781*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:{ *:[f80] } (ld:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                      // Dst: (DIVR_Fp80m32:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158794*/          0, // EndSwitchType
/*158795*/        /*Scope*/ 23, /*->158819*/
/*158796*/          OPC_CheckPredicate, 66, // Predicate_extloadf64
/*158798*/          OPC_MoveParent,
/*158799*/          OPC_RecordChild1, // #2 = $src1
/*158800*/          OPC_CheckType, MVT::f80,
/*158802*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158805*/          OPC_EmitMergeInputChains1_0,
/*158806*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:{ *:[f80] } (ld:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf64>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (DIVR_Fp80m64:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158819*/        0, /*End of Scope*/
/*158820*/      0, /*End of Scope*/
/*158821*/    /*Scope*/ 32|128,2/*288*/, /*->159111*/
/*158823*/      OPC_RecordChild0, // #0 = $src1
/*158824*/      OPC_MoveChild1,
/*158825*/      OPC_SwitchOpcode /*2 cases */, 5|128,1/*133*/, TARGET_VAL(ISD::LOAD),// ->158963
/*158830*/        OPC_RecordMemRef,
/*158831*/        OPC_RecordNode, // #1 = 'ld' chained node
/*158832*/        OPC_CheckFoldableChainNode,
/*158833*/        OPC_RecordChild1, // #2 = $src2
/*158834*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158836*/        OPC_CheckPredicate, 9, // Predicate_load
/*158838*/        OPC_MoveParent,
/*158839*/        OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->158901
/*158842*/          OPC_Scope, 18, /*->158862*/ // 3 children in Scope
/*158844*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*158846*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158849*/            OPC_EmitMergeInputChains1_1,
/*158850*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*158862*/          /*Scope*/ 18, /*->158881*/
/*158863*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*158865*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158868*/            OPC_EmitMergeInputChains1_1,
/*158869*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*158881*/          /*Scope*/ 18, /*->158900*/
/*158882*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158884*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158887*/            OPC_EmitMergeInputChains1_1,
/*158888*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:{ *:[f32] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VDIVSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158900*/          0, /*End of Scope*/
/*158901*/        /*SwitchType*/ 59, MVT::f64,// ->158962
/*158903*/          OPC_Scope, 18, /*->158923*/ // 3 children in Scope
/*158905*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*158907*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158910*/            OPC_EmitMergeInputChains1_1,
/*158911*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*158923*/          /*Scope*/ 18, /*->158942*/
/*158924*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*158926*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158929*/            OPC_EmitMergeInputChains1_1,
/*158930*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*158942*/          /*Scope*/ 18, /*->158961*/
/*158943*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158945*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158948*/            OPC_EmitMergeInputChains1_1,
/*158949*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:{ *:[f64] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VDIVSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*158961*/          0, /*End of Scope*/
/*158962*/        0, // EndSwitchType
/*158963*/      /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(X86ISD::FILD),// ->159110
/*158967*/        OPC_RecordMemRef,
/*158968*/        OPC_RecordNode, // #1 = 'X86fild' chained node
/*158969*/        OPC_CheckFoldableChainNode,
/*158970*/        OPC_RecordChild1, // #2 = $src2
/*158971*/        OPC_MoveChild2,
/*158972*/        OPC_Scope, 67, /*->159041*/ // 2 children in Scope
/*158974*/          OPC_CheckValueType, MVT::i16,
/*158976*/          OPC_MoveParent,
/*158977*/          OPC_MoveParent,
/*158978*/          OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->159000
/*158981*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*158983*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*158986*/            OPC_EmitMergeInputChains1_1,
/*158987*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159000*/          /*SwitchType*/ 19, MVT::f64,// ->159021
/*159002*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*159004*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159007*/            OPC_EmitMergeInputChains1_1,
/*159008*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159021*/          /*SwitchType*/ 17, MVT::f80,// ->159040
/*159023*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159026*/            OPC_EmitMergeInputChains1_1,
/*159027*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159040*/          0, // EndSwitchType
/*159041*/        /*Scope*/ 67, /*->159109*/
/*159042*/          OPC_CheckValueType, MVT::i32,
/*159044*/          OPC_MoveParent,
/*159045*/          OPC_MoveParent,
/*159046*/          OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->159068
/*159049*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*159051*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159054*/            OPC_EmitMergeInputChains1_1,
/*159055*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 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] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159068*/          /*SwitchType*/ 19, MVT::f64,// ->159089
/*159070*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*159072*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159075*/            OPC_EmitMergeInputChains1_1,
/*159076*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 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] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159089*/          /*SwitchType*/ 17, MVT::f80,// ->159108
/*159091*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159094*/            OPC_EmitMergeInputChains1_1,
/*159095*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 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] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159108*/          0, // EndSwitchType
/*159109*/        0, /*End of Scope*/
/*159110*/      0, // EndSwitchOpcode
/*159111*/    /*Scope*/ 21|128,1/*149*/, /*->159262*/
/*159113*/      OPC_MoveChild0,
/*159114*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*159117*/      OPC_RecordMemRef,
/*159118*/      OPC_RecordNode, // #0 = 'X86fild' chained node
/*159119*/      OPC_CheckFoldableChainNode,
/*159120*/      OPC_RecordChild1, // #1 = $src2
/*159121*/      OPC_MoveChild2,
/*159122*/      OPC_Scope, 68, /*->159192*/ // 2 children in Scope
/*159124*/        OPC_CheckValueType, MVT::i16,
/*159126*/        OPC_MoveParent,
/*159127*/        OPC_MoveParent,
/*159128*/        OPC_RecordChild1, // #2 = $src1
/*159129*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->159151
/*159132*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*159134*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159137*/          OPC_EmitMergeInputChains1_0,
/*159138*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2, i16:{ *:[Other] }), RFP32:{ *:[f32] }:$src1) - Complexity = 24
                    // Dst: (DIVR_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159151*/        /*SwitchType*/ 19, MVT::f64,// ->159172
/*159153*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*159155*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159158*/          OPC_EmitMergeInputChains1_0,
/*159159*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2, i16:{ *:[Other] }), RFP64:{ *:[f64] }:$src1) - Complexity = 24
                    // Dst: (DIVR_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159172*/        /*SwitchType*/ 17, MVT::f80,// ->159191
/*159174*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159177*/          OPC_EmitMergeInputChains1_0,
/*159178*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2, i16:{ *:[Other] }), RFP80:{ *:[f80] }:$src1) - Complexity = 24
                    // Dst: (DIVR_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159191*/        0, // EndSwitchType
/*159192*/      /*Scope*/ 68, /*->159261*/
/*159193*/        OPC_CheckValueType, MVT::i32,
/*159195*/        OPC_MoveParent,
/*159196*/        OPC_MoveParent,
/*159197*/        OPC_RecordChild1, // #2 = $src1
/*159198*/        OPC_SwitchType /*3 cases */, 19, MVT::f32,// ->159220
/*159201*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*159203*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159206*/          OPC_EmitMergeInputChains1_0,
/*159207*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2, i32:{ *:[Other] }), RFP32:{ *:[f32] }:$src1) - Complexity = 24
                    // Dst: (DIVR_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159220*/        /*SwitchType*/ 19, MVT::f64,// ->159241
/*159222*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*159224*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159227*/          OPC_EmitMergeInputChains1_0,
/*159228*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2, i32:{ *:[Other] }), RFP64:{ *:[f64] }:$src1) - Complexity = 24
                    // Dst: (DIVR_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159241*/        /*SwitchType*/ 17, MVT::f80,// ->159260
/*159243*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159246*/          OPC_EmitMergeInputChains1_0,
/*159247*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2, i32:{ *:[Other] }), RFP80:{ *:[f80] }:$src1) - Complexity = 24
                    // Dst: (DIVR_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159260*/        0, // EndSwitchType
/*159261*/      0, /*End of Scope*/
/*159262*/    /*Scope*/ 56|128,5/*696*/, /*->159960*/
/*159264*/      OPC_RecordChild0, // #0 = $src1
/*159265*/      OPC_Scope, 112, /*->159379*/ // 3 children in Scope
/*159267*/        OPC_RecordChild1, // #1 = $src2
/*159268*/        OPC_SwitchType /*3 cases */, 47, MVT::f32,// ->159318
/*159271*/          OPC_Scope, 11, /*->159284*/ // 4 children in Scope
/*159273*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*159275*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp32), 0,
                          MVT::f32, MVT::i16, 2/*#Ops*/, 0, 1, 
                      // Src: (fdiv:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (DIV_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*159284*/          /*Scope*/ 10, /*->159295*/
/*159285*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*159287*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSrr), 0,
                          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)
/*159295*/          /*Scope*/ 10, /*->159306*/
/*159296*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*159298*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSSrr), 0,
                          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)
/*159306*/          /*Scope*/ 10, /*->159317*/
/*159307*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159309*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrr), 0,
                          MVT::f32, 2/*#Ops*/, 0, 1, 
                      // Src: (fdiv:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VDIVSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*159317*/          0, /*End of Scope*/
/*159318*/        /*SwitchType*/ 47, MVT::f64,// ->159367
/*159320*/          OPC_Scope, 11, /*->159333*/ // 4 children in Scope
/*159322*/            OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*159324*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp64), 0,
                          MVT::f64, MVT::i16, 2/*#Ops*/, 0, 1, 
                      // Src: (fdiv:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (DIV_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*159333*/          /*Scope*/ 10, /*->159344*/
/*159334*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*159336*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDrr), 0,
                          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)
/*159344*/          /*Scope*/ 10, /*->159355*/
/*159345*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*159347*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSDrr), 0,
                          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)
/*159355*/          /*Scope*/ 10, /*->159366*/
/*159356*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159358*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrr), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1, 
                      // Src: (fdiv:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VDIVSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*159366*/          0, /*End of Scope*/
/*159367*/        /*SwitchType*/ 9, MVT::f80,// ->159378
/*159369*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp80), 0,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (fdiv:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2) - Complexity = 3
                    // Dst: (DIV_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*159378*/        0, // EndSwitchType
/*159379*/      /*Scope*/ 39|128,3/*423*/, /*->159804*/
/*159381*/        OPC_MoveChild1,
/*159382*/        OPC_SwitchOpcode /*2 cases */, 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST),// ->159533
/*159387*/          OPC_MoveChild0,
/*159388*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159391*/          OPC_RecordMemRef,
/*159392*/          OPC_RecordNode, // #1 = 'ld' chained node
/*159393*/          OPC_CheckFoldableChainNode,
/*159394*/          OPC_RecordChild1, // #2 = $src2
/*159395*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159397*/          OPC_CheckPredicate, 9, // Predicate_load
/*159399*/          OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->159466
/*159402*/            OPC_MoveParent,
/*159403*/            OPC_MoveParent,
/*159404*/            OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->159425
/*159407*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159409*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159412*/              OPC_EmitMergeInputChains1_1,
/*159413*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VDIVPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159425*/            /*SwitchType*/ 18, MVT::v4f32,// ->159445
/*159427*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159429*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159432*/              OPC_EmitMergeInputChains1_1,
/*159433*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VDIVPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159445*/            /*SwitchType*/ 18, MVT::v8f32,// ->159465
/*159447*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159449*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159452*/              OPC_EmitMergeInputChains1_1,
/*159453*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VDIVPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159465*/            0, // EndSwitchType
/*159466*/          /*SwitchType*/ 64, MVT::f64,// ->159532
/*159468*/            OPC_MoveParent,
/*159469*/            OPC_MoveParent,
/*159470*/            OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->159491
/*159473*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159475*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159478*/              OPC_EmitMergeInputChains1_1,
/*159479*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VDIVPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159491*/            /*SwitchType*/ 18, MVT::v2f64,// ->159511
/*159493*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159495*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159498*/              OPC_EmitMergeInputChains1_1,
/*159499*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VDIVPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159511*/            /*SwitchType*/ 18, MVT::v4f64,// ->159531
/*159513*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159515*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159518*/              OPC_EmitMergeInputChains1_1,
/*159519*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VDIVPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159531*/            0, // EndSwitchType
/*159532*/          0, // EndSwitchType
/*159533*/        /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::LOAD),// ->159803
/*159537*/          OPC_RecordMemRef,
/*159538*/          OPC_RecordNode, // #1 = 'ld' chained node
/*159539*/          OPC_CheckFoldableChainNode,
/*159540*/          OPC_RecordChild1, // #2 = $src2
/*159541*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159543*/          OPC_CheckPredicate, 9, // Predicate_load
/*159545*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*159547*/          OPC_Scope, 83, /*->159632*/ // 3 children in Scope
/*159549*/            OPC_MoveParent,
/*159550*/            OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->159571
/*159553*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*159555*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159558*/              OPC_EmitMergeInputChains1_1,
/*159559*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>) - Complexity = 25
                        // Dst: (VDIVPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159571*/            /*SwitchType*/ 18, MVT::v2f64,// ->159591
/*159573*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*159575*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159578*/              OPC_EmitMergeInputChains1_1,
/*159579*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>) - Complexity = 25
                        // Dst: (VDIVPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159591*/            /*SwitchType*/ 18, MVT::v8f32,// ->159611
/*159593*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*159595*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159598*/              OPC_EmitMergeInputChains1_1,
/*159599*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>) - Complexity = 25
                        // Dst: (VDIVPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159611*/            /*SwitchType*/ 18, MVT::v4f64,// ->159631
/*159613*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*159615*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159618*/              OPC_EmitMergeInputChains1_1,
/*159619*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>>) - Complexity = 25
                        // Dst: (VDIVPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159631*/            0, // EndSwitchType
/*159632*/          /*Scope*/ 45, /*->159678*/
/*159633*/            OPC_CheckPredicate, 48, // Predicate_memop
/*159635*/            OPC_MoveParent,
/*159636*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->159657
/*159639*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*159641*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159644*/              OPC_EmitMergeInputChains1_1,
/*159645*/              OPC_MorphNodeTo1, TARGET_VAL(X86::DIVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (DIVPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159657*/            /*SwitchType*/ 18, MVT::v2f64,// ->159677
/*159659*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*159661*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159664*/              OPC_EmitMergeInputChains1_1,
/*159665*/              OPC_MorphNodeTo1, TARGET_VAL(X86::DIVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (DIVPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159677*/            0, // EndSwitchType
/*159678*/          /*Scope*/ 123, /*->159802*/
/*159679*/            OPC_MoveParent,
/*159680*/            OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->159701
/*159683*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159685*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159688*/              OPC_EmitMergeInputChains1_1,
/*159689*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VDIVPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159701*/            /*SwitchType*/ 18, MVT::v8f64,// ->159721
/*159703*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159705*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159708*/              OPC_EmitMergeInputChains1_1,
/*159709*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VDIVPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159721*/            /*SwitchType*/ 18, MVT::v4f32,// ->159741
/*159723*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159725*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159728*/              OPC_EmitMergeInputChains1_1,
/*159729*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VDIVPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159741*/            /*SwitchType*/ 18, MVT::v8f32,// ->159761
/*159743*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159745*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159748*/              OPC_EmitMergeInputChains1_1,
/*159749*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VDIVPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159761*/            /*SwitchType*/ 18, MVT::v2f64,// ->159781
/*159763*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159765*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159768*/              OPC_EmitMergeInputChains1_1,
/*159769*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VDIVPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159781*/            /*SwitchType*/ 18, MVT::v4f64,// ->159801
/*159783*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159785*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*159788*/              OPC_EmitMergeInputChains1_1,
/*159789*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VDIVPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*159801*/            0, // EndSwitchType
/*159802*/          0, /*End of Scope*/
/*159803*/        0, // EndSwitchOpcode
/*159804*/      /*Scope*/ 25|128,1/*153*/, /*->159959*/
/*159806*/        OPC_RecordChild1, // #1 = $src2
/*159807*/        OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->159845
/*159810*/          OPC_Scope, 10, /*->159822*/ // 3 children in Scope
/*159812*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*159814*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSrr), 0,
                          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)
/*159822*/          /*Scope*/ 10, /*->159833*/
/*159823*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*159825*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVPSrr), 0,
                          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)
/*159833*/          /*Scope*/ 10, /*->159844*/
/*159834*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159836*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rr), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                      // Dst: (VDIVPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*159844*/          0, /*End of Scope*/
/*159845*/        /*SwitchType*/ 35, MVT::v2f64,// ->159882
/*159847*/          OPC_Scope, 10, /*->159859*/ // 3 children in Scope
/*159849*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*159851*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDrr), 0,
                          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)
/*159859*/          /*Scope*/ 10, /*->159870*/
/*159860*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*159862*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVPDrr), 0,
                          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)
/*159870*/          /*Scope*/ 10, /*->159881*/
/*159871*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159873*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rr), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                      // Dst: (VDIVPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*159881*/          0, /*End of Scope*/
/*159882*/        /*SwitchType*/ 24, MVT::v8f32,// ->159908
/*159884*/          OPC_Scope, 10, /*->159896*/ // 2 children in Scope
/*159886*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*159888*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSYrr), 0,
                          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)
/*159896*/          /*Scope*/ 10, /*->159907*/
/*159897*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159899*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rr), 0,
                          MVT::v8f32, 2/*#Ops*/, 0, 1, 
                      // Src: (fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                      // Dst: (VDIVPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*159907*/          0, /*End of Scope*/
/*159908*/        /*SwitchType*/ 24, MVT::v4f64,// ->159934
/*159910*/          OPC_Scope, 10, /*->159922*/ // 2 children in Scope
/*159912*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*159914*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDYrr), 0,
                          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)
/*159922*/          /*Scope*/ 10, /*->159933*/
/*159923*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159925*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rr), 0,
                          MVT::v4f64, 2/*#Ops*/, 0, 1, 
                      // Src: (fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                      // Dst: (VDIVPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*159933*/          0, /*End of Scope*/
/*159934*/        /*SwitchType*/ 10, MVT::v16f32,// ->159946
/*159936*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159938*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrr), 0,
                        MVT::v16f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                    // Dst: (VDIVPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*159946*/        /*SwitchType*/ 10, MVT::v8f64,// ->159958
/*159948*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159950*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrr), 0,
                        MVT::v8f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                    // Dst: (VDIVPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*159958*/        0, // EndSwitchType
/*159959*/      0, /*End of Scope*/
/*159960*/    0, /*End of Scope*/
/*159961*/  /*SwitchOpcode*/ 40|128,21/*2728*/, TARGET_VAL(ISD::FMA),// ->162693
/*159965*/    OPC_Scope, 75, /*->160042*/ // 21 children in Scope
/*159967*/      OPC_RecordChild0, // #0 = $src2
/*159968*/      OPC_Scope, 35, /*->160005*/ // 2 children in Scope
/*159970*/        OPC_RecordChild1, // #1 = $src1
/*159971*/        OPC_MoveChild2,
/*159972*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159975*/        OPC_RecordMemRef,
/*159976*/        OPC_RecordNode, // #2 = 'ld' chained node
/*159977*/        OPC_CheckFoldableChainNode,
/*159978*/        OPC_RecordChild1, // #3 = $src3
/*159979*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159981*/        OPC_CheckPredicate, 9, // Predicate_load
/*159983*/        OPC_MoveParent,
/*159984*/        OPC_CheckType, MVT::f32,
/*159986*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*159988*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159991*/        OPC_EmitMergeInputChains1_2,
/*159992*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADD213SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160005*/      /*Scope*/ 35, /*->160041*/
/*160006*/        OPC_MoveChild1,
/*160007*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160010*/        OPC_RecordMemRef,
/*160011*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160012*/        OPC_CheckFoldableChainNode,
/*160013*/        OPC_RecordChild1, // #2 = $src3
/*160014*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160016*/        OPC_CheckPredicate, 9, // Predicate_load
/*160018*/        OPC_MoveParent,
/*160019*/        OPC_RecordChild2, // #3 = $src1
/*160020*/        OPC_CheckType, MVT::f32,
/*160022*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*160024*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160027*/        OPC_EmitMergeInputChains1_1,
/*160028*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160041*/      0, /*End of Scope*/
/*160042*/    /*Scope*/ 36, /*->160079*/
/*160043*/      OPC_MoveChild0,
/*160044*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160047*/      OPC_RecordMemRef,
/*160048*/      OPC_RecordNode, // #0 = 'ld' chained node
/*160049*/      OPC_CheckFoldableChainNode,
/*160050*/      OPC_RecordChild1, // #1 = $src3
/*160051*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160053*/      OPC_CheckPredicate, 9, // Predicate_load
/*160055*/      OPC_MoveParent,
/*160056*/      OPC_RecordChild1, // #2 = $src1
/*160057*/      OPC_RecordChild2, // #3 = $src2
/*160058*/      OPC_CheckType, MVT::f32,
/*160060*/      OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*160062*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160065*/      OPC_EmitMergeInputChains1_0,
/*160066*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 25
                // Dst: (VFMADD132SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160079*/    /*Scope*/ 75, /*->160155*/
/*160080*/      OPC_RecordChild0, // #0 = $src2
/*160081*/      OPC_Scope, 35, /*->160118*/ // 2 children in Scope
/*160083*/        OPC_RecordChild1, // #1 = $src1
/*160084*/        OPC_MoveChild2,
/*160085*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160088*/        OPC_RecordMemRef,
/*160089*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160090*/        OPC_CheckFoldableChainNode,
/*160091*/        OPC_RecordChild1, // #3 = $src3
/*160092*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160094*/        OPC_CheckPredicate, 9, // Predicate_load
/*160096*/        OPC_MoveParent,
/*160097*/        OPC_CheckType, MVT::f64,
/*160099*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*160101*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160104*/        OPC_EmitMergeInputChains1_2,
/*160105*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADD213SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160118*/      /*Scope*/ 35, /*->160154*/
/*160119*/        OPC_MoveChild1,
/*160120*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160123*/        OPC_RecordMemRef,
/*160124*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160125*/        OPC_CheckFoldableChainNode,
/*160126*/        OPC_RecordChild1, // #2 = $src3
/*160127*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160129*/        OPC_CheckPredicate, 9, // Predicate_load
/*160131*/        OPC_MoveParent,
/*160132*/        OPC_RecordChild2, // #3 = $src1
/*160133*/        OPC_CheckType, MVT::f64,
/*160135*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*160137*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160140*/        OPC_EmitMergeInputChains1_1,
/*160141*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160154*/      0, /*End of Scope*/
/*160155*/    /*Scope*/ 36, /*->160192*/
/*160156*/      OPC_MoveChild0,
/*160157*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160160*/      OPC_RecordMemRef,
/*160161*/      OPC_RecordNode, // #0 = 'ld' chained node
/*160162*/      OPC_CheckFoldableChainNode,
/*160163*/      OPC_RecordChild1, // #1 = $src3
/*160164*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160166*/      OPC_CheckPredicate, 9, // Predicate_load
/*160168*/      OPC_MoveParent,
/*160169*/      OPC_RecordChild1, // #2 = $src1
/*160170*/      OPC_RecordChild2, // #3 = $src2
/*160171*/      OPC_CheckType, MVT::f64,
/*160173*/      OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*160175*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160178*/      OPC_EmitMergeInputChains1_0,
/*160179*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 25
                // Dst: (VFMADD132SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160192*/    /*Scope*/ 91|128,1/*219*/, /*->160413*/
/*160194*/      OPC_RecordChild0, // #0 = $src1
/*160195*/      OPC_Scope, 35, /*->160232*/ // 6 children in Scope
/*160197*/        OPC_RecordChild1, // #1 = $src2
/*160198*/        OPC_MoveChild2,
/*160199*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160202*/        OPC_RecordMemRef,
/*160203*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160204*/        OPC_CheckFoldableChainNode,
/*160205*/        OPC_RecordChild1, // #3 = $src3
/*160206*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160208*/        OPC_CheckPredicate, 9, // Predicate_load
/*160210*/        OPC_MoveParent,
/*160211*/        OPC_CheckType, MVT::f32,
/*160213*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160215*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160218*/        OPC_EmitMergeInputChains1_2,
/*160219*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADDSS4rm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160232*/      /*Scope*/ 35, /*->160268*/
/*160233*/        OPC_MoveChild1,
/*160234*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160237*/        OPC_RecordMemRef,
/*160238*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160239*/        OPC_CheckFoldableChainNode,
/*160240*/        OPC_RecordChild1, // #2 = $src2
/*160241*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160243*/        OPC_CheckPredicate, 9, // Predicate_load
/*160245*/        OPC_MoveParent,
/*160246*/        OPC_RecordChild2, // #3 = $src3
/*160247*/        OPC_CheckType, MVT::f32,
/*160249*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160251*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*160254*/        OPC_EmitMergeInputChains1_1,
/*160255*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDSS4mr:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, FR32:{ *:[f32] }:$src3)
/*160268*/      /*Scope*/ 35, /*->160304*/
/*160269*/        OPC_RecordChild1, // #1 = $src2
/*160270*/        OPC_MoveChild2,
/*160271*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160274*/        OPC_RecordMemRef,
/*160275*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160276*/        OPC_CheckFoldableChainNode,
/*160277*/        OPC_RecordChild1, // #3 = $src3
/*160278*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160280*/        OPC_CheckPredicate, 9, // Predicate_load
/*160282*/        OPC_MoveParent,
/*160283*/        OPC_CheckType, MVT::f64,
/*160285*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160287*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160290*/        OPC_EmitMergeInputChains1_2,
/*160291*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADDSD4rm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160304*/      /*Scope*/ 35, /*->160340*/
/*160305*/        OPC_MoveChild1,
/*160306*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160309*/        OPC_RecordMemRef,
/*160310*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160311*/        OPC_CheckFoldableChainNode,
/*160312*/        OPC_RecordChild1, // #2 = $src2
/*160313*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160315*/        OPC_CheckPredicate, 9, // Predicate_load
/*160317*/        OPC_MoveParent,
/*160318*/        OPC_RecordChild2, // #3 = $src3
/*160319*/        OPC_CheckType, MVT::f64,
/*160321*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160323*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*160326*/        OPC_EmitMergeInputChains1_1,
/*160327*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src3) - Complexity = 25
                  // Dst: (VFMADDSD4mr:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, FR64:{ *:[f64] }:$src3)
/*160340*/      /*Scope*/ 35, /*->160376*/
/*160341*/        OPC_RecordChild1, // #1 = $src1
/*160342*/        OPC_MoveChild2,
/*160343*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160346*/        OPC_RecordMemRef,
/*160347*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160348*/        OPC_CheckFoldableChainNode,
/*160349*/        OPC_RecordChild1, // #3 = $src3
/*160350*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160352*/        OPC_CheckPredicate, 9, // Predicate_load
/*160354*/        OPC_MoveParent,
/*160355*/        OPC_CheckType, MVT::f32,
/*160357*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160359*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160362*/        OPC_EmitMergeInputChains1_2,
/*160363*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADD213SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160376*/      /*Scope*/ 35, /*->160412*/
/*160377*/        OPC_MoveChild1,
/*160378*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160381*/        OPC_RecordMemRef,
/*160382*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160383*/        OPC_CheckFoldableChainNode,
/*160384*/        OPC_RecordChild1, // #2 = $src3
/*160385*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160387*/        OPC_CheckPredicate, 9, // Predicate_load
/*160389*/        OPC_MoveParent,
/*160390*/        OPC_RecordChild2, // #3 = $src1
/*160391*/        OPC_CheckType, MVT::f32,
/*160393*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160395*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160398*/        OPC_EmitMergeInputChains1_1,
/*160399*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160412*/      0, /*End of Scope*/
/*160413*/    /*Scope*/ 36, /*->160450*/
/*160414*/      OPC_MoveChild0,
/*160415*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160418*/      OPC_RecordMemRef,
/*160419*/      OPC_RecordNode, // #0 = 'ld' chained node
/*160420*/      OPC_CheckFoldableChainNode,
/*160421*/      OPC_RecordChild1, // #1 = $src3
/*160422*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160424*/      OPC_CheckPredicate, 9, // Predicate_load
/*160426*/      OPC_MoveParent,
/*160427*/      OPC_RecordChild1, // #2 = $src1
/*160428*/      OPC_RecordChild2, // #3 = $src2
/*160429*/      OPC_CheckType, MVT::f32,
/*160431*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160433*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160436*/      OPC_EmitMergeInputChains1_0,
/*160437*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 25
                // Dst: (VFMADD132SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160450*/    /*Scope*/ 75, /*->160526*/
/*160451*/      OPC_RecordChild0, // #0 = $src2
/*160452*/      OPC_Scope, 35, /*->160489*/ // 2 children in Scope
/*160454*/        OPC_RecordChild1, // #1 = $src1
/*160455*/        OPC_MoveChild2,
/*160456*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160459*/        OPC_RecordMemRef,
/*160460*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160461*/        OPC_CheckFoldableChainNode,
/*160462*/        OPC_RecordChild1, // #3 = $src3
/*160463*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160465*/        OPC_CheckPredicate, 9, // Predicate_load
/*160467*/        OPC_MoveParent,
/*160468*/        OPC_CheckType, MVT::f64,
/*160470*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160472*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160475*/        OPC_EmitMergeInputChains1_2,
/*160476*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADD213SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160489*/      /*Scope*/ 35, /*->160525*/
/*160490*/        OPC_MoveChild1,
/*160491*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160494*/        OPC_RecordMemRef,
/*160495*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160496*/        OPC_CheckFoldableChainNode,
/*160497*/        OPC_RecordChild1, // #2 = $src3
/*160498*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160500*/        OPC_CheckPredicate, 9, // Predicate_load
/*160502*/        OPC_MoveParent,
/*160503*/        OPC_RecordChild2, // #3 = $src1
/*160504*/        OPC_CheckType, MVT::f64,
/*160506*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160508*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160511*/        OPC_EmitMergeInputChains1_1,
/*160512*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160525*/      0, /*End of Scope*/
/*160526*/    /*Scope*/ 82, /*->160609*/
/*160527*/      OPC_MoveChild0,
/*160528*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160531*/      OPC_RecordMemRef,
/*160532*/      OPC_RecordNode, // #0 = 'ld' chained node
/*160533*/      OPC_CheckFoldableChainNode,
/*160534*/      OPC_RecordChild1, // #1 = $src3
/*160535*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160537*/      OPC_CheckPredicate, 9, // Predicate_load
/*160539*/      OPC_MoveParent,
/*160540*/      OPC_RecordChild1, // #2 = $src1
/*160541*/      OPC_RecordChild2, // #3 = $src2
/*160542*/      OPC_SwitchType /*2 cases */, 42, MVT::f64,// ->160587
/*160545*/        OPC_Scope, 19, /*->160566*/ // 2 children in Scope
/*160547*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160549*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160552*/          OPC_EmitMergeInputChains1_0,
/*160553*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 25
                    // Dst: (VFMADD132SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160566*/        /*Scope*/ 19, /*->160586*/
/*160567*/          OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160569*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*160572*/          OPC_EmitMergeInputChains1_0,
/*160573*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3) - Complexity = 25
                    // Dst: (VFMADDSD4mr:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, FR64:{ *:[f64] }:$src3)
/*160586*/        0, /*End of Scope*/
/*160587*/      /*SwitchType*/ 19, MVT::f32,// ->160608
/*160589*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160591*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*160594*/        OPC_EmitMergeInputChains1_0,
/*160595*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDSS4mr:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, FR32:{ *:[f32] }:$src3)
/*160608*/      0, // EndSwitchType
/*160609*/    /*Scope*/ 26|128,3/*410*/, /*->161021*/
/*160611*/      OPC_RecordChild0, // #0 = $src2
/*160612*/      OPC_Scope, 117|128,1/*245*/, /*->160860*/ // 2 children in Scope
/*160615*/        OPC_RecordChild1, // #1 = $src1
/*160616*/        OPC_Scope, 83, /*->160701*/ // 2 children in Scope
/*160618*/          OPC_RecordChild2, // #2 = $src3
/*160619*/          OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->160660
/*160622*/            OPC_Scope, 11, /*->160635*/ // 3 children in Scope
/*160624*/              OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*160626*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSr), 0,
                            MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFMADD213SSr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3)
/*160635*/            /*Scope*/ 11, /*->160647*/
/*160636*/              OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160638*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4rr), 0,
                            MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFMADDSS4rr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3)
/*160647*/            /*Scope*/ 11, /*->160659*/
/*160648*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160650*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr), 0,
                            MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFMADD213SSZr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3)
/*160659*/            0, /*End of Scope*/
/*160660*/          /*SwitchType*/ 38, MVT::f64,// ->160700
/*160662*/            OPC_Scope, 11, /*->160675*/ // 3 children in Scope
/*160664*/              OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*160666*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDr), 0,
                            MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFMADD213SDr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3)
/*160675*/            /*Scope*/ 11, /*->160687*/
/*160676*/              OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160678*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4rr), 0,
                            MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFMADDSD4rr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3)
/*160687*/            /*Scope*/ 11, /*->160699*/
/*160688*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160690*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr), 0,
                            MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFMADD213SDZr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3)
/*160699*/            0, /*End of Scope*/
/*160700*/          0, // EndSwitchType
/*160701*/        /*Scope*/ 28|128,1/*156*/, /*->160859*/
/*160703*/          OPC_MoveChild2,
/*160704*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*160707*/          OPC_MoveChild0,
/*160708*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160711*/          OPC_RecordMemRef,
/*160712*/          OPC_RecordNode, // #2 = 'ld' chained node
/*160713*/          OPC_CheckFoldableChainNode,
/*160714*/          OPC_RecordChild1, // #3 = $src3
/*160715*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160717*/          OPC_CheckPredicate, 9, // Predicate_load
/*160719*/          OPC_SwitchType /*2 cases */, 67, MVT::f32,// ->160789
/*160722*/            OPC_MoveParent,
/*160723*/            OPC_MoveParent,
/*160724*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->160746
/*160727*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160729*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160732*/              OPC_EmitMergeInputChains1_2,
/*160733*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMADD213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160746*/            /*SwitchType*/ 19, MVT::v8f32,// ->160767
/*160748*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*160750*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160753*/              OPC_EmitMergeInputChains1_2,
/*160754*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMADD213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160767*/            /*SwitchType*/ 19, MVT::v4f32,// ->160788
/*160769*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*160771*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160774*/              OPC_EmitMergeInputChains1_2,
/*160775*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMADD213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160788*/            0, // EndSwitchType
/*160789*/          /*SwitchType*/ 67, MVT::f64,// ->160858
/*160791*/            OPC_MoveParent,
/*160792*/            OPC_MoveParent,
/*160793*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->160815
/*160796*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160798*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160801*/              OPC_EmitMergeInputChains1_2,
/*160802*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMADD213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160815*/            /*SwitchType*/ 19, MVT::v4f64,// ->160836
/*160817*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*160819*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160822*/              OPC_EmitMergeInputChains1_2,
/*160823*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMADD213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160836*/            /*SwitchType*/ 19, MVT::v2f64,// ->160857
/*160838*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*160840*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160843*/              OPC_EmitMergeInputChains1_2,
/*160844*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMADD213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160857*/            0, // EndSwitchType
/*160858*/          0, // EndSwitchType
/*160859*/        0, /*End of Scope*/
/*160860*/      /*Scope*/ 30|128,1/*158*/, /*->161020*/
/*160862*/        OPC_MoveChild1,
/*160863*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*160866*/        OPC_MoveChild0,
/*160867*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160870*/        OPC_RecordMemRef,
/*160871*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160872*/        OPC_CheckFoldableChainNode,
/*160873*/        OPC_RecordChild1, // #2 = $src3
/*160874*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160876*/        OPC_CheckPredicate, 9, // Predicate_load
/*160878*/        OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->160949
/*160881*/          OPC_MoveParent,
/*160882*/          OPC_MoveParent,
/*160883*/          OPC_RecordChild2, // #3 = $src1
/*160884*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->160906
/*160887*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160889*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160892*/            OPC_EmitMergeInputChains1_1,
/*160893*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                      // Dst: (VFMADD231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160906*/          /*SwitchType*/ 19, MVT::v8f32,// ->160927
/*160908*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*160910*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160913*/            OPC_EmitMergeInputChains1_1,
/*160914*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                      // Dst: (VFMADD231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160927*/          /*SwitchType*/ 19, MVT::v4f32,// ->160948
/*160929*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*160931*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160934*/            OPC_EmitMergeInputChains1_1,
/*160935*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                      // Dst: (VFMADD231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160948*/          0, // EndSwitchType
/*160949*/        /*SwitchType*/ 68, MVT::f64,// ->161019
/*160951*/          OPC_MoveParent,
/*160952*/          OPC_MoveParent,
/*160953*/          OPC_RecordChild2, // #3 = $src1
/*160954*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->160976
/*160957*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160959*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160962*/            OPC_EmitMergeInputChains1_1,
/*160963*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                      // Dst: (VFMADD231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160976*/          /*SwitchType*/ 19, MVT::v4f64,// ->160997
/*160978*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*160980*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160983*/            OPC_EmitMergeInputChains1_1,
/*160984*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                      // Dst: (VFMADD231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160997*/          /*SwitchType*/ 19, MVT::v2f64,// ->161018
/*160999*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161001*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161004*/            OPC_EmitMergeInputChains1_1,
/*161005*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                      // Dst: (VFMADD231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161018*/          0, // EndSwitchType
/*161019*/        0, // EndSwitchType
/*161020*/      0, /*End of Scope*/
/*161021*/    /*Scope*/ 32|128,1/*160*/, /*->161183*/
/*161023*/      OPC_MoveChild0,
/*161024*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*161027*/      OPC_MoveChild0,
/*161028*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161031*/      OPC_RecordMemRef,
/*161032*/      OPC_RecordNode, // #0 = 'ld' chained node
/*161033*/      OPC_CheckFoldableChainNode,
/*161034*/      OPC_RecordChild1, // #1 = $src3
/*161035*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161037*/      OPC_CheckPredicate, 9, // Predicate_load
/*161039*/      OPC_SwitchType /*2 cases */, 69, MVT::f32,// ->161111
/*161042*/        OPC_MoveParent,
/*161043*/        OPC_MoveParent,
/*161044*/        OPC_RecordChild1, // #2 = $src1
/*161045*/        OPC_RecordChild2, // #3 = $src2
/*161046*/        OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->161068
/*161049*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161051*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161054*/          OPC_EmitMergeInputChains1_0,
/*161055*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 28
                    // Dst: (VFMADD132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161068*/        /*SwitchType*/ 19, MVT::v8f32,// ->161089
/*161070*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161072*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161075*/          OPC_EmitMergeInputChains1_0,
/*161076*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 28
                    // Dst: (VFMADD132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161089*/        /*SwitchType*/ 19, MVT::v4f32,// ->161110
/*161091*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161093*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161096*/          OPC_EmitMergeInputChains1_0,
/*161097*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 28
                    // Dst: (VFMADD132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161110*/        0, // EndSwitchType
/*161111*/      /*SwitchType*/ 69, MVT::f64,// ->161182
/*161113*/        OPC_MoveParent,
/*161114*/        OPC_MoveParent,
/*161115*/        OPC_RecordChild1, // #2 = $src1
/*161116*/        OPC_RecordChild2, // #3 = $src2
/*161117*/        OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->161139
/*161120*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161122*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161125*/          OPC_EmitMergeInputChains1_0,
/*161126*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 28
                    // Dst: (VFMADD132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161139*/        /*SwitchType*/ 19, MVT::v4f64,// ->161160
/*161141*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161143*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161146*/          OPC_EmitMergeInputChains1_0,
/*161147*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 28
                    // Dst: (VFMADD132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161160*/        /*SwitchType*/ 19, MVT::v2f64,// ->161181
/*161162*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161164*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161167*/          OPC_EmitMergeInputChains1_0,
/*161168*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 28
                    // Dst: (VFMADD132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161181*/        0, // EndSwitchType
/*161182*/      0, // EndSwitchType
/*161183*/    /*Scope*/ 79, /*->161263*/
/*161184*/      OPC_RecordChild0, // #0 = $src2
/*161185*/      OPC_Scope, 37, /*->161224*/ // 2 children in Scope
/*161187*/        OPC_RecordChild1, // #1 = $src1
/*161188*/        OPC_MoveChild2,
/*161189*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161192*/        OPC_RecordMemRef,
/*161193*/        OPC_RecordNode, // #2 = 'ld' chained node
/*161194*/        OPC_CheckFoldableChainNode,
/*161195*/        OPC_RecordChild1, // #3 = $src3
/*161196*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161198*/        OPC_CheckPredicate, 9, // Predicate_load
/*161200*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161202*/        OPC_MoveParent,
/*161203*/        OPC_CheckType, MVT::v4f32,
/*161205*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161207*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161210*/        OPC_EmitMergeInputChains1_2,
/*161211*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADD213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161224*/      /*Scope*/ 37, /*->161262*/
/*161225*/        OPC_MoveChild1,
/*161226*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161229*/        OPC_RecordMemRef,
/*161230*/        OPC_RecordNode, // #1 = 'ld' chained node
/*161231*/        OPC_CheckFoldableChainNode,
/*161232*/        OPC_RecordChild1, // #2 = $src3
/*161233*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161235*/        OPC_CheckPredicate, 9, // Predicate_load
/*161237*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161239*/        OPC_MoveParent,
/*161240*/        OPC_RecordChild2, // #3 = $src1
/*161241*/        OPC_CheckType, MVT::v4f32,
/*161243*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161245*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161248*/        OPC_EmitMergeInputChains1_1,
/*161249*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161262*/      0, /*End of Scope*/
/*161263*/    /*Scope*/ 38, /*->161302*/
/*161264*/      OPC_MoveChild0,
/*161265*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161268*/      OPC_RecordMemRef,
/*161269*/      OPC_RecordNode, // #0 = 'ld' chained node
/*161270*/      OPC_CheckFoldableChainNode,
/*161271*/      OPC_RecordChild1, // #1 = $src3
/*161272*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161274*/      OPC_CheckPredicate, 9, // Predicate_load
/*161276*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*161278*/      OPC_MoveParent,
/*161279*/      OPC_RecordChild1, // #2 = $src1
/*161280*/      OPC_RecordChild2, // #3 = $src2
/*161281*/      OPC_CheckType, MVT::v4f32,
/*161283*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161285*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161288*/      OPC_EmitMergeInputChains1_0,
/*161289*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161302*/    /*Scope*/ 79, /*->161382*/
/*161303*/      OPC_RecordChild0, // #0 = $src2
/*161304*/      OPC_Scope, 37, /*->161343*/ // 2 children in Scope
/*161306*/        OPC_RecordChild1, // #1 = $src1
/*161307*/        OPC_MoveChild2,
/*161308*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161311*/        OPC_RecordMemRef,
/*161312*/        OPC_RecordNode, // #2 = 'ld' chained node
/*161313*/        OPC_CheckFoldableChainNode,
/*161314*/        OPC_RecordChild1, // #3 = $src3
/*161315*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161317*/        OPC_CheckPredicate, 9, // Predicate_load
/*161319*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161321*/        OPC_MoveParent,
/*161322*/        OPC_CheckType, MVT::v8f32,
/*161324*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161326*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161329*/        OPC_EmitMergeInputChains1_2,
/*161330*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADD213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161343*/      /*Scope*/ 37, /*->161381*/
/*161344*/        OPC_MoveChild1,
/*161345*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161348*/        OPC_RecordMemRef,
/*161349*/        OPC_RecordNode, // #1 = 'ld' chained node
/*161350*/        OPC_CheckFoldableChainNode,
/*161351*/        OPC_RecordChild1, // #2 = $src3
/*161352*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161354*/        OPC_CheckPredicate, 9, // Predicate_load
/*161356*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161358*/        OPC_MoveParent,
/*161359*/        OPC_RecordChild2, // #3 = $src1
/*161360*/        OPC_CheckType, MVT::v8f32,
/*161362*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161364*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161367*/        OPC_EmitMergeInputChains1_1,
/*161368*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161381*/      0, /*End of Scope*/
/*161382*/    /*Scope*/ 38, /*->161421*/
/*161383*/      OPC_MoveChild0,
/*161384*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161387*/      OPC_RecordMemRef,
/*161388*/      OPC_RecordNode, // #0 = 'ld' chained node
/*161389*/      OPC_CheckFoldableChainNode,
/*161390*/      OPC_RecordChild1, // #1 = $src3
/*161391*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161393*/      OPC_CheckPredicate, 9, // Predicate_load
/*161395*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*161397*/      OPC_MoveParent,
/*161398*/      OPC_RecordChild1, // #2 = $src1
/*161399*/      OPC_RecordChild2, // #3 = $src2
/*161400*/      OPC_CheckType, MVT::v8f32,
/*161402*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161404*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161407*/      OPC_EmitMergeInputChains1_0,
/*161408*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161421*/    /*Scope*/ 79, /*->161501*/
/*161422*/      OPC_RecordChild0, // #0 = $src2
/*161423*/      OPC_Scope, 37, /*->161462*/ // 2 children in Scope
/*161425*/        OPC_RecordChild1, // #1 = $src1
/*161426*/        OPC_MoveChild2,
/*161427*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161430*/        OPC_RecordMemRef,
/*161431*/        OPC_RecordNode, // #2 = 'ld' chained node
/*161432*/        OPC_CheckFoldableChainNode,
/*161433*/        OPC_RecordChild1, // #3 = $src3
/*161434*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161436*/        OPC_CheckPredicate, 9, // Predicate_load
/*161438*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161440*/        OPC_MoveParent,
/*161441*/        OPC_CheckType, MVT::v2f64,
/*161443*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161445*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161448*/        OPC_EmitMergeInputChains1_2,
/*161449*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADD213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161462*/      /*Scope*/ 37, /*->161500*/
/*161463*/        OPC_MoveChild1,
/*161464*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161467*/        OPC_RecordMemRef,
/*161468*/        OPC_RecordNode, // #1 = 'ld' chained node
/*161469*/        OPC_CheckFoldableChainNode,
/*161470*/        OPC_RecordChild1, // #2 = $src3
/*161471*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161473*/        OPC_CheckPredicate, 9, // Predicate_load
/*161475*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161477*/        OPC_MoveParent,
/*161478*/        OPC_RecordChild2, // #3 = $src1
/*161479*/        OPC_CheckType, MVT::v2f64,
/*161481*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161483*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161486*/        OPC_EmitMergeInputChains1_1,
/*161487*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161500*/      0, /*End of Scope*/
/*161501*/    /*Scope*/ 38, /*->161540*/
/*161502*/      OPC_MoveChild0,
/*161503*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161506*/      OPC_RecordMemRef,
/*161507*/      OPC_RecordNode, // #0 = 'ld' chained node
/*161508*/      OPC_CheckFoldableChainNode,
/*161509*/      OPC_RecordChild1, // #1 = $src3
/*161510*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161512*/      OPC_CheckPredicate, 9, // Predicate_load
/*161514*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*161516*/      OPC_MoveParent,
/*161517*/      OPC_RecordChild1, // #2 = $src1
/*161518*/      OPC_RecordChild2, // #3 = $src2
/*161519*/      OPC_CheckType, MVT::v2f64,
/*161521*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161523*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161526*/      OPC_EmitMergeInputChains1_0,
/*161527*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161540*/    /*Scope*/ 79, /*->161620*/
/*161541*/      OPC_RecordChild0, // #0 = $src2
/*161542*/      OPC_Scope, 37, /*->161581*/ // 2 children in Scope
/*161544*/        OPC_RecordChild1, // #1 = $src1
/*161545*/        OPC_MoveChild2,
/*161546*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161549*/        OPC_RecordMemRef,
/*161550*/        OPC_RecordNode, // #2 = 'ld' chained node
/*161551*/        OPC_CheckFoldableChainNode,
/*161552*/        OPC_RecordChild1, // #3 = $src3
/*161553*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161555*/        OPC_CheckPredicate, 9, // Predicate_load
/*161557*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161559*/        OPC_MoveParent,
/*161560*/        OPC_CheckType, MVT::v4f64,
/*161562*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161564*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161567*/        OPC_EmitMergeInputChains1_2,
/*161568*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADD213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161581*/      /*Scope*/ 37, /*->161619*/
/*161582*/        OPC_MoveChild1,
/*161583*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161586*/        OPC_RecordMemRef,
/*161587*/        OPC_RecordNode, // #1 = 'ld' chained node
/*161588*/        OPC_CheckFoldableChainNode,
/*161589*/        OPC_RecordChild1, // #2 = $src3
/*161590*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161592*/        OPC_CheckPredicate, 9, // Predicate_load
/*161594*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161596*/        OPC_MoveParent,
/*161597*/        OPC_RecordChild2, // #3 = $src1
/*161598*/        OPC_CheckType, MVT::v4f64,
/*161600*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161602*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161605*/        OPC_EmitMergeInputChains1_1,
/*161606*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161619*/      0, /*End of Scope*/
/*161620*/    /*Scope*/ 38, /*->161659*/
/*161621*/      OPC_MoveChild0,
/*161622*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161625*/      OPC_RecordMemRef,
/*161626*/      OPC_RecordNode, // #0 = 'ld' chained node
/*161627*/      OPC_CheckFoldableChainNode,
/*161628*/      OPC_RecordChild1, // #1 = $src3
/*161629*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161631*/      OPC_CheckPredicate, 9, // Predicate_load
/*161633*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*161635*/      OPC_MoveParent,
/*161636*/      OPC_RecordChild1, // #2 = $src1
/*161637*/      OPC_RecordChild2, // #3 = $src2
/*161638*/      OPC_CheckType, MVT::v4f64,
/*161640*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161642*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161645*/      OPC_EmitMergeInputChains1_0,
/*161646*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161659*/    /*Scope*/ 87|128,4/*599*/, /*->162260*/
/*161661*/      OPC_RecordChild0, // #0 = $src1
/*161662*/      OPC_Scope, 37, /*->161701*/ // 10 children in Scope
/*161664*/        OPC_RecordChild1, // #1 = $src2
/*161665*/        OPC_MoveChild2,
/*161666*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161669*/        OPC_RecordMemRef,
/*161670*/        OPC_RecordNode, // #2 = 'ld' chained node
/*161671*/        OPC_CheckFoldableChainNode,
/*161672*/        OPC_RecordChild1, // #3 = $src3
/*161673*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161675*/        OPC_CheckPredicate, 9, // Predicate_load
/*161677*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161679*/        OPC_MoveParent,
/*161680*/        OPC_CheckType, MVT::v4f32,
/*161682*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161684*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161687*/        OPC_EmitMergeInputChains1_2,
/*161688*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161701*/      /*Scope*/ 37, /*->161739*/
/*161702*/        OPC_MoveChild1,
/*161703*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161706*/        OPC_RecordMemRef,
/*161707*/        OPC_RecordNode, // #1 = 'ld' chained node
/*161708*/        OPC_CheckFoldableChainNode,
/*161709*/        OPC_RecordChild1, // #2 = $src2
/*161710*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161712*/        OPC_CheckPredicate, 9, // Predicate_load
/*161714*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161716*/        OPC_MoveParent,
/*161717*/        OPC_RecordChild2, // #3 = $src3
/*161718*/        OPC_CheckType, MVT::v4f32,
/*161720*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161722*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*161725*/        OPC_EmitMergeInputChains1_1,
/*161726*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*161739*/      /*Scope*/ 37, /*->161777*/
/*161740*/        OPC_RecordChild1, // #1 = $src2
/*161741*/        OPC_MoveChild2,
/*161742*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161745*/        OPC_RecordMemRef,
/*161746*/        OPC_RecordNode, // #2 = 'ld' chained node
/*161747*/        OPC_CheckFoldableChainNode,
/*161748*/        OPC_RecordChild1, // #3 = $src3
/*161749*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161751*/        OPC_CheckPredicate, 9, // Predicate_load
/*161753*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161755*/        OPC_MoveParent,
/*161756*/        OPC_CheckType, MVT::v8f32,
/*161758*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161760*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161763*/        OPC_EmitMergeInputChains1_2,
/*161764*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161777*/      /*Scope*/ 37, /*->161815*/
/*161778*/        OPC_MoveChild1,
/*161779*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161782*/        OPC_RecordMemRef,
/*161783*/        OPC_RecordNode, // #1 = 'ld' chained node
/*161784*/        OPC_CheckFoldableChainNode,
/*161785*/        OPC_RecordChild1, // #2 = $src2
/*161786*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161788*/        OPC_CheckPredicate, 9, // Predicate_load
/*161790*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161792*/        OPC_MoveParent,
/*161793*/        OPC_RecordChild2, // #3 = $src3
/*161794*/        OPC_CheckType, MVT::v8f32,
/*161796*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161798*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*161801*/        OPC_EmitMergeInputChains1_1,
/*161802*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*161815*/      /*Scope*/ 37, /*->161853*/
/*161816*/        OPC_RecordChild1, // #1 = $src2
/*161817*/        OPC_MoveChild2,
/*161818*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161821*/        OPC_RecordMemRef,
/*161822*/        OPC_RecordNode, // #2 = 'ld' chained node
/*161823*/        OPC_CheckFoldableChainNode,
/*161824*/        OPC_RecordChild1, // #3 = $src3
/*161825*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161827*/        OPC_CheckPredicate, 9, // Predicate_load
/*161829*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161831*/        OPC_MoveParent,
/*161832*/        OPC_CheckType, MVT::v2f64,
/*161834*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161836*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161839*/        OPC_EmitMergeInputChains1_2,
/*161840*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161853*/      /*Scope*/ 37, /*->161891*/
/*161854*/        OPC_MoveChild1,
/*161855*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161858*/        OPC_RecordMemRef,
/*161859*/        OPC_RecordNode, // #1 = 'ld' chained node
/*161860*/        OPC_CheckFoldableChainNode,
/*161861*/        OPC_RecordChild1, // #2 = $src2
/*161862*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161864*/        OPC_CheckPredicate, 9, // Predicate_load
/*161866*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161868*/        OPC_MoveParent,
/*161869*/        OPC_RecordChild2, // #3 = $src3
/*161870*/        OPC_CheckType, MVT::v2f64,
/*161872*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161874*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*161877*/        OPC_EmitMergeInputChains1_1,
/*161878*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*161891*/      /*Scope*/ 37, /*->161929*/
/*161892*/        OPC_RecordChild1, // #1 = $src2
/*161893*/        OPC_MoveChild2,
/*161894*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161897*/        OPC_RecordMemRef,
/*161898*/        OPC_RecordNode, // #2 = 'ld' chained node
/*161899*/        OPC_CheckFoldableChainNode,
/*161900*/        OPC_RecordChild1, // #3 = $src3
/*161901*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161903*/        OPC_CheckPredicate, 9, // Predicate_load
/*161905*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161907*/        OPC_MoveParent,
/*161908*/        OPC_CheckType, MVT::v4f64,
/*161910*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161912*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161915*/        OPC_EmitMergeInputChains1_2,
/*161916*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161929*/      /*Scope*/ 37, /*->161967*/
/*161930*/        OPC_MoveChild1,
/*161931*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161934*/        OPC_RecordMemRef,
/*161935*/        OPC_RecordNode, // #1 = 'ld' chained node
/*161936*/        OPC_CheckFoldableChainNode,
/*161937*/        OPC_RecordChild1, // #2 = $src2
/*161938*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161940*/        OPC_CheckPredicate, 9, // Predicate_load
/*161942*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161944*/        OPC_MoveParent,
/*161945*/        OPC_RecordChild2, // #3 = $src3
/*161946*/        OPC_CheckType, MVT::v4f64,
/*161948*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161950*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*161953*/        OPC_EmitMergeInputChains1_1,
/*161954*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*161967*/      /*Scope*/ 16|128,1/*144*/, /*->162113*/
/*161969*/        OPC_RecordChild1, // #1 = $src1
/*161970*/        OPC_MoveChild2,
/*161971*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*161974*/        OPC_RecordMemRef,
/*161975*/        OPC_RecordNode, // #2 = 'ld' chained node
/*161976*/        OPC_CheckFoldableChainNode,
/*161977*/        OPC_RecordChild1, // #3 = $src3
/*161978*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161980*/        OPC_CheckPredicate, 9, // Predicate_load
/*161982*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*161984*/        OPC_MoveParent,
/*161985*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->162007
/*161988*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161990*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161993*/          OPC_EmitMergeInputChains1_2,
/*161994*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADD213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162007*/        /*SwitchType*/ 19, MVT::v8f32,// ->162028
/*162009*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162011*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162014*/          OPC_EmitMergeInputChains1_2,
/*162015*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADD213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162028*/        /*SwitchType*/ 19, MVT::v4f32,// ->162049
/*162030*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162032*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162035*/          OPC_EmitMergeInputChains1_2,
/*162036*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADD213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162049*/        /*SwitchType*/ 19, MVT::v8f64,// ->162070
/*162051*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162053*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162056*/          OPC_EmitMergeInputChains1_2,
/*162057*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADD213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162070*/        /*SwitchType*/ 19, MVT::v4f64,// ->162091
/*162072*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162074*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162077*/          OPC_EmitMergeInputChains1_2,
/*162078*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADD213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162091*/        /*SwitchType*/ 19, MVT::v2f64,// ->162112
/*162093*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162095*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162098*/          OPC_EmitMergeInputChains1_2,
/*162099*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADD213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162112*/        0, // EndSwitchType
/*162113*/      /*Scope*/ 16|128,1/*144*/, /*->162259*/
/*162115*/        OPC_MoveChild1,
/*162116*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*162119*/        OPC_RecordMemRef,
/*162120*/        OPC_RecordNode, // #1 = 'ld' chained node
/*162121*/        OPC_CheckFoldableChainNode,
/*162122*/        OPC_RecordChild1, // #2 = $src3
/*162123*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162125*/        OPC_CheckPredicate, 9, // Predicate_load
/*162127*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*162129*/        OPC_MoveParent,
/*162130*/        OPC_RecordChild2, // #3 = $src1
/*162131*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->162153
/*162134*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162136*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162139*/          OPC_EmitMergeInputChains1_1,
/*162140*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VFMADD231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162153*/        /*SwitchType*/ 19, MVT::v8f32,// ->162174
/*162155*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162157*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162160*/          OPC_EmitMergeInputChains1_1,
/*162161*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VFMADD231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162174*/        /*SwitchType*/ 19, MVT::v4f32,// ->162195
/*162176*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162178*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162181*/          OPC_EmitMergeInputChains1_1,
/*162182*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VFMADD231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162195*/        /*SwitchType*/ 19, MVT::v8f64,// ->162216
/*162197*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162199*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162202*/          OPC_EmitMergeInputChains1_1,
/*162203*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VFMADD231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162216*/        /*SwitchType*/ 19, MVT::v4f64,// ->162237
/*162218*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162220*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162223*/          OPC_EmitMergeInputChains1_1,
/*162224*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VFMADD231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162237*/        /*SwitchType*/ 19, MVT::v2f64,// ->162258
/*162239*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162241*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162244*/          OPC_EmitMergeInputChains1_1,
/*162245*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VFMADD231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162258*/        0, // EndSwitchType
/*162259*/      0, /*End of Scope*/
/*162260*/    /*Scope*/ 109|128,1/*237*/, /*->162499*/
/*162262*/      OPC_MoveChild0,
/*162263*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*162266*/      OPC_RecordMemRef,
/*162267*/      OPC_RecordNode, // #0 = 'ld' chained node
/*162268*/      OPC_CheckFoldableChainNode,
/*162269*/      OPC_RecordChild1, // #1 = $src3
/*162270*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162272*/      OPC_CheckPredicate, 9, // Predicate_load
/*162274*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*162276*/      OPC_MoveParent,
/*162277*/      OPC_RecordChild1, // #2 = $src1
/*162278*/      OPC_RecordChild2, // #3 = $src2
/*162279*/      OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->162301
/*162282*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162284*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162287*/        OPC_EmitMergeInputChains1_0,
/*162288*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                  // Dst: (VFMADD132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162301*/      /*SwitchType*/ 42, MVT::v8f32,// ->162345
/*162303*/        OPC_Scope, 19, /*->162324*/ // 2 children in Scope
/*162305*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162307*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162310*/          OPC_EmitMergeInputChains1_0,
/*162311*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                    // Dst: (VFMADD132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162324*/        /*Scope*/ 19, /*->162344*/
/*162325*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162327*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*162330*/          OPC_EmitMergeInputChains1_0,
/*162331*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                    // Dst: (VFMADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*162344*/        0, /*End of Scope*/
/*162345*/      /*SwitchType*/ 42, MVT::v4f32,// ->162389
/*162347*/        OPC_Scope, 19, /*->162368*/ // 2 children in Scope
/*162349*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162351*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162354*/          OPC_EmitMergeInputChains1_0,
/*162355*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                    // Dst: (VFMADD132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162368*/        /*Scope*/ 19, /*->162388*/
/*162369*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162371*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*162374*/          OPC_EmitMergeInputChains1_0,
/*162375*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                    // Dst: (VFMADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*162388*/        0, /*End of Scope*/
/*162389*/      /*SwitchType*/ 19, MVT::v8f64,// ->162410
/*162391*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162393*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162396*/        OPC_EmitMergeInputChains1_0,
/*162397*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                  // Dst: (VFMADD132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162410*/      /*SwitchType*/ 42, MVT::v4f64,// ->162454
/*162412*/        OPC_Scope, 19, /*->162433*/ // 2 children in Scope
/*162414*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162416*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162419*/          OPC_EmitMergeInputChains1_0,
/*162420*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                    // Dst: (VFMADD132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162433*/        /*Scope*/ 19, /*->162453*/
/*162434*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162436*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*162439*/          OPC_EmitMergeInputChains1_0,
/*162440*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                    // Dst: (VFMADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*162453*/        0, /*End of Scope*/
/*162454*/      /*SwitchType*/ 42, MVT::v2f64,// ->162498
/*162456*/        OPC_Scope, 19, /*->162477*/ // 2 children in Scope
/*162458*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162460*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162463*/          OPC_EmitMergeInputChains1_0,
/*162464*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                    // Dst: (VFMADD132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162477*/        /*Scope*/ 19, /*->162497*/
/*162478*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162480*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*162483*/          OPC_EmitMergeInputChains1_0,
/*162484*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                    // Dst: (VFMADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*162497*/        0, /*End of Scope*/
/*162498*/      0, // EndSwitchType
/*162499*/    /*Scope*/ 63|128,1/*191*/, /*->162692*/
/*162501*/      OPC_RecordChild0, // #0 = $src2
/*162502*/      OPC_RecordChild1, // #1 = $src1
/*162503*/      OPC_RecordChild2, // #2 = $src3
/*162504*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->162545
/*162507*/        OPC_Scope, 11, /*->162520*/ // 3 children in Scope
/*162509*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162511*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSr), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*162520*/        /*Scope*/ 11, /*->162532*/
/*162521*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162523*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4rr), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADDPS4rr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*162532*/        /*Scope*/ 11, /*->162544*/
/*162533*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162535*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128r), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*162544*/        0, /*End of Scope*/
/*162545*/      /*SwitchType*/ 38, MVT::v8f32,// ->162585
/*162547*/        OPC_Scope, 11, /*->162560*/ // 3 children in Scope
/*162549*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162551*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSYr), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*162560*/        /*Scope*/ 11, /*->162572*/
/*162561*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162563*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4Yrr), 0,
                        MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADDPS4Yrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*162572*/        /*Scope*/ 11, /*->162584*/
/*162573*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162575*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256r), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*162584*/        0, /*End of Scope*/
/*162585*/      /*SwitchType*/ 38, MVT::v2f64,// ->162625
/*162587*/        OPC_Scope, 11, /*->162600*/ // 3 children in Scope
/*162589*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162591*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDr), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*162600*/        /*Scope*/ 11, /*->162612*/
/*162601*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162603*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4rr), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADDPD4rr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*162612*/        /*Scope*/ 11, /*->162624*/
/*162613*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162615*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128r), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*162624*/        0, /*End of Scope*/
/*162625*/      /*SwitchType*/ 38, MVT::v4f64,// ->162665
/*162627*/        OPC_Scope, 11, /*->162640*/ // 3 children in Scope
/*162629*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162631*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDYr), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*162640*/        /*Scope*/ 11, /*->162652*/
/*162641*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162643*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4Yrr), 0,
                        MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADDPD4Yrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*162652*/        /*Scope*/ 11, /*->162664*/
/*162653*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162655*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256r), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*162664*/        0, /*End of Scope*/
/*162665*/      /*SwitchType*/ 11, MVT::v16f32,// ->162678
/*162667*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162669*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZr), 0,
                      MVT::v16f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3) - Complexity = 3
                  // Dst: (VFMADD213PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*162678*/      /*SwitchType*/ 11, MVT::v8f64,// ->162691
/*162680*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162682*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZr), 0,
                      MVT::v8f64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3) - Complexity = 3
                  // Dst: (VFMADD213PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*162691*/      0, // EndSwitchType
/*162692*/    0, /*End of Scope*/
/*162693*/  /*SwitchOpcode*/ 40|128,21/*2728*/, TARGET_VAL(X86ISD::FMSUB),// ->165425
/*162697*/    OPC_Scope, 75, /*->162774*/ // 21 children in Scope
/*162699*/      OPC_RecordChild0, // #0 = $src2
/*162700*/      OPC_Scope, 35, /*->162737*/ // 2 children in Scope
/*162702*/        OPC_RecordChild1, // #1 = $src1
/*162703*/        OPC_MoveChild2,
/*162704*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*162707*/        OPC_RecordMemRef,
/*162708*/        OPC_RecordNode, // #2 = 'ld' chained node
/*162709*/        OPC_CheckFoldableChainNode,
/*162710*/        OPC_RecordChild1, // #3 = $src3
/*162711*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162713*/        OPC_CheckPredicate, 9, // Predicate_load
/*162715*/        OPC_MoveParent,
/*162716*/        OPC_CheckType, MVT::f32,
/*162718*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*162720*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162723*/        OPC_EmitMergeInputChains1_2,
/*162724*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMSUB213SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162737*/      /*Scope*/ 35, /*->162773*/
/*162738*/        OPC_MoveChild1,
/*162739*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*162742*/        OPC_RecordMemRef,
/*162743*/        OPC_RecordNode, // #1 = 'ld' chained node
/*162744*/        OPC_CheckFoldableChainNode,
/*162745*/        OPC_RecordChild1, // #2 = $src3
/*162746*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162748*/        OPC_CheckPredicate, 9, // Predicate_load
/*162750*/        OPC_MoveParent,
/*162751*/        OPC_RecordChild2, // #3 = $src1
/*162752*/        OPC_CheckType, MVT::f32,
/*162754*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*162756*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162759*/        OPC_EmitMergeInputChains1_1,
/*162760*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162773*/      0, /*End of Scope*/
/*162774*/    /*Scope*/ 36, /*->162811*/
/*162775*/      OPC_MoveChild0,
/*162776*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*162779*/      OPC_RecordMemRef,
/*162780*/      OPC_RecordNode, // #0 = 'ld' chained node
/*162781*/      OPC_CheckFoldableChainNode,
/*162782*/      OPC_RecordChild1, // #1 = $src3
/*162783*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162785*/      OPC_CheckPredicate, 9, // Predicate_load
/*162787*/      OPC_MoveParent,
/*162788*/      OPC_RecordChild1, // #2 = $src1
/*162789*/      OPC_RecordChild2, // #3 = $src2
/*162790*/      OPC_CheckType, MVT::f32,
/*162792*/      OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*162794*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162797*/      OPC_EmitMergeInputChains1_0,
/*162798*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 25
                // Dst: (VFMSUB132SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162811*/    /*Scope*/ 75, /*->162887*/
/*162812*/      OPC_RecordChild0, // #0 = $src2
/*162813*/      OPC_Scope, 35, /*->162850*/ // 2 children in Scope
/*162815*/        OPC_RecordChild1, // #1 = $src1
/*162816*/        OPC_MoveChild2,
/*162817*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*162820*/        OPC_RecordMemRef,
/*162821*/        OPC_RecordNode, // #2 = 'ld' chained node
/*162822*/        OPC_CheckFoldableChainNode,
/*162823*/        OPC_RecordChild1, // #3 = $src3
/*162824*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162826*/        OPC_CheckPredicate, 9, // Predicate_load
/*162828*/        OPC_MoveParent,
/*162829*/        OPC_CheckType, MVT::f64,
/*162831*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*162833*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162836*/        OPC_EmitMergeInputChains1_2,
/*162837*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMSUB213SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162850*/      /*Scope*/ 35, /*->162886*/
/*162851*/        OPC_MoveChild1,
/*162852*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*162855*/        OPC_RecordMemRef,
/*162856*/        OPC_RecordNode, // #1 = 'ld' chained node
/*162857*/        OPC_CheckFoldableChainNode,
/*162858*/        OPC_RecordChild1, // #2 = $src3
/*162859*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162861*/        OPC_CheckPredicate, 9, // Predicate_load
/*162863*/        OPC_MoveParent,
/*162864*/        OPC_RecordChild2, // #3 = $src1
/*162865*/        OPC_CheckType, MVT::f64,
/*162867*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*162869*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162872*/        OPC_EmitMergeInputChains1_1,
/*162873*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162886*/      0, /*End of Scope*/
/*162887*/    /*Scope*/ 36, /*->162924*/
/*162888*/      OPC_MoveChild0,
/*162889*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*162892*/      OPC_RecordMemRef,
/*162893*/      OPC_RecordNode, // #0 = 'ld' chained node
/*162894*/      OPC_CheckFoldableChainNode,
/*162895*/      OPC_RecordChild1, // #1 = $src3
/*162896*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162898*/      OPC_CheckPredicate, 9, // Predicate_load
/*162900*/      OPC_MoveParent,
/*162901*/      OPC_RecordChild1, // #2 = $src1
/*162902*/      OPC_RecordChild2, // #3 = $src2
/*162903*/      OPC_CheckType, MVT::f64,
/*162905*/      OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*162907*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162910*/      OPC_EmitMergeInputChains1_0,
/*162911*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 25
                // Dst: (VFMSUB132SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162924*/    /*Scope*/ 91|128,1/*219*/, /*->163145*/
/*162926*/      OPC_RecordChild0, // #0 = $src1
/*162927*/      OPC_Scope, 35, /*->162964*/ // 6 children in Scope
/*162929*/        OPC_RecordChild1, // #1 = $src2
/*162930*/        OPC_MoveChild2,
/*162931*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*162934*/        OPC_RecordMemRef,
/*162935*/        OPC_RecordNode, // #2 = 'ld' chained node
/*162936*/        OPC_CheckFoldableChainNode,
/*162937*/        OPC_RecordChild1, // #3 = $src3
/*162938*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162940*/        OPC_CheckPredicate, 9, // Predicate_load
/*162942*/        OPC_MoveParent,
/*162943*/        OPC_CheckType, MVT::f32,
/*162945*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*162947*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*162950*/        OPC_EmitMergeInputChains1_2,
/*162951*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMSUBSS4rm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*162964*/      /*Scope*/ 35, /*->163000*/
/*162965*/        OPC_MoveChild1,
/*162966*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*162969*/        OPC_RecordMemRef,
/*162970*/        OPC_RecordNode, // #1 = 'ld' chained node
/*162971*/        OPC_CheckFoldableChainNode,
/*162972*/        OPC_RecordChild1, // #2 = $src2
/*162973*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162975*/        OPC_CheckPredicate, 9, // Predicate_load
/*162977*/        OPC_MoveParent,
/*162978*/        OPC_RecordChild2, // #3 = $src3
/*162979*/        OPC_CheckType, MVT::f32,
/*162981*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*162983*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*162986*/        OPC_EmitMergeInputChains1_1,
/*162987*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBSS4mr:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, FR32:{ *:[f32] }:$src3)
/*163000*/      /*Scope*/ 35, /*->163036*/
/*163001*/        OPC_RecordChild1, // #1 = $src2
/*163002*/        OPC_MoveChild2,
/*163003*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163006*/        OPC_RecordMemRef,
/*163007*/        OPC_RecordNode, // #2 = 'ld' chained node
/*163008*/        OPC_CheckFoldableChainNode,
/*163009*/        OPC_RecordChild1, // #3 = $src3
/*163010*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163012*/        OPC_CheckPredicate, 9, // Predicate_load
/*163014*/        OPC_MoveParent,
/*163015*/        OPC_CheckType, MVT::f64,
/*163017*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*163019*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163022*/        OPC_EmitMergeInputChains1_2,
/*163023*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMSUBSD4rm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163036*/      /*Scope*/ 35, /*->163072*/
/*163037*/        OPC_MoveChild1,
/*163038*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163041*/        OPC_RecordMemRef,
/*163042*/        OPC_RecordNode, // #1 = 'ld' chained node
/*163043*/        OPC_CheckFoldableChainNode,
/*163044*/        OPC_RecordChild1, // #2 = $src2
/*163045*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163047*/        OPC_CheckPredicate, 9, // Predicate_load
/*163049*/        OPC_MoveParent,
/*163050*/        OPC_RecordChild2, // #3 = $src3
/*163051*/        OPC_CheckType, MVT::f64,
/*163053*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*163055*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*163058*/        OPC_EmitMergeInputChains1_1,
/*163059*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBSD4mr:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, FR64:{ *:[f64] }:$src3)
/*163072*/      /*Scope*/ 35, /*->163108*/
/*163073*/        OPC_RecordChild1, // #1 = $src1
/*163074*/        OPC_MoveChild2,
/*163075*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163078*/        OPC_RecordMemRef,
/*163079*/        OPC_RecordNode, // #2 = 'ld' chained node
/*163080*/        OPC_CheckFoldableChainNode,
/*163081*/        OPC_RecordChild1, // #3 = $src3
/*163082*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163084*/        OPC_CheckPredicate, 9, // Predicate_load
/*163086*/        OPC_MoveParent,
/*163087*/        OPC_CheckType, MVT::f32,
/*163089*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163091*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163094*/        OPC_EmitMergeInputChains1_2,
/*163095*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMSUB213SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163108*/      /*Scope*/ 35, /*->163144*/
/*163109*/        OPC_MoveChild1,
/*163110*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163113*/        OPC_RecordMemRef,
/*163114*/        OPC_RecordNode, // #1 = 'ld' chained node
/*163115*/        OPC_CheckFoldableChainNode,
/*163116*/        OPC_RecordChild1, // #2 = $src3
/*163117*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163119*/        OPC_CheckPredicate, 9, // Predicate_load
/*163121*/        OPC_MoveParent,
/*163122*/        OPC_RecordChild2, // #3 = $src1
/*163123*/        OPC_CheckType, MVT::f32,
/*163125*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163127*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163130*/        OPC_EmitMergeInputChains1_1,
/*163131*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163144*/      0, /*End of Scope*/
/*163145*/    /*Scope*/ 36, /*->163182*/
/*163146*/      OPC_MoveChild0,
/*163147*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163150*/      OPC_RecordMemRef,
/*163151*/      OPC_RecordNode, // #0 = 'ld' chained node
/*163152*/      OPC_CheckFoldableChainNode,
/*163153*/      OPC_RecordChild1, // #1 = $src3
/*163154*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163156*/      OPC_CheckPredicate, 9, // Predicate_load
/*163158*/      OPC_MoveParent,
/*163159*/      OPC_RecordChild1, // #2 = $src1
/*163160*/      OPC_RecordChild2, // #3 = $src2
/*163161*/      OPC_CheckType, MVT::f32,
/*163163*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163165*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163168*/      OPC_EmitMergeInputChains1_0,
/*163169*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 25
                // Dst: (VFMSUB132SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163182*/    /*Scope*/ 75, /*->163258*/
/*163183*/      OPC_RecordChild0, // #0 = $src2
/*163184*/      OPC_Scope, 35, /*->163221*/ // 2 children in Scope
/*163186*/        OPC_RecordChild1, // #1 = $src1
/*163187*/        OPC_MoveChild2,
/*163188*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163191*/        OPC_RecordMemRef,
/*163192*/        OPC_RecordNode, // #2 = 'ld' chained node
/*163193*/        OPC_CheckFoldableChainNode,
/*163194*/        OPC_RecordChild1, // #3 = $src3
/*163195*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163197*/        OPC_CheckPredicate, 9, // Predicate_load
/*163199*/        OPC_MoveParent,
/*163200*/        OPC_CheckType, MVT::f64,
/*163202*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163204*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163207*/        OPC_EmitMergeInputChains1_2,
/*163208*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMSUB213SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163221*/      /*Scope*/ 35, /*->163257*/
/*163222*/        OPC_MoveChild1,
/*163223*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163226*/        OPC_RecordMemRef,
/*163227*/        OPC_RecordNode, // #1 = 'ld' chained node
/*163228*/        OPC_CheckFoldableChainNode,
/*163229*/        OPC_RecordChild1, // #2 = $src3
/*163230*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163232*/        OPC_CheckPredicate, 9, // Predicate_load
/*163234*/        OPC_MoveParent,
/*163235*/        OPC_RecordChild2, // #3 = $src1
/*163236*/        OPC_CheckType, MVT::f64,
/*163238*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163240*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163243*/        OPC_EmitMergeInputChains1_1,
/*163244*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163257*/      0, /*End of Scope*/
/*163258*/    /*Scope*/ 82, /*->163341*/
/*163259*/      OPC_MoveChild0,
/*163260*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163263*/      OPC_RecordMemRef,
/*163264*/      OPC_RecordNode, // #0 = 'ld' chained node
/*163265*/      OPC_CheckFoldableChainNode,
/*163266*/      OPC_RecordChild1, // #1 = $src3
/*163267*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163269*/      OPC_CheckPredicate, 9, // Predicate_load
/*163271*/      OPC_MoveParent,
/*163272*/      OPC_RecordChild1, // #2 = $src1
/*163273*/      OPC_RecordChild2, // #3 = $src2
/*163274*/      OPC_SwitchType /*2 cases */, 42, MVT::f64,// ->163319
/*163277*/        OPC_Scope, 19, /*->163298*/ // 2 children in Scope
/*163279*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163281*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163284*/          OPC_EmitMergeInputChains1_0,
/*163285*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 25
                    // Dst: (VFMSUB132SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163298*/        /*Scope*/ 19, /*->163318*/
/*163299*/          OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*163301*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*163304*/          OPC_EmitMergeInputChains1_0,
/*163305*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3) - Complexity = 25
                    // Dst: (VFMSUBSD4mr:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, FR64:{ *:[f64] }:$src3)
/*163318*/        0, /*End of Scope*/
/*163319*/      /*SwitchType*/ 19, MVT::f32,// ->163340
/*163321*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*163323*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*163326*/        OPC_EmitMergeInputChains1_0,
/*163327*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBSS4mr:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, FR32:{ *:[f32] }:$src3)
/*163340*/      0, // EndSwitchType
/*163341*/    /*Scope*/ 26|128,3/*410*/, /*->163753*/
/*163343*/      OPC_RecordChild0, // #0 = $src2
/*163344*/      OPC_Scope, 117|128,1/*245*/, /*->163592*/ // 2 children in Scope
/*163347*/        OPC_RecordChild1, // #1 = $src1
/*163348*/        OPC_Scope, 83, /*->163433*/ // 2 children in Scope
/*163350*/          OPC_RecordChild2, // #2 = $src3
/*163351*/          OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->163392
/*163354*/            OPC_Scope, 11, /*->163367*/ // 3 children in Scope
/*163356*/              OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*163358*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSr), 0,
                            MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFMSUB213SSr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3)
/*163367*/            /*Scope*/ 11, /*->163379*/
/*163368*/              OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*163370*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSS4rr), 0,
                            MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFMSUBSS4rr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3)
/*163379*/            /*Scope*/ 11, /*->163391*/
/*163380*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163382*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZr), 0,
                            MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFMSUB213SSZr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3)
/*163391*/            0, /*End of Scope*/
/*163392*/          /*SwitchType*/ 38, MVT::f64,// ->163432
/*163394*/            OPC_Scope, 11, /*->163407*/ // 3 children in Scope
/*163396*/              OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*163398*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDr), 0,
                            MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFMSUB213SDr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3)
/*163407*/            /*Scope*/ 11, /*->163419*/
/*163408*/              OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*163410*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBSD4rr), 0,
                            MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFMSUBSD4rr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3)
/*163419*/            /*Scope*/ 11, /*->163431*/
/*163420*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163422*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZr), 0,
                            MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFMSUB213SDZr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3)
/*163431*/            0, /*End of Scope*/
/*163432*/          0, // EndSwitchType
/*163433*/        /*Scope*/ 28|128,1/*156*/, /*->163591*/
/*163435*/          OPC_MoveChild2,
/*163436*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*163439*/          OPC_MoveChild0,
/*163440*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163443*/          OPC_RecordMemRef,
/*163444*/          OPC_RecordNode, // #2 = 'ld' chained node
/*163445*/          OPC_CheckFoldableChainNode,
/*163446*/          OPC_RecordChild1, // #3 = $src3
/*163447*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163449*/          OPC_CheckPredicate, 9, // Predicate_load
/*163451*/          OPC_SwitchType /*2 cases */, 67, MVT::f32,// ->163521
/*163454*/            OPC_MoveParent,
/*163455*/            OPC_MoveParent,
/*163456*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->163478
/*163459*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163461*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163464*/              OPC_EmitMergeInputChains1_2,
/*163465*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMSUB213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163478*/            /*SwitchType*/ 19, MVT::v8f32,// ->163499
/*163480*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163482*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163485*/              OPC_EmitMergeInputChains1_2,
/*163486*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMSUB213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163499*/            /*SwitchType*/ 19, MVT::v4f32,// ->163520
/*163501*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163503*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163506*/              OPC_EmitMergeInputChains1_2,
/*163507*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMSUB213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163520*/            0, // EndSwitchType
/*163521*/          /*SwitchType*/ 67, MVT::f64,// ->163590
/*163523*/            OPC_MoveParent,
/*163524*/            OPC_MoveParent,
/*163525*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->163547
/*163528*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163530*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163533*/              OPC_EmitMergeInputChains1_2,
/*163534*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMSUB213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163547*/            /*SwitchType*/ 19, MVT::v4f64,// ->163568
/*163549*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163551*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163554*/              OPC_EmitMergeInputChains1_2,
/*163555*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMSUB213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163568*/            /*SwitchType*/ 19, MVT::v2f64,// ->163589
/*163570*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163572*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163575*/              OPC_EmitMergeInputChains1_2,
/*163576*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFMSUB213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163589*/            0, // EndSwitchType
/*163590*/          0, // EndSwitchType
/*163591*/        0, /*End of Scope*/
/*163592*/      /*Scope*/ 30|128,1/*158*/, /*->163752*/
/*163594*/        OPC_MoveChild1,
/*163595*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*163598*/        OPC_MoveChild0,
/*163599*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163602*/        OPC_RecordMemRef,
/*163603*/        OPC_RecordNode, // #1 = 'ld' chained node
/*163604*/        OPC_CheckFoldableChainNode,
/*163605*/        OPC_RecordChild1, // #2 = $src3
/*163606*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163608*/        OPC_CheckPredicate, 9, // Predicate_load
/*163610*/        OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->163681
/*163613*/          OPC_MoveParent,
/*163614*/          OPC_MoveParent,
/*163615*/          OPC_RecordChild2, // #3 = $src1
/*163616*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->163638
/*163619*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163621*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163624*/            OPC_EmitMergeInputChains1_1,
/*163625*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                      // Dst: (VFMSUB231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163638*/          /*SwitchType*/ 19, MVT::v8f32,// ->163659
/*163640*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163642*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163645*/            OPC_EmitMergeInputChains1_1,
/*163646*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                      // Dst: (VFMSUB231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163659*/          /*SwitchType*/ 19, MVT::v4f32,// ->163680
/*163661*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163663*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163666*/            OPC_EmitMergeInputChains1_1,
/*163667*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                      // Dst: (VFMSUB231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163680*/          0, // EndSwitchType
/*163681*/        /*SwitchType*/ 68, MVT::f64,// ->163751
/*163683*/          OPC_MoveParent,
/*163684*/          OPC_MoveParent,
/*163685*/          OPC_RecordChild2, // #3 = $src1
/*163686*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->163708
/*163689*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163691*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163694*/            OPC_EmitMergeInputChains1_1,
/*163695*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                      // Dst: (VFMSUB231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163708*/          /*SwitchType*/ 19, MVT::v4f64,// ->163729
/*163710*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163712*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163715*/            OPC_EmitMergeInputChains1_1,
/*163716*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                      // Dst: (VFMSUB231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163729*/          /*SwitchType*/ 19, MVT::v2f64,// ->163750
/*163731*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163733*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163736*/            OPC_EmitMergeInputChains1_1,
/*163737*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                      // Dst: (VFMSUB231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163750*/          0, // EndSwitchType
/*163751*/        0, // EndSwitchType
/*163752*/      0, /*End of Scope*/
/*163753*/    /*Scope*/ 32|128,1/*160*/, /*->163915*/
/*163755*/      OPC_MoveChild0,
/*163756*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*163759*/      OPC_MoveChild0,
/*163760*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163763*/      OPC_RecordMemRef,
/*163764*/      OPC_RecordNode, // #0 = 'ld' chained node
/*163765*/      OPC_CheckFoldableChainNode,
/*163766*/      OPC_RecordChild1, // #1 = $src3
/*163767*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163769*/      OPC_CheckPredicate, 9, // Predicate_load
/*163771*/      OPC_SwitchType /*2 cases */, 69, MVT::f32,// ->163843
/*163774*/        OPC_MoveParent,
/*163775*/        OPC_MoveParent,
/*163776*/        OPC_RecordChild1, // #2 = $src1
/*163777*/        OPC_RecordChild2, // #3 = $src2
/*163778*/        OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->163800
/*163781*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163783*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163786*/          OPC_EmitMergeInputChains1_0,
/*163787*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 28
                    // Dst: (VFMSUB132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163800*/        /*SwitchType*/ 19, MVT::v8f32,// ->163821
/*163802*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163804*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163807*/          OPC_EmitMergeInputChains1_0,
/*163808*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 28
                    // Dst: (VFMSUB132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163821*/        /*SwitchType*/ 19, MVT::v4f32,// ->163842
/*163823*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163825*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163828*/          OPC_EmitMergeInputChains1_0,
/*163829*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 28
                    // Dst: (VFMSUB132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163842*/        0, // EndSwitchType
/*163843*/      /*SwitchType*/ 69, MVT::f64,// ->163914
/*163845*/        OPC_MoveParent,
/*163846*/        OPC_MoveParent,
/*163847*/        OPC_RecordChild1, // #2 = $src1
/*163848*/        OPC_RecordChild2, // #3 = $src2
/*163849*/        OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->163871
/*163852*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163854*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163857*/          OPC_EmitMergeInputChains1_0,
/*163858*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 28
                    // Dst: (VFMSUB132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163871*/        /*SwitchType*/ 19, MVT::v4f64,// ->163892
/*163873*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163875*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163878*/          OPC_EmitMergeInputChains1_0,
/*163879*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 28
                    // Dst: (VFMSUB132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163892*/        /*SwitchType*/ 19, MVT::v2f64,// ->163913
/*163894*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*163896*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163899*/          OPC_EmitMergeInputChains1_0,
/*163900*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 28
                    // Dst: (VFMSUB132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163913*/        0, // EndSwitchType
/*163914*/      0, // EndSwitchType
/*163915*/    /*Scope*/ 79, /*->163995*/
/*163916*/      OPC_RecordChild0, // #0 = $src2
/*163917*/      OPC_Scope, 37, /*->163956*/ // 2 children in Scope
/*163919*/        OPC_RecordChild1, // #1 = $src1
/*163920*/        OPC_MoveChild2,
/*163921*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163924*/        OPC_RecordMemRef,
/*163925*/        OPC_RecordNode, // #2 = 'ld' chained node
/*163926*/        OPC_CheckFoldableChainNode,
/*163927*/        OPC_RecordChild1, // #3 = $src3
/*163928*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163930*/        OPC_CheckPredicate, 9, // Predicate_load
/*163932*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*163934*/        OPC_MoveParent,
/*163935*/        OPC_CheckType, MVT::v4f32,
/*163937*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*163939*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163942*/        OPC_EmitMergeInputChains1_2,
/*163943*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUB213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163956*/      /*Scope*/ 37, /*->163994*/
/*163957*/        OPC_MoveChild1,
/*163958*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163961*/        OPC_RecordMemRef,
/*163962*/        OPC_RecordNode, // #1 = 'ld' chained node
/*163963*/        OPC_CheckFoldableChainNode,
/*163964*/        OPC_RecordChild1, // #2 = $src3
/*163965*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163967*/        OPC_CheckPredicate, 9, // Predicate_load
/*163969*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*163971*/        OPC_MoveParent,
/*163972*/        OPC_RecordChild2, // #3 = $src1
/*163973*/        OPC_CheckType, MVT::v4f32,
/*163975*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*163977*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*163980*/        OPC_EmitMergeInputChains1_1,
/*163981*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*163994*/      0, /*End of Scope*/
/*163995*/    /*Scope*/ 38, /*->164034*/
/*163996*/      OPC_MoveChild0,
/*163997*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164000*/      OPC_RecordMemRef,
/*164001*/      OPC_RecordNode, // #0 = 'ld' chained node
/*164002*/      OPC_CheckFoldableChainNode,
/*164003*/      OPC_RecordChild1, // #1 = $src3
/*164004*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164006*/      OPC_CheckPredicate, 9, // Predicate_load
/*164008*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*164010*/      OPC_MoveParent,
/*164011*/      OPC_RecordChild1, // #2 = $src1
/*164012*/      OPC_RecordChild2, // #3 = $src2
/*164013*/      OPC_CheckType, MVT::v4f32,
/*164015*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164017*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164020*/      OPC_EmitMergeInputChains1_0,
/*164021*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFMSUB132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164034*/    /*Scope*/ 79, /*->164114*/
/*164035*/      OPC_RecordChild0, // #0 = $src2
/*164036*/      OPC_Scope, 37, /*->164075*/ // 2 children in Scope
/*164038*/        OPC_RecordChild1, // #1 = $src1
/*164039*/        OPC_MoveChild2,
/*164040*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164043*/        OPC_RecordMemRef,
/*164044*/        OPC_RecordNode, // #2 = 'ld' chained node
/*164045*/        OPC_CheckFoldableChainNode,
/*164046*/        OPC_RecordChild1, // #3 = $src3
/*164047*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164049*/        OPC_CheckPredicate, 9, // Predicate_load
/*164051*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164053*/        OPC_MoveParent,
/*164054*/        OPC_CheckType, MVT::v8f32,
/*164056*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164058*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164061*/        OPC_EmitMergeInputChains1_2,
/*164062*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUB213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164075*/      /*Scope*/ 37, /*->164113*/
/*164076*/        OPC_MoveChild1,
/*164077*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164080*/        OPC_RecordMemRef,
/*164081*/        OPC_RecordNode, // #1 = 'ld' chained node
/*164082*/        OPC_CheckFoldableChainNode,
/*164083*/        OPC_RecordChild1, // #2 = $src3
/*164084*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164086*/        OPC_CheckPredicate, 9, // Predicate_load
/*164088*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164090*/        OPC_MoveParent,
/*164091*/        OPC_RecordChild2, // #3 = $src1
/*164092*/        OPC_CheckType, MVT::v8f32,
/*164094*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164096*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164099*/        OPC_EmitMergeInputChains1_1,
/*164100*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164113*/      0, /*End of Scope*/
/*164114*/    /*Scope*/ 38, /*->164153*/
/*164115*/      OPC_MoveChild0,
/*164116*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164119*/      OPC_RecordMemRef,
/*164120*/      OPC_RecordNode, // #0 = 'ld' chained node
/*164121*/      OPC_CheckFoldableChainNode,
/*164122*/      OPC_RecordChild1, // #1 = $src3
/*164123*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164125*/      OPC_CheckPredicate, 9, // Predicate_load
/*164127*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*164129*/      OPC_MoveParent,
/*164130*/      OPC_RecordChild1, // #2 = $src1
/*164131*/      OPC_RecordChild2, // #3 = $src2
/*164132*/      OPC_CheckType, MVT::v8f32,
/*164134*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164136*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164139*/      OPC_EmitMergeInputChains1_0,
/*164140*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFMSUB132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164153*/    /*Scope*/ 79, /*->164233*/
/*164154*/      OPC_RecordChild0, // #0 = $src2
/*164155*/      OPC_Scope, 37, /*->164194*/ // 2 children in Scope
/*164157*/        OPC_RecordChild1, // #1 = $src1
/*164158*/        OPC_MoveChild2,
/*164159*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164162*/        OPC_RecordMemRef,
/*164163*/        OPC_RecordNode, // #2 = 'ld' chained node
/*164164*/        OPC_CheckFoldableChainNode,
/*164165*/        OPC_RecordChild1, // #3 = $src3
/*164166*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164168*/        OPC_CheckPredicate, 9, // Predicate_load
/*164170*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164172*/        OPC_MoveParent,
/*164173*/        OPC_CheckType, MVT::v2f64,
/*164175*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164177*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164180*/        OPC_EmitMergeInputChains1_2,
/*164181*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUB213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164194*/      /*Scope*/ 37, /*->164232*/
/*164195*/        OPC_MoveChild1,
/*164196*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164199*/        OPC_RecordMemRef,
/*164200*/        OPC_RecordNode, // #1 = 'ld' chained node
/*164201*/        OPC_CheckFoldableChainNode,
/*164202*/        OPC_RecordChild1, // #2 = $src3
/*164203*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164205*/        OPC_CheckPredicate, 9, // Predicate_load
/*164207*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164209*/        OPC_MoveParent,
/*164210*/        OPC_RecordChild2, // #3 = $src1
/*164211*/        OPC_CheckType, MVT::v2f64,
/*164213*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164215*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164218*/        OPC_EmitMergeInputChains1_1,
/*164219*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164232*/      0, /*End of Scope*/
/*164233*/    /*Scope*/ 38, /*->164272*/
/*164234*/      OPC_MoveChild0,
/*164235*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164238*/      OPC_RecordMemRef,
/*164239*/      OPC_RecordNode, // #0 = 'ld' chained node
/*164240*/      OPC_CheckFoldableChainNode,
/*164241*/      OPC_RecordChild1, // #1 = $src3
/*164242*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164244*/      OPC_CheckPredicate, 9, // Predicate_load
/*164246*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*164248*/      OPC_MoveParent,
/*164249*/      OPC_RecordChild1, // #2 = $src1
/*164250*/      OPC_RecordChild2, // #3 = $src2
/*164251*/      OPC_CheckType, MVT::v2f64,
/*164253*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164255*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164258*/      OPC_EmitMergeInputChains1_0,
/*164259*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFMSUB132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164272*/    /*Scope*/ 79, /*->164352*/
/*164273*/      OPC_RecordChild0, // #0 = $src2
/*164274*/      OPC_Scope, 37, /*->164313*/ // 2 children in Scope
/*164276*/        OPC_RecordChild1, // #1 = $src1
/*164277*/        OPC_MoveChild2,
/*164278*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164281*/        OPC_RecordMemRef,
/*164282*/        OPC_RecordNode, // #2 = 'ld' chained node
/*164283*/        OPC_CheckFoldableChainNode,
/*164284*/        OPC_RecordChild1, // #3 = $src3
/*164285*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164287*/        OPC_CheckPredicate, 9, // Predicate_load
/*164289*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164291*/        OPC_MoveParent,
/*164292*/        OPC_CheckType, MVT::v4f64,
/*164294*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164296*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164299*/        OPC_EmitMergeInputChains1_2,
/*164300*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUB213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164313*/      /*Scope*/ 37, /*->164351*/
/*164314*/        OPC_MoveChild1,
/*164315*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164318*/        OPC_RecordMemRef,
/*164319*/        OPC_RecordNode, // #1 = 'ld' chained node
/*164320*/        OPC_CheckFoldableChainNode,
/*164321*/        OPC_RecordChild1, // #2 = $src3
/*164322*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164324*/        OPC_CheckPredicate, 9, // Predicate_load
/*164326*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164328*/        OPC_MoveParent,
/*164329*/        OPC_RecordChild2, // #3 = $src1
/*164330*/        OPC_CheckType, MVT::v4f64,
/*164332*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164334*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164337*/        OPC_EmitMergeInputChains1_1,
/*164338*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164351*/      0, /*End of Scope*/
/*164352*/    /*Scope*/ 38, /*->164391*/
/*164353*/      OPC_MoveChild0,
/*164354*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164357*/      OPC_RecordMemRef,
/*164358*/      OPC_RecordNode, // #0 = 'ld' chained node
/*164359*/      OPC_CheckFoldableChainNode,
/*164360*/      OPC_RecordChild1, // #1 = $src3
/*164361*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164363*/      OPC_CheckPredicate, 9, // Predicate_load
/*164365*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*164367*/      OPC_MoveParent,
/*164368*/      OPC_RecordChild1, // #2 = $src1
/*164369*/      OPC_RecordChild2, // #3 = $src2
/*164370*/      OPC_CheckType, MVT::v4f64,
/*164372*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164374*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164377*/      OPC_EmitMergeInputChains1_0,
/*164378*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFMSUB132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164391*/    /*Scope*/ 87|128,4/*599*/, /*->164992*/
/*164393*/      OPC_RecordChild0, // #0 = $src1
/*164394*/      OPC_Scope, 37, /*->164433*/ // 10 children in Scope
/*164396*/        OPC_RecordChild1, // #1 = $src2
/*164397*/        OPC_MoveChild2,
/*164398*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164401*/        OPC_RecordMemRef,
/*164402*/        OPC_RecordNode, // #2 = 'ld' chained node
/*164403*/        OPC_CheckFoldableChainNode,
/*164404*/        OPC_RecordChild1, // #3 = $src3
/*164405*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164407*/        OPC_CheckPredicate, 9, // Predicate_load
/*164409*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164411*/        OPC_MoveParent,
/*164412*/        OPC_CheckType, MVT::v4f32,
/*164414*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164416*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164419*/        OPC_EmitMergeInputChains1_2,
/*164420*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164433*/      /*Scope*/ 37, /*->164471*/
/*164434*/        OPC_MoveChild1,
/*164435*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164438*/        OPC_RecordMemRef,
/*164439*/        OPC_RecordNode, // #1 = 'ld' chained node
/*164440*/        OPC_CheckFoldableChainNode,
/*164441*/        OPC_RecordChild1, // #2 = $src2
/*164442*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164444*/        OPC_CheckPredicate, 9, // Predicate_load
/*164446*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164448*/        OPC_MoveParent,
/*164449*/        OPC_RecordChild2, // #3 = $src3
/*164450*/        OPC_CheckType, MVT::v4f32,
/*164452*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164454*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*164457*/        OPC_EmitMergeInputChains1_1,
/*164458*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*164471*/      /*Scope*/ 37, /*->164509*/
/*164472*/        OPC_RecordChild1, // #1 = $src2
/*164473*/        OPC_MoveChild2,
/*164474*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164477*/        OPC_RecordMemRef,
/*164478*/        OPC_RecordNode, // #2 = 'ld' chained node
/*164479*/        OPC_CheckFoldableChainNode,
/*164480*/        OPC_RecordChild1, // #3 = $src3
/*164481*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164483*/        OPC_CheckPredicate, 9, // Predicate_load
/*164485*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164487*/        OPC_MoveParent,
/*164488*/        OPC_CheckType, MVT::v8f32,
/*164490*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164492*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164495*/        OPC_EmitMergeInputChains1_2,
/*164496*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPS4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164509*/      /*Scope*/ 37, /*->164547*/
/*164510*/        OPC_MoveChild1,
/*164511*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164514*/        OPC_RecordMemRef,
/*164515*/        OPC_RecordNode, // #1 = 'ld' chained node
/*164516*/        OPC_CheckFoldableChainNode,
/*164517*/        OPC_RecordChild1, // #2 = $src2
/*164518*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164520*/        OPC_CheckPredicate, 9, // Predicate_load
/*164522*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164524*/        OPC_MoveParent,
/*164525*/        OPC_RecordChild2, // #3 = $src3
/*164526*/        OPC_CheckType, MVT::v8f32,
/*164528*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164530*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*164533*/        OPC_EmitMergeInputChains1_1,
/*164534*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*164547*/      /*Scope*/ 37, /*->164585*/
/*164548*/        OPC_RecordChild1, // #1 = $src2
/*164549*/        OPC_MoveChild2,
/*164550*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164553*/        OPC_RecordMemRef,
/*164554*/        OPC_RecordNode, // #2 = 'ld' chained node
/*164555*/        OPC_CheckFoldableChainNode,
/*164556*/        OPC_RecordChild1, // #3 = $src3
/*164557*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164559*/        OPC_CheckPredicate, 9, // Predicate_load
/*164561*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164563*/        OPC_MoveParent,
/*164564*/        OPC_CheckType, MVT::v2f64,
/*164566*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164568*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164571*/        OPC_EmitMergeInputChains1_2,
/*164572*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164585*/      /*Scope*/ 37, /*->164623*/
/*164586*/        OPC_MoveChild1,
/*164587*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164590*/        OPC_RecordMemRef,
/*164591*/        OPC_RecordNode, // #1 = 'ld' chained node
/*164592*/        OPC_CheckFoldableChainNode,
/*164593*/        OPC_RecordChild1, // #2 = $src2
/*164594*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164596*/        OPC_CheckPredicate, 9, // Predicate_load
/*164598*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164600*/        OPC_MoveParent,
/*164601*/        OPC_RecordChild2, // #3 = $src3
/*164602*/        OPC_CheckType, MVT::v2f64,
/*164604*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164606*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*164609*/        OPC_EmitMergeInputChains1_1,
/*164610*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*164623*/      /*Scope*/ 37, /*->164661*/
/*164624*/        OPC_RecordChild1, // #1 = $src2
/*164625*/        OPC_MoveChild2,
/*164626*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164629*/        OPC_RecordMemRef,
/*164630*/        OPC_RecordNode, // #2 = 'ld' chained node
/*164631*/        OPC_CheckFoldableChainNode,
/*164632*/        OPC_RecordChild1, // #3 = $src3
/*164633*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164635*/        OPC_CheckPredicate, 9, // Predicate_load
/*164637*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164639*/        OPC_MoveParent,
/*164640*/        OPC_CheckType, MVT::v4f64,
/*164642*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164644*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164647*/        OPC_EmitMergeInputChains1_2,
/*164648*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPD4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164661*/      /*Scope*/ 37, /*->164699*/
/*164662*/        OPC_MoveChild1,
/*164663*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164666*/        OPC_RecordMemRef,
/*164667*/        OPC_RecordNode, // #1 = 'ld' chained node
/*164668*/        OPC_CheckFoldableChainNode,
/*164669*/        OPC_RecordChild1, // #2 = $src2
/*164670*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164672*/        OPC_CheckPredicate, 9, // Predicate_load
/*164674*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164676*/        OPC_MoveParent,
/*164677*/        OPC_RecordChild2, // #3 = $src3
/*164678*/        OPC_CheckType, MVT::v4f64,
/*164680*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*164682*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*164685*/        OPC_EmitMergeInputChains1_1,
/*164686*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*164699*/      /*Scope*/ 16|128,1/*144*/, /*->164845*/
/*164701*/        OPC_RecordChild1, // #1 = $src1
/*164702*/        OPC_MoveChild2,
/*164703*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164706*/        OPC_RecordMemRef,
/*164707*/        OPC_RecordNode, // #2 = 'ld' chained node
/*164708*/        OPC_CheckFoldableChainNode,
/*164709*/        OPC_RecordChild1, // #3 = $src3
/*164710*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164712*/        OPC_CheckPredicate, 9, // Predicate_load
/*164714*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164716*/        OPC_MoveParent,
/*164717*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->164739
/*164720*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164722*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164725*/          OPC_EmitMergeInputChains1_2,
/*164726*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUB213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164739*/        /*SwitchType*/ 19, MVT::v8f32,// ->164760
/*164741*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*164743*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164746*/          OPC_EmitMergeInputChains1_2,
/*164747*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUB213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164760*/        /*SwitchType*/ 19, MVT::v4f32,// ->164781
/*164762*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*164764*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164767*/          OPC_EmitMergeInputChains1_2,
/*164768*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUB213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164781*/        /*SwitchType*/ 19, MVT::v8f64,// ->164802
/*164783*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164785*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164788*/          OPC_EmitMergeInputChains1_2,
/*164789*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUB213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164802*/        /*SwitchType*/ 19, MVT::v4f64,// ->164823
/*164804*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*164806*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164809*/          OPC_EmitMergeInputChains1_2,
/*164810*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUB213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164823*/        /*SwitchType*/ 19, MVT::v2f64,// ->164844
/*164825*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*164827*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164830*/          OPC_EmitMergeInputChains1_2,
/*164831*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUB213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164844*/        0, // EndSwitchType
/*164845*/      /*Scope*/ 16|128,1/*144*/, /*->164991*/
/*164847*/        OPC_MoveChild1,
/*164848*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164851*/        OPC_RecordMemRef,
/*164852*/        OPC_RecordNode, // #1 = 'ld' chained node
/*164853*/        OPC_CheckFoldableChainNode,
/*164854*/        OPC_RecordChild1, // #2 = $src3
/*164855*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164857*/        OPC_CheckPredicate, 9, // Predicate_load
/*164859*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*164861*/        OPC_MoveParent,
/*164862*/        OPC_RecordChild2, // #3 = $src1
/*164863*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->164885
/*164866*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164868*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164871*/          OPC_EmitMergeInputChains1_1,
/*164872*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VFMSUB231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164885*/        /*SwitchType*/ 19, MVT::v8f32,// ->164906
/*164887*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*164889*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164892*/          OPC_EmitMergeInputChains1_1,
/*164893*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VFMSUB231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164906*/        /*SwitchType*/ 19, MVT::v4f32,// ->164927
/*164908*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*164910*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164913*/          OPC_EmitMergeInputChains1_1,
/*164914*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VFMSUB231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164927*/        /*SwitchType*/ 19, MVT::v8f64,// ->164948
/*164929*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164931*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164934*/          OPC_EmitMergeInputChains1_1,
/*164935*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VFMSUB231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164948*/        /*SwitchType*/ 19, MVT::v4f64,// ->164969
/*164950*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*164952*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164955*/          OPC_EmitMergeInputChains1_1,
/*164956*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VFMSUB231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164969*/        /*SwitchType*/ 19, MVT::v2f64,// ->164990
/*164971*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*164973*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*164976*/          OPC_EmitMergeInputChains1_1,
/*164977*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VFMSUB231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*164990*/        0, // EndSwitchType
/*164991*/      0, /*End of Scope*/
/*164992*/    /*Scope*/ 109|128,1/*237*/, /*->165231*/
/*164994*/      OPC_MoveChild0,
/*164995*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164998*/      OPC_RecordMemRef,
/*164999*/      OPC_RecordNode, // #0 = 'ld' chained node
/*165000*/      OPC_CheckFoldableChainNode,
/*165001*/      OPC_RecordChild1, // #1 = $src3
/*165002*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165004*/      OPC_CheckPredicate, 9, // Predicate_load
/*165006*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*165008*/      OPC_MoveParent,
/*165009*/      OPC_RecordChild1, // #2 = $src1
/*165010*/      OPC_RecordChild2, // #3 = $src2
/*165011*/      OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->165033
/*165014*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165016*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165019*/        OPC_EmitMergeInputChains1_0,
/*165020*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                  // Dst: (VFMSUB132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165033*/      /*SwitchType*/ 42, MVT::v8f32,// ->165077
/*165035*/        OPC_Scope, 19, /*->165056*/ // 2 children in Scope
/*165037*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*165039*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165042*/          OPC_EmitMergeInputChains1_0,
/*165043*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                    // Dst: (VFMSUB132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165056*/        /*Scope*/ 19, /*->165076*/
/*165057*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165059*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*165062*/          OPC_EmitMergeInputChains1_0,
/*165063*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                    // Dst: (VFMSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*165076*/        0, /*End of Scope*/
/*165077*/      /*SwitchType*/ 42, MVT::v4f32,// ->165121
/*165079*/        OPC_Scope, 19, /*->165100*/ // 2 children in Scope
/*165081*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*165083*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165086*/          OPC_EmitMergeInputChains1_0,
/*165087*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                    // Dst: (VFMSUB132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165100*/        /*Scope*/ 19, /*->165120*/
/*165101*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165103*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*165106*/          OPC_EmitMergeInputChains1_0,
/*165107*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                    // Dst: (VFMSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*165120*/        0, /*End of Scope*/
/*165121*/      /*SwitchType*/ 19, MVT::v8f64,// ->165142
/*165123*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165125*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165128*/        OPC_EmitMergeInputChains1_0,
/*165129*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                  // Dst: (VFMSUB132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165142*/      /*SwitchType*/ 42, MVT::v4f64,// ->165186
/*165144*/        OPC_Scope, 19, /*->165165*/ // 2 children in Scope
/*165146*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*165148*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165151*/          OPC_EmitMergeInputChains1_0,
/*165152*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                    // Dst: (VFMSUB132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165165*/        /*Scope*/ 19, /*->165185*/
/*165166*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165168*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*165171*/          OPC_EmitMergeInputChains1_0,
/*165172*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                    // Dst: (VFMSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*165185*/        0, /*End of Scope*/
/*165186*/      /*SwitchType*/ 42, MVT::v2f64,// ->165230
/*165188*/        OPC_Scope, 19, /*->165209*/ // 2 children in Scope
/*165190*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*165192*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165195*/          OPC_EmitMergeInputChains1_0,
/*165196*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                    // Dst: (VFMSUB132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165209*/        /*Scope*/ 19, /*->165229*/
/*165210*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165212*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*165215*/          OPC_EmitMergeInputChains1_0,
/*165216*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                    // Dst: (VFMSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*165229*/        0, /*End of Scope*/
/*165230*/      0, // EndSwitchType
/*165231*/    /*Scope*/ 63|128,1/*191*/, /*->165424*/
/*165233*/      OPC_RecordChild0, // #0 = $src2
/*165234*/      OPC_RecordChild1, // #1 = $src1
/*165235*/      OPC_RecordChild2, // #2 = $src3
/*165236*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->165277
/*165239*/        OPC_Scope, 11, /*->165252*/ // 3 children in Scope
/*165241*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165243*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSr), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUB213PSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*165252*/        /*Scope*/ 11, /*->165264*/
/*165253*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165255*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPS4rr), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBPS4rr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*165264*/        /*Scope*/ 11, /*->165276*/
/*165265*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*165267*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ128r), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUB213PSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*165276*/        0, /*End of Scope*/
/*165277*/      /*SwitchType*/ 38, MVT::v8f32,// ->165317
/*165279*/        OPC_Scope, 11, /*->165292*/ // 3 children in Scope
/*165281*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165283*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSYr), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUB213PSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*165292*/        /*Scope*/ 11, /*->165304*/
/*165293*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165295*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPS4Yrr), 0,
                        MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBPS4Yrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*165304*/        /*Scope*/ 11, /*->165316*/
/*165305*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*165307*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ256r), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUB213PSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*165316*/        0, /*End of Scope*/
/*165317*/      /*SwitchType*/ 38, MVT::v2f64,// ->165357
/*165319*/        OPC_Scope, 11, /*->165332*/ // 3 children in Scope
/*165321*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165323*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDr), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUB213PDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*165332*/        /*Scope*/ 11, /*->165344*/
/*165333*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165335*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPD4rr), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBPD4rr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*165344*/        /*Scope*/ 11, /*->165356*/
/*165345*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*165347*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ128r), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUB213PDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*165356*/        0, /*End of Scope*/
/*165357*/      /*SwitchType*/ 38, MVT::v4f64,// ->165397
/*165359*/        OPC_Scope, 11, /*->165372*/ // 3 children in Scope
/*165361*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165363*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDYr), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUB213PDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*165372*/        /*Scope*/ 11, /*->165384*/
/*165373*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*165375*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBPD4Yrr), 0,
                        MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBPD4Yrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*165384*/        /*Scope*/ 11, /*->165396*/
/*165385*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*165387*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ256r), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUB213PDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*165396*/        0, /*End of Scope*/
/*165397*/      /*SwitchType*/ 11, MVT::v16f32,// ->165410
/*165399*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165401*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZr), 0,
                      MVT::v16f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3) - Complexity = 3
                  // Dst: (VFMSUB213PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*165410*/      /*SwitchType*/ 11, MVT::v8f64,// ->165423
/*165412*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165414*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZr), 0,
                      MVT::v8f64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3) - Complexity = 3
                  // Dst: (VFMSUB213PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*165423*/      0, // EndSwitchType
/*165424*/    0, /*End of Scope*/
/*165425*/  /*SwitchOpcode*/ 40|128,21/*2728*/, TARGET_VAL(X86ISD::FNMADD),// ->168157
/*165429*/    OPC_Scope, 75, /*->165506*/ // 21 children in Scope
/*165431*/      OPC_RecordChild0, // #0 = $src2
/*165432*/      OPC_Scope, 35, /*->165469*/ // 2 children in Scope
/*165434*/        OPC_RecordChild1, // #1 = $src1
/*165435*/        OPC_MoveChild2,
/*165436*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165439*/        OPC_RecordMemRef,
/*165440*/        OPC_RecordNode, // #2 = 'ld' chained node
/*165441*/        OPC_CheckFoldableChainNode,
/*165442*/        OPC_RecordChild1, // #3 = $src3
/*165443*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165445*/        OPC_CheckPredicate, 9, // Predicate_load
/*165447*/        OPC_MoveParent,
/*165448*/        OPC_CheckType, MVT::f32,
/*165450*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*165452*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165455*/        OPC_EmitMergeInputChains1_2,
/*165456*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMADD213SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165469*/      /*Scope*/ 35, /*->165505*/
/*165470*/        OPC_MoveChild1,
/*165471*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165474*/        OPC_RecordMemRef,
/*165475*/        OPC_RecordNode, // #1 = 'ld' chained node
/*165476*/        OPC_CheckFoldableChainNode,
/*165477*/        OPC_RecordChild1, // #2 = $src3
/*165478*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165480*/        OPC_CheckPredicate, 9, // Predicate_load
/*165482*/        OPC_MoveParent,
/*165483*/        OPC_RecordChild2, // #3 = $src1
/*165484*/        OPC_CheckType, MVT::f32,
/*165486*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*165488*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165491*/        OPC_EmitMergeInputChains1_1,
/*165492*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165505*/      0, /*End of Scope*/
/*165506*/    /*Scope*/ 36, /*->165543*/
/*165507*/      OPC_MoveChild0,
/*165508*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165511*/      OPC_RecordMemRef,
/*165512*/      OPC_RecordNode, // #0 = 'ld' chained node
/*165513*/      OPC_CheckFoldableChainNode,
/*165514*/      OPC_RecordChild1, // #1 = $src3
/*165515*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165517*/      OPC_CheckPredicate, 9, // Predicate_load
/*165519*/      OPC_MoveParent,
/*165520*/      OPC_RecordChild1, // #2 = $src1
/*165521*/      OPC_RecordChild2, // #3 = $src2
/*165522*/      OPC_CheckType, MVT::f32,
/*165524*/      OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*165526*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165529*/      OPC_EmitMergeInputChains1_0,
/*165530*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 25
                // Dst: (VFNMADD132SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165543*/    /*Scope*/ 75, /*->165619*/
/*165544*/      OPC_RecordChild0, // #0 = $src2
/*165545*/      OPC_Scope, 35, /*->165582*/ // 2 children in Scope
/*165547*/        OPC_RecordChild1, // #1 = $src1
/*165548*/        OPC_MoveChild2,
/*165549*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165552*/        OPC_RecordMemRef,
/*165553*/        OPC_RecordNode, // #2 = 'ld' chained node
/*165554*/        OPC_CheckFoldableChainNode,
/*165555*/        OPC_RecordChild1, // #3 = $src3
/*165556*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165558*/        OPC_CheckPredicate, 9, // Predicate_load
/*165560*/        OPC_MoveParent,
/*165561*/        OPC_CheckType, MVT::f64,
/*165563*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*165565*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165568*/        OPC_EmitMergeInputChains1_2,
/*165569*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMADD213SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165582*/      /*Scope*/ 35, /*->165618*/
/*165583*/        OPC_MoveChild1,
/*165584*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165587*/        OPC_RecordMemRef,
/*165588*/        OPC_RecordNode, // #1 = 'ld' chained node
/*165589*/        OPC_CheckFoldableChainNode,
/*165590*/        OPC_RecordChild1, // #2 = $src3
/*165591*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165593*/        OPC_CheckPredicate, 9, // Predicate_load
/*165595*/        OPC_MoveParent,
/*165596*/        OPC_RecordChild2, // #3 = $src1
/*165597*/        OPC_CheckType, MVT::f64,
/*165599*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*165601*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165604*/        OPC_EmitMergeInputChains1_1,
/*165605*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165618*/      0, /*End of Scope*/
/*165619*/    /*Scope*/ 36, /*->165656*/
/*165620*/      OPC_MoveChild0,
/*165621*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165624*/      OPC_RecordMemRef,
/*165625*/      OPC_RecordNode, // #0 = 'ld' chained node
/*165626*/      OPC_CheckFoldableChainNode,
/*165627*/      OPC_RecordChild1, // #1 = $src3
/*165628*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165630*/      OPC_CheckPredicate, 9, // Predicate_load
/*165632*/      OPC_MoveParent,
/*165633*/      OPC_RecordChild1, // #2 = $src1
/*165634*/      OPC_RecordChild2, // #3 = $src2
/*165635*/      OPC_CheckType, MVT::f64,
/*165637*/      OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*165639*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165642*/      OPC_EmitMergeInputChains1_0,
/*165643*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 25
                // Dst: (VFNMADD132SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165656*/    /*Scope*/ 91|128,1/*219*/, /*->165877*/
/*165658*/      OPC_RecordChild0, // #0 = $src1
/*165659*/      OPC_Scope, 35, /*->165696*/ // 6 children in Scope
/*165661*/        OPC_RecordChild1, // #1 = $src2
/*165662*/        OPC_MoveChild2,
/*165663*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165666*/        OPC_RecordMemRef,
/*165667*/        OPC_RecordNode, // #2 = 'ld' chained node
/*165668*/        OPC_CheckFoldableChainNode,
/*165669*/        OPC_RecordChild1, // #3 = $src3
/*165670*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165672*/        OPC_CheckPredicate, 9, // Predicate_load
/*165674*/        OPC_MoveParent,
/*165675*/        OPC_CheckType, MVT::f32,
/*165677*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*165679*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165682*/        OPC_EmitMergeInputChains1_2,
/*165683*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMADDSS4rm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165696*/      /*Scope*/ 35, /*->165732*/
/*165697*/        OPC_MoveChild1,
/*165698*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165701*/        OPC_RecordMemRef,
/*165702*/        OPC_RecordNode, // #1 = 'ld' chained node
/*165703*/        OPC_CheckFoldableChainNode,
/*165704*/        OPC_RecordChild1, // #2 = $src2
/*165705*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165707*/        OPC_CheckPredicate, 9, // Predicate_load
/*165709*/        OPC_MoveParent,
/*165710*/        OPC_RecordChild2, // #3 = $src3
/*165711*/        OPC_CheckType, MVT::f32,
/*165713*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*165715*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*165718*/        OPC_EmitMergeInputChains1_1,
/*165719*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMADDSS4mr:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, FR32:{ *:[f32] }:$src3)
/*165732*/      /*Scope*/ 35, /*->165768*/
/*165733*/        OPC_RecordChild1, // #1 = $src2
/*165734*/        OPC_MoveChild2,
/*165735*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165738*/        OPC_RecordMemRef,
/*165739*/        OPC_RecordNode, // #2 = 'ld' chained node
/*165740*/        OPC_CheckFoldableChainNode,
/*165741*/        OPC_RecordChild1, // #3 = $src3
/*165742*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165744*/        OPC_CheckPredicate, 9, // Predicate_load
/*165746*/        OPC_MoveParent,
/*165747*/        OPC_CheckType, MVT::f64,
/*165749*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*165751*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165754*/        OPC_EmitMergeInputChains1_2,
/*165755*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMADDSD4rm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165768*/      /*Scope*/ 35, /*->165804*/
/*165769*/        OPC_MoveChild1,
/*165770*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165773*/        OPC_RecordMemRef,
/*165774*/        OPC_RecordNode, // #1 = 'ld' chained node
/*165775*/        OPC_CheckFoldableChainNode,
/*165776*/        OPC_RecordChild1, // #2 = $src2
/*165777*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165779*/        OPC_CheckPredicate, 9, // Predicate_load
/*165781*/        OPC_MoveParent,
/*165782*/        OPC_RecordChild2, // #3 = $src3
/*165783*/        OPC_CheckType, MVT::f64,
/*165785*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*165787*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*165790*/        OPC_EmitMergeInputChains1_1,
/*165791*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src3) - Complexity = 25
                  // Dst: (VFNMADDSD4mr:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, FR64:{ *:[f64] }:$src3)
/*165804*/      /*Scope*/ 35, /*->165840*/
/*165805*/        OPC_RecordChild1, // #1 = $src1
/*165806*/        OPC_MoveChild2,
/*165807*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165810*/        OPC_RecordMemRef,
/*165811*/        OPC_RecordNode, // #2 = 'ld' chained node
/*165812*/        OPC_CheckFoldableChainNode,
/*165813*/        OPC_RecordChild1, // #3 = $src3
/*165814*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165816*/        OPC_CheckPredicate, 9, // Predicate_load
/*165818*/        OPC_MoveParent,
/*165819*/        OPC_CheckType, MVT::f32,
/*165821*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165823*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165826*/        OPC_EmitMergeInputChains1_2,
/*165827*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMADD213SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165840*/      /*Scope*/ 35, /*->165876*/
/*165841*/        OPC_MoveChild1,
/*165842*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165845*/        OPC_RecordMemRef,
/*165846*/        OPC_RecordNode, // #1 = 'ld' chained node
/*165847*/        OPC_CheckFoldableChainNode,
/*165848*/        OPC_RecordChild1, // #2 = $src3
/*165849*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165851*/        OPC_CheckPredicate, 9, // Predicate_load
/*165853*/        OPC_MoveParent,
/*165854*/        OPC_RecordChild2, // #3 = $src1
/*165855*/        OPC_CheckType, MVT::f32,
/*165857*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165859*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165862*/        OPC_EmitMergeInputChains1_1,
/*165863*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165876*/      0, /*End of Scope*/
/*165877*/    /*Scope*/ 36, /*->165914*/
/*165878*/      OPC_MoveChild0,
/*165879*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165882*/      OPC_RecordMemRef,
/*165883*/      OPC_RecordNode, // #0 = 'ld' chained node
/*165884*/      OPC_CheckFoldableChainNode,
/*165885*/      OPC_RecordChild1, // #1 = $src3
/*165886*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165888*/      OPC_CheckPredicate, 9, // Predicate_load
/*165890*/      OPC_MoveParent,
/*165891*/      OPC_RecordChild1, // #2 = $src1
/*165892*/      OPC_RecordChild2, // #3 = $src2
/*165893*/      OPC_CheckType, MVT::f32,
/*165895*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165897*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165900*/      OPC_EmitMergeInputChains1_0,
/*165901*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 25
                // Dst: (VFNMADD132SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165914*/    /*Scope*/ 75, /*->165990*/
/*165915*/      OPC_RecordChild0, // #0 = $src2
/*165916*/      OPC_Scope, 35, /*->165953*/ // 2 children in Scope
/*165918*/        OPC_RecordChild1, // #1 = $src1
/*165919*/        OPC_MoveChild2,
/*165920*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165923*/        OPC_RecordMemRef,
/*165924*/        OPC_RecordNode, // #2 = 'ld' chained node
/*165925*/        OPC_CheckFoldableChainNode,
/*165926*/        OPC_RecordChild1, // #3 = $src3
/*165927*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165929*/        OPC_CheckPredicate, 9, // Predicate_load
/*165931*/        OPC_MoveParent,
/*165932*/        OPC_CheckType, MVT::f64,
/*165934*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165936*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165939*/        OPC_EmitMergeInputChains1_2,
/*165940*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMADD213SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165953*/      /*Scope*/ 35, /*->165989*/
/*165954*/        OPC_MoveChild1,
/*165955*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165958*/        OPC_RecordMemRef,
/*165959*/        OPC_RecordNode, // #1 = 'ld' chained node
/*165960*/        OPC_CheckFoldableChainNode,
/*165961*/        OPC_RecordChild1, // #2 = $src3
/*165962*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165964*/        OPC_CheckPredicate, 9, // Predicate_load
/*165966*/        OPC_MoveParent,
/*165967*/        OPC_RecordChild2, // #3 = $src1
/*165968*/        OPC_CheckType, MVT::f64,
/*165970*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165972*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*165975*/        OPC_EmitMergeInputChains1_1,
/*165976*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*165989*/      0, /*End of Scope*/
/*165990*/    /*Scope*/ 82, /*->166073*/
/*165991*/      OPC_MoveChild0,
/*165992*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165995*/      OPC_RecordMemRef,
/*165996*/      OPC_RecordNode, // #0 = 'ld' chained node
/*165997*/      OPC_CheckFoldableChainNode,
/*165998*/      OPC_RecordChild1, // #1 = $src3
/*165999*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166001*/      OPC_CheckPredicate, 9, // Predicate_load
/*166003*/      OPC_MoveParent,
/*166004*/      OPC_RecordChild1, // #2 = $src1
/*166005*/      OPC_RecordChild2, // #3 = $src2
/*166006*/      OPC_SwitchType /*2 cases */, 42, MVT::f64,// ->166051
/*166009*/        OPC_Scope, 19, /*->166030*/ // 2 children in Scope
/*166011*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166013*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166016*/          OPC_EmitMergeInputChains1_0,
/*166017*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 25
                    // Dst: (VFNMADD132SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166030*/        /*Scope*/ 19, /*->166050*/
/*166031*/          OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*166033*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*166036*/          OPC_EmitMergeInputChains1_0,
/*166037*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fnmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3) - Complexity = 25
                    // Dst: (VFNMADDSD4mr:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, FR64:{ *:[f64] }:$src3)
/*166050*/        0, /*End of Scope*/
/*166051*/      /*SwitchType*/ 19, MVT::f32,// ->166072
/*166053*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*166055*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*166058*/        OPC_EmitMergeInputChains1_0,
/*166059*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMADDSS4mr:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, FR32:{ *:[f32] }:$src3)
/*166072*/      0, // EndSwitchType
/*166073*/    /*Scope*/ 26|128,3/*410*/, /*->166485*/
/*166075*/      OPC_RecordChild0, // #0 = $src2
/*166076*/      OPC_Scope, 117|128,1/*245*/, /*->166324*/ // 2 children in Scope
/*166079*/        OPC_RecordChild1, // #1 = $src1
/*166080*/        OPC_Scope, 83, /*->166165*/ // 2 children in Scope
/*166082*/          OPC_RecordChild2, // #2 = $src3
/*166083*/          OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->166124
/*166086*/            OPC_Scope, 11, /*->166099*/ // 3 children in Scope
/*166088*/              OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*166090*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSr), 0,
                            MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFNMADD213SSr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3)
/*166099*/            /*Scope*/ 11, /*->166111*/
/*166100*/              OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*166102*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSS4rr), 0,
                            MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFNMADDSS4rr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3)
/*166111*/            /*Scope*/ 11, /*->166123*/
/*166112*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166114*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZr), 0,
                            MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFNMADD213SSZr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3)
/*166123*/            0, /*End of Scope*/
/*166124*/          /*SwitchType*/ 38, MVT::f64,// ->166164
/*166126*/            OPC_Scope, 11, /*->166139*/ // 3 children in Scope
/*166128*/              OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*166130*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDr), 0,
                            MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFNMADD213SDr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3)
/*166139*/            /*Scope*/ 11, /*->166151*/
/*166140*/              OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*166142*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDSD4rr), 0,
                            MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFNMADDSD4rr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3)
/*166151*/            /*Scope*/ 11, /*->166163*/
/*166152*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166154*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZr), 0,
                            MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFNMADD213SDZr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3)
/*166163*/            0, /*End of Scope*/
/*166164*/          0, // EndSwitchType
/*166165*/        /*Scope*/ 28|128,1/*156*/, /*->166323*/
/*166167*/          OPC_MoveChild2,
/*166168*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*166171*/          OPC_MoveChild0,
/*166172*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166175*/          OPC_RecordMemRef,
/*166176*/          OPC_RecordNode, // #2 = 'ld' chained node
/*166177*/          OPC_CheckFoldableChainNode,
/*166178*/          OPC_RecordChild1, // #3 = $src3
/*166179*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166181*/          OPC_CheckPredicate, 9, // Predicate_load
/*166183*/          OPC_SwitchType /*2 cases */, 67, MVT::f32,// ->166253
/*166186*/            OPC_MoveParent,
/*166187*/            OPC_MoveParent,
/*166188*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->166210
/*166191*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166193*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166196*/              OPC_EmitMergeInputChains1_2,
/*166197*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMADD213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166210*/            /*SwitchType*/ 19, MVT::v8f32,// ->166231
/*166212*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166214*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166217*/              OPC_EmitMergeInputChains1_2,
/*166218*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMADD213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166231*/            /*SwitchType*/ 19, MVT::v4f32,// ->166252
/*166233*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166235*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166238*/              OPC_EmitMergeInputChains1_2,
/*166239*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMADD213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166252*/            0, // EndSwitchType
/*166253*/          /*SwitchType*/ 67, MVT::f64,// ->166322
/*166255*/            OPC_MoveParent,
/*166256*/            OPC_MoveParent,
/*166257*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->166279
/*166260*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166262*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166265*/              OPC_EmitMergeInputChains1_2,
/*166266*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMADD213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166279*/            /*SwitchType*/ 19, MVT::v4f64,// ->166300
/*166281*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166283*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166286*/              OPC_EmitMergeInputChains1_2,
/*166287*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMADD213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166300*/            /*SwitchType*/ 19, MVT::v2f64,// ->166321
/*166302*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166304*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166307*/              OPC_EmitMergeInputChains1_2,
/*166308*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMADD213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166321*/            0, // EndSwitchType
/*166322*/          0, // EndSwitchType
/*166323*/        0, /*End of Scope*/
/*166324*/      /*Scope*/ 30|128,1/*158*/, /*->166484*/
/*166326*/        OPC_MoveChild1,
/*166327*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*166330*/        OPC_MoveChild0,
/*166331*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166334*/        OPC_RecordMemRef,
/*166335*/        OPC_RecordNode, // #1 = 'ld' chained node
/*166336*/        OPC_CheckFoldableChainNode,
/*166337*/        OPC_RecordChild1, // #2 = $src3
/*166338*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166340*/        OPC_CheckPredicate, 9, // Predicate_load
/*166342*/        OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->166413
/*166345*/          OPC_MoveParent,
/*166346*/          OPC_MoveParent,
/*166347*/          OPC_RecordChild2, // #3 = $src1
/*166348*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->166370
/*166351*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166353*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166356*/            OPC_EmitMergeInputChains1_1,
/*166357*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                      // Dst: (VFNMADD231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166370*/          /*SwitchType*/ 19, MVT::v8f32,// ->166391
/*166372*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166374*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166377*/            OPC_EmitMergeInputChains1_1,
/*166378*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                      // Dst: (VFNMADD231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166391*/          /*SwitchType*/ 19, MVT::v4f32,// ->166412
/*166393*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166395*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166398*/            OPC_EmitMergeInputChains1_1,
/*166399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                      // Dst: (VFNMADD231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166412*/          0, // EndSwitchType
/*166413*/        /*SwitchType*/ 68, MVT::f64,// ->166483
/*166415*/          OPC_MoveParent,
/*166416*/          OPC_MoveParent,
/*166417*/          OPC_RecordChild2, // #3 = $src1
/*166418*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->166440
/*166421*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166423*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166426*/            OPC_EmitMergeInputChains1_1,
/*166427*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                      // Dst: (VFNMADD231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166440*/          /*SwitchType*/ 19, MVT::v4f64,// ->166461
/*166442*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166444*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166447*/            OPC_EmitMergeInputChains1_1,
/*166448*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                      // Dst: (VFNMADD231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166461*/          /*SwitchType*/ 19, MVT::v2f64,// ->166482
/*166463*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166465*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166468*/            OPC_EmitMergeInputChains1_1,
/*166469*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                      // Dst: (VFNMADD231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166482*/          0, // EndSwitchType
/*166483*/        0, // EndSwitchType
/*166484*/      0, /*End of Scope*/
/*166485*/    /*Scope*/ 32|128,1/*160*/, /*->166647*/
/*166487*/      OPC_MoveChild0,
/*166488*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*166491*/      OPC_MoveChild0,
/*166492*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166495*/      OPC_RecordMemRef,
/*166496*/      OPC_RecordNode, // #0 = 'ld' chained node
/*166497*/      OPC_CheckFoldableChainNode,
/*166498*/      OPC_RecordChild1, // #1 = $src3
/*166499*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166501*/      OPC_CheckPredicate, 9, // Predicate_load
/*166503*/      OPC_SwitchType /*2 cases */, 69, MVT::f32,// ->166575
/*166506*/        OPC_MoveParent,
/*166507*/        OPC_MoveParent,
/*166508*/        OPC_RecordChild1, // #2 = $src1
/*166509*/        OPC_RecordChild2, // #3 = $src2
/*166510*/        OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->166532
/*166513*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166515*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166518*/          OPC_EmitMergeInputChains1_0,
/*166519*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 28
                    // Dst: (VFNMADD132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166532*/        /*SwitchType*/ 19, MVT::v8f32,// ->166553
/*166534*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166536*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166539*/          OPC_EmitMergeInputChains1_0,
/*166540*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 28
                    // Dst: (VFNMADD132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166553*/        /*SwitchType*/ 19, MVT::v4f32,// ->166574
/*166555*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166557*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166560*/          OPC_EmitMergeInputChains1_0,
/*166561*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 28
                    // Dst: (VFNMADD132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166574*/        0, // EndSwitchType
/*166575*/      /*SwitchType*/ 69, MVT::f64,// ->166646
/*166577*/        OPC_MoveParent,
/*166578*/        OPC_MoveParent,
/*166579*/        OPC_RecordChild1, // #2 = $src1
/*166580*/        OPC_RecordChild2, // #3 = $src2
/*166581*/        OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->166603
/*166584*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166586*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166589*/          OPC_EmitMergeInputChains1_0,
/*166590*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 28
                    // Dst: (VFNMADD132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166603*/        /*SwitchType*/ 19, MVT::v4f64,// ->166624
/*166605*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166607*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166610*/          OPC_EmitMergeInputChains1_0,
/*166611*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 28
                    // Dst: (VFNMADD132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166624*/        /*SwitchType*/ 19, MVT::v2f64,// ->166645
/*166626*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166628*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166631*/          OPC_EmitMergeInputChains1_0,
/*166632*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 28
                    // Dst: (VFNMADD132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166645*/        0, // EndSwitchType
/*166646*/      0, // EndSwitchType
/*166647*/    /*Scope*/ 79, /*->166727*/
/*166648*/      OPC_RecordChild0, // #0 = $src2
/*166649*/      OPC_Scope, 37, /*->166688*/ // 2 children in Scope
/*166651*/        OPC_RecordChild1, // #1 = $src1
/*166652*/        OPC_MoveChild2,
/*166653*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166656*/        OPC_RecordMemRef,
/*166657*/        OPC_RecordNode, // #2 = 'ld' chained node
/*166658*/        OPC_CheckFoldableChainNode,
/*166659*/        OPC_RecordChild1, // #3 = $src3
/*166660*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166662*/        OPC_CheckPredicate, 9, // Predicate_load
/*166664*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*166666*/        OPC_MoveParent,
/*166667*/        OPC_CheckType, MVT::v4f32,
/*166669*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*166671*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166674*/        OPC_EmitMergeInputChains1_2,
/*166675*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMADD213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166688*/      /*Scope*/ 37, /*->166726*/
/*166689*/        OPC_MoveChild1,
/*166690*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166693*/        OPC_RecordMemRef,
/*166694*/        OPC_RecordNode, // #1 = 'ld' chained node
/*166695*/        OPC_CheckFoldableChainNode,
/*166696*/        OPC_RecordChild1, // #2 = $src3
/*166697*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166699*/        OPC_CheckPredicate, 9, // Predicate_load
/*166701*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*166703*/        OPC_MoveParent,
/*166704*/        OPC_RecordChild2, // #3 = $src1
/*166705*/        OPC_CheckType, MVT::v4f32,
/*166707*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*166709*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166712*/        OPC_EmitMergeInputChains1_1,
/*166713*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166726*/      0, /*End of Scope*/
/*166727*/    /*Scope*/ 38, /*->166766*/
/*166728*/      OPC_MoveChild0,
/*166729*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166732*/      OPC_RecordMemRef,
/*166733*/      OPC_RecordNode, // #0 = 'ld' chained node
/*166734*/      OPC_CheckFoldableChainNode,
/*166735*/      OPC_RecordChild1, // #1 = $src3
/*166736*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166738*/      OPC_CheckPredicate, 9, // Predicate_load
/*166740*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*166742*/      OPC_MoveParent,
/*166743*/      OPC_RecordChild1, // #2 = $src1
/*166744*/      OPC_RecordChild2, // #3 = $src2
/*166745*/      OPC_CheckType, MVT::v4f32,
/*166747*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*166749*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166752*/      OPC_EmitMergeInputChains1_0,
/*166753*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFNMADD132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166766*/    /*Scope*/ 79, /*->166846*/
/*166767*/      OPC_RecordChild0, // #0 = $src2
/*166768*/      OPC_Scope, 37, /*->166807*/ // 2 children in Scope
/*166770*/        OPC_RecordChild1, // #1 = $src1
/*166771*/        OPC_MoveChild2,
/*166772*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166775*/        OPC_RecordMemRef,
/*166776*/        OPC_RecordNode, // #2 = 'ld' chained node
/*166777*/        OPC_CheckFoldableChainNode,
/*166778*/        OPC_RecordChild1, // #3 = $src3
/*166779*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166781*/        OPC_CheckPredicate, 9, // Predicate_load
/*166783*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*166785*/        OPC_MoveParent,
/*166786*/        OPC_CheckType, MVT::v8f32,
/*166788*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*166790*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166793*/        OPC_EmitMergeInputChains1_2,
/*166794*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMADD213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166807*/      /*Scope*/ 37, /*->166845*/
/*166808*/        OPC_MoveChild1,
/*166809*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166812*/        OPC_RecordMemRef,
/*166813*/        OPC_RecordNode, // #1 = 'ld' chained node
/*166814*/        OPC_CheckFoldableChainNode,
/*166815*/        OPC_RecordChild1, // #2 = $src3
/*166816*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166818*/        OPC_CheckPredicate, 9, // Predicate_load
/*166820*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*166822*/        OPC_MoveParent,
/*166823*/        OPC_RecordChild2, // #3 = $src1
/*166824*/        OPC_CheckType, MVT::v8f32,
/*166826*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*166828*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166831*/        OPC_EmitMergeInputChains1_1,
/*166832*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166845*/      0, /*End of Scope*/
/*166846*/    /*Scope*/ 38, /*->166885*/
/*166847*/      OPC_MoveChild0,
/*166848*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166851*/      OPC_RecordMemRef,
/*166852*/      OPC_RecordNode, // #0 = 'ld' chained node
/*166853*/      OPC_CheckFoldableChainNode,
/*166854*/      OPC_RecordChild1, // #1 = $src3
/*166855*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166857*/      OPC_CheckPredicate, 9, // Predicate_load
/*166859*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*166861*/      OPC_MoveParent,
/*166862*/      OPC_RecordChild1, // #2 = $src1
/*166863*/      OPC_RecordChild2, // #3 = $src2
/*166864*/      OPC_CheckType, MVT::v8f32,
/*166866*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*166868*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166871*/      OPC_EmitMergeInputChains1_0,
/*166872*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFNMADD132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166885*/    /*Scope*/ 79, /*->166965*/
/*166886*/      OPC_RecordChild0, // #0 = $src2
/*166887*/      OPC_Scope, 37, /*->166926*/ // 2 children in Scope
/*166889*/        OPC_RecordChild1, // #1 = $src1
/*166890*/        OPC_MoveChild2,
/*166891*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166894*/        OPC_RecordMemRef,
/*166895*/        OPC_RecordNode, // #2 = 'ld' chained node
/*166896*/        OPC_CheckFoldableChainNode,
/*166897*/        OPC_RecordChild1, // #3 = $src3
/*166898*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166900*/        OPC_CheckPredicate, 9, // Predicate_load
/*166902*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*166904*/        OPC_MoveParent,
/*166905*/        OPC_CheckType, MVT::v2f64,
/*166907*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*166909*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166912*/        OPC_EmitMergeInputChains1_2,
/*166913*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMADD213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166926*/      /*Scope*/ 37, /*->166964*/
/*166927*/        OPC_MoveChild1,
/*166928*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166931*/        OPC_RecordMemRef,
/*166932*/        OPC_RecordNode, // #1 = 'ld' chained node
/*166933*/        OPC_CheckFoldableChainNode,
/*166934*/        OPC_RecordChild1, // #2 = $src3
/*166935*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166937*/        OPC_CheckPredicate, 9, // Predicate_load
/*166939*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*166941*/        OPC_MoveParent,
/*166942*/        OPC_RecordChild2, // #3 = $src1
/*166943*/        OPC_CheckType, MVT::v2f64,
/*166945*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*166947*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166950*/        OPC_EmitMergeInputChains1_1,
/*166951*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*166964*/      0, /*End of Scope*/
/*166965*/    /*Scope*/ 38, /*->167004*/
/*166966*/      OPC_MoveChild0,
/*166967*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166970*/      OPC_RecordMemRef,
/*166971*/      OPC_RecordNode, // #0 = 'ld' chained node
/*166972*/      OPC_CheckFoldableChainNode,
/*166973*/      OPC_RecordChild1, // #1 = $src3
/*166974*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166976*/      OPC_CheckPredicate, 9, // Predicate_load
/*166978*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*166980*/      OPC_MoveParent,
/*166981*/      OPC_RecordChild1, // #2 = $src1
/*166982*/      OPC_RecordChild2, // #3 = $src2
/*166983*/      OPC_CheckType, MVT::v2f64,
/*166985*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*166987*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*166990*/      OPC_EmitMergeInputChains1_0,
/*166991*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFNMADD132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167004*/    /*Scope*/ 79, /*->167084*/
/*167005*/      OPC_RecordChild0, // #0 = $src2
/*167006*/      OPC_Scope, 37, /*->167045*/ // 2 children in Scope
/*167008*/        OPC_RecordChild1, // #1 = $src1
/*167009*/        OPC_MoveChild2,
/*167010*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167013*/        OPC_RecordMemRef,
/*167014*/        OPC_RecordNode, // #2 = 'ld' chained node
/*167015*/        OPC_CheckFoldableChainNode,
/*167016*/        OPC_RecordChild1, // #3 = $src3
/*167017*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167019*/        OPC_CheckPredicate, 9, // Predicate_load
/*167021*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167023*/        OPC_MoveParent,
/*167024*/        OPC_CheckType, MVT::v4f64,
/*167026*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167028*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167031*/        OPC_EmitMergeInputChains1_2,
/*167032*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMADD213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167045*/      /*Scope*/ 37, /*->167083*/
/*167046*/        OPC_MoveChild1,
/*167047*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167050*/        OPC_RecordMemRef,
/*167051*/        OPC_RecordNode, // #1 = 'ld' chained node
/*167052*/        OPC_CheckFoldableChainNode,
/*167053*/        OPC_RecordChild1, // #2 = $src3
/*167054*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167056*/        OPC_CheckPredicate, 9, // Predicate_load
/*167058*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167060*/        OPC_MoveParent,
/*167061*/        OPC_RecordChild2, // #3 = $src1
/*167062*/        OPC_CheckType, MVT::v4f64,
/*167064*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167066*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167069*/        OPC_EmitMergeInputChains1_1,
/*167070*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167083*/      0, /*End of Scope*/
/*167084*/    /*Scope*/ 38, /*->167123*/
/*167085*/      OPC_MoveChild0,
/*167086*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167089*/      OPC_RecordMemRef,
/*167090*/      OPC_RecordNode, // #0 = 'ld' chained node
/*167091*/      OPC_CheckFoldableChainNode,
/*167092*/      OPC_RecordChild1, // #1 = $src3
/*167093*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167095*/      OPC_CheckPredicate, 9, // Predicate_load
/*167097*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*167099*/      OPC_MoveParent,
/*167100*/      OPC_RecordChild1, // #2 = $src1
/*167101*/      OPC_RecordChild2, // #3 = $src2
/*167102*/      OPC_CheckType, MVT::v4f64,
/*167104*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167106*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167109*/      OPC_EmitMergeInputChains1_0,
/*167110*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFNMADD132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167123*/    /*Scope*/ 87|128,4/*599*/, /*->167724*/
/*167125*/      OPC_RecordChild0, // #0 = $src1
/*167126*/      OPC_Scope, 37, /*->167165*/ // 10 children in Scope
/*167128*/        OPC_RecordChild1, // #1 = $src2
/*167129*/        OPC_MoveChild2,
/*167130*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167133*/        OPC_RecordMemRef,
/*167134*/        OPC_RecordNode, // #2 = 'ld' chained node
/*167135*/        OPC_CheckFoldableChainNode,
/*167136*/        OPC_RecordChild1, // #3 = $src3
/*167137*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167139*/        OPC_CheckPredicate, 9, // Predicate_load
/*167141*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167143*/        OPC_MoveParent,
/*167144*/        OPC_CheckType, MVT::v4f32,
/*167146*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167148*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167151*/        OPC_EmitMergeInputChains1_2,
/*167152*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMADDPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167165*/      /*Scope*/ 37, /*->167203*/
/*167166*/        OPC_MoveChild1,
/*167167*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167170*/        OPC_RecordMemRef,
/*167171*/        OPC_RecordNode, // #1 = 'ld' chained node
/*167172*/        OPC_CheckFoldableChainNode,
/*167173*/        OPC_RecordChild1, // #2 = $src2
/*167174*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167176*/        OPC_CheckPredicate, 9, // Predicate_load
/*167178*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167180*/        OPC_MoveParent,
/*167181*/        OPC_RecordChild2, // #3 = $src3
/*167182*/        OPC_CheckType, MVT::v4f32,
/*167184*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167186*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*167189*/        OPC_EmitMergeInputChains1_1,
/*167190*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*167203*/      /*Scope*/ 37, /*->167241*/
/*167204*/        OPC_RecordChild1, // #1 = $src2
/*167205*/        OPC_MoveChild2,
/*167206*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167209*/        OPC_RecordMemRef,
/*167210*/        OPC_RecordNode, // #2 = 'ld' chained node
/*167211*/        OPC_CheckFoldableChainNode,
/*167212*/        OPC_RecordChild1, // #3 = $src3
/*167213*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167215*/        OPC_CheckPredicate, 9, // Predicate_load
/*167217*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167219*/        OPC_MoveParent,
/*167220*/        OPC_CheckType, MVT::v8f32,
/*167222*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167224*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167227*/        OPC_EmitMergeInputChains1_2,
/*167228*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPS4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMADDPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167241*/      /*Scope*/ 37, /*->167279*/
/*167242*/        OPC_MoveChild1,
/*167243*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167246*/        OPC_RecordMemRef,
/*167247*/        OPC_RecordNode, // #1 = 'ld' chained node
/*167248*/        OPC_CheckFoldableChainNode,
/*167249*/        OPC_RecordChild1, // #2 = $src2
/*167250*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167252*/        OPC_CheckPredicate, 9, // Predicate_load
/*167254*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167256*/        OPC_MoveParent,
/*167257*/        OPC_RecordChild2, // #3 = $src3
/*167258*/        OPC_CheckType, MVT::v8f32,
/*167260*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167262*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*167265*/        OPC_EmitMergeInputChains1_1,
/*167266*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*167279*/      /*Scope*/ 37, /*->167317*/
/*167280*/        OPC_RecordChild1, // #1 = $src2
/*167281*/        OPC_MoveChild2,
/*167282*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167285*/        OPC_RecordMemRef,
/*167286*/        OPC_RecordNode, // #2 = 'ld' chained node
/*167287*/        OPC_CheckFoldableChainNode,
/*167288*/        OPC_RecordChild1, // #3 = $src3
/*167289*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167291*/        OPC_CheckPredicate, 9, // Predicate_load
/*167293*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167295*/        OPC_MoveParent,
/*167296*/        OPC_CheckType, MVT::v2f64,
/*167298*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167300*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167303*/        OPC_EmitMergeInputChains1_2,
/*167304*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMADDPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167317*/      /*Scope*/ 37, /*->167355*/
/*167318*/        OPC_MoveChild1,
/*167319*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167322*/        OPC_RecordMemRef,
/*167323*/        OPC_RecordNode, // #1 = 'ld' chained node
/*167324*/        OPC_CheckFoldableChainNode,
/*167325*/        OPC_RecordChild1, // #2 = $src2
/*167326*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167328*/        OPC_CheckPredicate, 9, // Predicate_load
/*167330*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167332*/        OPC_MoveParent,
/*167333*/        OPC_RecordChild2, // #3 = $src3
/*167334*/        OPC_CheckType, MVT::v2f64,
/*167336*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167338*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*167341*/        OPC_EmitMergeInputChains1_1,
/*167342*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFNMADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*167355*/      /*Scope*/ 37, /*->167393*/
/*167356*/        OPC_RecordChild1, // #1 = $src2
/*167357*/        OPC_MoveChild2,
/*167358*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167361*/        OPC_RecordMemRef,
/*167362*/        OPC_RecordNode, // #2 = 'ld' chained node
/*167363*/        OPC_CheckFoldableChainNode,
/*167364*/        OPC_RecordChild1, // #3 = $src3
/*167365*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167367*/        OPC_CheckPredicate, 9, // Predicate_load
/*167369*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167371*/        OPC_MoveParent,
/*167372*/        OPC_CheckType, MVT::v4f64,
/*167374*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167376*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167379*/        OPC_EmitMergeInputChains1_2,
/*167380*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPD4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMADDPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167393*/      /*Scope*/ 37, /*->167431*/
/*167394*/        OPC_MoveChild1,
/*167395*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167398*/        OPC_RecordMemRef,
/*167399*/        OPC_RecordNode, // #1 = 'ld' chained node
/*167400*/        OPC_CheckFoldableChainNode,
/*167401*/        OPC_RecordChild1, // #2 = $src2
/*167402*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167404*/        OPC_CheckPredicate, 9, // Predicate_load
/*167406*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167408*/        OPC_MoveParent,
/*167409*/        OPC_RecordChild2, // #3 = $src3
/*167410*/        OPC_CheckType, MVT::v4f64,
/*167412*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167414*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*167417*/        OPC_EmitMergeInputChains1_1,
/*167418*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFNMADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*167431*/      /*Scope*/ 16|128,1/*144*/, /*->167577*/
/*167433*/        OPC_RecordChild1, // #1 = $src1
/*167434*/        OPC_MoveChild2,
/*167435*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167438*/        OPC_RecordMemRef,
/*167439*/        OPC_RecordNode, // #2 = 'ld' chained node
/*167440*/        OPC_CheckFoldableChainNode,
/*167441*/        OPC_RecordChild1, // #3 = $src3
/*167442*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167444*/        OPC_CheckPredicate, 9, // Predicate_load
/*167446*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167448*/        OPC_MoveParent,
/*167449*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->167471
/*167452*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167454*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167457*/          OPC_EmitMergeInputChains1_2,
/*167458*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMADD213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167471*/        /*SwitchType*/ 19, MVT::v8f32,// ->167492
/*167473*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167475*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167478*/          OPC_EmitMergeInputChains1_2,
/*167479*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMADD213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167492*/        /*SwitchType*/ 19, MVT::v4f32,// ->167513
/*167494*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167496*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167499*/          OPC_EmitMergeInputChains1_2,
/*167500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMADD213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167513*/        /*SwitchType*/ 19, MVT::v8f64,// ->167534
/*167515*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167517*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167520*/          OPC_EmitMergeInputChains1_2,
/*167521*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMADD213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167534*/        /*SwitchType*/ 19, MVT::v4f64,// ->167555
/*167536*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167538*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167541*/          OPC_EmitMergeInputChains1_2,
/*167542*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMADD213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167555*/        /*SwitchType*/ 19, MVT::v2f64,// ->167576
/*167557*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167559*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167562*/          OPC_EmitMergeInputChains1_2,
/*167563*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMADD213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167576*/        0, // EndSwitchType
/*167577*/      /*Scope*/ 16|128,1/*144*/, /*->167723*/
/*167579*/        OPC_MoveChild1,
/*167580*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167583*/        OPC_RecordMemRef,
/*167584*/        OPC_RecordNode, // #1 = 'ld' chained node
/*167585*/        OPC_CheckFoldableChainNode,
/*167586*/        OPC_RecordChild1, // #2 = $src3
/*167587*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167589*/        OPC_CheckPredicate, 9, // Predicate_load
/*167591*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*167593*/        OPC_MoveParent,
/*167594*/        OPC_RecordChild2, // #3 = $src1
/*167595*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->167617
/*167598*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167600*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167603*/          OPC_EmitMergeInputChains1_1,
/*167604*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VFNMADD231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167617*/        /*SwitchType*/ 19, MVT::v8f32,// ->167638
/*167619*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167621*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167624*/          OPC_EmitMergeInputChains1_1,
/*167625*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VFNMADD231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167638*/        /*SwitchType*/ 19, MVT::v4f32,// ->167659
/*167640*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167642*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167645*/          OPC_EmitMergeInputChains1_1,
/*167646*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VFNMADD231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167659*/        /*SwitchType*/ 19, MVT::v8f64,// ->167680
/*167661*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167663*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167666*/          OPC_EmitMergeInputChains1_1,
/*167667*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VFNMADD231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167680*/        /*SwitchType*/ 19, MVT::v4f64,// ->167701
/*167682*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167684*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167687*/          OPC_EmitMergeInputChains1_1,
/*167688*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VFNMADD231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167701*/        /*SwitchType*/ 19, MVT::v2f64,// ->167722
/*167703*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167705*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167708*/          OPC_EmitMergeInputChains1_1,
/*167709*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VFNMADD231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167722*/        0, // EndSwitchType
/*167723*/      0, /*End of Scope*/
/*167724*/    /*Scope*/ 109|128,1/*237*/, /*->167963*/
/*167726*/      OPC_MoveChild0,
/*167727*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167730*/      OPC_RecordMemRef,
/*167731*/      OPC_RecordNode, // #0 = 'ld' chained node
/*167732*/      OPC_CheckFoldableChainNode,
/*167733*/      OPC_RecordChild1, // #1 = $src3
/*167734*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167736*/      OPC_CheckPredicate, 9, // Predicate_load
/*167738*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*167740*/      OPC_MoveParent,
/*167741*/      OPC_RecordChild1, // #2 = $src1
/*167742*/      OPC_RecordChild2, // #3 = $src2
/*167743*/      OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->167765
/*167746*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167748*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167751*/        OPC_EmitMergeInputChains1_0,
/*167752*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                  // Dst: (VFNMADD132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167765*/      /*SwitchType*/ 42, MVT::v8f32,// ->167809
/*167767*/        OPC_Scope, 19, /*->167788*/ // 2 children in Scope
/*167769*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167771*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167774*/          OPC_EmitMergeInputChains1_0,
/*167775*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                    // Dst: (VFNMADD132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167788*/        /*Scope*/ 19, /*->167808*/
/*167789*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167791*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*167794*/          OPC_EmitMergeInputChains1_0,
/*167795*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fnmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                    // Dst: (VFNMADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*167808*/        0, /*End of Scope*/
/*167809*/      /*SwitchType*/ 42, MVT::v4f32,// ->167853
/*167811*/        OPC_Scope, 19, /*->167832*/ // 2 children in Scope
/*167813*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167815*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167818*/          OPC_EmitMergeInputChains1_0,
/*167819*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                    // Dst: (VFNMADD132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167832*/        /*Scope*/ 19, /*->167852*/
/*167833*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167835*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*167838*/          OPC_EmitMergeInputChains1_0,
/*167839*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fnmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                    // Dst: (VFNMADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*167852*/        0, /*End of Scope*/
/*167853*/      /*SwitchType*/ 19, MVT::v8f64,// ->167874
/*167855*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167857*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167860*/        OPC_EmitMergeInputChains1_0,
/*167861*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                  // Dst: (VFNMADD132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167874*/      /*SwitchType*/ 42, MVT::v4f64,// ->167918
/*167876*/        OPC_Scope, 19, /*->167897*/ // 2 children in Scope
/*167878*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167880*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167883*/          OPC_EmitMergeInputChains1_0,
/*167884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                    // Dst: (VFNMADD132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167897*/        /*Scope*/ 19, /*->167917*/
/*167898*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167900*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*167903*/          OPC_EmitMergeInputChains1_0,
/*167904*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fnmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                    // Dst: (VFNMADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*167917*/        0, /*End of Scope*/
/*167918*/      /*SwitchType*/ 42, MVT::v2f64,// ->167962
/*167920*/        OPC_Scope, 19, /*->167941*/ // 2 children in Scope
/*167922*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167924*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*167927*/          OPC_EmitMergeInputChains1_0,
/*167928*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                    // Dst: (VFNMADD132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*167941*/        /*Scope*/ 19, /*->167961*/
/*167942*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167944*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*167947*/          OPC_EmitMergeInputChains1_0,
/*167948*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fnmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                    // Dst: (VFNMADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*167961*/        0, /*End of Scope*/
/*167962*/      0, // EndSwitchType
/*167963*/    /*Scope*/ 63|128,1/*191*/, /*->168156*/
/*167965*/      OPC_RecordChild0, // #0 = $src2
/*167966*/      OPC_RecordChild1, // #1 = $src1
/*167967*/      OPC_RecordChild2, // #2 = $src3
/*167968*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->168009
/*167971*/        OPC_Scope, 11, /*->167984*/ // 3 children in Scope
/*167973*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167975*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSr), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMADD213PSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*167984*/        /*Scope*/ 11, /*->167996*/
/*167985*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*167987*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPS4rr), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fnmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMADDPS4rr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*167996*/        /*Scope*/ 11, /*->168008*/
/*167997*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167999*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ128r), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMADD213PSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*168008*/        0, /*End of Scope*/
/*168009*/      /*SwitchType*/ 38, MVT::v8f32,// ->168049
/*168011*/        OPC_Scope, 11, /*->168024*/ // 3 children in Scope
/*168013*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*168015*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSYr), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMADD213PSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*168024*/        /*Scope*/ 11, /*->168036*/
/*168025*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*168027*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPS4Yrr), 0,
                        MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fnmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMADDPS4Yrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*168036*/        /*Scope*/ 11, /*->168048*/
/*168037*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168039*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ256r), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMADD213PSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*168048*/        0, /*End of Scope*/
/*168049*/      /*SwitchType*/ 38, MVT::v2f64,// ->168089
/*168051*/        OPC_Scope, 11, /*->168064*/ // 3 children in Scope
/*168053*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*168055*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDr), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMADD213PDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*168064*/        /*Scope*/ 11, /*->168076*/
/*168065*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*168067*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPD4rr), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fnmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMADDPD4rr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*168076*/        /*Scope*/ 11, /*->168088*/
/*168077*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168079*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ128r), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMADD213PDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*168088*/        0, /*End of Scope*/
/*168089*/      /*SwitchType*/ 38, MVT::v4f64,// ->168129
/*168091*/        OPC_Scope, 11, /*->168104*/ // 3 children in Scope
/*168093*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*168095*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDYr), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMADD213PDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*168104*/        /*Scope*/ 11, /*->168116*/
/*168105*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*168107*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADDPD4Yrr), 0,
                        MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fnmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMADDPD4Yrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*168116*/        /*Scope*/ 11, /*->168128*/
/*168117*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168119*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ256r), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMADD213PDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*168128*/        0, /*End of Scope*/
/*168129*/      /*SwitchType*/ 11, MVT::v16f32,// ->168142
/*168131*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168133*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZr), 0,
                      MVT::v16f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3) - Complexity = 3
                  // Dst: (VFNMADD213PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*168142*/      /*SwitchType*/ 11, MVT::v8f64,// ->168155
/*168144*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168146*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZr), 0,
                      MVT::v8f64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3) - Complexity = 3
                  // Dst: (VFNMADD213PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*168155*/      0, // EndSwitchType
/*168156*/    0, /*End of Scope*/
/*168157*/  /*SwitchOpcode*/ 40|128,21/*2728*/, TARGET_VAL(X86ISD::FNMSUB),// ->170889
/*168161*/    OPC_Scope, 75, /*->168238*/ // 21 children in Scope
/*168163*/      OPC_RecordChild0, // #0 = $src2
/*168164*/      OPC_Scope, 35, /*->168201*/ // 2 children in Scope
/*168166*/        OPC_RecordChild1, // #1 = $src1
/*168167*/        OPC_MoveChild2,
/*168168*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168171*/        OPC_RecordMemRef,
/*168172*/        OPC_RecordNode, // #2 = 'ld' chained node
/*168173*/        OPC_CheckFoldableChainNode,
/*168174*/        OPC_RecordChild1, // #3 = $src3
/*168175*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168177*/        OPC_CheckPredicate, 9, // Predicate_load
/*168179*/        OPC_MoveParent,
/*168180*/        OPC_CheckType, MVT::f32,
/*168182*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*168184*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168187*/        OPC_EmitMergeInputChains1_2,
/*168188*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMSUB213SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168201*/      /*Scope*/ 35, /*->168237*/
/*168202*/        OPC_MoveChild1,
/*168203*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168206*/        OPC_RecordMemRef,
/*168207*/        OPC_RecordNode, // #1 = 'ld' chained node
/*168208*/        OPC_CheckFoldableChainNode,
/*168209*/        OPC_RecordChild1, // #2 = $src3
/*168210*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168212*/        OPC_CheckPredicate, 9, // Predicate_load
/*168214*/        OPC_MoveParent,
/*168215*/        OPC_RecordChild2, // #3 = $src1
/*168216*/        OPC_CheckType, MVT::f32,
/*168218*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*168220*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168223*/        OPC_EmitMergeInputChains1_1,
/*168224*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168237*/      0, /*End of Scope*/
/*168238*/    /*Scope*/ 36, /*->168275*/
/*168239*/      OPC_MoveChild0,
/*168240*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168243*/      OPC_RecordMemRef,
/*168244*/      OPC_RecordNode, // #0 = 'ld' chained node
/*168245*/      OPC_CheckFoldableChainNode,
/*168246*/      OPC_RecordChild1, // #1 = $src3
/*168247*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168249*/      OPC_CheckPredicate, 9, // Predicate_load
/*168251*/      OPC_MoveParent,
/*168252*/      OPC_RecordChild1, // #2 = $src1
/*168253*/      OPC_RecordChild2, // #3 = $src2
/*168254*/      OPC_CheckType, MVT::f32,
/*168256*/      OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*168258*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168261*/      OPC_EmitMergeInputChains1_0,
/*168262*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 25
                // Dst: (VFNMSUB132SSm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168275*/    /*Scope*/ 75, /*->168351*/
/*168276*/      OPC_RecordChild0, // #0 = $src2
/*168277*/      OPC_Scope, 35, /*->168314*/ // 2 children in Scope
/*168279*/        OPC_RecordChild1, // #1 = $src1
/*168280*/        OPC_MoveChild2,
/*168281*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168284*/        OPC_RecordMemRef,
/*168285*/        OPC_RecordNode, // #2 = 'ld' chained node
/*168286*/        OPC_CheckFoldableChainNode,
/*168287*/        OPC_RecordChild1, // #3 = $src3
/*168288*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168290*/        OPC_CheckPredicate, 9, // Predicate_load
/*168292*/        OPC_MoveParent,
/*168293*/        OPC_CheckType, MVT::f64,
/*168295*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*168297*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168300*/        OPC_EmitMergeInputChains1_2,
/*168301*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMSUB213SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168314*/      /*Scope*/ 35, /*->168350*/
/*168315*/        OPC_MoveChild1,
/*168316*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168319*/        OPC_RecordMemRef,
/*168320*/        OPC_RecordNode, // #1 = 'ld' chained node
/*168321*/        OPC_CheckFoldableChainNode,
/*168322*/        OPC_RecordChild1, // #2 = $src3
/*168323*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168325*/        OPC_CheckPredicate, 9, // Predicate_load
/*168327*/        OPC_MoveParent,
/*168328*/        OPC_RecordChild2, // #3 = $src1
/*168329*/        OPC_CheckType, MVT::f64,
/*168331*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*168333*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168336*/        OPC_EmitMergeInputChains1_1,
/*168337*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168350*/      0, /*End of Scope*/
/*168351*/    /*Scope*/ 36, /*->168388*/
/*168352*/      OPC_MoveChild0,
/*168353*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168356*/      OPC_RecordMemRef,
/*168357*/      OPC_RecordNode, // #0 = 'ld' chained node
/*168358*/      OPC_CheckFoldableChainNode,
/*168359*/      OPC_RecordChild1, // #1 = $src3
/*168360*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168362*/      OPC_CheckPredicate, 9, // Predicate_load
/*168364*/      OPC_MoveParent,
/*168365*/      OPC_RecordChild1, // #2 = $src1
/*168366*/      OPC_RecordChild2, // #3 = $src2
/*168367*/      OPC_CheckType, MVT::f64,
/*168369*/      OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*168371*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168374*/      OPC_EmitMergeInputChains1_0,
/*168375*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 25
                // Dst: (VFNMSUB132SDm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168388*/    /*Scope*/ 91|128,1/*219*/, /*->168609*/
/*168390*/      OPC_RecordChild0, // #0 = $src1
/*168391*/      OPC_Scope, 35, /*->168428*/ // 6 children in Scope
/*168393*/        OPC_RecordChild1, // #1 = $src2
/*168394*/        OPC_MoveChild2,
/*168395*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168398*/        OPC_RecordMemRef,
/*168399*/        OPC_RecordNode, // #2 = 'ld' chained node
/*168400*/        OPC_CheckFoldableChainNode,
/*168401*/        OPC_RecordChild1, // #3 = $src3
/*168402*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168404*/        OPC_CheckPredicate, 9, // Predicate_load
/*168406*/        OPC_MoveParent,
/*168407*/        OPC_CheckType, MVT::f32,
/*168409*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*168411*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168414*/        OPC_EmitMergeInputChains1_2,
/*168415*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMSUBSS4rm:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168428*/      /*Scope*/ 35, /*->168464*/
/*168429*/        OPC_MoveChild1,
/*168430*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168433*/        OPC_RecordMemRef,
/*168434*/        OPC_RecordNode, // #1 = 'ld' chained node
/*168435*/        OPC_CheckFoldableChainNode,
/*168436*/        OPC_RecordChild1, // #2 = $src2
/*168437*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168439*/        OPC_CheckPredicate, 9, // Predicate_load
/*168441*/        OPC_MoveParent,
/*168442*/        OPC_RecordChild2, // #3 = $src3
/*168443*/        OPC_CheckType, MVT::f32,
/*168445*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*168447*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*168450*/        OPC_EmitMergeInputChains1_1,
/*168451*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMSUBSS4mr:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, FR32:{ *:[f32] }:$src3)
/*168464*/      /*Scope*/ 35, /*->168500*/
/*168465*/        OPC_RecordChild1, // #1 = $src2
/*168466*/        OPC_MoveChild2,
/*168467*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168470*/        OPC_RecordMemRef,
/*168471*/        OPC_RecordNode, // #2 = 'ld' chained node
/*168472*/        OPC_CheckFoldableChainNode,
/*168473*/        OPC_RecordChild1, // #3 = $src3
/*168474*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168476*/        OPC_CheckPredicate, 9, // Predicate_load
/*168478*/        OPC_MoveParent,
/*168479*/        OPC_CheckType, MVT::f64,
/*168481*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*168483*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168486*/        OPC_EmitMergeInputChains1_2,
/*168487*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMSUBSD4rm:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168500*/      /*Scope*/ 35, /*->168536*/
/*168501*/        OPC_MoveChild1,
/*168502*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168505*/        OPC_RecordMemRef,
/*168506*/        OPC_RecordNode, // #1 = 'ld' chained node
/*168507*/        OPC_CheckFoldableChainNode,
/*168508*/        OPC_RecordChild1, // #2 = $src2
/*168509*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168511*/        OPC_CheckPredicate, 9, // Predicate_load
/*168513*/        OPC_MoveParent,
/*168514*/        OPC_RecordChild2, // #3 = $src3
/*168515*/        OPC_CheckType, MVT::f64,
/*168517*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*168519*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*168522*/        OPC_EmitMergeInputChains1_1,
/*168523*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src3) - Complexity = 25
                  // Dst: (VFNMSUBSD4mr:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, FR64:{ *:[f64] }:$src3)
/*168536*/      /*Scope*/ 35, /*->168572*/
/*168537*/        OPC_RecordChild1, // #1 = $src1
/*168538*/        OPC_MoveChild2,
/*168539*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168542*/        OPC_RecordMemRef,
/*168543*/        OPC_RecordNode, // #2 = 'ld' chained node
/*168544*/        OPC_CheckFoldableChainNode,
/*168545*/        OPC_RecordChild1, // #3 = $src3
/*168546*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168548*/        OPC_CheckPredicate, 9, // Predicate_load
/*168550*/        OPC_MoveParent,
/*168551*/        OPC_CheckType, MVT::f32,
/*168553*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168555*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168558*/        OPC_EmitMergeInputChains1_2,
/*168559*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMSUB213SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168572*/      /*Scope*/ 35, /*->168608*/
/*168573*/        OPC_MoveChild1,
/*168574*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168577*/        OPC_RecordMemRef,
/*168578*/        OPC_RecordNode, // #1 = 'ld' chained node
/*168579*/        OPC_CheckFoldableChainNode,
/*168580*/        OPC_RecordChild1, // #2 = $src3
/*168581*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168583*/        OPC_CheckPredicate, 9, // Predicate_load
/*168585*/        OPC_MoveParent,
/*168586*/        OPC_RecordChild2, // #3 = $src1
/*168587*/        OPC_CheckType, MVT::f32,
/*168589*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168591*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168594*/        OPC_EmitMergeInputChains1_1,
/*168595*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168608*/      0, /*End of Scope*/
/*168609*/    /*Scope*/ 36, /*->168646*/
/*168610*/      OPC_MoveChild0,
/*168611*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168614*/      OPC_RecordMemRef,
/*168615*/      OPC_RecordNode, // #0 = 'ld' chained node
/*168616*/      OPC_CheckFoldableChainNode,
/*168617*/      OPC_RecordChild1, // #1 = $src3
/*168618*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168620*/      OPC_CheckPredicate, 9, // Predicate_load
/*168622*/      OPC_MoveParent,
/*168623*/      OPC_RecordChild1, // #2 = $src1
/*168624*/      OPC_RecordChild2, // #3 = $src2
/*168625*/      OPC_CheckType, MVT::f32,
/*168627*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168629*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168632*/      OPC_EmitMergeInputChains1_0,
/*168633*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 25
                // Dst: (VFNMSUB132SSZm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168646*/    /*Scope*/ 75, /*->168722*/
/*168647*/      OPC_RecordChild0, // #0 = $src2
/*168648*/      OPC_Scope, 35, /*->168685*/ // 2 children in Scope
/*168650*/        OPC_RecordChild1, // #1 = $src1
/*168651*/        OPC_MoveChild2,
/*168652*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168655*/        OPC_RecordMemRef,
/*168656*/        OPC_RecordNode, // #2 = 'ld' chained node
/*168657*/        OPC_CheckFoldableChainNode,
/*168658*/        OPC_RecordChild1, // #3 = $src3
/*168659*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168661*/        OPC_CheckPredicate, 9, // Predicate_load
/*168663*/        OPC_MoveParent,
/*168664*/        OPC_CheckType, MVT::f64,
/*168666*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168668*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168671*/        OPC_EmitMergeInputChains1_2,
/*168672*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFNMSUB213SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168685*/      /*Scope*/ 35, /*->168721*/
/*168686*/        OPC_MoveChild1,
/*168687*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168690*/        OPC_RecordMemRef,
/*168691*/        OPC_RecordNode, // #1 = 'ld' chained node
/*168692*/        OPC_CheckFoldableChainNode,
/*168693*/        OPC_RecordChild1, // #2 = $src3
/*168694*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168696*/        OPC_CheckPredicate, 9, // Predicate_load
/*168698*/        OPC_MoveParent,
/*168699*/        OPC_RecordChild2, // #3 = $src1
/*168700*/        OPC_CheckType, MVT::f64,
/*168702*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168704*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168707*/        OPC_EmitMergeInputChains1_1,
/*168708*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168721*/      0, /*End of Scope*/
/*168722*/    /*Scope*/ 82, /*->168805*/
/*168723*/      OPC_MoveChild0,
/*168724*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168727*/      OPC_RecordMemRef,
/*168728*/      OPC_RecordNode, // #0 = 'ld' chained node
/*168729*/      OPC_CheckFoldableChainNode,
/*168730*/      OPC_RecordChild1, // #1 = $src3
/*168731*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168733*/      OPC_CheckPredicate, 9, // Predicate_load
/*168735*/      OPC_MoveParent,
/*168736*/      OPC_RecordChild1, // #2 = $src1
/*168737*/      OPC_RecordChild2, // #3 = $src2
/*168738*/      OPC_SwitchType /*2 cases */, 42, MVT::f64,// ->168783
/*168741*/        OPC_Scope, 19, /*->168762*/ // 2 children in Scope
/*168743*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168745*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168748*/          OPC_EmitMergeInputChains1_0,
/*168749*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 25
                    // Dst: (VFNMSUB132SDZm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168762*/        /*Scope*/ 19, /*->168782*/
/*168763*/          OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*168765*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*168768*/          OPC_EmitMergeInputChains1_0,
/*168769*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fnmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3) - Complexity = 25
                    // Dst: (VFNMSUBSD4mr:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, FR64:{ *:[f64] }:$src3)
/*168782*/        0, /*End of Scope*/
/*168783*/      /*SwitchType*/ 19, MVT::f32,// ->168804
/*168785*/        OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*168787*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*168790*/        OPC_EmitMergeInputChains1_0,
/*168791*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMSUBSS4mr:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, FR32:{ *:[f32] }:$src3)
/*168804*/      0, // EndSwitchType
/*168805*/    /*Scope*/ 26|128,3/*410*/, /*->169217*/
/*168807*/      OPC_RecordChild0, // #0 = $src2
/*168808*/      OPC_Scope, 117|128,1/*245*/, /*->169056*/ // 2 children in Scope
/*168811*/        OPC_RecordChild1, // #1 = $src1
/*168812*/        OPC_Scope, 83, /*->168897*/ // 2 children in Scope
/*168814*/          OPC_RecordChild2, // #2 = $src3
/*168815*/          OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->168856
/*168818*/            OPC_Scope, 11, /*->168831*/ // 3 children in Scope
/*168820*/              OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*168822*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSr), 0,
                            MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFNMSUB213SSr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3)
/*168831*/            /*Scope*/ 11, /*->168843*/
/*168832*/              OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*168834*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSS4rr), 0,
                            MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFNMSUBSS4rr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3)
/*168843*/            /*Scope*/ 11, /*->168855*/
/*168844*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168846*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZr), 0,
                            MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFNMSUB213SSZr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3)
/*168855*/            0, /*End of Scope*/
/*168856*/          /*SwitchType*/ 38, MVT::f64,// ->168896
/*168858*/            OPC_Scope, 11, /*->168871*/ // 3 children in Scope
/*168860*/              OPC_CheckPatternPredicate, 163, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*168862*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDr), 0,
                            MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFNMSUB213SDr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3)
/*168871*/            /*Scope*/ 11, /*->168883*/
/*168872*/              OPC_CheckPatternPredicate, 164, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*168874*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBSD4rr), 0,
                            MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFNMSUBSD4rr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3)
/*168883*/            /*Scope*/ 11, /*->168895*/
/*168884*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168886*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZr), 0,
                            MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFNMSUB213SDZr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3)
/*168895*/            0, /*End of Scope*/
/*168896*/          0, // EndSwitchType
/*168897*/        /*Scope*/ 28|128,1/*156*/, /*->169055*/
/*168899*/          OPC_MoveChild2,
/*168900*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*168903*/          OPC_MoveChild0,
/*168904*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168907*/          OPC_RecordMemRef,
/*168908*/          OPC_RecordNode, // #2 = 'ld' chained node
/*168909*/          OPC_CheckFoldableChainNode,
/*168910*/          OPC_RecordChild1, // #3 = $src3
/*168911*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168913*/          OPC_CheckPredicate, 9, // Predicate_load
/*168915*/          OPC_SwitchType /*2 cases */, 67, MVT::f32,// ->168985
/*168918*/            OPC_MoveParent,
/*168919*/            OPC_MoveParent,
/*168920*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->168942
/*168923*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168925*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168928*/              OPC_EmitMergeInputChains1_2,
/*168929*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMSUB213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168942*/            /*SwitchType*/ 19, MVT::v8f32,// ->168963
/*168944*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168946*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168949*/              OPC_EmitMergeInputChains1_2,
/*168950*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMSUB213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168963*/            /*SwitchType*/ 19, MVT::v4f32,// ->168984
/*168965*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168967*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168970*/              OPC_EmitMergeInputChains1_2,
/*168971*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMSUB213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*168984*/            0, // EndSwitchType
/*168985*/          /*SwitchType*/ 67, MVT::f64,// ->169054
/*168987*/            OPC_MoveParent,
/*168988*/            OPC_MoveParent,
/*168989*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->169011
/*168992*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168994*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*168997*/              OPC_EmitMergeInputChains1_2,
/*168998*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMSUB213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169011*/            /*SwitchType*/ 19, MVT::v4f64,// ->169032
/*169013*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169015*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169018*/              OPC_EmitMergeInputChains1_2,
/*169019*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMSUB213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169032*/            /*SwitchType*/ 19, MVT::v2f64,// ->169053
/*169034*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169036*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169039*/              OPC_EmitMergeInputChains1_2,
/*169040*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VFNMSUB213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169053*/            0, // EndSwitchType
/*169054*/          0, // EndSwitchType
/*169055*/        0, /*End of Scope*/
/*169056*/      /*Scope*/ 30|128,1/*158*/, /*->169216*/
/*169058*/        OPC_MoveChild1,
/*169059*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*169062*/        OPC_MoveChild0,
/*169063*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169066*/        OPC_RecordMemRef,
/*169067*/        OPC_RecordNode, // #1 = 'ld' chained node
/*169068*/        OPC_CheckFoldableChainNode,
/*169069*/        OPC_RecordChild1, // #2 = $src3
/*169070*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169072*/        OPC_CheckPredicate, 9, // Predicate_load
/*169074*/        OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->169145
/*169077*/          OPC_MoveParent,
/*169078*/          OPC_MoveParent,
/*169079*/          OPC_RecordChild2, // #3 = $src1
/*169080*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->169102
/*169083*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169085*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169088*/            OPC_EmitMergeInputChains1_1,
/*169089*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                      // Dst: (VFNMSUB231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169102*/          /*SwitchType*/ 19, MVT::v8f32,// ->169123
/*169104*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169106*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169109*/            OPC_EmitMergeInputChains1_1,
/*169110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                      // Dst: (VFNMSUB231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169123*/          /*SwitchType*/ 19, MVT::v4f32,// ->169144
/*169125*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169127*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169130*/            OPC_EmitMergeInputChains1_1,
/*169131*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                      // Dst: (VFNMSUB231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169144*/          0, // EndSwitchType
/*169145*/        /*SwitchType*/ 68, MVT::f64,// ->169215
/*169147*/          OPC_MoveParent,
/*169148*/          OPC_MoveParent,
/*169149*/          OPC_RecordChild2, // #3 = $src1
/*169150*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->169172
/*169153*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169155*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169158*/            OPC_EmitMergeInputChains1_1,
/*169159*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                      // Dst: (VFNMSUB231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169172*/          /*SwitchType*/ 19, MVT::v4f64,// ->169193
/*169174*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169176*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169179*/            OPC_EmitMergeInputChains1_1,
/*169180*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                      // Dst: (VFNMSUB231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169193*/          /*SwitchType*/ 19, MVT::v2f64,// ->169214
/*169195*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169197*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169200*/            OPC_EmitMergeInputChains1_1,
/*169201*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                      // Dst: (VFNMSUB231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169214*/          0, // EndSwitchType
/*169215*/        0, // EndSwitchType
/*169216*/      0, /*End of Scope*/
/*169217*/    /*Scope*/ 32|128,1/*160*/, /*->169379*/
/*169219*/      OPC_MoveChild0,
/*169220*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*169223*/      OPC_MoveChild0,
/*169224*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169227*/      OPC_RecordMemRef,
/*169228*/      OPC_RecordNode, // #0 = 'ld' chained node
/*169229*/      OPC_CheckFoldableChainNode,
/*169230*/      OPC_RecordChild1, // #1 = $src3
/*169231*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169233*/      OPC_CheckPredicate, 9, // Predicate_load
/*169235*/      OPC_SwitchType /*2 cases */, 69, MVT::f32,// ->169307
/*169238*/        OPC_MoveParent,
/*169239*/        OPC_MoveParent,
/*169240*/        OPC_RecordChild1, // #2 = $src1
/*169241*/        OPC_RecordChild2, // #3 = $src2
/*169242*/        OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->169264
/*169245*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169247*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169250*/          OPC_EmitMergeInputChains1_0,
/*169251*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 28
                    // Dst: (VFNMSUB132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169264*/        /*SwitchType*/ 19, MVT::v8f32,// ->169285
/*169266*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169268*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169271*/          OPC_EmitMergeInputChains1_0,
/*169272*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 28
                    // Dst: (VFNMSUB132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169285*/        /*SwitchType*/ 19, MVT::v4f32,// ->169306
/*169287*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169289*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169292*/          OPC_EmitMergeInputChains1_0,
/*169293*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 28
                    // Dst: (VFNMSUB132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169306*/        0, // EndSwitchType
/*169307*/      /*SwitchType*/ 69, MVT::f64,// ->169378
/*169309*/        OPC_MoveParent,
/*169310*/        OPC_MoveParent,
/*169311*/        OPC_RecordChild1, // #2 = $src1
/*169312*/        OPC_RecordChild2, // #3 = $src2
/*169313*/        OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->169335
/*169316*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169318*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169321*/          OPC_EmitMergeInputChains1_0,
/*169322*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 28
                    // Dst: (VFNMSUB132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169335*/        /*SwitchType*/ 19, MVT::v4f64,// ->169356
/*169337*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169339*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169342*/          OPC_EmitMergeInputChains1_0,
/*169343*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 28
                    // Dst: (VFNMSUB132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169356*/        /*SwitchType*/ 19, MVT::v2f64,// ->169377
/*169358*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169360*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169363*/          OPC_EmitMergeInputChains1_0,
/*169364*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 28
                    // Dst: (VFNMSUB132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169377*/        0, // EndSwitchType
/*169378*/      0, // EndSwitchType
/*169379*/    /*Scope*/ 79, /*->169459*/
/*169380*/      OPC_RecordChild0, // #0 = $src2
/*169381*/      OPC_Scope, 37, /*->169420*/ // 2 children in Scope
/*169383*/        OPC_RecordChild1, // #1 = $src1
/*169384*/        OPC_MoveChild2,
/*169385*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169388*/        OPC_RecordMemRef,
/*169389*/        OPC_RecordNode, // #2 = 'ld' chained node
/*169390*/        OPC_CheckFoldableChainNode,
/*169391*/        OPC_RecordChild1, // #3 = $src3
/*169392*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169394*/        OPC_CheckPredicate, 9, // Predicate_load
/*169396*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169398*/        OPC_MoveParent,
/*169399*/        OPC_CheckType, MVT::v4f32,
/*169401*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169403*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169406*/        OPC_EmitMergeInputChains1_2,
/*169407*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMSUB213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169420*/      /*Scope*/ 37, /*->169458*/
/*169421*/        OPC_MoveChild1,
/*169422*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169425*/        OPC_RecordMemRef,
/*169426*/        OPC_RecordNode, // #1 = 'ld' chained node
/*169427*/        OPC_CheckFoldableChainNode,
/*169428*/        OPC_RecordChild1, // #2 = $src3
/*169429*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169431*/        OPC_CheckPredicate, 9, // Predicate_load
/*169433*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169435*/        OPC_MoveParent,
/*169436*/        OPC_RecordChild2, // #3 = $src1
/*169437*/        OPC_CheckType, MVT::v4f32,
/*169439*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169441*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169444*/        OPC_EmitMergeInputChains1_1,
/*169445*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169458*/      0, /*End of Scope*/
/*169459*/    /*Scope*/ 38, /*->169498*/
/*169460*/      OPC_MoveChild0,
/*169461*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169464*/      OPC_RecordMemRef,
/*169465*/      OPC_RecordNode, // #0 = 'ld' chained node
/*169466*/      OPC_CheckFoldableChainNode,
/*169467*/      OPC_RecordChild1, // #1 = $src3
/*169468*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169470*/      OPC_CheckPredicate, 9, // Predicate_load
/*169472*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*169474*/      OPC_MoveParent,
/*169475*/      OPC_RecordChild1, // #2 = $src1
/*169476*/      OPC_RecordChild2, // #3 = $src2
/*169477*/      OPC_CheckType, MVT::v4f32,
/*169479*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169481*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169484*/      OPC_EmitMergeInputChains1_0,
/*169485*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFNMSUB132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169498*/    /*Scope*/ 79, /*->169578*/
/*169499*/      OPC_RecordChild0, // #0 = $src2
/*169500*/      OPC_Scope, 37, /*->169539*/ // 2 children in Scope
/*169502*/        OPC_RecordChild1, // #1 = $src1
/*169503*/        OPC_MoveChild2,
/*169504*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169507*/        OPC_RecordMemRef,
/*169508*/        OPC_RecordNode, // #2 = 'ld' chained node
/*169509*/        OPC_CheckFoldableChainNode,
/*169510*/        OPC_RecordChild1, // #3 = $src3
/*169511*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169513*/        OPC_CheckPredicate, 9, // Predicate_load
/*169515*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169517*/        OPC_MoveParent,
/*169518*/        OPC_CheckType, MVT::v8f32,
/*169520*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169522*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169525*/        OPC_EmitMergeInputChains1_2,
/*169526*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMSUB213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169539*/      /*Scope*/ 37, /*->169577*/
/*169540*/        OPC_MoveChild1,
/*169541*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169544*/        OPC_RecordMemRef,
/*169545*/        OPC_RecordNode, // #1 = 'ld' chained node
/*169546*/        OPC_CheckFoldableChainNode,
/*169547*/        OPC_RecordChild1, // #2 = $src3
/*169548*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169550*/        OPC_CheckPredicate, 9, // Predicate_load
/*169552*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169554*/        OPC_MoveParent,
/*169555*/        OPC_RecordChild2, // #3 = $src1
/*169556*/        OPC_CheckType, MVT::v8f32,
/*169558*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169560*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169563*/        OPC_EmitMergeInputChains1_1,
/*169564*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169577*/      0, /*End of Scope*/
/*169578*/    /*Scope*/ 38, /*->169617*/
/*169579*/      OPC_MoveChild0,
/*169580*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169583*/      OPC_RecordMemRef,
/*169584*/      OPC_RecordNode, // #0 = 'ld' chained node
/*169585*/      OPC_CheckFoldableChainNode,
/*169586*/      OPC_RecordChild1, // #1 = $src3
/*169587*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169589*/      OPC_CheckPredicate, 9, // Predicate_load
/*169591*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*169593*/      OPC_MoveParent,
/*169594*/      OPC_RecordChild1, // #2 = $src1
/*169595*/      OPC_RecordChild2, // #3 = $src2
/*169596*/      OPC_CheckType, MVT::v8f32,
/*169598*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169600*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169603*/      OPC_EmitMergeInputChains1_0,
/*169604*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFNMSUB132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169617*/    /*Scope*/ 79, /*->169697*/
/*169618*/      OPC_RecordChild0, // #0 = $src2
/*169619*/      OPC_Scope, 37, /*->169658*/ // 2 children in Scope
/*169621*/        OPC_RecordChild1, // #1 = $src1
/*169622*/        OPC_MoveChild2,
/*169623*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169626*/        OPC_RecordMemRef,
/*169627*/        OPC_RecordNode, // #2 = 'ld' chained node
/*169628*/        OPC_CheckFoldableChainNode,
/*169629*/        OPC_RecordChild1, // #3 = $src3
/*169630*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169632*/        OPC_CheckPredicate, 9, // Predicate_load
/*169634*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169636*/        OPC_MoveParent,
/*169637*/        OPC_CheckType, MVT::v2f64,
/*169639*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169641*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169644*/        OPC_EmitMergeInputChains1_2,
/*169645*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMSUB213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169658*/      /*Scope*/ 37, /*->169696*/
/*169659*/        OPC_MoveChild1,
/*169660*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169663*/        OPC_RecordMemRef,
/*169664*/        OPC_RecordNode, // #1 = 'ld' chained node
/*169665*/        OPC_CheckFoldableChainNode,
/*169666*/        OPC_RecordChild1, // #2 = $src3
/*169667*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169669*/        OPC_CheckPredicate, 9, // Predicate_load
/*169671*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169673*/        OPC_MoveParent,
/*169674*/        OPC_RecordChild2, // #3 = $src1
/*169675*/        OPC_CheckType, MVT::v2f64,
/*169677*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169679*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169682*/        OPC_EmitMergeInputChains1_1,
/*169683*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169696*/      0, /*End of Scope*/
/*169697*/    /*Scope*/ 38, /*->169736*/
/*169698*/      OPC_MoveChild0,
/*169699*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169702*/      OPC_RecordMemRef,
/*169703*/      OPC_RecordNode, // #0 = 'ld' chained node
/*169704*/      OPC_CheckFoldableChainNode,
/*169705*/      OPC_RecordChild1, // #1 = $src3
/*169706*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169708*/      OPC_CheckPredicate, 9, // Predicate_load
/*169710*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*169712*/      OPC_MoveParent,
/*169713*/      OPC_RecordChild1, // #2 = $src1
/*169714*/      OPC_RecordChild2, // #3 = $src2
/*169715*/      OPC_CheckType, MVT::v2f64,
/*169717*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169719*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169722*/      OPC_EmitMergeInputChains1_0,
/*169723*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFNMSUB132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169736*/    /*Scope*/ 79, /*->169816*/
/*169737*/      OPC_RecordChild0, // #0 = $src2
/*169738*/      OPC_Scope, 37, /*->169777*/ // 2 children in Scope
/*169740*/        OPC_RecordChild1, // #1 = $src1
/*169741*/        OPC_MoveChild2,
/*169742*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169745*/        OPC_RecordMemRef,
/*169746*/        OPC_RecordNode, // #2 = 'ld' chained node
/*169747*/        OPC_CheckFoldableChainNode,
/*169748*/        OPC_RecordChild1, // #3 = $src3
/*169749*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169751*/        OPC_CheckPredicate, 9, // Predicate_load
/*169753*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169755*/        OPC_MoveParent,
/*169756*/        OPC_CheckType, MVT::v4f64,
/*169758*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169760*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169763*/        OPC_EmitMergeInputChains1_2,
/*169764*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMSUB213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169777*/      /*Scope*/ 37, /*->169815*/
/*169778*/        OPC_MoveChild1,
/*169779*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169782*/        OPC_RecordMemRef,
/*169783*/        OPC_RecordNode, // #1 = 'ld' chained node
/*169784*/        OPC_CheckFoldableChainNode,
/*169785*/        OPC_RecordChild1, // #2 = $src3
/*169786*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169788*/        OPC_CheckPredicate, 9, // Predicate_load
/*169790*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169792*/        OPC_MoveParent,
/*169793*/        OPC_RecordChild2, // #3 = $src1
/*169794*/        OPC_CheckType, MVT::v4f64,
/*169796*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169798*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169801*/        OPC_EmitMergeInputChains1_1,
/*169802*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169815*/      0, /*End of Scope*/
/*169816*/    /*Scope*/ 38, /*->169855*/
/*169817*/      OPC_MoveChild0,
/*169818*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169821*/      OPC_RecordMemRef,
/*169822*/      OPC_RecordNode, // #0 = 'ld' chained node
/*169823*/      OPC_CheckFoldableChainNode,
/*169824*/      OPC_RecordChild1, // #1 = $src3
/*169825*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169827*/      OPC_CheckPredicate, 9, // Predicate_load
/*169829*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*169831*/      OPC_MoveParent,
/*169832*/      OPC_RecordChild1, // #2 = $src1
/*169833*/      OPC_RecordChild2, // #3 = $src2
/*169834*/      OPC_CheckType, MVT::v4f64,
/*169836*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169838*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169841*/      OPC_EmitMergeInputChains1_0,
/*169842*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fnmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFNMSUB132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169855*/    /*Scope*/ 87|128,4/*599*/, /*->170456*/
/*169857*/      OPC_RecordChild0, // #0 = $src1
/*169858*/      OPC_Scope, 37, /*->169897*/ // 10 children in Scope
/*169860*/        OPC_RecordChild1, // #1 = $src2
/*169861*/        OPC_MoveChild2,
/*169862*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169865*/        OPC_RecordMemRef,
/*169866*/        OPC_RecordNode, // #2 = 'ld' chained node
/*169867*/        OPC_CheckFoldableChainNode,
/*169868*/        OPC_RecordChild1, // #3 = $src3
/*169869*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169871*/        OPC_CheckPredicate, 9, // Predicate_load
/*169873*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169875*/        OPC_MoveParent,
/*169876*/        OPC_CheckType, MVT::v4f32,
/*169878*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169880*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169883*/        OPC_EmitMergeInputChains1_2,
/*169884*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMSUBPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169897*/      /*Scope*/ 37, /*->169935*/
/*169898*/        OPC_MoveChild1,
/*169899*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169902*/        OPC_RecordMemRef,
/*169903*/        OPC_RecordNode, // #1 = 'ld' chained node
/*169904*/        OPC_CheckFoldableChainNode,
/*169905*/        OPC_RecordChild1, // #2 = $src2
/*169906*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169908*/        OPC_CheckPredicate, 9, // Predicate_load
/*169910*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169912*/        OPC_MoveParent,
/*169913*/        OPC_RecordChild2, // #3 = $src3
/*169914*/        OPC_CheckType, MVT::v4f32,
/*169916*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169918*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*169921*/        OPC_EmitMergeInputChains1_1,
/*169922*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*169935*/      /*Scope*/ 37, /*->169973*/
/*169936*/        OPC_RecordChild1, // #1 = $src2
/*169937*/        OPC_MoveChild2,
/*169938*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169941*/        OPC_RecordMemRef,
/*169942*/        OPC_RecordNode, // #2 = 'ld' chained node
/*169943*/        OPC_CheckFoldableChainNode,
/*169944*/        OPC_RecordChild1, // #3 = $src3
/*169945*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169947*/        OPC_CheckPredicate, 9, // Predicate_load
/*169949*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169951*/        OPC_MoveParent,
/*169952*/        OPC_CheckType, MVT::v8f32,
/*169954*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169956*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*169959*/        OPC_EmitMergeInputChains1_2,
/*169960*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPS4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMSUBPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*169973*/      /*Scope*/ 37, /*->170011*/
/*169974*/        OPC_MoveChild1,
/*169975*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*169978*/        OPC_RecordMemRef,
/*169979*/        OPC_RecordNode, // #1 = 'ld' chained node
/*169980*/        OPC_CheckFoldableChainNode,
/*169981*/        OPC_RecordChild1, // #2 = $src2
/*169982*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169984*/        OPC_CheckPredicate, 9, // Predicate_load
/*169986*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*169988*/        OPC_MoveParent,
/*169989*/        OPC_RecordChild2, // #3 = $src3
/*169990*/        OPC_CheckType, MVT::v8f32,
/*169992*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*169994*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*169997*/        OPC_EmitMergeInputChains1_1,
/*169998*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*170011*/      /*Scope*/ 37, /*->170049*/
/*170012*/        OPC_RecordChild1, // #1 = $src2
/*170013*/        OPC_MoveChild2,
/*170014*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*170017*/        OPC_RecordMemRef,
/*170018*/        OPC_RecordNode, // #2 = 'ld' chained node
/*170019*/        OPC_CheckFoldableChainNode,
/*170020*/        OPC_RecordChild1, // #3 = $src3
/*170021*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*170023*/        OPC_CheckPredicate, 9, // Predicate_load
/*170025*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*170027*/        OPC_MoveParent,
/*170028*/        OPC_CheckType, MVT::v2f64,
/*170030*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170032*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170035*/        OPC_EmitMergeInputChains1_2,
/*170036*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMSUBPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170049*/      /*Scope*/ 37, /*->170087*/
/*170050*/        OPC_MoveChild1,
/*170051*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*170054*/        OPC_RecordMemRef,
/*170055*/        OPC_RecordNode, // #1 = 'ld' chained node
/*170056*/        OPC_CheckFoldableChainNode,
/*170057*/        OPC_RecordChild1, // #2 = $src2
/*170058*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*170060*/        OPC_CheckPredicate, 9, // Predicate_load
/*170062*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*170064*/        OPC_MoveParent,
/*170065*/        OPC_RecordChild2, // #3 = $src3
/*170066*/        OPC_CheckType, MVT::v2f64,
/*170068*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170070*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*170073*/        OPC_EmitMergeInputChains1_1,
/*170074*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFNMSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*170087*/      /*Scope*/ 37, /*->170125*/
/*170088*/        OPC_RecordChild1, // #1 = $src2
/*170089*/        OPC_MoveChild2,
/*170090*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*170093*/        OPC_RecordMemRef,
/*170094*/        OPC_RecordNode, // #2 = 'ld' chained node
/*170095*/        OPC_CheckFoldableChainNode,
/*170096*/        OPC_RecordChild1, // #3 = $src3
/*170097*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*170099*/        OPC_CheckPredicate, 9, // Predicate_load
/*170101*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*170103*/        OPC_MoveParent,
/*170104*/        OPC_CheckType, MVT::v4f64,
/*170106*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170108*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170111*/        OPC_EmitMergeInputChains1_2,
/*170112*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPD4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFNMSUBPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170125*/      /*Scope*/ 37, /*->170163*/
/*170126*/        OPC_MoveChild1,
/*170127*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*170130*/        OPC_RecordMemRef,
/*170131*/        OPC_RecordNode, // #1 = 'ld' chained node
/*170132*/        OPC_CheckFoldableChainNode,
/*170133*/        OPC_RecordChild1, // #2 = $src2
/*170134*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*170136*/        OPC_CheckPredicate, 9, // Predicate_load
/*170138*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*170140*/        OPC_MoveParent,
/*170141*/        OPC_RecordChild2, // #3 = $src3
/*170142*/        OPC_CheckType, MVT::v4f64,
/*170144*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170146*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*170149*/        OPC_EmitMergeInputChains1_1,
/*170150*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fnmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFNMSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*170163*/      /*Scope*/ 16|128,1/*144*/, /*->170309*/
/*170165*/        OPC_RecordChild1, // #1 = $src1
/*170166*/        OPC_MoveChild2,
/*170167*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*170170*/        OPC_RecordMemRef,
/*170171*/        OPC_RecordNode, // #2 = 'ld' chained node
/*170172*/        OPC_CheckFoldableChainNode,
/*170173*/        OPC_RecordChild1, // #3 = $src3
/*170174*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*170176*/        OPC_CheckPredicate, 9, // Predicate_load
/*170178*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*170180*/        OPC_MoveParent,
/*170181*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->170203
/*170184*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170186*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170189*/          OPC_EmitMergeInputChains1_2,
/*170190*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMSUB213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170203*/        /*SwitchType*/ 19, MVT::v8f32,// ->170224
/*170205*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170207*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170210*/          OPC_EmitMergeInputChains1_2,
/*170211*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMSUB213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170224*/        /*SwitchType*/ 19, MVT::v4f32,// ->170245
/*170226*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170228*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170231*/          OPC_EmitMergeInputChains1_2,
/*170232*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMSUB213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170245*/        /*SwitchType*/ 19, MVT::v8f64,// ->170266
/*170247*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170249*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170252*/          OPC_EmitMergeInputChains1_2,
/*170253*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMSUB213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170266*/        /*SwitchType*/ 19, MVT::v4f64,// ->170287
/*170268*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170270*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170273*/          OPC_EmitMergeInputChains1_2,
/*170274*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMSUB213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170287*/        /*SwitchType*/ 19, MVT::v2f64,// ->170308
/*170289*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170291*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170294*/          OPC_EmitMergeInputChains1_2,
/*170295*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFNMSUB213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170308*/        0, // EndSwitchType
/*170309*/      /*Scope*/ 16|128,1/*144*/, /*->170455*/
/*170311*/        OPC_MoveChild1,
/*170312*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*170315*/        OPC_RecordMemRef,
/*170316*/        OPC_RecordNode, // #1 = 'ld' chained node
/*170317*/        OPC_CheckFoldableChainNode,
/*170318*/        OPC_RecordChild1, // #2 = $src3
/*170319*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*170321*/        OPC_CheckPredicate, 9, // Predicate_load
/*170323*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*170325*/        OPC_MoveParent,
/*170326*/        OPC_RecordChild2, // #3 = $src1
/*170327*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->170349
/*170330*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170332*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170335*/          OPC_EmitMergeInputChains1_1,
/*170336*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VFNMSUB231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170349*/        /*SwitchType*/ 19, MVT::v8f32,// ->170370
/*170351*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170353*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170356*/          OPC_EmitMergeInputChains1_1,
/*170357*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VFNMSUB231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170370*/        /*SwitchType*/ 19, MVT::v4f32,// ->170391
/*170372*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170374*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170377*/          OPC_EmitMergeInputChains1_1,
/*170378*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VFNMSUB231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170391*/        /*SwitchType*/ 19, MVT::v8f64,// ->170412
/*170393*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170395*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170398*/          OPC_EmitMergeInputChains1_1,
/*170399*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VFNMSUB231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170412*/        /*SwitchType*/ 19, MVT::v4f64,// ->170433
/*170414*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170416*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170419*/          OPC_EmitMergeInputChains1_1,
/*170420*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VFNMSUB231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170433*/        /*SwitchType*/ 19, MVT::v2f64,// ->170454
/*170435*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170437*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170440*/          OPC_EmitMergeInputChains1_1,
/*170441*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VFNMSUB231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170454*/        0, // EndSwitchType
/*170455*/      0, /*End of Scope*/
/*170456*/    /*Scope*/ 109|128,1/*237*/, /*->170695*/
/*170458*/      OPC_MoveChild0,
/*170459*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*170462*/      OPC_RecordMemRef,
/*170463*/      OPC_RecordNode, // #0 = 'ld' chained node
/*170464*/      OPC_CheckFoldableChainNode,
/*170465*/      OPC_RecordChild1, // #1 = $src3
/*170466*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*170468*/      OPC_CheckPredicate, 9, // Predicate_load
/*170470*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*170472*/      OPC_MoveParent,
/*170473*/      OPC_RecordChild1, // #2 = $src1
/*170474*/      OPC_RecordChild2, // #3 = $src2
/*170475*/      OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->170497
/*170478*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170480*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170483*/        OPC_EmitMergeInputChains1_0,
/*170484*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                  // Dst: (VFNMSUB132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170497*/      /*SwitchType*/ 42, MVT::v8f32,// ->170541
/*170499*/        OPC_Scope, 19, /*->170520*/ // 2 children in Scope
/*170501*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170503*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170506*/          OPC_EmitMergeInputChains1_0,
/*170507*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                    // Dst: (VFNMSUB132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170520*/        /*Scope*/ 19, /*->170540*/
/*170521*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170523*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*170526*/          OPC_EmitMergeInputChains1_0,
/*170527*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fnmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                    // Dst: (VFNMSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*170540*/        0, /*End of Scope*/
/*170541*/      /*SwitchType*/ 42, MVT::v4f32,// ->170585
/*170543*/        OPC_Scope, 19, /*->170564*/ // 2 children in Scope
/*170545*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170547*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170550*/          OPC_EmitMergeInputChains1_0,
/*170551*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                    // Dst: (VFNMSUB132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170564*/        /*Scope*/ 19, /*->170584*/
/*170565*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170567*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*170570*/          OPC_EmitMergeInputChains1_0,
/*170571*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fnmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                    // Dst: (VFNMSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*170584*/        0, /*End of Scope*/
/*170585*/      /*SwitchType*/ 19, MVT::v8f64,// ->170606
/*170587*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170589*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170592*/        OPC_EmitMergeInputChains1_0,
/*170593*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fnmsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                  // Dst: (VFNMSUB132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170606*/      /*SwitchType*/ 42, MVT::v4f64,// ->170650
/*170608*/        OPC_Scope, 19, /*->170629*/ // 2 children in Scope
/*170610*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170612*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170615*/          OPC_EmitMergeInputChains1_0,
/*170616*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                    // Dst: (VFNMSUB132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170629*/        /*Scope*/ 19, /*->170649*/
/*170630*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170632*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*170635*/          OPC_EmitMergeInputChains1_0,
/*170636*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fnmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                    // Dst: (VFNMSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*170649*/        0, /*End of Scope*/
/*170650*/      /*SwitchType*/ 42, MVT::v2f64,// ->170694
/*170652*/        OPC_Scope, 19, /*->170673*/ // 2 children in Scope
/*170654*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170656*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*170659*/          OPC_EmitMergeInputChains1_0,
/*170660*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fnmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                    // Dst: (VFNMSUB132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*170673*/        /*Scope*/ 19, /*->170693*/
/*170674*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170676*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*170679*/          OPC_EmitMergeInputChains1_0,
/*170680*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fnmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                    // Dst: (VFNMSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*170693*/        0, /*End of Scope*/
/*170694*/      0, // EndSwitchType
/*170695*/    /*Scope*/ 63|128,1/*191*/, /*->170888*/
/*170697*/      OPC_RecordChild0, // #0 = $src2
/*170698*/      OPC_RecordChild1, // #1 = $src1
/*170699*/      OPC_RecordChild2, // #2 = $src3
/*170700*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->170741
/*170703*/        OPC_Scope, 11, /*->170716*/ // 3 children in Scope
/*170705*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170707*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSr), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUB213PSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*170716*/        /*Scope*/ 11, /*->170728*/
/*170717*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170719*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPS4rr), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fnmsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUBPS4rr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*170728*/        /*Scope*/ 11, /*->170740*/
/*170729*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170731*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ128r), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUB213PSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*170740*/        0, /*End of Scope*/
/*170741*/      /*SwitchType*/ 38, MVT::v8f32,// ->170781
/*170743*/        OPC_Scope, 11, /*->170756*/ // 3 children in Scope
/*170745*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170747*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSYr), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUB213PSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*170756*/        /*Scope*/ 11, /*->170768*/
/*170757*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170759*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPS4Yrr), 0,
                        MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fnmsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUBPS4Yrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*170768*/        /*Scope*/ 11, /*->170780*/
/*170769*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170771*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ256r), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUB213PSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*170780*/        0, /*End of Scope*/
/*170781*/      /*SwitchType*/ 38, MVT::v2f64,// ->170821
/*170783*/        OPC_Scope, 11, /*->170796*/ // 3 children in Scope
/*170785*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170787*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDr), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUB213PDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*170796*/        /*Scope*/ 11, /*->170808*/
/*170797*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170799*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPD4rr), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fnmsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUBPD4rr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*170808*/        /*Scope*/ 11, /*->170820*/
/*170809*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170811*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ128r), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUB213PDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*170820*/        0, /*End of Scope*/
/*170821*/      /*SwitchType*/ 38, MVT::v4f64,// ->170861
/*170823*/        OPC_Scope, 11, /*->170836*/ // 3 children in Scope
/*170825*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170827*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDYr), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUB213PDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*170836*/        /*Scope*/ 11, /*->170848*/
/*170837*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*170839*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUBPD4Yrr), 0,
                        MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fnmsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUBPD4Yrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*170848*/        /*Scope*/ 11, /*->170860*/
/*170849*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170851*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ256r), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFNMSUB213PDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*170860*/        0, /*End of Scope*/
/*170861*/      /*SwitchType*/ 11, MVT::v16f32,// ->170874
/*170863*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170865*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZr), 0,
                      MVT::v16f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3) - Complexity = 3
                  // Dst: (VFNMSUB213PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*170874*/      /*SwitchType*/ 11, MVT::v8f64,// ->170887
/*170876*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170878*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZr), 0,
                      MVT::v8f64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3) - Complexity = 3
                  // Dst: (VFNMSUB213PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*170887*/      0, // EndSwitchType
/*170888*/    0, /*End of Scope*/
/*170889*/  /*SwitchOpcode*/ 39|128,11/*1447*/, TARGET_VAL(ISD::SINT_TO_FP),// ->172340
/*170893*/    OPC_Scope, 59|128,2/*315*/, /*->171211*/ // 4 children in Scope
/*170896*/      OPC_MoveChild0,
/*170897*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*170900*/      OPC_RecordMemRef,
/*170901*/      OPC_RecordNode, // #0 = 'ld' chained node
/*170902*/      OPC_RecordChild1, // #1 = $src
/*170903*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*170905*/      OPC_SwitchType /*2 cases */, 21|128,1/*149*/, MVT::i32,// ->171058
/*170909*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*170911*/        OPC_MoveParent,
/*170912*/        OPC_SwitchType /*2 cases */, 70, MVT::f32,// ->170985
/*170915*/          OPC_Scope, 17, /*->170934*/ // 3 children in Scope
/*170917*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*170919*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*170922*/            OPC_EmitMergeInputChains1_0,
/*170923*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*170934*/          /*Scope*/ 24, /*->170959*/
/*170935*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*170937*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*170940*/            OPC_EmitMergeInputChains1_0,
/*170941*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #7
/*170947*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*170959*/          /*Scope*/ 24, /*->170984*/
/*170960*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170962*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*170965*/            OPC_EmitMergeInputChains1_0,
/*170966*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #7
/*170972*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VCVTSI2SSZrm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src)
/*170984*/          0, /*End of Scope*/
/*170985*/        /*SwitchType*/ 70, MVT::f64,// ->171057
/*170987*/          OPC_Scope, 17, /*->171006*/ // 3 children in Scope
/*170989*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*170991*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*170994*/            OPC_EmitMergeInputChains1_0,
/*170995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*171006*/          /*Scope*/ 24, /*->171031*/
/*171007*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*171009*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171012*/            OPC_EmitMergeInputChains1_0,
/*171013*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #7
/*171019*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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)
/*171031*/          /*Scope*/ 24, /*->171056*/
/*171032*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171034*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171037*/            OPC_EmitMergeInputChains1_0,
/*171038*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #7
/*171044*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VCVTSI2SDZrm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*171056*/          0, /*End of Scope*/
/*171057*/        0, // EndSwitchType
/*171058*/      /*SwitchType*/ 21|128,1/*149*/, MVT::i64,// ->171210
/*171061*/        OPC_CheckPredicate, 9, // Predicate_load
/*171063*/        OPC_MoveParent,
/*171064*/        OPC_SwitchType /*2 cases */, 70, MVT::f32,// ->171137
/*171067*/          OPC_Scope, 17, /*->171086*/ // 3 children in Scope
/*171069*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*171071*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171074*/            OPC_EmitMergeInputChains1_0,
/*171075*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (CVTSI642SSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*171086*/          /*Scope*/ 24, /*->171111*/
/*171087*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*171089*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171092*/            OPC_EmitMergeInputChains1_0,
/*171093*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #7
/*171099*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VCVTSI642SSrm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src)
/*171111*/          /*Scope*/ 24, /*->171136*/
/*171112*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171114*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171117*/            OPC_EmitMergeInputChains1_0,
/*171118*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #7
/*171124*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VCVTSI642SSZrm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src)
/*171136*/          0, /*End of Scope*/
/*171137*/        /*SwitchType*/ 70, MVT::f64,// ->171209
/*171139*/          OPC_Scope, 17, /*->171158*/ // 3 children in Scope
/*171141*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*171143*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171146*/            OPC_EmitMergeInputChains1_0,
/*171147*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (CVTSI642SDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*171158*/          /*Scope*/ 24, /*->171183*/
/*171159*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*171161*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171164*/            OPC_EmitMergeInputChains1_0,
/*171165*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #7
/*171171*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VCVTSI642SDrm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*171183*/          /*Scope*/ 24, /*->171208*/
/*171184*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171186*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171189*/            OPC_EmitMergeInputChains1_0,
/*171190*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #7
/*171196*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VCVTSI642SDZrm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*171208*/          0, /*End of Scope*/
/*171209*/        0, // EndSwitchType
/*171210*/      0, // EndSwitchType
/*171211*/    /*Scope*/ 77|128,1/*205*/, /*->171418*/
/*171213*/      OPC_RecordChild0, // #0 = $src
/*171214*/      OPC_Scope, 100, /*->171316*/ // 2 children in Scope
/*171216*/        OPC_CheckChild0Type, MVT::i32,
/*171218*/        OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->171267
/*171221*/          OPC_Scope, 9, /*->171232*/ // 3 children in Scope
/*171223*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*171225*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SSrr), 0,
                          MVT::f32, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (CVTSI2SSrr:{ *:[f32] } GR32:{ *:[i32] }:$src)
/*171232*/          /*Scope*/ 16, /*->171249*/
/*171233*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*171235*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #1
/*171241*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSrr), 0,
                          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)
/*171249*/          /*Scope*/ 16, /*->171266*/
/*171250*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171252*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #1
/*171258*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrr), 0,
                          MVT::f32, 2/*#Ops*/, 1, 0, 
                      // Src: (sint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VCVTSI2SSZrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), GR32:{ *:[i32] }:$src)
/*171266*/          0, /*End of Scope*/
/*171267*/        /*SwitchType*/ 46, MVT::f64,// ->171315
/*171269*/          OPC_Scope, 9, /*->171280*/ // 3 children in Scope
/*171271*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*171273*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SDrr), 0,
                          MVT::f64, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (CVTSI2SDrr:{ *:[f64] } GR32:{ *:[i32] }:$src)
/*171280*/          /*Scope*/ 16, /*->171297*/
/*171281*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*171283*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #1
/*171289*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDrr), 0,
                          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)
/*171297*/          /*Scope*/ 16, /*->171314*/
/*171298*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171300*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #1
/*171306*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDZrr), 0,
                          MVT::f64, 2/*#Ops*/, 1, 0, 
                      // Src: (sint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VCVTSI2SDZrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), GR32:{ *:[i32] }:$src)
/*171314*/          0, /*End of Scope*/
/*171315*/        0, // EndSwitchType
/*171316*/      /*Scope*/ 100, /*->171417*/
/*171317*/        OPC_CheckChild0Type, MVT::i64,
/*171319*/        OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->171368
/*171322*/          OPC_Scope, 9, /*->171333*/ // 3 children in Scope
/*171324*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*171326*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SSrr), 0,
                          MVT::f32, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (CVTSI642SSrr:{ *:[f32] } GR64:{ *:[i64] }:$src)
/*171333*/          /*Scope*/ 16, /*->171350*/
/*171334*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*171336*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #1
/*171342*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSrr), 0,
                          MVT::f32, 2/*#Ops*/, 1, 0, 
                      // Src: (sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VCVTSI642SSrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), GR64:{ *:[i64] }:$src)
/*171350*/          /*Scope*/ 16, /*->171367*/
/*171351*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171353*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #1
/*171359*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrr), 0,
                          MVT::f32, 2/*#Ops*/, 1, 0, 
                      // Src: (sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VCVTSI642SSZrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), GR64:{ *:[i64] }:$src)
/*171367*/          0, /*End of Scope*/
/*171368*/        /*SwitchType*/ 46, MVT::f64,// ->171416
/*171370*/          OPC_Scope, 9, /*->171381*/ // 3 children in Scope
/*171372*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*171374*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SDrr), 0,
                          MVT::f64, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (CVTSI642SDrr:{ *:[f64] } GR64:{ *:[i64] }:$src)
/*171381*/          /*Scope*/ 16, /*->171398*/
/*171382*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*171384*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #1
/*171390*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDrr), 0,
                          MVT::f64, 2/*#Ops*/, 1, 0, 
                      // Src: (sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VCVTSI642SDrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), GR64:{ *:[i64] }:$src)
/*171398*/          /*Scope*/ 16, /*->171415*/
/*171399*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171401*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #1
/*171407*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrr), 0,
                          MVT::f64, 2/*#Ops*/, 1, 0, 
                      // Src: (sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VCVTSI642SDZrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), GR64:{ *:[i64] }:$src)
/*171415*/          0, /*End of Scope*/
/*171416*/        0, // EndSwitchType
/*171417*/      0, /*End of Scope*/
/*171418*/    /*Scope*/ 91|128,4/*603*/, /*->172023*/
/*171420*/      OPC_MoveChild0,
/*171421*/      OPC_SwitchOpcode /*3 cases */, 100|128,1/*228*/, TARGET_VAL(ISD::BITCAST),// ->171654
/*171426*/        OPC_MoveChild0,
/*171427*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*171430*/        OPC_RecordMemRef,
/*171431*/        OPC_RecordNode, // #0 = 'ld' chained node
/*171432*/        OPC_CheckFoldableChainNode,
/*171433*/        OPC_RecordChild1, // #1 = $src
/*171434*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*171436*/        OPC_CheckPredicate, 9, // Predicate_load
/*171438*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*171440*/        OPC_SwitchType /*3 cases */, 118, MVT::v2i64,// ->171561
/*171443*/          OPC_Scope, 23, /*->171468*/ // 3 children in Scope
/*171445*/            OPC_MoveParent,
/*171446*/            OPC_CheckType, MVT::v4i32,
/*171448*/            OPC_MoveParent,
/*171449*/            OPC_CheckType, MVT::v4f32,
/*171451*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*171453*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171456*/            OPC_EmitMergeInputChains1_0,
/*171457*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sint_to_fp:{ *:[v4f32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VCVTDQ2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*171468*/          /*Scope*/ 25, /*->171494*/
/*171469*/            OPC_CheckPredicate, 48, // Predicate_memop
/*171471*/            OPC_MoveParent,
/*171472*/            OPC_CheckType, MVT::v4i32,
/*171474*/            OPC_MoveParent,
/*171475*/            OPC_CheckType, MVT::v4f32,
/*171477*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*171479*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171482*/            OPC_EmitMergeInputChains1_0,
/*171483*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTDQ2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sint_to_fp:{ *:[v4f32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (CVTDQ2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*171494*/          /*Scope*/ 65, /*->171560*/
/*171495*/            OPC_MoveParent,
/*171496*/            OPC_CheckType, MVT::v4i32,
/*171498*/            OPC_MoveParent,
/*171499*/            OPC_SwitchType /*2 cases */, 38, MVT::v4f64,// ->171540
/*171502*/              OPC_Scope, 17, /*->171521*/ // 2 children in Scope
/*171504*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*171506*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171509*/                OPC_EmitMergeInputChains1_0,
/*171510*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sint_to_fp:{ *:[v4f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VCVTDQ2PDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*171521*/              /*Scope*/ 17, /*->171539*/
/*171522*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171524*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171527*/                OPC_EmitMergeInputChains1_0,
/*171528*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sint_to_fp:{ *:[v4f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VCVTDQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*171539*/              0, /*End of Scope*/
/*171540*/            /*SwitchType*/ 17, MVT::v4f32,// ->171559
/*171542*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171544*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171547*/              OPC_EmitMergeInputChains1_0,
/*171548*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sint_to_fp:{ *:[v4f32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VCVTDQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*171559*/            0, // EndSwitchType
/*171560*/          0, /*End of Scope*/
/*171561*/        /*SwitchType*/ 65, MVT::v4i64,// ->171628
/*171563*/          OPC_MoveParent,
/*171564*/          OPC_CheckType, MVT::v8i32,
/*171566*/          OPC_MoveParent,
/*171567*/          OPC_SwitchType /*2 cases */, 38, MVT::v8f32,// ->171608
/*171570*/            OPC_Scope, 17, /*->171589*/ // 2 children in Scope
/*171572*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*171574*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171577*/              OPC_EmitMergeInputChains1_0,
/*171578*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sint_to_fp:{ *:[v8f32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VCVTDQ2PSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*171589*/            /*Scope*/ 17, /*->171607*/
/*171590*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171592*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171595*/              OPC_EmitMergeInputChains1_0,
/*171596*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sint_to_fp:{ *:[v8f32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VCVTDQ2PSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*171607*/            0, /*End of Scope*/
/*171608*/          /*SwitchType*/ 17, MVT::v8f64,// ->171627
/*171610*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171612*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171615*/            OPC_EmitMergeInputChains1_0,
/*171616*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sint_to_fp:{ *:[v8f64] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VCVTDQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*171627*/          0, // EndSwitchType
/*171628*/        /*SwitchType*/ 23, MVT::v8i64,// ->171653
/*171630*/          OPC_MoveParent,
/*171631*/          OPC_CheckType, MVT::v16i32,
/*171633*/          OPC_MoveParent,
/*171634*/          OPC_CheckType, MVT::v16f32,
/*171636*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171638*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171641*/          OPC_EmitMergeInputChains1_0,
/*171642*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sint_to_fp:{ *:[v16f32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VCVTDQ2PSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*171653*/        0, // EndSwitchType
/*171654*/      /*SwitchOpcode*/ 114|128,1/*242*/, TARGET_VAL(X86ISD::VBROADCAST),// ->171900
/*171658*/        OPC_MoveChild0,
/*171659*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*171662*/        OPC_RecordMemRef,
/*171663*/        OPC_RecordNode, // #0 = 'ld' chained node
/*171664*/        OPC_CheckFoldableChainNode,
/*171665*/        OPC_RecordChild1, // #1 = $src
/*171666*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*171668*/        OPC_SwitchType /*2 cases */, 113, MVT::i32,// ->171784
/*171671*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*171673*/          OPC_MoveParent,
/*171674*/          OPC_SwitchType /*3 cases */, 41, MVT::v8i32,// ->171718
/*171677*/            OPC_MoveParent,
/*171678*/            OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->171698
/*171681*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171683*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171686*/              OPC_EmitMergeInputChains1_0,
/*171687*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VCVTDQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*171698*/            /*SwitchType*/ 17, MVT::v8f32,// ->171717
/*171700*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171702*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171705*/              OPC_EmitMergeInputChains1_0,
/*171706*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VCVTDQ2PSZ256rmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*171717*/            0, // EndSwitchType
/*171718*/          /*SwitchType*/ 41, MVT::v4i32,// ->171761
/*171720*/            OPC_MoveParent,
/*171721*/            OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->171741
/*171724*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171726*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171729*/              OPC_EmitMergeInputChains1_0,
/*171730*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VCVTDQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*171741*/            /*SwitchType*/ 17, MVT::v4f32,// ->171760
/*171743*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171745*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171748*/              OPC_EmitMergeInputChains1_0,
/*171749*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VCVTDQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*171760*/            0, // EndSwitchType
/*171761*/          /*SwitchType*/ 20, MVT::v16i32,// ->171783
/*171763*/            OPC_MoveParent,
/*171764*/            OPC_CheckType, MVT::v16f32,
/*171766*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171768*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171771*/            OPC_EmitMergeInputChains1_0,
/*171772*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sint_to_fp:{ *:[v16f32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VCVTDQ2PSZrmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*171783*/          0, // EndSwitchType
/*171784*/        /*SwitchType*/ 113, MVT::i64,// ->171899
/*171786*/          OPC_CheckPredicate, 9, // Predicate_load
/*171788*/          OPC_MoveParent,
/*171789*/          OPC_SwitchType /*3 cases */, 41, MVT::v8i64,// ->171833
/*171792*/            OPC_MoveParent,
/*171793*/            OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->171813
/*171796*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*171798*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171801*/              OPC_EmitMergeInputChains1_0,
/*171802*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTQQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*171813*/            /*SwitchType*/ 17, MVT::v8f32,// ->171832
/*171815*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*171817*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171820*/              OPC_EmitMergeInputChains1_0,
/*171821*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTQQ2PSZrmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*171832*/            0, // EndSwitchType
/*171833*/          /*SwitchType*/ 20, MVT::v2i64,// ->171855
/*171835*/            OPC_MoveParent,
/*171836*/            OPC_CheckType, MVT::v2f64,
/*171838*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*171840*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171843*/            OPC_EmitMergeInputChains1_0,
/*171844*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sint_to_fp:{ *:[v2f64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VCVTQQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*171855*/          /*SwitchType*/ 41, MVT::v4i64,// ->171898
/*171857*/            OPC_MoveParent,
/*171858*/            OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->171878
/*171861*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*171863*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171866*/              OPC_EmitMergeInputChains1_0,
/*171867*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTQQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*171878*/            /*SwitchType*/ 17, MVT::v4f32,// ->171897
/*171880*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*171882*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171885*/              OPC_EmitMergeInputChains1_0,
/*171886*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTQQ2PSZ256rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*171897*/            0, // EndSwitchType
/*171898*/          0, // EndSwitchType
/*171899*/        0, // EndSwitchType
/*171900*/      /*SwitchOpcode*/ 119, TARGET_VAL(ISD::LOAD),// ->172022
/*171903*/        OPC_RecordMemRef,
/*171904*/        OPC_RecordNode, // #0 = 'ld' chained node
/*171905*/        OPC_RecordChild1, // #1 = $src
/*171906*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*171908*/        OPC_CheckPredicate, 9, // Predicate_load
/*171910*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*171912*/        OPC_SwitchType /*3 cases */, 41, MVT::v8i64,// ->171956
/*171915*/          OPC_MoveParent,
/*171916*/          OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->171936
/*171919*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*171921*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171924*/            OPC_EmitMergeInputChains1_0,
/*171925*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTQQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*171936*/          /*SwitchType*/ 17, MVT::v8f32,// ->171955
/*171938*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*171940*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171943*/            OPC_EmitMergeInputChains1_0,
/*171944*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTQQ2PSZrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*171955*/          0, // EndSwitchType
/*171956*/        /*SwitchType*/ 20, MVT::v2i64,// ->171978
/*171958*/          OPC_MoveParent,
/*171959*/          OPC_CheckType, MVT::v2f64,
/*171961*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*171963*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171966*/          OPC_EmitMergeInputChains1_0,
/*171967*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTQQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*171978*/        /*SwitchType*/ 41, MVT::v4i64,// ->172021
/*171980*/          OPC_MoveParent,
/*171981*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->172001
/*171984*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*171986*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171989*/            OPC_EmitMergeInputChains1_0,
/*171990*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTQQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*172001*/          /*SwitchType*/ 17, MVT::v4f32,// ->172020
/*172003*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*172005*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172008*/            OPC_EmitMergeInputChains1_0,
/*172009*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTQQ2PSZ256rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*172020*/          0, // EndSwitchType
/*172021*/        0, // EndSwitchType
/*172022*/      0, // EndSwitchOpcode
/*172023*/    /*Scope*/ 58|128,2/*314*/, /*->172339*/
/*172025*/      OPC_RecordChild0, // #0 = $src
/*172026*/      OPC_Scope, 62, /*->172090*/ // 6 children in Scope
/*172028*/        OPC_CheckChild0Type, MVT::v4i32,
/*172030*/        OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->172065
/*172033*/          OPC_Scope, 9, /*->172044*/ // 3 children in Scope
/*172035*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172037*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSrr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PSrr:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src)
/*172044*/          /*Scope*/ 9, /*->172054*/
/*172045*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*172047*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTDQ2PSrr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (CVTDQ2PSrr:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src)
/*172054*/          /*Scope*/ 9, /*->172064*/
/*172055*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172057*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src)
/*172064*/          0, /*End of Scope*/
/*172065*/        /*SwitchType*/ 22, MVT::v4f64,// ->172089
/*172067*/          OPC_Scope, 9, /*->172078*/ // 2 children in Scope
/*172069*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172071*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDYrr), 0,
                          MVT::v4f64, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[v4f64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PDYrr:{ *:[v4f64] } VR128:{ *:[v4i32] }:$src)
/*172078*/          /*Scope*/ 9, /*->172088*/
/*172079*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172081*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rr), 0,
                          MVT::v4f64, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PDZ256rr:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src)
/*172088*/          0, /*End of Scope*/
/*172089*/        0, // EndSwitchType
/*172090*/      /*Scope*/ 39, /*->172130*/
/*172091*/        OPC_CheckChild0Type, MVT::v8i32,
/*172093*/        OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->172118
/*172096*/          OPC_Scope, 9, /*->172107*/ // 2 children in Scope
/*172098*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172100*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSYrr), 0,
                          MVT::v8f32, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PSYrr:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src)
/*172107*/          /*Scope*/ 9, /*->172117*/
/*172108*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rr), 0,
                          MVT::v8f32, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src)
/*172117*/          0, /*End of Scope*/
/*172118*/        /*SwitchType*/ 9, MVT::v8f64,// ->172129
/*172120*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*172122*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrr), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                    // Dst: (VCVTDQ2PDZrr:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src)
/*172129*/        0, // EndSwitchType
/*172130*/      /*Scope*/ 13, /*->172144*/
/*172131*/        OPC_CheckChild0Type, MVT::v16i32,
/*172133*/        OPC_CheckType, MVT::v16f32,
/*172135*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*172137*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (sint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                  // Dst: (VCVTDQ2PSZrr:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src)
/*172144*/      /*Scope*/ 26, /*->172171*/
/*172145*/        OPC_CheckChild0Type, MVT::v8i64,
/*172147*/        OPC_SwitchType /*2 cases */, 9, MVT::v8f64,// ->172159
/*172150*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*172152*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrr), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                    // Dst: (VCVTQQ2PDZrr:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src)
/*172159*/        /*SwitchType*/ 9, MVT::v8f32,// ->172170
/*172161*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*172163*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrr), 0,
                        MVT::v8f32, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                    // Dst: (VCVTQQ2PSZrr:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src)
/*172170*/        0, // EndSwitchType
/*172171*/      /*Scope*/ 55, /*->172227*/
/*172172*/        OPC_CheckChild0Type, MVT::v2i64,
/*172174*/        OPC_CheckType, MVT::v2f64,
/*172176*/        OPC_Scope, 9, /*->172187*/ // 2 children in Scope
/*172178*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*172180*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (VCVTQQ2PDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src)
/*172187*/        /*Scope*/ 38, /*->172226*/
/*172188*/          OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*172190*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*172196*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*172199*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*172208*/          OPC_EmitNode1, TARGET_VAL(X86::VCVTQQ2PDZrr), 0,
                        MVT::v8f64, 1/*#Ops*/, 3,  // Results = #4
/*172215*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*172218*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f64, 2/*#Ops*/, 4, 5, 
                    // Src: (sint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2f64] } (VCVTQQ2PDZrr:{ *:[v8f64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*172226*/        0, /*End of Scope*/
/*172227*/      /*Scope*/ 110, /*->172338*/
/*172228*/        OPC_CheckChild0Type, MVT::v4i64,
/*172230*/        OPC_SwitchType /*2 cases */, 51, MVT::v4f64,// ->172284
/*172233*/          OPC_Scope, 9, /*->172244*/ // 2 children in Scope
/*172235*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*172237*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rr), 0,
                          MVT::v4f64, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                      // Dst: (VCVTQQ2PDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src)
/*172244*/          /*Scope*/ 38, /*->172283*/
/*172245*/            OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*172247*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*172253*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*172256*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*172265*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTQQ2PDZrr), 0,
                          MVT::v8f64, 1/*#Ops*/, 3,  // Results = #4
/*172272*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*172275*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f64, 2/*#Ops*/, 4, 5, 
                      // Src: (sint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4f64] } (VCVTQQ2PDZrr:{ *:[v8f64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*172283*/          0, /*End of Scope*/
/*172284*/        /*SwitchType*/ 51, MVT::v4f32,// ->172337
/*172286*/          OPC_Scope, 9, /*->172297*/ // 2 children in Scope
/*172288*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*172290*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (sint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                      // Dst: (VCVTQQ2PSZ256rr:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src)
/*172297*/          /*Scope*/ 38, /*->172336*/
/*172298*/            OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*172300*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*172306*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*172309*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*172318*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTQQ2PSZrr), 0,
                          MVT::v8f32, 1/*#Ops*/, 3,  // Results = #4
/*172325*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*172328*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f32, 2/*#Ops*/, 4, 5, 
                      // Src: (sint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4f32] } (VCVTQQ2PSZrr:{ *:[v8f32] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*172336*/          0, /*End of Scope*/
/*172337*/        0, // EndSwitchType
/*172338*/      0, /*End of Scope*/
/*172339*/    0, /*End of Scope*/
/*172340*/  /*SwitchOpcode*/ 61|128,2/*317*/, TARGET_VAL(ISD::FP_ROUND),// ->172661
/*172344*/    OPC_Scope, 33, /*->172379*/ // 4 children in Scope
/*172346*/      OPC_MoveChild0,
/*172347*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172350*/      OPC_RecordMemRef,
/*172351*/      OPC_RecordNode, // #0 = 'ld' chained node
/*172352*/      OPC_RecordChild1, // #1 = $src
/*172353*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172355*/      OPC_CheckPredicate, 9, // Predicate_load
/*172357*/      OPC_CheckType, MVT::f64,
/*172359*/      OPC_MoveParent,
/*172360*/      OPC_CheckType, MVT::f32,
/*172362*/      OPC_CheckPatternPredicate, 147, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*172364*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172367*/      OPC_EmitMergeInputChains1_0,
/*172368*/      OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (fpround:{ *:[f32] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (CVTSD2SSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*172379*/    /*Scope*/ 103, /*->172483*/
/*172380*/      OPC_RecordChild0, // #0 = $src
/*172381*/      OPC_Scope, 64, /*->172447*/ // 2 children in Scope
/*172383*/        OPC_CheckChild0Type, MVT::f64,
/*172385*/        OPC_CheckType, MVT::f32,
/*172387*/        OPC_Scope, 13, /*->172402*/ // 4 children in Scope
/*172389*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*172391*/          OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
/*172394*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fpround:{ *:[f32] } RFP64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } RFP64:{ *:[f64] }:$src, RFP32:{ *:[i32] })
/*172402*/        /*Scope*/ 9, /*->172412*/
/*172403*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*172405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SSrr), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (fpround:{ *:[f32] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (CVTSD2SSrr:{ *:[f32] } FR64:{ *:[f64] }:$src)
/*172412*/        /*Scope*/ 16, /*->172429*/
/*172413*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*172415*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*172421*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSrr), 0,
                        MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (fpround:{ *:[f32] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VCVTSD2SSrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR64:{ *:[f64] }:$src)
/*172429*/        /*Scope*/ 16, /*->172446*/
/*172430*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*172432*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*172438*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrr), 0,
                        MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (fpround:{ *:[f32] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VCVTSD2SSZrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR64X:{ *:[f64] }:$src)
/*172446*/        0, /*End of Scope*/
/*172447*/      /*Scope*/ 34, /*->172482*/
/*172448*/        OPC_CheckChild0Type, MVT::f80,
/*172450*/        OPC_SwitchType /*2 cases */, 13, MVT::f32,// ->172466
/*172453*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*172455*/          OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
/*172458*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fpround:{ *:[f32] } RFP80:{ *:[f80] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } RFP80:{ *:[f80] }:$src, RFP32:{ *:[i32] })
/*172466*/        /*SwitchType*/ 13, MVT::f64,// ->172481
/*172468*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*172470*/          OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
/*172473*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fpround:{ *:[f64] } RFP80:{ *:[f80] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } RFP80:{ *:[f80] }:$src, RFP64:{ *:[i32] })
/*172481*/        0, // EndSwitchType
/*172482*/      0, /*End of Scope*/
/*172483*/    /*Scope*/ 8|128,1/*136*/, /*->172621*/
/*172485*/      OPC_MoveChild0,
/*172486*/      OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(X86ISD::VBROADCAST),// ->172546
/*172490*/        OPC_MoveChild0,
/*172491*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172494*/        OPC_RecordMemRef,
/*172495*/        OPC_RecordNode, // #0 = 'ld' chained node
/*172496*/        OPC_CheckFoldableChainNode,
/*172497*/        OPC_RecordChild1, // #1 = $src
/*172498*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172500*/        OPC_CheckPredicate, 9, // Predicate_load
/*172502*/        OPC_CheckType, MVT::f64,
/*172504*/        OPC_MoveParent,
/*172505*/        OPC_MoveParent,
/*172506*/        OPC_SwitchType /*2 cases */, 17, MVT::v8f32,// ->172526
/*172509*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*172511*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172514*/          OPC_EmitMergeInputChains1_0,
/*172515*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fpround:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VCVTPD2PSZrmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*172526*/        /*SwitchType*/ 17, MVT::v4f32,// ->172545
/*172528*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172530*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172533*/          OPC_EmitMergeInputChains1_0,
/*172534*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fpround:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VCVTPD2PSZ256rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*172545*/        0, // EndSwitchType
/*172546*/      /*SwitchOpcode*/ 71, TARGET_VAL(ISD::LOAD),// ->172620
/*172549*/        OPC_RecordMemRef,
/*172550*/        OPC_RecordNode, // #0 = 'ld' chained node
/*172551*/        OPC_RecordChild1, // #1 = $src
/*172552*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172554*/        OPC_CheckPredicate, 9, // Predicate_load
/*172556*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*172558*/        OPC_MoveParent,
/*172559*/        OPC_SwitchType /*2 cases */, 38, MVT::v4f32,// ->172600
/*172562*/          OPC_Scope, 17, /*->172581*/ // 2 children in Scope
/*172564*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172566*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172569*/            OPC_EmitMergeInputChains1_0,
/*172570*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2PSYrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*172581*/          /*Scope*/ 17, /*->172599*/
/*172582*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172584*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172587*/            OPC_EmitMergeInputChains1_0,
/*172588*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2PSZ256rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*172599*/          0, /*End of Scope*/
/*172600*/        /*SwitchType*/ 17, MVT::v8f32,// ->172619
/*172602*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*172604*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172607*/          OPC_EmitMergeInputChains1_0,
/*172608*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fpround:{ *:[v8f32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTPD2PSZrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*172619*/        0, // EndSwitchType
/*172620*/      0, // EndSwitchOpcode
/*172621*/    /*Scope*/ 38, /*->172660*/
/*172622*/      OPC_RecordChild0, // #0 = $src
/*172623*/      OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->172648
/*172626*/        OPC_Scope, 9, /*->172637*/ // 2 children in Scope
/*172628*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172630*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSYrr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (fpround:{ *:[v4f32] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2PSYrr:{ *:[v4f32] } VR256:{ *:[v4f64] }:$src)
/*172637*/        /*Scope*/ 9, /*->172647*/
/*172638*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172640*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (fpround:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2PSZ256rr:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src)
/*172647*/        0, /*End of Scope*/
/*172648*/      /*SwitchType*/ 9, MVT::v8f32,// ->172659
/*172650*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*172652*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrr), 0,
                      MVT::v8f32, 1/*#Ops*/, 0, 
                  // Src: (fpround:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VCVTPD2PSZrr:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src)
/*172659*/      0, // EndSwitchType
/*172660*/    0, /*End of Scope*/
/*172661*/  /*SwitchOpcode*/ 88|128,2/*344*/, TARGET_VAL(ISD::FP_EXTEND),// ->173009
/*172665*/    OPC_Scope, 84, /*->172751*/ // 4 children in Scope
/*172667*/      OPC_MoveChild0,
/*172668*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172671*/      OPC_RecordMemRef,
/*172672*/      OPC_RecordNode, // #0 = 'ld' chained node
/*172673*/      OPC_RecordChild1, // #1 = $src
/*172674*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172676*/      OPC_CheckPredicate, 9, // Predicate_load
/*172678*/      OPC_MoveParent,
/*172679*/      OPC_CheckType, MVT::f64,
/*172681*/      OPC_Scope, 17, /*->172700*/ // 3 children in Scope
/*172683*/        OPC_CheckPatternPredicate, 147, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*172685*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172688*/        OPC_EmitMergeInputChains1_0,
/*172689*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fpextend:{ *:[f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (CVTSS2SDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*172700*/      /*Scope*/ 24, /*->172725*/
/*172701*/        OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*172703*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172706*/        OPC_EmitMergeInputChains1_0,
/*172707*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #7
/*172713*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                  // Src: (fpextend:{ *:[f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VCVTSS2SDrm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*172725*/      /*Scope*/ 24, /*->172750*/
/*172726*/        OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*172728*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172731*/        OPC_EmitMergeInputChains1_0,
/*172732*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #7
/*172738*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                  // Src: (fpextend:{ *:[f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VCVTSS2SDZrm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*172750*/      0, /*End of Scope*/
/*172751*/    /*Scope*/ 101, /*->172853*/
/*172752*/      OPC_RecordChild0, // #0 = $src
/*172753*/      OPC_SwitchType /*2 cases */, 60, MVT::f64,// ->172816
/*172756*/        OPC_Scope, 13, /*->172771*/ // 4 children in Scope
/*172758*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*172760*/          OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
/*172763*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fpextend:{ *:[f64] } RFP32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } RFP32:{ *:[f32] }:$src, RFP64:{ *:[i32] })
/*172771*/        /*Scope*/ 9, /*->172781*/
/*172772*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*172774*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SDrr), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (fpextend:{ *:[f64] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (CVTSS2SDrr:{ *:[f64] } FR32:{ *:[f32] }:$src)
/*172781*/        /*Scope*/ 16, /*->172798*/
/*172782*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*172784*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*172790*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDrr), 0,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (fpextend:{ *:[f64] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VCVTSS2SDrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR32:{ *:[f32] }:$src)
/*172798*/        /*Scope*/ 16, /*->172815*/
/*172799*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*172801*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*172807*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrr), 0,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (fpextend:{ *:[f64] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VCVTSS2SDZrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR32X:{ *:[f32] }:$src)
/*172815*/        0, /*End of Scope*/
/*172816*/      /*SwitchType*/ 34, MVT::f80,// ->172852
/*172818*/        OPC_Scope, 15, /*->172835*/ // 2 children in Scope
/*172820*/          OPC_CheckChild0Type, MVT::f32,
/*172822*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*172824*/          OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
/*172827*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f80, 2/*#Ops*/, 0, 1, 
                    // Src: (fpextend:{ *:[f80] } RFP32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f80] } RFP32:{ *:[f32] }:$src, RFP80:{ *:[i32] })
/*172835*/        /*Scope*/ 15, /*->172851*/
/*172836*/          OPC_CheckChild0Type, MVT::f64,
/*172838*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*172840*/          OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
/*172843*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f80, 2/*#Ops*/, 0, 1, 
                    // Src: (fpextend:{ *:[f80] } RFP64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f80] } RFP64:{ *:[f64] }:$src, RFP80:{ *:[i32] })
/*172851*/        0, /*End of Scope*/
/*172852*/      0, // EndSwitchType
/*172853*/    /*Scope*/ 115, /*->172969*/
/*172854*/      OPC_MoveChild0,
/*172855*/      OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(X86ISD::VBROADCAST),// ->172915
/*172859*/        OPC_MoveChild0,
/*172860*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172863*/        OPC_RecordMemRef,
/*172864*/        OPC_RecordNode, // #0 = 'ld' chained node
/*172865*/        OPC_CheckFoldableChainNode,
/*172866*/        OPC_RecordChild1, // #1 = $src
/*172867*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172869*/        OPC_CheckPredicate, 9, // Predicate_load
/*172871*/        OPC_CheckType, MVT::f32,
/*172873*/        OPC_MoveParent,
/*172874*/        OPC_MoveParent,
/*172875*/        OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->172895
/*172878*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*172880*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172883*/          OPC_EmitMergeInputChains1_0,
/*172884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fpextend:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VCVTPS2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*172895*/        /*SwitchType*/ 17, MVT::v4f64,// ->172914
/*172897*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172899*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172902*/          OPC_EmitMergeInputChains1_0,
/*172903*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fpextend:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VCVTPS2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*172914*/        0, // EndSwitchType
/*172915*/      /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->172968
/*172918*/        OPC_RecordMemRef,
/*172919*/        OPC_RecordNode, // #0 = 'ld' chained node
/*172920*/        OPC_RecordChild1, // #1 = $src
/*172921*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172923*/        OPC_CheckPredicate, 9, // Predicate_load
/*172925*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*172927*/        OPC_MoveParent,
/*172928*/        OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->172948
/*172931*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*172933*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172936*/          OPC_EmitMergeInputChains1_0,
/*172937*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fpextend:{ *:[v8f64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTPS2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*172948*/        /*SwitchType*/ 17, MVT::v4f64,// ->172967
/*172950*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172952*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172955*/          OPC_EmitMergeInputChains1_0,
/*172956*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fpextend:{ *:[v4f64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTPS2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*172967*/        0, // EndSwitchType
/*172968*/      0, // EndSwitchOpcode
/*172969*/    /*Scope*/ 38, /*->173008*/
/*172970*/      OPC_RecordChild0, // #0 = $src
/*172971*/      OPC_SwitchType /*2 cases */, 22, MVT::v4f64,// ->172996
/*172974*/        OPC_Scope, 9, /*->172985*/ // 2 children in Scope
/*172976*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172978*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDYrr), 0,
                        MVT::v4f64, 1/*#Ops*/, 0, 
                    // Src: (fpextend:{ *:[v4f64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2PDYrr:{ *:[v4f64] } VR128:{ *:[v4f32] }:$src)
/*172985*/        /*Scope*/ 9, /*->172995*/
/*172986*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172988*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rr), 0,
                        MVT::v4f64, 1/*#Ops*/, 0, 
                    // Src: (fpextend:{ *:[v4f64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2PDZ256rr:{ *:[v4f64] } VR128X:{ *:[v4f32] }:$src)
/*172995*/        0, /*End of Scope*/
/*172996*/      /*SwitchType*/ 9, MVT::v8f64,// ->173007
/*172998*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173000*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrr), 0,
                      MVT::v8f64, 1/*#Ops*/, 0, 
                  // Src: (fpextend:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                  // Dst: (VCVTPS2PDZrr:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src)
/*173007*/      0, // EndSwitchType
/*173008*/    0, /*End of Scope*/
/*173009*/  /*SwitchOpcode*/ 32|128,6/*800*/, TARGET_VAL(X86ISD::FMAX),// ->173813
/*173013*/    OPC_RecordChild0, // #0 = $src1
/*173014*/    OPC_Scope, 9|128,1/*137*/, /*->173154*/ // 4 children in Scope
/*173017*/      OPC_MoveChild1,
/*173018*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*173021*/      OPC_RecordMemRef,
/*173022*/      OPC_RecordNode, // #1 = 'ld' chained node
/*173023*/      OPC_CheckFoldableChainNode,
/*173024*/      OPC_RecordChild1, // #2 = $src2
/*173025*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*173027*/      OPC_CheckPredicate, 9, // Predicate_load
/*173029*/      OPC_MoveParent,
/*173030*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->173092
/*173033*/        OPC_Scope, 18, /*->173053*/ // 3 children in Scope
/*173035*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*173037*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173040*/          OPC_EmitMergeInputChains1_1,
/*173041*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*173053*/        /*Scope*/ 18, /*->173072*/
/*173054*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*173056*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173059*/          OPC_EmitMergeInputChains1_1,
/*173060*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*173072*/        /*Scope*/ 18, /*->173091*/
/*173073*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173075*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173078*/          OPC_EmitMergeInputChains1_1,
/*173079*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmax:{ *:[f32] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMAXSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173091*/        0, /*End of Scope*/
/*173092*/      /*SwitchType*/ 59, MVT::f64,// ->173153
/*173094*/        OPC_Scope, 18, /*->173114*/ // 3 children in Scope
/*173096*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*173098*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173101*/          OPC_EmitMergeInputChains1_1,
/*173102*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*173114*/        /*Scope*/ 18, /*->173133*/
/*173115*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*173117*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173120*/          OPC_EmitMergeInputChains1_1,
/*173121*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*173133*/        /*Scope*/ 18, /*->173152*/
/*173134*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173136*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173139*/          OPC_EmitMergeInputChains1_1,
/*173140*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmax:{ *:[f64] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMAXSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173152*/        0, /*End of Scope*/
/*173153*/      0, // EndSwitchType
/*173154*/    /*Scope*/ 77, /*->173232*/
/*173155*/      OPC_RecordChild1, // #1 = $src2
/*173156*/      OPC_SwitchType /*2 cases */, 35, MVT::f32,// ->173194
/*173159*/        OPC_Scope, 10, /*->173171*/ // 3 children in Scope
/*173161*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*173163*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSrr), 0,
                        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)
/*173171*/        /*Scope*/ 10, /*->173182*/
/*173172*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*173174*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXSSrr), 0,
                        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)
/*173182*/        /*Scope*/ 10, /*->173193*/
/*173183*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173185*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrr), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmax:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (VMAXSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*173193*/        0, /*End of Scope*/
/*173194*/      /*SwitchType*/ 35, MVT::f64,// ->173231
/*173196*/        OPC_Scope, 10, /*->173208*/ // 3 children in Scope
/*173198*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*173200*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDrr), 0,
                        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)
/*173208*/        /*Scope*/ 10, /*->173219*/
/*173209*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*173211*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXSDrr), 0,
                        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)
/*173219*/        /*Scope*/ 10, /*->173230*/
/*173220*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173222*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrr), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmax:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (VMAXSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*173230*/        0, /*End of Scope*/
/*173231*/      0, // EndSwitchType
/*173232*/    /*Scope*/ 39|128,3/*423*/, /*->173657*/
/*173234*/      OPC_MoveChild1,
/*173235*/      OPC_SwitchOpcode /*2 cases */, 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST),// ->173386
/*173240*/        OPC_MoveChild0,
/*173241*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*173244*/        OPC_RecordMemRef,
/*173245*/        OPC_RecordNode, // #1 = 'ld' chained node
/*173246*/        OPC_CheckFoldableChainNode,
/*173247*/        OPC_RecordChild1, // #2 = $src2
/*173248*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*173250*/        OPC_CheckPredicate, 9, // Predicate_load
/*173252*/        OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->173319
/*173255*/          OPC_MoveParent,
/*173256*/          OPC_MoveParent,
/*173257*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->173278
/*173260*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173262*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173265*/            OPC_EmitMergeInputChains1_1,
/*173266*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173278*/          /*SwitchType*/ 18, MVT::v4f32,// ->173298
/*173280*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173282*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173285*/            OPC_EmitMergeInputChains1_1,
/*173286*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173298*/          /*SwitchType*/ 18, MVT::v8f32,// ->173318
/*173300*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173302*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173305*/            OPC_EmitMergeInputChains1_1,
/*173306*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173318*/          0, // EndSwitchType
/*173319*/        /*SwitchType*/ 64, MVT::f64,// ->173385
/*173321*/          OPC_MoveParent,
/*173322*/          OPC_MoveParent,
/*173323*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->173344
/*173326*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173328*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173331*/            OPC_EmitMergeInputChains1_1,
/*173332*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173344*/          /*SwitchType*/ 18, MVT::v2f64,// ->173364
/*173346*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173348*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173351*/            OPC_EmitMergeInputChains1_1,
/*173352*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173364*/          /*SwitchType*/ 18, MVT::v4f64,// ->173384
/*173366*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173368*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173371*/            OPC_EmitMergeInputChains1_1,
/*173372*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173384*/          0, // EndSwitchType
/*173385*/        0, // EndSwitchType
/*173386*/      /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::LOAD),// ->173656
/*173390*/        OPC_RecordMemRef,
/*173391*/        OPC_RecordNode, // #1 = 'ld' chained node
/*173392*/        OPC_CheckFoldableChainNode,
/*173393*/        OPC_RecordChild1, // #2 = $src2
/*173394*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*173396*/        OPC_CheckPredicate, 9, // Predicate_load
/*173398*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*173400*/        OPC_Scope, 83, /*->173485*/ // 3 children in Scope
/*173402*/          OPC_MoveParent,
/*173403*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->173424
/*173406*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*173408*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173411*/            OPC_EmitMergeInputChains1_1,
/*173412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VMAXPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173424*/          /*SwitchType*/ 18, MVT::v2f64,// ->173444
/*173426*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*173428*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173431*/            OPC_EmitMergeInputChains1_1,
/*173432*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VMAXPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173444*/          /*SwitchType*/ 18, MVT::v8f32,// ->173464
/*173446*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*173448*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173451*/            OPC_EmitMergeInputChains1_1,
/*173452*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VMAXPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173464*/          /*SwitchType*/ 18, MVT::v4f64,// ->173484
/*173466*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*173468*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173471*/            OPC_EmitMergeInputChains1_1,
/*173472*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VMAXPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173484*/          0, // EndSwitchType
/*173485*/        /*Scope*/ 45, /*->173531*/
/*173486*/          OPC_CheckPredicate, 48, // Predicate_memop
/*173488*/          OPC_MoveParent,
/*173489*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->173510
/*173492*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*173494*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173497*/            OPC_EmitMergeInputChains1_1,
/*173498*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MAXPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (MAXPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173510*/          /*SwitchType*/ 18, MVT::v2f64,// ->173530
/*173512*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*173514*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173517*/            OPC_EmitMergeInputChains1_1,
/*173518*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MAXPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (MAXPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173530*/          0, // EndSwitchType
/*173531*/        /*Scope*/ 123, /*->173655*/
/*173532*/          OPC_MoveParent,
/*173533*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->173554
/*173536*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173538*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173541*/            OPC_EmitMergeInputChains1_1,
/*173542*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMAXPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173554*/          /*SwitchType*/ 18, MVT::v8f64,// ->173574
/*173556*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173558*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173561*/            OPC_EmitMergeInputChains1_1,
/*173562*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMAXPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173574*/          /*SwitchType*/ 18, MVT::v4f32,// ->173594
/*173576*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173578*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173581*/            OPC_EmitMergeInputChains1_1,
/*173582*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMAXPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173594*/          /*SwitchType*/ 18, MVT::v8f32,// ->173614
/*173596*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173598*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173601*/            OPC_EmitMergeInputChains1_1,
/*173602*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMAXPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173614*/          /*SwitchType*/ 18, MVT::v2f64,// ->173634
/*173616*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173618*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173621*/            OPC_EmitMergeInputChains1_1,
/*173622*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMAXPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173634*/          /*SwitchType*/ 18, MVT::v4f64,// ->173654
/*173636*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173638*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173641*/            OPC_EmitMergeInputChains1_1,
/*173642*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmax:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMAXPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173654*/          0, // EndSwitchType
/*173655*/        0, /*End of Scope*/
/*173656*/      0, // EndSwitchOpcode
/*173657*/    /*Scope*/ 25|128,1/*153*/, /*->173812*/
/*173659*/      OPC_RecordChild1, // #1 = $src2
/*173660*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->173698
/*173663*/        OPC_Scope, 10, /*->173675*/ // 3 children in Scope
/*173665*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*173667*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSrr), 0,
                        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)
/*173675*/        /*Scope*/ 10, /*->173686*/
/*173676*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*173678*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXPSrr), 0,
                        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)
/*173686*/        /*Scope*/ 10, /*->173697*/
/*173687*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173689*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmax:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VMAXPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*173697*/        0, /*End of Scope*/
/*173698*/      /*SwitchType*/ 35, MVT::v2f64,// ->173735
/*173700*/        OPC_Scope, 10, /*->173712*/ // 3 children in Scope
/*173702*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*173704*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDrr), 0,
                        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)
/*173712*/        /*Scope*/ 10, /*->173723*/
/*173713*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*173715*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXPDrr), 0,
                        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)
/*173723*/        /*Scope*/ 10, /*->173734*/
/*173724*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173726*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmax:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VMAXPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*173734*/        0, /*End of Scope*/
/*173735*/      /*SwitchType*/ 24, MVT::v8f32,// ->173761
/*173737*/        OPC_Scope, 10, /*->173749*/ // 2 children in Scope
/*173739*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*173741*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSYrr), 0,
                        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)
/*173749*/        /*Scope*/ 10, /*->173760*/
/*173750*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173752*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ256rr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmax:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VMAXPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*173760*/        0, /*End of Scope*/
/*173761*/      /*SwitchType*/ 24, MVT::v4f64,// ->173787
/*173763*/        OPC_Scope, 10, /*->173775*/ // 2 children in Scope
/*173765*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*173767*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDYrr), 0,
                        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)
/*173775*/        /*Scope*/ 10, /*->173786*/
/*173776*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*173778*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ256rr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmax:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VMAXPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*173786*/        0, /*End of Scope*/
/*173787*/      /*SwitchType*/ 10, MVT::v16f32,// ->173799
/*173789*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173791*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrr), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmax:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VMAXPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*173799*/      /*SwitchType*/ 10, MVT::v8f64,// ->173811
/*173801*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173803*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrr), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmax:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VMAXPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*173811*/      0, // EndSwitchType
/*173812*/    0, /*End of Scope*/
/*173813*/  /*SwitchOpcode*/ 32|128,6/*800*/, TARGET_VAL(X86ISD::FMIN),// ->174617
/*173817*/    OPC_RecordChild0, // #0 = $src1
/*173818*/    OPC_Scope, 9|128,1/*137*/, /*->173958*/ // 4 children in Scope
/*173821*/      OPC_MoveChild1,
/*173822*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*173825*/      OPC_RecordMemRef,
/*173826*/      OPC_RecordNode, // #1 = 'ld' chained node
/*173827*/      OPC_CheckFoldableChainNode,
/*173828*/      OPC_RecordChild1, // #2 = $src2
/*173829*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*173831*/      OPC_CheckPredicate, 9, // Predicate_load
/*173833*/      OPC_MoveParent,
/*173834*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->173896
/*173837*/        OPC_Scope, 18, /*->173857*/ // 3 children in Scope
/*173839*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*173841*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173844*/          OPC_EmitMergeInputChains1_1,
/*173845*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*173857*/        /*Scope*/ 18, /*->173876*/
/*173858*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*173860*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173863*/          OPC_EmitMergeInputChains1_1,
/*173864*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*173876*/        /*Scope*/ 18, /*->173895*/
/*173877*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173879*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173882*/          OPC_EmitMergeInputChains1_1,
/*173883*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmin:{ *:[f32] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMINSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173895*/        0, /*End of Scope*/
/*173896*/      /*SwitchType*/ 59, MVT::f64,// ->173957
/*173898*/        OPC_Scope, 18, /*->173918*/ // 3 children in Scope
/*173900*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*173902*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173905*/          OPC_EmitMergeInputChains1_1,
/*173906*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*173918*/        /*Scope*/ 18, /*->173937*/
/*173919*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*173921*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173924*/          OPC_EmitMergeInputChains1_1,
/*173925*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*173937*/        /*Scope*/ 18, /*->173956*/
/*173938*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173940*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173943*/          OPC_EmitMergeInputChains1_1,
/*173944*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmin:{ *:[f64] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMINSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173956*/        0, /*End of Scope*/
/*173957*/      0, // EndSwitchType
/*173958*/    /*Scope*/ 77, /*->174036*/
/*173959*/      OPC_RecordChild1, // #1 = $src2
/*173960*/      OPC_SwitchType /*2 cases */, 35, MVT::f32,// ->173998
/*173963*/        OPC_Scope, 10, /*->173975*/ // 3 children in Scope
/*173965*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*173967*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSrr), 0,
                        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)
/*173975*/        /*Scope*/ 10, /*->173986*/
/*173976*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*173978*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINSSrr), 0,
                        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)
/*173986*/        /*Scope*/ 10, /*->173997*/
/*173987*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173989*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrr), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmin:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (VMINSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*173997*/        0, /*End of Scope*/
/*173998*/      /*SwitchType*/ 35, MVT::f64,// ->174035
/*174000*/        OPC_Scope, 10, /*->174012*/ // 3 children in Scope
/*174002*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*174004*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDrr), 0,
                        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)
/*174012*/        /*Scope*/ 10, /*->174023*/
/*174013*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*174015*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINSDrr), 0,
                        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)
/*174023*/        /*Scope*/ 10, /*->174034*/
/*174024*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174026*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrr), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmin:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (VMINSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*174034*/        0, /*End of Scope*/
/*174035*/      0, // EndSwitchType
/*174036*/    /*Scope*/ 39|128,3/*423*/, /*->174461*/
/*174038*/      OPC_MoveChild1,
/*174039*/      OPC_SwitchOpcode /*2 cases */, 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST),// ->174190
/*174044*/        OPC_MoveChild0,
/*174045*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*174048*/        OPC_RecordMemRef,
/*174049*/        OPC_RecordNode, // #1 = 'ld' chained node
/*174050*/        OPC_CheckFoldableChainNode,
/*174051*/        OPC_RecordChild1, // #2 = $src2
/*174052*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*174054*/        OPC_CheckPredicate, 9, // Predicate_load
/*174056*/        OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->174123
/*174059*/          OPC_MoveParent,
/*174060*/          OPC_MoveParent,
/*174061*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->174082
/*174064*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174066*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174069*/            OPC_EmitMergeInputChains1_1,
/*174070*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174082*/          /*SwitchType*/ 18, MVT::v4f32,// ->174102
/*174084*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174086*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174089*/            OPC_EmitMergeInputChains1_1,
/*174090*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174102*/          /*SwitchType*/ 18, MVT::v8f32,// ->174122
/*174104*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174106*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174109*/            OPC_EmitMergeInputChains1_1,
/*174110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174122*/          0, // EndSwitchType
/*174123*/        /*SwitchType*/ 64, MVT::f64,// ->174189
/*174125*/          OPC_MoveParent,
/*174126*/          OPC_MoveParent,
/*174127*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->174148
/*174130*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174132*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174135*/            OPC_EmitMergeInputChains1_1,
/*174136*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174148*/          /*SwitchType*/ 18, MVT::v2f64,// ->174168
/*174150*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174152*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174155*/            OPC_EmitMergeInputChains1_1,
/*174156*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174168*/          /*SwitchType*/ 18, MVT::v4f64,// ->174188
/*174170*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174172*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174175*/            OPC_EmitMergeInputChains1_1,
/*174176*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174188*/          0, // EndSwitchType
/*174189*/        0, // EndSwitchType
/*174190*/      /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::LOAD),// ->174460
/*174194*/        OPC_RecordMemRef,
/*174195*/        OPC_RecordNode, // #1 = 'ld' chained node
/*174196*/        OPC_CheckFoldableChainNode,
/*174197*/        OPC_RecordChild1, // #2 = $src2
/*174198*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*174200*/        OPC_CheckPredicate, 9, // Predicate_load
/*174202*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*174204*/        OPC_Scope, 83, /*->174289*/ // 3 children in Scope
/*174206*/          OPC_MoveParent,
/*174207*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->174228
/*174210*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*174212*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174215*/            OPC_EmitMergeInputChains1_1,
/*174216*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VMINPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174228*/          /*SwitchType*/ 18, MVT::v2f64,// ->174248
/*174230*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*174232*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174235*/            OPC_EmitMergeInputChains1_1,
/*174236*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VMINPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174248*/          /*SwitchType*/ 18, MVT::v8f32,// ->174268
/*174250*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*174252*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174255*/            OPC_EmitMergeInputChains1_1,
/*174256*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VMINPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174268*/          /*SwitchType*/ 18, MVT::v4f64,// ->174288
/*174270*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*174272*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174275*/            OPC_EmitMergeInputChains1_1,
/*174276*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VMINPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174288*/          0, // EndSwitchType
/*174289*/        /*Scope*/ 45, /*->174335*/
/*174290*/          OPC_CheckPredicate, 48, // Predicate_memop
/*174292*/          OPC_MoveParent,
/*174293*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->174314
/*174296*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*174298*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174301*/            OPC_EmitMergeInputChains1_1,
/*174302*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MINPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (MINPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174314*/          /*SwitchType*/ 18, MVT::v2f64,// ->174334
/*174316*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*174318*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174321*/            OPC_EmitMergeInputChains1_1,
/*174322*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MINPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (MINPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174334*/          0, // EndSwitchType
/*174335*/        /*Scope*/ 123, /*->174459*/
/*174336*/          OPC_MoveParent,
/*174337*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->174358
/*174340*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174342*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174345*/            OPC_EmitMergeInputChains1_1,
/*174346*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMINPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174358*/          /*SwitchType*/ 18, MVT::v8f64,// ->174378
/*174360*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174362*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174365*/            OPC_EmitMergeInputChains1_1,
/*174366*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMINPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174378*/          /*SwitchType*/ 18, MVT::v4f32,// ->174398
/*174380*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174382*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174385*/            OPC_EmitMergeInputChains1_1,
/*174386*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMINPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174398*/          /*SwitchType*/ 18, MVT::v8f32,// ->174418
/*174400*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174402*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174405*/            OPC_EmitMergeInputChains1_1,
/*174406*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMINPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174418*/          /*SwitchType*/ 18, MVT::v2f64,// ->174438
/*174420*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174422*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174425*/            OPC_EmitMergeInputChains1_1,
/*174426*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMINPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174438*/          /*SwitchType*/ 18, MVT::v4f64,// ->174458
/*174440*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174442*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174445*/            OPC_EmitMergeInputChains1_1,
/*174446*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmin:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMINPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174458*/          0, // EndSwitchType
/*174459*/        0, /*End of Scope*/
/*174460*/      0, // EndSwitchOpcode
/*174461*/    /*Scope*/ 25|128,1/*153*/, /*->174616*/
/*174463*/      OPC_RecordChild1, // #1 = $src2
/*174464*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->174502
/*174467*/        OPC_Scope, 10, /*->174479*/ // 3 children in Scope
/*174469*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*174471*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSrr), 0,
                        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)
/*174479*/        /*Scope*/ 10, /*->174490*/
/*174480*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*174482*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINPSrr), 0,
                        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)
/*174490*/        /*Scope*/ 10, /*->174501*/
/*174491*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174493*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmin:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VMINPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*174501*/        0, /*End of Scope*/
/*174502*/      /*SwitchType*/ 35, MVT::v2f64,// ->174539
/*174504*/        OPC_Scope, 10, /*->174516*/ // 3 children in Scope
/*174506*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*174508*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDrr), 0,
                        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)
/*174516*/        /*Scope*/ 10, /*->174527*/
/*174517*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*174519*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINPDrr), 0,
                        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)
/*174527*/        /*Scope*/ 10, /*->174538*/
/*174528*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174530*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmin:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VMINPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*174538*/        0, /*End of Scope*/
/*174539*/      /*SwitchType*/ 24, MVT::v8f32,// ->174565
/*174541*/        OPC_Scope, 10, /*->174553*/ // 2 children in Scope
/*174543*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*174545*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSYrr), 0,
                        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)
/*174553*/        /*Scope*/ 10, /*->174564*/
/*174554*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174556*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ256rr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmin:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VMINPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*174564*/        0, /*End of Scope*/
/*174565*/      /*SwitchType*/ 24, MVT::v4f64,// ->174591
/*174567*/        OPC_Scope, 10, /*->174579*/ // 2 children in Scope
/*174569*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*174571*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDYrr), 0,
                        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)
/*174579*/        /*Scope*/ 10, /*->174590*/
/*174580*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*174582*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ256rr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmin:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VMINPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*174590*/        0, /*End of Scope*/
/*174591*/      /*SwitchType*/ 10, MVT::v16f32,// ->174603
/*174593*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174595*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrr), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmin:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VMINPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*174603*/      /*SwitchType*/ 10, MVT::v8f64,// ->174615
/*174605*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174607*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrr), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmin:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VMINPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*174615*/      0, // EndSwitchType
/*174616*/    0, /*End of Scope*/
/*174617*/  /*SwitchOpcode*/ 95|128,10/*1375*/, TARGET_VAL(X86ISD::FMAXC),// ->175996
/*174621*/    OPC_Scope, 10|128,1/*138*/, /*->174762*/ // 7 children in Scope
/*174624*/      OPC_RecordChild0, // #0 = $src1
/*174625*/      OPC_MoveChild1,
/*174626*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*174629*/      OPC_RecordMemRef,
/*174630*/      OPC_RecordNode, // #1 = 'ld' chained node
/*174631*/      OPC_CheckFoldableChainNode,
/*174632*/      OPC_RecordChild1, // #2 = $src2
/*174633*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*174635*/      OPC_CheckPredicate, 9, // Predicate_load
/*174637*/      OPC_MoveParent,
/*174638*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->174700
/*174641*/        OPC_Scope, 18, /*->174661*/ // 3 children in Scope
/*174643*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*174645*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174648*/          OPC_EmitMergeInputChains1_1,
/*174649*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMAXCSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174661*/        /*Scope*/ 18, /*->174680*/
/*174662*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*174664*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174667*/          OPC_EmitMergeInputChains1_1,
/*174668*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (MAXCSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174680*/        /*Scope*/ 18, /*->174699*/
/*174681*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174683*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174686*/          OPC_EmitMergeInputChains1_1,
/*174687*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f32] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMAXCSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174699*/        0, /*End of Scope*/
/*174700*/      /*SwitchType*/ 59, MVT::f64,// ->174761
/*174702*/        OPC_Scope, 18, /*->174722*/ // 3 children in Scope
/*174704*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*174706*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174709*/          OPC_EmitMergeInputChains1_1,
/*174710*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMAXCSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174722*/        /*Scope*/ 18, /*->174741*/
/*174723*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*174725*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174728*/          OPC_EmitMergeInputChains1_1,
/*174729*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (MAXCSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174741*/        /*Scope*/ 18, /*->174760*/
/*174742*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174744*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174747*/          OPC_EmitMergeInputChains1_1,
/*174748*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f64] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMAXCSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174760*/        0, /*End of Scope*/
/*174761*/      0, // EndSwitchType
/*174762*/    /*Scope*/ 10|128,1/*138*/, /*->174902*/
/*174764*/      OPC_MoveChild0,
/*174765*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*174768*/      OPC_RecordMemRef,
/*174769*/      OPC_RecordNode, // #0 = 'ld' chained node
/*174770*/      OPC_CheckFoldableChainNode,
/*174771*/      OPC_RecordChild1, // #1 = $src2
/*174772*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*174774*/      OPC_CheckPredicate, 9, // Predicate_load
/*174776*/      OPC_MoveParent,
/*174777*/      OPC_RecordChild1, // #2 = $src1
/*174778*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->174840
/*174781*/        OPC_Scope, 18, /*->174801*/ // 3 children in Scope
/*174783*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*174785*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174788*/          OPC_EmitMergeInputChains1_0,
/*174789*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (VMAXCSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174801*/        /*Scope*/ 18, /*->174820*/
/*174802*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*174804*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174807*/          OPC_EmitMergeInputChains1_0,
/*174808*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (MAXCSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174820*/        /*Scope*/ 18, /*->174839*/
/*174821*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174823*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174826*/          OPC_EmitMergeInputChains1_0,
/*174827*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (VMAXCSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174839*/        0, /*End of Scope*/
/*174840*/      /*SwitchType*/ 59, MVT::f64,// ->174901
/*174842*/        OPC_Scope, 18, /*->174862*/ // 3 children in Scope
/*174844*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*174846*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174849*/          OPC_EmitMergeInputChains1_0,
/*174850*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (VMAXCSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174862*/        /*Scope*/ 18, /*->174881*/
/*174863*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*174865*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174868*/          OPC_EmitMergeInputChains1_0,
/*174869*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (MAXCSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174881*/        /*Scope*/ 18, /*->174900*/
/*174882*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174884*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*174887*/          OPC_EmitMergeInputChains1_0,
/*174888*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (VMAXCSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*174900*/        0, /*End of Scope*/
/*174901*/      0, // EndSwitchType
/*174902*/    /*Scope*/ 105|128,1/*233*/, /*->175137*/
/*174904*/      OPC_RecordChild0, // #0 = $src1
/*174905*/      OPC_Scope, 77, /*->174984*/ // 2 children in Scope
/*174907*/        OPC_RecordChild1, // #1 = $src2
/*174908*/        OPC_SwitchType /*2 cases */, 35, MVT::f32,// ->174946
/*174911*/          OPC_Scope, 10, /*->174923*/ // 3 children in Scope
/*174913*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*174915*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSSrr), 0,
                          MVT::f32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fmaxc:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VMAXCSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*174923*/          /*Scope*/ 10, /*->174934*/
/*174924*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*174926*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCSSrr), 0,
                          MVT::f32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fmaxc:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (MAXCSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*174934*/          /*Scope*/ 10, /*->174945*/
/*174935*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174937*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSSZrr), 0,
                          MVT::f32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fmaxc:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VMAXCSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*174945*/          0, /*End of Scope*/
/*174946*/        /*SwitchType*/ 35, MVT::f64,// ->174983
/*174948*/          OPC_Scope, 10, /*->174960*/ // 3 children in Scope
/*174950*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*174952*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSDrr), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fmaxc:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VMAXCSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*174960*/          /*Scope*/ 10, /*->174971*/
/*174961*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*174963*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCSDrr), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fmaxc:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (MAXCSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*174971*/          /*Scope*/ 10, /*->174982*/
/*174972*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174974*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCSDZrr), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fmaxc:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VMAXCSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*174982*/          0, /*End of Scope*/
/*174983*/        0, // EndSwitchType
/*174984*/      /*Scope*/ 22|128,1/*150*/, /*->175136*/
/*174986*/        OPC_MoveChild1,
/*174987*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*174990*/        OPC_MoveChild0,
/*174991*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*174994*/        OPC_RecordMemRef,
/*174995*/        OPC_RecordNode, // #1 = 'ld' chained node
/*174996*/        OPC_CheckFoldableChainNode,
/*174997*/        OPC_RecordChild1, // #2 = $src2
/*174998*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*175000*/        OPC_CheckPredicate, 9, // Predicate_load
/*175002*/        OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->175069
/*175005*/          OPC_MoveParent,
/*175006*/          OPC_MoveParent,
/*175007*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->175028
/*175010*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175012*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175015*/            OPC_EmitMergeInputChains1_1,
/*175016*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmaxc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXCPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175028*/          /*SwitchType*/ 18, MVT::v4f32,// ->175048
/*175030*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175032*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175035*/            OPC_EmitMergeInputChains1_1,
/*175036*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmaxc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXCPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175048*/          /*SwitchType*/ 18, MVT::v8f32,// ->175068
/*175050*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175052*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175055*/            OPC_EmitMergeInputChains1_1,
/*175056*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmaxc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXCPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175068*/          0, // EndSwitchType
/*175069*/        /*SwitchType*/ 64, MVT::f64,// ->175135
/*175071*/          OPC_MoveParent,
/*175072*/          OPC_MoveParent,
/*175073*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->175094
/*175076*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175078*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175081*/            OPC_EmitMergeInputChains1_1,
/*175082*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmaxc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXCPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175094*/          /*SwitchType*/ 18, MVT::v2f64,// ->175114
/*175096*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175098*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175101*/            OPC_EmitMergeInputChains1_1,
/*175102*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmaxc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXCPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175114*/          /*SwitchType*/ 18, MVT::v4f64,// ->175134
/*175116*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175118*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175121*/            OPC_EmitMergeInputChains1_1,
/*175122*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fmaxc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMAXCPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175134*/          0, // EndSwitchType
/*175135*/        0, // EndSwitchType
/*175136*/      0, /*End of Scope*/
/*175137*/    /*Scope*/ 24|128,1/*152*/, /*->175291*/
/*175139*/      OPC_MoveChild0,
/*175140*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*175143*/      OPC_MoveChild0,
/*175144*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*175147*/      OPC_RecordMemRef,
/*175148*/      OPC_RecordNode, // #0 = 'ld' chained node
/*175149*/      OPC_CheckFoldableChainNode,
/*175150*/      OPC_RecordChild1, // #1 = $src2
/*175151*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*175153*/      OPC_CheckPredicate, 9, // Predicate_load
/*175155*/      OPC_SwitchType /*2 cases */, 65, MVT::f32,// ->175223
/*175158*/        OPC_MoveParent,
/*175159*/        OPC_MoveParent,
/*175160*/        OPC_RecordChild1, // #2 = $src1
/*175161*/        OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->175182
/*175164*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175166*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175169*/          OPC_EmitMergeInputChains1_0,
/*175170*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                    // Dst: (VMAXCPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175182*/        /*SwitchType*/ 18, MVT::v4f32,// ->175202
/*175184*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175186*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175189*/          OPC_EmitMergeInputChains1_0,
/*175190*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                    // Dst: (VMAXCPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175202*/        /*SwitchType*/ 18, MVT::v8f32,// ->175222
/*175204*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175206*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175209*/          OPC_EmitMergeInputChains1_0,
/*175210*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                    // Dst: (VMAXCPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175222*/        0, // EndSwitchType
/*175223*/      /*SwitchType*/ 65, MVT::f64,// ->175290
/*175225*/        OPC_MoveParent,
/*175226*/        OPC_MoveParent,
/*175227*/        OPC_RecordChild1, // #2 = $src1
/*175228*/        OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->175249
/*175231*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175233*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175236*/          OPC_EmitMergeInputChains1_0,
/*175237*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                    // Dst: (VMAXCPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175249*/        /*SwitchType*/ 18, MVT::v2f64,// ->175269
/*175251*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175253*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175256*/          OPC_EmitMergeInputChains1_0,
/*175257*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                    // Dst: (VMAXCPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175269*/        /*SwitchType*/ 18, MVT::v4f64,// ->175289
/*175271*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175273*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175276*/          OPC_EmitMergeInputChains1_0,
/*175277*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                    // Dst: (VMAXCPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175289*/        0, // EndSwitchType
/*175290*/      0, // EndSwitchType
/*175291*/    /*Scope*/ 15|128,2/*271*/, /*->175564*/
/*175293*/      OPC_RecordChild0, // #0 = $src1
/*175294*/      OPC_MoveChild1,
/*175295*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*175298*/      OPC_RecordMemRef,
/*175299*/      OPC_RecordNode, // #1 = 'ld' chained node
/*175300*/      OPC_CheckFoldableChainNode,
/*175301*/      OPC_RecordChild1, // #2 = $src2
/*175302*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*175304*/      OPC_CheckPredicate, 9, // Predicate_load
/*175306*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*175308*/      OPC_Scope, 83, /*->175393*/ // 3 children in Scope
/*175310*/        OPC_MoveParent,
/*175311*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->175332
/*175314*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175316*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175319*/          OPC_EmitMergeInputChains1_1,
/*175320*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMAXCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175332*/        /*SwitchType*/ 18, MVT::v2f64,// ->175352
/*175334*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175336*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175339*/          OPC_EmitMergeInputChains1_1,
/*175340*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMAXCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175352*/        /*SwitchType*/ 18, MVT::v8f32,// ->175372
/*175354*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175356*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175359*/          OPC_EmitMergeInputChains1_1,
/*175360*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMAXCPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175372*/        /*SwitchType*/ 18, MVT::v4f64,// ->175392
/*175374*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175376*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175379*/          OPC_EmitMergeInputChains1_1,
/*175380*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMAXCPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175392*/        0, // EndSwitchType
/*175393*/      /*Scope*/ 45, /*->175439*/
/*175394*/        OPC_CheckPredicate, 48, // Predicate_memop
/*175396*/        OPC_MoveParent,
/*175397*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->175418
/*175400*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*175402*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175405*/          OPC_EmitMergeInputChains1_1,
/*175406*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (MAXCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175418*/        /*SwitchType*/ 18, MVT::v2f64,// ->175438
/*175420*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*175422*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175425*/          OPC_EmitMergeInputChains1_1,
/*175426*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (MAXCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175438*/        0, // EndSwitchType
/*175439*/      /*Scope*/ 123, /*->175563*/
/*175440*/        OPC_MoveParent,
/*175441*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->175462
/*175444*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175446*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175449*/          OPC_EmitMergeInputChains1_1,
/*175450*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMAXCPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175462*/        /*SwitchType*/ 18, MVT::v8f64,// ->175482
/*175464*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175466*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175469*/          OPC_EmitMergeInputChains1_1,
/*175470*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMAXCPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175482*/        /*SwitchType*/ 18, MVT::v4f32,// ->175502
/*175484*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175486*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175489*/          OPC_EmitMergeInputChains1_1,
/*175490*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMAXCPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175502*/        /*SwitchType*/ 18, MVT::v8f32,// ->175522
/*175504*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175506*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175509*/          OPC_EmitMergeInputChains1_1,
/*175510*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMAXCPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175522*/        /*SwitchType*/ 18, MVT::v2f64,// ->175542
/*175524*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175526*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175529*/          OPC_EmitMergeInputChains1_1,
/*175530*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMAXCPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175542*/        /*SwitchType*/ 18, MVT::v4f64,// ->175562
/*175544*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175546*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175549*/          OPC_EmitMergeInputChains1_1,
/*175550*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMAXCPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175562*/        0, // EndSwitchType
/*175563*/      0, /*End of Scope*/
/*175564*/    /*Scope*/ 17|128,2/*273*/, /*->175839*/
/*175566*/      OPC_MoveChild0,
/*175567*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*175570*/      OPC_RecordMemRef,
/*175571*/      OPC_RecordNode, // #0 = 'ld' chained node
/*175572*/      OPC_CheckFoldableChainNode,
/*175573*/      OPC_RecordChild1, // #1 = $src2
/*175574*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*175576*/      OPC_CheckPredicate, 9, // Predicate_load
/*175578*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*175580*/      OPC_Scope, 84, /*->175666*/ // 3 children in Scope
/*175582*/        OPC_MoveParent,
/*175583*/        OPC_RecordChild1, // #2 = $src1
/*175584*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->175605
/*175587*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175589*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175592*/          OPC_EmitMergeInputChains1_0,
/*175593*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175605*/        /*SwitchType*/ 18, MVT::v2f64,// ->175625
/*175607*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175609*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175612*/          OPC_EmitMergeInputChains1_0,
/*175613*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175625*/        /*SwitchType*/ 18, MVT::v8f32,// ->175645
/*175627*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175629*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175632*/          OPC_EmitMergeInputChains1_0,
/*175633*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175645*/        /*SwitchType*/ 18, MVT::v4f64,// ->175665
/*175647*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175649*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175652*/          OPC_EmitMergeInputChains1_0,
/*175653*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175665*/        0, // EndSwitchType
/*175666*/      /*Scope*/ 46, /*->175713*/
/*175667*/        OPC_CheckPredicate, 48, // Predicate_memop
/*175669*/        OPC_MoveParent,
/*175670*/        OPC_RecordChild1, // #2 = $src1
/*175671*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->175692
/*175674*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*175676*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175679*/          OPC_EmitMergeInputChains1_0,
/*175680*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (MAXCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175692*/        /*SwitchType*/ 18, MVT::v2f64,// ->175712
/*175694*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*175696*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175699*/          OPC_EmitMergeInputChains1_0,
/*175700*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (MAXCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175712*/        0, // EndSwitchType
/*175713*/      /*Scope*/ 124, /*->175838*/
/*175714*/        OPC_MoveParent,
/*175715*/        OPC_RecordChild1, // #2 = $src1
/*175716*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->175737
/*175719*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175721*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175724*/          OPC_EmitMergeInputChains1_0,
/*175725*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175737*/        /*SwitchType*/ 18, MVT::v8f64,// ->175757
/*175739*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175741*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175744*/          OPC_EmitMergeInputChains1_0,
/*175745*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175757*/        /*SwitchType*/ 18, MVT::v4f32,// ->175777
/*175759*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175761*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175764*/          OPC_EmitMergeInputChains1_0,
/*175765*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175777*/        /*SwitchType*/ 18, MVT::v8f32,// ->175797
/*175779*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175781*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175784*/          OPC_EmitMergeInputChains1_0,
/*175785*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175797*/        /*SwitchType*/ 18, MVT::v2f64,// ->175817
/*175799*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175801*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175804*/          OPC_EmitMergeInputChains1_0,
/*175805*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175817*/        /*SwitchType*/ 18, MVT::v4f64,// ->175837
/*175819*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175821*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*175824*/          OPC_EmitMergeInputChains1_0,
/*175825*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*175837*/        0, // EndSwitchType
/*175838*/      0, /*End of Scope*/
/*175839*/    /*Scope*/ 26|128,1/*154*/, /*->175995*/
/*175841*/      OPC_RecordChild0, // #0 = $src1
/*175842*/      OPC_RecordChild1, // #1 = $src2
/*175843*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->175881
/*175846*/        OPC_Scope, 10, /*->175858*/ // 3 children in Scope
/*175848*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175850*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmaxc:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VMAXCPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*175858*/        /*Scope*/ 10, /*->175869*/
/*175859*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*175861*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmaxc:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (MAXCPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*175869*/        /*Scope*/ 10, /*->175880*/
/*175870*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175872*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmaxc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VMAXCPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*175880*/        0, /*End of Scope*/
/*175881*/      /*SwitchType*/ 35, MVT::v2f64,// ->175918
/*175883*/        OPC_Scope, 10, /*->175895*/ // 3 children in Scope
/*175885*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175887*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmaxc:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VMAXCPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*175895*/        /*Scope*/ 10, /*->175906*/
/*175896*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*175898*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MAXCPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmaxc:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (MAXCPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*175906*/        /*Scope*/ 10, /*->175917*/
/*175907*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175909*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmaxc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VMAXCPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*175917*/        0, /*End of Scope*/
/*175918*/      /*SwitchType*/ 24, MVT::v8f32,// ->175944
/*175920*/        OPC_Scope, 10, /*->175932*/ // 2 children in Scope
/*175922*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175924*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSYrr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmaxc:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VMAXCPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/*175932*/        /*Scope*/ 10, /*->175943*/
/*175933*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175935*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmaxc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VMAXCPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*175943*/        0, /*End of Scope*/
/*175944*/      /*SwitchType*/ 24, MVT::v4f64,// ->175970
/*175946*/        OPC_Scope, 10, /*->175958*/ // 2 children in Scope
/*175948*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*175950*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDYrr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmaxc:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VMAXCPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2)
/*175958*/        /*Scope*/ 10, /*->175969*/
/*175959*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*175961*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmaxc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VMAXCPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*175969*/        0, /*End of Scope*/
/*175970*/      /*SwitchType*/ 10, MVT::v16f32,// ->175982
/*175972*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175974*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrr), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmaxc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VMAXCPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*175982*/      /*SwitchType*/ 10, MVT::v8f64,// ->175994
/*175984*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175986*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrr), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmaxc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VMAXCPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*175994*/      0, // EndSwitchType
/*175995*/    0, /*End of Scope*/
/*175996*/  /*SwitchOpcode*/ 95|128,10/*1375*/, TARGET_VAL(X86ISD::FMINC),// ->177375
/*176000*/    OPC_Scope, 10|128,1/*138*/, /*->176141*/ // 7 children in Scope
/*176003*/      OPC_RecordChild0, // #0 = $src1
/*176004*/      OPC_MoveChild1,
/*176005*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*176008*/      OPC_RecordMemRef,
/*176009*/      OPC_RecordNode, // #1 = 'ld' chained node
/*176010*/      OPC_CheckFoldableChainNode,
/*176011*/      OPC_RecordChild1, // #2 = $src2
/*176012*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*176014*/      OPC_CheckPredicate, 9, // Predicate_load
/*176016*/      OPC_MoveParent,
/*176017*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->176079
/*176020*/        OPC_Scope, 18, /*->176040*/ // 3 children in Scope
/*176022*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*176024*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176027*/          OPC_EmitMergeInputChains1_1,
/*176028*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMINCSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176040*/        /*Scope*/ 18, /*->176059*/
/*176041*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*176043*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176046*/          OPC_EmitMergeInputChains1_1,
/*176047*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINCSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (MINCSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176059*/        /*Scope*/ 18, /*->176078*/
/*176060*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176062*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176065*/          OPC_EmitMergeInputChains1_1,
/*176066*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f32] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMINCSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176078*/        0, /*End of Scope*/
/*176079*/      /*SwitchType*/ 59, MVT::f64,// ->176140
/*176081*/        OPC_Scope, 18, /*->176101*/ // 3 children in Scope
/*176083*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*176085*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176088*/          OPC_EmitMergeInputChains1_1,
/*176089*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMINCSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176101*/        /*Scope*/ 18, /*->176120*/
/*176102*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*176104*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176107*/          OPC_EmitMergeInputChains1_1,
/*176108*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINCSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (MINCSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176120*/        /*Scope*/ 18, /*->176139*/
/*176121*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176123*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176126*/          OPC_EmitMergeInputChains1_1,
/*176127*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f64] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMINCSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176139*/        0, /*End of Scope*/
/*176140*/      0, // EndSwitchType
/*176141*/    /*Scope*/ 10|128,1/*138*/, /*->176281*/
/*176143*/      OPC_MoveChild0,
/*176144*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*176147*/      OPC_RecordMemRef,
/*176148*/      OPC_RecordNode, // #0 = 'ld' chained node
/*176149*/      OPC_CheckFoldableChainNode,
/*176150*/      OPC_RecordChild1, // #1 = $src2
/*176151*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*176153*/      OPC_CheckPredicate, 9, // Predicate_load
/*176155*/      OPC_MoveParent,
/*176156*/      OPC_RecordChild1, // #2 = $src1
/*176157*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->176219
/*176160*/        OPC_Scope, 18, /*->176180*/ // 3 children in Scope
/*176162*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*176164*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176167*/          OPC_EmitMergeInputChains1_0,
/*176168*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (VMINCSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176180*/        /*Scope*/ 18, /*->176199*/
/*176181*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*176183*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176186*/          OPC_EmitMergeInputChains1_0,
/*176187*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINCSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (MINCSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176199*/        /*Scope*/ 18, /*->176218*/
/*176200*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176202*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176205*/          OPC_EmitMergeInputChains1_0,
/*176206*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (VMINCSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176218*/        0, /*End of Scope*/
/*176219*/      /*SwitchType*/ 59, MVT::f64,// ->176280
/*176221*/        OPC_Scope, 18, /*->176241*/ // 3 children in Scope
/*176223*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*176225*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176228*/          OPC_EmitMergeInputChains1_0,
/*176229*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (VMINCSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176241*/        /*Scope*/ 18, /*->176260*/
/*176242*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*176244*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176247*/          OPC_EmitMergeInputChains1_0,
/*176248*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINCSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (MINCSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176260*/        /*Scope*/ 18, /*->176279*/
/*176261*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176263*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176266*/          OPC_EmitMergeInputChains1_0,
/*176267*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (VMINCSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176279*/        0, /*End of Scope*/
/*176280*/      0, // EndSwitchType
/*176281*/    /*Scope*/ 105|128,1/*233*/, /*->176516*/
/*176283*/      OPC_RecordChild0, // #0 = $src1
/*176284*/      OPC_Scope, 77, /*->176363*/ // 2 children in Scope
/*176286*/        OPC_RecordChild1, // #1 = $src2
/*176287*/        OPC_SwitchType /*2 cases */, 35, MVT::f32,// ->176325
/*176290*/          OPC_Scope, 10, /*->176302*/ // 3 children in Scope
/*176292*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*176294*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSSrr), 0,
                          MVT::f32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fminc:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VMINCSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*176302*/          /*Scope*/ 10, /*->176313*/
/*176303*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*176305*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MINCSSrr), 0,
                          MVT::f32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fminc:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (MINCSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*176313*/          /*Scope*/ 10, /*->176324*/
/*176314*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176316*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSSZrr), 0,
                          MVT::f32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fminc:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VMINCSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*176324*/          0, /*End of Scope*/
/*176325*/        /*SwitchType*/ 35, MVT::f64,// ->176362
/*176327*/          OPC_Scope, 10, /*->176339*/ // 3 children in Scope
/*176329*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*176331*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSDrr), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fminc:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VMINCSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*176339*/          /*Scope*/ 10, /*->176350*/
/*176340*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*176342*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MINCSDrr), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fminc:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (MINCSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*176350*/          /*Scope*/ 10, /*->176361*/
/*176351*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176353*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCSDZrr), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86fminc:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VMINCSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*176361*/          0, /*End of Scope*/
/*176362*/        0, // EndSwitchType
/*176363*/      /*Scope*/ 22|128,1/*150*/, /*->176515*/
/*176365*/        OPC_MoveChild1,
/*176366*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*176369*/        OPC_MoveChild0,
/*176370*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*176373*/        OPC_RecordMemRef,
/*176374*/        OPC_RecordNode, // #1 = 'ld' chained node
/*176375*/        OPC_CheckFoldableChainNode,
/*176376*/        OPC_RecordChild1, // #2 = $src2
/*176377*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*176379*/        OPC_CheckPredicate, 9, // Predicate_load
/*176381*/        OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->176448
/*176384*/          OPC_MoveParent,
/*176385*/          OPC_MoveParent,
/*176386*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->176407
/*176389*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176391*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176394*/            OPC_EmitMergeInputChains1_1,
/*176395*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fminc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINCPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176407*/          /*SwitchType*/ 18, MVT::v4f32,// ->176427
/*176409*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176411*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176414*/            OPC_EmitMergeInputChains1_1,
/*176415*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fminc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINCPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176427*/          /*SwitchType*/ 18, MVT::v8f32,// ->176447
/*176429*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176431*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176434*/            OPC_EmitMergeInputChains1_1,
/*176435*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fminc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINCPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176447*/          0, // EndSwitchType
/*176448*/        /*SwitchType*/ 64, MVT::f64,// ->176514
/*176450*/          OPC_MoveParent,
/*176451*/          OPC_MoveParent,
/*176452*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->176473
/*176455*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176457*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176460*/            OPC_EmitMergeInputChains1_1,
/*176461*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fminc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINCPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176473*/          /*SwitchType*/ 18, MVT::v2f64,// ->176493
/*176475*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176477*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176480*/            OPC_EmitMergeInputChains1_1,
/*176481*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fminc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINCPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176493*/          /*SwitchType*/ 18, MVT::v4f64,// ->176513
/*176495*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176497*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176500*/            OPC_EmitMergeInputChains1_1,
/*176501*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86fminc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMINCPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176513*/          0, // EndSwitchType
/*176514*/        0, // EndSwitchType
/*176515*/      0, /*End of Scope*/
/*176516*/    /*Scope*/ 24|128,1/*152*/, /*->176670*/
/*176518*/      OPC_MoveChild0,
/*176519*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*176522*/      OPC_MoveChild0,
/*176523*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*176526*/      OPC_RecordMemRef,
/*176527*/      OPC_RecordNode, // #0 = 'ld' chained node
/*176528*/      OPC_CheckFoldableChainNode,
/*176529*/      OPC_RecordChild1, // #1 = $src2
/*176530*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*176532*/      OPC_CheckPredicate, 9, // Predicate_load
/*176534*/      OPC_SwitchType /*2 cases */, 65, MVT::f32,// ->176602
/*176537*/        OPC_MoveParent,
/*176538*/        OPC_MoveParent,
/*176539*/        OPC_RecordChild1, // #2 = $src1
/*176540*/        OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->176561
/*176543*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176545*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176548*/          OPC_EmitMergeInputChains1_0,
/*176549*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                    // Dst: (VMINCPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176561*/        /*SwitchType*/ 18, MVT::v4f32,// ->176581
/*176563*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176565*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176568*/          OPC_EmitMergeInputChains1_0,
/*176569*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                    // Dst: (VMINCPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176581*/        /*SwitchType*/ 18, MVT::v8f32,// ->176601
/*176583*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176585*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176588*/          OPC_EmitMergeInputChains1_0,
/*176589*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                    // Dst: (VMINCPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176601*/        0, // EndSwitchType
/*176602*/      /*SwitchType*/ 65, MVT::f64,// ->176669
/*176604*/        OPC_MoveParent,
/*176605*/        OPC_MoveParent,
/*176606*/        OPC_RecordChild1, // #2 = $src1
/*176607*/        OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->176628
/*176610*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176612*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176615*/          OPC_EmitMergeInputChains1_0,
/*176616*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                    // Dst: (VMINCPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176628*/        /*SwitchType*/ 18, MVT::v2f64,// ->176648
/*176630*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176632*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176635*/          OPC_EmitMergeInputChains1_0,
/*176636*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                    // Dst: (VMINCPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176648*/        /*SwitchType*/ 18, MVT::v4f64,// ->176668
/*176650*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176652*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176655*/          OPC_EmitMergeInputChains1_0,
/*176656*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                    // Dst: (VMINCPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176668*/        0, // EndSwitchType
/*176669*/      0, // EndSwitchType
/*176670*/    /*Scope*/ 15|128,2/*271*/, /*->176943*/
/*176672*/      OPC_RecordChild0, // #0 = $src1
/*176673*/      OPC_MoveChild1,
/*176674*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*176677*/      OPC_RecordMemRef,
/*176678*/      OPC_RecordNode, // #1 = 'ld' chained node
/*176679*/      OPC_CheckFoldableChainNode,
/*176680*/      OPC_RecordChild1, // #2 = $src2
/*176681*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*176683*/      OPC_CheckPredicate, 9, // Predicate_load
/*176685*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*176687*/      OPC_Scope, 83, /*->176772*/ // 3 children in Scope
/*176689*/        OPC_MoveParent,
/*176690*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->176711
/*176693*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*176695*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176698*/          OPC_EmitMergeInputChains1_1,
/*176699*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMINCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176711*/        /*SwitchType*/ 18, MVT::v2f64,// ->176731
/*176713*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*176715*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176718*/          OPC_EmitMergeInputChains1_1,
/*176719*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMINCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176731*/        /*SwitchType*/ 18, MVT::v8f32,// ->176751
/*176733*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*176735*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176738*/          OPC_EmitMergeInputChains1_1,
/*176739*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMINCPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176751*/        /*SwitchType*/ 18, MVT::v4f64,// ->176771
/*176753*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*176755*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176758*/          OPC_EmitMergeInputChains1_1,
/*176759*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMINCPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176771*/        0, // EndSwitchType
/*176772*/      /*Scope*/ 45, /*->176818*/
/*176773*/        OPC_CheckPredicate, 48, // Predicate_memop
/*176775*/        OPC_MoveParent,
/*176776*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->176797
/*176779*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*176781*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176784*/          OPC_EmitMergeInputChains1_1,
/*176785*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINCPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (MINCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176797*/        /*SwitchType*/ 18, MVT::v2f64,// ->176817
/*176799*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*176801*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176804*/          OPC_EmitMergeInputChains1_1,
/*176805*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINCPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (MINCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176817*/        0, // EndSwitchType
/*176818*/      /*Scope*/ 123, /*->176942*/
/*176819*/        OPC_MoveParent,
/*176820*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->176841
/*176823*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176825*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176828*/          OPC_EmitMergeInputChains1_1,
/*176829*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMINCPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176841*/        /*SwitchType*/ 18, MVT::v8f64,// ->176861
/*176843*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176845*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176848*/          OPC_EmitMergeInputChains1_1,
/*176849*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMINCPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176861*/        /*SwitchType*/ 18, MVT::v4f32,// ->176881
/*176863*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176865*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176868*/          OPC_EmitMergeInputChains1_1,
/*176869*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMINCPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176881*/        /*SwitchType*/ 18, MVT::v8f32,// ->176901
/*176883*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176885*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176888*/          OPC_EmitMergeInputChains1_1,
/*176889*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMINCPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176901*/        /*SwitchType*/ 18, MVT::v2f64,// ->176921
/*176903*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176905*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176908*/          OPC_EmitMergeInputChains1_1,
/*176909*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMINCPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176921*/        /*SwitchType*/ 18, MVT::v4f64,// ->176941
/*176923*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*176925*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176928*/          OPC_EmitMergeInputChains1_1,
/*176929*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMINCPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176941*/        0, // EndSwitchType
/*176942*/      0, /*End of Scope*/
/*176943*/    /*Scope*/ 17|128,2/*273*/, /*->177218*/
/*176945*/      OPC_MoveChild0,
/*176946*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*176949*/      OPC_RecordMemRef,
/*176950*/      OPC_RecordNode, // #0 = 'ld' chained node
/*176951*/      OPC_CheckFoldableChainNode,
/*176952*/      OPC_RecordChild1, // #1 = $src2
/*176953*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*176955*/      OPC_CheckPredicate, 9, // Predicate_load
/*176957*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*176959*/      OPC_Scope, 84, /*->177045*/ // 3 children in Scope
/*176961*/        OPC_MoveParent,
/*176962*/        OPC_RecordChild1, // #2 = $src1
/*176963*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->176984
/*176966*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*176968*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176971*/          OPC_EmitMergeInputChains1_0,
/*176972*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VMINCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*176984*/        /*SwitchType*/ 18, MVT::v2f64,// ->177004
/*176986*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*176988*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*176991*/          OPC_EmitMergeInputChains1_0,
/*176992*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VMINCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177004*/        /*SwitchType*/ 18, MVT::v8f32,// ->177024
/*177006*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*177008*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*177011*/          OPC_EmitMergeInputChains1_0,
/*177012*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VMINCPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177024*/        /*SwitchType*/ 18, MVT::v4f64,// ->177044
/*177026*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*177028*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*177031*/          OPC_EmitMergeInputChains1_0,
/*177032*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VMINCPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177044*/        0, // EndSwitchType
/*177045*/      /*Scope*/ 46, /*->177092*/
/*177046*/        OPC_CheckPredicate, 48, // Predicate_memop
/*177048*/        OPC_MoveParent,
/*177049*/        OPC_RecordChild1, // #2 = $src1
/*177050*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->177071
/*177053*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*177055*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*177058*/          OPC_EmitMergeInputChains1_0,
/*177059*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINCPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (MINCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177071*/        /*SwitchType*/ 18, MVT::v2f64,// ->177091
/*177073*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*177075*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*177078*/          OPC_EmitMergeInputChains1_0,
/*177079*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINCPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (MINCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177091*/        0, // EndSwitchType
/*177092*/      /*Scope*/ 124, /*->177217*/
/*177093*/        OPC_MoveParent,
/*177094*/        OPC_RecordChild1, // #2 = $src1
/*177095*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->177116
/*177098*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177100*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*177103*/          OPC_EmitMergeInputChains1_0,
/*177104*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VMINCPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177116*/        /*SwitchType*/ 18, MVT::v8f64,// ->177136
/*177118*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177120*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*177123*/          OPC_EmitMergeInputChains1_0,
/*177124*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VMINCPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177136*/        /*SwitchType*/ 18, MVT::v4f32,// ->177156
/*177138*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*177140*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*177143*/          OPC_EmitMergeInputChains1_0,
/*177144*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VMINCPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177156*/        /*SwitchType*/ 18, MVT::v8f32,// ->177176
/*177158*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*177160*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*177163*/          OPC_EmitMergeInputChains1_0,
/*177164*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VMINCPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177176*/        /*SwitchType*/ 18, MVT::v2f64,// ->177196
/*177178*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*177180*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*177183*/          OPC_EmitMergeInputChains1_0,
/*177184*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VMINCPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177196*/        /*SwitchType*/ 18, MVT::v4f64,// ->177216
/*177198*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*177200*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*177203*/          OPC_EmitMergeInputChains1_0,
/*177204*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VMINCPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177216*/        0, // EndSwitchType
/*177217*/      0, /*End of Scope*/
/*177218*/    /*Scope*/ 26|128,1/*154*/, /*->177374*/
/*177220*/      OPC_RecordChild0, // #0 = $src1
/*177221*/      OPC_RecordChild1, // #1 = $src2
/*177222*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->177260
/*177225*/        OPC_Scope, 10, /*->177237*/ // 3 children in Scope
/*177227*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*177229*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fminc:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VMINCPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*177237*/        /*Scope*/ 10, /*->177248*/
/*177238*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*177240*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINCPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fminc:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (MINCPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*177248*/        /*Scope*/ 10, /*->177259*/
/*177249*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*177251*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fminc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VMINCPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*177259*/        0, /*End of Scope*/
/*177260*/      /*SwitchType*/ 35, MVT::v2f64,// ->177297
/*177262*/        OPC_Scope, 10, /*->177274*/ // 3 children in Scope
/*177264*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*177266*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fminc:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VMINCPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*177274*/        /*Scope*/ 10, /*->177285*/
/*177275*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*177277*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MINCPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fminc:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (MINCPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*177285*/        /*Scope*/ 10, /*->177296*/
/*177286*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*177288*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fminc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VMINCPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*177296*/        0, /*End of Scope*/
/*177297*/      /*SwitchType*/ 24, MVT::v8f32,// ->177323
/*177299*/        OPC_Scope, 10, /*->177311*/ // 2 children in Scope
/*177301*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*177303*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSYrr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fminc:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VMINCPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/*177311*/        /*Scope*/ 10, /*->177322*/
/*177312*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*177314*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fminc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VMINCPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*177322*/        0, /*End of Scope*/
/*177323*/      /*SwitchType*/ 24, MVT::v4f64,// ->177349
/*177325*/        OPC_Scope, 10, /*->177337*/ // 2 children in Scope
/*177327*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*177329*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDYrr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fminc:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VMINCPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2)
/*177337*/        /*Scope*/ 10, /*->177348*/
/*177338*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*177340*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fminc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VMINCPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*177348*/        0, /*End of Scope*/
/*177349*/      /*SwitchType*/ 10, MVT::v16f32,// ->177361
/*177351*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177353*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrr), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fminc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VMINCPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*177361*/      /*SwitchType*/ 10, MVT::v8f64,// ->177373
/*177363*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177365*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrr), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fminc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VMINCPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*177373*/      0, // EndSwitchType
/*177374*/    0, /*End of Scope*/
/*177375*/  /*SwitchOpcode*/ 82|128,6/*850*/, TARGET_VAL(ISD::FSQRT),// ->178229
/*177379*/    OPC_Scope, 30|128,1/*158*/, /*->177540*/ // 4 children in Scope
/*177382*/      OPC_MoveChild0,
/*177383*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*177386*/      OPC_RecordMemRef,
/*177387*/      OPC_RecordNode, // #0 = 'ld' chained node
/*177388*/      OPC_RecordChild1, // #1 = $src1
/*177389*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177391*/      OPC_CheckPredicate, 9, // Predicate_load
/*177393*/      OPC_MoveParent,
/*177394*/      OPC_SwitchType /*2 cases */, 70, MVT::f32,// ->177467
/*177397*/        OPC_Scope, 17, /*->177416*/ // 3 children in Scope
/*177399*/          OPC_CheckPatternPredicate, 63, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*177401*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*177404*/          OPC_EmitMergeInputChains1_0,
/*177405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fsqrt:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (SQRTSSm:{ *:[f32] } addr:{ *:[iPTR] }:$src1)
/*177416*/        /*Scope*/ 24, /*->177441*/
/*177417*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*177419*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177422*/          OPC_EmitMergeInputChains1_0,
/*177423*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*177429*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*177441*/        /*Scope*/ 24, /*->177466*/
/*177442*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*177444*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177447*/          OPC_EmitMergeInputChains1_0,
/*177448*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*177454*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        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: (VSQRTSSZm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src)
/*177466*/        0, /*End of Scope*/
/*177467*/      /*SwitchType*/ 70, MVT::f64,// ->177539
/*177469*/        OPC_Scope, 17, /*->177488*/ // 3 children in Scope
/*177471*/          OPC_CheckPatternPredicate, 147, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*177473*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*177476*/          OPC_EmitMergeInputChains1_0,
/*177477*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fsqrt:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (SQRTSDm:{ *:[f64] } addr:{ *:[iPTR] }:$src1)
/*177488*/        /*Scope*/ 24, /*->177513*/
/*177489*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*177491*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177494*/          OPC_EmitMergeInputChains1_0,
/*177495*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*177501*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*177513*/        /*Scope*/ 24, /*->177538*/
/*177514*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*177516*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177519*/          OPC_EmitMergeInputChains1_0,
/*177520*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*177526*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        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: (VSQRTSDZm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*177538*/        0, /*End of Scope*/
/*177539*/      0, // EndSwitchType
/*177540*/    /*Scope*/ 3|128,1/*131*/, /*->177673*/
/*177542*/      OPC_RecordChild0, // #0 = $src
/*177543*/      OPC_SwitchType /*3 cases */, 57, MVT::f32,// ->177603
/*177546*/        OPC_Scope, 10, /*->177558*/ // 4 children in Scope
/*177548*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*177550*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SQRT_Fp32), 0,
                        MVT::f32, MVT::i16, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[f32] } RFP32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (SQRT_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src)
/*177558*/        /*Scope*/ 9, /*->177568*/
/*177559*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*177561*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSSr), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[f32] } FR32:{ *:[f32] }:$src1) - Complexity = 3
                    // Dst: (SQRTSSr:{ *:[f32] } FR32:{ *:[f32] }:$src1)
/*177568*/        /*Scope*/ 16, /*->177585*/
/*177569*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*177571*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*177577*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSr), 0,
                        MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (fsqrt:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTSSr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32:{ *:[f32] }:$src)
/*177585*/        /*Scope*/ 16, /*->177602*/
/*177586*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177588*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*177594*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZr), 0,
                        MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (fsqrt:{ *:[f32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTSSZr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32X:{ *:[f32] }:$src)
/*177602*/        0, /*End of Scope*/
/*177603*/      /*SwitchType*/ 57, MVT::f64,// ->177662
/*177605*/        OPC_Scope, 10, /*->177617*/ // 4 children in Scope
/*177607*/          OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*177609*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SQRT_Fp64), 0,
                        MVT::f64, MVT::i16, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[f64] } RFP64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (SQRT_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src)
/*177617*/        /*Scope*/ 9, /*->177627*/
/*177618*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*177620*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSDr), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[f64] } FR64:{ *:[f64] }:$src1) - Complexity = 3
                    // Dst: (SQRTSDr:{ *:[f64] } FR64:{ *:[f64] }:$src1)
/*177627*/        /*Scope*/ 16, /*->177644*/
/*177628*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*177630*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*177636*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDr), 0,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (fsqrt:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTSDr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64:{ *:[f64] }:$src)
/*177644*/        /*Scope*/ 16, /*->177661*/
/*177645*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177647*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*177653*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZr), 0,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (fsqrt:{ *:[f64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTSDZr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64X:{ *:[f64] }:$src)
/*177661*/        0, /*End of Scope*/
/*177662*/      /*SwitchType*/ 8, MVT::f80,// ->177672
/*177664*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SQRT_Fp80), 0,
                      MVT::f80, MVT::i16, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:{ *:[f80] } RFP80:{ *:[f80] }:$src) - Complexity = 3
                  // Dst: (SQRT_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src)
/*177672*/      0, // EndSwitchType
/*177673*/    /*Scope*/ 26|128,3/*410*/, /*->178085*/
/*177675*/      OPC_MoveChild0,
/*177676*/      OPC_SwitchOpcode /*2 cases */, 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST),// ->177821
/*177681*/        OPC_MoveChild0,
/*177682*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*177685*/        OPC_RecordMemRef,
/*177686*/        OPC_RecordNode, // #0 = 'ld' chained node
/*177687*/        OPC_CheckFoldableChainNode,
/*177688*/        OPC_RecordChild1, // #1 = $src
/*177689*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177691*/        OPC_CheckPredicate, 9, // Predicate_load
/*177693*/        OPC_SwitchType /*2 cases */, 61, MVT::f32,// ->177757
/*177696*/          OPC_MoveParent,
/*177697*/          OPC_MoveParent,
/*177698*/          OPC_SwitchType /*3 cases */, 17, MVT::v16f32,// ->177718
/*177701*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177703*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177706*/            OPC_EmitMergeInputChains1_0,
/*177707*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VSQRTPSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*177718*/          /*SwitchType*/ 17, MVT::v4f32,// ->177737
/*177720*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*177722*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177725*/            OPC_EmitMergeInputChains1_0,
/*177726*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VSQRTPSZ128mb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*177737*/          /*SwitchType*/ 17, MVT::v8f32,// ->177756
/*177739*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*177741*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177744*/            OPC_EmitMergeInputChains1_0,
/*177745*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VSQRTPSZ256mb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*177756*/          0, // EndSwitchType
/*177757*/        /*SwitchType*/ 61, MVT::f64,// ->177820
/*177759*/          OPC_MoveParent,
/*177760*/          OPC_MoveParent,
/*177761*/          OPC_SwitchType /*3 cases */, 17, MVT::v8f64,// ->177781
/*177764*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177766*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177769*/            OPC_EmitMergeInputChains1_0,
/*177770*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VSQRTPDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*177781*/          /*SwitchType*/ 17, MVT::v2f64,// ->177800
/*177783*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*177785*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177788*/            OPC_EmitMergeInputChains1_0,
/*177789*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VSQRTPDZ128mb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*177800*/          /*SwitchType*/ 17, MVT::v4f64,// ->177819
/*177802*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*177804*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177807*/            OPC_EmitMergeInputChains1_0,
/*177808*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VSQRTPDZ256mb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*177819*/          0, // EndSwitchType
/*177820*/        0, // EndSwitchType
/*177821*/      /*SwitchOpcode*/ 3|128,2/*259*/, TARGET_VAL(ISD::LOAD),// ->178084
/*177825*/        OPC_RecordMemRef,
/*177826*/        OPC_RecordNode, // #0 = 'ld' chained node
/*177827*/        OPC_RecordChild1, // #1 = $src
/*177828*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177830*/        OPC_CheckPredicate, 9, // Predicate_load
/*177832*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*177834*/        OPC_Scope, 41, /*->177877*/ // 5 children in Scope
/*177836*/          OPC_MoveParent,
/*177837*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->177857
/*177840*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*177842*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177845*/            OPC_EmitMergeInputChains1_0,
/*177846*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VSQRTPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*177857*/          /*SwitchType*/ 17, MVT::v8f32,// ->177876
/*177859*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*177861*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177864*/            OPC_EmitMergeInputChains1_0,
/*177865*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VSQRTPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*177876*/          0, // EndSwitchType
/*177877*/        /*Scope*/ 22, /*->177900*/
/*177878*/          OPC_CheckPredicate, 48, // Predicate_memop
/*177880*/          OPC_MoveParent,
/*177881*/          OPC_CheckType, MVT::v4f32,
/*177883*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*177885*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177888*/          OPC_EmitMergeInputChains1_0,
/*177889*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (SQRTPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*177900*/        /*Scope*/ 41, /*->177942*/
/*177901*/          OPC_MoveParent,
/*177902*/          OPC_SwitchType /*2 cases */, 17, MVT::v2f64,// ->177922
/*177905*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*177907*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177910*/            OPC_EmitMergeInputChains1_0,
/*177911*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VSQRTPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*177922*/          /*SwitchType*/ 17, MVT::v4f64,// ->177941
/*177924*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*177926*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177929*/            OPC_EmitMergeInputChains1_0,
/*177930*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VSQRTPDYm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*177941*/          0, // EndSwitchType
/*177942*/        /*Scope*/ 22, /*->177965*/
/*177943*/          OPC_CheckPredicate, 48, // Predicate_memop
/*177945*/          OPC_MoveParent,
/*177946*/          OPC_CheckType, MVT::v2f64,
/*177948*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*177950*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177953*/          OPC_EmitMergeInputChains1_0,
/*177954*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTPDm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (SQRTPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*177965*/        /*Scope*/ 117, /*->178083*/
/*177966*/          OPC_MoveParent,
/*177967*/          OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->177987
/*177970*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177972*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177975*/            OPC_EmitMergeInputChains1_0,
/*177976*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VSQRTPSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*177987*/          /*SwitchType*/ 17, MVT::v8f64,// ->178006
/*177989*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177991*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*177994*/            OPC_EmitMergeInputChains1_0,
/*177995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VSQRTPDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*178006*/          /*SwitchType*/ 17, MVT::v4f32,// ->178025
/*178008*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*178010*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178013*/            OPC_EmitMergeInputChains1_0,
/*178014*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VSQRTPSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*178025*/          /*SwitchType*/ 17, MVT::v8f32,// ->178044
/*178027*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*178029*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178032*/            OPC_EmitMergeInputChains1_0,
/*178033*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VSQRTPSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*178044*/          /*SwitchType*/ 17, MVT::v2f64,// ->178063
/*178046*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*178048*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178051*/            OPC_EmitMergeInputChains1_0,
/*178052*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VSQRTPDZ128m:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*178063*/          /*SwitchType*/ 17, MVT::v4f64,// ->178082
/*178065*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*178067*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178070*/            OPC_EmitMergeInputChains1_0,
/*178071*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VSQRTPDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*178082*/          0, // EndSwitchType
/*178083*/        0, /*End of Scope*/
/*178084*/      0, // EndSwitchOpcode
/*178085*/    /*Scope*/ 13|128,1/*141*/, /*->178228*/
/*178087*/      OPC_RecordChild0, // #0 = $src
/*178088*/      OPC_SwitchType /*6 cases */, 32, MVT::v4f32,// ->178123
/*178091*/        OPC_Scope, 9, /*->178102*/ // 3 children in Scope
/*178093*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*178095*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*178102*/        /*Scope*/ 9, /*->178112*/
/*178103*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*178105*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTPSr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (SQRTPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*178112*/        /*Scope*/ 9, /*->178122*/
/*178113*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*178115*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128r), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTPSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src)
/*178122*/        0, /*End of Scope*/
/*178123*/      /*SwitchType*/ 22, MVT::v8f32,// ->178147
/*178125*/        OPC_Scope, 9, /*->178136*/ // 2 children in Scope
/*178127*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*178129*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSYr), 0,
                        MVT::v8f32, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src)
/*178136*/        /*Scope*/ 9, /*->178146*/
/*178137*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*178139*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256r), 0,
                        MVT::v8f32, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTPSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src)
/*178146*/        0, /*End of Scope*/
/*178147*/      /*SwitchType*/ 32, MVT::v2f64,// ->178181
/*178149*/        OPC_Scope, 9, /*->178160*/ // 3 children in Scope
/*178151*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*178153*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/*178160*/        /*Scope*/ 9, /*->178170*/
/*178161*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*178163*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTPDr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (SQRTPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/*178170*/        /*Scope*/ 9, /*->178180*/
/*178171*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*178173*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128r), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTPDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src)
/*178180*/        0, /*End of Scope*/
/*178181*/      /*SwitchType*/ 22, MVT::v4f64,// ->178205
/*178183*/        OPC_Scope, 9, /*->178194*/ // 2 children in Scope
/*178185*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*178187*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDYr), 0,
                        MVT::v4f64, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTPDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src)
/*178194*/        /*Scope*/ 9, /*->178204*/
/*178195*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*178197*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256r), 0,
                        MVT::v4f64, 1/*#Ops*/, 0, 
                    // Src: (fsqrt:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTPDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src)
/*178204*/        0, /*End of Scope*/
/*178205*/      /*SwitchType*/ 9, MVT::v16f32,// ->178216
/*178207*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178209*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VSQRTPSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*178216*/      /*SwitchType*/ 9, MVT::v8f64,// ->178227
/*178218*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178220*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZr), 0,
                      MVT::v8f64, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VSQRTPDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*178227*/      0, // EndSwitchType
/*178228*/    0, /*End of Scope*/
/*178229*/  /*SwitchOpcode*/ 87|128,1/*215*/, TARGET_VAL(X86ISD::FRSQRT),// ->178448
/*178233*/    OPC_Scope, 59, /*->178294*/ // 4 children in Scope
/*178235*/      OPC_MoveChild0,
/*178236*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*178239*/      OPC_RecordMemRef,
/*178240*/      OPC_RecordNode, // #0 = 'ld' chained node
/*178241*/      OPC_RecordChild1, // #1 = $src1
/*178242*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178244*/      OPC_CheckPredicate, 9, // Predicate_load
/*178246*/      OPC_MoveParent,
/*178247*/      OPC_CheckType, MVT::f32,
/*178249*/      OPC_Scope, 17, /*->178268*/ // 2 children in Scope
/*178251*/        OPC_CheckPatternPredicate, 63, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*178253*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*178256*/        OPC_EmitMergeInputChains1_0,
/*178257*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RSQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86frsqrt:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (RSQRTSSm:{ *:[f32] } addr:{ *:[iPTR] }:$src1)
/*178268*/      /*Scope*/ 24, /*->178293*/
/*178269*/        OPC_CheckPatternPredicate, 64, // (Subtarget->hasAVX()) && (MF->getFunction().optForSize())
/*178271*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178274*/        OPC_EmitMergeInputChains1_0,
/*178275*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f32, 0/*#Ops*/,  // Results = #7
/*178281*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*178293*/      0, /*End of Scope*/
/*178294*/    /*Scope*/ 32, /*->178327*/
/*178295*/      OPC_RecordChild0, // #0 = $src1
/*178296*/      OPC_CheckType, MVT::f32,
/*178298*/      OPC_Scope, 9, /*->178309*/ // 2 children in Scope
/*178300*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*178302*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RSQRTSSr), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (X86frsqrt:{ *:[f32] } FR32:{ *:[f32] }:$src1) - Complexity = 3
                  // Dst: (RSQRTSSr:{ *:[f32] } FR32:{ *:[f32] }:$src1)
/*178309*/      /*Scope*/ 16, /*->178326*/
/*178310*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*178312*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f32, 0/*#Ops*/,  // Results = #1
/*178318*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRTSSr), 0,
                      MVT::f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86frsqrt:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                  // Dst: (VRSQRTSSr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32:{ *:[f32] }:$src)
/*178326*/      0, /*End of Scope*/
/*178327*/    /*Scope*/ 80, /*->178408*/
/*178328*/      OPC_MoveChild0,
/*178329*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*178332*/      OPC_RecordMemRef,
/*178333*/      OPC_RecordNode, // #0 = 'ld' chained node
/*178334*/      OPC_RecordChild1, // #1 = $src
/*178335*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178337*/      OPC_CheckPredicate, 9, // Predicate_load
/*178339*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*178341*/      OPC_Scope, 41, /*->178384*/ // 2 children in Scope
/*178343*/        OPC_MoveParent,
/*178344*/        OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->178364
/*178347*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*178349*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178352*/          OPC_EmitMergeInputChains1_0,
/*178353*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VRSQRTPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*178364*/        /*SwitchType*/ 17, MVT::v8f32,// ->178383
/*178366*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*178368*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178371*/          OPC_EmitMergeInputChains1_0,
/*178372*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRTPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VRSQRTPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*178383*/        0, // EndSwitchType
/*178384*/      /*Scope*/ 22, /*->178407*/
/*178385*/        OPC_CheckPredicate, 48, // Predicate_memop
/*178387*/        OPC_MoveParent,
/*178388*/        OPC_CheckType, MVT::v4f32,
/*178390*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*178392*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178395*/        OPC_EmitMergeInputChains1_0,
/*178396*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RSQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (RSQRTPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*178407*/      0, /*End of Scope*/
/*178408*/    /*Scope*/ 38, /*->178447*/
/*178409*/      OPC_RecordChild0, // #0 = $src
/*178410*/      OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->178435
/*178413*/        OPC_Scope, 9, /*->178424*/ // 2 children in Scope
/*178415*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*178417*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRTPSr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (X86frsqrt:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VRSQRTPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*178424*/        /*Scope*/ 9, /*->178434*/
/*178425*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*178427*/          OPC_MorphNodeTo1, TARGET_VAL(X86::RSQRTPSr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (X86frsqrt:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (RSQRTPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*178434*/        0, /*End of Scope*/
/*178435*/      /*SwitchType*/ 9, MVT::v8f32,// ->178446
/*178437*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*178439*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRTPSYr), 0,
                      MVT::v8f32, 1/*#Ops*/, 0, 
                  // Src: (X86frsqrt:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                  // Dst: (VRSQRTPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src)
/*178446*/      0, // EndSwitchType
/*178447*/    0, /*End of Scope*/
/*178448*/  /*SwitchOpcode*/ 87|128,1/*215*/, TARGET_VAL(X86ISD::FRCP),// ->178667
/*178452*/    OPC_Scope, 59, /*->178513*/ // 4 children in Scope
/*178454*/      OPC_MoveChild0,
/*178455*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*178458*/      OPC_RecordMemRef,
/*178459*/      OPC_RecordNode, // #0 = 'ld' chained node
/*178460*/      OPC_RecordChild1, // #1 = $src1
/*178461*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178463*/      OPC_CheckPredicate, 9, // Predicate_load
/*178465*/      OPC_MoveParent,
/*178466*/      OPC_CheckType, MVT::f32,
/*178468*/      OPC_Scope, 17, /*->178487*/ // 2 children in Scope
/*178470*/        OPC_CheckPatternPredicate, 63, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*178472*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*178475*/        OPC_EmitMergeInputChains1_0,
/*178476*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RCPSSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86frcp:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (RCPSSm:{ *:[f32] } addr:{ *:[iPTR] }:$src1)
/*178487*/      /*Scope*/ 24, /*->178512*/
/*178488*/        OPC_CheckPatternPredicate, 64, // (Subtarget->hasAVX()) && (MF->getFunction().optForSize())
/*178490*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178493*/        OPC_EmitMergeInputChains1_0,
/*178494*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f32, 0/*#Ops*/,  // Results = #7
/*178500*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCPSSm), 0|OPFL_Chain|OPFL_MemRefs,
                      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)
/*178512*/      0, /*End of Scope*/
/*178513*/    /*Scope*/ 32, /*->178546*/
/*178514*/      OPC_RecordChild0, // #0 = $src1
/*178515*/      OPC_CheckType, MVT::f32,
/*178517*/      OPC_Scope, 9, /*->178528*/ // 2 children in Scope
/*178519*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*178521*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RCPSSr), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (X86frcp:{ *:[f32] } FR32:{ *:[f32] }:$src1) - Complexity = 3
                  // Dst: (RCPSSr:{ *:[f32] } FR32:{ *:[f32] }:$src1)
/*178528*/      /*Scope*/ 16, /*->178545*/
/*178529*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*178531*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f32, 0/*#Ops*/,  // Results = #1
/*178537*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCPSSr), 0,
                      MVT::f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86frcp:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                  // Dst: (VRCPSSr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32:{ *:[f32] }:$src)
/*178545*/      0, /*End of Scope*/
/*178546*/    /*Scope*/ 80, /*->178627*/
/*178547*/      OPC_MoveChild0,
/*178548*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*178551*/      OPC_RecordMemRef,
/*178552*/      OPC_RecordNode, // #0 = 'ld' chained node
/*178553*/      OPC_RecordChild1, // #1 = $src
/*178554*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178556*/      OPC_CheckPredicate, 9, // Predicate_load
/*178558*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*178560*/      OPC_Scope, 41, /*->178603*/ // 2 children in Scope
/*178562*/        OPC_MoveParent,
/*178563*/        OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->178583
/*178566*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*178568*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178571*/          OPC_EmitMergeInputChains1_0,
/*178572*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCPPSm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VRCPPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*178583*/        /*SwitchType*/ 17, MVT::v8f32,// ->178602
/*178585*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*178587*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178590*/          OPC_EmitMergeInputChains1_0,
/*178591*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCPPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VRCPPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*178602*/        0, // EndSwitchType
/*178603*/      /*Scope*/ 22, /*->178626*/
/*178604*/        OPC_CheckPredicate, 48, // Predicate_memop
/*178606*/        OPC_MoveParent,
/*178607*/        OPC_CheckType, MVT::v4f32,
/*178609*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*178611*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178614*/        OPC_EmitMergeInputChains1_0,
/*178615*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RCPPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (RCPPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*178626*/      0, /*End of Scope*/
/*178627*/    /*Scope*/ 38, /*->178666*/
/*178628*/      OPC_RecordChild0, // #0 = $src
/*178629*/      OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->178654
/*178632*/        OPC_Scope, 9, /*->178643*/ // 2 children in Scope
/*178634*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*178636*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCPPSr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (X86frcp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VRCPPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*178643*/        /*Scope*/ 9, /*->178653*/
/*178644*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*178646*/          OPC_MorphNodeTo1, TARGET_VAL(X86::RCPPSr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (X86frcp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (RCPPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*178653*/        0, /*End of Scope*/
/*178654*/      /*SwitchType*/ 9, MVT::v8f32,// ->178665
/*178656*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*178658*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCPPSYr), 0,
                      MVT::v8f32, 1/*#Ops*/, 0, 
                  // Src: (X86frcp:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                  // Dst: (VRCPPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src)
/*178665*/      0, // EndSwitchType
/*178666*/    0, /*End of Scope*/
/*178667*/  /*SwitchOpcode*/ 84|128,7/*980*/, TARGET_VAL(ISD::FFLOOR),// ->179651
/*178671*/    OPC_Scope, 54|128,1/*182*/, /*->178856*/ // 4 children in Scope
/*178674*/      OPC_MoveChild0,
/*178675*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*178678*/      OPC_RecordMemRef,
/*178679*/      OPC_RecordNode, // #0 = 'ld' chained node
/*178680*/      OPC_RecordChild1, // #1 = $src
/*178681*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178683*/      OPC_CheckPredicate, 9, // Predicate_load
/*178685*/      OPC_MoveParent,
/*178686*/      OPC_SwitchType /*2 cases */, 82, MVT::f32,// ->178771
/*178689*/        OPC_Scope, 21, /*->178712*/ // 3 children in Scope
/*178691*/          OPC_CheckPatternPredicate, 167, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*178693*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178696*/          OPC_EmitMergeInputChains1_0,
/*178697*/          OPC_EmitInteger, MVT::i32, 9, 
/*178700*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (ffloor:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (ROUNDSSm:{ *:[f32] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*178712*/        /*Scope*/ 28, /*->178741*/
/*178713*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*178715*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178718*/          OPC_EmitMergeInputChains1_0,
/*178719*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*178725*/          OPC_EmitInteger, MVT::i32, 9, 
/*178728*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (ffloor:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VROUNDSSm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*178741*/        /*Scope*/ 28, /*->178770*/
/*178742*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*178744*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178747*/          OPC_EmitMergeInputChains1_0,
/*178748*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*178754*/          OPC_EmitInteger, MVT::i32, 9, 
/*178757*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (ffloor:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VRNDSCALESSZm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*178770*/        0, /*End of Scope*/
/*178771*/      /*SwitchType*/ 82, MVT::f64,// ->178855
/*178773*/        OPC_Scope, 21, /*->178796*/ // 3 children in Scope
/*178775*/          OPC_CheckPatternPredicate, 167, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*178777*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178780*/          OPC_EmitMergeInputChains1_0,
/*178781*/          OPC_EmitInteger, MVT::i32, 9, 
/*178784*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (ffloor:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (ROUNDSDm:{ *:[f64] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*178796*/        /*Scope*/ 28, /*->178825*/
/*178797*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*178799*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178802*/          OPC_EmitMergeInputChains1_0,
/*178803*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*178809*/          OPC_EmitInteger, MVT::i32, 9, 
/*178812*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (ffloor:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VROUNDSDm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*178825*/        /*Scope*/ 28, /*->178854*/
/*178826*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*178828*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*178831*/          OPC_EmitMergeInputChains1_0,
/*178832*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*178838*/          OPC_EmitInteger, MVT::i32, 9, 
/*178841*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (ffloor:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VRNDSCALESDZm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*178854*/        0, /*End of Scope*/
/*178855*/      0, // EndSwitchType
/*178856*/    /*Scope*/ 123, /*->178980*/
/*178857*/      OPC_RecordChild0, // #0 = $src
/*178858*/      OPC_SwitchType /*2 cases */, 58, MVT::f32,// ->178919
/*178861*/        OPC_Scope, 13, /*->178876*/ // 3 children in Scope
/*178863*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*178865*/          OPC_EmitInteger, MVT::i32, 9, 
/*178868*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSr), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (ROUNDSSr:{ *:[f32] } FR32:{ *:[f32] }:$src, 9:{ *:[i32] })
/*178876*/        /*Scope*/ 20, /*->178897*/
/*178877*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*178879*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*178885*/          OPC_EmitInteger, MVT::i32, 9, 
/*178888*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSr), 0,
                        MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (ffloor:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDSSr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32:{ *:[f32] }:$src, 9:{ *:[i32] })
/*178897*/        /*Scope*/ 20, /*->178918*/
/*178898*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178900*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*178906*/          OPC_EmitInteger, MVT::i32, 9, 
/*178909*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr), 0,
                        MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (ffloor:{ *:[f32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALESSZr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32X:{ *:[f32] }:$src, 9:{ *:[i32] })
/*178918*/        0, /*End of Scope*/
/*178919*/      /*SwitchType*/ 58, MVT::f64,// ->178979
/*178921*/        OPC_Scope, 13, /*->178936*/ // 3 children in Scope
/*178923*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*178925*/          OPC_EmitInteger, MVT::i32, 9, 
/*178928*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDr), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (ROUNDSDr:{ *:[f64] } FR64:{ *:[f64] }:$src, 9:{ *:[i32] })
/*178936*/        /*Scope*/ 20, /*->178957*/
/*178937*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*178939*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*178945*/          OPC_EmitInteger, MVT::i32, 9, 
/*178948*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDr), 0,
                        MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (ffloor:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDSDr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64:{ *:[f64] }:$src, 9:{ *:[i32] })
/*178957*/        /*Scope*/ 20, /*->178978*/
/*178958*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178960*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*178966*/          OPC_EmitInteger, MVT::i32, 9, 
/*178969*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr), 0,
                        MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (ffloor:{ *:[f64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALESDZr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64X:{ *:[f64] }:$src, 9:{ *:[i32] })
/*178978*/        0, /*End of Scope*/
/*178979*/      0, // EndSwitchType
/*178980*/    /*Scope*/ 93|128,3/*477*/, /*->179459*/
/*178982*/      OPC_MoveChild0,
/*178983*/      OPC_SwitchOpcode /*2 cases */, 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST),// ->179152
/*178988*/        OPC_MoveChild0,
/*178989*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*178992*/        OPC_RecordMemRef,
/*178993*/        OPC_RecordNode, // #0 = 'ld' chained node
/*178994*/        OPC_CheckFoldableChainNode,
/*178995*/        OPC_RecordChild1, // #1 = $src
/*178996*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178998*/        OPC_CheckPredicate, 9, // Predicate_load
/*179000*/        OPC_SwitchType /*2 cases */, 73, MVT::f32,// ->179076
/*179003*/          OPC_MoveParent,
/*179004*/          OPC_MoveParent,
/*179005*/          OPC_SwitchType /*3 cases */, 21, MVT::v16f32,// ->179029
/*179008*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179010*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179013*/            OPC_EmitMergeInputChains1_0,
/*179014*/            OPC_EmitInteger, MVT::i32, 9, 
/*179017*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179029*/          /*SwitchType*/ 21, MVT::v8f32,// ->179052
/*179031*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179033*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179036*/            OPC_EmitMergeInputChains1_0,
/*179037*/            OPC_EmitInteger, MVT::i32, 9, 
/*179040*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179052*/          /*SwitchType*/ 21, MVT::v4f32,// ->179075
/*179054*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179056*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179059*/            OPC_EmitMergeInputChains1_0,
/*179060*/            OPC_EmitInteger, MVT::i32, 9, 
/*179063*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179075*/          0, // EndSwitchType
/*179076*/        /*SwitchType*/ 73, MVT::f64,// ->179151
/*179078*/          OPC_MoveParent,
/*179079*/          OPC_MoveParent,
/*179080*/          OPC_SwitchType /*3 cases */, 21, MVT::v8f64,// ->179104
/*179083*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179085*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179088*/            OPC_EmitMergeInputChains1_0,
/*179089*/            OPC_EmitInteger, MVT::i32, 9, 
/*179092*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179104*/          /*SwitchType*/ 21, MVT::v4f64,// ->179127
/*179106*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179108*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179111*/            OPC_EmitMergeInputChains1_0,
/*179112*/            OPC_EmitInteger, MVT::i32, 9, 
/*179115*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179127*/          /*SwitchType*/ 21, MVT::v2f64,// ->179150
/*179129*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179131*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179134*/            OPC_EmitMergeInputChains1_0,
/*179135*/            OPC_EmitInteger, MVT::i32, 9, 
/*179138*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179150*/          0, // EndSwitchType
/*179151*/        0, // EndSwitchType
/*179152*/      /*SwitchOpcode*/ 46|128,2/*302*/, TARGET_VAL(ISD::LOAD),// ->179458
/*179156*/        OPC_RecordMemRef,
/*179157*/        OPC_RecordNode, // #0 = 'ld' chained node
/*179158*/        OPC_RecordChild1, // #1 = $src
/*179159*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179161*/        OPC_CheckPredicate, 9, // Predicate_load
/*179163*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*179165*/        OPC_Scope, 95, /*->179262*/ // 3 children in Scope
/*179167*/          OPC_MoveParent,
/*179168*/          OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->179192
/*179171*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*179173*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179176*/            OPC_EmitMergeInputChains1_0,
/*179177*/            OPC_EmitInteger, MVT::i32, 9, 
/*179180*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179192*/          /*SwitchType*/ 21, MVT::v2f64,// ->179215
/*179194*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*179196*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179199*/            OPC_EmitMergeInputChains1_0,
/*179200*/            OPC_EmitInteger, MVT::i32, 9, 
/*179203*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179215*/          /*SwitchType*/ 21, MVT::v8f32,// ->179238
/*179217*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*179219*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179222*/            OPC_EmitMergeInputChains1_0,
/*179223*/            OPC_EmitInteger, MVT::i32, 9, 
/*179226*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179238*/          /*SwitchType*/ 21, MVT::v4f64,// ->179261
/*179240*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*179242*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179245*/            OPC_EmitMergeInputChains1_0,
/*179246*/            OPC_EmitInteger, MVT::i32, 9, 
/*179249*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPDYm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179261*/          0, // EndSwitchType
/*179262*/        /*Scope*/ 51, /*->179314*/
/*179263*/          OPC_CheckPredicate, 48, // Predicate_memop
/*179265*/          OPC_MoveParent,
/*179266*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->179290
/*179269*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*179271*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179274*/            OPC_EmitMergeInputChains1_0,
/*179275*/            OPC_EmitInteger, MVT::i32, 9, 
/*179278*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (ROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179290*/          /*SwitchType*/ 21, MVT::v2f64,// ->179313
/*179292*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*179294*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179297*/            OPC_EmitMergeInputChains1_0,
/*179298*/            OPC_EmitInteger, MVT::i32, 9, 
/*179301*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (ROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179313*/          0, // EndSwitchType
/*179314*/        /*Scope*/ 13|128,1/*141*/, /*->179457*/
/*179316*/          OPC_MoveParent,
/*179317*/          OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->179341
/*179320*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179322*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179325*/            OPC_EmitMergeInputChains1_0,
/*179326*/            OPC_EmitInteger, MVT::i32, 9, 
/*179329*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179341*/          /*SwitchType*/ 21, MVT::v8f64,// ->179364
/*179343*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179345*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179348*/            OPC_EmitMergeInputChains1_0,
/*179349*/            OPC_EmitInteger, MVT::i32, 9, 
/*179352*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179364*/          /*SwitchType*/ 21, MVT::v8f32,// ->179387
/*179366*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179368*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179371*/            OPC_EmitMergeInputChains1_0,
/*179372*/            OPC_EmitInteger, MVT::i32, 9, 
/*179375*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179387*/          /*SwitchType*/ 21, MVT::v4f64,// ->179410
/*179389*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179391*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179394*/            OPC_EmitMergeInputChains1_0,
/*179395*/            OPC_EmitInteger, MVT::i32, 9, 
/*179398*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179410*/          /*SwitchType*/ 21, MVT::v4f32,// ->179433
/*179412*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179414*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179417*/            OPC_EmitMergeInputChains1_0,
/*179418*/            OPC_EmitInteger, MVT::i32, 9, 
/*179421*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179433*/          /*SwitchType*/ 21, MVT::v2f64,// ->179456
/*179435*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179437*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179440*/            OPC_EmitMergeInputChains1_0,
/*179441*/            OPC_EmitInteger, MVT::i32, 9, 
/*179444*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ffloor:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*179456*/          0, // EndSwitchType
/*179457*/        0, /*End of Scope*/
/*179458*/      0, // EndSwitchOpcode
/*179459*/    /*Scope*/ 61|128,1/*189*/, /*->179650*/
/*179461*/      OPC_RecordChild0, // #0 = $src
/*179462*/      OPC_SwitchType /*6 cases */, 44, MVT::v4f32,// ->179509
/*179465*/        OPC_Scope, 13, /*->179480*/ // 3 children in Scope
/*179467*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*179469*/          OPC_EmitInteger, MVT::i32, 9, 
/*179472*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, 9:{ *:[i32] })
/*179480*/        /*Scope*/ 13, /*->179494*/
/*179481*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*179483*/          OPC_EmitInteger, MVT::i32, 9, 
/*179486*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (ROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, 9:{ *:[i32] })
/*179494*/        /*Scope*/ 13, /*->179508*/
/*179495*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179497*/          OPC_EmitInteger, MVT::i32, 9, 
/*179500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rri), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, 9:{ *:[i32] })
/*179508*/        0, /*End of Scope*/
/*179509*/      /*SwitchType*/ 44, MVT::v2f64,// ->179555
/*179511*/        OPC_Scope, 13, /*->179526*/ // 3 children in Scope
/*179513*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*179515*/          OPC_EmitInteger, MVT::i32, 9, 
/*179518*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, 9:{ *:[i32] })
/*179526*/        /*Scope*/ 13, /*->179540*/
/*179527*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*179529*/          OPC_EmitInteger, MVT::i32, 9, 
/*179532*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (ROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, 9:{ *:[i32] })
/*179540*/        /*Scope*/ 13, /*->179554*/
/*179541*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179543*/          OPC_EmitInteger, MVT::i32, 9, 
/*179546*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rri), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, 9:{ *:[i32] })
/*179554*/        0, /*End of Scope*/
/*179555*/      /*SwitchType*/ 30, MVT::v8f32,// ->179587
/*179557*/        OPC_Scope, 13, /*->179572*/ // 2 children in Scope
/*179559*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*179561*/          OPC_EmitInteger, MVT::i32, 9, 
/*179564*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src, 9:{ *:[i32] })
/*179572*/        /*Scope*/ 13, /*->179586*/
/*179573*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179575*/          OPC_EmitInteger, MVT::i32, 9, 
/*179578*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rri), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, 9:{ *:[i32] })
/*179586*/        0, /*End of Scope*/
/*179587*/      /*SwitchType*/ 30, MVT::v4f64,// ->179619
/*179589*/        OPC_Scope, 13, /*->179604*/ // 2 children in Scope
/*179591*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*179593*/          OPC_EmitInteger, MVT::i32, 9, 
/*179596*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDPDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src, 9:{ *:[i32] })
/*179604*/        /*Scope*/ 13, /*->179618*/
/*179605*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*179607*/          OPC_EmitInteger, MVT::i32, 9, 
/*179610*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ffloor:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, 9:{ *:[i32] })
/*179618*/        0, /*End of Scope*/
/*179619*/      /*SwitchType*/ 13, MVT::v16f32,// ->179634
/*179621*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179623*/        OPC_EmitInteger, MVT::i32, 9, 
/*179626*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (ffloor:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VRNDSCALEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 9:{ *:[i32] })
/*179634*/      /*SwitchType*/ 13, MVT::v8f64,// ->179649
/*179636*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179638*/        OPC_EmitInteger, MVT::i32, 9, 
/*179641*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (ffloor:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VRNDSCALEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 9:{ *:[i32] })
/*179649*/      0, // EndSwitchType
/*179650*/    0, /*End of Scope*/
/*179651*/  /*SwitchOpcode*/ 84|128,7/*980*/, TARGET_VAL(ISD::FNEARBYINT),// ->180635
/*179655*/    OPC_Scope, 54|128,1/*182*/, /*->179840*/ // 4 children in Scope
/*179658*/      OPC_MoveChild0,
/*179659*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*179662*/      OPC_RecordMemRef,
/*179663*/      OPC_RecordNode, // #0 = 'ld' chained node
/*179664*/      OPC_RecordChild1, // #1 = $src
/*179665*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179667*/      OPC_CheckPredicate, 9, // Predicate_load
/*179669*/      OPC_MoveParent,
/*179670*/      OPC_SwitchType /*2 cases */, 82, MVT::f32,// ->179755
/*179673*/        OPC_Scope, 21, /*->179696*/ // 3 children in Scope
/*179675*/          OPC_CheckPatternPredicate, 167, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*179677*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179680*/          OPC_EmitMergeInputChains1_0,
/*179681*/          OPC_EmitInteger, MVT::i32, 12, 
/*179684*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fnearbyint:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (ROUNDSSm:{ *:[f32] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*179696*/        /*Scope*/ 28, /*->179725*/
/*179697*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*179699*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179702*/          OPC_EmitMergeInputChains1_0,
/*179703*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*179709*/          OPC_EmitInteger, MVT::i32, 12, 
/*179712*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (fnearbyint:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VROUNDSSm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*179725*/        /*Scope*/ 28, /*->179754*/
/*179726*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*179728*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179731*/          OPC_EmitMergeInputChains1_0,
/*179732*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*179738*/          OPC_EmitInteger, MVT::i32, 12, 
/*179741*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (fnearbyint:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VRNDSCALESSZm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*179754*/        0, /*End of Scope*/
/*179755*/      /*SwitchType*/ 82, MVT::f64,// ->179839
/*179757*/        OPC_Scope, 21, /*->179780*/ // 3 children in Scope
/*179759*/          OPC_CheckPatternPredicate, 167, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*179761*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179764*/          OPC_EmitMergeInputChains1_0,
/*179765*/          OPC_EmitInteger, MVT::i32, 12, 
/*179768*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fnearbyint:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (ROUNDSDm:{ *:[f64] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*179780*/        /*Scope*/ 28, /*->179809*/
/*179781*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*179783*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179786*/          OPC_EmitMergeInputChains1_0,
/*179787*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*179793*/          OPC_EmitInteger, MVT::i32, 12, 
/*179796*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (fnearbyint:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VROUNDSDm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*179809*/        /*Scope*/ 28, /*->179838*/
/*179810*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*179812*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179815*/          OPC_EmitMergeInputChains1_0,
/*179816*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*179822*/          OPC_EmitInteger, MVT::i32, 12, 
/*179825*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (fnearbyint:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VRNDSCALESDZm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*179838*/        0, /*End of Scope*/
/*179839*/      0, // EndSwitchType
/*179840*/    /*Scope*/ 123, /*->179964*/
/*179841*/      OPC_RecordChild0, // #0 = $src
/*179842*/      OPC_SwitchType /*2 cases */, 58, MVT::f32,// ->179903
/*179845*/        OPC_Scope, 13, /*->179860*/ // 3 children in Scope
/*179847*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*179849*/          OPC_EmitInteger, MVT::i32, 12, 
/*179852*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSr), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (ROUNDSSr:{ *:[f32] } FR32:{ *:[f32] }:$src, 12:{ *:[i32] })
/*179860*/        /*Scope*/ 20, /*->179881*/
/*179861*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*179863*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*179869*/          OPC_EmitInteger, MVT::i32, 12, 
/*179872*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSr), 0,
                        MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (fnearbyint:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDSSr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32:{ *:[f32] }:$src, 12:{ *:[i32] })
/*179881*/        /*Scope*/ 20, /*->179902*/
/*179882*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179884*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*179890*/          OPC_EmitInteger, MVT::i32, 12, 
/*179893*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr), 0,
                        MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (fnearbyint:{ *:[f32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALESSZr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32X:{ *:[f32] }:$src, 12:{ *:[i32] })
/*179902*/        0, /*End of Scope*/
/*179903*/      /*SwitchType*/ 58, MVT::f64,// ->179963
/*179905*/        OPC_Scope, 13, /*->179920*/ // 3 children in Scope
/*179907*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*179909*/          OPC_EmitInteger, MVT::i32, 12, 
/*179912*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDr), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (ROUNDSDr:{ *:[f64] } FR64:{ *:[f64] }:$src, 12:{ *:[i32] })
/*179920*/        /*Scope*/ 20, /*->179941*/
/*179921*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*179923*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*179929*/          OPC_EmitInteger, MVT::i32, 12, 
/*179932*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDr), 0,
                        MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (fnearbyint:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDSDr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64:{ *:[f64] }:$src, 12:{ *:[i32] })
/*179941*/        /*Scope*/ 20, /*->179962*/
/*179942*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179944*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*179950*/          OPC_EmitInteger, MVT::i32, 12, 
/*179953*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr), 0,
                        MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (fnearbyint:{ *:[f64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALESDZr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64X:{ *:[f64] }:$src, 12:{ *:[i32] })
/*179962*/        0, /*End of Scope*/
/*179963*/      0, // EndSwitchType
/*179964*/    /*Scope*/ 93|128,3/*477*/, /*->180443*/
/*179966*/      OPC_MoveChild0,
/*179967*/      OPC_SwitchOpcode /*2 cases */, 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST),// ->180136
/*179972*/        OPC_MoveChild0,
/*179973*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*179976*/        OPC_RecordMemRef,
/*179977*/        OPC_RecordNode, // #0 = 'ld' chained node
/*179978*/        OPC_CheckFoldableChainNode,
/*179979*/        OPC_RecordChild1, // #1 = $src
/*179980*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179982*/        OPC_CheckPredicate, 9, // Predicate_load
/*179984*/        OPC_SwitchType /*2 cases */, 73, MVT::f32,// ->180060
/*179987*/          OPC_MoveParent,
/*179988*/          OPC_MoveParent,
/*179989*/          OPC_SwitchType /*3 cases */, 21, MVT::v16f32,// ->180013
/*179992*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179994*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*179997*/            OPC_EmitMergeInputChains1_0,
/*179998*/            OPC_EmitInteger, MVT::i32, 12, 
/*180001*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180013*/          /*SwitchType*/ 21, MVT::v8f32,// ->180036
/*180015*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180017*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180020*/            OPC_EmitMergeInputChains1_0,
/*180021*/            OPC_EmitInteger, MVT::i32, 12, 
/*180024*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180036*/          /*SwitchType*/ 21, MVT::v4f32,// ->180059
/*180038*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180040*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180043*/            OPC_EmitMergeInputChains1_0,
/*180044*/            OPC_EmitInteger, MVT::i32, 12, 
/*180047*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180059*/          0, // EndSwitchType
/*180060*/        /*SwitchType*/ 73, MVT::f64,// ->180135
/*180062*/          OPC_MoveParent,
/*180063*/          OPC_MoveParent,
/*180064*/          OPC_SwitchType /*3 cases */, 21, MVT::v8f64,// ->180088
/*180067*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180069*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180072*/            OPC_EmitMergeInputChains1_0,
/*180073*/            OPC_EmitInteger, MVT::i32, 12, 
/*180076*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180088*/          /*SwitchType*/ 21, MVT::v4f64,// ->180111
/*180090*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180092*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180095*/            OPC_EmitMergeInputChains1_0,
/*180096*/            OPC_EmitInteger, MVT::i32, 12, 
/*180099*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180111*/          /*SwitchType*/ 21, MVT::v2f64,// ->180134
/*180113*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180115*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180118*/            OPC_EmitMergeInputChains1_0,
/*180119*/            OPC_EmitInteger, MVT::i32, 12, 
/*180122*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180134*/          0, // EndSwitchType
/*180135*/        0, // EndSwitchType
/*180136*/      /*SwitchOpcode*/ 46|128,2/*302*/, TARGET_VAL(ISD::LOAD),// ->180442
/*180140*/        OPC_RecordMemRef,
/*180141*/        OPC_RecordNode, // #0 = 'ld' chained node
/*180142*/        OPC_RecordChild1, // #1 = $src
/*180143*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180145*/        OPC_CheckPredicate, 9, // Predicate_load
/*180147*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*180149*/        OPC_Scope, 95, /*->180246*/ // 3 children in Scope
/*180151*/          OPC_MoveParent,
/*180152*/          OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->180176
/*180155*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*180157*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180160*/            OPC_EmitMergeInputChains1_0,
/*180161*/            OPC_EmitInteger, MVT::i32, 12, 
/*180164*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180176*/          /*SwitchType*/ 21, MVT::v2f64,// ->180199
/*180178*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*180180*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180183*/            OPC_EmitMergeInputChains1_0,
/*180184*/            OPC_EmitInteger, MVT::i32, 12, 
/*180187*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180199*/          /*SwitchType*/ 21, MVT::v8f32,// ->180222
/*180201*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*180203*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180206*/            OPC_EmitMergeInputChains1_0,
/*180207*/            OPC_EmitInteger, MVT::i32, 12, 
/*180210*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180222*/          /*SwitchType*/ 21, MVT::v4f64,// ->180245
/*180224*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*180226*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180229*/            OPC_EmitMergeInputChains1_0,
/*180230*/            OPC_EmitInteger, MVT::i32, 12, 
/*180233*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPDYm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180245*/          0, // EndSwitchType
/*180246*/        /*Scope*/ 51, /*->180298*/
/*180247*/          OPC_CheckPredicate, 48, // Predicate_memop
/*180249*/          OPC_MoveParent,
/*180250*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->180274
/*180253*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*180255*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180258*/            OPC_EmitMergeInputChains1_0,
/*180259*/            OPC_EmitInteger, MVT::i32, 12, 
/*180262*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (ROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180274*/          /*SwitchType*/ 21, MVT::v2f64,// ->180297
/*180276*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*180278*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180281*/            OPC_EmitMergeInputChains1_0,
/*180282*/            OPC_EmitInteger, MVT::i32, 12, 
/*180285*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (ROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180297*/          0, // EndSwitchType
/*180298*/        /*Scope*/ 13|128,1/*141*/, /*->180441*/
/*180300*/          OPC_MoveParent,
/*180301*/          OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->180325
/*180304*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180306*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180309*/            OPC_EmitMergeInputChains1_0,
/*180310*/            OPC_EmitInteger, MVT::i32, 12, 
/*180313*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180325*/          /*SwitchType*/ 21, MVT::v8f64,// ->180348
/*180327*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180329*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180332*/            OPC_EmitMergeInputChains1_0,
/*180333*/            OPC_EmitInteger, MVT::i32, 12, 
/*180336*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180348*/          /*SwitchType*/ 21, MVT::v8f32,// ->180371
/*180350*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180352*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180355*/            OPC_EmitMergeInputChains1_0,
/*180356*/            OPC_EmitInteger, MVT::i32, 12, 
/*180359*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180371*/          /*SwitchType*/ 21, MVT::v4f64,// ->180394
/*180373*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180375*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180378*/            OPC_EmitMergeInputChains1_0,
/*180379*/            OPC_EmitInteger, MVT::i32, 12, 
/*180382*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180394*/          /*SwitchType*/ 21, MVT::v4f32,// ->180417
/*180396*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180398*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180401*/            OPC_EmitMergeInputChains1_0,
/*180402*/            OPC_EmitInteger, MVT::i32, 12, 
/*180405*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180417*/          /*SwitchType*/ 21, MVT::v2f64,// ->180440
/*180419*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180421*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180424*/            OPC_EmitMergeInputChains1_0,
/*180425*/            OPC_EmitInteger, MVT::i32, 12, 
/*180428*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fnearbyint:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*180440*/          0, // EndSwitchType
/*180441*/        0, /*End of Scope*/
/*180442*/      0, // EndSwitchOpcode
/*180443*/    /*Scope*/ 61|128,1/*189*/, /*->180634*/
/*180445*/      OPC_RecordChild0, // #0 = $src
/*180446*/      OPC_SwitchType /*6 cases */, 44, MVT::v4f32,// ->180493
/*180449*/        OPC_Scope, 13, /*->180464*/ // 3 children in Scope
/*180451*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*180453*/          OPC_EmitInteger, MVT::i32, 12, 
/*180456*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, 12:{ *:[i32] })
/*180464*/        /*Scope*/ 13, /*->180478*/
/*180465*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*180467*/          OPC_EmitInteger, MVT::i32, 12, 
/*180470*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (ROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, 12:{ *:[i32] })
/*180478*/        /*Scope*/ 13, /*->180492*/
/*180479*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180481*/          OPC_EmitInteger, MVT::i32, 12, 
/*180484*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rri), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, 12:{ *:[i32] })
/*180492*/        0, /*End of Scope*/
/*180493*/      /*SwitchType*/ 44, MVT::v2f64,// ->180539
/*180495*/        OPC_Scope, 13, /*->180510*/ // 3 children in Scope
/*180497*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*180499*/          OPC_EmitInteger, MVT::i32, 12, 
/*180502*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, 12:{ *:[i32] })
/*180510*/        /*Scope*/ 13, /*->180524*/
/*180511*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*180513*/          OPC_EmitInteger, MVT::i32, 12, 
/*180516*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (ROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, 12:{ *:[i32] })
/*180524*/        /*Scope*/ 13, /*->180538*/
/*180525*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180527*/          OPC_EmitInteger, MVT::i32, 12, 
/*180530*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rri), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, 12:{ *:[i32] })
/*180538*/        0, /*End of Scope*/
/*180539*/      /*SwitchType*/ 30, MVT::v8f32,// ->180571
/*180541*/        OPC_Scope, 13, /*->180556*/ // 2 children in Scope
/*180543*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*180545*/          OPC_EmitInteger, MVT::i32, 12, 
/*180548*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src, 12:{ *:[i32] })
/*180556*/        /*Scope*/ 13, /*->180570*/
/*180557*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180559*/          OPC_EmitInteger, MVT::i32, 12, 
/*180562*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rri), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, 12:{ *:[i32] })
/*180570*/        0, /*End of Scope*/
/*180571*/      /*SwitchType*/ 30, MVT::v4f64,// ->180603
/*180573*/        OPC_Scope, 13, /*->180588*/ // 2 children in Scope
/*180575*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*180577*/          OPC_EmitInteger, MVT::i32, 12, 
/*180580*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDPDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src, 12:{ *:[i32] })
/*180588*/        /*Scope*/ 13, /*->180602*/
/*180589*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*180591*/          OPC_EmitInteger, MVT::i32, 12, 
/*180594*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fnearbyint:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, 12:{ *:[i32] })
/*180602*/        0, /*End of Scope*/
/*180603*/      /*SwitchType*/ 13, MVT::v16f32,// ->180618
/*180605*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180607*/        OPC_EmitInteger, MVT::i32, 12, 
/*180610*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fnearbyint:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VRNDSCALEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 12:{ *:[i32] })
/*180618*/      /*SwitchType*/ 13, MVT::v8f64,// ->180633
/*180620*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180622*/        OPC_EmitInteger, MVT::i32, 12, 
/*180625*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fnearbyint:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VRNDSCALEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 12:{ *:[i32] })
/*180633*/      0, // EndSwitchType
/*180634*/    0, /*End of Scope*/
/*180635*/  /*SwitchOpcode*/ 84|128,7/*980*/, TARGET_VAL(ISD::FCEIL),// ->181619
/*180639*/    OPC_Scope, 54|128,1/*182*/, /*->180824*/ // 4 children in Scope
/*180642*/      OPC_MoveChild0,
/*180643*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*180646*/      OPC_RecordMemRef,
/*180647*/      OPC_RecordNode, // #0 = 'ld' chained node
/*180648*/      OPC_RecordChild1, // #1 = $src
/*180649*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180651*/      OPC_CheckPredicate, 9, // Predicate_load
/*180653*/      OPC_MoveParent,
/*180654*/      OPC_SwitchType /*2 cases */, 82, MVT::f32,// ->180739
/*180657*/        OPC_Scope, 21, /*->180680*/ // 3 children in Scope
/*180659*/          OPC_CheckPatternPredicate, 167, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*180661*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180664*/          OPC_EmitMergeInputChains1_0,
/*180665*/          OPC_EmitInteger, MVT::i32, 10, 
/*180668*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fceil:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (ROUNDSSm:{ *:[f32] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*180680*/        /*Scope*/ 28, /*->180709*/
/*180681*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*180683*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180686*/          OPC_EmitMergeInputChains1_0,
/*180687*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*180693*/          OPC_EmitInteger, MVT::i32, 10, 
/*180696*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (fceil:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VROUNDSSm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*180709*/        /*Scope*/ 28, /*->180738*/
/*180710*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*180712*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180715*/          OPC_EmitMergeInputChains1_0,
/*180716*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*180722*/          OPC_EmitInteger, MVT::i32, 10, 
/*180725*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (fceil:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VRNDSCALESSZm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*180738*/        0, /*End of Scope*/
/*180739*/      /*SwitchType*/ 82, MVT::f64,// ->180823
/*180741*/        OPC_Scope, 21, /*->180764*/ // 3 children in Scope
/*180743*/          OPC_CheckPatternPredicate, 167, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*180745*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180748*/          OPC_EmitMergeInputChains1_0,
/*180749*/          OPC_EmitInteger, MVT::i32, 10, 
/*180752*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fceil:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (ROUNDSDm:{ *:[f64] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*180764*/        /*Scope*/ 28, /*->180793*/
/*180765*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*180767*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180770*/          OPC_EmitMergeInputChains1_0,
/*180771*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*180777*/          OPC_EmitInteger, MVT::i32, 10, 
/*180780*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (fceil:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VROUNDSDm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*180793*/        /*Scope*/ 28, /*->180822*/
/*180794*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*180796*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180799*/          OPC_EmitMergeInputChains1_0,
/*180800*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*180806*/          OPC_EmitInteger, MVT::i32, 10, 
/*180809*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (fceil:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VRNDSCALESDZm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*180822*/        0, /*End of Scope*/
/*180823*/      0, // EndSwitchType
/*180824*/    /*Scope*/ 123, /*->180948*/
/*180825*/      OPC_RecordChild0, // #0 = $src
/*180826*/      OPC_SwitchType /*2 cases */, 58, MVT::f32,// ->180887
/*180829*/        OPC_Scope, 13, /*->180844*/ // 3 children in Scope
/*180831*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*180833*/          OPC_EmitInteger, MVT::i32, 10, 
/*180836*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSr), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (ROUNDSSr:{ *:[f32] } FR32:{ *:[f32] }:$src, 10:{ *:[i32] })
/*180844*/        /*Scope*/ 20, /*->180865*/
/*180845*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*180847*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*180853*/          OPC_EmitInteger, MVT::i32, 10, 
/*180856*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSr), 0,
                        MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (fceil:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDSSr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32:{ *:[f32] }:$src, 10:{ *:[i32] })
/*180865*/        /*Scope*/ 20, /*->180886*/
/*180866*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180868*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*180874*/          OPC_EmitInteger, MVT::i32, 10, 
/*180877*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr), 0,
                        MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (fceil:{ *:[f32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALESSZr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32X:{ *:[f32] }:$src, 10:{ *:[i32] })
/*180886*/        0, /*End of Scope*/
/*180887*/      /*SwitchType*/ 58, MVT::f64,// ->180947
/*180889*/        OPC_Scope, 13, /*->180904*/ // 3 children in Scope
/*180891*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*180893*/          OPC_EmitInteger, MVT::i32, 10, 
/*180896*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDr), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (ROUNDSDr:{ *:[f64] } FR64:{ *:[f64] }:$src, 10:{ *:[i32] })
/*180904*/        /*Scope*/ 20, /*->180925*/
/*180905*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*180907*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*180913*/          OPC_EmitInteger, MVT::i32, 10, 
/*180916*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDr), 0,
                        MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (fceil:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDSDr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64:{ *:[f64] }:$src, 10:{ *:[i32] })
/*180925*/        /*Scope*/ 20, /*->180946*/
/*180926*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180928*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*180934*/          OPC_EmitInteger, MVT::i32, 10, 
/*180937*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr), 0,
                        MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (fceil:{ *:[f64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALESDZr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64X:{ *:[f64] }:$src, 10:{ *:[i32] })
/*180946*/        0, /*End of Scope*/
/*180947*/      0, // EndSwitchType
/*180948*/    /*Scope*/ 93|128,3/*477*/, /*->181427*/
/*180950*/      OPC_MoveChild0,
/*180951*/      OPC_SwitchOpcode /*2 cases */, 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST),// ->181120
/*180956*/        OPC_MoveChild0,
/*180957*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*180960*/        OPC_RecordMemRef,
/*180961*/        OPC_RecordNode, // #0 = 'ld' chained node
/*180962*/        OPC_CheckFoldableChainNode,
/*180963*/        OPC_RecordChild1, // #1 = $src
/*180964*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180966*/        OPC_CheckPredicate, 9, // Predicate_load
/*180968*/        OPC_SwitchType /*2 cases */, 73, MVT::f32,// ->181044
/*180971*/          OPC_MoveParent,
/*180972*/          OPC_MoveParent,
/*180973*/          OPC_SwitchType /*3 cases */, 21, MVT::v16f32,// ->180997
/*180976*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180978*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*180981*/            OPC_EmitMergeInputChains1_0,
/*180982*/            OPC_EmitInteger, MVT::i32, 10, 
/*180985*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*180997*/          /*SwitchType*/ 21, MVT::v8f32,// ->181020
/*180999*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181001*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181004*/            OPC_EmitMergeInputChains1_0,
/*181005*/            OPC_EmitInteger, MVT::i32, 10, 
/*181008*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181020*/          /*SwitchType*/ 21, MVT::v4f32,// ->181043
/*181022*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181024*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181027*/            OPC_EmitMergeInputChains1_0,
/*181028*/            OPC_EmitInteger, MVT::i32, 10, 
/*181031*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181043*/          0, // EndSwitchType
/*181044*/        /*SwitchType*/ 73, MVT::f64,// ->181119
/*181046*/          OPC_MoveParent,
/*181047*/          OPC_MoveParent,
/*181048*/          OPC_SwitchType /*3 cases */, 21, MVT::v8f64,// ->181072
/*181051*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181053*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181056*/            OPC_EmitMergeInputChains1_0,
/*181057*/            OPC_EmitInteger, MVT::i32, 10, 
/*181060*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181072*/          /*SwitchType*/ 21, MVT::v4f64,// ->181095
/*181074*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181076*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181079*/            OPC_EmitMergeInputChains1_0,
/*181080*/            OPC_EmitInteger, MVT::i32, 10, 
/*181083*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181095*/          /*SwitchType*/ 21, MVT::v2f64,// ->181118
/*181097*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181099*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181102*/            OPC_EmitMergeInputChains1_0,
/*181103*/            OPC_EmitInteger, MVT::i32, 10, 
/*181106*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181118*/          0, // EndSwitchType
/*181119*/        0, // EndSwitchType
/*181120*/      /*SwitchOpcode*/ 46|128,2/*302*/, TARGET_VAL(ISD::LOAD),// ->181426
/*181124*/        OPC_RecordMemRef,
/*181125*/        OPC_RecordNode, // #0 = 'ld' chained node
/*181126*/        OPC_RecordChild1, // #1 = $src
/*181127*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181129*/        OPC_CheckPredicate, 9, // Predicate_load
/*181131*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*181133*/        OPC_Scope, 95, /*->181230*/ // 3 children in Scope
/*181135*/          OPC_MoveParent,
/*181136*/          OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->181160
/*181139*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*181141*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181144*/            OPC_EmitMergeInputChains1_0,
/*181145*/            OPC_EmitInteger, MVT::i32, 10, 
/*181148*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181160*/          /*SwitchType*/ 21, MVT::v2f64,// ->181183
/*181162*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*181164*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181167*/            OPC_EmitMergeInputChains1_0,
/*181168*/            OPC_EmitInteger, MVT::i32, 10, 
/*181171*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181183*/          /*SwitchType*/ 21, MVT::v8f32,// ->181206
/*181185*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*181187*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181190*/            OPC_EmitMergeInputChains1_0,
/*181191*/            OPC_EmitInteger, MVT::i32, 10, 
/*181194*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181206*/          /*SwitchType*/ 21, MVT::v4f64,// ->181229
/*181208*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*181210*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181213*/            OPC_EmitMergeInputChains1_0,
/*181214*/            OPC_EmitInteger, MVT::i32, 10, 
/*181217*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPDYm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181229*/          0, // EndSwitchType
/*181230*/        /*Scope*/ 51, /*->181282*/
/*181231*/          OPC_CheckPredicate, 48, // Predicate_memop
/*181233*/          OPC_MoveParent,
/*181234*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->181258
/*181237*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*181239*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181242*/            OPC_EmitMergeInputChains1_0,
/*181243*/            OPC_EmitInteger, MVT::i32, 10, 
/*181246*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (ROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181258*/          /*SwitchType*/ 21, MVT::v2f64,// ->181281
/*181260*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*181262*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181265*/            OPC_EmitMergeInputChains1_0,
/*181266*/            OPC_EmitInteger, MVT::i32, 10, 
/*181269*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (ROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181281*/          0, // EndSwitchType
/*181282*/        /*Scope*/ 13|128,1/*141*/, /*->181425*/
/*181284*/          OPC_MoveParent,
/*181285*/          OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->181309
/*181288*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181290*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181293*/            OPC_EmitMergeInputChains1_0,
/*181294*/            OPC_EmitInteger, MVT::i32, 10, 
/*181297*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181309*/          /*SwitchType*/ 21, MVT::v8f64,// ->181332
/*181311*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181313*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181316*/            OPC_EmitMergeInputChains1_0,
/*181317*/            OPC_EmitInteger, MVT::i32, 10, 
/*181320*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181332*/          /*SwitchType*/ 21, MVT::v8f32,// ->181355
/*181334*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181336*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181339*/            OPC_EmitMergeInputChains1_0,
/*181340*/            OPC_EmitInteger, MVT::i32, 10, 
/*181343*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181355*/          /*SwitchType*/ 21, MVT::v4f64,// ->181378
/*181357*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181359*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181362*/            OPC_EmitMergeInputChains1_0,
/*181363*/            OPC_EmitInteger, MVT::i32, 10, 
/*181366*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181378*/          /*SwitchType*/ 21, MVT::v4f32,// ->181401
/*181380*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181382*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181385*/            OPC_EmitMergeInputChains1_0,
/*181386*/            OPC_EmitInteger, MVT::i32, 10, 
/*181389*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181401*/          /*SwitchType*/ 21, MVT::v2f64,// ->181424
/*181403*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181405*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181408*/            OPC_EmitMergeInputChains1_0,
/*181409*/            OPC_EmitInteger, MVT::i32, 10, 
/*181412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fceil:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*181424*/          0, // EndSwitchType
/*181425*/        0, /*End of Scope*/
/*181426*/      0, // EndSwitchOpcode
/*181427*/    /*Scope*/ 61|128,1/*189*/, /*->181618*/
/*181429*/      OPC_RecordChild0, // #0 = $src
/*181430*/      OPC_SwitchType /*6 cases */, 44, MVT::v4f32,// ->181477
/*181433*/        OPC_Scope, 13, /*->181448*/ // 3 children in Scope
/*181435*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*181437*/          OPC_EmitInteger, MVT::i32, 10, 
/*181440*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, 10:{ *:[i32] })
/*181448*/        /*Scope*/ 13, /*->181462*/
/*181449*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*181451*/          OPC_EmitInteger, MVT::i32, 10, 
/*181454*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (ROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, 10:{ *:[i32] })
/*181462*/        /*Scope*/ 13, /*->181476*/
/*181463*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181465*/          OPC_EmitInteger, MVT::i32, 10, 
/*181468*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rri), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, 10:{ *:[i32] })
/*181476*/        0, /*End of Scope*/
/*181477*/      /*SwitchType*/ 44, MVT::v2f64,// ->181523
/*181479*/        OPC_Scope, 13, /*->181494*/ // 3 children in Scope
/*181481*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*181483*/          OPC_EmitInteger, MVT::i32, 10, 
/*181486*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, 10:{ *:[i32] })
/*181494*/        /*Scope*/ 13, /*->181508*/
/*181495*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*181497*/          OPC_EmitInteger, MVT::i32, 10, 
/*181500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (ROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, 10:{ *:[i32] })
/*181508*/        /*Scope*/ 13, /*->181522*/
/*181509*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181511*/          OPC_EmitInteger, MVT::i32, 10, 
/*181514*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rri), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, 10:{ *:[i32] })
/*181522*/        0, /*End of Scope*/
/*181523*/      /*SwitchType*/ 30, MVT::v8f32,// ->181555
/*181525*/        OPC_Scope, 13, /*->181540*/ // 2 children in Scope
/*181527*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*181529*/          OPC_EmitInteger, MVT::i32, 10, 
/*181532*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src, 10:{ *:[i32] })
/*181540*/        /*Scope*/ 13, /*->181554*/
/*181541*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181543*/          OPC_EmitInteger, MVT::i32, 10, 
/*181546*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rri), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, 10:{ *:[i32] })
/*181554*/        0, /*End of Scope*/
/*181555*/      /*SwitchType*/ 30, MVT::v4f64,// ->181587
/*181557*/        OPC_Scope, 13, /*->181572*/ // 2 children in Scope
/*181559*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*181561*/          OPC_EmitInteger, MVT::i32, 10, 
/*181564*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDPDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src, 10:{ *:[i32] })
/*181572*/        /*Scope*/ 13, /*->181586*/
/*181573*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181575*/          OPC_EmitInteger, MVT::i32, 10, 
/*181578*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fceil:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, 10:{ *:[i32] })
/*181586*/        0, /*End of Scope*/
/*181587*/      /*SwitchType*/ 13, MVT::v16f32,// ->181602
/*181589*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181591*/        OPC_EmitInteger, MVT::i32, 10, 
/*181594*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fceil:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VRNDSCALEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 10:{ *:[i32] })
/*181602*/      /*SwitchType*/ 13, MVT::v8f64,// ->181617
/*181604*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181606*/        OPC_EmitInteger, MVT::i32, 10, 
/*181609*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fceil:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VRNDSCALEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 10:{ *:[i32] })
/*181617*/      0, // EndSwitchType
/*181618*/    0, /*End of Scope*/
/*181619*/  /*SwitchOpcode*/ 84|128,7/*980*/, TARGET_VAL(ISD::FRINT),// ->182603
/*181623*/    OPC_Scope, 54|128,1/*182*/, /*->181808*/ // 4 children in Scope
/*181626*/      OPC_MoveChild0,
/*181627*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181630*/      OPC_RecordMemRef,
/*181631*/      OPC_RecordNode, // #0 = 'ld' chained node
/*181632*/      OPC_RecordChild1, // #1 = $src
/*181633*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181635*/      OPC_CheckPredicate, 9, // Predicate_load
/*181637*/      OPC_MoveParent,
/*181638*/      OPC_SwitchType /*2 cases */, 82, MVT::f32,// ->181723
/*181641*/        OPC_Scope, 21, /*->181664*/ // 3 children in Scope
/*181643*/          OPC_CheckPatternPredicate, 167, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*181645*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181648*/          OPC_EmitMergeInputChains1_0,
/*181649*/          OPC_EmitInteger, MVT::i32, 4, 
/*181652*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (frint:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (ROUNDSSm:{ *:[f32] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*181664*/        /*Scope*/ 28, /*->181693*/
/*181665*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*181667*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181670*/          OPC_EmitMergeInputChains1_0,
/*181671*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*181677*/          OPC_EmitInteger, MVT::i32, 4, 
/*181680*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (frint:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VROUNDSSm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*181693*/        /*Scope*/ 28, /*->181722*/
/*181694*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*181696*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181699*/          OPC_EmitMergeInputChains1_0,
/*181700*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*181706*/          OPC_EmitInteger, MVT::i32, 4, 
/*181709*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (frint:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VRNDSCALESSZm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*181722*/        0, /*End of Scope*/
/*181723*/      /*SwitchType*/ 82, MVT::f64,// ->181807
/*181725*/        OPC_Scope, 21, /*->181748*/ // 3 children in Scope
/*181727*/          OPC_CheckPatternPredicate, 167, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*181729*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181732*/          OPC_EmitMergeInputChains1_0,
/*181733*/          OPC_EmitInteger, MVT::i32, 4, 
/*181736*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (frint:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (ROUNDSDm:{ *:[f64] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*181748*/        /*Scope*/ 28, /*->181777*/
/*181749*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*181751*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181754*/          OPC_EmitMergeInputChains1_0,
/*181755*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*181761*/          OPC_EmitInteger, MVT::i32, 4, 
/*181764*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (frint:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VROUNDSDm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*181777*/        /*Scope*/ 28, /*->181806*/
/*181778*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*181780*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181783*/          OPC_EmitMergeInputChains1_0,
/*181784*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*181790*/          OPC_EmitInteger, MVT::i32, 4, 
/*181793*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (frint:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VRNDSCALESDZm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*181806*/        0, /*End of Scope*/
/*181807*/      0, // EndSwitchType
/*181808*/    /*Scope*/ 123, /*->181932*/
/*181809*/      OPC_RecordChild0, // #0 = $src
/*181810*/      OPC_SwitchType /*2 cases */, 58, MVT::f32,// ->181871
/*181813*/        OPC_Scope, 13, /*->181828*/ // 3 children in Scope
/*181815*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*181817*/          OPC_EmitInteger, MVT::i32, 4, 
/*181820*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSr), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (ROUNDSSr:{ *:[f32] } FR32:{ *:[f32] }:$src, 4:{ *:[i32] })
/*181828*/        /*Scope*/ 20, /*->181849*/
/*181829*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*181831*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*181837*/          OPC_EmitInteger, MVT::i32, 4, 
/*181840*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSr), 0,
                        MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (frint:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDSSr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32:{ *:[f32] }:$src, 4:{ *:[i32] })
/*181849*/        /*Scope*/ 20, /*->181870*/
/*181850*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181852*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*181858*/          OPC_EmitInteger, MVT::i32, 4, 
/*181861*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr), 0,
                        MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (frint:{ *:[f32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALESSZr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32X:{ *:[f32] }:$src, 4:{ *:[i32] })
/*181870*/        0, /*End of Scope*/
/*181871*/      /*SwitchType*/ 58, MVT::f64,// ->181931
/*181873*/        OPC_Scope, 13, /*->181888*/ // 3 children in Scope
/*181875*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*181877*/          OPC_EmitInteger, MVT::i32, 4, 
/*181880*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDr), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (ROUNDSDr:{ *:[f64] } FR64:{ *:[f64] }:$src, 4:{ *:[i32] })
/*181888*/        /*Scope*/ 20, /*->181909*/
/*181889*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*181891*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*181897*/          OPC_EmitInteger, MVT::i32, 4, 
/*181900*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDr), 0,
                        MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (frint:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDSDr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64:{ *:[f64] }:$src, 4:{ *:[i32] })
/*181909*/        /*Scope*/ 20, /*->181930*/
/*181910*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181912*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*181918*/          OPC_EmitInteger, MVT::i32, 4, 
/*181921*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr), 0,
                        MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (frint:{ *:[f64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALESDZr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64X:{ *:[f64] }:$src, 4:{ *:[i32] })
/*181930*/        0, /*End of Scope*/
/*181931*/      0, // EndSwitchType
/*181932*/    /*Scope*/ 93|128,3/*477*/, /*->182411*/
/*181934*/      OPC_MoveChild0,
/*181935*/      OPC_SwitchOpcode /*2 cases */, 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST),// ->182104
/*181940*/        OPC_MoveChild0,
/*181941*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181944*/        OPC_RecordMemRef,
/*181945*/        OPC_RecordNode, // #0 = 'ld' chained node
/*181946*/        OPC_CheckFoldableChainNode,
/*181947*/        OPC_RecordChild1, // #1 = $src
/*181948*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181950*/        OPC_CheckPredicate, 9, // Predicate_load
/*181952*/        OPC_SwitchType /*2 cases */, 73, MVT::f32,// ->182028
/*181955*/          OPC_MoveParent,
/*181956*/          OPC_MoveParent,
/*181957*/          OPC_SwitchType /*3 cases */, 21, MVT::v16f32,// ->181981
/*181960*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181962*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181965*/            OPC_EmitMergeInputChains1_0,
/*181966*/            OPC_EmitInteger, MVT::i32, 4, 
/*181969*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*181981*/          /*SwitchType*/ 21, MVT::v8f32,// ->182004
/*181983*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*181985*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*181988*/            OPC_EmitMergeInputChains1_0,
/*181989*/            OPC_EmitInteger, MVT::i32, 4, 
/*181992*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182004*/          /*SwitchType*/ 21, MVT::v4f32,// ->182027
/*182006*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182008*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182011*/            OPC_EmitMergeInputChains1_0,
/*182012*/            OPC_EmitInteger, MVT::i32, 4, 
/*182015*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182027*/          0, // EndSwitchType
/*182028*/        /*SwitchType*/ 73, MVT::f64,// ->182103
/*182030*/          OPC_MoveParent,
/*182031*/          OPC_MoveParent,
/*182032*/          OPC_SwitchType /*3 cases */, 21, MVT::v8f64,// ->182056
/*182035*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182040*/            OPC_EmitMergeInputChains1_0,
/*182041*/            OPC_EmitInteger, MVT::i32, 4, 
/*182044*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182056*/          /*SwitchType*/ 21, MVT::v4f64,// ->182079
/*182058*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182060*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182063*/            OPC_EmitMergeInputChains1_0,
/*182064*/            OPC_EmitInteger, MVT::i32, 4, 
/*182067*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182079*/          /*SwitchType*/ 21, MVT::v2f64,// ->182102
/*182081*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182083*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182086*/            OPC_EmitMergeInputChains1_0,
/*182087*/            OPC_EmitInteger, MVT::i32, 4, 
/*182090*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182102*/          0, // EndSwitchType
/*182103*/        0, // EndSwitchType
/*182104*/      /*SwitchOpcode*/ 46|128,2/*302*/, TARGET_VAL(ISD::LOAD),// ->182410
/*182108*/        OPC_RecordMemRef,
/*182109*/        OPC_RecordNode, // #0 = 'ld' chained node
/*182110*/        OPC_RecordChild1, // #1 = $src
/*182111*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182113*/        OPC_CheckPredicate, 9, // Predicate_load
/*182115*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*182117*/        OPC_Scope, 95, /*->182214*/ // 3 children in Scope
/*182119*/          OPC_MoveParent,
/*182120*/          OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->182144
/*182123*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*182125*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182128*/            OPC_EmitMergeInputChains1_0,
/*182129*/            OPC_EmitInteger, MVT::i32, 4, 
/*182132*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182144*/          /*SwitchType*/ 21, MVT::v2f64,// ->182167
/*182146*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*182148*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182151*/            OPC_EmitMergeInputChains1_0,
/*182152*/            OPC_EmitInteger, MVT::i32, 4, 
/*182155*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182167*/          /*SwitchType*/ 21, MVT::v8f32,// ->182190
/*182169*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*182171*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182174*/            OPC_EmitMergeInputChains1_0,
/*182175*/            OPC_EmitInteger, MVT::i32, 4, 
/*182178*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182190*/          /*SwitchType*/ 21, MVT::v4f64,// ->182213
/*182192*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*182194*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182197*/            OPC_EmitMergeInputChains1_0,
/*182198*/            OPC_EmitInteger, MVT::i32, 4, 
/*182201*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPDYm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182213*/          0, // EndSwitchType
/*182214*/        /*Scope*/ 51, /*->182266*/
/*182215*/          OPC_CheckPredicate, 48, // Predicate_memop
/*182217*/          OPC_MoveParent,
/*182218*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->182242
/*182221*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*182223*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182226*/            OPC_EmitMergeInputChains1_0,
/*182227*/            OPC_EmitInteger, MVT::i32, 4, 
/*182230*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (ROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182242*/          /*SwitchType*/ 21, MVT::v2f64,// ->182265
/*182244*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*182246*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182249*/            OPC_EmitMergeInputChains1_0,
/*182250*/            OPC_EmitInteger, MVT::i32, 4, 
/*182253*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (ROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182265*/          0, // EndSwitchType
/*182266*/        /*Scope*/ 13|128,1/*141*/, /*->182409*/
/*182268*/          OPC_MoveParent,
/*182269*/          OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->182293
/*182272*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182274*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182277*/            OPC_EmitMergeInputChains1_0,
/*182278*/            OPC_EmitInteger, MVT::i32, 4, 
/*182281*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182293*/          /*SwitchType*/ 21, MVT::v8f64,// ->182316
/*182295*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182297*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182300*/            OPC_EmitMergeInputChains1_0,
/*182301*/            OPC_EmitInteger, MVT::i32, 4, 
/*182304*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182316*/          /*SwitchType*/ 21, MVT::v8f32,// ->182339
/*182318*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182320*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182323*/            OPC_EmitMergeInputChains1_0,
/*182324*/            OPC_EmitInteger, MVT::i32, 4, 
/*182327*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182339*/          /*SwitchType*/ 21, MVT::v4f64,// ->182362
/*182341*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182343*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182346*/            OPC_EmitMergeInputChains1_0,
/*182347*/            OPC_EmitInteger, MVT::i32, 4, 
/*182350*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182362*/          /*SwitchType*/ 21, MVT::v4f32,// ->182385
/*182364*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182366*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182369*/            OPC_EmitMergeInputChains1_0,
/*182370*/            OPC_EmitInteger, MVT::i32, 4, 
/*182373*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182385*/          /*SwitchType*/ 21, MVT::v2f64,// ->182408
/*182387*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182389*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182392*/            OPC_EmitMergeInputChains1_0,
/*182393*/            OPC_EmitInteger, MVT::i32, 4, 
/*182396*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (frint:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*182408*/          0, // EndSwitchType
/*182409*/        0, /*End of Scope*/
/*182410*/      0, // EndSwitchOpcode
/*182411*/    /*Scope*/ 61|128,1/*189*/, /*->182602*/
/*182413*/      OPC_RecordChild0, // #0 = $src
/*182414*/      OPC_SwitchType /*6 cases */, 44, MVT::v4f32,// ->182461
/*182417*/        OPC_Scope, 13, /*->182432*/ // 3 children in Scope
/*182419*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*182421*/          OPC_EmitInteger, MVT::i32, 4, 
/*182424*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, 4:{ *:[i32] })
/*182432*/        /*Scope*/ 13, /*->182446*/
/*182433*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*182435*/          OPC_EmitInteger, MVT::i32, 4, 
/*182438*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (ROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, 4:{ *:[i32] })
/*182446*/        /*Scope*/ 13, /*->182460*/
/*182447*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182449*/          OPC_EmitInteger, MVT::i32, 4, 
/*182452*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rri), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] })
/*182460*/        0, /*End of Scope*/
/*182461*/      /*SwitchType*/ 44, MVT::v2f64,// ->182507
/*182463*/        OPC_Scope, 13, /*->182478*/ // 3 children in Scope
/*182465*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*182467*/          OPC_EmitInteger, MVT::i32, 4, 
/*182470*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, 4:{ *:[i32] })
/*182478*/        /*Scope*/ 13, /*->182492*/
/*182479*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*182481*/          OPC_EmitInteger, MVT::i32, 4, 
/*182484*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (ROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, 4:{ *:[i32] })
/*182492*/        /*Scope*/ 13, /*->182506*/
/*182493*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182495*/          OPC_EmitInteger, MVT::i32, 4, 
/*182498*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rri), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] })
/*182506*/        0, /*End of Scope*/
/*182507*/      /*SwitchType*/ 30, MVT::v8f32,// ->182539
/*182509*/        OPC_Scope, 13, /*->182524*/ // 2 children in Scope
/*182511*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*182513*/          OPC_EmitInteger, MVT::i32, 4, 
/*182516*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src, 4:{ *:[i32] })
/*182524*/        /*Scope*/ 13, /*->182538*/
/*182525*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182527*/          OPC_EmitInteger, MVT::i32, 4, 
/*182530*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rri), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, 4:{ *:[i32] })
/*182538*/        0, /*End of Scope*/
/*182539*/      /*SwitchType*/ 30, MVT::v4f64,// ->182571
/*182541*/        OPC_Scope, 13, /*->182556*/ // 2 children in Scope
/*182543*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*182545*/          OPC_EmitInteger, MVT::i32, 4, 
/*182548*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDPDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src, 4:{ *:[i32] })
/*182556*/        /*Scope*/ 13, /*->182570*/
/*182557*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182559*/          OPC_EmitInteger, MVT::i32, 4, 
/*182562*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (frint:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, 4:{ *:[i32] })
/*182570*/        0, /*End of Scope*/
/*182571*/      /*SwitchType*/ 13, MVT::v16f32,// ->182586
/*182573*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182575*/        OPC_EmitInteger, MVT::i32, 4, 
/*182578*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (frint:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VRNDSCALEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] })
/*182586*/      /*SwitchType*/ 13, MVT::v8f64,// ->182601
/*182588*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182590*/        OPC_EmitInteger, MVT::i32, 4, 
/*182593*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (frint:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VRNDSCALEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] })
/*182601*/      0, // EndSwitchType
/*182602*/    0, /*End of Scope*/
/*182603*/  /*SwitchOpcode*/ 84|128,7/*980*/, TARGET_VAL(ISD::FTRUNC),// ->183587
/*182607*/    OPC_Scope, 54|128,1/*182*/, /*->182792*/ // 4 children in Scope
/*182610*/      OPC_MoveChild0,
/*182611*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*182614*/      OPC_RecordMemRef,
/*182615*/      OPC_RecordNode, // #0 = 'ld' chained node
/*182616*/      OPC_RecordChild1, // #1 = $src
/*182617*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182619*/      OPC_CheckPredicate, 9, // Predicate_load
/*182621*/      OPC_MoveParent,
/*182622*/      OPC_SwitchType /*2 cases */, 82, MVT::f32,// ->182707
/*182625*/        OPC_Scope, 21, /*->182648*/ // 3 children in Scope
/*182627*/          OPC_CheckPatternPredicate, 167, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*182629*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182632*/          OPC_EmitMergeInputChains1_0,
/*182633*/          OPC_EmitInteger, MVT::i32, 11, 
/*182636*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (ftrunc:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (ROUNDSSm:{ *:[f32] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*182648*/        /*Scope*/ 28, /*->182677*/
/*182649*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*182651*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182654*/          OPC_EmitMergeInputChains1_0,
/*182655*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*182661*/          OPC_EmitInteger, MVT::i32, 11, 
/*182664*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (ftrunc:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VROUNDSSm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*182677*/        /*Scope*/ 28, /*->182706*/
/*182678*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*182680*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182683*/          OPC_EmitMergeInputChains1_0,
/*182684*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*182690*/          OPC_EmitInteger, MVT::i32, 11, 
/*182693*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (ftrunc:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VRNDSCALESSZm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*182706*/        0, /*End of Scope*/
/*182707*/      /*SwitchType*/ 82, MVT::f64,// ->182791
/*182709*/        OPC_Scope, 21, /*->182732*/ // 3 children in Scope
/*182711*/          OPC_CheckPatternPredicate, 167, // (MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*182713*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182716*/          OPC_EmitMergeInputChains1_0,
/*182717*/          OPC_EmitInteger, MVT::i32, 11, 
/*182720*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (ftrunc:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (ROUNDSDm:{ *:[f64] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*182732*/        /*Scope*/ 28, /*->182761*/
/*182733*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*182735*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182738*/          OPC_EmitMergeInputChains1_0,
/*182739*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*182745*/          OPC_EmitInteger, MVT::i32, 11, 
/*182748*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (ftrunc:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VROUNDSDm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*182761*/        /*Scope*/ 28, /*->182790*/
/*182762*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*182764*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182767*/          OPC_EmitMergeInputChains1_0,
/*182768*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*182774*/          OPC_EmitInteger, MVT::i32, 11, 
/*182777*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 7, 2, 3, 4, 5, 6, 8, 
                    // Src: (ftrunc:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VRNDSCALESDZm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*182790*/        0, /*End of Scope*/
/*182791*/      0, // EndSwitchType
/*182792*/    /*Scope*/ 123, /*->182916*/
/*182793*/      OPC_RecordChild0, // #0 = $src
/*182794*/      OPC_SwitchType /*2 cases */, 58, MVT::f32,// ->182855
/*182797*/        OPC_Scope, 13, /*->182812*/ // 3 children in Scope
/*182799*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*182801*/          OPC_EmitInteger, MVT::i32, 11, 
/*182804*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSr), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (ROUNDSSr:{ *:[f32] } FR32:{ *:[f32] }:$src, 11:{ *:[i32] })
/*182812*/        /*Scope*/ 20, /*->182833*/
/*182813*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*182815*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*182821*/          OPC_EmitInteger, MVT::i32, 11, 
/*182824*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSr), 0,
                        MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (ftrunc:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDSSr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32:{ *:[f32] }:$src, 11:{ *:[i32] })
/*182833*/        /*Scope*/ 20, /*->182854*/
/*182834*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182836*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*182842*/          OPC_EmitInteger, MVT::i32, 11, 
/*182845*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr), 0,
                        MVT::f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (ftrunc:{ *:[f32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALESSZr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32X:{ *:[f32] }:$src, 11:{ *:[i32] })
/*182854*/        0, /*End of Scope*/
/*182855*/      /*SwitchType*/ 58, MVT::f64,// ->182915
/*182857*/        OPC_Scope, 13, /*->182872*/ // 3 children in Scope
/*182859*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*182861*/          OPC_EmitInteger, MVT::i32, 11, 
/*182864*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDr), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (ROUNDSDr:{ *:[f64] } FR64:{ *:[f64] }:$src, 11:{ *:[i32] })
/*182872*/        /*Scope*/ 20, /*->182893*/
/*182873*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*182875*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*182881*/          OPC_EmitInteger, MVT::i32, 11, 
/*182884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDr), 0,
                        MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (ftrunc:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDSDr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64:{ *:[f64] }:$src, 11:{ *:[i32] })
/*182893*/        /*Scope*/ 20, /*->182914*/
/*182894*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182896*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*182902*/          OPC_EmitInteger, MVT::i32, 11, 
/*182905*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr), 0,
                        MVT::f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (ftrunc:{ *:[f64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALESDZr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64X:{ *:[f64] }:$src, 11:{ *:[i32] })
/*182914*/        0, /*End of Scope*/
/*182915*/      0, // EndSwitchType
/*182916*/    /*Scope*/ 93|128,3/*477*/, /*->183395*/
/*182918*/      OPC_MoveChild0,
/*182919*/      OPC_SwitchOpcode /*2 cases */, 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST),// ->183088
/*182924*/        OPC_MoveChild0,
/*182925*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*182928*/        OPC_RecordMemRef,
/*182929*/        OPC_RecordNode, // #0 = 'ld' chained node
/*182930*/        OPC_CheckFoldableChainNode,
/*182931*/        OPC_RecordChild1, // #1 = $src
/*182932*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182934*/        OPC_CheckPredicate, 9, // Predicate_load
/*182936*/        OPC_SwitchType /*2 cases */, 73, MVT::f32,// ->183012
/*182939*/          OPC_MoveParent,
/*182940*/          OPC_MoveParent,
/*182941*/          OPC_SwitchType /*3 cases */, 21, MVT::v16f32,// ->182965
/*182944*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182946*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182949*/            OPC_EmitMergeInputChains1_0,
/*182950*/            OPC_EmitInteger, MVT::i32, 11, 
/*182953*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*182965*/          /*SwitchType*/ 21, MVT::v8f32,// ->182988
/*182967*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182969*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182972*/            OPC_EmitMergeInputChains1_0,
/*182973*/            OPC_EmitInteger, MVT::i32, 11, 
/*182976*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*182988*/          /*SwitchType*/ 21, MVT::v4f32,// ->183011
/*182990*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*182992*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*182995*/            OPC_EmitMergeInputChains1_0,
/*182996*/            OPC_EmitInteger, MVT::i32, 11, 
/*182999*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183011*/          0, // EndSwitchType
/*183012*/        /*SwitchType*/ 73, MVT::f64,// ->183087
/*183014*/          OPC_MoveParent,
/*183015*/          OPC_MoveParent,
/*183016*/          OPC_SwitchType /*3 cases */, 21, MVT::v8f64,// ->183040
/*183019*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183021*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183024*/            OPC_EmitMergeInputChains1_0,
/*183025*/            OPC_EmitInteger, MVT::i32, 11, 
/*183028*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183040*/          /*SwitchType*/ 21, MVT::v4f64,// ->183063
/*183042*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183044*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183047*/            OPC_EmitMergeInputChains1_0,
/*183048*/            OPC_EmitInteger, MVT::i32, 11, 
/*183051*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183063*/          /*SwitchType*/ 21, MVT::v2f64,// ->183086
/*183065*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183067*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183070*/            OPC_EmitMergeInputChains1_0,
/*183071*/            OPC_EmitInteger, MVT::i32, 11, 
/*183074*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183086*/          0, // EndSwitchType
/*183087*/        0, // EndSwitchType
/*183088*/      /*SwitchOpcode*/ 46|128,2/*302*/, TARGET_VAL(ISD::LOAD),// ->183394
/*183092*/        OPC_RecordMemRef,
/*183093*/        OPC_RecordNode, // #0 = 'ld' chained node
/*183094*/        OPC_RecordChild1, // #1 = $src
/*183095*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183097*/        OPC_CheckPredicate, 9, // Predicate_load
/*183099*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*183101*/        OPC_Scope, 95, /*->183198*/ // 3 children in Scope
/*183103*/          OPC_MoveParent,
/*183104*/          OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->183128
/*183107*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*183109*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183112*/            OPC_EmitMergeInputChains1_0,
/*183113*/            OPC_EmitInteger, MVT::i32, 11, 
/*183116*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183128*/          /*SwitchType*/ 21, MVT::v2f64,// ->183151
/*183130*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*183132*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183135*/            OPC_EmitMergeInputChains1_0,
/*183136*/            OPC_EmitInteger, MVT::i32, 11, 
/*183139*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183151*/          /*SwitchType*/ 21, MVT::v8f32,// ->183174
/*183153*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*183155*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183158*/            OPC_EmitMergeInputChains1_0,
/*183159*/            OPC_EmitInteger, MVT::i32, 11, 
/*183162*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183174*/          /*SwitchType*/ 21, MVT::v4f64,// ->183197
/*183176*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*183178*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183181*/            OPC_EmitMergeInputChains1_0,
/*183182*/            OPC_EmitInteger, MVT::i32, 11, 
/*183185*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VROUNDPDYm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183197*/          0, // EndSwitchType
/*183198*/        /*Scope*/ 51, /*->183250*/
/*183199*/          OPC_CheckPredicate, 48, // Predicate_memop
/*183201*/          OPC_MoveParent,
/*183202*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->183226
/*183205*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*183207*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183210*/            OPC_EmitMergeInputChains1_0,
/*183211*/            OPC_EmitInteger, MVT::i32, 11, 
/*183214*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (ROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183226*/          /*SwitchType*/ 21, MVT::v2f64,// ->183249
/*183228*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*183230*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183233*/            OPC_EmitMergeInputChains1_0,
/*183234*/            OPC_EmitInteger, MVT::i32, 11, 
/*183237*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (ROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183249*/          0, // EndSwitchType
/*183250*/        /*Scope*/ 13|128,1/*141*/, /*->183393*/
/*183252*/          OPC_MoveParent,
/*183253*/          OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->183277
/*183256*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183261*/            OPC_EmitMergeInputChains1_0,
/*183262*/            OPC_EmitInteger, MVT::i32, 11, 
/*183265*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183277*/          /*SwitchType*/ 21, MVT::v8f64,// ->183300
/*183279*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183281*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183284*/            OPC_EmitMergeInputChains1_0,
/*183285*/            OPC_EmitInteger, MVT::i32, 11, 
/*183288*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183300*/          /*SwitchType*/ 21, MVT::v8f32,// ->183323
/*183302*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183304*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183307*/            OPC_EmitMergeInputChains1_0,
/*183308*/            OPC_EmitInteger, MVT::i32, 11, 
/*183311*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183323*/          /*SwitchType*/ 21, MVT::v4f64,// ->183346
/*183325*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183327*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183330*/            OPC_EmitMergeInputChains1_0,
/*183331*/            OPC_EmitInteger, MVT::i32, 11, 
/*183334*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183346*/          /*SwitchType*/ 21, MVT::v4f32,// ->183369
/*183348*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183350*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183353*/            OPC_EmitMergeInputChains1_0,
/*183354*/            OPC_EmitInteger, MVT::i32, 11, 
/*183357*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183369*/          /*SwitchType*/ 21, MVT::v2f64,// ->183392
/*183371*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183373*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183376*/            OPC_EmitMergeInputChains1_0,
/*183377*/            OPC_EmitInteger, MVT::i32, 11, 
/*183380*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (ftrunc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VRNDSCALEPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*183392*/          0, // EndSwitchType
/*183393*/        0, /*End of Scope*/
/*183394*/      0, // EndSwitchOpcode
/*183395*/    /*Scope*/ 61|128,1/*189*/, /*->183586*/
/*183397*/      OPC_RecordChild0, // #0 = $src
/*183398*/      OPC_SwitchType /*6 cases */, 44, MVT::v4f32,// ->183445
/*183401*/        OPC_Scope, 13, /*->183416*/ // 3 children in Scope
/*183403*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*183405*/          OPC_EmitInteger, MVT::i32, 11, 
/*183408*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, 11:{ *:[i32] })
/*183416*/        /*Scope*/ 13, /*->183430*/
/*183417*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*183419*/          OPC_EmitInteger, MVT::i32, 11, 
/*183422*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (ROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, 11:{ *:[i32] })
/*183430*/        /*Scope*/ 13, /*->183444*/
/*183431*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183433*/          OPC_EmitInteger, MVT::i32, 11, 
/*183436*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rri), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, 11:{ *:[i32] })
/*183444*/        0, /*End of Scope*/
/*183445*/      /*SwitchType*/ 44, MVT::v2f64,// ->183491
/*183447*/        OPC_Scope, 13, /*->183462*/ // 3 children in Scope
/*183449*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*183451*/          OPC_EmitInteger, MVT::i32, 11, 
/*183454*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, 11:{ *:[i32] })
/*183462*/        /*Scope*/ 13, /*->183476*/
/*183463*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*183465*/          OPC_EmitInteger, MVT::i32, 11, 
/*183468*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (ROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, 11:{ *:[i32] })
/*183476*/        /*Scope*/ 13, /*->183490*/
/*183477*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183479*/          OPC_EmitInteger, MVT::i32, 11, 
/*183482*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rri), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, 11:{ *:[i32] })
/*183490*/        0, /*End of Scope*/
/*183491*/      /*SwitchType*/ 30, MVT::v8f32,// ->183523
/*183493*/        OPC_Scope, 13, /*->183508*/ // 2 children in Scope
/*183495*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*183497*/          OPC_EmitInteger, MVT::i32, 11, 
/*183500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VROUNDPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src, 11:{ *:[i32] })
/*183508*/        /*Scope*/ 13, /*->183522*/
/*183509*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183511*/          OPC_EmitInteger, MVT::i32, 11, 
/*183514*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rri), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, 11:{ *:[i32] })
/*183522*/        0, /*End of Scope*/
/*183523*/      /*SwitchType*/ 30, MVT::v4f64,// ->183555
/*183525*/        OPC_Scope, 13, /*->183540*/ // 2 children in Scope
/*183527*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*183529*/          OPC_EmitInteger, MVT::i32, 11, 
/*183532*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VROUNDPDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src, 11:{ *:[i32] })
/*183540*/        /*Scope*/ 13, /*->183554*/
/*183541*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183543*/          OPC_EmitInteger, MVT::i32, 11, 
/*183546*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (ftrunc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VRNDSCALEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, 11:{ *:[i32] })
/*183554*/        0, /*End of Scope*/
/*183555*/      /*SwitchType*/ 13, MVT::v16f32,// ->183570
/*183557*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183559*/        OPC_EmitInteger, MVT::i32, 11, 
/*183562*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (ftrunc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VRNDSCALEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 11:{ *:[i32] })
/*183570*/      /*SwitchType*/ 13, MVT::v8f64,// ->183585
/*183572*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183574*/        OPC_EmitInteger, MVT::i32, 11, 
/*183577*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (ftrunc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VRNDSCALEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 11:{ *:[i32] })
/*183585*/      0, // EndSwitchType
/*183586*/    0, /*End of Scope*/
/*183587*/  /*SwitchOpcode*/ 98|128,8/*1122*/, TARGET_VAL(ISD::UINT_TO_FP),// ->184713
/*183591*/    OPC_Scope, 1|128,1/*129*/, /*->183723*/ // 4 children in Scope
/*183594*/      OPC_MoveChild0,
/*183595*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*183598*/      OPC_RecordMemRef,
/*183599*/      OPC_RecordNode, // #0 = 'ld' chained node
/*183600*/      OPC_RecordChild1, // #1 = $src
/*183601*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183603*/      OPC_SwitchType /*2 cases */, 57, MVT::i32,// ->183663
/*183606*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*183608*/        OPC_MoveParent,
/*183609*/        OPC_SwitchType /*2 cases */, 24, MVT::f32,// ->183636
/*183612*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183614*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183617*/          OPC_EmitMergeInputChains1_0,
/*183618*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*183624*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                    // Src: (uint_to_fp:{ *:[f32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                    // Dst: (VCVTUSI2SSZrm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src)
/*183636*/        /*SwitchType*/ 24, MVT::f64,// ->183662
/*183638*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183640*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183643*/          OPC_EmitMergeInputChains1_0,
/*183644*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*183650*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                    // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                    // Dst: (VCVTUSI2SDZrm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*183662*/        0, // EndSwitchType
/*183663*/      /*SwitchType*/ 57, MVT::i64,// ->183722
/*183665*/        OPC_CheckPredicate, 9, // Predicate_load
/*183667*/        OPC_MoveParent,
/*183668*/        OPC_SwitchType /*2 cases */, 24, MVT::f32,// ->183695
/*183671*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183673*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183676*/          OPC_EmitMergeInputChains1_0,
/*183677*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*183683*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                    // Src: (uint_to_fp:{ *:[f32] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTUSI642SSZrm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src)
/*183695*/        /*SwitchType*/ 24, MVT::f64,// ->183721
/*183697*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183699*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183702*/          OPC_EmitMergeInputChains1_0,
/*183703*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*183709*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                    // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTUSI642SDZrm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*183721*/        0, // EndSwitchType
/*183722*/      0, // EndSwitchType
/*183723*/    /*Scope*/ 85, /*->183809*/
/*183724*/      OPC_RecordChild0, // #0 = $src
/*183725*/      OPC_Scope, 40, /*->183767*/ // 2 children in Scope
/*183727*/        OPC_CheckChild0Type, MVT::i32,
/*183729*/        OPC_SwitchType /*2 cases */, 16, MVT::f32,// ->183748
/*183732*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183734*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*183740*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrr), 0,
                        MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (uint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (VCVTUSI2SSZrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), GR32:{ *:[i32] }:$src)
/*183748*/        /*SwitchType*/ 16, MVT::f64,// ->183766
/*183750*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183752*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*183758*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SDZrr), 0,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (uint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (VCVTUSI2SDZrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), GR32:{ *:[i32] }:$src)
/*183766*/        0, // EndSwitchType
/*183767*/      /*Scope*/ 40, /*->183808*/
/*183768*/        OPC_CheckChild0Type, MVT::i64,
/*183770*/        OPC_SwitchType /*2 cases */, 16, MVT::f32,// ->183789
/*183773*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183775*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*183781*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrr), 0,
                        MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (uint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src) - Complexity = 3
                    // Dst: (VCVTUSI642SSZrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), GR64:{ *:[i64] }:$src)
/*183789*/        /*SwitchType*/ 16, MVT::f64,// ->183807
/*183791*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183793*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*183799*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrr), 0,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (uint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                    // Dst: (VCVTUSI642SDZrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), GR64:{ *:[i64] }:$src)
/*183807*/        0, // EndSwitchType
/*183808*/      0, /*End of Scope*/
/*183809*/    /*Scope*/ 124|128,3/*508*/, /*->184319*/
/*183811*/      OPC_MoveChild0,
/*183812*/      OPC_SwitchOpcode /*3 cases */, 5|128,1/*133*/, TARGET_VAL(ISD::BITCAST),// ->183950
/*183817*/        OPC_MoveChild0,
/*183818*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*183821*/        OPC_RecordMemRef,
/*183822*/        OPC_RecordNode, // #0 = 'ld' chained node
/*183823*/        OPC_CheckFoldableChainNode,
/*183824*/        OPC_RecordChild1, // #1 = $src
/*183825*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183827*/        OPC_CheckPredicate, 9, // Predicate_load
/*183829*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*183831*/        OPC_SwitchType /*3 cases */, 44, MVT::v4i64,// ->183878
/*183834*/          OPC_MoveParent,
/*183835*/          OPC_CheckType, MVT::v8i32,
/*183837*/          OPC_MoveParent,
/*183838*/          OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->183858
/*183841*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183843*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183846*/            OPC_EmitMergeInputChains1_0,
/*183847*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (uint_to_fp:{ *:[v8f64] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VCVTUDQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*183858*/          /*SwitchType*/ 17, MVT::v8f32,// ->183877
/*183860*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183862*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183865*/            OPC_EmitMergeInputChains1_0,
/*183866*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (uint_to_fp:{ *:[v8f32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VCVTUDQ2PSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*183877*/          0, // EndSwitchType
/*183878*/        /*SwitchType*/ 44, MVT::v2i64,// ->183924
/*183880*/          OPC_MoveParent,
/*183881*/          OPC_CheckType, MVT::v4i32,
/*183883*/          OPC_MoveParent,
/*183884*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->183904
/*183887*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183889*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183892*/            OPC_EmitMergeInputChains1_0,
/*183893*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (uint_to_fp:{ *:[v4f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VCVTUDQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*183904*/          /*SwitchType*/ 17, MVT::v4f32,// ->183923
/*183906*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183908*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183911*/            OPC_EmitMergeInputChains1_0,
/*183912*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (uint_to_fp:{ *:[v4f32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VCVTUDQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*183923*/          0, // EndSwitchType
/*183924*/        /*SwitchType*/ 23, MVT::v8i64,// ->183949
/*183926*/          OPC_MoveParent,
/*183927*/          OPC_CheckType, MVT::v16i32,
/*183929*/          OPC_MoveParent,
/*183930*/          OPC_CheckType, MVT::v16f32,
/*183932*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183934*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183937*/          OPC_EmitMergeInputChains1_0,
/*183938*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (uint_to_fp:{ *:[v16f32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VCVTUDQ2PSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*183949*/        0, // EndSwitchType
/*183950*/      /*SwitchOpcode*/ 114|128,1/*242*/, TARGET_VAL(X86ISD::VBROADCAST),// ->184196
/*183954*/        OPC_MoveChild0,
/*183955*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*183958*/        OPC_RecordMemRef,
/*183959*/        OPC_RecordNode, // #0 = 'ld' chained node
/*183960*/        OPC_CheckFoldableChainNode,
/*183961*/        OPC_RecordChild1, // #1 = $src
/*183962*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183964*/        OPC_SwitchType /*2 cases */, 113, MVT::i32,// ->184080
/*183967*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*183969*/          OPC_MoveParent,
/*183970*/          OPC_SwitchType /*3 cases */, 41, MVT::v8i32,// ->184014
/*183973*/            OPC_MoveParent,
/*183974*/            OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->183994
/*183977*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183979*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*183982*/              OPC_EmitMergeInputChains1_0,
/*183983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (uint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VCVTUDQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*183994*/            /*SwitchType*/ 17, MVT::v8f32,// ->184013
/*183996*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*183998*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184001*/              OPC_EmitMergeInputChains1_0,
/*184002*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (uint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VCVTUDQ2PSZ256rmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*184013*/            0, // EndSwitchType
/*184014*/          /*SwitchType*/ 41, MVT::v4i32,// ->184057
/*184016*/            OPC_MoveParent,
/*184017*/            OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->184037
/*184020*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*184022*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184025*/              OPC_EmitMergeInputChains1_0,
/*184026*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (uint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VCVTUDQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*184037*/            /*SwitchType*/ 17, MVT::v4f32,// ->184056
/*184039*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*184041*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184044*/              OPC_EmitMergeInputChains1_0,
/*184045*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (uint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VCVTUDQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*184056*/            0, // EndSwitchType
/*184057*/          /*SwitchType*/ 20, MVT::v16i32,// ->184079
/*184059*/            OPC_MoveParent,
/*184060*/            OPC_CheckType, MVT::v16f32,
/*184062*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184064*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184067*/            OPC_EmitMergeInputChains1_0,
/*184068*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (uint_to_fp:{ *:[v16f32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VCVTUDQ2PSZrmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*184079*/          0, // EndSwitchType
/*184080*/        /*SwitchType*/ 113, MVT::i64,// ->184195
/*184082*/          OPC_CheckPredicate, 9, // Predicate_load
/*184084*/          OPC_MoveParent,
/*184085*/          OPC_SwitchType /*3 cases */, 41, MVT::v8i64,// ->184129
/*184088*/            OPC_MoveParent,
/*184089*/            OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->184109
/*184092*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*184094*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184097*/              OPC_EmitMergeInputChains1_0,
/*184098*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (uint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTUQQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*184109*/            /*SwitchType*/ 17, MVT::v8f32,// ->184128
/*184111*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*184113*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184116*/              OPC_EmitMergeInputChains1_0,
/*184117*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (uint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTUQQ2PSZrmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*184128*/            0, // EndSwitchType
/*184129*/          /*SwitchType*/ 20, MVT::v2i64,// ->184151
/*184131*/            OPC_MoveParent,
/*184132*/            OPC_CheckType, MVT::v2f64,
/*184134*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*184136*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184139*/            OPC_EmitMergeInputChains1_0,
/*184140*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (uint_to_fp:{ *:[v2f64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VCVTUQQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*184151*/          /*SwitchType*/ 41, MVT::v4i64,// ->184194
/*184153*/            OPC_MoveParent,
/*184154*/            OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->184174
/*184157*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*184159*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184162*/              OPC_EmitMergeInputChains1_0,
/*184163*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (uint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTUQQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*184174*/            /*SwitchType*/ 17, MVT::v4f32,// ->184193
/*184176*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*184178*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184181*/              OPC_EmitMergeInputChains1_0,
/*184182*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (uint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTUQQ2PSZ256rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*184193*/            0, // EndSwitchType
/*184194*/          0, // EndSwitchType
/*184195*/        0, // EndSwitchType
/*184196*/      /*SwitchOpcode*/ 119, TARGET_VAL(ISD::LOAD),// ->184318
/*184199*/        OPC_RecordMemRef,
/*184200*/        OPC_RecordNode, // #0 = 'ld' chained node
/*184201*/        OPC_RecordChild1, // #1 = $src
/*184202*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184204*/        OPC_CheckPredicate, 9, // Predicate_load
/*184206*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*184208*/        OPC_SwitchType /*3 cases */, 41, MVT::v8i64,// ->184252
/*184211*/          OPC_MoveParent,
/*184212*/          OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->184232
/*184215*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*184217*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184220*/            OPC_EmitMergeInputChains1_0,
/*184221*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (uint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*184232*/          /*SwitchType*/ 17, MVT::v8f32,// ->184251
/*184234*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*184236*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184239*/            OPC_EmitMergeInputChains1_0,
/*184240*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (uint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PSZrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*184251*/          0, // EndSwitchType
/*184252*/        /*SwitchType*/ 20, MVT::v2i64,// ->184274
/*184254*/          OPC_MoveParent,
/*184255*/          OPC_CheckType, MVT::v2f64,
/*184257*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*184259*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184262*/          OPC_EmitMergeInputChains1_0,
/*184263*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (uint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTUQQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*184274*/        /*SwitchType*/ 41, MVT::v4i64,// ->184317
/*184276*/          OPC_MoveParent,
/*184277*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->184297
/*184280*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*184282*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184285*/            OPC_EmitMergeInputChains1_0,
/*184286*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (uint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*184297*/          /*SwitchType*/ 17, MVT::v4f32,// ->184316
/*184299*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*184301*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*184304*/            OPC_EmitMergeInputChains1_0,
/*184305*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (uint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PSZ256rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*184316*/          0, // EndSwitchType
/*184317*/        0, // EndSwitchType
/*184318*/      0, // EndSwitchOpcode
/*184319*/    /*Scope*/ 7|128,3/*391*/, /*->184712*/
/*184321*/      OPC_RecordChild0, // #0 = $src
/*184322*/      OPC_Scope, 68, /*->184392*/ // 6 children in Scope
/*184324*/        OPC_CheckChild0Type, MVT::v8i32,
/*184326*/        OPC_SwitchType /*2 cases */, 9, MVT::v8f64,// ->184338
/*184329*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184331*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrr), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                    // Dst: (VCVTUDQ2PDZrr:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src)
/*184338*/        /*SwitchType*/ 51, MVT::v8f32,// ->184391
/*184340*/          OPC_Scope, 9, /*->184351*/ // 2 children in Scope
/*184342*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*184344*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rr), 0,
                          MVT::v8f32, 1/*#Ops*/, 0, 
                      // Src: (uint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                      // Dst: (VCVTUDQ2PSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src)
/*184351*/          /*Scope*/ 38, /*->184390*/
/*184352*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*184354*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*184360*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*184363*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*184372*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTUDQ2PSZrr), 0,
                          MVT::v16f32, 1/*#Ops*/, 3,  // Results = #4
/*184379*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*184382*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8f32, 2/*#Ops*/, 4, 5, 
                      // Src: (uint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v8f32] } (VCVTUDQ2PSZrr:{ *:[v16f32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*184390*/          0, /*End of Scope*/
/*184391*/        0, // EndSwitchType
/*184392*/      /*Scope*/ 110, /*->184503*/
/*184393*/        OPC_CheckChild0Type, MVT::v4i32,
/*184395*/        OPC_SwitchType /*2 cases */, 51, MVT::v4f64,// ->184449
/*184398*/          OPC_Scope, 9, /*->184409*/ // 2 children in Scope
/*184400*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*184402*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rr), 0,
                          MVT::v4f64, 1/*#Ops*/, 0, 
                      // Src: (uint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VCVTUDQ2PDZ256rr:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src)
/*184409*/          /*Scope*/ 38, /*->184448*/
/*184410*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*184412*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i32, 0/*#Ops*/,  // Results = #1
/*184418*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*184421*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*184430*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTUDQ2PDZrr), 0,
                          MVT::v8f64, 1/*#Ops*/, 3,  // Results = #4
/*184437*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*184440*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f64, 2/*#Ops*/, 4, 5, 
                      // Src: (uint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4f64] } (VCVTUDQ2PDZrr:{ *:[v8f64] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*184448*/          0, /*End of Scope*/
/*184449*/        /*SwitchType*/ 51, MVT::v4f32,// ->184502
/*184451*/          OPC_Scope, 9, /*->184462*/ // 2 children in Scope
/*184453*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*184455*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (uint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VCVTUDQ2PSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src)
/*184462*/          /*Scope*/ 38, /*->184501*/
/*184463*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*184465*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*184471*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*184474*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*184483*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTUDQ2PSZrr), 0,
                          MVT::v16f32, 1/*#Ops*/, 3,  // Results = #4
/*184490*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*184493*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f32, 2/*#Ops*/, 4, 5, 
                      // Src: (uint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4f32] } (VCVTUDQ2PSZrr:{ *:[v16f32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*184501*/          0, /*End of Scope*/
/*184502*/        0, // EndSwitchType
/*184503*/      /*Scope*/ 13, /*->184517*/
/*184504*/        OPC_CheckChild0Type, MVT::v16i32,
/*184506*/        OPC_CheckType, MVT::v16f32,
/*184508*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184510*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (uint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                  // Dst: (VCVTUDQ2PSZrr:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src)
/*184517*/      /*Scope*/ 26, /*->184544*/
/*184518*/        OPC_CheckChild0Type, MVT::v8i64,
/*184520*/        OPC_SwitchType /*2 cases */, 9, MVT::v8f64,// ->184532
/*184523*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*184525*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrr), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                    // Dst: (VCVTUQQ2PDZrr:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src)
/*184532*/        /*SwitchType*/ 9, MVT::v8f32,// ->184543
/*184534*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*184536*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrr), 0,
                        MVT::v8f32, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                    // Dst: (VCVTUQQ2PSZrr:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src)
/*184543*/        0, // EndSwitchType
/*184544*/      /*Scope*/ 55, /*->184600*/
/*184545*/        OPC_CheckChild0Type, MVT::v2i64,
/*184547*/        OPC_CheckType, MVT::v2f64,
/*184549*/        OPC_Scope, 9, /*->184560*/ // 2 children in Scope
/*184551*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*184553*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (VCVTUQQ2PDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src)
/*184560*/        /*Scope*/ 38, /*->184599*/
/*184561*/          OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*184563*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*184569*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*184572*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*184581*/          OPC_EmitNode1, TARGET_VAL(X86::VCVTUQQ2PDZrr), 0,
                        MVT::v8f64, 1/*#Ops*/, 3,  // Results = #4
/*184588*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*184591*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f64, 2/*#Ops*/, 4, 5, 
                    // Src: (uint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2f64] } (VCVTUQQ2PDZrr:{ *:[v8f64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*184599*/        0, /*End of Scope*/
/*184600*/      /*Scope*/ 110, /*->184711*/
/*184601*/        OPC_CheckChild0Type, MVT::v4i64,
/*184603*/        OPC_SwitchType /*2 cases */, 51, MVT::v4f64,// ->184657
/*184606*/          OPC_Scope, 9, /*->184617*/ // 2 children in Scope
/*184608*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*184610*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rr), 0,
                          MVT::v4f64, 1/*#Ops*/, 0, 
                      // Src: (uint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                      // Dst: (VCVTUQQ2PDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src)
/*184617*/          /*Scope*/ 38, /*->184656*/
/*184618*/            OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*184620*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*184626*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*184629*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*184638*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTUQQ2PDZrr), 0,
                          MVT::v8f64, 1/*#Ops*/, 3,  // Results = #4
/*184645*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*184648*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f64, 2/*#Ops*/, 4, 5, 
                      // Src: (uint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4f64] } (VCVTUQQ2PDZrr:{ *:[v8f64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*184656*/          0, /*End of Scope*/
/*184657*/        /*SwitchType*/ 51, MVT::v4f32,// ->184710
/*184659*/          OPC_Scope, 9, /*->184670*/ // 2 children in Scope
/*184661*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*184663*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (uint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                      // Dst: (VCVTUQQ2PSZ256rr:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src)
/*184670*/          /*Scope*/ 38, /*->184709*/
/*184671*/            OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*184673*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*184679*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*184682*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*184691*/            OPC_EmitNode1, TARGET_VAL(X86::VCVTUQQ2PSZrr), 0,
                          MVT::v8f32, 1/*#Ops*/, 3,  // Results = #4
/*184698*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*184701*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f32, 2/*#Ops*/, 4, 5, 
                      // Src: (uint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4f32] } (VCVTUQQ2PSZrr:{ *:[v8f32] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*184709*/          0, /*End of Scope*/
/*184710*/        0, // EndSwitchType
/*184711*/      0, /*End of Scope*/
/*184712*/    0, /*End of Scope*/
/*184713*/  /*SwitchOpcode*/ 17|128,4/*529*/, TARGET_VAL(X86ISD::FAND),// ->185246
/*184717*/    OPC_Scope, 56, /*->184775*/ // 5 children in Scope
/*184719*/      OPC_RecordChild0, // #0 = $src1
/*184720*/      OPC_MoveChild1,
/*184721*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*184724*/      OPC_RecordMemRef,
/*184725*/      OPC_RecordNode, // #1 = 'ld' chained node
/*184726*/      OPC_CheckFoldableChainNode,
/*184727*/      OPC_RecordChild1, // #2 = $src2
/*184728*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184730*/      OPC_CheckPredicate, 9, // Predicate_load
/*184732*/      OPC_CheckPredicate, 91, // Predicate_memopf128
/*184734*/      OPC_MoveParent,
/*184735*/      OPC_CheckType, MVT::f128,
/*184737*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*184740*/      OPC_EmitMergeInputChains1_1,
/*184741*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*184744*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 0, 8,  // Results = #9
/*184752*/      OPC_EmitNode1, TARGET_VAL(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f128, 6/*#Ops*/, 9, 3, 4, 5, 6, 7,  // Results = #10
/*184764*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*184767*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::f128, 2/*#Ops*/, 10, 11, 
                // Src: (X86fand:{ *:[f128] } VR128:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>) - Complexity = 25
                // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (ANDPSrm:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[i32] }), f128mem:{ *:[iPTR] }:$src2), VR128:{ *:[i32] })
/*184775*/    /*Scope*/ 56, /*->184832*/
/*184776*/      OPC_MoveChild0,
/*184777*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*184780*/      OPC_RecordMemRef,
/*184781*/      OPC_RecordNode, // #0 = 'ld' chained node
/*184782*/      OPC_CheckFoldableChainNode,
/*184783*/      OPC_RecordChild1, // #1 = $src2
/*184784*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184786*/      OPC_CheckPredicate, 9, // Predicate_load
/*184788*/      OPC_CheckPredicate, 91, // Predicate_memopf128
/*184790*/      OPC_MoveParent,
/*184791*/      OPC_RecordChild1, // #2 = $src1
/*184792*/      OPC_CheckType, MVT::f128,
/*184794*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*184797*/      OPC_EmitMergeInputChains1_0,
/*184798*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*184801*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 2, 8,  // Results = #9
/*184809*/      OPC_EmitNode1, TARGET_VAL(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f128, 6/*#Ops*/, 9, 3, 4, 5, 6, 7,  // Results = #10
/*184821*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*184824*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::f128, 2/*#Ops*/, 10, 11, 
                // Src: (X86fand:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>, VR128:{ *:[f128] }:$src1) - Complexity = 25
                // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (ANDPSrm:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[i32] }), f128mem:{ *:[iPTR] }:$src2), VR128:{ *:[i32] })
/*184832*/    /*Scope*/ 105|128,2/*361*/, /*->185195*/
/*184834*/      OPC_RecordChild0, // #0 = $src1
/*184835*/      OPC_Scope, 64|128,2/*320*/, /*->185158*/ // 2 children in Scope
/*184838*/        OPC_RecordChild1, // #1 = $src2
/*184839*/        OPC_SwitchType /*3 cases */, 6|128,1/*134*/, MVT::f64,// ->184977
/*184843*/          OPC_Scope, 43, /*->184888*/ // 3 children in Scope
/*184845*/            OPC_CheckPatternPredicate, 168, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasDQI())
/*184847*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*184850*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*184858*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*184861*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*184869*/            OPC_EmitNode1, TARGET_VAL(X86::VANDPDrr), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*184877*/            OPC_EmitInteger, MVT::i32, X86::FR64RegClassID,
/*184880*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fand:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VANDPDrr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] })), FR64:{ *:[i32] })
/*184888*/          /*Scope*/ 43, /*->184932*/
/*184889*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*184891*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*184894*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*184902*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*184905*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*184913*/            OPC_EmitNode1, TARGET_VAL(X86::ANDPDrr), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*184921*/            OPC_EmitInteger, MVT::i32, X86::FR64RegClassID,
/*184924*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fand:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (ANDPDrr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] })), FR64:{ *:[i32] })
/*184932*/          /*Scope*/ 43, /*->184976*/
/*184933*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*184935*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*184938*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*184946*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*184949*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*184957*/            OPC_EmitNode1, TARGET_VAL(X86::VANDPDZ128rr), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*184965*/            OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/*184968*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fand:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VANDPDZ128rr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src1, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] })), FR64X:{ *:[i32] })
/*184976*/          0, /*End of Scope*/
/*184977*/        /*SwitchType*/ 6|128,1/*134*/, MVT::f32,// ->185114
/*184980*/          OPC_Scope, 43, /*->185025*/ // 3 children in Scope
/*184982*/            OPC_CheckPatternPredicate, 168, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasDQI())
/*184984*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*184987*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*184995*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*184998*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*185006*/            OPC_EmitNode1, TARGET_VAL(X86::VANDPSrr), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*185014*/            OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*185017*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f32, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fand:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VANDPSrr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] })), FR32:{ *:[i32] })
/*185025*/          /*Scope*/ 43, /*->185069*/
/*185026*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*185028*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185031*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*185039*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185042*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*185050*/            OPC_EmitNode1, TARGET_VAL(X86::ANDPSrr), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*185058*/            OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*185061*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f32, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fand:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (ANDPSrr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] })), FR32:{ *:[i32] })
/*185069*/          /*Scope*/ 43, /*->185113*/
/*185070*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*185072*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*185075*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*185083*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*185086*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*185094*/            OPC_EmitNode1, TARGET_VAL(X86::VANDPSZ128rr), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*185102*/            OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*185105*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f32, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fand:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VANDPSZ128rr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src1, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] })), FR32X:{ *:[i32] })
/*185113*/          0, /*End of Scope*/
/*185114*/        /*SwitchType*/ 41, MVT::f128,// ->185157
/*185116*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185119*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f128, 2/*#Ops*/, 0, 2,  // Results = #3
/*185127*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185130*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f128, 2/*#Ops*/, 1, 4,  // Results = #5
/*185138*/          OPC_EmitNode1, TARGET_VAL(X86::ANDPSrr), 0,
                        MVT::f128, 2/*#Ops*/, 3, 5,  // Results = #6
/*185146*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185149*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f128, 2/*#Ops*/, 6, 7, 
                    // Src: (X86fand:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (ANDPSrr:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src2, VR128:{ *:[i32] })), VR128:{ *:[i32] })
/*185157*/        0, // EndSwitchType
/*185158*/      /*Scope*/ 35, /*->185194*/
/*185159*/        OPC_MoveChild1,
/*185160*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*185163*/        OPC_RecordMemRef,
/*185164*/        OPC_RecordNode, // #1 = 'ld' chained node
/*185165*/        OPC_CheckFoldableChainNode,
/*185166*/        OPC_RecordChild1, // #2 = $src2
/*185167*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185169*/        OPC_CheckPredicate, 9, // Predicate_load
/*185171*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*185173*/        OPC_CheckPredicate, 48, // Predicate_memop
/*185175*/        OPC_MoveParent,
/*185176*/        OPC_CheckType, MVT::v4f32,
/*185178*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*185181*/        OPC_EmitMergeInputChains1_1,
/*185182*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fand:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (ANDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185194*/      0, /*End of Scope*/
/*185195*/    /*Scope*/ 36, /*->185232*/
/*185196*/      OPC_MoveChild0,
/*185197*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*185200*/      OPC_RecordMemRef,
/*185201*/      OPC_RecordNode, // #0 = 'ld' chained node
/*185202*/      OPC_CheckFoldableChainNode,
/*185203*/      OPC_RecordChild1, // #1 = $src2
/*185204*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185206*/      OPC_CheckPredicate, 9, // Predicate_load
/*185208*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*185210*/      OPC_CheckPredicate, 48, // Predicate_memop
/*185212*/      OPC_MoveParent,
/*185213*/      OPC_RecordChild1, // #2 = $src1
/*185214*/      OPC_CheckType, MVT::v4f32,
/*185216*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*185219*/      OPC_EmitMergeInputChains1_0,
/*185220*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86fand:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                // Dst: (ANDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185232*/    /*Scope*/ 12, /*->185245*/
/*185233*/      OPC_RecordChild0, // #0 = $src1
/*185234*/      OPC_RecordChild1, // #1 = $src2
/*185235*/      OPC_CheckType, MVT::v4f32,
/*185237*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ANDPSrr), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fand:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                // Dst: (ANDPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*185245*/    0, /*End of Scope*/
/*185246*/  /*SwitchOpcode*/ 17|128,4/*529*/, TARGET_VAL(X86ISD::FOR),// ->185779
/*185250*/    OPC_Scope, 56, /*->185308*/ // 5 children in Scope
/*185252*/      OPC_RecordChild0, // #0 = $src1
/*185253*/      OPC_MoveChild1,
/*185254*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*185257*/      OPC_RecordMemRef,
/*185258*/      OPC_RecordNode, // #1 = 'ld' chained node
/*185259*/      OPC_CheckFoldableChainNode,
/*185260*/      OPC_RecordChild1, // #2 = $src2
/*185261*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185263*/      OPC_CheckPredicate, 9, // Predicate_load
/*185265*/      OPC_CheckPredicate, 91, // Predicate_memopf128
/*185267*/      OPC_MoveParent,
/*185268*/      OPC_CheckType, MVT::f128,
/*185270*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*185273*/      OPC_EmitMergeInputChains1_1,
/*185274*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185277*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 0, 8,  // Results = #9
/*185285*/      OPC_EmitNode1, TARGET_VAL(X86::ORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f128, 6/*#Ops*/, 9, 3, 4, 5, 6, 7,  // Results = #10
/*185297*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185300*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::f128, 2/*#Ops*/, 10, 11, 
                // Src: (X86for:{ *:[f128] } VR128:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>) - Complexity = 25
                // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (ORPSrm:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[i32] }), f128mem:{ *:[iPTR] }:$src2), VR128:{ *:[i32] })
/*185308*/    /*Scope*/ 56, /*->185365*/
/*185309*/      OPC_MoveChild0,
/*185310*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*185313*/      OPC_RecordMemRef,
/*185314*/      OPC_RecordNode, // #0 = 'ld' chained node
/*185315*/      OPC_CheckFoldableChainNode,
/*185316*/      OPC_RecordChild1, // #1 = $src2
/*185317*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185319*/      OPC_CheckPredicate, 9, // Predicate_load
/*185321*/      OPC_CheckPredicate, 91, // Predicate_memopf128
/*185323*/      OPC_MoveParent,
/*185324*/      OPC_RecordChild1, // #2 = $src1
/*185325*/      OPC_CheckType, MVT::f128,
/*185327*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*185330*/      OPC_EmitMergeInputChains1_0,
/*185331*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185334*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 2, 8,  // Results = #9
/*185342*/      OPC_EmitNode1, TARGET_VAL(X86::ORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f128, 6/*#Ops*/, 9, 3, 4, 5, 6, 7,  // Results = #10
/*185354*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185357*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::f128, 2/*#Ops*/, 10, 11, 
                // Src: (X86for:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>, VR128:{ *:[f128] }:$src1) - Complexity = 25
                // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (ORPSrm:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[i32] }), f128mem:{ *:[iPTR] }:$src2), VR128:{ *:[i32] })
/*185365*/    /*Scope*/ 105|128,2/*361*/, /*->185728*/
/*185367*/      OPC_RecordChild0, // #0 = $src1
/*185368*/      OPC_Scope, 64|128,2/*320*/, /*->185691*/ // 2 children in Scope
/*185371*/        OPC_RecordChild1, // #1 = $src2
/*185372*/        OPC_SwitchType /*3 cases */, 6|128,1/*134*/, MVT::f64,// ->185510
/*185376*/          OPC_Scope, 43, /*->185421*/ // 3 children in Scope
/*185378*/            OPC_CheckPatternPredicate, 168, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasDQI())
/*185380*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185383*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*185391*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185394*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*185402*/            OPC_EmitNode1, TARGET_VAL(X86::VORPDrr), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*185410*/            OPC_EmitInteger, MVT::i32, X86::FR64RegClassID,
/*185413*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7, 
                      // Src: (X86for:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VORPDrr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] })), FR64:{ *:[i32] })
/*185421*/          /*Scope*/ 43, /*->185465*/
/*185422*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*185424*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185427*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*185435*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185438*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*185446*/            OPC_EmitNode1, TARGET_VAL(X86::ORPDrr), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*185454*/            OPC_EmitInteger, MVT::i32, X86::FR64RegClassID,
/*185457*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7, 
                      // Src: (X86for:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (ORPDrr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] })), FR64:{ *:[i32] })
/*185465*/          /*Scope*/ 43, /*->185509*/
/*185466*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*185468*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*185471*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*185479*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*185482*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*185490*/            OPC_EmitNode1, TARGET_VAL(X86::VORPDZ128rr), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*185498*/            OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/*185501*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7, 
                      // Src: (X86for:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VORPDZ128rr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src1, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] })), FR64X:{ *:[i32] })
/*185509*/          0, /*End of Scope*/
/*185510*/        /*SwitchType*/ 6|128,1/*134*/, MVT::f32,// ->185647
/*185513*/          OPC_Scope, 43, /*->185558*/ // 3 children in Scope
/*185515*/            OPC_CheckPatternPredicate, 168, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasDQI())
/*185517*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185520*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*185528*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185531*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*185539*/            OPC_EmitNode1, TARGET_VAL(X86::VORPSrr), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*185547*/            OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*185550*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f32, 2/*#Ops*/, 6, 7, 
                      // Src: (X86for:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VORPSrr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] })), FR32:{ *:[i32] })
/*185558*/          /*Scope*/ 43, /*->185602*/
/*185559*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*185561*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185564*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*185572*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185575*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*185583*/            OPC_EmitNode1, TARGET_VAL(X86::ORPSrr), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*185591*/            OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*185594*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f32, 2/*#Ops*/, 6, 7, 
                      // Src: (X86for:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (ORPSrr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] })), FR32:{ *:[i32] })
/*185602*/          /*Scope*/ 43, /*->185646*/
/*185603*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*185605*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*185608*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*185616*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*185619*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*185627*/            OPC_EmitNode1, TARGET_VAL(X86::VORPSZ128rr), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*185635*/            OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*185638*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f32, 2/*#Ops*/, 6, 7, 
                      // Src: (X86for:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VORPSZ128rr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src1, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] })), FR32X:{ *:[i32] })
/*185646*/          0, /*End of Scope*/
/*185647*/        /*SwitchType*/ 41, MVT::f128,// ->185690
/*185649*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185652*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f128, 2/*#Ops*/, 0, 2,  // Results = #3
/*185660*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185663*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f128, 2/*#Ops*/, 1, 4,  // Results = #5
/*185671*/          OPC_EmitNode1, TARGET_VAL(X86::ORPSrr), 0,
                        MVT::f128, 2/*#Ops*/, 3, 5,  // Results = #6
/*185679*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185682*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f128, 2/*#Ops*/, 6, 7, 
                    // Src: (X86for:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (ORPSrr:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src2, VR128:{ *:[i32] })), VR128:{ *:[i32] })
/*185690*/        0, // EndSwitchType
/*185691*/      /*Scope*/ 35, /*->185727*/
/*185692*/        OPC_MoveChild1,
/*185693*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*185696*/        OPC_RecordMemRef,
/*185697*/        OPC_RecordNode, // #1 = 'ld' chained node
/*185698*/        OPC_CheckFoldableChainNode,
/*185699*/        OPC_RecordChild1, // #2 = $src2
/*185700*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185702*/        OPC_CheckPredicate, 9, // Predicate_load
/*185704*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*185706*/        OPC_CheckPredicate, 48, // Predicate_memop
/*185708*/        OPC_MoveParent,
/*185709*/        OPC_CheckType, MVT::v4f32,
/*185711*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*185714*/        OPC_EmitMergeInputChains1_1,
/*185715*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86for:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (ORPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185727*/      0, /*End of Scope*/
/*185728*/    /*Scope*/ 36, /*->185765*/
/*185729*/      OPC_MoveChild0,
/*185730*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*185733*/      OPC_RecordMemRef,
/*185734*/      OPC_RecordNode, // #0 = 'ld' chained node
/*185735*/      OPC_CheckFoldableChainNode,
/*185736*/      OPC_RecordChild1, // #1 = $src2
/*185737*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185739*/      OPC_CheckPredicate, 9, // Predicate_load
/*185741*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*185743*/      OPC_CheckPredicate, 48, // Predicate_memop
/*185745*/      OPC_MoveParent,
/*185746*/      OPC_RecordChild1, // #2 = $src1
/*185747*/      OPC_CheckType, MVT::v4f32,
/*185749*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*185752*/      OPC_EmitMergeInputChains1_0,
/*185753*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86for:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                // Dst: (ORPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185765*/    /*Scope*/ 12, /*->185778*/
/*185766*/      OPC_RecordChild0, // #0 = $src1
/*185767*/      OPC_RecordChild1, // #1 = $src2
/*185768*/      OPC_CheckType, MVT::v4f32,
/*185770*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ORPSrr), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86for:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                // Dst: (ORPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*185778*/    0, /*End of Scope*/
/*185779*/  /*SwitchOpcode*/ 17|128,4/*529*/, TARGET_VAL(X86ISD::FXOR),// ->186312
/*185783*/    OPC_Scope, 56, /*->185841*/ // 5 children in Scope
/*185785*/      OPC_RecordChild0, // #0 = $src1
/*185786*/      OPC_MoveChild1,
/*185787*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*185790*/      OPC_RecordMemRef,
/*185791*/      OPC_RecordNode, // #1 = 'ld' chained node
/*185792*/      OPC_CheckFoldableChainNode,
/*185793*/      OPC_RecordChild1, // #2 = $src2
/*185794*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185796*/      OPC_CheckPredicate, 9, // Predicate_load
/*185798*/      OPC_CheckPredicate, 91, // Predicate_memopf128
/*185800*/      OPC_MoveParent,
/*185801*/      OPC_CheckType, MVT::f128,
/*185803*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*185806*/      OPC_EmitMergeInputChains1_1,
/*185807*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185810*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 0, 8,  // Results = #9
/*185818*/      OPC_EmitNode1, TARGET_VAL(X86::XORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f128, 6/*#Ops*/, 9, 3, 4, 5, 6, 7,  // Results = #10
/*185830*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185833*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::f128, 2/*#Ops*/, 10, 11, 
                // Src: (X86fxor:{ *:[f128] } VR128:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>) - Complexity = 25
                // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (XORPSrm:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[i32] }), f128mem:{ *:[iPTR] }:$src2), VR128:{ *:[i32] })
/*185841*/    /*Scope*/ 56, /*->185898*/
/*185842*/      OPC_MoveChild0,
/*185843*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*185846*/      OPC_RecordMemRef,
/*185847*/      OPC_RecordNode, // #0 = 'ld' chained node
/*185848*/      OPC_CheckFoldableChainNode,
/*185849*/      OPC_RecordChild1, // #1 = $src2
/*185850*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185852*/      OPC_CheckPredicate, 9, // Predicate_load
/*185854*/      OPC_CheckPredicate, 91, // Predicate_memopf128
/*185856*/      OPC_MoveParent,
/*185857*/      OPC_RecordChild1, // #2 = $src1
/*185858*/      OPC_CheckType, MVT::f128,
/*185860*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*185863*/      OPC_EmitMergeInputChains1_0,
/*185864*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185867*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 2, 8,  // Results = #9
/*185875*/      OPC_EmitNode1, TARGET_VAL(X86::XORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f128, 6/*#Ops*/, 9, 3, 4, 5, 6, 7,  // Results = #10
/*185887*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185890*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::f128, 2/*#Ops*/, 10, 11, 
                // Src: (X86fxor:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>, VR128:{ *:[f128] }:$src1) - Complexity = 25
                // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (XORPSrm:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[i32] }), f128mem:{ *:[iPTR] }:$src2), VR128:{ *:[i32] })
/*185898*/    /*Scope*/ 105|128,2/*361*/, /*->186261*/
/*185900*/      OPC_RecordChild0, // #0 = $src1
/*185901*/      OPC_Scope, 64|128,2/*320*/, /*->186224*/ // 2 children in Scope
/*185904*/        OPC_RecordChild1, // #1 = $src2
/*185905*/        OPC_SwitchType /*3 cases */, 6|128,1/*134*/, MVT::f64,// ->186043
/*185909*/          OPC_Scope, 43, /*->185954*/ // 3 children in Scope
/*185911*/            OPC_CheckPatternPredicate, 168, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasDQI())
/*185913*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185916*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*185924*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185927*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*185935*/            OPC_EmitNode1, TARGET_VAL(X86::VXORPDrr), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*185943*/            OPC_EmitInteger, MVT::i32, X86::FR64RegClassID,
/*185946*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fxor:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VXORPDrr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] })), FR64:{ *:[i32] })
/*185954*/          /*Scope*/ 43, /*->185998*/
/*185955*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*185957*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185960*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*185968*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*185971*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*185979*/            OPC_EmitNode1, TARGET_VAL(X86::XORPDrr), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*185987*/            OPC_EmitInteger, MVT::i32, X86::FR64RegClassID,
/*185990*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fxor:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (XORPDrr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] })), FR64:{ *:[i32] })
/*185998*/          /*Scope*/ 43, /*->186042*/
/*185999*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*186001*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*186004*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*186012*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*186015*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*186023*/            OPC_EmitNode1, TARGET_VAL(X86::VXORPDZ128rr), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*186031*/            OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/*186034*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fxor:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VXORPDZ128rr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src1, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] })), FR64X:{ *:[i32] })
/*186042*/          0, /*End of Scope*/
/*186043*/        /*SwitchType*/ 6|128,1/*134*/, MVT::f32,// ->186180
/*186046*/          OPC_Scope, 43, /*->186091*/ // 3 children in Scope
/*186048*/            OPC_CheckPatternPredicate, 168, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasDQI())
/*186050*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*186053*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*186061*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*186064*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*186072*/            OPC_EmitNode1, TARGET_VAL(X86::VXORPSrr), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*186080*/            OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*186083*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f32, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fxor:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VXORPSrr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] })), FR32:{ *:[i32] })
/*186091*/          /*Scope*/ 43, /*->186135*/
/*186092*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*186094*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*186097*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*186105*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*186108*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*186116*/            OPC_EmitNode1, TARGET_VAL(X86::XORPSrr), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*186124*/            OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*186127*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f32, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fxor:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XORPSrr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] })), FR32:{ *:[i32] })
/*186135*/          /*Scope*/ 43, /*->186179*/
/*186136*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*186138*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*186141*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*186149*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*186152*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*186160*/            OPC_EmitNode1, TARGET_VAL(X86::VXORPSZ128rr), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*186168*/            OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*186171*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f32, 2/*#Ops*/, 6, 7, 
                      // Src: (X86fxor:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VXORPSZ128rr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src1, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] })), FR32X:{ *:[i32] })
/*186179*/          0, /*End of Scope*/
/*186180*/        /*SwitchType*/ 41, MVT::f128,// ->186223
/*186182*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*186185*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f128, 2/*#Ops*/, 0, 2,  // Results = #3
/*186193*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*186196*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f128, 2/*#Ops*/, 1, 4,  // Results = #5
/*186204*/          OPC_EmitNode1, TARGET_VAL(X86::XORPSrr), 0,
                        MVT::f128, 2/*#Ops*/, 3, 5,  // Results = #6
/*186212*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*186215*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f128, 2/*#Ops*/, 6, 7, 
                    // Src: (X86fxor:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (XORPSrr:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f128] } VR128:{ *:[f128] }:$src2, VR128:{ *:[i32] })), VR128:{ *:[i32] })
/*186223*/        0, // EndSwitchType
/*186224*/      /*Scope*/ 35, /*->186260*/
/*186225*/        OPC_MoveChild1,
/*186226*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*186229*/        OPC_RecordMemRef,
/*186230*/        OPC_RecordNode, // #1 = 'ld' chained node
/*186231*/        OPC_CheckFoldableChainNode,
/*186232*/        OPC_RecordChild1, // #2 = $src2
/*186233*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186235*/        OPC_CheckPredicate, 9, // Predicate_load
/*186237*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*186239*/        OPC_CheckPredicate, 48, // Predicate_memop
/*186241*/        OPC_MoveParent,
/*186242*/        OPC_CheckType, MVT::v4f32,
/*186244*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*186247*/        OPC_EmitMergeInputChains1_1,
/*186248*/        OPC_MorphNodeTo1, TARGET_VAL(X86::XORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fxor:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (XORPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186260*/      0, /*End of Scope*/
/*186261*/    /*Scope*/ 36, /*->186298*/
/*186262*/      OPC_MoveChild0,
/*186263*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*186266*/      OPC_RecordMemRef,
/*186267*/      OPC_RecordNode, // #0 = 'ld' chained node
/*186268*/      OPC_CheckFoldableChainNode,
/*186269*/      OPC_RecordChild1, // #1 = $src2
/*186270*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186272*/      OPC_CheckPredicate, 9, // Predicate_load
/*186274*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*186276*/      OPC_CheckPredicate, 48, // Predicate_memop
/*186278*/      OPC_MoveParent,
/*186279*/      OPC_RecordChild1, // #2 = $src1
/*186280*/      OPC_CheckType, MVT::v4f32,
/*186282*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*186285*/      OPC_EmitMergeInputChains1_0,
/*186286*/      OPC_MorphNodeTo1, TARGET_VAL(X86::XORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86fxor:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                // Dst: (XORPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186298*/    /*Scope*/ 12, /*->186311*/
/*186299*/      OPC_RecordChild0, // #0 = $src1
/*186300*/      OPC_RecordChild1, // #1 = $src2
/*186301*/      OPC_CheckType, MVT::v4f32,
/*186303*/      OPC_MorphNodeTo1, TARGET_VAL(X86::XORPSrr), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fxor:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                // Dst: (XORPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*186311*/    0, /*End of Scope*/
/*186312*/  /*SwitchOpcode*/ 70|128,1/*198*/, TARGET_VAL(X86ISD::FILD),// ->186514
/*186316*/    OPC_RecordMemRef,
/*186317*/    OPC_RecordNode, // #0 = 'X86fild' chained node
/*186318*/    OPC_RecordChild1, // #1 = $src
/*186319*/    OPC_MoveChild2,
/*186320*/    OPC_Scope, 63, /*->186385*/ // 3 children in Scope
/*186322*/      OPC_CheckValueType, MVT::i16,
/*186324*/      OPC_MoveParent,
/*186325*/      OPC_SwitchType /*3 cases */, 18, MVT::f32,// ->186346
/*186328*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*186330*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186333*/        OPC_EmitMergeInputChains1_0,
/*186334*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ILD_Fp16m32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src, i16:{ *:[Other] }) - Complexity = 21
                  // Dst: (ILD_Fp16m32:{ *:[f32] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186346*/      /*SwitchType*/ 18, MVT::f64,// ->186366
/*186348*/        OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*186350*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186353*/        OPC_EmitMergeInputChains1_0,
/*186354*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ILD_Fp16m64), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src, i16:{ *:[Other] }) - Complexity = 21
                  // Dst: (ILD_Fp16m64:{ *:[f64] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186366*/      /*SwitchType*/ 16, MVT::f80,// ->186384
/*186368*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186371*/        OPC_EmitMergeInputChains1_0,
/*186372*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ILD_Fp16m80), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f80, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src, i16:{ *:[Other] }) - Complexity = 21
                  // Dst: (ILD_Fp16m80:{ *:[f80] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186384*/      0, // EndSwitchType
/*186385*/    /*Scope*/ 63, /*->186449*/
/*186386*/      OPC_CheckValueType, MVT::i32,
/*186388*/      OPC_MoveParent,
/*186389*/      OPC_SwitchType /*3 cases */, 18, MVT::f32,// ->186410
/*186392*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*186394*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186397*/        OPC_EmitMergeInputChains1_0,
/*186398*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ILD_Fp32m32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src, i32:{ *:[Other] }) - Complexity = 21
                  // Dst: (ILD_Fp32m32:{ *:[f32] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186410*/      /*SwitchType*/ 18, MVT::f64,// ->186430
/*186412*/        OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*186414*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186417*/        OPC_EmitMergeInputChains1_0,
/*186418*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ILD_Fp32m64), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src, i32:{ *:[Other] }) - Complexity = 21
                  // Dst: (ILD_Fp32m64:{ *:[f64] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186430*/      /*SwitchType*/ 16, MVT::f80,// ->186448
/*186432*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186435*/        OPC_EmitMergeInputChains1_0,
/*186436*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ILD_Fp32m80), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f80, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src, i32:{ *:[Other] }) - Complexity = 21
                  // Dst: (ILD_Fp32m80:{ *:[f80] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186448*/      0, // EndSwitchType
/*186449*/    /*Scope*/ 63, /*->186513*/
/*186450*/      OPC_CheckValueType, MVT::i64,
/*186452*/      OPC_MoveParent,
/*186453*/      OPC_SwitchType /*3 cases */, 18, MVT::f32,// ->186474
/*186456*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*186458*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186461*/        OPC_EmitMergeInputChains1_0,
/*186462*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ILD_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src, i64:{ *:[Other] }) - Complexity = 21
                  // Dst: (ILD_Fp64m32:{ *:[f32] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186474*/      /*SwitchType*/ 18, MVT::f64,// ->186494
/*186476*/        OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*186478*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186481*/        OPC_EmitMergeInputChains1_0,
/*186482*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ILD_Fp64m64), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src, i64:{ *:[Other] }) - Complexity = 21
                  // Dst: (ILD_Fp64m64:{ *:[f64] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186494*/      /*SwitchType*/ 16, MVT::f80,// ->186512
/*186496*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186499*/        OPC_EmitMergeInputChains1_0,
/*186500*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ILD_Fp64m80), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f80, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src, i64:{ *:[Other] }) - Complexity = 21
                  // Dst: (ILD_Fp64m80:{ *:[f80] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186512*/      0, // EndSwitchType
/*186513*/    0, /*End of Scope*/
/*186514*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::FLD),// ->186589
/*186517*/    OPC_RecordMemRef,
/*186518*/    OPC_RecordNode, // #0 = 'X86fld' chained node
/*186519*/    OPC_RecordChild1, // #1 = $src
/*186520*/    OPC_MoveChild2,
/*186521*/    OPC_Scope, 21, /*->186544*/ // 3 children in Scope
/*186523*/      OPC_CheckValueType, MVT::f32,
/*186525*/      OPC_MoveParent,
/*186526*/      OPC_CheckType, MVT::f32,
/*186528*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186531*/      OPC_EmitMergeInputChains1_0,
/*186532*/      OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fld:{ *:[f32] } addr:{ *:[iPTR] }:$src, f32:{ *:[Other] }) - Complexity = 21
                // Dst: (LD_Fp32m:{ *:[f32] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186544*/    /*Scope*/ 21, /*->186566*/
/*186545*/      OPC_CheckValueType, MVT::f64,
/*186547*/      OPC_MoveParent,
/*186548*/      OPC_CheckType, MVT::f64,
/*186550*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186553*/      OPC_EmitMergeInputChains1_0,
/*186554*/      OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fld:{ *:[f64] } addr:{ *:[iPTR] }:$src, f64:{ *:[Other] }) - Complexity = 21
                // Dst: (LD_Fp64m:{ *:[f64] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186566*/    /*Scope*/ 21, /*->186588*/
/*186567*/      OPC_CheckValueType, MVT::f80,
/*186569*/      OPC_MoveParent,
/*186570*/      OPC_CheckType, MVT::f80,
/*186572*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186575*/      OPC_EmitMergeInputChains1_0,
/*186576*/      OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp80m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f80, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fld:{ *:[f80] } addr:{ *:[iPTR] }:$src, f80:{ *:[Other] }) - Complexity = 21
                // Dst: (LD_Fp80m:{ *:[f80] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186588*/    0, /*End of Scope*/
/*186589*/  /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FILD_FLAG),// ->186617
/*186592*/    OPC_RecordMemRef,
/*186593*/    OPC_RecordNode, // #0 = 'X86fildflag' chained node
/*186594*/    OPC_RecordChild1, // #1 = $src
/*186595*/    OPC_MoveChild2,
/*186596*/    OPC_CheckValueType, MVT::i64,
/*186598*/    OPC_MoveParent,
/*186599*/    OPC_CheckType, MVT::f64,
/*186601*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*186604*/    OPC_EmitMergeInputChains1_0,
/*186605*/    OPC_MorphNodeTo2, TARGET_VAL(X86::ILD_Fp64m64), 0|OPFL_Chain|OPFL_GlueOutput|OPFL_MemRefs,
                  MVT::f64, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86fildflag:{ *:[f64] } addr:{ *:[iPTR] }:$src, i64:{ *:[Other] }) - Complexity = 21
              // Dst: (ILD_Fp64m64:{ *:[f64] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*186617*/  /*SwitchOpcode*/ 108|128,48/*6252*/, TARGET_VAL(X86ISD::SELECTS),// ->192873
/*186621*/    OPC_RecordChild0, // #0 = $mask
/*186622*/    OPC_Scope, 74|128,1/*202*/, /*->186827*/ // 2 children in Scope
/*186625*/      OPC_RecordChild1, // #1 = $src1
/*186626*/      OPC_Scope, 92, /*->186720*/ // 2 children in Scope
/*186628*/        OPC_MoveChild2,
/*186629*/        OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*186632*/        OPC_Scope, 42, /*->186676*/ // 2 children in Scope
/*186634*/          OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*186636*/          OPC_MoveParent,
/*186637*/          OPC_CheckType, MVT::f32,
/*186639*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/*186645*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*186648*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*186656*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrrkz), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 2, 4,  // Results = #5
/*186665*/          OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*186668*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 5, 6, 
                    // Src: (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, FR32X:{ *:[f32] }:$src1, (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VMOVSSZrrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (IMPLICIT_DEF:{ *:[v4f32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src1, VR128X:{ *:[i32] })), FR32X:{ *:[i32] })
/*186676*/        /*Scope*/ 42, /*->186719*/
/*186677*/          OPC_CheckPredicate, 93, // Predicate_fpimm0
/*186679*/          OPC_MoveParent,
/*186680*/          OPC_CheckType, MVT::f64,
/*186682*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #2
/*186688*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*186691*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*186699*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrrkz), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 2, 4,  // Results = #5
/*186708*/          OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/*186711*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6, 
                    // Src: (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, FR64X:{ *:[f64] }:$src1, (fpimm:{ *:[f64] })<<P:Predicate_fpimm0>>) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VMOVSDZrrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (IMPLICIT_DEF:{ *:[v2f64] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src1, VR128X:{ *:[i32] })), FR64X:{ *:[i32] })
/*186719*/        0, /*End of Scope*/
/*186720*/      /*Scope*/ 105, /*->186826*/
/*186721*/        OPC_RecordChild2, // #2 = $src2
/*186722*/        OPC_SwitchType /*2 cases */, 49, MVT::f32,// ->186774
/*186725*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*186728*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*186736*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #5
/*186742*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*186745*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 6,  // Results = #7
/*186753*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrrk), 0,
                        MVT::v4f32, 4/*#Ops*/, 4, 0, 5, 7,  // Results = #8
/*186763*/          OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*186766*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 8, 9, 
                    // Src: (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VMOVSSZrrk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, (IMPLICIT_DEF:{ *:[v4f32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src1, VR128X:{ *:[i32] })), FR32X:{ *:[i32] })
/*186774*/        /*SwitchType*/ 49, MVT::f64,// ->186825
/*186776*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*186779*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*186787*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #5
/*186793*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*186796*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 1, 6,  // Results = #7
/*186804*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrrk), 0,
                        MVT::v2f64, 4/*#Ops*/, 4, 0, 5, 7,  // Results = #8
/*186814*/          OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/*186817*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 8, 9, 
                    // Src: (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VMOVSDZrrk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, (IMPLICIT_DEF:{ *:[v2f64] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src1, VR128X:{ *:[i32] })), FR64X:{ *:[i32] })
/*186825*/        0, // EndSwitchType
/*186826*/      0, /*End of Scope*/
/*186827*/    /*Scope*/ 27|128,47/*6043*/, /*->192872*/
/*186829*/      OPC_MoveChild1,
/*186830*/      OPC_SwitchOpcode /*28 cases */, 19|128,3/*403*/, TARGET_VAL(X86ISD::VFIXUPIMMS),// ->187238
/*186835*/        OPC_RecordChild0, // #1 = $src1
/*186836*/        OPC_RecordChild1, // #2 = $src2
/*186837*/        OPC_Scope, 66|128,1/*194*/, /*->187034*/ // 2 children in Scope
/*186840*/          OPC_MoveChild2,
/*186841*/          OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*186844*/          OPC_MoveChild0,
/*186845*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*186848*/          OPC_RecordMemRef,
/*186849*/          OPC_RecordNode, // #3 = 'ld' chained node
/*186850*/          OPC_CheckFoldableChainNode,
/*186851*/          OPC_RecordChild1, // #4 = $src3
/*186852*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186854*/          OPC_SwitchType /*2 cases */, 87, MVT::i32,// ->186944
/*186857*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*186859*/            OPC_MoveParent,
/*186860*/            OPC_MoveParent,
/*186861*/            OPC_RecordChild3, // #5 = $src4
/*186862*/            OPC_MoveChild3,
/*186863*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*186866*/            OPC_MoveParent,
/*186867*/            OPC_CheckChild4Integer, 4, 
/*186869*/            OPC_MoveParent,
/*186870*/            OPC_Scope, 41, /*->186913*/ // 2 children in Scope
/*186872*/              OPC_MoveChild2,
/*186873*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*186876*/              OPC_MoveChild0,
/*186877*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*186880*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*186882*/              OPC_CheckType, MVT::v4i32,
/*186884*/              OPC_MoveParent,
/*186885*/              OPC_MoveParent,
/*186886*/              OPC_CheckType, MVT::v4f32,
/*186888*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186890*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*186893*/              OPC_EmitMergeInputChains, 1, 3, 
/*186896*/              OPC_EmitConvertToTarget, 5,
/*186898*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 46
                        // Dst: (VFIXUPIMMSSZrmikz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*186913*/            /*Scope*/ 29, /*->186943*/
/*186914*/              OPC_CheckChild2Same, 1,
/*186916*/              OPC_CheckType, MVT::v4f32,
/*186918*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186920*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*186923*/              OPC_EmitMergeInputChains, 1, 3, 
/*186926*/              OPC_EmitConvertToTarget, 5,
/*186928*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src1) - Complexity = 39
                        // Dst: (VFIXUPIMMSSZrmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*186943*/            0, /*End of Scope*/
/*186944*/          /*SwitchType*/ 87, MVT::i64,// ->187033
/*186946*/            OPC_CheckPredicate, 9, // Predicate_load
/*186948*/            OPC_MoveParent,
/*186949*/            OPC_MoveParent,
/*186950*/            OPC_RecordChild3, // #5 = $src4
/*186951*/            OPC_MoveChild3,
/*186952*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*186955*/            OPC_MoveParent,
/*186956*/            OPC_CheckChild4Integer, 4, 
/*186958*/            OPC_MoveParent,
/*186959*/            OPC_Scope, 41, /*->187002*/ // 2 children in Scope
/*186961*/              OPC_MoveChild2,
/*186962*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*186965*/              OPC_MoveChild0,
/*186966*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*186969*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*186971*/              OPC_CheckType, MVT::v4i32,
/*186973*/              OPC_MoveParent,
/*186974*/              OPC_MoveParent,
/*186975*/              OPC_CheckType, MVT::v2f64,
/*186977*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186979*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*186982*/              OPC_EmitMergeInputChains, 1, 3, 
/*186985*/              OPC_EmitConvertToTarget, 5,
/*186987*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 46
                        // Dst: (VFIXUPIMMSDZrmikz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*187002*/            /*Scope*/ 29, /*->187032*/
/*187003*/              OPC_CheckChild2Same, 1,
/*187005*/              OPC_CheckType, MVT::v2f64,
/*187007*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187009*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*187012*/              OPC_EmitMergeInputChains, 1, 3, 
/*187015*/              OPC_EmitConvertToTarget, 5,
/*187017*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src1) - Complexity = 39
                        // Dst: (VFIXUPIMMSDZrmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*187032*/            0, /*End of Scope*/
/*187033*/          0, // EndSwitchType
/*187034*/        /*Scope*/ 73|128,1/*201*/, /*->187237*/
/*187036*/          OPC_RecordChild2, // #3 = $src3
/*187037*/          OPC_RecordChild3, // #4 = $src4
/*187038*/          OPC_MoveChild3,
/*187039*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187042*/          OPC_MoveParent,
/*187043*/          OPC_Scope, 95, /*->187140*/ // 2 children in Scope
/*187045*/            OPC_CheckChild4Integer, 4, 
/*187047*/            OPC_MoveParent,
/*187048*/            OPC_Scope, 50, /*->187100*/ // 2 children in Scope
/*187050*/              OPC_MoveChild2,
/*187051*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*187054*/              OPC_MoveChild0,
/*187055*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*187058*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*187060*/              OPC_CheckType, MVT::v4i32,
/*187062*/              OPC_MoveParent,
/*187063*/              OPC_MoveParent,
/*187064*/              OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->187082
/*187067*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187069*/                OPC_EmitConvertToTarget, 4,
/*187071*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrrikz), 0,
                              MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VFIXUPIMMSSZrrikz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*187082*/              /*SwitchType*/ 15, MVT::v2f64,// ->187099
/*187084*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187086*/                OPC_EmitConvertToTarget, 4,
/*187088*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrrikz), 0,
                              MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VFIXUPIMMSDZrrikz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*187099*/              0, // EndSwitchType
/*187100*/            /*Scope*/ 38, /*->187139*/
/*187101*/              OPC_CheckChild2Same, 1,
/*187103*/              OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->187121
/*187106*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187108*/                OPC_EmitConvertToTarget, 4,
/*187110*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrrik), 0,
                              MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src1) - Complexity = 14
                          // Dst: (VFIXUPIMMSSZrrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*187121*/              /*SwitchType*/ 15, MVT::v2f64,// ->187138
/*187123*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187125*/                OPC_EmitConvertToTarget, 4,
/*187127*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrrik), 0,
                              MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src1) - Complexity = 14
                          // Dst: (VFIXUPIMMSDZrrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*187138*/              0, // EndSwitchType
/*187139*/            0, /*End of Scope*/
/*187140*/          /*Scope*/ 95, /*->187236*/
/*187141*/            OPC_CheckChild4Integer, 8, 
/*187143*/            OPC_MoveParent,
/*187144*/            OPC_Scope, 50, /*->187196*/ // 2 children in Scope
/*187146*/              OPC_MoveChild2,
/*187147*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*187150*/              OPC_MoveChild0,
/*187151*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*187154*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*187156*/              OPC_CheckType, MVT::v4i32,
/*187158*/              OPC_MoveParent,
/*187159*/              OPC_MoveParent,
/*187160*/              OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->187178
/*187163*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187165*/                OPC_EmitConvertToTarget, 4,
/*187167*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrribkz), 0,
                              MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VFIXUPIMMSSZrribkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*187178*/              /*SwitchType*/ 15, MVT::v2f64,// ->187195
/*187180*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187182*/                OPC_EmitConvertToTarget, 4,
/*187184*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrribkz), 0,
                              MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VFIXUPIMMSDZrribkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*187195*/              0, // EndSwitchType
/*187196*/            /*Scope*/ 38, /*->187235*/
/*187197*/              OPC_CheckChild2Same, 1,
/*187199*/              OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->187217
/*187202*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187204*/                OPC_EmitConvertToTarget, 4,
/*187206*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrribk), 0,
                              MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src1) - Complexity = 14
                          // Dst: (VFIXUPIMMSSZrribk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*187217*/              /*SwitchType*/ 15, MVT::v2f64,// ->187234
/*187219*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187221*/                OPC_EmitConvertToTarget, 4,
/*187223*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrribk), 0,
                              MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmScalar:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src1) - Complexity = 14
                          // Dst: (VFIXUPIMMSDZrribk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*187234*/              0, // EndSwitchType
/*187235*/            0, /*End of Scope*/
/*187236*/          0, /*End of Scope*/
/*187237*/        0, /*End of Scope*/
/*187238*/      /*SwitchOpcode*/ 23|128,2/*279*/, TARGET_VAL(X86ISD::VRANGES),// ->187521
/*187242*/        OPC_RecordChild0, // #1 = $src1
/*187243*/        OPC_Scope, 48|128,1/*176*/, /*->187422*/ // 2 children in Scope
/*187246*/          OPC_MoveChild1,
/*187247*/          OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*187250*/          OPC_MoveChild0,
/*187251*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*187254*/          OPC_RecordMemRef,
/*187255*/          OPC_RecordNode, // #2 = 'ld' chained node
/*187256*/          OPC_CheckFoldableChainNode,
/*187257*/          OPC_RecordChild1, // #3 = $src2
/*187258*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*187260*/          OPC_CheckPredicate, 9, // Predicate_load
/*187262*/          OPC_SwitchType /*2 cases */, 77, MVT::f64,// ->187342
/*187265*/            OPC_MoveParent,
/*187266*/            OPC_MoveParent,
/*187267*/            OPC_RecordChild2, // #4 = $src3
/*187268*/            OPC_MoveChild2,
/*187269*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187272*/            OPC_MoveParent,
/*187273*/            OPC_MoveParent,
/*187274*/            OPC_Scope, 38, /*->187314*/ // 2 children in Scope
/*187276*/              OPC_MoveChild2,
/*187277*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*187280*/              OPC_MoveChild0,
/*187281*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*187284*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*187286*/              OPC_CheckType, MVT::v4i32,
/*187288*/              OPC_MoveParent,
/*187289*/              OPC_MoveParent,
/*187290*/              OPC_CheckType, MVT::v2f64,
/*187292*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187294*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187297*/              OPC_EmitMergeInputChains1_2,
/*187298*/              OPC_EmitConvertToTarget, 4,
/*187300*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VRANGESDZrmikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187314*/            /*Scope*/ 26, /*->187341*/
/*187315*/              OPC_RecordChild2, // #5 = $src0
/*187316*/              OPC_CheckType, MVT::v2f64,
/*187318*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187320*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*187323*/              OPC_EmitMergeInputChains1_2,
/*187324*/              OPC_EmitConvertToTarget, 4,
/*187326*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                        // Dst: (VRANGESDZrmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187341*/            0, /*End of Scope*/
/*187342*/          /*SwitchType*/ 77, MVT::f32,// ->187421
/*187344*/            OPC_MoveParent,
/*187345*/            OPC_MoveParent,
/*187346*/            OPC_RecordChild2, // #4 = $src3
/*187347*/            OPC_MoveChild2,
/*187348*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187351*/            OPC_MoveParent,
/*187352*/            OPC_MoveParent,
/*187353*/            OPC_Scope, 38, /*->187393*/ // 2 children in Scope
/*187355*/              OPC_MoveChild2,
/*187356*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*187359*/              OPC_MoveChild0,
/*187360*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*187363*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*187365*/              OPC_CheckType, MVT::v4i32,
/*187367*/              OPC_MoveParent,
/*187368*/              OPC_MoveParent,
/*187369*/              OPC_CheckType, MVT::v4f32,
/*187371*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187373*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187376*/              OPC_EmitMergeInputChains1_2,
/*187377*/              OPC_EmitConvertToTarget, 4,
/*187379*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VRANGESSZrmikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187393*/            /*Scope*/ 26, /*->187420*/
/*187394*/              OPC_RecordChild2, // #5 = $src0
/*187395*/              OPC_CheckType, MVT::v4f32,
/*187397*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187399*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*187402*/              OPC_EmitMergeInputChains1_2,
/*187403*/              OPC_EmitConvertToTarget, 4,
/*187405*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 34
                        // Dst: (VRANGESSZrmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187420*/            0, /*End of Scope*/
/*187421*/          0, // EndSwitchType
/*187422*/        /*Scope*/ 97, /*->187520*/
/*187423*/          OPC_RecordChild1, // #2 = $src2
/*187424*/          OPC_RecordChild2, // #3 = $src3
/*187425*/          OPC_MoveChild2,
/*187426*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187429*/          OPC_MoveParent,
/*187430*/          OPC_MoveParent,
/*187431*/          OPC_Scope, 48, /*->187481*/ // 2 children in Scope
/*187433*/            OPC_MoveChild2,
/*187434*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*187437*/            OPC_MoveChild0,
/*187438*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*187441*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*187443*/            OPC_CheckType, MVT::v4i32,
/*187445*/            OPC_MoveParent,
/*187446*/            OPC_MoveParent,
/*187447*/            OPC_SwitchType /*2 cases */, 14, MVT::v2f64,// ->187464
/*187450*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187452*/              OPC_EmitConvertToTarget, 3,
/*187454*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrrikz), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VRANGESDZrrikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*187464*/            /*SwitchType*/ 14, MVT::v4f32,// ->187480
/*187466*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187468*/              OPC_EmitConvertToTarget, 3,
/*187470*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrrikz), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VRANGESSZrrikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*187480*/            0, // EndSwitchType
/*187481*/          /*Scope*/ 37, /*->187519*/
/*187482*/            OPC_RecordChild2, // #4 = $src0
/*187483*/            OPC_SwitchType /*2 cases */, 15, MVT::v2f64,// ->187501
/*187486*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187488*/              OPC_EmitConvertToTarget, 3,
/*187490*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrrik), 0,
                            MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                        // Dst: (VRANGESDZrrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*187501*/            /*SwitchType*/ 15, MVT::v4f32,// ->187518
/*187503*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187505*/              OPC_EmitConvertToTarget, 3,
/*187507*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrrik), 0,
                            MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VRANGESSZrrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*187518*/            0, // EndSwitchType
/*187519*/          0, /*End of Scope*/
/*187520*/        0, /*End of Scope*/
/*187521*/      /*SwitchOpcode*/ 23|128,2/*279*/, TARGET_VAL(X86ISD::VREDUCES),// ->187804
/*187525*/        OPC_RecordChild0, // #1 = $src1
/*187526*/        OPC_Scope, 48|128,1/*176*/, /*->187705*/ // 2 children in Scope
/*187529*/          OPC_MoveChild1,
/*187530*/          OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*187533*/          OPC_MoveChild0,
/*187534*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*187537*/          OPC_RecordMemRef,
/*187538*/          OPC_RecordNode, // #2 = 'ld' chained node
/*187539*/          OPC_CheckFoldableChainNode,
/*187540*/          OPC_RecordChild1, // #3 = $src2
/*187541*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*187543*/          OPC_CheckPredicate, 9, // Predicate_load
/*187545*/          OPC_SwitchType /*2 cases */, 77, MVT::f64,// ->187625
/*187548*/            OPC_MoveParent,
/*187549*/            OPC_MoveParent,
/*187550*/            OPC_RecordChild2, // #4 = $src3
/*187551*/            OPC_MoveChild2,
/*187552*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187555*/            OPC_MoveParent,
/*187556*/            OPC_MoveParent,
/*187557*/            OPC_Scope, 38, /*->187597*/ // 2 children in Scope
/*187559*/              OPC_MoveChild2,
/*187560*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*187563*/              OPC_MoveChild0,
/*187564*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*187567*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*187569*/              OPC_CheckType, MVT::v4i32,
/*187571*/              OPC_MoveParent,
/*187572*/              OPC_MoveParent,
/*187573*/              OPC_CheckType, MVT::v2f64,
/*187575*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187577*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187580*/              OPC_EmitMergeInputChains1_2,
/*187581*/              OPC_EmitConvertToTarget, 4,
/*187583*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VREDUCESDZrmikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187597*/            /*Scope*/ 26, /*->187624*/
/*187598*/              OPC_RecordChild2, // #5 = $src0
/*187599*/              OPC_CheckType, MVT::v2f64,
/*187601*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187603*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*187606*/              OPC_EmitMergeInputChains1_2,
/*187607*/              OPC_EmitConvertToTarget, 4,
/*187609*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                        // Dst: (VREDUCESDZrmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187624*/            0, /*End of Scope*/
/*187625*/          /*SwitchType*/ 77, MVT::f32,// ->187704
/*187627*/            OPC_MoveParent,
/*187628*/            OPC_MoveParent,
/*187629*/            OPC_RecordChild2, // #4 = $src3
/*187630*/            OPC_MoveChild2,
/*187631*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187634*/            OPC_MoveParent,
/*187635*/            OPC_MoveParent,
/*187636*/            OPC_Scope, 38, /*->187676*/ // 2 children in Scope
/*187638*/              OPC_MoveChild2,
/*187639*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*187642*/              OPC_MoveChild0,
/*187643*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*187646*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*187648*/              OPC_CheckType, MVT::v4i32,
/*187650*/              OPC_MoveParent,
/*187651*/              OPC_MoveParent,
/*187652*/              OPC_CheckType, MVT::v4f32,
/*187654*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187656*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187659*/              OPC_EmitMergeInputChains1_2,
/*187660*/              OPC_EmitConvertToTarget, 4,
/*187662*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VREDUCESSZrmikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187676*/            /*Scope*/ 26, /*->187703*/
/*187677*/              OPC_RecordChild2, // #5 = $src0
/*187678*/              OPC_CheckType, MVT::v4f32,
/*187680*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187682*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*187685*/              OPC_EmitMergeInputChains1_2,
/*187686*/              OPC_EmitConvertToTarget, 4,
/*187688*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 34
                        // Dst: (VREDUCESSZrmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187703*/            0, /*End of Scope*/
/*187704*/          0, // EndSwitchType
/*187705*/        /*Scope*/ 97, /*->187803*/
/*187706*/          OPC_RecordChild1, // #2 = $src2
/*187707*/          OPC_RecordChild2, // #3 = $src3
/*187708*/          OPC_MoveChild2,
/*187709*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187712*/          OPC_MoveParent,
/*187713*/          OPC_MoveParent,
/*187714*/          OPC_Scope, 48, /*->187764*/ // 2 children in Scope
/*187716*/            OPC_MoveChild2,
/*187717*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*187720*/            OPC_MoveChild0,
/*187721*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*187724*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*187726*/            OPC_CheckType, MVT::v4i32,
/*187728*/            OPC_MoveParent,
/*187729*/            OPC_MoveParent,
/*187730*/            OPC_SwitchType /*2 cases */, 14, MVT::v2f64,// ->187747
/*187733*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187735*/              OPC_EmitConvertToTarget, 3,
/*187737*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrrikz), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VREDUCESDZrrikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*187747*/            /*SwitchType*/ 14, MVT::v4f32,// ->187763
/*187749*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187751*/              OPC_EmitConvertToTarget, 3,
/*187753*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrrikz), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VREDUCESSZrrikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*187763*/            0, // EndSwitchType
/*187764*/          /*Scope*/ 37, /*->187802*/
/*187765*/            OPC_RecordChild2, // #4 = $src0
/*187766*/            OPC_SwitchType /*2 cases */, 15, MVT::v2f64,// ->187784
/*187769*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187771*/              OPC_EmitConvertToTarget, 3,
/*187773*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrrik), 0,
                            MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                        // Dst: (VREDUCESDZrrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*187784*/            /*SwitchType*/ 15, MVT::v4f32,// ->187801
/*187786*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*187788*/              OPC_EmitConvertToTarget, 3,
/*187790*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrrik), 0,
                            MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VREDUCESSZrrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*187801*/            0, // EndSwitchType
/*187802*/          0, /*End of Scope*/
/*187803*/        0, /*End of Scope*/
/*187804*/      /*SwitchOpcode*/ 23|128,2/*279*/, TARGET_VAL(X86ISD::VGETMANTS),// ->188087
/*187808*/        OPC_RecordChild0, // #1 = $src1
/*187809*/        OPC_Scope, 48|128,1/*176*/, /*->187988*/ // 2 children in Scope
/*187812*/          OPC_MoveChild1,
/*187813*/          OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*187816*/          OPC_MoveChild0,
/*187817*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*187820*/          OPC_RecordMemRef,
/*187821*/          OPC_RecordNode, // #2 = 'ld' chained node
/*187822*/          OPC_CheckFoldableChainNode,
/*187823*/          OPC_RecordChild1, // #3 = $src2
/*187824*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*187826*/          OPC_CheckPredicate, 9, // Predicate_load
/*187828*/          OPC_SwitchType /*2 cases */, 77, MVT::f64,// ->187908
/*187831*/            OPC_MoveParent,
/*187832*/            OPC_MoveParent,
/*187833*/            OPC_RecordChild2, // #4 = $src3
/*187834*/            OPC_MoveChild2,
/*187835*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187838*/            OPC_MoveParent,
/*187839*/            OPC_MoveParent,
/*187840*/            OPC_Scope, 38, /*->187880*/ // 2 children in Scope
/*187842*/              OPC_MoveChild2,
/*187843*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*187846*/              OPC_MoveChild0,
/*187847*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*187850*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*187852*/              OPC_CheckType, MVT::v4i32,
/*187854*/              OPC_MoveParent,
/*187855*/              OPC_MoveParent,
/*187856*/              OPC_CheckType, MVT::v2f64,
/*187858*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187860*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187863*/              OPC_EmitMergeInputChains1_2,
/*187864*/              OPC_EmitConvertToTarget, 4,
/*187866*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGETMANTSDZrmikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187880*/            /*Scope*/ 26, /*->187907*/
/*187881*/              OPC_RecordChild2, // #5 = $src0
/*187882*/              OPC_CheckType, MVT::v2f64,
/*187884*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187886*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*187889*/              OPC_EmitMergeInputChains1_2,
/*187890*/              OPC_EmitConvertToTarget, 4,
/*187892*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                        // Dst: (VGETMANTSDZrmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187907*/            0, /*End of Scope*/
/*187908*/          /*SwitchType*/ 77, MVT::f32,// ->187987
/*187910*/            OPC_MoveParent,
/*187911*/            OPC_MoveParent,
/*187912*/            OPC_RecordChild2, // #4 = $src3
/*187913*/            OPC_MoveChild2,
/*187914*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187917*/            OPC_MoveParent,
/*187918*/            OPC_MoveParent,
/*187919*/            OPC_Scope, 38, /*->187959*/ // 2 children in Scope
/*187921*/              OPC_MoveChild2,
/*187922*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*187925*/              OPC_MoveChild0,
/*187926*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*187929*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*187931*/              OPC_CheckType, MVT::v4i32,
/*187933*/              OPC_MoveParent,
/*187934*/              OPC_MoveParent,
/*187935*/              OPC_CheckType, MVT::v4f32,
/*187937*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187939*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187942*/              OPC_EmitMergeInputChains1_2,
/*187943*/              OPC_EmitConvertToTarget, 4,
/*187945*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGETMANTSSZrmikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187959*/            /*Scope*/ 26, /*->187986*/
/*187960*/              OPC_RecordChild2, // #5 = $src0
/*187961*/              OPC_CheckType, MVT::v4f32,
/*187963*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187965*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*187968*/              OPC_EmitMergeInputChains1_2,
/*187969*/              OPC_EmitConvertToTarget, 4,
/*187971*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 34
                        // Dst: (VGETMANTSSZrmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*187986*/            0, /*End of Scope*/
/*187987*/          0, // EndSwitchType
/*187988*/        /*Scope*/ 97, /*->188086*/
/*187989*/          OPC_RecordChild1, // #2 = $src2
/*187990*/          OPC_RecordChild2, // #3 = $src3
/*187991*/          OPC_MoveChild2,
/*187992*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187995*/          OPC_MoveParent,
/*187996*/          OPC_MoveParent,
/*187997*/          OPC_Scope, 48, /*->188047*/ // 2 children in Scope
/*187999*/            OPC_MoveChild2,
/*188000*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*188003*/            OPC_MoveChild0,
/*188004*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*188007*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*188009*/            OPC_CheckType, MVT::v4i32,
/*188011*/            OPC_MoveParent,
/*188012*/            OPC_MoveParent,
/*188013*/            OPC_SwitchType /*2 cases */, 14, MVT::v2f64,// ->188030
/*188016*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188018*/              OPC_EmitConvertToTarget, 3,
/*188020*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrrikz), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VGETMANTSDZrrikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*188030*/            /*SwitchType*/ 14, MVT::v4f32,// ->188046
/*188032*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188034*/              OPC_EmitConvertToTarget, 3,
/*188036*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrrikz), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VGETMANTSSZrrikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*188046*/            0, // EndSwitchType
/*188047*/          /*Scope*/ 37, /*->188085*/
/*188048*/            OPC_RecordChild2, // #4 = $src0
/*188049*/            OPC_SwitchType /*2 cases */, 15, MVT::v2f64,// ->188067
/*188052*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188054*/              OPC_EmitConvertToTarget, 3,
/*188056*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrrik), 0,
                            MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                        // Dst: (VGETMANTSDZrrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*188067*/            /*SwitchType*/ 15, MVT::v4f32,// ->188084
/*188069*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188071*/              OPC_EmitConvertToTarget, 3,
/*188073*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrrik), 0,
                            MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VGETMANTSSZrrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*188084*/            0, // EndSwitchType
/*188085*/          0, /*End of Scope*/
/*188086*/        0, /*End of Scope*/
/*188087*/      /*SwitchOpcode*/ 49|128,2/*305*/, TARGET_VAL(X86ISD::FADDS_RND),// ->188396
/*188091*/        OPC_RecordChild0, // #1 = $src1
/*188092*/        OPC_RecordChild1, // #2 = $src2
/*188093*/        OPC_Scope, 35|128,1/*163*/, /*->188259*/ // 4 children in Scope
/*188096*/          OPC_CheckChild2Integer, 4, 
/*188098*/          OPC_MoveParent,
/*188099*/          OPC_Scope, 62, /*->188163*/ // 3 children in Scope
/*188101*/            OPC_MoveChild2,
/*188102*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*188105*/            OPC_MoveChild0,
/*188106*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*188109*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*188111*/            OPC_CheckType, MVT::v4i32,
/*188113*/            OPC_MoveParent,
/*188114*/            OPC_MoveParent,
/*188115*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->188139
/*188118*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188120*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*188123*/              OPC_EmitMergeInputChains, 1, 8, 
/*188126*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VADDSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*188139*/            /*SwitchType*/ 21, MVT::v2f64,// ->188162
/*188141*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188143*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*188146*/              OPC_EmitMergeInputChains, 1, 8, 
/*188149*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VADDSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*188162*/            0, // EndSwitchType
/*188163*/          /*Scope*/ 51, /*->188215*/
/*188164*/            OPC_RecordChild2, // #3 = $src0
/*188165*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->188190
/*188168*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188170*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*188173*/              OPC_EmitMergeInputChains, 1, 9, 
/*188176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 29
                        // Dst: (VADDSSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*188190*/            /*SwitchType*/ 22, MVT::v2f64,// ->188214
/*188192*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188194*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*188197*/              OPC_EmitMergeInputChains, 1, 9, 
/*188200*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 29
                        // Dst: (VADDSDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*188214*/            0, // EndSwitchType
/*188215*/          /*Scope*/ 42, /*->188258*/
/*188216*/            OPC_MoveChild2,
/*188217*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*188220*/            OPC_MoveChild0,
/*188221*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*188224*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*188226*/            OPC_CheckType, MVT::v4i32,
/*188228*/            OPC_MoveParent,
/*188229*/            OPC_MoveParent,
/*188230*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->188244
/*188233*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188235*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Intkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VADDSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*188244*/            /*SwitchType*/ 11, MVT::v2f64,// ->188257
/*188246*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188248*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Intkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VADDSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*188257*/            0, // EndSwitchType
/*188258*/          0, /*End of Scope*/
/*188259*/        /*Scope*/ 55, /*->188315*/
/*188260*/          OPC_RecordChild2, // #3 = $rc
/*188261*/          OPC_MoveChild2,
/*188262*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*188265*/          OPC_MoveParent,
/*188266*/          OPC_MoveParent,
/*188267*/          OPC_MoveChild2,
/*188268*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*188271*/          OPC_MoveChild0,
/*188272*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*188275*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*188277*/          OPC_CheckType, MVT::v4i32,
/*188279*/          OPC_MoveParent,
/*188280*/          OPC_MoveParent,
/*188281*/          OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->188298
/*188284*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188286*/            OPC_EmitConvertToTarget, 3,
/*188288*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VADDSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*188298*/          /*SwitchType*/ 14, MVT::v2f64,// ->188314
/*188300*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188302*/            OPC_EmitConvertToTarget, 3,
/*188304*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VADDSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*188314*/          0, // EndSwitchType
/*188315*/        /*Scope*/ 34, /*->188350*/
/*188316*/          OPC_CheckChild2Integer, 4, 
/*188318*/          OPC_MoveParent,
/*188319*/          OPC_RecordChild2, // #3 = $src0
/*188320*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->188335
/*188323*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188325*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                      // Dst: (VADDSSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*188335*/          /*SwitchType*/ 12, MVT::v2f64,// ->188349
/*188337*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188339*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VADDSDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*188349*/          0, // EndSwitchType
/*188350*/        /*Scope*/ 44, /*->188395*/
/*188351*/          OPC_RecordChild2, // #3 = $rc
/*188352*/          OPC_MoveChild2,
/*188353*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*188356*/          OPC_MoveParent,
/*188357*/          OPC_MoveParent,
/*188358*/          OPC_RecordChild2, // #4 = $src0
/*188359*/          OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->188377
/*188362*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188364*/            OPC_EmitConvertToTarget, 3,
/*188366*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VADDSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*188377*/          /*SwitchType*/ 15, MVT::v2f64,// ->188394
/*188379*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188381*/            OPC_EmitConvertToTarget, 3,
/*188383*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VADDSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*188394*/          0, // EndSwitchType
/*188395*/        0, /*End of Scope*/
/*188396*/      /*SwitchOpcode*/ 49|128,2/*305*/, TARGET_VAL(X86ISD::FMULS_RND),// ->188705
/*188400*/        OPC_RecordChild0, // #1 = $src1
/*188401*/        OPC_RecordChild1, // #2 = $src2
/*188402*/        OPC_Scope, 35|128,1/*163*/, /*->188568*/ // 4 children in Scope
/*188405*/          OPC_CheckChild2Integer, 4, 
/*188407*/          OPC_MoveParent,
/*188408*/          OPC_Scope, 62, /*->188472*/ // 3 children in Scope
/*188410*/            OPC_MoveChild2,
/*188411*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*188414*/            OPC_MoveChild0,
/*188415*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*188418*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*188420*/            OPC_CheckType, MVT::v4i32,
/*188422*/            OPC_MoveParent,
/*188423*/            OPC_MoveParent,
/*188424*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->188448
/*188427*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188429*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*188432*/              OPC_EmitMergeInputChains, 1, 8, 
/*188435*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VMULSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*188448*/            /*SwitchType*/ 21, MVT::v2f64,// ->188471
/*188450*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188452*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*188455*/              OPC_EmitMergeInputChains, 1, 8, 
/*188458*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VMULSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*188471*/            0, // EndSwitchType
/*188472*/          /*Scope*/ 51, /*->188524*/
/*188473*/            OPC_RecordChild2, // #3 = $src0
/*188474*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->188499
/*188477*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188479*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*188482*/              OPC_EmitMergeInputChains, 1, 9, 
/*188485*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 29
                        // Dst: (VMULSSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*188499*/            /*SwitchType*/ 22, MVT::v2f64,// ->188523
/*188501*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188503*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*188506*/              OPC_EmitMergeInputChains, 1, 9, 
/*188509*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 29
                        // Dst: (VMULSDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*188523*/            0, // EndSwitchType
/*188524*/          /*Scope*/ 42, /*->188567*/
/*188525*/            OPC_MoveChild2,
/*188526*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*188529*/            OPC_MoveChild0,
/*188530*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*188533*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*188535*/            OPC_CheckType, MVT::v4i32,
/*188537*/            OPC_MoveParent,
/*188538*/            OPC_MoveParent,
/*188539*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->188553
/*188542*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188544*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Intkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VMULSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*188553*/            /*SwitchType*/ 11, MVT::v2f64,// ->188566
/*188555*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188557*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Intkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VMULSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*188566*/            0, // EndSwitchType
/*188567*/          0, /*End of Scope*/
/*188568*/        /*Scope*/ 55, /*->188624*/
/*188569*/          OPC_RecordChild2, // #3 = $rc
/*188570*/          OPC_MoveChild2,
/*188571*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*188574*/          OPC_MoveParent,
/*188575*/          OPC_MoveParent,
/*188576*/          OPC_MoveChild2,
/*188577*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*188580*/          OPC_MoveChild0,
/*188581*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*188584*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*188586*/          OPC_CheckType, MVT::v4i32,
/*188588*/          OPC_MoveParent,
/*188589*/          OPC_MoveParent,
/*188590*/          OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->188607
/*188593*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188595*/            OPC_EmitConvertToTarget, 3,
/*188597*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VMULSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*188607*/          /*SwitchType*/ 14, MVT::v2f64,// ->188623
/*188609*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188611*/            OPC_EmitConvertToTarget, 3,
/*188613*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VMULSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*188623*/          0, // EndSwitchType
/*188624*/        /*Scope*/ 34, /*->188659*/
/*188625*/          OPC_CheckChild2Integer, 4, 
/*188627*/          OPC_MoveParent,
/*188628*/          OPC_RecordChild2, // #3 = $src0
/*188629*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->188644
/*188632*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188634*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                      // Dst: (VMULSSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*188644*/          /*SwitchType*/ 12, MVT::v2f64,// ->188658
/*188646*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188648*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VMULSDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*188658*/          0, // EndSwitchType
/*188659*/        /*Scope*/ 44, /*->188704*/
/*188660*/          OPC_RecordChild2, // #3 = $rc
/*188661*/          OPC_MoveChild2,
/*188662*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*188665*/          OPC_MoveParent,
/*188666*/          OPC_MoveParent,
/*188667*/          OPC_RecordChild2, // #4 = $src0
/*188668*/          OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->188686
/*188671*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188673*/            OPC_EmitConvertToTarget, 3,
/*188675*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VMULSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*188686*/          /*SwitchType*/ 15, MVT::v2f64,// ->188703
/*188688*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188690*/            OPC_EmitConvertToTarget, 3,
/*188692*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VMULSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*188703*/          0, // EndSwitchType
/*188704*/        0, /*End of Scope*/
/*188705*/      /*SwitchOpcode*/ 49|128,2/*305*/, TARGET_VAL(X86ISD::FSUBS_RND),// ->189014
/*188709*/        OPC_RecordChild0, // #1 = $src1
/*188710*/        OPC_RecordChild1, // #2 = $src2
/*188711*/        OPC_Scope, 35|128,1/*163*/, /*->188877*/ // 4 children in Scope
/*188714*/          OPC_CheckChild2Integer, 4, 
/*188716*/          OPC_MoveParent,
/*188717*/          OPC_Scope, 62, /*->188781*/ // 3 children in Scope
/*188719*/            OPC_MoveChild2,
/*188720*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*188723*/            OPC_MoveChild0,
/*188724*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*188727*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*188729*/            OPC_CheckType, MVT::v4i32,
/*188731*/            OPC_MoveParent,
/*188732*/            OPC_MoveParent,
/*188733*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->188757
/*188736*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188738*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*188741*/              OPC_EmitMergeInputChains, 1, 8, 
/*188744*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VSUBSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*188757*/            /*SwitchType*/ 21, MVT::v2f64,// ->188780
/*188759*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188761*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*188764*/              OPC_EmitMergeInputChains, 1, 8, 
/*188767*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VSUBSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*188780*/            0, // EndSwitchType
/*188781*/          /*Scope*/ 51, /*->188833*/
/*188782*/            OPC_RecordChild2, // #3 = $src0
/*188783*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->188808
/*188786*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188788*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*188791*/              OPC_EmitMergeInputChains, 1, 9, 
/*188794*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 29
                        // Dst: (VSUBSSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*188808*/            /*SwitchType*/ 22, MVT::v2f64,// ->188832
/*188810*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188812*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*188815*/              OPC_EmitMergeInputChains, 1, 9, 
/*188818*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 29
                        // Dst: (VSUBSDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*188832*/            0, // EndSwitchType
/*188833*/          /*Scope*/ 42, /*->188876*/
/*188834*/            OPC_MoveChild2,
/*188835*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*188838*/            OPC_MoveChild0,
/*188839*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*188842*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*188844*/            OPC_CheckType, MVT::v4i32,
/*188846*/            OPC_MoveParent,
/*188847*/            OPC_MoveParent,
/*188848*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->188862
/*188851*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188853*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrr_Intkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VSUBSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*188862*/            /*SwitchType*/ 11, MVT::v2f64,// ->188875
/*188864*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188866*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrr_Intkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VSUBSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*188875*/            0, // EndSwitchType
/*188876*/          0, /*End of Scope*/
/*188877*/        /*Scope*/ 55, /*->188933*/
/*188878*/          OPC_RecordChild2, // #3 = $rc
/*188879*/          OPC_MoveChild2,
/*188880*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*188883*/          OPC_MoveParent,
/*188884*/          OPC_MoveParent,
/*188885*/          OPC_MoveChild2,
/*188886*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*188889*/          OPC_MoveChild0,
/*188890*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*188893*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*188895*/          OPC_CheckType, MVT::v4i32,
/*188897*/          OPC_MoveParent,
/*188898*/          OPC_MoveParent,
/*188899*/          OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->188916
/*188902*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188904*/            OPC_EmitConvertToTarget, 3,
/*188906*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSUBSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*188916*/          /*SwitchType*/ 14, MVT::v2f64,// ->188932
/*188918*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188920*/            OPC_EmitConvertToTarget, 3,
/*188922*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSUBSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*188932*/          0, // EndSwitchType
/*188933*/        /*Scope*/ 34, /*->188968*/
/*188934*/          OPC_CheckChild2Integer, 4, 
/*188936*/          OPC_MoveParent,
/*188937*/          OPC_RecordChild2, // #3 = $src0
/*188938*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->188953
/*188941*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188943*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                      // Dst: (VSUBSSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*188953*/          /*SwitchType*/ 12, MVT::v2f64,// ->188967
/*188955*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188957*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VSUBSDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*188967*/          0, // EndSwitchType
/*188968*/        /*Scope*/ 44, /*->189013*/
/*188969*/          OPC_RecordChild2, // #3 = $rc
/*188970*/          OPC_MoveChild2,
/*188971*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*188974*/          OPC_MoveParent,
/*188975*/          OPC_MoveParent,
/*188976*/          OPC_RecordChild2, // #4 = $src0
/*188977*/          OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->188995
/*188980*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188982*/            OPC_EmitConvertToTarget, 3,
/*188984*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VSUBSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*188995*/          /*SwitchType*/ 15, MVT::v2f64,// ->189012
/*188997*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188999*/            OPC_EmitConvertToTarget, 3,
/*189001*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VSUBSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*189012*/          0, // EndSwitchType
/*189013*/        0, /*End of Scope*/
/*189014*/      /*SwitchOpcode*/ 49|128,2/*305*/, TARGET_VAL(X86ISD::FDIVS_RND),// ->189323
/*189018*/        OPC_RecordChild0, // #1 = $src1
/*189019*/        OPC_RecordChild1, // #2 = $src2
/*189020*/        OPC_Scope, 35|128,1/*163*/, /*->189186*/ // 4 children in Scope
/*189023*/          OPC_CheckChild2Integer, 4, 
/*189025*/          OPC_MoveParent,
/*189026*/          OPC_Scope, 62, /*->189090*/ // 3 children in Scope
/*189028*/            OPC_MoveChild2,
/*189029*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189032*/            OPC_MoveChild0,
/*189033*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189036*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189038*/            OPC_CheckType, MVT::v4i32,
/*189040*/            OPC_MoveParent,
/*189041*/            OPC_MoveParent,
/*189042*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->189066
/*189045*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189047*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*189050*/              OPC_EmitMergeInputChains, 1, 8, 
/*189053*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VDIVSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*189066*/            /*SwitchType*/ 21, MVT::v2f64,// ->189089
/*189068*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189070*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*189073*/              OPC_EmitMergeInputChains, 1, 8, 
/*189076*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VDIVSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*189089*/            0, // EndSwitchType
/*189090*/          /*Scope*/ 51, /*->189142*/
/*189091*/            OPC_RecordChild2, // #3 = $src0
/*189092*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->189117
/*189095*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189097*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*189100*/              OPC_EmitMergeInputChains, 1, 9, 
/*189103*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 29
                        // Dst: (VDIVSSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*189117*/            /*SwitchType*/ 22, MVT::v2f64,// ->189141
/*189119*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189121*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*189124*/              OPC_EmitMergeInputChains, 1, 9, 
/*189127*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 29
                        // Dst: (VDIVSDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*189141*/            0, // EndSwitchType
/*189142*/          /*Scope*/ 42, /*->189185*/
/*189143*/            OPC_MoveChild2,
/*189144*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189147*/            OPC_MoveChild0,
/*189148*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189151*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189153*/            OPC_CheckType, MVT::v4i32,
/*189155*/            OPC_MoveParent,
/*189156*/            OPC_MoveParent,
/*189157*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->189171
/*189160*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189162*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrr_Intkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VDIVSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*189171*/            /*SwitchType*/ 11, MVT::v2f64,// ->189184
/*189173*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189175*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrr_Intkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VDIVSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*189184*/            0, // EndSwitchType
/*189185*/          0, /*End of Scope*/
/*189186*/        /*Scope*/ 55, /*->189242*/
/*189187*/          OPC_RecordChild2, // #3 = $rc
/*189188*/          OPC_MoveChild2,
/*189189*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*189192*/          OPC_MoveParent,
/*189193*/          OPC_MoveParent,
/*189194*/          OPC_MoveChild2,
/*189195*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189198*/          OPC_MoveChild0,
/*189199*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189202*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189204*/          OPC_CheckType, MVT::v4i32,
/*189206*/          OPC_MoveParent,
/*189207*/          OPC_MoveParent,
/*189208*/          OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->189225
/*189211*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189213*/            OPC_EmitConvertToTarget, 3,
/*189215*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VDIVSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*189225*/          /*SwitchType*/ 14, MVT::v2f64,// ->189241
/*189227*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189229*/            OPC_EmitConvertToTarget, 3,
/*189231*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VDIVSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*189241*/          0, // EndSwitchType
/*189242*/        /*Scope*/ 34, /*->189277*/
/*189243*/          OPC_CheckChild2Integer, 4, 
/*189245*/          OPC_MoveParent,
/*189246*/          OPC_RecordChild2, // #3 = $src0
/*189247*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->189262
/*189250*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189252*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                      // Dst: (VDIVSSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*189262*/          /*SwitchType*/ 12, MVT::v2f64,// ->189276
/*189264*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189266*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VDIVSDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*189276*/          0, // EndSwitchType
/*189277*/        /*Scope*/ 44, /*->189322*/
/*189278*/          OPC_RecordChild2, // #3 = $rc
/*189279*/          OPC_MoveChild2,
/*189280*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*189283*/          OPC_MoveParent,
/*189284*/          OPC_MoveParent,
/*189285*/          OPC_RecordChild2, // #4 = $src0
/*189286*/          OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->189304
/*189289*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189291*/            OPC_EmitConvertToTarget, 3,
/*189293*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VDIVSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*189304*/          /*SwitchType*/ 15, MVT::v2f64,// ->189321
/*189306*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189308*/            OPC_EmitConvertToTarget, 3,
/*189310*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VDIVSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*189321*/          0, // EndSwitchType
/*189322*/        0, /*End of Scope*/
/*189323*/      /*SwitchOpcode*/ 49|128,2/*305*/, TARGET_VAL(X86ISD::SCALEFS),// ->189632
/*189327*/        OPC_RecordChild0, // #1 = $src1
/*189328*/        OPC_RecordChild1, // #2 = $src2
/*189329*/        OPC_Scope, 35|128,1/*163*/, /*->189495*/ // 4 children in Scope
/*189332*/          OPC_CheckChild2Integer, 4, 
/*189334*/          OPC_MoveParent,
/*189335*/          OPC_Scope, 62, /*->189399*/ // 3 children in Scope
/*189337*/            OPC_MoveChild2,
/*189338*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189341*/            OPC_MoveChild0,
/*189342*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189345*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189347*/            OPC_CheckType, MVT::v4i32,
/*189349*/            OPC_MoveParent,
/*189350*/            OPC_MoveParent,
/*189351*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->189375
/*189354*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189356*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*189359*/              OPC_EmitMergeInputChains, 1, 8, 
/*189362*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VSCALEFSSZrmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*189375*/            /*SwitchType*/ 21, MVT::v2f64,// ->189398
/*189377*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189379*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*189382*/              OPC_EmitMergeInputChains, 1, 8, 
/*189385*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VSCALEFSDZrmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*189398*/            0, // EndSwitchType
/*189399*/          /*Scope*/ 51, /*->189451*/
/*189400*/            OPC_RecordChild2, // #3 = $src0
/*189401*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->189426
/*189404*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189406*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*189409*/              OPC_EmitMergeInputChains, 1, 9, 
/*189412*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 29
                        // Dst: (VSCALEFSSZrmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*189426*/            /*SwitchType*/ 22, MVT::v2f64,// ->189450
/*189428*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189430*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*189433*/              OPC_EmitMergeInputChains, 1, 9, 
/*189436*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 29
                        // Dst: (VSCALEFSDZrmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*189450*/            0, // EndSwitchType
/*189451*/          /*Scope*/ 42, /*->189494*/
/*189452*/            OPC_MoveChild2,
/*189453*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189456*/            OPC_MoveChild0,
/*189457*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189460*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189462*/            OPC_CheckType, MVT::v4i32,
/*189464*/            OPC_MoveParent,
/*189465*/            OPC_MoveParent,
/*189466*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->189480
/*189469*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189471*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VSCALEFSSZrrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*189480*/            /*SwitchType*/ 11, MVT::v2f64,// ->189493
/*189482*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189484*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrrkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VSCALEFSDZrrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*189493*/            0, // EndSwitchType
/*189494*/          0, /*End of Scope*/
/*189495*/        /*Scope*/ 55, /*->189551*/
/*189496*/          OPC_RecordChild2, // #3 = $rc
/*189497*/          OPC_MoveChild2,
/*189498*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*189501*/          OPC_MoveParent,
/*189502*/          OPC_MoveParent,
/*189503*/          OPC_MoveChild2,
/*189504*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189507*/          OPC_MoveChild0,
/*189508*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189511*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189513*/          OPC_CheckType, MVT::v4i32,
/*189515*/          OPC_MoveParent,
/*189516*/          OPC_MoveParent,
/*189517*/          OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->189534
/*189520*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189522*/            OPC_EmitConvertToTarget, 3,
/*189524*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSCALEFSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*189534*/          /*SwitchType*/ 14, MVT::v2f64,// ->189550
/*189536*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189538*/            OPC_EmitConvertToTarget, 3,
/*189540*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSCALEFSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*189550*/          0, // EndSwitchType
/*189551*/        /*Scope*/ 34, /*->189586*/
/*189552*/          OPC_CheckChild2Integer, 4, 
/*189554*/          OPC_MoveParent,
/*189555*/          OPC_RecordChild2, // #3 = $src0
/*189556*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->189571
/*189559*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189561*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrrk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                      // Dst: (VSCALEFSSZrrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*189571*/          /*SwitchType*/ 12, MVT::v2f64,// ->189585
/*189573*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189575*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VSCALEFSDZrrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*189585*/          0, // EndSwitchType
/*189586*/        /*Scope*/ 44, /*->189631*/
/*189587*/          OPC_RecordChild2, // #3 = $rc
/*189588*/          OPC_MoveChild2,
/*189589*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*189592*/          OPC_MoveParent,
/*189593*/          OPC_MoveParent,
/*189594*/          OPC_RecordChild2, // #4 = $src0
/*189595*/          OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->189613
/*189598*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189600*/            OPC_EmitConvertToTarget, 3,
/*189602*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VSCALEFSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*189613*/          /*SwitchType*/ 15, MVT::v2f64,// ->189630
/*189615*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189617*/            OPC_EmitConvertToTarget, 3,
/*189619*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VSCALEFSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*189630*/          0, // EndSwitchType
/*189631*/        0, /*End of Scope*/
/*189632*/      /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(X86ISD::VFPROUNDS_RND),// ->189821
/*189636*/        OPC_RecordChild0, // #1 = $src1
/*189637*/        OPC_RecordChild1, // #2 = $src2
/*189638*/        OPC_Scope, 97, /*->189737*/ // 4 children in Scope
/*189640*/          OPC_CheckChild2Integer, 4, 
/*189642*/          OPC_MoveParent,
/*189643*/          OPC_Scope, 37, /*->189682*/ // 3 children in Scope
/*189645*/            OPC_MoveChild2,
/*189646*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189649*/            OPC_MoveChild0,
/*189650*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189653*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189655*/            OPC_CheckType, MVT::v4i32,
/*189657*/            OPC_MoveParent,
/*189658*/            OPC_MoveParent,
/*189659*/            OPC_CheckType, MVT::v4f32,
/*189661*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189663*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*189666*/            OPC_EmitMergeInputChains, 1, 8, 
/*189669*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86froundRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                      // Dst: (VCVTSD2SSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*189682*/          /*Scope*/ 25, /*->189708*/
/*189683*/            OPC_RecordChild2, // #3 = $src0
/*189684*/            OPC_CheckType, MVT::v4f32,
/*189686*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189688*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*189691*/            OPC_EmitMergeInputChains, 1, 9, 
/*189694*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86froundRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 29
                      // Dst: (VCVTSD2SSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*189708*/          /*Scope*/ 27, /*->189736*/
/*189709*/            OPC_MoveChild2,
/*189710*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189713*/            OPC_MoveChild0,
/*189714*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189717*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189719*/            OPC_CheckType, MVT::v4i32,
/*189721*/            OPC_MoveParent,
/*189722*/            OPC_MoveParent,
/*189723*/            OPC_CheckType, MVT::v4f32,
/*189725*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189727*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrr_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86froundRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VCVTSD2SSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*189736*/          0, /*End of Scope*/
/*189737*/        /*Scope*/ 37, /*->189775*/
/*189738*/          OPC_RecordChild2, // #3 = $rc
/*189739*/          OPC_MoveChild2,
/*189740*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*189743*/          OPC_MoveParent,
/*189744*/          OPC_MoveParent,
/*189745*/          OPC_MoveChild2,
/*189746*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189749*/          OPC_MoveChild0,
/*189750*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189753*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189755*/          OPC_CheckType, MVT::v4i32,
/*189757*/          OPC_MoveParent,
/*189758*/          OPC_MoveParent,
/*189759*/          OPC_CheckType, MVT::v4f32,
/*189761*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189763*/          OPC_EmitConvertToTarget, 3,
/*189765*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrrb_Intkz), 0,
                        MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86froundRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VCVTSD2SSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*189775*/        /*Scope*/ 18, /*->189794*/
/*189776*/          OPC_CheckChild2Integer, 4, 
/*189778*/          OPC_MoveParent,
/*189779*/          OPC_RecordChild2, // #3 = $src0
/*189780*/          OPC_CheckType, MVT::v4f32,
/*189782*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189784*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrr_Intk), 0,
                        MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86froundRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                    // Dst: (VCVTSD2SSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*189794*/        /*Scope*/ 25, /*->189820*/
/*189795*/          OPC_RecordChild2, // #3 = $rc
/*189796*/          OPC_MoveChild2,
/*189797*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*189800*/          OPC_MoveParent,
/*189801*/          OPC_MoveParent,
/*189802*/          OPC_RecordChild2, // #4 = $src0
/*189803*/          OPC_CheckType, MVT::v4f32,
/*189805*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189807*/          OPC_EmitConvertToTarget, 3,
/*189809*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrrb_Intk), 0,
                        MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                    // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86froundRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                    // Dst: (VCVTSD2SSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*189820*/        0, /*End of Scope*/
/*189821*/      /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(X86ISD::VFPEXTS_RND),// ->189993
/*189825*/        OPC_RecordChild0, // #1 = $src1
/*189826*/        OPC_RecordChild1, // #2 = $src2
/*189827*/        OPC_Scope, 113, /*->189942*/ // 2 children in Scope
/*189829*/          OPC_CheckChild2Integer, 4, 
/*189831*/          OPC_MoveParent,
/*189832*/          OPC_Scope, 37, /*->189871*/ // 4 children in Scope
/*189834*/            OPC_MoveChild2,
/*189835*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189838*/            OPC_MoveChild0,
/*189839*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189842*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189844*/            OPC_CheckType, MVT::v4i32,
/*189846*/            OPC_MoveParent,
/*189847*/            OPC_MoveParent,
/*189848*/            OPC_CheckType, MVT::v2f64,
/*189850*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189852*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*189855*/            OPC_EmitMergeInputChains, 1, 8, 
/*189858*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fpextRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                      // Dst: (VCVTSS2SDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*189871*/          /*Scope*/ 25, /*->189897*/
/*189872*/            OPC_RecordChild2, // #3 = $src0
/*189873*/            OPC_CheckType, MVT::v2f64,
/*189875*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189877*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*189880*/            OPC_EmitMergeInputChains, 1, 9, 
/*189883*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fpextRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 29
                      // Dst: (VCVTSS2SDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*189897*/          /*Scope*/ 27, /*->189925*/
/*189898*/            OPC_MoveChild2,
/*189899*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189902*/            OPC_MoveChild0,
/*189903*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189906*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189908*/            OPC_CheckType, MVT::v4i32,
/*189910*/            OPC_MoveParent,
/*189911*/            OPC_MoveParent,
/*189912*/            OPC_CheckType, MVT::v2f64,
/*189914*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189916*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrr_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fpextRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VCVTSS2SDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*189925*/          /*Scope*/ 15, /*->189941*/
/*189926*/            OPC_RecordChild2, // #3 = $src0
/*189927*/            OPC_CheckType, MVT::v2f64,
/*189929*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189931*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fpextRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VCVTSS2SDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*189941*/          0, /*End of Scope*/
/*189942*/        /*Scope*/ 49, /*->189992*/
/*189943*/          OPC_CheckChild2Integer, 8, 
/*189945*/          OPC_MoveParent,
/*189946*/          OPC_Scope, 27, /*->189975*/ // 2 children in Scope
/*189948*/            OPC_MoveChild2,
/*189949*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*189952*/            OPC_MoveChild0,
/*189953*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*189956*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*189958*/            OPC_CheckType, MVT::v4i32,
/*189960*/            OPC_MoveParent,
/*189961*/            OPC_MoveParent,
/*189962*/            OPC_CheckType, MVT::v2f64,
/*189964*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189966*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrrb_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fpextRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VCVTSS2SDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*189975*/          /*Scope*/ 15, /*->189991*/
/*189976*/            OPC_RecordChild2, // #3 = $src0
/*189977*/            OPC_CheckType, MVT::v2f64,
/*189979*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189981*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrrb_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fpextRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VCVTSS2SDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*189991*/          0, /*End of Scope*/
/*189992*/        0, /*End of Scope*/
/*189993*/      /*SwitchOpcode*/ 26|128,2/*282*/, TARGET_VAL(X86ISD::RCP28S),// ->190279
/*189997*/        OPC_RecordChild0, // #1 = $src1
/*189998*/        OPC_RecordChild1, // #2 = $src2
/*189999*/        OPC_Scope, 67|128,1/*195*/, /*->190197*/ // 2 children in Scope
/*190002*/          OPC_CheckChild2Integer, 4, 
/*190004*/          OPC_MoveParent,
/*190005*/          OPC_Scope, 62, /*->190069*/ // 4 children in Scope
/*190007*/            OPC_MoveChild2,
/*190008*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*190011*/            OPC_MoveChild0,
/*190012*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*190015*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*190017*/            OPC_CheckType, MVT::v4i32,
/*190019*/            OPC_MoveParent,
/*190020*/            OPC_MoveParent,
/*190021*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->190045
/*190024*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190026*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*190029*/              OPC_EmitMergeInputChains, 1, 8, 
/*190032*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VRCP28SSZmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*190045*/            /*SwitchType*/ 21, MVT::v2f64,// ->190068
/*190047*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190049*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*190052*/              OPC_EmitMergeInputChains, 1, 8, 
/*190055*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VRCP28SDZmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*190068*/            0, // EndSwitchType
/*190069*/          /*Scope*/ 51, /*->190121*/
/*190070*/            OPC_RecordChild2, // #3 = $src0
/*190071*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->190096
/*190074*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190076*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*190079*/              OPC_EmitMergeInputChains, 1, 9, 
/*190082*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 29
                        // Dst: (VRCP28SSZmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*190096*/            /*SwitchType*/ 22, MVT::v2f64,// ->190120
/*190098*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190100*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*190103*/              OPC_EmitMergeInputChains, 1, 9, 
/*190106*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 29
                        // Dst: (VRCP28SDZmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*190120*/            0, // EndSwitchType
/*190121*/          /*Scope*/ 42, /*->190164*/
/*190122*/            OPC_MoveChild2,
/*190123*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*190126*/            OPC_MoveChild0,
/*190127*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*190130*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*190132*/            OPC_CheckType, MVT::v4i32,
/*190134*/            OPC_MoveParent,
/*190135*/            OPC_MoveParent,
/*190136*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->190150
/*190139*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190141*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRCP28SSZrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190150*/            /*SwitchType*/ 11, MVT::v2f64,// ->190163
/*190152*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190154*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZrkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRCP28SDZrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190163*/            0, // EndSwitchType
/*190164*/          /*Scope*/ 31, /*->190196*/
/*190165*/            OPC_RecordChild2, // #3 = $src0
/*190166*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->190181
/*190169*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190171*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                        // Dst: (VRCP28SSZrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190181*/            /*SwitchType*/ 12, MVT::v2f64,// ->190195
/*190183*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190185*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                        // Dst: (VRCP28SDZrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190195*/            0, // EndSwitchType
/*190196*/          0, /*End of Scope*/
/*190197*/        /*Scope*/ 80, /*->190278*/
/*190198*/          OPC_CheckChild2Integer, 8, 
/*190200*/          OPC_MoveParent,
/*190201*/          OPC_Scope, 42, /*->190245*/ // 2 children in Scope
/*190203*/            OPC_MoveChild2,
/*190204*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*190207*/            OPC_MoveChild0,
/*190208*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*190211*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*190213*/            OPC_CheckType, MVT::v4i32,
/*190215*/            OPC_MoveParent,
/*190216*/            OPC_MoveParent,
/*190217*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->190231
/*190220*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190222*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZrbkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRCP28SSZrbkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190231*/            /*SwitchType*/ 11, MVT::v2f64,// ->190244
/*190233*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190235*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZrbkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRCP28SDZrbkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190244*/            0, // EndSwitchType
/*190245*/          /*Scope*/ 31, /*->190277*/
/*190246*/            OPC_RecordChild2, // #3 = $src0
/*190247*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->190262
/*190250*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190252*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZrbk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                        // Dst: (VRCP28SSZrbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190262*/            /*SwitchType*/ 12, MVT::v2f64,// ->190276
/*190264*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190266*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZrbk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                        // Dst: (VRCP28SDZrbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190276*/            0, // EndSwitchType
/*190277*/          0, /*End of Scope*/
/*190278*/        0, /*End of Scope*/
/*190279*/      /*SwitchOpcode*/ 26|128,2/*282*/, TARGET_VAL(X86ISD::RSQRT28S),// ->190565
/*190283*/        OPC_RecordChild0, // #1 = $src1
/*190284*/        OPC_RecordChild1, // #2 = $src2
/*190285*/        OPC_Scope, 67|128,1/*195*/, /*->190483*/ // 2 children in Scope
/*190288*/          OPC_CheckChild2Integer, 4, 
/*190290*/          OPC_MoveParent,
/*190291*/          OPC_Scope, 62, /*->190355*/ // 4 children in Scope
/*190293*/            OPC_MoveChild2,
/*190294*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*190297*/            OPC_MoveChild0,
/*190298*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*190301*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*190303*/            OPC_CheckType, MVT::v4i32,
/*190305*/            OPC_MoveParent,
/*190306*/            OPC_MoveParent,
/*190307*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->190331
/*190310*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190312*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*190315*/              OPC_EmitMergeInputChains, 1, 8, 
/*190318*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VRSQRT28SSZmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*190331*/            /*SwitchType*/ 21, MVT::v2f64,// ->190354
/*190333*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190335*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*190338*/              OPC_EmitMergeInputChains, 1, 8, 
/*190341*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VRSQRT28SDZmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*190354*/            0, // EndSwitchType
/*190355*/          /*Scope*/ 51, /*->190407*/
/*190356*/            OPC_RecordChild2, // #3 = $src0
/*190357*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->190382
/*190360*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190362*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*190365*/              OPC_EmitMergeInputChains, 1, 9, 
/*190368*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 29
                        // Dst: (VRSQRT28SSZmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*190382*/            /*SwitchType*/ 22, MVT::v2f64,// ->190406
/*190384*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190386*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*190389*/              OPC_EmitMergeInputChains, 1, 9, 
/*190392*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 29
                        // Dst: (VRSQRT28SDZmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*190406*/            0, // EndSwitchType
/*190407*/          /*Scope*/ 42, /*->190450*/
/*190408*/            OPC_MoveChild2,
/*190409*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*190412*/            OPC_MoveChild0,
/*190413*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*190416*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*190418*/            OPC_CheckType, MVT::v4i32,
/*190420*/            OPC_MoveParent,
/*190421*/            OPC_MoveParent,
/*190422*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->190436
/*190425*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190427*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRSQRT28SSZrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190436*/            /*SwitchType*/ 11, MVT::v2f64,// ->190449
/*190438*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190440*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZrkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRSQRT28SDZrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190449*/            0, // EndSwitchType
/*190450*/          /*Scope*/ 31, /*->190482*/
/*190451*/            OPC_RecordChild2, // #3 = $src0
/*190452*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->190467
/*190455*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190457*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                        // Dst: (VRSQRT28SSZrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190467*/            /*SwitchType*/ 12, MVT::v2f64,// ->190481
/*190469*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190471*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                        // Dst: (VRSQRT28SDZrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190481*/            0, // EndSwitchType
/*190482*/          0, /*End of Scope*/
/*190483*/        /*Scope*/ 80, /*->190564*/
/*190484*/          OPC_CheckChild2Integer, 8, 
/*190486*/          OPC_MoveParent,
/*190487*/          OPC_Scope, 42, /*->190531*/ // 2 children in Scope
/*190489*/            OPC_MoveChild2,
/*190490*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*190493*/            OPC_MoveChild0,
/*190494*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*190497*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*190499*/            OPC_CheckType, MVT::v4i32,
/*190501*/            OPC_MoveParent,
/*190502*/            OPC_MoveParent,
/*190503*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->190517
/*190506*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190508*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZrbkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRSQRT28SSZrbkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190517*/            /*SwitchType*/ 11, MVT::v2f64,// ->190530
/*190519*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190521*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZrbkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRSQRT28SDZrbkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190530*/            0, // EndSwitchType
/*190531*/          /*Scope*/ 31, /*->190563*/
/*190532*/            OPC_RecordChild2, // #3 = $src0
/*190533*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->190548
/*190536*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190538*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZrbk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                        // Dst: (VRSQRT28SSZrbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190548*/            /*SwitchType*/ 12, MVT::v2f64,// ->190562
/*190550*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*190552*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZrbk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                        // Dst: (VRSQRT28SDZrbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190562*/            0, // EndSwitchType
/*190563*/          0, /*End of Scope*/
/*190564*/        0, /*End of Scope*/
/*190565*/      /*SwitchOpcode*/ 26|128,2/*282*/, TARGET_VAL(X86ISD::FGETEXPS_RND),// ->190851
/*190569*/        OPC_RecordChild0, // #1 = $src1
/*190570*/        OPC_RecordChild1, // #2 = $src2
/*190571*/        OPC_Scope, 67|128,1/*195*/, /*->190769*/ // 2 children in Scope
/*190574*/          OPC_CheckChild2Integer, 4, 
/*190576*/          OPC_MoveParent,
/*190577*/          OPC_Scope, 62, /*->190641*/ // 4 children in Scope
/*190579*/            OPC_MoveChild2,
/*190580*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*190583*/            OPC_MoveChild0,
/*190584*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*190587*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*190589*/            OPC_CheckType, MVT::v4i32,
/*190591*/            OPC_MoveParent,
/*190592*/            OPC_MoveParent,
/*190593*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->190617
/*190596*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190598*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*190601*/              OPC_EmitMergeInputChains, 1, 8, 
/*190604*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VGETEXPSSZmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*190617*/            /*SwitchType*/ 21, MVT::v2f64,// ->190640
/*190619*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190621*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*190624*/              OPC_EmitMergeInputChains, 1, 8, 
/*190627*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VGETEXPSDZmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*190640*/            0, // EndSwitchType
/*190641*/          /*Scope*/ 51, /*->190693*/
/*190642*/            OPC_RecordChild2, // #3 = $src0
/*190643*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->190668
/*190646*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190648*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*190651*/              OPC_EmitMergeInputChains, 1, 9, 
/*190654*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 29
                        // Dst: (VGETEXPSSZmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*190668*/            /*SwitchType*/ 22, MVT::v2f64,// ->190692
/*190670*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190672*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*190675*/              OPC_EmitMergeInputChains, 1, 9, 
/*190678*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 29
                        // Dst: (VGETEXPSDZmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*190692*/            0, // EndSwitchType
/*190693*/          /*Scope*/ 42, /*->190736*/
/*190694*/            OPC_MoveChild2,
/*190695*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*190698*/            OPC_MoveChild0,
/*190699*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*190702*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*190704*/            OPC_CheckType, MVT::v4i32,
/*190706*/            OPC_MoveParent,
/*190707*/            OPC_MoveParent,
/*190708*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->190722
/*190711*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190713*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VGETEXPSSZrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190722*/            /*SwitchType*/ 11, MVT::v2f64,// ->190735
/*190724*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190726*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZrkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VGETEXPSDZrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190735*/            0, // EndSwitchType
/*190736*/          /*Scope*/ 31, /*->190768*/
/*190737*/            OPC_RecordChild2, // #3 = $src0
/*190738*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->190753
/*190741*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190743*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                        // Dst: (VGETEXPSSZrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190753*/            /*SwitchType*/ 12, MVT::v2f64,// ->190767
/*190755*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190757*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                        // Dst: (VGETEXPSDZrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190767*/            0, // EndSwitchType
/*190768*/          0, /*End of Scope*/
/*190769*/        /*Scope*/ 80, /*->190850*/
/*190770*/          OPC_CheckChild2Integer, 8, 
/*190772*/          OPC_MoveParent,
/*190773*/          OPC_Scope, 42, /*->190817*/ // 2 children in Scope
/*190775*/            OPC_MoveChild2,
/*190776*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*190779*/            OPC_MoveChild0,
/*190780*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*190783*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*190785*/            OPC_CheckType, MVT::v4i32,
/*190787*/            OPC_MoveParent,
/*190788*/            OPC_MoveParent,
/*190789*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->190803
/*190792*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190794*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZrbkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VGETEXPSSZrbkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190803*/            /*SwitchType*/ 11, MVT::v2f64,// ->190816
/*190805*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190807*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZrbkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VGETEXPSDZrbkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190816*/            0, // EndSwitchType
/*190817*/          /*Scope*/ 31, /*->190849*/
/*190818*/            OPC_RecordChild2, // #3 = $src0
/*190819*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->190834
/*190822*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190824*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZrbk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                        // Dst: (VGETEXPSSZrbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*190834*/            /*SwitchType*/ 12, MVT::v2f64,// ->190848
/*190836*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190838*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZrbk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                        // Dst: (VGETEXPSDZrbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*190848*/            0, // EndSwitchType
/*190849*/          0, /*End of Scope*/
/*190850*/        0, /*End of Scope*/
/*190851*/      /*SwitchOpcode*/ 49|128,2/*305*/, TARGET_VAL(X86ISD::FSQRTS_RND),// ->191160
/*190855*/        OPC_RecordChild0, // #1 = $src1
/*190856*/        OPC_RecordChild1, // #2 = $src2
/*190857*/        OPC_Scope, 35|128,1/*163*/, /*->191023*/ // 4 children in Scope
/*190860*/          OPC_CheckChild2Integer, 4, 
/*190862*/          OPC_MoveParent,
/*190863*/          OPC_Scope, 62, /*->190927*/ // 3 children in Scope
/*190865*/            OPC_MoveChild2,
/*190866*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*190869*/            OPC_MoveChild0,
/*190870*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*190873*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*190875*/            OPC_CheckType, MVT::v4i32,
/*190877*/            OPC_MoveParent,
/*190878*/            OPC_MoveParent,
/*190879*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->190903
/*190882*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190884*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*190887*/              OPC_EmitMergeInputChains, 1, 8, 
/*190890*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VSQRTSSZm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*190903*/            /*SwitchType*/ 21, MVT::v2f64,// ->190926
/*190905*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190907*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*190910*/              OPC_EmitMergeInputChains, 1, 8, 
/*190913*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 36
                        // Dst: (VSQRTSDZm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*190926*/            0, // EndSwitchType
/*190927*/          /*Scope*/ 51, /*->190979*/
/*190928*/            OPC_RecordChild2, // #3 = $src0
/*190929*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->190954
/*190932*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190934*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*190937*/              OPC_EmitMergeInputChains, 1, 9, 
/*190940*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 29
                        // Dst: (VSQRTSSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*190954*/            /*SwitchType*/ 22, MVT::v2f64,// ->190978
/*190956*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190958*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*190961*/              OPC_EmitMergeInputChains, 1, 9, 
/*190964*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 29
                        // Dst: (VSQRTSDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*190978*/            0, // EndSwitchType
/*190979*/          /*Scope*/ 42, /*->191022*/
/*190980*/            OPC_MoveChild2,
/*190981*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*190984*/            OPC_MoveChild0,
/*190985*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*190988*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*190990*/            OPC_CheckType, MVT::v4i32,
/*190992*/            OPC_MoveParent,
/*190993*/            OPC_MoveParent,
/*190994*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->191008
/*190997*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190999*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZr_Intkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VSQRTSSZr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*191008*/            /*SwitchType*/ 11, MVT::v2f64,// ->191021
/*191010*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191012*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZr_Intkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VSQRTSDZr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*191021*/            0, // EndSwitchType
/*191022*/          0, /*End of Scope*/
/*191023*/        /*Scope*/ 55, /*->191079*/
/*191024*/          OPC_RecordChild2, // #3 = $rc
/*191025*/          OPC_MoveChild2,
/*191026*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*191029*/          OPC_MoveParent,
/*191030*/          OPC_MoveParent,
/*191031*/          OPC_MoveChild2,
/*191032*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*191035*/          OPC_MoveChild0,
/*191036*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*191039*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*191041*/          OPC_CheckType, MVT::v4i32,
/*191043*/          OPC_MoveParent,
/*191044*/          OPC_MoveParent,
/*191045*/          OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->191062
/*191048*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191050*/            OPC_EmitConvertToTarget, 3,
/*191052*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSQRTSSZrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*191062*/          /*SwitchType*/ 14, MVT::v2f64,// ->191078
/*191064*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191066*/            OPC_EmitConvertToTarget, 3,
/*191068*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSQRTSDZrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*191078*/          0, // EndSwitchType
/*191079*/        /*Scope*/ 34, /*->191114*/
/*191080*/          OPC_CheckChild2Integer, 4, 
/*191082*/          OPC_MoveParent,
/*191083*/          OPC_RecordChild2, // #3 = $src0
/*191084*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->191099
/*191087*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191089*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                      // Dst: (VSQRTSSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*191099*/          /*SwitchType*/ 12, MVT::v2f64,// ->191113
/*191101*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191103*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VSQRTSDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*191113*/          0, // EndSwitchType
/*191114*/        /*Scope*/ 44, /*->191159*/
/*191115*/          OPC_RecordChild2, // #3 = $rc
/*191116*/          OPC_MoveChild2,
/*191117*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*191120*/          OPC_MoveParent,
/*191121*/          OPC_MoveParent,
/*191122*/          OPC_RecordChild2, // #4 = $src0
/*191123*/          OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->191141
/*191126*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191128*/            OPC_EmitConvertToTarget, 3,
/*191130*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VSQRTSSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*191141*/          /*SwitchType*/ 15, MVT::v2f64,// ->191158
/*191143*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191145*/            OPC_EmitConvertToTarget, 3,
/*191147*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VSQRTSDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*191158*/          0, // EndSwitchType
/*191159*/        0, /*End of Scope*/
/*191160*/      /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::VRNDSCALES),// ->191389
/*191164*/        OPC_RecordChild0, // #1 = $src1
/*191165*/        OPC_RecordChild1, // #2 = $src2
/*191166*/        OPC_RecordChild2, // #3 = $src3
/*191167*/        OPC_MoveChild2,
/*191168*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*191171*/        OPC_MoveParent,
/*191172*/        OPC_MoveParent,
/*191173*/        OPC_Scope, 68, /*->191243*/ // 4 children in Scope
/*191175*/          OPC_MoveChild2,
/*191176*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*191179*/          OPC_MoveChild0,
/*191180*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*191183*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*191185*/          OPC_CheckType, MVT::v4i32,
/*191187*/          OPC_MoveParent,
/*191188*/          OPC_MoveParent,
/*191189*/          OPC_SwitchType /*2 cases */, 24, MVT::v4f32,// ->191216
/*191192*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191194*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*191197*/            OPC_EmitMergeInputChains, 1, 9, 
/*191200*/            OPC_EmitConvertToTarget, 3,
/*191202*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 10, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 34
                      // Dst: (VRNDSCALESSZm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*191216*/          /*SwitchType*/ 24, MVT::v2f64,// ->191242
/*191218*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191220*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*191223*/            OPC_EmitMergeInputChains, 1, 9, 
/*191226*/            OPC_EmitConvertToTarget, 3,
/*191228*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 10, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 34
                      // Dst: (VRNDSCALESDZm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*191242*/          0, // EndSwitchType
/*191243*/        /*Scope*/ 57, /*->191301*/
/*191244*/          OPC_RecordChild2, // #4 = $src0
/*191245*/          OPC_SwitchType /*2 cases */, 25, MVT::v4f32,// ->191273
/*191248*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191250*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #5 #6 #7 #8 #9 + chain result
/*191253*/            OPC_EmitMergeInputChains, 1, 10, 
/*191256*/            OPC_EmitConvertToTarget, 3,
/*191258*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 9/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 11, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 27
                      // Dst: (VRNDSCALESSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*191273*/          /*SwitchType*/ 25, MVT::v2f64,// ->191300
/*191275*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191277*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #5 #6 #7 #8 #9 + chain result
/*191280*/            OPC_EmitMergeInputChains, 1, 10, 
/*191283*/            OPC_EmitConvertToTarget, 3,
/*191285*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 9/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 11, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 27
                      // Dst: (VRNDSCALESDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*191300*/          0, // EndSwitchType
/*191301*/        /*Scope*/ 48, /*->191350*/
/*191302*/          OPC_MoveChild2,
/*191303*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*191306*/          OPC_MoveChild0,
/*191307*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*191310*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*191312*/          OPC_CheckType, MVT::v4i32,
/*191314*/          OPC_MoveParent,
/*191315*/          OPC_MoveParent,
/*191316*/          OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->191333
/*191319*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191321*/            OPC_EmitConvertToTarget, 3,
/*191323*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VRNDSCALESSZr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*191333*/          /*SwitchType*/ 14, MVT::v2f64,// ->191349
/*191335*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191337*/            OPC_EmitConvertToTarget, 3,
/*191339*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VRNDSCALESDZr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*191349*/          0, // EndSwitchType
/*191350*/        /*Scope*/ 37, /*->191388*/
/*191351*/          OPC_RecordChild2, // #4 = $src0
/*191352*/          OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->191370
/*191355*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191357*/            OPC_EmitConvertToTarget, 3,
/*191359*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALESSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*191370*/          /*SwitchType*/ 15, MVT::v2f64,// ->191387
/*191372*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191374*/            OPC_EmitConvertToTarget, 3,
/*191376*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALESDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*191387*/          0, // EndSwitchType
/*191388*/        0, /*End of Scope*/
/*191389*/      /*SwitchOpcode*/ 67|128,1/*195*/, TARGET_VAL(X86ISD::FMINS),// ->191588
/*191393*/        OPC_RecordChild0, // #1 = $src1
/*191394*/        OPC_RecordChild1, // #2 = $src2
/*191395*/        OPC_MoveParent,
/*191396*/        OPC_Scope, 62, /*->191460*/ // 4 children in Scope
/*191398*/          OPC_MoveChild2,
/*191399*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*191402*/          OPC_MoveChild0,
/*191403*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*191406*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*191408*/          OPC_CheckType, MVT::v4i32,
/*191410*/          OPC_MoveParent,
/*191411*/          OPC_MoveParent,
/*191412*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->191436
/*191415*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191417*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*191420*/            OPC_EmitMergeInputChains, 1, 8, 
/*191423*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmins:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 31
                      // Dst: (VMINSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*191436*/          /*SwitchType*/ 21, MVT::v2f64,// ->191459
/*191438*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191440*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*191443*/            OPC_EmitMergeInputChains, 1, 8, 
/*191446*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmins:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 31
                      // Dst: (VMINSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*191459*/          0, // EndSwitchType
/*191460*/        /*Scope*/ 51, /*->191512*/
/*191461*/          OPC_RecordChild2, // #3 = $src0
/*191462*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->191487
/*191465*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191467*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*191470*/            OPC_EmitMergeInputChains, 1, 9, 
/*191473*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmins:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VMINSSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*191487*/          /*SwitchType*/ 22, MVT::v2f64,// ->191511
/*191489*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191491*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*191494*/            OPC_EmitMergeInputChains, 1, 9, 
/*191497*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmins:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VMINSDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*191511*/          0, // EndSwitchType
/*191512*/        /*Scope*/ 42, /*->191555*/
/*191513*/          OPC_MoveChild2,
/*191514*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*191517*/          OPC_MoveChild0,
/*191518*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*191521*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*191523*/          OPC_CheckType, MVT::v4i32,
/*191525*/          OPC_MoveParent,
/*191526*/          OPC_MoveParent,
/*191527*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->191541
/*191530*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191532*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrr_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmins:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMINSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*191541*/          /*SwitchType*/ 11, MVT::v2f64,// ->191554
/*191543*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191545*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrr_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmins:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMINSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*191554*/          0, // EndSwitchType
/*191555*/        /*Scope*/ 31, /*->191587*/
/*191556*/          OPC_RecordChild2, // #3 = $src0
/*191557*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->191572
/*191560*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191562*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmins:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VMINSSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*191572*/          /*SwitchType*/ 12, MVT::v2f64,// ->191586
/*191574*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191576*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmins:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VMINSDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*191586*/          0, // EndSwitchType
/*191587*/        0, /*End of Scope*/
/*191588*/      /*SwitchOpcode*/ 67|128,1/*195*/, TARGET_VAL(X86ISD::FMAXS),// ->191787
/*191592*/        OPC_RecordChild0, // #1 = $src1
/*191593*/        OPC_RecordChild1, // #2 = $src2
/*191594*/        OPC_MoveParent,
/*191595*/        OPC_Scope, 62, /*->191659*/ // 4 children in Scope
/*191597*/          OPC_MoveChild2,
/*191598*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*191601*/          OPC_MoveChild0,
/*191602*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*191605*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*191607*/          OPC_CheckType, MVT::v4i32,
/*191609*/          OPC_MoveParent,
/*191610*/          OPC_MoveParent,
/*191611*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->191635
/*191614*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191616*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*191619*/            OPC_EmitMergeInputChains, 1, 8, 
/*191622*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 31
                      // Dst: (VMAXSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*191635*/          /*SwitchType*/ 21, MVT::v2f64,// ->191658
/*191637*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191639*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*191642*/            OPC_EmitMergeInputChains, 1, 8, 
/*191645*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 31
                      // Dst: (VMAXSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*191658*/          0, // EndSwitchType
/*191659*/        /*Scope*/ 51, /*->191711*/
/*191660*/          OPC_RecordChild2, // #3 = $src0
/*191661*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->191686
/*191664*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191666*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*191669*/            OPC_EmitMergeInputChains, 1, 9, 
/*191672*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VMAXSSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*191686*/          /*SwitchType*/ 22, MVT::v2f64,// ->191710
/*191688*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191690*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*191693*/            OPC_EmitMergeInputChains, 1, 9, 
/*191696*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VMAXSDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*191710*/          0, // EndSwitchType
/*191711*/        /*Scope*/ 42, /*->191754*/
/*191712*/          OPC_MoveChild2,
/*191713*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*191716*/          OPC_MoveChild0,
/*191717*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*191720*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*191722*/          OPC_CheckType, MVT::v4i32,
/*191724*/          OPC_MoveParent,
/*191725*/          OPC_MoveParent,
/*191726*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->191740
/*191729*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191731*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrr_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMAXSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*191740*/          /*SwitchType*/ 11, MVT::v2f64,// ->191753
/*191742*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191744*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrr_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMAXSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*191753*/          0, // EndSwitchType
/*191754*/        /*Scope*/ 31, /*->191786*/
/*191755*/          OPC_RecordChild2, // #3 = $src0
/*191756*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->191771
/*191759*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191761*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VMAXSSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*191771*/          /*SwitchType*/ 12, MVT::v2f64,// ->191785
/*191773*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191775*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VMAXSDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*191785*/          0, // EndSwitchType
/*191786*/        0, /*End of Scope*/
/*191787*/      /*SwitchOpcode*/ 67|128,1/*195*/, TARGET_VAL(X86ISD::RCP14S),// ->191986
/*191791*/        OPC_RecordChild0, // #1 = $src1
/*191792*/        OPC_RecordChild1, // #2 = $src2
/*191793*/        OPC_MoveParent,
/*191794*/        OPC_Scope, 62, /*->191858*/ // 4 children in Scope
/*191796*/          OPC_MoveChild2,
/*191797*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*191800*/          OPC_MoveChild0,
/*191801*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*191804*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*191806*/          OPC_CheckType, MVT::v4i32,
/*191808*/          OPC_MoveParent,
/*191809*/          OPC_MoveParent,
/*191810*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->191834
/*191813*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191815*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*191818*/            OPC_EmitMergeInputChains, 1, 8, 
/*191821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 31
                      // Dst: (VRCP14SSZrmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*191834*/          /*SwitchType*/ 21, MVT::v2f64,// ->191857
/*191836*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191838*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*191841*/            OPC_EmitMergeInputChains, 1, 8, 
/*191844*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 31
                      // Dst: (VRCP14SDZrmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*191857*/          0, // EndSwitchType
/*191858*/        /*Scope*/ 51, /*->191910*/
/*191859*/          OPC_RecordChild2, // #3 = $src0
/*191860*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->191885
/*191863*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191865*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*191868*/            OPC_EmitMergeInputChains, 1, 9, 
/*191871*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VRCP14SSZrmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*191885*/          /*SwitchType*/ 22, MVT::v2f64,// ->191909
/*191887*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191889*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*191892*/            OPC_EmitMergeInputChains, 1, 9, 
/*191895*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VRCP14SDZrmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*191909*/          0, // EndSwitchType
/*191910*/        /*Scope*/ 42, /*->191953*/
/*191911*/          OPC_MoveChild2,
/*191912*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*191915*/          OPC_MoveChild0,
/*191916*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*191919*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*191921*/          OPC_CheckType, MVT::v4i32,
/*191923*/          OPC_MoveParent,
/*191924*/          OPC_MoveParent,
/*191925*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->191939
/*191928*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191930*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SSZrrkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRCP14SSZrrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*191939*/          /*SwitchType*/ 11, MVT::v2f64,// ->191952
/*191941*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191943*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SDZrrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRCP14SDZrrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*191952*/          0, // EndSwitchType
/*191953*/        /*Scope*/ 31, /*->191985*/
/*191954*/          OPC_RecordChild2, // #3 = $src0
/*191955*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->191970
/*191958*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191960*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SSZrrk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VRCP14SSZrrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*191970*/          /*SwitchType*/ 12, MVT::v2f64,// ->191984
/*191972*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191974*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SDZrrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VRCP14SDZrrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*191984*/          0, // EndSwitchType
/*191985*/        0, /*End of Scope*/
/*191986*/      /*SwitchOpcode*/ 67|128,1/*195*/, TARGET_VAL(X86ISD::RSQRT14S),// ->192185
/*191990*/        OPC_RecordChild0, // #1 = $src1
/*191991*/        OPC_RecordChild1, // #2 = $src2
/*191992*/        OPC_MoveParent,
/*191993*/        OPC_Scope, 62, /*->192057*/ // 4 children in Scope
/*191995*/          OPC_MoveChild2,
/*191996*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*191999*/          OPC_MoveChild0,
/*192000*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*192003*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*192005*/          OPC_CheckType, MVT::v4i32,
/*192007*/          OPC_MoveParent,
/*192008*/          OPC_MoveParent,
/*192009*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->192033
/*192012*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192014*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*192017*/            OPC_EmitMergeInputChains, 1, 8, 
/*192020*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 31
                      // Dst: (VRSQRT14SSZrmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*192033*/          /*SwitchType*/ 21, MVT::v2f64,// ->192056
/*192035*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192037*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*192040*/            OPC_EmitMergeInputChains, 1, 8, 
/*192043*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 1, 3, 4, 5, 6, 7, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 31
                      // Dst: (VRSQRT14SDZrmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*192056*/          0, // EndSwitchType
/*192057*/        /*Scope*/ 51, /*->192109*/
/*192058*/          OPC_RecordChild2, // #3 = $src0
/*192059*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->192084
/*192062*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192064*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*192067*/            OPC_EmitMergeInputChains, 1, 9, 
/*192070*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VRSQRT14SSZrmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*192084*/          /*SwitchType*/ 22, MVT::v2f64,// ->192108
/*192086*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192088*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*192091*/            OPC_EmitMergeInputChains, 1, 9, 
/*192094*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 3, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VRSQRT14SDZrmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*192108*/          0, // EndSwitchType
/*192109*/        /*Scope*/ 42, /*->192152*/
/*192110*/          OPC_MoveChild2,
/*192111*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*192114*/          OPC_MoveChild0,
/*192115*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*192118*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*192120*/          OPC_CheckType, MVT::v4i32,
/*192122*/          OPC_MoveParent,
/*192123*/          OPC_MoveParent,
/*192124*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->192138
/*192127*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192129*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SSZrrkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRSQRT14SSZrrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*192138*/          /*SwitchType*/ 11, MVT::v2f64,// ->192151
/*192140*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192142*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SDZrrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRSQRT14SDZrrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*192151*/          0, // EndSwitchType
/*192152*/        /*Scope*/ 31, /*->192184*/
/*192153*/          OPC_RecordChild2, // #3 = $src0
/*192154*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->192169
/*192157*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192159*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SSZrrk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT14SSZrrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*192169*/          /*SwitchType*/ 12, MVT::v2f64,// ->192183
/*192171*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192173*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SDZrrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT14SDZrrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*192183*/          0, // EndSwitchType
/*192184*/        0, /*End of Scope*/
/*192185*/      /*SwitchOpcode*/ 100, TARGET_VAL(X86ISD::VRNDSCALES_RND),// ->192288
/*192188*/        OPC_RecordChild0, // #1 = $src1
/*192189*/        OPC_RecordChild1, // #2 = $src2
/*192190*/        OPC_RecordChild2, // #3 = $src3
/*192191*/        OPC_MoveChild2,
/*192192*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*192195*/        OPC_MoveParent,
/*192196*/        OPC_CheckChild3Integer, 8, 
/*192198*/        OPC_MoveParent,
/*192199*/        OPC_Scope, 48, /*->192249*/ // 2 children in Scope
/*192201*/          OPC_MoveChild2,
/*192202*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*192205*/          OPC_MoveChild0,
/*192206*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*192209*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*192211*/          OPC_CheckType, MVT::v4i32,
/*192213*/          OPC_MoveParent,
/*192214*/          OPC_MoveParent,
/*192215*/          OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->192232
/*192218*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192220*/            OPC_EmitConvertToTarget, 3,
/*192222*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScalesRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VRNDSCALESSZrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*192232*/          /*SwitchType*/ 14, MVT::v2f64,// ->192248
/*192234*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192236*/            OPC_EmitConvertToTarget, 3,
/*192238*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScalesRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VRNDSCALESDZrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*192248*/          0, // EndSwitchType
/*192249*/        /*Scope*/ 37, /*->192287*/
/*192250*/          OPC_RecordChild2, // #4 = $src0
/*192251*/          OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->192269
/*192254*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192256*/            OPC_EmitConvertToTarget, 3,
/*192258*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScalesRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 14
                      // Dst: (VRNDSCALESSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*192269*/          /*SwitchType*/ 15, MVT::v2f64,// ->192286
/*192271*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192273*/            OPC_EmitConvertToTarget, 3,
/*192275*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScalesRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 14
                      // Dst: (VRNDSCALESDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*192286*/          0, // EndSwitchType
/*192287*/        0, /*End of Scope*/
/*192288*/      /*SwitchOpcode*/ 100, TARGET_VAL(X86ISD::VRANGES_RND),// ->192391
/*192291*/        OPC_RecordChild0, // #1 = $src1
/*192292*/        OPC_RecordChild1, // #2 = $src2
/*192293*/        OPC_RecordChild2, // #3 = $src3
/*192294*/        OPC_MoveChild2,
/*192295*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*192298*/        OPC_MoveParent,
/*192299*/        OPC_CheckChild3Integer, 8, 
/*192301*/        OPC_MoveParent,
/*192302*/        OPC_Scope, 48, /*->192352*/ // 2 children in Scope
/*192304*/          OPC_MoveChild2,
/*192305*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*192308*/          OPC_MoveChild0,
/*192309*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*192312*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*192314*/          OPC_CheckType, MVT::v4i32,
/*192316*/          OPC_MoveParent,
/*192317*/          OPC_MoveParent,
/*192318*/          OPC_SwitchType /*2 cases */, 14, MVT::v2f64,// ->192335
/*192321*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*192323*/            OPC_EmitConvertToTarget, 3,
/*192325*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrribkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RangesRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VRANGESDZrribkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*192335*/          /*SwitchType*/ 14, MVT::v4f32,// ->192351
/*192337*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*192339*/            OPC_EmitConvertToTarget, 3,
/*192341*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrribkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RangesRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VRANGESSZrribkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*192351*/          0, // EndSwitchType
/*192352*/        /*Scope*/ 37, /*->192390*/
/*192353*/          OPC_RecordChild2, // #4 = $src0
/*192354*/          OPC_SwitchType /*2 cases */, 15, MVT::v2f64,// ->192372
/*192357*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*192359*/            OPC_EmitConvertToTarget, 3,
/*192361*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrribk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RangesRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 14
                      // Dst: (VRANGESDZrribk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*192372*/          /*SwitchType*/ 15, MVT::v4f32,// ->192389
/*192374*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*192376*/            OPC_EmitConvertToTarget, 3,
/*192378*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrribk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RangesRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 14
                      // Dst: (VRANGESSZrribk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*192389*/          0, // EndSwitchType
/*192390*/        0, /*End of Scope*/
/*192391*/      /*SwitchOpcode*/ 100, TARGET_VAL(X86ISD::VREDUCES_RND),// ->192494
/*192394*/        OPC_RecordChild0, // #1 = $src1
/*192395*/        OPC_RecordChild1, // #2 = $src2
/*192396*/        OPC_RecordChild2, // #3 = $src3
/*192397*/        OPC_MoveChild2,
/*192398*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*192401*/        OPC_MoveParent,
/*192402*/        OPC_CheckChild3Integer, 8, 
/*192404*/        OPC_MoveParent,
/*192405*/        OPC_Scope, 48, /*->192455*/ // 2 children in Scope
/*192407*/          OPC_MoveChild2,
/*192408*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*192411*/          OPC_MoveChild0,
/*192412*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*192415*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*192417*/          OPC_CheckType, MVT::v4i32,
/*192419*/          OPC_MoveParent,
/*192420*/          OPC_MoveParent,
/*192421*/          OPC_SwitchType /*2 cases */, 14, MVT::v2f64,// ->192438
/*192424*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*192426*/            OPC_EmitConvertToTarget, 3,
/*192428*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrribkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86ReducesRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VREDUCESDZrribkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*192438*/          /*SwitchType*/ 14, MVT::v4f32,// ->192454
/*192440*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*192442*/            OPC_EmitConvertToTarget, 3,
/*192444*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrribkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86ReducesRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VREDUCESSZrribkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*192454*/          0, // EndSwitchType
/*192455*/        /*Scope*/ 37, /*->192493*/
/*192456*/          OPC_RecordChild2, // #4 = $src0
/*192457*/          OPC_SwitchType /*2 cases */, 15, MVT::v2f64,// ->192475
/*192460*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*192462*/            OPC_EmitConvertToTarget, 3,
/*192464*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrribk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86ReducesRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 14
                      // Dst: (VREDUCESDZrribk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*192475*/          /*SwitchType*/ 15, MVT::v4f32,// ->192492
/*192477*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*192479*/            OPC_EmitConvertToTarget, 3,
/*192481*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrribk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86ReducesRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 14
                      // Dst: (VREDUCESSZrribk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*192492*/          0, // EndSwitchType
/*192493*/        0, /*End of Scope*/
/*192494*/      /*SwitchOpcode*/ 100, TARGET_VAL(X86ISD::VGETMANTS_RND),// ->192597
/*192497*/        OPC_RecordChild0, // #1 = $src1
/*192498*/        OPC_RecordChild1, // #2 = $src2
/*192499*/        OPC_RecordChild2, // #3 = $src3
/*192500*/        OPC_MoveChild2,
/*192501*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*192504*/        OPC_MoveParent,
/*192505*/        OPC_CheckChild3Integer, 8, 
/*192507*/        OPC_MoveParent,
/*192508*/        OPC_Scope, 48, /*->192558*/ // 2 children in Scope
/*192510*/          OPC_MoveChild2,
/*192511*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*192514*/          OPC_MoveChild0,
/*192515*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*192518*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*192520*/          OPC_CheckType, MVT::v4i32,
/*192522*/          OPC_MoveParent,
/*192523*/          OPC_MoveParent,
/*192524*/          OPC_SwitchType /*2 cases */, 14, MVT::v2f64,// ->192541
/*192527*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192529*/            OPC_EmitConvertToTarget, 3,
/*192531*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrribkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMantsRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VGETMANTSDZrribkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*192541*/          /*SwitchType*/ 14, MVT::v4f32,// ->192557
/*192543*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192545*/            OPC_EmitConvertToTarget, 3,
/*192547*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrribkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMantsRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VGETMANTSSZrribkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*192557*/          0, // EndSwitchType
/*192558*/        /*Scope*/ 37, /*->192596*/
/*192559*/          OPC_RecordChild2, // #4 = $src0
/*192560*/          OPC_SwitchType /*2 cases */, 15, MVT::v2f64,// ->192578
/*192563*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192565*/            OPC_EmitConvertToTarget, 3,
/*192567*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrribk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMantsRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 14
                      // Dst: (VGETMANTSDZrribk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*192578*/          /*SwitchType*/ 15, MVT::v4f32,// ->192595
/*192580*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192582*/            OPC_EmitConvertToTarget, 3,
/*192584*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrribk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMantsRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 14
                      // Dst: (VGETMANTSSZrribk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*192595*/          0, // EndSwitchType
/*192596*/        0, /*End of Scope*/
/*192597*/      /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::FMINS_RND),// ->192682
/*192600*/        OPC_RecordChild0, // #1 = $src1
/*192601*/        OPC_RecordChild1, // #2 = $src2
/*192602*/        OPC_CheckChild2Integer, 8, 
/*192604*/        OPC_MoveParent,
/*192605*/        OPC_Scope, 42, /*->192649*/ // 2 children in Scope
/*192607*/          OPC_MoveChild2,
/*192608*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*192611*/          OPC_MoveChild0,
/*192612*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*192615*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*192617*/          OPC_CheckType, MVT::v4i32,
/*192619*/          OPC_MoveParent,
/*192620*/          OPC_MoveParent,
/*192621*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->192635
/*192624*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192626*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrrb_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fminRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMINSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*192635*/          /*SwitchType*/ 11, MVT::v2f64,// ->192648
/*192637*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192639*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrrb_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fminRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMINSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*192648*/          0, // EndSwitchType
/*192649*/        /*Scope*/ 31, /*->192681*/
/*192650*/          OPC_RecordChild2, // #3 = $src0
/*192651*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->192666
/*192654*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192656*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrrb_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fminRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                      // Dst: (VMINSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*192666*/          /*SwitchType*/ 12, MVT::v2f64,// ->192680
/*192668*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192670*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrrb_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fminRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VMINSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*192680*/          0, // EndSwitchType
/*192681*/        0, /*End of Scope*/
/*192682*/      /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::FMAXS_RND),// ->192767
/*192685*/        OPC_RecordChild0, // #1 = $src1
/*192686*/        OPC_RecordChild1, // #2 = $src2
/*192687*/        OPC_CheckChild2Integer, 8, 
/*192689*/        OPC_MoveParent,
/*192690*/        OPC_Scope, 42, /*->192734*/ // 2 children in Scope
/*192692*/          OPC_MoveChild2,
/*192693*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*192696*/          OPC_MoveChild0,
/*192697*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*192700*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*192702*/          OPC_CheckType, MVT::v4i32,
/*192704*/          OPC_MoveParent,
/*192705*/          OPC_MoveParent,
/*192706*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->192720
/*192709*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192711*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrrb_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMAXSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*192720*/          /*SwitchType*/ 11, MVT::v2f64,// ->192733
/*192722*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192724*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrrb_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMAXSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*192733*/          0, // EndSwitchType
/*192734*/        /*Scope*/ 31, /*->192766*/
/*192735*/          OPC_RecordChild2, // #3 = $src0
/*192736*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->192751
/*192739*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192741*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrrb_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                      // Dst: (VMAXSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*192751*/          /*SwitchType*/ 12, MVT::v2f64,// ->192765
/*192753*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192755*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrrb_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VMAXSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*192765*/          0, // EndSwitchType
/*192766*/        0, /*End of Scope*/
/*192767*/      /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::MOVSS),// ->192819
/*192770*/        OPC_RecordChild0, // #1 = $src1
/*192771*/        OPC_RecordChild1, // #2 = $src2
/*192772*/        OPC_MoveParent,
/*192773*/        OPC_Scope, 27, /*->192802*/ // 2 children in Scope
/*192775*/          OPC_MoveChild2,
/*192776*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*192779*/          OPC_MoveChild0,
/*192780*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*192783*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*192785*/          OPC_CheckType, MVT::v4i32,
/*192787*/          OPC_MoveParent,
/*192788*/          OPC_MoveParent,
/*192789*/          OPC_CheckType, MVT::v4f32,
/*192791*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192793*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrrkz), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                    // Dst: (VMOVSSZrrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*192802*/        /*Scope*/ 15, /*->192818*/
/*192803*/          OPC_RecordChild2, // #3 = $src0
/*192804*/          OPC_CheckType, MVT::v4f32,
/*192806*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192808*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrrk), 0,
                        MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                    // Dst: (VMOVSSZrrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*192818*/        0, /*End of Scope*/
/*192819*/      /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::MOVSD),// ->192871
/*192822*/        OPC_RecordChild0, // #1 = $src1
/*192823*/        OPC_RecordChild1, // #2 = $src2
/*192824*/        OPC_MoveParent,
/*192825*/        OPC_Scope, 27, /*->192854*/ // 2 children in Scope
/*192827*/          OPC_MoveChild2,
/*192828*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*192831*/          OPC_MoveChild0,
/*192832*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*192835*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*192837*/          OPC_CheckType, MVT::v4i32,
/*192839*/          OPC_MoveParent,
/*192840*/          OPC_MoveParent,
/*192841*/          OPC_CheckType, MVT::v2f64,
/*192843*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192845*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrrkz), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                    // Dst: (VMOVSDZrrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*192854*/        /*Scope*/ 15, /*->192870*/
/*192855*/          OPC_RecordChild2, // #3 = $src0
/*192856*/          OPC_CheckType, MVT::v2f64,
/*192858*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192860*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrrk), 0,
                        MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                    // Dst: (VMOVSDZrrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*192870*/        0, /*End of Scope*/
/*192871*/      0, // EndSwitchOpcode
/*192872*/    0, /*End of Scope*/
/*192873*/  /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::FMADD_RND),// ->192951
/*192876*/    OPC_RecordChild0, // #0 = $src2
/*192877*/    OPC_RecordChild1, // #1 = $src1
/*192878*/    OPC_RecordChild2, // #2 = $src3
/*192879*/    OPC_RecordChild3, // #3 = $rc
/*192880*/    OPC_MoveChild3,
/*192881*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*192884*/    OPC_MoveParent,
/*192885*/    OPC_SwitchType /*4 cases */, 14, MVT::f32,// ->192902
/*192888*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192890*/      OPC_EmitConvertToTarget, 3,
/*192892*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb), 0,
                    MVT::f32, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADD213SSZrb:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*192902*/    /*SwitchType*/ 14, MVT::f64,// ->192918
/*192904*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192906*/      OPC_EmitConvertToTarget, 3,
/*192908*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb), 0,
                    MVT::f64, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADD213SDZrb:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*192918*/    /*SwitchType*/ 14, MVT::v16f32,// ->192934
/*192920*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192922*/      OPC_EmitConvertToTarget, 3,
/*192924*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADD213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*192934*/    /*SwitchType*/ 14, MVT::v8f64,// ->192950
/*192936*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192938*/      OPC_EmitConvertToTarget, 3,
/*192940*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADD213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*192950*/    0, // EndSwitchType
/*192951*/  /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::FMSUB_RND),// ->193029
/*192954*/    OPC_RecordChild0, // #0 = $src2
/*192955*/    OPC_RecordChild1, // #1 = $src1
/*192956*/    OPC_RecordChild2, // #2 = $src3
/*192957*/    OPC_RecordChild3, // #3 = $rc
/*192958*/    OPC_MoveChild3,
/*192959*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*192962*/    OPC_MoveParent,
/*192963*/    OPC_SwitchType /*4 cases */, 14, MVT::f32,// ->192980
/*192966*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192968*/      OPC_EmitConvertToTarget, 3,
/*192970*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb), 0,
                    MVT::f32, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUB213SSZrb:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*192980*/    /*SwitchType*/ 14, MVT::f64,// ->192996
/*192982*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192984*/      OPC_EmitConvertToTarget, 3,
/*192986*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb), 0,
                    MVT::f64, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUB213SDZrb:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*192996*/    /*SwitchType*/ 14, MVT::v16f32,// ->193012
/*192998*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193000*/      OPC_EmitConvertToTarget, 3,
/*193002*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUB213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*193012*/    /*SwitchType*/ 14, MVT::v8f64,// ->193028
/*193014*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193016*/      OPC_EmitConvertToTarget, 3,
/*193018*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUB213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*193028*/    0, // EndSwitchType
/*193029*/  /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::FNMADD_RND),// ->193107
/*193032*/    OPC_RecordChild0, // #0 = $src2
/*193033*/    OPC_RecordChild1, // #1 = $src1
/*193034*/    OPC_RecordChild2, // #2 = $src3
/*193035*/    OPC_RecordChild3, // #3 = $rc
/*193036*/    OPC_MoveChild3,
/*193037*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*193040*/    OPC_MoveParent,
/*193041*/    OPC_SwitchType /*4 cases */, 14, MVT::f32,// ->193058
/*193044*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193046*/      OPC_EmitConvertToTarget, 3,
/*193048*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb), 0,
                    MVT::f32, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FnmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMADD213SSZrb:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*193058*/    /*SwitchType*/ 14, MVT::f64,// ->193074
/*193060*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193062*/      OPC_EmitConvertToTarget, 3,
/*193064*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb), 0,
                    MVT::f64, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FnmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMADD213SDZrb:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*193074*/    /*SwitchType*/ 14, MVT::v16f32,// ->193090
/*193076*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193078*/      OPC_EmitConvertToTarget, 3,
/*193080*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FnmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMADD213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*193090*/    /*SwitchType*/ 14, MVT::v8f64,// ->193106
/*193092*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193094*/      OPC_EmitConvertToTarget, 3,
/*193096*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FnmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMADD213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*193106*/    0, // EndSwitchType
/*193107*/  /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::FNMSUB_RND),// ->193185
/*193110*/    OPC_RecordChild0, // #0 = $src2
/*193111*/    OPC_RecordChild1, // #1 = $src1
/*193112*/    OPC_RecordChild2, // #2 = $src3
/*193113*/    OPC_RecordChild3, // #3 = $rc
/*193114*/    OPC_MoveChild3,
/*193115*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*193118*/    OPC_MoveParent,
/*193119*/    OPC_SwitchType /*4 cases */, 14, MVT::f32,// ->193136
/*193122*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193124*/      OPC_EmitConvertToTarget, 3,
/*193126*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb), 0,
                    MVT::f32, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FnmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMSUB213SSZrb:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*193136*/    /*SwitchType*/ 14, MVT::f64,// ->193152
/*193138*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193140*/      OPC_EmitConvertToTarget, 3,
/*193142*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb), 0,
                    MVT::f64, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FnmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMSUB213SDZrb:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*193152*/    /*SwitchType*/ 14, MVT::v16f32,// ->193168
/*193154*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193156*/      OPC_EmitConvertToTarget, 3,
/*193158*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FnmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMSUB213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*193168*/    /*SwitchType*/ 14, MVT::v8f64,// ->193184
/*193170*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193172*/      OPC_EmitConvertToTarget, 3,
/*193174*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FnmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMSUB213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*193184*/    0, // EndSwitchType
/*193185*/  /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FP16_TO_FP),// ->193378
/*193189*/    OPC_Scope, 100, /*->193291*/ // 2 children in Scope
/*193191*/      OPC_MoveChild0,
/*193192*/      OPC_CheckOpcode, TARGET_VAL(ISD::FP_TO_FP16),
/*193195*/      OPC_RecordChild0, // #0 = $src
/*193196*/      OPC_CheckChild0Type, MVT::f32,
/*193198*/      OPC_CheckType, MVT::i16,
/*193200*/      OPC_MoveParent,
/*193201*/      OPC_CheckType, MVT::f32,
/*193203*/      OPC_Scope, 42, /*->193247*/ // 2 children in Scope
/*193205*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*193207*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*193210*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*193218*/        OPC_EmitInteger, MVT::i32, 4, 
/*193221*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPS2PHrr), 0,
                      MVT::v8i16, 2/*#Ops*/, 2, 3,  // Results = #4
/*193229*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPH2PSrr), 0,
                      MVT::v4f32, 1/*#Ops*/, 4,  // Results = #5
/*193236*/        OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*193239*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 5, 6, 
                  // Src: (f16_to_fp:{ *:[f32] } (fp_to_f16:{ *:[i16] } FR32:{ *:[f32] }:$src)) - Complexity = 6
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VCVTPH2PSrr:{ *:[v4f32] } (VCVTPS2PHrr:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }), 4:{ *:[i32] })), FR32:{ *:[i32] })
/*193247*/      /*Scope*/ 42, /*->193290*/
/*193248*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*193250*/        OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*193253*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*193261*/        OPC_EmitInteger, MVT::i32, 4, 
/*193264*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPS2PHZ128rr), 0,
                      MVT::v8i16, 2/*#Ops*/, 2, 3,  // Results = #4
/*193272*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPH2PSZ128rr), 0,
                      MVT::v4f32, 1/*#Ops*/, 4,  // Results = #5
/*193279*/        OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*193282*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 5, 6, 
                  // Src: (f16_to_fp:{ *:[f32] } (fp_to_f16:{ *:[i16] } FR32X:{ *:[f32] }:$src)) - Complexity = 6
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VCVTPH2PSZ128rr:{ *:[v4f32] } (VCVTPS2PHZ128rr:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }), 4:{ *:[i32] })), FR32X:{ *:[i32] })
/*193290*/      0, /*End of Scope*/
/*193291*/    /*Scope*/ 85, /*->193377*/
/*193292*/      OPC_RecordChild0, // #0 = $src
/*193293*/      OPC_CheckChild0Type, MVT::i16,
/*193295*/      OPC_CheckType, MVT::f32,
/*193297*/      OPC_Scope, 38, /*->193337*/ // 2 children in Scope
/*193299*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*193301*/        OPC_EmitNode1, TARGET_VAL(X86::MOVSX32rr16), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*193308*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*193311*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*193319*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPH2PSrr), 0,
                      MVT::v4f32, 1/*#Ops*/, 3,  // Results = #4
/*193326*/        OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*193329*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 4, 5, 
                  // Src: (f16_to_fp:{ *:[f32] } GR16:{ *:[i16] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VCVTPH2PSrr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MOVSX32rr16:{ *:[i32] } GR16:{ *:[i16] }:$src), VR128:{ *:[i32] })), FR32:{ *:[i32] })
/*193337*/      /*Scope*/ 38, /*->193376*/
/*193338*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*193340*/        OPC_EmitNode1, TARGET_VAL(X86::MOVSX32rr16), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*193347*/        OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*193350*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 2,  // Results = #3
/*193358*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPH2PSZ128rr), 0,
                      MVT::v4f32, 1/*#Ops*/, 3,  // Results = #4
/*193365*/        OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*193368*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 4, 5, 
                  // Src: (f16_to_fp:{ *:[f32] } GR16:{ *:[i16] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VCVTPH2PSZ128rr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v8i16] } (MOVSX32rr16:{ *:[i32] } GR16:{ *:[i16] }:$src), VR128X:{ *:[i32] })), FR32X:{ *:[i32] })
/*193376*/      0, /*End of Scope*/
/*193377*/    0, /*End of Scope*/
/*193378*/  /*SwitchOpcode*/ 116|128,1/*244*/, TARGET_VAL(ISD::ConstantFP),// ->193626
/*193382*/    OPC_SwitchType /*3 cases */, 89, MVT::f32,// ->193474
/*193385*/      OPC_Scope, 11, /*->193398*/ // 5 children in Scope
/*193387*/        OPC_CheckPredicate, 93, // Predicate_fpimm0
/*193389*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*193391*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp032), 0,
                      MVT::f32, MVT::i16, 0/*#Ops*/, 
                  // Src: (fpimm:{ *:[f32] })<<P:Predicate_fpimm0>> - Complexity = 4
                  // Dst: (LD_Fp032:{ *:[f32] }:{ *:[i16] })
/*193398*/      /*Scope*/ 11, /*->193410*/
/*193399*/        OPC_CheckPredicate, 94, // Predicate_fpimm1
/*193401*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*193403*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp132), 0,
                      MVT::f32, MVT::i16, 0/*#Ops*/, 
                  // Src: (fpimm:{ *:[f32] })<<P:Predicate_fpimm1>> - Complexity = 4
                  // Dst: (LD_Fp132:{ *:[f32] }:{ *:[i16] })
/*193410*/      /*Scope*/ 22, /*->193433*/
/*193411*/        OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*193413*/        OPC_Scope, 8, /*->193423*/ // 2 children in Scope
/*193415*/          OPC_CheckPatternPredicate, 170, // (Subtarget->hasSSE1()) && (!Subtarget->hasAVX512())
/*193417*/          OPC_MorphNodeTo1, TARGET_VAL(X86::FsFLD0SS), 0,
                        MVT::f32, 0/*#Ops*/, 
                    // Src: (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>> - Complexity = 4
                    // Dst: (FsFLD0SS:{ *:[f32] })
/*193423*/        /*Scope*/ 8, /*->193432*/
/*193424*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193426*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_FsFLD0SS), 0,
                        MVT::f32, 0/*#Ops*/, 
                    // Src: (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>> - Complexity = 4
                    // Dst: (AVX512_FsFLD0SS:{ *:[f32] })
/*193432*/        0, /*End of Scope*/
/*193433*/      /*Scope*/ 19, /*->193453*/
/*193434*/        OPC_CheckPredicate, 95, // Predicate_fpimmneg0
/*193436*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*193438*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp032), 0,
                      MVT::f32, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*193445*/        OPC_MorphNodeTo2, TARGET_VAL(X86::CHS_Fp32), 0,
                      MVT::f32, MVT::i16, 1/*#Ops*/, 0, 
                  // Src: (fpimm:{ *:[f32] })<<P:Predicate_fpimmneg0>> - Complexity = 4
                  // Dst: (CHS_Fp32:{ *:[f32] }:{ *:[i16] } (LD_Fp032:{ *:[f32] }:{ *:[i16] }))
/*193453*/      /*Scope*/ 19, /*->193473*/
/*193454*/        OPC_CheckPredicate, 96, // Predicate_fpimmneg1
/*193456*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*193458*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp132), 0,
                      MVT::f32, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*193465*/        OPC_MorphNodeTo2, TARGET_VAL(X86::CHS_Fp32), 0,
                      MVT::f32, MVT::i16, 1/*#Ops*/, 0, 
                  // Src: (fpimm:{ *:[f32] })<<P:Predicate_fpimmneg1>> - Complexity = 4
                  // Dst: (CHS_Fp32:{ *:[f32] }:{ *:[i16] } (LD_Fp132:{ *:[f32] }:{ *:[i16] }))
/*193473*/      0, /*End of Scope*/
/*193474*/    /*SwitchType*/ 89, MVT::f64,// ->193565
/*193476*/      OPC_Scope, 11, /*->193489*/ // 5 children in Scope
/*193478*/        OPC_CheckPredicate, 93, // Predicate_fpimm0
/*193480*/        OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*193482*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp064), 0,
                      MVT::f64, MVT::i16, 0/*#Ops*/, 
                  // Src: (fpimm:{ *:[f64] })<<P:Predicate_fpimm0>> - Complexity = 4
                  // Dst: (LD_Fp064:{ *:[f64] }:{ *:[i16] })
/*193489*/      /*Scope*/ 11, /*->193501*/
/*193490*/        OPC_CheckPredicate, 94, // Predicate_fpimm1
/*193492*/        OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*193494*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp164), 0,
                      MVT::f64, MVT::i16, 0/*#Ops*/, 
                  // Src: (fpimm:{ *:[f64] })<<P:Predicate_fpimm1>> - Complexity = 4
                  // Dst: (LD_Fp164:{ *:[f64] }:{ *:[i16] })
/*193501*/      /*Scope*/ 22, /*->193524*/
/*193502*/        OPC_CheckPredicate, 93, // Predicate_fpimm0
/*193504*/        OPC_Scope, 8, /*->193514*/ // 2 children in Scope
/*193506*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasSSE2()) && (!Subtarget->hasAVX512())
/*193508*/          OPC_MorphNodeTo1, TARGET_VAL(X86::FsFLD0SD), 0,
                        MVT::f64, 0/*#Ops*/, 
                    // Src: (fpimm:{ *:[f64] })<<P:Predicate_fpimm0>> - Complexity = 4
                    // Dst: (FsFLD0SD:{ *:[f64] })
/*193514*/        /*Scope*/ 8, /*->193523*/
/*193515*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193517*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_FsFLD0SD), 0,
                        MVT::f64, 0/*#Ops*/, 
                    // Src: (fpimm:{ *:[f64] })<<P:Predicate_fpimm0>> - Complexity = 4
                    // Dst: (AVX512_FsFLD0SD:{ *:[f64] })
/*193523*/        0, /*End of Scope*/
/*193524*/      /*Scope*/ 19, /*->193544*/
/*193525*/        OPC_CheckPredicate, 95, // Predicate_fpimmneg0
/*193527*/        OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*193529*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp064), 0,
                      MVT::f64, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*193536*/        OPC_MorphNodeTo2, TARGET_VAL(X86::CHS_Fp64), 0,
                      MVT::f64, MVT::i16, 1/*#Ops*/, 0, 
                  // Src: (fpimm:{ *:[f64] })<<P:Predicate_fpimmneg0>> - Complexity = 4
                  // Dst: (CHS_Fp64:{ *:[f64] }:{ *:[i16] } (LD_Fp064:{ *:[f64] }:{ *:[i16] }))
/*193544*/      /*Scope*/ 19, /*->193564*/
/*193545*/        OPC_CheckPredicate, 96, // Predicate_fpimmneg1
/*193547*/        OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*193549*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp164), 0,
                      MVT::f64, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*193556*/        OPC_MorphNodeTo2, TARGET_VAL(X86::CHS_Fp64), 0,
                      MVT::f64, MVT::i16, 1/*#Ops*/, 0, 
                  // Src: (fpimm:{ *:[f64] })<<P:Predicate_fpimmneg1>> - Complexity = 4
                  // Dst: (CHS_Fp64:{ *:[f64] }:{ *:[i16] } (LD_Fp164:{ *:[f64] }:{ *:[i16] }))
/*193564*/      0, /*End of Scope*/
/*193565*/    /*SwitchType*/ 58, MVT::f80,// ->193625
/*193567*/      OPC_Scope, 9, /*->193578*/ // 4 children in Scope
/*193569*/        OPC_CheckPredicate, 93, // Predicate_fpimm0
/*193571*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp080), 0,
                      MVT::f80, MVT::i16, 0/*#Ops*/, 
                  // Src: (fpimm:{ *:[f80] })<<P:Predicate_fpimm0>> - Complexity = 4
                  // Dst: (LD_Fp080:{ *:[f80] }:{ *:[i16] })
/*193578*/      /*Scope*/ 9, /*->193588*/
/*193579*/        OPC_CheckPredicate, 94, // Predicate_fpimm1
/*193581*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp180), 0,
                      MVT::f80, MVT::i16, 0/*#Ops*/, 
                  // Src: (fpimm:{ *:[f80] })<<P:Predicate_fpimm1>> - Complexity = 4
                  // Dst: (LD_Fp180:{ *:[f80] }:{ *:[i16] })
/*193588*/      /*Scope*/ 17, /*->193606*/
/*193589*/        OPC_CheckPredicate, 95, // Predicate_fpimmneg0
/*193591*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp080), 0,
                      MVT::f80, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*193598*/        OPC_MorphNodeTo2, TARGET_VAL(X86::CHS_Fp80), 0,
                      MVT::f80, MVT::i16, 1/*#Ops*/, 0, 
                  // Src: (fpimm:{ *:[f80] })<<P:Predicate_fpimmneg0>> - Complexity = 4
                  // Dst: (CHS_Fp80:{ *:[f80] }:{ *:[i16] } (LD_Fp080:{ *:[f80] }:{ *:[i16] }))
/*193606*/      /*Scope*/ 17, /*->193624*/
/*193607*/        OPC_CheckPredicate, 96, // Predicate_fpimmneg1
/*193609*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp180), 0,
                      MVT::f80, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*193616*/        OPC_MorphNodeTo2, TARGET_VAL(X86::CHS_Fp80), 0,
                      MVT::f80, MVT::i16, 1/*#Ops*/, 0, 
                  // Src: (fpimm:{ *:[f80] })<<P:Predicate_fpimmneg1>> - Complexity = 4
                  // Dst: (CHS_Fp80:{ *:[f80] }:{ *:[i16] } (LD_Fp180:{ *:[f80] }:{ *:[i16] }))
/*193624*/      0, /*End of Scope*/
/*193625*/    0, // EndSwitchType
/*193626*/  /*SwitchOpcode*/ 37, TARGET_VAL(ISD::FNEG),// ->193666
/*193629*/    OPC_RecordChild0, // #0 = $src
/*193630*/    OPC_SwitchType /*3 cases */, 10, MVT::f32,// ->193643
/*193633*/      OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*193635*/      OPC_MorphNodeTo2, TARGET_VAL(X86::CHS_Fp32), 0,
                    MVT::f32, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fneg:{ *:[f32] } RFP32:{ *:[f32] }:$src) - Complexity = 3
                // Dst: (CHS_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src)
/*193643*/    /*SwitchType*/ 10, MVT::f64,// ->193655
/*193645*/      OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*193647*/      OPC_MorphNodeTo2, TARGET_VAL(X86::CHS_Fp64), 0,
                    MVT::f64, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fneg:{ *:[f64] } RFP64:{ *:[f64] }:$src) - Complexity = 3
                // Dst: (CHS_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src)
/*193655*/    /*SwitchType*/ 8, MVT::f80,// ->193665
/*193657*/      OPC_MorphNodeTo2, TARGET_VAL(X86::CHS_Fp80), 0,
                    MVT::f80, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fneg:{ *:[f80] } RFP80:{ *:[f80] }:$src) - Complexity = 3
                // Dst: (CHS_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src)
/*193665*/    0, // EndSwitchType
/*193666*/  /*SwitchOpcode*/ 37, TARGET_VAL(ISD::FABS),// ->193706
/*193669*/    OPC_RecordChild0, // #0 = $src
/*193670*/    OPC_SwitchType /*3 cases */, 10, MVT::f32,// ->193683
/*193673*/      OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*193675*/      OPC_MorphNodeTo2, TARGET_VAL(X86::ABS_Fp32), 0,
                    MVT::f32, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fabs:{ *:[f32] } RFP32:{ *:[f32] }:$src) - Complexity = 3
                // Dst: (ABS_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src)
/*193683*/    /*SwitchType*/ 10, MVT::f64,// ->193695
/*193685*/      OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*193687*/      OPC_MorphNodeTo2, TARGET_VAL(X86::ABS_Fp64), 0,
                    MVT::f64, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fabs:{ *:[f64] } RFP64:{ *:[f64] }:$src) - Complexity = 3
                // Dst: (ABS_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src)
/*193695*/    /*SwitchType*/ 8, MVT::f80,// ->193705
/*193697*/      OPC_MorphNodeTo2, TARGET_VAL(X86::ABS_Fp80), 0,
                    MVT::f80, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fabs:{ *:[f80] } RFP80:{ *:[f80] }:$src) - Complexity = 3
                // Dst: (ABS_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src)
/*193705*/    0, // EndSwitchType
/*193706*/  /*SwitchOpcode*/ 37, TARGET_VAL(ISD::FSIN),// ->193746
/*193709*/    OPC_RecordChild0, // #0 = $src
/*193710*/    OPC_SwitchType /*3 cases */, 10, MVT::f32,// ->193723
/*193713*/      OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*193715*/      OPC_MorphNodeTo2, TARGET_VAL(X86::SIN_Fp32), 0,
                    MVT::f32, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fsin:{ *:[f32] } RFP32:{ *:[f32] }:$src) - Complexity = 3
                // Dst: (SIN_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src)
/*193723*/    /*SwitchType*/ 10, MVT::f64,// ->193735
/*193725*/      OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*193727*/      OPC_MorphNodeTo2, TARGET_VAL(X86::SIN_Fp64), 0,
                    MVT::f64, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fsin:{ *:[f64] } RFP64:{ *:[f64] }:$src) - Complexity = 3
                // Dst: (SIN_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src)
/*193735*/    /*SwitchType*/ 8, MVT::f80,// ->193745
/*193737*/      OPC_MorphNodeTo2, TARGET_VAL(X86::SIN_Fp80), 0,
                    MVT::f80, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fsin:{ *:[f80] } RFP80:{ *:[f80] }:$src) - Complexity = 3
                // Dst: (SIN_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src)
/*193745*/    0, // EndSwitchType
/*193746*/  /*SwitchOpcode*/ 37, TARGET_VAL(ISD::FCOS),// ->193786
/*193749*/    OPC_RecordChild0, // #0 = $src
/*193750*/    OPC_SwitchType /*3 cases */, 10, MVT::f32,// ->193763
/*193753*/      OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE1())
/*193755*/      OPC_MorphNodeTo2, TARGET_VAL(X86::COS_Fp32), 0,
                    MVT::f32, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fcos:{ *:[f32] } RFP32:{ *:[f32] }:$src) - Complexity = 3
                // Dst: (COS_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src)
/*193763*/    /*SwitchType*/ 10, MVT::f64,// ->193775
/*193765*/      OPC_CheckPatternPredicate, 25, // (!Subtarget->hasSSE2())
/*193767*/      OPC_MorphNodeTo2, TARGET_VAL(X86::COS_Fp64), 0,
                    MVT::f64, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fcos:{ *:[f64] } RFP64:{ *:[f64] }:$src) - Complexity = 3
                // Dst: (COS_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src)
/*193775*/    /*SwitchType*/ 8, MVT::f80,// ->193785
/*193777*/      OPC_MorphNodeTo2, TARGET_VAL(X86::COS_Fp80), 0,
                    MVT::f80, MVT::i16, 1/*#Ops*/, 0, 
                // Src: (fcos:{ *:[f80] } RFP80:{ *:[f80] }:$src) - Complexity = 3
                // Dst: (COS_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src)
/*193785*/    0, // EndSwitchType
/*193786*/  /*SwitchOpcode*/ 74|128,2/*330*/, TARGET_VAL(X86ISD::FANDN),// ->194120
/*193790*/    OPC_RecordChild0, // #0 = $src1
/*193791*/    OPC_Scope, 21|128,2/*277*/, /*->194071*/ // 3 children in Scope
/*193794*/      OPC_RecordChild1, // #1 = $src2
/*193795*/      OPC_SwitchType /*2 cases */, 6|128,1/*134*/, MVT::f64,// ->193933
/*193799*/        OPC_Scope, 43, /*->193844*/ // 3 children in Scope
/*193801*/          OPC_CheckPatternPredicate, 168, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasDQI())
/*193803*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*193806*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*193814*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*193817*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*193825*/          OPC_EmitNode1, TARGET_VAL(X86::VANDNPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*193833*/          OPC_EmitInteger, MVT::i32, X86::FR64RegClassID,
/*193836*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7, 
                    // Src: (X86fandn:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VANDNPDrr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] })), FR64:{ *:[i32] })
/*193844*/        /*Scope*/ 43, /*->193888*/
/*193845*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*193847*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*193850*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*193858*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*193861*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*193869*/          OPC_EmitNode1, TARGET_VAL(X86::ANDNPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*193877*/          OPC_EmitInteger, MVT::i32, X86::FR64RegClassID,
/*193880*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7, 
                    // Src: (X86fandn:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (ANDNPDrr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] })), FR64:{ *:[i32] })
/*193888*/        /*Scope*/ 43, /*->193932*/
/*193889*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*193891*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*193894*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*193902*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*193905*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*193913*/          OPC_EmitNode1, TARGET_VAL(X86::VANDNPDZ128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*193921*/          OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/*193924*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7, 
                    // Src: (X86fandn:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VANDNPDZ128rr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src1, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] })), FR64X:{ *:[i32] })
/*193932*/        0, /*End of Scope*/
/*193933*/      /*SwitchType*/ 6|128,1/*134*/, MVT::f32,// ->194070
/*193936*/        OPC_Scope, 43, /*->193981*/ // 3 children in Scope
/*193938*/          OPC_CheckPatternPredicate, 168, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasDQI())
/*193940*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*193943*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*193951*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*193954*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*193962*/          OPC_EmitNode1, TARGET_VAL(X86::VANDNPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*193970*/          OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*193973*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 6, 7, 
                    // Src: (X86fandn:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VANDNPSrr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] })), FR32:{ *:[i32] })
/*193981*/        /*Scope*/ 43, /*->194025*/
/*193982*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*193984*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*193987*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*193995*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*193998*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*194006*/          OPC_EmitNode1, TARGET_VAL(X86::ANDNPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*194014*/          OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*194017*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 6, 7, 
                    // Src: (X86fandn:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (ANDNPSrr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] })), FR32:{ *:[i32] })
/*194025*/        /*Scope*/ 43, /*->194069*/
/*194026*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*194028*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*194031*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*194039*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*194042*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*194050*/          OPC_EmitNode1, TARGET_VAL(X86::VANDNPSZ128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*194058*/          OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*194061*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 6, 7, 
                    // Src: (X86fandn:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VANDNPSZ128rr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src1, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] })), FR32X:{ *:[i32] })
/*194069*/        0, /*End of Scope*/
/*194070*/      0, // EndSwitchType
/*194071*/    /*Scope*/ 35, /*->194107*/
/*194072*/      OPC_MoveChild1,
/*194073*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194076*/      OPC_RecordMemRef,
/*194077*/      OPC_RecordNode, // #1 = 'ld' chained node
/*194078*/      OPC_CheckFoldableChainNode,
/*194079*/      OPC_RecordChild1, // #2 = $src2
/*194080*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194082*/      OPC_CheckPredicate, 9, // Predicate_load
/*194084*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*194086*/      OPC_CheckPredicate, 48, // Predicate_memop
/*194088*/      OPC_MoveParent,
/*194089*/      OPC_CheckType, MVT::v4f32,
/*194091*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*194094*/      OPC_EmitMergeInputChains1_1,
/*194095*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86fandn:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (ANDNPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194107*/    /*Scope*/ 11, /*->194119*/
/*194108*/      OPC_RecordChild1, // #1 = $src2
/*194109*/      OPC_CheckType, MVT::v4f32,
/*194111*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ANDNPSrr), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fandn:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                // Dst: (ANDNPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*194119*/    0, /*End of Scope*/
/*194120*/  /*SwitchOpcode*/ 54|128,95|128,16/*274358*/, TARGET_VAL(ISD::VSELECT),// ->468483
/*194125*/    OPC_Scope, 10|128,26|128,7/*118026*/, /*->312155*/ // 5 children in Scope
/*194129*/      OPC_RecordChild0, // #0 = $mask
/*194130*/      OPC_Scope, 96|128,100|128,1/*29280*/, /*->223414*/ // 6 children in Scope
/*194134*/        OPC_CheckChild0Type, MVT::v4i1,
/*194136*/        OPC_Scope, 38|128,13/*1702*/, /*->195841*/ // 5 children in Scope
/*194139*/          OPC_MoveChild1,
/*194140*/          OPC_SwitchOpcode /*12 cases */, 28|128,6/*796*/, TARGET_VAL(ISD::BITCAST),// ->194941
/*194145*/            OPC_Scope, 44|128,1/*172*/, /*->194320*/ // 2 children in Scope
/*194148*/              OPC_RecordChild0, // #1 = $ins
/*194149*/              OPC_MoveChild0,
/*194150*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*194153*/              OPC_RecordChild0, // #2 = $src1
/*194154*/              OPC_MoveChild1,
/*194155*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194158*/              OPC_MoveChild0,
/*194159*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194162*/              OPC_RecordMemRef,
/*194163*/              OPC_RecordNode, // #3 = 'ld' chained node
/*194164*/              OPC_CheckFoldableChainNode,
/*194165*/              OPC_RecordChild1, // #4 = $src2
/*194166*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194168*/              OPC_CheckPredicate, 9, // Predicate_load
/*194170*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*194172*/              OPC_CheckType, MVT::v2i64,
/*194174*/              OPC_MoveParent,
/*194175*/              OPC_MoveParent,
/*194176*/              OPC_MoveChild2,
/*194177*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*194180*/              OPC_CheckType, MVT::iPTR,
/*194182*/              OPC_MoveParent,
/*194183*/              OPC_SwitchType /*3 cases */, 43, MVT::v8i32,// ->194229
/*194186*/                OPC_MoveParent,
/*194187*/                OPC_MoveParent,
/*194188*/                OPC_MoveChild2,
/*194189*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194192*/                OPC_MoveChild0,
/*194193*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194196*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194198*/                OPC_CheckType, MVT::v8i32,
/*194200*/                OPC_MoveParent,
/*194201*/                OPC_MoveParent,
/*194202*/                OPC_CheckType, MVT::v4i64,
/*194204*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*194206*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194209*/                OPC_EmitMergeInputChains, 1, 3, 
/*194212*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*194215*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                          // Dst: (VINSERTF64x2Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ins))
/*194229*/              /*SwitchType*/ 43, MVT::v16i16,// ->194274
/*194231*/                OPC_MoveParent,
/*194232*/                OPC_MoveParent,
/*194233*/                OPC_MoveChild2,
/*194234*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194237*/                OPC_MoveChild0,
/*194238*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194241*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194243*/                OPC_CheckType, MVT::v8i32,
/*194245*/                OPC_MoveParent,
/*194246*/                OPC_MoveParent,
/*194247*/                OPC_CheckType, MVT::v4i64,
/*194249*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*194251*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194254*/                OPC_EmitMergeInputChains, 1, 3, 
/*194257*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*194260*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                          // Dst: (VINSERTF64x2Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*194274*/              /*SwitchType*/ 43, MVT::v32i8,// ->194319
/*194276*/                OPC_MoveParent,
/*194277*/                OPC_MoveParent,
/*194278*/                OPC_MoveChild2,
/*194279*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194282*/                OPC_MoveChild0,
/*194283*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194286*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194288*/                OPC_CheckType, MVT::v8i32,
/*194290*/                OPC_MoveParent,
/*194291*/                OPC_MoveParent,
/*194292*/                OPC_CheckType, MVT::v4i64,
/*194294*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*194296*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194299*/                OPC_EmitMergeInputChains, 1, 3, 
/*194302*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*194305*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                          // Dst: (VINSERTF64x2Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*194319*/              0, // EndSwitchType
/*194320*/            /*Scope*/ 106|128,4/*618*/, /*->194940*/
/*194322*/              OPC_MoveChild0,
/*194323*/              OPC_SwitchOpcode /*6 cases */, 105, TARGET_VAL(X86ISD::VALIGN),// ->194432
/*194327*/                OPC_RecordChild0, // #1 = $src1
/*194328*/                OPC_MoveChild1,
/*194329*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194332*/                OPC_MoveChild0,
/*194333*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*194336*/                OPC_MoveChild0,
/*194337*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194340*/                OPC_RecordMemRef,
/*194341*/                OPC_RecordNode, // #2 = 'ld' chained node
/*194342*/                OPC_CheckFoldableChainNode,
/*194343*/                OPC_RecordChild1, // #3 = $src2
/*194344*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194346*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*194348*/                OPC_CheckType, MVT::i32,
/*194350*/                OPC_MoveParent,
/*194351*/                OPC_CheckType, MVT::v4i32,
/*194353*/                OPC_MoveParent,
/*194354*/                OPC_MoveParent,
/*194355*/                OPC_RecordChild2, // #4 = $src3
/*194356*/                OPC_MoveChild2,
/*194357*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*194360*/                OPC_MoveParent,
/*194361*/                OPC_CheckType, MVT::v2i64,
/*194363*/                OPC_MoveParent,
/*194364*/                OPC_MoveParent,
/*194365*/                OPC_Scope, 34, /*->194401*/ // 2 children in Scope
/*194367*/                  OPC_MoveChild2,
/*194368*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194371*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194373*/                  OPC_MoveParent,
/*194374*/                  OPC_CheckType, MVT::v4i32,
/*194376*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*194378*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194381*/                  OPC_EmitMergeInputChains1_2,
/*194382*/                  OPC_EmitConvertToTarget, 4,
/*194384*/                  OPC_EmitNodeXForm, 14, 10, // ValignqImm32XForm
/*194387*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 11, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 44
                            // Dst: (VALIGNDZ128rmbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*194401*/                /*Scope*/ 29, /*->194431*/
/*194402*/                  OPC_RecordChild2, // #5 = $src0
/*194403*/                  OPC_CheckType, MVT::v4i32,
/*194405*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*194407*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*194410*/                  OPC_EmitMergeInputChains1_2,
/*194411*/                  OPC_EmitConvertToTarget, 4,
/*194413*/                  OPC_EmitNodeXForm, 14, 11, // ValignqImm32XForm
/*194416*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 12, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (imm:{ *:[i8] }):$src3)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 40
                            // Dst: (VALIGNDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*194431*/                0, /*End of Scope*/
/*194432*/              /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->194495
/*194435*/                OPC_MoveChild0,
/*194436*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194439*/                OPC_MoveChild0,
/*194440*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194443*/                OPC_RecordMemRef,
/*194444*/                OPC_RecordNode, // #1 = 'ld' chained node
/*194445*/                OPC_CheckFoldableChainNode,
/*194446*/                OPC_RecordChild1, // #2 = $src
/*194447*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194449*/                OPC_CheckPredicate, 9, // Predicate_load
/*194451*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*194453*/                OPC_CheckType, MVT::v2i64,
/*194455*/                OPC_MoveParent,
/*194456*/                OPC_MoveParent,
/*194457*/                OPC_CheckType, MVT::v8i32,
/*194459*/                OPC_MoveParent,
/*194460*/                OPC_MoveParent,
/*194461*/                OPC_MoveChild2,
/*194462*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194465*/                OPC_MoveChild0,
/*194466*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194469*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194471*/                OPC_CheckType, MVT::v8i32,
/*194473*/                OPC_MoveParent,
/*194474*/                OPC_MoveParent,
/*194475*/                OPC_CheckType, MVT::v4i64,
/*194477*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*194479*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*194482*/                OPC_EmitMergeInputChains1_1,
/*194483*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X2Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (X86SubVBroadcast:{ *:[v8i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VBROADCASTI64X2Z128rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*194495*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::AND),// ->194622
/*194498*/                OPC_Scope, 60, /*->194560*/ // 2 children in Scope
/*194500*/                  OPC_RecordChild0, // #1 = $src1
/*194501*/                  OPC_MoveChild1,
/*194502*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194505*/                  OPC_MoveChild0,
/*194506*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*194509*/                  OPC_MoveChild0,
/*194510*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194513*/                  OPC_RecordMemRef,
/*194514*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*194515*/                  OPC_CheckFoldableChainNode,
/*194516*/                  OPC_RecordChild1, // #3 = $src2
/*194517*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194519*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*194521*/                  OPC_CheckType, MVT::i32,
/*194523*/                  OPC_MoveParent,
/*194524*/                  OPC_CheckType, MVT::v4i32,
/*194526*/                  OPC_MoveParent,
/*194527*/                  OPC_MoveParent,
/*194528*/                  OPC_CheckType, MVT::v2i64,
/*194530*/                  OPC_MoveParent,
/*194531*/                  OPC_MoveParent,
/*194532*/                  OPC_MoveChild2,
/*194533*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194536*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194538*/                  OPC_MoveParent,
/*194539*/                  OPC_CheckType, MVT::v4i32,
/*194541*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*194543*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*194546*/                  OPC_EmitMergeInputChains1_2,
/*194547*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPANDDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194560*/                /*Scope*/ 60, /*->194621*/
/*194561*/                  OPC_MoveChild0,
/*194562*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194565*/                  OPC_MoveChild0,
/*194566*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*194569*/                  OPC_MoveChild0,
/*194570*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194573*/                  OPC_RecordMemRef,
/*194574*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*194575*/                  OPC_CheckFoldableChainNode,
/*194576*/                  OPC_RecordChild1, // #2 = $src2
/*194577*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194579*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*194581*/                  OPC_CheckType, MVT::i32,
/*194583*/                  OPC_MoveParent,
/*194584*/                  OPC_CheckType, MVT::v4i32,
/*194586*/                  OPC_MoveParent,
/*194587*/                  OPC_MoveParent,
/*194588*/                  OPC_RecordChild1, // #3 = $src1
/*194589*/                  OPC_CheckType, MVT::v2i64,
/*194591*/                  OPC_MoveParent,
/*194592*/                  OPC_MoveParent,
/*194593*/                  OPC_MoveChild2,
/*194594*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194597*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194599*/                  OPC_MoveParent,
/*194600*/                  OPC_CheckType, MVT::v4i32,
/*194602*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*194604*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*194607*/                  OPC_EmitMergeInputChains1_1,
/*194608*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPANDDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194621*/                0, /*End of Scope*/
/*194622*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::OR),// ->194749
/*194625*/                OPC_Scope, 60, /*->194687*/ // 2 children in Scope
/*194627*/                  OPC_RecordChild0, // #1 = $src1
/*194628*/                  OPC_MoveChild1,
/*194629*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194632*/                  OPC_MoveChild0,
/*194633*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*194636*/                  OPC_MoveChild0,
/*194637*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194640*/                  OPC_RecordMemRef,
/*194641*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*194642*/                  OPC_CheckFoldableChainNode,
/*194643*/                  OPC_RecordChild1, // #3 = $src2
/*194644*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194646*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*194648*/                  OPC_CheckType, MVT::i32,
/*194650*/                  OPC_MoveParent,
/*194651*/                  OPC_CheckType, MVT::v4i32,
/*194653*/                  OPC_MoveParent,
/*194654*/                  OPC_MoveParent,
/*194655*/                  OPC_CheckType, MVT::v2i64,
/*194657*/                  OPC_MoveParent,
/*194658*/                  OPC_MoveParent,
/*194659*/                  OPC_MoveChild2,
/*194660*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194663*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194665*/                  OPC_MoveParent,
/*194666*/                  OPC_CheckType, MVT::v4i32,
/*194668*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*194670*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*194673*/                  OPC_EmitMergeInputChains1_2,
/*194674*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPORDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194687*/                /*Scope*/ 60, /*->194748*/
/*194688*/                  OPC_MoveChild0,
/*194689*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194692*/                  OPC_MoveChild0,
/*194693*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*194696*/                  OPC_MoveChild0,
/*194697*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194700*/                  OPC_RecordMemRef,
/*194701*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*194702*/                  OPC_CheckFoldableChainNode,
/*194703*/                  OPC_RecordChild1, // #2 = $src2
/*194704*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194706*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*194708*/                  OPC_CheckType, MVT::i32,
/*194710*/                  OPC_MoveParent,
/*194711*/                  OPC_CheckType, MVT::v4i32,
/*194713*/                  OPC_MoveParent,
/*194714*/                  OPC_MoveParent,
/*194715*/                  OPC_RecordChild1, // #3 = $src1
/*194716*/                  OPC_CheckType, MVT::v2i64,
/*194718*/                  OPC_MoveParent,
/*194719*/                  OPC_MoveParent,
/*194720*/                  OPC_MoveChild2,
/*194721*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194724*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194726*/                  OPC_MoveParent,
/*194727*/                  OPC_CheckType, MVT::v4i32,
/*194729*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*194731*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*194734*/                  OPC_EmitMergeInputChains1_1,
/*194735*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPORDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194748*/                0, /*End of Scope*/
/*194749*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::XOR),// ->194876
/*194752*/                OPC_Scope, 60, /*->194814*/ // 2 children in Scope
/*194754*/                  OPC_RecordChild0, // #1 = $src1
/*194755*/                  OPC_MoveChild1,
/*194756*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194759*/                  OPC_MoveChild0,
/*194760*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*194763*/                  OPC_MoveChild0,
/*194764*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194767*/                  OPC_RecordMemRef,
/*194768*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*194769*/                  OPC_CheckFoldableChainNode,
/*194770*/                  OPC_RecordChild1, // #3 = $src2
/*194771*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194773*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*194775*/                  OPC_CheckType, MVT::i32,
/*194777*/                  OPC_MoveParent,
/*194778*/                  OPC_CheckType, MVT::v4i32,
/*194780*/                  OPC_MoveParent,
/*194781*/                  OPC_MoveParent,
/*194782*/                  OPC_CheckType, MVT::v2i64,
/*194784*/                  OPC_MoveParent,
/*194785*/                  OPC_MoveParent,
/*194786*/                  OPC_MoveChild2,
/*194787*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194790*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194792*/                  OPC_MoveParent,
/*194793*/                  OPC_CheckType, MVT::v4i32,
/*194795*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*194797*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*194800*/                  OPC_EmitMergeInputChains1_2,
/*194801*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPXORDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194814*/                /*Scope*/ 60, /*->194875*/
/*194815*/                  OPC_MoveChild0,
/*194816*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194819*/                  OPC_MoveChild0,
/*194820*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*194823*/                  OPC_MoveChild0,
/*194824*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194827*/                  OPC_RecordMemRef,
/*194828*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*194829*/                  OPC_CheckFoldableChainNode,
/*194830*/                  OPC_RecordChild1, // #2 = $src2
/*194831*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194833*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*194835*/                  OPC_CheckType, MVT::i32,
/*194837*/                  OPC_MoveParent,
/*194838*/                  OPC_CheckType, MVT::v4i32,
/*194840*/                  OPC_MoveParent,
/*194841*/                  OPC_MoveParent,
/*194842*/                  OPC_RecordChild1, // #3 = $src1
/*194843*/                  OPC_CheckType, MVT::v2i64,
/*194845*/                  OPC_MoveParent,
/*194846*/                  OPC_MoveParent,
/*194847*/                  OPC_MoveChild2,
/*194848*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194851*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194853*/                  OPC_MoveParent,
/*194854*/                  OPC_CheckType, MVT::v4i32,
/*194856*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*194858*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*194861*/                  OPC_EmitMergeInputChains1_1,
/*194862*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPXORDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194875*/                0, /*End of Scope*/
/*194876*/              /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::ANDNP),// ->194939
/*194879*/                OPC_RecordChild0, // #1 = $src1
/*194880*/                OPC_MoveChild1,
/*194881*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194884*/                OPC_MoveChild0,
/*194885*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*194888*/                OPC_MoveChild0,
/*194889*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194892*/                OPC_RecordMemRef,
/*194893*/                OPC_RecordNode, // #2 = 'ld' chained node
/*194894*/                OPC_CheckFoldableChainNode,
/*194895*/                OPC_RecordChild1, // #3 = $src2
/*194896*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194898*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*194900*/                OPC_CheckType, MVT::i32,
/*194902*/                OPC_MoveParent,
/*194903*/                OPC_CheckType, MVT::v4i32,
/*194905*/                OPC_MoveParent,
/*194906*/                OPC_MoveParent,
/*194907*/                OPC_CheckType, MVT::v2i64,
/*194909*/                OPC_MoveParent,
/*194910*/                OPC_MoveParent,
/*194911*/                OPC_MoveChild2,
/*194912*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194915*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194917*/                OPC_MoveParent,
/*194918*/                OPC_CheckType, MVT::v4i32,
/*194920*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*194922*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*194925*/                OPC_EmitMergeInputChains1_2,
/*194926*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                          // Dst: (VPANDNDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194939*/              0, // EndSwitchOpcode
/*194940*/            0, /*End of Scope*/
/*194941*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VSRLI),// ->195008
/*194944*/            OPC_MoveChild0,
/*194945*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*194948*/            OPC_MoveChild0,
/*194949*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194952*/            OPC_RecordMemRef,
/*194953*/            OPC_RecordNode, // #1 = 'ld' chained node
/*194954*/            OPC_CheckFoldableChainNode,
/*194955*/            OPC_RecordChild1, // #2 = $src1
/*194956*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194958*/            OPC_CheckPredicate, 9, // Predicate_load
/*194960*/            OPC_CheckType, MVT::i64,
/*194962*/            OPC_MoveParent,
/*194963*/            OPC_MoveParent,
/*194964*/            OPC_RecordChild1, // #3 = $src2
/*194965*/            OPC_MoveChild1,
/*194966*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*194969*/            OPC_MoveParent,
/*194970*/            OPC_MoveParent,
/*194971*/            OPC_MoveChild2,
/*194972*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*194975*/            OPC_MoveChild0,
/*194976*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*194979*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*194981*/            OPC_CheckType, MVT::v8i32,
/*194983*/            OPC_MoveParent,
/*194984*/            OPC_MoveParent,
/*194985*/            OPC_CheckType, MVT::v4i64,
/*194987*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*194989*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*194992*/            OPC_EmitMergeInputChains1_1,
/*194993*/            OPC_EmitConvertToTarget, 3,
/*194995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSRLQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*195008*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VSHLI),// ->195075
/*195011*/            OPC_MoveChild0,
/*195012*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195015*/            OPC_MoveChild0,
/*195016*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195019*/            OPC_RecordMemRef,
/*195020*/            OPC_RecordNode, // #1 = 'ld' chained node
/*195021*/            OPC_CheckFoldableChainNode,
/*195022*/            OPC_RecordChild1, // #2 = $src1
/*195023*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195025*/            OPC_CheckPredicate, 9, // Predicate_load
/*195027*/            OPC_CheckType, MVT::i64,
/*195029*/            OPC_MoveParent,
/*195030*/            OPC_MoveParent,
/*195031*/            OPC_RecordChild1, // #3 = $src2
/*195032*/            OPC_MoveChild1,
/*195033*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195036*/            OPC_MoveParent,
/*195037*/            OPC_MoveParent,
/*195038*/            OPC_MoveChild2,
/*195039*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195042*/            OPC_MoveChild0,
/*195043*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195046*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195048*/            OPC_CheckType, MVT::v8i32,
/*195050*/            OPC_MoveParent,
/*195051*/            OPC_MoveParent,
/*195052*/            OPC_CheckType, MVT::v4i64,
/*195054*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*195056*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195059*/            OPC_EmitMergeInputChains1_1,
/*195060*/            OPC_EmitConvertToTarget, 3,
/*195062*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSLLQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*195075*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VSRAI),// ->195142
/*195078*/            OPC_MoveChild0,
/*195079*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195082*/            OPC_MoveChild0,
/*195083*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195086*/            OPC_RecordMemRef,
/*195087*/            OPC_RecordNode, // #1 = 'ld' chained node
/*195088*/            OPC_CheckFoldableChainNode,
/*195089*/            OPC_RecordChild1, // #2 = $src1
/*195090*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195092*/            OPC_CheckPredicate, 9, // Predicate_load
/*195094*/            OPC_CheckType, MVT::i64,
/*195096*/            OPC_MoveParent,
/*195097*/            OPC_MoveParent,
/*195098*/            OPC_RecordChild1, // #3 = $src2
/*195099*/            OPC_MoveChild1,
/*195100*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195103*/            OPC_MoveParent,
/*195104*/            OPC_MoveParent,
/*195105*/            OPC_MoveChild2,
/*195106*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195109*/            OPC_MoveChild0,
/*195110*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195113*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195115*/            OPC_CheckType, MVT::v8i32,
/*195117*/            OPC_MoveParent,
/*195118*/            OPC_MoveParent,
/*195119*/            OPC_CheckType, MVT::v4i64,
/*195121*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*195123*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195126*/            OPC_EmitMergeInputChains1_1,
/*195127*/            OPC_EmitConvertToTarget, 3,
/*195129*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSRAQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*195142*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VROTRI),// ->195209
/*195145*/            OPC_MoveChild0,
/*195146*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195149*/            OPC_MoveChild0,
/*195150*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195153*/            OPC_RecordMemRef,
/*195154*/            OPC_RecordNode, // #1 = 'ld' chained node
/*195155*/            OPC_CheckFoldableChainNode,
/*195156*/            OPC_RecordChild1, // #2 = $src1
/*195157*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195159*/            OPC_CheckPredicate, 9, // Predicate_load
/*195161*/            OPC_CheckType, MVT::i64,
/*195163*/            OPC_MoveParent,
/*195164*/            OPC_MoveParent,
/*195165*/            OPC_RecordChild1, // #3 = $src2
/*195166*/            OPC_MoveChild1,
/*195167*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195170*/            OPC_MoveParent,
/*195171*/            OPC_MoveParent,
/*195172*/            OPC_MoveChild2,
/*195173*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195176*/            OPC_MoveChild0,
/*195177*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195180*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195182*/            OPC_CheckType, MVT::v8i32,
/*195184*/            OPC_MoveParent,
/*195185*/            OPC_MoveParent,
/*195186*/            OPC_CheckType, MVT::v4i64,
/*195188*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*195190*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195193*/            OPC_EmitMergeInputChains1_1,
/*195194*/            OPC_EmitConvertToTarget, 3,
/*195196*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPRORQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*195209*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VROTLI),// ->195276
/*195212*/            OPC_MoveChild0,
/*195213*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195216*/            OPC_MoveChild0,
/*195217*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195220*/            OPC_RecordMemRef,
/*195221*/            OPC_RecordNode, // #1 = 'ld' chained node
/*195222*/            OPC_CheckFoldableChainNode,
/*195223*/            OPC_RecordChild1, // #2 = $src1
/*195224*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195226*/            OPC_CheckPredicate, 9, // Predicate_load
/*195228*/            OPC_CheckType, MVT::i64,
/*195230*/            OPC_MoveParent,
/*195231*/            OPC_MoveParent,
/*195232*/            OPC_RecordChild1, // #3 = $src2
/*195233*/            OPC_MoveChild1,
/*195234*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195237*/            OPC_MoveParent,
/*195238*/            OPC_MoveParent,
/*195239*/            OPC_MoveChild2,
/*195240*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195243*/            OPC_MoveChild0,
/*195244*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195247*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195249*/            OPC_CheckType, MVT::v8i32,
/*195251*/            OPC_MoveParent,
/*195252*/            OPC_MoveParent,
/*195253*/            OPC_CheckType, MVT::v4i64,
/*195255*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*195257*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195260*/            OPC_EmitMergeInputChains1_1,
/*195261*/            OPC_EmitConvertToTarget, 3,
/*195263*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPROLQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*195276*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VPERMI),// ->195343
/*195279*/            OPC_MoveChild0,
/*195280*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195283*/            OPC_MoveChild0,
/*195284*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195287*/            OPC_RecordMemRef,
/*195288*/            OPC_RecordNode, // #1 = 'ld' chained node
/*195289*/            OPC_CheckFoldableChainNode,
/*195290*/            OPC_RecordChild1, // #2 = $src1
/*195291*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195293*/            OPC_CheckPredicate, 9, // Predicate_load
/*195295*/            OPC_CheckType, MVT::i64,
/*195297*/            OPC_MoveParent,
/*195298*/            OPC_MoveParent,
/*195299*/            OPC_RecordChild1, // #3 = $src2
/*195300*/            OPC_MoveChild1,
/*195301*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195304*/            OPC_MoveParent,
/*195305*/            OPC_MoveParent,
/*195306*/            OPC_MoveChild2,
/*195307*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195310*/            OPC_MoveChild0,
/*195311*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195314*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195316*/            OPC_CheckType, MVT::v8i32,
/*195318*/            OPC_MoveParent,
/*195319*/            OPC_MoveParent,
/*195320*/            OPC_CheckType, MVT::v4i64,
/*195322*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*195324*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195327*/            OPC_EmitMergeInputChains1_1,
/*195328*/            OPC_EmitConvertToTarget, 3,
/*195330*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPERMQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*195343*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::SHUF128),// ->195412
/*195346*/            OPC_RecordChild0, // #1 = $src1
/*195347*/            OPC_MoveChild1,
/*195348*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195351*/            OPC_MoveChild0,
/*195352*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195355*/            OPC_RecordMemRef,
/*195356*/            OPC_RecordNode, // #2 = 'ld' chained node
/*195357*/            OPC_CheckFoldableChainNode,
/*195358*/            OPC_RecordChild1, // #3 = $src2
/*195359*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195361*/            OPC_CheckPredicate, 9, // Predicate_load
/*195363*/            OPC_CheckType, MVT::i64,
/*195365*/            OPC_MoveParent,
/*195366*/            OPC_MoveParent,
/*195367*/            OPC_RecordChild2, // #4 = $src3
/*195368*/            OPC_MoveChild2,
/*195369*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195372*/            OPC_MoveParent,
/*195373*/            OPC_MoveParent,
/*195374*/            OPC_MoveChild2,
/*195375*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195378*/            OPC_MoveChild0,
/*195379*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195382*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195384*/            OPC_CheckType, MVT::v8i32,
/*195386*/            OPC_MoveParent,
/*195387*/            OPC_MoveParent,
/*195388*/            OPC_CheckType, MVT::v4i64,
/*195390*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*195392*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195395*/            OPC_EmitMergeInputChains1_2,
/*195396*/            OPC_EmitConvertToTarget, 4,
/*195398*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VSHUFI64X2Z256rmbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*195412*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VALIGN),// ->195481
/*195415*/            OPC_RecordChild0, // #1 = $src1
/*195416*/            OPC_MoveChild1,
/*195417*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195420*/            OPC_MoveChild0,
/*195421*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195424*/            OPC_RecordMemRef,
/*195425*/            OPC_RecordNode, // #2 = 'ld' chained node
/*195426*/            OPC_CheckFoldableChainNode,
/*195427*/            OPC_RecordChild1, // #3 = $src2
/*195428*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195430*/            OPC_CheckPredicate, 9, // Predicate_load
/*195432*/            OPC_CheckType, MVT::i64,
/*195434*/            OPC_MoveParent,
/*195435*/            OPC_MoveParent,
/*195436*/            OPC_RecordChild2, // #4 = $src3
/*195437*/            OPC_MoveChild2,
/*195438*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195441*/            OPC_MoveParent,
/*195442*/            OPC_MoveParent,
/*195443*/            OPC_MoveChild2,
/*195444*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195447*/            OPC_MoveChild0,
/*195448*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195451*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195453*/            OPC_CheckType, MVT::v8i32,
/*195455*/            OPC_MoveParent,
/*195456*/            OPC_MoveParent,
/*195457*/            OPC_CheckType, MVT::v4i64,
/*195459*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*195461*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195464*/            OPC_EmitMergeInputChains1_2,
/*195465*/            OPC_EmitConvertToTarget, 4,
/*195467*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VALIGNQZ256rmbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*195481*/          /*SwitchOpcode*/ 89|128,1/*217*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->195702
/*195485*/            OPC_Scope, 70, /*->195557*/ // 3 children in Scope
/*195487*/              OPC_RecordChild0, // #1 = $src1
/*195488*/              OPC_RecordChild1, // #2 = $src2
/*195489*/              OPC_MoveChild2,
/*195490*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195493*/              OPC_MoveChild0,
/*195494*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195497*/              OPC_RecordMemRef,
/*195498*/              OPC_RecordNode, // #3 = 'ld' chained node
/*195499*/              OPC_CheckFoldableChainNode,
/*195500*/              OPC_RecordChild1, // #4 = $src3
/*195501*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195503*/              OPC_CheckPredicate, 9, // Predicate_load
/*195505*/              OPC_CheckType, MVT::i64,
/*195507*/              OPC_MoveParent,
/*195508*/              OPC_MoveParent,
/*195509*/              OPC_RecordChild3, // #5 = $src4
/*195510*/              OPC_MoveChild3,
/*195511*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195514*/              OPC_MoveParent,
/*195515*/              OPC_MoveParent,
/*195516*/              OPC_MoveChild2,
/*195517*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195520*/              OPC_MoveChild0,
/*195521*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195524*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195526*/              OPC_CheckType, MVT::v8i32,
/*195528*/              OPC_MoveParent,
/*195529*/              OPC_MoveParent,
/*195530*/              OPC_CheckType, MVT::v4i64,
/*195532*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*195534*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*195537*/              OPC_EmitMergeInputChains, 1, 3, 
/*195540*/              OPC_EmitConvertToTarget, 5,
/*195542*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPTERNLOGQZ256rmbikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*195557*/            /*Scope*/ 71, /*->195629*/
/*195558*/              OPC_MoveChild0,
/*195559*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195562*/              OPC_MoveChild0,
/*195563*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195566*/              OPC_RecordMemRef,
/*195567*/              OPC_RecordNode, // #1 = 'ld' chained node
/*195568*/              OPC_CheckFoldableChainNode,
/*195569*/              OPC_RecordChild1, // #2 = $src3
/*195570*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195572*/              OPC_CheckPredicate, 9, // Predicate_load
/*195574*/              OPC_CheckType, MVT::i64,
/*195576*/              OPC_MoveParent,
/*195577*/              OPC_MoveParent,
/*195578*/              OPC_RecordChild1, // #3 = $src2
/*195579*/              OPC_RecordChild2, // #4 = $src1
/*195580*/              OPC_RecordChild3, // #5 = $src4
/*195581*/              OPC_MoveChild3,
/*195582*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195585*/              OPC_MoveParent,
/*195586*/              OPC_MoveParent,
/*195587*/              OPC_MoveChild2,
/*195588*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195591*/              OPC_MoveChild0,
/*195592*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195595*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195597*/              OPC_CheckType, MVT::v8i32,
/*195599*/              OPC_MoveParent,
/*195600*/              OPC_MoveParent,
/*195601*/              OPC_CheckType, MVT::v4i64,
/*195603*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*195605*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*195608*/              OPC_EmitMergeInputChains1_1,
/*195609*/              OPC_EmitConvertToTarget, 5,
/*195611*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*195614*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPTERNLOGQZ256rmbikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*195629*/            /*Scope*/ 71, /*->195701*/
/*195630*/              OPC_RecordChild0, // #1 = $src1
/*195631*/              OPC_MoveChild1,
/*195632*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195635*/              OPC_MoveChild0,
/*195636*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195639*/              OPC_RecordMemRef,
/*195640*/              OPC_RecordNode, // #2 = 'ld' chained node
/*195641*/              OPC_CheckFoldableChainNode,
/*195642*/              OPC_RecordChild1, // #3 = $src3
/*195643*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195645*/              OPC_CheckPredicate, 9, // Predicate_load
/*195647*/              OPC_CheckType, MVT::i64,
/*195649*/              OPC_MoveParent,
/*195650*/              OPC_MoveParent,
/*195651*/              OPC_RecordChild2, // #4 = $src2
/*195652*/              OPC_RecordChild3, // #5 = $src4
/*195653*/              OPC_MoveChild3,
/*195654*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195657*/              OPC_MoveParent,
/*195658*/              OPC_MoveParent,
/*195659*/              OPC_MoveChild2,
/*195660*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195663*/              OPC_MoveChild0,
/*195664*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195667*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195669*/              OPC_CheckType, MVT::v8i32,
/*195671*/              OPC_MoveParent,
/*195672*/              OPC_MoveParent,
/*195673*/              OPC_CheckType, MVT::v4i64,
/*195675*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*195677*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*195680*/              OPC_EmitMergeInputChains1_2,
/*195681*/              OPC_EmitConvertToTarget, 5,
/*195683*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*195686*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPTERNLOGQZ256rmbikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*195701*/            0, /*End of Scope*/
/*195702*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VSHLD),// ->195771
/*195705*/            OPC_RecordChild0, // #1 = $src1
/*195706*/            OPC_MoveChild1,
/*195707*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195710*/            OPC_MoveChild0,
/*195711*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195714*/            OPC_RecordMemRef,
/*195715*/            OPC_RecordNode, // #2 = 'ld' chained node
/*195716*/            OPC_CheckFoldableChainNode,
/*195717*/            OPC_RecordChild1, // #3 = $src2
/*195718*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195720*/            OPC_CheckPredicate, 9, // Predicate_load
/*195722*/            OPC_CheckType, MVT::i64,
/*195724*/            OPC_MoveParent,
/*195725*/            OPC_MoveParent,
/*195726*/            OPC_RecordChild2, // #4 = $src3
/*195727*/            OPC_MoveChild2,
/*195728*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195731*/            OPC_MoveParent,
/*195732*/            OPC_MoveParent,
/*195733*/            OPC_MoveChild2,
/*195734*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195737*/            OPC_MoveChild0,
/*195738*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195741*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195743*/            OPC_CheckType, MVT::v8i32,
/*195745*/            OPC_MoveParent,
/*195746*/            OPC_MoveParent,
/*195747*/            OPC_CheckType, MVT::v4i64,
/*195749*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*195751*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195754*/            OPC_EmitMergeInputChains1_2,
/*195755*/            OPC_EmitConvertToTarget, 4,
/*195757*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHLDQZ256rmbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*195771*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VSHRD),// ->195840
/*195774*/            OPC_RecordChild0, // #1 = $src1
/*195775*/            OPC_MoveChild1,
/*195776*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*195779*/            OPC_MoveChild0,
/*195780*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195783*/            OPC_RecordMemRef,
/*195784*/            OPC_RecordNode, // #2 = 'ld' chained node
/*195785*/            OPC_CheckFoldableChainNode,
/*195786*/            OPC_RecordChild1, // #3 = $src2
/*195787*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195789*/            OPC_CheckPredicate, 9, // Predicate_load
/*195791*/            OPC_CheckType, MVT::i64,
/*195793*/            OPC_MoveParent,
/*195794*/            OPC_MoveParent,
/*195795*/            OPC_RecordChild2, // #4 = $src3
/*195796*/            OPC_MoveChild2,
/*195797*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195800*/            OPC_MoveParent,
/*195801*/            OPC_MoveParent,
/*195802*/            OPC_MoveChild2,
/*195803*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195806*/            OPC_MoveChild0,
/*195807*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195810*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195812*/            OPC_CheckType, MVT::v8i32,
/*195814*/            OPC_MoveParent,
/*195815*/            OPC_MoveParent,
/*195816*/            OPC_CheckType, MVT::v4i64,
/*195818*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*195820*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195823*/            OPC_EmitMergeInputChains1_2,
/*195824*/            OPC_EmitConvertToTarget, 4,
/*195826*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHRDQZ256rmbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*195840*/          0, // EndSwitchOpcode
/*195841*/        /*Scope*/ 70, /*->195912*/
/*195842*/          OPC_RecordChild1, // #1 = $src3
/*195843*/          OPC_MoveChild1,
/*195844*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*195847*/          OPC_RecordChild0, // #2 = $src1
/*195848*/          OPC_MoveChild1,
/*195849*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195852*/          OPC_RecordMemRef,
/*195853*/          OPC_RecordNode, // #3 = 'ld' chained node
/*195854*/          OPC_CheckFoldableChainNode,
/*195855*/          OPC_RecordChild1, // #4 = $src2
/*195856*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195858*/          OPC_CheckPredicate, 9, // Predicate_load
/*195860*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*195862*/          OPC_MoveParent,
/*195863*/          OPC_MoveChild2,
/*195864*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*195867*/          OPC_CheckType, MVT::iPTR,
/*195869*/          OPC_MoveParent,
/*195870*/          OPC_MoveParent,
/*195871*/          OPC_MoveChild2,
/*195872*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195875*/          OPC_MoveChild0,
/*195876*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195879*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195881*/          OPC_CheckType, MVT::v8i32,
/*195883*/          OPC_MoveParent,
/*195884*/          OPC_MoveParent,
/*195885*/          OPC_CheckType, MVT::v4i64,
/*195887*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*195889*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195892*/          OPC_EmitMergeInputChains, 1, 3, 
/*195895*/          OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*195898*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                    // Dst: (VINSERTI64x2Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*195912*/        /*Scope*/ 36|128,0|128,1/*16420*/, /*->212335*/
/*195915*/          OPC_MoveChild1,
/*195916*/          OPC_SwitchOpcode /*60 cases */, 53|128,1/*181*/, TARGET_VAL(X86ISD::VBROADCAST),// ->196102
/*195921*/            OPC_MoveChild0,
/*195922*/            OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->196017
/*195926*/              OPC_MoveChild0,
/*195927*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*195930*/              OPC_RecordMemRef,
/*195931*/              OPC_RecordNode, // #1 = 'ld' chained node
/*195932*/              OPC_CheckFoldableChainNode,
/*195933*/              OPC_RecordChild1, // #2 = $src
/*195934*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195936*/              OPC_SwitchType /*2 cases */, 41, MVT::i64,// ->195980
/*195939*/                OPC_CheckPredicate, 9, // Predicate_load
/*195941*/                OPC_MoveParent,
/*195942*/                OPC_CheckType, MVT::v2i64,
/*195944*/                OPC_MoveParent,
/*195945*/                OPC_MoveParent,
/*195946*/                OPC_MoveChild2,
/*195947*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*195950*/                OPC_MoveChild0,
/*195951*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195954*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195956*/                OPC_CheckType, MVT::v8i32,
/*195958*/                OPC_MoveParent,
/*195959*/                OPC_MoveParent,
/*195960*/                OPC_CheckType, MVT::v4i64,
/*195962*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*195964*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*195967*/                OPC_EmitMergeInputChains1_1,
/*195968*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPBROADCASTQZ256mkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*195980*/              /*SwitchType*/ 34, MVT::i32,// ->196016
/*195982*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*195984*/                OPC_MoveParent,
/*195985*/                OPC_CheckType, MVT::v4i32,
/*195987*/                OPC_MoveParent,
/*195988*/                OPC_MoveParent,
/*195989*/                OPC_MoveChild2,
/*195990*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*195993*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*195995*/                OPC_MoveParent,
/*195996*/                OPC_CheckType, MVT::v4i32,
/*195998*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196000*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*196003*/                OPC_EmitMergeInputChains1_1,
/*196004*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPBROADCASTDZ128mkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*196016*/              0, // EndSwitchType
/*196017*/            /*SwitchOpcode*/ 81, TARGET_VAL(ISD::LOAD),// ->196101
/*196020*/              OPC_RecordMemRef,
/*196021*/              OPC_RecordNode, // #1 = 'ld' chained node
/*196022*/              OPC_CheckFoldableChainNode,
/*196023*/              OPC_RecordChild1, // #2 = $src
/*196024*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196026*/              OPC_SwitchType /*2 cases */, 38, MVT::i64,// ->196067
/*196029*/                OPC_CheckPredicate, 9, // Predicate_load
/*196031*/                OPC_MoveParent,
/*196032*/                OPC_MoveParent,
/*196033*/                OPC_MoveChild2,
/*196034*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*196037*/                OPC_MoveChild0,
/*196038*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*196041*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*196043*/                OPC_CheckType, MVT::v8i32,
/*196045*/                OPC_MoveParent,
/*196046*/                OPC_MoveParent,
/*196047*/                OPC_CheckType, MVT::v4i64,
/*196049*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196051*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*196054*/                OPC_EmitMergeInputChains1_1,
/*196055*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPBROADCASTQZ256mkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*196067*/              /*SwitchType*/ 31, MVT::i32,// ->196100
/*196069*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*196071*/                OPC_MoveParent,
/*196072*/                OPC_MoveParent,
/*196073*/                OPC_MoveChild2,
/*196074*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*196077*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*196079*/                OPC_MoveParent,
/*196080*/                OPC_CheckType, MVT::v4i32,
/*196082*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196084*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*196087*/                OPC_EmitMergeInputChains1_1,
/*196088*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                          // Dst: (VPBROADCASTDZ128mkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*196100*/              0, // EndSwitchType
/*196101*/            0, // EndSwitchOpcode
/*196102*/          /*SwitchOpcode*/ 28|128,10/*1308*/, TARGET_VAL(ISD::BITCAST),// ->197414
/*196106*/            OPC_Scope, 122, /*->196230*/ // 3 children in Scope
/*196108*/              OPC_MoveChild0,
/*196109*/              OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->196166
/*196113*/                OPC_MoveChild0,
/*196114*/                OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*196117*/                OPC_MoveChild0,
/*196118*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196121*/                OPC_RecordMemRef,
/*196122*/                OPC_RecordNode, // #1 = 'ld' chained node
/*196123*/                OPC_CheckFoldableChainNode,
/*196124*/                OPC_RecordChild1, // #2 = $src
/*196125*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196127*/                OPC_CheckPredicate, 9, // Predicate_load
/*196129*/                OPC_CheckType, MVT::i64,
/*196131*/                OPC_MoveParent,
/*196132*/                OPC_CheckType, MVT::v2i64,
/*196134*/                OPC_MoveParent,
/*196135*/                OPC_CheckType, MVT::v2i64,
/*196137*/                OPC_MoveParent,
/*196138*/                OPC_MoveParent,
/*196139*/                OPC_MoveChild2,
/*196140*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*196143*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*196145*/                OPC_MoveParent,
/*196146*/                OPC_CheckType, MVT::v4i32,
/*196148*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*196150*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*196153*/                OPC_EmitMergeInputChains1_1,
/*196154*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VBroadcast:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VBROADCASTI32X2Z128mkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*196166*/              /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VALIGN),// ->196229
/*196169*/                OPC_RecordChild0, // #1 = $src1
/*196170*/                OPC_MoveChild1,
/*196171*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196174*/                OPC_RecordMemRef,
/*196175*/                OPC_RecordNode, // #2 = 'ld' chained node
/*196176*/                OPC_CheckFoldableChainNode,
/*196177*/                OPC_RecordChild1, // #3 = $src2
/*196178*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196180*/                OPC_CheckPredicate, 9, // Predicate_load
/*196182*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*196184*/                OPC_MoveParent,
/*196185*/                OPC_RecordChild2, // #4 = $src3
/*196186*/                OPC_MoveChild2,
/*196187*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*196190*/                OPC_MoveParent,
/*196191*/                OPC_CheckType, MVT::v2i64,
/*196193*/                OPC_MoveParent,
/*196194*/                OPC_MoveParent,
/*196195*/                OPC_MoveChild2,
/*196196*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*196199*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*196201*/                OPC_MoveParent,
/*196202*/                OPC_CheckType, MVT::v4i32,
/*196204*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*196206*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196209*/                OPC_EmitMergeInputChains1_2,
/*196210*/                OPC_EmitConvertToTarget, 4,
/*196212*/                OPC_EmitNodeXForm, 14, 10, // ValignqImm32XForm
/*196215*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VALIGNDZ128rmikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*196229*/              0, // EndSwitchOpcode
/*196230*/            /*Scope*/ 8|128,1/*136*/, /*->196368*/
/*196232*/              OPC_RecordChild0, // #1 = $ins
/*196233*/              OPC_MoveChild0,
/*196234*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*196237*/              OPC_RecordChild0, // #2 = $src1
/*196238*/              OPC_MoveChild1,
/*196239*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*196242*/              OPC_MoveChild0,
/*196243*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196246*/              OPC_RecordMemRef,
/*196247*/              OPC_RecordNode, // #3 = 'ld' chained node
/*196248*/              OPC_CheckFoldableChainNode,
/*196249*/              OPC_RecordChild1, // #4 = $src2
/*196250*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196252*/              OPC_CheckPredicate, 9, // Predicate_load
/*196254*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*196256*/              OPC_CheckType, MVT::v2i64,
/*196258*/              OPC_MoveParent,
/*196259*/              OPC_MoveParent,
/*196260*/              OPC_MoveChild2,
/*196261*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*196264*/              OPC_CheckType, MVT::iPTR,
/*196266*/              OPC_MoveParent,
/*196267*/              OPC_SwitchType /*3 cases */, 31, MVT::v8i32,// ->196301
/*196270*/                OPC_MoveParent,
/*196271*/                OPC_MoveParent,
/*196272*/                OPC_RecordChild2, // #5 = $src0
/*196273*/                OPC_CheckType, MVT::v4i64,
/*196275*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*196277*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*196280*/                OPC_EmitMergeInputChains, 1, 3, 
/*196283*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*196286*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v4i64] }:$src0) - Complexity = 37
                          // Dst: (VINSERTF64x2Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ins))
/*196301*/              /*SwitchType*/ 31, MVT::v16i16,// ->196334
/*196303*/                OPC_MoveParent,
/*196304*/                OPC_MoveParent,
/*196305*/                OPC_RecordChild2, // #5 = $src0
/*196306*/                OPC_CheckType, MVT::v4i64,
/*196308*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*196310*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*196313*/                OPC_EmitMergeInputChains, 1, 3, 
/*196316*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*196319*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v4i64] }:$src0) - Complexity = 37
                          // Dst: (VINSERTF64x2Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*196334*/              /*SwitchType*/ 31, MVT::v32i8,// ->196367
/*196336*/                OPC_MoveParent,
/*196337*/                OPC_MoveParent,
/*196338*/                OPC_RecordChild2, // #5 = $src0
/*196339*/                OPC_CheckType, MVT::v4i64,
/*196341*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*196343*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*196346*/                OPC_EmitMergeInputChains, 1, 3, 
/*196349*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*196352*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v4i64] }:$src0) - Complexity = 37
                          // Dst: (VINSERTF64x2Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*196367*/              0, // EndSwitchType
/*196368*/            /*Scope*/ 19|128,8/*1043*/, /*->197413*/
/*196370*/              OPC_MoveChild0,
/*196371*/              OPC_SwitchOpcode /*8 cases */, 84|128,1/*212*/, TARGET_VAL(ISD::AND),// ->196588
/*196376*/                OPC_Scope, 55, /*->196433*/ // 4 children in Scope
/*196378*/                  OPC_RecordChild0, // #1 = $src1
/*196379*/                  OPC_MoveChild1,
/*196380*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*196383*/                  OPC_MoveChild0,
/*196384*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*196387*/                  OPC_MoveChild0,
/*196388*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196391*/                  OPC_RecordMemRef,
/*196392*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*196393*/                  OPC_CheckFoldableChainNode,
/*196394*/                  OPC_RecordChild1, // #3 = $src2
/*196395*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196397*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*196399*/                  OPC_CheckType, MVT::i32,
/*196401*/                  OPC_MoveParent,
/*196402*/                  OPC_CheckType, MVT::v4i32,
/*196404*/                  OPC_MoveParent,
/*196405*/                  OPC_MoveParent,
/*196406*/                  OPC_CheckType, MVT::v2i64,
/*196408*/                  OPC_MoveParent,
/*196409*/                  OPC_MoveParent,
/*196410*/                  OPC_RecordChild2, // #4 = $src0
/*196411*/                  OPC_CheckType, MVT::v4i32,
/*196413*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196415*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196418*/                  OPC_EmitMergeInputChains1_2,
/*196419*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR128X:{ *:[v4i32] }:$src0) - Complexity = 37
                            // Dst: (VPANDDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196433*/                /*Scope*/ 55, /*->196489*/
/*196434*/                  OPC_MoveChild0,
/*196435*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*196438*/                  OPC_MoveChild0,
/*196439*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*196442*/                  OPC_MoveChild0,
/*196443*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196446*/                  OPC_RecordMemRef,
/*196447*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*196448*/                  OPC_CheckFoldableChainNode,
/*196449*/                  OPC_RecordChild1, // #2 = $src2
/*196450*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196452*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*196454*/                  OPC_CheckType, MVT::i32,
/*196456*/                  OPC_MoveParent,
/*196457*/                  OPC_CheckType, MVT::v4i32,
/*196459*/                  OPC_MoveParent,
/*196460*/                  OPC_MoveParent,
/*196461*/                  OPC_RecordChild1, // #3 = $src1
/*196462*/                  OPC_CheckType, MVT::v2i64,
/*196464*/                  OPC_MoveParent,
/*196465*/                  OPC_MoveParent,
/*196466*/                  OPC_RecordChild2, // #4 = $src0
/*196467*/                  OPC_CheckType, MVT::v4i32,
/*196469*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196471*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196474*/                  OPC_EmitMergeInputChains1_1,
/*196475*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 37
                            // Dst: (VPANDDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196489*/                /*Scope*/ 48, /*->196538*/
/*196490*/                  OPC_RecordChild0, // #1 = $src1
/*196491*/                  OPC_MoveChild1,
/*196492*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196495*/                  OPC_RecordMemRef,
/*196496*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*196497*/                  OPC_CheckFoldableChainNode,
/*196498*/                  OPC_RecordChild1, // #3 = $src2
/*196499*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196501*/                  OPC_CheckPredicate, 9, // Predicate_load
/*196503*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*196505*/                  OPC_MoveParent,
/*196506*/                  OPC_CheckType, MVT::v2i64,
/*196508*/                  OPC_MoveParent,
/*196509*/                  OPC_MoveParent,
/*196510*/                  OPC_MoveChild2,
/*196511*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*196514*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*196516*/                  OPC_MoveParent,
/*196517*/                  OPC_CheckType, MVT::v4i32,
/*196519*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196521*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*196524*/                  OPC_EmitMergeInputChains1_2,
/*196525*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196538*/                /*Scope*/ 48, /*->196587*/
/*196539*/                  OPC_MoveChild0,
/*196540*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196543*/                  OPC_RecordMemRef,
/*196544*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*196545*/                  OPC_CheckFoldableChainNode,
/*196546*/                  OPC_RecordChild1, // #2 = $src2
/*196547*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196549*/                  OPC_CheckPredicate, 9, // Predicate_load
/*196551*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*196553*/                  OPC_MoveParent,
/*196554*/                  OPC_RecordChild1, // #3 = $src1
/*196555*/                  OPC_CheckType, MVT::v2i64,
/*196557*/                  OPC_MoveParent,
/*196558*/                  OPC_MoveParent,
/*196559*/                  OPC_MoveChild2,
/*196560*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*196563*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*196565*/                  OPC_MoveParent,
/*196566*/                  OPC_CheckType, MVT::v4i32,
/*196568*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196570*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*196573*/                  OPC_EmitMergeInputChains1_1,
/*196574*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196587*/                0, /*End of Scope*/
/*196588*/              /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(ISD::OR),// ->196804
/*196592*/                OPC_Scope, 55, /*->196649*/ // 4 children in Scope
/*196594*/                  OPC_RecordChild0, // #1 = $src1
/*196595*/                  OPC_MoveChild1,
/*196596*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*196599*/                  OPC_MoveChild0,
/*196600*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*196603*/                  OPC_MoveChild0,
/*196604*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196607*/                  OPC_RecordMemRef,
/*196608*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*196609*/                  OPC_CheckFoldableChainNode,
/*196610*/                  OPC_RecordChild1, // #3 = $src2
/*196611*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196613*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*196615*/                  OPC_CheckType, MVT::i32,
/*196617*/                  OPC_MoveParent,
/*196618*/                  OPC_CheckType, MVT::v4i32,
/*196620*/                  OPC_MoveParent,
/*196621*/                  OPC_MoveParent,
/*196622*/                  OPC_CheckType, MVT::v2i64,
/*196624*/                  OPC_MoveParent,
/*196625*/                  OPC_MoveParent,
/*196626*/                  OPC_RecordChild2, // #4 = $src0
/*196627*/                  OPC_CheckType, MVT::v4i32,
/*196629*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196631*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196634*/                  OPC_EmitMergeInputChains1_2,
/*196635*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR128X:{ *:[v4i32] }:$src0) - Complexity = 37
                            // Dst: (VPORDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196649*/                /*Scope*/ 55, /*->196705*/
/*196650*/                  OPC_MoveChild0,
/*196651*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*196654*/                  OPC_MoveChild0,
/*196655*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*196658*/                  OPC_MoveChild0,
/*196659*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196662*/                  OPC_RecordMemRef,
/*196663*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*196664*/                  OPC_CheckFoldableChainNode,
/*196665*/                  OPC_RecordChild1, // #2 = $src2
/*196666*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196668*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*196670*/                  OPC_CheckType, MVT::i32,
/*196672*/                  OPC_MoveParent,
/*196673*/                  OPC_CheckType, MVT::v4i32,
/*196675*/                  OPC_MoveParent,
/*196676*/                  OPC_MoveParent,
/*196677*/                  OPC_RecordChild1, // #3 = $src1
/*196678*/                  OPC_CheckType, MVT::v2i64,
/*196680*/                  OPC_MoveParent,
/*196681*/                  OPC_MoveParent,
/*196682*/                  OPC_RecordChild2, // #4 = $src0
/*196683*/                  OPC_CheckType, MVT::v4i32,
/*196685*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196687*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196690*/                  OPC_EmitMergeInputChains1_1,
/*196691*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 37
                            // Dst: (VPORDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196705*/                /*Scope*/ 48, /*->196754*/
/*196706*/                  OPC_RecordChild0, // #1 = $src1
/*196707*/                  OPC_MoveChild1,
/*196708*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196711*/                  OPC_RecordMemRef,
/*196712*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*196713*/                  OPC_CheckFoldableChainNode,
/*196714*/                  OPC_RecordChild1, // #3 = $src2
/*196715*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196717*/                  OPC_CheckPredicate, 9, // Predicate_load
/*196719*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*196721*/                  OPC_MoveParent,
/*196722*/                  OPC_CheckType, MVT::v2i64,
/*196724*/                  OPC_MoveParent,
/*196725*/                  OPC_MoveParent,
/*196726*/                  OPC_MoveChild2,
/*196727*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*196730*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*196732*/                  OPC_MoveParent,
/*196733*/                  OPC_CheckType, MVT::v4i32,
/*196735*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196737*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*196740*/                  OPC_EmitMergeInputChains1_2,
/*196741*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196754*/                /*Scope*/ 48, /*->196803*/
/*196755*/                  OPC_MoveChild0,
/*196756*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196759*/                  OPC_RecordMemRef,
/*196760*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*196761*/                  OPC_CheckFoldableChainNode,
/*196762*/                  OPC_RecordChild1, // #2 = $src2
/*196763*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196765*/                  OPC_CheckPredicate, 9, // Predicate_load
/*196767*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*196769*/                  OPC_MoveParent,
/*196770*/                  OPC_RecordChild1, // #3 = $src1
/*196771*/                  OPC_CheckType, MVT::v2i64,
/*196773*/                  OPC_MoveParent,
/*196774*/                  OPC_MoveParent,
/*196775*/                  OPC_MoveChild2,
/*196776*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*196779*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*196781*/                  OPC_MoveParent,
/*196782*/                  OPC_CheckType, MVT::v4i32,
/*196784*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196786*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*196789*/                  OPC_EmitMergeInputChains1_1,
/*196790*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196803*/                0, /*End of Scope*/
/*196804*/              /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(ISD::XOR),// ->197020
/*196808*/                OPC_Scope, 55, /*->196865*/ // 4 children in Scope
/*196810*/                  OPC_RecordChild0, // #1 = $src1
/*196811*/                  OPC_MoveChild1,
/*196812*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*196815*/                  OPC_MoveChild0,
/*196816*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*196819*/                  OPC_MoveChild0,
/*196820*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196823*/                  OPC_RecordMemRef,
/*196824*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*196825*/                  OPC_CheckFoldableChainNode,
/*196826*/                  OPC_RecordChild1, // #3 = $src2
/*196827*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196829*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*196831*/                  OPC_CheckType, MVT::i32,
/*196833*/                  OPC_MoveParent,
/*196834*/                  OPC_CheckType, MVT::v4i32,
/*196836*/                  OPC_MoveParent,
/*196837*/                  OPC_MoveParent,
/*196838*/                  OPC_CheckType, MVT::v2i64,
/*196840*/                  OPC_MoveParent,
/*196841*/                  OPC_MoveParent,
/*196842*/                  OPC_RecordChild2, // #4 = $src0
/*196843*/                  OPC_CheckType, MVT::v4i32,
/*196845*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196847*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196850*/                  OPC_EmitMergeInputChains1_2,
/*196851*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR128X:{ *:[v4i32] }:$src0) - Complexity = 37
                            // Dst: (VPXORDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196865*/                /*Scope*/ 55, /*->196921*/
/*196866*/                  OPC_MoveChild0,
/*196867*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*196870*/                  OPC_MoveChild0,
/*196871*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*196874*/                  OPC_MoveChild0,
/*196875*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196878*/                  OPC_RecordMemRef,
/*196879*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*196880*/                  OPC_CheckFoldableChainNode,
/*196881*/                  OPC_RecordChild1, // #2 = $src2
/*196882*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196884*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*196886*/                  OPC_CheckType, MVT::i32,
/*196888*/                  OPC_MoveParent,
/*196889*/                  OPC_CheckType, MVT::v4i32,
/*196891*/                  OPC_MoveParent,
/*196892*/                  OPC_MoveParent,
/*196893*/                  OPC_RecordChild1, // #3 = $src1
/*196894*/                  OPC_CheckType, MVT::v2i64,
/*196896*/                  OPC_MoveParent,
/*196897*/                  OPC_MoveParent,
/*196898*/                  OPC_RecordChild2, // #4 = $src0
/*196899*/                  OPC_CheckType, MVT::v4i32,
/*196901*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196903*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196906*/                  OPC_EmitMergeInputChains1_1,
/*196907*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 37
                            // Dst: (VPXORDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196921*/                /*Scope*/ 48, /*->196970*/
/*196922*/                  OPC_RecordChild0, // #1 = $src1
/*196923*/                  OPC_MoveChild1,
/*196924*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196927*/                  OPC_RecordMemRef,
/*196928*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*196929*/                  OPC_CheckFoldableChainNode,
/*196930*/                  OPC_RecordChild1, // #3 = $src2
/*196931*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196933*/                  OPC_CheckPredicate, 9, // Predicate_load
/*196935*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*196937*/                  OPC_MoveParent,
/*196938*/                  OPC_CheckType, MVT::v2i64,
/*196940*/                  OPC_MoveParent,
/*196941*/                  OPC_MoveParent,
/*196942*/                  OPC_MoveChild2,
/*196943*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*196946*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*196948*/                  OPC_MoveParent,
/*196949*/                  OPC_CheckType, MVT::v4i32,
/*196951*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*196953*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*196956*/                  OPC_EmitMergeInputChains1_2,
/*196957*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPXORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196970*/                /*Scope*/ 48, /*->197019*/
/*196971*/                  OPC_MoveChild0,
/*196972*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196975*/                  OPC_RecordMemRef,
/*196976*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*196977*/                  OPC_CheckFoldableChainNode,
/*196978*/                  OPC_RecordChild1, // #2 = $src2
/*196979*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196981*/                  OPC_CheckPredicate, 9, // Predicate_load
/*196983*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*196985*/                  OPC_MoveParent,
/*196986*/                  OPC_RecordChild1, // #3 = $src1
/*196987*/                  OPC_CheckType, MVT::v2i64,
/*196989*/                  OPC_MoveParent,
/*196990*/                  OPC_MoveParent,
/*196991*/                  OPC_MoveChild2,
/*196992*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*196995*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*196997*/                  OPC_MoveParent,
/*196998*/                  OPC_CheckType, MVT::v4i32,
/*197000*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197002*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197005*/                  OPC_EmitMergeInputChains1_1,
/*197006*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPXORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197019*/                0, /*End of Scope*/
/*197020*/              /*SwitchOpcode*/ 103, TARGET_VAL(X86ISD::ANDNP),// ->197126
/*197023*/                OPC_RecordChild0, // #1 = $src1
/*197024*/                OPC_MoveChild1,
/*197025*/                OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->197079
/*197029*/                  OPC_MoveChild0,
/*197030*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*197033*/                  OPC_MoveChild0,
/*197034*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197037*/                  OPC_RecordMemRef,
/*197038*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*197039*/                  OPC_CheckFoldableChainNode,
/*197040*/                  OPC_RecordChild1, // #3 = $src2
/*197041*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197043*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*197045*/                  OPC_CheckType, MVT::i32,
/*197047*/                  OPC_MoveParent,
/*197048*/                  OPC_CheckType, MVT::v4i32,
/*197050*/                  OPC_MoveParent,
/*197051*/                  OPC_MoveParent,
/*197052*/                  OPC_CheckType, MVT::v2i64,
/*197054*/                  OPC_MoveParent,
/*197055*/                  OPC_MoveParent,
/*197056*/                  OPC_RecordChild2, // #4 = $src0
/*197057*/                  OPC_CheckType, MVT::v4i32,
/*197059*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197061*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*197064*/                  OPC_EmitMergeInputChains1_2,
/*197065*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR128X:{ *:[v4i32] }:$src0) - Complexity = 37
                            // Dst: (VPANDNDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197079*/                /*SwitchOpcode*/ 43, TARGET_VAL(ISD::LOAD),// ->197125
/*197082*/                  OPC_RecordMemRef,
/*197083*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*197084*/                  OPC_CheckFoldableChainNode,
/*197085*/                  OPC_RecordChild1, // #3 = $src2
/*197086*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197088*/                  OPC_CheckPredicate, 9, // Predicate_load
/*197090*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*197092*/                  OPC_MoveParent,
/*197093*/                  OPC_CheckType, MVT::v2i64,
/*197095*/                  OPC_MoveParent,
/*197096*/                  OPC_MoveParent,
/*197097*/                  OPC_MoveChild2,
/*197098*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197101*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197103*/                  OPC_MoveParent,
/*197104*/                  OPC_CheckType, MVT::v4i32,
/*197106*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197108*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197111*/                  OPC_EmitMergeInputChains1_2,
/*197112*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPANDNDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197125*/                0, // EndSwitchOpcode
/*197126*/              /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::VBROADCAST),// ->197224
/*197129*/                OPC_MoveChild0,
/*197130*/                OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::LOAD),// ->197176
/*197134*/                  OPC_RecordMemRef,
/*197135*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*197136*/                  OPC_CheckFoldableChainNode,
/*197137*/                  OPC_RecordChild1, // #2 = $src
/*197138*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197140*/                  OPC_CheckPredicate, 9, // Predicate_load
/*197142*/                  OPC_CheckType, MVT::i64,
/*197144*/                  OPC_MoveParent,
/*197145*/                  OPC_CheckType, MVT::v2i64,
/*197147*/                  OPC_MoveParent,
/*197148*/                  OPC_MoveParent,
/*197149*/                  OPC_MoveChild2,
/*197150*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197153*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197155*/                  OPC_MoveParent,
/*197156*/                  OPC_CheckType, MVT::v4i32,
/*197158*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*197160*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*197163*/                  OPC_EmitMergeInputChains1_1,
/*197164*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VBROADCASTI32X2Z128mkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*197176*/                /*SwitchOpcode*/ 44, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->197223
/*197179*/                  OPC_MoveChild0,
/*197180*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197183*/                  OPC_RecordMemRef,
/*197184*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*197185*/                  OPC_CheckFoldableChainNode,
/*197186*/                  OPC_RecordChild1, // #2 = $src
/*197187*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197189*/                  OPC_CheckPredicate, 9, // Predicate_load
/*197191*/                  OPC_CheckType, MVT::i64,
/*197193*/                  OPC_MoveParent,
/*197194*/                  OPC_CheckType, MVT::v2i64,
/*197196*/                  OPC_MoveParent,
/*197197*/                  OPC_CheckType, MVT::v2i64,
/*197199*/                  OPC_MoveParent,
/*197200*/                  OPC_MoveParent,
/*197201*/                  OPC_RecordChild2, // #3 = $src0
/*197202*/                  OPC_CheckType, MVT::v4i32,
/*197204*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*197206*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*197209*/                  OPC_EmitMergeInputChains1_1,
/*197210*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VBroadcast:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                            // Dst: (VBROADCASTI32X2Z128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*197223*/                0, // EndSwitchOpcode
/*197224*/              /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->197275
/*197227*/                OPC_MoveChild0,
/*197228*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*197231*/                OPC_MoveChild0,
/*197232*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197235*/                OPC_RecordMemRef,
/*197236*/                OPC_RecordNode, // #1 = 'ld' chained node
/*197237*/                OPC_CheckFoldableChainNode,
/*197238*/                OPC_RecordChild1, // #2 = $src
/*197239*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197241*/                OPC_CheckPredicate, 9, // Predicate_load
/*197243*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*197245*/                OPC_CheckType, MVT::v2i64,
/*197247*/                OPC_MoveParent,
/*197248*/                OPC_MoveParent,
/*197249*/                OPC_CheckType, MVT::v8i32,
/*197251*/                OPC_MoveParent,
/*197252*/                OPC_MoveParent,
/*197253*/                OPC_RecordChild2, // #3 = $src0
/*197254*/                OPC_CheckType, MVT::v4i64,
/*197256*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*197258*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*197261*/                OPC_EmitMergeInputChains1_1,
/*197262*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X2Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (X86SubVBroadcast:{ *:[v8i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VBROADCASTI64X2Z128rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*197275*/              /*SwitchOpcode*/ 55, TARGET_VAL(X86ISD::VALIGN),// ->197333
/*197278*/                OPC_RecordChild0, // #1 = $src1
/*197279*/                OPC_MoveChild1,
/*197280*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197283*/                OPC_RecordMemRef,
/*197284*/                OPC_RecordNode, // #2 = 'ld' chained node
/*197285*/                OPC_CheckFoldableChainNode,
/*197286*/                OPC_RecordChild1, // #3 = $src2
/*197287*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197289*/                OPC_CheckPredicate, 9, // Predicate_load
/*197291*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*197293*/                OPC_MoveParent,
/*197294*/                OPC_RecordChild2, // #4 = $src3
/*197295*/                OPC_MoveChild2,
/*197296*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*197299*/                OPC_MoveParent,
/*197300*/                OPC_CheckType, MVT::v2i64,
/*197302*/                OPC_MoveParent,
/*197303*/                OPC_MoveParent,
/*197304*/                OPC_RecordChild2, // #5 = $src0
/*197305*/                OPC_CheckType, MVT::v4i32,
/*197307*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197309*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*197312*/                OPC_EmitMergeInputChains1_2,
/*197313*/                OPC_EmitConvertToTarget, 4,
/*197315*/                OPC_EmitNodeXForm, 14, 11, // ValignqImm32XForm
/*197318*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VALIGNDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*197333*/              /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->197412
/*197336*/                OPC_RecordMemRef,
/*197337*/                OPC_RecordNode, // #1 = 'ld' chained node
/*197338*/                OPC_CheckFoldableChainNode,
/*197339*/                OPC_RecordChild1, // #2 = $src
/*197340*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197342*/                OPC_CheckPredicate, 9, // Predicate_load
/*197344*/                OPC_CheckType, MVT::v2i64,
/*197346*/                OPC_Scope, 31, /*->197379*/ // 2 children in Scope
/*197348*/                  OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*197350*/                  OPC_MoveParent,
/*197351*/                  OPC_MoveParent,
/*197352*/                  OPC_MoveChild2,
/*197353*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197356*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197358*/                  OPC_MoveParent,
/*197359*/                  OPC_CheckType, MVT::v4i32,
/*197361*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197363*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*197366*/                  OPC_EmitMergeInputChains1_1,
/*197367*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VMOVDQA32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*197379*/                /*Scope*/ 31, /*->197411*/
/*197380*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*197382*/                  OPC_MoveParent,
/*197383*/                  OPC_MoveParent,
/*197384*/                  OPC_MoveChild2,
/*197385*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197388*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197390*/                  OPC_MoveParent,
/*197391*/                  OPC_CheckType, MVT::v4i32,
/*197393*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197395*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*197398*/                  OPC_EmitMergeInputChains1_1,
/*197399*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VMOVDQU32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*197411*/                0, /*End of Scope*/
/*197412*/              0, // EndSwitchOpcode
/*197413*/            0, /*End of Scope*/
/*197414*/          /*SwitchOpcode*/ 81|128,1/*209*/, TARGET_VAL(X86ISD::VPERMV3),// ->197627
/*197418*/            OPC_RecordChild0, // #1 = $src1
/*197419*/            OPC_RecordChild1, // #2 = $src2
/*197420*/            OPC_MoveChild2,
/*197421*/            OPC_SwitchOpcode /*3 cases */, 95, TARGET_VAL(X86ISD::VBROADCAST),// ->197520
/*197425*/              OPC_MoveChild0,
/*197426*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197429*/              OPC_RecordMemRef,
/*197430*/              OPC_RecordNode, // #3 = 'ld' chained node
/*197431*/              OPC_CheckFoldableChainNode,
/*197432*/              OPC_RecordChild1, // #4 = $src3
/*197433*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197435*/              OPC_SwitchType /*2 cases */, 43, MVT::i64,// ->197481
/*197438*/                OPC_CheckPredicate, 9, // Predicate_load
/*197440*/                OPC_MoveParent,
/*197441*/                OPC_MoveParent,
/*197442*/                OPC_MoveParent,
/*197443*/                OPC_MoveChild2,
/*197444*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*197447*/                OPC_MoveChild0,
/*197448*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197451*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197453*/                OPC_CheckType, MVT::v8i32,
/*197455*/                OPC_MoveParent,
/*197456*/                OPC_MoveParent,
/*197457*/                OPC_CheckType, MVT::v4i64,
/*197459*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197461*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*197464*/                OPC_EmitMergeInputChains, 1, 3, 
/*197467*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMT2Q256rmbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*197481*/              /*SwitchType*/ 36, MVT::i32,// ->197519
/*197483*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*197485*/                OPC_MoveParent,
/*197486*/                OPC_MoveParent,
/*197487*/                OPC_MoveParent,
/*197488*/                OPC_MoveChild2,
/*197489*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197492*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197494*/                OPC_MoveParent,
/*197495*/                OPC_CheckType, MVT::v4i32,
/*197497*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197499*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*197502*/                OPC_EmitMergeInputChains, 1, 3, 
/*197505*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPERMT2D128rmbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*197519*/              0, // EndSwitchType
/*197520*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::BITCAST),// ->197573
/*197523*/              OPC_MoveChild0,
/*197524*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197527*/              OPC_RecordMemRef,
/*197528*/              OPC_RecordNode, // #3 = 'ld' chained node
/*197529*/              OPC_CheckFoldableChainNode,
/*197530*/              OPC_RecordChild1, // #4 = $src3
/*197531*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197533*/              OPC_CheckPredicate, 9, // Predicate_load
/*197535*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*197537*/              OPC_CheckType, MVT::v2i64,
/*197539*/              OPC_MoveParent,
/*197540*/              OPC_MoveParent,
/*197541*/              OPC_MoveParent,
/*197542*/              OPC_MoveChild2,
/*197543*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197546*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197548*/              OPC_MoveParent,
/*197549*/              OPC_CheckType, MVT::v4i32,
/*197551*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197553*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*197556*/              OPC_EmitMergeInputChains, 1, 3, 
/*197559*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPERMT2D128rmkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*197573*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->197626
/*197576*/              OPC_RecordMemRef,
/*197577*/              OPC_RecordNode, // #3 = 'ld' chained node
/*197578*/              OPC_CheckFoldableChainNode,
/*197579*/              OPC_RecordChild1, // #4 = $src3
/*197580*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197582*/              OPC_CheckPredicate, 9, // Predicate_load
/*197584*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*197586*/              OPC_MoveParent,
/*197587*/              OPC_MoveParent,
/*197588*/              OPC_MoveChild2,
/*197589*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*197592*/              OPC_MoveChild0,
/*197593*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197596*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197598*/              OPC_CheckType, MVT::v8i32,
/*197600*/              OPC_MoveParent,
/*197601*/              OPC_MoveParent,
/*197602*/              OPC_CheckType, MVT::v4i64,
/*197604*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197606*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*197609*/              OPC_EmitMergeInputChains, 1, 3, 
/*197612*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPERMT2Q256rmkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*197626*/            0, // EndSwitchOpcode
/*197627*/          /*SwitchOpcode*/ 44|128,3/*428*/, TARGET_VAL(ISD::ADD),// ->198059
/*197631*/            OPC_Scope, 57, /*->197690*/ // 4 children in Scope
/*197633*/              OPC_RecordChild0, // #1 = $src1
/*197634*/              OPC_MoveChild1,
/*197635*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*197638*/              OPC_MoveChild0,
/*197639*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197642*/              OPC_RecordMemRef,
/*197643*/              OPC_RecordNode, // #2 = 'ld' chained node
/*197644*/              OPC_CheckFoldableChainNode,
/*197645*/              OPC_RecordChild1, // #3 = $src2
/*197646*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197648*/              OPC_CheckPredicate, 9, // Predicate_load
/*197650*/              OPC_CheckType, MVT::i64,
/*197652*/              OPC_MoveParent,
/*197653*/              OPC_MoveParent,
/*197654*/              OPC_MoveParent,
/*197655*/              OPC_MoveChild2,
/*197656*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*197659*/              OPC_MoveChild0,
/*197660*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197663*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197665*/              OPC_CheckType, MVT::v8i32,
/*197667*/              OPC_MoveParent,
/*197668*/              OPC_MoveParent,
/*197669*/              OPC_CheckType, MVT::v4i64,
/*197671*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197673*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197676*/              OPC_EmitMergeInputChains1_2,
/*197677*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197690*/            /*Scope*/ 57, /*->197748*/
/*197691*/              OPC_MoveChild0,
/*197692*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*197695*/              OPC_MoveChild0,
/*197696*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197699*/              OPC_RecordMemRef,
/*197700*/              OPC_RecordNode, // #1 = 'ld' chained node
/*197701*/              OPC_CheckFoldableChainNode,
/*197702*/              OPC_RecordChild1, // #2 = $src2
/*197703*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197705*/              OPC_CheckPredicate, 9, // Predicate_load
/*197707*/              OPC_CheckType, MVT::i64,
/*197709*/              OPC_MoveParent,
/*197710*/              OPC_MoveParent,
/*197711*/              OPC_RecordChild1, // #3 = $src1
/*197712*/              OPC_MoveParent,
/*197713*/              OPC_MoveChild2,
/*197714*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*197717*/              OPC_MoveChild0,
/*197718*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197721*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197723*/              OPC_CheckType, MVT::v8i32,
/*197725*/              OPC_MoveParent,
/*197726*/              OPC_MoveParent,
/*197727*/              OPC_CheckType, MVT::v4i64,
/*197729*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197731*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197734*/              OPC_EmitMergeInputChains1_1,
/*197735*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197748*/            /*Scope*/ 24|128,1/*152*/, /*->197902*/
/*197750*/              OPC_RecordChild0, // #1 = $src1
/*197751*/              OPC_MoveChild1,
/*197752*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::LOAD),// ->197803
/*197756*/                OPC_RecordMemRef,
/*197757*/                OPC_RecordNode, // #2 = 'ld' chained node
/*197758*/                OPC_CheckFoldableChainNode,
/*197759*/                OPC_RecordChild1, // #3 = $src2
/*197760*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197762*/                OPC_CheckPredicate, 9, // Predicate_load
/*197764*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*197766*/                OPC_MoveParent,
/*197767*/                OPC_MoveParent,
/*197768*/                OPC_MoveChild2,
/*197769*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*197772*/                OPC_MoveChild0,
/*197773*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197776*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197778*/                OPC_CheckType, MVT::v8i32,
/*197780*/                OPC_MoveParent,
/*197781*/                OPC_MoveParent,
/*197782*/                OPC_CheckType, MVT::v4i64,
/*197784*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197786*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197789*/                OPC_EmitMergeInputChains1_2,
/*197790*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPADDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197803*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::BITCAST),// ->197853
/*197806*/                OPC_MoveChild0,
/*197807*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197810*/                OPC_RecordMemRef,
/*197811*/                OPC_RecordNode, // #2 = 'ld' chained node
/*197812*/                OPC_CheckFoldableChainNode,
/*197813*/                OPC_RecordChild1, // #3 = $src2
/*197814*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197816*/                OPC_CheckPredicate, 9, // Predicate_load
/*197818*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*197820*/                OPC_CheckType, MVT::v2i64,
/*197822*/                OPC_MoveParent,
/*197823*/                OPC_MoveParent,
/*197824*/                OPC_MoveParent,
/*197825*/                OPC_MoveChild2,
/*197826*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197829*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197831*/                OPC_MoveParent,
/*197832*/                OPC_CheckType, MVT::v4i32,
/*197834*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197836*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197839*/                OPC_EmitMergeInputChains1_2,
/*197840*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197853*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->197901
/*197856*/                OPC_MoveChild0,
/*197857*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197860*/                OPC_RecordMemRef,
/*197861*/                OPC_RecordNode, // #2 = 'ld' chained node
/*197862*/                OPC_CheckFoldableChainNode,
/*197863*/                OPC_RecordChild1, // #3 = $src2
/*197864*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197866*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*197868*/                OPC_CheckType, MVT::i32,
/*197870*/                OPC_MoveParent,
/*197871*/                OPC_MoveParent,
/*197872*/                OPC_MoveParent,
/*197873*/                OPC_MoveChild2,
/*197874*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197877*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197879*/                OPC_MoveParent,
/*197880*/                OPC_CheckType, MVT::v4i32,
/*197882*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197884*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197887*/                OPC_EmitMergeInputChains1_2,
/*197888*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197901*/              0, // EndSwitchOpcode
/*197902*/            /*Scope*/ 26|128,1/*154*/, /*->198058*/
/*197904*/              OPC_MoveChild0,
/*197905*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::LOAD),// ->197957
/*197909*/                OPC_RecordMemRef,
/*197910*/                OPC_RecordNode, // #1 = 'ld' chained node
/*197911*/                OPC_CheckFoldableChainNode,
/*197912*/                OPC_RecordChild1, // #2 = $src2
/*197913*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197915*/                OPC_CheckPredicate, 9, // Predicate_load
/*197917*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*197919*/                OPC_MoveParent,
/*197920*/                OPC_RecordChild1, // #3 = $src1
/*197921*/                OPC_MoveParent,
/*197922*/                OPC_MoveChild2,
/*197923*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*197926*/                OPC_MoveChild0,
/*197927*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197930*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197932*/                OPC_CheckType, MVT::v8i32,
/*197934*/                OPC_MoveParent,
/*197935*/                OPC_MoveParent,
/*197936*/                OPC_CheckType, MVT::v4i64,
/*197938*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197940*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197943*/                OPC_EmitMergeInputChains1_1,
/*197944*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPADDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197957*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::BITCAST),// ->198008
/*197960*/                OPC_MoveChild0,
/*197961*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197964*/                OPC_RecordMemRef,
/*197965*/                OPC_RecordNode, // #1 = 'ld' chained node
/*197966*/                OPC_CheckFoldableChainNode,
/*197967*/                OPC_RecordChild1, // #2 = $src2
/*197968*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197970*/                OPC_CheckPredicate, 9, // Predicate_load
/*197972*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*197974*/                OPC_CheckType, MVT::v2i64,
/*197976*/                OPC_MoveParent,
/*197977*/                OPC_MoveParent,
/*197978*/                OPC_RecordChild1, // #3 = $src1
/*197979*/                OPC_MoveParent,
/*197980*/                OPC_MoveChild2,
/*197981*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*197984*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*197986*/                OPC_MoveParent,
/*197987*/                OPC_CheckType, MVT::v4i32,
/*197989*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*197991*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197994*/                OPC_EmitMergeInputChains1_1,
/*197995*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198008*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->198057
/*198011*/                OPC_MoveChild0,
/*198012*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198015*/                OPC_RecordMemRef,
/*198016*/                OPC_RecordNode, // #1 = 'ld' chained node
/*198017*/                OPC_CheckFoldableChainNode,
/*198018*/                OPC_RecordChild1, // #2 = $src2
/*198019*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198021*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*198023*/                OPC_CheckType, MVT::i32,
/*198025*/                OPC_MoveParent,
/*198026*/                OPC_MoveParent,
/*198027*/                OPC_RecordChild1, // #3 = $src1
/*198028*/                OPC_MoveParent,
/*198029*/                OPC_MoveChild2,
/*198030*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198033*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198035*/                OPC_MoveParent,
/*198036*/                OPC_CheckType, MVT::v4i32,
/*198038*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198040*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198043*/                OPC_EmitMergeInputChains1_1,
/*198044*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198057*/              0, // EndSwitchOpcode
/*198058*/            0, /*End of Scope*/
/*198059*/          /*SwitchOpcode*/ 68|128,1/*196*/, TARGET_VAL(ISD::SUB),// ->198259
/*198063*/            OPC_RecordChild0, // #1 = $src1
/*198064*/            OPC_MoveChild1,
/*198065*/            OPC_SwitchOpcode /*3 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->198158
/*198069*/              OPC_MoveChild0,
/*198070*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198073*/              OPC_RecordMemRef,
/*198074*/              OPC_RecordNode, // #2 = 'ld' chained node
/*198075*/              OPC_CheckFoldableChainNode,
/*198076*/              OPC_RecordChild1, // #3 = $src2
/*198077*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198079*/              OPC_SwitchType /*2 cases */, 40, MVT::i64,// ->198122
/*198082*/                OPC_CheckPredicate, 9, // Predicate_load
/*198084*/                OPC_MoveParent,
/*198085*/                OPC_MoveParent,
/*198086*/                OPC_MoveParent,
/*198087*/                OPC_MoveChild2,
/*198088*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*198091*/                OPC_MoveChild0,
/*198092*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198095*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198097*/                OPC_CheckType, MVT::v8i32,
/*198099*/                OPC_MoveParent,
/*198100*/                OPC_MoveParent,
/*198101*/                OPC_CheckType, MVT::v4i64,
/*198103*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198105*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198108*/                OPC_EmitMergeInputChains1_2,
/*198109*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSUBQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198122*/              /*SwitchType*/ 33, MVT::i32,// ->198157
/*198124*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*198126*/                OPC_MoveParent,
/*198127*/                OPC_MoveParent,
/*198128*/                OPC_MoveParent,
/*198129*/                OPC_MoveChild2,
/*198130*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198133*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198135*/                OPC_MoveParent,
/*198136*/                OPC_CheckType, MVT::v4i32,
/*198138*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198140*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198143*/                OPC_EmitMergeInputChains1_2,
/*198144*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSUBDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198157*/              0, // EndSwitchType
/*198158*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->198208
/*198161*/              OPC_RecordMemRef,
/*198162*/              OPC_RecordNode, // #2 = 'ld' chained node
/*198163*/              OPC_CheckFoldableChainNode,
/*198164*/              OPC_RecordChild1, // #3 = $src2
/*198165*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198167*/              OPC_CheckPredicate, 9, // Predicate_load
/*198169*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*198171*/              OPC_MoveParent,
/*198172*/              OPC_MoveParent,
/*198173*/              OPC_MoveChild2,
/*198174*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*198177*/              OPC_MoveChild0,
/*198178*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198181*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198183*/              OPC_CheckType, MVT::v8i32,
/*198185*/              OPC_MoveParent,
/*198186*/              OPC_MoveParent,
/*198187*/              OPC_CheckType, MVT::v4i64,
/*198189*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198191*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198194*/              OPC_EmitMergeInputChains1_2,
/*198195*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSUBQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198208*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::BITCAST),// ->198258
/*198211*/              OPC_MoveChild0,
/*198212*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198215*/              OPC_RecordMemRef,
/*198216*/              OPC_RecordNode, // #2 = 'ld' chained node
/*198217*/              OPC_CheckFoldableChainNode,
/*198218*/              OPC_RecordChild1, // #3 = $src2
/*198219*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198221*/              OPC_CheckPredicate, 9, // Predicate_load
/*198223*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*198225*/              OPC_CheckType, MVT::v2i64,
/*198227*/              OPC_MoveParent,
/*198228*/              OPC_MoveParent,
/*198229*/              OPC_MoveParent,
/*198230*/              OPC_MoveChild2,
/*198231*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198234*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198236*/              OPC_MoveParent,
/*198237*/              OPC_CheckType, MVT::v4i32,
/*198239*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198241*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198244*/              OPC_EmitMergeInputChains1_2,
/*198245*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSUBDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198258*/            0, // EndSwitchOpcode
/*198259*/          /*SwitchOpcode*/ 44|128,3/*428*/, TARGET_VAL(ISD::MUL),// ->198691
/*198263*/            OPC_Scope, 57, /*->198322*/ // 4 children in Scope
/*198265*/              OPC_RecordChild0, // #1 = $src1
/*198266*/              OPC_MoveChild1,
/*198267*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*198270*/              OPC_MoveChild0,
/*198271*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198274*/              OPC_RecordMemRef,
/*198275*/              OPC_RecordNode, // #2 = 'ld' chained node
/*198276*/              OPC_CheckFoldableChainNode,
/*198277*/              OPC_RecordChild1, // #3 = $src2
/*198278*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198280*/              OPC_CheckPredicate, 9, // Predicate_load
/*198282*/              OPC_CheckType, MVT::i64,
/*198284*/              OPC_MoveParent,
/*198285*/              OPC_MoveParent,
/*198286*/              OPC_MoveParent,
/*198287*/              OPC_MoveChild2,
/*198288*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*198291*/              OPC_MoveChild0,
/*198292*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198295*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198297*/              OPC_CheckType, MVT::v8i32,
/*198299*/              OPC_MoveParent,
/*198300*/              OPC_MoveParent,
/*198301*/              OPC_CheckType, MVT::v4i64,
/*198303*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*198305*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198308*/              OPC_EmitMergeInputChains1_2,
/*198309*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULLQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198322*/            /*Scope*/ 57, /*->198380*/
/*198323*/              OPC_MoveChild0,
/*198324*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*198327*/              OPC_MoveChild0,
/*198328*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198331*/              OPC_RecordMemRef,
/*198332*/              OPC_RecordNode, // #1 = 'ld' chained node
/*198333*/              OPC_CheckFoldableChainNode,
/*198334*/              OPC_RecordChild1, // #2 = $src2
/*198335*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198337*/              OPC_CheckPredicate, 9, // Predicate_load
/*198339*/              OPC_CheckType, MVT::i64,
/*198341*/              OPC_MoveParent,
/*198342*/              OPC_MoveParent,
/*198343*/              OPC_RecordChild1, // #3 = $src1
/*198344*/              OPC_MoveParent,
/*198345*/              OPC_MoveChild2,
/*198346*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*198349*/              OPC_MoveChild0,
/*198350*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198353*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198355*/              OPC_CheckType, MVT::v8i32,
/*198357*/              OPC_MoveParent,
/*198358*/              OPC_MoveParent,
/*198359*/              OPC_CheckType, MVT::v4i64,
/*198361*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*198363*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198366*/              OPC_EmitMergeInputChains1_1,
/*198367*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULLQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198380*/            /*Scope*/ 24|128,1/*152*/, /*->198534*/
/*198382*/              OPC_RecordChild0, // #1 = $src1
/*198383*/              OPC_MoveChild1,
/*198384*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->198435
/*198388*/                OPC_MoveChild0,
/*198389*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198392*/                OPC_RecordMemRef,
/*198393*/                OPC_RecordNode, // #2 = 'ld' chained node
/*198394*/                OPC_CheckFoldableChainNode,
/*198395*/                OPC_RecordChild1, // #3 = $src2
/*198396*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198398*/                OPC_CheckPredicate, 9, // Predicate_load
/*198400*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*198402*/                OPC_CheckType, MVT::v2i64,
/*198404*/                OPC_MoveParent,
/*198405*/                OPC_MoveParent,
/*198406*/                OPC_MoveParent,
/*198407*/                OPC_MoveChild2,
/*198408*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198411*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198413*/                OPC_MoveParent,
/*198414*/                OPC_CheckType, MVT::v4i32,
/*198416*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198418*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198421*/                OPC_EmitMergeInputChains1_2,
/*198422*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198435*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->198483
/*198438*/                OPC_MoveChild0,
/*198439*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198442*/                OPC_RecordMemRef,
/*198443*/                OPC_RecordNode, // #2 = 'ld' chained node
/*198444*/                OPC_CheckFoldableChainNode,
/*198445*/                OPC_RecordChild1, // #3 = $src2
/*198446*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198448*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*198450*/                OPC_CheckType, MVT::i32,
/*198452*/                OPC_MoveParent,
/*198453*/                OPC_MoveParent,
/*198454*/                OPC_MoveParent,
/*198455*/                OPC_MoveChild2,
/*198456*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198459*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198461*/                OPC_MoveParent,
/*198462*/                OPC_CheckType, MVT::v4i32,
/*198464*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198466*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198469*/                OPC_EmitMergeInputChains1_2,
/*198470*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198483*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->198533
/*198486*/                OPC_RecordMemRef,
/*198487*/                OPC_RecordNode, // #2 = 'ld' chained node
/*198488*/                OPC_CheckFoldableChainNode,
/*198489*/                OPC_RecordChild1, // #3 = $src2
/*198490*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198492*/                OPC_CheckPredicate, 9, // Predicate_load
/*198494*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*198496*/                OPC_MoveParent,
/*198497*/                OPC_MoveParent,
/*198498*/                OPC_MoveChild2,
/*198499*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*198502*/                OPC_MoveChild0,
/*198503*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198506*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198508*/                OPC_CheckType, MVT::v8i32,
/*198510*/                OPC_MoveParent,
/*198511*/                OPC_MoveParent,
/*198512*/                OPC_CheckType, MVT::v4i64,
/*198514*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*198516*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198519*/                OPC_EmitMergeInputChains1_2,
/*198520*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMULLQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198533*/              0, // EndSwitchOpcode
/*198534*/            /*Scope*/ 26|128,1/*154*/, /*->198690*/
/*198536*/              OPC_MoveChild0,
/*198537*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->198589
/*198541*/                OPC_MoveChild0,
/*198542*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198545*/                OPC_RecordMemRef,
/*198546*/                OPC_RecordNode, // #1 = 'ld' chained node
/*198547*/                OPC_CheckFoldableChainNode,
/*198548*/                OPC_RecordChild1, // #2 = $src2
/*198549*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198551*/                OPC_CheckPredicate, 9, // Predicate_load
/*198553*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*198555*/                OPC_CheckType, MVT::v2i64,
/*198557*/                OPC_MoveParent,
/*198558*/                OPC_MoveParent,
/*198559*/                OPC_RecordChild1, // #3 = $src1
/*198560*/                OPC_MoveParent,
/*198561*/                OPC_MoveChild2,
/*198562*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198565*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198567*/                OPC_MoveParent,
/*198568*/                OPC_CheckType, MVT::v4i32,
/*198570*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198572*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198575*/                OPC_EmitMergeInputChains1_1,
/*198576*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198589*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->198638
/*198592*/                OPC_MoveChild0,
/*198593*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198596*/                OPC_RecordMemRef,
/*198597*/                OPC_RecordNode, // #1 = 'ld' chained node
/*198598*/                OPC_CheckFoldableChainNode,
/*198599*/                OPC_RecordChild1, // #2 = $src2
/*198600*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198602*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*198604*/                OPC_CheckType, MVT::i32,
/*198606*/                OPC_MoveParent,
/*198607*/                OPC_MoveParent,
/*198608*/                OPC_RecordChild1, // #3 = $src1
/*198609*/                OPC_MoveParent,
/*198610*/                OPC_MoveChild2,
/*198611*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198614*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198616*/                OPC_MoveParent,
/*198617*/                OPC_CheckType, MVT::v4i32,
/*198619*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198621*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198624*/                OPC_EmitMergeInputChains1_1,
/*198625*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198638*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->198689
/*198641*/                OPC_RecordMemRef,
/*198642*/                OPC_RecordNode, // #1 = 'ld' chained node
/*198643*/                OPC_CheckFoldableChainNode,
/*198644*/                OPC_RecordChild1, // #2 = $src2
/*198645*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198647*/                OPC_CheckPredicate, 9, // Predicate_load
/*198649*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*198651*/                OPC_MoveParent,
/*198652*/                OPC_RecordChild1, // #3 = $src1
/*198653*/                OPC_MoveParent,
/*198654*/                OPC_MoveChild2,
/*198655*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*198658*/                OPC_MoveChild0,
/*198659*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198662*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198664*/                OPC_CheckType, MVT::v8i32,
/*198666*/                OPC_MoveParent,
/*198667*/                OPC_MoveParent,
/*198668*/                OPC_CheckType, MVT::v4i64,
/*198670*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*198672*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198675*/                OPC_EmitMergeInputChains1_1,
/*198676*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMULLQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198689*/              0, // EndSwitchOpcode
/*198690*/            0, /*End of Scope*/
/*198691*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(X86ISD::PMULDQ),// ->198919
/*198695*/            OPC_Scope, 57, /*->198754*/ // 4 children in Scope
/*198697*/              OPC_RecordChild0, // #1 = $src1
/*198698*/              OPC_MoveChild1,
/*198699*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*198702*/              OPC_MoveChild0,
/*198703*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198706*/              OPC_RecordMemRef,
/*198707*/              OPC_RecordNode, // #2 = 'ld' chained node
/*198708*/              OPC_CheckFoldableChainNode,
/*198709*/              OPC_RecordChild1, // #3 = $src2
/*198710*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198712*/              OPC_CheckPredicate, 9, // Predicate_load
/*198714*/              OPC_CheckType, MVT::i64,
/*198716*/              OPC_MoveParent,
/*198717*/              OPC_MoveParent,
/*198718*/              OPC_MoveParent,
/*198719*/              OPC_MoveChild2,
/*198720*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*198723*/              OPC_MoveChild0,
/*198724*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198727*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198729*/              OPC_CheckType, MVT::v8i32,
/*198731*/              OPC_MoveParent,
/*198732*/              OPC_MoveParent,
/*198733*/              OPC_CheckType, MVT::v4i64,
/*198735*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198737*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198740*/              OPC_EmitMergeInputChains1_2,
/*198741*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuldq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198754*/            /*Scope*/ 57, /*->198812*/
/*198755*/              OPC_MoveChild0,
/*198756*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*198759*/              OPC_MoveChild0,
/*198760*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198763*/              OPC_RecordMemRef,
/*198764*/              OPC_RecordNode, // #1 = 'ld' chained node
/*198765*/              OPC_CheckFoldableChainNode,
/*198766*/              OPC_RecordChild1, // #2 = $src2
/*198767*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198769*/              OPC_CheckPredicate, 9, // Predicate_load
/*198771*/              OPC_CheckType, MVT::i64,
/*198773*/              OPC_MoveParent,
/*198774*/              OPC_MoveParent,
/*198775*/              OPC_RecordChild1, // #3 = $src1
/*198776*/              OPC_MoveParent,
/*198777*/              OPC_MoveChild2,
/*198778*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*198781*/              OPC_MoveChild0,
/*198782*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198785*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198787*/              OPC_CheckType, MVT::v8i32,
/*198789*/              OPC_MoveParent,
/*198790*/              OPC_MoveParent,
/*198791*/              OPC_CheckType, MVT::v4i64,
/*198793*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198795*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198798*/              OPC_EmitMergeInputChains1_1,
/*198799*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuldq:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198812*/            /*Scope*/ 52, /*->198865*/
/*198813*/              OPC_RecordChild0, // #1 = $src1
/*198814*/              OPC_MoveChild1,
/*198815*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198818*/              OPC_RecordMemRef,
/*198819*/              OPC_RecordNode, // #2 = 'ld' chained node
/*198820*/              OPC_CheckFoldableChainNode,
/*198821*/              OPC_RecordChild1, // #3 = $src2
/*198822*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198824*/              OPC_CheckPredicate, 9, // Predicate_load
/*198826*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*198828*/              OPC_MoveParent,
/*198829*/              OPC_MoveParent,
/*198830*/              OPC_MoveChild2,
/*198831*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*198834*/              OPC_MoveChild0,
/*198835*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198838*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198840*/              OPC_CheckType, MVT::v8i32,
/*198842*/              OPC_MoveParent,
/*198843*/              OPC_MoveParent,
/*198844*/              OPC_CheckType, MVT::v4i64,
/*198846*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198848*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198851*/              OPC_EmitMergeInputChains1_2,
/*198852*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuldq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMULDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198865*/            /*Scope*/ 52, /*->198918*/
/*198866*/              OPC_MoveChild0,
/*198867*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198870*/              OPC_RecordMemRef,
/*198871*/              OPC_RecordNode, // #1 = 'ld' chained node
/*198872*/              OPC_CheckFoldableChainNode,
/*198873*/              OPC_RecordChild1, // #2 = $src2
/*198874*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198876*/              OPC_CheckPredicate, 9, // Predicate_load
/*198878*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*198880*/              OPC_MoveParent,
/*198881*/              OPC_RecordChild1, // #3 = $src1
/*198882*/              OPC_MoveParent,
/*198883*/              OPC_MoveChild2,
/*198884*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*198887*/              OPC_MoveChild0,
/*198888*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198891*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198893*/              OPC_CheckType, MVT::v8i32,
/*198895*/              OPC_MoveParent,
/*198896*/              OPC_MoveParent,
/*198897*/              OPC_CheckType, MVT::v4i64,
/*198899*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198901*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198904*/              OPC_EmitMergeInputChains1_1,
/*198905*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuldq:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMULDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198918*/            0, /*End of Scope*/
/*198919*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(X86ISD::PMULUDQ),// ->199147
/*198923*/            OPC_Scope, 57, /*->198982*/ // 4 children in Scope
/*198925*/              OPC_RecordChild0, // #1 = $src1
/*198926*/              OPC_MoveChild1,
/*198927*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*198930*/              OPC_MoveChild0,
/*198931*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198934*/              OPC_RecordMemRef,
/*198935*/              OPC_RecordNode, // #2 = 'ld' chained node
/*198936*/              OPC_CheckFoldableChainNode,
/*198937*/              OPC_RecordChild1, // #3 = $src2
/*198938*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198940*/              OPC_CheckPredicate, 9, // Predicate_load
/*198942*/              OPC_CheckType, MVT::i64,
/*198944*/              OPC_MoveParent,
/*198945*/              OPC_MoveParent,
/*198946*/              OPC_MoveParent,
/*198947*/              OPC_MoveChild2,
/*198948*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*198951*/              OPC_MoveChild0,
/*198952*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*198955*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*198957*/              OPC_CheckType, MVT::v8i32,
/*198959*/              OPC_MoveParent,
/*198960*/              OPC_MoveParent,
/*198961*/              OPC_CheckType, MVT::v4i64,
/*198963*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198965*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198968*/              OPC_EmitMergeInputChains1_2,
/*198969*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuludq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULUDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198982*/            /*Scope*/ 57, /*->199040*/
/*198983*/              OPC_MoveChild0,
/*198984*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*198987*/              OPC_MoveChild0,
/*198988*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198991*/              OPC_RecordMemRef,
/*198992*/              OPC_RecordNode, // #1 = 'ld' chained node
/*198993*/              OPC_CheckFoldableChainNode,
/*198994*/              OPC_RecordChild1, // #2 = $src2
/*198995*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198997*/              OPC_CheckPredicate, 9, // Predicate_load
/*198999*/              OPC_CheckType, MVT::i64,
/*199001*/              OPC_MoveParent,
/*199002*/              OPC_MoveParent,
/*199003*/              OPC_RecordChild1, // #3 = $src1
/*199004*/              OPC_MoveParent,
/*199005*/              OPC_MoveChild2,
/*199006*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*199009*/              OPC_MoveChild0,
/*199010*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199013*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199015*/              OPC_CheckType, MVT::v8i32,
/*199017*/              OPC_MoveParent,
/*199018*/              OPC_MoveParent,
/*199019*/              OPC_CheckType, MVT::v4i64,
/*199021*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199023*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199026*/              OPC_EmitMergeInputChains1_1,
/*199027*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuludq:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULUDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199040*/            /*Scope*/ 52, /*->199093*/
/*199041*/              OPC_RecordChild0, // #1 = $src1
/*199042*/              OPC_MoveChild1,
/*199043*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199046*/              OPC_RecordMemRef,
/*199047*/              OPC_RecordNode, // #2 = 'ld' chained node
/*199048*/              OPC_CheckFoldableChainNode,
/*199049*/              OPC_RecordChild1, // #3 = $src2
/*199050*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199052*/              OPC_CheckPredicate, 9, // Predicate_load
/*199054*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*199056*/              OPC_MoveParent,
/*199057*/              OPC_MoveParent,
/*199058*/              OPC_MoveChild2,
/*199059*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*199062*/              OPC_MoveChild0,
/*199063*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199066*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199068*/              OPC_CheckType, MVT::v8i32,
/*199070*/              OPC_MoveParent,
/*199071*/              OPC_MoveParent,
/*199072*/              OPC_CheckType, MVT::v4i64,
/*199074*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199076*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199079*/              OPC_EmitMergeInputChains1_2,
/*199080*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuludq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMULUDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199093*/            /*Scope*/ 52, /*->199146*/
/*199094*/              OPC_MoveChild0,
/*199095*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199098*/              OPC_RecordMemRef,
/*199099*/              OPC_RecordNode, // #1 = 'ld' chained node
/*199100*/              OPC_CheckFoldableChainNode,
/*199101*/              OPC_RecordChild1, // #2 = $src2
/*199102*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199104*/              OPC_CheckPredicate, 9, // Predicate_load
/*199106*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*199108*/              OPC_MoveParent,
/*199109*/              OPC_RecordChild1, // #3 = $src1
/*199110*/              OPC_MoveParent,
/*199111*/              OPC_MoveChild2,
/*199112*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*199115*/              OPC_MoveChild0,
/*199116*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199119*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199121*/              OPC_CheckType, MVT::v8i32,
/*199123*/              OPC_MoveParent,
/*199124*/              OPC_MoveParent,
/*199125*/              OPC_CheckType, MVT::v4i64,
/*199127*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199129*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199132*/              OPC_EmitMergeInputChains1_1,
/*199133*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuludq:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMULUDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199146*/            0, /*End of Scope*/
/*199147*/          /*SwitchOpcode*/ 44|128,3/*428*/, TARGET_VAL(ISD::SMAX),// ->199579
/*199151*/            OPC_Scope, 57, /*->199210*/ // 4 children in Scope
/*199153*/              OPC_RecordChild0, // #1 = $src1
/*199154*/              OPC_MoveChild1,
/*199155*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*199158*/              OPC_MoveChild0,
/*199159*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199162*/              OPC_RecordMemRef,
/*199163*/              OPC_RecordNode, // #2 = 'ld' chained node
/*199164*/              OPC_CheckFoldableChainNode,
/*199165*/              OPC_RecordChild1, // #3 = $src2
/*199166*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199168*/              OPC_CheckPredicate, 9, // Predicate_load
/*199170*/              OPC_CheckType, MVT::i64,
/*199172*/              OPC_MoveParent,
/*199173*/              OPC_MoveParent,
/*199174*/              OPC_MoveParent,
/*199175*/              OPC_MoveChild2,
/*199176*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*199179*/              OPC_MoveChild0,
/*199180*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199183*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199185*/              OPC_CheckType, MVT::v8i32,
/*199187*/              OPC_MoveParent,
/*199188*/              OPC_MoveParent,
/*199189*/              OPC_CheckType, MVT::v4i64,
/*199191*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199193*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199196*/              OPC_EmitMergeInputChains1_2,
/*199197*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXSQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199210*/            /*Scope*/ 57, /*->199268*/
/*199211*/              OPC_MoveChild0,
/*199212*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*199215*/              OPC_MoveChild0,
/*199216*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199219*/              OPC_RecordMemRef,
/*199220*/              OPC_RecordNode, // #1 = 'ld' chained node
/*199221*/              OPC_CheckFoldableChainNode,
/*199222*/              OPC_RecordChild1, // #2 = $src2
/*199223*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199225*/              OPC_CheckPredicate, 9, // Predicate_load
/*199227*/              OPC_CheckType, MVT::i64,
/*199229*/              OPC_MoveParent,
/*199230*/              OPC_MoveParent,
/*199231*/              OPC_RecordChild1, // #3 = $src1
/*199232*/              OPC_MoveParent,
/*199233*/              OPC_MoveChild2,
/*199234*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*199237*/              OPC_MoveChild0,
/*199238*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199241*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199243*/              OPC_CheckType, MVT::v8i32,
/*199245*/              OPC_MoveParent,
/*199246*/              OPC_MoveParent,
/*199247*/              OPC_CheckType, MVT::v4i64,
/*199249*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199251*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199254*/              OPC_EmitMergeInputChains1_1,
/*199255*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXSQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199268*/            /*Scope*/ 24|128,1/*152*/, /*->199422*/
/*199270*/              OPC_RecordChild0, // #1 = $src1
/*199271*/              OPC_MoveChild1,
/*199272*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->199323
/*199276*/                OPC_MoveChild0,
/*199277*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199280*/                OPC_RecordMemRef,
/*199281*/                OPC_RecordNode, // #2 = 'ld' chained node
/*199282*/                OPC_CheckFoldableChainNode,
/*199283*/                OPC_RecordChild1, // #3 = $src2
/*199284*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199286*/                OPC_CheckPredicate, 9, // Predicate_load
/*199288*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*199290*/                OPC_CheckType, MVT::v2i64,
/*199292*/                OPC_MoveParent,
/*199293*/                OPC_MoveParent,
/*199294*/                OPC_MoveParent,
/*199295*/                OPC_MoveChild2,
/*199296*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199299*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199301*/                OPC_MoveParent,
/*199302*/                OPC_CheckType, MVT::v4i32,
/*199304*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199306*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199309*/                OPC_EmitMergeInputChains1_2,
/*199310*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199323*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->199371
/*199326*/                OPC_MoveChild0,
/*199327*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199330*/                OPC_RecordMemRef,
/*199331*/                OPC_RecordNode, // #2 = 'ld' chained node
/*199332*/                OPC_CheckFoldableChainNode,
/*199333*/                OPC_RecordChild1, // #3 = $src2
/*199334*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199336*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*199338*/                OPC_CheckType, MVT::i32,
/*199340*/                OPC_MoveParent,
/*199341*/                OPC_MoveParent,
/*199342*/                OPC_MoveParent,
/*199343*/                OPC_MoveChild2,
/*199344*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199347*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199349*/                OPC_MoveParent,
/*199350*/                OPC_CheckType, MVT::v4i32,
/*199352*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199354*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199357*/                OPC_EmitMergeInputChains1_2,
/*199358*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199371*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->199421
/*199374*/                OPC_RecordMemRef,
/*199375*/                OPC_RecordNode, // #2 = 'ld' chained node
/*199376*/                OPC_CheckFoldableChainNode,
/*199377*/                OPC_RecordChild1, // #3 = $src2
/*199378*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199380*/                OPC_CheckPredicate, 9, // Predicate_load
/*199382*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*199384*/                OPC_MoveParent,
/*199385*/                OPC_MoveParent,
/*199386*/                OPC_MoveChild2,
/*199387*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*199390*/                OPC_MoveChild0,
/*199391*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199394*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199396*/                OPC_CheckType, MVT::v8i32,
/*199398*/                OPC_MoveParent,
/*199399*/                OPC_MoveParent,
/*199400*/                OPC_CheckType, MVT::v4i64,
/*199402*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199404*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199407*/                OPC_EmitMergeInputChains1_2,
/*199408*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMAXSQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199421*/              0, // EndSwitchOpcode
/*199422*/            /*Scope*/ 26|128,1/*154*/, /*->199578*/
/*199424*/              OPC_MoveChild0,
/*199425*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->199477
/*199429*/                OPC_MoveChild0,
/*199430*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199433*/                OPC_RecordMemRef,
/*199434*/                OPC_RecordNode, // #1 = 'ld' chained node
/*199435*/                OPC_CheckFoldableChainNode,
/*199436*/                OPC_RecordChild1, // #2 = $src2
/*199437*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199439*/                OPC_CheckPredicate, 9, // Predicate_load
/*199441*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*199443*/                OPC_CheckType, MVT::v2i64,
/*199445*/                OPC_MoveParent,
/*199446*/                OPC_MoveParent,
/*199447*/                OPC_RecordChild1, // #3 = $src1
/*199448*/                OPC_MoveParent,
/*199449*/                OPC_MoveChild2,
/*199450*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199453*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199455*/                OPC_MoveParent,
/*199456*/                OPC_CheckType, MVT::v4i32,
/*199458*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199460*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199463*/                OPC_EmitMergeInputChains1_1,
/*199464*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199477*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->199526
/*199480*/                OPC_MoveChild0,
/*199481*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199484*/                OPC_RecordMemRef,
/*199485*/                OPC_RecordNode, // #1 = 'ld' chained node
/*199486*/                OPC_CheckFoldableChainNode,
/*199487*/                OPC_RecordChild1, // #2 = $src2
/*199488*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199490*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*199492*/                OPC_CheckType, MVT::i32,
/*199494*/                OPC_MoveParent,
/*199495*/                OPC_MoveParent,
/*199496*/                OPC_RecordChild1, // #3 = $src1
/*199497*/                OPC_MoveParent,
/*199498*/                OPC_MoveChild2,
/*199499*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199502*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199504*/                OPC_MoveParent,
/*199505*/                OPC_CheckType, MVT::v4i32,
/*199507*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199509*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199512*/                OPC_EmitMergeInputChains1_1,
/*199513*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199526*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->199577
/*199529*/                OPC_RecordMemRef,
/*199530*/                OPC_RecordNode, // #1 = 'ld' chained node
/*199531*/                OPC_CheckFoldableChainNode,
/*199532*/                OPC_RecordChild1, // #2 = $src2
/*199533*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199535*/                OPC_CheckPredicate, 9, // Predicate_load
/*199537*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*199539*/                OPC_MoveParent,
/*199540*/                OPC_RecordChild1, // #3 = $src1
/*199541*/                OPC_MoveParent,
/*199542*/                OPC_MoveChild2,
/*199543*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*199546*/                OPC_MoveChild0,
/*199547*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199550*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199552*/                OPC_CheckType, MVT::v8i32,
/*199554*/                OPC_MoveParent,
/*199555*/                OPC_MoveParent,
/*199556*/                OPC_CheckType, MVT::v4i64,
/*199558*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199560*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199563*/                OPC_EmitMergeInputChains1_1,
/*199564*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMAXSQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199577*/              0, // EndSwitchOpcode
/*199578*/            0, /*End of Scope*/
/*199579*/          /*SwitchOpcode*/ 44|128,3/*428*/, TARGET_VAL(ISD::UMAX),// ->200011
/*199583*/            OPC_Scope, 57, /*->199642*/ // 4 children in Scope
/*199585*/              OPC_RecordChild0, // #1 = $src1
/*199586*/              OPC_MoveChild1,
/*199587*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*199590*/              OPC_MoveChild0,
/*199591*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199594*/              OPC_RecordMemRef,
/*199595*/              OPC_RecordNode, // #2 = 'ld' chained node
/*199596*/              OPC_CheckFoldableChainNode,
/*199597*/              OPC_RecordChild1, // #3 = $src2
/*199598*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199600*/              OPC_CheckPredicate, 9, // Predicate_load
/*199602*/              OPC_CheckType, MVT::i64,
/*199604*/              OPC_MoveParent,
/*199605*/              OPC_MoveParent,
/*199606*/              OPC_MoveParent,
/*199607*/              OPC_MoveChild2,
/*199608*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*199611*/              OPC_MoveChild0,
/*199612*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199615*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199617*/              OPC_CheckType, MVT::v8i32,
/*199619*/              OPC_MoveParent,
/*199620*/              OPC_MoveParent,
/*199621*/              OPC_CheckType, MVT::v4i64,
/*199623*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199625*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199628*/              OPC_EmitMergeInputChains1_2,
/*199629*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXUQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199642*/            /*Scope*/ 57, /*->199700*/
/*199643*/              OPC_MoveChild0,
/*199644*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*199647*/              OPC_MoveChild0,
/*199648*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199651*/              OPC_RecordMemRef,
/*199652*/              OPC_RecordNode, // #1 = 'ld' chained node
/*199653*/              OPC_CheckFoldableChainNode,
/*199654*/              OPC_RecordChild1, // #2 = $src2
/*199655*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199657*/              OPC_CheckPredicate, 9, // Predicate_load
/*199659*/              OPC_CheckType, MVT::i64,
/*199661*/              OPC_MoveParent,
/*199662*/              OPC_MoveParent,
/*199663*/              OPC_RecordChild1, // #3 = $src1
/*199664*/              OPC_MoveParent,
/*199665*/              OPC_MoveChild2,
/*199666*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*199669*/              OPC_MoveChild0,
/*199670*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199673*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199675*/              OPC_CheckType, MVT::v8i32,
/*199677*/              OPC_MoveParent,
/*199678*/              OPC_MoveParent,
/*199679*/              OPC_CheckType, MVT::v4i64,
/*199681*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199683*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199686*/              OPC_EmitMergeInputChains1_1,
/*199687*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXUQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199700*/            /*Scope*/ 24|128,1/*152*/, /*->199854*/
/*199702*/              OPC_RecordChild0, // #1 = $src1
/*199703*/              OPC_MoveChild1,
/*199704*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->199755
/*199708*/                OPC_MoveChild0,
/*199709*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199712*/                OPC_RecordMemRef,
/*199713*/                OPC_RecordNode, // #2 = 'ld' chained node
/*199714*/                OPC_CheckFoldableChainNode,
/*199715*/                OPC_RecordChild1, // #3 = $src2
/*199716*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199718*/                OPC_CheckPredicate, 9, // Predicate_load
/*199720*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*199722*/                OPC_CheckType, MVT::v2i64,
/*199724*/                OPC_MoveParent,
/*199725*/                OPC_MoveParent,
/*199726*/                OPC_MoveParent,
/*199727*/                OPC_MoveChild2,
/*199728*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199731*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199733*/                OPC_MoveParent,
/*199734*/                OPC_CheckType, MVT::v4i32,
/*199736*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199738*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199741*/                OPC_EmitMergeInputChains1_2,
/*199742*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199755*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->199803
/*199758*/                OPC_MoveChild0,
/*199759*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199762*/                OPC_RecordMemRef,
/*199763*/                OPC_RecordNode, // #2 = 'ld' chained node
/*199764*/                OPC_CheckFoldableChainNode,
/*199765*/                OPC_RecordChild1, // #3 = $src2
/*199766*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199768*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*199770*/                OPC_CheckType, MVT::i32,
/*199772*/                OPC_MoveParent,
/*199773*/                OPC_MoveParent,
/*199774*/                OPC_MoveParent,
/*199775*/                OPC_MoveChild2,
/*199776*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199779*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199781*/                OPC_MoveParent,
/*199782*/                OPC_CheckType, MVT::v4i32,
/*199784*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199786*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199789*/                OPC_EmitMergeInputChains1_2,
/*199790*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199803*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->199853
/*199806*/                OPC_RecordMemRef,
/*199807*/                OPC_RecordNode, // #2 = 'ld' chained node
/*199808*/                OPC_CheckFoldableChainNode,
/*199809*/                OPC_RecordChild1, // #3 = $src2
/*199810*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199812*/                OPC_CheckPredicate, 9, // Predicate_load
/*199814*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*199816*/                OPC_MoveParent,
/*199817*/                OPC_MoveParent,
/*199818*/                OPC_MoveChild2,
/*199819*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*199822*/                OPC_MoveChild0,
/*199823*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199826*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199828*/                OPC_CheckType, MVT::v8i32,
/*199830*/                OPC_MoveParent,
/*199831*/                OPC_MoveParent,
/*199832*/                OPC_CheckType, MVT::v4i64,
/*199834*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199836*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199839*/                OPC_EmitMergeInputChains1_2,
/*199840*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMAXUQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199853*/              0, // EndSwitchOpcode
/*199854*/            /*Scope*/ 26|128,1/*154*/, /*->200010*/
/*199856*/              OPC_MoveChild0,
/*199857*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->199909
/*199861*/                OPC_MoveChild0,
/*199862*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199865*/                OPC_RecordMemRef,
/*199866*/                OPC_RecordNode, // #1 = 'ld' chained node
/*199867*/                OPC_CheckFoldableChainNode,
/*199868*/                OPC_RecordChild1, // #2 = $src2
/*199869*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199871*/                OPC_CheckPredicate, 9, // Predicate_load
/*199873*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*199875*/                OPC_CheckType, MVT::v2i64,
/*199877*/                OPC_MoveParent,
/*199878*/                OPC_MoveParent,
/*199879*/                OPC_RecordChild1, // #3 = $src1
/*199880*/                OPC_MoveParent,
/*199881*/                OPC_MoveChild2,
/*199882*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199885*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199887*/                OPC_MoveParent,
/*199888*/                OPC_CheckType, MVT::v4i32,
/*199890*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199892*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199895*/                OPC_EmitMergeInputChains1_1,
/*199896*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199909*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->199958
/*199912*/                OPC_MoveChild0,
/*199913*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199916*/                OPC_RecordMemRef,
/*199917*/                OPC_RecordNode, // #1 = 'ld' chained node
/*199918*/                OPC_CheckFoldableChainNode,
/*199919*/                OPC_RecordChild1, // #2 = $src2
/*199920*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199922*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*199924*/                OPC_CheckType, MVT::i32,
/*199926*/                OPC_MoveParent,
/*199927*/                OPC_MoveParent,
/*199928*/                OPC_RecordChild1, // #3 = $src1
/*199929*/                OPC_MoveParent,
/*199930*/                OPC_MoveChild2,
/*199931*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199934*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199936*/                OPC_MoveParent,
/*199937*/                OPC_CheckType, MVT::v4i32,
/*199939*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199941*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199944*/                OPC_EmitMergeInputChains1_1,
/*199945*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*199958*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->200009
/*199961*/                OPC_RecordMemRef,
/*199962*/                OPC_RecordNode, // #1 = 'ld' chained node
/*199963*/                OPC_CheckFoldableChainNode,
/*199964*/                OPC_RecordChild1, // #2 = $src2
/*199965*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199967*/                OPC_CheckPredicate, 9, // Predicate_load
/*199969*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*199971*/                OPC_MoveParent,
/*199972*/                OPC_RecordChild1, // #3 = $src1
/*199973*/                OPC_MoveParent,
/*199974*/                OPC_MoveChild2,
/*199975*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*199978*/                OPC_MoveChild0,
/*199979*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*199982*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*199984*/                OPC_CheckType, MVT::v8i32,
/*199986*/                OPC_MoveParent,
/*199987*/                OPC_MoveParent,
/*199988*/                OPC_CheckType, MVT::v4i64,
/*199990*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199992*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*199995*/                OPC_EmitMergeInputChains1_1,
/*199996*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMAXUQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200009*/              0, // EndSwitchOpcode
/*200010*/            0, /*End of Scope*/
/*200011*/          /*SwitchOpcode*/ 44|128,3/*428*/, TARGET_VAL(ISD::SMIN),// ->200443
/*200015*/            OPC_Scope, 57, /*->200074*/ // 4 children in Scope
/*200017*/              OPC_RecordChild0, // #1 = $src1
/*200018*/              OPC_MoveChild1,
/*200019*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*200022*/              OPC_MoveChild0,
/*200023*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200026*/              OPC_RecordMemRef,
/*200027*/              OPC_RecordNode, // #2 = 'ld' chained node
/*200028*/              OPC_CheckFoldableChainNode,
/*200029*/              OPC_RecordChild1, // #3 = $src2
/*200030*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200032*/              OPC_CheckPredicate, 9, // Predicate_load
/*200034*/              OPC_CheckType, MVT::i64,
/*200036*/              OPC_MoveParent,
/*200037*/              OPC_MoveParent,
/*200038*/              OPC_MoveParent,
/*200039*/              OPC_MoveChild2,
/*200040*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*200043*/              OPC_MoveChild0,
/*200044*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200047*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200049*/              OPC_CheckType, MVT::v8i32,
/*200051*/              OPC_MoveParent,
/*200052*/              OPC_MoveParent,
/*200053*/              OPC_CheckType, MVT::v4i64,
/*200055*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200057*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200060*/              OPC_EmitMergeInputChains1_2,
/*200061*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINSQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200074*/            /*Scope*/ 57, /*->200132*/
/*200075*/              OPC_MoveChild0,
/*200076*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*200079*/              OPC_MoveChild0,
/*200080*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200083*/              OPC_RecordMemRef,
/*200084*/              OPC_RecordNode, // #1 = 'ld' chained node
/*200085*/              OPC_CheckFoldableChainNode,
/*200086*/              OPC_RecordChild1, // #2 = $src2
/*200087*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200089*/              OPC_CheckPredicate, 9, // Predicate_load
/*200091*/              OPC_CheckType, MVT::i64,
/*200093*/              OPC_MoveParent,
/*200094*/              OPC_MoveParent,
/*200095*/              OPC_RecordChild1, // #3 = $src1
/*200096*/              OPC_MoveParent,
/*200097*/              OPC_MoveChild2,
/*200098*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*200101*/              OPC_MoveChild0,
/*200102*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200105*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200107*/              OPC_CheckType, MVT::v8i32,
/*200109*/              OPC_MoveParent,
/*200110*/              OPC_MoveParent,
/*200111*/              OPC_CheckType, MVT::v4i64,
/*200113*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200115*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200118*/              OPC_EmitMergeInputChains1_1,
/*200119*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINSQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200132*/            /*Scope*/ 24|128,1/*152*/, /*->200286*/
/*200134*/              OPC_RecordChild0, // #1 = $src1
/*200135*/              OPC_MoveChild1,
/*200136*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->200187
/*200140*/                OPC_MoveChild0,
/*200141*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200144*/                OPC_RecordMemRef,
/*200145*/                OPC_RecordNode, // #2 = 'ld' chained node
/*200146*/                OPC_CheckFoldableChainNode,
/*200147*/                OPC_RecordChild1, // #3 = $src2
/*200148*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200150*/                OPC_CheckPredicate, 9, // Predicate_load
/*200152*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*200154*/                OPC_CheckType, MVT::v2i64,
/*200156*/                OPC_MoveParent,
/*200157*/                OPC_MoveParent,
/*200158*/                OPC_MoveParent,
/*200159*/                OPC_MoveChild2,
/*200160*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200163*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200165*/                OPC_MoveParent,
/*200166*/                OPC_CheckType, MVT::v4i32,
/*200168*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200170*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200173*/                OPC_EmitMergeInputChains1_2,
/*200174*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200187*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->200235
/*200190*/                OPC_MoveChild0,
/*200191*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200194*/                OPC_RecordMemRef,
/*200195*/                OPC_RecordNode, // #2 = 'ld' chained node
/*200196*/                OPC_CheckFoldableChainNode,
/*200197*/                OPC_RecordChild1, // #3 = $src2
/*200198*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200200*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*200202*/                OPC_CheckType, MVT::i32,
/*200204*/                OPC_MoveParent,
/*200205*/                OPC_MoveParent,
/*200206*/                OPC_MoveParent,
/*200207*/                OPC_MoveChild2,
/*200208*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200211*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200213*/                OPC_MoveParent,
/*200214*/                OPC_CheckType, MVT::v4i32,
/*200216*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200218*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200221*/                OPC_EmitMergeInputChains1_2,
/*200222*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200235*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->200285
/*200238*/                OPC_RecordMemRef,
/*200239*/                OPC_RecordNode, // #2 = 'ld' chained node
/*200240*/                OPC_CheckFoldableChainNode,
/*200241*/                OPC_RecordChild1, // #3 = $src2
/*200242*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200244*/                OPC_CheckPredicate, 9, // Predicate_load
/*200246*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*200248*/                OPC_MoveParent,
/*200249*/                OPC_MoveParent,
/*200250*/                OPC_MoveChild2,
/*200251*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*200254*/                OPC_MoveChild0,
/*200255*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200258*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200260*/                OPC_CheckType, MVT::v8i32,
/*200262*/                OPC_MoveParent,
/*200263*/                OPC_MoveParent,
/*200264*/                OPC_CheckType, MVT::v4i64,
/*200266*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200268*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200271*/                OPC_EmitMergeInputChains1_2,
/*200272*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMINSQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200285*/              0, // EndSwitchOpcode
/*200286*/            /*Scope*/ 26|128,1/*154*/, /*->200442*/
/*200288*/              OPC_MoveChild0,
/*200289*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->200341
/*200293*/                OPC_MoveChild0,
/*200294*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200297*/                OPC_RecordMemRef,
/*200298*/                OPC_RecordNode, // #1 = 'ld' chained node
/*200299*/                OPC_CheckFoldableChainNode,
/*200300*/                OPC_RecordChild1, // #2 = $src2
/*200301*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200303*/                OPC_CheckPredicate, 9, // Predicate_load
/*200305*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*200307*/                OPC_CheckType, MVT::v2i64,
/*200309*/                OPC_MoveParent,
/*200310*/                OPC_MoveParent,
/*200311*/                OPC_RecordChild1, // #3 = $src1
/*200312*/                OPC_MoveParent,
/*200313*/                OPC_MoveChild2,
/*200314*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200317*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200319*/                OPC_MoveParent,
/*200320*/                OPC_CheckType, MVT::v4i32,
/*200322*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200324*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200327*/                OPC_EmitMergeInputChains1_1,
/*200328*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200341*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->200390
/*200344*/                OPC_MoveChild0,
/*200345*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200348*/                OPC_RecordMemRef,
/*200349*/                OPC_RecordNode, // #1 = 'ld' chained node
/*200350*/                OPC_CheckFoldableChainNode,
/*200351*/                OPC_RecordChild1, // #2 = $src2
/*200352*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200354*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*200356*/                OPC_CheckType, MVT::i32,
/*200358*/                OPC_MoveParent,
/*200359*/                OPC_MoveParent,
/*200360*/                OPC_RecordChild1, // #3 = $src1
/*200361*/                OPC_MoveParent,
/*200362*/                OPC_MoveChild2,
/*200363*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200366*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200368*/                OPC_MoveParent,
/*200369*/                OPC_CheckType, MVT::v4i32,
/*200371*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200373*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200376*/                OPC_EmitMergeInputChains1_1,
/*200377*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200390*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->200441
/*200393*/                OPC_RecordMemRef,
/*200394*/                OPC_RecordNode, // #1 = 'ld' chained node
/*200395*/                OPC_CheckFoldableChainNode,
/*200396*/                OPC_RecordChild1, // #2 = $src2
/*200397*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200399*/                OPC_CheckPredicate, 9, // Predicate_load
/*200401*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*200403*/                OPC_MoveParent,
/*200404*/                OPC_RecordChild1, // #3 = $src1
/*200405*/                OPC_MoveParent,
/*200406*/                OPC_MoveChild2,
/*200407*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*200410*/                OPC_MoveChild0,
/*200411*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200414*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200416*/                OPC_CheckType, MVT::v8i32,
/*200418*/                OPC_MoveParent,
/*200419*/                OPC_MoveParent,
/*200420*/                OPC_CheckType, MVT::v4i64,
/*200422*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200424*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200427*/                OPC_EmitMergeInputChains1_1,
/*200428*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMINSQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200441*/              0, // EndSwitchOpcode
/*200442*/            0, /*End of Scope*/
/*200443*/          /*SwitchOpcode*/ 44|128,3/*428*/, TARGET_VAL(ISD::UMIN),// ->200875
/*200447*/            OPC_Scope, 57, /*->200506*/ // 4 children in Scope
/*200449*/              OPC_RecordChild0, // #1 = $src1
/*200450*/              OPC_MoveChild1,
/*200451*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*200454*/              OPC_MoveChild0,
/*200455*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200458*/              OPC_RecordMemRef,
/*200459*/              OPC_RecordNode, // #2 = 'ld' chained node
/*200460*/              OPC_CheckFoldableChainNode,
/*200461*/              OPC_RecordChild1, // #3 = $src2
/*200462*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200464*/              OPC_CheckPredicate, 9, // Predicate_load
/*200466*/              OPC_CheckType, MVT::i64,
/*200468*/              OPC_MoveParent,
/*200469*/              OPC_MoveParent,
/*200470*/              OPC_MoveParent,
/*200471*/              OPC_MoveChild2,
/*200472*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*200475*/              OPC_MoveChild0,
/*200476*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200479*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200481*/              OPC_CheckType, MVT::v8i32,
/*200483*/              OPC_MoveParent,
/*200484*/              OPC_MoveParent,
/*200485*/              OPC_CheckType, MVT::v4i64,
/*200487*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200489*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200492*/              OPC_EmitMergeInputChains1_2,
/*200493*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINUQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200506*/            /*Scope*/ 57, /*->200564*/
/*200507*/              OPC_MoveChild0,
/*200508*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*200511*/              OPC_MoveChild0,
/*200512*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200515*/              OPC_RecordMemRef,
/*200516*/              OPC_RecordNode, // #1 = 'ld' chained node
/*200517*/              OPC_CheckFoldableChainNode,
/*200518*/              OPC_RecordChild1, // #2 = $src2
/*200519*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200521*/              OPC_CheckPredicate, 9, // Predicate_load
/*200523*/              OPC_CheckType, MVT::i64,
/*200525*/              OPC_MoveParent,
/*200526*/              OPC_MoveParent,
/*200527*/              OPC_RecordChild1, // #3 = $src1
/*200528*/              OPC_MoveParent,
/*200529*/              OPC_MoveChild2,
/*200530*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*200533*/              OPC_MoveChild0,
/*200534*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200537*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200539*/              OPC_CheckType, MVT::v8i32,
/*200541*/              OPC_MoveParent,
/*200542*/              OPC_MoveParent,
/*200543*/              OPC_CheckType, MVT::v4i64,
/*200545*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200547*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200550*/              OPC_EmitMergeInputChains1_1,
/*200551*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINUQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200564*/            /*Scope*/ 24|128,1/*152*/, /*->200718*/
/*200566*/              OPC_RecordChild0, // #1 = $src1
/*200567*/              OPC_MoveChild1,
/*200568*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->200619
/*200572*/                OPC_MoveChild0,
/*200573*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200576*/                OPC_RecordMemRef,
/*200577*/                OPC_RecordNode, // #2 = 'ld' chained node
/*200578*/                OPC_CheckFoldableChainNode,
/*200579*/                OPC_RecordChild1, // #3 = $src2
/*200580*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200582*/                OPC_CheckPredicate, 9, // Predicate_load
/*200584*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*200586*/                OPC_CheckType, MVT::v2i64,
/*200588*/                OPC_MoveParent,
/*200589*/                OPC_MoveParent,
/*200590*/                OPC_MoveParent,
/*200591*/                OPC_MoveChild2,
/*200592*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200595*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200597*/                OPC_MoveParent,
/*200598*/                OPC_CheckType, MVT::v4i32,
/*200600*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200602*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200605*/                OPC_EmitMergeInputChains1_2,
/*200606*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200619*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->200667
/*200622*/                OPC_MoveChild0,
/*200623*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200626*/                OPC_RecordMemRef,
/*200627*/                OPC_RecordNode, // #2 = 'ld' chained node
/*200628*/                OPC_CheckFoldableChainNode,
/*200629*/                OPC_RecordChild1, // #3 = $src2
/*200630*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200632*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*200634*/                OPC_CheckType, MVT::i32,
/*200636*/                OPC_MoveParent,
/*200637*/                OPC_MoveParent,
/*200638*/                OPC_MoveParent,
/*200639*/                OPC_MoveChild2,
/*200640*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200643*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200645*/                OPC_MoveParent,
/*200646*/                OPC_CheckType, MVT::v4i32,
/*200648*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200650*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200653*/                OPC_EmitMergeInputChains1_2,
/*200654*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200667*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->200717
/*200670*/                OPC_RecordMemRef,
/*200671*/                OPC_RecordNode, // #2 = 'ld' chained node
/*200672*/                OPC_CheckFoldableChainNode,
/*200673*/                OPC_RecordChild1, // #3 = $src2
/*200674*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200676*/                OPC_CheckPredicate, 9, // Predicate_load
/*200678*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*200680*/                OPC_MoveParent,
/*200681*/                OPC_MoveParent,
/*200682*/                OPC_MoveChild2,
/*200683*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*200686*/                OPC_MoveChild0,
/*200687*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200690*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200692*/                OPC_CheckType, MVT::v8i32,
/*200694*/                OPC_MoveParent,
/*200695*/                OPC_MoveParent,
/*200696*/                OPC_CheckType, MVT::v4i64,
/*200698*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200700*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200703*/                OPC_EmitMergeInputChains1_2,
/*200704*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMINUQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200717*/              0, // EndSwitchOpcode
/*200718*/            /*Scope*/ 26|128,1/*154*/, /*->200874*/
/*200720*/              OPC_MoveChild0,
/*200721*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->200773
/*200725*/                OPC_MoveChild0,
/*200726*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200729*/                OPC_RecordMemRef,
/*200730*/                OPC_RecordNode, // #1 = 'ld' chained node
/*200731*/                OPC_CheckFoldableChainNode,
/*200732*/                OPC_RecordChild1, // #2 = $src2
/*200733*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200735*/                OPC_CheckPredicate, 9, // Predicate_load
/*200737*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*200739*/                OPC_CheckType, MVT::v2i64,
/*200741*/                OPC_MoveParent,
/*200742*/                OPC_MoveParent,
/*200743*/                OPC_RecordChild1, // #3 = $src1
/*200744*/                OPC_MoveParent,
/*200745*/                OPC_MoveChild2,
/*200746*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200749*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200751*/                OPC_MoveParent,
/*200752*/                OPC_CheckType, MVT::v4i32,
/*200754*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200756*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200759*/                OPC_EmitMergeInputChains1_1,
/*200760*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200773*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->200822
/*200776*/                OPC_MoveChild0,
/*200777*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200780*/                OPC_RecordMemRef,
/*200781*/                OPC_RecordNode, // #1 = 'ld' chained node
/*200782*/                OPC_CheckFoldableChainNode,
/*200783*/                OPC_RecordChild1, // #2 = $src2
/*200784*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200786*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*200788*/                OPC_CheckType, MVT::i32,
/*200790*/                OPC_MoveParent,
/*200791*/                OPC_MoveParent,
/*200792*/                OPC_RecordChild1, // #3 = $src1
/*200793*/                OPC_MoveParent,
/*200794*/                OPC_MoveChild2,
/*200795*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200798*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200800*/                OPC_MoveParent,
/*200801*/                OPC_CheckType, MVT::v4i32,
/*200803*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200805*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200808*/                OPC_EmitMergeInputChains1_1,
/*200809*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200822*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->200873
/*200825*/                OPC_RecordMemRef,
/*200826*/                OPC_RecordNode, // #1 = 'ld' chained node
/*200827*/                OPC_CheckFoldableChainNode,
/*200828*/                OPC_RecordChild1, // #2 = $src2
/*200829*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200831*/                OPC_CheckPredicate, 9, // Predicate_load
/*200833*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*200835*/                OPC_MoveParent,
/*200836*/                OPC_RecordChild1, // #3 = $src1
/*200837*/                OPC_MoveParent,
/*200838*/                OPC_MoveChild2,
/*200839*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*200842*/                OPC_MoveChild0,
/*200843*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200846*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200848*/                OPC_CheckType, MVT::v8i32,
/*200850*/                OPC_MoveParent,
/*200851*/                OPC_MoveParent,
/*200852*/                OPC_CheckType, MVT::v4i64,
/*200854*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200856*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200859*/                OPC_EmitMergeInputChains1_1,
/*200860*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMINUQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200873*/              0, // EndSwitchOpcode
/*200874*/            0, /*End of Scope*/
/*200875*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(ISD::AND),// ->201103
/*200879*/            OPC_Scope, 57, /*->200938*/ // 4 children in Scope
/*200881*/              OPC_RecordChild0, // #1 = $src1
/*200882*/              OPC_MoveChild1,
/*200883*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*200886*/              OPC_MoveChild0,
/*200887*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200890*/              OPC_RecordMemRef,
/*200891*/              OPC_RecordNode, // #2 = 'ld' chained node
/*200892*/              OPC_CheckFoldableChainNode,
/*200893*/              OPC_RecordChild1, // #3 = $src2
/*200894*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200896*/              OPC_CheckPredicate, 9, // Predicate_load
/*200898*/              OPC_CheckType, MVT::i64,
/*200900*/              OPC_MoveParent,
/*200901*/              OPC_MoveParent,
/*200902*/              OPC_MoveParent,
/*200903*/              OPC_MoveChild2,
/*200904*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*200907*/              OPC_MoveChild0,
/*200908*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200911*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200913*/              OPC_CheckType, MVT::v8i32,
/*200915*/              OPC_MoveParent,
/*200916*/              OPC_MoveParent,
/*200917*/              OPC_CheckType, MVT::v4i64,
/*200919*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200921*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200924*/              OPC_EmitMergeInputChains1_2,
/*200925*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPANDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200938*/            /*Scope*/ 57, /*->200996*/
/*200939*/              OPC_MoveChild0,
/*200940*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*200943*/              OPC_MoveChild0,
/*200944*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200947*/              OPC_RecordMemRef,
/*200948*/              OPC_RecordNode, // #1 = 'ld' chained node
/*200949*/              OPC_CheckFoldableChainNode,
/*200950*/              OPC_RecordChild1, // #2 = $src2
/*200951*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200953*/              OPC_CheckPredicate, 9, // Predicate_load
/*200955*/              OPC_CheckType, MVT::i64,
/*200957*/              OPC_MoveParent,
/*200958*/              OPC_MoveParent,
/*200959*/              OPC_RecordChild1, // #3 = $src1
/*200960*/              OPC_MoveParent,
/*200961*/              OPC_MoveChild2,
/*200962*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*200965*/              OPC_MoveChild0,
/*200966*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*200969*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*200971*/              OPC_CheckType, MVT::v8i32,
/*200973*/              OPC_MoveParent,
/*200974*/              OPC_MoveParent,
/*200975*/              OPC_CheckType, MVT::v4i64,
/*200977*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200979*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200982*/              OPC_EmitMergeInputChains1_1,
/*200983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPANDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200996*/            /*Scope*/ 52, /*->201049*/
/*200997*/              OPC_RecordChild0, // #1 = $src1
/*200998*/              OPC_MoveChild1,
/*200999*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201002*/              OPC_RecordMemRef,
/*201003*/              OPC_RecordNode, // #2 = 'ld' chained node
/*201004*/              OPC_CheckFoldableChainNode,
/*201005*/              OPC_RecordChild1, // #3 = $src2
/*201006*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201008*/              OPC_CheckPredicate, 9, // Predicate_load
/*201010*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*201012*/              OPC_MoveParent,
/*201013*/              OPC_MoveParent,
/*201014*/              OPC_MoveChild2,
/*201015*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201018*/              OPC_MoveChild0,
/*201019*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201022*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201024*/              OPC_CheckType, MVT::v8i32,
/*201026*/              OPC_MoveParent,
/*201027*/              OPC_MoveParent,
/*201028*/              OPC_CheckType, MVT::v4i64,
/*201030*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201032*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201035*/              OPC_EmitMergeInputChains1_2,
/*201036*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201049*/            /*Scope*/ 52, /*->201102*/
/*201050*/              OPC_MoveChild0,
/*201051*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201054*/              OPC_RecordMemRef,
/*201055*/              OPC_RecordNode, // #1 = 'ld' chained node
/*201056*/              OPC_CheckFoldableChainNode,
/*201057*/              OPC_RecordChild1, // #2 = $src2
/*201058*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201060*/              OPC_CheckPredicate, 9, // Predicate_load
/*201062*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*201064*/              OPC_MoveParent,
/*201065*/              OPC_RecordChild1, // #3 = $src1
/*201066*/              OPC_MoveParent,
/*201067*/              OPC_MoveChild2,
/*201068*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201071*/              OPC_MoveChild0,
/*201072*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201075*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201077*/              OPC_CheckType, MVT::v8i32,
/*201079*/              OPC_MoveParent,
/*201080*/              OPC_MoveParent,
/*201081*/              OPC_CheckType, MVT::v4i64,
/*201083*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201085*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201088*/              OPC_EmitMergeInputChains1_1,
/*201089*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201102*/            0, /*End of Scope*/
/*201103*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(ISD::OR),// ->201331
/*201107*/            OPC_Scope, 57, /*->201166*/ // 4 children in Scope
/*201109*/              OPC_RecordChild0, // #1 = $src1
/*201110*/              OPC_MoveChild1,
/*201111*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*201114*/              OPC_MoveChild0,
/*201115*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201118*/              OPC_RecordMemRef,
/*201119*/              OPC_RecordNode, // #2 = 'ld' chained node
/*201120*/              OPC_CheckFoldableChainNode,
/*201121*/              OPC_RecordChild1, // #3 = $src2
/*201122*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201124*/              OPC_CheckPredicate, 9, // Predicate_load
/*201126*/              OPC_CheckType, MVT::i64,
/*201128*/              OPC_MoveParent,
/*201129*/              OPC_MoveParent,
/*201130*/              OPC_MoveParent,
/*201131*/              OPC_MoveChild2,
/*201132*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201135*/              OPC_MoveChild0,
/*201136*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201139*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201141*/              OPC_CheckType, MVT::v8i32,
/*201143*/              OPC_MoveParent,
/*201144*/              OPC_MoveParent,
/*201145*/              OPC_CheckType, MVT::v4i64,
/*201147*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201149*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201152*/              OPC_EmitMergeInputChains1_2,
/*201153*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPORQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201166*/            /*Scope*/ 57, /*->201224*/
/*201167*/              OPC_MoveChild0,
/*201168*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*201171*/              OPC_MoveChild0,
/*201172*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201175*/              OPC_RecordMemRef,
/*201176*/              OPC_RecordNode, // #1 = 'ld' chained node
/*201177*/              OPC_CheckFoldableChainNode,
/*201178*/              OPC_RecordChild1, // #2 = $src2
/*201179*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201181*/              OPC_CheckPredicate, 9, // Predicate_load
/*201183*/              OPC_CheckType, MVT::i64,
/*201185*/              OPC_MoveParent,
/*201186*/              OPC_MoveParent,
/*201187*/              OPC_RecordChild1, // #3 = $src1
/*201188*/              OPC_MoveParent,
/*201189*/              OPC_MoveChild2,
/*201190*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201193*/              OPC_MoveChild0,
/*201194*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201197*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201199*/              OPC_CheckType, MVT::v8i32,
/*201201*/              OPC_MoveParent,
/*201202*/              OPC_MoveParent,
/*201203*/              OPC_CheckType, MVT::v4i64,
/*201205*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201207*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201210*/              OPC_EmitMergeInputChains1_1,
/*201211*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPORQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201224*/            /*Scope*/ 52, /*->201277*/
/*201225*/              OPC_RecordChild0, // #1 = $src1
/*201226*/              OPC_MoveChild1,
/*201227*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201230*/              OPC_RecordMemRef,
/*201231*/              OPC_RecordNode, // #2 = 'ld' chained node
/*201232*/              OPC_CheckFoldableChainNode,
/*201233*/              OPC_RecordChild1, // #3 = $src2
/*201234*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201236*/              OPC_CheckPredicate, 9, // Predicate_load
/*201238*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*201240*/              OPC_MoveParent,
/*201241*/              OPC_MoveParent,
/*201242*/              OPC_MoveChild2,
/*201243*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201246*/              OPC_MoveChild0,
/*201247*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201250*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201252*/              OPC_CheckType, MVT::v8i32,
/*201254*/              OPC_MoveParent,
/*201255*/              OPC_MoveParent,
/*201256*/              OPC_CheckType, MVT::v4i64,
/*201258*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201260*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201263*/              OPC_EmitMergeInputChains1_2,
/*201264*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201277*/            /*Scope*/ 52, /*->201330*/
/*201278*/              OPC_MoveChild0,
/*201279*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201282*/              OPC_RecordMemRef,
/*201283*/              OPC_RecordNode, // #1 = 'ld' chained node
/*201284*/              OPC_CheckFoldableChainNode,
/*201285*/              OPC_RecordChild1, // #2 = $src2
/*201286*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201288*/              OPC_CheckPredicate, 9, // Predicate_load
/*201290*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*201292*/              OPC_MoveParent,
/*201293*/              OPC_RecordChild1, // #3 = $src1
/*201294*/              OPC_MoveParent,
/*201295*/              OPC_MoveChild2,
/*201296*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201299*/              OPC_MoveChild0,
/*201300*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201303*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201305*/              OPC_CheckType, MVT::v8i32,
/*201307*/              OPC_MoveParent,
/*201308*/              OPC_MoveParent,
/*201309*/              OPC_CheckType, MVT::v4i64,
/*201311*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201313*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201316*/              OPC_EmitMergeInputChains1_1,
/*201317*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201330*/            0, /*End of Scope*/
/*201331*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(ISD::XOR),// ->201559
/*201335*/            OPC_Scope, 57, /*->201394*/ // 4 children in Scope
/*201337*/              OPC_RecordChild0, // #1 = $src1
/*201338*/              OPC_MoveChild1,
/*201339*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*201342*/              OPC_MoveChild0,
/*201343*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201346*/              OPC_RecordMemRef,
/*201347*/              OPC_RecordNode, // #2 = 'ld' chained node
/*201348*/              OPC_CheckFoldableChainNode,
/*201349*/              OPC_RecordChild1, // #3 = $src2
/*201350*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201352*/              OPC_CheckPredicate, 9, // Predicate_load
/*201354*/              OPC_CheckType, MVT::i64,
/*201356*/              OPC_MoveParent,
/*201357*/              OPC_MoveParent,
/*201358*/              OPC_MoveParent,
/*201359*/              OPC_MoveChild2,
/*201360*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201363*/              OPC_MoveChild0,
/*201364*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201367*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201369*/              OPC_CheckType, MVT::v8i32,
/*201371*/              OPC_MoveParent,
/*201372*/              OPC_MoveParent,
/*201373*/              OPC_CheckType, MVT::v4i64,
/*201375*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201377*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201380*/              OPC_EmitMergeInputChains1_2,
/*201381*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPXORQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201394*/            /*Scope*/ 57, /*->201452*/
/*201395*/              OPC_MoveChild0,
/*201396*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*201399*/              OPC_MoveChild0,
/*201400*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201403*/              OPC_RecordMemRef,
/*201404*/              OPC_RecordNode, // #1 = 'ld' chained node
/*201405*/              OPC_CheckFoldableChainNode,
/*201406*/              OPC_RecordChild1, // #2 = $src2
/*201407*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201409*/              OPC_CheckPredicate, 9, // Predicate_load
/*201411*/              OPC_CheckType, MVT::i64,
/*201413*/              OPC_MoveParent,
/*201414*/              OPC_MoveParent,
/*201415*/              OPC_RecordChild1, // #3 = $src1
/*201416*/              OPC_MoveParent,
/*201417*/              OPC_MoveChild2,
/*201418*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201421*/              OPC_MoveChild0,
/*201422*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201425*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201427*/              OPC_CheckType, MVT::v8i32,
/*201429*/              OPC_MoveParent,
/*201430*/              OPC_MoveParent,
/*201431*/              OPC_CheckType, MVT::v4i64,
/*201433*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201435*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201438*/              OPC_EmitMergeInputChains1_1,
/*201439*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPXORQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201452*/            /*Scope*/ 52, /*->201505*/
/*201453*/              OPC_RecordChild0, // #1 = $src1
/*201454*/              OPC_MoveChild1,
/*201455*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201458*/              OPC_RecordMemRef,
/*201459*/              OPC_RecordNode, // #2 = 'ld' chained node
/*201460*/              OPC_CheckFoldableChainNode,
/*201461*/              OPC_RecordChild1, // #3 = $src2
/*201462*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201464*/              OPC_CheckPredicate, 9, // Predicate_load
/*201466*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*201468*/              OPC_MoveParent,
/*201469*/              OPC_MoveParent,
/*201470*/              OPC_MoveChild2,
/*201471*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201474*/              OPC_MoveChild0,
/*201475*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201478*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201480*/              OPC_CheckType, MVT::v8i32,
/*201482*/              OPC_MoveParent,
/*201483*/              OPC_MoveParent,
/*201484*/              OPC_CheckType, MVT::v4i64,
/*201486*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201488*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201491*/              OPC_EmitMergeInputChains1_2,
/*201492*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPXORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201505*/            /*Scope*/ 52, /*->201558*/
/*201506*/              OPC_MoveChild0,
/*201507*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201510*/              OPC_RecordMemRef,
/*201511*/              OPC_RecordNode, // #1 = 'ld' chained node
/*201512*/              OPC_CheckFoldableChainNode,
/*201513*/              OPC_RecordChild1, // #2 = $src2
/*201514*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201516*/              OPC_CheckPredicate, 9, // Predicate_load
/*201518*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*201520*/              OPC_MoveParent,
/*201521*/              OPC_RecordChild1, // #3 = $src1
/*201522*/              OPC_MoveParent,
/*201523*/              OPC_MoveChild2,
/*201524*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201527*/              OPC_MoveChild0,
/*201528*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201531*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201533*/              OPC_CheckType, MVT::v8i32,
/*201535*/              OPC_MoveParent,
/*201536*/              OPC_MoveParent,
/*201537*/              OPC_CheckType, MVT::v4i64,
/*201539*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201541*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201544*/              OPC_EmitMergeInputChains1_1,
/*201545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPXORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201558*/            0, /*End of Scope*/
/*201559*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::ANDNP),// ->201671
/*201562*/            OPC_RecordChild0, // #1 = $src1
/*201563*/            OPC_MoveChild1,
/*201564*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->201620
/*201568*/              OPC_MoveChild0,
/*201569*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201572*/              OPC_RecordMemRef,
/*201573*/              OPC_RecordNode, // #2 = 'ld' chained node
/*201574*/              OPC_CheckFoldableChainNode,
/*201575*/              OPC_RecordChild1, // #3 = $src2
/*201576*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201578*/              OPC_CheckPredicate, 9, // Predicate_load
/*201580*/              OPC_CheckType, MVT::i64,
/*201582*/              OPC_MoveParent,
/*201583*/              OPC_MoveParent,
/*201584*/              OPC_MoveParent,
/*201585*/              OPC_MoveChild2,
/*201586*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201589*/              OPC_MoveChild0,
/*201590*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201593*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201595*/              OPC_CheckType, MVT::v8i32,
/*201597*/              OPC_MoveParent,
/*201598*/              OPC_MoveParent,
/*201599*/              OPC_CheckType, MVT::v4i64,
/*201601*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201603*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201606*/              OPC_EmitMergeInputChains1_2,
/*201607*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPANDNQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201620*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->201670
/*201623*/              OPC_RecordMemRef,
/*201624*/              OPC_RecordNode, // #2 = 'ld' chained node
/*201625*/              OPC_CheckFoldableChainNode,
/*201626*/              OPC_RecordChild1, // #3 = $src2
/*201627*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201629*/              OPC_CheckPredicate, 9, // Predicate_load
/*201631*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*201633*/              OPC_MoveParent,
/*201634*/              OPC_MoveParent,
/*201635*/              OPC_MoveChild2,
/*201636*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201639*/              OPC_MoveChild0,
/*201640*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201643*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201645*/              OPC_CheckType, MVT::v8i32,
/*201647*/              OPC_MoveParent,
/*201648*/              OPC_MoveParent,
/*201649*/              OPC_CheckType, MVT::v4i64,
/*201651*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201653*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201656*/              OPC_EmitMergeInputChains1_2,
/*201657*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPANDNQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201670*/            0, // EndSwitchOpcode
/*201671*/          /*SwitchOpcode*/ 17|128,2/*273*/, TARGET_VAL(X86ISD::VSRLI),// ->201948
/*201675*/            OPC_MoveChild0,
/*201676*/            OPC_SwitchOpcode /*3 cases */, 84, TARGET_VAL(ISD::BITCAST),// ->201764
/*201680*/              OPC_MoveChild0,
/*201681*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201684*/              OPC_RecordMemRef,
/*201685*/              OPC_RecordNode, // #1 = 'ld' chained node
/*201686*/              OPC_CheckFoldableChainNode,
/*201687*/              OPC_RecordChild1, // #2 = $src1
/*201688*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201690*/              OPC_CheckPredicate, 9, // Predicate_load
/*201692*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*201694*/              OPC_CheckType, MVT::v2i64,
/*201696*/              OPC_MoveParent,
/*201697*/              OPC_MoveParent,
/*201698*/              OPC_RecordChild1, // #3 = $src2
/*201699*/              OPC_MoveChild1,
/*201700*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*201703*/              OPC_MoveParent,
/*201704*/              OPC_MoveParent,
/*201705*/              OPC_Scope, 30, /*->201737*/ // 2 children in Scope
/*201707*/                OPC_MoveChild2,
/*201708*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201711*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201713*/                OPC_MoveParent,
/*201714*/                OPC_CheckType, MVT::v4i32,
/*201716*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201718*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*201721*/                OPC_EmitMergeInputChains1_1,
/*201722*/                OPC_EmitConvertToTarget, 3,
/*201724*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPSRLDZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*201737*/              /*Scope*/ 25, /*->201763*/
/*201738*/                OPC_RecordChild2, // #4 = $src0
/*201739*/                OPC_CheckType, MVT::v4i32,
/*201741*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201743*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*201746*/                OPC_EmitMergeInputChains1_1,
/*201747*/                OPC_EmitConvertToTarget, 3,
/*201749*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VPSRLDZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*201763*/              0, /*End of Scope*/
/*201764*/            /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::VBROADCAST),// ->201889
/*201767*/              OPC_MoveChild0,
/*201768*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201771*/              OPC_RecordMemRef,
/*201772*/              OPC_RecordNode, // #1 = 'ld' chained node
/*201773*/              OPC_CheckFoldableChainNode,
/*201774*/              OPC_RecordChild1, // #2 = $src1
/*201775*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201777*/              OPC_SwitchType /*2 cases */, 70, MVT::i32,// ->201850
/*201780*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*201782*/                OPC_MoveParent,
/*201783*/                OPC_MoveParent,
/*201784*/                OPC_RecordChild1, // #3 = $src2
/*201785*/                OPC_MoveChild1,
/*201786*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*201789*/                OPC_MoveParent,
/*201790*/                OPC_MoveParent,
/*201791*/                OPC_Scope, 30, /*->201823*/ // 2 children in Scope
/*201793*/                  OPC_MoveChild2,
/*201794*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201797*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201799*/                  OPC_MoveParent,
/*201800*/                  OPC_CheckType, MVT::v4i32,
/*201802*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201804*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*201807*/                  OPC_EmitMergeInputChains1_1,
/*201808*/                  OPC_EmitConvertToTarget, 3,
/*201810*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                            // Dst: (VPSRLDZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*201823*/                /*Scope*/ 25, /*->201849*/
/*201824*/                  OPC_RecordChild2, // #4 = $src0
/*201825*/                  OPC_CheckType, MVT::v4i32,
/*201827*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201829*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*201832*/                  OPC_EmitMergeInputChains1_1,
/*201833*/                  OPC_EmitConvertToTarget, 3,
/*201835*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                            // Dst: (VPSRLDZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*201849*/                0, /*End of Scope*/
/*201850*/              /*SwitchType*/ 36, MVT::i64,// ->201888
/*201852*/                OPC_CheckPredicate, 9, // Predicate_load
/*201854*/                OPC_MoveParent,
/*201855*/                OPC_MoveParent,
/*201856*/                OPC_RecordChild1, // #3 = $src2
/*201857*/                OPC_MoveChild1,
/*201858*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*201861*/                OPC_MoveParent,
/*201862*/                OPC_MoveParent,
/*201863*/                OPC_RecordChild2, // #4 = $src0
/*201864*/                OPC_CheckType, MVT::v4i64,
/*201866*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201868*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*201871*/                OPC_EmitMergeInputChains1_1,
/*201872*/                OPC_EmitConvertToTarget, 3,
/*201874*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VPSRLQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*201888*/              0, // EndSwitchType
/*201889*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::LOAD),// ->201947
/*201892*/              OPC_RecordMemRef,
/*201893*/              OPC_RecordNode, // #1 = 'ld' chained node
/*201894*/              OPC_CheckFoldableChainNode,
/*201895*/              OPC_RecordChild1, // #2 = $src1
/*201896*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201898*/              OPC_CheckPredicate, 9, // Predicate_load
/*201900*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*201902*/              OPC_MoveParent,
/*201903*/              OPC_RecordChild1, // #3 = $src2
/*201904*/              OPC_MoveChild1,
/*201905*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*201908*/              OPC_MoveParent,
/*201909*/              OPC_MoveParent,
/*201910*/              OPC_MoveChild2,
/*201911*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*201914*/              OPC_MoveChild0,
/*201915*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201918*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201920*/              OPC_CheckType, MVT::v8i32,
/*201922*/              OPC_MoveParent,
/*201923*/              OPC_MoveParent,
/*201924*/              OPC_CheckType, MVT::v4i64,
/*201926*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201928*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*201931*/              OPC_EmitMergeInputChains1_1,
/*201932*/              OPC_EmitConvertToTarget, 3,
/*201934*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSRLQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*201947*/            0, // EndSwitchOpcode
/*201948*/          /*SwitchOpcode*/ 17|128,2/*273*/, TARGET_VAL(X86ISD::VSHLI),// ->202225
/*201952*/            OPC_MoveChild0,
/*201953*/            OPC_SwitchOpcode /*3 cases */, 84, TARGET_VAL(ISD::BITCAST),// ->202041
/*201957*/              OPC_MoveChild0,
/*201958*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201961*/              OPC_RecordMemRef,
/*201962*/              OPC_RecordNode, // #1 = 'ld' chained node
/*201963*/              OPC_CheckFoldableChainNode,
/*201964*/              OPC_RecordChild1, // #2 = $src1
/*201965*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201967*/              OPC_CheckPredicate, 9, // Predicate_load
/*201969*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*201971*/              OPC_CheckType, MVT::v2i64,
/*201973*/              OPC_MoveParent,
/*201974*/              OPC_MoveParent,
/*201975*/              OPC_RecordChild1, // #3 = $src2
/*201976*/              OPC_MoveChild1,
/*201977*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*201980*/              OPC_MoveParent,
/*201981*/              OPC_MoveParent,
/*201982*/              OPC_Scope, 30, /*->202014*/ // 2 children in Scope
/*201984*/                OPC_MoveChild2,
/*201985*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*201988*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*201990*/                OPC_MoveParent,
/*201991*/                OPC_CheckType, MVT::v4i32,
/*201993*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201995*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*201998*/                OPC_EmitMergeInputChains1_1,
/*201999*/                OPC_EmitConvertToTarget, 3,
/*202001*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPSLLDZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202014*/              /*Scope*/ 25, /*->202040*/
/*202015*/                OPC_RecordChild2, // #4 = $src0
/*202016*/                OPC_CheckType, MVT::v4i32,
/*202018*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202020*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202023*/                OPC_EmitMergeInputChains1_1,
/*202024*/                OPC_EmitConvertToTarget, 3,
/*202026*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VPSLLDZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202040*/              0, /*End of Scope*/
/*202041*/            /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::VBROADCAST),// ->202166
/*202044*/              OPC_MoveChild0,
/*202045*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*202048*/              OPC_RecordMemRef,
/*202049*/              OPC_RecordNode, // #1 = 'ld' chained node
/*202050*/              OPC_CheckFoldableChainNode,
/*202051*/              OPC_RecordChild1, // #2 = $src1
/*202052*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202054*/              OPC_SwitchType /*2 cases */, 70, MVT::i32,// ->202127
/*202057*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*202059*/                OPC_MoveParent,
/*202060*/                OPC_MoveParent,
/*202061*/                OPC_RecordChild1, // #3 = $src2
/*202062*/                OPC_MoveChild1,
/*202063*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202066*/                OPC_MoveParent,
/*202067*/                OPC_MoveParent,
/*202068*/                OPC_Scope, 30, /*->202100*/ // 2 children in Scope
/*202070*/                  OPC_MoveChild2,
/*202071*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*202074*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*202076*/                  OPC_MoveParent,
/*202077*/                  OPC_CheckType, MVT::v4i32,
/*202079*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202081*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*202084*/                  OPC_EmitMergeInputChains1_1,
/*202085*/                  OPC_EmitConvertToTarget, 3,
/*202087*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                            // Dst: (VPSLLDZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202100*/                /*Scope*/ 25, /*->202126*/
/*202101*/                  OPC_RecordChild2, // #4 = $src0
/*202102*/                  OPC_CheckType, MVT::v4i32,
/*202104*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202106*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202109*/                  OPC_EmitMergeInputChains1_1,
/*202110*/                  OPC_EmitConvertToTarget, 3,
/*202112*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                            // Dst: (VPSLLDZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202126*/                0, /*End of Scope*/
/*202127*/              /*SwitchType*/ 36, MVT::i64,// ->202165
/*202129*/                OPC_CheckPredicate, 9, // Predicate_load
/*202131*/                OPC_MoveParent,
/*202132*/                OPC_MoveParent,
/*202133*/                OPC_RecordChild1, // #3 = $src2
/*202134*/                OPC_MoveChild1,
/*202135*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202138*/                OPC_MoveParent,
/*202139*/                OPC_MoveParent,
/*202140*/                OPC_RecordChild2, // #4 = $src0
/*202141*/                OPC_CheckType, MVT::v4i64,
/*202143*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202145*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202148*/                OPC_EmitMergeInputChains1_1,
/*202149*/                OPC_EmitConvertToTarget, 3,
/*202151*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VPSLLQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202165*/              0, // EndSwitchType
/*202166*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::LOAD),// ->202224
/*202169*/              OPC_RecordMemRef,
/*202170*/              OPC_RecordNode, // #1 = 'ld' chained node
/*202171*/              OPC_CheckFoldableChainNode,
/*202172*/              OPC_RecordChild1, // #2 = $src1
/*202173*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202175*/              OPC_CheckPredicate, 9, // Predicate_load
/*202177*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*202179*/              OPC_MoveParent,
/*202180*/              OPC_RecordChild1, // #3 = $src2
/*202181*/              OPC_MoveChild1,
/*202182*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202185*/              OPC_MoveParent,
/*202186*/              OPC_MoveParent,
/*202187*/              OPC_MoveChild2,
/*202188*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*202191*/              OPC_MoveChild0,
/*202192*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*202195*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*202197*/              OPC_CheckType, MVT::v8i32,
/*202199*/              OPC_MoveParent,
/*202200*/              OPC_MoveParent,
/*202201*/              OPC_CheckType, MVT::v4i64,
/*202203*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202205*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*202208*/              OPC_EmitMergeInputChains1_1,
/*202209*/              OPC_EmitConvertToTarget, 3,
/*202211*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSLLQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202224*/            0, // EndSwitchOpcode
/*202225*/          /*SwitchOpcode*/ 17|128,2/*273*/, TARGET_VAL(X86ISD::VSRAI),// ->202502
/*202229*/            OPC_MoveChild0,
/*202230*/            OPC_SwitchOpcode /*3 cases */, 84, TARGET_VAL(ISD::BITCAST),// ->202318
/*202234*/              OPC_MoveChild0,
/*202235*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*202238*/              OPC_RecordMemRef,
/*202239*/              OPC_RecordNode, // #1 = 'ld' chained node
/*202240*/              OPC_CheckFoldableChainNode,
/*202241*/              OPC_RecordChild1, // #2 = $src1
/*202242*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202244*/              OPC_CheckPredicate, 9, // Predicate_load
/*202246*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*202248*/              OPC_CheckType, MVT::v2i64,
/*202250*/              OPC_MoveParent,
/*202251*/              OPC_MoveParent,
/*202252*/              OPC_RecordChild1, // #3 = $src2
/*202253*/              OPC_MoveChild1,
/*202254*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202257*/              OPC_MoveParent,
/*202258*/              OPC_MoveParent,
/*202259*/              OPC_Scope, 30, /*->202291*/ // 2 children in Scope
/*202261*/                OPC_MoveChild2,
/*202262*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*202265*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*202267*/                OPC_MoveParent,
/*202268*/                OPC_CheckType, MVT::v4i32,
/*202270*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202272*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*202275*/                OPC_EmitMergeInputChains1_1,
/*202276*/                OPC_EmitConvertToTarget, 3,
/*202278*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPSRADZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202291*/              /*Scope*/ 25, /*->202317*/
/*202292*/                OPC_RecordChild2, // #4 = $src0
/*202293*/                OPC_CheckType, MVT::v4i32,
/*202295*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202297*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202300*/                OPC_EmitMergeInputChains1_1,
/*202301*/                OPC_EmitConvertToTarget, 3,
/*202303*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VPSRADZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202317*/              0, /*End of Scope*/
/*202318*/            /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::VBROADCAST),// ->202443
/*202321*/              OPC_MoveChild0,
/*202322*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*202325*/              OPC_RecordMemRef,
/*202326*/              OPC_RecordNode, // #1 = 'ld' chained node
/*202327*/              OPC_CheckFoldableChainNode,
/*202328*/              OPC_RecordChild1, // #2 = $src1
/*202329*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202331*/              OPC_SwitchType /*2 cases */, 70, MVT::i32,// ->202404
/*202334*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*202336*/                OPC_MoveParent,
/*202337*/                OPC_MoveParent,
/*202338*/                OPC_RecordChild1, // #3 = $src2
/*202339*/                OPC_MoveChild1,
/*202340*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202343*/                OPC_MoveParent,
/*202344*/                OPC_MoveParent,
/*202345*/                OPC_Scope, 30, /*->202377*/ // 2 children in Scope
/*202347*/                  OPC_MoveChild2,
/*202348*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*202351*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*202353*/                  OPC_MoveParent,
/*202354*/                  OPC_CheckType, MVT::v4i32,
/*202356*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202358*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*202361*/                  OPC_EmitMergeInputChains1_1,
/*202362*/                  OPC_EmitConvertToTarget, 3,
/*202364*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                            // Dst: (VPSRADZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202377*/                /*Scope*/ 25, /*->202403*/
/*202378*/                  OPC_RecordChild2, // #4 = $src0
/*202379*/                  OPC_CheckType, MVT::v4i32,
/*202381*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202383*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202386*/                  OPC_EmitMergeInputChains1_1,
/*202387*/                  OPC_EmitConvertToTarget, 3,
/*202389*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                            // Dst: (VPSRADZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202403*/                0, /*End of Scope*/
/*202404*/              /*SwitchType*/ 36, MVT::i64,// ->202442
/*202406*/                OPC_CheckPredicate, 9, // Predicate_load
/*202408*/                OPC_MoveParent,
/*202409*/                OPC_MoveParent,
/*202410*/                OPC_RecordChild1, // #3 = $src2
/*202411*/                OPC_MoveChild1,
/*202412*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202415*/                OPC_MoveParent,
/*202416*/                OPC_MoveParent,
/*202417*/                OPC_RecordChild2, // #4 = $src0
/*202418*/                OPC_CheckType, MVT::v4i64,
/*202420*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202422*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202425*/                OPC_EmitMergeInputChains1_1,
/*202426*/                OPC_EmitConvertToTarget, 3,
/*202428*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VPSRAQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202442*/              0, // EndSwitchType
/*202443*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::LOAD),// ->202501
/*202446*/              OPC_RecordMemRef,
/*202447*/              OPC_RecordNode, // #1 = 'ld' chained node
/*202448*/              OPC_CheckFoldableChainNode,
/*202449*/              OPC_RecordChild1, // #2 = $src1
/*202450*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202452*/              OPC_CheckPredicate, 9, // Predicate_load
/*202454*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*202456*/              OPC_MoveParent,
/*202457*/              OPC_RecordChild1, // #3 = $src2
/*202458*/              OPC_MoveChild1,
/*202459*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202462*/              OPC_MoveParent,
/*202463*/              OPC_MoveParent,
/*202464*/              OPC_MoveChild2,
/*202465*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*202468*/              OPC_MoveChild0,
/*202469*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*202472*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*202474*/              OPC_CheckType, MVT::v8i32,
/*202476*/              OPC_MoveParent,
/*202477*/              OPC_MoveParent,
/*202478*/              OPC_CheckType, MVT::v4i64,
/*202480*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202482*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*202485*/              OPC_EmitMergeInputChains1_1,
/*202486*/              OPC_EmitConvertToTarget, 3,
/*202488*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSRAQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202501*/            0, // EndSwitchOpcode
/*202502*/          /*SwitchOpcode*/ 17|128,2/*273*/, TARGET_VAL(X86ISD::VROTRI),// ->202779
/*202506*/            OPC_MoveChild0,
/*202507*/            OPC_SwitchOpcode /*3 cases */, 84, TARGET_VAL(ISD::BITCAST),// ->202595
/*202511*/              OPC_MoveChild0,
/*202512*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*202515*/              OPC_RecordMemRef,
/*202516*/              OPC_RecordNode, // #1 = 'ld' chained node
/*202517*/              OPC_CheckFoldableChainNode,
/*202518*/              OPC_RecordChild1, // #2 = $src1
/*202519*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202521*/              OPC_CheckPredicate, 9, // Predicate_load
/*202523*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*202525*/              OPC_CheckType, MVT::v2i64,
/*202527*/              OPC_MoveParent,
/*202528*/              OPC_MoveParent,
/*202529*/              OPC_RecordChild1, // #3 = $src2
/*202530*/              OPC_MoveChild1,
/*202531*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202534*/              OPC_MoveParent,
/*202535*/              OPC_MoveParent,
/*202536*/              OPC_Scope, 30, /*->202568*/ // 2 children in Scope
/*202538*/                OPC_MoveChild2,
/*202539*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*202542*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*202544*/                OPC_MoveParent,
/*202545*/                OPC_CheckType, MVT::v4i32,
/*202547*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202549*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*202552*/                OPC_EmitMergeInputChains1_1,
/*202553*/                OPC_EmitConvertToTarget, 3,
/*202555*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPRORDZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202568*/              /*Scope*/ 25, /*->202594*/
/*202569*/                OPC_RecordChild2, // #4 = $src0
/*202570*/                OPC_CheckType, MVT::v4i32,
/*202572*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202574*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202577*/                OPC_EmitMergeInputChains1_1,
/*202578*/                OPC_EmitConvertToTarget, 3,
/*202580*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VPRORDZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202594*/              0, /*End of Scope*/
/*202595*/            /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::VBROADCAST),// ->202720
/*202598*/              OPC_MoveChild0,
/*202599*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*202602*/              OPC_RecordMemRef,
/*202603*/              OPC_RecordNode, // #1 = 'ld' chained node
/*202604*/              OPC_CheckFoldableChainNode,
/*202605*/              OPC_RecordChild1, // #2 = $src1
/*202606*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202608*/              OPC_SwitchType /*2 cases */, 70, MVT::i32,// ->202681
/*202611*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*202613*/                OPC_MoveParent,
/*202614*/                OPC_MoveParent,
/*202615*/                OPC_RecordChild1, // #3 = $src2
/*202616*/                OPC_MoveChild1,
/*202617*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202620*/                OPC_MoveParent,
/*202621*/                OPC_MoveParent,
/*202622*/                OPC_Scope, 30, /*->202654*/ // 2 children in Scope
/*202624*/                  OPC_MoveChild2,
/*202625*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*202628*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*202630*/                  OPC_MoveParent,
/*202631*/                  OPC_CheckType, MVT::v4i32,
/*202633*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202635*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*202638*/                  OPC_EmitMergeInputChains1_1,
/*202639*/                  OPC_EmitConvertToTarget, 3,
/*202641*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                            // Dst: (VPRORDZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202654*/                /*Scope*/ 25, /*->202680*/
/*202655*/                  OPC_RecordChild2, // #4 = $src0
/*202656*/                  OPC_CheckType, MVT::v4i32,
/*202658*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202660*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202663*/                  OPC_EmitMergeInputChains1_1,
/*202664*/                  OPC_EmitConvertToTarget, 3,
/*202666*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                            // Dst: (VPRORDZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202680*/                0, /*End of Scope*/
/*202681*/              /*SwitchType*/ 36, MVT::i64,// ->202719
/*202683*/                OPC_CheckPredicate, 9, // Predicate_load
/*202685*/                OPC_MoveParent,
/*202686*/                OPC_MoveParent,
/*202687*/                OPC_RecordChild1, // #3 = $src2
/*202688*/                OPC_MoveChild1,
/*202689*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202692*/                OPC_MoveParent,
/*202693*/                OPC_MoveParent,
/*202694*/                OPC_RecordChild2, // #4 = $src0
/*202695*/                OPC_CheckType, MVT::v4i64,
/*202697*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202699*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202702*/                OPC_EmitMergeInputChains1_1,
/*202703*/                OPC_EmitConvertToTarget, 3,
/*202705*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VPRORQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202719*/              0, // EndSwitchType
/*202720*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::LOAD),// ->202778
/*202723*/              OPC_RecordMemRef,
/*202724*/              OPC_RecordNode, // #1 = 'ld' chained node
/*202725*/              OPC_CheckFoldableChainNode,
/*202726*/              OPC_RecordChild1, // #2 = $src1
/*202727*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202729*/              OPC_CheckPredicate, 9, // Predicate_load
/*202731*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*202733*/              OPC_MoveParent,
/*202734*/              OPC_RecordChild1, // #3 = $src2
/*202735*/              OPC_MoveChild1,
/*202736*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202739*/              OPC_MoveParent,
/*202740*/              OPC_MoveParent,
/*202741*/              OPC_MoveChild2,
/*202742*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*202745*/              OPC_MoveChild0,
/*202746*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*202749*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*202751*/              OPC_CheckType, MVT::v8i32,
/*202753*/              OPC_MoveParent,
/*202754*/              OPC_MoveParent,
/*202755*/              OPC_CheckType, MVT::v4i64,
/*202757*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202759*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*202762*/              OPC_EmitMergeInputChains1_1,
/*202763*/              OPC_EmitConvertToTarget, 3,
/*202765*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPRORQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202778*/            0, // EndSwitchOpcode
/*202779*/          /*SwitchOpcode*/ 17|128,2/*273*/, TARGET_VAL(X86ISD::VROTLI),// ->203056
/*202783*/            OPC_MoveChild0,
/*202784*/            OPC_SwitchOpcode /*3 cases */, 84, TARGET_VAL(ISD::BITCAST),// ->202872
/*202788*/              OPC_MoveChild0,
/*202789*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*202792*/              OPC_RecordMemRef,
/*202793*/              OPC_RecordNode, // #1 = 'ld' chained node
/*202794*/              OPC_CheckFoldableChainNode,
/*202795*/              OPC_RecordChild1, // #2 = $src1
/*202796*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202798*/              OPC_CheckPredicate, 9, // Predicate_load
/*202800*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*202802*/              OPC_CheckType, MVT::v2i64,
/*202804*/              OPC_MoveParent,
/*202805*/              OPC_MoveParent,
/*202806*/              OPC_RecordChild1, // #3 = $src2
/*202807*/              OPC_MoveChild1,
/*202808*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202811*/              OPC_MoveParent,
/*202812*/              OPC_MoveParent,
/*202813*/              OPC_Scope, 30, /*->202845*/ // 2 children in Scope
/*202815*/                OPC_MoveChild2,
/*202816*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*202819*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*202821*/                OPC_MoveParent,
/*202822*/                OPC_CheckType, MVT::v4i32,
/*202824*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202826*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*202829*/                OPC_EmitMergeInputChains1_1,
/*202830*/                OPC_EmitConvertToTarget, 3,
/*202832*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPROLDZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202845*/              /*Scope*/ 25, /*->202871*/
/*202846*/                OPC_RecordChild2, // #4 = $src0
/*202847*/                OPC_CheckType, MVT::v4i32,
/*202849*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202851*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202854*/                OPC_EmitMergeInputChains1_1,
/*202855*/                OPC_EmitConvertToTarget, 3,
/*202857*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VPROLDZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202871*/              0, /*End of Scope*/
/*202872*/            /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::VBROADCAST),// ->202997
/*202875*/              OPC_MoveChild0,
/*202876*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*202879*/              OPC_RecordMemRef,
/*202880*/              OPC_RecordNode, // #1 = 'ld' chained node
/*202881*/              OPC_CheckFoldableChainNode,
/*202882*/              OPC_RecordChild1, // #2 = $src1
/*202883*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202885*/              OPC_SwitchType /*2 cases */, 70, MVT::i32,// ->202958
/*202888*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*202890*/                OPC_MoveParent,
/*202891*/                OPC_MoveParent,
/*202892*/                OPC_RecordChild1, // #3 = $src2
/*202893*/                OPC_MoveChild1,
/*202894*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202897*/                OPC_MoveParent,
/*202898*/                OPC_MoveParent,
/*202899*/                OPC_Scope, 30, /*->202931*/ // 2 children in Scope
/*202901*/                  OPC_MoveChild2,
/*202902*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*202905*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*202907*/                  OPC_MoveParent,
/*202908*/                  OPC_CheckType, MVT::v4i32,
/*202910*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202912*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*202915*/                  OPC_EmitMergeInputChains1_1,
/*202916*/                  OPC_EmitConvertToTarget, 3,
/*202918*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                            // Dst: (VPROLDZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202931*/                /*Scope*/ 25, /*->202957*/
/*202932*/                  OPC_RecordChild2, // #4 = $src0
/*202933*/                  OPC_CheckType, MVT::v4i32,
/*202935*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202937*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202940*/                  OPC_EmitMergeInputChains1_1,
/*202941*/                  OPC_EmitConvertToTarget, 3,
/*202943*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                            // Dst: (VPROLDZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202957*/                0, /*End of Scope*/
/*202958*/              /*SwitchType*/ 36, MVT::i64,// ->202996
/*202960*/                OPC_CheckPredicate, 9, // Predicate_load
/*202962*/                OPC_MoveParent,
/*202963*/                OPC_MoveParent,
/*202964*/                OPC_RecordChild1, // #3 = $src2
/*202965*/                OPC_MoveChild1,
/*202966*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*202969*/                OPC_MoveParent,
/*202970*/                OPC_MoveParent,
/*202971*/                OPC_RecordChild2, // #4 = $src0
/*202972*/                OPC_CheckType, MVT::v4i64,
/*202974*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202976*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*202979*/                OPC_EmitMergeInputChains1_1,
/*202980*/                OPC_EmitConvertToTarget, 3,
/*202982*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VPROLQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*202996*/              0, // EndSwitchType
/*202997*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::LOAD),// ->203055
/*203000*/              OPC_RecordMemRef,
/*203001*/              OPC_RecordNode, // #1 = 'ld' chained node
/*203002*/              OPC_CheckFoldableChainNode,
/*203003*/              OPC_RecordChild1, // #2 = $src1
/*203004*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203006*/              OPC_CheckPredicate, 9, // Predicate_load
/*203008*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*203010*/              OPC_MoveParent,
/*203011*/              OPC_RecordChild1, // #3 = $src2
/*203012*/              OPC_MoveChild1,
/*203013*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*203016*/              OPC_MoveParent,
/*203017*/              OPC_MoveParent,
/*203018*/              OPC_MoveChild2,
/*203019*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*203022*/              OPC_MoveChild0,
/*203023*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203026*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203028*/              OPC_CheckType, MVT::v8i32,
/*203030*/              OPC_MoveParent,
/*203031*/              OPC_MoveParent,
/*203032*/              OPC_CheckType, MVT::v4i64,
/*203034*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203036*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*203039*/              OPC_EmitMergeInputChains1_1,
/*203040*/              OPC_EmitConvertToTarget, 3,
/*203042*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPROLQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*203055*/            0, // EndSwitchOpcode
/*203056*/          /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(ISD::SHL),// ->203264
/*203060*/            OPC_RecordChild0, // #1 = $src1
/*203061*/            OPC_MoveChild1,
/*203062*/            OPC_SwitchOpcode /*3 cases */, 93, TARGET_VAL(X86ISD::VBROADCAST),// ->203159
/*203066*/              OPC_MoveChild0,
/*203067*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*203070*/              OPC_RecordMemRef,
/*203071*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203072*/              OPC_CheckFoldableChainNode,
/*203073*/              OPC_RecordChild1, // #3 = $src2
/*203074*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203076*/              OPC_SwitchType /*2 cases */, 42, MVT::i64,// ->203121
/*203079*/                OPC_CheckPredicate, 9, // Predicate_load
/*203081*/                OPC_MoveParent,
/*203082*/                OPC_CheckType, MVT::v4i64,
/*203084*/                OPC_MoveParent,
/*203085*/                OPC_MoveParent,
/*203086*/                OPC_MoveChild2,
/*203087*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*203090*/                OPC_MoveChild0,
/*203091*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203094*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203096*/                OPC_CheckType, MVT::v8i32,
/*203098*/                OPC_MoveParent,
/*203099*/                OPC_MoveParent,
/*203100*/                OPC_CheckType, MVT::v4i64,
/*203102*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203104*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203107*/                OPC_EmitMergeInputChains1_2,
/*203108*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSLLVQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203121*/              /*SwitchType*/ 35, MVT::i32,// ->203158
/*203123*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*203125*/                OPC_MoveParent,
/*203126*/                OPC_CheckType, MVT::v4i32,
/*203128*/                OPC_MoveParent,
/*203129*/                OPC_MoveParent,
/*203130*/                OPC_MoveChild2,
/*203131*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203134*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203136*/                OPC_MoveParent,
/*203137*/                OPC_CheckType, MVT::v4i32,
/*203139*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203141*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203144*/                OPC_EmitMergeInputChains1_2,
/*203145*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSLLVDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203158*/              0, // EndSwitchType
/*203159*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::BITCAST),// ->203211
/*203162*/              OPC_MoveChild0,
/*203163*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*203166*/              OPC_RecordMemRef,
/*203167*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203168*/              OPC_CheckFoldableChainNode,
/*203169*/              OPC_RecordChild1, // #3 = $src2
/*203170*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203172*/              OPC_CheckPredicate, 9, // Predicate_load
/*203174*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*203176*/              OPC_CheckType, MVT::v2i64,
/*203178*/              OPC_MoveParent,
/*203179*/              OPC_CheckType, MVT::v4i32,
/*203181*/              OPC_MoveParent,
/*203182*/              OPC_MoveParent,
/*203183*/              OPC_MoveChild2,
/*203184*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203187*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203189*/              OPC_MoveParent,
/*203190*/              OPC_CheckType, MVT::v4i32,
/*203192*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203194*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203197*/              OPC_EmitMergeInputChains1_2,
/*203198*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSLLVDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203211*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->203263
/*203214*/              OPC_RecordMemRef,
/*203215*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203216*/              OPC_CheckFoldableChainNode,
/*203217*/              OPC_RecordChild1, // #3 = $src2
/*203218*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203220*/              OPC_CheckPredicate, 9, // Predicate_load
/*203222*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*203224*/              OPC_CheckType, MVT::v4i64,
/*203226*/              OPC_MoveParent,
/*203227*/              OPC_MoveParent,
/*203228*/              OPC_MoveChild2,
/*203229*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*203232*/              OPC_MoveChild0,
/*203233*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203236*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203238*/              OPC_CheckType, MVT::v8i32,
/*203240*/              OPC_MoveParent,
/*203241*/              OPC_MoveParent,
/*203242*/              OPC_CheckType, MVT::v4i64,
/*203244*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203246*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203249*/              OPC_EmitMergeInputChains1_2,
/*203250*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSLLVQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203263*/            0, // EndSwitchOpcode
/*203264*/          /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(ISD::SRA),// ->203472
/*203268*/            OPC_RecordChild0, // #1 = $src1
/*203269*/            OPC_MoveChild1,
/*203270*/            OPC_SwitchOpcode /*3 cases */, 93, TARGET_VAL(X86ISD::VBROADCAST),// ->203367
/*203274*/              OPC_MoveChild0,
/*203275*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*203278*/              OPC_RecordMemRef,
/*203279*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203280*/              OPC_CheckFoldableChainNode,
/*203281*/              OPC_RecordChild1, // #3 = $src2
/*203282*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203284*/              OPC_SwitchType /*2 cases */, 42, MVT::i64,// ->203329
/*203287*/                OPC_CheckPredicate, 9, // Predicate_load
/*203289*/                OPC_MoveParent,
/*203290*/                OPC_CheckType, MVT::v4i64,
/*203292*/                OPC_MoveParent,
/*203293*/                OPC_MoveParent,
/*203294*/                OPC_MoveChild2,
/*203295*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*203298*/                OPC_MoveChild0,
/*203299*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203302*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203304*/                OPC_CheckType, MVT::v8i32,
/*203306*/                OPC_MoveParent,
/*203307*/                OPC_MoveParent,
/*203308*/                OPC_CheckType, MVT::v4i64,
/*203310*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203312*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203315*/                OPC_EmitMergeInputChains1_2,
/*203316*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRAVQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203329*/              /*SwitchType*/ 35, MVT::i32,// ->203366
/*203331*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*203333*/                OPC_MoveParent,
/*203334*/                OPC_CheckType, MVT::v4i32,
/*203336*/                OPC_MoveParent,
/*203337*/                OPC_MoveParent,
/*203338*/                OPC_MoveChild2,
/*203339*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203342*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203344*/                OPC_MoveParent,
/*203345*/                OPC_CheckType, MVT::v4i32,
/*203347*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203349*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203352*/                OPC_EmitMergeInputChains1_2,
/*203353*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRAVDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203366*/              0, // EndSwitchType
/*203367*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::BITCAST),// ->203419
/*203370*/              OPC_MoveChild0,
/*203371*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*203374*/              OPC_RecordMemRef,
/*203375*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203376*/              OPC_CheckFoldableChainNode,
/*203377*/              OPC_RecordChild1, // #3 = $src2
/*203378*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203380*/              OPC_CheckPredicate, 9, // Predicate_load
/*203382*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*203384*/              OPC_CheckType, MVT::v2i64,
/*203386*/              OPC_MoveParent,
/*203387*/              OPC_CheckType, MVT::v4i32,
/*203389*/              OPC_MoveParent,
/*203390*/              OPC_MoveParent,
/*203391*/              OPC_MoveChild2,
/*203392*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203395*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203397*/              OPC_MoveParent,
/*203398*/              OPC_CheckType, MVT::v4i32,
/*203400*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203402*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203405*/              OPC_EmitMergeInputChains1_2,
/*203406*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRAVDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203419*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->203471
/*203422*/              OPC_RecordMemRef,
/*203423*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203424*/              OPC_CheckFoldableChainNode,
/*203425*/              OPC_RecordChild1, // #3 = $src2
/*203426*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203428*/              OPC_CheckPredicate, 9, // Predicate_load
/*203430*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*203432*/              OPC_CheckType, MVT::v4i64,
/*203434*/              OPC_MoveParent,
/*203435*/              OPC_MoveParent,
/*203436*/              OPC_MoveChild2,
/*203437*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*203440*/              OPC_MoveChild0,
/*203441*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203444*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203446*/              OPC_CheckType, MVT::v8i32,
/*203448*/              OPC_MoveParent,
/*203449*/              OPC_MoveParent,
/*203450*/              OPC_CheckType, MVT::v4i64,
/*203452*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203454*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203457*/              OPC_EmitMergeInputChains1_2,
/*203458*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRAVQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203471*/            0, // EndSwitchOpcode
/*203472*/          /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(ISD::SRL),// ->203680
/*203476*/            OPC_RecordChild0, // #1 = $src1
/*203477*/            OPC_MoveChild1,
/*203478*/            OPC_SwitchOpcode /*3 cases */, 93, TARGET_VAL(X86ISD::VBROADCAST),// ->203575
/*203482*/              OPC_MoveChild0,
/*203483*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*203486*/              OPC_RecordMemRef,
/*203487*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203488*/              OPC_CheckFoldableChainNode,
/*203489*/              OPC_RecordChild1, // #3 = $src2
/*203490*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203492*/              OPC_SwitchType /*2 cases */, 42, MVT::i64,// ->203537
/*203495*/                OPC_CheckPredicate, 9, // Predicate_load
/*203497*/                OPC_MoveParent,
/*203498*/                OPC_CheckType, MVT::v4i64,
/*203500*/                OPC_MoveParent,
/*203501*/                OPC_MoveParent,
/*203502*/                OPC_MoveChild2,
/*203503*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*203506*/                OPC_MoveChild0,
/*203507*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203510*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203512*/                OPC_CheckType, MVT::v8i32,
/*203514*/                OPC_MoveParent,
/*203515*/                OPC_MoveParent,
/*203516*/                OPC_CheckType, MVT::v4i64,
/*203518*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203520*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203523*/                OPC_EmitMergeInputChains1_2,
/*203524*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRLVQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203537*/              /*SwitchType*/ 35, MVT::i32,// ->203574
/*203539*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*203541*/                OPC_MoveParent,
/*203542*/                OPC_CheckType, MVT::v4i32,
/*203544*/                OPC_MoveParent,
/*203545*/                OPC_MoveParent,
/*203546*/                OPC_MoveChild2,
/*203547*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203550*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203552*/                OPC_MoveParent,
/*203553*/                OPC_CheckType, MVT::v4i32,
/*203555*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203557*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203560*/                OPC_EmitMergeInputChains1_2,
/*203561*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRLVDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203574*/              0, // EndSwitchType
/*203575*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::BITCAST),// ->203627
/*203578*/              OPC_MoveChild0,
/*203579*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*203582*/              OPC_RecordMemRef,
/*203583*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203584*/              OPC_CheckFoldableChainNode,
/*203585*/              OPC_RecordChild1, // #3 = $src2
/*203586*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203588*/              OPC_CheckPredicate, 9, // Predicate_load
/*203590*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*203592*/              OPC_CheckType, MVT::v2i64,
/*203594*/              OPC_MoveParent,
/*203595*/              OPC_CheckType, MVT::v4i32,
/*203597*/              OPC_MoveParent,
/*203598*/              OPC_MoveParent,
/*203599*/              OPC_MoveChild2,
/*203600*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203603*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203605*/              OPC_MoveParent,
/*203606*/              OPC_CheckType, MVT::v4i32,
/*203608*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203610*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203613*/              OPC_EmitMergeInputChains1_2,
/*203614*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRLVDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203627*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->203679
/*203630*/              OPC_RecordMemRef,
/*203631*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203632*/              OPC_CheckFoldableChainNode,
/*203633*/              OPC_RecordChild1, // #3 = $src2
/*203634*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203636*/              OPC_CheckPredicate, 9, // Predicate_load
/*203638*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*203640*/              OPC_CheckType, MVT::v4i64,
/*203642*/              OPC_MoveParent,
/*203643*/              OPC_MoveParent,
/*203644*/              OPC_MoveChild2,
/*203645*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*203648*/              OPC_MoveChild0,
/*203649*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203652*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203654*/              OPC_CheckType, MVT::v8i32,
/*203656*/              OPC_MoveParent,
/*203657*/              OPC_MoveParent,
/*203658*/              OPC_CheckType, MVT::v4i64,
/*203660*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203662*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203665*/              OPC_EmitMergeInputChains1_2,
/*203666*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRLVQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203679*/            0, // EndSwitchOpcode
/*203680*/          /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(ISD::ROTR),// ->203888
/*203684*/            OPC_RecordChild0, // #1 = $src1
/*203685*/            OPC_MoveChild1,
/*203686*/            OPC_SwitchOpcode /*3 cases */, 93, TARGET_VAL(X86ISD::VBROADCAST),// ->203783
/*203690*/              OPC_MoveChild0,
/*203691*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*203694*/              OPC_RecordMemRef,
/*203695*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203696*/              OPC_CheckFoldableChainNode,
/*203697*/              OPC_RecordChild1, // #3 = $src2
/*203698*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203700*/              OPC_SwitchType /*2 cases */, 42, MVT::i64,// ->203745
/*203703*/                OPC_CheckPredicate, 9, // Predicate_load
/*203705*/                OPC_MoveParent,
/*203706*/                OPC_CheckType, MVT::v4i64,
/*203708*/                OPC_MoveParent,
/*203709*/                OPC_MoveParent,
/*203710*/                OPC_MoveChild2,
/*203711*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*203714*/                OPC_MoveChild0,
/*203715*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203718*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203720*/                OPC_CheckType, MVT::v8i32,
/*203722*/                OPC_MoveParent,
/*203723*/                OPC_MoveParent,
/*203724*/                OPC_CheckType, MVT::v4i64,
/*203726*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203728*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203731*/                OPC_EmitMergeInputChains1_2,
/*203732*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPRORVQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203745*/              /*SwitchType*/ 35, MVT::i32,// ->203782
/*203747*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*203749*/                OPC_MoveParent,
/*203750*/                OPC_CheckType, MVT::v4i32,
/*203752*/                OPC_MoveParent,
/*203753*/                OPC_MoveParent,
/*203754*/                OPC_MoveChild2,
/*203755*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203758*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203760*/                OPC_MoveParent,
/*203761*/                OPC_CheckType, MVT::v4i32,
/*203763*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203765*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203768*/                OPC_EmitMergeInputChains1_2,
/*203769*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPRORVDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203782*/              0, // EndSwitchType
/*203783*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::BITCAST),// ->203835
/*203786*/              OPC_MoveChild0,
/*203787*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*203790*/              OPC_RecordMemRef,
/*203791*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203792*/              OPC_CheckFoldableChainNode,
/*203793*/              OPC_RecordChild1, // #3 = $src2
/*203794*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203796*/              OPC_CheckPredicate, 9, // Predicate_load
/*203798*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*203800*/              OPC_CheckType, MVT::v2i64,
/*203802*/              OPC_MoveParent,
/*203803*/              OPC_CheckType, MVT::v4i32,
/*203805*/              OPC_MoveParent,
/*203806*/              OPC_MoveParent,
/*203807*/              OPC_MoveChild2,
/*203808*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203811*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203813*/              OPC_MoveParent,
/*203814*/              OPC_CheckType, MVT::v4i32,
/*203816*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203818*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203821*/              OPC_EmitMergeInputChains1_2,
/*203822*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPRORVDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203835*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->203887
/*203838*/              OPC_RecordMemRef,
/*203839*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203840*/              OPC_CheckFoldableChainNode,
/*203841*/              OPC_RecordChild1, // #3 = $src2
/*203842*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203844*/              OPC_CheckPredicate, 9, // Predicate_load
/*203846*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*203848*/              OPC_CheckType, MVT::v4i64,
/*203850*/              OPC_MoveParent,
/*203851*/              OPC_MoveParent,
/*203852*/              OPC_MoveChild2,
/*203853*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*203856*/              OPC_MoveChild0,
/*203857*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203860*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203862*/              OPC_CheckType, MVT::v8i32,
/*203864*/              OPC_MoveParent,
/*203865*/              OPC_MoveParent,
/*203866*/              OPC_CheckType, MVT::v4i64,
/*203868*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203870*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203873*/              OPC_EmitMergeInputChains1_2,
/*203874*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPRORVQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203887*/            0, // EndSwitchOpcode
/*203888*/          /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(ISD::ROTL),// ->204096
/*203892*/            OPC_RecordChild0, // #1 = $src1
/*203893*/            OPC_MoveChild1,
/*203894*/            OPC_SwitchOpcode /*3 cases */, 93, TARGET_VAL(X86ISD::VBROADCAST),// ->203991
/*203898*/              OPC_MoveChild0,
/*203899*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*203902*/              OPC_RecordMemRef,
/*203903*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203904*/              OPC_CheckFoldableChainNode,
/*203905*/              OPC_RecordChild1, // #3 = $src2
/*203906*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203908*/              OPC_SwitchType /*2 cases */, 42, MVT::i64,// ->203953
/*203911*/                OPC_CheckPredicate, 9, // Predicate_load
/*203913*/                OPC_MoveParent,
/*203914*/                OPC_CheckType, MVT::v4i64,
/*203916*/                OPC_MoveParent,
/*203917*/                OPC_MoveParent,
/*203918*/                OPC_MoveChild2,
/*203919*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*203922*/                OPC_MoveChild0,
/*203923*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203926*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203928*/                OPC_CheckType, MVT::v8i32,
/*203930*/                OPC_MoveParent,
/*203931*/                OPC_MoveParent,
/*203932*/                OPC_CheckType, MVT::v4i64,
/*203934*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203936*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203939*/                OPC_EmitMergeInputChains1_2,
/*203940*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPROLVQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203953*/              /*SwitchType*/ 35, MVT::i32,// ->203990
/*203955*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*203957*/                OPC_MoveParent,
/*203958*/                OPC_CheckType, MVT::v4i32,
/*203960*/                OPC_MoveParent,
/*203961*/                OPC_MoveParent,
/*203962*/                OPC_MoveChild2,
/*203963*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*203966*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*203968*/                OPC_MoveParent,
/*203969*/                OPC_CheckType, MVT::v4i32,
/*203971*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203973*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203976*/                OPC_EmitMergeInputChains1_2,
/*203977*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPROLVDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203990*/              0, // EndSwitchType
/*203991*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::BITCAST),// ->204043
/*203994*/              OPC_MoveChild0,
/*203995*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*203998*/              OPC_RecordMemRef,
/*203999*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204000*/              OPC_CheckFoldableChainNode,
/*204001*/              OPC_RecordChild1, // #3 = $src2
/*204002*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204004*/              OPC_CheckPredicate, 9, // Predicate_load
/*204006*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*204008*/              OPC_CheckType, MVT::v2i64,
/*204010*/              OPC_MoveParent,
/*204011*/              OPC_CheckType, MVT::v4i32,
/*204013*/              OPC_MoveParent,
/*204014*/              OPC_MoveParent,
/*204015*/              OPC_MoveChild2,
/*204016*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204019*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204021*/              OPC_MoveParent,
/*204022*/              OPC_CheckType, MVT::v4i32,
/*204024*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204026*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204029*/              OPC_EmitMergeInputChains1_2,
/*204030*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPROLVDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204043*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->204095
/*204046*/              OPC_RecordMemRef,
/*204047*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204048*/              OPC_CheckFoldableChainNode,
/*204049*/              OPC_RecordChild1, // #3 = $src2
/*204050*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204052*/              OPC_CheckPredicate, 9, // Predicate_load
/*204054*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*204056*/              OPC_CheckType, MVT::v4i64,
/*204058*/              OPC_MoveParent,
/*204059*/              OPC_MoveParent,
/*204060*/              OPC_MoveChild2,
/*204061*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*204064*/              OPC_MoveChild0,
/*204065*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204068*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204070*/              OPC_CheckType, MVT::v8i32,
/*204072*/              OPC_MoveParent,
/*204073*/              OPC_MoveParent,
/*204074*/              OPC_CheckType, MVT::v4i64,
/*204076*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204078*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204081*/              OPC_EmitMergeInputChains1_2,
/*204082*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPROLVQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204095*/            0, // EndSwitchOpcode
/*204096*/          /*SwitchOpcode*/ 68|128,1/*196*/, TARGET_VAL(X86ISD::VSRAV),// ->204296
/*204100*/            OPC_RecordChild0, // #1 = $src1
/*204101*/            OPC_MoveChild1,
/*204102*/            OPC_SwitchOpcode /*3 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->204195
/*204106*/              OPC_MoveChild0,
/*204107*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204110*/              OPC_RecordMemRef,
/*204111*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204112*/              OPC_CheckFoldableChainNode,
/*204113*/              OPC_RecordChild1, // #3 = $src2
/*204114*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204116*/              OPC_SwitchType /*2 cases */, 40, MVT::i64,// ->204159
/*204119*/                OPC_CheckPredicate, 9, // Predicate_load
/*204121*/                OPC_MoveParent,
/*204122*/                OPC_MoveParent,
/*204123*/                OPC_MoveParent,
/*204124*/                OPC_MoveChild2,
/*204125*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*204128*/                OPC_MoveChild0,
/*204129*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204132*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204134*/                OPC_CheckType, MVT::v8i32,
/*204136*/                OPC_MoveParent,
/*204137*/                OPC_MoveParent,
/*204138*/                OPC_CheckType, MVT::v4i64,
/*204140*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*204142*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204145*/                OPC_EmitMergeInputChains1_2,
/*204146*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRAVQZ256rmbkz:{ *:[v4i64] } VK4:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204159*/              /*SwitchType*/ 33, MVT::i32,// ->204194
/*204161*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*204163*/                OPC_MoveParent,
/*204164*/                OPC_MoveParent,
/*204165*/                OPC_MoveParent,
/*204166*/                OPC_MoveChild2,
/*204167*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204170*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204172*/                OPC_MoveParent,
/*204173*/                OPC_CheckType, MVT::v4i32,
/*204175*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*204177*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204180*/                OPC_EmitMergeInputChains1_2,
/*204181*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRAVDZ128rmbkz:{ *:[v4i32] } VK4:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204194*/              0, // EndSwitchType
/*204195*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::BITCAST),// ->204245
/*204198*/              OPC_MoveChild0,
/*204199*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204202*/              OPC_RecordMemRef,
/*204203*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204204*/              OPC_CheckFoldableChainNode,
/*204205*/              OPC_RecordChild1, // #3 = $src2
/*204206*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204208*/              OPC_CheckPredicate, 9, // Predicate_load
/*204210*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*204212*/              OPC_CheckType, MVT::v2i64,
/*204214*/              OPC_MoveParent,
/*204215*/              OPC_MoveParent,
/*204216*/              OPC_MoveParent,
/*204217*/              OPC_MoveChild2,
/*204218*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204221*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204223*/              OPC_MoveParent,
/*204224*/              OPC_CheckType, MVT::v4i32,
/*204226*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*204228*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204231*/              OPC_EmitMergeInputChains1_2,
/*204232*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRAVDZ128rmkz:{ *:[v4i32] } VK4:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204245*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->204295
/*204248*/              OPC_RecordMemRef,
/*204249*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204250*/              OPC_CheckFoldableChainNode,
/*204251*/              OPC_RecordChild1, // #3 = $src2
/*204252*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204254*/              OPC_CheckPredicate, 9, // Predicate_load
/*204256*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*204258*/              OPC_MoveParent,
/*204259*/              OPC_MoveParent,
/*204260*/              OPC_MoveChild2,
/*204261*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*204264*/              OPC_MoveChild0,
/*204265*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204268*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204270*/              OPC_CheckType, MVT::v8i32,
/*204272*/              OPC_MoveParent,
/*204273*/              OPC_MoveParent,
/*204274*/              OPC_CheckType, MVT::v4i64,
/*204276*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*204278*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204281*/              OPC_EmitMergeInputChains1_2,
/*204282*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRAVQZ256rmkz:{ *:[v4i64] } VK4:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204295*/            0, // EndSwitchOpcode
/*204296*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPERMV),// ->204408
/*204299*/            OPC_RecordChild0, // #1 = $src1
/*204300*/            OPC_MoveChild1,
/*204301*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->204357
/*204305*/              OPC_MoveChild0,
/*204306*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204309*/              OPC_RecordMemRef,
/*204310*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204311*/              OPC_CheckFoldableChainNode,
/*204312*/              OPC_RecordChild1, // #3 = $src2
/*204313*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204315*/              OPC_CheckPredicate, 9, // Predicate_load
/*204317*/              OPC_CheckType, MVT::i64,
/*204319*/              OPC_MoveParent,
/*204320*/              OPC_MoveParent,
/*204321*/              OPC_MoveParent,
/*204322*/              OPC_MoveChild2,
/*204323*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*204326*/              OPC_MoveChild0,
/*204327*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204330*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204332*/              OPC_CheckType, MVT::v8i32,
/*204334*/              OPC_MoveParent,
/*204335*/              OPC_MoveParent,
/*204336*/              OPC_CheckType, MVT::v4i64,
/*204338*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204340*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204343*/              OPC_EmitMergeInputChains1_2,
/*204344*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204357*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->204407
/*204360*/              OPC_RecordMemRef,
/*204361*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204362*/              OPC_CheckFoldableChainNode,
/*204363*/              OPC_RecordChild1, // #3 = $src2
/*204364*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204366*/              OPC_CheckPredicate, 9, // Predicate_load
/*204368*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*204370*/              OPC_MoveParent,
/*204371*/              OPC_MoveParent,
/*204372*/              OPC_MoveChild2,
/*204373*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*204376*/              OPC_MoveChild0,
/*204377*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204380*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204382*/              OPC_CheckType, MVT::v8i32,
/*204384*/              OPC_MoveParent,
/*204385*/              OPC_MoveParent,
/*204386*/              OPC_CheckType, MVT::v4i64,
/*204388*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204390*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204393*/              OPC_EmitMergeInputChains1_2,
/*204394*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPERMQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204407*/            0, // EndSwitchOpcode
/*204408*/          /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VPERMI),// ->204523
/*204411*/            OPC_MoveChild0,
/*204412*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->204471
/*204416*/              OPC_RecordMemRef,
/*204417*/              OPC_RecordNode, // #1 = 'ld' chained node
/*204418*/              OPC_CheckFoldableChainNode,
/*204419*/              OPC_RecordChild1, // #2 = $src1
/*204420*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204422*/              OPC_CheckPredicate, 9, // Predicate_load
/*204424*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*204426*/              OPC_MoveParent,
/*204427*/              OPC_RecordChild1, // #3 = $src2
/*204428*/              OPC_MoveChild1,
/*204429*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*204432*/              OPC_MoveParent,
/*204433*/              OPC_MoveParent,
/*204434*/              OPC_MoveChild2,
/*204435*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*204438*/              OPC_MoveChild0,
/*204439*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204442*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204444*/              OPC_CheckType, MVT::v8i32,
/*204446*/              OPC_MoveParent,
/*204447*/              OPC_MoveParent,
/*204448*/              OPC_CheckType, MVT::v4i64,
/*204450*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204452*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*204455*/              OPC_EmitMergeInputChains1_1,
/*204456*/              OPC_EmitConvertToTarget, 3,
/*204458*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*204471*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->204522
/*204474*/              OPC_MoveChild0,
/*204475*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204478*/              OPC_RecordMemRef,
/*204479*/              OPC_RecordNode, // #1 = 'ld' chained node
/*204480*/              OPC_CheckFoldableChainNode,
/*204481*/              OPC_RecordChild1, // #2 = $src1
/*204482*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204484*/              OPC_CheckPredicate, 9, // Predicate_load
/*204486*/              OPC_CheckType, MVT::i64,
/*204488*/              OPC_MoveParent,
/*204489*/              OPC_MoveParent,
/*204490*/              OPC_RecordChild1, // #3 = $src2
/*204491*/              OPC_MoveChild1,
/*204492*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*204495*/              OPC_MoveParent,
/*204496*/              OPC_MoveParent,
/*204497*/              OPC_RecordChild2, // #4 = $src0
/*204498*/              OPC_CheckType, MVT::v4i64,
/*204500*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204502*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*204505*/              OPC_EmitMergeInputChains1_1,
/*204506*/              OPC_EmitConvertToTarget, 3,
/*204508*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                        // Dst: (VPERMQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*204522*/            0, // EndSwitchOpcode
/*204523*/          /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::PSHUFD),// ->204702
/*204527*/            OPC_MoveChild0,
/*204528*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::BITCAST),// ->204616
/*204532*/              OPC_MoveChild0,
/*204533*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204536*/              OPC_RecordMemRef,
/*204537*/              OPC_RecordNode, // #1 = 'ld' chained node
/*204538*/              OPC_CheckFoldableChainNode,
/*204539*/              OPC_RecordChild1, // #2 = $src1
/*204540*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204542*/              OPC_CheckPredicate, 9, // Predicate_load
/*204544*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*204546*/              OPC_CheckType, MVT::v2i64,
/*204548*/              OPC_MoveParent,
/*204549*/              OPC_MoveParent,
/*204550*/              OPC_RecordChild1, // #3 = $src2
/*204551*/              OPC_MoveChild1,
/*204552*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*204555*/              OPC_MoveParent,
/*204556*/              OPC_MoveParent,
/*204557*/              OPC_Scope, 30, /*->204589*/ // 2 children in Scope
/*204559*/                OPC_MoveChild2,
/*204560*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204563*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204565*/                OPC_MoveParent,
/*204566*/                OPC_CheckType, MVT::v4i32,
/*204568*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204570*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*204573*/                OPC_EmitMergeInputChains1_1,
/*204574*/                OPC_EmitConvertToTarget, 3,
/*204576*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPSHUFDZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*204589*/              /*Scope*/ 25, /*->204615*/
/*204590*/                OPC_RecordChild2, // #4 = $src0
/*204591*/                OPC_CheckType, MVT::v4i32,
/*204593*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204595*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*204598*/                OPC_EmitMergeInputChains1_1,
/*204599*/                OPC_EmitConvertToTarget, 3,
/*204601*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VPSHUFDZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*204615*/              0, /*End of Scope*/
/*204616*/            /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VBROADCAST),// ->204701
/*204619*/              OPC_MoveChild0,
/*204620*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204623*/              OPC_RecordMemRef,
/*204624*/              OPC_RecordNode, // #1 = 'ld' chained node
/*204625*/              OPC_CheckFoldableChainNode,
/*204626*/              OPC_RecordChild1, // #2 = $src1
/*204627*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204629*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*204631*/              OPC_CheckType, MVT::i32,
/*204633*/              OPC_MoveParent,
/*204634*/              OPC_MoveParent,
/*204635*/              OPC_RecordChild1, // #3 = $src2
/*204636*/              OPC_MoveChild1,
/*204637*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*204640*/              OPC_MoveParent,
/*204641*/              OPC_MoveParent,
/*204642*/              OPC_Scope, 30, /*->204674*/ // 2 children in Scope
/*204644*/                OPC_MoveChild2,
/*204645*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204648*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204650*/                OPC_MoveParent,
/*204651*/                OPC_CheckType, MVT::v4i32,
/*204653*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204655*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*204658*/                OPC_EmitMergeInputChains1_1,
/*204659*/                OPC_EmitConvertToTarget, 3,
/*204661*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPSHUFDZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*204674*/              /*Scope*/ 25, /*->204700*/
/*204675*/                OPC_RecordChild2, // #4 = $src0
/*204676*/                OPC_CheckType, MVT::v4i32,
/*204678*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204680*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*204683*/                OPC_EmitMergeInputChains1_1,
/*204684*/                OPC_EmitConvertToTarget, 3,
/*204686*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VPSHUFDZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*204700*/              0, /*End of Scope*/
/*204701*/            0, // EndSwitchOpcode
/*204702*/          /*SwitchOpcode*/ 104|128,1/*232*/, TARGET_VAL(X86ISD::VPMADD52L),// ->204938
/*204706*/            OPC_Scope, 59, /*->204767*/ // 4 children in Scope
/*204708*/              OPC_RecordChild0, // #1 = $src2
/*204709*/              OPC_MoveChild1,
/*204710*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*204713*/              OPC_MoveChild0,
/*204714*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204717*/              OPC_RecordMemRef,
/*204718*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204719*/              OPC_CheckFoldableChainNode,
/*204720*/              OPC_RecordChild1, // #3 = $src3
/*204721*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204723*/              OPC_CheckPredicate, 9, // Predicate_load
/*204725*/              OPC_CheckType, MVT::i64,
/*204727*/              OPC_MoveParent,
/*204728*/              OPC_MoveParent,
/*204729*/              OPC_RecordChild2, // #4 = $src1
/*204730*/              OPC_MoveParent,
/*204731*/              OPC_MoveChild2,
/*204732*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*204735*/              OPC_MoveChild0,
/*204736*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204739*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204741*/              OPC_CheckType, MVT::v8i32,
/*204743*/              OPC_MoveParent,
/*204744*/              OPC_MoveParent,
/*204745*/              OPC_CheckType, MVT::v4i64,
/*204747*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*204749*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*204752*/              OPC_EmitMergeInputChains1_2,
/*204753*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52l:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMADD52LUQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*204767*/            /*Scope*/ 59, /*->204827*/
/*204768*/              OPC_MoveChild0,
/*204769*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*204772*/              OPC_MoveChild0,
/*204773*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204776*/              OPC_RecordMemRef,
/*204777*/              OPC_RecordNode, // #1 = 'ld' chained node
/*204778*/              OPC_CheckFoldableChainNode,
/*204779*/              OPC_RecordChild1, // #2 = $src3
/*204780*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204782*/              OPC_CheckPredicate, 9, // Predicate_load
/*204784*/              OPC_CheckType, MVT::i64,
/*204786*/              OPC_MoveParent,
/*204787*/              OPC_MoveParent,
/*204788*/              OPC_RecordChild1, // #3 = $src2
/*204789*/              OPC_RecordChild2, // #4 = $src1
/*204790*/              OPC_MoveParent,
/*204791*/              OPC_MoveChild2,
/*204792*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*204795*/              OPC_MoveChild0,
/*204796*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204799*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204801*/              OPC_CheckType, MVT::v8i32,
/*204803*/              OPC_MoveParent,
/*204804*/              OPC_MoveParent,
/*204805*/              OPC_CheckType, MVT::v4i64,
/*204807*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*204809*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*204812*/              OPC_EmitMergeInputChains1_1,
/*204813*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52l:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMADD52LUQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*204827*/            /*Scope*/ 54, /*->204882*/
/*204828*/              OPC_RecordChild0, // #1 = $src2
/*204829*/              OPC_MoveChild1,
/*204830*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204833*/              OPC_RecordMemRef,
/*204834*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204835*/              OPC_CheckFoldableChainNode,
/*204836*/              OPC_RecordChild1, // #3 = $src3
/*204837*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204839*/              OPC_CheckPredicate, 9, // Predicate_load
/*204841*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*204843*/              OPC_MoveParent,
/*204844*/              OPC_RecordChild2, // #4 = $src1
/*204845*/              OPC_MoveParent,
/*204846*/              OPC_MoveChild2,
/*204847*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*204850*/              OPC_MoveChild0,
/*204851*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204854*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204856*/              OPC_CheckType, MVT::v8i32,
/*204858*/              OPC_MoveParent,
/*204859*/              OPC_MoveParent,
/*204860*/              OPC_CheckType, MVT::v4i64,
/*204862*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*204864*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*204867*/              OPC_EmitMergeInputChains1_2,
/*204868*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52l:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMADD52LUQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*204882*/            /*Scope*/ 54, /*->204937*/
/*204883*/              OPC_MoveChild0,
/*204884*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204887*/              OPC_RecordMemRef,
/*204888*/              OPC_RecordNode, // #1 = 'ld' chained node
/*204889*/              OPC_CheckFoldableChainNode,
/*204890*/              OPC_RecordChild1, // #2 = $src3
/*204891*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204893*/              OPC_CheckPredicate, 9, // Predicate_load
/*204895*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*204897*/              OPC_MoveParent,
/*204898*/              OPC_RecordChild1, // #3 = $src2
/*204899*/              OPC_RecordChild2, // #4 = $src1
/*204900*/              OPC_MoveParent,
/*204901*/              OPC_MoveChild2,
/*204902*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*204905*/              OPC_MoveChild0,
/*204906*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204909*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204911*/              OPC_CheckType, MVT::v8i32,
/*204913*/              OPC_MoveParent,
/*204914*/              OPC_MoveParent,
/*204915*/              OPC_CheckType, MVT::v4i64,
/*204917*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*204919*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*204922*/              OPC_EmitMergeInputChains1_1,
/*204923*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52l:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMADD52LUQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*204937*/            0, /*End of Scope*/
/*204938*/          /*SwitchOpcode*/ 104|128,1/*232*/, TARGET_VAL(X86ISD::VPMADD52H),// ->205174
/*204942*/            OPC_Scope, 59, /*->205003*/ // 4 children in Scope
/*204944*/              OPC_RecordChild0, // #1 = $src2
/*204945*/              OPC_MoveChild1,
/*204946*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*204949*/              OPC_MoveChild0,
/*204950*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204953*/              OPC_RecordMemRef,
/*204954*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204955*/              OPC_CheckFoldableChainNode,
/*204956*/              OPC_RecordChild1, // #3 = $src3
/*204957*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204959*/              OPC_CheckPredicate, 9, // Predicate_load
/*204961*/              OPC_CheckType, MVT::i64,
/*204963*/              OPC_MoveParent,
/*204964*/              OPC_MoveParent,
/*204965*/              OPC_RecordChild2, // #4 = $src1
/*204966*/              OPC_MoveParent,
/*204967*/              OPC_MoveChild2,
/*204968*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*204971*/              OPC_MoveChild0,
/*204972*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*204975*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*204977*/              OPC_CheckType, MVT::v8i32,
/*204979*/              OPC_MoveParent,
/*204980*/              OPC_MoveParent,
/*204981*/              OPC_CheckType, MVT::v4i64,
/*204983*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*204985*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*204988*/              OPC_EmitMergeInputChains1_2,
/*204989*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52h:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMADD52HUQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205003*/            /*Scope*/ 59, /*->205063*/
/*205004*/              OPC_MoveChild0,
/*205005*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*205008*/              OPC_MoveChild0,
/*205009*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*205012*/              OPC_RecordMemRef,
/*205013*/              OPC_RecordNode, // #1 = 'ld' chained node
/*205014*/              OPC_CheckFoldableChainNode,
/*205015*/              OPC_RecordChild1, // #2 = $src3
/*205016*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205018*/              OPC_CheckPredicate, 9, // Predicate_load
/*205020*/              OPC_CheckType, MVT::i64,
/*205022*/              OPC_MoveParent,
/*205023*/              OPC_MoveParent,
/*205024*/              OPC_RecordChild1, // #3 = $src2
/*205025*/              OPC_RecordChild2, // #4 = $src1
/*205026*/              OPC_MoveParent,
/*205027*/              OPC_MoveChild2,
/*205028*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*205031*/              OPC_MoveChild0,
/*205032*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205035*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205037*/              OPC_CheckType, MVT::v8i32,
/*205039*/              OPC_MoveParent,
/*205040*/              OPC_MoveParent,
/*205041*/              OPC_CheckType, MVT::v4i64,
/*205043*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*205045*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*205048*/              OPC_EmitMergeInputChains1_1,
/*205049*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52h:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMADD52HUQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205063*/            /*Scope*/ 54, /*->205118*/
/*205064*/              OPC_RecordChild0, // #1 = $src2
/*205065*/              OPC_MoveChild1,
/*205066*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*205069*/              OPC_RecordMemRef,
/*205070*/              OPC_RecordNode, // #2 = 'ld' chained node
/*205071*/              OPC_CheckFoldableChainNode,
/*205072*/              OPC_RecordChild1, // #3 = $src3
/*205073*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205075*/              OPC_CheckPredicate, 9, // Predicate_load
/*205077*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*205079*/              OPC_MoveParent,
/*205080*/              OPC_RecordChild2, // #4 = $src1
/*205081*/              OPC_MoveParent,
/*205082*/              OPC_MoveChild2,
/*205083*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*205086*/              OPC_MoveChild0,
/*205087*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205090*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205092*/              OPC_CheckType, MVT::v8i32,
/*205094*/              OPC_MoveParent,
/*205095*/              OPC_MoveParent,
/*205096*/              OPC_CheckType, MVT::v4i64,
/*205098*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*205100*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*205103*/              OPC_EmitMergeInputChains1_2,
/*205104*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52h:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMADD52HUQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205118*/            /*Scope*/ 54, /*->205173*/
/*205119*/              OPC_MoveChild0,
/*205120*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*205123*/              OPC_RecordMemRef,
/*205124*/              OPC_RecordNode, // #1 = 'ld' chained node
/*205125*/              OPC_CheckFoldableChainNode,
/*205126*/              OPC_RecordChild1, // #2 = $src3
/*205127*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205129*/              OPC_CheckPredicate, 9, // Predicate_load
/*205131*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*205133*/              OPC_MoveParent,
/*205134*/              OPC_RecordChild1, // #3 = $src2
/*205135*/              OPC_RecordChild2, // #4 = $src1
/*205136*/              OPC_MoveParent,
/*205137*/              OPC_MoveChild2,
/*205138*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*205141*/              OPC_MoveChild0,
/*205142*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205145*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205147*/              OPC_CheckType, MVT::v8i32,
/*205149*/              OPC_MoveParent,
/*205150*/              OPC_MoveParent,
/*205151*/              OPC_CheckType, MVT::v4i64,
/*205153*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*205155*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*205158*/              OPC_EmitMergeInputChains1_1,
/*205159*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52h:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMADD52HUQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205173*/            0, /*End of Scope*/
/*205174*/          /*SwitchOpcode*/ 115|128,2/*371*/, TARGET_VAL(X86ISD::CVTP2SI),// ->205549
/*205178*/            OPC_MoveChild0,
/*205179*/            OPC_SwitchOpcode /*2 cases */, 57|128,1/*185*/, TARGET_VAL(X86ISD::VBROADCAST),// ->205369
/*205184*/              OPC_MoveChild0,
/*205185*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*205188*/              OPC_RecordMemRef,
/*205189*/              OPC_RecordNode, // #1 = 'ld' chained node
/*205190*/              OPC_CheckFoldableChainNode,
/*205191*/              OPC_RecordChild1, // #2 = $src
/*205192*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205194*/              OPC_CheckPredicate, 9, // Predicate_load
/*205196*/              OPC_SwitchType /*2 cases */, 100, MVT::f64,// ->205299
/*205199*/                OPC_MoveParent,
/*205200*/                OPC_SwitchType /*2 cases */, 64, MVT::v4f64,// ->205267
/*205203*/                  OPC_MoveParent,
/*205204*/                  OPC_MoveParent,
/*205205*/                  OPC_MoveChild2,
/*205206*/                  OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->205240
/*205210*/                    OPC_MoveChild0,
/*205211*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205214*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205216*/                    OPC_CheckType, MVT::v8i32,
/*205218*/                    OPC_MoveParent,
/*205219*/                    OPC_MoveParent,
/*205220*/                    OPC_CheckType, MVT::v4i64,
/*205222*/                    OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205224*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205227*/                    OPC_EmitMergeInputChains1_1,
/*205228*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                              // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VCVTPD2QQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205240*/                  /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->205266
/*205243*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205245*/                    OPC_MoveParent,
/*205246*/                    OPC_CheckType, MVT::v4i32,
/*205248*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205250*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205253*/                    OPC_EmitMergeInputChains1_1,
/*205254*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                              // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                              // Dst: (VCVTPD2DQZ256rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205266*/                  0, // EndSwitchOpcode
/*205267*/                /*SwitchType*/ 29, MVT::v2f64,// ->205298
/*205269*/                  OPC_MoveParent,
/*205270*/                  OPC_MoveParent,
/*205271*/                  OPC_MoveChild2,
/*205272*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205275*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205277*/                  OPC_MoveParent,
/*205278*/                  OPC_CheckType, MVT::v4i32,
/*205280*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205282*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205285*/                  OPC_EmitMergeInputChains1_1,
/*205286*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTPD2DQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205298*/                0, // EndSwitchType
/*205299*/              /*SwitchType*/ 67, MVT::f32,// ->205368
/*205301*/                OPC_MoveParent,
/*205302*/                OPC_CheckType, MVT::v4f32,
/*205304*/                OPC_MoveParent,
/*205305*/                OPC_MoveParent,
/*205306*/                OPC_MoveChild2,
/*205307*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->205341
/*205311*/                  OPC_MoveChild0,
/*205312*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205315*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205317*/                  OPC_CheckType, MVT::v8i32,
/*205319*/                  OPC_MoveParent,
/*205320*/                  OPC_MoveParent,
/*205321*/                  OPC_CheckType, MVT::v4i64,
/*205323*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205325*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205328*/                  OPC_EmitMergeInputChains1_1,
/*205329*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTPS2QQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205341*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->205367
/*205344*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205346*/                  OPC_MoveParent,
/*205347*/                  OPC_CheckType, MVT::v4i32,
/*205349*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205351*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205354*/                  OPC_EmitMergeInputChains1_1,
/*205355*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTPS2DQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205367*/                0, // EndSwitchOpcode
/*205368*/              0, // EndSwitchType
/*205369*/            /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(ISD::LOAD),// ->205548
/*205373*/              OPC_RecordMemRef,
/*205374*/              OPC_RecordNode, // #1 = 'ld' chained node
/*205375*/              OPC_CheckFoldableChainNode,
/*205376*/              OPC_RecordChild1, // #2 = $src
/*205377*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205379*/              OPC_CheckPredicate, 9, // Predicate_load
/*205381*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*205383*/              OPC_SwitchType /*3 cases */, 64, MVT::v4f64,// ->205450
/*205386*/                OPC_MoveParent,
/*205387*/                OPC_MoveParent,
/*205388*/                OPC_MoveChild2,
/*205389*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->205423
/*205393*/                  OPC_MoveChild0,
/*205394*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205397*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205399*/                  OPC_CheckType, MVT::v8i32,
/*205401*/                  OPC_MoveParent,
/*205402*/                  OPC_MoveParent,
/*205403*/                  OPC_CheckType, MVT::v4i64,
/*205405*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205407*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205410*/                  OPC_EmitMergeInputChains1_1,
/*205411*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VCVTPD2QQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205423*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->205449
/*205426*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205428*/                  OPC_MoveParent,
/*205429*/                  OPC_CheckType, MVT::v4i32,
/*205431*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205433*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205436*/                  OPC_EmitMergeInputChains1_1,
/*205437*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VCVTPD2DQZ256rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205449*/                0, // EndSwitchOpcode
/*205450*/              /*SwitchType*/ 64, MVT::v4f32,// ->205516
/*205452*/                OPC_MoveParent,
/*205453*/                OPC_MoveParent,
/*205454*/                OPC_MoveChild2,
/*205455*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->205489
/*205459*/                  OPC_MoveChild0,
/*205460*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205463*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205465*/                  OPC_CheckType, MVT::v8i32,
/*205467*/                  OPC_MoveParent,
/*205468*/                  OPC_MoveParent,
/*205469*/                  OPC_CheckType, MVT::v4i64,
/*205471*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205473*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205476*/                  OPC_EmitMergeInputChains1_1,
/*205477*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VCVTPS2QQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205489*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->205515
/*205492*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205494*/                  OPC_MoveParent,
/*205495*/                  OPC_CheckType, MVT::v4i32,
/*205497*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205499*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205502*/                  OPC_EmitMergeInputChains1_1,
/*205503*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VCVTPS2DQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205515*/                0, // EndSwitchOpcode
/*205516*/              /*SwitchType*/ 29, MVT::v2f64,// ->205547
/*205518*/                OPC_MoveParent,
/*205519*/                OPC_MoveParent,
/*205520*/                OPC_MoveChild2,
/*205521*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205524*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205526*/                OPC_MoveParent,
/*205527*/                OPC_CheckType, MVT::v4i32,
/*205529*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205531*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205534*/                OPC_EmitMergeInputChains1_1,
/*205535*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                          // Dst: (VCVTPD2DQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205547*/              0, // EndSwitchType
/*205548*/            0, // EndSwitchOpcode
/*205549*/          /*SwitchOpcode*/ 115|128,2/*371*/, TARGET_VAL(X86ISD::CVTP2UI),// ->205924
/*205553*/            OPC_MoveChild0,
/*205554*/            OPC_SwitchOpcode /*2 cases */, 57|128,1/*185*/, TARGET_VAL(X86ISD::VBROADCAST),// ->205744
/*205559*/              OPC_MoveChild0,
/*205560*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*205563*/              OPC_RecordMemRef,
/*205564*/              OPC_RecordNode, // #1 = 'ld' chained node
/*205565*/              OPC_CheckFoldableChainNode,
/*205566*/              OPC_RecordChild1, // #2 = $src
/*205567*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205569*/              OPC_CheckPredicate, 9, // Predicate_load
/*205571*/              OPC_SwitchType /*2 cases */, 100, MVT::f64,// ->205674
/*205574*/                OPC_MoveParent,
/*205575*/                OPC_SwitchType /*2 cases */, 64, MVT::v4f64,// ->205642
/*205578*/                  OPC_MoveParent,
/*205579*/                  OPC_MoveParent,
/*205580*/                  OPC_MoveChild2,
/*205581*/                  OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->205615
/*205585*/                    OPC_MoveChild0,
/*205586*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205589*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205591*/                    OPC_CheckType, MVT::v8i32,
/*205593*/                    OPC_MoveParent,
/*205594*/                    OPC_MoveParent,
/*205595*/                    OPC_CheckType, MVT::v4i64,
/*205597*/                    OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205599*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205602*/                    OPC_EmitMergeInputChains1_1,
/*205603*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                              // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VCVTPD2UQQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205615*/                  /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->205641
/*205618*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205620*/                    OPC_MoveParent,
/*205621*/                    OPC_CheckType, MVT::v4i32,
/*205623*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205625*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205628*/                    OPC_EmitMergeInputChains1_1,
/*205629*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                              // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                              // Dst: (VCVTPD2UDQZ256rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205641*/                  0, // EndSwitchOpcode
/*205642*/                /*SwitchType*/ 29, MVT::v2f64,// ->205673
/*205644*/                  OPC_MoveParent,
/*205645*/                  OPC_MoveParent,
/*205646*/                  OPC_MoveChild2,
/*205647*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205650*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205652*/                  OPC_MoveParent,
/*205653*/                  OPC_CheckType, MVT::v4i32,
/*205655*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205657*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205660*/                  OPC_EmitMergeInputChains1_1,
/*205661*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTPD2UDQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205673*/                0, // EndSwitchType
/*205674*/              /*SwitchType*/ 67, MVT::f32,// ->205743
/*205676*/                OPC_MoveParent,
/*205677*/                OPC_CheckType, MVT::v4f32,
/*205679*/                OPC_MoveParent,
/*205680*/                OPC_MoveParent,
/*205681*/                OPC_MoveChild2,
/*205682*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->205716
/*205686*/                  OPC_MoveChild0,
/*205687*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205690*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205692*/                  OPC_CheckType, MVT::v8i32,
/*205694*/                  OPC_MoveParent,
/*205695*/                  OPC_MoveParent,
/*205696*/                  OPC_CheckType, MVT::v4i64,
/*205698*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205700*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205703*/                  OPC_EmitMergeInputChains1_1,
/*205704*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTPS2UQQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205716*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->205742
/*205719*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205721*/                  OPC_MoveParent,
/*205722*/                  OPC_CheckType, MVT::v4i32,
/*205724*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205726*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205729*/                  OPC_EmitMergeInputChains1_1,
/*205730*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTPS2UDQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205742*/                0, // EndSwitchOpcode
/*205743*/              0, // EndSwitchType
/*205744*/            /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(ISD::LOAD),// ->205923
/*205748*/              OPC_RecordMemRef,
/*205749*/              OPC_RecordNode, // #1 = 'ld' chained node
/*205750*/              OPC_CheckFoldableChainNode,
/*205751*/              OPC_RecordChild1, // #2 = $src
/*205752*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205754*/              OPC_CheckPredicate, 9, // Predicate_load
/*205756*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*205758*/              OPC_SwitchType /*3 cases */, 64, MVT::v4f64,// ->205825
/*205761*/                OPC_MoveParent,
/*205762*/                OPC_MoveParent,
/*205763*/                OPC_MoveChild2,
/*205764*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->205798
/*205768*/                  OPC_MoveChild0,
/*205769*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205772*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205774*/                  OPC_CheckType, MVT::v8i32,
/*205776*/                  OPC_MoveParent,
/*205777*/                  OPC_MoveParent,
/*205778*/                  OPC_CheckType, MVT::v4i64,
/*205780*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205782*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205785*/                  OPC_EmitMergeInputChains1_1,
/*205786*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VCVTPD2UQQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205798*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->205824
/*205801*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205803*/                  OPC_MoveParent,
/*205804*/                  OPC_CheckType, MVT::v4i32,
/*205806*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205808*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205811*/                  OPC_EmitMergeInputChains1_1,
/*205812*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VCVTPD2UDQZ256rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205824*/                0, // EndSwitchOpcode
/*205825*/              /*SwitchType*/ 64, MVT::v4f32,// ->205891
/*205827*/                OPC_MoveParent,
/*205828*/                OPC_MoveParent,
/*205829*/                OPC_MoveChild2,
/*205830*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->205864
/*205834*/                  OPC_MoveChild0,
/*205835*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205838*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205840*/                  OPC_CheckType, MVT::v8i32,
/*205842*/                  OPC_MoveParent,
/*205843*/                  OPC_MoveParent,
/*205844*/                  OPC_CheckType, MVT::v4i64,
/*205846*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205848*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205851*/                  OPC_EmitMergeInputChains1_1,
/*205852*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VCVTPS2UQQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205864*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->205890
/*205867*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205869*/                  OPC_MoveParent,
/*205870*/                  OPC_CheckType, MVT::v4i32,
/*205872*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205874*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205877*/                  OPC_EmitMergeInputChains1_1,
/*205878*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VCVTPS2UDQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205890*/                0, // EndSwitchOpcode
/*205891*/              /*SwitchType*/ 29, MVT::v2f64,// ->205922
/*205893*/                OPC_MoveParent,
/*205894*/                OPC_MoveParent,
/*205895*/                OPC_MoveChild2,
/*205896*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205899*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205901*/                OPC_MoveParent,
/*205902*/                OPC_CheckType, MVT::v4i32,
/*205904*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205906*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205909*/                OPC_EmitMergeInputChains1_1,
/*205910*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                          // Dst: (VCVTPD2UDQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205922*/              0, // EndSwitchType
/*205923*/            0, // EndSwitchOpcode
/*205924*/          /*SwitchOpcode*/ 115|128,2/*371*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->206299
/*205928*/            OPC_MoveChild0,
/*205929*/            OPC_SwitchOpcode /*2 cases */, 57|128,1/*185*/, TARGET_VAL(X86ISD::VBROADCAST),// ->206119
/*205934*/              OPC_MoveChild0,
/*205935*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*205938*/              OPC_RecordMemRef,
/*205939*/              OPC_RecordNode, // #1 = 'ld' chained node
/*205940*/              OPC_CheckFoldableChainNode,
/*205941*/              OPC_RecordChild1, // #2 = $src
/*205942*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205944*/              OPC_CheckPredicate, 9, // Predicate_load
/*205946*/              OPC_SwitchType /*2 cases */, 100, MVT::f64,// ->206049
/*205949*/                OPC_MoveParent,
/*205950*/                OPC_SwitchType /*2 cases */, 64, MVT::v4f64,// ->206017
/*205953*/                  OPC_MoveParent,
/*205954*/                  OPC_MoveParent,
/*205955*/                  OPC_MoveChild2,
/*205956*/                  OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->205990
/*205960*/                    OPC_MoveChild0,
/*205961*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*205964*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205966*/                    OPC_CheckType, MVT::v8i32,
/*205968*/                    OPC_MoveParent,
/*205969*/                    OPC_MoveParent,
/*205970*/                    OPC_CheckType, MVT::v4i64,
/*205972*/                    OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205974*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205977*/                    OPC_EmitMergeInputChains1_1,
/*205978*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                              // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VCVTTPD2QQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205990*/                  /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->206016
/*205993*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*205995*/                    OPC_MoveParent,
/*205996*/                    OPC_CheckType, MVT::v4i32,
/*205998*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206000*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206003*/                    OPC_EmitMergeInputChains1_1,
/*206004*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                              // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                              // Dst: (VCVTTPD2DQZ256rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206016*/                  0, // EndSwitchOpcode
/*206017*/                /*SwitchType*/ 29, MVT::v2f64,// ->206048
/*206019*/                  OPC_MoveParent,
/*206020*/                  OPC_MoveParent,
/*206021*/                  OPC_MoveChild2,
/*206022*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206025*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206027*/                  OPC_MoveParent,
/*206028*/                  OPC_CheckType, MVT::v4i32,
/*206030*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206032*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206035*/                  OPC_EmitMergeInputChains1_1,
/*206036*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTTPD2DQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206048*/                0, // EndSwitchType
/*206049*/              /*SwitchType*/ 67, MVT::f32,// ->206118
/*206051*/                OPC_MoveParent,
/*206052*/                OPC_CheckType, MVT::v4f32,
/*206054*/                OPC_MoveParent,
/*206055*/                OPC_MoveParent,
/*206056*/                OPC_MoveChild2,
/*206057*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->206091
/*206061*/                  OPC_MoveChild0,
/*206062*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206065*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206067*/                  OPC_CheckType, MVT::v8i32,
/*206069*/                  OPC_MoveParent,
/*206070*/                  OPC_MoveParent,
/*206071*/                  OPC_CheckType, MVT::v4i64,
/*206073*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206075*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206078*/                  OPC_EmitMergeInputChains1_1,
/*206079*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTTPS2QQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206091*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->206117
/*206094*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206096*/                  OPC_MoveParent,
/*206097*/                  OPC_CheckType, MVT::v4i32,
/*206099*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206101*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206104*/                  OPC_EmitMergeInputChains1_1,
/*206105*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTTPS2DQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206117*/                0, // EndSwitchOpcode
/*206118*/              0, // EndSwitchType
/*206119*/            /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(ISD::LOAD),// ->206298
/*206123*/              OPC_RecordMemRef,
/*206124*/              OPC_RecordNode, // #1 = 'ld' chained node
/*206125*/              OPC_CheckFoldableChainNode,
/*206126*/              OPC_RecordChild1, // #2 = $src
/*206127*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206129*/              OPC_CheckPredicate, 9, // Predicate_load
/*206131*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*206133*/              OPC_SwitchType /*3 cases */, 64, MVT::v4f64,// ->206200
/*206136*/                OPC_MoveParent,
/*206137*/                OPC_MoveParent,
/*206138*/                OPC_MoveChild2,
/*206139*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->206173
/*206143*/                  OPC_MoveChild0,
/*206144*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206147*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206149*/                  OPC_CheckType, MVT::v8i32,
/*206151*/                  OPC_MoveParent,
/*206152*/                  OPC_MoveParent,
/*206153*/                  OPC_CheckType, MVT::v4i64,
/*206155*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206157*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206160*/                  OPC_EmitMergeInputChains1_1,
/*206161*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VCVTTPD2QQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206173*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->206199
/*206176*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206178*/                  OPC_MoveParent,
/*206179*/                  OPC_CheckType, MVT::v4i32,
/*206181*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206183*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206186*/                  OPC_EmitMergeInputChains1_1,
/*206187*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VCVTTPD2DQZ256rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206199*/                0, // EndSwitchOpcode
/*206200*/              /*SwitchType*/ 64, MVT::v4f32,// ->206266
/*206202*/                OPC_MoveParent,
/*206203*/                OPC_MoveParent,
/*206204*/                OPC_MoveChild2,
/*206205*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->206239
/*206209*/                  OPC_MoveChild0,
/*206210*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206213*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206215*/                  OPC_CheckType, MVT::v8i32,
/*206217*/                  OPC_MoveParent,
/*206218*/                  OPC_MoveParent,
/*206219*/                  OPC_CheckType, MVT::v4i64,
/*206221*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206223*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206226*/                  OPC_EmitMergeInputChains1_1,
/*206227*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VCVTTPS2QQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206239*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->206265
/*206242*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206244*/                  OPC_MoveParent,
/*206245*/                  OPC_CheckType, MVT::v4i32,
/*206247*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206249*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206252*/                  OPC_EmitMergeInputChains1_1,
/*206253*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VCVTTPS2DQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206265*/                0, // EndSwitchOpcode
/*206266*/              /*SwitchType*/ 29, MVT::v2f64,// ->206297
/*206268*/                OPC_MoveParent,
/*206269*/                OPC_MoveParent,
/*206270*/                OPC_MoveChild2,
/*206271*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206274*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206276*/                OPC_MoveParent,
/*206277*/                OPC_CheckType, MVT::v4i32,
/*206279*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206281*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206284*/                OPC_EmitMergeInputChains1_1,
/*206285*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                          // Dst: (VCVTTPD2DQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206297*/              0, // EndSwitchType
/*206298*/            0, // EndSwitchOpcode
/*206299*/          /*SwitchOpcode*/ 115|128,2/*371*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->206674
/*206303*/            OPC_MoveChild0,
/*206304*/            OPC_SwitchOpcode /*2 cases */, 57|128,1/*185*/, TARGET_VAL(X86ISD::VBROADCAST),// ->206494
/*206309*/              OPC_MoveChild0,
/*206310*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*206313*/              OPC_RecordMemRef,
/*206314*/              OPC_RecordNode, // #1 = 'ld' chained node
/*206315*/              OPC_CheckFoldableChainNode,
/*206316*/              OPC_RecordChild1, // #2 = $src
/*206317*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206319*/              OPC_CheckPredicate, 9, // Predicate_load
/*206321*/              OPC_SwitchType /*2 cases */, 100, MVT::f64,// ->206424
/*206324*/                OPC_MoveParent,
/*206325*/                OPC_SwitchType /*2 cases */, 64, MVT::v4f64,// ->206392
/*206328*/                  OPC_MoveParent,
/*206329*/                  OPC_MoveParent,
/*206330*/                  OPC_MoveChild2,
/*206331*/                  OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->206365
/*206335*/                    OPC_MoveChild0,
/*206336*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206339*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206341*/                    OPC_CheckType, MVT::v8i32,
/*206343*/                    OPC_MoveParent,
/*206344*/                    OPC_MoveParent,
/*206345*/                    OPC_CheckType, MVT::v4i64,
/*206347*/                    OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206349*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206352*/                    OPC_EmitMergeInputChains1_1,
/*206353*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                              // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VCVTTPD2UQQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206365*/                  /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->206391
/*206368*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206370*/                    OPC_MoveParent,
/*206371*/                    OPC_CheckType, MVT::v4i32,
/*206373*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206375*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206378*/                    OPC_EmitMergeInputChains1_1,
/*206379*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                              // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                              // Dst: (VCVTTPD2UDQZ256rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206391*/                  0, // EndSwitchOpcode
/*206392*/                /*SwitchType*/ 29, MVT::v2f64,// ->206423
/*206394*/                  OPC_MoveParent,
/*206395*/                  OPC_MoveParent,
/*206396*/                  OPC_MoveChild2,
/*206397*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206400*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206402*/                  OPC_MoveParent,
/*206403*/                  OPC_CheckType, MVT::v4i32,
/*206405*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206407*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206410*/                  OPC_EmitMergeInputChains1_1,
/*206411*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTTPD2UDQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206423*/                0, // EndSwitchType
/*206424*/              /*SwitchType*/ 67, MVT::f32,// ->206493
/*206426*/                OPC_MoveParent,
/*206427*/                OPC_CheckType, MVT::v4f32,
/*206429*/                OPC_MoveParent,
/*206430*/                OPC_MoveParent,
/*206431*/                OPC_MoveChild2,
/*206432*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->206466
/*206436*/                  OPC_MoveChild0,
/*206437*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206440*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206442*/                  OPC_CheckType, MVT::v8i32,
/*206444*/                  OPC_MoveParent,
/*206445*/                  OPC_MoveParent,
/*206446*/                  OPC_CheckType, MVT::v4i64,
/*206448*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206450*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206453*/                  OPC_EmitMergeInputChains1_1,
/*206454*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTTPS2UQQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206466*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->206492
/*206469*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206471*/                  OPC_MoveParent,
/*206472*/                  OPC_CheckType, MVT::v4i32,
/*206474*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206476*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206479*/                  OPC_EmitMergeInputChains1_1,
/*206480*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTTPS2UDQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206492*/                0, // EndSwitchOpcode
/*206493*/              0, // EndSwitchType
/*206494*/            /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(ISD::LOAD),// ->206673
/*206498*/              OPC_RecordMemRef,
/*206499*/              OPC_RecordNode, // #1 = 'ld' chained node
/*206500*/              OPC_CheckFoldableChainNode,
/*206501*/              OPC_RecordChild1, // #2 = $src
/*206502*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206504*/              OPC_CheckPredicate, 9, // Predicate_load
/*206506*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*206508*/              OPC_SwitchType /*3 cases */, 64, MVT::v4f64,// ->206575
/*206511*/                OPC_MoveParent,
/*206512*/                OPC_MoveParent,
/*206513*/                OPC_MoveChild2,
/*206514*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->206548
/*206518*/                  OPC_MoveChild0,
/*206519*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206522*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206524*/                  OPC_CheckType, MVT::v8i32,
/*206526*/                  OPC_MoveParent,
/*206527*/                  OPC_MoveParent,
/*206528*/                  OPC_CheckType, MVT::v4i64,
/*206530*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206532*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206535*/                  OPC_EmitMergeInputChains1_1,
/*206536*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VCVTTPD2UQQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206548*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->206574
/*206551*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206553*/                  OPC_MoveParent,
/*206554*/                  OPC_CheckType, MVT::v4i32,
/*206556*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206558*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206561*/                  OPC_EmitMergeInputChains1_1,
/*206562*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VCVTTPD2UDQZ256rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206574*/                0, // EndSwitchOpcode
/*206575*/              /*SwitchType*/ 64, MVT::v4f32,// ->206641
/*206577*/                OPC_MoveParent,
/*206578*/                OPC_MoveParent,
/*206579*/                OPC_MoveChild2,
/*206580*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->206614
/*206584*/                  OPC_MoveChild0,
/*206585*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206588*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206590*/                  OPC_CheckType, MVT::v8i32,
/*206592*/                  OPC_MoveParent,
/*206593*/                  OPC_MoveParent,
/*206594*/                  OPC_CheckType, MVT::v4i64,
/*206596*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206598*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206601*/                  OPC_EmitMergeInputChains1_1,
/*206602*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VCVTTPS2UQQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206614*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->206640
/*206617*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206619*/                  OPC_MoveParent,
/*206620*/                  OPC_CheckType, MVT::v4i32,
/*206622*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206624*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206627*/                  OPC_EmitMergeInputChains1_1,
/*206628*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VCVTTPS2UDQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206640*/                0, // EndSwitchOpcode
/*206641*/              /*SwitchType*/ 29, MVT::v2f64,// ->206672
/*206643*/                OPC_MoveParent,
/*206644*/                OPC_MoveParent,
/*206645*/                OPC_MoveChild2,
/*206646*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206649*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206651*/                OPC_MoveParent,
/*206652*/                OPC_CheckType, MVT::v4i32,
/*206654*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206656*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206659*/                OPC_EmitMergeInputChains1_1,
/*206660*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                          // Dst: (VCVTTPD2UDQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206672*/              0, // EndSwitchType
/*206673*/            0, // EndSwitchOpcode
/*206674*/          /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::SHUF128),// ->206792
/*206677*/            OPC_RecordChild0, // #1 = $src1
/*206678*/            OPC_MoveChild1,
/*206679*/            OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::LOAD),// ->206739
/*206683*/              OPC_RecordMemRef,
/*206684*/              OPC_RecordNode, // #2 = 'ld' chained node
/*206685*/              OPC_CheckFoldableChainNode,
/*206686*/              OPC_RecordChild1, // #3 = $src2
/*206687*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206689*/              OPC_CheckPredicate, 9, // Predicate_load
/*206691*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*206693*/              OPC_MoveParent,
/*206694*/              OPC_RecordChild2, // #4 = $src3
/*206695*/              OPC_MoveChild2,
/*206696*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*206699*/              OPC_MoveParent,
/*206700*/              OPC_MoveParent,
/*206701*/              OPC_MoveChild2,
/*206702*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*206705*/              OPC_MoveChild0,
/*206706*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206709*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206711*/              OPC_CheckType, MVT::v8i32,
/*206713*/              OPC_MoveParent,
/*206714*/              OPC_MoveParent,
/*206715*/              OPC_CheckType, MVT::v4i64,
/*206717*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*206719*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*206722*/              OPC_EmitMergeInputChains1_2,
/*206723*/              OPC_EmitConvertToTarget, 4,
/*206725*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VSHUFI64X2Z256rmikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*206739*/            /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VBROADCAST),// ->206791
/*206742*/              OPC_MoveChild0,
/*206743*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*206746*/              OPC_RecordMemRef,
/*206747*/              OPC_RecordNode, // #2 = 'ld' chained node
/*206748*/              OPC_CheckFoldableChainNode,
/*206749*/              OPC_RecordChild1, // #3 = $src2
/*206750*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206752*/              OPC_CheckPredicate, 9, // Predicate_load
/*206754*/              OPC_CheckType, MVT::i64,
/*206756*/              OPC_MoveParent,
/*206757*/              OPC_MoveParent,
/*206758*/              OPC_RecordChild2, // #4 = $src3
/*206759*/              OPC_MoveChild2,
/*206760*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*206763*/              OPC_MoveParent,
/*206764*/              OPC_MoveParent,
/*206765*/              OPC_RecordChild2, // #5 = $src0
/*206766*/              OPC_CheckType, MVT::v4i64,
/*206768*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*206770*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*206773*/              OPC_EmitMergeInputChains1_2,
/*206774*/              OPC_EmitConvertToTarget, 4,
/*206776*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                        // Dst: (VSHUFI64X2Z256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*206791*/            0, // EndSwitchOpcode
/*206792*/          /*SwitchOpcode*/ 24|128,2/*280*/, TARGET_VAL(X86ISD::VALIGN),// ->207076
/*206796*/            OPC_RecordChild0, // #1 = $src1
/*206797*/            OPC_MoveChild1,
/*206798*/            OPC_SwitchOpcode /*3 cases */, 86, TARGET_VAL(ISD::BITCAST),// ->206888
/*206802*/              OPC_MoveChild0,
/*206803*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*206806*/              OPC_RecordMemRef,
/*206807*/              OPC_RecordNode, // #2 = 'ld' chained node
/*206808*/              OPC_CheckFoldableChainNode,
/*206809*/              OPC_RecordChild1, // #3 = $src2
/*206810*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206812*/              OPC_CheckPredicate, 9, // Predicate_load
/*206814*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*206816*/              OPC_CheckType, MVT::v2i64,
/*206818*/              OPC_MoveParent,
/*206819*/              OPC_MoveParent,
/*206820*/              OPC_RecordChild2, // #4 = $src3
/*206821*/              OPC_MoveChild2,
/*206822*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*206825*/              OPC_MoveParent,
/*206826*/              OPC_MoveParent,
/*206827*/              OPC_Scope, 31, /*->206860*/ // 2 children in Scope
/*206829*/                OPC_MoveChild2,
/*206830*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206833*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206835*/                OPC_MoveParent,
/*206836*/                OPC_CheckType, MVT::v4i32,
/*206838*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*206840*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*206843*/                OPC_EmitMergeInputChains1_2,
/*206844*/                OPC_EmitConvertToTarget, 4,
/*206846*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VALIGNDZ128rmikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*206860*/              /*Scope*/ 26, /*->206887*/
/*206861*/                OPC_RecordChild2, // #5 = $src0
/*206862*/                OPC_CheckType, MVT::v4i32,
/*206864*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*206866*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*206869*/                OPC_EmitMergeInputChains1_2,
/*206870*/                OPC_EmitConvertToTarget, 4,
/*206872*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VALIGNDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*206887*/              0, /*End of Scope*/
/*206888*/            /*SwitchOpcode*/ 125, TARGET_VAL(X86ISD::VBROADCAST),// ->207016
/*206891*/              OPC_MoveChild0,
/*206892*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*206895*/              OPC_RecordMemRef,
/*206896*/              OPC_RecordNode, // #2 = 'ld' chained node
/*206897*/              OPC_CheckFoldableChainNode,
/*206898*/              OPC_RecordChild1, // #3 = $src2
/*206899*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206901*/              OPC_SwitchType /*2 cases */, 72, MVT::i32,// ->206976
/*206904*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*206906*/                OPC_MoveParent,
/*206907*/                OPC_MoveParent,
/*206908*/                OPC_RecordChild2, // #4 = $src3
/*206909*/                OPC_MoveChild2,
/*206910*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*206913*/                OPC_MoveParent,
/*206914*/                OPC_MoveParent,
/*206915*/                OPC_Scope, 31, /*->206948*/ // 2 children in Scope
/*206917*/                  OPC_MoveChild2,
/*206918*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*206921*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*206923*/                  OPC_MoveParent,
/*206924*/                  OPC_CheckType, MVT::v4i32,
/*206926*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*206928*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*206931*/                  OPC_EmitMergeInputChains1_2,
/*206932*/                  OPC_EmitConvertToTarget, 4,
/*206934*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                            // Dst: (VALIGNDZ128rmbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*206948*/                /*Scope*/ 26, /*->206975*/
/*206949*/                  OPC_RecordChild2, // #5 = $src0
/*206950*/                  OPC_CheckType, MVT::v4i32,
/*206952*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*206954*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*206957*/                  OPC_EmitMergeInputChains1_2,
/*206958*/                  OPC_EmitConvertToTarget, 4,
/*206960*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                            // Dst: (VALIGNDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*206975*/                0, /*End of Scope*/
/*206976*/              /*SwitchType*/ 37, MVT::i64,// ->207015
/*206978*/                OPC_CheckPredicate, 9, // Predicate_load
/*206980*/                OPC_MoveParent,
/*206981*/                OPC_MoveParent,
/*206982*/                OPC_RecordChild2, // #4 = $src3
/*206983*/                OPC_MoveChild2,
/*206984*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*206987*/                OPC_MoveParent,
/*206988*/                OPC_MoveParent,
/*206989*/                OPC_RecordChild2, // #5 = $src0
/*206990*/                OPC_CheckType, MVT::v4i64,
/*206992*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*206994*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*206997*/                OPC_EmitMergeInputChains1_2,
/*206998*/                OPC_EmitConvertToTarget, 4,
/*207000*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VALIGNQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*207015*/              0, // EndSwitchType
/*207016*/            /*SwitchOpcode*/ 56, TARGET_VAL(ISD::LOAD),// ->207075
/*207019*/              OPC_RecordMemRef,
/*207020*/              OPC_RecordNode, // #2 = 'ld' chained node
/*207021*/              OPC_CheckFoldableChainNode,
/*207022*/              OPC_RecordChild1, // #3 = $src2
/*207023*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207025*/              OPC_CheckPredicate, 9, // Predicate_load
/*207027*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*207029*/              OPC_MoveParent,
/*207030*/              OPC_RecordChild2, // #4 = $src3
/*207031*/              OPC_MoveChild2,
/*207032*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*207035*/              OPC_MoveParent,
/*207036*/              OPC_MoveParent,
/*207037*/              OPC_MoveChild2,
/*207038*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*207041*/              OPC_MoveChild0,
/*207042*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207045*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207047*/              OPC_CheckType, MVT::v8i32,
/*207049*/              OPC_MoveParent,
/*207050*/              OPC_MoveParent,
/*207051*/              OPC_CheckType, MVT::v4i64,
/*207053*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207055*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*207058*/              OPC_EmitMergeInputChains1_2,
/*207059*/              OPC_EmitConvertToTarget, 4,
/*207061*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VALIGNQZ256rmikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*207075*/            0, // EndSwitchOpcode
/*207076*/          /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::ABS),// ->207271
/*207080*/            OPC_MoveChild0,
/*207081*/            OPC_SwitchOpcode /*3 cases */, 87, TARGET_VAL(X86ISD::VBROADCAST),// ->207172
/*207085*/              OPC_MoveChild0,
/*207086*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*207089*/              OPC_RecordMemRef,
/*207090*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207091*/              OPC_CheckFoldableChainNode,
/*207092*/              OPC_RecordChild1, // #2 = $src1
/*207093*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207095*/              OPC_SwitchType /*2 cases */, 39, MVT::i64,// ->207137
/*207098*/                OPC_CheckPredicate, 9, // Predicate_load
/*207100*/                OPC_MoveParent,
/*207101*/                OPC_MoveParent,
/*207102*/                OPC_MoveParent,
/*207103*/                OPC_MoveChild2,
/*207104*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*207107*/                OPC_MoveChild0,
/*207108*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207111*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207113*/                OPC_CheckType, MVT::v8i32,
/*207115*/                OPC_MoveParent,
/*207116*/                OPC_MoveParent,
/*207117*/                OPC_CheckType, MVT::v4i64,
/*207119*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207121*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207124*/                OPC_EmitMergeInputChains1_1,
/*207125*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPABSQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207137*/              /*SwitchType*/ 32, MVT::i32,// ->207171
/*207139*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*207141*/                OPC_MoveParent,
/*207142*/                OPC_MoveParent,
/*207143*/                OPC_MoveParent,
/*207144*/                OPC_MoveChild2,
/*207145*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207148*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207150*/                OPC_MoveParent,
/*207151*/                OPC_CheckType, MVT::v4i32,
/*207153*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207155*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207158*/                OPC_EmitMergeInputChains1_1,
/*207159*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPABSDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207171*/              0, // EndSwitchType
/*207172*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->207221
/*207175*/              OPC_RecordMemRef,
/*207176*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207177*/              OPC_CheckFoldableChainNode,
/*207178*/              OPC_RecordChild1, // #2 = $src1
/*207179*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207181*/              OPC_CheckPredicate, 9, // Predicate_load
/*207183*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*207185*/              OPC_MoveParent,
/*207186*/              OPC_MoveParent,
/*207187*/              OPC_MoveChild2,
/*207188*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*207191*/              OPC_MoveChild0,
/*207192*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207195*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207197*/              OPC_CheckType, MVT::v8i32,
/*207199*/              OPC_MoveParent,
/*207200*/              OPC_MoveParent,
/*207201*/              OPC_CheckType, MVT::v4i64,
/*207203*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207205*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207208*/              OPC_EmitMergeInputChains1_1,
/*207209*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPABSQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207221*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::BITCAST),// ->207270
/*207224*/              OPC_MoveChild0,
/*207225*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*207228*/              OPC_RecordMemRef,
/*207229*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207230*/              OPC_CheckFoldableChainNode,
/*207231*/              OPC_RecordChild1, // #2 = $src1
/*207232*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207234*/              OPC_CheckPredicate, 9, // Predicate_load
/*207236*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*207238*/              OPC_CheckType, MVT::v2i64,
/*207240*/              OPC_MoveParent,
/*207241*/              OPC_MoveParent,
/*207242*/              OPC_MoveParent,
/*207243*/              OPC_MoveChild2,
/*207244*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207247*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207249*/              OPC_MoveParent,
/*207250*/              OPC_CheckType, MVT::v4i32,
/*207252*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207254*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207257*/              OPC_EmitMergeInputChains1_1,
/*207258*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPABSDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207270*/            0, // EndSwitchOpcode
/*207271*/          /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::CTLZ),// ->207466
/*207275*/            OPC_MoveChild0,
/*207276*/            OPC_SwitchOpcode /*3 cases */, 87, TARGET_VAL(X86ISD::VBROADCAST),// ->207367
/*207280*/              OPC_MoveChild0,
/*207281*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*207284*/              OPC_RecordMemRef,
/*207285*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207286*/              OPC_CheckFoldableChainNode,
/*207287*/              OPC_RecordChild1, // #2 = $src1
/*207288*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207290*/              OPC_SwitchType /*2 cases */, 39, MVT::i64,// ->207332
/*207293*/                OPC_CheckPredicate, 9, // Predicate_load
/*207295*/                OPC_MoveParent,
/*207296*/                OPC_MoveParent,
/*207297*/                OPC_MoveParent,
/*207298*/                OPC_MoveChild2,
/*207299*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*207302*/                OPC_MoveChild0,
/*207303*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207306*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207308*/                OPC_CheckType, MVT::v8i32,
/*207310*/                OPC_MoveParent,
/*207311*/                OPC_MoveParent,
/*207312*/                OPC_CheckType, MVT::v4i64,
/*207314*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207316*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207319*/                OPC_EmitMergeInputChains1_1,
/*207320*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPLZCNTQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207332*/              /*SwitchType*/ 32, MVT::i32,// ->207366
/*207334*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*207336*/                OPC_MoveParent,
/*207337*/                OPC_MoveParent,
/*207338*/                OPC_MoveParent,
/*207339*/                OPC_MoveChild2,
/*207340*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207343*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207345*/                OPC_MoveParent,
/*207346*/                OPC_CheckType, MVT::v4i32,
/*207348*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207350*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207353*/                OPC_EmitMergeInputChains1_1,
/*207354*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPLZCNTDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207366*/              0, // EndSwitchType
/*207367*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->207416
/*207370*/              OPC_RecordMemRef,
/*207371*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207372*/              OPC_CheckFoldableChainNode,
/*207373*/              OPC_RecordChild1, // #2 = $src1
/*207374*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207376*/              OPC_CheckPredicate, 9, // Predicate_load
/*207378*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*207380*/              OPC_MoveParent,
/*207381*/              OPC_MoveParent,
/*207382*/              OPC_MoveChild2,
/*207383*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*207386*/              OPC_MoveChild0,
/*207387*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207390*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207392*/              OPC_CheckType, MVT::v8i32,
/*207394*/              OPC_MoveParent,
/*207395*/              OPC_MoveParent,
/*207396*/              OPC_CheckType, MVT::v4i64,
/*207398*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207400*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207403*/              OPC_EmitMergeInputChains1_1,
/*207404*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPLZCNTQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207416*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::BITCAST),// ->207465
/*207419*/              OPC_MoveChild0,
/*207420*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*207423*/              OPC_RecordMemRef,
/*207424*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207425*/              OPC_CheckFoldableChainNode,
/*207426*/              OPC_RecordChild1, // #2 = $src1
/*207427*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207429*/              OPC_CheckPredicate, 9, // Predicate_load
/*207431*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*207433*/              OPC_CheckType, MVT::v2i64,
/*207435*/              OPC_MoveParent,
/*207436*/              OPC_MoveParent,
/*207437*/              OPC_MoveParent,
/*207438*/              OPC_MoveChild2,
/*207439*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207442*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207444*/              OPC_MoveParent,
/*207445*/              OPC_CheckType, MVT::v4i32,
/*207447*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207449*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207452*/              OPC_EmitMergeInputChains1_1,
/*207453*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPLZCNTDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207465*/            0, // EndSwitchOpcode
/*207466*/          /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(X86ISD::CONFLICT),// ->207661
/*207470*/            OPC_MoveChild0,
/*207471*/            OPC_SwitchOpcode /*3 cases */, 87, TARGET_VAL(X86ISD::VBROADCAST),// ->207562
/*207475*/              OPC_MoveChild0,
/*207476*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*207479*/              OPC_RecordMemRef,
/*207480*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207481*/              OPC_CheckFoldableChainNode,
/*207482*/              OPC_RecordChild1, // #2 = $src1
/*207483*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207485*/              OPC_SwitchType /*2 cases */, 39, MVT::i64,// ->207527
/*207488*/                OPC_CheckPredicate, 9, // Predicate_load
/*207490*/                OPC_MoveParent,
/*207491*/                OPC_MoveParent,
/*207492*/                OPC_MoveParent,
/*207493*/                OPC_MoveChild2,
/*207494*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*207497*/                OPC_MoveChild0,
/*207498*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207501*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207503*/                OPC_CheckType, MVT::v8i32,
/*207505*/                OPC_MoveParent,
/*207506*/                OPC_MoveParent,
/*207507*/                OPC_CheckType, MVT::v4i64,
/*207509*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207511*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207514*/                OPC_EmitMergeInputChains1_1,
/*207515*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPCONFLICTQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207527*/              /*SwitchType*/ 32, MVT::i32,// ->207561
/*207529*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*207531*/                OPC_MoveParent,
/*207532*/                OPC_MoveParent,
/*207533*/                OPC_MoveParent,
/*207534*/                OPC_MoveChild2,
/*207535*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207538*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207540*/                OPC_MoveParent,
/*207541*/                OPC_CheckType, MVT::v4i32,
/*207543*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207545*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207548*/                OPC_EmitMergeInputChains1_1,
/*207549*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPCONFLICTDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207561*/              0, // EndSwitchType
/*207562*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->207611
/*207565*/              OPC_RecordMemRef,
/*207566*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207567*/              OPC_CheckFoldableChainNode,
/*207568*/              OPC_RecordChild1, // #2 = $src1
/*207569*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207571*/              OPC_CheckPredicate, 9, // Predicate_load
/*207573*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*207575*/              OPC_MoveParent,
/*207576*/              OPC_MoveParent,
/*207577*/              OPC_MoveChild2,
/*207578*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*207581*/              OPC_MoveChild0,
/*207582*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207585*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207587*/              OPC_CheckType, MVT::v8i32,
/*207589*/              OPC_MoveParent,
/*207590*/              OPC_MoveParent,
/*207591*/              OPC_CheckType, MVT::v4i64,
/*207593*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207595*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207598*/              OPC_EmitMergeInputChains1_1,
/*207599*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPCONFLICTQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207611*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::BITCAST),// ->207660
/*207614*/              OPC_MoveChild0,
/*207615*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*207618*/              OPC_RecordMemRef,
/*207619*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207620*/              OPC_CheckFoldableChainNode,
/*207621*/              OPC_RecordChild1, // #2 = $src1
/*207622*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207624*/              OPC_CheckPredicate, 9, // Predicate_load
/*207626*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*207628*/              OPC_CheckType, MVT::v2i64,
/*207630*/              OPC_MoveParent,
/*207631*/              OPC_MoveParent,
/*207632*/              OPC_MoveParent,
/*207633*/              OPC_MoveChild2,
/*207634*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207637*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207639*/              OPC_MoveParent,
/*207640*/              OPC_CheckType, MVT::v4i32,
/*207642*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207644*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207647*/              OPC_EmitMergeInputChains1_1,
/*207648*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPCONFLICTDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207660*/            0, // EndSwitchOpcode
/*207661*/          /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::CTPOP),// ->207856
/*207665*/            OPC_MoveChild0,
/*207666*/            OPC_SwitchOpcode /*3 cases */, 87, TARGET_VAL(X86ISD::VBROADCAST),// ->207757
/*207670*/              OPC_MoveChild0,
/*207671*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*207674*/              OPC_RecordMemRef,
/*207675*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207676*/              OPC_CheckFoldableChainNode,
/*207677*/              OPC_RecordChild1, // #2 = $src1
/*207678*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207680*/              OPC_SwitchType /*2 cases */, 39, MVT::i64,// ->207722
/*207683*/                OPC_CheckPredicate, 9, // Predicate_load
/*207685*/                OPC_MoveParent,
/*207686*/                OPC_MoveParent,
/*207687*/                OPC_MoveParent,
/*207688*/                OPC_MoveChild2,
/*207689*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*207692*/                OPC_MoveChild0,
/*207693*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207696*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207698*/                OPC_CheckType, MVT::v8i32,
/*207700*/                OPC_MoveParent,
/*207701*/                OPC_MoveParent,
/*207702*/                OPC_CheckType, MVT::v4i64,
/*207704*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*207706*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207709*/                OPC_EmitMergeInputChains1_1,
/*207710*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPOPCNTQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207722*/              /*SwitchType*/ 32, MVT::i32,// ->207756
/*207724*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*207726*/                OPC_MoveParent,
/*207727*/                OPC_MoveParent,
/*207728*/                OPC_MoveParent,
/*207729*/                OPC_MoveChild2,
/*207730*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207733*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207735*/                OPC_MoveParent,
/*207736*/                OPC_CheckType, MVT::v4i32,
/*207738*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*207740*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207743*/                OPC_EmitMergeInputChains1_1,
/*207744*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPOPCNTDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207756*/              0, // EndSwitchType
/*207757*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->207806
/*207760*/              OPC_RecordMemRef,
/*207761*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207762*/              OPC_CheckFoldableChainNode,
/*207763*/              OPC_RecordChild1, // #2 = $src1
/*207764*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207766*/              OPC_CheckPredicate, 9, // Predicate_load
/*207768*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*207770*/              OPC_MoveParent,
/*207771*/              OPC_MoveParent,
/*207772*/              OPC_MoveChild2,
/*207773*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*207776*/              OPC_MoveChild0,
/*207777*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207780*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207782*/              OPC_CheckType, MVT::v8i32,
/*207784*/              OPC_MoveParent,
/*207785*/              OPC_MoveParent,
/*207786*/              OPC_CheckType, MVT::v4i64,
/*207788*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*207790*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207793*/              OPC_EmitMergeInputChains1_1,
/*207794*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPOPCNTQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207806*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::BITCAST),// ->207855
/*207809*/              OPC_MoveChild0,
/*207810*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*207813*/              OPC_RecordMemRef,
/*207814*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207815*/              OPC_CheckFoldableChainNode,
/*207816*/              OPC_RecordChild1, // #2 = $src1
/*207817*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207819*/              OPC_CheckPredicate, 9, // Predicate_load
/*207821*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*207823*/              OPC_CheckType, MVT::v2i64,
/*207825*/              OPC_MoveParent,
/*207826*/              OPC_MoveParent,
/*207827*/              OPC_MoveParent,
/*207828*/              OPC_MoveChild2,
/*207829*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207832*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207834*/              OPC_MoveParent,
/*207835*/              OPC_CheckType, MVT::v4i32,
/*207837*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*207839*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207842*/              OPC_EmitMergeInputChains1_1,
/*207843*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPOPCNTDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207855*/            0, // EndSwitchOpcode
/*207856*/          /*SwitchOpcode*/ 68|128,1/*196*/, TARGET_VAL(X86ISD::UNPCKL),// ->208056
/*207860*/            OPC_RecordChild0, // #1 = $src1
/*207861*/            OPC_MoveChild1,
/*207862*/            OPC_SwitchOpcode /*3 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->207955
/*207866*/              OPC_MoveChild0,
/*207867*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*207870*/              OPC_RecordMemRef,
/*207871*/              OPC_RecordNode, // #2 = 'ld' chained node
/*207872*/              OPC_CheckFoldableChainNode,
/*207873*/              OPC_RecordChild1, // #3 = $src2
/*207874*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207876*/              OPC_SwitchType /*2 cases */, 40, MVT::i64,// ->207919
/*207879*/                OPC_CheckPredicate, 9, // Predicate_load
/*207881*/                OPC_MoveParent,
/*207882*/                OPC_MoveParent,
/*207883*/                OPC_MoveParent,
/*207884*/                OPC_MoveChild2,
/*207885*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*207888*/                OPC_MoveChild0,
/*207889*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207892*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207894*/                OPC_CheckType, MVT::v8i32,
/*207896*/                OPC_MoveParent,
/*207897*/                OPC_MoveParent,
/*207898*/                OPC_CheckType, MVT::v4i64,
/*207900*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207902*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*207905*/                OPC_EmitMergeInputChains1_2,
/*207906*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPUNPCKLQDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*207919*/              /*SwitchType*/ 33, MVT::i32,// ->207954
/*207921*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*207923*/                OPC_MoveParent,
/*207924*/                OPC_MoveParent,
/*207925*/                OPC_MoveParent,
/*207926*/                OPC_MoveChild2,
/*207927*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207930*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207932*/                OPC_MoveParent,
/*207933*/                OPC_CheckType, MVT::v4i32,
/*207935*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207937*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*207940*/                OPC_EmitMergeInputChains1_2,
/*207941*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPUNPCKLDQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*207954*/              0, // EndSwitchType
/*207955*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::BITCAST),// ->208005
/*207958*/              OPC_MoveChild0,
/*207959*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*207962*/              OPC_RecordMemRef,
/*207963*/              OPC_RecordNode, // #2 = 'ld' chained node
/*207964*/              OPC_CheckFoldableChainNode,
/*207965*/              OPC_RecordChild1, // #3 = $src2
/*207966*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207968*/              OPC_CheckPredicate, 9, // Predicate_load
/*207970*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*207972*/              OPC_CheckType, MVT::v2i64,
/*207974*/              OPC_MoveParent,
/*207975*/              OPC_MoveParent,
/*207976*/              OPC_MoveParent,
/*207977*/              OPC_MoveChild2,
/*207978*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*207981*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*207983*/              OPC_MoveParent,
/*207984*/              OPC_CheckType, MVT::v4i32,
/*207986*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207988*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*207991*/              OPC_EmitMergeInputChains1_2,
/*207992*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPUNPCKLDQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208005*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->208055
/*208008*/              OPC_RecordMemRef,
/*208009*/              OPC_RecordNode, // #2 = 'ld' chained node
/*208010*/              OPC_CheckFoldableChainNode,
/*208011*/              OPC_RecordChild1, // #3 = $src2
/*208012*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208014*/              OPC_CheckPredicate, 9, // Predicate_load
/*208016*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*208018*/              OPC_MoveParent,
/*208019*/              OPC_MoveParent,
/*208020*/              OPC_MoveChild2,
/*208021*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*208024*/              OPC_MoveChild0,
/*208025*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208028*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208030*/              OPC_CheckType, MVT::v8i32,
/*208032*/              OPC_MoveParent,
/*208033*/              OPC_MoveParent,
/*208034*/              OPC_CheckType, MVT::v4i64,
/*208036*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208038*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*208041*/              OPC_EmitMergeInputChains1_2,
/*208042*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPUNPCKLQDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208055*/            0, // EndSwitchOpcode
/*208056*/          /*SwitchOpcode*/ 68|128,1/*196*/, TARGET_VAL(X86ISD::UNPCKH),// ->208256
/*208060*/            OPC_RecordChild0, // #1 = $src1
/*208061*/            OPC_MoveChild1,
/*208062*/            OPC_SwitchOpcode /*3 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->208155
/*208066*/              OPC_MoveChild0,
/*208067*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208070*/              OPC_RecordMemRef,
/*208071*/              OPC_RecordNode, // #2 = 'ld' chained node
/*208072*/              OPC_CheckFoldableChainNode,
/*208073*/              OPC_RecordChild1, // #3 = $src2
/*208074*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208076*/              OPC_SwitchType /*2 cases */, 40, MVT::i64,// ->208119
/*208079*/                OPC_CheckPredicate, 9, // Predicate_load
/*208081*/                OPC_MoveParent,
/*208082*/                OPC_MoveParent,
/*208083*/                OPC_MoveParent,
/*208084*/                OPC_MoveChild2,
/*208085*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*208088*/                OPC_MoveChild0,
/*208089*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208092*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208094*/                OPC_CheckType, MVT::v8i32,
/*208096*/                OPC_MoveParent,
/*208097*/                OPC_MoveParent,
/*208098*/                OPC_CheckType, MVT::v4i64,
/*208100*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208102*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*208105*/                OPC_EmitMergeInputChains1_2,
/*208106*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPUNPCKHQDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208119*/              /*SwitchType*/ 33, MVT::i32,// ->208154
/*208121*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*208123*/                OPC_MoveParent,
/*208124*/                OPC_MoveParent,
/*208125*/                OPC_MoveParent,
/*208126*/                OPC_MoveChild2,
/*208127*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208130*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208132*/                OPC_MoveParent,
/*208133*/                OPC_CheckType, MVT::v4i32,
/*208135*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208137*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*208140*/                OPC_EmitMergeInputChains1_2,
/*208141*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPUNPCKHDQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208154*/              0, // EndSwitchType
/*208155*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::BITCAST),// ->208205
/*208158*/              OPC_MoveChild0,
/*208159*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208162*/              OPC_RecordMemRef,
/*208163*/              OPC_RecordNode, // #2 = 'ld' chained node
/*208164*/              OPC_CheckFoldableChainNode,
/*208165*/              OPC_RecordChild1, // #3 = $src2
/*208166*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208168*/              OPC_CheckPredicate, 9, // Predicate_load
/*208170*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*208172*/              OPC_CheckType, MVT::v2i64,
/*208174*/              OPC_MoveParent,
/*208175*/              OPC_MoveParent,
/*208176*/              OPC_MoveParent,
/*208177*/              OPC_MoveChild2,
/*208178*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208181*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208183*/              OPC_MoveParent,
/*208184*/              OPC_CheckType, MVT::v4i32,
/*208186*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208188*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*208191*/              OPC_EmitMergeInputChains1_2,
/*208192*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPUNPCKHDQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208205*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->208255
/*208208*/              OPC_RecordMemRef,
/*208209*/              OPC_RecordNode, // #2 = 'ld' chained node
/*208210*/              OPC_CheckFoldableChainNode,
/*208211*/              OPC_RecordChild1, // #3 = $src2
/*208212*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208214*/              OPC_CheckPredicate, 9, // Predicate_load
/*208216*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*208218*/              OPC_MoveParent,
/*208219*/              OPC_MoveParent,
/*208220*/              OPC_MoveChild2,
/*208221*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*208224*/              OPC_MoveChild0,
/*208225*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208228*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208230*/              OPC_CheckType, MVT::v8i32,
/*208232*/              OPC_MoveParent,
/*208233*/              OPC_MoveParent,
/*208234*/              OPC_CheckType, MVT::v4i64,
/*208236*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208238*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*208241*/              OPC_EmitMergeInputChains1_2,
/*208242*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPUNPCKHQDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208255*/            0, // EndSwitchOpcode
/*208256*/          /*SwitchOpcode*/ 36|128,13/*1700*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->209960
/*208260*/            OPC_Scope, 127, /*->208389*/ // 18 children in Scope
/*208262*/              OPC_RecordChild0, // #1 = $src1
/*208263*/              OPC_RecordChild1, // #2 = $src2
/*208264*/              OPC_MoveChild2,
/*208265*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::BITCAST),// ->208328
/*208269*/                OPC_MoveChild0,
/*208270*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208273*/                OPC_RecordMemRef,
/*208274*/                OPC_RecordNode, // #3 = 'ld' chained node
/*208275*/                OPC_CheckFoldableChainNode,
/*208276*/                OPC_RecordChild1, // #4 = $src3
/*208277*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208279*/                OPC_CheckPredicate, 9, // Predicate_load
/*208281*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*208283*/                OPC_CheckType, MVT::v2i64,
/*208285*/                OPC_MoveParent,
/*208286*/                OPC_MoveParent,
/*208287*/                OPC_RecordChild3, // #5 = $src4
/*208288*/                OPC_MoveChild3,
/*208289*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208292*/                OPC_MoveParent,
/*208293*/                OPC_MoveParent,
/*208294*/                OPC_MoveChild2,
/*208295*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208298*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208300*/                OPC_MoveParent,
/*208301*/                OPC_CheckType, MVT::v4i32,
/*208303*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208305*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*208308*/                OPC_EmitMergeInputChains, 1, 3, 
/*208311*/                OPC_EmitConvertToTarget, 5,
/*208313*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPTERNLOGDZ128rmikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*208328*/              /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST),// ->208388
/*208331*/                OPC_MoveChild0,
/*208332*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208335*/                OPC_RecordMemRef,
/*208336*/                OPC_RecordNode, // #3 = 'ld' chained node
/*208337*/                OPC_CheckFoldableChainNode,
/*208338*/                OPC_RecordChild1, // #4 = $src3
/*208339*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208341*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*208343*/                OPC_CheckType, MVT::i32,
/*208345*/                OPC_MoveParent,
/*208346*/                OPC_MoveParent,
/*208347*/                OPC_RecordChild3, // #5 = $src4
/*208348*/                OPC_MoveChild3,
/*208349*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208352*/                OPC_MoveParent,
/*208353*/                OPC_MoveParent,
/*208354*/                OPC_MoveChild2,
/*208355*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208358*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208360*/                OPC_MoveParent,
/*208361*/                OPC_CheckType, MVT::v4i32,
/*208363*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208365*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*208368*/                OPC_EmitMergeInputChains, 1, 3, 
/*208371*/                OPC_EmitConvertToTarget, 5,
/*208373*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPTERNLOGDZ128rmbikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*208388*/              0, // EndSwitchOpcode
/*208389*/            /*Scope*/ 66, /*->208456*/
/*208390*/              OPC_MoveChild0,
/*208391*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*208394*/              OPC_MoveChild0,
/*208395*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208398*/              OPC_RecordMemRef,
/*208399*/              OPC_RecordNode, // #1 = 'ld' chained node
/*208400*/              OPC_CheckFoldableChainNode,
/*208401*/              OPC_RecordChild1, // #2 = $src3
/*208402*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208404*/              OPC_CheckPredicate, 9, // Predicate_load
/*208406*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*208408*/              OPC_CheckType, MVT::v2i64,
/*208410*/              OPC_MoveParent,
/*208411*/              OPC_MoveParent,
/*208412*/              OPC_RecordChild1, // #3 = $src2
/*208413*/              OPC_RecordChild2, // #4 = $src1
/*208414*/              OPC_RecordChild3, // #5 = $src4
/*208415*/              OPC_MoveChild3,
/*208416*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208419*/              OPC_MoveParent,
/*208420*/              OPC_MoveParent,
/*208421*/              OPC_MoveChild2,
/*208422*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208425*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208427*/              OPC_MoveParent,
/*208428*/              OPC_CheckType, MVT::v4i32,
/*208430*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208432*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*208435*/              OPC_EmitMergeInputChains1_1,
/*208436*/              OPC_EmitConvertToTarget, 5,
/*208438*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*208441*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPTERNLOGDZ128rmikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*208456*/            /*Scope*/ 66, /*->208523*/
/*208457*/              OPC_RecordChild0, // #1 = $src1
/*208458*/              OPC_MoveChild1,
/*208459*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*208462*/              OPC_MoveChild0,
/*208463*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208466*/              OPC_RecordMemRef,
/*208467*/              OPC_RecordNode, // #2 = 'ld' chained node
/*208468*/              OPC_CheckFoldableChainNode,
/*208469*/              OPC_RecordChild1, // #3 = $src3
/*208470*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208472*/              OPC_CheckPredicate, 9, // Predicate_load
/*208474*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*208476*/              OPC_CheckType, MVT::v2i64,
/*208478*/              OPC_MoveParent,
/*208479*/              OPC_MoveParent,
/*208480*/              OPC_RecordChild2, // #4 = $src2
/*208481*/              OPC_RecordChild3, // #5 = $src4
/*208482*/              OPC_MoveChild3,
/*208483*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208486*/              OPC_MoveParent,
/*208487*/              OPC_MoveParent,
/*208488*/              OPC_MoveChild2,
/*208489*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208492*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208494*/              OPC_MoveParent,
/*208495*/              OPC_CheckType, MVT::v4i32,
/*208497*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208499*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*208502*/              OPC_EmitMergeInputChains1_2,
/*208503*/              OPC_EmitConvertToTarget, 5,
/*208505*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*208508*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPTERNLOGDZ128rmikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*208523*/            /*Scope*/ 64, /*->208588*/
/*208524*/              OPC_MoveChild0,
/*208525*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*208528*/              OPC_MoveChild0,
/*208529*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208532*/              OPC_RecordMemRef,
/*208533*/              OPC_RecordNode, // #1 = 'ld' chained node
/*208534*/              OPC_CheckFoldableChainNode,
/*208535*/              OPC_RecordChild1, // #2 = $src3
/*208536*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208538*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*208540*/              OPC_CheckType, MVT::i32,
/*208542*/              OPC_MoveParent,
/*208543*/              OPC_MoveParent,
/*208544*/              OPC_RecordChild1, // #3 = $src2
/*208545*/              OPC_RecordChild2, // #4 = $src1
/*208546*/              OPC_RecordChild3, // #5 = $src4
/*208547*/              OPC_MoveChild3,
/*208548*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208551*/              OPC_MoveParent,
/*208552*/              OPC_MoveParent,
/*208553*/              OPC_MoveChild2,
/*208554*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208557*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208559*/              OPC_MoveParent,
/*208560*/              OPC_CheckType, MVT::v4i32,
/*208562*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208564*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*208567*/              OPC_EmitMergeInputChains1_1,
/*208568*/              OPC_EmitConvertToTarget, 5,
/*208570*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*208573*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPTERNLOGDZ128rmbikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*208588*/            /*Scope*/ 4|128,1/*132*/, /*->208722*/
/*208590*/              OPC_RecordChild0, // #1 = $src1
/*208591*/              OPC_Scope, 63, /*->208656*/ // 2 children in Scope
/*208593*/                OPC_MoveChild1,
/*208594*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*208597*/                OPC_MoveChild0,
/*208598*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208601*/                OPC_RecordMemRef,
/*208602*/                OPC_RecordNode, // #2 = 'ld' chained node
/*208603*/                OPC_CheckFoldableChainNode,
/*208604*/                OPC_RecordChild1, // #3 = $src3
/*208605*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208607*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*208609*/                OPC_CheckType, MVT::i32,
/*208611*/                OPC_MoveParent,
/*208612*/                OPC_MoveParent,
/*208613*/                OPC_RecordChild2, // #4 = $src2
/*208614*/                OPC_RecordChild3, // #5 = $src4
/*208615*/                OPC_MoveChild3,
/*208616*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208619*/                OPC_MoveParent,
/*208620*/                OPC_MoveParent,
/*208621*/                OPC_MoveChild2,
/*208622*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208625*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208627*/                OPC_MoveParent,
/*208628*/                OPC_CheckType, MVT::v4i32,
/*208630*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208632*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*208635*/                OPC_EmitMergeInputChains1_2,
/*208636*/                OPC_EmitConvertToTarget, 5,
/*208638*/                OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*208641*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPTERNLOGDZ128rmbikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*208656*/              /*Scope*/ 64, /*->208721*/
/*208657*/                OPC_RecordChild1, // #2 = $src2
/*208658*/                OPC_MoveChild2,
/*208659*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208662*/                OPC_RecordMemRef,
/*208663*/                OPC_RecordNode, // #3 = 'ld' chained node
/*208664*/                OPC_CheckFoldableChainNode,
/*208665*/                OPC_RecordChild1, // #4 = $src3
/*208666*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208668*/                OPC_CheckPredicate, 9, // Predicate_load
/*208670*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*208672*/                OPC_MoveParent,
/*208673*/                OPC_RecordChild3, // #5 = $src4
/*208674*/                OPC_MoveChild3,
/*208675*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208678*/                OPC_MoveParent,
/*208679*/                OPC_MoveParent,
/*208680*/                OPC_MoveChild2,
/*208681*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*208684*/                OPC_MoveChild0,
/*208685*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208688*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208690*/                OPC_CheckType, MVT::v8i32,
/*208692*/                OPC_MoveParent,
/*208693*/                OPC_MoveParent,
/*208694*/                OPC_CheckType, MVT::v4i64,
/*208696*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208698*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*208701*/                OPC_EmitMergeInputChains, 1, 3, 
/*208704*/                OPC_EmitConvertToTarget, 5,
/*208706*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPTERNLOGQZ256rmikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*208721*/              0, /*End of Scope*/
/*208722*/            /*Scope*/ 66, /*->208789*/
/*208723*/              OPC_MoveChild0,
/*208724*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208727*/              OPC_RecordMemRef,
/*208728*/              OPC_RecordNode, // #1 = 'ld' chained node
/*208729*/              OPC_CheckFoldableChainNode,
/*208730*/              OPC_RecordChild1, // #2 = $src3
/*208731*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208733*/              OPC_CheckPredicate, 9, // Predicate_load
/*208735*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*208737*/              OPC_MoveParent,
/*208738*/              OPC_RecordChild1, // #3 = $src2
/*208739*/              OPC_RecordChild2, // #4 = $src1
/*208740*/              OPC_RecordChild3, // #5 = $src4
/*208741*/              OPC_MoveChild3,
/*208742*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208745*/              OPC_MoveParent,
/*208746*/              OPC_MoveParent,
/*208747*/              OPC_MoveChild2,
/*208748*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*208751*/              OPC_MoveChild0,
/*208752*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208755*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208757*/              OPC_CheckType, MVT::v8i32,
/*208759*/              OPC_MoveParent,
/*208760*/              OPC_MoveParent,
/*208761*/              OPC_CheckType, MVT::v4i64,
/*208763*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208765*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*208768*/              OPC_EmitMergeInputChains1_1,
/*208769*/              OPC_EmitConvertToTarget, 5,
/*208771*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*208774*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPTERNLOGQZ256rmikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*208789*/            /*Scope*/ 119|128,1/*247*/, /*->209038*/
/*208791*/              OPC_RecordChild0, // #1 = $src1
/*208792*/              OPC_Scope, 65, /*->208859*/ // 3 children in Scope
/*208794*/                OPC_MoveChild1,
/*208795*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208798*/                OPC_RecordMemRef,
/*208799*/                OPC_RecordNode, // #2 = 'ld' chained node
/*208800*/                OPC_CheckFoldableChainNode,
/*208801*/                OPC_RecordChild1, // #3 = $src3
/*208802*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208804*/                OPC_CheckPredicate, 9, // Predicate_load
/*208806*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*208808*/                OPC_MoveParent,
/*208809*/                OPC_RecordChild2, // #4 = $src2
/*208810*/                OPC_RecordChild3, // #5 = $src4
/*208811*/                OPC_MoveChild3,
/*208812*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208815*/                OPC_MoveParent,
/*208816*/                OPC_MoveParent,
/*208817*/                OPC_MoveChild2,
/*208818*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*208821*/                OPC_MoveChild0,
/*208822*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*208825*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*208827*/                OPC_CheckType, MVT::v8i32,
/*208829*/                OPC_MoveParent,
/*208830*/                OPC_MoveParent,
/*208831*/                OPC_CheckType, MVT::v4i64,
/*208833*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208835*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*208838*/                OPC_EmitMergeInputChains1_2,
/*208839*/                OPC_EmitConvertToTarget, 5,
/*208841*/                OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*208844*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPTERNLOGQZ256rmikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*208859*/              /*Scope*/ 116, /*->208976*/
/*208860*/                OPC_RecordChild1, // #2 = $src2
/*208861*/                OPC_MoveChild2,
/*208862*/                OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->208920
/*208866*/                  OPC_MoveChild0,
/*208867*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208870*/                  OPC_RecordMemRef,
/*208871*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*208872*/                  OPC_CheckFoldableChainNode,
/*208873*/                  OPC_RecordChild1, // #4 = $src3
/*208874*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208876*/                  OPC_CheckPredicate, 9, // Predicate_load
/*208878*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*208880*/                  OPC_CheckType, MVT::v2i64,
/*208882*/                  OPC_MoveParent,
/*208883*/                  OPC_MoveParent,
/*208884*/                  OPC_RecordChild3, // #5 = $src4
/*208885*/                  OPC_MoveChild3,
/*208886*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208889*/                  OPC_MoveParent,
/*208890*/                  OPC_MoveParent,
/*208891*/                  OPC_CheckChild2Same, 1,
/*208893*/                  OPC_CheckType, MVT::v4i32,
/*208895*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208897*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*208900*/                  OPC_EmitMergeInputChains, 1, 3, 
/*208903*/                  OPC_EmitConvertToTarget, 5,
/*208905*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                            // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*208920*/                /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->208975
/*208923*/                  OPC_MoveChild0,
/*208924*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208927*/                  OPC_RecordMemRef,
/*208928*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*208929*/                  OPC_CheckFoldableChainNode,
/*208930*/                  OPC_RecordChild1, // #4 = $src3
/*208931*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208933*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*208935*/                  OPC_CheckType, MVT::i32,
/*208937*/                  OPC_MoveParent,
/*208938*/                  OPC_MoveParent,
/*208939*/                  OPC_RecordChild3, // #5 = $src4
/*208940*/                  OPC_MoveChild3,
/*208941*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208944*/                  OPC_MoveParent,
/*208945*/                  OPC_MoveParent,
/*208946*/                  OPC_CheckChild2Same, 1,
/*208948*/                  OPC_CheckType, MVT::v4i32,
/*208950*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*208952*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*208955*/                  OPC_EmitMergeInputChains, 1, 3, 
/*208958*/                  OPC_EmitConvertToTarget, 5,
/*208960*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                            // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*208975*/                0, // EndSwitchOpcode
/*208976*/              /*Scope*/ 60, /*->209037*/
/*208977*/                OPC_MoveChild1,
/*208978*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*208981*/                OPC_MoveChild0,
/*208982*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208985*/                OPC_RecordMemRef,
/*208986*/                OPC_RecordNode, // #2 = 'ld' chained node
/*208987*/                OPC_CheckFoldableChainNode,
/*208988*/                OPC_RecordChild1, // #3 = $src3
/*208989*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208991*/                OPC_CheckPredicate, 9, // Predicate_load
/*208993*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*208995*/                OPC_CheckType, MVT::v2i64,
/*208997*/                OPC_MoveParent,
/*208998*/                OPC_MoveParent,
/*208999*/                OPC_RecordChild2, // #4 = $src2
/*209000*/                OPC_RecordChild3, // #5 = $src4
/*209001*/                OPC_MoveChild3,
/*209002*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209005*/                OPC_MoveParent,
/*209006*/                OPC_MoveParent,
/*209007*/                OPC_CheckChild2Same, 1,
/*209009*/                OPC_CheckType, MVT::v4i32,
/*209011*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209013*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209016*/                OPC_EmitMergeInputChains1_2,
/*209017*/                OPC_EmitConvertToTarget, 5,
/*209019*/                OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*209022*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209037*/              0, /*End of Scope*/
/*209038*/            /*Scope*/ 61, /*->209100*/
/*209039*/              OPC_MoveChild0,
/*209040*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*209043*/              OPC_MoveChild0,
/*209044*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209047*/              OPC_RecordMemRef,
/*209048*/              OPC_RecordNode, // #1 = 'ld' chained node
/*209049*/              OPC_CheckFoldableChainNode,
/*209050*/              OPC_RecordChild1, // #2 = $src3
/*209051*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209053*/              OPC_CheckPredicate, 9, // Predicate_load
/*209055*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*209057*/              OPC_CheckType, MVT::v2i64,
/*209059*/              OPC_MoveParent,
/*209060*/              OPC_MoveParent,
/*209061*/              OPC_RecordChild1, // #3 = $src2
/*209062*/              OPC_RecordChild2, // #4 = $src1
/*209063*/              OPC_RecordChild3, // #5 = $src4
/*209064*/              OPC_MoveChild3,
/*209065*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209068*/              OPC_MoveParent,
/*209069*/              OPC_MoveParent,
/*209070*/              OPC_CheckChild2Same, 4,
/*209072*/              OPC_CheckType, MVT::v4i32,
/*209074*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209076*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209079*/              OPC_EmitMergeInputChains1_1,
/*209080*/              OPC_EmitConvertToTarget, 5,
/*209082*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*209085*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209100*/            /*Scope*/ 127, /*->209228*/
/*209101*/              OPC_RecordChild0, // #1 = $src2
/*209102*/              OPC_Scope, 62, /*->209166*/ // 2 children in Scope
/*209104*/                OPC_RecordChild1, // #2 = $src1
/*209105*/                OPC_MoveChild2,
/*209106*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*209109*/                OPC_MoveChild0,
/*209110*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209113*/                OPC_RecordMemRef,
/*209114*/                OPC_RecordNode, // #3 = 'ld' chained node
/*209115*/                OPC_CheckFoldableChainNode,
/*209116*/                OPC_RecordChild1, // #4 = $src3
/*209117*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209119*/                OPC_CheckPredicate, 9, // Predicate_load
/*209121*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*209123*/                OPC_CheckType, MVT::v2i64,
/*209125*/                OPC_MoveParent,
/*209126*/                OPC_MoveParent,
/*209127*/                OPC_RecordChild3, // #5 = $src4
/*209128*/                OPC_MoveChild3,
/*209129*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209132*/                OPC_MoveParent,
/*209133*/                OPC_MoveParent,
/*209134*/                OPC_CheckChild2Same, 2,
/*209136*/                OPC_CheckType, MVT::v4i32,
/*209138*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209140*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209143*/                OPC_EmitMergeInputChains, 1, 3, 
/*209146*/                OPC_EmitConvertToTarget, 5,
/*209148*/                OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*209151*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209166*/              /*Scope*/ 60, /*->209227*/
/*209167*/                OPC_MoveChild1,
/*209168*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*209171*/                OPC_MoveChild0,
/*209172*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209175*/                OPC_RecordMemRef,
/*209176*/                OPC_RecordNode, // #2 = 'ld' chained node
/*209177*/                OPC_CheckFoldableChainNode,
/*209178*/                OPC_RecordChild1, // #3 = $src3
/*209179*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209181*/                OPC_CheckPredicate, 9, // Predicate_load
/*209183*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*209185*/                OPC_CheckType, MVT::v2i64,
/*209187*/                OPC_MoveParent,
/*209188*/                OPC_MoveParent,
/*209189*/                OPC_RecordChild2, // #4 = $src1
/*209190*/                OPC_RecordChild3, // #5 = $src4
/*209191*/                OPC_MoveChild3,
/*209192*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209195*/                OPC_MoveParent,
/*209196*/                OPC_MoveParent,
/*209197*/                OPC_CheckChild2Same, 4,
/*209199*/                OPC_CheckType, MVT::v4i32,
/*209201*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209203*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209206*/                OPC_EmitMergeInputChains1_2,
/*209207*/                OPC_EmitConvertToTarget, 5,
/*209209*/                OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*209212*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209227*/              0, /*End of Scope*/
/*209228*/            /*Scope*/ 61, /*->209290*/
/*209229*/              OPC_MoveChild0,
/*209230*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*209233*/              OPC_MoveChild0,
/*209234*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209237*/              OPC_RecordMemRef,
/*209238*/              OPC_RecordNode, // #1 = 'ld' chained node
/*209239*/              OPC_CheckFoldableChainNode,
/*209240*/              OPC_RecordChild1, // #2 = $src3
/*209241*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209243*/              OPC_CheckPredicate, 9, // Predicate_load
/*209245*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*209247*/              OPC_CheckType, MVT::v2i64,
/*209249*/              OPC_MoveParent,
/*209250*/              OPC_MoveParent,
/*209251*/              OPC_RecordChild1, // #3 = $src1
/*209252*/              OPC_RecordChild2, // #4 = $src2
/*209253*/              OPC_RecordChild3, // #5 = $src4
/*209254*/              OPC_MoveChild3,
/*209255*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209258*/              OPC_MoveParent,
/*209259*/              OPC_MoveParent,
/*209260*/              OPC_CheckChild2Same, 3,
/*209262*/              OPC_CheckType, MVT::v4i32,
/*209264*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209266*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209269*/              OPC_EmitMergeInputChains1_1,
/*209270*/              OPC_EmitConvertToTarget, 5,
/*209272*/              OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*209275*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209290*/            /*Scope*/ 59, /*->209350*/
/*209291*/              OPC_RecordChild0, // #1 = $src1
/*209292*/              OPC_MoveChild1,
/*209293*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*209296*/              OPC_MoveChild0,
/*209297*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209300*/              OPC_RecordMemRef,
/*209301*/              OPC_RecordNode, // #2 = 'ld' chained node
/*209302*/              OPC_CheckFoldableChainNode,
/*209303*/              OPC_RecordChild1, // #3 = $src3
/*209304*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209306*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*209308*/              OPC_CheckType, MVT::i32,
/*209310*/              OPC_MoveParent,
/*209311*/              OPC_MoveParent,
/*209312*/              OPC_RecordChild2, // #4 = $src2
/*209313*/              OPC_RecordChild3, // #5 = $src4
/*209314*/              OPC_MoveChild3,
/*209315*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209318*/              OPC_MoveParent,
/*209319*/              OPC_MoveParent,
/*209320*/              OPC_CheckChild2Same, 1,
/*209322*/              OPC_CheckType, MVT::v4i32,
/*209324*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209326*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209329*/              OPC_EmitMergeInputChains1_2,
/*209330*/              OPC_EmitConvertToTarget, 5,
/*209332*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*209335*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209350*/            /*Scope*/ 59, /*->209410*/
/*209351*/              OPC_MoveChild0,
/*209352*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*209355*/              OPC_MoveChild0,
/*209356*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209359*/              OPC_RecordMemRef,
/*209360*/              OPC_RecordNode, // #1 = 'ld' chained node
/*209361*/              OPC_CheckFoldableChainNode,
/*209362*/              OPC_RecordChild1, // #2 = $src3
/*209363*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209365*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*209367*/              OPC_CheckType, MVT::i32,
/*209369*/              OPC_MoveParent,
/*209370*/              OPC_MoveParent,
/*209371*/              OPC_RecordChild1, // #3 = $src2
/*209372*/              OPC_RecordChild2, // #4 = $src1
/*209373*/              OPC_RecordChild3, // #5 = $src4
/*209374*/              OPC_MoveChild3,
/*209375*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209378*/              OPC_MoveParent,
/*209379*/              OPC_MoveParent,
/*209380*/              OPC_CheckChild2Same, 4,
/*209382*/              OPC_CheckType, MVT::v4i32,
/*209384*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209386*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209389*/              OPC_EmitMergeInputChains1_1,
/*209390*/              OPC_EmitConvertToTarget, 5,
/*209392*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*209395*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209410*/            /*Scope*/ 123, /*->209534*/
/*209411*/              OPC_RecordChild0, // #1 = $src2
/*209412*/              OPC_Scope, 60, /*->209474*/ // 2 children in Scope
/*209414*/                OPC_RecordChild1, // #2 = $src1
/*209415*/                OPC_MoveChild2,
/*209416*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*209419*/                OPC_MoveChild0,
/*209420*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209423*/                OPC_RecordMemRef,
/*209424*/                OPC_RecordNode, // #3 = 'ld' chained node
/*209425*/                OPC_CheckFoldableChainNode,
/*209426*/                OPC_RecordChild1, // #4 = $src3
/*209427*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209429*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*209431*/                OPC_CheckType, MVT::i32,
/*209433*/                OPC_MoveParent,
/*209434*/                OPC_MoveParent,
/*209435*/                OPC_RecordChild3, // #5 = $src4
/*209436*/                OPC_MoveChild3,
/*209437*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209440*/                OPC_MoveParent,
/*209441*/                OPC_MoveParent,
/*209442*/                OPC_CheckChild2Same, 2,
/*209444*/                OPC_CheckType, MVT::v4i32,
/*209446*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209448*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209451*/                OPC_EmitMergeInputChains, 1, 3, 
/*209454*/                OPC_EmitConvertToTarget, 5,
/*209456*/                OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*209459*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209474*/              /*Scope*/ 58, /*->209533*/
/*209475*/                OPC_MoveChild1,
/*209476*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*209479*/                OPC_MoveChild0,
/*209480*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209483*/                OPC_RecordMemRef,
/*209484*/                OPC_RecordNode, // #2 = 'ld' chained node
/*209485*/                OPC_CheckFoldableChainNode,
/*209486*/                OPC_RecordChild1, // #3 = $src3
/*209487*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209489*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*209491*/                OPC_CheckType, MVT::i32,
/*209493*/                OPC_MoveParent,
/*209494*/                OPC_MoveParent,
/*209495*/                OPC_RecordChild2, // #4 = $src1
/*209496*/                OPC_RecordChild3, // #5 = $src4
/*209497*/                OPC_MoveChild3,
/*209498*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209501*/                OPC_MoveParent,
/*209502*/                OPC_MoveParent,
/*209503*/                OPC_CheckChild2Same, 4,
/*209505*/                OPC_CheckType, MVT::v4i32,
/*209507*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209509*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209512*/                OPC_EmitMergeInputChains1_2,
/*209513*/                OPC_EmitConvertToTarget, 5,
/*209515*/                OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*209518*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209533*/              0, /*End of Scope*/
/*209534*/            /*Scope*/ 59, /*->209594*/
/*209535*/              OPC_MoveChild0,
/*209536*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*209539*/              OPC_MoveChild0,
/*209540*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209543*/              OPC_RecordMemRef,
/*209544*/              OPC_RecordNode, // #1 = 'ld' chained node
/*209545*/              OPC_CheckFoldableChainNode,
/*209546*/              OPC_RecordChild1, // #2 = $src3
/*209547*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209549*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*209551*/              OPC_CheckType, MVT::i32,
/*209553*/              OPC_MoveParent,
/*209554*/              OPC_MoveParent,
/*209555*/              OPC_RecordChild1, // #3 = $src1
/*209556*/              OPC_RecordChild2, // #4 = $src2
/*209557*/              OPC_RecordChild3, // #5 = $src4
/*209558*/              OPC_MoveChild3,
/*209559*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209562*/              OPC_MoveParent,
/*209563*/              OPC_MoveParent,
/*209564*/              OPC_CheckChild2Same, 3,
/*209566*/              OPC_CheckType, MVT::v4i32,
/*209568*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209570*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209573*/              OPC_EmitMergeInputChains1_1,
/*209574*/              OPC_EmitConvertToTarget, 5,
/*209576*/              OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*209579*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209594*/            /*Scope*/ 120, /*->209715*/
/*209595*/              OPC_RecordChild0, // #1 = $src1
/*209596*/              OPC_Scope, 57, /*->209655*/ // 2 children in Scope
/*209598*/                OPC_RecordChild1, // #2 = $src2
/*209599*/                OPC_MoveChild2,
/*209600*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*209603*/                OPC_MoveChild0,
/*209604*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209607*/                OPC_RecordMemRef,
/*209608*/                OPC_RecordNode, // #3 = 'ld' chained node
/*209609*/                OPC_CheckFoldableChainNode,
/*209610*/                OPC_RecordChild1, // #4 = $src3
/*209611*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209613*/                OPC_CheckPredicate, 9, // Predicate_load
/*209615*/                OPC_CheckType, MVT::i64,
/*209617*/                OPC_MoveParent,
/*209618*/                OPC_MoveParent,
/*209619*/                OPC_RecordChild3, // #5 = $src4
/*209620*/                OPC_MoveChild3,
/*209621*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209624*/                OPC_MoveParent,
/*209625*/                OPC_MoveParent,
/*209626*/                OPC_CheckChild2Same, 1,
/*209628*/                OPC_CheckType, MVT::v4i64,
/*209630*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209632*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209635*/                OPC_EmitMergeInputChains, 1, 3, 
/*209638*/                OPC_EmitConvertToTarget, 5,
/*209640*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*209655*/              /*Scope*/ 58, /*->209714*/
/*209656*/                OPC_MoveChild1,
/*209657*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*209660*/                OPC_MoveChild0,
/*209661*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209664*/                OPC_RecordMemRef,
/*209665*/                OPC_RecordNode, // #2 = 'ld' chained node
/*209666*/                OPC_CheckFoldableChainNode,
/*209667*/                OPC_RecordChild1, // #3 = $src3
/*209668*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209670*/                OPC_CheckPredicate, 9, // Predicate_load
/*209672*/                OPC_CheckType, MVT::i64,
/*209674*/                OPC_MoveParent,
/*209675*/                OPC_MoveParent,
/*209676*/                OPC_RecordChild2, // #4 = $src2
/*209677*/                OPC_RecordChild3, // #5 = $src4
/*209678*/                OPC_MoveChild3,
/*209679*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209682*/                OPC_MoveParent,
/*209683*/                OPC_MoveParent,
/*209684*/                OPC_CheckChild2Same, 1,
/*209686*/                OPC_CheckType, MVT::v4i64,
/*209688*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209690*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209693*/                OPC_EmitMergeInputChains1_2,
/*209694*/                OPC_EmitConvertToTarget, 5,
/*209696*/                OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*209699*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209714*/              0, /*End of Scope*/
/*209715*/            /*Scope*/ 59, /*->209775*/
/*209716*/              OPC_MoveChild0,
/*209717*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*209720*/              OPC_MoveChild0,
/*209721*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209724*/              OPC_RecordMemRef,
/*209725*/              OPC_RecordNode, // #1 = 'ld' chained node
/*209726*/              OPC_CheckFoldableChainNode,
/*209727*/              OPC_RecordChild1, // #2 = $src3
/*209728*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209730*/              OPC_CheckPredicate, 9, // Predicate_load
/*209732*/              OPC_CheckType, MVT::i64,
/*209734*/              OPC_MoveParent,
/*209735*/              OPC_MoveParent,
/*209736*/              OPC_RecordChild1, // #3 = $src2
/*209737*/              OPC_RecordChild2, // #4 = $src1
/*209738*/              OPC_RecordChild3, // #5 = $src4
/*209739*/              OPC_MoveChild3,
/*209740*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209743*/              OPC_MoveParent,
/*209744*/              OPC_MoveParent,
/*209745*/              OPC_CheckChild2Same, 4,
/*209747*/              OPC_CheckType, MVT::v4i64,
/*209749*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209751*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209754*/              OPC_EmitMergeInputChains1_1,
/*209755*/              OPC_EmitConvertToTarget, 5,
/*209757*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*209760*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209775*/            /*Scope*/ 123, /*->209899*/
/*209776*/              OPC_RecordChild0, // #1 = $src2
/*209777*/              OPC_Scope, 60, /*->209839*/ // 2 children in Scope
/*209779*/                OPC_RecordChild1, // #2 = $src1
/*209780*/                OPC_MoveChild2,
/*209781*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*209784*/                OPC_MoveChild0,
/*209785*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209788*/                OPC_RecordMemRef,
/*209789*/                OPC_RecordNode, // #3 = 'ld' chained node
/*209790*/                OPC_CheckFoldableChainNode,
/*209791*/                OPC_RecordChild1, // #4 = $src3
/*209792*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209794*/                OPC_CheckPredicate, 9, // Predicate_load
/*209796*/                OPC_CheckType, MVT::i64,
/*209798*/                OPC_MoveParent,
/*209799*/                OPC_MoveParent,
/*209800*/                OPC_RecordChild3, // #5 = $src4
/*209801*/                OPC_MoveChild3,
/*209802*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209805*/                OPC_MoveParent,
/*209806*/                OPC_MoveParent,
/*209807*/                OPC_CheckChild2Same, 2,
/*209809*/                OPC_CheckType, MVT::v4i64,
/*209811*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209813*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209816*/                OPC_EmitMergeInputChains, 1, 3, 
/*209819*/                OPC_EmitConvertToTarget, 5,
/*209821*/                OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*209824*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209839*/              /*Scope*/ 58, /*->209898*/
/*209840*/                OPC_MoveChild1,
/*209841*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*209844*/                OPC_MoveChild0,
/*209845*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209848*/                OPC_RecordMemRef,
/*209849*/                OPC_RecordNode, // #2 = 'ld' chained node
/*209850*/                OPC_CheckFoldableChainNode,
/*209851*/                OPC_RecordChild1, // #3 = $src3
/*209852*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209854*/                OPC_CheckPredicate, 9, // Predicate_load
/*209856*/                OPC_CheckType, MVT::i64,
/*209858*/                OPC_MoveParent,
/*209859*/                OPC_MoveParent,
/*209860*/                OPC_RecordChild2, // #4 = $src1
/*209861*/                OPC_RecordChild3, // #5 = $src4
/*209862*/                OPC_MoveChild3,
/*209863*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209866*/                OPC_MoveParent,
/*209867*/                OPC_MoveParent,
/*209868*/                OPC_CheckChild2Same, 4,
/*209870*/                OPC_CheckType, MVT::v4i64,
/*209872*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209874*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209877*/                OPC_EmitMergeInputChains1_2,
/*209878*/                OPC_EmitConvertToTarget, 5,
/*209880*/                OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*209883*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209898*/              0, /*End of Scope*/
/*209899*/            /*Scope*/ 59, /*->209959*/
/*209900*/              OPC_MoveChild0,
/*209901*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*209904*/              OPC_MoveChild0,
/*209905*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209908*/              OPC_RecordMemRef,
/*209909*/              OPC_RecordNode, // #1 = 'ld' chained node
/*209910*/              OPC_CheckFoldableChainNode,
/*209911*/              OPC_RecordChild1, // #2 = $src3
/*209912*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209914*/              OPC_CheckPredicate, 9, // Predicate_load
/*209916*/              OPC_CheckType, MVT::i64,
/*209918*/              OPC_MoveParent,
/*209919*/              OPC_MoveParent,
/*209920*/              OPC_RecordChild1, // #3 = $src1
/*209921*/              OPC_RecordChild2, // #4 = $src2
/*209922*/              OPC_RecordChild3, // #5 = $src4
/*209923*/              OPC_MoveChild3,
/*209924*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209927*/              OPC_MoveParent,
/*209928*/              OPC_MoveParent,
/*209929*/              OPC_CheckChild2Same, 3,
/*209931*/              OPC_CheckType, MVT::v4i64,
/*209933*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*209935*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*209938*/              OPC_EmitMergeInputChains1_1,
/*209939*/              OPC_EmitConvertToTarget, 5,
/*209941*/              OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*209944*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*209959*/            0, /*End of Scope*/
/*209960*/          /*SwitchOpcode*/ 81|128,1/*209*/, TARGET_VAL(X86ISD::VSHLDV),// ->210173
/*209964*/            OPC_RecordChild0, // #1 = $src1
/*209965*/            OPC_RecordChild1, // #2 = $src2
/*209966*/            OPC_MoveChild2,
/*209967*/            OPC_SwitchOpcode /*3 cases */, 95, TARGET_VAL(X86ISD::VBROADCAST),// ->210066
/*209971*/              OPC_MoveChild0,
/*209972*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209975*/              OPC_RecordMemRef,
/*209976*/              OPC_RecordNode, // #3 = 'ld' chained node
/*209977*/              OPC_CheckFoldableChainNode,
/*209978*/              OPC_RecordChild1, // #4 = $src3
/*209979*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209981*/              OPC_SwitchType /*2 cases */, 43, MVT::i64,// ->210027
/*209984*/                OPC_CheckPredicate, 9, // Predicate_load
/*209986*/                OPC_MoveParent,
/*209987*/                OPC_MoveParent,
/*209988*/                OPC_MoveParent,
/*209989*/                OPC_MoveChild2,
/*209990*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*209993*/                OPC_MoveChild0,
/*209994*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*209997*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*209999*/                OPC_CheckType, MVT::v8i32,
/*210001*/                OPC_MoveParent,
/*210002*/                OPC_MoveParent,
/*210003*/                OPC_CheckType, MVT::v4i64,
/*210005*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210007*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*210010*/                OPC_EmitMergeInputChains, 1, 3, 
/*210013*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSHLDVQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*210027*/              /*SwitchType*/ 36, MVT::i32,// ->210065
/*210029*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*210031*/                OPC_MoveParent,
/*210032*/                OPC_MoveParent,
/*210033*/                OPC_MoveParent,
/*210034*/                OPC_MoveChild2,
/*210035*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210038*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210040*/                OPC_MoveParent,
/*210041*/                OPC_CheckType, MVT::v4i32,
/*210043*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210045*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*210048*/                OPC_EmitMergeInputChains, 1, 3, 
/*210051*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSHLDVDZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*210065*/              0, // EndSwitchType
/*210066*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::BITCAST),// ->210119
/*210069*/              OPC_MoveChild0,
/*210070*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*210073*/              OPC_RecordMemRef,
/*210074*/              OPC_RecordNode, // #3 = 'ld' chained node
/*210075*/              OPC_CheckFoldableChainNode,
/*210076*/              OPC_RecordChild1, // #4 = $src3
/*210077*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210079*/              OPC_CheckPredicate, 9, // Predicate_load
/*210081*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*210083*/              OPC_CheckType, MVT::v2i64,
/*210085*/              OPC_MoveParent,
/*210086*/              OPC_MoveParent,
/*210087*/              OPC_MoveParent,
/*210088*/              OPC_MoveChild2,
/*210089*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210092*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210094*/              OPC_MoveParent,
/*210095*/              OPC_CheckType, MVT::v4i32,
/*210097*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210099*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*210102*/              OPC_EmitMergeInputChains, 1, 3, 
/*210105*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSHLDVDZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*210119*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->210172
/*210122*/              OPC_RecordMemRef,
/*210123*/              OPC_RecordNode, // #3 = 'ld' chained node
/*210124*/              OPC_CheckFoldableChainNode,
/*210125*/              OPC_RecordChild1, // #4 = $src3
/*210126*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210128*/              OPC_CheckPredicate, 9, // Predicate_load
/*210130*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*210132*/              OPC_MoveParent,
/*210133*/              OPC_MoveParent,
/*210134*/              OPC_MoveChild2,
/*210135*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*210138*/              OPC_MoveChild0,
/*210139*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210142*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210144*/              OPC_CheckType, MVT::v8i32,
/*210146*/              OPC_MoveParent,
/*210147*/              OPC_MoveParent,
/*210148*/              OPC_CheckType, MVT::v4i64,
/*210150*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210152*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*210155*/              OPC_EmitMergeInputChains, 1, 3, 
/*210158*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSHLDVQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*210172*/            0, // EndSwitchOpcode
/*210173*/          /*SwitchOpcode*/ 81|128,1/*209*/, TARGET_VAL(X86ISD::VSHRDV),// ->210386
/*210177*/            OPC_RecordChild0, // #1 = $src1
/*210178*/            OPC_RecordChild1, // #2 = $src2
/*210179*/            OPC_MoveChild2,
/*210180*/            OPC_SwitchOpcode /*3 cases */, 95, TARGET_VAL(X86ISD::VBROADCAST),// ->210279
/*210184*/              OPC_MoveChild0,
/*210185*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*210188*/              OPC_RecordMemRef,
/*210189*/              OPC_RecordNode, // #3 = 'ld' chained node
/*210190*/              OPC_CheckFoldableChainNode,
/*210191*/              OPC_RecordChild1, // #4 = $src3
/*210192*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210194*/              OPC_SwitchType /*2 cases */, 43, MVT::i64,// ->210240
/*210197*/                OPC_CheckPredicate, 9, // Predicate_load
/*210199*/                OPC_MoveParent,
/*210200*/                OPC_MoveParent,
/*210201*/                OPC_MoveParent,
/*210202*/                OPC_MoveChild2,
/*210203*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*210206*/                OPC_MoveChild0,
/*210207*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210210*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210212*/                OPC_CheckType, MVT::v8i32,
/*210214*/                OPC_MoveParent,
/*210215*/                OPC_MoveParent,
/*210216*/                OPC_CheckType, MVT::v4i64,
/*210218*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210220*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*210223*/                OPC_EmitMergeInputChains, 1, 3, 
/*210226*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSHRDVQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*210240*/              /*SwitchType*/ 36, MVT::i32,// ->210278
/*210242*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*210244*/                OPC_MoveParent,
/*210245*/                OPC_MoveParent,
/*210246*/                OPC_MoveParent,
/*210247*/                OPC_MoveChild2,
/*210248*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210251*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210253*/                OPC_MoveParent,
/*210254*/                OPC_CheckType, MVT::v4i32,
/*210256*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210258*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*210261*/                OPC_EmitMergeInputChains, 1, 3, 
/*210264*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSHRDVDZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*210278*/              0, // EndSwitchType
/*210279*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::BITCAST),// ->210332
/*210282*/              OPC_MoveChild0,
/*210283*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*210286*/              OPC_RecordMemRef,
/*210287*/              OPC_RecordNode, // #3 = 'ld' chained node
/*210288*/              OPC_CheckFoldableChainNode,
/*210289*/              OPC_RecordChild1, // #4 = $src3
/*210290*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210292*/              OPC_CheckPredicate, 9, // Predicate_load
/*210294*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*210296*/              OPC_CheckType, MVT::v2i64,
/*210298*/              OPC_MoveParent,
/*210299*/              OPC_MoveParent,
/*210300*/              OPC_MoveParent,
/*210301*/              OPC_MoveChild2,
/*210302*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210305*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210307*/              OPC_MoveParent,
/*210308*/              OPC_CheckType, MVT::v4i32,
/*210310*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210312*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*210315*/              OPC_EmitMergeInputChains, 1, 3, 
/*210318*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSHRDVDZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*210332*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->210385
/*210335*/              OPC_RecordMemRef,
/*210336*/              OPC_RecordNode, // #3 = 'ld' chained node
/*210337*/              OPC_CheckFoldableChainNode,
/*210338*/              OPC_RecordChild1, // #4 = $src3
/*210339*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210341*/              OPC_CheckPredicate, 9, // Predicate_load
/*210343*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*210345*/              OPC_MoveParent,
/*210346*/              OPC_MoveParent,
/*210347*/              OPC_MoveChild2,
/*210348*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*210351*/              OPC_MoveChild0,
/*210352*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210355*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210357*/              OPC_CheckType, MVT::v8i32,
/*210359*/              OPC_MoveParent,
/*210360*/              OPC_MoveParent,
/*210361*/              OPC_CheckType, MVT::v4i64,
/*210363*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210365*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*210368*/              OPC_EmitMergeInputChains, 1, 3, 
/*210371*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSHRDVQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*210385*/            0, // EndSwitchOpcode
/*210386*/          /*SwitchOpcode*/ 24|128,2/*280*/, TARGET_VAL(X86ISD::VSHLD),// ->210670
/*210390*/            OPC_RecordChild0, // #1 = $src1
/*210391*/            OPC_MoveChild1,
/*210392*/            OPC_SwitchOpcode /*3 cases */, 86, TARGET_VAL(ISD::BITCAST),// ->210482
/*210396*/              OPC_MoveChild0,
/*210397*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*210400*/              OPC_RecordMemRef,
/*210401*/              OPC_RecordNode, // #2 = 'ld' chained node
/*210402*/              OPC_CheckFoldableChainNode,
/*210403*/              OPC_RecordChild1, // #3 = $src2
/*210404*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210406*/              OPC_CheckPredicate, 9, // Predicate_load
/*210408*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*210410*/              OPC_CheckType, MVT::v2i64,
/*210412*/              OPC_MoveParent,
/*210413*/              OPC_MoveParent,
/*210414*/              OPC_RecordChild2, // #4 = $src3
/*210415*/              OPC_MoveChild2,
/*210416*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*210419*/              OPC_MoveParent,
/*210420*/              OPC_MoveParent,
/*210421*/              OPC_Scope, 31, /*->210454*/ // 2 children in Scope
/*210423*/                OPC_MoveChild2,
/*210424*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210427*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210429*/                OPC_MoveParent,
/*210430*/                OPC_CheckType, MVT::v4i32,
/*210432*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210434*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*210437*/                OPC_EmitMergeInputChains1_2,
/*210438*/                OPC_EmitConvertToTarget, 4,
/*210440*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPSHLDDZ128rmikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210454*/              /*Scope*/ 26, /*->210481*/
/*210455*/                OPC_RecordChild2, // #5 = $src0
/*210456*/                OPC_CheckType, MVT::v4i32,
/*210458*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210460*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*210463*/                OPC_EmitMergeInputChains1_2,
/*210464*/                OPC_EmitConvertToTarget, 4,
/*210466*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VPSHLDDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210481*/              0, /*End of Scope*/
/*210482*/            /*SwitchOpcode*/ 125, TARGET_VAL(X86ISD::VBROADCAST),// ->210610
/*210485*/              OPC_MoveChild0,
/*210486*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*210489*/              OPC_RecordMemRef,
/*210490*/              OPC_RecordNode, // #2 = 'ld' chained node
/*210491*/              OPC_CheckFoldableChainNode,
/*210492*/              OPC_RecordChild1, // #3 = $src2
/*210493*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210495*/              OPC_SwitchType /*2 cases */, 72, MVT::i32,// ->210570
/*210498*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*210500*/                OPC_MoveParent,
/*210501*/                OPC_MoveParent,
/*210502*/                OPC_RecordChild2, // #4 = $src3
/*210503*/                OPC_MoveChild2,
/*210504*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*210507*/                OPC_MoveParent,
/*210508*/                OPC_MoveParent,
/*210509*/                OPC_Scope, 31, /*->210542*/ // 2 children in Scope
/*210511*/                  OPC_MoveChild2,
/*210512*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210515*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210517*/                  OPC_MoveParent,
/*210518*/                  OPC_CheckType, MVT::v4i32,
/*210520*/                  OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210522*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*210525*/                  OPC_EmitMergeInputChains1_2,
/*210526*/                  OPC_EmitConvertToTarget, 4,
/*210528*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                            // Dst: (VPSHLDDZ128rmbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210542*/                /*Scope*/ 26, /*->210569*/
/*210543*/                  OPC_RecordChild2, // #5 = $src0
/*210544*/                  OPC_CheckType, MVT::v4i32,
/*210546*/                  OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210548*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*210551*/                  OPC_EmitMergeInputChains1_2,
/*210552*/                  OPC_EmitConvertToTarget, 4,
/*210554*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                            // Dst: (VPSHLDDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210569*/                0, /*End of Scope*/
/*210570*/              /*SwitchType*/ 37, MVT::i64,// ->210609
/*210572*/                OPC_CheckPredicate, 9, // Predicate_load
/*210574*/                OPC_MoveParent,
/*210575*/                OPC_MoveParent,
/*210576*/                OPC_RecordChild2, // #4 = $src3
/*210577*/                OPC_MoveChild2,
/*210578*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*210581*/                OPC_MoveParent,
/*210582*/                OPC_MoveParent,
/*210583*/                OPC_RecordChild2, // #5 = $src0
/*210584*/                OPC_CheckType, MVT::v4i64,
/*210586*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210588*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*210591*/                OPC_EmitMergeInputChains1_2,
/*210592*/                OPC_EmitConvertToTarget, 4,
/*210594*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VPSHLDQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210609*/              0, // EndSwitchType
/*210610*/            /*SwitchOpcode*/ 56, TARGET_VAL(ISD::LOAD),// ->210669
/*210613*/              OPC_RecordMemRef,
/*210614*/              OPC_RecordNode, // #2 = 'ld' chained node
/*210615*/              OPC_CheckFoldableChainNode,
/*210616*/              OPC_RecordChild1, // #3 = $src2
/*210617*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210619*/              OPC_CheckPredicate, 9, // Predicate_load
/*210621*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*210623*/              OPC_MoveParent,
/*210624*/              OPC_RecordChild2, // #4 = $src3
/*210625*/              OPC_MoveChild2,
/*210626*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*210629*/              OPC_MoveParent,
/*210630*/              OPC_MoveParent,
/*210631*/              OPC_MoveChild2,
/*210632*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*210635*/              OPC_MoveChild0,
/*210636*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210639*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210641*/              OPC_CheckType, MVT::v8i32,
/*210643*/              OPC_MoveParent,
/*210644*/              OPC_MoveParent,
/*210645*/              OPC_CheckType, MVT::v4i64,
/*210647*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210649*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*210652*/              OPC_EmitMergeInputChains1_2,
/*210653*/              OPC_EmitConvertToTarget, 4,
/*210655*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSHLDQZ256rmikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210669*/            0, // EndSwitchOpcode
/*210670*/          /*SwitchOpcode*/ 24|128,2/*280*/, TARGET_VAL(X86ISD::VSHRD),// ->210954
/*210674*/            OPC_RecordChild0, // #1 = $src1
/*210675*/            OPC_MoveChild1,
/*210676*/            OPC_SwitchOpcode /*3 cases */, 86, TARGET_VAL(ISD::BITCAST),// ->210766
/*210680*/              OPC_MoveChild0,
/*210681*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*210684*/              OPC_RecordMemRef,
/*210685*/              OPC_RecordNode, // #2 = 'ld' chained node
/*210686*/              OPC_CheckFoldableChainNode,
/*210687*/              OPC_RecordChild1, // #3 = $src2
/*210688*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210690*/              OPC_CheckPredicate, 9, // Predicate_load
/*210692*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*210694*/              OPC_CheckType, MVT::v2i64,
/*210696*/              OPC_MoveParent,
/*210697*/              OPC_MoveParent,
/*210698*/              OPC_RecordChild2, // #4 = $src3
/*210699*/              OPC_MoveChild2,
/*210700*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*210703*/              OPC_MoveParent,
/*210704*/              OPC_MoveParent,
/*210705*/              OPC_Scope, 31, /*->210738*/ // 2 children in Scope
/*210707*/                OPC_MoveChild2,
/*210708*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210711*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210713*/                OPC_MoveParent,
/*210714*/                OPC_CheckType, MVT::v4i32,
/*210716*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210718*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*210721*/                OPC_EmitMergeInputChains1_2,
/*210722*/                OPC_EmitConvertToTarget, 4,
/*210724*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPSHRDDZ128rmikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210738*/              /*Scope*/ 26, /*->210765*/
/*210739*/                OPC_RecordChild2, // #5 = $src0
/*210740*/                OPC_CheckType, MVT::v4i32,
/*210742*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210744*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*210747*/                OPC_EmitMergeInputChains1_2,
/*210748*/                OPC_EmitConvertToTarget, 4,
/*210750*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VPSHRDDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210765*/              0, /*End of Scope*/
/*210766*/            /*SwitchOpcode*/ 125, TARGET_VAL(X86ISD::VBROADCAST),// ->210894
/*210769*/              OPC_MoveChild0,
/*210770*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*210773*/              OPC_RecordMemRef,
/*210774*/              OPC_RecordNode, // #2 = 'ld' chained node
/*210775*/              OPC_CheckFoldableChainNode,
/*210776*/              OPC_RecordChild1, // #3 = $src2
/*210777*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210779*/              OPC_SwitchType /*2 cases */, 72, MVT::i32,// ->210854
/*210782*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*210784*/                OPC_MoveParent,
/*210785*/                OPC_MoveParent,
/*210786*/                OPC_RecordChild2, // #4 = $src3
/*210787*/                OPC_MoveChild2,
/*210788*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*210791*/                OPC_MoveParent,
/*210792*/                OPC_MoveParent,
/*210793*/                OPC_Scope, 31, /*->210826*/ // 2 children in Scope
/*210795*/                  OPC_MoveChild2,
/*210796*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210799*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210801*/                  OPC_MoveParent,
/*210802*/                  OPC_CheckType, MVT::v4i32,
/*210804*/                  OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210806*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*210809*/                  OPC_EmitMergeInputChains1_2,
/*210810*/                  OPC_EmitConvertToTarget, 4,
/*210812*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                            // Dst: (VPSHRDDZ128rmbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210826*/                /*Scope*/ 26, /*->210853*/
/*210827*/                  OPC_RecordChild2, // #5 = $src0
/*210828*/                  OPC_CheckType, MVT::v4i32,
/*210830*/                  OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210832*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*210835*/                  OPC_EmitMergeInputChains1_2,
/*210836*/                  OPC_EmitConvertToTarget, 4,
/*210838*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                            // Dst: (VPSHRDDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210853*/                0, /*End of Scope*/
/*210854*/              /*SwitchType*/ 37, MVT::i64,// ->210893
/*210856*/                OPC_CheckPredicate, 9, // Predicate_load
/*210858*/                OPC_MoveParent,
/*210859*/                OPC_MoveParent,
/*210860*/                OPC_RecordChild2, // #4 = $src3
/*210861*/                OPC_MoveChild2,
/*210862*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*210865*/                OPC_MoveParent,
/*210866*/                OPC_MoveParent,
/*210867*/                OPC_RecordChild2, // #5 = $src0
/*210868*/                OPC_CheckType, MVT::v4i64,
/*210870*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210872*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*210875*/                OPC_EmitMergeInputChains1_2,
/*210876*/                OPC_EmitConvertToTarget, 4,
/*210878*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VPSHRDQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210893*/              0, // EndSwitchType
/*210894*/            /*SwitchOpcode*/ 56, TARGET_VAL(ISD::LOAD),// ->210953
/*210897*/              OPC_RecordMemRef,
/*210898*/              OPC_RecordNode, // #2 = 'ld' chained node
/*210899*/              OPC_CheckFoldableChainNode,
/*210900*/              OPC_RecordChild1, // #3 = $src2
/*210901*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210903*/              OPC_CheckPredicate, 9, // Predicate_load
/*210905*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*210907*/              OPC_MoveParent,
/*210908*/              OPC_RecordChild2, // #4 = $src3
/*210909*/              OPC_MoveChild2,
/*210910*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*210913*/              OPC_MoveParent,
/*210914*/              OPC_MoveParent,
/*210915*/              OPC_MoveChild2,
/*210916*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*210919*/              OPC_MoveChild0,
/*210920*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210923*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210925*/              OPC_CheckType, MVT::v8i32,
/*210927*/              OPC_MoveParent,
/*210928*/              OPC_MoveParent,
/*210929*/              OPC_CheckType, MVT::v4i64,
/*210931*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*210933*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*210936*/              OPC_EmitMergeInputChains1_2,
/*210937*/              OPC_EmitConvertToTarget, 4,
/*210939*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSHRDQZ256rmikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*210953*/            0, // EndSwitchOpcode
/*210954*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->211007
/*210957*/            OPC_MoveChild0,
/*210958*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*210961*/            OPC_RecordMemRef,
/*210962*/            OPC_RecordNode, // #1 = 'ld' chained node
/*210963*/            OPC_CheckFoldableChainNode,
/*210964*/            OPC_RecordChild1, // #2 = $src
/*210965*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210967*/            OPC_CheckPredicate, 9, // Predicate_load
/*210969*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*210971*/            OPC_MoveParent,
/*210972*/            OPC_MoveParent,
/*210973*/            OPC_MoveChild2,
/*210974*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*210977*/            OPC_MoveChild0,
/*210978*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*210981*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*210983*/            OPC_CheckType, MVT::v8i32,
/*210985*/            OPC_MoveParent,
/*210986*/            OPC_MoveParent,
/*210987*/            OPC_CheckType, MVT::v4i64,
/*210989*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*210991*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*210994*/            OPC_EmitMergeInputChains1_1,
/*210995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X2Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86SubVBroadcast:{ *:[v4i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VBROADCASTI64X2Z128rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*211007*/          /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VPMADDWD),// ->211118
/*211010*/            OPC_Scope, 52, /*->211064*/ // 2 children in Scope
/*211012*/              OPC_RecordChild0, // #1 = $src1
/*211013*/              OPC_MoveChild1,
/*211014*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*211017*/              OPC_MoveChild0,
/*211018*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211021*/              OPC_RecordMemRef,
/*211022*/              OPC_RecordNode, // #2 = 'ld' chained node
/*211023*/              OPC_CheckFoldableChainNode,
/*211024*/              OPC_RecordChild1, // #3 = $src2
/*211025*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211027*/              OPC_CheckPredicate, 9, // Predicate_load
/*211029*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211031*/              OPC_CheckType, MVT::v2i64,
/*211033*/              OPC_MoveParent,
/*211034*/              OPC_MoveParent,
/*211035*/              OPC_MoveParent,
/*211036*/              OPC_MoveChild2,
/*211037*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211040*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211042*/              OPC_MoveParent,
/*211043*/              OPC_CheckType, MVT::v4i32,
/*211045*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*211047*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*211050*/              OPC_EmitMergeInputChains1_2,
/*211051*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpmaddwd:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPMADDWDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*211064*/            /*Scope*/ 52, /*->211117*/
/*211065*/              OPC_MoveChild0,
/*211066*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*211069*/              OPC_MoveChild0,
/*211070*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211073*/              OPC_RecordMemRef,
/*211074*/              OPC_RecordNode, // #1 = 'ld' chained node
/*211075*/              OPC_CheckFoldableChainNode,
/*211076*/              OPC_RecordChild1, // #2 = $src2
/*211077*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211079*/              OPC_CheckPredicate, 9, // Predicate_load
/*211081*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211083*/              OPC_CheckType, MVT::v2i64,
/*211085*/              OPC_MoveParent,
/*211086*/              OPC_MoveParent,
/*211087*/              OPC_RecordChild1, // #3 = $src1
/*211088*/              OPC_MoveParent,
/*211089*/              OPC_MoveChild2,
/*211090*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211093*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211095*/              OPC_MoveParent,
/*211096*/              OPC_CheckType, MVT::v4i32,
/*211098*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*211100*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*211103*/              OPC_EmitMergeInputChains1_1,
/*211104*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpmaddwd:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPMADDWDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*211117*/            0, /*End of Scope*/
/*211118*/          /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VSHL),// ->211229
/*211121*/            OPC_RecordChild0, // #1 = $src1
/*211122*/            OPC_MoveChild1,
/*211123*/            OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::BITCAST),// ->211176
/*211127*/              OPC_MoveChild0,
/*211128*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211131*/              OPC_RecordMemRef,
/*211132*/              OPC_RecordNode, // #2 = 'ld' chained node
/*211133*/              OPC_CheckFoldableChainNode,
/*211134*/              OPC_RecordChild1, // #3 = $src2
/*211135*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211137*/              OPC_CheckPredicate, 9, // Predicate_load
/*211139*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211141*/              OPC_CheckType, MVT::v2i64,
/*211143*/              OPC_MoveParent,
/*211144*/              OPC_CheckType, MVT::v4i32,
/*211146*/              OPC_MoveParent,
/*211147*/              OPC_MoveParent,
/*211148*/              OPC_MoveChild2,
/*211149*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211152*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211154*/              OPC_MoveParent,
/*211155*/              OPC_CheckType, MVT::v4i32,
/*211157*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211159*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*211162*/              OPC_EmitMergeInputChains1_2,
/*211163*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSLLDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*211176*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->211228
/*211179*/              OPC_RecordMemRef,
/*211180*/              OPC_RecordNode, // #2 = 'ld' chained node
/*211181*/              OPC_CheckFoldableChainNode,
/*211182*/              OPC_RecordChild1, // #3 = $src2
/*211183*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211185*/              OPC_CheckPredicate, 9, // Predicate_load
/*211187*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211189*/              OPC_CheckType, MVT::v2i64,
/*211191*/              OPC_MoveParent,
/*211192*/              OPC_MoveParent,
/*211193*/              OPC_MoveChild2,
/*211194*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*211197*/              OPC_MoveChild0,
/*211198*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211201*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211203*/              OPC_CheckType, MVT::v8i32,
/*211205*/              OPC_MoveParent,
/*211206*/              OPC_MoveParent,
/*211207*/              OPC_CheckType, MVT::v4i64,
/*211209*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211211*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*211214*/              OPC_EmitMergeInputChains1_2,
/*211215*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSLLQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*211228*/            0, // EndSwitchOpcode
/*211229*/          /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VSRA),// ->211340
/*211232*/            OPC_RecordChild0, // #1 = $src1
/*211233*/            OPC_MoveChild1,
/*211234*/            OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::BITCAST),// ->211287
/*211238*/              OPC_MoveChild0,
/*211239*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211242*/              OPC_RecordMemRef,
/*211243*/              OPC_RecordNode, // #2 = 'ld' chained node
/*211244*/              OPC_CheckFoldableChainNode,
/*211245*/              OPC_RecordChild1, // #3 = $src2
/*211246*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211248*/              OPC_CheckPredicate, 9, // Predicate_load
/*211250*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211252*/              OPC_CheckType, MVT::v2i64,
/*211254*/              OPC_MoveParent,
/*211255*/              OPC_CheckType, MVT::v4i32,
/*211257*/              OPC_MoveParent,
/*211258*/              OPC_MoveParent,
/*211259*/              OPC_MoveChild2,
/*211260*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211263*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211265*/              OPC_MoveParent,
/*211266*/              OPC_CheckType, MVT::v4i32,
/*211268*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211270*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*211273*/              OPC_EmitMergeInputChains1_2,
/*211274*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRADZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*211287*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->211339
/*211290*/              OPC_RecordMemRef,
/*211291*/              OPC_RecordNode, // #2 = 'ld' chained node
/*211292*/              OPC_CheckFoldableChainNode,
/*211293*/              OPC_RecordChild1, // #3 = $src2
/*211294*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211296*/              OPC_CheckPredicate, 9, // Predicate_load
/*211298*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211300*/              OPC_CheckType, MVT::v2i64,
/*211302*/              OPC_MoveParent,
/*211303*/              OPC_MoveParent,
/*211304*/              OPC_MoveChild2,
/*211305*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*211308*/              OPC_MoveChild0,
/*211309*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211312*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211314*/              OPC_CheckType, MVT::v8i32,
/*211316*/              OPC_MoveParent,
/*211317*/              OPC_MoveParent,
/*211318*/              OPC_CheckType, MVT::v4i64,
/*211320*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211322*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*211325*/              OPC_EmitMergeInputChains1_2,
/*211326*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRAQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*211339*/            0, // EndSwitchOpcode
/*211340*/          /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VSRL),// ->211451
/*211343*/            OPC_RecordChild0, // #1 = $src1
/*211344*/            OPC_MoveChild1,
/*211345*/            OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::BITCAST),// ->211398
/*211349*/              OPC_MoveChild0,
/*211350*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211353*/              OPC_RecordMemRef,
/*211354*/              OPC_RecordNode, // #2 = 'ld' chained node
/*211355*/              OPC_CheckFoldableChainNode,
/*211356*/              OPC_RecordChild1, // #3 = $src2
/*211357*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211359*/              OPC_CheckPredicate, 9, // Predicate_load
/*211361*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211363*/              OPC_CheckType, MVT::v2i64,
/*211365*/              OPC_MoveParent,
/*211366*/              OPC_CheckType, MVT::v4i32,
/*211368*/              OPC_MoveParent,
/*211369*/              OPC_MoveParent,
/*211370*/              OPC_MoveChild2,
/*211371*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211374*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211376*/              OPC_MoveParent,
/*211377*/              OPC_CheckType, MVT::v4i32,
/*211379*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211381*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*211384*/              OPC_EmitMergeInputChains1_2,
/*211385*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRLDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*211398*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->211450
/*211401*/              OPC_RecordMemRef,
/*211402*/              OPC_RecordNode, // #2 = 'ld' chained node
/*211403*/              OPC_CheckFoldableChainNode,
/*211404*/              OPC_RecordChild1, // #3 = $src2
/*211405*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211407*/              OPC_CheckPredicate, 9, // Predicate_load
/*211409*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211411*/              OPC_CheckType, MVT::v2i64,
/*211413*/              OPC_MoveParent,
/*211414*/              OPC_MoveParent,
/*211415*/              OPC_MoveChild2,
/*211416*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*211419*/              OPC_MoveChild0,
/*211420*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211423*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211425*/              OPC_CheckType, MVT::v8i32,
/*211427*/              OPC_MoveParent,
/*211428*/              OPC_MoveParent,
/*211429*/              OPC_CheckType, MVT::v4i64,
/*211431*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211433*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*211436*/              OPC_EmitMergeInputChains1_2,
/*211437*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRLQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*211450*/            0, // EndSwitchOpcode
/*211451*/          /*SwitchOpcode*/ 101, TARGET_VAL(X86ISD::EXPAND),// ->211555
/*211454*/            OPC_MoveChild0,
/*211455*/            OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::BITCAST),// ->211505
/*211459*/              OPC_MoveChild0,
/*211460*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211463*/              OPC_RecordMemRef,
/*211464*/              OPC_RecordNode, // #1 = 'ld' chained node
/*211465*/              OPC_CheckFoldableChainNode,
/*211466*/              OPC_RecordChild1, // #2 = $src1
/*211467*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211469*/              OPC_CheckPredicate, 9, // Predicate_load
/*211471*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211473*/              OPC_CheckType, MVT::v2i64,
/*211475*/              OPC_MoveParent,
/*211476*/              OPC_MoveParent,
/*211477*/              OPC_MoveParent,
/*211478*/              OPC_MoveChild2,
/*211479*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211482*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211484*/              OPC_MoveParent,
/*211485*/              OPC_CheckType, MVT::v4i32,
/*211487*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211489*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*211492*/              OPC_EmitMergeInputChains1_1,
/*211493*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPEXPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*211505*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->211554
/*211508*/              OPC_RecordMemRef,
/*211509*/              OPC_RecordNode, // #1 = 'ld' chained node
/*211510*/              OPC_CheckFoldableChainNode,
/*211511*/              OPC_RecordChild1, // #2 = $src1
/*211512*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211514*/              OPC_CheckPredicate, 9, // Predicate_load
/*211516*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211518*/              OPC_MoveParent,
/*211519*/              OPC_MoveParent,
/*211520*/              OPC_MoveChild2,
/*211521*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*211524*/              OPC_MoveChild0,
/*211525*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211528*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211530*/              OPC_CheckType, MVT::v8i32,
/*211532*/              OPC_MoveParent,
/*211533*/              OPC_MoveParent,
/*211534*/              OPC_CheckType, MVT::v4i64,
/*211536*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211538*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*211541*/              OPC_EmitMergeInputChains1_1,
/*211542*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPEXPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*211554*/            0, // EndSwitchOpcode
/*211555*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPBUSD),// ->211667
/*211558*/            OPC_RecordChild0, // #1 = $src1
/*211559*/            OPC_RecordChild1, // #2 = $src2
/*211560*/            OPC_MoveChild2,
/*211561*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->211615
/*211565*/              OPC_MoveChild0,
/*211566*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211569*/              OPC_RecordMemRef,
/*211570*/              OPC_RecordNode, // #3 = 'ld' chained node
/*211571*/              OPC_CheckFoldableChainNode,
/*211572*/              OPC_RecordChild1, // #4 = $src3
/*211573*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211575*/              OPC_CheckPredicate, 9, // Predicate_load
/*211577*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211579*/              OPC_CheckType, MVT::v2i64,
/*211581*/              OPC_MoveParent,
/*211582*/              OPC_MoveParent,
/*211583*/              OPC_MoveParent,
/*211584*/              OPC_MoveChild2,
/*211585*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211588*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211590*/              OPC_MoveParent,
/*211591*/              OPC_CheckType, MVT::v4i32,
/*211593*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*211595*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*211598*/              OPC_EmitMergeInputChains, 1, 3, 
/*211601*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*211615*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->211666
/*211618*/              OPC_MoveChild0,
/*211619*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211622*/              OPC_RecordMemRef,
/*211623*/              OPC_RecordNode, // #3 = 'ld' chained node
/*211624*/              OPC_CheckFoldableChainNode,
/*211625*/              OPC_RecordChild1, // #4 = $src3
/*211626*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211628*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*211630*/              OPC_CheckType, MVT::i32,
/*211632*/              OPC_MoveParent,
/*211633*/              OPC_MoveParent,
/*211634*/              OPC_MoveParent,
/*211635*/              OPC_MoveChild2,
/*211636*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211639*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211641*/              OPC_MoveParent,
/*211642*/              OPC_CheckType, MVT::v4i32,
/*211644*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*211646*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*211649*/              OPC_EmitMergeInputChains, 1, 3, 
/*211652*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*211666*/            0, // EndSwitchOpcode
/*211667*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPBUSDS),// ->211779
/*211670*/            OPC_RecordChild0, // #1 = $src1
/*211671*/            OPC_RecordChild1, // #2 = $src2
/*211672*/            OPC_MoveChild2,
/*211673*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->211727
/*211677*/              OPC_MoveChild0,
/*211678*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211681*/              OPC_RecordMemRef,
/*211682*/              OPC_RecordNode, // #3 = 'ld' chained node
/*211683*/              OPC_CheckFoldableChainNode,
/*211684*/              OPC_RecordChild1, // #4 = $src3
/*211685*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211687*/              OPC_CheckPredicate, 9, // Predicate_load
/*211689*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211691*/              OPC_CheckType, MVT::v2i64,
/*211693*/              OPC_MoveParent,
/*211694*/              OPC_MoveParent,
/*211695*/              OPC_MoveParent,
/*211696*/              OPC_MoveChild2,
/*211697*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211700*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211702*/              OPC_MoveParent,
/*211703*/              OPC_CheckType, MVT::v4i32,
/*211705*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*211707*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*211710*/              OPC_EmitMergeInputChains, 1, 3, 
/*211713*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDSZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*211727*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->211778
/*211730*/              OPC_MoveChild0,
/*211731*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211734*/              OPC_RecordMemRef,
/*211735*/              OPC_RecordNode, // #3 = 'ld' chained node
/*211736*/              OPC_CheckFoldableChainNode,
/*211737*/              OPC_RecordChild1, // #4 = $src3
/*211738*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211740*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*211742*/              OPC_CheckType, MVT::i32,
/*211744*/              OPC_MoveParent,
/*211745*/              OPC_MoveParent,
/*211746*/              OPC_MoveParent,
/*211747*/              OPC_MoveChild2,
/*211748*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211751*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211753*/              OPC_MoveParent,
/*211754*/              OPC_CheckType, MVT::v4i32,
/*211756*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*211758*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*211761*/              OPC_EmitMergeInputChains, 1, 3, 
/*211764*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDSZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*211778*/            0, // EndSwitchOpcode
/*211779*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPWSSD),// ->211891
/*211782*/            OPC_RecordChild0, // #1 = $src1
/*211783*/            OPC_RecordChild1, // #2 = $src2
/*211784*/            OPC_MoveChild2,
/*211785*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->211839
/*211789*/              OPC_MoveChild0,
/*211790*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211793*/              OPC_RecordMemRef,
/*211794*/              OPC_RecordNode, // #3 = 'ld' chained node
/*211795*/              OPC_CheckFoldableChainNode,
/*211796*/              OPC_RecordChild1, // #4 = $src3
/*211797*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211799*/              OPC_CheckPredicate, 9, // Predicate_load
/*211801*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211803*/              OPC_CheckType, MVT::v2i64,
/*211805*/              OPC_MoveParent,
/*211806*/              OPC_MoveParent,
/*211807*/              OPC_MoveParent,
/*211808*/              OPC_MoveChild2,
/*211809*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211812*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211814*/              OPC_MoveParent,
/*211815*/              OPC_CheckType, MVT::v4i32,
/*211817*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*211819*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*211822*/              OPC_EmitMergeInputChains, 1, 3, 
/*211825*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*211839*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->211890
/*211842*/              OPC_MoveChild0,
/*211843*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211846*/              OPC_RecordMemRef,
/*211847*/              OPC_RecordNode, // #3 = 'ld' chained node
/*211848*/              OPC_CheckFoldableChainNode,
/*211849*/              OPC_RecordChild1, // #4 = $src3
/*211850*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211852*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*211854*/              OPC_CheckType, MVT::i32,
/*211856*/              OPC_MoveParent,
/*211857*/              OPC_MoveParent,
/*211858*/              OPC_MoveParent,
/*211859*/              OPC_MoveChild2,
/*211860*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211863*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211865*/              OPC_MoveParent,
/*211866*/              OPC_CheckType, MVT::v4i32,
/*211868*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*211870*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*211873*/              OPC_EmitMergeInputChains, 1, 3, 
/*211876*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*211890*/            0, // EndSwitchOpcode
/*211891*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPWSSDS),// ->212003
/*211894*/            OPC_RecordChild0, // #1 = $src1
/*211895*/            OPC_RecordChild1, // #2 = $src2
/*211896*/            OPC_MoveChild2,
/*211897*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->211951
/*211901*/              OPC_MoveChild0,
/*211902*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211905*/              OPC_RecordMemRef,
/*211906*/              OPC_RecordNode, // #3 = 'ld' chained node
/*211907*/              OPC_CheckFoldableChainNode,
/*211908*/              OPC_RecordChild1, // #4 = $src3
/*211909*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211911*/              OPC_CheckPredicate, 9, // Predicate_load
/*211913*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*211915*/              OPC_CheckType, MVT::v2i64,
/*211917*/              OPC_MoveParent,
/*211918*/              OPC_MoveParent,
/*211919*/              OPC_MoveParent,
/*211920*/              OPC_MoveChild2,
/*211921*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211924*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211926*/              OPC_MoveParent,
/*211927*/              OPC_CheckType, MVT::v4i32,
/*211929*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*211931*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*211934*/              OPC_EmitMergeInputChains, 1, 3, 
/*211937*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDSZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*211951*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->212002
/*211954*/              OPC_MoveChild0,
/*211955*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211958*/              OPC_RecordMemRef,
/*211959*/              OPC_RecordNode, // #3 = 'ld' chained node
/*211960*/              OPC_CheckFoldableChainNode,
/*211961*/              OPC_RecordChild1, // #4 = $src3
/*211962*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211964*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*211966*/              OPC_CheckType, MVT::i32,
/*211968*/              OPC_MoveParent,
/*211969*/              OPC_MoveParent,
/*211970*/              OPC_MoveParent,
/*211971*/              OPC_MoveChild2,
/*211972*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*211975*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*211977*/              OPC_MoveParent,
/*211978*/              OPC_CheckType, MVT::v4i32,
/*211980*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*211982*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*211985*/              OPC_EmitMergeInputChains, 1, 3, 
/*211988*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDSZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*212002*/            0, // EndSwitchOpcode
/*212003*/          /*SwitchOpcode*/ 71|128,2/*327*/, TARGET_VAL(ISD::LOAD),// ->212334
/*212007*/            OPC_RecordMemRef,
/*212008*/            OPC_RecordNode, // #1 = 'ld' chained node
/*212009*/            OPC_CheckFoldableChainNode,
/*212010*/            OPC_RecordChild1, // #2 = $src
/*212011*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212013*/            OPC_Scope, 80, /*->212095*/ // 3 children in Scope
/*212015*/              OPC_CheckPredicate, 9, // Predicate_load
/*212017*/              OPC_Scope, 37, /*->212056*/ // 2 children in Scope
/*212019*/                OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*212021*/                OPC_MoveParent,
/*212022*/                OPC_MoveChild2,
/*212023*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*212026*/                OPC_MoveChild0,
/*212027*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*212030*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*212032*/                OPC_CheckType, MVT::v8i32,
/*212034*/                OPC_MoveParent,
/*212035*/                OPC_MoveParent,
/*212036*/                OPC_CheckType, MVT::v4i64,
/*212038*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212040*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212043*/                OPC_EmitMergeInputChains1_1,
/*212044*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVDQA64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212056*/              /*Scope*/ 37, /*->212094*/
/*212057*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*212059*/                OPC_MoveParent,
/*212060*/                OPC_MoveChild2,
/*212061*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*212064*/                OPC_MoveChild0,
/*212065*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*212068*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*212070*/                OPC_CheckType, MVT::v8i32,
/*212072*/                OPC_MoveParent,
/*212073*/                OPC_MoveParent,
/*212074*/                OPC_CheckType, MVT::v4i64,
/*212076*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212078*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212081*/                OPC_EmitMergeInputChains1_1,
/*212082*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVDQU64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212094*/              0, /*End of Scope*/
/*212095*/            /*Scope*/ 118, /*->212214*/
/*212096*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*212098*/              OPC_Scope, 37, /*->212137*/ // 3 children in Scope
/*212100*/                OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*212102*/                OPC_MoveParent,
/*212103*/                OPC_MoveChild2,
/*212104*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*212107*/                OPC_MoveChild0,
/*212108*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*212111*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*212113*/                OPC_CheckType, MVT::v8i32,
/*212115*/                OPC_MoveParent,
/*212116*/                OPC_MoveParent,
/*212117*/                OPC_CheckType, MVT::v4i64,
/*212119*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212121*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212124*/                OPC_EmitMergeInputChains1_1,
/*212125*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VPMOVZXBQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212137*/              /*Scope*/ 37, /*->212175*/
/*212138*/                OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*212140*/                OPC_MoveParent,
/*212141*/                OPC_MoveChild2,
/*212142*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*212145*/                OPC_MoveChild0,
/*212146*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*212149*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*212151*/                OPC_CheckType, MVT::v8i32,
/*212153*/                OPC_MoveParent,
/*212154*/                OPC_MoveParent,
/*212155*/                OPC_CheckType, MVT::v4i64,
/*212157*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212159*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212162*/                OPC_EmitMergeInputChains1_1,
/*212163*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VPMOVZXWQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212175*/              /*Scope*/ 37, /*->212213*/
/*212176*/                OPC_CheckPredicate, 72, // Predicate_zextloadvi32
/*212178*/                OPC_MoveParent,
/*212179*/                OPC_MoveChild2,
/*212180*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*212183*/                OPC_MoveChild0,
/*212184*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*212187*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*212189*/                OPC_CheckType, MVT::v8i32,
/*212191*/                OPC_MoveParent,
/*212192*/                OPC_MoveParent,
/*212193*/                OPC_CheckType, MVT::v4i64,
/*212195*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212197*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212200*/                OPC_EmitMergeInputChains1_1,
/*212201*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>>, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VPMOVZXDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212213*/              0, /*End of Scope*/
/*212214*/            /*Scope*/ 118, /*->212333*/
/*212215*/              OPC_CheckPredicate, 60, // Predicate_sextload
/*212217*/              OPC_Scope, 37, /*->212256*/ // 3 children in Scope
/*212219*/                OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*212221*/                OPC_MoveParent,
/*212222*/                OPC_MoveChild2,
/*212223*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*212226*/                OPC_MoveChild0,
/*212227*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*212230*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*212232*/                OPC_CheckType, MVT::v8i32,
/*212234*/                OPC_MoveParent,
/*212235*/                OPC_MoveParent,
/*212236*/                OPC_CheckType, MVT::v4i64,
/*212238*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212240*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212243*/                OPC_EmitMergeInputChains1_1,
/*212244*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VPMOVSXBQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212256*/              /*Scope*/ 37, /*->212294*/
/*212257*/                OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*212259*/                OPC_MoveParent,
/*212260*/                OPC_MoveChild2,
/*212261*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*212264*/                OPC_MoveChild0,
/*212265*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*212268*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*212270*/                OPC_CheckType, MVT::v8i32,
/*212272*/                OPC_MoveParent,
/*212273*/                OPC_MoveParent,
/*212274*/                OPC_CheckType, MVT::v4i64,
/*212276*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212278*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212281*/                OPC_EmitMergeInputChains1_1,
/*212282*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VPMOVSXWQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212294*/              /*Scope*/ 37, /*->212332*/
/*212295*/                OPC_CheckPredicate, 72, // Predicate_sextloadvi32
/*212297*/                OPC_MoveParent,
/*212298*/                OPC_MoveChild2,
/*212299*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*212302*/                OPC_MoveChild0,
/*212303*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*212306*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*212308*/                OPC_CheckType, MVT::v8i32,
/*212310*/                OPC_MoveParent,
/*212311*/                OPC_MoveParent,
/*212312*/                OPC_CheckType, MVT::v4i64,
/*212314*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212316*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212319*/                OPC_EmitMergeInputChains1_1,
/*212320*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>>, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VPMOVSXDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212332*/              0, /*End of Scope*/
/*212333*/            0, /*End of Scope*/
/*212334*/          0, // EndSwitchOpcode
/*212335*/        /*Scope*/ 58, /*->212394*/
/*212336*/          OPC_RecordChild1, // #1 = $src3
/*212337*/          OPC_MoveChild1,
/*212338*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*212341*/          OPC_RecordChild0, // #2 = $src1
/*212342*/          OPC_MoveChild1,
/*212343*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212346*/          OPC_RecordMemRef,
/*212347*/          OPC_RecordNode, // #3 = 'ld' chained node
/*212348*/          OPC_CheckFoldableChainNode,
/*212349*/          OPC_RecordChild1, // #4 = $src2
/*212350*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212352*/          OPC_CheckPredicate, 9, // Predicate_load
/*212354*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*212356*/          OPC_MoveParent,
/*212357*/          OPC_MoveChild2,
/*212358*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*212361*/          OPC_CheckType, MVT::iPTR,
/*212363*/          OPC_MoveParent,
/*212364*/          OPC_MoveParent,
/*212365*/          OPC_RecordChild2, // #5 = $src0
/*212366*/          OPC_CheckType, MVT::v4i64,
/*212368*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*212370*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*212373*/          OPC_EmitMergeInputChains, 1, 3, 
/*212376*/          OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*212379*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                    // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                    // Dst: (VINSERTI64x2Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*212394*/        /*Scope*/ 9|128,86/*11017*/, /*->223413*/
/*212396*/          OPC_MoveChild1,
/*212397*/          OPC_SwitchOpcode /*60 cases */, 19|128,1/*147*/, TARGET_VAL(X86ISD::VBROADCAST),// ->212549
/*212402*/            OPC_MoveChild0,
/*212403*/            OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->212481
/*212407*/              OPC_MoveChild0,
/*212408*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212411*/              OPC_RecordMemRef,
/*212412*/              OPC_RecordNode, // #1 = 'ld' chained node
/*212413*/              OPC_CheckFoldableChainNode,
/*212414*/              OPC_RecordChild1, // #2 = $src
/*212415*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212417*/              OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->212449
/*212420*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*212422*/                OPC_MoveParent,
/*212423*/                OPC_CheckType, MVT::v4i32,
/*212425*/                OPC_MoveParent,
/*212426*/                OPC_MoveParent,
/*212427*/                OPC_RecordChild2, // #3 = $src0
/*212428*/                OPC_CheckType, MVT::v4i32,
/*212430*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212432*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*212435*/                OPC_EmitMergeInputChains1_1,
/*212436*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPBROADCASTDZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212449*/              /*SwitchType*/ 29, MVT::i64,// ->212480
/*212451*/                OPC_CheckPredicate, 9, // Predicate_load
/*212453*/                OPC_MoveParent,
/*212454*/                OPC_CheckType, MVT::v2i64,
/*212456*/                OPC_MoveParent,
/*212457*/                OPC_MoveParent,
/*212458*/                OPC_RecordChild2, // #3 = $src0
/*212459*/                OPC_CheckType, MVT::v4i64,
/*212461*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212463*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*212466*/                OPC_EmitMergeInputChains1_1,
/*212467*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPBROADCASTQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212480*/              0, // EndSwitchType
/*212481*/            /*SwitchOpcode*/ 64, TARGET_VAL(ISD::LOAD),// ->212548
/*212484*/              OPC_RecordMemRef,
/*212485*/              OPC_RecordNode, // #1 = 'ld' chained node
/*212486*/              OPC_CheckFoldableChainNode,
/*212487*/              OPC_RecordChild1, // #2 = $src
/*212488*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212490*/              OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->212519
/*212493*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*212495*/                OPC_MoveParent,
/*212496*/                OPC_MoveParent,
/*212497*/                OPC_RecordChild2, // #3 = $src0
/*212498*/                OPC_CheckType, MVT::v4i32,
/*212500*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212502*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*212505*/                OPC_EmitMergeInputChains1_1,
/*212506*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPBROADCASTDZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212519*/              /*SwitchType*/ 26, MVT::i64,// ->212547
/*212521*/                OPC_CheckPredicate, 9, // Predicate_load
/*212523*/                OPC_MoveParent,
/*212524*/                OPC_MoveParent,
/*212525*/                OPC_RecordChild2, // #3 = $src0
/*212526*/                OPC_CheckType, MVT::v4i64,
/*212528*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212530*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*212533*/                OPC_EmitMergeInputChains1_1,
/*212534*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPBROADCASTQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212547*/              0, // EndSwitchType
/*212548*/            0, // EndSwitchOpcode
/*212549*/          /*SwitchOpcode*/ 50|128,8/*1074*/, TARGET_VAL(ISD::BITCAST),// ->213627
/*212553*/            OPC_Scope, 63|128,4/*575*/, /*->213131*/ // 3 children in Scope
/*212556*/              OPC_MoveChild0,
/*212557*/              OPC_SwitchOpcode /*7 cases */, 41, TARGET_VAL(X86ISD::VBROADCAST),// ->212602
/*212561*/                OPC_MoveChild0,
/*212562*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212565*/                OPC_RecordMemRef,
/*212566*/                OPC_RecordNode, // #1 = 'ld' chained node
/*212567*/                OPC_CheckFoldableChainNode,
/*212568*/                OPC_RecordChild1, // #2 = $src
/*212569*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212571*/                OPC_CheckPredicate, 9, // Predicate_load
/*212573*/                OPC_CheckType, MVT::i64,
/*212575*/                OPC_MoveParent,
/*212576*/                OPC_CheckType, MVT::v2i64,
/*212578*/                OPC_MoveParent,
/*212579*/                OPC_MoveParent,
/*212580*/                OPC_RecordChild2, // #3 = $src0
/*212581*/                OPC_CheckType, MVT::v4i32,
/*212583*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*212585*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*212588*/                OPC_EmitMergeInputChains1_1,
/*212589*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTI32X2Z128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212602*/              /*SwitchOpcode*/ 90, TARGET_VAL(ISD::AND),// ->212695
/*212605*/                OPC_Scope, 43, /*->212650*/ // 2 children in Scope
/*212607*/                  OPC_RecordChild0, // #1 = $src1
/*212608*/                  OPC_MoveChild1,
/*212609*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212612*/                  OPC_RecordMemRef,
/*212613*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*212614*/                  OPC_CheckFoldableChainNode,
/*212615*/                  OPC_RecordChild1, // #3 = $src2
/*212616*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212618*/                  OPC_CheckPredicate, 9, // Predicate_load
/*212620*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*212622*/                  OPC_MoveParent,
/*212623*/                  OPC_CheckType, MVT::v2i64,
/*212625*/                  OPC_MoveParent,
/*212626*/                  OPC_MoveParent,
/*212627*/                  OPC_RecordChild2, // #4 = $src0
/*212628*/                  OPC_CheckType, MVT::v4i32,
/*212630*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212632*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*212635*/                  OPC_EmitMergeInputChains1_2,
/*212636*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*212650*/                /*Scope*/ 43, /*->212694*/
/*212651*/                  OPC_MoveChild0,
/*212652*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212655*/                  OPC_RecordMemRef,
/*212656*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*212657*/                  OPC_CheckFoldableChainNode,
/*212658*/                  OPC_RecordChild1, // #2 = $src2
/*212659*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212661*/                  OPC_CheckPredicate, 9, // Predicate_load
/*212663*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*212665*/                  OPC_MoveParent,
/*212666*/                  OPC_RecordChild1, // #3 = $src1
/*212667*/                  OPC_CheckType, MVT::v2i64,
/*212669*/                  OPC_MoveParent,
/*212670*/                  OPC_MoveParent,
/*212671*/                  OPC_RecordChild2, // #4 = $src0
/*212672*/                  OPC_CheckType, MVT::v4i32,
/*212674*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212676*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*212679*/                  OPC_EmitMergeInputChains1_1,
/*212680*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*212694*/                0, /*End of Scope*/
/*212695*/              /*SwitchOpcode*/ 90, TARGET_VAL(ISD::OR),// ->212788
/*212698*/                OPC_Scope, 43, /*->212743*/ // 2 children in Scope
/*212700*/                  OPC_RecordChild0, // #1 = $src1
/*212701*/                  OPC_MoveChild1,
/*212702*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212705*/                  OPC_RecordMemRef,
/*212706*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*212707*/                  OPC_CheckFoldableChainNode,
/*212708*/                  OPC_RecordChild1, // #3 = $src2
/*212709*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212711*/                  OPC_CheckPredicate, 9, // Predicate_load
/*212713*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*212715*/                  OPC_MoveParent,
/*212716*/                  OPC_CheckType, MVT::v2i64,
/*212718*/                  OPC_MoveParent,
/*212719*/                  OPC_MoveParent,
/*212720*/                  OPC_RecordChild2, // #4 = $src0
/*212721*/                  OPC_CheckType, MVT::v4i32,
/*212723*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212725*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*212728*/                  OPC_EmitMergeInputChains1_2,
/*212729*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*212743*/                /*Scope*/ 43, /*->212787*/
/*212744*/                  OPC_MoveChild0,
/*212745*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212748*/                  OPC_RecordMemRef,
/*212749*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*212750*/                  OPC_CheckFoldableChainNode,
/*212751*/                  OPC_RecordChild1, // #2 = $src2
/*212752*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212754*/                  OPC_CheckPredicate, 9, // Predicate_load
/*212756*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*212758*/                  OPC_MoveParent,
/*212759*/                  OPC_RecordChild1, // #3 = $src1
/*212760*/                  OPC_CheckType, MVT::v2i64,
/*212762*/                  OPC_MoveParent,
/*212763*/                  OPC_MoveParent,
/*212764*/                  OPC_RecordChild2, // #4 = $src0
/*212765*/                  OPC_CheckType, MVT::v4i32,
/*212767*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212769*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*212772*/                  OPC_EmitMergeInputChains1_1,
/*212773*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*212787*/                0, /*End of Scope*/
/*212788*/              /*SwitchOpcode*/ 90, TARGET_VAL(ISD::XOR),// ->212881
/*212791*/                OPC_Scope, 43, /*->212836*/ // 2 children in Scope
/*212793*/                  OPC_RecordChild0, // #1 = $src1
/*212794*/                  OPC_MoveChild1,
/*212795*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212798*/                  OPC_RecordMemRef,
/*212799*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*212800*/                  OPC_CheckFoldableChainNode,
/*212801*/                  OPC_RecordChild1, // #3 = $src2
/*212802*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212804*/                  OPC_CheckPredicate, 9, // Predicate_load
/*212806*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*212808*/                  OPC_MoveParent,
/*212809*/                  OPC_CheckType, MVT::v2i64,
/*212811*/                  OPC_MoveParent,
/*212812*/                  OPC_MoveParent,
/*212813*/                  OPC_RecordChild2, // #4 = $src0
/*212814*/                  OPC_CheckType, MVT::v4i32,
/*212816*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212818*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*212821*/                  OPC_EmitMergeInputChains1_2,
/*212822*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPXORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*212836*/                /*Scope*/ 43, /*->212880*/
/*212837*/                  OPC_MoveChild0,
/*212838*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212841*/                  OPC_RecordMemRef,
/*212842*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*212843*/                  OPC_CheckFoldableChainNode,
/*212844*/                  OPC_RecordChild1, // #2 = $src2
/*212845*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212847*/                  OPC_CheckPredicate, 9, // Predicate_load
/*212849*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*212851*/                  OPC_MoveParent,
/*212852*/                  OPC_RecordChild1, // #3 = $src1
/*212853*/                  OPC_CheckType, MVT::v2i64,
/*212855*/                  OPC_MoveParent,
/*212856*/                  OPC_MoveParent,
/*212857*/                  OPC_RecordChild2, // #4 = $src0
/*212858*/                  OPC_CheckType, MVT::v4i32,
/*212860*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212862*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*212865*/                  OPC_EmitMergeInputChains1_1,
/*212866*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPXORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*212880*/                0, /*End of Scope*/
/*212881*/              /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::ANDNP),// ->212927
/*212884*/                OPC_RecordChild0, // #1 = $src1
/*212885*/                OPC_MoveChild1,
/*212886*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212889*/                OPC_RecordMemRef,
/*212890*/                OPC_RecordNode, // #2 = 'ld' chained node
/*212891*/                OPC_CheckFoldableChainNode,
/*212892*/                OPC_RecordChild1, // #3 = $src2
/*212893*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212895*/                OPC_CheckPredicate, 9, // Predicate_load
/*212897*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*212899*/                OPC_MoveParent,
/*212900*/                OPC_CheckType, MVT::v2i64,
/*212902*/                OPC_MoveParent,
/*212903*/                OPC_MoveParent,
/*212904*/                OPC_RecordChild2, // #4 = $src0
/*212905*/                OPC_CheckType, MVT::v4i32,
/*212907*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212909*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*212912*/                OPC_EmitMergeInputChains1_2,
/*212913*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPANDNDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*212927*/              /*SwitchOpcode*/ 66, TARGET_VAL(ISD::LOAD),// ->212996
/*212930*/                OPC_RecordMemRef,
/*212931*/                OPC_RecordNode, // #1 = 'ld' chained node
/*212932*/                OPC_CheckFoldableChainNode,
/*212933*/                OPC_RecordChild1, // #2 = $src1
/*212934*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212936*/                OPC_CheckPredicate, 9, // Predicate_load
/*212938*/                OPC_CheckType, MVT::v2i64,
/*212940*/                OPC_Scope, 26, /*->212968*/ // 2 children in Scope
/*212942*/                  OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*212944*/                  OPC_MoveParent,
/*212945*/                  OPC_MoveParent,
/*212946*/                  OPC_RecordChild2, // #3 = $src0
/*212947*/                  OPC_CheckType, MVT::v4i32,
/*212949*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212951*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*212954*/                  OPC_EmitMergeInputChains1_1,
/*212955*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VMOVDQA32Z128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*212968*/                /*Scope*/ 26, /*->212995*/
/*212969*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*212971*/                  OPC_MoveParent,
/*212972*/                  OPC_MoveParent,
/*212973*/                  OPC_RecordChild2, // #3 = $src0
/*212974*/                  OPC_CheckType, MVT::v4i32,
/*212976*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212978*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*212981*/                  OPC_EmitMergeInputChains1_1,
/*212982*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VMOVDQU32Z128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*212995*/                0, /*End of Scope*/
/*212996*/              /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->213130
/*213000*/                OPC_RecordChild0, // #1 = $src
/*213001*/                OPC_CheckChild1Integer, 0, 
/*213003*/                OPC_CheckChild1Type, MVT::iPTR,
/*213005*/                OPC_SwitchType /*3 cases */, 39, MVT::v8i32,// ->213047
/*213008*/                  OPC_MoveParent,
/*213009*/                  OPC_MoveParent,
/*213010*/                  OPC_MoveChild2,
/*213011*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*213014*/                  OPC_MoveChild0,
/*213015*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213018*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213020*/                  OPC_CheckType, MVT::v8i32,
/*213022*/                  OPC_MoveParent,
/*213023*/                  OPC_MoveParent,
/*213024*/                  OPC_CheckType, MVT::v4i64,
/*213026*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213028*/                  OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*213031*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v8i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*213039*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rrkz), 0,
                                MVT::v4i64, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                            // Dst: (VMOVDQA64Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, sub_ymm:{ *:[i32] }))
/*213047*/                /*SwitchType*/ 39, MVT::v16i16,// ->213088
/*213049*/                  OPC_MoveParent,
/*213050*/                  OPC_MoveParent,
/*213051*/                  OPC_MoveChild2,
/*213052*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*213055*/                  OPC_MoveChild0,
/*213056*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213059*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213061*/                  OPC_CheckType, MVT::v8i32,
/*213063*/                  OPC_MoveParent,
/*213064*/                  OPC_MoveParent,
/*213065*/                  OPC_CheckType, MVT::v4i64,
/*213067*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213069*/                  OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*213072*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v16i16, 2/*#Ops*/, 1, 2,  // Results = #3
/*213080*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rrkz), 0,
                                MVT::v4i64, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                            // Dst: (VMOVDQA64Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, sub_ymm:{ *:[i32] }))
/*213088*/                /*SwitchType*/ 39, MVT::v32i8,// ->213129
/*213090*/                  OPC_MoveParent,
/*213091*/                  OPC_MoveParent,
/*213092*/                  OPC_MoveChild2,
/*213093*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*213096*/                  OPC_MoveChild0,
/*213097*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213100*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213102*/                  OPC_CheckType, MVT::v8i32,
/*213104*/                  OPC_MoveParent,
/*213105*/                  OPC_MoveParent,
/*213106*/                  OPC_CheckType, MVT::v4i64,
/*213108*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213110*/                  OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*213113*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v32i8, 2/*#Ops*/, 1, 2,  // Results = #3
/*213121*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rrkz), 0,
                                MVT::v4i64, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                            // Dst: (VMOVDQA64Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, sub_ymm:{ *:[i32] }))
/*213129*/                0, // EndSwitchType
/*213130*/              0, // EndSwitchOpcode
/*213131*/            /*Scope*/ 110|128,1/*238*/, /*->213371*/
/*213133*/              OPC_RecordChild0, // #1 = $ins
/*213134*/              OPC_MoveChild0,
/*213135*/              OPC_SwitchOpcode /*2 cases */, 116, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->213255
/*213139*/                OPC_RecordChild0, // #2 = $src1
/*213140*/                OPC_RecordChild1, // #3 = $src2
/*213141*/                OPC_MoveChild2,
/*213142*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*213145*/                OPC_CheckType, MVT::iPTR,
/*213147*/                OPC_MoveParent,
/*213148*/                OPC_SwitchType /*3 cases */, 33, MVT::v8i32,// ->213184
/*213151*/                  OPC_MoveParent,
/*213152*/                  OPC_MoveParent,
/*213153*/                  OPC_MoveChild2,
/*213154*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*213157*/                  OPC_MoveChild0,
/*213158*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213161*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213163*/                  OPC_CheckType, MVT::v8i32,
/*213165*/                  OPC_MoveParent,
/*213166*/                  OPC_MoveParent,
/*213167*/                  OPC_CheckType, MVT::v4i64,
/*213169*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*213171*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*213174*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rrkz), 0,
                                MVT::v4i64, 4/*#Ops*/, 0, 2, 3, 4, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VINSERTF64x2Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ins))
/*213184*/                /*SwitchType*/ 33, MVT::v16i16,// ->213219
/*213186*/                  OPC_MoveParent,
/*213187*/                  OPC_MoveParent,
/*213188*/                  OPC_MoveChild2,
/*213189*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*213192*/                  OPC_MoveChild0,
/*213193*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213196*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213198*/                  OPC_CheckType, MVT::v8i32,
/*213200*/                  OPC_MoveParent,
/*213201*/                  OPC_MoveParent,
/*213202*/                  OPC_CheckType, MVT::v4i64,
/*213204*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*213206*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*213209*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rrkz), 0,
                                MVT::v4i64, 4/*#Ops*/, 0, 2, 3, 4, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VINSERTF64x2Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*213219*/                /*SwitchType*/ 33, MVT::v32i8,// ->213254
/*213221*/                  OPC_MoveParent,
/*213222*/                  OPC_MoveParent,
/*213223*/                  OPC_MoveChild2,
/*213224*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*213227*/                  OPC_MoveChild0,
/*213228*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213231*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213233*/                  OPC_CheckType, MVT::v8i32,
/*213235*/                  OPC_MoveParent,
/*213236*/                  OPC_MoveParent,
/*213237*/                  OPC_CheckType, MVT::v4i64,
/*213239*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*213241*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*213244*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rrkz), 0,
                                MVT::v4i64, 4/*#Ops*/, 0, 2, 3, 4, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VINSERTF64x2Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*213254*/                0, // EndSwitchType
/*213255*/              /*SwitchOpcode*/ 112, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->213370
/*213258*/                OPC_RecordChild0, // #2 = $src
/*213259*/                OPC_MoveChild1,
/*213260*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*213263*/                OPC_CheckType, MVT::iPTR,
/*213265*/                OPC_MoveParent,
/*213266*/                OPC_SwitchType /*3 cases */, 32, MVT::v8i32,// ->213301
/*213269*/                  OPC_MoveParent,
/*213270*/                  OPC_MoveParent,
/*213271*/                  OPC_MoveChild2,
/*213272*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*213275*/                  OPC_MoveChild0,
/*213276*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213279*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213281*/                  OPC_CheckType, MVT::v8i32,
/*213283*/                  OPC_MoveParent,
/*213284*/                  OPC_MoveParent,
/*213285*/                  OPC_CheckType, MVT::v4i64,
/*213287*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*213289*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*213292*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 2, 3, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VEXTRACTI64x4Zrrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16i32] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ext))
/*213301*/                /*SwitchType*/ 32, MVT::v16i16,// ->213335
/*213303*/                  OPC_MoveParent,
/*213304*/                  OPC_MoveParent,
/*213305*/                  OPC_MoveChild2,
/*213306*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*213309*/                  OPC_MoveChild0,
/*213310*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213313*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213315*/                  OPC_CheckType, MVT::v8i32,
/*213317*/                  OPC_MoveParent,
/*213318*/                  OPC_MoveParent,
/*213319*/                  OPC_CheckType, MVT::v4i64,
/*213321*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*213323*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*213326*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 2, 3, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VEXTRACTI64x4Zrrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/*213335*/                /*SwitchType*/ 32, MVT::v32i8,// ->213369
/*213337*/                  OPC_MoveParent,
/*213338*/                  OPC_MoveParent,
/*213339*/                  OPC_MoveChild2,
/*213340*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*213343*/                  OPC_MoveChild0,
/*213344*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213347*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213349*/                  OPC_CheckType, MVT::v8i32,
/*213351*/                  OPC_MoveParent,
/*213352*/                  OPC_MoveParent,
/*213353*/                  OPC_CheckType, MVT::v4i64,
/*213355*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*213357*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*213360*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 2, 3, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VEXTRACTI64x4Zrrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/*213369*/                0, // EndSwitchType
/*213370*/              0, // EndSwitchOpcode
/*213371*/            /*Scope*/ 125|128,1/*253*/, /*->213626*/
/*213373*/              OPC_MoveChild0,
/*213374*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*213377*/              OPC_RecordChild0, // #1 = $src
/*213378*/              OPC_SwitchType /*3 cases */, 80, MVT::v2i64,// ->213461
/*213381*/                OPC_Scope, 38, /*->213421*/ // 2 children in Scope
/*213383*/                  OPC_CheckChild0Type, MVT::v4i64,
/*213385*/                  OPC_CheckChild1Integer, 0, 
/*213387*/                  OPC_CheckChild1Type, MVT::iPTR,
/*213389*/                  OPC_MoveParent,
/*213390*/                  OPC_MoveParent,
/*213391*/                  OPC_MoveChild2,
/*213392*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213395*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213397*/                  OPC_MoveParent,
/*213398*/                  OPC_CheckType, MVT::v4i32,
/*213400*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213402*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*213405*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v2i64, 2/*#Ops*/, 1, 2,  // Results = #3
/*213413*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrkz), 0,
                                MVT::v4i32, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, 0:{ *:[iPTR] })), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 18
                            // Dst: (VMOVDQA32Z128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }))
/*213421*/                /*Scope*/ 38, /*->213460*/
/*213422*/                  OPC_CheckChild0Type, MVT::v8i64,
/*213424*/                  OPC_CheckChild1Integer, 0, 
/*213426*/                  OPC_CheckChild1Type, MVT::iPTR,
/*213428*/                  OPC_MoveParent,
/*213429*/                  OPC_MoveParent,
/*213430*/                  OPC_MoveChild2,
/*213431*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213434*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213436*/                  OPC_MoveParent,
/*213437*/                  OPC_CheckType, MVT::v4i32,
/*213439*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213441*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*213444*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v2i64, 2/*#Ops*/, 1, 2,  // Results = #3
/*213452*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrkz), 0,
                                MVT::v4i32, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] })), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 18
                            // Dst: (VMOVDQA32Z128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, sub_xmm:{ *:[i32] }))
/*213460*/                0, /*End of Scope*/
/*213461*/              /*SwitchType*/ 80, MVT::v8i16,// ->213543
/*213463*/                OPC_Scope, 38, /*->213503*/ // 2 children in Scope
/*213465*/                  OPC_CheckChild0Type, MVT::v16i16,
/*213467*/                  OPC_CheckChild1Integer, 0, 
/*213469*/                  OPC_CheckChild1Type, MVT::iPTR,
/*213471*/                  OPC_MoveParent,
/*213472*/                  OPC_MoveParent,
/*213473*/                  OPC_MoveChild2,
/*213474*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213477*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213479*/                  OPC_MoveParent,
/*213480*/                  OPC_CheckType, MVT::v4i32,
/*213482*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213484*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*213487*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v8i16, 2/*#Ops*/, 1, 2,  // Results = #3
/*213495*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrkz), 0,
                                MVT::v4i32, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, 0:{ *:[iPTR] })), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 18
                            // Dst: (VMOVDQA32Z128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] }))
/*213503*/                /*Scope*/ 38, /*->213542*/
/*213504*/                  OPC_CheckChild0Type, MVT::v32i16,
/*213506*/                  OPC_CheckChild1Integer, 0, 
/*213508*/                  OPC_CheckChild1Type, MVT::iPTR,
/*213510*/                  OPC_MoveParent,
/*213511*/                  OPC_MoveParent,
/*213512*/                  OPC_MoveChild2,
/*213513*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213516*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213518*/                  OPC_MoveParent,
/*213519*/                  OPC_CheckType, MVT::v4i32,
/*213521*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213523*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*213526*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v8i16, 2/*#Ops*/, 1, 2,  // Results = #3
/*213534*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrkz), 0,
                                MVT::v4i32, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] })), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 18
                            // Dst: (VMOVDQA32Z128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, sub_xmm:{ *:[i32] }))
/*213542*/                0, /*End of Scope*/
/*213543*/              /*SwitchType*/ 80, MVT::v16i8,// ->213625
/*213545*/                OPC_Scope, 38, /*->213585*/ // 2 children in Scope
/*213547*/                  OPC_CheckChild0Type, MVT::v32i8,
/*213549*/                  OPC_CheckChild1Integer, 0, 
/*213551*/                  OPC_CheckChild1Type, MVT::iPTR,
/*213553*/                  OPC_MoveParent,
/*213554*/                  OPC_MoveParent,
/*213555*/                  OPC_MoveChild2,
/*213556*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213559*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213561*/                  OPC_MoveParent,
/*213562*/                  OPC_CheckType, MVT::v4i32,
/*213564*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213566*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*213569*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v16i8, 2/*#Ops*/, 1, 2,  // Results = #3
/*213577*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrkz), 0,
                                MVT::v4i32, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, 0:{ *:[iPTR] })), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 18
                            // Dst: (VMOVDQA32Z128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] }))
/*213585*/                /*Scope*/ 38, /*->213624*/
/*213586*/                  OPC_CheckChild0Type, MVT::v64i8,
/*213588*/                  OPC_CheckChild1Integer, 0, 
/*213590*/                  OPC_CheckChild1Type, MVT::iPTR,
/*213592*/                  OPC_MoveParent,
/*213593*/                  OPC_MoveParent,
/*213594*/                  OPC_MoveChild2,
/*213595*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*213598*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*213600*/                  OPC_MoveParent,
/*213601*/                  OPC_CheckType, MVT::v4i32,
/*213603*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213605*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*213608*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v16i8, 2/*#Ops*/, 1, 2,  // Results = #3
/*213616*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrkz), 0,
                                MVT::v4i32, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] })), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 18
                            // Dst: (VMOVDQA32Z128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, sub_xmm:{ *:[i32] }))
/*213624*/                0, /*End of Scope*/
/*213625*/              0, // EndSwitchType
/*213626*/            0, /*End of Scope*/
/*213627*/          /*SwitchOpcode*/ 32|128,2/*288*/, TARGET_VAL(X86ISD::VPERMV3),// ->213919
/*213631*/            OPC_RecordChild0, // #1 = $src2
/*213632*/            OPC_RecordChild1, // #2 = $src1
/*213633*/            OPC_MoveChild2,
/*213634*/            OPC_SwitchOpcode /*3 cases */, 73, TARGET_VAL(ISD::BITCAST),// ->213711
/*213638*/              OPC_MoveChild0,
/*213639*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*213642*/              OPC_RecordMemRef,
/*213643*/              OPC_RecordNode, // #3 = 'ld' chained node
/*213644*/              OPC_CheckFoldableChainNode,
/*213645*/              OPC_RecordChild1, // #4 = $src3
/*213646*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*213648*/              OPC_CheckPredicate, 9, // Predicate_load
/*213650*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*213652*/              OPC_CheckType, MVT::v2i64,
/*213654*/              OPC_MoveParent,
/*213655*/              OPC_MoveParent,
/*213656*/              OPC_MoveParent,
/*213657*/              OPC_CheckType, MVT::v4i32,
/*213659*/              OPC_Scope, 24, /*->213685*/ // 2 children in Scope
/*213661*/                OPC_CheckChild2Same, 2,
/*213663*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213665*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213668*/                OPC_EmitMergeInputChains, 1, 3, 
/*213671*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2D128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                          // Dst: (VPERMI2D128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213685*/              /*Scope*/ 24, /*->213710*/
/*213686*/                OPC_CheckChild2Same, 1,
/*213688*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213690*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213693*/                OPC_EmitMergeInputChains, 1, 3, 
/*213696*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                          // Dst: (VPERMT2D128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213710*/              0, /*End of Scope*/
/*213711*/            /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(X86ISD::VBROADCAST),// ->213849
/*213715*/              OPC_MoveChild0,
/*213716*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*213719*/              OPC_RecordMemRef,
/*213720*/              OPC_RecordNode, // #3 = 'ld' chained node
/*213721*/              OPC_CheckFoldableChainNode,
/*213722*/              OPC_RecordChild1, // #4 = $src3
/*213723*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*213725*/              OPC_SwitchType /*2 cases */, 59, MVT::i32,// ->213787
/*213728*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*213730*/                OPC_MoveParent,
/*213731*/                OPC_MoveParent,
/*213732*/                OPC_MoveParent,
/*213733*/                OPC_CheckType, MVT::v4i32,
/*213735*/                OPC_Scope, 24, /*->213761*/ // 2 children in Scope
/*213737*/                  OPC_CheckChild2Same, 2,
/*213739*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213741*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213744*/                  OPC_EmitMergeInputChains, 1, 3, 
/*213747*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2D128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                            // Dst: (VPERMI2D128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213761*/                /*Scope*/ 24, /*->213786*/
/*213762*/                  OPC_CheckChild2Same, 1,
/*213764*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213766*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213769*/                  OPC_EmitMergeInputChains, 1, 3, 
/*213772*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                            // Dst: (VPERMT2D128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213786*/                0, /*End of Scope*/
/*213787*/              /*SwitchType*/ 59, MVT::i64,// ->213848
/*213789*/                OPC_CheckPredicate, 9, // Predicate_load
/*213791*/                OPC_MoveParent,
/*213792*/                OPC_MoveParent,
/*213793*/                OPC_MoveParent,
/*213794*/                OPC_CheckType, MVT::v4i64,
/*213796*/                OPC_Scope, 24, /*->213822*/ // 2 children in Scope
/*213798*/                  OPC_CheckChild2Same, 2,
/*213800*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213802*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213805*/                  OPC_EmitMergeInputChains, 1, 3, 
/*213808*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Q256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                            // Dst: (VPERMI2Q256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213822*/                /*Scope*/ 24, /*->213847*/
/*213823*/                  OPC_CheckChild2Same, 1,
/*213825*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213827*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213830*/                  OPC_EmitMergeInputChains, 1, 3, 
/*213833*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                            // Dst: (VPERMT2Q256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213847*/                0, /*End of Scope*/
/*213848*/              0, // EndSwitchType
/*213849*/            /*SwitchOpcode*/ 66, TARGET_VAL(ISD::LOAD),// ->213918
/*213852*/              OPC_RecordMemRef,
/*213853*/              OPC_RecordNode, // #3 = 'ld' chained node
/*213854*/              OPC_CheckFoldableChainNode,
/*213855*/              OPC_RecordChild1, // #4 = $src3
/*213856*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*213858*/              OPC_CheckPredicate, 9, // Predicate_load
/*213860*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*213862*/              OPC_MoveParent,
/*213863*/              OPC_MoveParent,
/*213864*/              OPC_CheckType, MVT::v4i64,
/*213866*/              OPC_Scope, 24, /*->213892*/ // 2 children in Scope
/*213868*/                OPC_CheckChild2Same, 2,
/*213870*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213872*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213875*/                OPC_EmitMergeInputChains, 1, 3, 
/*213878*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Q256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMI2Q256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213892*/              /*Scope*/ 24, /*->213917*/
/*213893*/                OPC_CheckChild2Same, 1,
/*213895*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213897*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213900*/                OPC_EmitMergeInputChains, 1, 3, 
/*213903*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2Q256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213917*/              0, /*End of Scope*/
/*213918*/            0, // EndSwitchOpcode
/*213919*/          /*SwitchOpcode*/ 80|128,2/*336*/, TARGET_VAL(ISD::ADD),// ->214259
/*213923*/            OPC_Scope, 124, /*->214049*/ // 4 children in Scope
/*213925*/              OPC_RecordChild0, // #1 = $src1
/*213926*/              OPC_MoveChild1,
/*213927*/              OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(X86ISD::VBROADCAST),// ->214003
/*213931*/                OPC_MoveChild0,
/*213932*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*213935*/                OPC_RecordMemRef,
/*213936*/                OPC_RecordNode, // #2 = 'ld' chained node
/*213937*/                OPC_CheckFoldableChainNode,
/*213938*/                OPC_RecordChild1, // #3 = $src2
/*213939*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*213941*/                OPC_SwitchType /*2 cases */, 28, MVT::i64,// ->213972
/*213944*/                  OPC_CheckPredicate, 9, // Predicate_load
/*213946*/                  OPC_MoveParent,
/*213947*/                  OPC_MoveParent,
/*213948*/                  OPC_MoveParent,
/*213949*/                  OPC_RecordChild2, // #4 = $src0
/*213950*/                  OPC_CheckType, MVT::v4i64,
/*213952*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213954*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*213957*/                  OPC_EmitMergeInputChains1_2,
/*213958*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPADDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*213972*/                /*SwitchType*/ 28, MVT::i32,// ->214002
/*213974*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*213976*/                  OPC_MoveParent,
/*213977*/                  OPC_MoveParent,
/*213978*/                  OPC_MoveParent,
/*213979*/                  OPC_RecordChild2, // #4 = $src0
/*213980*/                  OPC_CheckType, MVT::v4i32,
/*213982*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213984*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*213987*/                  OPC_EmitMergeInputChains1_2,
/*213988*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPADDDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214002*/                0, // EndSwitchType
/*214003*/              /*SwitchOpcode*/ 42, TARGET_VAL(ISD::BITCAST),// ->214048
/*214006*/                OPC_MoveChild0,
/*214007*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214010*/                OPC_RecordMemRef,
/*214011*/                OPC_RecordNode, // #2 = 'ld' chained node
/*214012*/                OPC_CheckFoldableChainNode,
/*214013*/                OPC_RecordChild1, // #3 = $src2
/*214014*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214016*/                OPC_CheckPredicate, 9, // Predicate_load
/*214018*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*214020*/                OPC_CheckType, MVT::v2i64,
/*214022*/                OPC_MoveParent,
/*214023*/                OPC_MoveParent,
/*214024*/                OPC_MoveParent,
/*214025*/                OPC_RecordChild2, // #4 = $src0
/*214026*/                OPC_CheckType, MVT::v4i32,
/*214028*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214030*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214033*/                OPC_EmitMergeInputChains1_2,
/*214034*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPADDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214048*/              0, // EndSwitchOpcode
/*214049*/            /*Scope*/ 126, /*->214176*/
/*214050*/              OPC_MoveChild0,
/*214051*/              OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(X86ISD::VBROADCAST),// ->214129
/*214055*/                OPC_MoveChild0,
/*214056*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214059*/                OPC_RecordMemRef,
/*214060*/                OPC_RecordNode, // #1 = 'ld' chained node
/*214061*/                OPC_CheckFoldableChainNode,
/*214062*/                OPC_RecordChild1, // #2 = $src2
/*214063*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214065*/                OPC_SwitchType /*2 cases */, 29, MVT::i64,// ->214097
/*214068*/                  OPC_CheckPredicate, 9, // Predicate_load
/*214070*/                  OPC_MoveParent,
/*214071*/                  OPC_MoveParent,
/*214072*/                  OPC_RecordChild1, // #3 = $src1
/*214073*/                  OPC_MoveParent,
/*214074*/                  OPC_RecordChild2, // #4 = $src0
/*214075*/                  OPC_CheckType, MVT::v4i64,
/*214077*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214079*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214082*/                  OPC_EmitMergeInputChains1_1,
/*214083*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPADDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214097*/                /*SwitchType*/ 29, MVT::i32,// ->214128
/*214099*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*214101*/                  OPC_MoveParent,
/*214102*/                  OPC_MoveParent,
/*214103*/                  OPC_RecordChild1, // #3 = $src1
/*214104*/                  OPC_MoveParent,
/*214105*/                  OPC_RecordChild2, // #4 = $src0
/*214106*/                  OPC_CheckType, MVT::v4i32,
/*214108*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214110*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214113*/                  OPC_EmitMergeInputChains1_1,
/*214114*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPADDDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214128*/                0, // EndSwitchType
/*214129*/              /*SwitchOpcode*/ 43, TARGET_VAL(ISD::BITCAST),// ->214175
/*214132*/                OPC_MoveChild0,
/*214133*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214136*/                OPC_RecordMemRef,
/*214137*/                OPC_RecordNode, // #1 = 'ld' chained node
/*214138*/                OPC_CheckFoldableChainNode,
/*214139*/                OPC_RecordChild1, // #2 = $src2
/*214140*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214142*/                OPC_CheckPredicate, 9, // Predicate_load
/*214144*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*214146*/                OPC_CheckType, MVT::v2i64,
/*214148*/                OPC_MoveParent,
/*214149*/                OPC_MoveParent,
/*214150*/                OPC_RecordChild1, // #3 = $src1
/*214151*/                OPC_MoveParent,
/*214152*/                OPC_RecordChild2, // #4 = $src0
/*214153*/                OPC_CheckType, MVT::v4i32,
/*214155*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214157*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214160*/                OPC_EmitMergeInputChains1_1,
/*214161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPADDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214175*/              0, // EndSwitchOpcode
/*214176*/            /*Scope*/ 40, /*->214217*/
/*214177*/              OPC_RecordChild0, // #1 = $src1
/*214178*/              OPC_MoveChild1,
/*214179*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214182*/              OPC_RecordMemRef,
/*214183*/              OPC_RecordNode, // #2 = 'ld' chained node
/*214184*/              OPC_CheckFoldableChainNode,
/*214185*/              OPC_RecordChild1, // #3 = $src2
/*214186*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214188*/              OPC_CheckPredicate, 9, // Predicate_load
/*214190*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*214192*/              OPC_MoveParent,
/*214193*/              OPC_MoveParent,
/*214194*/              OPC_RecordChild2, // #4 = $src0
/*214195*/              OPC_CheckType, MVT::v4i64,
/*214197*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214199*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214202*/              OPC_EmitMergeInputChains1_2,
/*214203*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPADDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214217*/            /*Scope*/ 40, /*->214258*/
/*214218*/              OPC_MoveChild0,
/*214219*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214222*/              OPC_RecordMemRef,
/*214223*/              OPC_RecordNode, // #1 = 'ld' chained node
/*214224*/              OPC_CheckFoldableChainNode,
/*214225*/              OPC_RecordChild1, // #2 = $src2
/*214226*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214228*/              OPC_CheckPredicate, 9, // Predicate_load
/*214230*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*214232*/              OPC_MoveParent,
/*214233*/              OPC_RecordChild1, // #3 = $src1
/*214234*/              OPC_MoveParent,
/*214235*/              OPC_RecordChild2, // #4 = $src0
/*214236*/              OPC_CheckType, MVT::v4i64,
/*214238*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214240*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214243*/              OPC_EmitMergeInputChains1_1,
/*214244*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPADDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214258*/            0, /*End of Scope*/
/*214259*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(ISD::SUB),// ->214425
/*214263*/            OPC_RecordChild0, // #1 = $src1
/*214264*/            OPC_MoveChild1,
/*214265*/            OPC_SwitchOpcode /*3 cases */, 72, TARGET_VAL(X86ISD::VBROADCAST),// ->214341
/*214269*/              OPC_MoveChild0,
/*214270*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214273*/              OPC_RecordMemRef,
/*214274*/              OPC_RecordNode, // #2 = 'ld' chained node
/*214275*/              OPC_CheckFoldableChainNode,
/*214276*/              OPC_RecordChild1, // #3 = $src2
/*214277*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214279*/              OPC_SwitchType /*2 cases */, 28, MVT::i64,// ->214310
/*214282*/                OPC_CheckPredicate, 9, // Predicate_load
/*214284*/                OPC_MoveParent,
/*214285*/                OPC_MoveParent,
/*214286*/                OPC_MoveParent,
/*214287*/                OPC_RecordChild2, // #4 = $src0
/*214288*/                OPC_CheckType, MVT::v4i64,
/*214290*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214292*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214295*/                OPC_EmitMergeInputChains1_2,
/*214296*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSUBQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214310*/              /*SwitchType*/ 28, MVT::i32,// ->214340
/*214312*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*214314*/                OPC_MoveParent,
/*214315*/                OPC_MoveParent,
/*214316*/                OPC_MoveParent,
/*214317*/                OPC_RecordChild2, // #4 = $src0
/*214318*/                OPC_CheckType, MVT::v4i32,
/*214320*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214322*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214325*/                OPC_EmitMergeInputChains1_2,
/*214326*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSUBDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214340*/              0, // EndSwitchType
/*214341*/            /*SwitchOpcode*/ 42, TARGET_VAL(ISD::BITCAST),// ->214386
/*214344*/              OPC_MoveChild0,
/*214345*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214348*/              OPC_RecordMemRef,
/*214349*/              OPC_RecordNode, // #2 = 'ld' chained node
/*214350*/              OPC_CheckFoldableChainNode,
/*214351*/              OPC_RecordChild1, // #3 = $src2
/*214352*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214354*/              OPC_CheckPredicate, 9, // Predicate_load
/*214356*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*214358*/              OPC_CheckType, MVT::v2i64,
/*214360*/              OPC_MoveParent,
/*214361*/              OPC_MoveParent,
/*214362*/              OPC_MoveParent,
/*214363*/              OPC_RecordChild2, // #4 = $src0
/*214364*/              OPC_CheckType, MVT::v4i32,
/*214366*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214368*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214371*/              OPC_EmitMergeInputChains1_2,
/*214372*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPSUBDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214386*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->214424
/*214389*/              OPC_RecordMemRef,
/*214390*/              OPC_RecordNode, // #2 = 'ld' chained node
/*214391*/              OPC_CheckFoldableChainNode,
/*214392*/              OPC_RecordChild1, // #3 = $src2
/*214393*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214395*/              OPC_CheckPredicate, 9, // Predicate_load
/*214397*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*214399*/              OPC_MoveParent,
/*214400*/              OPC_MoveParent,
/*214401*/              OPC_RecordChild2, // #4 = $src0
/*214402*/              OPC_CheckType, MVT::v4i64,
/*214404*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214406*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214409*/              OPC_EmitMergeInputChains1_2,
/*214410*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPSUBQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214424*/            0, // EndSwitchOpcode
/*214425*/          /*SwitchOpcode*/ 80|128,2/*336*/, TARGET_VAL(ISD::MUL),// ->214765
/*214429*/            OPC_Scope, 124, /*->214555*/ // 4 children in Scope
/*214431*/              OPC_RecordChild0, // #1 = $src1
/*214432*/              OPC_MoveChild1,
/*214433*/              OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->214479
/*214437*/                OPC_MoveChild0,
/*214438*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214441*/                OPC_RecordMemRef,
/*214442*/                OPC_RecordNode, // #2 = 'ld' chained node
/*214443*/                OPC_CheckFoldableChainNode,
/*214444*/                OPC_RecordChild1, // #3 = $src2
/*214445*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214447*/                OPC_CheckPredicate, 9, // Predicate_load
/*214449*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*214451*/                OPC_CheckType, MVT::v2i64,
/*214453*/                OPC_MoveParent,
/*214454*/                OPC_MoveParent,
/*214455*/                OPC_MoveParent,
/*214456*/                OPC_RecordChild2, // #4 = $src0
/*214457*/                OPC_CheckType, MVT::v4i32,
/*214459*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214461*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214464*/                OPC_EmitMergeInputChains1_2,
/*214465*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPMULLDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214479*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->214554
/*214482*/                OPC_MoveChild0,
/*214483*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214486*/                OPC_RecordMemRef,
/*214487*/                OPC_RecordNode, // #2 = 'ld' chained node
/*214488*/                OPC_CheckFoldableChainNode,
/*214489*/                OPC_RecordChild1, // #3 = $src2
/*214490*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214492*/                OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->214523
/*214495*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*214497*/                  OPC_MoveParent,
/*214498*/                  OPC_MoveParent,
/*214499*/                  OPC_MoveParent,
/*214500*/                  OPC_RecordChild2, // #4 = $src0
/*214501*/                  OPC_CheckType, MVT::v4i32,
/*214503*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214505*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214508*/                  OPC_EmitMergeInputChains1_2,
/*214509*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPMULLDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214523*/                /*SwitchType*/ 28, MVT::i64,// ->214553
/*214525*/                  OPC_CheckPredicate, 9, // Predicate_load
/*214527*/                  OPC_MoveParent,
/*214528*/                  OPC_MoveParent,
/*214529*/                  OPC_MoveParent,
/*214530*/                  OPC_RecordChild2, // #4 = $src0
/*214531*/                  OPC_CheckType, MVT::v4i64,
/*214533*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*214535*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214538*/                  OPC_EmitMergeInputChains1_2,
/*214539*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPMULLQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214553*/                0, // EndSwitchType
/*214554*/              0, // EndSwitchOpcode
/*214555*/            /*Scope*/ 126, /*->214682*/
/*214556*/              OPC_MoveChild0,
/*214557*/              OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::BITCAST),// ->214604
/*214561*/                OPC_MoveChild0,
/*214562*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214565*/                OPC_RecordMemRef,
/*214566*/                OPC_RecordNode, // #1 = 'ld' chained node
/*214567*/                OPC_CheckFoldableChainNode,
/*214568*/                OPC_RecordChild1, // #2 = $src2
/*214569*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214571*/                OPC_CheckPredicate, 9, // Predicate_load
/*214573*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*214575*/                OPC_CheckType, MVT::v2i64,
/*214577*/                OPC_MoveParent,
/*214578*/                OPC_MoveParent,
/*214579*/                OPC_RecordChild1, // #3 = $src1
/*214580*/                OPC_MoveParent,
/*214581*/                OPC_RecordChild2, // #4 = $src0
/*214582*/                OPC_CheckType, MVT::v4i32,
/*214584*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214586*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214589*/                OPC_EmitMergeInputChains1_1,
/*214590*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPMULLDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214604*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->214681
/*214607*/                OPC_MoveChild0,
/*214608*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214611*/                OPC_RecordMemRef,
/*214612*/                OPC_RecordNode, // #1 = 'ld' chained node
/*214613*/                OPC_CheckFoldableChainNode,
/*214614*/                OPC_RecordChild1, // #2 = $src2
/*214615*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214617*/                OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->214649
/*214620*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*214622*/                  OPC_MoveParent,
/*214623*/                  OPC_MoveParent,
/*214624*/                  OPC_RecordChild1, // #3 = $src1
/*214625*/                  OPC_MoveParent,
/*214626*/                  OPC_RecordChild2, // #4 = $src0
/*214627*/                  OPC_CheckType, MVT::v4i32,
/*214629*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214631*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214634*/                  OPC_EmitMergeInputChains1_1,
/*214635*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPMULLDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214649*/                /*SwitchType*/ 29, MVT::i64,// ->214680
/*214651*/                  OPC_CheckPredicate, 9, // Predicate_load
/*214653*/                  OPC_MoveParent,
/*214654*/                  OPC_MoveParent,
/*214655*/                  OPC_RecordChild1, // #3 = $src1
/*214656*/                  OPC_MoveParent,
/*214657*/                  OPC_RecordChild2, // #4 = $src0
/*214658*/                  OPC_CheckType, MVT::v4i64,
/*214660*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*214662*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214665*/                  OPC_EmitMergeInputChains1_1,
/*214666*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPMULLQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214680*/                0, // EndSwitchType
/*214681*/              0, // EndSwitchOpcode
/*214682*/            /*Scope*/ 40, /*->214723*/
/*214683*/              OPC_RecordChild0, // #1 = $src1
/*214684*/              OPC_MoveChild1,
/*214685*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214688*/              OPC_RecordMemRef,
/*214689*/              OPC_RecordNode, // #2 = 'ld' chained node
/*214690*/              OPC_CheckFoldableChainNode,
/*214691*/              OPC_RecordChild1, // #3 = $src2
/*214692*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214694*/              OPC_CheckPredicate, 9, // Predicate_load
/*214696*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*214698*/              OPC_MoveParent,
/*214699*/              OPC_MoveParent,
/*214700*/              OPC_RecordChild2, // #4 = $src0
/*214701*/              OPC_CheckType, MVT::v4i64,
/*214703*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*214705*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214708*/              OPC_EmitMergeInputChains1_2,
/*214709*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULLQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214723*/            /*Scope*/ 40, /*->214764*/
/*214724*/              OPC_MoveChild0,
/*214725*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214728*/              OPC_RecordMemRef,
/*214729*/              OPC_RecordNode, // #1 = 'ld' chained node
/*214730*/              OPC_CheckFoldableChainNode,
/*214731*/              OPC_RecordChild1, // #2 = $src2
/*214732*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214734*/              OPC_CheckPredicate, 9, // Predicate_load
/*214736*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*214738*/              OPC_MoveParent,
/*214739*/              OPC_RecordChild1, // #3 = $src1
/*214740*/              OPC_MoveParent,
/*214741*/              OPC_RecordChild2, // #4 = $src0
/*214742*/              OPC_CheckType, MVT::v4i64,
/*214744*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*214746*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214749*/              OPC_EmitMergeInputChains1_1,
/*214750*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULLQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214764*/            0, /*End of Scope*/
/*214765*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::PMULDQ),// ->214945
/*214769*/            OPC_Scope, 45, /*->214816*/ // 4 children in Scope
/*214771*/              OPC_RecordChild0, // #1 = $src1
/*214772*/              OPC_MoveChild1,
/*214773*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*214776*/              OPC_MoveChild0,
/*214777*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214780*/              OPC_RecordMemRef,
/*214781*/              OPC_RecordNode, // #2 = 'ld' chained node
/*214782*/              OPC_CheckFoldableChainNode,
/*214783*/              OPC_RecordChild1, // #3 = $src2
/*214784*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214786*/              OPC_CheckPredicate, 9, // Predicate_load
/*214788*/              OPC_CheckType, MVT::i64,
/*214790*/              OPC_MoveParent,
/*214791*/              OPC_MoveParent,
/*214792*/              OPC_MoveParent,
/*214793*/              OPC_RecordChild2, // #4 = $src0
/*214794*/              OPC_CheckType, MVT::v4i64,
/*214796*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214798*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214801*/              OPC_EmitMergeInputChains1_2,
/*214802*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuldq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPMULDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214816*/            /*Scope*/ 45, /*->214862*/
/*214817*/              OPC_MoveChild0,
/*214818*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*214821*/              OPC_MoveChild0,
/*214822*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214825*/              OPC_RecordMemRef,
/*214826*/              OPC_RecordNode, // #1 = 'ld' chained node
/*214827*/              OPC_CheckFoldableChainNode,
/*214828*/              OPC_RecordChild1, // #2 = $src2
/*214829*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214831*/              OPC_CheckPredicate, 9, // Predicate_load
/*214833*/              OPC_CheckType, MVT::i64,
/*214835*/              OPC_MoveParent,
/*214836*/              OPC_MoveParent,
/*214837*/              OPC_RecordChild1, // #3 = $src1
/*214838*/              OPC_MoveParent,
/*214839*/              OPC_RecordChild2, // #4 = $src0
/*214840*/              OPC_CheckType, MVT::v4i64,
/*214842*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214844*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214847*/              OPC_EmitMergeInputChains1_1,
/*214848*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuldq:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPMULDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214862*/            /*Scope*/ 40, /*->214903*/
/*214863*/              OPC_RecordChild0, // #1 = $src1
/*214864*/              OPC_MoveChild1,
/*214865*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214868*/              OPC_RecordMemRef,
/*214869*/              OPC_RecordNode, // #2 = 'ld' chained node
/*214870*/              OPC_CheckFoldableChainNode,
/*214871*/              OPC_RecordChild1, // #3 = $src2
/*214872*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214874*/              OPC_CheckPredicate, 9, // Predicate_load
/*214876*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*214878*/              OPC_MoveParent,
/*214879*/              OPC_MoveParent,
/*214880*/              OPC_RecordChild2, // #4 = $src0
/*214881*/              OPC_CheckType, MVT::v4i64,
/*214883*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214885*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214888*/              OPC_EmitMergeInputChains1_2,
/*214889*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuldq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214903*/            /*Scope*/ 40, /*->214944*/
/*214904*/              OPC_MoveChild0,
/*214905*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214908*/              OPC_RecordMemRef,
/*214909*/              OPC_RecordNode, // #1 = 'ld' chained node
/*214910*/              OPC_CheckFoldableChainNode,
/*214911*/              OPC_RecordChild1, // #2 = $src2
/*214912*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214914*/              OPC_CheckPredicate, 9, // Predicate_load
/*214916*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*214918*/              OPC_MoveParent,
/*214919*/              OPC_RecordChild1, // #3 = $src1
/*214920*/              OPC_MoveParent,
/*214921*/              OPC_RecordChild2, // #4 = $src0
/*214922*/              OPC_CheckType, MVT::v4i64,
/*214924*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214926*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214929*/              OPC_EmitMergeInputChains1_1,
/*214930*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuldq:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214944*/            0, /*End of Scope*/
/*214945*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::PMULUDQ),// ->215125
/*214949*/            OPC_Scope, 45, /*->214996*/ // 4 children in Scope
/*214951*/              OPC_RecordChild0, // #1 = $src1
/*214952*/              OPC_MoveChild1,
/*214953*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*214956*/              OPC_MoveChild0,
/*214957*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214960*/              OPC_RecordMemRef,
/*214961*/              OPC_RecordNode, // #2 = 'ld' chained node
/*214962*/              OPC_CheckFoldableChainNode,
/*214963*/              OPC_RecordChild1, // #3 = $src2
/*214964*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214966*/              OPC_CheckPredicate, 9, // Predicate_load
/*214968*/              OPC_CheckType, MVT::i64,
/*214970*/              OPC_MoveParent,
/*214971*/              OPC_MoveParent,
/*214972*/              OPC_MoveParent,
/*214973*/              OPC_RecordChild2, // #4 = $src0
/*214974*/              OPC_CheckType, MVT::v4i64,
/*214976*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214978*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214981*/              OPC_EmitMergeInputChains1_2,
/*214982*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuludq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPMULUDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214996*/            /*Scope*/ 45, /*->215042*/
/*214997*/              OPC_MoveChild0,
/*214998*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*215001*/              OPC_MoveChild0,
/*215002*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215005*/              OPC_RecordMemRef,
/*215006*/              OPC_RecordNode, // #1 = 'ld' chained node
/*215007*/              OPC_CheckFoldableChainNode,
/*215008*/              OPC_RecordChild1, // #2 = $src2
/*215009*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215011*/              OPC_CheckPredicate, 9, // Predicate_load
/*215013*/              OPC_CheckType, MVT::i64,
/*215015*/              OPC_MoveParent,
/*215016*/              OPC_MoveParent,
/*215017*/              OPC_RecordChild1, // #3 = $src1
/*215018*/              OPC_MoveParent,
/*215019*/              OPC_RecordChild2, // #4 = $src0
/*215020*/              OPC_CheckType, MVT::v4i64,
/*215022*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215024*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215027*/              OPC_EmitMergeInputChains1_1,
/*215028*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuludq:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPMULUDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215042*/            /*Scope*/ 40, /*->215083*/
/*215043*/              OPC_RecordChild0, // #1 = $src1
/*215044*/              OPC_MoveChild1,
/*215045*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215048*/              OPC_RecordMemRef,
/*215049*/              OPC_RecordNode, // #2 = 'ld' chained node
/*215050*/              OPC_CheckFoldableChainNode,
/*215051*/              OPC_RecordChild1, // #3 = $src2
/*215052*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215054*/              OPC_CheckPredicate, 9, // Predicate_load
/*215056*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*215058*/              OPC_MoveParent,
/*215059*/              OPC_MoveParent,
/*215060*/              OPC_RecordChild2, // #4 = $src0
/*215061*/              OPC_CheckType, MVT::v4i64,
/*215063*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215065*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215068*/              OPC_EmitMergeInputChains1_2,
/*215069*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuludq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULUDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215083*/            /*Scope*/ 40, /*->215124*/
/*215084*/              OPC_MoveChild0,
/*215085*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215088*/              OPC_RecordMemRef,
/*215089*/              OPC_RecordNode, // #1 = 'ld' chained node
/*215090*/              OPC_CheckFoldableChainNode,
/*215091*/              OPC_RecordChild1, // #2 = $src2
/*215092*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215094*/              OPC_CheckPredicate, 9, // Predicate_load
/*215096*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*215098*/              OPC_MoveParent,
/*215099*/              OPC_RecordChild1, // #3 = $src1
/*215100*/              OPC_MoveParent,
/*215101*/              OPC_RecordChild2, // #4 = $src0
/*215102*/              OPC_CheckType, MVT::v4i64,
/*215104*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215106*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215109*/              OPC_EmitMergeInputChains1_1,
/*215110*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuludq:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULUDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215124*/            0, /*End of Scope*/
/*215125*/          /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::VPMADDWD),// ->215226
/*215128*/            OPC_Scope, 47, /*->215177*/ // 2 children in Scope
/*215130*/              OPC_RecordChild0, // #1 = $src1
/*215131*/              OPC_MoveChild1,
/*215132*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*215135*/              OPC_MoveChild0,
/*215136*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215139*/              OPC_RecordMemRef,
/*215140*/              OPC_RecordNode, // #2 = 'ld' chained node
/*215141*/              OPC_CheckFoldableChainNode,
/*215142*/              OPC_RecordChild1, // #3 = $src2
/*215143*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215145*/              OPC_CheckPredicate, 9, // Predicate_load
/*215147*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*215149*/              OPC_CheckType, MVT::v2i64,
/*215151*/              OPC_MoveParent,
/*215152*/              OPC_MoveParent,
/*215153*/              OPC_MoveParent,
/*215154*/              OPC_RecordChild2, // #4 = $src0
/*215155*/              OPC_CheckType, MVT::v4i32,
/*215157*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*215159*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215162*/              OPC_EmitMergeInputChains1_2,
/*215163*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpmaddwd:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPMADDWDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215177*/            /*Scope*/ 47, /*->215225*/
/*215178*/              OPC_MoveChild0,
/*215179*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*215182*/              OPC_MoveChild0,
/*215183*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215186*/              OPC_RecordMemRef,
/*215187*/              OPC_RecordNode, // #1 = 'ld' chained node
/*215188*/              OPC_CheckFoldableChainNode,
/*215189*/              OPC_RecordChild1, // #2 = $src2
/*215190*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215192*/              OPC_CheckPredicate, 9, // Predicate_load
/*215194*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*215196*/              OPC_CheckType, MVT::v2i64,
/*215198*/              OPC_MoveParent,
/*215199*/              OPC_MoveParent,
/*215200*/              OPC_RecordChild1, // #3 = $src1
/*215201*/              OPC_MoveParent,
/*215202*/              OPC_RecordChild2, // #4 = $src0
/*215203*/              OPC_CheckType, MVT::v4i32,
/*215205*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*215207*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215210*/              OPC_EmitMergeInputChains1_1,
/*215211*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpmaddwd:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPMADDWDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215225*/            0, /*End of Scope*/
/*215226*/          /*SwitchOpcode*/ 80|128,2/*336*/, TARGET_VAL(ISD::SMAX),// ->215566
/*215230*/            OPC_Scope, 124, /*->215356*/ // 4 children in Scope
/*215232*/              OPC_RecordChild0, // #1 = $src1
/*215233*/              OPC_MoveChild1,
/*215234*/              OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->215280
/*215238*/                OPC_MoveChild0,
/*215239*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215242*/                OPC_RecordMemRef,
/*215243*/                OPC_RecordNode, // #2 = 'ld' chained node
/*215244*/                OPC_CheckFoldableChainNode,
/*215245*/                OPC_RecordChild1, // #3 = $src2
/*215246*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215248*/                OPC_CheckPredicate, 9, // Predicate_load
/*215250*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*215252*/                OPC_CheckType, MVT::v2i64,
/*215254*/                OPC_MoveParent,
/*215255*/                OPC_MoveParent,
/*215256*/                OPC_MoveParent,
/*215257*/                OPC_RecordChild2, // #4 = $src0
/*215258*/                OPC_CheckType, MVT::v4i32,
/*215260*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215262*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215265*/                OPC_EmitMergeInputChains1_2,
/*215266*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPMAXSDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215280*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->215355
/*215283*/                OPC_MoveChild0,
/*215284*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215287*/                OPC_RecordMemRef,
/*215288*/                OPC_RecordNode, // #2 = 'ld' chained node
/*215289*/                OPC_CheckFoldableChainNode,
/*215290*/                OPC_RecordChild1, // #3 = $src2
/*215291*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215293*/                OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->215324
/*215296*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*215298*/                  OPC_MoveParent,
/*215299*/                  OPC_MoveParent,
/*215300*/                  OPC_MoveParent,
/*215301*/                  OPC_RecordChild2, // #4 = $src0
/*215302*/                  OPC_CheckType, MVT::v4i32,
/*215304*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215306*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215309*/                  OPC_EmitMergeInputChains1_2,
/*215310*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215324*/                /*SwitchType*/ 28, MVT::i64,// ->215354
/*215326*/                  OPC_CheckPredicate, 9, // Predicate_load
/*215328*/                  OPC_MoveParent,
/*215329*/                  OPC_MoveParent,
/*215330*/                  OPC_MoveParent,
/*215331*/                  OPC_RecordChild2, // #4 = $src0
/*215332*/                  OPC_CheckType, MVT::v4i64,
/*215334*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215336*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215339*/                  OPC_EmitMergeInputChains1_2,
/*215340*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215354*/                0, // EndSwitchType
/*215355*/              0, // EndSwitchOpcode
/*215356*/            /*Scope*/ 126, /*->215483*/
/*215357*/              OPC_MoveChild0,
/*215358*/              OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::BITCAST),// ->215405
/*215362*/                OPC_MoveChild0,
/*215363*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215366*/                OPC_RecordMemRef,
/*215367*/                OPC_RecordNode, // #1 = 'ld' chained node
/*215368*/                OPC_CheckFoldableChainNode,
/*215369*/                OPC_RecordChild1, // #2 = $src2
/*215370*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215372*/                OPC_CheckPredicate, 9, // Predicate_load
/*215374*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*215376*/                OPC_CheckType, MVT::v2i64,
/*215378*/                OPC_MoveParent,
/*215379*/                OPC_MoveParent,
/*215380*/                OPC_RecordChild1, // #3 = $src1
/*215381*/                OPC_MoveParent,
/*215382*/                OPC_RecordChild2, // #4 = $src0
/*215383*/                OPC_CheckType, MVT::v4i32,
/*215385*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215387*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215390*/                OPC_EmitMergeInputChains1_1,
/*215391*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPMAXSDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215405*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->215482
/*215408*/                OPC_MoveChild0,
/*215409*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215412*/                OPC_RecordMemRef,
/*215413*/                OPC_RecordNode, // #1 = 'ld' chained node
/*215414*/                OPC_CheckFoldableChainNode,
/*215415*/                OPC_RecordChild1, // #2 = $src2
/*215416*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215418*/                OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->215450
/*215421*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*215423*/                  OPC_MoveParent,
/*215424*/                  OPC_MoveParent,
/*215425*/                  OPC_RecordChild1, // #3 = $src1
/*215426*/                  OPC_MoveParent,
/*215427*/                  OPC_RecordChild2, // #4 = $src0
/*215428*/                  OPC_CheckType, MVT::v4i32,
/*215430*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215432*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215435*/                  OPC_EmitMergeInputChains1_1,
/*215436*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215450*/                /*SwitchType*/ 29, MVT::i64,// ->215481
/*215452*/                  OPC_CheckPredicate, 9, // Predicate_load
/*215454*/                  OPC_MoveParent,
/*215455*/                  OPC_MoveParent,
/*215456*/                  OPC_RecordChild1, // #3 = $src1
/*215457*/                  OPC_MoveParent,
/*215458*/                  OPC_RecordChild2, // #4 = $src0
/*215459*/                  OPC_CheckType, MVT::v4i64,
/*215461*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215463*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215466*/                  OPC_EmitMergeInputChains1_1,
/*215467*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215481*/                0, // EndSwitchType
/*215482*/              0, // EndSwitchOpcode
/*215483*/            /*Scope*/ 40, /*->215524*/
/*215484*/              OPC_RecordChild0, // #1 = $src1
/*215485*/              OPC_MoveChild1,
/*215486*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215489*/              OPC_RecordMemRef,
/*215490*/              OPC_RecordNode, // #2 = 'ld' chained node
/*215491*/              OPC_CheckFoldableChainNode,
/*215492*/              OPC_RecordChild1, // #3 = $src2
/*215493*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215495*/              OPC_CheckPredicate, 9, // Predicate_load
/*215497*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*215499*/              OPC_MoveParent,
/*215500*/              OPC_MoveParent,
/*215501*/              OPC_RecordChild2, // #4 = $src0
/*215502*/              OPC_CheckType, MVT::v4i64,
/*215504*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215506*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215509*/              OPC_EmitMergeInputChains1_2,
/*215510*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMAXSQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215524*/            /*Scope*/ 40, /*->215565*/
/*215525*/              OPC_MoveChild0,
/*215526*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215529*/              OPC_RecordMemRef,
/*215530*/              OPC_RecordNode, // #1 = 'ld' chained node
/*215531*/              OPC_CheckFoldableChainNode,
/*215532*/              OPC_RecordChild1, // #2 = $src2
/*215533*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215535*/              OPC_CheckPredicate, 9, // Predicate_load
/*215537*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*215539*/              OPC_MoveParent,
/*215540*/              OPC_RecordChild1, // #3 = $src1
/*215541*/              OPC_MoveParent,
/*215542*/              OPC_RecordChild2, // #4 = $src0
/*215543*/              OPC_CheckType, MVT::v4i64,
/*215545*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215547*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215550*/              OPC_EmitMergeInputChains1_1,
/*215551*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMAXSQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215565*/            0, /*End of Scope*/
/*215566*/          /*SwitchOpcode*/ 80|128,2/*336*/, TARGET_VAL(ISD::UMAX),// ->215906
/*215570*/            OPC_Scope, 124, /*->215696*/ // 4 children in Scope
/*215572*/              OPC_RecordChild0, // #1 = $src1
/*215573*/              OPC_MoveChild1,
/*215574*/              OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->215620
/*215578*/                OPC_MoveChild0,
/*215579*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215582*/                OPC_RecordMemRef,
/*215583*/                OPC_RecordNode, // #2 = 'ld' chained node
/*215584*/                OPC_CheckFoldableChainNode,
/*215585*/                OPC_RecordChild1, // #3 = $src2
/*215586*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215588*/                OPC_CheckPredicate, 9, // Predicate_load
/*215590*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*215592*/                OPC_CheckType, MVT::v2i64,
/*215594*/                OPC_MoveParent,
/*215595*/                OPC_MoveParent,
/*215596*/                OPC_MoveParent,
/*215597*/                OPC_RecordChild2, // #4 = $src0
/*215598*/                OPC_CheckType, MVT::v4i32,
/*215600*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215602*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215605*/                OPC_EmitMergeInputChains1_2,
/*215606*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPMAXUDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215620*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->215695
/*215623*/                OPC_MoveChild0,
/*215624*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215627*/                OPC_RecordMemRef,
/*215628*/                OPC_RecordNode, // #2 = 'ld' chained node
/*215629*/                OPC_CheckFoldableChainNode,
/*215630*/                OPC_RecordChild1, // #3 = $src2
/*215631*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215633*/                OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->215664
/*215636*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*215638*/                  OPC_MoveParent,
/*215639*/                  OPC_MoveParent,
/*215640*/                  OPC_MoveParent,
/*215641*/                  OPC_RecordChild2, // #4 = $src0
/*215642*/                  OPC_CheckType, MVT::v4i32,
/*215644*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215646*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215649*/                  OPC_EmitMergeInputChains1_2,
/*215650*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215664*/                /*SwitchType*/ 28, MVT::i64,// ->215694
/*215666*/                  OPC_CheckPredicate, 9, // Predicate_load
/*215668*/                  OPC_MoveParent,
/*215669*/                  OPC_MoveParent,
/*215670*/                  OPC_MoveParent,
/*215671*/                  OPC_RecordChild2, // #4 = $src0
/*215672*/                  OPC_CheckType, MVT::v4i64,
/*215674*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215676*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215679*/                  OPC_EmitMergeInputChains1_2,
/*215680*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215694*/                0, // EndSwitchType
/*215695*/              0, // EndSwitchOpcode
/*215696*/            /*Scope*/ 126, /*->215823*/
/*215697*/              OPC_MoveChild0,
/*215698*/              OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::BITCAST),// ->215745
/*215702*/                OPC_MoveChild0,
/*215703*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215706*/                OPC_RecordMemRef,
/*215707*/                OPC_RecordNode, // #1 = 'ld' chained node
/*215708*/                OPC_CheckFoldableChainNode,
/*215709*/                OPC_RecordChild1, // #2 = $src2
/*215710*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215712*/                OPC_CheckPredicate, 9, // Predicate_load
/*215714*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*215716*/                OPC_CheckType, MVT::v2i64,
/*215718*/                OPC_MoveParent,
/*215719*/                OPC_MoveParent,
/*215720*/                OPC_RecordChild1, // #3 = $src1
/*215721*/                OPC_MoveParent,
/*215722*/                OPC_RecordChild2, // #4 = $src0
/*215723*/                OPC_CheckType, MVT::v4i32,
/*215725*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215727*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215730*/                OPC_EmitMergeInputChains1_1,
/*215731*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPMAXUDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215745*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->215822
/*215748*/                OPC_MoveChild0,
/*215749*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215752*/                OPC_RecordMemRef,
/*215753*/                OPC_RecordNode, // #1 = 'ld' chained node
/*215754*/                OPC_CheckFoldableChainNode,
/*215755*/                OPC_RecordChild1, // #2 = $src2
/*215756*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215758*/                OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->215790
/*215761*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*215763*/                  OPC_MoveParent,
/*215764*/                  OPC_MoveParent,
/*215765*/                  OPC_RecordChild1, // #3 = $src1
/*215766*/                  OPC_MoveParent,
/*215767*/                  OPC_RecordChild2, // #4 = $src0
/*215768*/                  OPC_CheckType, MVT::v4i32,
/*215770*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215772*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215775*/                  OPC_EmitMergeInputChains1_1,
/*215776*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215790*/                /*SwitchType*/ 29, MVT::i64,// ->215821
/*215792*/                  OPC_CheckPredicate, 9, // Predicate_load
/*215794*/                  OPC_MoveParent,
/*215795*/                  OPC_MoveParent,
/*215796*/                  OPC_RecordChild1, // #3 = $src1
/*215797*/                  OPC_MoveParent,
/*215798*/                  OPC_RecordChild2, // #4 = $src0
/*215799*/                  OPC_CheckType, MVT::v4i64,
/*215801*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215803*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215806*/                  OPC_EmitMergeInputChains1_1,
/*215807*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215821*/                0, // EndSwitchType
/*215822*/              0, // EndSwitchOpcode
/*215823*/            /*Scope*/ 40, /*->215864*/
/*215824*/              OPC_RecordChild0, // #1 = $src1
/*215825*/              OPC_MoveChild1,
/*215826*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215829*/              OPC_RecordMemRef,
/*215830*/              OPC_RecordNode, // #2 = 'ld' chained node
/*215831*/              OPC_CheckFoldableChainNode,
/*215832*/              OPC_RecordChild1, // #3 = $src2
/*215833*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215835*/              OPC_CheckPredicate, 9, // Predicate_load
/*215837*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*215839*/              OPC_MoveParent,
/*215840*/              OPC_MoveParent,
/*215841*/              OPC_RecordChild2, // #4 = $src0
/*215842*/              OPC_CheckType, MVT::v4i64,
/*215844*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215846*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215849*/              OPC_EmitMergeInputChains1_2,
/*215850*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMAXUQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215864*/            /*Scope*/ 40, /*->215905*/
/*215865*/              OPC_MoveChild0,
/*215866*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215869*/              OPC_RecordMemRef,
/*215870*/              OPC_RecordNode, // #1 = 'ld' chained node
/*215871*/              OPC_CheckFoldableChainNode,
/*215872*/              OPC_RecordChild1, // #2 = $src2
/*215873*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215875*/              OPC_CheckPredicate, 9, // Predicate_load
/*215877*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*215879*/              OPC_MoveParent,
/*215880*/              OPC_RecordChild1, // #3 = $src1
/*215881*/              OPC_MoveParent,
/*215882*/              OPC_RecordChild2, // #4 = $src0
/*215883*/              OPC_CheckType, MVT::v4i64,
/*215885*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215887*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215890*/              OPC_EmitMergeInputChains1_1,
/*215891*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMAXUQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215905*/            0, /*End of Scope*/
/*215906*/          /*SwitchOpcode*/ 80|128,2/*336*/, TARGET_VAL(ISD::SMIN),// ->216246
/*215910*/            OPC_Scope, 124, /*->216036*/ // 4 children in Scope
/*215912*/              OPC_RecordChild0, // #1 = $src1
/*215913*/              OPC_MoveChild1,
/*215914*/              OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->215960
/*215918*/                OPC_MoveChild0,
/*215919*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215922*/                OPC_RecordMemRef,
/*215923*/                OPC_RecordNode, // #2 = 'ld' chained node
/*215924*/                OPC_CheckFoldableChainNode,
/*215925*/                OPC_RecordChild1, // #3 = $src2
/*215926*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215928*/                OPC_CheckPredicate, 9, // Predicate_load
/*215930*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*215932*/                OPC_CheckType, MVT::v2i64,
/*215934*/                OPC_MoveParent,
/*215935*/                OPC_MoveParent,
/*215936*/                OPC_MoveParent,
/*215937*/                OPC_RecordChild2, // #4 = $src0
/*215938*/                OPC_CheckType, MVT::v4i32,
/*215940*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215942*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215945*/                OPC_EmitMergeInputChains1_2,
/*215946*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPMINSDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215960*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->216035
/*215963*/                OPC_MoveChild0,
/*215964*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*215967*/                OPC_RecordMemRef,
/*215968*/                OPC_RecordNode, // #2 = 'ld' chained node
/*215969*/                OPC_CheckFoldableChainNode,
/*215970*/                OPC_RecordChild1, // #3 = $src2
/*215971*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215973*/                OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->216004
/*215976*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*215978*/                  OPC_MoveParent,
/*215979*/                  OPC_MoveParent,
/*215980*/                  OPC_MoveParent,
/*215981*/                  OPC_RecordChild2, // #4 = $src0
/*215982*/                  OPC_CheckType, MVT::v4i32,
/*215984*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215986*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215989*/                  OPC_EmitMergeInputChains1_2,
/*215990*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINSDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216004*/                /*SwitchType*/ 28, MVT::i64,// ->216034
/*216006*/                  OPC_CheckPredicate, 9, // Predicate_load
/*216008*/                  OPC_MoveParent,
/*216009*/                  OPC_MoveParent,
/*216010*/                  OPC_MoveParent,
/*216011*/                  OPC_RecordChild2, // #4 = $src0
/*216012*/                  OPC_CheckType, MVT::v4i64,
/*216014*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216016*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216019*/                  OPC_EmitMergeInputChains1_2,
/*216020*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPMINSQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216034*/                0, // EndSwitchType
/*216035*/              0, // EndSwitchOpcode
/*216036*/            /*Scope*/ 126, /*->216163*/
/*216037*/              OPC_MoveChild0,
/*216038*/              OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::BITCAST),// ->216085
/*216042*/                OPC_MoveChild0,
/*216043*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216046*/                OPC_RecordMemRef,
/*216047*/                OPC_RecordNode, // #1 = 'ld' chained node
/*216048*/                OPC_CheckFoldableChainNode,
/*216049*/                OPC_RecordChild1, // #2 = $src2
/*216050*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216052*/                OPC_CheckPredicate, 9, // Predicate_load
/*216054*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*216056*/                OPC_CheckType, MVT::v2i64,
/*216058*/                OPC_MoveParent,
/*216059*/                OPC_MoveParent,
/*216060*/                OPC_RecordChild1, // #3 = $src1
/*216061*/                OPC_MoveParent,
/*216062*/                OPC_RecordChild2, // #4 = $src0
/*216063*/                OPC_CheckType, MVT::v4i32,
/*216065*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216067*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216070*/                OPC_EmitMergeInputChains1_1,
/*216071*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPMINSDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216085*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->216162
/*216088*/                OPC_MoveChild0,
/*216089*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216092*/                OPC_RecordMemRef,
/*216093*/                OPC_RecordNode, // #1 = 'ld' chained node
/*216094*/                OPC_CheckFoldableChainNode,
/*216095*/                OPC_RecordChild1, // #2 = $src2
/*216096*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216098*/                OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->216130
/*216101*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*216103*/                  OPC_MoveParent,
/*216104*/                  OPC_MoveParent,
/*216105*/                  OPC_RecordChild1, // #3 = $src1
/*216106*/                  OPC_MoveParent,
/*216107*/                  OPC_RecordChild2, // #4 = $src0
/*216108*/                  OPC_CheckType, MVT::v4i32,
/*216110*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216112*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216115*/                  OPC_EmitMergeInputChains1_1,
/*216116*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINSDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216130*/                /*SwitchType*/ 29, MVT::i64,// ->216161
/*216132*/                  OPC_CheckPredicate, 9, // Predicate_load
/*216134*/                  OPC_MoveParent,
/*216135*/                  OPC_MoveParent,
/*216136*/                  OPC_RecordChild1, // #3 = $src1
/*216137*/                  OPC_MoveParent,
/*216138*/                  OPC_RecordChild2, // #4 = $src0
/*216139*/                  OPC_CheckType, MVT::v4i64,
/*216141*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216143*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216146*/                  OPC_EmitMergeInputChains1_1,
/*216147*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPMINSQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216161*/                0, // EndSwitchType
/*216162*/              0, // EndSwitchOpcode
/*216163*/            /*Scope*/ 40, /*->216204*/
/*216164*/              OPC_RecordChild0, // #1 = $src1
/*216165*/              OPC_MoveChild1,
/*216166*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216169*/              OPC_RecordMemRef,
/*216170*/              OPC_RecordNode, // #2 = 'ld' chained node
/*216171*/              OPC_CheckFoldableChainNode,
/*216172*/              OPC_RecordChild1, // #3 = $src2
/*216173*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216175*/              OPC_CheckPredicate, 9, // Predicate_load
/*216177*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*216179*/              OPC_MoveParent,
/*216180*/              OPC_MoveParent,
/*216181*/              OPC_RecordChild2, // #4 = $src0
/*216182*/              OPC_CheckType, MVT::v4i64,
/*216184*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216186*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216189*/              OPC_EmitMergeInputChains1_2,
/*216190*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMINSQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216204*/            /*Scope*/ 40, /*->216245*/
/*216205*/              OPC_MoveChild0,
/*216206*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216209*/              OPC_RecordMemRef,
/*216210*/              OPC_RecordNode, // #1 = 'ld' chained node
/*216211*/              OPC_CheckFoldableChainNode,
/*216212*/              OPC_RecordChild1, // #2 = $src2
/*216213*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216215*/              OPC_CheckPredicate, 9, // Predicate_load
/*216217*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*216219*/              OPC_MoveParent,
/*216220*/              OPC_RecordChild1, // #3 = $src1
/*216221*/              OPC_MoveParent,
/*216222*/              OPC_RecordChild2, // #4 = $src0
/*216223*/              OPC_CheckType, MVT::v4i64,
/*216225*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216227*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216230*/              OPC_EmitMergeInputChains1_1,
/*216231*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMINSQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216245*/            0, /*End of Scope*/
/*216246*/          /*SwitchOpcode*/ 80|128,2/*336*/, TARGET_VAL(ISD::UMIN),// ->216586
/*216250*/            OPC_Scope, 124, /*->216376*/ // 4 children in Scope
/*216252*/              OPC_RecordChild0, // #1 = $src1
/*216253*/              OPC_MoveChild1,
/*216254*/              OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->216300
/*216258*/                OPC_MoveChild0,
/*216259*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216262*/                OPC_RecordMemRef,
/*216263*/                OPC_RecordNode, // #2 = 'ld' chained node
/*216264*/                OPC_CheckFoldableChainNode,
/*216265*/                OPC_RecordChild1, // #3 = $src2
/*216266*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216268*/                OPC_CheckPredicate, 9, // Predicate_load
/*216270*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*216272*/                OPC_CheckType, MVT::v2i64,
/*216274*/                OPC_MoveParent,
/*216275*/                OPC_MoveParent,
/*216276*/                OPC_MoveParent,
/*216277*/                OPC_RecordChild2, // #4 = $src0
/*216278*/                OPC_CheckType, MVT::v4i32,
/*216280*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216282*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216285*/                OPC_EmitMergeInputChains1_2,
/*216286*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPMINUDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216300*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->216375
/*216303*/                OPC_MoveChild0,
/*216304*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216307*/                OPC_RecordMemRef,
/*216308*/                OPC_RecordNode, // #2 = 'ld' chained node
/*216309*/                OPC_CheckFoldableChainNode,
/*216310*/                OPC_RecordChild1, // #3 = $src2
/*216311*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216313*/                OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->216344
/*216316*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*216318*/                  OPC_MoveParent,
/*216319*/                  OPC_MoveParent,
/*216320*/                  OPC_MoveParent,
/*216321*/                  OPC_RecordChild2, // #4 = $src0
/*216322*/                  OPC_CheckType, MVT::v4i32,
/*216324*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216326*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216329*/                  OPC_EmitMergeInputChains1_2,
/*216330*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINUDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216344*/                /*SwitchType*/ 28, MVT::i64,// ->216374
/*216346*/                  OPC_CheckPredicate, 9, // Predicate_load
/*216348*/                  OPC_MoveParent,
/*216349*/                  OPC_MoveParent,
/*216350*/                  OPC_MoveParent,
/*216351*/                  OPC_RecordChild2, // #4 = $src0
/*216352*/                  OPC_CheckType, MVT::v4i64,
/*216354*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216356*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216359*/                  OPC_EmitMergeInputChains1_2,
/*216360*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPMINUQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216374*/                0, // EndSwitchType
/*216375*/              0, // EndSwitchOpcode
/*216376*/            /*Scope*/ 126, /*->216503*/
/*216377*/              OPC_MoveChild0,
/*216378*/              OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::BITCAST),// ->216425
/*216382*/                OPC_MoveChild0,
/*216383*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216386*/                OPC_RecordMemRef,
/*216387*/                OPC_RecordNode, // #1 = 'ld' chained node
/*216388*/                OPC_CheckFoldableChainNode,
/*216389*/                OPC_RecordChild1, // #2 = $src2
/*216390*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216392*/                OPC_CheckPredicate, 9, // Predicate_load
/*216394*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*216396*/                OPC_CheckType, MVT::v2i64,
/*216398*/                OPC_MoveParent,
/*216399*/                OPC_MoveParent,
/*216400*/                OPC_RecordChild1, // #3 = $src1
/*216401*/                OPC_MoveParent,
/*216402*/                OPC_RecordChild2, // #4 = $src0
/*216403*/                OPC_CheckType, MVT::v4i32,
/*216405*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216407*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216410*/                OPC_EmitMergeInputChains1_1,
/*216411*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPMINUDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216425*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->216502
/*216428*/                OPC_MoveChild0,
/*216429*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216432*/                OPC_RecordMemRef,
/*216433*/                OPC_RecordNode, // #1 = 'ld' chained node
/*216434*/                OPC_CheckFoldableChainNode,
/*216435*/                OPC_RecordChild1, // #2 = $src2
/*216436*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216438*/                OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->216470
/*216441*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*216443*/                  OPC_MoveParent,
/*216444*/                  OPC_MoveParent,
/*216445*/                  OPC_RecordChild1, // #3 = $src1
/*216446*/                  OPC_MoveParent,
/*216447*/                  OPC_RecordChild2, // #4 = $src0
/*216448*/                  OPC_CheckType, MVT::v4i32,
/*216450*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216452*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216455*/                  OPC_EmitMergeInputChains1_1,
/*216456*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINUDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216470*/                /*SwitchType*/ 29, MVT::i64,// ->216501
/*216472*/                  OPC_CheckPredicate, 9, // Predicate_load
/*216474*/                  OPC_MoveParent,
/*216475*/                  OPC_MoveParent,
/*216476*/                  OPC_RecordChild1, // #3 = $src1
/*216477*/                  OPC_MoveParent,
/*216478*/                  OPC_RecordChild2, // #4 = $src0
/*216479*/                  OPC_CheckType, MVT::v4i64,
/*216481*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216483*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216486*/                  OPC_EmitMergeInputChains1_1,
/*216487*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPMINUQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216501*/                0, // EndSwitchType
/*216502*/              0, // EndSwitchOpcode
/*216503*/            /*Scope*/ 40, /*->216544*/
/*216504*/              OPC_RecordChild0, // #1 = $src1
/*216505*/              OPC_MoveChild1,
/*216506*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216509*/              OPC_RecordMemRef,
/*216510*/              OPC_RecordNode, // #2 = 'ld' chained node
/*216511*/              OPC_CheckFoldableChainNode,
/*216512*/              OPC_RecordChild1, // #3 = $src2
/*216513*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216515*/              OPC_CheckPredicate, 9, // Predicate_load
/*216517*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*216519*/              OPC_MoveParent,
/*216520*/              OPC_MoveParent,
/*216521*/              OPC_RecordChild2, // #4 = $src0
/*216522*/              OPC_CheckType, MVT::v4i64,
/*216524*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216526*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216529*/              OPC_EmitMergeInputChains1_2,
/*216530*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMINUQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216544*/            /*Scope*/ 40, /*->216585*/
/*216545*/              OPC_MoveChild0,
/*216546*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216549*/              OPC_RecordMemRef,
/*216550*/              OPC_RecordNode, // #1 = 'ld' chained node
/*216551*/              OPC_CheckFoldableChainNode,
/*216552*/              OPC_RecordChild1, // #2 = $src2
/*216553*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216555*/              OPC_CheckPredicate, 9, // Predicate_load
/*216557*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*216559*/              OPC_MoveParent,
/*216560*/              OPC_RecordChild1, // #3 = $src1
/*216561*/              OPC_MoveParent,
/*216562*/              OPC_RecordChild2, // #4 = $src0
/*216563*/              OPC_CheckType, MVT::v4i64,
/*216565*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216567*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216570*/              OPC_EmitMergeInputChains1_1,
/*216571*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPMINUQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216585*/            0, /*End of Scope*/
/*216586*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(ISD::AND),// ->216766
/*216590*/            OPC_Scope, 45, /*->216637*/ // 4 children in Scope
/*216592*/              OPC_RecordChild0, // #1 = $src1
/*216593*/              OPC_MoveChild1,
/*216594*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*216597*/              OPC_MoveChild0,
/*216598*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216601*/              OPC_RecordMemRef,
/*216602*/              OPC_RecordNode, // #2 = 'ld' chained node
/*216603*/              OPC_CheckFoldableChainNode,
/*216604*/              OPC_RecordChild1, // #3 = $src2
/*216605*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216607*/              OPC_CheckPredicate, 9, // Predicate_load
/*216609*/              OPC_CheckType, MVT::i64,
/*216611*/              OPC_MoveParent,
/*216612*/              OPC_MoveParent,
/*216613*/              OPC_MoveParent,
/*216614*/              OPC_RecordChild2, // #4 = $src0
/*216615*/              OPC_CheckType, MVT::v4i64,
/*216617*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216619*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216622*/              OPC_EmitMergeInputChains1_2,
/*216623*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPANDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216637*/            /*Scope*/ 45, /*->216683*/
/*216638*/              OPC_MoveChild0,
/*216639*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*216642*/              OPC_MoveChild0,
/*216643*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216646*/              OPC_RecordMemRef,
/*216647*/              OPC_RecordNode, // #1 = 'ld' chained node
/*216648*/              OPC_CheckFoldableChainNode,
/*216649*/              OPC_RecordChild1, // #2 = $src2
/*216650*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216652*/              OPC_CheckPredicate, 9, // Predicate_load
/*216654*/              OPC_CheckType, MVT::i64,
/*216656*/              OPC_MoveParent,
/*216657*/              OPC_MoveParent,
/*216658*/              OPC_RecordChild1, // #3 = $src1
/*216659*/              OPC_MoveParent,
/*216660*/              OPC_RecordChild2, // #4 = $src0
/*216661*/              OPC_CheckType, MVT::v4i64,
/*216663*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216665*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216668*/              OPC_EmitMergeInputChains1_1,
/*216669*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPANDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216683*/            /*Scope*/ 40, /*->216724*/
/*216684*/              OPC_RecordChild0, // #1 = $src1
/*216685*/              OPC_MoveChild1,
/*216686*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216689*/              OPC_RecordMemRef,
/*216690*/              OPC_RecordNode, // #2 = 'ld' chained node
/*216691*/              OPC_CheckFoldableChainNode,
/*216692*/              OPC_RecordChild1, // #3 = $src2
/*216693*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216695*/              OPC_CheckPredicate, 9, // Predicate_load
/*216697*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*216699*/              OPC_MoveParent,
/*216700*/              OPC_MoveParent,
/*216701*/              OPC_RecordChild2, // #4 = $src0
/*216702*/              OPC_CheckType, MVT::v4i64,
/*216704*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216706*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216709*/              OPC_EmitMergeInputChains1_2,
/*216710*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216724*/            /*Scope*/ 40, /*->216765*/
/*216725*/              OPC_MoveChild0,
/*216726*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216729*/              OPC_RecordMemRef,
/*216730*/              OPC_RecordNode, // #1 = 'ld' chained node
/*216731*/              OPC_CheckFoldableChainNode,
/*216732*/              OPC_RecordChild1, // #2 = $src2
/*216733*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216735*/              OPC_CheckPredicate, 9, // Predicate_load
/*216737*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*216739*/              OPC_MoveParent,
/*216740*/              OPC_RecordChild1, // #3 = $src1
/*216741*/              OPC_MoveParent,
/*216742*/              OPC_RecordChild2, // #4 = $src0
/*216743*/              OPC_CheckType, MVT::v4i64,
/*216745*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216747*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216750*/              OPC_EmitMergeInputChains1_1,
/*216751*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216765*/            0, /*End of Scope*/
/*216766*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(ISD::OR),// ->216946
/*216770*/            OPC_Scope, 45, /*->216817*/ // 4 children in Scope
/*216772*/              OPC_RecordChild0, // #1 = $src1
/*216773*/              OPC_MoveChild1,
/*216774*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*216777*/              OPC_MoveChild0,
/*216778*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216781*/              OPC_RecordMemRef,
/*216782*/              OPC_RecordNode, // #2 = 'ld' chained node
/*216783*/              OPC_CheckFoldableChainNode,
/*216784*/              OPC_RecordChild1, // #3 = $src2
/*216785*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216787*/              OPC_CheckPredicate, 9, // Predicate_load
/*216789*/              OPC_CheckType, MVT::i64,
/*216791*/              OPC_MoveParent,
/*216792*/              OPC_MoveParent,
/*216793*/              OPC_MoveParent,
/*216794*/              OPC_RecordChild2, // #4 = $src0
/*216795*/              OPC_CheckType, MVT::v4i64,
/*216797*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216799*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216802*/              OPC_EmitMergeInputChains1_2,
/*216803*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPORQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216817*/            /*Scope*/ 45, /*->216863*/
/*216818*/              OPC_MoveChild0,
/*216819*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*216822*/              OPC_MoveChild0,
/*216823*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216826*/              OPC_RecordMemRef,
/*216827*/              OPC_RecordNode, // #1 = 'ld' chained node
/*216828*/              OPC_CheckFoldableChainNode,
/*216829*/              OPC_RecordChild1, // #2 = $src2
/*216830*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216832*/              OPC_CheckPredicate, 9, // Predicate_load
/*216834*/              OPC_CheckType, MVT::i64,
/*216836*/              OPC_MoveParent,
/*216837*/              OPC_MoveParent,
/*216838*/              OPC_RecordChild1, // #3 = $src1
/*216839*/              OPC_MoveParent,
/*216840*/              OPC_RecordChild2, // #4 = $src0
/*216841*/              OPC_CheckType, MVT::v4i64,
/*216843*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216845*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216848*/              OPC_EmitMergeInputChains1_1,
/*216849*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPORQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216863*/            /*Scope*/ 40, /*->216904*/
/*216864*/              OPC_RecordChild0, // #1 = $src1
/*216865*/              OPC_MoveChild1,
/*216866*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216869*/              OPC_RecordMemRef,
/*216870*/              OPC_RecordNode, // #2 = 'ld' chained node
/*216871*/              OPC_CheckFoldableChainNode,
/*216872*/              OPC_RecordChild1, // #3 = $src2
/*216873*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216875*/              OPC_CheckPredicate, 9, // Predicate_load
/*216877*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*216879*/              OPC_MoveParent,
/*216880*/              OPC_MoveParent,
/*216881*/              OPC_RecordChild2, // #4 = $src0
/*216882*/              OPC_CheckType, MVT::v4i64,
/*216884*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216886*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216889*/              OPC_EmitMergeInputChains1_2,
/*216890*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216904*/            /*Scope*/ 40, /*->216945*/
/*216905*/              OPC_MoveChild0,
/*216906*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216909*/              OPC_RecordMemRef,
/*216910*/              OPC_RecordNode, // #1 = 'ld' chained node
/*216911*/              OPC_CheckFoldableChainNode,
/*216912*/              OPC_RecordChild1, // #2 = $src2
/*216913*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216915*/              OPC_CheckPredicate, 9, // Predicate_load
/*216917*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*216919*/              OPC_MoveParent,
/*216920*/              OPC_RecordChild1, // #3 = $src1
/*216921*/              OPC_MoveParent,
/*216922*/              OPC_RecordChild2, // #4 = $src0
/*216923*/              OPC_CheckType, MVT::v4i64,
/*216925*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216927*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216930*/              OPC_EmitMergeInputChains1_1,
/*216931*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216945*/            0, /*End of Scope*/
/*216946*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(ISD::XOR),// ->217126
/*216950*/            OPC_Scope, 45, /*->216997*/ // 4 children in Scope
/*216952*/              OPC_RecordChild0, // #1 = $src1
/*216953*/              OPC_MoveChild1,
/*216954*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*216957*/              OPC_MoveChild0,
/*216958*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*216961*/              OPC_RecordMemRef,
/*216962*/              OPC_RecordNode, // #2 = 'ld' chained node
/*216963*/              OPC_CheckFoldableChainNode,
/*216964*/              OPC_RecordChild1, // #3 = $src2
/*216965*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216967*/              OPC_CheckPredicate, 9, // Predicate_load
/*216969*/              OPC_CheckType, MVT::i64,
/*216971*/              OPC_MoveParent,
/*216972*/              OPC_MoveParent,
/*216973*/              OPC_MoveParent,
/*216974*/              OPC_RecordChild2, // #4 = $src0
/*216975*/              OPC_CheckType, MVT::v4i64,
/*216977*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216979*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216982*/              OPC_EmitMergeInputChains1_2,
/*216983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPXORQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216997*/            /*Scope*/ 45, /*->217043*/
/*216998*/              OPC_MoveChild0,
/*216999*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*217002*/              OPC_MoveChild0,
/*217003*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217006*/              OPC_RecordMemRef,
/*217007*/              OPC_RecordNode, // #1 = 'ld' chained node
/*217008*/              OPC_CheckFoldableChainNode,
/*217009*/              OPC_RecordChild1, // #2 = $src2
/*217010*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217012*/              OPC_CheckPredicate, 9, // Predicate_load
/*217014*/              OPC_CheckType, MVT::i64,
/*217016*/              OPC_MoveParent,
/*217017*/              OPC_MoveParent,
/*217018*/              OPC_RecordChild1, // #3 = $src1
/*217019*/              OPC_MoveParent,
/*217020*/              OPC_RecordChild2, // #4 = $src0
/*217021*/              OPC_CheckType, MVT::v4i64,
/*217023*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217025*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217028*/              OPC_EmitMergeInputChains1_1,
/*217029*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPXORQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217043*/            /*Scope*/ 40, /*->217084*/
/*217044*/              OPC_RecordChild0, // #1 = $src1
/*217045*/              OPC_MoveChild1,
/*217046*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217049*/              OPC_RecordMemRef,
/*217050*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217051*/              OPC_CheckFoldableChainNode,
/*217052*/              OPC_RecordChild1, // #3 = $src2
/*217053*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217055*/              OPC_CheckPredicate, 9, // Predicate_load
/*217057*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217059*/              OPC_MoveParent,
/*217060*/              OPC_MoveParent,
/*217061*/              OPC_RecordChild2, // #4 = $src0
/*217062*/              OPC_CheckType, MVT::v4i64,
/*217064*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217066*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217069*/              OPC_EmitMergeInputChains1_2,
/*217070*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPXORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217084*/            /*Scope*/ 40, /*->217125*/
/*217085*/              OPC_MoveChild0,
/*217086*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217089*/              OPC_RecordMemRef,
/*217090*/              OPC_RecordNode, // #1 = 'ld' chained node
/*217091*/              OPC_CheckFoldableChainNode,
/*217092*/              OPC_RecordChild1, // #2 = $src2
/*217093*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217095*/              OPC_CheckPredicate, 9, // Predicate_load
/*217097*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217099*/              OPC_MoveParent,
/*217100*/              OPC_RecordChild1, // #3 = $src1
/*217101*/              OPC_MoveParent,
/*217102*/              OPC_RecordChild2, // #4 = $src0
/*217103*/              OPC_CheckType, MVT::v4i64,
/*217105*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217107*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217110*/              OPC_EmitMergeInputChains1_1,
/*217111*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPXORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217125*/            0, /*End of Scope*/
/*217126*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::ANDNP),// ->217214
/*217129*/            OPC_RecordChild0, // #1 = $src1
/*217130*/            OPC_MoveChild1,
/*217131*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(X86ISD::VBROADCAST),// ->217175
/*217135*/              OPC_MoveChild0,
/*217136*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217139*/              OPC_RecordMemRef,
/*217140*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217141*/              OPC_CheckFoldableChainNode,
/*217142*/              OPC_RecordChild1, // #3 = $src2
/*217143*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217145*/              OPC_CheckPredicate, 9, // Predicate_load
/*217147*/              OPC_CheckType, MVT::i64,
/*217149*/              OPC_MoveParent,
/*217150*/              OPC_MoveParent,
/*217151*/              OPC_MoveParent,
/*217152*/              OPC_RecordChild2, // #4 = $src0
/*217153*/              OPC_CheckType, MVT::v4i64,
/*217155*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217157*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217160*/              OPC_EmitMergeInputChains1_2,
/*217161*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPANDNQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217175*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->217213
/*217178*/              OPC_RecordMemRef,
/*217179*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217180*/              OPC_CheckFoldableChainNode,
/*217181*/              OPC_RecordChild1, // #3 = $src2
/*217182*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217184*/              OPC_CheckPredicate, 9, // Predicate_load
/*217186*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217188*/              OPC_MoveParent,
/*217189*/              OPC_MoveParent,
/*217190*/              OPC_RecordChild2, // #4 = $src0
/*217191*/              OPC_CheckType, MVT::v4i64,
/*217193*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217195*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217198*/              OPC_EmitMergeInputChains1_2,
/*217199*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPANDNQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217213*/            0, // EndSwitchOpcode
/*217214*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VSRLI),// ->217264
/*217217*/            OPC_MoveChild0,
/*217218*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217221*/            OPC_RecordMemRef,
/*217222*/            OPC_RecordNode, // #1 = 'ld' chained node
/*217223*/            OPC_CheckFoldableChainNode,
/*217224*/            OPC_RecordChild1, // #2 = $src1
/*217225*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217227*/            OPC_CheckPredicate, 9, // Predicate_load
/*217229*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*217231*/            OPC_MoveParent,
/*217232*/            OPC_RecordChild1, // #3 = $src2
/*217233*/            OPC_MoveChild1,
/*217234*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*217237*/            OPC_MoveParent,
/*217238*/            OPC_MoveParent,
/*217239*/            OPC_RecordChild2, // #4 = $src0
/*217240*/            OPC_CheckType, MVT::v4i64,
/*217242*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217244*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*217247*/            OPC_EmitMergeInputChains1_1,
/*217248*/            OPC_EmitConvertToTarget, 3,
/*217250*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                      // Dst: (VPSRLQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*217264*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VSHLI),// ->217314
/*217267*/            OPC_MoveChild0,
/*217268*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217271*/            OPC_RecordMemRef,
/*217272*/            OPC_RecordNode, // #1 = 'ld' chained node
/*217273*/            OPC_CheckFoldableChainNode,
/*217274*/            OPC_RecordChild1, // #2 = $src1
/*217275*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217277*/            OPC_CheckPredicate, 9, // Predicate_load
/*217279*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*217281*/            OPC_MoveParent,
/*217282*/            OPC_RecordChild1, // #3 = $src2
/*217283*/            OPC_MoveChild1,
/*217284*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*217287*/            OPC_MoveParent,
/*217288*/            OPC_MoveParent,
/*217289*/            OPC_RecordChild2, // #4 = $src0
/*217290*/            OPC_CheckType, MVT::v4i64,
/*217292*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217294*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*217297*/            OPC_EmitMergeInputChains1_1,
/*217298*/            OPC_EmitConvertToTarget, 3,
/*217300*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                      // Dst: (VPSLLQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*217314*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VSRAI),// ->217364
/*217317*/            OPC_MoveChild0,
/*217318*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217321*/            OPC_RecordMemRef,
/*217322*/            OPC_RecordNode, // #1 = 'ld' chained node
/*217323*/            OPC_CheckFoldableChainNode,
/*217324*/            OPC_RecordChild1, // #2 = $src1
/*217325*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217327*/            OPC_CheckPredicate, 9, // Predicate_load
/*217329*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*217331*/            OPC_MoveParent,
/*217332*/            OPC_RecordChild1, // #3 = $src2
/*217333*/            OPC_MoveChild1,
/*217334*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*217337*/            OPC_MoveParent,
/*217338*/            OPC_MoveParent,
/*217339*/            OPC_RecordChild2, // #4 = $src0
/*217340*/            OPC_CheckType, MVT::v4i64,
/*217342*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217344*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*217347*/            OPC_EmitMergeInputChains1_1,
/*217348*/            OPC_EmitConvertToTarget, 3,
/*217350*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                      // Dst: (VPSRAQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*217364*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VROTRI),// ->217414
/*217367*/            OPC_MoveChild0,
/*217368*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217371*/            OPC_RecordMemRef,
/*217372*/            OPC_RecordNode, // #1 = 'ld' chained node
/*217373*/            OPC_CheckFoldableChainNode,
/*217374*/            OPC_RecordChild1, // #2 = $src1
/*217375*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217377*/            OPC_CheckPredicate, 9, // Predicate_load
/*217379*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*217381*/            OPC_MoveParent,
/*217382*/            OPC_RecordChild1, // #3 = $src2
/*217383*/            OPC_MoveChild1,
/*217384*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*217387*/            OPC_MoveParent,
/*217388*/            OPC_MoveParent,
/*217389*/            OPC_RecordChild2, // #4 = $src0
/*217390*/            OPC_CheckType, MVT::v4i64,
/*217392*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217394*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*217397*/            OPC_EmitMergeInputChains1_1,
/*217398*/            OPC_EmitConvertToTarget, 3,
/*217400*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                      // Dst: (VPRORQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*217414*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VROTLI),// ->217464
/*217417*/            OPC_MoveChild0,
/*217418*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217421*/            OPC_RecordMemRef,
/*217422*/            OPC_RecordNode, // #1 = 'ld' chained node
/*217423*/            OPC_CheckFoldableChainNode,
/*217424*/            OPC_RecordChild1, // #2 = $src1
/*217425*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217427*/            OPC_CheckPredicate, 9, // Predicate_load
/*217429*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*217431*/            OPC_MoveParent,
/*217432*/            OPC_RecordChild1, // #3 = $src2
/*217433*/            OPC_MoveChild1,
/*217434*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*217437*/            OPC_MoveParent,
/*217438*/            OPC_MoveParent,
/*217439*/            OPC_RecordChild2, // #4 = $src0
/*217440*/            OPC_CheckType, MVT::v4i64,
/*217442*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217444*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*217447*/            OPC_EmitMergeInputChains1_1,
/*217448*/            OPC_EmitConvertToTarget, 3,
/*217450*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                      // Dst: (VPROLQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*217464*/          /*SwitchOpcode*/ 91, TARGET_VAL(X86ISD::VSHL),// ->217558
/*217467*/            OPC_RecordChild0, // #1 = $src1
/*217468*/            OPC_MoveChild1,
/*217469*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->217517
/*217473*/              OPC_MoveChild0,
/*217474*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217477*/              OPC_RecordMemRef,
/*217478*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217479*/              OPC_CheckFoldableChainNode,
/*217480*/              OPC_RecordChild1, // #3 = $src2
/*217481*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217483*/              OPC_CheckPredicate, 9, // Predicate_load
/*217485*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217487*/              OPC_CheckType, MVT::v2i64,
/*217489*/              OPC_MoveParent,
/*217490*/              OPC_CheckType, MVT::v4i32,
/*217492*/              OPC_MoveParent,
/*217493*/              OPC_MoveParent,
/*217494*/              OPC_RecordChild2, // #4 = $src0
/*217495*/              OPC_CheckType, MVT::v4i32,
/*217497*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217499*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217502*/              OPC_EmitMergeInputChains1_2,
/*217503*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPSLLDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217517*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->217557
/*217520*/              OPC_RecordMemRef,
/*217521*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217522*/              OPC_CheckFoldableChainNode,
/*217523*/              OPC_RecordChild1, // #3 = $src2
/*217524*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217526*/              OPC_CheckPredicate, 9, // Predicate_load
/*217528*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217530*/              OPC_CheckType, MVT::v2i64,
/*217532*/              OPC_MoveParent,
/*217533*/              OPC_MoveParent,
/*217534*/              OPC_RecordChild2, // #4 = $src0
/*217535*/              OPC_CheckType, MVT::v4i64,
/*217537*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217539*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217542*/              OPC_EmitMergeInputChains1_2,
/*217543*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPSLLQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217557*/            0, // EndSwitchOpcode
/*217558*/          /*SwitchOpcode*/ 91, TARGET_VAL(X86ISD::VSRA),// ->217652
/*217561*/            OPC_RecordChild0, // #1 = $src1
/*217562*/            OPC_MoveChild1,
/*217563*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->217611
/*217567*/              OPC_MoveChild0,
/*217568*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217571*/              OPC_RecordMemRef,
/*217572*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217573*/              OPC_CheckFoldableChainNode,
/*217574*/              OPC_RecordChild1, // #3 = $src2
/*217575*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217577*/              OPC_CheckPredicate, 9, // Predicate_load
/*217579*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217581*/              OPC_CheckType, MVT::v2i64,
/*217583*/              OPC_MoveParent,
/*217584*/              OPC_CheckType, MVT::v4i32,
/*217586*/              OPC_MoveParent,
/*217587*/              OPC_MoveParent,
/*217588*/              OPC_RecordChild2, // #4 = $src0
/*217589*/              OPC_CheckType, MVT::v4i32,
/*217591*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217593*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217596*/              OPC_EmitMergeInputChains1_2,
/*217597*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRADZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217611*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->217651
/*217614*/              OPC_RecordMemRef,
/*217615*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217616*/              OPC_CheckFoldableChainNode,
/*217617*/              OPC_RecordChild1, // #3 = $src2
/*217618*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217620*/              OPC_CheckPredicate, 9, // Predicate_load
/*217622*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217624*/              OPC_CheckType, MVT::v2i64,
/*217626*/              OPC_MoveParent,
/*217627*/              OPC_MoveParent,
/*217628*/              OPC_RecordChild2, // #4 = $src0
/*217629*/              OPC_CheckType, MVT::v4i64,
/*217631*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217633*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217636*/              OPC_EmitMergeInputChains1_2,
/*217637*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRAQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217651*/            0, // EndSwitchOpcode
/*217652*/          /*SwitchOpcode*/ 91, TARGET_VAL(X86ISD::VSRL),// ->217746
/*217655*/            OPC_RecordChild0, // #1 = $src1
/*217656*/            OPC_MoveChild1,
/*217657*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->217705
/*217661*/              OPC_MoveChild0,
/*217662*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217665*/              OPC_RecordMemRef,
/*217666*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217667*/              OPC_CheckFoldableChainNode,
/*217668*/              OPC_RecordChild1, // #3 = $src2
/*217669*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217671*/              OPC_CheckPredicate, 9, // Predicate_load
/*217673*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217675*/              OPC_CheckType, MVT::v2i64,
/*217677*/              OPC_MoveParent,
/*217678*/              OPC_CheckType, MVT::v4i32,
/*217680*/              OPC_MoveParent,
/*217681*/              OPC_MoveParent,
/*217682*/              OPC_RecordChild2, // #4 = $src0
/*217683*/              OPC_CheckType, MVT::v4i32,
/*217685*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217687*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217690*/              OPC_EmitMergeInputChains1_2,
/*217691*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRLDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217705*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->217745
/*217708*/              OPC_RecordMemRef,
/*217709*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217710*/              OPC_CheckFoldableChainNode,
/*217711*/              OPC_RecordChild1, // #3 = $src2
/*217712*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217714*/              OPC_CheckPredicate, 9, // Predicate_load
/*217716*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217718*/              OPC_CheckType, MVT::v2i64,
/*217720*/              OPC_MoveParent,
/*217721*/              OPC_MoveParent,
/*217722*/              OPC_RecordChild2, // #4 = $src0
/*217723*/              OPC_CheckType, MVT::v4i64,
/*217725*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217727*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217730*/              OPC_EmitMergeInputChains1_2,
/*217731*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRLQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217745*/            0, // EndSwitchOpcode
/*217746*/          /*SwitchOpcode*/ 42|128,1/*170*/, TARGET_VAL(ISD::SHL),// ->217920
/*217750*/            OPC_RecordChild0, // #1 = $src1
/*217751*/            OPC_MoveChild1,
/*217752*/            OPC_SwitchOpcode /*3 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->217800
/*217756*/              OPC_MoveChild0,
/*217757*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217760*/              OPC_RecordMemRef,
/*217761*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217762*/              OPC_CheckFoldableChainNode,
/*217763*/              OPC_RecordChild1, // #3 = $src2
/*217764*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217766*/              OPC_CheckPredicate, 9, // Predicate_load
/*217768*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217770*/              OPC_CheckType, MVT::v2i64,
/*217772*/              OPC_MoveParent,
/*217773*/              OPC_CheckType, MVT::v4i32,
/*217775*/              OPC_MoveParent,
/*217776*/              OPC_MoveParent,
/*217777*/              OPC_RecordChild2, // #4 = $src0
/*217778*/              OPC_CheckType, MVT::v4i32,
/*217780*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217782*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217785*/              OPC_EmitMergeInputChains1_2,
/*217786*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPSLLVDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217800*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->217879
/*217803*/              OPC_MoveChild0,
/*217804*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217807*/              OPC_RecordMemRef,
/*217808*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217809*/              OPC_CheckFoldableChainNode,
/*217810*/              OPC_RecordChild1, // #3 = $src2
/*217811*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217813*/              OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->217846
/*217816*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*217818*/                OPC_MoveParent,
/*217819*/                OPC_CheckType, MVT::v4i32,
/*217821*/                OPC_MoveParent,
/*217822*/                OPC_MoveParent,
/*217823*/                OPC_RecordChild2, // #4 = $src0
/*217824*/                OPC_CheckType, MVT::v4i32,
/*217826*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217828*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217831*/                OPC_EmitMergeInputChains1_2,
/*217832*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSLLVDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217846*/              /*SwitchType*/ 30, MVT::i64,// ->217878
/*217848*/                OPC_CheckPredicate, 9, // Predicate_load
/*217850*/                OPC_MoveParent,
/*217851*/                OPC_CheckType, MVT::v4i64,
/*217853*/                OPC_MoveParent,
/*217854*/                OPC_MoveParent,
/*217855*/                OPC_RecordChild2, // #4 = $src0
/*217856*/                OPC_CheckType, MVT::v4i64,
/*217858*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217860*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217863*/                OPC_EmitMergeInputChains1_2,
/*217864*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSLLVQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217878*/              0, // EndSwitchType
/*217879*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->217919
/*217882*/              OPC_RecordMemRef,
/*217883*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217884*/              OPC_CheckFoldableChainNode,
/*217885*/              OPC_RecordChild1, // #3 = $src2
/*217886*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217888*/              OPC_CheckPredicate, 9, // Predicate_load
/*217890*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217892*/              OPC_CheckType, MVT::v4i64,
/*217894*/              OPC_MoveParent,
/*217895*/              OPC_MoveParent,
/*217896*/              OPC_RecordChild2, // #4 = $src0
/*217897*/              OPC_CheckType, MVT::v4i64,
/*217899*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217901*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217904*/              OPC_EmitMergeInputChains1_2,
/*217905*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPSLLVQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217919*/            0, // EndSwitchOpcode
/*217920*/          /*SwitchOpcode*/ 42|128,1/*170*/, TARGET_VAL(ISD::SRA),// ->218094
/*217924*/            OPC_RecordChild0, // #1 = $src1
/*217925*/            OPC_MoveChild1,
/*217926*/            OPC_SwitchOpcode /*3 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->217974
/*217930*/              OPC_MoveChild0,
/*217931*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217934*/              OPC_RecordMemRef,
/*217935*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217936*/              OPC_CheckFoldableChainNode,
/*217937*/              OPC_RecordChild1, // #3 = $src2
/*217938*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217940*/              OPC_CheckPredicate, 9, // Predicate_load
/*217942*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*217944*/              OPC_CheckType, MVT::v2i64,
/*217946*/              OPC_MoveParent,
/*217947*/              OPC_CheckType, MVT::v4i32,
/*217949*/              OPC_MoveParent,
/*217950*/              OPC_MoveParent,
/*217951*/              OPC_RecordChild2, // #4 = $src0
/*217952*/              OPC_CheckType, MVT::v4i32,
/*217954*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217956*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217959*/              OPC_EmitMergeInputChains1_2,
/*217960*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRAVDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217974*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->218053
/*217977*/              OPC_MoveChild0,
/*217978*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217981*/              OPC_RecordMemRef,
/*217982*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217983*/              OPC_CheckFoldableChainNode,
/*217984*/              OPC_RecordChild1, // #3 = $src2
/*217985*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217987*/              OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->218020
/*217990*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*217992*/                OPC_MoveParent,
/*217993*/                OPC_CheckType, MVT::v4i32,
/*217995*/                OPC_MoveParent,
/*217996*/                OPC_MoveParent,
/*217997*/                OPC_RecordChild2, // #4 = $src0
/*217998*/                OPC_CheckType, MVT::v4i32,
/*218000*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218002*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218005*/                OPC_EmitMergeInputChains1_2,
/*218006*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218020*/              /*SwitchType*/ 30, MVT::i64,// ->218052
/*218022*/                OPC_CheckPredicate, 9, // Predicate_load
/*218024*/                OPC_MoveParent,
/*218025*/                OPC_CheckType, MVT::v4i64,
/*218027*/                OPC_MoveParent,
/*218028*/                OPC_MoveParent,
/*218029*/                OPC_RecordChild2, // #4 = $src0
/*218030*/                OPC_CheckType, MVT::v4i64,
/*218032*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218034*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218037*/                OPC_EmitMergeInputChains1_2,
/*218038*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218052*/              0, // EndSwitchType
/*218053*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->218093
/*218056*/              OPC_RecordMemRef,
/*218057*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218058*/              OPC_CheckFoldableChainNode,
/*218059*/              OPC_RecordChild1, // #3 = $src2
/*218060*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218062*/              OPC_CheckPredicate, 9, // Predicate_load
/*218064*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*218066*/              OPC_CheckType, MVT::v4i64,
/*218068*/              OPC_MoveParent,
/*218069*/              OPC_MoveParent,
/*218070*/              OPC_RecordChild2, // #4 = $src0
/*218071*/              OPC_CheckType, MVT::v4i64,
/*218073*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218075*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218078*/              OPC_EmitMergeInputChains1_2,
/*218079*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRAVQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218093*/            0, // EndSwitchOpcode
/*218094*/          /*SwitchOpcode*/ 42|128,1/*170*/, TARGET_VAL(ISD::SRL),// ->218268
/*218098*/            OPC_RecordChild0, // #1 = $src1
/*218099*/            OPC_MoveChild1,
/*218100*/            OPC_SwitchOpcode /*3 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->218148
/*218104*/              OPC_MoveChild0,
/*218105*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218108*/              OPC_RecordMemRef,
/*218109*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218110*/              OPC_CheckFoldableChainNode,
/*218111*/              OPC_RecordChild1, // #3 = $src2
/*218112*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218114*/              OPC_CheckPredicate, 9, // Predicate_load
/*218116*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*218118*/              OPC_CheckType, MVT::v2i64,
/*218120*/              OPC_MoveParent,
/*218121*/              OPC_CheckType, MVT::v4i32,
/*218123*/              OPC_MoveParent,
/*218124*/              OPC_MoveParent,
/*218125*/              OPC_RecordChild2, // #4 = $src0
/*218126*/              OPC_CheckType, MVT::v4i32,
/*218128*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218130*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218133*/              OPC_EmitMergeInputChains1_2,
/*218134*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRLVDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218148*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->218227
/*218151*/              OPC_MoveChild0,
/*218152*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218155*/              OPC_RecordMemRef,
/*218156*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218157*/              OPC_CheckFoldableChainNode,
/*218158*/              OPC_RecordChild1, // #3 = $src2
/*218159*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218161*/              OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->218194
/*218164*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*218166*/                OPC_MoveParent,
/*218167*/                OPC_CheckType, MVT::v4i32,
/*218169*/                OPC_MoveParent,
/*218170*/                OPC_MoveParent,
/*218171*/                OPC_RecordChild2, // #4 = $src0
/*218172*/                OPC_CheckType, MVT::v4i32,
/*218174*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218176*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218179*/                OPC_EmitMergeInputChains1_2,
/*218180*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRLVDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218194*/              /*SwitchType*/ 30, MVT::i64,// ->218226
/*218196*/                OPC_CheckPredicate, 9, // Predicate_load
/*218198*/                OPC_MoveParent,
/*218199*/                OPC_CheckType, MVT::v4i64,
/*218201*/                OPC_MoveParent,
/*218202*/                OPC_MoveParent,
/*218203*/                OPC_RecordChild2, // #4 = $src0
/*218204*/                OPC_CheckType, MVT::v4i64,
/*218206*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218208*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218211*/                OPC_EmitMergeInputChains1_2,
/*218212*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRLVQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218226*/              0, // EndSwitchType
/*218227*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->218267
/*218230*/              OPC_RecordMemRef,
/*218231*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218232*/              OPC_CheckFoldableChainNode,
/*218233*/              OPC_RecordChild1, // #3 = $src2
/*218234*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218236*/              OPC_CheckPredicate, 9, // Predicate_load
/*218238*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*218240*/              OPC_CheckType, MVT::v4i64,
/*218242*/              OPC_MoveParent,
/*218243*/              OPC_MoveParent,
/*218244*/              OPC_RecordChild2, // #4 = $src0
/*218245*/              OPC_CheckType, MVT::v4i64,
/*218247*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218249*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218252*/              OPC_EmitMergeInputChains1_2,
/*218253*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRLVQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218267*/            0, // EndSwitchOpcode
/*218268*/          /*SwitchOpcode*/ 42|128,1/*170*/, TARGET_VAL(ISD::ROTR),// ->218442
/*218272*/            OPC_RecordChild0, // #1 = $src1
/*218273*/            OPC_MoveChild1,
/*218274*/            OPC_SwitchOpcode /*3 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->218322
/*218278*/              OPC_MoveChild0,
/*218279*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218282*/              OPC_RecordMemRef,
/*218283*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218284*/              OPC_CheckFoldableChainNode,
/*218285*/              OPC_RecordChild1, // #3 = $src2
/*218286*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218288*/              OPC_CheckPredicate, 9, // Predicate_load
/*218290*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*218292*/              OPC_CheckType, MVT::v2i64,
/*218294*/              OPC_MoveParent,
/*218295*/              OPC_CheckType, MVT::v4i32,
/*218297*/              OPC_MoveParent,
/*218298*/              OPC_MoveParent,
/*218299*/              OPC_RecordChild2, // #4 = $src0
/*218300*/              OPC_CheckType, MVT::v4i32,
/*218302*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218304*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218307*/              OPC_EmitMergeInputChains1_2,
/*218308*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPRORVDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218322*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->218401
/*218325*/              OPC_MoveChild0,
/*218326*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218329*/              OPC_RecordMemRef,
/*218330*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218331*/              OPC_CheckFoldableChainNode,
/*218332*/              OPC_RecordChild1, // #3 = $src2
/*218333*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218335*/              OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->218368
/*218338*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*218340*/                OPC_MoveParent,
/*218341*/                OPC_CheckType, MVT::v4i32,
/*218343*/                OPC_MoveParent,
/*218344*/                OPC_MoveParent,
/*218345*/                OPC_RecordChild2, // #4 = $src0
/*218346*/                OPC_CheckType, MVT::v4i32,
/*218348*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218350*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218353*/                OPC_EmitMergeInputChains1_2,
/*218354*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPRORVDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218368*/              /*SwitchType*/ 30, MVT::i64,// ->218400
/*218370*/                OPC_CheckPredicate, 9, // Predicate_load
/*218372*/                OPC_MoveParent,
/*218373*/                OPC_CheckType, MVT::v4i64,
/*218375*/                OPC_MoveParent,
/*218376*/                OPC_MoveParent,
/*218377*/                OPC_RecordChild2, // #4 = $src0
/*218378*/                OPC_CheckType, MVT::v4i64,
/*218380*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218382*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218385*/                OPC_EmitMergeInputChains1_2,
/*218386*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPRORVQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218400*/              0, // EndSwitchType
/*218401*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->218441
/*218404*/              OPC_RecordMemRef,
/*218405*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218406*/              OPC_CheckFoldableChainNode,
/*218407*/              OPC_RecordChild1, // #3 = $src2
/*218408*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218410*/              OPC_CheckPredicate, 9, // Predicate_load
/*218412*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*218414*/              OPC_CheckType, MVT::v4i64,
/*218416*/              OPC_MoveParent,
/*218417*/              OPC_MoveParent,
/*218418*/              OPC_RecordChild2, // #4 = $src0
/*218419*/              OPC_CheckType, MVT::v4i64,
/*218421*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218423*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218426*/              OPC_EmitMergeInputChains1_2,
/*218427*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPRORVQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218441*/            0, // EndSwitchOpcode
/*218442*/          /*SwitchOpcode*/ 42|128,1/*170*/, TARGET_VAL(ISD::ROTL),// ->218616
/*218446*/            OPC_RecordChild0, // #1 = $src1
/*218447*/            OPC_MoveChild1,
/*218448*/            OPC_SwitchOpcode /*3 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->218496
/*218452*/              OPC_MoveChild0,
/*218453*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218456*/              OPC_RecordMemRef,
/*218457*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218458*/              OPC_CheckFoldableChainNode,
/*218459*/              OPC_RecordChild1, // #3 = $src2
/*218460*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218462*/              OPC_CheckPredicate, 9, // Predicate_load
/*218464*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*218466*/              OPC_CheckType, MVT::v2i64,
/*218468*/              OPC_MoveParent,
/*218469*/              OPC_CheckType, MVT::v4i32,
/*218471*/              OPC_MoveParent,
/*218472*/              OPC_MoveParent,
/*218473*/              OPC_RecordChild2, // #4 = $src0
/*218474*/              OPC_CheckType, MVT::v4i32,
/*218476*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218478*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218481*/              OPC_EmitMergeInputChains1_2,
/*218482*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPROLVDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218496*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->218575
/*218499*/              OPC_MoveChild0,
/*218500*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218503*/              OPC_RecordMemRef,
/*218504*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218505*/              OPC_CheckFoldableChainNode,
/*218506*/              OPC_RecordChild1, // #3 = $src2
/*218507*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218509*/              OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->218542
/*218512*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*218514*/                OPC_MoveParent,
/*218515*/                OPC_CheckType, MVT::v4i32,
/*218517*/                OPC_MoveParent,
/*218518*/                OPC_MoveParent,
/*218519*/                OPC_RecordChild2, // #4 = $src0
/*218520*/                OPC_CheckType, MVT::v4i32,
/*218522*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218524*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218527*/                OPC_EmitMergeInputChains1_2,
/*218528*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPROLVDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218542*/              /*SwitchType*/ 30, MVT::i64,// ->218574
/*218544*/                OPC_CheckPredicate, 9, // Predicate_load
/*218546*/                OPC_MoveParent,
/*218547*/                OPC_CheckType, MVT::v4i64,
/*218549*/                OPC_MoveParent,
/*218550*/                OPC_MoveParent,
/*218551*/                OPC_RecordChild2, // #4 = $src0
/*218552*/                OPC_CheckType, MVT::v4i64,
/*218554*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218556*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218559*/                OPC_EmitMergeInputChains1_2,
/*218560*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPROLVQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218574*/              0, // EndSwitchType
/*218575*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->218615
/*218578*/              OPC_RecordMemRef,
/*218579*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218580*/              OPC_CheckFoldableChainNode,
/*218581*/              OPC_RecordChild1, // #3 = $src2
/*218582*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218584*/              OPC_CheckPredicate, 9, // Predicate_load
/*218586*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*218588*/              OPC_CheckType, MVT::v4i64,
/*218590*/              OPC_MoveParent,
/*218591*/              OPC_MoveParent,
/*218592*/              OPC_RecordChild2, // #4 = $src0
/*218593*/              OPC_CheckType, MVT::v4i64,
/*218595*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218597*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218600*/              OPC_EmitMergeInputChains1_2,
/*218601*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPROLVQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218615*/            0, // EndSwitchOpcode
/*218616*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::VSRAV),// ->218782
/*218620*/            OPC_RecordChild0, // #1 = $src1
/*218621*/            OPC_MoveChild1,
/*218622*/            OPC_SwitchOpcode /*3 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->218668
/*218626*/              OPC_MoveChild0,
/*218627*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218630*/              OPC_RecordMemRef,
/*218631*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218632*/              OPC_CheckFoldableChainNode,
/*218633*/              OPC_RecordChild1, // #3 = $src2
/*218634*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218636*/              OPC_CheckPredicate, 9, // Predicate_load
/*218638*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*218640*/              OPC_CheckType, MVT::v2i64,
/*218642*/              OPC_MoveParent,
/*218643*/              OPC_MoveParent,
/*218644*/              OPC_MoveParent,
/*218645*/              OPC_RecordChild2, // #4 = $src0
/*218646*/              OPC_CheckType, MVT::v4i32,
/*218648*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218650*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218653*/              OPC_EmitMergeInputChains1_2,
/*218654*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRAVDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218668*/            /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->218743
/*218671*/              OPC_MoveChild0,
/*218672*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218675*/              OPC_RecordMemRef,
/*218676*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218677*/              OPC_CheckFoldableChainNode,
/*218678*/              OPC_RecordChild1, // #3 = $src2
/*218679*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218681*/              OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->218712
/*218684*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*218686*/                OPC_MoveParent,
/*218687*/                OPC_MoveParent,
/*218688*/                OPC_MoveParent,
/*218689*/                OPC_RecordChild2, // #4 = $src0
/*218690*/                OPC_CheckType, MVT::v4i32,
/*218692*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218694*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218697*/                OPC_EmitMergeInputChains1_2,
/*218698*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218712*/              /*SwitchType*/ 28, MVT::i64,// ->218742
/*218714*/                OPC_CheckPredicate, 9, // Predicate_load
/*218716*/                OPC_MoveParent,
/*218717*/                OPC_MoveParent,
/*218718*/                OPC_MoveParent,
/*218719*/                OPC_RecordChild2, // #4 = $src0
/*218720*/                OPC_CheckType, MVT::v4i64,
/*218722*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218724*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218727*/                OPC_EmitMergeInputChains1_2,
/*218728*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218742*/              0, // EndSwitchType
/*218743*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->218781
/*218746*/              OPC_RecordMemRef,
/*218747*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218748*/              OPC_CheckFoldableChainNode,
/*218749*/              OPC_RecordChild1, // #3 = $src2
/*218750*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218752*/              OPC_CheckPredicate, 9, // Predicate_load
/*218754*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*218756*/              OPC_MoveParent,
/*218757*/              OPC_MoveParent,
/*218758*/              OPC_RecordChild2, // #4 = $src0
/*218759*/              OPC_CheckType, MVT::v4i64,
/*218761*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218763*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218766*/              OPC_EmitMergeInputChains1_2,
/*218767*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRAVQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218781*/            0, // EndSwitchOpcode
/*218782*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VPERMV),// ->218870
/*218785*/            OPC_RecordChild0, // #1 = $src1
/*218786*/            OPC_MoveChild1,
/*218787*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(X86ISD::VBROADCAST),// ->218831
/*218791*/              OPC_MoveChild0,
/*218792*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218795*/              OPC_RecordMemRef,
/*218796*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218797*/              OPC_CheckFoldableChainNode,
/*218798*/              OPC_RecordChild1, // #3 = $src2
/*218799*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218801*/              OPC_CheckPredicate, 9, // Predicate_load
/*218803*/              OPC_CheckType, MVT::i64,
/*218805*/              OPC_MoveParent,
/*218806*/              OPC_MoveParent,
/*218807*/              OPC_MoveParent,
/*218808*/              OPC_RecordChild2, // #4 = $src0
/*218809*/              OPC_CheckType, MVT::v4i64,
/*218811*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218813*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218816*/              OPC_EmitMergeInputChains1_2,
/*218817*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPERMQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218831*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->218869
/*218834*/              OPC_RecordMemRef,
/*218835*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218836*/              OPC_CheckFoldableChainNode,
/*218837*/              OPC_RecordChild1, // #3 = $src2
/*218838*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218840*/              OPC_CheckPredicate, 9, // Predicate_load
/*218842*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*218844*/              OPC_MoveParent,
/*218845*/              OPC_MoveParent,
/*218846*/              OPC_RecordChild2, // #4 = $src0
/*218847*/              OPC_CheckType, MVT::v4i64,
/*218849*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218851*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*218854*/              OPC_EmitMergeInputChains1_2,
/*218855*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPERMQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218869*/            0, // EndSwitchOpcode
/*218870*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VPERMI),// ->218920
/*218873*/            OPC_MoveChild0,
/*218874*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218877*/            OPC_RecordMemRef,
/*218878*/            OPC_RecordNode, // #1 = 'ld' chained node
/*218879*/            OPC_CheckFoldableChainNode,
/*218880*/            OPC_RecordChild1, // #2 = $src1
/*218881*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218883*/            OPC_CheckPredicate, 9, // Predicate_load
/*218885*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*218887*/            OPC_MoveParent,
/*218888*/            OPC_RecordChild1, // #3 = $src2
/*218889*/            OPC_MoveChild1,
/*218890*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*218893*/            OPC_MoveParent,
/*218894*/            OPC_MoveParent,
/*218895*/            OPC_RecordChild2, // #4 = $src0
/*218896*/            OPC_CheckType, MVT::v4i64,
/*218898*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*218900*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*218903*/            OPC_EmitMergeInputChains1_1,
/*218904*/            OPC_EmitConvertToTarget, 3,
/*218906*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                      // Dst: (VPERMQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*218920*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::VPMADD52L),// ->219108
/*218924*/            OPC_Scope, 47, /*->218973*/ // 4 children in Scope
/*218926*/              OPC_RecordChild0, // #1 = $src2
/*218927*/              OPC_MoveChild1,
/*218928*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*218931*/              OPC_MoveChild0,
/*218932*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218935*/              OPC_RecordMemRef,
/*218936*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218937*/              OPC_CheckFoldableChainNode,
/*218938*/              OPC_RecordChild1, // #3 = $src3
/*218939*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218941*/              OPC_CheckPredicate, 9, // Predicate_load
/*218943*/              OPC_CheckType, MVT::i64,
/*218945*/              OPC_MoveParent,
/*218946*/              OPC_MoveParent,
/*218947*/              OPC_RecordChild2, // #4 = $src1
/*218948*/              OPC_MoveParent,
/*218949*/              OPC_CheckChild2Same, 4,
/*218951*/              OPC_CheckType, MVT::v4i64,
/*218953*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*218955*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*218958*/              OPC_EmitMergeInputChains1_2,
/*218959*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52l:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPMADD52LUQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*218973*/            /*Scope*/ 47, /*->219021*/
/*218974*/              OPC_MoveChild0,
/*218975*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*218978*/              OPC_MoveChild0,
/*218979*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*218982*/              OPC_RecordMemRef,
/*218983*/              OPC_RecordNode, // #1 = 'ld' chained node
/*218984*/              OPC_CheckFoldableChainNode,
/*218985*/              OPC_RecordChild1, // #2 = $src3
/*218986*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218988*/              OPC_CheckPredicate, 9, // Predicate_load
/*218990*/              OPC_CheckType, MVT::i64,
/*218992*/              OPC_MoveParent,
/*218993*/              OPC_MoveParent,
/*218994*/              OPC_RecordChild1, // #3 = $src2
/*218995*/              OPC_RecordChild2, // #4 = $src1
/*218996*/              OPC_MoveParent,
/*218997*/              OPC_CheckChild2Same, 4,
/*218999*/              OPC_CheckType, MVT::v4i64,
/*219001*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*219003*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*219006*/              OPC_EmitMergeInputChains1_1,
/*219007*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52l:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPMADD52LUQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*219021*/            /*Scope*/ 42, /*->219064*/
/*219022*/              OPC_RecordChild0, // #1 = $src2
/*219023*/              OPC_MoveChild1,
/*219024*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*219027*/              OPC_RecordMemRef,
/*219028*/              OPC_RecordNode, // #2 = 'ld' chained node
/*219029*/              OPC_CheckFoldableChainNode,
/*219030*/              OPC_RecordChild1, // #3 = $src3
/*219031*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219033*/              OPC_CheckPredicate, 9, // Predicate_load
/*219035*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*219037*/              OPC_MoveParent,
/*219038*/              OPC_RecordChild2, // #4 = $src1
/*219039*/              OPC_MoveParent,
/*219040*/              OPC_CheckChild2Same, 4,
/*219042*/              OPC_CheckType, MVT::v4i64,
/*219044*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*219046*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*219049*/              OPC_EmitMergeInputChains1_2,
/*219050*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52l:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                        // Dst: (VPMADD52LUQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*219064*/            /*Scope*/ 42, /*->219107*/
/*219065*/              OPC_MoveChild0,
/*219066*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*219069*/              OPC_RecordMemRef,
/*219070*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219071*/              OPC_CheckFoldableChainNode,
/*219072*/              OPC_RecordChild1, // #2 = $src3
/*219073*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219075*/              OPC_CheckPredicate, 9, // Predicate_load
/*219077*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*219079*/              OPC_MoveParent,
/*219080*/              OPC_RecordChild1, // #3 = $src2
/*219081*/              OPC_RecordChild2, // #4 = $src1
/*219082*/              OPC_MoveParent,
/*219083*/              OPC_CheckChild2Same, 4,
/*219085*/              OPC_CheckType, MVT::v4i64,
/*219087*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*219089*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*219092*/              OPC_EmitMergeInputChains1_1,
/*219093*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52l:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                        // Dst: (VPMADD52LUQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*219107*/            0, /*End of Scope*/
/*219108*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::VPMADD52H),// ->219296
/*219112*/            OPC_Scope, 47, /*->219161*/ // 4 children in Scope
/*219114*/              OPC_RecordChild0, // #1 = $src2
/*219115*/              OPC_MoveChild1,
/*219116*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*219119*/              OPC_MoveChild0,
/*219120*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*219123*/              OPC_RecordMemRef,
/*219124*/              OPC_RecordNode, // #2 = 'ld' chained node
/*219125*/              OPC_CheckFoldableChainNode,
/*219126*/              OPC_RecordChild1, // #3 = $src3
/*219127*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219129*/              OPC_CheckPredicate, 9, // Predicate_load
/*219131*/              OPC_CheckType, MVT::i64,
/*219133*/              OPC_MoveParent,
/*219134*/              OPC_MoveParent,
/*219135*/              OPC_RecordChild2, // #4 = $src1
/*219136*/              OPC_MoveParent,
/*219137*/              OPC_CheckChild2Same, 4,
/*219139*/              OPC_CheckType, MVT::v4i64,
/*219141*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*219143*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*219146*/              OPC_EmitMergeInputChains1_2,
/*219147*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52h:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPMADD52HUQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*219161*/            /*Scope*/ 47, /*->219209*/
/*219162*/              OPC_MoveChild0,
/*219163*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*219166*/              OPC_MoveChild0,
/*219167*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*219170*/              OPC_RecordMemRef,
/*219171*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219172*/              OPC_CheckFoldableChainNode,
/*219173*/              OPC_RecordChild1, // #2 = $src3
/*219174*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219176*/              OPC_CheckPredicate, 9, // Predicate_load
/*219178*/              OPC_CheckType, MVT::i64,
/*219180*/              OPC_MoveParent,
/*219181*/              OPC_MoveParent,
/*219182*/              OPC_RecordChild1, // #3 = $src2
/*219183*/              OPC_RecordChild2, // #4 = $src1
/*219184*/              OPC_MoveParent,
/*219185*/              OPC_CheckChild2Same, 4,
/*219187*/              OPC_CheckType, MVT::v4i64,
/*219189*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*219191*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*219194*/              OPC_EmitMergeInputChains1_1,
/*219195*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52h:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPMADD52HUQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*219209*/            /*Scope*/ 42, /*->219252*/
/*219210*/              OPC_RecordChild0, // #1 = $src2
/*219211*/              OPC_MoveChild1,
/*219212*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*219215*/              OPC_RecordMemRef,
/*219216*/              OPC_RecordNode, // #2 = 'ld' chained node
/*219217*/              OPC_CheckFoldableChainNode,
/*219218*/              OPC_RecordChild1, // #3 = $src3
/*219219*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219221*/              OPC_CheckPredicate, 9, // Predicate_load
/*219223*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*219225*/              OPC_MoveParent,
/*219226*/              OPC_RecordChild2, // #4 = $src1
/*219227*/              OPC_MoveParent,
/*219228*/              OPC_CheckChild2Same, 4,
/*219230*/              OPC_CheckType, MVT::v4i64,
/*219232*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*219234*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*219237*/              OPC_EmitMergeInputChains1_2,
/*219238*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52h:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                        // Dst: (VPMADD52HUQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*219252*/            /*Scope*/ 42, /*->219295*/
/*219253*/              OPC_MoveChild0,
/*219254*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*219257*/              OPC_RecordMemRef,
/*219258*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219259*/              OPC_CheckFoldableChainNode,
/*219260*/              OPC_RecordChild1, // #2 = $src3
/*219261*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219263*/              OPC_CheckPredicate, 9, // Predicate_load
/*219265*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*219267*/              OPC_MoveParent,
/*219268*/              OPC_RecordChild1, // #3 = $src2
/*219269*/              OPC_RecordChild2, // #4 = $src1
/*219270*/              OPC_MoveParent,
/*219271*/              OPC_CheckChild2Same, 4,
/*219273*/              OPC_CheckType, MVT::v4i64,
/*219275*/              OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*219277*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*219280*/              OPC_EmitMergeInputChains1_1,
/*219281*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52h:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                        // Dst: (VPMADD52HUQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*219295*/            0, /*End of Scope*/
/*219296*/          /*SwitchOpcode*/ 37|128,2/*293*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->219593
/*219300*/            OPC_MoveChild0,
/*219301*/            OPC_SwitchOpcode /*2 cases */, 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST),// ->219452
/*219306*/              OPC_MoveChild0,
/*219307*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*219310*/              OPC_RecordMemRef,
/*219311*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219312*/              OPC_CheckFoldableChainNode,
/*219313*/              OPC_RecordChild1, // #2 = $src
/*219314*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219316*/              OPC_CheckPredicate, 9, // Predicate_load
/*219318*/              OPC_SwitchType /*2 cases */, 50, MVT::f32,// ->219371
/*219321*/                OPC_MoveParent,
/*219322*/                OPC_CheckType, MVT::v4f32,
/*219324*/                OPC_MoveParent,
/*219325*/                OPC_MoveParent,
/*219326*/                OPC_RecordChild2, // #3 = $src0
/*219327*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219349
/*219330*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219332*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219335*/                  OPC_EmitMergeInputChains1_1,
/*219336*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPS2DQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219349*/                /*SwitchType*/ 19, MVT::v4i64,// ->219370
/*219351*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219353*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219356*/                  OPC_EmitMergeInputChains1_1,
/*219357*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPS2QQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219370*/                0, // EndSwitchType
/*219371*/              /*SwitchType*/ 78, MVT::f64,// ->219451
/*219373*/                OPC_MoveParent,
/*219374*/                OPC_SwitchType /*2 cases */, 24, MVT::v2f64,// ->219401
/*219377*/                  OPC_MoveParent,
/*219378*/                  OPC_MoveParent,
/*219379*/                  OPC_RecordChild2, // #3 = $src0
/*219380*/                  OPC_CheckType, MVT::v4i32,
/*219382*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219384*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219387*/                  OPC_EmitMergeInputChains1_1,
/*219388*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPD2DQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219401*/                /*SwitchType*/ 47, MVT::v4f64,// ->219450
/*219403*/                  OPC_MoveParent,
/*219404*/                  OPC_MoveParent,
/*219405*/                  OPC_RecordChild2, // #3 = $src0
/*219406*/                  OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219428
/*219409*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219411*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219414*/                    OPC_EmitMergeInputChains1_1,
/*219415*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VCVTTPD2DQZ256rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219428*/                  /*SwitchType*/ 19, MVT::v4i64,// ->219449
/*219430*/                    OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219432*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219435*/                    OPC_EmitMergeInputChains1_1,
/*219436*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VCVTTPD2QQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219449*/                  0, // EndSwitchType
/*219450*/                0, // EndSwitchType
/*219451*/              0, // EndSwitchType
/*219452*/            /*SwitchOpcode*/ 8|128,1/*136*/, TARGET_VAL(ISD::LOAD),// ->219592
/*219456*/              OPC_RecordMemRef,
/*219457*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219458*/              OPC_CheckFoldableChainNode,
/*219459*/              OPC_RecordChild1, // #2 = $src
/*219460*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219462*/              OPC_CheckPredicate, 9, // Predicate_load
/*219464*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*219466*/              OPC_SwitchType /*3 cases */, 47, MVT::v4f32,// ->219516
/*219469*/                OPC_MoveParent,
/*219470*/                OPC_MoveParent,
/*219471*/                OPC_RecordChild2, // #3 = $src0
/*219472*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219494
/*219475*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219477*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219480*/                  OPC_EmitMergeInputChains1_1,
/*219481*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2DQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219494*/                /*SwitchType*/ 19, MVT::v4i64,// ->219515
/*219496*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219498*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219501*/                  OPC_EmitMergeInputChains1_1,
/*219502*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219515*/                0, // EndSwitchType
/*219516*/              /*SwitchType*/ 24, MVT::v2f64,// ->219542
/*219518*/                OPC_MoveParent,
/*219519*/                OPC_MoveParent,
/*219520*/                OPC_RecordChild2, // #3 = $src0
/*219521*/                OPC_CheckType, MVT::v4i32,
/*219523*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219525*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219528*/                OPC_EmitMergeInputChains1_1,
/*219529*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPD2DQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219542*/              /*SwitchType*/ 47, MVT::v4f64,// ->219591
/*219544*/                OPC_MoveParent,
/*219545*/                OPC_MoveParent,
/*219546*/                OPC_RecordChild2, // #3 = $src0
/*219547*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219569
/*219550*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219552*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219555*/                  OPC_EmitMergeInputChains1_1,
/*219556*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2DQZ256rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219569*/                /*SwitchType*/ 19, MVT::v4i64,// ->219590
/*219571*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219573*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219576*/                  OPC_EmitMergeInputChains1_1,
/*219577*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219590*/                0, // EndSwitchType
/*219591*/              0, // EndSwitchType
/*219592*/            0, // EndSwitchOpcode
/*219593*/          /*SwitchOpcode*/ 37|128,2/*293*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->219890
/*219597*/            OPC_MoveChild0,
/*219598*/            OPC_SwitchOpcode /*2 cases */, 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST),// ->219749
/*219603*/              OPC_MoveChild0,
/*219604*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*219607*/              OPC_RecordMemRef,
/*219608*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219609*/              OPC_CheckFoldableChainNode,
/*219610*/              OPC_RecordChild1, // #2 = $src
/*219611*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219613*/              OPC_CheckPredicate, 9, // Predicate_load
/*219615*/              OPC_SwitchType /*2 cases */, 50, MVT::f32,// ->219668
/*219618*/                OPC_MoveParent,
/*219619*/                OPC_CheckType, MVT::v4f32,
/*219621*/                OPC_MoveParent,
/*219622*/                OPC_MoveParent,
/*219623*/                OPC_RecordChild2, // #3 = $src0
/*219624*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219646
/*219627*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219629*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219632*/                  OPC_EmitMergeInputChains1_1,
/*219633*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPS2UDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219646*/                /*SwitchType*/ 19, MVT::v4i64,// ->219667
/*219648*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219650*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219653*/                  OPC_EmitMergeInputChains1_1,
/*219654*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPS2UQQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219667*/                0, // EndSwitchType
/*219668*/              /*SwitchType*/ 78, MVT::f64,// ->219748
/*219670*/                OPC_MoveParent,
/*219671*/                OPC_SwitchType /*2 cases */, 24, MVT::v2f64,// ->219698
/*219674*/                  OPC_MoveParent,
/*219675*/                  OPC_MoveParent,
/*219676*/                  OPC_RecordChild2, // #3 = $src0
/*219677*/                  OPC_CheckType, MVT::v4i32,
/*219679*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219681*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219684*/                  OPC_EmitMergeInputChains1_1,
/*219685*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPD2UDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219698*/                /*SwitchType*/ 47, MVT::v4f64,// ->219747
/*219700*/                  OPC_MoveParent,
/*219701*/                  OPC_MoveParent,
/*219702*/                  OPC_RecordChild2, // #3 = $src0
/*219703*/                  OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219725
/*219706*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219708*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219711*/                    OPC_EmitMergeInputChains1_1,
/*219712*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VCVTTPD2UDQZ256rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219725*/                  /*SwitchType*/ 19, MVT::v4i64,// ->219746
/*219727*/                    OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219729*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219732*/                    OPC_EmitMergeInputChains1_1,
/*219733*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VCVTTPD2UQQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219746*/                  0, // EndSwitchType
/*219747*/                0, // EndSwitchType
/*219748*/              0, // EndSwitchType
/*219749*/            /*SwitchOpcode*/ 8|128,1/*136*/, TARGET_VAL(ISD::LOAD),// ->219889
/*219753*/              OPC_RecordMemRef,
/*219754*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219755*/              OPC_CheckFoldableChainNode,
/*219756*/              OPC_RecordChild1, // #2 = $src
/*219757*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219759*/              OPC_CheckPredicate, 9, // Predicate_load
/*219761*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*219763*/              OPC_SwitchType /*3 cases */, 47, MVT::v4f32,// ->219813
/*219766*/                OPC_MoveParent,
/*219767*/                OPC_MoveParent,
/*219768*/                OPC_RecordChild2, // #3 = $src0
/*219769*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219791
/*219772*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219774*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219777*/                  OPC_EmitMergeInputChains1_1,
/*219778*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219791*/                /*SwitchType*/ 19, MVT::v4i64,// ->219812
/*219793*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219795*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219798*/                  OPC_EmitMergeInputChains1_1,
/*219799*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219812*/                0, // EndSwitchType
/*219813*/              /*SwitchType*/ 24, MVT::v2f64,// ->219839
/*219815*/                OPC_MoveParent,
/*219816*/                OPC_MoveParent,
/*219817*/                OPC_RecordChild2, // #3 = $src0
/*219818*/                OPC_CheckType, MVT::v4i32,
/*219820*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219822*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219825*/                OPC_EmitMergeInputChains1_1,
/*219826*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPD2UDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219839*/              /*SwitchType*/ 47, MVT::v4f64,// ->219888
/*219841*/                OPC_MoveParent,
/*219842*/                OPC_MoveParent,
/*219843*/                OPC_RecordChild2, // #3 = $src0
/*219844*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219866
/*219847*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219849*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219852*/                  OPC_EmitMergeInputChains1_1,
/*219853*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UDQZ256rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219866*/                /*SwitchType*/ 19, MVT::v4i64,// ->219887
/*219868*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219870*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219873*/                  OPC_EmitMergeInputChains1_1,
/*219874*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219887*/                0, // EndSwitchType
/*219888*/              0, // EndSwitchType
/*219889*/            0, // EndSwitchOpcode
/*219890*/          /*SwitchOpcode*/ 37|128,2/*293*/, TARGET_VAL(X86ISD::CVTP2SI),// ->220187
/*219894*/            OPC_MoveChild0,
/*219895*/            OPC_SwitchOpcode /*2 cases */, 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST),// ->220046
/*219900*/              OPC_MoveChild0,
/*219901*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*219904*/              OPC_RecordMemRef,
/*219905*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219906*/              OPC_CheckFoldableChainNode,
/*219907*/              OPC_RecordChild1, // #2 = $src
/*219908*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219910*/              OPC_CheckPredicate, 9, // Predicate_load
/*219912*/              OPC_SwitchType /*2 cases */, 50, MVT::f32,// ->219965
/*219915*/                OPC_MoveParent,
/*219916*/                OPC_CheckType, MVT::v4f32,
/*219918*/                OPC_MoveParent,
/*219919*/                OPC_MoveParent,
/*219920*/                OPC_RecordChild2, // #3 = $src0
/*219921*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219943
/*219924*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219926*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219929*/                  OPC_EmitMergeInputChains1_1,
/*219930*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTPS2DQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219943*/                /*SwitchType*/ 19, MVT::v4i64,// ->219964
/*219945*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219947*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219950*/                  OPC_EmitMergeInputChains1_1,
/*219951*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTPS2QQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219964*/                0, // EndSwitchType
/*219965*/              /*SwitchType*/ 78, MVT::f64,// ->220045
/*219967*/                OPC_MoveParent,
/*219968*/                OPC_SwitchType /*2 cases */, 24, MVT::v2f64,// ->219995
/*219971*/                  OPC_MoveParent,
/*219972*/                  OPC_MoveParent,
/*219973*/                  OPC_RecordChild2, // #3 = $src0
/*219974*/                  OPC_CheckType, MVT::v4i32,
/*219976*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219978*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219981*/                  OPC_EmitMergeInputChains1_1,
/*219982*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTPD2DQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219995*/                /*SwitchType*/ 47, MVT::v4f64,// ->220044
/*219997*/                  OPC_MoveParent,
/*219998*/                  OPC_MoveParent,
/*219999*/                  OPC_RecordChild2, // #3 = $src0
/*220000*/                  OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->220022
/*220003*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*220005*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220008*/                    OPC_EmitMergeInputChains1_1,
/*220009*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VCVTPD2DQZ256rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220022*/                  /*SwitchType*/ 19, MVT::v4i64,// ->220043
/*220024*/                    OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*220026*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220029*/                    OPC_EmitMergeInputChains1_1,
/*220030*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VCVTPD2QQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220043*/                  0, // EndSwitchType
/*220044*/                0, // EndSwitchType
/*220045*/              0, // EndSwitchType
/*220046*/            /*SwitchOpcode*/ 8|128,1/*136*/, TARGET_VAL(ISD::LOAD),// ->220186
/*220050*/              OPC_RecordMemRef,
/*220051*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220052*/              OPC_CheckFoldableChainNode,
/*220053*/              OPC_RecordChild1, // #2 = $src
/*220054*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220056*/              OPC_CheckPredicate, 9, // Predicate_load
/*220058*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*220060*/              OPC_SwitchType /*3 cases */, 47, MVT::v4f32,// ->220110
/*220063*/                OPC_MoveParent,
/*220064*/                OPC_MoveParent,
/*220065*/                OPC_RecordChild2, // #3 = $src0
/*220066*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->220088
/*220069*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*220071*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220074*/                  OPC_EmitMergeInputChains1_1,
/*220075*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2DQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220088*/                /*SwitchType*/ 19, MVT::v4i64,// ->220109
/*220090*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*220092*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220095*/                  OPC_EmitMergeInputChains1_1,
/*220096*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2QQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220109*/                0, // EndSwitchType
/*220110*/              /*SwitchType*/ 24, MVT::v2f64,// ->220136
/*220112*/                OPC_MoveParent,
/*220113*/                OPC_MoveParent,
/*220114*/                OPC_RecordChild2, // #3 = $src0
/*220115*/                OPC_CheckType, MVT::v4i32,
/*220117*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*220119*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220122*/                OPC_EmitMergeInputChains1_1,
/*220123*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VCVTPD2DQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220136*/              /*SwitchType*/ 47, MVT::v4f64,// ->220185
/*220138*/                OPC_MoveParent,
/*220139*/                OPC_MoveParent,
/*220140*/                OPC_RecordChild2, // #3 = $src0
/*220141*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->220163
/*220144*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*220146*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220149*/                  OPC_EmitMergeInputChains1_1,
/*220150*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2DQZ256rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220163*/                /*SwitchType*/ 19, MVT::v4i64,// ->220184
/*220165*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*220167*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220170*/                  OPC_EmitMergeInputChains1_1,
/*220171*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2QQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220184*/                0, // EndSwitchType
/*220185*/              0, // EndSwitchType
/*220186*/            0, // EndSwitchOpcode
/*220187*/          /*SwitchOpcode*/ 37|128,2/*293*/, TARGET_VAL(X86ISD::CVTP2UI),// ->220484
/*220191*/            OPC_MoveChild0,
/*220192*/            OPC_SwitchOpcode /*2 cases */, 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST),// ->220343
/*220197*/              OPC_MoveChild0,
/*220198*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*220201*/              OPC_RecordMemRef,
/*220202*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220203*/              OPC_CheckFoldableChainNode,
/*220204*/              OPC_RecordChild1, // #2 = $src
/*220205*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220207*/              OPC_CheckPredicate, 9, // Predicate_load
/*220209*/              OPC_SwitchType /*2 cases */, 50, MVT::f32,// ->220262
/*220212*/                OPC_MoveParent,
/*220213*/                OPC_CheckType, MVT::v4f32,
/*220215*/                OPC_MoveParent,
/*220216*/                OPC_MoveParent,
/*220217*/                OPC_RecordChild2, // #3 = $src0
/*220218*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->220240
/*220221*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*220223*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220226*/                  OPC_EmitMergeInputChains1_1,
/*220227*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTPS2UDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220240*/                /*SwitchType*/ 19, MVT::v4i64,// ->220261
/*220242*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*220244*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220247*/                  OPC_EmitMergeInputChains1_1,
/*220248*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTPS2UQQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220261*/                0, // EndSwitchType
/*220262*/              /*SwitchType*/ 78, MVT::f64,// ->220342
/*220264*/                OPC_MoveParent,
/*220265*/                OPC_SwitchType /*2 cases */, 24, MVT::v2f64,// ->220292
/*220268*/                  OPC_MoveParent,
/*220269*/                  OPC_MoveParent,
/*220270*/                  OPC_RecordChild2, // #3 = $src0
/*220271*/                  OPC_CheckType, MVT::v4i32,
/*220273*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*220275*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220278*/                  OPC_EmitMergeInputChains1_1,
/*220279*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTPD2UDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220292*/                /*SwitchType*/ 47, MVT::v4f64,// ->220341
/*220294*/                  OPC_MoveParent,
/*220295*/                  OPC_MoveParent,
/*220296*/                  OPC_RecordChild2, // #3 = $src0
/*220297*/                  OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->220319
/*220300*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*220302*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220305*/                    OPC_EmitMergeInputChains1_1,
/*220306*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VCVTPD2UDQZ256rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220319*/                  /*SwitchType*/ 19, MVT::v4i64,// ->220340
/*220321*/                    OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*220323*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220326*/                    OPC_EmitMergeInputChains1_1,
/*220327*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VCVTPD2UQQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220340*/                  0, // EndSwitchType
/*220341*/                0, // EndSwitchType
/*220342*/              0, // EndSwitchType
/*220343*/            /*SwitchOpcode*/ 8|128,1/*136*/, TARGET_VAL(ISD::LOAD),// ->220483
/*220347*/              OPC_RecordMemRef,
/*220348*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220349*/              OPC_CheckFoldableChainNode,
/*220350*/              OPC_RecordChild1, // #2 = $src
/*220351*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220353*/              OPC_CheckPredicate, 9, // Predicate_load
/*220355*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*220357*/              OPC_SwitchType /*3 cases */, 47, MVT::v4f32,// ->220407
/*220360*/                OPC_MoveParent,
/*220361*/                OPC_MoveParent,
/*220362*/                OPC_RecordChild2, // #3 = $src0
/*220363*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->220385
/*220366*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*220368*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220371*/                  OPC_EmitMergeInputChains1_1,
/*220372*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220385*/                /*SwitchType*/ 19, MVT::v4i64,// ->220406
/*220387*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*220389*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220392*/                  OPC_EmitMergeInputChains1_1,
/*220393*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UQQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220406*/                0, // EndSwitchType
/*220407*/              /*SwitchType*/ 24, MVT::v2f64,// ->220433
/*220409*/                OPC_MoveParent,
/*220410*/                OPC_MoveParent,
/*220411*/                OPC_RecordChild2, // #3 = $src0
/*220412*/                OPC_CheckType, MVT::v4i32,
/*220414*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*220416*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220419*/                OPC_EmitMergeInputChains1_1,
/*220420*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VCVTPD2UDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220433*/              /*SwitchType*/ 47, MVT::v4f64,// ->220482
/*220435*/                OPC_MoveParent,
/*220436*/                OPC_MoveParent,
/*220437*/                OPC_RecordChild2, // #3 = $src0
/*220438*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->220460
/*220441*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*220443*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220446*/                  OPC_EmitMergeInputChains1_1,
/*220447*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UDQZ256rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220460*/                /*SwitchType*/ 19, MVT::v4i64,// ->220481
/*220462*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*220464*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*220467*/                  OPC_EmitMergeInputChains1_1,
/*220468*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UQQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*220481*/                0, // EndSwitchType
/*220482*/              0, // EndSwitchType
/*220483*/            0, // EndSwitchOpcode
/*220484*/          /*SwitchOpcode*/ 84, TARGET_VAL(X86ISD::EXPAND),// ->220571
/*220487*/            OPC_MoveChild0,
/*220488*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::BITCAST),// ->220533
/*220492*/              OPC_MoveChild0,
/*220493*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*220496*/              OPC_RecordMemRef,
/*220497*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220498*/              OPC_CheckFoldableChainNode,
/*220499*/              OPC_RecordChild1, // #2 = $src1
/*220500*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220502*/              OPC_CheckPredicate, 9, // Predicate_load
/*220504*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*220506*/              OPC_CheckType, MVT::v2i64,
/*220508*/              OPC_MoveParent,
/*220509*/              OPC_MoveParent,
/*220510*/              OPC_MoveParent,
/*220511*/              OPC_RecordChild2, // #3 = $src0
/*220512*/              OPC_CheckType, MVT::v4i32,
/*220514*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220516*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220519*/              OPC_EmitMergeInputChains1_1,
/*220520*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPEXPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220533*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->220570
/*220536*/              OPC_RecordMemRef,
/*220537*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220538*/              OPC_CheckFoldableChainNode,
/*220539*/              OPC_RecordChild1, // #2 = $src1
/*220540*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220542*/              OPC_CheckPredicate, 9, // Predicate_load
/*220544*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*220546*/              OPC_MoveParent,
/*220547*/              OPC_MoveParent,
/*220548*/              OPC_RecordChild2, // #3 = $src0
/*220549*/              OPC_CheckType, MVT::v4i64,
/*220551*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220553*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220556*/              OPC_EmitMergeInputChains1_1,
/*220557*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPEXPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220570*/            0, // EndSwitchOpcode
/*220571*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::SHUF128),// ->220623
/*220574*/            OPC_RecordChild0, // #1 = $src1
/*220575*/            OPC_MoveChild1,
/*220576*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*220579*/            OPC_RecordMemRef,
/*220580*/            OPC_RecordNode, // #2 = 'ld' chained node
/*220581*/            OPC_CheckFoldableChainNode,
/*220582*/            OPC_RecordChild1, // #3 = $src2
/*220583*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220585*/            OPC_CheckPredicate, 9, // Predicate_load
/*220587*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*220589*/            OPC_MoveParent,
/*220590*/            OPC_RecordChild2, // #4 = $src3
/*220591*/            OPC_MoveChild2,
/*220592*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*220595*/            OPC_MoveParent,
/*220596*/            OPC_MoveParent,
/*220597*/            OPC_RecordChild2, // #5 = $src0
/*220598*/            OPC_CheckType, MVT::v4i64,
/*220600*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220602*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*220605*/            OPC_EmitMergeInputChains1_2,
/*220606*/            OPC_EmitConvertToTarget, 4,
/*220608*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                      // Dst: (VSHUFI64X2Z256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*220623*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VALIGN),// ->220675
/*220626*/            OPC_RecordChild0, // #1 = $src1
/*220627*/            OPC_MoveChild1,
/*220628*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*220631*/            OPC_RecordMemRef,
/*220632*/            OPC_RecordNode, // #2 = 'ld' chained node
/*220633*/            OPC_CheckFoldableChainNode,
/*220634*/            OPC_RecordChild1, // #3 = $src2
/*220635*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220637*/            OPC_CheckPredicate, 9, // Predicate_load
/*220639*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*220641*/            OPC_MoveParent,
/*220642*/            OPC_RecordChild2, // #4 = $src3
/*220643*/            OPC_MoveChild2,
/*220644*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*220647*/            OPC_MoveParent,
/*220648*/            OPC_MoveParent,
/*220649*/            OPC_RecordChild2, // #5 = $src0
/*220650*/            OPC_CheckType, MVT::v4i64,
/*220652*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220654*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*220657*/            OPC_EmitMergeInputChains1_2,
/*220658*/            OPC_EmitConvertToTarget, 4,
/*220660*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                      // Dst: (VALIGNQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*220675*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ISD::ABS),// ->220836
/*220679*/            OPC_MoveChild0,
/*220680*/            OPC_SwitchOpcode /*3 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->220754
/*220684*/              OPC_MoveChild0,
/*220685*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*220688*/              OPC_RecordMemRef,
/*220689*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220690*/              OPC_CheckFoldableChainNode,
/*220691*/              OPC_RecordChild1, // #2 = $src1
/*220692*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220694*/              OPC_SwitchType /*2 cases */, 27, MVT::i64,// ->220724
/*220697*/                OPC_CheckPredicate, 9, // Predicate_load
/*220699*/                OPC_MoveParent,
/*220700*/                OPC_MoveParent,
/*220701*/                OPC_MoveParent,
/*220702*/                OPC_RecordChild2, // #3 = $src0
/*220703*/                OPC_CheckType, MVT::v4i64,
/*220705*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220707*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220710*/                OPC_EmitMergeInputChains1_1,
/*220711*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPABSQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220724*/              /*SwitchType*/ 27, MVT::i32,// ->220753
/*220726*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*220728*/                OPC_MoveParent,
/*220729*/                OPC_MoveParent,
/*220730*/                OPC_MoveParent,
/*220731*/                OPC_RecordChild2, // #3 = $src0
/*220732*/                OPC_CheckType, MVT::v4i32,
/*220734*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220736*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220739*/                OPC_EmitMergeInputChains1_1,
/*220740*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPABSDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220753*/              0, // EndSwitchType
/*220754*/            /*SwitchOpcode*/ 41, TARGET_VAL(ISD::BITCAST),// ->220798
/*220757*/              OPC_MoveChild0,
/*220758*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*220761*/              OPC_RecordMemRef,
/*220762*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220763*/              OPC_CheckFoldableChainNode,
/*220764*/              OPC_RecordChild1, // #2 = $src1
/*220765*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220767*/              OPC_CheckPredicate, 9, // Predicate_load
/*220769*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*220771*/              OPC_CheckType, MVT::v2i64,
/*220773*/              OPC_MoveParent,
/*220774*/              OPC_MoveParent,
/*220775*/              OPC_MoveParent,
/*220776*/              OPC_RecordChild2, // #3 = $src0
/*220777*/              OPC_CheckType, MVT::v4i32,
/*220779*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220781*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220784*/              OPC_EmitMergeInputChains1_1,
/*220785*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPABSDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220798*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->220835
/*220801*/              OPC_RecordMemRef,
/*220802*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220803*/              OPC_CheckFoldableChainNode,
/*220804*/              OPC_RecordChild1, // #2 = $src1
/*220805*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220807*/              OPC_CheckPredicate, 9, // Predicate_load
/*220809*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*220811*/              OPC_MoveParent,
/*220812*/              OPC_MoveParent,
/*220813*/              OPC_RecordChild2, // #3 = $src0
/*220814*/              OPC_CheckType, MVT::v4i64,
/*220816*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220818*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220821*/              OPC_EmitMergeInputChains1_1,
/*220822*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPABSQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220835*/            0, // EndSwitchOpcode
/*220836*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ISD::CTLZ),// ->220997
/*220840*/            OPC_MoveChild0,
/*220841*/            OPC_SwitchOpcode /*3 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->220915
/*220845*/              OPC_MoveChild0,
/*220846*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*220849*/              OPC_RecordMemRef,
/*220850*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220851*/              OPC_CheckFoldableChainNode,
/*220852*/              OPC_RecordChild1, // #2 = $src1
/*220853*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220855*/              OPC_SwitchType /*2 cases */, 27, MVT::i64,// ->220885
/*220858*/                OPC_CheckPredicate, 9, // Predicate_load
/*220860*/                OPC_MoveParent,
/*220861*/                OPC_MoveParent,
/*220862*/                OPC_MoveParent,
/*220863*/                OPC_RecordChild2, // #3 = $src0
/*220864*/                OPC_CheckType, MVT::v4i64,
/*220866*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*220868*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220871*/                OPC_EmitMergeInputChains1_1,
/*220872*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPLZCNTQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220885*/              /*SwitchType*/ 27, MVT::i32,// ->220914
/*220887*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*220889*/                OPC_MoveParent,
/*220890*/                OPC_MoveParent,
/*220891*/                OPC_MoveParent,
/*220892*/                OPC_RecordChild2, // #3 = $src0
/*220893*/                OPC_CheckType, MVT::v4i32,
/*220895*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*220897*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220900*/                OPC_EmitMergeInputChains1_1,
/*220901*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPLZCNTDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220914*/              0, // EndSwitchType
/*220915*/            /*SwitchOpcode*/ 41, TARGET_VAL(ISD::BITCAST),// ->220959
/*220918*/              OPC_MoveChild0,
/*220919*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*220922*/              OPC_RecordMemRef,
/*220923*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220924*/              OPC_CheckFoldableChainNode,
/*220925*/              OPC_RecordChild1, // #2 = $src1
/*220926*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220928*/              OPC_CheckPredicate, 9, // Predicate_load
/*220930*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*220932*/              OPC_CheckType, MVT::v2i64,
/*220934*/              OPC_MoveParent,
/*220935*/              OPC_MoveParent,
/*220936*/              OPC_MoveParent,
/*220937*/              OPC_RecordChild2, // #3 = $src0
/*220938*/              OPC_CheckType, MVT::v4i32,
/*220940*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*220942*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220945*/              OPC_EmitMergeInputChains1_1,
/*220946*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPLZCNTDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220959*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->220996
/*220962*/              OPC_RecordMemRef,
/*220963*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220964*/              OPC_CheckFoldableChainNode,
/*220965*/              OPC_RecordChild1, // #2 = $src1
/*220966*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220968*/              OPC_CheckPredicate, 9, // Predicate_load
/*220970*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*220972*/              OPC_MoveParent,
/*220973*/              OPC_MoveParent,
/*220974*/              OPC_RecordChild2, // #3 = $src0
/*220975*/              OPC_CheckType, MVT::v4i64,
/*220977*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*220979*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220982*/              OPC_EmitMergeInputChains1_1,
/*220983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPLZCNTQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220996*/            0, // EndSwitchOpcode
/*220997*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(X86ISD::CONFLICT),// ->221158
/*221001*/            OPC_MoveChild0,
/*221002*/            OPC_SwitchOpcode /*3 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->221076
/*221006*/              OPC_MoveChild0,
/*221007*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221010*/              OPC_RecordMemRef,
/*221011*/              OPC_RecordNode, // #1 = 'ld' chained node
/*221012*/              OPC_CheckFoldableChainNode,
/*221013*/              OPC_RecordChild1, // #2 = $src1
/*221014*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221016*/              OPC_SwitchType /*2 cases */, 27, MVT::i64,// ->221046
/*221019*/                OPC_CheckPredicate, 9, // Predicate_load
/*221021*/                OPC_MoveParent,
/*221022*/                OPC_MoveParent,
/*221023*/                OPC_MoveParent,
/*221024*/                OPC_RecordChild2, // #3 = $src0
/*221025*/                OPC_CheckType, MVT::v4i64,
/*221027*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*221029*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*221032*/                OPC_EmitMergeInputChains1_1,
/*221033*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPCONFLICTQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*221046*/              /*SwitchType*/ 27, MVT::i32,// ->221075
/*221048*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*221050*/                OPC_MoveParent,
/*221051*/                OPC_MoveParent,
/*221052*/                OPC_MoveParent,
/*221053*/                OPC_RecordChild2, // #3 = $src0
/*221054*/                OPC_CheckType, MVT::v4i32,
/*221056*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*221058*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*221061*/                OPC_EmitMergeInputChains1_1,
/*221062*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPCONFLICTDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*221075*/              0, // EndSwitchType
/*221076*/            /*SwitchOpcode*/ 41, TARGET_VAL(ISD::BITCAST),// ->221120
/*221079*/              OPC_MoveChild0,
/*221080*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221083*/              OPC_RecordMemRef,
/*221084*/              OPC_RecordNode, // #1 = 'ld' chained node
/*221085*/              OPC_CheckFoldableChainNode,
/*221086*/              OPC_RecordChild1, // #2 = $src1
/*221087*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221089*/              OPC_CheckPredicate, 9, // Predicate_load
/*221091*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*221093*/              OPC_CheckType, MVT::v2i64,
/*221095*/              OPC_MoveParent,
/*221096*/              OPC_MoveParent,
/*221097*/              OPC_MoveParent,
/*221098*/              OPC_RecordChild2, // #3 = $src0
/*221099*/              OPC_CheckType, MVT::v4i32,
/*221101*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*221103*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*221106*/              OPC_EmitMergeInputChains1_1,
/*221107*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPCONFLICTDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*221120*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->221157
/*221123*/              OPC_RecordMemRef,
/*221124*/              OPC_RecordNode, // #1 = 'ld' chained node
/*221125*/              OPC_CheckFoldableChainNode,
/*221126*/              OPC_RecordChild1, // #2 = $src1
/*221127*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221129*/              OPC_CheckPredicate, 9, // Predicate_load
/*221131*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*221133*/              OPC_MoveParent,
/*221134*/              OPC_MoveParent,
/*221135*/              OPC_RecordChild2, // #3 = $src0
/*221136*/              OPC_CheckType, MVT::v4i64,
/*221138*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*221140*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*221143*/              OPC_EmitMergeInputChains1_1,
/*221144*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPCONFLICTQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*221157*/            0, // EndSwitchOpcode
/*221158*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ISD::CTPOP),// ->221319
/*221162*/            OPC_MoveChild0,
/*221163*/            OPC_SwitchOpcode /*3 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->221237
/*221167*/              OPC_MoveChild0,
/*221168*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221171*/              OPC_RecordMemRef,
/*221172*/              OPC_RecordNode, // #1 = 'ld' chained node
/*221173*/              OPC_CheckFoldableChainNode,
/*221174*/              OPC_RecordChild1, // #2 = $src1
/*221175*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221177*/              OPC_SwitchType /*2 cases */, 27, MVT::i64,// ->221207
/*221180*/                OPC_CheckPredicate, 9, // Predicate_load
/*221182*/                OPC_MoveParent,
/*221183*/                OPC_MoveParent,
/*221184*/                OPC_MoveParent,
/*221185*/                OPC_RecordChild2, // #3 = $src0
/*221186*/                OPC_CheckType, MVT::v4i64,
/*221188*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*221190*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*221193*/                OPC_EmitMergeInputChains1_1,
/*221194*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPOPCNTQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*221207*/              /*SwitchType*/ 27, MVT::i32,// ->221236
/*221209*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*221211*/                OPC_MoveParent,
/*221212*/                OPC_MoveParent,
/*221213*/                OPC_MoveParent,
/*221214*/                OPC_RecordChild2, // #3 = $src0
/*221215*/                OPC_CheckType, MVT::v4i32,
/*221217*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*221219*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*221222*/                OPC_EmitMergeInputChains1_1,
/*221223*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPOPCNTDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*221236*/              0, // EndSwitchType
/*221237*/            /*SwitchOpcode*/ 41, TARGET_VAL(ISD::BITCAST),// ->221281
/*221240*/              OPC_MoveChild0,
/*221241*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221244*/              OPC_RecordMemRef,
/*221245*/              OPC_RecordNode, // #1 = 'ld' chained node
/*221246*/              OPC_CheckFoldableChainNode,
/*221247*/              OPC_RecordChild1, // #2 = $src1
/*221248*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221250*/              OPC_CheckPredicate, 9, // Predicate_load
/*221252*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*221254*/              OPC_CheckType, MVT::v2i64,
/*221256*/              OPC_MoveParent,
/*221257*/              OPC_MoveParent,
/*221258*/              OPC_MoveParent,
/*221259*/              OPC_RecordChild2, // #3 = $src0
/*221260*/              OPC_CheckType, MVT::v4i32,
/*221262*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*221264*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*221267*/              OPC_EmitMergeInputChains1_1,
/*221268*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPOPCNTDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*221281*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->221318
/*221284*/              OPC_RecordMemRef,
/*221285*/              OPC_RecordNode, // #1 = 'ld' chained node
/*221286*/              OPC_CheckFoldableChainNode,
/*221287*/              OPC_RecordChild1, // #2 = $src1
/*221288*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221290*/              OPC_CheckPredicate, 9, // Predicate_load
/*221292*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*221294*/              OPC_MoveParent,
/*221295*/              OPC_MoveParent,
/*221296*/              OPC_RecordChild2, // #3 = $src0
/*221297*/              OPC_CheckType, MVT::v4i64,
/*221299*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*221301*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*221304*/              OPC_EmitMergeInputChains1_1,
/*221305*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPOPCNTQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*221318*/            0, // EndSwitchOpcode
/*221319*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::UNPCKL),// ->221485
/*221323*/            OPC_RecordChild0, // #1 = $src1
/*221324*/            OPC_MoveChild1,
/*221325*/            OPC_SwitchOpcode /*3 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->221371
/*221329*/              OPC_MoveChild0,
/*221330*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221333*/              OPC_RecordMemRef,
/*221334*/              OPC_RecordNode, // #2 = 'ld' chained node
/*221335*/              OPC_CheckFoldableChainNode,
/*221336*/              OPC_RecordChild1, // #3 = $src2
/*221337*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221339*/              OPC_CheckPredicate, 9, // Predicate_load
/*221341*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*221343*/              OPC_CheckType, MVT::v2i64,
/*221345*/              OPC_MoveParent,
/*221346*/              OPC_MoveParent,
/*221347*/              OPC_MoveParent,
/*221348*/              OPC_RecordChild2, // #4 = $src0
/*221349*/              OPC_CheckType, MVT::v4i32,
/*221351*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221353*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221356*/              OPC_EmitMergeInputChains1_2,
/*221357*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPUNPCKLDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*221371*/            /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->221446
/*221374*/              OPC_MoveChild0,
/*221375*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221378*/              OPC_RecordMemRef,
/*221379*/              OPC_RecordNode, // #2 = 'ld' chained node
/*221380*/              OPC_CheckFoldableChainNode,
/*221381*/              OPC_RecordChild1, // #3 = $src2
/*221382*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221384*/              OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->221415
/*221387*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*221389*/                OPC_MoveParent,
/*221390*/                OPC_MoveParent,
/*221391*/                OPC_MoveParent,
/*221392*/                OPC_RecordChild2, // #4 = $src0
/*221393*/                OPC_CheckType, MVT::v4i32,
/*221395*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221397*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221400*/                OPC_EmitMergeInputChains1_2,
/*221401*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKLDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*221415*/              /*SwitchType*/ 28, MVT::i64,// ->221445
/*221417*/                OPC_CheckPredicate, 9, // Predicate_load
/*221419*/                OPC_MoveParent,
/*221420*/                OPC_MoveParent,
/*221421*/                OPC_MoveParent,
/*221422*/                OPC_RecordChild2, // #4 = $src0
/*221423*/                OPC_CheckType, MVT::v4i64,
/*221425*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221427*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221430*/                OPC_EmitMergeInputChains1_2,
/*221431*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKLQDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*221445*/              0, // EndSwitchType
/*221446*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->221484
/*221449*/              OPC_RecordMemRef,
/*221450*/              OPC_RecordNode, // #2 = 'ld' chained node
/*221451*/              OPC_CheckFoldableChainNode,
/*221452*/              OPC_RecordChild1, // #3 = $src2
/*221453*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221455*/              OPC_CheckPredicate, 9, // Predicate_load
/*221457*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*221459*/              OPC_MoveParent,
/*221460*/              OPC_MoveParent,
/*221461*/              OPC_RecordChild2, // #4 = $src0
/*221462*/              OPC_CheckType, MVT::v4i64,
/*221464*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221466*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221469*/              OPC_EmitMergeInputChains1_2,
/*221470*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKLQDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*221484*/            0, // EndSwitchOpcode
/*221485*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::UNPCKH),// ->221651
/*221489*/            OPC_RecordChild0, // #1 = $src1
/*221490*/            OPC_MoveChild1,
/*221491*/            OPC_SwitchOpcode /*3 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->221537
/*221495*/              OPC_MoveChild0,
/*221496*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221499*/              OPC_RecordMemRef,
/*221500*/              OPC_RecordNode, // #2 = 'ld' chained node
/*221501*/              OPC_CheckFoldableChainNode,
/*221502*/              OPC_RecordChild1, // #3 = $src2
/*221503*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221505*/              OPC_CheckPredicate, 9, // Predicate_load
/*221507*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*221509*/              OPC_CheckType, MVT::v2i64,
/*221511*/              OPC_MoveParent,
/*221512*/              OPC_MoveParent,
/*221513*/              OPC_MoveParent,
/*221514*/              OPC_RecordChild2, // #4 = $src0
/*221515*/              OPC_CheckType, MVT::v4i32,
/*221517*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221519*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221522*/              OPC_EmitMergeInputChains1_2,
/*221523*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPUNPCKHDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*221537*/            /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->221612
/*221540*/              OPC_MoveChild0,
/*221541*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221544*/              OPC_RecordMemRef,
/*221545*/              OPC_RecordNode, // #2 = 'ld' chained node
/*221546*/              OPC_CheckFoldableChainNode,
/*221547*/              OPC_RecordChild1, // #3 = $src2
/*221548*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221550*/              OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->221581
/*221553*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*221555*/                OPC_MoveParent,
/*221556*/                OPC_MoveParent,
/*221557*/                OPC_MoveParent,
/*221558*/                OPC_RecordChild2, // #4 = $src0
/*221559*/                OPC_CheckType, MVT::v4i32,
/*221561*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221563*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221566*/                OPC_EmitMergeInputChains1_2,
/*221567*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKHDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*221581*/              /*SwitchType*/ 28, MVT::i64,// ->221611
/*221583*/                OPC_CheckPredicate, 9, // Predicate_load
/*221585*/                OPC_MoveParent,
/*221586*/                OPC_MoveParent,
/*221587*/                OPC_MoveParent,
/*221588*/                OPC_RecordChild2, // #4 = $src0
/*221589*/                OPC_CheckType, MVT::v4i64,
/*221591*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221593*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221596*/                OPC_EmitMergeInputChains1_2,
/*221597*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKHQDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*221611*/              0, // EndSwitchType
/*221612*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->221650
/*221615*/              OPC_RecordMemRef,
/*221616*/              OPC_RecordNode, // #2 = 'ld' chained node
/*221617*/              OPC_CheckFoldableChainNode,
/*221618*/              OPC_RecordChild1, // #3 = $src2
/*221619*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221621*/              OPC_CheckPredicate, 9, // Predicate_load
/*221623*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*221625*/              OPC_MoveParent,
/*221626*/              OPC_MoveParent,
/*221627*/              OPC_RecordChild2, // #4 = $src0
/*221628*/              OPC_CheckType, MVT::v4i64,
/*221630*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221632*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221635*/              OPC_EmitMergeInputChains1_2,
/*221636*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKHQDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*221650*/            0, // EndSwitchOpcode
/*221651*/          /*SwitchOpcode*/ 81|128,2/*337*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->221992
/*221655*/            OPC_Scope, 110, /*->221767*/ // 4 children in Scope
/*221657*/              OPC_RecordChild0, // #1 = $src1
/*221658*/              OPC_Scope, 52, /*->221712*/ // 2 children in Scope
/*221660*/                OPC_RecordChild1, // #2 = $src2
/*221661*/                OPC_MoveChild2,
/*221662*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221665*/                OPC_RecordMemRef,
/*221666*/                OPC_RecordNode, // #3 = 'ld' chained node
/*221667*/                OPC_CheckFoldableChainNode,
/*221668*/                OPC_RecordChild1, // #4 = $src3
/*221669*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221671*/                OPC_CheckPredicate, 9, // Predicate_load
/*221673*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*221675*/                OPC_MoveParent,
/*221676*/                OPC_RecordChild3, // #5 = $src4
/*221677*/                OPC_MoveChild3,
/*221678*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221681*/                OPC_MoveParent,
/*221682*/                OPC_MoveParent,
/*221683*/                OPC_CheckChild2Same, 1,
/*221685*/                OPC_CheckType, MVT::v4i64,
/*221687*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221689*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*221692*/                OPC_EmitMergeInputChains, 1, 3, 
/*221695*/                OPC_EmitConvertToTarget, 5,
/*221697*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*221712*/              /*Scope*/ 53, /*->221766*/
/*221713*/                OPC_MoveChild1,
/*221714*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221717*/                OPC_RecordMemRef,
/*221718*/                OPC_RecordNode, // #2 = 'ld' chained node
/*221719*/                OPC_CheckFoldableChainNode,
/*221720*/                OPC_RecordChild1, // #3 = $src3
/*221721*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221723*/                OPC_CheckPredicate, 9, // Predicate_load
/*221725*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*221727*/                OPC_MoveParent,
/*221728*/                OPC_RecordChild2, // #4 = $src2
/*221729*/                OPC_RecordChild3, // #5 = $src4
/*221730*/                OPC_MoveChild3,
/*221731*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221734*/                OPC_MoveParent,
/*221735*/                OPC_MoveParent,
/*221736*/                OPC_CheckChild2Same, 1,
/*221738*/                OPC_CheckType, MVT::v4i64,
/*221740*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221742*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*221745*/                OPC_EmitMergeInputChains1_2,
/*221746*/                OPC_EmitConvertToTarget, 5,
/*221748*/                OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*221751*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*221766*/              0, /*End of Scope*/
/*221767*/            /*Scope*/ 54, /*->221822*/
/*221768*/              OPC_MoveChild0,
/*221769*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221772*/              OPC_RecordMemRef,
/*221773*/              OPC_RecordNode, // #1 = 'ld' chained node
/*221774*/              OPC_CheckFoldableChainNode,
/*221775*/              OPC_RecordChild1, // #2 = $src3
/*221776*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221778*/              OPC_CheckPredicate, 9, // Predicate_load
/*221780*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*221782*/              OPC_MoveParent,
/*221783*/              OPC_RecordChild1, // #3 = $src2
/*221784*/              OPC_RecordChild2, // #4 = $src1
/*221785*/              OPC_RecordChild3, // #5 = $src4
/*221786*/              OPC_MoveChild3,
/*221787*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221790*/              OPC_MoveParent,
/*221791*/              OPC_MoveParent,
/*221792*/              OPC_CheckChild2Same, 4,
/*221794*/              OPC_CheckType, MVT::v4i64,
/*221796*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221798*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*221801*/              OPC_EmitMergeInputChains1_1,
/*221802*/              OPC_EmitConvertToTarget, 5,
/*221804*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*221807*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*221822*/            /*Scope*/ 113, /*->221936*/
/*221823*/              OPC_RecordChild0, // #1 = $src2
/*221824*/              OPC_Scope, 55, /*->221881*/ // 2 children in Scope
/*221826*/                OPC_RecordChild1, // #2 = $src1
/*221827*/                OPC_MoveChild2,
/*221828*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221831*/                OPC_RecordMemRef,
/*221832*/                OPC_RecordNode, // #3 = 'ld' chained node
/*221833*/                OPC_CheckFoldableChainNode,
/*221834*/                OPC_RecordChild1, // #4 = $src3
/*221835*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221837*/                OPC_CheckPredicate, 9, // Predicate_load
/*221839*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*221841*/                OPC_MoveParent,
/*221842*/                OPC_RecordChild3, // #5 = $src4
/*221843*/                OPC_MoveChild3,
/*221844*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221847*/                OPC_MoveParent,
/*221848*/                OPC_MoveParent,
/*221849*/                OPC_CheckChild2Same, 2,
/*221851*/                OPC_CheckType, MVT::v4i64,
/*221853*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221855*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*221858*/                OPC_EmitMergeInputChains, 1, 3, 
/*221861*/                OPC_EmitConvertToTarget, 5,
/*221863*/                OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*221866*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*221881*/              /*Scope*/ 53, /*->221935*/
/*221882*/                OPC_MoveChild1,
/*221883*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221886*/                OPC_RecordMemRef,
/*221887*/                OPC_RecordNode, // #2 = 'ld' chained node
/*221888*/                OPC_CheckFoldableChainNode,
/*221889*/                OPC_RecordChild1, // #3 = $src3
/*221890*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221892*/                OPC_CheckPredicate, 9, // Predicate_load
/*221894*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*221896*/                OPC_MoveParent,
/*221897*/                OPC_RecordChild2, // #4 = $src1
/*221898*/                OPC_RecordChild3, // #5 = $src4
/*221899*/                OPC_MoveChild3,
/*221900*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221903*/                OPC_MoveParent,
/*221904*/                OPC_MoveParent,
/*221905*/                OPC_CheckChild2Same, 4,
/*221907*/                OPC_CheckType, MVT::v4i64,
/*221909*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221911*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*221914*/                OPC_EmitMergeInputChains1_2,
/*221915*/                OPC_EmitConvertToTarget, 5,
/*221917*/                OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*221920*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*221935*/              0, /*End of Scope*/
/*221936*/            /*Scope*/ 54, /*->221991*/
/*221937*/              OPC_MoveChild0,
/*221938*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221941*/              OPC_RecordMemRef,
/*221942*/              OPC_RecordNode, // #1 = 'ld' chained node
/*221943*/              OPC_CheckFoldableChainNode,
/*221944*/              OPC_RecordChild1, // #2 = $src3
/*221945*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221947*/              OPC_CheckPredicate, 9, // Predicate_load
/*221949*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*221951*/              OPC_MoveParent,
/*221952*/              OPC_RecordChild1, // #3 = $src1
/*221953*/              OPC_RecordChild2, // #4 = $src2
/*221954*/              OPC_RecordChild3, // #5 = $src4
/*221955*/              OPC_MoveChild3,
/*221956*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221959*/              OPC_MoveParent,
/*221960*/              OPC_MoveParent,
/*221961*/              OPC_CheckChild2Same, 3,
/*221963*/              OPC_CheckType, MVT::v4i64,
/*221965*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221967*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*221970*/              OPC_EmitMergeInputChains1_1,
/*221971*/              OPC_EmitConvertToTarget, 5,
/*221973*/              OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*221976*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*221991*/            0, /*End of Scope*/
/*221992*/          /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::VSHLDV),// ->222171
/*221996*/            OPC_RecordChild0, // #1 = $src1
/*221997*/            OPC_RecordChild1, // #2 = $src2
/*221998*/            OPC_MoveChild2,
/*221999*/            OPC_SwitchOpcode /*3 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->222048
/*222003*/              OPC_MoveChild0,
/*222004*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222007*/              OPC_RecordMemRef,
/*222008*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222009*/              OPC_CheckFoldableChainNode,
/*222010*/              OPC_RecordChild1, // #4 = $src3
/*222011*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222013*/              OPC_CheckPredicate, 9, // Predicate_load
/*222015*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*222017*/              OPC_CheckType, MVT::v2i64,
/*222019*/              OPC_MoveParent,
/*222020*/              OPC_MoveParent,
/*222021*/              OPC_MoveParent,
/*222022*/              OPC_CheckChild2Same, 1,
/*222024*/              OPC_CheckType, MVT::v4i32,
/*222026*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*222028*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222031*/              OPC_EmitMergeInputChains, 1, 3, 
/*222034*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPSHLDVDZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222048*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST),// ->222129
/*222051*/              OPC_MoveChild0,
/*222052*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222055*/              OPC_RecordMemRef,
/*222056*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222057*/              OPC_CheckFoldableChainNode,
/*222058*/              OPC_RecordChild1, // #4 = $src3
/*222059*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222061*/              OPC_SwitchType /*2 cases */, 31, MVT::i32,// ->222095
/*222064*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*222066*/                OPC_MoveParent,
/*222067*/                OPC_MoveParent,
/*222068*/                OPC_MoveParent,
/*222069*/                OPC_CheckChild2Same, 1,
/*222071*/                OPC_CheckType, MVT::v4i32,
/*222073*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*222075*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222078*/                OPC_EmitMergeInputChains, 1, 3, 
/*222081*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                          // Dst: (VPSHLDVDZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222095*/              /*SwitchType*/ 31, MVT::i64,// ->222128
/*222097*/                OPC_CheckPredicate, 9, // Predicate_load
/*222099*/                OPC_MoveParent,
/*222100*/                OPC_MoveParent,
/*222101*/                OPC_MoveParent,
/*222102*/                OPC_CheckChild2Same, 1,
/*222104*/                OPC_CheckType, MVT::v4i64,
/*222106*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*222108*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222111*/                OPC_EmitMergeInputChains, 1, 3, 
/*222114*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                          // Dst: (VPSHLDVQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222128*/              0, // EndSwitchType
/*222129*/            /*SwitchOpcode*/ 38, TARGET_VAL(ISD::LOAD),// ->222170
/*222132*/              OPC_RecordMemRef,
/*222133*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222134*/              OPC_CheckFoldableChainNode,
/*222135*/              OPC_RecordChild1, // #4 = $src3
/*222136*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222138*/              OPC_CheckPredicate, 9, // Predicate_load
/*222140*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*222142*/              OPC_MoveParent,
/*222143*/              OPC_MoveParent,
/*222144*/              OPC_CheckChild2Same, 1,
/*222146*/              OPC_CheckType, MVT::v4i64,
/*222148*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*222150*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222153*/              OPC_EmitMergeInputChains, 1, 3, 
/*222156*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                        // Dst: (VPSHLDVQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222170*/            0, // EndSwitchOpcode
/*222171*/          /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::VSHRDV),// ->222350
/*222175*/            OPC_RecordChild0, // #1 = $src1
/*222176*/            OPC_RecordChild1, // #2 = $src2
/*222177*/            OPC_MoveChild2,
/*222178*/            OPC_SwitchOpcode /*3 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->222227
/*222182*/              OPC_MoveChild0,
/*222183*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222186*/              OPC_RecordMemRef,
/*222187*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222188*/              OPC_CheckFoldableChainNode,
/*222189*/              OPC_RecordChild1, // #4 = $src3
/*222190*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222192*/              OPC_CheckPredicate, 9, // Predicate_load
/*222194*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*222196*/              OPC_CheckType, MVT::v2i64,
/*222198*/              OPC_MoveParent,
/*222199*/              OPC_MoveParent,
/*222200*/              OPC_MoveParent,
/*222201*/              OPC_CheckChild2Same, 1,
/*222203*/              OPC_CheckType, MVT::v4i32,
/*222205*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*222207*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222210*/              OPC_EmitMergeInputChains, 1, 3, 
/*222213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPSHRDVDZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222227*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST),// ->222308
/*222230*/              OPC_MoveChild0,
/*222231*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222234*/              OPC_RecordMemRef,
/*222235*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222236*/              OPC_CheckFoldableChainNode,
/*222237*/              OPC_RecordChild1, // #4 = $src3
/*222238*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222240*/              OPC_SwitchType /*2 cases */, 31, MVT::i32,// ->222274
/*222243*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*222245*/                OPC_MoveParent,
/*222246*/                OPC_MoveParent,
/*222247*/                OPC_MoveParent,
/*222248*/                OPC_CheckChild2Same, 1,
/*222250*/                OPC_CheckType, MVT::v4i32,
/*222252*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*222254*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222257*/                OPC_EmitMergeInputChains, 1, 3, 
/*222260*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                          // Dst: (VPSHRDVDZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222274*/              /*SwitchType*/ 31, MVT::i64,// ->222307
/*222276*/                OPC_CheckPredicate, 9, // Predicate_load
/*222278*/                OPC_MoveParent,
/*222279*/                OPC_MoveParent,
/*222280*/                OPC_MoveParent,
/*222281*/                OPC_CheckChild2Same, 1,
/*222283*/                OPC_CheckType, MVT::v4i64,
/*222285*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*222287*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222290*/                OPC_EmitMergeInputChains, 1, 3, 
/*222293*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                          // Dst: (VPSHRDVQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222307*/              0, // EndSwitchType
/*222308*/            /*SwitchOpcode*/ 38, TARGET_VAL(ISD::LOAD),// ->222349
/*222311*/              OPC_RecordMemRef,
/*222312*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222313*/              OPC_CheckFoldableChainNode,
/*222314*/              OPC_RecordChild1, // #4 = $src3
/*222315*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222317*/              OPC_CheckPredicate, 9, // Predicate_load
/*222319*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*222321*/              OPC_MoveParent,
/*222322*/              OPC_MoveParent,
/*222323*/              OPC_CheckChild2Same, 1,
/*222325*/              OPC_CheckType, MVT::v4i64,
/*222327*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*222329*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222332*/              OPC_EmitMergeInputChains, 1, 3, 
/*222335*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                        // Dst: (VPSHRDVQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222349*/            0, // EndSwitchOpcode
/*222350*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VSHLD),// ->222402
/*222353*/            OPC_RecordChild0, // #1 = $src1
/*222354*/            OPC_MoveChild1,
/*222355*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222358*/            OPC_RecordMemRef,
/*222359*/            OPC_RecordNode, // #2 = 'ld' chained node
/*222360*/            OPC_CheckFoldableChainNode,
/*222361*/            OPC_RecordChild1, // #3 = $src2
/*222362*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222364*/            OPC_CheckPredicate, 9, // Predicate_load
/*222366*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*222368*/            OPC_MoveParent,
/*222369*/            OPC_RecordChild2, // #4 = $src3
/*222370*/            OPC_MoveChild2,
/*222371*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*222374*/            OPC_MoveParent,
/*222375*/            OPC_MoveParent,
/*222376*/            OPC_RecordChild2, // #5 = $src0
/*222377*/            OPC_CheckType, MVT::v4i64,
/*222379*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*222381*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*222384*/            OPC_EmitMergeInputChains1_2,
/*222385*/            OPC_EmitConvertToTarget, 4,
/*222387*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                      // Dst: (VPSHLDQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*222402*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VSHRD),// ->222454
/*222405*/            OPC_RecordChild0, // #1 = $src1
/*222406*/            OPC_MoveChild1,
/*222407*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222410*/            OPC_RecordMemRef,
/*222411*/            OPC_RecordNode, // #2 = 'ld' chained node
/*222412*/            OPC_CheckFoldableChainNode,
/*222413*/            OPC_RecordChild1, // #3 = $src2
/*222414*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222416*/            OPC_CheckPredicate, 9, // Predicate_load
/*222418*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*222420*/            OPC_MoveParent,
/*222421*/            OPC_RecordChild2, // #4 = $src3
/*222422*/            OPC_MoveChild2,
/*222423*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*222426*/            OPC_MoveParent,
/*222427*/            OPC_MoveParent,
/*222428*/            OPC_RecordChild2, // #5 = $src0
/*222429*/            OPC_CheckType, MVT::v4i64,
/*222431*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*222433*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*222436*/            OPC_EmitMergeInputChains1_2,
/*222437*/            OPC_EmitConvertToTarget, 4,
/*222439*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                      // Dst: (VPSHRDQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*222454*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPBUSD),// ->222556
/*222457*/            OPC_RecordChild0, // #1 = $src1
/*222458*/            OPC_RecordChild1, // #2 = $src2
/*222459*/            OPC_MoveChild2,
/*222460*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->222509
/*222464*/              OPC_MoveChild0,
/*222465*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222468*/              OPC_RecordMemRef,
/*222469*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222470*/              OPC_CheckFoldableChainNode,
/*222471*/              OPC_RecordChild1, // #4 = $src3
/*222472*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222474*/              OPC_CheckPredicate, 9, // Predicate_load
/*222476*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*222478*/              OPC_CheckType, MVT::v2i64,
/*222480*/              OPC_MoveParent,
/*222481*/              OPC_MoveParent,
/*222482*/              OPC_MoveParent,
/*222483*/              OPC_CheckChild2Same, 1,
/*222485*/              OPC_CheckType, MVT::v4i32,
/*222487*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*222489*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222492*/              OPC_EmitMergeInputChains, 1, 3, 
/*222495*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222509*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->222555
/*222512*/              OPC_MoveChild0,
/*222513*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222516*/              OPC_RecordMemRef,
/*222517*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222518*/              OPC_CheckFoldableChainNode,
/*222519*/              OPC_RecordChild1, // #4 = $src3
/*222520*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222522*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*222524*/              OPC_CheckType, MVT::i32,
/*222526*/              OPC_MoveParent,
/*222527*/              OPC_MoveParent,
/*222528*/              OPC_MoveParent,
/*222529*/              OPC_CheckChild2Same, 1,
/*222531*/              OPC_CheckType, MVT::v4i32,
/*222533*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*222535*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222538*/              OPC_EmitMergeInputChains, 1, 3, 
/*222541*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222555*/            0, // EndSwitchOpcode
/*222556*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPBUSDS),// ->222658
/*222559*/            OPC_RecordChild0, // #1 = $src1
/*222560*/            OPC_RecordChild1, // #2 = $src2
/*222561*/            OPC_MoveChild2,
/*222562*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->222611
/*222566*/              OPC_MoveChild0,
/*222567*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222570*/              OPC_RecordMemRef,
/*222571*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222572*/              OPC_CheckFoldableChainNode,
/*222573*/              OPC_RecordChild1, // #4 = $src3
/*222574*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222576*/              OPC_CheckPredicate, 9, // Predicate_load
/*222578*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*222580*/              OPC_CheckType, MVT::v2i64,
/*222582*/              OPC_MoveParent,
/*222583*/              OPC_MoveParent,
/*222584*/              OPC_MoveParent,
/*222585*/              OPC_CheckChild2Same, 1,
/*222587*/              OPC_CheckType, MVT::v4i32,
/*222589*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*222591*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222594*/              OPC_EmitMergeInputChains, 1, 3, 
/*222597*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDSZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222611*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->222657
/*222614*/              OPC_MoveChild0,
/*222615*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222618*/              OPC_RecordMemRef,
/*222619*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222620*/              OPC_CheckFoldableChainNode,
/*222621*/              OPC_RecordChild1, // #4 = $src3
/*222622*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222624*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*222626*/              OPC_CheckType, MVT::i32,
/*222628*/              OPC_MoveParent,
/*222629*/              OPC_MoveParent,
/*222630*/              OPC_MoveParent,
/*222631*/              OPC_CheckChild2Same, 1,
/*222633*/              OPC_CheckType, MVT::v4i32,
/*222635*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*222637*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222640*/              OPC_EmitMergeInputChains, 1, 3, 
/*222643*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDSZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222657*/            0, // EndSwitchOpcode
/*222658*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPWSSD),// ->222760
/*222661*/            OPC_RecordChild0, // #1 = $src1
/*222662*/            OPC_RecordChild1, // #2 = $src2
/*222663*/            OPC_MoveChild2,
/*222664*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->222713
/*222668*/              OPC_MoveChild0,
/*222669*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222672*/              OPC_RecordMemRef,
/*222673*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222674*/              OPC_CheckFoldableChainNode,
/*222675*/              OPC_RecordChild1, // #4 = $src3
/*222676*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222678*/              OPC_CheckPredicate, 9, // Predicate_load
/*222680*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*222682*/              OPC_CheckType, MVT::v2i64,
/*222684*/              OPC_MoveParent,
/*222685*/              OPC_MoveParent,
/*222686*/              OPC_MoveParent,
/*222687*/              OPC_CheckChild2Same, 1,
/*222689*/              OPC_CheckType, MVT::v4i32,
/*222691*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*222693*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222696*/              OPC_EmitMergeInputChains, 1, 3, 
/*222699*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222713*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->222759
/*222716*/              OPC_MoveChild0,
/*222717*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222720*/              OPC_RecordMemRef,
/*222721*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222722*/              OPC_CheckFoldableChainNode,
/*222723*/              OPC_RecordChild1, // #4 = $src3
/*222724*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222726*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*222728*/              OPC_CheckType, MVT::i32,
/*222730*/              OPC_MoveParent,
/*222731*/              OPC_MoveParent,
/*222732*/              OPC_MoveParent,
/*222733*/              OPC_CheckChild2Same, 1,
/*222735*/              OPC_CheckType, MVT::v4i32,
/*222737*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*222739*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222742*/              OPC_EmitMergeInputChains, 1, 3, 
/*222745*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222759*/            0, // EndSwitchOpcode
/*222760*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPWSSDS),// ->222862
/*222763*/            OPC_RecordChild0, // #1 = $src1
/*222764*/            OPC_RecordChild1, // #2 = $src2
/*222765*/            OPC_MoveChild2,
/*222766*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->222815
/*222770*/              OPC_MoveChild0,
/*222771*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222774*/              OPC_RecordMemRef,
/*222775*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222776*/              OPC_CheckFoldableChainNode,
/*222777*/              OPC_RecordChild1, // #4 = $src3
/*222778*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222780*/              OPC_CheckPredicate, 9, // Predicate_load
/*222782*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*222784*/              OPC_CheckType, MVT::v2i64,
/*222786*/              OPC_MoveParent,
/*222787*/              OPC_MoveParent,
/*222788*/              OPC_MoveParent,
/*222789*/              OPC_CheckChild2Same, 1,
/*222791*/              OPC_CheckType, MVT::v4i32,
/*222793*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*222795*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222798*/              OPC_EmitMergeInputChains, 1, 3, 
/*222801*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDSZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222815*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->222861
/*222818*/              OPC_MoveChild0,
/*222819*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222822*/              OPC_RecordMemRef,
/*222823*/              OPC_RecordNode, // #3 = 'ld' chained node
/*222824*/              OPC_CheckFoldableChainNode,
/*222825*/              OPC_RecordChild1, // #4 = $src3
/*222826*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222828*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*222830*/              OPC_CheckType, MVT::i32,
/*222832*/              OPC_MoveParent,
/*222833*/              OPC_MoveParent,
/*222834*/              OPC_MoveParent,
/*222835*/              OPC_CheckChild2Same, 1,
/*222837*/              OPC_CheckType, MVT::v4i32,
/*222839*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*222841*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*222844*/              OPC_EmitMergeInputChains, 1, 3, 
/*222847*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDSZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*222861*/            0, // EndSwitchOpcode
/*222862*/          /*SwitchOpcode*/ 75|128,3/*459*/, TARGET_VAL(ISD::LOAD),// ->223325
/*222866*/            OPC_RecordMemRef,
/*222867*/            OPC_RecordNode, // #1 = 'ld' chained node
/*222868*/            OPC_CheckFoldableChainNode,
/*222869*/            OPC_RecordChild1, // #2 = $src
/*222870*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222872*/            OPC_Scope, 66, /*->222940*/ // 5 children in Scope
/*222874*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*222876*/              OPC_Scope, 30, /*->222908*/ // 2 children in Scope
/*222878*/                OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*222880*/                OPC_MoveParent,
/*222881*/                OPC_MoveChild2,
/*222882*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*222885*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*222887*/                OPC_MoveParent,
/*222888*/                OPC_CheckType, MVT::v4i32,
/*222890*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*222892*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*222895*/                OPC_EmitMergeInputChains1_1,
/*222896*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVZXBDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*222908*/              /*Scope*/ 30, /*->222939*/
/*222909*/                OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*222911*/                OPC_MoveParent,
/*222912*/                OPC_MoveChild2,
/*222913*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*222916*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*222918*/                OPC_MoveParent,
/*222919*/                OPC_CheckType, MVT::v4i32,
/*222921*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*222923*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*222926*/                OPC_EmitMergeInputChains1_1,
/*222927*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVZXWDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*222939*/              0, /*End of Scope*/
/*222940*/            /*Scope*/ 66, /*->223007*/
/*222941*/              OPC_CheckPredicate, 60, // Predicate_sextload
/*222943*/              OPC_Scope, 30, /*->222975*/ // 2 children in Scope
/*222945*/                OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*222947*/                OPC_MoveParent,
/*222948*/                OPC_MoveChild2,
/*222949*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*222952*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*222954*/                OPC_MoveParent,
/*222955*/                OPC_CheckType, MVT::v4i32,
/*222957*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*222959*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*222962*/                OPC_EmitMergeInputChains1_1,
/*222963*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVSXBDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*222975*/              /*Scope*/ 30, /*->223006*/
/*222976*/                OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*222978*/                OPC_MoveParent,
/*222979*/                OPC_MoveChild2,
/*222980*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*222983*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*222985*/                OPC_MoveParent,
/*222986*/                OPC_CheckType, MVT::v4i32,
/*222988*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*222990*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*222993*/                OPC_EmitMergeInputChains1_1,
/*222994*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVSXWDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223006*/              0, /*End of Scope*/
/*223007*/            /*Scope*/ 56, /*->223064*/
/*223008*/              OPC_CheckPredicate, 9, // Predicate_load
/*223010*/              OPC_Scope, 25, /*->223037*/ // 2 children in Scope
/*223012*/                OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*223014*/                OPC_MoveParent,
/*223015*/                OPC_RecordChild2, // #3 = $src0
/*223016*/                OPC_CheckType, MVT::v4i64,
/*223018*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223020*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*223023*/                OPC_EmitMergeInputChains1_1,
/*223024*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, VR256X:{ *:[v4i64] }:$src0) - Complexity = 25
                          // Dst: (VMOVDQA64Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*223037*/              /*Scope*/ 25, /*->223063*/
/*223038*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*223040*/                OPC_MoveParent,
/*223041*/                OPC_RecordChild2, // #3 = $src0
/*223042*/                OPC_CheckType, MVT::v4i64,
/*223044*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223046*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*223049*/                OPC_EmitMergeInputChains1_1,
/*223050*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src0) - Complexity = 25
                          // Dst: (VMOVDQU64Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*223063*/              0, /*End of Scope*/
/*223064*/            /*Scope*/ 0|128,1/*128*/, /*->223194*/
/*223066*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*223068*/              OPC_Scope, 48, /*->223118*/ // 3 children in Scope
/*223070*/                OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*223072*/                OPC_MoveParent,
/*223073*/                OPC_RecordChild2, // #3 = $src0
/*223074*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->223096
/*223077*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223079*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*223082*/                  OPC_EmitMergeInputChains1_1,
/*223083*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, VR128X:{ *:[v4i32] }:$src0) - Complexity = 25
                            // Dst: (VPMOVZXBDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223096*/                /*SwitchType*/ 19, MVT::v4i64,// ->223117
/*223098*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223100*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*223103*/                  OPC_EmitMergeInputChains1_1,
/*223104*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, VR256X:{ *:[v4i64] }:$src0) - Complexity = 25
                            // Dst: (VPMOVZXBQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223117*/                0, // EndSwitchType
/*223118*/              /*Scope*/ 48, /*->223167*/
/*223119*/                OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*223121*/                OPC_MoveParent,
/*223122*/                OPC_RecordChild2, // #3 = $src0
/*223123*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->223145
/*223126*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223128*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*223131*/                  OPC_EmitMergeInputChains1_1,
/*223132*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, VR128X:{ *:[v4i32] }:$src0) - Complexity = 25
                            // Dst: (VPMOVZXWDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223145*/                /*SwitchType*/ 19, MVT::v4i64,// ->223166
/*223147*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223149*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*223152*/                  OPC_EmitMergeInputChains1_1,
/*223153*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, VR256X:{ *:[v4i64] }:$src0) - Complexity = 25
                            // Dst: (VPMOVZXWQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223166*/                0, // EndSwitchType
/*223167*/              /*Scope*/ 25, /*->223193*/
/*223168*/                OPC_CheckPredicate, 72, // Predicate_zextloadvi32
/*223170*/                OPC_MoveParent,
/*223171*/                OPC_RecordChild2, // #3 = $src0
/*223172*/                OPC_CheckType, MVT::v4i64,
/*223174*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223176*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*223179*/                OPC_EmitMergeInputChains1_1,
/*223180*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>>, VR256X:{ *:[v4i64] }:$src0) - Complexity = 25
                          // Dst: (VPMOVZXDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223193*/              0, /*End of Scope*/
/*223194*/            /*Scope*/ 0|128,1/*128*/, /*->223324*/
/*223196*/              OPC_CheckPredicate, 60, // Predicate_sextload
/*223198*/              OPC_Scope, 48, /*->223248*/ // 3 children in Scope
/*223200*/                OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*223202*/                OPC_MoveParent,
/*223203*/                OPC_RecordChild2, // #3 = $src0
/*223204*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->223226
/*223207*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223209*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*223212*/                  OPC_EmitMergeInputChains1_1,
/*223213*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, VR128X:{ *:[v4i32] }:$src0) - Complexity = 25
                            // Dst: (VPMOVSXBDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223226*/                /*SwitchType*/ 19, MVT::v4i64,// ->223247
/*223228*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223230*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*223233*/                  OPC_EmitMergeInputChains1_1,
/*223234*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, VR256X:{ *:[v4i64] }:$src0) - Complexity = 25
                            // Dst: (VPMOVSXBQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223247*/                0, // EndSwitchType
/*223248*/              /*Scope*/ 48, /*->223297*/
/*223249*/                OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*223251*/                OPC_MoveParent,
/*223252*/                OPC_RecordChild2, // #3 = $src0
/*223253*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->223275
/*223256*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223258*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*223261*/                  OPC_EmitMergeInputChains1_1,
/*223262*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, VR128X:{ *:[v4i32] }:$src0) - Complexity = 25
                            // Dst: (VPMOVSXWDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223275*/                /*SwitchType*/ 19, MVT::v4i64,// ->223296
/*223277*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223279*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*223282*/                  OPC_EmitMergeInputChains1_1,
/*223283*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, VR256X:{ *:[v4i64] }:$src0) - Complexity = 25
                            // Dst: (VPMOVSXWQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223296*/                0, // EndSwitchType
/*223297*/              /*Scope*/ 25, /*->223323*/
/*223298*/                OPC_CheckPredicate, 72, // Predicate_sextloadvi32
/*223300*/                OPC_MoveParent,
/*223301*/                OPC_RecordChild2, // #3 = $src0
/*223302*/                OPC_CheckType, MVT::v4i64,
/*223304*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*223306*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*223309*/                OPC_EmitMergeInputChains1_1,
/*223310*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>>, VR256X:{ *:[v4i64] }:$src0) - Complexity = 25
                          // Dst: (VPMOVSXDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223323*/              0, /*End of Scope*/
/*223324*/            0, /*End of Scope*/
/*223325*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->223366
/*223328*/            OPC_MoveChild0,
/*223329*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*223332*/            OPC_RecordMemRef,
/*223333*/            OPC_RecordNode, // #1 = 'ld' chained node
/*223334*/            OPC_CheckFoldableChainNode,
/*223335*/            OPC_RecordChild1, // #2 = $src
/*223336*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*223338*/            OPC_CheckPredicate, 9, // Predicate_load
/*223340*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*223342*/            OPC_MoveParent,
/*223343*/            OPC_MoveParent,
/*223344*/            OPC_RecordChild2, // #3 = $src0
/*223345*/            OPC_CheckType, MVT::v4i64,
/*223347*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*223349*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*223352*/            OPC_EmitMergeInputChains1_1,
/*223353*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X2Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86SubVBroadcast:{ *:[v4i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                      // Dst: (VBROADCASTI64X2Z128rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*223366*/          /*SwitchOpcode*/ 43, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->223412
/*223369*/            OPC_RecordChild0, // #1 = $src
/*223370*/            OPC_CheckChild1Integer, 0, 
/*223372*/            OPC_CheckChild1Type, MVT::iPTR,
/*223374*/            OPC_MoveParent,
/*223375*/            OPC_MoveChild2,
/*223376*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*223379*/            OPC_MoveChild0,
/*223380*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*223383*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*223385*/            OPC_CheckType, MVT::v8i32,
/*223387*/            OPC_MoveParent,
/*223388*/            OPC_MoveParent,
/*223389*/            OPC_CheckType, MVT::v4i64,
/*223391*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223393*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*223396*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i64, 2/*#Ops*/, 1, 2,  // Results = #3
/*223404*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rrkz), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] }), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMOVDQA64Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, sub_ymm:{ *:[i32] }))
/*223412*/          0, // EndSwitchOpcode
/*223413*/        0, /*End of Scope*/
/*223414*/      /*Scope*/ 88|128,30|128,2/*36696*/, /*->260113*/
/*223417*/        OPC_CheckChild0Type, MVT::v8i1,
/*223419*/        OPC_Scope, 29|128,21/*2717*/, /*->226139*/ // 7 children in Scope
/*223422*/          OPC_MoveChild1,
/*223423*/          OPC_SwitchOpcode /*15 cases */, 106|128,9/*1258*/, TARGET_VAL(ISD::BITCAST),// ->224686
/*223428*/            OPC_Scope, 112|128,2/*368*/, /*->223799*/ // 4 children in Scope
/*223431*/              OPC_RecordChild0, // #1 = $ins
/*223432*/              OPC_MoveChild0,
/*223433*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*223436*/              OPC_RecordChild0, // #2 = $src1
/*223437*/              OPC_MoveChild1,
/*223438*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*223441*/              OPC_MoveChild0,
/*223442*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*223445*/              OPC_RecordMemRef,
/*223446*/              OPC_RecordNode, // #3 = 'ld' chained node
/*223447*/              OPC_CheckFoldableChainNode,
/*223448*/              OPC_RecordChild1, // #4 = $src2
/*223449*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*223451*/              OPC_CheckPredicate, 9, // Predicate_load
/*223453*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*223455*/              OPC_SwitchType /*2 cases */, 40|128,1/*168*/, MVT::v2i64,// ->223627
/*223459*/                OPC_MoveParent,
/*223460*/                OPC_SwitchType /*3 cases */, 53, MVT::v4i32,// ->223516
/*223463*/                  OPC_MoveParent,
/*223464*/                  OPC_MoveChild2,
/*223465*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223468*/                  OPC_CheckType, MVT::iPTR,
/*223470*/                  OPC_MoveParent,
/*223471*/                  OPC_CheckType, MVT::v16i32,
/*223473*/                  OPC_MoveParent,
/*223474*/                  OPC_MoveParent,
/*223475*/                  OPC_MoveChild2,
/*223476*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*223479*/                  OPC_MoveChild0,
/*223480*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*223483*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*223485*/                  OPC_CheckType, MVT::v16i32,
/*223487*/                  OPC_MoveParent,
/*223488*/                  OPC_MoveParent,
/*223489*/                  OPC_CheckType, MVT::v8i64,
/*223491*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*223493*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*223496*/                  OPC_EmitMergeInputChains, 1, 3, 
/*223499*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*223502*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VINSERTI64x2Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*223516*/                /*SwitchType*/ 53, MVT::v8i16,// ->223571
/*223518*/                  OPC_MoveParent,
/*223519*/                  OPC_MoveChild2,
/*223520*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223523*/                  OPC_CheckType, MVT::iPTR,
/*223525*/                  OPC_MoveParent,
/*223526*/                  OPC_CheckType, MVT::v32i16,
/*223528*/                  OPC_MoveParent,
/*223529*/                  OPC_MoveParent,
/*223530*/                  OPC_MoveChild2,
/*223531*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*223534*/                  OPC_MoveChild0,
/*223535*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*223538*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*223540*/                  OPC_CheckType, MVT::v16i32,
/*223542*/                  OPC_MoveParent,
/*223543*/                  OPC_MoveParent,
/*223544*/                  OPC_CheckType, MVT::v8i64,
/*223546*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*223548*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*223551*/                  OPC_EmitMergeInputChains, 1, 3, 
/*223554*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*223557*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VINSERTI64x2Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*223571*/                /*SwitchType*/ 53, MVT::v16i8,// ->223626
/*223573*/                  OPC_MoveParent,
/*223574*/                  OPC_MoveChild2,
/*223575*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223578*/                  OPC_CheckType, MVT::iPTR,
/*223580*/                  OPC_MoveParent,
/*223581*/                  OPC_CheckType, MVT::v64i8,
/*223583*/                  OPC_MoveParent,
/*223584*/                  OPC_MoveParent,
/*223585*/                  OPC_MoveChild2,
/*223586*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*223589*/                  OPC_MoveChild0,
/*223590*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*223593*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*223595*/                  OPC_CheckType, MVT::v16i32,
/*223597*/                  OPC_MoveParent,
/*223598*/                  OPC_MoveParent,
/*223599*/                  OPC_CheckType, MVT::v8i64,
/*223601*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*223603*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*223606*/                  OPC_EmitMergeInputChains, 1, 3, 
/*223609*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*223612*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VINSERTI64x2Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*223626*/                0, // EndSwitchType
/*223627*/              /*SwitchType*/ 40|128,1/*168*/, MVT::v4i64,// ->223798
/*223630*/                OPC_MoveParent,
/*223631*/                OPC_SwitchType /*3 cases */, 53, MVT::v8i32,// ->223687
/*223634*/                  OPC_MoveParent,
/*223635*/                  OPC_MoveChild2,
/*223636*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223639*/                  OPC_CheckType, MVT::iPTR,
/*223641*/                  OPC_MoveParent,
/*223642*/                  OPC_CheckType, MVT::v16i32,
/*223644*/                  OPC_MoveParent,
/*223645*/                  OPC_MoveParent,
/*223646*/                  OPC_MoveChild2,
/*223647*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*223650*/                  OPC_MoveChild0,
/*223651*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*223654*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*223656*/                  OPC_CheckType, MVT::v16i32,
/*223658*/                  OPC_MoveParent,
/*223659*/                  OPC_MoveParent,
/*223660*/                  OPC_CheckType, MVT::v8i64,
/*223662*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223664*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*223667*/                  OPC_EmitMergeInputChains, 1, 3, 
/*223670*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*223673*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VINSERTI64x4Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*223687*/                /*SwitchType*/ 53, MVT::v16i16,// ->223742
/*223689*/                  OPC_MoveParent,
/*223690*/                  OPC_MoveChild2,
/*223691*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223694*/                  OPC_CheckType, MVT::iPTR,
/*223696*/                  OPC_MoveParent,
/*223697*/                  OPC_CheckType, MVT::v32i16,
/*223699*/                  OPC_MoveParent,
/*223700*/                  OPC_MoveParent,
/*223701*/                  OPC_MoveChild2,
/*223702*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*223705*/                  OPC_MoveChild0,
/*223706*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*223709*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*223711*/                  OPC_CheckType, MVT::v16i32,
/*223713*/                  OPC_MoveParent,
/*223714*/                  OPC_MoveParent,
/*223715*/                  OPC_CheckType, MVT::v8i64,
/*223717*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223719*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*223722*/                  OPC_EmitMergeInputChains, 1, 3, 
/*223725*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*223728*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VINSERTI64x4Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*223742*/                /*SwitchType*/ 53, MVT::v32i8,// ->223797
/*223744*/                  OPC_MoveParent,
/*223745*/                  OPC_MoveChild2,
/*223746*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223749*/                  OPC_CheckType, MVT::iPTR,
/*223751*/                  OPC_MoveParent,
/*223752*/                  OPC_CheckType, MVT::v64i8,
/*223754*/                  OPC_MoveParent,
/*223755*/                  OPC_MoveParent,
/*223756*/                  OPC_MoveChild2,
/*223757*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*223760*/                  OPC_MoveChild0,
/*223761*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*223764*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*223766*/                  OPC_CheckType, MVT::v16i32,
/*223768*/                  OPC_MoveParent,
/*223769*/                  OPC_MoveParent,
/*223770*/                  OPC_CheckType, MVT::v8i64,
/*223772*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223774*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*223777*/                  OPC_EmitMergeInputChains, 1, 3, 
/*223780*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*223783*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VINSERTI64x4Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*223797*/                0, // EndSwitchType
/*223798*/              0, // EndSwitchType
/*223799*/            /*Scope*/ 76, /*->223876*/
/*223800*/              OPC_MoveChild0,
/*223801*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*223804*/              OPC_RecordChild0, // #1 = $src1
/*223805*/              OPC_MoveChild1,
/*223806*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*223809*/              OPC_MoveChild0,
/*223810*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*223813*/              OPC_MoveChild0,
/*223814*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*223817*/              OPC_RecordMemRef,
/*223818*/              OPC_RecordNode, // #2 = 'ld' chained node
/*223819*/              OPC_CheckFoldableChainNode,
/*223820*/              OPC_RecordChild1, // #3 = $src2
/*223821*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*223823*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*223825*/              OPC_CheckType, MVT::i32,
/*223827*/              OPC_MoveParent,
/*223828*/              OPC_CheckType, MVT::v8i32,
/*223830*/              OPC_MoveParent,
/*223831*/              OPC_MoveParent,
/*223832*/              OPC_RecordChild2, // #4 = $src3
/*223833*/              OPC_MoveChild2,
/*223834*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223837*/              OPC_MoveParent,
/*223838*/              OPC_CheckType, MVT::v4i64,
/*223840*/              OPC_MoveParent,
/*223841*/              OPC_MoveParent,
/*223842*/              OPC_MoveChild2,
/*223843*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*223846*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*223848*/              OPC_MoveParent,
/*223849*/              OPC_CheckType, MVT::v8i32,
/*223851*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223853*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*223856*/              OPC_EmitMergeInputChains1_2,
/*223857*/              OPC_EmitConvertToTarget, 4,
/*223859*/              OPC_EmitNodeXForm, 14, 10, // ValignqImm32XForm
/*223862*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 11, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 44
                        // Dst: (VALIGNDZ256rmbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*223876*/            /*Scope*/ 113, /*->223990*/
/*223877*/              OPC_RecordChild0, // #1 = $ins
/*223878*/              OPC_MoveChild0,
/*223879*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*223882*/              OPC_RecordChild0, // #2 = $src1
/*223883*/              OPC_MoveChild1,
/*223884*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*223887*/              OPC_MoveChild0,
/*223888*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*223891*/              OPC_RecordMemRef,
/*223892*/              OPC_RecordNode, // #3 = 'ld' chained node
/*223893*/              OPC_CheckFoldableChainNode,
/*223894*/              OPC_RecordChild1, // #4 = $src2
/*223895*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*223897*/              OPC_CheckPredicate, 9, // Predicate_load
/*223899*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*223901*/              OPC_CheckType, MVT::v2i64,
/*223903*/              OPC_MoveParent,
/*223904*/              OPC_MoveParent,
/*223905*/              OPC_MoveChild2,
/*223906*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223909*/              OPC_CheckType, MVT::iPTR,
/*223911*/              OPC_MoveParent,
/*223912*/              OPC_SwitchType /*2 cases */, 36, MVT::v16i16,// ->223951
/*223915*/                OPC_MoveParent,
/*223916*/                OPC_MoveParent,
/*223917*/                OPC_MoveChild2,
/*223918*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*223921*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*223923*/                OPC_MoveParent,
/*223924*/                OPC_CheckType, MVT::v8i32,
/*223926*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223928*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*223931*/                OPC_EmitMergeInputChains, 1, 3, 
/*223934*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*223937*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                          // Dst: (VINSERTI32x4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*223951*/              /*SwitchType*/ 36, MVT::v32i8,// ->223989
/*223953*/                OPC_MoveParent,
/*223954*/                OPC_MoveParent,
/*223955*/                OPC_MoveChild2,
/*223956*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*223959*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*223961*/                OPC_MoveParent,
/*223962*/                OPC_CheckType, MVT::v8i32,
/*223964*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223966*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*223969*/                OPC_EmitMergeInputChains, 1, 3, 
/*223972*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*223975*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                          // Dst: (VINSERTI32x4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*223989*/              0, // EndSwitchType
/*223990*/            /*Scope*/ 53|128,5/*693*/, /*->224685*/
/*223992*/              OPC_MoveChild0,
/*223993*/              OPC_SwitchOpcode /*7 cases */, 108, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->224105
/*223997*/                OPC_MoveChild0,
/*223998*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224001*/                OPC_MoveChild0,
/*224002*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224005*/                OPC_RecordMemRef,
/*224006*/                OPC_RecordNode, // #1 = 'ld' chained node
/*224007*/                OPC_CheckFoldableChainNode,
/*224008*/                OPC_RecordChild1, // #2 = $src
/*224009*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224011*/                OPC_CheckPredicate, 9, // Predicate_load
/*224013*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*224015*/                OPC_SwitchType /*2 cases */, 42, MVT::v4i64,// ->224060
/*224018*/                  OPC_MoveParent,
/*224019*/                  OPC_CheckType, MVT::v8i32,
/*224021*/                  OPC_MoveParent,
/*224022*/                  OPC_CheckType, MVT::v16i32,
/*224024*/                  OPC_MoveParent,
/*224025*/                  OPC_MoveParent,
/*224026*/                  OPC_MoveChild2,
/*224027*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224030*/                  OPC_MoveChild0,
/*224031*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224034*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224036*/                  OPC_CheckType, MVT::v16i32,
/*224038*/                  OPC_MoveParent,
/*224039*/                  OPC_MoveParent,
/*224040*/                  OPC_CheckType, MVT::v8i64,
/*224042*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224044*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*224047*/                  OPC_EmitMergeInputChains1_1,
/*224048*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X4rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (X86SubVBroadcast:{ *:[v16i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                            // Dst: (VBROADCASTI64X4rmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*224060*/                /*SwitchType*/ 42, MVT::v2i64,// ->224104
/*224062*/                  OPC_MoveParent,
/*224063*/                  OPC_CheckType, MVT::v4i32,
/*224065*/                  OPC_MoveParent,
/*224066*/                  OPC_CheckType, MVT::v16i32,
/*224068*/                  OPC_MoveParent,
/*224069*/                  OPC_MoveParent,
/*224070*/                  OPC_MoveChild2,
/*224071*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224074*/                  OPC_MoveChild0,
/*224075*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224078*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224080*/                  OPC_CheckType, MVT::v16i32,
/*224082*/                  OPC_MoveParent,
/*224083*/                  OPC_MoveParent,
/*224084*/                  OPC_CheckType, MVT::v8i64,
/*224086*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*224088*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*224091*/                  OPC_EmitMergeInputChains1_1,
/*224092*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X2rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (X86SubVBroadcast:{ *:[v16i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                            // Dst: (VBROADCASTI64X2rmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*224104*/                0, // EndSwitchType
/*224105*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::AND),// ->224232
/*224108*/                OPC_Scope, 60, /*->224170*/ // 2 children in Scope
/*224110*/                  OPC_RecordChild0, // #1 = $src1
/*224111*/                  OPC_MoveChild1,
/*224112*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224115*/                  OPC_MoveChild0,
/*224116*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*224119*/                  OPC_MoveChild0,
/*224120*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224123*/                  OPC_RecordMemRef,
/*224124*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*224125*/                  OPC_CheckFoldableChainNode,
/*224126*/                  OPC_RecordChild1, // #3 = $src2
/*224127*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224129*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*224131*/                  OPC_CheckType, MVT::i32,
/*224133*/                  OPC_MoveParent,
/*224134*/                  OPC_CheckType, MVT::v8i32,
/*224136*/                  OPC_MoveParent,
/*224137*/                  OPC_MoveParent,
/*224138*/                  OPC_CheckType, MVT::v4i64,
/*224140*/                  OPC_MoveParent,
/*224141*/                  OPC_MoveParent,
/*224142*/                  OPC_MoveChild2,
/*224143*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224146*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224148*/                  OPC_MoveParent,
/*224149*/                  OPC_CheckType, MVT::v8i32,
/*224151*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224153*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*224156*/                  OPC_EmitMergeInputChains1_2,
/*224157*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPANDDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*224170*/                /*Scope*/ 60, /*->224231*/
/*224171*/                  OPC_MoveChild0,
/*224172*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224175*/                  OPC_MoveChild0,
/*224176*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*224179*/                  OPC_MoveChild0,
/*224180*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224183*/                  OPC_RecordMemRef,
/*224184*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*224185*/                  OPC_CheckFoldableChainNode,
/*224186*/                  OPC_RecordChild1, // #2 = $src2
/*224187*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224189*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*224191*/                  OPC_CheckType, MVT::i32,
/*224193*/                  OPC_MoveParent,
/*224194*/                  OPC_CheckType, MVT::v8i32,
/*224196*/                  OPC_MoveParent,
/*224197*/                  OPC_MoveParent,
/*224198*/                  OPC_RecordChild1, // #3 = $src1
/*224199*/                  OPC_CheckType, MVT::v4i64,
/*224201*/                  OPC_MoveParent,
/*224202*/                  OPC_MoveParent,
/*224203*/                  OPC_MoveChild2,
/*224204*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224207*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224209*/                  OPC_MoveParent,
/*224210*/                  OPC_CheckType, MVT::v8i32,
/*224212*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224214*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*224217*/                  OPC_EmitMergeInputChains1_1,
/*224218*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPANDDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*224231*/                0, /*End of Scope*/
/*224232*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::OR),// ->224359
/*224235*/                OPC_Scope, 60, /*->224297*/ // 2 children in Scope
/*224237*/                  OPC_RecordChild0, // #1 = $src1
/*224238*/                  OPC_MoveChild1,
/*224239*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224242*/                  OPC_MoveChild0,
/*224243*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*224246*/                  OPC_MoveChild0,
/*224247*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224250*/                  OPC_RecordMemRef,
/*224251*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*224252*/                  OPC_CheckFoldableChainNode,
/*224253*/                  OPC_RecordChild1, // #3 = $src2
/*224254*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224256*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*224258*/                  OPC_CheckType, MVT::i32,
/*224260*/                  OPC_MoveParent,
/*224261*/                  OPC_CheckType, MVT::v8i32,
/*224263*/                  OPC_MoveParent,
/*224264*/                  OPC_MoveParent,
/*224265*/                  OPC_CheckType, MVT::v4i64,
/*224267*/                  OPC_MoveParent,
/*224268*/                  OPC_MoveParent,
/*224269*/                  OPC_MoveChild2,
/*224270*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224273*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224275*/                  OPC_MoveParent,
/*224276*/                  OPC_CheckType, MVT::v8i32,
/*224278*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224280*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*224283*/                  OPC_EmitMergeInputChains1_2,
/*224284*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPORDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*224297*/                /*Scope*/ 60, /*->224358*/
/*224298*/                  OPC_MoveChild0,
/*224299*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224302*/                  OPC_MoveChild0,
/*224303*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*224306*/                  OPC_MoveChild0,
/*224307*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224310*/                  OPC_RecordMemRef,
/*224311*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*224312*/                  OPC_CheckFoldableChainNode,
/*224313*/                  OPC_RecordChild1, // #2 = $src2
/*224314*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224316*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*224318*/                  OPC_CheckType, MVT::i32,
/*224320*/                  OPC_MoveParent,
/*224321*/                  OPC_CheckType, MVT::v8i32,
/*224323*/                  OPC_MoveParent,
/*224324*/                  OPC_MoveParent,
/*224325*/                  OPC_RecordChild1, // #3 = $src1
/*224326*/                  OPC_CheckType, MVT::v4i64,
/*224328*/                  OPC_MoveParent,
/*224329*/                  OPC_MoveParent,
/*224330*/                  OPC_MoveChild2,
/*224331*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224334*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224336*/                  OPC_MoveParent,
/*224337*/                  OPC_CheckType, MVT::v8i32,
/*224339*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224341*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*224344*/                  OPC_EmitMergeInputChains1_1,
/*224345*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPORDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*224358*/                0, /*End of Scope*/
/*224359*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::XOR),// ->224486
/*224362*/                OPC_Scope, 60, /*->224424*/ // 2 children in Scope
/*224364*/                  OPC_RecordChild0, // #1 = $src1
/*224365*/                  OPC_MoveChild1,
/*224366*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224369*/                  OPC_MoveChild0,
/*224370*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*224373*/                  OPC_MoveChild0,
/*224374*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224377*/                  OPC_RecordMemRef,
/*224378*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*224379*/                  OPC_CheckFoldableChainNode,
/*224380*/                  OPC_RecordChild1, // #3 = $src2
/*224381*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224383*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*224385*/                  OPC_CheckType, MVT::i32,
/*224387*/                  OPC_MoveParent,
/*224388*/                  OPC_CheckType, MVT::v8i32,
/*224390*/                  OPC_MoveParent,
/*224391*/                  OPC_MoveParent,
/*224392*/                  OPC_CheckType, MVT::v4i64,
/*224394*/                  OPC_MoveParent,
/*224395*/                  OPC_MoveParent,
/*224396*/                  OPC_MoveChild2,
/*224397*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224400*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224402*/                  OPC_MoveParent,
/*224403*/                  OPC_CheckType, MVT::v8i32,
/*224405*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224407*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*224410*/                  OPC_EmitMergeInputChains1_2,
/*224411*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPXORDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*224424*/                /*Scope*/ 60, /*->224485*/
/*224425*/                  OPC_MoveChild0,
/*224426*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224429*/                  OPC_MoveChild0,
/*224430*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*224433*/                  OPC_MoveChild0,
/*224434*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224437*/                  OPC_RecordMemRef,
/*224438*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*224439*/                  OPC_CheckFoldableChainNode,
/*224440*/                  OPC_RecordChild1, // #2 = $src2
/*224441*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224443*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*224445*/                  OPC_CheckType, MVT::i32,
/*224447*/                  OPC_MoveParent,
/*224448*/                  OPC_CheckType, MVT::v8i32,
/*224450*/                  OPC_MoveParent,
/*224451*/                  OPC_MoveParent,
/*224452*/                  OPC_RecordChild1, // #3 = $src1
/*224453*/                  OPC_CheckType, MVT::v4i64,
/*224455*/                  OPC_MoveParent,
/*224456*/                  OPC_MoveParent,
/*224457*/                  OPC_MoveChild2,
/*224458*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224461*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224463*/                  OPC_MoveParent,
/*224464*/                  OPC_CheckType, MVT::v8i32,
/*224466*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224468*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*224471*/                  OPC_EmitMergeInputChains1_1,
/*224472*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPXORDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*224485*/                0, /*End of Scope*/
/*224486*/              /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::ANDNP),// ->224549
/*224489*/                OPC_RecordChild0, // #1 = $src1
/*224490*/                OPC_MoveChild1,
/*224491*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224494*/                OPC_MoveChild0,
/*224495*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*224498*/                OPC_MoveChild0,
/*224499*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224502*/                OPC_RecordMemRef,
/*224503*/                OPC_RecordNode, // #2 = 'ld' chained node
/*224504*/                OPC_CheckFoldableChainNode,
/*224505*/                OPC_RecordChild1, // #3 = $src2
/*224506*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224508*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*224510*/                OPC_CheckType, MVT::i32,
/*224512*/                OPC_MoveParent,
/*224513*/                OPC_CheckType, MVT::v8i32,
/*224515*/                OPC_MoveParent,
/*224516*/                OPC_MoveParent,
/*224517*/                OPC_CheckType, MVT::v4i64,
/*224519*/                OPC_MoveParent,
/*224520*/                OPC_MoveParent,
/*224521*/                OPC_MoveChild2,
/*224522*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224525*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224527*/                OPC_MoveParent,
/*224528*/                OPC_CheckType, MVT::v8i32,
/*224530*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224532*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*224535*/                OPC_EmitMergeInputChains1_2,
/*224536*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                          // Dst: (VPANDNDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*224549*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::SHUF128),// ->224614
/*224552*/                OPC_RecordChild0, // #1 = $src1
/*224553*/                OPC_MoveChild1,
/*224554*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*224557*/                OPC_MoveChild0,
/*224558*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224561*/                OPC_RecordMemRef,
/*224562*/                OPC_RecordNode, // #2 = 'ld' chained node
/*224563*/                OPC_CheckFoldableChainNode,
/*224564*/                OPC_RecordChild1, // #3 = $src2
/*224565*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224567*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*224569*/                OPC_CheckType, MVT::i32,
/*224571*/                OPC_MoveParent,
/*224572*/                OPC_MoveParent,
/*224573*/                OPC_RecordChild2, // #4 = $src3
/*224574*/                OPC_MoveChild2,
/*224575*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*224578*/                OPC_MoveParent,
/*224579*/                OPC_CheckType, MVT::v4i64,
/*224581*/                OPC_MoveParent,
/*224582*/                OPC_MoveParent,
/*224583*/                OPC_MoveChild2,
/*224584*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224587*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224589*/                OPC_MoveParent,
/*224590*/                OPC_CheckType, MVT::v8i32,
/*224592*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224594*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*224597*/                OPC_EmitMergeInputChains1_2,
/*224598*/                OPC_EmitConvertToTarget, 4,
/*224600*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                          // Dst: (VSHUFI32X4Z256rmbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*224614*/              /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::VALIGN),// ->224684
/*224617*/                OPC_RecordChild0, // #1 = $src1
/*224618*/                OPC_MoveChild1,
/*224619*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224622*/                OPC_MoveChild0,
/*224623*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*224626*/                OPC_MoveChild0,
/*224627*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224630*/                OPC_RecordMemRef,
/*224631*/                OPC_RecordNode, // #2 = 'ld' chained node
/*224632*/                OPC_CheckFoldableChainNode,
/*224633*/                OPC_RecordChild1, // #3 = $src2
/*224634*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224636*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*224638*/                OPC_CheckType, MVT::i32,
/*224640*/                OPC_MoveParent,
/*224641*/                OPC_CheckType, MVT::v8i32,
/*224643*/                OPC_MoveParent,
/*224644*/                OPC_MoveParent,
/*224645*/                OPC_RecordChild2, // #4 = $src3
/*224646*/                OPC_MoveChild2,
/*224647*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*224650*/                OPC_MoveParent,
/*224651*/                OPC_CheckType, MVT::v4i64,
/*224653*/                OPC_MoveParent,
/*224654*/                OPC_MoveParent,
/*224655*/                OPC_RecordChild2, // #5 = $src0
/*224656*/                OPC_CheckType, MVT::v8i32,
/*224658*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*224660*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*224663*/                OPC_EmitMergeInputChains1_2,
/*224664*/                OPC_EmitConvertToTarget, 4,
/*224666*/                OPC_EmitNodeXForm, 14, 11, // ValignqImm32XForm
/*224669*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (imm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 40
                          // Dst: (VALIGNDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*224684*/              0, // EndSwitchOpcode
/*224685*/            0, /*End of Scope*/
/*224686*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::VSRLI),// ->224821
/*224690*/            OPC_MoveChild0,
/*224691*/            OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(X86ISD::VBROADCAST),// ->224755
/*224695*/              OPC_MoveChild0,
/*224696*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224699*/              OPC_RecordMemRef,
/*224700*/              OPC_RecordNode, // #1 = 'ld' chained node
/*224701*/              OPC_CheckFoldableChainNode,
/*224702*/              OPC_RecordChild1, // #2 = $src1
/*224703*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224705*/              OPC_CheckPredicate, 9, // Predicate_load
/*224707*/              OPC_CheckType, MVT::i64,
/*224709*/              OPC_MoveParent,
/*224710*/              OPC_MoveParent,
/*224711*/              OPC_RecordChild1, // #3 = $src2
/*224712*/              OPC_MoveChild1,
/*224713*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*224716*/              OPC_MoveParent,
/*224717*/              OPC_MoveParent,
/*224718*/              OPC_MoveChild2,
/*224719*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224722*/              OPC_MoveChild0,
/*224723*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224726*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224728*/              OPC_CheckType, MVT::v16i32,
/*224730*/              OPC_MoveParent,
/*224731*/              OPC_MoveParent,
/*224732*/              OPC_CheckType, MVT::v8i64,
/*224734*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224736*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224739*/              OPC_EmitMergeInputChains1_1,
/*224740*/              OPC_EmitConvertToTarget, 3,
/*224742*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSRLQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*224755*/            /*SwitchOpcode*/ 62, TARGET_VAL(ISD::BITCAST),// ->224820
/*224758*/              OPC_MoveChild0,
/*224759*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224762*/              OPC_RecordMemRef,
/*224763*/              OPC_RecordNode, // #1 = 'ld' chained node
/*224764*/              OPC_CheckFoldableChainNode,
/*224765*/              OPC_RecordChild1, // #2 = $src1
/*224766*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224768*/              OPC_CheckPredicate, 9, // Predicate_load
/*224770*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*224772*/              OPC_CheckType, MVT::v2i64,
/*224774*/              OPC_MoveParent,
/*224775*/              OPC_MoveParent,
/*224776*/              OPC_RecordChild1, // #3 = $src2
/*224777*/              OPC_MoveChild1,
/*224778*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*224781*/              OPC_MoveParent,
/*224782*/              OPC_MoveParent,
/*224783*/              OPC_MoveChild2,
/*224784*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224787*/              OPC_MoveChild0,
/*224788*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224791*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224793*/              OPC_CheckType, MVT::v4i32,
/*224795*/              OPC_MoveParent,
/*224796*/              OPC_MoveParent,
/*224797*/              OPC_CheckType, MVT::v8i16,
/*224799*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*224801*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224804*/              OPC_EmitMergeInputChains1_1,
/*224805*/              OPC_EmitConvertToTarget, 3,
/*224807*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSRLWZ128mikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*224820*/            0, // EndSwitchOpcode
/*224821*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::VSHLI),// ->224956
/*224825*/            OPC_MoveChild0,
/*224826*/            OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(X86ISD::VBROADCAST),// ->224890
/*224830*/              OPC_MoveChild0,
/*224831*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224834*/              OPC_RecordMemRef,
/*224835*/              OPC_RecordNode, // #1 = 'ld' chained node
/*224836*/              OPC_CheckFoldableChainNode,
/*224837*/              OPC_RecordChild1, // #2 = $src1
/*224838*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224840*/              OPC_CheckPredicate, 9, // Predicate_load
/*224842*/              OPC_CheckType, MVT::i64,
/*224844*/              OPC_MoveParent,
/*224845*/              OPC_MoveParent,
/*224846*/              OPC_RecordChild1, // #3 = $src2
/*224847*/              OPC_MoveChild1,
/*224848*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*224851*/              OPC_MoveParent,
/*224852*/              OPC_MoveParent,
/*224853*/              OPC_MoveChild2,
/*224854*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224857*/              OPC_MoveChild0,
/*224858*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224861*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224863*/              OPC_CheckType, MVT::v16i32,
/*224865*/              OPC_MoveParent,
/*224866*/              OPC_MoveParent,
/*224867*/              OPC_CheckType, MVT::v8i64,
/*224869*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224871*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224874*/              OPC_EmitMergeInputChains1_1,
/*224875*/              OPC_EmitConvertToTarget, 3,
/*224877*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSLLQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*224890*/            /*SwitchOpcode*/ 62, TARGET_VAL(ISD::BITCAST),// ->224955
/*224893*/              OPC_MoveChild0,
/*224894*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224897*/              OPC_RecordMemRef,
/*224898*/              OPC_RecordNode, // #1 = 'ld' chained node
/*224899*/              OPC_CheckFoldableChainNode,
/*224900*/              OPC_RecordChild1, // #2 = $src1
/*224901*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224903*/              OPC_CheckPredicate, 9, // Predicate_load
/*224905*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*224907*/              OPC_CheckType, MVT::v2i64,
/*224909*/              OPC_MoveParent,
/*224910*/              OPC_MoveParent,
/*224911*/              OPC_RecordChild1, // #3 = $src2
/*224912*/              OPC_MoveChild1,
/*224913*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*224916*/              OPC_MoveParent,
/*224917*/              OPC_MoveParent,
/*224918*/              OPC_MoveChild2,
/*224919*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224922*/              OPC_MoveChild0,
/*224923*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224926*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224928*/              OPC_CheckType, MVT::v4i32,
/*224930*/              OPC_MoveParent,
/*224931*/              OPC_MoveParent,
/*224932*/              OPC_CheckType, MVT::v8i16,
/*224934*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*224936*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224939*/              OPC_EmitMergeInputChains1_1,
/*224940*/              OPC_EmitConvertToTarget, 3,
/*224942*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSLLWZ128mikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*224955*/            0, // EndSwitchOpcode
/*224956*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::VSRAI),// ->225091
/*224960*/            OPC_MoveChild0,
/*224961*/            OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(X86ISD::VBROADCAST),// ->225025
/*224965*/              OPC_MoveChild0,
/*224966*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224969*/              OPC_RecordMemRef,
/*224970*/              OPC_RecordNode, // #1 = 'ld' chained node
/*224971*/              OPC_CheckFoldableChainNode,
/*224972*/              OPC_RecordChild1, // #2 = $src1
/*224973*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224975*/              OPC_CheckPredicate, 9, // Predicate_load
/*224977*/              OPC_CheckType, MVT::i64,
/*224979*/              OPC_MoveParent,
/*224980*/              OPC_MoveParent,
/*224981*/              OPC_RecordChild1, // #3 = $src2
/*224982*/              OPC_MoveChild1,
/*224983*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*224986*/              OPC_MoveParent,
/*224987*/              OPC_MoveParent,
/*224988*/              OPC_MoveChild2,
/*224989*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*224992*/              OPC_MoveChild0,
/*224993*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*224996*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*224998*/              OPC_CheckType, MVT::v16i32,
/*225000*/              OPC_MoveParent,
/*225001*/              OPC_MoveParent,
/*225002*/              OPC_CheckType, MVT::v8i64,
/*225004*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225006*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225009*/              OPC_EmitMergeInputChains1_1,
/*225010*/              OPC_EmitConvertToTarget, 3,
/*225012*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSRAQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*225025*/            /*SwitchOpcode*/ 62, TARGET_VAL(ISD::BITCAST),// ->225090
/*225028*/              OPC_MoveChild0,
/*225029*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225032*/              OPC_RecordMemRef,
/*225033*/              OPC_RecordNode, // #1 = 'ld' chained node
/*225034*/              OPC_CheckFoldableChainNode,
/*225035*/              OPC_RecordChild1, // #2 = $src1
/*225036*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225038*/              OPC_CheckPredicate, 9, // Predicate_load
/*225040*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*225042*/              OPC_CheckType, MVT::v2i64,
/*225044*/              OPC_MoveParent,
/*225045*/              OPC_MoveParent,
/*225046*/              OPC_RecordChild1, // #3 = $src2
/*225047*/              OPC_MoveChild1,
/*225048*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225051*/              OPC_MoveParent,
/*225052*/              OPC_MoveParent,
/*225053*/              OPC_MoveChild2,
/*225054*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225057*/              OPC_MoveChild0,
/*225058*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225061*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225063*/              OPC_CheckType, MVT::v4i32,
/*225065*/              OPC_MoveParent,
/*225066*/              OPC_MoveParent,
/*225067*/              OPC_CheckType, MVT::v8i16,
/*225069*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*225071*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225074*/              OPC_EmitMergeInputChains1_1,
/*225075*/              OPC_EmitConvertToTarget, 3,
/*225077*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSRAWZ128mikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*225090*/            0, // EndSwitchOpcode
/*225091*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VROTRI),// ->225158
/*225094*/            OPC_MoveChild0,
/*225095*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*225098*/            OPC_MoveChild0,
/*225099*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225102*/            OPC_RecordMemRef,
/*225103*/            OPC_RecordNode, // #1 = 'ld' chained node
/*225104*/            OPC_CheckFoldableChainNode,
/*225105*/            OPC_RecordChild1, // #2 = $src1
/*225106*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225108*/            OPC_CheckPredicate, 9, // Predicate_load
/*225110*/            OPC_CheckType, MVT::i64,
/*225112*/            OPC_MoveParent,
/*225113*/            OPC_MoveParent,
/*225114*/            OPC_RecordChild1, // #3 = $src2
/*225115*/            OPC_MoveChild1,
/*225116*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225119*/            OPC_MoveParent,
/*225120*/            OPC_MoveParent,
/*225121*/            OPC_MoveChild2,
/*225122*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225125*/            OPC_MoveChild0,
/*225126*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225129*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225131*/            OPC_CheckType, MVT::v16i32,
/*225133*/            OPC_MoveParent,
/*225134*/            OPC_MoveParent,
/*225135*/            OPC_CheckType, MVT::v8i64,
/*225137*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225139*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225142*/            OPC_EmitMergeInputChains1_1,
/*225143*/            OPC_EmitConvertToTarget, 3,
/*225145*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPRORQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*225158*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VROTLI),// ->225225
/*225161*/            OPC_MoveChild0,
/*225162*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*225165*/            OPC_MoveChild0,
/*225166*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225169*/            OPC_RecordMemRef,
/*225170*/            OPC_RecordNode, // #1 = 'ld' chained node
/*225171*/            OPC_CheckFoldableChainNode,
/*225172*/            OPC_RecordChild1, // #2 = $src1
/*225173*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225175*/            OPC_CheckPredicate, 9, // Predicate_load
/*225177*/            OPC_CheckType, MVT::i64,
/*225179*/            OPC_MoveParent,
/*225180*/            OPC_MoveParent,
/*225181*/            OPC_RecordChild1, // #3 = $src2
/*225182*/            OPC_MoveChild1,
/*225183*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225186*/            OPC_MoveParent,
/*225187*/            OPC_MoveParent,
/*225188*/            OPC_MoveChild2,
/*225189*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225192*/            OPC_MoveChild0,
/*225193*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225196*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225198*/            OPC_CheckType, MVT::v16i32,
/*225200*/            OPC_MoveParent,
/*225201*/            OPC_MoveParent,
/*225202*/            OPC_CheckType, MVT::v8i64,
/*225204*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225206*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225209*/            OPC_EmitMergeInputChains1_1,
/*225210*/            OPC_EmitConvertToTarget, 3,
/*225212*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPROLQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*225225*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VPERMI),// ->225292
/*225228*/            OPC_MoveChild0,
/*225229*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*225232*/            OPC_MoveChild0,
/*225233*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225236*/            OPC_RecordMemRef,
/*225237*/            OPC_RecordNode, // #1 = 'ld' chained node
/*225238*/            OPC_CheckFoldableChainNode,
/*225239*/            OPC_RecordChild1, // #2 = $src1
/*225240*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225242*/            OPC_CheckPredicate, 9, // Predicate_load
/*225244*/            OPC_CheckType, MVT::i64,
/*225246*/            OPC_MoveParent,
/*225247*/            OPC_MoveParent,
/*225248*/            OPC_RecordChild1, // #3 = $src2
/*225249*/            OPC_MoveChild1,
/*225250*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225253*/            OPC_MoveParent,
/*225254*/            OPC_MoveParent,
/*225255*/            OPC_MoveChild2,
/*225256*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225259*/            OPC_MoveChild0,
/*225260*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225263*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225265*/            OPC_CheckType, MVT::v16i32,
/*225267*/            OPC_MoveParent,
/*225268*/            OPC_MoveParent,
/*225269*/            OPC_CheckType, MVT::v8i64,
/*225271*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225273*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225276*/            OPC_EmitMergeInputChains1_1,
/*225277*/            OPC_EmitConvertToTarget, 3,
/*225279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPERMQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*225292*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::PSHUFHW),// ->225361
/*225295*/            OPC_MoveChild0,
/*225296*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225299*/            OPC_MoveChild0,
/*225300*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225303*/            OPC_RecordMemRef,
/*225304*/            OPC_RecordNode, // #1 = 'ld' chained node
/*225305*/            OPC_CheckFoldableChainNode,
/*225306*/            OPC_RecordChild1, // #2 = $src1
/*225307*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225309*/            OPC_CheckPredicate, 9, // Predicate_load
/*225311*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*225313*/            OPC_CheckType, MVT::v2i64,
/*225315*/            OPC_MoveParent,
/*225316*/            OPC_MoveParent,
/*225317*/            OPC_RecordChild1, // #3 = $src2
/*225318*/            OPC_MoveChild1,
/*225319*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225322*/            OPC_MoveParent,
/*225323*/            OPC_MoveParent,
/*225324*/            OPC_MoveChild2,
/*225325*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225328*/            OPC_MoveChild0,
/*225329*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225332*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225334*/            OPC_CheckType, MVT::v4i32,
/*225336*/            OPC_MoveParent,
/*225337*/            OPC_MoveParent,
/*225338*/            OPC_CheckType, MVT::v8i16,
/*225340*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*225342*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225345*/            OPC_EmitMergeInputChains1_1,
/*225346*/            OPC_EmitConvertToTarget, 3,
/*225348*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufhw:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHUFHWZ128mikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*225361*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::PSHUFLW),// ->225430
/*225364*/            OPC_MoveChild0,
/*225365*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225368*/            OPC_MoveChild0,
/*225369*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225372*/            OPC_RecordMemRef,
/*225373*/            OPC_RecordNode, // #1 = 'ld' chained node
/*225374*/            OPC_CheckFoldableChainNode,
/*225375*/            OPC_RecordChild1, // #2 = $src1
/*225376*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225378*/            OPC_CheckPredicate, 9, // Predicate_load
/*225380*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*225382*/            OPC_CheckType, MVT::v2i64,
/*225384*/            OPC_MoveParent,
/*225385*/            OPC_MoveParent,
/*225386*/            OPC_RecordChild1, // #3 = $src2
/*225387*/            OPC_MoveChild1,
/*225388*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225391*/            OPC_MoveParent,
/*225392*/            OPC_MoveParent,
/*225393*/            OPC_MoveChild2,
/*225394*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225397*/            OPC_MoveChild0,
/*225398*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225401*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225403*/            OPC_CheckType, MVT::v4i32,
/*225405*/            OPC_MoveParent,
/*225406*/            OPC_MoveParent,
/*225407*/            OPC_CheckType, MVT::v8i16,
/*225409*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*225411*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225414*/            OPC_EmitMergeInputChains1_1,
/*225415*/            OPC_EmitConvertToTarget, 3,
/*225417*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShuflw:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHUFLWZ128mikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*225430*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::SHUF128),// ->225499
/*225433*/            OPC_RecordChild0, // #1 = $src1
/*225434*/            OPC_MoveChild1,
/*225435*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*225438*/            OPC_MoveChild0,
/*225439*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225442*/            OPC_RecordMemRef,
/*225443*/            OPC_RecordNode, // #2 = 'ld' chained node
/*225444*/            OPC_CheckFoldableChainNode,
/*225445*/            OPC_RecordChild1, // #3 = $src2
/*225446*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225448*/            OPC_CheckPredicate, 9, // Predicate_load
/*225450*/            OPC_CheckType, MVT::i64,
/*225452*/            OPC_MoveParent,
/*225453*/            OPC_MoveParent,
/*225454*/            OPC_RecordChild2, // #4 = $src3
/*225455*/            OPC_MoveChild2,
/*225456*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225459*/            OPC_MoveParent,
/*225460*/            OPC_MoveParent,
/*225461*/            OPC_MoveChild2,
/*225462*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225465*/            OPC_MoveChild0,
/*225466*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225469*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225471*/            OPC_CheckType, MVT::v16i32,
/*225473*/            OPC_MoveParent,
/*225474*/            OPC_MoveParent,
/*225475*/            OPC_CheckType, MVT::v8i64,
/*225477*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225479*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225482*/            OPC_EmitMergeInputChains1_2,
/*225483*/            OPC_EmitConvertToTarget, 4,
/*225485*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VSHUFI64X2Zrmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*225499*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VALIGN),// ->225568
/*225502*/            OPC_RecordChild0, // #1 = $src1
/*225503*/            OPC_MoveChild1,
/*225504*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*225507*/            OPC_MoveChild0,
/*225508*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225511*/            OPC_RecordMemRef,
/*225512*/            OPC_RecordNode, // #2 = 'ld' chained node
/*225513*/            OPC_CheckFoldableChainNode,
/*225514*/            OPC_RecordChild1, // #3 = $src2
/*225515*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225517*/            OPC_CheckPredicate, 9, // Predicate_load
/*225519*/            OPC_CheckType, MVT::i64,
/*225521*/            OPC_MoveParent,
/*225522*/            OPC_MoveParent,
/*225523*/            OPC_RecordChild2, // #4 = $src3
/*225524*/            OPC_MoveChild2,
/*225525*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225528*/            OPC_MoveParent,
/*225529*/            OPC_MoveParent,
/*225530*/            OPC_MoveChild2,
/*225531*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225534*/            OPC_MoveChild0,
/*225535*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225538*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225540*/            OPC_CheckType, MVT::v16i32,
/*225542*/            OPC_MoveParent,
/*225543*/            OPC_MoveParent,
/*225544*/            OPC_CheckType, MVT::v8i64,
/*225546*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225548*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225551*/            OPC_EmitMergeInputChains1_2,
/*225552*/            OPC_EmitConvertToTarget, 4,
/*225554*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VALIGNQZrmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*225568*/          /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::DBPSADBW),// ->225641
/*225571*/            OPC_RecordChild0, // #1 = $src1
/*225572*/            OPC_MoveChild1,
/*225573*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225576*/            OPC_MoveChild0,
/*225577*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225580*/            OPC_RecordMemRef,
/*225581*/            OPC_RecordNode, // #2 = 'ld' chained node
/*225582*/            OPC_CheckFoldableChainNode,
/*225583*/            OPC_RecordChild1, // #3 = $src2
/*225584*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225586*/            OPC_CheckPredicate, 9, // Predicate_load
/*225588*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*225590*/            OPC_CheckType, MVT::v2i64,
/*225592*/            OPC_MoveParent,
/*225593*/            OPC_MoveParent,
/*225594*/            OPC_RecordChild2, // #4 = $src3
/*225595*/            OPC_MoveChild2,
/*225596*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225599*/            OPC_CheckType, MVT::i8,
/*225601*/            OPC_MoveParent,
/*225602*/            OPC_MoveParent,
/*225603*/            OPC_MoveChild2,
/*225604*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225607*/            OPC_MoveChild0,
/*225608*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225611*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225613*/            OPC_CheckType, MVT::v4i32,
/*225615*/            OPC_MoveParent,
/*225616*/            OPC_MoveParent,
/*225617*/            OPC_CheckType, MVT::v8i16,
/*225619*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*225621*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225624*/            OPC_EmitMergeInputChains1_2,
/*225625*/            OPC_EmitConvertToTarget, 4,
/*225627*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VDBPSADBWZ128rmikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*225641*/          /*SwitchOpcode*/ 89|128,1/*217*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->225862
/*225645*/            OPC_Scope, 70, /*->225717*/ // 3 children in Scope
/*225647*/              OPC_RecordChild0, // #1 = $src1
/*225648*/              OPC_RecordChild1, // #2 = $src2
/*225649*/              OPC_MoveChild2,
/*225650*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*225653*/              OPC_MoveChild0,
/*225654*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225657*/              OPC_RecordMemRef,
/*225658*/              OPC_RecordNode, // #3 = 'ld' chained node
/*225659*/              OPC_CheckFoldableChainNode,
/*225660*/              OPC_RecordChild1, // #4 = $src3
/*225661*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225663*/              OPC_CheckPredicate, 9, // Predicate_load
/*225665*/              OPC_CheckType, MVT::i64,
/*225667*/              OPC_MoveParent,
/*225668*/              OPC_MoveParent,
/*225669*/              OPC_RecordChild3, // #5 = $src4
/*225670*/              OPC_MoveChild3,
/*225671*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225674*/              OPC_MoveParent,
/*225675*/              OPC_MoveParent,
/*225676*/              OPC_MoveChild2,
/*225677*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225680*/              OPC_MoveChild0,
/*225681*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225684*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225686*/              OPC_CheckType, MVT::v16i32,
/*225688*/              OPC_MoveParent,
/*225689*/              OPC_MoveParent,
/*225690*/              OPC_CheckType, MVT::v8i64,
/*225692*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225694*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*225697*/              OPC_EmitMergeInputChains, 1, 3, 
/*225700*/              OPC_EmitConvertToTarget, 5,
/*225702*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPTERNLOGQZrmbikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*225717*/            /*Scope*/ 71, /*->225789*/
/*225718*/              OPC_MoveChild0,
/*225719*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*225722*/              OPC_MoveChild0,
/*225723*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225726*/              OPC_RecordMemRef,
/*225727*/              OPC_RecordNode, // #1 = 'ld' chained node
/*225728*/              OPC_CheckFoldableChainNode,
/*225729*/              OPC_RecordChild1, // #2 = $src3
/*225730*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225732*/              OPC_CheckPredicate, 9, // Predicate_load
/*225734*/              OPC_CheckType, MVT::i64,
/*225736*/              OPC_MoveParent,
/*225737*/              OPC_MoveParent,
/*225738*/              OPC_RecordChild1, // #3 = $src2
/*225739*/              OPC_RecordChild2, // #4 = $src1
/*225740*/              OPC_RecordChild3, // #5 = $src4
/*225741*/              OPC_MoveChild3,
/*225742*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225745*/              OPC_MoveParent,
/*225746*/              OPC_MoveParent,
/*225747*/              OPC_MoveChild2,
/*225748*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225751*/              OPC_MoveChild0,
/*225752*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225755*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225757*/              OPC_CheckType, MVT::v16i32,
/*225759*/              OPC_MoveParent,
/*225760*/              OPC_MoveParent,
/*225761*/              OPC_CheckType, MVT::v8i64,
/*225763*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225765*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*225768*/              OPC_EmitMergeInputChains1_1,
/*225769*/              OPC_EmitConvertToTarget, 5,
/*225771*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*225774*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPTERNLOGQZrmbikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*225789*/            /*Scope*/ 71, /*->225861*/
/*225790*/              OPC_RecordChild0, // #1 = $src1
/*225791*/              OPC_MoveChild1,
/*225792*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*225795*/              OPC_MoveChild0,
/*225796*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225799*/              OPC_RecordMemRef,
/*225800*/              OPC_RecordNode, // #2 = 'ld' chained node
/*225801*/              OPC_CheckFoldableChainNode,
/*225802*/              OPC_RecordChild1, // #3 = $src3
/*225803*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225805*/              OPC_CheckPredicate, 9, // Predicate_load
/*225807*/              OPC_CheckType, MVT::i64,
/*225809*/              OPC_MoveParent,
/*225810*/              OPC_MoveParent,
/*225811*/              OPC_RecordChild2, // #4 = $src2
/*225812*/              OPC_RecordChild3, // #5 = $src4
/*225813*/              OPC_MoveChild3,
/*225814*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225817*/              OPC_MoveParent,
/*225818*/              OPC_MoveParent,
/*225819*/              OPC_MoveChild2,
/*225820*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225823*/              OPC_MoveChild0,
/*225824*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225827*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225829*/              OPC_CheckType, MVT::v16i32,
/*225831*/              OPC_MoveParent,
/*225832*/              OPC_MoveParent,
/*225833*/              OPC_CheckType, MVT::v8i64,
/*225835*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225837*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*225840*/              OPC_EmitMergeInputChains1_2,
/*225841*/              OPC_EmitConvertToTarget, 5,
/*225843*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*225846*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPTERNLOGQZrmbikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*225861*/            0, /*End of Scope*/
/*225862*/          /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(X86ISD::VSHLD),// ->226000
/*225866*/            OPC_RecordChild0, // #1 = $src1
/*225867*/            OPC_MoveChild1,
/*225868*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::BITCAST),// ->225935
/*225872*/              OPC_MoveChild0,
/*225873*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225876*/              OPC_RecordMemRef,
/*225877*/              OPC_RecordNode, // #2 = 'ld' chained node
/*225878*/              OPC_CheckFoldableChainNode,
/*225879*/              OPC_RecordChild1, // #3 = $src2
/*225880*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225882*/              OPC_CheckPredicate, 9, // Predicate_load
/*225884*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*225886*/              OPC_CheckType, MVT::v2i64,
/*225888*/              OPC_MoveParent,
/*225889*/              OPC_MoveParent,
/*225890*/              OPC_RecordChild2, // #4 = $src3
/*225891*/              OPC_MoveChild2,
/*225892*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225895*/              OPC_MoveParent,
/*225896*/              OPC_MoveParent,
/*225897*/              OPC_MoveChild2,
/*225898*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225901*/              OPC_MoveChild0,
/*225902*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225905*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225907*/              OPC_CheckType, MVT::v4i32,
/*225909*/              OPC_MoveParent,
/*225910*/              OPC_MoveParent,
/*225911*/              OPC_CheckType, MVT::v8i16,
/*225913*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*225915*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225918*/              OPC_EmitMergeInputChains1_2,
/*225919*/              OPC_EmitConvertToTarget, 4,
/*225921*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSHLDWZ128rmikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*225935*/            /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VBROADCAST),// ->225999
/*225938*/              OPC_MoveChild0,
/*225939*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225942*/              OPC_RecordMemRef,
/*225943*/              OPC_RecordNode, // #2 = 'ld' chained node
/*225944*/              OPC_CheckFoldableChainNode,
/*225945*/              OPC_RecordChild1, // #3 = $src2
/*225946*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225948*/              OPC_CheckPredicate, 9, // Predicate_load
/*225950*/              OPC_CheckType, MVT::i64,
/*225952*/              OPC_MoveParent,
/*225953*/              OPC_MoveParent,
/*225954*/              OPC_RecordChild2, // #4 = $src3
/*225955*/              OPC_MoveChild2,
/*225956*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*225959*/              OPC_MoveParent,
/*225960*/              OPC_MoveParent,
/*225961*/              OPC_MoveChild2,
/*225962*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*225965*/              OPC_MoveChild0,
/*225966*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*225969*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*225971*/              OPC_CheckType, MVT::v16i32,
/*225973*/              OPC_MoveParent,
/*225974*/              OPC_MoveParent,
/*225975*/              OPC_CheckType, MVT::v8i64,
/*225977*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*225979*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225982*/              OPC_EmitMergeInputChains1_2,
/*225983*/              OPC_EmitConvertToTarget, 4,
/*225985*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSHLDQZrmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*225999*/            0, // EndSwitchOpcode
/*226000*/          /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(X86ISD::VSHRD),// ->226138
/*226004*/            OPC_RecordChild0, // #1 = $src1
/*226005*/            OPC_MoveChild1,
/*226006*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::BITCAST),// ->226073
/*226010*/              OPC_MoveChild0,
/*226011*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*226014*/              OPC_RecordMemRef,
/*226015*/              OPC_RecordNode, // #2 = 'ld' chained node
/*226016*/              OPC_CheckFoldableChainNode,
/*226017*/              OPC_RecordChild1, // #3 = $src2
/*226018*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226020*/              OPC_CheckPredicate, 9, // Predicate_load
/*226022*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*226024*/              OPC_CheckType, MVT::v2i64,
/*226026*/              OPC_MoveParent,
/*226027*/              OPC_MoveParent,
/*226028*/              OPC_RecordChild2, // #4 = $src3
/*226029*/              OPC_MoveChild2,
/*226030*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226033*/              OPC_MoveParent,
/*226034*/              OPC_MoveParent,
/*226035*/              OPC_MoveChild2,
/*226036*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*226039*/              OPC_MoveChild0,
/*226040*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*226043*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*226045*/              OPC_CheckType, MVT::v4i32,
/*226047*/              OPC_MoveParent,
/*226048*/              OPC_MoveParent,
/*226049*/              OPC_CheckType, MVT::v8i16,
/*226051*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*226053*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226056*/              OPC_EmitMergeInputChains1_2,
/*226057*/              OPC_EmitConvertToTarget, 4,
/*226059*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSHRDWZ128rmikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*226073*/            /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VBROADCAST),// ->226137
/*226076*/              OPC_MoveChild0,
/*226077*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*226080*/              OPC_RecordMemRef,
/*226081*/              OPC_RecordNode, // #2 = 'ld' chained node
/*226082*/              OPC_CheckFoldableChainNode,
/*226083*/              OPC_RecordChild1, // #3 = $src2
/*226084*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226086*/              OPC_CheckPredicate, 9, // Predicate_load
/*226088*/              OPC_CheckType, MVT::i64,
/*226090*/              OPC_MoveParent,
/*226091*/              OPC_MoveParent,
/*226092*/              OPC_RecordChild2, // #4 = $src3
/*226093*/              OPC_MoveChild2,
/*226094*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226097*/              OPC_MoveParent,
/*226098*/              OPC_MoveParent,
/*226099*/              OPC_MoveChild2,
/*226100*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*226103*/              OPC_MoveChild0,
/*226104*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*226107*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*226109*/              OPC_CheckType, MVT::v16i32,
/*226111*/              OPC_MoveParent,
/*226112*/              OPC_MoveParent,
/*226113*/              OPC_CheckType, MVT::v8i64,
/*226115*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*226117*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226120*/              OPC_EmitMergeInputChains1_2,
/*226121*/              OPC_EmitConvertToTarget, 4,
/*226123*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSHRDQZrmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*226137*/            0, // EndSwitchOpcode
/*226138*/          0, // EndSwitchOpcode
/*226139*/        /*Scope*/ 63|128,1/*191*/, /*->226332*/
/*226141*/          OPC_RecordChild1, // #1 = $src3
/*226142*/          OPC_MoveChild1,
/*226143*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*226146*/          OPC_RecordChild0, // #2 = $src1
/*226147*/          OPC_MoveChild1,
/*226148*/          OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::BITCAST),// ->226212
/*226152*/            OPC_MoveChild0,
/*226153*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*226156*/            OPC_RecordMemRef,
/*226157*/            OPC_RecordNode, // #3 = 'ld' chained node
/*226158*/            OPC_CheckFoldableChainNode,
/*226159*/            OPC_RecordChild1, // #4 = $src2
/*226160*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226162*/            OPC_CheckPredicate, 9, // Predicate_load
/*226164*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*226166*/            OPC_CheckType, MVT::v2i64,
/*226168*/            OPC_MoveParent,
/*226169*/            OPC_MoveParent,
/*226170*/            OPC_MoveChild2,
/*226171*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226174*/            OPC_CheckType, MVT::iPTR,
/*226176*/            OPC_MoveParent,
/*226177*/            OPC_MoveParent,
/*226178*/            OPC_MoveChild2,
/*226179*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*226182*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*226184*/            OPC_MoveParent,
/*226185*/            OPC_CheckType, MVT::v8i32,
/*226187*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*226189*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226192*/            OPC_EmitMergeInputChains, 1, 3, 
/*226195*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*226198*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                      // Dst: (VINSERTI32x4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] })):$src3))
/*226212*/          /*SwitchOpcode*/ 116, TARGET_VAL(ISD::LOAD),// ->226331
/*226215*/            OPC_RecordMemRef,
/*226216*/            OPC_RecordNode, // #3 = 'ld' chained node
/*226217*/            OPC_CheckFoldableChainNode,
/*226218*/            OPC_RecordChild1, // #4 = $src2
/*226219*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226221*/            OPC_CheckPredicate, 9, // Predicate_load
/*226223*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*226225*/            OPC_SwitchType /*2 cases */, 50, MVT::v4i64,// ->226278
/*226228*/              OPC_MoveParent,
/*226229*/              OPC_MoveChild2,
/*226230*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226233*/              OPC_CheckType, MVT::iPTR,
/*226235*/              OPC_MoveParent,
/*226236*/              OPC_MoveParent,
/*226237*/              OPC_MoveChild2,
/*226238*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*226241*/              OPC_MoveChild0,
/*226242*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*226245*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*226247*/              OPC_CheckType, MVT::v16i32,
/*226249*/              OPC_MoveParent,
/*226250*/              OPC_MoveParent,
/*226251*/              OPC_CheckType, MVT::v8i64,
/*226253*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226255*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226258*/              OPC_EmitMergeInputChains, 1, 3, 
/*226261*/              OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*226264*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VINSERTI64x4Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*226278*/            /*SwitchType*/ 50, MVT::v2i64,// ->226330
/*226280*/              OPC_MoveParent,
/*226281*/              OPC_MoveChild2,
/*226282*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226285*/              OPC_CheckType, MVT::iPTR,
/*226287*/              OPC_MoveParent,
/*226288*/              OPC_MoveParent,
/*226289*/              OPC_MoveChild2,
/*226290*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*226293*/              OPC_MoveChild0,
/*226294*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*226297*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*226299*/              OPC_CheckType, MVT::v16i32,
/*226301*/              OPC_MoveParent,
/*226302*/              OPC_MoveParent,
/*226303*/              OPC_CheckType, MVT::v8i64,
/*226305*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*226307*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226310*/              OPC_EmitMergeInputChains, 1, 3, 
/*226313*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*226316*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VINSERTI64x2Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*226330*/            0, // EndSwitchType
/*226331*/          0, // EndSwitchOpcode
/*226332*/        /*Scope*/ 4|128,2|128,1/*16644*/, /*->242979*/
/*226335*/          OPC_MoveChild1,
/*226336*/          OPC_SwitchOpcode /*70 cases */, 63|128,12/*1599*/, TARGET_VAL(ISD::BITCAST),// ->227940
/*226341*/            OPC_Scope, 66, /*->226409*/ // 4 children in Scope
/*226343*/              OPC_RecordChild0, // #1 = $ins
/*226344*/              OPC_MoveChild0,
/*226345*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*226348*/              OPC_RecordChild0, // #2 = $src1
/*226349*/              OPC_MoveChild1,
/*226350*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*226353*/              OPC_RecordMemRef,
/*226354*/              OPC_RecordNode, // #3 = 'ld' chained node
/*226355*/              OPC_CheckFoldableChainNode,
/*226356*/              OPC_RecordChild1, // #4 = $src2
/*226357*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226359*/              OPC_CheckPredicate, 9, // Predicate_load
/*226361*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*226363*/              OPC_MoveParent,
/*226364*/              OPC_MoveChild2,
/*226365*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226368*/              OPC_CheckType, MVT::iPTR,
/*226370*/              OPC_MoveParent,
/*226371*/              OPC_CheckType, MVT::v4i64,
/*226373*/              OPC_MoveParent,
/*226374*/              OPC_MoveParent,
/*226375*/              OPC_MoveChild2,
/*226376*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*226379*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*226381*/              OPC_MoveParent,
/*226382*/              OPC_CheckType, MVT::v8i32,
/*226384*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*226386*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226389*/              OPC_EmitMergeInputChains, 1, 3, 
/*226392*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*226395*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VINSERTI32x4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ins))
/*226409*/            /*Scope*/ 54|128,1/*182*/, /*->226593*/
/*226411*/              OPC_MoveChild0,
/*226412*/              OPC_SwitchOpcode /*3 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->226469
/*226416*/                OPC_MoveChild0,
/*226417*/                OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*226420*/                OPC_MoveChild0,
/*226421*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*226424*/                OPC_RecordMemRef,
/*226425*/                OPC_RecordNode, // #1 = 'ld' chained node
/*226426*/                OPC_CheckFoldableChainNode,
/*226427*/                OPC_RecordChild1, // #2 = $src
/*226428*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226430*/                OPC_CheckPredicate, 9, // Predicate_load
/*226432*/                OPC_CheckType, MVT::i64,
/*226434*/                OPC_MoveParent,
/*226435*/                OPC_CheckType, MVT::v2i64,
/*226437*/                OPC_MoveParent,
/*226438*/                OPC_CheckType, MVT::v4i64,
/*226440*/                OPC_MoveParent,
/*226441*/                OPC_MoveParent,
/*226442*/                OPC_MoveChild2,
/*226443*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*226446*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*226448*/                OPC_MoveParent,
/*226449*/                OPC_CheckType, MVT::v8i32,
/*226451*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*226453*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*226456*/                OPC_EmitMergeInputChains1_1,
/*226457*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VBroadcast:{ *:[v4i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VBROADCASTI32X2Z256mkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*226469*/              /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::SHUF128),// ->226529
/*226472*/                OPC_RecordChild0, // #1 = $src1
/*226473*/                OPC_MoveChild1,
/*226474*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*226477*/                OPC_RecordMemRef,
/*226478*/                OPC_RecordNode, // #2 = 'ld' chained node
/*226479*/                OPC_CheckFoldableChainNode,
/*226480*/                OPC_RecordChild1, // #3 = $src2
/*226481*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226483*/                OPC_CheckPredicate, 9, // Predicate_load
/*226485*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*226487*/                OPC_MoveParent,
/*226488*/                OPC_RecordChild2, // #4 = $src3
/*226489*/                OPC_MoveChild2,
/*226490*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226493*/                OPC_MoveParent,
/*226494*/                OPC_CheckType, MVT::v4i64,
/*226496*/                OPC_MoveParent,
/*226497*/                OPC_MoveParent,
/*226498*/                OPC_MoveChild2,
/*226499*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*226502*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*226504*/                OPC_MoveParent,
/*226505*/                OPC_CheckType, MVT::v8i32,
/*226507*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*226509*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226512*/                OPC_EmitMergeInputChains1_2,
/*226513*/                OPC_EmitConvertToTarget, 4,
/*226515*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VSHUFI32X4Z256rmikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*226529*/              /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VALIGN),// ->226592
/*226532*/                OPC_RecordChild0, // #1 = $src1
/*226533*/                OPC_MoveChild1,
/*226534*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*226537*/                OPC_RecordMemRef,
/*226538*/                OPC_RecordNode, // #2 = 'ld' chained node
/*226539*/                OPC_CheckFoldableChainNode,
/*226540*/                OPC_RecordChild1, // #3 = $src2
/*226541*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226543*/                OPC_CheckPredicate, 9, // Predicate_load
/*226545*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*226547*/                OPC_MoveParent,
/*226548*/                OPC_RecordChild2, // #4 = $src3
/*226549*/                OPC_MoveChild2,
/*226550*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226553*/                OPC_MoveParent,
/*226554*/                OPC_CheckType, MVT::v4i64,
/*226556*/                OPC_MoveParent,
/*226557*/                OPC_MoveParent,
/*226558*/                OPC_MoveChild2,
/*226559*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*226562*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*226564*/                OPC_MoveParent,
/*226565*/                OPC_CheckType, MVT::v8i32,
/*226567*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*226569*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226572*/                OPC_EmitMergeInputChains1_2,
/*226573*/                OPC_EmitConvertToTarget, 4,
/*226575*/                OPC_EmitNodeXForm, 14, 10, // ValignqImm32XForm
/*226578*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VALIGNDZ256rmikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*226592*/              0, // EndSwitchOpcode
/*226593*/            /*Scope*/ 120|128,2/*376*/, /*->226971*/
/*226595*/              OPC_RecordChild0, // #1 = $ins
/*226596*/              OPC_MoveChild0,
/*226597*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*226600*/              OPC_RecordChild0, // #2 = $src1
/*226601*/              OPC_MoveChild1,
/*226602*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*226605*/              OPC_MoveChild0,
/*226606*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*226609*/              OPC_RecordMemRef,
/*226610*/              OPC_RecordNode, // #3 = 'ld' chained node
/*226611*/              OPC_CheckFoldableChainNode,
/*226612*/              OPC_RecordChild1, // #4 = $src2
/*226613*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226615*/              OPC_CheckPredicate, 9, // Predicate_load
/*226617*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*226619*/              OPC_SwitchType /*2 cases */, 84|128,1/*212*/, MVT::v2i64,// ->226835
/*226623*/                OPC_MoveParent,
/*226624*/                OPC_Scope, 76, /*->226702*/ // 4 children in Scope
/*226626*/                  OPC_MoveParent,
/*226627*/                  OPC_MoveChild2,
/*226628*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226631*/                  OPC_CheckType, MVT::iPTR,
/*226633*/                  OPC_MoveParent,
/*226634*/                  OPC_SwitchType /*2 cases */, 31, MVT::v16i16,// ->226668
/*226637*/                    OPC_MoveParent,
/*226638*/                    OPC_MoveParent,
/*226639*/                    OPC_RecordChild2, // #5 = $src0
/*226640*/                    OPC_CheckType, MVT::v8i32,
/*226642*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*226644*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*226647*/                    OPC_EmitMergeInputChains, 1, 3, 
/*226650*/                    OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*226653*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                              // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v8i32] }:$src0) - Complexity = 37
                              // Dst: (VINSERTI32x4Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*226668*/                  /*SwitchType*/ 31, MVT::v32i8,// ->226701
/*226670*/                    OPC_MoveParent,
/*226671*/                    OPC_MoveParent,
/*226672*/                    OPC_RecordChild2, // #5 = $src0
/*226673*/                    OPC_CheckType, MVT::v8i32,
/*226675*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*226677*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*226680*/                    OPC_EmitMergeInputChains, 1, 3, 
/*226683*/                    OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*226686*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                              // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v8i32] }:$src0) - Complexity = 37
                              // Dst: (VINSERTI32x4Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*226701*/                  0, // EndSwitchType
/*226702*/                /*Scope*/ 43, /*->226746*/
/*226703*/                  OPC_CheckType, MVT::v4i32,
/*226705*/                  OPC_MoveParent,
/*226706*/                  OPC_MoveChild2,
/*226707*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226710*/                  OPC_CheckType, MVT::iPTR,
/*226712*/                  OPC_MoveParent,
/*226713*/                  OPC_CheckType, MVT::v16i32,
/*226715*/                  OPC_MoveParent,
/*226716*/                  OPC_MoveParent,
/*226717*/                  OPC_RecordChild2, // #5 = $src0
/*226718*/                  OPC_CheckType, MVT::v8i64,
/*226720*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*226722*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*226725*/                  OPC_EmitMergeInputChains, 1, 3, 
/*226728*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*226731*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 37
                            // Dst: (VINSERTI64x2Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*226746*/                /*Scope*/ 43, /*->226790*/
/*226747*/                  OPC_CheckType, MVT::v8i16,
/*226749*/                  OPC_MoveParent,
/*226750*/                  OPC_MoveChild2,
/*226751*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226754*/                  OPC_CheckType, MVT::iPTR,
/*226756*/                  OPC_MoveParent,
/*226757*/                  OPC_CheckType, MVT::v32i16,
/*226759*/                  OPC_MoveParent,
/*226760*/                  OPC_MoveParent,
/*226761*/                  OPC_RecordChild2, // #5 = $src0
/*226762*/                  OPC_CheckType, MVT::v8i64,
/*226764*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*226766*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*226769*/                  OPC_EmitMergeInputChains, 1, 3, 
/*226772*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*226775*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 37
                            // Dst: (VINSERTI64x2Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*226790*/                /*Scope*/ 43, /*->226834*/
/*226791*/                  OPC_CheckType, MVT::v16i8,
/*226793*/                  OPC_MoveParent,
/*226794*/                  OPC_MoveChild2,
/*226795*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226798*/                  OPC_CheckType, MVT::iPTR,
/*226800*/                  OPC_MoveParent,
/*226801*/                  OPC_CheckType, MVT::v64i8,
/*226803*/                  OPC_MoveParent,
/*226804*/                  OPC_MoveParent,
/*226805*/                  OPC_RecordChild2, // #5 = $src0
/*226806*/                  OPC_CheckType, MVT::v8i64,
/*226808*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*226810*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*226813*/                  OPC_EmitMergeInputChains, 1, 3, 
/*226816*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*226819*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 37
                            // Dst: (VINSERTI64x2Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*226834*/                0, /*End of Scope*/
/*226835*/              /*SwitchType*/ 4|128,1/*132*/, MVT::v4i64,// ->226970
/*226838*/                OPC_MoveParent,
/*226839*/                OPC_SwitchType /*3 cases */, 41, MVT::v8i32,// ->226883
/*226842*/                  OPC_MoveParent,
/*226843*/                  OPC_MoveChild2,
/*226844*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226847*/                  OPC_CheckType, MVT::iPTR,
/*226849*/                  OPC_MoveParent,
/*226850*/                  OPC_CheckType, MVT::v16i32,
/*226852*/                  OPC_MoveParent,
/*226853*/                  OPC_MoveParent,
/*226854*/                  OPC_RecordChild2, // #5 = $src0
/*226855*/                  OPC_CheckType, MVT::v8i64,
/*226857*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226859*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*226862*/                  OPC_EmitMergeInputChains, 1, 3, 
/*226865*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*226868*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 37
                            // Dst: (VINSERTI64x4Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*226883*/                /*SwitchType*/ 41, MVT::v16i16,// ->226926
/*226885*/                  OPC_MoveParent,
/*226886*/                  OPC_MoveChild2,
/*226887*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226890*/                  OPC_CheckType, MVT::iPTR,
/*226892*/                  OPC_MoveParent,
/*226893*/                  OPC_CheckType, MVT::v32i16,
/*226895*/                  OPC_MoveParent,
/*226896*/                  OPC_MoveParent,
/*226897*/                  OPC_RecordChild2, // #5 = $src0
/*226898*/                  OPC_CheckType, MVT::v8i64,
/*226900*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226902*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*226905*/                  OPC_EmitMergeInputChains, 1, 3, 
/*226908*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*226911*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 37
                            // Dst: (VINSERTI64x4Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*226926*/                /*SwitchType*/ 41, MVT::v32i8,// ->226969
/*226928*/                  OPC_MoveParent,
/*226929*/                  OPC_MoveChild2,
/*226930*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*226933*/                  OPC_CheckType, MVT::iPTR,
/*226935*/                  OPC_MoveParent,
/*226936*/                  OPC_CheckType, MVT::v64i8,
/*226938*/                  OPC_MoveParent,
/*226939*/                  OPC_MoveParent,
/*226940*/                  OPC_RecordChild2, // #5 = $src0
/*226941*/                  OPC_CheckType, MVT::v8i64,
/*226943*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226945*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*226948*/                  OPC_EmitMergeInputChains, 1, 3, 
/*226951*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*226954*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 37
                            // Dst: (VINSERTI64x4Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*226969*/                0, // EndSwitchType
/*226970*/              0, // EndSwitchType
/*226971*/            /*Scope*/ 70|128,7/*966*/, /*->227939*/
/*226973*/              OPC_MoveChild0,
/*226974*/              OPC_SwitchOpcode /*8 cases */, 84|128,1/*212*/, TARGET_VAL(ISD::AND),// ->227191
/*226979*/                OPC_Scope, 55, /*->227036*/ // 4 children in Scope
/*226981*/                  OPC_RecordChild0, // #1 = $src1
/*226982*/                  OPC_MoveChild1,
/*226983*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*226986*/                  OPC_MoveChild0,
/*226987*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*226990*/                  OPC_MoveChild0,
/*226991*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*226994*/                  OPC_RecordMemRef,
/*226995*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*226996*/                  OPC_CheckFoldableChainNode,
/*226997*/                  OPC_RecordChild1, // #3 = $src2
/*226998*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227000*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*227002*/                  OPC_CheckType, MVT::i32,
/*227004*/                  OPC_MoveParent,
/*227005*/                  OPC_CheckType, MVT::v8i32,
/*227007*/                  OPC_MoveParent,
/*227008*/                  OPC_MoveParent,
/*227009*/                  OPC_CheckType, MVT::v4i64,
/*227011*/                  OPC_MoveParent,
/*227012*/                  OPC_MoveParent,
/*227013*/                  OPC_RecordChild2, // #4 = $src0
/*227014*/                  OPC_CheckType, MVT::v8i32,
/*227016*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227018*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*227021*/                  OPC_EmitMergeInputChains1_2,
/*227022*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR256X:{ *:[v8i32] }:$src0) - Complexity = 37
                            // Dst: (VPANDDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227036*/                /*Scope*/ 55, /*->227092*/
/*227037*/                  OPC_MoveChild0,
/*227038*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*227041*/                  OPC_MoveChild0,
/*227042*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*227045*/                  OPC_MoveChild0,
/*227046*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227049*/                  OPC_RecordMemRef,
/*227050*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*227051*/                  OPC_CheckFoldableChainNode,
/*227052*/                  OPC_RecordChild1, // #2 = $src2
/*227053*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227055*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*227057*/                  OPC_CheckType, MVT::i32,
/*227059*/                  OPC_MoveParent,
/*227060*/                  OPC_CheckType, MVT::v8i32,
/*227062*/                  OPC_MoveParent,
/*227063*/                  OPC_MoveParent,
/*227064*/                  OPC_RecordChild1, // #3 = $src1
/*227065*/                  OPC_CheckType, MVT::v4i64,
/*227067*/                  OPC_MoveParent,
/*227068*/                  OPC_MoveParent,
/*227069*/                  OPC_RecordChild2, // #4 = $src0
/*227070*/                  OPC_CheckType, MVT::v8i32,
/*227072*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227074*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*227077*/                  OPC_EmitMergeInputChains1_1,
/*227078*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 37
                            // Dst: (VPANDDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227092*/                /*Scope*/ 48, /*->227141*/
/*227093*/                  OPC_RecordChild0, // #1 = $src1
/*227094*/                  OPC_MoveChild1,
/*227095*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227098*/                  OPC_RecordMemRef,
/*227099*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*227100*/                  OPC_CheckFoldableChainNode,
/*227101*/                  OPC_RecordChild1, // #3 = $src2
/*227102*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227104*/                  OPC_CheckPredicate, 9, // Predicate_load
/*227106*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*227108*/                  OPC_MoveParent,
/*227109*/                  OPC_CheckType, MVT::v4i64,
/*227111*/                  OPC_MoveParent,
/*227112*/                  OPC_MoveParent,
/*227113*/                  OPC_MoveChild2,
/*227114*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*227117*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*227119*/                  OPC_MoveParent,
/*227120*/                  OPC_CheckType, MVT::v8i32,
/*227122*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227124*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227127*/                  OPC_EmitMergeInputChains1_2,
/*227128*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227141*/                /*Scope*/ 48, /*->227190*/
/*227142*/                  OPC_MoveChild0,
/*227143*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227146*/                  OPC_RecordMemRef,
/*227147*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*227148*/                  OPC_CheckFoldableChainNode,
/*227149*/                  OPC_RecordChild1, // #2 = $src2
/*227150*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227152*/                  OPC_CheckPredicate, 9, // Predicate_load
/*227154*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*227156*/                  OPC_MoveParent,
/*227157*/                  OPC_RecordChild1, // #3 = $src1
/*227158*/                  OPC_CheckType, MVT::v4i64,
/*227160*/                  OPC_MoveParent,
/*227161*/                  OPC_MoveParent,
/*227162*/                  OPC_MoveChild2,
/*227163*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*227166*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*227168*/                  OPC_MoveParent,
/*227169*/                  OPC_CheckType, MVT::v8i32,
/*227171*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227173*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227176*/                  OPC_EmitMergeInputChains1_1,
/*227177*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227190*/                0, /*End of Scope*/
/*227191*/              /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(ISD::OR),// ->227407
/*227195*/                OPC_Scope, 55, /*->227252*/ // 4 children in Scope
/*227197*/                  OPC_RecordChild0, // #1 = $src1
/*227198*/                  OPC_MoveChild1,
/*227199*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*227202*/                  OPC_MoveChild0,
/*227203*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*227206*/                  OPC_MoveChild0,
/*227207*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227210*/                  OPC_RecordMemRef,
/*227211*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*227212*/                  OPC_CheckFoldableChainNode,
/*227213*/                  OPC_RecordChild1, // #3 = $src2
/*227214*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227216*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*227218*/                  OPC_CheckType, MVT::i32,
/*227220*/                  OPC_MoveParent,
/*227221*/                  OPC_CheckType, MVT::v8i32,
/*227223*/                  OPC_MoveParent,
/*227224*/                  OPC_MoveParent,
/*227225*/                  OPC_CheckType, MVT::v4i64,
/*227227*/                  OPC_MoveParent,
/*227228*/                  OPC_MoveParent,
/*227229*/                  OPC_RecordChild2, // #4 = $src0
/*227230*/                  OPC_CheckType, MVT::v8i32,
/*227232*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227234*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*227237*/                  OPC_EmitMergeInputChains1_2,
/*227238*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR256X:{ *:[v8i32] }:$src0) - Complexity = 37
                            // Dst: (VPORDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227252*/                /*Scope*/ 55, /*->227308*/
/*227253*/                  OPC_MoveChild0,
/*227254*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*227257*/                  OPC_MoveChild0,
/*227258*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*227261*/                  OPC_MoveChild0,
/*227262*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227265*/                  OPC_RecordMemRef,
/*227266*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*227267*/                  OPC_CheckFoldableChainNode,
/*227268*/                  OPC_RecordChild1, // #2 = $src2
/*227269*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227271*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*227273*/                  OPC_CheckType, MVT::i32,
/*227275*/                  OPC_MoveParent,
/*227276*/                  OPC_CheckType, MVT::v8i32,
/*227278*/                  OPC_MoveParent,
/*227279*/                  OPC_MoveParent,
/*227280*/                  OPC_RecordChild1, // #3 = $src1
/*227281*/                  OPC_CheckType, MVT::v4i64,
/*227283*/                  OPC_MoveParent,
/*227284*/                  OPC_MoveParent,
/*227285*/                  OPC_RecordChild2, // #4 = $src0
/*227286*/                  OPC_CheckType, MVT::v8i32,
/*227288*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227290*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*227293*/                  OPC_EmitMergeInputChains1_1,
/*227294*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 37
                            // Dst: (VPORDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227308*/                /*Scope*/ 48, /*->227357*/
/*227309*/                  OPC_RecordChild0, // #1 = $src1
/*227310*/                  OPC_MoveChild1,
/*227311*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227314*/                  OPC_RecordMemRef,
/*227315*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*227316*/                  OPC_CheckFoldableChainNode,
/*227317*/                  OPC_RecordChild1, // #3 = $src2
/*227318*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227320*/                  OPC_CheckPredicate, 9, // Predicate_load
/*227322*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*227324*/                  OPC_MoveParent,
/*227325*/                  OPC_CheckType, MVT::v4i64,
/*227327*/                  OPC_MoveParent,
/*227328*/                  OPC_MoveParent,
/*227329*/                  OPC_MoveChild2,
/*227330*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*227333*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*227335*/                  OPC_MoveParent,
/*227336*/                  OPC_CheckType, MVT::v8i32,
/*227338*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227340*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227343*/                  OPC_EmitMergeInputChains1_2,
/*227344*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227357*/                /*Scope*/ 48, /*->227406*/
/*227358*/                  OPC_MoveChild0,
/*227359*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227362*/                  OPC_RecordMemRef,
/*227363*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*227364*/                  OPC_CheckFoldableChainNode,
/*227365*/                  OPC_RecordChild1, // #2 = $src2
/*227366*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227368*/                  OPC_CheckPredicate, 9, // Predicate_load
/*227370*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*227372*/                  OPC_MoveParent,
/*227373*/                  OPC_RecordChild1, // #3 = $src1
/*227374*/                  OPC_CheckType, MVT::v4i64,
/*227376*/                  OPC_MoveParent,
/*227377*/                  OPC_MoveParent,
/*227378*/                  OPC_MoveChild2,
/*227379*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*227382*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*227384*/                  OPC_MoveParent,
/*227385*/                  OPC_CheckType, MVT::v8i32,
/*227387*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227389*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227392*/                  OPC_EmitMergeInputChains1_1,
/*227393*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227406*/                0, /*End of Scope*/
/*227407*/              /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(ISD::XOR),// ->227623
/*227411*/                OPC_Scope, 55, /*->227468*/ // 4 children in Scope
/*227413*/                  OPC_RecordChild0, // #1 = $src1
/*227414*/                  OPC_MoveChild1,
/*227415*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*227418*/                  OPC_MoveChild0,
/*227419*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*227422*/                  OPC_MoveChild0,
/*227423*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227426*/                  OPC_RecordMemRef,
/*227427*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*227428*/                  OPC_CheckFoldableChainNode,
/*227429*/                  OPC_RecordChild1, // #3 = $src2
/*227430*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227432*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*227434*/                  OPC_CheckType, MVT::i32,
/*227436*/                  OPC_MoveParent,
/*227437*/                  OPC_CheckType, MVT::v8i32,
/*227439*/                  OPC_MoveParent,
/*227440*/                  OPC_MoveParent,
/*227441*/                  OPC_CheckType, MVT::v4i64,
/*227443*/                  OPC_MoveParent,
/*227444*/                  OPC_MoveParent,
/*227445*/                  OPC_RecordChild2, // #4 = $src0
/*227446*/                  OPC_CheckType, MVT::v8i32,
/*227448*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227450*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*227453*/                  OPC_EmitMergeInputChains1_2,
/*227454*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR256X:{ *:[v8i32] }:$src0) - Complexity = 37
                            // Dst: (VPXORDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227468*/                /*Scope*/ 55, /*->227524*/
/*227469*/                  OPC_MoveChild0,
/*227470*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*227473*/                  OPC_MoveChild0,
/*227474*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*227477*/                  OPC_MoveChild0,
/*227478*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227481*/                  OPC_RecordMemRef,
/*227482*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*227483*/                  OPC_CheckFoldableChainNode,
/*227484*/                  OPC_RecordChild1, // #2 = $src2
/*227485*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227487*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*227489*/                  OPC_CheckType, MVT::i32,
/*227491*/                  OPC_MoveParent,
/*227492*/                  OPC_CheckType, MVT::v8i32,
/*227494*/                  OPC_MoveParent,
/*227495*/                  OPC_MoveParent,
/*227496*/                  OPC_RecordChild1, // #3 = $src1
/*227497*/                  OPC_CheckType, MVT::v4i64,
/*227499*/                  OPC_MoveParent,
/*227500*/                  OPC_MoveParent,
/*227501*/                  OPC_RecordChild2, // #4 = $src0
/*227502*/                  OPC_CheckType, MVT::v8i32,
/*227504*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227506*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*227509*/                  OPC_EmitMergeInputChains1_1,
/*227510*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 37
                            // Dst: (VPXORDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227524*/                /*Scope*/ 48, /*->227573*/
/*227525*/                  OPC_RecordChild0, // #1 = $src1
/*227526*/                  OPC_MoveChild1,
/*227527*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227530*/                  OPC_RecordMemRef,
/*227531*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*227532*/                  OPC_CheckFoldableChainNode,
/*227533*/                  OPC_RecordChild1, // #3 = $src2
/*227534*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227536*/                  OPC_CheckPredicate, 9, // Predicate_load
/*227538*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*227540*/                  OPC_MoveParent,
/*227541*/                  OPC_CheckType, MVT::v4i64,
/*227543*/                  OPC_MoveParent,
/*227544*/                  OPC_MoveParent,
/*227545*/                  OPC_MoveChild2,
/*227546*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*227549*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*227551*/                  OPC_MoveParent,
/*227552*/                  OPC_CheckType, MVT::v8i32,
/*227554*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227556*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227559*/                  OPC_EmitMergeInputChains1_2,
/*227560*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPXORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227573*/                /*Scope*/ 48, /*->227622*/
/*227574*/                  OPC_MoveChild0,
/*227575*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227578*/                  OPC_RecordMemRef,
/*227579*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*227580*/                  OPC_CheckFoldableChainNode,
/*227581*/                  OPC_RecordChild1, // #2 = $src2
/*227582*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227584*/                  OPC_CheckPredicate, 9, // Predicate_load
/*227586*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*227588*/                  OPC_MoveParent,
/*227589*/                  OPC_RecordChild1, // #3 = $src1
/*227590*/                  OPC_CheckType, MVT::v4i64,
/*227592*/                  OPC_MoveParent,
/*227593*/                  OPC_MoveParent,
/*227594*/                  OPC_MoveChild2,
/*227595*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*227598*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*227600*/                  OPC_MoveParent,
/*227601*/                  OPC_CheckType, MVT::v8i32,
/*227603*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227605*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227608*/                  OPC_EmitMergeInputChains1_1,
/*227609*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPXORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227622*/                0, /*End of Scope*/
/*227623*/              /*SwitchOpcode*/ 103, TARGET_VAL(X86ISD::ANDNP),// ->227729
/*227626*/                OPC_RecordChild0, // #1 = $src1
/*227627*/                OPC_MoveChild1,
/*227628*/                OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->227682
/*227632*/                  OPC_MoveChild0,
/*227633*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*227636*/                  OPC_MoveChild0,
/*227637*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227640*/                  OPC_RecordMemRef,
/*227641*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*227642*/                  OPC_CheckFoldableChainNode,
/*227643*/                  OPC_RecordChild1, // #3 = $src2
/*227644*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227646*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*227648*/                  OPC_CheckType, MVT::i32,
/*227650*/                  OPC_MoveParent,
/*227651*/                  OPC_CheckType, MVT::v8i32,
/*227653*/                  OPC_MoveParent,
/*227654*/                  OPC_MoveParent,
/*227655*/                  OPC_CheckType, MVT::v4i64,
/*227657*/                  OPC_MoveParent,
/*227658*/                  OPC_MoveParent,
/*227659*/                  OPC_RecordChild2, // #4 = $src0
/*227660*/                  OPC_CheckType, MVT::v8i32,
/*227662*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227664*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*227667*/                  OPC_EmitMergeInputChains1_2,
/*227668*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR256X:{ *:[v8i32] }:$src0) - Complexity = 37
                            // Dst: (VPANDNDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227682*/                /*SwitchOpcode*/ 43, TARGET_VAL(ISD::LOAD),// ->227728
/*227685*/                  OPC_RecordMemRef,
/*227686*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*227687*/                  OPC_CheckFoldableChainNode,
/*227688*/                  OPC_RecordChild1, // #3 = $src2
/*227689*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227691*/                  OPC_CheckPredicate, 9, // Predicate_load
/*227693*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*227695*/                  OPC_MoveParent,
/*227696*/                  OPC_CheckType, MVT::v4i64,
/*227698*/                  OPC_MoveParent,
/*227699*/                  OPC_MoveParent,
/*227700*/                  OPC_MoveChild2,
/*227701*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*227704*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*227706*/                  OPC_MoveParent,
/*227707*/                  OPC_CheckType, MVT::v8i32,
/*227709*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227711*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227714*/                  OPC_EmitMergeInputChains1_2,
/*227715*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPANDNDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227728*/                0, // EndSwitchOpcode
/*227729*/              /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::SHUF128),// ->227789
/*227732*/                OPC_RecordChild0, // #1 = $src1
/*227733*/                OPC_MoveChild1,
/*227734*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*227737*/                OPC_MoveChild0,
/*227738*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227741*/                OPC_RecordMemRef,
/*227742*/                OPC_RecordNode, // #2 = 'ld' chained node
/*227743*/                OPC_CheckFoldableChainNode,
/*227744*/                OPC_RecordChild1, // #3 = $src2
/*227745*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227747*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*227749*/                OPC_CheckType, MVT::i32,
/*227751*/                OPC_MoveParent,
/*227752*/                OPC_MoveParent,
/*227753*/                OPC_RecordChild2, // #4 = $src3
/*227754*/                OPC_MoveChild2,
/*227755*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*227758*/                OPC_MoveParent,
/*227759*/                OPC_CheckType, MVT::v4i64,
/*227761*/                OPC_MoveParent,
/*227762*/                OPC_MoveParent,
/*227763*/                OPC_RecordChild2, // #5 = $src0
/*227764*/                OPC_CheckType, MVT::v8i32,
/*227766*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227768*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*227771*/                OPC_EmitMergeInputChains1_2,
/*227772*/                OPC_EmitConvertToTarget, 4,
/*227774*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 37
                          // Dst: (VSHUFI32X4Z256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*227789*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->227838
/*227792*/                OPC_MoveChild0,
/*227793*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227796*/                OPC_RecordMemRef,
/*227797*/                OPC_RecordNode, // #1 = 'ld' chained node
/*227798*/                OPC_CheckFoldableChainNode,
/*227799*/                OPC_RecordChild1, // #2 = $src
/*227800*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227802*/                OPC_CheckPredicate, 9, // Predicate_load
/*227804*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*227806*/                OPC_MoveParent,
/*227807*/                OPC_CheckType, MVT::v4i64,
/*227809*/                OPC_MoveParent,
/*227810*/                OPC_MoveParent,
/*227811*/                OPC_MoveChild2,
/*227812*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*227815*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*227817*/                OPC_MoveParent,
/*227818*/                OPC_CheckType, MVT::v8i32,
/*227820*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*227822*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*227825*/                OPC_EmitMergeInputChains1_1,
/*227826*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86SubVBroadcast:{ *:[v4i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VBROADCASTI32X4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*227838*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->227887
/*227841*/                OPC_MoveChild0,
/*227842*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227845*/                OPC_RecordMemRef,
/*227846*/                OPC_RecordNode, // #1 = 'ld' chained node
/*227847*/                OPC_CheckFoldableChainNode,
/*227848*/                OPC_RecordChild1, // #2 = $src
/*227849*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227851*/                OPC_CheckPredicate, 9, // Predicate_load
/*227853*/                OPC_CheckType, MVT::i64,
/*227855*/                OPC_MoveParent,
/*227856*/                OPC_CheckType, MVT::v4i64,
/*227858*/                OPC_MoveParent,
/*227859*/                OPC_MoveParent,
/*227860*/                OPC_MoveChild2,
/*227861*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*227864*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*227866*/                OPC_MoveParent,
/*227867*/                OPC_CheckType, MVT::v8i32,
/*227869*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*227871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*227874*/                OPC_EmitMergeInputChains1_1,
/*227875*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VBROADCASTI32X2Z256mkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*227887*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->227938
/*227890*/                OPC_RecordMemRef,
/*227891*/                OPC_RecordNode, // #1 = 'ld' chained node
/*227892*/                OPC_CheckFoldableChainNode,
/*227893*/                OPC_RecordChild1, // #2 = $src
/*227894*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227896*/                OPC_CheckPredicate, 9, // Predicate_load
/*227898*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*227900*/                OPC_CheckType, MVT::v2i64,
/*227902*/                OPC_MoveParent,
/*227903*/                OPC_MoveParent,
/*227904*/                OPC_MoveChild2,
/*227905*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*227908*/                OPC_MoveChild0,
/*227909*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*227912*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*227914*/                OPC_CheckType, MVT::v4i32,
/*227916*/                OPC_MoveParent,
/*227917*/                OPC_MoveParent,
/*227918*/                OPC_CheckType, MVT::v8i16,
/*227920*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227922*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*227925*/                OPC_EmitMergeInputChains1_1,
/*227926*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMOVDQU16Z128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*227938*/              0, // EndSwitchOpcode
/*227939*/            0, /*End of Scope*/
/*227940*/          /*SwitchOpcode*/ 104|128,1/*232*/, TARGET_VAL(X86ISD::VBROADCAST),// ->228176
/*227944*/            OPC_MoveChild0,
/*227945*/            OPC_SwitchOpcode /*2 cases */, 6|128,1/*134*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->228084
/*227950*/              OPC_MoveChild0,
/*227951*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227954*/              OPC_RecordMemRef,
/*227955*/              OPC_RecordNode, // #1 = 'ld' chained node
/*227956*/              OPC_CheckFoldableChainNode,
/*227957*/              OPC_RecordChild1, // #2 = $src
/*227958*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227960*/              OPC_SwitchType /*3 cases */, 41, MVT::i16,// ->228004
/*227963*/                OPC_CheckPredicate, 7, // Predicate_loadi16
/*227965*/                OPC_MoveParent,
/*227966*/                OPC_CheckType, MVT::v8i16,
/*227968*/                OPC_MoveParent,
/*227969*/                OPC_MoveParent,
/*227970*/                OPC_MoveChild2,
/*227971*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*227974*/                OPC_MoveChild0,
/*227975*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*227978*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*227980*/                OPC_CheckType, MVT::v4i32,
/*227982*/                OPC_MoveParent,
/*227983*/                OPC_MoveParent,
/*227984*/                OPC_CheckType, MVT::v8i16,
/*227986*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227988*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*227991*/                OPC_EmitMergeInputChains1_1,
/*227992*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i16] } (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPBROADCASTWZ128mkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*228004*/              /*SwitchType*/ 41, MVT::i64,// ->228047
/*228006*/                OPC_CheckPredicate, 9, // Predicate_load
/*228008*/                OPC_MoveParent,
/*228009*/                OPC_CheckType, MVT::v2i64,
/*228011*/                OPC_MoveParent,
/*228012*/                OPC_MoveParent,
/*228013*/                OPC_MoveChild2,
/*228014*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228017*/                OPC_MoveChild0,
/*228018*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228021*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228023*/                OPC_CheckType, MVT::v16i32,
/*228025*/                OPC_MoveParent,
/*228026*/                OPC_MoveParent,
/*228027*/                OPC_CheckType, MVT::v8i64,
/*228029*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228031*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*228034*/                OPC_EmitMergeInputChains1_1,
/*228035*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPBROADCASTQZmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*228047*/              /*SwitchType*/ 34, MVT::i32,// ->228083
/*228049*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*228051*/                OPC_MoveParent,
/*228052*/                OPC_CheckType, MVT::v4i32,
/*228054*/                OPC_MoveParent,
/*228055*/                OPC_MoveParent,
/*228056*/                OPC_MoveChild2,
/*228057*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228060*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228062*/                OPC_MoveParent,
/*228063*/                OPC_CheckType, MVT::v8i32,
/*228065*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*228067*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*228070*/                OPC_EmitMergeInputChains1_1,
/*228071*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPBROADCASTDZ256mkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*228083*/              0, // EndSwitchType
/*228084*/            /*SwitchOpcode*/ 88, TARGET_VAL(ISD::LOAD),// ->228175
/*228087*/              OPC_RecordMemRef,
/*228088*/              OPC_RecordNode, // #1 = 'ld' chained node
/*228089*/              OPC_CheckFoldableChainNode,
/*228090*/              OPC_RecordChild1, // #2 = $src
/*228091*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228093*/              OPC_SwitchType /*2 cases */, 38, MVT::i16,// ->228134
/*228096*/                OPC_CheckPredicate, 7, // Predicate_loadi16
/*228098*/                OPC_MoveParent,
/*228099*/                OPC_MoveParent,
/*228100*/                OPC_MoveChild2,
/*228101*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228104*/                OPC_MoveChild0,
/*228105*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228108*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228110*/                OPC_CheckType, MVT::v4i32,
/*228112*/                OPC_MoveParent,
/*228113*/                OPC_MoveParent,
/*228114*/                OPC_CheckType, MVT::v8i16,
/*228116*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228118*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*228121*/                OPC_EmitMergeInputChains1_1,
/*228122*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPBROADCASTWZ128mkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*228134*/              /*SwitchType*/ 38, MVT::i64,// ->228174
/*228136*/                OPC_CheckPredicate, 9, // Predicate_load
/*228138*/                OPC_MoveParent,
/*228139*/                OPC_MoveParent,
/*228140*/                OPC_MoveChild2,
/*228141*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228144*/                OPC_MoveChild0,
/*228145*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228148*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228150*/                OPC_CheckType, MVT::v16i32,
/*228152*/                OPC_MoveParent,
/*228153*/                OPC_MoveParent,
/*228154*/                OPC_CheckType, MVT::v8i64,
/*228156*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228158*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*228161*/                OPC_EmitMergeInputChains1_1,
/*228162*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPBROADCASTQZmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*228174*/              0, // EndSwitchType
/*228175*/            0, // EndSwitchOpcode
/*228176*/          /*SwitchOpcode*/ 126|128,1/*254*/, TARGET_VAL(X86ISD::VPERMV3),// ->228434
/*228180*/            OPC_RecordChild0, // #1 = $src1
/*228181*/            OPC_RecordChild1, // #2 = $src2
/*228182*/            OPC_MoveChild2,
/*228183*/            OPC_SwitchOpcode /*3 cases */, 95, TARGET_VAL(X86ISD::VBROADCAST),// ->228282
/*228187*/              OPC_MoveChild0,
/*228188*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228191*/              OPC_RecordMemRef,
/*228192*/              OPC_RecordNode, // #3 = 'ld' chained node
/*228193*/              OPC_CheckFoldableChainNode,
/*228194*/              OPC_RecordChild1, // #4 = $src3
/*228195*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228197*/              OPC_SwitchType /*2 cases */, 43, MVT::i64,// ->228243
/*228200*/                OPC_CheckPredicate, 9, // Predicate_load
/*228202*/                OPC_MoveParent,
/*228203*/                OPC_MoveParent,
/*228204*/                OPC_MoveParent,
/*228205*/                OPC_MoveChild2,
/*228206*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228209*/                OPC_MoveChild0,
/*228210*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228213*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228215*/                OPC_CheckType, MVT::v16i32,
/*228217*/                OPC_MoveParent,
/*228218*/                OPC_MoveParent,
/*228219*/                OPC_CheckType, MVT::v8i64,
/*228221*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228223*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*228226*/                OPC_EmitMergeInputChains, 1, 3, 
/*228229*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Qrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMT2Qrmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*228243*/              /*SwitchType*/ 36, MVT::i32,// ->228281
/*228245*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*228247*/                OPC_MoveParent,
/*228248*/                OPC_MoveParent,
/*228249*/                OPC_MoveParent,
/*228250*/                OPC_MoveChild2,
/*228251*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228254*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228256*/                OPC_MoveParent,
/*228257*/                OPC_CheckType, MVT::v8i32,
/*228259*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*228261*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*228264*/                OPC_EmitMergeInputChains, 1, 3, 
/*228267*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPERMT2D256rmbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*228281*/              0, // EndSwitchType
/*228282*/            /*SwitchOpcode*/ 95, TARGET_VAL(ISD::BITCAST),// ->228380
/*228285*/              OPC_MoveChild0,
/*228286*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228289*/              OPC_RecordMemRef,
/*228290*/              OPC_RecordNode, // #3 = 'ld' chained node
/*228291*/              OPC_CheckFoldableChainNode,
/*228292*/              OPC_RecordChild1, // #4 = $src3
/*228293*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228295*/              OPC_CheckPredicate, 9, // Predicate_load
/*228297*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*228299*/              OPC_SwitchType /*2 cases */, 41, MVT::v2i64,// ->228343
/*228302*/                OPC_MoveParent,
/*228303*/                OPC_MoveParent,
/*228304*/                OPC_MoveParent,
/*228305*/                OPC_MoveChild2,
/*228306*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228309*/                OPC_MoveChild0,
/*228310*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228313*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228315*/                OPC_CheckType, MVT::v4i32,
/*228317*/                OPC_MoveParent,
/*228318*/                OPC_MoveParent,
/*228319*/                OPC_CheckType, MVT::v8i16,
/*228321*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228323*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*228326*/                OPC_EmitMergeInputChains, 1, 3, 
/*228329*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMT2W128rmkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*228343*/              /*SwitchType*/ 34, MVT::v4i64,// ->228379
/*228345*/                OPC_MoveParent,
/*228346*/                OPC_MoveParent,
/*228347*/                OPC_MoveParent,
/*228348*/                OPC_MoveChild2,
/*228349*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228352*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228354*/                OPC_MoveParent,
/*228355*/                OPC_CheckType, MVT::v8i32,
/*228357*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*228359*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*228362*/                OPC_EmitMergeInputChains, 1, 3, 
/*228365*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPERMT2D256rmkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*228379*/              0, // EndSwitchType
/*228380*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->228433
/*228383*/              OPC_RecordMemRef,
/*228384*/              OPC_RecordNode, // #3 = 'ld' chained node
/*228385*/              OPC_CheckFoldableChainNode,
/*228386*/              OPC_RecordChild1, // #4 = $src3
/*228387*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228389*/              OPC_CheckPredicate, 9, // Predicate_load
/*228391*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*228393*/              OPC_MoveParent,
/*228394*/              OPC_MoveParent,
/*228395*/              OPC_MoveChild2,
/*228396*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228399*/              OPC_MoveChild0,
/*228400*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228403*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228405*/              OPC_CheckType, MVT::v16i32,
/*228407*/              OPC_MoveParent,
/*228408*/              OPC_MoveParent,
/*228409*/              OPC_CheckType, MVT::v8i64,
/*228411*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228413*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*228416*/              OPC_EmitMergeInputChains, 1, 3, 
/*228419*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Qrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPERMT2Qrmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*228433*/            0, // EndSwitchOpcode
/*228434*/          /*SwitchOpcode*/ 35|128,4/*547*/, TARGET_VAL(ISD::ADD),// ->228985
/*228438*/            OPC_Scope, 116, /*->228556*/ // 4 children in Scope
/*228440*/              OPC_RecordChild0, // #1 = $src1
/*228441*/              OPC_MoveChild1,
/*228442*/              OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->228498
/*228446*/                OPC_MoveChild0,
/*228447*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228450*/                OPC_RecordMemRef,
/*228451*/                OPC_RecordNode, // #2 = 'ld' chained node
/*228452*/                OPC_CheckFoldableChainNode,
/*228453*/                OPC_RecordChild1, // #3 = $src2
/*228454*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228456*/                OPC_CheckPredicate, 9, // Predicate_load
/*228458*/                OPC_CheckType, MVT::i64,
/*228460*/                OPC_MoveParent,
/*228461*/                OPC_MoveParent,
/*228462*/                OPC_MoveParent,
/*228463*/                OPC_MoveChild2,
/*228464*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228467*/                OPC_MoveChild0,
/*228468*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228471*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228473*/                OPC_CheckType, MVT::v16i32,
/*228475*/                OPC_MoveParent,
/*228476*/                OPC_MoveParent,
/*228477*/                OPC_CheckType, MVT::v8i64,
/*228479*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228481*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228484*/                OPC_EmitMergeInputChains1_2,
/*228485*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228498*/              /*SwitchOpcode*/ 54, TARGET_VAL(ISD::BITCAST),// ->228555
/*228501*/                OPC_MoveChild0,
/*228502*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228505*/                OPC_RecordMemRef,
/*228506*/                OPC_RecordNode, // #2 = 'ld' chained node
/*228507*/                OPC_CheckFoldableChainNode,
/*228508*/                OPC_RecordChild1, // #3 = $src2
/*228509*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228511*/                OPC_CheckPredicate, 9, // Predicate_load
/*228513*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*228515*/                OPC_CheckType, MVT::v2i64,
/*228517*/                OPC_MoveParent,
/*228518*/                OPC_MoveParent,
/*228519*/                OPC_MoveParent,
/*228520*/                OPC_MoveChild2,
/*228521*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228524*/                OPC_MoveChild0,
/*228525*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228528*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228530*/                OPC_CheckType, MVT::v4i32,
/*228532*/                OPC_MoveParent,
/*228533*/                OPC_MoveParent,
/*228534*/                OPC_CheckType, MVT::v8i16,
/*228536*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228538*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228541*/                OPC_EmitMergeInputChains1_2,
/*228542*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228555*/              0, // EndSwitchOpcode
/*228556*/            /*Scope*/ 117, /*->228674*/
/*228557*/              OPC_MoveChild0,
/*228558*/              OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->228615
/*228562*/                OPC_MoveChild0,
/*228563*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228566*/                OPC_RecordMemRef,
/*228567*/                OPC_RecordNode, // #1 = 'ld' chained node
/*228568*/                OPC_CheckFoldableChainNode,
/*228569*/                OPC_RecordChild1, // #2 = $src2
/*228570*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228572*/                OPC_CheckPredicate, 9, // Predicate_load
/*228574*/                OPC_CheckType, MVT::i64,
/*228576*/                OPC_MoveParent,
/*228577*/                OPC_MoveParent,
/*228578*/                OPC_RecordChild1, // #3 = $src1
/*228579*/                OPC_MoveParent,
/*228580*/                OPC_MoveChild2,
/*228581*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228584*/                OPC_MoveChild0,
/*228585*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228588*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228590*/                OPC_CheckType, MVT::v16i32,
/*228592*/                OPC_MoveParent,
/*228593*/                OPC_MoveParent,
/*228594*/                OPC_CheckType, MVT::v8i64,
/*228596*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228598*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228601*/                OPC_EmitMergeInputChains1_1,
/*228602*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228615*/              /*SwitchOpcode*/ 55, TARGET_VAL(ISD::BITCAST),// ->228673
/*228618*/                OPC_MoveChild0,
/*228619*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228622*/                OPC_RecordMemRef,
/*228623*/                OPC_RecordNode, // #1 = 'ld' chained node
/*228624*/                OPC_CheckFoldableChainNode,
/*228625*/                OPC_RecordChild1, // #2 = $src2
/*228626*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228628*/                OPC_CheckPredicate, 9, // Predicate_load
/*228630*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*228632*/                OPC_CheckType, MVT::v2i64,
/*228634*/                OPC_MoveParent,
/*228635*/                OPC_MoveParent,
/*228636*/                OPC_RecordChild1, // #3 = $src1
/*228637*/                OPC_MoveParent,
/*228638*/                OPC_MoveChild2,
/*228639*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228642*/                OPC_MoveChild0,
/*228643*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228646*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228648*/                OPC_CheckType, MVT::v4i32,
/*228650*/                OPC_MoveParent,
/*228651*/                OPC_MoveParent,
/*228652*/                OPC_CheckType, MVT::v8i16,
/*228654*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228656*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228659*/                OPC_EmitMergeInputChains1_1,
/*228660*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228673*/              0, // EndSwitchOpcode
/*228674*/            /*Scope*/ 24|128,1/*152*/, /*->228828*/
/*228676*/              OPC_RecordChild0, // #1 = $src1
/*228677*/              OPC_MoveChild1,
/*228678*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::LOAD),// ->228729
/*228682*/                OPC_RecordMemRef,
/*228683*/                OPC_RecordNode, // #2 = 'ld' chained node
/*228684*/                OPC_CheckFoldableChainNode,
/*228685*/                OPC_RecordChild1, // #3 = $src2
/*228686*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228688*/                OPC_CheckPredicate, 9, // Predicate_load
/*228690*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*228692*/                OPC_MoveParent,
/*228693*/                OPC_MoveParent,
/*228694*/                OPC_MoveChild2,
/*228695*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228698*/                OPC_MoveChild0,
/*228699*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228702*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228704*/                OPC_CheckType, MVT::v16i32,
/*228706*/                OPC_MoveParent,
/*228707*/                OPC_MoveParent,
/*228708*/                OPC_CheckType, MVT::v8i64,
/*228710*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228712*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228715*/                OPC_EmitMergeInputChains1_2,
/*228716*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPADDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228729*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::BITCAST),// ->228779
/*228732*/                OPC_MoveChild0,
/*228733*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228736*/                OPC_RecordMemRef,
/*228737*/                OPC_RecordNode, // #2 = 'ld' chained node
/*228738*/                OPC_CheckFoldableChainNode,
/*228739*/                OPC_RecordChild1, // #3 = $src2
/*228740*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228742*/                OPC_CheckPredicate, 9, // Predicate_load
/*228744*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*228746*/                OPC_CheckType, MVT::v4i64,
/*228748*/                OPC_MoveParent,
/*228749*/                OPC_MoveParent,
/*228750*/                OPC_MoveParent,
/*228751*/                OPC_MoveChild2,
/*228752*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228755*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228757*/                OPC_MoveParent,
/*228758*/                OPC_CheckType, MVT::v8i32,
/*228760*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*228762*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228765*/                OPC_EmitMergeInputChains1_2,
/*228766*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228779*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->228827
/*228782*/                OPC_MoveChild0,
/*228783*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228786*/                OPC_RecordMemRef,
/*228787*/                OPC_RecordNode, // #2 = 'ld' chained node
/*228788*/                OPC_CheckFoldableChainNode,
/*228789*/                OPC_RecordChild1, // #3 = $src2
/*228790*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228792*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*228794*/                OPC_CheckType, MVT::i32,
/*228796*/                OPC_MoveParent,
/*228797*/                OPC_MoveParent,
/*228798*/                OPC_MoveParent,
/*228799*/                OPC_MoveChild2,
/*228800*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228803*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228805*/                OPC_MoveParent,
/*228806*/                OPC_CheckType, MVT::v8i32,
/*228808*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*228810*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228813*/                OPC_EmitMergeInputChains1_2,
/*228814*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228827*/              0, // EndSwitchOpcode
/*228828*/            /*Scope*/ 26|128,1/*154*/, /*->228984*/
/*228830*/              OPC_MoveChild0,
/*228831*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::LOAD),// ->228883
/*228835*/                OPC_RecordMemRef,
/*228836*/                OPC_RecordNode, // #1 = 'ld' chained node
/*228837*/                OPC_CheckFoldableChainNode,
/*228838*/                OPC_RecordChild1, // #2 = $src2
/*228839*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228841*/                OPC_CheckPredicate, 9, // Predicate_load
/*228843*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*228845*/                OPC_MoveParent,
/*228846*/                OPC_RecordChild1, // #3 = $src1
/*228847*/                OPC_MoveParent,
/*228848*/                OPC_MoveChild2,
/*228849*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*228852*/                OPC_MoveChild0,
/*228853*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228856*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228858*/                OPC_CheckType, MVT::v16i32,
/*228860*/                OPC_MoveParent,
/*228861*/                OPC_MoveParent,
/*228862*/                OPC_CheckType, MVT::v8i64,
/*228864*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228866*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228869*/                OPC_EmitMergeInputChains1_1,
/*228870*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPADDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228883*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::BITCAST),// ->228934
/*228886*/                OPC_MoveChild0,
/*228887*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228890*/                OPC_RecordMemRef,
/*228891*/                OPC_RecordNode, // #1 = 'ld' chained node
/*228892*/                OPC_CheckFoldableChainNode,
/*228893*/                OPC_RecordChild1, // #2 = $src2
/*228894*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228896*/                OPC_CheckPredicate, 9, // Predicate_load
/*228898*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*228900*/                OPC_CheckType, MVT::v4i64,
/*228902*/                OPC_MoveParent,
/*228903*/                OPC_MoveParent,
/*228904*/                OPC_RecordChild1, // #3 = $src1
/*228905*/                OPC_MoveParent,
/*228906*/                OPC_MoveChild2,
/*228907*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228910*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228912*/                OPC_MoveParent,
/*228913*/                OPC_CheckType, MVT::v8i32,
/*228915*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*228917*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228920*/                OPC_EmitMergeInputChains1_1,
/*228921*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228934*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->228983
/*228937*/                OPC_MoveChild0,
/*228938*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228941*/                OPC_RecordMemRef,
/*228942*/                OPC_RecordNode, // #1 = 'ld' chained node
/*228943*/                OPC_CheckFoldableChainNode,
/*228944*/                OPC_RecordChild1, // #2 = $src2
/*228945*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228947*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*228949*/                OPC_CheckType, MVT::i32,
/*228951*/                OPC_MoveParent,
/*228952*/                OPC_MoveParent,
/*228953*/                OPC_RecordChild1, // #3 = $src1
/*228954*/                OPC_MoveParent,
/*228955*/                OPC_MoveChild2,
/*228956*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*228959*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*228961*/                OPC_MoveParent,
/*228962*/                OPC_CheckType, MVT::v8i32,
/*228964*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*228966*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228969*/                OPC_EmitMergeInputChains1_1,
/*228970*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228983*/              0, // EndSwitchOpcode
/*228984*/            0, /*End of Scope*/
/*228985*/          /*SwitchOpcode*/ 110|128,1/*238*/, TARGET_VAL(ISD::SUB),// ->229227
/*228989*/            OPC_RecordChild0, // #1 = $src1
/*228990*/            OPC_MoveChild1,
/*228991*/            OPC_SwitchOpcode /*3 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->229084
/*228995*/              OPC_MoveChild0,
/*228996*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228999*/              OPC_RecordMemRef,
/*229000*/              OPC_RecordNode, // #2 = 'ld' chained node
/*229001*/              OPC_CheckFoldableChainNode,
/*229002*/              OPC_RecordChild1, // #3 = $src2
/*229003*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229005*/              OPC_SwitchType /*2 cases */, 40, MVT::i64,// ->229048
/*229008*/                OPC_CheckPredicate, 9, // Predicate_load
/*229010*/                OPC_MoveParent,
/*229011*/                OPC_MoveParent,
/*229012*/                OPC_MoveParent,
/*229013*/                OPC_MoveChild2,
/*229014*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229017*/                OPC_MoveChild0,
/*229018*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229021*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229023*/                OPC_CheckType, MVT::v16i32,
/*229025*/                OPC_MoveParent,
/*229026*/                OPC_MoveParent,
/*229027*/                OPC_CheckType, MVT::v8i64,
/*229029*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229031*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229034*/                OPC_EmitMergeInputChains1_2,
/*229035*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSUBQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229048*/              /*SwitchType*/ 33, MVT::i32,// ->229083
/*229050*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*229052*/                OPC_MoveParent,
/*229053*/                OPC_MoveParent,
/*229054*/                OPC_MoveParent,
/*229055*/                OPC_MoveChild2,
/*229056*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229059*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229061*/                OPC_MoveParent,
/*229062*/                OPC_CheckType, MVT::v8i32,
/*229064*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229066*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229069*/                OPC_EmitMergeInputChains1_2,
/*229070*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSUBDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229083*/              0, // EndSwitchType
/*229084*/            /*SwitchOpcode*/ 89, TARGET_VAL(ISD::BITCAST),// ->229176
/*229087*/              OPC_MoveChild0,
/*229088*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229091*/              OPC_RecordMemRef,
/*229092*/              OPC_RecordNode, // #2 = 'ld' chained node
/*229093*/              OPC_CheckFoldableChainNode,
/*229094*/              OPC_RecordChild1, // #3 = $src2
/*229095*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229097*/              OPC_CheckPredicate, 9, // Predicate_load
/*229099*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*229101*/              OPC_SwitchType /*2 cases */, 38, MVT::v2i64,// ->229142
/*229104*/                OPC_MoveParent,
/*229105*/                OPC_MoveParent,
/*229106*/                OPC_MoveParent,
/*229107*/                OPC_MoveChild2,
/*229108*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229111*/                OPC_MoveChild0,
/*229112*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229115*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229117*/                OPC_CheckType, MVT::v4i32,
/*229119*/                OPC_MoveParent,
/*229120*/                OPC_MoveParent,
/*229121*/                OPC_CheckType, MVT::v8i16,
/*229123*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229125*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229128*/                OPC_EmitMergeInputChains1_2,
/*229129*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSUBWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229142*/              /*SwitchType*/ 31, MVT::v4i64,// ->229175
/*229144*/                OPC_MoveParent,
/*229145*/                OPC_MoveParent,
/*229146*/                OPC_MoveParent,
/*229147*/                OPC_MoveChild2,
/*229148*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229151*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229153*/                OPC_MoveParent,
/*229154*/                OPC_CheckType, MVT::v8i32,
/*229156*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229158*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229161*/                OPC_EmitMergeInputChains1_2,
/*229162*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSUBDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229175*/              0, // EndSwitchType
/*229176*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->229226
/*229179*/              OPC_RecordMemRef,
/*229180*/              OPC_RecordNode, // #2 = 'ld' chained node
/*229181*/              OPC_CheckFoldableChainNode,
/*229182*/              OPC_RecordChild1, // #3 = $src2
/*229183*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229185*/              OPC_CheckPredicate, 9, // Predicate_load
/*229187*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*229189*/              OPC_MoveParent,
/*229190*/              OPC_MoveParent,
/*229191*/              OPC_MoveChild2,
/*229192*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229195*/              OPC_MoveChild0,
/*229196*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229199*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229201*/              OPC_CheckType, MVT::v16i32,
/*229203*/              OPC_MoveParent,
/*229204*/              OPC_MoveParent,
/*229205*/              OPC_CheckType, MVT::v8i64,
/*229207*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229209*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229212*/              OPC_EmitMergeInputChains1_2,
/*229213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSUBQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229226*/            0, // EndSwitchOpcode
/*229227*/          /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::ADDS),// ->229352
/*229230*/            OPC_Scope, 59, /*->229291*/ // 2 children in Scope
/*229232*/              OPC_RecordChild0, // #1 = $src1
/*229233*/              OPC_MoveChild1,
/*229234*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229237*/              OPC_MoveChild0,
/*229238*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229241*/              OPC_RecordMemRef,
/*229242*/              OPC_RecordNode, // #2 = 'ld' chained node
/*229243*/              OPC_CheckFoldableChainNode,
/*229244*/              OPC_RecordChild1, // #3 = $src2
/*229245*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229247*/              OPC_CheckPredicate, 9, // Predicate_load
/*229249*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*229251*/              OPC_CheckType, MVT::v2i64,
/*229253*/              OPC_MoveParent,
/*229254*/              OPC_MoveParent,
/*229255*/              OPC_MoveParent,
/*229256*/              OPC_MoveChild2,
/*229257*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229260*/              OPC_MoveChild0,
/*229261*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229264*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229266*/              OPC_CheckType, MVT::v4i32,
/*229268*/              OPC_MoveParent,
/*229269*/              OPC_MoveParent,
/*229270*/              OPC_CheckType, MVT::v8i16,
/*229272*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229274*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229277*/              OPC_EmitMergeInputChains1_2,
/*229278*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86adds:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229291*/            /*Scope*/ 59, /*->229351*/
/*229292*/              OPC_MoveChild0,
/*229293*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229296*/              OPC_MoveChild0,
/*229297*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229300*/              OPC_RecordMemRef,
/*229301*/              OPC_RecordNode, // #1 = 'ld' chained node
/*229302*/              OPC_CheckFoldableChainNode,
/*229303*/              OPC_RecordChild1, // #2 = $src2
/*229304*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229306*/              OPC_CheckPredicate, 9, // Predicate_load
/*229308*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*229310*/              OPC_CheckType, MVT::v2i64,
/*229312*/              OPC_MoveParent,
/*229313*/              OPC_MoveParent,
/*229314*/              OPC_RecordChild1, // #3 = $src1
/*229315*/              OPC_MoveParent,
/*229316*/              OPC_MoveChild2,
/*229317*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229320*/              OPC_MoveChild0,
/*229321*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229324*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229326*/              OPC_CheckType, MVT::v4i32,
/*229328*/              OPC_MoveParent,
/*229329*/              OPC_MoveParent,
/*229330*/              OPC_CheckType, MVT::v8i16,
/*229332*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229334*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229337*/              OPC_EmitMergeInputChains1_1,
/*229338*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86adds:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229351*/            0, /*End of Scope*/
/*229352*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::SUBS),// ->229414
/*229355*/            OPC_RecordChild0, // #1 = $src1
/*229356*/            OPC_MoveChild1,
/*229357*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229360*/            OPC_MoveChild0,
/*229361*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229364*/            OPC_RecordMemRef,
/*229365*/            OPC_RecordNode, // #2 = 'ld' chained node
/*229366*/            OPC_CheckFoldableChainNode,
/*229367*/            OPC_RecordChild1, // #3 = $src2
/*229368*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229370*/            OPC_CheckPredicate, 9, // Predicate_load
/*229372*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*229374*/            OPC_CheckType, MVT::v2i64,
/*229376*/            OPC_MoveParent,
/*229377*/            OPC_MoveParent,
/*229378*/            OPC_MoveParent,
/*229379*/            OPC_MoveChild2,
/*229380*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229383*/            OPC_MoveChild0,
/*229384*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229387*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229389*/            OPC_CheckType, MVT::v4i32,
/*229391*/            OPC_MoveParent,
/*229392*/            OPC_MoveParent,
/*229393*/            OPC_CheckType, MVT::v8i16,
/*229395*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229397*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229400*/            OPC_EmitMergeInputChains1_2,
/*229401*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86subs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSUBSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229414*/          /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::ADDUS),// ->229539
/*229417*/            OPC_Scope, 59, /*->229478*/ // 2 children in Scope
/*229419*/              OPC_RecordChild0, // #1 = $src1
/*229420*/              OPC_MoveChild1,
/*229421*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229424*/              OPC_MoveChild0,
/*229425*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229428*/              OPC_RecordMemRef,
/*229429*/              OPC_RecordNode, // #2 = 'ld' chained node
/*229430*/              OPC_CheckFoldableChainNode,
/*229431*/              OPC_RecordChild1, // #3 = $src2
/*229432*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229434*/              OPC_CheckPredicate, 9, // Predicate_load
/*229436*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*229438*/              OPC_CheckType, MVT::v2i64,
/*229440*/              OPC_MoveParent,
/*229441*/              OPC_MoveParent,
/*229442*/              OPC_MoveParent,
/*229443*/              OPC_MoveChild2,
/*229444*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229447*/              OPC_MoveChild0,
/*229448*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229451*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229453*/              OPC_CheckType, MVT::v4i32,
/*229455*/              OPC_MoveParent,
/*229456*/              OPC_MoveParent,
/*229457*/              OPC_CheckType, MVT::v8i16,
/*229459*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229461*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229464*/              OPC_EmitMergeInputChains1_2,
/*229465*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86addus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDUSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229478*/            /*Scope*/ 59, /*->229538*/
/*229479*/              OPC_MoveChild0,
/*229480*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229483*/              OPC_MoveChild0,
/*229484*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229487*/              OPC_RecordMemRef,
/*229488*/              OPC_RecordNode, // #1 = 'ld' chained node
/*229489*/              OPC_CheckFoldableChainNode,
/*229490*/              OPC_RecordChild1, // #2 = $src2
/*229491*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229493*/              OPC_CheckPredicate, 9, // Predicate_load
/*229495*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*229497*/              OPC_CheckType, MVT::v2i64,
/*229499*/              OPC_MoveParent,
/*229500*/              OPC_MoveParent,
/*229501*/              OPC_RecordChild1, // #3 = $src1
/*229502*/              OPC_MoveParent,
/*229503*/              OPC_MoveChild2,
/*229504*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229507*/              OPC_MoveChild0,
/*229508*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229511*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229513*/              OPC_CheckType, MVT::v4i32,
/*229515*/              OPC_MoveParent,
/*229516*/              OPC_MoveParent,
/*229517*/              OPC_CheckType, MVT::v8i16,
/*229519*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229521*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229524*/              OPC_EmitMergeInputChains1_1,
/*229525*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86addus:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDUSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229538*/            0, /*End of Scope*/
/*229539*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::SUBUS),// ->229601
/*229542*/            OPC_RecordChild0, // #1 = $src1
/*229543*/            OPC_MoveChild1,
/*229544*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229547*/            OPC_MoveChild0,
/*229548*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229551*/            OPC_RecordMemRef,
/*229552*/            OPC_RecordNode, // #2 = 'ld' chained node
/*229553*/            OPC_CheckFoldableChainNode,
/*229554*/            OPC_RecordChild1, // #3 = $src2
/*229555*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229557*/            OPC_CheckPredicate, 9, // Predicate_load
/*229559*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*229561*/            OPC_CheckType, MVT::v2i64,
/*229563*/            OPC_MoveParent,
/*229564*/            OPC_MoveParent,
/*229565*/            OPC_MoveParent,
/*229566*/            OPC_MoveChild2,
/*229567*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229570*/            OPC_MoveChild0,
/*229571*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229574*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229576*/            OPC_CheckType, MVT::v4i32,
/*229578*/            OPC_MoveParent,
/*229579*/            OPC_MoveParent,
/*229580*/            OPC_CheckType, MVT::v8i16,
/*229582*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229584*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229587*/            OPC_EmitMergeInputChains1_2,
/*229588*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86subus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSUBUSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229601*/          /*SwitchOpcode*/ 35|128,4/*547*/, TARGET_VAL(ISD::MUL),// ->230152
/*229605*/            OPC_Scope, 116, /*->229723*/ // 4 children in Scope
/*229607*/              OPC_RecordChild0, // #1 = $src1
/*229608*/              OPC_MoveChild1,
/*229609*/              OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->229667
/*229613*/                OPC_MoveChild0,
/*229614*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229617*/                OPC_RecordMemRef,
/*229618*/                OPC_RecordNode, // #2 = 'ld' chained node
/*229619*/                OPC_CheckFoldableChainNode,
/*229620*/                OPC_RecordChild1, // #3 = $src2
/*229621*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229623*/                OPC_CheckPredicate, 9, // Predicate_load
/*229625*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*229627*/                OPC_CheckType, MVT::v2i64,
/*229629*/                OPC_MoveParent,
/*229630*/                OPC_MoveParent,
/*229631*/                OPC_MoveParent,
/*229632*/                OPC_MoveChild2,
/*229633*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229636*/                OPC_MoveChild0,
/*229637*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229640*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229642*/                OPC_CheckType, MVT::v4i32,
/*229644*/                OPC_MoveParent,
/*229645*/                OPC_MoveParent,
/*229646*/                OPC_CheckType, MVT::v8i16,
/*229648*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229650*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229653*/                OPC_EmitMergeInputChains1_2,
/*229654*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMULLWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229667*/              /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->229722
/*229670*/                OPC_MoveChild0,
/*229671*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229674*/                OPC_RecordMemRef,
/*229675*/                OPC_RecordNode, // #2 = 'ld' chained node
/*229676*/                OPC_CheckFoldableChainNode,
/*229677*/                OPC_RecordChild1, // #3 = $src2
/*229678*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229680*/                OPC_CheckPredicate, 9, // Predicate_load
/*229682*/                OPC_CheckType, MVT::i64,
/*229684*/                OPC_MoveParent,
/*229685*/                OPC_MoveParent,
/*229686*/                OPC_MoveParent,
/*229687*/                OPC_MoveChild2,
/*229688*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229691*/                OPC_MoveChild0,
/*229692*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229695*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229697*/                OPC_CheckType, MVT::v16i32,
/*229699*/                OPC_MoveParent,
/*229700*/                OPC_MoveParent,
/*229701*/                OPC_CheckType, MVT::v8i64,
/*229703*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*229705*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229708*/                OPC_EmitMergeInputChains1_2,
/*229709*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMULLQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229722*/              0, // EndSwitchOpcode
/*229723*/            /*Scope*/ 117, /*->229841*/
/*229724*/              OPC_MoveChild0,
/*229725*/              OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->229784
/*229729*/                OPC_MoveChild0,
/*229730*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229733*/                OPC_RecordMemRef,
/*229734*/                OPC_RecordNode, // #1 = 'ld' chained node
/*229735*/                OPC_CheckFoldableChainNode,
/*229736*/                OPC_RecordChild1, // #2 = $src2
/*229737*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229739*/                OPC_CheckPredicate, 9, // Predicate_load
/*229741*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*229743*/                OPC_CheckType, MVT::v2i64,
/*229745*/                OPC_MoveParent,
/*229746*/                OPC_MoveParent,
/*229747*/                OPC_RecordChild1, // #3 = $src1
/*229748*/                OPC_MoveParent,
/*229749*/                OPC_MoveChild2,
/*229750*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229753*/                OPC_MoveChild0,
/*229754*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229757*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229759*/                OPC_CheckType, MVT::v4i32,
/*229761*/                OPC_MoveParent,
/*229762*/                OPC_MoveParent,
/*229763*/                OPC_CheckType, MVT::v8i16,
/*229765*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229767*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229770*/                OPC_EmitMergeInputChains1_1,
/*229771*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMULLWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229784*/              /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->229840
/*229787*/                OPC_MoveChild0,
/*229788*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229791*/                OPC_RecordMemRef,
/*229792*/                OPC_RecordNode, // #1 = 'ld' chained node
/*229793*/                OPC_CheckFoldableChainNode,
/*229794*/                OPC_RecordChild1, // #2 = $src2
/*229795*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229797*/                OPC_CheckPredicate, 9, // Predicate_load
/*229799*/                OPC_CheckType, MVT::i64,
/*229801*/                OPC_MoveParent,
/*229802*/                OPC_MoveParent,
/*229803*/                OPC_RecordChild1, // #3 = $src1
/*229804*/                OPC_MoveParent,
/*229805*/                OPC_MoveChild2,
/*229806*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229809*/                OPC_MoveChild0,
/*229810*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229813*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229815*/                OPC_CheckType, MVT::v16i32,
/*229817*/                OPC_MoveParent,
/*229818*/                OPC_MoveParent,
/*229819*/                OPC_CheckType, MVT::v8i64,
/*229821*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*229823*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229826*/                OPC_EmitMergeInputChains1_1,
/*229827*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMULLQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229840*/              0, // EndSwitchOpcode
/*229841*/            /*Scope*/ 24|128,1/*152*/, /*->229995*/
/*229843*/              OPC_RecordChild0, // #1 = $src1
/*229844*/              OPC_MoveChild1,
/*229845*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->229896
/*229849*/                OPC_MoveChild0,
/*229850*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229853*/                OPC_RecordMemRef,
/*229854*/                OPC_RecordNode, // #2 = 'ld' chained node
/*229855*/                OPC_CheckFoldableChainNode,
/*229856*/                OPC_RecordChild1, // #3 = $src2
/*229857*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229859*/                OPC_CheckPredicate, 9, // Predicate_load
/*229861*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*229863*/                OPC_CheckType, MVT::v4i64,
/*229865*/                OPC_MoveParent,
/*229866*/                OPC_MoveParent,
/*229867*/                OPC_MoveParent,
/*229868*/                OPC_MoveChild2,
/*229869*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229872*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229874*/                OPC_MoveParent,
/*229875*/                OPC_CheckType, MVT::v8i32,
/*229877*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229879*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229882*/                OPC_EmitMergeInputChains1_2,
/*229883*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229896*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->229944
/*229899*/                OPC_MoveChild0,
/*229900*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*229903*/                OPC_RecordMemRef,
/*229904*/                OPC_RecordNode, // #2 = 'ld' chained node
/*229905*/                OPC_CheckFoldableChainNode,
/*229906*/                OPC_RecordChild1, // #3 = $src2
/*229907*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229909*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*229911*/                OPC_CheckType, MVT::i32,
/*229913*/                OPC_MoveParent,
/*229914*/                OPC_MoveParent,
/*229915*/                OPC_MoveParent,
/*229916*/                OPC_MoveChild2,
/*229917*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229920*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229922*/                OPC_MoveParent,
/*229923*/                OPC_CheckType, MVT::v8i32,
/*229925*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229927*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229930*/                OPC_EmitMergeInputChains1_2,
/*229931*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229944*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->229994
/*229947*/                OPC_RecordMemRef,
/*229948*/                OPC_RecordNode, // #2 = 'ld' chained node
/*229949*/                OPC_CheckFoldableChainNode,
/*229950*/                OPC_RecordChild1, // #3 = $src2
/*229951*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229953*/                OPC_CheckPredicate, 9, // Predicate_load
/*229955*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*229957*/                OPC_MoveParent,
/*229958*/                OPC_MoveParent,
/*229959*/                OPC_MoveChild2,
/*229960*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*229963*/                OPC_MoveChild0,
/*229964*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*229967*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*229969*/                OPC_CheckType, MVT::v16i32,
/*229971*/                OPC_MoveParent,
/*229972*/                OPC_MoveParent,
/*229973*/                OPC_CheckType, MVT::v8i64,
/*229975*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*229977*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229980*/                OPC_EmitMergeInputChains1_2,
/*229981*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMULLQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229994*/              0, // EndSwitchOpcode
/*229995*/            /*Scope*/ 26|128,1/*154*/, /*->230151*/
/*229997*/              OPC_MoveChild0,
/*229998*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->230050
/*230002*/                OPC_MoveChild0,
/*230003*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230006*/                OPC_RecordMemRef,
/*230007*/                OPC_RecordNode, // #1 = 'ld' chained node
/*230008*/                OPC_CheckFoldableChainNode,
/*230009*/                OPC_RecordChild1, // #2 = $src2
/*230010*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230012*/                OPC_CheckPredicate, 9, // Predicate_load
/*230014*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*230016*/                OPC_CheckType, MVT::v4i64,
/*230018*/                OPC_MoveParent,
/*230019*/                OPC_MoveParent,
/*230020*/                OPC_RecordChild1, // #3 = $src1
/*230021*/                OPC_MoveParent,
/*230022*/                OPC_MoveChild2,
/*230023*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230026*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230028*/                OPC_MoveParent,
/*230029*/                OPC_CheckType, MVT::v8i32,
/*230031*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230033*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230036*/                OPC_EmitMergeInputChains1_1,
/*230037*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230050*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->230099
/*230053*/                OPC_MoveChild0,
/*230054*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230057*/                OPC_RecordMemRef,
/*230058*/                OPC_RecordNode, // #1 = 'ld' chained node
/*230059*/                OPC_CheckFoldableChainNode,
/*230060*/                OPC_RecordChild1, // #2 = $src2
/*230061*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230063*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*230065*/                OPC_CheckType, MVT::i32,
/*230067*/                OPC_MoveParent,
/*230068*/                OPC_MoveParent,
/*230069*/                OPC_RecordChild1, // #3 = $src1
/*230070*/                OPC_MoveParent,
/*230071*/                OPC_MoveChild2,
/*230072*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230075*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230077*/                OPC_MoveParent,
/*230078*/                OPC_CheckType, MVT::v8i32,
/*230080*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230082*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230085*/                OPC_EmitMergeInputChains1_1,
/*230086*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230099*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->230150
/*230102*/                OPC_RecordMemRef,
/*230103*/                OPC_RecordNode, // #1 = 'ld' chained node
/*230104*/                OPC_CheckFoldableChainNode,
/*230105*/                OPC_RecordChild1, // #2 = $src2
/*230106*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230108*/                OPC_CheckPredicate, 9, // Predicate_load
/*230110*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*230112*/                OPC_MoveParent,
/*230113*/                OPC_RecordChild1, // #3 = $src1
/*230114*/                OPC_MoveParent,
/*230115*/                OPC_MoveChild2,
/*230116*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230119*/                OPC_MoveChild0,
/*230120*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230123*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230125*/                OPC_CheckType, MVT::v16i32,
/*230127*/                OPC_MoveParent,
/*230128*/                OPC_MoveParent,
/*230129*/                OPC_CheckType, MVT::v8i64,
/*230131*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*230133*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230136*/                OPC_EmitMergeInputChains1_1,
/*230137*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMULLQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230150*/              0, // EndSwitchOpcode
/*230151*/            0, /*End of Scope*/
/*230152*/          /*SwitchOpcode*/ 122, TARGET_VAL(ISD::MULHS),// ->230277
/*230155*/            OPC_Scope, 59, /*->230216*/ // 2 children in Scope
/*230157*/              OPC_RecordChild0, // #1 = $src1
/*230158*/              OPC_MoveChild1,
/*230159*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230162*/              OPC_MoveChild0,
/*230163*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230166*/              OPC_RecordMemRef,
/*230167*/              OPC_RecordNode, // #2 = 'ld' chained node
/*230168*/              OPC_CheckFoldableChainNode,
/*230169*/              OPC_RecordChild1, // #3 = $src2
/*230170*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230172*/              OPC_CheckPredicate, 9, // Predicate_load
/*230174*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*230176*/              OPC_CheckType, MVT::v2i64,
/*230178*/              OPC_MoveParent,
/*230179*/              OPC_MoveParent,
/*230180*/              OPC_MoveParent,
/*230181*/              OPC_MoveChild2,
/*230182*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230185*/              OPC_MoveChild0,
/*230186*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230189*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230191*/              OPC_CheckType, MVT::v4i32,
/*230193*/              OPC_MoveParent,
/*230194*/              OPC_MoveParent,
/*230195*/              OPC_CheckType, MVT::v8i16,
/*230197*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*230199*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230202*/              OPC_EmitMergeInputChains1_2,
/*230203*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230216*/            /*Scope*/ 59, /*->230276*/
/*230217*/              OPC_MoveChild0,
/*230218*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230221*/              OPC_MoveChild0,
/*230222*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230225*/              OPC_RecordMemRef,
/*230226*/              OPC_RecordNode, // #1 = 'ld' chained node
/*230227*/              OPC_CheckFoldableChainNode,
/*230228*/              OPC_RecordChild1, // #2 = $src2
/*230229*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230231*/              OPC_CheckPredicate, 9, // Predicate_load
/*230233*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*230235*/              OPC_CheckType, MVT::v2i64,
/*230237*/              OPC_MoveParent,
/*230238*/              OPC_MoveParent,
/*230239*/              OPC_RecordChild1, // #3 = $src1
/*230240*/              OPC_MoveParent,
/*230241*/              OPC_MoveChild2,
/*230242*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230245*/              OPC_MoveChild0,
/*230246*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230249*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230251*/              OPC_CheckType, MVT::v4i32,
/*230253*/              OPC_MoveParent,
/*230254*/              OPC_MoveParent,
/*230255*/              OPC_CheckType, MVT::v8i16,
/*230257*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*230259*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230262*/              OPC_EmitMergeInputChains1_1,
/*230263*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230276*/            0, /*End of Scope*/
/*230277*/          /*SwitchOpcode*/ 122, TARGET_VAL(ISD::MULHU),// ->230402
/*230280*/            OPC_Scope, 59, /*->230341*/ // 2 children in Scope
/*230282*/              OPC_RecordChild0, // #1 = $src1
/*230283*/              OPC_MoveChild1,
/*230284*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230287*/              OPC_MoveChild0,
/*230288*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230291*/              OPC_RecordMemRef,
/*230292*/              OPC_RecordNode, // #2 = 'ld' chained node
/*230293*/              OPC_CheckFoldableChainNode,
/*230294*/              OPC_RecordChild1, // #3 = $src2
/*230295*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230297*/              OPC_CheckPredicate, 9, // Predicate_load
/*230299*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*230301*/              OPC_CheckType, MVT::v2i64,
/*230303*/              OPC_MoveParent,
/*230304*/              OPC_MoveParent,
/*230305*/              OPC_MoveParent,
/*230306*/              OPC_MoveChild2,
/*230307*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230310*/              OPC_MoveChild0,
/*230311*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230314*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230316*/              OPC_CheckType, MVT::v4i32,
/*230318*/              OPC_MoveParent,
/*230319*/              OPC_MoveParent,
/*230320*/              OPC_CheckType, MVT::v8i16,
/*230322*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*230324*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230327*/              OPC_EmitMergeInputChains1_2,
/*230328*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhu:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230341*/            /*Scope*/ 59, /*->230401*/
/*230342*/              OPC_MoveChild0,
/*230343*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230346*/              OPC_MoveChild0,
/*230347*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230350*/              OPC_RecordMemRef,
/*230351*/              OPC_RecordNode, // #1 = 'ld' chained node
/*230352*/              OPC_CheckFoldableChainNode,
/*230353*/              OPC_RecordChild1, // #2 = $src2
/*230354*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230356*/              OPC_CheckPredicate, 9, // Predicate_load
/*230358*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*230360*/              OPC_CheckType, MVT::v2i64,
/*230362*/              OPC_MoveParent,
/*230363*/              OPC_MoveParent,
/*230364*/              OPC_RecordChild1, // #3 = $src1
/*230365*/              OPC_MoveParent,
/*230366*/              OPC_MoveChild2,
/*230367*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230370*/              OPC_MoveChild0,
/*230371*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230374*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230376*/              OPC_CheckType, MVT::v4i32,
/*230378*/              OPC_MoveParent,
/*230379*/              OPC_MoveParent,
/*230380*/              OPC_CheckType, MVT::v8i16,
/*230382*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*230384*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230387*/              OPC_EmitMergeInputChains1_1,
/*230388*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhu:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230401*/            0, /*End of Scope*/
/*230402*/          /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::MULHRS),// ->230527
/*230405*/            OPC_Scope, 59, /*->230466*/ // 2 children in Scope
/*230407*/              OPC_RecordChild0, // #1 = $src1
/*230408*/              OPC_MoveChild1,
/*230409*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230412*/              OPC_MoveChild0,
/*230413*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230416*/              OPC_RecordMemRef,
/*230417*/              OPC_RecordNode, // #2 = 'ld' chained node
/*230418*/              OPC_CheckFoldableChainNode,
/*230419*/              OPC_RecordChild1, // #3 = $src2
/*230420*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230422*/              OPC_CheckPredicate, 9, // Predicate_load
/*230424*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*230426*/              OPC_CheckType, MVT::v2i64,
/*230428*/              OPC_MoveParent,
/*230429*/              OPC_MoveParent,
/*230430*/              OPC_MoveParent,
/*230431*/              OPC_MoveChild2,
/*230432*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230435*/              OPC_MoveChild0,
/*230436*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230439*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230441*/              OPC_CheckType, MVT::v4i32,
/*230443*/              OPC_MoveParent,
/*230444*/              OPC_MoveParent,
/*230445*/              OPC_CheckType, MVT::v8i16,
/*230447*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*230449*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230452*/              OPC_EmitMergeInputChains1_2,
/*230453*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86mulhrs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHRSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230466*/            /*Scope*/ 59, /*->230526*/
/*230467*/              OPC_MoveChild0,
/*230468*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230471*/              OPC_MoveChild0,
/*230472*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230475*/              OPC_RecordMemRef,
/*230476*/              OPC_RecordNode, // #1 = 'ld' chained node
/*230477*/              OPC_CheckFoldableChainNode,
/*230478*/              OPC_RecordChild1, // #2 = $src2
/*230479*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230481*/              OPC_CheckPredicate, 9, // Predicate_load
/*230483*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*230485*/              OPC_CheckType, MVT::v2i64,
/*230487*/              OPC_MoveParent,
/*230488*/              OPC_MoveParent,
/*230489*/              OPC_RecordChild1, // #3 = $src1
/*230490*/              OPC_MoveParent,
/*230491*/              OPC_MoveChild2,
/*230492*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230495*/              OPC_MoveChild0,
/*230496*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230499*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230501*/              OPC_CheckType, MVT::v4i32,
/*230503*/              OPC_MoveParent,
/*230504*/              OPC_MoveParent,
/*230505*/              OPC_CheckType, MVT::v8i16,
/*230507*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*230509*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230512*/              OPC_EmitMergeInputChains1_1,
/*230513*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86mulhrs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHRSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230526*/            0, /*End of Scope*/
/*230527*/          /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::AVG),// ->230652
/*230530*/            OPC_Scope, 59, /*->230591*/ // 2 children in Scope
/*230532*/              OPC_RecordChild0, // #1 = $src1
/*230533*/              OPC_MoveChild1,
/*230534*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230537*/              OPC_MoveChild0,
/*230538*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230541*/              OPC_RecordMemRef,
/*230542*/              OPC_RecordNode, // #2 = 'ld' chained node
/*230543*/              OPC_CheckFoldableChainNode,
/*230544*/              OPC_RecordChild1, // #3 = $src2
/*230545*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230547*/              OPC_CheckPredicate, 9, // Predicate_load
/*230549*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*230551*/              OPC_CheckType, MVT::v2i64,
/*230553*/              OPC_MoveParent,
/*230554*/              OPC_MoveParent,
/*230555*/              OPC_MoveParent,
/*230556*/              OPC_MoveChild2,
/*230557*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230560*/              OPC_MoveChild0,
/*230561*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230564*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230566*/              OPC_CheckType, MVT::v4i32,
/*230568*/              OPC_MoveParent,
/*230569*/              OPC_MoveParent,
/*230570*/              OPC_CheckType, MVT::v8i16,
/*230572*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*230574*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230577*/              OPC_EmitMergeInputChains1_2,
/*230578*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86avg:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPAVGWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230591*/            /*Scope*/ 59, /*->230651*/
/*230592*/              OPC_MoveChild0,
/*230593*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230596*/              OPC_MoveChild0,
/*230597*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230600*/              OPC_RecordMemRef,
/*230601*/              OPC_RecordNode, // #1 = 'ld' chained node
/*230602*/              OPC_CheckFoldableChainNode,
/*230603*/              OPC_RecordChild1, // #2 = $src2
/*230604*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230606*/              OPC_CheckPredicate, 9, // Predicate_load
/*230608*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*230610*/              OPC_CheckType, MVT::v2i64,
/*230612*/              OPC_MoveParent,
/*230613*/              OPC_MoveParent,
/*230614*/              OPC_RecordChild1, // #3 = $src1
/*230615*/              OPC_MoveParent,
/*230616*/              OPC_MoveChild2,
/*230617*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230620*/              OPC_MoveChild0,
/*230621*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230624*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230626*/              OPC_CheckType, MVT::v4i32,
/*230628*/              OPC_MoveParent,
/*230629*/              OPC_MoveParent,
/*230630*/              OPC_CheckType, MVT::v8i16,
/*230632*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*230634*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230637*/              OPC_EmitMergeInputChains1_1,
/*230638*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86avg:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPAVGWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230651*/            0, /*End of Scope*/
/*230652*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(X86ISD::PMULDQ),// ->230880
/*230656*/            OPC_Scope, 57, /*->230715*/ // 4 children in Scope
/*230658*/              OPC_RecordChild0, // #1 = $src1
/*230659*/              OPC_MoveChild1,
/*230660*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*230663*/              OPC_MoveChild0,
/*230664*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230667*/              OPC_RecordMemRef,
/*230668*/              OPC_RecordNode, // #2 = 'ld' chained node
/*230669*/              OPC_CheckFoldableChainNode,
/*230670*/              OPC_RecordChild1, // #3 = $src2
/*230671*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230673*/              OPC_CheckPredicate, 9, // Predicate_load
/*230675*/              OPC_CheckType, MVT::i64,
/*230677*/              OPC_MoveParent,
/*230678*/              OPC_MoveParent,
/*230679*/              OPC_MoveParent,
/*230680*/              OPC_MoveChild2,
/*230681*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230684*/              OPC_MoveChild0,
/*230685*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230688*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230690*/              OPC_CheckType, MVT::v16i32,
/*230692*/              OPC_MoveParent,
/*230693*/              OPC_MoveParent,
/*230694*/              OPC_CheckType, MVT::v8i64,
/*230696*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230698*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230701*/              OPC_EmitMergeInputChains1_2,
/*230702*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuldq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230715*/            /*Scope*/ 57, /*->230773*/
/*230716*/              OPC_MoveChild0,
/*230717*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*230720*/              OPC_MoveChild0,
/*230721*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230724*/              OPC_RecordMemRef,
/*230725*/              OPC_RecordNode, // #1 = 'ld' chained node
/*230726*/              OPC_CheckFoldableChainNode,
/*230727*/              OPC_RecordChild1, // #2 = $src2
/*230728*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230730*/              OPC_CheckPredicate, 9, // Predicate_load
/*230732*/              OPC_CheckType, MVT::i64,
/*230734*/              OPC_MoveParent,
/*230735*/              OPC_MoveParent,
/*230736*/              OPC_RecordChild1, // #3 = $src1
/*230737*/              OPC_MoveParent,
/*230738*/              OPC_MoveChild2,
/*230739*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230742*/              OPC_MoveChild0,
/*230743*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230746*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230748*/              OPC_CheckType, MVT::v16i32,
/*230750*/              OPC_MoveParent,
/*230751*/              OPC_MoveParent,
/*230752*/              OPC_CheckType, MVT::v8i64,
/*230754*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230756*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230759*/              OPC_EmitMergeInputChains1_1,
/*230760*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuldq:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230773*/            /*Scope*/ 52, /*->230826*/
/*230774*/              OPC_RecordChild0, // #1 = $src1
/*230775*/              OPC_MoveChild1,
/*230776*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230779*/              OPC_RecordMemRef,
/*230780*/              OPC_RecordNode, // #2 = 'ld' chained node
/*230781*/              OPC_CheckFoldableChainNode,
/*230782*/              OPC_RecordChild1, // #3 = $src2
/*230783*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230785*/              OPC_CheckPredicate, 9, // Predicate_load
/*230787*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*230789*/              OPC_MoveParent,
/*230790*/              OPC_MoveParent,
/*230791*/              OPC_MoveChild2,
/*230792*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230795*/              OPC_MoveChild0,
/*230796*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230799*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230801*/              OPC_CheckType, MVT::v16i32,
/*230803*/              OPC_MoveParent,
/*230804*/              OPC_MoveParent,
/*230805*/              OPC_CheckType, MVT::v8i64,
/*230807*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230809*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230812*/              OPC_EmitMergeInputChains1_2,
/*230813*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuldq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMULDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230826*/            /*Scope*/ 52, /*->230879*/
/*230827*/              OPC_MoveChild0,
/*230828*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230831*/              OPC_RecordMemRef,
/*230832*/              OPC_RecordNode, // #1 = 'ld' chained node
/*230833*/              OPC_CheckFoldableChainNode,
/*230834*/              OPC_RecordChild1, // #2 = $src2
/*230835*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230837*/              OPC_CheckPredicate, 9, // Predicate_load
/*230839*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*230841*/              OPC_MoveParent,
/*230842*/              OPC_RecordChild1, // #3 = $src1
/*230843*/              OPC_MoveParent,
/*230844*/              OPC_MoveChild2,
/*230845*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230848*/              OPC_MoveChild0,
/*230849*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230852*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230854*/              OPC_CheckType, MVT::v16i32,
/*230856*/              OPC_MoveParent,
/*230857*/              OPC_MoveParent,
/*230858*/              OPC_CheckType, MVT::v8i64,
/*230860*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230862*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230865*/              OPC_EmitMergeInputChains1_1,
/*230866*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuldq:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMULDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230879*/            0, /*End of Scope*/
/*230880*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(X86ISD::PMULUDQ),// ->231108
/*230884*/            OPC_Scope, 57, /*->230943*/ // 4 children in Scope
/*230886*/              OPC_RecordChild0, // #1 = $src1
/*230887*/              OPC_MoveChild1,
/*230888*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*230891*/              OPC_MoveChild0,
/*230892*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230895*/              OPC_RecordMemRef,
/*230896*/              OPC_RecordNode, // #2 = 'ld' chained node
/*230897*/              OPC_CheckFoldableChainNode,
/*230898*/              OPC_RecordChild1, // #3 = $src2
/*230899*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230901*/              OPC_CheckPredicate, 9, // Predicate_load
/*230903*/              OPC_CheckType, MVT::i64,
/*230905*/              OPC_MoveParent,
/*230906*/              OPC_MoveParent,
/*230907*/              OPC_MoveParent,
/*230908*/              OPC_MoveChild2,
/*230909*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230912*/              OPC_MoveChild0,
/*230913*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230916*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230918*/              OPC_CheckType, MVT::v16i32,
/*230920*/              OPC_MoveParent,
/*230921*/              OPC_MoveParent,
/*230922*/              OPC_CheckType, MVT::v8i64,
/*230924*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230926*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230929*/              OPC_EmitMergeInputChains1_2,
/*230930*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuludq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULUDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230943*/            /*Scope*/ 57, /*->231001*/
/*230944*/              OPC_MoveChild0,
/*230945*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*230948*/              OPC_MoveChild0,
/*230949*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*230952*/              OPC_RecordMemRef,
/*230953*/              OPC_RecordNode, // #1 = 'ld' chained node
/*230954*/              OPC_CheckFoldableChainNode,
/*230955*/              OPC_RecordChild1, // #2 = $src2
/*230956*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230958*/              OPC_CheckPredicate, 9, // Predicate_load
/*230960*/              OPC_CheckType, MVT::i64,
/*230962*/              OPC_MoveParent,
/*230963*/              OPC_MoveParent,
/*230964*/              OPC_RecordChild1, // #3 = $src1
/*230965*/              OPC_MoveParent,
/*230966*/              OPC_MoveChild2,
/*230967*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*230970*/              OPC_MoveChild0,
/*230971*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*230974*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*230976*/              OPC_CheckType, MVT::v16i32,
/*230978*/              OPC_MoveParent,
/*230979*/              OPC_MoveParent,
/*230980*/              OPC_CheckType, MVT::v8i64,
/*230982*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230984*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230987*/              OPC_EmitMergeInputChains1_1,
/*230988*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuludq:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULUDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231001*/            /*Scope*/ 52, /*->231054*/
/*231002*/              OPC_RecordChild0, // #1 = $src1
/*231003*/              OPC_MoveChild1,
/*231004*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231007*/              OPC_RecordMemRef,
/*231008*/              OPC_RecordNode, // #2 = 'ld' chained node
/*231009*/              OPC_CheckFoldableChainNode,
/*231010*/              OPC_RecordChild1, // #3 = $src2
/*231011*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231013*/              OPC_CheckPredicate, 9, // Predicate_load
/*231015*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*231017*/              OPC_MoveParent,
/*231018*/              OPC_MoveParent,
/*231019*/              OPC_MoveChild2,
/*231020*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231023*/              OPC_MoveChild0,
/*231024*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231027*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231029*/              OPC_CheckType, MVT::v16i32,
/*231031*/              OPC_MoveParent,
/*231032*/              OPC_MoveParent,
/*231033*/              OPC_CheckType, MVT::v8i64,
/*231035*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231037*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231040*/              OPC_EmitMergeInputChains1_2,
/*231041*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuludq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMULUDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231054*/            /*Scope*/ 52, /*->231107*/
/*231055*/              OPC_MoveChild0,
/*231056*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231059*/              OPC_RecordMemRef,
/*231060*/              OPC_RecordNode, // #1 = 'ld' chained node
/*231061*/              OPC_CheckFoldableChainNode,
/*231062*/              OPC_RecordChild1, // #2 = $src2
/*231063*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231065*/              OPC_CheckPredicate, 9, // Predicate_load
/*231067*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*231069*/              OPC_MoveParent,
/*231070*/              OPC_RecordChild1, // #3 = $src1
/*231071*/              OPC_MoveParent,
/*231072*/              OPC_MoveChild2,
/*231073*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231076*/              OPC_MoveChild0,
/*231077*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231080*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231082*/              OPC_CheckType, MVT::v16i32,
/*231084*/              OPC_MoveParent,
/*231085*/              OPC_MoveParent,
/*231086*/              OPC_CheckType, MVT::v8i64,
/*231088*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231090*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231093*/              OPC_EmitMergeInputChains1_1,
/*231094*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuludq:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMULUDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231107*/            0, /*End of Scope*/
/*231108*/          /*SwitchOpcode*/ 118, TARGET_VAL(X86ISD::PACKSS),// ->231229
/*231111*/            OPC_RecordChild0, // #1 = $src1
/*231112*/            OPC_CheckChild0Type, MVT::v4i32,
/*231114*/            OPC_MoveChild1,
/*231115*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->231173
/*231119*/              OPC_MoveChild0,
/*231120*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231123*/              OPC_RecordMemRef,
/*231124*/              OPC_RecordNode, // #2 = 'ld' chained node
/*231125*/              OPC_CheckFoldableChainNode,
/*231126*/              OPC_RecordChild1, // #3 = $src2
/*231127*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231129*/              OPC_CheckPredicate, 9, // Predicate_load
/*231131*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*231133*/              OPC_CheckType, MVT::v2i64,
/*231135*/              OPC_MoveParent,
/*231136*/              OPC_MoveParent,
/*231137*/              OPC_MoveParent,
/*231138*/              OPC_MoveChild2,
/*231139*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231142*/              OPC_MoveChild0,
/*231143*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231146*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231148*/              OPC_CheckType, MVT::v4i32,
/*231150*/              OPC_MoveParent,
/*231151*/              OPC_MoveParent,
/*231152*/              OPC_CheckType, MVT::v8i16,
/*231154*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231156*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231159*/              OPC_EmitMergeInputChains1_2,
/*231160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packss:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPACKSSDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231173*/            /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->231228
/*231176*/              OPC_MoveChild0,
/*231177*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231180*/              OPC_RecordMemRef,
/*231181*/              OPC_RecordNode, // #2 = 'ld' chained node
/*231182*/              OPC_CheckFoldableChainNode,
/*231183*/              OPC_RecordChild1, // #3 = $src2
/*231184*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231186*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*231188*/              OPC_CheckType, MVT::i32,
/*231190*/              OPC_MoveParent,
/*231191*/              OPC_MoveParent,
/*231192*/              OPC_MoveParent,
/*231193*/              OPC_MoveChild2,
/*231194*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231197*/              OPC_MoveChild0,
/*231198*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231201*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231203*/              OPC_CheckType, MVT::v4i32,
/*231205*/              OPC_MoveParent,
/*231206*/              OPC_MoveParent,
/*231207*/              OPC_CheckType, MVT::v8i16,
/*231209*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231211*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231214*/              OPC_EmitMergeInputChains1_2,
/*231215*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packss:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPACKSSDWZ128rmbkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231228*/            0, // EndSwitchOpcode
/*231229*/          /*SwitchOpcode*/ 118, TARGET_VAL(X86ISD::PACKUS),// ->231350
/*231232*/            OPC_RecordChild0, // #1 = $src1
/*231233*/            OPC_CheckChild0Type, MVT::v4i32,
/*231235*/            OPC_MoveChild1,
/*231236*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->231294
/*231240*/              OPC_MoveChild0,
/*231241*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231244*/              OPC_RecordMemRef,
/*231245*/              OPC_RecordNode, // #2 = 'ld' chained node
/*231246*/              OPC_CheckFoldableChainNode,
/*231247*/              OPC_RecordChild1, // #3 = $src2
/*231248*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231250*/              OPC_CheckPredicate, 9, // Predicate_load
/*231252*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*231254*/              OPC_CheckType, MVT::v2i64,
/*231256*/              OPC_MoveParent,
/*231257*/              OPC_MoveParent,
/*231258*/              OPC_MoveParent,
/*231259*/              OPC_MoveChild2,
/*231260*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231263*/              OPC_MoveChild0,
/*231264*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231267*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231269*/              OPC_CheckType, MVT::v4i32,
/*231271*/              OPC_MoveParent,
/*231272*/              OPC_MoveParent,
/*231273*/              OPC_CheckType, MVT::v8i16,
/*231275*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231277*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231280*/              OPC_EmitMergeInputChains1_2,
/*231281*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPACKUSDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231294*/            /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->231349
/*231297*/              OPC_MoveChild0,
/*231298*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231301*/              OPC_RecordMemRef,
/*231302*/              OPC_RecordNode, // #2 = 'ld' chained node
/*231303*/              OPC_CheckFoldableChainNode,
/*231304*/              OPC_RecordChild1, // #3 = $src2
/*231305*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231307*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*231309*/              OPC_CheckType, MVT::i32,
/*231311*/              OPC_MoveParent,
/*231312*/              OPC_MoveParent,
/*231313*/              OPC_MoveParent,
/*231314*/              OPC_MoveChild2,
/*231315*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231318*/              OPC_MoveChild0,
/*231319*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231322*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231324*/              OPC_CheckType, MVT::v4i32,
/*231326*/              OPC_MoveParent,
/*231327*/              OPC_MoveParent,
/*231328*/              OPC_CheckType, MVT::v8i16,
/*231330*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231332*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231335*/              OPC_EmitMergeInputChains1_2,
/*231336*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPACKUSDWZ128rmbkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231349*/            0, // EndSwitchOpcode
/*231350*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VPMADDUBSW),// ->231412
/*231353*/            OPC_RecordChild0, // #1 = $src1
/*231354*/            OPC_MoveChild1,
/*231355*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231358*/            OPC_MoveChild0,
/*231359*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231362*/            OPC_RecordMemRef,
/*231363*/            OPC_RecordNode, // #2 = 'ld' chained node
/*231364*/            OPC_CheckFoldableChainNode,
/*231365*/            OPC_RecordChild1, // #3 = $src2
/*231366*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231368*/            OPC_CheckPredicate, 9, // Predicate_load
/*231370*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*231372*/            OPC_CheckType, MVT::v2i64,
/*231374*/            OPC_MoveParent,
/*231375*/            OPC_MoveParent,
/*231376*/            OPC_MoveParent,
/*231377*/            OPC_MoveChild2,
/*231378*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231381*/            OPC_MoveChild0,
/*231382*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231385*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231387*/            OPC_CheckType, MVT::v4i32,
/*231389*/            OPC_MoveParent,
/*231390*/            OPC_MoveParent,
/*231391*/            OPC_CheckType, MVT::v8i16,
/*231393*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231395*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231398*/            OPC_EmitMergeInputChains1_2,
/*231399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vpmaddubsw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMADDUBSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231412*/          /*SwitchOpcode*/ 35|128,4/*547*/, TARGET_VAL(ISD::SMAX),// ->231963
/*231416*/            OPC_Scope, 116, /*->231534*/ // 4 children in Scope
/*231418*/              OPC_RecordChild0, // #1 = $src1
/*231419*/              OPC_MoveChild1,
/*231420*/              OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->231478
/*231424*/                OPC_MoveChild0,
/*231425*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231428*/                OPC_RecordMemRef,
/*231429*/                OPC_RecordNode, // #2 = 'ld' chained node
/*231430*/                OPC_CheckFoldableChainNode,
/*231431*/                OPC_RecordChild1, // #3 = $src2
/*231432*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231434*/                OPC_CheckPredicate, 9, // Predicate_load
/*231436*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*231438*/                OPC_CheckType, MVT::v2i64,
/*231440*/                OPC_MoveParent,
/*231441*/                OPC_MoveParent,
/*231442*/                OPC_MoveParent,
/*231443*/                OPC_MoveChild2,
/*231444*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231447*/                OPC_MoveChild0,
/*231448*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231451*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231453*/                OPC_CheckType, MVT::v4i32,
/*231455*/                OPC_MoveParent,
/*231456*/                OPC_MoveParent,
/*231457*/                OPC_CheckType, MVT::v8i16,
/*231459*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231461*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231464*/                OPC_EmitMergeInputChains1_2,
/*231465*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231478*/              /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->231533
/*231481*/                OPC_MoveChild0,
/*231482*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231485*/                OPC_RecordMemRef,
/*231486*/                OPC_RecordNode, // #2 = 'ld' chained node
/*231487*/                OPC_CheckFoldableChainNode,
/*231488*/                OPC_RecordChild1, // #3 = $src2
/*231489*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231491*/                OPC_CheckPredicate, 9, // Predicate_load
/*231493*/                OPC_CheckType, MVT::i64,
/*231495*/                OPC_MoveParent,
/*231496*/                OPC_MoveParent,
/*231497*/                OPC_MoveParent,
/*231498*/                OPC_MoveChild2,
/*231499*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231502*/                OPC_MoveChild0,
/*231503*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231506*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231508*/                OPC_CheckType, MVT::v16i32,
/*231510*/                OPC_MoveParent,
/*231511*/                OPC_MoveParent,
/*231512*/                OPC_CheckType, MVT::v8i64,
/*231514*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231516*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231519*/                OPC_EmitMergeInputChains1_2,
/*231520*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXSQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231533*/              0, // EndSwitchOpcode
/*231534*/            /*Scope*/ 117, /*->231652*/
/*231535*/              OPC_MoveChild0,
/*231536*/              OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->231595
/*231540*/                OPC_MoveChild0,
/*231541*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231544*/                OPC_RecordMemRef,
/*231545*/                OPC_RecordNode, // #1 = 'ld' chained node
/*231546*/                OPC_CheckFoldableChainNode,
/*231547*/                OPC_RecordChild1, // #2 = $src2
/*231548*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231550*/                OPC_CheckPredicate, 9, // Predicate_load
/*231552*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*231554*/                OPC_CheckType, MVT::v2i64,
/*231556*/                OPC_MoveParent,
/*231557*/                OPC_MoveParent,
/*231558*/                OPC_RecordChild1, // #3 = $src1
/*231559*/                OPC_MoveParent,
/*231560*/                OPC_MoveChild2,
/*231561*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231564*/                OPC_MoveChild0,
/*231565*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231568*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231570*/                OPC_CheckType, MVT::v4i32,
/*231572*/                OPC_MoveParent,
/*231573*/                OPC_MoveParent,
/*231574*/                OPC_CheckType, MVT::v8i16,
/*231576*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231578*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231581*/                OPC_EmitMergeInputChains1_1,
/*231582*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231595*/              /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->231651
/*231598*/                OPC_MoveChild0,
/*231599*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231602*/                OPC_RecordMemRef,
/*231603*/                OPC_RecordNode, // #1 = 'ld' chained node
/*231604*/                OPC_CheckFoldableChainNode,
/*231605*/                OPC_RecordChild1, // #2 = $src2
/*231606*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231608*/                OPC_CheckPredicate, 9, // Predicate_load
/*231610*/                OPC_CheckType, MVT::i64,
/*231612*/                OPC_MoveParent,
/*231613*/                OPC_MoveParent,
/*231614*/                OPC_RecordChild1, // #3 = $src1
/*231615*/                OPC_MoveParent,
/*231616*/                OPC_MoveChild2,
/*231617*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231620*/                OPC_MoveChild0,
/*231621*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231624*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231626*/                OPC_CheckType, MVT::v16i32,
/*231628*/                OPC_MoveParent,
/*231629*/                OPC_MoveParent,
/*231630*/                OPC_CheckType, MVT::v8i64,
/*231632*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231634*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231637*/                OPC_EmitMergeInputChains1_1,
/*231638*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXSQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231651*/              0, // EndSwitchOpcode
/*231652*/            /*Scope*/ 24|128,1/*152*/, /*->231806*/
/*231654*/              OPC_RecordChild0, // #1 = $src1
/*231655*/              OPC_MoveChild1,
/*231656*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->231707
/*231660*/                OPC_MoveChild0,
/*231661*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231664*/                OPC_RecordMemRef,
/*231665*/                OPC_RecordNode, // #2 = 'ld' chained node
/*231666*/                OPC_CheckFoldableChainNode,
/*231667*/                OPC_RecordChild1, // #3 = $src2
/*231668*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231670*/                OPC_CheckPredicate, 9, // Predicate_load
/*231672*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*231674*/                OPC_CheckType, MVT::v4i64,
/*231676*/                OPC_MoveParent,
/*231677*/                OPC_MoveParent,
/*231678*/                OPC_MoveParent,
/*231679*/                OPC_MoveChild2,
/*231680*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231683*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231685*/                OPC_MoveParent,
/*231686*/                OPC_CheckType, MVT::v8i32,
/*231688*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231690*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231693*/                OPC_EmitMergeInputChains1_2,
/*231694*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231707*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->231755
/*231710*/                OPC_MoveChild0,
/*231711*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231714*/                OPC_RecordMemRef,
/*231715*/                OPC_RecordNode, // #2 = 'ld' chained node
/*231716*/                OPC_CheckFoldableChainNode,
/*231717*/                OPC_RecordChild1, // #3 = $src2
/*231718*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231720*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*231722*/                OPC_CheckType, MVT::i32,
/*231724*/                OPC_MoveParent,
/*231725*/                OPC_MoveParent,
/*231726*/                OPC_MoveParent,
/*231727*/                OPC_MoveChild2,
/*231728*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231731*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231733*/                OPC_MoveParent,
/*231734*/                OPC_CheckType, MVT::v8i32,
/*231736*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231738*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231741*/                OPC_EmitMergeInputChains1_2,
/*231742*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231755*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->231805
/*231758*/                OPC_RecordMemRef,
/*231759*/                OPC_RecordNode, // #2 = 'ld' chained node
/*231760*/                OPC_CheckFoldableChainNode,
/*231761*/                OPC_RecordChild1, // #3 = $src2
/*231762*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231764*/                OPC_CheckPredicate, 9, // Predicate_load
/*231766*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*231768*/                OPC_MoveParent,
/*231769*/                OPC_MoveParent,
/*231770*/                OPC_MoveChild2,
/*231771*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231774*/                OPC_MoveChild0,
/*231775*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231778*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231780*/                OPC_CheckType, MVT::v16i32,
/*231782*/                OPC_MoveParent,
/*231783*/                OPC_MoveParent,
/*231784*/                OPC_CheckType, MVT::v8i64,
/*231786*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231788*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231791*/                OPC_EmitMergeInputChains1_2,
/*231792*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMAXSQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231805*/              0, // EndSwitchOpcode
/*231806*/            /*Scope*/ 26|128,1/*154*/, /*->231962*/
/*231808*/              OPC_MoveChild0,
/*231809*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->231861
/*231813*/                OPC_MoveChild0,
/*231814*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231817*/                OPC_RecordMemRef,
/*231818*/                OPC_RecordNode, // #1 = 'ld' chained node
/*231819*/                OPC_CheckFoldableChainNode,
/*231820*/                OPC_RecordChild1, // #2 = $src2
/*231821*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231823*/                OPC_CheckPredicate, 9, // Predicate_load
/*231825*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*231827*/                OPC_CheckType, MVT::v4i64,
/*231829*/                OPC_MoveParent,
/*231830*/                OPC_MoveParent,
/*231831*/                OPC_RecordChild1, // #3 = $src1
/*231832*/                OPC_MoveParent,
/*231833*/                OPC_MoveChild2,
/*231834*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231837*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231839*/                OPC_MoveParent,
/*231840*/                OPC_CheckType, MVT::v8i32,
/*231842*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231844*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231847*/                OPC_EmitMergeInputChains1_1,
/*231848*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231861*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->231910
/*231864*/                OPC_MoveChild0,
/*231865*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231868*/                OPC_RecordMemRef,
/*231869*/                OPC_RecordNode, // #1 = 'ld' chained node
/*231870*/                OPC_CheckFoldableChainNode,
/*231871*/                OPC_RecordChild1, // #2 = $src2
/*231872*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231874*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*231876*/                OPC_CheckType, MVT::i32,
/*231878*/                OPC_MoveParent,
/*231879*/                OPC_MoveParent,
/*231880*/                OPC_RecordChild1, // #3 = $src1
/*231881*/                OPC_MoveParent,
/*231882*/                OPC_MoveChild2,
/*231883*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231886*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231888*/                OPC_MoveParent,
/*231889*/                OPC_CheckType, MVT::v8i32,
/*231891*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231893*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231896*/                OPC_EmitMergeInputChains1_1,
/*231897*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231910*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->231961
/*231913*/                OPC_RecordMemRef,
/*231914*/                OPC_RecordNode, // #1 = 'ld' chained node
/*231915*/                OPC_CheckFoldableChainNode,
/*231916*/                OPC_RecordChild1, // #2 = $src2
/*231917*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231919*/                OPC_CheckPredicate, 9, // Predicate_load
/*231921*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*231923*/                OPC_MoveParent,
/*231924*/                OPC_RecordChild1, // #3 = $src1
/*231925*/                OPC_MoveParent,
/*231926*/                OPC_MoveChild2,
/*231927*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231930*/                OPC_MoveChild0,
/*231931*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*231934*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*231936*/                OPC_CheckType, MVT::v16i32,
/*231938*/                OPC_MoveParent,
/*231939*/                OPC_MoveParent,
/*231940*/                OPC_CheckType, MVT::v8i64,
/*231942*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231944*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231947*/                OPC_EmitMergeInputChains1_1,
/*231948*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMAXSQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231961*/              0, // EndSwitchOpcode
/*231962*/            0, /*End of Scope*/
/*231963*/          /*SwitchOpcode*/ 35|128,4/*547*/, TARGET_VAL(ISD::UMAX),// ->232514
/*231967*/            OPC_Scope, 116, /*->232085*/ // 4 children in Scope
/*231969*/              OPC_RecordChild0, // #1 = $src1
/*231970*/              OPC_MoveChild1,
/*231971*/              OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->232029
/*231975*/                OPC_MoveChild0,
/*231976*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231979*/                OPC_RecordMemRef,
/*231980*/                OPC_RecordNode, // #2 = 'ld' chained node
/*231981*/                OPC_CheckFoldableChainNode,
/*231982*/                OPC_RecordChild1, // #3 = $src2
/*231983*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231985*/                OPC_CheckPredicate, 9, // Predicate_load
/*231987*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*231989*/                OPC_CheckType, MVT::v2i64,
/*231991*/                OPC_MoveParent,
/*231992*/                OPC_MoveParent,
/*231993*/                OPC_MoveParent,
/*231994*/                OPC_MoveChild2,
/*231995*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*231998*/                OPC_MoveChild0,
/*231999*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232002*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232004*/                OPC_CheckType, MVT::v4i32,
/*232006*/                OPC_MoveParent,
/*232007*/                OPC_MoveParent,
/*232008*/                OPC_CheckType, MVT::v8i16,
/*232010*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*232012*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232015*/                OPC_EmitMergeInputChains1_2,
/*232016*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232029*/              /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->232084
/*232032*/                OPC_MoveChild0,
/*232033*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232036*/                OPC_RecordMemRef,
/*232037*/                OPC_RecordNode, // #2 = 'ld' chained node
/*232038*/                OPC_CheckFoldableChainNode,
/*232039*/                OPC_RecordChild1, // #3 = $src2
/*232040*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232042*/                OPC_CheckPredicate, 9, // Predicate_load
/*232044*/                OPC_CheckType, MVT::i64,
/*232046*/                OPC_MoveParent,
/*232047*/                OPC_MoveParent,
/*232048*/                OPC_MoveParent,
/*232049*/                OPC_MoveChild2,
/*232050*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*232053*/                OPC_MoveChild0,
/*232054*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232057*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232059*/                OPC_CheckType, MVT::v16i32,
/*232061*/                OPC_MoveParent,
/*232062*/                OPC_MoveParent,
/*232063*/                OPC_CheckType, MVT::v8i64,
/*232065*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232067*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232070*/                OPC_EmitMergeInputChains1_2,
/*232071*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXUQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232084*/              0, // EndSwitchOpcode
/*232085*/            /*Scope*/ 117, /*->232203*/
/*232086*/              OPC_MoveChild0,
/*232087*/              OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->232146
/*232091*/                OPC_MoveChild0,
/*232092*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232095*/                OPC_RecordMemRef,
/*232096*/                OPC_RecordNode, // #1 = 'ld' chained node
/*232097*/                OPC_CheckFoldableChainNode,
/*232098*/                OPC_RecordChild1, // #2 = $src2
/*232099*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232101*/                OPC_CheckPredicate, 9, // Predicate_load
/*232103*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*232105*/                OPC_CheckType, MVT::v2i64,
/*232107*/                OPC_MoveParent,
/*232108*/                OPC_MoveParent,
/*232109*/                OPC_RecordChild1, // #3 = $src1
/*232110*/                OPC_MoveParent,
/*232111*/                OPC_MoveChild2,
/*232112*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*232115*/                OPC_MoveChild0,
/*232116*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232119*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232121*/                OPC_CheckType, MVT::v4i32,
/*232123*/                OPC_MoveParent,
/*232124*/                OPC_MoveParent,
/*232125*/                OPC_CheckType, MVT::v8i16,
/*232127*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*232129*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232132*/                OPC_EmitMergeInputChains1_1,
/*232133*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232146*/              /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->232202
/*232149*/                OPC_MoveChild0,
/*232150*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232153*/                OPC_RecordMemRef,
/*232154*/                OPC_RecordNode, // #1 = 'ld' chained node
/*232155*/                OPC_CheckFoldableChainNode,
/*232156*/                OPC_RecordChild1, // #2 = $src2
/*232157*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232159*/                OPC_CheckPredicate, 9, // Predicate_load
/*232161*/                OPC_CheckType, MVT::i64,
/*232163*/                OPC_MoveParent,
/*232164*/                OPC_MoveParent,
/*232165*/                OPC_RecordChild1, // #3 = $src1
/*232166*/                OPC_MoveParent,
/*232167*/                OPC_MoveChild2,
/*232168*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*232171*/                OPC_MoveChild0,
/*232172*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232175*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232177*/                OPC_CheckType, MVT::v16i32,
/*232179*/                OPC_MoveParent,
/*232180*/                OPC_MoveParent,
/*232181*/                OPC_CheckType, MVT::v8i64,
/*232183*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232185*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232188*/                OPC_EmitMergeInputChains1_1,
/*232189*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXUQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232202*/              0, // EndSwitchOpcode
/*232203*/            /*Scope*/ 24|128,1/*152*/, /*->232357*/
/*232205*/              OPC_RecordChild0, // #1 = $src1
/*232206*/              OPC_MoveChild1,
/*232207*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->232258
/*232211*/                OPC_MoveChild0,
/*232212*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232215*/                OPC_RecordMemRef,
/*232216*/                OPC_RecordNode, // #2 = 'ld' chained node
/*232217*/                OPC_CheckFoldableChainNode,
/*232218*/                OPC_RecordChild1, // #3 = $src2
/*232219*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232221*/                OPC_CheckPredicate, 9, // Predicate_load
/*232223*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*232225*/                OPC_CheckType, MVT::v4i64,
/*232227*/                OPC_MoveParent,
/*232228*/                OPC_MoveParent,
/*232229*/                OPC_MoveParent,
/*232230*/                OPC_MoveChild2,
/*232231*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232234*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232236*/                OPC_MoveParent,
/*232237*/                OPC_CheckType, MVT::v8i32,
/*232239*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*232241*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232244*/                OPC_EmitMergeInputChains1_2,
/*232245*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232258*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->232306
/*232261*/                OPC_MoveChild0,
/*232262*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232265*/                OPC_RecordMemRef,
/*232266*/                OPC_RecordNode, // #2 = 'ld' chained node
/*232267*/                OPC_CheckFoldableChainNode,
/*232268*/                OPC_RecordChild1, // #3 = $src2
/*232269*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232271*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*232273*/                OPC_CheckType, MVT::i32,
/*232275*/                OPC_MoveParent,
/*232276*/                OPC_MoveParent,
/*232277*/                OPC_MoveParent,
/*232278*/                OPC_MoveChild2,
/*232279*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232282*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232284*/                OPC_MoveParent,
/*232285*/                OPC_CheckType, MVT::v8i32,
/*232287*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*232289*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232292*/                OPC_EmitMergeInputChains1_2,
/*232293*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232306*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->232356
/*232309*/                OPC_RecordMemRef,
/*232310*/                OPC_RecordNode, // #2 = 'ld' chained node
/*232311*/                OPC_CheckFoldableChainNode,
/*232312*/                OPC_RecordChild1, // #3 = $src2
/*232313*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232315*/                OPC_CheckPredicate, 9, // Predicate_load
/*232317*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*232319*/                OPC_MoveParent,
/*232320*/                OPC_MoveParent,
/*232321*/                OPC_MoveChild2,
/*232322*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*232325*/                OPC_MoveChild0,
/*232326*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232329*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232331*/                OPC_CheckType, MVT::v16i32,
/*232333*/                OPC_MoveParent,
/*232334*/                OPC_MoveParent,
/*232335*/                OPC_CheckType, MVT::v8i64,
/*232337*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232339*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232342*/                OPC_EmitMergeInputChains1_2,
/*232343*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMAXUQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232356*/              0, // EndSwitchOpcode
/*232357*/            /*Scope*/ 26|128,1/*154*/, /*->232513*/
/*232359*/              OPC_MoveChild0,
/*232360*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->232412
/*232364*/                OPC_MoveChild0,
/*232365*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232368*/                OPC_RecordMemRef,
/*232369*/                OPC_RecordNode, // #1 = 'ld' chained node
/*232370*/                OPC_CheckFoldableChainNode,
/*232371*/                OPC_RecordChild1, // #2 = $src2
/*232372*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232374*/                OPC_CheckPredicate, 9, // Predicate_load
/*232376*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*232378*/                OPC_CheckType, MVT::v4i64,
/*232380*/                OPC_MoveParent,
/*232381*/                OPC_MoveParent,
/*232382*/                OPC_RecordChild1, // #3 = $src1
/*232383*/                OPC_MoveParent,
/*232384*/                OPC_MoveChild2,
/*232385*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232388*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232390*/                OPC_MoveParent,
/*232391*/                OPC_CheckType, MVT::v8i32,
/*232393*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*232395*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232398*/                OPC_EmitMergeInputChains1_1,
/*232399*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232412*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->232461
/*232415*/                OPC_MoveChild0,
/*232416*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232419*/                OPC_RecordMemRef,
/*232420*/                OPC_RecordNode, // #1 = 'ld' chained node
/*232421*/                OPC_CheckFoldableChainNode,
/*232422*/                OPC_RecordChild1, // #2 = $src2
/*232423*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232425*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*232427*/                OPC_CheckType, MVT::i32,
/*232429*/                OPC_MoveParent,
/*232430*/                OPC_MoveParent,
/*232431*/                OPC_RecordChild1, // #3 = $src1
/*232432*/                OPC_MoveParent,
/*232433*/                OPC_MoveChild2,
/*232434*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232437*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232439*/                OPC_MoveParent,
/*232440*/                OPC_CheckType, MVT::v8i32,
/*232442*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*232444*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232447*/                OPC_EmitMergeInputChains1_1,
/*232448*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232461*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->232512
/*232464*/                OPC_RecordMemRef,
/*232465*/                OPC_RecordNode, // #1 = 'ld' chained node
/*232466*/                OPC_CheckFoldableChainNode,
/*232467*/                OPC_RecordChild1, // #2 = $src2
/*232468*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232470*/                OPC_CheckPredicate, 9, // Predicate_load
/*232472*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*232474*/                OPC_MoveParent,
/*232475*/                OPC_RecordChild1, // #3 = $src1
/*232476*/                OPC_MoveParent,
/*232477*/                OPC_MoveChild2,
/*232478*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*232481*/                OPC_MoveChild0,
/*232482*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232485*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232487*/                OPC_CheckType, MVT::v16i32,
/*232489*/                OPC_MoveParent,
/*232490*/                OPC_MoveParent,
/*232491*/                OPC_CheckType, MVT::v8i64,
/*232493*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232495*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232498*/                OPC_EmitMergeInputChains1_1,
/*232499*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMAXUQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232512*/              0, // EndSwitchOpcode
/*232513*/            0, /*End of Scope*/
/*232514*/          /*SwitchOpcode*/ 35|128,4/*547*/, TARGET_VAL(ISD::SMIN),// ->233065
/*232518*/            OPC_Scope, 116, /*->232636*/ // 4 children in Scope
/*232520*/              OPC_RecordChild0, // #1 = $src1
/*232521*/              OPC_MoveChild1,
/*232522*/              OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->232580
/*232526*/                OPC_MoveChild0,
/*232527*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232530*/                OPC_RecordMemRef,
/*232531*/                OPC_RecordNode, // #2 = 'ld' chained node
/*232532*/                OPC_CheckFoldableChainNode,
/*232533*/                OPC_RecordChild1, // #3 = $src2
/*232534*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232536*/                OPC_CheckPredicate, 9, // Predicate_load
/*232538*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*232540*/                OPC_CheckType, MVT::v2i64,
/*232542*/                OPC_MoveParent,
/*232543*/                OPC_MoveParent,
/*232544*/                OPC_MoveParent,
/*232545*/                OPC_MoveChild2,
/*232546*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*232549*/                OPC_MoveChild0,
/*232550*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232553*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232555*/                OPC_CheckType, MVT::v4i32,
/*232557*/                OPC_MoveParent,
/*232558*/                OPC_MoveParent,
/*232559*/                OPC_CheckType, MVT::v8i16,
/*232561*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*232563*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232566*/                OPC_EmitMergeInputChains1_2,
/*232567*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232580*/              /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->232635
/*232583*/                OPC_MoveChild0,
/*232584*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232587*/                OPC_RecordMemRef,
/*232588*/                OPC_RecordNode, // #2 = 'ld' chained node
/*232589*/                OPC_CheckFoldableChainNode,
/*232590*/                OPC_RecordChild1, // #3 = $src2
/*232591*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232593*/                OPC_CheckPredicate, 9, // Predicate_load
/*232595*/                OPC_CheckType, MVT::i64,
/*232597*/                OPC_MoveParent,
/*232598*/                OPC_MoveParent,
/*232599*/                OPC_MoveParent,
/*232600*/                OPC_MoveChild2,
/*232601*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*232604*/                OPC_MoveChild0,
/*232605*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232608*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232610*/                OPC_CheckType, MVT::v16i32,
/*232612*/                OPC_MoveParent,
/*232613*/                OPC_MoveParent,
/*232614*/                OPC_CheckType, MVT::v8i64,
/*232616*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232618*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232621*/                OPC_EmitMergeInputChains1_2,
/*232622*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINSQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232635*/              0, // EndSwitchOpcode
/*232636*/            /*Scope*/ 117, /*->232754*/
/*232637*/              OPC_MoveChild0,
/*232638*/              OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->232697
/*232642*/                OPC_MoveChild0,
/*232643*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232646*/                OPC_RecordMemRef,
/*232647*/                OPC_RecordNode, // #1 = 'ld' chained node
/*232648*/                OPC_CheckFoldableChainNode,
/*232649*/                OPC_RecordChild1, // #2 = $src2
/*232650*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232652*/                OPC_CheckPredicate, 9, // Predicate_load
/*232654*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*232656*/                OPC_CheckType, MVT::v2i64,
/*232658*/                OPC_MoveParent,
/*232659*/                OPC_MoveParent,
/*232660*/                OPC_RecordChild1, // #3 = $src1
/*232661*/                OPC_MoveParent,
/*232662*/                OPC_MoveChild2,
/*232663*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*232666*/                OPC_MoveChild0,
/*232667*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232670*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232672*/                OPC_CheckType, MVT::v4i32,
/*232674*/                OPC_MoveParent,
/*232675*/                OPC_MoveParent,
/*232676*/                OPC_CheckType, MVT::v8i16,
/*232678*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*232680*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232683*/                OPC_EmitMergeInputChains1_1,
/*232684*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232697*/              /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->232753
/*232700*/                OPC_MoveChild0,
/*232701*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232704*/                OPC_RecordMemRef,
/*232705*/                OPC_RecordNode, // #1 = 'ld' chained node
/*232706*/                OPC_CheckFoldableChainNode,
/*232707*/                OPC_RecordChild1, // #2 = $src2
/*232708*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232710*/                OPC_CheckPredicate, 9, // Predicate_load
/*232712*/                OPC_CheckType, MVT::i64,
/*232714*/                OPC_MoveParent,
/*232715*/                OPC_MoveParent,
/*232716*/                OPC_RecordChild1, // #3 = $src1
/*232717*/                OPC_MoveParent,
/*232718*/                OPC_MoveChild2,
/*232719*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*232722*/                OPC_MoveChild0,
/*232723*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232726*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232728*/                OPC_CheckType, MVT::v16i32,
/*232730*/                OPC_MoveParent,
/*232731*/                OPC_MoveParent,
/*232732*/                OPC_CheckType, MVT::v8i64,
/*232734*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232736*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232739*/                OPC_EmitMergeInputChains1_1,
/*232740*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINSQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232753*/              0, // EndSwitchOpcode
/*232754*/            /*Scope*/ 24|128,1/*152*/, /*->232908*/
/*232756*/              OPC_RecordChild0, // #1 = $src1
/*232757*/              OPC_MoveChild1,
/*232758*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->232809
/*232762*/                OPC_MoveChild0,
/*232763*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232766*/                OPC_RecordMemRef,
/*232767*/                OPC_RecordNode, // #2 = 'ld' chained node
/*232768*/                OPC_CheckFoldableChainNode,
/*232769*/                OPC_RecordChild1, // #3 = $src2
/*232770*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232772*/                OPC_CheckPredicate, 9, // Predicate_load
/*232774*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*232776*/                OPC_CheckType, MVT::v4i64,
/*232778*/                OPC_MoveParent,
/*232779*/                OPC_MoveParent,
/*232780*/                OPC_MoveParent,
/*232781*/                OPC_MoveChild2,
/*232782*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232785*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232787*/                OPC_MoveParent,
/*232788*/                OPC_CheckType, MVT::v8i32,
/*232790*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*232792*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232795*/                OPC_EmitMergeInputChains1_2,
/*232796*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232809*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->232857
/*232812*/                OPC_MoveChild0,
/*232813*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232816*/                OPC_RecordMemRef,
/*232817*/                OPC_RecordNode, // #2 = 'ld' chained node
/*232818*/                OPC_CheckFoldableChainNode,
/*232819*/                OPC_RecordChild1, // #3 = $src2
/*232820*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232822*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*232824*/                OPC_CheckType, MVT::i32,
/*232826*/                OPC_MoveParent,
/*232827*/                OPC_MoveParent,
/*232828*/                OPC_MoveParent,
/*232829*/                OPC_MoveChild2,
/*232830*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232833*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232835*/                OPC_MoveParent,
/*232836*/                OPC_CheckType, MVT::v8i32,
/*232838*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*232840*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232843*/                OPC_EmitMergeInputChains1_2,
/*232844*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232857*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->232907
/*232860*/                OPC_RecordMemRef,
/*232861*/                OPC_RecordNode, // #2 = 'ld' chained node
/*232862*/                OPC_CheckFoldableChainNode,
/*232863*/                OPC_RecordChild1, // #3 = $src2
/*232864*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232866*/                OPC_CheckPredicate, 9, // Predicate_load
/*232868*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*232870*/                OPC_MoveParent,
/*232871*/                OPC_MoveParent,
/*232872*/                OPC_MoveChild2,
/*232873*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*232876*/                OPC_MoveChild0,
/*232877*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232880*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232882*/                OPC_CheckType, MVT::v16i32,
/*232884*/                OPC_MoveParent,
/*232885*/                OPC_MoveParent,
/*232886*/                OPC_CheckType, MVT::v8i64,
/*232888*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232890*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232893*/                OPC_EmitMergeInputChains1_2,
/*232894*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMINSQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232907*/              0, // EndSwitchOpcode
/*232908*/            /*Scope*/ 26|128,1/*154*/, /*->233064*/
/*232910*/              OPC_MoveChild0,
/*232911*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->232963
/*232915*/                OPC_MoveChild0,
/*232916*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232919*/                OPC_RecordMemRef,
/*232920*/                OPC_RecordNode, // #1 = 'ld' chained node
/*232921*/                OPC_CheckFoldableChainNode,
/*232922*/                OPC_RecordChild1, // #2 = $src2
/*232923*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232925*/                OPC_CheckPredicate, 9, // Predicate_load
/*232927*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*232929*/                OPC_CheckType, MVT::v4i64,
/*232931*/                OPC_MoveParent,
/*232932*/                OPC_MoveParent,
/*232933*/                OPC_RecordChild1, // #3 = $src1
/*232934*/                OPC_MoveParent,
/*232935*/                OPC_MoveChild2,
/*232936*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232939*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232941*/                OPC_MoveParent,
/*232942*/                OPC_CheckType, MVT::v8i32,
/*232944*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*232946*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232949*/                OPC_EmitMergeInputChains1_1,
/*232950*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232963*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->233012
/*232966*/                OPC_MoveChild0,
/*232967*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*232970*/                OPC_RecordMemRef,
/*232971*/                OPC_RecordNode, // #1 = 'ld' chained node
/*232972*/                OPC_CheckFoldableChainNode,
/*232973*/                OPC_RecordChild1, // #2 = $src2
/*232974*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232976*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*232978*/                OPC_CheckType, MVT::i32,
/*232980*/                OPC_MoveParent,
/*232981*/                OPC_MoveParent,
/*232982*/                OPC_RecordChild1, // #3 = $src1
/*232983*/                OPC_MoveParent,
/*232984*/                OPC_MoveChild2,
/*232985*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*232988*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*232990*/                OPC_MoveParent,
/*232991*/                OPC_CheckType, MVT::v8i32,
/*232993*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*232995*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232998*/                OPC_EmitMergeInputChains1_1,
/*232999*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233012*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->233063
/*233015*/                OPC_RecordMemRef,
/*233016*/                OPC_RecordNode, // #1 = 'ld' chained node
/*233017*/                OPC_CheckFoldableChainNode,
/*233018*/                OPC_RecordChild1, // #2 = $src2
/*233019*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233021*/                OPC_CheckPredicate, 9, // Predicate_load
/*233023*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*233025*/                OPC_MoveParent,
/*233026*/                OPC_RecordChild1, // #3 = $src1
/*233027*/                OPC_MoveParent,
/*233028*/                OPC_MoveChild2,
/*233029*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233032*/                OPC_MoveChild0,
/*233033*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233036*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233038*/                OPC_CheckType, MVT::v16i32,
/*233040*/                OPC_MoveParent,
/*233041*/                OPC_MoveParent,
/*233042*/                OPC_CheckType, MVT::v8i64,
/*233044*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233046*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233049*/                OPC_EmitMergeInputChains1_1,
/*233050*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMINSQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233063*/              0, // EndSwitchOpcode
/*233064*/            0, /*End of Scope*/
/*233065*/          /*SwitchOpcode*/ 35|128,4/*547*/, TARGET_VAL(ISD::UMIN),// ->233616
/*233069*/            OPC_Scope, 116, /*->233187*/ // 4 children in Scope
/*233071*/              OPC_RecordChild0, // #1 = $src1
/*233072*/              OPC_MoveChild1,
/*233073*/              OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->233131
/*233077*/                OPC_MoveChild0,
/*233078*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233081*/                OPC_RecordMemRef,
/*233082*/                OPC_RecordNode, // #2 = 'ld' chained node
/*233083*/                OPC_CheckFoldableChainNode,
/*233084*/                OPC_RecordChild1, // #3 = $src2
/*233085*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233087*/                OPC_CheckPredicate, 9, // Predicate_load
/*233089*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*233091*/                OPC_CheckType, MVT::v2i64,
/*233093*/                OPC_MoveParent,
/*233094*/                OPC_MoveParent,
/*233095*/                OPC_MoveParent,
/*233096*/                OPC_MoveChild2,
/*233097*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233100*/                OPC_MoveChild0,
/*233101*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233104*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233106*/                OPC_CheckType, MVT::v4i32,
/*233108*/                OPC_MoveParent,
/*233109*/                OPC_MoveParent,
/*233110*/                OPC_CheckType, MVT::v8i16,
/*233112*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*233114*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233117*/                OPC_EmitMergeInputChains1_2,
/*233118*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233131*/              /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->233186
/*233134*/                OPC_MoveChild0,
/*233135*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233138*/                OPC_RecordMemRef,
/*233139*/                OPC_RecordNode, // #2 = 'ld' chained node
/*233140*/                OPC_CheckFoldableChainNode,
/*233141*/                OPC_RecordChild1, // #3 = $src2
/*233142*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233144*/                OPC_CheckPredicate, 9, // Predicate_load
/*233146*/                OPC_CheckType, MVT::i64,
/*233148*/                OPC_MoveParent,
/*233149*/                OPC_MoveParent,
/*233150*/                OPC_MoveParent,
/*233151*/                OPC_MoveChild2,
/*233152*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233155*/                OPC_MoveChild0,
/*233156*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233159*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233161*/                OPC_CheckType, MVT::v16i32,
/*233163*/                OPC_MoveParent,
/*233164*/                OPC_MoveParent,
/*233165*/                OPC_CheckType, MVT::v8i64,
/*233167*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233169*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233172*/                OPC_EmitMergeInputChains1_2,
/*233173*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINUQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233186*/              0, // EndSwitchOpcode
/*233187*/            /*Scope*/ 117, /*->233305*/
/*233188*/              OPC_MoveChild0,
/*233189*/              OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->233248
/*233193*/                OPC_MoveChild0,
/*233194*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233197*/                OPC_RecordMemRef,
/*233198*/                OPC_RecordNode, // #1 = 'ld' chained node
/*233199*/                OPC_CheckFoldableChainNode,
/*233200*/                OPC_RecordChild1, // #2 = $src2
/*233201*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233203*/                OPC_CheckPredicate, 9, // Predicate_load
/*233205*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*233207*/                OPC_CheckType, MVT::v2i64,
/*233209*/                OPC_MoveParent,
/*233210*/                OPC_MoveParent,
/*233211*/                OPC_RecordChild1, // #3 = $src1
/*233212*/                OPC_MoveParent,
/*233213*/                OPC_MoveChild2,
/*233214*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233217*/                OPC_MoveChild0,
/*233218*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233221*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233223*/                OPC_CheckType, MVT::v4i32,
/*233225*/                OPC_MoveParent,
/*233226*/                OPC_MoveParent,
/*233227*/                OPC_CheckType, MVT::v8i16,
/*233229*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*233231*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233234*/                OPC_EmitMergeInputChains1_1,
/*233235*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233248*/              /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->233304
/*233251*/                OPC_MoveChild0,
/*233252*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233255*/                OPC_RecordMemRef,
/*233256*/                OPC_RecordNode, // #1 = 'ld' chained node
/*233257*/                OPC_CheckFoldableChainNode,
/*233258*/                OPC_RecordChild1, // #2 = $src2
/*233259*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233261*/                OPC_CheckPredicate, 9, // Predicate_load
/*233263*/                OPC_CheckType, MVT::i64,
/*233265*/                OPC_MoveParent,
/*233266*/                OPC_MoveParent,
/*233267*/                OPC_RecordChild1, // #3 = $src1
/*233268*/                OPC_MoveParent,
/*233269*/                OPC_MoveChild2,
/*233270*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233273*/                OPC_MoveChild0,
/*233274*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233277*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233279*/                OPC_CheckType, MVT::v16i32,
/*233281*/                OPC_MoveParent,
/*233282*/                OPC_MoveParent,
/*233283*/                OPC_CheckType, MVT::v8i64,
/*233285*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233287*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233290*/                OPC_EmitMergeInputChains1_1,
/*233291*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINUQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233304*/              0, // EndSwitchOpcode
/*233305*/            /*Scope*/ 24|128,1/*152*/, /*->233459*/
/*233307*/              OPC_RecordChild0, // #1 = $src1
/*233308*/              OPC_MoveChild1,
/*233309*/              OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->233360
/*233313*/                OPC_MoveChild0,
/*233314*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233317*/                OPC_RecordMemRef,
/*233318*/                OPC_RecordNode, // #2 = 'ld' chained node
/*233319*/                OPC_CheckFoldableChainNode,
/*233320*/                OPC_RecordChild1, // #3 = $src2
/*233321*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233323*/                OPC_CheckPredicate, 9, // Predicate_load
/*233325*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*233327*/                OPC_CheckType, MVT::v4i64,
/*233329*/                OPC_MoveParent,
/*233330*/                OPC_MoveParent,
/*233331*/                OPC_MoveParent,
/*233332*/                OPC_MoveChild2,
/*233333*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233336*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233338*/                OPC_MoveParent,
/*233339*/                OPC_CheckType, MVT::v8i32,
/*233341*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*233343*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233346*/                OPC_EmitMergeInputChains1_2,
/*233347*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233360*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->233408
/*233363*/                OPC_MoveChild0,
/*233364*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233367*/                OPC_RecordMemRef,
/*233368*/                OPC_RecordNode, // #2 = 'ld' chained node
/*233369*/                OPC_CheckFoldableChainNode,
/*233370*/                OPC_RecordChild1, // #3 = $src2
/*233371*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233373*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*233375*/                OPC_CheckType, MVT::i32,
/*233377*/                OPC_MoveParent,
/*233378*/                OPC_MoveParent,
/*233379*/                OPC_MoveParent,
/*233380*/                OPC_MoveChild2,
/*233381*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233384*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233386*/                OPC_MoveParent,
/*233387*/                OPC_CheckType, MVT::v8i32,
/*233389*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*233391*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233394*/                OPC_EmitMergeInputChains1_2,
/*233395*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233408*/              /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->233458
/*233411*/                OPC_RecordMemRef,
/*233412*/                OPC_RecordNode, // #2 = 'ld' chained node
/*233413*/                OPC_CheckFoldableChainNode,
/*233414*/                OPC_RecordChild1, // #3 = $src2
/*233415*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233417*/                OPC_CheckPredicate, 9, // Predicate_load
/*233419*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*233421*/                OPC_MoveParent,
/*233422*/                OPC_MoveParent,
/*233423*/                OPC_MoveChild2,
/*233424*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233427*/                OPC_MoveChild0,
/*233428*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233431*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233433*/                OPC_CheckType, MVT::v16i32,
/*233435*/                OPC_MoveParent,
/*233436*/                OPC_MoveParent,
/*233437*/                OPC_CheckType, MVT::v8i64,
/*233439*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233441*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233444*/                OPC_EmitMergeInputChains1_2,
/*233445*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMINUQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233458*/              0, // EndSwitchOpcode
/*233459*/            /*Scope*/ 26|128,1/*154*/, /*->233615*/
/*233461*/              OPC_MoveChild0,
/*233462*/              OPC_SwitchOpcode /*3 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->233514
/*233466*/                OPC_MoveChild0,
/*233467*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233470*/                OPC_RecordMemRef,
/*233471*/                OPC_RecordNode, // #1 = 'ld' chained node
/*233472*/                OPC_CheckFoldableChainNode,
/*233473*/                OPC_RecordChild1, // #2 = $src2
/*233474*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233476*/                OPC_CheckPredicate, 9, // Predicate_load
/*233478*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*233480*/                OPC_CheckType, MVT::v4i64,
/*233482*/                OPC_MoveParent,
/*233483*/                OPC_MoveParent,
/*233484*/                OPC_RecordChild1, // #3 = $src1
/*233485*/                OPC_MoveParent,
/*233486*/                OPC_MoveChild2,
/*233487*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233490*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233492*/                OPC_MoveParent,
/*233493*/                OPC_CheckType, MVT::v8i32,
/*233495*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*233497*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233500*/                OPC_EmitMergeInputChains1_1,
/*233501*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233514*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->233563
/*233517*/                OPC_MoveChild0,
/*233518*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233521*/                OPC_RecordMemRef,
/*233522*/                OPC_RecordNode, // #1 = 'ld' chained node
/*233523*/                OPC_CheckFoldableChainNode,
/*233524*/                OPC_RecordChild1, // #2 = $src2
/*233525*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233527*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*233529*/                OPC_CheckType, MVT::i32,
/*233531*/                OPC_MoveParent,
/*233532*/                OPC_MoveParent,
/*233533*/                OPC_RecordChild1, // #3 = $src1
/*233534*/                OPC_MoveParent,
/*233535*/                OPC_MoveChild2,
/*233536*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233539*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233541*/                OPC_MoveParent,
/*233542*/                OPC_CheckType, MVT::v8i32,
/*233544*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*233546*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233549*/                OPC_EmitMergeInputChains1_1,
/*233550*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233563*/              /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->233614
/*233566*/                OPC_RecordMemRef,
/*233567*/                OPC_RecordNode, // #1 = 'ld' chained node
/*233568*/                OPC_CheckFoldableChainNode,
/*233569*/                OPC_RecordChild1, // #2 = $src2
/*233570*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233572*/                OPC_CheckPredicate, 9, // Predicate_load
/*233574*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*233576*/                OPC_MoveParent,
/*233577*/                OPC_RecordChild1, // #3 = $src1
/*233578*/                OPC_MoveParent,
/*233579*/                OPC_MoveChild2,
/*233580*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233583*/                OPC_MoveChild0,
/*233584*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233587*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233589*/                OPC_CheckType, MVT::v16i32,
/*233591*/                OPC_MoveParent,
/*233592*/                OPC_MoveParent,
/*233593*/                OPC_CheckType, MVT::v8i64,
/*233595*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233597*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233600*/                OPC_EmitMergeInputChains1_1,
/*233601*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPMINUQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233614*/              0, // EndSwitchOpcode
/*233615*/            0, /*End of Scope*/
/*233616*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(ISD::AND),// ->233844
/*233620*/            OPC_Scope, 57, /*->233679*/ // 4 children in Scope
/*233622*/              OPC_RecordChild0, // #1 = $src1
/*233623*/              OPC_MoveChild1,
/*233624*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*233627*/              OPC_MoveChild0,
/*233628*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233631*/              OPC_RecordMemRef,
/*233632*/              OPC_RecordNode, // #2 = 'ld' chained node
/*233633*/              OPC_CheckFoldableChainNode,
/*233634*/              OPC_RecordChild1, // #3 = $src2
/*233635*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233637*/              OPC_CheckPredicate, 9, // Predicate_load
/*233639*/              OPC_CheckType, MVT::i64,
/*233641*/              OPC_MoveParent,
/*233642*/              OPC_MoveParent,
/*233643*/              OPC_MoveParent,
/*233644*/              OPC_MoveChild2,
/*233645*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233648*/              OPC_MoveChild0,
/*233649*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233652*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233654*/              OPC_CheckType, MVT::v16i32,
/*233656*/              OPC_MoveParent,
/*233657*/              OPC_MoveParent,
/*233658*/              OPC_CheckType, MVT::v8i64,
/*233660*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233662*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233665*/              OPC_EmitMergeInputChains1_2,
/*233666*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPANDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233679*/            /*Scope*/ 57, /*->233737*/
/*233680*/              OPC_MoveChild0,
/*233681*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*233684*/              OPC_MoveChild0,
/*233685*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233688*/              OPC_RecordMemRef,
/*233689*/              OPC_RecordNode, // #1 = 'ld' chained node
/*233690*/              OPC_CheckFoldableChainNode,
/*233691*/              OPC_RecordChild1, // #2 = $src2
/*233692*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233694*/              OPC_CheckPredicate, 9, // Predicate_load
/*233696*/              OPC_CheckType, MVT::i64,
/*233698*/              OPC_MoveParent,
/*233699*/              OPC_MoveParent,
/*233700*/              OPC_RecordChild1, // #3 = $src1
/*233701*/              OPC_MoveParent,
/*233702*/              OPC_MoveChild2,
/*233703*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233706*/              OPC_MoveChild0,
/*233707*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233710*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233712*/              OPC_CheckType, MVT::v16i32,
/*233714*/              OPC_MoveParent,
/*233715*/              OPC_MoveParent,
/*233716*/              OPC_CheckType, MVT::v8i64,
/*233718*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233720*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233723*/              OPC_EmitMergeInputChains1_1,
/*233724*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPANDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233737*/            /*Scope*/ 52, /*->233790*/
/*233738*/              OPC_RecordChild0, // #1 = $src1
/*233739*/              OPC_MoveChild1,
/*233740*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233743*/              OPC_RecordMemRef,
/*233744*/              OPC_RecordNode, // #2 = 'ld' chained node
/*233745*/              OPC_CheckFoldableChainNode,
/*233746*/              OPC_RecordChild1, // #3 = $src2
/*233747*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233749*/              OPC_CheckPredicate, 9, // Predicate_load
/*233751*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*233753*/              OPC_MoveParent,
/*233754*/              OPC_MoveParent,
/*233755*/              OPC_MoveChild2,
/*233756*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233759*/              OPC_MoveChild0,
/*233760*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233763*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233765*/              OPC_CheckType, MVT::v16i32,
/*233767*/              OPC_MoveParent,
/*233768*/              OPC_MoveParent,
/*233769*/              OPC_CheckType, MVT::v8i64,
/*233771*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233773*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233776*/              OPC_EmitMergeInputChains1_2,
/*233777*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233790*/            /*Scope*/ 52, /*->233843*/
/*233791*/              OPC_MoveChild0,
/*233792*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233795*/              OPC_RecordMemRef,
/*233796*/              OPC_RecordNode, // #1 = 'ld' chained node
/*233797*/              OPC_CheckFoldableChainNode,
/*233798*/              OPC_RecordChild1, // #2 = $src2
/*233799*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233801*/              OPC_CheckPredicate, 9, // Predicate_load
/*233803*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*233805*/              OPC_MoveParent,
/*233806*/              OPC_RecordChild1, // #3 = $src1
/*233807*/              OPC_MoveParent,
/*233808*/              OPC_MoveChild2,
/*233809*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233812*/              OPC_MoveChild0,
/*233813*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233816*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233818*/              OPC_CheckType, MVT::v16i32,
/*233820*/              OPC_MoveParent,
/*233821*/              OPC_MoveParent,
/*233822*/              OPC_CheckType, MVT::v8i64,
/*233824*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233826*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233829*/              OPC_EmitMergeInputChains1_1,
/*233830*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233843*/            0, /*End of Scope*/
/*233844*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(ISD::OR),// ->234072
/*233848*/            OPC_Scope, 57, /*->233907*/ // 4 children in Scope
/*233850*/              OPC_RecordChild0, // #1 = $src1
/*233851*/              OPC_MoveChild1,
/*233852*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*233855*/              OPC_MoveChild0,
/*233856*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233859*/              OPC_RecordMemRef,
/*233860*/              OPC_RecordNode, // #2 = 'ld' chained node
/*233861*/              OPC_CheckFoldableChainNode,
/*233862*/              OPC_RecordChild1, // #3 = $src2
/*233863*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233865*/              OPC_CheckPredicate, 9, // Predicate_load
/*233867*/              OPC_CheckType, MVT::i64,
/*233869*/              OPC_MoveParent,
/*233870*/              OPC_MoveParent,
/*233871*/              OPC_MoveParent,
/*233872*/              OPC_MoveChild2,
/*233873*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233876*/              OPC_MoveChild0,
/*233877*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233880*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233882*/              OPC_CheckType, MVT::v16i32,
/*233884*/              OPC_MoveParent,
/*233885*/              OPC_MoveParent,
/*233886*/              OPC_CheckType, MVT::v8i64,
/*233888*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233890*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233893*/              OPC_EmitMergeInputChains1_2,
/*233894*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPORQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233907*/            /*Scope*/ 57, /*->233965*/
/*233908*/              OPC_MoveChild0,
/*233909*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*233912*/              OPC_MoveChild0,
/*233913*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233916*/              OPC_RecordMemRef,
/*233917*/              OPC_RecordNode, // #1 = 'ld' chained node
/*233918*/              OPC_CheckFoldableChainNode,
/*233919*/              OPC_RecordChild1, // #2 = $src2
/*233920*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233922*/              OPC_CheckPredicate, 9, // Predicate_load
/*233924*/              OPC_CheckType, MVT::i64,
/*233926*/              OPC_MoveParent,
/*233927*/              OPC_MoveParent,
/*233928*/              OPC_RecordChild1, // #3 = $src1
/*233929*/              OPC_MoveParent,
/*233930*/              OPC_MoveChild2,
/*233931*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233934*/              OPC_MoveChild0,
/*233935*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233938*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233940*/              OPC_CheckType, MVT::v16i32,
/*233942*/              OPC_MoveParent,
/*233943*/              OPC_MoveParent,
/*233944*/              OPC_CheckType, MVT::v8i64,
/*233946*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233948*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*233951*/              OPC_EmitMergeInputChains1_1,
/*233952*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPORQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*233965*/            /*Scope*/ 52, /*->234018*/
/*233966*/              OPC_RecordChild0, // #1 = $src1
/*233967*/              OPC_MoveChild1,
/*233968*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*233971*/              OPC_RecordMemRef,
/*233972*/              OPC_RecordNode, // #2 = 'ld' chained node
/*233973*/              OPC_CheckFoldableChainNode,
/*233974*/              OPC_RecordChild1, // #3 = $src2
/*233975*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233977*/              OPC_CheckPredicate, 9, // Predicate_load
/*233979*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*233981*/              OPC_MoveParent,
/*233982*/              OPC_MoveParent,
/*233983*/              OPC_MoveChild2,
/*233984*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*233987*/              OPC_MoveChild0,
/*233988*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*233991*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*233993*/              OPC_CheckType, MVT::v16i32,
/*233995*/              OPC_MoveParent,
/*233996*/              OPC_MoveParent,
/*233997*/              OPC_CheckType, MVT::v8i64,
/*233999*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234001*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234004*/              OPC_EmitMergeInputChains1_2,
/*234005*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234018*/            /*Scope*/ 52, /*->234071*/
/*234019*/              OPC_MoveChild0,
/*234020*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234023*/              OPC_RecordMemRef,
/*234024*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234025*/              OPC_CheckFoldableChainNode,
/*234026*/              OPC_RecordChild1, // #2 = $src2
/*234027*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234029*/              OPC_CheckPredicate, 9, // Predicate_load
/*234031*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*234033*/              OPC_MoveParent,
/*234034*/              OPC_RecordChild1, // #3 = $src1
/*234035*/              OPC_MoveParent,
/*234036*/              OPC_MoveChild2,
/*234037*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*234040*/              OPC_MoveChild0,
/*234041*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234044*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234046*/              OPC_CheckType, MVT::v16i32,
/*234048*/              OPC_MoveParent,
/*234049*/              OPC_MoveParent,
/*234050*/              OPC_CheckType, MVT::v8i64,
/*234052*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234054*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234057*/              OPC_EmitMergeInputChains1_1,
/*234058*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234071*/            0, /*End of Scope*/
/*234072*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(ISD::XOR),// ->234300
/*234076*/            OPC_Scope, 57, /*->234135*/ // 4 children in Scope
/*234078*/              OPC_RecordChild0, // #1 = $src1
/*234079*/              OPC_MoveChild1,
/*234080*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*234083*/              OPC_MoveChild0,
/*234084*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234087*/              OPC_RecordMemRef,
/*234088*/              OPC_RecordNode, // #2 = 'ld' chained node
/*234089*/              OPC_CheckFoldableChainNode,
/*234090*/              OPC_RecordChild1, // #3 = $src2
/*234091*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234093*/              OPC_CheckPredicate, 9, // Predicate_load
/*234095*/              OPC_CheckType, MVT::i64,
/*234097*/              OPC_MoveParent,
/*234098*/              OPC_MoveParent,
/*234099*/              OPC_MoveParent,
/*234100*/              OPC_MoveChild2,
/*234101*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*234104*/              OPC_MoveChild0,
/*234105*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234108*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234110*/              OPC_CheckType, MVT::v16i32,
/*234112*/              OPC_MoveParent,
/*234113*/              OPC_MoveParent,
/*234114*/              OPC_CheckType, MVT::v8i64,
/*234116*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234118*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234121*/              OPC_EmitMergeInputChains1_2,
/*234122*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPXORQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234135*/            /*Scope*/ 57, /*->234193*/
/*234136*/              OPC_MoveChild0,
/*234137*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*234140*/              OPC_MoveChild0,
/*234141*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234144*/              OPC_RecordMemRef,
/*234145*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234146*/              OPC_CheckFoldableChainNode,
/*234147*/              OPC_RecordChild1, // #2 = $src2
/*234148*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234150*/              OPC_CheckPredicate, 9, // Predicate_load
/*234152*/              OPC_CheckType, MVT::i64,
/*234154*/              OPC_MoveParent,
/*234155*/              OPC_MoveParent,
/*234156*/              OPC_RecordChild1, // #3 = $src1
/*234157*/              OPC_MoveParent,
/*234158*/              OPC_MoveChild2,
/*234159*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*234162*/              OPC_MoveChild0,
/*234163*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234166*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234168*/              OPC_CheckType, MVT::v16i32,
/*234170*/              OPC_MoveParent,
/*234171*/              OPC_MoveParent,
/*234172*/              OPC_CheckType, MVT::v8i64,
/*234174*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234176*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234179*/              OPC_EmitMergeInputChains1_1,
/*234180*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPXORQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234193*/            /*Scope*/ 52, /*->234246*/
/*234194*/              OPC_RecordChild0, // #1 = $src1
/*234195*/              OPC_MoveChild1,
/*234196*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234199*/              OPC_RecordMemRef,
/*234200*/              OPC_RecordNode, // #2 = 'ld' chained node
/*234201*/              OPC_CheckFoldableChainNode,
/*234202*/              OPC_RecordChild1, // #3 = $src2
/*234203*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234205*/              OPC_CheckPredicate, 9, // Predicate_load
/*234207*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*234209*/              OPC_MoveParent,
/*234210*/              OPC_MoveParent,
/*234211*/              OPC_MoveChild2,
/*234212*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*234215*/              OPC_MoveChild0,
/*234216*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234219*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234221*/              OPC_CheckType, MVT::v16i32,
/*234223*/              OPC_MoveParent,
/*234224*/              OPC_MoveParent,
/*234225*/              OPC_CheckType, MVT::v8i64,
/*234227*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234229*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234232*/              OPC_EmitMergeInputChains1_2,
/*234233*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPXORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234246*/            /*Scope*/ 52, /*->234299*/
/*234247*/              OPC_MoveChild0,
/*234248*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234251*/              OPC_RecordMemRef,
/*234252*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234253*/              OPC_CheckFoldableChainNode,
/*234254*/              OPC_RecordChild1, // #2 = $src2
/*234255*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234257*/              OPC_CheckPredicate, 9, // Predicate_load
/*234259*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*234261*/              OPC_MoveParent,
/*234262*/              OPC_RecordChild1, // #3 = $src1
/*234263*/              OPC_MoveParent,
/*234264*/              OPC_MoveChild2,
/*234265*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*234268*/              OPC_MoveChild0,
/*234269*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234272*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234274*/              OPC_CheckType, MVT::v16i32,
/*234276*/              OPC_MoveParent,
/*234277*/              OPC_MoveParent,
/*234278*/              OPC_CheckType, MVT::v8i64,
/*234280*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234282*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234285*/              OPC_EmitMergeInputChains1_1,
/*234286*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPXORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234299*/            0, /*End of Scope*/
/*234300*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::ANDNP),// ->234412
/*234303*/            OPC_RecordChild0, // #1 = $src1
/*234304*/            OPC_MoveChild1,
/*234305*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->234361
/*234309*/              OPC_MoveChild0,
/*234310*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234313*/              OPC_RecordMemRef,
/*234314*/              OPC_RecordNode, // #2 = 'ld' chained node
/*234315*/              OPC_CheckFoldableChainNode,
/*234316*/              OPC_RecordChild1, // #3 = $src2
/*234317*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234319*/              OPC_CheckPredicate, 9, // Predicate_load
/*234321*/              OPC_CheckType, MVT::i64,
/*234323*/              OPC_MoveParent,
/*234324*/              OPC_MoveParent,
/*234325*/              OPC_MoveParent,
/*234326*/              OPC_MoveChild2,
/*234327*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*234330*/              OPC_MoveChild0,
/*234331*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234334*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234336*/              OPC_CheckType, MVT::v16i32,
/*234338*/              OPC_MoveParent,
/*234339*/              OPC_MoveParent,
/*234340*/              OPC_CheckType, MVT::v8i64,
/*234342*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234344*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234347*/              OPC_EmitMergeInputChains1_2,
/*234348*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPANDNQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234361*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->234411
/*234364*/              OPC_RecordMemRef,
/*234365*/              OPC_RecordNode, // #2 = 'ld' chained node
/*234366*/              OPC_CheckFoldableChainNode,
/*234367*/              OPC_RecordChild1, // #3 = $src2
/*234368*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234370*/              OPC_CheckPredicate, 9, // Predicate_load
/*234372*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*234374*/              OPC_MoveParent,
/*234375*/              OPC_MoveParent,
/*234376*/              OPC_MoveChild2,
/*234377*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*234380*/              OPC_MoveChild0,
/*234381*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234384*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234386*/              OPC_CheckType, MVT::v16i32,
/*234388*/              OPC_MoveParent,
/*234389*/              OPC_MoveParent,
/*234390*/              OPC_CheckType, MVT::v8i64,
/*234392*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234394*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234397*/              OPC_EmitMergeInputChains1_2,
/*234398*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPANDNQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234411*/            0, // EndSwitchOpcode
/*234412*/          /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::VSRLI),// ->234591
/*234416*/            OPC_MoveChild0,
/*234417*/            OPC_SwitchOpcode /*3 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->234476
/*234421*/              OPC_MoveChild0,
/*234422*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234425*/              OPC_RecordMemRef,
/*234426*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234427*/              OPC_CheckFoldableChainNode,
/*234428*/              OPC_RecordChild1, // #2 = $src1
/*234429*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234431*/              OPC_CheckPredicate, 9, // Predicate_load
/*234433*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*234435*/              OPC_CheckType, MVT::v4i64,
/*234437*/              OPC_MoveParent,
/*234438*/              OPC_MoveParent,
/*234439*/              OPC_RecordChild1, // #3 = $src2
/*234440*/              OPC_MoveChild1,
/*234441*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*234444*/              OPC_MoveParent,
/*234445*/              OPC_MoveParent,
/*234446*/              OPC_MoveChild2,
/*234447*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234450*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234452*/              OPC_MoveParent,
/*234453*/              OPC_CheckType, MVT::v8i32,
/*234455*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234457*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*234460*/              OPC_EmitMergeInputChains1_1,
/*234461*/              OPC_EmitConvertToTarget, 3,
/*234463*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSRLDZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*234476*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->234532
/*234479*/              OPC_MoveChild0,
/*234480*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234483*/              OPC_RecordMemRef,
/*234484*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234485*/              OPC_CheckFoldableChainNode,
/*234486*/              OPC_RecordChild1, // #2 = $src1
/*234487*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234489*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*234491*/              OPC_CheckType, MVT::i32,
/*234493*/              OPC_MoveParent,
/*234494*/              OPC_MoveParent,
/*234495*/              OPC_RecordChild1, // #3 = $src2
/*234496*/              OPC_MoveChild1,
/*234497*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*234500*/              OPC_MoveParent,
/*234501*/              OPC_MoveParent,
/*234502*/              OPC_MoveChild2,
/*234503*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234506*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234508*/              OPC_MoveParent,
/*234509*/              OPC_CheckType, MVT::v8i32,
/*234511*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234513*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*234516*/              OPC_EmitMergeInputChains1_1,
/*234517*/              OPC_EmitConvertToTarget, 3,
/*234519*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSRLDZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*234532*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::LOAD),// ->234590
/*234535*/              OPC_RecordMemRef,
/*234536*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234537*/              OPC_CheckFoldableChainNode,
/*234538*/              OPC_RecordChild1, // #2 = $src1
/*234539*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234541*/              OPC_CheckPredicate, 9, // Predicate_load
/*234543*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*234545*/              OPC_MoveParent,
/*234546*/              OPC_RecordChild1, // #3 = $src2
/*234547*/              OPC_MoveChild1,
/*234548*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*234551*/              OPC_MoveParent,
/*234552*/              OPC_MoveParent,
/*234553*/              OPC_MoveChild2,
/*234554*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*234557*/              OPC_MoveChild0,
/*234558*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234561*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234563*/              OPC_CheckType, MVT::v16i32,
/*234565*/              OPC_MoveParent,
/*234566*/              OPC_MoveParent,
/*234567*/              OPC_CheckType, MVT::v8i64,
/*234569*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234571*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*234574*/              OPC_EmitMergeInputChains1_1,
/*234575*/              OPC_EmitConvertToTarget, 3,
/*234577*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSRLQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*234590*/            0, // EndSwitchOpcode
/*234591*/          /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::VSHLI),// ->234770
/*234595*/            OPC_MoveChild0,
/*234596*/            OPC_SwitchOpcode /*3 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->234655
/*234600*/              OPC_MoveChild0,
/*234601*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234604*/              OPC_RecordMemRef,
/*234605*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234606*/              OPC_CheckFoldableChainNode,
/*234607*/              OPC_RecordChild1, // #2 = $src1
/*234608*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234610*/              OPC_CheckPredicate, 9, // Predicate_load
/*234612*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*234614*/              OPC_CheckType, MVT::v4i64,
/*234616*/              OPC_MoveParent,
/*234617*/              OPC_MoveParent,
/*234618*/              OPC_RecordChild1, // #3 = $src2
/*234619*/              OPC_MoveChild1,
/*234620*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*234623*/              OPC_MoveParent,
/*234624*/              OPC_MoveParent,
/*234625*/              OPC_MoveChild2,
/*234626*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234629*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234631*/              OPC_MoveParent,
/*234632*/              OPC_CheckType, MVT::v8i32,
/*234634*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234636*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*234639*/              OPC_EmitMergeInputChains1_1,
/*234640*/              OPC_EmitConvertToTarget, 3,
/*234642*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSLLDZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*234655*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->234711
/*234658*/              OPC_MoveChild0,
/*234659*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234662*/              OPC_RecordMemRef,
/*234663*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234664*/              OPC_CheckFoldableChainNode,
/*234665*/              OPC_RecordChild1, // #2 = $src1
/*234666*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234668*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*234670*/              OPC_CheckType, MVT::i32,
/*234672*/              OPC_MoveParent,
/*234673*/              OPC_MoveParent,
/*234674*/              OPC_RecordChild1, // #3 = $src2
/*234675*/              OPC_MoveChild1,
/*234676*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*234679*/              OPC_MoveParent,
/*234680*/              OPC_MoveParent,
/*234681*/              OPC_MoveChild2,
/*234682*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234685*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234687*/              OPC_MoveParent,
/*234688*/              OPC_CheckType, MVT::v8i32,
/*234690*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234692*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*234695*/              OPC_EmitMergeInputChains1_1,
/*234696*/              OPC_EmitConvertToTarget, 3,
/*234698*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSLLDZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*234711*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::LOAD),// ->234769
/*234714*/              OPC_RecordMemRef,
/*234715*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234716*/              OPC_CheckFoldableChainNode,
/*234717*/              OPC_RecordChild1, // #2 = $src1
/*234718*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234720*/              OPC_CheckPredicate, 9, // Predicate_load
/*234722*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*234724*/              OPC_MoveParent,
/*234725*/              OPC_RecordChild1, // #3 = $src2
/*234726*/              OPC_MoveChild1,
/*234727*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*234730*/              OPC_MoveParent,
/*234731*/              OPC_MoveParent,
/*234732*/              OPC_MoveChild2,
/*234733*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*234736*/              OPC_MoveChild0,
/*234737*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234740*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234742*/              OPC_CheckType, MVT::v16i32,
/*234744*/              OPC_MoveParent,
/*234745*/              OPC_MoveParent,
/*234746*/              OPC_CheckType, MVT::v8i64,
/*234748*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234750*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*234753*/              OPC_EmitMergeInputChains1_1,
/*234754*/              OPC_EmitConvertToTarget, 3,
/*234756*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSLLQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*234769*/            0, // EndSwitchOpcode
/*234770*/          /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::VSRAI),// ->234949
/*234774*/            OPC_MoveChild0,
/*234775*/            OPC_SwitchOpcode /*3 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->234834
/*234779*/              OPC_MoveChild0,
/*234780*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234783*/              OPC_RecordMemRef,
/*234784*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234785*/              OPC_CheckFoldableChainNode,
/*234786*/              OPC_RecordChild1, // #2 = $src1
/*234787*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234789*/              OPC_CheckPredicate, 9, // Predicate_load
/*234791*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*234793*/              OPC_CheckType, MVT::v4i64,
/*234795*/              OPC_MoveParent,
/*234796*/              OPC_MoveParent,
/*234797*/              OPC_RecordChild1, // #3 = $src2
/*234798*/              OPC_MoveChild1,
/*234799*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*234802*/              OPC_MoveParent,
/*234803*/              OPC_MoveParent,
/*234804*/              OPC_MoveChild2,
/*234805*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234808*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234810*/              OPC_MoveParent,
/*234811*/              OPC_CheckType, MVT::v8i32,
/*234813*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234815*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*234818*/              OPC_EmitMergeInputChains1_1,
/*234819*/              OPC_EmitConvertToTarget, 3,
/*234821*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSRADZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*234834*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->234890
/*234837*/              OPC_MoveChild0,
/*234838*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234841*/              OPC_RecordMemRef,
/*234842*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234843*/              OPC_CheckFoldableChainNode,
/*234844*/              OPC_RecordChild1, // #2 = $src1
/*234845*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234847*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*234849*/              OPC_CheckType, MVT::i32,
/*234851*/              OPC_MoveParent,
/*234852*/              OPC_MoveParent,
/*234853*/              OPC_RecordChild1, // #3 = $src2
/*234854*/              OPC_MoveChild1,
/*234855*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*234858*/              OPC_MoveParent,
/*234859*/              OPC_MoveParent,
/*234860*/              OPC_MoveChild2,
/*234861*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234864*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234866*/              OPC_MoveParent,
/*234867*/              OPC_CheckType, MVT::v8i32,
/*234869*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234871*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*234874*/              OPC_EmitMergeInputChains1_1,
/*234875*/              OPC_EmitConvertToTarget, 3,
/*234877*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSRADZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*234890*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::LOAD),// ->234948
/*234893*/              OPC_RecordMemRef,
/*234894*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234895*/              OPC_CheckFoldableChainNode,
/*234896*/              OPC_RecordChild1, // #2 = $src1
/*234897*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234899*/              OPC_CheckPredicate, 9, // Predicate_load
/*234901*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*234903*/              OPC_MoveParent,
/*234904*/              OPC_RecordChild1, // #3 = $src2
/*234905*/              OPC_MoveChild1,
/*234906*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*234909*/              OPC_MoveParent,
/*234910*/              OPC_MoveParent,
/*234911*/              OPC_MoveChild2,
/*234912*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*234915*/              OPC_MoveChild0,
/*234916*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234919*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234921*/              OPC_CheckType, MVT::v16i32,
/*234923*/              OPC_MoveParent,
/*234924*/              OPC_MoveParent,
/*234925*/              OPC_CheckType, MVT::v8i64,
/*234927*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234929*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*234932*/              OPC_EmitMergeInputChains1_1,
/*234933*/              OPC_EmitConvertToTarget, 3,
/*234935*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSRAQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*234948*/            0, // EndSwitchOpcode
/*234949*/          /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::VROTRI),// ->235128
/*234953*/            OPC_MoveChild0,
/*234954*/            OPC_SwitchOpcode /*3 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->235013
/*234958*/              OPC_MoveChild0,
/*234959*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*234962*/              OPC_RecordMemRef,
/*234963*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234964*/              OPC_CheckFoldableChainNode,
/*234965*/              OPC_RecordChild1, // #2 = $src1
/*234966*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234968*/              OPC_CheckPredicate, 9, // Predicate_load
/*234970*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*234972*/              OPC_CheckType, MVT::v4i64,
/*234974*/              OPC_MoveParent,
/*234975*/              OPC_MoveParent,
/*234976*/              OPC_RecordChild1, // #3 = $src2
/*234977*/              OPC_MoveChild1,
/*234978*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*234981*/              OPC_MoveParent,
/*234982*/              OPC_MoveParent,
/*234983*/              OPC_MoveChild2,
/*234984*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*234987*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*234989*/              OPC_MoveParent,
/*234990*/              OPC_CheckType, MVT::v8i32,
/*234992*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234994*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*234997*/              OPC_EmitMergeInputChains1_1,
/*234998*/              OPC_EmitConvertToTarget, 3,
/*235000*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPRORDZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*235013*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->235069
/*235016*/              OPC_MoveChild0,
/*235017*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*235020*/              OPC_RecordMemRef,
/*235021*/              OPC_RecordNode, // #1 = 'ld' chained node
/*235022*/              OPC_CheckFoldableChainNode,
/*235023*/              OPC_RecordChild1, // #2 = $src1
/*235024*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235026*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*235028*/              OPC_CheckType, MVT::i32,
/*235030*/              OPC_MoveParent,
/*235031*/              OPC_MoveParent,
/*235032*/              OPC_RecordChild1, // #3 = $src2
/*235033*/              OPC_MoveChild1,
/*235034*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*235037*/              OPC_MoveParent,
/*235038*/              OPC_MoveParent,
/*235039*/              OPC_MoveChild2,
/*235040*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235043*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235045*/              OPC_MoveParent,
/*235046*/              OPC_CheckType, MVT::v8i32,
/*235048*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*235050*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*235053*/              OPC_EmitMergeInputChains1_1,
/*235054*/              OPC_EmitConvertToTarget, 3,
/*235056*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPRORDZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*235069*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::LOAD),// ->235127
/*235072*/              OPC_RecordMemRef,
/*235073*/              OPC_RecordNode, // #1 = 'ld' chained node
/*235074*/              OPC_CheckFoldableChainNode,
/*235075*/              OPC_RecordChild1, // #2 = $src1
/*235076*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235078*/              OPC_CheckPredicate, 9, // Predicate_load
/*235080*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*235082*/              OPC_MoveParent,
/*235083*/              OPC_RecordChild1, // #3 = $src2
/*235084*/              OPC_MoveChild1,
/*235085*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*235088*/              OPC_MoveParent,
/*235089*/              OPC_MoveParent,
/*235090*/              OPC_MoveChild2,
/*235091*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*235094*/              OPC_MoveChild0,
/*235095*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235098*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235100*/              OPC_CheckType, MVT::v16i32,
/*235102*/              OPC_MoveParent,
/*235103*/              OPC_MoveParent,
/*235104*/              OPC_CheckType, MVT::v8i64,
/*235106*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*235108*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*235111*/              OPC_EmitMergeInputChains1_1,
/*235112*/              OPC_EmitConvertToTarget, 3,
/*235114*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPRORQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*235127*/            0, // EndSwitchOpcode
/*235128*/          /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::VROTLI),// ->235307
/*235132*/            OPC_MoveChild0,
/*235133*/            OPC_SwitchOpcode /*3 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->235192
/*235137*/              OPC_MoveChild0,
/*235138*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*235141*/              OPC_RecordMemRef,
/*235142*/              OPC_RecordNode, // #1 = 'ld' chained node
/*235143*/              OPC_CheckFoldableChainNode,
/*235144*/              OPC_RecordChild1, // #2 = $src1
/*235145*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235147*/              OPC_CheckPredicate, 9, // Predicate_load
/*235149*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*235151*/              OPC_CheckType, MVT::v4i64,
/*235153*/              OPC_MoveParent,
/*235154*/              OPC_MoveParent,
/*235155*/              OPC_RecordChild1, // #3 = $src2
/*235156*/              OPC_MoveChild1,
/*235157*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*235160*/              OPC_MoveParent,
/*235161*/              OPC_MoveParent,
/*235162*/              OPC_MoveChild2,
/*235163*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235166*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235168*/              OPC_MoveParent,
/*235169*/              OPC_CheckType, MVT::v8i32,
/*235171*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*235173*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*235176*/              OPC_EmitMergeInputChains1_1,
/*235177*/              OPC_EmitConvertToTarget, 3,
/*235179*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPROLDZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*235192*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->235248
/*235195*/              OPC_MoveChild0,
/*235196*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*235199*/              OPC_RecordMemRef,
/*235200*/              OPC_RecordNode, // #1 = 'ld' chained node
/*235201*/              OPC_CheckFoldableChainNode,
/*235202*/              OPC_RecordChild1, // #2 = $src1
/*235203*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235205*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*235207*/              OPC_CheckType, MVT::i32,
/*235209*/              OPC_MoveParent,
/*235210*/              OPC_MoveParent,
/*235211*/              OPC_RecordChild1, // #3 = $src2
/*235212*/              OPC_MoveChild1,
/*235213*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*235216*/              OPC_MoveParent,
/*235217*/              OPC_MoveParent,
/*235218*/              OPC_MoveChild2,
/*235219*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235222*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235224*/              OPC_MoveParent,
/*235225*/              OPC_CheckType, MVT::v8i32,
/*235227*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*235229*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*235232*/              OPC_EmitMergeInputChains1_1,
/*235233*/              OPC_EmitConvertToTarget, 3,
/*235235*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPROLDZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*235248*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::LOAD),// ->235306
/*235251*/              OPC_RecordMemRef,
/*235252*/              OPC_RecordNode, // #1 = 'ld' chained node
/*235253*/              OPC_CheckFoldableChainNode,
/*235254*/              OPC_RecordChild1, // #2 = $src1
/*235255*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235257*/              OPC_CheckPredicate, 9, // Predicate_load
/*235259*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*235261*/              OPC_MoveParent,
/*235262*/              OPC_RecordChild1, // #3 = $src2
/*235263*/              OPC_MoveChild1,
/*235264*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*235267*/              OPC_MoveParent,
/*235268*/              OPC_MoveParent,
/*235269*/              OPC_MoveChild2,
/*235270*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*235273*/              OPC_MoveChild0,
/*235274*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235277*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235279*/              OPC_CheckType, MVT::v16i32,
/*235281*/              OPC_MoveParent,
/*235282*/              OPC_MoveParent,
/*235283*/              OPC_CheckType, MVT::v8i64,
/*235285*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*235287*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*235290*/              OPC_EmitMergeInputChains1_1,
/*235291*/              OPC_EmitConvertToTarget, 3,
/*235293*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPROLQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*235306*/            0, // EndSwitchOpcode
/*235307*/          /*SwitchOpcode*/ 120|128,1/*248*/, TARGET_VAL(ISD::SHL),// ->235559
/*235311*/            OPC_RecordChild0, // #1 = $src1
/*235312*/            OPC_MoveChild1,
/*235313*/            OPC_SwitchOpcode /*3 cases */, 93, TARGET_VAL(X86ISD::VBROADCAST),// ->235410
/*235317*/              OPC_MoveChild0,
/*235318*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*235321*/              OPC_RecordMemRef,
/*235322*/              OPC_RecordNode, // #2 = 'ld' chained node
/*235323*/              OPC_CheckFoldableChainNode,
/*235324*/              OPC_RecordChild1, // #3 = $src2
/*235325*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235327*/              OPC_SwitchType /*2 cases */, 42, MVT::i64,// ->235372
/*235330*/                OPC_CheckPredicate, 9, // Predicate_load
/*235332*/                OPC_MoveParent,
/*235333*/                OPC_CheckType, MVT::v8i64,
/*235335*/                OPC_MoveParent,
/*235336*/                OPC_MoveParent,
/*235337*/                OPC_MoveChild2,
/*235338*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*235341*/                OPC_MoveChild0,
/*235342*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235345*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235347*/                OPC_CheckType, MVT::v16i32,
/*235349*/                OPC_MoveParent,
/*235350*/                OPC_MoveParent,
/*235351*/                OPC_CheckType, MVT::v8i64,
/*235353*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*235355*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235358*/                OPC_EmitMergeInputChains1_2,
/*235359*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSLLVQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235372*/              /*SwitchType*/ 35, MVT::i32,// ->235409
/*235374*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*235376*/                OPC_MoveParent,
/*235377*/                OPC_CheckType, MVT::v8i32,
/*235379*/                OPC_MoveParent,
/*235380*/                OPC_MoveParent,
/*235381*/                OPC_MoveChild2,
/*235382*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235385*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235387*/                OPC_MoveParent,
/*235388*/                OPC_CheckType, MVT::v8i32,
/*235390*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*235392*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235395*/                OPC_EmitMergeInputChains1_2,
/*235396*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSLLVDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235409*/              0, // EndSwitchType
/*235410*/            /*SwitchOpcode*/ 93, TARGET_VAL(ISD::BITCAST),// ->235506
/*235413*/              OPC_MoveChild0,
/*235414*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*235417*/              OPC_RecordMemRef,
/*235418*/              OPC_RecordNode, // #2 = 'ld' chained node
/*235419*/              OPC_CheckFoldableChainNode,
/*235420*/              OPC_RecordChild1, // #3 = $src2
/*235421*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235423*/              OPC_CheckPredicate, 9, // Predicate_load
/*235425*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*235427*/              OPC_SwitchType /*2 cases */, 40, MVT::v2i64,// ->235470
/*235430*/                OPC_MoveParent,
/*235431*/                OPC_CheckType, MVT::v8i16,
/*235433*/                OPC_MoveParent,
/*235434*/                OPC_MoveParent,
/*235435*/                OPC_MoveChild2,
/*235436*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*235439*/                OPC_MoveChild0,
/*235440*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235443*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235445*/                OPC_CheckType, MVT::v4i32,
/*235447*/                OPC_MoveParent,
/*235448*/                OPC_MoveParent,
/*235449*/                OPC_CheckType, MVT::v8i16,
/*235451*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*235453*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235456*/                OPC_EmitMergeInputChains1_2,
/*235457*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSLLVWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235470*/              /*SwitchType*/ 33, MVT::v4i64,// ->235505
/*235472*/                OPC_MoveParent,
/*235473*/                OPC_CheckType, MVT::v8i32,
/*235475*/                OPC_MoveParent,
/*235476*/                OPC_MoveParent,
/*235477*/                OPC_MoveChild2,
/*235478*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235481*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235483*/                OPC_MoveParent,
/*235484*/                OPC_CheckType, MVT::v8i32,
/*235486*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*235488*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235491*/                OPC_EmitMergeInputChains1_2,
/*235492*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSLLVDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235505*/              0, // EndSwitchType
/*235506*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->235558
/*235509*/              OPC_RecordMemRef,
/*235510*/              OPC_RecordNode, // #2 = 'ld' chained node
/*235511*/              OPC_CheckFoldableChainNode,
/*235512*/              OPC_RecordChild1, // #3 = $src2
/*235513*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235515*/              OPC_CheckPredicate, 9, // Predicate_load
/*235517*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*235519*/              OPC_CheckType, MVT::v8i64,
/*235521*/              OPC_MoveParent,
/*235522*/              OPC_MoveParent,
/*235523*/              OPC_MoveChild2,
/*235524*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*235527*/              OPC_MoveChild0,
/*235528*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235531*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235533*/              OPC_CheckType, MVT::v16i32,
/*235535*/              OPC_MoveParent,
/*235536*/              OPC_MoveParent,
/*235537*/              OPC_CheckType, MVT::v8i64,
/*235539*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*235541*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235544*/              OPC_EmitMergeInputChains1_2,
/*235545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSLLVQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235558*/            0, // EndSwitchOpcode
/*235559*/          /*SwitchOpcode*/ 120|128,1/*248*/, TARGET_VAL(ISD::SRA),// ->235811
/*235563*/            OPC_RecordChild0, // #1 = $src1
/*235564*/            OPC_MoveChild1,
/*235565*/            OPC_SwitchOpcode /*3 cases */, 93, TARGET_VAL(X86ISD::VBROADCAST),// ->235662
/*235569*/              OPC_MoveChild0,
/*235570*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*235573*/              OPC_RecordMemRef,
/*235574*/              OPC_RecordNode, // #2 = 'ld' chained node
/*235575*/              OPC_CheckFoldableChainNode,
/*235576*/              OPC_RecordChild1, // #3 = $src2
/*235577*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235579*/              OPC_SwitchType /*2 cases */, 42, MVT::i64,// ->235624
/*235582*/                OPC_CheckPredicate, 9, // Predicate_load
/*235584*/                OPC_MoveParent,
/*235585*/                OPC_CheckType, MVT::v8i64,
/*235587*/                OPC_MoveParent,
/*235588*/                OPC_MoveParent,
/*235589*/                OPC_MoveChild2,
/*235590*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*235593*/                OPC_MoveChild0,
/*235594*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235597*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235599*/                OPC_CheckType, MVT::v16i32,
/*235601*/                OPC_MoveParent,
/*235602*/                OPC_MoveParent,
/*235603*/                OPC_CheckType, MVT::v8i64,
/*235605*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*235607*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235610*/                OPC_EmitMergeInputChains1_2,
/*235611*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRAVQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235624*/              /*SwitchType*/ 35, MVT::i32,// ->235661
/*235626*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*235628*/                OPC_MoveParent,
/*235629*/                OPC_CheckType, MVT::v8i32,
/*235631*/                OPC_MoveParent,
/*235632*/                OPC_MoveParent,
/*235633*/                OPC_MoveChild2,
/*235634*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235637*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235639*/                OPC_MoveParent,
/*235640*/                OPC_CheckType, MVT::v8i32,
/*235642*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*235644*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235647*/                OPC_EmitMergeInputChains1_2,
/*235648*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRAVDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235661*/              0, // EndSwitchType
/*235662*/            /*SwitchOpcode*/ 93, TARGET_VAL(ISD::BITCAST),// ->235758
/*235665*/              OPC_MoveChild0,
/*235666*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*235669*/              OPC_RecordMemRef,
/*235670*/              OPC_RecordNode, // #2 = 'ld' chained node
/*235671*/              OPC_CheckFoldableChainNode,
/*235672*/              OPC_RecordChild1, // #3 = $src2
/*235673*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235675*/              OPC_CheckPredicate, 9, // Predicate_load
/*235677*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*235679*/              OPC_SwitchType /*2 cases */, 40, MVT::v2i64,// ->235722
/*235682*/                OPC_MoveParent,
/*235683*/                OPC_CheckType, MVT::v8i16,
/*235685*/                OPC_MoveParent,
/*235686*/                OPC_MoveParent,
/*235687*/                OPC_MoveChild2,
/*235688*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*235691*/                OPC_MoveChild0,
/*235692*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235695*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235697*/                OPC_CheckType, MVT::v4i32,
/*235699*/                OPC_MoveParent,
/*235700*/                OPC_MoveParent,
/*235701*/                OPC_CheckType, MVT::v8i16,
/*235703*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*235705*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235708*/                OPC_EmitMergeInputChains1_2,
/*235709*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRAVWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235722*/              /*SwitchType*/ 33, MVT::v4i64,// ->235757
/*235724*/                OPC_MoveParent,
/*235725*/                OPC_CheckType, MVT::v8i32,
/*235727*/                OPC_MoveParent,
/*235728*/                OPC_MoveParent,
/*235729*/                OPC_MoveChild2,
/*235730*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235733*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235735*/                OPC_MoveParent,
/*235736*/                OPC_CheckType, MVT::v8i32,
/*235738*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*235740*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235743*/                OPC_EmitMergeInputChains1_2,
/*235744*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRAVDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235757*/              0, // EndSwitchType
/*235758*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->235810
/*235761*/              OPC_RecordMemRef,
/*235762*/              OPC_RecordNode, // #2 = 'ld' chained node
/*235763*/              OPC_CheckFoldableChainNode,
/*235764*/              OPC_RecordChild1, // #3 = $src2
/*235765*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235767*/              OPC_CheckPredicate, 9, // Predicate_load
/*235769*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*235771*/              OPC_CheckType, MVT::v8i64,
/*235773*/              OPC_MoveParent,
/*235774*/              OPC_MoveParent,
/*235775*/              OPC_MoveChild2,
/*235776*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*235779*/              OPC_MoveChild0,
/*235780*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235783*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235785*/              OPC_CheckType, MVT::v16i32,
/*235787*/              OPC_MoveParent,
/*235788*/              OPC_MoveParent,
/*235789*/              OPC_CheckType, MVT::v8i64,
/*235791*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*235793*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235796*/              OPC_EmitMergeInputChains1_2,
/*235797*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRAVQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235810*/            0, // EndSwitchOpcode
/*235811*/          /*SwitchOpcode*/ 120|128,1/*248*/, TARGET_VAL(ISD::SRL),// ->236063
/*235815*/            OPC_RecordChild0, // #1 = $src1
/*235816*/            OPC_MoveChild1,
/*235817*/            OPC_SwitchOpcode /*3 cases */, 93, TARGET_VAL(X86ISD::VBROADCAST),// ->235914
/*235821*/              OPC_MoveChild0,
/*235822*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*235825*/              OPC_RecordMemRef,
/*235826*/              OPC_RecordNode, // #2 = 'ld' chained node
/*235827*/              OPC_CheckFoldableChainNode,
/*235828*/              OPC_RecordChild1, // #3 = $src2
/*235829*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235831*/              OPC_SwitchType /*2 cases */, 42, MVT::i64,// ->235876
/*235834*/                OPC_CheckPredicate, 9, // Predicate_load
/*235836*/                OPC_MoveParent,
/*235837*/                OPC_CheckType, MVT::v8i64,
/*235839*/                OPC_MoveParent,
/*235840*/                OPC_MoveParent,
/*235841*/                OPC_MoveChild2,
/*235842*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*235845*/                OPC_MoveChild0,
/*235846*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235849*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235851*/                OPC_CheckType, MVT::v16i32,
/*235853*/                OPC_MoveParent,
/*235854*/                OPC_MoveParent,
/*235855*/                OPC_CheckType, MVT::v8i64,
/*235857*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*235859*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235862*/                OPC_EmitMergeInputChains1_2,
/*235863*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRLVQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235876*/              /*SwitchType*/ 35, MVT::i32,// ->235913
/*235878*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*235880*/                OPC_MoveParent,
/*235881*/                OPC_CheckType, MVT::v8i32,
/*235883*/                OPC_MoveParent,
/*235884*/                OPC_MoveParent,
/*235885*/                OPC_MoveChild2,
/*235886*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235889*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235891*/                OPC_MoveParent,
/*235892*/                OPC_CheckType, MVT::v8i32,
/*235894*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*235896*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235899*/                OPC_EmitMergeInputChains1_2,
/*235900*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRLVDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235913*/              0, // EndSwitchType
/*235914*/            /*SwitchOpcode*/ 93, TARGET_VAL(ISD::BITCAST),// ->236010
/*235917*/              OPC_MoveChild0,
/*235918*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*235921*/              OPC_RecordMemRef,
/*235922*/              OPC_RecordNode, // #2 = 'ld' chained node
/*235923*/              OPC_CheckFoldableChainNode,
/*235924*/              OPC_RecordChild1, // #3 = $src2
/*235925*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235927*/              OPC_CheckPredicate, 9, // Predicate_load
/*235929*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*235931*/              OPC_SwitchType /*2 cases */, 40, MVT::v2i64,// ->235974
/*235934*/                OPC_MoveParent,
/*235935*/                OPC_CheckType, MVT::v8i16,
/*235937*/                OPC_MoveParent,
/*235938*/                OPC_MoveParent,
/*235939*/                OPC_MoveChild2,
/*235940*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*235943*/                OPC_MoveChild0,
/*235944*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235947*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235949*/                OPC_CheckType, MVT::v4i32,
/*235951*/                OPC_MoveParent,
/*235952*/                OPC_MoveParent,
/*235953*/                OPC_CheckType, MVT::v8i16,
/*235955*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*235957*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235960*/                OPC_EmitMergeInputChains1_2,
/*235961*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRLVWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235974*/              /*SwitchType*/ 33, MVT::v4i64,// ->236009
/*235976*/                OPC_MoveParent,
/*235977*/                OPC_CheckType, MVT::v8i32,
/*235979*/                OPC_MoveParent,
/*235980*/                OPC_MoveParent,
/*235981*/                OPC_MoveChild2,
/*235982*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*235985*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*235987*/                OPC_MoveParent,
/*235988*/                OPC_CheckType, MVT::v8i32,
/*235990*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*235992*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235995*/                OPC_EmitMergeInputChains1_2,
/*235996*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRLVDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236009*/              0, // EndSwitchType
/*236010*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->236062
/*236013*/              OPC_RecordMemRef,
/*236014*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236015*/              OPC_CheckFoldableChainNode,
/*236016*/              OPC_RecordChild1, // #3 = $src2
/*236017*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236019*/              OPC_CheckPredicate, 9, // Predicate_load
/*236021*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*236023*/              OPC_CheckType, MVT::v8i64,
/*236025*/              OPC_MoveParent,
/*236026*/              OPC_MoveParent,
/*236027*/              OPC_MoveChild2,
/*236028*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236031*/              OPC_MoveChild0,
/*236032*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236035*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236037*/              OPC_CheckType, MVT::v16i32,
/*236039*/              OPC_MoveParent,
/*236040*/              OPC_MoveParent,
/*236041*/              OPC_CheckType, MVT::v8i64,
/*236043*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236045*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236048*/              OPC_EmitMergeInputChains1_2,
/*236049*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRLVQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236062*/            0, // EndSwitchOpcode
/*236063*/          /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(ISD::ROTR),// ->236271
/*236067*/            OPC_RecordChild0, // #1 = $src1
/*236068*/            OPC_MoveChild1,
/*236069*/            OPC_SwitchOpcode /*3 cases */, 93, TARGET_VAL(X86ISD::VBROADCAST),// ->236166
/*236073*/              OPC_MoveChild0,
/*236074*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236077*/              OPC_RecordMemRef,
/*236078*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236079*/              OPC_CheckFoldableChainNode,
/*236080*/              OPC_RecordChild1, // #3 = $src2
/*236081*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236083*/              OPC_SwitchType /*2 cases */, 42, MVT::i64,// ->236128
/*236086*/                OPC_CheckPredicate, 9, // Predicate_load
/*236088*/                OPC_MoveParent,
/*236089*/                OPC_CheckType, MVT::v8i64,
/*236091*/                OPC_MoveParent,
/*236092*/                OPC_MoveParent,
/*236093*/                OPC_MoveChild2,
/*236094*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236097*/                OPC_MoveChild0,
/*236098*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236101*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236103*/                OPC_CheckType, MVT::v16i32,
/*236105*/                OPC_MoveParent,
/*236106*/                OPC_MoveParent,
/*236107*/                OPC_CheckType, MVT::v8i64,
/*236109*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236111*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236114*/                OPC_EmitMergeInputChains1_2,
/*236115*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPRORVQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236128*/              /*SwitchType*/ 35, MVT::i32,// ->236165
/*236130*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*236132*/                OPC_MoveParent,
/*236133*/                OPC_CheckType, MVT::v8i32,
/*236135*/                OPC_MoveParent,
/*236136*/                OPC_MoveParent,
/*236137*/                OPC_MoveChild2,
/*236138*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236141*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236143*/                OPC_MoveParent,
/*236144*/                OPC_CheckType, MVT::v8i32,
/*236146*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*236148*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236151*/                OPC_EmitMergeInputChains1_2,
/*236152*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPRORVDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236165*/              0, // EndSwitchType
/*236166*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::BITCAST),// ->236218
/*236169*/              OPC_MoveChild0,
/*236170*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236173*/              OPC_RecordMemRef,
/*236174*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236175*/              OPC_CheckFoldableChainNode,
/*236176*/              OPC_RecordChild1, // #3 = $src2
/*236177*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236179*/              OPC_CheckPredicate, 9, // Predicate_load
/*236181*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*236183*/              OPC_CheckType, MVT::v4i64,
/*236185*/              OPC_MoveParent,
/*236186*/              OPC_CheckType, MVT::v8i32,
/*236188*/              OPC_MoveParent,
/*236189*/              OPC_MoveParent,
/*236190*/              OPC_MoveChild2,
/*236191*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236194*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236196*/              OPC_MoveParent,
/*236197*/              OPC_CheckType, MVT::v8i32,
/*236199*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*236201*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236204*/              OPC_EmitMergeInputChains1_2,
/*236205*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPRORVDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236218*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->236270
/*236221*/              OPC_RecordMemRef,
/*236222*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236223*/              OPC_CheckFoldableChainNode,
/*236224*/              OPC_RecordChild1, // #3 = $src2
/*236225*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236227*/              OPC_CheckPredicate, 9, // Predicate_load
/*236229*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*236231*/              OPC_CheckType, MVT::v8i64,
/*236233*/              OPC_MoveParent,
/*236234*/              OPC_MoveParent,
/*236235*/              OPC_MoveChild2,
/*236236*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236239*/              OPC_MoveChild0,
/*236240*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236243*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236245*/              OPC_CheckType, MVT::v16i32,
/*236247*/              OPC_MoveParent,
/*236248*/              OPC_MoveParent,
/*236249*/              OPC_CheckType, MVT::v8i64,
/*236251*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236253*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236256*/              OPC_EmitMergeInputChains1_2,
/*236257*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPRORVQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236270*/            0, // EndSwitchOpcode
/*236271*/          /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(ISD::ROTL),// ->236479
/*236275*/            OPC_RecordChild0, // #1 = $src1
/*236276*/            OPC_MoveChild1,
/*236277*/            OPC_SwitchOpcode /*3 cases */, 93, TARGET_VAL(X86ISD::VBROADCAST),// ->236374
/*236281*/              OPC_MoveChild0,
/*236282*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236285*/              OPC_RecordMemRef,
/*236286*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236287*/              OPC_CheckFoldableChainNode,
/*236288*/              OPC_RecordChild1, // #3 = $src2
/*236289*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236291*/              OPC_SwitchType /*2 cases */, 42, MVT::i64,// ->236336
/*236294*/                OPC_CheckPredicate, 9, // Predicate_load
/*236296*/                OPC_MoveParent,
/*236297*/                OPC_CheckType, MVT::v8i64,
/*236299*/                OPC_MoveParent,
/*236300*/                OPC_MoveParent,
/*236301*/                OPC_MoveChild2,
/*236302*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236305*/                OPC_MoveChild0,
/*236306*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236309*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236311*/                OPC_CheckType, MVT::v16i32,
/*236313*/                OPC_MoveParent,
/*236314*/                OPC_MoveParent,
/*236315*/                OPC_CheckType, MVT::v8i64,
/*236317*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236319*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236322*/                OPC_EmitMergeInputChains1_2,
/*236323*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPROLVQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236336*/              /*SwitchType*/ 35, MVT::i32,// ->236373
/*236338*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*236340*/                OPC_MoveParent,
/*236341*/                OPC_CheckType, MVT::v8i32,
/*236343*/                OPC_MoveParent,
/*236344*/                OPC_MoveParent,
/*236345*/                OPC_MoveChild2,
/*236346*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236349*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236351*/                OPC_MoveParent,
/*236352*/                OPC_CheckType, MVT::v8i32,
/*236354*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*236356*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236359*/                OPC_EmitMergeInputChains1_2,
/*236360*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPROLVDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236373*/              0, // EndSwitchType
/*236374*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::BITCAST),// ->236426
/*236377*/              OPC_MoveChild0,
/*236378*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236381*/              OPC_RecordMemRef,
/*236382*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236383*/              OPC_CheckFoldableChainNode,
/*236384*/              OPC_RecordChild1, // #3 = $src2
/*236385*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236387*/              OPC_CheckPredicate, 9, // Predicate_load
/*236389*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*236391*/              OPC_CheckType, MVT::v4i64,
/*236393*/              OPC_MoveParent,
/*236394*/              OPC_CheckType, MVT::v8i32,
/*236396*/              OPC_MoveParent,
/*236397*/              OPC_MoveParent,
/*236398*/              OPC_MoveChild2,
/*236399*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236402*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236404*/              OPC_MoveParent,
/*236405*/              OPC_CheckType, MVT::v8i32,
/*236407*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*236409*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236412*/              OPC_EmitMergeInputChains1_2,
/*236413*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPROLVDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236426*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->236478
/*236429*/              OPC_RecordMemRef,
/*236430*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236431*/              OPC_CheckFoldableChainNode,
/*236432*/              OPC_RecordChild1, // #3 = $src2
/*236433*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236435*/              OPC_CheckPredicate, 9, // Predicate_load
/*236437*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*236439*/              OPC_CheckType, MVT::v8i64,
/*236441*/              OPC_MoveParent,
/*236442*/              OPC_MoveParent,
/*236443*/              OPC_MoveChild2,
/*236444*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236447*/              OPC_MoveChild0,
/*236448*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236451*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236453*/              OPC_CheckType, MVT::v16i32,
/*236455*/              OPC_MoveParent,
/*236456*/              OPC_MoveParent,
/*236457*/              OPC_CheckType, MVT::v8i64,
/*236459*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236461*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236464*/              OPC_EmitMergeInputChains1_2,
/*236465*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPROLVQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236478*/            0, // EndSwitchOpcode
/*236479*/          /*SwitchOpcode*/ 110|128,1/*238*/, TARGET_VAL(X86ISD::VSRAV),// ->236721
/*236483*/            OPC_RecordChild0, // #1 = $src1
/*236484*/            OPC_MoveChild1,
/*236485*/            OPC_SwitchOpcode /*3 cases */, 89, TARGET_VAL(ISD::BITCAST),// ->236578
/*236489*/              OPC_MoveChild0,
/*236490*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236493*/              OPC_RecordMemRef,
/*236494*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236495*/              OPC_CheckFoldableChainNode,
/*236496*/              OPC_RecordChild1, // #3 = $src2
/*236497*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236499*/              OPC_CheckPredicate, 9, // Predicate_load
/*236501*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*236503*/              OPC_SwitchType /*2 cases */, 38, MVT::v2i64,// ->236544
/*236506*/                OPC_MoveParent,
/*236507*/                OPC_MoveParent,
/*236508*/                OPC_MoveParent,
/*236509*/                OPC_MoveChild2,
/*236510*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236513*/                OPC_MoveChild0,
/*236514*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236517*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236519*/                OPC_CheckType, MVT::v4i32,
/*236521*/                OPC_MoveParent,
/*236522*/                OPC_MoveParent,
/*236523*/                OPC_CheckType, MVT::v8i16,
/*236525*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*236527*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236530*/                OPC_EmitMergeInputChains1_2,
/*236531*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRAVWZ128rmkz:{ *:[v8i16] } VK8:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236544*/              /*SwitchType*/ 31, MVT::v4i64,// ->236577
/*236546*/                OPC_MoveParent,
/*236547*/                OPC_MoveParent,
/*236548*/                OPC_MoveParent,
/*236549*/                OPC_MoveChild2,
/*236550*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236553*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236555*/                OPC_MoveParent,
/*236556*/                OPC_CheckType, MVT::v8i32,
/*236558*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236560*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236563*/                OPC_EmitMergeInputChains1_2,
/*236564*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRAVDZ256rmkz:{ *:[v8i32] } VK8:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236577*/              0, // EndSwitchType
/*236578*/            /*SwitchOpcode*/ 89, TARGET_VAL(X86ISD::VBROADCAST),// ->236670
/*236581*/              OPC_MoveChild0,
/*236582*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236585*/              OPC_RecordMemRef,
/*236586*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236587*/              OPC_CheckFoldableChainNode,
/*236588*/              OPC_RecordChild1, // #3 = $src2
/*236589*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236591*/              OPC_SwitchType /*2 cases */, 40, MVT::i64,// ->236634
/*236594*/                OPC_CheckPredicate, 9, // Predicate_load
/*236596*/                OPC_MoveParent,
/*236597*/                OPC_MoveParent,
/*236598*/                OPC_MoveParent,
/*236599*/                OPC_MoveChild2,
/*236600*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236603*/                OPC_MoveChild0,
/*236604*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236607*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236609*/                OPC_CheckType, MVT::v16i32,
/*236611*/                OPC_MoveParent,
/*236612*/                OPC_MoveParent,
/*236613*/                OPC_CheckType, MVT::v8i64,
/*236615*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236617*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236620*/                OPC_EmitMergeInputChains1_2,
/*236621*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRAVQZrmbkz:{ *:[v8i64] } VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236634*/              /*SwitchType*/ 33, MVT::i32,// ->236669
/*236636*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*236638*/                OPC_MoveParent,
/*236639*/                OPC_MoveParent,
/*236640*/                OPC_MoveParent,
/*236641*/                OPC_MoveChild2,
/*236642*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236645*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236647*/                OPC_MoveParent,
/*236648*/                OPC_CheckType, MVT::v8i32,
/*236650*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236652*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236655*/                OPC_EmitMergeInputChains1_2,
/*236656*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRAVDZ256rmbkz:{ *:[v8i32] } VK8:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236669*/              0, // EndSwitchType
/*236670*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->236720
/*236673*/              OPC_RecordMemRef,
/*236674*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236675*/              OPC_CheckFoldableChainNode,
/*236676*/              OPC_RecordChild1, // #3 = $src2
/*236677*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236679*/              OPC_CheckPredicate, 9, // Predicate_load
/*236681*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*236683*/              OPC_MoveParent,
/*236684*/              OPC_MoveParent,
/*236685*/              OPC_MoveChild2,
/*236686*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236689*/              OPC_MoveChild0,
/*236690*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236693*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236695*/              OPC_CheckType, MVT::v16i32,
/*236697*/              OPC_MoveParent,
/*236698*/              OPC_MoveParent,
/*236699*/              OPC_CheckType, MVT::v8i64,
/*236701*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236703*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236706*/              OPC_EmitMergeInputChains1_2,
/*236707*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRAVQZrmkz:{ *:[v8i64] } VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236720*/            0, // EndSwitchOpcode
/*236721*/          /*SwitchOpcode*/ 110|128,1/*238*/, TARGET_VAL(X86ISD::VPERMV),// ->236963
/*236725*/            OPC_RecordChild0, // #1 = $src1
/*236726*/            OPC_MoveChild1,
/*236727*/            OPC_SwitchOpcode /*3 cases */, 89, TARGET_VAL(ISD::BITCAST),// ->236820
/*236731*/              OPC_MoveChild0,
/*236732*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236735*/              OPC_RecordMemRef,
/*236736*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236737*/              OPC_CheckFoldableChainNode,
/*236738*/              OPC_RecordChild1, // #3 = $src2
/*236739*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236741*/              OPC_CheckPredicate, 9, // Predicate_load
/*236743*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*236745*/              OPC_SwitchType /*2 cases */, 38, MVT::v2i64,// ->236786
/*236748*/                OPC_MoveParent,
/*236749*/                OPC_MoveParent,
/*236750*/                OPC_MoveParent,
/*236751*/                OPC_MoveChild2,
/*236752*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236755*/                OPC_MoveChild0,
/*236756*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236759*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236761*/                OPC_CheckType, MVT::v4i32,
/*236763*/                OPC_MoveParent,
/*236764*/                OPC_MoveParent,
/*236765*/                OPC_CheckType, MVT::v8i16,
/*236767*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*236769*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236772*/                OPC_EmitMergeInputChains1_2,
/*236773*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236786*/              /*SwitchType*/ 31, MVT::v4i64,// ->236819
/*236788*/                OPC_MoveParent,
/*236789*/                OPC_MoveParent,
/*236790*/                OPC_MoveParent,
/*236791*/                OPC_MoveChild2,
/*236792*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236795*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236797*/                OPC_MoveParent,
/*236798*/                OPC_CheckType, MVT::v8i32,
/*236800*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*236802*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236805*/                OPC_EmitMergeInputChains1_2,
/*236806*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPERMDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236819*/              0, // EndSwitchType
/*236820*/            /*SwitchOpcode*/ 89, TARGET_VAL(X86ISD::VBROADCAST),// ->236912
/*236823*/              OPC_MoveChild0,
/*236824*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236827*/              OPC_RecordMemRef,
/*236828*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236829*/              OPC_CheckFoldableChainNode,
/*236830*/              OPC_RecordChild1, // #3 = $src2
/*236831*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236833*/              OPC_SwitchType /*2 cases */, 40, MVT::i64,// ->236876
/*236836*/                OPC_CheckPredicate, 9, // Predicate_load
/*236838*/                OPC_MoveParent,
/*236839*/                OPC_MoveParent,
/*236840*/                OPC_MoveParent,
/*236841*/                OPC_MoveChild2,
/*236842*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236845*/                OPC_MoveChild0,
/*236846*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236849*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236851*/                OPC_CheckType, MVT::v16i32,
/*236853*/                OPC_MoveParent,
/*236854*/                OPC_MoveParent,
/*236855*/                OPC_CheckType, MVT::v8i64,
/*236857*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236859*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236862*/                OPC_EmitMergeInputChains1_2,
/*236863*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236876*/              /*SwitchType*/ 33, MVT::i32,// ->236911
/*236878*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*236880*/                OPC_MoveParent,
/*236881*/                OPC_MoveParent,
/*236882*/                OPC_MoveParent,
/*236883*/                OPC_MoveChild2,
/*236884*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236887*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236889*/                OPC_MoveParent,
/*236890*/                OPC_CheckType, MVT::v8i32,
/*236892*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*236894*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236897*/                OPC_EmitMergeInputChains1_2,
/*236898*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPERMDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236911*/              0, // EndSwitchType
/*236912*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->236962
/*236915*/              OPC_RecordMemRef,
/*236916*/              OPC_RecordNode, // #2 = 'ld' chained node
/*236917*/              OPC_CheckFoldableChainNode,
/*236918*/              OPC_RecordChild1, // #3 = $src2
/*236919*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236921*/              OPC_CheckPredicate, 9, // Predicate_load
/*236923*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*236925*/              OPC_MoveParent,
/*236926*/              OPC_MoveParent,
/*236927*/              OPC_MoveChild2,
/*236928*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236931*/              OPC_MoveChild0,
/*236932*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236935*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236937*/              OPC_CheckType, MVT::v16i32,
/*236939*/              OPC_MoveParent,
/*236940*/              OPC_MoveParent,
/*236941*/              OPC_CheckType, MVT::v8i64,
/*236943*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236945*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*236948*/              OPC_EmitMergeInputChains1_2,
/*236949*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPERMQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236962*/            0, // EndSwitchOpcode
/*236963*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VPERMI),// ->237025
/*236966*/            OPC_MoveChild0,
/*236967*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236970*/            OPC_RecordMemRef,
/*236971*/            OPC_RecordNode, // #1 = 'ld' chained node
/*236972*/            OPC_CheckFoldableChainNode,
/*236973*/            OPC_RecordChild1, // #2 = $src1
/*236974*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236976*/            OPC_CheckPredicate, 9, // Predicate_load
/*236978*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*236980*/            OPC_MoveParent,
/*236981*/            OPC_RecordChild1, // #3 = $src2
/*236982*/            OPC_MoveChild1,
/*236983*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*236986*/            OPC_MoveParent,
/*236987*/            OPC_MoveParent,
/*236988*/            OPC_MoveChild2,
/*236989*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*236992*/            OPC_MoveChild0,
/*236993*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*236996*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*236998*/            OPC_CheckType, MVT::v16i32,
/*237000*/            OPC_MoveParent,
/*237001*/            OPC_MoveParent,
/*237002*/            OPC_CheckType, MVT::v8i64,
/*237004*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237006*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*237009*/            OPC_EmitMergeInputChains1_1,
/*237010*/            OPC_EmitConvertToTarget, 3,
/*237012*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPERMQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*237025*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::PSHUFD),// ->237145
/*237028*/            OPC_MoveChild0,
/*237029*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->237088
/*237033*/              OPC_MoveChild0,
/*237034*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237037*/              OPC_RecordMemRef,
/*237038*/              OPC_RecordNode, // #1 = 'ld' chained node
/*237039*/              OPC_CheckFoldableChainNode,
/*237040*/              OPC_RecordChild1, // #2 = $src1
/*237041*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237043*/              OPC_CheckPredicate, 9, // Predicate_load
/*237045*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*237047*/              OPC_CheckType, MVT::v4i64,
/*237049*/              OPC_MoveParent,
/*237050*/              OPC_MoveParent,
/*237051*/              OPC_RecordChild1, // #3 = $src2
/*237052*/              OPC_MoveChild1,
/*237053*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*237056*/              OPC_MoveParent,
/*237057*/              OPC_MoveParent,
/*237058*/              OPC_MoveChild2,
/*237059*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237062*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237064*/              OPC_MoveParent,
/*237065*/              OPC_CheckType, MVT::v8i32,
/*237067*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*237069*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*237072*/              OPC_EmitMergeInputChains1_1,
/*237073*/              OPC_EmitConvertToTarget, 3,
/*237075*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHUFDZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*237088*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->237144
/*237091*/              OPC_MoveChild0,
/*237092*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237095*/              OPC_RecordMemRef,
/*237096*/              OPC_RecordNode, // #1 = 'ld' chained node
/*237097*/              OPC_CheckFoldableChainNode,
/*237098*/              OPC_RecordChild1, // #2 = $src1
/*237099*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237101*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*237103*/              OPC_CheckType, MVT::i32,
/*237105*/              OPC_MoveParent,
/*237106*/              OPC_MoveParent,
/*237107*/              OPC_RecordChild1, // #3 = $src2
/*237108*/              OPC_MoveChild1,
/*237109*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*237112*/              OPC_MoveParent,
/*237113*/              OPC_MoveParent,
/*237114*/              OPC_MoveChild2,
/*237115*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237118*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237120*/              OPC_MoveParent,
/*237121*/              OPC_CheckType, MVT::v8i32,
/*237123*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*237125*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*237128*/              OPC_EmitMergeInputChains1_1,
/*237129*/              OPC_EmitConvertToTarget, 3,
/*237131*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHUFDZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*237144*/            0, // EndSwitchOpcode
/*237145*/          /*SwitchOpcode*/ 104|128,1/*232*/, TARGET_VAL(X86ISD::VPMADD52L),// ->237381
/*237149*/            OPC_Scope, 59, /*->237210*/ // 4 children in Scope
/*237151*/              OPC_RecordChild0, // #1 = $src2
/*237152*/              OPC_MoveChild1,
/*237153*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*237156*/              OPC_MoveChild0,
/*237157*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237160*/              OPC_RecordMemRef,
/*237161*/              OPC_RecordNode, // #2 = 'ld' chained node
/*237162*/              OPC_CheckFoldableChainNode,
/*237163*/              OPC_RecordChild1, // #3 = $src3
/*237164*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237166*/              OPC_CheckPredicate, 9, // Predicate_load
/*237168*/              OPC_CheckType, MVT::i64,
/*237170*/              OPC_MoveParent,
/*237171*/              OPC_MoveParent,
/*237172*/              OPC_RecordChild2, // #4 = $src1
/*237173*/              OPC_MoveParent,
/*237174*/              OPC_MoveChild2,
/*237175*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*237178*/              OPC_MoveChild0,
/*237179*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237182*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237184*/              OPC_CheckType, MVT::v16i32,
/*237186*/              OPC_MoveParent,
/*237187*/              OPC_MoveParent,
/*237188*/              OPC_CheckType, MVT::v8i64,
/*237190*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*237192*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*237195*/              OPC_EmitMergeInputChains1_2,
/*237196*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52l:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMADD52LUQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*237210*/            /*Scope*/ 59, /*->237270*/
/*237211*/              OPC_MoveChild0,
/*237212*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*237215*/              OPC_MoveChild0,
/*237216*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237219*/              OPC_RecordMemRef,
/*237220*/              OPC_RecordNode, // #1 = 'ld' chained node
/*237221*/              OPC_CheckFoldableChainNode,
/*237222*/              OPC_RecordChild1, // #2 = $src3
/*237223*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237225*/              OPC_CheckPredicate, 9, // Predicate_load
/*237227*/              OPC_CheckType, MVT::i64,
/*237229*/              OPC_MoveParent,
/*237230*/              OPC_MoveParent,
/*237231*/              OPC_RecordChild1, // #3 = $src2
/*237232*/              OPC_RecordChild2, // #4 = $src1
/*237233*/              OPC_MoveParent,
/*237234*/              OPC_MoveChild2,
/*237235*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*237238*/              OPC_MoveChild0,
/*237239*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237242*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237244*/              OPC_CheckType, MVT::v16i32,
/*237246*/              OPC_MoveParent,
/*237247*/              OPC_MoveParent,
/*237248*/              OPC_CheckType, MVT::v8i64,
/*237250*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*237252*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*237255*/              OPC_EmitMergeInputChains1_1,
/*237256*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52l:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMADD52LUQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*237270*/            /*Scope*/ 54, /*->237325*/
/*237271*/              OPC_RecordChild0, // #1 = $src2
/*237272*/              OPC_MoveChild1,
/*237273*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237276*/              OPC_RecordMemRef,
/*237277*/              OPC_RecordNode, // #2 = 'ld' chained node
/*237278*/              OPC_CheckFoldableChainNode,
/*237279*/              OPC_RecordChild1, // #3 = $src3
/*237280*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237282*/              OPC_CheckPredicate, 9, // Predicate_load
/*237284*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*237286*/              OPC_MoveParent,
/*237287*/              OPC_RecordChild2, // #4 = $src1
/*237288*/              OPC_MoveParent,
/*237289*/              OPC_MoveChild2,
/*237290*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*237293*/              OPC_MoveChild0,
/*237294*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237297*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237299*/              OPC_CheckType, MVT::v16i32,
/*237301*/              OPC_MoveParent,
/*237302*/              OPC_MoveParent,
/*237303*/              OPC_CheckType, MVT::v8i64,
/*237305*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*237307*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*237310*/              OPC_EmitMergeInputChains1_2,
/*237311*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52l:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMADD52LUQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*237325*/            /*Scope*/ 54, /*->237380*/
/*237326*/              OPC_MoveChild0,
/*237327*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237330*/              OPC_RecordMemRef,
/*237331*/              OPC_RecordNode, // #1 = 'ld' chained node
/*237332*/              OPC_CheckFoldableChainNode,
/*237333*/              OPC_RecordChild1, // #2 = $src3
/*237334*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237336*/              OPC_CheckPredicate, 9, // Predicate_load
/*237338*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*237340*/              OPC_MoveParent,
/*237341*/              OPC_RecordChild1, // #3 = $src2
/*237342*/              OPC_RecordChild2, // #4 = $src1
/*237343*/              OPC_MoveParent,
/*237344*/              OPC_MoveChild2,
/*237345*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*237348*/              OPC_MoveChild0,
/*237349*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237352*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237354*/              OPC_CheckType, MVT::v16i32,
/*237356*/              OPC_MoveParent,
/*237357*/              OPC_MoveParent,
/*237358*/              OPC_CheckType, MVT::v8i64,
/*237360*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*237362*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*237365*/              OPC_EmitMergeInputChains1_1,
/*237366*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52l:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMADD52LUQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*237380*/            0, /*End of Scope*/
/*237381*/          /*SwitchOpcode*/ 104|128,1/*232*/, TARGET_VAL(X86ISD::VPMADD52H),// ->237617
/*237385*/            OPC_Scope, 59, /*->237446*/ // 4 children in Scope
/*237387*/              OPC_RecordChild0, // #1 = $src2
/*237388*/              OPC_MoveChild1,
/*237389*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*237392*/              OPC_MoveChild0,
/*237393*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237396*/              OPC_RecordMemRef,
/*237397*/              OPC_RecordNode, // #2 = 'ld' chained node
/*237398*/              OPC_CheckFoldableChainNode,
/*237399*/              OPC_RecordChild1, // #3 = $src3
/*237400*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237402*/              OPC_CheckPredicate, 9, // Predicate_load
/*237404*/              OPC_CheckType, MVT::i64,
/*237406*/              OPC_MoveParent,
/*237407*/              OPC_MoveParent,
/*237408*/              OPC_RecordChild2, // #4 = $src1
/*237409*/              OPC_MoveParent,
/*237410*/              OPC_MoveChild2,
/*237411*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*237414*/              OPC_MoveChild0,
/*237415*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237418*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237420*/              OPC_CheckType, MVT::v16i32,
/*237422*/              OPC_MoveParent,
/*237423*/              OPC_MoveParent,
/*237424*/              OPC_CheckType, MVT::v8i64,
/*237426*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*237428*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*237431*/              OPC_EmitMergeInputChains1_2,
/*237432*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52h:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMADD52HUQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*237446*/            /*Scope*/ 59, /*->237506*/
/*237447*/              OPC_MoveChild0,
/*237448*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*237451*/              OPC_MoveChild0,
/*237452*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237455*/              OPC_RecordMemRef,
/*237456*/              OPC_RecordNode, // #1 = 'ld' chained node
/*237457*/              OPC_CheckFoldableChainNode,
/*237458*/              OPC_RecordChild1, // #2 = $src3
/*237459*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237461*/              OPC_CheckPredicate, 9, // Predicate_load
/*237463*/              OPC_CheckType, MVT::i64,
/*237465*/              OPC_MoveParent,
/*237466*/              OPC_MoveParent,
/*237467*/              OPC_RecordChild1, // #3 = $src2
/*237468*/              OPC_RecordChild2, // #4 = $src1
/*237469*/              OPC_MoveParent,
/*237470*/              OPC_MoveChild2,
/*237471*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*237474*/              OPC_MoveChild0,
/*237475*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237478*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237480*/              OPC_CheckType, MVT::v16i32,
/*237482*/              OPC_MoveParent,
/*237483*/              OPC_MoveParent,
/*237484*/              OPC_CheckType, MVT::v8i64,
/*237486*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*237488*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*237491*/              OPC_EmitMergeInputChains1_1,
/*237492*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52h:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMADD52HUQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*237506*/            /*Scope*/ 54, /*->237561*/
/*237507*/              OPC_RecordChild0, // #1 = $src2
/*237508*/              OPC_MoveChild1,
/*237509*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237512*/              OPC_RecordMemRef,
/*237513*/              OPC_RecordNode, // #2 = 'ld' chained node
/*237514*/              OPC_CheckFoldableChainNode,
/*237515*/              OPC_RecordChild1, // #3 = $src3
/*237516*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237518*/              OPC_CheckPredicate, 9, // Predicate_load
/*237520*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*237522*/              OPC_MoveParent,
/*237523*/              OPC_RecordChild2, // #4 = $src1
/*237524*/              OPC_MoveParent,
/*237525*/              OPC_MoveChild2,
/*237526*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*237529*/              OPC_MoveChild0,
/*237530*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237533*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237535*/              OPC_CheckType, MVT::v16i32,
/*237537*/              OPC_MoveParent,
/*237538*/              OPC_MoveParent,
/*237539*/              OPC_CheckType, MVT::v8i64,
/*237541*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*237543*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*237546*/              OPC_EmitMergeInputChains1_2,
/*237547*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52h:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMADD52HUQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*237561*/            /*Scope*/ 54, /*->237616*/
/*237562*/              OPC_MoveChild0,
/*237563*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237566*/              OPC_RecordMemRef,
/*237567*/              OPC_RecordNode, // #1 = 'ld' chained node
/*237568*/              OPC_CheckFoldableChainNode,
/*237569*/              OPC_RecordChild1, // #2 = $src3
/*237570*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237572*/              OPC_CheckPredicate, 9, // Predicate_load
/*237574*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*237576*/              OPC_MoveParent,
/*237577*/              OPC_RecordChild1, // #3 = $src2
/*237578*/              OPC_RecordChild2, // #4 = $src1
/*237579*/              OPC_MoveParent,
/*237580*/              OPC_MoveChild2,
/*237581*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*237584*/              OPC_MoveChild0,
/*237585*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237588*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237590*/              OPC_CheckType, MVT::v16i32,
/*237592*/              OPC_MoveParent,
/*237593*/              OPC_MoveParent,
/*237594*/              OPC_CheckType, MVT::v8i64,
/*237596*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*237598*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*237601*/              OPC_EmitMergeInputChains1_1,
/*237602*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52h:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPMADD52HUQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*237616*/            0, /*End of Scope*/
/*237617*/          /*SwitchOpcode*/ 122|128,1/*250*/, TARGET_VAL(X86ISD::CVTP2SI),// ->237871
/*237621*/            OPC_MoveChild0,
/*237622*/            OPC_SwitchOpcode /*2 cases */, 24|128,1/*152*/, TARGET_VAL(X86ISD::VBROADCAST),// ->237779
/*237627*/              OPC_MoveChild0,
/*237628*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237631*/              OPC_RecordMemRef,
/*237632*/              OPC_RecordNode, // #1 = 'ld' chained node
/*237633*/              OPC_CheckFoldableChainNode,
/*237634*/              OPC_RecordChild1, // #2 = $src
/*237635*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237637*/              OPC_CheckPredicate, 9, // Predicate_load
/*237639*/              OPC_SwitchType /*2 cases */, 67, MVT::f64,// ->237709
/*237642*/                OPC_MoveParent,
/*237643*/                OPC_CheckType, MVT::v8f64,
/*237645*/                OPC_MoveParent,
/*237646*/                OPC_MoveParent,
/*237647*/                OPC_MoveChild2,
/*237648*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->237682
/*237652*/                  OPC_MoveChild0,
/*237653*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237656*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237658*/                  OPC_CheckType, MVT::v16i32,
/*237660*/                  OPC_MoveParent,
/*237661*/                  OPC_MoveParent,
/*237662*/                  OPC_CheckType, MVT::v8i64,
/*237664*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*237666*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*237669*/                  OPC_EmitMergeInputChains1_1,
/*237670*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTPD2QQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*237682*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->237708
/*237685*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237687*/                  OPC_MoveParent,
/*237688*/                  OPC_CheckType, MVT::v8i32,
/*237690*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237692*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*237695*/                  OPC_EmitMergeInputChains1_1,
/*237696*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTPD2DQZrmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*237708*/                0, // EndSwitchOpcode
/*237709*/              /*SwitchType*/ 67, MVT::f32,// ->237778
/*237711*/                OPC_MoveParent,
/*237712*/                OPC_CheckType, MVT::v8f32,
/*237714*/                OPC_MoveParent,
/*237715*/                OPC_MoveParent,
/*237716*/                OPC_MoveChild2,
/*237717*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->237751
/*237721*/                  OPC_MoveChild0,
/*237722*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237725*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237727*/                  OPC_CheckType, MVT::v16i32,
/*237729*/                  OPC_MoveParent,
/*237730*/                  OPC_MoveParent,
/*237731*/                  OPC_CheckType, MVT::v8i64,
/*237733*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*237735*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*237738*/                  OPC_EmitMergeInputChains1_1,
/*237739*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTPS2QQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*237751*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->237777
/*237754*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237756*/                  OPC_MoveParent,
/*237757*/                  OPC_CheckType, MVT::v8i32,
/*237759*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*237761*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*237764*/                  OPC_EmitMergeInputChains1_1,
/*237765*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTPS2DQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*237777*/                0, // EndSwitchOpcode
/*237778*/              0, // EndSwitchType
/*237779*/            /*SwitchOpcode*/ 88, TARGET_VAL(ISD::LOAD),// ->237870
/*237782*/              OPC_RecordMemRef,
/*237783*/              OPC_RecordNode, // #1 = 'ld' chained node
/*237784*/              OPC_CheckFoldableChainNode,
/*237785*/              OPC_RecordChild1, // #2 = $src
/*237786*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237788*/              OPC_CheckPredicate, 9, // Predicate_load
/*237790*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*237792*/              OPC_SwitchType /*2 cases */, 36, MVT::v8f64,// ->237831
/*237795*/                OPC_MoveParent,
/*237796*/                OPC_MoveParent,
/*237797*/                OPC_MoveChild2,
/*237798*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*237801*/                OPC_MoveChild0,
/*237802*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237805*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237807*/                OPC_CheckType, MVT::v16i32,
/*237809*/                OPC_MoveParent,
/*237810*/                OPC_MoveParent,
/*237811*/                OPC_CheckType, MVT::v8i64,
/*237813*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*237815*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*237818*/                OPC_EmitMergeInputChains1_1,
/*237819*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTPD2QQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*237831*/              /*SwitchType*/ 36, MVT::v8f32,// ->237869
/*237833*/                OPC_MoveParent,
/*237834*/                OPC_MoveParent,
/*237835*/                OPC_MoveChild2,
/*237836*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*237839*/                OPC_MoveChild0,
/*237840*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237843*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237845*/                OPC_CheckType, MVT::v16i32,
/*237847*/                OPC_MoveParent,
/*237848*/                OPC_MoveParent,
/*237849*/                OPC_CheckType, MVT::v8i64,
/*237851*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*237853*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*237856*/                OPC_EmitMergeInputChains1_1,
/*237857*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTPS2QQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*237869*/              0, // EndSwitchType
/*237870*/            0, // EndSwitchOpcode
/*237871*/          /*SwitchOpcode*/ 122|128,1/*250*/, TARGET_VAL(X86ISD::CVTP2UI),// ->238125
/*237875*/            OPC_MoveChild0,
/*237876*/            OPC_SwitchOpcode /*2 cases */, 24|128,1/*152*/, TARGET_VAL(X86ISD::VBROADCAST),// ->238033
/*237881*/              OPC_MoveChild0,
/*237882*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237885*/              OPC_RecordMemRef,
/*237886*/              OPC_RecordNode, // #1 = 'ld' chained node
/*237887*/              OPC_CheckFoldableChainNode,
/*237888*/              OPC_RecordChild1, // #2 = $src
/*237889*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237891*/              OPC_CheckPredicate, 9, // Predicate_load
/*237893*/              OPC_SwitchType /*2 cases */, 67, MVT::f64,// ->237963
/*237896*/                OPC_MoveParent,
/*237897*/                OPC_CheckType, MVT::v8f64,
/*237899*/                OPC_MoveParent,
/*237900*/                OPC_MoveParent,
/*237901*/                OPC_MoveChild2,
/*237902*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->237936
/*237906*/                  OPC_MoveChild0,
/*237907*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237910*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237912*/                  OPC_CheckType, MVT::v16i32,
/*237914*/                  OPC_MoveParent,
/*237915*/                  OPC_MoveParent,
/*237916*/                  OPC_CheckType, MVT::v8i64,
/*237918*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*237920*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*237923*/                  OPC_EmitMergeInputChains1_1,
/*237924*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTPD2UQQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*237936*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->237962
/*237939*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237941*/                  OPC_MoveParent,
/*237942*/                  OPC_CheckType, MVT::v8i32,
/*237944*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237946*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*237949*/                  OPC_EmitMergeInputChains1_1,
/*237950*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTPD2UDQZrmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*237962*/                0, // EndSwitchOpcode
/*237963*/              /*SwitchType*/ 67, MVT::f32,// ->238032
/*237965*/                OPC_MoveParent,
/*237966*/                OPC_CheckType, MVT::v8f32,
/*237968*/                OPC_MoveParent,
/*237969*/                OPC_MoveParent,
/*237970*/                OPC_MoveChild2,
/*237971*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->238005
/*237975*/                  OPC_MoveChild0,
/*237976*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*237979*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*237981*/                  OPC_CheckType, MVT::v16i32,
/*237983*/                  OPC_MoveParent,
/*237984*/                  OPC_MoveParent,
/*237985*/                  OPC_CheckType, MVT::v8i64,
/*237987*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*237989*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*237992*/                  OPC_EmitMergeInputChains1_1,
/*237993*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTPS2UQQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238005*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->238031
/*238008*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238010*/                  OPC_MoveParent,
/*238011*/                  OPC_CheckType, MVT::v8i32,
/*238013*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*238015*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238018*/                  OPC_EmitMergeInputChains1_1,
/*238019*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTPS2UDQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238031*/                0, // EndSwitchOpcode
/*238032*/              0, // EndSwitchType
/*238033*/            /*SwitchOpcode*/ 88, TARGET_VAL(ISD::LOAD),// ->238124
/*238036*/              OPC_RecordMemRef,
/*238037*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238038*/              OPC_CheckFoldableChainNode,
/*238039*/              OPC_RecordChild1, // #2 = $src
/*238040*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238042*/              OPC_CheckPredicate, 9, // Predicate_load
/*238044*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*238046*/              OPC_SwitchType /*2 cases */, 36, MVT::v8f64,// ->238085
/*238049*/                OPC_MoveParent,
/*238050*/                OPC_MoveParent,
/*238051*/                OPC_MoveChild2,
/*238052*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*238055*/                OPC_MoveChild0,
/*238056*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238059*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238061*/                OPC_CheckType, MVT::v16i32,
/*238063*/                OPC_MoveParent,
/*238064*/                OPC_MoveParent,
/*238065*/                OPC_CheckType, MVT::v8i64,
/*238067*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*238069*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238072*/                OPC_EmitMergeInputChains1_1,
/*238073*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTPD2UQQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238085*/              /*SwitchType*/ 36, MVT::v8f32,// ->238123
/*238087*/                OPC_MoveParent,
/*238088*/                OPC_MoveParent,
/*238089*/                OPC_MoveChild2,
/*238090*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*238093*/                OPC_MoveChild0,
/*238094*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238097*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238099*/                OPC_CheckType, MVT::v16i32,
/*238101*/                OPC_MoveParent,
/*238102*/                OPC_MoveParent,
/*238103*/                OPC_CheckType, MVT::v8i64,
/*238105*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*238107*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238110*/                OPC_EmitMergeInputChains1_1,
/*238111*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTPS2UQQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238123*/              0, // EndSwitchType
/*238124*/            0, // EndSwitchOpcode
/*238125*/          /*SwitchOpcode*/ 122|128,1/*250*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->238379
/*238129*/            OPC_MoveChild0,
/*238130*/            OPC_SwitchOpcode /*2 cases */, 24|128,1/*152*/, TARGET_VAL(X86ISD::VBROADCAST),// ->238287
/*238135*/              OPC_MoveChild0,
/*238136*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*238139*/              OPC_RecordMemRef,
/*238140*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238141*/              OPC_CheckFoldableChainNode,
/*238142*/              OPC_RecordChild1, // #2 = $src
/*238143*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238145*/              OPC_CheckPredicate, 9, // Predicate_load
/*238147*/              OPC_SwitchType /*2 cases */, 67, MVT::f64,// ->238217
/*238150*/                OPC_MoveParent,
/*238151*/                OPC_CheckType, MVT::v8f64,
/*238153*/                OPC_MoveParent,
/*238154*/                OPC_MoveParent,
/*238155*/                OPC_MoveChild2,
/*238156*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->238190
/*238160*/                  OPC_MoveChild0,
/*238161*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238164*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238166*/                  OPC_CheckType, MVT::v16i32,
/*238168*/                  OPC_MoveParent,
/*238169*/                  OPC_MoveParent,
/*238170*/                  OPC_CheckType, MVT::v8i64,
/*238172*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*238174*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238177*/                  OPC_EmitMergeInputChains1_1,
/*238178*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTTPD2QQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238190*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->238216
/*238193*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238195*/                  OPC_MoveParent,
/*238196*/                  OPC_CheckType, MVT::v8i32,
/*238198*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238200*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238203*/                  OPC_EmitMergeInputChains1_1,
/*238204*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTTPD2DQZrmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238216*/                0, // EndSwitchOpcode
/*238217*/              /*SwitchType*/ 67, MVT::f32,// ->238286
/*238219*/                OPC_MoveParent,
/*238220*/                OPC_CheckType, MVT::v8f32,
/*238222*/                OPC_MoveParent,
/*238223*/                OPC_MoveParent,
/*238224*/                OPC_MoveChild2,
/*238225*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->238259
/*238229*/                  OPC_MoveChild0,
/*238230*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238233*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238235*/                  OPC_CheckType, MVT::v16i32,
/*238237*/                  OPC_MoveParent,
/*238238*/                  OPC_MoveParent,
/*238239*/                  OPC_CheckType, MVT::v8i64,
/*238241*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*238243*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238246*/                  OPC_EmitMergeInputChains1_1,
/*238247*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTTPS2QQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238259*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->238285
/*238262*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238264*/                  OPC_MoveParent,
/*238265*/                  OPC_CheckType, MVT::v8i32,
/*238267*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*238269*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238272*/                  OPC_EmitMergeInputChains1_1,
/*238273*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTTPS2DQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238285*/                0, // EndSwitchOpcode
/*238286*/              0, // EndSwitchType
/*238287*/            /*SwitchOpcode*/ 88, TARGET_VAL(ISD::LOAD),// ->238378
/*238290*/              OPC_RecordMemRef,
/*238291*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238292*/              OPC_CheckFoldableChainNode,
/*238293*/              OPC_RecordChild1, // #2 = $src
/*238294*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238296*/              OPC_CheckPredicate, 9, // Predicate_load
/*238298*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*238300*/              OPC_SwitchType /*2 cases */, 36, MVT::v8f64,// ->238339
/*238303*/                OPC_MoveParent,
/*238304*/                OPC_MoveParent,
/*238305*/                OPC_MoveChild2,
/*238306*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*238309*/                OPC_MoveChild0,
/*238310*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238313*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238315*/                OPC_CheckType, MVT::v16i32,
/*238317*/                OPC_MoveParent,
/*238318*/                OPC_MoveParent,
/*238319*/                OPC_CheckType, MVT::v8i64,
/*238321*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*238323*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238326*/                OPC_EmitMergeInputChains1_1,
/*238327*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTTPD2QQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238339*/              /*SwitchType*/ 36, MVT::v8f32,// ->238377
/*238341*/                OPC_MoveParent,
/*238342*/                OPC_MoveParent,
/*238343*/                OPC_MoveChild2,
/*238344*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*238347*/                OPC_MoveChild0,
/*238348*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238351*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238353*/                OPC_CheckType, MVT::v16i32,
/*238355*/                OPC_MoveParent,
/*238356*/                OPC_MoveParent,
/*238357*/                OPC_CheckType, MVT::v8i64,
/*238359*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*238361*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238364*/                OPC_EmitMergeInputChains1_1,
/*238365*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTTPS2QQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238377*/              0, // EndSwitchType
/*238378*/            0, // EndSwitchOpcode
/*238379*/          /*SwitchOpcode*/ 122|128,1/*250*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->238633
/*238383*/            OPC_MoveChild0,
/*238384*/            OPC_SwitchOpcode /*2 cases */, 24|128,1/*152*/, TARGET_VAL(X86ISD::VBROADCAST),// ->238541
/*238389*/              OPC_MoveChild0,
/*238390*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*238393*/              OPC_RecordMemRef,
/*238394*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238395*/              OPC_CheckFoldableChainNode,
/*238396*/              OPC_RecordChild1, // #2 = $src
/*238397*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238399*/              OPC_CheckPredicate, 9, // Predicate_load
/*238401*/              OPC_SwitchType /*2 cases */, 67, MVT::f64,// ->238471
/*238404*/                OPC_MoveParent,
/*238405*/                OPC_CheckType, MVT::v8f64,
/*238407*/                OPC_MoveParent,
/*238408*/                OPC_MoveParent,
/*238409*/                OPC_MoveChild2,
/*238410*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->238444
/*238414*/                  OPC_MoveChild0,
/*238415*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238418*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238420*/                  OPC_CheckType, MVT::v16i32,
/*238422*/                  OPC_MoveParent,
/*238423*/                  OPC_MoveParent,
/*238424*/                  OPC_CheckType, MVT::v8i64,
/*238426*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*238428*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238431*/                  OPC_EmitMergeInputChains1_1,
/*238432*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTTPD2UQQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238444*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->238470
/*238447*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238449*/                  OPC_MoveParent,
/*238450*/                  OPC_CheckType, MVT::v8i32,
/*238452*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238454*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238457*/                  OPC_EmitMergeInputChains1_1,
/*238458*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTTPD2UDQZrmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238470*/                0, // EndSwitchOpcode
/*238471*/              /*SwitchType*/ 67, MVT::f32,// ->238540
/*238473*/                OPC_MoveParent,
/*238474*/                OPC_CheckType, MVT::v8f32,
/*238476*/                OPC_MoveParent,
/*238477*/                OPC_MoveParent,
/*238478*/                OPC_MoveChild2,
/*238479*/                OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::BITCAST),// ->238513
/*238483*/                  OPC_MoveChild0,
/*238484*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238487*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238489*/                  OPC_CheckType, MVT::v16i32,
/*238491*/                  OPC_MoveParent,
/*238492*/                  OPC_MoveParent,
/*238493*/                  OPC_CheckType, MVT::v8i64,
/*238495*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*238497*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238500*/                  OPC_EmitMergeInputChains1_1,
/*238501*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTTPS2UQQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238513*/                /*SwitchOpcode*/ 23, TARGET_VAL(ISD::BUILD_VECTOR),// ->238539
/*238516*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238518*/                  OPC_MoveParent,
/*238519*/                  OPC_CheckType, MVT::v8i32,
/*238521*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*238523*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238526*/                  OPC_EmitMergeInputChains1_1,
/*238527*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VCVTTPS2UDQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238539*/                0, // EndSwitchOpcode
/*238540*/              0, // EndSwitchType
/*238541*/            /*SwitchOpcode*/ 88, TARGET_VAL(ISD::LOAD),// ->238632
/*238544*/              OPC_RecordMemRef,
/*238545*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238546*/              OPC_CheckFoldableChainNode,
/*238547*/              OPC_RecordChild1, // #2 = $src
/*238548*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238550*/              OPC_CheckPredicate, 9, // Predicate_load
/*238552*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*238554*/              OPC_SwitchType /*2 cases */, 36, MVT::v8f64,// ->238593
/*238557*/                OPC_MoveParent,
/*238558*/                OPC_MoveParent,
/*238559*/                OPC_MoveChild2,
/*238560*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*238563*/                OPC_MoveChild0,
/*238564*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238567*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238569*/                OPC_CheckType, MVT::v16i32,
/*238571*/                OPC_MoveParent,
/*238572*/                OPC_MoveParent,
/*238573*/                OPC_CheckType, MVT::v8i64,
/*238575*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*238577*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238580*/                OPC_EmitMergeInputChains1_1,
/*238581*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTTPD2UQQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238593*/              /*SwitchType*/ 36, MVT::v8f32,// ->238631
/*238595*/                OPC_MoveParent,
/*238596*/                OPC_MoveParent,
/*238597*/                OPC_MoveChild2,
/*238598*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*238601*/                OPC_MoveChild0,
/*238602*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238605*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238607*/                OPC_CheckType, MVT::v16i32,
/*238609*/                OPC_MoveParent,
/*238610*/                OPC_MoveParent,
/*238611*/                OPC_CheckType, MVT::v8i64,
/*238613*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*238615*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*238618*/                OPC_EmitMergeInputChains1_1,
/*238619*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTTPS2UQQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*238631*/              0, // EndSwitchType
/*238632*/            0, // EndSwitchOpcode
/*238633*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::SHUF128),// ->238697
/*238636*/            OPC_RecordChild0, // #1 = $src1
/*238637*/            OPC_MoveChild1,
/*238638*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*238641*/            OPC_RecordMemRef,
/*238642*/            OPC_RecordNode, // #2 = 'ld' chained node
/*238643*/            OPC_CheckFoldableChainNode,
/*238644*/            OPC_RecordChild1, // #3 = $src2
/*238645*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238647*/            OPC_CheckPredicate, 9, // Predicate_load
/*238649*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*238651*/            OPC_MoveParent,
/*238652*/            OPC_RecordChild2, // #4 = $src3
/*238653*/            OPC_MoveChild2,
/*238654*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*238657*/            OPC_MoveParent,
/*238658*/            OPC_MoveParent,
/*238659*/            OPC_MoveChild2,
/*238660*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*238663*/            OPC_MoveChild0,
/*238664*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238667*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238669*/            OPC_CheckType, MVT::v16i32,
/*238671*/            OPC_MoveParent,
/*238672*/            OPC_MoveParent,
/*238673*/            OPC_CheckType, MVT::v8i64,
/*238675*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238677*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*238680*/            OPC_EmitMergeInputChains1_2,
/*238681*/            OPC_EmitConvertToTarget, 4,
/*238683*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VSHUFI64X2Zrmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*238697*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::VALIGN),// ->238880
/*238701*/            OPC_RecordChild0, // #1 = $src1
/*238702*/            OPC_MoveChild1,
/*238703*/            OPC_SwitchOpcode /*3 cases */, 56, TARGET_VAL(ISD::BITCAST),// ->238763
/*238707*/              OPC_MoveChild0,
/*238708*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*238711*/              OPC_RecordMemRef,
/*238712*/              OPC_RecordNode, // #2 = 'ld' chained node
/*238713*/              OPC_CheckFoldableChainNode,
/*238714*/              OPC_RecordChild1, // #3 = $src2
/*238715*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238717*/              OPC_CheckPredicate, 9, // Predicate_load
/*238719*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*238721*/              OPC_CheckType, MVT::v4i64,
/*238723*/              OPC_MoveParent,
/*238724*/              OPC_MoveParent,
/*238725*/              OPC_RecordChild2, // #4 = $src3
/*238726*/              OPC_MoveChild2,
/*238727*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*238730*/              OPC_MoveParent,
/*238731*/              OPC_MoveParent,
/*238732*/              OPC_MoveChild2,
/*238733*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238736*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238738*/              OPC_MoveParent,
/*238739*/              OPC_CheckType, MVT::v8i32,
/*238741*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238743*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*238746*/              OPC_EmitMergeInputChains1_2,
/*238747*/              OPC_EmitConvertToTarget, 4,
/*238749*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VALIGNDZ256rmikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*238763*/            /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VBROADCAST),// ->238820
/*238766*/              OPC_MoveChild0,
/*238767*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*238770*/              OPC_RecordMemRef,
/*238771*/              OPC_RecordNode, // #2 = 'ld' chained node
/*238772*/              OPC_CheckFoldableChainNode,
/*238773*/              OPC_RecordChild1, // #3 = $src2
/*238774*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238776*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*238778*/              OPC_CheckType, MVT::i32,
/*238780*/              OPC_MoveParent,
/*238781*/              OPC_MoveParent,
/*238782*/              OPC_RecordChild2, // #4 = $src3
/*238783*/              OPC_MoveChild2,
/*238784*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*238787*/              OPC_MoveParent,
/*238788*/              OPC_MoveParent,
/*238789*/              OPC_MoveChild2,
/*238790*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238793*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238795*/              OPC_MoveParent,
/*238796*/              OPC_CheckType, MVT::v8i32,
/*238798*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238800*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*238803*/              OPC_EmitMergeInputChains1_2,
/*238804*/              OPC_EmitConvertToTarget, 4,
/*238806*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VALIGNDZ256rmbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*238820*/            /*SwitchOpcode*/ 56, TARGET_VAL(ISD::LOAD),// ->238879
/*238823*/              OPC_RecordMemRef,
/*238824*/              OPC_RecordNode, // #2 = 'ld' chained node
/*238825*/              OPC_CheckFoldableChainNode,
/*238826*/              OPC_RecordChild1, // #3 = $src2
/*238827*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238829*/              OPC_CheckPredicate, 9, // Predicate_load
/*238831*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*238833*/              OPC_MoveParent,
/*238834*/              OPC_RecordChild2, // #4 = $src3
/*238835*/              OPC_MoveChild2,
/*238836*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*238839*/              OPC_MoveParent,
/*238840*/              OPC_MoveParent,
/*238841*/              OPC_MoveChild2,
/*238842*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*238845*/              OPC_MoveChild0,
/*238846*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238849*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238851*/              OPC_CheckType, MVT::v16i32,
/*238853*/              OPC_MoveParent,
/*238854*/              OPC_MoveParent,
/*238855*/              OPC_CheckType, MVT::v8i64,
/*238857*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238859*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*238862*/              OPC_EmitMergeInputChains1_2,
/*238863*/              OPC_EmitConvertToTarget, 4,
/*238865*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VALIGNQZrmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*238879*/            0, // EndSwitchOpcode
/*238880*/          /*SwitchOpcode*/ 104|128,1/*232*/, TARGET_VAL(ISD::ABS),// ->239116
/*238884*/            OPC_MoveChild0,
/*238885*/            OPC_SwitchOpcode /*3 cases */, 87, TARGET_VAL(X86ISD::VBROADCAST),// ->238976
/*238889*/              OPC_MoveChild0,
/*238890*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*238893*/              OPC_RecordMemRef,
/*238894*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238895*/              OPC_CheckFoldableChainNode,
/*238896*/              OPC_RecordChild1, // #2 = $src1
/*238897*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238899*/              OPC_SwitchType /*2 cases */, 39, MVT::i64,// ->238941
/*238902*/                OPC_CheckPredicate, 9, // Predicate_load
/*238904*/                OPC_MoveParent,
/*238905*/                OPC_MoveParent,
/*238906*/                OPC_MoveParent,
/*238907*/                OPC_MoveChild2,
/*238908*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*238911*/                OPC_MoveChild0,
/*238912*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238915*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238917*/                OPC_CheckType, MVT::v16i32,
/*238919*/                OPC_MoveParent,
/*238920*/                OPC_MoveParent,
/*238921*/                OPC_CheckType, MVT::v8i64,
/*238923*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238925*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*238928*/                OPC_EmitMergeInputChains1_1,
/*238929*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPABSQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*238941*/              /*SwitchType*/ 32, MVT::i32,// ->238975
/*238943*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*238945*/                OPC_MoveParent,
/*238946*/                OPC_MoveParent,
/*238947*/                OPC_MoveParent,
/*238948*/                OPC_MoveChild2,
/*238949*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*238952*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*238954*/                OPC_MoveParent,
/*238955*/                OPC_CheckType, MVT::v8i32,
/*238957*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238959*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*238962*/                OPC_EmitMergeInputChains1_1,
/*238963*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPABSDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*238975*/              0, // EndSwitchType
/*238976*/            /*SwitchOpcode*/ 87, TARGET_VAL(ISD::BITCAST),// ->239066
/*238979*/              OPC_MoveChild0,
/*238980*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*238983*/              OPC_RecordMemRef,
/*238984*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238985*/              OPC_CheckFoldableChainNode,
/*238986*/              OPC_RecordChild1, // #2 = $src1
/*238987*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238989*/              OPC_CheckPredicate, 9, // Predicate_load
/*238991*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*238993*/              OPC_SwitchType /*2 cases */, 37, MVT::v2i64,// ->239033
/*238996*/                OPC_MoveParent,
/*238997*/                OPC_MoveParent,
/*238998*/                OPC_MoveParent,
/*238999*/                OPC_MoveChild2,
/*239000*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239003*/                OPC_MoveChild0,
/*239004*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239007*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239009*/                OPC_CheckType, MVT::v4i32,
/*239011*/                OPC_MoveParent,
/*239012*/                OPC_MoveParent,
/*239013*/                OPC_CheckType, MVT::v8i16,
/*239015*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*239017*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239020*/                OPC_EmitMergeInputChains1_1,
/*239021*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPABSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239033*/              /*SwitchType*/ 30, MVT::v4i64,// ->239065
/*239035*/                OPC_MoveParent,
/*239036*/                OPC_MoveParent,
/*239037*/                OPC_MoveParent,
/*239038*/                OPC_MoveChild2,
/*239039*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239042*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239044*/                OPC_MoveParent,
/*239045*/                OPC_CheckType, MVT::v8i32,
/*239047*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239049*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239052*/                OPC_EmitMergeInputChains1_1,
/*239053*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPABSDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239065*/              0, // EndSwitchType
/*239066*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->239115
/*239069*/              OPC_RecordMemRef,
/*239070*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239071*/              OPC_CheckFoldableChainNode,
/*239072*/              OPC_RecordChild1, // #2 = $src1
/*239073*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239075*/              OPC_CheckPredicate, 9, // Predicate_load
/*239077*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*239079*/              OPC_MoveParent,
/*239080*/              OPC_MoveParent,
/*239081*/              OPC_MoveChild2,
/*239082*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239085*/              OPC_MoveChild0,
/*239086*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239089*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239091*/              OPC_CheckType, MVT::v16i32,
/*239093*/              OPC_MoveParent,
/*239094*/              OPC_MoveParent,
/*239095*/              OPC_CheckType, MVT::v8i64,
/*239097*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*239099*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239102*/              OPC_EmitMergeInputChains1_1,
/*239103*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPABSQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239115*/            0, // EndSwitchOpcode
/*239116*/          /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::CTLZ),// ->239311
/*239120*/            OPC_MoveChild0,
/*239121*/            OPC_SwitchOpcode /*3 cases */, 87, TARGET_VAL(X86ISD::VBROADCAST),// ->239212
/*239125*/              OPC_MoveChild0,
/*239126*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239129*/              OPC_RecordMemRef,
/*239130*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239131*/              OPC_CheckFoldableChainNode,
/*239132*/              OPC_RecordChild1, // #2 = $src1
/*239133*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239135*/              OPC_SwitchType /*2 cases */, 39, MVT::i64,// ->239177
/*239138*/                OPC_CheckPredicate, 9, // Predicate_load
/*239140*/                OPC_MoveParent,
/*239141*/                OPC_MoveParent,
/*239142*/                OPC_MoveParent,
/*239143*/                OPC_MoveChild2,
/*239144*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239147*/                OPC_MoveChild0,
/*239148*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239151*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239153*/                OPC_CheckType, MVT::v16i32,
/*239155*/                OPC_MoveParent,
/*239156*/                OPC_MoveParent,
/*239157*/                OPC_CheckType, MVT::v8i64,
/*239159*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*239161*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239164*/                OPC_EmitMergeInputChains1_1,
/*239165*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPLZCNTQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239177*/              /*SwitchType*/ 32, MVT::i32,// ->239211
/*239179*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*239181*/                OPC_MoveParent,
/*239182*/                OPC_MoveParent,
/*239183*/                OPC_MoveParent,
/*239184*/                OPC_MoveChild2,
/*239185*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239188*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239190*/                OPC_MoveParent,
/*239191*/                OPC_CheckType, MVT::v8i32,
/*239193*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*239195*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239198*/                OPC_EmitMergeInputChains1_1,
/*239199*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPLZCNTDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239211*/              0, // EndSwitchType
/*239212*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->239261
/*239215*/              OPC_RecordMemRef,
/*239216*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239217*/              OPC_CheckFoldableChainNode,
/*239218*/              OPC_RecordChild1, // #2 = $src1
/*239219*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239221*/              OPC_CheckPredicate, 9, // Predicate_load
/*239223*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*239225*/              OPC_MoveParent,
/*239226*/              OPC_MoveParent,
/*239227*/              OPC_MoveChild2,
/*239228*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239231*/              OPC_MoveChild0,
/*239232*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239235*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239237*/              OPC_CheckType, MVT::v16i32,
/*239239*/              OPC_MoveParent,
/*239240*/              OPC_MoveParent,
/*239241*/              OPC_CheckType, MVT::v8i64,
/*239243*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*239245*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239248*/              OPC_EmitMergeInputChains1_1,
/*239249*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPLZCNTQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239261*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::BITCAST),// ->239310
/*239264*/              OPC_MoveChild0,
/*239265*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239268*/              OPC_RecordMemRef,
/*239269*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239270*/              OPC_CheckFoldableChainNode,
/*239271*/              OPC_RecordChild1, // #2 = $src1
/*239272*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239274*/              OPC_CheckPredicate, 9, // Predicate_load
/*239276*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*239278*/              OPC_CheckType, MVT::v4i64,
/*239280*/              OPC_MoveParent,
/*239281*/              OPC_MoveParent,
/*239282*/              OPC_MoveParent,
/*239283*/              OPC_MoveChild2,
/*239284*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239287*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239289*/              OPC_MoveParent,
/*239290*/              OPC_CheckType, MVT::v8i32,
/*239292*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*239294*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239297*/              OPC_EmitMergeInputChains1_1,
/*239298*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPLZCNTDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239310*/            0, // EndSwitchOpcode
/*239311*/          /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(X86ISD::CONFLICT),// ->239506
/*239315*/            OPC_MoveChild0,
/*239316*/            OPC_SwitchOpcode /*3 cases */, 87, TARGET_VAL(X86ISD::VBROADCAST),// ->239407
/*239320*/              OPC_MoveChild0,
/*239321*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239324*/              OPC_RecordMemRef,
/*239325*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239326*/              OPC_CheckFoldableChainNode,
/*239327*/              OPC_RecordChild1, // #2 = $src1
/*239328*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239330*/              OPC_SwitchType /*2 cases */, 39, MVT::i64,// ->239372
/*239333*/                OPC_CheckPredicate, 9, // Predicate_load
/*239335*/                OPC_MoveParent,
/*239336*/                OPC_MoveParent,
/*239337*/                OPC_MoveParent,
/*239338*/                OPC_MoveChild2,
/*239339*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239342*/                OPC_MoveChild0,
/*239343*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239346*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239348*/                OPC_CheckType, MVT::v16i32,
/*239350*/                OPC_MoveParent,
/*239351*/                OPC_MoveParent,
/*239352*/                OPC_CheckType, MVT::v8i64,
/*239354*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*239356*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239359*/                OPC_EmitMergeInputChains1_1,
/*239360*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPCONFLICTQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239372*/              /*SwitchType*/ 32, MVT::i32,// ->239406
/*239374*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*239376*/                OPC_MoveParent,
/*239377*/                OPC_MoveParent,
/*239378*/                OPC_MoveParent,
/*239379*/                OPC_MoveChild2,
/*239380*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239383*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239385*/                OPC_MoveParent,
/*239386*/                OPC_CheckType, MVT::v8i32,
/*239388*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*239390*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239393*/                OPC_EmitMergeInputChains1_1,
/*239394*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPCONFLICTDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239406*/              0, // EndSwitchType
/*239407*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->239456
/*239410*/              OPC_RecordMemRef,
/*239411*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239412*/              OPC_CheckFoldableChainNode,
/*239413*/              OPC_RecordChild1, // #2 = $src1
/*239414*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239416*/              OPC_CheckPredicate, 9, // Predicate_load
/*239418*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*239420*/              OPC_MoveParent,
/*239421*/              OPC_MoveParent,
/*239422*/              OPC_MoveChild2,
/*239423*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239426*/              OPC_MoveChild0,
/*239427*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239430*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239432*/              OPC_CheckType, MVT::v16i32,
/*239434*/              OPC_MoveParent,
/*239435*/              OPC_MoveParent,
/*239436*/              OPC_CheckType, MVT::v8i64,
/*239438*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*239440*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239443*/              OPC_EmitMergeInputChains1_1,
/*239444*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPCONFLICTQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239456*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::BITCAST),// ->239505
/*239459*/              OPC_MoveChild0,
/*239460*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239463*/              OPC_RecordMemRef,
/*239464*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239465*/              OPC_CheckFoldableChainNode,
/*239466*/              OPC_RecordChild1, // #2 = $src1
/*239467*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239469*/              OPC_CheckPredicate, 9, // Predicate_load
/*239471*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*239473*/              OPC_CheckType, MVT::v4i64,
/*239475*/              OPC_MoveParent,
/*239476*/              OPC_MoveParent,
/*239477*/              OPC_MoveParent,
/*239478*/              OPC_MoveChild2,
/*239479*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239482*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239484*/              OPC_MoveParent,
/*239485*/              OPC_CheckType, MVT::v8i32,
/*239487*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*239489*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239492*/              OPC_EmitMergeInputChains1_1,
/*239493*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPCONFLICTDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239505*/            0, // EndSwitchOpcode
/*239506*/          /*SwitchOpcode*/ 104|128,1/*232*/, TARGET_VAL(ISD::CTPOP),// ->239742
/*239510*/            OPC_MoveChild0,
/*239511*/            OPC_SwitchOpcode /*3 cases */, 87, TARGET_VAL(X86ISD::VBROADCAST),// ->239602
/*239515*/              OPC_MoveChild0,
/*239516*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239519*/              OPC_RecordMemRef,
/*239520*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239521*/              OPC_CheckFoldableChainNode,
/*239522*/              OPC_RecordChild1, // #2 = $src1
/*239523*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239525*/              OPC_SwitchType /*2 cases */, 39, MVT::i64,// ->239567
/*239528*/                OPC_CheckPredicate, 9, // Predicate_load
/*239530*/                OPC_MoveParent,
/*239531*/                OPC_MoveParent,
/*239532*/                OPC_MoveParent,
/*239533*/                OPC_MoveChild2,
/*239534*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239537*/                OPC_MoveChild0,
/*239538*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239541*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239543*/                OPC_CheckType, MVT::v16i32,
/*239545*/                OPC_MoveParent,
/*239546*/                OPC_MoveParent,
/*239547*/                OPC_CheckType, MVT::v8i64,
/*239549*/                OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*239551*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239554*/                OPC_EmitMergeInputChains1_1,
/*239555*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPOPCNTQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239567*/              /*SwitchType*/ 32, MVT::i32,// ->239601
/*239569*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*239571*/                OPC_MoveParent,
/*239572*/                OPC_MoveParent,
/*239573*/                OPC_MoveParent,
/*239574*/                OPC_MoveChild2,
/*239575*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239578*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239580*/                OPC_MoveParent,
/*239581*/                OPC_CheckType, MVT::v8i32,
/*239583*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*239585*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239588*/                OPC_EmitMergeInputChains1_1,
/*239589*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPOPCNTDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239601*/              0, // EndSwitchType
/*239602*/            /*SwitchOpcode*/ 87, TARGET_VAL(ISD::BITCAST),// ->239692
/*239605*/              OPC_MoveChild0,
/*239606*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239609*/              OPC_RecordMemRef,
/*239610*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239611*/              OPC_CheckFoldableChainNode,
/*239612*/              OPC_RecordChild1, // #2 = $src1
/*239613*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239615*/              OPC_CheckPredicate, 9, // Predicate_load
/*239617*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*239619*/              OPC_SwitchType /*2 cases */, 37, MVT::v2i64,// ->239659
/*239622*/                OPC_MoveParent,
/*239623*/                OPC_MoveParent,
/*239624*/                OPC_MoveParent,
/*239625*/                OPC_MoveChild2,
/*239626*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239629*/                OPC_MoveChild0,
/*239630*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239633*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239635*/                OPC_CheckType, MVT::v4i32,
/*239637*/                OPC_MoveParent,
/*239638*/                OPC_MoveParent,
/*239639*/                OPC_CheckType, MVT::v8i16,
/*239641*/                OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*239643*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239646*/                OPC_EmitMergeInputChains1_1,
/*239647*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPOPCNTWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239659*/              /*SwitchType*/ 30, MVT::v4i64,// ->239691
/*239661*/                OPC_MoveParent,
/*239662*/                OPC_MoveParent,
/*239663*/                OPC_MoveParent,
/*239664*/                OPC_MoveChild2,
/*239665*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239668*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239670*/                OPC_MoveParent,
/*239671*/                OPC_CheckType, MVT::v8i32,
/*239673*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*239675*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239678*/                OPC_EmitMergeInputChains1_1,
/*239679*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPOPCNTDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239691*/              0, // EndSwitchType
/*239692*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->239741
/*239695*/              OPC_RecordMemRef,
/*239696*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239697*/              OPC_CheckFoldableChainNode,
/*239698*/              OPC_RecordChild1, // #2 = $src1
/*239699*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239701*/              OPC_CheckPredicate, 9, // Predicate_load
/*239703*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*239705*/              OPC_MoveParent,
/*239706*/              OPC_MoveParent,
/*239707*/              OPC_MoveChild2,
/*239708*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239711*/              OPC_MoveChild0,
/*239712*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239715*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239717*/              OPC_CheckType, MVT::v16i32,
/*239719*/              OPC_MoveParent,
/*239720*/              OPC_MoveParent,
/*239721*/              OPC_CheckType, MVT::v8i64,
/*239723*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*239725*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*239728*/              OPC_EmitMergeInputChains1_1,
/*239729*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPOPCNTQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*239741*/            0, // EndSwitchOpcode
/*239742*/          /*SwitchOpcode*/ 110|128,1/*238*/, TARGET_VAL(X86ISD::UNPCKL),// ->239984
/*239746*/            OPC_RecordChild0, // #1 = $src1
/*239747*/            OPC_MoveChild1,
/*239748*/            OPC_SwitchOpcode /*3 cases */, 89, TARGET_VAL(ISD::BITCAST),// ->239841
/*239752*/              OPC_MoveChild0,
/*239753*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239756*/              OPC_RecordMemRef,
/*239757*/              OPC_RecordNode, // #2 = 'ld' chained node
/*239758*/              OPC_CheckFoldableChainNode,
/*239759*/              OPC_RecordChild1, // #3 = $src2
/*239760*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239762*/              OPC_CheckPredicate, 9, // Predicate_load
/*239764*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*239766*/              OPC_SwitchType /*2 cases */, 38, MVT::v2i64,// ->239807
/*239769*/                OPC_MoveParent,
/*239770*/                OPC_MoveParent,
/*239771*/                OPC_MoveParent,
/*239772*/                OPC_MoveChild2,
/*239773*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239776*/                OPC_MoveChild0,
/*239777*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239780*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239782*/                OPC_CheckType, MVT::v4i32,
/*239784*/                OPC_MoveParent,
/*239785*/                OPC_MoveParent,
/*239786*/                OPC_CheckType, MVT::v8i16,
/*239788*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*239790*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*239793*/                OPC_EmitMergeInputChains1_2,
/*239794*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPUNPCKLWDZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*239807*/              /*SwitchType*/ 31, MVT::v4i64,// ->239840
/*239809*/                OPC_MoveParent,
/*239810*/                OPC_MoveParent,
/*239811*/                OPC_MoveParent,
/*239812*/                OPC_MoveChild2,
/*239813*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239816*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239818*/                OPC_MoveParent,
/*239819*/                OPC_CheckType, MVT::v8i32,
/*239821*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239823*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*239826*/                OPC_EmitMergeInputChains1_2,
/*239827*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPUNPCKLDQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*239840*/              0, // EndSwitchType
/*239841*/            /*SwitchOpcode*/ 89, TARGET_VAL(X86ISD::VBROADCAST),// ->239933
/*239844*/              OPC_MoveChild0,
/*239845*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239848*/              OPC_RecordMemRef,
/*239849*/              OPC_RecordNode, // #2 = 'ld' chained node
/*239850*/              OPC_CheckFoldableChainNode,
/*239851*/              OPC_RecordChild1, // #3 = $src2
/*239852*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239854*/              OPC_SwitchType /*2 cases */, 40, MVT::i64,// ->239897
/*239857*/                OPC_CheckPredicate, 9, // Predicate_load
/*239859*/                OPC_MoveParent,
/*239860*/                OPC_MoveParent,
/*239861*/                OPC_MoveParent,
/*239862*/                OPC_MoveChild2,
/*239863*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239866*/                OPC_MoveChild0,
/*239867*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239870*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239872*/                OPC_CheckType, MVT::v16i32,
/*239874*/                OPC_MoveParent,
/*239875*/                OPC_MoveParent,
/*239876*/                OPC_CheckType, MVT::v8i64,
/*239878*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*239880*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*239883*/                OPC_EmitMergeInputChains1_2,
/*239884*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPUNPCKLQDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*239897*/              /*SwitchType*/ 33, MVT::i32,// ->239932
/*239899*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*239901*/                OPC_MoveParent,
/*239902*/                OPC_MoveParent,
/*239903*/                OPC_MoveParent,
/*239904*/                OPC_MoveChild2,
/*239905*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239908*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239910*/                OPC_MoveParent,
/*239911*/                OPC_CheckType, MVT::v8i32,
/*239913*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239915*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*239918*/                OPC_EmitMergeInputChains1_2,
/*239919*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPUNPCKLDQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*239932*/              0, // EndSwitchType
/*239933*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->239983
/*239936*/              OPC_RecordMemRef,
/*239937*/              OPC_RecordNode, // #2 = 'ld' chained node
/*239938*/              OPC_CheckFoldableChainNode,
/*239939*/              OPC_RecordChild1, // #3 = $src2
/*239940*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239942*/              OPC_CheckPredicate, 9, // Predicate_load
/*239944*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*239946*/              OPC_MoveParent,
/*239947*/              OPC_MoveParent,
/*239948*/              OPC_MoveChild2,
/*239949*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*239952*/              OPC_MoveChild0,
/*239953*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*239956*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*239958*/              OPC_CheckType, MVT::v16i32,
/*239960*/              OPC_MoveParent,
/*239961*/              OPC_MoveParent,
/*239962*/              OPC_CheckType, MVT::v8i64,
/*239964*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*239966*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*239969*/              OPC_EmitMergeInputChains1_2,
/*239970*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPUNPCKLQDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*239983*/            0, // EndSwitchOpcode
/*239984*/          /*SwitchOpcode*/ 110|128,1/*238*/, TARGET_VAL(X86ISD::UNPCKH),// ->240226
/*239988*/            OPC_RecordChild0, // #1 = $src1
/*239989*/            OPC_MoveChild1,
/*239990*/            OPC_SwitchOpcode /*3 cases */, 89, TARGET_VAL(ISD::BITCAST),// ->240083
/*239994*/              OPC_MoveChild0,
/*239995*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239998*/              OPC_RecordMemRef,
/*239999*/              OPC_RecordNode, // #2 = 'ld' chained node
/*240000*/              OPC_CheckFoldableChainNode,
/*240001*/              OPC_RecordChild1, // #3 = $src2
/*240002*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240004*/              OPC_CheckPredicate, 9, // Predicate_load
/*240006*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*240008*/              OPC_SwitchType /*2 cases */, 38, MVT::v2i64,// ->240049
/*240011*/                OPC_MoveParent,
/*240012*/                OPC_MoveParent,
/*240013*/                OPC_MoveParent,
/*240014*/                OPC_MoveChild2,
/*240015*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*240018*/                OPC_MoveChild0,
/*240019*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240022*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240024*/                OPC_CheckType, MVT::v4i32,
/*240026*/                OPC_MoveParent,
/*240027*/                OPC_MoveParent,
/*240028*/                OPC_CheckType, MVT::v8i16,
/*240030*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*240032*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*240035*/                OPC_EmitMergeInputChains1_2,
/*240036*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPUNPCKHWDZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*240049*/              /*SwitchType*/ 31, MVT::v4i64,// ->240082
/*240051*/                OPC_MoveParent,
/*240052*/                OPC_MoveParent,
/*240053*/                OPC_MoveParent,
/*240054*/                OPC_MoveChild2,
/*240055*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240058*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240060*/                OPC_MoveParent,
/*240061*/                OPC_CheckType, MVT::v8i32,
/*240063*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*240065*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*240068*/                OPC_EmitMergeInputChains1_2,
/*240069*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPUNPCKHDQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*240082*/              0, // EndSwitchType
/*240083*/            /*SwitchOpcode*/ 89, TARGET_VAL(X86ISD::VBROADCAST),// ->240175
/*240086*/              OPC_MoveChild0,
/*240087*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240090*/              OPC_RecordMemRef,
/*240091*/              OPC_RecordNode, // #2 = 'ld' chained node
/*240092*/              OPC_CheckFoldableChainNode,
/*240093*/              OPC_RecordChild1, // #3 = $src2
/*240094*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240096*/              OPC_SwitchType /*2 cases */, 40, MVT::i64,// ->240139
/*240099*/                OPC_CheckPredicate, 9, // Predicate_load
/*240101*/                OPC_MoveParent,
/*240102*/                OPC_MoveParent,
/*240103*/                OPC_MoveParent,
/*240104*/                OPC_MoveChild2,
/*240105*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*240108*/                OPC_MoveChild0,
/*240109*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240112*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240114*/                OPC_CheckType, MVT::v16i32,
/*240116*/                OPC_MoveParent,
/*240117*/                OPC_MoveParent,
/*240118*/                OPC_CheckType, MVT::v8i64,
/*240120*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240122*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*240125*/                OPC_EmitMergeInputChains1_2,
/*240126*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPUNPCKHQDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*240139*/              /*SwitchType*/ 33, MVT::i32,// ->240174
/*240141*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*240143*/                OPC_MoveParent,
/*240144*/                OPC_MoveParent,
/*240145*/                OPC_MoveParent,
/*240146*/                OPC_MoveChild2,
/*240147*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240150*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240152*/                OPC_MoveParent,
/*240153*/                OPC_CheckType, MVT::v8i32,
/*240155*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*240157*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*240160*/                OPC_EmitMergeInputChains1_2,
/*240161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPUNPCKHDQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*240174*/              0, // EndSwitchType
/*240175*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->240225
/*240178*/              OPC_RecordMemRef,
/*240179*/              OPC_RecordNode, // #2 = 'ld' chained node
/*240180*/              OPC_CheckFoldableChainNode,
/*240181*/              OPC_RecordChild1, // #3 = $src2
/*240182*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240184*/              OPC_CheckPredicate, 9, // Predicate_load
/*240186*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*240188*/              OPC_MoveParent,
/*240189*/              OPC_MoveParent,
/*240190*/              OPC_MoveChild2,
/*240191*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*240194*/              OPC_MoveChild0,
/*240195*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240198*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240200*/              OPC_CheckType, MVT::v16i32,
/*240202*/              OPC_MoveParent,
/*240203*/              OPC_MoveParent,
/*240204*/              OPC_CheckType, MVT::v8i64,
/*240206*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240208*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*240211*/              OPC_EmitMergeInputChains1_2,
/*240212*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPUNPCKHQDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*240225*/            0, // EndSwitchOpcode
/*240226*/          /*SwitchOpcode*/ 85|128,4/*597*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->240827
/*240230*/            OPC_Scope, 127, /*->240359*/ // 7 children in Scope
/*240232*/              OPC_RecordChild0, // #1 = $src1
/*240233*/              OPC_RecordChild1, // #2 = $src2
/*240234*/              OPC_MoveChild2,
/*240235*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::BITCAST),// ->240298
/*240239*/                OPC_MoveChild0,
/*240240*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240243*/                OPC_RecordMemRef,
/*240244*/                OPC_RecordNode, // #3 = 'ld' chained node
/*240245*/                OPC_CheckFoldableChainNode,
/*240246*/                OPC_RecordChild1, // #4 = $src3
/*240247*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240249*/                OPC_CheckPredicate, 9, // Predicate_load
/*240251*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*240253*/                OPC_CheckType, MVT::v4i64,
/*240255*/                OPC_MoveParent,
/*240256*/                OPC_MoveParent,
/*240257*/                OPC_RecordChild3, // #5 = $src4
/*240258*/                OPC_MoveChild3,
/*240259*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*240262*/                OPC_MoveParent,
/*240263*/                OPC_MoveParent,
/*240264*/                OPC_MoveChild2,
/*240265*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240268*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240270*/                OPC_MoveParent,
/*240271*/                OPC_CheckType, MVT::v8i32,
/*240273*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*240275*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240278*/                OPC_EmitMergeInputChains, 1, 3, 
/*240281*/                OPC_EmitConvertToTarget, 5,
/*240283*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPTERNLOGDZ256rmikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*240298*/              /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST),// ->240358
/*240301*/                OPC_MoveChild0,
/*240302*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240305*/                OPC_RecordMemRef,
/*240306*/                OPC_RecordNode, // #3 = 'ld' chained node
/*240307*/                OPC_CheckFoldableChainNode,
/*240308*/                OPC_RecordChild1, // #4 = $src3
/*240309*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240311*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*240313*/                OPC_CheckType, MVT::i32,
/*240315*/                OPC_MoveParent,
/*240316*/                OPC_MoveParent,
/*240317*/                OPC_RecordChild3, // #5 = $src4
/*240318*/                OPC_MoveChild3,
/*240319*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*240322*/                OPC_MoveParent,
/*240323*/                OPC_MoveParent,
/*240324*/                OPC_MoveChild2,
/*240325*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240328*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240330*/                OPC_MoveParent,
/*240331*/                OPC_CheckType, MVT::v8i32,
/*240333*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*240335*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240338*/                OPC_EmitMergeInputChains, 1, 3, 
/*240341*/                OPC_EmitConvertToTarget, 5,
/*240343*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPTERNLOGDZ256rmbikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*240358*/              0, // EndSwitchOpcode
/*240359*/            /*Scope*/ 66, /*->240426*/
/*240360*/              OPC_MoveChild0,
/*240361*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*240364*/              OPC_MoveChild0,
/*240365*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240368*/              OPC_RecordMemRef,
/*240369*/              OPC_RecordNode, // #1 = 'ld' chained node
/*240370*/              OPC_CheckFoldableChainNode,
/*240371*/              OPC_RecordChild1, // #2 = $src3
/*240372*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240374*/              OPC_CheckPredicate, 9, // Predicate_load
/*240376*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*240378*/              OPC_CheckType, MVT::v4i64,
/*240380*/              OPC_MoveParent,
/*240381*/              OPC_MoveParent,
/*240382*/              OPC_RecordChild1, // #3 = $src2
/*240383*/              OPC_RecordChild2, // #4 = $src1
/*240384*/              OPC_RecordChild3, // #5 = $src4
/*240385*/              OPC_MoveChild3,
/*240386*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*240389*/              OPC_MoveParent,
/*240390*/              OPC_MoveParent,
/*240391*/              OPC_MoveChild2,
/*240392*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240395*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240397*/              OPC_MoveParent,
/*240398*/              OPC_CheckType, MVT::v8i32,
/*240400*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*240402*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240405*/              OPC_EmitMergeInputChains1_1,
/*240406*/              OPC_EmitConvertToTarget, 5,
/*240408*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*240411*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPTERNLOGDZ256rmikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*240426*/            /*Scope*/ 66, /*->240493*/
/*240427*/              OPC_RecordChild0, // #1 = $src1
/*240428*/              OPC_MoveChild1,
/*240429*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*240432*/              OPC_MoveChild0,
/*240433*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240436*/              OPC_RecordMemRef,
/*240437*/              OPC_RecordNode, // #2 = 'ld' chained node
/*240438*/              OPC_CheckFoldableChainNode,
/*240439*/              OPC_RecordChild1, // #3 = $src3
/*240440*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240442*/              OPC_CheckPredicate, 9, // Predicate_load
/*240444*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*240446*/              OPC_CheckType, MVT::v4i64,
/*240448*/              OPC_MoveParent,
/*240449*/              OPC_MoveParent,
/*240450*/              OPC_RecordChild2, // #4 = $src2
/*240451*/              OPC_RecordChild3, // #5 = $src4
/*240452*/              OPC_MoveChild3,
/*240453*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*240456*/              OPC_MoveParent,
/*240457*/              OPC_MoveParent,
/*240458*/              OPC_MoveChild2,
/*240459*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240462*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240464*/              OPC_MoveParent,
/*240465*/              OPC_CheckType, MVT::v8i32,
/*240467*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*240469*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240472*/              OPC_EmitMergeInputChains1_2,
/*240473*/              OPC_EmitConvertToTarget, 5,
/*240475*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*240478*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPTERNLOGDZ256rmikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*240493*/            /*Scope*/ 64, /*->240558*/
/*240494*/              OPC_MoveChild0,
/*240495*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*240498*/              OPC_MoveChild0,
/*240499*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240502*/              OPC_RecordMemRef,
/*240503*/              OPC_RecordNode, // #1 = 'ld' chained node
/*240504*/              OPC_CheckFoldableChainNode,
/*240505*/              OPC_RecordChild1, // #2 = $src3
/*240506*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240508*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*240510*/              OPC_CheckType, MVT::i32,
/*240512*/              OPC_MoveParent,
/*240513*/              OPC_MoveParent,
/*240514*/              OPC_RecordChild1, // #3 = $src2
/*240515*/              OPC_RecordChild2, // #4 = $src1
/*240516*/              OPC_RecordChild3, // #5 = $src4
/*240517*/              OPC_MoveChild3,
/*240518*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*240521*/              OPC_MoveParent,
/*240522*/              OPC_MoveParent,
/*240523*/              OPC_MoveChild2,
/*240524*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240527*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240529*/              OPC_MoveParent,
/*240530*/              OPC_CheckType, MVT::v8i32,
/*240532*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*240534*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240537*/              OPC_EmitMergeInputChains1_1,
/*240538*/              OPC_EmitConvertToTarget, 5,
/*240540*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*240543*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPTERNLOGDZ256rmbikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*240558*/            /*Scope*/ 4|128,1/*132*/, /*->240692*/
/*240560*/              OPC_RecordChild0, // #1 = $src1
/*240561*/              OPC_Scope, 63, /*->240626*/ // 2 children in Scope
/*240563*/                OPC_MoveChild1,
/*240564*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*240567*/                OPC_MoveChild0,
/*240568*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240571*/                OPC_RecordMemRef,
/*240572*/                OPC_RecordNode, // #2 = 'ld' chained node
/*240573*/                OPC_CheckFoldableChainNode,
/*240574*/                OPC_RecordChild1, // #3 = $src3
/*240575*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240577*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*240579*/                OPC_CheckType, MVT::i32,
/*240581*/                OPC_MoveParent,
/*240582*/                OPC_MoveParent,
/*240583*/                OPC_RecordChild2, // #4 = $src2
/*240584*/                OPC_RecordChild3, // #5 = $src4
/*240585*/                OPC_MoveChild3,
/*240586*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*240589*/                OPC_MoveParent,
/*240590*/                OPC_MoveParent,
/*240591*/                OPC_MoveChild2,
/*240592*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240595*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240597*/                OPC_MoveParent,
/*240598*/                OPC_CheckType, MVT::v8i32,
/*240600*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*240602*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240605*/                OPC_EmitMergeInputChains1_2,
/*240606*/                OPC_EmitConvertToTarget, 5,
/*240608*/                OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*240611*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPTERNLOGDZ256rmbikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*240626*/              /*Scope*/ 64, /*->240691*/
/*240627*/                OPC_RecordChild1, // #2 = $src2
/*240628*/                OPC_MoveChild2,
/*240629*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240632*/                OPC_RecordMemRef,
/*240633*/                OPC_RecordNode, // #3 = 'ld' chained node
/*240634*/                OPC_CheckFoldableChainNode,
/*240635*/                OPC_RecordChild1, // #4 = $src3
/*240636*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240638*/                OPC_CheckPredicate, 9, // Predicate_load
/*240640*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*240642*/                OPC_MoveParent,
/*240643*/                OPC_RecordChild3, // #5 = $src4
/*240644*/                OPC_MoveChild3,
/*240645*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*240648*/                OPC_MoveParent,
/*240649*/                OPC_MoveParent,
/*240650*/                OPC_MoveChild2,
/*240651*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*240654*/                OPC_MoveChild0,
/*240655*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240658*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240660*/                OPC_CheckType, MVT::v16i32,
/*240662*/                OPC_MoveParent,
/*240663*/                OPC_MoveParent,
/*240664*/                OPC_CheckType, MVT::v8i64,
/*240666*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240668*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240671*/                OPC_EmitMergeInputChains, 1, 3, 
/*240674*/                OPC_EmitConvertToTarget, 5,
/*240676*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPTERNLOGQZrmikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*240691*/              0, /*End of Scope*/
/*240692*/            /*Scope*/ 66, /*->240759*/
/*240693*/              OPC_MoveChild0,
/*240694*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240697*/              OPC_RecordMemRef,
/*240698*/              OPC_RecordNode, // #1 = 'ld' chained node
/*240699*/              OPC_CheckFoldableChainNode,
/*240700*/              OPC_RecordChild1, // #2 = $src3
/*240701*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240703*/              OPC_CheckPredicate, 9, // Predicate_load
/*240705*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*240707*/              OPC_MoveParent,
/*240708*/              OPC_RecordChild1, // #3 = $src2
/*240709*/              OPC_RecordChild2, // #4 = $src1
/*240710*/              OPC_RecordChild3, // #5 = $src4
/*240711*/              OPC_MoveChild3,
/*240712*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*240715*/              OPC_MoveParent,
/*240716*/              OPC_MoveParent,
/*240717*/              OPC_MoveChild2,
/*240718*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*240721*/              OPC_MoveChild0,
/*240722*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240725*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240727*/              OPC_CheckType, MVT::v16i32,
/*240729*/              OPC_MoveParent,
/*240730*/              OPC_MoveParent,
/*240731*/              OPC_CheckType, MVT::v8i64,
/*240733*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240735*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240738*/              OPC_EmitMergeInputChains1_1,
/*240739*/              OPC_EmitConvertToTarget, 5,
/*240741*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*240744*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPTERNLOGQZrmikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*240759*/            /*Scope*/ 66, /*->240826*/
/*240760*/              OPC_RecordChild0, // #1 = $src1
/*240761*/              OPC_MoveChild1,
/*240762*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240765*/              OPC_RecordMemRef,
/*240766*/              OPC_RecordNode, // #2 = 'ld' chained node
/*240767*/              OPC_CheckFoldableChainNode,
/*240768*/              OPC_RecordChild1, // #3 = $src3
/*240769*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240771*/              OPC_CheckPredicate, 9, // Predicate_load
/*240773*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*240775*/              OPC_MoveParent,
/*240776*/              OPC_RecordChild2, // #4 = $src2
/*240777*/              OPC_RecordChild3, // #5 = $src4
/*240778*/              OPC_MoveChild3,
/*240779*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*240782*/              OPC_MoveParent,
/*240783*/              OPC_MoveParent,
/*240784*/              OPC_MoveChild2,
/*240785*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*240788*/              OPC_MoveChild0,
/*240789*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240792*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240794*/              OPC_CheckType, MVT::v16i32,
/*240796*/              OPC_MoveParent,
/*240797*/              OPC_MoveParent,
/*240798*/              OPC_CheckType, MVT::v8i64,
/*240800*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240802*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240805*/              OPC_EmitMergeInputChains1_2,
/*240806*/              OPC_EmitConvertToTarget, 5,
/*240808*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*240811*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPTERNLOGQZrmikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*240826*/            0, /*End of Scope*/
/*240827*/          /*SwitchOpcode*/ 126|128,1/*254*/, TARGET_VAL(X86ISD::VSHLDV),// ->241085
/*240831*/            OPC_RecordChild0, // #1 = $src1
/*240832*/            OPC_RecordChild1, // #2 = $src2
/*240833*/            OPC_MoveChild2,
/*240834*/            OPC_SwitchOpcode /*3 cases */, 95, TARGET_VAL(ISD::BITCAST),// ->240933
/*240838*/              OPC_MoveChild0,
/*240839*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240842*/              OPC_RecordMemRef,
/*240843*/              OPC_RecordNode, // #3 = 'ld' chained node
/*240844*/              OPC_CheckFoldableChainNode,
/*240845*/              OPC_RecordChild1, // #4 = $src3
/*240846*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240848*/              OPC_CheckPredicate, 9, // Predicate_load
/*240850*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*240852*/              OPC_SwitchType /*2 cases */, 41, MVT::v2i64,// ->240896
/*240855*/                OPC_MoveParent,
/*240856*/                OPC_MoveParent,
/*240857*/                OPC_MoveParent,
/*240858*/                OPC_MoveChild2,
/*240859*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*240862*/                OPC_MoveChild0,
/*240863*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240866*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240868*/                OPC_CheckType, MVT::v4i32,
/*240870*/                OPC_MoveParent,
/*240871*/                OPC_MoveParent,
/*240872*/                OPC_CheckType, MVT::v8i16,
/*240874*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*240876*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*240879*/                OPC_EmitMergeInputChains, 1, 3, 
/*240882*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSHLDVWZ128mkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*240896*/              /*SwitchType*/ 34, MVT::v4i64,// ->240932
/*240898*/                OPC_MoveParent,
/*240899*/                OPC_MoveParent,
/*240900*/                OPC_MoveParent,
/*240901*/                OPC_MoveChild2,
/*240902*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240905*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240907*/                OPC_MoveParent,
/*240908*/                OPC_CheckType, MVT::v8i32,
/*240910*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*240912*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*240915*/                OPC_EmitMergeInputChains, 1, 3, 
/*240918*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSHLDVDZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*240932*/              0, // EndSwitchType
/*240933*/            /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::VBROADCAST),// ->241031
/*240936*/              OPC_MoveChild0,
/*240937*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240940*/              OPC_RecordMemRef,
/*240941*/              OPC_RecordNode, // #3 = 'ld' chained node
/*240942*/              OPC_CheckFoldableChainNode,
/*240943*/              OPC_RecordChild1, // #4 = $src3
/*240944*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240946*/              OPC_SwitchType /*2 cases */, 43, MVT::i64,// ->240992
/*240949*/                OPC_CheckPredicate, 9, // Predicate_load
/*240951*/                OPC_MoveParent,
/*240952*/                OPC_MoveParent,
/*240953*/                OPC_MoveParent,
/*240954*/                OPC_MoveChild2,
/*240955*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*240958*/                OPC_MoveChild0,
/*240959*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*240962*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*240964*/                OPC_CheckType, MVT::v16i32,
/*240966*/                OPC_MoveParent,
/*240967*/                OPC_MoveParent,
/*240968*/                OPC_CheckType, MVT::v8i64,
/*240970*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*240972*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*240975*/                OPC_EmitMergeInputChains, 1, 3, 
/*240978*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSHLDVQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*240992*/              /*SwitchType*/ 36, MVT::i32,// ->241030
/*240994*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*240996*/                OPC_MoveParent,
/*240997*/                OPC_MoveParent,
/*240998*/                OPC_MoveParent,
/*240999*/                OPC_MoveChild2,
/*241000*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241003*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241005*/                OPC_MoveParent,
/*241006*/                OPC_CheckType, MVT::v8i32,
/*241008*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*241010*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*241013*/                OPC_EmitMergeInputChains, 1, 3, 
/*241016*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSHLDVDZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*241030*/              0, // EndSwitchType
/*241031*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->241084
/*241034*/              OPC_RecordMemRef,
/*241035*/              OPC_RecordNode, // #3 = 'ld' chained node
/*241036*/              OPC_CheckFoldableChainNode,
/*241037*/              OPC_RecordChild1, // #4 = $src3
/*241038*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241040*/              OPC_CheckPredicate, 9, // Predicate_load
/*241042*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*241044*/              OPC_MoveParent,
/*241045*/              OPC_MoveParent,
/*241046*/              OPC_MoveChild2,
/*241047*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*241050*/              OPC_MoveChild0,
/*241051*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241054*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241056*/              OPC_CheckType, MVT::v16i32,
/*241058*/              OPC_MoveParent,
/*241059*/              OPC_MoveParent,
/*241060*/              OPC_CheckType, MVT::v8i64,
/*241062*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*241064*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*241067*/              OPC_EmitMergeInputChains, 1, 3, 
/*241070*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSHLDVQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*241084*/            0, // EndSwitchOpcode
/*241085*/          /*SwitchOpcode*/ 126|128,1/*254*/, TARGET_VAL(X86ISD::VSHRDV),// ->241343
/*241089*/            OPC_RecordChild0, // #1 = $src1
/*241090*/            OPC_RecordChild1, // #2 = $src2
/*241091*/            OPC_MoveChild2,
/*241092*/            OPC_SwitchOpcode /*3 cases */, 95, TARGET_VAL(ISD::BITCAST),// ->241191
/*241096*/              OPC_MoveChild0,
/*241097*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*241100*/              OPC_RecordMemRef,
/*241101*/              OPC_RecordNode, // #3 = 'ld' chained node
/*241102*/              OPC_CheckFoldableChainNode,
/*241103*/              OPC_RecordChild1, // #4 = $src3
/*241104*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241106*/              OPC_CheckPredicate, 9, // Predicate_load
/*241108*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*241110*/              OPC_SwitchType /*2 cases */, 41, MVT::v2i64,// ->241154
/*241113*/                OPC_MoveParent,
/*241114*/                OPC_MoveParent,
/*241115*/                OPC_MoveParent,
/*241116*/                OPC_MoveChild2,
/*241117*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*241120*/                OPC_MoveChild0,
/*241121*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241124*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241126*/                OPC_CheckType, MVT::v4i32,
/*241128*/                OPC_MoveParent,
/*241129*/                OPC_MoveParent,
/*241130*/                OPC_CheckType, MVT::v8i16,
/*241132*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*241134*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*241137*/                OPC_EmitMergeInputChains, 1, 3, 
/*241140*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSHRDVWZ128mkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*241154*/              /*SwitchType*/ 34, MVT::v4i64,// ->241190
/*241156*/                OPC_MoveParent,
/*241157*/                OPC_MoveParent,
/*241158*/                OPC_MoveParent,
/*241159*/                OPC_MoveChild2,
/*241160*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241163*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241165*/                OPC_MoveParent,
/*241166*/                OPC_CheckType, MVT::v8i32,
/*241168*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*241170*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*241173*/                OPC_EmitMergeInputChains, 1, 3, 
/*241176*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSHRDVDZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*241190*/              0, // EndSwitchType
/*241191*/            /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::VBROADCAST),// ->241289
/*241194*/              OPC_MoveChild0,
/*241195*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*241198*/              OPC_RecordMemRef,
/*241199*/              OPC_RecordNode, // #3 = 'ld' chained node
/*241200*/              OPC_CheckFoldableChainNode,
/*241201*/              OPC_RecordChild1, // #4 = $src3
/*241202*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241204*/              OPC_SwitchType /*2 cases */, 43, MVT::i64,// ->241250
/*241207*/                OPC_CheckPredicate, 9, // Predicate_load
/*241209*/                OPC_MoveParent,
/*241210*/                OPC_MoveParent,
/*241211*/                OPC_MoveParent,
/*241212*/                OPC_MoveChild2,
/*241213*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*241216*/                OPC_MoveChild0,
/*241217*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241220*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241222*/                OPC_CheckType, MVT::v16i32,
/*241224*/                OPC_MoveParent,
/*241225*/                OPC_MoveParent,
/*241226*/                OPC_CheckType, MVT::v8i64,
/*241228*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*241230*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*241233*/                OPC_EmitMergeInputChains, 1, 3, 
/*241236*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSHRDVQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*241250*/              /*SwitchType*/ 36, MVT::i32,// ->241288
/*241252*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*241254*/                OPC_MoveParent,
/*241255*/                OPC_MoveParent,
/*241256*/                OPC_MoveParent,
/*241257*/                OPC_MoveChild2,
/*241258*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241261*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241263*/                OPC_MoveParent,
/*241264*/                OPC_CheckType, MVT::v8i32,
/*241266*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*241268*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*241271*/                OPC_EmitMergeInputChains, 1, 3, 
/*241274*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSHRDVDZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*241288*/              0, // EndSwitchType
/*241289*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->241342
/*241292*/              OPC_RecordMemRef,
/*241293*/              OPC_RecordNode, // #3 = 'ld' chained node
/*241294*/              OPC_CheckFoldableChainNode,
/*241295*/              OPC_RecordChild1, // #4 = $src3
/*241296*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241298*/              OPC_CheckPredicate, 9, // Predicate_load
/*241300*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*241302*/              OPC_MoveParent,
/*241303*/              OPC_MoveParent,
/*241304*/              OPC_MoveChild2,
/*241305*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*241308*/              OPC_MoveChild0,
/*241309*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241312*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241314*/              OPC_CheckType, MVT::v16i32,
/*241316*/              OPC_MoveParent,
/*241317*/              OPC_MoveParent,
/*241318*/              OPC_CheckType, MVT::v8i64,
/*241320*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*241322*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*241325*/              OPC_EmitMergeInputChains, 1, 3, 
/*241328*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSHRDVQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*241342*/            0, // EndSwitchOpcode
/*241343*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::VSHLD),// ->241526
/*241347*/            OPC_RecordChild0, // #1 = $src1
/*241348*/            OPC_MoveChild1,
/*241349*/            OPC_SwitchOpcode /*3 cases */, 56, TARGET_VAL(ISD::BITCAST),// ->241409
/*241353*/              OPC_MoveChild0,
/*241354*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*241357*/              OPC_RecordMemRef,
/*241358*/              OPC_RecordNode, // #2 = 'ld' chained node
/*241359*/              OPC_CheckFoldableChainNode,
/*241360*/              OPC_RecordChild1, // #3 = $src2
/*241361*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241363*/              OPC_CheckPredicate, 9, // Predicate_load
/*241365*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*241367*/              OPC_CheckType, MVT::v4i64,
/*241369*/              OPC_MoveParent,
/*241370*/              OPC_MoveParent,
/*241371*/              OPC_RecordChild2, // #4 = $src3
/*241372*/              OPC_MoveChild2,
/*241373*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*241376*/              OPC_MoveParent,
/*241377*/              OPC_MoveParent,
/*241378*/              OPC_MoveChild2,
/*241379*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241382*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241384*/              OPC_MoveParent,
/*241385*/              OPC_CheckType, MVT::v8i32,
/*241387*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*241389*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*241392*/              OPC_EmitMergeInputChains1_2,
/*241393*/              OPC_EmitConvertToTarget, 4,
/*241395*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHLDDZ256rmikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*241409*/            /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VBROADCAST),// ->241466
/*241412*/              OPC_MoveChild0,
/*241413*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*241416*/              OPC_RecordMemRef,
/*241417*/              OPC_RecordNode, // #2 = 'ld' chained node
/*241418*/              OPC_CheckFoldableChainNode,
/*241419*/              OPC_RecordChild1, // #3 = $src2
/*241420*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241422*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*241424*/              OPC_CheckType, MVT::i32,
/*241426*/              OPC_MoveParent,
/*241427*/              OPC_MoveParent,
/*241428*/              OPC_RecordChild2, // #4 = $src3
/*241429*/              OPC_MoveChild2,
/*241430*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*241433*/              OPC_MoveParent,
/*241434*/              OPC_MoveParent,
/*241435*/              OPC_MoveChild2,
/*241436*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241439*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241441*/              OPC_MoveParent,
/*241442*/              OPC_CheckType, MVT::v8i32,
/*241444*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*241446*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*241449*/              OPC_EmitMergeInputChains1_2,
/*241450*/              OPC_EmitConvertToTarget, 4,
/*241452*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHLDDZ256rmbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*241466*/            /*SwitchOpcode*/ 56, TARGET_VAL(ISD::LOAD),// ->241525
/*241469*/              OPC_RecordMemRef,
/*241470*/              OPC_RecordNode, // #2 = 'ld' chained node
/*241471*/              OPC_CheckFoldableChainNode,
/*241472*/              OPC_RecordChild1, // #3 = $src2
/*241473*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241475*/              OPC_CheckPredicate, 9, // Predicate_load
/*241477*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*241479*/              OPC_MoveParent,
/*241480*/              OPC_RecordChild2, // #4 = $src3
/*241481*/              OPC_MoveChild2,
/*241482*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*241485*/              OPC_MoveParent,
/*241486*/              OPC_MoveParent,
/*241487*/              OPC_MoveChild2,
/*241488*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*241491*/              OPC_MoveChild0,
/*241492*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241495*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241497*/              OPC_CheckType, MVT::v16i32,
/*241499*/              OPC_MoveParent,
/*241500*/              OPC_MoveParent,
/*241501*/              OPC_CheckType, MVT::v8i64,
/*241503*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*241505*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*241508*/              OPC_EmitMergeInputChains1_2,
/*241509*/              OPC_EmitConvertToTarget, 4,
/*241511*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSHLDQZrmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*241525*/            0, // EndSwitchOpcode
/*241526*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::VSHRD),// ->241709
/*241530*/            OPC_RecordChild0, // #1 = $src1
/*241531*/            OPC_MoveChild1,
/*241532*/            OPC_SwitchOpcode /*3 cases */, 56, TARGET_VAL(ISD::BITCAST),// ->241592
/*241536*/              OPC_MoveChild0,
/*241537*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*241540*/              OPC_RecordMemRef,
/*241541*/              OPC_RecordNode, // #2 = 'ld' chained node
/*241542*/              OPC_CheckFoldableChainNode,
/*241543*/              OPC_RecordChild1, // #3 = $src2
/*241544*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241546*/              OPC_CheckPredicate, 9, // Predicate_load
/*241548*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*241550*/              OPC_CheckType, MVT::v4i64,
/*241552*/              OPC_MoveParent,
/*241553*/              OPC_MoveParent,
/*241554*/              OPC_RecordChild2, // #4 = $src3
/*241555*/              OPC_MoveChild2,
/*241556*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*241559*/              OPC_MoveParent,
/*241560*/              OPC_MoveParent,
/*241561*/              OPC_MoveChild2,
/*241562*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241565*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241567*/              OPC_MoveParent,
/*241568*/              OPC_CheckType, MVT::v8i32,
/*241570*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*241572*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*241575*/              OPC_EmitMergeInputChains1_2,
/*241576*/              OPC_EmitConvertToTarget, 4,
/*241578*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHRDDZ256rmikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*241592*/            /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VBROADCAST),// ->241649
/*241595*/              OPC_MoveChild0,
/*241596*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*241599*/              OPC_RecordMemRef,
/*241600*/              OPC_RecordNode, // #2 = 'ld' chained node
/*241601*/              OPC_CheckFoldableChainNode,
/*241602*/              OPC_RecordChild1, // #3 = $src2
/*241603*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241605*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*241607*/              OPC_CheckType, MVT::i32,
/*241609*/              OPC_MoveParent,
/*241610*/              OPC_MoveParent,
/*241611*/              OPC_RecordChild2, // #4 = $src3
/*241612*/              OPC_MoveChild2,
/*241613*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*241616*/              OPC_MoveParent,
/*241617*/              OPC_MoveParent,
/*241618*/              OPC_MoveChild2,
/*241619*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241622*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241624*/              OPC_MoveParent,
/*241625*/              OPC_CheckType, MVT::v8i32,
/*241627*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*241629*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*241632*/              OPC_EmitMergeInputChains1_2,
/*241633*/              OPC_EmitConvertToTarget, 4,
/*241635*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHRDDZ256rmbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*241649*/            /*SwitchOpcode*/ 56, TARGET_VAL(ISD::LOAD),// ->241708
/*241652*/              OPC_RecordMemRef,
/*241653*/              OPC_RecordNode, // #2 = 'ld' chained node
/*241654*/              OPC_CheckFoldableChainNode,
/*241655*/              OPC_RecordChild1, // #3 = $src2
/*241656*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241658*/              OPC_CheckPredicate, 9, // Predicate_load
/*241660*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*241662*/              OPC_MoveParent,
/*241663*/              OPC_RecordChild2, // #4 = $src3
/*241664*/              OPC_MoveChild2,
/*241665*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*241668*/              OPC_MoveParent,
/*241669*/              OPC_MoveParent,
/*241670*/              OPC_MoveChild2,
/*241671*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*241674*/              OPC_MoveChild0,
/*241675*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241678*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241680*/              OPC_CheckType, MVT::v16i32,
/*241682*/              OPC_MoveParent,
/*241683*/              OPC_MoveParent,
/*241684*/              OPC_CheckType, MVT::v8i64,
/*241686*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*241688*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*241691*/              OPC_EmitMergeInputChains1_2,
/*241692*/              OPC_EmitConvertToTarget, 4,
/*241694*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSHRDQZrmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*241708*/            0, // EndSwitchOpcode
/*241709*/          /*SwitchOpcode*/ 14|128,1/*142*/, TARGET_VAL(X86ISD::EXPAND),// ->241855
/*241713*/            OPC_MoveChild0,
/*241714*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::BITCAST),// ->241805
/*241718*/              OPC_MoveChild0,
/*241719*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*241722*/              OPC_RecordMemRef,
/*241723*/              OPC_RecordNode, // #1 = 'ld' chained node
/*241724*/              OPC_CheckFoldableChainNode,
/*241725*/              OPC_RecordChild1, // #2 = $src1
/*241726*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241728*/              OPC_CheckPredicate, 9, // Predicate_load
/*241730*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*241732*/              OPC_SwitchType /*2 cases */, 37, MVT::v2i64,// ->241772
/*241735*/                OPC_MoveParent,
/*241736*/                OPC_MoveParent,
/*241737*/                OPC_MoveParent,
/*241738*/                OPC_MoveChild2,
/*241739*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*241742*/                OPC_MoveChild0,
/*241743*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241746*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241748*/                OPC_CheckType, MVT::v4i32,
/*241750*/                OPC_MoveParent,
/*241751*/                OPC_MoveParent,
/*241752*/                OPC_CheckType, MVT::v8i16,
/*241754*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*241756*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*241759*/                OPC_EmitMergeInputChains1_1,
/*241760*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPEXPANDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*241772*/              /*SwitchType*/ 30, MVT::v4i64,// ->241804
/*241774*/                OPC_MoveParent,
/*241775*/                OPC_MoveParent,
/*241776*/                OPC_MoveParent,
/*241777*/                OPC_MoveChild2,
/*241778*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241781*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241783*/                OPC_MoveParent,
/*241784*/                OPC_CheckType, MVT::v8i32,
/*241786*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241788*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*241791*/                OPC_EmitMergeInputChains1_1,
/*241792*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPEXPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*241804*/              0, // EndSwitchType
/*241805*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->241854
/*241808*/              OPC_RecordMemRef,
/*241809*/              OPC_RecordNode, // #1 = 'ld' chained node
/*241810*/              OPC_CheckFoldableChainNode,
/*241811*/              OPC_RecordChild1, // #2 = $src1
/*241812*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241814*/              OPC_CheckPredicate, 9, // Predicate_load
/*241816*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*241818*/              OPC_MoveParent,
/*241819*/              OPC_MoveParent,
/*241820*/              OPC_MoveChild2,
/*241821*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*241824*/              OPC_MoveChild0,
/*241825*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241828*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241830*/              OPC_CheckType, MVT::v16i32,
/*241832*/              OPC_MoveParent,
/*241833*/              OPC_MoveParent,
/*241834*/              OPC_CheckType, MVT::v8i64,
/*241836*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241838*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*241841*/              OPC_EmitMergeInputChains1_1,
/*241842*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPEXPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*241854*/            0, // EndSwitchOpcode
/*241855*/          /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->242002
/*241859*/            OPC_MoveChild0,
/*241860*/            OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::LOAD),// ->241952
/*241864*/              OPC_RecordMemRef,
/*241865*/              OPC_RecordNode, // #1 = 'ld' chained node
/*241866*/              OPC_CheckFoldableChainNode,
/*241867*/              OPC_RecordChild1, // #2 = $src
/*241868*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241870*/              OPC_CheckPredicate, 9, // Predicate_load
/*241872*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*241874*/              OPC_SwitchType /*2 cases */, 36, MVT::v4i64,// ->241913
/*241877*/                OPC_MoveParent,
/*241878*/                OPC_MoveParent,
/*241879*/                OPC_MoveChild2,
/*241880*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*241883*/                OPC_MoveChild0,
/*241884*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241887*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241889*/                OPC_CheckType, MVT::v16i32,
/*241891*/                OPC_MoveParent,
/*241892*/                OPC_MoveParent,
/*241893*/                OPC_CheckType, MVT::v8i64,
/*241895*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241897*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241900*/                OPC_EmitMergeInputChains1_1,
/*241901*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X4rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VBROADCASTI64X4rmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241913*/              /*SwitchType*/ 36, MVT::v2i64,// ->241951
/*241915*/                OPC_MoveParent,
/*241916*/                OPC_MoveParent,
/*241917*/                OPC_MoveChild2,
/*241918*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*241921*/                OPC_MoveChild0,
/*241922*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241925*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241927*/                OPC_CheckType, MVT::v16i32,
/*241929*/                OPC_MoveParent,
/*241930*/                OPC_MoveParent,
/*241931*/                OPC_CheckType, MVT::v8i64,
/*241933*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*241935*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241938*/                OPC_EmitMergeInputChains1_1,
/*241939*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X2rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VBROADCASTI64X2rmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241951*/              0, // EndSwitchType
/*241952*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::BITCAST),// ->242001
/*241955*/              OPC_MoveChild0,
/*241956*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*241959*/              OPC_RecordMemRef,
/*241960*/              OPC_RecordNode, // #1 = 'ld' chained node
/*241961*/              OPC_CheckFoldableChainNode,
/*241962*/              OPC_RecordChild1, // #2 = $src
/*241963*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241965*/              OPC_CheckPredicate, 9, // Predicate_load
/*241967*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*241969*/              OPC_CheckType, MVT::v2i64,
/*241971*/              OPC_MoveParent,
/*241972*/              OPC_MoveParent,
/*241973*/              OPC_MoveParent,
/*241974*/              OPC_MoveChild2,
/*241975*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*241978*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*241980*/              OPC_MoveParent,
/*241981*/              OPC_CheckType, MVT::v8i32,
/*241983*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*241985*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241988*/              OPC_EmitMergeInputChains1_1,
/*241989*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VBROADCASTI32X4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*242001*/            0, // EndSwitchOpcode
/*242002*/          /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VPMADDWD),// ->242113
/*242005*/            OPC_Scope, 52, /*->242059*/ // 2 children in Scope
/*242007*/              OPC_RecordChild0, // #1 = $src1
/*242008*/              OPC_MoveChild1,
/*242009*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*242012*/              OPC_MoveChild0,
/*242013*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242016*/              OPC_RecordMemRef,
/*242017*/              OPC_RecordNode, // #2 = 'ld' chained node
/*242018*/              OPC_CheckFoldableChainNode,
/*242019*/              OPC_RecordChild1, // #3 = $src2
/*242020*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242022*/              OPC_CheckPredicate, 9, // Predicate_load
/*242024*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242026*/              OPC_CheckType, MVT::v4i64,
/*242028*/              OPC_MoveParent,
/*242029*/              OPC_MoveParent,
/*242030*/              OPC_MoveParent,
/*242031*/              OPC_MoveChild2,
/*242032*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242035*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242037*/              OPC_MoveParent,
/*242038*/              OPC_CheckType, MVT::v8i32,
/*242040*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242042*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*242045*/              OPC_EmitMergeInputChains1_2,
/*242046*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpmaddwd:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPMADDWDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242059*/            /*Scope*/ 52, /*->242112*/
/*242060*/              OPC_MoveChild0,
/*242061*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*242064*/              OPC_MoveChild0,
/*242065*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242068*/              OPC_RecordMemRef,
/*242069*/              OPC_RecordNode, // #1 = 'ld' chained node
/*242070*/              OPC_CheckFoldableChainNode,
/*242071*/              OPC_RecordChild1, // #2 = $src2
/*242072*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242074*/              OPC_CheckPredicate, 9, // Predicate_load
/*242076*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242078*/              OPC_CheckType, MVT::v4i64,
/*242080*/              OPC_MoveParent,
/*242081*/              OPC_MoveParent,
/*242082*/              OPC_RecordChild1, // #3 = $src1
/*242083*/              OPC_MoveParent,
/*242084*/              OPC_MoveChild2,
/*242085*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242088*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242090*/              OPC_MoveParent,
/*242091*/              OPC_CheckType, MVT::v8i32,
/*242093*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242095*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*242098*/              OPC_EmitMergeInputChains1_1,
/*242099*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpmaddwd:{ *:[v8i32] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPMADDWDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242112*/            0, /*End of Scope*/
/*242113*/          /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(X86ISD::VSHL),// ->242252
/*242117*/            OPC_RecordChild0, // #1 = $src1
/*242118*/            OPC_MoveChild1,
/*242119*/            OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::BITCAST),// ->242172
/*242123*/              OPC_MoveChild0,
/*242124*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242127*/              OPC_RecordMemRef,
/*242128*/              OPC_RecordNode, // #2 = 'ld' chained node
/*242129*/              OPC_CheckFoldableChainNode,
/*242130*/              OPC_RecordChild1, // #3 = $src2
/*242131*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242133*/              OPC_CheckPredicate, 9, // Predicate_load
/*242135*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242137*/              OPC_CheckType, MVT::v2i64,
/*242139*/              OPC_MoveParent,
/*242140*/              OPC_CheckType, MVT::v4i32,
/*242142*/              OPC_MoveParent,
/*242143*/              OPC_MoveParent,
/*242144*/              OPC_MoveChild2,
/*242145*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242148*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242150*/              OPC_MoveParent,
/*242151*/              OPC_CheckType, MVT::v8i32,
/*242153*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*242155*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*242158*/              OPC_EmitMergeInputChains1_2,
/*242159*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSLLDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242172*/            /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->242251
/*242175*/              OPC_RecordMemRef,
/*242176*/              OPC_RecordNode, // #2 = 'ld' chained node
/*242177*/              OPC_CheckFoldableChainNode,
/*242178*/              OPC_RecordChild1, // #3 = $src2
/*242179*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242181*/              OPC_CheckPredicate, 9, // Predicate_load
/*242183*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242185*/              OPC_CheckType, MVT::v2i64,
/*242187*/              OPC_MoveParent,
/*242188*/              OPC_MoveParent,
/*242189*/              OPC_MoveChild2,
/*242190*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*242193*/              OPC_MoveChild0,
/*242194*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242197*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242199*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->242225
/*242202*/                OPC_MoveParent,
/*242203*/                OPC_MoveParent,
/*242204*/                OPC_CheckType, MVT::v8i64,
/*242206*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*242208*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*242211*/                OPC_EmitMergeInputChains1_2,
/*242212*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPSLLQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242225*/              /*SwitchType*/ 23, MVT::v4i32,// ->242250
/*242227*/                OPC_MoveParent,
/*242228*/                OPC_MoveParent,
/*242229*/                OPC_CheckType, MVT::v8i16,
/*242231*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242233*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*242236*/                OPC_EmitMergeInputChains1_2,
/*242237*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPSLLWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242250*/              0, // EndSwitchType
/*242251*/            0, // EndSwitchOpcode
/*242252*/          /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(X86ISD::VSRA),// ->242391
/*242256*/            OPC_RecordChild0, // #1 = $src1
/*242257*/            OPC_MoveChild1,
/*242258*/            OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::BITCAST),// ->242311
/*242262*/              OPC_MoveChild0,
/*242263*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242266*/              OPC_RecordMemRef,
/*242267*/              OPC_RecordNode, // #2 = 'ld' chained node
/*242268*/              OPC_CheckFoldableChainNode,
/*242269*/              OPC_RecordChild1, // #3 = $src2
/*242270*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242272*/              OPC_CheckPredicate, 9, // Predicate_load
/*242274*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242276*/              OPC_CheckType, MVT::v2i64,
/*242278*/              OPC_MoveParent,
/*242279*/              OPC_CheckType, MVT::v4i32,
/*242281*/              OPC_MoveParent,
/*242282*/              OPC_MoveParent,
/*242283*/              OPC_MoveChild2,
/*242284*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242287*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242289*/              OPC_MoveParent,
/*242290*/              OPC_CheckType, MVT::v8i32,
/*242292*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*242294*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*242297*/              OPC_EmitMergeInputChains1_2,
/*242298*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRADZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242311*/            /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->242390
/*242314*/              OPC_RecordMemRef,
/*242315*/              OPC_RecordNode, // #2 = 'ld' chained node
/*242316*/              OPC_CheckFoldableChainNode,
/*242317*/              OPC_RecordChild1, // #3 = $src2
/*242318*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242320*/              OPC_CheckPredicate, 9, // Predicate_load
/*242322*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242324*/              OPC_CheckType, MVT::v2i64,
/*242326*/              OPC_MoveParent,
/*242327*/              OPC_MoveParent,
/*242328*/              OPC_MoveChild2,
/*242329*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*242332*/              OPC_MoveChild0,
/*242333*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242336*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242338*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->242364
/*242341*/                OPC_MoveParent,
/*242342*/                OPC_MoveParent,
/*242343*/                OPC_CheckType, MVT::v8i64,
/*242345*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*242347*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*242350*/                OPC_EmitMergeInputChains1_2,
/*242351*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPSRAQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242364*/              /*SwitchType*/ 23, MVT::v4i32,// ->242389
/*242366*/                OPC_MoveParent,
/*242367*/                OPC_MoveParent,
/*242368*/                OPC_CheckType, MVT::v8i16,
/*242370*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242372*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*242375*/                OPC_EmitMergeInputChains1_2,
/*242376*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPSRAWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242389*/              0, // EndSwitchType
/*242390*/            0, // EndSwitchOpcode
/*242391*/          /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(X86ISD::VSRL),// ->242530
/*242395*/            OPC_RecordChild0, // #1 = $src1
/*242396*/            OPC_MoveChild1,
/*242397*/            OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::BITCAST),// ->242450
/*242401*/              OPC_MoveChild0,
/*242402*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242405*/              OPC_RecordMemRef,
/*242406*/              OPC_RecordNode, // #2 = 'ld' chained node
/*242407*/              OPC_CheckFoldableChainNode,
/*242408*/              OPC_RecordChild1, // #3 = $src2
/*242409*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242411*/              OPC_CheckPredicate, 9, // Predicate_load
/*242413*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242415*/              OPC_CheckType, MVT::v2i64,
/*242417*/              OPC_MoveParent,
/*242418*/              OPC_CheckType, MVT::v4i32,
/*242420*/              OPC_MoveParent,
/*242421*/              OPC_MoveParent,
/*242422*/              OPC_MoveChild2,
/*242423*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242426*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242428*/              OPC_MoveParent,
/*242429*/              OPC_CheckType, MVT::v8i32,
/*242431*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*242433*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*242436*/              OPC_EmitMergeInputChains1_2,
/*242437*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRLDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242450*/            /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->242529
/*242453*/              OPC_RecordMemRef,
/*242454*/              OPC_RecordNode, // #2 = 'ld' chained node
/*242455*/              OPC_CheckFoldableChainNode,
/*242456*/              OPC_RecordChild1, // #3 = $src2
/*242457*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242459*/              OPC_CheckPredicate, 9, // Predicate_load
/*242461*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242463*/              OPC_CheckType, MVT::v2i64,
/*242465*/              OPC_MoveParent,
/*242466*/              OPC_MoveParent,
/*242467*/              OPC_MoveChild2,
/*242468*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*242471*/              OPC_MoveChild0,
/*242472*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242475*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242477*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->242503
/*242480*/                OPC_MoveParent,
/*242481*/                OPC_MoveParent,
/*242482*/                OPC_CheckType, MVT::v8i64,
/*242484*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*242486*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*242489*/                OPC_EmitMergeInputChains1_2,
/*242490*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPSRLQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242503*/              /*SwitchType*/ 23, MVT::v4i32,// ->242528
/*242505*/                OPC_MoveParent,
/*242506*/                OPC_MoveParent,
/*242507*/                OPC_CheckType, MVT::v8i16,
/*242509*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242511*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*242514*/                OPC_EmitMergeInputChains1_2,
/*242515*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPSRLWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242528*/              0, // EndSwitchType
/*242529*/            0, // EndSwitchOpcode
/*242530*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPBUSD),// ->242642
/*242533*/            OPC_RecordChild0, // #1 = $src1
/*242534*/            OPC_RecordChild1, // #2 = $src2
/*242535*/            OPC_MoveChild2,
/*242536*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->242590
/*242540*/              OPC_MoveChild0,
/*242541*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242544*/              OPC_RecordMemRef,
/*242545*/              OPC_RecordNode, // #3 = 'ld' chained node
/*242546*/              OPC_CheckFoldableChainNode,
/*242547*/              OPC_RecordChild1, // #4 = $src3
/*242548*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242550*/              OPC_CheckPredicate, 9, // Predicate_load
/*242552*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242554*/              OPC_CheckType, MVT::v4i64,
/*242556*/              OPC_MoveParent,
/*242557*/              OPC_MoveParent,
/*242558*/              OPC_MoveParent,
/*242559*/              OPC_MoveChild2,
/*242560*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242563*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242565*/              OPC_MoveParent,
/*242566*/              OPC_CheckType, MVT::v8i32,
/*242568*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*242570*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242573*/              OPC_EmitMergeInputChains, 1, 3, 
/*242576*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242590*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->242641
/*242593*/              OPC_MoveChild0,
/*242594*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242597*/              OPC_RecordMemRef,
/*242598*/              OPC_RecordNode, // #3 = 'ld' chained node
/*242599*/              OPC_CheckFoldableChainNode,
/*242600*/              OPC_RecordChild1, // #4 = $src3
/*242601*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242603*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*242605*/              OPC_CheckType, MVT::i32,
/*242607*/              OPC_MoveParent,
/*242608*/              OPC_MoveParent,
/*242609*/              OPC_MoveParent,
/*242610*/              OPC_MoveChild2,
/*242611*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242614*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242616*/              OPC_MoveParent,
/*242617*/              OPC_CheckType, MVT::v8i32,
/*242619*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*242621*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242624*/              OPC_EmitMergeInputChains, 1, 3, 
/*242627*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242641*/            0, // EndSwitchOpcode
/*242642*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPBUSDS),// ->242754
/*242645*/            OPC_RecordChild0, // #1 = $src1
/*242646*/            OPC_RecordChild1, // #2 = $src2
/*242647*/            OPC_MoveChild2,
/*242648*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->242702
/*242652*/              OPC_MoveChild0,
/*242653*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242656*/              OPC_RecordMemRef,
/*242657*/              OPC_RecordNode, // #3 = 'ld' chained node
/*242658*/              OPC_CheckFoldableChainNode,
/*242659*/              OPC_RecordChild1, // #4 = $src3
/*242660*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242662*/              OPC_CheckPredicate, 9, // Predicate_load
/*242664*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242666*/              OPC_CheckType, MVT::v4i64,
/*242668*/              OPC_MoveParent,
/*242669*/              OPC_MoveParent,
/*242670*/              OPC_MoveParent,
/*242671*/              OPC_MoveChild2,
/*242672*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242675*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242677*/              OPC_MoveParent,
/*242678*/              OPC_CheckType, MVT::v8i32,
/*242680*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*242682*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242685*/              OPC_EmitMergeInputChains, 1, 3, 
/*242688*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDSZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242702*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->242753
/*242705*/              OPC_MoveChild0,
/*242706*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242709*/              OPC_RecordMemRef,
/*242710*/              OPC_RecordNode, // #3 = 'ld' chained node
/*242711*/              OPC_CheckFoldableChainNode,
/*242712*/              OPC_RecordChild1, // #4 = $src3
/*242713*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242715*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*242717*/              OPC_CheckType, MVT::i32,
/*242719*/              OPC_MoveParent,
/*242720*/              OPC_MoveParent,
/*242721*/              OPC_MoveParent,
/*242722*/              OPC_MoveChild2,
/*242723*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242726*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242728*/              OPC_MoveParent,
/*242729*/              OPC_CheckType, MVT::v8i32,
/*242731*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*242733*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242736*/              OPC_EmitMergeInputChains, 1, 3, 
/*242739*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDSZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242753*/            0, // EndSwitchOpcode
/*242754*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPWSSD),// ->242866
/*242757*/            OPC_RecordChild0, // #1 = $src1
/*242758*/            OPC_RecordChild1, // #2 = $src2
/*242759*/            OPC_MoveChild2,
/*242760*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->242814
/*242764*/              OPC_MoveChild0,
/*242765*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242768*/              OPC_RecordMemRef,
/*242769*/              OPC_RecordNode, // #3 = 'ld' chained node
/*242770*/              OPC_CheckFoldableChainNode,
/*242771*/              OPC_RecordChild1, // #4 = $src3
/*242772*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242774*/              OPC_CheckPredicate, 9, // Predicate_load
/*242776*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242778*/              OPC_CheckType, MVT::v4i64,
/*242780*/              OPC_MoveParent,
/*242781*/              OPC_MoveParent,
/*242782*/              OPC_MoveParent,
/*242783*/              OPC_MoveChild2,
/*242784*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242787*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242789*/              OPC_MoveParent,
/*242790*/              OPC_CheckType, MVT::v8i32,
/*242792*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*242794*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242797*/              OPC_EmitMergeInputChains, 1, 3, 
/*242800*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242814*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->242865
/*242817*/              OPC_MoveChild0,
/*242818*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242821*/              OPC_RecordMemRef,
/*242822*/              OPC_RecordNode, // #3 = 'ld' chained node
/*242823*/              OPC_CheckFoldableChainNode,
/*242824*/              OPC_RecordChild1, // #4 = $src3
/*242825*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242827*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*242829*/              OPC_CheckType, MVT::i32,
/*242831*/              OPC_MoveParent,
/*242832*/              OPC_MoveParent,
/*242833*/              OPC_MoveParent,
/*242834*/              OPC_MoveChild2,
/*242835*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242838*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242840*/              OPC_MoveParent,
/*242841*/              OPC_CheckType, MVT::v8i32,
/*242843*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*242845*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242848*/              OPC_EmitMergeInputChains, 1, 3, 
/*242851*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242865*/            0, // EndSwitchOpcode
/*242866*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPWSSDS),// ->242978
/*242869*/            OPC_RecordChild0, // #1 = $src1
/*242870*/            OPC_RecordChild1, // #2 = $src2
/*242871*/            OPC_MoveChild2,
/*242872*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->242926
/*242876*/              OPC_MoveChild0,
/*242877*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242880*/              OPC_RecordMemRef,
/*242881*/              OPC_RecordNode, // #3 = 'ld' chained node
/*242882*/              OPC_CheckFoldableChainNode,
/*242883*/              OPC_RecordChild1, // #4 = $src3
/*242884*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242886*/              OPC_CheckPredicate, 9, // Predicate_load
/*242888*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*242890*/              OPC_CheckType, MVT::v4i64,
/*242892*/              OPC_MoveParent,
/*242893*/              OPC_MoveParent,
/*242894*/              OPC_MoveParent,
/*242895*/              OPC_MoveChild2,
/*242896*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242899*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242901*/              OPC_MoveParent,
/*242902*/              OPC_CheckType, MVT::v8i32,
/*242904*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*242906*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242909*/              OPC_EmitMergeInputChains, 1, 3, 
/*242912*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDSZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242926*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->242977
/*242929*/              OPC_MoveChild0,
/*242930*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242933*/              OPC_RecordMemRef,
/*242934*/              OPC_RecordNode, // #3 = 'ld' chained node
/*242935*/              OPC_CheckFoldableChainNode,
/*242936*/              OPC_RecordChild1, // #4 = $src3
/*242937*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242939*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*242941*/              OPC_CheckType, MVT::i32,
/*242943*/              OPC_MoveParent,
/*242944*/              OPC_MoveParent,
/*242945*/              OPC_MoveParent,
/*242946*/              OPC_MoveChild2,
/*242947*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*242950*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*242952*/              OPC_MoveParent,
/*242953*/              OPC_CheckType, MVT::v8i32,
/*242955*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*242957*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242960*/              OPC_EmitMergeInputChains, 1, 3, 
/*242963*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDSZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242977*/            0, // EndSwitchOpcode
/*242978*/          0, // EndSwitchOpcode
/*242979*/        /*Scope*/ 65, /*->243045*/
/*242980*/          OPC_RecordChild1, // #1 = $src3
/*242981*/          OPC_MoveChild1,
/*242982*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*242985*/          OPC_RecordChild0, // #2 = $src1
/*242986*/          OPC_MoveChild1,
/*242987*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*242990*/          OPC_MoveChild0,
/*242991*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242994*/          OPC_RecordMemRef,
/*242995*/          OPC_RecordNode, // #3 = 'ld' chained node
/*242996*/          OPC_CheckFoldableChainNode,
/*242997*/          OPC_RecordChild1, // #4 = $src2
/*242998*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243000*/          OPC_CheckPredicate, 9, // Predicate_load
/*243002*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*243004*/          OPC_CheckType, MVT::v2i64,
/*243006*/          OPC_MoveParent,
/*243007*/          OPC_MoveParent,
/*243008*/          OPC_MoveChild2,
/*243009*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243012*/          OPC_CheckType, MVT::iPTR,
/*243014*/          OPC_MoveParent,
/*243015*/          OPC_MoveParent,
/*243016*/          OPC_RecordChild2, // #5 = $src0
/*243017*/          OPC_CheckType, MVT::v8i32,
/*243019*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*243021*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*243024*/          OPC_EmitMergeInputChains, 1, 3, 
/*243027*/          OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*243030*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                    // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                    // Dst: (VINSERTI32x4Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] })):$src3))
/*243045*/        /*Scope*/ 112|128,31/*4080*/, /*->247127*/
/*243047*/          OPC_MoveChild1,
/*243048*/          OPC_SwitchOpcode /*22 cases */, 15|128,3/*399*/, TARGET_VAL(ISD::BITCAST),// ->243452
/*243053*/            OPC_Scope, 61, /*->243116*/ // 2 children in Scope
/*243055*/              OPC_RecordChild0, // #1 = $ins
/*243056*/              OPC_MoveChild0,
/*243057*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*243060*/              OPC_RecordChild0, // #2 = $src1
/*243061*/              OPC_MoveChild1,
/*243062*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243065*/              OPC_RecordMemRef,
/*243066*/              OPC_RecordNode, // #3 = 'ld' chained node
/*243067*/              OPC_CheckFoldableChainNode,
/*243068*/              OPC_RecordChild1, // #4 = $src2
/*243069*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243071*/              OPC_CheckPredicate, 9, // Predicate_load
/*243073*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*243075*/              OPC_MoveParent,
/*243076*/              OPC_MoveChild2,
/*243077*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243080*/              OPC_CheckType, MVT::iPTR,
/*243082*/              OPC_MoveParent,
/*243083*/              OPC_CheckType, MVT::v4i64,
/*243085*/              OPC_MoveParent,
/*243086*/              OPC_MoveParent,
/*243087*/              OPC_RecordChild2, // #5 = $src0
/*243088*/              OPC_CheckType, MVT::v8i32,
/*243090*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*243092*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*243095*/              OPC_EmitMergeInputChains, 1, 3, 
/*243098*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*243101*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                        // Dst: (VINSERTI32x4Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ins))
/*243116*/            /*Scope*/ 77|128,2/*333*/, /*->243451*/
/*243118*/              OPC_MoveChild0,
/*243119*/              OPC_SwitchOpcode /*5 cases */, 84, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->243207
/*243123*/                OPC_MoveChild0,
/*243124*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*243127*/                OPC_MoveChild0,
/*243128*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243131*/                OPC_RecordMemRef,
/*243132*/                OPC_RecordNode, // #1 = 'ld' chained node
/*243133*/                OPC_CheckFoldableChainNode,
/*243134*/                OPC_RecordChild1, // #2 = $src
/*243135*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243137*/                OPC_CheckPredicate, 9, // Predicate_load
/*243139*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*243141*/                OPC_SwitchType /*2 cases */, 30, MVT::v4i64,// ->243174
/*243144*/                  OPC_MoveParent,
/*243145*/                  OPC_CheckType, MVT::v8i32,
/*243147*/                  OPC_MoveParent,
/*243148*/                  OPC_CheckType, MVT::v16i32,
/*243150*/                  OPC_MoveParent,
/*243151*/                  OPC_MoveParent,
/*243152*/                  OPC_RecordChild2, // #3 = $src0
/*243153*/                  OPC_CheckType, MVT::v8i64,
/*243155*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243157*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*243160*/                  OPC_EmitMergeInputChains1_1,
/*243161*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X4rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (X86SubVBroadcast:{ *:[v16i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                            // Dst: (VBROADCASTI64X4rmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*243174*/                /*SwitchType*/ 30, MVT::v2i64,// ->243206
/*243176*/                  OPC_MoveParent,
/*243177*/                  OPC_CheckType, MVT::v4i32,
/*243179*/                  OPC_MoveParent,
/*243180*/                  OPC_CheckType, MVT::v16i32,
/*243182*/                  OPC_MoveParent,
/*243183*/                  OPC_MoveParent,
/*243184*/                  OPC_RecordChild2, // #3 = $src0
/*243185*/                  OPC_CheckType, MVT::v8i64,
/*243187*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*243189*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*243192*/                  OPC_EmitMergeInputChains1_1,
/*243193*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X2rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (X86SubVBroadcast:{ *:[v16i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>))), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                            // Dst: (VBROADCASTI64X2rmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*243206*/                0, // EndSwitchType
/*243207*/              /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->243258
/*243210*/                OPC_MoveChild0,
/*243211*/                OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*243214*/                OPC_MoveChild0,
/*243215*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243218*/                OPC_RecordMemRef,
/*243219*/                OPC_RecordNode, // #1 = 'ld' chained node
/*243220*/                OPC_CheckFoldableChainNode,
/*243221*/                OPC_RecordChild1, // #2 = $src
/*243222*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243224*/                OPC_CheckPredicate, 9, // Predicate_load
/*243226*/                OPC_CheckType, MVT::i64,
/*243228*/                OPC_MoveParent,
/*243229*/                OPC_CheckType, MVT::v2i64,
/*243231*/                OPC_MoveParent,
/*243232*/                OPC_CheckType, MVT::v4i64,
/*243234*/                OPC_MoveParent,
/*243235*/                OPC_MoveParent,
/*243236*/                OPC_RecordChild2, // #3 = $src0
/*243237*/                OPC_CheckType, MVT::v8i32,
/*243239*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*243241*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*243244*/                OPC_EmitMergeInputChains1_1,
/*243245*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VBroadcast:{ *:[v4i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VBROADCASTI32X2Z256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*243258*/              /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::SHUF128),// ->243313
/*243261*/                OPC_RecordChild0, // #1 = $src1
/*243262*/                OPC_MoveChild1,
/*243263*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243266*/                OPC_RecordMemRef,
/*243267*/                OPC_RecordNode, // #2 = 'ld' chained node
/*243268*/                OPC_CheckFoldableChainNode,
/*243269*/                OPC_RecordChild1, // #3 = $src2
/*243270*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243272*/                OPC_CheckPredicate, 9, // Predicate_load
/*243274*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*243276*/                OPC_MoveParent,
/*243277*/                OPC_RecordChild2, // #4 = $src3
/*243278*/                OPC_MoveChild2,
/*243279*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243282*/                OPC_MoveParent,
/*243283*/                OPC_CheckType, MVT::v4i64,
/*243285*/                OPC_MoveParent,
/*243286*/                OPC_MoveParent,
/*243287*/                OPC_RecordChild2, // #5 = $src0
/*243288*/                OPC_CheckType, MVT::v8i32,
/*243290*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243292*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*243295*/                OPC_EmitMergeInputChains1_2,
/*243296*/                OPC_EmitConvertToTarget, 4,
/*243298*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VSHUFI32X4Z256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*243313*/              /*SwitchOpcode*/ 55, TARGET_VAL(X86ISD::VALIGN),// ->243371
/*243316*/                OPC_RecordChild0, // #1 = $src1
/*243317*/                OPC_MoveChild1,
/*243318*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243321*/                OPC_RecordMemRef,
/*243322*/                OPC_RecordNode, // #2 = 'ld' chained node
/*243323*/                OPC_CheckFoldableChainNode,
/*243324*/                OPC_RecordChild1, // #3 = $src2
/*243325*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243327*/                OPC_CheckPredicate, 9, // Predicate_load
/*243329*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*243331*/                OPC_MoveParent,
/*243332*/                OPC_RecordChild2, // #4 = $src3
/*243333*/                OPC_MoveChild2,
/*243334*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243337*/                OPC_MoveParent,
/*243338*/                OPC_CheckType, MVT::v4i64,
/*243340*/                OPC_MoveParent,
/*243341*/                OPC_MoveParent,
/*243342*/                OPC_RecordChild2, // #5 = $src0
/*243343*/                OPC_CheckType, MVT::v8i32,
/*243345*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*243347*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*243350*/                OPC_EmitMergeInputChains1_2,
/*243351*/                OPC_EmitConvertToTarget, 4,
/*243353*/                OPC_EmitNodeXForm, 14, 11, // ValignqImm32XForm
/*243356*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VALIGNDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*243371*/              /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->243450
/*243374*/                OPC_RecordMemRef,
/*243375*/                OPC_RecordNode, // #1 = 'ld' chained node
/*243376*/                OPC_CheckFoldableChainNode,
/*243377*/                OPC_RecordChild1, // #2 = $src
/*243378*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243380*/                OPC_CheckPredicate, 9, // Predicate_load
/*243382*/                OPC_CheckType, MVT::v4i64,
/*243384*/                OPC_Scope, 31, /*->243417*/ // 2 children in Scope
/*243386*/                  OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*243388*/                  OPC_MoveParent,
/*243389*/                  OPC_MoveParent,
/*243390*/                  OPC_MoveChild2,
/*243391*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*243394*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*243396*/                  OPC_MoveParent,
/*243397*/                  OPC_CheckType, MVT::v8i32,
/*243399*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243401*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*243404*/                  OPC_EmitMergeInputChains1_1,
/*243405*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VMOVDQA32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*243417*/                /*Scope*/ 31, /*->243449*/
/*243418*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*243420*/                  OPC_MoveParent,
/*243421*/                  OPC_MoveParent,
/*243422*/                  OPC_MoveChild2,
/*243423*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*243426*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*243428*/                  OPC_MoveParent,
/*243429*/                  OPC_CheckType, MVT::v8i32,
/*243431*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243433*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*243436*/                  OPC_EmitMergeInputChains1_1,
/*243437*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VMOVDQU32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*243449*/                0, /*End of Scope*/
/*243450*/              0, // EndSwitchOpcode
/*243451*/            0, /*End of Scope*/
/*243452*/          /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(X86ISD::VSRLI),// ->243641
/*243456*/            OPC_MoveChild0,
/*243457*/            OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::BITCAST),// ->243549
/*243461*/              OPC_MoveChild0,
/*243462*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243465*/              OPC_RecordMemRef,
/*243466*/              OPC_RecordNode, // #1 = 'ld' chained node
/*243467*/              OPC_CheckFoldableChainNode,
/*243468*/              OPC_RecordChild1, // #2 = $src1
/*243469*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243471*/              OPC_CheckPredicate, 9, // Predicate_load
/*243473*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*243475*/              OPC_SwitchType /*2 cases */, 34, MVT::v4i64,// ->243512
/*243478*/                OPC_MoveParent,
/*243479*/                OPC_MoveParent,
/*243480*/                OPC_RecordChild1, // #3 = $src2
/*243481*/                OPC_MoveChild1,
/*243482*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243485*/                OPC_MoveParent,
/*243486*/                OPC_MoveParent,
/*243487*/                OPC_RecordChild2, // #4 = $src0
/*243488*/                OPC_CheckType, MVT::v8i32,
/*243490*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243492*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*243495*/                OPC_EmitMergeInputChains1_1,
/*243496*/                OPC_EmitConvertToTarget, 3,
/*243498*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPSRLDZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*243512*/              /*SwitchType*/ 34, MVT::v2i64,// ->243548
/*243514*/                OPC_MoveParent,
/*243515*/                OPC_MoveParent,
/*243516*/                OPC_RecordChild1, // #3 = $src2
/*243517*/                OPC_MoveChild1,
/*243518*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243521*/                OPC_MoveParent,
/*243522*/                OPC_MoveParent,
/*243523*/                OPC_RecordChild2, // #4 = $src0
/*243524*/                OPC_CheckType, MVT::v8i16,
/*243526*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243528*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*243531*/                OPC_EmitMergeInputChains1_1,
/*243532*/                OPC_EmitConvertToTarget, 3,
/*243534*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 34
                          // Dst: (VPSRLWZ128mik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*243548*/              0, // EndSwitchType
/*243549*/            /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::VBROADCAST),// ->243640
/*243552*/              OPC_MoveChild0,
/*243553*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243556*/              OPC_RecordMemRef,
/*243557*/              OPC_RecordNode, // #1 = 'ld' chained node
/*243558*/              OPC_CheckFoldableChainNode,
/*243559*/              OPC_RecordChild1, // #2 = $src1
/*243560*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243562*/              OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->243601
/*243565*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*243567*/                OPC_MoveParent,
/*243568*/                OPC_MoveParent,
/*243569*/                OPC_RecordChild1, // #3 = $src2
/*243570*/                OPC_MoveChild1,
/*243571*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243574*/                OPC_MoveParent,
/*243575*/                OPC_MoveParent,
/*243576*/                OPC_RecordChild2, // #4 = $src0
/*243577*/                OPC_CheckType, MVT::v8i32,
/*243579*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243581*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*243584*/                OPC_EmitMergeInputChains1_1,
/*243585*/                OPC_EmitConvertToTarget, 3,
/*243587*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPSRLDZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*243601*/              /*SwitchType*/ 36, MVT::i64,// ->243639
/*243603*/                OPC_CheckPredicate, 9, // Predicate_load
/*243605*/                OPC_MoveParent,
/*243606*/                OPC_MoveParent,
/*243607*/                OPC_RecordChild1, // #3 = $src2
/*243608*/                OPC_MoveChild1,
/*243609*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243612*/                OPC_MoveParent,
/*243613*/                OPC_MoveParent,
/*243614*/                OPC_RecordChild2, // #4 = $src0
/*243615*/                OPC_CheckType, MVT::v8i64,
/*243617*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243619*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*243622*/                OPC_EmitMergeInputChains1_1,
/*243623*/                OPC_EmitConvertToTarget, 3,
/*243625*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VPSRLQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*243639*/              0, // EndSwitchType
/*243640*/            0, // EndSwitchOpcode
/*243641*/          /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(X86ISD::VSHLI),// ->243830
/*243645*/            OPC_MoveChild0,
/*243646*/            OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::BITCAST),// ->243738
/*243650*/              OPC_MoveChild0,
/*243651*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243654*/              OPC_RecordMemRef,
/*243655*/              OPC_RecordNode, // #1 = 'ld' chained node
/*243656*/              OPC_CheckFoldableChainNode,
/*243657*/              OPC_RecordChild1, // #2 = $src1
/*243658*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243660*/              OPC_CheckPredicate, 9, // Predicate_load
/*243662*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*243664*/              OPC_SwitchType /*2 cases */, 34, MVT::v4i64,// ->243701
/*243667*/                OPC_MoveParent,
/*243668*/                OPC_MoveParent,
/*243669*/                OPC_RecordChild1, // #3 = $src2
/*243670*/                OPC_MoveChild1,
/*243671*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243674*/                OPC_MoveParent,
/*243675*/                OPC_MoveParent,
/*243676*/                OPC_RecordChild2, // #4 = $src0
/*243677*/                OPC_CheckType, MVT::v8i32,
/*243679*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243681*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*243684*/                OPC_EmitMergeInputChains1_1,
/*243685*/                OPC_EmitConvertToTarget, 3,
/*243687*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPSLLDZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*243701*/              /*SwitchType*/ 34, MVT::v2i64,// ->243737
/*243703*/                OPC_MoveParent,
/*243704*/                OPC_MoveParent,
/*243705*/                OPC_RecordChild1, // #3 = $src2
/*243706*/                OPC_MoveChild1,
/*243707*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243710*/                OPC_MoveParent,
/*243711*/                OPC_MoveParent,
/*243712*/                OPC_RecordChild2, // #4 = $src0
/*243713*/                OPC_CheckType, MVT::v8i16,
/*243715*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243717*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*243720*/                OPC_EmitMergeInputChains1_1,
/*243721*/                OPC_EmitConvertToTarget, 3,
/*243723*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 34
                          // Dst: (VPSLLWZ128mik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*243737*/              0, // EndSwitchType
/*243738*/            /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::VBROADCAST),// ->243829
/*243741*/              OPC_MoveChild0,
/*243742*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243745*/              OPC_RecordMemRef,
/*243746*/              OPC_RecordNode, // #1 = 'ld' chained node
/*243747*/              OPC_CheckFoldableChainNode,
/*243748*/              OPC_RecordChild1, // #2 = $src1
/*243749*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243751*/              OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->243790
/*243754*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*243756*/                OPC_MoveParent,
/*243757*/                OPC_MoveParent,
/*243758*/                OPC_RecordChild1, // #3 = $src2
/*243759*/                OPC_MoveChild1,
/*243760*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243763*/                OPC_MoveParent,
/*243764*/                OPC_MoveParent,
/*243765*/                OPC_RecordChild2, // #4 = $src0
/*243766*/                OPC_CheckType, MVT::v8i32,
/*243768*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243770*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*243773*/                OPC_EmitMergeInputChains1_1,
/*243774*/                OPC_EmitConvertToTarget, 3,
/*243776*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPSLLDZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*243790*/              /*SwitchType*/ 36, MVT::i64,// ->243828
/*243792*/                OPC_CheckPredicate, 9, // Predicate_load
/*243794*/                OPC_MoveParent,
/*243795*/                OPC_MoveParent,
/*243796*/                OPC_RecordChild1, // #3 = $src2
/*243797*/                OPC_MoveChild1,
/*243798*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243801*/                OPC_MoveParent,
/*243802*/                OPC_MoveParent,
/*243803*/                OPC_RecordChild2, // #4 = $src0
/*243804*/                OPC_CheckType, MVT::v8i64,
/*243806*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243808*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*243811*/                OPC_EmitMergeInputChains1_1,
/*243812*/                OPC_EmitConvertToTarget, 3,
/*243814*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VPSLLQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*243828*/              0, // EndSwitchType
/*243829*/            0, // EndSwitchOpcode
/*243830*/          /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(X86ISD::VSRAI),// ->244019
/*243834*/            OPC_MoveChild0,
/*243835*/            OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::BITCAST),// ->243927
/*243839*/              OPC_MoveChild0,
/*243840*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243843*/              OPC_RecordMemRef,
/*243844*/              OPC_RecordNode, // #1 = 'ld' chained node
/*243845*/              OPC_CheckFoldableChainNode,
/*243846*/              OPC_RecordChild1, // #2 = $src1
/*243847*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243849*/              OPC_CheckPredicate, 9, // Predicate_load
/*243851*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*243853*/              OPC_SwitchType /*2 cases */, 34, MVT::v4i64,// ->243890
/*243856*/                OPC_MoveParent,
/*243857*/                OPC_MoveParent,
/*243858*/                OPC_RecordChild1, // #3 = $src2
/*243859*/                OPC_MoveChild1,
/*243860*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243863*/                OPC_MoveParent,
/*243864*/                OPC_MoveParent,
/*243865*/                OPC_RecordChild2, // #4 = $src0
/*243866*/                OPC_CheckType, MVT::v8i32,
/*243868*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243870*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*243873*/                OPC_EmitMergeInputChains1_1,
/*243874*/                OPC_EmitConvertToTarget, 3,
/*243876*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPSRADZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*243890*/              /*SwitchType*/ 34, MVT::v2i64,// ->243926
/*243892*/                OPC_MoveParent,
/*243893*/                OPC_MoveParent,
/*243894*/                OPC_RecordChild1, // #3 = $src2
/*243895*/                OPC_MoveChild1,
/*243896*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243899*/                OPC_MoveParent,
/*243900*/                OPC_MoveParent,
/*243901*/                OPC_RecordChild2, // #4 = $src0
/*243902*/                OPC_CheckType, MVT::v8i16,
/*243904*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243906*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*243909*/                OPC_EmitMergeInputChains1_1,
/*243910*/                OPC_EmitConvertToTarget, 3,
/*243912*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 34
                          // Dst: (VPSRAWZ128mik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*243926*/              0, // EndSwitchType
/*243927*/            /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::VBROADCAST),// ->244018
/*243930*/              OPC_MoveChild0,
/*243931*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243934*/              OPC_RecordMemRef,
/*243935*/              OPC_RecordNode, // #1 = 'ld' chained node
/*243936*/              OPC_CheckFoldableChainNode,
/*243937*/              OPC_RecordChild1, // #2 = $src1
/*243938*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243940*/              OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->243979
/*243943*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*243945*/                OPC_MoveParent,
/*243946*/                OPC_MoveParent,
/*243947*/                OPC_RecordChild1, // #3 = $src2
/*243948*/                OPC_MoveChild1,
/*243949*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243952*/                OPC_MoveParent,
/*243953*/                OPC_MoveParent,
/*243954*/                OPC_RecordChild2, // #4 = $src0
/*243955*/                OPC_CheckType, MVT::v8i32,
/*243957*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243959*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*243962*/                OPC_EmitMergeInputChains1_1,
/*243963*/                OPC_EmitConvertToTarget, 3,
/*243965*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPSRADZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*243979*/              /*SwitchType*/ 36, MVT::i64,// ->244017
/*243981*/                OPC_CheckPredicate, 9, // Predicate_load
/*243983*/                OPC_MoveParent,
/*243984*/                OPC_MoveParent,
/*243985*/                OPC_RecordChild1, // #3 = $src2
/*243986*/                OPC_MoveChild1,
/*243987*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*243990*/                OPC_MoveParent,
/*243991*/                OPC_MoveParent,
/*243992*/                OPC_RecordChild2, // #4 = $src0
/*243993*/                OPC_CheckType, MVT::v8i64,
/*243995*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243997*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244000*/                OPC_EmitMergeInputChains1_1,
/*244001*/                OPC_EmitConvertToTarget, 3,
/*244003*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VPSRAQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244017*/              0, // EndSwitchType
/*244018*/            0, // EndSwitchOpcode
/*244019*/          /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(X86ISD::VROTRI),// ->244170
/*244023*/            OPC_MoveChild0,
/*244024*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->244078
/*244028*/              OPC_MoveChild0,
/*244029*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244032*/              OPC_RecordMemRef,
/*244033*/              OPC_RecordNode, // #1 = 'ld' chained node
/*244034*/              OPC_CheckFoldableChainNode,
/*244035*/              OPC_RecordChild1, // #2 = $src1
/*244036*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244038*/              OPC_CheckPredicate, 9, // Predicate_load
/*244040*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*244042*/              OPC_CheckType, MVT::v4i64,
/*244044*/              OPC_MoveParent,
/*244045*/              OPC_MoveParent,
/*244046*/              OPC_RecordChild1, // #3 = $src2
/*244047*/              OPC_MoveChild1,
/*244048*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244051*/              OPC_MoveParent,
/*244052*/              OPC_MoveParent,
/*244053*/              OPC_RecordChild2, // #4 = $src0
/*244054*/              OPC_CheckType, MVT::v8i32,
/*244056*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244058*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244061*/              OPC_EmitMergeInputChains1_1,
/*244062*/              OPC_EmitConvertToTarget, 3,
/*244064*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                        // Dst: (VPRORDZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244078*/            /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::VBROADCAST),// ->244169
/*244081*/              OPC_MoveChild0,
/*244082*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244085*/              OPC_RecordMemRef,
/*244086*/              OPC_RecordNode, // #1 = 'ld' chained node
/*244087*/              OPC_CheckFoldableChainNode,
/*244088*/              OPC_RecordChild1, // #2 = $src1
/*244089*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244091*/              OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->244130
/*244094*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*244096*/                OPC_MoveParent,
/*244097*/                OPC_MoveParent,
/*244098*/                OPC_RecordChild1, // #3 = $src2
/*244099*/                OPC_MoveChild1,
/*244100*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244103*/                OPC_MoveParent,
/*244104*/                OPC_MoveParent,
/*244105*/                OPC_RecordChild2, // #4 = $src0
/*244106*/                OPC_CheckType, MVT::v8i32,
/*244108*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244110*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244113*/                OPC_EmitMergeInputChains1_1,
/*244114*/                OPC_EmitConvertToTarget, 3,
/*244116*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPRORDZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244130*/              /*SwitchType*/ 36, MVT::i64,// ->244168
/*244132*/                OPC_CheckPredicate, 9, // Predicate_load
/*244134*/                OPC_MoveParent,
/*244135*/                OPC_MoveParent,
/*244136*/                OPC_RecordChild1, // #3 = $src2
/*244137*/                OPC_MoveChild1,
/*244138*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244141*/                OPC_MoveParent,
/*244142*/                OPC_MoveParent,
/*244143*/                OPC_RecordChild2, // #4 = $src0
/*244144*/                OPC_CheckType, MVT::v8i64,
/*244146*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244148*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244151*/                OPC_EmitMergeInputChains1_1,
/*244152*/                OPC_EmitConvertToTarget, 3,
/*244154*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VPRORQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244168*/              0, // EndSwitchType
/*244169*/            0, // EndSwitchOpcode
/*244170*/          /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(X86ISD::VROTLI),// ->244321
/*244174*/            OPC_MoveChild0,
/*244175*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->244229
/*244179*/              OPC_MoveChild0,
/*244180*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244183*/              OPC_RecordMemRef,
/*244184*/              OPC_RecordNode, // #1 = 'ld' chained node
/*244185*/              OPC_CheckFoldableChainNode,
/*244186*/              OPC_RecordChild1, // #2 = $src1
/*244187*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244189*/              OPC_CheckPredicate, 9, // Predicate_load
/*244191*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*244193*/              OPC_CheckType, MVT::v4i64,
/*244195*/              OPC_MoveParent,
/*244196*/              OPC_MoveParent,
/*244197*/              OPC_RecordChild1, // #3 = $src2
/*244198*/              OPC_MoveChild1,
/*244199*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244202*/              OPC_MoveParent,
/*244203*/              OPC_MoveParent,
/*244204*/              OPC_RecordChild2, // #4 = $src0
/*244205*/              OPC_CheckType, MVT::v8i32,
/*244207*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244209*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244212*/              OPC_EmitMergeInputChains1_1,
/*244213*/              OPC_EmitConvertToTarget, 3,
/*244215*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                        // Dst: (VPROLDZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244229*/            /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::VBROADCAST),// ->244320
/*244232*/              OPC_MoveChild0,
/*244233*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244236*/              OPC_RecordMemRef,
/*244237*/              OPC_RecordNode, // #1 = 'ld' chained node
/*244238*/              OPC_CheckFoldableChainNode,
/*244239*/              OPC_RecordChild1, // #2 = $src1
/*244240*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244242*/              OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->244281
/*244245*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*244247*/                OPC_MoveParent,
/*244248*/                OPC_MoveParent,
/*244249*/                OPC_RecordChild1, // #3 = $src2
/*244250*/                OPC_MoveChild1,
/*244251*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244254*/                OPC_MoveParent,
/*244255*/                OPC_MoveParent,
/*244256*/                OPC_RecordChild2, // #4 = $src0
/*244257*/                OPC_CheckType, MVT::v8i32,
/*244259*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244261*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244264*/                OPC_EmitMergeInputChains1_1,
/*244265*/                OPC_EmitConvertToTarget, 3,
/*244267*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPROLDZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244281*/              /*SwitchType*/ 36, MVT::i64,// ->244319
/*244283*/                OPC_CheckPredicate, 9, // Predicate_load
/*244285*/                OPC_MoveParent,
/*244286*/                OPC_MoveParent,
/*244287*/                OPC_RecordChild1, // #3 = $src2
/*244288*/                OPC_MoveChild1,
/*244289*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244292*/                OPC_MoveParent,
/*244293*/                OPC_MoveParent,
/*244294*/                OPC_RecordChild2, // #4 = $src0
/*244295*/                OPC_CheckType, MVT::v8i64,
/*244297*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244299*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244302*/                OPC_EmitMergeInputChains1_1,
/*244303*/                OPC_EmitConvertToTarget, 3,
/*244305*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VPROLQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244319*/              0, // EndSwitchType
/*244320*/            0, // EndSwitchOpcode
/*244321*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VPERMI),// ->244376
/*244324*/            OPC_MoveChild0,
/*244325*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*244328*/            OPC_MoveChild0,
/*244329*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244332*/            OPC_RecordMemRef,
/*244333*/            OPC_RecordNode, // #1 = 'ld' chained node
/*244334*/            OPC_CheckFoldableChainNode,
/*244335*/            OPC_RecordChild1, // #2 = $src1
/*244336*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244338*/            OPC_CheckPredicate, 9, // Predicate_load
/*244340*/            OPC_CheckType, MVT::i64,
/*244342*/            OPC_MoveParent,
/*244343*/            OPC_MoveParent,
/*244344*/            OPC_RecordChild1, // #3 = $src2
/*244345*/            OPC_MoveChild1,
/*244346*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244349*/            OPC_MoveParent,
/*244350*/            OPC_MoveParent,
/*244351*/            OPC_RecordChild2, // #4 = $src0
/*244352*/            OPC_CheckType, MVT::v8i64,
/*244354*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244356*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244359*/            OPC_EmitMergeInputChains1_1,
/*244360*/            OPC_EmitConvertToTarget, 3,
/*244362*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                      // Dst: (VPERMQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244376*/          /*SwitchOpcode*/ 107, TARGET_VAL(X86ISD::PSHUFD),// ->244486
/*244379*/            OPC_MoveChild0,
/*244380*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->244434
/*244384*/              OPC_MoveChild0,
/*244385*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244388*/              OPC_RecordMemRef,
/*244389*/              OPC_RecordNode, // #1 = 'ld' chained node
/*244390*/              OPC_CheckFoldableChainNode,
/*244391*/              OPC_RecordChild1, // #2 = $src1
/*244392*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244394*/              OPC_CheckPredicate, 9, // Predicate_load
/*244396*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*244398*/              OPC_CheckType, MVT::v4i64,
/*244400*/              OPC_MoveParent,
/*244401*/              OPC_MoveParent,
/*244402*/              OPC_RecordChild1, // #3 = $src2
/*244403*/              OPC_MoveChild1,
/*244404*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244407*/              OPC_MoveParent,
/*244408*/              OPC_MoveParent,
/*244409*/              OPC_RecordChild2, // #4 = $src0
/*244410*/              OPC_CheckType, MVT::v8i32,
/*244412*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244414*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244417*/              OPC_EmitMergeInputChains1_1,
/*244418*/              OPC_EmitConvertToTarget, 3,
/*244420*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                        // Dst: (VPSHUFDZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244434*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->244485
/*244437*/              OPC_MoveChild0,
/*244438*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244441*/              OPC_RecordMemRef,
/*244442*/              OPC_RecordNode, // #1 = 'ld' chained node
/*244443*/              OPC_CheckFoldableChainNode,
/*244444*/              OPC_RecordChild1, // #2 = $src1
/*244445*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244447*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*244449*/              OPC_CheckType, MVT::i32,
/*244451*/              OPC_MoveParent,
/*244452*/              OPC_MoveParent,
/*244453*/              OPC_RecordChild1, // #3 = $src2
/*244454*/              OPC_MoveChild1,
/*244455*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244458*/              OPC_MoveParent,
/*244459*/              OPC_MoveParent,
/*244460*/              OPC_RecordChild2, // #4 = $src0
/*244461*/              OPC_CheckType, MVT::v8i32,
/*244463*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244465*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244468*/              OPC_EmitMergeInputChains1_1,
/*244469*/              OPC_EmitConvertToTarget, 3,
/*244471*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                        // Dst: (VPSHUFDZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244485*/            0, // EndSwitchOpcode
/*244486*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::PSHUFHW),// ->244543
/*244489*/            OPC_MoveChild0,
/*244490*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*244493*/            OPC_MoveChild0,
/*244494*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244497*/            OPC_RecordMemRef,
/*244498*/            OPC_RecordNode, // #1 = 'ld' chained node
/*244499*/            OPC_CheckFoldableChainNode,
/*244500*/            OPC_RecordChild1, // #2 = $src1
/*244501*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244503*/            OPC_CheckPredicate, 9, // Predicate_load
/*244505*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*244507*/            OPC_CheckType, MVT::v2i64,
/*244509*/            OPC_MoveParent,
/*244510*/            OPC_MoveParent,
/*244511*/            OPC_RecordChild1, // #3 = $src2
/*244512*/            OPC_MoveChild1,
/*244513*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244516*/            OPC_MoveParent,
/*244517*/            OPC_MoveParent,
/*244518*/            OPC_RecordChild2, // #4 = $src0
/*244519*/            OPC_CheckType, MVT::v8i16,
/*244521*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244523*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244526*/            OPC_EmitMergeInputChains1_1,
/*244527*/            OPC_EmitConvertToTarget, 3,
/*244529*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufhw:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 34
                      // Dst: (VPSHUFHWZ128mik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244543*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::PSHUFLW),// ->244600
/*244546*/            OPC_MoveChild0,
/*244547*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*244550*/            OPC_MoveChild0,
/*244551*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244554*/            OPC_RecordMemRef,
/*244555*/            OPC_RecordNode, // #1 = 'ld' chained node
/*244556*/            OPC_CheckFoldableChainNode,
/*244557*/            OPC_RecordChild1, // #2 = $src1
/*244558*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244560*/            OPC_CheckPredicate, 9, // Predicate_load
/*244562*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*244564*/            OPC_CheckType, MVT::v2i64,
/*244566*/            OPC_MoveParent,
/*244567*/            OPC_MoveParent,
/*244568*/            OPC_RecordChild1, // #3 = $src2
/*244569*/            OPC_MoveChild1,
/*244570*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244573*/            OPC_MoveParent,
/*244574*/            OPC_MoveParent,
/*244575*/            OPC_RecordChild2, // #4 = $src0
/*244576*/            OPC_CheckType, MVT::v8i16,
/*244578*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244580*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*244583*/            OPC_EmitMergeInputChains1_1,
/*244584*/            OPC_EmitConvertToTarget, 3,
/*244586*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShuflw:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 34
                      // Dst: (VPSHUFLWZ128mik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*244600*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::SHUF128),// ->244657
/*244603*/            OPC_RecordChild0, // #1 = $src1
/*244604*/            OPC_MoveChild1,
/*244605*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*244608*/            OPC_MoveChild0,
/*244609*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244612*/            OPC_RecordMemRef,
/*244613*/            OPC_RecordNode, // #2 = 'ld' chained node
/*244614*/            OPC_CheckFoldableChainNode,
/*244615*/            OPC_RecordChild1, // #3 = $src2
/*244616*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244618*/            OPC_CheckPredicate, 9, // Predicate_load
/*244620*/            OPC_CheckType, MVT::i64,
/*244622*/            OPC_MoveParent,
/*244623*/            OPC_MoveParent,
/*244624*/            OPC_RecordChild2, // #4 = $src3
/*244625*/            OPC_MoveChild2,
/*244626*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244629*/            OPC_MoveParent,
/*244630*/            OPC_MoveParent,
/*244631*/            OPC_RecordChild2, // #5 = $src0
/*244632*/            OPC_CheckType, MVT::v8i64,
/*244634*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244636*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*244639*/            OPC_EmitMergeInputChains1_2,
/*244640*/            OPC_EmitConvertToTarget, 4,
/*244642*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                      // Dst: (VSHUFI64X2Zrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*244657*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VALIGN),// ->244812
/*244661*/            OPC_RecordChild0, // #1 = $src1
/*244662*/            OPC_MoveChild1,
/*244663*/            OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(ISD::BITCAST),// ->244718
/*244667*/              OPC_MoveChild0,
/*244668*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244671*/              OPC_RecordMemRef,
/*244672*/              OPC_RecordNode, // #2 = 'ld' chained node
/*244673*/              OPC_CheckFoldableChainNode,
/*244674*/              OPC_RecordChild1, // #3 = $src2
/*244675*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244677*/              OPC_CheckPredicate, 9, // Predicate_load
/*244679*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*244681*/              OPC_CheckType, MVT::v4i64,
/*244683*/              OPC_MoveParent,
/*244684*/              OPC_MoveParent,
/*244685*/              OPC_RecordChild2, // #4 = $src3
/*244686*/              OPC_MoveChild2,
/*244687*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244690*/              OPC_MoveParent,
/*244691*/              OPC_MoveParent,
/*244692*/              OPC_RecordChild2, // #5 = $src0
/*244693*/              OPC_CheckType, MVT::v8i32,
/*244695*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244697*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*244700*/              OPC_EmitMergeInputChains1_2,
/*244701*/              OPC_EmitConvertToTarget, 4,
/*244703*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                        // Dst: (VALIGNDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*244718*/            /*SwitchOpcode*/ 90, TARGET_VAL(X86ISD::VBROADCAST),// ->244811
/*244721*/              OPC_MoveChild0,
/*244722*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244725*/              OPC_RecordMemRef,
/*244726*/              OPC_RecordNode, // #2 = 'ld' chained node
/*244727*/              OPC_CheckFoldableChainNode,
/*244728*/              OPC_RecordChild1, // #3 = $src2
/*244729*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244731*/              OPC_SwitchType /*2 cases */, 37, MVT::i32,// ->244771
/*244734*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*244736*/                OPC_MoveParent,
/*244737*/                OPC_MoveParent,
/*244738*/                OPC_RecordChild2, // #4 = $src3
/*244739*/                OPC_MoveChild2,
/*244740*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244743*/                OPC_MoveParent,
/*244744*/                OPC_MoveParent,
/*244745*/                OPC_RecordChild2, // #5 = $src0
/*244746*/                OPC_CheckType, MVT::v8i32,
/*244748*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244750*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*244753*/                OPC_EmitMergeInputChains1_2,
/*244754*/                OPC_EmitConvertToTarget, 4,
/*244756*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VALIGNDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*244771*/              /*SwitchType*/ 37, MVT::i64,// ->244810
/*244773*/                OPC_CheckPredicate, 9, // Predicate_load
/*244775*/                OPC_MoveParent,
/*244776*/                OPC_MoveParent,
/*244777*/                OPC_RecordChild2, // #4 = $src3
/*244778*/                OPC_MoveChild2,
/*244779*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244782*/                OPC_MoveParent,
/*244783*/                OPC_MoveParent,
/*244784*/                OPC_RecordChild2, // #5 = $src0
/*244785*/                OPC_CheckType, MVT::v8i64,
/*244787*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244789*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*244792*/                OPC_EmitMergeInputChains1_2,
/*244793*/                OPC_EmitConvertToTarget, 4,
/*244795*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VALIGNQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*244810*/              0, // EndSwitchType
/*244811*/            0, // EndSwitchOpcode
/*244812*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::DBPSADBW),// ->244873
/*244815*/            OPC_RecordChild0, // #1 = $src1
/*244816*/            OPC_MoveChild1,
/*244817*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*244820*/            OPC_MoveChild0,
/*244821*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244824*/            OPC_RecordMemRef,
/*244825*/            OPC_RecordNode, // #2 = 'ld' chained node
/*244826*/            OPC_CheckFoldableChainNode,
/*244827*/            OPC_RecordChild1, // #3 = $src2
/*244828*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244830*/            OPC_CheckPredicate, 9, // Predicate_load
/*244832*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*244834*/            OPC_CheckType, MVT::v2i64,
/*244836*/            OPC_MoveParent,
/*244837*/            OPC_MoveParent,
/*244838*/            OPC_RecordChild2, // #4 = $src3
/*244839*/            OPC_MoveChild2,
/*244840*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244843*/            OPC_CheckType, MVT::i8,
/*244845*/            OPC_MoveParent,
/*244846*/            OPC_MoveParent,
/*244847*/            OPC_RecordChild2, // #5 = $src0
/*244848*/            OPC_CheckType, MVT::v8i16,
/*244850*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244852*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*244855*/            OPC_EmitMergeInputChains1_2,
/*244856*/            OPC_EmitConvertToTarget, 4,
/*244858*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 34
                      // Dst: (VDBPSADBWZ128rmik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*244873*/          /*SwitchOpcode*/ 82|128,8/*1106*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->245983
/*244877*/            OPC_Scope, 53|128,1/*181*/, /*->245061*/ // 12 children in Scope
/*244880*/              OPC_RecordChild0, // #1 = $src1
/*244881*/              OPC_Scope, 116, /*->244999*/ // 2 children in Scope
/*244883*/                OPC_RecordChild1, // #2 = $src2
/*244884*/                OPC_MoveChild2,
/*244885*/                OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->244943
/*244889*/                  OPC_MoveChild0,
/*244890*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244893*/                  OPC_RecordMemRef,
/*244894*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*244895*/                  OPC_CheckFoldableChainNode,
/*244896*/                  OPC_RecordChild1, // #4 = $src3
/*244897*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244899*/                  OPC_CheckPredicate, 9, // Predicate_load
/*244901*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*244903*/                  OPC_CheckType, MVT::v4i64,
/*244905*/                  OPC_MoveParent,
/*244906*/                  OPC_MoveParent,
/*244907*/                  OPC_RecordChild3, // #5 = $src4
/*244908*/                  OPC_MoveChild3,
/*244909*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244912*/                  OPC_MoveParent,
/*244913*/                  OPC_MoveParent,
/*244914*/                  OPC_CheckChild2Same, 1,
/*244916*/                  OPC_CheckType, MVT::v8i32,
/*244918*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244920*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*244923*/                  OPC_EmitMergeInputChains, 1, 3, 
/*244926*/                  OPC_EmitConvertToTarget, 5,
/*244928*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                            // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*244943*/                /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->244998
/*244946*/                  OPC_MoveChild0,
/*244947*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244950*/                  OPC_RecordMemRef,
/*244951*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*244952*/                  OPC_CheckFoldableChainNode,
/*244953*/                  OPC_RecordChild1, // #4 = $src3
/*244954*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244956*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*244958*/                  OPC_CheckType, MVT::i32,
/*244960*/                  OPC_MoveParent,
/*244961*/                  OPC_MoveParent,
/*244962*/                  OPC_RecordChild3, // #5 = $src4
/*244963*/                  OPC_MoveChild3,
/*244964*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*244967*/                  OPC_MoveParent,
/*244968*/                  OPC_MoveParent,
/*244969*/                  OPC_CheckChild2Same, 1,
/*244971*/                  OPC_CheckType, MVT::v8i32,
/*244973*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244975*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*244978*/                  OPC_EmitMergeInputChains, 1, 3, 
/*244981*/                  OPC_EmitConvertToTarget, 5,
/*244983*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                            // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*244998*/                0, // EndSwitchOpcode
/*244999*/              /*Scope*/ 60, /*->245060*/
/*245000*/                OPC_MoveChild1,
/*245001*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*245004*/                OPC_MoveChild0,
/*245005*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245008*/                OPC_RecordMemRef,
/*245009*/                OPC_RecordNode, // #2 = 'ld' chained node
/*245010*/                OPC_CheckFoldableChainNode,
/*245011*/                OPC_RecordChild1, // #3 = $src3
/*245012*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245014*/                OPC_CheckPredicate, 9, // Predicate_load
/*245016*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*245018*/                OPC_CheckType, MVT::v4i64,
/*245020*/                OPC_MoveParent,
/*245021*/                OPC_MoveParent,
/*245022*/                OPC_RecordChild2, // #4 = $src2
/*245023*/                OPC_RecordChild3, // #5 = $src4
/*245024*/                OPC_MoveChild3,
/*245025*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245028*/                OPC_MoveParent,
/*245029*/                OPC_MoveParent,
/*245030*/                OPC_CheckChild2Same, 1,
/*245032*/                OPC_CheckType, MVT::v8i32,
/*245034*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245036*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245039*/                OPC_EmitMergeInputChains1_2,
/*245040*/                OPC_EmitConvertToTarget, 5,
/*245042*/                OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*245045*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245060*/              0, /*End of Scope*/
/*245061*/            /*Scope*/ 61, /*->245123*/
/*245062*/              OPC_MoveChild0,
/*245063*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*245066*/              OPC_MoveChild0,
/*245067*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245070*/              OPC_RecordMemRef,
/*245071*/              OPC_RecordNode, // #1 = 'ld' chained node
/*245072*/              OPC_CheckFoldableChainNode,
/*245073*/              OPC_RecordChild1, // #2 = $src3
/*245074*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245076*/              OPC_CheckPredicate, 9, // Predicate_load
/*245078*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*245080*/              OPC_CheckType, MVT::v4i64,
/*245082*/              OPC_MoveParent,
/*245083*/              OPC_MoveParent,
/*245084*/              OPC_RecordChild1, // #3 = $src2
/*245085*/              OPC_RecordChild2, // #4 = $src1
/*245086*/              OPC_RecordChild3, // #5 = $src4
/*245087*/              OPC_MoveChild3,
/*245088*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245091*/              OPC_MoveParent,
/*245092*/              OPC_MoveParent,
/*245093*/              OPC_CheckChild2Same, 4,
/*245095*/              OPC_CheckType, MVT::v8i32,
/*245097*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245099*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245102*/              OPC_EmitMergeInputChains1_1,
/*245103*/              OPC_EmitConvertToTarget, 5,
/*245105*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*245108*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245123*/            /*Scope*/ 127, /*->245251*/
/*245124*/              OPC_RecordChild0, // #1 = $src2
/*245125*/              OPC_Scope, 62, /*->245189*/ // 2 children in Scope
/*245127*/                OPC_RecordChild1, // #2 = $src1
/*245128*/                OPC_MoveChild2,
/*245129*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*245132*/                OPC_MoveChild0,
/*245133*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245136*/                OPC_RecordMemRef,
/*245137*/                OPC_RecordNode, // #3 = 'ld' chained node
/*245138*/                OPC_CheckFoldableChainNode,
/*245139*/                OPC_RecordChild1, // #4 = $src3
/*245140*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245142*/                OPC_CheckPredicate, 9, // Predicate_load
/*245144*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*245146*/                OPC_CheckType, MVT::v4i64,
/*245148*/                OPC_MoveParent,
/*245149*/                OPC_MoveParent,
/*245150*/                OPC_RecordChild3, // #5 = $src4
/*245151*/                OPC_MoveChild3,
/*245152*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245155*/                OPC_MoveParent,
/*245156*/                OPC_MoveParent,
/*245157*/                OPC_CheckChild2Same, 2,
/*245159*/                OPC_CheckType, MVT::v8i32,
/*245161*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245163*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245166*/                OPC_EmitMergeInputChains, 1, 3, 
/*245169*/                OPC_EmitConvertToTarget, 5,
/*245171*/                OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*245174*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245189*/              /*Scope*/ 60, /*->245250*/
/*245190*/                OPC_MoveChild1,
/*245191*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*245194*/                OPC_MoveChild0,
/*245195*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245198*/                OPC_RecordMemRef,
/*245199*/                OPC_RecordNode, // #2 = 'ld' chained node
/*245200*/                OPC_CheckFoldableChainNode,
/*245201*/                OPC_RecordChild1, // #3 = $src3
/*245202*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245204*/                OPC_CheckPredicate, 9, // Predicate_load
/*245206*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*245208*/                OPC_CheckType, MVT::v4i64,
/*245210*/                OPC_MoveParent,
/*245211*/                OPC_MoveParent,
/*245212*/                OPC_RecordChild2, // #4 = $src1
/*245213*/                OPC_RecordChild3, // #5 = $src4
/*245214*/                OPC_MoveChild3,
/*245215*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245218*/                OPC_MoveParent,
/*245219*/                OPC_MoveParent,
/*245220*/                OPC_CheckChild2Same, 4,
/*245222*/                OPC_CheckType, MVT::v8i32,
/*245224*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245226*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245229*/                OPC_EmitMergeInputChains1_2,
/*245230*/                OPC_EmitConvertToTarget, 5,
/*245232*/                OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*245235*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245250*/              0, /*End of Scope*/
/*245251*/            /*Scope*/ 61, /*->245313*/
/*245252*/              OPC_MoveChild0,
/*245253*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*245256*/              OPC_MoveChild0,
/*245257*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245260*/              OPC_RecordMemRef,
/*245261*/              OPC_RecordNode, // #1 = 'ld' chained node
/*245262*/              OPC_CheckFoldableChainNode,
/*245263*/              OPC_RecordChild1, // #2 = $src3
/*245264*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245266*/              OPC_CheckPredicate, 9, // Predicate_load
/*245268*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*245270*/              OPC_CheckType, MVT::v4i64,
/*245272*/              OPC_MoveParent,
/*245273*/              OPC_MoveParent,
/*245274*/              OPC_RecordChild1, // #3 = $src1
/*245275*/              OPC_RecordChild2, // #4 = $src2
/*245276*/              OPC_RecordChild3, // #5 = $src4
/*245277*/              OPC_MoveChild3,
/*245278*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245281*/              OPC_MoveParent,
/*245282*/              OPC_MoveParent,
/*245283*/              OPC_CheckChild2Same, 3,
/*245285*/              OPC_CheckType, MVT::v8i32,
/*245287*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245289*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245292*/              OPC_EmitMergeInputChains1_1,
/*245293*/              OPC_EmitConvertToTarget, 5,
/*245295*/              OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*245298*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245313*/            /*Scope*/ 59, /*->245373*/
/*245314*/              OPC_RecordChild0, // #1 = $src1
/*245315*/              OPC_MoveChild1,
/*245316*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*245319*/              OPC_MoveChild0,
/*245320*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245323*/              OPC_RecordMemRef,
/*245324*/              OPC_RecordNode, // #2 = 'ld' chained node
/*245325*/              OPC_CheckFoldableChainNode,
/*245326*/              OPC_RecordChild1, // #3 = $src3
/*245327*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245329*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*245331*/              OPC_CheckType, MVT::i32,
/*245333*/              OPC_MoveParent,
/*245334*/              OPC_MoveParent,
/*245335*/              OPC_RecordChild2, // #4 = $src2
/*245336*/              OPC_RecordChild3, // #5 = $src4
/*245337*/              OPC_MoveChild3,
/*245338*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245341*/              OPC_MoveParent,
/*245342*/              OPC_MoveParent,
/*245343*/              OPC_CheckChild2Same, 1,
/*245345*/              OPC_CheckType, MVT::v8i32,
/*245347*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245349*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245352*/              OPC_EmitMergeInputChains1_2,
/*245353*/              OPC_EmitConvertToTarget, 5,
/*245355*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*245358*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245373*/            /*Scope*/ 59, /*->245433*/
/*245374*/              OPC_MoveChild0,
/*245375*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*245378*/              OPC_MoveChild0,
/*245379*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245382*/              OPC_RecordMemRef,
/*245383*/              OPC_RecordNode, // #1 = 'ld' chained node
/*245384*/              OPC_CheckFoldableChainNode,
/*245385*/              OPC_RecordChild1, // #2 = $src3
/*245386*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245388*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*245390*/              OPC_CheckType, MVT::i32,
/*245392*/              OPC_MoveParent,
/*245393*/              OPC_MoveParent,
/*245394*/              OPC_RecordChild1, // #3 = $src2
/*245395*/              OPC_RecordChild2, // #4 = $src1
/*245396*/              OPC_RecordChild3, // #5 = $src4
/*245397*/              OPC_MoveChild3,
/*245398*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245401*/              OPC_MoveParent,
/*245402*/              OPC_MoveParent,
/*245403*/              OPC_CheckChild2Same, 4,
/*245405*/              OPC_CheckType, MVT::v8i32,
/*245407*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245409*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245412*/              OPC_EmitMergeInputChains1_1,
/*245413*/              OPC_EmitConvertToTarget, 5,
/*245415*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*245418*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245433*/            /*Scope*/ 123, /*->245557*/
/*245434*/              OPC_RecordChild0, // #1 = $src2
/*245435*/              OPC_Scope, 60, /*->245497*/ // 2 children in Scope
/*245437*/                OPC_RecordChild1, // #2 = $src1
/*245438*/                OPC_MoveChild2,
/*245439*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*245442*/                OPC_MoveChild0,
/*245443*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245446*/                OPC_RecordMemRef,
/*245447*/                OPC_RecordNode, // #3 = 'ld' chained node
/*245448*/                OPC_CheckFoldableChainNode,
/*245449*/                OPC_RecordChild1, // #4 = $src3
/*245450*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245452*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*245454*/                OPC_CheckType, MVT::i32,
/*245456*/                OPC_MoveParent,
/*245457*/                OPC_MoveParent,
/*245458*/                OPC_RecordChild3, // #5 = $src4
/*245459*/                OPC_MoveChild3,
/*245460*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245463*/                OPC_MoveParent,
/*245464*/                OPC_MoveParent,
/*245465*/                OPC_CheckChild2Same, 2,
/*245467*/                OPC_CheckType, MVT::v8i32,
/*245469*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245471*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245474*/                OPC_EmitMergeInputChains, 1, 3, 
/*245477*/                OPC_EmitConvertToTarget, 5,
/*245479*/                OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*245482*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245497*/              /*Scope*/ 58, /*->245556*/
/*245498*/                OPC_MoveChild1,
/*245499*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*245502*/                OPC_MoveChild0,
/*245503*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245506*/                OPC_RecordMemRef,
/*245507*/                OPC_RecordNode, // #2 = 'ld' chained node
/*245508*/                OPC_CheckFoldableChainNode,
/*245509*/                OPC_RecordChild1, // #3 = $src3
/*245510*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245512*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*245514*/                OPC_CheckType, MVT::i32,
/*245516*/                OPC_MoveParent,
/*245517*/                OPC_MoveParent,
/*245518*/                OPC_RecordChild2, // #4 = $src1
/*245519*/                OPC_RecordChild3, // #5 = $src4
/*245520*/                OPC_MoveChild3,
/*245521*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245524*/                OPC_MoveParent,
/*245525*/                OPC_MoveParent,
/*245526*/                OPC_CheckChild2Same, 4,
/*245528*/                OPC_CheckType, MVT::v8i32,
/*245530*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245532*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245535*/                OPC_EmitMergeInputChains1_2,
/*245536*/                OPC_EmitConvertToTarget, 5,
/*245538*/                OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*245541*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245556*/              0, /*End of Scope*/
/*245557*/            /*Scope*/ 59, /*->245617*/
/*245558*/              OPC_MoveChild0,
/*245559*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*245562*/              OPC_MoveChild0,
/*245563*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245566*/              OPC_RecordMemRef,
/*245567*/              OPC_RecordNode, // #1 = 'ld' chained node
/*245568*/              OPC_CheckFoldableChainNode,
/*245569*/              OPC_RecordChild1, // #2 = $src3
/*245570*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245572*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*245574*/              OPC_CheckType, MVT::i32,
/*245576*/              OPC_MoveParent,
/*245577*/              OPC_MoveParent,
/*245578*/              OPC_RecordChild1, // #3 = $src1
/*245579*/              OPC_RecordChild2, // #4 = $src2
/*245580*/              OPC_RecordChild3, // #5 = $src4
/*245581*/              OPC_MoveChild3,
/*245582*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245585*/              OPC_MoveParent,
/*245586*/              OPC_MoveParent,
/*245587*/              OPC_CheckChild2Same, 3,
/*245589*/              OPC_CheckType, MVT::v8i32,
/*245591*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245593*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245596*/              OPC_EmitMergeInputChains1_1,
/*245597*/              OPC_EmitConvertToTarget, 5,
/*245599*/              OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*245602*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245617*/            /*Scope*/ 120, /*->245738*/
/*245618*/              OPC_RecordChild0, // #1 = $src1
/*245619*/              OPC_Scope, 57, /*->245678*/ // 2 children in Scope
/*245621*/                OPC_RecordChild1, // #2 = $src2
/*245622*/                OPC_MoveChild2,
/*245623*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*245626*/                OPC_MoveChild0,
/*245627*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245630*/                OPC_RecordMemRef,
/*245631*/                OPC_RecordNode, // #3 = 'ld' chained node
/*245632*/                OPC_CheckFoldableChainNode,
/*245633*/                OPC_RecordChild1, // #4 = $src3
/*245634*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245636*/                OPC_CheckPredicate, 9, // Predicate_load
/*245638*/                OPC_CheckType, MVT::i64,
/*245640*/                OPC_MoveParent,
/*245641*/                OPC_MoveParent,
/*245642*/                OPC_RecordChild3, // #5 = $src4
/*245643*/                OPC_MoveChild3,
/*245644*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245647*/                OPC_MoveParent,
/*245648*/                OPC_MoveParent,
/*245649*/                OPC_CheckChild2Same, 1,
/*245651*/                OPC_CheckType, MVT::v8i64,
/*245653*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245655*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245658*/                OPC_EmitMergeInputChains, 1, 3, 
/*245661*/                OPC_EmitConvertToTarget, 5,
/*245663*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*245678*/              /*Scope*/ 58, /*->245737*/
/*245679*/                OPC_MoveChild1,
/*245680*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*245683*/                OPC_MoveChild0,
/*245684*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245687*/                OPC_RecordMemRef,
/*245688*/                OPC_RecordNode, // #2 = 'ld' chained node
/*245689*/                OPC_CheckFoldableChainNode,
/*245690*/                OPC_RecordChild1, // #3 = $src3
/*245691*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245693*/                OPC_CheckPredicate, 9, // Predicate_load
/*245695*/                OPC_CheckType, MVT::i64,
/*245697*/                OPC_MoveParent,
/*245698*/                OPC_MoveParent,
/*245699*/                OPC_RecordChild2, // #4 = $src2
/*245700*/                OPC_RecordChild3, // #5 = $src4
/*245701*/                OPC_MoveChild3,
/*245702*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245705*/                OPC_MoveParent,
/*245706*/                OPC_MoveParent,
/*245707*/                OPC_CheckChild2Same, 1,
/*245709*/                OPC_CheckType, MVT::v8i64,
/*245711*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245713*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245716*/                OPC_EmitMergeInputChains1_2,
/*245717*/                OPC_EmitConvertToTarget, 5,
/*245719*/                OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*245722*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245737*/              0, /*End of Scope*/
/*245738*/            /*Scope*/ 59, /*->245798*/
/*245739*/              OPC_MoveChild0,
/*245740*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*245743*/              OPC_MoveChild0,
/*245744*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245747*/              OPC_RecordMemRef,
/*245748*/              OPC_RecordNode, // #1 = 'ld' chained node
/*245749*/              OPC_CheckFoldableChainNode,
/*245750*/              OPC_RecordChild1, // #2 = $src3
/*245751*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245753*/              OPC_CheckPredicate, 9, // Predicate_load
/*245755*/              OPC_CheckType, MVT::i64,
/*245757*/              OPC_MoveParent,
/*245758*/              OPC_MoveParent,
/*245759*/              OPC_RecordChild1, // #3 = $src2
/*245760*/              OPC_RecordChild2, // #4 = $src1
/*245761*/              OPC_RecordChild3, // #5 = $src4
/*245762*/              OPC_MoveChild3,
/*245763*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245766*/              OPC_MoveParent,
/*245767*/              OPC_MoveParent,
/*245768*/              OPC_CheckChild2Same, 4,
/*245770*/              OPC_CheckType, MVT::v8i64,
/*245772*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245774*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245777*/              OPC_EmitMergeInputChains1_1,
/*245778*/              OPC_EmitConvertToTarget, 5,
/*245780*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*245783*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245798*/            /*Scope*/ 123, /*->245922*/
/*245799*/              OPC_RecordChild0, // #1 = $src2
/*245800*/              OPC_Scope, 60, /*->245862*/ // 2 children in Scope
/*245802*/                OPC_RecordChild1, // #2 = $src1
/*245803*/                OPC_MoveChild2,
/*245804*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*245807*/                OPC_MoveChild0,
/*245808*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245811*/                OPC_RecordMemRef,
/*245812*/                OPC_RecordNode, // #3 = 'ld' chained node
/*245813*/                OPC_CheckFoldableChainNode,
/*245814*/                OPC_RecordChild1, // #4 = $src3
/*245815*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245817*/                OPC_CheckPredicate, 9, // Predicate_load
/*245819*/                OPC_CheckType, MVT::i64,
/*245821*/                OPC_MoveParent,
/*245822*/                OPC_MoveParent,
/*245823*/                OPC_RecordChild3, // #5 = $src4
/*245824*/                OPC_MoveChild3,
/*245825*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245828*/                OPC_MoveParent,
/*245829*/                OPC_MoveParent,
/*245830*/                OPC_CheckChild2Same, 2,
/*245832*/                OPC_CheckType, MVT::v8i64,
/*245834*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245836*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245839*/                OPC_EmitMergeInputChains, 1, 3, 
/*245842*/                OPC_EmitConvertToTarget, 5,
/*245844*/                OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*245847*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245862*/              /*Scope*/ 58, /*->245921*/
/*245863*/                OPC_MoveChild1,
/*245864*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*245867*/                OPC_MoveChild0,
/*245868*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245871*/                OPC_RecordMemRef,
/*245872*/                OPC_RecordNode, // #2 = 'ld' chained node
/*245873*/                OPC_CheckFoldableChainNode,
/*245874*/                OPC_RecordChild1, // #3 = $src3
/*245875*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245877*/                OPC_CheckPredicate, 9, // Predicate_load
/*245879*/                OPC_CheckType, MVT::i64,
/*245881*/                OPC_MoveParent,
/*245882*/                OPC_MoveParent,
/*245883*/                OPC_RecordChild2, // #4 = $src1
/*245884*/                OPC_RecordChild3, // #5 = $src4
/*245885*/                OPC_MoveChild3,
/*245886*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245889*/                OPC_MoveParent,
/*245890*/                OPC_MoveParent,
/*245891*/                OPC_CheckChild2Same, 4,
/*245893*/                OPC_CheckType, MVT::v8i64,
/*245895*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245897*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245900*/                OPC_EmitMergeInputChains1_2,
/*245901*/                OPC_EmitConvertToTarget, 5,
/*245903*/                OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*245906*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245921*/              0, /*End of Scope*/
/*245922*/            /*Scope*/ 59, /*->245982*/
/*245923*/              OPC_MoveChild0,
/*245924*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*245927*/              OPC_MoveChild0,
/*245928*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245931*/              OPC_RecordMemRef,
/*245932*/              OPC_RecordNode, // #1 = 'ld' chained node
/*245933*/              OPC_CheckFoldableChainNode,
/*245934*/              OPC_RecordChild1, // #2 = $src3
/*245935*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245937*/              OPC_CheckPredicate, 9, // Predicate_load
/*245939*/              OPC_CheckType, MVT::i64,
/*245941*/              OPC_MoveParent,
/*245942*/              OPC_MoveParent,
/*245943*/              OPC_RecordChild1, // #3 = $src1
/*245944*/              OPC_RecordChild2, // #4 = $src2
/*245945*/              OPC_RecordChild3, // #5 = $src4
/*245946*/              OPC_MoveChild3,
/*245947*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*245950*/              OPC_MoveParent,
/*245951*/              OPC_MoveParent,
/*245952*/              OPC_CheckChild2Same, 3,
/*245954*/              OPC_CheckType, MVT::v8i64,
/*245956*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245958*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*245961*/              OPC_EmitMergeInputChains1_1,
/*245962*/              OPC_EmitConvertToTarget, 5,
/*245964*/              OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*245967*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*245982*/            0, /*End of Scope*/
/*245983*/          /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(X86ISD::VSHLD),// ->246177
/*245987*/            OPC_RecordChild0, // #1 = $src1
/*245988*/            OPC_MoveChild1,
/*245989*/            OPC_SwitchOpcode /*2 cases */, 90, TARGET_VAL(ISD::BITCAST),// ->246083
/*245993*/              OPC_MoveChild0,
/*245994*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*245997*/              OPC_RecordMemRef,
/*245998*/              OPC_RecordNode, // #2 = 'ld' chained node
/*245999*/              OPC_CheckFoldableChainNode,
/*246000*/              OPC_RecordChild1, // #3 = $src2
/*246001*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246003*/              OPC_CheckPredicate, 9, // Predicate_load
/*246005*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*246007*/              OPC_SwitchType /*2 cases */, 35, MVT::v2i64,// ->246045
/*246010*/                OPC_MoveParent,
/*246011*/                OPC_MoveParent,
/*246012*/                OPC_RecordChild2, // #4 = $src3
/*246013*/                OPC_MoveChild2,
/*246014*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*246017*/                OPC_MoveParent,
/*246018*/                OPC_MoveParent,
/*246019*/                OPC_RecordChild2, // #5 = $src0
/*246020*/                OPC_CheckType, MVT::v8i16,
/*246022*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*246024*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*246027*/                OPC_EmitMergeInputChains1_2,
/*246028*/                OPC_EmitConvertToTarget, 4,
/*246030*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 34
                          // Dst: (VPSHLDWZ128rmik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*246045*/              /*SwitchType*/ 35, MVT::v4i64,// ->246082
/*246047*/                OPC_MoveParent,
/*246048*/                OPC_MoveParent,
/*246049*/                OPC_RecordChild2, // #4 = $src3
/*246050*/                OPC_MoveChild2,
/*246051*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*246054*/                OPC_MoveParent,
/*246055*/                OPC_MoveParent,
/*246056*/                OPC_RecordChild2, // #5 = $src0
/*246057*/                OPC_CheckType, MVT::v8i32,
/*246059*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*246061*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*246064*/                OPC_EmitMergeInputChains1_2,
/*246065*/                OPC_EmitConvertToTarget, 4,
/*246067*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPSHLDDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*246082*/              0, // EndSwitchType
/*246083*/            /*SwitchOpcode*/ 90, TARGET_VAL(X86ISD::VBROADCAST),// ->246176
/*246086*/              OPC_MoveChild0,
/*246087*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*246090*/              OPC_RecordMemRef,
/*246091*/              OPC_RecordNode, // #2 = 'ld' chained node
/*246092*/              OPC_CheckFoldableChainNode,
/*246093*/              OPC_RecordChild1, // #3 = $src2
/*246094*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246096*/              OPC_SwitchType /*2 cases */, 37, MVT::i32,// ->246136
/*246099*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*246101*/                OPC_MoveParent,
/*246102*/                OPC_MoveParent,
/*246103*/                OPC_RecordChild2, // #4 = $src3
/*246104*/                OPC_MoveChild2,
/*246105*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*246108*/                OPC_MoveParent,
/*246109*/                OPC_MoveParent,
/*246110*/                OPC_RecordChild2, // #5 = $src0
/*246111*/                OPC_CheckType, MVT::v8i32,
/*246113*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*246115*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*246118*/                OPC_EmitMergeInputChains1_2,
/*246119*/                OPC_EmitConvertToTarget, 4,
/*246121*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPSHLDDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*246136*/              /*SwitchType*/ 37, MVT::i64,// ->246175
/*246138*/                OPC_CheckPredicate, 9, // Predicate_load
/*246140*/                OPC_MoveParent,
/*246141*/                OPC_MoveParent,
/*246142*/                OPC_RecordChild2, // #4 = $src3
/*246143*/                OPC_MoveChild2,
/*246144*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*246147*/                OPC_MoveParent,
/*246148*/                OPC_MoveParent,
/*246149*/                OPC_RecordChild2, // #5 = $src0
/*246150*/                OPC_CheckType, MVT::v8i64,
/*246152*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*246154*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*246157*/                OPC_EmitMergeInputChains1_2,
/*246158*/                OPC_EmitConvertToTarget, 4,
/*246160*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VPSHLDQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*246175*/              0, // EndSwitchType
/*246176*/            0, // EndSwitchOpcode
/*246177*/          /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(X86ISD::VSHRD),// ->246371
/*246181*/            OPC_RecordChild0, // #1 = $src1
/*246182*/            OPC_MoveChild1,
/*246183*/            OPC_SwitchOpcode /*2 cases */, 90, TARGET_VAL(ISD::BITCAST),// ->246277
/*246187*/              OPC_MoveChild0,
/*246188*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*246191*/              OPC_RecordMemRef,
/*246192*/              OPC_RecordNode, // #2 = 'ld' chained node
/*246193*/              OPC_CheckFoldableChainNode,
/*246194*/              OPC_RecordChild1, // #3 = $src2
/*246195*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246197*/              OPC_CheckPredicate, 9, // Predicate_load
/*246199*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*246201*/              OPC_SwitchType /*2 cases */, 35, MVT::v2i64,// ->246239
/*246204*/                OPC_MoveParent,
/*246205*/                OPC_MoveParent,
/*246206*/                OPC_RecordChild2, // #4 = $src3
/*246207*/                OPC_MoveChild2,
/*246208*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*246211*/                OPC_MoveParent,
/*246212*/                OPC_MoveParent,
/*246213*/                OPC_RecordChild2, // #5 = $src0
/*246214*/                OPC_CheckType, MVT::v8i16,
/*246216*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*246218*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*246221*/                OPC_EmitMergeInputChains1_2,
/*246222*/                OPC_EmitConvertToTarget, 4,
/*246224*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 34
                          // Dst: (VPSHRDWZ128rmik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*246239*/              /*SwitchType*/ 35, MVT::v4i64,// ->246276
/*246241*/                OPC_MoveParent,
/*246242*/                OPC_MoveParent,
/*246243*/                OPC_RecordChild2, // #4 = $src3
/*246244*/                OPC_MoveChild2,
/*246245*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*246248*/                OPC_MoveParent,
/*246249*/                OPC_MoveParent,
/*246250*/                OPC_RecordChild2, // #5 = $src0
/*246251*/                OPC_CheckType, MVT::v8i32,
/*246253*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*246255*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*246258*/                OPC_EmitMergeInputChains1_2,
/*246259*/                OPC_EmitConvertToTarget, 4,
/*246261*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPSHRDDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*246276*/              0, // EndSwitchType
/*246277*/            /*SwitchOpcode*/ 90, TARGET_VAL(X86ISD::VBROADCAST),// ->246370
/*246280*/              OPC_MoveChild0,
/*246281*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*246284*/              OPC_RecordMemRef,
/*246285*/              OPC_RecordNode, // #2 = 'ld' chained node
/*246286*/              OPC_CheckFoldableChainNode,
/*246287*/              OPC_RecordChild1, // #3 = $src2
/*246288*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246290*/              OPC_SwitchType /*2 cases */, 37, MVT::i32,// ->246330
/*246293*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*246295*/                OPC_MoveParent,
/*246296*/                OPC_MoveParent,
/*246297*/                OPC_RecordChild2, // #4 = $src3
/*246298*/                OPC_MoveChild2,
/*246299*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*246302*/                OPC_MoveParent,
/*246303*/                OPC_MoveParent,
/*246304*/                OPC_RecordChild2, // #5 = $src0
/*246305*/                OPC_CheckType, MVT::v8i32,
/*246307*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*246309*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*246312*/                OPC_EmitMergeInputChains1_2,
/*246313*/                OPC_EmitConvertToTarget, 4,
/*246315*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VPSHRDDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*246330*/              /*SwitchType*/ 37, MVT::i64,// ->246369
/*246332*/                OPC_CheckPredicate, 9, // Predicate_load
/*246334*/                OPC_MoveParent,
/*246335*/                OPC_MoveParent,
/*246336*/                OPC_RecordChild2, // #4 = $src3
/*246337*/                OPC_MoveChild2,
/*246338*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*246341*/                OPC_MoveParent,
/*246342*/                OPC_MoveParent,
/*246343*/                OPC_RecordChild2, // #5 = $src0
/*246344*/                OPC_CheckType, MVT::v8i64,
/*246346*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*246348*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*246351*/                OPC_EmitMergeInputChains1_2,
/*246352*/                OPC_EmitConvertToTarget, 4,
/*246354*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VPSHRDQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*246369*/              0, // EndSwitchType
/*246370*/            0, // EndSwitchOpcode
/*246371*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->246417
/*246374*/            OPC_MoveChild0,
/*246375*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*246378*/            OPC_RecordMemRef,
/*246379*/            OPC_RecordNode, // #1 = 'ld' chained node
/*246380*/            OPC_CheckFoldableChainNode,
/*246381*/            OPC_RecordChild1, // #2 = $src
/*246382*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246384*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*246386*/            OPC_CheckType, MVT::i32,
/*246388*/            OPC_MoveParent,
/*246389*/            OPC_MoveParent,
/*246390*/            OPC_MoveChild2,
/*246391*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246394*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246396*/            OPC_MoveParent,
/*246397*/            OPC_CheckType, MVT::v8i32,
/*246399*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246401*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246404*/            OPC_EmitMergeInputChains1_1,
/*246405*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                      // Dst: (VPBROADCASTDZ256mkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246417*/          /*SwitchOpcode*/ 125|128,2/*381*/, TARGET_VAL(ISD::LOAD),// ->246802
/*246421*/            OPC_RecordMemRef,
/*246422*/            OPC_RecordNode, // #1 = 'ld' chained node
/*246423*/            OPC_CheckFoldableChainNode,
/*246424*/            OPC_RecordChild1, // #2 = $src
/*246425*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246427*/            OPC_Scope, 80, /*->246509*/ // 3 children in Scope
/*246429*/              OPC_CheckPredicate, 9, // Predicate_load
/*246431*/              OPC_Scope, 37, /*->246470*/ // 2 children in Scope
/*246433*/                OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*246435*/                OPC_MoveParent,
/*246436*/                OPC_MoveChild2,
/*246437*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*246440*/                OPC_MoveChild0,
/*246441*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246444*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246446*/                OPC_CheckType, MVT::v16i32,
/*246448*/                OPC_MoveParent,
/*246449*/                OPC_MoveParent,
/*246450*/                OPC_CheckType, MVT::v8i64,
/*246452*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246454*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246457*/                OPC_EmitMergeInputChains1_1,
/*246458*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVDQA64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246470*/              /*Scope*/ 37, /*->246508*/
/*246471*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*246473*/                OPC_MoveParent,
/*246474*/                OPC_MoveChild2,
/*246475*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*246478*/                OPC_MoveChild0,
/*246479*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246482*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246484*/                OPC_CheckType, MVT::v16i32,
/*246486*/                OPC_MoveParent,
/*246487*/                OPC_MoveParent,
/*246488*/                OPC_CheckType, MVT::v8i64,
/*246490*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246492*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246495*/                OPC_EmitMergeInputChains1_1,
/*246496*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVDQU64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246508*/              0, /*End of Scope*/
/*246509*/            /*Scope*/ 16|128,1/*144*/, /*->246655*/
/*246511*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*246513*/              OPC_Scope, 63, /*->246578*/ // 3 children in Scope
/*246515*/                OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*246517*/                OPC_MoveParent,
/*246518*/                OPC_MoveChild2,
/*246519*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*246522*/                OPC_MoveChild0,
/*246523*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246526*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246528*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->246553
/*246531*/                  OPC_MoveParent,
/*246532*/                  OPC_MoveParent,
/*246533*/                  OPC_CheckType, MVT::v8i16,
/*246535*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*246537*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246540*/                  OPC_EmitMergeInputChains1_1,
/*246541*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                            // Dst: (VPMOVZXBWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246553*/                /*SwitchType*/ 22, MVT::v16i32,// ->246577
/*246555*/                  OPC_MoveParent,
/*246556*/                  OPC_MoveParent,
/*246557*/                  OPC_CheckType, MVT::v8i64,
/*246559*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246561*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246564*/                  OPC_EmitMergeInputChains1_1,
/*246565*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                            // Dst: (VPMOVZXBQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246577*/                0, // EndSwitchType
/*246578*/              /*Scope*/ 37, /*->246616*/
/*246579*/                OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*246581*/                OPC_MoveParent,
/*246582*/                OPC_MoveChild2,
/*246583*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*246586*/                OPC_MoveChild0,
/*246587*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246590*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246592*/                OPC_CheckType, MVT::v16i32,
/*246594*/                OPC_MoveParent,
/*246595*/                OPC_MoveParent,
/*246596*/                OPC_CheckType, MVT::v8i64,
/*246598*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246600*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246603*/                OPC_EmitMergeInputChains1_1,
/*246604*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VPMOVZXWQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246616*/              /*Scope*/ 37, /*->246654*/
/*246617*/                OPC_CheckPredicate, 72, // Predicate_zextloadvi32
/*246619*/                OPC_MoveParent,
/*246620*/                OPC_MoveChild2,
/*246621*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*246624*/                OPC_MoveChild0,
/*246625*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246628*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246630*/                OPC_CheckType, MVT::v16i32,
/*246632*/                OPC_MoveParent,
/*246633*/                OPC_MoveParent,
/*246634*/                OPC_CheckType, MVT::v8i64,
/*246636*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246638*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246641*/                OPC_EmitMergeInputChains1_1,
/*246642*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>>, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VPMOVZXDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246654*/              0, /*End of Scope*/
/*246655*/            /*Scope*/ 16|128,1/*144*/, /*->246801*/
/*246657*/              OPC_CheckPredicate, 60, // Predicate_sextload
/*246659*/              OPC_Scope, 63, /*->246724*/ // 3 children in Scope
/*246661*/                OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*246663*/                OPC_MoveParent,
/*246664*/                OPC_MoveChild2,
/*246665*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*246668*/                OPC_MoveChild0,
/*246669*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246672*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246674*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->246699
/*246677*/                  OPC_MoveParent,
/*246678*/                  OPC_MoveParent,
/*246679*/                  OPC_CheckType, MVT::v8i16,
/*246681*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*246683*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246686*/                  OPC_EmitMergeInputChains1_1,
/*246687*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                            // Dst: (VPMOVSXBWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246699*/                /*SwitchType*/ 22, MVT::v16i32,// ->246723
/*246701*/                  OPC_MoveParent,
/*246702*/                  OPC_MoveParent,
/*246703*/                  OPC_CheckType, MVT::v8i64,
/*246705*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246707*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246710*/                  OPC_EmitMergeInputChains1_1,
/*246711*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                            // Dst: (VPMOVSXBQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246723*/                0, // EndSwitchType
/*246724*/              /*Scope*/ 37, /*->246762*/
/*246725*/                OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*246727*/                OPC_MoveParent,
/*246728*/                OPC_MoveChild2,
/*246729*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*246732*/                OPC_MoveChild0,
/*246733*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246736*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246738*/                OPC_CheckType, MVT::v16i32,
/*246740*/                OPC_MoveParent,
/*246741*/                OPC_MoveParent,
/*246742*/                OPC_CheckType, MVT::v8i64,
/*246744*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246746*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246749*/                OPC_EmitMergeInputChains1_1,
/*246750*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VPMOVSXWQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246762*/              /*Scope*/ 37, /*->246800*/
/*246763*/                OPC_CheckPredicate, 72, // Predicate_sextloadvi32
/*246765*/                OPC_MoveParent,
/*246766*/                OPC_MoveChild2,
/*246767*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*246770*/                OPC_MoveChild0,
/*246771*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246774*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246776*/                OPC_CheckType, MVT::v16i32,
/*246778*/                OPC_MoveParent,
/*246779*/                OPC_MoveParent,
/*246780*/                OPC_CheckType, MVT::v8i64,
/*246782*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246784*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246787*/                OPC_EmitMergeInputChains1_1,
/*246788*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>>, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VPMOVSXDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246800*/              0, /*End of Scope*/
/*246801*/            0, /*End of Scope*/
/*246802*/          /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::CVTTP2SI),// ->246883
/*246805*/            OPC_MoveChild0,
/*246806*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*246809*/            OPC_RecordMemRef,
/*246810*/            OPC_RecordNode, // #1 = 'ld' chained node
/*246811*/            OPC_CheckFoldableChainNode,
/*246812*/            OPC_RecordChild1, // #2 = $src
/*246813*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246815*/            OPC_CheckPredicate, 9, // Predicate_load
/*246817*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*246819*/            OPC_SwitchType /*2 cases */, 29, MVT::v8f32,// ->246851
/*246822*/              OPC_MoveParent,
/*246823*/              OPC_MoveParent,
/*246824*/              OPC_MoveChild2,
/*246825*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246828*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246830*/              OPC_MoveParent,
/*246831*/              OPC_CheckType, MVT::v8i32,
/*246833*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*246835*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246838*/              OPC_EmitMergeInputChains1_1,
/*246839*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                        // Dst: (VCVTTPS2DQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246851*/            /*SwitchType*/ 29, MVT::v8f64,// ->246882
/*246853*/              OPC_MoveParent,
/*246854*/              OPC_MoveParent,
/*246855*/              OPC_MoveChild2,
/*246856*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246859*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246861*/              OPC_MoveParent,
/*246862*/              OPC_CheckType, MVT::v8i32,
/*246864*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246866*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246869*/              OPC_EmitMergeInputChains1_1,
/*246870*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                        // Dst: (VCVTTPD2DQZrmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246882*/            0, // EndSwitchType
/*246883*/          /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::CVTTP2UI),// ->246964
/*246886*/            OPC_MoveChild0,
/*246887*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*246890*/            OPC_RecordMemRef,
/*246891*/            OPC_RecordNode, // #1 = 'ld' chained node
/*246892*/            OPC_CheckFoldableChainNode,
/*246893*/            OPC_RecordChild1, // #2 = $src
/*246894*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246896*/            OPC_CheckPredicate, 9, // Predicate_load
/*246898*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*246900*/            OPC_SwitchType /*2 cases */, 29, MVT::v8f32,// ->246932
/*246903*/              OPC_MoveParent,
/*246904*/              OPC_MoveParent,
/*246905*/              OPC_MoveChild2,
/*246906*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246909*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246911*/              OPC_MoveParent,
/*246912*/              OPC_CheckType, MVT::v8i32,
/*246914*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*246916*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246919*/              OPC_EmitMergeInputChains1_1,
/*246920*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                        // Dst: (VCVTTPS2UDQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246932*/            /*SwitchType*/ 29, MVT::v8f64,// ->246963
/*246934*/              OPC_MoveParent,
/*246935*/              OPC_MoveParent,
/*246936*/              OPC_MoveChild2,
/*246937*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246940*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246942*/              OPC_MoveParent,
/*246943*/              OPC_CheckType, MVT::v8i32,
/*246945*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246947*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*246950*/              OPC_EmitMergeInputChains1_1,
/*246951*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                        // Dst: (VCVTTPD2UDQZrmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*246963*/            0, // EndSwitchType
/*246964*/          /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::CVTP2SI),// ->247045
/*246967*/            OPC_MoveChild0,
/*246968*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*246971*/            OPC_RecordMemRef,
/*246972*/            OPC_RecordNode, // #1 = 'ld' chained node
/*246973*/            OPC_CheckFoldableChainNode,
/*246974*/            OPC_RecordChild1, // #2 = $src
/*246975*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246977*/            OPC_CheckPredicate, 9, // Predicate_load
/*246979*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*246981*/            OPC_SwitchType /*2 cases */, 29, MVT::v8f32,// ->247013
/*246984*/              OPC_MoveParent,
/*246985*/              OPC_MoveParent,
/*246986*/              OPC_MoveChild2,
/*246987*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*246990*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*246992*/              OPC_MoveParent,
/*246993*/              OPC_CheckType, MVT::v8i32,
/*246995*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*246997*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*247000*/              OPC_EmitMergeInputChains1_1,
/*247001*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                        // Dst: (VCVTPS2DQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247013*/            /*SwitchType*/ 29, MVT::v8f64,// ->247044
/*247015*/              OPC_MoveParent,
/*247016*/              OPC_MoveParent,
/*247017*/              OPC_MoveChild2,
/*247018*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*247021*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*247023*/              OPC_MoveParent,
/*247024*/              OPC_CheckType, MVT::v8i32,
/*247026*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247028*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*247031*/              OPC_EmitMergeInputChains1_1,
/*247032*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                        // Dst: (VCVTPD2DQZrmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247044*/            0, // EndSwitchType
/*247045*/          /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::CVTP2UI),// ->247126
/*247048*/            OPC_MoveChild0,
/*247049*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247052*/            OPC_RecordMemRef,
/*247053*/            OPC_RecordNode, // #1 = 'ld' chained node
/*247054*/            OPC_CheckFoldableChainNode,
/*247055*/            OPC_RecordChild1, // #2 = $src
/*247056*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247058*/            OPC_CheckPredicate, 9, // Predicate_load
/*247060*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*247062*/            OPC_SwitchType /*2 cases */, 29, MVT::v8f32,// ->247094
/*247065*/              OPC_MoveParent,
/*247066*/              OPC_MoveParent,
/*247067*/              OPC_MoveChild2,
/*247068*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*247071*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*247073*/              OPC_MoveParent,
/*247074*/              OPC_CheckType, MVT::v8i32,
/*247076*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*247078*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*247081*/              OPC_EmitMergeInputChains1_1,
/*247082*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                        // Dst: (VCVTPS2UDQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247094*/            /*SwitchType*/ 29, MVT::v8f64,// ->247125
/*247096*/              OPC_MoveParent,
/*247097*/              OPC_MoveParent,
/*247098*/              OPC_MoveChild2,
/*247099*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*247102*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*247104*/              OPC_MoveParent,
/*247105*/              OPC_CheckType, MVT::v8i32,
/*247107*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247109*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*247112*/              OPC_EmitMergeInputChains1_1,
/*247113*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                        // Dst: (VCVTPD2UDQZrmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247125*/            0, // EndSwitchType
/*247126*/          0, // EndSwitchOpcode
/*247127*/        /*Scope*/ 102, /*->247230*/
/*247128*/          OPC_RecordChild1, // #1 = $src3
/*247129*/          OPC_MoveChild1,
/*247130*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*247133*/          OPC_RecordChild0, // #2 = $src1
/*247134*/          OPC_MoveChild1,
/*247135*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247138*/          OPC_RecordMemRef,
/*247139*/          OPC_RecordNode, // #3 = 'ld' chained node
/*247140*/          OPC_CheckFoldableChainNode,
/*247141*/          OPC_RecordChild1, // #4 = $src2
/*247142*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247144*/          OPC_CheckPredicate, 9, // Predicate_load
/*247146*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*247148*/          OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->247189
/*247151*/            OPC_MoveParent,
/*247152*/            OPC_MoveChild2,
/*247153*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*247156*/            OPC_CheckType, MVT::iPTR,
/*247158*/            OPC_MoveParent,
/*247159*/            OPC_MoveParent,
/*247160*/            OPC_RecordChild2, // #5 = $src0
/*247161*/            OPC_CheckType, MVT::v8i64,
/*247163*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247165*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*247168*/            OPC_EmitMergeInputChains, 1, 3, 
/*247171*/            OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*247174*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VINSERTI64x4Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*247189*/          /*SwitchType*/ 38, MVT::v2i64,// ->247229
/*247191*/            OPC_MoveParent,
/*247192*/            OPC_MoveChild2,
/*247193*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*247196*/            OPC_CheckType, MVT::iPTR,
/*247198*/            OPC_MoveParent,
/*247199*/            OPC_MoveParent,
/*247200*/            OPC_RecordChild2, // #5 = $src0
/*247201*/            OPC_CheckType, MVT::v8i64,
/*247203*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*247205*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*247208*/            OPC_EmitMergeInputChains, 1, 3, 
/*247211*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*247214*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VINSERTI64x2Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*247229*/          0, // EndSwitchType
/*247230*/        /*Scope*/ 80|128,100/*12880*/, /*->260112*/
/*247232*/          OPC_MoveChild1,
/*247233*/          OPC_SwitchOpcode /*72 cases */, 78|128,1/*206*/, TARGET_VAL(X86ISD::VBROADCAST),// ->247444
/*247238*/            OPC_MoveChild0,
/*247239*/            OPC_SwitchOpcode /*2 cases */, 105, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->247348
/*247243*/              OPC_MoveChild0,
/*247244*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247247*/              OPC_RecordMemRef,
/*247248*/              OPC_RecordNode, // #1 = 'ld' chained node
/*247249*/              OPC_CheckFoldableChainNode,
/*247250*/              OPC_RecordChild1, // #2 = $src
/*247251*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247253*/              OPC_SwitchType /*3 cases */, 29, MVT::i16,// ->247285
/*247256*/                OPC_CheckPredicate, 7, // Predicate_loadi16
/*247258*/                OPC_MoveParent,
/*247259*/                OPC_CheckType, MVT::v8i16,
/*247261*/                OPC_MoveParent,
/*247262*/                OPC_MoveParent,
/*247263*/                OPC_RecordChild2, // #3 = $src0
/*247264*/                OPC_CheckType, MVT::v8i16,
/*247266*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*247268*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*247271*/                OPC_EmitMergeInputChains1_1,
/*247272*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i16] } (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPBROADCASTWZ128mk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247285*/              /*SwitchType*/ 29, MVT::i32,// ->247316
/*247287*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*247289*/                OPC_MoveParent,
/*247290*/                OPC_CheckType, MVT::v4i32,
/*247292*/                OPC_MoveParent,
/*247293*/                OPC_MoveParent,
/*247294*/                OPC_RecordChild2, // #3 = $src0
/*247295*/                OPC_CheckType, MVT::v8i32,
/*247297*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247299*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*247302*/                OPC_EmitMergeInputChains1_1,
/*247303*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPBROADCASTDZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247316*/              /*SwitchType*/ 29, MVT::i64,// ->247347
/*247318*/                OPC_CheckPredicate, 9, // Predicate_load
/*247320*/                OPC_MoveParent,
/*247321*/                OPC_CheckType, MVT::v2i64,
/*247323*/                OPC_MoveParent,
/*247324*/                OPC_MoveParent,
/*247325*/                OPC_RecordChild2, // #3 = $src0
/*247326*/                OPC_CheckType, MVT::v8i64,
/*247328*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247330*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*247333*/                OPC_EmitMergeInputChains1_1,
/*247334*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPBROADCASTQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247347*/              0, // EndSwitchType
/*247348*/            /*SwitchOpcode*/ 92, TARGET_VAL(ISD::LOAD),// ->247443
/*247351*/              OPC_RecordMemRef,
/*247352*/              OPC_RecordNode, // #1 = 'ld' chained node
/*247353*/              OPC_CheckFoldableChainNode,
/*247354*/              OPC_RecordChild1, // #2 = $src
/*247355*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247357*/              OPC_SwitchType /*3 cases */, 26, MVT::i16,// ->247386
/*247360*/                OPC_CheckPredicate, 7, // Predicate_loadi16
/*247362*/                OPC_MoveParent,
/*247363*/                OPC_MoveParent,
/*247364*/                OPC_RecordChild2, // #3 = $src0
/*247365*/                OPC_CheckType, MVT::v8i16,
/*247367*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*247369*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*247372*/                OPC_EmitMergeInputChains1_1,
/*247373*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPBROADCASTWZ128mk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247386*/              /*SwitchType*/ 26, MVT::i32,// ->247414
/*247388*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*247390*/                OPC_MoveParent,
/*247391*/                OPC_MoveParent,
/*247392*/                OPC_RecordChild2, // #3 = $src0
/*247393*/                OPC_CheckType, MVT::v8i32,
/*247395*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247397*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*247400*/                OPC_EmitMergeInputChains1_1,
/*247401*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPBROADCASTDZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247414*/              /*SwitchType*/ 26, MVT::i64,// ->247442
/*247416*/                OPC_CheckPredicate, 9, // Predicate_load
/*247418*/                OPC_MoveParent,
/*247419*/                OPC_MoveParent,
/*247420*/                OPC_RecordChild2, // #3 = $src0
/*247421*/                OPC_CheckType, MVT::v8i64,
/*247423*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247425*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*247428*/                OPC_EmitMergeInputChains1_1,
/*247429*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPBROADCASTQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247442*/              0, // EndSwitchType
/*247443*/            0, // EndSwitchOpcode
/*247444*/          /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->247561
/*247447*/            OPC_MoveChild0,
/*247448*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::BITCAST),// ->247493
/*247452*/              OPC_MoveChild0,
/*247453*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247456*/              OPC_RecordMemRef,
/*247457*/              OPC_RecordNode, // #1 = 'ld' chained node
/*247458*/              OPC_CheckFoldableChainNode,
/*247459*/              OPC_RecordChild1, // #2 = $src
/*247460*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247462*/              OPC_CheckPredicate, 9, // Predicate_load
/*247464*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*247466*/              OPC_CheckType, MVT::v2i64,
/*247468*/              OPC_MoveParent,
/*247469*/              OPC_MoveParent,
/*247470*/              OPC_MoveParent,
/*247471*/              OPC_RecordChild2, // #3 = $src0
/*247472*/              OPC_CheckType, MVT::v8i32,
/*247474*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*247476*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*247479*/              OPC_EmitMergeInputChains1_1,
/*247480*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VBROADCASTI32X4Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247493*/            /*SwitchOpcode*/ 64, TARGET_VAL(ISD::LOAD),// ->247560
/*247496*/              OPC_RecordMemRef,
/*247497*/              OPC_RecordNode, // #1 = 'ld' chained node
/*247498*/              OPC_CheckFoldableChainNode,
/*247499*/              OPC_RecordChild1, // #2 = $src
/*247500*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247502*/              OPC_CheckPredicate, 9, // Predicate_load
/*247504*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*247506*/              OPC_SwitchType /*2 cases */, 24, MVT::v4i64,// ->247533
/*247509*/                OPC_MoveParent,
/*247510*/                OPC_MoveParent,
/*247511*/                OPC_RecordChild2, // #3 = $src0
/*247512*/                OPC_CheckType, MVT::v8i64,
/*247514*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247516*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*247519*/                OPC_EmitMergeInputChains1_1,
/*247520*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X4rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VBROADCASTI64X4rmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247533*/              /*SwitchType*/ 24, MVT::v2i64,// ->247559
/*247535*/                OPC_MoveParent,
/*247536*/                OPC_MoveParent,
/*247537*/                OPC_RecordChild2, // #3 = $src0
/*247538*/                OPC_CheckType, MVT::v8i64,
/*247540*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*247542*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*247545*/                OPC_EmitMergeInputChains1_1,
/*247546*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X2rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VBROADCASTI64X2rmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247559*/              0, // EndSwitchType
/*247560*/            0, // EndSwitchOpcode
/*247561*/          /*SwitchOpcode*/ 55|128,7/*951*/, TARGET_VAL(ISD::BITCAST),// ->248516
/*247565*/            OPC_Scope, 3|128,4/*515*/, /*->248083*/ // 3 children in Scope
/*247568*/              OPC_MoveChild0,
/*247569*/              OPC_SwitchOpcode /*7 cases */, 41, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->247614
/*247573*/                OPC_MoveChild0,
/*247574*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247577*/                OPC_RecordMemRef,
/*247578*/                OPC_RecordNode, // #1 = 'ld' chained node
/*247579*/                OPC_CheckFoldableChainNode,
/*247580*/                OPC_RecordChild1, // #2 = $src
/*247581*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247583*/                OPC_CheckPredicate, 9, // Predicate_load
/*247585*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*247587*/                OPC_MoveParent,
/*247588*/                OPC_CheckType, MVT::v4i64,
/*247590*/                OPC_MoveParent,
/*247591*/                OPC_MoveParent,
/*247592*/                OPC_RecordChild2, // #3 = $src0
/*247593*/                OPC_CheckType, MVT::v8i32,
/*247595*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*247597*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*247600*/                OPC_EmitMergeInputChains1_1,
/*247601*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86SubVBroadcast:{ *:[v4i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTI32X4Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247614*/              /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->247658
/*247617*/                OPC_MoveChild0,
/*247618*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247621*/                OPC_RecordMemRef,
/*247622*/                OPC_RecordNode, // #1 = 'ld' chained node
/*247623*/                OPC_CheckFoldableChainNode,
/*247624*/                OPC_RecordChild1, // #2 = $src
/*247625*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247627*/                OPC_CheckPredicate, 9, // Predicate_load
/*247629*/                OPC_CheckType, MVT::i64,
/*247631*/                OPC_MoveParent,
/*247632*/                OPC_CheckType, MVT::v4i64,
/*247634*/                OPC_MoveParent,
/*247635*/                OPC_MoveParent,
/*247636*/                OPC_RecordChild2, // #3 = $src0
/*247637*/                OPC_CheckType, MVT::v8i32,
/*247639*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*247641*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*247644*/                OPC_EmitMergeInputChains1_1,
/*247645*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTI32X2Z256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247658*/              /*SwitchOpcode*/ 90, TARGET_VAL(ISD::AND),// ->247751
/*247661*/                OPC_Scope, 43, /*->247706*/ // 2 children in Scope
/*247663*/                  OPC_RecordChild0, // #1 = $src1
/*247664*/                  OPC_MoveChild1,
/*247665*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247668*/                  OPC_RecordMemRef,
/*247669*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*247670*/                  OPC_CheckFoldableChainNode,
/*247671*/                  OPC_RecordChild1, // #3 = $src2
/*247672*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247674*/                  OPC_CheckPredicate, 9, // Predicate_load
/*247676*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*247678*/                  OPC_MoveParent,
/*247679*/                  OPC_CheckType, MVT::v4i64,
/*247681*/                  OPC_MoveParent,
/*247682*/                  OPC_MoveParent,
/*247683*/                  OPC_RecordChild2, // #4 = $src0
/*247684*/                  OPC_CheckType, MVT::v8i32,
/*247686*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247688*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247691*/                  OPC_EmitMergeInputChains1_2,
/*247692*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247706*/                /*Scope*/ 43, /*->247750*/
/*247707*/                  OPC_MoveChild0,
/*247708*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247711*/                  OPC_RecordMemRef,
/*247712*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*247713*/                  OPC_CheckFoldableChainNode,
/*247714*/                  OPC_RecordChild1, // #2 = $src2
/*247715*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247717*/                  OPC_CheckPredicate, 9, // Predicate_load
/*247719*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*247721*/                  OPC_MoveParent,
/*247722*/                  OPC_RecordChild1, // #3 = $src1
/*247723*/                  OPC_CheckType, MVT::v4i64,
/*247725*/                  OPC_MoveParent,
/*247726*/                  OPC_MoveParent,
/*247727*/                  OPC_RecordChild2, // #4 = $src0
/*247728*/                  OPC_CheckType, MVT::v8i32,
/*247730*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247732*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247735*/                  OPC_EmitMergeInputChains1_1,
/*247736*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247750*/                0, /*End of Scope*/
/*247751*/              /*SwitchOpcode*/ 90, TARGET_VAL(ISD::OR),// ->247844
/*247754*/                OPC_Scope, 43, /*->247799*/ // 2 children in Scope
/*247756*/                  OPC_RecordChild0, // #1 = $src1
/*247757*/                  OPC_MoveChild1,
/*247758*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247761*/                  OPC_RecordMemRef,
/*247762*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*247763*/                  OPC_CheckFoldableChainNode,
/*247764*/                  OPC_RecordChild1, // #3 = $src2
/*247765*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247767*/                  OPC_CheckPredicate, 9, // Predicate_load
/*247769*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*247771*/                  OPC_MoveParent,
/*247772*/                  OPC_CheckType, MVT::v4i64,
/*247774*/                  OPC_MoveParent,
/*247775*/                  OPC_MoveParent,
/*247776*/                  OPC_RecordChild2, // #4 = $src0
/*247777*/                  OPC_CheckType, MVT::v8i32,
/*247779*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247781*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247784*/                  OPC_EmitMergeInputChains1_2,
/*247785*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247799*/                /*Scope*/ 43, /*->247843*/
/*247800*/                  OPC_MoveChild0,
/*247801*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247804*/                  OPC_RecordMemRef,
/*247805*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*247806*/                  OPC_CheckFoldableChainNode,
/*247807*/                  OPC_RecordChild1, // #2 = $src2
/*247808*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247810*/                  OPC_CheckPredicate, 9, // Predicate_load
/*247812*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*247814*/                  OPC_MoveParent,
/*247815*/                  OPC_RecordChild1, // #3 = $src1
/*247816*/                  OPC_CheckType, MVT::v4i64,
/*247818*/                  OPC_MoveParent,
/*247819*/                  OPC_MoveParent,
/*247820*/                  OPC_RecordChild2, // #4 = $src0
/*247821*/                  OPC_CheckType, MVT::v8i32,
/*247823*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247825*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247828*/                  OPC_EmitMergeInputChains1_1,
/*247829*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247843*/                0, /*End of Scope*/
/*247844*/              /*SwitchOpcode*/ 90, TARGET_VAL(ISD::XOR),// ->247937
/*247847*/                OPC_Scope, 43, /*->247892*/ // 2 children in Scope
/*247849*/                  OPC_RecordChild0, // #1 = $src1
/*247850*/                  OPC_MoveChild1,
/*247851*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247854*/                  OPC_RecordMemRef,
/*247855*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*247856*/                  OPC_CheckFoldableChainNode,
/*247857*/                  OPC_RecordChild1, // #3 = $src2
/*247858*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247860*/                  OPC_CheckPredicate, 9, // Predicate_load
/*247862*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*247864*/                  OPC_MoveParent,
/*247865*/                  OPC_CheckType, MVT::v4i64,
/*247867*/                  OPC_MoveParent,
/*247868*/                  OPC_MoveParent,
/*247869*/                  OPC_RecordChild2, // #4 = $src0
/*247870*/                  OPC_CheckType, MVT::v8i32,
/*247872*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247874*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247877*/                  OPC_EmitMergeInputChains1_2,
/*247878*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPXORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247892*/                /*Scope*/ 43, /*->247936*/
/*247893*/                  OPC_MoveChild0,
/*247894*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247897*/                  OPC_RecordMemRef,
/*247898*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*247899*/                  OPC_CheckFoldableChainNode,
/*247900*/                  OPC_RecordChild1, // #2 = $src2
/*247901*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247903*/                  OPC_CheckPredicate, 9, // Predicate_load
/*247905*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*247907*/                  OPC_MoveParent,
/*247908*/                  OPC_RecordChild1, // #3 = $src1
/*247909*/                  OPC_CheckType, MVT::v4i64,
/*247911*/                  OPC_MoveParent,
/*247912*/                  OPC_MoveParent,
/*247913*/                  OPC_RecordChild2, // #4 = $src0
/*247914*/                  OPC_CheckType, MVT::v8i32,
/*247916*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247918*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247921*/                  OPC_EmitMergeInputChains1_1,
/*247922*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPXORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247936*/                0, /*End of Scope*/
/*247937*/              /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::ANDNP),// ->247983
/*247940*/                OPC_RecordChild0, // #1 = $src1
/*247941*/                OPC_MoveChild1,
/*247942*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*247945*/                OPC_RecordMemRef,
/*247946*/                OPC_RecordNode, // #2 = 'ld' chained node
/*247947*/                OPC_CheckFoldableChainNode,
/*247948*/                OPC_RecordChild1, // #3 = $src2
/*247949*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247951*/                OPC_CheckPredicate, 9, // Predicate_load
/*247953*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*247955*/                OPC_MoveParent,
/*247956*/                OPC_CheckType, MVT::v4i64,
/*247958*/                OPC_MoveParent,
/*247959*/                OPC_MoveParent,
/*247960*/                OPC_RecordChild2, // #4 = $src0
/*247961*/                OPC_CheckType, MVT::v8i32,
/*247963*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247965*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247968*/                OPC_EmitMergeInputChains1_2,
/*247969*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPANDNDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247983*/              /*SwitchOpcode*/ 96, TARGET_VAL(ISD::LOAD),// ->248082
/*247986*/                OPC_RecordMemRef,
/*247987*/                OPC_RecordNode, // #1 = 'ld' chained node
/*247988*/                OPC_CheckFoldableChainNode,
/*247989*/                OPC_RecordChild1, // #2 = $src1
/*247990*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247992*/                OPC_CheckPredicate, 9, // Predicate_load
/*247994*/                OPC_Scope, 28, /*->248024*/ // 2 children in Scope
/*247996*/                  OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*247998*/                  OPC_CheckType, MVT::v4i64,
/*248000*/                  OPC_MoveParent,
/*248001*/                  OPC_MoveParent,
/*248002*/                  OPC_RecordChild2, // #3 = $src0
/*248003*/                  OPC_CheckType, MVT::v8i32,
/*248005*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*248007*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*248010*/                  OPC_EmitMergeInputChains1_1,
/*248011*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VMOVDQA32Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*248024*/                /*Scope*/ 56, /*->248081*/
/*248025*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*248027*/                  OPC_SwitchType /*2 cases */, 24, MVT::v2i64,// ->248054
/*248030*/                    OPC_MoveParent,
/*248031*/                    OPC_MoveParent,
/*248032*/                    OPC_RecordChild2, // #3 = $src0
/*248033*/                    OPC_CheckType, MVT::v8i16,
/*248035*/                    OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*248037*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*248040*/                    OPC_EmitMergeInputChains1_1,
/*248041*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                              // Dst: (VMOVDQU16Z128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*248054*/                  /*SwitchType*/ 24, MVT::v4i64,// ->248080
/*248056*/                    OPC_MoveParent,
/*248057*/                    OPC_MoveParent,
/*248058*/                    OPC_RecordChild2, // #3 = $src0
/*248059*/                    OPC_CheckType, MVT::v8i32,
/*248061*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*248063*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*248066*/                    OPC_EmitMergeInputChains1_1,
/*248067*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                              // Dst: (VMOVDQU32Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*248080*/                  0, // EndSwitchType
/*248081*/                0, /*End of Scope*/
/*248082*/              0, // EndSwitchOpcode
/*248083*/            /*Scope*/ 23|128,2/*279*/, /*->248364*/
/*248085*/              OPC_RecordChild0, // #1 = $ins
/*248086*/              OPC_MoveChild0,
/*248087*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*248090*/              OPC_RecordChild0, // #2 = $src1
/*248091*/              OPC_RecordChild1, // #3 = $src2
/*248092*/              OPC_Scope, 44, /*->248138*/ // 6 children in Scope
/*248094*/                OPC_CheckChild1Type, MVT::v4i32,
/*248096*/                OPC_MoveChild2,
/*248097*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*248100*/                OPC_CheckType, MVT::iPTR,
/*248102*/                OPC_MoveParent,
/*248103*/                OPC_CheckType, MVT::v16i32,
/*248105*/                OPC_MoveParent,
/*248106*/                OPC_MoveParent,
/*248107*/                OPC_MoveChild2,
/*248108*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*248111*/                OPC_MoveChild0,
/*248112*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*248115*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*248117*/                OPC_CheckType, MVT::v16i32,
/*248119*/                OPC_MoveParent,
/*248120*/                OPC_MoveParent,
/*248121*/                OPC_CheckType, MVT::v8i64,
/*248123*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*248125*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*248128*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrrkz), 0,
                              MVT::v8i64, 4/*#Ops*/, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VINSERTI64x2Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*248138*/              /*Scope*/ 44, /*->248183*/
/*248139*/                OPC_CheckChild1Type, MVT::v8i16,
/*248141*/                OPC_MoveChild2,
/*248142*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*248145*/                OPC_CheckType, MVT::iPTR,
/*248147*/                OPC_MoveParent,
/*248148*/                OPC_CheckType, MVT::v32i16,
/*248150*/                OPC_MoveParent,
/*248151*/                OPC_MoveParent,
/*248152*/                OPC_MoveChild2,
/*248153*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*248156*/                OPC_MoveChild0,
/*248157*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*248160*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*248162*/                OPC_CheckType, MVT::v16i32,
/*248164*/                OPC_MoveParent,
/*248165*/                OPC_MoveParent,
/*248166*/                OPC_CheckType, MVT::v8i64,
/*248168*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*248170*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*248173*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrrkz), 0,
                              MVT::v8i64, 4/*#Ops*/, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VINSERTI64x2Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*248183*/              /*Scope*/ 44, /*->248228*/
/*248184*/                OPC_CheckChild1Type, MVT::v16i8,
/*248186*/                OPC_MoveChild2,
/*248187*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*248190*/                OPC_CheckType, MVT::iPTR,
/*248192*/                OPC_MoveParent,
/*248193*/                OPC_CheckType, MVT::v64i8,
/*248195*/                OPC_MoveParent,
/*248196*/                OPC_MoveParent,
/*248197*/                OPC_MoveChild2,
/*248198*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*248201*/                OPC_MoveChild0,
/*248202*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*248205*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*248207*/                OPC_CheckType, MVT::v16i32,
/*248209*/                OPC_MoveParent,
/*248210*/                OPC_MoveParent,
/*248211*/                OPC_CheckType, MVT::v8i64,
/*248213*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*248215*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*248218*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrrkz), 0,
                              MVT::v8i64, 4/*#Ops*/, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VINSERTI64x2Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*248228*/              /*Scope*/ 44, /*->248273*/
/*248229*/                OPC_CheckChild1Type, MVT::v8i32,
/*248231*/                OPC_MoveChild2,
/*248232*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*248235*/                OPC_CheckType, MVT::iPTR,
/*248237*/                OPC_MoveParent,
/*248238*/                OPC_CheckType, MVT::v16i32,
/*248240*/                OPC_MoveParent,
/*248241*/                OPC_MoveParent,
/*248242*/                OPC_MoveChild2,
/*248243*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*248246*/                OPC_MoveChild0,
/*248247*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*248250*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*248252*/                OPC_CheckType, MVT::v16i32,
/*248254*/                OPC_MoveParent,
/*248255*/                OPC_MoveParent,
/*248256*/                OPC_CheckType, MVT::v8i64,
/*248258*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248260*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*248263*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrrkz), 0,
                              MVT::v8i64, 4/*#Ops*/, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VINSERTI64x4Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*248273*/              /*Scope*/ 44, /*->248318*/
/*248274*/                OPC_CheckChild1Type, MVT::v16i16,
/*248276*/                OPC_MoveChild2,
/*248277*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*248280*/                OPC_CheckType, MVT::iPTR,
/*248282*/                OPC_MoveParent,
/*248283*/                OPC_CheckType, MVT::v32i16,
/*248285*/                OPC_MoveParent,
/*248286*/                OPC_MoveParent,
/*248287*/                OPC_MoveChild2,
/*248288*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*248291*/                OPC_MoveChild0,
/*248292*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*248295*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*248297*/                OPC_CheckType, MVT::v16i32,
/*248299*/                OPC_MoveParent,
/*248300*/                OPC_MoveParent,
/*248301*/                OPC_CheckType, MVT::v8i64,
/*248303*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248305*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*248308*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrrkz), 0,
                              MVT::v8i64, 4/*#Ops*/, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VINSERTI64x4Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*248318*/              /*Scope*/ 44, /*->248363*/
/*248319*/                OPC_CheckChild1Type, MVT::v32i8,
/*248321*/                OPC_MoveChild2,
/*248322*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*248325*/                OPC_CheckType, MVT::iPTR,
/*248327*/                OPC_MoveParent,
/*248328*/                OPC_CheckType, MVT::v64i8,
/*248330*/                OPC_MoveParent,
/*248331*/                OPC_MoveParent,
/*248332*/                OPC_MoveChild2,
/*248333*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*248336*/                OPC_MoveChild0,
/*248337*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*248340*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*248342*/                OPC_CheckType, MVT::v16i32,
/*248344*/                OPC_MoveParent,
/*248345*/                OPC_MoveParent,
/*248346*/                OPC_CheckType, MVT::v8i64,
/*248348*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248350*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*248353*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrrkz), 0,
                              MVT::v8i64, 4/*#Ops*/, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VINSERTI64x4Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*248363*/              0, /*End of Scope*/
/*248364*/            /*Scope*/ 21|128,1/*149*/, /*->248515*/
/*248366*/              OPC_MoveChild0,
/*248367*/              OPC_SwitchOpcode /*2 cases */, 109, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->248480
/*248371*/                OPC_RecordChild0, // #1 = $src
/*248372*/                OPC_CheckChild1Integer, 0, 
/*248374*/                OPC_CheckChild1Type, MVT::iPTR,
/*248376*/                OPC_SwitchType /*3 cases */, 32, MVT::v4i64,// ->248411
/*248379*/                  OPC_MoveParent,
/*248380*/                  OPC_MoveParent,
/*248381*/                  OPC_MoveChild2,
/*248382*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*248385*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*248387*/                  OPC_MoveParent,
/*248388*/                  OPC_CheckType, MVT::v8i32,
/*248390*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248392*/                  OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*248395*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v4i64, 2/*#Ops*/, 1, 2,  // Results = #3
/*248403*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rrkz), 0,
                                MVT::v8i32, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] })), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 18
                            // Dst: (VMOVDQA32Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, sub_ymm:{ *:[i32] }))
/*248411*/                /*SwitchType*/ 32, MVT::v16i16,// ->248445
/*248413*/                  OPC_MoveParent,
/*248414*/                  OPC_MoveParent,
/*248415*/                  OPC_MoveChild2,
/*248416*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*248419*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*248421*/                  OPC_MoveParent,
/*248422*/                  OPC_CheckType, MVT::v8i32,
/*248424*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248426*/                  OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*248429*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v16i16, 2/*#Ops*/, 1, 2,  // Results = #3
/*248437*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rrkz), 0,
                                MVT::v8i32, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] })), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 18
                            // Dst: (VMOVDQA32Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, sub_ymm:{ *:[i32] }))
/*248445*/                /*SwitchType*/ 32, MVT::v32i8,// ->248479
/*248447*/                  OPC_MoveParent,
/*248448*/                  OPC_MoveParent,
/*248449*/                  OPC_MoveChild2,
/*248450*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*248453*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*248455*/                  OPC_MoveParent,
/*248456*/                  OPC_CheckType, MVT::v8i32,
/*248458*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248460*/                  OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*248463*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v32i8, 2/*#Ops*/, 1, 2,  // Results = #3
/*248471*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rrkz), 0,
                                MVT::v8i32, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] })), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 18
                            // Dst: (VMOVDQA32Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, sub_ymm:{ *:[i32] }))
/*248479*/                0, // EndSwitchType
/*248480*/              /*SwitchOpcode*/ 31, TARGET_VAL(ISD::BUILD_VECTOR),// ->248514
/*248483*/                OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*248485*/                OPC_CheckType, MVT::v16i32,
/*248487*/                OPC_MoveParent,
/*248488*/                OPC_MoveParent,
/*248489*/                OPC_MoveChild2,
/*248490*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*248493*/                OPC_MoveChild0,
/*248494*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*248497*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*248499*/                OPC_CheckType, MVT::v16i32,
/*248501*/                OPC_MoveParent,
/*248502*/                OPC_MoveParent,
/*248503*/                OPC_CheckType, MVT::v8i64,
/*248505*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248507*/                OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SEXT_MASK_64), 0,
                              MVT::v8i64, 1/*#Ops*/, 0, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllOnesV>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 17
                          // Dst: (AVX512_512_SEXT_MASK_64:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask)
/*248514*/              0, // EndSwitchOpcode
/*248515*/            0, /*End of Scope*/
/*248516*/          /*SwitchOpcode*/ 94|128,2/*350*/, TARGET_VAL(X86ISD::VPERMV3),// ->248870
/*248520*/            OPC_RecordChild0, // #1 = $src2
/*248521*/            OPC_RecordChild1, // #2 = $src1
/*248522*/            OPC_MoveChild2,
/*248523*/            OPC_SwitchOpcode /*3 cases */, 6|128,1/*134*/, TARGET_VAL(ISD::BITCAST),// ->248662
/*248528*/              OPC_MoveChild0,
/*248529*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*248532*/              OPC_RecordMemRef,
/*248533*/              OPC_RecordNode, // #3 = 'ld' chained node
/*248534*/              OPC_CheckFoldableChainNode,
/*248535*/              OPC_RecordChild1, // #4 = $src3
/*248536*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*248538*/              OPC_CheckPredicate, 9, // Predicate_load
/*248540*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*248542*/              OPC_SwitchType /*2 cases */, 57, MVT::v4i64,// ->248602
/*248545*/                OPC_MoveParent,
/*248546*/                OPC_MoveParent,
/*248547*/                OPC_MoveParent,
/*248548*/                OPC_CheckType, MVT::v8i32,
/*248550*/                OPC_Scope, 24, /*->248576*/ // 2 children in Scope
/*248552*/                  OPC_CheckChild2Same, 2,
/*248554*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248556*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*248559*/                  OPC_EmitMergeInputChains, 1, 3, 
/*248562*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2D256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                            // Dst: (VPERMI2D256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*248576*/                /*Scope*/ 24, /*->248601*/
/*248577*/                  OPC_CheckChild2Same, 1,
/*248579*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248581*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*248584*/                  OPC_EmitMergeInputChains, 1, 3, 
/*248587*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                            // Dst: (VPERMT2D256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*248601*/                0, /*End of Scope*/
/*248602*/              /*SwitchType*/ 57, MVT::v2i64,// ->248661
/*248604*/                OPC_MoveParent,
/*248605*/                OPC_MoveParent,
/*248606*/                OPC_MoveParent,
/*248607*/                OPC_CheckType, MVT::v8i16,
/*248609*/                OPC_Scope, 24, /*->248635*/ // 2 children in Scope
/*248611*/                  OPC_CheckChild2Same, 2,
/*248613*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*248615*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*248618*/                  OPC_EmitMergeInputChains, 1, 3, 
/*248621*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2W128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src1) - Complexity = 31
                            // Dst: (VPERMI2W128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*248635*/                /*Scope*/ 24, /*->248660*/
/*248636*/                  OPC_CheckChild2Same, 1,
/*248638*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*248640*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*248643*/                  OPC_EmitMergeInputChains, 1, 3, 
/*248646*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src1) - Complexity = 31
                            // Dst: (VPERMT2W128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*248660*/                0, /*End of Scope*/
/*248661*/              0, // EndSwitchType
/*248662*/            /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(X86ISD::VBROADCAST),// ->248800
/*248666*/              OPC_MoveChild0,
/*248667*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*248670*/              OPC_RecordMemRef,
/*248671*/              OPC_RecordNode, // #3 = 'ld' chained node
/*248672*/              OPC_CheckFoldableChainNode,
/*248673*/              OPC_RecordChild1, // #4 = $src3
/*248674*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*248676*/              OPC_SwitchType /*2 cases */, 59, MVT::i32,// ->248738
/*248679*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*248681*/                OPC_MoveParent,
/*248682*/                OPC_MoveParent,
/*248683*/                OPC_MoveParent,
/*248684*/                OPC_CheckType, MVT::v8i32,
/*248686*/                OPC_Scope, 24, /*->248712*/ // 2 children in Scope
/*248688*/                  OPC_CheckChild2Same, 2,
/*248690*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248692*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*248695*/                  OPC_EmitMergeInputChains, 1, 3, 
/*248698*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2D256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                            // Dst: (VPERMI2D256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*248712*/                /*Scope*/ 24, /*->248737*/
/*248713*/                  OPC_CheckChild2Same, 1,
/*248715*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248717*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*248720*/                  OPC_EmitMergeInputChains, 1, 3, 
/*248723*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                            // Dst: (VPERMT2D256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*248737*/                0, /*End of Scope*/
/*248738*/              /*SwitchType*/ 59, MVT::i64,// ->248799
/*248740*/                OPC_CheckPredicate, 9, // Predicate_load
/*248742*/                OPC_MoveParent,
/*248743*/                OPC_MoveParent,
/*248744*/                OPC_MoveParent,
/*248745*/                OPC_CheckType, MVT::v8i64,
/*248747*/                OPC_Scope, 24, /*->248773*/ // 2 children in Scope
/*248749*/                  OPC_CheckChild2Same, 2,
/*248751*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248753*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*248756*/                  OPC_EmitMergeInputChains, 1, 3, 
/*248759*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Qrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                            // Dst: (VPERMI2Qrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*248773*/                /*Scope*/ 24, /*->248798*/
/*248774*/                  OPC_CheckChild2Same, 1,
/*248776*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248778*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*248781*/                  OPC_EmitMergeInputChains, 1, 3, 
/*248784*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Qrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                            // Dst: (VPERMT2Qrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*248798*/                0, /*End of Scope*/
/*248799*/              0, // EndSwitchType
/*248800*/            /*SwitchOpcode*/ 66, TARGET_VAL(ISD::LOAD),// ->248869
/*248803*/              OPC_RecordMemRef,
/*248804*/              OPC_RecordNode, // #3 = 'ld' chained node
/*248805*/              OPC_CheckFoldableChainNode,
/*248806*/              OPC_RecordChild1, // #4 = $src3
/*248807*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*248809*/              OPC_CheckPredicate, 9, // Predicate_load
/*248811*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*248813*/              OPC_MoveParent,
/*248814*/              OPC_MoveParent,
/*248815*/              OPC_CheckType, MVT::v8i64,
/*248817*/              OPC_Scope, 24, /*->248843*/ // 2 children in Scope
/*248819*/                OPC_CheckChild2Same, 2,
/*248821*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248823*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*248826*/                OPC_EmitMergeInputChains, 1, 3, 
/*248829*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Qrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMI2Qrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*248843*/              /*Scope*/ 24, /*->248868*/
/*248844*/                OPC_CheckChild2Same, 1,
/*248846*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248848*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*248851*/                OPC_EmitMergeInputChains, 1, 3, 
/*248854*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Qrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2Qrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*248868*/              0, /*End of Scope*/
/*248869*/            0, // EndSwitchOpcode
/*248870*/          /*SwitchOpcode*/ 15|128,3/*399*/, TARGET_VAL(ISD::ADD),// ->249273
/*248874*/            OPC_Scope, 26|128,1/*154*/, /*->249031*/ // 4 children in Scope
/*248877*/              OPC_RecordChild0, // #1 = $src1
/*248878*/              OPC_MoveChild1,
/*248879*/              OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(X86ISD::VBROADCAST),// ->248955
/*248883*/                OPC_MoveChild0,
/*248884*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*248887*/                OPC_RecordMemRef,
/*248888*/                OPC_RecordNode, // #2 = 'ld' chained node
/*248889*/                OPC_CheckFoldableChainNode,
/*248890*/                OPC_RecordChild1, // #3 = $src2
/*248891*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*248893*/                OPC_SwitchType /*2 cases */, 28, MVT::i64,// ->248924
/*248896*/                  OPC_CheckPredicate, 9, // Predicate_load
/*248898*/                  OPC_MoveParent,
/*248899*/                  OPC_MoveParent,
/*248900*/                  OPC_MoveParent,
/*248901*/                  OPC_RecordChild2, // #4 = $src0
/*248902*/                  OPC_CheckType, MVT::v8i64,
/*248904*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248906*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*248909*/                  OPC_EmitMergeInputChains1_2,
/*248910*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPADDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*248924*/                /*SwitchType*/ 28, MVT::i32,// ->248954
/*248926*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*248928*/                  OPC_MoveParent,
/*248929*/                  OPC_MoveParent,
/*248930*/                  OPC_MoveParent,
/*248931*/                  OPC_RecordChild2, // #4 = $src0
/*248932*/                  OPC_CheckType, MVT::v8i32,
/*248934*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*248936*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*248939*/                  OPC_EmitMergeInputChains1_2,
/*248940*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPADDDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*248954*/                0, // EndSwitchType
/*248955*/              /*SwitchOpcode*/ 72, TARGET_VAL(ISD::BITCAST),// ->249030
/*248958*/                OPC_MoveChild0,
/*248959*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*248962*/                OPC_RecordMemRef,
/*248963*/                OPC_RecordNode, // #2 = 'ld' chained node
/*248964*/                OPC_CheckFoldableChainNode,
/*248965*/                OPC_RecordChild1, // #3 = $src2
/*248966*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*248968*/                OPC_CheckPredicate, 9, // Predicate_load
/*248970*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*248972*/                OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->249001
/*248975*/                  OPC_MoveParent,
/*248976*/                  OPC_MoveParent,
/*248977*/                  OPC_MoveParent,
/*248978*/                  OPC_RecordChild2, // #4 = $src0
/*248979*/                  OPC_CheckType, MVT::v8i32,
/*248981*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*248983*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*248986*/                  OPC_EmitMergeInputChains1_2,
/*248987*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPADDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249001*/                /*SwitchType*/ 26, MVT::v2i64,// ->249029
/*249003*/                  OPC_MoveParent,
/*249004*/                  OPC_MoveParent,
/*249005*/                  OPC_MoveParent,
/*249006*/                  OPC_RecordChild2, // #4 = $src0
/*249007*/                  OPC_CheckType, MVT::v8i16,
/*249009*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249011*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249014*/                  OPC_EmitMergeInputChains1_2,
/*249015*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPADDWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249029*/                0, // EndSwitchType
/*249030*/              0, // EndSwitchOpcode
/*249031*/            /*Scope*/ 29|128,1/*157*/, /*->249190*/
/*249033*/              OPC_MoveChild0,
/*249034*/              OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(X86ISD::VBROADCAST),// ->249112
/*249038*/                OPC_MoveChild0,
/*249039*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249042*/                OPC_RecordMemRef,
/*249043*/                OPC_RecordNode, // #1 = 'ld' chained node
/*249044*/                OPC_CheckFoldableChainNode,
/*249045*/                OPC_RecordChild1, // #2 = $src2
/*249046*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249048*/                OPC_SwitchType /*2 cases */, 29, MVT::i64,// ->249080
/*249051*/                  OPC_CheckPredicate, 9, // Predicate_load
/*249053*/                  OPC_MoveParent,
/*249054*/                  OPC_MoveParent,
/*249055*/                  OPC_RecordChild1, // #3 = $src1
/*249056*/                  OPC_MoveParent,
/*249057*/                  OPC_RecordChild2, // #4 = $src0
/*249058*/                  OPC_CheckType, MVT::v8i64,
/*249060*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*249062*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249065*/                  OPC_EmitMergeInputChains1_1,
/*249066*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPADDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249080*/                /*SwitchType*/ 29, MVT::i32,// ->249111
/*249082*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*249084*/                  OPC_MoveParent,
/*249085*/                  OPC_MoveParent,
/*249086*/                  OPC_RecordChild1, // #3 = $src1
/*249087*/                  OPC_MoveParent,
/*249088*/                  OPC_RecordChild2, // #4 = $src0
/*249089*/                  OPC_CheckType, MVT::v8i32,
/*249091*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*249093*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249096*/                  OPC_EmitMergeInputChains1_1,
/*249097*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPADDDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249111*/                0, // EndSwitchType
/*249112*/              /*SwitchOpcode*/ 74, TARGET_VAL(ISD::BITCAST),// ->249189
/*249115*/                OPC_MoveChild0,
/*249116*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249119*/                OPC_RecordMemRef,
/*249120*/                OPC_RecordNode, // #1 = 'ld' chained node
/*249121*/                OPC_CheckFoldableChainNode,
/*249122*/                OPC_RecordChild1, // #2 = $src2
/*249123*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249125*/                OPC_CheckPredicate, 9, // Predicate_load
/*249127*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*249129*/                OPC_SwitchType /*2 cases */, 27, MVT::v4i64,// ->249159
/*249132*/                  OPC_MoveParent,
/*249133*/                  OPC_MoveParent,
/*249134*/                  OPC_RecordChild1, // #3 = $src1
/*249135*/                  OPC_MoveParent,
/*249136*/                  OPC_RecordChild2, // #4 = $src0
/*249137*/                  OPC_CheckType, MVT::v8i32,
/*249139*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*249141*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249144*/                  OPC_EmitMergeInputChains1_1,
/*249145*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPADDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249159*/                /*SwitchType*/ 27, MVT::v2i64,// ->249188
/*249161*/                  OPC_MoveParent,
/*249162*/                  OPC_MoveParent,
/*249163*/                  OPC_RecordChild1, // #3 = $src1
/*249164*/                  OPC_MoveParent,
/*249165*/                  OPC_RecordChild2, // #4 = $src0
/*249166*/                  OPC_CheckType, MVT::v8i16,
/*249168*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249170*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249173*/                  OPC_EmitMergeInputChains1_1,
/*249174*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPADDWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249188*/                0, // EndSwitchType
/*249189*/              0, // EndSwitchOpcode
/*249190*/            /*Scope*/ 40, /*->249231*/
/*249191*/              OPC_RecordChild0, // #1 = $src1
/*249192*/              OPC_MoveChild1,
/*249193*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249196*/              OPC_RecordMemRef,
/*249197*/              OPC_RecordNode, // #2 = 'ld' chained node
/*249198*/              OPC_CheckFoldableChainNode,
/*249199*/              OPC_RecordChild1, // #3 = $src2
/*249200*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249202*/              OPC_CheckPredicate, 9, // Predicate_load
/*249204*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*249206*/              OPC_MoveParent,
/*249207*/              OPC_MoveParent,
/*249208*/              OPC_RecordChild2, // #4 = $src0
/*249209*/              OPC_CheckType, MVT::v8i64,
/*249211*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*249213*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249216*/              OPC_EmitMergeInputChains1_2,
/*249217*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPADDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249231*/            /*Scope*/ 40, /*->249272*/
/*249232*/              OPC_MoveChild0,
/*249233*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249236*/              OPC_RecordMemRef,
/*249237*/              OPC_RecordNode, // #1 = 'ld' chained node
/*249238*/              OPC_CheckFoldableChainNode,
/*249239*/              OPC_RecordChild1, // #2 = $src2
/*249240*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249242*/              OPC_CheckPredicate, 9, // Predicate_load
/*249244*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*249246*/              OPC_MoveParent,
/*249247*/              OPC_RecordChild1, // #3 = $src1
/*249248*/              OPC_MoveParent,
/*249249*/              OPC_RecordChild2, // #4 = $src0
/*249250*/              OPC_CheckType, MVT::v8i64,
/*249252*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*249254*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249257*/              OPC_EmitMergeInputChains1_1,
/*249258*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPADDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249272*/            0, /*End of Scope*/
/*249273*/          /*SwitchOpcode*/ 64|128,1/*192*/, TARGET_VAL(ISD::SUB),// ->249469
/*249277*/            OPC_RecordChild0, // #1 = $src1
/*249278*/            OPC_MoveChild1,
/*249279*/            OPC_SwitchOpcode /*3 cases */, 72, TARGET_VAL(X86ISD::VBROADCAST),// ->249355
/*249283*/              OPC_MoveChild0,
/*249284*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249287*/              OPC_RecordMemRef,
/*249288*/              OPC_RecordNode, // #2 = 'ld' chained node
/*249289*/              OPC_CheckFoldableChainNode,
/*249290*/              OPC_RecordChild1, // #3 = $src2
/*249291*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249293*/              OPC_SwitchType /*2 cases */, 28, MVT::i64,// ->249324
/*249296*/                OPC_CheckPredicate, 9, // Predicate_load
/*249298*/                OPC_MoveParent,
/*249299*/                OPC_MoveParent,
/*249300*/                OPC_MoveParent,
/*249301*/                OPC_RecordChild2, // #4 = $src0
/*249302*/                OPC_CheckType, MVT::v8i64,
/*249304*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*249306*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249309*/                OPC_EmitMergeInputChains1_2,
/*249310*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSUBQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249324*/              /*SwitchType*/ 28, MVT::i32,// ->249354
/*249326*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*249328*/                OPC_MoveParent,
/*249329*/                OPC_MoveParent,
/*249330*/                OPC_MoveParent,
/*249331*/                OPC_RecordChild2, // #4 = $src0
/*249332*/                OPC_CheckType, MVT::v8i32,
/*249334*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*249336*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249339*/                OPC_EmitMergeInputChains1_2,
/*249340*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSUBDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249354*/              0, // EndSwitchType
/*249355*/            /*SwitchOpcode*/ 72, TARGET_VAL(ISD::BITCAST),// ->249430
/*249358*/              OPC_MoveChild0,
/*249359*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249362*/              OPC_RecordMemRef,
/*249363*/              OPC_RecordNode, // #2 = 'ld' chained node
/*249364*/              OPC_CheckFoldableChainNode,
/*249365*/              OPC_RecordChild1, // #3 = $src2
/*249366*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249368*/              OPC_CheckPredicate, 9, // Predicate_load
/*249370*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*249372*/              OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->249401
/*249375*/                OPC_MoveParent,
/*249376*/                OPC_MoveParent,
/*249377*/                OPC_MoveParent,
/*249378*/                OPC_RecordChild2, // #4 = $src0
/*249379*/                OPC_CheckType, MVT::v8i32,
/*249381*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*249383*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249386*/                OPC_EmitMergeInputChains1_2,
/*249387*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSUBDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249401*/              /*SwitchType*/ 26, MVT::v2i64,// ->249429
/*249403*/                OPC_MoveParent,
/*249404*/                OPC_MoveParent,
/*249405*/                OPC_MoveParent,
/*249406*/                OPC_RecordChild2, // #4 = $src0
/*249407*/                OPC_CheckType, MVT::v8i16,
/*249409*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249411*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249414*/                OPC_EmitMergeInputChains1_2,
/*249415*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPSUBWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249429*/              0, // EndSwitchType
/*249430*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->249468
/*249433*/              OPC_RecordMemRef,
/*249434*/              OPC_RecordNode, // #2 = 'ld' chained node
/*249435*/              OPC_CheckFoldableChainNode,
/*249436*/              OPC_RecordChild1, // #3 = $src2
/*249437*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249439*/              OPC_CheckPredicate, 9, // Predicate_load
/*249441*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*249443*/              OPC_MoveParent,
/*249444*/              OPC_MoveParent,
/*249445*/              OPC_RecordChild2, // #4 = $src0
/*249446*/              OPC_CheckType, MVT::v8i64,
/*249448*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*249450*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249453*/              OPC_EmitMergeInputChains1_2,
/*249454*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPSUBQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249468*/            0, // EndSwitchOpcode
/*249469*/          /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::ADDS),// ->249570
/*249472*/            OPC_Scope, 47, /*->249521*/ // 2 children in Scope
/*249474*/              OPC_RecordChild0, // #1 = $src1
/*249475*/              OPC_MoveChild1,
/*249476*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*249479*/              OPC_MoveChild0,
/*249480*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249483*/              OPC_RecordMemRef,
/*249484*/              OPC_RecordNode, // #2 = 'ld' chained node
/*249485*/              OPC_CheckFoldableChainNode,
/*249486*/              OPC_RecordChild1, // #3 = $src2
/*249487*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249489*/              OPC_CheckPredicate, 9, // Predicate_load
/*249491*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*249493*/              OPC_CheckType, MVT::v2i64,
/*249495*/              OPC_MoveParent,
/*249496*/              OPC_MoveParent,
/*249497*/              OPC_MoveParent,
/*249498*/              OPC_RecordChild2, // #4 = $src0
/*249499*/              OPC_CheckType, MVT::v8i16,
/*249501*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249503*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249506*/              OPC_EmitMergeInputChains1_2,
/*249507*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86adds:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPADDSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249521*/            /*Scope*/ 47, /*->249569*/
/*249522*/              OPC_MoveChild0,
/*249523*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*249526*/              OPC_MoveChild0,
/*249527*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249530*/              OPC_RecordMemRef,
/*249531*/              OPC_RecordNode, // #1 = 'ld' chained node
/*249532*/              OPC_CheckFoldableChainNode,
/*249533*/              OPC_RecordChild1, // #2 = $src2
/*249534*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249536*/              OPC_CheckPredicate, 9, // Predicate_load
/*249538*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*249540*/              OPC_CheckType, MVT::v2i64,
/*249542*/              OPC_MoveParent,
/*249543*/              OPC_MoveParent,
/*249544*/              OPC_RecordChild1, // #3 = $src1
/*249545*/              OPC_MoveParent,
/*249546*/              OPC_RecordChild2, // #4 = $src0
/*249547*/              OPC_CheckType, MVT::v8i16,
/*249549*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249551*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249554*/              OPC_EmitMergeInputChains1_1,
/*249555*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86adds:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPADDSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249569*/            0, /*End of Scope*/
/*249570*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::SUBS),// ->249620
/*249573*/            OPC_RecordChild0, // #1 = $src1
/*249574*/            OPC_MoveChild1,
/*249575*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*249578*/            OPC_MoveChild0,
/*249579*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249582*/            OPC_RecordMemRef,
/*249583*/            OPC_RecordNode, // #2 = 'ld' chained node
/*249584*/            OPC_CheckFoldableChainNode,
/*249585*/            OPC_RecordChild1, // #3 = $src2
/*249586*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249588*/            OPC_CheckPredicate, 9, // Predicate_load
/*249590*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*249592*/            OPC_CheckType, MVT::v2i64,
/*249594*/            OPC_MoveParent,
/*249595*/            OPC_MoveParent,
/*249596*/            OPC_MoveParent,
/*249597*/            OPC_RecordChild2, // #4 = $src0
/*249598*/            OPC_CheckType, MVT::v8i16,
/*249600*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249602*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249605*/            OPC_EmitMergeInputChains1_2,
/*249606*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86subs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                      // Dst: (VPSUBSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249620*/          /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::ADDUS),// ->249721
/*249623*/            OPC_Scope, 47, /*->249672*/ // 2 children in Scope
/*249625*/              OPC_RecordChild0, // #1 = $src1
/*249626*/              OPC_MoveChild1,
/*249627*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*249630*/              OPC_MoveChild0,
/*249631*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249634*/              OPC_RecordMemRef,
/*249635*/              OPC_RecordNode, // #2 = 'ld' chained node
/*249636*/              OPC_CheckFoldableChainNode,
/*249637*/              OPC_RecordChild1, // #3 = $src2
/*249638*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249640*/              OPC_CheckPredicate, 9, // Predicate_load
/*249642*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*249644*/              OPC_CheckType, MVT::v2i64,
/*249646*/              OPC_MoveParent,
/*249647*/              OPC_MoveParent,
/*249648*/              OPC_MoveParent,
/*249649*/              OPC_RecordChild2, // #4 = $src0
/*249650*/              OPC_CheckType, MVT::v8i16,
/*249652*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249654*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249657*/              OPC_EmitMergeInputChains1_2,
/*249658*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86addus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPADDUSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249672*/            /*Scope*/ 47, /*->249720*/
/*249673*/              OPC_MoveChild0,
/*249674*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*249677*/              OPC_MoveChild0,
/*249678*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249681*/              OPC_RecordMemRef,
/*249682*/              OPC_RecordNode, // #1 = 'ld' chained node
/*249683*/              OPC_CheckFoldableChainNode,
/*249684*/              OPC_RecordChild1, // #2 = $src2
/*249685*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249687*/              OPC_CheckPredicate, 9, // Predicate_load
/*249689*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*249691*/              OPC_CheckType, MVT::v2i64,
/*249693*/              OPC_MoveParent,
/*249694*/              OPC_MoveParent,
/*249695*/              OPC_RecordChild1, // #3 = $src1
/*249696*/              OPC_MoveParent,
/*249697*/              OPC_RecordChild2, // #4 = $src0
/*249698*/              OPC_CheckType, MVT::v8i16,
/*249700*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249702*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249705*/              OPC_EmitMergeInputChains1_1,
/*249706*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86addus:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPADDUSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249720*/            0, /*End of Scope*/
/*249721*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::SUBUS),// ->249771
/*249724*/            OPC_RecordChild0, // #1 = $src1
/*249725*/            OPC_MoveChild1,
/*249726*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*249729*/            OPC_MoveChild0,
/*249730*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249733*/            OPC_RecordMemRef,
/*249734*/            OPC_RecordNode, // #2 = 'ld' chained node
/*249735*/            OPC_CheckFoldableChainNode,
/*249736*/            OPC_RecordChild1, // #3 = $src2
/*249737*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249739*/            OPC_CheckPredicate, 9, // Predicate_load
/*249741*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*249743*/            OPC_CheckType, MVT::v2i64,
/*249745*/            OPC_MoveParent,
/*249746*/            OPC_MoveParent,
/*249747*/            OPC_MoveParent,
/*249748*/            OPC_RecordChild2, // #4 = $src0
/*249749*/            OPC_CheckType, MVT::v8i16,
/*249751*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249753*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249756*/            OPC_EmitMergeInputChains1_2,
/*249757*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86subus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                      // Dst: (VPSUBUSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249771*/          /*SwitchOpcode*/ 15|128,3/*399*/, TARGET_VAL(ISD::MUL),// ->250174
/*249775*/            OPC_Scope, 26|128,1/*154*/, /*->249932*/ // 4 children in Scope
/*249778*/              OPC_RecordChild0, // #1 = $src1
/*249779*/              OPC_MoveChild1,
/*249780*/              OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::BITCAST),// ->249856
/*249784*/                OPC_MoveChild0,
/*249785*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249788*/                OPC_RecordMemRef,
/*249789*/                OPC_RecordNode, // #2 = 'ld' chained node
/*249790*/                OPC_CheckFoldableChainNode,
/*249791*/                OPC_RecordChild1, // #3 = $src2
/*249792*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249794*/                OPC_CheckPredicate, 9, // Predicate_load
/*249796*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*249798*/                OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->249827
/*249801*/                  OPC_MoveParent,
/*249802*/                  OPC_MoveParent,
/*249803*/                  OPC_MoveParent,
/*249804*/                  OPC_RecordChild2, // #4 = $src0
/*249805*/                  OPC_CheckType, MVT::v8i32,
/*249807*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*249809*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249812*/                  OPC_EmitMergeInputChains1_2,
/*249813*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMULLDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249827*/                /*SwitchType*/ 26, MVT::v2i64,// ->249855
/*249829*/                  OPC_MoveParent,
/*249830*/                  OPC_MoveParent,
/*249831*/                  OPC_MoveParent,
/*249832*/                  OPC_RecordChild2, // #4 = $src0
/*249833*/                  OPC_CheckType, MVT::v8i16,
/*249835*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249837*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249840*/                  OPC_EmitMergeInputChains1_2,
/*249841*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPMULLWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249855*/                0, // EndSwitchType
/*249856*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->249931
/*249859*/                OPC_MoveChild0,
/*249860*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249863*/                OPC_RecordMemRef,
/*249864*/                OPC_RecordNode, // #2 = 'ld' chained node
/*249865*/                OPC_CheckFoldableChainNode,
/*249866*/                OPC_RecordChild1, // #3 = $src2
/*249867*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249869*/                OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->249900
/*249872*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*249874*/                  OPC_MoveParent,
/*249875*/                  OPC_MoveParent,
/*249876*/                  OPC_MoveParent,
/*249877*/                  OPC_RecordChild2, // #4 = $src0
/*249878*/                  OPC_CheckType, MVT::v8i32,
/*249880*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*249882*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249885*/                  OPC_EmitMergeInputChains1_2,
/*249886*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMULLDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249900*/                /*SwitchType*/ 28, MVT::i64,// ->249930
/*249902*/                  OPC_CheckPredicate, 9, // Predicate_load
/*249904*/                  OPC_MoveParent,
/*249905*/                  OPC_MoveParent,
/*249906*/                  OPC_MoveParent,
/*249907*/                  OPC_RecordChild2, // #4 = $src0
/*249908*/                  OPC_CheckType, MVT::v8i64,
/*249910*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*249912*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249915*/                  OPC_EmitMergeInputChains1_2,
/*249916*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPMULLQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249930*/                0, // EndSwitchType
/*249931*/              0, // EndSwitchOpcode
/*249932*/            /*Scope*/ 29|128,1/*157*/, /*->250091*/
/*249934*/              OPC_MoveChild0,
/*249935*/              OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::BITCAST),// ->250013
/*249939*/                OPC_MoveChild0,
/*249940*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*249943*/                OPC_RecordMemRef,
/*249944*/                OPC_RecordNode, // #1 = 'ld' chained node
/*249945*/                OPC_CheckFoldableChainNode,
/*249946*/                OPC_RecordChild1, // #2 = $src2
/*249947*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249949*/                OPC_CheckPredicate, 9, // Predicate_load
/*249951*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*249953*/                OPC_SwitchType /*2 cases */, 27, MVT::v4i64,// ->249983
/*249956*/                  OPC_MoveParent,
/*249957*/                  OPC_MoveParent,
/*249958*/                  OPC_RecordChild1, // #3 = $src1
/*249959*/                  OPC_MoveParent,
/*249960*/                  OPC_RecordChild2, // #4 = $src0
/*249961*/                  OPC_CheckType, MVT::v8i32,
/*249963*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*249965*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249968*/                  OPC_EmitMergeInputChains1_1,
/*249969*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMULLDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249983*/                /*SwitchType*/ 27, MVT::v2i64,// ->250012
/*249985*/                  OPC_MoveParent,
/*249986*/                  OPC_MoveParent,
/*249987*/                  OPC_RecordChild1, // #3 = $src1
/*249988*/                  OPC_MoveParent,
/*249989*/                  OPC_RecordChild2, // #4 = $src0
/*249990*/                  OPC_CheckType, MVT::v8i16,
/*249992*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249994*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249997*/                  OPC_EmitMergeInputChains1_1,
/*249998*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPMULLWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250012*/                0, // EndSwitchType
/*250013*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->250090
/*250016*/                OPC_MoveChild0,
/*250017*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250020*/                OPC_RecordMemRef,
/*250021*/                OPC_RecordNode, // #1 = 'ld' chained node
/*250022*/                OPC_CheckFoldableChainNode,
/*250023*/                OPC_RecordChild1, // #2 = $src2
/*250024*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250026*/                OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->250058
/*250029*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*250031*/                  OPC_MoveParent,
/*250032*/                  OPC_MoveParent,
/*250033*/                  OPC_RecordChild1, // #3 = $src1
/*250034*/                  OPC_MoveParent,
/*250035*/                  OPC_RecordChild2, // #4 = $src0
/*250036*/                  OPC_CheckType, MVT::v8i32,
/*250038*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*250040*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250043*/                  OPC_EmitMergeInputChains1_1,
/*250044*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMULLDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250058*/                /*SwitchType*/ 29, MVT::i64,// ->250089
/*250060*/                  OPC_CheckPredicate, 9, // Predicate_load
/*250062*/                  OPC_MoveParent,
/*250063*/                  OPC_MoveParent,
/*250064*/                  OPC_RecordChild1, // #3 = $src1
/*250065*/                  OPC_MoveParent,
/*250066*/                  OPC_RecordChild2, // #4 = $src0
/*250067*/                  OPC_CheckType, MVT::v8i64,
/*250069*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*250071*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250074*/                  OPC_EmitMergeInputChains1_1,
/*250075*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPMULLQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250089*/                0, // EndSwitchType
/*250090*/              0, // EndSwitchOpcode
/*250091*/            /*Scope*/ 40, /*->250132*/
/*250092*/              OPC_RecordChild0, // #1 = $src1
/*250093*/              OPC_MoveChild1,
/*250094*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250097*/              OPC_RecordMemRef,
/*250098*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250099*/              OPC_CheckFoldableChainNode,
/*250100*/              OPC_RecordChild1, // #3 = $src2
/*250101*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250103*/              OPC_CheckPredicate, 9, // Predicate_load
/*250105*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250107*/              OPC_MoveParent,
/*250108*/              OPC_MoveParent,
/*250109*/              OPC_RecordChild2, // #4 = $src0
/*250110*/              OPC_CheckType, MVT::v8i64,
/*250112*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*250114*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250117*/              OPC_EmitMergeInputChains1_2,
/*250118*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULLQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250132*/            /*Scope*/ 40, /*->250173*/
/*250133*/              OPC_MoveChild0,
/*250134*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250137*/              OPC_RecordMemRef,
/*250138*/              OPC_RecordNode, // #1 = 'ld' chained node
/*250139*/              OPC_CheckFoldableChainNode,
/*250140*/              OPC_RecordChild1, // #2 = $src2
/*250141*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250143*/              OPC_CheckPredicate, 9, // Predicate_load
/*250145*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250147*/              OPC_MoveParent,
/*250148*/              OPC_RecordChild1, // #3 = $src1
/*250149*/              OPC_MoveParent,
/*250150*/              OPC_RecordChild2, // #4 = $src0
/*250151*/              OPC_CheckType, MVT::v8i64,
/*250153*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*250155*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250158*/              OPC_EmitMergeInputChains1_1,
/*250159*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULLQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250173*/            0, /*End of Scope*/
/*250174*/          /*SwitchOpcode*/ 98, TARGET_VAL(ISD::MULHS),// ->250275
/*250177*/            OPC_Scope, 47, /*->250226*/ // 2 children in Scope
/*250179*/              OPC_RecordChild0, // #1 = $src1
/*250180*/              OPC_MoveChild1,
/*250181*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*250184*/              OPC_MoveChild0,
/*250185*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250188*/              OPC_RecordMemRef,
/*250189*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250190*/              OPC_CheckFoldableChainNode,
/*250191*/              OPC_RecordChild1, // #3 = $src2
/*250192*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250194*/              OPC_CheckPredicate, 9, // Predicate_load
/*250196*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250198*/              OPC_CheckType, MVT::v2i64,
/*250200*/              OPC_MoveParent,
/*250201*/              OPC_MoveParent,
/*250202*/              OPC_MoveParent,
/*250203*/              OPC_RecordChild2, // #4 = $src0
/*250204*/              OPC_CheckType, MVT::v8i16,
/*250206*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*250208*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250211*/              OPC_EmitMergeInputChains1_2,
/*250212*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250226*/            /*Scope*/ 47, /*->250274*/
/*250227*/              OPC_MoveChild0,
/*250228*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*250231*/              OPC_MoveChild0,
/*250232*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250235*/              OPC_RecordMemRef,
/*250236*/              OPC_RecordNode, // #1 = 'ld' chained node
/*250237*/              OPC_CheckFoldableChainNode,
/*250238*/              OPC_RecordChild1, // #2 = $src2
/*250239*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250241*/              OPC_CheckPredicate, 9, // Predicate_load
/*250243*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250245*/              OPC_CheckType, MVT::v2i64,
/*250247*/              OPC_MoveParent,
/*250248*/              OPC_MoveParent,
/*250249*/              OPC_RecordChild1, // #3 = $src1
/*250250*/              OPC_MoveParent,
/*250251*/              OPC_RecordChild2, // #4 = $src0
/*250252*/              OPC_CheckType, MVT::v8i16,
/*250254*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*250256*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250259*/              OPC_EmitMergeInputChains1_1,
/*250260*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250274*/            0, /*End of Scope*/
/*250275*/          /*SwitchOpcode*/ 98, TARGET_VAL(ISD::MULHU),// ->250376
/*250278*/            OPC_Scope, 47, /*->250327*/ // 2 children in Scope
/*250280*/              OPC_RecordChild0, // #1 = $src1
/*250281*/              OPC_MoveChild1,
/*250282*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*250285*/              OPC_MoveChild0,
/*250286*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250289*/              OPC_RecordMemRef,
/*250290*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250291*/              OPC_CheckFoldableChainNode,
/*250292*/              OPC_RecordChild1, // #3 = $src2
/*250293*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250295*/              OPC_CheckPredicate, 9, // Predicate_load
/*250297*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250299*/              OPC_CheckType, MVT::v2i64,
/*250301*/              OPC_MoveParent,
/*250302*/              OPC_MoveParent,
/*250303*/              OPC_MoveParent,
/*250304*/              OPC_RecordChild2, // #4 = $src0
/*250305*/              OPC_CheckType, MVT::v8i16,
/*250307*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*250309*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250312*/              OPC_EmitMergeInputChains1_2,
/*250313*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhu:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250327*/            /*Scope*/ 47, /*->250375*/
/*250328*/              OPC_MoveChild0,
/*250329*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*250332*/              OPC_MoveChild0,
/*250333*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250336*/              OPC_RecordMemRef,
/*250337*/              OPC_RecordNode, // #1 = 'ld' chained node
/*250338*/              OPC_CheckFoldableChainNode,
/*250339*/              OPC_RecordChild1, // #2 = $src2
/*250340*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250342*/              OPC_CheckPredicate, 9, // Predicate_load
/*250344*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250346*/              OPC_CheckType, MVT::v2i64,
/*250348*/              OPC_MoveParent,
/*250349*/              OPC_MoveParent,
/*250350*/              OPC_RecordChild1, // #3 = $src1
/*250351*/              OPC_MoveParent,
/*250352*/              OPC_RecordChild2, // #4 = $src0
/*250353*/              OPC_CheckType, MVT::v8i16,
/*250355*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*250357*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250360*/              OPC_EmitMergeInputChains1_1,
/*250361*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhu:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250375*/            0, /*End of Scope*/
/*250376*/          /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::MULHRS),// ->250477
/*250379*/            OPC_Scope, 47, /*->250428*/ // 2 children in Scope
/*250381*/              OPC_RecordChild0, // #1 = $src1
/*250382*/              OPC_MoveChild1,
/*250383*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*250386*/              OPC_MoveChild0,
/*250387*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250390*/              OPC_RecordMemRef,
/*250391*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250392*/              OPC_CheckFoldableChainNode,
/*250393*/              OPC_RecordChild1, // #3 = $src2
/*250394*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250396*/              OPC_CheckPredicate, 9, // Predicate_load
/*250398*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250400*/              OPC_CheckType, MVT::v2i64,
/*250402*/              OPC_MoveParent,
/*250403*/              OPC_MoveParent,
/*250404*/              OPC_MoveParent,
/*250405*/              OPC_RecordChild2, // #4 = $src0
/*250406*/              OPC_CheckType, MVT::v8i16,
/*250408*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*250410*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250413*/              OPC_EmitMergeInputChains1_2,
/*250414*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86mulhrs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHRSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250428*/            /*Scope*/ 47, /*->250476*/
/*250429*/              OPC_MoveChild0,
/*250430*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*250433*/              OPC_MoveChild0,
/*250434*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250437*/              OPC_RecordMemRef,
/*250438*/              OPC_RecordNode, // #1 = 'ld' chained node
/*250439*/              OPC_CheckFoldableChainNode,
/*250440*/              OPC_RecordChild1, // #2 = $src2
/*250441*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250443*/              OPC_CheckPredicate, 9, // Predicate_load
/*250445*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250447*/              OPC_CheckType, MVT::v2i64,
/*250449*/              OPC_MoveParent,
/*250450*/              OPC_MoveParent,
/*250451*/              OPC_RecordChild1, // #3 = $src1
/*250452*/              OPC_MoveParent,
/*250453*/              OPC_RecordChild2, // #4 = $src0
/*250454*/              OPC_CheckType, MVT::v8i16,
/*250456*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*250458*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250461*/              OPC_EmitMergeInputChains1_1,
/*250462*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86mulhrs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHRSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250476*/            0, /*End of Scope*/
/*250477*/          /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::AVG),// ->250578
/*250480*/            OPC_Scope, 47, /*->250529*/ // 2 children in Scope
/*250482*/              OPC_RecordChild0, // #1 = $src1
/*250483*/              OPC_MoveChild1,
/*250484*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*250487*/              OPC_MoveChild0,
/*250488*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250491*/              OPC_RecordMemRef,
/*250492*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250493*/              OPC_CheckFoldableChainNode,
/*250494*/              OPC_RecordChild1, // #3 = $src2
/*250495*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250497*/              OPC_CheckPredicate, 9, // Predicate_load
/*250499*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250501*/              OPC_CheckType, MVT::v2i64,
/*250503*/              OPC_MoveParent,
/*250504*/              OPC_MoveParent,
/*250505*/              OPC_MoveParent,
/*250506*/              OPC_RecordChild2, // #4 = $src0
/*250507*/              OPC_CheckType, MVT::v8i16,
/*250509*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*250511*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250514*/              OPC_EmitMergeInputChains1_2,
/*250515*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86avg:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPAVGWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250529*/            /*Scope*/ 47, /*->250577*/
/*250530*/              OPC_MoveChild0,
/*250531*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*250534*/              OPC_MoveChild0,
/*250535*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250538*/              OPC_RecordMemRef,
/*250539*/              OPC_RecordNode, // #1 = 'ld' chained node
/*250540*/              OPC_CheckFoldableChainNode,
/*250541*/              OPC_RecordChild1, // #2 = $src2
/*250542*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250544*/              OPC_CheckPredicate, 9, // Predicate_load
/*250546*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250548*/              OPC_CheckType, MVT::v2i64,
/*250550*/              OPC_MoveParent,
/*250551*/              OPC_MoveParent,
/*250552*/              OPC_RecordChild1, // #3 = $src1
/*250553*/              OPC_MoveParent,
/*250554*/              OPC_RecordChild2, // #4 = $src0
/*250555*/              OPC_CheckType, MVT::v8i16,
/*250557*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*250559*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250562*/              OPC_EmitMergeInputChains1_1,
/*250563*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86avg:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPAVGWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250577*/            0, /*End of Scope*/
/*250578*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::PMULDQ),// ->250758
/*250582*/            OPC_Scope, 45, /*->250629*/ // 4 children in Scope
/*250584*/              OPC_RecordChild0, // #1 = $src1
/*250585*/              OPC_MoveChild1,
/*250586*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*250589*/              OPC_MoveChild0,
/*250590*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250593*/              OPC_RecordMemRef,
/*250594*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250595*/              OPC_CheckFoldableChainNode,
/*250596*/              OPC_RecordChild1, // #3 = $src2
/*250597*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250599*/              OPC_CheckPredicate, 9, // Predicate_load
/*250601*/              OPC_CheckType, MVT::i64,
/*250603*/              OPC_MoveParent,
/*250604*/              OPC_MoveParent,
/*250605*/              OPC_MoveParent,
/*250606*/              OPC_RecordChild2, // #4 = $src0
/*250607*/              OPC_CheckType, MVT::v8i64,
/*250609*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*250611*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250614*/              OPC_EmitMergeInputChains1_2,
/*250615*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuldq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPMULDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250629*/            /*Scope*/ 45, /*->250675*/
/*250630*/              OPC_MoveChild0,
/*250631*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*250634*/              OPC_MoveChild0,
/*250635*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250638*/              OPC_RecordMemRef,
/*250639*/              OPC_RecordNode, // #1 = 'ld' chained node
/*250640*/              OPC_CheckFoldableChainNode,
/*250641*/              OPC_RecordChild1, // #2 = $src2
/*250642*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250644*/              OPC_CheckPredicate, 9, // Predicate_load
/*250646*/              OPC_CheckType, MVT::i64,
/*250648*/              OPC_MoveParent,
/*250649*/              OPC_MoveParent,
/*250650*/              OPC_RecordChild1, // #3 = $src1
/*250651*/              OPC_MoveParent,
/*250652*/              OPC_RecordChild2, // #4 = $src0
/*250653*/              OPC_CheckType, MVT::v8i64,
/*250655*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*250657*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250660*/              OPC_EmitMergeInputChains1_1,
/*250661*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuldq:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPMULDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250675*/            /*Scope*/ 40, /*->250716*/
/*250676*/              OPC_RecordChild0, // #1 = $src1
/*250677*/              OPC_MoveChild1,
/*250678*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250681*/              OPC_RecordMemRef,
/*250682*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250683*/              OPC_CheckFoldableChainNode,
/*250684*/              OPC_RecordChild1, // #3 = $src2
/*250685*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250687*/              OPC_CheckPredicate, 9, // Predicate_load
/*250689*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250691*/              OPC_MoveParent,
/*250692*/              OPC_MoveParent,
/*250693*/              OPC_RecordChild2, // #4 = $src0
/*250694*/              OPC_CheckType, MVT::v8i64,
/*250696*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*250698*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250701*/              OPC_EmitMergeInputChains1_2,
/*250702*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuldq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250716*/            /*Scope*/ 40, /*->250757*/
/*250717*/              OPC_MoveChild0,
/*250718*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250721*/              OPC_RecordMemRef,
/*250722*/              OPC_RecordNode, // #1 = 'ld' chained node
/*250723*/              OPC_CheckFoldableChainNode,
/*250724*/              OPC_RecordChild1, // #2 = $src2
/*250725*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250727*/              OPC_CheckPredicate, 9, // Predicate_load
/*250729*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250731*/              OPC_MoveParent,
/*250732*/              OPC_RecordChild1, // #3 = $src1
/*250733*/              OPC_MoveParent,
/*250734*/              OPC_RecordChild2, // #4 = $src0
/*250735*/              OPC_CheckType, MVT::v8i64,
/*250737*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*250739*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250742*/              OPC_EmitMergeInputChains1_1,
/*250743*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuldq:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250757*/            0, /*End of Scope*/
/*250758*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::PMULUDQ),// ->250938
/*250762*/            OPC_Scope, 45, /*->250809*/ // 4 children in Scope
/*250764*/              OPC_RecordChild0, // #1 = $src1
/*250765*/              OPC_MoveChild1,
/*250766*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*250769*/              OPC_MoveChild0,
/*250770*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250773*/              OPC_RecordMemRef,
/*250774*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250775*/              OPC_CheckFoldableChainNode,
/*250776*/              OPC_RecordChild1, // #3 = $src2
/*250777*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250779*/              OPC_CheckPredicate, 9, // Predicate_load
/*250781*/              OPC_CheckType, MVT::i64,
/*250783*/              OPC_MoveParent,
/*250784*/              OPC_MoveParent,
/*250785*/              OPC_MoveParent,
/*250786*/              OPC_RecordChild2, // #4 = $src0
/*250787*/              OPC_CheckType, MVT::v8i64,
/*250789*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*250791*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250794*/              OPC_EmitMergeInputChains1_2,
/*250795*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuludq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPMULUDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250809*/            /*Scope*/ 45, /*->250855*/
/*250810*/              OPC_MoveChild0,
/*250811*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*250814*/              OPC_MoveChild0,
/*250815*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250818*/              OPC_RecordMemRef,
/*250819*/              OPC_RecordNode, // #1 = 'ld' chained node
/*250820*/              OPC_CheckFoldableChainNode,
/*250821*/              OPC_RecordChild1, // #2 = $src2
/*250822*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250824*/              OPC_CheckPredicate, 9, // Predicate_load
/*250826*/              OPC_CheckType, MVT::i64,
/*250828*/              OPC_MoveParent,
/*250829*/              OPC_MoveParent,
/*250830*/              OPC_RecordChild1, // #3 = $src1
/*250831*/              OPC_MoveParent,
/*250832*/              OPC_RecordChild2, // #4 = $src0
/*250833*/              OPC_CheckType, MVT::v8i64,
/*250835*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*250837*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250840*/              OPC_EmitMergeInputChains1_1,
/*250841*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuludq:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPMULUDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250855*/            /*Scope*/ 40, /*->250896*/
/*250856*/              OPC_RecordChild0, // #1 = $src1
/*250857*/              OPC_MoveChild1,
/*250858*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250861*/              OPC_RecordMemRef,
/*250862*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250863*/              OPC_CheckFoldableChainNode,
/*250864*/              OPC_RecordChild1, // #3 = $src2
/*250865*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250867*/              OPC_CheckPredicate, 9, // Predicate_load
/*250869*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250871*/              OPC_MoveParent,
/*250872*/              OPC_MoveParent,
/*250873*/              OPC_RecordChild2, // #4 = $src0
/*250874*/              OPC_CheckType, MVT::v8i64,
/*250876*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*250878*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250881*/              OPC_EmitMergeInputChains1_2,
/*250882*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuludq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULUDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250896*/            /*Scope*/ 40, /*->250937*/
/*250897*/              OPC_MoveChild0,
/*250898*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250901*/              OPC_RecordMemRef,
/*250902*/              OPC_RecordNode, // #1 = 'ld' chained node
/*250903*/              OPC_CheckFoldableChainNode,
/*250904*/              OPC_RecordChild1, // #2 = $src2
/*250905*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250907*/              OPC_CheckPredicate, 9, // Predicate_load
/*250909*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250911*/              OPC_MoveParent,
/*250912*/              OPC_RecordChild1, // #3 = $src1
/*250913*/              OPC_MoveParent,
/*250914*/              OPC_RecordChild2, // #4 = $src0
/*250915*/              OPC_CheckType, MVT::v8i64,
/*250917*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*250919*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250922*/              OPC_EmitMergeInputChains1_1,
/*250923*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuludq:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMULUDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250937*/            0, /*End of Scope*/
/*250938*/          /*SwitchOpcode*/ 94, TARGET_VAL(X86ISD::PACKSS),// ->251035
/*250941*/            OPC_RecordChild0, // #1 = $src1
/*250942*/            OPC_CheckChild0Type, MVT::v4i32,
/*250944*/            OPC_MoveChild1,
/*250945*/            OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->250991
/*250949*/              OPC_MoveChild0,
/*250950*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250953*/              OPC_RecordMemRef,
/*250954*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250955*/              OPC_CheckFoldableChainNode,
/*250956*/              OPC_RecordChild1, // #3 = $src2
/*250957*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250959*/              OPC_CheckPredicate, 9, // Predicate_load
/*250961*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*250963*/              OPC_CheckType, MVT::v2i64,
/*250965*/              OPC_MoveParent,
/*250966*/              OPC_MoveParent,
/*250967*/              OPC_MoveParent,
/*250968*/              OPC_RecordChild2, // #4 = $src0
/*250969*/              OPC_CheckType, MVT::v8i16,
/*250971*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*250973*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250976*/              OPC_EmitMergeInputChains1_2,
/*250977*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packss:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPACKSSDWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250991*/            /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->251034
/*250994*/              OPC_MoveChild0,
/*250995*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*250998*/              OPC_RecordMemRef,
/*250999*/              OPC_RecordNode, // #2 = 'ld' chained node
/*251000*/              OPC_CheckFoldableChainNode,
/*251001*/              OPC_RecordChild1, // #3 = $src2
/*251002*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251004*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*251006*/              OPC_CheckType, MVT::i32,
/*251008*/              OPC_MoveParent,
/*251009*/              OPC_MoveParent,
/*251010*/              OPC_MoveParent,
/*251011*/              OPC_RecordChild2, // #4 = $src0
/*251012*/              OPC_CheckType, MVT::v8i16,
/*251014*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*251016*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251019*/              OPC_EmitMergeInputChains1_2,
/*251020*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packss:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPACKSSDWZ128rmbk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251034*/            0, // EndSwitchOpcode
/*251035*/          /*SwitchOpcode*/ 94, TARGET_VAL(X86ISD::PACKUS),// ->251132
/*251038*/            OPC_RecordChild0, // #1 = $src1
/*251039*/            OPC_CheckChild0Type, MVT::v4i32,
/*251041*/            OPC_MoveChild1,
/*251042*/            OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->251088
/*251046*/              OPC_MoveChild0,
/*251047*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251050*/              OPC_RecordMemRef,
/*251051*/              OPC_RecordNode, // #2 = 'ld' chained node
/*251052*/              OPC_CheckFoldableChainNode,
/*251053*/              OPC_RecordChild1, // #3 = $src2
/*251054*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251056*/              OPC_CheckPredicate, 9, // Predicate_load
/*251058*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*251060*/              OPC_CheckType, MVT::v2i64,
/*251062*/              OPC_MoveParent,
/*251063*/              OPC_MoveParent,
/*251064*/              OPC_MoveParent,
/*251065*/              OPC_RecordChild2, // #4 = $src0
/*251066*/              OPC_CheckType, MVT::v8i16,
/*251068*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*251070*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251073*/              OPC_EmitMergeInputChains1_2,
/*251074*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPACKUSDWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251088*/            /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->251131
/*251091*/              OPC_MoveChild0,
/*251092*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251095*/              OPC_RecordMemRef,
/*251096*/              OPC_RecordNode, // #2 = 'ld' chained node
/*251097*/              OPC_CheckFoldableChainNode,
/*251098*/              OPC_RecordChild1, // #3 = $src2
/*251099*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251101*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*251103*/              OPC_CheckType, MVT::i32,
/*251105*/              OPC_MoveParent,
/*251106*/              OPC_MoveParent,
/*251107*/              OPC_MoveParent,
/*251108*/              OPC_RecordChild2, // #4 = $src0
/*251109*/              OPC_CheckType, MVT::v8i16,
/*251111*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*251113*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251116*/              OPC_EmitMergeInputChains1_2,
/*251117*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                        // Dst: (VPACKUSDWZ128rmbk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251131*/            0, // EndSwitchOpcode
/*251132*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VPMADDUBSW),// ->251182
/*251135*/            OPC_RecordChild0, // #1 = $src1
/*251136*/            OPC_MoveChild1,
/*251137*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*251140*/            OPC_MoveChild0,
/*251141*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251144*/            OPC_RecordMemRef,
/*251145*/            OPC_RecordNode, // #2 = 'ld' chained node
/*251146*/            OPC_CheckFoldableChainNode,
/*251147*/            OPC_RecordChild1, // #3 = $src2
/*251148*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251150*/            OPC_CheckPredicate, 9, // Predicate_load
/*251152*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*251154*/            OPC_CheckType, MVT::v2i64,
/*251156*/            OPC_MoveParent,
/*251157*/            OPC_MoveParent,
/*251158*/            OPC_MoveParent,
/*251159*/            OPC_RecordChild2, // #4 = $src0
/*251160*/            OPC_CheckType, MVT::v8i16,
/*251162*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*251164*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251167*/            OPC_EmitMergeInputChains1_2,
/*251168*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vpmaddubsw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                      // Dst: (VPMADDUBSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251182*/          /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::VPMADDWD),// ->251283
/*251185*/            OPC_Scope, 47, /*->251234*/ // 2 children in Scope
/*251187*/              OPC_RecordChild0, // #1 = $src1
/*251188*/              OPC_MoveChild1,
/*251189*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*251192*/              OPC_MoveChild0,
/*251193*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251196*/              OPC_RecordMemRef,
/*251197*/              OPC_RecordNode, // #2 = 'ld' chained node
/*251198*/              OPC_CheckFoldableChainNode,
/*251199*/              OPC_RecordChild1, // #3 = $src2
/*251200*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251202*/              OPC_CheckPredicate, 9, // Predicate_load
/*251204*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*251206*/              OPC_CheckType, MVT::v4i64,
/*251208*/              OPC_MoveParent,
/*251209*/              OPC_MoveParent,
/*251210*/              OPC_MoveParent,
/*251211*/              OPC_RecordChild2, // #4 = $src0
/*251212*/              OPC_CheckType, MVT::v8i32,
/*251214*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*251216*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251219*/              OPC_EmitMergeInputChains1_2,
/*251220*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpmaddwd:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VPMADDWDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251234*/            /*Scope*/ 47, /*->251282*/
/*251235*/              OPC_MoveChild0,
/*251236*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*251239*/              OPC_MoveChild0,
/*251240*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251243*/              OPC_RecordMemRef,
/*251244*/              OPC_RecordNode, // #1 = 'ld' chained node
/*251245*/              OPC_CheckFoldableChainNode,
/*251246*/              OPC_RecordChild1, // #2 = $src2
/*251247*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251249*/              OPC_CheckPredicate, 9, // Predicate_load
/*251251*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*251253*/              OPC_CheckType, MVT::v4i64,
/*251255*/              OPC_MoveParent,
/*251256*/              OPC_MoveParent,
/*251257*/              OPC_RecordChild1, // #3 = $src1
/*251258*/              OPC_MoveParent,
/*251259*/              OPC_RecordChild2, // #4 = $src0
/*251260*/              OPC_CheckType, MVT::v8i32,
/*251262*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*251264*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251267*/              OPC_EmitMergeInputChains1_1,
/*251268*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpmaddwd:{ *:[v8i32] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VPMADDWDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251282*/            0, /*End of Scope*/
/*251283*/          /*SwitchOpcode*/ 15|128,3/*399*/, TARGET_VAL(ISD::SMAX),// ->251686
/*251287*/            OPC_Scope, 26|128,1/*154*/, /*->251444*/ // 4 children in Scope
/*251290*/              OPC_RecordChild0, // #1 = $src1
/*251291*/              OPC_MoveChild1,
/*251292*/              OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::BITCAST),// ->251368
/*251296*/                OPC_MoveChild0,
/*251297*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251300*/                OPC_RecordMemRef,
/*251301*/                OPC_RecordNode, // #2 = 'ld' chained node
/*251302*/                OPC_CheckFoldableChainNode,
/*251303*/                OPC_RecordChild1, // #3 = $src2
/*251304*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251306*/                OPC_CheckPredicate, 9, // Predicate_load
/*251308*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*251310*/                OPC_SwitchType /*2 cases */, 26, MVT::v2i64,// ->251339
/*251313*/                  OPC_MoveParent,
/*251314*/                  OPC_MoveParent,
/*251315*/                  OPC_MoveParent,
/*251316*/                  OPC_RecordChild2, // #4 = $src0
/*251317*/                  OPC_CheckType, MVT::v8i16,
/*251319*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*251321*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251324*/                  OPC_EmitMergeInputChains1_2,
/*251325*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251339*/                /*SwitchType*/ 26, MVT::v4i64,// ->251367
/*251341*/                  OPC_MoveParent,
/*251342*/                  OPC_MoveParent,
/*251343*/                  OPC_MoveParent,
/*251344*/                  OPC_RecordChild2, // #4 = $src0
/*251345*/                  OPC_CheckType, MVT::v8i32,
/*251347*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*251349*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251352*/                  OPC_EmitMergeInputChains1_2,
/*251353*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251367*/                0, // EndSwitchType
/*251368*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->251443
/*251371*/                OPC_MoveChild0,
/*251372*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251375*/                OPC_RecordMemRef,
/*251376*/                OPC_RecordNode, // #2 = 'ld' chained node
/*251377*/                OPC_CheckFoldableChainNode,
/*251378*/                OPC_RecordChild1, // #3 = $src2
/*251379*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251381*/                OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->251412
/*251384*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*251386*/                  OPC_MoveParent,
/*251387*/                  OPC_MoveParent,
/*251388*/                  OPC_MoveParent,
/*251389*/                  OPC_RecordChild2, // #4 = $src0
/*251390*/                  OPC_CheckType, MVT::v8i32,
/*251392*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*251394*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251397*/                  OPC_EmitMergeInputChains1_2,
/*251398*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251412*/                /*SwitchType*/ 28, MVT::i64,// ->251442
/*251414*/                  OPC_CheckPredicate, 9, // Predicate_load
/*251416*/                  OPC_MoveParent,
/*251417*/                  OPC_MoveParent,
/*251418*/                  OPC_MoveParent,
/*251419*/                  OPC_RecordChild2, // #4 = $src0
/*251420*/                  OPC_CheckType, MVT::v8i64,
/*251422*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*251424*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251427*/                  OPC_EmitMergeInputChains1_2,
/*251428*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251442*/                0, // EndSwitchType
/*251443*/              0, // EndSwitchOpcode
/*251444*/            /*Scope*/ 29|128,1/*157*/, /*->251603*/
/*251446*/              OPC_MoveChild0,
/*251447*/              OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::BITCAST),// ->251525
/*251451*/                OPC_MoveChild0,
/*251452*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251455*/                OPC_RecordMemRef,
/*251456*/                OPC_RecordNode, // #1 = 'ld' chained node
/*251457*/                OPC_CheckFoldableChainNode,
/*251458*/                OPC_RecordChild1, // #2 = $src2
/*251459*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251461*/                OPC_CheckPredicate, 9, // Predicate_load
/*251463*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*251465*/                OPC_SwitchType /*2 cases */, 27, MVT::v2i64,// ->251495
/*251468*/                  OPC_MoveParent,
/*251469*/                  OPC_MoveParent,
/*251470*/                  OPC_RecordChild1, // #3 = $src1
/*251471*/                  OPC_MoveParent,
/*251472*/                  OPC_RecordChild2, // #4 = $src0
/*251473*/                  OPC_CheckType, MVT::v8i16,
/*251475*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*251477*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251480*/                  OPC_EmitMergeInputChains1_1,
/*251481*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251495*/                /*SwitchType*/ 27, MVT::v4i64,// ->251524
/*251497*/                  OPC_MoveParent,
/*251498*/                  OPC_MoveParent,
/*251499*/                  OPC_RecordChild1, // #3 = $src1
/*251500*/                  OPC_MoveParent,
/*251501*/                  OPC_RecordChild2, // #4 = $src0
/*251502*/                  OPC_CheckType, MVT::v8i32,
/*251504*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*251506*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251509*/                  OPC_EmitMergeInputChains1_1,
/*251510*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251524*/                0, // EndSwitchType
/*251525*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->251602
/*251528*/                OPC_MoveChild0,
/*251529*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251532*/                OPC_RecordMemRef,
/*251533*/                OPC_RecordNode, // #1 = 'ld' chained node
/*251534*/                OPC_CheckFoldableChainNode,
/*251535*/                OPC_RecordChild1, // #2 = $src2
/*251536*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251538*/                OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->251570
/*251541*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*251543*/                  OPC_MoveParent,
/*251544*/                  OPC_MoveParent,
/*251545*/                  OPC_RecordChild1, // #3 = $src1
/*251546*/                  OPC_MoveParent,
/*251547*/                  OPC_RecordChild2, // #4 = $src0
/*251548*/                  OPC_CheckType, MVT::v8i32,
/*251550*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*251552*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251555*/                  OPC_EmitMergeInputChains1_1,
/*251556*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251570*/                /*SwitchType*/ 29, MVT::i64,// ->251601
/*251572*/                  OPC_CheckPredicate, 9, // Predicate_load
/*251574*/                  OPC_MoveParent,
/*251575*/                  OPC_MoveParent,
/*251576*/                  OPC_RecordChild1, // #3 = $src1
/*251577*/                  OPC_MoveParent,
/*251578*/                  OPC_RecordChild2, // #4 = $src0
/*251579*/                  OPC_CheckType, MVT::v8i64,
/*251581*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*251583*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251586*/                  OPC_EmitMergeInputChains1_1,
/*251587*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251601*/                0, // EndSwitchType
/*251602*/              0, // EndSwitchOpcode
/*251603*/            /*Scope*/ 40, /*->251644*/
/*251604*/              OPC_RecordChild0, // #1 = $src1
/*251605*/              OPC_MoveChild1,
/*251606*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251609*/              OPC_RecordMemRef,
/*251610*/              OPC_RecordNode, // #2 = 'ld' chained node
/*251611*/              OPC_CheckFoldableChainNode,
/*251612*/              OPC_RecordChild1, // #3 = $src2
/*251613*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251615*/              OPC_CheckPredicate, 9, // Predicate_load
/*251617*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*251619*/              OPC_MoveParent,
/*251620*/              OPC_MoveParent,
/*251621*/              OPC_RecordChild2, // #4 = $src0
/*251622*/              OPC_CheckType, MVT::v8i64,
/*251624*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*251626*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251629*/              OPC_EmitMergeInputChains1_2,
/*251630*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMAXSQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251644*/            /*Scope*/ 40, /*->251685*/
/*251645*/              OPC_MoveChild0,
/*251646*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251649*/              OPC_RecordMemRef,
/*251650*/              OPC_RecordNode, // #1 = 'ld' chained node
/*251651*/              OPC_CheckFoldableChainNode,
/*251652*/              OPC_RecordChild1, // #2 = $src2
/*251653*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251655*/              OPC_CheckPredicate, 9, // Predicate_load
/*251657*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*251659*/              OPC_MoveParent,
/*251660*/              OPC_RecordChild1, // #3 = $src1
/*251661*/              OPC_MoveParent,
/*251662*/              OPC_RecordChild2, // #4 = $src0
/*251663*/              OPC_CheckType, MVT::v8i64,
/*251665*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*251667*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251670*/              OPC_EmitMergeInputChains1_1,
/*251671*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMAXSQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251685*/            0, /*End of Scope*/
/*251686*/          /*SwitchOpcode*/ 15|128,3/*399*/, TARGET_VAL(ISD::UMAX),// ->252089
/*251690*/            OPC_Scope, 26|128,1/*154*/, /*->251847*/ // 4 children in Scope
/*251693*/              OPC_RecordChild0, // #1 = $src1
/*251694*/              OPC_MoveChild1,
/*251695*/              OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::BITCAST),// ->251771
/*251699*/                OPC_MoveChild0,
/*251700*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251703*/                OPC_RecordMemRef,
/*251704*/                OPC_RecordNode, // #2 = 'ld' chained node
/*251705*/                OPC_CheckFoldableChainNode,
/*251706*/                OPC_RecordChild1, // #3 = $src2
/*251707*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251709*/                OPC_CheckPredicate, 9, // Predicate_load
/*251711*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*251713*/                OPC_SwitchType /*2 cases */, 26, MVT::v2i64,// ->251742
/*251716*/                  OPC_MoveParent,
/*251717*/                  OPC_MoveParent,
/*251718*/                  OPC_MoveParent,
/*251719*/                  OPC_RecordChild2, // #4 = $src0
/*251720*/                  OPC_CheckType, MVT::v8i16,
/*251722*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*251724*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251727*/                  OPC_EmitMergeInputChains1_2,
/*251728*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251742*/                /*SwitchType*/ 26, MVT::v4i64,// ->251770
/*251744*/                  OPC_MoveParent,
/*251745*/                  OPC_MoveParent,
/*251746*/                  OPC_MoveParent,
/*251747*/                  OPC_RecordChild2, // #4 = $src0
/*251748*/                  OPC_CheckType, MVT::v8i32,
/*251750*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*251752*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251755*/                  OPC_EmitMergeInputChains1_2,
/*251756*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251770*/                0, // EndSwitchType
/*251771*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->251846
/*251774*/                OPC_MoveChild0,
/*251775*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251778*/                OPC_RecordMemRef,
/*251779*/                OPC_RecordNode, // #2 = 'ld' chained node
/*251780*/                OPC_CheckFoldableChainNode,
/*251781*/                OPC_RecordChild1, // #3 = $src2
/*251782*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251784*/                OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->251815
/*251787*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*251789*/                  OPC_MoveParent,
/*251790*/                  OPC_MoveParent,
/*251791*/                  OPC_MoveParent,
/*251792*/                  OPC_RecordChild2, // #4 = $src0
/*251793*/                  OPC_CheckType, MVT::v8i32,
/*251795*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*251797*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251800*/                  OPC_EmitMergeInputChains1_2,
/*251801*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251815*/                /*SwitchType*/ 28, MVT::i64,// ->251845
/*251817*/                  OPC_CheckPredicate, 9, // Predicate_load
/*251819*/                  OPC_MoveParent,
/*251820*/                  OPC_MoveParent,
/*251821*/                  OPC_MoveParent,
/*251822*/                  OPC_RecordChild2, // #4 = $src0
/*251823*/                  OPC_CheckType, MVT::v8i64,
/*251825*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*251827*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251830*/                  OPC_EmitMergeInputChains1_2,
/*251831*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251845*/                0, // EndSwitchType
/*251846*/              0, // EndSwitchOpcode
/*251847*/            /*Scope*/ 29|128,1/*157*/, /*->252006*/
/*251849*/              OPC_MoveChild0,
/*251850*/              OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::BITCAST),// ->251928
/*251854*/                OPC_MoveChild0,
/*251855*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251858*/                OPC_RecordMemRef,
/*251859*/                OPC_RecordNode, // #1 = 'ld' chained node
/*251860*/                OPC_CheckFoldableChainNode,
/*251861*/                OPC_RecordChild1, // #2 = $src2
/*251862*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251864*/                OPC_CheckPredicate, 9, // Predicate_load
/*251866*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*251868*/                OPC_SwitchType /*2 cases */, 27, MVT::v2i64,// ->251898
/*251871*/                  OPC_MoveParent,
/*251872*/                  OPC_MoveParent,
/*251873*/                  OPC_RecordChild1, // #3 = $src1
/*251874*/                  OPC_MoveParent,
/*251875*/                  OPC_RecordChild2, // #4 = $src0
/*251876*/                  OPC_CheckType, MVT::v8i16,
/*251878*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*251880*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251883*/                  OPC_EmitMergeInputChains1_1,
/*251884*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251898*/                /*SwitchType*/ 27, MVT::v4i64,// ->251927
/*251900*/                  OPC_MoveParent,
/*251901*/                  OPC_MoveParent,
/*251902*/                  OPC_RecordChild1, // #3 = $src1
/*251903*/                  OPC_MoveParent,
/*251904*/                  OPC_RecordChild2, // #4 = $src0
/*251905*/                  OPC_CheckType, MVT::v8i32,
/*251907*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*251909*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251912*/                  OPC_EmitMergeInputChains1_1,
/*251913*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251927*/                0, // EndSwitchType
/*251928*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->252005
/*251931*/                OPC_MoveChild0,
/*251932*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251935*/                OPC_RecordMemRef,
/*251936*/                OPC_RecordNode, // #1 = 'ld' chained node
/*251937*/                OPC_CheckFoldableChainNode,
/*251938*/                OPC_RecordChild1, // #2 = $src2
/*251939*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251941*/                OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->251973
/*251944*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*251946*/                  OPC_MoveParent,
/*251947*/                  OPC_MoveParent,
/*251948*/                  OPC_RecordChild1, // #3 = $src1
/*251949*/                  OPC_MoveParent,
/*251950*/                  OPC_RecordChild2, // #4 = $src0
/*251951*/                  OPC_CheckType, MVT::v8i32,
/*251953*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*251955*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251958*/                  OPC_EmitMergeInputChains1_1,
/*251959*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*251973*/                /*SwitchType*/ 29, MVT::i64,// ->252004
/*251975*/                  OPC_CheckPredicate, 9, // Predicate_load
/*251977*/                  OPC_MoveParent,
/*251978*/                  OPC_MoveParent,
/*251979*/                  OPC_RecordChild1, // #3 = $src1
/*251980*/                  OPC_MoveParent,
/*251981*/                  OPC_RecordChild2, // #4 = $src0
/*251982*/                  OPC_CheckType, MVT::v8i64,
/*251984*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*251986*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*251989*/                  OPC_EmitMergeInputChains1_1,
/*251990*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252004*/                0, // EndSwitchType
/*252005*/              0, // EndSwitchOpcode
/*252006*/            /*Scope*/ 40, /*->252047*/
/*252007*/              OPC_RecordChild0, // #1 = $src1
/*252008*/              OPC_MoveChild1,
/*252009*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252012*/              OPC_RecordMemRef,
/*252013*/              OPC_RecordNode, // #2 = 'ld' chained node
/*252014*/              OPC_CheckFoldableChainNode,
/*252015*/              OPC_RecordChild1, // #3 = $src2
/*252016*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252018*/              OPC_CheckPredicate, 9, // Predicate_load
/*252020*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*252022*/              OPC_MoveParent,
/*252023*/              OPC_MoveParent,
/*252024*/              OPC_RecordChild2, // #4 = $src0
/*252025*/              OPC_CheckType, MVT::v8i64,
/*252027*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252029*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252032*/              OPC_EmitMergeInputChains1_2,
/*252033*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMAXUQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252047*/            /*Scope*/ 40, /*->252088*/
/*252048*/              OPC_MoveChild0,
/*252049*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252052*/              OPC_RecordMemRef,
/*252053*/              OPC_RecordNode, // #1 = 'ld' chained node
/*252054*/              OPC_CheckFoldableChainNode,
/*252055*/              OPC_RecordChild1, // #2 = $src2
/*252056*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252058*/              OPC_CheckPredicate, 9, // Predicate_load
/*252060*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*252062*/              OPC_MoveParent,
/*252063*/              OPC_RecordChild1, // #3 = $src1
/*252064*/              OPC_MoveParent,
/*252065*/              OPC_RecordChild2, // #4 = $src0
/*252066*/              OPC_CheckType, MVT::v8i64,
/*252068*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252070*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252073*/              OPC_EmitMergeInputChains1_1,
/*252074*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMAXUQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252088*/            0, /*End of Scope*/
/*252089*/          /*SwitchOpcode*/ 15|128,3/*399*/, TARGET_VAL(ISD::SMIN),// ->252492
/*252093*/            OPC_Scope, 26|128,1/*154*/, /*->252250*/ // 4 children in Scope
/*252096*/              OPC_RecordChild0, // #1 = $src1
/*252097*/              OPC_MoveChild1,
/*252098*/              OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::BITCAST),// ->252174
/*252102*/                OPC_MoveChild0,
/*252103*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252106*/                OPC_RecordMemRef,
/*252107*/                OPC_RecordNode, // #2 = 'ld' chained node
/*252108*/                OPC_CheckFoldableChainNode,
/*252109*/                OPC_RecordChild1, // #3 = $src2
/*252110*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252112*/                OPC_CheckPredicate, 9, // Predicate_load
/*252114*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*252116*/                OPC_SwitchType /*2 cases */, 26, MVT::v2i64,// ->252145
/*252119*/                  OPC_MoveParent,
/*252120*/                  OPC_MoveParent,
/*252121*/                  OPC_MoveParent,
/*252122*/                  OPC_RecordChild2, // #4 = $src0
/*252123*/                  OPC_CheckType, MVT::v8i16,
/*252125*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*252127*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252130*/                  OPC_EmitMergeInputChains1_2,
/*252131*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPMINSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252145*/                /*SwitchType*/ 26, MVT::v4i64,// ->252173
/*252147*/                  OPC_MoveParent,
/*252148*/                  OPC_MoveParent,
/*252149*/                  OPC_MoveParent,
/*252150*/                  OPC_RecordChild2, // #4 = $src0
/*252151*/                  OPC_CheckType, MVT::v8i32,
/*252153*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*252155*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252158*/                  OPC_EmitMergeInputChains1_2,
/*252159*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINSDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252173*/                0, // EndSwitchType
/*252174*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->252249
/*252177*/                OPC_MoveChild0,
/*252178*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252181*/                OPC_RecordMemRef,
/*252182*/                OPC_RecordNode, // #2 = 'ld' chained node
/*252183*/                OPC_CheckFoldableChainNode,
/*252184*/                OPC_RecordChild1, // #3 = $src2
/*252185*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252187*/                OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->252218
/*252190*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*252192*/                  OPC_MoveParent,
/*252193*/                  OPC_MoveParent,
/*252194*/                  OPC_MoveParent,
/*252195*/                  OPC_RecordChild2, // #4 = $src0
/*252196*/                  OPC_CheckType, MVT::v8i32,
/*252198*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*252200*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252203*/                  OPC_EmitMergeInputChains1_2,
/*252204*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINSDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252218*/                /*SwitchType*/ 28, MVT::i64,// ->252248
/*252220*/                  OPC_CheckPredicate, 9, // Predicate_load
/*252222*/                  OPC_MoveParent,
/*252223*/                  OPC_MoveParent,
/*252224*/                  OPC_MoveParent,
/*252225*/                  OPC_RecordChild2, // #4 = $src0
/*252226*/                  OPC_CheckType, MVT::v8i64,
/*252228*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252230*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252233*/                  OPC_EmitMergeInputChains1_2,
/*252234*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPMINSQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252248*/                0, // EndSwitchType
/*252249*/              0, // EndSwitchOpcode
/*252250*/            /*Scope*/ 29|128,1/*157*/, /*->252409*/
/*252252*/              OPC_MoveChild0,
/*252253*/              OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::BITCAST),// ->252331
/*252257*/                OPC_MoveChild0,
/*252258*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252261*/                OPC_RecordMemRef,
/*252262*/                OPC_RecordNode, // #1 = 'ld' chained node
/*252263*/                OPC_CheckFoldableChainNode,
/*252264*/                OPC_RecordChild1, // #2 = $src2
/*252265*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252267*/                OPC_CheckPredicate, 9, // Predicate_load
/*252269*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*252271*/                OPC_SwitchType /*2 cases */, 27, MVT::v2i64,// ->252301
/*252274*/                  OPC_MoveParent,
/*252275*/                  OPC_MoveParent,
/*252276*/                  OPC_RecordChild1, // #3 = $src1
/*252277*/                  OPC_MoveParent,
/*252278*/                  OPC_RecordChild2, // #4 = $src0
/*252279*/                  OPC_CheckType, MVT::v8i16,
/*252281*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*252283*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252286*/                  OPC_EmitMergeInputChains1_1,
/*252287*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPMINSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252301*/                /*SwitchType*/ 27, MVT::v4i64,// ->252330
/*252303*/                  OPC_MoveParent,
/*252304*/                  OPC_MoveParent,
/*252305*/                  OPC_RecordChild1, // #3 = $src1
/*252306*/                  OPC_MoveParent,
/*252307*/                  OPC_RecordChild2, // #4 = $src0
/*252308*/                  OPC_CheckType, MVT::v8i32,
/*252310*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*252312*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252315*/                  OPC_EmitMergeInputChains1_1,
/*252316*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINSDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252330*/                0, // EndSwitchType
/*252331*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->252408
/*252334*/                OPC_MoveChild0,
/*252335*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252338*/                OPC_RecordMemRef,
/*252339*/                OPC_RecordNode, // #1 = 'ld' chained node
/*252340*/                OPC_CheckFoldableChainNode,
/*252341*/                OPC_RecordChild1, // #2 = $src2
/*252342*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252344*/                OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->252376
/*252347*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*252349*/                  OPC_MoveParent,
/*252350*/                  OPC_MoveParent,
/*252351*/                  OPC_RecordChild1, // #3 = $src1
/*252352*/                  OPC_MoveParent,
/*252353*/                  OPC_RecordChild2, // #4 = $src0
/*252354*/                  OPC_CheckType, MVT::v8i32,
/*252356*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*252358*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252361*/                  OPC_EmitMergeInputChains1_1,
/*252362*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINSDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252376*/                /*SwitchType*/ 29, MVT::i64,// ->252407
/*252378*/                  OPC_CheckPredicate, 9, // Predicate_load
/*252380*/                  OPC_MoveParent,
/*252381*/                  OPC_MoveParent,
/*252382*/                  OPC_RecordChild1, // #3 = $src1
/*252383*/                  OPC_MoveParent,
/*252384*/                  OPC_RecordChild2, // #4 = $src0
/*252385*/                  OPC_CheckType, MVT::v8i64,
/*252387*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252389*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252392*/                  OPC_EmitMergeInputChains1_1,
/*252393*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPMINSQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252407*/                0, // EndSwitchType
/*252408*/              0, // EndSwitchOpcode
/*252409*/            /*Scope*/ 40, /*->252450*/
/*252410*/              OPC_RecordChild0, // #1 = $src1
/*252411*/              OPC_MoveChild1,
/*252412*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252415*/              OPC_RecordMemRef,
/*252416*/              OPC_RecordNode, // #2 = 'ld' chained node
/*252417*/              OPC_CheckFoldableChainNode,
/*252418*/              OPC_RecordChild1, // #3 = $src2
/*252419*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252421*/              OPC_CheckPredicate, 9, // Predicate_load
/*252423*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*252425*/              OPC_MoveParent,
/*252426*/              OPC_MoveParent,
/*252427*/              OPC_RecordChild2, // #4 = $src0
/*252428*/              OPC_CheckType, MVT::v8i64,
/*252430*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252432*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252435*/              OPC_EmitMergeInputChains1_2,
/*252436*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMINSQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252450*/            /*Scope*/ 40, /*->252491*/
/*252451*/              OPC_MoveChild0,
/*252452*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252455*/              OPC_RecordMemRef,
/*252456*/              OPC_RecordNode, // #1 = 'ld' chained node
/*252457*/              OPC_CheckFoldableChainNode,
/*252458*/              OPC_RecordChild1, // #2 = $src2
/*252459*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252461*/              OPC_CheckPredicate, 9, // Predicate_load
/*252463*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*252465*/              OPC_MoveParent,
/*252466*/              OPC_RecordChild1, // #3 = $src1
/*252467*/              OPC_MoveParent,
/*252468*/              OPC_RecordChild2, // #4 = $src0
/*252469*/              OPC_CheckType, MVT::v8i64,
/*252471*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252473*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252476*/              OPC_EmitMergeInputChains1_1,
/*252477*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMINSQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252491*/            0, /*End of Scope*/
/*252492*/          /*SwitchOpcode*/ 15|128,3/*399*/, TARGET_VAL(ISD::UMIN),// ->252895
/*252496*/            OPC_Scope, 26|128,1/*154*/, /*->252653*/ // 4 children in Scope
/*252499*/              OPC_RecordChild0, // #1 = $src1
/*252500*/              OPC_MoveChild1,
/*252501*/              OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::BITCAST),// ->252577
/*252505*/                OPC_MoveChild0,
/*252506*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252509*/                OPC_RecordMemRef,
/*252510*/                OPC_RecordNode, // #2 = 'ld' chained node
/*252511*/                OPC_CheckFoldableChainNode,
/*252512*/                OPC_RecordChild1, // #3 = $src2
/*252513*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252515*/                OPC_CheckPredicate, 9, // Predicate_load
/*252517*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*252519*/                OPC_SwitchType /*2 cases */, 26, MVT::v2i64,// ->252548
/*252522*/                  OPC_MoveParent,
/*252523*/                  OPC_MoveParent,
/*252524*/                  OPC_MoveParent,
/*252525*/                  OPC_RecordChild2, // #4 = $src0
/*252526*/                  OPC_CheckType, MVT::v8i16,
/*252528*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*252530*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252533*/                  OPC_EmitMergeInputChains1_2,
/*252534*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPMINUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252548*/                /*SwitchType*/ 26, MVT::v4i64,// ->252576
/*252550*/                  OPC_MoveParent,
/*252551*/                  OPC_MoveParent,
/*252552*/                  OPC_MoveParent,
/*252553*/                  OPC_RecordChild2, // #4 = $src0
/*252554*/                  OPC_CheckType, MVT::v8i32,
/*252556*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*252558*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252561*/                  OPC_EmitMergeInputChains1_2,
/*252562*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINUDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252576*/                0, // EndSwitchType
/*252577*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->252652
/*252580*/                OPC_MoveChild0,
/*252581*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252584*/                OPC_RecordMemRef,
/*252585*/                OPC_RecordNode, // #2 = 'ld' chained node
/*252586*/                OPC_CheckFoldableChainNode,
/*252587*/                OPC_RecordChild1, // #3 = $src2
/*252588*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252590*/                OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->252621
/*252593*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*252595*/                  OPC_MoveParent,
/*252596*/                  OPC_MoveParent,
/*252597*/                  OPC_MoveParent,
/*252598*/                  OPC_RecordChild2, // #4 = $src0
/*252599*/                  OPC_CheckType, MVT::v8i32,
/*252601*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*252603*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252606*/                  OPC_EmitMergeInputChains1_2,
/*252607*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINUDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252621*/                /*SwitchType*/ 28, MVT::i64,// ->252651
/*252623*/                  OPC_CheckPredicate, 9, // Predicate_load
/*252625*/                  OPC_MoveParent,
/*252626*/                  OPC_MoveParent,
/*252627*/                  OPC_MoveParent,
/*252628*/                  OPC_RecordChild2, // #4 = $src0
/*252629*/                  OPC_CheckType, MVT::v8i64,
/*252631*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252633*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252636*/                  OPC_EmitMergeInputChains1_2,
/*252637*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPMINUQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252651*/                0, // EndSwitchType
/*252652*/              0, // EndSwitchOpcode
/*252653*/            /*Scope*/ 29|128,1/*157*/, /*->252812*/
/*252655*/              OPC_MoveChild0,
/*252656*/              OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::BITCAST),// ->252734
/*252660*/                OPC_MoveChild0,
/*252661*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252664*/                OPC_RecordMemRef,
/*252665*/                OPC_RecordNode, // #1 = 'ld' chained node
/*252666*/                OPC_CheckFoldableChainNode,
/*252667*/                OPC_RecordChild1, // #2 = $src2
/*252668*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252670*/                OPC_CheckPredicate, 9, // Predicate_load
/*252672*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*252674*/                OPC_SwitchType /*2 cases */, 27, MVT::v2i64,// ->252704
/*252677*/                  OPC_MoveParent,
/*252678*/                  OPC_MoveParent,
/*252679*/                  OPC_RecordChild1, // #3 = $src1
/*252680*/                  OPC_MoveParent,
/*252681*/                  OPC_RecordChild2, // #4 = $src0
/*252682*/                  OPC_CheckType, MVT::v8i16,
/*252684*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*252686*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252689*/                  OPC_EmitMergeInputChains1_1,
/*252690*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                            // Dst: (VPMINUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252704*/                /*SwitchType*/ 27, MVT::v4i64,// ->252733
/*252706*/                  OPC_MoveParent,
/*252707*/                  OPC_MoveParent,
/*252708*/                  OPC_RecordChild1, // #3 = $src1
/*252709*/                  OPC_MoveParent,
/*252710*/                  OPC_RecordChild2, // #4 = $src0
/*252711*/                  OPC_CheckType, MVT::v8i32,
/*252713*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*252715*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252718*/                  OPC_EmitMergeInputChains1_1,
/*252719*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINUDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252733*/                0, // EndSwitchType
/*252734*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->252811
/*252737*/                OPC_MoveChild0,
/*252738*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252741*/                OPC_RecordMemRef,
/*252742*/                OPC_RecordNode, // #1 = 'ld' chained node
/*252743*/                OPC_CheckFoldableChainNode,
/*252744*/                OPC_RecordChild1, // #2 = $src2
/*252745*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252747*/                OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->252779
/*252750*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*252752*/                  OPC_MoveParent,
/*252753*/                  OPC_MoveParent,
/*252754*/                  OPC_RecordChild1, // #3 = $src1
/*252755*/                  OPC_MoveParent,
/*252756*/                  OPC_RecordChild2, // #4 = $src0
/*252757*/                  OPC_CheckType, MVT::v8i32,
/*252759*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*252761*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252764*/                  OPC_EmitMergeInputChains1_1,
/*252765*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINUDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252779*/                /*SwitchType*/ 29, MVT::i64,// ->252810
/*252781*/                  OPC_CheckPredicate, 9, // Predicate_load
/*252783*/                  OPC_MoveParent,
/*252784*/                  OPC_MoveParent,
/*252785*/                  OPC_RecordChild1, // #3 = $src1
/*252786*/                  OPC_MoveParent,
/*252787*/                  OPC_RecordChild2, // #4 = $src0
/*252788*/                  OPC_CheckType, MVT::v8i64,
/*252790*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252792*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252795*/                  OPC_EmitMergeInputChains1_1,
/*252796*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPMINUQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252810*/                0, // EndSwitchType
/*252811*/              0, // EndSwitchOpcode
/*252812*/            /*Scope*/ 40, /*->252853*/
/*252813*/              OPC_RecordChild0, // #1 = $src1
/*252814*/              OPC_MoveChild1,
/*252815*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252818*/              OPC_RecordMemRef,
/*252819*/              OPC_RecordNode, // #2 = 'ld' chained node
/*252820*/              OPC_CheckFoldableChainNode,
/*252821*/              OPC_RecordChild1, // #3 = $src2
/*252822*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252824*/              OPC_CheckPredicate, 9, // Predicate_load
/*252826*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*252828*/              OPC_MoveParent,
/*252829*/              OPC_MoveParent,
/*252830*/              OPC_RecordChild2, // #4 = $src0
/*252831*/              OPC_CheckType, MVT::v8i64,
/*252833*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252835*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252838*/              OPC_EmitMergeInputChains1_2,
/*252839*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMINUQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252853*/            /*Scope*/ 40, /*->252894*/
/*252854*/              OPC_MoveChild0,
/*252855*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252858*/              OPC_RecordMemRef,
/*252859*/              OPC_RecordNode, // #1 = 'ld' chained node
/*252860*/              OPC_CheckFoldableChainNode,
/*252861*/              OPC_RecordChild1, // #2 = $src2
/*252862*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252864*/              OPC_CheckPredicate, 9, // Predicate_load
/*252866*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*252868*/              OPC_MoveParent,
/*252869*/              OPC_RecordChild1, // #3 = $src1
/*252870*/              OPC_MoveParent,
/*252871*/              OPC_RecordChild2, // #4 = $src0
/*252872*/              OPC_CheckType, MVT::v8i64,
/*252874*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252876*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252879*/              OPC_EmitMergeInputChains1_1,
/*252880*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPMINUQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252894*/            0, /*End of Scope*/
/*252895*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(ISD::AND),// ->253075
/*252899*/            OPC_Scope, 45, /*->252946*/ // 4 children in Scope
/*252901*/              OPC_RecordChild0, // #1 = $src1
/*252902*/              OPC_MoveChild1,
/*252903*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*252906*/              OPC_MoveChild0,
/*252907*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252910*/              OPC_RecordMemRef,
/*252911*/              OPC_RecordNode, // #2 = 'ld' chained node
/*252912*/              OPC_CheckFoldableChainNode,
/*252913*/              OPC_RecordChild1, // #3 = $src2
/*252914*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252916*/              OPC_CheckPredicate, 9, // Predicate_load
/*252918*/              OPC_CheckType, MVT::i64,
/*252920*/              OPC_MoveParent,
/*252921*/              OPC_MoveParent,
/*252922*/              OPC_MoveParent,
/*252923*/              OPC_RecordChild2, // #4 = $src0
/*252924*/              OPC_CheckType, MVT::v8i64,
/*252926*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252928*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252931*/              OPC_EmitMergeInputChains1_2,
/*252932*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPANDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252946*/            /*Scope*/ 45, /*->252992*/
/*252947*/              OPC_MoveChild0,
/*252948*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*252951*/              OPC_MoveChild0,
/*252952*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252955*/              OPC_RecordMemRef,
/*252956*/              OPC_RecordNode, // #1 = 'ld' chained node
/*252957*/              OPC_CheckFoldableChainNode,
/*252958*/              OPC_RecordChild1, // #2 = $src2
/*252959*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252961*/              OPC_CheckPredicate, 9, // Predicate_load
/*252963*/              OPC_CheckType, MVT::i64,
/*252965*/              OPC_MoveParent,
/*252966*/              OPC_MoveParent,
/*252967*/              OPC_RecordChild1, // #3 = $src1
/*252968*/              OPC_MoveParent,
/*252969*/              OPC_RecordChild2, // #4 = $src0
/*252970*/              OPC_CheckType, MVT::v8i64,
/*252972*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*252974*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*252977*/              OPC_EmitMergeInputChains1_1,
/*252978*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPANDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*252992*/            /*Scope*/ 40, /*->253033*/
/*252993*/              OPC_RecordChild0, // #1 = $src1
/*252994*/              OPC_MoveChild1,
/*252995*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252998*/              OPC_RecordMemRef,
/*252999*/              OPC_RecordNode, // #2 = 'ld' chained node
/*253000*/              OPC_CheckFoldableChainNode,
/*253001*/              OPC_RecordChild1, // #3 = $src2
/*253002*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253004*/              OPC_CheckPredicate, 9, // Predicate_load
/*253006*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*253008*/              OPC_MoveParent,
/*253009*/              OPC_MoveParent,
/*253010*/              OPC_RecordChild2, // #4 = $src0
/*253011*/              OPC_CheckType, MVT::v8i64,
/*253013*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253015*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253018*/              OPC_EmitMergeInputChains1_2,
/*253019*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253033*/            /*Scope*/ 40, /*->253074*/
/*253034*/              OPC_MoveChild0,
/*253035*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253038*/              OPC_RecordMemRef,
/*253039*/              OPC_RecordNode, // #1 = 'ld' chained node
/*253040*/              OPC_CheckFoldableChainNode,
/*253041*/              OPC_RecordChild1, // #2 = $src2
/*253042*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253044*/              OPC_CheckPredicate, 9, // Predicate_load
/*253046*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*253048*/              OPC_MoveParent,
/*253049*/              OPC_RecordChild1, // #3 = $src1
/*253050*/              OPC_MoveParent,
/*253051*/              OPC_RecordChild2, // #4 = $src0
/*253052*/              OPC_CheckType, MVT::v8i64,
/*253054*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253056*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253059*/              OPC_EmitMergeInputChains1_1,
/*253060*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253074*/            0, /*End of Scope*/
/*253075*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(ISD::OR),// ->253255
/*253079*/            OPC_Scope, 45, /*->253126*/ // 4 children in Scope
/*253081*/              OPC_RecordChild0, // #1 = $src1
/*253082*/              OPC_MoveChild1,
/*253083*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*253086*/              OPC_MoveChild0,
/*253087*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253090*/              OPC_RecordMemRef,
/*253091*/              OPC_RecordNode, // #2 = 'ld' chained node
/*253092*/              OPC_CheckFoldableChainNode,
/*253093*/              OPC_RecordChild1, // #3 = $src2
/*253094*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253096*/              OPC_CheckPredicate, 9, // Predicate_load
/*253098*/              OPC_CheckType, MVT::i64,
/*253100*/              OPC_MoveParent,
/*253101*/              OPC_MoveParent,
/*253102*/              OPC_MoveParent,
/*253103*/              OPC_RecordChild2, // #4 = $src0
/*253104*/              OPC_CheckType, MVT::v8i64,
/*253106*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253108*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253111*/              OPC_EmitMergeInputChains1_2,
/*253112*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPORQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253126*/            /*Scope*/ 45, /*->253172*/
/*253127*/              OPC_MoveChild0,
/*253128*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*253131*/              OPC_MoveChild0,
/*253132*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253135*/              OPC_RecordMemRef,
/*253136*/              OPC_RecordNode, // #1 = 'ld' chained node
/*253137*/              OPC_CheckFoldableChainNode,
/*253138*/              OPC_RecordChild1, // #2 = $src2
/*253139*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253141*/              OPC_CheckPredicate, 9, // Predicate_load
/*253143*/              OPC_CheckType, MVT::i64,
/*253145*/              OPC_MoveParent,
/*253146*/              OPC_MoveParent,
/*253147*/              OPC_RecordChild1, // #3 = $src1
/*253148*/              OPC_MoveParent,
/*253149*/              OPC_RecordChild2, // #4 = $src0
/*253150*/              OPC_CheckType, MVT::v8i64,
/*253152*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253154*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253157*/              OPC_EmitMergeInputChains1_1,
/*253158*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPORQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253172*/            /*Scope*/ 40, /*->253213*/
/*253173*/              OPC_RecordChild0, // #1 = $src1
/*253174*/              OPC_MoveChild1,
/*253175*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253178*/              OPC_RecordMemRef,
/*253179*/              OPC_RecordNode, // #2 = 'ld' chained node
/*253180*/              OPC_CheckFoldableChainNode,
/*253181*/              OPC_RecordChild1, // #3 = $src2
/*253182*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253184*/              OPC_CheckPredicate, 9, // Predicate_load
/*253186*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*253188*/              OPC_MoveParent,
/*253189*/              OPC_MoveParent,
/*253190*/              OPC_RecordChild2, // #4 = $src0
/*253191*/              OPC_CheckType, MVT::v8i64,
/*253193*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253195*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253198*/              OPC_EmitMergeInputChains1_2,
/*253199*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253213*/            /*Scope*/ 40, /*->253254*/
/*253214*/              OPC_MoveChild0,
/*253215*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253218*/              OPC_RecordMemRef,
/*253219*/              OPC_RecordNode, // #1 = 'ld' chained node
/*253220*/              OPC_CheckFoldableChainNode,
/*253221*/              OPC_RecordChild1, // #2 = $src2
/*253222*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253224*/              OPC_CheckPredicate, 9, // Predicate_load
/*253226*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*253228*/              OPC_MoveParent,
/*253229*/              OPC_RecordChild1, // #3 = $src1
/*253230*/              OPC_MoveParent,
/*253231*/              OPC_RecordChild2, // #4 = $src0
/*253232*/              OPC_CheckType, MVT::v8i64,
/*253234*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253236*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253239*/              OPC_EmitMergeInputChains1_1,
/*253240*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253254*/            0, /*End of Scope*/
/*253255*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(ISD::XOR),// ->253435
/*253259*/            OPC_Scope, 45, /*->253306*/ // 4 children in Scope
/*253261*/              OPC_RecordChild0, // #1 = $src1
/*253262*/              OPC_MoveChild1,
/*253263*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*253266*/              OPC_MoveChild0,
/*253267*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253270*/              OPC_RecordMemRef,
/*253271*/              OPC_RecordNode, // #2 = 'ld' chained node
/*253272*/              OPC_CheckFoldableChainNode,
/*253273*/              OPC_RecordChild1, // #3 = $src2
/*253274*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253276*/              OPC_CheckPredicate, 9, // Predicate_load
/*253278*/              OPC_CheckType, MVT::i64,
/*253280*/              OPC_MoveParent,
/*253281*/              OPC_MoveParent,
/*253282*/              OPC_MoveParent,
/*253283*/              OPC_RecordChild2, // #4 = $src0
/*253284*/              OPC_CheckType, MVT::v8i64,
/*253286*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253288*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253291*/              OPC_EmitMergeInputChains1_2,
/*253292*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPXORQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253306*/            /*Scope*/ 45, /*->253352*/
/*253307*/              OPC_MoveChild0,
/*253308*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*253311*/              OPC_MoveChild0,
/*253312*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253315*/              OPC_RecordMemRef,
/*253316*/              OPC_RecordNode, // #1 = 'ld' chained node
/*253317*/              OPC_CheckFoldableChainNode,
/*253318*/              OPC_RecordChild1, // #2 = $src2
/*253319*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253321*/              OPC_CheckPredicate, 9, // Predicate_load
/*253323*/              OPC_CheckType, MVT::i64,
/*253325*/              OPC_MoveParent,
/*253326*/              OPC_MoveParent,
/*253327*/              OPC_RecordChild1, // #3 = $src1
/*253328*/              OPC_MoveParent,
/*253329*/              OPC_RecordChild2, // #4 = $src0
/*253330*/              OPC_CheckType, MVT::v8i64,
/*253332*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253334*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253337*/              OPC_EmitMergeInputChains1_1,
/*253338*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPXORQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253352*/            /*Scope*/ 40, /*->253393*/
/*253353*/              OPC_RecordChild0, // #1 = $src1
/*253354*/              OPC_MoveChild1,
/*253355*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253358*/              OPC_RecordMemRef,
/*253359*/              OPC_RecordNode, // #2 = 'ld' chained node
/*253360*/              OPC_CheckFoldableChainNode,
/*253361*/              OPC_RecordChild1, // #3 = $src2
/*253362*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253364*/              OPC_CheckPredicate, 9, // Predicate_load
/*253366*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*253368*/              OPC_MoveParent,
/*253369*/              OPC_MoveParent,
/*253370*/              OPC_RecordChild2, // #4 = $src0
/*253371*/              OPC_CheckType, MVT::v8i64,
/*253373*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253375*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253378*/              OPC_EmitMergeInputChains1_2,
/*253379*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPXORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253393*/            /*Scope*/ 40, /*->253434*/
/*253394*/              OPC_MoveChild0,
/*253395*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253398*/              OPC_RecordMemRef,
/*253399*/              OPC_RecordNode, // #1 = 'ld' chained node
/*253400*/              OPC_CheckFoldableChainNode,
/*253401*/              OPC_RecordChild1, // #2 = $src2
/*253402*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253404*/              OPC_CheckPredicate, 9, // Predicate_load
/*253406*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*253408*/              OPC_MoveParent,
/*253409*/              OPC_RecordChild1, // #3 = $src1
/*253410*/              OPC_MoveParent,
/*253411*/              OPC_RecordChild2, // #4 = $src0
/*253412*/              OPC_CheckType, MVT::v8i64,
/*253414*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253416*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253419*/              OPC_EmitMergeInputChains1_1,
/*253420*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPXORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253434*/            0, /*End of Scope*/
/*253435*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::ANDNP),// ->253523
/*253438*/            OPC_RecordChild0, // #1 = $src1
/*253439*/            OPC_MoveChild1,
/*253440*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(X86ISD::VBROADCAST),// ->253484
/*253444*/              OPC_MoveChild0,
/*253445*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253448*/              OPC_RecordMemRef,
/*253449*/              OPC_RecordNode, // #2 = 'ld' chained node
/*253450*/              OPC_CheckFoldableChainNode,
/*253451*/              OPC_RecordChild1, // #3 = $src2
/*253452*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253454*/              OPC_CheckPredicate, 9, // Predicate_load
/*253456*/              OPC_CheckType, MVT::i64,
/*253458*/              OPC_MoveParent,
/*253459*/              OPC_MoveParent,
/*253460*/              OPC_MoveParent,
/*253461*/              OPC_RecordChild2, // #4 = $src0
/*253462*/              OPC_CheckType, MVT::v8i64,
/*253464*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253466*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253469*/              OPC_EmitMergeInputChains1_2,
/*253470*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPANDNQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253484*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->253522
/*253487*/              OPC_RecordMemRef,
/*253488*/              OPC_RecordNode, // #2 = 'ld' chained node
/*253489*/              OPC_CheckFoldableChainNode,
/*253490*/              OPC_RecordChild1, // #3 = $src2
/*253491*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253493*/              OPC_CheckPredicate, 9, // Predicate_load
/*253495*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*253497*/              OPC_MoveParent,
/*253498*/              OPC_MoveParent,
/*253499*/              OPC_RecordChild2, // #4 = $src0
/*253500*/              OPC_CheckType, MVT::v8i64,
/*253502*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253504*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253507*/              OPC_EmitMergeInputChains1_2,
/*253508*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPANDNQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253522*/            0, // EndSwitchOpcode
/*253523*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VSRLI),// ->253573
/*253526*/            OPC_MoveChild0,
/*253527*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253530*/            OPC_RecordMemRef,
/*253531*/            OPC_RecordNode, // #1 = 'ld' chained node
/*253532*/            OPC_CheckFoldableChainNode,
/*253533*/            OPC_RecordChild1, // #2 = $src1
/*253534*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253536*/            OPC_CheckPredicate, 9, // Predicate_load
/*253538*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*253540*/            OPC_MoveParent,
/*253541*/            OPC_RecordChild1, // #3 = $src2
/*253542*/            OPC_MoveChild1,
/*253543*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*253546*/            OPC_MoveParent,
/*253547*/            OPC_MoveParent,
/*253548*/            OPC_RecordChild2, // #4 = $src0
/*253549*/            OPC_CheckType, MVT::v8i64,
/*253551*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253553*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*253556*/            OPC_EmitMergeInputChains1_1,
/*253557*/            OPC_EmitConvertToTarget, 3,
/*253559*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VPSRLQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*253573*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VSHLI),// ->253623
/*253576*/            OPC_MoveChild0,
/*253577*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253580*/            OPC_RecordMemRef,
/*253581*/            OPC_RecordNode, // #1 = 'ld' chained node
/*253582*/            OPC_CheckFoldableChainNode,
/*253583*/            OPC_RecordChild1, // #2 = $src1
/*253584*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253586*/            OPC_CheckPredicate, 9, // Predicate_load
/*253588*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*253590*/            OPC_MoveParent,
/*253591*/            OPC_RecordChild1, // #3 = $src2
/*253592*/            OPC_MoveChild1,
/*253593*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*253596*/            OPC_MoveParent,
/*253597*/            OPC_MoveParent,
/*253598*/            OPC_RecordChild2, // #4 = $src0
/*253599*/            OPC_CheckType, MVT::v8i64,
/*253601*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253603*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*253606*/            OPC_EmitMergeInputChains1_1,
/*253607*/            OPC_EmitConvertToTarget, 3,
/*253609*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VPSLLQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*253623*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VSRAI),// ->253673
/*253626*/            OPC_MoveChild0,
/*253627*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253630*/            OPC_RecordMemRef,
/*253631*/            OPC_RecordNode, // #1 = 'ld' chained node
/*253632*/            OPC_CheckFoldableChainNode,
/*253633*/            OPC_RecordChild1, // #2 = $src1
/*253634*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253636*/            OPC_CheckPredicate, 9, // Predicate_load
/*253638*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*253640*/            OPC_MoveParent,
/*253641*/            OPC_RecordChild1, // #3 = $src2
/*253642*/            OPC_MoveChild1,
/*253643*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*253646*/            OPC_MoveParent,
/*253647*/            OPC_MoveParent,
/*253648*/            OPC_RecordChild2, // #4 = $src0
/*253649*/            OPC_CheckType, MVT::v8i64,
/*253651*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253653*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*253656*/            OPC_EmitMergeInputChains1_1,
/*253657*/            OPC_EmitConvertToTarget, 3,
/*253659*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VPSRAQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*253673*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VROTRI),// ->253723
/*253676*/            OPC_MoveChild0,
/*253677*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253680*/            OPC_RecordMemRef,
/*253681*/            OPC_RecordNode, // #1 = 'ld' chained node
/*253682*/            OPC_CheckFoldableChainNode,
/*253683*/            OPC_RecordChild1, // #2 = $src1
/*253684*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253686*/            OPC_CheckPredicate, 9, // Predicate_load
/*253688*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*253690*/            OPC_MoveParent,
/*253691*/            OPC_RecordChild1, // #3 = $src2
/*253692*/            OPC_MoveChild1,
/*253693*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*253696*/            OPC_MoveParent,
/*253697*/            OPC_MoveParent,
/*253698*/            OPC_RecordChild2, // #4 = $src0
/*253699*/            OPC_CheckType, MVT::v8i64,
/*253701*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253703*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*253706*/            OPC_EmitMergeInputChains1_1,
/*253707*/            OPC_EmitConvertToTarget, 3,
/*253709*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VPRORQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*253723*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VROTLI),// ->253773
/*253726*/            OPC_MoveChild0,
/*253727*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253730*/            OPC_RecordMemRef,
/*253731*/            OPC_RecordNode, // #1 = 'ld' chained node
/*253732*/            OPC_CheckFoldableChainNode,
/*253733*/            OPC_RecordChild1, // #2 = $src1
/*253734*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253736*/            OPC_CheckPredicate, 9, // Predicate_load
/*253738*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*253740*/            OPC_MoveParent,
/*253741*/            OPC_RecordChild1, // #3 = $src2
/*253742*/            OPC_MoveChild1,
/*253743*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*253746*/            OPC_MoveParent,
/*253747*/            OPC_MoveParent,
/*253748*/            OPC_RecordChild2, // #4 = $src0
/*253749*/            OPC_CheckType, MVT::v8i64,
/*253751*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253753*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*253756*/            OPC_EmitMergeInputChains1_1,
/*253757*/            OPC_EmitConvertToTarget, 3,
/*253759*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VPROLQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*253773*/          /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::VSHL),// ->253891
/*253776*/            OPC_RecordChild0, // #1 = $src1
/*253777*/            OPC_MoveChild1,
/*253778*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->253826
/*253782*/              OPC_MoveChild0,
/*253783*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253786*/              OPC_RecordMemRef,
/*253787*/              OPC_RecordNode, // #2 = 'ld' chained node
/*253788*/              OPC_CheckFoldableChainNode,
/*253789*/              OPC_RecordChild1, // #3 = $src2
/*253790*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253792*/              OPC_CheckPredicate, 9, // Predicate_load
/*253794*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*253796*/              OPC_CheckType, MVT::v2i64,
/*253798*/              OPC_MoveParent,
/*253799*/              OPC_CheckType, MVT::v4i32,
/*253801*/              OPC_MoveParent,
/*253802*/              OPC_MoveParent,
/*253803*/              OPC_RecordChild2, // #4 = $src0
/*253804*/              OPC_CheckType, MVT::v8i32,
/*253806*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*253808*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253811*/              OPC_EmitMergeInputChains1_2,
/*253812*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VPSLLDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253826*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->253890
/*253829*/              OPC_RecordMemRef,
/*253830*/              OPC_RecordNode, // #2 = 'ld' chained node
/*253831*/              OPC_CheckFoldableChainNode,
/*253832*/              OPC_RecordChild1, // #3 = $src2
/*253833*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253835*/              OPC_CheckPredicate, 9, // Predicate_load
/*253837*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*253839*/              OPC_CheckType, MVT::v2i64,
/*253841*/              OPC_MoveParent,
/*253842*/              OPC_MoveParent,
/*253843*/              OPC_RecordChild2, // #4 = $src0
/*253844*/              OPC_SwitchType /*2 cases */, 20, MVT::v8i64,// ->253867
/*253847*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253849*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253852*/                OPC_EmitMergeInputChains1_2,
/*253853*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPSLLQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253867*/              /*SwitchType*/ 20, MVT::v8i16,// ->253889
/*253869*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*253871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253874*/                OPC_EmitMergeInputChains1_2,
/*253875*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPSLLWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253889*/              0, // EndSwitchType
/*253890*/            0, // EndSwitchOpcode
/*253891*/          /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::VSRA),// ->254009
/*253894*/            OPC_RecordChild0, // #1 = $src1
/*253895*/            OPC_MoveChild1,
/*253896*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->253944
/*253900*/              OPC_MoveChild0,
/*253901*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253904*/              OPC_RecordMemRef,
/*253905*/              OPC_RecordNode, // #2 = 'ld' chained node
/*253906*/              OPC_CheckFoldableChainNode,
/*253907*/              OPC_RecordChild1, // #3 = $src2
/*253908*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253910*/              OPC_CheckPredicate, 9, // Predicate_load
/*253912*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*253914*/              OPC_CheckType, MVT::v2i64,
/*253916*/              OPC_MoveParent,
/*253917*/              OPC_CheckType, MVT::v4i32,
/*253919*/              OPC_MoveParent,
/*253920*/              OPC_MoveParent,
/*253921*/              OPC_RecordChild2, // #4 = $src0
/*253922*/              OPC_CheckType, MVT::v8i32,
/*253924*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*253926*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253929*/              OPC_EmitMergeInputChains1_2,
/*253930*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRADZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253944*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->254008
/*253947*/              OPC_RecordMemRef,
/*253948*/              OPC_RecordNode, // #2 = 'ld' chained node
/*253949*/              OPC_CheckFoldableChainNode,
/*253950*/              OPC_RecordChild1, // #3 = $src2
/*253951*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253953*/              OPC_CheckPredicate, 9, // Predicate_load
/*253955*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*253957*/              OPC_CheckType, MVT::v2i64,
/*253959*/              OPC_MoveParent,
/*253960*/              OPC_MoveParent,
/*253961*/              OPC_RecordChild2, // #4 = $src0
/*253962*/              OPC_SwitchType /*2 cases */, 20, MVT::v8i64,// ->253985
/*253965*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*253967*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253970*/                OPC_EmitMergeInputChains1_2,
/*253971*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRAQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253985*/              /*SwitchType*/ 20, MVT::v8i16,// ->254007
/*253987*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*253989*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253992*/                OPC_EmitMergeInputChains1_2,
/*253993*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPSRAWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254007*/              0, // EndSwitchType
/*254008*/            0, // EndSwitchOpcode
/*254009*/          /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::VSRL),// ->254127
/*254012*/            OPC_RecordChild0, // #1 = $src1
/*254013*/            OPC_MoveChild1,
/*254014*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->254062
/*254018*/              OPC_MoveChild0,
/*254019*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254022*/              OPC_RecordMemRef,
/*254023*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254024*/              OPC_CheckFoldableChainNode,
/*254025*/              OPC_RecordChild1, // #3 = $src2
/*254026*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254028*/              OPC_CheckPredicate, 9, // Predicate_load
/*254030*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*254032*/              OPC_CheckType, MVT::v2i64,
/*254034*/              OPC_MoveParent,
/*254035*/              OPC_CheckType, MVT::v4i32,
/*254037*/              OPC_MoveParent,
/*254038*/              OPC_MoveParent,
/*254039*/              OPC_RecordChild2, // #4 = $src0
/*254040*/              OPC_CheckType, MVT::v8i32,
/*254042*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254044*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254047*/              OPC_EmitMergeInputChains1_2,
/*254048*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRLDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254062*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->254126
/*254065*/              OPC_RecordMemRef,
/*254066*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254067*/              OPC_CheckFoldableChainNode,
/*254068*/              OPC_RecordChild1, // #3 = $src2
/*254069*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254071*/              OPC_CheckPredicate, 9, // Predicate_load
/*254073*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*254075*/              OPC_CheckType, MVT::v2i64,
/*254077*/              OPC_MoveParent,
/*254078*/              OPC_MoveParent,
/*254079*/              OPC_RecordChild2, // #4 = $src0
/*254080*/              OPC_SwitchType /*2 cases */, 20, MVT::v8i64,// ->254103
/*254083*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*254085*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254088*/                OPC_EmitMergeInputChains1_2,
/*254089*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRLQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254103*/              /*SwitchType*/ 20, MVT::v8i16,// ->254125
/*254105*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*254107*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254110*/                OPC_EmitMergeInputChains1_2,
/*254111*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPSRLWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254125*/              0, // EndSwitchType
/*254126*/            0, // EndSwitchOpcode
/*254127*/          /*SwitchOpcode*/ 74|128,1/*202*/, TARGET_VAL(ISD::SHL),// ->254333
/*254131*/            OPC_RecordChild0, // #1 = $src1
/*254132*/            OPC_MoveChild1,
/*254133*/            OPC_SwitchOpcode /*3 cases */, 76, TARGET_VAL(ISD::BITCAST),// ->254213
/*254137*/              OPC_MoveChild0,
/*254138*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254141*/              OPC_RecordMemRef,
/*254142*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254143*/              OPC_CheckFoldableChainNode,
/*254144*/              OPC_RecordChild1, // #3 = $src2
/*254145*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254147*/              OPC_CheckPredicate, 9, // Predicate_load
/*254149*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*254151*/              OPC_SwitchType /*2 cases */, 28, MVT::v4i64,// ->254182
/*254154*/                OPC_MoveParent,
/*254155*/                OPC_CheckType, MVT::v8i32,
/*254157*/                OPC_MoveParent,
/*254158*/                OPC_MoveParent,
/*254159*/                OPC_RecordChild2, // #4 = $src0
/*254160*/                OPC_CheckType, MVT::v8i32,
/*254162*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254164*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254167*/                OPC_EmitMergeInputChains1_2,
/*254168*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSLLVDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254182*/              /*SwitchType*/ 28, MVT::v2i64,// ->254212
/*254184*/                OPC_MoveParent,
/*254185*/                OPC_CheckType, MVT::v8i16,
/*254187*/                OPC_MoveParent,
/*254188*/                OPC_MoveParent,
/*254189*/                OPC_RecordChild2, // #4 = $src0
/*254190*/                OPC_CheckType, MVT::v8i16,
/*254192*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*254194*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254197*/                OPC_EmitMergeInputChains1_2,
/*254198*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPSLLVWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254212*/              0, // EndSwitchType
/*254213*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->254292
/*254216*/              OPC_MoveChild0,
/*254217*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254220*/              OPC_RecordMemRef,
/*254221*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254222*/              OPC_CheckFoldableChainNode,
/*254223*/              OPC_RecordChild1, // #3 = $src2
/*254224*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254226*/              OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->254259
/*254229*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*254231*/                OPC_MoveParent,
/*254232*/                OPC_CheckType, MVT::v8i32,
/*254234*/                OPC_MoveParent,
/*254235*/                OPC_MoveParent,
/*254236*/                OPC_RecordChild2, // #4 = $src0
/*254237*/                OPC_CheckType, MVT::v8i32,
/*254239*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254241*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254244*/                OPC_EmitMergeInputChains1_2,
/*254245*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSLLVDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254259*/              /*SwitchType*/ 30, MVT::i64,// ->254291
/*254261*/                OPC_CheckPredicate, 9, // Predicate_load
/*254263*/                OPC_MoveParent,
/*254264*/                OPC_CheckType, MVT::v8i64,
/*254266*/                OPC_MoveParent,
/*254267*/                OPC_MoveParent,
/*254268*/                OPC_RecordChild2, // #4 = $src0
/*254269*/                OPC_CheckType, MVT::v8i64,
/*254271*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*254273*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254276*/                OPC_EmitMergeInputChains1_2,
/*254277*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSLLVQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254291*/              0, // EndSwitchType
/*254292*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->254332
/*254295*/              OPC_RecordMemRef,
/*254296*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254297*/              OPC_CheckFoldableChainNode,
/*254298*/              OPC_RecordChild1, // #3 = $src2
/*254299*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254301*/              OPC_CheckPredicate, 9, // Predicate_load
/*254303*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*254305*/              OPC_CheckType, MVT::v8i64,
/*254307*/              OPC_MoveParent,
/*254308*/              OPC_MoveParent,
/*254309*/              OPC_RecordChild2, // #4 = $src0
/*254310*/              OPC_CheckType, MVT::v8i64,
/*254312*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*254314*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254317*/              OPC_EmitMergeInputChains1_2,
/*254318*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPSLLVQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254332*/            0, // EndSwitchOpcode
/*254333*/          /*SwitchOpcode*/ 74|128,1/*202*/, TARGET_VAL(ISD::SRA),// ->254539
/*254337*/            OPC_RecordChild0, // #1 = $src1
/*254338*/            OPC_MoveChild1,
/*254339*/            OPC_SwitchOpcode /*3 cases */, 76, TARGET_VAL(ISD::BITCAST),// ->254419
/*254343*/              OPC_MoveChild0,
/*254344*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254347*/              OPC_RecordMemRef,
/*254348*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254349*/              OPC_CheckFoldableChainNode,
/*254350*/              OPC_RecordChild1, // #3 = $src2
/*254351*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254353*/              OPC_CheckPredicate, 9, // Predicate_load
/*254355*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*254357*/              OPC_SwitchType /*2 cases */, 28, MVT::v4i64,// ->254388
/*254360*/                OPC_MoveParent,
/*254361*/                OPC_CheckType, MVT::v8i32,
/*254363*/                OPC_MoveParent,
/*254364*/                OPC_MoveParent,
/*254365*/                OPC_RecordChild2, // #4 = $src0
/*254366*/                OPC_CheckType, MVT::v8i32,
/*254368*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254370*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254373*/                OPC_EmitMergeInputChains1_2,
/*254374*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254388*/              /*SwitchType*/ 28, MVT::v2i64,// ->254418
/*254390*/                OPC_MoveParent,
/*254391*/                OPC_CheckType, MVT::v8i16,
/*254393*/                OPC_MoveParent,
/*254394*/                OPC_MoveParent,
/*254395*/                OPC_RecordChild2, // #4 = $src0
/*254396*/                OPC_CheckType, MVT::v8i16,
/*254398*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*254400*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254403*/                OPC_EmitMergeInputChains1_2,
/*254404*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254418*/              0, // EndSwitchType
/*254419*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->254498
/*254422*/              OPC_MoveChild0,
/*254423*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254426*/              OPC_RecordMemRef,
/*254427*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254428*/              OPC_CheckFoldableChainNode,
/*254429*/              OPC_RecordChild1, // #3 = $src2
/*254430*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254432*/              OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->254465
/*254435*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*254437*/                OPC_MoveParent,
/*254438*/                OPC_CheckType, MVT::v8i32,
/*254440*/                OPC_MoveParent,
/*254441*/                OPC_MoveParent,
/*254442*/                OPC_RecordChild2, // #4 = $src0
/*254443*/                OPC_CheckType, MVT::v8i32,
/*254445*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254447*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254450*/                OPC_EmitMergeInputChains1_2,
/*254451*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254465*/              /*SwitchType*/ 30, MVT::i64,// ->254497
/*254467*/                OPC_CheckPredicate, 9, // Predicate_load
/*254469*/                OPC_MoveParent,
/*254470*/                OPC_CheckType, MVT::v8i64,
/*254472*/                OPC_MoveParent,
/*254473*/                OPC_MoveParent,
/*254474*/                OPC_RecordChild2, // #4 = $src0
/*254475*/                OPC_CheckType, MVT::v8i64,
/*254477*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*254479*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254482*/                OPC_EmitMergeInputChains1_2,
/*254483*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254497*/              0, // EndSwitchType
/*254498*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->254538
/*254501*/              OPC_RecordMemRef,
/*254502*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254503*/              OPC_CheckFoldableChainNode,
/*254504*/              OPC_RecordChild1, // #3 = $src2
/*254505*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254507*/              OPC_CheckPredicate, 9, // Predicate_load
/*254509*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*254511*/              OPC_CheckType, MVT::v8i64,
/*254513*/              OPC_MoveParent,
/*254514*/              OPC_MoveParent,
/*254515*/              OPC_RecordChild2, // #4 = $src0
/*254516*/              OPC_CheckType, MVT::v8i64,
/*254518*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*254520*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254523*/              OPC_EmitMergeInputChains1_2,
/*254524*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRAVQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254538*/            0, // EndSwitchOpcode
/*254539*/          /*SwitchOpcode*/ 74|128,1/*202*/, TARGET_VAL(ISD::SRL),// ->254745
/*254543*/            OPC_RecordChild0, // #1 = $src1
/*254544*/            OPC_MoveChild1,
/*254545*/            OPC_SwitchOpcode /*3 cases */, 76, TARGET_VAL(ISD::BITCAST),// ->254625
/*254549*/              OPC_MoveChild0,
/*254550*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254553*/              OPC_RecordMemRef,
/*254554*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254555*/              OPC_CheckFoldableChainNode,
/*254556*/              OPC_RecordChild1, // #3 = $src2
/*254557*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254559*/              OPC_CheckPredicate, 9, // Predicate_load
/*254561*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*254563*/              OPC_SwitchType /*2 cases */, 28, MVT::v4i64,// ->254594
/*254566*/                OPC_MoveParent,
/*254567*/                OPC_CheckType, MVT::v8i32,
/*254569*/                OPC_MoveParent,
/*254570*/                OPC_MoveParent,
/*254571*/                OPC_RecordChild2, // #4 = $src0
/*254572*/                OPC_CheckType, MVT::v8i32,
/*254574*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254576*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254579*/                OPC_EmitMergeInputChains1_2,
/*254580*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRLVDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254594*/              /*SwitchType*/ 28, MVT::v2i64,// ->254624
/*254596*/                OPC_MoveParent,
/*254597*/                OPC_CheckType, MVT::v8i16,
/*254599*/                OPC_MoveParent,
/*254600*/                OPC_MoveParent,
/*254601*/                OPC_RecordChild2, // #4 = $src0
/*254602*/                OPC_CheckType, MVT::v8i16,
/*254604*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*254606*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254609*/                OPC_EmitMergeInputChains1_2,
/*254610*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPSRLVWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254624*/              0, // EndSwitchType
/*254625*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->254704
/*254628*/              OPC_MoveChild0,
/*254629*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254632*/              OPC_RecordMemRef,
/*254633*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254634*/              OPC_CheckFoldableChainNode,
/*254635*/              OPC_RecordChild1, // #3 = $src2
/*254636*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254638*/              OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->254671
/*254641*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*254643*/                OPC_MoveParent,
/*254644*/                OPC_CheckType, MVT::v8i32,
/*254646*/                OPC_MoveParent,
/*254647*/                OPC_MoveParent,
/*254648*/                OPC_RecordChild2, // #4 = $src0
/*254649*/                OPC_CheckType, MVT::v8i32,
/*254651*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254653*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254656*/                OPC_EmitMergeInputChains1_2,
/*254657*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRLVDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254671*/              /*SwitchType*/ 30, MVT::i64,// ->254703
/*254673*/                OPC_CheckPredicate, 9, // Predicate_load
/*254675*/                OPC_MoveParent,
/*254676*/                OPC_CheckType, MVT::v8i64,
/*254678*/                OPC_MoveParent,
/*254679*/                OPC_MoveParent,
/*254680*/                OPC_RecordChild2, // #4 = $src0
/*254681*/                OPC_CheckType, MVT::v8i64,
/*254683*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*254685*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254688*/                OPC_EmitMergeInputChains1_2,
/*254689*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRLVQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254703*/              0, // EndSwitchType
/*254704*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->254744
/*254707*/              OPC_RecordMemRef,
/*254708*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254709*/              OPC_CheckFoldableChainNode,
/*254710*/              OPC_RecordChild1, // #3 = $src2
/*254711*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254713*/              OPC_CheckPredicate, 9, // Predicate_load
/*254715*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*254717*/              OPC_CheckType, MVT::v8i64,
/*254719*/              OPC_MoveParent,
/*254720*/              OPC_MoveParent,
/*254721*/              OPC_RecordChild2, // #4 = $src0
/*254722*/              OPC_CheckType, MVT::v8i64,
/*254724*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*254726*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254729*/              OPC_EmitMergeInputChains1_2,
/*254730*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRLVQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254744*/            0, // EndSwitchOpcode
/*254745*/          /*SwitchOpcode*/ 42|128,1/*170*/, TARGET_VAL(ISD::ROTR),// ->254919
/*254749*/            OPC_RecordChild0, // #1 = $src1
/*254750*/            OPC_MoveChild1,
/*254751*/            OPC_SwitchOpcode /*3 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->254799
/*254755*/              OPC_MoveChild0,
/*254756*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254759*/              OPC_RecordMemRef,
/*254760*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254761*/              OPC_CheckFoldableChainNode,
/*254762*/              OPC_RecordChild1, // #3 = $src2
/*254763*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254765*/              OPC_CheckPredicate, 9, // Predicate_load
/*254767*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*254769*/              OPC_CheckType, MVT::v4i64,
/*254771*/              OPC_MoveParent,
/*254772*/              OPC_CheckType, MVT::v8i32,
/*254774*/              OPC_MoveParent,
/*254775*/              OPC_MoveParent,
/*254776*/              OPC_RecordChild2, // #4 = $src0
/*254777*/              OPC_CheckType, MVT::v8i32,
/*254779*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254781*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254784*/              OPC_EmitMergeInputChains1_2,
/*254785*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VPRORVDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254799*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->254878
/*254802*/              OPC_MoveChild0,
/*254803*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254806*/              OPC_RecordMemRef,
/*254807*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254808*/              OPC_CheckFoldableChainNode,
/*254809*/              OPC_RecordChild1, // #3 = $src2
/*254810*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254812*/              OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->254845
/*254815*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*254817*/                OPC_MoveParent,
/*254818*/                OPC_CheckType, MVT::v8i32,
/*254820*/                OPC_MoveParent,
/*254821*/                OPC_MoveParent,
/*254822*/                OPC_RecordChild2, // #4 = $src0
/*254823*/                OPC_CheckType, MVT::v8i32,
/*254825*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254827*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254830*/                OPC_EmitMergeInputChains1_2,
/*254831*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPRORVDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254845*/              /*SwitchType*/ 30, MVT::i64,// ->254877
/*254847*/                OPC_CheckPredicate, 9, // Predicate_load
/*254849*/                OPC_MoveParent,
/*254850*/                OPC_CheckType, MVT::v8i64,
/*254852*/                OPC_MoveParent,
/*254853*/                OPC_MoveParent,
/*254854*/                OPC_RecordChild2, // #4 = $src0
/*254855*/                OPC_CheckType, MVT::v8i64,
/*254857*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*254859*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254862*/                OPC_EmitMergeInputChains1_2,
/*254863*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPRORVQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254877*/              0, // EndSwitchType
/*254878*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->254918
/*254881*/              OPC_RecordMemRef,
/*254882*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254883*/              OPC_CheckFoldableChainNode,
/*254884*/              OPC_RecordChild1, // #3 = $src2
/*254885*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254887*/              OPC_CheckPredicate, 9, // Predicate_load
/*254889*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*254891*/              OPC_CheckType, MVT::v8i64,
/*254893*/              OPC_MoveParent,
/*254894*/              OPC_MoveParent,
/*254895*/              OPC_RecordChild2, // #4 = $src0
/*254896*/              OPC_CheckType, MVT::v8i64,
/*254898*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*254900*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254903*/              OPC_EmitMergeInputChains1_2,
/*254904*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPRORVQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254918*/            0, // EndSwitchOpcode
/*254919*/          /*SwitchOpcode*/ 42|128,1/*170*/, TARGET_VAL(ISD::ROTL),// ->255093
/*254923*/            OPC_RecordChild0, // #1 = $src1
/*254924*/            OPC_MoveChild1,
/*254925*/            OPC_SwitchOpcode /*3 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->254973
/*254929*/              OPC_MoveChild0,
/*254930*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254933*/              OPC_RecordMemRef,
/*254934*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254935*/              OPC_CheckFoldableChainNode,
/*254936*/              OPC_RecordChild1, // #3 = $src2
/*254937*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254939*/              OPC_CheckPredicate, 9, // Predicate_load
/*254941*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*254943*/              OPC_CheckType, MVT::v4i64,
/*254945*/              OPC_MoveParent,
/*254946*/              OPC_CheckType, MVT::v8i32,
/*254948*/              OPC_MoveParent,
/*254949*/              OPC_MoveParent,
/*254950*/              OPC_RecordChild2, // #4 = $src0
/*254951*/              OPC_CheckType, MVT::v8i32,
/*254953*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254955*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254958*/              OPC_EmitMergeInputChains1_2,
/*254959*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VPROLVDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254973*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->255052
/*254976*/              OPC_MoveChild0,
/*254977*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254980*/              OPC_RecordMemRef,
/*254981*/              OPC_RecordNode, // #2 = 'ld' chained node
/*254982*/              OPC_CheckFoldableChainNode,
/*254983*/              OPC_RecordChild1, // #3 = $src2
/*254984*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254986*/              OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->255019
/*254989*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*254991*/                OPC_MoveParent,
/*254992*/                OPC_CheckType, MVT::v8i32,
/*254994*/                OPC_MoveParent,
/*254995*/                OPC_MoveParent,
/*254996*/                OPC_RecordChild2, // #4 = $src0
/*254997*/                OPC_CheckType, MVT::v8i32,
/*254999*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255001*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255004*/                OPC_EmitMergeInputChains1_2,
/*255005*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPROLVDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255019*/              /*SwitchType*/ 30, MVT::i64,// ->255051
/*255021*/                OPC_CheckPredicate, 9, // Predicate_load
/*255023*/                OPC_MoveParent,
/*255024*/                OPC_CheckType, MVT::v8i64,
/*255026*/                OPC_MoveParent,
/*255027*/                OPC_MoveParent,
/*255028*/                OPC_RecordChild2, // #4 = $src0
/*255029*/                OPC_CheckType, MVT::v8i64,
/*255031*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*255033*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255036*/                OPC_EmitMergeInputChains1_2,
/*255037*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPROLVQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255051*/              0, // EndSwitchType
/*255052*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->255092
/*255055*/              OPC_RecordMemRef,
/*255056*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255057*/              OPC_CheckFoldableChainNode,
/*255058*/              OPC_RecordChild1, // #3 = $src2
/*255059*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255061*/              OPC_CheckPredicate, 9, // Predicate_load
/*255063*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*255065*/              OPC_CheckType, MVT::v8i64,
/*255067*/              OPC_MoveParent,
/*255068*/              OPC_MoveParent,
/*255069*/              OPC_RecordChild2, // #4 = $src0
/*255070*/              OPC_CheckType, MVT::v8i64,
/*255072*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*255074*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255077*/              OPC_EmitMergeInputChains1_2,
/*255078*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPROLVQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255092*/            0, // EndSwitchOpcode
/*255093*/          /*SwitchOpcode*/ 64|128,1/*192*/, TARGET_VAL(X86ISD::VSRAV),// ->255289
/*255097*/            OPC_RecordChild0, // #1 = $src1
/*255098*/            OPC_MoveChild1,
/*255099*/            OPC_SwitchOpcode /*3 cases */, 72, TARGET_VAL(ISD::BITCAST),// ->255175
/*255103*/              OPC_MoveChild0,
/*255104*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255107*/              OPC_RecordMemRef,
/*255108*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255109*/              OPC_CheckFoldableChainNode,
/*255110*/              OPC_RecordChild1, // #3 = $src2
/*255111*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255113*/              OPC_CheckPredicate, 9, // Predicate_load
/*255115*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*255117*/              OPC_SwitchType /*2 cases */, 26, MVT::v2i64,// ->255146
/*255120*/                OPC_MoveParent,
/*255121*/                OPC_MoveParent,
/*255122*/                OPC_MoveParent,
/*255123*/                OPC_RecordChild2, // #4 = $src0
/*255124*/                OPC_CheckType, MVT::v8i16,
/*255126*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*255128*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255131*/                OPC_EmitMergeInputChains1_2,
/*255132*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255146*/              /*SwitchType*/ 26, MVT::v4i64,// ->255174
/*255148*/                OPC_MoveParent,
/*255149*/                OPC_MoveParent,
/*255150*/                OPC_MoveParent,
/*255151*/                OPC_RecordChild2, // #4 = $src0
/*255152*/                OPC_CheckType, MVT::v8i32,
/*255154*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*255156*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255159*/                OPC_EmitMergeInputChains1_2,
/*255160*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255174*/              0, // EndSwitchType
/*255175*/            /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->255250
/*255178*/              OPC_MoveChild0,
/*255179*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255182*/              OPC_RecordMemRef,
/*255183*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255184*/              OPC_CheckFoldableChainNode,
/*255185*/              OPC_RecordChild1, // #3 = $src2
/*255186*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255188*/              OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->255219
/*255191*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*255193*/                OPC_MoveParent,
/*255194*/                OPC_MoveParent,
/*255195*/                OPC_MoveParent,
/*255196*/                OPC_RecordChild2, // #4 = $src0
/*255197*/                OPC_CheckType, MVT::v8i32,
/*255199*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*255201*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255204*/                OPC_EmitMergeInputChains1_2,
/*255205*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255219*/              /*SwitchType*/ 28, MVT::i64,// ->255249
/*255221*/                OPC_CheckPredicate, 9, // Predicate_load
/*255223*/                OPC_MoveParent,
/*255224*/                OPC_MoveParent,
/*255225*/                OPC_MoveParent,
/*255226*/                OPC_RecordChild2, // #4 = $src0
/*255227*/                OPC_CheckType, MVT::v8i64,
/*255229*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*255231*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255234*/                OPC_EmitMergeInputChains1_2,
/*255235*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255249*/              0, // EndSwitchType
/*255250*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->255288
/*255253*/              OPC_RecordMemRef,
/*255254*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255255*/              OPC_CheckFoldableChainNode,
/*255256*/              OPC_RecordChild1, // #3 = $src2
/*255257*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255259*/              OPC_CheckPredicate, 9, // Predicate_load
/*255261*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*255263*/              OPC_MoveParent,
/*255264*/              OPC_MoveParent,
/*255265*/              OPC_RecordChild2, // #4 = $src0
/*255266*/              OPC_CheckType, MVT::v8i64,
/*255268*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*255270*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255273*/              OPC_EmitMergeInputChains1_2,
/*255274*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRAVQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255288*/            0, // EndSwitchOpcode
/*255289*/          /*SwitchOpcode*/ 64|128,1/*192*/, TARGET_VAL(X86ISD::VPERMV),// ->255485
/*255293*/            OPC_RecordChild0, // #1 = $src1
/*255294*/            OPC_MoveChild1,
/*255295*/            OPC_SwitchOpcode /*3 cases */, 72, TARGET_VAL(ISD::BITCAST),// ->255371
/*255299*/              OPC_MoveChild0,
/*255300*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255303*/              OPC_RecordMemRef,
/*255304*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255305*/              OPC_CheckFoldableChainNode,
/*255306*/              OPC_RecordChild1, // #3 = $src2
/*255307*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255309*/              OPC_CheckPredicate, 9, // Predicate_load
/*255311*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*255313*/              OPC_SwitchType /*2 cases */, 26, MVT::v2i64,// ->255342
/*255316*/                OPC_MoveParent,
/*255317*/                OPC_MoveParent,
/*255318*/                OPC_MoveParent,
/*255319*/                OPC_RecordChild2, // #4 = $src0
/*255320*/                OPC_CheckType, MVT::v8i16,
/*255322*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*255324*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255327*/                OPC_EmitMergeInputChains1_2,
/*255328*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPERMWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255342*/              /*SwitchType*/ 26, MVT::v4i64,// ->255370
/*255344*/                OPC_MoveParent,
/*255345*/                OPC_MoveParent,
/*255346*/                OPC_MoveParent,
/*255347*/                OPC_RecordChild2, // #4 = $src0
/*255348*/                OPC_CheckType, MVT::v8i32,
/*255350*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255352*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255355*/                OPC_EmitMergeInputChains1_2,
/*255356*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPERMDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255370*/              0, // EndSwitchType
/*255371*/            /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->255446
/*255374*/              OPC_MoveChild0,
/*255375*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255378*/              OPC_RecordMemRef,
/*255379*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255380*/              OPC_CheckFoldableChainNode,
/*255381*/              OPC_RecordChild1, // #3 = $src2
/*255382*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255384*/              OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->255415
/*255387*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*255389*/                OPC_MoveParent,
/*255390*/                OPC_MoveParent,
/*255391*/                OPC_MoveParent,
/*255392*/                OPC_RecordChild2, // #4 = $src0
/*255393*/                OPC_CheckType, MVT::v8i32,
/*255395*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255397*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255400*/                OPC_EmitMergeInputChains1_2,
/*255401*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPERMDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255415*/              /*SwitchType*/ 28, MVT::i64,// ->255445
/*255417*/                OPC_CheckPredicate, 9, // Predicate_load
/*255419*/                OPC_MoveParent,
/*255420*/                OPC_MoveParent,
/*255421*/                OPC_MoveParent,
/*255422*/                OPC_RecordChild2, // #4 = $src0
/*255423*/                OPC_CheckType, MVT::v8i64,
/*255425*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*255427*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255430*/                OPC_EmitMergeInputChains1_2,
/*255431*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPERMQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255445*/              0, // EndSwitchType
/*255446*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->255484
/*255449*/              OPC_RecordMemRef,
/*255450*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255451*/              OPC_CheckFoldableChainNode,
/*255452*/              OPC_RecordChild1, // #3 = $src2
/*255453*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255455*/              OPC_CheckPredicate, 9, // Predicate_load
/*255457*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*255459*/              OPC_MoveParent,
/*255460*/              OPC_MoveParent,
/*255461*/              OPC_RecordChild2, // #4 = $src0
/*255462*/              OPC_CheckType, MVT::v8i64,
/*255464*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*255466*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255469*/              OPC_EmitMergeInputChains1_2,
/*255470*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPERMQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*255484*/            0, // EndSwitchOpcode
/*255485*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VPERMI),// ->255535
/*255488*/            OPC_MoveChild0,
/*255489*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255492*/            OPC_RecordMemRef,
/*255493*/            OPC_RecordNode, // #1 = 'ld' chained node
/*255494*/            OPC_CheckFoldableChainNode,
/*255495*/            OPC_RecordChild1, // #2 = $src1
/*255496*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255498*/            OPC_CheckPredicate, 9, // Predicate_load
/*255500*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*255502*/            OPC_MoveParent,
/*255503*/            OPC_RecordChild1, // #3 = $src2
/*255504*/            OPC_MoveChild1,
/*255505*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*255508*/            OPC_MoveParent,
/*255509*/            OPC_MoveParent,
/*255510*/            OPC_RecordChild2, // #4 = $src0
/*255511*/            OPC_CheckType, MVT::v8i64,
/*255513*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*255515*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*255518*/            OPC_EmitMergeInputChains1_1,
/*255519*/            OPC_EmitConvertToTarget, 3,
/*255521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VPERMQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*255535*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::VPMADD52L),// ->255723
/*255539*/            OPC_Scope, 47, /*->255588*/ // 4 children in Scope
/*255541*/              OPC_RecordChild0, // #1 = $src2
/*255542*/              OPC_MoveChild1,
/*255543*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*255546*/              OPC_MoveChild0,
/*255547*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255550*/              OPC_RecordMemRef,
/*255551*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255552*/              OPC_CheckFoldableChainNode,
/*255553*/              OPC_RecordChild1, // #3 = $src3
/*255554*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255556*/              OPC_CheckPredicate, 9, // Predicate_load
/*255558*/              OPC_CheckType, MVT::i64,
/*255560*/              OPC_MoveParent,
/*255561*/              OPC_MoveParent,
/*255562*/              OPC_RecordChild2, // #4 = $src1
/*255563*/              OPC_MoveParent,
/*255564*/              OPC_CheckChild2Same, 4,
/*255566*/              OPC_CheckType, MVT::v8i64,
/*255568*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*255570*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*255573*/              OPC_EmitMergeInputChains1_2,
/*255574*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52l:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPMADD52LUQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*255588*/            /*Scope*/ 47, /*->255636*/
/*255589*/              OPC_MoveChild0,
/*255590*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*255593*/              OPC_MoveChild0,
/*255594*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255597*/              OPC_RecordMemRef,
/*255598*/              OPC_RecordNode, // #1 = 'ld' chained node
/*255599*/              OPC_CheckFoldableChainNode,
/*255600*/              OPC_RecordChild1, // #2 = $src3
/*255601*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255603*/              OPC_CheckPredicate, 9, // Predicate_load
/*255605*/              OPC_CheckType, MVT::i64,
/*255607*/              OPC_MoveParent,
/*255608*/              OPC_MoveParent,
/*255609*/              OPC_RecordChild1, // #3 = $src2
/*255610*/              OPC_RecordChild2, // #4 = $src1
/*255611*/              OPC_MoveParent,
/*255612*/              OPC_CheckChild2Same, 4,
/*255614*/              OPC_CheckType, MVT::v8i64,
/*255616*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*255618*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*255621*/              OPC_EmitMergeInputChains1_1,
/*255622*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52l:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPMADD52LUQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*255636*/            /*Scope*/ 42, /*->255679*/
/*255637*/              OPC_RecordChild0, // #1 = $src2
/*255638*/              OPC_MoveChild1,
/*255639*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255642*/              OPC_RecordMemRef,
/*255643*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255644*/              OPC_CheckFoldableChainNode,
/*255645*/              OPC_RecordChild1, // #3 = $src3
/*255646*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255648*/              OPC_CheckPredicate, 9, // Predicate_load
/*255650*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*255652*/              OPC_MoveParent,
/*255653*/              OPC_RecordChild2, // #4 = $src1
/*255654*/              OPC_MoveParent,
/*255655*/              OPC_CheckChild2Same, 4,
/*255657*/              OPC_CheckType, MVT::v8i64,
/*255659*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*255661*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*255664*/              OPC_EmitMergeInputChains1_2,
/*255665*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52l:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                        // Dst: (VPMADD52LUQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*255679*/            /*Scope*/ 42, /*->255722*/
/*255680*/              OPC_MoveChild0,
/*255681*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255684*/              OPC_RecordMemRef,
/*255685*/              OPC_RecordNode, // #1 = 'ld' chained node
/*255686*/              OPC_CheckFoldableChainNode,
/*255687*/              OPC_RecordChild1, // #2 = $src3
/*255688*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255690*/              OPC_CheckPredicate, 9, // Predicate_load
/*255692*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*255694*/              OPC_MoveParent,
/*255695*/              OPC_RecordChild1, // #3 = $src2
/*255696*/              OPC_RecordChild2, // #4 = $src1
/*255697*/              OPC_MoveParent,
/*255698*/              OPC_CheckChild2Same, 4,
/*255700*/              OPC_CheckType, MVT::v8i64,
/*255702*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*255704*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*255707*/              OPC_EmitMergeInputChains1_1,
/*255708*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52l:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                        // Dst: (VPMADD52LUQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*255722*/            0, /*End of Scope*/
/*255723*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::VPMADD52H),// ->255911
/*255727*/            OPC_Scope, 47, /*->255776*/ // 4 children in Scope
/*255729*/              OPC_RecordChild0, // #1 = $src2
/*255730*/              OPC_MoveChild1,
/*255731*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*255734*/              OPC_MoveChild0,
/*255735*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255738*/              OPC_RecordMemRef,
/*255739*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255740*/              OPC_CheckFoldableChainNode,
/*255741*/              OPC_RecordChild1, // #3 = $src3
/*255742*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255744*/              OPC_CheckPredicate, 9, // Predicate_load
/*255746*/              OPC_CheckType, MVT::i64,
/*255748*/              OPC_MoveParent,
/*255749*/              OPC_MoveParent,
/*255750*/              OPC_RecordChild2, // #4 = $src1
/*255751*/              OPC_MoveParent,
/*255752*/              OPC_CheckChild2Same, 4,
/*255754*/              OPC_CheckType, MVT::v8i64,
/*255756*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*255758*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*255761*/              OPC_EmitMergeInputChains1_2,
/*255762*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52h:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPMADD52HUQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*255776*/            /*Scope*/ 47, /*->255824*/
/*255777*/              OPC_MoveChild0,
/*255778*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*255781*/              OPC_MoveChild0,
/*255782*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255785*/              OPC_RecordMemRef,
/*255786*/              OPC_RecordNode, // #1 = 'ld' chained node
/*255787*/              OPC_CheckFoldableChainNode,
/*255788*/              OPC_RecordChild1, // #2 = $src3
/*255789*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255791*/              OPC_CheckPredicate, 9, // Predicate_load
/*255793*/              OPC_CheckType, MVT::i64,
/*255795*/              OPC_MoveParent,
/*255796*/              OPC_MoveParent,
/*255797*/              OPC_RecordChild1, // #3 = $src2
/*255798*/              OPC_RecordChild2, // #4 = $src1
/*255799*/              OPC_MoveParent,
/*255800*/              OPC_CheckChild2Same, 4,
/*255802*/              OPC_CheckType, MVT::v8i64,
/*255804*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*255806*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*255809*/              OPC_EmitMergeInputChains1_1,
/*255810*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52h:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPMADD52HUQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*255824*/            /*Scope*/ 42, /*->255867*/
/*255825*/              OPC_RecordChild0, // #1 = $src2
/*255826*/              OPC_MoveChild1,
/*255827*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255830*/              OPC_RecordMemRef,
/*255831*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255832*/              OPC_CheckFoldableChainNode,
/*255833*/              OPC_RecordChild1, // #3 = $src3
/*255834*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255836*/              OPC_CheckPredicate, 9, // Predicate_load
/*255838*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*255840*/              OPC_MoveParent,
/*255841*/              OPC_RecordChild2, // #4 = $src1
/*255842*/              OPC_MoveParent,
/*255843*/              OPC_CheckChild2Same, 4,
/*255845*/              OPC_CheckType, MVT::v8i64,
/*255847*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*255849*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*255852*/              OPC_EmitMergeInputChains1_2,
/*255853*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52h:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                        // Dst: (VPMADD52HUQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*255867*/            /*Scope*/ 42, /*->255910*/
/*255868*/              OPC_MoveChild0,
/*255869*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255872*/              OPC_RecordMemRef,
/*255873*/              OPC_RecordNode, // #1 = 'ld' chained node
/*255874*/              OPC_CheckFoldableChainNode,
/*255875*/              OPC_RecordChild1, // #2 = $src3
/*255876*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255878*/              OPC_CheckPredicate, 9, // Predicate_load
/*255880*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*255882*/              OPC_MoveParent,
/*255883*/              OPC_RecordChild1, // #3 = $src2
/*255884*/              OPC_RecordChild2, // #4 = $src1
/*255885*/              OPC_MoveParent,
/*255886*/              OPC_CheckChild2Same, 4,
/*255888*/              OPC_CheckType, MVT::v8i64,
/*255890*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*255892*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*255895*/              OPC_EmitMergeInputChains1_1,
/*255896*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52h:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                        // Dst: (VPMADD52HUQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*255910*/            0, /*End of Scope*/
/*255911*/          /*SwitchOpcode*/ 109|128,1/*237*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->256152
/*255915*/            OPC_MoveChild0,
/*255916*/            OPC_SwitchOpcode /*2 cases */, 118, TARGET_VAL(X86ISD::VBROADCAST),// ->256038
/*255920*/              OPC_MoveChild0,
/*255921*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255924*/              OPC_RecordMemRef,
/*255925*/              OPC_RecordNode, // #1 = 'ld' chained node
/*255926*/              OPC_CheckFoldableChainNode,
/*255927*/              OPC_RecordChild1, // #2 = $src
/*255928*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255930*/              OPC_CheckPredicate, 9, // Predicate_load
/*255932*/              OPC_SwitchType /*2 cases */, 50, MVT::f32,// ->255985
/*255935*/                OPC_MoveParent,
/*255936*/                OPC_CheckType, MVT::v8f32,
/*255938*/                OPC_MoveParent,
/*255939*/                OPC_MoveParent,
/*255940*/                OPC_RecordChild2, // #3 = $src0
/*255941*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->255963
/*255944*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*255946*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*255949*/                  OPC_EmitMergeInputChains1_1,
/*255950*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPS2DQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*255963*/                /*SwitchType*/ 19, MVT::v8i64,// ->255984
/*255965*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*255967*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*255970*/                  OPC_EmitMergeInputChains1_1,
/*255971*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPS2QQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*255984*/                0, // EndSwitchType
/*255985*/              /*SwitchType*/ 50, MVT::f64,// ->256037
/*255987*/                OPC_MoveParent,
/*255988*/                OPC_CheckType, MVT::v8f64,
/*255990*/                OPC_MoveParent,
/*255991*/                OPC_MoveParent,
/*255992*/                OPC_RecordChild2, // #3 = $src0
/*255993*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256015
/*255996*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*255998*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256001*/                  OPC_EmitMergeInputChains1_1,
/*256002*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPD2DQZrmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256015*/                /*SwitchType*/ 19, MVT::v8i64,// ->256036
/*256017*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256019*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256022*/                  OPC_EmitMergeInputChains1_1,
/*256023*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPD2QQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256036*/                0, // EndSwitchType
/*256037*/              0, // EndSwitchType
/*256038*/            /*SwitchOpcode*/ 110, TARGET_VAL(ISD::LOAD),// ->256151
/*256041*/              OPC_RecordMemRef,
/*256042*/              OPC_RecordNode, // #1 = 'ld' chained node
/*256043*/              OPC_CheckFoldableChainNode,
/*256044*/              OPC_RecordChild1, // #2 = $src
/*256045*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256047*/              OPC_CheckPredicate, 9, // Predicate_load
/*256049*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*256051*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->256101
/*256054*/                OPC_MoveParent,
/*256055*/                OPC_MoveParent,
/*256056*/                OPC_RecordChild2, // #3 = $src0
/*256057*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256079
/*256060*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256062*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256065*/                  OPC_EmitMergeInputChains1_1,
/*256066*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2DQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256079*/                /*SwitchType*/ 19, MVT::v8i64,// ->256100
/*256081*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256083*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256086*/                  OPC_EmitMergeInputChains1_1,
/*256087*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256100*/                0, // EndSwitchType
/*256101*/              /*SwitchType*/ 47, MVT::v8f64,// ->256150
/*256103*/                OPC_MoveParent,
/*256104*/                OPC_MoveParent,
/*256105*/                OPC_RecordChild2, // #3 = $src0
/*256106*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256128
/*256109*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*256111*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256114*/                  OPC_EmitMergeInputChains1_1,
/*256115*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2DQZrmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256128*/                /*SwitchType*/ 19, MVT::v8i64,// ->256149
/*256130*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256132*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256135*/                  OPC_EmitMergeInputChains1_1,
/*256136*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256149*/                0, // EndSwitchType
/*256150*/              0, // EndSwitchType
/*256151*/            0, // EndSwitchOpcode
/*256152*/          /*SwitchOpcode*/ 109|128,1/*237*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->256393
/*256156*/            OPC_MoveChild0,
/*256157*/            OPC_SwitchOpcode /*2 cases */, 118, TARGET_VAL(X86ISD::VBROADCAST),// ->256279
/*256161*/              OPC_MoveChild0,
/*256162*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*256165*/              OPC_RecordMemRef,
/*256166*/              OPC_RecordNode, // #1 = 'ld' chained node
/*256167*/              OPC_CheckFoldableChainNode,
/*256168*/              OPC_RecordChild1, // #2 = $src
/*256169*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256171*/              OPC_CheckPredicate, 9, // Predicate_load
/*256173*/              OPC_SwitchType /*2 cases */, 50, MVT::f32,// ->256226
/*256176*/                OPC_MoveParent,
/*256177*/                OPC_CheckType, MVT::v8f32,
/*256179*/                OPC_MoveParent,
/*256180*/                OPC_MoveParent,
/*256181*/                OPC_RecordChild2, // #3 = $src0
/*256182*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256204
/*256185*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256187*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256190*/                  OPC_EmitMergeInputChains1_1,
/*256191*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPS2UDQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256204*/                /*SwitchType*/ 19, MVT::v8i64,// ->256225
/*256206*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256208*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256211*/                  OPC_EmitMergeInputChains1_1,
/*256212*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPS2UQQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256225*/                0, // EndSwitchType
/*256226*/              /*SwitchType*/ 50, MVT::f64,// ->256278
/*256228*/                OPC_MoveParent,
/*256229*/                OPC_CheckType, MVT::v8f64,
/*256231*/                OPC_MoveParent,
/*256232*/                OPC_MoveParent,
/*256233*/                OPC_RecordChild2, // #3 = $src0
/*256234*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256256
/*256237*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*256239*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256242*/                  OPC_EmitMergeInputChains1_1,
/*256243*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPD2UDQZrmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256256*/                /*SwitchType*/ 19, MVT::v8i64,// ->256277
/*256258*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256260*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256263*/                  OPC_EmitMergeInputChains1_1,
/*256264*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPD2UQQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256277*/                0, // EndSwitchType
/*256278*/              0, // EndSwitchType
/*256279*/            /*SwitchOpcode*/ 110, TARGET_VAL(ISD::LOAD),// ->256392
/*256282*/              OPC_RecordMemRef,
/*256283*/              OPC_RecordNode, // #1 = 'ld' chained node
/*256284*/              OPC_CheckFoldableChainNode,
/*256285*/              OPC_RecordChild1, // #2 = $src
/*256286*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256288*/              OPC_CheckPredicate, 9, // Predicate_load
/*256290*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*256292*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->256342
/*256295*/                OPC_MoveParent,
/*256296*/                OPC_MoveParent,
/*256297*/                OPC_RecordChild2, // #3 = $src0
/*256298*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256320
/*256301*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256303*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256306*/                  OPC_EmitMergeInputChains1_1,
/*256307*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UDQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256320*/                /*SwitchType*/ 19, MVT::v8i64,// ->256341
/*256322*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256324*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256327*/                  OPC_EmitMergeInputChains1_1,
/*256328*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256341*/                0, // EndSwitchType
/*256342*/              /*SwitchType*/ 47, MVT::v8f64,// ->256391
/*256344*/                OPC_MoveParent,
/*256345*/                OPC_MoveParent,
/*256346*/                OPC_RecordChild2, // #3 = $src0
/*256347*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256369
/*256350*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*256352*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256355*/                  OPC_EmitMergeInputChains1_1,
/*256356*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UDQZrmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256369*/                /*SwitchType*/ 19, MVT::v8i64,// ->256390
/*256371*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256373*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256376*/                  OPC_EmitMergeInputChains1_1,
/*256377*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256390*/                0, // EndSwitchType
/*256391*/              0, // EndSwitchType
/*256392*/            0, // EndSwitchOpcode
/*256393*/          /*SwitchOpcode*/ 109|128,1/*237*/, TARGET_VAL(X86ISD::CVTP2SI),// ->256634
/*256397*/            OPC_MoveChild0,
/*256398*/            OPC_SwitchOpcode /*2 cases */, 118, TARGET_VAL(X86ISD::VBROADCAST),// ->256520
/*256402*/              OPC_MoveChild0,
/*256403*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*256406*/              OPC_RecordMemRef,
/*256407*/              OPC_RecordNode, // #1 = 'ld' chained node
/*256408*/              OPC_CheckFoldableChainNode,
/*256409*/              OPC_RecordChild1, // #2 = $src
/*256410*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256412*/              OPC_CheckPredicate, 9, // Predicate_load
/*256414*/              OPC_SwitchType /*2 cases */, 50, MVT::f32,// ->256467
/*256417*/                OPC_MoveParent,
/*256418*/                OPC_CheckType, MVT::v8f32,
/*256420*/                OPC_MoveParent,
/*256421*/                OPC_MoveParent,
/*256422*/                OPC_RecordChild2, // #3 = $src0
/*256423*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256445
/*256426*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256428*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256431*/                  OPC_EmitMergeInputChains1_1,
/*256432*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTPS2DQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256445*/                /*SwitchType*/ 19, MVT::v8i64,// ->256466
/*256447*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256449*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256452*/                  OPC_EmitMergeInputChains1_1,
/*256453*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTPS2QQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256466*/                0, // EndSwitchType
/*256467*/              /*SwitchType*/ 50, MVT::f64,// ->256519
/*256469*/                OPC_MoveParent,
/*256470*/                OPC_CheckType, MVT::v8f64,
/*256472*/                OPC_MoveParent,
/*256473*/                OPC_MoveParent,
/*256474*/                OPC_RecordChild2, // #3 = $src0
/*256475*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256497
/*256478*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*256480*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256483*/                  OPC_EmitMergeInputChains1_1,
/*256484*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTPD2DQZrmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256497*/                /*SwitchType*/ 19, MVT::v8i64,// ->256518
/*256499*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256501*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256504*/                  OPC_EmitMergeInputChains1_1,
/*256505*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTPD2QQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256518*/                0, // EndSwitchType
/*256519*/              0, // EndSwitchType
/*256520*/            /*SwitchOpcode*/ 110, TARGET_VAL(ISD::LOAD),// ->256633
/*256523*/              OPC_RecordMemRef,
/*256524*/              OPC_RecordNode, // #1 = 'ld' chained node
/*256525*/              OPC_CheckFoldableChainNode,
/*256526*/              OPC_RecordChild1, // #2 = $src
/*256527*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256529*/              OPC_CheckPredicate, 9, // Predicate_load
/*256531*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*256533*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->256583
/*256536*/                OPC_MoveParent,
/*256537*/                OPC_MoveParent,
/*256538*/                OPC_RecordChild2, // #3 = $src0
/*256539*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256561
/*256542*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256544*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256547*/                  OPC_EmitMergeInputChains1_1,
/*256548*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2DQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256561*/                /*SwitchType*/ 19, MVT::v8i64,// ->256582
/*256563*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256565*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256568*/                  OPC_EmitMergeInputChains1_1,
/*256569*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2QQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256582*/                0, // EndSwitchType
/*256583*/              /*SwitchType*/ 47, MVT::v8f64,// ->256632
/*256585*/                OPC_MoveParent,
/*256586*/                OPC_MoveParent,
/*256587*/                OPC_RecordChild2, // #3 = $src0
/*256588*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256610
/*256591*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*256593*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256596*/                  OPC_EmitMergeInputChains1_1,
/*256597*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2DQZrmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256610*/                /*SwitchType*/ 19, MVT::v8i64,// ->256631
/*256612*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256614*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256617*/                  OPC_EmitMergeInputChains1_1,
/*256618*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2QQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256631*/                0, // EndSwitchType
/*256632*/              0, // EndSwitchType
/*256633*/            0, // EndSwitchOpcode
/*256634*/          /*SwitchOpcode*/ 109|128,1/*237*/, TARGET_VAL(X86ISD::CVTP2UI),// ->256875
/*256638*/            OPC_MoveChild0,
/*256639*/            OPC_SwitchOpcode /*2 cases */, 118, TARGET_VAL(X86ISD::VBROADCAST),// ->256761
/*256643*/              OPC_MoveChild0,
/*256644*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*256647*/              OPC_RecordMemRef,
/*256648*/              OPC_RecordNode, // #1 = 'ld' chained node
/*256649*/              OPC_CheckFoldableChainNode,
/*256650*/              OPC_RecordChild1, // #2 = $src
/*256651*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256653*/              OPC_CheckPredicate, 9, // Predicate_load
/*256655*/              OPC_SwitchType /*2 cases */, 50, MVT::f32,// ->256708
/*256658*/                OPC_MoveParent,
/*256659*/                OPC_CheckType, MVT::v8f32,
/*256661*/                OPC_MoveParent,
/*256662*/                OPC_MoveParent,
/*256663*/                OPC_RecordChild2, // #3 = $src0
/*256664*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256686
/*256667*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256669*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256672*/                  OPC_EmitMergeInputChains1_1,
/*256673*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTPS2UDQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256686*/                /*SwitchType*/ 19, MVT::v8i64,// ->256707
/*256688*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256690*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256693*/                  OPC_EmitMergeInputChains1_1,
/*256694*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTPS2UQQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256707*/                0, // EndSwitchType
/*256708*/              /*SwitchType*/ 50, MVT::f64,// ->256760
/*256710*/                OPC_MoveParent,
/*256711*/                OPC_CheckType, MVT::v8f64,
/*256713*/                OPC_MoveParent,
/*256714*/                OPC_MoveParent,
/*256715*/                OPC_RecordChild2, // #3 = $src0
/*256716*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256738
/*256719*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*256721*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256724*/                  OPC_EmitMergeInputChains1_1,
/*256725*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VCVTPD2UDQZrmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256738*/                /*SwitchType*/ 19, MVT::v8i64,// ->256759
/*256740*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256742*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256745*/                  OPC_EmitMergeInputChains1_1,
/*256746*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTPD2UQQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256759*/                0, // EndSwitchType
/*256760*/              0, // EndSwitchType
/*256761*/            /*SwitchOpcode*/ 110, TARGET_VAL(ISD::LOAD),// ->256874
/*256764*/              OPC_RecordMemRef,
/*256765*/              OPC_RecordNode, // #1 = 'ld' chained node
/*256766*/              OPC_CheckFoldableChainNode,
/*256767*/              OPC_RecordChild1, // #2 = $src
/*256768*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256770*/              OPC_CheckPredicate, 9, // Predicate_load
/*256772*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*256774*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->256824
/*256777*/                OPC_MoveParent,
/*256778*/                OPC_MoveParent,
/*256779*/                OPC_RecordChild2, // #3 = $src0
/*256780*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256802
/*256783*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256785*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256788*/                  OPC_EmitMergeInputChains1_1,
/*256789*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UDQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256802*/                /*SwitchType*/ 19, MVT::v8i64,// ->256823
/*256804*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256806*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256809*/                  OPC_EmitMergeInputChains1_1,
/*256810*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UQQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256823*/                0, // EndSwitchType
/*256824*/              /*SwitchType*/ 47, MVT::v8f64,// ->256873
/*256826*/                OPC_MoveParent,
/*256827*/                OPC_MoveParent,
/*256828*/                OPC_RecordChild2, // #3 = $src0
/*256829*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->256851
/*256832*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*256834*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256837*/                  OPC_EmitMergeInputChains1_1,
/*256838*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UDQZrmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256851*/                /*SwitchType*/ 19, MVT::v8i64,// ->256872
/*256853*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*256855*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*256858*/                  OPC_EmitMergeInputChains1_1,
/*256859*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UQQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*256872*/                0, // EndSwitchType
/*256873*/              0, // EndSwitchType
/*256874*/            0, // EndSwitchOpcode
/*256875*/          /*SwitchOpcode*/ 113, TARGET_VAL(X86ISD::EXPAND),// ->256991
/*256878*/            OPC_MoveChild0,
/*256879*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(ISD::BITCAST),// ->256953
/*256883*/              OPC_MoveChild0,
/*256884*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*256887*/              OPC_RecordMemRef,
/*256888*/              OPC_RecordNode, // #1 = 'ld' chained node
/*256889*/              OPC_CheckFoldableChainNode,
/*256890*/              OPC_RecordChild1, // #2 = $src1
/*256891*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256893*/              OPC_CheckPredicate, 9, // Predicate_load
/*256895*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*256897*/              OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->256925
/*256900*/                OPC_MoveParent,
/*256901*/                OPC_MoveParent,
/*256902*/                OPC_MoveParent,
/*256903*/                OPC_RecordChild2, // #3 = $src0
/*256904*/                OPC_CheckType, MVT::v8i32,
/*256906*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*256908*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*256911*/                OPC_EmitMergeInputChains1_1,
/*256912*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPEXPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*256925*/              /*SwitchType*/ 25, MVT::v2i64,// ->256952
/*256927*/                OPC_MoveParent,
/*256928*/                OPC_MoveParent,
/*256929*/                OPC_MoveParent,
/*256930*/                OPC_RecordChild2, // #3 = $src0
/*256931*/                OPC_CheckType, MVT::v8i16,
/*256933*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*256935*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*256938*/                OPC_EmitMergeInputChains1_1,
/*256939*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPEXPANDWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*256952*/              0, // EndSwitchType
/*256953*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->256990
/*256956*/              OPC_RecordMemRef,
/*256957*/              OPC_RecordNode, // #1 = 'ld' chained node
/*256958*/              OPC_CheckFoldableChainNode,
/*256959*/              OPC_RecordChild1, // #2 = $src1
/*256960*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256962*/              OPC_CheckPredicate, 9, // Predicate_load
/*256964*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*256966*/              OPC_MoveParent,
/*256967*/              OPC_MoveParent,
/*256968*/              OPC_RecordChild2, // #3 = $src0
/*256969*/              OPC_CheckType, MVT::v8i64,
/*256971*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*256973*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*256976*/              OPC_EmitMergeInputChains1_1,
/*256977*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPEXPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*256990*/            0, // EndSwitchOpcode
/*256991*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::SHUF128),// ->257043
/*256994*/            OPC_RecordChild0, // #1 = $src1
/*256995*/            OPC_MoveChild1,
/*256996*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*256999*/            OPC_RecordMemRef,
/*257000*/            OPC_RecordNode, // #2 = 'ld' chained node
/*257001*/            OPC_CheckFoldableChainNode,
/*257002*/            OPC_RecordChild1, // #3 = $src2
/*257003*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257005*/            OPC_CheckPredicate, 9, // Predicate_load
/*257007*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*257009*/            OPC_MoveParent,
/*257010*/            OPC_RecordChild2, // #4 = $src3
/*257011*/            OPC_MoveChild2,
/*257012*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*257015*/            OPC_MoveParent,
/*257016*/            OPC_MoveParent,
/*257017*/            OPC_RecordChild2, // #5 = $src0
/*257018*/            OPC_CheckType, MVT::v8i64,
/*257020*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*257022*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*257025*/            OPC_EmitMergeInputChains1_2,
/*257026*/            OPC_EmitConvertToTarget, 4,
/*257028*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VSHUFI64X2Zrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*257043*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VALIGN),// ->257095
/*257046*/            OPC_RecordChild0, // #1 = $src1
/*257047*/            OPC_MoveChild1,
/*257048*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*257051*/            OPC_RecordMemRef,
/*257052*/            OPC_RecordNode, // #2 = 'ld' chained node
/*257053*/            OPC_CheckFoldableChainNode,
/*257054*/            OPC_RecordChild1, // #3 = $src2
/*257055*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257057*/            OPC_CheckPredicate, 9, // Predicate_load
/*257059*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*257061*/            OPC_MoveParent,
/*257062*/            OPC_RecordChild2, // #4 = $src3
/*257063*/            OPC_MoveChild2,
/*257064*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*257067*/            OPC_MoveParent,
/*257068*/            OPC_MoveParent,
/*257069*/            OPC_RecordChild2, // #5 = $src0
/*257070*/            OPC_CheckType, MVT::v8i64,
/*257072*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*257074*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*257077*/            OPC_EmitMergeInputChains1_2,
/*257078*/            OPC_EmitConvertToTarget, 4,
/*257080*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VALIGNQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*257095*/          /*SwitchOpcode*/ 58|128,1/*186*/, TARGET_VAL(ISD::ABS),// ->257285
/*257099*/            OPC_MoveChild0,
/*257100*/            OPC_SwitchOpcode /*3 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->257174
/*257104*/              OPC_MoveChild0,
/*257105*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*257108*/              OPC_RecordMemRef,
/*257109*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257110*/              OPC_CheckFoldableChainNode,
/*257111*/              OPC_RecordChild1, // #2 = $src1
/*257112*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257114*/              OPC_SwitchType /*2 cases */, 27, MVT::i64,// ->257144
/*257117*/                OPC_CheckPredicate, 9, // Predicate_load
/*257119*/                OPC_MoveParent,
/*257120*/                OPC_MoveParent,
/*257121*/                OPC_MoveParent,
/*257122*/                OPC_RecordChild2, // #3 = $src0
/*257123*/                OPC_CheckType, MVT::v8i64,
/*257125*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*257127*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257130*/                OPC_EmitMergeInputChains1_1,
/*257131*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPABSQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257144*/              /*SwitchType*/ 27, MVT::i32,// ->257173
/*257146*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*257148*/                OPC_MoveParent,
/*257149*/                OPC_MoveParent,
/*257150*/                OPC_MoveParent,
/*257151*/                OPC_RecordChild2, // #3 = $src0
/*257152*/                OPC_CheckType, MVT::v8i32,
/*257154*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257156*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257159*/                OPC_EmitMergeInputChains1_1,
/*257160*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPABSDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257173*/              0, // EndSwitchType
/*257174*/            /*SwitchOpcode*/ 70, TARGET_VAL(ISD::BITCAST),// ->257247
/*257177*/              OPC_MoveChild0,
/*257178*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*257181*/              OPC_RecordMemRef,
/*257182*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257183*/              OPC_CheckFoldableChainNode,
/*257184*/              OPC_RecordChild1, // #2 = $src1
/*257185*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257187*/              OPC_CheckPredicate, 9, // Predicate_load
/*257189*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*257191*/              OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->257219
/*257194*/                OPC_MoveParent,
/*257195*/                OPC_MoveParent,
/*257196*/                OPC_MoveParent,
/*257197*/                OPC_RecordChild2, // #3 = $src0
/*257198*/                OPC_CheckType, MVT::v8i32,
/*257200*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257202*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257205*/                OPC_EmitMergeInputChains1_1,
/*257206*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPABSDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257219*/              /*SwitchType*/ 25, MVT::v2i64,// ->257246
/*257221*/                OPC_MoveParent,
/*257222*/                OPC_MoveParent,
/*257223*/                OPC_MoveParent,
/*257224*/                OPC_RecordChild2, // #3 = $src0
/*257225*/                OPC_CheckType, MVT::v8i16,
/*257227*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*257229*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257232*/                OPC_EmitMergeInputChains1_1,
/*257233*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPABSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257246*/              0, // EndSwitchType
/*257247*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->257284
/*257250*/              OPC_RecordMemRef,
/*257251*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257252*/              OPC_CheckFoldableChainNode,
/*257253*/              OPC_RecordChild1, // #2 = $src1
/*257254*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257256*/              OPC_CheckPredicate, 9, // Predicate_load
/*257258*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*257260*/              OPC_MoveParent,
/*257261*/              OPC_MoveParent,
/*257262*/              OPC_RecordChild2, // #3 = $src0
/*257263*/              OPC_CheckType, MVT::v8i64,
/*257265*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*257267*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257270*/              OPC_EmitMergeInputChains1_1,
/*257271*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPABSQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257284*/            0, // EndSwitchOpcode
/*257285*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ISD::CTLZ),// ->257446
/*257289*/            OPC_MoveChild0,
/*257290*/            OPC_SwitchOpcode /*3 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->257364
/*257294*/              OPC_MoveChild0,
/*257295*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*257298*/              OPC_RecordMemRef,
/*257299*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257300*/              OPC_CheckFoldableChainNode,
/*257301*/              OPC_RecordChild1, // #2 = $src1
/*257302*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257304*/              OPC_SwitchType /*2 cases */, 27, MVT::i64,// ->257334
/*257307*/                OPC_CheckPredicate, 9, // Predicate_load
/*257309*/                OPC_MoveParent,
/*257310*/                OPC_MoveParent,
/*257311*/                OPC_MoveParent,
/*257312*/                OPC_RecordChild2, // #3 = $src0
/*257313*/                OPC_CheckType, MVT::v8i64,
/*257315*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*257317*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257320*/                OPC_EmitMergeInputChains1_1,
/*257321*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPLZCNTQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257334*/              /*SwitchType*/ 27, MVT::i32,// ->257363
/*257336*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*257338*/                OPC_MoveParent,
/*257339*/                OPC_MoveParent,
/*257340*/                OPC_MoveParent,
/*257341*/                OPC_RecordChild2, // #3 = $src0
/*257342*/                OPC_CheckType, MVT::v8i32,
/*257344*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*257346*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257349*/                OPC_EmitMergeInputChains1_1,
/*257350*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPLZCNTDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257363*/              0, // EndSwitchType
/*257364*/            /*SwitchOpcode*/ 41, TARGET_VAL(ISD::BITCAST),// ->257408
/*257367*/              OPC_MoveChild0,
/*257368*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*257371*/              OPC_RecordMemRef,
/*257372*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257373*/              OPC_CheckFoldableChainNode,
/*257374*/              OPC_RecordChild1, // #2 = $src1
/*257375*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257377*/              OPC_CheckPredicate, 9, // Predicate_load
/*257379*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*257381*/              OPC_CheckType, MVT::v4i64,
/*257383*/              OPC_MoveParent,
/*257384*/              OPC_MoveParent,
/*257385*/              OPC_MoveParent,
/*257386*/              OPC_RecordChild2, // #3 = $src0
/*257387*/              OPC_CheckType, MVT::v8i32,
/*257389*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*257391*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257394*/              OPC_EmitMergeInputChains1_1,
/*257395*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VPLZCNTDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257408*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->257445
/*257411*/              OPC_RecordMemRef,
/*257412*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257413*/              OPC_CheckFoldableChainNode,
/*257414*/              OPC_RecordChild1, // #2 = $src1
/*257415*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257417*/              OPC_CheckPredicate, 9, // Predicate_load
/*257419*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*257421*/              OPC_MoveParent,
/*257422*/              OPC_MoveParent,
/*257423*/              OPC_RecordChild2, // #3 = $src0
/*257424*/              OPC_CheckType, MVT::v8i64,
/*257426*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*257428*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257431*/              OPC_EmitMergeInputChains1_1,
/*257432*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPLZCNTQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257445*/            0, // EndSwitchOpcode
/*257446*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(X86ISD::CONFLICT),// ->257607
/*257450*/            OPC_MoveChild0,
/*257451*/            OPC_SwitchOpcode /*3 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->257525
/*257455*/              OPC_MoveChild0,
/*257456*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*257459*/              OPC_RecordMemRef,
/*257460*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257461*/              OPC_CheckFoldableChainNode,
/*257462*/              OPC_RecordChild1, // #2 = $src1
/*257463*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257465*/              OPC_SwitchType /*2 cases */, 27, MVT::i64,// ->257495
/*257468*/                OPC_CheckPredicate, 9, // Predicate_load
/*257470*/                OPC_MoveParent,
/*257471*/                OPC_MoveParent,
/*257472*/                OPC_MoveParent,
/*257473*/                OPC_RecordChild2, // #3 = $src0
/*257474*/                OPC_CheckType, MVT::v8i64,
/*257476*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*257478*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257481*/                OPC_EmitMergeInputChains1_1,
/*257482*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPCONFLICTQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257495*/              /*SwitchType*/ 27, MVT::i32,// ->257524
/*257497*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*257499*/                OPC_MoveParent,
/*257500*/                OPC_MoveParent,
/*257501*/                OPC_MoveParent,
/*257502*/                OPC_RecordChild2, // #3 = $src0
/*257503*/                OPC_CheckType, MVT::v8i32,
/*257505*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*257507*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257510*/                OPC_EmitMergeInputChains1_1,
/*257511*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPCONFLICTDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257524*/              0, // EndSwitchType
/*257525*/            /*SwitchOpcode*/ 41, TARGET_VAL(ISD::BITCAST),// ->257569
/*257528*/              OPC_MoveChild0,
/*257529*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*257532*/              OPC_RecordMemRef,
/*257533*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257534*/              OPC_CheckFoldableChainNode,
/*257535*/              OPC_RecordChild1, // #2 = $src1
/*257536*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257538*/              OPC_CheckPredicate, 9, // Predicate_load
/*257540*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*257542*/              OPC_CheckType, MVT::v4i64,
/*257544*/              OPC_MoveParent,
/*257545*/              OPC_MoveParent,
/*257546*/              OPC_MoveParent,
/*257547*/              OPC_RecordChild2, // #3 = $src0
/*257548*/              OPC_CheckType, MVT::v8i32,
/*257550*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*257552*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257555*/              OPC_EmitMergeInputChains1_1,
/*257556*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VPCONFLICTDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257569*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->257606
/*257572*/              OPC_RecordMemRef,
/*257573*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257574*/              OPC_CheckFoldableChainNode,
/*257575*/              OPC_RecordChild1, // #2 = $src1
/*257576*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257578*/              OPC_CheckPredicate, 9, // Predicate_load
/*257580*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*257582*/              OPC_MoveParent,
/*257583*/              OPC_MoveParent,
/*257584*/              OPC_RecordChild2, // #3 = $src0
/*257585*/              OPC_CheckType, MVT::v8i64,
/*257587*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*257589*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257592*/              OPC_EmitMergeInputChains1_1,
/*257593*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPCONFLICTQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257606*/            0, // EndSwitchOpcode
/*257607*/          /*SwitchOpcode*/ 58|128,1/*186*/, TARGET_VAL(ISD::CTPOP),// ->257797
/*257611*/            OPC_MoveChild0,
/*257612*/            OPC_SwitchOpcode /*3 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->257686
/*257616*/              OPC_MoveChild0,
/*257617*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*257620*/              OPC_RecordMemRef,
/*257621*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257622*/              OPC_CheckFoldableChainNode,
/*257623*/              OPC_RecordChild1, // #2 = $src1
/*257624*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257626*/              OPC_SwitchType /*2 cases */, 27, MVT::i64,// ->257656
/*257629*/                OPC_CheckPredicate, 9, // Predicate_load
/*257631*/                OPC_MoveParent,
/*257632*/                OPC_MoveParent,
/*257633*/                OPC_MoveParent,
/*257634*/                OPC_RecordChild2, // #3 = $src0
/*257635*/                OPC_CheckType, MVT::v8i64,
/*257637*/                OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*257639*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257642*/                OPC_EmitMergeInputChains1_1,
/*257643*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPOPCNTQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257656*/              /*SwitchType*/ 27, MVT::i32,// ->257685
/*257658*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*257660*/                OPC_MoveParent,
/*257661*/                OPC_MoveParent,
/*257662*/                OPC_MoveParent,
/*257663*/                OPC_RecordChild2, // #3 = $src0
/*257664*/                OPC_CheckType, MVT::v8i32,
/*257666*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*257668*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257671*/                OPC_EmitMergeInputChains1_1,
/*257672*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPOPCNTDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257685*/              0, // EndSwitchType
/*257686*/            /*SwitchOpcode*/ 70, TARGET_VAL(ISD::BITCAST),// ->257759
/*257689*/              OPC_MoveChild0,
/*257690*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*257693*/              OPC_RecordMemRef,
/*257694*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257695*/              OPC_CheckFoldableChainNode,
/*257696*/              OPC_RecordChild1, // #2 = $src1
/*257697*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257699*/              OPC_CheckPredicate, 9, // Predicate_load
/*257701*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*257703*/              OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->257731
/*257706*/                OPC_MoveParent,
/*257707*/                OPC_MoveParent,
/*257708*/                OPC_MoveParent,
/*257709*/                OPC_RecordChild2, // #3 = $src0
/*257710*/                OPC_CheckType, MVT::v8i32,
/*257712*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*257714*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257717*/                OPC_EmitMergeInputChains1_1,
/*257718*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPOPCNTDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257731*/              /*SwitchType*/ 25, MVT::v2i64,// ->257758
/*257733*/                OPC_MoveParent,
/*257734*/                OPC_MoveParent,
/*257735*/                OPC_MoveParent,
/*257736*/                OPC_RecordChild2, // #3 = $src0
/*257737*/                OPC_CheckType, MVT::v8i16,
/*257739*/                OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*257741*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257744*/                OPC_EmitMergeInputChains1_1,
/*257745*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPOPCNTWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257758*/              0, // EndSwitchType
/*257759*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->257796
/*257762*/              OPC_RecordMemRef,
/*257763*/              OPC_RecordNode, // #1 = 'ld' chained node
/*257764*/              OPC_CheckFoldableChainNode,
/*257765*/              OPC_RecordChild1, // #2 = $src1
/*257766*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257768*/              OPC_CheckPredicate, 9, // Predicate_load
/*257770*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*257772*/              OPC_MoveParent,
/*257773*/              OPC_MoveParent,
/*257774*/              OPC_RecordChild2, // #3 = $src0
/*257775*/              OPC_CheckType, MVT::v8i64,
/*257777*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*257779*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*257782*/              OPC_EmitMergeInputChains1_1,
/*257783*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPOPCNTQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*257796*/            0, // EndSwitchOpcode
/*257797*/          /*SwitchOpcode*/ 64|128,1/*192*/, TARGET_VAL(X86ISD::UNPCKL),// ->257993
/*257801*/            OPC_RecordChild0, // #1 = $src1
/*257802*/            OPC_MoveChild1,
/*257803*/            OPC_SwitchOpcode /*3 cases */, 72, TARGET_VAL(ISD::BITCAST),// ->257879
/*257807*/              OPC_MoveChild0,
/*257808*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*257811*/              OPC_RecordMemRef,
/*257812*/              OPC_RecordNode, // #2 = 'ld' chained node
/*257813*/              OPC_CheckFoldableChainNode,
/*257814*/              OPC_RecordChild1, // #3 = $src2
/*257815*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257817*/              OPC_CheckPredicate, 9, // Predicate_load
/*257819*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*257821*/              OPC_SwitchType /*2 cases */, 26, MVT::v2i64,// ->257850
/*257824*/                OPC_MoveParent,
/*257825*/                OPC_MoveParent,
/*257826*/                OPC_MoveParent,
/*257827*/                OPC_RecordChild2, // #4 = $src0
/*257828*/                OPC_CheckType, MVT::v8i16,
/*257830*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*257832*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257835*/                OPC_EmitMergeInputChains1_2,
/*257836*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKLWDZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257850*/              /*SwitchType*/ 26, MVT::v4i64,// ->257878
/*257852*/                OPC_MoveParent,
/*257853*/                OPC_MoveParent,
/*257854*/                OPC_MoveParent,
/*257855*/                OPC_RecordChild2, // #4 = $src0
/*257856*/                OPC_CheckType, MVT::v8i32,
/*257858*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257860*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257863*/                OPC_EmitMergeInputChains1_2,
/*257864*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKLDQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257878*/              0, // EndSwitchType
/*257879*/            /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->257954
/*257882*/              OPC_MoveChild0,
/*257883*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*257886*/              OPC_RecordMemRef,
/*257887*/              OPC_RecordNode, // #2 = 'ld' chained node
/*257888*/              OPC_CheckFoldableChainNode,
/*257889*/              OPC_RecordChild1, // #3 = $src2
/*257890*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257892*/              OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->257923
/*257895*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*257897*/                OPC_MoveParent,
/*257898*/                OPC_MoveParent,
/*257899*/                OPC_MoveParent,
/*257900*/                OPC_RecordChild2, // #4 = $src0
/*257901*/                OPC_CheckType, MVT::v8i32,
/*257903*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257905*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257908*/                OPC_EmitMergeInputChains1_2,
/*257909*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKLDQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257923*/              /*SwitchType*/ 28, MVT::i64,// ->257953
/*257925*/                OPC_CheckPredicate, 9, // Predicate_load
/*257927*/                OPC_MoveParent,
/*257928*/                OPC_MoveParent,
/*257929*/                OPC_MoveParent,
/*257930*/                OPC_RecordChild2, // #4 = $src0
/*257931*/                OPC_CheckType, MVT::v8i64,
/*257933*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*257935*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257938*/                OPC_EmitMergeInputChains1_2,
/*257939*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKLQDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257953*/              0, // EndSwitchType
/*257954*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->257992
/*257957*/              OPC_RecordMemRef,
/*257958*/              OPC_RecordNode, // #2 = 'ld' chained node
/*257959*/              OPC_CheckFoldableChainNode,
/*257960*/              OPC_RecordChild1, // #3 = $src2
/*257961*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257963*/              OPC_CheckPredicate, 9, // Predicate_load
/*257965*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*257967*/              OPC_MoveParent,
/*257968*/              OPC_MoveParent,
/*257969*/              OPC_RecordChild2, // #4 = $src0
/*257970*/              OPC_CheckType, MVT::v8i64,
/*257972*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*257974*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257977*/              OPC_EmitMergeInputChains1_2,
/*257978*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKLQDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257992*/            0, // EndSwitchOpcode
/*257993*/          /*SwitchOpcode*/ 64|128,1/*192*/, TARGET_VAL(X86ISD::UNPCKH),// ->258189
/*257997*/            OPC_RecordChild0, // #1 = $src1
/*257998*/            OPC_MoveChild1,
/*257999*/            OPC_SwitchOpcode /*3 cases */, 72, TARGET_VAL(ISD::BITCAST),// ->258075
/*258003*/              OPC_MoveChild0,
/*258004*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258007*/              OPC_RecordMemRef,
/*258008*/              OPC_RecordNode, // #2 = 'ld' chained node
/*258009*/              OPC_CheckFoldableChainNode,
/*258010*/              OPC_RecordChild1, // #3 = $src2
/*258011*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258013*/              OPC_CheckPredicate, 9, // Predicate_load
/*258015*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*258017*/              OPC_SwitchType /*2 cases */, 26, MVT::v2i64,// ->258046
/*258020*/                OPC_MoveParent,
/*258021*/                OPC_MoveParent,
/*258022*/                OPC_MoveParent,
/*258023*/                OPC_RecordChild2, // #4 = $src0
/*258024*/                OPC_CheckType, MVT::v8i16,
/*258026*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*258028*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258031*/                OPC_EmitMergeInputChains1_2,
/*258032*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKHWDZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258046*/              /*SwitchType*/ 26, MVT::v4i64,// ->258074
/*258048*/                OPC_MoveParent,
/*258049*/                OPC_MoveParent,
/*258050*/                OPC_MoveParent,
/*258051*/                OPC_RecordChild2, // #4 = $src0
/*258052*/                OPC_CheckType, MVT::v8i32,
/*258054*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258056*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258059*/                OPC_EmitMergeInputChains1_2,
/*258060*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKHDQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258074*/              0, // EndSwitchType
/*258075*/            /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->258150
/*258078*/              OPC_MoveChild0,
/*258079*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258082*/              OPC_RecordMemRef,
/*258083*/              OPC_RecordNode, // #2 = 'ld' chained node
/*258084*/              OPC_CheckFoldableChainNode,
/*258085*/              OPC_RecordChild1, // #3 = $src2
/*258086*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258088*/              OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->258119
/*258091*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*258093*/                OPC_MoveParent,
/*258094*/                OPC_MoveParent,
/*258095*/                OPC_MoveParent,
/*258096*/                OPC_RecordChild2, // #4 = $src0
/*258097*/                OPC_CheckType, MVT::v8i32,
/*258099*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258101*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258104*/                OPC_EmitMergeInputChains1_2,
/*258105*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKHDQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258119*/              /*SwitchType*/ 28, MVT::i64,// ->258149
/*258121*/                OPC_CheckPredicate, 9, // Predicate_load
/*258123*/                OPC_MoveParent,
/*258124*/                OPC_MoveParent,
/*258125*/                OPC_MoveParent,
/*258126*/                OPC_RecordChild2, // #4 = $src0
/*258127*/                OPC_CheckType, MVT::v8i64,
/*258129*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*258131*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258134*/                OPC_EmitMergeInputChains1_2,
/*258135*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKHQDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258149*/              0, // EndSwitchType
/*258150*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->258188
/*258153*/              OPC_RecordMemRef,
/*258154*/              OPC_RecordNode, // #2 = 'ld' chained node
/*258155*/              OPC_CheckFoldableChainNode,
/*258156*/              OPC_RecordChild1, // #3 = $src2
/*258157*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258159*/              OPC_CheckPredicate, 9, // Predicate_load
/*258161*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*258163*/              OPC_MoveParent,
/*258164*/              OPC_MoveParent,
/*258165*/              OPC_RecordChild2, // #4 = $src0
/*258166*/              OPC_CheckType, MVT::v8i64,
/*258168*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*258170*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258173*/              OPC_EmitMergeInputChains1_2,
/*258174*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKHQDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258188*/            0, // EndSwitchOpcode
/*258189*/          /*SwitchOpcode*/ 81|128,2/*337*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->258530
/*258193*/            OPC_Scope, 110, /*->258305*/ // 4 children in Scope
/*258195*/              OPC_RecordChild0, // #1 = $src1
/*258196*/              OPC_Scope, 52, /*->258250*/ // 2 children in Scope
/*258198*/                OPC_RecordChild1, // #2 = $src2
/*258199*/                OPC_MoveChild2,
/*258200*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258203*/                OPC_RecordMemRef,
/*258204*/                OPC_RecordNode, // #3 = 'ld' chained node
/*258205*/                OPC_CheckFoldableChainNode,
/*258206*/                OPC_RecordChild1, // #4 = $src3
/*258207*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258209*/                OPC_CheckPredicate, 9, // Predicate_load
/*258211*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*258213*/                OPC_MoveParent,
/*258214*/                OPC_RecordChild3, // #5 = $src4
/*258215*/                OPC_MoveChild3,
/*258216*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*258219*/                OPC_MoveParent,
/*258220*/                OPC_MoveParent,
/*258221*/                OPC_CheckChild2Same, 1,
/*258223*/                OPC_CheckType, MVT::v8i64,
/*258225*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*258227*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*258230*/                OPC_EmitMergeInputChains, 1, 3, 
/*258233*/                OPC_EmitConvertToTarget, 5,
/*258235*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*258250*/              /*Scope*/ 53, /*->258304*/
/*258251*/                OPC_MoveChild1,
/*258252*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258255*/                OPC_RecordMemRef,
/*258256*/                OPC_RecordNode, // #2 = 'ld' chained node
/*258257*/                OPC_CheckFoldableChainNode,
/*258258*/                OPC_RecordChild1, // #3 = $src3
/*258259*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258261*/                OPC_CheckPredicate, 9, // Predicate_load
/*258263*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*258265*/                OPC_MoveParent,
/*258266*/                OPC_RecordChild2, // #4 = $src2
/*258267*/                OPC_RecordChild3, // #5 = $src4
/*258268*/                OPC_MoveChild3,
/*258269*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*258272*/                OPC_MoveParent,
/*258273*/                OPC_MoveParent,
/*258274*/                OPC_CheckChild2Same, 1,
/*258276*/                OPC_CheckType, MVT::v8i64,
/*258278*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*258280*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*258283*/                OPC_EmitMergeInputChains1_2,
/*258284*/                OPC_EmitConvertToTarget, 5,
/*258286*/                OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*258289*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*258304*/              0, /*End of Scope*/
/*258305*/            /*Scope*/ 54, /*->258360*/
/*258306*/              OPC_MoveChild0,
/*258307*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258310*/              OPC_RecordMemRef,
/*258311*/              OPC_RecordNode, // #1 = 'ld' chained node
/*258312*/              OPC_CheckFoldableChainNode,
/*258313*/              OPC_RecordChild1, // #2 = $src3
/*258314*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258316*/              OPC_CheckPredicate, 9, // Predicate_load
/*258318*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*258320*/              OPC_MoveParent,
/*258321*/              OPC_RecordChild1, // #3 = $src2
/*258322*/              OPC_RecordChild2, // #4 = $src1
/*258323*/              OPC_RecordChild3, // #5 = $src4
/*258324*/              OPC_MoveChild3,
/*258325*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*258328*/              OPC_MoveParent,
/*258329*/              OPC_MoveParent,
/*258330*/              OPC_CheckChild2Same, 4,
/*258332*/              OPC_CheckType, MVT::v8i64,
/*258334*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*258336*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*258339*/              OPC_EmitMergeInputChains1_1,
/*258340*/              OPC_EmitConvertToTarget, 5,
/*258342*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*258345*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*258360*/            /*Scope*/ 113, /*->258474*/
/*258361*/              OPC_RecordChild0, // #1 = $src2
/*258362*/              OPC_Scope, 55, /*->258419*/ // 2 children in Scope
/*258364*/                OPC_RecordChild1, // #2 = $src1
/*258365*/                OPC_MoveChild2,
/*258366*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258369*/                OPC_RecordMemRef,
/*258370*/                OPC_RecordNode, // #3 = 'ld' chained node
/*258371*/                OPC_CheckFoldableChainNode,
/*258372*/                OPC_RecordChild1, // #4 = $src3
/*258373*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258375*/                OPC_CheckPredicate, 9, // Predicate_load
/*258377*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*258379*/                OPC_MoveParent,
/*258380*/                OPC_RecordChild3, // #5 = $src4
/*258381*/                OPC_MoveChild3,
/*258382*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*258385*/                OPC_MoveParent,
/*258386*/                OPC_MoveParent,
/*258387*/                OPC_CheckChild2Same, 2,
/*258389*/                OPC_CheckType, MVT::v8i64,
/*258391*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*258393*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*258396*/                OPC_EmitMergeInputChains, 1, 3, 
/*258399*/                OPC_EmitConvertToTarget, 5,
/*258401*/                OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*258404*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*258419*/              /*Scope*/ 53, /*->258473*/
/*258420*/                OPC_MoveChild1,
/*258421*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258424*/                OPC_RecordMemRef,
/*258425*/                OPC_RecordNode, // #2 = 'ld' chained node
/*258426*/                OPC_CheckFoldableChainNode,
/*258427*/                OPC_RecordChild1, // #3 = $src3
/*258428*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258430*/                OPC_CheckPredicate, 9, // Predicate_load
/*258432*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*258434*/                OPC_MoveParent,
/*258435*/                OPC_RecordChild2, // #4 = $src1
/*258436*/                OPC_RecordChild3, // #5 = $src4
/*258437*/                OPC_MoveChild3,
/*258438*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*258441*/                OPC_MoveParent,
/*258442*/                OPC_MoveParent,
/*258443*/                OPC_CheckChild2Same, 4,
/*258445*/                OPC_CheckType, MVT::v8i64,
/*258447*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*258449*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*258452*/                OPC_EmitMergeInputChains1_2,
/*258453*/                OPC_EmitConvertToTarget, 5,
/*258455*/                OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*258458*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*258473*/              0, /*End of Scope*/
/*258474*/            /*Scope*/ 54, /*->258529*/
/*258475*/              OPC_MoveChild0,
/*258476*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258479*/              OPC_RecordMemRef,
/*258480*/              OPC_RecordNode, // #1 = 'ld' chained node
/*258481*/              OPC_CheckFoldableChainNode,
/*258482*/              OPC_RecordChild1, // #2 = $src3
/*258483*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258485*/              OPC_CheckPredicate, 9, // Predicate_load
/*258487*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*258489*/              OPC_MoveParent,
/*258490*/              OPC_RecordChild1, // #3 = $src1
/*258491*/              OPC_RecordChild2, // #4 = $src2
/*258492*/              OPC_RecordChild3, // #5 = $src4
/*258493*/              OPC_MoveChild3,
/*258494*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*258497*/              OPC_MoveParent,
/*258498*/              OPC_MoveParent,
/*258499*/              OPC_CheckChild2Same, 3,
/*258501*/              OPC_CheckType, MVT::v8i64,
/*258503*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*258505*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*258508*/              OPC_EmitMergeInputChains1_1,
/*258509*/              OPC_EmitConvertToTarget, 5,
/*258511*/              OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*258514*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*258529*/            0, /*End of Scope*/
/*258530*/          /*SwitchOpcode*/ 80|128,1/*208*/, TARGET_VAL(X86ISD::VSHLDV),// ->258742
/*258534*/            OPC_RecordChild0, // #1 = $src1
/*258535*/            OPC_RecordChild1, // #2 = $src2
/*258536*/            OPC_MoveChild2,
/*258537*/            OPC_SwitchOpcode /*3 cases */, 78, TARGET_VAL(ISD::BITCAST),// ->258619
/*258541*/              OPC_MoveChild0,
/*258542*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258545*/              OPC_RecordMemRef,
/*258546*/              OPC_RecordNode, // #3 = 'ld' chained node
/*258547*/              OPC_CheckFoldableChainNode,
/*258548*/              OPC_RecordChild1, // #4 = $src3
/*258549*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258551*/              OPC_CheckPredicate, 9, // Predicate_load
/*258553*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*258555*/              OPC_SwitchType /*2 cases */, 29, MVT::v2i64,// ->258587
/*258558*/                OPC_MoveParent,
/*258559*/                OPC_MoveParent,
/*258560*/                OPC_MoveParent,
/*258561*/                OPC_CheckChild2Same, 1,
/*258563*/                OPC_CheckType, MVT::v8i16,
/*258565*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*258567*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*258570*/                OPC_EmitMergeInputChains, 1, 3, 
/*258573*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src1) - Complexity = 31
                          // Dst: (VPSHLDVWZ128mk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*258587*/              /*SwitchType*/ 29, MVT::v4i64,// ->258618
/*258589*/                OPC_MoveParent,
/*258590*/                OPC_MoveParent,
/*258591*/                OPC_MoveParent,
/*258592*/                OPC_CheckChild2Same, 1,
/*258594*/                OPC_CheckType, MVT::v8i32,
/*258596*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*258598*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*258601*/                OPC_EmitMergeInputChains, 1, 3, 
/*258604*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                          // Dst: (VPSHLDVDZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*258618*/              0, // EndSwitchType
/*258619*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST),// ->258700
/*258622*/              OPC_MoveChild0,
/*258623*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258626*/              OPC_RecordMemRef,
/*258627*/              OPC_RecordNode, // #3 = 'ld' chained node
/*258628*/              OPC_CheckFoldableChainNode,
/*258629*/              OPC_RecordChild1, // #4 = $src3
/*258630*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258632*/              OPC_SwitchType /*2 cases */, 31, MVT::i32,// ->258666
/*258635*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*258637*/                OPC_MoveParent,
/*258638*/                OPC_MoveParent,
/*258639*/                OPC_MoveParent,
/*258640*/                OPC_CheckChild2Same, 1,
/*258642*/                OPC_CheckType, MVT::v8i32,
/*258644*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*258646*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*258649*/                OPC_EmitMergeInputChains, 1, 3, 
/*258652*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                          // Dst: (VPSHLDVDZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*258666*/              /*SwitchType*/ 31, MVT::i64,// ->258699
/*258668*/                OPC_CheckPredicate, 9, // Predicate_load
/*258670*/                OPC_MoveParent,
/*258671*/                OPC_MoveParent,
/*258672*/                OPC_MoveParent,
/*258673*/                OPC_CheckChild2Same, 1,
/*258675*/                OPC_CheckType, MVT::v8i64,
/*258677*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*258679*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*258682*/                OPC_EmitMergeInputChains, 1, 3, 
/*258685*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                          // Dst: (VPSHLDVQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*258699*/              0, // EndSwitchType
/*258700*/            /*SwitchOpcode*/ 38, TARGET_VAL(ISD::LOAD),// ->258741
/*258703*/              OPC_RecordMemRef,
/*258704*/              OPC_RecordNode, // #3 = 'ld' chained node
/*258705*/              OPC_CheckFoldableChainNode,
/*258706*/              OPC_RecordChild1, // #4 = $src3
/*258707*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258709*/              OPC_CheckPredicate, 9, // Predicate_load
/*258711*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*258713*/              OPC_MoveParent,
/*258714*/              OPC_MoveParent,
/*258715*/              OPC_CheckChild2Same, 1,
/*258717*/              OPC_CheckType, MVT::v8i64,
/*258719*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*258721*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*258724*/              OPC_EmitMergeInputChains, 1, 3, 
/*258727*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                        // Dst: (VPSHLDVQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*258741*/            0, // EndSwitchOpcode
/*258742*/          /*SwitchOpcode*/ 80|128,1/*208*/, TARGET_VAL(X86ISD::VSHRDV),// ->258954
/*258746*/            OPC_RecordChild0, // #1 = $src1
/*258747*/            OPC_RecordChild1, // #2 = $src2
/*258748*/            OPC_MoveChild2,
/*258749*/            OPC_SwitchOpcode /*3 cases */, 78, TARGET_VAL(ISD::BITCAST),// ->258831
/*258753*/              OPC_MoveChild0,
/*258754*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258757*/              OPC_RecordMemRef,
/*258758*/              OPC_RecordNode, // #3 = 'ld' chained node
/*258759*/              OPC_CheckFoldableChainNode,
/*258760*/              OPC_RecordChild1, // #4 = $src3
/*258761*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258763*/              OPC_CheckPredicate, 9, // Predicate_load
/*258765*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*258767*/              OPC_SwitchType /*2 cases */, 29, MVT::v2i64,// ->258799
/*258770*/                OPC_MoveParent,
/*258771*/                OPC_MoveParent,
/*258772*/                OPC_MoveParent,
/*258773*/                OPC_CheckChild2Same, 1,
/*258775*/                OPC_CheckType, MVT::v8i16,
/*258777*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*258779*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*258782*/                OPC_EmitMergeInputChains, 1, 3, 
/*258785*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v8i16] }:$src1) - Complexity = 31
                          // Dst: (VPSHRDVWZ128mk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*258799*/              /*SwitchType*/ 29, MVT::v4i64,// ->258830
/*258801*/                OPC_MoveParent,
/*258802*/                OPC_MoveParent,
/*258803*/                OPC_MoveParent,
/*258804*/                OPC_CheckChild2Same, 1,
/*258806*/                OPC_CheckType, MVT::v8i32,
/*258808*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*258810*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*258813*/                OPC_EmitMergeInputChains, 1, 3, 
/*258816*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                          // Dst: (VPSHRDVDZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*258830*/              0, // EndSwitchType
/*258831*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST),// ->258912
/*258834*/              OPC_MoveChild0,
/*258835*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258838*/              OPC_RecordMemRef,
/*258839*/              OPC_RecordNode, // #3 = 'ld' chained node
/*258840*/              OPC_CheckFoldableChainNode,
/*258841*/              OPC_RecordChild1, // #4 = $src3
/*258842*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258844*/              OPC_SwitchType /*2 cases */, 31, MVT::i32,// ->258878
/*258847*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*258849*/                OPC_MoveParent,
/*258850*/                OPC_MoveParent,
/*258851*/                OPC_MoveParent,
/*258852*/                OPC_CheckChild2Same, 1,
/*258854*/                OPC_CheckType, MVT::v8i32,
/*258856*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*258858*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*258861*/                OPC_EmitMergeInputChains, 1, 3, 
/*258864*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                          // Dst: (VPSHRDVDZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*258878*/              /*SwitchType*/ 31, MVT::i64,// ->258911
/*258880*/                OPC_CheckPredicate, 9, // Predicate_load
/*258882*/                OPC_MoveParent,
/*258883*/                OPC_MoveParent,
/*258884*/                OPC_MoveParent,
/*258885*/                OPC_CheckChild2Same, 1,
/*258887*/                OPC_CheckType, MVT::v8i64,
/*258889*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*258891*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*258894*/                OPC_EmitMergeInputChains, 1, 3, 
/*258897*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                          // Dst: (VPSHRDVQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*258911*/              0, // EndSwitchType
/*258912*/            /*SwitchOpcode*/ 38, TARGET_VAL(ISD::LOAD),// ->258953
/*258915*/              OPC_RecordMemRef,
/*258916*/              OPC_RecordNode, // #3 = 'ld' chained node
/*258917*/              OPC_CheckFoldableChainNode,
/*258918*/              OPC_RecordChild1, // #4 = $src3
/*258919*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258921*/              OPC_CheckPredicate, 9, // Predicate_load
/*258923*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*258925*/              OPC_MoveParent,
/*258926*/              OPC_MoveParent,
/*258927*/              OPC_CheckChild2Same, 1,
/*258929*/              OPC_CheckType, MVT::v8i64,
/*258931*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*258933*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*258936*/              OPC_EmitMergeInputChains, 1, 3, 
/*258939*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                        // Dst: (VPSHRDVQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*258953*/            0, // EndSwitchOpcode
/*258954*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VSHLD),// ->259006
/*258957*/            OPC_RecordChild0, // #1 = $src1
/*258958*/            OPC_MoveChild1,
/*258959*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*258962*/            OPC_RecordMemRef,
/*258963*/            OPC_RecordNode, // #2 = 'ld' chained node
/*258964*/            OPC_CheckFoldableChainNode,
/*258965*/            OPC_RecordChild1, // #3 = $src2
/*258966*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258968*/            OPC_CheckPredicate, 9, // Predicate_load
/*258970*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*258972*/            OPC_MoveParent,
/*258973*/            OPC_RecordChild2, // #4 = $src3
/*258974*/            OPC_MoveChild2,
/*258975*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*258978*/            OPC_MoveParent,
/*258979*/            OPC_MoveParent,
/*258980*/            OPC_RecordChild2, // #5 = $src0
/*258981*/            OPC_CheckType, MVT::v8i64,
/*258983*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*258985*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*258988*/            OPC_EmitMergeInputChains1_2,
/*258989*/            OPC_EmitConvertToTarget, 4,
/*258991*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VPSHLDQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*259006*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VSHRD),// ->259058
/*259009*/            OPC_RecordChild0, // #1 = $src1
/*259010*/            OPC_MoveChild1,
/*259011*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*259014*/            OPC_RecordMemRef,
/*259015*/            OPC_RecordNode, // #2 = 'ld' chained node
/*259016*/            OPC_CheckFoldableChainNode,
/*259017*/            OPC_RecordChild1, // #3 = $src2
/*259018*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259020*/            OPC_CheckPredicate, 9, // Predicate_load
/*259022*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*259024*/            OPC_MoveParent,
/*259025*/            OPC_RecordChild2, // #4 = $src3
/*259026*/            OPC_MoveChild2,
/*259027*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*259030*/            OPC_MoveParent,
/*259031*/            OPC_MoveParent,
/*259032*/            OPC_RecordChild2, // #5 = $src0
/*259033*/            OPC_CheckType, MVT::v8i64,
/*259035*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*259037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*259040*/            OPC_EmitMergeInputChains1_2,
/*259041*/            OPC_EmitConvertToTarget, 4,
/*259043*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                      // Dst: (VPSHRDQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*259058*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPBUSD),// ->259160
/*259061*/            OPC_RecordChild0, // #1 = $src1
/*259062*/            OPC_RecordChild1, // #2 = $src2
/*259063*/            OPC_MoveChild2,
/*259064*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->259113
/*259068*/              OPC_MoveChild0,
/*259069*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*259072*/              OPC_RecordMemRef,
/*259073*/              OPC_RecordNode, // #3 = 'ld' chained node
/*259074*/              OPC_CheckFoldableChainNode,
/*259075*/              OPC_RecordChild1, // #4 = $src3
/*259076*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259078*/              OPC_CheckPredicate, 9, // Predicate_load
/*259080*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*259082*/              OPC_CheckType, MVT::v4i64,
/*259084*/              OPC_MoveParent,
/*259085*/              OPC_MoveParent,
/*259086*/              OPC_MoveParent,
/*259087*/              OPC_CheckChild2Same, 1,
/*259089*/              OPC_CheckType, MVT::v8i32,
/*259091*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*259093*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*259096*/              OPC_EmitMergeInputChains, 1, 3, 
/*259099*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*259113*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->259159
/*259116*/              OPC_MoveChild0,
/*259117*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*259120*/              OPC_RecordMemRef,
/*259121*/              OPC_RecordNode, // #3 = 'ld' chained node
/*259122*/              OPC_CheckFoldableChainNode,
/*259123*/              OPC_RecordChild1, // #4 = $src3
/*259124*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259126*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*259128*/              OPC_CheckType, MVT::i32,
/*259130*/              OPC_MoveParent,
/*259131*/              OPC_MoveParent,
/*259132*/              OPC_MoveParent,
/*259133*/              OPC_CheckChild2Same, 1,
/*259135*/              OPC_CheckType, MVT::v8i32,
/*259137*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*259139*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*259142*/              OPC_EmitMergeInputChains, 1, 3, 
/*259145*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*259159*/            0, // EndSwitchOpcode
/*259160*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPBUSDS),// ->259262
/*259163*/            OPC_RecordChild0, // #1 = $src1
/*259164*/            OPC_RecordChild1, // #2 = $src2
/*259165*/            OPC_MoveChild2,
/*259166*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->259215
/*259170*/              OPC_MoveChild0,
/*259171*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*259174*/              OPC_RecordMemRef,
/*259175*/              OPC_RecordNode, // #3 = 'ld' chained node
/*259176*/              OPC_CheckFoldableChainNode,
/*259177*/              OPC_RecordChild1, // #4 = $src3
/*259178*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259180*/              OPC_CheckPredicate, 9, // Predicate_load
/*259182*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*259184*/              OPC_CheckType, MVT::v4i64,
/*259186*/              OPC_MoveParent,
/*259187*/              OPC_MoveParent,
/*259188*/              OPC_MoveParent,
/*259189*/              OPC_CheckChild2Same, 1,
/*259191*/              OPC_CheckType, MVT::v8i32,
/*259193*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*259195*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*259198*/              OPC_EmitMergeInputChains, 1, 3, 
/*259201*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDSZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*259215*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->259261
/*259218*/              OPC_MoveChild0,
/*259219*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*259222*/              OPC_RecordMemRef,
/*259223*/              OPC_RecordNode, // #3 = 'ld' chained node
/*259224*/              OPC_CheckFoldableChainNode,
/*259225*/              OPC_RecordChild1, // #4 = $src3
/*259226*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259228*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*259230*/              OPC_CheckType, MVT::i32,
/*259232*/              OPC_MoveParent,
/*259233*/              OPC_MoveParent,
/*259234*/              OPC_MoveParent,
/*259235*/              OPC_CheckChild2Same, 1,
/*259237*/              OPC_CheckType, MVT::v8i32,
/*259239*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*259241*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*259244*/              OPC_EmitMergeInputChains, 1, 3, 
/*259247*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDSZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*259261*/            0, // EndSwitchOpcode
/*259262*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPWSSD),// ->259364
/*259265*/            OPC_RecordChild0, // #1 = $src1
/*259266*/            OPC_RecordChild1, // #2 = $src2
/*259267*/            OPC_MoveChild2,
/*259268*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->259317
/*259272*/              OPC_MoveChild0,
/*259273*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*259276*/              OPC_RecordMemRef,
/*259277*/              OPC_RecordNode, // #3 = 'ld' chained node
/*259278*/              OPC_CheckFoldableChainNode,
/*259279*/              OPC_RecordChild1, // #4 = $src3
/*259280*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259282*/              OPC_CheckPredicate, 9, // Predicate_load
/*259284*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*259286*/              OPC_CheckType, MVT::v4i64,
/*259288*/              OPC_MoveParent,
/*259289*/              OPC_MoveParent,
/*259290*/              OPC_MoveParent,
/*259291*/              OPC_CheckChild2Same, 1,
/*259293*/              OPC_CheckType, MVT::v8i32,
/*259295*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*259297*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*259300*/              OPC_EmitMergeInputChains, 1, 3, 
/*259303*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*259317*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->259363
/*259320*/              OPC_MoveChild0,
/*259321*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*259324*/              OPC_RecordMemRef,
/*259325*/              OPC_RecordNode, // #3 = 'ld' chained node
/*259326*/              OPC_CheckFoldableChainNode,
/*259327*/              OPC_RecordChild1, // #4 = $src3
/*259328*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259330*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*259332*/              OPC_CheckType, MVT::i32,
/*259334*/              OPC_MoveParent,
/*259335*/              OPC_MoveParent,
/*259336*/              OPC_MoveParent,
/*259337*/              OPC_CheckChild2Same, 1,
/*259339*/              OPC_CheckType, MVT::v8i32,
/*259341*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*259343*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*259346*/              OPC_EmitMergeInputChains, 1, 3, 
/*259349*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*259363*/            0, // EndSwitchOpcode
/*259364*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPWSSDS),// ->259466
/*259367*/            OPC_RecordChild0, // #1 = $src1
/*259368*/            OPC_RecordChild1, // #2 = $src2
/*259369*/            OPC_MoveChild2,
/*259370*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->259419
/*259374*/              OPC_MoveChild0,
/*259375*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*259378*/              OPC_RecordMemRef,
/*259379*/              OPC_RecordNode, // #3 = 'ld' chained node
/*259380*/              OPC_CheckFoldableChainNode,
/*259381*/              OPC_RecordChild1, // #4 = $src3
/*259382*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259384*/              OPC_CheckPredicate, 9, // Predicate_load
/*259386*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*259388*/              OPC_CheckType, MVT::v4i64,
/*259390*/              OPC_MoveParent,
/*259391*/              OPC_MoveParent,
/*259392*/              OPC_MoveParent,
/*259393*/              OPC_CheckChild2Same, 1,
/*259395*/              OPC_CheckType, MVT::v8i32,
/*259397*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*259399*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*259402*/              OPC_EmitMergeInputChains, 1, 3, 
/*259405*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDSZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*259419*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->259465
/*259422*/              OPC_MoveChild0,
/*259423*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*259426*/              OPC_RecordMemRef,
/*259427*/              OPC_RecordNode, // #3 = 'ld' chained node
/*259428*/              OPC_CheckFoldableChainNode,
/*259429*/              OPC_RecordChild1, // #4 = $src3
/*259430*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259432*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*259434*/              OPC_CheckType, MVT::i32,
/*259436*/              OPC_MoveParent,
/*259437*/              OPC_MoveParent,
/*259438*/              OPC_MoveParent,
/*259439*/              OPC_CheckChild2Same, 1,
/*259441*/              OPC_CheckType, MVT::v8i32,
/*259443*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*259445*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*259448*/              OPC_EmitMergeInputChains, 1, 3, 
/*259451*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDSZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*259465*/            0, // EndSwitchOpcode
/*259466*/          /*SwitchOpcode*/ 117|128,3/*501*/, TARGET_VAL(ISD::LOAD),// ->259971
/*259470*/            OPC_RecordMemRef,
/*259471*/            OPC_RecordNode, // #1 = 'ld' chained node
/*259472*/            OPC_CheckFoldableChainNode,
/*259473*/            OPC_RecordChild1, // #2 = $src
/*259474*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259476*/            OPC_Scope, 66, /*->259544*/ // 5 children in Scope
/*259478*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*259480*/              OPC_Scope, 30, /*->259512*/ // 2 children in Scope
/*259482*/                OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*259484*/                OPC_MoveParent,
/*259485*/                OPC_MoveChild2,
/*259486*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*259489*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*259491*/                OPC_MoveParent,
/*259492*/                OPC_CheckType, MVT::v8i32,
/*259494*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259496*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*259499*/                OPC_EmitMergeInputChains1_1,
/*259500*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVZXBDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259512*/              /*Scope*/ 30, /*->259543*/
/*259513*/                OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*259515*/                OPC_MoveParent,
/*259516*/                OPC_MoveChild2,
/*259517*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*259520*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*259522*/                OPC_MoveParent,
/*259523*/                OPC_CheckType, MVT::v8i32,
/*259525*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259527*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*259530*/                OPC_EmitMergeInputChains1_1,
/*259531*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVZXWDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259543*/              0, /*End of Scope*/
/*259544*/            /*Scope*/ 66, /*->259611*/
/*259545*/              OPC_CheckPredicate, 60, // Predicate_sextload
/*259547*/              OPC_Scope, 30, /*->259579*/ // 2 children in Scope
/*259549*/                OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*259551*/                OPC_MoveParent,
/*259552*/                OPC_MoveChild2,
/*259553*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*259556*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*259558*/                OPC_MoveParent,
/*259559*/                OPC_CheckType, MVT::v8i32,
/*259561*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259563*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*259566*/                OPC_EmitMergeInputChains1_1,
/*259567*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVSXBDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259579*/              /*Scope*/ 30, /*->259610*/
/*259580*/                OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*259582*/                OPC_MoveParent,
/*259583*/                OPC_MoveChild2,
/*259584*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*259587*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*259589*/                OPC_MoveParent,
/*259590*/                OPC_CheckType, MVT::v8i32,
/*259592*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259594*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*259597*/                OPC_EmitMergeInputChains1_1,
/*259598*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVSXWDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259610*/              0, /*End of Scope*/
/*259611*/            /*Scope*/ 56, /*->259668*/
/*259612*/              OPC_CheckPredicate, 9, // Predicate_load
/*259614*/              OPC_Scope, 25, /*->259641*/ // 2 children in Scope
/*259616*/                OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*259618*/                OPC_MoveParent,
/*259619*/                OPC_RecordChild2, // #3 = $src0
/*259620*/                OPC_CheckType, MVT::v8i64,
/*259622*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*259624*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*259627*/                OPC_EmitMergeInputChains1_1,
/*259628*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, VR512:{ *:[v8i64] }:$src0) - Complexity = 25
                          // Dst: (VMOVDQA64Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*259641*/              /*Scope*/ 25, /*->259667*/
/*259642*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*259644*/                OPC_MoveParent,
/*259645*/                OPC_RecordChild2, // #3 = $src0
/*259646*/                OPC_CheckType, MVT::v8i64,
/*259648*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*259650*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*259653*/                OPC_EmitMergeInputChains1_1,
/*259654*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src0) - Complexity = 25
                          // Dst: (VMOVDQU64Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*259667*/              0, /*End of Scope*/
/*259668*/            /*Scope*/ 21|128,1/*149*/, /*->259819*/
/*259670*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*259672*/              OPC_Scope, 69, /*->259743*/ // 3 children in Scope
/*259674*/                OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*259676*/                OPC_MoveParent,
/*259677*/                OPC_RecordChild2, // #3 = $src0
/*259678*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->259700
/*259681*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*259683*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259686*/                  OPC_EmitMergeInputChains1_1,
/*259687*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, VR128X:{ *:[v8i16] }:$src0) - Complexity = 25
                            // Dst: (VPMOVZXBWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259700*/                /*SwitchType*/ 19, MVT::v8i32,// ->259721
/*259702*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259704*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259707*/                  OPC_EmitMergeInputChains1_1,
/*259708*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, VR256X:{ *:[v8i32] }:$src0) - Complexity = 25
                            // Dst: (VPMOVZXBDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259721*/                /*SwitchType*/ 19, MVT::v8i64,// ->259742
/*259723*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*259725*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259728*/                  OPC_EmitMergeInputChains1_1,
/*259729*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, VR512:{ *:[v8i64] }:$src0) - Complexity = 25
                            // Dst: (VPMOVZXBQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259742*/                0, // EndSwitchType
/*259743*/              /*Scope*/ 48, /*->259792*/
/*259744*/                OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*259746*/                OPC_MoveParent,
/*259747*/                OPC_RecordChild2, // #3 = $src0
/*259748*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->259770
/*259751*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259753*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259756*/                  OPC_EmitMergeInputChains1_1,
/*259757*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, VR256X:{ *:[v8i32] }:$src0) - Complexity = 25
                            // Dst: (VPMOVZXWDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259770*/                /*SwitchType*/ 19, MVT::v8i64,// ->259791
/*259772*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*259774*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259777*/                  OPC_EmitMergeInputChains1_1,
/*259778*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, VR512:{ *:[v8i64] }:$src0) - Complexity = 25
                            // Dst: (VPMOVZXWQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259791*/                0, // EndSwitchType
/*259792*/              /*Scope*/ 25, /*->259818*/
/*259793*/                OPC_CheckPredicate, 72, // Predicate_zextloadvi32
/*259795*/                OPC_MoveParent,
/*259796*/                OPC_RecordChild2, // #3 = $src0
/*259797*/                OPC_CheckType, MVT::v8i64,
/*259799*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*259801*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259804*/                OPC_EmitMergeInputChains1_1,
/*259805*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>>, VR512:{ *:[v8i64] }:$src0) - Complexity = 25
                          // Dst: (VPMOVZXDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259818*/              0, /*End of Scope*/
/*259819*/            /*Scope*/ 21|128,1/*149*/, /*->259970*/
/*259821*/              OPC_CheckPredicate, 60, // Predicate_sextload
/*259823*/              OPC_Scope, 69, /*->259894*/ // 3 children in Scope
/*259825*/                OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*259827*/                OPC_MoveParent,
/*259828*/                OPC_RecordChild2, // #3 = $src0
/*259829*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->259851
/*259832*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*259834*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259837*/                  OPC_EmitMergeInputChains1_1,
/*259838*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, VR128X:{ *:[v8i16] }:$src0) - Complexity = 25
                            // Dst: (VPMOVSXBWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259851*/                /*SwitchType*/ 19, MVT::v8i32,// ->259872
/*259853*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259855*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259858*/                  OPC_EmitMergeInputChains1_1,
/*259859*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, VR256X:{ *:[v8i32] }:$src0) - Complexity = 25
                            // Dst: (VPMOVSXBDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259872*/                /*SwitchType*/ 19, MVT::v8i64,// ->259893
/*259874*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*259876*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259879*/                  OPC_EmitMergeInputChains1_1,
/*259880*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, VR512:{ *:[v8i64] }:$src0) - Complexity = 25
                            // Dst: (VPMOVSXBQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259893*/                0, // EndSwitchType
/*259894*/              /*Scope*/ 48, /*->259943*/
/*259895*/                OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*259897*/                OPC_MoveParent,
/*259898*/                OPC_RecordChild2, // #3 = $src0
/*259899*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->259921
/*259902*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259904*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259907*/                  OPC_EmitMergeInputChains1_1,
/*259908*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, VR256X:{ *:[v8i32] }:$src0) - Complexity = 25
                            // Dst: (VPMOVSXWDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259921*/                /*SwitchType*/ 19, MVT::v8i64,// ->259942
/*259923*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*259925*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259928*/                  OPC_EmitMergeInputChains1_1,
/*259929*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, VR512:{ *:[v8i64] }:$src0) - Complexity = 25
                            // Dst: (VPMOVSXWQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259942*/                0, // EndSwitchType
/*259943*/              /*Scope*/ 25, /*->259969*/
/*259944*/                OPC_CheckPredicate, 72, // Predicate_sextloadvi32
/*259946*/                OPC_MoveParent,
/*259947*/                OPC_RecordChild2, // #3 = $src0
/*259948*/                OPC_CheckType, MVT::v8i64,
/*259950*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*259952*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*259955*/                OPC_EmitMergeInputChains1_1,
/*259956*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>>, VR512:{ *:[v8i64] }:$src0) - Complexity = 25
                          // Dst: (VPMOVSXDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*259969*/              0, /*End of Scope*/
/*259970*/            0, /*End of Scope*/
/*259971*/          /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::CVTTP2SI_RND),// ->260041
/*259974*/            OPC_RecordChild0, // #1 = $src
/*259975*/            OPC_Scope, 31, /*->260008*/ // 2 children in Scope
/*259977*/              OPC_CheckChild0Type, MVT::v8f64,
/*259979*/              OPC_CheckChild1Integer, 8, 
/*259981*/              OPC_MoveParent,
/*259982*/              OPC_MoveChild2,
/*259983*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*259986*/              OPC_MoveChild0,
/*259987*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*259990*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*259992*/              OPC_CheckType, MVT::v16i32,
/*259994*/              OPC_MoveParent,
/*259995*/              OPC_MoveParent,
/*259996*/              OPC_CheckType, MVT::v8i64,
/*259998*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*260000*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrrbkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VCVTTPD2QQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*260008*/            /*Scope*/ 31, /*->260040*/
/*260009*/              OPC_CheckChild0Type, MVT::v8f32,
/*260011*/              OPC_CheckChild1Integer, 8, 
/*260013*/              OPC_MoveParent,
/*260014*/              OPC_MoveChild2,
/*260015*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260018*/              OPC_MoveChild0,
/*260019*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260022*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260024*/              OPC_CheckType, MVT::v16i32,
/*260026*/              OPC_MoveParent,
/*260027*/              OPC_MoveParent,
/*260028*/              OPC_CheckType, MVT::v8i64,
/*260030*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*260032*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrrbkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VCVTTPS2QQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*260040*/            0, /*End of Scope*/
/*260041*/          /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::CVTTP2UI_RND),// ->260111
/*260044*/            OPC_RecordChild0, // #1 = $src
/*260045*/            OPC_Scope, 31, /*->260078*/ // 2 children in Scope
/*260047*/              OPC_CheckChild0Type, MVT::v8f64,
/*260049*/              OPC_CheckChild1Integer, 8, 
/*260051*/              OPC_MoveParent,
/*260052*/              OPC_MoveChild2,
/*260053*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260056*/              OPC_MoveChild0,
/*260057*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260060*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260062*/              OPC_CheckType, MVT::v16i32,
/*260064*/              OPC_MoveParent,
/*260065*/              OPC_MoveParent,
/*260066*/              OPC_CheckType, MVT::v8i64,
/*260068*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*260070*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrrbkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VCVTTPD2UQQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*260078*/            /*Scope*/ 31, /*->260110*/
/*260079*/              OPC_CheckChild0Type, MVT::v8f32,
/*260081*/              OPC_CheckChild1Integer, 8, 
/*260083*/              OPC_MoveParent,
/*260084*/              OPC_MoveChild2,
/*260085*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260088*/              OPC_MoveChild0,
/*260089*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260092*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260094*/              OPC_CheckType, MVT::v16i32,
/*260096*/              OPC_MoveParent,
/*260097*/              OPC_MoveParent,
/*260098*/              OPC_CheckType, MVT::v8i64,
/*260100*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*260102*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrrbkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VCVTTPS2UQQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*260110*/            0, /*End of Scope*/
/*260111*/          0, // EndSwitchOpcode
/*260112*/        0, /*End of Scope*/
/*260113*/      /*Scope*/ 39|128,68|128,1/*25127*/, /*->285243*/
/*260116*/        OPC_CheckChild0Type, MVT::v16i1,
/*260118*/        OPC_Scope, 101|128,15/*2021*/, /*->262142*/ // 5 children in Scope
/*260121*/          OPC_MoveChild1,
/*260122*/          OPC_SwitchOpcode /*13 cases */, 8|128,8/*1032*/, TARGET_VAL(ISD::BITCAST),// ->261159
/*260127*/            OPC_Scope, 18|128,1/*146*/, /*->260276*/ // 3 children in Scope
/*260130*/              OPC_MoveChild0,
/*260131*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*260134*/              OPC_RecordChild0, // #1 = $src1
/*260135*/              OPC_MoveChild1,
/*260136*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260139*/              OPC_MoveChild0,
/*260140*/              OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(X86ISD::VBROADCAST),// ->260207
/*260144*/                OPC_MoveChild0,
/*260145*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260148*/                OPC_RecordMemRef,
/*260149*/                OPC_RecordNode, // #2 = 'ld' chained node
/*260150*/                OPC_CheckFoldableChainNode,
/*260151*/                OPC_RecordChild1, // #3 = $src2
/*260152*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260154*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*260156*/                OPC_CheckType, MVT::i32,
/*260158*/                OPC_MoveParent,
/*260159*/                OPC_CheckType, MVT::v16i32,
/*260161*/                OPC_MoveParent,
/*260162*/                OPC_MoveParent,
/*260163*/                OPC_RecordChild2, // #4 = $src3
/*260164*/                OPC_MoveChild2,
/*260165*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*260168*/                OPC_MoveParent,
/*260169*/                OPC_CheckType, MVT::v8i64,
/*260171*/                OPC_MoveParent,
/*260172*/                OPC_MoveParent,
/*260173*/                OPC_MoveChild2,
/*260174*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260177*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260179*/                OPC_MoveParent,
/*260180*/                OPC_CheckType, MVT::v16i32,
/*260182*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*260184*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260187*/                OPC_EmitMergeInputChains1_2,
/*260188*/                OPC_EmitConvertToTarget, 4,
/*260190*/                OPC_EmitNodeXForm, 14, 10, // ValignqImm32XForm
/*260193*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 44
                          // Dst: (VALIGNDZrmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*260207*/              /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->260275
/*260210*/                OPC_RecordMemRef,
/*260211*/                OPC_RecordNode, // #2 = 'ld' chained node
/*260212*/                OPC_CheckFoldableChainNode,
/*260213*/                OPC_RecordChild1, // #3 = $src2
/*260214*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260216*/                OPC_CheckPredicate, 9, // Predicate_load
/*260218*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*260220*/                OPC_CheckType, MVT::v2i64,
/*260222*/                OPC_MoveParent,
/*260223*/                OPC_MoveParent,
/*260224*/                OPC_RecordChild2, // #4 = $src3
/*260225*/                OPC_MoveChild2,
/*260226*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*260229*/                OPC_MoveParent,
/*260230*/                OPC_CheckType, MVT::v4i32,
/*260232*/                OPC_MoveParent,
/*260233*/                OPC_MoveParent,
/*260234*/                OPC_MoveChild2,
/*260235*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260238*/                OPC_MoveChild0,
/*260239*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260242*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260244*/                OPC_CheckType, MVT::v4i32,
/*260246*/                OPC_MoveParent,
/*260247*/                OPC_MoveParent,
/*260248*/                OPC_CheckType, MVT::v16i8,
/*260250*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*260252*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260255*/                OPC_EmitMergeInputChains1_2,
/*260256*/                OPC_EmitConvertToTarget, 4,
/*260258*/                OPC_EmitNodeXForm, 21, 10, // ValigndImm8XForm
/*260261*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 11, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                          // Dst: (VPALIGNRZ128rmikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (ValigndImm8XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*260275*/              0, // EndSwitchOpcode
/*260276*/            /*Scope*/ 100|128,1/*228*/, /*->260506*/
/*260278*/              OPC_RecordChild0, // #1 = $ins
/*260279*/              OPC_MoveChild0,
/*260280*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*260283*/              OPC_RecordChild0, // #2 = $src1
/*260284*/              OPC_MoveChild1,
/*260285*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260288*/              OPC_MoveChild0,
/*260289*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260292*/              OPC_RecordMemRef,
/*260293*/              OPC_RecordNode, // #3 = 'ld' chained node
/*260294*/              OPC_CheckFoldableChainNode,
/*260295*/              OPC_RecordChild1, // #4 = $src2
/*260296*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260298*/              OPC_CheckPredicate, 9, // Predicate_load
/*260300*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*260302*/              OPC_SwitchType /*2 cases */, 99, MVT::v2i64,// ->260404
/*260305*/                OPC_MoveParent,
/*260306*/                OPC_SwitchType /*2 cases */, 46, MVT::v8i16,// ->260355
/*260309*/                  OPC_MoveParent,
/*260310*/                  OPC_MoveChild2,
/*260311*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*260314*/                  OPC_CheckType, MVT::iPTR,
/*260316*/                  OPC_MoveParent,
/*260317*/                  OPC_CheckType, MVT::v32i16,
/*260319*/                  OPC_MoveParent,
/*260320*/                  OPC_MoveParent,
/*260321*/                  OPC_MoveChild2,
/*260322*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260325*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260327*/                  OPC_MoveParent,
/*260328*/                  OPC_CheckType, MVT::v16i32,
/*260330*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*260332*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260335*/                  OPC_EmitMergeInputChains, 1, 3, 
/*260338*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*260341*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VINSERTI32x4Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*260355*/                /*SwitchType*/ 46, MVT::v16i8,// ->260403
/*260357*/                  OPC_MoveParent,
/*260358*/                  OPC_MoveChild2,
/*260359*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*260362*/                  OPC_CheckType, MVT::iPTR,
/*260364*/                  OPC_MoveParent,
/*260365*/                  OPC_CheckType, MVT::v64i8,
/*260367*/                  OPC_MoveParent,
/*260368*/                  OPC_MoveParent,
/*260369*/                  OPC_MoveChild2,
/*260370*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260373*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260375*/                  OPC_MoveParent,
/*260376*/                  OPC_CheckType, MVT::v16i32,
/*260378*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*260380*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260383*/                  OPC_EmitMergeInputChains, 1, 3, 
/*260386*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*260389*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VINSERTI32x4Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*260403*/                0, // EndSwitchType
/*260404*/              /*SwitchType*/ 99, MVT::v4i64,// ->260505
/*260406*/                OPC_MoveParent,
/*260407*/                OPC_SwitchType /*2 cases */, 46, MVT::v16i16,// ->260456
/*260410*/                  OPC_MoveParent,
/*260411*/                  OPC_MoveChild2,
/*260412*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*260415*/                  OPC_CheckType, MVT::iPTR,
/*260417*/                  OPC_MoveParent,
/*260418*/                  OPC_CheckType, MVT::v32i16,
/*260420*/                  OPC_MoveParent,
/*260421*/                  OPC_MoveParent,
/*260422*/                  OPC_MoveChild2,
/*260423*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260426*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260428*/                  OPC_MoveParent,
/*260429*/                  OPC_CheckType, MVT::v16i32,
/*260431*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*260433*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260436*/                  OPC_EmitMergeInputChains, 1, 3, 
/*260439*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*260442*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VINSERTI32x8Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*260456*/                /*SwitchType*/ 46, MVT::v32i8,// ->260504
/*260458*/                  OPC_MoveParent,
/*260459*/                  OPC_MoveChild2,
/*260460*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*260463*/                  OPC_CheckType, MVT::iPTR,
/*260465*/                  OPC_MoveParent,
/*260466*/                  OPC_CheckType, MVT::v64i8,
/*260468*/                  OPC_MoveParent,
/*260469*/                  OPC_MoveParent,
/*260470*/                  OPC_MoveChild2,
/*260471*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260474*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260476*/                  OPC_MoveParent,
/*260477*/                  OPC_CheckType, MVT::v16i32,
/*260479*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*260481*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260484*/                  OPC_EmitMergeInputChains, 1, 3, 
/*260487*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*260490*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VINSERTI32x8Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*260504*/                0, // EndSwitchType
/*260505*/              0, // EndSwitchType
/*260506*/            /*Scope*/ 10|128,5/*650*/, /*->261158*/
/*260508*/              OPC_MoveChild0,
/*260509*/              OPC_SwitchOpcode /*6 cases */, 124, TARGET_VAL(ISD::AND),// ->260637
/*260513*/                OPC_Scope, 60, /*->260575*/ // 2 children in Scope
/*260515*/                  OPC_RecordChild0, // #1 = $src1
/*260516*/                  OPC_MoveChild1,
/*260517*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260520*/                  OPC_MoveChild0,
/*260521*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*260524*/                  OPC_MoveChild0,
/*260525*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260528*/                  OPC_RecordMemRef,
/*260529*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*260530*/                  OPC_CheckFoldableChainNode,
/*260531*/                  OPC_RecordChild1, // #3 = $src2
/*260532*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260534*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*260536*/                  OPC_CheckType, MVT::i32,
/*260538*/                  OPC_MoveParent,
/*260539*/                  OPC_CheckType, MVT::v16i32,
/*260541*/                  OPC_MoveParent,
/*260542*/                  OPC_MoveParent,
/*260543*/                  OPC_CheckType, MVT::v8i64,
/*260545*/                  OPC_MoveParent,
/*260546*/                  OPC_MoveParent,
/*260547*/                  OPC_MoveChild2,
/*260548*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260551*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260553*/                  OPC_MoveParent,
/*260554*/                  OPC_CheckType, MVT::v16i32,
/*260556*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*260558*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260561*/                  OPC_EmitMergeInputChains1_2,
/*260562*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPANDDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260575*/                /*Scope*/ 60, /*->260636*/
/*260576*/                  OPC_MoveChild0,
/*260577*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260580*/                  OPC_MoveChild0,
/*260581*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*260584*/                  OPC_MoveChild0,
/*260585*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260588*/                  OPC_RecordMemRef,
/*260589*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*260590*/                  OPC_CheckFoldableChainNode,
/*260591*/                  OPC_RecordChild1, // #2 = $src2
/*260592*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260594*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*260596*/                  OPC_CheckType, MVT::i32,
/*260598*/                  OPC_MoveParent,
/*260599*/                  OPC_CheckType, MVT::v16i32,
/*260601*/                  OPC_MoveParent,
/*260602*/                  OPC_MoveParent,
/*260603*/                  OPC_RecordChild1, // #3 = $src1
/*260604*/                  OPC_CheckType, MVT::v8i64,
/*260606*/                  OPC_MoveParent,
/*260607*/                  OPC_MoveParent,
/*260608*/                  OPC_MoveChild2,
/*260609*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260612*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260614*/                  OPC_MoveParent,
/*260615*/                  OPC_CheckType, MVT::v16i32,
/*260617*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*260619*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260622*/                  OPC_EmitMergeInputChains1_1,
/*260623*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPANDDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260636*/                0, /*End of Scope*/
/*260637*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::OR),// ->260764
/*260640*/                OPC_Scope, 60, /*->260702*/ // 2 children in Scope
/*260642*/                  OPC_RecordChild0, // #1 = $src1
/*260643*/                  OPC_MoveChild1,
/*260644*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260647*/                  OPC_MoveChild0,
/*260648*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*260651*/                  OPC_MoveChild0,
/*260652*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260655*/                  OPC_RecordMemRef,
/*260656*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*260657*/                  OPC_CheckFoldableChainNode,
/*260658*/                  OPC_RecordChild1, // #3 = $src2
/*260659*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260661*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*260663*/                  OPC_CheckType, MVT::i32,
/*260665*/                  OPC_MoveParent,
/*260666*/                  OPC_CheckType, MVT::v16i32,
/*260668*/                  OPC_MoveParent,
/*260669*/                  OPC_MoveParent,
/*260670*/                  OPC_CheckType, MVT::v8i64,
/*260672*/                  OPC_MoveParent,
/*260673*/                  OPC_MoveParent,
/*260674*/                  OPC_MoveChild2,
/*260675*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260678*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260680*/                  OPC_MoveParent,
/*260681*/                  OPC_CheckType, MVT::v16i32,
/*260683*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*260685*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260688*/                  OPC_EmitMergeInputChains1_2,
/*260689*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPORDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260702*/                /*Scope*/ 60, /*->260763*/
/*260703*/                  OPC_MoveChild0,
/*260704*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260707*/                  OPC_MoveChild0,
/*260708*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*260711*/                  OPC_MoveChild0,
/*260712*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260715*/                  OPC_RecordMemRef,
/*260716*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*260717*/                  OPC_CheckFoldableChainNode,
/*260718*/                  OPC_RecordChild1, // #2 = $src2
/*260719*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260721*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*260723*/                  OPC_CheckType, MVT::i32,
/*260725*/                  OPC_MoveParent,
/*260726*/                  OPC_CheckType, MVT::v16i32,
/*260728*/                  OPC_MoveParent,
/*260729*/                  OPC_MoveParent,
/*260730*/                  OPC_RecordChild1, // #3 = $src1
/*260731*/                  OPC_CheckType, MVT::v8i64,
/*260733*/                  OPC_MoveParent,
/*260734*/                  OPC_MoveParent,
/*260735*/                  OPC_MoveChild2,
/*260736*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260739*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260741*/                  OPC_MoveParent,
/*260742*/                  OPC_CheckType, MVT::v16i32,
/*260744*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*260746*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260749*/                  OPC_EmitMergeInputChains1_1,
/*260750*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPORDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260763*/                0, /*End of Scope*/
/*260764*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::XOR),// ->260891
/*260767*/                OPC_Scope, 60, /*->260829*/ // 2 children in Scope
/*260769*/                  OPC_RecordChild0, // #1 = $src1
/*260770*/                  OPC_MoveChild1,
/*260771*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260774*/                  OPC_MoveChild0,
/*260775*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*260778*/                  OPC_MoveChild0,
/*260779*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260782*/                  OPC_RecordMemRef,
/*260783*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*260784*/                  OPC_CheckFoldableChainNode,
/*260785*/                  OPC_RecordChild1, // #3 = $src2
/*260786*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260788*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*260790*/                  OPC_CheckType, MVT::i32,
/*260792*/                  OPC_MoveParent,
/*260793*/                  OPC_CheckType, MVT::v16i32,
/*260795*/                  OPC_MoveParent,
/*260796*/                  OPC_MoveParent,
/*260797*/                  OPC_CheckType, MVT::v8i64,
/*260799*/                  OPC_MoveParent,
/*260800*/                  OPC_MoveParent,
/*260801*/                  OPC_MoveChild2,
/*260802*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260805*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260807*/                  OPC_MoveParent,
/*260808*/                  OPC_CheckType, MVT::v16i32,
/*260810*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*260812*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260815*/                  OPC_EmitMergeInputChains1_2,
/*260816*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPXORDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260829*/                /*Scope*/ 60, /*->260890*/
/*260830*/                  OPC_MoveChild0,
/*260831*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260834*/                  OPC_MoveChild0,
/*260835*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*260838*/                  OPC_MoveChild0,
/*260839*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260842*/                  OPC_RecordMemRef,
/*260843*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*260844*/                  OPC_CheckFoldableChainNode,
/*260845*/                  OPC_RecordChild1, // #2 = $src2
/*260846*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260848*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*260850*/                  OPC_CheckType, MVT::i32,
/*260852*/                  OPC_MoveParent,
/*260853*/                  OPC_CheckType, MVT::v16i32,
/*260855*/                  OPC_MoveParent,
/*260856*/                  OPC_MoveParent,
/*260857*/                  OPC_RecordChild1, // #3 = $src1
/*260858*/                  OPC_CheckType, MVT::v8i64,
/*260860*/                  OPC_MoveParent,
/*260861*/                  OPC_MoveParent,
/*260862*/                  OPC_MoveChild2,
/*260863*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260866*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260868*/                  OPC_MoveParent,
/*260869*/                  OPC_CheckType, MVT::v16i32,
/*260871*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*260873*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260876*/                  OPC_EmitMergeInputChains1_1,
/*260877*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                            // Dst: (VPXORDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260890*/                0, /*End of Scope*/
/*260891*/              /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::ANDNP),// ->260954
/*260894*/                OPC_RecordChild0, // #1 = $src1
/*260895*/                OPC_MoveChild1,
/*260896*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*260899*/                OPC_MoveChild0,
/*260900*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*260903*/                OPC_MoveChild0,
/*260904*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260907*/                OPC_RecordMemRef,
/*260908*/                OPC_RecordNode, // #2 = 'ld' chained node
/*260909*/                OPC_CheckFoldableChainNode,
/*260910*/                OPC_RecordChild1, // #3 = $src2
/*260911*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260913*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*260915*/                OPC_CheckType, MVT::i32,
/*260917*/                OPC_MoveParent,
/*260918*/                OPC_CheckType, MVT::v16i32,
/*260920*/                OPC_MoveParent,
/*260921*/                OPC_MoveParent,
/*260922*/                OPC_CheckType, MVT::v8i64,
/*260924*/                OPC_MoveParent,
/*260925*/                OPC_MoveParent,
/*260926*/                OPC_MoveChild2,
/*260927*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260930*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260932*/                OPC_MoveParent,
/*260933*/                OPC_CheckType, MVT::v16i32,
/*260935*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*260937*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260940*/                OPC_EmitMergeInputChains1_2,
/*260941*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                          // Dst: (VPANDNDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260954*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::SHUF128),// ->261019
/*260957*/                OPC_RecordChild0, // #1 = $src1
/*260958*/                OPC_MoveChild1,
/*260959*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*260962*/                OPC_MoveChild0,
/*260963*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260966*/                OPC_RecordMemRef,
/*260967*/                OPC_RecordNode, // #2 = 'ld' chained node
/*260968*/                OPC_CheckFoldableChainNode,
/*260969*/                OPC_RecordChild1, // #3 = $src2
/*260970*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260972*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*260974*/                OPC_CheckType, MVT::i32,
/*260976*/                OPC_MoveParent,
/*260977*/                OPC_MoveParent,
/*260978*/                OPC_RecordChild2, // #4 = $src3
/*260979*/                OPC_MoveChild2,
/*260980*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*260983*/                OPC_MoveParent,
/*260984*/                OPC_CheckType, MVT::v8i64,
/*260986*/                OPC_MoveParent,
/*260987*/                OPC_MoveParent,
/*260988*/                OPC_MoveChild2,
/*260989*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*260992*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*260994*/                OPC_MoveParent,
/*260995*/                OPC_CheckType, MVT::v16i32,
/*260997*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*260999*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261002*/                OPC_EmitMergeInputChains1_2,
/*261003*/                OPC_EmitConvertToTarget, 4,
/*261005*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 41
                          // Dst: (VSHUFI32X4Zrmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*261019*/              /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(X86ISD::VALIGN),// ->261157
/*261023*/                OPC_RecordChild0, // #1 = $src1
/*261024*/                OPC_MoveChild1,
/*261025*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->261091
/*261029*/                  OPC_RecordMemRef,
/*261030*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*261031*/                  OPC_CheckFoldableChainNode,
/*261032*/                  OPC_RecordChild1, // #3 = $src2
/*261033*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261035*/                  OPC_CheckPredicate, 9, // Predicate_load
/*261037*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*261039*/                  OPC_MoveParent,
/*261040*/                  OPC_RecordChild2, // #4 = $src3
/*261041*/                  OPC_MoveChild2,
/*261042*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261045*/                  OPC_MoveParent,
/*261046*/                  OPC_CheckType, MVT::v2i64,
/*261048*/                  OPC_MoveParent,
/*261049*/                  OPC_MoveParent,
/*261050*/                  OPC_MoveChild2,
/*261051*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261054*/                  OPC_MoveChild0,
/*261055*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261058*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261060*/                  OPC_CheckType, MVT::v4i32,
/*261062*/                  OPC_MoveParent,
/*261063*/                  OPC_MoveParent,
/*261064*/                  OPC_CheckType, MVT::v16i8,
/*261066*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*261068*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261071*/                  OPC_EmitMergeInputChains1_2,
/*261072*/                  OPC_EmitConvertToTarget, 4,
/*261074*/                  OPC_EmitNodeXForm, 22, 10, // ValignqImm8XForm
/*261077*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 11, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                            // Dst: (VPALIGNRZ128rmikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm8XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*261091*/                /*SwitchOpcode*/ 62, TARGET_VAL(ISD::BITCAST),// ->261156
/*261094*/                  OPC_MoveChild0,
/*261095*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*261098*/                  OPC_MoveChild0,
/*261099*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*261102*/                  OPC_RecordMemRef,
/*261103*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*261104*/                  OPC_CheckFoldableChainNode,
/*261105*/                  OPC_RecordChild1, // #3 = $src2
/*261106*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261108*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*261110*/                  OPC_CheckType, MVT::i32,
/*261112*/                  OPC_MoveParent,
/*261113*/                  OPC_CheckType, MVT::v16i32,
/*261115*/                  OPC_MoveParent,
/*261116*/                  OPC_MoveParent,
/*261117*/                  OPC_RecordChild2, // #4 = $src3
/*261118*/                  OPC_MoveChild2,
/*261119*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261122*/                  OPC_MoveParent,
/*261123*/                  OPC_CheckType, MVT::v8i64,
/*261125*/                  OPC_MoveParent,
/*261126*/                  OPC_MoveParent,
/*261127*/                  OPC_RecordChild2, // #5 = $src0
/*261128*/                  OPC_CheckType, MVT::v16i32,
/*261130*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*261132*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*261135*/                  OPC_EmitMergeInputChains1_2,
/*261136*/                  OPC_EmitConvertToTarget, 4,
/*261138*/                  OPC_EmitNodeXForm, 14, 11, // ValignqImm32XForm
/*261141*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 12, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (imm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 40
                            // Dst: (VALIGNDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*261156*/                0, // EndSwitchOpcode
/*261157*/              0, // EndSwitchOpcode
/*261158*/            0, /*End of Scope*/
/*261159*/          /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->261300
/*261163*/            OPC_RecordChild0, // #1 = $src1
/*261164*/            OPC_MoveChild1,
/*261165*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261168*/            OPC_MoveChild0,
/*261169*/            OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(X86ISD::VBROADCAST),// ->261237
/*261173*/              OPC_MoveChild0,
/*261174*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*261177*/              OPC_RecordMemRef,
/*261178*/              OPC_RecordNode, // #2 = 'ld' chained node
/*261179*/              OPC_CheckFoldableChainNode,
/*261180*/              OPC_RecordChild1, // #3 = $src2
/*261181*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261183*/              OPC_CheckPredicate, 9, // Predicate_load
/*261185*/              OPC_CheckType, MVT::i64,
/*261187*/              OPC_MoveParent,
/*261188*/              OPC_CheckType, MVT::v2i64,
/*261190*/              OPC_MoveParent,
/*261191*/              OPC_MoveParent,
/*261192*/              OPC_RecordChild2, // #4 = $src3
/*261193*/              OPC_MoveChild2,
/*261194*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261197*/              OPC_MoveParent,
/*261198*/              OPC_MoveParent,
/*261199*/              OPC_MoveChild2,
/*261200*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261203*/              OPC_MoveChild0,
/*261204*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261207*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261209*/              OPC_CheckType, MVT::v4i32,
/*261211*/              OPC_MoveParent,
/*261212*/              OPC_MoveParent,
/*261213*/              OPC_CheckType, MVT::v16i8,
/*261215*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*261217*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261220*/              OPC_EmitMergeInputChains1_2,
/*261221*/              OPC_EmitConvertToTarget, 4,
/*261223*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                        // Dst: (VGF2P8AFFINEINVQBZ128rmbikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*261237*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->261299
/*261240*/              OPC_RecordMemRef,
/*261241*/              OPC_RecordNode, // #2 = 'ld' chained node
/*261242*/              OPC_CheckFoldableChainNode,
/*261243*/              OPC_RecordChild1, // #3 = $src2
/*261244*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261246*/              OPC_CheckPredicate, 9, // Predicate_load
/*261248*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*261250*/              OPC_CheckType, MVT::v2i64,
/*261252*/              OPC_MoveParent,
/*261253*/              OPC_MoveParent,
/*261254*/              OPC_RecordChild2, // #4 = $src3
/*261255*/              OPC_MoveChild2,
/*261256*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261259*/              OPC_MoveParent,
/*261260*/              OPC_MoveParent,
/*261261*/              OPC_MoveChild2,
/*261262*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261265*/              OPC_MoveChild0,
/*261266*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261269*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261271*/              OPC_CheckType, MVT::v4i32,
/*261273*/              OPC_MoveParent,
/*261274*/              OPC_MoveParent,
/*261275*/              OPC_CheckType, MVT::v16i8,
/*261277*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*261279*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261282*/              OPC_EmitMergeInputChains1_2,
/*261283*/              OPC_EmitConvertToTarget, 4,
/*261285*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGF2P8AFFINEINVQBZ128rmikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*261299*/            0, // EndSwitchOpcode
/*261300*/          /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->261441
/*261304*/            OPC_RecordChild0, // #1 = $src1
/*261305*/            OPC_MoveChild1,
/*261306*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261309*/            OPC_MoveChild0,
/*261310*/            OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(X86ISD::VBROADCAST),// ->261378
/*261314*/              OPC_MoveChild0,
/*261315*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*261318*/              OPC_RecordMemRef,
/*261319*/              OPC_RecordNode, // #2 = 'ld' chained node
/*261320*/              OPC_CheckFoldableChainNode,
/*261321*/              OPC_RecordChild1, // #3 = $src2
/*261322*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261324*/              OPC_CheckPredicate, 9, // Predicate_load
/*261326*/              OPC_CheckType, MVT::i64,
/*261328*/              OPC_MoveParent,
/*261329*/              OPC_CheckType, MVT::v2i64,
/*261331*/              OPC_MoveParent,
/*261332*/              OPC_MoveParent,
/*261333*/              OPC_RecordChild2, // #4 = $src3
/*261334*/              OPC_MoveChild2,
/*261335*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261338*/              OPC_MoveParent,
/*261339*/              OPC_MoveParent,
/*261340*/              OPC_MoveChild2,
/*261341*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261344*/              OPC_MoveChild0,
/*261345*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261348*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261350*/              OPC_CheckType, MVT::v4i32,
/*261352*/              OPC_MoveParent,
/*261353*/              OPC_MoveParent,
/*261354*/              OPC_CheckType, MVT::v16i8,
/*261356*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*261358*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261361*/              OPC_EmitMergeInputChains1_2,
/*261362*/              OPC_EmitConvertToTarget, 4,
/*261364*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                        // Dst: (VGF2P8AFFINEQBZ128rmbikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*261378*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->261440
/*261381*/              OPC_RecordMemRef,
/*261382*/              OPC_RecordNode, // #2 = 'ld' chained node
/*261383*/              OPC_CheckFoldableChainNode,
/*261384*/              OPC_RecordChild1, // #3 = $src2
/*261385*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261387*/              OPC_CheckPredicate, 9, // Predicate_load
/*261389*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*261391*/              OPC_CheckType, MVT::v2i64,
/*261393*/              OPC_MoveParent,
/*261394*/              OPC_MoveParent,
/*261395*/              OPC_RecordChild2, // #4 = $src3
/*261396*/              OPC_MoveChild2,
/*261397*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261400*/              OPC_MoveParent,
/*261401*/              OPC_MoveParent,
/*261402*/              OPC_MoveChild2,
/*261403*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261406*/              OPC_MoveChild0,
/*261407*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261410*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261412*/              OPC_CheckType, MVT::v4i32,
/*261414*/              OPC_MoveParent,
/*261415*/              OPC_MoveParent,
/*261416*/              OPC_CheckType, MVT::v16i8,
/*261418*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*261420*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261423*/              OPC_EmitMergeInputChains1_2,
/*261424*/              OPC_EmitConvertToTarget, 4,
/*261426*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGF2P8AFFINEQBZ128rmikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*261440*/            0, // EndSwitchOpcode
/*261441*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::MULTISHIFT),// ->261510
/*261444*/            OPC_RecordChild0, // #1 = $src1
/*261445*/            OPC_CheckChild0Type, MVT::v16i8,
/*261447*/            OPC_MoveChild1,
/*261448*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261451*/            OPC_MoveChild0,
/*261452*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*261455*/            OPC_MoveChild0,
/*261456*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*261459*/            OPC_RecordMemRef,
/*261460*/            OPC_RecordNode, // #2 = 'ld' chained node
/*261461*/            OPC_CheckFoldableChainNode,
/*261462*/            OPC_RecordChild1, // #3 = $src2
/*261463*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261465*/            OPC_CheckPredicate, 9, // Predicate_load
/*261467*/            OPC_CheckType, MVT::i64,
/*261469*/            OPC_MoveParent,
/*261470*/            OPC_CheckType, MVT::v2i64,
/*261472*/            OPC_MoveParent,
/*261473*/            OPC_MoveParent,
/*261474*/            OPC_MoveParent,
/*261475*/            OPC_MoveChild2,
/*261476*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261479*/            OPC_MoveChild0,
/*261480*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261483*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261485*/            OPC_CheckType, MVT::v4i32,
/*261487*/            OPC_MoveParent,
/*261488*/            OPC_MoveParent,
/*261489*/            OPC_CheckType, MVT::v16i8,
/*261491*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*261493*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*261496*/            OPC_EmitMergeInputChains1_2,
/*261497*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86multishift:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPMULTISHIFTQBZ128rmbkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261510*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VSRLI),// ->261579
/*261513*/            OPC_MoveChild0,
/*261514*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261517*/            OPC_MoveChild0,
/*261518*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*261521*/            OPC_RecordMemRef,
/*261522*/            OPC_RecordNode, // #1 = 'ld' chained node
/*261523*/            OPC_CheckFoldableChainNode,
/*261524*/            OPC_RecordChild1, // #2 = $src1
/*261525*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261527*/            OPC_CheckPredicate, 9, // Predicate_load
/*261529*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*261531*/            OPC_CheckType, MVT::v4i64,
/*261533*/            OPC_MoveParent,
/*261534*/            OPC_MoveParent,
/*261535*/            OPC_RecordChild1, // #3 = $src2
/*261536*/            OPC_MoveChild1,
/*261537*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261540*/            OPC_MoveParent,
/*261541*/            OPC_MoveParent,
/*261542*/            OPC_MoveChild2,
/*261543*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261546*/            OPC_MoveChild0,
/*261547*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261550*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261552*/            OPC_CheckType, MVT::v8i32,
/*261554*/            OPC_MoveParent,
/*261555*/            OPC_MoveParent,
/*261556*/            OPC_CheckType, MVT::v16i16,
/*261558*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*261560*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*261563*/            OPC_EmitMergeInputChains1_1,
/*261564*/            OPC_EmitConvertToTarget, 3,
/*261566*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSRLWZ256mikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*261579*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VSHLI),// ->261648
/*261582*/            OPC_MoveChild0,
/*261583*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261586*/            OPC_MoveChild0,
/*261587*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*261590*/            OPC_RecordMemRef,
/*261591*/            OPC_RecordNode, // #1 = 'ld' chained node
/*261592*/            OPC_CheckFoldableChainNode,
/*261593*/            OPC_RecordChild1, // #2 = $src1
/*261594*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261596*/            OPC_CheckPredicate, 9, // Predicate_load
/*261598*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*261600*/            OPC_CheckType, MVT::v4i64,
/*261602*/            OPC_MoveParent,
/*261603*/            OPC_MoveParent,
/*261604*/            OPC_RecordChild1, // #3 = $src2
/*261605*/            OPC_MoveChild1,
/*261606*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261609*/            OPC_MoveParent,
/*261610*/            OPC_MoveParent,
/*261611*/            OPC_MoveChild2,
/*261612*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261615*/            OPC_MoveChild0,
/*261616*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261619*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261621*/            OPC_CheckType, MVT::v8i32,
/*261623*/            OPC_MoveParent,
/*261624*/            OPC_MoveParent,
/*261625*/            OPC_CheckType, MVT::v16i16,
/*261627*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*261629*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*261632*/            OPC_EmitMergeInputChains1_1,
/*261633*/            OPC_EmitConvertToTarget, 3,
/*261635*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSLLWZ256mikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*261648*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VSRAI),// ->261717
/*261651*/            OPC_MoveChild0,
/*261652*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261655*/            OPC_MoveChild0,
/*261656*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*261659*/            OPC_RecordMemRef,
/*261660*/            OPC_RecordNode, // #1 = 'ld' chained node
/*261661*/            OPC_CheckFoldableChainNode,
/*261662*/            OPC_RecordChild1, // #2 = $src1
/*261663*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261665*/            OPC_CheckPredicate, 9, // Predicate_load
/*261667*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*261669*/            OPC_CheckType, MVT::v4i64,
/*261671*/            OPC_MoveParent,
/*261672*/            OPC_MoveParent,
/*261673*/            OPC_RecordChild1, // #3 = $src2
/*261674*/            OPC_MoveChild1,
/*261675*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261678*/            OPC_MoveParent,
/*261679*/            OPC_MoveParent,
/*261680*/            OPC_MoveChild2,
/*261681*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261684*/            OPC_MoveChild0,
/*261685*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261688*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261690*/            OPC_CheckType, MVT::v8i32,
/*261692*/            OPC_MoveParent,
/*261693*/            OPC_MoveParent,
/*261694*/            OPC_CheckType, MVT::v16i16,
/*261696*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*261698*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*261701*/            OPC_EmitMergeInputChains1_1,
/*261702*/            OPC_EmitConvertToTarget, 3,
/*261704*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSRAWZ256mikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*261717*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::PSHUFHW),// ->261786
/*261720*/            OPC_MoveChild0,
/*261721*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261724*/            OPC_MoveChild0,
/*261725*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*261728*/            OPC_RecordMemRef,
/*261729*/            OPC_RecordNode, // #1 = 'ld' chained node
/*261730*/            OPC_CheckFoldableChainNode,
/*261731*/            OPC_RecordChild1, // #2 = $src1
/*261732*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261734*/            OPC_CheckPredicate, 9, // Predicate_load
/*261736*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*261738*/            OPC_CheckType, MVT::v4i64,
/*261740*/            OPC_MoveParent,
/*261741*/            OPC_MoveParent,
/*261742*/            OPC_RecordChild1, // #3 = $src2
/*261743*/            OPC_MoveChild1,
/*261744*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261747*/            OPC_MoveParent,
/*261748*/            OPC_MoveParent,
/*261749*/            OPC_MoveChild2,
/*261750*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261753*/            OPC_MoveChild0,
/*261754*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261757*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261759*/            OPC_CheckType, MVT::v8i32,
/*261761*/            OPC_MoveParent,
/*261762*/            OPC_MoveParent,
/*261763*/            OPC_CheckType, MVT::v16i16,
/*261765*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*261767*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*261770*/            OPC_EmitMergeInputChains1_1,
/*261771*/            OPC_EmitConvertToTarget, 3,
/*261773*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufhw:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHUFHWZ256mikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*261786*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::PSHUFLW),// ->261855
/*261789*/            OPC_MoveChild0,
/*261790*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261793*/            OPC_MoveChild0,
/*261794*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*261797*/            OPC_RecordMemRef,
/*261798*/            OPC_RecordNode, // #1 = 'ld' chained node
/*261799*/            OPC_CheckFoldableChainNode,
/*261800*/            OPC_RecordChild1, // #2 = $src1
/*261801*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261803*/            OPC_CheckPredicate, 9, // Predicate_load
/*261805*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*261807*/            OPC_CheckType, MVT::v4i64,
/*261809*/            OPC_MoveParent,
/*261810*/            OPC_MoveParent,
/*261811*/            OPC_RecordChild1, // #3 = $src2
/*261812*/            OPC_MoveChild1,
/*261813*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261816*/            OPC_MoveParent,
/*261817*/            OPC_MoveParent,
/*261818*/            OPC_MoveChild2,
/*261819*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261822*/            OPC_MoveChild0,
/*261823*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261826*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261828*/            OPC_CheckType, MVT::v8i32,
/*261830*/            OPC_MoveParent,
/*261831*/            OPC_MoveParent,
/*261832*/            OPC_CheckType, MVT::v16i16,
/*261834*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*261836*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*261839*/            OPC_EmitMergeInputChains1_1,
/*261840*/            OPC_EmitConvertToTarget, 3,
/*261842*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShuflw:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHUFLWZ256mikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*261855*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::PALIGNR),// ->261926
/*261858*/            OPC_RecordChild0, // #1 = $src1
/*261859*/            OPC_MoveChild1,
/*261860*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261863*/            OPC_MoveChild0,
/*261864*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*261867*/            OPC_RecordMemRef,
/*261868*/            OPC_RecordNode, // #2 = 'ld' chained node
/*261869*/            OPC_CheckFoldableChainNode,
/*261870*/            OPC_RecordChild1, // #3 = $src2
/*261871*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261873*/            OPC_CheckPredicate, 9, // Predicate_load
/*261875*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*261877*/            OPC_CheckType, MVT::v2i64,
/*261879*/            OPC_MoveParent,
/*261880*/            OPC_MoveParent,
/*261881*/            OPC_RecordChild2, // #4 = $src3
/*261882*/            OPC_MoveChild2,
/*261883*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261886*/            OPC_MoveParent,
/*261887*/            OPC_MoveParent,
/*261888*/            OPC_MoveChild2,
/*261889*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261892*/            OPC_MoveChild0,
/*261893*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261896*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261898*/            OPC_CheckType, MVT::v4i32,
/*261900*/            OPC_MoveParent,
/*261901*/            OPC_MoveParent,
/*261902*/            OPC_CheckType, MVT::v16i8,
/*261904*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*261906*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261909*/            OPC_EmitMergeInputChains1_2,
/*261910*/            OPC_EmitConvertToTarget, 4,
/*261912*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPALIGNRZ128rmikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*261926*/          /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::DBPSADBW),// ->261999
/*261929*/            OPC_RecordChild0, // #1 = $src1
/*261930*/            OPC_MoveChild1,
/*261931*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261934*/            OPC_MoveChild0,
/*261935*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*261938*/            OPC_RecordMemRef,
/*261939*/            OPC_RecordNode, // #2 = 'ld' chained node
/*261940*/            OPC_CheckFoldableChainNode,
/*261941*/            OPC_RecordChild1, // #3 = $src2
/*261942*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261944*/            OPC_CheckPredicate, 9, // Predicate_load
/*261946*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*261948*/            OPC_CheckType, MVT::v4i64,
/*261950*/            OPC_MoveParent,
/*261951*/            OPC_MoveParent,
/*261952*/            OPC_RecordChild2, // #4 = $src3
/*261953*/            OPC_MoveChild2,
/*261954*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*261957*/            OPC_CheckType, MVT::i8,
/*261959*/            OPC_MoveParent,
/*261960*/            OPC_MoveParent,
/*261961*/            OPC_MoveChild2,
/*261962*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*261965*/            OPC_MoveChild0,
/*261966*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*261969*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*261971*/            OPC_CheckType, MVT::v8i32,
/*261973*/            OPC_MoveParent,
/*261974*/            OPC_MoveParent,
/*261975*/            OPC_CheckType, MVT::v16i16,
/*261977*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*261979*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261982*/            OPC_EmitMergeInputChains1_2,
/*261983*/            OPC_EmitConvertToTarget, 4,
/*261985*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VDBPSADBWZ256rmikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*261999*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VSHLD),// ->262070
/*262002*/            OPC_RecordChild0, // #1 = $src1
/*262003*/            OPC_MoveChild1,
/*262004*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*262007*/            OPC_MoveChild0,
/*262008*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262011*/            OPC_RecordMemRef,
/*262012*/            OPC_RecordNode, // #2 = 'ld' chained node
/*262013*/            OPC_CheckFoldableChainNode,
/*262014*/            OPC_RecordChild1, // #3 = $src2
/*262015*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262017*/            OPC_CheckPredicate, 9, // Predicate_load
/*262019*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*262021*/            OPC_CheckType, MVT::v4i64,
/*262023*/            OPC_MoveParent,
/*262024*/            OPC_MoveParent,
/*262025*/            OPC_RecordChild2, // #4 = $src3
/*262026*/            OPC_MoveChild2,
/*262027*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262030*/            OPC_MoveParent,
/*262031*/            OPC_MoveParent,
/*262032*/            OPC_MoveChild2,
/*262033*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*262036*/            OPC_MoveChild0,
/*262037*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*262040*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*262042*/            OPC_CheckType, MVT::v8i32,
/*262044*/            OPC_MoveParent,
/*262045*/            OPC_MoveParent,
/*262046*/            OPC_CheckType, MVT::v16i16,
/*262048*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*262050*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262053*/            OPC_EmitMergeInputChains1_2,
/*262054*/            OPC_EmitConvertToTarget, 4,
/*262056*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHLDWZ256rmikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*262070*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VSHRD),// ->262141
/*262073*/            OPC_RecordChild0, // #1 = $src1
/*262074*/            OPC_MoveChild1,
/*262075*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*262078*/            OPC_MoveChild0,
/*262079*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262082*/            OPC_RecordMemRef,
/*262083*/            OPC_RecordNode, // #2 = 'ld' chained node
/*262084*/            OPC_CheckFoldableChainNode,
/*262085*/            OPC_RecordChild1, // #3 = $src2
/*262086*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262088*/            OPC_CheckPredicate, 9, // Predicate_load
/*262090*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*262092*/            OPC_CheckType, MVT::v4i64,
/*262094*/            OPC_MoveParent,
/*262095*/            OPC_MoveParent,
/*262096*/            OPC_RecordChild2, // #4 = $src3
/*262097*/            OPC_MoveChild2,
/*262098*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262101*/            OPC_MoveParent,
/*262102*/            OPC_MoveParent,
/*262103*/            OPC_MoveChild2,
/*262104*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*262107*/            OPC_MoveChild0,
/*262108*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*262111*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*262113*/            OPC_CheckType, MVT::v8i32,
/*262115*/            OPC_MoveParent,
/*262116*/            OPC_MoveParent,
/*262117*/            OPC_CheckType, MVT::v16i16,
/*262119*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*262121*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262124*/            OPC_EmitMergeInputChains1_2,
/*262125*/            OPC_EmitConvertToTarget, 4,
/*262127*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHRDWZ256rmikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*262141*/          0, // EndSwitchOpcode
/*262142*/        /*Scope*/ 122, /*->262265*/
/*262143*/          OPC_RecordChild1, // #1 = $src3
/*262144*/          OPC_MoveChild1,
/*262145*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*262148*/          OPC_RecordChild0, // #2 = $src1
/*262149*/          OPC_MoveChild1,
/*262150*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*262153*/          OPC_MoveChild0,
/*262154*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262157*/          OPC_RecordMemRef,
/*262158*/          OPC_RecordNode, // #3 = 'ld' chained node
/*262159*/          OPC_CheckFoldableChainNode,
/*262160*/          OPC_RecordChild1, // #4 = $src2
/*262161*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262163*/          OPC_CheckPredicate, 9, // Predicate_load
/*262165*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*262167*/          OPC_SwitchType /*2 cases */, 46, MVT::v2i64,// ->262216
/*262170*/            OPC_MoveParent,
/*262171*/            OPC_CheckType, MVT::v4i32,
/*262173*/            OPC_MoveParent,
/*262174*/            OPC_MoveChild2,
/*262175*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262178*/            OPC_CheckType, MVT::iPTR,
/*262180*/            OPC_MoveParent,
/*262181*/            OPC_MoveParent,
/*262182*/            OPC_MoveChild2,
/*262183*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*262186*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*262188*/            OPC_MoveParent,
/*262189*/            OPC_CheckType, MVT::v16i32,
/*262191*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*262193*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262196*/            OPC_EmitMergeInputChains, 1, 3, 
/*262199*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*262202*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                      // Dst: (VINSERTI32x4Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] })):$src3))
/*262216*/          /*SwitchType*/ 46, MVT::v4i64,// ->262264
/*262218*/            OPC_MoveParent,
/*262219*/            OPC_CheckType, MVT::v8i32,
/*262221*/            OPC_MoveParent,
/*262222*/            OPC_MoveChild2,
/*262223*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262226*/            OPC_CheckType, MVT::iPTR,
/*262228*/            OPC_MoveParent,
/*262229*/            OPC_MoveParent,
/*262230*/            OPC_MoveChild2,
/*262231*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*262234*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*262236*/            OPC_MoveParent,
/*262237*/            OPC_CheckType, MVT::v16i32,
/*262239*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*262241*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262244*/            OPC_EmitMergeInputChains, 1, 3, 
/*262247*/            OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*262250*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                      // Dst: (VINSERTI32x8Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] })):$src3))
/*262264*/          0, // EndSwitchType
/*262265*/        /*Scope*/ 98|128,91/*11746*/, /*->274013*/
/*262267*/          OPC_MoveChild1,
/*262268*/          OPC_SwitchOpcode /*65 cases */, 90|128,12/*1626*/, TARGET_VAL(ISD::BITCAST),// ->263899
/*262273*/            OPC_Scope, 118, /*->262393*/ // 4 children in Scope
/*262275*/              OPC_RecordChild0, // #1 = $ins
/*262276*/              OPC_MoveChild0,
/*262277*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*262280*/              OPC_RecordChild0, // #2 = $src1
/*262281*/              OPC_MoveChild1,
/*262282*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262285*/              OPC_RecordMemRef,
/*262286*/              OPC_RecordNode, // #3 = 'ld' chained node
/*262287*/              OPC_CheckFoldableChainNode,
/*262288*/              OPC_RecordChild1, // #4 = $src2
/*262289*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262291*/              OPC_CheckPredicate, 9, // Predicate_load
/*262293*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*262295*/              OPC_SwitchType /*2 cases */, 46, MVT::v2i64,// ->262344
/*262298*/                OPC_MoveParent,
/*262299*/                OPC_MoveChild2,
/*262300*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262303*/                OPC_CheckType, MVT::iPTR,
/*262305*/                OPC_MoveParent,
/*262306*/                OPC_CheckType, MVT::v8i64,
/*262308*/                OPC_MoveParent,
/*262309*/                OPC_MoveParent,
/*262310*/                OPC_MoveChild2,
/*262311*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*262314*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*262316*/                OPC_MoveParent,
/*262317*/                OPC_CheckType, MVT::v16i32,
/*262319*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*262321*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262324*/                OPC_EmitMergeInputChains, 1, 3, 
/*262327*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*262330*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VINSERTI32x4Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*262344*/              /*SwitchType*/ 46, MVT::v4i64,// ->262392
/*262346*/                OPC_MoveParent,
/*262347*/                OPC_MoveChild2,
/*262348*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262351*/                OPC_CheckType, MVT::iPTR,
/*262353*/                OPC_MoveParent,
/*262354*/                OPC_CheckType, MVT::v8i64,
/*262356*/                OPC_MoveParent,
/*262357*/                OPC_MoveParent,
/*262358*/                OPC_MoveChild2,
/*262359*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*262362*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*262364*/                OPC_MoveParent,
/*262365*/                OPC_CheckType, MVT::v16i32,
/*262367*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*262369*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262372*/                OPC_EmitMergeInputChains, 1, 3, 
/*262375*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*262378*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VINSERTI32x8Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*262392*/              0, // EndSwitchType
/*262393*/            /*Scope*/ 54|128,1/*182*/, /*->262577*/
/*262395*/              OPC_MoveChild0,
/*262396*/              OPC_SwitchOpcode /*3 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->262453
/*262400*/                OPC_MoveChild0,
/*262401*/                OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*262404*/                OPC_MoveChild0,
/*262405*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262408*/                OPC_RecordMemRef,
/*262409*/                OPC_RecordNode, // #1 = 'ld' chained node
/*262410*/                OPC_CheckFoldableChainNode,
/*262411*/                OPC_RecordChild1, // #2 = $src
/*262412*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262414*/                OPC_CheckPredicate, 9, // Predicate_load
/*262416*/                OPC_CheckType, MVT::i64,
/*262418*/                OPC_MoveParent,
/*262419*/                OPC_CheckType, MVT::v2i64,
/*262421*/                OPC_MoveParent,
/*262422*/                OPC_CheckType, MVT::v8i64,
/*262424*/                OPC_MoveParent,
/*262425*/                OPC_MoveParent,
/*262426*/                OPC_MoveChild2,
/*262427*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*262430*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*262432*/                OPC_MoveParent,
/*262433*/                OPC_CheckType, MVT::v16i32,
/*262435*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*262437*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*262440*/                OPC_EmitMergeInputChains1_1,
/*262441*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Zmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VBroadcast:{ *:[v8i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VBROADCASTI32X2Zmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*262453*/              /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::SHUF128),// ->262513
/*262456*/                OPC_RecordChild0, // #1 = $src1
/*262457*/                OPC_MoveChild1,
/*262458*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262461*/                OPC_RecordMemRef,
/*262462*/                OPC_RecordNode, // #2 = 'ld' chained node
/*262463*/                OPC_CheckFoldableChainNode,
/*262464*/                OPC_RecordChild1, // #3 = $src2
/*262465*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262467*/                OPC_CheckPredicate, 9, // Predicate_load
/*262469*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*262471*/                OPC_MoveParent,
/*262472*/                OPC_RecordChild2, // #4 = $src3
/*262473*/                OPC_MoveChild2,
/*262474*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262477*/                OPC_MoveParent,
/*262478*/                OPC_CheckType, MVT::v8i64,
/*262480*/                OPC_MoveParent,
/*262481*/                OPC_MoveParent,
/*262482*/                OPC_MoveChild2,
/*262483*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*262486*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*262488*/                OPC_MoveParent,
/*262489*/                OPC_CheckType, MVT::v16i32,
/*262491*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*262493*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262496*/                OPC_EmitMergeInputChains1_2,
/*262497*/                OPC_EmitConvertToTarget, 4,
/*262499*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VSHUFI32X4Zrmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*262513*/              /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VALIGN),// ->262576
/*262516*/                OPC_RecordChild0, // #1 = $src1
/*262517*/                OPC_MoveChild1,
/*262518*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262521*/                OPC_RecordMemRef,
/*262522*/                OPC_RecordNode, // #2 = 'ld' chained node
/*262523*/                OPC_CheckFoldableChainNode,
/*262524*/                OPC_RecordChild1, // #3 = $src2
/*262525*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262527*/                OPC_CheckPredicate, 9, // Predicate_load
/*262529*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*262531*/                OPC_MoveParent,
/*262532*/                OPC_RecordChild2, // #4 = $src3
/*262533*/                OPC_MoveChild2,
/*262534*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262537*/                OPC_MoveParent,
/*262538*/                OPC_CheckType, MVT::v8i64,
/*262540*/                OPC_MoveParent,
/*262541*/                OPC_MoveParent,
/*262542*/                OPC_MoveChild2,
/*262543*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*262546*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*262548*/                OPC_MoveParent,
/*262549*/                OPC_CheckType, MVT::v16i32,
/*262551*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*262553*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262556*/                OPC_EmitMergeInputChains1_2,
/*262557*/                OPC_EmitConvertToTarget, 4,
/*262559*/                OPC_EmitNodeXForm, 14, 10, // ValignqImm32XForm
/*262562*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VALIGNDZrmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*262576*/              0, // EndSwitchOpcode
/*262577*/            /*Scope*/ 80|128,1/*208*/, /*->262787*/
/*262579*/              OPC_RecordChild0, // #1 = $ins
/*262580*/              OPC_MoveChild0,
/*262581*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*262584*/              OPC_RecordChild0, // #2 = $src1
/*262585*/              OPC_MoveChild1,
/*262586*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*262589*/              OPC_MoveChild0,
/*262590*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262593*/              OPC_RecordMemRef,
/*262594*/              OPC_RecordNode, // #3 = 'ld' chained node
/*262595*/              OPC_CheckFoldableChainNode,
/*262596*/              OPC_RecordChild1, // #4 = $src2
/*262597*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262599*/              OPC_CheckPredicate, 9, // Predicate_load
/*262601*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*262603*/              OPC_SwitchType /*2 cases */, 89, MVT::v2i64,// ->262695
/*262606*/                OPC_MoveParent,
/*262607*/                OPC_SwitchType /*2 cases */, 41, MVT::v8i16,// ->262651
/*262610*/                  OPC_MoveParent,
/*262611*/                  OPC_MoveChild2,
/*262612*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262615*/                  OPC_CheckType, MVT::iPTR,
/*262617*/                  OPC_MoveParent,
/*262618*/                  OPC_CheckType, MVT::v32i16,
/*262620*/                  OPC_MoveParent,
/*262621*/                  OPC_MoveParent,
/*262622*/                  OPC_RecordChild2, // #5 = $src0
/*262623*/                  OPC_CheckType, MVT::v16i32,
/*262625*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*262627*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*262630*/                  OPC_EmitMergeInputChains, 1, 3, 
/*262633*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*262636*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VINSERTI32x4Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*262651*/                /*SwitchType*/ 41, MVT::v16i8,// ->262694
/*262653*/                  OPC_MoveParent,
/*262654*/                  OPC_MoveChild2,
/*262655*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262658*/                  OPC_CheckType, MVT::iPTR,
/*262660*/                  OPC_MoveParent,
/*262661*/                  OPC_CheckType, MVT::v64i8,
/*262663*/                  OPC_MoveParent,
/*262664*/                  OPC_MoveParent,
/*262665*/                  OPC_RecordChild2, // #5 = $src0
/*262666*/                  OPC_CheckType, MVT::v16i32,
/*262668*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*262670*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*262673*/                  OPC_EmitMergeInputChains, 1, 3, 
/*262676*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*262679*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VINSERTI32x4Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*262694*/                0, // EndSwitchType
/*262695*/              /*SwitchType*/ 89, MVT::v4i64,// ->262786
/*262697*/                OPC_MoveParent,
/*262698*/                OPC_SwitchType /*2 cases */, 41, MVT::v16i16,// ->262742
/*262701*/                  OPC_MoveParent,
/*262702*/                  OPC_MoveChild2,
/*262703*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262706*/                  OPC_CheckType, MVT::iPTR,
/*262708*/                  OPC_MoveParent,
/*262709*/                  OPC_CheckType, MVT::v32i16,
/*262711*/                  OPC_MoveParent,
/*262712*/                  OPC_MoveParent,
/*262713*/                  OPC_RecordChild2, // #5 = $src0
/*262714*/                  OPC_CheckType, MVT::v16i32,
/*262716*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*262718*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*262721*/                  OPC_EmitMergeInputChains, 1, 3, 
/*262724*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*262727*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VINSERTI32x8Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*262742*/                /*SwitchType*/ 41, MVT::v32i8,// ->262785
/*262744*/                  OPC_MoveParent,
/*262745*/                  OPC_MoveChild2,
/*262746*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*262749*/                  OPC_CheckType, MVT::iPTR,
/*262751*/                  OPC_MoveParent,
/*262752*/                  OPC_CheckType, MVT::v64i8,
/*262754*/                  OPC_MoveParent,
/*262755*/                  OPC_MoveParent,
/*262756*/                  OPC_RecordChild2, // #5 = $src0
/*262757*/                  OPC_CheckType, MVT::v16i32,
/*262759*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*262761*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*262764*/                  OPC_EmitMergeInputChains, 1, 3, 
/*262767*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*262770*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VINSERTI32x8Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*262785*/                0, // EndSwitchType
/*262786*/              0, // EndSwitchType
/*262787*/            /*Scope*/ 85|128,8/*1109*/, /*->263898*/
/*262789*/              OPC_MoveChild0,
/*262790*/              OPC_SwitchOpcode /*9 cases */, 84|128,1/*212*/, TARGET_VAL(ISD::AND),// ->263007
/*262795*/                OPC_Scope, 55, /*->262852*/ // 4 children in Scope
/*262797*/                  OPC_RecordChild0, // #1 = $src1
/*262798*/                  OPC_MoveChild1,
/*262799*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*262802*/                  OPC_MoveChild0,
/*262803*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*262806*/                  OPC_MoveChild0,
/*262807*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262810*/                  OPC_RecordMemRef,
/*262811*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*262812*/                  OPC_CheckFoldableChainNode,
/*262813*/                  OPC_RecordChild1, // #3 = $src2
/*262814*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262816*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*262818*/                  OPC_CheckType, MVT::i32,
/*262820*/                  OPC_MoveParent,
/*262821*/                  OPC_CheckType, MVT::v16i32,
/*262823*/                  OPC_MoveParent,
/*262824*/                  OPC_MoveParent,
/*262825*/                  OPC_CheckType, MVT::v8i64,
/*262827*/                  OPC_MoveParent,
/*262828*/                  OPC_MoveParent,
/*262829*/                  OPC_RecordChild2, // #4 = $src0
/*262830*/                  OPC_CheckType, MVT::v16i32,
/*262832*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*262834*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262837*/                  OPC_EmitMergeInputChains1_2,
/*262838*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VPANDDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*262852*/                /*Scope*/ 55, /*->262908*/
/*262853*/                  OPC_MoveChild0,
/*262854*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*262857*/                  OPC_MoveChild0,
/*262858*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*262861*/                  OPC_MoveChild0,
/*262862*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262865*/                  OPC_RecordMemRef,
/*262866*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*262867*/                  OPC_CheckFoldableChainNode,
/*262868*/                  OPC_RecordChild1, // #2 = $src2
/*262869*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262871*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*262873*/                  OPC_CheckType, MVT::i32,
/*262875*/                  OPC_MoveParent,
/*262876*/                  OPC_CheckType, MVT::v16i32,
/*262878*/                  OPC_MoveParent,
/*262879*/                  OPC_MoveParent,
/*262880*/                  OPC_RecordChild1, // #3 = $src1
/*262881*/                  OPC_CheckType, MVT::v8i64,
/*262883*/                  OPC_MoveParent,
/*262884*/                  OPC_MoveParent,
/*262885*/                  OPC_RecordChild2, // #4 = $src0
/*262886*/                  OPC_CheckType, MVT::v16i32,
/*262888*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*262890*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262893*/                  OPC_EmitMergeInputChains1_1,
/*262894*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VPANDDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*262908*/                /*Scope*/ 48, /*->262957*/
/*262909*/                  OPC_RecordChild0, // #1 = $src1
/*262910*/                  OPC_MoveChild1,
/*262911*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262914*/                  OPC_RecordMemRef,
/*262915*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*262916*/                  OPC_CheckFoldableChainNode,
/*262917*/                  OPC_RecordChild1, // #3 = $src2
/*262918*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262920*/                  OPC_CheckPredicate, 9, // Predicate_load
/*262922*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*262924*/                  OPC_MoveParent,
/*262925*/                  OPC_CheckType, MVT::v8i64,
/*262927*/                  OPC_MoveParent,
/*262928*/                  OPC_MoveParent,
/*262929*/                  OPC_MoveChild2,
/*262930*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*262933*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*262935*/                  OPC_MoveParent,
/*262936*/                  OPC_CheckType, MVT::v16i32,
/*262938*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*262940*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*262943*/                  OPC_EmitMergeInputChains1_2,
/*262944*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*262957*/                /*Scope*/ 48, /*->263006*/
/*262958*/                  OPC_MoveChild0,
/*262959*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*262962*/                  OPC_RecordMemRef,
/*262963*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*262964*/                  OPC_CheckFoldableChainNode,
/*262965*/                  OPC_RecordChild1, // #2 = $src2
/*262966*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262968*/                  OPC_CheckPredicate, 9, // Predicate_load
/*262970*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*262972*/                  OPC_MoveParent,
/*262973*/                  OPC_RecordChild1, // #3 = $src1
/*262974*/                  OPC_CheckType, MVT::v8i64,
/*262976*/                  OPC_MoveParent,
/*262977*/                  OPC_MoveParent,
/*262978*/                  OPC_MoveChild2,
/*262979*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*262982*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*262984*/                  OPC_MoveParent,
/*262985*/                  OPC_CheckType, MVT::v16i32,
/*262987*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*262989*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*262992*/                  OPC_EmitMergeInputChains1_1,
/*262993*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*263006*/                0, /*End of Scope*/
/*263007*/              /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(ISD::OR),// ->263223
/*263011*/                OPC_Scope, 55, /*->263068*/ // 4 children in Scope
/*263013*/                  OPC_RecordChild0, // #1 = $src1
/*263014*/                  OPC_MoveChild1,
/*263015*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*263018*/                  OPC_MoveChild0,
/*263019*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*263022*/                  OPC_MoveChild0,
/*263023*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263026*/                  OPC_RecordMemRef,
/*263027*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*263028*/                  OPC_CheckFoldableChainNode,
/*263029*/                  OPC_RecordChild1, // #3 = $src2
/*263030*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263032*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*263034*/                  OPC_CheckType, MVT::i32,
/*263036*/                  OPC_MoveParent,
/*263037*/                  OPC_CheckType, MVT::v16i32,
/*263039*/                  OPC_MoveParent,
/*263040*/                  OPC_MoveParent,
/*263041*/                  OPC_CheckType, MVT::v8i64,
/*263043*/                  OPC_MoveParent,
/*263044*/                  OPC_MoveParent,
/*263045*/                  OPC_RecordChild2, // #4 = $src0
/*263046*/                  OPC_CheckType, MVT::v16i32,
/*263048*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263050*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*263053*/                  OPC_EmitMergeInputChains1_2,
/*263054*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VPORDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*263068*/                /*Scope*/ 55, /*->263124*/
/*263069*/                  OPC_MoveChild0,
/*263070*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*263073*/                  OPC_MoveChild0,
/*263074*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*263077*/                  OPC_MoveChild0,
/*263078*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263081*/                  OPC_RecordMemRef,
/*263082*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*263083*/                  OPC_CheckFoldableChainNode,
/*263084*/                  OPC_RecordChild1, // #2 = $src2
/*263085*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263087*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*263089*/                  OPC_CheckType, MVT::i32,
/*263091*/                  OPC_MoveParent,
/*263092*/                  OPC_CheckType, MVT::v16i32,
/*263094*/                  OPC_MoveParent,
/*263095*/                  OPC_MoveParent,
/*263096*/                  OPC_RecordChild1, // #3 = $src1
/*263097*/                  OPC_CheckType, MVT::v8i64,
/*263099*/                  OPC_MoveParent,
/*263100*/                  OPC_MoveParent,
/*263101*/                  OPC_RecordChild2, // #4 = $src0
/*263102*/                  OPC_CheckType, MVT::v16i32,
/*263104*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263106*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*263109*/                  OPC_EmitMergeInputChains1_1,
/*263110*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VPORDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*263124*/                /*Scope*/ 48, /*->263173*/
/*263125*/                  OPC_RecordChild0, // #1 = $src1
/*263126*/                  OPC_MoveChild1,
/*263127*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263130*/                  OPC_RecordMemRef,
/*263131*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*263132*/                  OPC_CheckFoldableChainNode,
/*263133*/                  OPC_RecordChild1, // #3 = $src2
/*263134*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263136*/                  OPC_CheckPredicate, 9, // Predicate_load
/*263138*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*263140*/                  OPC_MoveParent,
/*263141*/                  OPC_CheckType, MVT::v8i64,
/*263143*/                  OPC_MoveParent,
/*263144*/                  OPC_MoveParent,
/*263145*/                  OPC_MoveChild2,
/*263146*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263149*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263151*/                  OPC_MoveParent,
/*263152*/                  OPC_CheckType, MVT::v16i32,
/*263154*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263156*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*263159*/                  OPC_EmitMergeInputChains1_2,
/*263160*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*263173*/                /*Scope*/ 48, /*->263222*/
/*263174*/                  OPC_MoveChild0,
/*263175*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263178*/                  OPC_RecordMemRef,
/*263179*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*263180*/                  OPC_CheckFoldableChainNode,
/*263181*/                  OPC_RecordChild1, // #2 = $src2
/*263182*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263184*/                  OPC_CheckPredicate, 9, // Predicate_load
/*263186*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*263188*/                  OPC_MoveParent,
/*263189*/                  OPC_RecordChild1, // #3 = $src1
/*263190*/                  OPC_CheckType, MVT::v8i64,
/*263192*/                  OPC_MoveParent,
/*263193*/                  OPC_MoveParent,
/*263194*/                  OPC_MoveChild2,
/*263195*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263198*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263200*/                  OPC_MoveParent,
/*263201*/                  OPC_CheckType, MVT::v16i32,
/*263203*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263205*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*263208*/                  OPC_EmitMergeInputChains1_1,
/*263209*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*263222*/                0, /*End of Scope*/
/*263223*/              /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(ISD::XOR),// ->263439
/*263227*/                OPC_Scope, 55, /*->263284*/ // 4 children in Scope
/*263229*/                  OPC_RecordChild0, // #1 = $src1
/*263230*/                  OPC_MoveChild1,
/*263231*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*263234*/                  OPC_MoveChild0,
/*263235*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*263238*/                  OPC_MoveChild0,
/*263239*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263242*/                  OPC_RecordMemRef,
/*263243*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*263244*/                  OPC_CheckFoldableChainNode,
/*263245*/                  OPC_RecordChild1, // #3 = $src2
/*263246*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263248*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*263250*/                  OPC_CheckType, MVT::i32,
/*263252*/                  OPC_MoveParent,
/*263253*/                  OPC_CheckType, MVT::v16i32,
/*263255*/                  OPC_MoveParent,
/*263256*/                  OPC_MoveParent,
/*263257*/                  OPC_CheckType, MVT::v8i64,
/*263259*/                  OPC_MoveParent,
/*263260*/                  OPC_MoveParent,
/*263261*/                  OPC_RecordChild2, // #4 = $src0
/*263262*/                  OPC_CheckType, MVT::v16i32,
/*263264*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263266*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*263269*/                  OPC_EmitMergeInputChains1_2,
/*263270*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VPXORDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*263284*/                /*Scope*/ 55, /*->263340*/
/*263285*/                  OPC_MoveChild0,
/*263286*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*263289*/                  OPC_MoveChild0,
/*263290*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*263293*/                  OPC_MoveChild0,
/*263294*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263297*/                  OPC_RecordMemRef,
/*263298*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*263299*/                  OPC_CheckFoldableChainNode,
/*263300*/                  OPC_RecordChild1, // #2 = $src2
/*263301*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263303*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*263305*/                  OPC_CheckType, MVT::i32,
/*263307*/                  OPC_MoveParent,
/*263308*/                  OPC_CheckType, MVT::v16i32,
/*263310*/                  OPC_MoveParent,
/*263311*/                  OPC_MoveParent,
/*263312*/                  OPC_RecordChild1, // #3 = $src1
/*263313*/                  OPC_CheckType, MVT::v8i64,
/*263315*/                  OPC_MoveParent,
/*263316*/                  OPC_MoveParent,
/*263317*/                  OPC_RecordChild2, // #4 = $src0
/*263318*/                  OPC_CheckType, MVT::v16i32,
/*263320*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263322*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*263325*/                  OPC_EmitMergeInputChains1_1,
/*263326*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VPXORDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*263340*/                /*Scope*/ 48, /*->263389*/
/*263341*/                  OPC_RecordChild0, // #1 = $src1
/*263342*/                  OPC_MoveChild1,
/*263343*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263346*/                  OPC_RecordMemRef,
/*263347*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*263348*/                  OPC_CheckFoldableChainNode,
/*263349*/                  OPC_RecordChild1, // #3 = $src2
/*263350*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263352*/                  OPC_CheckPredicate, 9, // Predicate_load
/*263354*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*263356*/                  OPC_MoveParent,
/*263357*/                  OPC_CheckType, MVT::v8i64,
/*263359*/                  OPC_MoveParent,
/*263360*/                  OPC_MoveParent,
/*263361*/                  OPC_MoveChild2,
/*263362*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263365*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263367*/                  OPC_MoveParent,
/*263368*/                  OPC_CheckType, MVT::v16i32,
/*263370*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263372*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*263375*/                  OPC_EmitMergeInputChains1_2,
/*263376*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPXORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*263389*/                /*Scope*/ 48, /*->263438*/
/*263390*/                  OPC_MoveChild0,
/*263391*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263394*/                  OPC_RecordMemRef,
/*263395*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*263396*/                  OPC_CheckFoldableChainNode,
/*263397*/                  OPC_RecordChild1, // #2 = $src2
/*263398*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263400*/                  OPC_CheckPredicate, 9, // Predicate_load
/*263402*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*263404*/                  OPC_MoveParent,
/*263405*/                  OPC_RecordChild1, // #3 = $src1
/*263406*/                  OPC_CheckType, MVT::v8i64,
/*263408*/                  OPC_MoveParent,
/*263409*/                  OPC_MoveParent,
/*263410*/                  OPC_MoveChild2,
/*263411*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263414*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263416*/                  OPC_MoveParent,
/*263417*/                  OPC_CheckType, MVT::v16i32,
/*263419*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263421*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*263424*/                  OPC_EmitMergeInputChains1_1,
/*263425*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPXORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*263438*/                0, /*End of Scope*/
/*263439*/              /*SwitchOpcode*/ 103, TARGET_VAL(X86ISD::ANDNP),// ->263545
/*263442*/                OPC_RecordChild0, // #1 = $src1
/*263443*/                OPC_MoveChild1,
/*263444*/                OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->263498
/*263448*/                  OPC_MoveChild0,
/*263449*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*263452*/                  OPC_MoveChild0,
/*263453*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263456*/                  OPC_RecordMemRef,
/*263457*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*263458*/                  OPC_CheckFoldableChainNode,
/*263459*/                  OPC_RecordChild1, // #3 = $src2
/*263460*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263462*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*263464*/                  OPC_CheckType, MVT::i32,
/*263466*/                  OPC_MoveParent,
/*263467*/                  OPC_CheckType, MVT::v16i32,
/*263469*/                  OPC_MoveParent,
/*263470*/                  OPC_MoveParent,
/*263471*/                  OPC_CheckType, MVT::v8i64,
/*263473*/                  OPC_MoveParent,
/*263474*/                  OPC_MoveParent,
/*263475*/                  OPC_RecordChild2, // #4 = $src0
/*263476*/                  OPC_CheckType, MVT::v16i32,
/*263478*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263480*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*263483*/                  OPC_EmitMergeInputChains1_2,
/*263484*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VPANDNDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*263498*/                /*SwitchOpcode*/ 43, TARGET_VAL(ISD::LOAD),// ->263544
/*263501*/                  OPC_RecordMemRef,
/*263502*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*263503*/                  OPC_CheckFoldableChainNode,
/*263504*/                  OPC_RecordChild1, // #3 = $src2
/*263505*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263507*/                  OPC_CheckPredicate, 9, // Predicate_load
/*263509*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*263511*/                  OPC_MoveParent,
/*263512*/                  OPC_CheckType, MVT::v8i64,
/*263514*/                  OPC_MoveParent,
/*263515*/                  OPC_MoveParent,
/*263516*/                  OPC_MoveChild2,
/*263517*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263520*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263522*/                  OPC_MoveParent,
/*263523*/                  OPC_CheckType, MVT::v16i32,
/*263525*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263527*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*263530*/                  OPC_EmitMergeInputChains1_2,
/*263531*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VPANDNDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*263544*/                0, // EndSwitchOpcode
/*263545*/              /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::SHUF128),// ->263605
/*263548*/                OPC_RecordChild0, // #1 = $src1
/*263549*/                OPC_MoveChild1,
/*263550*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*263553*/                OPC_MoveChild0,
/*263554*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263557*/                OPC_RecordMemRef,
/*263558*/                OPC_RecordNode, // #2 = 'ld' chained node
/*263559*/                OPC_CheckFoldableChainNode,
/*263560*/                OPC_RecordChild1, // #3 = $src2
/*263561*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263563*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*263565*/                OPC_CheckType, MVT::i32,
/*263567*/                OPC_MoveParent,
/*263568*/                OPC_MoveParent,
/*263569*/                OPC_RecordChild2, // #4 = $src3
/*263570*/                OPC_MoveChild2,
/*263571*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*263574*/                OPC_MoveParent,
/*263575*/                OPC_CheckType, MVT::v8i64,
/*263577*/                OPC_MoveParent,
/*263578*/                OPC_MoveParent,
/*263579*/                OPC_RecordChild2, // #5 = $src0
/*263580*/                OPC_CheckType, MVT::v16i32,
/*263582*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263584*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*263587*/                OPC_EmitMergeInputChains1_2,
/*263588*/                OPC_EmitConvertToTarget, 4,
/*263590*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                          // Dst: (VSHUFI32X4Zrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*263605*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VALIGN),// ->263670
/*263608*/                OPC_RecordChild0, // #1 = $src1
/*263609*/                OPC_MoveChild1,
/*263610*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*263613*/                OPC_MoveChild0,
/*263614*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263617*/                OPC_RecordMemRef,
/*263618*/                OPC_RecordNode, // #2 = 'ld' chained node
/*263619*/                OPC_CheckFoldableChainNode,
/*263620*/                OPC_RecordChild1, // #3 = $src2
/*263621*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263623*/                OPC_CheckPredicate, 9, // Predicate_load
/*263625*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*263627*/                OPC_CheckType, MVT::v2i64,
/*263629*/                OPC_MoveParent,
/*263630*/                OPC_MoveParent,
/*263631*/                OPC_RecordChild2, // #4 = $src3
/*263632*/                OPC_MoveChild2,
/*263633*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*263636*/                OPC_MoveParent,
/*263637*/                OPC_CheckType, MVT::v4i32,
/*263639*/                OPC_MoveParent,
/*263640*/                OPC_MoveParent,
/*263641*/                OPC_RecordChild2, // #5 = $src0
/*263642*/                OPC_CheckType, MVT::v16i8,
/*263644*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*263646*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*263649*/                OPC_EmitMergeInputChains1_2,
/*263650*/                OPC_EmitConvertToTarget, 4,
/*263652*/                OPC_EmitNodeXForm, 21, 11, // ValigndImm8XForm
/*263655*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 37
                          // Dst: (VPALIGNRZ128rmik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (ValigndImm8XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*263670*/              /*SwitchOpcode*/ 84, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->263757
/*263673*/                OPC_MoveChild0,
/*263674*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263677*/                OPC_RecordMemRef,
/*263678*/                OPC_RecordNode, // #1 = 'ld' chained node
/*263679*/                OPC_CheckFoldableChainNode,
/*263680*/                OPC_RecordChild1, // #2 = $src
/*263681*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263683*/                OPC_CheckPredicate, 9, // Predicate_load
/*263685*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*263687*/                OPC_SwitchType /*2 cases */, 32, MVT::v2i64,// ->263722
/*263690*/                  OPC_MoveParent,
/*263691*/                  OPC_CheckType, MVT::v8i64,
/*263693*/                  OPC_MoveParent,
/*263694*/                  OPC_MoveParent,
/*263695*/                  OPC_MoveChild2,
/*263696*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263699*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263701*/                  OPC_MoveParent,
/*263702*/                  OPC_CheckType, MVT::v16i32,
/*263704*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*263706*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263709*/                  OPC_EmitMergeInputChains1_1,
/*263710*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86SubVBroadcast:{ *:[v8i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VBROADCASTI32X4rmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263722*/                /*SwitchType*/ 32, MVT::v4i64,// ->263756
/*263724*/                  OPC_MoveParent,
/*263725*/                  OPC_CheckType, MVT::v8i64,
/*263727*/                  OPC_MoveParent,
/*263728*/                  OPC_MoveParent,
/*263729*/                  OPC_MoveChild2,
/*263730*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263733*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263735*/                  OPC_MoveParent,
/*263736*/                  OPC_CheckType, MVT::v16i32,
/*263738*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*263740*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263743*/                  OPC_EmitMergeInputChains1_1,
/*263744*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X8rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86SubVBroadcast:{ *:[v8i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                            // Dst: (VBROADCASTI32X8rmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263756*/                0, // EndSwitchType
/*263757*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->263806
/*263760*/                OPC_MoveChild0,
/*263761*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263764*/                OPC_RecordMemRef,
/*263765*/                OPC_RecordNode, // #1 = 'ld' chained node
/*263766*/                OPC_CheckFoldableChainNode,
/*263767*/                OPC_RecordChild1, // #2 = $src
/*263768*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263770*/                OPC_CheckPredicate, 9, // Predicate_load
/*263772*/                OPC_CheckType, MVT::i64,
/*263774*/                OPC_MoveParent,
/*263775*/                OPC_CheckType, MVT::v8i64,
/*263777*/                OPC_MoveParent,
/*263778*/                OPC_MoveParent,
/*263779*/                OPC_MoveChild2,
/*263780*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263783*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263785*/                OPC_MoveParent,
/*263786*/                OPC_CheckType, MVT::v16i32,
/*263788*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*263790*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263793*/                OPC_EmitMergeInputChains1_1,
/*263794*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Zmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VBROADCASTI32X2Zmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263806*/              /*SwitchOpcode*/ 88, TARGET_VAL(ISD::LOAD),// ->263897
/*263809*/                OPC_RecordMemRef,
/*263810*/                OPC_RecordNode, // #1 = 'ld' chained node
/*263811*/                OPC_CheckFoldableChainNode,
/*263812*/                OPC_RecordChild1, // #2 = $src
/*263813*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263815*/                OPC_CheckPredicate, 9, // Predicate_load
/*263817*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*263819*/                OPC_SwitchType /*2 cases */, 36, MVT::v2i64,// ->263858
/*263822*/                  OPC_MoveParent,
/*263823*/                  OPC_MoveParent,
/*263824*/                  OPC_MoveChild2,
/*263825*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*263828*/                  OPC_MoveChild0,
/*263829*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263832*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263834*/                  OPC_CheckType, MVT::v4i32,
/*263836*/                  OPC_MoveParent,
/*263837*/                  OPC_MoveParent,
/*263838*/                  OPC_CheckType, MVT::v16i8,
/*263840*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*263842*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263845*/                  OPC_EmitMergeInputChains1_1,
/*263846*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VMOVDQU8Z128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263858*/                /*SwitchType*/ 36, MVT::v4i64,// ->263896
/*263860*/                  OPC_MoveParent,
/*263861*/                  OPC_MoveParent,
/*263862*/                  OPC_MoveChild2,
/*263863*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*263866*/                  OPC_MoveChild0,
/*263867*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263870*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263872*/                  OPC_CheckType, MVT::v8i32,
/*263874*/                  OPC_MoveParent,
/*263875*/                  OPC_MoveParent,
/*263876*/                  OPC_CheckType, MVT::v16i16,
/*263878*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*263880*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263883*/                  OPC_EmitMergeInputChains1_1,
/*263884*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VMOVDQU16Z256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263896*/                0, // EndSwitchType
/*263897*/              0, // EndSwitchOpcode
/*263898*/            0, /*End of Scope*/
/*263899*/          /*SwitchOpcode*/ 104|128,1/*232*/, TARGET_VAL(X86ISD::VBROADCAST),// ->264135
/*263903*/            OPC_MoveChild0,
/*263904*/            OPC_SwitchOpcode /*2 cases */, 6|128,1/*134*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->264043
/*263909*/              OPC_MoveChild0,
/*263910*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*263913*/              OPC_RecordMemRef,
/*263914*/              OPC_RecordNode, // #1 = 'ld' chained node
/*263915*/              OPC_CheckFoldableChainNode,
/*263916*/              OPC_RecordChild1, // #2 = $src
/*263917*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263919*/              OPC_SwitchType /*3 cases */, 41, MVT::i8,// ->263963
/*263922*/                OPC_CheckPredicate, 5, // Predicate_loadi8
/*263924*/                OPC_MoveParent,
/*263925*/                OPC_CheckType, MVT::v16i8,
/*263927*/                OPC_MoveParent,
/*263928*/                OPC_MoveParent,
/*263929*/                OPC_MoveChild2,
/*263930*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*263933*/                OPC_MoveChild0,
/*263934*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263937*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263939*/                OPC_CheckType, MVT::v4i32,
/*263941*/                OPC_MoveParent,
/*263942*/                OPC_MoveParent,
/*263943*/                OPC_CheckType, MVT::v16i8,
/*263945*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*263947*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263950*/                OPC_EmitMergeInputChains1_1,
/*263951*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i8] } (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPBROADCASTBZ128mkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263963*/              /*SwitchType*/ 41, MVT::i16,// ->264006
/*263965*/                OPC_CheckPredicate, 7, // Predicate_loadi16
/*263967*/                OPC_MoveParent,
/*263968*/                OPC_CheckType, MVT::v8i16,
/*263970*/                OPC_MoveParent,
/*263971*/                OPC_MoveParent,
/*263972*/                OPC_MoveChild2,
/*263973*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*263976*/                OPC_MoveChild0,
/*263977*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*263980*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*263982*/                OPC_CheckType, MVT::v8i32,
/*263984*/                OPC_MoveParent,
/*263985*/                OPC_MoveParent,
/*263986*/                OPC_CheckType, MVT::v16i16,
/*263988*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*263990*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263993*/                OPC_EmitMergeInputChains1_1,
/*263994*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i16] } (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPBROADCASTWZ256mkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*264006*/              /*SwitchType*/ 34, MVT::i32,// ->264042
/*264008*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*264010*/                OPC_MoveParent,
/*264011*/                OPC_CheckType, MVT::v4i32,
/*264013*/                OPC_MoveParent,
/*264014*/                OPC_MoveParent,
/*264015*/                OPC_MoveChild2,
/*264016*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264019*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264021*/                OPC_MoveParent,
/*264022*/                OPC_CheckType, MVT::v16i32,
/*264024*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*264026*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*264029*/                OPC_EmitMergeInputChains1_1,
/*264030*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPBROADCASTDZmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*264042*/              0, // EndSwitchType
/*264043*/            /*SwitchOpcode*/ 88, TARGET_VAL(ISD::LOAD),// ->264134
/*264046*/              OPC_RecordMemRef,
/*264047*/              OPC_RecordNode, // #1 = 'ld' chained node
/*264048*/              OPC_CheckFoldableChainNode,
/*264049*/              OPC_RecordChild1, // #2 = $src
/*264050*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264052*/              OPC_SwitchType /*2 cases */, 38, MVT::i8,// ->264093
/*264055*/                OPC_CheckPredicate, 5, // Predicate_loadi8
/*264057*/                OPC_MoveParent,
/*264058*/                OPC_MoveParent,
/*264059*/                OPC_MoveChild2,
/*264060*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264063*/                OPC_MoveChild0,
/*264064*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264067*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264069*/                OPC_CheckType, MVT::v4i32,
/*264071*/                OPC_MoveParent,
/*264072*/                OPC_MoveParent,
/*264073*/                OPC_CheckType, MVT::v16i8,
/*264075*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*264077*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*264080*/                OPC_EmitMergeInputChains1_1,
/*264081*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPBROADCASTBZ128mkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*264093*/              /*SwitchType*/ 38, MVT::i16,// ->264133
/*264095*/                OPC_CheckPredicate, 7, // Predicate_loadi16
/*264097*/                OPC_MoveParent,
/*264098*/                OPC_MoveParent,
/*264099*/                OPC_MoveChild2,
/*264100*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264103*/                OPC_MoveChild0,
/*264104*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264107*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264109*/                OPC_CheckType, MVT::v8i32,
/*264111*/                OPC_MoveParent,
/*264112*/                OPC_MoveParent,
/*264113*/                OPC_CheckType, MVT::v16i16,
/*264115*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*264117*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*264120*/                OPC_EmitMergeInputChains1_1,
/*264121*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPBROADCASTWZ256mkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*264133*/              0, // EndSwitchType
/*264134*/            0, // EndSwitchOpcode
/*264135*/          /*SwitchOpcode*/ 70|128,1/*198*/, TARGET_VAL(X86ISD::VPERMV3),// ->264337
/*264139*/            OPC_RecordChild0, // #1 = $src1
/*264140*/            OPC_RecordChild1, // #2 = $src2
/*264141*/            OPC_MoveChild2,
/*264142*/            OPC_SwitchOpcode /*2 cases */, 10|128,1/*138*/, TARGET_VAL(ISD::BITCAST),// ->264285
/*264147*/              OPC_MoveChild0,
/*264148*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264151*/              OPC_RecordMemRef,
/*264152*/              OPC_RecordNode, // #3 = 'ld' chained node
/*264153*/              OPC_CheckFoldableChainNode,
/*264154*/              OPC_RecordChild1, // #4 = $src3
/*264155*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264157*/              OPC_CheckPredicate, 9, // Predicate_load
/*264159*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*264161*/              OPC_SwitchType /*3 cases */, 41, MVT::v4i64,// ->264205
/*264164*/                OPC_MoveParent,
/*264165*/                OPC_MoveParent,
/*264166*/                OPC_MoveParent,
/*264167*/                OPC_MoveChild2,
/*264168*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264171*/                OPC_MoveChild0,
/*264172*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264175*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264177*/                OPC_CheckType, MVT::v8i32,
/*264179*/                OPC_MoveParent,
/*264180*/                OPC_MoveParent,
/*264181*/                OPC_CheckType, MVT::v16i16,
/*264183*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*264185*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*264188*/                OPC_EmitMergeInputChains, 1, 3, 
/*264191*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMT2W256rmkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*264205*/              /*SwitchType*/ 41, MVT::v2i64,// ->264248
/*264207*/                OPC_MoveParent,
/*264208*/                OPC_MoveParent,
/*264209*/                OPC_MoveParent,
/*264210*/                OPC_MoveChild2,
/*264211*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264214*/                OPC_MoveChild0,
/*264215*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264218*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264220*/                OPC_CheckType, MVT::v4i32,
/*264222*/                OPC_MoveParent,
/*264223*/                OPC_MoveParent,
/*264224*/                OPC_CheckType, MVT::v16i8,
/*264226*/                OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*264228*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*264231*/                OPC_EmitMergeInputChains, 1, 3, 
/*264234*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMT2B128rmkz:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*264248*/              /*SwitchType*/ 34, MVT::v8i64,// ->264284
/*264250*/                OPC_MoveParent,
/*264251*/                OPC_MoveParent,
/*264252*/                OPC_MoveParent,
/*264253*/                OPC_MoveChild2,
/*264254*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264257*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264259*/                OPC_MoveParent,
/*264260*/                OPC_CheckType, MVT::v16i32,
/*264262*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*264264*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*264267*/                OPC_EmitMergeInputChains, 1, 3, 
/*264270*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Drmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPERMT2Drmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*264284*/              0, // EndSwitchType
/*264285*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->264336
/*264288*/              OPC_MoveChild0,
/*264289*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264292*/              OPC_RecordMemRef,
/*264293*/              OPC_RecordNode, // #3 = 'ld' chained node
/*264294*/              OPC_CheckFoldableChainNode,
/*264295*/              OPC_RecordChild1, // #4 = $src3
/*264296*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264298*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*264300*/              OPC_CheckType, MVT::i32,
/*264302*/              OPC_MoveParent,
/*264303*/              OPC_MoveParent,
/*264304*/              OPC_MoveParent,
/*264305*/              OPC_MoveChild2,
/*264306*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264309*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264311*/              OPC_MoveParent,
/*264312*/              OPC_CheckType, MVT::v16i32,
/*264314*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*264316*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*264319*/              OPC_EmitMergeInputChains, 1, 3, 
/*264322*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Drmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPERMT2Drmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*264336*/            0, // EndSwitchOpcode
/*264337*/          /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(ISD::ADD),// ->264755
/*264341*/            OPC_Scope, 101, /*->264444*/ // 4 children in Scope
/*264343*/              OPC_RecordChild0, // #1 = $src1
/*264344*/              OPC_MoveChild1,
/*264345*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264348*/              OPC_MoveChild0,
/*264349*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264352*/              OPC_RecordMemRef,
/*264353*/              OPC_RecordNode, // #2 = 'ld' chained node
/*264354*/              OPC_CheckFoldableChainNode,
/*264355*/              OPC_RecordChild1, // #3 = $src2
/*264356*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264358*/              OPC_CheckPredicate, 9, // Predicate_load
/*264360*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*264362*/              OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->264403
/*264365*/                OPC_MoveParent,
/*264366*/                OPC_MoveParent,
/*264367*/                OPC_MoveParent,
/*264368*/                OPC_MoveChild2,
/*264369*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264372*/                OPC_MoveChild0,
/*264373*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264376*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264378*/                OPC_CheckType, MVT::v8i32,
/*264380*/                OPC_MoveParent,
/*264381*/                OPC_MoveParent,
/*264382*/                OPC_CheckType, MVT::v16i16,
/*264384*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*264386*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264389*/                OPC_EmitMergeInputChains1_2,
/*264390*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264403*/              /*SwitchType*/ 38, MVT::v2i64,// ->264443
/*264405*/                OPC_MoveParent,
/*264406*/                OPC_MoveParent,
/*264407*/                OPC_MoveParent,
/*264408*/                OPC_MoveChild2,
/*264409*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264412*/                OPC_MoveChild0,
/*264413*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264416*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264418*/                OPC_CheckType, MVT::v4i32,
/*264420*/                OPC_MoveParent,
/*264421*/                OPC_MoveParent,
/*264422*/                OPC_CheckType, MVT::v16i8,
/*264424*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*264426*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264429*/                OPC_EmitMergeInputChains1_2,
/*264430*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264443*/              0, // EndSwitchType
/*264444*/            /*Scope*/ 102, /*->264547*/
/*264445*/              OPC_MoveChild0,
/*264446*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264449*/              OPC_MoveChild0,
/*264450*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264453*/              OPC_RecordMemRef,
/*264454*/              OPC_RecordNode, // #1 = 'ld' chained node
/*264455*/              OPC_CheckFoldableChainNode,
/*264456*/              OPC_RecordChild1, // #2 = $src2
/*264457*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264459*/              OPC_CheckPredicate, 9, // Predicate_load
/*264461*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*264463*/              OPC_SwitchType /*2 cases */, 39, MVT::v4i64,// ->264505
/*264466*/                OPC_MoveParent,
/*264467*/                OPC_MoveParent,
/*264468*/                OPC_RecordChild1, // #3 = $src1
/*264469*/                OPC_MoveParent,
/*264470*/                OPC_MoveChild2,
/*264471*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264474*/                OPC_MoveChild0,
/*264475*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264478*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264480*/                OPC_CheckType, MVT::v8i32,
/*264482*/                OPC_MoveParent,
/*264483*/                OPC_MoveParent,
/*264484*/                OPC_CheckType, MVT::v16i16,
/*264486*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*264488*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264491*/                OPC_EmitMergeInputChains1_1,
/*264492*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264505*/              /*SwitchType*/ 39, MVT::v2i64,// ->264546
/*264507*/                OPC_MoveParent,
/*264508*/                OPC_MoveParent,
/*264509*/                OPC_RecordChild1, // #3 = $src1
/*264510*/                OPC_MoveParent,
/*264511*/                OPC_MoveChild2,
/*264512*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264515*/                OPC_MoveChild0,
/*264516*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264519*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264521*/                OPC_CheckType, MVT::v4i32,
/*264523*/                OPC_MoveParent,
/*264524*/                OPC_MoveParent,
/*264525*/                OPC_CheckType, MVT::v16i8,
/*264527*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*264529*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264532*/                OPC_EmitMergeInputChains1_1,
/*264533*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264546*/              0, // EndSwitchType
/*264547*/            /*Scope*/ 102, /*->264650*/
/*264548*/              OPC_RecordChild0, // #1 = $src1
/*264549*/              OPC_MoveChild1,
/*264550*/              OPC_SwitchOpcode /*2 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->264601
/*264554*/                OPC_MoveChild0,
/*264555*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264558*/                OPC_RecordMemRef,
/*264559*/                OPC_RecordNode, // #2 = 'ld' chained node
/*264560*/                OPC_CheckFoldableChainNode,
/*264561*/                OPC_RecordChild1, // #3 = $src2
/*264562*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264564*/                OPC_CheckPredicate, 9, // Predicate_load
/*264566*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*264568*/                OPC_CheckType, MVT::v8i64,
/*264570*/                OPC_MoveParent,
/*264571*/                OPC_MoveParent,
/*264572*/                OPC_MoveParent,
/*264573*/                OPC_MoveChild2,
/*264574*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264577*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264579*/                OPC_MoveParent,
/*264580*/                OPC_CheckType, MVT::v16i32,
/*264582*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*264584*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264587*/                OPC_EmitMergeInputChains1_2,
/*264588*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264601*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->264649
/*264604*/                OPC_MoveChild0,
/*264605*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264608*/                OPC_RecordMemRef,
/*264609*/                OPC_RecordNode, // #2 = 'ld' chained node
/*264610*/                OPC_CheckFoldableChainNode,
/*264611*/                OPC_RecordChild1, // #3 = $src2
/*264612*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264614*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*264616*/                OPC_CheckType, MVT::i32,
/*264618*/                OPC_MoveParent,
/*264619*/                OPC_MoveParent,
/*264620*/                OPC_MoveParent,
/*264621*/                OPC_MoveChild2,
/*264622*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264625*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264627*/                OPC_MoveParent,
/*264628*/                OPC_CheckType, MVT::v16i32,
/*264630*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*264632*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264635*/                OPC_EmitMergeInputChains1_2,
/*264636*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264649*/              0, // EndSwitchOpcode
/*264650*/            /*Scope*/ 103, /*->264754*/
/*264651*/              OPC_MoveChild0,
/*264652*/              OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->264704
/*264656*/                OPC_MoveChild0,
/*264657*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264660*/                OPC_RecordMemRef,
/*264661*/                OPC_RecordNode, // #1 = 'ld' chained node
/*264662*/                OPC_CheckFoldableChainNode,
/*264663*/                OPC_RecordChild1, // #2 = $src2
/*264664*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264666*/                OPC_CheckPredicate, 9, // Predicate_load
/*264668*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*264670*/                OPC_CheckType, MVT::v8i64,
/*264672*/                OPC_MoveParent,
/*264673*/                OPC_MoveParent,
/*264674*/                OPC_RecordChild1, // #3 = $src1
/*264675*/                OPC_MoveParent,
/*264676*/                OPC_MoveChild2,
/*264677*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264680*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264682*/                OPC_MoveParent,
/*264683*/                OPC_CheckType, MVT::v16i32,
/*264685*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*264687*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264690*/                OPC_EmitMergeInputChains1_1,
/*264691*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264704*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->264753
/*264707*/                OPC_MoveChild0,
/*264708*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264711*/                OPC_RecordMemRef,
/*264712*/                OPC_RecordNode, // #1 = 'ld' chained node
/*264713*/                OPC_CheckFoldableChainNode,
/*264714*/                OPC_RecordChild1, // #2 = $src2
/*264715*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264717*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*264719*/                OPC_CheckType, MVT::i32,
/*264721*/                OPC_MoveParent,
/*264722*/                OPC_MoveParent,
/*264723*/                OPC_RecordChild1, // #3 = $src1
/*264724*/                OPC_MoveParent,
/*264725*/                OPC_MoveChild2,
/*264726*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264729*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264731*/                OPC_MoveParent,
/*264732*/                OPC_CheckType, MVT::v16i32,
/*264734*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*264736*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264739*/                OPC_EmitMergeInputChains1_1,
/*264740*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPADDDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264753*/              0, // EndSwitchOpcode
/*264754*/            0, /*End of Scope*/
/*264755*/          /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ISD::SUB),// ->264944
/*264759*/            OPC_RecordChild0, // #1 = $src1
/*264760*/            OPC_MoveChild1,
/*264761*/            OPC_SwitchOpcode /*2 cases */, 1|128,1/*129*/, TARGET_VAL(ISD::BITCAST),// ->264895
/*264766*/              OPC_MoveChild0,
/*264767*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264770*/              OPC_RecordMemRef,
/*264771*/              OPC_RecordNode, // #2 = 'ld' chained node
/*264772*/              OPC_CheckFoldableChainNode,
/*264773*/              OPC_RecordChild1, // #3 = $src2
/*264774*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264776*/              OPC_CheckPredicate, 9, // Predicate_load
/*264778*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*264780*/              OPC_SwitchType /*3 cases */, 38, MVT::v4i64,// ->264821
/*264783*/                OPC_MoveParent,
/*264784*/                OPC_MoveParent,
/*264785*/                OPC_MoveParent,
/*264786*/                OPC_MoveChild2,
/*264787*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264790*/                OPC_MoveChild0,
/*264791*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264794*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264796*/                OPC_CheckType, MVT::v8i32,
/*264798*/                OPC_MoveParent,
/*264799*/                OPC_MoveParent,
/*264800*/                OPC_CheckType, MVT::v16i16,
/*264802*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*264804*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264807*/                OPC_EmitMergeInputChains1_2,
/*264808*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSUBWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264821*/              /*SwitchType*/ 38, MVT::v2i64,// ->264861
/*264823*/                OPC_MoveParent,
/*264824*/                OPC_MoveParent,
/*264825*/                OPC_MoveParent,
/*264826*/                OPC_MoveChild2,
/*264827*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264830*/                OPC_MoveChild0,
/*264831*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264834*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264836*/                OPC_CheckType, MVT::v4i32,
/*264838*/                OPC_MoveParent,
/*264839*/                OPC_MoveParent,
/*264840*/                OPC_CheckType, MVT::v16i8,
/*264842*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*264844*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264847*/                OPC_EmitMergeInputChains1_2,
/*264848*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSUBBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264861*/              /*SwitchType*/ 31, MVT::v8i64,// ->264894
/*264863*/                OPC_MoveParent,
/*264864*/                OPC_MoveParent,
/*264865*/                OPC_MoveParent,
/*264866*/                OPC_MoveChild2,
/*264867*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264870*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264872*/                OPC_MoveParent,
/*264873*/                OPC_CheckType, MVT::v16i32,
/*264875*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*264877*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264880*/                OPC_EmitMergeInputChains1_2,
/*264881*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSUBDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264894*/              0, // EndSwitchType
/*264895*/            /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->264943
/*264898*/              OPC_MoveChild0,
/*264899*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264902*/              OPC_RecordMemRef,
/*264903*/              OPC_RecordNode, // #2 = 'ld' chained node
/*264904*/              OPC_CheckFoldableChainNode,
/*264905*/              OPC_RecordChild1, // #3 = $src2
/*264906*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264908*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*264910*/              OPC_CheckType, MVT::i32,
/*264912*/              OPC_MoveParent,
/*264913*/              OPC_MoveParent,
/*264914*/              OPC_MoveParent,
/*264915*/              OPC_MoveChild2,
/*264916*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264919*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264921*/              OPC_MoveParent,
/*264922*/              OPC_CheckType, MVT::v16i32,
/*264924*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*264926*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264929*/              OPC_EmitMergeInputChains1_2,
/*264930*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSUBDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264943*/            0, // EndSwitchOpcode
/*264944*/          /*SwitchOpcode*/ 79|128,1/*207*/, TARGET_VAL(X86ISD::ADDS),// ->265155
/*264948*/            OPC_Scope, 101, /*->265051*/ // 2 children in Scope
/*264950*/              OPC_RecordChild0, // #1 = $src1
/*264951*/              OPC_MoveChild1,
/*264952*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264955*/              OPC_MoveChild0,
/*264956*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264959*/              OPC_RecordMemRef,
/*264960*/              OPC_RecordNode, // #2 = 'ld' chained node
/*264961*/              OPC_CheckFoldableChainNode,
/*264962*/              OPC_RecordChild1, // #3 = $src2
/*264963*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264965*/              OPC_CheckPredicate, 9, // Predicate_load
/*264967*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*264969*/              OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->265010
/*264972*/                OPC_MoveParent,
/*264973*/                OPC_MoveParent,
/*264974*/                OPC_MoveParent,
/*264975*/                OPC_MoveChild2,
/*264976*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*264979*/                OPC_MoveChild0,
/*264980*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*264983*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*264985*/                OPC_CheckType, MVT::v8i32,
/*264987*/                OPC_MoveParent,
/*264988*/                OPC_MoveParent,
/*264989*/                OPC_CheckType, MVT::v16i16,
/*264991*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*264993*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264996*/                OPC_EmitMergeInputChains1_2,
/*264997*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265010*/              /*SwitchType*/ 38, MVT::v2i64,// ->265050
/*265012*/                OPC_MoveParent,
/*265013*/                OPC_MoveParent,
/*265014*/                OPC_MoveParent,
/*265015*/                OPC_MoveChild2,
/*265016*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265019*/                OPC_MoveChild0,
/*265020*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265023*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265025*/                OPC_CheckType, MVT::v4i32,
/*265027*/                OPC_MoveParent,
/*265028*/                OPC_MoveParent,
/*265029*/                OPC_CheckType, MVT::v16i8,
/*265031*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265033*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265036*/                OPC_EmitMergeInputChains1_2,
/*265037*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265050*/              0, // EndSwitchType
/*265051*/            /*Scope*/ 102, /*->265154*/
/*265052*/              OPC_MoveChild0,
/*265053*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265056*/              OPC_MoveChild0,
/*265057*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265060*/              OPC_RecordMemRef,
/*265061*/              OPC_RecordNode, // #1 = 'ld' chained node
/*265062*/              OPC_CheckFoldableChainNode,
/*265063*/              OPC_RecordChild1, // #2 = $src2
/*265064*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265066*/              OPC_CheckPredicate, 9, // Predicate_load
/*265068*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*265070*/              OPC_SwitchType /*2 cases */, 39, MVT::v4i64,// ->265112
/*265073*/                OPC_MoveParent,
/*265074*/                OPC_MoveParent,
/*265075*/                OPC_RecordChild1, // #3 = $src1
/*265076*/                OPC_MoveParent,
/*265077*/                OPC_MoveChild2,
/*265078*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265081*/                OPC_MoveChild0,
/*265082*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265085*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265087*/                OPC_CheckType, MVT::v8i32,
/*265089*/                OPC_MoveParent,
/*265090*/                OPC_MoveParent,
/*265091*/                OPC_CheckType, MVT::v16i16,
/*265093*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265095*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265098*/                OPC_EmitMergeInputChains1_1,
/*265099*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265112*/              /*SwitchType*/ 39, MVT::v2i64,// ->265153
/*265114*/                OPC_MoveParent,
/*265115*/                OPC_MoveParent,
/*265116*/                OPC_RecordChild1, // #3 = $src1
/*265117*/                OPC_MoveParent,
/*265118*/                OPC_MoveChild2,
/*265119*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265122*/                OPC_MoveChild0,
/*265123*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265126*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265128*/                OPC_CheckType, MVT::v4i32,
/*265130*/                OPC_MoveParent,
/*265131*/                OPC_MoveParent,
/*265132*/                OPC_CheckType, MVT::v16i8,
/*265134*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265136*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265139*/                OPC_EmitMergeInputChains1_1,
/*265140*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265153*/              0, // EndSwitchType
/*265154*/            0, /*End of Scope*/
/*265155*/          /*SwitchOpcode*/ 101, TARGET_VAL(X86ISD::SUBS),// ->265259
/*265158*/            OPC_RecordChild0, // #1 = $src1
/*265159*/            OPC_MoveChild1,
/*265160*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265163*/            OPC_MoveChild0,
/*265164*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265167*/            OPC_RecordMemRef,
/*265168*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265169*/            OPC_CheckFoldableChainNode,
/*265170*/            OPC_RecordChild1, // #3 = $src2
/*265171*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265173*/            OPC_CheckPredicate, 9, // Predicate_load
/*265175*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*265177*/            OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->265218
/*265180*/              OPC_MoveParent,
/*265181*/              OPC_MoveParent,
/*265182*/              OPC_MoveParent,
/*265183*/              OPC_MoveChild2,
/*265184*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265187*/              OPC_MoveChild0,
/*265188*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265191*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265193*/              OPC_CheckType, MVT::v8i32,
/*265195*/              OPC_MoveParent,
/*265196*/              OPC_MoveParent,
/*265197*/              OPC_CheckType, MVT::v16i16,
/*265199*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265201*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265204*/              OPC_EmitMergeInputChains1_2,
/*265205*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86subs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSUBSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265218*/            /*SwitchType*/ 38, MVT::v2i64,// ->265258
/*265220*/              OPC_MoveParent,
/*265221*/              OPC_MoveParent,
/*265222*/              OPC_MoveParent,
/*265223*/              OPC_MoveChild2,
/*265224*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265227*/              OPC_MoveChild0,
/*265228*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265231*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265233*/              OPC_CheckType, MVT::v4i32,
/*265235*/              OPC_MoveParent,
/*265236*/              OPC_MoveParent,
/*265237*/              OPC_CheckType, MVT::v16i8,
/*265239*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265241*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265244*/              OPC_EmitMergeInputChains1_2,
/*265245*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86subs:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSUBSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265258*/            0, // EndSwitchType
/*265259*/          /*SwitchOpcode*/ 79|128,1/*207*/, TARGET_VAL(X86ISD::ADDUS),// ->265470
/*265263*/            OPC_Scope, 101, /*->265366*/ // 2 children in Scope
/*265265*/              OPC_RecordChild0, // #1 = $src1
/*265266*/              OPC_MoveChild1,
/*265267*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265270*/              OPC_MoveChild0,
/*265271*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265274*/              OPC_RecordMemRef,
/*265275*/              OPC_RecordNode, // #2 = 'ld' chained node
/*265276*/              OPC_CheckFoldableChainNode,
/*265277*/              OPC_RecordChild1, // #3 = $src2
/*265278*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265280*/              OPC_CheckPredicate, 9, // Predicate_load
/*265282*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*265284*/              OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->265325
/*265287*/                OPC_MoveParent,
/*265288*/                OPC_MoveParent,
/*265289*/                OPC_MoveParent,
/*265290*/                OPC_MoveChild2,
/*265291*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265294*/                OPC_MoveChild0,
/*265295*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265298*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265300*/                OPC_CheckType, MVT::v8i32,
/*265302*/                OPC_MoveParent,
/*265303*/                OPC_MoveParent,
/*265304*/                OPC_CheckType, MVT::v16i16,
/*265306*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265308*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265311*/                OPC_EmitMergeInputChains1_2,
/*265312*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDUSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265325*/              /*SwitchType*/ 38, MVT::v2i64,// ->265365
/*265327*/                OPC_MoveParent,
/*265328*/                OPC_MoveParent,
/*265329*/                OPC_MoveParent,
/*265330*/                OPC_MoveChild2,
/*265331*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265334*/                OPC_MoveChild0,
/*265335*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265338*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265340*/                OPC_CheckType, MVT::v4i32,
/*265342*/                OPC_MoveParent,
/*265343*/                OPC_MoveParent,
/*265344*/                OPC_CheckType, MVT::v16i8,
/*265346*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265348*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265351*/                OPC_EmitMergeInputChains1_2,
/*265352*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDUSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265365*/              0, // EndSwitchType
/*265366*/            /*Scope*/ 102, /*->265469*/
/*265367*/              OPC_MoveChild0,
/*265368*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265371*/              OPC_MoveChild0,
/*265372*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265375*/              OPC_RecordMemRef,
/*265376*/              OPC_RecordNode, // #1 = 'ld' chained node
/*265377*/              OPC_CheckFoldableChainNode,
/*265378*/              OPC_RecordChild1, // #2 = $src2
/*265379*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265381*/              OPC_CheckPredicate, 9, // Predicate_load
/*265383*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*265385*/              OPC_SwitchType /*2 cases */, 39, MVT::v4i64,// ->265427
/*265388*/                OPC_MoveParent,
/*265389*/                OPC_MoveParent,
/*265390*/                OPC_RecordChild1, // #3 = $src1
/*265391*/                OPC_MoveParent,
/*265392*/                OPC_MoveChild2,
/*265393*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265396*/                OPC_MoveChild0,
/*265397*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265400*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265402*/                OPC_CheckType, MVT::v8i32,
/*265404*/                OPC_MoveParent,
/*265405*/                OPC_MoveParent,
/*265406*/                OPC_CheckType, MVT::v16i16,
/*265408*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265410*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265413*/                OPC_EmitMergeInputChains1_1,
/*265414*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDUSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265427*/              /*SwitchType*/ 39, MVT::v2i64,// ->265468
/*265429*/                OPC_MoveParent,
/*265430*/                OPC_MoveParent,
/*265431*/                OPC_RecordChild1, // #3 = $src1
/*265432*/                OPC_MoveParent,
/*265433*/                OPC_MoveChild2,
/*265434*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265437*/                OPC_MoveChild0,
/*265438*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265441*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265443*/                OPC_CheckType, MVT::v4i32,
/*265445*/                OPC_MoveParent,
/*265446*/                OPC_MoveParent,
/*265447*/                OPC_CheckType, MVT::v16i8,
/*265449*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265451*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265454*/                OPC_EmitMergeInputChains1_1,
/*265455*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPADDUSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265468*/              0, // EndSwitchType
/*265469*/            0, /*End of Scope*/
/*265470*/          /*SwitchOpcode*/ 101, TARGET_VAL(X86ISD::SUBUS),// ->265574
/*265473*/            OPC_RecordChild0, // #1 = $src1
/*265474*/            OPC_MoveChild1,
/*265475*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265478*/            OPC_MoveChild0,
/*265479*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265482*/            OPC_RecordMemRef,
/*265483*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265484*/            OPC_CheckFoldableChainNode,
/*265485*/            OPC_RecordChild1, // #3 = $src2
/*265486*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265488*/            OPC_CheckPredicate, 9, // Predicate_load
/*265490*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*265492*/            OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->265533
/*265495*/              OPC_MoveParent,
/*265496*/              OPC_MoveParent,
/*265497*/              OPC_MoveParent,
/*265498*/              OPC_MoveChild2,
/*265499*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265502*/              OPC_MoveChild0,
/*265503*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265506*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265508*/              OPC_CheckType, MVT::v8i32,
/*265510*/              OPC_MoveParent,
/*265511*/              OPC_MoveParent,
/*265512*/              OPC_CheckType, MVT::v16i16,
/*265514*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265516*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265519*/              OPC_EmitMergeInputChains1_2,
/*265520*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86subus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSUBUSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265533*/            /*SwitchType*/ 38, MVT::v2i64,// ->265573
/*265535*/              OPC_MoveParent,
/*265536*/              OPC_MoveParent,
/*265537*/              OPC_MoveParent,
/*265538*/              OPC_MoveChild2,
/*265539*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265542*/              OPC_MoveChild0,
/*265543*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265546*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265548*/              OPC_CheckType, MVT::v4i32,
/*265550*/              OPC_MoveParent,
/*265551*/              OPC_MoveParent,
/*265552*/              OPC_CheckType, MVT::v16i8,
/*265554*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265556*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265559*/              OPC_EmitMergeInputChains1_2,
/*265560*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86subus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSUBUSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265573*/            0, // EndSwitchType
/*265574*/          /*SwitchOpcode*/ 73|128,2/*329*/, TARGET_VAL(ISD::MUL),// ->265907
/*265578*/            OPC_Scope, 59, /*->265639*/ // 4 children in Scope
/*265580*/              OPC_RecordChild0, // #1 = $src1
/*265581*/              OPC_MoveChild1,
/*265582*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265585*/              OPC_MoveChild0,
/*265586*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265589*/              OPC_RecordMemRef,
/*265590*/              OPC_RecordNode, // #2 = 'ld' chained node
/*265591*/              OPC_CheckFoldableChainNode,
/*265592*/              OPC_RecordChild1, // #3 = $src2
/*265593*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265595*/              OPC_CheckPredicate, 9, // Predicate_load
/*265597*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*265599*/              OPC_CheckType, MVT::v4i64,
/*265601*/              OPC_MoveParent,
/*265602*/              OPC_MoveParent,
/*265603*/              OPC_MoveParent,
/*265604*/              OPC_MoveChild2,
/*265605*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265608*/              OPC_MoveChild0,
/*265609*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265612*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265614*/              OPC_CheckType, MVT::v8i32,
/*265616*/              OPC_MoveParent,
/*265617*/              OPC_MoveParent,
/*265618*/              OPC_CheckType, MVT::v16i16,
/*265620*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265622*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265625*/              OPC_EmitMergeInputChains1_2,
/*265626*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULLWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265639*/            /*Scope*/ 59, /*->265699*/
/*265640*/              OPC_MoveChild0,
/*265641*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265644*/              OPC_MoveChild0,
/*265645*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265648*/              OPC_RecordMemRef,
/*265649*/              OPC_RecordNode, // #1 = 'ld' chained node
/*265650*/              OPC_CheckFoldableChainNode,
/*265651*/              OPC_RecordChild1, // #2 = $src2
/*265652*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265654*/              OPC_CheckPredicate, 9, // Predicate_load
/*265656*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*265658*/              OPC_CheckType, MVT::v4i64,
/*265660*/              OPC_MoveParent,
/*265661*/              OPC_MoveParent,
/*265662*/              OPC_RecordChild1, // #3 = $src1
/*265663*/              OPC_MoveParent,
/*265664*/              OPC_MoveChild2,
/*265665*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265668*/              OPC_MoveChild0,
/*265669*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265672*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265674*/              OPC_CheckType, MVT::v8i32,
/*265676*/              OPC_MoveParent,
/*265677*/              OPC_MoveParent,
/*265678*/              OPC_CheckType, MVT::v16i16,
/*265680*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265682*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265685*/              OPC_EmitMergeInputChains1_1,
/*265686*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULLWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265699*/            /*Scope*/ 102, /*->265802*/
/*265700*/              OPC_RecordChild0, // #1 = $src1
/*265701*/              OPC_MoveChild1,
/*265702*/              OPC_SwitchOpcode /*2 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->265753
/*265706*/                OPC_MoveChild0,
/*265707*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265710*/                OPC_RecordMemRef,
/*265711*/                OPC_RecordNode, // #2 = 'ld' chained node
/*265712*/                OPC_CheckFoldableChainNode,
/*265713*/                OPC_RecordChild1, // #3 = $src2
/*265714*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265716*/                OPC_CheckPredicate, 9, // Predicate_load
/*265718*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*265720*/                OPC_CheckType, MVT::v8i64,
/*265722*/                OPC_MoveParent,
/*265723*/                OPC_MoveParent,
/*265724*/                OPC_MoveParent,
/*265725*/                OPC_MoveChild2,
/*265726*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265729*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265731*/                OPC_MoveParent,
/*265732*/                OPC_CheckType, MVT::v16i32,
/*265734*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*265736*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265739*/                OPC_EmitMergeInputChains1_2,
/*265740*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265753*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->265801
/*265756*/                OPC_MoveChild0,
/*265757*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265760*/                OPC_RecordMemRef,
/*265761*/                OPC_RecordNode, // #2 = 'ld' chained node
/*265762*/                OPC_CheckFoldableChainNode,
/*265763*/                OPC_RecordChild1, // #3 = $src2
/*265764*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265766*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*265768*/                OPC_CheckType, MVT::i32,
/*265770*/                OPC_MoveParent,
/*265771*/                OPC_MoveParent,
/*265772*/                OPC_MoveParent,
/*265773*/                OPC_MoveChild2,
/*265774*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265777*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265779*/                OPC_MoveParent,
/*265780*/                OPC_CheckType, MVT::v16i32,
/*265782*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*265784*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265787*/                OPC_EmitMergeInputChains1_2,
/*265788*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265801*/              0, // EndSwitchOpcode
/*265802*/            /*Scope*/ 103, /*->265906*/
/*265803*/              OPC_MoveChild0,
/*265804*/              OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->265856
/*265808*/                OPC_MoveChild0,
/*265809*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265812*/                OPC_RecordMemRef,
/*265813*/                OPC_RecordNode, // #1 = 'ld' chained node
/*265814*/                OPC_CheckFoldableChainNode,
/*265815*/                OPC_RecordChild1, // #2 = $src2
/*265816*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265818*/                OPC_CheckPredicate, 9, // Predicate_load
/*265820*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*265822*/                OPC_CheckType, MVT::v8i64,
/*265824*/                OPC_MoveParent,
/*265825*/                OPC_MoveParent,
/*265826*/                OPC_RecordChild1, // #3 = $src1
/*265827*/                OPC_MoveParent,
/*265828*/                OPC_MoveChild2,
/*265829*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265832*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265834*/                OPC_MoveParent,
/*265835*/                OPC_CheckType, MVT::v16i32,
/*265837*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*265839*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265842*/                OPC_EmitMergeInputChains1_1,
/*265843*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265856*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->265905
/*265859*/                OPC_MoveChild0,
/*265860*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265863*/                OPC_RecordMemRef,
/*265864*/                OPC_RecordNode, // #1 = 'ld' chained node
/*265865*/                OPC_CheckFoldableChainNode,
/*265866*/                OPC_RecordChild1, // #2 = $src2
/*265867*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265869*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*265871*/                OPC_CheckType, MVT::i32,
/*265873*/                OPC_MoveParent,
/*265874*/                OPC_MoveParent,
/*265875*/                OPC_RecordChild1, // #3 = $src1
/*265876*/                OPC_MoveParent,
/*265877*/                OPC_MoveChild2,
/*265878*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265881*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265883*/                OPC_MoveParent,
/*265884*/                OPC_CheckType, MVT::v16i32,
/*265886*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*265888*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265891*/                OPC_EmitMergeInputChains1_1,
/*265892*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMULLDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265905*/              0, // EndSwitchOpcode
/*265906*/            0, /*End of Scope*/
/*265907*/          /*SwitchOpcode*/ 122, TARGET_VAL(ISD::MULHS),// ->266032
/*265910*/            OPC_Scope, 59, /*->265971*/ // 2 children in Scope
/*265912*/              OPC_RecordChild0, // #1 = $src1
/*265913*/              OPC_MoveChild1,
/*265914*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265917*/              OPC_MoveChild0,
/*265918*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265921*/              OPC_RecordMemRef,
/*265922*/              OPC_RecordNode, // #2 = 'ld' chained node
/*265923*/              OPC_CheckFoldableChainNode,
/*265924*/              OPC_RecordChild1, // #3 = $src2
/*265925*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265927*/              OPC_CheckPredicate, 9, // Predicate_load
/*265929*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*265931*/              OPC_CheckType, MVT::v4i64,
/*265933*/              OPC_MoveParent,
/*265934*/              OPC_MoveParent,
/*265935*/              OPC_MoveParent,
/*265936*/              OPC_MoveChild2,
/*265937*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265940*/              OPC_MoveChild0,
/*265941*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*265944*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*265946*/              OPC_CheckType, MVT::v8i32,
/*265948*/              OPC_MoveParent,
/*265949*/              OPC_MoveParent,
/*265950*/              OPC_CheckType, MVT::v16i16,
/*265952*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*265954*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265957*/              OPC_EmitMergeInputChains1_2,
/*265958*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265971*/            /*Scope*/ 59, /*->266031*/
/*265972*/              OPC_MoveChild0,
/*265973*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*265976*/              OPC_MoveChild0,
/*265977*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265980*/              OPC_RecordMemRef,
/*265981*/              OPC_RecordNode, // #1 = 'ld' chained node
/*265982*/              OPC_CheckFoldableChainNode,
/*265983*/              OPC_RecordChild1, // #2 = $src2
/*265984*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265986*/              OPC_CheckPredicate, 9, // Predicate_load
/*265988*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*265990*/              OPC_CheckType, MVT::v4i64,
/*265992*/              OPC_MoveParent,
/*265993*/              OPC_MoveParent,
/*265994*/              OPC_RecordChild1, // #3 = $src1
/*265995*/              OPC_MoveParent,
/*265996*/              OPC_MoveChild2,
/*265997*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266000*/              OPC_MoveChild0,
/*266001*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266004*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266006*/              OPC_CheckType, MVT::v8i32,
/*266008*/              OPC_MoveParent,
/*266009*/              OPC_MoveParent,
/*266010*/              OPC_CheckType, MVT::v16i16,
/*266012*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266014*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266017*/              OPC_EmitMergeInputChains1_1,
/*266018*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266031*/            0, /*End of Scope*/
/*266032*/          /*SwitchOpcode*/ 122, TARGET_VAL(ISD::MULHU),// ->266157
/*266035*/            OPC_Scope, 59, /*->266096*/ // 2 children in Scope
/*266037*/              OPC_RecordChild0, // #1 = $src1
/*266038*/              OPC_MoveChild1,
/*266039*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266042*/              OPC_MoveChild0,
/*266043*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266046*/              OPC_RecordMemRef,
/*266047*/              OPC_RecordNode, // #2 = 'ld' chained node
/*266048*/              OPC_CheckFoldableChainNode,
/*266049*/              OPC_RecordChild1, // #3 = $src2
/*266050*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266052*/              OPC_CheckPredicate, 9, // Predicate_load
/*266054*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*266056*/              OPC_CheckType, MVT::v4i64,
/*266058*/              OPC_MoveParent,
/*266059*/              OPC_MoveParent,
/*266060*/              OPC_MoveParent,
/*266061*/              OPC_MoveChild2,
/*266062*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266065*/              OPC_MoveChild0,
/*266066*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266069*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266071*/              OPC_CheckType, MVT::v8i32,
/*266073*/              OPC_MoveParent,
/*266074*/              OPC_MoveParent,
/*266075*/              OPC_CheckType, MVT::v16i16,
/*266077*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266079*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266082*/              OPC_EmitMergeInputChains1_2,
/*266083*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhu:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266096*/            /*Scope*/ 59, /*->266156*/
/*266097*/              OPC_MoveChild0,
/*266098*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266101*/              OPC_MoveChild0,
/*266102*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266105*/              OPC_RecordMemRef,
/*266106*/              OPC_RecordNode, // #1 = 'ld' chained node
/*266107*/              OPC_CheckFoldableChainNode,
/*266108*/              OPC_RecordChild1, // #2 = $src2
/*266109*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266111*/              OPC_CheckPredicate, 9, // Predicate_load
/*266113*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*266115*/              OPC_CheckType, MVT::v4i64,
/*266117*/              OPC_MoveParent,
/*266118*/              OPC_MoveParent,
/*266119*/              OPC_RecordChild1, // #3 = $src1
/*266120*/              OPC_MoveParent,
/*266121*/              OPC_MoveChild2,
/*266122*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266125*/              OPC_MoveChild0,
/*266126*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266129*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266131*/              OPC_CheckType, MVT::v8i32,
/*266133*/              OPC_MoveParent,
/*266134*/              OPC_MoveParent,
/*266135*/              OPC_CheckType, MVT::v16i16,
/*266137*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266139*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266142*/              OPC_EmitMergeInputChains1_1,
/*266143*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhu:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266156*/            0, /*End of Scope*/
/*266157*/          /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::MULHRS),// ->266282
/*266160*/            OPC_Scope, 59, /*->266221*/ // 2 children in Scope
/*266162*/              OPC_RecordChild0, // #1 = $src1
/*266163*/              OPC_MoveChild1,
/*266164*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266167*/              OPC_MoveChild0,
/*266168*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266171*/              OPC_RecordMemRef,
/*266172*/              OPC_RecordNode, // #2 = 'ld' chained node
/*266173*/              OPC_CheckFoldableChainNode,
/*266174*/              OPC_RecordChild1, // #3 = $src2
/*266175*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266177*/              OPC_CheckPredicate, 9, // Predicate_load
/*266179*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*266181*/              OPC_CheckType, MVT::v4i64,
/*266183*/              OPC_MoveParent,
/*266184*/              OPC_MoveParent,
/*266185*/              OPC_MoveParent,
/*266186*/              OPC_MoveChild2,
/*266187*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266190*/              OPC_MoveChild0,
/*266191*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266194*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266196*/              OPC_CheckType, MVT::v8i32,
/*266198*/              OPC_MoveParent,
/*266199*/              OPC_MoveParent,
/*266200*/              OPC_CheckType, MVT::v16i16,
/*266202*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266204*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266207*/              OPC_EmitMergeInputChains1_2,
/*266208*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86mulhrs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHRSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266221*/            /*Scope*/ 59, /*->266281*/
/*266222*/              OPC_MoveChild0,
/*266223*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266226*/              OPC_MoveChild0,
/*266227*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266230*/              OPC_RecordMemRef,
/*266231*/              OPC_RecordNode, // #1 = 'ld' chained node
/*266232*/              OPC_CheckFoldableChainNode,
/*266233*/              OPC_RecordChild1, // #2 = $src2
/*266234*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266236*/              OPC_CheckPredicate, 9, // Predicate_load
/*266238*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*266240*/              OPC_CheckType, MVT::v4i64,
/*266242*/              OPC_MoveParent,
/*266243*/              OPC_MoveParent,
/*266244*/              OPC_RecordChild1, // #3 = $src1
/*266245*/              OPC_MoveParent,
/*266246*/              OPC_MoveChild2,
/*266247*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266250*/              OPC_MoveChild0,
/*266251*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266254*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266256*/              OPC_CheckType, MVT::v8i32,
/*266258*/              OPC_MoveParent,
/*266259*/              OPC_MoveParent,
/*266260*/              OPC_CheckType, MVT::v16i16,
/*266262*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266264*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266267*/              OPC_EmitMergeInputChains1_1,
/*266268*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86mulhrs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULHRSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266281*/            0, /*End of Scope*/
/*266282*/          /*SwitchOpcode*/ 79|128,1/*207*/, TARGET_VAL(X86ISD::AVG),// ->266493
/*266286*/            OPC_Scope, 101, /*->266389*/ // 2 children in Scope
/*266288*/              OPC_RecordChild0, // #1 = $src1
/*266289*/              OPC_MoveChild1,
/*266290*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266293*/              OPC_MoveChild0,
/*266294*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266297*/              OPC_RecordMemRef,
/*266298*/              OPC_RecordNode, // #2 = 'ld' chained node
/*266299*/              OPC_CheckFoldableChainNode,
/*266300*/              OPC_RecordChild1, // #3 = $src2
/*266301*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266303*/              OPC_CheckPredicate, 9, // Predicate_load
/*266305*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*266307*/              OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->266348
/*266310*/                OPC_MoveParent,
/*266311*/                OPC_MoveParent,
/*266312*/                OPC_MoveParent,
/*266313*/                OPC_MoveChild2,
/*266314*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266317*/                OPC_MoveChild0,
/*266318*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266321*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266323*/                OPC_CheckType, MVT::v8i32,
/*266325*/                OPC_MoveParent,
/*266326*/                OPC_MoveParent,
/*266327*/                OPC_CheckType, MVT::v16i16,
/*266329*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266331*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266334*/                OPC_EmitMergeInputChains1_2,
/*266335*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPAVGWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266348*/              /*SwitchType*/ 38, MVT::v2i64,// ->266388
/*266350*/                OPC_MoveParent,
/*266351*/                OPC_MoveParent,
/*266352*/                OPC_MoveParent,
/*266353*/                OPC_MoveChild2,
/*266354*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266357*/                OPC_MoveChild0,
/*266358*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266361*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266363*/                OPC_CheckType, MVT::v4i32,
/*266365*/                OPC_MoveParent,
/*266366*/                OPC_MoveParent,
/*266367*/                OPC_CheckType, MVT::v16i8,
/*266369*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266371*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266374*/                OPC_EmitMergeInputChains1_2,
/*266375*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPAVGBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266388*/              0, // EndSwitchType
/*266389*/            /*Scope*/ 102, /*->266492*/
/*266390*/              OPC_MoveChild0,
/*266391*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266394*/              OPC_MoveChild0,
/*266395*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266398*/              OPC_RecordMemRef,
/*266399*/              OPC_RecordNode, // #1 = 'ld' chained node
/*266400*/              OPC_CheckFoldableChainNode,
/*266401*/              OPC_RecordChild1, // #2 = $src2
/*266402*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266404*/              OPC_CheckPredicate, 9, // Predicate_load
/*266406*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*266408*/              OPC_SwitchType /*2 cases */, 39, MVT::v4i64,// ->266450
/*266411*/                OPC_MoveParent,
/*266412*/                OPC_MoveParent,
/*266413*/                OPC_RecordChild1, // #3 = $src1
/*266414*/                OPC_MoveParent,
/*266415*/                OPC_MoveChild2,
/*266416*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266419*/                OPC_MoveChild0,
/*266420*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266423*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266425*/                OPC_CheckType, MVT::v8i32,
/*266427*/                OPC_MoveParent,
/*266428*/                OPC_MoveParent,
/*266429*/                OPC_CheckType, MVT::v16i16,
/*266431*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266433*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266436*/                OPC_EmitMergeInputChains1_1,
/*266437*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPAVGWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266450*/              /*SwitchType*/ 39, MVT::v2i64,// ->266491
/*266452*/                OPC_MoveParent,
/*266453*/                OPC_MoveParent,
/*266454*/                OPC_RecordChild1, // #3 = $src1
/*266455*/                OPC_MoveParent,
/*266456*/                OPC_MoveChild2,
/*266457*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266460*/                OPC_MoveChild0,
/*266461*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266464*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266466*/                OPC_CheckType, MVT::v4i32,
/*266468*/                OPC_MoveParent,
/*266469*/                OPC_MoveParent,
/*266470*/                OPC_CheckType, MVT::v16i8,
/*266472*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266474*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266477*/                OPC_EmitMergeInputChains1_1,
/*266478*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPAVGBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266491*/              0, // EndSwitchType
/*266492*/            0, /*End of Scope*/
/*266493*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::MULTISHIFT),// ->266557
/*266496*/            OPC_RecordChild0, // #1 = $src1
/*266497*/            OPC_CheckChild0Type, MVT::v16i8,
/*266499*/            OPC_MoveChild1,
/*266500*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266503*/            OPC_MoveChild0,
/*266504*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266507*/            OPC_RecordMemRef,
/*266508*/            OPC_RecordNode, // #2 = 'ld' chained node
/*266509*/            OPC_CheckFoldableChainNode,
/*266510*/            OPC_RecordChild1, // #3 = $src2
/*266511*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266513*/            OPC_CheckPredicate, 9, // Predicate_load
/*266515*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*266517*/            OPC_CheckType, MVT::v2i64,
/*266519*/            OPC_MoveParent,
/*266520*/            OPC_MoveParent,
/*266521*/            OPC_MoveParent,
/*266522*/            OPC_MoveChild2,
/*266523*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266526*/            OPC_MoveChild0,
/*266527*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266530*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266532*/            OPC_CheckType, MVT::v4i32,
/*266534*/            OPC_MoveParent,
/*266535*/            OPC_MoveParent,
/*266536*/            OPC_CheckType, MVT::v16i8,
/*266538*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*266540*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266543*/            OPC_EmitMergeInputChains1_2,
/*266544*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86multishift:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULTISHIFTQBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266557*/          /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(X86ISD::PACKSS),// ->266743
/*266561*/            OPC_RecordChild0, // #1 = $src1
/*266562*/            OPC_Scope, 117, /*->266681*/ // 2 children in Scope
/*266564*/              OPC_CheckChild0Type, MVT::v8i32,
/*266566*/              OPC_MoveChild1,
/*266567*/              OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->266625
/*266571*/                OPC_MoveChild0,
/*266572*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266575*/                OPC_RecordMemRef,
/*266576*/                OPC_RecordNode, // #2 = 'ld' chained node
/*266577*/                OPC_CheckFoldableChainNode,
/*266578*/                OPC_RecordChild1, // #3 = $src2
/*266579*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266581*/                OPC_CheckPredicate, 9, // Predicate_load
/*266583*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*266585*/                OPC_CheckType, MVT::v4i64,
/*266587*/                OPC_MoveParent,
/*266588*/                OPC_MoveParent,
/*266589*/                OPC_MoveParent,
/*266590*/                OPC_MoveChild2,
/*266591*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266594*/                OPC_MoveChild0,
/*266595*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266598*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266600*/                OPC_CheckType, MVT::v8i32,
/*266602*/                OPC_MoveParent,
/*266603*/                OPC_MoveParent,
/*266604*/                OPC_CheckType, MVT::v16i16,
/*266606*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266608*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266611*/                OPC_EmitMergeInputChains1_2,
/*266612*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packss:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPACKSSDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266625*/              /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->266680
/*266628*/                OPC_MoveChild0,
/*266629*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266632*/                OPC_RecordMemRef,
/*266633*/                OPC_RecordNode, // #2 = 'ld' chained node
/*266634*/                OPC_CheckFoldableChainNode,
/*266635*/                OPC_RecordChild1, // #3 = $src2
/*266636*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266638*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*266640*/                OPC_CheckType, MVT::i32,
/*266642*/                OPC_MoveParent,
/*266643*/                OPC_MoveParent,
/*266644*/                OPC_MoveParent,
/*266645*/                OPC_MoveChild2,
/*266646*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266649*/                OPC_MoveChild0,
/*266650*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266653*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266655*/                OPC_CheckType, MVT::v8i32,
/*266657*/                OPC_MoveParent,
/*266658*/                OPC_MoveParent,
/*266659*/                OPC_CheckType, MVT::v16i16,
/*266661*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266663*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266666*/                OPC_EmitMergeInputChains1_2,
/*266667*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packss:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPACKSSDWZ256rmbkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266680*/              0, // EndSwitchOpcode
/*266681*/            /*Scope*/ 60, /*->266742*/
/*266682*/              OPC_CheckChild0Type, MVT::v8i16,
/*266684*/              OPC_MoveChild1,
/*266685*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266688*/              OPC_MoveChild0,
/*266689*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266692*/              OPC_RecordMemRef,
/*266693*/              OPC_RecordNode, // #2 = 'ld' chained node
/*266694*/              OPC_CheckFoldableChainNode,
/*266695*/              OPC_RecordChild1, // #3 = $src2
/*266696*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266698*/              OPC_CheckPredicate, 9, // Predicate_load
/*266700*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*266702*/              OPC_CheckType, MVT::v2i64,
/*266704*/              OPC_MoveParent,
/*266705*/              OPC_MoveParent,
/*266706*/              OPC_MoveParent,
/*266707*/              OPC_MoveChild2,
/*266708*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266711*/              OPC_MoveChild0,
/*266712*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266715*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266717*/              OPC_CheckType, MVT::v4i32,
/*266719*/              OPC_MoveParent,
/*266720*/              OPC_MoveParent,
/*266721*/              OPC_CheckType, MVT::v16i8,
/*266723*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266725*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266728*/              OPC_EmitMergeInputChains1_2,
/*266729*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Packss:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPACKSSWBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266742*/            0, /*End of Scope*/
/*266743*/          /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(X86ISD::PACKUS),// ->266929
/*266747*/            OPC_RecordChild0, // #1 = $src1
/*266748*/            OPC_Scope, 117, /*->266867*/ // 2 children in Scope
/*266750*/              OPC_CheckChild0Type, MVT::v8i32,
/*266752*/              OPC_MoveChild1,
/*266753*/              OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->266811
/*266757*/                OPC_MoveChild0,
/*266758*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266761*/                OPC_RecordMemRef,
/*266762*/                OPC_RecordNode, // #2 = 'ld' chained node
/*266763*/                OPC_CheckFoldableChainNode,
/*266764*/                OPC_RecordChild1, // #3 = $src2
/*266765*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266767*/                OPC_CheckPredicate, 9, // Predicate_load
/*266769*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*266771*/                OPC_CheckType, MVT::v4i64,
/*266773*/                OPC_MoveParent,
/*266774*/                OPC_MoveParent,
/*266775*/                OPC_MoveParent,
/*266776*/                OPC_MoveChild2,
/*266777*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266780*/                OPC_MoveChild0,
/*266781*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266784*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266786*/                OPC_CheckType, MVT::v8i32,
/*266788*/                OPC_MoveParent,
/*266789*/                OPC_MoveParent,
/*266790*/                OPC_CheckType, MVT::v16i16,
/*266792*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266794*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266797*/                OPC_EmitMergeInputChains1_2,
/*266798*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packus:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPACKUSDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266811*/              /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->266866
/*266814*/                OPC_MoveChild0,
/*266815*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266818*/                OPC_RecordMemRef,
/*266819*/                OPC_RecordNode, // #2 = 'ld' chained node
/*266820*/                OPC_CheckFoldableChainNode,
/*266821*/                OPC_RecordChild1, // #3 = $src2
/*266822*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266824*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*266826*/                OPC_CheckType, MVT::i32,
/*266828*/                OPC_MoveParent,
/*266829*/                OPC_MoveParent,
/*266830*/                OPC_MoveParent,
/*266831*/                OPC_MoveChild2,
/*266832*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266835*/                OPC_MoveChild0,
/*266836*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266839*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266841*/                OPC_CheckType, MVT::v8i32,
/*266843*/                OPC_MoveParent,
/*266844*/                OPC_MoveParent,
/*266845*/                OPC_CheckType, MVT::v16i16,
/*266847*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266849*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266852*/                OPC_EmitMergeInputChains1_2,
/*266853*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packus:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPACKUSDWZ256rmbkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266866*/              0, // EndSwitchOpcode
/*266867*/            /*Scope*/ 60, /*->266928*/
/*266868*/              OPC_CheckChild0Type, MVT::v8i16,
/*266870*/              OPC_MoveChild1,
/*266871*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266874*/              OPC_MoveChild0,
/*266875*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266878*/              OPC_RecordMemRef,
/*266879*/              OPC_RecordNode, // #2 = 'ld' chained node
/*266880*/              OPC_CheckFoldableChainNode,
/*266881*/              OPC_RecordChild1, // #3 = $src2
/*266882*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266884*/              OPC_CheckPredicate, 9, // Predicate_load
/*266886*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*266888*/              OPC_CheckType, MVT::v2i64,
/*266890*/              OPC_MoveParent,
/*266891*/              OPC_MoveParent,
/*266892*/              OPC_MoveParent,
/*266893*/              OPC_MoveChild2,
/*266894*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266897*/              OPC_MoveChild0,
/*266898*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266901*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266903*/              OPC_CheckType, MVT::v4i32,
/*266905*/              OPC_MoveParent,
/*266906*/              OPC_MoveParent,
/*266907*/              OPC_CheckType, MVT::v16i8,
/*266909*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266911*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266914*/              OPC_EmitMergeInputChains1_2,
/*266915*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Packus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPACKUSWBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266928*/            0, /*End of Scope*/
/*266929*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VPMADDUBSW),// ->266991
/*266932*/            OPC_RecordChild0, // #1 = $src1
/*266933*/            OPC_MoveChild1,
/*266934*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266937*/            OPC_MoveChild0,
/*266938*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266941*/            OPC_RecordMemRef,
/*266942*/            OPC_RecordNode, // #2 = 'ld' chained node
/*266943*/            OPC_CheckFoldableChainNode,
/*266944*/            OPC_RecordChild1, // #3 = $src2
/*266945*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266947*/            OPC_CheckPredicate, 9, // Predicate_load
/*266949*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*266951*/            OPC_CheckType, MVT::v4i64,
/*266953*/            OPC_MoveParent,
/*266954*/            OPC_MoveParent,
/*266955*/            OPC_MoveParent,
/*266956*/            OPC_MoveChild2,
/*266957*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*266960*/            OPC_MoveChild0,
/*266961*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*266964*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*266966*/            OPC_CheckType, MVT::v8i32,
/*266968*/            OPC_MoveParent,
/*266969*/            OPC_MoveParent,
/*266970*/            OPC_CheckType, MVT::v16i16,
/*266972*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*266974*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266977*/            OPC_EmitMergeInputChains1_2,
/*266978*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vpmaddubsw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMADDUBSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266991*/          /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(ISD::SMAX),// ->267409
/*266995*/            OPC_Scope, 101, /*->267098*/ // 4 children in Scope
/*266997*/              OPC_RecordChild0, // #1 = $src1
/*266998*/              OPC_MoveChild1,
/*266999*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267002*/              OPC_MoveChild0,
/*267003*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267006*/              OPC_RecordMemRef,
/*267007*/              OPC_RecordNode, // #2 = 'ld' chained node
/*267008*/              OPC_CheckFoldableChainNode,
/*267009*/              OPC_RecordChild1, // #3 = $src2
/*267010*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267012*/              OPC_CheckPredicate, 9, // Predicate_load
/*267014*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*267016*/              OPC_SwitchType /*2 cases */, 38, MVT::v2i64,// ->267057
/*267019*/                OPC_MoveParent,
/*267020*/                OPC_MoveParent,
/*267021*/                OPC_MoveParent,
/*267022*/                OPC_MoveChild2,
/*267023*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267026*/                OPC_MoveChild0,
/*267027*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267030*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267032*/                OPC_CheckType, MVT::v4i32,
/*267034*/                OPC_MoveParent,
/*267035*/                OPC_MoveParent,
/*267036*/                OPC_CheckType, MVT::v16i8,
/*267038*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267040*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267043*/                OPC_EmitMergeInputChains1_2,
/*267044*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267057*/              /*SwitchType*/ 38, MVT::v4i64,// ->267097
/*267059*/                OPC_MoveParent,
/*267060*/                OPC_MoveParent,
/*267061*/                OPC_MoveParent,
/*267062*/                OPC_MoveChild2,
/*267063*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267066*/                OPC_MoveChild0,
/*267067*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267070*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267072*/                OPC_CheckType, MVT::v8i32,
/*267074*/                OPC_MoveParent,
/*267075*/                OPC_MoveParent,
/*267076*/                OPC_CheckType, MVT::v16i16,
/*267078*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267080*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267083*/                OPC_EmitMergeInputChains1_2,
/*267084*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267097*/              0, // EndSwitchType
/*267098*/            /*Scope*/ 102, /*->267201*/
/*267099*/              OPC_MoveChild0,
/*267100*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267103*/              OPC_MoveChild0,
/*267104*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267107*/              OPC_RecordMemRef,
/*267108*/              OPC_RecordNode, // #1 = 'ld' chained node
/*267109*/              OPC_CheckFoldableChainNode,
/*267110*/              OPC_RecordChild1, // #2 = $src2
/*267111*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267113*/              OPC_CheckPredicate, 9, // Predicate_load
/*267115*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*267117*/              OPC_SwitchType /*2 cases */, 39, MVT::v2i64,// ->267159
/*267120*/                OPC_MoveParent,
/*267121*/                OPC_MoveParent,
/*267122*/                OPC_RecordChild1, // #3 = $src1
/*267123*/                OPC_MoveParent,
/*267124*/                OPC_MoveChild2,
/*267125*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267128*/                OPC_MoveChild0,
/*267129*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267132*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267134*/                OPC_CheckType, MVT::v4i32,
/*267136*/                OPC_MoveParent,
/*267137*/                OPC_MoveParent,
/*267138*/                OPC_CheckType, MVT::v16i8,
/*267140*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267142*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267145*/                OPC_EmitMergeInputChains1_1,
/*267146*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267159*/              /*SwitchType*/ 39, MVT::v4i64,// ->267200
/*267161*/                OPC_MoveParent,
/*267162*/                OPC_MoveParent,
/*267163*/                OPC_RecordChild1, // #3 = $src1
/*267164*/                OPC_MoveParent,
/*267165*/                OPC_MoveChild2,
/*267166*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267169*/                OPC_MoveChild0,
/*267170*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267173*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267175*/                OPC_CheckType, MVT::v8i32,
/*267177*/                OPC_MoveParent,
/*267178*/                OPC_MoveParent,
/*267179*/                OPC_CheckType, MVT::v16i16,
/*267181*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267183*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267186*/                OPC_EmitMergeInputChains1_1,
/*267187*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267200*/              0, // EndSwitchType
/*267201*/            /*Scope*/ 102, /*->267304*/
/*267202*/              OPC_RecordChild0, // #1 = $src1
/*267203*/              OPC_MoveChild1,
/*267204*/              OPC_SwitchOpcode /*2 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->267255
/*267208*/                OPC_MoveChild0,
/*267209*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267212*/                OPC_RecordMemRef,
/*267213*/                OPC_RecordNode, // #2 = 'ld' chained node
/*267214*/                OPC_CheckFoldableChainNode,
/*267215*/                OPC_RecordChild1, // #3 = $src2
/*267216*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267218*/                OPC_CheckPredicate, 9, // Predicate_load
/*267220*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*267222*/                OPC_CheckType, MVT::v8i64,
/*267224*/                OPC_MoveParent,
/*267225*/                OPC_MoveParent,
/*267226*/                OPC_MoveParent,
/*267227*/                OPC_MoveChild2,
/*267228*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267231*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267233*/                OPC_MoveParent,
/*267234*/                OPC_CheckType, MVT::v16i32,
/*267236*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*267238*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267241*/                OPC_EmitMergeInputChains1_2,
/*267242*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267255*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->267303
/*267258*/                OPC_MoveChild0,
/*267259*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267262*/                OPC_RecordMemRef,
/*267263*/                OPC_RecordNode, // #2 = 'ld' chained node
/*267264*/                OPC_CheckFoldableChainNode,
/*267265*/                OPC_RecordChild1, // #3 = $src2
/*267266*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267268*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*267270*/                OPC_CheckType, MVT::i32,
/*267272*/                OPC_MoveParent,
/*267273*/                OPC_MoveParent,
/*267274*/                OPC_MoveParent,
/*267275*/                OPC_MoveChild2,
/*267276*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267279*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267281*/                OPC_MoveParent,
/*267282*/                OPC_CheckType, MVT::v16i32,
/*267284*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*267286*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267289*/                OPC_EmitMergeInputChains1_2,
/*267290*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267303*/              0, // EndSwitchOpcode
/*267304*/            /*Scope*/ 103, /*->267408*/
/*267305*/              OPC_MoveChild0,
/*267306*/              OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->267358
/*267310*/                OPC_MoveChild0,
/*267311*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267314*/                OPC_RecordMemRef,
/*267315*/                OPC_RecordNode, // #1 = 'ld' chained node
/*267316*/                OPC_CheckFoldableChainNode,
/*267317*/                OPC_RecordChild1, // #2 = $src2
/*267318*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267320*/                OPC_CheckPredicate, 9, // Predicate_load
/*267322*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*267324*/                OPC_CheckType, MVT::v8i64,
/*267326*/                OPC_MoveParent,
/*267327*/                OPC_MoveParent,
/*267328*/                OPC_RecordChild1, // #3 = $src1
/*267329*/                OPC_MoveParent,
/*267330*/                OPC_MoveChild2,
/*267331*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267334*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267336*/                OPC_MoveParent,
/*267337*/                OPC_CheckType, MVT::v16i32,
/*267339*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*267341*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267344*/                OPC_EmitMergeInputChains1_1,
/*267345*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267358*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->267407
/*267361*/                OPC_MoveChild0,
/*267362*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267365*/                OPC_RecordMemRef,
/*267366*/                OPC_RecordNode, // #1 = 'ld' chained node
/*267367*/                OPC_CheckFoldableChainNode,
/*267368*/                OPC_RecordChild1, // #2 = $src2
/*267369*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267371*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*267373*/                OPC_CheckType, MVT::i32,
/*267375*/                OPC_MoveParent,
/*267376*/                OPC_MoveParent,
/*267377*/                OPC_RecordChild1, // #3 = $src1
/*267378*/                OPC_MoveParent,
/*267379*/                OPC_MoveChild2,
/*267380*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267383*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267385*/                OPC_MoveParent,
/*267386*/                OPC_CheckType, MVT::v16i32,
/*267388*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*267390*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267393*/                OPC_EmitMergeInputChains1_1,
/*267394*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXSDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267407*/              0, // EndSwitchOpcode
/*267408*/            0, /*End of Scope*/
/*267409*/          /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(ISD::UMAX),// ->267827
/*267413*/            OPC_Scope, 101, /*->267516*/ // 4 children in Scope
/*267415*/              OPC_RecordChild0, // #1 = $src1
/*267416*/              OPC_MoveChild1,
/*267417*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267420*/              OPC_MoveChild0,
/*267421*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267424*/              OPC_RecordMemRef,
/*267425*/              OPC_RecordNode, // #2 = 'ld' chained node
/*267426*/              OPC_CheckFoldableChainNode,
/*267427*/              OPC_RecordChild1, // #3 = $src2
/*267428*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267430*/              OPC_CheckPredicate, 9, // Predicate_load
/*267432*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*267434*/              OPC_SwitchType /*2 cases */, 38, MVT::v2i64,// ->267475
/*267437*/                OPC_MoveParent,
/*267438*/                OPC_MoveParent,
/*267439*/                OPC_MoveParent,
/*267440*/                OPC_MoveChild2,
/*267441*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267444*/                OPC_MoveChild0,
/*267445*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267448*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267450*/                OPC_CheckType, MVT::v4i32,
/*267452*/                OPC_MoveParent,
/*267453*/                OPC_MoveParent,
/*267454*/                OPC_CheckType, MVT::v16i8,
/*267456*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267458*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267461*/                OPC_EmitMergeInputChains1_2,
/*267462*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXUBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267475*/              /*SwitchType*/ 38, MVT::v4i64,// ->267515
/*267477*/                OPC_MoveParent,
/*267478*/                OPC_MoveParent,
/*267479*/                OPC_MoveParent,
/*267480*/                OPC_MoveChild2,
/*267481*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267484*/                OPC_MoveChild0,
/*267485*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267488*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267490*/                OPC_CheckType, MVT::v8i32,
/*267492*/                OPC_MoveParent,
/*267493*/                OPC_MoveParent,
/*267494*/                OPC_CheckType, MVT::v16i16,
/*267496*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267498*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267501*/                OPC_EmitMergeInputChains1_2,
/*267502*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267515*/              0, // EndSwitchType
/*267516*/            /*Scope*/ 102, /*->267619*/
/*267517*/              OPC_MoveChild0,
/*267518*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267521*/              OPC_MoveChild0,
/*267522*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267525*/              OPC_RecordMemRef,
/*267526*/              OPC_RecordNode, // #1 = 'ld' chained node
/*267527*/              OPC_CheckFoldableChainNode,
/*267528*/              OPC_RecordChild1, // #2 = $src2
/*267529*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267531*/              OPC_CheckPredicate, 9, // Predicate_load
/*267533*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*267535*/              OPC_SwitchType /*2 cases */, 39, MVT::v2i64,// ->267577
/*267538*/                OPC_MoveParent,
/*267539*/                OPC_MoveParent,
/*267540*/                OPC_RecordChild1, // #3 = $src1
/*267541*/                OPC_MoveParent,
/*267542*/                OPC_MoveChild2,
/*267543*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267546*/                OPC_MoveChild0,
/*267547*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267550*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267552*/                OPC_CheckType, MVT::v4i32,
/*267554*/                OPC_MoveParent,
/*267555*/                OPC_MoveParent,
/*267556*/                OPC_CheckType, MVT::v16i8,
/*267558*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267560*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267563*/                OPC_EmitMergeInputChains1_1,
/*267564*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXUBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267577*/              /*SwitchType*/ 39, MVT::v4i64,// ->267618
/*267579*/                OPC_MoveParent,
/*267580*/                OPC_MoveParent,
/*267581*/                OPC_RecordChild1, // #3 = $src1
/*267582*/                OPC_MoveParent,
/*267583*/                OPC_MoveChild2,
/*267584*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267587*/                OPC_MoveChild0,
/*267588*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267591*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267593*/                OPC_CheckType, MVT::v8i32,
/*267595*/                OPC_MoveParent,
/*267596*/                OPC_MoveParent,
/*267597*/                OPC_CheckType, MVT::v16i16,
/*267599*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267601*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267604*/                OPC_EmitMergeInputChains1_1,
/*267605*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMAXUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267618*/              0, // EndSwitchType
/*267619*/            /*Scope*/ 102, /*->267722*/
/*267620*/              OPC_RecordChild0, // #1 = $src1
/*267621*/              OPC_MoveChild1,
/*267622*/              OPC_SwitchOpcode /*2 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->267673
/*267626*/                OPC_MoveChild0,
/*267627*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267630*/                OPC_RecordMemRef,
/*267631*/                OPC_RecordNode, // #2 = 'ld' chained node
/*267632*/                OPC_CheckFoldableChainNode,
/*267633*/                OPC_RecordChild1, // #3 = $src2
/*267634*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267636*/                OPC_CheckPredicate, 9, // Predicate_load
/*267638*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*267640*/                OPC_CheckType, MVT::v8i64,
/*267642*/                OPC_MoveParent,
/*267643*/                OPC_MoveParent,
/*267644*/                OPC_MoveParent,
/*267645*/                OPC_MoveChild2,
/*267646*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267649*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267651*/                OPC_MoveParent,
/*267652*/                OPC_CheckType, MVT::v16i32,
/*267654*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*267656*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267659*/                OPC_EmitMergeInputChains1_2,
/*267660*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267673*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->267721
/*267676*/                OPC_MoveChild0,
/*267677*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267680*/                OPC_RecordMemRef,
/*267681*/                OPC_RecordNode, // #2 = 'ld' chained node
/*267682*/                OPC_CheckFoldableChainNode,
/*267683*/                OPC_RecordChild1, // #3 = $src2
/*267684*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267686*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*267688*/                OPC_CheckType, MVT::i32,
/*267690*/                OPC_MoveParent,
/*267691*/                OPC_MoveParent,
/*267692*/                OPC_MoveParent,
/*267693*/                OPC_MoveChild2,
/*267694*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267697*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267699*/                OPC_MoveParent,
/*267700*/                OPC_CheckType, MVT::v16i32,
/*267702*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*267704*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267707*/                OPC_EmitMergeInputChains1_2,
/*267708*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267721*/              0, // EndSwitchOpcode
/*267722*/            /*Scope*/ 103, /*->267826*/
/*267723*/              OPC_MoveChild0,
/*267724*/              OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->267776
/*267728*/                OPC_MoveChild0,
/*267729*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267732*/                OPC_RecordMemRef,
/*267733*/                OPC_RecordNode, // #1 = 'ld' chained node
/*267734*/                OPC_CheckFoldableChainNode,
/*267735*/                OPC_RecordChild1, // #2 = $src2
/*267736*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267738*/                OPC_CheckPredicate, 9, // Predicate_load
/*267740*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*267742*/                OPC_CheckType, MVT::v8i64,
/*267744*/                OPC_MoveParent,
/*267745*/                OPC_MoveParent,
/*267746*/                OPC_RecordChild1, // #3 = $src1
/*267747*/                OPC_MoveParent,
/*267748*/                OPC_MoveChild2,
/*267749*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267752*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267754*/                OPC_MoveParent,
/*267755*/                OPC_CheckType, MVT::v16i32,
/*267757*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*267759*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267762*/                OPC_EmitMergeInputChains1_1,
/*267763*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267776*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->267825
/*267779*/                OPC_MoveChild0,
/*267780*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267783*/                OPC_RecordMemRef,
/*267784*/                OPC_RecordNode, // #1 = 'ld' chained node
/*267785*/                OPC_CheckFoldableChainNode,
/*267786*/                OPC_RecordChild1, // #2 = $src2
/*267787*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267789*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*267791*/                OPC_CheckType, MVT::i32,
/*267793*/                OPC_MoveParent,
/*267794*/                OPC_MoveParent,
/*267795*/                OPC_RecordChild1, // #3 = $src1
/*267796*/                OPC_MoveParent,
/*267797*/                OPC_MoveChild2,
/*267798*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267801*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267803*/                OPC_MoveParent,
/*267804*/                OPC_CheckType, MVT::v16i32,
/*267806*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*267808*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267811*/                OPC_EmitMergeInputChains1_1,
/*267812*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMAXUDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267825*/              0, // EndSwitchOpcode
/*267826*/            0, /*End of Scope*/
/*267827*/          /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(ISD::SMIN),// ->268245
/*267831*/            OPC_Scope, 101, /*->267934*/ // 4 children in Scope
/*267833*/              OPC_RecordChild0, // #1 = $src1
/*267834*/              OPC_MoveChild1,
/*267835*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267838*/              OPC_MoveChild0,
/*267839*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267842*/              OPC_RecordMemRef,
/*267843*/              OPC_RecordNode, // #2 = 'ld' chained node
/*267844*/              OPC_CheckFoldableChainNode,
/*267845*/              OPC_RecordChild1, // #3 = $src2
/*267846*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267848*/              OPC_CheckPredicate, 9, // Predicate_load
/*267850*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*267852*/              OPC_SwitchType /*2 cases */, 38, MVT::v2i64,// ->267893
/*267855*/                OPC_MoveParent,
/*267856*/                OPC_MoveParent,
/*267857*/                OPC_MoveParent,
/*267858*/                OPC_MoveChild2,
/*267859*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267862*/                OPC_MoveChild0,
/*267863*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267866*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267868*/                OPC_CheckType, MVT::v4i32,
/*267870*/                OPC_MoveParent,
/*267871*/                OPC_MoveParent,
/*267872*/                OPC_CheckType, MVT::v16i8,
/*267874*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267876*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267879*/                OPC_EmitMergeInputChains1_2,
/*267880*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267893*/              /*SwitchType*/ 38, MVT::v4i64,// ->267933
/*267895*/                OPC_MoveParent,
/*267896*/                OPC_MoveParent,
/*267897*/                OPC_MoveParent,
/*267898*/                OPC_MoveChild2,
/*267899*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267902*/                OPC_MoveChild0,
/*267903*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267906*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267908*/                OPC_CheckType, MVT::v8i32,
/*267910*/                OPC_MoveParent,
/*267911*/                OPC_MoveParent,
/*267912*/                OPC_CheckType, MVT::v16i16,
/*267914*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267916*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267919*/                OPC_EmitMergeInputChains1_2,
/*267920*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267933*/              0, // EndSwitchType
/*267934*/            /*Scope*/ 102, /*->268037*/
/*267935*/              OPC_MoveChild0,
/*267936*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267939*/              OPC_MoveChild0,
/*267940*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267943*/              OPC_RecordMemRef,
/*267944*/              OPC_RecordNode, // #1 = 'ld' chained node
/*267945*/              OPC_CheckFoldableChainNode,
/*267946*/              OPC_RecordChild1, // #2 = $src2
/*267947*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267949*/              OPC_CheckPredicate, 9, // Predicate_load
/*267951*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*267953*/              OPC_SwitchType /*2 cases */, 39, MVT::v2i64,// ->267995
/*267956*/                OPC_MoveParent,
/*267957*/                OPC_MoveParent,
/*267958*/                OPC_RecordChild1, // #3 = $src1
/*267959*/                OPC_MoveParent,
/*267960*/                OPC_MoveChild2,
/*267961*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*267964*/                OPC_MoveChild0,
/*267965*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*267968*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*267970*/                OPC_CheckType, MVT::v4i32,
/*267972*/                OPC_MoveParent,
/*267973*/                OPC_MoveParent,
/*267974*/                OPC_CheckType, MVT::v16i8,
/*267976*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267978*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267981*/                OPC_EmitMergeInputChains1_1,
/*267982*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267995*/              /*SwitchType*/ 39, MVT::v4i64,// ->268036
/*267997*/                OPC_MoveParent,
/*267998*/                OPC_MoveParent,
/*267999*/                OPC_RecordChild1, // #3 = $src1
/*268000*/                OPC_MoveParent,
/*268001*/                OPC_MoveChild2,
/*268002*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*268005*/                OPC_MoveChild0,
/*268006*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268009*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268011*/                OPC_CheckType, MVT::v8i32,
/*268013*/                OPC_MoveParent,
/*268014*/                OPC_MoveParent,
/*268015*/                OPC_CheckType, MVT::v16i16,
/*268017*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268019*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268022*/                OPC_EmitMergeInputChains1_1,
/*268023*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268036*/              0, // EndSwitchType
/*268037*/            /*Scope*/ 102, /*->268140*/
/*268038*/              OPC_RecordChild0, // #1 = $src1
/*268039*/              OPC_MoveChild1,
/*268040*/              OPC_SwitchOpcode /*2 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->268091
/*268044*/                OPC_MoveChild0,
/*268045*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268048*/                OPC_RecordMemRef,
/*268049*/                OPC_RecordNode, // #2 = 'ld' chained node
/*268050*/                OPC_CheckFoldableChainNode,
/*268051*/                OPC_RecordChild1, // #3 = $src2
/*268052*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268054*/                OPC_CheckPredicate, 9, // Predicate_load
/*268056*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*268058*/                OPC_CheckType, MVT::v8i64,
/*268060*/                OPC_MoveParent,
/*268061*/                OPC_MoveParent,
/*268062*/                OPC_MoveParent,
/*268063*/                OPC_MoveChild2,
/*268064*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268067*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268069*/                OPC_MoveParent,
/*268070*/                OPC_CheckType, MVT::v16i32,
/*268072*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268074*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268077*/                OPC_EmitMergeInputChains1_2,
/*268078*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268091*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->268139
/*268094*/                OPC_MoveChild0,
/*268095*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268098*/                OPC_RecordMemRef,
/*268099*/                OPC_RecordNode, // #2 = 'ld' chained node
/*268100*/                OPC_CheckFoldableChainNode,
/*268101*/                OPC_RecordChild1, // #3 = $src2
/*268102*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268104*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*268106*/                OPC_CheckType, MVT::i32,
/*268108*/                OPC_MoveParent,
/*268109*/                OPC_MoveParent,
/*268110*/                OPC_MoveParent,
/*268111*/                OPC_MoveChild2,
/*268112*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268115*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268117*/                OPC_MoveParent,
/*268118*/                OPC_CheckType, MVT::v16i32,
/*268120*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268122*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268125*/                OPC_EmitMergeInputChains1_2,
/*268126*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268139*/              0, // EndSwitchOpcode
/*268140*/            /*Scope*/ 103, /*->268244*/
/*268141*/              OPC_MoveChild0,
/*268142*/              OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->268194
/*268146*/                OPC_MoveChild0,
/*268147*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268150*/                OPC_RecordMemRef,
/*268151*/                OPC_RecordNode, // #1 = 'ld' chained node
/*268152*/                OPC_CheckFoldableChainNode,
/*268153*/                OPC_RecordChild1, // #2 = $src2
/*268154*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268156*/                OPC_CheckPredicate, 9, // Predicate_load
/*268158*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*268160*/                OPC_CheckType, MVT::v8i64,
/*268162*/                OPC_MoveParent,
/*268163*/                OPC_MoveParent,
/*268164*/                OPC_RecordChild1, // #3 = $src1
/*268165*/                OPC_MoveParent,
/*268166*/                OPC_MoveChild2,
/*268167*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268170*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268172*/                OPC_MoveParent,
/*268173*/                OPC_CheckType, MVT::v16i32,
/*268175*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268177*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268180*/                OPC_EmitMergeInputChains1_1,
/*268181*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268194*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->268243
/*268197*/                OPC_MoveChild0,
/*268198*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268201*/                OPC_RecordMemRef,
/*268202*/                OPC_RecordNode, // #1 = 'ld' chained node
/*268203*/                OPC_CheckFoldableChainNode,
/*268204*/                OPC_RecordChild1, // #2 = $src2
/*268205*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268207*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*268209*/                OPC_CheckType, MVT::i32,
/*268211*/                OPC_MoveParent,
/*268212*/                OPC_MoveParent,
/*268213*/                OPC_RecordChild1, // #3 = $src1
/*268214*/                OPC_MoveParent,
/*268215*/                OPC_MoveChild2,
/*268216*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268219*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268221*/                OPC_MoveParent,
/*268222*/                OPC_CheckType, MVT::v16i32,
/*268224*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268226*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268229*/                OPC_EmitMergeInputChains1_1,
/*268230*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINSDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268243*/              0, // EndSwitchOpcode
/*268244*/            0, /*End of Scope*/
/*268245*/          /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(ISD::UMIN),// ->268663
/*268249*/            OPC_Scope, 101, /*->268352*/ // 4 children in Scope
/*268251*/              OPC_RecordChild0, // #1 = $src1
/*268252*/              OPC_MoveChild1,
/*268253*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*268256*/              OPC_MoveChild0,
/*268257*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268260*/              OPC_RecordMemRef,
/*268261*/              OPC_RecordNode, // #2 = 'ld' chained node
/*268262*/              OPC_CheckFoldableChainNode,
/*268263*/              OPC_RecordChild1, // #3 = $src2
/*268264*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268266*/              OPC_CheckPredicate, 9, // Predicate_load
/*268268*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*268270*/              OPC_SwitchType /*2 cases */, 38, MVT::v2i64,// ->268311
/*268273*/                OPC_MoveParent,
/*268274*/                OPC_MoveParent,
/*268275*/                OPC_MoveParent,
/*268276*/                OPC_MoveChild2,
/*268277*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*268280*/                OPC_MoveChild0,
/*268281*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268284*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268286*/                OPC_CheckType, MVT::v4i32,
/*268288*/                OPC_MoveParent,
/*268289*/                OPC_MoveParent,
/*268290*/                OPC_CheckType, MVT::v16i8,
/*268292*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268294*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268297*/                OPC_EmitMergeInputChains1_2,
/*268298*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINUBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268311*/              /*SwitchType*/ 38, MVT::v4i64,// ->268351
/*268313*/                OPC_MoveParent,
/*268314*/                OPC_MoveParent,
/*268315*/                OPC_MoveParent,
/*268316*/                OPC_MoveChild2,
/*268317*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*268320*/                OPC_MoveChild0,
/*268321*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268324*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268326*/                OPC_CheckType, MVT::v8i32,
/*268328*/                OPC_MoveParent,
/*268329*/                OPC_MoveParent,
/*268330*/                OPC_CheckType, MVT::v16i16,
/*268332*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268334*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268337*/                OPC_EmitMergeInputChains1_2,
/*268338*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268351*/              0, // EndSwitchType
/*268352*/            /*Scope*/ 102, /*->268455*/
/*268353*/              OPC_MoveChild0,
/*268354*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*268357*/              OPC_MoveChild0,
/*268358*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268361*/              OPC_RecordMemRef,
/*268362*/              OPC_RecordNode, // #1 = 'ld' chained node
/*268363*/              OPC_CheckFoldableChainNode,
/*268364*/              OPC_RecordChild1, // #2 = $src2
/*268365*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268367*/              OPC_CheckPredicate, 9, // Predicate_load
/*268369*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*268371*/              OPC_SwitchType /*2 cases */, 39, MVT::v2i64,// ->268413
/*268374*/                OPC_MoveParent,
/*268375*/                OPC_MoveParent,
/*268376*/                OPC_RecordChild1, // #3 = $src1
/*268377*/                OPC_MoveParent,
/*268378*/                OPC_MoveChild2,
/*268379*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*268382*/                OPC_MoveChild0,
/*268383*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268386*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268388*/                OPC_CheckType, MVT::v4i32,
/*268390*/                OPC_MoveParent,
/*268391*/                OPC_MoveParent,
/*268392*/                OPC_CheckType, MVT::v16i8,
/*268394*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268396*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268399*/                OPC_EmitMergeInputChains1_1,
/*268400*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINUBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268413*/              /*SwitchType*/ 39, MVT::v4i64,// ->268454
/*268415*/                OPC_MoveParent,
/*268416*/                OPC_MoveParent,
/*268417*/                OPC_RecordChild1, // #3 = $src1
/*268418*/                OPC_MoveParent,
/*268419*/                OPC_MoveChild2,
/*268420*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*268423*/                OPC_MoveChild0,
/*268424*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268427*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268429*/                OPC_CheckType, MVT::v8i32,
/*268431*/                OPC_MoveParent,
/*268432*/                OPC_MoveParent,
/*268433*/                OPC_CheckType, MVT::v16i16,
/*268435*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268437*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268440*/                OPC_EmitMergeInputChains1_1,
/*268441*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPMINUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268454*/              0, // EndSwitchType
/*268455*/            /*Scope*/ 102, /*->268558*/
/*268456*/              OPC_RecordChild0, // #1 = $src1
/*268457*/              OPC_MoveChild1,
/*268458*/              OPC_SwitchOpcode /*2 cases */, 47, TARGET_VAL(ISD::BITCAST),// ->268509
/*268462*/                OPC_MoveChild0,
/*268463*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268466*/                OPC_RecordMemRef,
/*268467*/                OPC_RecordNode, // #2 = 'ld' chained node
/*268468*/                OPC_CheckFoldableChainNode,
/*268469*/                OPC_RecordChild1, // #3 = $src2
/*268470*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268472*/                OPC_CheckPredicate, 9, // Predicate_load
/*268474*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*268476*/                OPC_CheckType, MVT::v8i64,
/*268478*/                OPC_MoveParent,
/*268479*/                OPC_MoveParent,
/*268480*/                OPC_MoveParent,
/*268481*/                OPC_MoveChild2,
/*268482*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268485*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268487*/                OPC_MoveParent,
/*268488*/                OPC_CheckType, MVT::v16i32,
/*268490*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268492*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268495*/                OPC_EmitMergeInputChains1_2,
/*268496*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268509*/              /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->268557
/*268512*/                OPC_MoveChild0,
/*268513*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268516*/                OPC_RecordMemRef,
/*268517*/                OPC_RecordNode, // #2 = 'ld' chained node
/*268518*/                OPC_CheckFoldableChainNode,
/*268519*/                OPC_RecordChild1, // #3 = $src2
/*268520*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268522*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*268524*/                OPC_CheckType, MVT::i32,
/*268526*/                OPC_MoveParent,
/*268527*/                OPC_MoveParent,
/*268528*/                OPC_MoveParent,
/*268529*/                OPC_MoveChild2,
/*268530*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268533*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268535*/                OPC_MoveParent,
/*268536*/                OPC_CheckType, MVT::v16i32,
/*268538*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268540*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268543*/                OPC_EmitMergeInputChains1_2,
/*268544*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268557*/              0, // EndSwitchOpcode
/*268558*/            /*Scope*/ 103, /*->268662*/
/*268559*/              OPC_MoveChild0,
/*268560*/              OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->268612
/*268564*/                OPC_MoveChild0,
/*268565*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268568*/                OPC_RecordMemRef,
/*268569*/                OPC_RecordNode, // #1 = 'ld' chained node
/*268570*/                OPC_CheckFoldableChainNode,
/*268571*/                OPC_RecordChild1, // #2 = $src2
/*268572*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268574*/                OPC_CheckPredicate, 9, // Predicate_load
/*268576*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*268578*/                OPC_CheckType, MVT::v8i64,
/*268580*/                OPC_MoveParent,
/*268581*/                OPC_MoveParent,
/*268582*/                OPC_RecordChild1, // #3 = $src1
/*268583*/                OPC_MoveParent,
/*268584*/                OPC_MoveChild2,
/*268585*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268588*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268590*/                OPC_MoveParent,
/*268591*/                OPC_CheckType, MVT::v16i32,
/*268593*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268595*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268598*/                OPC_EmitMergeInputChains1_1,
/*268599*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268612*/              /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->268661
/*268615*/                OPC_MoveChild0,
/*268616*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268619*/                OPC_RecordMemRef,
/*268620*/                OPC_RecordNode, // #1 = 'ld' chained node
/*268621*/                OPC_CheckFoldableChainNode,
/*268622*/                OPC_RecordChild1, // #2 = $src2
/*268623*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268625*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*268627*/                OPC_CheckType, MVT::i32,
/*268629*/                OPC_MoveParent,
/*268630*/                OPC_MoveParent,
/*268631*/                OPC_RecordChild1, // #3 = $src1
/*268632*/                OPC_MoveParent,
/*268633*/                OPC_MoveChild2,
/*268634*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268637*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268639*/                OPC_MoveParent,
/*268640*/                OPC_CheckType, MVT::v16i32,
/*268642*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268644*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268647*/                OPC_EmitMergeInputChains1_1,
/*268648*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPMINUDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268661*/              0, // EndSwitchOpcode
/*268662*/            0, /*End of Scope*/
/*268663*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::VSRLI),// ->268783
/*268666*/            OPC_MoveChild0,
/*268667*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->268726
/*268671*/              OPC_MoveChild0,
/*268672*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268675*/              OPC_RecordMemRef,
/*268676*/              OPC_RecordNode, // #1 = 'ld' chained node
/*268677*/              OPC_CheckFoldableChainNode,
/*268678*/              OPC_RecordChild1, // #2 = $src1
/*268679*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268681*/              OPC_CheckPredicate, 9, // Predicate_load
/*268683*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*268685*/              OPC_CheckType, MVT::v8i64,
/*268687*/              OPC_MoveParent,
/*268688*/              OPC_MoveParent,
/*268689*/              OPC_RecordChild1, // #3 = $src2
/*268690*/              OPC_MoveChild1,
/*268691*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*268694*/              OPC_MoveParent,
/*268695*/              OPC_MoveParent,
/*268696*/              OPC_MoveChild2,
/*268697*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268700*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268702*/              OPC_MoveParent,
/*268703*/              OPC_CheckType, MVT::v16i32,
/*268705*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268707*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*268710*/              OPC_EmitMergeInputChains1_1,
/*268711*/              OPC_EmitConvertToTarget, 3,
/*268713*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSRLDZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*268726*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->268782
/*268729*/              OPC_MoveChild0,
/*268730*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268733*/              OPC_RecordMemRef,
/*268734*/              OPC_RecordNode, // #1 = 'ld' chained node
/*268735*/              OPC_CheckFoldableChainNode,
/*268736*/              OPC_RecordChild1, // #2 = $src1
/*268737*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268739*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*268741*/              OPC_CheckType, MVT::i32,
/*268743*/              OPC_MoveParent,
/*268744*/              OPC_MoveParent,
/*268745*/              OPC_RecordChild1, // #3 = $src2
/*268746*/              OPC_MoveChild1,
/*268747*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*268750*/              OPC_MoveParent,
/*268751*/              OPC_MoveParent,
/*268752*/              OPC_MoveChild2,
/*268753*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268756*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268758*/              OPC_MoveParent,
/*268759*/              OPC_CheckType, MVT::v16i32,
/*268761*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268763*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*268766*/              OPC_EmitMergeInputChains1_1,
/*268767*/              OPC_EmitConvertToTarget, 3,
/*268769*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSRLDZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*268782*/            0, // EndSwitchOpcode
/*268783*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::VSHLI),// ->268903
/*268786*/            OPC_MoveChild0,
/*268787*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->268846
/*268791*/              OPC_MoveChild0,
/*268792*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268795*/              OPC_RecordMemRef,
/*268796*/              OPC_RecordNode, // #1 = 'ld' chained node
/*268797*/              OPC_CheckFoldableChainNode,
/*268798*/              OPC_RecordChild1, // #2 = $src1
/*268799*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268801*/              OPC_CheckPredicate, 9, // Predicate_load
/*268803*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*268805*/              OPC_CheckType, MVT::v8i64,
/*268807*/              OPC_MoveParent,
/*268808*/              OPC_MoveParent,
/*268809*/              OPC_RecordChild1, // #3 = $src2
/*268810*/              OPC_MoveChild1,
/*268811*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*268814*/              OPC_MoveParent,
/*268815*/              OPC_MoveParent,
/*268816*/              OPC_MoveChild2,
/*268817*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268820*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268822*/              OPC_MoveParent,
/*268823*/              OPC_CheckType, MVT::v16i32,
/*268825*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268827*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*268830*/              OPC_EmitMergeInputChains1_1,
/*268831*/              OPC_EmitConvertToTarget, 3,
/*268833*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSLLDZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*268846*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->268902
/*268849*/              OPC_MoveChild0,
/*268850*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268853*/              OPC_RecordMemRef,
/*268854*/              OPC_RecordNode, // #1 = 'ld' chained node
/*268855*/              OPC_CheckFoldableChainNode,
/*268856*/              OPC_RecordChild1, // #2 = $src1
/*268857*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268859*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*268861*/              OPC_CheckType, MVT::i32,
/*268863*/              OPC_MoveParent,
/*268864*/              OPC_MoveParent,
/*268865*/              OPC_RecordChild1, // #3 = $src2
/*268866*/              OPC_MoveChild1,
/*268867*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*268870*/              OPC_MoveParent,
/*268871*/              OPC_MoveParent,
/*268872*/              OPC_MoveChild2,
/*268873*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268876*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268878*/              OPC_MoveParent,
/*268879*/              OPC_CheckType, MVT::v16i32,
/*268881*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268883*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*268886*/              OPC_EmitMergeInputChains1_1,
/*268887*/              OPC_EmitConvertToTarget, 3,
/*268889*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSLLDZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*268902*/            0, // EndSwitchOpcode
/*268903*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::VSRAI),// ->269023
/*268906*/            OPC_MoveChild0,
/*268907*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->268966
/*268911*/              OPC_MoveChild0,
/*268912*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268915*/              OPC_RecordMemRef,
/*268916*/              OPC_RecordNode, // #1 = 'ld' chained node
/*268917*/              OPC_CheckFoldableChainNode,
/*268918*/              OPC_RecordChild1, // #2 = $src1
/*268919*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268921*/              OPC_CheckPredicate, 9, // Predicate_load
/*268923*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*268925*/              OPC_CheckType, MVT::v8i64,
/*268927*/              OPC_MoveParent,
/*268928*/              OPC_MoveParent,
/*268929*/              OPC_RecordChild1, // #3 = $src2
/*268930*/              OPC_MoveChild1,
/*268931*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*268934*/              OPC_MoveParent,
/*268935*/              OPC_MoveParent,
/*268936*/              OPC_MoveChild2,
/*268937*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268940*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268942*/              OPC_MoveParent,
/*268943*/              OPC_CheckType, MVT::v16i32,
/*268945*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*268947*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*268950*/              OPC_EmitMergeInputChains1_1,
/*268951*/              OPC_EmitConvertToTarget, 3,
/*268953*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSRADZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*268966*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->269022
/*268969*/              OPC_MoveChild0,
/*268970*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268973*/              OPC_RecordMemRef,
/*268974*/              OPC_RecordNode, // #1 = 'ld' chained node
/*268975*/              OPC_CheckFoldableChainNode,
/*268976*/              OPC_RecordChild1, // #2 = $src1
/*268977*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268979*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*268981*/              OPC_CheckType, MVT::i32,
/*268983*/              OPC_MoveParent,
/*268984*/              OPC_MoveParent,
/*268985*/              OPC_RecordChild1, // #3 = $src2
/*268986*/              OPC_MoveChild1,
/*268987*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*268990*/              OPC_MoveParent,
/*268991*/              OPC_MoveParent,
/*268992*/              OPC_MoveChild2,
/*268993*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*268996*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*268998*/              OPC_MoveParent,
/*268999*/              OPC_CheckType, MVT::v16i32,
/*269001*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269003*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*269006*/              OPC_EmitMergeInputChains1_1,
/*269007*/              OPC_EmitConvertToTarget, 3,
/*269009*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSRADZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*269022*/            0, // EndSwitchOpcode
/*269023*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::VROTRI),// ->269143
/*269026*/            OPC_MoveChild0,
/*269027*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->269086
/*269031*/              OPC_MoveChild0,
/*269032*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269035*/              OPC_RecordMemRef,
/*269036*/              OPC_RecordNode, // #1 = 'ld' chained node
/*269037*/              OPC_CheckFoldableChainNode,
/*269038*/              OPC_RecordChild1, // #2 = $src1
/*269039*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269041*/              OPC_CheckPredicate, 9, // Predicate_load
/*269043*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*269045*/              OPC_CheckType, MVT::v8i64,
/*269047*/              OPC_MoveParent,
/*269048*/              OPC_MoveParent,
/*269049*/              OPC_RecordChild1, // #3 = $src2
/*269050*/              OPC_MoveChild1,
/*269051*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*269054*/              OPC_MoveParent,
/*269055*/              OPC_MoveParent,
/*269056*/              OPC_MoveChild2,
/*269057*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269060*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269062*/              OPC_MoveParent,
/*269063*/              OPC_CheckType, MVT::v16i32,
/*269065*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269067*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*269070*/              OPC_EmitMergeInputChains1_1,
/*269071*/              OPC_EmitConvertToTarget, 3,
/*269073*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPRORDZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*269086*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->269142
/*269089*/              OPC_MoveChild0,
/*269090*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269093*/              OPC_RecordMemRef,
/*269094*/              OPC_RecordNode, // #1 = 'ld' chained node
/*269095*/              OPC_CheckFoldableChainNode,
/*269096*/              OPC_RecordChild1, // #2 = $src1
/*269097*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269099*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*269101*/              OPC_CheckType, MVT::i32,
/*269103*/              OPC_MoveParent,
/*269104*/              OPC_MoveParent,
/*269105*/              OPC_RecordChild1, // #3 = $src2
/*269106*/              OPC_MoveChild1,
/*269107*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*269110*/              OPC_MoveParent,
/*269111*/              OPC_MoveParent,
/*269112*/              OPC_MoveChild2,
/*269113*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269116*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269118*/              OPC_MoveParent,
/*269119*/              OPC_CheckType, MVT::v16i32,
/*269121*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269123*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*269126*/              OPC_EmitMergeInputChains1_1,
/*269127*/              OPC_EmitConvertToTarget, 3,
/*269129*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPRORDZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*269142*/            0, // EndSwitchOpcode
/*269143*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::VROTLI),// ->269263
/*269146*/            OPC_MoveChild0,
/*269147*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->269206
/*269151*/              OPC_MoveChild0,
/*269152*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269155*/              OPC_RecordMemRef,
/*269156*/              OPC_RecordNode, // #1 = 'ld' chained node
/*269157*/              OPC_CheckFoldableChainNode,
/*269158*/              OPC_RecordChild1, // #2 = $src1
/*269159*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269161*/              OPC_CheckPredicate, 9, // Predicate_load
/*269163*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*269165*/              OPC_CheckType, MVT::v8i64,
/*269167*/              OPC_MoveParent,
/*269168*/              OPC_MoveParent,
/*269169*/              OPC_RecordChild1, // #3 = $src2
/*269170*/              OPC_MoveChild1,
/*269171*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*269174*/              OPC_MoveParent,
/*269175*/              OPC_MoveParent,
/*269176*/              OPC_MoveChild2,
/*269177*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269180*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269182*/              OPC_MoveParent,
/*269183*/              OPC_CheckType, MVT::v16i32,
/*269185*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269187*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*269190*/              OPC_EmitMergeInputChains1_1,
/*269191*/              OPC_EmitConvertToTarget, 3,
/*269193*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPROLDZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*269206*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->269262
/*269209*/              OPC_MoveChild0,
/*269210*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269213*/              OPC_RecordMemRef,
/*269214*/              OPC_RecordNode, // #1 = 'ld' chained node
/*269215*/              OPC_CheckFoldableChainNode,
/*269216*/              OPC_RecordChild1, // #2 = $src1
/*269217*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269219*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*269221*/              OPC_CheckType, MVT::i32,
/*269223*/              OPC_MoveParent,
/*269224*/              OPC_MoveParent,
/*269225*/              OPC_RecordChild1, // #3 = $src2
/*269226*/              OPC_MoveChild1,
/*269227*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*269230*/              OPC_MoveParent,
/*269231*/              OPC_MoveParent,
/*269232*/              OPC_MoveChild2,
/*269233*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269236*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269238*/              OPC_MoveParent,
/*269239*/              OPC_CheckType, MVT::v16i32,
/*269241*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269243*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*269246*/              OPC_EmitMergeInputChains1_1,
/*269247*/              OPC_EmitConvertToTarget, 3,
/*269249*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPROLDZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*269262*/            0, // EndSwitchOpcode
/*269263*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::SHL),// ->269417
/*269267*/            OPC_RecordChild0, // #1 = $src1
/*269268*/            OPC_MoveChild1,
/*269269*/            OPC_SwitchOpcode /*2 cases */, 93, TARGET_VAL(ISD::BITCAST),// ->269366
/*269273*/              OPC_MoveChild0,
/*269274*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269277*/              OPC_RecordMemRef,
/*269278*/              OPC_RecordNode, // #2 = 'ld' chained node
/*269279*/              OPC_CheckFoldableChainNode,
/*269280*/              OPC_RecordChild1, // #3 = $src2
/*269281*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269283*/              OPC_CheckPredicate, 9, // Predicate_load
/*269285*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*269287*/              OPC_SwitchType /*2 cases */, 40, MVT::v4i64,// ->269330
/*269290*/                OPC_MoveParent,
/*269291*/                OPC_CheckType, MVT::v16i16,
/*269293*/                OPC_MoveParent,
/*269294*/                OPC_MoveParent,
/*269295*/                OPC_MoveChild2,
/*269296*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*269299*/                OPC_MoveChild0,
/*269300*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269303*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269305*/                OPC_CheckType, MVT::v8i32,
/*269307*/                OPC_MoveParent,
/*269308*/                OPC_MoveParent,
/*269309*/                OPC_CheckType, MVT::v16i16,
/*269311*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*269313*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269316*/                OPC_EmitMergeInputChains1_2,
/*269317*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (shl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSLLVWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269330*/              /*SwitchType*/ 33, MVT::v8i64,// ->269365
/*269332*/                OPC_MoveParent,
/*269333*/                OPC_CheckType, MVT::v16i32,
/*269335*/                OPC_MoveParent,
/*269336*/                OPC_MoveParent,
/*269337*/                OPC_MoveChild2,
/*269338*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269341*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269343*/                OPC_MoveParent,
/*269344*/                OPC_CheckType, MVT::v16i32,
/*269346*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269348*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269351*/                OPC_EmitMergeInputChains1_2,
/*269352*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (shl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSLLVDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269365*/              0, // EndSwitchType
/*269366*/            /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VBROADCAST),// ->269416
/*269369*/              OPC_MoveChild0,
/*269370*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269373*/              OPC_RecordMemRef,
/*269374*/              OPC_RecordNode, // #2 = 'ld' chained node
/*269375*/              OPC_CheckFoldableChainNode,
/*269376*/              OPC_RecordChild1, // #3 = $src2
/*269377*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269379*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*269381*/              OPC_CheckType, MVT::i32,
/*269383*/              OPC_MoveParent,
/*269384*/              OPC_CheckType, MVT::v16i32,
/*269386*/              OPC_MoveParent,
/*269387*/              OPC_MoveParent,
/*269388*/              OPC_MoveChild2,
/*269389*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269392*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269394*/              OPC_MoveParent,
/*269395*/              OPC_CheckType, MVT::v16i32,
/*269397*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269399*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269402*/              OPC_EmitMergeInputChains1_2,
/*269403*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (shl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSLLVDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269416*/            0, // EndSwitchOpcode
/*269417*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::SRA),// ->269571
/*269421*/            OPC_RecordChild0, // #1 = $src1
/*269422*/            OPC_MoveChild1,
/*269423*/            OPC_SwitchOpcode /*2 cases */, 93, TARGET_VAL(ISD::BITCAST),// ->269520
/*269427*/              OPC_MoveChild0,
/*269428*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269431*/              OPC_RecordMemRef,
/*269432*/              OPC_RecordNode, // #2 = 'ld' chained node
/*269433*/              OPC_CheckFoldableChainNode,
/*269434*/              OPC_RecordChild1, // #3 = $src2
/*269435*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269437*/              OPC_CheckPredicate, 9, // Predicate_load
/*269439*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*269441*/              OPC_SwitchType /*2 cases */, 40, MVT::v4i64,// ->269484
/*269444*/                OPC_MoveParent,
/*269445*/                OPC_CheckType, MVT::v16i16,
/*269447*/                OPC_MoveParent,
/*269448*/                OPC_MoveParent,
/*269449*/                OPC_MoveChild2,
/*269450*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*269453*/                OPC_MoveChild0,
/*269454*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269457*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269459*/                OPC_CheckType, MVT::v8i32,
/*269461*/                OPC_MoveParent,
/*269462*/                OPC_MoveParent,
/*269463*/                OPC_CheckType, MVT::v16i16,
/*269465*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*269467*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269470*/                OPC_EmitMergeInputChains1_2,
/*269471*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (sra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRAVWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269484*/              /*SwitchType*/ 33, MVT::v8i64,// ->269519
/*269486*/                OPC_MoveParent,
/*269487*/                OPC_CheckType, MVT::v16i32,
/*269489*/                OPC_MoveParent,
/*269490*/                OPC_MoveParent,
/*269491*/                OPC_MoveChild2,
/*269492*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269495*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269497*/                OPC_MoveParent,
/*269498*/                OPC_CheckType, MVT::v16i32,
/*269500*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269502*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269505*/                OPC_EmitMergeInputChains1_2,
/*269506*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRAVDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269519*/              0, // EndSwitchType
/*269520*/            /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VBROADCAST),// ->269570
/*269523*/              OPC_MoveChild0,
/*269524*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269527*/              OPC_RecordMemRef,
/*269528*/              OPC_RecordNode, // #2 = 'ld' chained node
/*269529*/              OPC_CheckFoldableChainNode,
/*269530*/              OPC_RecordChild1, // #3 = $src2
/*269531*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269533*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*269535*/              OPC_CheckType, MVT::i32,
/*269537*/              OPC_MoveParent,
/*269538*/              OPC_CheckType, MVT::v16i32,
/*269540*/              OPC_MoveParent,
/*269541*/              OPC_MoveParent,
/*269542*/              OPC_MoveChild2,
/*269543*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269546*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269548*/              OPC_MoveParent,
/*269549*/              OPC_CheckType, MVT::v16i32,
/*269551*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269553*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269556*/              OPC_EmitMergeInputChains1_2,
/*269557*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRAVDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269570*/            0, // EndSwitchOpcode
/*269571*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::SRL),// ->269725
/*269575*/            OPC_RecordChild0, // #1 = $src1
/*269576*/            OPC_MoveChild1,
/*269577*/            OPC_SwitchOpcode /*2 cases */, 93, TARGET_VAL(ISD::BITCAST),// ->269674
/*269581*/              OPC_MoveChild0,
/*269582*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269585*/              OPC_RecordMemRef,
/*269586*/              OPC_RecordNode, // #2 = 'ld' chained node
/*269587*/              OPC_CheckFoldableChainNode,
/*269588*/              OPC_RecordChild1, // #3 = $src2
/*269589*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269591*/              OPC_CheckPredicate, 9, // Predicate_load
/*269593*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*269595*/              OPC_SwitchType /*2 cases */, 40, MVT::v4i64,// ->269638
/*269598*/                OPC_MoveParent,
/*269599*/                OPC_CheckType, MVT::v16i16,
/*269601*/                OPC_MoveParent,
/*269602*/                OPC_MoveParent,
/*269603*/                OPC_MoveChild2,
/*269604*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*269607*/                OPC_MoveChild0,
/*269608*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269611*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269613*/                OPC_CheckType, MVT::v8i32,
/*269615*/                OPC_MoveParent,
/*269616*/                OPC_MoveParent,
/*269617*/                OPC_CheckType, MVT::v16i16,
/*269619*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*269621*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269624*/                OPC_EmitMergeInputChains1_2,
/*269625*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (srl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRLVWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269638*/              /*SwitchType*/ 33, MVT::v8i64,// ->269673
/*269640*/                OPC_MoveParent,
/*269641*/                OPC_CheckType, MVT::v16i32,
/*269643*/                OPC_MoveParent,
/*269644*/                OPC_MoveParent,
/*269645*/                OPC_MoveChild2,
/*269646*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269649*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269651*/                OPC_MoveParent,
/*269652*/                OPC_CheckType, MVT::v16i32,
/*269654*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269656*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269659*/                OPC_EmitMergeInputChains1_2,
/*269660*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (srl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRLVDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269673*/              0, // EndSwitchType
/*269674*/            /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VBROADCAST),// ->269724
/*269677*/              OPC_MoveChild0,
/*269678*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269681*/              OPC_RecordMemRef,
/*269682*/              OPC_RecordNode, // #2 = 'ld' chained node
/*269683*/              OPC_CheckFoldableChainNode,
/*269684*/              OPC_RecordChild1, // #3 = $src2
/*269685*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269687*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*269689*/              OPC_CheckType, MVT::i32,
/*269691*/              OPC_MoveParent,
/*269692*/              OPC_CheckType, MVT::v16i32,
/*269694*/              OPC_MoveParent,
/*269695*/              OPC_MoveParent,
/*269696*/              OPC_MoveChild2,
/*269697*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269700*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269702*/              OPC_MoveParent,
/*269703*/              OPC_CheckType, MVT::v16i32,
/*269705*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269707*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269710*/              OPC_EmitMergeInputChains1_2,
/*269711*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (srl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRLVDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269724*/            0, // EndSwitchOpcode
/*269725*/          /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VSRAV),// ->269873
/*269729*/            OPC_RecordChild0, // #1 = $src1
/*269730*/            OPC_MoveChild1,
/*269731*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::BITCAST),// ->269824
/*269735*/              OPC_MoveChild0,
/*269736*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269739*/              OPC_RecordMemRef,
/*269740*/              OPC_RecordNode, // #2 = 'ld' chained node
/*269741*/              OPC_CheckFoldableChainNode,
/*269742*/              OPC_RecordChild1, // #3 = $src2
/*269743*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269745*/              OPC_CheckPredicate, 9, // Predicate_load
/*269747*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*269749*/              OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->269790
/*269752*/                OPC_MoveParent,
/*269753*/                OPC_MoveParent,
/*269754*/                OPC_MoveParent,
/*269755*/                OPC_MoveChild2,
/*269756*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*269759*/                OPC_MoveChild0,
/*269760*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269763*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269765*/                OPC_CheckType, MVT::v8i32,
/*269767*/                OPC_MoveParent,
/*269768*/                OPC_MoveParent,
/*269769*/                OPC_CheckType, MVT::v16i16,
/*269771*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*269773*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269776*/                OPC_EmitMergeInputChains1_2,
/*269777*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrav:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSRAVWZ256rmkz:{ *:[v16i16] } VK16:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269790*/              /*SwitchType*/ 31, MVT::v8i64,// ->269823
/*269792*/                OPC_MoveParent,
/*269793*/                OPC_MoveParent,
/*269794*/                OPC_MoveParent,
/*269795*/                OPC_MoveChild2,
/*269796*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269799*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269801*/                OPC_MoveParent,
/*269802*/                OPC_CheckType, MVT::v16i32,
/*269804*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269806*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269809*/                OPC_EmitMergeInputChains1_2,
/*269810*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrav:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSRAVDZrmkz:{ *:[v16i32] } VK16:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269823*/              0, // EndSwitchType
/*269824*/            /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->269872
/*269827*/              OPC_MoveChild0,
/*269828*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269831*/              OPC_RecordMemRef,
/*269832*/              OPC_RecordNode, // #2 = 'ld' chained node
/*269833*/              OPC_CheckFoldableChainNode,
/*269834*/              OPC_RecordChild1, // #3 = $src2
/*269835*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269837*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*269839*/              OPC_CheckType, MVT::i32,
/*269841*/              OPC_MoveParent,
/*269842*/              OPC_MoveParent,
/*269843*/              OPC_MoveParent,
/*269844*/              OPC_MoveChild2,
/*269845*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269848*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269850*/              OPC_MoveParent,
/*269851*/              OPC_CheckType, MVT::v16i32,
/*269853*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269855*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269858*/              OPC_EmitMergeInputChains1_2,
/*269859*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrav:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRAVDZrmbkz:{ *:[v16i32] } VK16:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269872*/            0, // EndSwitchOpcode
/*269873*/          /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(X86ISD::VPERMV),// ->270062
/*269877*/            OPC_RecordChild0, // #1 = $src1
/*269878*/            OPC_MoveChild1,
/*269879*/            OPC_SwitchOpcode /*2 cases */, 1|128,1/*129*/, TARGET_VAL(ISD::BITCAST),// ->270013
/*269884*/              OPC_MoveChild0,
/*269885*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269888*/              OPC_RecordMemRef,
/*269889*/              OPC_RecordNode, // #2 = 'ld' chained node
/*269890*/              OPC_CheckFoldableChainNode,
/*269891*/              OPC_RecordChild1, // #3 = $src2
/*269892*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269894*/              OPC_CheckPredicate, 9, // Predicate_load
/*269896*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*269898*/              OPC_SwitchType /*3 cases */, 38, MVT::v4i64,// ->269939
/*269901*/                OPC_MoveParent,
/*269902*/                OPC_MoveParent,
/*269903*/                OPC_MoveParent,
/*269904*/                OPC_MoveChild2,
/*269905*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*269908*/                OPC_MoveChild0,
/*269909*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269912*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269914*/                OPC_CheckType, MVT::v8i32,
/*269916*/                OPC_MoveParent,
/*269917*/                OPC_MoveParent,
/*269918*/                OPC_CheckType, MVT::v16i16,
/*269920*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*269922*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269925*/                OPC_EmitMergeInputChains1_2,
/*269926*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269939*/              /*SwitchType*/ 38, MVT::v2i64,// ->269979
/*269941*/                OPC_MoveParent,
/*269942*/                OPC_MoveParent,
/*269943*/                OPC_MoveParent,
/*269944*/                OPC_MoveChild2,
/*269945*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*269948*/                OPC_MoveChild0,
/*269949*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269952*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269954*/                OPC_CheckType, MVT::v4i32,
/*269956*/                OPC_MoveParent,
/*269957*/                OPC_MoveParent,
/*269958*/                OPC_CheckType, MVT::v16i8,
/*269960*/                OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*269962*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269965*/                OPC_EmitMergeInputChains1_2,
/*269966*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269979*/              /*SwitchType*/ 31, MVT::v8i64,// ->270012
/*269981*/                OPC_MoveParent,
/*269982*/                OPC_MoveParent,
/*269983*/                OPC_MoveParent,
/*269984*/                OPC_MoveChild2,
/*269985*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*269988*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*269990*/                OPC_MoveParent,
/*269991*/                OPC_CheckType, MVT::v16i32,
/*269993*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*269995*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269998*/                OPC_EmitMergeInputChains1_2,
/*269999*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPERMDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270012*/              0, // EndSwitchType
/*270013*/            /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->270061
/*270016*/              OPC_MoveChild0,
/*270017*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270020*/              OPC_RecordMemRef,
/*270021*/              OPC_RecordNode, // #2 = 'ld' chained node
/*270022*/              OPC_CheckFoldableChainNode,
/*270023*/              OPC_RecordChild1, // #3 = $src2
/*270024*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270026*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*270028*/              OPC_CheckType, MVT::i32,
/*270030*/              OPC_MoveParent,
/*270031*/              OPC_MoveParent,
/*270032*/              OPC_MoveParent,
/*270033*/              OPC_MoveChild2,
/*270034*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270037*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270039*/              OPC_MoveParent,
/*270040*/              OPC_CheckType, MVT::v16i32,
/*270042*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270044*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270047*/              OPC_EmitMergeInputChains1_2,
/*270048*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPERMDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270061*/            0, // EndSwitchOpcode
/*270062*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::PSHUFD),// ->270182
/*270065*/            OPC_MoveChild0,
/*270066*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->270125
/*270070*/              OPC_MoveChild0,
/*270071*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270074*/              OPC_RecordMemRef,
/*270075*/              OPC_RecordNode, // #1 = 'ld' chained node
/*270076*/              OPC_CheckFoldableChainNode,
/*270077*/              OPC_RecordChild1, // #2 = $src1
/*270078*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270080*/              OPC_CheckPredicate, 9, // Predicate_load
/*270082*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*270084*/              OPC_CheckType, MVT::v8i64,
/*270086*/              OPC_MoveParent,
/*270087*/              OPC_MoveParent,
/*270088*/              OPC_RecordChild1, // #3 = $src2
/*270089*/              OPC_MoveChild1,
/*270090*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*270093*/              OPC_MoveParent,
/*270094*/              OPC_MoveParent,
/*270095*/              OPC_MoveChild2,
/*270096*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270099*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270101*/              OPC_MoveParent,
/*270102*/              OPC_CheckType, MVT::v16i32,
/*270104*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270106*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*270109*/              OPC_EmitMergeInputChains1_1,
/*270110*/              OPC_EmitConvertToTarget, 3,
/*270112*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHUFDZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*270125*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->270181
/*270128*/              OPC_MoveChild0,
/*270129*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270132*/              OPC_RecordMemRef,
/*270133*/              OPC_RecordNode, // #1 = 'ld' chained node
/*270134*/              OPC_CheckFoldableChainNode,
/*270135*/              OPC_RecordChild1, // #2 = $src1
/*270136*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270138*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*270140*/              OPC_CheckType, MVT::i32,
/*270142*/              OPC_MoveParent,
/*270143*/              OPC_MoveParent,
/*270144*/              OPC_RecordChild1, // #3 = $src2
/*270145*/              OPC_MoveChild1,
/*270146*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*270149*/              OPC_MoveParent,
/*270150*/              OPC_MoveParent,
/*270151*/              OPC_MoveChild2,
/*270152*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270155*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270157*/              OPC_MoveParent,
/*270158*/              OPC_CheckType, MVT::v16i32,
/*270160*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270162*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*270165*/              OPC_EmitMergeInputChains1_1,
/*270166*/              OPC_EmitConvertToTarget, 3,
/*270168*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHUFDZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*270181*/            0, // EndSwitchOpcode
/*270182*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::PSHUFB),// ->270244
/*270185*/            OPC_RecordChild0, // #1 = $src1
/*270186*/            OPC_MoveChild1,
/*270187*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*270190*/            OPC_MoveChild0,
/*270191*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270194*/            OPC_RecordMemRef,
/*270195*/            OPC_RecordNode, // #2 = 'ld' chained node
/*270196*/            OPC_CheckFoldableChainNode,
/*270197*/            OPC_RecordChild1, // #3 = $src2
/*270198*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270200*/            OPC_CheckPredicate, 9, // Predicate_load
/*270202*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*270204*/            OPC_CheckType, MVT::v2i64,
/*270206*/            OPC_MoveParent,
/*270207*/            OPC_MoveParent,
/*270208*/            OPC_MoveParent,
/*270209*/            OPC_MoveChild2,
/*270210*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*270213*/            OPC_MoveChild0,
/*270214*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270217*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270219*/            OPC_CheckType, MVT::v4i32,
/*270221*/            OPC_MoveParent,
/*270222*/            OPC_MoveParent,
/*270223*/            OPC_CheckType, MVT::v16i8,
/*270225*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270227*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270230*/            OPC_EmitMergeInputChains1_2,
/*270231*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86pshufb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSHUFBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270244*/          /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VALIGN),// ->270367
/*270247*/            OPC_RecordChild0, // #1 = $src1
/*270248*/            OPC_MoveChild1,
/*270249*/            OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::BITCAST),// ->270309
/*270253*/              OPC_MoveChild0,
/*270254*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270257*/              OPC_RecordMemRef,
/*270258*/              OPC_RecordNode, // #2 = 'ld' chained node
/*270259*/              OPC_CheckFoldableChainNode,
/*270260*/              OPC_RecordChild1, // #3 = $src2
/*270261*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270263*/              OPC_CheckPredicate, 9, // Predicate_load
/*270265*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*270267*/              OPC_CheckType, MVT::v8i64,
/*270269*/              OPC_MoveParent,
/*270270*/              OPC_MoveParent,
/*270271*/              OPC_RecordChild2, // #4 = $src3
/*270272*/              OPC_MoveChild2,
/*270273*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*270276*/              OPC_MoveParent,
/*270277*/              OPC_MoveParent,
/*270278*/              OPC_MoveChild2,
/*270279*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270282*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270284*/              OPC_MoveParent,
/*270285*/              OPC_CheckType, MVT::v16i32,
/*270287*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270289*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270292*/              OPC_EmitMergeInputChains1_2,
/*270293*/              OPC_EmitConvertToTarget, 4,
/*270295*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VALIGNDZrmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*270309*/            /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VBROADCAST),// ->270366
/*270312*/              OPC_MoveChild0,
/*270313*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270316*/              OPC_RecordMemRef,
/*270317*/              OPC_RecordNode, // #2 = 'ld' chained node
/*270318*/              OPC_CheckFoldableChainNode,
/*270319*/              OPC_RecordChild1, // #3 = $src2
/*270320*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270322*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*270324*/              OPC_CheckType, MVT::i32,
/*270326*/              OPC_MoveParent,
/*270327*/              OPC_MoveParent,
/*270328*/              OPC_RecordChild2, // #4 = $src3
/*270329*/              OPC_MoveChild2,
/*270330*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*270333*/              OPC_MoveParent,
/*270334*/              OPC_MoveParent,
/*270335*/              OPC_MoveChild2,
/*270336*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270339*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270341*/              OPC_MoveParent,
/*270342*/              OPC_CheckType, MVT::v16i32,
/*270344*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270346*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270349*/              OPC_EmitMergeInputChains1_2,
/*270350*/              OPC_EmitConvertToTarget, 4,
/*270352*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VALIGNDZrmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*270366*/            0, // EndSwitchOpcode
/*270367*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(ISD::ABS),// ->270550
/*270371*/            OPC_MoveChild0,
/*270372*/            OPC_SwitchOpcode /*2 cases */, 126, TARGET_VAL(ISD::BITCAST),// ->270502
/*270376*/              OPC_MoveChild0,
/*270377*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270380*/              OPC_RecordMemRef,
/*270381*/              OPC_RecordNode, // #1 = 'ld' chained node
/*270382*/              OPC_CheckFoldableChainNode,
/*270383*/              OPC_RecordChild1, // #2 = $src1
/*270384*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270386*/              OPC_CheckPredicate, 9, // Predicate_load
/*270388*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*270390*/              OPC_SwitchType /*3 cases */, 37, MVT::v4i64,// ->270430
/*270393*/                OPC_MoveParent,
/*270394*/                OPC_MoveParent,
/*270395*/                OPC_MoveParent,
/*270396*/                OPC_MoveChild2,
/*270397*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*270400*/                OPC_MoveChild0,
/*270401*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270404*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270406*/                OPC_CheckType, MVT::v8i32,
/*270408*/                OPC_MoveParent,
/*270409*/                OPC_MoveParent,
/*270410*/                OPC_CheckType, MVT::v16i16,
/*270412*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270414*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*270417*/                OPC_EmitMergeInputChains1_1,
/*270418*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPABSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*270430*/              /*SwitchType*/ 37, MVT::v2i64,// ->270469
/*270432*/                OPC_MoveParent,
/*270433*/                OPC_MoveParent,
/*270434*/                OPC_MoveParent,
/*270435*/                OPC_MoveChild2,
/*270436*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*270439*/                OPC_MoveChild0,
/*270440*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270443*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270445*/                OPC_CheckType, MVT::v4i32,
/*270447*/                OPC_MoveParent,
/*270448*/                OPC_MoveParent,
/*270449*/                OPC_CheckType, MVT::v16i8,
/*270451*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270453*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*270456*/                OPC_EmitMergeInputChains1_1,
/*270457*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPABSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*270469*/              /*SwitchType*/ 30, MVT::v8i64,// ->270501
/*270471*/                OPC_MoveParent,
/*270472*/                OPC_MoveParent,
/*270473*/                OPC_MoveParent,
/*270474*/                OPC_MoveChild2,
/*270475*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270478*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270480*/                OPC_MoveParent,
/*270481*/                OPC_CheckType, MVT::v16i32,
/*270483*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270485*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*270488*/                OPC_EmitMergeInputChains1_1,
/*270489*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPABSDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*270501*/              0, // EndSwitchType
/*270502*/            /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VBROADCAST),// ->270549
/*270505*/              OPC_MoveChild0,
/*270506*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270509*/              OPC_RecordMemRef,
/*270510*/              OPC_RecordNode, // #1 = 'ld' chained node
/*270511*/              OPC_CheckFoldableChainNode,
/*270512*/              OPC_RecordChild1, // #2 = $src1
/*270513*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270515*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*270517*/              OPC_CheckType, MVT::i32,
/*270519*/              OPC_MoveParent,
/*270520*/              OPC_MoveParent,
/*270521*/              OPC_MoveParent,
/*270522*/              OPC_MoveChild2,
/*270523*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270526*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270528*/              OPC_MoveParent,
/*270529*/              OPC_CheckType, MVT::v16i32,
/*270531*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270533*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*270536*/              OPC_EmitMergeInputChains1_1,
/*270537*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPABSDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*270549*/            0, // EndSwitchOpcode
/*270550*/          /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(X86ISD::UNPCKL),// ->270739
/*270554*/            OPC_RecordChild0, // #1 = $src1
/*270555*/            OPC_MoveChild1,
/*270556*/            OPC_SwitchOpcode /*2 cases */, 1|128,1/*129*/, TARGET_VAL(ISD::BITCAST),// ->270690
/*270561*/              OPC_MoveChild0,
/*270562*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270565*/              OPC_RecordMemRef,
/*270566*/              OPC_RecordNode, // #2 = 'ld' chained node
/*270567*/              OPC_CheckFoldableChainNode,
/*270568*/              OPC_RecordChild1, // #3 = $src2
/*270569*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270571*/              OPC_CheckPredicate, 9, // Predicate_load
/*270573*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*270575*/              OPC_SwitchType /*3 cases */, 38, MVT::v2i64,// ->270616
/*270578*/                OPC_MoveParent,
/*270579*/                OPC_MoveParent,
/*270580*/                OPC_MoveParent,
/*270581*/                OPC_MoveChild2,
/*270582*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*270585*/                OPC_MoveChild0,
/*270586*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270589*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270591*/                OPC_CheckType, MVT::v4i32,
/*270593*/                OPC_MoveParent,
/*270594*/                OPC_MoveParent,
/*270595*/                OPC_CheckType, MVT::v16i8,
/*270597*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270599*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270602*/                OPC_EmitMergeInputChains1_2,
/*270603*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPUNPCKLBWZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270616*/              /*SwitchType*/ 38, MVT::v4i64,// ->270656
/*270618*/                OPC_MoveParent,
/*270619*/                OPC_MoveParent,
/*270620*/                OPC_MoveParent,
/*270621*/                OPC_MoveChild2,
/*270622*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*270625*/                OPC_MoveChild0,
/*270626*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270629*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270631*/                OPC_CheckType, MVT::v8i32,
/*270633*/                OPC_MoveParent,
/*270634*/                OPC_MoveParent,
/*270635*/                OPC_CheckType, MVT::v16i16,
/*270637*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270639*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270642*/                OPC_EmitMergeInputChains1_2,
/*270643*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPUNPCKLWDZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270656*/              /*SwitchType*/ 31, MVT::v8i64,// ->270689
/*270658*/                OPC_MoveParent,
/*270659*/                OPC_MoveParent,
/*270660*/                OPC_MoveParent,
/*270661*/                OPC_MoveChild2,
/*270662*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270665*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270667*/                OPC_MoveParent,
/*270668*/                OPC_CheckType, MVT::v16i32,
/*270670*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270672*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270675*/                OPC_EmitMergeInputChains1_2,
/*270676*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPUNPCKLDQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270689*/              0, // EndSwitchType
/*270690*/            /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->270738
/*270693*/              OPC_MoveChild0,
/*270694*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270697*/              OPC_RecordMemRef,
/*270698*/              OPC_RecordNode, // #2 = 'ld' chained node
/*270699*/              OPC_CheckFoldableChainNode,
/*270700*/              OPC_RecordChild1, // #3 = $src2
/*270701*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270703*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*270705*/              OPC_CheckType, MVT::i32,
/*270707*/              OPC_MoveParent,
/*270708*/              OPC_MoveParent,
/*270709*/              OPC_MoveParent,
/*270710*/              OPC_MoveChild2,
/*270711*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270714*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270716*/              OPC_MoveParent,
/*270717*/              OPC_CheckType, MVT::v16i32,
/*270719*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270721*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270724*/              OPC_EmitMergeInputChains1_2,
/*270725*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPUNPCKLDQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270738*/            0, // EndSwitchOpcode
/*270739*/          /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(X86ISD::UNPCKH),// ->270928
/*270743*/            OPC_RecordChild0, // #1 = $src1
/*270744*/            OPC_MoveChild1,
/*270745*/            OPC_SwitchOpcode /*2 cases */, 1|128,1/*129*/, TARGET_VAL(ISD::BITCAST),// ->270879
/*270750*/              OPC_MoveChild0,
/*270751*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270754*/              OPC_RecordMemRef,
/*270755*/              OPC_RecordNode, // #2 = 'ld' chained node
/*270756*/              OPC_CheckFoldableChainNode,
/*270757*/              OPC_RecordChild1, // #3 = $src2
/*270758*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270760*/              OPC_CheckPredicate, 9, // Predicate_load
/*270762*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*270764*/              OPC_SwitchType /*3 cases */, 38, MVT::v2i64,// ->270805
/*270767*/                OPC_MoveParent,
/*270768*/                OPC_MoveParent,
/*270769*/                OPC_MoveParent,
/*270770*/                OPC_MoveChild2,
/*270771*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*270774*/                OPC_MoveChild0,
/*270775*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270778*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270780*/                OPC_CheckType, MVT::v4i32,
/*270782*/                OPC_MoveParent,
/*270783*/                OPC_MoveParent,
/*270784*/                OPC_CheckType, MVT::v16i8,
/*270786*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270788*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270791*/                OPC_EmitMergeInputChains1_2,
/*270792*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPUNPCKHBWZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270805*/              /*SwitchType*/ 38, MVT::v4i64,// ->270845
/*270807*/                OPC_MoveParent,
/*270808*/                OPC_MoveParent,
/*270809*/                OPC_MoveParent,
/*270810*/                OPC_MoveChild2,
/*270811*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*270814*/                OPC_MoveChild0,
/*270815*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270818*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270820*/                OPC_CheckType, MVT::v8i32,
/*270822*/                OPC_MoveParent,
/*270823*/                OPC_MoveParent,
/*270824*/                OPC_CheckType, MVT::v16i16,
/*270826*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270828*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270831*/                OPC_EmitMergeInputChains1_2,
/*270832*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPUNPCKHWDZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270845*/              /*SwitchType*/ 31, MVT::v8i64,// ->270878
/*270847*/                OPC_MoveParent,
/*270848*/                OPC_MoveParent,
/*270849*/                OPC_MoveParent,
/*270850*/                OPC_MoveChild2,
/*270851*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270854*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270856*/                OPC_MoveParent,
/*270857*/                OPC_CheckType, MVT::v16i32,
/*270859*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270861*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270864*/                OPC_EmitMergeInputChains1_2,
/*270865*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPUNPCKHDQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270878*/              0, // EndSwitchType
/*270879*/            /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VBROADCAST),// ->270927
/*270882*/              OPC_MoveChild0,
/*270883*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270886*/              OPC_RecordMemRef,
/*270887*/              OPC_RecordNode, // #2 = 'ld' chained node
/*270888*/              OPC_CheckFoldableChainNode,
/*270889*/              OPC_RecordChild1, // #3 = $src2
/*270890*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270892*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*270894*/              OPC_CheckType, MVT::i32,
/*270896*/              OPC_MoveParent,
/*270897*/              OPC_MoveParent,
/*270898*/              OPC_MoveParent,
/*270899*/              OPC_MoveChild2,
/*270900*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270903*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270905*/              OPC_MoveParent,
/*270906*/              OPC_CheckType, MVT::v16i32,
/*270908*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270910*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270913*/              OPC_EmitMergeInputChains1_2,
/*270914*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPUNPCKHDQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270927*/            0, // EndSwitchOpcode
/*270928*/          /*SwitchOpcode*/ 10|128,3/*394*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->271326
/*270932*/            OPC_Scope, 127, /*->271061*/ // 5 children in Scope
/*270934*/              OPC_RecordChild0, // #1 = $src1
/*270935*/              OPC_RecordChild1, // #2 = $src2
/*270936*/              OPC_MoveChild2,
/*270937*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::BITCAST),// ->271000
/*270941*/                OPC_MoveChild0,
/*270942*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270945*/                OPC_RecordMemRef,
/*270946*/                OPC_RecordNode, // #3 = 'ld' chained node
/*270947*/                OPC_CheckFoldableChainNode,
/*270948*/                OPC_RecordChild1, // #4 = $src3
/*270949*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270951*/                OPC_CheckPredicate, 9, // Predicate_load
/*270953*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*270955*/                OPC_CheckType, MVT::v8i64,
/*270957*/                OPC_MoveParent,
/*270958*/                OPC_MoveParent,
/*270959*/                OPC_RecordChild3, // #5 = $src4
/*270960*/                OPC_MoveChild3,
/*270961*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*270964*/                OPC_MoveParent,
/*270965*/                OPC_MoveParent,
/*270966*/                OPC_MoveChild2,
/*270967*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*270970*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*270972*/                OPC_MoveParent,
/*270973*/                OPC_CheckType, MVT::v16i32,
/*270975*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*270977*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*270980*/                OPC_EmitMergeInputChains, 1, 3, 
/*270983*/                OPC_EmitConvertToTarget, 5,
/*270985*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPTERNLOGDZrmikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*271000*/              /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST),// ->271060
/*271003*/                OPC_MoveChild0,
/*271004*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271007*/                OPC_RecordMemRef,
/*271008*/                OPC_RecordNode, // #3 = 'ld' chained node
/*271009*/                OPC_CheckFoldableChainNode,
/*271010*/                OPC_RecordChild1, // #4 = $src3
/*271011*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271013*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*271015*/                OPC_CheckType, MVT::i32,
/*271017*/                OPC_MoveParent,
/*271018*/                OPC_MoveParent,
/*271019*/                OPC_RecordChild3, // #5 = $src4
/*271020*/                OPC_MoveChild3,
/*271021*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*271024*/                OPC_MoveParent,
/*271025*/                OPC_MoveParent,
/*271026*/                OPC_MoveChild2,
/*271027*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271030*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271032*/                OPC_MoveParent,
/*271033*/                OPC_CheckType, MVT::v16i32,
/*271035*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*271037*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*271040*/                OPC_EmitMergeInputChains, 1, 3, 
/*271043*/                OPC_EmitConvertToTarget, 5,
/*271045*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                          // Dst: (VPTERNLOGDZrmbikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*271060*/              0, // EndSwitchOpcode
/*271061*/            /*Scope*/ 66, /*->271128*/
/*271062*/              OPC_MoveChild0,
/*271063*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*271066*/              OPC_MoveChild0,
/*271067*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271070*/              OPC_RecordMemRef,
/*271071*/              OPC_RecordNode, // #1 = 'ld' chained node
/*271072*/              OPC_CheckFoldableChainNode,
/*271073*/              OPC_RecordChild1, // #2 = $src3
/*271074*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271076*/              OPC_CheckPredicate, 9, // Predicate_load
/*271078*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*271080*/              OPC_CheckType, MVT::v8i64,
/*271082*/              OPC_MoveParent,
/*271083*/              OPC_MoveParent,
/*271084*/              OPC_RecordChild1, // #3 = $src2
/*271085*/              OPC_RecordChild2, // #4 = $src1
/*271086*/              OPC_RecordChild3, // #5 = $src4
/*271087*/              OPC_MoveChild3,
/*271088*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*271091*/              OPC_MoveParent,
/*271092*/              OPC_MoveParent,
/*271093*/              OPC_MoveChild2,
/*271094*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271097*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271099*/              OPC_MoveParent,
/*271100*/              OPC_CheckType, MVT::v16i32,
/*271102*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*271104*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*271107*/              OPC_EmitMergeInputChains1_1,
/*271108*/              OPC_EmitConvertToTarget, 5,
/*271110*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*271113*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPTERNLOGDZrmikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*271128*/            /*Scope*/ 66, /*->271195*/
/*271129*/              OPC_RecordChild0, // #1 = $src1
/*271130*/              OPC_MoveChild1,
/*271131*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*271134*/              OPC_MoveChild0,
/*271135*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271138*/              OPC_RecordMemRef,
/*271139*/              OPC_RecordNode, // #2 = 'ld' chained node
/*271140*/              OPC_CheckFoldableChainNode,
/*271141*/              OPC_RecordChild1, // #3 = $src3
/*271142*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271144*/              OPC_CheckPredicate, 9, // Predicate_load
/*271146*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*271148*/              OPC_CheckType, MVT::v8i64,
/*271150*/              OPC_MoveParent,
/*271151*/              OPC_MoveParent,
/*271152*/              OPC_RecordChild2, // #4 = $src2
/*271153*/              OPC_RecordChild3, // #5 = $src4
/*271154*/              OPC_MoveChild3,
/*271155*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*271158*/              OPC_MoveParent,
/*271159*/              OPC_MoveParent,
/*271160*/              OPC_MoveChild2,
/*271161*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271164*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271166*/              OPC_MoveParent,
/*271167*/              OPC_CheckType, MVT::v16i32,
/*271169*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*271171*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*271174*/              OPC_EmitMergeInputChains1_2,
/*271175*/              OPC_EmitConvertToTarget, 5,
/*271177*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*271180*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPTERNLOGDZrmikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*271195*/            /*Scope*/ 64, /*->271260*/
/*271196*/              OPC_MoveChild0,
/*271197*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*271200*/              OPC_MoveChild0,
/*271201*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271204*/              OPC_RecordMemRef,
/*271205*/              OPC_RecordNode, // #1 = 'ld' chained node
/*271206*/              OPC_CheckFoldableChainNode,
/*271207*/              OPC_RecordChild1, // #2 = $src3
/*271208*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271210*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*271212*/              OPC_CheckType, MVT::i32,
/*271214*/              OPC_MoveParent,
/*271215*/              OPC_MoveParent,
/*271216*/              OPC_RecordChild1, // #3 = $src2
/*271217*/              OPC_RecordChild2, // #4 = $src1
/*271218*/              OPC_RecordChild3, // #5 = $src4
/*271219*/              OPC_MoveChild3,
/*271220*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*271223*/              OPC_MoveParent,
/*271224*/              OPC_MoveParent,
/*271225*/              OPC_MoveChild2,
/*271226*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271229*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271231*/              OPC_MoveParent,
/*271232*/              OPC_CheckType, MVT::v16i32,
/*271234*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*271236*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*271239*/              OPC_EmitMergeInputChains1_1,
/*271240*/              OPC_EmitConvertToTarget, 5,
/*271242*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*271245*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPTERNLOGDZrmbikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*271260*/            /*Scope*/ 64, /*->271325*/
/*271261*/              OPC_RecordChild0, // #1 = $src1
/*271262*/              OPC_MoveChild1,
/*271263*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*271266*/              OPC_MoveChild0,
/*271267*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271270*/              OPC_RecordMemRef,
/*271271*/              OPC_RecordNode, // #2 = 'ld' chained node
/*271272*/              OPC_CheckFoldableChainNode,
/*271273*/              OPC_RecordChild1, // #3 = $src3
/*271274*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271276*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*271278*/              OPC_CheckType, MVT::i32,
/*271280*/              OPC_MoveParent,
/*271281*/              OPC_MoveParent,
/*271282*/              OPC_RecordChild2, // #4 = $src2
/*271283*/              OPC_RecordChild3, // #5 = $src4
/*271284*/              OPC_MoveChild3,
/*271285*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*271288*/              OPC_MoveParent,
/*271289*/              OPC_MoveParent,
/*271290*/              OPC_MoveChild2,
/*271291*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271294*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271296*/              OPC_MoveParent,
/*271297*/              OPC_CheckType, MVT::v16i32,
/*271299*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*271301*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*271304*/              OPC_EmitMergeInputChains1_2,
/*271305*/              OPC_EmitConvertToTarget, 5,
/*271307*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*271310*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPTERNLOGDZrmbikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*271325*/            0, /*End of Scope*/
/*271326*/          /*SwitchOpcode*/ 26|128,1/*154*/, TARGET_VAL(X86ISD::VSHLDV),// ->271484
/*271330*/            OPC_RecordChild0, // #1 = $src1
/*271331*/            OPC_RecordChild1, // #2 = $src2
/*271332*/            OPC_MoveChild2,
/*271333*/            OPC_SwitchOpcode /*2 cases */, 95, TARGET_VAL(ISD::BITCAST),// ->271432
/*271337*/              OPC_MoveChild0,
/*271338*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271341*/              OPC_RecordMemRef,
/*271342*/              OPC_RecordNode, // #3 = 'ld' chained node
/*271343*/              OPC_CheckFoldableChainNode,
/*271344*/              OPC_RecordChild1, // #4 = $src3
/*271345*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271347*/              OPC_CheckPredicate, 9, // Predicate_load
/*271349*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*271351*/              OPC_SwitchType /*2 cases */, 41, MVT::v4i64,// ->271395
/*271354*/                OPC_MoveParent,
/*271355*/                OPC_MoveParent,
/*271356*/                OPC_MoveParent,
/*271357*/                OPC_MoveChild2,
/*271358*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*271361*/                OPC_MoveChild0,
/*271362*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271365*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271367*/                OPC_CheckType, MVT::v8i32,
/*271369*/                OPC_MoveParent,
/*271370*/                OPC_MoveParent,
/*271371*/                OPC_CheckType, MVT::v16i16,
/*271373*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*271375*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*271378*/                OPC_EmitMergeInputChains, 1, 3, 
/*271381*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShldv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSHLDVWZ256mkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*271395*/              /*SwitchType*/ 34, MVT::v8i64,// ->271431
/*271397*/                OPC_MoveParent,
/*271398*/                OPC_MoveParent,
/*271399*/                OPC_MoveParent,
/*271400*/                OPC_MoveChild2,
/*271401*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271404*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271406*/                OPC_MoveParent,
/*271407*/                OPC_CheckType, MVT::v16i32,
/*271409*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*271411*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*271414*/                OPC_EmitMergeInputChains, 1, 3, 
/*271417*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShldv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSHLDVDZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*271431*/              0, // EndSwitchType
/*271432*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->271483
/*271435*/              OPC_MoveChild0,
/*271436*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271439*/              OPC_RecordMemRef,
/*271440*/              OPC_RecordNode, // #3 = 'ld' chained node
/*271441*/              OPC_CheckFoldableChainNode,
/*271442*/              OPC_RecordChild1, // #4 = $src3
/*271443*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271445*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*271447*/              OPC_CheckType, MVT::i32,
/*271449*/              OPC_MoveParent,
/*271450*/              OPC_MoveParent,
/*271451*/              OPC_MoveParent,
/*271452*/              OPC_MoveChild2,
/*271453*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271456*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271458*/              OPC_MoveParent,
/*271459*/              OPC_CheckType, MVT::v16i32,
/*271461*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*271463*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*271466*/              OPC_EmitMergeInputChains, 1, 3, 
/*271469*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShldv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSHLDVDZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*271483*/            0, // EndSwitchOpcode
/*271484*/          /*SwitchOpcode*/ 26|128,1/*154*/, TARGET_VAL(X86ISD::VSHRDV),// ->271642
/*271488*/            OPC_RecordChild0, // #1 = $src1
/*271489*/            OPC_RecordChild1, // #2 = $src2
/*271490*/            OPC_MoveChild2,
/*271491*/            OPC_SwitchOpcode /*2 cases */, 95, TARGET_VAL(ISD::BITCAST),// ->271590
/*271495*/              OPC_MoveChild0,
/*271496*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271499*/              OPC_RecordMemRef,
/*271500*/              OPC_RecordNode, // #3 = 'ld' chained node
/*271501*/              OPC_CheckFoldableChainNode,
/*271502*/              OPC_RecordChild1, // #4 = $src3
/*271503*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271505*/              OPC_CheckPredicate, 9, // Predicate_load
/*271507*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*271509*/              OPC_SwitchType /*2 cases */, 41, MVT::v4i64,// ->271553
/*271512*/                OPC_MoveParent,
/*271513*/                OPC_MoveParent,
/*271514*/                OPC_MoveParent,
/*271515*/                OPC_MoveChild2,
/*271516*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*271519*/                OPC_MoveChild0,
/*271520*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271523*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271525*/                OPC_CheckType, MVT::v8i32,
/*271527*/                OPC_MoveParent,
/*271528*/                OPC_MoveParent,
/*271529*/                OPC_CheckType, MVT::v16i16,
/*271531*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*271533*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*271536*/                OPC_EmitMergeInputChains, 1, 3, 
/*271539*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrdv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPSHRDVWZ256mkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*271553*/              /*SwitchType*/ 34, MVT::v8i64,// ->271589
/*271555*/                OPC_MoveParent,
/*271556*/                OPC_MoveParent,
/*271557*/                OPC_MoveParent,
/*271558*/                OPC_MoveChild2,
/*271559*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271562*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271564*/                OPC_MoveParent,
/*271565*/                OPC_CheckType, MVT::v16i32,
/*271567*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*271569*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*271572*/                OPC_EmitMergeInputChains, 1, 3, 
/*271575*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrdv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPSHRDVDZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*271589*/              0, // EndSwitchType
/*271590*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->271641
/*271593*/              OPC_MoveChild0,
/*271594*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271597*/              OPC_RecordMemRef,
/*271598*/              OPC_RecordNode, // #3 = 'ld' chained node
/*271599*/              OPC_CheckFoldableChainNode,
/*271600*/              OPC_RecordChild1, // #4 = $src3
/*271601*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271603*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*271605*/              OPC_CheckType, MVT::i32,
/*271607*/              OPC_MoveParent,
/*271608*/              OPC_MoveParent,
/*271609*/              OPC_MoveParent,
/*271610*/              OPC_MoveChild2,
/*271611*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271614*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271616*/              OPC_MoveParent,
/*271617*/              OPC_CheckType, MVT::v16i32,
/*271619*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*271621*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*271624*/              OPC_EmitMergeInputChains, 1, 3, 
/*271627*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrdv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSHRDVDZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*271641*/            0, // EndSwitchOpcode
/*271642*/          /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VSHLD),// ->271765
/*271645*/            OPC_RecordChild0, // #1 = $src1
/*271646*/            OPC_MoveChild1,
/*271647*/            OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::BITCAST),// ->271707
/*271651*/              OPC_MoveChild0,
/*271652*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271655*/              OPC_RecordMemRef,
/*271656*/              OPC_RecordNode, // #2 = 'ld' chained node
/*271657*/              OPC_CheckFoldableChainNode,
/*271658*/              OPC_RecordChild1, // #3 = $src2
/*271659*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271661*/              OPC_CheckPredicate, 9, // Predicate_load
/*271663*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*271665*/              OPC_CheckType, MVT::v8i64,
/*271667*/              OPC_MoveParent,
/*271668*/              OPC_MoveParent,
/*271669*/              OPC_RecordChild2, // #4 = $src3
/*271670*/              OPC_MoveChild2,
/*271671*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*271674*/              OPC_MoveParent,
/*271675*/              OPC_MoveParent,
/*271676*/              OPC_MoveChild2,
/*271677*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271680*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271682*/              OPC_MoveParent,
/*271683*/              OPC_CheckType, MVT::v16i32,
/*271685*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*271687*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271690*/              OPC_EmitMergeInputChains1_2,
/*271691*/              OPC_EmitConvertToTarget, 4,
/*271693*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHLDDZrmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*271707*/            /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VBROADCAST),// ->271764
/*271710*/              OPC_MoveChild0,
/*271711*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271714*/              OPC_RecordMemRef,
/*271715*/              OPC_RecordNode, // #2 = 'ld' chained node
/*271716*/              OPC_CheckFoldableChainNode,
/*271717*/              OPC_RecordChild1, // #3 = $src2
/*271718*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271720*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*271722*/              OPC_CheckType, MVT::i32,
/*271724*/              OPC_MoveParent,
/*271725*/              OPC_MoveParent,
/*271726*/              OPC_RecordChild2, // #4 = $src3
/*271727*/              OPC_MoveChild2,
/*271728*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*271731*/              OPC_MoveParent,
/*271732*/              OPC_MoveParent,
/*271733*/              OPC_MoveChild2,
/*271734*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271737*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271739*/              OPC_MoveParent,
/*271740*/              OPC_CheckType, MVT::v16i32,
/*271742*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*271744*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271747*/              OPC_EmitMergeInputChains1_2,
/*271748*/              OPC_EmitConvertToTarget, 4,
/*271750*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHLDDZrmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*271764*/            0, // EndSwitchOpcode
/*271765*/          /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VSHRD),// ->271888
/*271768*/            OPC_RecordChild0, // #1 = $src1
/*271769*/            OPC_MoveChild1,
/*271770*/            OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::BITCAST),// ->271830
/*271774*/              OPC_MoveChild0,
/*271775*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271778*/              OPC_RecordMemRef,
/*271779*/              OPC_RecordNode, // #2 = 'ld' chained node
/*271780*/              OPC_CheckFoldableChainNode,
/*271781*/              OPC_RecordChild1, // #3 = $src2
/*271782*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271784*/              OPC_CheckPredicate, 9, // Predicate_load
/*271786*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*271788*/              OPC_CheckType, MVT::v8i64,
/*271790*/              OPC_MoveParent,
/*271791*/              OPC_MoveParent,
/*271792*/              OPC_RecordChild2, // #4 = $src3
/*271793*/              OPC_MoveChild2,
/*271794*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*271797*/              OPC_MoveParent,
/*271798*/              OPC_MoveParent,
/*271799*/              OPC_MoveChild2,
/*271800*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271803*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271805*/              OPC_MoveParent,
/*271806*/              OPC_CheckType, MVT::v16i32,
/*271808*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*271810*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271813*/              OPC_EmitMergeInputChains1_2,
/*271814*/              OPC_EmitConvertToTarget, 4,
/*271816*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHRDDZrmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*271830*/            /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VBROADCAST),// ->271887
/*271833*/              OPC_MoveChild0,
/*271834*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271837*/              OPC_RecordMemRef,
/*271838*/              OPC_RecordNode, // #2 = 'ld' chained node
/*271839*/              OPC_CheckFoldableChainNode,
/*271840*/              OPC_RecordChild1, // #3 = $src2
/*271841*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271843*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*271845*/              OPC_CheckType, MVT::i32,
/*271847*/              OPC_MoveParent,
/*271848*/              OPC_MoveParent,
/*271849*/              OPC_RecordChild2, // #4 = $src3
/*271850*/              OPC_MoveChild2,
/*271851*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*271854*/              OPC_MoveParent,
/*271855*/              OPC_MoveParent,
/*271856*/              OPC_MoveChild2,
/*271857*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271860*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271862*/              OPC_MoveParent,
/*271863*/              OPC_CheckType, MVT::v16i32,
/*271865*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*271867*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271870*/              OPC_EmitMergeInputChains1_2,
/*271871*/              OPC_EmitConvertToTarget, 4,
/*271873*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 38
                        // Dst: (VPSHRDDZrmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*271887*/            0, // EndSwitchOpcode
/*271888*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::EXPAND),// ->272022
/*271892*/            OPC_MoveChild0,
/*271893*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*271896*/            OPC_MoveChild0,
/*271897*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271900*/            OPC_RecordMemRef,
/*271901*/            OPC_RecordNode, // #1 = 'ld' chained node
/*271902*/            OPC_CheckFoldableChainNode,
/*271903*/            OPC_RecordChild1, // #2 = $src1
/*271904*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271906*/            OPC_CheckPredicate, 9, // Predicate_load
/*271908*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*271910*/            OPC_SwitchType /*3 cases */, 37, MVT::v2i64,// ->271950
/*271913*/              OPC_MoveParent,
/*271914*/              OPC_MoveParent,
/*271915*/              OPC_MoveParent,
/*271916*/              OPC_MoveChild2,
/*271917*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*271920*/              OPC_MoveChild0,
/*271921*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271924*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271926*/              OPC_CheckType, MVT::v4i32,
/*271928*/              OPC_MoveParent,
/*271929*/              OPC_MoveParent,
/*271930*/              OPC_CheckType, MVT::v16i8,
/*271932*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*271934*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*271937*/              OPC_EmitMergeInputChains1_1,
/*271938*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPEXPANDBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*271950*/            /*SwitchType*/ 37, MVT::v4i64,// ->271989
/*271952*/              OPC_MoveParent,
/*271953*/              OPC_MoveParent,
/*271954*/              OPC_MoveParent,
/*271955*/              OPC_MoveChild2,
/*271956*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*271959*/              OPC_MoveChild0,
/*271960*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271963*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*271965*/              OPC_CheckType, MVT::v8i32,
/*271967*/              OPC_MoveParent,
/*271968*/              OPC_MoveParent,
/*271969*/              OPC_CheckType, MVT::v16i16,
/*271971*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*271973*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*271976*/              OPC_EmitMergeInputChains1_1,
/*271977*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPEXPANDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*271989*/            /*SwitchType*/ 30, MVT::v8i64,// ->272021
/*271991*/              OPC_MoveParent,
/*271992*/              OPC_MoveParent,
/*271993*/              OPC_MoveParent,
/*271994*/              OPC_MoveChild2,
/*271995*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*271998*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272000*/              OPC_MoveParent,
/*272001*/              OPC_CheckType, MVT::v16i32,
/*272003*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*272005*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*272008*/              OPC_EmitMergeInputChains1_1,
/*272009*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPEXPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272021*/            0, // EndSwitchType
/*272022*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(ISD::CTPOP),// ->272205
/*272026*/            OPC_MoveChild0,
/*272027*/            OPC_SwitchOpcode /*2 cases */, 126, TARGET_VAL(ISD::BITCAST),// ->272157
/*272031*/              OPC_MoveChild0,
/*272032*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272035*/              OPC_RecordMemRef,
/*272036*/              OPC_RecordNode, // #1 = 'ld' chained node
/*272037*/              OPC_CheckFoldableChainNode,
/*272038*/              OPC_RecordChild1, // #2 = $src1
/*272039*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272041*/              OPC_CheckPredicate, 9, // Predicate_load
/*272043*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*272045*/              OPC_SwitchType /*3 cases */, 37, MVT::v2i64,// ->272085
/*272048*/                OPC_MoveParent,
/*272049*/                OPC_MoveParent,
/*272050*/                OPC_MoveParent,
/*272051*/                OPC_MoveChild2,
/*272052*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272055*/                OPC_MoveChild0,
/*272056*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272059*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272061*/                OPC_CheckType, MVT::v4i32,
/*272063*/                OPC_MoveParent,
/*272064*/                OPC_MoveParent,
/*272065*/                OPC_CheckType, MVT::v16i8,
/*272067*/                OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*272069*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*272072*/                OPC_EmitMergeInputChains1_1,
/*272073*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPOPCNTBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272085*/              /*SwitchType*/ 37, MVT::v4i64,// ->272124
/*272087*/                OPC_MoveParent,
/*272088*/                OPC_MoveParent,
/*272089*/                OPC_MoveParent,
/*272090*/                OPC_MoveChild2,
/*272091*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272094*/                OPC_MoveChild0,
/*272095*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272098*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272100*/                OPC_CheckType, MVT::v8i32,
/*272102*/                OPC_MoveParent,
/*272103*/                OPC_MoveParent,
/*272104*/                OPC_CheckType, MVT::v16i16,
/*272106*/                OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*272108*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*272111*/                OPC_EmitMergeInputChains1_1,
/*272112*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPOPCNTWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272124*/              /*SwitchType*/ 30, MVT::v8i64,// ->272156
/*272126*/                OPC_MoveParent,
/*272127*/                OPC_MoveParent,
/*272128*/                OPC_MoveParent,
/*272129*/                OPC_MoveChild2,
/*272130*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272133*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272135*/                OPC_MoveParent,
/*272136*/                OPC_CheckType, MVT::v16i32,
/*272138*/                OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*272140*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*272143*/                OPC_EmitMergeInputChains1_1,
/*272144*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                          // Dst: (VPOPCNTDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272156*/              0, // EndSwitchType
/*272157*/            /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VBROADCAST),// ->272204
/*272160*/              OPC_MoveChild0,
/*272161*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272164*/              OPC_RecordMemRef,
/*272165*/              OPC_RecordNode, // #1 = 'ld' chained node
/*272166*/              OPC_CheckFoldableChainNode,
/*272167*/              OPC_RecordChild1, // #2 = $src1
/*272168*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272170*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*272172*/              OPC_CheckType, MVT::i32,
/*272174*/              OPC_MoveParent,
/*272175*/              OPC_MoveParent,
/*272176*/              OPC_MoveParent,
/*272177*/              OPC_MoveChild2,
/*272178*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272181*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272183*/              OPC_MoveParent,
/*272184*/              OPC_CheckType, MVT::v16i32,
/*272186*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*272188*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*272191*/              OPC_EmitMergeInputChains1_1,
/*272192*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPOPCNTDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272204*/            0, // EndSwitchOpcode
/*272205*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::GF2P8MULB),// ->272267
/*272208*/            OPC_RecordChild0, // #1 = $src1
/*272209*/            OPC_MoveChild1,
/*272210*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272213*/            OPC_MoveChild0,
/*272214*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272217*/            OPC_RecordMemRef,
/*272218*/            OPC_RecordNode, // #2 = 'ld' chained node
/*272219*/            OPC_CheckFoldableChainNode,
/*272220*/            OPC_RecordChild1, // #3 = $src2
/*272221*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272223*/            OPC_CheckPredicate, 9, // Predicate_load
/*272225*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*272227*/            OPC_CheckType, MVT::v2i64,
/*272229*/            OPC_MoveParent,
/*272230*/            OPC_MoveParent,
/*272231*/            OPC_MoveParent,
/*272232*/            OPC_MoveChild2,
/*272233*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272236*/            OPC_MoveChild0,
/*272237*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272240*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272242*/            OPC_CheckType, MVT::v4i32,
/*272244*/            OPC_MoveParent,
/*272245*/            OPC_MoveParent,
/*272246*/            OPC_CheckType, MVT::v16i8,
/*272248*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*272250*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272253*/            OPC_EmitMergeInputChains1_2,
/*272254*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8mulb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VGF2P8MULBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272267*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->272331
/*272270*/            OPC_RecordChild0, // #1 = $src1
/*272271*/            OPC_MoveChild1,
/*272272*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272275*/            OPC_MoveChild0,
/*272276*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*272279*/            OPC_MoveChild0,
/*272280*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272283*/            OPC_RecordMemRef,
/*272284*/            OPC_RecordNode, // #2 = 'ld' chained node
/*272285*/            OPC_CheckFoldableChainNode,
/*272286*/            OPC_RecordChild1, // #3 = $src2
/*272287*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272289*/            OPC_CheckPredicate, 9, // Predicate_load
/*272291*/            OPC_CheckType, MVT::i64,
/*272293*/            OPC_MoveParent,
/*272294*/            OPC_CheckType, MVT::v2i64,
/*272296*/            OPC_MoveParent,
/*272297*/            OPC_MoveParent,
/*272298*/            OPC_RecordChild2, // #4 = $src3
/*272299*/            OPC_MoveChild2,
/*272300*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*272303*/            OPC_MoveParent,
/*272304*/            OPC_MoveParent,
/*272305*/            OPC_RecordChild2, // #5 = $src0
/*272306*/            OPC_CheckType, MVT::v16i8,
/*272308*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*272310*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*272313*/            OPC_EmitMergeInputChains1_2,
/*272314*/            OPC_EmitConvertToTarget, 4,
/*272316*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 37
                      // Dst: (VGF2P8AFFINEINVQBZ128rmbik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*272331*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->272395
/*272334*/            OPC_RecordChild0, // #1 = $src1
/*272335*/            OPC_MoveChild1,
/*272336*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272339*/            OPC_MoveChild0,
/*272340*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*272343*/            OPC_MoveChild0,
/*272344*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272347*/            OPC_RecordMemRef,
/*272348*/            OPC_RecordNode, // #2 = 'ld' chained node
/*272349*/            OPC_CheckFoldableChainNode,
/*272350*/            OPC_RecordChild1, // #3 = $src2
/*272351*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272353*/            OPC_CheckPredicate, 9, // Predicate_load
/*272355*/            OPC_CheckType, MVT::i64,
/*272357*/            OPC_MoveParent,
/*272358*/            OPC_CheckType, MVT::v2i64,
/*272360*/            OPC_MoveParent,
/*272361*/            OPC_MoveParent,
/*272362*/            OPC_RecordChild2, // #4 = $src3
/*272363*/            OPC_MoveChild2,
/*272364*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*272367*/            OPC_MoveParent,
/*272368*/            OPC_MoveParent,
/*272369*/            OPC_RecordChild2, // #5 = $src0
/*272370*/            OPC_CheckType, MVT::v16i8,
/*272372*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*272374*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*272377*/            OPC_EmitMergeInputChains1_2,
/*272378*/            OPC_EmitConvertToTarget, 4,
/*272380*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 37
                      // Dst: (VGF2P8AFFINEQBZ128rmbik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*272395*/          /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->272486
/*272398*/            OPC_MoveChild0,
/*272399*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272402*/            OPC_MoveChild0,
/*272403*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272406*/            OPC_RecordMemRef,
/*272407*/            OPC_RecordNode, // #1 = 'ld' chained node
/*272408*/            OPC_CheckFoldableChainNode,
/*272409*/            OPC_RecordChild1, // #2 = $src
/*272410*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272412*/            OPC_CheckPredicate, 9, // Predicate_load
/*272414*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*272416*/            OPC_SwitchType /*2 cases */, 32, MVT::v2i64,// ->272451
/*272419*/              OPC_MoveParent,
/*272420*/              OPC_CheckType, MVT::v4i32,
/*272422*/              OPC_MoveParent,
/*272423*/              OPC_MoveParent,
/*272424*/              OPC_MoveChild2,
/*272425*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272428*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272430*/              OPC_MoveParent,
/*272431*/              OPC_CheckType, MVT::v16i32,
/*272433*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*272435*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*272438*/              OPC_EmitMergeInputChains1_1,
/*272439*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86SubVBroadcast:{ *:[v16i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VBROADCASTI32X4rmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*272451*/            /*SwitchType*/ 32, MVT::v4i64,// ->272485
/*272453*/              OPC_MoveParent,
/*272454*/              OPC_CheckType, MVT::v8i32,
/*272456*/              OPC_MoveParent,
/*272457*/              OPC_MoveParent,
/*272458*/              OPC_MoveChild2,
/*272459*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272462*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272464*/              OPC_MoveParent,
/*272465*/              OPC_CheckType, MVT::v16i32,
/*272467*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*272469*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*272472*/              OPC_EmitMergeInputChains1_1,
/*272473*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X8rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86SubVBroadcast:{ *:[v16i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VBROADCASTI32X8rmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*272485*/            0, // EndSwitchType
/*272486*/          /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VPMADDWD),// ->272597
/*272489*/            OPC_Scope, 52, /*->272543*/ // 2 children in Scope
/*272491*/              OPC_RecordChild0, // #1 = $src1
/*272492*/              OPC_MoveChild1,
/*272493*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272496*/              OPC_MoveChild0,
/*272497*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272500*/              OPC_RecordMemRef,
/*272501*/              OPC_RecordNode, // #2 = 'ld' chained node
/*272502*/              OPC_CheckFoldableChainNode,
/*272503*/              OPC_RecordChild1, // #3 = $src2
/*272504*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272506*/              OPC_CheckPredicate, 9, // Predicate_load
/*272508*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*272510*/              OPC_CheckType, MVT::v8i64,
/*272512*/              OPC_MoveParent,
/*272513*/              OPC_MoveParent,
/*272514*/              OPC_MoveParent,
/*272515*/              OPC_MoveChild2,
/*272516*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272519*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272521*/              OPC_MoveParent,
/*272522*/              OPC_CheckType, MVT::v16i32,
/*272524*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*272526*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272529*/              OPC_EmitMergeInputChains1_2,
/*272530*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpmaddwd:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPMADDWDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272543*/            /*Scope*/ 52, /*->272596*/
/*272544*/              OPC_MoveChild0,
/*272545*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272548*/              OPC_MoveChild0,
/*272549*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272552*/              OPC_RecordMemRef,
/*272553*/              OPC_RecordNode, // #1 = 'ld' chained node
/*272554*/              OPC_CheckFoldableChainNode,
/*272555*/              OPC_RecordChild1, // #2 = $src2
/*272556*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272558*/              OPC_CheckPredicate, 9, // Predicate_load
/*272560*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*272562*/              OPC_CheckType, MVT::v8i64,
/*272564*/              OPC_MoveParent,
/*272565*/              OPC_MoveParent,
/*272566*/              OPC_RecordChild1, // #3 = $src1
/*272567*/              OPC_MoveParent,
/*272568*/              OPC_MoveChild2,
/*272569*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272572*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272574*/              OPC_MoveParent,
/*272575*/              OPC_CheckType, MVT::v16i32,
/*272577*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*272579*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272582*/              OPC_EmitMergeInputChains1_1,
/*272583*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpmaddwd:{ *:[v16i32] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPMADDWDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272596*/            0, /*End of Scope*/
/*272597*/          /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VSHL),// ->272708
/*272600*/            OPC_RecordChild0, // #1 = $src1
/*272601*/            OPC_MoveChild1,
/*272602*/            OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::BITCAST),// ->272655
/*272606*/              OPC_MoveChild0,
/*272607*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272610*/              OPC_RecordMemRef,
/*272611*/              OPC_RecordNode, // #2 = 'ld' chained node
/*272612*/              OPC_CheckFoldableChainNode,
/*272613*/              OPC_RecordChild1, // #3 = $src2
/*272614*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272616*/              OPC_CheckPredicate, 9, // Predicate_load
/*272618*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*272620*/              OPC_CheckType, MVT::v2i64,
/*272622*/              OPC_MoveParent,
/*272623*/              OPC_CheckType, MVT::v4i32,
/*272625*/              OPC_MoveParent,
/*272626*/              OPC_MoveParent,
/*272627*/              OPC_MoveChild2,
/*272628*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272631*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272633*/              OPC_MoveParent,
/*272634*/              OPC_CheckType, MVT::v16i32,
/*272636*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*272638*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272641*/              OPC_EmitMergeInputChains1_2,
/*272642*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSLLDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272655*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->272707
/*272658*/              OPC_RecordMemRef,
/*272659*/              OPC_RecordNode, // #2 = 'ld' chained node
/*272660*/              OPC_CheckFoldableChainNode,
/*272661*/              OPC_RecordChild1, // #3 = $src2
/*272662*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272664*/              OPC_CheckPredicate, 9, // Predicate_load
/*272666*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*272668*/              OPC_CheckType, MVT::v2i64,
/*272670*/              OPC_MoveParent,
/*272671*/              OPC_MoveParent,
/*272672*/              OPC_MoveChild2,
/*272673*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272676*/              OPC_MoveChild0,
/*272677*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272680*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272682*/              OPC_CheckType, MVT::v8i32,
/*272684*/              OPC_MoveParent,
/*272685*/              OPC_MoveParent,
/*272686*/              OPC_CheckType, MVT::v16i16,
/*272688*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*272690*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272693*/              OPC_EmitMergeInputChains1_2,
/*272694*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSLLWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272707*/            0, // EndSwitchOpcode
/*272708*/          /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VSRA),// ->272819
/*272711*/            OPC_RecordChild0, // #1 = $src1
/*272712*/            OPC_MoveChild1,
/*272713*/            OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::BITCAST),// ->272766
/*272717*/              OPC_MoveChild0,
/*272718*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272721*/              OPC_RecordMemRef,
/*272722*/              OPC_RecordNode, // #2 = 'ld' chained node
/*272723*/              OPC_CheckFoldableChainNode,
/*272724*/              OPC_RecordChild1, // #3 = $src2
/*272725*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272727*/              OPC_CheckPredicate, 9, // Predicate_load
/*272729*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*272731*/              OPC_CheckType, MVT::v2i64,
/*272733*/              OPC_MoveParent,
/*272734*/              OPC_CheckType, MVT::v4i32,
/*272736*/              OPC_MoveParent,
/*272737*/              OPC_MoveParent,
/*272738*/              OPC_MoveChild2,
/*272739*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272742*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272744*/              OPC_MoveParent,
/*272745*/              OPC_CheckType, MVT::v16i32,
/*272747*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*272749*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272752*/              OPC_EmitMergeInputChains1_2,
/*272753*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRADZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272766*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->272818
/*272769*/              OPC_RecordMemRef,
/*272770*/              OPC_RecordNode, // #2 = 'ld' chained node
/*272771*/              OPC_CheckFoldableChainNode,
/*272772*/              OPC_RecordChild1, // #3 = $src2
/*272773*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272775*/              OPC_CheckPredicate, 9, // Predicate_load
/*272777*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*272779*/              OPC_CheckType, MVT::v2i64,
/*272781*/              OPC_MoveParent,
/*272782*/              OPC_MoveParent,
/*272783*/              OPC_MoveChild2,
/*272784*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272787*/              OPC_MoveChild0,
/*272788*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272791*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272793*/              OPC_CheckType, MVT::v8i32,
/*272795*/              OPC_MoveParent,
/*272796*/              OPC_MoveParent,
/*272797*/              OPC_CheckType, MVT::v16i16,
/*272799*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*272801*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272804*/              OPC_EmitMergeInputChains1_2,
/*272805*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRAWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272818*/            0, // EndSwitchOpcode
/*272819*/          /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VSRL),// ->272930
/*272822*/            OPC_RecordChild0, // #1 = $src1
/*272823*/            OPC_MoveChild1,
/*272824*/            OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::BITCAST),// ->272877
/*272828*/              OPC_MoveChild0,
/*272829*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272832*/              OPC_RecordMemRef,
/*272833*/              OPC_RecordNode, // #2 = 'ld' chained node
/*272834*/              OPC_CheckFoldableChainNode,
/*272835*/              OPC_RecordChild1, // #3 = $src2
/*272836*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272838*/              OPC_CheckPredicate, 9, // Predicate_load
/*272840*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*272842*/              OPC_CheckType, MVT::v2i64,
/*272844*/              OPC_MoveParent,
/*272845*/              OPC_CheckType, MVT::v4i32,
/*272847*/              OPC_MoveParent,
/*272848*/              OPC_MoveParent,
/*272849*/              OPC_MoveChild2,
/*272850*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272853*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272855*/              OPC_MoveParent,
/*272856*/              OPC_CheckType, MVT::v16i32,
/*272858*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*272860*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272863*/              OPC_EmitMergeInputChains1_2,
/*272864*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPSRLDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272877*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->272929
/*272880*/              OPC_RecordMemRef,
/*272881*/              OPC_RecordNode, // #2 = 'ld' chained node
/*272882*/              OPC_CheckFoldableChainNode,
/*272883*/              OPC_RecordChild1, // #3 = $src2
/*272884*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272886*/              OPC_CheckPredicate, 9, // Predicate_load
/*272888*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*272890*/              OPC_CheckType, MVT::v2i64,
/*272892*/              OPC_MoveParent,
/*272893*/              OPC_MoveParent,
/*272894*/              OPC_MoveChild2,
/*272895*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*272898*/              OPC_MoveChild0,
/*272899*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272902*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272904*/              OPC_CheckType, MVT::v8i32,
/*272906*/              OPC_MoveParent,
/*272907*/              OPC_MoveParent,
/*272908*/              OPC_CheckType, MVT::v16i16,
/*272910*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*272912*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272915*/              OPC_EmitMergeInputChains1_2,
/*272916*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRLWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272929*/            0, // EndSwitchOpcode
/*272930*/          /*SwitchOpcode*/ 106, TARGET_VAL(ISD::ROTR),// ->273039
/*272933*/            OPC_RecordChild0, // #1 = $src1
/*272934*/            OPC_MoveChild1,
/*272935*/            OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::BITCAST),// ->272988
/*272939*/              OPC_MoveChild0,
/*272940*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272943*/              OPC_RecordMemRef,
/*272944*/              OPC_RecordNode, // #2 = 'ld' chained node
/*272945*/              OPC_CheckFoldableChainNode,
/*272946*/              OPC_RecordChild1, // #3 = $src2
/*272947*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272949*/              OPC_CheckPredicate, 9, // Predicate_load
/*272951*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*272953*/              OPC_CheckType, MVT::v8i64,
/*272955*/              OPC_MoveParent,
/*272956*/              OPC_CheckType, MVT::v16i32,
/*272958*/              OPC_MoveParent,
/*272959*/              OPC_MoveParent,
/*272960*/              OPC_MoveChild2,
/*272961*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*272964*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*272966*/              OPC_MoveParent,
/*272967*/              OPC_CheckType, MVT::v16i32,
/*272969*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*272971*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272974*/              OPC_EmitMergeInputChains1_2,
/*272975*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPRORVDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272988*/            /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VBROADCAST),// ->273038
/*272991*/              OPC_MoveChild0,
/*272992*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272995*/              OPC_RecordMemRef,
/*272996*/              OPC_RecordNode, // #2 = 'ld' chained node
/*272997*/              OPC_CheckFoldableChainNode,
/*272998*/              OPC_RecordChild1, // #3 = $src2
/*272999*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273001*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*273003*/              OPC_CheckType, MVT::i32,
/*273005*/              OPC_MoveParent,
/*273006*/              OPC_CheckType, MVT::v16i32,
/*273008*/              OPC_MoveParent,
/*273009*/              OPC_MoveParent,
/*273010*/              OPC_MoveChild2,
/*273011*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273014*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273016*/              OPC_MoveParent,
/*273017*/              OPC_CheckType, MVT::v16i32,
/*273019*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273021*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*273024*/              OPC_EmitMergeInputChains1_2,
/*273025*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPRORVDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*273038*/            0, // EndSwitchOpcode
/*273039*/          /*SwitchOpcode*/ 106, TARGET_VAL(ISD::ROTL),// ->273148
/*273042*/            OPC_RecordChild0, // #1 = $src1
/*273043*/            OPC_MoveChild1,
/*273044*/            OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::BITCAST),// ->273097
/*273048*/              OPC_MoveChild0,
/*273049*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273052*/              OPC_RecordMemRef,
/*273053*/              OPC_RecordNode, // #2 = 'ld' chained node
/*273054*/              OPC_CheckFoldableChainNode,
/*273055*/              OPC_RecordChild1, // #3 = $src2
/*273056*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273058*/              OPC_CheckPredicate, 9, // Predicate_load
/*273060*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*273062*/              OPC_CheckType, MVT::v8i64,
/*273064*/              OPC_MoveParent,
/*273065*/              OPC_CheckType, MVT::v16i32,
/*273067*/              OPC_MoveParent,
/*273068*/              OPC_MoveParent,
/*273069*/              OPC_MoveChild2,
/*273070*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273073*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273075*/              OPC_MoveParent,
/*273076*/              OPC_CheckType, MVT::v16i32,
/*273078*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273080*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*273083*/              OPC_EmitMergeInputChains1_2,
/*273084*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPROLVDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*273097*/            /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VBROADCAST),// ->273147
/*273100*/              OPC_MoveChild0,
/*273101*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273104*/              OPC_RecordMemRef,
/*273105*/              OPC_RecordNode, // #2 = 'ld' chained node
/*273106*/              OPC_CheckFoldableChainNode,
/*273107*/              OPC_RecordChild1, // #3 = $src2
/*273108*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273110*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*273112*/              OPC_CheckType, MVT::i32,
/*273114*/              OPC_MoveParent,
/*273115*/              OPC_CheckType, MVT::v16i32,
/*273117*/              OPC_MoveParent,
/*273118*/              OPC_MoveParent,
/*273119*/              OPC_MoveChild2,
/*273120*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273123*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273125*/              OPC_MoveParent,
/*273126*/              OPC_CheckType, MVT::v16i32,
/*273128*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273130*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*273133*/              OPC_EmitMergeInputChains1_2,
/*273134*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPROLVDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*273147*/            0, // EndSwitchOpcode
/*273148*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::CVTTP2SI),// ->273201
/*273151*/            OPC_MoveChild0,
/*273152*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*273155*/            OPC_MoveChild0,
/*273156*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273159*/            OPC_RecordMemRef,
/*273160*/            OPC_RecordNode, // #1 = 'ld' chained node
/*273161*/            OPC_CheckFoldableChainNode,
/*273162*/            OPC_RecordChild1, // #2 = $src
/*273163*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273165*/            OPC_CheckPredicate, 9, // Predicate_load
/*273167*/            OPC_CheckType, MVT::f32,
/*273169*/            OPC_MoveParent,
/*273170*/            OPC_CheckType, MVT::v16f32,
/*273172*/            OPC_MoveParent,
/*273173*/            OPC_MoveParent,
/*273174*/            OPC_MoveChild2,
/*273175*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273178*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273180*/            OPC_MoveParent,
/*273181*/            OPC_CheckType, MVT::v16i32,
/*273183*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273185*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*273188*/            OPC_EmitMergeInputChains1_1,
/*273189*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2si:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                      // Dst: (VCVTTPS2DQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273201*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::CVTTP2UI),// ->273254
/*273204*/            OPC_MoveChild0,
/*273205*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*273208*/            OPC_MoveChild0,
/*273209*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273212*/            OPC_RecordMemRef,
/*273213*/            OPC_RecordNode, // #1 = 'ld' chained node
/*273214*/            OPC_CheckFoldableChainNode,
/*273215*/            OPC_RecordChild1, // #2 = $src
/*273216*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273218*/            OPC_CheckPredicate, 9, // Predicate_load
/*273220*/            OPC_CheckType, MVT::f32,
/*273222*/            OPC_MoveParent,
/*273223*/            OPC_CheckType, MVT::v16f32,
/*273225*/            OPC_MoveParent,
/*273226*/            OPC_MoveParent,
/*273227*/            OPC_MoveChild2,
/*273228*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273231*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273233*/            OPC_MoveParent,
/*273234*/            OPC_CheckType, MVT::v16i32,
/*273236*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273238*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*273241*/            OPC_EmitMergeInputChains1_1,
/*273242*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2ui:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                      // Dst: (VCVTTPS2UDQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273254*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::CVTP2SI),// ->273307
/*273257*/            OPC_MoveChild0,
/*273258*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*273261*/            OPC_MoveChild0,
/*273262*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273265*/            OPC_RecordMemRef,
/*273266*/            OPC_RecordNode, // #1 = 'ld' chained node
/*273267*/            OPC_CheckFoldableChainNode,
/*273268*/            OPC_RecordChild1, // #2 = $src
/*273269*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273271*/            OPC_CheckPredicate, 9, // Predicate_load
/*273273*/            OPC_CheckType, MVT::f32,
/*273275*/            OPC_MoveParent,
/*273276*/            OPC_CheckType, MVT::v16f32,
/*273278*/            OPC_MoveParent,
/*273279*/            OPC_MoveParent,
/*273280*/            OPC_MoveChild2,
/*273281*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273284*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273286*/            OPC_MoveParent,
/*273287*/            OPC_CheckType, MVT::v16i32,
/*273289*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273291*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*273294*/            OPC_EmitMergeInputChains1_1,
/*273295*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2Int:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                      // Dst: (VCVTPS2DQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273307*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::CVTP2UI),// ->273360
/*273310*/            OPC_MoveChild0,
/*273311*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*273314*/            OPC_MoveChild0,
/*273315*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273318*/            OPC_RecordMemRef,
/*273319*/            OPC_RecordNode, // #1 = 'ld' chained node
/*273320*/            OPC_CheckFoldableChainNode,
/*273321*/            OPC_RecordChild1, // #2 = $src
/*273322*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273324*/            OPC_CheckPredicate, 9, // Predicate_load
/*273326*/            OPC_CheckType, MVT::f32,
/*273328*/            OPC_MoveParent,
/*273329*/            OPC_CheckType, MVT::v16f32,
/*273331*/            OPC_MoveParent,
/*273332*/            OPC_MoveParent,
/*273333*/            OPC_MoveChild2,
/*273334*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273337*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273339*/            OPC_MoveParent,
/*273340*/            OPC_CheckType, MVT::v16i32,
/*273342*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273344*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*273347*/            OPC_EmitMergeInputChains1_1,
/*273348*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2UInt:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                      // Dst: (VCVTPS2UDQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273360*/          /*SwitchOpcode*/ 99, TARGET_VAL(ISD::CTLZ),// ->273462
/*273363*/            OPC_MoveChild0,
/*273364*/            OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::BITCAST),// ->273414
/*273368*/              OPC_MoveChild0,
/*273369*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273372*/              OPC_RecordMemRef,
/*273373*/              OPC_RecordNode, // #1 = 'ld' chained node
/*273374*/              OPC_CheckFoldableChainNode,
/*273375*/              OPC_RecordChild1, // #2 = $src1
/*273376*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273378*/              OPC_CheckPredicate, 9, // Predicate_load
/*273380*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*273382*/              OPC_CheckType, MVT::v8i64,
/*273384*/              OPC_MoveParent,
/*273385*/              OPC_MoveParent,
/*273386*/              OPC_MoveParent,
/*273387*/              OPC_MoveChild2,
/*273388*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273391*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273393*/              OPC_MoveParent,
/*273394*/              OPC_CheckType, MVT::v16i32,
/*273396*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*273398*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*273401*/              OPC_EmitMergeInputChains1_1,
/*273402*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctlz:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPLZCNTDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*273414*/            /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VBROADCAST),// ->273461
/*273417*/              OPC_MoveChild0,
/*273418*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273421*/              OPC_RecordMemRef,
/*273422*/              OPC_RecordNode, // #1 = 'ld' chained node
/*273423*/              OPC_CheckFoldableChainNode,
/*273424*/              OPC_RecordChild1, // #2 = $src1
/*273425*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273427*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*273429*/              OPC_CheckType, MVT::i32,
/*273431*/              OPC_MoveParent,
/*273432*/              OPC_MoveParent,
/*273433*/              OPC_MoveParent,
/*273434*/              OPC_MoveChild2,
/*273435*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273438*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273440*/              OPC_MoveParent,
/*273441*/              OPC_CheckType, MVT::v16i32,
/*273443*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*273445*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*273448*/              OPC_EmitMergeInputChains1_1,
/*273449*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctlz:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPLZCNTDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*273461*/            0, // EndSwitchOpcode
/*273462*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::CONFLICT),// ->273564
/*273465*/            OPC_MoveChild0,
/*273466*/            OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::BITCAST),// ->273516
/*273470*/              OPC_MoveChild0,
/*273471*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273474*/              OPC_RecordMemRef,
/*273475*/              OPC_RecordNode, // #1 = 'ld' chained node
/*273476*/              OPC_CheckFoldableChainNode,
/*273477*/              OPC_RecordChild1, // #2 = $src1
/*273478*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273480*/              OPC_CheckPredicate, 9, // Predicate_load
/*273482*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*273484*/              OPC_CheckType, MVT::v8i64,
/*273486*/              OPC_MoveParent,
/*273487*/              OPC_MoveParent,
/*273488*/              OPC_MoveParent,
/*273489*/              OPC_MoveChild2,
/*273490*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273493*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273495*/              OPC_MoveParent,
/*273496*/              OPC_CheckType, MVT::v16i32,
/*273498*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*273500*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*273503*/              OPC_EmitMergeInputChains1_1,
/*273504*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Conflict:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPCONFLICTDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*273516*/            /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VBROADCAST),// ->273563
/*273519*/              OPC_MoveChild0,
/*273520*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273523*/              OPC_RecordMemRef,
/*273524*/              OPC_RecordNode, // #1 = 'ld' chained node
/*273525*/              OPC_CheckFoldableChainNode,
/*273526*/              OPC_RecordChild1, // #2 = $src1
/*273527*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273529*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*273531*/              OPC_CheckType, MVT::i32,
/*273533*/              OPC_MoveParent,
/*273534*/              OPC_MoveParent,
/*273535*/              OPC_MoveParent,
/*273536*/              OPC_MoveChild2,
/*273537*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273540*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273542*/              OPC_MoveParent,
/*273543*/              OPC_CheckType, MVT::v16i32,
/*273545*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*273547*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*273550*/              OPC_EmitMergeInputChains1_1,
/*273551*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Conflict:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPCONFLICTDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*273563*/            0, // EndSwitchOpcode
/*273564*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPBUSD),// ->273676
/*273567*/            OPC_RecordChild0, // #1 = $src1
/*273568*/            OPC_RecordChild1, // #2 = $src2
/*273569*/            OPC_MoveChild2,
/*273570*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->273624
/*273574*/              OPC_MoveChild0,
/*273575*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273578*/              OPC_RecordMemRef,
/*273579*/              OPC_RecordNode, // #3 = 'ld' chained node
/*273580*/              OPC_CheckFoldableChainNode,
/*273581*/              OPC_RecordChild1, // #4 = $src3
/*273582*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273584*/              OPC_CheckPredicate, 9, // Predicate_load
/*273586*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*273588*/              OPC_CheckType, MVT::v8i64,
/*273590*/              OPC_MoveParent,
/*273591*/              OPC_MoveParent,
/*273592*/              OPC_MoveParent,
/*273593*/              OPC_MoveChild2,
/*273594*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273597*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273599*/              OPC_MoveParent,
/*273600*/              OPC_CheckType, MVT::v16i32,
/*273602*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*273604*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*273607*/              OPC_EmitMergeInputChains, 1, 3, 
/*273610*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*273624*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->273675
/*273627*/              OPC_MoveChild0,
/*273628*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273631*/              OPC_RecordMemRef,
/*273632*/              OPC_RecordNode, // #3 = 'ld' chained node
/*273633*/              OPC_CheckFoldableChainNode,
/*273634*/              OPC_RecordChild1, // #4 = $src3
/*273635*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273637*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*273639*/              OPC_CheckType, MVT::i32,
/*273641*/              OPC_MoveParent,
/*273642*/              OPC_MoveParent,
/*273643*/              OPC_MoveParent,
/*273644*/              OPC_MoveChild2,
/*273645*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273648*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273650*/              OPC_MoveParent,
/*273651*/              OPC_CheckType, MVT::v16i32,
/*273653*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*273655*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*273658*/              OPC_EmitMergeInputChains, 1, 3, 
/*273661*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*273675*/            0, // EndSwitchOpcode
/*273676*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPBUSDS),// ->273788
/*273679*/            OPC_RecordChild0, // #1 = $src1
/*273680*/            OPC_RecordChild1, // #2 = $src2
/*273681*/            OPC_MoveChild2,
/*273682*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->273736
/*273686*/              OPC_MoveChild0,
/*273687*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273690*/              OPC_RecordMemRef,
/*273691*/              OPC_RecordNode, // #3 = 'ld' chained node
/*273692*/              OPC_CheckFoldableChainNode,
/*273693*/              OPC_RecordChild1, // #4 = $src3
/*273694*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273696*/              OPC_CheckPredicate, 9, // Predicate_load
/*273698*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*273700*/              OPC_CheckType, MVT::v8i64,
/*273702*/              OPC_MoveParent,
/*273703*/              OPC_MoveParent,
/*273704*/              OPC_MoveParent,
/*273705*/              OPC_MoveChild2,
/*273706*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273709*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273711*/              OPC_MoveParent,
/*273712*/              OPC_CheckType, MVT::v16i32,
/*273714*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*273716*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*273719*/              OPC_EmitMergeInputChains, 1, 3, 
/*273722*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDSZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*273736*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->273787
/*273739*/              OPC_MoveChild0,
/*273740*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273743*/              OPC_RecordMemRef,
/*273744*/              OPC_RecordNode, // #3 = 'ld' chained node
/*273745*/              OPC_CheckFoldableChainNode,
/*273746*/              OPC_RecordChild1, // #4 = $src3
/*273747*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273749*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*273751*/              OPC_CheckType, MVT::i32,
/*273753*/              OPC_MoveParent,
/*273754*/              OPC_MoveParent,
/*273755*/              OPC_MoveParent,
/*273756*/              OPC_MoveChild2,
/*273757*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273760*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273762*/              OPC_MoveParent,
/*273763*/              OPC_CheckType, MVT::v16i32,
/*273765*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*273767*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*273770*/              OPC_EmitMergeInputChains, 1, 3, 
/*273773*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPBUSDSZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*273787*/            0, // EndSwitchOpcode
/*273788*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPWSSD),// ->273900
/*273791*/            OPC_RecordChild0, // #1 = $src1
/*273792*/            OPC_RecordChild1, // #2 = $src2
/*273793*/            OPC_MoveChild2,
/*273794*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->273848
/*273798*/              OPC_MoveChild0,
/*273799*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273802*/              OPC_RecordMemRef,
/*273803*/              OPC_RecordNode, // #3 = 'ld' chained node
/*273804*/              OPC_CheckFoldableChainNode,
/*273805*/              OPC_RecordChild1, // #4 = $src3
/*273806*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273808*/              OPC_CheckPredicate, 9, // Predicate_load
/*273810*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*273812*/              OPC_CheckType, MVT::v8i64,
/*273814*/              OPC_MoveParent,
/*273815*/              OPC_MoveParent,
/*273816*/              OPC_MoveParent,
/*273817*/              OPC_MoveChild2,
/*273818*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273821*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273823*/              OPC_MoveParent,
/*273824*/              OPC_CheckType, MVT::v16i32,
/*273826*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*273828*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*273831*/              OPC_EmitMergeInputChains, 1, 3, 
/*273834*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*273848*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->273899
/*273851*/              OPC_MoveChild0,
/*273852*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273855*/              OPC_RecordMemRef,
/*273856*/              OPC_RecordNode, // #3 = 'ld' chained node
/*273857*/              OPC_CheckFoldableChainNode,
/*273858*/              OPC_RecordChild1, // #4 = $src3
/*273859*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273861*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*273863*/              OPC_CheckType, MVT::i32,
/*273865*/              OPC_MoveParent,
/*273866*/              OPC_MoveParent,
/*273867*/              OPC_MoveParent,
/*273868*/              OPC_MoveChild2,
/*273869*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273872*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273874*/              OPC_MoveParent,
/*273875*/              OPC_CheckType, MVT::v16i32,
/*273877*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*273879*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*273882*/              OPC_EmitMergeInputChains, 1, 3, 
/*273885*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*273899*/            0, // EndSwitchOpcode
/*273900*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPDPWSSDS),// ->274012
/*273903*/            OPC_RecordChild0, // #1 = $src1
/*273904*/            OPC_RecordChild1, // #2 = $src2
/*273905*/            OPC_MoveChild2,
/*273906*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->273960
/*273910*/              OPC_MoveChild0,
/*273911*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273914*/              OPC_RecordMemRef,
/*273915*/              OPC_RecordNode, // #3 = 'ld' chained node
/*273916*/              OPC_CheckFoldableChainNode,
/*273917*/              OPC_RecordChild1, // #4 = $src3
/*273918*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273920*/              OPC_CheckPredicate, 9, // Predicate_load
/*273922*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*273924*/              OPC_CheckType, MVT::v8i64,
/*273926*/              OPC_MoveParent,
/*273927*/              OPC_MoveParent,
/*273928*/              OPC_MoveParent,
/*273929*/              OPC_MoveChild2,
/*273930*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273933*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273935*/              OPC_MoveParent,
/*273936*/              OPC_CheckType, MVT::v16i32,
/*273938*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*273940*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*273943*/              OPC_EmitMergeInputChains, 1, 3, 
/*273946*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDSZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*273960*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->274011
/*273963*/              OPC_MoveChild0,
/*273964*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*273967*/              OPC_RecordMemRef,
/*273968*/              OPC_RecordNode, // #3 = 'ld' chained node
/*273969*/              OPC_CheckFoldableChainNode,
/*273970*/              OPC_RecordChild1, // #4 = $src3
/*273971*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273973*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*273975*/              OPC_CheckType, MVT::i32,
/*273977*/              OPC_MoveParent,
/*273978*/              OPC_MoveParent,
/*273979*/              OPC_MoveParent,
/*273980*/              OPC_MoveChild2,
/*273981*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*273984*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*273986*/              OPC_MoveParent,
/*273987*/              OPC_CheckType, MVT::v16i32,
/*273989*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*273991*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*273994*/              OPC_EmitMergeInputChains, 1, 3, 
/*273997*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 35
                        // Dst: (VPDPWSSDSZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*274011*/            0, // EndSwitchOpcode
/*274012*/          0, // EndSwitchOpcode
/*274013*/        /*Scope*/ 112, /*->274126*/
/*274014*/          OPC_RecordChild1, // #1 = $src3
/*274015*/          OPC_MoveChild1,
/*274016*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*274019*/          OPC_RecordChild0, // #2 = $src1
/*274020*/          OPC_MoveChild1,
/*274021*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*274024*/          OPC_MoveChild0,
/*274025*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*274028*/          OPC_RecordMemRef,
/*274029*/          OPC_RecordNode, // #3 = 'ld' chained node
/*274030*/          OPC_CheckFoldableChainNode,
/*274031*/          OPC_RecordChild1, // #4 = $src2
/*274032*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*274034*/          OPC_CheckPredicate, 9, // Predicate_load
/*274036*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*274038*/          OPC_SwitchType /*2 cases */, 41, MVT::v2i64,// ->274082
/*274041*/            OPC_MoveParent,
/*274042*/            OPC_CheckType, MVT::v4i32,
/*274044*/            OPC_MoveParent,
/*274045*/            OPC_MoveChild2,
/*274046*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274049*/            OPC_CheckType, MVT::iPTR,
/*274051*/            OPC_MoveParent,
/*274052*/            OPC_MoveParent,
/*274053*/            OPC_RecordChild2, // #5 = $src0
/*274054*/            OPC_CheckType, MVT::v16i32,
/*274056*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274058*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*274061*/            OPC_EmitMergeInputChains, 1, 3, 
/*274064*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*274067*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                      // Dst: (VINSERTI32x4Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] })):$src3))
/*274082*/          /*SwitchType*/ 41, MVT::v4i64,// ->274125
/*274084*/            OPC_MoveParent,
/*274085*/            OPC_CheckType, MVT::v8i32,
/*274087*/            OPC_MoveParent,
/*274088*/            OPC_MoveChild2,
/*274089*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274092*/            OPC_CheckType, MVT::iPTR,
/*274094*/            OPC_MoveParent,
/*274095*/            OPC_MoveParent,
/*274096*/            OPC_RecordChild2, // #5 = $src0
/*274097*/            OPC_CheckType, MVT::v16i32,
/*274099*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*274101*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*274104*/            OPC_EmitMergeInputChains, 1, 3, 
/*274107*/            OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*274110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                      // Dst: (VINSERTI32x8Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] })):$src3))
/*274125*/          0, // EndSwitchType
/*274126*/        /*Scope*/ 106|128,86/*11114*/, /*->285242*/
/*274128*/          OPC_MoveChild1,
/*274129*/          OPC_SwitchOpcode /*70 cases */, 17|128,8/*1041*/, TARGET_VAL(ISD::BITCAST),// ->275175
/*274134*/            OPC_Scope, 108, /*->274244*/ // 2 children in Scope
/*274136*/              OPC_RecordChild0, // #1 = $ins
/*274137*/              OPC_MoveChild0,
/*274138*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*274141*/              OPC_RecordChild0, // #2 = $src1
/*274142*/              OPC_MoveChild1,
/*274143*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*274146*/              OPC_RecordMemRef,
/*274147*/              OPC_RecordNode, // #3 = 'ld' chained node
/*274148*/              OPC_CheckFoldableChainNode,
/*274149*/              OPC_RecordChild1, // #4 = $src2
/*274150*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*274152*/              OPC_CheckPredicate, 9, // Predicate_load
/*274154*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*274156*/              OPC_SwitchType /*2 cases */, 41, MVT::v2i64,// ->274200
/*274159*/                OPC_MoveParent,
/*274160*/                OPC_MoveChild2,
/*274161*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274164*/                OPC_CheckType, MVT::iPTR,
/*274166*/                OPC_MoveParent,
/*274167*/                OPC_CheckType, MVT::v8i64,
/*274169*/                OPC_MoveParent,
/*274170*/                OPC_MoveParent,
/*274171*/                OPC_RecordChild2, // #5 = $src0
/*274172*/                OPC_CheckType, MVT::v16i32,
/*274174*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274176*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*274179*/                OPC_EmitMergeInputChains, 1, 3, 
/*274182*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*274185*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI32x4Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*274200*/              /*SwitchType*/ 41, MVT::v4i64,// ->274243
/*274202*/                OPC_MoveParent,
/*274203*/                OPC_MoveChild2,
/*274204*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274207*/                OPC_CheckType, MVT::iPTR,
/*274209*/                OPC_MoveParent,
/*274210*/                OPC_CheckType, MVT::v8i64,
/*274212*/                OPC_MoveParent,
/*274213*/                OPC_MoveParent,
/*274214*/                OPC_RecordChild2, // #5 = $src0
/*274215*/                OPC_CheckType, MVT::v16i32,
/*274217*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*274219*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*274222*/                OPC_EmitMergeInputChains, 1, 3, 
/*274225*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*274228*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI32x8Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*274243*/              0, // EndSwitchType
/*274244*/            /*Scope*/ 32|128,7/*928*/, /*->275174*/
/*274246*/              OPC_MoveChild0,
/*274247*/              OPC_SwitchOpcode /*9 cases */, 90, TARGET_VAL(X86ISD::VBROADCAST),// ->274341
/*274251*/                OPC_MoveChild0,
/*274252*/                OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->274300
/*274256*/                  OPC_MoveChild0,
/*274257*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*274260*/                  OPC_RecordMemRef,
/*274261*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*274262*/                  OPC_CheckFoldableChainNode,
/*274263*/                  OPC_RecordChild1, // #2 = $src
/*274264*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*274266*/                  OPC_CheckPredicate, 9, // Predicate_load
/*274268*/                  OPC_CheckType, MVT::i64,
/*274270*/                  OPC_MoveParent,
/*274271*/                  OPC_CheckType, MVT::v2i64,
/*274273*/                  OPC_MoveParent,
/*274274*/                  OPC_CheckType, MVT::v8i64,
/*274276*/                  OPC_MoveParent,
/*274277*/                  OPC_MoveParent,
/*274278*/                  OPC_RecordChild2, // #3 = $src0
/*274279*/                  OPC_CheckType, MVT::v16i32,
/*274281*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*274283*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*274286*/                  OPC_EmitMergeInputChains1_1,
/*274287*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Zmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VBroadcast:{ *:[v8i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                            // Dst: (VBROADCASTI32X2Zmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*274300*/                /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->274340
/*274303*/                  OPC_RecordMemRef,
/*274304*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*274305*/                  OPC_CheckFoldableChainNode,
/*274306*/                  OPC_RecordChild1, // #2 = $src
/*274307*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*274309*/                  OPC_CheckPredicate, 9, // Predicate_load
/*274311*/                  OPC_CheckType, MVT::i64,
/*274313*/                  OPC_MoveParent,
/*274314*/                  OPC_CheckType, MVT::v8i64,
/*274316*/                  OPC_MoveParent,
/*274317*/                  OPC_MoveParent,
/*274318*/                  OPC_RecordChild2, // #3 = $src0
/*274319*/                  OPC_CheckType, MVT::v16i32,
/*274321*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*274323*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*274326*/                  OPC_EmitMergeInputChains1_1,
/*274327*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Zmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTI32X2Zmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*274340*/                0, // EndSwitchOpcode
/*274341*/              /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::SHUF128),// ->274396
/*274344*/                OPC_RecordChild0, // #1 = $src1
/*274345*/                OPC_MoveChild1,
/*274346*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*274349*/                OPC_RecordMemRef,
/*274350*/                OPC_RecordNode, // #2 = 'ld' chained node
/*274351*/                OPC_CheckFoldableChainNode,
/*274352*/                OPC_RecordChild1, // #3 = $src2
/*274353*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*274355*/                OPC_CheckPredicate, 9, // Predicate_load
/*274357*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*274359*/                OPC_MoveParent,
/*274360*/                OPC_RecordChild2, // #4 = $src3
/*274361*/                OPC_MoveChild2,
/*274362*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274365*/                OPC_MoveParent,
/*274366*/                OPC_CheckType, MVT::v8i64,
/*274368*/                OPC_MoveParent,
/*274369*/                OPC_MoveParent,
/*274370*/                OPC_RecordChild2, // #5 = $src0
/*274371*/                OPC_CheckType, MVT::v16i32,
/*274373*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274375*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*274378*/                OPC_EmitMergeInputChains1_2,
/*274379*/                OPC_EmitConvertToTarget, 4,
/*274381*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VSHUFI32X4Zrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*274396*/              /*SwitchOpcode*/ 49|128,1/*177*/, TARGET_VAL(X86ISD::VALIGN),// ->274577
/*274400*/                OPC_RecordChild0, // #1 = $src1
/*274401*/                OPC_Scope, 89, /*->274492*/ // 2 children in Scope
/*274403*/                  OPC_MoveChild1,
/*274404*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*274407*/                  OPC_RecordMemRef,
/*274408*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*274409*/                  OPC_CheckFoldableChainNode,
/*274410*/                  OPC_RecordChild1, // #3 = $src2
/*274411*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*274413*/                  OPC_CheckPredicate, 9, // Predicate_load
/*274415*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*274417*/                  OPC_MoveParent,
/*274418*/                  OPC_RecordChild2, // #4 = $src3
/*274419*/                  OPC_MoveChild2,
/*274420*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274423*/                  OPC_MoveParent,
/*274424*/                  OPC_SwitchType /*2 cases */, 31, MVT::v8i64,// ->274458
/*274427*/                    OPC_MoveParent,
/*274428*/                    OPC_MoveParent,
/*274429*/                    OPC_RecordChild2, // #5 = $src0
/*274430*/                    OPC_CheckType, MVT::v16i32,
/*274432*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274434*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*274437*/                    OPC_EmitMergeInputChains1_2,
/*274438*/                    OPC_EmitConvertToTarget, 4,
/*274440*/                    OPC_EmitNodeXForm, 14, 11, // ValignqImm32XForm
/*274443*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 12, 
                              // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                              // Dst: (VALIGNDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*274458*/                  /*SwitchType*/ 31, MVT::v2i64,// ->274491
/*274460*/                    OPC_MoveParent,
/*274461*/                    OPC_MoveParent,
/*274462*/                    OPC_RecordChild2, // #5 = $src0
/*274463*/                    OPC_CheckType, MVT::v16i8,
/*274465*/                    OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*274467*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*274470*/                    OPC_EmitMergeInputChains1_2,
/*274471*/                    OPC_EmitConvertToTarget, 4,
/*274473*/                    OPC_EmitNodeXForm, 22, 11, // ValignqImm8XForm
/*274476*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 12, 
                              // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 34
                              // Dst: (VPALIGNRZ128rmik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm8XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*274491*/                  0, // EndSwitchType
/*274492*/                /*Scope*/ 83, /*->274576*/
/*274493*/                  OPC_RecordChild1, // #2 = $src2
/*274494*/                  OPC_RecordChild2, // #3 = $src3
/*274495*/                  OPC_MoveChild2,
/*274496*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274499*/                  OPC_MoveParent,
/*274500*/                  OPC_SwitchType /*2 cases */, 35, MVT::v2i64,// ->274538
/*274503*/                    OPC_MoveParent,
/*274504*/                    OPC_MoveParent,
/*274505*/                    OPC_MoveChild2,
/*274506*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*274509*/                    OPC_MoveChild0,
/*274510*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*274513*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*274515*/                    OPC_CheckType, MVT::v4i32,
/*274517*/                    OPC_MoveParent,
/*274518*/                    OPC_MoveParent,
/*274519*/                    OPC_CheckType, MVT::v16i8,
/*274521*/                    OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*274523*/                    OPC_EmitConvertToTarget, 3,
/*274525*/                    OPC_EmitNodeXForm, 22, 4, // ValignqImm8XForm
/*274528*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrikz), 0,
                                  MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 5, 
                              // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                              // Dst: (VPALIGNRZ128rrikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ValignqImm8XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*274538*/                  /*SwitchType*/ 35, MVT::v4i32,// ->274575
/*274540*/                    OPC_MoveParent,
/*274541*/                    OPC_MoveParent,
/*274542*/                    OPC_MoveChild2,
/*274543*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*274546*/                    OPC_MoveChild0,
/*274547*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*274550*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*274552*/                    OPC_CheckType, MVT::v4i32,
/*274554*/                    OPC_MoveParent,
/*274555*/                    OPC_MoveParent,
/*274556*/                    OPC_CheckType, MVT::v16i8,
/*274558*/                    OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*274560*/                    OPC_EmitConvertToTarget, 3,
/*274562*/                    OPC_EmitNodeXForm, 21, 4, // ValigndImm8XForm
/*274565*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrikz), 0,
                                  MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 5, 
                              // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                              // Dst: (VPALIGNRZ128rrikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ValigndImm8XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*274575*/                  0, // EndSwitchType
/*274576*/                0, /*End of Scope*/
/*274577*/              /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(ISD::LOAD),// ->274771
/*274581*/                OPC_RecordMemRef,
/*274582*/                OPC_RecordNode, // #1 = 'ld' chained node
/*274583*/                OPC_CheckFoldableChainNode,
/*274584*/                OPC_RecordChild1, // #2 = $src
/*274585*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*274587*/                OPC_CheckPredicate, 9, // Predicate_load
/*274589*/                OPC_Scope, 33, /*->274624*/ // 4 children in Scope
/*274591*/                  OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*274593*/                  OPC_CheckType, MVT::v8i64,
/*274595*/                  OPC_MoveParent,
/*274596*/                  OPC_MoveParent,
/*274597*/                  OPC_MoveChild2,
/*274598*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*274601*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*274603*/                  OPC_MoveParent,
/*274604*/                  OPC_CheckType, MVT::v16i32,
/*274606*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274608*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*274611*/                  OPC_EmitMergeInputChains1_1,
/*274612*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VMOVDQA32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*274624*/                /*Scope*/ 33, /*->274658*/
/*274625*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*274627*/                  OPC_CheckType, MVT::v8i64,
/*274629*/                  OPC_MoveParent,
/*274630*/                  OPC_MoveParent,
/*274631*/                  OPC_MoveChild2,
/*274632*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*274635*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*274637*/                  OPC_MoveParent,
/*274638*/                  OPC_CheckType, MVT::v16i32,
/*274640*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274642*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*274645*/                  OPC_EmitMergeInputChains1_1,
/*274646*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VMOVDQU32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*274658*/                /*Scope*/ 28, /*->274687*/
/*274659*/                  OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*274661*/                  OPC_CheckType, MVT::v8i64,
/*274663*/                  OPC_MoveParent,
/*274664*/                  OPC_MoveParent,
/*274665*/                  OPC_RecordChild2, // #3 = $src0
/*274666*/                  OPC_CheckType, MVT::v16i32,
/*274668*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274670*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*274673*/                  OPC_EmitMergeInputChains1_1,
/*274674*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VMOVDQA32Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*274687*/                /*Scope*/ 82, /*->274770*/
/*274688*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*274690*/                  OPC_SwitchType /*3 cases */, 24, MVT::v2i64,// ->274717
/*274693*/                    OPC_MoveParent,
/*274694*/                    OPC_MoveParent,
/*274695*/                    OPC_RecordChild2, // #3 = $src0
/*274696*/                    OPC_CheckType, MVT::v16i8,
/*274698*/                    OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*274700*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*274703*/                    OPC_EmitMergeInputChains1_1,
/*274704*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v16i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                              // Dst: (VMOVDQU8Z128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*274717*/                  /*SwitchType*/ 24, MVT::v4i64,// ->274743
/*274719*/                    OPC_MoveParent,
/*274720*/                    OPC_MoveParent,
/*274721*/                    OPC_RecordChild2, // #3 = $src0
/*274722*/                    OPC_CheckType, MVT::v16i16,
/*274724*/                    OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*274726*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*274729*/                    OPC_EmitMergeInputChains1_1,
/*274730*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v16i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                              // Dst: (VMOVDQU16Z256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*274743*/                  /*SwitchType*/ 24, MVT::v8i64,// ->274769
/*274745*/                    OPC_MoveParent,
/*274746*/                    OPC_MoveParent,
/*274747*/                    OPC_RecordChild2, // #3 = $src0
/*274748*/                    OPC_CheckType, MVT::v16i32,
/*274750*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274752*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*274755*/                    OPC_EmitMergeInputChains1_1,
/*274756*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                              // Dst: (VMOVDQU32Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*274769*/                  0, // EndSwitchType
/*274770*/                0, /*End of Scope*/
/*274771*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->274848
/*274774*/                OPC_MoveChild0,
/*274775*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*274778*/                OPC_RecordMemRef,
/*274779*/                OPC_RecordNode, // #1 = 'ld' chained node
/*274780*/                OPC_CheckFoldableChainNode,
/*274781*/                OPC_RecordChild1, // #2 = $src
/*274782*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*274784*/                OPC_CheckPredicate, 9, // Predicate_load
/*274786*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*274788*/                OPC_SwitchType /*2 cases */, 27, MVT::v2i64,// ->274818
/*274791*/                  OPC_MoveParent,
/*274792*/                  OPC_CheckType, MVT::v8i64,
/*274794*/                  OPC_MoveParent,
/*274795*/                  OPC_MoveParent,
/*274796*/                  OPC_RecordChild2, // #3 = $src0
/*274797*/                  OPC_CheckType, MVT::v16i32,
/*274799*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274801*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*274804*/                  OPC_EmitMergeInputChains1_1,
/*274805*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86SubVBroadcast:{ *:[v8i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTI32X4rmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*274818*/                /*SwitchType*/ 27, MVT::v4i64,// ->274847
/*274820*/                  OPC_MoveParent,
/*274821*/                  OPC_CheckType, MVT::v8i64,
/*274823*/                  OPC_MoveParent,
/*274824*/                  OPC_MoveParent,
/*274825*/                  OPC_RecordChild2, // #3 = $src0
/*274826*/                  OPC_CheckType, MVT::v16i32,
/*274828*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*274830*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*274833*/                  OPC_EmitMergeInputChains1_1,
/*274834*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X8rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86SubVBroadcast:{ *:[v8i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTI32X8rmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*274847*/                0, // EndSwitchType
/*274848*/              /*SwitchOpcode*/ 90, TARGET_VAL(ISD::AND),// ->274941
/*274851*/                OPC_Scope, 43, /*->274896*/ // 2 children in Scope
/*274853*/                  OPC_RecordChild0, // #1 = $src1
/*274854*/                  OPC_MoveChild1,
/*274855*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*274858*/                  OPC_RecordMemRef,
/*274859*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*274860*/                  OPC_CheckFoldableChainNode,
/*274861*/                  OPC_RecordChild1, // #3 = $src2
/*274862*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*274864*/                  OPC_CheckPredicate, 9, // Predicate_load
/*274866*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*274868*/                  OPC_MoveParent,
/*274869*/                  OPC_CheckType, MVT::v8i64,
/*274871*/                  OPC_MoveParent,
/*274872*/                  OPC_MoveParent,
/*274873*/                  OPC_RecordChild2, // #4 = $src0
/*274874*/                  OPC_CheckType, MVT::v16i32,
/*274876*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274878*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*274881*/                  OPC_EmitMergeInputChains1_2,
/*274882*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*274896*/                /*Scope*/ 43, /*->274940*/
/*274897*/                  OPC_MoveChild0,
/*274898*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*274901*/                  OPC_RecordMemRef,
/*274902*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*274903*/                  OPC_CheckFoldableChainNode,
/*274904*/                  OPC_RecordChild1, // #2 = $src2
/*274905*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*274907*/                  OPC_CheckPredicate, 9, // Predicate_load
/*274909*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*274911*/                  OPC_MoveParent,
/*274912*/                  OPC_RecordChild1, // #3 = $src1
/*274913*/                  OPC_CheckType, MVT::v8i64,
/*274915*/                  OPC_MoveParent,
/*274916*/                  OPC_MoveParent,
/*274917*/                  OPC_RecordChild2, // #4 = $src0
/*274918*/                  OPC_CheckType, MVT::v16i32,
/*274920*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274922*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*274925*/                  OPC_EmitMergeInputChains1_1,
/*274926*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*274940*/                0, /*End of Scope*/
/*274941*/              /*SwitchOpcode*/ 90, TARGET_VAL(ISD::OR),// ->275034
/*274944*/                OPC_Scope, 43, /*->274989*/ // 2 children in Scope
/*274946*/                  OPC_RecordChild0, // #1 = $src1
/*274947*/                  OPC_MoveChild1,
/*274948*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*274951*/                  OPC_RecordMemRef,
/*274952*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*274953*/                  OPC_CheckFoldableChainNode,
/*274954*/                  OPC_RecordChild1, // #3 = $src2
/*274955*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*274957*/                  OPC_CheckPredicate, 9, // Predicate_load
/*274959*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*274961*/                  OPC_MoveParent,
/*274962*/                  OPC_CheckType, MVT::v8i64,
/*274964*/                  OPC_MoveParent,
/*274965*/                  OPC_MoveParent,
/*274966*/                  OPC_RecordChild2, // #4 = $src0
/*274967*/                  OPC_CheckType, MVT::v16i32,
/*274969*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274971*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*274974*/                  OPC_EmitMergeInputChains1_2,
/*274975*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*274989*/                /*Scope*/ 43, /*->275033*/
/*274990*/                  OPC_MoveChild0,
/*274991*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*274994*/                  OPC_RecordMemRef,
/*274995*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*274996*/                  OPC_CheckFoldableChainNode,
/*274997*/                  OPC_RecordChild1, // #2 = $src2
/*274998*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275000*/                  OPC_CheckPredicate, 9, // Predicate_load
/*275002*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*275004*/                  OPC_MoveParent,
/*275005*/                  OPC_RecordChild1, // #3 = $src1
/*275006*/                  OPC_CheckType, MVT::v8i64,
/*275008*/                  OPC_MoveParent,
/*275009*/                  OPC_MoveParent,
/*275010*/                  OPC_RecordChild2, // #4 = $src0
/*275011*/                  OPC_CheckType, MVT::v16i32,
/*275013*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275015*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*275018*/                  OPC_EmitMergeInputChains1_1,
/*275019*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*275033*/                0, /*End of Scope*/
/*275034*/              /*SwitchOpcode*/ 90, TARGET_VAL(ISD::XOR),// ->275127
/*275037*/                OPC_Scope, 43, /*->275082*/ // 2 children in Scope
/*275039*/                  OPC_RecordChild0, // #1 = $src1
/*275040*/                  OPC_MoveChild1,
/*275041*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275044*/                  OPC_RecordMemRef,
/*275045*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*275046*/                  OPC_CheckFoldableChainNode,
/*275047*/                  OPC_RecordChild1, // #3 = $src2
/*275048*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275050*/                  OPC_CheckPredicate, 9, // Predicate_load
/*275052*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*275054*/                  OPC_MoveParent,
/*275055*/                  OPC_CheckType, MVT::v8i64,
/*275057*/                  OPC_MoveParent,
/*275058*/                  OPC_MoveParent,
/*275059*/                  OPC_RecordChild2, // #4 = $src0
/*275060*/                  OPC_CheckType, MVT::v16i32,
/*275062*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275064*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*275067*/                  OPC_EmitMergeInputChains1_2,
/*275068*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPXORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*275082*/                /*Scope*/ 43, /*->275126*/
/*275083*/                  OPC_MoveChild0,
/*275084*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275087*/                  OPC_RecordMemRef,
/*275088*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*275089*/                  OPC_CheckFoldableChainNode,
/*275090*/                  OPC_RecordChild1, // #2 = $src2
/*275091*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275093*/                  OPC_CheckPredicate, 9, // Predicate_load
/*275095*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*275097*/                  OPC_MoveParent,
/*275098*/                  OPC_RecordChild1, // #3 = $src1
/*275099*/                  OPC_CheckType, MVT::v8i64,
/*275101*/                  OPC_MoveParent,
/*275102*/                  OPC_MoveParent,
/*275103*/                  OPC_RecordChild2, // #4 = $src0
/*275104*/                  OPC_CheckType, MVT::v16i32,
/*275106*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275108*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*275111*/                  OPC_EmitMergeInputChains1_1,
/*275112*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPXORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*275126*/                0, /*End of Scope*/
/*275127*/              /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::ANDNP),// ->275173
/*275130*/                OPC_RecordChild0, // #1 = $src1
/*275131*/                OPC_MoveChild1,
/*275132*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275135*/                OPC_RecordMemRef,
/*275136*/                OPC_RecordNode, // #2 = 'ld' chained node
/*275137*/                OPC_CheckFoldableChainNode,
/*275138*/                OPC_RecordChild1, // #3 = $src2
/*275139*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275141*/                OPC_CheckPredicate, 9, // Predicate_load
/*275143*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*275145*/                OPC_MoveParent,
/*275146*/                OPC_CheckType, MVT::v8i64,
/*275148*/                OPC_MoveParent,
/*275149*/                OPC_MoveParent,
/*275150*/                OPC_RecordChild2, // #4 = $src0
/*275151*/                OPC_CheckType, MVT::v16i32,
/*275153*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275155*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*275158*/                OPC_EmitMergeInputChains1_2,
/*275159*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPANDNDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*275173*/              0, // EndSwitchOpcode
/*275174*/            0, /*End of Scope*/
/*275175*/          /*SwitchOpcode*/ 97, TARGET_VAL(X86ISD::MULTISHIFT),// ->275275
/*275178*/            OPC_RecordChild0, // #1 = $src1
/*275179*/            OPC_CheckChild0Type, MVT::v16i8,
/*275181*/            OPC_MoveChild1,
/*275182*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*275185*/            OPC_MoveChild0,
/*275186*/            OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(X86ISD::VBROADCAST),// ->275233
/*275190*/              OPC_MoveChild0,
/*275191*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275194*/              OPC_RecordMemRef,
/*275195*/              OPC_RecordNode, // #2 = 'ld' chained node
/*275196*/              OPC_CheckFoldableChainNode,
/*275197*/              OPC_RecordChild1, // #3 = $src2
/*275198*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275200*/              OPC_CheckPredicate, 9, // Predicate_load
/*275202*/              OPC_CheckType, MVT::i64,
/*275204*/              OPC_MoveParent,
/*275205*/              OPC_CheckType, MVT::v2i64,
/*275207*/              OPC_MoveParent,
/*275208*/              OPC_MoveParent,
/*275209*/              OPC_MoveParent,
/*275210*/              OPC_RecordChild2, // #4 = $src0
/*275211*/              OPC_CheckType, MVT::v16i8,
/*275213*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*275215*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*275218*/              OPC_EmitMergeInputChains1_2,
/*275219*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86multishift:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v16i8] }:$src0) - Complexity = 34
                        // Dst: (VPMULTISHIFTQBZ128rmbk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*275233*/            /*SwitchOpcode*/ 38, TARGET_VAL(ISD::LOAD),// ->275274
/*275236*/              OPC_RecordMemRef,
/*275237*/              OPC_RecordNode, // #2 = 'ld' chained node
/*275238*/              OPC_CheckFoldableChainNode,
/*275239*/              OPC_RecordChild1, // #3 = $src2
/*275240*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275242*/              OPC_CheckPredicate, 9, // Predicate_load
/*275244*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*275246*/              OPC_CheckType, MVT::v2i64,
/*275248*/              OPC_MoveParent,
/*275249*/              OPC_MoveParent,
/*275250*/              OPC_MoveParent,
/*275251*/              OPC_RecordChild2, // #4 = $src0
/*275252*/              OPC_CheckType, MVT::v16i8,
/*275254*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*275256*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*275259*/              OPC_EmitMergeInputChains1_2,
/*275260*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86multishift:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                        // Dst: (VPMULTISHIFTQBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*275274*/            0, // EndSwitchOpcode
/*275275*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(X86ISD::VSRLI),// ->275424
/*275279*/            OPC_MoveChild0,
/*275280*/            OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::BITCAST),// ->275372
/*275284*/              OPC_MoveChild0,
/*275285*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275288*/              OPC_RecordMemRef,
/*275289*/              OPC_RecordNode, // #1 = 'ld' chained node
/*275290*/              OPC_CheckFoldableChainNode,
/*275291*/              OPC_RecordChild1, // #2 = $src1
/*275292*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275294*/              OPC_CheckPredicate, 9, // Predicate_load
/*275296*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*275298*/              OPC_SwitchType /*2 cases */, 34, MVT::v8i64,// ->275335
/*275301*/                OPC_MoveParent,
/*275302*/                OPC_MoveParent,
/*275303*/                OPC_RecordChild1, // #3 = $src2
/*275304*/                OPC_MoveChild1,
/*275305*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275308*/                OPC_MoveParent,
/*275309*/                OPC_MoveParent,
/*275310*/                OPC_RecordChild2, // #4 = $src0
/*275311*/                OPC_CheckType, MVT::v16i32,
/*275313*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275315*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275318*/                OPC_EmitMergeInputChains1_1,
/*275319*/                OPC_EmitConvertToTarget, 3,
/*275321*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VPSRLDZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275335*/              /*SwitchType*/ 34, MVT::v4i64,// ->275371
/*275337*/                OPC_MoveParent,
/*275338*/                OPC_MoveParent,
/*275339*/                OPC_RecordChild1, // #3 = $src2
/*275340*/                OPC_MoveChild1,
/*275341*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275344*/                OPC_MoveParent,
/*275345*/                OPC_MoveParent,
/*275346*/                OPC_RecordChild2, // #4 = $src0
/*275347*/                OPC_CheckType, MVT::v16i16,
/*275349*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275351*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275354*/                OPC_EmitMergeInputChains1_1,
/*275355*/                OPC_EmitConvertToTarget, 3,
/*275357*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 34
                          // Dst: (VPSRLWZ256mik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275371*/              0, // EndSwitchType
/*275372*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->275423
/*275375*/              OPC_MoveChild0,
/*275376*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275379*/              OPC_RecordMemRef,
/*275380*/              OPC_RecordNode, // #1 = 'ld' chained node
/*275381*/              OPC_CheckFoldableChainNode,
/*275382*/              OPC_RecordChild1, // #2 = $src1
/*275383*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275385*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*275387*/              OPC_CheckType, MVT::i32,
/*275389*/              OPC_MoveParent,
/*275390*/              OPC_MoveParent,
/*275391*/              OPC_RecordChild1, // #3 = $src2
/*275392*/              OPC_MoveChild1,
/*275393*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275396*/              OPC_MoveParent,
/*275397*/              OPC_MoveParent,
/*275398*/              OPC_RecordChild2, // #4 = $src0
/*275399*/              OPC_CheckType, MVT::v16i32,
/*275401*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275403*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275406*/              OPC_EmitMergeInputChains1_1,
/*275407*/              OPC_EmitConvertToTarget, 3,
/*275409*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VPSRLDZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275423*/            0, // EndSwitchOpcode
/*275424*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(X86ISD::VSHLI),// ->275573
/*275428*/            OPC_MoveChild0,
/*275429*/            OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::BITCAST),// ->275521
/*275433*/              OPC_MoveChild0,
/*275434*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275437*/              OPC_RecordMemRef,
/*275438*/              OPC_RecordNode, // #1 = 'ld' chained node
/*275439*/              OPC_CheckFoldableChainNode,
/*275440*/              OPC_RecordChild1, // #2 = $src1
/*275441*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275443*/              OPC_CheckPredicate, 9, // Predicate_load
/*275445*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*275447*/              OPC_SwitchType /*2 cases */, 34, MVT::v8i64,// ->275484
/*275450*/                OPC_MoveParent,
/*275451*/                OPC_MoveParent,
/*275452*/                OPC_RecordChild1, // #3 = $src2
/*275453*/                OPC_MoveChild1,
/*275454*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275457*/                OPC_MoveParent,
/*275458*/                OPC_MoveParent,
/*275459*/                OPC_RecordChild2, // #4 = $src0
/*275460*/                OPC_CheckType, MVT::v16i32,
/*275462*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275464*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275467*/                OPC_EmitMergeInputChains1_1,
/*275468*/                OPC_EmitConvertToTarget, 3,
/*275470*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VPSLLDZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275484*/              /*SwitchType*/ 34, MVT::v4i64,// ->275520
/*275486*/                OPC_MoveParent,
/*275487*/                OPC_MoveParent,
/*275488*/                OPC_RecordChild1, // #3 = $src2
/*275489*/                OPC_MoveChild1,
/*275490*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275493*/                OPC_MoveParent,
/*275494*/                OPC_MoveParent,
/*275495*/                OPC_RecordChild2, // #4 = $src0
/*275496*/                OPC_CheckType, MVT::v16i16,
/*275498*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275500*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275503*/                OPC_EmitMergeInputChains1_1,
/*275504*/                OPC_EmitConvertToTarget, 3,
/*275506*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 34
                          // Dst: (VPSLLWZ256mik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275520*/              0, // EndSwitchType
/*275521*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->275572
/*275524*/              OPC_MoveChild0,
/*275525*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275528*/              OPC_RecordMemRef,
/*275529*/              OPC_RecordNode, // #1 = 'ld' chained node
/*275530*/              OPC_CheckFoldableChainNode,
/*275531*/              OPC_RecordChild1, // #2 = $src1
/*275532*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275534*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*275536*/              OPC_CheckType, MVT::i32,
/*275538*/              OPC_MoveParent,
/*275539*/              OPC_MoveParent,
/*275540*/              OPC_RecordChild1, // #3 = $src2
/*275541*/              OPC_MoveChild1,
/*275542*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275545*/              OPC_MoveParent,
/*275546*/              OPC_MoveParent,
/*275547*/              OPC_RecordChild2, // #4 = $src0
/*275548*/              OPC_CheckType, MVT::v16i32,
/*275550*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275552*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275555*/              OPC_EmitMergeInputChains1_1,
/*275556*/              OPC_EmitConvertToTarget, 3,
/*275558*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VPSLLDZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275572*/            0, // EndSwitchOpcode
/*275573*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(X86ISD::VSRAI),// ->275722
/*275577*/            OPC_MoveChild0,
/*275578*/            OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::BITCAST),// ->275670
/*275582*/              OPC_MoveChild0,
/*275583*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275586*/              OPC_RecordMemRef,
/*275587*/              OPC_RecordNode, // #1 = 'ld' chained node
/*275588*/              OPC_CheckFoldableChainNode,
/*275589*/              OPC_RecordChild1, // #2 = $src1
/*275590*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275592*/              OPC_CheckPredicate, 9, // Predicate_load
/*275594*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*275596*/              OPC_SwitchType /*2 cases */, 34, MVT::v8i64,// ->275633
/*275599*/                OPC_MoveParent,
/*275600*/                OPC_MoveParent,
/*275601*/                OPC_RecordChild1, // #3 = $src2
/*275602*/                OPC_MoveChild1,
/*275603*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275606*/                OPC_MoveParent,
/*275607*/                OPC_MoveParent,
/*275608*/                OPC_RecordChild2, // #4 = $src0
/*275609*/                OPC_CheckType, MVT::v16i32,
/*275611*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275613*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275616*/                OPC_EmitMergeInputChains1_1,
/*275617*/                OPC_EmitConvertToTarget, 3,
/*275619*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VPSRADZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275633*/              /*SwitchType*/ 34, MVT::v4i64,// ->275669
/*275635*/                OPC_MoveParent,
/*275636*/                OPC_MoveParent,
/*275637*/                OPC_RecordChild1, // #3 = $src2
/*275638*/                OPC_MoveChild1,
/*275639*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275642*/                OPC_MoveParent,
/*275643*/                OPC_MoveParent,
/*275644*/                OPC_RecordChild2, // #4 = $src0
/*275645*/                OPC_CheckType, MVT::v16i16,
/*275647*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275649*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275652*/                OPC_EmitMergeInputChains1_1,
/*275653*/                OPC_EmitConvertToTarget, 3,
/*275655*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 34
                          // Dst: (VPSRAWZ256mik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275669*/              0, // EndSwitchType
/*275670*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->275721
/*275673*/              OPC_MoveChild0,
/*275674*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275677*/              OPC_RecordMemRef,
/*275678*/              OPC_RecordNode, // #1 = 'ld' chained node
/*275679*/              OPC_CheckFoldableChainNode,
/*275680*/              OPC_RecordChild1, // #2 = $src1
/*275681*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275683*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*275685*/              OPC_CheckType, MVT::i32,
/*275687*/              OPC_MoveParent,
/*275688*/              OPC_MoveParent,
/*275689*/              OPC_RecordChild1, // #3 = $src2
/*275690*/              OPC_MoveChild1,
/*275691*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275694*/              OPC_MoveParent,
/*275695*/              OPC_MoveParent,
/*275696*/              OPC_RecordChild2, // #4 = $src0
/*275697*/              OPC_CheckType, MVT::v16i32,
/*275699*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275701*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275704*/              OPC_EmitMergeInputChains1_1,
/*275705*/              OPC_EmitConvertToTarget, 3,
/*275707*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VPSRADZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275721*/            0, // EndSwitchOpcode
/*275722*/          /*SwitchOpcode*/ 107, TARGET_VAL(X86ISD::VROTRI),// ->275832
/*275725*/            OPC_MoveChild0,
/*275726*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->275780
/*275730*/              OPC_MoveChild0,
/*275731*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275734*/              OPC_RecordMemRef,
/*275735*/              OPC_RecordNode, // #1 = 'ld' chained node
/*275736*/              OPC_CheckFoldableChainNode,
/*275737*/              OPC_RecordChild1, // #2 = $src1
/*275738*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275740*/              OPC_CheckPredicate, 9, // Predicate_load
/*275742*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*275744*/              OPC_CheckType, MVT::v8i64,
/*275746*/              OPC_MoveParent,
/*275747*/              OPC_MoveParent,
/*275748*/              OPC_RecordChild1, // #3 = $src2
/*275749*/              OPC_MoveChild1,
/*275750*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275753*/              OPC_MoveParent,
/*275754*/              OPC_MoveParent,
/*275755*/              OPC_RecordChild2, // #4 = $src0
/*275756*/              OPC_CheckType, MVT::v16i32,
/*275758*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275760*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275763*/              OPC_EmitMergeInputChains1_1,
/*275764*/              OPC_EmitConvertToTarget, 3,
/*275766*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VPRORDZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275780*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->275831
/*275783*/              OPC_MoveChild0,
/*275784*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275787*/              OPC_RecordMemRef,
/*275788*/              OPC_RecordNode, // #1 = 'ld' chained node
/*275789*/              OPC_CheckFoldableChainNode,
/*275790*/              OPC_RecordChild1, // #2 = $src1
/*275791*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275793*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*275795*/              OPC_CheckType, MVT::i32,
/*275797*/              OPC_MoveParent,
/*275798*/              OPC_MoveParent,
/*275799*/              OPC_RecordChild1, // #3 = $src2
/*275800*/              OPC_MoveChild1,
/*275801*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275804*/              OPC_MoveParent,
/*275805*/              OPC_MoveParent,
/*275806*/              OPC_RecordChild2, // #4 = $src0
/*275807*/              OPC_CheckType, MVT::v16i32,
/*275809*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275811*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275814*/              OPC_EmitMergeInputChains1_1,
/*275815*/              OPC_EmitConvertToTarget, 3,
/*275817*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VPRORDZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275831*/            0, // EndSwitchOpcode
/*275832*/          /*SwitchOpcode*/ 107, TARGET_VAL(X86ISD::VROTLI),// ->275942
/*275835*/            OPC_MoveChild0,
/*275836*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->275890
/*275840*/              OPC_MoveChild0,
/*275841*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275844*/              OPC_RecordMemRef,
/*275845*/              OPC_RecordNode, // #1 = 'ld' chained node
/*275846*/              OPC_CheckFoldableChainNode,
/*275847*/              OPC_RecordChild1, // #2 = $src1
/*275848*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275850*/              OPC_CheckPredicate, 9, // Predicate_load
/*275852*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*275854*/              OPC_CheckType, MVT::v8i64,
/*275856*/              OPC_MoveParent,
/*275857*/              OPC_MoveParent,
/*275858*/              OPC_RecordChild1, // #3 = $src2
/*275859*/              OPC_MoveChild1,
/*275860*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275863*/              OPC_MoveParent,
/*275864*/              OPC_MoveParent,
/*275865*/              OPC_RecordChild2, // #4 = $src0
/*275866*/              OPC_CheckType, MVT::v16i32,
/*275868*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275870*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275873*/              OPC_EmitMergeInputChains1_1,
/*275874*/              OPC_EmitConvertToTarget, 3,
/*275876*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VPROLDZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275890*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->275941
/*275893*/              OPC_MoveChild0,
/*275894*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275897*/              OPC_RecordMemRef,
/*275898*/              OPC_RecordNode, // #1 = 'ld' chained node
/*275899*/              OPC_CheckFoldableChainNode,
/*275900*/              OPC_RecordChild1, // #2 = $src1
/*275901*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275903*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*275905*/              OPC_CheckType, MVT::i32,
/*275907*/              OPC_MoveParent,
/*275908*/              OPC_MoveParent,
/*275909*/              OPC_RecordChild1, // #3 = $src2
/*275910*/              OPC_MoveChild1,
/*275911*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275914*/              OPC_MoveParent,
/*275915*/              OPC_MoveParent,
/*275916*/              OPC_RecordChild2, // #4 = $src0
/*275917*/              OPC_CheckType, MVT::v16i32,
/*275919*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275921*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275924*/              OPC_EmitMergeInputChains1_1,
/*275925*/              OPC_EmitConvertToTarget, 3,
/*275927*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VPROLDZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*275941*/            0, // EndSwitchOpcode
/*275942*/          /*SwitchOpcode*/ 107, TARGET_VAL(X86ISD::PSHUFD),// ->276052
/*275945*/            OPC_MoveChild0,
/*275946*/            OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::BITCAST),// ->276000
/*275950*/              OPC_MoveChild0,
/*275951*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*275954*/              OPC_RecordMemRef,
/*275955*/              OPC_RecordNode, // #1 = 'ld' chained node
/*275956*/              OPC_CheckFoldableChainNode,
/*275957*/              OPC_RecordChild1, // #2 = $src1
/*275958*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*275960*/              OPC_CheckPredicate, 9, // Predicate_load
/*275962*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*275964*/              OPC_CheckType, MVT::v8i64,
/*275966*/              OPC_MoveParent,
/*275967*/              OPC_MoveParent,
/*275968*/              OPC_RecordChild1, // #3 = $src2
/*275969*/              OPC_MoveChild1,
/*275970*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275973*/              OPC_MoveParent,
/*275974*/              OPC_MoveParent,
/*275975*/              OPC_RecordChild2, // #4 = $src0
/*275976*/              OPC_CheckType, MVT::v16i32,
/*275978*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275980*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*275983*/              OPC_EmitMergeInputChains1_1,
/*275984*/              OPC_EmitConvertToTarget, 3,
/*275986*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VPSHUFDZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*276000*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->276051
/*276003*/              OPC_MoveChild0,
/*276004*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276007*/              OPC_RecordMemRef,
/*276008*/              OPC_RecordNode, // #1 = 'ld' chained node
/*276009*/              OPC_CheckFoldableChainNode,
/*276010*/              OPC_RecordChild1, // #2 = $src1
/*276011*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276013*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*276015*/              OPC_CheckType, MVT::i32,
/*276017*/              OPC_MoveParent,
/*276018*/              OPC_MoveParent,
/*276019*/              OPC_RecordChild1, // #3 = $src2
/*276020*/              OPC_MoveChild1,
/*276021*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276024*/              OPC_MoveParent,
/*276025*/              OPC_MoveParent,
/*276026*/              OPC_RecordChild2, // #4 = $src0
/*276027*/              OPC_CheckType, MVT::v16i32,
/*276029*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276031*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*276034*/              OPC_EmitMergeInputChains1_1,
/*276035*/              OPC_EmitConvertToTarget, 3,
/*276037*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VPSHUFDZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*276051*/            0, // EndSwitchOpcode
/*276052*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::PSHUFHW),// ->276109
/*276055*/            OPC_MoveChild0,
/*276056*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*276059*/            OPC_MoveChild0,
/*276060*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276063*/            OPC_RecordMemRef,
/*276064*/            OPC_RecordNode, // #1 = 'ld' chained node
/*276065*/            OPC_CheckFoldableChainNode,
/*276066*/            OPC_RecordChild1, // #2 = $src1
/*276067*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276069*/            OPC_CheckPredicate, 9, // Predicate_load
/*276071*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*276073*/            OPC_CheckType, MVT::v4i64,
/*276075*/            OPC_MoveParent,
/*276076*/            OPC_MoveParent,
/*276077*/            OPC_RecordChild1, // #3 = $src2
/*276078*/            OPC_MoveChild1,
/*276079*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276082*/            OPC_MoveParent,
/*276083*/            OPC_MoveParent,
/*276084*/            OPC_RecordChild2, // #4 = $src0
/*276085*/            OPC_CheckType, MVT::v16i16,
/*276087*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276089*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*276092*/            OPC_EmitMergeInputChains1_1,
/*276093*/            OPC_EmitConvertToTarget, 3,
/*276095*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufhw:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 34
                      // Dst: (VPSHUFHWZ256mik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*276109*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::PSHUFLW),// ->276166
/*276112*/            OPC_MoveChild0,
/*276113*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*276116*/            OPC_MoveChild0,
/*276117*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276120*/            OPC_RecordMemRef,
/*276121*/            OPC_RecordNode, // #1 = 'ld' chained node
/*276122*/            OPC_CheckFoldableChainNode,
/*276123*/            OPC_RecordChild1, // #2 = $src1
/*276124*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276126*/            OPC_CheckPredicate, 9, // Predicate_load
/*276128*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*276130*/            OPC_CheckType, MVT::v4i64,
/*276132*/            OPC_MoveParent,
/*276133*/            OPC_MoveParent,
/*276134*/            OPC_RecordChild1, // #3 = $src2
/*276135*/            OPC_MoveChild1,
/*276136*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276139*/            OPC_MoveParent,
/*276140*/            OPC_MoveParent,
/*276141*/            OPC_RecordChild2, // #4 = $src0
/*276142*/            OPC_CheckType, MVT::v16i16,
/*276144*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276146*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*276149*/            OPC_EmitMergeInputChains1_1,
/*276150*/            OPC_EmitConvertToTarget, 3,
/*276152*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShuflw:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 34
                      // Dst: (VPSHUFLWZ256mik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*276166*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::VALIGN),// ->276279
/*276169*/            OPC_RecordChild0, // #1 = $src1
/*276170*/            OPC_MoveChild1,
/*276171*/            OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(ISD::BITCAST),// ->276226
/*276175*/              OPC_MoveChild0,
/*276176*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276179*/              OPC_RecordMemRef,
/*276180*/              OPC_RecordNode, // #2 = 'ld' chained node
/*276181*/              OPC_CheckFoldableChainNode,
/*276182*/              OPC_RecordChild1, // #3 = $src2
/*276183*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276185*/              OPC_CheckPredicate, 9, // Predicate_load
/*276187*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*276189*/              OPC_CheckType, MVT::v8i64,
/*276191*/              OPC_MoveParent,
/*276192*/              OPC_MoveParent,
/*276193*/              OPC_RecordChild2, // #4 = $src3
/*276194*/              OPC_MoveChild2,
/*276195*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276198*/              OPC_MoveParent,
/*276199*/              OPC_MoveParent,
/*276200*/              OPC_RecordChild2, // #5 = $src0
/*276201*/              OPC_CheckType, MVT::v16i32,
/*276203*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276205*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*276208*/              OPC_EmitMergeInputChains1_2,
/*276209*/              OPC_EmitConvertToTarget, 4,
/*276211*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VALIGNDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*276226*/            /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VBROADCAST),// ->276278
/*276229*/              OPC_MoveChild0,
/*276230*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276233*/              OPC_RecordMemRef,
/*276234*/              OPC_RecordNode, // #2 = 'ld' chained node
/*276235*/              OPC_CheckFoldableChainNode,
/*276236*/              OPC_RecordChild1, // #3 = $src2
/*276237*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276239*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*276241*/              OPC_CheckType, MVT::i32,
/*276243*/              OPC_MoveParent,
/*276244*/              OPC_MoveParent,
/*276245*/              OPC_RecordChild2, // #4 = $src3
/*276246*/              OPC_MoveChild2,
/*276247*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276250*/              OPC_MoveParent,
/*276251*/              OPC_MoveParent,
/*276252*/              OPC_RecordChild2, // #5 = $src0
/*276253*/              OPC_CheckType, MVT::v16i32,
/*276255*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276257*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*276260*/              OPC_EmitMergeInputChains1_2,
/*276261*/              OPC_EmitConvertToTarget, 4,
/*276263*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VALIGNDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*276278*/            0, // EndSwitchOpcode
/*276279*/          /*SwitchOpcode*/ 56, TARGET_VAL(X86ISD::PALIGNR),// ->276338
/*276282*/            OPC_RecordChild0, // #1 = $src1
/*276283*/            OPC_MoveChild1,
/*276284*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*276287*/            OPC_MoveChild0,
/*276288*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276291*/            OPC_RecordMemRef,
/*276292*/            OPC_RecordNode, // #2 = 'ld' chained node
/*276293*/            OPC_CheckFoldableChainNode,
/*276294*/            OPC_RecordChild1, // #3 = $src2
/*276295*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276297*/            OPC_CheckPredicate, 9, // Predicate_load
/*276299*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*276301*/            OPC_CheckType, MVT::v2i64,
/*276303*/            OPC_MoveParent,
/*276304*/            OPC_MoveParent,
/*276305*/            OPC_RecordChild2, // #4 = $src3
/*276306*/            OPC_MoveChild2,
/*276307*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276310*/            OPC_MoveParent,
/*276311*/            OPC_MoveParent,
/*276312*/            OPC_RecordChild2, // #5 = $src0
/*276313*/            OPC_CheckType, MVT::v16i8,
/*276315*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276317*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*276320*/            OPC_EmitMergeInputChains1_2,
/*276321*/            OPC_EmitConvertToTarget, 4,
/*276323*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 34
                      // Dst: (VPALIGNRZ128rmik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*276338*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::DBPSADBW),// ->276399
/*276341*/            OPC_RecordChild0, // #1 = $src1
/*276342*/            OPC_MoveChild1,
/*276343*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*276346*/            OPC_MoveChild0,
/*276347*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276350*/            OPC_RecordMemRef,
/*276351*/            OPC_RecordNode, // #2 = 'ld' chained node
/*276352*/            OPC_CheckFoldableChainNode,
/*276353*/            OPC_RecordChild1, // #3 = $src2
/*276354*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276356*/            OPC_CheckPredicate, 9, // Predicate_load
/*276358*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*276360*/            OPC_CheckType, MVT::v4i64,
/*276362*/            OPC_MoveParent,
/*276363*/            OPC_MoveParent,
/*276364*/            OPC_RecordChild2, // #4 = $src3
/*276365*/            OPC_MoveChild2,
/*276366*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276369*/            OPC_CheckType, MVT::i8,
/*276371*/            OPC_MoveParent,
/*276372*/            OPC_MoveParent,
/*276373*/            OPC_RecordChild2, // #5 = $src0
/*276374*/            OPC_CheckType, MVT::v16i16,
/*276376*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276378*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*276381*/            OPC_EmitMergeInputChains1_2,
/*276382*/            OPC_EmitConvertToTarget, 4,
/*276384*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 34
                      // Dst: (VDBPSADBWZ256rmik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*276399*/          /*SwitchOpcode*/ 101|128,5/*741*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->277144
/*276403*/            OPC_Scope, 53|128,1/*181*/, /*->276587*/ // 8 children in Scope
/*276406*/              OPC_RecordChild0, // #1 = $src1
/*276407*/              OPC_Scope, 116, /*->276525*/ // 2 children in Scope
/*276409*/                OPC_RecordChild1, // #2 = $src2
/*276410*/                OPC_MoveChild2,
/*276411*/                OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->276469
/*276415*/                  OPC_MoveChild0,
/*276416*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276419*/                  OPC_RecordMemRef,
/*276420*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*276421*/                  OPC_CheckFoldableChainNode,
/*276422*/                  OPC_RecordChild1, // #4 = $src3
/*276423*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276425*/                  OPC_CheckPredicate, 9, // Predicate_load
/*276427*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*276429*/                  OPC_CheckType, MVT::v8i64,
/*276431*/                  OPC_MoveParent,
/*276432*/                  OPC_MoveParent,
/*276433*/                  OPC_RecordChild3, // #5 = $src4
/*276434*/                  OPC_MoveChild3,
/*276435*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276438*/                  OPC_MoveParent,
/*276439*/                  OPC_MoveParent,
/*276440*/                  OPC_CheckChild2Same, 1,
/*276442*/                  OPC_CheckType, MVT::v16i32,
/*276444*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276446*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*276449*/                  OPC_EmitMergeInputChains, 1, 3, 
/*276452*/                  OPC_EmitConvertToTarget, 5,
/*276454*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                            // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*276469*/                /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->276524
/*276472*/                  OPC_MoveChild0,
/*276473*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276476*/                  OPC_RecordMemRef,
/*276477*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*276478*/                  OPC_CheckFoldableChainNode,
/*276479*/                  OPC_RecordChild1, // #4 = $src3
/*276480*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276482*/                  OPC_CheckPredicate, 8, // Predicate_loadi32
/*276484*/                  OPC_CheckType, MVT::i32,
/*276486*/                  OPC_MoveParent,
/*276487*/                  OPC_MoveParent,
/*276488*/                  OPC_RecordChild3, // #5 = $src4
/*276489*/                  OPC_MoveChild3,
/*276490*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276493*/                  OPC_MoveParent,
/*276494*/                  OPC_MoveParent,
/*276495*/                  OPC_CheckChild2Same, 1,
/*276497*/                  OPC_CheckType, MVT::v16i32,
/*276499*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276501*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*276504*/                  OPC_EmitMergeInputChains, 1, 3, 
/*276507*/                  OPC_EmitConvertToTarget, 5,
/*276509*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                            // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*276524*/                0, // EndSwitchOpcode
/*276525*/              /*Scope*/ 60, /*->276586*/
/*276526*/                OPC_MoveChild1,
/*276527*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*276530*/                OPC_MoveChild0,
/*276531*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276534*/                OPC_RecordMemRef,
/*276535*/                OPC_RecordNode, // #2 = 'ld' chained node
/*276536*/                OPC_CheckFoldableChainNode,
/*276537*/                OPC_RecordChild1, // #3 = $src3
/*276538*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276540*/                OPC_CheckPredicate, 9, // Predicate_load
/*276542*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*276544*/                OPC_CheckType, MVT::v8i64,
/*276546*/                OPC_MoveParent,
/*276547*/                OPC_MoveParent,
/*276548*/                OPC_RecordChild2, // #4 = $src2
/*276549*/                OPC_RecordChild3, // #5 = $src4
/*276550*/                OPC_MoveChild3,
/*276551*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276554*/                OPC_MoveParent,
/*276555*/                OPC_MoveParent,
/*276556*/                OPC_CheckChild2Same, 1,
/*276558*/                OPC_CheckType, MVT::v16i32,
/*276560*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276562*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*276565*/                OPC_EmitMergeInputChains1_2,
/*276566*/                OPC_EmitConvertToTarget, 5,
/*276568*/                OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*276571*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*276586*/              0, /*End of Scope*/
/*276587*/            /*Scope*/ 61, /*->276649*/
/*276588*/              OPC_MoveChild0,
/*276589*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*276592*/              OPC_MoveChild0,
/*276593*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276596*/              OPC_RecordMemRef,
/*276597*/              OPC_RecordNode, // #1 = 'ld' chained node
/*276598*/              OPC_CheckFoldableChainNode,
/*276599*/              OPC_RecordChild1, // #2 = $src3
/*276600*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276602*/              OPC_CheckPredicate, 9, // Predicate_load
/*276604*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*276606*/              OPC_CheckType, MVT::v8i64,
/*276608*/              OPC_MoveParent,
/*276609*/              OPC_MoveParent,
/*276610*/              OPC_RecordChild1, // #3 = $src2
/*276611*/              OPC_RecordChild2, // #4 = $src1
/*276612*/              OPC_RecordChild3, // #5 = $src4
/*276613*/              OPC_MoveChild3,
/*276614*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276617*/              OPC_MoveParent,
/*276618*/              OPC_MoveParent,
/*276619*/              OPC_CheckChild2Same, 4,
/*276621*/              OPC_CheckType, MVT::v16i32,
/*276623*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276625*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*276628*/              OPC_EmitMergeInputChains1_1,
/*276629*/              OPC_EmitConvertToTarget, 5,
/*276631*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*276634*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*276649*/            /*Scope*/ 127, /*->276777*/
/*276650*/              OPC_RecordChild0, // #1 = $src2
/*276651*/              OPC_Scope, 62, /*->276715*/ // 2 children in Scope
/*276653*/                OPC_RecordChild1, // #2 = $src1
/*276654*/                OPC_MoveChild2,
/*276655*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*276658*/                OPC_MoveChild0,
/*276659*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276662*/                OPC_RecordMemRef,
/*276663*/                OPC_RecordNode, // #3 = 'ld' chained node
/*276664*/                OPC_CheckFoldableChainNode,
/*276665*/                OPC_RecordChild1, // #4 = $src3
/*276666*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276668*/                OPC_CheckPredicate, 9, // Predicate_load
/*276670*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*276672*/                OPC_CheckType, MVT::v8i64,
/*276674*/                OPC_MoveParent,
/*276675*/                OPC_MoveParent,
/*276676*/                OPC_RecordChild3, // #5 = $src4
/*276677*/                OPC_MoveChild3,
/*276678*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276681*/                OPC_MoveParent,
/*276682*/                OPC_MoveParent,
/*276683*/                OPC_CheckChild2Same, 2,
/*276685*/                OPC_CheckType, MVT::v16i32,
/*276687*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276689*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*276692*/                OPC_EmitMergeInputChains, 1, 3, 
/*276695*/                OPC_EmitConvertToTarget, 5,
/*276697*/                OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*276700*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*276715*/              /*Scope*/ 60, /*->276776*/
/*276716*/                OPC_MoveChild1,
/*276717*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*276720*/                OPC_MoveChild0,
/*276721*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276724*/                OPC_RecordMemRef,
/*276725*/                OPC_RecordNode, // #2 = 'ld' chained node
/*276726*/                OPC_CheckFoldableChainNode,
/*276727*/                OPC_RecordChild1, // #3 = $src3
/*276728*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276730*/                OPC_CheckPredicate, 9, // Predicate_load
/*276732*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*276734*/                OPC_CheckType, MVT::v8i64,
/*276736*/                OPC_MoveParent,
/*276737*/                OPC_MoveParent,
/*276738*/                OPC_RecordChild2, // #4 = $src1
/*276739*/                OPC_RecordChild3, // #5 = $src4
/*276740*/                OPC_MoveChild3,
/*276741*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276744*/                OPC_MoveParent,
/*276745*/                OPC_MoveParent,
/*276746*/                OPC_CheckChild2Same, 4,
/*276748*/                OPC_CheckType, MVT::v16i32,
/*276750*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276752*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*276755*/                OPC_EmitMergeInputChains1_2,
/*276756*/                OPC_EmitConvertToTarget, 5,
/*276758*/                OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*276761*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*276776*/              0, /*End of Scope*/
/*276777*/            /*Scope*/ 61, /*->276839*/
/*276778*/              OPC_MoveChild0,
/*276779*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*276782*/              OPC_MoveChild0,
/*276783*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276786*/              OPC_RecordMemRef,
/*276787*/              OPC_RecordNode, // #1 = 'ld' chained node
/*276788*/              OPC_CheckFoldableChainNode,
/*276789*/              OPC_RecordChild1, // #2 = $src3
/*276790*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276792*/              OPC_CheckPredicate, 9, // Predicate_load
/*276794*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*276796*/              OPC_CheckType, MVT::v8i64,
/*276798*/              OPC_MoveParent,
/*276799*/              OPC_MoveParent,
/*276800*/              OPC_RecordChild1, // #3 = $src1
/*276801*/              OPC_RecordChild2, // #4 = $src2
/*276802*/              OPC_RecordChild3, // #5 = $src4
/*276803*/              OPC_MoveChild3,
/*276804*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276807*/              OPC_MoveParent,
/*276808*/              OPC_MoveParent,
/*276809*/              OPC_CheckChild2Same, 3,
/*276811*/              OPC_CheckType, MVT::v16i32,
/*276813*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276815*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*276818*/              OPC_EmitMergeInputChains1_1,
/*276819*/              OPC_EmitConvertToTarget, 5,
/*276821*/              OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*276824*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*276839*/            /*Scope*/ 59, /*->276899*/
/*276840*/              OPC_RecordChild0, // #1 = $src1
/*276841*/              OPC_MoveChild1,
/*276842*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*276845*/              OPC_MoveChild0,
/*276846*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276849*/              OPC_RecordMemRef,
/*276850*/              OPC_RecordNode, // #2 = 'ld' chained node
/*276851*/              OPC_CheckFoldableChainNode,
/*276852*/              OPC_RecordChild1, // #3 = $src3
/*276853*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276855*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*276857*/              OPC_CheckType, MVT::i32,
/*276859*/              OPC_MoveParent,
/*276860*/              OPC_MoveParent,
/*276861*/              OPC_RecordChild2, // #4 = $src2
/*276862*/              OPC_RecordChild3, // #5 = $src4
/*276863*/              OPC_MoveChild3,
/*276864*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276867*/              OPC_MoveParent,
/*276868*/              OPC_MoveParent,
/*276869*/              OPC_CheckChild2Same, 1,
/*276871*/              OPC_CheckType, MVT::v16i32,
/*276873*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276875*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*276878*/              OPC_EmitMergeInputChains1_2,
/*276879*/              OPC_EmitConvertToTarget, 5,
/*276881*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*276884*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*276899*/            /*Scope*/ 59, /*->276959*/
/*276900*/              OPC_MoveChild0,
/*276901*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*276904*/              OPC_MoveChild0,
/*276905*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276908*/              OPC_RecordMemRef,
/*276909*/              OPC_RecordNode, // #1 = 'ld' chained node
/*276910*/              OPC_CheckFoldableChainNode,
/*276911*/              OPC_RecordChild1, // #2 = $src3
/*276912*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276914*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*276916*/              OPC_CheckType, MVT::i32,
/*276918*/              OPC_MoveParent,
/*276919*/              OPC_MoveParent,
/*276920*/              OPC_RecordChild1, // #3 = $src2
/*276921*/              OPC_RecordChild2, // #4 = $src1
/*276922*/              OPC_RecordChild3, // #5 = $src4
/*276923*/              OPC_MoveChild3,
/*276924*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276927*/              OPC_MoveParent,
/*276928*/              OPC_MoveParent,
/*276929*/              OPC_CheckChild2Same, 4,
/*276931*/              OPC_CheckType, MVT::v16i32,
/*276933*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276935*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*276938*/              OPC_EmitMergeInputChains1_1,
/*276939*/              OPC_EmitConvertToTarget, 5,
/*276941*/              OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*276944*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*276959*/            /*Scope*/ 123, /*->277083*/
/*276960*/              OPC_RecordChild0, // #1 = $src2
/*276961*/              OPC_Scope, 60, /*->277023*/ // 2 children in Scope
/*276963*/                OPC_RecordChild1, // #2 = $src1
/*276964*/                OPC_MoveChild2,
/*276965*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*276968*/                OPC_MoveChild0,
/*276969*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*276972*/                OPC_RecordMemRef,
/*276973*/                OPC_RecordNode, // #3 = 'ld' chained node
/*276974*/                OPC_CheckFoldableChainNode,
/*276975*/                OPC_RecordChild1, // #4 = $src3
/*276976*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*276978*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*276980*/                OPC_CheckType, MVT::i32,
/*276982*/                OPC_MoveParent,
/*276983*/                OPC_MoveParent,
/*276984*/                OPC_RecordChild3, // #5 = $src4
/*276985*/                OPC_MoveChild3,
/*276986*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*276989*/                OPC_MoveParent,
/*276990*/                OPC_MoveParent,
/*276991*/                OPC_CheckChild2Same, 2,
/*276993*/                OPC_CheckType, MVT::v16i32,
/*276995*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276997*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*277000*/                OPC_EmitMergeInputChains, 1, 3, 
/*277003*/                OPC_EmitConvertToTarget, 5,
/*277005*/                OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*277008*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*277023*/              /*Scope*/ 58, /*->277082*/
/*277024*/                OPC_MoveChild1,
/*277025*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*277028*/                OPC_MoveChild0,
/*277029*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*277032*/                OPC_RecordMemRef,
/*277033*/                OPC_RecordNode, // #2 = 'ld' chained node
/*277034*/                OPC_CheckFoldableChainNode,
/*277035*/                OPC_RecordChild1, // #3 = $src3
/*277036*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277038*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*277040*/                OPC_CheckType, MVT::i32,
/*277042*/                OPC_MoveParent,
/*277043*/                OPC_MoveParent,
/*277044*/                OPC_RecordChild2, // #4 = $src1
/*277045*/                OPC_RecordChild3, // #5 = $src4
/*277046*/                OPC_MoveChild3,
/*277047*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*277050*/                OPC_MoveParent,
/*277051*/                OPC_MoveParent,
/*277052*/                OPC_CheckChild2Same, 4,
/*277054*/                OPC_CheckType, MVT::v16i32,
/*277056*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277058*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*277061*/                OPC_EmitMergeInputChains1_2,
/*277062*/                OPC_EmitConvertToTarget, 5,
/*277064*/                OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*277067*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                          // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*277082*/              0, /*End of Scope*/
/*277083*/            /*Scope*/ 59, /*->277143*/
/*277084*/              OPC_MoveChild0,
/*277085*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*277088*/              OPC_MoveChild0,
/*277089*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*277092*/              OPC_RecordMemRef,
/*277093*/              OPC_RecordNode, // #1 = 'ld' chained node
/*277094*/              OPC_CheckFoldableChainNode,
/*277095*/              OPC_RecordChild1, // #2 = $src3
/*277096*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277098*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*277100*/              OPC_CheckType, MVT::i32,
/*277102*/              OPC_MoveParent,
/*277103*/              OPC_MoveParent,
/*277104*/              OPC_RecordChild1, // #3 = $src1
/*277105*/              OPC_RecordChild2, // #4 = $src2
/*277106*/              OPC_RecordChild3, // #5 = $src4
/*277107*/              OPC_MoveChild3,
/*277108*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*277111*/              OPC_MoveParent,
/*277112*/              OPC_MoveParent,
/*277113*/              OPC_CheckChild2Same, 3,
/*277115*/              OPC_CheckType, MVT::v16i32,
/*277117*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277119*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*277122*/              OPC_EmitMergeInputChains1_1,
/*277123*/              OPC_EmitConvertToTarget, 5,
/*277125*/              OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*277128*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*277143*/            0, /*End of Scope*/
/*277144*/          /*SwitchOpcode*/ 21|128,1/*149*/, TARGET_VAL(X86ISD::VSHLD),// ->277297
/*277148*/            OPC_RecordChild0, // #1 = $src1
/*277149*/            OPC_MoveChild1,
/*277150*/            OPC_SwitchOpcode /*2 cases */, 90, TARGET_VAL(ISD::BITCAST),// ->277244
/*277154*/              OPC_MoveChild0,
/*277155*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*277158*/              OPC_RecordMemRef,
/*277159*/              OPC_RecordNode, // #2 = 'ld' chained node
/*277160*/              OPC_CheckFoldableChainNode,
/*277161*/              OPC_RecordChild1, // #3 = $src2
/*277162*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277164*/              OPC_CheckPredicate, 9, // Predicate_load
/*277166*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*277168*/              OPC_SwitchType /*2 cases */, 35, MVT::v4i64,// ->277206
/*277171*/                OPC_MoveParent,
/*277172*/                OPC_MoveParent,
/*277173*/                OPC_RecordChild2, // #4 = $src3
/*277174*/                OPC_MoveChild2,
/*277175*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*277178*/                OPC_MoveParent,
/*277179*/                OPC_MoveParent,
/*277180*/                OPC_RecordChild2, // #5 = $src0
/*277181*/                OPC_CheckType, MVT::v16i16,
/*277183*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*277185*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*277188*/                OPC_EmitMergeInputChains1_2,
/*277189*/                OPC_EmitConvertToTarget, 4,
/*277191*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 34
                          // Dst: (VPSHLDWZ256rmik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*277206*/              /*SwitchType*/ 35, MVT::v8i64,// ->277243
/*277208*/                OPC_MoveParent,
/*277209*/                OPC_MoveParent,
/*277210*/                OPC_RecordChild2, // #4 = $src3
/*277211*/                OPC_MoveChild2,
/*277212*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*277215*/                OPC_MoveParent,
/*277216*/                OPC_MoveParent,
/*277217*/                OPC_RecordChild2, // #5 = $src0
/*277218*/                OPC_CheckType, MVT::v16i32,
/*277220*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*277222*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*277225*/                OPC_EmitMergeInputChains1_2,
/*277226*/                OPC_EmitConvertToTarget, 4,
/*277228*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VPSHLDDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*277243*/              0, // EndSwitchType
/*277244*/            /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VBROADCAST),// ->277296
/*277247*/              OPC_MoveChild0,
/*277248*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*277251*/              OPC_RecordMemRef,
/*277252*/              OPC_RecordNode, // #2 = 'ld' chained node
/*277253*/              OPC_CheckFoldableChainNode,
/*277254*/              OPC_RecordChild1, // #3 = $src2
/*277255*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277257*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*277259*/              OPC_CheckType, MVT::i32,
/*277261*/              OPC_MoveParent,
/*277262*/              OPC_MoveParent,
/*277263*/              OPC_RecordChild2, // #4 = $src3
/*277264*/              OPC_MoveChild2,
/*277265*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*277268*/              OPC_MoveParent,
/*277269*/              OPC_MoveParent,
/*277270*/              OPC_RecordChild2, // #5 = $src0
/*277271*/              OPC_CheckType, MVT::v16i32,
/*277273*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*277275*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*277278*/              OPC_EmitMergeInputChains1_2,
/*277279*/              OPC_EmitConvertToTarget, 4,
/*277281*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VPSHLDDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*277296*/            0, // EndSwitchOpcode
/*277297*/          /*SwitchOpcode*/ 21|128,1/*149*/, TARGET_VAL(X86ISD::VSHRD),// ->277450
/*277301*/            OPC_RecordChild0, // #1 = $src1
/*277302*/            OPC_MoveChild1,
/*277303*/            OPC_SwitchOpcode /*2 cases */, 90, TARGET_VAL(ISD::BITCAST),// ->277397
/*277307*/              OPC_MoveChild0,
/*277308*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*277311*/              OPC_RecordMemRef,
/*277312*/              OPC_RecordNode, // #2 = 'ld' chained node
/*277313*/              OPC_CheckFoldableChainNode,
/*277314*/              OPC_RecordChild1, // #3 = $src2
/*277315*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277317*/              OPC_CheckPredicate, 9, // Predicate_load
/*277319*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*277321*/              OPC_SwitchType /*2 cases */, 35, MVT::v4i64,// ->277359
/*277324*/                OPC_MoveParent,
/*277325*/                OPC_MoveParent,
/*277326*/                OPC_RecordChild2, // #4 = $src3
/*277327*/                OPC_MoveChild2,
/*277328*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*277331*/                OPC_MoveParent,
/*277332*/                OPC_MoveParent,
/*277333*/                OPC_RecordChild2, // #5 = $src0
/*277334*/                OPC_CheckType, MVT::v16i16,
/*277336*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*277338*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*277341*/                OPC_EmitMergeInputChains1_2,
/*277342*/                OPC_EmitConvertToTarget, 4,
/*277344*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 34
                          // Dst: (VPSHRDWZ256rmik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*277359*/              /*SwitchType*/ 35, MVT::v8i64,// ->277396
/*277361*/                OPC_MoveParent,
/*277362*/                OPC_MoveParent,
/*277363*/                OPC_RecordChild2, // #4 = $src3
/*277364*/                OPC_MoveChild2,
/*277365*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*277368*/                OPC_MoveParent,
/*277369*/                OPC_MoveParent,
/*277370*/                OPC_RecordChild2, // #5 = $src0
/*277371*/                OPC_CheckType, MVT::v16i32,
/*277373*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*277375*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*277378*/                OPC_EmitMergeInputChains1_2,
/*277379*/                OPC_EmitConvertToTarget, 4,
/*277381*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VPSHRDDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*277396*/              0, // EndSwitchType
/*277397*/            /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VBROADCAST),// ->277449
/*277400*/              OPC_MoveChild0,
/*277401*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*277404*/              OPC_RecordMemRef,
/*277405*/              OPC_RecordNode, // #2 = 'ld' chained node
/*277406*/              OPC_CheckFoldableChainNode,
/*277407*/              OPC_RecordChild1, // #3 = $src2
/*277408*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277410*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*277412*/              OPC_CheckType, MVT::i32,
/*277414*/              OPC_MoveParent,
/*277415*/              OPC_MoveParent,
/*277416*/              OPC_RecordChild2, // #4 = $src3
/*277417*/              OPC_MoveChild2,
/*277418*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*277421*/              OPC_MoveParent,
/*277422*/              OPC_MoveParent,
/*277423*/              OPC_RecordChild2, // #5 = $src0
/*277424*/              OPC_CheckType, MVT::v16i32,
/*277426*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*277428*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*277431*/              OPC_EmitMergeInputChains1_2,
/*277432*/              OPC_EmitConvertToTarget, 4,
/*277434*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                        // Dst: (VPSHRDDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*277449*/            0, // EndSwitchOpcode
/*277450*/          /*SwitchOpcode*/ 56, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->277509
/*277453*/            OPC_RecordChild0, // #1 = $src1
/*277454*/            OPC_MoveChild1,
/*277455*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*277458*/            OPC_MoveChild0,
/*277459*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*277462*/            OPC_RecordMemRef,
/*277463*/            OPC_RecordNode, // #2 = 'ld' chained node
/*277464*/            OPC_CheckFoldableChainNode,
/*277465*/            OPC_RecordChild1, // #3 = $src2
/*277466*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277468*/            OPC_CheckPredicate, 9, // Predicate_load
/*277470*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*277472*/            OPC_CheckType, MVT::v2i64,
/*277474*/            OPC_MoveParent,
/*277475*/            OPC_MoveParent,
/*277476*/            OPC_RecordChild2, // #4 = $src3
/*277477*/            OPC_MoveChild2,
/*277478*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*277481*/            OPC_MoveParent,
/*277482*/            OPC_MoveParent,
/*277483*/            OPC_RecordChild2, // #5 = $src0
/*277484*/            OPC_CheckType, MVT::v16i8,
/*277486*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*277488*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*277491*/            OPC_EmitMergeInputChains1_2,
/*277492*/            OPC_EmitConvertToTarget, 4,
/*277494*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 34
                      // Dst: (VGF2P8AFFINEINVQBZ128rmik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*277509*/          /*SwitchOpcode*/ 56, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->277568
/*277512*/            OPC_RecordChild0, // #1 = $src1
/*277513*/            OPC_MoveChild1,
/*277514*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*277517*/            OPC_MoveChild0,
/*277518*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*277521*/            OPC_RecordMemRef,
/*277522*/            OPC_RecordNode, // #2 = 'ld' chained node
/*277523*/            OPC_CheckFoldableChainNode,
/*277524*/            OPC_RecordChild1, // #3 = $src2
/*277525*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277527*/            OPC_CheckPredicate, 9, // Predicate_load
/*277529*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*277531*/            OPC_CheckType, MVT::v2i64,
/*277533*/            OPC_MoveParent,
/*277534*/            OPC_MoveParent,
/*277535*/            OPC_RecordChild2, // #4 = $src3
/*277536*/            OPC_MoveChild2,
/*277537*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*277540*/            OPC_MoveParent,
/*277541*/            OPC_MoveParent,
/*277542*/            OPC_RecordChild2, // #5 = $src0
/*277543*/            OPC_CheckType, MVT::v16i8,
/*277545*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*277547*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*277550*/            OPC_EmitMergeInputChains1_2,
/*277551*/            OPC_EmitConvertToTarget, 4,
/*277553*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 34
                      // Dst: (VGF2P8AFFINEQBZ128rmik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*277568*/          /*SwitchOpcode*/ 109|128,1/*237*/, TARGET_VAL(X86ISD::VBROADCAST),// ->277809
/*277572*/            OPC_MoveChild0,
/*277573*/            OPC_SwitchOpcode /*2 cases */, 123, TARGET_VAL(ISD::LOAD),// ->277700
/*277577*/              OPC_RecordMemRef,
/*277578*/              OPC_RecordNode, // #1 = 'ld' chained node
/*277579*/              OPC_CheckFoldableChainNode,
/*277580*/              OPC_RecordChild1, // #2 = $src
/*277581*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277583*/              OPC_SwitchType /*3 cases */, 57, MVT::i32,// ->277643
/*277586*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*277588*/                OPC_MoveParent,
/*277589*/                OPC_MoveParent,
/*277590*/                OPC_Scope, 27, /*->277619*/ // 2 children in Scope
/*277592*/                  OPC_MoveChild2,
/*277593*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*277596*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*277598*/                  OPC_MoveParent,
/*277599*/                  OPC_CheckType, MVT::v16i32,
/*277601*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277603*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*277606*/                  OPC_EmitMergeInputChains1_1,
/*277607*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                            // Dst: (VPBROADCASTDZmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*277619*/                /*Scope*/ 22, /*->277642*/
/*277620*/                  OPC_RecordChild2, // #3 = $src0
/*277621*/                  OPC_CheckType, MVT::v16i32,
/*277623*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277625*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*277628*/                  OPC_EmitMergeInputChains1_1,
/*277629*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPBROADCASTDZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*277642*/                0, /*End of Scope*/
/*277643*/              /*SwitchType*/ 26, MVT::i8,// ->277671
/*277645*/                OPC_CheckPredicate, 5, // Predicate_loadi8
/*277647*/                OPC_MoveParent,
/*277648*/                OPC_MoveParent,
/*277649*/                OPC_RecordChild2, // #3 = $src0
/*277650*/                OPC_CheckType, MVT::v16i8,
/*277652*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*277654*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*277657*/                OPC_EmitMergeInputChains1_1,
/*277658*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPBROADCASTBZ128mk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*277671*/              /*SwitchType*/ 26, MVT::i16,// ->277699
/*277673*/                OPC_CheckPredicate, 7, // Predicate_loadi16
/*277675*/                OPC_MoveParent,
/*277676*/                OPC_MoveParent,
/*277677*/                OPC_RecordChild2, // #3 = $src0
/*277678*/                OPC_CheckType, MVT::v16i16,
/*277680*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*277682*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*277685*/                OPC_EmitMergeInputChains1_1,
/*277686*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPBROADCASTWZ256mk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*277699*/              0, // EndSwitchType
/*277700*/            /*SwitchOpcode*/ 105, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->277808
/*277703*/              OPC_MoveChild0,
/*277704*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*277707*/              OPC_RecordMemRef,
/*277708*/              OPC_RecordNode, // #1 = 'ld' chained node
/*277709*/              OPC_CheckFoldableChainNode,
/*277710*/              OPC_RecordChild1, // #2 = $src
/*277711*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277713*/              OPC_SwitchType /*3 cases */, 29, MVT::i8,// ->277745
/*277716*/                OPC_CheckPredicate, 5, // Predicate_loadi8
/*277718*/                OPC_MoveParent,
/*277719*/                OPC_CheckType, MVT::v16i8,
/*277721*/                OPC_MoveParent,
/*277722*/                OPC_MoveParent,
/*277723*/                OPC_RecordChild2, // #3 = $src0
/*277724*/                OPC_CheckType, MVT::v16i8,
/*277726*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*277728*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*277731*/                OPC_EmitMergeInputChains1_1,
/*277732*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i8] } (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPBROADCASTBZ128mk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*277745*/              /*SwitchType*/ 29, MVT::i16,// ->277776
/*277747*/                OPC_CheckPredicate, 7, // Predicate_loadi16
/*277749*/                OPC_MoveParent,
/*277750*/                OPC_CheckType, MVT::v8i16,
/*277752*/                OPC_MoveParent,
/*277753*/                OPC_MoveParent,
/*277754*/                OPC_RecordChild2, // #3 = $src0
/*277755*/                OPC_CheckType, MVT::v16i16,
/*277757*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*277759*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*277762*/                OPC_EmitMergeInputChains1_1,
/*277763*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i16] } (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPBROADCASTWZ256mk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*277776*/              /*SwitchType*/ 29, MVT::i32,// ->277807
/*277778*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*277780*/                OPC_MoveParent,
/*277781*/                OPC_CheckType, MVT::v4i32,
/*277783*/                OPC_MoveParent,
/*277784*/                OPC_MoveParent,
/*277785*/                OPC_RecordChild2, // #3 = $src0
/*277786*/                OPC_CheckType, MVT::v16i32,
/*277788*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277790*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*277793*/                OPC_EmitMergeInputChains1_1,
/*277794*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPBROADCASTDZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*277807*/              0, // EndSwitchType
/*277808*/            0, // EndSwitchOpcode
/*277809*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::CVTTP2SI),// ->277929
/*277812*/            OPC_MoveChild0,
/*277813*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->277884
/*277817*/              OPC_RecordMemRef,
/*277818*/              OPC_RecordNode, // #1 = 'ld' chained node
/*277819*/              OPC_CheckFoldableChainNode,
/*277820*/              OPC_RecordChild1, // #2 = $src
/*277821*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277823*/              OPC_CheckPredicate, 9, // Predicate_load
/*277825*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*277827*/              OPC_CheckType, MVT::v16f32,
/*277829*/              OPC_MoveParent,
/*277830*/              OPC_MoveParent,
/*277831*/              OPC_Scope, 27, /*->277860*/ // 2 children in Scope
/*277833*/                OPC_MoveChild2,
/*277834*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*277837*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*277839*/                OPC_MoveParent,
/*277840*/                OPC_CheckType, MVT::v16i32,
/*277842*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277844*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*277847*/                OPC_EmitMergeInputChains1_1,
/*277848*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2si:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                          // Dst: (VCVTTPS2DQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*277860*/              /*Scope*/ 22, /*->277883*/
/*277861*/                OPC_RecordChild2, // #3 = $src0
/*277862*/                OPC_CheckType, MVT::v16i32,
/*277864*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277866*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*277869*/                OPC_EmitMergeInputChains1_1,
/*277870*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2si:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPS2DQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*277883*/              0, /*End of Scope*/
/*277884*/            /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->277928
/*277887*/              OPC_MoveChild0,
/*277888*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*277891*/              OPC_RecordMemRef,
/*277892*/              OPC_RecordNode, // #1 = 'ld' chained node
/*277893*/              OPC_CheckFoldableChainNode,
/*277894*/              OPC_RecordChild1, // #2 = $src
/*277895*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277897*/              OPC_CheckPredicate, 9, // Predicate_load
/*277899*/              OPC_CheckType, MVT::f32,
/*277901*/              OPC_MoveParent,
/*277902*/              OPC_CheckType, MVT::v16f32,
/*277904*/              OPC_MoveParent,
/*277905*/              OPC_MoveParent,
/*277906*/              OPC_RecordChild2, // #3 = $src0
/*277907*/              OPC_CheckType, MVT::v16i32,
/*277909*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277911*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*277914*/              OPC_EmitMergeInputChains1_1,
/*277915*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2si:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VCVTTPS2DQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*277928*/            0, // EndSwitchOpcode
/*277929*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::CVTTP2UI),// ->278049
/*277932*/            OPC_MoveChild0,
/*277933*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->278004
/*277937*/              OPC_RecordMemRef,
/*277938*/              OPC_RecordNode, // #1 = 'ld' chained node
/*277939*/              OPC_CheckFoldableChainNode,
/*277940*/              OPC_RecordChild1, // #2 = $src
/*277941*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*277943*/              OPC_CheckPredicate, 9, // Predicate_load
/*277945*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*277947*/              OPC_CheckType, MVT::v16f32,
/*277949*/              OPC_MoveParent,
/*277950*/              OPC_MoveParent,
/*277951*/              OPC_Scope, 27, /*->277980*/ // 2 children in Scope
/*277953*/                OPC_MoveChild2,
/*277954*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*277957*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*277959*/                OPC_MoveParent,
/*277960*/                OPC_CheckType, MVT::v16i32,
/*277962*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277964*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*277967*/                OPC_EmitMergeInputChains1_1,
/*277968*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2ui:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                          // Dst: (VCVTTPS2UDQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*277980*/              /*Scope*/ 22, /*->278003*/
/*277981*/                OPC_RecordChild2, // #3 = $src0
/*277982*/                OPC_CheckType, MVT::v16i32,
/*277984*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277986*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*277989*/                OPC_EmitMergeInputChains1_1,
/*277990*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2ui:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPS2UDQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278003*/              0, /*End of Scope*/
/*278004*/            /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->278048
/*278007*/              OPC_MoveChild0,
/*278008*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*278011*/              OPC_RecordMemRef,
/*278012*/              OPC_RecordNode, // #1 = 'ld' chained node
/*278013*/              OPC_CheckFoldableChainNode,
/*278014*/              OPC_RecordChild1, // #2 = $src
/*278015*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*278017*/              OPC_CheckPredicate, 9, // Predicate_load
/*278019*/              OPC_CheckType, MVT::f32,
/*278021*/              OPC_MoveParent,
/*278022*/              OPC_CheckType, MVT::v16f32,
/*278024*/              OPC_MoveParent,
/*278025*/              OPC_MoveParent,
/*278026*/              OPC_RecordChild2, // #3 = $src0
/*278027*/              OPC_CheckType, MVT::v16i32,
/*278029*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278031*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278034*/              OPC_EmitMergeInputChains1_1,
/*278035*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2ui:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VCVTTPS2UDQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278048*/            0, // EndSwitchOpcode
/*278049*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::CVTP2SI),// ->278169
/*278052*/            OPC_MoveChild0,
/*278053*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->278124
/*278057*/              OPC_RecordMemRef,
/*278058*/              OPC_RecordNode, // #1 = 'ld' chained node
/*278059*/              OPC_CheckFoldableChainNode,
/*278060*/              OPC_RecordChild1, // #2 = $src
/*278061*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*278063*/              OPC_CheckPredicate, 9, // Predicate_load
/*278065*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*278067*/              OPC_CheckType, MVT::v16f32,
/*278069*/              OPC_MoveParent,
/*278070*/              OPC_MoveParent,
/*278071*/              OPC_Scope, 27, /*->278100*/ // 2 children in Scope
/*278073*/                OPC_MoveChild2,
/*278074*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*278077*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*278079*/                OPC_MoveParent,
/*278080*/                OPC_CheckType, MVT::v16i32,
/*278082*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278084*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*278087*/                OPC_EmitMergeInputChains1_1,
/*278088*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2Int:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                          // Dst: (VCVTPS2DQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278100*/              /*Scope*/ 22, /*->278123*/
/*278101*/                OPC_RecordChild2, // #3 = $src0
/*278102*/                OPC_CheckType, MVT::v16i32,
/*278104*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278106*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278109*/                OPC_EmitMergeInputChains1_1,
/*278110*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2Int:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VCVTPS2DQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278123*/              0, /*End of Scope*/
/*278124*/            /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->278168
/*278127*/              OPC_MoveChild0,
/*278128*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*278131*/              OPC_RecordMemRef,
/*278132*/              OPC_RecordNode, // #1 = 'ld' chained node
/*278133*/              OPC_CheckFoldableChainNode,
/*278134*/              OPC_RecordChild1, // #2 = $src
/*278135*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*278137*/              OPC_CheckPredicate, 9, // Predicate_load
/*278139*/              OPC_CheckType, MVT::f32,
/*278141*/              OPC_MoveParent,
/*278142*/              OPC_CheckType, MVT::v16f32,
/*278144*/              OPC_MoveParent,
/*278145*/              OPC_MoveParent,
/*278146*/              OPC_RecordChild2, // #3 = $src0
/*278147*/              OPC_CheckType, MVT::v16i32,
/*278149*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278151*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278154*/              OPC_EmitMergeInputChains1_1,
/*278155*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2Int:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VCVTPS2DQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278168*/            0, // EndSwitchOpcode
/*278169*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::CVTP2UI),// ->278289
/*278172*/            OPC_MoveChild0,
/*278173*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->278244
/*278177*/              OPC_RecordMemRef,
/*278178*/              OPC_RecordNode, // #1 = 'ld' chained node
/*278179*/              OPC_CheckFoldableChainNode,
/*278180*/              OPC_RecordChild1, // #2 = $src
/*278181*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*278183*/              OPC_CheckPredicate, 9, // Predicate_load
/*278185*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*278187*/              OPC_CheckType, MVT::v16f32,
/*278189*/              OPC_MoveParent,
/*278190*/              OPC_MoveParent,
/*278191*/              OPC_Scope, 27, /*->278220*/ // 2 children in Scope
/*278193*/                OPC_MoveChild2,
/*278194*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*278197*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*278199*/                OPC_MoveParent,
/*278200*/                OPC_CheckType, MVT::v16i32,
/*278202*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278204*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*278207*/                OPC_EmitMergeInputChains1_1,
/*278208*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2UInt:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 32
                          // Dst: (VCVTPS2UDQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278220*/              /*Scope*/ 22, /*->278243*/
/*278221*/                OPC_RecordChild2, // #3 = $src0
/*278222*/                OPC_CheckType, MVT::v16i32,
/*278224*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278226*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278229*/                OPC_EmitMergeInputChains1_1,
/*278230*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2UInt:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VCVTPS2UDQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278243*/              0, /*End of Scope*/
/*278244*/            /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->278288
/*278247*/              OPC_MoveChild0,
/*278248*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*278251*/              OPC_RecordMemRef,
/*278252*/              OPC_RecordNode, // #1 = 'ld' chained node
/*278253*/              OPC_CheckFoldableChainNode,
/*278254*/              OPC_RecordChild1, // #2 = $src
/*278255*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*278257*/              OPC_CheckPredicate, 9, // Predicate_load
/*278259*/              OPC_CheckType, MVT::f32,
/*278261*/              OPC_MoveParent,
/*278262*/              OPC_CheckType, MVT::v16f32,
/*278264*/              OPC_MoveParent,
/*278265*/              OPC_MoveParent,
/*278266*/              OPC_RecordChild2, // #3 = $src0
/*278267*/              OPC_CheckType, MVT::v16i32,
/*278269*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278271*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278274*/              OPC_EmitMergeInputChains1_1,
/*278275*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2UInt:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VCVTPS2UDQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278288*/            0, // EndSwitchOpcode
/*278289*/          /*SwitchOpcode*/ 126|128,2/*382*/, TARGET_VAL(ISD::LOAD),// ->278675
/*278293*/            OPC_RecordMemRef,
/*278294*/            OPC_RecordNode, // #1 = 'ld' chained node
/*278295*/            OPC_CheckFoldableChainNode,
/*278296*/            OPC_RecordChild1, // #2 = $src
/*278297*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*278299*/            OPC_Scope, 39, /*->278340*/ // 6 children in Scope
/*278301*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*278303*/              OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*278305*/              OPC_MoveParent,
/*278306*/              OPC_MoveChild2,
/*278307*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*278310*/              OPC_MoveChild0,
/*278311*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*278314*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*278316*/              OPC_CheckType, MVT::v8i32,
/*278318*/              OPC_MoveParent,
/*278319*/              OPC_MoveParent,
/*278320*/              OPC_CheckType, MVT::v16i16,
/*278322*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*278324*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*278327*/              OPC_EmitMergeInputChains1_1,
/*278328*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VPMOVZXBWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278340*/            /*Scope*/ 39, /*->278380*/
/*278341*/              OPC_CheckPredicate, 60, // Predicate_sextload
/*278343*/              OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*278345*/              OPC_MoveParent,
/*278346*/              OPC_MoveChild2,
/*278347*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*278350*/              OPC_MoveChild0,
/*278351*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*278354*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*278356*/              OPC_CheckType, MVT::v8i32,
/*278358*/              OPC_MoveParent,
/*278359*/              OPC_MoveParent,
/*278360*/              OPC_CheckType, MVT::v16i16,
/*278362*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*278364*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*278367*/              OPC_EmitMergeInputChains1_1,
/*278368*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VPMOVSXBWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278380*/            /*Scope*/ 66, /*->278447*/
/*278381*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*278383*/              OPC_Scope, 30, /*->278415*/ // 2 children in Scope
/*278385*/                OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*278387*/                OPC_MoveParent,
/*278388*/                OPC_MoveChild2,
/*278389*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*278392*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*278394*/                OPC_MoveParent,
/*278395*/                OPC_CheckType, MVT::v16i32,
/*278397*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278399*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*278402*/                OPC_EmitMergeInputChains1_1,
/*278403*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVZXBDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278415*/              /*Scope*/ 30, /*->278446*/
/*278416*/                OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*278418*/                OPC_MoveParent,
/*278419*/                OPC_MoveChild2,
/*278420*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*278423*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*278425*/                OPC_MoveParent,
/*278426*/                OPC_CheckType, MVT::v16i32,
/*278428*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278430*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*278433*/                OPC_EmitMergeInputChains1_1,
/*278434*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVZXWDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278446*/              0, /*End of Scope*/
/*278447*/            /*Scope*/ 66, /*->278514*/
/*278448*/              OPC_CheckPredicate, 60, // Predicate_sextload
/*278450*/              OPC_Scope, 30, /*->278482*/ // 2 children in Scope
/*278452*/                OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*278454*/                OPC_MoveParent,
/*278455*/                OPC_MoveChild2,
/*278456*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*278459*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*278461*/                OPC_MoveParent,
/*278462*/                OPC_CheckType, MVT::v16i32,
/*278464*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278466*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*278469*/                OPC_EmitMergeInputChains1_1,
/*278470*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVSXBDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278482*/              /*Scope*/ 30, /*->278513*/
/*278483*/                OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*278485*/                OPC_MoveParent,
/*278486*/                OPC_MoveChild2,
/*278487*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*278490*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*278492*/                OPC_MoveParent,
/*278493*/                OPC_CheckType, MVT::v16i32,
/*278495*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278497*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*278500*/                OPC_EmitMergeInputChains1_1,
/*278501*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 29
                          // Dst: (VPMOVSXWDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278513*/              0, /*End of Scope*/
/*278514*/            /*Scope*/ 79, /*->278594*/
/*278515*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*278517*/              OPC_Scope, 48, /*->278567*/ // 2 children in Scope
/*278519*/                OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*278521*/                OPC_MoveParent,
/*278522*/                OPC_RecordChild2, // #3 = $src0
/*278523*/                OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->278545
/*278526*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*278528*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278531*/                  OPC_EmitMergeInputChains1_1,
/*278532*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, VR256X:{ *:[v16i16] }:$src0) - Complexity = 25
                            // Dst: (VPMOVZXBWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278545*/                /*SwitchType*/ 19, MVT::v16i32,// ->278566
/*278547*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278549*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278552*/                  OPC_EmitMergeInputChains1_1,
/*278553*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, VR512:{ *:[v16i32] }:$src0) - Complexity = 25
                            // Dst: (VPMOVZXBDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278566*/                0, // EndSwitchType
/*278567*/              /*Scope*/ 25, /*->278593*/
/*278568*/                OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*278570*/                OPC_MoveParent,
/*278571*/                OPC_RecordChild2, // #3 = $src0
/*278572*/                OPC_CheckType, MVT::v16i32,
/*278574*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278576*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278579*/                OPC_EmitMergeInputChains1_1,
/*278580*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, VR512:{ *:[v16i32] }:$src0) - Complexity = 25
                          // Dst: (VPMOVZXWDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278593*/              0, /*End of Scope*/
/*278594*/            /*Scope*/ 79, /*->278674*/
/*278595*/              OPC_CheckPredicate, 60, // Predicate_sextload
/*278597*/              OPC_Scope, 48, /*->278647*/ // 2 children in Scope
/*278599*/                OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*278601*/                OPC_MoveParent,
/*278602*/                OPC_RecordChild2, // #3 = $src0
/*278603*/                OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->278625
/*278606*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*278608*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278611*/                  OPC_EmitMergeInputChains1_1,
/*278612*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, VR256X:{ *:[v16i16] }:$src0) - Complexity = 25
                            // Dst: (VPMOVSXBWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278625*/                /*SwitchType*/ 19, MVT::v16i32,// ->278646
/*278627*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278629*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278632*/                  OPC_EmitMergeInputChains1_1,
/*278633*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, VR512:{ *:[v16i32] }:$src0) - Complexity = 25
                            // Dst: (VPMOVSXBDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278646*/                0, // EndSwitchType
/*278647*/              /*Scope*/ 25, /*->278673*/
/*278648*/                OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*278650*/                OPC_MoveParent,
/*278651*/                OPC_RecordChild2, // #3 = $src0
/*278652*/                OPC_CheckType, MVT::v16i32,
/*278654*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278656*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278659*/                OPC_EmitMergeInputChains1_1,
/*278660*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, VR512:{ *:[v16i32] }:$src0) - Complexity = 25
                          // Dst: (VPMOVSXWDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278673*/              0, /*End of Scope*/
/*278674*/            0, /*End of Scope*/
/*278675*/          /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->278756
/*278678*/            OPC_MoveChild0,
/*278679*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*278682*/            OPC_MoveChild0,
/*278683*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*278686*/            OPC_RecordMemRef,
/*278687*/            OPC_RecordNode, // #1 = 'ld' chained node
/*278688*/            OPC_CheckFoldableChainNode,
/*278689*/            OPC_RecordChild1, // #2 = $src
/*278690*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*278692*/            OPC_CheckPredicate, 9, // Predicate_load
/*278694*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*278696*/            OPC_SwitchType /*2 cases */, 27, MVT::v2i64,// ->278726
/*278699*/              OPC_MoveParent,
/*278700*/              OPC_CheckType, MVT::v4i32,
/*278702*/              OPC_MoveParent,
/*278703*/              OPC_MoveParent,
/*278704*/              OPC_RecordChild2, // #3 = $src0
/*278705*/              OPC_CheckType, MVT::v16i32,
/*278707*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278709*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278712*/              OPC_EmitMergeInputChains1_1,
/*278713*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86SubVBroadcast:{ *:[v16i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VBROADCASTI32X4rmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278726*/            /*SwitchType*/ 27, MVT::v4i64,// ->278755
/*278728*/              OPC_MoveParent,
/*278729*/              OPC_CheckType, MVT::v8i32,
/*278731*/              OPC_MoveParent,
/*278732*/              OPC_MoveParent,
/*278733*/              OPC_RecordChild2, // #3 = $src0
/*278734*/              OPC_CheckType, MVT::v16i32,
/*278736*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*278738*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*278741*/              OPC_EmitMergeInputChains1_1,
/*278742*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X8rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86SubVBroadcast:{ *:[v16i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VBROADCASTI32X8rmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*278755*/            0, // EndSwitchType
/*278756*/          /*SwitchOpcode*/ 20|128,2/*276*/, TARGET_VAL(X86ISD::VPERMV3),// ->279036
/*278760*/            OPC_RecordChild0, // #1 = $src2
/*278761*/            OPC_RecordChild1, // #2 = $src1
/*278762*/            OPC_MoveChild2,
/*278763*/            OPC_SwitchOpcode /*2 cases */, 65|128,1/*193*/, TARGET_VAL(ISD::BITCAST),// ->278961
/*278768*/              OPC_MoveChild0,
/*278769*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*278772*/              OPC_RecordMemRef,
/*278773*/              OPC_RecordNode, // #3 = 'ld' chained node
/*278774*/              OPC_CheckFoldableChainNode,
/*278775*/              OPC_RecordChild1, // #4 = $src3
/*278776*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*278778*/              OPC_CheckPredicate, 9, // Predicate_load
/*278780*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*278782*/              OPC_SwitchType /*3 cases */, 57, MVT::v8i64,// ->278842
/*278785*/                OPC_MoveParent,
/*278786*/                OPC_MoveParent,
/*278787*/                OPC_MoveParent,
/*278788*/                OPC_CheckType, MVT::v16i32,
/*278790*/                OPC_Scope, 24, /*->278816*/ // 2 children in Scope
/*278792*/                  OPC_CheckChild2Same, 2,
/*278794*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278796*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*278799*/                  OPC_EmitMergeInputChains, 1, 3, 
/*278802*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Drmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                            // Dst: (VPERMI2Drmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*278816*/                /*Scope*/ 24, /*->278841*/
/*278817*/                  OPC_CheckChild2Same, 1,
/*278819*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278821*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*278824*/                  OPC_EmitMergeInputChains, 1, 3, 
/*278827*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Drmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                            // Dst: (VPERMT2Drmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*278841*/                0, /*End of Scope*/
/*278842*/              /*SwitchType*/ 57, MVT::v4i64,// ->278901
/*278844*/                OPC_MoveParent,
/*278845*/                OPC_MoveParent,
/*278846*/                OPC_MoveParent,
/*278847*/                OPC_CheckType, MVT::v16i16,
/*278849*/                OPC_Scope, 24, /*->278875*/ // 2 children in Scope
/*278851*/                  OPC_CheckChild2Same, 2,
/*278853*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*278855*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*278858*/                  OPC_EmitMergeInputChains, 1, 3, 
/*278861*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2W256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src1) - Complexity = 31
                            // Dst: (VPERMI2W256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*278875*/                /*Scope*/ 24, /*->278900*/
/*278876*/                  OPC_CheckChild2Same, 1,
/*278878*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*278880*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*278883*/                  OPC_EmitMergeInputChains, 1, 3, 
/*278886*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src1) - Complexity = 31
                            // Dst: (VPERMT2W256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*278900*/                0, /*End of Scope*/
/*278901*/              /*SwitchType*/ 57, MVT::v2i64,// ->278960
/*278903*/                OPC_MoveParent,
/*278904*/                OPC_MoveParent,
/*278905*/                OPC_MoveParent,
/*278906*/                OPC_CheckType, MVT::v16i8,
/*278908*/                OPC_Scope, 24, /*->278934*/ // 2 children in Scope
/*278910*/                  OPC_CheckChild2Same, 2,
/*278912*/                  OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*278914*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*278917*/                  OPC_EmitMergeInputChains, 1, 3, 
/*278920*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2B128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src1) - Complexity = 31
                            // Dst: (VPERMI2B128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*278934*/                /*Scope*/ 24, /*->278959*/
/*278935*/                  OPC_CheckChild2Same, 1,
/*278937*/                  OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*278939*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*278942*/                  OPC_EmitMergeInputChains, 1, 3, 
/*278945*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src1) - Complexity = 31
                            // Dst: (VPERMT2B128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*278959*/                0, /*End of Scope*/
/*278960*/              0, // EndSwitchType
/*278961*/            /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VBROADCAST),// ->279035
/*278964*/              OPC_MoveChild0,
/*278965*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*278968*/              OPC_RecordMemRef,
/*278969*/              OPC_RecordNode, // #3 = 'ld' chained node
/*278970*/              OPC_CheckFoldableChainNode,
/*278971*/              OPC_RecordChild1, // #4 = $src3
/*278972*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*278974*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*278976*/              OPC_CheckType, MVT::i32,
/*278978*/              OPC_MoveParent,
/*278979*/              OPC_MoveParent,
/*278980*/              OPC_MoveParent,
/*278981*/              OPC_CheckType, MVT::v16i32,
/*278983*/              OPC_Scope, 24, /*->279009*/ // 2 children in Scope
/*278985*/                OPC_CheckChild2Same, 2,
/*278987*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278989*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*278992*/                OPC_EmitMergeInputChains, 1, 3, 
/*278995*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Drmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                          // Dst: (VPERMI2Drmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*279009*/              /*Scope*/ 24, /*->279034*/
/*279010*/                OPC_CheckChild2Same, 1,
/*279012*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279014*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*279017*/                OPC_EmitMergeInputChains, 1, 3, 
/*279020*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Drmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                          // Dst: (VPERMT2Drmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*279034*/              0, /*End of Scope*/
/*279035*/            0, // EndSwitchOpcode
/*279036*/          /*SwitchOpcode*/ 53|128,2/*309*/, TARGET_VAL(ISD::ADD),// ->279349
/*279040*/            OPC_Scope, 22|128,1/*150*/, /*->279193*/ // 2 children in Scope
/*279043*/              OPC_RecordChild0, // #1 = $src1
/*279044*/              OPC_MoveChild1,
/*279045*/              OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(ISD::BITCAST),// ->279149
/*279049*/                OPC_MoveChild0,
/*279050*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279053*/                OPC_RecordMemRef,
/*279054*/                OPC_RecordNode, // #2 = 'ld' chained node
/*279055*/                OPC_CheckFoldableChainNode,
/*279056*/                OPC_RecordChild1, // #3 = $src2
/*279057*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279059*/                OPC_CheckPredicate, 9, // Predicate_load
/*279061*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*279063*/                OPC_SwitchType /*3 cases */, 26, MVT::v8i64,// ->279092
/*279066*/                  OPC_MoveParent,
/*279067*/                  OPC_MoveParent,
/*279068*/                  OPC_MoveParent,
/*279069*/                  OPC_RecordChild2, // #4 = $src0
/*279070*/                  OPC_CheckType, MVT::v16i32,
/*279072*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279074*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279077*/                  OPC_EmitMergeInputChains1_2,
/*279078*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPADDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279092*/                /*SwitchType*/ 26, MVT::v4i64,// ->279120
/*279094*/                  OPC_MoveParent,
/*279095*/                  OPC_MoveParent,
/*279096*/                  OPC_MoveParent,
/*279097*/                  OPC_RecordChild2, // #4 = $src0
/*279098*/                  OPC_CheckType, MVT::v16i16,
/*279100*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279102*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279105*/                  OPC_EmitMergeInputChains1_2,
/*279106*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPADDWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279120*/                /*SwitchType*/ 26, MVT::v2i64,// ->279148
/*279122*/                  OPC_MoveParent,
/*279123*/                  OPC_MoveParent,
/*279124*/                  OPC_MoveParent,
/*279125*/                  OPC_RecordChild2, // #4 = $src0
/*279126*/                  OPC_CheckType, MVT::v16i8,
/*279128*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279130*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279133*/                  OPC_EmitMergeInputChains1_2,
/*279134*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                            // Dst: (VPADDBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279148*/                0, // EndSwitchType
/*279149*/              /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->279192
/*279152*/                OPC_MoveChild0,
/*279153*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279156*/                OPC_RecordMemRef,
/*279157*/                OPC_RecordNode, // #2 = 'ld' chained node
/*279158*/                OPC_CheckFoldableChainNode,
/*279159*/                OPC_RecordChild1, // #3 = $src2
/*279160*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279162*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*279164*/                OPC_CheckType, MVT::i32,
/*279166*/                OPC_MoveParent,
/*279167*/                OPC_MoveParent,
/*279168*/                OPC_MoveParent,
/*279169*/                OPC_RecordChild2, // #4 = $src0
/*279170*/                OPC_CheckType, MVT::v16i32,
/*279172*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279174*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279177*/                OPC_EmitMergeInputChains1_2,
/*279178*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPADDDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279192*/              0, // EndSwitchOpcode
/*279193*/            /*Scope*/ 25|128,1/*153*/, /*->279348*/
/*279195*/              OPC_MoveChild0,
/*279196*/              OPC_SwitchOpcode /*2 cases */, 103, TARGET_VAL(ISD::BITCAST),// ->279303
/*279200*/                OPC_MoveChild0,
/*279201*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279204*/                OPC_RecordMemRef,
/*279205*/                OPC_RecordNode, // #1 = 'ld' chained node
/*279206*/                OPC_CheckFoldableChainNode,
/*279207*/                OPC_RecordChild1, // #2 = $src2
/*279208*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279210*/                OPC_CheckPredicate, 9, // Predicate_load
/*279212*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*279214*/                OPC_SwitchType /*3 cases */, 27, MVT::v8i64,// ->279244
/*279217*/                  OPC_MoveParent,
/*279218*/                  OPC_MoveParent,
/*279219*/                  OPC_RecordChild1, // #3 = $src1
/*279220*/                  OPC_MoveParent,
/*279221*/                  OPC_RecordChild2, // #4 = $src0
/*279222*/                  OPC_CheckType, MVT::v16i32,
/*279224*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279226*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279229*/                  OPC_EmitMergeInputChains1_1,
/*279230*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPADDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279244*/                /*SwitchType*/ 27, MVT::v4i64,// ->279273
/*279246*/                  OPC_MoveParent,
/*279247*/                  OPC_MoveParent,
/*279248*/                  OPC_RecordChild1, // #3 = $src1
/*279249*/                  OPC_MoveParent,
/*279250*/                  OPC_RecordChild2, // #4 = $src0
/*279251*/                  OPC_CheckType, MVT::v16i16,
/*279253*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279255*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279258*/                  OPC_EmitMergeInputChains1_1,
/*279259*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPADDWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279273*/                /*SwitchType*/ 27, MVT::v2i64,// ->279302
/*279275*/                  OPC_MoveParent,
/*279276*/                  OPC_MoveParent,
/*279277*/                  OPC_RecordChild1, // #3 = $src1
/*279278*/                  OPC_MoveParent,
/*279279*/                  OPC_RecordChild2, // #4 = $src0
/*279280*/                  OPC_CheckType, MVT::v16i8,
/*279282*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279284*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279287*/                  OPC_EmitMergeInputChains1_1,
/*279288*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                            // Dst: (VPADDBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279302*/                0, // EndSwitchType
/*279303*/              /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->279347
/*279306*/                OPC_MoveChild0,
/*279307*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279310*/                OPC_RecordMemRef,
/*279311*/                OPC_RecordNode, // #1 = 'ld' chained node
/*279312*/                OPC_CheckFoldableChainNode,
/*279313*/                OPC_RecordChild1, // #2 = $src2
/*279314*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279316*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*279318*/                OPC_CheckType, MVT::i32,
/*279320*/                OPC_MoveParent,
/*279321*/                OPC_MoveParent,
/*279322*/                OPC_RecordChild1, // #3 = $src1
/*279323*/                OPC_MoveParent,
/*279324*/                OPC_RecordChild2, // #4 = $src0
/*279325*/                OPC_CheckType, MVT::v16i32,
/*279327*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279329*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279332*/                OPC_EmitMergeInputChains1_1,
/*279333*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPADDDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279347*/              0, // EndSwitchOpcode
/*279348*/            0, /*End of Scope*/
/*279349*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::SUB),// ->279503
/*279353*/            OPC_RecordChild0, // #1 = $src1
/*279354*/            OPC_MoveChild1,
/*279355*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(ISD::BITCAST),// ->279459
/*279359*/              OPC_MoveChild0,
/*279360*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279363*/              OPC_RecordMemRef,
/*279364*/              OPC_RecordNode, // #2 = 'ld' chained node
/*279365*/              OPC_CheckFoldableChainNode,
/*279366*/              OPC_RecordChild1, // #3 = $src2
/*279367*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279369*/              OPC_CheckPredicate, 9, // Predicate_load
/*279371*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*279373*/              OPC_SwitchType /*3 cases */, 26, MVT::v8i64,// ->279402
/*279376*/                OPC_MoveParent,
/*279377*/                OPC_MoveParent,
/*279378*/                OPC_MoveParent,
/*279379*/                OPC_RecordChild2, // #4 = $src0
/*279380*/                OPC_CheckType, MVT::v16i32,
/*279382*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279384*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279387*/                OPC_EmitMergeInputChains1_2,
/*279388*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPSUBDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279402*/              /*SwitchType*/ 26, MVT::v4i64,// ->279430
/*279404*/                OPC_MoveParent,
/*279405*/                OPC_MoveParent,
/*279406*/                OPC_MoveParent,
/*279407*/                OPC_RecordChild2, // #4 = $src0
/*279408*/                OPC_CheckType, MVT::v16i16,
/*279410*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279412*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279415*/                OPC_EmitMergeInputChains1_2,
/*279416*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPSUBWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279430*/              /*SwitchType*/ 26, MVT::v2i64,// ->279458
/*279432*/                OPC_MoveParent,
/*279433*/                OPC_MoveParent,
/*279434*/                OPC_MoveParent,
/*279435*/                OPC_RecordChild2, // #4 = $src0
/*279436*/                OPC_CheckType, MVT::v16i8,
/*279438*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279440*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279443*/                OPC_EmitMergeInputChains1_2,
/*279444*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPSUBBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279458*/              0, // EndSwitchType
/*279459*/            /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->279502
/*279462*/              OPC_MoveChild0,
/*279463*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279466*/              OPC_RecordMemRef,
/*279467*/              OPC_RecordNode, // #2 = 'ld' chained node
/*279468*/              OPC_CheckFoldableChainNode,
/*279469*/              OPC_RecordChild1, // #3 = $src2
/*279470*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279472*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*279474*/              OPC_CheckType, MVT::i32,
/*279476*/              OPC_MoveParent,
/*279477*/              OPC_MoveParent,
/*279478*/              OPC_MoveParent,
/*279479*/              OPC_RecordChild2, // #4 = $src0
/*279480*/              OPC_CheckType, MVT::v16i32,
/*279482*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279484*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279487*/              OPC_EmitMergeInputChains1_2,
/*279488*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSUBDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279502*/            0, // EndSwitchOpcode
/*279503*/          /*SwitchOpcode*/ 31|128,1/*159*/, TARGET_VAL(X86ISD::ADDS),// ->279666
/*279507*/            OPC_Scope, 77, /*->279586*/ // 2 children in Scope
/*279509*/              OPC_RecordChild0, // #1 = $src1
/*279510*/              OPC_MoveChild1,
/*279511*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*279514*/              OPC_MoveChild0,
/*279515*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279518*/              OPC_RecordMemRef,
/*279519*/              OPC_RecordNode, // #2 = 'ld' chained node
/*279520*/              OPC_CheckFoldableChainNode,
/*279521*/              OPC_RecordChild1, // #3 = $src2
/*279522*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279524*/              OPC_CheckPredicate, 9, // Predicate_load
/*279526*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*279528*/              OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->279557
/*279531*/                OPC_MoveParent,
/*279532*/                OPC_MoveParent,
/*279533*/                OPC_MoveParent,
/*279534*/                OPC_RecordChild2, // #4 = $src0
/*279535*/                OPC_CheckType, MVT::v16i16,
/*279537*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279539*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279542*/                OPC_EmitMergeInputChains1_2,
/*279543*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPADDSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279557*/              /*SwitchType*/ 26, MVT::v2i64,// ->279585
/*279559*/                OPC_MoveParent,
/*279560*/                OPC_MoveParent,
/*279561*/                OPC_MoveParent,
/*279562*/                OPC_RecordChild2, // #4 = $src0
/*279563*/                OPC_CheckType, MVT::v16i8,
/*279565*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279567*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279570*/                OPC_EmitMergeInputChains1_2,
/*279571*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPADDSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279585*/              0, // EndSwitchType
/*279586*/            /*Scope*/ 78, /*->279665*/
/*279587*/              OPC_MoveChild0,
/*279588*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*279591*/              OPC_MoveChild0,
/*279592*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279595*/              OPC_RecordMemRef,
/*279596*/              OPC_RecordNode, // #1 = 'ld' chained node
/*279597*/              OPC_CheckFoldableChainNode,
/*279598*/              OPC_RecordChild1, // #2 = $src2
/*279599*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279601*/              OPC_CheckPredicate, 9, // Predicate_load
/*279603*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*279605*/              OPC_SwitchType /*2 cases */, 27, MVT::v4i64,// ->279635
/*279608*/                OPC_MoveParent,
/*279609*/                OPC_MoveParent,
/*279610*/                OPC_RecordChild1, // #3 = $src1
/*279611*/                OPC_MoveParent,
/*279612*/                OPC_RecordChild2, // #4 = $src0
/*279613*/                OPC_CheckType, MVT::v16i16,
/*279615*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279617*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279620*/                OPC_EmitMergeInputChains1_1,
/*279621*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPADDSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279635*/              /*SwitchType*/ 27, MVT::v2i64,// ->279664
/*279637*/                OPC_MoveParent,
/*279638*/                OPC_MoveParent,
/*279639*/                OPC_RecordChild1, // #3 = $src1
/*279640*/                OPC_MoveParent,
/*279641*/                OPC_RecordChild2, // #4 = $src0
/*279642*/                OPC_CheckType, MVT::v16i8,
/*279644*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279646*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279649*/                OPC_EmitMergeInputChains1_1,
/*279650*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPADDSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279664*/              0, // EndSwitchType
/*279665*/            0, /*End of Scope*/
/*279666*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::SUBS),// ->279746
/*279669*/            OPC_RecordChild0, // #1 = $src1
/*279670*/            OPC_MoveChild1,
/*279671*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*279674*/            OPC_MoveChild0,
/*279675*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279678*/            OPC_RecordMemRef,
/*279679*/            OPC_RecordNode, // #2 = 'ld' chained node
/*279680*/            OPC_CheckFoldableChainNode,
/*279681*/            OPC_RecordChild1, // #3 = $src2
/*279682*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279684*/            OPC_CheckPredicate, 9, // Predicate_load
/*279686*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*279688*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->279717
/*279691*/              OPC_MoveParent,
/*279692*/              OPC_MoveParent,
/*279693*/              OPC_MoveParent,
/*279694*/              OPC_RecordChild2, // #4 = $src0
/*279695*/              OPC_CheckType, MVT::v16i16,
/*279697*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279699*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279702*/              OPC_EmitMergeInputChains1_2,
/*279703*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86subs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                        // Dst: (VPSUBSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279717*/            /*SwitchType*/ 26, MVT::v2i64,// ->279745
/*279719*/              OPC_MoveParent,
/*279720*/              OPC_MoveParent,
/*279721*/              OPC_MoveParent,
/*279722*/              OPC_RecordChild2, // #4 = $src0
/*279723*/              OPC_CheckType, MVT::v16i8,
/*279725*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279727*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279730*/              OPC_EmitMergeInputChains1_2,
/*279731*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86subs:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                        // Dst: (VPSUBSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279745*/            0, // EndSwitchType
/*279746*/          /*SwitchOpcode*/ 31|128,1/*159*/, TARGET_VAL(X86ISD::ADDUS),// ->279909
/*279750*/            OPC_Scope, 77, /*->279829*/ // 2 children in Scope
/*279752*/              OPC_RecordChild0, // #1 = $src1
/*279753*/              OPC_MoveChild1,
/*279754*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*279757*/              OPC_MoveChild0,
/*279758*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279761*/              OPC_RecordMemRef,
/*279762*/              OPC_RecordNode, // #2 = 'ld' chained node
/*279763*/              OPC_CheckFoldableChainNode,
/*279764*/              OPC_RecordChild1, // #3 = $src2
/*279765*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279767*/              OPC_CheckPredicate, 9, // Predicate_load
/*279769*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*279771*/              OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->279800
/*279774*/                OPC_MoveParent,
/*279775*/                OPC_MoveParent,
/*279776*/                OPC_MoveParent,
/*279777*/                OPC_RecordChild2, // #4 = $src0
/*279778*/                OPC_CheckType, MVT::v16i16,
/*279780*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279782*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279785*/                OPC_EmitMergeInputChains1_2,
/*279786*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPADDUSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279800*/              /*SwitchType*/ 26, MVT::v2i64,// ->279828
/*279802*/                OPC_MoveParent,
/*279803*/                OPC_MoveParent,
/*279804*/                OPC_MoveParent,
/*279805*/                OPC_RecordChild2, // #4 = $src0
/*279806*/                OPC_CheckType, MVT::v16i8,
/*279808*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279810*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279813*/                OPC_EmitMergeInputChains1_2,
/*279814*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPADDUSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279828*/              0, // EndSwitchType
/*279829*/            /*Scope*/ 78, /*->279908*/
/*279830*/              OPC_MoveChild0,
/*279831*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*279834*/              OPC_MoveChild0,
/*279835*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279838*/              OPC_RecordMemRef,
/*279839*/              OPC_RecordNode, // #1 = 'ld' chained node
/*279840*/              OPC_CheckFoldableChainNode,
/*279841*/              OPC_RecordChild1, // #2 = $src2
/*279842*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279844*/              OPC_CheckPredicate, 9, // Predicate_load
/*279846*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*279848*/              OPC_SwitchType /*2 cases */, 27, MVT::v4i64,// ->279878
/*279851*/                OPC_MoveParent,
/*279852*/                OPC_MoveParent,
/*279853*/                OPC_RecordChild1, // #3 = $src1
/*279854*/                OPC_MoveParent,
/*279855*/                OPC_RecordChild2, // #4 = $src0
/*279856*/                OPC_CheckType, MVT::v16i16,
/*279858*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279860*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279863*/                OPC_EmitMergeInputChains1_1,
/*279864*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPADDUSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279878*/              /*SwitchType*/ 27, MVT::v2i64,// ->279907
/*279880*/                OPC_MoveParent,
/*279881*/                OPC_MoveParent,
/*279882*/                OPC_RecordChild1, // #3 = $src1
/*279883*/                OPC_MoveParent,
/*279884*/                OPC_RecordChild2, // #4 = $src0
/*279885*/                OPC_CheckType, MVT::v16i8,
/*279887*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279889*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279892*/                OPC_EmitMergeInputChains1_1,
/*279893*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPADDUSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279907*/              0, // EndSwitchType
/*279908*/            0, /*End of Scope*/
/*279909*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::SUBUS),// ->279989
/*279912*/            OPC_RecordChild0, // #1 = $src1
/*279913*/            OPC_MoveChild1,
/*279914*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*279917*/            OPC_MoveChild0,
/*279918*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*279921*/            OPC_RecordMemRef,
/*279922*/            OPC_RecordNode, // #2 = 'ld' chained node
/*279923*/            OPC_CheckFoldableChainNode,
/*279924*/            OPC_RecordChild1, // #3 = $src2
/*279925*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*279927*/            OPC_CheckPredicate, 9, // Predicate_load
/*279929*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*279931*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->279960
/*279934*/              OPC_MoveParent,
/*279935*/              OPC_MoveParent,
/*279936*/              OPC_MoveParent,
/*279937*/              OPC_RecordChild2, // #4 = $src0
/*279938*/              OPC_CheckType, MVT::v16i16,
/*279940*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279942*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279945*/              OPC_EmitMergeInputChains1_2,
/*279946*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86subus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                        // Dst: (VPSUBUSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279960*/            /*SwitchType*/ 26, MVT::v2i64,// ->279988
/*279962*/              OPC_MoveParent,
/*279963*/              OPC_MoveParent,
/*279964*/              OPC_MoveParent,
/*279965*/              OPC_RecordChild2, // #4 = $src0
/*279966*/              OPC_CheckType, MVT::v16i8,
/*279968*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279970*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*279973*/              OPC_EmitMergeInputChains1_2,
/*279974*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86subus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                        // Dst: (VPSUBUSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*279988*/            0, // EndSwitchType
/*279989*/          /*SwitchOpcode*/ 122|128,1/*250*/, TARGET_VAL(ISD::MUL),// ->280243
/*279993*/            OPC_Scope, 122, /*->280117*/ // 2 children in Scope
/*279995*/              OPC_RecordChild0, // #1 = $src1
/*279996*/              OPC_MoveChild1,
/*279997*/              OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::BITCAST),// ->280073
/*280001*/                OPC_MoveChild0,
/*280002*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280005*/                OPC_RecordMemRef,
/*280006*/                OPC_RecordNode, // #2 = 'ld' chained node
/*280007*/                OPC_CheckFoldableChainNode,
/*280008*/                OPC_RecordChild1, // #3 = $src2
/*280009*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280011*/                OPC_CheckPredicate, 9, // Predicate_load
/*280013*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*280015*/                OPC_SwitchType /*2 cases */, 26, MVT::v8i64,// ->280044
/*280018*/                  OPC_MoveParent,
/*280019*/                  OPC_MoveParent,
/*280020*/                  OPC_MoveParent,
/*280021*/                  OPC_RecordChild2, // #4 = $src0
/*280022*/                  OPC_CheckType, MVT::v16i32,
/*280024*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280026*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280029*/                  OPC_EmitMergeInputChains1_2,
/*280030*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPMULLDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280044*/                /*SwitchType*/ 26, MVT::v4i64,// ->280072
/*280046*/                  OPC_MoveParent,
/*280047*/                  OPC_MoveParent,
/*280048*/                  OPC_MoveParent,
/*280049*/                  OPC_RecordChild2, // #4 = $src0
/*280050*/                  OPC_CheckType, MVT::v16i16,
/*280052*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280054*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280057*/                  OPC_EmitMergeInputChains1_2,
/*280058*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPMULLWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280072*/                0, // EndSwitchType
/*280073*/              /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->280116
/*280076*/                OPC_MoveChild0,
/*280077*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280080*/                OPC_RecordMemRef,
/*280081*/                OPC_RecordNode, // #2 = 'ld' chained node
/*280082*/                OPC_CheckFoldableChainNode,
/*280083*/                OPC_RecordChild1, // #3 = $src2
/*280084*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280086*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*280088*/                OPC_CheckType, MVT::i32,
/*280090*/                OPC_MoveParent,
/*280091*/                OPC_MoveParent,
/*280092*/                OPC_MoveParent,
/*280093*/                OPC_RecordChild2, // #4 = $src0
/*280094*/                OPC_CheckType, MVT::v16i32,
/*280096*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280098*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280101*/                OPC_EmitMergeInputChains1_2,
/*280102*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPMULLDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280116*/              0, // EndSwitchOpcode
/*280117*/            /*Scope*/ 124, /*->280242*/
/*280118*/              OPC_MoveChild0,
/*280119*/              OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::BITCAST),// ->280197
/*280123*/                OPC_MoveChild0,
/*280124*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280127*/                OPC_RecordMemRef,
/*280128*/                OPC_RecordNode, // #1 = 'ld' chained node
/*280129*/                OPC_CheckFoldableChainNode,
/*280130*/                OPC_RecordChild1, // #2 = $src2
/*280131*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280133*/                OPC_CheckPredicate, 9, // Predicate_load
/*280135*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*280137*/                OPC_SwitchType /*2 cases */, 27, MVT::v8i64,// ->280167
/*280140*/                  OPC_MoveParent,
/*280141*/                  OPC_MoveParent,
/*280142*/                  OPC_RecordChild1, // #3 = $src1
/*280143*/                  OPC_MoveParent,
/*280144*/                  OPC_RecordChild2, // #4 = $src0
/*280145*/                  OPC_CheckType, MVT::v16i32,
/*280147*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280149*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280152*/                  OPC_EmitMergeInputChains1_1,
/*280153*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPMULLDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280167*/                /*SwitchType*/ 27, MVT::v4i64,// ->280196
/*280169*/                  OPC_MoveParent,
/*280170*/                  OPC_MoveParent,
/*280171*/                  OPC_RecordChild1, // #3 = $src1
/*280172*/                  OPC_MoveParent,
/*280173*/                  OPC_RecordChild2, // #4 = $src0
/*280174*/                  OPC_CheckType, MVT::v16i16,
/*280176*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280178*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280181*/                  OPC_EmitMergeInputChains1_1,
/*280182*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPMULLWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280196*/                0, // EndSwitchType
/*280197*/              /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->280241
/*280200*/                OPC_MoveChild0,
/*280201*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280204*/                OPC_RecordMemRef,
/*280205*/                OPC_RecordNode, // #1 = 'ld' chained node
/*280206*/                OPC_CheckFoldableChainNode,
/*280207*/                OPC_RecordChild1, // #2 = $src2
/*280208*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280210*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*280212*/                OPC_CheckType, MVT::i32,
/*280214*/                OPC_MoveParent,
/*280215*/                OPC_MoveParent,
/*280216*/                OPC_RecordChild1, // #3 = $src1
/*280217*/                OPC_MoveParent,
/*280218*/                OPC_RecordChild2, // #4 = $src0
/*280219*/                OPC_CheckType, MVT::v16i32,
/*280221*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280223*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280226*/                OPC_EmitMergeInputChains1_1,
/*280227*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPMULLDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280241*/              0, // EndSwitchOpcode
/*280242*/            0, /*End of Scope*/
/*280243*/          /*SwitchOpcode*/ 98, TARGET_VAL(ISD::MULHS),// ->280344
/*280246*/            OPC_Scope, 47, /*->280295*/ // 2 children in Scope
/*280248*/              OPC_RecordChild0, // #1 = $src1
/*280249*/              OPC_MoveChild1,
/*280250*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*280253*/              OPC_MoveChild0,
/*280254*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280257*/              OPC_RecordMemRef,
/*280258*/              OPC_RecordNode, // #2 = 'ld' chained node
/*280259*/              OPC_CheckFoldableChainNode,
/*280260*/              OPC_RecordChild1, // #3 = $src2
/*280261*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280263*/              OPC_CheckPredicate, 9, // Predicate_load
/*280265*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*280267*/              OPC_CheckType, MVT::v4i64,
/*280269*/              OPC_MoveParent,
/*280270*/              OPC_MoveParent,
/*280271*/              OPC_MoveParent,
/*280272*/              OPC_RecordChild2, // #4 = $src0
/*280273*/              OPC_CheckType, MVT::v16i16,
/*280275*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280277*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280280*/              OPC_EmitMergeInputChains1_2,
/*280281*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280295*/            /*Scope*/ 47, /*->280343*/
/*280296*/              OPC_MoveChild0,
/*280297*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*280300*/              OPC_MoveChild0,
/*280301*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280304*/              OPC_RecordMemRef,
/*280305*/              OPC_RecordNode, // #1 = 'ld' chained node
/*280306*/              OPC_CheckFoldableChainNode,
/*280307*/              OPC_RecordChild1, // #2 = $src2
/*280308*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280310*/              OPC_CheckPredicate, 9, // Predicate_load
/*280312*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*280314*/              OPC_CheckType, MVT::v4i64,
/*280316*/              OPC_MoveParent,
/*280317*/              OPC_MoveParent,
/*280318*/              OPC_RecordChild1, // #3 = $src1
/*280319*/              OPC_MoveParent,
/*280320*/              OPC_RecordChild2, // #4 = $src0
/*280321*/              OPC_CheckType, MVT::v16i16,
/*280323*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280325*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280328*/              OPC_EmitMergeInputChains1_1,
/*280329*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280343*/            0, /*End of Scope*/
/*280344*/          /*SwitchOpcode*/ 98, TARGET_VAL(ISD::MULHU),// ->280445
/*280347*/            OPC_Scope, 47, /*->280396*/ // 2 children in Scope
/*280349*/              OPC_RecordChild0, // #1 = $src1
/*280350*/              OPC_MoveChild1,
/*280351*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*280354*/              OPC_MoveChild0,
/*280355*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280358*/              OPC_RecordMemRef,
/*280359*/              OPC_RecordNode, // #2 = 'ld' chained node
/*280360*/              OPC_CheckFoldableChainNode,
/*280361*/              OPC_RecordChild1, // #3 = $src2
/*280362*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280364*/              OPC_CheckPredicate, 9, // Predicate_load
/*280366*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*280368*/              OPC_CheckType, MVT::v4i64,
/*280370*/              OPC_MoveParent,
/*280371*/              OPC_MoveParent,
/*280372*/              OPC_MoveParent,
/*280373*/              OPC_RecordChild2, // #4 = $src0
/*280374*/              OPC_CheckType, MVT::v16i16,
/*280376*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280378*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280381*/              OPC_EmitMergeInputChains1_2,
/*280382*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhu:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280396*/            /*Scope*/ 47, /*->280444*/
/*280397*/              OPC_MoveChild0,
/*280398*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*280401*/              OPC_MoveChild0,
/*280402*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280405*/              OPC_RecordMemRef,
/*280406*/              OPC_RecordNode, // #1 = 'ld' chained node
/*280407*/              OPC_CheckFoldableChainNode,
/*280408*/              OPC_RecordChild1, // #2 = $src2
/*280409*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280411*/              OPC_CheckPredicate, 9, // Predicate_load
/*280413*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*280415*/              OPC_CheckType, MVT::v4i64,
/*280417*/              OPC_MoveParent,
/*280418*/              OPC_MoveParent,
/*280419*/              OPC_RecordChild1, // #3 = $src1
/*280420*/              OPC_MoveParent,
/*280421*/              OPC_RecordChild2, // #4 = $src0
/*280422*/              OPC_CheckType, MVT::v16i16,
/*280424*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280426*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280429*/              OPC_EmitMergeInputChains1_1,
/*280430*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhu:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280444*/            0, /*End of Scope*/
/*280445*/          /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::MULHRS),// ->280546
/*280448*/            OPC_Scope, 47, /*->280497*/ // 2 children in Scope
/*280450*/              OPC_RecordChild0, // #1 = $src1
/*280451*/              OPC_MoveChild1,
/*280452*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*280455*/              OPC_MoveChild0,
/*280456*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280459*/              OPC_RecordMemRef,
/*280460*/              OPC_RecordNode, // #2 = 'ld' chained node
/*280461*/              OPC_CheckFoldableChainNode,
/*280462*/              OPC_RecordChild1, // #3 = $src2
/*280463*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280465*/              OPC_CheckPredicate, 9, // Predicate_load
/*280467*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*280469*/              OPC_CheckType, MVT::v4i64,
/*280471*/              OPC_MoveParent,
/*280472*/              OPC_MoveParent,
/*280473*/              OPC_MoveParent,
/*280474*/              OPC_RecordChild2, // #4 = $src0
/*280475*/              OPC_CheckType, MVT::v16i16,
/*280477*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280479*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280482*/              OPC_EmitMergeInputChains1_2,
/*280483*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86mulhrs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHRSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280497*/            /*Scope*/ 47, /*->280545*/
/*280498*/              OPC_MoveChild0,
/*280499*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*280502*/              OPC_MoveChild0,
/*280503*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280506*/              OPC_RecordMemRef,
/*280507*/              OPC_RecordNode, // #1 = 'ld' chained node
/*280508*/              OPC_CheckFoldableChainNode,
/*280509*/              OPC_RecordChild1, // #2 = $src2
/*280510*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280512*/              OPC_CheckPredicate, 9, // Predicate_load
/*280514*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*280516*/              OPC_CheckType, MVT::v4i64,
/*280518*/              OPC_MoveParent,
/*280519*/              OPC_MoveParent,
/*280520*/              OPC_RecordChild1, // #3 = $src1
/*280521*/              OPC_MoveParent,
/*280522*/              OPC_RecordChild2, // #4 = $src0
/*280523*/              OPC_CheckType, MVT::v16i16,
/*280525*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280527*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280530*/              OPC_EmitMergeInputChains1_1,
/*280531*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86mulhrs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                        // Dst: (VPMULHRSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280545*/            0, /*End of Scope*/
/*280546*/          /*SwitchOpcode*/ 31|128,1/*159*/, TARGET_VAL(X86ISD::AVG),// ->280709
/*280550*/            OPC_Scope, 77, /*->280629*/ // 2 children in Scope
/*280552*/              OPC_RecordChild0, // #1 = $src1
/*280553*/              OPC_MoveChild1,
/*280554*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*280557*/              OPC_MoveChild0,
/*280558*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280561*/              OPC_RecordMemRef,
/*280562*/              OPC_RecordNode, // #2 = 'ld' chained node
/*280563*/              OPC_CheckFoldableChainNode,
/*280564*/              OPC_RecordChild1, // #3 = $src2
/*280565*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280567*/              OPC_CheckPredicate, 9, // Predicate_load
/*280569*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*280571*/              OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->280600
/*280574*/                OPC_MoveParent,
/*280575*/                OPC_MoveParent,
/*280576*/                OPC_MoveParent,
/*280577*/                OPC_RecordChild2, // #4 = $src0
/*280578*/                OPC_CheckType, MVT::v16i16,
/*280580*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280582*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280585*/                OPC_EmitMergeInputChains1_2,
/*280586*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPAVGWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280600*/              /*SwitchType*/ 26, MVT::v2i64,// ->280628
/*280602*/                OPC_MoveParent,
/*280603*/                OPC_MoveParent,
/*280604*/                OPC_MoveParent,
/*280605*/                OPC_RecordChild2, // #4 = $src0
/*280606*/                OPC_CheckType, MVT::v16i8,
/*280608*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280610*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280613*/                OPC_EmitMergeInputChains1_2,
/*280614*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPAVGBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280628*/              0, // EndSwitchType
/*280629*/            /*Scope*/ 78, /*->280708*/
/*280630*/              OPC_MoveChild0,
/*280631*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*280634*/              OPC_MoveChild0,
/*280635*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280638*/              OPC_RecordMemRef,
/*280639*/              OPC_RecordNode, // #1 = 'ld' chained node
/*280640*/              OPC_CheckFoldableChainNode,
/*280641*/              OPC_RecordChild1, // #2 = $src2
/*280642*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280644*/              OPC_CheckPredicate, 9, // Predicate_load
/*280646*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*280648*/              OPC_SwitchType /*2 cases */, 27, MVT::v4i64,// ->280678
/*280651*/                OPC_MoveParent,
/*280652*/                OPC_MoveParent,
/*280653*/                OPC_RecordChild1, // #3 = $src1
/*280654*/                OPC_MoveParent,
/*280655*/                OPC_RecordChild2, // #4 = $src0
/*280656*/                OPC_CheckType, MVT::v16i16,
/*280658*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280660*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280663*/                OPC_EmitMergeInputChains1_1,
/*280664*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPAVGWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280678*/              /*SwitchType*/ 27, MVT::v2i64,// ->280707
/*280680*/                OPC_MoveParent,
/*280681*/                OPC_MoveParent,
/*280682*/                OPC_RecordChild1, // #3 = $src1
/*280683*/                OPC_MoveParent,
/*280684*/                OPC_RecordChild2, // #4 = $src0
/*280685*/                OPC_CheckType, MVT::v16i8,
/*280687*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280689*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280692*/                OPC_EmitMergeInputChains1_1,
/*280693*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPAVGBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280707*/              0, // EndSwitchType
/*280708*/            0, /*End of Scope*/
/*280709*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::PACKSS),// ->280859
/*280713*/            OPC_RecordChild0, // #1 = $src1
/*280714*/            OPC_Scope, 93, /*->280809*/ // 2 children in Scope
/*280716*/              OPC_CheckChild0Type, MVT::v8i32,
/*280718*/              OPC_MoveChild1,
/*280719*/              OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->280765
/*280723*/                OPC_MoveChild0,
/*280724*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280727*/                OPC_RecordMemRef,
/*280728*/                OPC_RecordNode, // #2 = 'ld' chained node
/*280729*/                OPC_CheckFoldableChainNode,
/*280730*/                OPC_RecordChild1, // #3 = $src2
/*280731*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280733*/                OPC_CheckPredicate, 9, // Predicate_load
/*280735*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*280737*/                OPC_CheckType, MVT::v4i64,
/*280739*/                OPC_MoveParent,
/*280740*/                OPC_MoveParent,
/*280741*/                OPC_MoveParent,
/*280742*/                OPC_RecordChild2, // #4 = $src0
/*280743*/                OPC_CheckType, MVT::v16i16,
/*280745*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280747*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280750*/                OPC_EmitMergeInputChains1_2,
/*280751*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packss:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPACKSSDWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280765*/              /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->280808
/*280768*/                OPC_MoveChild0,
/*280769*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280772*/                OPC_RecordMemRef,
/*280773*/                OPC_RecordNode, // #2 = 'ld' chained node
/*280774*/                OPC_CheckFoldableChainNode,
/*280775*/                OPC_RecordChild1, // #3 = $src2
/*280776*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280778*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*280780*/                OPC_CheckType, MVT::i32,
/*280782*/                OPC_MoveParent,
/*280783*/                OPC_MoveParent,
/*280784*/                OPC_MoveParent,
/*280785*/                OPC_RecordChild2, // #4 = $src0
/*280786*/                OPC_CheckType, MVT::v16i16,
/*280788*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280790*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280793*/                OPC_EmitMergeInputChains1_2,
/*280794*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packss:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPACKSSDWZ256rmbk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280808*/              0, // EndSwitchOpcode
/*280809*/            /*Scope*/ 48, /*->280858*/
/*280810*/              OPC_CheckChild0Type, MVT::v8i16,
/*280812*/              OPC_MoveChild1,
/*280813*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*280816*/              OPC_MoveChild0,
/*280817*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280820*/              OPC_RecordMemRef,
/*280821*/              OPC_RecordNode, // #2 = 'ld' chained node
/*280822*/              OPC_CheckFoldableChainNode,
/*280823*/              OPC_RecordChild1, // #3 = $src2
/*280824*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280826*/              OPC_CheckPredicate, 9, // Predicate_load
/*280828*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*280830*/              OPC_CheckType, MVT::v2i64,
/*280832*/              OPC_MoveParent,
/*280833*/              OPC_MoveParent,
/*280834*/              OPC_MoveParent,
/*280835*/              OPC_RecordChild2, // #4 = $src0
/*280836*/              OPC_CheckType, MVT::v16i8,
/*280838*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280840*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280843*/              OPC_EmitMergeInputChains1_2,
/*280844*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Packss:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                        // Dst: (VPACKSSWBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280858*/            0, /*End of Scope*/
/*280859*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::PACKUS),// ->281009
/*280863*/            OPC_RecordChild0, // #1 = $src1
/*280864*/            OPC_Scope, 93, /*->280959*/ // 2 children in Scope
/*280866*/              OPC_CheckChild0Type, MVT::v8i32,
/*280868*/              OPC_MoveChild1,
/*280869*/              OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->280915
/*280873*/                OPC_MoveChild0,
/*280874*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280877*/                OPC_RecordMemRef,
/*280878*/                OPC_RecordNode, // #2 = 'ld' chained node
/*280879*/                OPC_CheckFoldableChainNode,
/*280880*/                OPC_RecordChild1, // #3 = $src2
/*280881*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280883*/                OPC_CheckPredicate, 9, // Predicate_load
/*280885*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*280887*/                OPC_CheckType, MVT::v4i64,
/*280889*/                OPC_MoveParent,
/*280890*/                OPC_MoveParent,
/*280891*/                OPC_MoveParent,
/*280892*/                OPC_RecordChild2, // #4 = $src0
/*280893*/                OPC_CheckType, MVT::v16i16,
/*280895*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280897*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280900*/                OPC_EmitMergeInputChains1_2,
/*280901*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packus:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPACKUSDWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280915*/              /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->280958
/*280918*/                OPC_MoveChild0,
/*280919*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280922*/                OPC_RecordMemRef,
/*280923*/                OPC_RecordNode, // #2 = 'ld' chained node
/*280924*/                OPC_CheckFoldableChainNode,
/*280925*/                OPC_RecordChild1, // #3 = $src2
/*280926*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280928*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*280930*/                OPC_CheckType, MVT::i32,
/*280932*/                OPC_MoveParent,
/*280933*/                OPC_MoveParent,
/*280934*/                OPC_MoveParent,
/*280935*/                OPC_RecordChild2, // #4 = $src0
/*280936*/                OPC_CheckType, MVT::v16i16,
/*280938*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280940*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280943*/                OPC_EmitMergeInputChains1_2,
/*280944*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packus:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPACKUSDWZ256rmbk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*280958*/              0, // EndSwitchOpcode
/*280959*/            /*Scope*/ 48, /*->281008*/
/*280960*/              OPC_CheckChild0Type, MVT::v8i16,
/*280962*/              OPC_MoveChild1,
/*280963*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*280966*/              OPC_MoveChild0,
/*280967*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*280970*/              OPC_RecordMemRef,
/*280971*/              OPC_RecordNode, // #2 = 'ld' chained node
/*280972*/              OPC_CheckFoldableChainNode,
/*280973*/              OPC_RecordChild1, // #3 = $src2
/*280974*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*280976*/              OPC_CheckPredicate, 9, // Predicate_load
/*280978*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*280980*/              OPC_CheckType, MVT::v2i64,
/*280982*/              OPC_MoveParent,
/*280983*/              OPC_MoveParent,
/*280984*/              OPC_MoveParent,
/*280985*/              OPC_RecordChild2, // #4 = $src0
/*280986*/              OPC_CheckType, MVT::v16i8,
/*280988*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280990*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*280993*/              OPC_EmitMergeInputChains1_2,
/*280994*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Packus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                        // Dst: (VPACKUSWBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281008*/            0, /*End of Scope*/
/*281009*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VPMADDUBSW),// ->281059
/*281012*/            OPC_RecordChild0, // #1 = $src1
/*281013*/            OPC_MoveChild1,
/*281014*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*281017*/            OPC_MoveChild0,
/*281018*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281021*/            OPC_RecordMemRef,
/*281022*/            OPC_RecordNode, // #2 = 'ld' chained node
/*281023*/            OPC_CheckFoldableChainNode,
/*281024*/            OPC_RecordChild1, // #3 = $src2
/*281025*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281027*/            OPC_CheckPredicate, 9, // Predicate_load
/*281029*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*281031*/            OPC_CheckType, MVT::v4i64,
/*281033*/            OPC_MoveParent,
/*281034*/            OPC_MoveParent,
/*281035*/            OPC_MoveParent,
/*281036*/            OPC_RecordChild2, // #4 = $src0
/*281037*/            OPC_CheckType, MVT::v16i16,
/*281039*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281041*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281044*/            OPC_EmitMergeInputChains1_2,
/*281045*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vpmaddubsw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                      // Dst: (VPMADDUBSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281059*/          /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::VPMADDWD),// ->281160
/*281062*/            OPC_Scope, 47, /*->281111*/ // 2 children in Scope
/*281064*/              OPC_RecordChild0, // #1 = $src1
/*281065*/              OPC_MoveChild1,
/*281066*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*281069*/              OPC_MoveChild0,
/*281070*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281073*/              OPC_RecordMemRef,
/*281074*/              OPC_RecordNode, // #2 = 'ld' chained node
/*281075*/              OPC_CheckFoldableChainNode,
/*281076*/              OPC_RecordChild1, // #3 = $src2
/*281077*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281079*/              OPC_CheckPredicate, 9, // Predicate_load
/*281081*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*281083*/              OPC_CheckType, MVT::v8i64,
/*281085*/              OPC_MoveParent,
/*281086*/              OPC_MoveParent,
/*281087*/              OPC_MoveParent,
/*281088*/              OPC_RecordChild2, // #4 = $src0
/*281089*/              OPC_CheckType, MVT::v16i32,
/*281091*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*281093*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281096*/              OPC_EmitMergeInputChains1_2,
/*281097*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpmaddwd:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPMADDWDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281111*/            /*Scope*/ 47, /*->281159*/
/*281112*/              OPC_MoveChild0,
/*281113*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*281116*/              OPC_MoveChild0,
/*281117*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281120*/              OPC_RecordMemRef,
/*281121*/              OPC_RecordNode, // #1 = 'ld' chained node
/*281122*/              OPC_CheckFoldableChainNode,
/*281123*/              OPC_RecordChild1, // #2 = $src2
/*281124*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281126*/              OPC_CheckPredicate, 9, // Predicate_load
/*281128*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*281130*/              OPC_CheckType, MVT::v8i64,
/*281132*/              OPC_MoveParent,
/*281133*/              OPC_MoveParent,
/*281134*/              OPC_RecordChild1, // #3 = $src1
/*281135*/              OPC_MoveParent,
/*281136*/              OPC_RecordChild2, // #4 = $src0
/*281137*/              OPC_CheckType, MVT::v16i32,
/*281139*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*281141*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281144*/              OPC_EmitMergeInputChains1_1,
/*281145*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpmaddwd:{ *:[v16i32] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPMADDWDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281159*/            0, /*End of Scope*/
/*281160*/          /*SwitchOpcode*/ 53|128,2/*309*/, TARGET_VAL(ISD::SMAX),// ->281473
/*281164*/            OPC_Scope, 22|128,1/*150*/, /*->281317*/ // 2 children in Scope
/*281167*/              OPC_RecordChild0, // #1 = $src1
/*281168*/              OPC_MoveChild1,
/*281169*/              OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(ISD::BITCAST),// ->281273
/*281173*/                OPC_MoveChild0,
/*281174*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281177*/                OPC_RecordMemRef,
/*281178*/                OPC_RecordNode, // #2 = 'ld' chained node
/*281179*/                OPC_CheckFoldableChainNode,
/*281180*/                OPC_RecordChild1, // #3 = $src2
/*281181*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281183*/                OPC_CheckPredicate, 9, // Predicate_load
/*281185*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*281187*/                OPC_SwitchType /*3 cases */, 26, MVT::v2i64,// ->281216
/*281190*/                  OPC_MoveParent,
/*281191*/                  OPC_MoveParent,
/*281192*/                  OPC_MoveParent,
/*281193*/                  OPC_RecordChild2, // #4 = $src0
/*281194*/                  OPC_CheckType, MVT::v16i8,
/*281196*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281198*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281201*/                  OPC_EmitMergeInputChains1_2,
/*281202*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281216*/                /*SwitchType*/ 26, MVT::v4i64,// ->281244
/*281218*/                  OPC_MoveParent,
/*281219*/                  OPC_MoveParent,
/*281220*/                  OPC_MoveParent,
/*281221*/                  OPC_RecordChild2, // #4 = $src0
/*281222*/                  OPC_CheckType, MVT::v16i16,
/*281224*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281226*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281229*/                  OPC_EmitMergeInputChains1_2,
/*281230*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281244*/                /*SwitchType*/ 26, MVT::v8i64,// ->281272
/*281246*/                  OPC_MoveParent,
/*281247*/                  OPC_MoveParent,
/*281248*/                  OPC_MoveParent,
/*281249*/                  OPC_RecordChild2, // #4 = $src0
/*281250*/                  OPC_CheckType, MVT::v16i32,
/*281252*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281254*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281257*/                  OPC_EmitMergeInputChains1_2,
/*281258*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281272*/                0, // EndSwitchType
/*281273*/              /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->281316
/*281276*/                OPC_MoveChild0,
/*281277*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281280*/                OPC_RecordMemRef,
/*281281*/                OPC_RecordNode, // #2 = 'ld' chained node
/*281282*/                OPC_CheckFoldableChainNode,
/*281283*/                OPC_RecordChild1, // #3 = $src2
/*281284*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281286*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*281288*/                OPC_CheckType, MVT::i32,
/*281290*/                OPC_MoveParent,
/*281291*/                OPC_MoveParent,
/*281292*/                OPC_MoveParent,
/*281293*/                OPC_RecordChild2, // #4 = $src0
/*281294*/                OPC_CheckType, MVT::v16i32,
/*281296*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281298*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281301*/                OPC_EmitMergeInputChains1_2,
/*281302*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPMAXSDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281316*/              0, // EndSwitchOpcode
/*281317*/            /*Scope*/ 25|128,1/*153*/, /*->281472*/
/*281319*/              OPC_MoveChild0,
/*281320*/              OPC_SwitchOpcode /*2 cases */, 103, TARGET_VAL(ISD::BITCAST),// ->281427
/*281324*/                OPC_MoveChild0,
/*281325*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281328*/                OPC_RecordMemRef,
/*281329*/                OPC_RecordNode, // #1 = 'ld' chained node
/*281330*/                OPC_CheckFoldableChainNode,
/*281331*/                OPC_RecordChild1, // #2 = $src2
/*281332*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281334*/                OPC_CheckPredicate, 9, // Predicate_load
/*281336*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*281338*/                OPC_SwitchType /*3 cases */, 27, MVT::v2i64,// ->281368
/*281341*/                  OPC_MoveParent,
/*281342*/                  OPC_MoveParent,
/*281343*/                  OPC_RecordChild1, // #3 = $src1
/*281344*/                  OPC_MoveParent,
/*281345*/                  OPC_RecordChild2, // #4 = $src0
/*281346*/                  OPC_CheckType, MVT::v16i8,
/*281348*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281350*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281353*/                  OPC_EmitMergeInputChains1_1,
/*281354*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281368*/                /*SwitchType*/ 27, MVT::v4i64,// ->281397
/*281370*/                  OPC_MoveParent,
/*281371*/                  OPC_MoveParent,
/*281372*/                  OPC_RecordChild1, // #3 = $src1
/*281373*/                  OPC_MoveParent,
/*281374*/                  OPC_RecordChild2, // #4 = $src0
/*281375*/                  OPC_CheckType, MVT::v16i16,
/*281377*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281379*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281382*/                  OPC_EmitMergeInputChains1_1,
/*281383*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281397*/                /*SwitchType*/ 27, MVT::v8i64,// ->281426
/*281399*/                  OPC_MoveParent,
/*281400*/                  OPC_MoveParent,
/*281401*/                  OPC_RecordChild1, // #3 = $src1
/*281402*/                  OPC_MoveParent,
/*281403*/                  OPC_RecordChild2, // #4 = $src0
/*281404*/                  OPC_CheckType, MVT::v16i32,
/*281406*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281408*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281411*/                  OPC_EmitMergeInputChains1_1,
/*281412*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXSDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281426*/                0, // EndSwitchType
/*281427*/              /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->281471
/*281430*/                OPC_MoveChild0,
/*281431*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281434*/                OPC_RecordMemRef,
/*281435*/                OPC_RecordNode, // #1 = 'ld' chained node
/*281436*/                OPC_CheckFoldableChainNode,
/*281437*/                OPC_RecordChild1, // #2 = $src2
/*281438*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281440*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*281442*/                OPC_CheckType, MVT::i32,
/*281444*/                OPC_MoveParent,
/*281445*/                OPC_MoveParent,
/*281446*/                OPC_RecordChild1, // #3 = $src1
/*281447*/                OPC_MoveParent,
/*281448*/                OPC_RecordChild2, // #4 = $src0
/*281449*/                OPC_CheckType, MVT::v16i32,
/*281451*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281453*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281456*/                OPC_EmitMergeInputChains1_1,
/*281457*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPMAXSDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281471*/              0, // EndSwitchOpcode
/*281472*/            0, /*End of Scope*/
/*281473*/          /*SwitchOpcode*/ 53|128,2/*309*/, TARGET_VAL(ISD::UMAX),// ->281786
/*281477*/            OPC_Scope, 22|128,1/*150*/, /*->281630*/ // 2 children in Scope
/*281480*/              OPC_RecordChild0, // #1 = $src1
/*281481*/              OPC_MoveChild1,
/*281482*/              OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(ISD::BITCAST),// ->281586
/*281486*/                OPC_MoveChild0,
/*281487*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281490*/                OPC_RecordMemRef,
/*281491*/                OPC_RecordNode, // #2 = 'ld' chained node
/*281492*/                OPC_CheckFoldableChainNode,
/*281493*/                OPC_RecordChild1, // #3 = $src2
/*281494*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281496*/                OPC_CheckPredicate, 9, // Predicate_load
/*281498*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*281500*/                OPC_SwitchType /*3 cases */, 26, MVT::v2i64,// ->281529
/*281503*/                  OPC_MoveParent,
/*281504*/                  OPC_MoveParent,
/*281505*/                  OPC_MoveParent,
/*281506*/                  OPC_RecordChild2, // #4 = $src0
/*281507*/                  OPC_CheckType, MVT::v16i8,
/*281509*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281511*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281514*/                  OPC_EmitMergeInputChains1_2,
/*281515*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281529*/                /*SwitchType*/ 26, MVT::v4i64,// ->281557
/*281531*/                  OPC_MoveParent,
/*281532*/                  OPC_MoveParent,
/*281533*/                  OPC_MoveParent,
/*281534*/                  OPC_RecordChild2, // #4 = $src0
/*281535*/                  OPC_CheckType, MVT::v16i16,
/*281537*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281539*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281542*/                  OPC_EmitMergeInputChains1_2,
/*281543*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281557*/                /*SwitchType*/ 26, MVT::v8i64,// ->281585
/*281559*/                  OPC_MoveParent,
/*281560*/                  OPC_MoveParent,
/*281561*/                  OPC_MoveParent,
/*281562*/                  OPC_RecordChild2, // #4 = $src0
/*281563*/                  OPC_CheckType, MVT::v16i32,
/*281565*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281567*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281570*/                  OPC_EmitMergeInputChains1_2,
/*281571*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281585*/                0, // EndSwitchType
/*281586*/              /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->281629
/*281589*/                OPC_MoveChild0,
/*281590*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281593*/                OPC_RecordMemRef,
/*281594*/                OPC_RecordNode, // #2 = 'ld' chained node
/*281595*/                OPC_CheckFoldableChainNode,
/*281596*/                OPC_RecordChild1, // #3 = $src2
/*281597*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281599*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*281601*/                OPC_CheckType, MVT::i32,
/*281603*/                OPC_MoveParent,
/*281604*/                OPC_MoveParent,
/*281605*/                OPC_MoveParent,
/*281606*/                OPC_RecordChild2, // #4 = $src0
/*281607*/                OPC_CheckType, MVT::v16i32,
/*281609*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281611*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281614*/                OPC_EmitMergeInputChains1_2,
/*281615*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPMAXUDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281629*/              0, // EndSwitchOpcode
/*281630*/            /*Scope*/ 25|128,1/*153*/, /*->281785*/
/*281632*/              OPC_MoveChild0,
/*281633*/              OPC_SwitchOpcode /*2 cases */, 103, TARGET_VAL(ISD::BITCAST),// ->281740
/*281637*/                OPC_MoveChild0,
/*281638*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281641*/                OPC_RecordMemRef,
/*281642*/                OPC_RecordNode, // #1 = 'ld' chained node
/*281643*/                OPC_CheckFoldableChainNode,
/*281644*/                OPC_RecordChild1, // #2 = $src2
/*281645*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281647*/                OPC_CheckPredicate, 9, // Predicate_load
/*281649*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*281651*/                OPC_SwitchType /*3 cases */, 27, MVT::v2i64,// ->281681
/*281654*/                  OPC_MoveParent,
/*281655*/                  OPC_MoveParent,
/*281656*/                  OPC_RecordChild1, // #3 = $src1
/*281657*/                  OPC_MoveParent,
/*281658*/                  OPC_RecordChild2, // #4 = $src0
/*281659*/                  OPC_CheckType, MVT::v16i8,
/*281661*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281663*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281666*/                  OPC_EmitMergeInputChains1_1,
/*281667*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281681*/                /*SwitchType*/ 27, MVT::v4i64,// ->281710
/*281683*/                  OPC_MoveParent,
/*281684*/                  OPC_MoveParent,
/*281685*/                  OPC_RecordChild1, // #3 = $src1
/*281686*/                  OPC_MoveParent,
/*281687*/                  OPC_RecordChild2, // #4 = $src0
/*281688*/                  OPC_CheckType, MVT::v16i16,
/*281690*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281692*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281695*/                  OPC_EmitMergeInputChains1_1,
/*281696*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281710*/                /*SwitchType*/ 27, MVT::v8i64,// ->281739
/*281712*/                  OPC_MoveParent,
/*281713*/                  OPC_MoveParent,
/*281714*/                  OPC_RecordChild1, // #3 = $src1
/*281715*/                  OPC_MoveParent,
/*281716*/                  OPC_RecordChild2, // #4 = $src0
/*281717*/                  OPC_CheckType, MVT::v16i32,
/*281719*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281721*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281724*/                  OPC_EmitMergeInputChains1_1,
/*281725*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPMAXUDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281739*/                0, // EndSwitchType
/*281740*/              /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->281784
/*281743*/                OPC_MoveChild0,
/*281744*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281747*/                OPC_RecordMemRef,
/*281748*/                OPC_RecordNode, // #1 = 'ld' chained node
/*281749*/                OPC_CheckFoldableChainNode,
/*281750*/                OPC_RecordChild1, // #2 = $src2
/*281751*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281753*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*281755*/                OPC_CheckType, MVT::i32,
/*281757*/                OPC_MoveParent,
/*281758*/                OPC_MoveParent,
/*281759*/                OPC_RecordChild1, // #3 = $src1
/*281760*/                OPC_MoveParent,
/*281761*/                OPC_RecordChild2, // #4 = $src0
/*281762*/                OPC_CheckType, MVT::v16i32,
/*281764*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281766*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281769*/                OPC_EmitMergeInputChains1_1,
/*281770*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPMAXUDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281784*/              0, // EndSwitchOpcode
/*281785*/            0, /*End of Scope*/
/*281786*/          /*SwitchOpcode*/ 53|128,2/*309*/, TARGET_VAL(ISD::SMIN),// ->282099
/*281790*/            OPC_Scope, 22|128,1/*150*/, /*->281943*/ // 2 children in Scope
/*281793*/              OPC_RecordChild0, // #1 = $src1
/*281794*/              OPC_MoveChild1,
/*281795*/              OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(ISD::BITCAST),// ->281899
/*281799*/                OPC_MoveChild0,
/*281800*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281803*/                OPC_RecordMemRef,
/*281804*/                OPC_RecordNode, // #2 = 'ld' chained node
/*281805*/                OPC_CheckFoldableChainNode,
/*281806*/                OPC_RecordChild1, // #3 = $src2
/*281807*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281809*/                OPC_CheckPredicate, 9, // Predicate_load
/*281811*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*281813*/                OPC_SwitchType /*3 cases */, 26, MVT::v2i64,// ->281842
/*281816*/                  OPC_MoveParent,
/*281817*/                  OPC_MoveParent,
/*281818*/                  OPC_MoveParent,
/*281819*/                  OPC_RecordChild2, // #4 = $src0
/*281820*/                  OPC_CheckType, MVT::v16i8,
/*281822*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281824*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281827*/                  OPC_EmitMergeInputChains1_2,
/*281828*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                            // Dst: (VPMINSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281842*/                /*SwitchType*/ 26, MVT::v4i64,// ->281870
/*281844*/                  OPC_MoveParent,
/*281845*/                  OPC_MoveParent,
/*281846*/                  OPC_MoveParent,
/*281847*/                  OPC_RecordChild2, // #4 = $src0
/*281848*/                  OPC_CheckType, MVT::v16i16,
/*281850*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281852*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281855*/                  OPC_EmitMergeInputChains1_2,
/*281856*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPMINSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281870*/                /*SwitchType*/ 26, MVT::v8i64,// ->281898
/*281872*/                  OPC_MoveParent,
/*281873*/                  OPC_MoveParent,
/*281874*/                  OPC_MoveParent,
/*281875*/                  OPC_RecordChild2, // #4 = $src0
/*281876*/                  OPC_CheckType, MVT::v16i32,
/*281878*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281880*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281883*/                  OPC_EmitMergeInputChains1_2,
/*281884*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINSDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281898*/                0, // EndSwitchType
/*281899*/              /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->281942
/*281902*/                OPC_MoveChild0,
/*281903*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281906*/                OPC_RecordMemRef,
/*281907*/                OPC_RecordNode, // #2 = 'ld' chained node
/*281908*/                OPC_CheckFoldableChainNode,
/*281909*/                OPC_RecordChild1, // #3 = $src2
/*281910*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281912*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*281914*/                OPC_CheckType, MVT::i32,
/*281916*/                OPC_MoveParent,
/*281917*/                OPC_MoveParent,
/*281918*/                OPC_MoveParent,
/*281919*/                OPC_RecordChild2, // #4 = $src0
/*281920*/                OPC_CheckType, MVT::v16i32,
/*281922*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281924*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281927*/                OPC_EmitMergeInputChains1_2,
/*281928*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPMINSDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281942*/              0, // EndSwitchOpcode
/*281943*/            /*Scope*/ 25|128,1/*153*/, /*->282098*/
/*281945*/              OPC_MoveChild0,
/*281946*/              OPC_SwitchOpcode /*2 cases */, 103, TARGET_VAL(ISD::BITCAST),// ->282053
/*281950*/                OPC_MoveChild0,
/*281951*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*281954*/                OPC_RecordMemRef,
/*281955*/                OPC_RecordNode, // #1 = 'ld' chained node
/*281956*/                OPC_CheckFoldableChainNode,
/*281957*/                OPC_RecordChild1, // #2 = $src2
/*281958*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*281960*/                OPC_CheckPredicate, 9, // Predicate_load
/*281962*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*281964*/                OPC_SwitchType /*3 cases */, 27, MVT::v2i64,// ->281994
/*281967*/                  OPC_MoveParent,
/*281968*/                  OPC_MoveParent,
/*281969*/                  OPC_RecordChild1, // #3 = $src1
/*281970*/                  OPC_MoveParent,
/*281971*/                  OPC_RecordChild2, // #4 = $src0
/*281972*/                  OPC_CheckType, MVT::v16i8,
/*281974*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281976*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*281979*/                  OPC_EmitMergeInputChains1_1,
/*281980*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                            // Dst: (VPMINSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*281994*/                /*SwitchType*/ 27, MVT::v4i64,// ->282023
/*281996*/                  OPC_MoveParent,
/*281997*/                  OPC_MoveParent,
/*281998*/                  OPC_RecordChild1, // #3 = $src1
/*281999*/                  OPC_MoveParent,
/*282000*/                  OPC_RecordChild2, // #4 = $src0
/*282001*/                  OPC_CheckType, MVT::v16i16,
/*282003*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282005*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282008*/                  OPC_EmitMergeInputChains1_1,
/*282009*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPMINSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282023*/                /*SwitchType*/ 27, MVT::v8i64,// ->282052
/*282025*/                  OPC_MoveParent,
/*282026*/                  OPC_MoveParent,
/*282027*/                  OPC_RecordChild1, // #3 = $src1
/*282028*/                  OPC_MoveParent,
/*282029*/                  OPC_RecordChild2, // #4 = $src0
/*282030*/                  OPC_CheckType, MVT::v16i32,
/*282032*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282034*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282037*/                  OPC_EmitMergeInputChains1_1,
/*282038*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINSDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282052*/                0, // EndSwitchType
/*282053*/              /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->282097
/*282056*/                OPC_MoveChild0,
/*282057*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282060*/                OPC_RecordMemRef,
/*282061*/                OPC_RecordNode, // #1 = 'ld' chained node
/*282062*/                OPC_CheckFoldableChainNode,
/*282063*/                OPC_RecordChild1, // #2 = $src2
/*282064*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282066*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*282068*/                OPC_CheckType, MVT::i32,
/*282070*/                OPC_MoveParent,
/*282071*/                OPC_MoveParent,
/*282072*/                OPC_RecordChild1, // #3 = $src1
/*282073*/                OPC_MoveParent,
/*282074*/                OPC_RecordChild2, // #4 = $src0
/*282075*/                OPC_CheckType, MVT::v16i32,
/*282077*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282079*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282082*/                OPC_EmitMergeInputChains1_1,
/*282083*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPMINSDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282097*/              0, // EndSwitchOpcode
/*282098*/            0, /*End of Scope*/
/*282099*/          /*SwitchOpcode*/ 53|128,2/*309*/, TARGET_VAL(ISD::UMIN),// ->282412
/*282103*/            OPC_Scope, 22|128,1/*150*/, /*->282256*/ // 2 children in Scope
/*282106*/              OPC_RecordChild0, // #1 = $src1
/*282107*/              OPC_MoveChild1,
/*282108*/              OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(ISD::BITCAST),// ->282212
/*282112*/                OPC_MoveChild0,
/*282113*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282116*/                OPC_RecordMemRef,
/*282117*/                OPC_RecordNode, // #2 = 'ld' chained node
/*282118*/                OPC_CheckFoldableChainNode,
/*282119*/                OPC_RecordChild1, // #3 = $src2
/*282120*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282122*/                OPC_CheckPredicate, 9, // Predicate_load
/*282124*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*282126*/                OPC_SwitchType /*3 cases */, 26, MVT::v2i64,// ->282155
/*282129*/                  OPC_MoveParent,
/*282130*/                  OPC_MoveParent,
/*282131*/                  OPC_MoveParent,
/*282132*/                  OPC_RecordChild2, // #4 = $src0
/*282133*/                  OPC_CheckType, MVT::v16i8,
/*282135*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282137*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282140*/                  OPC_EmitMergeInputChains1_2,
/*282141*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                            // Dst: (VPMINUBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282155*/                /*SwitchType*/ 26, MVT::v4i64,// ->282183
/*282157*/                  OPC_MoveParent,
/*282158*/                  OPC_MoveParent,
/*282159*/                  OPC_MoveParent,
/*282160*/                  OPC_RecordChild2, // #4 = $src0
/*282161*/                  OPC_CheckType, MVT::v16i16,
/*282163*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282165*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282168*/                  OPC_EmitMergeInputChains1_2,
/*282169*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPMINUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282183*/                /*SwitchType*/ 26, MVT::v8i64,// ->282211
/*282185*/                  OPC_MoveParent,
/*282186*/                  OPC_MoveParent,
/*282187*/                  OPC_MoveParent,
/*282188*/                  OPC_RecordChild2, // #4 = $src0
/*282189*/                  OPC_CheckType, MVT::v16i32,
/*282191*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282193*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282196*/                  OPC_EmitMergeInputChains1_2,
/*282197*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINUDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282211*/                0, // EndSwitchType
/*282212*/              /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->282255
/*282215*/                OPC_MoveChild0,
/*282216*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282219*/                OPC_RecordMemRef,
/*282220*/                OPC_RecordNode, // #2 = 'ld' chained node
/*282221*/                OPC_CheckFoldableChainNode,
/*282222*/                OPC_RecordChild1, // #3 = $src2
/*282223*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282225*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*282227*/                OPC_CheckType, MVT::i32,
/*282229*/                OPC_MoveParent,
/*282230*/                OPC_MoveParent,
/*282231*/                OPC_MoveParent,
/*282232*/                OPC_RecordChild2, // #4 = $src0
/*282233*/                OPC_CheckType, MVT::v16i32,
/*282235*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282237*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282240*/                OPC_EmitMergeInputChains1_2,
/*282241*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPMINUDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282255*/              0, // EndSwitchOpcode
/*282256*/            /*Scope*/ 25|128,1/*153*/, /*->282411*/
/*282258*/              OPC_MoveChild0,
/*282259*/              OPC_SwitchOpcode /*2 cases */, 103, TARGET_VAL(ISD::BITCAST),// ->282366
/*282263*/                OPC_MoveChild0,
/*282264*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282267*/                OPC_RecordMemRef,
/*282268*/                OPC_RecordNode, // #1 = 'ld' chained node
/*282269*/                OPC_CheckFoldableChainNode,
/*282270*/                OPC_RecordChild1, // #2 = $src2
/*282271*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282273*/                OPC_CheckPredicate, 9, // Predicate_load
/*282275*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*282277*/                OPC_SwitchType /*3 cases */, 27, MVT::v2i64,// ->282307
/*282280*/                  OPC_MoveParent,
/*282281*/                  OPC_MoveParent,
/*282282*/                  OPC_RecordChild1, // #3 = $src1
/*282283*/                  OPC_MoveParent,
/*282284*/                  OPC_RecordChild2, // #4 = $src0
/*282285*/                  OPC_CheckType, MVT::v16i8,
/*282287*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282289*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282292*/                  OPC_EmitMergeInputChains1_1,
/*282293*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                            // Dst: (VPMINUBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282307*/                /*SwitchType*/ 27, MVT::v4i64,// ->282336
/*282309*/                  OPC_MoveParent,
/*282310*/                  OPC_MoveParent,
/*282311*/                  OPC_RecordChild1, // #3 = $src1
/*282312*/                  OPC_MoveParent,
/*282313*/                  OPC_RecordChild2, // #4 = $src0
/*282314*/                  OPC_CheckType, MVT::v16i16,
/*282316*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282318*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282321*/                  OPC_EmitMergeInputChains1_1,
/*282322*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                            // Dst: (VPMINUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282336*/                /*SwitchType*/ 27, MVT::v8i64,// ->282365
/*282338*/                  OPC_MoveParent,
/*282339*/                  OPC_MoveParent,
/*282340*/                  OPC_RecordChild1, // #3 = $src1
/*282341*/                  OPC_MoveParent,
/*282342*/                  OPC_RecordChild2, // #4 = $src0
/*282343*/                  OPC_CheckType, MVT::v16i32,
/*282345*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282347*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282350*/                  OPC_EmitMergeInputChains1_1,
/*282351*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPMINUDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282365*/                0, // EndSwitchType
/*282366*/              /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->282410
/*282369*/                OPC_MoveChild0,
/*282370*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282373*/                OPC_RecordMemRef,
/*282374*/                OPC_RecordNode, // #1 = 'ld' chained node
/*282375*/                OPC_CheckFoldableChainNode,
/*282376*/                OPC_RecordChild1, // #2 = $src2
/*282377*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282379*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*282381*/                OPC_CheckType, MVT::i32,
/*282383*/                OPC_MoveParent,
/*282384*/                OPC_MoveParent,
/*282385*/                OPC_RecordChild1, // #3 = $src1
/*282386*/                OPC_MoveParent,
/*282387*/                OPC_RecordChild2, // #4 = $src0
/*282388*/                OPC_CheckType, MVT::v16i32,
/*282390*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282392*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282395*/                OPC_EmitMergeInputChains1_1,
/*282396*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPMINUDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282410*/              0, // EndSwitchOpcode
/*282411*/            0, /*End of Scope*/
/*282412*/          /*SwitchOpcode*/ 91, TARGET_VAL(X86ISD::VSHL),// ->282506
/*282415*/            OPC_RecordChild0, // #1 = $src1
/*282416*/            OPC_MoveChild1,
/*282417*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->282465
/*282421*/              OPC_MoveChild0,
/*282422*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282425*/              OPC_RecordMemRef,
/*282426*/              OPC_RecordNode, // #2 = 'ld' chained node
/*282427*/              OPC_CheckFoldableChainNode,
/*282428*/              OPC_RecordChild1, // #3 = $src2
/*282429*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282431*/              OPC_CheckPredicate, 9, // Predicate_load
/*282433*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*282435*/              OPC_CheckType, MVT::v2i64,
/*282437*/              OPC_MoveParent,
/*282438*/              OPC_CheckType, MVT::v4i32,
/*282440*/              OPC_MoveParent,
/*282441*/              OPC_MoveParent,
/*282442*/              OPC_RecordChild2, // #4 = $src0
/*282443*/              OPC_CheckType, MVT::v16i32,
/*282445*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282447*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282450*/              OPC_EmitMergeInputChains1_2,
/*282451*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSLLDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282465*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->282505
/*282468*/              OPC_RecordMemRef,
/*282469*/              OPC_RecordNode, // #2 = 'ld' chained node
/*282470*/              OPC_CheckFoldableChainNode,
/*282471*/              OPC_RecordChild1, // #3 = $src2
/*282472*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282474*/              OPC_CheckPredicate, 9, // Predicate_load
/*282476*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*282478*/              OPC_CheckType, MVT::v2i64,
/*282480*/              OPC_MoveParent,
/*282481*/              OPC_MoveParent,
/*282482*/              OPC_RecordChild2, // #4 = $src0
/*282483*/              OPC_CheckType, MVT::v16i16,
/*282485*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282487*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282490*/              OPC_EmitMergeInputChains1_2,
/*282491*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPSLLWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282505*/            0, // EndSwitchOpcode
/*282506*/          /*SwitchOpcode*/ 91, TARGET_VAL(X86ISD::VSRA),// ->282600
/*282509*/            OPC_RecordChild0, // #1 = $src1
/*282510*/            OPC_MoveChild1,
/*282511*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->282559
/*282515*/              OPC_MoveChild0,
/*282516*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282519*/              OPC_RecordMemRef,
/*282520*/              OPC_RecordNode, // #2 = 'ld' chained node
/*282521*/              OPC_CheckFoldableChainNode,
/*282522*/              OPC_RecordChild1, // #3 = $src2
/*282523*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282525*/              OPC_CheckPredicate, 9, // Predicate_load
/*282527*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*282529*/              OPC_CheckType, MVT::v2i64,
/*282531*/              OPC_MoveParent,
/*282532*/              OPC_CheckType, MVT::v4i32,
/*282534*/              OPC_MoveParent,
/*282535*/              OPC_MoveParent,
/*282536*/              OPC_RecordChild2, // #4 = $src0
/*282537*/              OPC_CheckType, MVT::v16i32,
/*282539*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282541*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282544*/              OPC_EmitMergeInputChains1_2,
/*282545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRADZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282559*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->282599
/*282562*/              OPC_RecordMemRef,
/*282563*/              OPC_RecordNode, // #2 = 'ld' chained node
/*282564*/              OPC_CheckFoldableChainNode,
/*282565*/              OPC_RecordChild1, // #3 = $src2
/*282566*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282568*/              OPC_CheckPredicate, 9, // Predicate_load
/*282570*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*282572*/              OPC_CheckType, MVT::v2i64,
/*282574*/              OPC_MoveParent,
/*282575*/              OPC_MoveParent,
/*282576*/              OPC_RecordChild2, // #4 = $src0
/*282577*/              OPC_CheckType, MVT::v16i16,
/*282579*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282581*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282584*/              OPC_EmitMergeInputChains1_2,
/*282585*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPSRAWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282599*/            0, // EndSwitchOpcode
/*282600*/          /*SwitchOpcode*/ 91, TARGET_VAL(X86ISD::VSRL),// ->282694
/*282603*/            OPC_RecordChild0, // #1 = $src1
/*282604*/            OPC_MoveChild1,
/*282605*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->282653
/*282609*/              OPC_MoveChild0,
/*282610*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282613*/              OPC_RecordMemRef,
/*282614*/              OPC_RecordNode, // #2 = 'ld' chained node
/*282615*/              OPC_CheckFoldableChainNode,
/*282616*/              OPC_RecordChild1, // #3 = $src2
/*282617*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282619*/              OPC_CheckPredicate, 9, // Predicate_load
/*282621*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*282623*/              OPC_CheckType, MVT::v2i64,
/*282625*/              OPC_MoveParent,
/*282626*/              OPC_CheckType, MVT::v4i32,
/*282628*/              OPC_MoveParent,
/*282629*/              OPC_MoveParent,
/*282630*/              OPC_RecordChild2, // #4 = $src0
/*282631*/              OPC_CheckType, MVT::v16i32,
/*282633*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282635*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282638*/              OPC_EmitMergeInputChains1_2,
/*282639*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRLDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282653*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->282693
/*282656*/              OPC_RecordMemRef,
/*282657*/              OPC_RecordNode, // #2 = 'ld' chained node
/*282658*/              OPC_CheckFoldableChainNode,
/*282659*/              OPC_RecordChild1, // #3 = $src2
/*282660*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282662*/              OPC_CheckPredicate, 9, // Predicate_load
/*282664*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*282666*/              OPC_CheckType, MVT::v2i64,
/*282668*/              OPC_MoveParent,
/*282669*/              OPC_MoveParent,
/*282670*/              OPC_RecordChild2, // #4 = $src0
/*282671*/              OPC_CheckType, MVT::v16i16,
/*282673*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282675*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282678*/              OPC_EmitMergeInputChains1_2,
/*282679*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPSRLWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282693*/            0, // EndSwitchOpcode
/*282694*/          /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(ISD::SHL),// ->282826
/*282698*/            OPC_RecordChild0, // #1 = $src1
/*282699*/            OPC_MoveChild1,
/*282700*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::BITCAST),// ->282780
/*282704*/              OPC_MoveChild0,
/*282705*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282708*/              OPC_RecordMemRef,
/*282709*/              OPC_RecordNode, // #2 = 'ld' chained node
/*282710*/              OPC_CheckFoldableChainNode,
/*282711*/              OPC_RecordChild1, // #3 = $src2
/*282712*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282714*/              OPC_CheckPredicate, 9, // Predicate_load
/*282716*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*282718*/              OPC_SwitchType /*2 cases */, 28, MVT::v8i64,// ->282749
/*282721*/                OPC_MoveParent,
/*282722*/                OPC_CheckType, MVT::v16i32,
/*282724*/                OPC_MoveParent,
/*282725*/                OPC_MoveParent,
/*282726*/                OPC_RecordChild2, // #4 = $src0
/*282727*/                OPC_CheckType, MVT::v16i32,
/*282729*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282731*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282734*/                OPC_EmitMergeInputChains1_2,
/*282735*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (shl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPSLLVDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282749*/              /*SwitchType*/ 28, MVT::v4i64,// ->282779
/*282751*/                OPC_MoveParent,
/*282752*/                OPC_CheckType, MVT::v16i16,
/*282754*/                OPC_MoveParent,
/*282755*/                OPC_MoveParent,
/*282756*/                OPC_RecordChild2, // #4 = $src0
/*282757*/                OPC_CheckType, MVT::v16i16,
/*282759*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282761*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282764*/                OPC_EmitMergeInputChains1_2,
/*282765*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (shl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPSLLVWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282779*/              0, // EndSwitchType
/*282780*/            /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST),// ->282825
/*282783*/              OPC_MoveChild0,
/*282784*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282787*/              OPC_RecordMemRef,
/*282788*/              OPC_RecordNode, // #2 = 'ld' chained node
/*282789*/              OPC_CheckFoldableChainNode,
/*282790*/              OPC_RecordChild1, // #3 = $src2
/*282791*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282793*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*282795*/              OPC_CheckType, MVT::i32,
/*282797*/              OPC_MoveParent,
/*282798*/              OPC_CheckType, MVT::v16i32,
/*282800*/              OPC_MoveParent,
/*282801*/              OPC_MoveParent,
/*282802*/              OPC_RecordChild2, // #4 = $src0
/*282803*/              OPC_CheckType, MVT::v16i32,
/*282805*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282807*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282810*/              OPC_EmitMergeInputChains1_2,
/*282811*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (shl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSLLVDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282825*/            0, // EndSwitchOpcode
/*282826*/          /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(ISD::SRA),// ->282958
/*282830*/            OPC_RecordChild0, // #1 = $src1
/*282831*/            OPC_MoveChild1,
/*282832*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::BITCAST),// ->282912
/*282836*/              OPC_MoveChild0,
/*282837*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282840*/              OPC_RecordMemRef,
/*282841*/              OPC_RecordNode, // #2 = 'ld' chained node
/*282842*/              OPC_CheckFoldableChainNode,
/*282843*/              OPC_RecordChild1, // #3 = $src2
/*282844*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282846*/              OPC_CheckPredicate, 9, // Predicate_load
/*282848*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*282850*/              OPC_SwitchType /*2 cases */, 28, MVT::v8i64,// ->282881
/*282853*/                OPC_MoveParent,
/*282854*/                OPC_CheckType, MVT::v16i32,
/*282856*/                OPC_MoveParent,
/*282857*/                OPC_MoveParent,
/*282858*/                OPC_RecordChild2, // #4 = $src0
/*282859*/                OPC_CheckType, MVT::v16i32,
/*282861*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282863*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282866*/                OPC_EmitMergeInputChains1_2,
/*282867*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282881*/              /*SwitchType*/ 28, MVT::v4i64,// ->282911
/*282883*/                OPC_MoveParent,
/*282884*/                OPC_CheckType, MVT::v16i16,
/*282886*/                OPC_MoveParent,
/*282887*/                OPC_MoveParent,
/*282888*/                OPC_RecordChild2, // #4 = $src0
/*282889*/                OPC_CheckType, MVT::v16i16,
/*282891*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282893*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282896*/                OPC_EmitMergeInputChains1_2,
/*282897*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (sra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282911*/              0, // EndSwitchType
/*282912*/            /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST),// ->282957
/*282915*/              OPC_MoveChild0,
/*282916*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282919*/              OPC_RecordMemRef,
/*282920*/              OPC_RecordNode, // #2 = 'ld' chained node
/*282921*/              OPC_CheckFoldableChainNode,
/*282922*/              OPC_RecordChild1, // #3 = $src2
/*282923*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282925*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*282927*/              OPC_CheckType, MVT::i32,
/*282929*/              OPC_MoveParent,
/*282930*/              OPC_CheckType, MVT::v16i32,
/*282932*/              OPC_MoveParent,
/*282933*/              OPC_MoveParent,
/*282934*/              OPC_RecordChild2, // #4 = $src0
/*282935*/              OPC_CheckType, MVT::v16i32,
/*282937*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282939*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282942*/              OPC_EmitMergeInputChains1_2,
/*282943*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRAVDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*282957*/            0, // EndSwitchOpcode
/*282958*/          /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(ISD::SRL),// ->283090
/*282962*/            OPC_RecordChild0, // #1 = $src1
/*282963*/            OPC_MoveChild1,
/*282964*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::BITCAST),// ->283044
/*282968*/              OPC_MoveChild0,
/*282969*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*282972*/              OPC_RecordMemRef,
/*282973*/              OPC_RecordNode, // #2 = 'ld' chained node
/*282974*/              OPC_CheckFoldableChainNode,
/*282975*/              OPC_RecordChild1, // #3 = $src2
/*282976*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*282978*/              OPC_CheckPredicate, 9, // Predicate_load
/*282980*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*282982*/              OPC_SwitchType /*2 cases */, 28, MVT::v8i64,// ->283013
/*282985*/                OPC_MoveParent,
/*282986*/                OPC_CheckType, MVT::v16i32,
/*282988*/                OPC_MoveParent,
/*282989*/                OPC_MoveParent,
/*282990*/                OPC_RecordChild2, // #4 = $src0
/*282991*/                OPC_CheckType, MVT::v16i32,
/*282993*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282995*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*282998*/                OPC_EmitMergeInputChains1_2,
/*282999*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (srl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRLVDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283013*/              /*SwitchType*/ 28, MVT::v4i64,// ->283043
/*283015*/                OPC_MoveParent,
/*283016*/                OPC_CheckType, MVT::v16i16,
/*283018*/                OPC_MoveParent,
/*283019*/                OPC_MoveParent,
/*283020*/                OPC_RecordChild2, // #4 = $src0
/*283021*/                OPC_CheckType, MVT::v16i16,
/*283023*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*283025*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283028*/                OPC_EmitMergeInputChains1_2,
/*283029*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (srl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPSRLVWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283043*/              0, // EndSwitchType
/*283044*/            /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST),// ->283089
/*283047*/              OPC_MoveChild0,
/*283048*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283051*/              OPC_RecordMemRef,
/*283052*/              OPC_RecordNode, // #2 = 'ld' chained node
/*283053*/              OPC_CheckFoldableChainNode,
/*283054*/              OPC_RecordChild1, // #3 = $src2
/*283055*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283057*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*283059*/              OPC_CheckType, MVT::i32,
/*283061*/              OPC_MoveParent,
/*283062*/              OPC_CheckType, MVT::v16i32,
/*283064*/              OPC_MoveParent,
/*283065*/              OPC_MoveParent,
/*283066*/              OPC_RecordChild2, // #4 = $src0
/*283067*/              OPC_CheckType, MVT::v16i32,
/*283069*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283071*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283074*/              OPC_EmitMergeInputChains1_2,
/*283075*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (srl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRLVDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283089*/            0, // EndSwitchOpcode
/*283090*/          /*SwitchOpcode*/ 96, TARGET_VAL(ISD::ROTR),// ->283189
/*283093*/            OPC_RecordChild0, // #1 = $src1
/*283094*/            OPC_MoveChild1,
/*283095*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->283143
/*283099*/              OPC_MoveChild0,
/*283100*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283103*/              OPC_RecordMemRef,
/*283104*/              OPC_RecordNode, // #2 = 'ld' chained node
/*283105*/              OPC_CheckFoldableChainNode,
/*283106*/              OPC_RecordChild1, // #3 = $src2
/*283107*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283109*/              OPC_CheckPredicate, 9, // Predicate_load
/*283111*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*283113*/              OPC_CheckType, MVT::v8i64,
/*283115*/              OPC_MoveParent,
/*283116*/              OPC_CheckType, MVT::v16i32,
/*283118*/              OPC_MoveParent,
/*283119*/              OPC_MoveParent,
/*283120*/              OPC_RecordChild2, // #4 = $src0
/*283121*/              OPC_CheckType, MVT::v16i32,
/*283123*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283125*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283128*/              OPC_EmitMergeInputChains1_2,
/*283129*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPRORVDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283143*/            /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST),// ->283188
/*283146*/              OPC_MoveChild0,
/*283147*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283150*/              OPC_RecordMemRef,
/*283151*/              OPC_RecordNode, // #2 = 'ld' chained node
/*283152*/              OPC_CheckFoldableChainNode,
/*283153*/              OPC_RecordChild1, // #3 = $src2
/*283154*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283156*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*283158*/              OPC_CheckType, MVT::i32,
/*283160*/              OPC_MoveParent,
/*283161*/              OPC_CheckType, MVT::v16i32,
/*283163*/              OPC_MoveParent,
/*283164*/              OPC_MoveParent,
/*283165*/              OPC_RecordChild2, // #4 = $src0
/*283166*/              OPC_CheckType, MVT::v16i32,
/*283168*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283170*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283173*/              OPC_EmitMergeInputChains1_2,
/*283174*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPRORVDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283188*/            0, // EndSwitchOpcode
/*283189*/          /*SwitchOpcode*/ 96, TARGET_VAL(ISD::ROTL),// ->283288
/*283192*/            OPC_RecordChild0, // #1 = $src1
/*283193*/            OPC_MoveChild1,
/*283194*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->283242
/*283198*/              OPC_MoveChild0,
/*283199*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283202*/              OPC_RecordMemRef,
/*283203*/              OPC_RecordNode, // #2 = 'ld' chained node
/*283204*/              OPC_CheckFoldableChainNode,
/*283205*/              OPC_RecordChild1, // #3 = $src2
/*283206*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283208*/              OPC_CheckPredicate, 9, // Predicate_load
/*283210*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*283212*/              OPC_CheckType, MVT::v8i64,
/*283214*/              OPC_MoveParent,
/*283215*/              OPC_CheckType, MVT::v16i32,
/*283217*/              OPC_MoveParent,
/*283218*/              OPC_MoveParent,
/*283219*/              OPC_RecordChild2, // #4 = $src0
/*283220*/              OPC_CheckType, MVT::v16i32,
/*283222*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283224*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283227*/              OPC_EmitMergeInputChains1_2,
/*283228*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPROLVDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283242*/            /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST),// ->283287
/*283245*/              OPC_MoveChild0,
/*283246*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283249*/              OPC_RecordMemRef,
/*283250*/              OPC_RecordNode, // #2 = 'ld' chained node
/*283251*/              OPC_CheckFoldableChainNode,
/*283252*/              OPC_RecordChild1, // #3 = $src2
/*283253*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283255*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*283257*/              OPC_CheckType, MVT::i32,
/*283259*/              OPC_MoveParent,
/*283260*/              OPC_CheckType, MVT::v16i32,
/*283262*/              OPC_MoveParent,
/*283263*/              OPC_MoveParent,
/*283264*/              OPC_RecordChild2, // #4 = $src0
/*283265*/              OPC_CheckType, MVT::v16i32,
/*283267*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283269*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283272*/              OPC_EmitMergeInputChains1_2,
/*283273*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPROLVDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283287*/            0, // EndSwitchOpcode
/*283288*/          /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::VSRAV),// ->283413
/*283291*/            OPC_RecordChild0, // #1 = $src1
/*283292*/            OPC_MoveChild1,
/*283293*/            OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::BITCAST),// ->283369
/*283297*/              OPC_MoveChild0,
/*283298*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283301*/              OPC_RecordMemRef,
/*283302*/              OPC_RecordNode, // #2 = 'ld' chained node
/*283303*/              OPC_CheckFoldableChainNode,
/*283304*/              OPC_RecordChild1, // #3 = $src2
/*283305*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283307*/              OPC_CheckPredicate, 9, // Predicate_load
/*283309*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*283311*/              OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->283340
/*283314*/                OPC_MoveParent,
/*283315*/                OPC_MoveParent,
/*283316*/                OPC_MoveParent,
/*283317*/                OPC_RecordChild2, // #4 = $src0
/*283318*/                OPC_CheckType, MVT::v16i16,
/*283320*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*283322*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283325*/                OPC_EmitMergeInputChains1_2,
/*283326*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrav:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283340*/              /*SwitchType*/ 26, MVT::v8i64,// ->283368
/*283342*/                OPC_MoveParent,
/*283343*/                OPC_MoveParent,
/*283344*/                OPC_MoveParent,
/*283345*/                OPC_RecordChild2, // #4 = $src0
/*283346*/                OPC_CheckType, MVT::v16i32,
/*283348*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283350*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283353*/                OPC_EmitMergeInputChains1_2,
/*283354*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrav:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRAVDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283368*/              0, // EndSwitchType
/*283369*/            /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->283412
/*283372*/              OPC_MoveChild0,
/*283373*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283376*/              OPC_RecordMemRef,
/*283377*/              OPC_RecordNode, // #2 = 'ld' chained node
/*283378*/              OPC_CheckFoldableChainNode,
/*283379*/              OPC_RecordChild1, // #3 = $src2
/*283380*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283382*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*283384*/              OPC_CheckType, MVT::i32,
/*283386*/              OPC_MoveParent,
/*283387*/              OPC_MoveParent,
/*283388*/              OPC_MoveParent,
/*283389*/              OPC_RecordChild2, // #4 = $src0
/*283390*/              OPC_CheckType, MVT::v16i32,
/*283392*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283394*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283397*/              OPC_EmitMergeInputChains1_2,
/*283398*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrav:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRAVDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283412*/            0, // EndSwitchOpcode
/*283413*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VPERMV),// ->283567
/*283417*/            OPC_RecordChild0, // #1 = $src1
/*283418*/            OPC_MoveChild1,
/*283419*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(ISD::BITCAST),// ->283523
/*283423*/              OPC_MoveChild0,
/*283424*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283427*/              OPC_RecordMemRef,
/*283428*/              OPC_RecordNode, // #2 = 'ld' chained node
/*283429*/              OPC_CheckFoldableChainNode,
/*283430*/              OPC_RecordChild1, // #3 = $src2
/*283431*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283433*/              OPC_CheckPredicate, 9, // Predicate_load
/*283435*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*283437*/              OPC_SwitchType /*3 cases */, 26, MVT::v4i64,// ->283466
/*283440*/                OPC_MoveParent,
/*283441*/                OPC_MoveParent,
/*283442*/                OPC_MoveParent,
/*283443*/                OPC_RecordChild2, // #4 = $src0
/*283444*/                OPC_CheckType, MVT::v16i16,
/*283446*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*283448*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283451*/                OPC_EmitMergeInputChains1_2,
/*283452*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPERMWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283466*/              /*SwitchType*/ 26, MVT::v2i64,// ->283494
/*283468*/                OPC_MoveParent,
/*283469*/                OPC_MoveParent,
/*283470*/                OPC_MoveParent,
/*283471*/                OPC_RecordChild2, // #4 = $src0
/*283472*/                OPC_CheckType, MVT::v16i8,
/*283474*/                OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*283476*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283479*/                OPC_EmitMergeInputChains1_2,
/*283480*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPERMBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283494*/              /*SwitchType*/ 26, MVT::v8i64,// ->283522
/*283496*/                OPC_MoveParent,
/*283497*/                OPC_MoveParent,
/*283498*/                OPC_MoveParent,
/*283499*/                OPC_RecordChild2, // #4 = $src0
/*283500*/                OPC_CheckType, MVT::v16i32,
/*283502*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283504*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283507*/                OPC_EmitMergeInputChains1_2,
/*283508*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPERMDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283522*/              0, // EndSwitchType
/*283523*/            /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->283566
/*283526*/              OPC_MoveChild0,
/*283527*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283530*/              OPC_RecordMemRef,
/*283531*/              OPC_RecordNode, // #2 = 'ld' chained node
/*283532*/              OPC_CheckFoldableChainNode,
/*283533*/              OPC_RecordChild1, // #3 = $src2
/*283534*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283536*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*283538*/              OPC_CheckType, MVT::i32,
/*283540*/              OPC_MoveParent,
/*283541*/              OPC_MoveParent,
/*283542*/              OPC_MoveParent,
/*283543*/              OPC_RecordChild2, // #4 = $src0
/*283544*/              OPC_CheckType, MVT::v16i32,
/*283546*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283548*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283551*/              OPC_EmitMergeInputChains1_2,
/*283552*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPERMDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283566*/            0, // EndSwitchOpcode
/*283567*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::PSHUFB),// ->283617
/*283570*/            OPC_RecordChild0, // #1 = $src1
/*283571*/            OPC_MoveChild1,
/*283572*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*283575*/            OPC_MoveChild0,
/*283576*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283579*/            OPC_RecordMemRef,
/*283580*/            OPC_RecordNode, // #2 = 'ld' chained node
/*283581*/            OPC_CheckFoldableChainNode,
/*283582*/            OPC_RecordChild1, // #3 = $src2
/*283583*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283585*/            OPC_CheckPredicate, 9, // Predicate_load
/*283587*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*283589*/            OPC_CheckType, MVT::v2i64,
/*283591*/            OPC_MoveParent,
/*283592*/            OPC_MoveParent,
/*283593*/            OPC_MoveParent,
/*283594*/            OPC_RecordChild2, // #4 = $src0
/*283595*/            OPC_CheckType, MVT::v16i8,
/*283597*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*283599*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283602*/            OPC_EmitMergeInputChains1_2,
/*283603*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86pshufb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                      // Dst: (VPSHUFBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283617*/          /*SwitchOpcode*/ 101, TARGET_VAL(X86ISD::EXPAND),// ->283721
/*283620*/            OPC_MoveChild0,
/*283621*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*283624*/            OPC_MoveChild0,
/*283625*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283628*/            OPC_RecordMemRef,
/*283629*/            OPC_RecordNode, // #1 = 'ld' chained node
/*283630*/            OPC_CheckFoldableChainNode,
/*283631*/            OPC_RecordChild1, // #2 = $src1
/*283632*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283634*/            OPC_CheckPredicate, 9, // Predicate_load
/*283636*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*283638*/            OPC_SwitchType /*3 cases */, 25, MVT::v8i64,// ->283666
/*283641*/              OPC_MoveParent,
/*283642*/              OPC_MoveParent,
/*283643*/              OPC_MoveParent,
/*283644*/              OPC_RecordChild2, // #3 = $src0
/*283645*/              OPC_CheckType, MVT::v16i32,
/*283647*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283649*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*283652*/              OPC_EmitMergeInputChains1_1,
/*283653*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPEXPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*283666*/            /*SwitchType*/ 25, MVT::v2i64,// ->283693
/*283668*/              OPC_MoveParent,
/*283669*/              OPC_MoveParent,
/*283670*/              OPC_MoveParent,
/*283671*/              OPC_RecordChild2, // #3 = $src0
/*283672*/              OPC_CheckType, MVT::v16i8,
/*283674*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*283676*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*283679*/              OPC_EmitMergeInputChains1_1,
/*283680*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                        // Dst: (VPEXPANDBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*283693*/            /*SwitchType*/ 25, MVT::v4i64,// ->283720
/*283695*/              OPC_MoveParent,
/*283696*/              OPC_MoveParent,
/*283697*/              OPC_MoveParent,
/*283698*/              OPC_RecordChild2, // #3 = $src0
/*283699*/              OPC_CheckType, MVT::v16i16,
/*283701*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*283703*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*283706*/              OPC_EmitMergeInputChains1_1,
/*283707*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                        // Dst: (VPEXPANDWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*283720*/            0, // EndSwitchType
/*283721*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(ISD::ABS),// ->283870
/*283725*/            OPC_MoveChild0,
/*283726*/            OPC_SwitchOpcode /*2 cases */, 97, TARGET_VAL(ISD::BITCAST),// ->283827
/*283730*/              OPC_MoveChild0,
/*283731*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283734*/              OPC_RecordMemRef,
/*283735*/              OPC_RecordNode, // #1 = 'ld' chained node
/*283736*/              OPC_CheckFoldableChainNode,
/*283737*/              OPC_RecordChild1, // #2 = $src1
/*283738*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283740*/              OPC_CheckPredicate, 9, // Predicate_load
/*283742*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*283744*/              OPC_SwitchType /*3 cases */, 25, MVT::v8i64,// ->283772
/*283747*/                OPC_MoveParent,
/*283748*/                OPC_MoveParent,
/*283749*/                OPC_MoveParent,
/*283750*/                OPC_RecordChild2, // #3 = $src0
/*283751*/                OPC_CheckType, MVT::v16i32,
/*283753*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283755*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*283758*/                OPC_EmitMergeInputChains1_1,
/*283759*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPABSDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*283772*/              /*SwitchType*/ 25, MVT::v4i64,// ->283799
/*283774*/                OPC_MoveParent,
/*283775*/                OPC_MoveParent,
/*283776*/                OPC_MoveParent,
/*283777*/                OPC_RecordChild2, // #3 = $src0
/*283778*/                OPC_CheckType, MVT::v16i16,
/*283780*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*283782*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*283785*/                OPC_EmitMergeInputChains1_1,
/*283786*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPABSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*283799*/              /*SwitchType*/ 25, MVT::v2i64,// ->283826
/*283801*/                OPC_MoveParent,
/*283802*/                OPC_MoveParent,
/*283803*/                OPC_MoveParent,
/*283804*/                OPC_RecordChild2, // #3 = $src0
/*283805*/                OPC_CheckType, MVT::v16i8,
/*283807*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*283809*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*283812*/                OPC_EmitMergeInputChains1_1,
/*283813*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPABSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*283826*/              0, // EndSwitchType
/*283827*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST),// ->283869
/*283830*/              OPC_MoveChild0,
/*283831*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283834*/              OPC_RecordMemRef,
/*283835*/              OPC_RecordNode, // #1 = 'ld' chained node
/*283836*/              OPC_CheckFoldableChainNode,
/*283837*/              OPC_RecordChild1, // #2 = $src1
/*283838*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283840*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*283842*/              OPC_CheckType, MVT::i32,
/*283844*/              OPC_MoveParent,
/*283845*/              OPC_MoveParent,
/*283846*/              OPC_MoveParent,
/*283847*/              OPC_RecordChild2, // #3 = $src0
/*283848*/              OPC_CheckType, MVT::v16i32,
/*283850*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283852*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*283855*/              OPC_EmitMergeInputChains1_1,
/*283856*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPABSDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*283869*/            0, // EndSwitchOpcode
/*283870*/          /*SwitchOpcode*/ 89, TARGET_VAL(ISD::CTLZ),// ->283962
/*283873*/            OPC_MoveChild0,
/*283874*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::BITCAST),// ->283919
/*283878*/              OPC_MoveChild0,
/*283879*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283882*/              OPC_RecordMemRef,
/*283883*/              OPC_RecordNode, // #1 = 'ld' chained node
/*283884*/              OPC_CheckFoldableChainNode,
/*283885*/              OPC_RecordChild1, // #2 = $src1
/*283886*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283888*/              OPC_CheckPredicate, 9, // Predicate_load
/*283890*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*283892*/              OPC_CheckType, MVT::v8i64,
/*283894*/              OPC_MoveParent,
/*283895*/              OPC_MoveParent,
/*283896*/              OPC_MoveParent,
/*283897*/              OPC_RecordChild2, // #3 = $src0
/*283898*/              OPC_CheckType, MVT::v16i32,
/*283900*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*283902*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*283905*/              OPC_EmitMergeInputChains1_1,
/*283906*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctlz:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPLZCNTDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*283919*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST),// ->283961
/*283922*/              OPC_MoveChild0,
/*283923*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283926*/              OPC_RecordMemRef,
/*283927*/              OPC_RecordNode, // #1 = 'ld' chained node
/*283928*/              OPC_CheckFoldableChainNode,
/*283929*/              OPC_RecordChild1, // #2 = $src1
/*283930*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283932*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*283934*/              OPC_CheckType, MVT::i32,
/*283936*/              OPC_MoveParent,
/*283937*/              OPC_MoveParent,
/*283938*/              OPC_MoveParent,
/*283939*/              OPC_RecordChild2, // #3 = $src0
/*283940*/              OPC_CheckType, MVT::v16i32,
/*283942*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*283944*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*283947*/              OPC_EmitMergeInputChains1_1,
/*283948*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctlz:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPLZCNTDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*283961*/            0, // EndSwitchOpcode
/*283962*/          /*SwitchOpcode*/ 89, TARGET_VAL(X86ISD::CONFLICT),// ->284054
/*283965*/            OPC_MoveChild0,
/*283966*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::BITCAST),// ->284011
/*283970*/              OPC_MoveChild0,
/*283971*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283974*/              OPC_RecordMemRef,
/*283975*/              OPC_RecordNode, // #1 = 'ld' chained node
/*283976*/              OPC_CheckFoldableChainNode,
/*283977*/              OPC_RecordChild1, // #2 = $src1
/*283978*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283980*/              OPC_CheckPredicate, 9, // Predicate_load
/*283982*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*283984*/              OPC_CheckType, MVT::v8i64,
/*283986*/              OPC_MoveParent,
/*283987*/              OPC_MoveParent,
/*283988*/              OPC_MoveParent,
/*283989*/              OPC_RecordChild2, // #3 = $src0
/*283990*/              OPC_CheckType, MVT::v16i32,
/*283992*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*283994*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*283997*/              OPC_EmitMergeInputChains1_1,
/*283998*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Conflict:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPCONFLICTDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*284011*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST),// ->284053
/*284014*/              OPC_MoveChild0,
/*284015*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284018*/              OPC_RecordMemRef,
/*284019*/              OPC_RecordNode, // #1 = 'ld' chained node
/*284020*/              OPC_CheckFoldableChainNode,
/*284021*/              OPC_RecordChild1, // #2 = $src1
/*284022*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284024*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*284026*/              OPC_CheckType, MVT::i32,
/*284028*/              OPC_MoveParent,
/*284029*/              OPC_MoveParent,
/*284030*/              OPC_MoveParent,
/*284031*/              OPC_RecordChild2, // #3 = $src0
/*284032*/              OPC_CheckType, MVT::v16i32,
/*284034*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*284036*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*284039*/              OPC_EmitMergeInputChains1_1,
/*284040*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Conflict:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPCONFLICTDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*284053*/            0, // EndSwitchOpcode
/*284054*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(ISD::CTPOP),// ->284203
/*284058*/            OPC_MoveChild0,
/*284059*/            OPC_SwitchOpcode /*2 cases */, 97, TARGET_VAL(ISD::BITCAST),// ->284160
/*284063*/              OPC_MoveChild0,
/*284064*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284067*/              OPC_RecordMemRef,
/*284068*/              OPC_RecordNode, // #1 = 'ld' chained node
/*284069*/              OPC_CheckFoldableChainNode,
/*284070*/              OPC_RecordChild1, // #2 = $src1
/*284071*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284073*/              OPC_CheckPredicate, 9, // Predicate_load
/*284075*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*284077*/              OPC_SwitchType /*3 cases */, 25, MVT::v8i64,// ->284105
/*284080*/                OPC_MoveParent,
/*284081*/                OPC_MoveParent,
/*284082*/                OPC_MoveParent,
/*284083*/                OPC_RecordChild2, // #3 = $src0
/*284084*/                OPC_CheckType, MVT::v16i32,
/*284086*/                OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*284088*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*284091*/                OPC_EmitMergeInputChains1_1,
/*284092*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPOPCNTDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*284105*/              /*SwitchType*/ 25, MVT::v2i64,// ->284132
/*284107*/                OPC_MoveParent,
/*284108*/                OPC_MoveParent,
/*284109*/                OPC_MoveParent,
/*284110*/                OPC_RecordChild2, // #3 = $src0
/*284111*/                OPC_CheckType, MVT::v16i8,
/*284113*/                OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*284115*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*284118*/                OPC_EmitMergeInputChains1_1,
/*284119*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPOPCNTBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*284132*/              /*SwitchType*/ 25, MVT::v4i64,// ->284159
/*284134*/                OPC_MoveParent,
/*284135*/                OPC_MoveParent,
/*284136*/                OPC_MoveParent,
/*284137*/                OPC_RecordChild2, // #3 = $src0
/*284138*/                OPC_CheckType, MVT::v16i16,
/*284140*/                OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*284142*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*284145*/                OPC_EmitMergeInputChains1_1,
/*284146*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPOPCNTWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*284159*/              0, // EndSwitchType
/*284160*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST),// ->284202
/*284163*/              OPC_MoveChild0,
/*284164*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284167*/              OPC_RecordMemRef,
/*284168*/              OPC_RecordNode, // #1 = 'ld' chained node
/*284169*/              OPC_CheckFoldableChainNode,
/*284170*/              OPC_RecordChild1, // #2 = $src1
/*284171*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284173*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*284175*/              OPC_CheckType, MVT::i32,
/*284177*/              OPC_MoveParent,
/*284178*/              OPC_MoveParent,
/*284179*/              OPC_MoveParent,
/*284180*/              OPC_RecordChild2, // #3 = $src0
/*284181*/              OPC_CheckType, MVT::v16i32,
/*284183*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*284185*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*284188*/              OPC_EmitMergeInputChains1_1,
/*284189*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPOPCNTDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*284202*/            0, // EndSwitchOpcode
/*284203*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::UNPCKL),// ->284357
/*284207*/            OPC_RecordChild0, // #1 = $src1
/*284208*/            OPC_MoveChild1,
/*284209*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(ISD::BITCAST),// ->284313
/*284213*/              OPC_MoveChild0,
/*284214*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284217*/              OPC_RecordMemRef,
/*284218*/              OPC_RecordNode, // #2 = 'ld' chained node
/*284219*/              OPC_CheckFoldableChainNode,
/*284220*/              OPC_RecordChild1, // #3 = $src2
/*284221*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284223*/              OPC_CheckPredicate, 9, // Predicate_load
/*284225*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*284227*/              OPC_SwitchType /*3 cases */, 26, MVT::v2i64,// ->284256
/*284230*/                OPC_MoveParent,
/*284231*/                OPC_MoveParent,
/*284232*/                OPC_MoveParent,
/*284233*/                OPC_RecordChild2, // #4 = $src0
/*284234*/                OPC_CheckType, MVT::v16i8,
/*284236*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*284238*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*284241*/                OPC_EmitMergeInputChains1_2,
/*284242*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKLBWZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284256*/              /*SwitchType*/ 26, MVT::v4i64,// ->284284
/*284258*/                OPC_MoveParent,
/*284259*/                OPC_MoveParent,
/*284260*/                OPC_MoveParent,
/*284261*/                OPC_RecordChild2, // #4 = $src0
/*284262*/                OPC_CheckType, MVT::v16i16,
/*284264*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*284266*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*284269*/                OPC_EmitMergeInputChains1_2,
/*284270*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKLWDZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284284*/              /*SwitchType*/ 26, MVT::v8i64,// ->284312
/*284286*/                OPC_MoveParent,
/*284287*/                OPC_MoveParent,
/*284288*/                OPC_MoveParent,
/*284289*/                OPC_RecordChild2, // #4 = $src0
/*284290*/                OPC_CheckType, MVT::v16i32,
/*284292*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284294*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*284297*/                OPC_EmitMergeInputChains1_2,
/*284298*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKLDQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284312*/              0, // EndSwitchType
/*284313*/            /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->284356
/*284316*/              OPC_MoveChild0,
/*284317*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284320*/              OPC_RecordMemRef,
/*284321*/              OPC_RecordNode, // #2 = 'ld' chained node
/*284322*/              OPC_CheckFoldableChainNode,
/*284323*/              OPC_RecordChild1, // #3 = $src2
/*284324*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284326*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*284328*/              OPC_CheckType, MVT::i32,
/*284330*/              OPC_MoveParent,
/*284331*/              OPC_MoveParent,
/*284332*/              OPC_MoveParent,
/*284333*/              OPC_RecordChild2, // #4 = $src0
/*284334*/              OPC_CheckType, MVT::v16i32,
/*284336*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284338*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*284341*/              OPC_EmitMergeInputChains1_2,
/*284342*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPUNPCKLDQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284356*/            0, // EndSwitchOpcode
/*284357*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::UNPCKH),// ->284511
/*284361*/            OPC_RecordChild0, // #1 = $src1
/*284362*/            OPC_MoveChild1,
/*284363*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(ISD::BITCAST),// ->284467
/*284367*/              OPC_MoveChild0,
/*284368*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284371*/              OPC_RecordMemRef,
/*284372*/              OPC_RecordNode, // #2 = 'ld' chained node
/*284373*/              OPC_CheckFoldableChainNode,
/*284374*/              OPC_RecordChild1, // #3 = $src2
/*284375*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284377*/              OPC_CheckPredicate, 9, // Predicate_load
/*284379*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*284381*/              OPC_SwitchType /*3 cases */, 26, MVT::v2i64,// ->284410
/*284384*/                OPC_MoveParent,
/*284385*/                OPC_MoveParent,
/*284386*/                OPC_MoveParent,
/*284387*/                OPC_RecordChild2, // #4 = $src0
/*284388*/                OPC_CheckType, MVT::v16i8,
/*284390*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*284392*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*284395*/                OPC_EmitMergeInputChains1_2,
/*284396*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKHBWZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284410*/              /*SwitchType*/ 26, MVT::v4i64,// ->284438
/*284412*/                OPC_MoveParent,
/*284413*/                OPC_MoveParent,
/*284414*/                OPC_MoveParent,
/*284415*/                OPC_RecordChild2, // #4 = $src0
/*284416*/                OPC_CheckType, MVT::v16i16,
/*284418*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*284420*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*284423*/                OPC_EmitMergeInputChains1_2,
/*284424*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKHWDZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284438*/              /*SwitchType*/ 26, MVT::v8i64,// ->284466
/*284440*/                OPC_MoveParent,
/*284441*/                OPC_MoveParent,
/*284442*/                OPC_MoveParent,
/*284443*/                OPC_RecordChild2, // #4 = $src0
/*284444*/                OPC_CheckType, MVT::v16i32,
/*284446*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284448*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*284451*/                OPC_EmitMergeInputChains1_2,
/*284452*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPUNPCKHDQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284466*/              0, // EndSwitchType
/*284467*/            /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->284510
/*284470*/              OPC_MoveChild0,
/*284471*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284474*/              OPC_RecordMemRef,
/*284475*/              OPC_RecordNode, // #2 = 'ld' chained node
/*284476*/              OPC_CheckFoldableChainNode,
/*284477*/              OPC_RecordChild1, // #3 = $src2
/*284478*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284480*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*284482*/              OPC_CheckType, MVT::i32,
/*284484*/              OPC_MoveParent,
/*284485*/              OPC_MoveParent,
/*284486*/              OPC_MoveParent,
/*284487*/              OPC_RecordChild2, // #4 = $src0
/*284488*/              OPC_CheckType, MVT::v16i32,
/*284490*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284492*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*284495*/              OPC_EmitMergeInputChains1_2,
/*284496*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPUNPCKHDQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284510*/            0, // EndSwitchOpcode
/*284511*/          /*SwitchOpcode*/ 4|128,1/*132*/, TARGET_VAL(X86ISD::VSHLDV),// ->284647
/*284515*/            OPC_RecordChild0, // #1 = $src1
/*284516*/            OPC_RecordChild1, // #2 = $src2
/*284517*/            OPC_MoveChild2,
/*284518*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::BITCAST),// ->284600
/*284522*/              OPC_MoveChild0,
/*284523*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284526*/              OPC_RecordMemRef,
/*284527*/              OPC_RecordNode, // #3 = 'ld' chained node
/*284528*/              OPC_CheckFoldableChainNode,
/*284529*/              OPC_RecordChild1, // #4 = $src3
/*284530*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284532*/              OPC_CheckPredicate, 9, // Predicate_load
/*284534*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*284536*/              OPC_SwitchType /*2 cases */, 29, MVT::v4i64,// ->284568
/*284539*/                OPC_MoveParent,
/*284540*/                OPC_MoveParent,
/*284541*/                OPC_MoveParent,
/*284542*/                OPC_CheckChild2Same, 1,
/*284544*/                OPC_CheckType, MVT::v16i16,
/*284546*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*284548*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*284551*/                OPC_EmitMergeInputChains, 1, 3, 
/*284554*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShldv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src1) - Complexity = 31
                          // Dst: (VPSHLDVWZ256mk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*284568*/              /*SwitchType*/ 29, MVT::v8i64,// ->284599
/*284570*/                OPC_MoveParent,
/*284571*/                OPC_MoveParent,
/*284572*/                OPC_MoveParent,
/*284573*/                OPC_CheckChild2Same, 1,
/*284575*/                OPC_CheckType, MVT::v16i32,
/*284577*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*284579*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*284582*/                OPC_EmitMergeInputChains, 1, 3, 
/*284585*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShldv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                          // Dst: (VPSHLDVDZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*284599*/              0, // EndSwitchType
/*284600*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->284646
/*284603*/              OPC_MoveChild0,
/*284604*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284607*/              OPC_RecordMemRef,
/*284608*/              OPC_RecordNode, // #3 = 'ld' chained node
/*284609*/              OPC_CheckFoldableChainNode,
/*284610*/              OPC_RecordChild1, // #4 = $src3
/*284611*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284613*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*284615*/              OPC_CheckType, MVT::i32,
/*284617*/              OPC_MoveParent,
/*284618*/              OPC_MoveParent,
/*284619*/              OPC_MoveParent,
/*284620*/              OPC_CheckChild2Same, 1,
/*284622*/              OPC_CheckType, MVT::v16i32,
/*284624*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*284626*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*284629*/              OPC_EmitMergeInputChains, 1, 3, 
/*284632*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShldv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPSHLDVDZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*284646*/            0, // EndSwitchOpcode
/*284647*/          /*SwitchOpcode*/ 4|128,1/*132*/, TARGET_VAL(X86ISD::VSHRDV),// ->284783
/*284651*/            OPC_RecordChild0, // #1 = $src1
/*284652*/            OPC_RecordChild1, // #2 = $src2
/*284653*/            OPC_MoveChild2,
/*284654*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::BITCAST),// ->284736
/*284658*/              OPC_MoveChild0,
/*284659*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284662*/              OPC_RecordMemRef,
/*284663*/              OPC_RecordNode, // #3 = 'ld' chained node
/*284664*/              OPC_CheckFoldableChainNode,
/*284665*/              OPC_RecordChild1, // #4 = $src3
/*284666*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284668*/              OPC_CheckPredicate, 9, // Predicate_load
/*284670*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*284672*/              OPC_SwitchType /*2 cases */, 29, MVT::v4i64,// ->284704
/*284675*/                OPC_MoveParent,
/*284676*/                OPC_MoveParent,
/*284677*/                OPC_MoveParent,
/*284678*/                OPC_CheckChild2Same, 1,
/*284680*/                OPC_CheckType, MVT::v16i16,
/*284682*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*284684*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*284687*/                OPC_EmitMergeInputChains, 1, 3, 
/*284690*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrdv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v16i16] }:$src1) - Complexity = 31
                          // Dst: (VPSHRDVWZ256mk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*284704*/              /*SwitchType*/ 29, MVT::v8i64,// ->284735
/*284706*/                OPC_MoveParent,
/*284707*/                OPC_MoveParent,
/*284708*/                OPC_MoveParent,
/*284709*/                OPC_CheckChild2Same, 1,
/*284711*/                OPC_CheckType, MVT::v16i32,
/*284713*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*284715*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*284718*/                OPC_EmitMergeInputChains, 1, 3, 
/*284721*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrdv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                          // Dst: (VPSHRDVDZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*284735*/              0, // EndSwitchType
/*284736*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->284782
/*284739*/              OPC_MoveChild0,
/*284740*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284743*/              OPC_RecordMemRef,
/*284744*/              OPC_RecordNode, // #3 = 'ld' chained node
/*284745*/              OPC_CheckFoldableChainNode,
/*284746*/              OPC_RecordChild1, // #4 = $src3
/*284747*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284749*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*284751*/              OPC_CheckType, MVT::i32,
/*284753*/              OPC_MoveParent,
/*284754*/              OPC_MoveParent,
/*284755*/              OPC_MoveParent,
/*284756*/              OPC_CheckChild2Same, 1,
/*284758*/              OPC_CheckType, MVT::v16i32,
/*284760*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*284762*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*284765*/              OPC_EmitMergeInputChains, 1, 3, 
/*284768*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrdv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPSHRDVDZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*284782*/            0, // EndSwitchOpcode
/*284783*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPBUSD),// ->284885
/*284786*/            OPC_RecordChild0, // #1 = $src1
/*284787*/            OPC_RecordChild1, // #2 = $src2
/*284788*/            OPC_MoveChild2,
/*284789*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->284838
/*284793*/              OPC_MoveChild0,
/*284794*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284797*/              OPC_RecordMemRef,
/*284798*/              OPC_RecordNode, // #3 = 'ld' chained node
/*284799*/              OPC_CheckFoldableChainNode,
/*284800*/              OPC_RecordChild1, // #4 = $src3
/*284801*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284803*/              OPC_CheckPredicate, 9, // Predicate_load
/*284805*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*284807*/              OPC_CheckType, MVT::v8i64,
/*284809*/              OPC_MoveParent,
/*284810*/              OPC_MoveParent,
/*284811*/              OPC_MoveParent,
/*284812*/              OPC_CheckChild2Same, 1,
/*284814*/              OPC_CheckType, MVT::v16i32,
/*284816*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*284818*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*284821*/              OPC_EmitMergeInputChains, 1, 3, 
/*284824*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*284838*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->284884
/*284841*/              OPC_MoveChild0,
/*284842*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284845*/              OPC_RecordMemRef,
/*284846*/              OPC_RecordNode, // #3 = 'ld' chained node
/*284847*/              OPC_CheckFoldableChainNode,
/*284848*/              OPC_RecordChild1, // #4 = $src3
/*284849*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284851*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*284853*/              OPC_CheckType, MVT::i32,
/*284855*/              OPC_MoveParent,
/*284856*/              OPC_MoveParent,
/*284857*/              OPC_MoveParent,
/*284858*/              OPC_CheckChild2Same, 1,
/*284860*/              OPC_CheckType, MVT::v16i32,
/*284862*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*284864*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*284867*/              OPC_EmitMergeInputChains, 1, 3, 
/*284870*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*284884*/            0, // EndSwitchOpcode
/*284885*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPBUSDS),// ->284987
/*284888*/            OPC_RecordChild0, // #1 = $src1
/*284889*/            OPC_RecordChild1, // #2 = $src2
/*284890*/            OPC_MoveChild2,
/*284891*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->284940
/*284895*/              OPC_MoveChild0,
/*284896*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284899*/              OPC_RecordMemRef,
/*284900*/              OPC_RecordNode, // #3 = 'ld' chained node
/*284901*/              OPC_CheckFoldableChainNode,
/*284902*/              OPC_RecordChild1, // #4 = $src3
/*284903*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284905*/              OPC_CheckPredicate, 9, // Predicate_load
/*284907*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*284909*/              OPC_CheckType, MVT::v8i64,
/*284911*/              OPC_MoveParent,
/*284912*/              OPC_MoveParent,
/*284913*/              OPC_MoveParent,
/*284914*/              OPC_CheckChild2Same, 1,
/*284916*/              OPC_CheckType, MVT::v16i32,
/*284918*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*284920*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*284923*/              OPC_EmitMergeInputChains, 1, 3, 
/*284926*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDSZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*284940*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->284986
/*284943*/              OPC_MoveChild0,
/*284944*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*284947*/              OPC_RecordMemRef,
/*284948*/              OPC_RecordNode, // #3 = 'ld' chained node
/*284949*/              OPC_CheckFoldableChainNode,
/*284950*/              OPC_RecordChild1, // #4 = $src3
/*284951*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284953*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*284955*/              OPC_CheckType, MVT::i32,
/*284957*/              OPC_MoveParent,
/*284958*/              OPC_MoveParent,
/*284959*/              OPC_MoveParent,
/*284960*/              OPC_CheckChild2Same, 1,
/*284962*/              OPC_CheckType, MVT::v16i32,
/*284964*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*284966*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*284969*/              OPC_EmitMergeInputChains, 1, 3, 
/*284972*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPBUSDSZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*284986*/            0, // EndSwitchOpcode
/*284987*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPWSSD),// ->285089
/*284990*/            OPC_RecordChild0, // #1 = $src1
/*284991*/            OPC_RecordChild1, // #2 = $src2
/*284992*/            OPC_MoveChild2,
/*284993*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->285042
/*284997*/              OPC_MoveChild0,
/*284998*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*285001*/              OPC_RecordMemRef,
/*285002*/              OPC_RecordNode, // #3 = 'ld' chained node
/*285003*/              OPC_CheckFoldableChainNode,
/*285004*/              OPC_RecordChild1, // #4 = $src3
/*285005*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285007*/              OPC_CheckPredicate, 9, // Predicate_load
/*285009*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*285011*/              OPC_CheckType, MVT::v8i64,
/*285013*/              OPC_MoveParent,
/*285014*/              OPC_MoveParent,
/*285015*/              OPC_MoveParent,
/*285016*/              OPC_CheckChild2Same, 1,
/*285018*/              OPC_CheckType, MVT::v16i32,
/*285020*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*285022*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*285025*/              OPC_EmitMergeInputChains, 1, 3, 
/*285028*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*285042*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->285088
/*285045*/              OPC_MoveChild0,
/*285046*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*285049*/              OPC_RecordMemRef,
/*285050*/              OPC_RecordNode, // #3 = 'ld' chained node
/*285051*/              OPC_CheckFoldableChainNode,
/*285052*/              OPC_RecordChild1, // #4 = $src3
/*285053*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285055*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*285057*/              OPC_CheckType, MVT::i32,
/*285059*/              OPC_MoveParent,
/*285060*/              OPC_MoveParent,
/*285061*/              OPC_MoveParent,
/*285062*/              OPC_CheckChild2Same, 1,
/*285064*/              OPC_CheckType, MVT::v16i32,
/*285066*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*285068*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*285071*/              OPC_EmitMergeInputChains, 1, 3, 
/*285074*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*285088*/            0, // EndSwitchOpcode
/*285089*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VPDPWSSDS),// ->285191
/*285092*/            OPC_RecordChild0, // #1 = $src1
/*285093*/            OPC_RecordChild1, // #2 = $src2
/*285094*/            OPC_MoveChild2,
/*285095*/            OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::BITCAST),// ->285144
/*285099*/              OPC_MoveChild0,
/*285100*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*285103*/              OPC_RecordMemRef,
/*285104*/              OPC_RecordNode, // #3 = 'ld' chained node
/*285105*/              OPC_CheckFoldableChainNode,
/*285106*/              OPC_RecordChild1, // #4 = $src3
/*285107*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285109*/              OPC_CheckPredicate, 9, // Predicate_load
/*285111*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*285113*/              OPC_CheckType, MVT::v8i64,
/*285115*/              OPC_MoveParent,
/*285116*/              OPC_MoveParent,
/*285117*/              OPC_MoveParent,
/*285118*/              OPC_CheckChild2Same, 1,
/*285120*/              OPC_CheckType, MVT::v16i32,
/*285122*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*285124*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*285127*/              OPC_EmitMergeInputChains, 1, 3, 
/*285130*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDSZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*285144*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->285190
/*285147*/              OPC_MoveChild0,
/*285148*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*285151*/              OPC_RecordMemRef,
/*285152*/              OPC_RecordNode, // #3 = 'ld' chained node
/*285153*/              OPC_CheckFoldableChainNode,
/*285154*/              OPC_RecordChild1, // #4 = $src3
/*285155*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285157*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*285159*/              OPC_CheckType, MVT::i32,
/*285161*/              OPC_MoveParent,
/*285162*/              OPC_MoveParent,
/*285163*/              OPC_MoveParent,
/*285164*/              OPC_CheckChild2Same, 1,
/*285166*/              OPC_CheckType, MVT::v16i32,
/*285168*/              OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*285170*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*285173*/              OPC_EmitMergeInputChains, 1, 3, 
/*285176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPDPWSSDSZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*285190*/            0, // EndSwitchOpcode
/*285191*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::GF2P8MULB),// ->285241
/*285194*/            OPC_RecordChild0, // #1 = $src1
/*285195*/            OPC_MoveChild1,
/*285196*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285199*/            OPC_MoveChild0,
/*285200*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*285203*/            OPC_RecordMemRef,
/*285204*/            OPC_RecordNode, // #2 = 'ld' chained node
/*285205*/            OPC_CheckFoldableChainNode,
/*285206*/            OPC_RecordChild1, // #3 = $src2
/*285207*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285209*/            OPC_CheckPredicate, 9, // Predicate_load
/*285211*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*285213*/            OPC_CheckType, MVT::v2i64,
/*285215*/            OPC_MoveParent,
/*285216*/            OPC_MoveParent,
/*285217*/            OPC_MoveParent,
/*285218*/            OPC_RecordChild2, // #4 = $src0
/*285219*/            OPC_CheckType, MVT::v16i8,
/*285221*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*285223*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*285226*/            OPC_EmitMergeInputChains1_2,
/*285227*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8mulb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                      // Dst: (VGF2P8MULBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285241*/          0, // EndSwitchOpcode
/*285242*/        0, /*End of Scope*/
/*285243*/      /*Scope*/ 15|128,31/*3983*/, /*->289228*/
/*285245*/        OPC_CheckChild0Type, MVT::v64i1,
/*285247*/        OPC_MoveChild1,
/*285248*/        OPC_SwitchOpcode /*28 cases */, 69|128,1/*197*/, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->285450
/*285253*/          OPC_RecordChild0, // #1 = $src1
/*285254*/          OPC_MoveChild1,
/*285255*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285258*/          OPC_MoveChild0,
/*285259*/          OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->285357
/*285263*/            OPC_MoveChild0,
/*285264*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*285267*/            OPC_RecordMemRef,
/*285268*/            OPC_RecordNode, // #2 = 'ld' chained node
/*285269*/            OPC_CheckFoldableChainNode,
/*285270*/            OPC_RecordChild1, // #3 = $src2
/*285271*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285273*/            OPC_CheckPredicate, 9, // Predicate_load
/*285275*/            OPC_CheckType, MVT::i64,
/*285277*/            OPC_MoveParent,
/*285278*/            OPC_CheckType, MVT::v8i64,
/*285280*/            OPC_MoveParent,
/*285281*/            OPC_MoveParent,
/*285282*/            OPC_RecordChild2, // #4 = $src3
/*285283*/            OPC_MoveChild2,
/*285284*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*285287*/            OPC_MoveParent,
/*285288*/            OPC_MoveParent,
/*285289*/            OPC_Scope, 38, /*->285329*/ // 2 children in Scope
/*285291*/              OPC_MoveChild2,
/*285292*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285295*/              OPC_MoveChild0,
/*285296*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*285299*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*285301*/              OPC_CheckType, MVT::v16i32,
/*285303*/              OPC_MoveParent,
/*285304*/              OPC_MoveParent,
/*285305*/              OPC_CheckType, MVT::v64i8,
/*285307*/              OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*285309*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*285312*/              OPC_EmitMergeInputChains1_2,
/*285313*/              OPC_EmitConvertToTarget, 4,
/*285315*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                        // Dst: (VGF2P8AFFINEINVQBZrmbikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*285329*/            /*Scope*/ 26, /*->285356*/
/*285330*/              OPC_RecordChild2, // #5 = $src0
/*285331*/              OPC_CheckType, MVT::v64i8,
/*285333*/              OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*285335*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*285338*/              OPC_EmitMergeInputChains1_2,
/*285339*/              OPC_EmitConvertToTarget, 4,
/*285341*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 37
                        // Dst: (VGF2P8AFFINEINVQBZrmbik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*285356*/            0, /*End of Scope*/
/*285357*/          /*SwitchOpcode*/ 89, TARGET_VAL(ISD::LOAD),// ->285449
/*285360*/            OPC_RecordMemRef,
/*285361*/            OPC_RecordNode, // #2 = 'ld' chained node
/*285362*/            OPC_CheckFoldableChainNode,
/*285363*/            OPC_RecordChild1, // #3 = $src2
/*285364*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285366*/            OPC_CheckPredicate, 9, // Predicate_load
/*285368*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*285370*/            OPC_CheckType, MVT::v8i64,
/*285372*/            OPC_MoveParent,
/*285373*/            OPC_MoveParent,
/*285374*/            OPC_RecordChild2, // #4 = $src3
/*285375*/            OPC_MoveChild2,
/*285376*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*285379*/            OPC_MoveParent,
/*285380*/            OPC_MoveParent,
/*285381*/            OPC_Scope, 38, /*->285421*/ // 2 children in Scope
/*285383*/              OPC_MoveChild2,
/*285384*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285387*/              OPC_MoveChild0,
/*285388*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*285391*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*285393*/              OPC_CheckType, MVT::v16i32,
/*285395*/              OPC_MoveParent,
/*285396*/              OPC_MoveParent,
/*285397*/              OPC_CheckType, MVT::v64i8,
/*285399*/              OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*285401*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*285404*/              OPC_EmitMergeInputChains1_2,
/*285405*/              OPC_EmitConvertToTarget, 4,
/*285407*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGF2P8AFFINEINVQBZrmikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*285421*/            /*Scope*/ 26, /*->285448*/
/*285422*/              OPC_RecordChild2, // #5 = $src0
/*285423*/              OPC_CheckType, MVT::v64i8,
/*285425*/              OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*285427*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*285430*/              OPC_EmitMergeInputChains1_2,
/*285431*/              OPC_EmitConvertToTarget, 4,
/*285433*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 34
                        // Dst: (VGF2P8AFFINEINVQBZrmik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*285448*/            0, /*End of Scope*/
/*285449*/          0, // EndSwitchOpcode
/*285450*/        /*SwitchOpcode*/ 69|128,1/*197*/, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->285651
/*285454*/          OPC_RecordChild0, // #1 = $src1
/*285455*/          OPC_MoveChild1,
/*285456*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285459*/          OPC_MoveChild0,
/*285460*/          OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->285558
/*285464*/            OPC_MoveChild0,
/*285465*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*285468*/            OPC_RecordMemRef,
/*285469*/            OPC_RecordNode, // #2 = 'ld' chained node
/*285470*/            OPC_CheckFoldableChainNode,
/*285471*/            OPC_RecordChild1, // #3 = $src2
/*285472*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285474*/            OPC_CheckPredicate, 9, // Predicate_load
/*285476*/            OPC_CheckType, MVT::i64,
/*285478*/            OPC_MoveParent,
/*285479*/            OPC_CheckType, MVT::v8i64,
/*285481*/            OPC_MoveParent,
/*285482*/            OPC_MoveParent,
/*285483*/            OPC_RecordChild2, // #4 = $src3
/*285484*/            OPC_MoveChild2,
/*285485*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*285488*/            OPC_MoveParent,
/*285489*/            OPC_MoveParent,
/*285490*/            OPC_Scope, 38, /*->285530*/ // 2 children in Scope
/*285492*/              OPC_MoveChild2,
/*285493*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285496*/              OPC_MoveChild0,
/*285497*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*285500*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*285502*/              OPC_CheckType, MVT::v16i32,
/*285504*/              OPC_MoveParent,
/*285505*/              OPC_MoveParent,
/*285506*/              OPC_CheckType, MVT::v64i8,
/*285508*/              OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*285510*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*285513*/              OPC_EmitMergeInputChains1_2,
/*285514*/              OPC_EmitConvertToTarget, 4,
/*285516*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                        // Dst: (VGF2P8AFFINEQBZrmbikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*285530*/            /*Scope*/ 26, /*->285557*/
/*285531*/              OPC_RecordChild2, // #5 = $src0
/*285532*/              OPC_CheckType, MVT::v64i8,
/*285534*/              OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*285536*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*285539*/              OPC_EmitMergeInputChains1_2,
/*285540*/              OPC_EmitConvertToTarget, 4,
/*285542*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 37
                        // Dst: (VGF2P8AFFINEQBZrmbik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*285557*/            0, /*End of Scope*/
/*285558*/          /*SwitchOpcode*/ 89, TARGET_VAL(ISD::LOAD),// ->285650
/*285561*/            OPC_RecordMemRef,
/*285562*/            OPC_RecordNode, // #2 = 'ld' chained node
/*285563*/            OPC_CheckFoldableChainNode,
/*285564*/            OPC_RecordChild1, // #3 = $src2
/*285565*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285567*/            OPC_CheckPredicate, 9, // Predicate_load
/*285569*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*285571*/            OPC_CheckType, MVT::v8i64,
/*285573*/            OPC_MoveParent,
/*285574*/            OPC_MoveParent,
/*285575*/            OPC_RecordChild2, // #4 = $src3
/*285576*/            OPC_MoveChild2,
/*285577*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*285580*/            OPC_MoveParent,
/*285581*/            OPC_MoveParent,
/*285582*/            OPC_Scope, 38, /*->285622*/ // 2 children in Scope
/*285584*/              OPC_MoveChild2,
/*285585*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285588*/              OPC_MoveChild0,
/*285589*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*285592*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*285594*/              OPC_CheckType, MVT::v16i32,
/*285596*/              OPC_MoveParent,
/*285597*/              OPC_MoveParent,
/*285598*/              OPC_CheckType, MVT::v64i8,
/*285600*/              OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*285602*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*285605*/              OPC_EmitMergeInputChains1_2,
/*285606*/              OPC_EmitConvertToTarget, 4,
/*285608*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGF2P8AFFINEQBZrmikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*285622*/            /*Scope*/ 26, /*->285649*/
/*285623*/              OPC_RecordChild2, // #5 = $src0
/*285624*/              OPC_CheckType, MVT::v64i8,
/*285626*/              OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*285628*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*285631*/              OPC_EmitMergeInputChains1_2,
/*285632*/              OPC_EmitConvertToTarget, 4,
/*285634*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 34
                        // Dst: (VGF2P8AFFINEQBZrmik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*285649*/            0, /*End of Scope*/
/*285650*/          0, // EndSwitchOpcode
/*285651*/        /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::MULTISHIFT),// ->285830
/*285655*/          OPC_RecordChild0, // #1 = $src1
/*285656*/          OPC_CheckChild0Type, MVT::v64i8,
/*285658*/          OPC_MoveChild1,
/*285659*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285662*/          OPC_MoveChild0,
/*285663*/          OPC_SwitchOpcode /*2 cases */, 82, TARGET_VAL(X86ISD::VBROADCAST),// ->285749
/*285667*/            OPC_MoveChild0,
/*285668*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*285671*/            OPC_RecordMemRef,
/*285672*/            OPC_RecordNode, // #2 = 'ld' chained node
/*285673*/            OPC_CheckFoldableChainNode,
/*285674*/            OPC_RecordChild1, // #3 = $src2
/*285675*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285677*/            OPC_CheckPredicate, 9, // Predicate_load
/*285679*/            OPC_CheckType, MVT::i64,
/*285681*/            OPC_MoveParent,
/*285682*/            OPC_CheckType, MVT::v8i64,
/*285684*/            OPC_MoveParent,
/*285685*/            OPC_MoveParent,
/*285686*/            OPC_MoveParent,
/*285687*/            OPC_Scope, 35, /*->285724*/ // 2 children in Scope
/*285689*/              OPC_MoveChild2,
/*285690*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285693*/              OPC_MoveChild0,
/*285694*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*285697*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*285699*/              OPC_CheckType, MVT::v16i32,
/*285701*/              OPC_MoveParent,
/*285702*/              OPC_MoveParent,
/*285703*/              OPC_CheckType, MVT::v64i8,
/*285705*/              OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*285707*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285710*/              OPC_EmitMergeInputChains1_2,
/*285711*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86multishift:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPMULTISHIFTQBZrmbkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285724*/            /*Scope*/ 23, /*->285748*/
/*285725*/              OPC_RecordChild2, // #4 = $src0
/*285726*/              OPC_CheckType, MVT::v64i8,
/*285728*/              OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*285730*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*285733*/              OPC_EmitMergeInputChains1_2,
/*285734*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86multishift:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR512:{ *:[v64i8] }:$src0) - Complexity = 34
                        // Dst: (VPMULTISHIFTQBZrmbk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285748*/            0, /*End of Scope*/
/*285749*/          /*SwitchOpcode*/ 77, TARGET_VAL(ISD::LOAD),// ->285829
/*285752*/            OPC_RecordMemRef,
/*285753*/            OPC_RecordNode, // #2 = 'ld' chained node
/*285754*/            OPC_CheckFoldableChainNode,
/*285755*/            OPC_RecordChild1, // #3 = $src2
/*285756*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285758*/            OPC_CheckPredicate, 9, // Predicate_load
/*285760*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*285762*/            OPC_CheckType, MVT::v8i64,
/*285764*/            OPC_MoveParent,
/*285765*/            OPC_MoveParent,
/*285766*/            OPC_MoveParent,
/*285767*/            OPC_Scope, 35, /*->285804*/ // 2 children in Scope
/*285769*/              OPC_MoveChild2,
/*285770*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285773*/              OPC_MoveChild0,
/*285774*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*285777*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*285779*/              OPC_CheckType, MVT::v16i32,
/*285781*/              OPC_MoveParent,
/*285782*/              OPC_MoveParent,
/*285783*/              OPC_CheckType, MVT::v64i8,
/*285785*/              OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*285787*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285790*/              OPC_EmitMergeInputChains1_2,
/*285791*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86multishift:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULTISHIFTQBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285804*/            /*Scope*/ 23, /*->285828*/
/*285805*/              OPC_RecordChild2, // #4 = $src0
/*285806*/              OPC_CheckType, MVT::v64i8,
/*285808*/              OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*285810*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*285813*/              OPC_EmitMergeInputChains1_2,
/*285814*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86multishift:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                        // Dst: (VPMULTISHIFTQBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285828*/            0, /*End of Scope*/
/*285829*/          0, // EndSwitchOpcode
/*285830*/        /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::PALIGNR),// ->285931
/*285833*/          OPC_RecordChild0, // #1 = $src1
/*285834*/          OPC_MoveChild1,
/*285835*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285838*/          OPC_MoveChild0,
/*285839*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*285842*/          OPC_RecordMemRef,
/*285843*/          OPC_RecordNode, // #2 = 'ld' chained node
/*285844*/          OPC_CheckFoldableChainNode,
/*285845*/          OPC_RecordChild1, // #3 = $src2
/*285846*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285848*/          OPC_CheckPredicate, 9, // Predicate_load
/*285850*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*285852*/          OPC_CheckType, MVT::v8i64,
/*285854*/          OPC_MoveParent,
/*285855*/          OPC_MoveParent,
/*285856*/          OPC_RecordChild2, // #4 = $src3
/*285857*/          OPC_MoveChild2,
/*285858*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*285861*/          OPC_MoveParent,
/*285862*/          OPC_MoveParent,
/*285863*/          OPC_Scope, 38, /*->285903*/ // 2 children in Scope
/*285865*/            OPC_MoveChild2,
/*285866*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285869*/            OPC_MoveChild0,
/*285870*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*285873*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*285875*/            OPC_CheckType, MVT::v16i32,
/*285877*/            OPC_MoveParent,
/*285878*/            OPC_MoveParent,
/*285879*/            OPC_CheckType, MVT::v64i8,
/*285881*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*285883*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*285886*/            OPC_EmitMergeInputChains1_2,
/*285887*/            OPC_EmitConvertToTarget, 4,
/*285889*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPALIGNRZrmikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*285903*/          /*Scope*/ 26, /*->285930*/
/*285904*/            OPC_RecordChild2, // #5 = $src0
/*285905*/            OPC_CheckType, MVT::v64i8,
/*285907*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*285909*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*285912*/            OPC_EmitMergeInputChains1_2,
/*285913*/            OPC_EmitConvertToTarget, 4,
/*285915*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 34
                      // Dst: (VPALIGNRZrmik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*285930*/          0, /*End of Scope*/
/*285931*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(X86ISD::VBROADCAST),// ->286095
/*285935*/          OPC_MoveChild0,
/*285936*/          OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->286019
/*285940*/            OPC_MoveChild0,
/*285941*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*285944*/            OPC_RecordMemRef,
/*285945*/            OPC_RecordNode, // #1 = 'ld' chained node
/*285946*/            OPC_CheckFoldableChainNode,
/*285947*/            OPC_RecordChild1, // #2 = $src
/*285948*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285950*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/*285952*/            OPC_CheckType, MVT::i8,
/*285954*/            OPC_MoveParent,
/*285955*/            OPC_CheckType, MVT::v16i8,
/*285957*/            OPC_MoveParent,
/*285958*/            OPC_MoveParent,
/*285959*/            OPC_Scope, 34, /*->285995*/ // 2 children in Scope
/*285961*/              OPC_MoveChild2,
/*285962*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*285965*/              OPC_MoveChild0,
/*285966*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*285969*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*285971*/              OPC_CheckType, MVT::v16i32,
/*285973*/              OPC_MoveParent,
/*285974*/              OPC_MoveParent,
/*285975*/              OPC_CheckType, MVT::v64i8,
/*285977*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*285979*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*285982*/              OPC_EmitMergeInputChains1_1,
/*285983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VBroadcast:{ *:[v64i8] } (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPBROADCASTBZmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*285995*/            /*Scope*/ 22, /*->286018*/
/*285996*/              OPC_RecordChild2, // #3 = $src0
/*285997*/              OPC_CheckType, MVT::v64i8,
/*285999*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286001*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*286004*/              OPC_EmitMergeInputChains1_1,
/*286005*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VBroadcast:{ *:[v64i8] } (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                        // Dst: (VPBROADCASTBZmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*286018*/            0, /*End of Scope*/
/*286019*/          /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->286094
/*286022*/            OPC_RecordMemRef,
/*286023*/            OPC_RecordNode, // #1 = 'ld' chained node
/*286024*/            OPC_CheckFoldableChainNode,
/*286025*/            OPC_RecordChild1, // #2 = $src
/*286026*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286028*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/*286030*/            OPC_CheckType, MVT::i8,
/*286032*/            OPC_MoveParent,
/*286033*/            OPC_MoveParent,
/*286034*/            OPC_Scope, 34, /*->286070*/ // 2 children in Scope
/*286036*/              OPC_MoveChild2,
/*286037*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286040*/              OPC_MoveChild0,
/*286041*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*286044*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*286046*/              OPC_CheckType, MVT::v16i32,
/*286048*/              OPC_MoveParent,
/*286049*/              OPC_MoveParent,
/*286050*/              OPC_CheckType, MVT::v64i8,
/*286052*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286054*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*286057*/              OPC_EmitMergeInputChains1_1,
/*286058*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VBroadcast:{ *:[v64i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPBROADCASTBZmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*286070*/            /*Scope*/ 22, /*->286093*/
/*286071*/              OPC_RecordChild2, // #3 = $src0
/*286072*/              OPC_CheckType, MVT::v64i8,
/*286074*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286076*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*286079*/              OPC_EmitMergeInputChains1_1,
/*286080*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VBroadcast:{ *:[v64i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                        // Dst: (VPBROADCASTBZmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*286093*/            0, /*End of Scope*/
/*286094*/          0, // EndSwitchOpcode
/*286095*/        /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VPERMV3),// ->286218
/*286098*/          OPC_RecordChild0, // #1 = $src1
/*286099*/          OPC_RecordChild1, // #2 = $src2
/*286100*/          OPC_MoveChild2,
/*286101*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286104*/          OPC_MoveChild0,
/*286105*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286108*/          OPC_RecordMemRef,
/*286109*/          OPC_RecordNode, // #3 = 'ld' chained node
/*286110*/          OPC_CheckFoldableChainNode,
/*286111*/          OPC_RecordChild1, // #4 = $src3
/*286112*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286114*/          OPC_CheckPredicate, 9, // Predicate_load
/*286116*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*286118*/          OPC_CheckType, MVT::v8i64,
/*286120*/          OPC_MoveParent,
/*286121*/          OPC_MoveParent,
/*286122*/          OPC_MoveParent,
/*286123*/          OPC_Scope, 38, /*->286163*/ // 3 children in Scope
/*286125*/            OPC_MoveChild2,
/*286126*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286129*/            OPC_MoveChild0,
/*286130*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*286133*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*286135*/            OPC_CheckType, MVT::v16i32,
/*286137*/            OPC_MoveParent,
/*286138*/            OPC_MoveParent,
/*286139*/            OPC_CheckType, MVT::v64i8,
/*286141*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*286143*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*286146*/            OPC_EmitMergeInputChains, 1, 3, 
/*286149*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Brmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VPermt2:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPERMT2Brmkz:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*286163*/          /*Scope*/ 26, /*->286190*/
/*286164*/            OPC_CheckChild2Same, 2,
/*286166*/            OPC_CheckType, MVT::v64i8,
/*286168*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*286170*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*286173*/            OPC_EmitMergeInputChains, 1, 3, 
/*286176*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Brmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VPermt2:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src1) - Complexity = 31
                      // Dst: (VPERMI2Brmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*286190*/          /*Scope*/ 26, /*->286217*/
/*286191*/            OPC_CheckChild2Same, 1,
/*286193*/            OPC_CheckType, MVT::v64i8,
/*286195*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*286197*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*286200*/            OPC_EmitMergeInputChains, 1, 3, 
/*286203*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Brmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VPermt2:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src1) - Complexity = 31
                      // Dst: (VPERMT2Brmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*286217*/          0, /*End of Scope*/
/*286218*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(ISD::ADD),// ->286440
/*286222*/          OPC_Scope, 59, /*->286283*/ // 4 children in Scope
/*286224*/            OPC_RecordChild0, // #1 = $src1
/*286225*/            OPC_MoveChild1,
/*286226*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286229*/            OPC_MoveChild0,
/*286230*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286233*/            OPC_RecordMemRef,
/*286234*/            OPC_RecordNode, // #2 = 'ld' chained node
/*286235*/            OPC_CheckFoldableChainNode,
/*286236*/            OPC_RecordChild1, // #3 = $src2
/*286237*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286239*/            OPC_CheckPredicate, 9, // Predicate_load
/*286241*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*286243*/            OPC_CheckType, MVT::v8i64,
/*286245*/            OPC_MoveParent,
/*286246*/            OPC_MoveParent,
/*286247*/            OPC_MoveParent,
/*286248*/            OPC_MoveChild2,
/*286249*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286252*/            OPC_MoveChild0,
/*286253*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*286256*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*286258*/            OPC_CheckType, MVT::v16i32,
/*286260*/            OPC_MoveParent,
/*286261*/            OPC_MoveParent,
/*286262*/            OPC_CheckType, MVT::v64i8,
/*286264*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286266*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286269*/            OPC_EmitMergeInputChains1_2,
/*286270*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (add:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPADDBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286283*/          /*Scope*/ 59, /*->286343*/
/*286284*/            OPC_MoveChild0,
/*286285*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286288*/            OPC_MoveChild0,
/*286289*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286292*/            OPC_RecordMemRef,
/*286293*/            OPC_RecordNode, // #1 = 'ld' chained node
/*286294*/            OPC_CheckFoldableChainNode,
/*286295*/            OPC_RecordChild1, // #2 = $src2
/*286296*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286298*/            OPC_CheckPredicate, 9, // Predicate_load
/*286300*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*286302*/            OPC_CheckType, MVT::v8i64,
/*286304*/            OPC_MoveParent,
/*286305*/            OPC_MoveParent,
/*286306*/            OPC_RecordChild1, // #3 = $src1
/*286307*/            OPC_MoveParent,
/*286308*/            OPC_MoveChild2,
/*286309*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286312*/            OPC_MoveChild0,
/*286313*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*286316*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*286318*/            OPC_CheckType, MVT::v16i32,
/*286320*/            OPC_MoveParent,
/*286321*/            OPC_MoveParent,
/*286322*/            OPC_CheckType, MVT::v64i8,
/*286324*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286326*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286329*/            OPC_EmitMergeInputChains1_1,
/*286330*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (add:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPADDBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286343*/          /*Scope*/ 47, /*->286391*/
/*286344*/            OPC_RecordChild0, // #1 = $src1
/*286345*/            OPC_MoveChild1,
/*286346*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286349*/            OPC_MoveChild0,
/*286350*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286353*/            OPC_RecordMemRef,
/*286354*/            OPC_RecordNode, // #2 = 'ld' chained node
/*286355*/            OPC_CheckFoldableChainNode,
/*286356*/            OPC_RecordChild1, // #3 = $src2
/*286357*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286359*/            OPC_CheckPredicate, 9, // Predicate_load
/*286361*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*286363*/            OPC_CheckType, MVT::v8i64,
/*286365*/            OPC_MoveParent,
/*286366*/            OPC_MoveParent,
/*286367*/            OPC_MoveParent,
/*286368*/            OPC_RecordChild2, // #4 = $src0
/*286369*/            OPC_CheckType, MVT::v64i8,
/*286371*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286373*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*286376*/            OPC_EmitMergeInputChains1_2,
/*286377*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (add:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPADDBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286391*/          /*Scope*/ 47, /*->286439*/
/*286392*/            OPC_MoveChild0,
/*286393*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286396*/            OPC_MoveChild0,
/*286397*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286400*/            OPC_RecordMemRef,
/*286401*/            OPC_RecordNode, // #1 = 'ld' chained node
/*286402*/            OPC_CheckFoldableChainNode,
/*286403*/            OPC_RecordChild1, // #2 = $src2
/*286404*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286406*/            OPC_CheckPredicate, 9, // Predicate_load
/*286408*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*286410*/            OPC_CheckType, MVT::v8i64,
/*286412*/            OPC_MoveParent,
/*286413*/            OPC_MoveParent,
/*286414*/            OPC_RecordChild1, // #3 = $src1
/*286415*/            OPC_MoveParent,
/*286416*/            OPC_RecordChild2, // #4 = $src0
/*286417*/            OPC_CheckType, MVT::v64i8,
/*286419*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286421*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*286424*/            OPC_EmitMergeInputChains1_1,
/*286425*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (add:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPADDBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286439*/          0, /*End of Scope*/
/*286440*/        /*SwitchOpcode*/ 86, TARGET_VAL(ISD::SUB),// ->286529
/*286443*/          OPC_RecordChild0, // #1 = $src1
/*286444*/          OPC_MoveChild1,
/*286445*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286448*/          OPC_MoveChild0,
/*286449*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286452*/          OPC_RecordMemRef,
/*286453*/          OPC_RecordNode, // #2 = 'ld' chained node
/*286454*/          OPC_CheckFoldableChainNode,
/*286455*/          OPC_RecordChild1, // #3 = $src2
/*286456*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286458*/          OPC_CheckPredicate, 9, // Predicate_load
/*286460*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*286462*/          OPC_CheckType, MVT::v8i64,
/*286464*/          OPC_MoveParent,
/*286465*/          OPC_MoveParent,
/*286466*/          OPC_MoveParent,
/*286467*/          OPC_Scope, 35, /*->286504*/ // 2 children in Scope
/*286469*/            OPC_MoveChild2,
/*286470*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286473*/            OPC_MoveChild0,
/*286474*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*286477*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*286479*/            OPC_CheckType, MVT::v16i32,
/*286481*/            OPC_MoveParent,
/*286482*/            OPC_MoveParent,
/*286483*/            OPC_CheckType, MVT::v64i8,
/*286485*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286487*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286490*/            OPC_EmitMergeInputChains1_2,
/*286491*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (sub:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSUBBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286504*/          /*Scope*/ 23, /*->286528*/
/*286505*/            OPC_RecordChild2, // #4 = $src0
/*286506*/            OPC_CheckType, MVT::v64i8,
/*286508*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286510*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*286513*/            OPC_EmitMergeInputChains1_2,
/*286514*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (sub:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPSUBBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286528*/          0, /*End of Scope*/
/*286529*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(X86ISD::ADDS),// ->286751
/*286533*/          OPC_Scope, 59, /*->286594*/ // 4 children in Scope
/*286535*/            OPC_RecordChild0, // #1 = $src1
/*286536*/            OPC_MoveChild1,
/*286537*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286540*/            OPC_MoveChild0,
/*286541*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286544*/            OPC_RecordMemRef,
/*286545*/            OPC_RecordNode, // #2 = 'ld' chained node
/*286546*/            OPC_CheckFoldableChainNode,
/*286547*/            OPC_RecordChild1, // #3 = $src2
/*286548*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286550*/            OPC_CheckPredicate, 9, // Predicate_load
/*286552*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*286554*/            OPC_CheckType, MVT::v8i64,
/*286556*/            OPC_MoveParent,
/*286557*/            OPC_MoveParent,
/*286558*/            OPC_MoveParent,
/*286559*/            OPC_MoveChild2,
/*286560*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286563*/            OPC_MoveChild0,
/*286564*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*286567*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*286569*/            OPC_CheckType, MVT::v16i32,
/*286571*/            OPC_MoveParent,
/*286572*/            OPC_MoveParent,
/*286573*/            OPC_CheckType, MVT::v64i8,
/*286575*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286577*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286580*/            OPC_EmitMergeInputChains1_2,
/*286581*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86adds:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPADDSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286594*/          /*Scope*/ 59, /*->286654*/
/*286595*/            OPC_MoveChild0,
/*286596*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286599*/            OPC_MoveChild0,
/*286600*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286603*/            OPC_RecordMemRef,
/*286604*/            OPC_RecordNode, // #1 = 'ld' chained node
/*286605*/            OPC_CheckFoldableChainNode,
/*286606*/            OPC_RecordChild1, // #2 = $src2
/*286607*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286609*/            OPC_CheckPredicate, 9, // Predicate_load
/*286611*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*286613*/            OPC_CheckType, MVT::v8i64,
/*286615*/            OPC_MoveParent,
/*286616*/            OPC_MoveParent,
/*286617*/            OPC_RecordChild1, // #3 = $src1
/*286618*/            OPC_MoveParent,
/*286619*/            OPC_MoveChild2,
/*286620*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286623*/            OPC_MoveChild0,
/*286624*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*286627*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*286629*/            OPC_CheckType, MVT::v16i32,
/*286631*/            OPC_MoveParent,
/*286632*/            OPC_MoveParent,
/*286633*/            OPC_CheckType, MVT::v64i8,
/*286635*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286637*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286640*/            OPC_EmitMergeInputChains1_1,
/*286641*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86adds:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPADDSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286654*/          /*Scope*/ 47, /*->286702*/
/*286655*/            OPC_RecordChild0, // #1 = $src1
/*286656*/            OPC_MoveChild1,
/*286657*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286660*/            OPC_MoveChild0,
/*286661*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286664*/            OPC_RecordMemRef,
/*286665*/            OPC_RecordNode, // #2 = 'ld' chained node
/*286666*/            OPC_CheckFoldableChainNode,
/*286667*/            OPC_RecordChild1, // #3 = $src2
/*286668*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286670*/            OPC_CheckPredicate, 9, // Predicate_load
/*286672*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*286674*/            OPC_CheckType, MVT::v8i64,
/*286676*/            OPC_MoveParent,
/*286677*/            OPC_MoveParent,
/*286678*/            OPC_MoveParent,
/*286679*/            OPC_RecordChild2, // #4 = $src0
/*286680*/            OPC_CheckType, MVT::v64i8,
/*286682*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286684*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*286687*/            OPC_EmitMergeInputChains1_2,
/*286688*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86adds:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPADDSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286702*/          /*Scope*/ 47, /*->286750*/
/*286703*/            OPC_MoveChild0,
/*286704*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286707*/            OPC_MoveChild0,
/*286708*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286711*/            OPC_RecordMemRef,
/*286712*/            OPC_RecordNode, // #1 = 'ld' chained node
/*286713*/            OPC_CheckFoldableChainNode,
/*286714*/            OPC_RecordChild1, // #2 = $src2
/*286715*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286717*/            OPC_CheckPredicate, 9, // Predicate_load
/*286719*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*286721*/            OPC_CheckType, MVT::v8i64,
/*286723*/            OPC_MoveParent,
/*286724*/            OPC_MoveParent,
/*286725*/            OPC_RecordChild1, // #3 = $src1
/*286726*/            OPC_MoveParent,
/*286727*/            OPC_RecordChild2, // #4 = $src0
/*286728*/            OPC_CheckType, MVT::v64i8,
/*286730*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286732*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*286735*/            OPC_EmitMergeInputChains1_1,
/*286736*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86adds:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPADDSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286750*/          0, /*End of Scope*/
/*286751*/        /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::SUBS),// ->286840
/*286754*/          OPC_RecordChild0, // #1 = $src1
/*286755*/          OPC_MoveChild1,
/*286756*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286759*/          OPC_MoveChild0,
/*286760*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286763*/          OPC_RecordMemRef,
/*286764*/          OPC_RecordNode, // #2 = 'ld' chained node
/*286765*/          OPC_CheckFoldableChainNode,
/*286766*/          OPC_RecordChild1, // #3 = $src2
/*286767*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286769*/          OPC_CheckPredicate, 9, // Predicate_load
/*286771*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*286773*/          OPC_CheckType, MVT::v8i64,
/*286775*/          OPC_MoveParent,
/*286776*/          OPC_MoveParent,
/*286777*/          OPC_MoveParent,
/*286778*/          OPC_Scope, 35, /*->286815*/ // 2 children in Scope
/*286780*/            OPC_MoveChild2,
/*286781*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286784*/            OPC_MoveChild0,
/*286785*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*286788*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*286790*/            OPC_CheckType, MVT::v16i32,
/*286792*/            OPC_MoveParent,
/*286793*/            OPC_MoveParent,
/*286794*/            OPC_CheckType, MVT::v64i8,
/*286796*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286798*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286801*/            OPC_EmitMergeInputChains1_2,
/*286802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86subs:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSUBSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286815*/          /*Scope*/ 23, /*->286839*/
/*286816*/            OPC_RecordChild2, // #4 = $src0
/*286817*/            OPC_CheckType, MVT::v64i8,
/*286819*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286821*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*286824*/            OPC_EmitMergeInputChains1_2,
/*286825*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86subs:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPSUBSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286839*/          0, /*End of Scope*/
/*286840*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(X86ISD::ADDUS),// ->287062
/*286844*/          OPC_Scope, 59, /*->286905*/ // 4 children in Scope
/*286846*/            OPC_RecordChild0, // #1 = $src1
/*286847*/            OPC_MoveChild1,
/*286848*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286851*/            OPC_MoveChild0,
/*286852*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286855*/            OPC_RecordMemRef,
/*286856*/            OPC_RecordNode, // #2 = 'ld' chained node
/*286857*/            OPC_CheckFoldableChainNode,
/*286858*/            OPC_RecordChild1, // #3 = $src2
/*286859*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286861*/            OPC_CheckPredicate, 9, // Predicate_load
/*286863*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*286865*/            OPC_CheckType, MVT::v8i64,
/*286867*/            OPC_MoveParent,
/*286868*/            OPC_MoveParent,
/*286869*/            OPC_MoveParent,
/*286870*/            OPC_MoveChild2,
/*286871*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286874*/            OPC_MoveChild0,
/*286875*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*286878*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*286880*/            OPC_CheckType, MVT::v16i32,
/*286882*/            OPC_MoveParent,
/*286883*/            OPC_MoveParent,
/*286884*/            OPC_CheckType, MVT::v64i8,
/*286886*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286888*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286891*/            OPC_EmitMergeInputChains1_2,
/*286892*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86addus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPADDUSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286905*/          /*Scope*/ 59, /*->286965*/
/*286906*/            OPC_MoveChild0,
/*286907*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286910*/            OPC_MoveChild0,
/*286911*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286914*/            OPC_RecordMemRef,
/*286915*/            OPC_RecordNode, // #1 = 'ld' chained node
/*286916*/            OPC_CheckFoldableChainNode,
/*286917*/            OPC_RecordChild1, // #2 = $src2
/*286918*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286920*/            OPC_CheckPredicate, 9, // Predicate_load
/*286922*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*286924*/            OPC_CheckType, MVT::v8i64,
/*286926*/            OPC_MoveParent,
/*286927*/            OPC_MoveParent,
/*286928*/            OPC_RecordChild1, // #3 = $src1
/*286929*/            OPC_MoveParent,
/*286930*/            OPC_MoveChild2,
/*286931*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286934*/            OPC_MoveChild0,
/*286935*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*286938*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*286940*/            OPC_CheckType, MVT::v16i32,
/*286942*/            OPC_MoveParent,
/*286943*/            OPC_MoveParent,
/*286944*/            OPC_CheckType, MVT::v64i8,
/*286946*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286948*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286951*/            OPC_EmitMergeInputChains1_1,
/*286952*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86addus:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPADDUSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286965*/          /*Scope*/ 47, /*->287013*/
/*286966*/            OPC_RecordChild0, // #1 = $src1
/*286967*/            OPC_MoveChild1,
/*286968*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*286971*/            OPC_MoveChild0,
/*286972*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286975*/            OPC_RecordMemRef,
/*286976*/            OPC_RecordNode, // #2 = 'ld' chained node
/*286977*/            OPC_CheckFoldableChainNode,
/*286978*/            OPC_RecordChild1, // #3 = $src2
/*286979*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286981*/            OPC_CheckPredicate, 9, // Predicate_load
/*286983*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*286985*/            OPC_CheckType, MVT::v8i64,
/*286987*/            OPC_MoveParent,
/*286988*/            OPC_MoveParent,
/*286989*/            OPC_MoveParent,
/*286990*/            OPC_RecordChild2, // #4 = $src0
/*286991*/            OPC_CheckType, MVT::v64i8,
/*286993*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*286995*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*286998*/            OPC_EmitMergeInputChains1_2,
/*286999*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86addus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPADDUSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287013*/          /*Scope*/ 47, /*->287061*/
/*287014*/            OPC_MoveChild0,
/*287015*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287018*/            OPC_MoveChild0,
/*287019*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287022*/            OPC_RecordMemRef,
/*287023*/            OPC_RecordNode, // #1 = 'ld' chained node
/*287024*/            OPC_CheckFoldableChainNode,
/*287025*/            OPC_RecordChild1, // #2 = $src2
/*287026*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287028*/            OPC_CheckPredicate, 9, // Predicate_load
/*287030*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287032*/            OPC_CheckType, MVT::v8i64,
/*287034*/            OPC_MoveParent,
/*287035*/            OPC_MoveParent,
/*287036*/            OPC_RecordChild1, // #3 = $src1
/*287037*/            OPC_MoveParent,
/*287038*/            OPC_RecordChild2, // #4 = $src0
/*287039*/            OPC_CheckType, MVT::v64i8,
/*287041*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287043*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287046*/            OPC_EmitMergeInputChains1_1,
/*287047*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86addus:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPADDUSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287061*/          0, /*End of Scope*/
/*287062*/        /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::SUBUS),// ->287151
/*287065*/          OPC_RecordChild0, // #1 = $src1
/*287066*/          OPC_MoveChild1,
/*287067*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287070*/          OPC_MoveChild0,
/*287071*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287074*/          OPC_RecordMemRef,
/*287075*/          OPC_RecordNode, // #2 = 'ld' chained node
/*287076*/          OPC_CheckFoldableChainNode,
/*287077*/          OPC_RecordChild1, // #3 = $src2
/*287078*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287080*/          OPC_CheckPredicate, 9, // Predicate_load
/*287082*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*287084*/          OPC_CheckType, MVT::v8i64,
/*287086*/          OPC_MoveParent,
/*287087*/          OPC_MoveParent,
/*287088*/          OPC_MoveParent,
/*287089*/          OPC_Scope, 35, /*->287126*/ // 2 children in Scope
/*287091*/            OPC_MoveChild2,
/*287092*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287095*/            OPC_MoveChild0,
/*287096*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*287099*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*287101*/            OPC_CheckType, MVT::v16i32,
/*287103*/            OPC_MoveParent,
/*287104*/            OPC_MoveParent,
/*287105*/            OPC_CheckType, MVT::v64i8,
/*287107*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287109*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*287112*/            OPC_EmitMergeInputChains1_2,
/*287113*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86subus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSUBUSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287126*/          /*Scope*/ 23, /*->287150*/
/*287127*/            OPC_RecordChild2, // #4 = $src0
/*287128*/            OPC_CheckType, MVT::v64i8,
/*287130*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287132*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287135*/            OPC_EmitMergeInputChains1_2,
/*287136*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86subus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPSUBUSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287150*/          0, /*End of Scope*/
/*287151*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(X86ISD::AVG),// ->287373
/*287155*/          OPC_Scope, 59, /*->287216*/ // 4 children in Scope
/*287157*/            OPC_RecordChild0, // #1 = $src1
/*287158*/            OPC_MoveChild1,
/*287159*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287162*/            OPC_MoveChild0,
/*287163*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287166*/            OPC_RecordMemRef,
/*287167*/            OPC_RecordNode, // #2 = 'ld' chained node
/*287168*/            OPC_CheckFoldableChainNode,
/*287169*/            OPC_RecordChild1, // #3 = $src2
/*287170*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287172*/            OPC_CheckPredicate, 9, // Predicate_load
/*287174*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287176*/            OPC_CheckType, MVT::v8i64,
/*287178*/            OPC_MoveParent,
/*287179*/            OPC_MoveParent,
/*287180*/            OPC_MoveParent,
/*287181*/            OPC_MoveChild2,
/*287182*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287185*/            OPC_MoveChild0,
/*287186*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*287189*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*287191*/            OPC_CheckType, MVT::v16i32,
/*287193*/            OPC_MoveParent,
/*287194*/            OPC_MoveParent,
/*287195*/            OPC_CheckType, MVT::v64i8,
/*287197*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287199*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*287202*/            OPC_EmitMergeInputChains1_2,
/*287203*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86avg:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPAVGBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287216*/          /*Scope*/ 59, /*->287276*/
/*287217*/            OPC_MoveChild0,
/*287218*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287221*/            OPC_MoveChild0,
/*287222*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287225*/            OPC_RecordMemRef,
/*287226*/            OPC_RecordNode, // #1 = 'ld' chained node
/*287227*/            OPC_CheckFoldableChainNode,
/*287228*/            OPC_RecordChild1, // #2 = $src2
/*287229*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287231*/            OPC_CheckPredicate, 9, // Predicate_load
/*287233*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287235*/            OPC_CheckType, MVT::v8i64,
/*287237*/            OPC_MoveParent,
/*287238*/            OPC_MoveParent,
/*287239*/            OPC_RecordChild1, // #3 = $src1
/*287240*/            OPC_MoveParent,
/*287241*/            OPC_MoveChild2,
/*287242*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287245*/            OPC_MoveChild0,
/*287246*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*287249*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*287251*/            OPC_CheckType, MVT::v16i32,
/*287253*/            OPC_MoveParent,
/*287254*/            OPC_MoveParent,
/*287255*/            OPC_CheckType, MVT::v64i8,
/*287257*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287259*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*287262*/            OPC_EmitMergeInputChains1_1,
/*287263*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86avg:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPAVGBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287276*/          /*Scope*/ 47, /*->287324*/
/*287277*/            OPC_RecordChild0, // #1 = $src1
/*287278*/            OPC_MoveChild1,
/*287279*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287282*/            OPC_MoveChild0,
/*287283*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287286*/            OPC_RecordMemRef,
/*287287*/            OPC_RecordNode, // #2 = 'ld' chained node
/*287288*/            OPC_CheckFoldableChainNode,
/*287289*/            OPC_RecordChild1, // #3 = $src2
/*287290*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287292*/            OPC_CheckPredicate, 9, // Predicate_load
/*287294*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287296*/            OPC_CheckType, MVT::v8i64,
/*287298*/            OPC_MoveParent,
/*287299*/            OPC_MoveParent,
/*287300*/            OPC_MoveParent,
/*287301*/            OPC_RecordChild2, // #4 = $src0
/*287302*/            OPC_CheckType, MVT::v64i8,
/*287304*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287306*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287309*/            OPC_EmitMergeInputChains1_2,
/*287310*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86avg:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPAVGBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287324*/          /*Scope*/ 47, /*->287372*/
/*287325*/            OPC_MoveChild0,
/*287326*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287329*/            OPC_MoveChild0,
/*287330*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287333*/            OPC_RecordMemRef,
/*287334*/            OPC_RecordNode, // #1 = 'ld' chained node
/*287335*/            OPC_CheckFoldableChainNode,
/*287336*/            OPC_RecordChild1, // #2 = $src2
/*287337*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287339*/            OPC_CheckPredicate, 9, // Predicate_load
/*287341*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287343*/            OPC_CheckType, MVT::v8i64,
/*287345*/            OPC_MoveParent,
/*287346*/            OPC_MoveParent,
/*287347*/            OPC_RecordChild1, // #3 = $src1
/*287348*/            OPC_MoveParent,
/*287349*/            OPC_RecordChild2, // #4 = $src0
/*287350*/            OPC_CheckType, MVT::v64i8,
/*287352*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287354*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287357*/            OPC_EmitMergeInputChains1_1,
/*287358*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86avg:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPAVGBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287372*/          0, /*End of Scope*/
/*287373*/        /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::PACKSS),// ->287464
/*287376*/          OPC_RecordChild0, // #1 = $src1
/*287377*/          OPC_CheckChild0Type, MVT::v32i16,
/*287379*/          OPC_MoveChild1,
/*287380*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287383*/          OPC_MoveChild0,
/*287384*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287387*/          OPC_RecordMemRef,
/*287388*/          OPC_RecordNode, // #2 = 'ld' chained node
/*287389*/          OPC_CheckFoldableChainNode,
/*287390*/          OPC_RecordChild1, // #3 = $src2
/*287391*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287393*/          OPC_CheckPredicate, 9, // Predicate_load
/*287395*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*287397*/          OPC_CheckType, MVT::v8i64,
/*287399*/          OPC_MoveParent,
/*287400*/          OPC_MoveParent,
/*287401*/          OPC_MoveParent,
/*287402*/          OPC_Scope, 35, /*->287439*/ // 2 children in Scope
/*287404*/            OPC_MoveChild2,
/*287405*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287408*/            OPC_MoveChild0,
/*287409*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*287412*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*287414*/            OPC_CheckType, MVT::v16i32,
/*287416*/            OPC_MoveParent,
/*287417*/            OPC_MoveParent,
/*287418*/            OPC_CheckType, MVT::v64i8,
/*287420*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287422*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*287425*/            OPC_EmitMergeInputChains1_2,
/*287426*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Packss:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPACKSSWBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287439*/          /*Scope*/ 23, /*->287463*/
/*287440*/            OPC_RecordChild2, // #4 = $src0
/*287441*/            OPC_CheckType, MVT::v64i8,
/*287443*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287445*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287448*/            OPC_EmitMergeInputChains1_2,
/*287449*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Packss:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPACKSSWBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287463*/          0, /*End of Scope*/
/*287464*/        /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::PACKUS),// ->287555
/*287467*/          OPC_RecordChild0, // #1 = $src1
/*287468*/          OPC_CheckChild0Type, MVT::v32i16,
/*287470*/          OPC_MoveChild1,
/*287471*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287474*/          OPC_MoveChild0,
/*287475*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287478*/          OPC_RecordMemRef,
/*287479*/          OPC_RecordNode, // #2 = 'ld' chained node
/*287480*/          OPC_CheckFoldableChainNode,
/*287481*/          OPC_RecordChild1, // #3 = $src2
/*287482*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287484*/          OPC_CheckPredicate, 9, // Predicate_load
/*287486*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*287488*/          OPC_CheckType, MVT::v8i64,
/*287490*/          OPC_MoveParent,
/*287491*/          OPC_MoveParent,
/*287492*/          OPC_MoveParent,
/*287493*/          OPC_Scope, 35, /*->287530*/ // 2 children in Scope
/*287495*/            OPC_MoveChild2,
/*287496*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287499*/            OPC_MoveChild0,
/*287500*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*287503*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*287505*/            OPC_CheckType, MVT::v16i32,
/*287507*/            OPC_MoveParent,
/*287508*/            OPC_MoveParent,
/*287509*/            OPC_CheckType, MVT::v64i8,
/*287511*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287513*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*287516*/            OPC_EmitMergeInputChains1_2,
/*287517*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Packus:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPACKUSWBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287530*/          /*Scope*/ 23, /*->287554*/
/*287531*/            OPC_RecordChild2, // #4 = $src0
/*287532*/            OPC_CheckType, MVT::v64i8,
/*287534*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287536*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287539*/            OPC_EmitMergeInputChains1_2,
/*287540*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Packus:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPACKUSWBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287554*/          0, /*End of Scope*/
/*287555*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(ISD::SMAX),// ->287777
/*287559*/          OPC_Scope, 59, /*->287620*/ // 4 children in Scope
/*287561*/            OPC_RecordChild0, // #1 = $src1
/*287562*/            OPC_MoveChild1,
/*287563*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287566*/            OPC_MoveChild0,
/*287567*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287570*/            OPC_RecordMemRef,
/*287571*/            OPC_RecordNode, // #2 = 'ld' chained node
/*287572*/            OPC_CheckFoldableChainNode,
/*287573*/            OPC_RecordChild1, // #3 = $src2
/*287574*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287576*/            OPC_CheckPredicate, 9, // Predicate_load
/*287578*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287580*/            OPC_CheckType, MVT::v8i64,
/*287582*/            OPC_MoveParent,
/*287583*/            OPC_MoveParent,
/*287584*/            OPC_MoveParent,
/*287585*/            OPC_MoveChild2,
/*287586*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287589*/            OPC_MoveChild0,
/*287590*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*287593*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*287595*/            OPC_CheckType, MVT::v16i32,
/*287597*/            OPC_MoveParent,
/*287598*/            OPC_MoveParent,
/*287599*/            OPC_CheckType, MVT::v64i8,
/*287601*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287603*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*287606*/            OPC_EmitMergeInputChains1_2,
/*287607*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMAXSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287620*/          /*Scope*/ 59, /*->287680*/
/*287621*/            OPC_MoveChild0,
/*287622*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287625*/            OPC_MoveChild0,
/*287626*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287629*/            OPC_RecordMemRef,
/*287630*/            OPC_RecordNode, // #1 = 'ld' chained node
/*287631*/            OPC_CheckFoldableChainNode,
/*287632*/            OPC_RecordChild1, // #2 = $src2
/*287633*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287635*/            OPC_CheckPredicate, 9, // Predicate_load
/*287637*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287639*/            OPC_CheckType, MVT::v8i64,
/*287641*/            OPC_MoveParent,
/*287642*/            OPC_MoveParent,
/*287643*/            OPC_RecordChild1, // #3 = $src1
/*287644*/            OPC_MoveParent,
/*287645*/            OPC_MoveChild2,
/*287646*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287649*/            OPC_MoveChild0,
/*287650*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*287653*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*287655*/            OPC_CheckType, MVT::v16i32,
/*287657*/            OPC_MoveParent,
/*287658*/            OPC_MoveParent,
/*287659*/            OPC_CheckType, MVT::v64i8,
/*287661*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287663*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*287666*/            OPC_EmitMergeInputChains1_1,
/*287667*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smax:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMAXSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287680*/          /*Scope*/ 47, /*->287728*/
/*287681*/            OPC_RecordChild0, // #1 = $src1
/*287682*/            OPC_MoveChild1,
/*287683*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287686*/            OPC_MoveChild0,
/*287687*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287690*/            OPC_RecordMemRef,
/*287691*/            OPC_RecordNode, // #2 = 'ld' chained node
/*287692*/            OPC_CheckFoldableChainNode,
/*287693*/            OPC_RecordChild1, // #3 = $src2
/*287694*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287696*/            OPC_CheckPredicate, 9, // Predicate_load
/*287698*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287700*/            OPC_CheckType, MVT::v8i64,
/*287702*/            OPC_MoveParent,
/*287703*/            OPC_MoveParent,
/*287704*/            OPC_MoveParent,
/*287705*/            OPC_RecordChild2, // #4 = $src0
/*287706*/            OPC_CheckType, MVT::v64i8,
/*287708*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287710*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287713*/            OPC_EmitMergeInputChains1_2,
/*287714*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPMAXSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287728*/          /*Scope*/ 47, /*->287776*/
/*287729*/            OPC_MoveChild0,
/*287730*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287733*/            OPC_MoveChild0,
/*287734*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287737*/            OPC_RecordMemRef,
/*287738*/            OPC_RecordNode, // #1 = 'ld' chained node
/*287739*/            OPC_CheckFoldableChainNode,
/*287740*/            OPC_RecordChild1, // #2 = $src2
/*287741*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287743*/            OPC_CheckPredicate, 9, // Predicate_load
/*287745*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287747*/            OPC_CheckType, MVT::v8i64,
/*287749*/            OPC_MoveParent,
/*287750*/            OPC_MoveParent,
/*287751*/            OPC_RecordChild1, // #3 = $src1
/*287752*/            OPC_MoveParent,
/*287753*/            OPC_RecordChild2, // #4 = $src0
/*287754*/            OPC_CheckType, MVT::v64i8,
/*287756*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287758*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287761*/            OPC_EmitMergeInputChains1_1,
/*287762*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smax:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPMAXSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287776*/          0, /*End of Scope*/
/*287777*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(ISD::UMAX),// ->287999
/*287781*/          OPC_Scope, 59, /*->287842*/ // 4 children in Scope
/*287783*/            OPC_RecordChild0, // #1 = $src1
/*287784*/            OPC_MoveChild1,
/*287785*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287788*/            OPC_MoveChild0,
/*287789*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287792*/            OPC_RecordMemRef,
/*287793*/            OPC_RecordNode, // #2 = 'ld' chained node
/*287794*/            OPC_CheckFoldableChainNode,
/*287795*/            OPC_RecordChild1, // #3 = $src2
/*287796*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287798*/            OPC_CheckPredicate, 9, // Predicate_load
/*287800*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287802*/            OPC_CheckType, MVT::v8i64,
/*287804*/            OPC_MoveParent,
/*287805*/            OPC_MoveParent,
/*287806*/            OPC_MoveParent,
/*287807*/            OPC_MoveChild2,
/*287808*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287811*/            OPC_MoveChild0,
/*287812*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*287815*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*287817*/            OPC_CheckType, MVT::v16i32,
/*287819*/            OPC_MoveParent,
/*287820*/            OPC_MoveParent,
/*287821*/            OPC_CheckType, MVT::v64i8,
/*287823*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287825*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*287828*/            OPC_EmitMergeInputChains1_2,
/*287829*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMAXUBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287842*/          /*Scope*/ 59, /*->287902*/
/*287843*/            OPC_MoveChild0,
/*287844*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287847*/            OPC_MoveChild0,
/*287848*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287851*/            OPC_RecordMemRef,
/*287852*/            OPC_RecordNode, // #1 = 'ld' chained node
/*287853*/            OPC_CheckFoldableChainNode,
/*287854*/            OPC_RecordChild1, // #2 = $src2
/*287855*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287857*/            OPC_CheckPredicate, 9, // Predicate_load
/*287859*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287861*/            OPC_CheckType, MVT::v8i64,
/*287863*/            OPC_MoveParent,
/*287864*/            OPC_MoveParent,
/*287865*/            OPC_RecordChild1, // #3 = $src1
/*287866*/            OPC_MoveParent,
/*287867*/            OPC_MoveChild2,
/*287868*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287871*/            OPC_MoveChild0,
/*287872*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*287875*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*287877*/            OPC_CheckType, MVT::v16i32,
/*287879*/            OPC_MoveParent,
/*287880*/            OPC_MoveParent,
/*287881*/            OPC_CheckType, MVT::v64i8,
/*287883*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287885*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*287888*/            OPC_EmitMergeInputChains1_1,
/*287889*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umax:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMAXUBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287902*/          /*Scope*/ 47, /*->287950*/
/*287903*/            OPC_RecordChild0, // #1 = $src1
/*287904*/            OPC_MoveChild1,
/*287905*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287908*/            OPC_MoveChild0,
/*287909*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287912*/            OPC_RecordMemRef,
/*287913*/            OPC_RecordNode, // #2 = 'ld' chained node
/*287914*/            OPC_CheckFoldableChainNode,
/*287915*/            OPC_RecordChild1, // #3 = $src2
/*287916*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287918*/            OPC_CheckPredicate, 9, // Predicate_load
/*287920*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287922*/            OPC_CheckType, MVT::v8i64,
/*287924*/            OPC_MoveParent,
/*287925*/            OPC_MoveParent,
/*287926*/            OPC_MoveParent,
/*287927*/            OPC_RecordChild2, // #4 = $src0
/*287928*/            OPC_CheckType, MVT::v64i8,
/*287930*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287932*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287935*/            OPC_EmitMergeInputChains1_2,
/*287936*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPMAXUBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287950*/          /*Scope*/ 47, /*->287998*/
/*287951*/            OPC_MoveChild0,
/*287952*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287955*/            OPC_MoveChild0,
/*287956*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*287959*/            OPC_RecordMemRef,
/*287960*/            OPC_RecordNode, // #1 = 'ld' chained node
/*287961*/            OPC_CheckFoldableChainNode,
/*287962*/            OPC_RecordChild1, // #2 = $src2
/*287963*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287965*/            OPC_CheckPredicate, 9, // Predicate_load
/*287967*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*287969*/            OPC_CheckType, MVT::v8i64,
/*287971*/            OPC_MoveParent,
/*287972*/            OPC_MoveParent,
/*287973*/            OPC_RecordChild1, // #3 = $src1
/*287974*/            OPC_MoveParent,
/*287975*/            OPC_RecordChild2, // #4 = $src0
/*287976*/            OPC_CheckType, MVT::v64i8,
/*287978*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*287980*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287983*/            OPC_EmitMergeInputChains1_1,
/*287984*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umax:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPMAXUBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*287998*/          0, /*End of Scope*/
/*287999*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(ISD::SMIN),// ->288221
/*288003*/          OPC_Scope, 59, /*->288064*/ // 4 children in Scope
/*288005*/            OPC_RecordChild0, // #1 = $src1
/*288006*/            OPC_MoveChild1,
/*288007*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288010*/            OPC_MoveChild0,
/*288011*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288014*/            OPC_RecordMemRef,
/*288015*/            OPC_RecordNode, // #2 = 'ld' chained node
/*288016*/            OPC_CheckFoldableChainNode,
/*288017*/            OPC_RecordChild1, // #3 = $src2
/*288018*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288020*/            OPC_CheckPredicate, 9, // Predicate_load
/*288022*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*288024*/            OPC_CheckType, MVT::v8i64,
/*288026*/            OPC_MoveParent,
/*288027*/            OPC_MoveParent,
/*288028*/            OPC_MoveParent,
/*288029*/            OPC_MoveChild2,
/*288030*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288033*/            OPC_MoveChild0,
/*288034*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*288037*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*288039*/            OPC_CheckType, MVT::v16i32,
/*288041*/            OPC_MoveParent,
/*288042*/            OPC_MoveParent,
/*288043*/            OPC_CheckType, MVT::v64i8,
/*288045*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288047*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288050*/            OPC_EmitMergeInputChains1_2,
/*288051*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMINSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288064*/          /*Scope*/ 59, /*->288124*/
/*288065*/            OPC_MoveChild0,
/*288066*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288069*/            OPC_MoveChild0,
/*288070*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288073*/            OPC_RecordMemRef,
/*288074*/            OPC_RecordNode, // #1 = 'ld' chained node
/*288075*/            OPC_CheckFoldableChainNode,
/*288076*/            OPC_RecordChild1, // #2 = $src2
/*288077*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288079*/            OPC_CheckPredicate, 9, // Predicate_load
/*288081*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*288083*/            OPC_CheckType, MVT::v8i64,
/*288085*/            OPC_MoveParent,
/*288086*/            OPC_MoveParent,
/*288087*/            OPC_RecordChild1, // #3 = $src1
/*288088*/            OPC_MoveParent,
/*288089*/            OPC_MoveChild2,
/*288090*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288093*/            OPC_MoveChild0,
/*288094*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*288097*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*288099*/            OPC_CheckType, MVT::v16i32,
/*288101*/            OPC_MoveParent,
/*288102*/            OPC_MoveParent,
/*288103*/            OPC_CheckType, MVT::v64i8,
/*288105*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288107*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288110*/            OPC_EmitMergeInputChains1_1,
/*288111*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smin:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMINSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288124*/          /*Scope*/ 47, /*->288172*/
/*288125*/            OPC_RecordChild0, // #1 = $src1
/*288126*/            OPC_MoveChild1,
/*288127*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288130*/            OPC_MoveChild0,
/*288131*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288134*/            OPC_RecordMemRef,
/*288135*/            OPC_RecordNode, // #2 = 'ld' chained node
/*288136*/            OPC_CheckFoldableChainNode,
/*288137*/            OPC_RecordChild1, // #3 = $src2
/*288138*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288140*/            OPC_CheckPredicate, 9, // Predicate_load
/*288142*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*288144*/            OPC_CheckType, MVT::v8i64,
/*288146*/            OPC_MoveParent,
/*288147*/            OPC_MoveParent,
/*288148*/            OPC_MoveParent,
/*288149*/            OPC_RecordChild2, // #4 = $src0
/*288150*/            OPC_CheckType, MVT::v64i8,
/*288152*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288154*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288157*/            OPC_EmitMergeInputChains1_2,
/*288158*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPMINSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288172*/          /*Scope*/ 47, /*->288220*/
/*288173*/            OPC_MoveChild0,
/*288174*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288177*/            OPC_MoveChild0,
/*288178*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288181*/            OPC_RecordMemRef,
/*288182*/            OPC_RecordNode, // #1 = 'ld' chained node
/*288183*/            OPC_CheckFoldableChainNode,
/*288184*/            OPC_RecordChild1, // #2 = $src2
/*288185*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288187*/            OPC_CheckPredicate, 9, // Predicate_load
/*288189*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*288191*/            OPC_CheckType, MVT::v8i64,
/*288193*/            OPC_MoveParent,
/*288194*/            OPC_MoveParent,
/*288195*/            OPC_RecordChild1, // #3 = $src1
/*288196*/            OPC_MoveParent,
/*288197*/            OPC_RecordChild2, // #4 = $src0
/*288198*/            OPC_CheckType, MVT::v64i8,
/*288200*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288202*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288205*/            OPC_EmitMergeInputChains1_1,
/*288206*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smin:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPMINSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288220*/          0, /*End of Scope*/
/*288221*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(ISD::UMIN),// ->288443
/*288225*/          OPC_Scope, 59, /*->288286*/ // 4 children in Scope
/*288227*/            OPC_RecordChild0, // #1 = $src1
/*288228*/            OPC_MoveChild1,
/*288229*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288232*/            OPC_MoveChild0,
/*288233*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288236*/            OPC_RecordMemRef,
/*288237*/            OPC_RecordNode, // #2 = 'ld' chained node
/*288238*/            OPC_CheckFoldableChainNode,
/*288239*/            OPC_RecordChild1, // #3 = $src2
/*288240*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288242*/            OPC_CheckPredicate, 9, // Predicate_load
/*288244*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*288246*/            OPC_CheckType, MVT::v8i64,
/*288248*/            OPC_MoveParent,
/*288249*/            OPC_MoveParent,
/*288250*/            OPC_MoveParent,
/*288251*/            OPC_MoveChild2,
/*288252*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288255*/            OPC_MoveChild0,
/*288256*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*288259*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*288261*/            OPC_CheckType, MVT::v16i32,
/*288263*/            OPC_MoveParent,
/*288264*/            OPC_MoveParent,
/*288265*/            OPC_CheckType, MVT::v64i8,
/*288267*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288269*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288272*/            OPC_EmitMergeInputChains1_2,
/*288273*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMINUBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288286*/          /*Scope*/ 59, /*->288346*/
/*288287*/            OPC_MoveChild0,
/*288288*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288291*/            OPC_MoveChild0,
/*288292*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288295*/            OPC_RecordMemRef,
/*288296*/            OPC_RecordNode, // #1 = 'ld' chained node
/*288297*/            OPC_CheckFoldableChainNode,
/*288298*/            OPC_RecordChild1, // #2 = $src2
/*288299*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288301*/            OPC_CheckPredicate, 9, // Predicate_load
/*288303*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*288305*/            OPC_CheckType, MVT::v8i64,
/*288307*/            OPC_MoveParent,
/*288308*/            OPC_MoveParent,
/*288309*/            OPC_RecordChild1, // #3 = $src1
/*288310*/            OPC_MoveParent,
/*288311*/            OPC_MoveChild2,
/*288312*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288315*/            OPC_MoveChild0,
/*288316*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*288319*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*288321*/            OPC_CheckType, MVT::v16i32,
/*288323*/            OPC_MoveParent,
/*288324*/            OPC_MoveParent,
/*288325*/            OPC_CheckType, MVT::v64i8,
/*288327*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288329*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288332*/            OPC_EmitMergeInputChains1_1,
/*288333*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umin:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMINUBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288346*/          /*Scope*/ 47, /*->288394*/
/*288347*/            OPC_RecordChild0, // #1 = $src1
/*288348*/            OPC_MoveChild1,
/*288349*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288352*/            OPC_MoveChild0,
/*288353*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288356*/            OPC_RecordMemRef,
/*288357*/            OPC_RecordNode, // #2 = 'ld' chained node
/*288358*/            OPC_CheckFoldableChainNode,
/*288359*/            OPC_RecordChild1, // #3 = $src2
/*288360*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288362*/            OPC_CheckPredicate, 9, // Predicate_load
/*288364*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*288366*/            OPC_CheckType, MVT::v8i64,
/*288368*/            OPC_MoveParent,
/*288369*/            OPC_MoveParent,
/*288370*/            OPC_MoveParent,
/*288371*/            OPC_RecordChild2, // #4 = $src0
/*288372*/            OPC_CheckType, MVT::v64i8,
/*288374*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288376*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288379*/            OPC_EmitMergeInputChains1_2,
/*288380*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPMINUBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288394*/          /*Scope*/ 47, /*->288442*/
/*288395*/            OPC_MoveChild0,
/*288396*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288399*/            OPC_MoveChild0,
/*288400*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288403*/            OPC_RecordMemRef,
/*288404*/            OPC_RecordNode, // #1 = 'ld' chained node
/*288405*/            OPC_CheckFoldableChainNode,
/*288406*/            OPC_RecordChild1, // #2 = $src2
/*288407*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288409*/            OPC_CheckPredicate, 9, // Predicate_load
/*288411*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*288413*/            OPC_CheckType, MVT::v8i64,
/*288415*/            OPC_MoveParent,
/*288416*/            OPC_MoveParent,
/*288417*/            OPC_RecordChild1, // #3 = $src1
/*288418*/            OPC_MoveParent,
/*288419*/            OPC_RecordChild2, // #4 = $src0
/*288420*/            OPC_CheckType, MVT::v64i8,
/*288422*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288424*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288427*/            OPC_EmitMergeInputChains1_1,
/*288428*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umin:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPMINUBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288442*/          0, /*End of Scope*/
/*288443*/        /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VPERMV),// ->288532
/*288446*/          OPC_RecordChild0, // #1 = $src1
/*288447*/          OPC_MoveChild1,
/*288448*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288451*/          OPC_MoveChild0,
/*288452*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288455*/          OPC_RecordMemRef,
/*288456*/          OPC_RecordNode, // #2 = 'ld' chained node
/*288457*/          OPC_CheckFoldableChainNode,
/*288458*/          OPC_RecordChild1, // #3 = $src2
/*288459*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288461*/          OPC_CheckPredicate, 9, // Predicate_load
/*288463*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*288465*/          OPC_CheckType, MVT::v8i64,
/*288467*/          OPC_MoveParent,
/*288468*/          OPC_MoveParent,
/*288469*/          OPC_MoveParent,
/*288470*/          OPC_Scope, 35, /*->288507*/ // 2 children in Scope
/*288472*/            OPC_MoveChild2,
/*288473*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288476*/            OPC_MoveChild0,
/*288477*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*288480*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*288482*/            OPC_CheckType, MVT::v16i32,
/*288484*/            OPC_MoveParent,
/*288485*/            OPC_MoveParent,
/*288486*/            OPC_CheckType, MVT::v64i8,
/*288488*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*288490*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288493*/            OPC_EmitMergeInputChains1_2,
/*288494*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VPermv:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPERMBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288507*/          /*Scope*/ 23, /*->288531*/
/*288508*/            OPC_RecordChild2, // #4 = $src0
/*288509*/            OPC_CheckType, MVT::v64i8,
/*288511*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*288513*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288516*/            OPC_EmitMergeInputChains1_2,
/*288517*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VPermv:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPERMBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288531*/          0, /*End of Scope*/
/*288532*/        /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::PSHUFB),// ->288621
/*288535*/          OPC_RecordChild0, // #1 = $src1
/*288536*/          OPC_MoveChild1,
/*288537*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288540*/          OPC_MoveChild0,
/*288541*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288544*/          OPC_RecordMemRef,
/*288545*/          OPC_RecordNode, // #2 = 'ld' chained node
/*288546*/          OPC_CheckFoldableChainNode,
/*288547*/          OPC_RecordChild1, // #3 = $src2
/*288548*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288550*/          OPC_CheckPredicate, 9, // Predicate_load
/*288552*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*288554*/          OPC_CheckType, MVT::v8i64,
/*288556*/          OPC_MoveParent,
/*288557*/          OPC_MoveParent,
/*288558*/          OPC_MoveParent,
/*288559*/          OPC_Scope, 35, /*->288596*/ // 2 children in Scope
/*288561*/            OPC_MoveChild2,
/*288562*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288565*/            OPC_MoveChild0,
/*288566*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*288569*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*288571*/            OPC_CheckType, MVT::v16i32,
/*288573*/            OPC_MoveParent,
/*288574*/            OPC_MoveParent,
/*288575*/            OPC_CheckType, MVT::v64i8,
/*288577*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288579*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288582*/            OPC_EmitMergeInputChains1_2,
/*288583*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86pshufb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSHUFBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288596*/          /*Scope*/ 23, /*->288620*/
/*288597*/            OPC_RecordChild2, // #4 = $src0
/*288598*/            OPC_CheckType, MVT::v64i8,
/*288600*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288602*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288605*/            OPC_EmitMergeInputChains1_2,
/*288606*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86pshufb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPSHUFBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288620*/          0, /*End of Scope*/
/*288621*/        /*SwitchOpcode*/ 83, TARGET_VAL(ISD::ABS),// ->288707
/*288624*/          OPC_MoveChild0,
/*288625*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288628*/          OPC_MoveChild0,
/*288629*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288632*/          OPC_RecordMemRef,
/*288633*/          OPC_RecordNode, // #1 = 'ld' chained node
/*288634*/          OPC_CheckFoldableChainNode,
/*288635*/          OPC_RecordChild1, // #2 = $src1
/*288636*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288638*/          OPC_CheckPredicate, 9, // Predicate_load
/*288640*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*288642*/          OPC_CheckType, MVT::v8i64,
/*288644*/          OPC_MoveParent,
/*288645*/          OPC_MoveParent,
/*288646*/          OPC_MoveParent,
/*288647*/          OPC_Scope, 34, /*->288683*/ // 2 children in Scope
/*288649*/            OPC_MoveChild2,
/*288650*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288653*/            OPC_MoveChild0,
/*288654*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*288657*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*288659*/            OPC_CheckType, MVT::v16i32,
/*288661*/            OPC_MoveParent,
/*288662*/            OPC_MoveParent,
/*288663*/            OPC_CheckType, MVT::v64i8,
/*288665*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288667*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*288670*/            OPC_EmitMergeInputChains1_1,
/*288671*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (abs:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPABSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*288683*/          /*Scope*/ 22, /*->288706*/
/*288684*/            OPC_RecordChild2, // #3 = $src0
/*288685*/            OPC_CheckType, MVT::v64i8,
/*288687*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288689*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*288692*/            OPC_EmitMergeInputChains1_1,
/*288693*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (abs:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPABSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*288706*/          0, /*End of Scope*/
/*288707*/        /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::UNPCKL),// ->288796
/*288710*/          OPC_RecordChild0, // #1 = $src1
/*288711*/          OPC_MoveChild1,
/*288712*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288715*/          OPC_MoveChild0,
/*288716*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288719*/          OPC_RecordMemRef,
/*288720*/          OPC_RecordNode, // #2 = 'ld' chained node
/*288721*/          OPC_CheckFoldableChainNode,
/*288722*/          OPC_RecordChild1, // #3 = $src2
/*288723*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288725*/          OPC_CheckPredicate, 9, // Predicate_load
/*288727*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*288729*/          OPC_CheckType, MVT::v8i64,
/*288731*/          OPC_MoveParent,
/*288732*/          OPC_MoveParent,
/*288733*/          OPC_MoveParent,
/*288734*/          OPC_Scope, 35, /*->288771*/ // 2 children in Scope
/*288736*/            OPC_MoveChild2,
/*288737*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288740*/            OPC_MoveChild0,
/*288741*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*288744*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*288746*/            OPC_CheckType, MVT::v16i32,
/*288748*/            OPC_MoveParent,
/*288749*/            OPC_MoveParent,
/*288750*/            OPC_CheckType, MVT::v64i8,
/*288752*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288754*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288757*/            OPC_EmitMergeInputChains1_2,
/*288758*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Unpckl:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPUNPCKLBWZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288771*/          /*Scope*/ 23, /*->288795*/
/*288772*/            OPC_RecordChild2, // #4 = $src0
/*288773*/            OPC_CheckType, MVT::v64i8,
/*288775*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288777*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288780*/            OPC_EmitMergeInputChains1_2,
/*288781*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Unpckl:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPUNPCKLBWZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288795*/          0, /*End of Scope*/
/*288796*/        /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::UNPCKH),// ->288885
/*288799*/          OPC_RecordChild0, // #1 = $src1
/*288800*/          OPC_MoveChild1,
/*288801*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288804*/          OPC_MoveChild0,
/*288805*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288808*/          OPC_RecordMemRef,
/*288809*/          OPC_RecordNode, // #2 = 'ld' chained node
/*288810*/          OPC_CheckFoldableChainNode,
/*288811*/          OPC_RecordChild1, // #3 = $src2
/*288812*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288814*/          OPC_CheckPredicate, 9, // Predicate_load
/*288816*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*288818*/          OPC_CheckType, MVT::v8i64,
/*288820*/          OPC_MoveParent,
/*288821*/          OPC_MoveParent,
/*288822*/          OPC_MoveParent,
/*288823*/          OPC_Scope, 35, /*->288860*/ // 2 children in Scope
/*288825*/            OPC_MoveChild2,
/*288826*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288829*/            OPC_MoveChild0,
/*288830*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*288833*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*288835*/            OPC_CheckType, MVT::v16i32,
/*288837*/            OPC_MoveParent,
/*288838*/            OPC_MoveParent,
/*288839*/            OPC_CheckType, MVT::v64i8,
/*288841*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288843*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288846*/            OPC_EmitMergeInputChains1_2,
/*288847*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Unpckh:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPUNPCKHBWZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288860*/          /*Scope*/ 23, /*->288884*/
/*288861*/            OPC_RecordChild2, // #4 = $src0
/*288862*/            OPC_CheckType, MVT::v64i8,
/*288864*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*288866*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288869*/            OPC_EmitMergeInputChains1_2,
/*288870*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Unpckh:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPUNPCKHBWZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288884*/          0, /*End of Scope*/
/*288885*/        /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::EXPAND),// ->288971
/*288888*/          OPC_MoveChild0,
/*288889*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288892*/          OPC_MoveChild0,
/*288893*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288896*/          OPC_RecordMemRef,
/*288897*/          OPC_RecordNode, // #1 = 'ld' chained node
/*288898*/          OPC_CheckFoldableChainNode,
/*288899*/          OPC_RecordChild1, // #2 = $src1
/*288900*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288902*/          OPC_CheckPredicate, 9, // Predicate_load
/*288904*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*288906*/          OPC_CheckType, MVT::v8i64,
/*288908*/          OPC_MoveParent,
/*288909*/          OPC_MoveParent,
/*288910*/          OPC_MoveParent,
/*288911*/          OPC_Scope, 34, /*->288947*/ // 2 children in Scope
/*288913*/            OPC_MoveChild2,
/*288914*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288917*/            OPC_MoveChild0,
/*288918*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*288921*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*288923*/            OPC_CheckType, MVT::v16i32,
/*288925*/            OPC_MoveParent,
/*288926*/            OPC_MoveParent,
/*288927*/            OPC_CheckType, MVT::v64i8,
/*288929*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*288931*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*288934*/            OPC_EmitMergeInputChains1_1,
/*288935*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86expand:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPEXPANDBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*288947*/          /*Scope*/ 22, /*->288970*/
/*288948*/            OPC_RecordChild2, // #3 = $src0
/*288949*/            OPC_CheckType, MVT::v64i8,
/*288951*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*288953*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*288956*/            OPC_EmitMergeInputChains1_1,
/*288957*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86expand:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPEXPANDBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*288970*/          0, /*End of Scope*/
/*288971*/        /*SwitchOpcode*/ 83, TARGET_VAL(ISD::CTPOP),// ->289057
/*288974*/          OPC_MoveChild0,
/*288975*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*288978*/          OPC_MoveChild0,
/*288979*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288982*/          OPC_RecordMemRef,
/*288983*/          OPC_RecordNode, // #1 = 'ld' chained node
/*288984*/          OPC_CheckFoldableChainNode,
/*288985*/          OPC_RecordChild1, // #2 = $src1
/*288986*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288988*/          OPC_CheckPredicate, 9, // Predicate_load
/*288990*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*288992*/          OPC_CheckType, MVT::v8i64,
/*288994*/          OPC_MoveParent,
/*288995*/          OPC_MoveParent,
/*288996*/          OPC_MoveParent,
/*288997*/          OPC_Scope, 34, /*->289033*/ // 2 children in Scope
/*288999*/            OPC_MoveChild2,
/*289000*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289003*/            OPC_MoveChild0,
/*289004*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*289007*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*289009*/            OPC_CheckType, MVT::v16i32,
/*289011*/            OPC_MoveParent,
/*289012*/            OPC_MoveParent,
/*289013*/            OPC_CheckType, MVT::v64i8,
/*289015*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*289017*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*289020*/            OPC_EmitMergeInputChains1_1,
/*289021*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (ctpop:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPOPCNTBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*289033*/          /*Scope*/ 22, /*->289056*/
/*289034*/            OPC_RecordChild2, // #3 = $src0
/*289035*/            OPC_CheckType, MVT::v64i8,
/*289037*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*289039*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*289042*/            OPC_EmitMergeInputChains1_1,
/*289043*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (ctpop:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPOPCNTBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*289056*/          0, /*End of Scope*/
/*289057*/        /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::GF2P8MULB),// ->289146
/*289060*/          OPC_RecordChild0, // #1 = $src1
/*289061*/          OPC_MoveChild1,
/*289062*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289065*/          OPC_MoveChild0,
/*289066*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*289069*/          OPC_RecordMemRef,
/*289070*/          OPC_RecordNode, // #2 = 'ld' chained node
/*289071*/          OPC_CheckFoldableChainNode,
/*289072*/          OPC_RecordChild1, // #3 = $src2
/*289073*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289075*/          OPC_CheckPredicate, 9, // Predicate_load
/*289077*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*289079*/          OPC_CheckType, MVT::v8i64,
/*289081*/          OPC_MoveParent,
/*289082*/          OPC_MoveParent,
/*289083*/          OPC_MoveParent,
/*289084*/          OPC_Scope, 35, /*->289121*/ // 2 children in Scope
/*289086*/            OPC_MoveChild2,
/*289087*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289090*/            OPC_MoveChild0,
/*289091*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*289094*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*289096*/            OPC_CheckType, MVT::v16i32,
/*289098*/            OPC_MoveParent,
/*289099*/            OPC_MoveParent,
/*289100*/            OPC_CheckType, MVT::v64i8,
/*289102*/            OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*289104*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289107*/            OPC_EmitMergeInputChains1_2,
/*289108*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8mulb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VGF2P8MULBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289121*/          /*Scope*/ 23, /*->289145*/
/*289122*/            OPC_RecordChild2, // #4 = $src0
/*289123*/            OPC_CheckType, MVT::v64i8,
/*289125*/            OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*289127*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289130*/            OPC_EmitMergeInputChains1_2,
/*289131*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8mulb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VGF2P8MULBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289145*/          0, /*End of Scope*/
/*289146*/        /*SwitchOpcode*/ 78, TARGET_VAL(ISD::BITCAST),// ->289227
/*289149*/          OPC_MoveChild0,
/*289150*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*289153*/          OPC_RecordMemRef,
/*289154*/          OPC_RecordNode, // #1 = 'ld' chained node
/*289155*/          OPC_CheckFoldableChainNode,
/*289156*/          OPC_RecordChild1, // #2 = $src
/*289157*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289159*/          OPC_CheckPredicate, 9, // Predicate_load
/*289161*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*289163*/          OPC_CheckType, MVT::v8i64,
/*289165*/          OPC_MoveParent,
/*289166*/          OPC_MoveParent,
/*289167*/          OPC_Scope, 34, /*->289203*/ // 2 children in Scope
/*289169*/            OPC_MoveChild2,
/*289170*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289173*/            OPC_MoveChild0,
/*289174*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*289177*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*289179*/            OPC_CheckType, MVT::v16i32,
/*289181*/            OPC_MoveParent,
/*289182*/            OPC_MoveParent,
/*289183*/            OPC_CheckType, MVT::v64i8,
/*289185*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*289187*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*289190*/            OPC_EmitMergeInputChains1_1,
/*289191*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VMOVDQU8Zrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*289203*/          /*Scope*/ 22, /*->289226*/
/*289204*/            OPC_RecordChild2, // #3 = $src0
/*289205*/            OPC_CheckType, MVT::v64i8,
/*289207*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*289209*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*289212*/            OPC_EmitMergeInputChains1_1,
/*289213*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VMOVDQU8Zrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*289226*/          0, /*End of Scope*/
/*289227*/        0, // EndSwitchOpcode
/*289228*/      /*Scope*/ 78|128,71/*9166*/, /*->298396*/
/*289230*/        OPC_CheckChild0Type, MVT::v32i1,
/*289232*/        OPC_MoveChild1,
/*289233*/        OPC_SwitchOpcode /*51 cases */, 69|128,1/*197*/, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->289435
/*289238*/          OPC_RecordChild0, // #1 = $src1
/*289239*/          OPC_MoveChild1,
/*289240*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289243*/          OPC_MoveChild0,
/*289244*/          OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->289342
/*289248*/            OPC_MoveChild0,
/*289249*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*289252*/            OPC_RecordMemRef,
/*289253*/            OPC_RecordNode, // #2 = 'ld' chained node
/*289254*/            OPC_CheckFoldableChainNode,
/*289255*/            OPC_RecordChild1, // #3 = $src2
/*289256*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289258*/            OPC_CheckPredicate, 9, // Predicate_load
/*289260*/            OPC_CheckType, MVT::i64,
/*289262*/            OPC_MoveParent,
/*289263*/            OPC_CheckType, MVT::v4i64,
/*289265*/            OPC_MoveParent,
/*289266*/            OPC_MoveParent,
/*289267*/            OPC_RecordChild2, // #4 = $src3
/*289268*/            OPC_MoveChild2,
/*289269*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*289272*/            OPC_MoveParent,
/*289273*/            OPC_MoveParent,
/*289274*/            OPC_Scope, 38, /*->289314*/ // 2 children in Scope
/*289276*/              OPC_MoveChild2,
/*289277*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289280*/              OPC_MoveChild0,
/*289281*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*289284*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*289286*/              OPC_CheckType, MVT::v8i32,
/*289288*/              OPC_MoveParent,
/*289289*/              OPC_MoveParent,
/*289290*/              OPC_CheckType, MVT::v32i8,
/*289292*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*289294*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289297*/              OPC_EmitMergeInputChains1_2,
/*289298*/              OPC_EmitConvertToTarget, 4,
/*289300*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                        // Dst: (VGF2P8AFFINEINVQBZ256rmbikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*289314*/            /*Scope*/ 26, /*->289341*/
/*289315*/              OPC_RecordChild2, // #5 = $src0
/*289316*/              OPC_CheckType, MVT::v32i8,
/*289318*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*289320*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*289323*/              OPC_EmitMergeInputChains1_2,
/*289324*/              OPC_EmitConvertToTarget, 4,
/*289326*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 37
                        // Dst: (VGF2P8AFFINEINVQBZ256rmbik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*289341*/            0, /*End of Scope*/
/*289342*/          /*SwitchOpcode*/ 89, TARGET_VAL(ISD::LOAD),// ->289434
/*289345*/            OPC_RecordMemRef,
/*289346*/            OPC_RecordNode, // #2 = 'ld' chained node
/*289347*/            OPC_CheckFoldableChainNode,
/*289348*/            OPC_RecordChild1, // #3 = $src2
/*289349*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289351*/            OPC_CheckPredicate, 9, // Predicate_load
/*289353*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*289355*/            OPC_CheckType, MVT::v4i64,
/*289357*/            OPC_MoveParent,
/*289358*/            OPC_MoveParent,
/*289359*/            OPC_RecordChild2, // #4 = $src3
/*289360*/            OPC_MoveChild2,
/*289361*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*289364*/            OPC_MoveParent,
/*289365*/            OPC_MoveParent,
/*289366*/            OPC_Scope, 38, /*->289406*/ // 2 children in Scope
/*289368*/              OPC_MoveChild2,
/*289369*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289372*/              OPC_MoveChild0,
/*289373*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*289376*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*289378*/              OPC_CheckType, MVT::v8i32,
/*289380*/              OPC_MoveParent,
/*289381*/              OPC_MoveParent,
/*289382*/              OPC_CheckType, MVT::v32i8,
/*289384*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*289386*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289389*/              OPC_EmitMergeInputChains1_2,
/*289390*/              OPC_EmitConvertToTarget, 4,
/*289392*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGF2P8AFFINEINVQBZ256rmikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*289406*/            /*Scope*/ 26, /*->289433*/
/*289407*/              OPC_RecordChild2, // #5 = $src0
/*289408*/              OPC_CheckType, MVT::v32i8,
/*289410*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*289412*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*289415*/              OPC_EmitMergeInputChains1_2,
/*289416*/              OPC_EmitConvertToTarget, 4,
/*289418*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 34
                        // Dst: (VGF2P8AFFINEINVQBZ256rmik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*289433*/            0, /*End of Scope*/
/*289434*/          0, // EndSwitchOpcode
/*289435*/        /*SwitchOpcode*/ 69|128,1/*197*/, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->289636
/*289439*/          OPC_RecordChild0, // #1 = $src1
/*289440*/          OPC_MoveChild1,
/*289441*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289444*/          OPC_MoveChild0,
/*289445*/          OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->289543
/*289449*/            OPC_MoveChild0,
/*289450*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*289453*/            OPC_RecordMemRef,
/*289454*/            OPC_RecordNode, // #2 = 'ld' chained node
/*289455*/            OPC_CheckFoldableChainNode,
/*289456*/            OPC_RecordChild1, // #3 = $src2
/*289457*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289459*/            OPC_CheckPredicate, 9, // Predicate_load
/*289461*/            OPC_CheckType, MVT::i64,
/*289463*/            OPC_MoveParent,
/*289464*/            OPC_CheckType, MVT::v4i64,
/*289466*/            OPC_MoveParent,
/*289467*/            OPC_MoveParent,
/*289468*/            OPC_RecordChild2, // #4 = $src3
/*289469*/            OPC_MoveChild2,
/*289470*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*289473*/            OPC_MoveParent,
/*289474*/            OPC_MoveParent,
/*289475*/            OPC_Scope, 38, /*->289515*/ // 2 children in Scope
/*289477*/              OPC_MoveChild2,
/*289478*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289481*/              OPC_MoveChild0,
/*289482*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*289485*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*289487*/              OPC_CheckType, MVT::v8i32,
/*289489*/              OPC_MoveParent,
/*289490*/              OPC_MoveParent,
/*289491*/              OPC_CheckType, MVT::v32i8,
/*289493*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*289495*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289498*/              OPC_EmitMergeInputChains1_2,
/*289499*/              OPC_EmitConvertToTarget, 4,
/*289501*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                        // Dst: (VGF2P8AFFINEQBZ256rmbikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*289515*/            /*Scope*/ 26, /*->289542*/
/*289516*/              OPC_RecordChild2, // #5 = $src0
/*289517*/              OPC_CheckType, MVT::v32i8,
/*289519*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*289521*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*289524*/              OPC_EmitMergeInputChains1_2,
/*289525*/              OPC_EmitConvertToTarget, 4,
/*289527*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 37
                        // Dst: (VGF2P8AFFINEQBZ256rmbik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*289542*/            0, /*End of Scope*/
/*289543*/          /*SwitchOpcode*/ 89, TARGET_VAL(ISD::LOAD),// ->289635
/*289546*/            OPC_RecordMemRef,
/*289547*/            OPC_RecordNode, // #2 = 'ld' chained node
/*289548*/            OPC_CheckFoldableChainNode,
/*289549*/            OPC_RecordChild1, // #3 = $src2
/*289550*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289552*/            OPC_CheckPredicate, 9, // Predicate_load
/*289554*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*289556*/            OPC_CheckType, MVT::v4i64,
/*289558*/            OPC_MoveParent,
/*289559*/            OPC_MoveParent,
/*289560*/            OPC_RecordChild2, // #4 = $src3
/*289561*/            OPC_MoveChild2,
/*289562*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*289565*/            OPC_MoveParent,
/*289566*/            OPC_MoveParent,
/*289567*/            OPC_Scope, 38, /*->289607*/ // 2 children in Scope
/*289569*/              OPC_MoveChild2,
/*289570*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289573*/              OPC_MoveChild0,
/*289574*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*289577*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*289579*/              OPC_CheckType, MVT::v8i32,
/*289581*/              OPC_MoveParent,
/*289582*/              OPC_MoveParent,
/*289583*/              OPC_CheckType, MVT::v32i8,
/*289585*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*289587*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289590*/              OPC_EmitMergeInputChains1_2,
/*289591*/              OPC_EmitConvertToTarget, 4,
/*289593*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGF2P8AFFINEQBZ256rmikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*289607*/            /*Scope*/ 26, /*->289634*/
/*289608*/              OPC_RecordChild2, // #5 = $src0
/*289609*/              OPC_CheckType, MVT::v32i8,
/*289611*/              OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*289613*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*289616*/              OPC_EmitMergeInputChains1_2,
/*289617*/              OPC_EmitConvertToTarget, 4,
/*289619*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 34
                        // Dst: (VGF2P8AFFINEQBZ256rmik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*289634*/            0, /*End of Scope*/
/*289635*/          0, // EndSwitchOpcode
/*289636*/        /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::MULTISHIFT),// ->289815
/*289640*/          OPC_RecordChild0, // #1 = $src1
/*289641*/          OPC_CheckChild0Type, MVT::v32i8,
/*289643*/          OPC_MoveChild1,
/*289644*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289647*/          OPC_MoveChild0,
/*289648*/          OPC_SwitchOpcode /*2 cases */, 82, TARGET_VAL(X86ISD::VBROADCAST),// ->289734
/*289652*/            OPC_MoveChild0,
/*289653*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*289656*/            OPC_RecordMemRef,
/*289657*/            OPC_RecordNode, // #2 = 'ld' chained node
/*289658*/            OPC_CheckFoldableChainNode,
/*289659*/            OPC_RecordChild1, // #3 = $src2
/*289660*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289662*/            OPC_CheckPredicate, 9, // Predicate_load
/*289664*/            OPC_CheckType, MVT::i64,
/*289666*/            OPC_MoveParent,
/*289667*/            OPC_CheckType, MVT::v4i64,
/*289669*/            OPC_MoveParent,
/*289670*/            OPC_MoveParent,
/*289671*/            OPC_MoveParent,
/*289672*/            OPC_Scope, 35, /*->289709*/ // 2 children in Scope
/*289674*/              OPC_MoveChild2,
/*289675*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289678*/              OPC_MoveChild0,
/*289679*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*289682*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*289684*/              OPC_CheckType, MVT::v8i32,
/*289686*/              OPC_MoveParent,
/*289687*/              OPC_MoveParent,
/*289688*/              OPC_CheckType, MVT::v32i8,
/*289690*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*289692*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289695*/              OPC_EmitMergeInputChains1_2,
/*289696*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86multishift:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPMULTISHIFTQBZ256rmbkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289709*/            /*Scope*/ 23, /*->289733*/
/*289710*/              OPC_RecordChild2, // #4 = $src0
/*289711*/              OPC_CheckType, MVT::v32i8,
/*289713*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*289715*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289718*/              OPC_EmitMergeInputChains1_2,
/*289719*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86multishift:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR256X:{ *:[v32i8] }:$src0) - Complexity = 34
                        // Dst: (VPMULTISHIFTQBZ256rmbk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289733*/            0, /*End of Scope*/
/*289734*/          /*SwitchOpcode*/ 77, TARGET_VAL(ISD::LOAD),// ->289814
/*289737*/            OPC_RecordMemRef,
/*289738*/            OPC_RecordNode, // #2 = 'ld' chained node
/*289739*/            OPC_CheckFoldableChainNode,
/*289740*/            OPC_RecordChild1, // #3 = $src2
/*289741*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289743*/            OPC_CheckPredicate, 9, // Predicate_load
/*289745*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*289747*/            OPC_CheckType, MVT::v4i64,
/*289749*/            OPC_MoveParent,
/*289750*/            OPC_MoveParent,
/*289751*/            OPC_MoveParent,
/*289752*/            OPC_Scope, 35, /*->289789*/ // 2 children in Scope
/*289754*/              OPC_MoveChild2,
/*289755*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289758*/              OPC_MoveChild0,
/*289759*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*289762*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*289764*/              OPC_CheckType, MVT::v8i32,
/*289766*/              OPC_MoveParent,
/*289767*/              OPC_MoveParent,
/*289768*/              OPC_CheckType, MVT::v32i8,
/*289770*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*289772*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289775*/              OPC_EmitMergeInputChains1_2,
/*289776*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86multishift:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMULTISHIFTQBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289789*/            /*Scope*/ 23, /*->289813*/
/*289790*/              OPC_RecordChild2, // #4 = $src0
/*289791*/              OPC_CheckType, MVT::v32i8,
/*289793*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*289795*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289798*/              OPC_EmitMergeInputChains1_2,
/*289799*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86multishift:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPMULTISHIFTQBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289813*/            0, /*End of Scope*/
/*289814*/          0, // EndSwitchOpcode
/*289815*/        /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::VSRLI),// ->289913
/*289818*/          OPC_MoveChild0,
/*289819*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289822*/          OPC_MoveChild0,
/*289823*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*289826*/          OPC_RecordMemRef,
/*289827*/          OPC_RecordNode, // #1 = 'ld' chained node
/*289828*/          OPC_CheckFoldableChainNode,
/*289829*/          OPC_RecordChild1, // #2 = $src1
/*289830*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289832*/          OPC_CheckPredicate, 9, // Predicate_load
/*289834*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*289836*/          OPC_CheckType, MVT::v8i64,
/*289838*/          OPC_MoveParent,
/*289839*/          OPC_MoveParent,
/*289840*/          OPC_RecordChild1, // #3 = $src2
/*289841*/          OPC_MoveChild1,
/*289842*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*289845*/          OPC_MoveParent,
/*289846*/          OPC_MoveParent,
/*289847*/          OPC_Scope, 37, /*->289886*/ // 2 children in Scope
/*289849*/            OPC_MoveChild2,
/*289850*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289853*/            OPC_MoveChild0,
/*289854*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*289857*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*289859*/            OPC_CheckType, MVT::v16i32,
/*289861*/            OPC_MoveParent,
/*289862*/            OPC_MoveParent,
/*289863*/            OPC_CheckType, MVT::v32i16,
/*289865*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*289867*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*289870*/            OPC_EmitMergeInputChains1_1,
/*289871*/            OPC_EmitConvertToTarget, 3,
/*289873*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrli:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSRLWZmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*289886*/          /*Scope*/ 25, /*->289912*/
/*289887*/            OPC_RecordChild2, // #4 = $src0
/*289888*/            OPC_CheckType, MVT::v32i16,
/*289890*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*289892*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*289895*/            OPC_EmitMergeInputChains1_1,
/*289896*/            OPC_EmitConvertToTarget, 3,
/*289898*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrli:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 34
                      // Dst: (VPSRLWZmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*289912*/          0, /*End of Scope*/
/*289913*/        /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::VSHLI),// ->290011
/*289916*/          OPC_MoveChild0,
/*289917*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289920*/          OPC_MoveChild0,
/*289921*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*289924*/          OPC_RecordMemRef,
/*289925*/          OPC_RecordNode, // #1 = 'ld' chained node
/*289926*/          OPC_CheckFoldableChainNode,
/*289927*/          OPC_RecordChild1, // #2 = $src1
/*289928*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289930*/          OPC_CheckPredicate, 9, // Predicate_load
/*289932*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*289934*/          OPC_CheckType, MVT::v8i64,
/*289936*/          OPC_MoveParent,
/*289937*/          OPC_MoveParent,
/*289938*/          OPC_RecordChild1, // #3 = $src2
/*289939*/          OPC_MoveChild1,
/*289940*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*289943*/          OPC_MoveParent,
/*289944*/          OPC_MoveParent,
/*289945*/          OPC_Scope, 37, /*->289984*/ // 2 children in Scope
/*289947*/            OPC_MoveChild2,
/*289948*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*289951*/            OPC_MoveChild0,
/*289952*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*289955*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*289957*/            OPC_CheckType, MVT::v16i32,
/*289959*/            OPC_MoveParent,
/*289960*/            OPC_MoveParent,
/*289961*/            OPC_CheckType, MVT::v32i16,
/*289963*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*289965*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*289968*/            OPC_EmitMergeInputChains1_1,
/*289969*/            OPC_EmitConvertToTarget, 3,
/*289971*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshli:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSLLWZmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*289984*/          /*Scope*/ 25, /*->290010*/
/*289985*/            OPC_RecordChild2, // #4 = $src0
/*289986*/            OPC_CheckType, MVT::v32i16,
/*289988*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*289990*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*289993*/            OPC_EmitMergeInputChains1_1,
/*289994*/            OPC_EmitConvertToTarget, 3,
/*289996*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshli:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 34
                      // Dst: (VPSLLWZmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*290010*/          0, /*End of Scope*/
/*290011*/        /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::VSRAI),// ->290109
/*290014*/          OPC_MoveChild0,
/*290015*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290018*/          OPC_MoveChild0,
/*290019*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*290022*/          OPC_RecordMemRef,
/*290023*/          OPC_RecordNode, // #1 = 'ld' chained node
/*290024*/          OPC_CheckFoldableChainNode,
/*290025*/          OPC_RecordChild1, // #2 = $src1
/*290026*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290028*/          OPC_CheckPredicate, 9, // Predicate_load
/*290030*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*290032*/          OPC_CheckType, MVT::v8i64,
/*290034*/          OPC_MoveParent,
/*290035*/          OPC_MoveParent,
/*290036*/          OPC_RecordChild1, // #3 = $src2
/*290037*/          OPC_MoveChild1,
/*290038*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*290041*/          OPC_MoveParent,
/*290042*/          OPC_MoveParent,
/*290043*/          OPC_Scope, 37, /*->290082*/ // 2 children in Scope
/*290045*/            OPC_MoveChild2,
/*290046*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290049*/            OPC_MoveChild0,
/*290050*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*290053*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*290055*/            OPC_CheckType, MVT::v16i32,
/*290057*/            OPC_MoveParent,
/*290058*/            OPC_MoveParent,
/*290059*/            OPC_CheckType, MVT::v32i16,
/*290061*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290063*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*290066*/            OPC_EmitMergeInputChains1_1,
/*290067*/            OPC_EmitConvertToTarget, 3,
/*290069*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrai:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSRAWZmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*290082*/          /*Scope*/ 25, /*->290108*/
/*290083*/            OPC_RecordChild2, // #4 = $src0
/*290084*/            OPC_CheckType, MVT::v32i16,
/*290086*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290088*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*290091*/            OPC_EmitMergeInputChains1_1,
/*290092*/            OPC_EmitConvertToTarget, 3,
/*290094*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrai:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 34
                      // Dst: (VPSRAWZmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*290108*/          0, /*End of Scope*/
/*290109*/        /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::PSHUFHW),// ->290207
/*290112*/          OPC_MoveChild0,
/*290113*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290116*/          OPC_MoveChild0,
/*290117*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*290120*/          OPC_RecordMemRef,
/*290121*/          OPC_RecordNode, // #1 = 'ld' chained node
/*290122*/          OPC_CheckFoldableChainNode,
/*290123*/          OPC_RecordChild1, // #2 = $src1
/*290124*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290126*/          OPC_CheckPredicate, 9, // Predicate_load
/*290128*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*290130*/          OPC_CheckType, MVT::v8i64,
/*290132*/          OPC_MoveParent,
/*290133*/          OPC_MoveParent,
/*290134*/          OPC_RecordChild1, // #3 = $src2
/*290135*/          OPC_MoveChild1,
/*290136*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*290139*/          OPC_MoveParent,
/*290140*/          OPC_MoveParent,
/*290141*/          OPC_Scope, 37, /*->290180*/ // 2 children in Scope
/*290143*/            OPC_MoveChild2,
/*290144*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290147*/            OPC_MoveChild0,
/*290148*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*290151*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*290153*/            OPC_CheckType, MVT::v16i32,
/*290155*/            OPC_MoveParent,
/*290156*/            OPC_MoveParent,
/*290157*/            OPC_CheckType, MVT::v32i16,
/*290159*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290161*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*290164*/            OPC_EmitMergeInputChains1_1,
/*290165*/            OPC_EmitConvertToTarget, 3,
/*290167*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShufhw:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHUFHWZmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*290180*/          /*Scope*/ 25, /*->290206*/
/*290181*/            OPC_RecordChild2, // #4 = $src0
/*290182*/            OPC_CheckType, MVT::v32i16,
/*290184*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290186*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*290189*/            OPC_EmitMergeInputChains1_1,
/*290190*/            OPC_EmitConvertToTarget, 3,
/*290192*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShufhw:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 34
                      // Dst: (VPSHUFHWZmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*290206*/          0, /*End of Scope*/
/*290207*/        /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::PSHUFLW),// ->290305
/*290210*/          OPC_MoveChild0,
/*290211*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290214*/          OPC_MoveChild0,
/*290215*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*290218*/          OPC_RecordMemRef,
/*290219*/          OPC_RecordNode, // #1 = 'ld' chained node
/*290220*/          OPC_CheckFoldableChainNode,
/*290221*/          OPC_RecordChild1, // #2 = $src1
/*290222*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290224*/          OPC_CheckPredicate, 9, // Predicate_load
/*290226*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*290228*/          OPC_CheckType, MVT::v8i64,
/*290230*/          OPC_MoveParent,
/*290231*/          OPC_MoveParent,
/*290232*/          OPC_RecordChild1, // #3 = $src2
/*290233*/          OPC_MoveChild1,
/*290234*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*290237*/          OPC_MoveParent,
/*290238*/          OPC_MoveParent,
/*290239*/          OPC_Scope, 37, /*->290278*/ // 2 children in Scope
/*290241*/            OPC_MoveChild2,
/*290242*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290245*/            OPC_MoveChild0,
/*290246*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*290249*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*290251*/            OPC_CheckType, MVT::v16i32,
/*290253*/            OPC_MoveParent,
/*290254*/            OPC_MoveParent,
/*290255*/            OPC_CheckType, MVT::v32i16,
/*290257*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290259*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*290262*/            OPC_EmitMergeInputChains1_1,
/*290263*/            OPC_EmitConvertToTarget, 3,
/*290265*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShuflw:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHUFLWZmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*290278*/          /*Scope*/ 25, /*->290304*/
/*290279*/            OPC_RecordChild2, // #4 = $src0
/*290280*/            OPC_CheckType, MVT::v32i16,
/*290282*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290284*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*290287*/            OPC_EmitMergeInputChains1_1,
/*290288*/            OPC_EmitConvertToTarget, 3,
/*290290*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShuflw:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 34
                      // Dst: (VPSHUFLWZmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*290304*/          0, /*End of Scope*/
/*290305*/        /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::PALIGNR),// ->290406
/*290308*/          OPC_RecordChild0, // #1 = $src1
/*290309*/          OPC_MoveChild1,
/*290310*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290313*/          OPC_MoveChild0,
/*290314*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*290317*/          OPC_RecordMemRef,
/*290318*/          OPC_RecordNode, // #2 = 'ld' chained node
/*290319*/          OPC_CheckFoldableChainNode,
/*290320*/          OPC_RecordChild1, // #3 = $src2
/*290321*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290323*/          OPC_CheckPredicate, 9, // Predicate_load
/*290325*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*290327*/          OPC_CheckType, MVT::v4i64,
/*290329*/          OPC_MoveParent,
/*290330*/          OPC_MoveParent,
/*290331*/          OPC_RecordChild2, // #4 = $src3
/*290332*/          OPC_MoveChild2,
/*290333*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*290336*/          OPC_MoveParent,
/*290337*/          OPC_MoveParent,
/*290338*/          OPC_Scope, 38, /*->290378*/ // 2 children in Scope
/*290340*/            OPC_MoveChild2,
/*290341*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290344*/            OPC_MoveChild0,
/*290345*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*290348*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*290350*/            OPC_CheckType, MVT::v8i32,
/*290352*/            OPC_MoveParent,
/*290353*/            OPC_MoveParent,
/*290354*/            OPC_CheckType, MVT::v32i8,
/*290356*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*290358*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*290361*/            OPC_EmitMergeInputChains1_2,
/*290362*/            OPC_EmitConvertToTarget, 4,
/*290364*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPALIGNRZ256rmikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*290378*/          /*Scope*/ 26, /*->290405*/
/*290379*/            OPC_RecordChild2, // #5 = $src0
/*290380*/            OPC_CheckType, MVT::v32i8,
/*290382*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*290384*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*290387*/            OPC_EmitMergeInputChains1_2,
/*290388*/            OPC_EmitConvertToTarget, 4,
/*290390*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 34
                      // Dst: (VPALIGNRZ256rmik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*290405*/          0, /*End of Scope*/
/*290406*/        /*SwitchOpcode*/ 100, TARGET_VAL(X86ISD::DBPSADBW),// ->290509
/*290409*/          OPC_RecordChild0, // #1 = $src1
/*290410*/          OPC_MoveChild1,
/*290411*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290414*/          OPC_MoveChild0,
/*290415*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*290418*/          OPC_RecordMemRef,
/*290419*/          OPC_RecordNode, // #2 = 'ld' chained node
/*290420*/          OPC_CheckFoldableChainNode,
/*290421*/          OPC_RecordChild1, // #3 = $src2
/*290422*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290424*/          OPC_CheckPredicate, 9, // Predicate_load
/*290426*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*290428*/          OPC_CheckType, MVT::v8i64,
/*290430*/          OPC_MoveParent,
/*290431*/          OPC_MoveParent,
/*290432*/          OPC_RecordChild2, // #4 = $src3
/*290433*/          OPC_MoveChild2,
/*290434*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*290437*/          OPC_CheckType, MVT::i8,
/*290439*/          OPC_MoveParent,
/*290440*/          OPC_MoveParent,
/*290441*/          OPC_Scope, 38, /*->290481*/ // 2 children in Scope
/*290443*/            OPC_MoveChild2,
/*290444*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290447*/            OPC_MoveChild0,
/*290448*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*290451*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*290453*/            OPC_CheckType, MVT::v16i32,
/*290455*/            OPC_MoveParent,
/*290456*/            OPC_MoveParent,
/*290457*/            OPC_CheckType, MVT::v32i16,
/*290459*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290461*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*290464*/            OPC_EmitMergeInputChains1_2,
/*290465*/            OPC_EmitConvertToTarget, 4,
/*290467*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VDBPSADBWZrmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*290481*/          /*Scope*/ 26, /*->290508*/
/*290482*/            OPC_RecordChild2, // #5 = $src0
/*290483*/            OPC_CheckType, MVT::v32i16,
/*290485*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290487*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*290490*/            OPC_EmitMergeInputChains1_2,
/*290491*/            OPC_EmitConvertToTarget, 4,
/*290493*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 34
                      // Dst: (VDBPSADBWZrmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*290508*/          0, /*End of Scope*/
/*290509*/        /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::VSHLD),// ->290610
/*290512*/          OPC_RecordChild0, // #1 = $src1
/*290513*/          OPC_MoveChild1,
/*290514*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290517*/          OPC_MoveChild0,
/*290518*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*290521*/          OPC_RecordMemRef,
/*290522*/          OPC_RecordNode, // #2 = 'ld' chained node
/*290523*/          OPC_CheckFoldableChainNode,
/*290524*/          OPC_RecordChild1, // #3 = $src2
/*290525*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290527*/          OPC_CheckPredicate, 9, // Predicate_load
/*290529*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*290531*/          OPC_CheckType, MVT::v8i64,
/*290533*/          OPC_MoveParent,
/*290534*/          OPC_MoveParent,
/*290535*/          OPC_RecordChild2, // #4 = $src3
/*290536*/          OPC_MoveChild2,
/*290537*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*290540*/          OPC_MoveParent,
/*290541*/          OPC_MoveParent,
/*290542*/          OPC_Scope, 38, /*->290582*/ // 2 children in Scope
/*290544*/            OPC_MoveChild2,
/*290545*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290548*/            OPC_MoveChild0,
/*290549*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*290552*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*290554*/            OPC_CheckType, MVT::v16i32,
/*290556*/            OPC_MoveParent,
/*290557*/            OPC_MoveParent,
/*290558*/            OPC_CheckType, MVT::v32i16,
/*290560*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*290562*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*290565*/            OPC_EmitMergeInputChains1_2,
/*290566*/            OPC_EmitConvertToTarget, 4,
/*290568*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHLDWZrmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*290582*/          /*Scope*/ 26, /*->290609*/
/*290583*/            OPC_RecordChild2, // #5 = $src0
/*290584*/            OPC_CheckType, MVT::v32i16,
/*290586*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*290588*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*290591*/            OPC_EmitMergeInputChains1_2,
/*290592*/            OPC_EmitConvertToTarget, 4,
/*290594*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 34
                      // Dst: (VPSHLDWZrmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*290609*/          0, /*End of Scope*/
/*290610*/        /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::VSHRD),// ->290711
/*290613*/          OPC_RecordChild0, // #1 = $src1
/*290614*/          OPC_MoveChild1,
/*290615*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290618*/          OPC_MoveChild0,
/*290619*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*290622*/          OPC_RecordMemRef,
/*290623*/          OPC_RecordNode, // #2 = 'ld' chained node
/*290624*/          OPC_CheckFoldableChainNode,
/*290625*/          OPC_RecordChild1, // #3 = $src2
/*290626*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290628*/          OPC_CheckPredicate, 9, // Predicate_load
/*290630*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*290632*/          OPC_CheckType, MVT::v8i64,
/*290634*/          OPC_MoveParent,
/*290635*/          OPC_MoveParent,
/*290636*/          OPC_RecordChild2, // #4 = $src3
/*290637*/          OPC_MoveChild2,
/*290638*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*290641*/          OPC_MoveParent,
/*290642*/          OPC_MoveParent,
/*290643*/          OPC_Scope, 38, /*->290683*/ // 2 children in Scope
/*290645*/            OPC_MoveChild2,
/*290646*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290649*/            OPC_MoveChild0,
/*290650*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*290653*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*290655*/            OPC_CheckType, MVT::v16i32,
/*290657*/            OPC_MoveParent,
/*290658*/            OPC_MoveParent,
/*290659*/            OPC_CheckType, MVT::v32i16,
/*290661*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*290663*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*290666*/            OPC_EmitMergeInputChains1_2,
/*290667*/            OPC_EmitConvertToTarget, 4,
/*290669*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPSHRDWZrmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*290683*/          /*Scope*/ 26, /*->290710*/
/*290684*/            OPC_RecordChild2, // #5 = $src0
/*290685*/            OPC_CheckType, MVT::v32i16,
/*290687*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*290689*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*290692*/            OPC_EmitMergeInputChains1_2,
/*290693*/            OPC_EmitConvertToTarget, 4,
/*290695*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 34
                      // Dst: (VPSHRDWZrmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*290710*/          0, /*End of Scope*/
/*290711*/        /*SwitchOpcode*/ 45|128,2/*301*/, TARGET_VAL(X86ISD::VBROADCAST),// ->291016
/*290715*/          OPC_MoveChild0,
/*290716*/          OPC_SwitchOpcode /*2 cases */, 22|128,1/*150*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->290871
/*290721*/            OPC_MoveChild0,
/*290722*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*290725*/            OPC_RecordMemRef,
/*290726*/            OPC_RecordNode, // #1 = 'ld' chained node
/*290727*/            OPC_CheckFoldableChainNode,
/*290728*/            OPC_RecordChild1, // #2 = $src
/*290729*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290731*/            OPC_SwitchType /*2 cases */, 67, MVT::i8,// ->290801
/*290734*/              OPC_CheckPredicate, 5, // Predicate_loadi8
/*290736*/              OPC_MoveParent,
/*290737*/              OPC_CheckType, MVT::v16i8,
/*290739*/              OPC_MoveParent,
/*290740*/              OPC_MoveParent,
/*290741*/              OPC_Scope, 34, /*->290777*/ // 2 children in Scope
/*290743*/                OPC_MoveChild2,
/*290744*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290747*/                OPC_MoveChild0,
/*290748*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*290751*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*290753*/                OPC_CheckType, MVT::v8i32,
/*290755*/                OPC_MoveParent,
/*290756*/                OPC_MoveParent,
/*290757*/                OPC_CheckType, MVT::v32i8,
/*290759*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*290761*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*290764*/                OPC_EmitMergeInputChains1_1,
/*290765*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i8] } (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPBROADCASTBZ256mkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*290777*/              /*Scope*/ 22, /*->290800*/
/*290778*/                OPC_RecordChild2, // #3 = $src0
/*290779*/                OPC_CheckType, MVT::v32i8,
/*290781*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*290783*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*290786*/                OPC_EmitMergeInputChains1_1,
/*290787*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i8] } (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                          // Dst: (VPBROADCASTBZ256mk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*290800*/              0, /*End of Scope*/
/*290801*/            /*SwitchType*/ 67, MVT::i16,// ->290870
/*290803*/              OPC_CheckPredicate, 7, // Predicate_loadi16
/*290805*/              OPC_MoveParent,
/*290806*/              OPC_CheckType, MVT::v8i16,
/*290808*/              OPC_MoveParent,
/*290809*/              OPC_MoveParent,
/*290810*/              OPC_Scope, 34, /*->290846*/ // 2 children in Scope
/*290812*/                OPC_MoveChild2,
/*290813*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290816*/                OPC_MoveChild0,
/*290817*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*290820*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*290822*/                OPC_CheckType, MVT::v16i32,
/*290824*/                OPC_MoveParent,
/*290825*/                OPC_MoveParent,
/*290826*/                OPC_CheckType, MVT::v32i16,
/*290828*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290830*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*290833*/                OPC_EmitMergeInputChains1_1,
/*290834*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i16] } (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPBROADCASTWZmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*290846*/              /*Scope*/ 22, /*->290869*/
/*290847*/                OPC_RecordChild2, // #3 = $src0
/*290848*/                OPC_CheckType, MVT::v32i16,
/*290850*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290852*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*290855*/                OPC_EmitMergeInputChains1_1,
/*290856*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i16] } (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                          // Dst: (VPBROADCASTWZmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*290869*/              0, /*End of Scope*/
/*290870*/            0, // EndSwitchType
/*290871*/          /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(ISD::LOAD),// ->291015
/*290875*/            OPC_RecordMemRef,
/*290876*/            OPC_RecordNode, // #1 = 'ld' chained node
/*290877*/            OPC_CheckFoldableChainNode,
/*290878*/            OPC_RecordChild1, // #2 = $src
/*290879*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290881*/            OPC_SwitchType /*2 cases */, 64, MVT::i8,// ->290948
/*290884*/              OPC_CheckPredicate, 5, // Predicate_loadi8
/*290886*/              OPC_MoveParent,
/*290887*/              OPC_MoveParent,
/*290888*/              OPC_Scope, 34, /*->290924*/ // 2 children in Scope
/*290890*/                OPC_MoveChild2,
/*290891*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290894*/                OPC_MoveChild0,
/*290895*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*290898*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*290900*/                OPC_CheckType, MVT::v8i32,
/*290902*/                OPC_MoveParent,
/*290903*/                OPC_MoveParent,
/*290904*/                OPC_CheckType, MVT::v32i8,
/*290906*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*290908*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*290911*/                OPC_EmitMergeInputChains1_1,
/*290912*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPBROADCASTBZ256mkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*290924*/              /*Scope*/ 22, /*->290947*/
/*290925*/                OPC_RecordChild2, // #3 = $src0
/*290926*/                OPC_CheckType, MVT::v32i8,
/*290928*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*290930*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*290933*/                OPC_EmitMergeInputChains1_1,
/*290934*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                          // Dst: (VPBROADCASTBZ256mk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*290947*/              0, /*End of Scope*/
/*290948*/            /*SwitchType*/ 64, MVT::i16,// ->291014
/*290950*/              OPC_CheckPredicate, 7, // Predicate_loadi16
/*290952*/              OPC_MoveParent,
/*290953*/              OPC_MoveParent,
/*290954*/              OPC_Scope, 34, /*->290990*/ // 2 children in Scope
/*290956*/                OPC_MoveChild2,
/*290957*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*290960*/                OPC_MoveChild0,
/*290961*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*290964*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*290966*/                OPC_CheckType, MVT::v16i32,
/*290968*/                OPC_MoveParent,
/*290969*/                OPC_MoveParent,
/*290970*/                OPC_CheckType, MVT::v32i16,
/*290972*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290974*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*290977*/                OPC_EmitMergeInputChains1_1,
/*290978*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPBROADCASTWZmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*290990*/              /*Scope*/ 22, /*->291013*/
/*290991*/                OPC_RecordChild2, // #3 = $src0
/*290992*/                OPC_CheckType, MVT::v32i16,
/*290994*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*290996*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*290999*/                OPC_EmitMergeInputChains1_1,
/*291000*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                          // Dst: (VPBROADCASTWZmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*291013*/              0, /*End of Scope*/
/*291014*/            0, // EndSwitchType
/*291015*/          0, // EndSwitchOpcode
/*291016*/        /*SwitchOpcode*/ 94|128,1/*222*/, TARGET_VAL(X86ISD::VPERMV3),// ->291242
/*291020*/          OPC_RecordChild0, // #1 = $src1
/*291021*/          OPC_RecordChild1, // #2 = $src2
/*291022*/          OPC_MoveChild2,
/*291023*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291026*/          OPC_MoveChild0,
/*291027*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*291030*/          OPC_RecordMemRef,
/*291031*/          OPC_RecordNode, // #3 = 'ld' chained node
/*291032*/          OPC_CheckFoldableChainNode,
/*291033*/          OPC_RecordChild1, // #4 = $src3
/*291034*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291036*/          OPC_CheckPredicate, 9, // Predicate_load
/*291038*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*291040*/          OPC_SwitchType /*2 cases */, 98, MVT::v8i64,// ->291141
/*291043*/            OPC_MoveParent,
/*291044*/            OPC_MoveParent,
/*291045*/            OPC_MoveParent,
/*291046*/            OPC_Scope, 38, /*->291086*/ // 3 children in Scope
/*291048*/              OPC_MoveChild2,
/*291049*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291052*/              OPC_MoveChild0,
/*291053*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291056*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291058*/              OPC_CheckType, MVT::v16i32,
/*291060*/              OPC_MoveParent,
/*291061*/              OPC_MoveParent,
/*291062*/              OPC_CheckType, MVT::v32i16,
/*291064*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*291066*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291069*/              OPC_EmitMergeInputChains, 1, 3, 
/*291072*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Wrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMT2Wrmkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291086*/            /*Scope*/ 26, /*->291113*/
/*291087*/              OPC_CheckChild2Same, 2,
/*291089*/              OPC_CheckType, MVT::v32i16,
/*291091*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*291093*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291096*/              OPC_EmitMergeInputChains, 1, 3, 
/*291099*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Wrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src1) - Complexity = 31
                        // Dst: (VPERMI2Wrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291113*/            /*Scope*/ 26, /*->291140*/
/*291114*/              OPC_CheckChild2Same, 1,
/*291116*/              OPC_CheckType, MVT::v32i16,
/*291118*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*291120*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291123*/              OPC_EmitMergeInputChains, 1, 3, 
/*291126*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Wrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src1) - Complexity = 31
                        // Dst: (VPERMT2Wrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291140*/            0, /*End of Scope*/
/*291141*/          /*SwitchType*/ 98, MVT::v4i64,// ->291241
/*291143*/            OPC_MoveParent,
/*291144*/            OPC_MoveParent,
/*291145*/            OPC_MoveParent,
/*291146*/            OPC_Scope, 38, /*->291186*/ // 3 children in Scope
/*291148*/              OPC_MoveChild2,
/*291149*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291152*/              OPC_MoveChild0,
/*291153*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291156*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291158*/              OPC_CheckType, MVT::v8i32,
/*291160*/              OPC_MoveParent,
/*291161*/              OPC_MoveParent,
/*291162*/              OPC_CheckType, MVT::v32i8,
/*291164*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*291166*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291169*/              OPC_EmitMergeInputChains, 1, 3, 
/*291172*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMT2B256rmkz:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291186*/            /*Scope*/ 26, /*->291213*/
/*291187*/              OPC_CheckChild2Same, 2,
/*291189*/              OPC_CheckType, MVT::v32i8,
/*291191*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*291193*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291196*/              OPC_EmitMergeInputChains, 1, 3, 
/*291199*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2B256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src1) - Complexity = 31
                        // Dst: (VPERMI2B256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291213*/            /*Scope*/ 26, /*->291240*/
/*291214*/              OPC_CheckChild2Same, 1,
/*291216*/              OPC_CheckType, MVT::v32i8,
/*291218*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*291220*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291223*/              OPC_EmitMergeInputChains, 1, 3, 
/*291226*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src1) - Complexity = 31
                        // Dst: (VPERMT2B256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291240*/            0, /*End of Scope*/
/*291241*/          0, // EndSwitchType
/*291242*/        /*SwitchOpcode*/ 108|128,2/*364*/, TARGET_VAL(ISD::ADD),// ->291610
/*291246*/          OPC_Scope, 101, /*->291349*/ // 4 children in Scope
/*291248*/            OPC_RecordChild0, // #1 = $src1
/*291249*/            OPC_MoveChild1,
/*291250*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291253*/            OPC_MoveChild0,
/*291254*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*291257*/            OPC_RecordMemRef,
/*291258*/            OPC_RecordNode, // #2 = 'ld' chained node
/*291259*/            OPC_CheckFoldableChainNode,
/*291260*/            OPC_RecordChild1, // #3 = $src2
/*291261*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291263*/            OPC_CheckPredicate, 9, // Predicate_load
/*291265*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*291267*/            OPC_SwitchType /*2 cases */, 38, MVT::v8i64,// ->291308
/*291270*/              OPC_MoveParent,
/*291271*/              OPC_MoveParent,
/*291272*/              OPC_MoveParent,
/*291273*/              OPC_MoveChild2,
/*291274*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291277*/              OPC_MoveChild0,
/*291278*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291281*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291283*/              OPC_CheckType, MVT::v16i32,
/*291285*/              OPC_MoveParent,
/*291286*/              OPC_MoveParent,
/*291287*/              OPC_CheckType, MVT::v32i16,
/*291289*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*291291*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291294*/              OPC_EmitMergeInputChains1_2,
/*291295*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291308*/            /*SwitchType*/ 38, MVT::v4i64,// ->291348
/*291310*/              OPC_MoveParent,
/*291311*/              OPC_MoveParent,
/*291312*/              OPC_MoveParent,
/*291313*/              OPC_MoveChild2,
/*291314*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291317*/              OPC_MoveChild0,
/*291318*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291321*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291323*/              OPC_CheckType, MVT::v8i32,
/*291325*/              OPC_MoveParent,
/*291326*/              OPC_MoveParent,
/*291327*/              OPC_CheckType, MVT::v32i8,
/*291329*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*291331*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291334*/              OPC_EmitMergeInputChains1_2,
/*291335*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291348*/            0, // EndSwitchType
/*291349*/          /*Scope*/ 102, /*->291452*/
/*291350*/            OPC_MoveChild0,
/*291351*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291354*/            OPC_MoveChild0,
/*291355*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*291358*/            OPC_RecordMemRef,
/*291359*/            OPC_RecordNode, // #1 = 'ld' chained node
/*291360*/            OPC_CheckFoldableChainNode,
/*291361*/            OPC_RecordChild1, // #2 = $src2
/*291362*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291364*/            OPC_CheckPredicate, 9, // Predicate_load
/*291366*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*291368*/            OPC_SwitchType /*2 cases */, 39, MVT::v8i64,// ->291410
/*291371*/              OPC_MoveParent,
/*291372*/              OPC_MoveParent,
/*291373*/              OPC_RecordChild1, // #3 = $src1
/*291374*/              OPC_MoveParent,
/*291375*/              OPC_MoveChild2,
/*291376*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291379*/              OPC_MoveChild0,
/*291380*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291383*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291385*/              OPC_CheckType, MVT::v16i32,
/*291387*/              OPC_MoveParent,
/*291388*/              OPC_MoveParent,
/*291389*/              OPC_CheckType, MVT::v32i16,
/*291391*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*291393*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291396*/              OPC_EmitMergeInputChains1_1,
/*291397*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291410*/            /*SwitchType*/ 39, MVT::v4i64,// ->291451
/*291412*/              OPC_MoveParent,
/*291413*/              OPC_MoveParent,
/*291414*/              OPC_RecordChild1, // #3 = $src1
/*291415*/              OPC_MoveParent,
/*291416*/              OPC_MoveChild2,
/*291417*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291420*/              OPC_MoveChild0,
/*291421*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291424*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291426*/              OPC_CheckType, MVT::v8i32,
/*291428*/              OPC_MoveParent,
/*291429*/              OPC_MoveParent,
/*291430*/              OPC_CheckType, MVT::v32i8,
/*291432*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*291434*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291437*/              OPC_EmitMergeInputChains1_1,
/*291438*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291451*/            0, // EndSwitchType
/*291452*/          /*Scope*/ 77, /*->291530*/
/*291453*/            OPC_RecordChild0, // #1 = $src1
/*291454*/            OPC_MoveChild1,
/*291455*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291458*/            OPC_MoveChild0,
/*291459*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*291462*/            OPC_RecordMemRef,
/*291463*/            OPC_RecordNode, // #2 = 'ld' chained node
/*291464*/            OPC_CheckFoldableChainNode,
/*291465*/            OPC_RecordChild1, // #3 = $src2
/*291466*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291468*/            OPC_CheckPredicate, 9, // Predicate_load
/*291470*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*291472*/            OPC_SwitchType /*2 cases */, 26, MVT::v8i64,// ->291501
/*291475*/              OPC_MoveParent,
/*291476*/              OPC_MoveParent,
/*291477*/              OPC_MoveParent,
/*291478*/              OPC_RecordChild2, // #4 = $src0
/*291479*/              OPC_CheckType, MVT::v32i16,
/*291481*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*291483*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*291486*/              OPC_EmitMergeInputChains1_2,
/*291487*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPADDWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291501*/            /*SwitchType*/ 26, MVT::v4i64,// ->291529
/*291503*/              OPC_MoveParent,
/*291504*/              OPC_MoveParent,
/*291505*/              OPC_MoveParent,
/*291506*/              OPC_RecordChild2, // #4 = $src0
/*291507*/              OPC_CheckType, MVT::v32i8,
/*291509*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*291511*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*291514*/              OPC_EmitMergeInputChains1_2,
/*291515*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPADDBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291529*/            0, // EndSwitchType
/*291530*/          /*Scope*/ 78, /*->291609*/
/*291531*/            OPC_MoveChild0,
/*291532*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291535*/            OPC_MoveChild0,
/*291536*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*291539*/            OPC_RecordMemRef,
/*291540*/            OPC_RecordNode, // #1 = 'ld' chained node
/*291541*/            OPC_CheckFoldableChainNode,
/*291542*/            OPC_RecordChild1, // #2 = $src2
/*291543*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291545*/            OPC_CheckPredicate, 9, // Predicate_load
/*291547*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*291549*/            OPC_SwitchType /*2 cases */, 27, MVT::v8i64,// ->291579
/*291552*/              OPC_MoveParent,
/*291553*/              OPC_MoveParent,
/*291554*/              OPC_RecordChild1, // #3 = $src1
/*291555*/              OPC_MoveParent,
/*291556*/              OPC_RecordChild2, // #4 = $src0
/*291557*/              OPC_CheckType, MVT::v32i16,
/*291559*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*291561*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*291564*/              OPC_EmitMergeInputChains1_1,
/*291565*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPADDWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291579*/            /*SwitchType*/ 27, MVT::v4i64,// ->291608
/*291581*/              OPC_MoveParent,
/*291582*/              OPC_MoveParent,
/*291583*/              OPC_RecordChild1, // #3 = $src1
/*291584*/              OPC_MoveParent,
/*291585*/              OPC_RecordChild2, // #4 = $src0
/*291586*/              OPC_CheckType, MVT::v32i8,
/*291588*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*291590*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*291593*/              OPC_EmitMergeInputChains1_1,
/*291594*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPADDBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291608*/            0, // EndSwitchType
/*291609*/          0, /*End of Scope*/
/*291610*/        /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(ISD::SUB),// ->291769
/*291614*/          OPC_RecordChild0, // #1 = $src1
/*291615*/          OPC_MoveChild1,
/*291616*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291619*/          OPC_MoveChild0,
/*291620*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*291623*/          OPC_RecordMemRef,
/*291624*/          OPC_RecordNode, // #2 = 'ld' chained node
/*291625*/          OPC_CheckFoldableChainNode,
/*291626*/          OPC_RecordChild1, // #3 = $src2
/*291627*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291629*/          OPC_CheckPredicate, 9, // Predicate_load
/*291631*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*291633*/          OPC_SwitchType /*2 cases */, 65, MVT::v8i64,// ->291701
/*291636*/            OPC_MoveParent,
/*291637*/            OPC_MoveParent,
/*291638*/            OPC_MoveParent,
/*291639*/            OPC_Scope, 35, /*->291676*/ // 2 children in Scope
/*291641*/              OPC_MoveChild2,
/*291642*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291645*/              OPC_MoveChild0,
/*291646*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291649*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291651*/              OPC_CheckType, MVT::v16i32,
/*291653*/              OPC_MoveParent,
/*291654*/              OPC_MoveParent,
/*291655*/              OPC_CheckType, MVT::v32i16,
/*291657*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*291659*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291662*/              OPC_EmitMergeInputChains1_2,
/*291663*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (sub:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSUBWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291676*/            /*Scope*/ 23, /*->291700*/
/*291677*/              OPC_RecordChild2, // #4 = $src0
/*291678*/              OPC_CheckType, MVT::v32i16,
/*291680*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*291682*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*291685*/              OPC_EmitMergeInputChains1_2,
/*291686*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (sub:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPSUBWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291700*/            0, /*End of Scope*/
/*291701*/          /*SwitchType*/ 65, MVT::v4i64,// ->291768
/*291703*/            OPC_MoveParent,
/*291704*/            OPC_MoveParent,
/*291705*/            OPC_MoveParent,
/*291706*/            OPC_Scope, 35, /*->291743*/ // 2 children in Scope
/*291708*/              OPC_MoveChild2,
/*291709*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291712*/              OPC_MoveChild0,
/*291713*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291716*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291718*/              OPC_CheckType, MVT::v8i32,
/*291720*/              OPC_MoveParent,
/*291721*/              OPC_MoveParent,
/*291722*/              OPC_CheckType, MVT::v32i8,
/*291724*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*291726*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291729*/              OPC_EmitMergeInputChains1_2,
/*291730*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (sub:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSUBBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291743*/            /*Scope*/ 23, /*->291767*/
/*291744*/              OPC_RecordChild2, // #4 = $src0
/*291745*/              OPC_CheckType, MVT::v32i8,
/*291747*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*291749*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*291752*/              OPC_EmitMergeInputChains1_2,
/*291753*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (sub:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPSUBBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291767*/            0, /*End of Scope*/
/*291768*/          0, // EndSwitchType
/*291769*/        /*SwitchOpcode*/ 108|128,2/*364*/, TARGET_VAL(X86ISD::ADDS),// ->292137
/*291773*/          OPC_Scope, 101, /*->291876*/ // 4 children in Scope
/*291775*/            OPC_RecordChild0, // #1 = $src1
/*291776*/            OPC_MoveChild1,
/*291777*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291780*/            OPC_MoveChild0,
/*291781*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*291784*/            OPC_RecordMemRef,
/*291785*/            OPC_RecordNode, // #2 = 'ld' chained node
/*291786*/            OPC_CheckFoldableChainNode,
/*291787*/            OPC_RecordChild1, // #3 = $src2
/*291788*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291790*/            OPC_CheckPredicate, 9, // Predicate_load
/*291792*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*291794*/            OPC_SwitchType /*2 cases */, 38, MVT::v8i64,// ->291835
/*291797*/              OPC_MoveParent,
/*291798*/              OPC_MoveParent,
/*291799*/              OPC_MoveParent,
/*291800*/              OPC_MoveChild2,
/*291801*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291804*/              OPC_MoveChild0,
/*291805*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291808*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291810*/              OPC_CheckType, MVT::v16i32,
/*291812*/              OPC_MoveParent,
/*291813*/              OPC_MoveParent,
/*291814*/              OPC_CheckType, MVT::v32i16,
/*291816*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*291818*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291821*/              OPC_EmitMergeInputChains1_2,
/*291822*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291835*/            /*SwitchType*/ 38, MVT::v4i64,// ->291875
/*291837*/              OPC_MoveParent,
/*291838*/              OPC_MoveParent,
/*291839*/              OPC_MoveParent,
/*291840*/              OPC_MoveChild2,
/*291841*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291844*/              OPC_MoveChild0,
/*291845*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291848*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291850*/              OPC_CheckType, MVT::v8i32,
/*291852*/              OPC_MoveParent,
/*291853*/              OPC_MoveParent,
/*291854*/              OPC_CheckType, MVT::v32i8,
/*291856*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*291858*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291861*/              OPC_EmitMergeInputChains1_2,
/*291862*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291875*/            0, // EndSwitchType
/*291876*/          /*Scope*/ 102, /*->291979*/
/*291877*/            OPC_MoveChild0,
/*291878*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291881*/            OPC_MoveChild0,
/*291882*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*291885*/            OPC_RecordMemRef,
/*291886*/            OPC_RecordNode, // #1 = 'ld' chained node
/*291887*/            OPC_CheckFoldableChainNode,
/*291888*/            OPC_RecordChild1, // #2 = $src2
/*291889*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291891*/            OPC_CheckPredicate, 9, // Predicate_load
/*291893*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*291895*/            OPC_SwitchType /*2 cases */, 39, MVT::v8i64,// ->291937
/*291898*/              OPC_MoveParent,
/*291899*/              OPC_MoveParent,
/*291900*/              OPC_RecordChild1, // #3 = $src1
/*291901*/              OPC_MoveParent,
/*291902*/              OPC_MoveChild2,
/*291903*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291906*/              OPC_MoveChild0,
/*291907*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291910*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291912*/              OPC_CheckType, MVT::v16i32,
/*291914*/              OPC_MoveParent,
/*291915*/              OPC_MoveParent,
/*291916*/              OPC_CheckType, MVT::v32i16,
/*291918*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*291920*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291923*/              OPC_EmitMergeInputChains1_1,
/*291924*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291937*/            /*SwitchType*/ 39, MVT::v4i64,// ->291978
/*291939*/              OPC_MoveParent,
/*291940*/              OPC_MoveParent,
/*291941*/              OPC_RecordChild1, // #3 = $src1
/*291942*/              OPC_MoveParent,
/*291943*/              OPC_MoveChild2,
/*291944*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291947*/              OPC_MoveChild0,
/*291948*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*291951*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*291953*/              OPC_CheckType, MVT::v8i32,
/*291955*/              OPC_MoveParent,
/*291956*/              OPC_MoveParent,
/*291957*/              OPC_CheckType, MVT::v32i8,
/*291959*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*291961*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291964*/              OPC_EmitMergeInputChains1_1,
/*291965*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291978*/            0, // EndSwitchType
/*291979*/          /*Scope*/ 77, /*->292057*/
/*291980*/            OPC_RecordChild0, // #1 = $src1
/*291981*/            OPC_MoveChild1,
/*291982*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*291985*/            OPC_MoveChild0,
/*291986*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*291989*/            OPC_RecordMemRef,
/*291990*/            OPC_RecordNode, // #2 = 'ld' chained node
/*291991*/            OPC_CheckFoldableChainNode,
/*291992*/            OPC_RecordChild1, // #3 = $src2
/*291993*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291995*/            OPC_CheckPredicate, 9, // Predicate_load
/*291997*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*291999*/            OPC_SwitchType /*2 cases */, 26, MVT::v8i64,// ->292028
/*292002*/              OPC_MoveParent,
/*292003*/              OPC_MoveParent,
/*292004*/              OPC_MoveParent,
/*292005*/              OPC_RecordChild2, // #4 = $src0
/*292006*/              OPC_CheckType, MVT::v32i16,
/*292008*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292010*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292013*/              OPC_EmitMergeInputChains1_2,
/*292014*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPADDSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292028*/            /*SwitchType*/ 26, MVT::v4i64,// ->292056
/*292030*/              OPC_MoveParent,
/*292031*/              OPC_MoveParent,
/*292032*/              OPC_MoveParent,
/*292033*/              OPC_RecordChild2, // #4 = $src0
/*292034*/              OPC_CheckType, MVT::v32i8,
/*292036*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*292038*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292041*/              OPC_EmitMergeInputChains1_2,
/*292042*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPADDSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292056*/            0, // EndSwitchType
/*292057*/          /*Scope*/ 78, /*->292136*/
/*292058*/            OPC_MoveChild0,
/*292059*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292062*/            OPC_MoveChild0,
/*292063*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*292066*/            OPC_RecordMemRef,
/*292067*/            OPC_RecordNode, // #1 = 'ld' chained node
/*292068*/            OPC_CheckFoldableChainNode,
/*292069*/            OPC_RecordChild1, // #2 = $src2
/*292070*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292072*/            OPC_CheckPredicate, 9, // Predicate_load
/*292074*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*292076*/            OPC_SwitchType /*2 cases */, 27, MVT::v8i64,// ->292106
/*292079*/              OPC_MoveParent,
/*292080*/              OPC_MoveParent,
/*292081*/              OPC_RecordChild1, // #3 = $src1
/*292082*/              OPC_MoveParent,
/*292083*/              OPC_RecordChild2, // #4 = $src0
/*292084*/              OPC_CheckType, MVT::v32i16,
/*292086*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292088*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292091*/              OPC_EmitMergeInputChains1_1,
/*292092*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPADDSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292106*/            /*SwitchType*/ 27, MVT::v4i64,// ->292135
/*292108*/              OPC_MoveParent,
/*292109*/              OPC_MoveParent,
/*292110*/              OPC_RecordChild1, // #3 = $src1
/*292111*/              OPC_MoveParent,
/*292112*/              OPC_RecordChild2, // #4 = $src0
/*292113*/              OPC_CheckType, MVT::v32i8,
/*292115*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*292117*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292120*/              OPC_EmitMergeInputChains1_1,
/*292121*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPADDSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292135*/            0, // EndSwitchType
/*292136*/          0, /*End of Scope*/
/*292137*/        /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(X86ISD::SUBS),// ->292296
/*292141*/          OPC_RecordChild0, // #1 = $src1
/*292142*/          OPC_MoveChild1,
/*292143*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292146*/          OPC_MoveChild0,
/*292147*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*292150*/          OPC_RecordMemRef,
/*292151*/          OPC_RecordNode, // #2 = 'ld' chained node
/*292152*/          OPC_CheckFoldableChainNode,
/*292153*/          OPC_RecordChild1, // #3 = $src2
/*292154*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292156*/          OPC_CheckPredicate, 9, // Predicate_load
/*292158*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*292160*/          OPC_SwitchType /*2 cases */, 65, MVT::v8i64,// ->292228
/*292163*/            OPC_MoveParent,
/*292164*/            OPC_MoveParent,
/*292165*/            OPC_MoveParent,
/*292166*/            OPC_Scope, 35, /*->292203*/ // 2 children in Scope
/*292168*/              OPC_MoveChild2,
/*292169*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292172*/              OPC_MoveChild0,
/*292173*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*292176*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*292178*/              OPC_CheckType, MVT::v16i32,
/*292180*/              OPC_MoveParent,
/*292181*/              OPC_MoveParent,
/*292182*/              OPC_CheckType, MVT::v32i16,
/*292184*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292186*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*292189*/              OPC_EmitMergeInputChains1_2,
/*292190*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86subs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSUBSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292203*/            /*Scope*/ 23, /*->292227*/
/*292204*/              OPC_RecordChild2, // #4 = $src0
/*292205*/              OPC_CheckType, MVT::v32i16,
/*292207*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292209*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292212*/              OPC_EmitMergeInputChains1_2,
/*292213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86subs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPSUBSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292227*/            0, /*End of Scope*/
/*292228*/          /*SwitchType*/ 65, MVT::v4i64,// ->292295
/*292230*/            OPC_MoveParent,
/*292231*/            OPC_MoveParent,
/*292232*/            OPC_MoveParent,
/*292233*/            OPC_Scope, 35, /*->292270*/ // 2 children in Scope
/*292235*/              OPC_MoveChild2,
/*292236*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292239*/              OPC_MoveChild0,
/*292240*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*292243*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*292245*/              OPC_CheckType, MVT::v8i32,
/*292247*/              OPC_MoveParent,
/*292248*/              OPC_MoveParent,
/*292249*/              OPC_CheckType, MVT::v32i8,
/*292251*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*292253*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*292256*/              OPC_EmitMergeInputChains1_2,
/*292257*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86subs:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSUBSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292270*/            /*Scope*/ 23, /*->292294*/
/*292271*/              OPC_RecordChild2, // #4 = $src0
/*292272*/              OPC_CheckType, MVT::v32i8,
/*292274*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*292276*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292279*/              OPC_EmitMergeInputChains1_2,
/*292280*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86subs:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPSUBSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292294*/            0, /*End of Scope*/
/*292295*/          0, // EndSwitchType
/*292296*/        /*SwitchOpcode*/ 108|128,2/*364*/, TARGET_VAL(X86ISD::ADDUS),// ->292664
/*292300*/          OPC_Scope, 101, /*->292403*/ // 4 children in Scope
/*292302*/            OPC_RecordChild0, // #1 = $src1
/*292303*/            OPC_MoveChild1,
/*292304*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292307*/            OPC_MoveChild0,
/*292308*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*292311*/            OPC_RecordMemRef,
/*292312*/            OPC_RecordNode, // #2 = 'ld' chained node
/*292313*/            OPC_CheckFoldableChainNode,
/*292314*/            OPC_RecordChild1, // #3 = $src2
/*292315*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292317*/            OPC_CheckPredicate, 9, // Predicate_load
/*292319*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*292321*/            OPC_SwitchType /*2 cases */, 38, MVT::v8i64,// ->292362
/*292324*/              OPC_MoveParent,
/*292325*/              OPC_MoveParent,
/*292326*/              OPC_MoveParent,
/*292327*/              OPC_MoveChild2,
/*292328*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292331*/              OPC_MoveChild0,
/*292332*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*292335*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*292337*/              OPC_CheckType, MVT::v16i32,
/*292339*/              OPC_MoveParent,
/*292340*/              OPC_MoveParent,
/*292341*/              OPC_CheckType, MVT::v32i16,
/*292343*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292345*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*292348*/              OPC_EmitMergeInputChains1_2,
/*292349*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDUSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292362*/            /*SwitchType*/ 38, MVT::v4i64,// ->292402
/*292364*/              OPC_MoveParent,
/*292365*/              OPC_MoveParent,
/*292366*/              OPC_MoveParent,
/*292367*/              OPC_MoveChild2,
/*292368*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292371*/              OPC_MoveChild0,
/*292372*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*292375*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*292377*/              OPC_CheckType, MVT::v8i32,
/*292379*/              OPC_MoveParent,
/*292380*/              OPC_MoveParent,
/*292381*/              OPC_CheckType, MVT::v32i8,
/*292383*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*292385*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*292388*/              OPC_EmitMergeInputChains1_2,
/*292389*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDUSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292402*/            0, // EndSwitchType
/*292403*/          /*Scope*/ 102, /*->292506*/
/*292404*/            OPC_MoveChild0,
/*292405*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292408*/            OPC_MoveChild0,
/*292409*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*292412*/            OPC_RecordMemRef,
/*292413*/            OPC_RecordNode, // #1 = 'ld' chained node
/*292414*/            OPC_CheckFoldableChainNode,
/*292415*/            OPC_RecordChild1, // #2 = $src2
/*292416*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292418*/            OPC_CheckPredicate, 9, // Predicate_load
/*292420*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*292422*/            OPC_SwitchType /*2 cases */, 39, MVT::v8i64,// ->292464
/*292425*/              OPC_MoveParent,
/*292426*/              OPC_MoveParent,
/*292427*/              OPC_RecordChild1, // #3 = $src1
/*292428*/              OPC_MoveParent,
/*292429*/              OPC_MoveChild2,
/*292430*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292433*/              OPC_MoveChild0,
/*292434*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*292437*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*292439*/              OPC_CheckType, MVT::v16i32,
/*292441*/              OPC_MoveParent,
/*292442*/              OPC_MoveParent,
/*292443*/              OPC_CheckType, MVT::v32i16,
/*292445*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292447*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*292450*/              OPC_EmitMergeInputChains1_1,
/*292451*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDUSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292464*/            /*SwitchType*/ 39, MVT::v4i64,// ->292505
/*292466*/              OPC_MoveParent,
/*292467*/              OPC_MoveParent,
/*292468*/              OPC_RecordChild1, // #3 = $src1
/*292469*/              OPC_MoveParent,
/*292470*/              OPC_MoveChild2,
/*292471*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292474*/              OPC_MoveChild0,
/*292475*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*292478*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*292480*/              OPC_CheckType, MVT::v8i32,
/*292482*/              OPC_MoveParent,
/*292483*/              OPC_MoveParent,
/*292484*/              OPC_CheckType, MVT::v32i8,
/*292486*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*292488*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*292491*/              OPC_EmitMergeInputChains1_1,
/*292492*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPADDUSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292505*/            0, // EndSwitchType
/*292506*/          /*Scope*/ 77, /*->292584*/
/*292507*/            OPC_RecordChild0, // #1 = $src1
/*292508*/            OPC_MoveChild1,
/*292509*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292512*/            OPC_MoveChild0,
/*292513*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*292516*/            OPC_RecordMemRef,
/*292517*/            OPC_RecordNode, // #2 = 'ld' chained node
/*292518*/            OPC_CheckFoldableChainNode,
/*292519*/            OPC_RecordChild1, // #3 = $src2
/*292520*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292522*/            OPC_CheckPredicate, 9, // Predicate_load
/*292524*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*292526*/            OPC_SwitchType /*2 cases */, 26, MVT::v8i64,// ->292555
/*292529*/              OPC_MoveParent,
/*292530*/              OPC_MoveParent,
/*292531*/              OPC_MoveParent,
/*292532*/              OPC_RecordChild2, // #4 = $src0
/*292533*/              OPC_CheckType, MVT::v32i16,
/*292535*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292537*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292540*/              OPC_EmitMergeInputChains1_2,
/*292541*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPADDUSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292555*/            /*SwitchType*/ 26, MVT::v4i64,// ->292583
/*292557*/              OPC_MoveParent,
/*292558*/              OPC_MoveParent,
/*292559*/              OPC_MoveParent,
/*292560*/              OPC_RecordChild2, // #4 = $src0
/*292561*/              OPC_CheckType, MVT::v32i8,
/*292563*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*292565*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292568*/              OPC_EmitMergeInputChains1_2,
/*292569*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPADDUSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292583*/            0, // EndSwitchType
/*292584*/          /*Scope*/ 78, /*->292663*/
/*292585*/            OPC_MoveChild0,
/*292586*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292589*/            OPC_MoveChild0,
/*292590*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*292593*/            OPC_RecordMemRef,
/*292594*/            OPC_RecordNode, // #1 = 'ld' chained node
/*292595*/            OPC_CheckFoldableChainNode,
/*292596*/            OPC_RecordChild1, // #2 = $src2
/*292597*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292599*/            OPC_CheckPredicate, 9, // Predicate_load
/*292601*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*292603*/            OPC_SwitchType /*2 cases */, 27, MVT::v8i64,// ->292633
/*292606*/              OPC_MoveParent,
/*292607*/              OPC_MoveParent,
/*292608*/              OPC_RecordChild1, // #3 = $src1
/*292609*/              OPC_MoveParent,
/*292610*/              OPC_RecordChild2, // #4 = $src0
/*292611*/              OPC_CheckType, MVT::v32i16,
/*292613*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292615*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292618*/              OPC_EmitMergeInputChains1_1,
/*292619*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPADDUSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292633*/            /*SwitchType*/ 27, MVT::v4i64,// ->292662
/*292635*/              OPC_MoveParent,
/*292636*/              OPC_MoveParent,
/*292637*/              OPC_RecordChild1, // #3 = $src1
/*292638*/              OPC_MoveParent,
/*292639*/              OPC_RecordChild2, // #4 = $src0
/*292640*/              OPC_CheckType, MVT::v32i8,
/*292642*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*292644*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292647*/              OPC_EmitMergeInputChains1_1,
/*292648*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPADDUSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292662*/            0, // EndSwitchType
/*292663*/          0, /*End of Scope*/
/*292664*/        /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(X86ISD::SUBUS),// ->292823
/*292668*/          OPC_RecordChild0, // #1 = $src1
/*292669*/          OPC_MoveChild1,
/*292670*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292673*/          OPC_MoveChild0,
/*292674*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*292677*/          OPC_RecordMemRef,
/*292678*/          OPC_RecordNode, // #2 = 'ld' chained node
/*292679*/          OPC_CheckFoldableChainNode,
/*292680*/          OPC_RecordChild1, // #3 = $src2
/*292681*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292683*/          OPC_CheckPredicate, 9, // Predicate_load
/*292685*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*292687*/          OPC_SwitchType /*2 cases */, 65, MVT::v8i64,// ->292755
/*292690*/            OPC_MoveParent,
/*292691*/            OPC_MoveParent,
/*292692*/            OPC_MoveParent,
/*292693*/            OPC_Scope, 35, /*->292730*/ // 2 children in Scope
/*292695*/              OPC_MoveChild2,
/*292696*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292699*/              OPC_MoveChild0,
/*292700*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*292703*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*292705*/              OPC_CheckType, MVT::v16i32,
/*292707*/              OPC_MoveParent,
/*292708*/              OPC_MoveParent,
/*292709*/              OPC_CheckType, MVT::v32i16,
/*292711*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292713*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*292716*/              OPC_EmitMergeInputChains1_2,
/*292717*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86subus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSUBUSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292730*/            /*Scope*/ 23, /*->292754*/
/*292731*/              OPC_RecordChild2, // #4 = $src0
/*292732*/              OPC_CheckType, MVT::v32i16,
/*292734*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292736*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292739*/              OPC_EmitMergeInputChains1_2,
/*292740*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86subus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPSUBUSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292754*/            0, /*End of Scope*/
/*292755*/          /*SwitchType*/ 65, MVT::v4i64,// ->292822
/*292757*/            OPC_MoveParent,
/*292758*/            OPC_MoveParent,
/*292759*/            OPC_MoveParent,
/*292760*/            OPC_Scope, 35, /*->292797*/ // 2 children in Scope
/*292762*/              OPC_MoveChild2,
/*292763*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292766*/              OPC_MoveChild0,
/*292767*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*292770*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*292772*/              OPC_CheckType, MVT::v8i32,
/*292774*/              OPC_MoveParent,
/*292775*/              OPC_MoveParent,
/*292776*/              OPC_CheckType, MVT::v32i8,
/*292778*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*292780*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*292783*/              OPC_EmitMergeInputChains1_2,
/*292784*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86subus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSUBUSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292797*/            /*Scope*/ 23, /*->292821*/
/*292798*/              OPC_RecordChild2, // #4 = $src0
/*292799*/              OPC_CheckType, MVT::v32i8,
/*292801*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*292803*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292806*/              OPC_EmitMergeInputChains1_2,
/*292807*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86subus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPSUBUSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292821*/            0, /*End of Scope*/
/*292822*/          0, // EndSwitchType
/*292823*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(ISD::MUL),// ->293045
/*292827*/          OPC_Scope, 59, /*->292888*/ // 4 children in Scope
/*292829*/            OPC_RecordChild0, // #1 = $src1
/*292830*/            OPC_MoveChild1,
/*292831*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292834*/            OPC_MoveChild0,
/*292835*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*292838*/            OPC_RecordMemRef,
/*292839*/            OPC_RecordNode, // #2 = 'ld' chained node
/*292840*/            OPC_CheckFoldableChainNode,
/*292841*/            OPC_RecordChild1, // #3 = $src2
/*292842*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292844*/            OPC_CheckPredicate, 9, // Predicate_load
/*292846*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*292848*/            OPC_CheckType, MVT::v8i64,
/*292850*/            OPC_MoveParent,
/*292851*/            OPC_MoveParent,
/*292852*/            OPC_MoveParent,
/*292853*/            OPC_MoveChild2,
/*292854*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292857*/            OPC_MoveChild0,
/*292858*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*292861*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*292863*/            OPC_CheckType, MVT::v16i32,
/*292865*/            OPC_MoveParent,
/*292866*/            OPC_MoveParent,
/*292867*/            OPC_CheckType, MVT::v32i16,
/*292869*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292871*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*292874*/            OPC_EmitMergeInputChains1_2,
/*292875*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mul:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULLWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292888*/          /*Scope*/ 59, /*->292948*/
/*292889*/            OPC_MoveChild0,
/*292890*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292893*/            OPC_MoveChild0,
/*292894*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*292897*/            OPC_RecordMemRef,
/*292898*/            OPC_RecordNode, // #1 = 'ld' chained node
/*292899*/            OPC_CheckFoldableChainNode,
/*292900*/            OPC_RecordChild1, // #2 = $src2
/*292901*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292903*/            OPC_CheckPredicate, 9, // Predicate_load
/*292905*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*292907*/            OPC_CheckType, MVT::v8i64,
/*292909*/            OPC_MoveParent,
/*292910*/            OPC_MoveParent,
/*292911*/            OPC_RecordChild1, // #3 = $src1
/*292912*/            OPC_MoveParent,
/*292913*/            OPC_MoveChild2,
/*292914*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292917*/            OPC_MoveChild0,
/*292918*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*292921*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*292923*/            OPC_CheckType, MVT::v16i32,
/*292925*/            OPC_MoveParent,
/*292926*/            OPC_MoveParent,
/*292927*/            OPC_CheckType, MVT::v32i16,
/*292929*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292931*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*292934*/            OPC_EmitMergeInputChains1_1,
/*292935*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mul:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULLWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292948*/          /*Scope*/ 47, /*->292996*/
/*292949*/            OPC_RecordChild0, // #1 = $src1
/*292950*/            OPC_MoveChild1,
/*292951*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*292954*/            OPC_MoveChild0,
/*292955*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*292958*/            OPC_RecordMemRef,
/*292959*/            OPC_RecordNode, // #2 = 'ld' chained node
/*292960*/            OPC_CheckFoldableChainNode,
/*292961*/            OPC_RecordChild1, // #3 = $src2
/*292962*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292964*/            OPC_CheckPredicate, 9, // Predicate_load
/*292966*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*292968*/            OPC_CheckType, MVT::v8i64,
/*292970*/            OPC_MoveParent,
/*292971*/            OPC_MoveParent,
/*292972*/            OPC_MoveParent,
/*292973*/            OPC_RecordChild2, // #4 = $src0
/*292974*/            OPC_CheckType, MVT::v32i16,
/*292976*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*292978*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*292981*/            OPC_EmitMergeInputChains1_2,
/*292982*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mul:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPMULLWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*292996*/          /*Scope*/ 47, /*->293044*/
/*292997*/            OPC_MoveChild0,
/*292998*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293001*/            OPC_MoveChild0,
/*293002*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293005*/            OPC_RecordMemRef,
/*293006*/            OPC_RecordNode, // #1 = 'ld' chained node
/*293007*/            OPC_CheckFoldableChainNode,
/*293008*/            OPC_RecordChild1, // #2 = $src2
/*293009*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293011*/            OPC_CheckPredicate, 9, // Predicate_load
/*293013*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293015*/            OPC_CheckType, MVT::v8i64,
/*293017*/            OPC_MoveParent,
/*293018*/            OPC_MoveParent,
/*293019*/            OPC_RecordChild1, // #3 = $src1
/*293020*/            OPC_MoveParent,
/*293021*/            OPC_RecordChild2, // #4 = $src0
/*293022*/            OPC_CheckType, MVT::v32i16,
/*293024*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293026*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*293029*/            OPC_EmitMergeInputChains1_1,
/*293030*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mul:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPMULLWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293044*/          0, /*End of Scope*/
/*293045*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(ISD::MULHS),// ->293267
/*293049*/          OPC_Scope, 59, /*->293110*/ // 4 children in Scope
/*293051*/            OPC_RecordChild0, // #1 = $src1
/*293052*/            OPC_MoveChild1,
/*293053*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293056*/            OPC_MoveChild0,
/*293057*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293060*/            OPC_RecordMemRef,
/*293061*/            OPC_RecordNode, // #2 = 'ld' chained node
/*293062*/            OPC_CheckFoldableChainNode,
/*293063*/            OPC_RecordChild1, // #3 = $src2
/*293064*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293066*/            OPC_CheckPredicate, 9, // Predicate_load
/*293068*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293070*/            OPC_CheckType, MVT::v8i64,
/*293072*/            OPC_MoveParent,
/*293073*/            OPC_MoveParent,
/*293074*/            OPC_MoveParent,
/*293075*/            OPC_MoveChild2,
/*293076*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293079*/            OPC_MoveChild0,
/*293080*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*293083*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*293085*/            OPC_CheckType, MVT::v16i32,
/*293087*/            OPC_MoveParent,
/*293088*/            OPC_MoveParent,
/*293089*/            OPC_CheckType, MVT::v32i16,
/*293091*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293093*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*293096*/            OPC_EmitMergeInputChains1_2,
/*293097*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULHWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293110*/          /*Scope*/ 59, /*->293170*/
/*293111*/            OPC_MoveChild0,
/*293112*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293115*/            OPC_MoveChild0,
/*293116*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293119*/            OPC_RecordMemRef,
/*293120*/            OPC_RecordNode, // #1 = 'ld' chained node
/*293121*/            OPC_CheckFoldableChainNode,
/*293122*/            OPC_RecordChild1, // #2 = $src2
/*293123*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293125*/            OPC_CheckPredicate, 9, // Predicate_load
/*293127*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293129*/            OPC_CheckType, MVT::v8i64,
/*293131*/            OPC_MoveParent,
/*293132*/            OPC_MoveParent,
/*293133*/            OPC_RecordChild1, // #3 = $src1
/*293134*/            OPC_MoveParent,
/*293135*/            OPC_MoveChild2,
/*293136*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293139*/            OPC_MoveChild0,
/*293140*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*293143*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*293145*/            OPC_CheckType, MVT::v16i32,
/*293147*/            OPC_MoveParent,
/*293148*/            OPC_MoveParent,
/*293149*/            OPC_CheckType, MVT::v32i16,
/*293151*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293153*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*293156*/            OPC_EmitMergeInputChains1_1,
/*293157*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhs:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULHWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293170*/          /*Scope*/ 47, /*->293218*/
/*293171*/            OPC_RecordChild0, // #1 = $src1
/*293172*/            OPC_MoveChild1,
/*293173*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293176*/            OPC_MoveChild0,
/*293177*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293180*/            OPC_RecordMemRef,
/*293181*/            OPC_RecordNode, // #2 = 'ld' chained node
/*293182*/            OPC_CheckFoldableChainNode,
/*293183*/            OPC_RecordChild1, // #3 = $src2
/*293184*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293186*/            OPC_CheckPredicate, 9, // Predicate_load
/*293188*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293190*/            OPC_CheckType, MVT::v8i64,
/*293192*/            OPC_MoveParent,
/*293193*/            OPC_MoveParent,
/*293194*/            OPC_MoveParent,
/*293195*/            OPC_RecordChild2, // #4 = $src0
/*293196*/            OPC_CheckType, MVT::v32i16,
/*293198*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293200*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*293203*/            OPC_EmitMergeInputChains1_2,
/*293204*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPMULHWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293218*/          /*Scope*/ 47, /*->293266*/
/*293219*/            OPC_MoveChild0,
/*293220*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293223*/            OPC_MoveChild0,
/*293224*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293227*/            OPC_RecordMemRef,
/*293228*/            OPC_RecordNode, // #1 = 'ld' chained node
/*293229*/            OPC_CheckFoldableChainNode,
/*293230*/            OPC_RecordChild1, // #2 = $src2
/*293231*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293233*/            OPC_CheckPredicate, 9, // Predicate_load
/*293235*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293237*/            OPC_CheckType, MVT::v8i64,
/*293239*/            OPC_MoveParent,
/*293240*/            OPC_MoveParent,
/*293241*/            OPC_RecordChild1, // #3 = $src1
/*293242*/            OPC_MoveParent,
/*293243*/            OPC_RecordChild2, // #4 = $src0
/*293244*/            OPC_CheckType, MVT::v32i16,
/*293246*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293248*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*293251*/            OPC_EmitMergeInputChains1_1,
/*293252*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhs:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPMULHWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293266*/          0, /*End of Scope*/
/*293267*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(ISD::MULHU),// ->293489
/*293271*/          OPC_Scope, 59, /*->293332*/ // 4 children in Scope
/*293273*/            OPC_RecordChild0, // #1 = $src1
/*293274*/            OPC_MoveChild1,
/*293275*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293278*/            OPC_MoveChild0,
/*293279*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293282*/            OPC_RecordMemRef,
/*293283*/            OPC_RecordNode, // #2 = 'ld' chained node
/*293284*/            OPC_CheckFoldableChainNode,
/*293285*/            OPC_RecordChild1, // #3 = $src2
/*293286*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293288*/            OPC_CheckPredicate, 9, // Predicate_load
/*293290*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293292*/            OPC_CheckType, MVT::v8i64,
/*293294*/            OPC_MoveParent,
/*293295*/            OPC_MoveParent,
/*293296*/            OPC_MoveParent,
/*293297*/            OPC_MoveChild2,
/*293298*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293301*/            OPC_MoveChild0,
/*293302*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*293305*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*293307*/            OPC_CheckType, MVT::v16i32,
/*293309*/            OPC_MoveParent,
/*293310*/            OPC_MoveParent,
/*293311*/            OPC_CheckType, MVT::v32i16,
/*293313*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293315*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*293318*/            OPC_EmitMergeInputChains1_2,
/*293319*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhu:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULHUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293332*/          /*Scope*/ 59, /*->293392*/
/*293333*/            OPC_MoveChild0,
/*293334*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293337*/            OPC_MoveChild0,
/*293338*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293341*/            OPC_RecordMemRef,
/*293342*/            OPC_RecordNode, // #1 = 'ld' chained node
/*293343*/            OPC_CheckFoldableChainNode,
/*293344*/            OPC_RecordChild1, // #2 = $src2
/*293345*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293347*/            OPC_CheckPredicate, 9, // Predicate_load
/*293349*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293351*/            OPC_CheckType, MVT::v8i64,
/*293353*/            OPC_MoveParent,
/*293354*/            OPC_MoveParent,
/*293355*/            OPC_RecordChild1, // #3 = $src1
/*293356*/            OPC_MoveParent,
/*293357*/            OPC_MoveChild2,
/*293358*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293361*/            OPC_MoveChild0,
/*293362*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*293365*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*293367*/            OPC_CheckType, MVT::v16i32,
/*293369*/            OPC_MoveParent,
/*293370*/            OPC_MoveParent,
/*293371*/            OPC_CheckType, MVT::v32i16,
/*293373*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293375*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*293378*/            OPC_EmitMergeInputChains1_1,
/*293379*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhu:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULHUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293392*/          /*Scope*/ 47, /*->293440*/
/*293393*/            OPC_RecordChild0, // #1 = $src1
/*293394*/            OPC_MoveChild1,
/*293395*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293398*/            OPC_MoveChild0,
/*293399*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293402*/            OPC_RecordMemRef,
/*293403*/            OPC_RecordNode, // #2 = 'ld' chained node
/*293404*/            OPC_CheckFoldableChainNode,
/*293405*/            OPC_RecordChild1, // #3 = $src2
/*293406*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293408*/            OPC_CheckPredicate, 9, // Predicate_load
/*293410*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293412*/            OPC_CheckType, MVT::v8i64,
/*293414*/            OPC_MoveParent,
/*293415*/            OPC_MoveParent,
/*293416*/            OPC_MoveParent,
/*293417*/            OPC_RecordChild2, // #4 = $src0
/*293418*/            OPC_CheckType, MVT::v32i16,
/*293420*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293422*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*293425*/            OPC_EmitMergeInputChains1_2,
/*293426*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhu:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPMULHUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293440*/          /*Scope*/ 47, /*->293488*/
/*293441*/            OPC_MoveChild0,
/*293442*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293445*/            OPC_MoveChild0,
/*293446*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293449*/            OPC_RecordMemRef,
/*293450*/            OPC_RecordNode, // #1 = 'ld' chained node
/*293451*/            OPC_CheckFoldableChainNode,
/*293452*/            OPC_RecordChild1, // #2 = $src2
/*293453*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293455*/            OPC_CheckPredicate, 9, // Predicate_load
/*293457*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293459*/            OPC_CheckType, MVT::v8i64,
/*293461*/            OPC_MoveParent,
/*293462*/            OPC_MoveParent,
/*293463*/            OPC_RecordChild1, // #3 = $src1
/*293464*/            OPC_MoveParent,
/*293465*/            OPC_RecordChild2, // #4 = $src0
/*293466*/            OPC_CheckType, MVT::v32i16,
/*293468*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293470*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*293473*/            OPC_EmitMergeInputChains1_1,
/*293474*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhu:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPMULHUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293488*/          0, /*End of Scope*/
/*293489*/        /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(X86ISD::MULHRS),// ->293711
/*293493*/          OPC_Scope, 59, /*->293554*/ // 4 children in Scope
/*293495*/            OPC_RecordChild0, // #1 = $src1
/*293496*/            OPC_MoveChild1,
/*293497*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293500*/            OPC_MoveChild0,
/*293501*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293504*/            OPC_RecordMemRef,
/*293505*/            OPC_RecordNode, // #2 = 'ld' chained node
/*293506*/            OPC_CheckFoldableChainNode,
/*293507*/            OPC_RecordChild1, // #3 = $src2
/*293508*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293510*/            OPC_CheckPredicate, 9, // Predicate_load
/*293512*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293514*/            OPC_CheckType, MVT::v8i64,
/*293516*/            OPC_MoveParent,
/*293517*/            OPC_MoveParent,
/*293518*/            OPC_MoveParent,
/*293519*/            OPC_MoveChild2,
/*293520*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293523*/            OPC_MoveChild0,
/*293524*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*293527*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*293529*/            OPC_CheckType, MVT::v16i32,
/*293531*/            OPC_MoveParent,
/*293532*/            OPC_MoveParent,
/*293533*/            OPC_CheckType, MVT::v32i16,
/*293535*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293537*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*293540*/            OPC_EmitMergeInputChains1_2,
/*293541*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86mulhrs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULHRSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293554*/          /*Scope*/ 59, /*->293614*/
/*293555*/            OPC_MoveChild0,
/*293556*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293559*/            OPC_MoveChild0,
/*293560*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293563*/            OPC_RecordMemRef,
/*293564*/            OPC_RecordNode, // #1 = 'ld' chained node
/*293565*/            OPC_CheckFoldableChainNode,
/*293566*/            OPC_RecordChild1, // #2 = $src2
/*293567*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293569*/            OPC_CheckPredicate, 9, // Predicate_load
/*293571*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293573*/            OPC_CheckType, MVT::v8i64,
/*293575*/            OPC_MoveParent,
/*293576*/            OPC_MoveParent,
/*293577*/            OPC_RecordChild1, // #3 = $src1
/*293578*/            OPC_MoveParent,
/*293579*/            OPC_MoveChild2,
/*293580*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293583*/            OPC_MoveChild0,
/*293584*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*293587*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*293589*/            OPC_CheckType, MVT::v16i32,
/*293591*/            OPC_MoveParent,
/*293592*/            OPC_MoveParent,
/*293593*/            OPC_CheckType, MVT::v32i16,
/*293595*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293597*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*293600*/            OPC_EmitMergeInputChains1_1,
/*293601*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86mulhrs:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULHRSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293614*/          /*Scope*/ 47, /*->293662*/
/*293615*/            OPC_RecordChild0, // #1 = $src1
/*293616*/            OPC_MoveChild1,
/*293617*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293620*/            OPC_MoveChild0,
/*293621*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293624*/            OPC_RecordMemRef,
/*293625*/            OPC_RecordNode, // #2 = 'ld' chained node
/*293626*/            OPC_CheckFoldableChainNode,
/*293627*/            OPC_RecordChild1, // #3 = $src2
/*293628*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293630*/            OPC_CheckPredicate, 9, // Predicate_load
/*293632*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293634*/            OPC_CheckType, MVT::v8i64,
/*293636*/            OPC_MoveParent,
/*293637*/            OPC_MoveParent,
/*293638*/            OPC_MoveParent,
/*293639*/            OPC_RecordChild2, // #4 = $src0
/*293640*/            OPC_CheckType, MVT::v32i16,
/*293642*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293644*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*293647*/            OPC_EmitMergeInputChains1_2,
/*293648*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86mulhrs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPMULHRSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293662*/          /*Scope*/ 47, /*->293710*/
/*293663*/            OPC_MoveChild0,
/*293664*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293667*/            OPC_MoveChild0,
/*293668*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293671*/            OPC_RecordMemRef,
/*293672*/            OPC_RecordNode, // #1 = 'ld' chained node
/*293673*/            OPC_CheckFoldableChainNode,
/*293674*/            OPC_RecordChild1, // #2 = $src2
/*293675*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293677*/            OPC_CheckPredicate, 9, // Predicate_load
/*293679*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293681*/            OPC_CheckType, MVT::v8i64,
/*293683*/            OPC_MoveParent,
/*293684*/            OPC_MoveParent,
/*293685*/            OPC_RecordChild1, // #3 = $src1
/*293686*/            OPC_MoveParent,
/*293687*/            OPC_RecordChild2, // #4 = $src0
/*293688*/            OPC_CheckType, MVT::v32i16,
/*293690*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293692*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*293695*/            OPC_EmitMergeInputChains1_1,
/*293696*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86mulhrs:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPMULHRSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293710*/          0, /*End of Scope*/
/*293711*/        /*SwitchOpcode*/ 108|128,2/*364*/, TARGET_VAL(X86ISD::AVG),// ->294079
/*293715*/          OPC_Scope, 101, /*->293818*/ // 4 children in Scope
/*293717*/            OPC_RecordChild0, // #1 = $src1
/*293718*/            OPC_MoveChild1,
/*293719*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293722*/            OPC_MoveChild0,
/*293723*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293726*/            OPC_RecordMemRef,
/*293727*/            OPC_RecordNode, // #2 = 'ld' chained node
/*293728*/            OPC_CheckFoldableChainNode,
/*293729*/            OPC_RecordChild1, // #3 = $src2
/*293730*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293732*/            OPC_CheckPredicate, 9, // Predicate_load
/*293734*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293736*/            OPC_SwitchType /*2 cases */, 38, MVT::v8i64,// ->293777
/*293739*/              OPC_MoveParent,
/*293740*/              OPC_MoveParent,
/*293741*/              OPC_MoveParent,
/*293742*/              OPC_MoveChild2,
/*293743*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293746*/              OPC_MoveChild0,
/*293747*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*293750*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*293752*/              OPC_CheckType, MVT::v16i32,
/*293754*/              OPC_MoveParent,
/*293755*/              OPC_MoveParent,
/*293756*/              OPC_CheckType, MVT::v32i16,
/*293758*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293760*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*293763*/              OPC_EmitMergeInputChains1_2,
/*293764*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPAVGWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293777*/            /*SwitchType*/ 38, MVT::v4i64,// ->293817
/*293779*/              OPC_MoveParent,
/*293780*/              OPC_MoveParent,
/*293781*/              OPC_MoveParent,
/*293782*/              OPC_MoveChild2,
/*293783*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293786*/              OPC_MoveChild0,
/*293787*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*293790*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*293792*/              OPC_CheckType, MVT::v8i32,
/*293794*/              OPC_MoveParent,
/*293795*/              OPC_MoveParent,
/*293796*/              OPC_CheckType, MVT::v32i8,
/*293798*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*293800*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*293803*/              OPC_EmitMergeInputChains1_2,
/*293804*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPAVGBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293817*/            0, // EndSwitchType
/*293818*/          /*Scope*/ 102, /*->293921*/
/*293819*/            OPC_MoveChild0,
/*293820*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293823*/            OPC_MoveChild0,
/*293824*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293827*/            OPC_RecordMemRef,
/*293828*/            OPC_RecordNode, // #1 = 'ld' chained node
/*293829*/            OPC_CheckFoldableChainNode,
/*293830*/            OPC_RecordChild1, // #2 = $src2
/*293831*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293833*/            OPC_CheckPredicate, 9, // Predicate_load
/*293835*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293837*/            OPC_SwitchType /*2 cases */, 39, MVT::v8i64,// ->293879
/*293840*/              OPC_MoveParent,
/*293841*/              OPC_MoveParent,
/*293842*/              OPC_RecordChild1, // #3 = $src1
/*293843*/              OPC_MoveParent,
/*293844*/              OPC_MoveChild2,
/*293845*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293848*/              OPC_MoveChild0,
/*293849*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*293852*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*293854*/              OPC_CheckType, MVT::v16i32,
/*293856*/              OPC_MoveParent,
/*293857*/              OPC_MoveParent,
/*293858*/              OPC_CheckType, MVT::v32i16,
/*293860*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293862*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*293865*/              OPC_EmitMergeInputChains1_1,
/*293866*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPAVGWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293879*/            /*SwitchType*/ 39, MVT::v4i64,// ->293920
/*293881*/              OPC_MoveParent,
/*293882*/              OPC_MoveParent,
/*293883*/              OPC_RecordChild1, // #3 = $src1
/*293884*/              OPC_MoveParent,
/*293885*/              OPC_MoveChild2,
/*293886*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293889*/              OPC_MoveChild0,
/*293890*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*293893*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*293895*/              OPC_CheckType, MVT::v8i32,
/*293897*/              OPC_MoveParent,
/*293898*/              OPC_MoveParent,
/*293899*/              OPC_CheckType, MVT::v32i8,
/*293901*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*293903*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*293906*/              OPC_EmitMergeInputChains1_1,
/*293907*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPAVGBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293920*/            0, // EndSwitchType
/*293921*/          /*Scope*/ 77, /*->293999*/
/*293922*/            OPC_RecordChild0, // #1 = $src1
/*293923*/            OPC_MoveChild1,
/*293924*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*293927*/            OPC_MoveChild0,
/*293928*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*293931*/            OPC_RecordMemRef,
/*293932*/            OPC_RecordNode, // #2 = 'ld' chained node
/*293933*/            OPC_CheckFoldableChainNode,
/*293934*/            OPC_RecordChild1, // #3 = $src2
/*293935*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293937*/            OPC_CheckPredicate, 9, // Predicate_load
/*293939*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*293941*/            OPC_SwitchType /*2 cases */, 26, MVT::v8i64,// ->293970
/*293944*/              OPC_MoveParent,
/*293945*/              OPC_MoveParent,
/*293946*/              OPC_MoveParent,
/*293947*/              OPC_RecordChild2, // #4 = $src0
/*293948*/              OPC_CheckType, MVT::v32i16,
/*293950*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*293952*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*293955*/              OPC_EmitMergeInputChains1_2,
/*293956*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPAVGWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293970*/            /*SwitchType*/ 26, MVT::v4i64,// ->293998
/*293972*/              OPC_MoveParent,
/*293973*/              OPC_MoveParent,
/*293974*/              OPC_MoveParent,
/*293975*/              OPC_RecordChild2, // #4 = $src0
/*293976*/              OPC_CheckType, MVT::v32i8,
/*293978*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*293980*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*293983*/              OPC_EmitMergeInputChains1_2,
/*293984*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPAVGBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*293998*/            0, // EndSwitchType
/*293999*/          /*Scope*/ 78, /*->294078*/
/*294000*/            OPC_MoveChild0,
/*294001*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294004*/            OPC_MoveChild0,
/*294005*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*294008*/            OPC_RecordMemRef,
/*294009*/            OPC_RecordNode, // #1 = 'ld' chained node
/*294010*/            OPC_CheckFoldableChainNode,
/*294011*/            OPC_RecordChild1, // #2 = $src2
/*294012*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294014*/            OPC_CheckPredicate, 9, // Predicate_load
/*294016*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*294018*/            OPC_SwitchType /*2 cases */, 27, MVT::v8i64,// ->294048
/*294021*/              OPC_MoveParent,
/*294022*/              OPC_MoveParent,
/*294023*/              OPC_RecordChild1, // #3 = $src1
/*294024*/              OPC_MoveParent,
/*294025*/              OPC_RecordChild2, // #4 = $src0
/*294026*/              OPC_CheckType, MVT::v32i16,
/*294028*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294030*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*294033*/              OPC_EmitMergeInputChains1_1,
/*294034*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPAVGWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294048*/            /*SwitchType*/ 27, MVT::v4i64,// ->294077
/*294050*/              OPC_MoveParent,
/*294051*/              OPC_MoveParent,
/*294052*/              OPC_RecordChild1, // #3 = $src1
/*294053*/              OPC_MoveParent,
/*294054*/              OPC_RecordChild2, // #4 = $src0
/*294055*/              OPC_CheckType, MVT::v32i8,
/*294057*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*294059*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*294062*/              OPC_EmitMergeInputChains1_1,
/*294063*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPAVGBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294077*/            0, // EndSwitchType
/*294078*/          0, /*End of Scope*/
/*294079*/        /*SwitchOpcode*/ 8|128,2/*264*/, TARGET_VAL(X86ISD::PACKSS),// ->294347
/*294083*/          OPC_RecordChild0, // #1 = $src1
/*294084*/          OPC_Scope, 43|128,1/*171*/, /*->294258*/ // 2 children in Scope
/*294087*/            OPC_CheckChild0Type, MVT::v16i32,
/*294089*/            OPC_MoveChild1,
/*294090*/            OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(ISD::BITCAST),// ->294175
/*294094*/              OPC_MoveChild0,
/*294095*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*294098*/              OPC_RecordMemRef,
/*294099*/              OPC_RecordNode, // #2 = 'ld' chained node
/*294100*/              OPC_CheckFoldableChainNode,
/*294101*/              OPC_RecordChild1, // #3 = $src2
/*294102*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294104*/              OPC_CheckPredicate, 9, // Predicate_load
/*294106*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*294108*/              OPC_CheckType, MVT::v8i64,
/*294110*/              OPC_MoveParent,
/*294111*/              OPC_MoveParent,
/*294112*/              OPC_MoveParent,
/*294113*/              OPC_Scope, 35, /*->294150*/ // 2 children in Scope
/*294115*/                OPC_MoveChild2,
/*294116*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294119*/                OPC_MoveChild0,
/*294120*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*294123*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*294125*/                OPC_CheckType, MVT::v16i32,
/*294127*/                OPC_MoveParent,
/*294128*/                OPC_MoveParent,
/*294129*/                OPC_CheckType, MVT::v32i16,
/*294131*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294133*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*294136*/                OPC_EmitMergeInputChains1_2,
/*294137*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packss:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPACKSSDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294150*/              /*Scope*/ 23, /*->294174*/
/*294151*/                OPC_RecordChild2, // #4 = $src0
/*294152*/                OPC_CheckType, MVT::v32i16,
/*294154*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294156*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*294159*/                OPC_EmitMergeInputChains1_2,
/*294160*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packss:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                          // Dst: (VPACKSSDWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294174*/              0, /*End of Scope*/
/*294175*/            /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VBROADCAST),// ->294257
/*294178*/              OPC_MoveChild0,
/*294179*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*294182*/              OPC_RecordMemRef,
/*294183*/              OPC_RecordNode, // #2 = 'ld' chained node
/*294184*/              OPC_CheckFoldableChainNode,
/*294185*/              OPC_RecordChild1, // #3 = $src2
/*294186*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294188*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*294190*/              OPC_CheckType, MVT::i32,
/*294192*/              OPC_MoveParent,
/*294193*/              OPC_MoveParent,
/*294194*/              OPC_MoveParent,
/*294195*/              OPC_Scope, 35, /*->294232*/ // 2 children in Scope
/*294197*/                OPC_MoveChild2,
/*294198*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294201*/                OPC_MoveChild0,
/*294202*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*294205*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*294207*/                OPC_CheckType, MVT::v16i32,
/*294209*/                OPC_MoveParent,
/*294210*/                OPC_MoveParent,
/*294211*/                OPC_CheckType, MVT::v32i16,
/*294213*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294215*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*294218*/                OPC_EmitMergeInputChains1_2,
/*294219*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packss:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPACKSSDWZrmbkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294232*/              /*Scope*/ 23, /*->294256*/
/*294233*/                OPC_RecordChild2, // #4 = $src0
/*294234*/                OPC_CheckType, MVT::v32i16,
/*294236*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294238*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*294241*/                OPC_EmitMergeInputChains1_2,
/*294242*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packss:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                          // Dst: (VPACKSSDWZrmbk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294256*/              0, /*End of Scope*/
/*294257*/            0, // EndSwitchOpcode
/*294258*/          /*Scope*/ 87, /*->294346*/
/*294259*/            OPC_CheckChild0Type, MVT::v16i16,
/*294261*/            OPC_MoveChild1,
/*294262*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294265*/            OPC_MoveChild0,
/*294266*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*294269*/            OPC_RecordMemRef,
/*294270*/            OPC_RecordNode, // #2 = 'ld' chained node
/*294271*/            OPC_CheckFoldableChainNode,
/*294272*/            OPC_RecordChild1, // #3 = $src2
/*294273*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294275*/            OPC_CheckPredicate, 9, // Predicate_load
/*294277*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*294279*/            OPC_CheckType, MVT::v4i64,
/*294281*/            OPC_MoveParent,
/*294282*/            OPC_MoveParent,
/*294283*/            OPC_MoveParent,
/*294284*/            OPC_Scope, 35, /*->294321*/ // 2 children in Scope
/*294286*/              OPC_MoveChild2,
/*294287*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294290*/              OPC_MoveChild0,
/*294291*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*294294*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*294296*/              OPC_CheckType, MVT::v8i32,
/*294298*/              OPC_MoveParent,
/*294299*/              OPC_MoveParent,
/*294300*/              OPC_CheckType, MVT::v32i8,
/*294302*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*294304*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*294307*/              OPC_EmitMergeInputChains1_2,
/*294308*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Packss:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPACKSSWBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294321*/            /*Scope*/ 23, /*->294345*/
/*294322*/              OPC_RecordChild2, // #4 = $src0
/*294323*/              OPC_CheckType, MVT::v32i8,
/*294325*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*294327*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*294330*/              OPC_EmitMergeInputChains1_2,
/*294331*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Packss:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPACKSSWBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294345*/            0, /*End of Scope*/
/*294346*/          0, /*End of Scope*/
/*294347*/        /*SwitchOpcode*/ 8|128,2/*264*/, TARGET_VAL(X86ISD::PACKUS),// ->294615
/*294351*/          OPC_RecordChild0, // #1 = $src1
/*294352*/          OPC_Scope, 43|128,1/*171*/, /*->294526*/ // 2 children in Scope
/*294355*/            OPC_CheckChild0Type, MVT::v16i32,
/*294357*/            OPC_MoveChild1,
/*294358*/            OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(ISD::BITCAST),// ->294443
/*294362*/              OPC_MoveChild0,
/*294363*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*294366*/              OPC_RecordMemRef,
/*294367*/              OPC_RecordNode, // #2 = 'ld' chained node
/*294368*/              OPC_CheckFoldableChainNode,
/*294369*/              OPC_RecordChild1, // #3 = $src2
/*294370*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294372*/              OPC_CheckPredicate, 9, // Predicate_load
/*294374*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*294376*/              OPC_CheckType, MVT::v8i64,
/*294378*/              OPC_MoveParent,
/*294379*/              OPC_MoveParent,
/*294380*/              OPC_MoveParent,
/*294381*/              OPC_Scope, 35, /*->294418*/ // 2 children in Scope
/*294383*/                OPC_MoveChild2,
/*294384*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294387*/                OPC_MoveChild0,
/*294388*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*294391*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*294393*/                OPC_CheckType, MVT::v16i32,
/*294395*/                OPC_MoveParent,
/*294396*/                OPC_MoveParent,
/*294397*/                OPC_CheckType, MVT::v32i16,
/*294399*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294401*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*294404*/                OPC_EmitMergeInputChains1_2,
/*294405*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packus:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPACKUSDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294418*/              /*Scope*/ 23, /*->294442*/
/*294419*/                OPC_RecordChild2, // #4 = $src0
/*294420*/                OPC_CheckType, MVT::v32i16,
/*294422*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294424*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*294427*/                OPC_EmitMergeInputChains1_2,
/*294428*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packus:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                          // Dst: (VPACKUSDWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294442*/              0, /*End of Scope*/
/*294443*/            /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VBROADCAST),// ->294525
/*294446*/              OPC_MoveChild0,
/*294447*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*294450*/              OPC_RecordMemRef,
/*294451*/              OPC_RecordNode, // #2 = 'ld' chained node
/*294452*/              OPC_CheckFoldableChainNode,
/*294453*/              OPC_RecordChild1, // #3 = $src2
/*294454*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294456*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*294458*/              OPC_CheckType, MVT::i32,
/*294460*/              OPC_MoveParent,
/*294461*/              OPC_MoveParent,
/*294462*/              OPC_MoveParent,
/*294463*/              OPC_Scope, 35, /*->294500*/ // 2 children in Scope
/*294465*/                OPC_MoveChild2,
/*294466*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294469*/                OPC_MoveChild0,
/*294470*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*294473*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*294475*/                OPC_CheckType, MVT::v16i32,
/*294477*/                OPC_MoveParent,
/*294478*/                OPC_MoveParent,
/*294479*/                OPC_CheckType, MVT::v32i16,
/*294481*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294483*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*294486*/                OPC_EmitMergeInputChains1_2,
/*294487*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packus:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPACKUSDWZrmbkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294500*/              /*Scope*/ 23, /*->294524*/
/*294501*/                OPC_RecordChild2, // #4 = $src0
/*294502*/                OPC_CheckType, MVT::v32i16,
/*294504*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294506*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*294509*/                OPC_EmitMergeInputChains1_2,
/*294510*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packus:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                          // Dst: (VPACKUSDWZrmbk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294524*/              0, /*End of Scope*/
/*294525*/            0, // EndSwitchOpcode
/*294526*/          /*Scope*/ 87, /*->294614*/
/*294527*/            OPC_CheckChild0Type, MVT::v16i16,
/*294529*/            OPC_MoveChild1,
/*294530*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294533*/            OPC_MoveChild0,
/*294534*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*294537*/            OPC_RecordMemRef,
/*294538*/            OPC_RecordNode, // #2 = 'ld' chained node
/*294539*/            OPC_CheckFoldableChainNode,
/*294540*/            OPC_RecordChild1, // #3 = $src2
/*294541*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294543*/            OPC_CheckPredicate, 9, // Predicate_load
/*294545*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*294547*/            OPC_CheckType, MVT::v4i64,
/*294549*/            OPC_MoveParent,
/*294550*/            OPC_MoveParent,
/*294551*/            OPC_MoveParent,
/*294552*/            OPC_Scope, 35, /*->294589*/ // 2 children in Scope
/*294554*/              OPC_MoveChild2,
/*294555*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294558*/              OPC_MoveChild0,
/*294559*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*294562*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*294564*/              OPC_CheckType, MVT::v8i32,
/*294566*/              OPC_MoveParent,
/*294567*/              OPC_MoveParent,
/*294568*/              OPC_CheckType, MVT::v32i8,
/*294570*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*294572*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*294575*/              OPC_EmitMergeInputChains1_2,
/*294576*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Packus:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPACKUSWBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294589*/            /*Scope*/ 23, /*->294613*/
/*294590*/              OPC_RecordChild2, // #4 = $src0
/*294591*/              OPC_CheckType, MVT::v32i8,
/*294593*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*294595*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*294598*/              OPC_EmitMergeInputChains1_2,
/*294599*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Packus:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPACKUSWBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294613*/            0, /*End of Scope*/
/*294614*/          0, /*End of Scope*/
/*294615*/        /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VPMADDUBSW),// ->294704
/*294618*/          OPC_RecordChild0, // #1 = $src1
/*294619*/          OPC_MoveChild1,
/*294620*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294623*/          OPC_MoveChild0,
/*294624*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*294627*/          OPC_RecordMemRef,
/*294628*/          OPC_RecordNode, // #2 = 'ld' chained node
/*294629*/          OPC_CheckFoldableChainNode,
/*294630*/          OPC_RecordChild1, // #3 = $src2
/*294631*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294633*/          OPC_CheckPredicate, 9, // Predicate_load
/*294635*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*294637*/          OPC_CheckType, MVT::v8i64,
/*294639*/          OPC_MoveParent,
/*294640*/          OPC_MoveParent,
/*294641*/          OPC_MoveParent,
/*294642*/          OPC_Scope, 35, /*->294679*/ // 2 children in Scope
/*294644*/            OPC_MoveChild2,
/*294645*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294648*/            OPC_MoveChild0,
/*294649*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*294652*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*294654*/            OPC_CheckType, MVT::v16i32,
/*294656*/            OPC_MoveParent,
/*294657*/            OPC_MoveParent,
/*294658*/            OPC_CheckType, MVT::v32i16,
/*294660*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294662*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*294665*/            OPC_EmitMergeInputChains1_2,
/*294666*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vpmaddubsw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMADDUBSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294679*/          /*Scope*/ 23, /*->294703*/
/*294680*/            OPC_RecordChild2, // #4 = $src0
/*294681*/            OPC_CheckType, MVT::v32i16,
/*294683*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294685*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*294688*/            OPC_EmitMergeInputChains1_2,
/*294689*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vpmaddubsw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPMADDUBSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294703*/          0, /*End of Scope*/
/*294704*/        /*SwitchOpcode*/ 108|128,2/*364*/, TARGET_VAL(ISD::SMAX),// ->295072
/*294708*/          OPC_Scope, 101, /*->294811*/ // 4 children in Scope
/*294710*/            OPC_RecordChild0, // #1 = $src1
/*294711*/            OPC_MoveChild1,
/*294712*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294715*/            OPC_MoveChild0,
/*294716*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*294719*/            OPC_RecordMemRef,
/*294720*/            OPC_RecordNode, // #2 = 'ld' chained node
/*294721*/            OPC_CheckFoldableChainNode,
/*294722*/            OPC_RecordChild1, // #3 = $src2
/*294723*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294725*/            OPC_CheckPredicate, 9, // Predicate_load
/*294727*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*294729*/            OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->294770
/*294732*/              OPC_MoveParent,
/*294733*/              OPC_MoveParent,
/*294734*/              OPC_MoveParent,
/*294735*/              OPC_MoveChild2,
/*294736*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294739*/              OPC_MoveChild0,
/*294740*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*294743*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*294745*/              OPC_CheckType, MVT::v8i32,
/*294747*/              OPC_MoveParent,
/*294748*/              OPC_MoveParent,
/*294749*/              OPC_CheckType, MVT::v32i8,
/*294751*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*294753*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*294756*/              OPC_EmitMergeInputChains1_2,
/*294757*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294770*/            /*SwitchType*/ 38, MVT::v8i64,// ->294810
/*294772*/              OPC_MoveParent,
/*294773*/              OPC_MoveParent,
/*294774*/              OPC_MoveParent,
/*294775*/              OPC_MoveChild2,
/*294776*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294779*/              OPC_MoveChild0,
/*294780*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*294783*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*294785*/              OPC_CheckType, MVT::v16i32,
/*294787*/              OPC_MoveParent,
/*294788*/              OPC_MoveParent,
/*294789*/              OPC_CheckType, MVT::v32i16,
/*294791*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294793*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*294796*/              OPC_EmitMergeInputChains1_2,
/*294797*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294810*/            0, // EndSwitchType
/*294811*/          /*Scope*/ 102, /*->294914*/
/*294812*/            OPC_MoveChild0,
/*294813*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294816*/            OPC_MoveChild0,
/*294817*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*294820*/            OPC_RecordMemRef,
/*294821*/            OPC_RecordNode, // #1 = 'ld' chained node
/*294822*/            OPC_CheckFoldableChainNode,
/*294823*/            OPC_RecordChild1, // #2 = $src2
/*294824*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294826*/            OPC_CheckPredicate, 9, // Predicate_load
/*294828*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*294830*/            OPC_SwitchType /*2 cases */, 39, MVT::v4i64,// ->294872
/*294833*/              OPC_MoveParent,
/*294834*/              OPC_MoveParent,
/*294835*/              OPC_RecordChild1, // #3 = $src1
/*294836*/              OPC_MoveParent,
/*294837*/              OPC_MoveChild2,
/*294838*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294841*/              OPC_MoveChild0,
/*294842*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*294845*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*294847*/              OPC_CheckType, MVT::v8i32,
/*294849*/              OPC_MoveParent,
/*294850*/              OPC_MoveParent,
/*294851*/              OPC_CheckType, MVT::v32i8,
/*294853*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*294855*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*294858*/              OPC_EmitMergeInputChains1_1,
/*294859*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294872*/            /*SwitchType*/ 39, MVT::v8i64,// ->294913
/*294874*/              OPC_MoveParent,
/*294875*/              OPC_MoveParent,
/*294876*/              OPC_RecordChild1, // #3 = $src1
/*294877*/              OPC_MoveParent,
/*294878*/              OPC_MoveChild2,
/*294879*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294882*/              OPC_MoveChild0,
/*294883*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*294886*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*294888*/              OPC_CheckType, MVT::v16i32,
/*294890*/              OPC_MoveParent,
/*294891*/              OPC_MoveParent,
/*294892*/              OPC_CheckType, MVT::v32i16,
/*294894*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294896*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*294899*/              OPC_EmitMergeInputChains1_1,
/*294900*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294913*/            0, // EndSwitchType
/*294914*/          /*Scope*/ 77, /*->294992*/
/*294915*/            OPC_RecordChild0, // #1 = $src1
/*294916*/            OPC_MoveChild1,
/*294917*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294920*/            OPC_MoveChild0,
/*294921*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*294924*/            OPC_RecordMemRef,
/*294925*/            OPC_RecordNode, // #2 = 'ld' chained node
/*294926*/            OPC_CheckFoldableChainNode,
/*294927*/            OPC_RecordChild1, // #3 = $src2
/*294928*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294930*/            OPC_CheckPredicate, 9, // Predicate_load
/*294932*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*294934*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->294963
/*294937*/              OPC_MoveParent,
/*294938*/              OPC_MoveParent,
/*294939*/              OPC_MoveParent,
/*294940*/              OPC_RecordChild2, // #4 = $src0
/*294941*/              OPC_CheckType, MVT::v32i8,
/*294943*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*294945*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*294948*/              OPC_EmitMergeInputChains1_2,
/*294949*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPMAXSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294963*/            /*SwitchType*/ 26, MVT::v8i64,// ->294991
/*294965*/              OPC_MoveParent,
/*294966*/              OPC_MoveParent,
/*294967*/              OPC_MoveParent,
/*294968*/              OPC_RecordChild2, // #4 = $src0
/*294969*/              OPC_CheckType, MVT::v32i16,
/*294971*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*294973*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*294976*/              OPC_EmitMergeInputChains1_2,
/*294977*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPMAXSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*294991*/            0, // EndSwitchType
/*294992*/          /*Scope*/ 78, /*->295071*/
/*294993*/            OPC_MoveChild0,
/*294994*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*294997*/            OPC_MoveChild0,
/*294998*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295001*/            OPC_RecordMemRef,
/*295002*/            OPC_RecordNode, // #1 = 'ld' chained node
/*295003*/            OPC_CheckFoldableChainNode,
/*295004*/            OPC_RecordChild1, // #2 = $src2
/*295005*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295007*/            OPC_CheckPredicate, 9, // Predicate_load
/*295009*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*295011*/            OPC_SwitchType /*2 cases */, 27, MVT::v4i64,// ->295041
/*295014*/              OPC_MoveParent,
/*295015*/              OPC_MoveParent,
/*295016*/              OPC_RecordChild1, // #3 = $src1
/*295017*/              OPC_MoveParent,
/*295018*/              OPC_RecordChild2, // #4 = $src0
/*295019*/              OPC_CheckType, MVT::v32i8,
/*295021*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*295023*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*295026*/              OPC_EmitMergeInputChains1_1,
/*295027*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPMAXSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295041*/            /*SwitchType*/ 27, MVT::v8i64,// ->295070
/*295043*/              OPC_MoveParent,
/*295044*/              OPC_MoveParent,
/*295045*/              OPC_RecordChild1, // #3 = $src1
/*295046*/              OPC_MoveParent,
/*295047*/              OPC_RecordChild2, // #4 = $src0
/*295048*/              OPC_CheckType, MVT::v32i16,
/*295050*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*295052*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*295055*/              OPC_EmitMergeInputChains1_1,
/*295056*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPMAXSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295070*/            0, // EndSwitchType
/*295071*/          0, /*End of Scope*/
/*295072*/        /*SwitchOpcode*/ 108|128,2/*364*/, TARGET_VAL(ISD::UMAX),// ->295440
/*295076*/          OPC_Scope, 101, /*->295179*/ // 4 children in Scope
/*295078*/            OPC_RecordChild0, // #1 = $src1
/*295079*/            OPC_MoveChild1,
/*295080*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295083*/            OPC_MoveChild0,
/*295084*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295087*/            OPC_RecordMemRef,
/*295088*/            OPC_RecordNode, // #2 = 'ld' chained node
/*295089*/            OPC_CheckFoldableChainNode,
/*295090*/            OPC_RecordChild1, // #3 = $src2
/*295091*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295093*/            OPC_CheckPredicate, 9, // Predicate_load
/*295095*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*295097*/            OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->295138
/*295100*/              OPC_MoveParent,
/*295101*/              OPC_MoveParent,
/*295102*/              OPC_MoveParent,
/*295103*/              OPC_MoveChild2,
/*295104*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295107*/              OPC_MoveChild0,
/*295108*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295111*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295113*/              OPC_CheckType, MVT::v8i32,
/*295115*/              OPC_MoveParent,
/*295116*/              OPC_MoveParent,
/*295117*/              OPC_CheckType, MVT::v32i8,
/*295119*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*295121*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*295124*/              OPC_EmitMergeInputChains1_2,
/*295125*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXUBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295138*/            /*SwitchType*/ 38, MVT::v8i64,// ->295178
/*295140*/              OPC_MoveParent,
/*295141*/              OPC_MoveParent,
/*295142*/              OPC_MoveParent,
/*295143*/              OPC_MoveChild2,
/*295144*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295147*/              OPC_MoveChild0,
/*295148*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295151*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295153*/              OPC_CheckType, MVT::v16i32,
/*295155*/              OPC_MoveParent,
/*295156*/              OPC_MoveParent,
/*295157*/              OPC_CheckType, MVT::v32i16,
/*295159*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*295161*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*295164*/              OPC_EmitMergeInputChains1_2,
/*295165*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295178*/            0, // EndSwitchType
/*295179*/          /*Scope*/ 102, /*->295282*/
/*295180*/            OPC_MoveChild0,
/*295181*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295184*/            OPC_MoveChild0,
/*295185*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295188*/            OPC_RecordMemRef,
/*295189*/            OPC_RecordNode, // #1 = 'ld' chained node
/*295190*/            OPC_CheckFoldableChainNode,
/*295191*/            OPC_RecordChild1, // #2 = $src2
/*295192*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295194*/            OPC_CheckPredicate, 9, // Predicate_load
/*295196*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*295198*/            OPC_SwitchType /*2 cases */, 39, MVT::v4i64,// ->295240
/*295201*/              OPC_MoveParent,
/*295202*/              OPC_MoveParent,
/*295203*/              OPC_RecordChild1, // #3 = $src1
/*295204*/              OPC_MoveParent,
/*295205*/              OPC_MoveChild2,
/*295206*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295209*/              OPC_MoveChild0,
/*295210*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295213*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295215*/              OPC_CheckType, MVT::v8i32,
/*295217*/              OPC_MoveParent,
/*295218*/              OPC_MoveParent,
/*295219*/              OPC_CheckType, MVT::v32i8,
/*295221*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*295223*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*295226*/              OPC_EmitMergeInputChains1_1,
/*295227*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXUBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295240*/            /*SwitchType*/ 39, MVT::v8i64,// ->295281
/*295242*/              OPC_MoveParent,
/*295243*/              OPC_MoveParent,
/*295244*/              OPC_RecordChild1, // #3 = $src1
/*295245*/              OPC_MoveParent,
/*295246*/              OPC_MoveChild2,
/*295247*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295250*/              OPC_MoveChild0,
/*295251*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295254*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295256*/              OPC_CheckType, MVT::v16i32,
/*295258*/              OPC_MoveParent,
/*295259*/              OPC_MoveParent,
/*295260*/              OPC_CheckType, MVT::v32i16,
/*295262*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*295264*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*295267*/              OPC_EmitMergeInputChains1_1,
/*295268*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMAXUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295281*/            0, // EndSwitchType
/*295282*/          /*Scope*/ 77, /*->295360*/
/*295283*/            OPC_RecordChild0, // #1 = $src1
/*295284*/            OPC_MoveChild1,
/*295285*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295288*/            OPC_MoveChild0,
/*295289*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295292*/            OPC_RecordMemRef,
/*295293*/            OPC_RecordNode, // #2 = 'ld' chained node
/*295294*/            OPC_CheckFoldableChainNode,
/*295295*/            OPC_RecordChild1, // #3 = $src2
/*295296*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295298*/            OPC_CheckPredicate, 9, // Predicate_load
/*295300*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*295302*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->295331
/*295305*/              OPC_MoveParent,
/*295306*/              OPC_MoveParent,
/*295307*/              OPC_MoveParent,
/*295308*/              OPC_RecordChild2, // #4 = $src0
/*295309*/              OPC_CheckType, MVT::v32i8,
/*295311*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*295313*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*295316*/              OPC_EmitMergeInputChains1_2,
/*295317*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPMAXUBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295331*/            /*SwitchType*/ 26, MVT::v8i64,// ->295359
/*295333*/              OPC_MoveParent,
/*295334*/              OPC_MoveParent,
/*295335*/              OPC_MoveParent,
/*295336*/              OPC_RecordChild2, // #4 = $src0
/*295337*/              OPC_CheckType, MVT::v32i16,
/*295339*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*295341*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*295344*/              OPC_EmitMergeInputChains1_2,
/*295345*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPMAXUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295359*/            0, // EndSwitchType
/*295360*/          /*Scope*/ 78, /*->295439*/
/*295361*/            OPC_MoveChild0,
/*295362*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295365*/            OPC_MoveChild0,
/*295366*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295369*/            OPC_RecordMemRef,
/*295370*/            OPC_RecordNode, // #1 = 'ld' chained node
/*295371*/            OPC_CheckFoldableChainNode,
/*295372*/            OPC_RecordChild1, // #2 = $src2
/*295373*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295375*/            OPC_CheckPredicate, 9, // Predicate_load
/*295377*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*295379*/            OPC_SwitchType /*2 cases */, 27, MVT::v4i64,// ->295409
/*295382*/              OPC_MoveParent,
/*295383*/              OPC_MoveParent,
/*295384*/              OPC_RecordChild1, // #3 = $src1
/*295385*/              OPC_MoveParent,
/*295386*/              OPC_RecordChild2, // #4 = $src0
/*295387*/              OPC_CheckType, MVT::v32i8,
/*295389*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*295391*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*295394*/              OPC_EmitMergeInputChains1_1,
/*295395*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPMAXUBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295409*/            /*SwitchType*/ 27, MVT::v8i64,// ->295438
/*295411*/              OPC_MoveParent,
/*295412*/              OPC_MoveParent,
/*295413*/              OPC_RecordChild1, // #3 = $src1
/*295414*/              OPC_MoveParent,
/*295415*/              OPC_RecordChild2, // #4 = $src0
/*295416*/              OPC_CheckType, MVT::v32i16,
/*295418*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*295420*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*295423*/              OPC_EmitMergeInputChains1_1,
/*295424*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPMAXUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295438*/            0, // EndSwitchType
/*295439*/          0, /*End of Scope*/
/*295440*/        /*SwitchOpcode*/ 108|128,2/*364*/, TARGET_VAL(ISD::SMIN),// ->295808
/*295444*/          OPC_Scope, 101, /*->295547*/ // 4 children in Scope
/*295446*/            OPC_RecordChild0, // #1 = $src1
/*295447*/            OPC_MoveChild1,
/*295448*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295451*/            OPC_MoveChild0,
/*295452*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295455*/            OPC_RecordMemRef,
/*295456*/            OPC_RecordNode, // #2 = 'ld' chained node
/*295457*/            OPC_CheckFoldableChainNode,
/*295458*/            OPC_RecordChild1, // #3 = $src2
/*295459*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295461*/            OPC_CheckPredicate, 9, // Predicate_load
/*295463*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*295465*/            OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->295506
/*295468*/              OPC_MoveParent,
/*295469*/              OPC_MoveParent,
/*295470*/              OPC_MoveParent,
/*295471*/              OPC_MoveChild2,
/*295472*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295475*/              OPC_MoveChild0,
/*295476*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295479*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295481*/              OPC_CheckType, MVT::v8i32,
/*295483*/              OPC_MoveParent,
/*295484*/              OPC_MoveParent,
/*295485*/              OPC_CheckType, MVT::v32i8,
/*295487*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*295489*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*295492*/              OPC_EmitMergeInputChains1_2,
/*295493*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295506*/            /*SwitchType*/ 38, MVT::v8i64,// ->295546
/*295508*/              OPC_MoveParent,
/*295509*/              OPC_MoveParent,
/*295510*/              OPC_MoveParent,
/*295511*/              OPC_MoveChild2,
/*295512*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295515*/              OPC_MoveChild0,
/*295516*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295519*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295521*/              OPC_CheckType, MVT::v16i32,
/*295523*/              OPC_MoveParent,
/*295524*/              OPC_MoveParent,
/*295525*/              OPC_CheckType, MVT::v32i16,
/*295527*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*295529*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*295532*/              OPC_EmitMergeInputChains1_2,
/*295533*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295546*/            0, // EndSwitchType
/*295547*/          /*Scope*/ 102, /*->295650*/
/*295548*/            OPC_MoveChild0,
/*295549*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295552*/            OPC_MoveChild0,
/*295553*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295556*/            OPC_RecordMemRef,
/*295557*/            OPC_RecordNode, // #1 = 'ld' chained node
/*295558*/            OPC_CheckFoldableChainNode,
/*295559*/            OPC_RecordChild1, // #2 = $src2
/*295560*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295562*/            OPC_CheckPredicate, 9, // Predicate_load
/*295564*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*295566*/            OPC_SwitchType /*2 cases */, 39, MVT::v4i64,// ->295608
/*295569*/              OPC_MoveParent,
/*295570*/              OPC_MoveParent,
/*295571*/              OPC_RecordChild1, // #3 = $src1
/*295572*/              OPC_MoveParent,
/*295573*/              OPC_MoveChild2,
/*295574*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295577*/              OPC_MoveChild0,
/*295578*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295581*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295583*/              OPC_CheckType, MVT::v8i32,
/*295585*/              OPC_MoveParent,
/*295586*/              OPC_MoveParent,
/*295587*/              OPC_CheckType, MVT::v32i8,
/*295589*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*295591*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*295594*/              OPC_EmitMergeInputChains1_1,
/*295595*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295608*/            /*SwitchType*/ 39, MVT::v8i64,// ->295649
/*295610*/              OPC_MoveParent,
/*295611*/              OPC_MoveParent,
/*295612*/              OPC_RecordChild1, // #3 = $src1
/*295613*/              OPC_MoveParent,
/*295614*/              OPC_MoveChild2,
/*295615*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295618*/              OPC_MoveChild0,
/*295619*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295622*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295624*/              OPC_CheckType, MVT::v16i32,
/*295626*/              OPC_MoveParent,
/*295627*/              OPC_MoveParent,
/*295628*/              OPC_CheckType, MVT::v32i16,
/*295630*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*295632*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*295635*/              OPC_EmitMergeInputChains1_1,
/*295636*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295649*/            0, // EndSwitchType
/*295650*/          /*Scope*/ 77, /*->295728*/
/*295651*/            OPC_RecordChild0, // #1 = $src1
/*295652*/            OPC_MoveChild1,
/*295653*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295656*/            OPC_MoveChild0,
/*295657*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295660*/            OPC_RecordMemRef,
/*295661*/            OPC_RecordNode, // #2 = 'ld' chained node
/*295662*/            OPC_CheckFoldableChainNode,
/*295663*/            OPC_RecordChild1, // #3 = $src2
/*295664*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295666*/            OPC_CheckPredicate, 9, // Predicate_load
/*295668*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*295670*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->295699
/*295673*/              OPC_MoveParent,
/*295674*/              OPC_MoveParent,
/*295675*/              OPC_MoveParent,
/*295676*/              OPC_RecordChild2, // #4 = $src0
/*295677*/              OPC_CheckType, MVT::v32i8,
/*295679*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*295681*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*295684*/              OPC_EmitMergeInputChains1_2,
/*295685*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPMINSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295699*/            /*SwitchType*/ 26, MVT::v8i64,// ->295727
/*295701*/              OPC_MoveParent,
/*295702*/              OPC_MoveParent,
/*295703*/              OPC_MoveParent,
/*295704*/              OPC_RecordChild2, // #4 = $src0
/*295705*/              OPC_CheckType, MVT::v32i16,
/*295707*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*295709*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*295712*/              OPC_EmitMergeInputChains1_2,
/*295713*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPMINSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295727*/            0, // EndSwitchType
/*295728*/          /*Scope*/ 78, /*->295807*/
/*295729*/            OPC_MoveChild0,
/*295730*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295733*/            OPC_MoveChild0,
/*295734*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295737*/            OPC_RecordMemRef,
/*295738*/            OPC_RecordNode, // #1 = 'ld' chained node
/*295739*/            OPC_CheckFoldableChainNode,
/*295740*/            OPC_RecordChild1, // #2 = $src2
/*295741*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295743*/            OPC_CheckPredicate, 9, // Predicate_load
/*295745*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*295747*/            OPC_SwitchType /*2 cases */, 27, MVT::v4i64,// ->295777
/*295750*/              OPC_MoveParent,
/*295751*/              OPC_MoveParent,
/*295752*/              OPC_RecordChild1, // #3 = $src1
/*295753*/              OPC_MoveParent,
/*295754*/              OPC_RecordChild2, // #4 = $src0
/*295755*/              OPC_CheckType, MVT::v32i8,
/*295757*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*295759*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*295762*/              OPC_EmitMergeInputChains1_1,
/*295763*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPMINSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295777*/            /*SwitchType*/ 27, MVT::v8i64,// ->295806
/*295779*/              OPC_MoveParent,
/*295780*/              OPC_MoveParent,
/*295781*/              OPC_RecordChild1, // #3 = $src1
/*295782*/              OPC_MoveParent,
/*295783*/              OPC_RecordChild2, // #4 = $src0
/*295784*/              OPC_CheckType, MVT::v32i16,
/*295786*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*295788*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*295791*/              OPC_EmitMergeInputChains1_1,
/*295792*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPMINSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295806*/            0, // EndSwitchType
/*295807*/          0, /*End of Scope*/
/*295808*/        /*SwitchOpcode*/ 108|128,2/*364*/, TARGET_VAL(ISD::UMIN),// ->296176
/*295812*/          OPC_Scope, 101, /*->295915*/ // 4 children in Scope
/*295814*/            OPC_RecordChild0, // #1 = $src1
/*295815*/            OPC_MoveChild1,
/*295816*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295819*/            OPC_MoveChild0,
/*295820*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295823*/            OPC_RecordMemRef,
/*295824*/            OPC_RecordNode, // #2 = 'ld' chained node
/*295825*/            OPC_CheckFoldableChainNode,
/*295826*/            OPC_RecordChild1, // #3 = $src2
/*295827*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295829*/            OPC_CheckPredicate, 9, // Predicate_load
/*295831*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*295833*/            OPC_SwitchType /*2 cases */, 38, MVT::v4i64,// ->295874
/*295836*/              OPC_MoveParent,
/*295837*/              OPC_MoveParent,
/*295838*/              OPC_MoveParent,
/*295839*/              OPC_MoveChild2,
/*295840*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295843*/              OPC_MoveChild0,
/*295844*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295847*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295849*/              OPC_CheckType, MVT::v8i32,
/*295851*/              OPC_MoveParent,
/*295852*/              OPC_MoveParent,
/*295853*/              OPC_CheckType, MVT::v32i8,
/*295855*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*295857*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*295860*/              OPC_EmitMergeInputChains1_2,
/*295861*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINUBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295874*/            /*SwitchType*/ 38, MVT::v8i64,// ->295914
/*295876*/              OPC_MoveParent,
/*295877*/              OPC_MoveParent,
/*295878*/              OPC_MoveParent,
/*295879*/              OPC_MoveChild2,
/*295880*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295883*/              OPC_MoveChild0,
/*295884*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295887*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295889*/              OPC_CheckType, MVT::v16i32,
/*295891*/              OPC_MoveParent,
/*295892*/              OPC_MoveParent,
/*295893*/              OPC_CheckType, MVT::v32i16,
/*295895*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*295897*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*295900*/              OPC_EmitMergeInputChains1_2,
/*295901*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295914*/            0, // EndSwitchType
/*295915*/          /*Scope*/ 102, /*->296018*/
/*295916*/            OPC_MoveChild0,
/*295917*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295920*/            OPC_MoveChild0,
/*295921*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295924*/            OPC_RecordMemRef,
/*295925*/            OPC_RecordNode, // #1 = 'ld' chained node
/*295926*/            OPC_CheckFoldableChainNode,
/*295927*/            OPC_RecordChild1, // #2 = $src2
/*295928*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295930*/            OPC_CheckPredicate, 9, // Predicate_load
/*295932*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*295934*/            OPC_SwitchType /*2 cases */, 39, MVT::v4i64,// ->295976
/*295937*/              OPC_MoveParent,
/*295938*/              OPC_MoveParent,
/*295939*/              OPC_RecordChild1, // #3 = $src1
/*295940*/              OPC_MoveParent,
/*295941*/              OPC_MoveChild2,
/*295942*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295945*/              OPC_MoveChild0,
/*295946*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295949*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295951*/              OPC_CheckType, MVT::v8i32,
/*295953*/              OPC_MoveParent,
/*295954*/              OPC_MoveParent,
/*295955*/              OPC_CheckType, MVT::v32i8,
/*295957*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*295959*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*295962*/              OPC_EmitMergeInputChains1_1,
/*295963*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINUBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*295976*/            /*SwitchType*/ 39, MVT::v8i64,// ->296017
/*295978*/              OPC_MoveParent,
/*295979*/              OPC_MoveParent,
/*295980*/              OPC_RecordChild1, // #3 = $src1
/*295981*/              OPC_MoveParent,
/*295982*/              OPC_MoveChild2,
/*295983*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*295986*/              OPC_MoveChild0,
/*295987*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*295990*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*295992*/              OPC_CheckType, MVT::v16i32,
/*295994*/              OPC_MoveParent,
/*295995*/              OPC_MoveParent,
/*295996*/              OPC_CheckType, MVT::v32i16,
/*295998*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296000*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296003*/              OPC_EmitMergeInputChains1_1,
/*296004*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPMINUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296017*/            0, // EndSwitchType
/*296018*/          /*Scope*/ 77, /*->296096*/
/*296019*/            OPC_RecordChild0, // #1 = $src1
/*296020*/            OPC_MoveChild1,
/*296021*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296024*/            OPC_MoveChild0,
/*296025*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296028*/            OPC_RecordMemRef,
/*296029*/            OPC_RecordNode, // #2 = 'ld' chained node
/*296030*/            OPC_CheckFoldableChainNode,
/*296031*/            OPC_RecordChild1, // #3 = $src2
/*296032*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296034*/            OPC_CheckPredicate, 9, // Predicate_load
/*296036*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*296038*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->296067
/*296041*/              OPC_MoveParent,
/*296042*/              OPC_MoveParent,
/*296043*/              OPC_MoveParent,
/*296044*/              OPC_RecordChild2, // #4 = $src0
/*296045*/              OPC_CheckType, MVT::v32i8,
/*296047*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*296049*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*296052*/              OPC_EmitMergeInputChains1_2,
/*296053*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPMINUBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296067*/            /*SwitchType*/ 26, MVT::v8i64,// ->296095
/*296069*/              OPC_MoveParent,
/*296070*/              OPC_MoveParent,
/*296071*/              OPC_MoveParent,
/*296072*/              OPC_RecordChild2, // #4 = $src0
/*296073*/              OPC_CheckType, MVT::v32i16,
/*296075*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296077*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*296080*/              OPC_EmitMergeInputChains1_2,
/*296081*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPMINUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296095*/            0, // EndSwitchType
/*296096*/          /*Scope*/ 78, /*->296175*/
/*296097*/            OPC_MoveChild0,
/*296098*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296101*/            OPC_MoveChild0,
/*296102*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296105*/            OPC_RecordMemRef,
/*296106*/            OPC_RecordNode, // #1 = 'ld' chained node
/*296107*/            OPC_CheckFoldableChainNode,
/*296108*/            OPC_RecordChild1, // #2 = $src2
/*296109*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296111*/            OPC_CheckPredicate, 9, // Predicate_load
/*296113*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*296115*/            OPC_SwitchType /*2 cases */, 27, MVT::v4i64,// ->296145
/*296118*/              OPC_MoveParent,
/*296119*/              OPC_MoveParent,
/*296120*/              OPC_RecordChild1, // #3 = $src1
/*296121*/              OPC_MoveParent,
/*296122*/              OPC_RecordChild2, // #4 = $src0
/*296123*/              OPC_CheckType, MVT::v32i8,
/*296125*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*296127*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*296130*/              OPC_EmitMergeInputChains1_1,
/*296131*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPMINUBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296145*/            /*SwitchType*/ 27, MVT::v8i64,// ->296174
/*296147*/              OPC_MoveParent,
/*296148*/              OPC_MoveParent,
/*296149*/              OPC_RecordChild1, // #3 = $src1
/*296150*/              OPC_MoveParent,
/*296151*/              OPC_RecordChild2, // #4 = $src0
/*296152*/              OPC_CheckType, MVT::v32i16,
/*296154*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296156*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*296159*/              OPC_EmitMergeInputChains1_1,
/*296160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPMINUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296174*/            0, // EndSwitchType
/*296175*/          0, /*End of Scope*/
/*296176*/        /*SwitchOpcode*/ 88, TARGET_VAL(ISD::SHL),// ->296267
/*296179*/          OPC_RecordChild0, // #1 = $src1
/*296180*/          OPC_MoveChild1,
/*296181*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296184*/          OPC_MoveChild0,
/*296185*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296188*/          OPC_RecordMemRef,
/*296189*/          OPC_RecordNode, // #2 = 'ld' chained node
/*296190*/          OPC_CheckFoldableChainNode,
/*296191*/          OPC_RecordChild1, // #3 = $src2
/*296192*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296194*/          OPC_CheckPredicate, 9, // Predicate_load
/*296196*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*296198*/          OPC_CheckType, MVT::v8i64,
/*296200*/          OPC_MoveParent,
/*296201*/          OPC_CheckType, MVT::v32i16,
/*296203*/          OPC_MoveParent,
/*296204*/          OPC_MoveParent,
/*296205*/          OPC_Scope, 35, /*->296242*/ // 2 children in Scope
/*296207*/            OPC_MoveChild2,
/*296208*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296211*/            OPC_MoveChild0,
/*296212*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*296215*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*296217*/            OPC_CheckType, MVT::v16i32,
/*296219*/            OPC_MoveParent,
/*296220*/            OPC_MoveParent,
/*296221*/            OPC_CheckType, MVT::v32i16,
/*296223*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296225*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296228*/            OPC_EmitMergeInputChains1_2,
/*296229*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (shl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSLLVWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296242*/          /*Scope*/ 23, /*->296266*/
/*296243*/            OPC_RecordChild2, // #4 = $src0
/*296244*/            OPC_CheckType, MVT::v32i16,
/*296246*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296248*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*296251*/            OPC_EmitMergeInputChains1_2,
/*296252*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (shl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPSLLVWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296266*/          0, /*End of Scope*/
/*296267*/        /*SwitchOpcode*/ 88, TARGET_VAL(ISD::SRA),// ->296358
/*296270*/          OPC_RecordChild0, // #1 = $src1
/*296271*/          OPC_MoveChild1,
/*296272*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296275*/          OPC_MoveChild0,
/*296276*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296279*/          OPC_RecordMemRef,
/*296280*/          OPC_RecordNode, // #2 = 'ld' chained node
/*296281*/          OPC_CheckFoldableChainNode,
/*296282*/          OPC_RecordChild1, // #3 = $src2
/*296283*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296285*/          OPC_CheckPredicate, 9, // Predicate_load
/*296287*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*296289*/          OPC_CheckType, MVT::v8i64,
/*296291*/          OPC_MoveParent,
/*296292*/          OPC_CheckType, MVT::v32i16,
/*296294*/          OPC_MoveParent,
/*296295*/          OPC_MoveParent,
/*296296*/          OPC_Scope, 35, /*->296333*/ // 2 children in Scope
/*296298*/            OPC_MoveChild2,
/*296299*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296302*/            OPC_MoveChild0,
/*296303*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*296306*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*296308*/            OPC_CheckType, MVT::v16i32,
/*296310*/            OPC_MoveParent,
/*296311*/            OPC_MoveParent,
/*296312*/            OPC_CheckType, MVT::v32i16,
/*296314*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296316*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296319*/            OPC_EmitMergeInputChains1_2,
/*296320*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (sra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSRAVWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296333*/          /*Scope*/ 23, /*->296357*/
/*296334*/            OPC_RecordChild2, // #4 = $src0
/*296335*/            OPC_CheckType, MVT::v32i16,
/*296337*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296339*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*296342*/            OPC_EmitMergeInputChains1_2,
/*296343*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (sra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPSRAVWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296357*/          0, /*End of Scope*/
/*296358*/        /*SwitchOpcode*/ 88, TARGET_VAL(ISD::SRL),// ->296449
/*296361*/          OPC_RecordChild0, // #1 = $src1
/*296362*/          OPC_MoveChild1,
/*296363*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296366*/          OPC_MoveChild0,
/*296367*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296370*/          OPC_RecordMemRef,
/*296371*/          OPC_RecordNode, // #2 = 'ld' chained node
/*296372*/          OPC_CheckFoldableChainNode,
/*296373*/          OPC_RecordChild1, // #3 = $src2
/*296374*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296376*/          OPC_CheckPredicate, 9, // Predicate_load
/*296378*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*296380*/          OPC_CheckType, MVT::v8i64,
/*296382*/          OPC_MoveParent,
/*296383*/          OPC_CheckType, MVT::v32i16,
/*296385*/          OPC_MoveParent,
/*296386*/          OPC_MoveParent,
/*296387*/          OPC_Scope, 35, /*->296424*/ // 2 children in Scope
/*296389*/            OPC_MoveChild2,
/*296390*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296393*/            OPC_MoveChild0,
/*296394*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*296397*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*296399*/            OPC_CheckType, MVT::v16i32,
/*296401*/            OPC_MoveParent,
/*296402*/            OPC_MoveParent,
/*296403*/            OPC_CheckType, MVT::v32i16,
/*296405*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296407*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296410*/            OPC_EmitMergeInputChains1_2,
/*296411*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (srl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSRLVWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296424*/          /*Scope*/ 23, /*->296448*/
/*296425*/            OPC_RecordChild2, // #4 = $src0
/*296426*/            OPC_CheckType, MVT::v32i16,
/*296428*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296430*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*296433*/            OPC_EmitMergeInputChains1_2,
/*296434*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (srl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPSRLVWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296448*/          0, /*End of Scope*/
/*296449*/        /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VSRAV),// ->296538
/*296452*/          OPC_RecordChild0, // #1 = $src1
/*296453*/          OPC_MoveChild1,
/*296454*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296457*/          OPC_MoveChild0,
/*296458*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296461*/          OPC_RecordMemRef,
/*296462*/          OPC_RecordNode, // #2 = 'ld' chained node
/*296463*/          OPC_CheckFoldableChainNode,
/*296464*/          OPC_RecordChild1, // #3 = $src2
/*296465*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296467*/          OPC_CheckPredicate, 9, // Predicate_load
/*296469*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*296471*/          OPC_CheckType, MVT::v8i64,
/*296473*/          OPC_MoveParent,
/*296474*/          OPC_MoveParent,
/*296475*/          OPC_MoveParent,
/*296476*/          OPC_Scope, 35, /*->296513*/ // 2 children in Scope
/*296478*/            OPC_MoveChild2,
/*296479*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296482*/            OPC_MoveChild0,
/*296483*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*296486*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*296488*/            OPC_CheckType, MVT::v16i32,
/*296490*/            OPC_MoveParent,
/*296491*/            OPC_MoveParent,
/*296492*/            OPC_CheckType, MVT::v32i16,
/*296494*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296496*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296499*/            OPC_EmitMergeInputChains1_2,
/*296500*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrav:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSRAVWZrmkz:{ *:[v32i16] } VK32:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296513*/          /*Scope*/ 23, /*->296537*/
/*296514*/            OPC_RecordChild2, // #4 = $src0
/*296515*/            OPC_CheckType, MVT::v32i16,
/*296517*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296519*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*296522*/            OPC_EmitMergeInputChains1_2,
/*296523*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrav:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPSRAVWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296537*/          0, /*End of Scope*/
/*296538*/        /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(X86ISD::VPERMV),// ->296697
/*296542*/          OPC_RecordChild0, // #1 = $src1
/*296543*/          OPC_MoveChild1,
/*296544*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296547*/          OPC_MoveChild0,
/*296548*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296551*/          OPC_RecordMemRef,
/*296552*/          OPC_RecordNode, // #2 = 'ld' chained node
/*296553*/          OPC_CheckFoldableChainNode,
/*296554*/          OPC_RecordChild1, // #3 = $src2
/*296555*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296557*/          OPC_CheckPredicate, 9, // Predicate_load
/*296559*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*296561*/          OPC_SwitchType /*2 cases */, 65, MVT::v8i64,// ->296629
/*296564*/            OPC_MoveParent,
/*296565*/            OPC_MoveParent,
/*296566*/            OPC_MoveParent,
/*296567*/            OPC_Scope, 35, /*->296604*/ // 2 children in Scope
/*296569*/              OPC_MoveChild2,
/*296570*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296573*/              OPC_MoveChild0,
/*296574*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*296577*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*296579*/              OPC_CheckType, MVT::v16i32,
/*296581*/              OPC_MoveParent,
/*296582*/              OPC_MoveParent,
/*296583*/              OPC_CheckType, MVT::v32i16,
/*296585*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296587*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296590*/              OPC_EmitMergeInputChains1_2,
/*296591*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296604*/            /*Scope*/ 23, /*->296628*/
/*296605*/              OPC_RecordChild2, // #4 = $src0
/*296606*/              OPC_CheckType, MVT::v32i16,
/*296608*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296610*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*296613*/              OPC_EmitMergeInputChains1_2,
/*296614*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPERMWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296628*/            0, /*End of Scope*/
/*296629*/          /*SwitchType*/ 65, MVT::v4i64,// ->296696
/*296631*/            OPC_MoveParent,
/*296632*/            OPC_MoveParent,
/*296633*/            OPC_MoveParent,
/*296634*/            OPC_Scope, 35, /*->296671*/ // 2 children in Scope
/*296636*/              OPC_MoveChild2,
/*296637*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296640*/              OPC_MoveChild0,
/*296641*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*296644*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*296646*/              OPC_CheckType, MVT::v8i32,
/*296648*/              OPC_MoveParent,
/*296649*/              OPC_MoveParent,
/*296650*/              OPC_CheckType, MVT::v32i8,
/*296652*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*296654*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296657*/              OPC_EmitMergeInputChains1_2,
/*296658*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermv:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296671*/            /*Scope*/ 23, /*->296695*/
/*296672*/              OPC_RecordChild2, // #4 = $src0
/*296673*/              OPC_CheckType, MVT::v32i8,
/*296675*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*296677*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*296680*/              OPC_EmitMergeInputChains1_2,
/*296681*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermv:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPERMBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296695*/            0, /*End of Scope*/
/*296696*/          0, // EndSwitchType
/*296697*/        /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::PSHUFB),// ->296786
/*296700*/          OPC_RecordChild0, // #1 = $src1
/*296701*/          OPC_MoveChild1,
/*296702*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296705*/          OPC_MoveChild0,
/*296706*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296709*/          OPC_RecordMemRef,
/*296710*/          OPC_RecordNode, // #2 = 'ld' chained node
/*296711*/          OPC_CheckFoldableChainNode,
/*296712*/          OPC_RecordChild1, // #3 = $src2
/*296713*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296715*/          OPC_CheckPredicate, 9, // Predicate_load
/*296717*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*296719*/          OPC_CheckType, MVT::v4i64,
/*296721*/          OPC_MoveParent,
/*296722*/          OPC_MoveParent,
/*296723*/          OPC_MoveParent,
/*296724*/          OPC_Scope, 35, /*->296761*/ // 2 children in Scope
/*296726*/            OPC_MoveChild2,
/*296727*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296730*/            OPC_MoveChild0,
/*296731*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*296734*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*296736*/            OPC_CheckType, MVT::v8i32,
/*296738*/            OPC_MoveParent,
/*296739*/            OPC_MoveParent,
/*296740*/            OPC_CheckType, MVT::v32i8,
/*296742*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*296744*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296747*/            OPC_EmitMergeInputChains1_2,
/*296748*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86pshufb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSHUFBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296761*/          /*Scope*/ 23, /*->296785*/
/*296762*/            OPC_RecordChild2, // #4 = $src0
/*296763*/            OPC_CheckType, MVT::v32i8,
/*296765*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*296767*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*296770*/            OPC_EmitMergeInputChains1_2,
/*296771*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86pshufb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                      // Dst: (VPSHUFBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296785*/          0, /*End of Scope*/
/*296786*/        /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::ABS),// ->296940
/*296790*/          OPC_MoveChild0,
/*296791*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296794*/          OPC_MoveChild0,
/*296795*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296798*/          OPC_RecordMemRef,
/*296799*/          OPC_RecordNode, // #1 = 'ld' chained node
/*296800*/          OPC_CheckFoldableChainNode,
/*296801*/          OPC_RecordChild1, // #2 = $src1
/*296802*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296804*/          OPC_CheckPredicate, 9, // Predicate_load
/*296806*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*296808*/          OPC_SwitchType /*2 cases */, 63, MVT::v8i64,// ->296874
/*296811*/            OPC_MoveParent,
/*296812*/            OPC_MoveParent,
/*296813*/            OPC_MoveParent,
/*296814*/            OPC_Scope, 34, /*->296850*/ // 2 children in Scope
/*296816*/              OPC_MoveChild2,
/*296817*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296820*/              OPC_MoveChild0,
/*296821*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*296824*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*296826*/              OPC_CheckType, MVT::v16i32,
/*296828*/              OPC_MoveParent,
/*296829*/              OPC_MoveParent,
/*296830*/              OPC_CheckType, MVT::v32i16,
/*296832*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296834*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*296837*/              OPC_EmitMergeInputChains1_1,
/*296838*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (abs:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPABSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*296850*/            /*Scope*/ 22, /*->296873*/
/*296851*/              OPC_RecordChild2, // #3 = $src0
/*296852*/              OPC_CheckType, MVT::v32i16,
/*296854*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*296856*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*296859*/              OPC_EmitMergeInputChains1_1,
/*296860*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (abs:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPABSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*296873*/            0, /*End of Scope*/
/*296874*/          /*SwitchType*/ 63, MVT::v4i64,// ->296939
/*296876*/            OPC_MoveParent,
/*296877*/            OPC_MoveParent,
/*296878*/            OPC_MoveParent,
/*296879*/            OPC_Scope, 34, /*->296915*/ // 2 children in Scope
/*296881*/              OPC_MoveChild2,
/*296882*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296885*/              OPC_MoveChild0,
/*296886*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*296889*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*296891*/              OPC_CheckType, MVT::v8i32,
/*296893*/              OPC_MoveParent,
/*296894*/              OPC_MoveParent,
/*296895*/              OPC_CheckType, MVT::v32i8,
/*296897*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*296899*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*296902*/              OPC_EmitMergeInputChains1_1,
/*296903*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (abs:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPABSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*296915*/            /*Scope*/ 22, /*->296938*/
/*296916*/              OPC_RecordChild2, // #3 = $src0
/*296917*/              OPC_CheckType, MVT::v32i8,
/*296919*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*296921*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*296924*/              OPC_EmitMergeInputChains1_1,
/*296925*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (abs:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPABSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*296938*/            0, /*End of Scope*/
/*296939*/          0, // EndSwitchType
/*296940*/        /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(X86ISD::UNPCKL),// ->297099
/*296944*/          OPC_RecordChild0, // #1 = $src1
/*296945*/          OPC_MoveChild1,
/*296946*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296949*/          OPC_MoveChild0,
/*296950*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296953*/          OPC_RecordMemRef,
/*296954*/          OPC_RecordNode, // #2 = 'ld' chained node
/*296955*/          OPC_CheckFoldableChainNode,
/*296956*/          OPC_RecordChild1, // #3 = $src2
/*296957*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296959*/          OPC_CheckPredicate, 9, // Predicate_load
/*296961*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*296963*/          OPC_SwitchType /*2 cases */, 65, MVT::v4i64,// ->297031
/*296966*/            OPC_MoveParent,
/*296967*/            OPC_MoveParent,
/*296968*/            OPC_MoveParent,
/*296969*/            OPC_Scope, 35, /*->297006*/ // 2 children in Scope
/*296971*/              OPC_MoveChild2,
/*296972*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*296975*/              OPC_MoveChild0,
/*296976*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*296979*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*296981*/              OPC_CheckType, MVT::v8i32,
/*296983*/              OPC_MoveParent,
/*296984*/              OPC_MoveParent,
/*296985*/              OPC_CheckType, MVT::v32i8,
/*296987*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*296989*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296992*/              OPC_EmitMergeInputChains1_2,
/*296993*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckl:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPUNPCKLBWZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297006*/            /*Scope*/ 23, /*->297030*/
/*297007*/              OPC_RecordChild2, // #4 = $src0
/*297008*/              OPC_CheckType, MVT::v32i8,
/*297010*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*297012*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297015*/              OPC_EmitMergeInputChains1_2,
/*297016*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckl:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPUNPCKLBWZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297030*/            0, /*End of Scope*/
/*297031*/          /*SwitchType*/ 65, MVT::v8i64,// ->297098
/*297033*/            OPC_MoveParent,
/*297034*/            OPC_MoveParent,
/*297035*/            OPC_MoveParent,
/*297036*/            OPC_Scope, 35, /*->297073*/ // 2 children in Scope
/*297038*/              OPC_MoveChild2,
/*297039*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297042*/              OPC_MoveChild0,
/*297043*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297046*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297048*/              OPC_CheckType, MVT::v16i32,
/*297050*/              OPC_MoveParent,
/*297051*/              OPC_MoveParent,
/*297052*/              OPC_CheckType, MVT::v32i16,
/*297054*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*297056*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*297059*/              OPC_EmitMergeInputChains1_2,
/*297060*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPUNPCKLWDZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297073*/            /*Scope*/ 23, /*->297097*/
/*297074*/              OPC_RecordChild2, // #4 = $src0
/*297075*/              OPC_CheckType, MVT::v32i16,
/*297077*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*297079*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297082*/              OPC_EmitMergeInputChains1_2,
/*297083*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPUNPCKLWDZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297097*/            0, /*End of Scope*/
/*297098*/          0, // EndSwitchType
/*297099*/        /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(X86ISD::UNPCKH),// ->297258
/*297103*/          OPC_RecordChild0, // #1 = $src1
/*297104*/          OPC_MoveChild1,
/*297105*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297108*/          OPC_MoveChild0,
/*297109*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*297112*/          OPC_RecordMemRef,
/*297113*/          OPC_RecordNode, // #2 = 'ld' chained node
/*297114*/          OPC_CheckFoldableChainNode,
/*297115*/          OPC_RecordChild1, // #3 = $src2
/*297116*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*297118*/          OPC_CheckPredicate, 9, // Predicate_load
/*297120*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*297122*/          OPC_SwitchType /*2 cases */, 65, MVT::v4i64,// ->297190
/*297125*/            OPC_MoveParent,
/*297126*/            OPC_MoveParent,
/*297127*/            OPC_MoveParent,
/*297128*/            OPC_Scope, 35, /*->297165*/ // 2 children in Scope
/*297130*/              OPC_MoveChild2,
/*297131*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297134*/              OPC_MoveChild0,
/*297135*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297138*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297140*/              OPC_CheckType, MVT::v8i32,
/*297142*/              OPC_MoveParent,
/*297143*/              OPC_MoveParent,
/*297144*/              OPC_CheckType, MVT::v32i8,
/*297146*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*297148*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*297151*/              OPC_EmitMergeInputChains1_2,
/*297152*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckh:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPUNPCKHBWZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297165*/            /*Scope*/ 23, /*->297189*/
/*297166*/              OPC_RecordChild2, // #4 = $src0
/*297167*/              OPC_CheckType, MVT::v32i8,
/*297169*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*297171*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297174*/              OPC_EmitMergeInputChains1_2,
/*297175*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckh:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPUNPCKHBWZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297189*/            0, /*End of Scope*/
/*297190*/          /*SwitchType*/ 65, MVT::v8i64,// ->297257
/*297192*/            OPC_MoveParent,
/*297193*/            OPC_MoveParent,
/*297194*/            OPC_MoveParent,
/*297195*/            OPC_Scope, 35, /*->297232*/ // 2 children in Scope
/*297197*/              OPC_MoveChild2,
/*297198*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297201*/              OPC_MoveChild0,
/*297202*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297205*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297207*/              OPC_CheckType, MVT::v16i32,
/*297209*/              OPC_MoveParent,
/*297210*/              OPC_MoveParent,
/*297211*/              OPC_CheckType, MVT::v32i16,
/*297213*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*297215*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*297218*/              OPC_EmitMergeInputChains1_2,
/*297219*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckh:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPUNPCKHWDZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297232*/            /*Scope*/ 23, /*->297256*/
/*297233*/              OPC_RecordChild2, // #4 = $src0
/*297234*/              OPC_CheckType, MVT::v32i16,
/*297236*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*297238*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297241*/              OPC_EmitMergeInputChains1_2,
/*297242*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckh:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPUNPCKHWDZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297256*/            0, /*End of Scope*/
/*297257*/          0, // EndSwitchType
/*297258*/        /*SwitchOpcode*/ 93, TARGET_VAL(X86ISD::VSHLDV),// ->297354
/*297261*/          OPC_RecordChild0, // #1 = $src1
/*297262*/          OPC_RecordChild1, // #2 = $src2
/*297263*/          OPC_MoveChild2,
/*297264*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297267*/          OPC_MoveChild0,
/*297268*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*297271*/          OPC_RecordMemRef,
/*297272*/          OPC_RecordNode, // #3 = 'ld' chained node
/*297273*/          OPC_CheckFoldableChainNode,
/*297274*/          OPC_RecordChild1, // #4 = $src3
/*297275*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*297277*/          OPC_CheckPredicate, 9, // Predicate_load
/*297279*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*297281*/          OPC_CheckType, MVT::v8i64,
/*297283*/          OPC_MoveParent,
/*297284*/          OPC_MoveParent,
/*297285*/          OPC_MoveParent,
/*297286*/          OPC_Scope, 38, /*->297326*/ // 2 children in Scope
/*297288*/            OPC_MoveChild2,
/*297289*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297292*/            OPC_MoveChild0,
/*297293*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297296*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297298*/            OPC_CheckType, MVT::v16i32,
/*297300*/            OPC_MoveParent,
/*297301*/            OPC_MoveParent,
/*297302*/            OPC_CheckType, MVT::v32i16,
/*297304*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*297306*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*297309*/            OPC_EmitMergeInputChains, 1, 3, 
/*297312*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShldv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSHLDVWZmkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*297326*/          /*Scope*/ 26, /*->297353*/
/*297327*/            OPC_CheckChild2Same, 1,
/*297329*/            OPC_CheckType, MVT::v32i16,
/*297331*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*297333*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*297336*/            OPC_EmitMergeInputChains, 1, 3, 
/*297339*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShldv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src1) - Complexity = 31
                      // Dst: (VPSHLDVWZmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*297353*/          0, /*End of Scope*/
/*297354*/        /*SwitchOpcode*/ 93, TARGET_VAL(X86ISD::VSHRDV),// ->297450
/*297357*/          OPC_RecordChild0, // #1 = $src1
/*297358*/          OPC_RecordChild1, // #2 = $src2
/*297359*/          OPC_MoveChild2,
/*297360*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297363*/          OPC_MoveChild0,
/*297364*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*297367*/          OPC_RecordMemRef,
/*297368*/          OPC_RecordNode, // #3 = 'ld' chained node
/*297369*/          OPC_CheckFoldableChainNode,
/*297370*/          OPC_RecordChild1, // #4 = $src3
/*297371*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*297373*/          OPC_CheckPredicate, 9, // Predicate_load
/*297375*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*297377*/          OPC_CheckType, MVT::v8i64,
/*297379*/          OPC_MoveParent,
/*297380*/          OPC_MoveParent,
/*297381*/          OPC_MoveParent,
/*297382*/          OPC_Scope, 38, /*->297422*/ // 2 children in Scope
/*297384*/            OPC_MoveChild2,
/*297385*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297388*/            OPC_MoveChild0,
/*297389*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297392*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297394*/            OPC_CheckType, MVT::v16i32,
/*297396*/            OPC_MoveParent,
/*297397*/            OPC_MoveParent,
/*297398*/            OPC_CheckType, MVT::v32i16,
/*297400*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*297402*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*297405*/            OPC_EmitMergeInputChains, 1, 3, 
/*297408*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrdv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPSHRDVWZmkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*297422*/          /*Scope*/ 26, /*->297449*/
/*297423*/            OPC_CheckChild2Same, 1,
/*297425*/            OPC_CheckType, MVT::v32i16,
/*297427*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*297429*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*297432*/            OPC_EmitMergeInputChains, 1, 3, 
/*297435*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrdv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src1) - Complexity = 31
                      // Dst: (VPSHRDVWZmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*297449*/          0, /*End of Scope*/
/*297450*/        /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::EXPAND),// ->297604
/*297454*/          OPC_MoveChild0,
/*297455*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297458*/          OPC_MoveChild0,
/*297459*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*297462*/          OPC_RecordMemRef,
/*297463*/          OPC_RecordNode, // #1 = 'ld' chained node
/*297464*/          OPC_CheckFoldableChainNode,
/*297465*/          OPC_RecordChild1, // #2 = $src1
/*297466*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*297468*/          OPC_CheckPredicate, 9, // Predicate_load
/*297470*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*297472*/          OPC_SwitchType /*2 cases */, 63, MVT::v4i64,// ->297538
/*297475*/            OPC_MoveParent,
/*297476*/            OPC_MoveParent,
/*297477*/            OPC_MoveParent,
/*297478*/            OPC_Scope, 34, /*->297514*/ // 2 children in Scope
/*297480*/              OPC_MoveChild2,
/*297481*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297484*/              OPC_MoveChild0,
/*297485*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297488*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297490*/              OPC_CheckType, MVT::v8i32,
/*297492*/              OPC_MoveParent,
/*297493*/              OPC_MoveParent,
/*297494*/              OPC_CheckType, MVT::v32i8,
/*297496*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*297498*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*297501*/              OPC_EmitMergeInputChains1_1,
/*297502*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86expand:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPEXPANDBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*297514*/            /*Scope*/ 22, /*->297537*/
/*297515*/              OPC_RecordChild2, // #3 = $src0
/*297516*/              OPC_CheckType, MVT::v32i8,
/*297518*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*297520*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*297523*/              OPC_EmitMergeInputChains1_1,
/*297524*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86expand:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPEXPANDBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*297537*/            0, /*End of Scope*/
/*297538*/          /*SwitchType*/ 63, MVT::v8i64,// ->297603
/*297540*/            OPC_MoveParent,
/*297541*/            OPC_MoveParent,
/*297542*/            OPC_MoveParent,
/*297543*/            OPC_Scope, 34, /*->297579*/ // 2 children in Scope
/*297545*/              OPC_MoveChild2,
/*297546*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297549*/              OPC_MoveChild0,
/*297550*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297553*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297555*/              OPC_CheckType, MVT::v16i32,
/*297557*/              OPC_MoveParent,
/*297558*/              OPC_MoveParent,
/*297559*/              OPC_CheckType, MVT::v32i16,
/*297561*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*297563*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*297566*/              OPC_EmitMergeInputChains1_1,
/*297567*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86expand:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPEXPANDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*297579*/            /*Scope*/ 22, /*->297602*/
/*297580*/              OPC_RecordChild2, // #3 = $src0
/*297581*/              OPC_CheckType, MVT::v32i16,
/*297583*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*297585*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*297588*/              OPC_EmitMergeInputChains1_1,
/*297589*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86expand:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPEXPANDWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*297602*/            0, /*End of Scope*/
/*297603*/          0, // EndSwitchType
/*297604*/        /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::CTPOP),// ->297758
/*297608*/          OPC_MoveChild0,
/*297609*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297612*/          OPC_MoveChild0,
/*297613*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*297616*/          OPC_RecordMemRef,
/*297617*/          OPC_RecordNode, // #1 = 'ld' chained node
/*297618*/          OPC_CheckFoldableChainNode,
/*297619*/          OPC_RecordChild1, // #2 = $src1
/*297620*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*297622*/          OPC_CheckPredicate, 9, // Predicate_load
/*297624*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*297626*/          OPC_SwitchType /*2 cases */, 63, MVT::v4i64,// ->297692
/*297629*/            OPC_MoveParent,
/*297630*/            OPC_MoveParent,
/*297631*/            OPC_MoveParent,
/*297632*/            OPC_Scope, 34, /*->297668*/ // 2 children in Scope
/*297634*/              OPC_MoveChild2,
/*297635*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297638*/              OPC_MoveChild0,
/*297639*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297642*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297644*/              OPC_CheckType, MVT::v8i32,
/*297646*/              OPC_MoveParent,
/*297647*/              OPC_MoveParent,
/*297648*/              OPC_CheckType, MVT::v32i8,
/*297650*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*297652*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*297655*/              OPC_EmitMergeInputChains1_1,
/*297656*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (ctpop:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPOPCNTBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*297668*/            /*Scope*/ 22, /*->297691*/
/*297669*/              OPC_RecordChild2, // #3 = $src0
/*297670*/              OPC_CheckType, MVT::v32i8,
/*297672*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*297674*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*297677*/              OPC_EmitMergeInputChains1_1,
/*297678*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (ctpop:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPOPCNTBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*297691*/            0, /*End of Scope*/
/*297692*/          /*SwitchType*/ 63, MVT::v8i64,// ->297757
/*297694*/            OPC_MoveParent,
/*297695*/            OPC_MoveParent,
/*297696*/            OPC_MoveParent,
/*297697*/            OPC_Scope, 34, /*->297733*/ // 2 children in Scope
/*297699*/              OPC_MoveChild2,
/*297700*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297703*/              OPC_MoveChild0,
/*297704*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297707*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297709*/              OPC_CheckType, MVT::v16i32,
/*297711*/              OPC_MoveParent,
/*297712*/              OPC_MoveParent,
/*297713*/              OPC_CheckType, MVT::v32i16,
/*297715*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*297717*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*297720*/              OPC_EmitMergeInputChains1_1,
/*297721*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (ctpop:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPOPCNTWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*297733*/            /*Scope*/ 22, /*->297756*/
/*297734*/              OPC_RecordChild2, // #3 = $src0
/*297735*/              OPC_CheckType, MVT::v32i16,
/*297737*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*297739*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*297742*/              OPC_EmitMergeInputChains1_1,
/*297743*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (ctpop:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                        // Dst: (VPOPCNTWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*297756*/            0, /*End of Scope*/
/*297757*/          0, // EndSwitchType
/*297758*/        /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::GF2P8MULB),// ->297847
/*297761*/          OPC_RecordChild0, // #1 = $src1
/*297762*/          OPC_MoveChild1,
/*297763*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297766*/          OPC_MoveChild0,
/*297767*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*297770*/          OPC_RecordMemRef,
/*297771*/          OPC_RecordNode, // #2 = 'ld' chained node
/*297772*/          OPC_CheckFoldableChainNode,
/*297773*/          OPC_RecordChild1, // #3 = $src2
/*297774*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*297776*/          OPC_CheckPredicate, 9, // Predicate_load
/*297778*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*297780*/          OPC_CheckType, MVT::v4i64,
/*297782*/          OPC_MoveParent,
/*297783*/          OPC_MoveParent,
/*297784*/          OPC_MoveParent,
/*297785*/          OPC_Scope, 35, /*->297822*/ // 2 children in Scope
/*297787*/            OPC_MoveChild2,
/*297788*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297791*/            OPC_MoveChild0,
/*297792*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297795*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297797*/            OPC_CheckType, MVT::v8i32,
/*297799*/            OPC_MoveParent,
/*297800*/            OPC_MoveParent,
/*297801*/            OPC_CheckType, MVT::v32i8,
/*297803*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*297805*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*297808*/            OPC_EmitMergeInputChains1_2,
/*297809*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8mulb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VGF2P8MULBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297822*/          /*Scope*/ 23, /*->297846*/
/*297823*/            OPC_RecordChild2, // #4 = $src0
/*297824*/            OPC_CheckType, MVT::v32i8,
/*297826*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*297828*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297831*/            OPC_EmitMergeInputChains1_2,
/*297832*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8mulb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                      // Dst: (VGF2P8MULBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297846*/          0, /*End of Scope*/
/*297847*/        /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::BITCAST),// ->297995
/*297851*/          OPC_MoveChild0,
/*297852*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*297855*/          OPC_RecordMemRef,
/*297856*/          OPC_RecordNode, // #1 = 'ld' chained node
/*297857*/          OPC_CheckFoldableChainNode,
/*297858*/          OPC_RecordChild1, // #2 = $src
/*297859*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*297861*/          OPC_CheckPredicate, 9, // Predicate_load
/*297863*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*297865*/          OPC_SwitchType /*2 cases */, 62, MVT::v4i64,// ->297930
/*297868*/            OPC_MoveParent,
/*297869*/            OPC_MoveParent,
/*297870*/            OPC_Scope, 34, /*->297906*/ // 2 children in Scope
/*297872*/              OPC_MoveChild2,
/*297873*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297876*/              OPC_MoveChild0,
/*297877*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297880*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297882*/              OPC_CheckType, MVT::v8i32,
/*297884*/              OPC_MoveParent,
/*297885*/              OPC_MoveParent,
/*297886*/              OPC_CheckType, MVT::v32i8,
/*297888*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*297890*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*297893*/              OPC_EmitMergeInputChains1_1,
/*297894*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMOVDQU8Z256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*297906*/            /*Scope*/ 22, /*->297929*/
/*297907*/              OPC_RecordChild2, // #3 = $src0
/*297908*/              OPC_CheckType, MVT::v32i8,
/*297910*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*297912*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*297915*/              OPC_EmitMergeInputChains1_1,
/*297916*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VMOVDQU8Z256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*297929*/            0, /*End of Scope*/
/*297930*/          /*SwitchType*/ 62, MVT::v8i64,// ->297994
/*297932*/            OPC_MoveParent,
/*297933*/            OPC_MoveParent,
/*297934*/            OPC_Scope, 34, /*->297970*/ // 2 children in Scope
/*297936*/              OPC_MoveChild2,
/*297937*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*297940*/              OPC_MoveChild0,
/*297941*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*297944*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*297946*/              OPC_CheckType, MVT::v16i32,
/*297948*/              OPC_MoveParent,
/*297949*/              OPC_MoveParent,
/*297950*/              OPC_CheckType, MVT::v32i16,
/*297952*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*297954*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*297957*/              OPC_EmitMergeInputChains1_1,
/*297958*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMOVDQU16Zrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*297970*/            /*Scope*/ 22, /*->297993*/
/*297971*/              OPC_RecordChild2, // #3 = $src0
/*297972*/              OPC_CheckType, MVT::v32i16,
/*297974*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*297976*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*297979*/              OPC_EmitMergeInputChains1_1,
/*297980*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VMOVDQU16Zrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*297993*/            0, /*End of Scope*/
/*297994*/          0, // EndSwitchType
/*297995*/        /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VSHL),// ->298079
/*297998*/          OPC_RecordChild0, // #1 = $src1
/*297999*/          OPC_MoveChild1,
/*298000*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*298003*/          OPC_RecordMemRef,
/*298004*/          OPC_RecordNode, // #2 = 'ld' chained node
/*298005*/          OPC_CheckFoldableChainNode,
/*298006*/          OPC_RecordChild1, // #3 = $src2
/*298007*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298009*/          OPC_CheckPredicate, 9, // Predicate_load
/*298011*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*298013*/          OPC_CheckType, MVT::v2i64,
/*298015*/          OPC_MoveParent,
/*298016*/          OPC_MoveParent,
/*298017*/          OPC_Scope, 35, /*->298054*/ // 2 children in Scope
/*298019*/            OPC_MoveChild2,
/*298020*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298023*/            OPC_MoveChild0,
/*298024*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*298027*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*298029*/            OPC_CheckType, MVT::v16i32,
/*298031*/            OPC_MoveParent,
/*298032*/            OPC_MoveParent,
/*298033*/            OPC_CheckType, MVT::v32i16,
/*298035*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*298037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*298040*/            OPC_EmitMergeInputChains1_2,
/*298041*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPSLLWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298054*/          /*Scope*/ 23, /*->298078*/
/*298055*/            OPC_RecordChild2, // #4 = $src0
/*298056*/            OPC_CheckType, MVT::v32i16,
/*298058*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*298060*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298063*/            OPC_EmitMergeInputChains1_2,
/*298064*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPSLLWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298078*/          0, /*End of Scope*/
/*298079*/        /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VSRA),// ->298163
/*298082*/          OPC_RecordChild0, // #1 = $src1
/*298083*/          OPC_MoveChild1,
/*298084*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*298087*/          OPC_RecordMemRef,
/*298088*/          OPC_RecordNode, // #2 = 'ld' chained node
/*298089*/          OPC_CheckFoldableChainNode,
/*298090*/          OPC_RecordChild1, // #3 = $src2
/*298091*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298093*/          OPC_CheckPredicate, 9, // Predicate_load
/*298095*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*298097*/          OPC_CheckType, MVT::v2i64,
/*298099*/          OPC_MoveParent,
/*298100*/          OPC_MoveParent,
/*298101*/          OPC_Scope, 35, /*->298138*/ // 2 children in Scope
/*298103*/            OPC_MoveChild2,
/*298104*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298107*/            OPC_MoveChild0,
/*298108*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*298111*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*298113*/            OPC_CheckType, MVT::v16i32,
/*298115*/            OPC_MoveParent,
/*298116*/            OPC_MoveParent,
/*298117*/            OPC_CheckType, MVT::v32i16,
/*298119*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*298121*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*298124*/            OPC_EmitMergeInputChains1_2,
/*298125*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPSRAWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298138*/          /*Scope*/ 23, /*->298162*/
/*298139*/            OPC_RecordChild2, // #4 = $src0
/*298140*/            OPC_CheckType, MVT::v32i16,
/*298142*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*298144*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298147*/            OPC_EmitMergeInputChains1_2,
/*298148*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPSRAWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298162*/          0, /*End of Scope*/
/*298163*/        /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VSRL),// ->298247
/*298166*/          OPC_RecordChild0, // #1 = $src1
/*298167*/          OPC_MoveChild1,
/*298168*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*298171*/          OPC_RecordMemRef,
/*298172*/          OPC_RecordNode, // #2 = 'ld' chained node
/*298173*/          OPC_CheckFoldableChainNode,
/*298174*/          OPC_RecordChild1, // #3 = $src2
/*298175*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298177*/          OPC_CheckPredicate, 9, // Predicate_load
/*298179*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*298181*/          OPC_CheckType, MVT::v2i64,
/*298183*/          OPC_MoveParent,
/*298184*/          OPC_MoveParent,
/*298185*/          OPC_Scope, 35, /*->298222*/ // 2 children in Scope
/*298187*/            OPC_MoveChild2,
/*298188*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298191*/            OPC_MoveChild0,
/*298192*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*298195*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*298197*/            OPC_CheckType, MVT::v16i32,
/*298199*/            OPC_MoveParent,
/*298200*/            OPC_MoveParent,
/*298201*/            OPC_CheckType, MVT::v32i16,
/*298203*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*298205*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*298208*/            OPC_EmitMergeInputChains1_2,
/*298209*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPSRLWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298222*/          /*Scope*/ 23, /*->298246*/
/*298223*/            OPC_RecordChild2, // #4 = $src0
/*298224*/            OPC_CheckType, MVT::v32i16,
/*298226*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*298228*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298231*/            OPC_EmitMergeInputChains1_2,
/*298232*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPSRLWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298246*/          0, /*End of Scope*/
/*298247*/        /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::LOAD),// ->298395
/*298251*/          OPC_RecordMemRef,
/*298252*/          OPC_RecordNode, // #1 = 'ld' chained node
/*298253*/          OPC_CheckFoldableChainNode,
/*298254*/          OPC_RecordChild1, // #2 = $src
/*298255*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298257*/          OPC_Scope, 39, /*->298298*/ // 4 children in Scope
/*298259*/            OPC_CheckPredicate, 53, // Predicate_zextload
/*298261*/            OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*298263*/            OPC_MoveParent,
/*298264*/            OPC_MoveChild2,
/*298265*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298268*/            OPC_MoveChild0,
/*298269*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*298272*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*298274*/            OPC_CheckType, MVT::v16i32,
/*298276*/            OPC_MoveParent,
/*298277*/            OPC_MoveParent,
/*298278*/            OPC_CheckType, MVT::v32i16,
/*298280*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*298282*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*298285*/            OPC_EmitMergeInputChains1_1,
/*298286*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                      // Dst: (VPMOVZXBWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*298298*/          /*Scope*/ 39, /*->298338*/
/*298299*/            OPC_CheckPredicate, 60, // Predicate_sextload
/*298301*/            OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*298303*/            OPC_MoveParent,
/*298304*/            OPC_MoveChild2,
/*298305*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298308*/            OPC_MoveChild0,
/*298309*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*298312*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*298314*/            OPC_CheckType, MVT::v16i32,
/*298316*/            OPC_MoveParent,
/*298317*/            OPC_MoveParent,
/*298318*/            OPC_CheckType, MVT::v32i16,
/*298320*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*298322*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*298325*/            OPC_EmitMergeInputChains1_1,
/*298326*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                      // Dst: (VPMOVSXBWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*298338*/          /*Scope*/ 27, /*->298366*/
/*298339*/            OPC_CheckPredicate, 53, // Predicate_zextload
/*298341*/            OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*298343*/            OPC_MoveParent,
/*298344*/            OPC_RecordChild2, // #3 = $src0
/*298345*/            OPC_CheckType, MVT::v32i16,
/*298347*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*298349*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*298352*/            OPC_EmitMergeInputChains1_1,
/*298353*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, VR512:{ *:[v32i16] }:$src0) - Complexity = 25
                      // Dst: (VPMOVZXBWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*298366*/          /*Scope*/ 27, /*->298394*/
/*298367*/            OPC_CheckPredicate, 60, // Predicate_sextload
/*298369*/            OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*298371*/            OPC_MoveParent,
/*298372*/            OPC_RecordChild2, // #3 = $src0
/*298373*/            OPC_CheckType, MVT::v32i16,
/*298375*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*298377*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*298380*/            OPC_EmitMergeInputChains1_1,
/*298381*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, VR512:{ *:[v32i16] }:$src0) - Complexity = 25
                      // Dst: (VPMOVSXBWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*298394*/          0, /*End of Scope*/
/*298395*/        0, // EndSwitchOpcode
/*298396*/      /*Scope*/ 60|128,107/*13756*/, /*->312154*/
/*298398*/        OPC_CheckChild0Type, MVT::v2i1,
/*298400*/        OPC_MoveChild1,
/*298401*/        OPC_SwitchOpcode /*51 cases */, 54|128,1/*182*/, TARGET_VAL(X86ISD::VSRLI),// ->298588
/*298406*/          OPC_MoveChild0,
/*298407*/          OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->298500
/*298411*/            OPC_MoveChild0,
/*298412*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*298415*/            OPC_RecordMemRef,
/*298416*/            OPC_RecordNode, // #1 = 'ld' chained node
/*298417*/            OPC_CheckFoldableChainNode,
/*298418*/            OPC_RecordChild1, // #2 = $src1
/*298419*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298421*/            OPC_CheckPredicate, 9, // Predicate_load
/*298423*/            OPC_CheckType, MVT::i64,
/*298425*/            OPC_MoveParent,
/*298426*/            OPC_MoveParent,
/*298427*/            OPC_RecordChild1, // #3 = $src2
/*298428*/            OPC_MoveChild1,
/*298429*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*298432*/            OPC_MoveParent,
/*298433*/            OPC_MoveParent,
/*298434*/            OPC_Scope, 37, /*->298473*/ // 2 children in Scope
/*298436*/              OPC_MoveChild2,
/*298437*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298440*/              OPC_MoveChild0,
/*298441*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*298444*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*298446*/              OPC_CheckType, MVT::v4i32,
/*298448*/              OPC_MoveParent,
/*298449*/              OPC_MoveParent,
/*298450*/              OPC_CheckType, MVT::v2i64,
/*298452*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298454*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*298457*/              OPC_EmitMergeInputChains1_1,
/*298458*/              OPC_EmitConvertToTarget, 3,
/*298460*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSRLQZ128mbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298473*/            /*Scope*/ 25, /*->298499*/
/*298474*/              OPC_RecordChild2, // #4 = $src0
/*298475*/              OPC_CheckType, MVT::v2i64,
/*298477*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298479*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*298482*/              OPC_EmitMergeInputChains1_1,
/*298483*/              OPC_EmitConvertToTarget, 3,
/*298485*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                        // Dst: (VPSRLQZ128mbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298499*/            0, /*End of Scope*/
/*298500*/          /*SwitchOpcode*/ 84, TARGET_VAL(ISD::LOAD),// ->298587
/*298503*/            OPC_RecordMemRef,
/*298504*/            OPC_RecordNode, // #1 = 'ld' chained node
/*298505*/            OPC_CheckFoldableChainNode,
/*298506*/            OPC_RecordChild1, // #2 = $src1
/*298507*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298509*/            OPC_CheckPredicate, 9, // Predicate_load
/*298511*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*298513*/            OPC_MoveParent,
/*298514*/            OPC_RecordChild1, // #3 = $src2
/*298515*/            OPC_MoveChild1,
/*298516*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*298519*/            OPC_MoveParent,
/*298520*/            OPC_MoveParent,
/*298521*/            OPC_Scope, 37, /*->298560*/ // 2 children in Scope
/*298523*/              OPC_MoveChild2,
/*298524*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298527*/              OPC_MoveChild0,
/*298528*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*298531*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*298533*/              OPC_CheckType, MVT::v4i32,
/*298535*/              OPC_MoveParent,
/*298536*/              OPC_MoveParent,
/*298537*/              OPC_CheckType, MVT::v2i64,
/*298539*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298541*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*298544*/              OPC_EmitMergeInputChains1_1,
/*298545*/              OPC_EmitConvertToTarget, 3,
/*298547*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSRLQZ128mikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298560*/            /*Scope*/ 25, /*->298586*/
/*298561*/              OPC_RecordChild2, // #4 = $src0
/*298562*/              OPC_CheckType, MVT::v2i64,
/*298564*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298566*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*298569*/              OPC_EmitMergeInputChains1_1,
/*298570*/              OPC_EmitConvertToTarget, 3,
/*298572*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPSRLQZ128mik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298586*/            0, /*End of Scope*/
/*298587*/          0, // EndSwitchOpcode
/*298588*/        /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(X86ISD::VSHLI),// ->298774
/*298592*/          OPC_MoveChild0,
/*298593*/          OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->298686
/*298597*/            OPC_MoveChild0,
/*298598*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*298601*/            OPC_RecordMemRef,
/*298602*/            OPC_RecordNode, // #1 = 'ld' chained node
/*298603*/            OPC_CheckFoldableChainNode,
/*298604*/            OPC_RecordChild1, // #2 = $src1
/*298605*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298607*/            OPC_CheckPredicate, 9, // Predicate_load
/*298609*/            OPC_CheckType, MVT::i64,
/*298611*/            OPC_MoveParent,
/*298612*/            OPC_MoveParent,
/*298613*/            OPC_RecordChild1, // #3 = $src2
/*298614*/            OPC_MoveChild1,
/*298615*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*298618*/            OPC_MoveParent,
/*298619*/            OPC_MoveParent,
/*298620*/            OPC_Scope, 37, /*->298659*/ // 2 children in Scope
/*298622*/              OPC_MoveChild2,
/*298623*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298626*/              OPC_MoveChild0,
/*298627*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*298630*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*298632*/              OPC_CheckType, MVT::v4i32,
/*298634*/              OPC_MoveParent,
/*298635*/              OPC_MoveParent,
/*298636*/              OPC_CheckType, MVT::v2i64,
/*298638*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298640*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*298643*/              OPC_EmitMergeInputChains1_1,
/*298644*/              OPC_EmitConvertToTarget, 3,
/*298646*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSLLQZ128mbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298659*/            /*Scope*/ 25, /*->298685*/
/*298660*/              OPC_RecordChild2, // #4 = $src0
/*298661*/              OPC_CheckType, MVT::v2i64,
/*298663*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298665*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*298668*/              OPC_EmitMergeInputChains1_1,
/*298669*/              OPC_EmitConvertToTarget, 3,
/*298671*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                        // Dst: (VPSLLQZ128mbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298685*/            0, /*End of Scope*/
/*298686*/          /*SwitchOpcode*/ 84, TARGET_VAL(ISD::LOAD),// ->298773
/*298689*/            OPC_RecordMemRef,
/*298690*/            OPC_RecordNode, // #1 = 'ld' chained node
/*298691*/            OPC_CheckFoldableChainNode,
/*298692*/            OPC_RecordChild1, // #2 = $src1
/*298693*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298695*/            OPC_CheckPredicate, 9, // Predicate_load
/*298697*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*298699*/            OPC_MoveParent,
/*298700*/            OPC_RecordChild1, // #3 = $src2
/*298701*/            OPC_MoveChild1,
/*298702*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*298705*/            OPC_MoveParent,
/*298706*/            OPC_MoveParent,
/*298707*/            OPC_Scope, 37, /*->298746*/ // 2 children in Scope
/*298709*/              OPC_MoveChild2,
/*298710*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298713*/              OPC_MoveChild0,
/*298714*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*298717*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*298719*/              OPC_CheckType, MVT::v4i32,
/*298721*/              OPC_MoveParent,
/*298722*/              OPC_MoveParent,
/*298723*/              OPC_CheckType, MVT::v2i64,
/*298725*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298727*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*298730*/              OPC_EmitMergeInputChains1_1,
/*298731*/              OPC_EmitConvertToTarget, 3,
/*298733*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSLLQZ128mikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298746*/            /*Scope*/ 25, /*->298772*/
/*298747*/              OPC_RecordChild2, // #4 = $src0
/*298748*/              OPC_CheckType, MVT::v2i64,
/*298750*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298752*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*298755*/              OPC_EmitMergeInputChains1_1,
/*298756*/              OPC_EmitConvertToTarget, 3,
/*298758*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPSLLQZ128mik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298772*/            0, /*End of Scope*/
/*298773*/          0, // EndSwitchOpcode
/*298774*/        /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(X86ISD::VSRAI),// ->298960
/*298778*/          OPC_MoveChild0,
/*298779*/          OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->298872
/*298783*/            OPC_MoveChild0,
/*298784*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*298787*/            OPC_RecordMemRef,
/*298788*/            OPC_RecordNode, // #1 = 'ld' chained node
/*298789*/            OPC_CheckFoldableChainNode,
/*298790*/            OPC_RecordChild1, // #2 = $src1
/*298791*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298793*/            OPC_CheckPredicate, 9, // Predicate_load
/*298795*/            OPC_CheckType, MVT::i64,
/*298797*/            OPC_MoveParent,
/*298798*/            OPC_MoveParent,
/*298799*/            OPC_RecordChild1, // #3 = $src2
/*298800*/            OPC_MoveChild1,
/*298801*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*298804*/            OPC_MoveParent,
/*298805*/            OPC_MoveParent,
/*298806*/            OPC_Scope, 37, /*->298845*/ // 2 children in Scope
/*298808*/              OPC_MoveChild2,
/*298809*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298812*/              OPC_MoveChild0,
/*298813*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*298816*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*298818*/              OPC_CheckType, MVT::v4i32,
/*298820*/              OPC_MoveParent,
/*298821*/              OPC_MoveParent,
/*298822*/              OPC_CheckType, MVT::v2i64,
/*298824*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298826*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*298829*/              OPC_EmitMergeInputChains1_1,
/*298830*/              OPC_EmitConvertToTarget, 3,
/*298832*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSRAQZ128mbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298845*/            /*Scope*/ 25, /*->298871*/
/*298846*/              OPC_RecordChild2, // #4 = $src0
/*298847*/              OPC_CheckType, MVT::v2i64,
/*298849*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298851*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*298854*/              OPC_EmitMergeInputChains1_1,
/*298855*/              OPC_EmitConvertToTarget, 3,
/*298857*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                        // Dst: (VPSRAQZ128mbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298871*/            0, /*End of Scope*/
/*298872*/          /*SwitchOpcode*/ 84, TARGET_VAL(ISD::LOAD),// ->298959
/*298875*/            OPC_RecordMemRef,
/*298876*/            OPC_RecordNode, // #1 = 'ld' chained node
/*298877*/            OPC_CheckFoldableChainNode,
/*298878*/            OPC_RecordChild1, // #2 = $src1
/*298879*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298881*/            OPC_CheckPredicate, 9, // Predicate_load
/*298883*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*298885*/            OPC_MoveParent,
/*298886*/            OPC_RecordChild1, // #3 = $src2
/*298887*/            OPC_MoveChild1,
/*298888*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*298891*/            OPC_MoveParent,
/*298892*/            OPC_MoveParent,
/*298893*/            OPC_Scope, 37, /*->298932*/ // 2 children in Scope
/*298895*/              OPC_MoveChild2,
/*298896*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298899*/              OPC_MoveChild0,
/*298900*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*298903*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*298905*/              OPC_CheckType, MVT::v4i32,
/*298907*/              OPC_MoveParent,
/*298908*/              OPC_MoveParent,
/*298909*/              OPC_CheckType, MVT::v2i64,
/*298911*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298913*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*298916*/              OPC_EmitMergeInputChains1_1,
/*298917*/              OPC_EmitConvertToTarget, 3,
/*298919*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSRAQZ128mikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298932*/            /*Scope*/ 25, /*->298958*/
/*298933*/              OPC_RecordChild2, // #4 = $src0
/*298934*/              OPC_CheckType, MVT::v2i64,
/*298936*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*298938*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*298941*/              OPC_EmitMergeInputChains1_1,
/*298942*/              OPC_EmitConvertToTarget, 3,
/*298944*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPSRAQZ128mik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*298958*/            0, /*End of Scope*/
/*298959*/          0, // EndSwitchOpcode
/*298960*/        /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(X86ISD::VROTRI),// ->299146
/*298964*/          OPC_MoveChild0,
/*298965*/          OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->299058
/*298969*/            OPC_MoveChild0,
/*298970*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*298973*/            OPC_RecordMemRef,
/*298974*/            OPC_RecordNode, // #1 = 'ld' chained node
/*298975*/            OPC_CheckFoldableChainNode,
/*298976*/            OPC_RecordChild1, // #2 = $src1
/*298977*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298979*/            OPC_CheckPredicate, 9, // Predicate_load
/*298981*/            OPC_CheckType, MVT::i64,
/*298983*/            OPC_MoveParent,
/*298984*/            OPC_MoveParent,
/*298985*/            OPC_RecordChild1, // #3 = $src2
/*298986*/            OPC_MoveChild1,
/*298987*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*298990*/            OPC_MoveParent,
/*298991*/            OPC_MoveParent,
/*298992*/            OPC_Scope, 37, /*->299031*/ // 2 children in Scope
/*298994*/              OPC_MoveChild2,
/*298995*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*298998*/              OPC_MoveChild0,
/*298999*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299002*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299004*/              OPC_CheckType, MVT::v4i32,
/*299006*/              OPC_MoveParent,
/*299007*/              OPC_MoveParent,
/*299008*/              OPC_CheckType, MVT::v2i64,
/*299010*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299012*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*299015*/              OPC_EmitMergeInputChains1_1,
/*299016*/              OPC_EmitConvertToTarget, 3,
/*299018*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPRORQZ128mbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*299031*/            /*Scope*/ 25, /*->299057*/
/*299032*/              OPC_RecordChild2, // #4 = $src0
/*299033*/              OPC_CheckType, MVT::v2i64,
/*299035*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299037*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*299040*/              OPC_EmitMergeInputChains1_1,
/*299041*/              OPC_EmitConvertToTarget, 3,
/*299043*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                        // Dst: (VPRORQZ128mbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*299057*/            0, /*End of Scope*/
/*299058*/          /*SwitchOpcode*/ 84, TARGET_VAL(ISD::LOAD),// ->299145
/*299061*/            OPC_RecordMemRef,
/*299062*/            OPC_RecordNode, // #1 = 'ld' chained node
/*299063*/            OPC_CheckFoldableChainNode,
/*299064*/            OPC_RecordChild1, // #2 = $src1
/*299065*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299067*/            OPC_CheckPredicate, 9, // Predicate_load
/*299069*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*299071*/            OPC_MoveParent,
/*299072*/            OPC_RecordChild1, // #3 = $src2
/*299073*/            OPC_MoveChild1,
/*299074*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299077*/            OPC_MoveParent,
/*299078*/            OPC_MoveParent,
/*299079*/            OPC_Scope, 37, /*->299118*/ // 2 children in Scope
/*299081*/              OPC_MoveChild2,
/*299082*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299085*/              OPC_MoveChild0,
/*299086*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299089*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299091*/              OPC_CheckType, MVT::v4i32,
/*299093*/              OPC_MoveParent,
/*299094*/              OPC_MoveParent,
/*299095*/              OPC_CheckType, MVT::v2i64,
/*299097*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299099*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*299102*/              OPC_EmitMergeInputChains1_1,
/*299103*/              OPC_EmitConvertToTarget, 3,
/*299105*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPRORQZ128mikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*299118*/            /*Scope*/ 25, /*->299144*/
/*299119*/              OPC_RecordChild2, // #4 = $src0
/*299120*/              OPC_CheckType, MVT::v2i64,
/*299122*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299124*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*299127*/              OPC_EmitMergeInputChains1_1,
/*299128*/              OPC_EmitConvertToTarget, 3,
/*299130*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPRORQZ128mik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*299144*/            0, /*End of Scope*/
/*299145*/          0, // EndSwitchOpcode
/*299146*/        /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(X86ISD::VROTLI),// ->299332
/*299150*/          OPC_MoveChild0,
/*299151*/          OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->299244
/*299155*/            OPC_MoveChild0,
/*299156*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*299159*/            OPC_RecordMemRef,
/*299160*/            OPC_RecordNode, // #1 = 'ld' chained node
/*299161*/            OPC_CheckFoldableChainNode,
/*299162*/            OPC_RecordChild1, // #2 = $src1
/*299163*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299165*/            OPC_CheckPredicate, 9, // Predicate_load
/*299167*/            OPC_CheckType, MVT::i64,
/*299169*/            OPC_MoveParent,
/*299170*/            OPC_MoveParent,
/*299171*/            OPC_RecordChild1, // #3 = $src2
/*299172*/            OPC_MoveChild1,
/*299173*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299176*/            OPC_MoveParent,
/*299177*/            OPC_MoveParent,
/*299178*/            OPC_Scope, 37, /*->299217*/ // 2 children in Scope
/*299180*/              OPC_MoveChild2,
/*299181*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299184*/              OPC_MoveChild0,
/*299185*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299188*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299190*/              OPC_CheckType, MVT::v4i32,
/*299192*/              OPC_MoveParent,
/*299193*/              OPC_MoveParent,
/*299194*/              OPC_CheckType, MVT::v2i64,
/*299196*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299198*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*299201*/              OPC_EmitMergeInputChains1_1,
/*299202*/              OPC_EmitConvertToTarget, 3,
/*299204*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPROLQZ128mbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*299217*/            /*Scope*/ 25, /*->299243*/
/*299218*/              OPC_RecordChild2, // #4 = $src0
/*299219*/              OPC_CheckType, MVT::v2i64,
/*299221*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299223*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*299226*/              OPC_EmitMergeInputChains1_1,
/*299227*/              OPC_EmitConvertToTarget, 3,
/*299229*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                        // Dst: (VPROLQZ128mbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*299243*/            0, /*End of Scope*/
/*299244*/          /*SwitchOpcode*/ 84, TARGET_VAL(ISD::LOAD),// ->299331
/*299247*/            OPC_RecordMemRef,
/*299248*/            OPC_RecordNode, // #1 = 'ld' chained node
/*299249*/            OPC_CheckFoldableChainNode,
/*299250*/            OPC_RecordChild1, // #2 = $src1
/*299251*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299253*/            OPC_CheckPredicate, 9, // Predicate_load
/*299255*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*299257*/            OPC_MoveParent,
/*299258*/            OPC_RecordChild1, // #3 = $src2
/*299259*/            OPC_MoveChild1,
/*299260*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299263*/            OPC_MoveParent,
/*299264*/            OPC_MoveParent,
/*299265*/            OPC_Scope, 37, /*->299304*/ // 2 children in Scope
/*299267*/              OPC_MoveChild2,
/*299268*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299271*/              OPC_MoveChild0,
/*299272*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299275*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299277*/              OPC_CheckType, MVT::v4i32,
/*299279*/              OPC_MoveParent,
/*299280*/              OPC_MoveParent,
/*299281*/              OPC_CheckType, MVT::v2i64,
/*299283*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299285*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*299288*/              OPC_EmitMergeInputChains1_1,
/*299289*/              OPC_EmitConvertToTarget, 3,
/*299291*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPROLQZ128mikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*299304*/            /*Scope*/ 25, /*->299330*/
/*299305*/              OPC_RecordChild2, // #4 = $src0
/*299306*/              OPC_CheckType, MVT::v2i64,
/*299308*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299310*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*299313*/              OPC_EmitMergeInputChains1_1,
/*299314*/              OPC_EmitConvertToTarget, 3,
/*299316*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPROLQZ128mik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*299330*/            0, /*End of Scope*/
/*299331*/          0, // EndSwitchOpcode
/*299332*/        /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::VALIGN),// ->299523
/*299336*/          OPC_RecordChild0, // #1 = $src1
/*299337*/          OPC_MoveChild1,
/*299338*/          OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(X86ISD::VBROADCAST),// ->299433
/*299342*/            OPC_MoveChild0,
/*299343*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*299346*/            OPC_RecordMemRef,
/*299347*/            OPC_RecordNode, // #2 = 'ld' chained node
/*299348*/            OPC_CheckFoldableChainNode,
/*299349*/            OPC_RecordChild1, // #3 = $src2
/*299350*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299352*/            OPC_CheckPredicate, 9, // Predicate_load
/*299354*/            OPC_CheckType, MVT::i64,
/*299356*/            OPC_MoveParent,
/*299357*/            OPC_MoveParent,
/*299358*/            OPC_RecordChild2, // #4 = $src3
/*299359*/            OPC_MoveChild2,
/*299360*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299363*/            OPC_MoveParent,
/*299364*/            OPC_MoveParent,
/*299365*/            OPC_Scope, 38, /*->299405*/ // 2 children in Scope
/*299367*/              OPC_MoveChild2,
/*299368*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299371*/              OPC_MoveChild0,
/*299372*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299375*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299377*/              OPC_CheckType, MVT::v4i32,
/*299379*/              OPC_MoveParent,
/*299380*/              OPC_MoveParent,
/*299381*/              OPC_CheckType, MVT::v2i64,
/*299383*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299385*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299388*/              OPC_EmitMergeInputChains1_2,
/*299389*/              OPC_EmitConvertToTarget, 4,
/*299391*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VALIGNQZ128rmbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*299405*/            /*Scope*/ 26, /*->299432*/
/*299406*/              OPC_RecordChild2, // #5 = $src0
/*299407*/              OPC_CheckType, MVT::v2i64,
/*299409*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299411*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*299414*/              OPC_EmitMergeInputChains1_2,
/*299415*/              OPC_EmitConvertToTarget, 4,
/*299417*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                        // Dst: (VALIGNQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*299432*/            0, /*End of Scope*/
/*299433*/          /*SwitchOpcode*/ 86, TARGET_VAL(ISD::LOAD),// ->299522
/*299436*/            OPC_RecordMemRef,
/*299437*/            OPC_RecordNode, // #2 = 'ld' chained node
/*299438*/            OPC_CheckFoldableChainNode,
/*299439*/            OPC_RecordChild1, // #3 = $src2
/*299440*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299442*/            OPC_CheckPredicate, 9, // Predicate_load
/*299444*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*299446*/            OPC_MoveParent,
/*299447*/            OPC_RecordChild2, // #4 = $src3
/*299448*/            OPC_MoveChild2,
/*299449*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299452*/            OPC_MoveParent,
/*299453*/            OPC_MoveParent,
/*299454*/            OPC_Scope, 38, /*->299494*/ // 2 children in Scope
/*299456*/              OPC_MoveChild2,
/*299457*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299460*/              OPC_MoveChild0,
/*299461*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299464*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299466*/              OPC_CheckType, MVT::v4i32,
/*299468*/              OPC_MoveParent,
/*299469*/              OPC_MoveParent,
/*299470*/              OPC_CheckType, MVT::v2i64,
/*299472*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299474*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299477*/              OPC_EmitMergeInputChains1_2,
/*299478*/              OPC_EmitConvertToTarget, 4,
/*299480*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VALIGNQZ128rmikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*299494*/            /*Scope*/ 26, /*->299521*/
/*299495*/              OPC_RecordChild2, // #5 = $src0
/*299496*/              OPC_CheckType, MVT::v2i64,
/*299498*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299500*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*299503*/              OPC_EmitMergeInputChains1_2,
/*299504*/              OPC_EmitConvertToTarget, 4,
/*299506*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VALIGNQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*299521*/            0, /*End of Scope*/
/*299522*/          0, // EndSwitchOpcode
/*299523*/        /*SwitchOpcode*/ 96|128,8/*1120*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->300647
/*299527*/          OPC_Scope, 70, /*->299599*/ // 12 children in Scope
/*299529*/            OPC_RecordChild0, // #1 = $src1
/*299530*/            OPC_RecordChild1, // #2 = $src2
/*299531*/            OPC_MoveChild2,
/*299532*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*299535*/            OPC_MoveChild0,
/*299536*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*299539*/            OPC_RecordMemRef,
/*299540*/            OPC_RecordNode, // #3 = 'ld' chained node
/*299541*/            OPC_CheckFoldableChainNode,
/*299542*/            OPC_RecordChild1, // #4 = $src3
/*299543*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299545*/            OPC_CheckPredicate, 9, // Predicate_load
/*299547*/            OPC_CheckType, MVT::i64,
/*299549*/            OPC_MoveParent,
/*299550*/            OPC_MoveParent,
/*299551*/            OPC_RecordChild3, // #5 = $src4
/*299552*/            OPC_MoveChild3,
/*299553*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299556*/            OPC_MoveParent,
/*299557*/            OPC_MoveParent,
/*299558*/            OPC_MoveChild2,
/*299559*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299562*/            OPC_MoveChild0,
/*299563*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299566*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299568*/            OPC_CheckType, MVT::v4i32,
/*299570*/            OPC_MoveParent,
/*299571*/            OPC_MoveParent,
/*299572*/            OPC_CheckType, MVT::v2i64,
/*299574*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299576*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*299579*/            OPC_EmitMergeInputChains, 1, 3, 
/*299582*/            OPC_EmitConvertToTarget, 5,
/*299584*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPTERNLOGQZ128rmbikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*299599*/          /*Scope*/ 71, /*->299671*/
/*299600*/            OPC_MoveChild0,
/*299601*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*299604*/            OPC_MoveChild0,
/*299605*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*299608*/            OPC_RecordMemRef,
/*299609*/            OPC_RecordNode, // #1 = 'ld' chained node
/*299610*/            OPC_CheckFoldableChainNode,
/*299611*/            OPC_RecordChild1, // #2 = $src3
/*299612*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299614*/            OPC_CheckPredicate, 9, // Predicate_load
/*299616*/            OPC_CheckType, MVT::i64,
/*299618*/            OPC_MoveParent,
/*299619*/            OPC_MoveParent,
/*299620*/            OPC_RecordChild1, // #3 = $src2
/*299621*/            OPC_RecordChild2, // #4 = $src1
/*299622*/            OPC_RecordChild3, // #5 = $src4
/*299623*/            OPC_MoveChild3,
/*299624*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299627*/            OPC_MoveParent,
/*299628*/            OPC_MoveParent,
/*299629*/            OPC_MoveChild2,
/*299630*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299633*/            OPC_MoveChild0,
/*299634*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299637*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299639*/            OPC_CheckType, MVT::v4i32,
/*299641*/            OPC_MoveParent,
/*299642*/            OPC_MoveParent,
/*299643*/            OPC_CheckType, MVT::v2i64,
/*299645*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299647*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*299650*/            OPC_EmitMergeInputChains1_1,
/*299651*/            OPC_EmitConvertToTarget, 5,
/*299653*/            OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*299656*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPTERNLOGQZ128rmbikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*299671*/          /*Scope*/ 11|128,1/*139*/, /*->299812*/
/*299673*/            OPC_RecordChild0, // #1 = $src1
/*299674*/            OPC_Scope, 70, /*->299746*/ // 2 children in Scope
/*299676*/              OPC_MoveChild1,
/*299677*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*299680*/              OPC_MoveChild0,
/*299681*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*299684*/              OPC_RecordMemRef,
/*299685*/              OPC_RecordNode, // #2 = 'ld' chained node
/*299686*/              OPC_CheckFoldableChainNode,
/*299687*/              OPC_RecordChild1, // #3 = $src3
/*299688*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299690*/              OPC_CheckPredicate, 9, // Predicate_load
/*299692*/              OPC_CheckType, MVT::i64,
/*299694*/              OPC_MoveParent,
/*299695*/              OPC_MoveParent,
/*299696*/              OPC_RecordChild2, // #4 = $src2
/*299697*/              OPC_RecordChild3, // #5 = $src4
/*299698*/              OPC_MoveChild3,
/*299699*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299702*/              OPC_MoveParent,
/*299703*/              OPC_MoveParent,
/*299704*/              OPC_MoveChild2,
/*299705*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299708*/              OPC_MoveChild0,
/*299709*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299712*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299714*/              OPC_CheckType, MVT::v4i32,
/*299716*/              OPC_MoveParent,
/*299717*/              OPC_MoveParent,
/*299718*/              OPC_CheckType, MVT::v2i64,
/*299720*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299722*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*299725*/              OPC_EmitMergeInputChains1_2,
/*299726*/              OPC_EmitConvertToTarget, 5,
/*299728*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*299731*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPTERNLOGQZ128rmbikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*299746*/            /*Scope*/ 64, /*->299811*/
/*299747*/              OPC_RecordChild1, // #2 = $src2
/*299748*/              OPC_MoveChild2,
/*299749*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*299752*/              OPC_RecordMemRef,
/*299753*/              OPC_RecordNode, // #3 = 'ld' chained node
/*299754*/              OPC_CheckFoldableChainNode,
/*299755*/              OPC_RecordChild1, // #4 = $src3
/*299756*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299758*/              OPC_CheckPredicate, 9, // Predicate_load
/*299760*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*299762*/              OPC_MoveParent,
/*299763*/              OPC_RecordChild3, // #5 = $src4
/*299764*/              OPC_MoveChild3,
/*299765*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299768*/              OPC_MoveParent,
/*299769*/              OPC_MoveParent,
/*299770*/              OPC_MoveChild2,
/*299771*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299774*/              OPC_MoveChild0,
/*299775*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299778*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299780*/              OPC_CheckType, MVT::v4i32,
/*299782*/              OPC_MoveParent,
/*299783*/              OPC_MoveParent,
/*299784*/              OPC_CheckType, MVT::v2i64,
/*299786*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299788*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*299791*/              OPC_EmitMergeInputChains, 1, 3, 
/*299794*/              OPC_EmitConvertToTarget, 5,
/*299796*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPTERNLOGQZ128rmikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*299811*/            0, /*End of Scope*/
/*299812*/          /*Scope*/ 66, /*->299879*/
/*299813*/            OPC_MoveChild0,
/*299814*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*299817*/            OPC_RecordMemRef,
/*299818*/            OPC_RecordNode, // #1 = 'ld' chained node
/*299819*/            OPC_CheckFoldableChainNode,
/*299820*/            OPC_RecordChild1, // #2 = $src3
/*299821*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299823*/            OPC_CheckPredicate, 9, // Predicate_load
/*299825*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*299827*/            OPC_MoveParent,
/*299828*/            OPC_RecordChild1, // #3 = $src2
/*299829*/            OPC_RecordChild2, // #4 = $src1
/*299830*/            OPC_RecordChild3, // #5 = $src4
/*299831*/            OPC_MoveChild3,
/*299832*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299835*/            OPC_MoveParent,
/*299836*/            OPC_MoveParent,
/*299837*/            OPC_MoveChild2,
/*299838*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299841*/            OPC_MoveChild0,
/*299842*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299845*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299847*/            OPC_CheckType, MVT::v4i32,
/*299849*/            OPC_MoveParent,
/*299850*/            OPC_MoveParent,
/*299851*/            OPC_CheckType, MVT::v2i64,
/*299853*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299855*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*299858*/            OPC_EmitMergeInputChains1_1,
/*299859*/            OPC_EmitConvertToTarget, 5,
/*299861*/            OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*299864*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPTERNLOGQZ128rmikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*299879*/          /*Scope*/ 58|128,1/*186*/, /*->300067*/
/*299881*/            OPC_RecordChild0, // #1 = $src1
/*299882*/            OPC_Scope, 65, /*->299949*/ // 3 children in Scope
/*299884*/              OPC_MoveChild1,
/*299885*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*299888*/              OPC_RecordMemRef,
/*299889*/              OPC_RecordNode, // #2 = 'ld' chained node
/*299890*/              OPC_CheckFoldableChainNode,
/*299891*/              OPC_RecordChild1, // #3 = $src3
/*299892*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299894*/              OPC_CheckPredicate, 9, // Predicate_load
/*299896*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*299898*/              OPC_MoveParent,
/*299899*/              OPC_RecordChild2, // #4 = $src2
/*299900*/              OPC_RecordChild3, // #5 = $src4
/*299901*/              OPC_MoveChild3,
/*299902*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299905*/              OPC_MoveParent,
/*299906*/              OPC_MoveParent,
/*299907*/              OPC_MoveChild2,
/*299908*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299911*/              OPC_MoveChild0,
/*299912*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*299915*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*299917*/              OPC_CheckType, MVT::v4i32,
/*299919*/              OPC_MoveParent,
/*299920*/              OPC_MoveParent,
/*299921*/              OPC_CheckType, MVT::v2i64,
/*299923*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299925*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*299928*/              OPC_EmitMergeInputChains1_2,
/*299929*/              OPC_EmitConvertToTarget, 5,
/*299931*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*299934*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPTERNLOGQZ128rmikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*299949*/            /*Scope*/ 57, /*->300007*/
/*299950*/              OPC_RecordChild1, // #2 = $src2
/*299951*/              OPC_MoveChild2,
/*299952*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*299955*/              OPC_MoveChild0,
/*299956*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*299959*/              OPC_RecordMemRef,
/*299960*/              OPC_RecordNode, // #3 = 'ld' chained node
/*299961*/              OPC_CheckFoldableChainNode,
/*299962*/              OPC_RecordChild1, // #4 = $src3
/*299963*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299965*/              OPC_CheckPredicate, 9, // Predicate_load
/*299967*/              OPC_CheckType, MVT::i64,
/*299969*/              OPC_MoveParent,
/*299970*/              OPC_MoveParent,
/*299971*/              OPC_RecordChild3, // #5 = $src4
/*299972*/              OPC_MoveChild3,
/*299973*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299976*/              OPC_MoveParent,
/*299977*/              OPC_MoveParent,
/*299978*/              OPC_CheckChild2Same, 1,
/*299980*/              OPC_CheckType, MVT::v2i64,
/*299982*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299984*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*299987*/              OPC_EmitMergeInputChains, 1, 3, 
/*299990*/              OPC_EmitConvertToTarget, 5,
/*299992*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*300007*/            /*Scope*/ 58, /*->300066*/
/*300008*/              OPC_MoveChild1,
/*300009*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*300012*/              OPC_MoveChild0,
/*300013*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300016*/              OPC_RecordMemRef,
/*300017*/              OPC_RecordNode, // #2 = 'ld' chained node
/*300018*/              OPC_CheckFoldableChainNode,
/*300019*/              OPC_RecordChild1, // #3 = $src3
/*300020*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300022*/              OPC_CheckPredicate, 9, // Predicate_load
/*300024*/              OPC_CheckType, MVT::i64,
/*300026*/              OPC_MoveParent,
/*300027*/              OPC_MoveParent,
/*300028*/              OPC_RecordChild2, // #4 = $src2
/*300029*/              OPC_RecordChild3, // #5 = $src4
/*300030*/              OPC_MoveChild3,
/*300031*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300034*/              OPC_MoveParent,
/*300035*/              OPC_MoveParent,
/*300036*/              OPC_CheckChild2Same, 1,
/*300038*/              OPC_CheckType, MVT::v2i64,
/*300040*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300042*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*300045*/              OPC_EmitMergeInputChains1_2,
/*300046*/              OPC_EmitConvertToTarget, 5,
/*300048*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*300051*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*300066*/            0, /*End of Scope*/
/*300067*/          /*Scope*/ 59, /*->300127*/
/*300068*/            OPC_MoveChild0,
/*300069*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*300072*/            OPC_MoveChild0,
/*300073*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300076*/            OPC_RecordMemRef,
/*300077*/            OPC_RecordNode, // #1 = 'ld' chained node
/*300078*/            OPC_CheckFoldableChainNode,
/*300079*/            OPC_RecordChild1, // #2 = $src3
/*300080*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300082*/            OPC_CheckPredicate, 9, // Predicate_load
/*300084*/            OPC_CheckType, MVT::i64,
/*300086*/            OPC_MoveParent,
/*300087*/            OPC_MoveParent,
/*300088*/            OPC_RecordChild1, // #3 = $src2
/*300089*/            OPC_RecordChild2, // #4 = $src1
/*300090*/            OPC_RecordChild3, // #5 = $src4
/*300091*/            OPC_MoveChild3,
/*300092*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300095*/            OPC_MoveParent,
/*300096*/            OPC_MoveParent,
/*300097*/            OPC_CheckChild2Same, 4,
/*300099*/            OPC_CheckType, MVT::v2i64,
/*300101*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300103*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*300106*/            OPC_EmitMergeInputChains1_1,
/*300107*/            OPC_EmitConvertToTarget, 5,
/*300109*/            OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*300112*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 34
                      // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*300127*/          /*Scope*/ 123, /*->300251*/
/*300128*/            OPC_RecordChild0, // #1 = $src2
/*300129*/            OPC_Scope, 60, /*->300191*/ // 2 children in Scope
/*300131*/              OPC_RecordChild1, // #2 = $src1
/*300132*/              OPC_MoveChild2,
/*300133*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*300136*/              OPC_MoveChild0,
/*300137*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300140*/              OPC_RecordMemRef,
/*300141*/              OPC_RecordNode, // #3 = 'ld' chained node
/*300142*/              OPC_CheckFoldableChainNode,
/*300143*/              OPC_RecordChild1, // #4 = $src3
/*300144*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300146*/              OPC_CheckPredicate, 9, // Predicate_load
/*300148*/              OPC_CheckType, MVT::i64,
/*300150*/              OPC_MoveParent,
/*300151*/              OPC_MoveParent,
/*300152*/              OPC_RecordChild3, // #5 = $src4
/*300153*/              OPC_MoveChild3,
/*300154*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300157*/              OPC_MoveParent,
/*300158*/              OPC_MoveParent,
/*300159*/              OPC_CheckChild2Same, 2,
/*300161*/              OPC_CheckType, MVT::v2i64,
/*300163*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300165*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*300168*/              OPC_EmitMergeInputChains, 1, 3, 
/*300171*/              OPC_EmitConvertToTarget, 5,
/*300173*/              OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*300176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*300191*/            /*Scope*/ 58, /*->300250*/
/*300192*/              OPC_MoveChild1,
/*300193*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*300196*/              OPC_MoveChild0,
/*300197*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300200*/              OPC_RecordMemRef,
/*300201*/              OPC_RecordNode, // #2 = 'ld' chained node
/*300202*/              OPC_CheckFoldableChainNode,
/*300203*/              OPC_RecordChild1, // #3 = $src3
/*300204*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300206*/              OPC_CheckPredicate, 9, // Predicate_load
/*300208*/              OPC_CheckType, MVT::i64,
/*300210*/              OPC_MoveParent,
/*300211*/              OPC_MoveParent,
/*300212*/              OPC_RecordChild2, // #4 = $src1
/*300213*/              OPC_RecordChild3, // #5 = $src4
/*300214*/              OPC_MoveChild3,
/*300215*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300218*/              OPC_MoveParent,
/*300219*/              OPC_MoveParent,
/*300220*/              OPC_CheckChild2Same, 4,
/*300222*/              OPC_CheckType, MVT::v2i64,
/*300224*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300226*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*300229*/              OPC_EmitMergeInputChains1_2,
/*300230*/              OPC_EmitConvertToTarget, 5,
/*300232*/              OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*300235*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 34
                        // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*300250*/            0, /*End of Scope*/
/*300251*/          /*Scope*/ 59, /*->300311*/
/*300252*/            OPC_MoveChild0,
/*300253*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*300256*/            OPC_MoveChild0,
/*300257*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300260*/            OPC_RecordMemRef,
/*300261*/            OPC_RecordNode, // #1 = 'ld' chained node
/*300262*/            OPC_CheckFoldableChainNode,
/*300263*/            OPC_RecordChild1, // #2 = $src3
/*300264*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300266*/            OPC_CheckPredicate, 9, // Predicate_load
/*300268*/            OPC_CheckType, MVT::i64,
/*300270*/            OPC_MoveParent,
/*300271*/            OPC_MoveParent,
/*300272*/            OPC_RecordChild1, // #3 = $src1
/*300273*/            OPC_RecordChild2, // #4 = $src2
/*300274*/            OPC_RecordChild3, // #5 = $src4
/*300275*/            OPC_MoveChild3,
/*300276*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300279*/            OPC_MoveParent,
/*300280*/            OPC_MoveParent,
/*300281*/            OPC_CheckChild2Same, 3,
/*300283*/            OPC_CheckType, MVT::v2i64,
/*300285*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300287*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*300290*/            OPC_EmitMergeInputChains1_1,
/*300291*/            OPC_EmitConvertToTarget, 5,
/*300293*/            OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*300296*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 34
                      // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*300311*/          /*Scope*/ 110, /*->300422*/
/*300312*/            OPC_RecordChild0, // #1 = $src1
/*300313*/            OPC_Scope, 52, /*->300367*/ // 2 children in Scope
/*300315*/              OPC_RecordChild1, // #2 = $src2
/*300316*/              OPC_MoveChild2,
/*300317*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300320*/              OPC_RecordMemRef,
/*300321*/              OPC_RecordNode, // #3 = 'ld' chained node
/*300322*/              OPC_CheckFoldableChainNode,
/*300323*/              OPC_RecordChild1, // #4 = $src3
/*300324*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300326*/              OPC_CheckPredicate, 9, // Predicate_load
/*300328*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*300330*/              OPC_MoveParent,
/*300331*/              OPC_RecordChild3, // #5 = $src4
/*300332*/              OPC_MoveChild3,
/*300333*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300336*/              OPC_MoveParent,
/*300337*/              OPC_MoveParent,
/*300338*/              OPC_CheckChild2Same, 1,
/*300340*/              OPC_CheckType, MVT::v2i64,
/*300342*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300344*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*300347*/              OPC_EmitMergeInputChains, 1, 3, 
/*300350*/              OPC_EmitConvertToTarget, 5,
/*300352*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*300367*/            /*Scope*/ 53, /*->300421*/
/*300368*/              OPC_MoveChild1,
/*300369*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300372*/              OPC_RecordMemRef,
/*300373*/              OPC_RecordNode, // #2 = 'ld' chained node
/*300374*/              OPC_CheckFoldableChainNode,
/*300375*/              OPC_RecordChild1, // #3 = $src3
/*300376*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300378*/              OPC_CheckPredicate, 9, // Predicate_load
/*300380*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*300382*/              OPC_MoveParent,
/*300383*/              OPC_RecordChild2, // #4 = $src2
/*300384*/              OPC_RecordChild3, // #5 = $src4
/*300385*/              OPC_MoveChild3,
/*300386*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300389*/              OPC_MoveParent,
/*300390*/              OPC_MoveParent,
/*300391*/              OPC_CheckChild2Same, 1,
/*300393*/              OPC_CheckType, MVT::v2i64,
/*300395*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300397*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*300400*/              OPC_EmitMergeInputChains1_2,
/*300401*/              OPC_EmitConvertToTarget, 5,
/*300403*/              OPC_EmitNodeXForm, 16, 11, // VPTERNLOG132_imm8
/*300406*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*300421*/            0, /*End of Scope*/
/*300422*/          /*Scope*/ 54, /*->300477*/
/*300423*/            OPC_MoveChild0,
/*300424*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300427*/            OPC_RecordMemRef,
/*300428*/            OPC_RecordNode, // #1 = 'ld' chained node
/*300429*/            OPC_CheckFoldableChainNode,
/*300430*/            OPC_RecordChild1, // #2 = $src3
/*300431*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300433*/            OPC_CheckPredicate, 9, // Predicate_load
/*300435*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*300437*/            OPC_MoveParent,
/*300438*/            OPC_RecordChild1, // #3 = $src2
/*300439*/            OPC_RecordChild2, // #4 = $src1
/*300440*/            OPC_RecordChild3, // #5 = $src4
/*300441*/            OPC_MoveChild3,
/*300442*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300445*/            OPC_MoveParent,
/*300446*/            OPC_MoveParent,
/*300447*/            OPC_CheckChild2Same, 4,
/*300449*/            OPC_CheckType, MVT::v2i64,
/*300451*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300453*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*300456*/            OPC_EmitMergeInputChains1_1,
/*300457*/            OPC_EmitConvertToTarget, 5,
/*300459*/            OPC_EmitNodeXForm, 15, 11, // VPTERNLOG321_imm8
/*300462*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 12, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                      // Dst: (VPTERNLOGQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*300477*/          /*Scope*/ 113, /*->300591*/
/*300478*/            OPC_RecordChild0, // #1 = $src2
/*300479*/            OPC_Scope, 55, /*->300536*/ // 2 children in Scope
/*300481*/              OPC_RecordChild1, // #2 = $src1
/*300482*/              OPC_MoveChild2,
/*300483*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300486*/              OPC_RecordMemRef,
/*300487*/              OPC_RecordNode, // #3 = 'ld' chained node
/*300488*/              OPC_CheckFoldableChainNode,
/*300489*/              OPC_RecordChild1, // #4 = $src3
/*300490*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300492*/              OPC_CheckPredicate, 9, // Predicate_load
/*300494*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*300496*/              OPC_MoveParent,
/*300497*/              OPC_RecordChild3, // #5 = $src4
/*300498*/              OPC_MoveChild3,
/*300499*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300502*/              OPC_MoveParent,
/*300503*/              OPC_MoveParent,
/*300504*/              OPC_CheckChild2Same, 2,
/*300506*/              OPC_CheckType, MVT::v2i64,
/*300508*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300510*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*300513*/              OPC_EmitMergeInputChains, 1, 3, 
/*300516*/              OPC_EmitConvertToTarget, 5,
/*300518*/              OPC_EmitNodeXForm, 17, 11, // VPTERNLOG213_imm8
/*300521*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*300536*/            /*Scope*/ 53, /*->300590*/
/*300537*/              OPC_MoveChild1,
/*300538*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300541*/              OPC_RecordMemRef,
/*300542*/              OPC_RecordNode, // #2 = 'ld' chained node
/*300543*/              OPC_CheckFoldableChainNode,
/*300544*/              OPC_RecordChild1, // #3 = $src3
/*300545*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300547*/              OPC_CheckPredicate, 9, // Predicate_load
/*300549*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*300551*/              OPC_MoveParent,
/*300552*/              OPC_RecordChild2, // #4 = $src1
/*300553*/              OPC_RecordChild3, // #5 = $src4
/*300554*/              OPC_MoveChild3,
/*300555*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300558*/              OPC_MoveParent,
/*300559*/              OPC_MoveParent,
/*300560*/              OPC_CheckChild2Same, 4,
/*300562*/              OPC_CheckType, MVT::v2i64,
/*300564*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300566*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*300569*/              OPC_EmitMergeInputChains1_2,
/*300570*/              OPC_EmitConvertToTarget, 5,
/*300572*/              OPC_EmitNodeXForm, 18, 11, // VPTERNLOG231_imm8
/*300575*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 12, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*300590*/            0, /*End of Scope*/
/*300591*/          /*Scope*/ 54, /*->300646*/
/*300592*/            OPC_MoveChild0,
/*300593*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300596*/            OPC_RecordMemRef,
/*300597*/            OPC_RecordNode, // #1 = 'ld' chained node
/*300598*/            OPC_CheckFoldableChainNode,
/*300599*/            OPC_RecordChild1, // #2 = $src3
/*300600*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300602*/            OPC_CheckPredicate, 9, // Predicate_load
/*300604*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*300606*/            OPC_MoveParent,
/*300607*/            OPC_RecordChild1, // #3 = $src1
/*300608*/            OPC_RecordChild2, // #4 = $src2
/*300609*/            OPC_RecordChild3, // #5 = $src4
/*300610*/            OPC_MoveChild3,
/*300611*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300614*/            OPC_MoveParent,
/*300615*/            OPC_MoveParent,
/*300616*/            OPC_CheckChild2Same, 3,
/*300618*/            OPC_CheckType, MVT::v2i64,
/*300620*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300622*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*300625*/            OPC_EmitMergeInputChains1_1,
/*300626*/            OPC_EmitConvertToTarget, 5,
/*300628*/            OPC_EmitNodeXForm, 19, 11, // VPTERNLOG312_imm8
/*300631*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 12, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                      // Dst: (VPTERNLOGQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*300646*/          0, /*End of Scope*/
/*300647*/        /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::VSHLD),// ->300838
/*300651*/          OPC_RecordChild0, // #1 = $src1
/*300652*/          OPC_MoveChild1,
/*300653*/          OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(X86ISD::VBROADCAST),// ->300748
/*300657*/            OPC_MoveChild0,
/*300658*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300661*/            OPC_RecordMemRef,
/*300662*/            OPC_RecordNode, // #2 = 'ld' chained node
/*300663*/            OPC_CheckFoldableChainNode,
/*300664*/            OPC_RecordChild1, // #3 = $src2
/*300665*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300667*/            OPC_CheckPredicate, 9, // Predicate_load
/*300669*/            OPC_CheckType, MVT::i64,
/*300671*/            OPC_MoveParent,
/*300672*/            OPC_MoveParent,
/*300673*/            OPC_RecordChild2, // #4 = $src3
/*300674*/            OPC_MoveChild2,
/*300675*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300678*/            OPC_MoveParent,
/*300679*/            OPC_MoveParent,
/*300680*/            OPC_Scope, 38, /*->300720*/ // 2 children in Scope
/*300682*/              OPC_MoveChild2,
/*300683*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*300686*/              OPC_MoveChild0,
/*300687*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*300690*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*300692*/              OPC_CheckType, MVT::v4i32,
/*300694*/              OPC_MoveParent,
/*300695*/              OPC_MoveParent,
/*300696*/              OPC_CheckType, MVT::v2i64,
/*300698*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*300700*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*300703*/              OPC_EmitMergeInputChains1_2,
/*300704*/              OPC_EmitConvertToTarget, 4,
/*300706*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSHLDQZ128rmbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*300720*/            /*Scope*/ 26, /*->300747*/
/*300721*/              OPC_RecordChild2, // #5 = $src0
/*300722*/              OPC_CheckType, MVT::v2i64,
/*300724*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*300726*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*300729*/              OPC_EmitMergeInputChains1_2,
/*300730*/              OPC_EmitConvertToTarget, 4,
/*300732*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                        // Dst: (VPSHLDQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*300747*/            0, /*End of Scope*/
/*300748*/          /*SwitchOpcode*/ 86, TARGET_VAL(ISD::LOAD),// ->300837
/*300751*/            OPC_RecordMemRef,
/*300752*/            OPC_RecordNode, // #2 = 'ld' chained node
/*300753*/            OPC_CheckFoldableChainNode,
/*300754*/            OPC_RecordChild1, // #3 = $src2
/*300755*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300757*/            OPC_CheckPredicate, 9, // Predicate_load
/*300759*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*300761*/            OPC_MoveParent,
/*300762*/            OPC_RecordChild2, // #4 = $src3
/*300763*/            OPC_MoveChild2,
/*300764*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300767*/            OPC_MoveParent,
/*300768*/            OPC_MoveParent,
/*300769*/            OPC_Scope, 38, /*->300809*/ // 2 children in Scope
/*300771*/              OPC_MoveChild2,
/*300772*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*300775*/              OPC_MoveChild0,
/*300776*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*300779*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*300781*/              OPC_CheckType, MVT::v4i32,
/*300783*/              OPC_MoveParent,
/*300784*/              OPC_MoveParent,
/*300785*/              OPC_CheckType, MVT::v2i64,
/*300787*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*300789*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*300792*/              OPC_EmitMergeInputChains1_2,
/*300793*/              OPC_EmitConvertToTarget, 4,
/*300795*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSHLDQZ128rmikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*300809*/            /*Scope*/ 26, /*->300836*/
/*300810*/              OPC_RecordChild2, // #5 = $src0
/*300811*/              OPC_CheckType, MVT::v2i64,
/*300813*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*300815*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*300818*/              OPC_EmitMergeInputChains1_2,
/*300819*/              OPC_EmitConvertToTarget, 4,
/*300821*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPSHLDQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*300836*/            0, /*End of Scope*/
/*300837*/          0, // EndSwitchOpcode
/*300838*/        /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::VSHRD),// ->301029
/*300842*/          OPC_RecordChild0, // #1 = $src1
/*300843*/          OPC_MoveChild1,
/*300844*/          OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(X86ISD::VBROADCAST),// ->300939
/*300848*/            OPC_MoveChild0,
/*300849*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*300852*/            OPC_RecordMemRef,
/*300853*/            OPC_RecordNode, // #2 = 'ld' chained node
/*300854*/            OPC_CheckFoldableChainNode,
/*300855*/            OPC_RecordChild1, // #3 = $src2
/*300856*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300858*/            OPC_CheckPredicate, 9, // Predicate_load
/*300860*/            OPC_CheckType, MVT::i64,
/*300862*/            OPC_MoveParent,
/*300863*/            OPC_MoveParent,
/*300864*/            OPC_RecordChild2, // #4 = $src3
/*300865*/            OPC_MoveChild2,
/*300866*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300869*/            OPC_MoveParent,
/*300870*/            OPC_MoveParent,
/*300871*/            OPC_Scope, 38, /*->300911*/ // 2 children in Scope
/*300873*/              OPC_MoveChild2,
/*300874*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*300877*/              OPC_MoveChild0,
/*300878*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*300881*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*300883*/              OPC_CheckType, MVT::v4i32,
/*300885*/              OPC_MoveParent,
/*300886*/              OPC_MoveParent,
/*300887*/              OPC_CheckType, MVT::v2i64,
/*300889*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*300891*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*300894*/              OPC_EmitMergeInputChains1_2,
/*300895*/              OPC_EmitConvertToTarget, 4,
/*300897*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPSHRDQZ128rmbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*300911*/            /*Scope*/ 26, /*->300938*/
/*300912*/              OPC_RecordChild2, // #5 = $src0
/*300913*/              OPC_CheckType, MVT::v2i64,
/*300915*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*300917*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*300920*/              OPC_EmitMergeInputChains1_2,
/*300921*/              OPC_EmitConvertToTarget, 4,
/*300923*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                        // Dst: (VPSHRDQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*300938*/            0, /*End of Scope*/
/*300939*/          /*SwitchOpcode*/ 86, TARGET_VAL(ISD::LOAD),// ->301028
/*300942*/            OPC_RecordMemRef,
/*300943*/            OPC_RecordNode, // #2 = 'ld' chained node
/*300944*/            OPC_CheckFoldableChainNode,
/*300945*/            OPC_RecordChild1, // #3 = $src2
/*300946*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300948*/            OPC_CheckPredicate, 9, // Predicate_load
/*300950*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*300952*/            OPC_MoveParent,
/*300953*/            OPC_RecordChild2, // #4 = $src3
/*300954*/            OPC_MoveChild2,
/*300955*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*300958*/            OPC_MoveParent,
/*300959*/            OPC_MoveParent,
/*300960*/            OPC_Scope, 38, /*->301000*/ // 2 children in Scope
/*300962*/              OPC_MoveChild2,
/*300963*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*300966*/              OPC_MoveChild0,
/*300967*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*300970*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*300972*/              OPC_CheckType, MVT::v4i32,
/*300974*/              OPC_MoveParent,
/*300975*/              OPC_MoveParent,
/*300976*/              OPC_CheckType, MVT::v2i64,
/*300978*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*300980*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*300983*/              OPC_EmitMergeInputChains1_2,
/*300984*/              OPC_EmitConvertToTarget, 4,
/*300986*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSHRDQZ128rmikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*301000*/            /*Scope*/ 26, /*->301027*/
/*301001*/              OPC_RecordChild2, // #5 = $src0
/*301002*/              OPC_CheckType, MVT::v2i64,
/*301004*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*301006*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*301009*/              OPC_EmitMergeInputChains1_2,
/*301010*/              OPC_EmitConvertToTarget, 4,
/*301012*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPSHRDQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*301027*/            0, /*End of Scope*/
/*301028*/          0, // EndSwitchOpcode
/*301029*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(X86ISD::VBROADCAST),// ->301193
/*301033*/          OPC_MoveChild0,
/*301034*/          OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->301117
/*301038*/            OPC_MoveChild0,
/*301039*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301042*/            OPC_RecordMemRef,
/*301043*/            OPC_RecordNode, // #1 = 'ld' chained node
/*301044*/            OPC_CheckFoldableChainNode,
/*301045*/            OPC_RecordChild1, // #2 = $src
/*301046*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301048*/            OPC_CheckPredicate, 9, // Predicate_load
/*301050*/            OPC_CheckType, MVT::i64,
/*301052*/            OPC_MoveParent,
/*301053*/            OPC_CheckType, MVT::v2i64,
/*301055*/            OPC_MoveParent,
/*301056*/            OPC_MoveParent,
/*301057*/            OPC_Scope, 34, /*->301093*/ // 2 children in Scope
/*301059*/              OPC_MoveChild2,
/*301060*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*301063*/              OPC_MoveChild0,
/*301064*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*301067*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*301069*/              OPC_CheckType, MVT::v4i32,
/*301071*/              OPC_MoveParent,
/*301072*/              OPC_MoveParent,
/*301073*/              OPC_CheckType, MVT::v2i64,
/*301075*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301077*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*301080*/              OPC_EmitMergeInputChains1_1,
/*301081*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPBROADCASTQZ128mkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301093*/            /*Scope*/ 22, /*->301116*/
/*301094*/              OPC_RecordChild2, // #3 = $src0
/*301095*/              OPC_CheckType, MVT::v2i64,
/*301097*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301099*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*301102*/              OPC_EmitMergeInputChains1_1,
/*301103*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPBROADCASTQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301116*/            0, /*End of Scope*/
/*301117*/          /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->301192
/*301120*/            OPC_RecordMemRef,
/*301121*/            OPC_RecordNode, // #1 = 'ld' chained node
/*301122*/            OPC_CheckFoldableChainNode,
/*301123*/            OPC_RecordChild1, // #2 = $src
/*301124*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301126*/            OPC_CheckPredicate, 9, // Predicate_load
/*301128*/            OPC_CheckType, MVT::i64,
/*301130*/            OPC_MoveParent,
/*301131*/            OPC_MoveParent,
/*301132*/            OPC_Scope, 34, /*->301168*/ // 2 children in Scope
/*301134*/              OPC_MoveChild2,
/*301135*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*301138*/              OPC_MoveChild0,
/*301139*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*301142*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*301144*/              OPC_CheckType, MVT::v4i32,
/*301146*/              OPC_MoveParent,
/*301147*/              OPC_MoveParent,
/*301148*/              OPC_CheckType, MVT::v2i64,
/*301150*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301152*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*301155*/              OPC_EmitMergeInputChains1_1,
/*301156*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPBROADCASTQZ128mkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301168*/            /*Scope*/ 22, /*->301191*/
/*301169*/              OPC_RecordChild2, // #3 = $src0
/*301170*/              OPC_CheckType, MVT::v2i64,
/*301172*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301174*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*301177*/              OPC_EmitMergeInputChains1_1,
/*301178*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPBROADCASTQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301191*/            0, /*End of Scope*/
/*301192*/          0, // EndSwitchOpcode
/*301193*/        /*SwitchOpcode*/ 102|128,1/*230*/, TARGET_VAL(X86ISD::VPERMV3),// ->301427
/*301197*/          OPC_RecordChild0, // #1 = $src1
/*301198*/          OPC_RecordChild1, // #2 = $src2
/*301199*/          OPC_MoveChild2,
/*301200*/          OPC_SwitchOpcode /*2 cases */, 112, TARGET_VAL(X86ISD::VBROADCAST),// ->301316
/*301204*/            OPC_MoveChild0,
/*301205*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301208*/            OPC_RecordMemRef,
/*301209*/            OPC_RecordNode, // #3 = 'ld' chained node
/*301210*/            OPC_CheckFoldableChainNode,
/*301211*/            OPC_RecordChild1, // #4 = $src3
/*301212*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301214*/            OPC_CheckPredicate, 9, // Predicate_load
/*301216*/            OPC_CheckType, MVT::i64,
/*301218*/            OPC_MoveParent,
/*301219*/            OPC_MoveParent,
/*301220*/            OPC_MoveParent,
/*301221*/            OPC_Scope, 38, /*->301261*/ // 3 children in Scope
/*301223*/              OPC_MoveChild2,
/*301224*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*301227*/              OPC_MoveChild0,
/*301228*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*301231*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*301233*/              OPC_CheckType, MVT::v4i32,
/*301235*/              OPC_MoveParent,
/*301236*/              OPC_MoveParent,
/*301237*/              OPC_CheckType, MVT::v2i64,
/*301239*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*301241*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*301244*/              OPC_EmitMergeInputChains, 1, 3, 
/*301247*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMT2Q128rmbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*301261*/            /*Scope*/ 26, /*->301288*/
/*301262*/              OPC_CheckChild2Same, 2,
/*301264*/              OPC_CheckType, MVT::v2i64,
/*301266*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*301268*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*301271*/              OPC_EmitMergeInputChains, 1, 3, 
/*301274*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Q128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPERMI2Q128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*301288*/            /*Scope*/ 26, /*->301315*/
/*301289*/              OPC_CheckChild2Same, 1,
/*301291*/              OPC_CheckType, MVT::v2i64,
/*301293*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*301295*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*301298*/              OPC_EmitMergeInputChains, 1, 3, 
/*301301*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPERMT2Q128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*301315*/            0, /*End of Scope*/
/*301316*/          /*SwitchOpcode*/ 107, TARGET_VAL(ISD::LOAD),// ->301426
/*301319*/            OPC_RecordMemRef,
/*301320*/            OPC_RecordNode, // #3 = 'ld' chained node
/*301321*/            OPC_CheckFoldableChainNode,
/*301322*/            OPC_RecordChild1, // #4 = $src3
/*301323*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301325*/            OPC_CheckPredicate, 9, // Predicate_load
/*301327*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*301329*/            OPC_MoveParent,
/*301330*/            OPC_MoveParent,
/*301331*/            OPC_Scope, 38, /*->301371*/ // 3 children in Scope
/*301333*/              OPC_MoveChild2,
/*301334*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*301337*/              OPC_MoveChild0,
/*301338*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*301341*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*301343*/              OPC_CheckType, MVT::v4i32,
/*301345*/              OPC_MoveParent,
/*301346*/              OPC_MoveParent,
/*301347*/              OPC_CheckType, MVT::v2i64,
/*301349*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*301351*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*301354*/              OPC_EmitMergeInputChains, 1, 3, 
/*301357*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPERMT2Q128rmkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*301371*/            /*Scope*/ 26, /*->301398*/
/*301372*/              OPC_CheckChild2Same, 2,
/*301374*/              OPC_CheckType, MVT::v2i64,
/*301376*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*301378*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*301381*/              OPC_EmitMergeInputChains, 1, 3, 
/*301384*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Q128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                        // Dst: (VPERMI2Q128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*301398*/            /*Scope*/ 26, /*->301425*/
/*301399*/              OPC_CheckChild2Same, 1,
/*301401*/              OPC_CheckType, MVT::v2i64,
/*301403*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*301405*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*301408*/              OPC_EmitMergeInputChains, 1, 3, 
/*301411*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                        // Dst: (VPERMT2Q128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*301425*/            0, /*End of Scope*/
/*301426*/          0, // EndSwitchOpcode
/*301427*/        /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(ISD::ADD),// ->301829
/*301431*/          OPC_Scope, 57, /*->301490*/ // 8 children in Scope
/*301433*/            OPC_RecordChild0, // #1 = $src1
/*301434*/            OPC_MoveChild1,
/*301435*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*301438*/            OPC_MoveChild0,
/*301439*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301442*/            OPC_RecordMemRef,
/*301443*/            OPC_RecordNode, // #2 = 'ld' chained node
/*301444*/            OPC_CheckFoldableChainNode,
/*301445*/            OPC_RecordChild1, // #3 = $src2
/*301446*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301448*/            OPC_CheckPredicate, 9, // Predicate_load
/*301450*/            OPC_CheckType, MVT::i64,
/*301452*/            OPC_MoveParent,
/*301453*/            OPC_MoveParent,
/*301454*/            OPC_MoveParent,
/*301455*/            OPC_MoveChild2,
/*301456*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*301459*/            OPC_MoveChild0,
/*301460*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*301463*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*301465*/            OPC_CheckType, MVT::v4i32,
/*301467*/            OPC_MoveParent,
/*301468*/            OPC_MoveParent,
/*301469*/            OPC_CheckType, MVT::v2i64,
/*301471*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301473*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*301476*/            OPC_EmitMergeInputChains1_2,
/*301477*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (add:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPADDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301490*/          /*Scope*/ 57, /*->301548*/
/*301491*/            OPC_MoveChild0,
/*301492*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*301495*/            OPC_MoveChild0,
/*301496*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301499*/            OPC_RecordMemRef,
/*301500*/            OPC_RecordNode, // #1 = 'ld' chained node
/*301501*/            OPC_CheckFoldableChainNode,
/*301502*/            OPC_RecordChild1, // #2 = $src2
/*301503*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301505*/            OPC_CheckPredicate, 9, // Predicate_load
/*301507*/            OPC_CheckType, MVT::i64,
/*301509*/            OPC_MoveParent,
/*301510*/            OPC_MoveParent,
/*301511*/            OPC_RecordChild1, // #3 = $src1
/*301512*/            OPC_MoveParent,
/*301513*/            OPC_MoveChild2,
/*301514*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*301517*/            OPC_MoveChild0,
/*301518*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*301521*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*301523*/            OPC_CheckType, MVT::v4i32,
/*301525*/            OPC_MoveParent,
/*301526*/            OPC_MoveParent,
/*301527*/            OPC_CheckType, MVT::v2i64,
/*301529*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301531*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*301534*/            OPC_EmitMergeInputChains1_1,
/*301535*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (add:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPADDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301548*/          /*Scope*/ 52, /*->301601*/
/*301549*/            OPC_RecordChild0, // #1 = $src1
/*301550*/            OPC_MoveChild1,
/*301551*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301554*/            OPC_RecordMemRef,
/*301555*/            OPC_RecordNode, // #2 = 'ld' chained node
/*301556*/            OPC_CheckFoldableChainNode,
/*301557*/            OPC_RecordChild1, // #3 = $src2
/*301558*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301560*/            OPC_CheckPredicate, 9, // Predicate_load
/*301562*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*301564*/            OPC_MoveParent,
/*301565*/            OPC_MoveParent,
/*301566*/            OPC_MoveChild2,
/*301567*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*301570*/            OPC_MoveChild0,
/*301571*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*301574*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*301576*/            OPC_CheckType, MVT::v4i32,
/*301578*/            OPC_MoveParent,
/*301579*/            OPC_MoveParent,
/*301580*/            OPC_CheckType, MVT::v2i64,
/*301582*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301584*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*301587*/            OPC_EmitMergeInputChains1_2,
/*301588*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (add:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPADDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301601*/          /*Scope*/ 52, /*->301654*/
/*301602*/            OPC_MoveChild0,
/*301603*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301606*/            OPC_RecordMemRef,
/*301607*/            OPC_RecordNode, // #1 = 'ld' chained node
/*301608*/            OPC_CheckFoldableChainNode,
/*301609*/            OPC_RecordChild1, // #2 = $src2
/*301610*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301612*/            OPC_CheckPredicate, 9, // Predicate_load
/*301614*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*301616*/            OPC_MoveParent,
/*301617*/            OPC_RecordChild1, // #3 = $src1
/*301618*/            OPC_MoveParent,
/*301619*/            OPC_MoveChild2,
/*301620*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*301623*/            OPC_MoveChild0,
/*301624*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*301627*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*301629*/            OPC_CheckType, MVT::v4i32,
/*301631*/            OPC_MoveParent,
/*301632*/            OPC_MoveParent,
/*301633*/            OPC_CheckType, MVT::v2i64,
/*301635*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301637*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*301640*/            OPC_EmitMergeInputChains1_1,
/*301641*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (add:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPADDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301654*/          /*Scope*/ 45, /*->301700*/
/*301655*/            OPC_RecordChild0, // #1 = $src1
/*301656*/            OPC_MoveChild1,
/*301657*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*301660*/            OPC_MoveChild0,
/*301661*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301664*/            OPC_RecordMemRef,
/*301665*/            OPC_RecordNode, // #2 = 'ld' chained node
/*301666*/            OPC_CheckFoldableChainNode,
/*301667*/            OPC_RecordChild1, // #3 = $src2
/*301668*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301670*/            OPC_CheckPredicate, 9, // Predicate_load
/*301672*/            OPC_CheckType, MVT::i64,
/*301674*/            OPC_MoveParent,
/*301675*/            OPC_MoveParent,
/*301676*/            OPC_MoveParent,
/*301677*/            OPC_RecordChild2, // #4 = $src0
/*301678*/            OPC_CheckType, MVT::v2i64,
/*301680*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301682*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*301685*/            OPC_EmitMergeInputChains1_2,
/*301686*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (add:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPADDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301700*/          /*Scope*/ 45, /*->301746*/
/*301701*/            OPC_MoveChild0,
/*301702*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*301705*/            OPC_MoveChild0,
/*301706*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301709*/            OPC_RecordMemRef,
/*301710*/            OPC_RecordNode, // #1 = 'ld' chained node
/*301711*/            OPC_CheckFoldableChainNode,
/*301712*/            OPC_RecordChild1, // #2 = $src2
/*301713*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301715*/            OPC_CheckPredicate, 9, // Predicate_load
/*301717*/            OPC_CheckType, MVT::i64,
/*301719*/            OPC_MoveParent,
/*301720*/            OPC_MoveParent,
/*301721*/            OPC_RecordChild1, // #3 = $src1
/*301722*/            OPC_MoveParent,
/*301723*/            OPC_RecordChild2, // #4 = $src0
/*301724*/            OPC_CheckType, MVT::v2i64,
/*301726*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301728*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*301731*/            OPC_EmitMergeInputChains1_1,
/*301732*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (add:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPADDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301746*/          /*Scope*/ 40, /*->301787*/
/*301747*/            OPC_RecordChild0, // #1 = $src1
/*301748*/            OPC_MoveChild1,
/*301749*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301752*/            OPC_RecordMemRef,
/*301753*/            OPC_RecordNode, // #2 = 'ld' chained node
/*301754*/            OPC_CheckFoldableChainNode,
/*301755*/            OPC_RecordChild1, // #3 = $src2
/*301756*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301758*/            OPC_CheckPredicate, 9, // Predicate_load
/*301760*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*301762*/            OPC_MoveParent,
/*301763*/            OPC_MoveParent,
/*301764*/            OPC_RecordChild2, // #4 = $src0
/*301765*/            OPC_CheckType, MVT::v2i64,
/*301767*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301769*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*301772*/            OPC_EmitMergeInputChains1_2,
/*301773*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (add:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPADDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301787*/          /*Scope*/ 40, /*->301828*/
/*301788*/            OPC_MoveChild0,
/*301789*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301792*/            OPC_RecordMemRef,
/*301793*/            OPC_RecordNode, // #1 = 'ld' chained node
/*301794*/            OPC_CheckFoldableChainNode,
/*301795*/            OPC_RecordChild1, // #2 = $src2
/*301796*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301798*/            OPC_CheckPredicate, 9, // Predicate_load
/*301800*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*301802*/            OPC_MoveParent,
/*301803*/            OPC_RecordChild1, // #3 = $src1
/*301804*/            OPC_MoveParent,
/*301805*/            OPC_RecordChild2, // #4 = $src0
/*301806*/            OPC_CheckType, MVT::v2i64,
/*301808*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301810*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*301813*/            OPC_EmitMergeInputChains1_1,
/*301814*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (add:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPADDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301828*/          0, /*End of Scope*/
/*301829*/        /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(ISD::SUB),// ->301996
/*301833*/          OPC_RecordChild0, // #1 = $src1
/*301834*/          OPC_MoveChild1,
/*301835*/          OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->301918
/*301839*/            OPC_MoveChild0,
/*301840*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301843*/            OPC_RecordMemRef,
/*301844*/            OPC_RecordNode, // #2 = 'ld' chained node
/*301845*/            OPC_CheckFoldableChainNode,
/*301846*/            OPC_RecordChild1, // #3 = $src2
/*301847*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301849*/            OPC_CheckPredicate, 9, // Predicate_load
/*301851*/            OPC_CheckType, MVT::i64,
/*301853*/            OPC_MoveParent,
/*301854*/            OPC_MoveParent,
/*301855*/            OPC_MoveParent,
/*301856*/            OPC_Scope, 35, /*->301893*/ // 2 children in Scope
/*301858*/              OPC_MoveChild2,
/*301859*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*301862*/              OPC_MoveChild0,
/*301863*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*301866*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*301868*/              OPC_CheckType, MVT::v4i32,
/*301870*/              OPC_MoveParent,
/*301871*/              OPC_MoveParent,
/*301872*/              OPC_CheckType, MVT::v2i64,
/*301874*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301876*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*301879*/              OPC_EmitMergeInputChains1_2,
/*301880*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sub:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSUBQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301893*/            /*Scope*/ 23, /*->301917*/
/*301894*/              OPC_RecordChild2, // #4 = $src0
/*301895*/              OPC_CheckType, MVT::v2i64,
/*301897*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301899*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*301902*/              OPC_EmitMergeInputChains1_2,
/*301903*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sub:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPSUBQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301917*/            0, /*End of Scope*/
/*301918*/          /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->301995
/*301921*/            OPC_RecordMemRef,
/*301922*/            OPC_RecordNode, // #2 = 'ld' chained node
/*301923*/            OPC_CheckFoldableChainNode,
/*301924*/            OPC_RecordChild1, // #3 = $src2
/*301925*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301927*/            OPC_CheckPredicate, 9, // Predicate_load
/*301929*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*301931*/            OPC_MoveParent,
/*301932*/            OPC_MoveParent,
/*301933*/            OPC_Scope, 35, /*->301970*/ // 2 children in Scope
/*301935*/              OPC_MoveChild2,
/*301936*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*301939*/              OPC_MoveChild0,
/*301940*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*301943*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*301945*/              OPC_CheckType, MVT::v4i32,
/*301947*/              OPC_MoveParent,
/*301948*/              OPC_MoveParent,
/*301949*/              OPC_CheckType, MVT::v2i64,
/*301951*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301953*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*301956*/              OPC_EmitMergeInputChains1_2,
/*301957*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sub:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSUBQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301970*/            /*Scope*/ 23, /*->301994*/
/*301971*/              OPC_RecordChild2, // #4 = $src0
/*301972*/              OPC_CheckType, MVT::v2i64,
/*301974*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301976*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*301979*/              OPC_EmitMergeInputChains1_2,
/*301980*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sub:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPSUBQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301994*/            0, /*End of Scope*/
/*301995*/          0, // EndSwitchOpcode
/*301996*/        /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(ISD::MUL),// ->302398
/*302000*/          OPC_Scope, 57, /*->302059*/ // 8 children in Scope
/*302002*/            OPC_RecordChild0, // #1 = $src1
/*302003*/            OPC_MoveChild1,
/*302004*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*302007*/            OPC_MoveChild0,
/*302008*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302011*/            OPC_RecordMemRef,
/*302012*/            OPC_RecordNode, // #2 = 'ld' chained node
/*302013*/            OPC_CheckFoldableChainNode,
/*302014*/            OPC_RecordChild1, // #3 = $src2
/*302015*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302017*/            OPC_CheckPredicate, 9, // Predicate_load
/*302019*/            OPC_CheckType, MVT::i64,
/*302021*/            OPC_MoveParent,
/*302022*/            OPC_MoveParent,
/*302023*/            OPC_MoveParent,
/*302024*/            OPC_MoveChild2,
/*302025*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302028*/            OPC_MoveChild0,
/*302029*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*302032*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*302034*/            OPC_CheckType, MVT::v4i32,
/*302036*/            OPC_MoveParent,
/*302037*/            OPC_MoveParent,
/*302038*/            OPC_CheckType, MVT::v2i64,
/*302040*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*302042*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*302045*/            OPC_EmitMergeInputChains1_2,
/*302046*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULLQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302059*/          /*Scope*/ 57, /*->302117*/
/*302060*/            OPC_MoveChild0,
/*302061*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*302064*/            OPC_MoveChild0,
/*302065*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302068*/            OPC_RecordMemRef,
/*302069*/            OPC_RecordNode, // #1 = 'ld' chained node
/*302070*/            OPC_CheckFoldableChainNode,
/*302071*/            OPC_RecordChild1, // #2 = $src2
/*302072*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302074*/            OPC_CheckPredicate, 9, // Predicate_load
/*302076*/            OPC_CheckType, MVT::i64,
/*302078*/            OPC_MoveParent,
/*302079*/            OPC_MoveParent,
/*302080*/            OPC_RecordChild1, // #3 = $src1
/*302081*/            OPC_MoveParent,
/*302082*/            OPC_MoveChild2,
/*302083*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302086*/            OPC_MoveChild0,
/*302087*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*302090*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*302092*/            OPC_CheckType, MVT::v4i32,
/*302094*/            OPC_MoveParent,
/*302095*/            OPC_MoveParent,
/*302096*/            OPC_CheckType, MVT::v2i64,
/*302098*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*302100*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*302103*/            OPC_EmitMergeInputChains1_1,
/*302104*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (mul:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULLQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302117*/          /*Scope*/ 52, /*->302170*/
/*302118*/            OPC_RecordChild0, // #1 = $src1
/*302119*/            OPC_MoveChild1,
/*302120*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302123*/            OPC_RecordMemRef,
/*302124*/            OPC_RecordNode, // #2 = 'ld' chained node
/*302125*/            OPC_CheckFoldableChainNode,
/*302126*/            OPC_RecordChild1, // #3 = $src2
/*302127*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302129*/            OPC_CheckPredicate, 9, // Predicate_load
/*302131*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*302133*/            OPC_MoveParent,
/*302134*/            OPC_MoveParent,
/*302135*/            OPC_MoveChild2,
/*302136*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302139*/            OPC_MoveChild0,
/*302140*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*302143*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*302145*/            OPC_CheckType, MVT::v4i32,
/*302147*/            OPC_MoveParent,
/*302148*/            OPC_MoveParent,
/*302149*/            OPC_CheckType, MVT::v2i64,
/*302151*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*302153*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*302156*/            OPC_EmitMergeInputChains1_2,
/*302157*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMULLQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302170*/          /*Scope*/ 52, /*->302223*/
/*302171*/            OPC_MoveChild0,
/*302172*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302175*/            OPC_RecordMemRef,
/*302176*/            OPC_RecordNode, // #1 = 'ld' chained node
/*302177*/            OPC_CheckFoldableChainNode,
/*302178*/            OPC_RecordChild1, // #2 = $src2
/*302179*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302181*/            OPC_CheckPredicate, 9, // Predicate_load
/*302183*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*302185*/            OPC_MoveParent,
/*302186*/            OPC_RecordChild1, // #3 = $src1
/*302187*/            OPC_MoveParent,
/*302188*/            OPC_MoveChild2,
/*302189*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302192*/            OPC_MoveChild0,
/*302193*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*302196*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*302198*/            OPC_CheckType, MVT::v4i32,
/*302200*/            OPC_MoveParent,
/*302201*/            OPC_MoveParent,
/*302202*/            OPC_CheckType, MVT::v2i64,
/*302204*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*302206*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*302209*/            OPC_EmitMergeInputChains1_1,
/*302210*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (mul:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMULLQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302223*/          /*Scope*/ 45, /*->302269*/
/*302224*/            OPC_RecordChild0, // #1 = $src1
/*302225*/            OPC_MoveChild1,
/*302226*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*302229*/            OPC_MoveChild0,
/*302230*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302233*/            OPC_RecordMemRef,
/*302234*/            OPC_RecordNode, // #2 = 'ld' chained node
/*302235*/            OPC_CheckFoldableChainNode,
/*302236*/            OPC_RecordChild1, // #3 = $src2
/*302237*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302239*/            OPC_CheckPredicate, 9, // Predicate_load
/*302241*/            OPC_CheckType, MVT::i64,
/*302243*/            OPC_MoveParent,
/*302244*/            OPC_MoveParent,
/*302245*/            OPC_MoveParent,
/*302246*/            OPC_RecordChild2, // #4 = $src0
/*302247*/            OPC_CheckType, MVT::v2i64,
/*302249*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*302251*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302254*/            OPC_EmitMergeInputChains1_2,
/*302255*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMULLQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302269*/          /*Scope*/ 45, /*->302315*/
/*302270*/            OPC_MoveChild0,
/*302271*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*302274*/            OPC_MoveChild0,
/*302275*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302278*/            OPC_RecordMemRef,
/*302279*/            OPC_RecordNode, // #1 = 'ld' chained node
/*302280*/            OPC_CheckFoldableChainNode,
/*302281*/            OPC_RecordChild1, // #2 = $src2
/*302282*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302284*/            OPC_CheckPredicate, 9, // Predicate_load
/*302286*/            OPC_CheckType, MVT::i64,
/*302288*/            OPC_MoveParent,
/*302289*/            OPC_MoveParent,
/*302290*/            OPC_RecordChild1, // #3 = $src1
/*302291*/            OPC_MoveParent,
/*302292*/            OPC_RecordChild2, // #4 = $src0
/*302293*/            OPC_CheckType, MVT::v2i64,
/*302295*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*302297*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302300*/            OPC_EmitMergeInputChains1_1,
/*302301*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (mul:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMULLQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302315*/          /*Scope*/ 40, /*->302356*/
/*302316*/            OPC_RecordChild0, // #1 = $src1
/*302317*/            OPC_MoveChild1,
/*302318*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302321*/            OPC_RecordMemRef,
/*302322*/            OPC_RecordNode, // #2 = 'ld' chained node
/*302323*/            OPC_CheckFoldableChainNode,
/*302324*/            OPC_RecordChild1, // #3 = $src2
/*302325*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302327*/            OPC_CheckPredicate, 9, // Predicate_load
/*302329*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*302331*/            OPC_MoveParent,
/*302332*/            OPC_MoveParent,
/*302333*/            OPC_RecordChild2, // #4 = $src0
/*302334*/            OPC_CheckType, MVT::v2i64,
/*302336*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*302338*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302341*/            OPC_EmitMergeInputChains1_2,
/*302342*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMULLQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302356*/          /*Scope*/ 40, /*->302397*/
/*302357*/            OPC_MoveChild0,
/*302358*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302361*/            OPC_RecordMemRef,
/*302362*/            OPC_RecordNode, // #1 = 'ld' chained node
/*302363*/            OPC_CheckFoldableChainNode,
/*302364*/            OPC_RecordChild1, // #2 = $src2
/*302365*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302367*/            OPC_CheckPredicate, 9, // Predicate_load
/*302369*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*302371*/            OPC_MoveParent,
/*302372*/            OPC_RecordChild1, // #3 = $src1
/*302373*/            OPC_MoveParent,
/*302374*/            OPC_RecordChild2, // #4 = $src0
/*302375*/            OPC_CheckType, MVT::v2i64,
/*302377*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*302379*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302382*/            OPC_EmitMergeInputChains1_1,
/*302383*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (mul:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMULLQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302397*/          0, /*End of Scope*/
/*302398*/        /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(X86ISD::PMULDQ),// ->302800
/*302402*/          OPC_Scope, 57, /*->302461*/ // 8 children in Scope
/*302404*/            OPC_RecordChild0, // #1 = $src1
/*302405*/            OPC_MoveChild1,
/*302406*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*302409*/            OPC_MoveChild0,
/*302410*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302413*/            OPC_RecordMemRef,
/*302414*/            OPC_RecordNode, // #2 = 'ld' chained node
/*302415*/            OPC_CheckFoldableChainNode,
/*302416*/            OPC_RecordChild1, // #3 = $src2
/*302417*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302419*/            OPC_CheckPredicate, 9, // Predicate_load
/*302421*/            OPC_CheckType, MVT::i64,
/*302423*/            OPC_MoveParent,
/*302424*/            OPC_MoveParent,
/*302425*/            OPC_MoveParent,
/*302426*/            OPC_MoveChild2,
/*302427*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302430*/            OPC_MoveChild0,
/*302431*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*302434*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*302436*/            OPC_CheckType, MVT::v4i32,
/*302438*/            OPC_MoveParent,
/*302439*/            OPC_MoveParent,
/*302440*/            OPC_CheckType, MVT::v2i64,
/*302442*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302444*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*302447*/            OPC_EmitMergeInputChains1_2,
/*302448*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuldq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302461*/          /*Scope*/ 57, /*->302519*/
/*302462*/            OPC_MoveChild0,
/*302463*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*302466*/            OPC_MoveChild0,
/*302467*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302470*/            OPC_RecordMemRef,
/*302471*/            OPC_RecordNode, // #1 = 'ld' chained node
/*302472*/            OPC_CheckFoldableChainNode,
/*302473*/            OPC_RecordChild1, // #2 = $src2
/*302474*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302476*/            OPC_CheckPredicate, 9, // Predicate_load
/*302478*/            OPC_CheckType, MVT::i64,
/*302480*/            OPC_MoveParent,
/*302481*/            OPC_MoveParent,
/*302482*/            OPC_RecordChild1, // #3 = $src1
/*302483*/            OPC_MoveParent,
/*302484*/            OPC_MoveChild2,
/*302485*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302488*/            OPC_MoveChild0,
/*302489*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*302492*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*302494*/            OPC_CheckType, MVT::v4i32,
/*302496*/            OPC_MoveParent,
/*302497*/            OPC_MoveParent,
/*302498*/            OPC_CheckType, MVT::v2i64,
/*302500*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302502*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*302505*/            OPC_EmitMergeInputChains1_1,
/*302506*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuldq:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302519*/          /*Scope*/ 52, /*->302572*/
/*302520*/            OPC_RecordChild0, // #1 = $src1
/*302521*/            OPC_MoveChild1,
/*302522*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302525*/            OPC_RecordMemRef,
/*302526*/            OPC_RecordNode, // #2 = 'ld' chained node
/*302527*/            OPC_CheckFoldableChainNode,
/*302528*/            OPC_RecordChild1, // #3 = $src2
/*302529*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302531*/            OPC_CheckPredicate, 9, // Predicate_load
/*302533*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*302535*/            OPC_MoveParent,
/*302536*/            OPC_MoveParent,
/*302537*/            OPC_MoveChild2,
/*302538*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302541*/            OPC_MoveChild0,
/*302542*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*302545*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*302547*/            OPC_CheckType, MVT::v4i32,
/*302549*/            OPC_MoveParent,
/*302550*/            OPC_MoveParent,
/*302551*/            OPC_CheckType, MVT::v2i64,
/*302553*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302555*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*302558*/            OPC_EmitMergeInputChains1_2,
/*302559*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuldq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMULDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302572*/          /*Scope*/ 52, /*->302625*/
/*302573*/            OPC_MoveChild0,
/*302574*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302577*/            OPC_RecordMemRef,
/*302578*/            OPC_RecordNode, // #1 = 'ld' chained node
/*302579*/            OPC_CheckFoldableChainNode,
/*302580*/            OPC_RecordChild1, // #2 = $src2
/*302581*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302583*/            OPC_CheckPredicate, 9, // Predicate_load
/*302585*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*302587*/            OPC_MoveParent,
/*302588*/            OPC_RecordChild1, // #3 = $src1
/*302589*/            OPC_MoveParent,
/*302590*/            OPC_MoveChild2,
/*302591*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302594*/            OPC_MoveChild0,
/*302595*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*302598*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*302600*/            OPC_CheckType, MVT::v4i32,
/*302602*/            OPC_MoveParent,
/*302603*/            OPC_MoveParent,
/*302604*/            OPC_CheckType, MVT::v2i64,
/*302606*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302608*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*302611*/            OPC_EmitMergeInputChains1_1,
/*302612*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuldq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMULDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302625*/          /*Scope*/ 45, /*->302671*/
/*302626*/            OPC_RecordChild0, // #1 = $src1
/*302627*/            OPC_MoveChild1,
/*302628*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*302631*/            OPC_MoveChild0,
/*302632*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302635*/            OPC_RecordMemRef,
/*302636*/            OPC_RecordNode, // #2 = 'ld' chained node
/*302637*/            OPC_CheckFoldableChainNode,
/*302638*/            OPC_RecordChild1, // #3 = $src2
/*302639*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302641*/            OPC_CheckPredicate, 9, // Predicate_load
/*302643*/            OPC_CheckType, MVT::i64,
/*302645*/            OPC_MoveParent,
/*302646*/            OPC_MoveParent,
/*302647*/            OPC_MoveParent,
/*302648*/            OPC_RecordChild2, // #4 = $src0
/*302649*/            OPC_CheckType, MVT::v2i64,
/*302651*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302653*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302656*/            OPC_EmitMergeInputChains1_2,
/*302657*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuldq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMULDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302671*/          /*Scope*/ 45, /*->302717*/
/*302672*/            OPC_MoveChild0,
/*302673*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*302676*/            OPC_MoveChild0,
/*302677*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302680*/            OPC_RecordMemRef,
/*302681*/            OPC_RecordNode, // #1 = 'ld' chained node
/*302682*/            OPC_CheckFoldableChainNode,
/*302683*/            OPC_RecordChild1, // #2 = $src2
/*302684*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302686*/            OPC_CheckPredicate, 9, // Predicate_load
/*302688*/            OPC_CheckType, MVT::i64,
/*302690*/            OPC_MoveParent,
/*302691*/            OPC_MoveParent,
/*302692*/            OPC_RecordChild1, // #3 = $src1
/*302693*/            OPC_MoveParent,
/*302694*/            OPC_RecordChild2, // #4 = $src0
/*302695*/            OPC_CheckType, MVT::v2i64,
/*302697*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302699*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302702*/            OPC_EmitMergeInputChains1_1,
/*302703*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuldq:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMULDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302717*/          /*Scope*/ 40, /*->302758*/
/*302718*/            OPC_RecordChild0, // #1 = $src1
/*302719*/            OPC_MoveChild1,
/*302720*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302723*/            OPC_RecordMemRef,
/*302724*/            OPC_RecordNode, // #2 = 'ld' chained node
/*302725*/            OPC_CheckFoldableChainNode,
/*302726*/            OPC_RecordChild1, // #3 = $src2
/*302727*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302729*/            OPC_CheckPredicate, 9, // Predicate_load
/*302731*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*302733*/            OPC_MoveParent,
/*302734*/            OPC_MoveParent,
/*302735*/            OPC_RecordChild2, // #4 = $src0
/*302736*/            OPC_CheckType, MVT::v2i64,
/*302738*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302740*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302743*/            OPC_EmitMergeInputChains1_2,
/*302744*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuldq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMULDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302758*/          /*Scope*/ 40, /*->302799*/
/*302759*/            OPC_MoveChild0,
/*302760*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302763*/            OPC_RecordMemRef,
/*302764*/            OPC_RecordNode, // #1 = 'ld' chained node
/*302765*/            OPC_CheckFoldableChainNode,
/*302766*/            OPC_RecordChild1, // #2 = $src2
/*302767*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302769*/            OPC_CheckPredicate, 9, // Predicate_load
/*302771*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*302773*/            OPC_MoveParent,
/*302774*/            OPC_RecordChild1, // #3 = $src1
/*302775*/            OPC_MoveParent,
/*302776*/            OPC_RecordChild2, // #4 = $src0
/*302777*/            OPC_CheckType, MVT::v2i64,
/*302779*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302781*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302784*/            OPC_EmitMergeInputChains1_1,
/*302785*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuldq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMULDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302799*/          0, /*End of Scope*/
/*302800*/        /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(X86ISD::PMULUDQ),// ->303202
/*302804*/          OPC_Scope, 57, /*->302863*/ // 8 children in Scope
/*302806*/            OPC_RecordChild0, // #1 = $src1
/*302807*/            OPC_MoveChild1,
/*302808*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*302811*/            OPC_MoveChild0,
/*302812*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302815*/            OPC_RecordMemRef,
/*302816*/            OPC_RecordNode, // #2 = 'ld' chained node
/*302817*/            OPC_CheckFoldableChainNode,
/*302818*/            OPC_RecordChild1, // #3 = $src2
/*302819*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302821*/            OPC_CheckPredicate, 9, // Predicate_load
/*302823*/            OPC_CheckType, MVT::i64,
/*302825*/            OPC_MoveParent,
/*302826*/            OPC_MoveParent,
/*302827*/            OPC_MoveParent,
/*302828*/            OPC_MoveChild2,
/*302829*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302832*/            OPC_MoveChild0,
/*302833*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*302836*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*302838*/            OPC_CheckType, MVT::v4i32,
/*302840*/            OPC_MoveParent,
/*302841*/            OPC_MoveParent,
/*302842*/            OPC_CheckType, MVT::v2i64,
/*302844*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302846*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*302849*/            OPC_EmitMergeInputChains1_2,
/*302850*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuludq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULUDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302863*/          /*Scope*/ 57, /*->302921*/
/*302864*/            OPC_MoveChild0,
/*302865*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*302868*/            OPC_MoveChild0,
/*302869*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302872*/            OPC_RecordMemRef,
/*302873*/            OPC_RecordNode, // #1 = 'ld' chained node
/*302874*/            OPC_CheckFoldableChainNode,
/*302875*/            OPC_RecordChild1, // #2 = $src2
/*302876*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302878*/            OPC_CheckPredicate, 9, // Predicate_load
/*302880*/            OPC_CheckType, MVT::i64,
/*302882*/            OPC_MoveParent,
/*302883*/            OPC_MoveParent,
/*302884*/            OPC_RecordChild1, // #3 = $src1
/*302885*/            OPC_MoveParent,
/*302886*/            OPC_MoveChild2,
/*302887*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302890*/            OPC_MoveChild0,
/*302891*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*302894*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*302896*/            OPC_CheckType, MVT::v4i32,
/*302898*/            OPC_MoveParent,
/*302899*/            OPC_MoveParent,
/*302900*/            OPC_CheckType, MVT::v2i64,
/*302902*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302904*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*302907*/            OPC_EmitMergeInputChains1_1,
/*302908*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuludq:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMULUDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302921*/          /*Scope*/ 52, /*->302974*/
/*302922*/            OPC_RecordChild0, // #1 = $src1
/*302923*/            OPC_MoveChild1,
/*302924*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302927*/            OPC_RecordMemRef,
/*302928*/            OPC_RecordNode, // #2 = 'ld' chained node
/*302929*/            OPC_CheckFoldableChainNode,
/*302930*/            OPC_RecordChild1, // #3 = $src2
/*302931*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302933*/            OPC_CheckPredicate, 9, // Predicate_load
/*302935*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*302937*/            OPC_MoveParent,
/*302938*/            OPC_MoveParent,
/*302939*/            OPC_MoveChild2,
/*302940*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302943*/            OPC_MoveChild0,
/*302944*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*302947*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*302949*/            OPC_CheckType, MVT::v4i32,
/*302951*/            OPC_MoveParent,
/*302952*/            OPC_MoveParent,
/*302953*/            OPC_CheckType, MVT::v2i64,
/*302955*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302957*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*302960*/            OPC_EmitMergeInputChains1_2,
/*302961*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuludq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMULUDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302974*/          /*Scope*/ 52, /*->303027*/
/*302975*/            OPC_MoveChild0,
/*302976*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*302979*/            OPC_RecordMemRef,
/*302980*/            OPC_RecordNode, // #1 = 'ld' chained node
/*302981*/            OPC_CheckFoldableChainNode,
/*302982*/            OPC_RecordChild1, // #2 = $src2
/*302983*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302985*/            OPC_CheckPredicate, 9, // Predicate_load
/*302987*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*302989*/            OPC_MoveParent,
/*302990*/            OPC_RecordChild1, // #3 = $src1
/*302991*/            OPC_MoveParent,
/*302992*/            OPC_MoveChild2,
/*302993*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*302996*/            OPC_MoveChild0,
/*302997*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*303000*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*303002*/            OPC_CheckType, MVT::v4i32,
/*303004*/            OPC_MoveParent,
/*303005*/            OPC_MoveParent,
/*303006*/            OPC_CheckType, MVT::v2i64,
/*303008*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303010*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*303013*/            OPC_EmitMergeInputChains1_1,
/*303014*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuludq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMULUDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303027*/          /*Scope*/ 45, /*->303073*/
/*303028*/            OPC_RecordChild0, // #1 = $src1
/*303029*/            OPC_MoveChild1,
/*303030*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*303033*/            OPC_MoveChild0,
/*303034*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303037*/            OPC_RecordMemRef,
/*303038*/            OPC_RecordNode, // #2 = 'ld' chained node
/*303039*/            OPC_CheckFoldableChainNode,
/*303040*/            OPC_RecordChild1, // #3 = $src2
/*303041*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303043*/            OPC_CheckPredicate, 9, // Predicate_load
/*303045*/            OPC_CheckType, MVT::i64,
/*303047*/            OPC_MoveParent,
/*303048*/            OPC_MoveParent,
/*303049*/            OPC_MoveParent,
/*303050*/            OPC_RecordChild2, // #4 = $src0
/*303051*/            OPC_CheckType, MVT::v2i64,
/*303053*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303055*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303058*/            OPC_EmitMergeInputChains1_2,
/*303059*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuludq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMULUDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303073*/          /*Scope*/ 45, /*->303119*/
/*303074*/            OPC_MoveChild0,
/*303075*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*303078*/            OPC_MoveChild0,
/*303079*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303082*/            OPC_RecordMemRef,
/*303083*/            OPC_RecordNode, // #1 = 'ld' chained node
/*303084*/            OPC_CheckFoldableChainNode,
/*303085*/            OPC_RecordChild1, // #2 = $src2
/*303086*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303088*/            OPC_CheckPredicate, 9, // Predicate_load
/*303090*/            OPC_CheckType, MVT::i64,
/*303092*/            OPC_MoveParent,
/*303093*/            OPC_MoveParent,
/*303094*/            OPC_RecordChild1, // #3 = $src1
/*303095*/            OPC_MoveParent,
/*303096*/            OPC_RecordChild2, // #4 = $src0
/*303097*/            OPC_CheckType, MVT::v2i64,
/*303099*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303101*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303104*/            OPC_EmitMergeInputChains1_1,
/*303105*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuludq:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMULUDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303119*/          /*Scope*/ 40, /*->303160*/
/*303120*/            OPC_RecordChild0, // #1 = $src1
/*303121*/            OPC_MoveChild1,
/*303122*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303125*/            OPC_RecordMemRef,
/*303126*/            OPC_RecordNode, // #2 = 'ld' chained node
/*303127*/            OPC_CheckFoldableChainNode,
/*303128*/            OPC_RecordChild1, // #3 = $src2
/*303129*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303131*/            OPC_CheckPredicate, 9, // Predicate_load
/*303133*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*303135*/            OPC_MoveParent,
/*303136*/            OPC_MoveParent,
/*303137*/            OPC_RecordChild2, // #4 = $src0
/*303138*/            OPC_CheckType, MVT::v2i64,
/*303140*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303142*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303145*/            OPC_EmitMergeInputChains1_2,
/*303146*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuludq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMULUDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303160*/          /*Scope*/ 40, /*->303201*/
/*303161*/            OPC_MoveChild0,
/*303162*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303165*/            OPC_RecordMemRef,
/*303166*/            OPC_RecordNode, // #1 = 'ld' chained node
/*303167*/            OPC_CheckFoldableChainNode,
/*303168*/            OPC_RecordChild1, // #2 = $src2
/*303169*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303171*/            OPC_CheckPredicate, 9, // Predicate_load
/*303173*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*303175*/            OPC_MoveParent,
/*303176*/            OPC_RecordChild1, // #3 = $src1
/*303177*/            OPC_MoveParent,
/*303178*/            OPC_RecordChild2, // #4 = $src0
/*303179*/            OPC_CheckType, MVT::v2i64,
/*303181*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303183*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303186*/            OPC_EmitMergeInputChains1_1,
/*303187*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuludq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMULUDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303201*/          0, /*End of Scope*/
/*303202*/        /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(ISD::SMAX),// ->303604
/*303206*/          OPC_Scope, 57, /*->303265*/ // 8 children in Scope
/*303208*/            OPC_RecordChild0, // #1 = $src1
/*303209*/            OPC_MoveChild1,
/*303210*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*303213*/            OPC_MoveChild0,
/*303214*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303217*/            OPC_RecordMemRef,
/*303218*/            OPC_RecordNode, // #2 = 'ld' chained node
/*303219*/            OPC_CheckFoldableChainNode,
/*303220*/            OPC_RecordChild1, // #3 = $src2
/*303221*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303223*/            OPC_CheckPredicate, 9, // Predicate_load
/*303225*/            OPC_CheckType, MVT::i64,
/*303227*/            OPC_MoveParent,
/*303228*/            OPC_MoveParent,
/*303229*/            OPC_MoveParent,
/*303230*/            OPC_MoveChild2,
/*303231*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*303234*/            OPC_MoveChild0,
/*303235*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*303238*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*303240*/            OPC_CheckType, MVT::v4i32,
/*303242*/            OPC_MoveParent,
/*303243*/            OPC_MoveParent,
/*303244*/            OPC_CheckType, MVT::v2i64,
/*303246*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303248*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*303251*/            OPC_EmitMergeInputChains1_2,
/*303252*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMAXSQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303265*/          /*Scope*/ 57, /*->303323*/
/*303266*/            OPC_MoveChild0,
/*303267*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*303270*/            OPC_MoveChild0,
/*303271*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303274*/            OPC_RecordMemRef,
/*303275*/            OPC_RecordNode, // #1 = 'ld' chained node
/*303276*/            OPC_CheckFoldableChainNode,
/*303277*/            OPC_RecordChild1, // #2 = $src2
/*303278*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303280*/            OPC_CheckPredicate, 9, // Predicate_load
/*303282*/            OPC_CheckType, MVT::i64,
/*303284*/            OPC_MoveParent,
/*303285*/            OPC_MoveParent,
/*303286*/            OPC_RecordChild1, // #3 = $src1
/*303287*/            OPC_MoveParent,
/*303288*/            OPC_MoveChild2,
/*303289*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*303292*/            OPC_MoveChild0,
/*303293*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*303296*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*303298*/            OPC_CheckType, MVT::v4i32,
/*303300*/            OPC_MoveParent,
/*303301*/            OPC_MoveParent,
/*303302*/            OPC_CheckType, MVT::v2i64,
/*303304*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303306*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*303309*/            OPC_EmitMergeInputChains1_1,
/*303310*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smax:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMAXSQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303323*/          /*Scope*/ 52, /*->303376*/
/*303324*/            OPC_RecordChild0, // #1 = $src1
/*303325*/            OPC_MoveChild1,
/*303326*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303329*/            OPC_RecordMemRef,
/*303330*/            OPC_RecordNode, // #2 = 'ld' chained node
/*303331*/            OPC_CheckFoldableChainNode,
/*303332*/            OPC_RecordChild1, // #3 = $src2
/*303333*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303335*/            OPC_CheckPredicate, 9, // Predicate_load
/*303337*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*303339*/            OPC_MoveParent,
/*303340*/            OPC_MoveParent,
/*303341*/            OPC_MoveChild2,
/*303342*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*303345*/            OPC_MoveChild0,
/*303346*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*303349*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*303351*/            OPC_CheckType, MVT::v4i32,
/*303353*/            OPC_MoveParent,
/*303354*/            OPC_MoveParent,
/*303355*/            OPC_CheckType, MVT::v2i64,
/*303357*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303359*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*303362*/            OPC_EmitMergeInputChains1_2,
/*303363*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMAXSQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303376*/          /*Scope*/ 52, /*->303429*/
/*303377*/            OPC_MoveChild0,
/*303378*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303381*/            OPC_RecordMemRef,
/*303382*/            OPC_RecordNode, // #1 = 'ld' chained node
/*303383*/            OPC_CheckFoldableChainNode,
/*303384*/            OPC_RecordChild1, // #2 = $src2
/*303385*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303387*/            OPC_CheckPredicate, 9, // Predicate_load
/*303389*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*303391*/            OPC_MoveParent,
/*303392*/            OPC_RecordChild1, // #3 = $src1
/*303393*/            OPC_MoveParent,
/*303394*/            OPC_MoveChild2,
/*303395*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*303398*/            OPC_MoveChild0,
/*303399*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*303402*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*303404*/            OPC_CheckType, MVT::v4i32,
/*303406*/            OPC_MoveParent,
/*303407*/            OPC_MoveParent,
/*303408*/            OPC_CheckType, MVT::v2i64,
/*303410*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303412*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*303415*/            OPC_EmitMergeInputChains1_1,
/*303416*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smax:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMAXSQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303429*/          /*Scope*/ 45, /*->303475*/
/*303430*/            OPC_RecordChild0, // #1 = $src1
/*303431*/            OPC_MoveChild1,
/*303432*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*303435*/            OPC_MoveChild0,
/*303436*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303439*/            OPC_RecordMemRef,
/*303440*/            OPC_RecordNode, // #2 = 'ld' chained node
/*303441*/            OPC_CheckFoldableChainNode,
/*303442*/            OPC_RecordChild1, // #3 = $src2
/*303443*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303445*/            OPC_CheckPredicate, 9, // Predicate_load
/*303447*/            OPC_CheckType, MVT::i64,
/*303449*/            OPC_MoveParent,
/*303450*/            OPC_MoveParent,
/*303451*/            OPC_MoveParent,
/*303452*/            OPC_RecordChild2, // #4 = $src0
/*303453*/            OPC_CheckType, MVT::v2i64,
/*303455*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303457*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303460*/            OPC_EmitMergeInputChains1_2,
/*303461*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMAXSQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303475*/          /*Scope*/ 45, /*->303521*/
/*303476*/            OPC_MoveChild0,
/*303477*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*303480*/            OPC_MoveChild0,
/*303481*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303484*/            OPC_RecordMemRef,
/*303485*/            OPC_RecordNode, // #1 = 'ld' chained node
/*303486*/            OPC_CheckFoldableChainNode,
/*303487*/            OPC_RecordChild1, // #2 = $src2
/*303488*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303490*/            OPC_CheckPredicate, 9, // Predicate_load
/*303492*/            OPC_CheckType, MVT::i64,
/*303494*/            OPC_MoveParent,
/*303495*/            OPC_MoveParent,
/*303496*/            OPC_RecordChild1, // #3 = $src1
/*303497*/            OPC_MoveParent,
/*303498*/            OPC_RecordChild2, // #4 = $src0
/*303499*/            OPC_CheckType, MVT::v2i64,
/*303501*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303503*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303506*/            OPC_EmitMergeInputChains1_1,
/*303507*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smax:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMAXSQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303521*/          /*Scope*/ 40, /*->303562*/
/*303522*/            OPC_RecordChild0, // #1 = $src1
/*303523*/            OPC_MoveChild1,
/*303524*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303527*/            OPC_RecordMemRef,
/*303528*/            OPC_RecordNode, // #2 = 'ld' chained node
/*303529*/            OPC_CheckFoldableChainNode,
/*303530*/            OPC_RecordChild1, // #3 = $src2
/*303531*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303533*/            OPC_CheckPredicate, 9, // Predicate_load
/*303535*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*303537*/            OPC_MoveParent,
/*303538*/            OPC_MoveParent,
/*303539*/            OPC_RecordChild2, // #4 = $src0
/*303540*/            OPC_CheckType, MVT::v2i64,
/*303542*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303544*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303547*/            OPC_EmitMergeInputChains1_2,
/*303548*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMAXSQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303562*/          /*Scope*/ 40, /*->303603*/
/*303563*/            OPC_MoveChild0,
/*303564*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303567*/            OPC_RecordMemRef,
/*303568*/            OPC_RecordNode, // #1 = 'ld' chained node
/*303569*/            OPC_CheckFoldableChainNode,
/*303570*/            OPC_RecordChild1, // #2 = $src2
/*303571*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303573*/            OPC_CheckPredicate, 9, // Predicate_load
/*303575*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*303577*/            OPC_MoveParent,
/*303578*/            OPC_RecordChild1, // #3 = $src1
/*303579*/            OPC_MoveParent,
/*303580*/            OPC_RecordChild2, // #4 = $src0
/*303581*/            OPC_CheckType, MVT::v2i64,
/*303583*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303585*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303588*/            OPC_EmitMergeInputChains1_1,
/*303589*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smax:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMAXSQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303603*/          0, /*End of Scope*/
/*303604*/        /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(ISD::UMAX),// ->304006
/*303608*/          OPC_Scope, 57, /*->303667*/ // 8 children in Scope
/*303610*/            OPC_RecordChild0, // #1 = $src1
/*303611*/            OPC_MoveChild1,
/*303612*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*303615*/            OPC_MoveChild0,
/*303616*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303619*/            OPC_RecordMemRef,
/*303620*/            OPC_RecordNode, // #2 = 'ld' chained node
/*303621*/            OPC_CheckFoldableChainNode,
/*303622*/            OPC_RecordChild1, // #3 = $src2
/*303623*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303625*/            OPC_CheckPredicate, 9, // Predicate_load
/*303627*/            OPC_CheckType, MVT::i64,
/*303629*/            OPC_MoveParent,
/*303630*/            OPC_MoveParent,
/*303631*/            OPC_MoveParent,
/*303632*/            OPC_MoveChild2,
/*303633*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*303636*/            OPC_MoveChild0,
/*303637*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*303640*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*303642*/            OPC_CheckType, MVT::v4i32,
/*303644*/            OPC_MoveParent,
/*303645*/            OPC_MoveParent,
/*303646*/            OPC_CheckType, MVT::v2i64,
/*303648*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303650*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*303653*/            OPC_EmitMergeInputChains1_2,
/*303654*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMAXUQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303667*/          /*Scope*/ 57, /*->303725*/
/*303668*/            OPC_MoveChild0,
/*303669*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*303672*/            OPC_MoveChild0,
/*303673*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303676*/            OPC_RecordMemRef,
/*303677*/            OPC_RecordNode, // #1 = 'ld' chained node
/*303678*/            OPC_CheckFoldableChainNode,
/*303679*/            OPC_RecordChild1, // #2 = $src2
/*303680*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303682*/            OPC_CheckPredicate, 9, // Predicate_load
/*303684*/            OPC_CheckType, MVT::i64,
/*303686*/            OPC_MoveParent,
/*303687*/            OPC_MoveParent,
/*303688*/            OPC_RecordChild1, // #3 = $src1
/*303689*/            OPC_MoveParent,
/*303690*/            OPC_MoveChild2,
/*303691*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*303694*/            OPC_MoveChild0,
/*303695*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*303698*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*303700*/            OPC_CheckType, MVT::v4i32,
/*303702*/            OPC_MoveParent,
/*303703*/            OPC_MoveParent,
/*303704*/            OPC_CheckType, MVT::v2i64,
/*303706*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303708*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*303711*/            OPC_EmitMergeInputChains1_1,
/*303712*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umax:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMAXUQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303725*/          /*Scope*/ 52, /*->303778*/
/*303726*/            OPC_RecordChild0, // #1 = $src1
/*303727*/            OPC_MoveChild1,
/*303728*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303731*/            OPC_RecordMemRef,
/*303732*/            OPC_RecordNode, // #2 = 'ld' chained node
/*303733*/            OPC_CheckFoldableChainNode,
/*303734*/            OPC_RecordChild1, // #3 = $src2
/*303735*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303737*/            OPC_CheckPredicate, 9, // Predicate_load
/*303739*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*303741*/            OPC_MoveParent,
/*303742*/            OPC_MoveParent,
/*303743*/            OPC_MoveChild2,
/*303744*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*303747*/            OPC_MoveChild0,
/*303748*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*303751*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*303753*/            OPC_CheckType, MVT::v4i32,
/*303755*/            OPC_MoveParent,
/*303756*/            OPC_MoveParent,
/*303757*/            OPC_CheckType, MVT::v2i64,
/*303759*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303761*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*303764*/            OPC_EmitMergeInputChains1_2,
/*303765*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMAXUQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303778*/          /*Scope*/ 52, /*->303831*/
/*303779*/            OPC_MoveChild0,
/*303780*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303783*/            OPC_RecordMemRef,
/*303784*/            OPC_RecordNode, // #1 = 'ld' chained node
/*303785*/            OPC_CheckFoldableChainNode,
/*303786*/            OPC_RecordChild1, // #2 = $src2
/*303787*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303789*/            OPC_CheckPredicate, 9, // Predicate_load
/*303791*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*303793*/            OPC_MoveParent,
/*303794*/            OPC_RecordChild1, // #3 = $src1
/*303795*/            OPC_MoveParent,
/*303796*/            OPC_MoveChild2,
/*303797*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*303800*/            OPC_MoveChild0,
/*303801*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*303804*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*303806*/            OPC_CheckType, MVT::v4i32,
/*303808*/            OPC_MoveParent,
/*303809*/            OPC_MoveParent,
/*303810*/            OPC_CheckType, MVT::v2i64,
/*303812*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303814*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*303817*/            OPC_EmitMergeInputChains1_1,
/*303818*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umax:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMAXUQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303831*/          /*Scope*/ 45, /*->303877*/
/*303832*/            OPC_RecordChild0, // #1 = $src1
/*303833*/            OPC_MoveChild1,
/*303834*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*303837*/            OPC_MoveChild0,
/*303838*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303841*/            OPC_RecordMemRef,
/*303842*/            OPC_RecordNode, // #2 = 'ld' chained node
/*303843*/            OPC_CheckFoldableChainNode,
/*303844*/            OPC_RecordChild1, // #3 = $src2
/*303845*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303847*/            OPC_CheckPredicate, 9, // Predicate_load
/*303849*/            OPC_CheckType, MVT::i64,
/*303851*/            OPC_MoveParent,
/*303852*/            OPC_MoveParent,
/*303853*/            OPC_MoveParent,
/*303854*/            OPC_RecordChild2, // #4 = $src0
/*303855*/            OPC_CheckType, MVT::v2i64,
/*303857*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303859*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303862*/            OPC_EmitMergeInputChains1_2,
/*303863*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMAXUQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303877*/          /*Scope*/ 45, /*->303923*/
/*303878*/            OPC_MoveChild0,
/*303879*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*303882*/            OPC_MoveChild0,
/*303883*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303886*/            OPC_RecordMemRef,
/*303887*/            OPC_RecordNode, // #1 = 'ld' chained node
/*303888*/            OPC_CheckFoldableChainNode,
/*303889*/            OPC_RecordChild1, // #2 = $src2
/*303890*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303892*/            OPC_CheckPredicate, 9, // Predicate_load
/*303894*/            OPC_CheckType, MVT::i64,
/*303896*/            OPC_MoveParent,
/*303897*/            OPC_MoveParent,
/*303898*/            OPC_RecordChild1, // #3 = $src1
/*303899*/            OPC_MoveParent,
/*303900*/            OPC_RecordChild2, // #4 = $src0
/*303901*/            OPC_CheckType, MVT::v2i64,
/*303903*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303905*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303908*/            OPC_EmitMergeInputChains1_1,
/*303909*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umax:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMAXUQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303923*/          /*Scope*/ 40, /*->303964*/
/*303924*/            OPC_RecordChild0, // #1 = $src1
/*303925*/            OPC_MoveChild1,
/*303926*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303929*/            OPC_RecordMemRef,
/*303930*/            OPC_RecordNode, // #2 = 'ld' chained node
/*303931*/            OPC_CheckFoldableChainNode,
/*303932*/            OPC_RecordChild1, // #3 = $src2
/*303933*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303935*/            OPC_CheckPredicate, 9, // Predicate_load
/*303937*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*303939*/            OPC_MoveParent,
/*303940*/            OPC_MoveParent,
/*303941*/            OPC_RecordChild2, // #4 = $src0
/*303942*/            OPC_CheckType, MVT::v2i64,
/*303944*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303946*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303949*/            OPC_EmitMergeInputChains1_2,
/*303950*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMAXUQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303964*/          /*Scope*/ 40, /*->304005*/
/*303965*/            OPC_MoveChild0,
/*303966*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*303969*/            OPC_RecordMemRef,
/*303970*/            OPC_RecordNode, // #1 = 'ld' chained node
/*303971*/            OPC_CheckFoldableChainNode,
/*303972*/            OPC_RecordChild1, // #2 = $src2
/*303973*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303975*/            OPC_CheckPredicate, 9, // Predicate_load
/*303977*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*303979*/            OPC_MoveParent,
/*303980*/            OPC_RecordChild1, // #3 = $src1
/*303981*/            OPC_MoveParent,
/*303982*/            OPC_RecordChild2, // #4 = $src0
/*303983*/            OPC_CheckType, MVT::v2i64,
/*303985*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303987*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303990*/            OPC_EmitMergeInputChains1_1,
/*303991*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umax:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMAXUQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304005*/          0, /*End of Scope*/
/*304006*/        /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(ISD::SMIN),// ->304408
/*304010*/          OPC_Scope, 57, /*->304069*/ // 8 children in Scope
/*304012*/            OPC_RecordChild0, // #1 = $src1
/*304013*/            OPC_MoveChild1,
/*304014*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*304017*/            OPC_MoveChild0,
/*304018*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304021*/            OPC_RecordMemRef,
/*304022*/            OPC_RecordNode, // #2 = 'ld' chained node
/*304023*/            OPC_CheckFoldableChainNode,
/*304024*/            OPC_RecordChild1, // #3 = $src2
/*304025*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304027*/            OPC_CheckPredicate, 9, // Predicate_load
/*304029*/            OPC_CheckType, MVT::i64,
/*304031*/            OPC_MoveParent,
/*304032*/            OPC_MoveParent,
/*304033*/            OPC_MoveParent,
/*304034*/            OPC_MoveChild2,
/*304035*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*304038*/            OPC_MoveChild0,
/*304039*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*304042*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*304044*/            OPC_CheckType, MVT::v4i32,
/*304046*/            OPC_MoveParent,
/*304047*/            OPC_MoveParent,
/*304048*/            OPC_CheckType, MVT::v2i64,
/*304050*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304052*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*304055*/            OPC_EmitMergeInputChains1_2,
/*304056*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMINSQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304069*/          /*Scope*/ 57, /*->304127*/
/*304070*/            OPC_MoveChild0,
/*304071*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*304074*/            OPC_MoveChild0,
/*304075*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304078*/            OPC_RecordMemRef,
/*304079*/            OPC_RecordNode, // #1 = 'ld' chained node
/*304080*/            OPC_CheckFoldableChainNode,
/*304081*/            OPC_RecordChild1, // #2 = $src2
/*304082*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304084*/            OPC_CheckPredicate, 9, // Predicate_load
/*304086*/            OPC_CheckType, MVT::i64,
/*304088*/            OPC_MoveParent,
/*304089*/            OPC_MoveParent,
/*304090*/            OPC_RecordChild1, // #3 = $src1
/*304091*/            OPC_MoveParent,
/*304092*/            OPC_MoveChild2,
/*304093*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*304096*/            OPC_MoveChild0,
/*304097*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*304100*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*304102*/            OPC_CheckType, MVT::v4i32,
/*304104*/            OPC_MoveParent,
/*304105*/            OPC_MoveParent,
/*304106*/            OPC_CheckType, MVT::v2i64,
/*304108*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304110*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*304113*/            OPC_EmitMergeInputChains1_1,
/*304114*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smin:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMINSQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304127*/          /*Scope*/ 52, /*->304180*/
/*304128*/            OPC_RecordChild0, // #1 = $src1
/*304129*/            OPC_MoveChild1,
/*304130*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304133*/            OPC_RecordMemRef,
/*304134*/            OPC_RecordNode, // #2 = 'ld' chained node
/*304135*/            OPC_CheckFoldableChainNode,
/*304136*/            OPC_RecordChild1, // #3 = $src2
/*304137*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304139*/            OPC_CheckPredicate, 9, // Predicate_load
/*304141*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*304143*/            OPC_MoveParent,
/*304144*/            OPC_MoveParent,
/*304145*/            OPC_MoveChild2,
/*304146*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*304149*/            OPC_MoveChild0,
/*304150*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*304153*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*304155*/            OPC_CheckType, MVT::v4i32,
/*304157*/            OPC_MoveParent,
/*304158*/            OPC_MoveParent,
/*304159*/            OPC_CheckType, MVT::v2i64,
/*304161*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304163*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*304166*/            OPC_EmitMergeInputChains1_2,
/*304167*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMINSQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304180*/          /*Scope*/ 52, /*->304233*/
/*304181*/            OPC_MoveChild0,
/*304182*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304185*/            OPC_RecordMemRef,
/*304186*/            OPC_RecordNode, // #1 = 'ld' chained node
/*304187*/            OPC_CheckFoldableChainNode,
/*304188*/            OPC_RecordChild1, // #2 = $src2
/*304189*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304191*/            OPC_CheckPredicate, 9, // Predicate_load
/*304193*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*304195*/            OPC_MoveParent,
/*304196*/            OPC_RecordChild1, // #3 = $src1
/*304197*/            OPC_MoveParent,
/*304198*/            OPC_MoveChild2,
/*304199*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*304202*/            OPC_MoveChild0,
/*304203*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*304206*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*304208*/            OPC_CheckType, MVT::v4i32,
/*304210*/            OPC_MoveParent,
/*304211*/            OPC_MoveParent,
/*304212*/            OPC_CheckType, MVT::v2i64,
/*304214*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304216*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*304219*/            OPC_EmitMergeInputChains1_1,
/*304220*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smin:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMINSQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304233*/          /*Scope*/ 45, /*->304279*/
/*304234*/            OPC_RecordChild0, // #1 = $src1
/*304235*/            OPC_MoveChild1,
/*304236*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*304239*/            OPC_MoveChild0,
/*304240*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304243*/            OPC_RecordMemRef,
/*304244*/            OPC_RecordNode, // #2 = 'ld' chained node
/*304245*/            OPC_CheckFoldableChainNode,
/*304246*/            OPC_RecordChild1, // #3 = $src2
/*304247*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304249*/            OPC_CheckPredicate, 9, // Predicate_load
/*304251*/            OPC_CheckType, MVT::i64,
/*304253*/            OPC_MoveParent,
/*304254*/            OPC_MoveParent,
/*304255*/            OPC_MoveParent,
/*304256*/            OPC_RecordChild2, // #4 = $src0
/*304257*/            OPC_CheckType, MVT::v2i64,
/*304259*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304261*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304264*/            OPC_EmitMergeInputChains1_2,
/*304265*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMINSQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304279*/          /*Scope*/ 45, /*->304325*/
/*304280*/            OPC_MoveChild0,
/*304281*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*304284*/            OPC_MoveChild0,
/*304285*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304288*/            OPC_RecordMemRef,
/*304289*/            OPC_RecordNode, // #1 = 'ld' chained node
/*304290*/            OPC_CheckFoldableChainNode,
/*304291*/            OPC_RecordChild1, // #2 = $src2
/*304292*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304294*/            OPC_CheckPredicate, 9, // Predicate_load
/*304296*/            OPC_CheckType, MVT::i64,
/*304298*/            OPC_MoveParent,
/*304299*/            OPC_MoveParent,
/*304300*/            OPC_RecordChild1, // #3 = $src1
/*304301*/            OPC_MoveParent,
/*304302*/            OPC_RecordChild2, // #4 = $src0
/*304303*/            OPC_CheckType, MVT::v2i64,
/*304305*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304307*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304310*/            OPC_EmitMergeInputChains1_1,
/*304311*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smin:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMINSQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304325*/          /*Scope*/ 40, /*->304366*/
/*304326*/            OPC_RecordChild0, // #1 = $src1
/*304327*/            OPC_MoveChild1,
/*304328*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304331*/            OPC_RecordMemRef,
/*304332*/            OPC_RecordNode, // #2 = 'ld' chained node
/*304333*/            OPC_CheckFoldableChainNode,
/*304334*/            OPC_RecordChild1, // #3 = $src2
/*304335*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304337*/            OPC_CheckPredicate, 9, // Predicate_load
/*304339*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*304341*/            OPC_MoveParent,
/*304342*/            OPC_MoveParent,
/*304343*/            OPC_RecordChild2, // #4 = $src0
/*304344*/            OPC_CheckType, MVT::v2i64,
/*304346*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304348*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304351*/            OPC_EmitMergeInputChains1_2,
/*304352*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMINSQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304366*/          /*Scope*/ 40, /*->304407*/
/*304367*/            OPC_MoveChild0,
/*304368*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304371*/            OPC_RecordMemRef,
/*304372*/            OPC_RecordNode, // #1 = 'ld' chained node
/*304373*/            OPC_CheckFoldableChainNode,
/*304374*/            OPC_RecordChild1, // #2 = $src2
/*304375*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304377*/            OPC_CheckPredicate, 9, // Predicate_load
/*304379*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*304381*/            OPC_MoveParent,
/*304382*/            OPC_RecordChild1, // #3 = $src1
/*304383*/            OPC_MoveParent,
/*304384*/            OPC_RecordChild2, // #4 = $src0
/*304385*/            OPC_CheckType, MVT::v2i64,
/*304387*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304389*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304392*/            OPC_EmitMergeInputChains1_1,
/*304393*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smin:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMINSQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304407*/          0, /*End of Scope*/
/*304408*/        /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(ISD::UMIN),// ->304810
/*304412*/          OPC_Scope, 57, /*->304471*/ // 8 children in Scope
/*304414*/            OPC_RecordChild0, // #1 = $src1
/*304415*/            OPC_MoveChild1,
/*304416*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*304419*/            OPC_MoveChild0,
/*304420*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304423*/            OPC_RecordMemRef,
/*304424*/            OPC_RecordNode, // #2 = 'ld' chained node
/*304425*/            OPC_CheckFoldableChainNode,
/*304426*/            OPC_RecordChild1, // #3 = $src2
/*304427*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304429*/            OPC_CheckPredicate, 9, // Predicate_load
/*304431*/            OPC_CheckType, MVT::i64,
/*304433*/            OPC_MoveParent,
/*304434*/            OPC_MoveParent,
/*304435*/            OPC_MoveParent,
/*304436*/            OPC_MoveChild2,
/*304437*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*304440*/            OPC_MoveChild0,
/*304441*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*304444*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*304446*/            OPC_CheckType, MVT::v4i32,
/*304448*/            OPC_MoveParent,
/*304449*/            OPC_MoveParent,
/*304450*/            OPC_CheckType, MVT::v2i64,
/*304452*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304454*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*304457*/            OPC_EmitMergeInputChains1_2,
/*304458*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMINUQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304471*/          /*Scope*/ 57, /*->304529*/
/*304472*/            OPC_MoveChild0,
/*304473*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*304476*/            OPC_MoveChild0,
/*304477*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304480*/            OPC_RecordMemRef,
/*304481*/            OPC_RecordNode, // #1 = 'ld' chained node
/*304482*/            OPC_CheckFoldableChainNode,
/*304483*/            OPC_RecordChild1, // #2 = $src2
/*304484*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304486*/            OPC_CheckPredicate, 9, // Predicate_load
/*304488*/            OPC_CheckType, MVT::i64,
/*304490*/            OPC_MoveParent,
/*304491*/            OPC_MoveParent,
/*304492*/            OPC_RecordChild1, // #3 = $src1
/*304493*/            OPC_MoveParent,
/*304494*/            OPC_MoveChild2,
/*304495*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*304498*/            OPC_MoveChild0,
/*304499*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*304502*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*304504*/            OPC_CheckType, MVT::v4i32,
/*304506*/            OPC_MoveParent,
/*304507*/            OPC_MoveParent,
/*304508*/            OPC_CheckType, MVT::v2i64,
/*304510*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304512*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*304515*/            OPC_EmitMergeInputChains1_1,
/*304516*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umin:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMINUQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304529*/          /*Scope*/ 52, /*->304582*/
/*304530*/            OPC_RecordChild0, // #1 = $src1
/*304531*/            OPC_MoveChild1,
/*304532*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304535*/            OPC_RecordMemRef,
/*304536*/            OPC_RecordNode, // #2 = 'ld' chained node
/*304537*/            OPC_CheckFoldableChainNode,
/*304538*/            OPC_RecordChild1, // #3 = $src2
/*304539*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304541*/            OPC_CheckPredicate, 9, // Predicate_load
/*304543*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*304545*/            OPC_MoveParent,
/*304546*/            OPC_MoveParent,
/*304547*/            OPC_MoveChild2,
/*304548*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*304551*/            OPC_MoveChild0,
/*304552*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*304555*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*304557*/            OPC_CheckType, MVT::v4i32,
/*304559*/            OPC_MoveParent,
/*304560*/            OPC_MoveParent,
/*304561*/            OPC_CheckType, MVT::v2i64,
/*304563*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304565*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*304568*/            OPC_EmitMergeInputChains1_2,
/*304569*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMINUQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304582*/          /*Scope*/ 52, /*->304635*/
/*304583*/            OPC_MoveChild0,
/*304584*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304587*/            OPC_RecordMemRef,
/*304588*/            OPC_RecordNode, // #1 = 'ld' chained node
/*304589*/            OPC_CheckFoldableChainNode,
/*304590*/            OPC_RecordChild1, // #2 = $src2
/*304591*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304593*/            OPC_CheckPredicate, 9, // Predicate_load
/*304595*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*304597*/            OPC_MoveParent,
/*304598*/            OPC_RecordChild1, // #3 = $src1
/*304599*/            OPC_MoveParent,
/*304600*/            OPC_MoveChild2,
/*304601*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*304604*/            OPC_MoveChild0,
/*304605*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*304608*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*304610*/            OPC_CheckType, MVT::v4i32,
/*304612*/            OPC_MoveParent,
/*304613*/            OPC_MoveParent,
/*304614*/            OPC_CheckType, MVT::v2i64,
/*304616*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304618*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*304621*/            OPC_EmitMergeInputChains1_1,
/*304622*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umin:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMINUQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304635*/          /*Scope*/ 45, /*->304681*/
/*304636*/            OPC_RecordChild0, // #1 = $src1
/*304637*/            OPC_MoveChild1,
/*304638*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*304641*/            OPC_MoveChild0,
/*304642*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304645*/            OPC_RecordMemRef,
/*304646*/            OPC_RecordNode, // #2 = 'ld' chained node
/*304647*/            OPC_CheckFoldableChainNode,
/*304648*/            OPC_RecordChild1, // #3 = $src2
/*304649*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304651*/            OPC_CheckPredicate, 9, // Predicate_load
/*304653*/            OPC_CheckType, MVT::i64,
/*304655*/            OPC_MoveParent,
/*304656*/            OPC_MoveParent,
/*304657*/            OPC_MoveParent,
/*304658*/            OPC_RecordChild2, // #4 = $src0
/*304659*/            OPC_CheckType, MVT::v2i64,
/*304661*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304663*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304666*/            OPC_EmitMergeInputChains1_2,
/*304667*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMINUQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304681*/          /*Scope*/ 45, /*->304727*/
/*304682*/            OPC_MoveChild0,
/*304683*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*304686*/            OPC_MoveChild0,
/*304687*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304690*/            OPC_RecordMemRef,
/*304691*/            OPC_RecordNode, // #1 = 'ld' chained node
/*304692*/            OPC_CheckFoldableChainNode,
/*304693*/            OPC_RecordChild1, // #2 = $src2
/*304694*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304696*/            OPC_CheckPredicate, 9, // Predicate_load
/*304698*/            OPC_CheckType, MVT::i64,
/*304700*/            OPC_MoveParent,
/*304701*/            OPC_MoveParent,
/*304702*/            OPC_RecordChild1, // #3 = $src1
/*304703*/            OPC_MoveParent,
/*304704*/            OPC_RecordChild2, // #4 = $src0
/*304705*/            OPC_CheckType, MVT::v2i64,
/*304707*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304709*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304712*/            OPC_EmitMergeInputChains1_1,
/*304713*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umin:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPMINUQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304727*/          /*Scope*/ 40, /*->304768*/
/*304728*/            OPC_RecordChild0, // #1 = $src1
/*304729*/            OPC_MoveChild1,
/*304730*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304733*/            OPC_RecordMemRef,
/*304734*/            OPC_RecordNode, // #2 = 'ld' chained node
/*304735*/            OPC_CheckFoldableChainNode,
/*304736*/            OPC_RecordChild1, // #3 = $src2
/*304737*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304739*/            OPC_CheckPredicate, 9, // Predicate_load
/*304741*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*304743*/            OPC_MoveParent,
/*304744*/            OPC_MoveParent,
/*304745*/            OPC_RecordChild2, // #4 = $src0
/*304746*/            OPC_CheckType, MVT::v2i64,
/*304748*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304750*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304753*/            OPC_EmitMergeInputChains1_2,
/*304754*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMINUQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304768*/          /*Scope*/ 40, /*->304809*/
/*304769*/            OPC_MoveChild0,
/*304770*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304773*/            OPC_RecordMemRef,
/*304774*/            OPC_RecordNode, // #1 = 'ld' chained node
/*304775*/            OPC_CheckFoldableChainNode,
/*304776*/            OPC_RecordChild1, // #2 = $src2
/*304777*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304779*/            OPC_CheckPredicate, 9, // Predicate_load
/*304781*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*304783*/            OPC_MoveParent,
/*304784*/            OPC_RecordChild1, // #3 = $src1
/*304785*/            OPC_MoveParent,
/*304786*/            OPC_RecordChild2, // #4 = $src0
/*304787*/            OPC_CheckType, MVT::v2i64,
/*304789*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304791*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304794*/            OPC_EmitMergeInputChains1_1,
/*304795*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umin:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPMINUQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304809*/          0, /*End of Scope*/
/*304810*/        /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(ISD::AND),// ->305212
/*304814*/          OPC_Scope, 57, /*->304873*/ // 8 children in Scope
/*304816*/            OPC_RecordChild0, // #1 = $src1
/*304817*/            OPC_MoveChild1,
/*304818*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*304821*/            OPC_MoveChild0,
/*304822*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304825*/            OPC_RecordMemRef,
/*304826*/            OPC_RecordNode, // #2 = 'ld' chained node
/*304827*/            OPC_CheckFoldableChainNode,
/*304828*/            OPC_RecordChild1, // #3 = $src2
/*304829*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304831*/            OPC_CheckPredicate, 9, // Predicate_load
/*304833*/            OPC_CheckType, MVT::i64,
/*304835*/            OPC_MoveParent,
/*304836*/            OPC_MoveParent,
/*304837*/            OPC_MoveParent,
/*304838*/            OPC_MoveChild2,
/*304839*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*304842*/            OPC_MoveChild0,
/*304843*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*304846*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*304848*/            OPC_CheckType, MVT::v4i32,
/*304850*/            OPC_MoveParent,
/*304851*/            OPC_MoveParent,
/*304852*/            OPC_CheckType, MVT::v2i64,
/*304854*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304856*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*304859*/            OPC_EmitMergeInputChains1_2,
/*304860*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPANDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304873*/          /*Scope*/ 57, /*->304931*/
/*304874*/            OPC_MoveChild0,
/*304875*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*304878*/            OPC_MoveChild0,
/*304879*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304882*/            OPC_RecordMemRef,
/*304883*/            OPC_RecordNode, // #1 = 'ld' chained node
/*304884*/            OPC_CheckFoldableChainNode,
/*304885*/            OPC_RecordChild1, // #2 = $src2
/*304886*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304888*/            OPC_CheckPredicate, 9, // Predicate_load
/*304890*/            OPC_CheckType, MVT::i64,
/*304892*/            OPC_MoveParent,
/*304893*/            OPC_MoveParent,
/*304894*/            OPC_RecordChild1, // #3 = $src1
/*304895*/            OPC_MoveParent,
/*304896*/            OPC_MoveChild2,
/*304897*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*304900*/            OPC_MoveChild0,
/*304901*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*304904*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*304906*/            OPC_CheckType, MVT::v4i32,
/*304908*/            OPC_MoveParent,
/*304909*/            OPC_MoveParent,
/*304910*/            OPC_CheckType, MVT::v2i64,
/*304912*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304914*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*304917*/            OPC_EmitMergeInputChains1_1,
/*304918*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (and:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPANDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304931*/          /*Scope*/ 52, /*->304984*/
/*304932*/            OPC_RecordChild0, // #1 = $src1
/*304933*/            OPC_MoveChild1,
/*304934*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304937*/            OPC_RecordMemRef,
/*304938*/            OPC_RecordNode, // #2 = 'ld' chained node
/*304939*/            OPC_CheckFoldableChainNode,
/*304940*/            OPC_RecordChild1, // #3 = $src2
/*304941*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304943*/            OPC_CheckPredicate, 9, // Predicate_load
/*304945*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*304947*/            OPC_MoveParent,
/*304948*/            OPC_MoveParent,
/*304949*/            OPC_MoveChild2,
/*304950*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*304953*/            OPC_MoveChild0,
/*304954*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*304957*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*304959*/            OPC_CheckType, MVT::v4i32,
/*304961*/            OPC_MoveParent,
/*304962*/            OPC_MoveParent,
/*304963*/            OPC_CheckType, MVT::v2i64,
/*304965*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304967*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*304970*/            OPC_EmitMergeInputChains1_2,
/*304971*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304984*/          /*Scope*/ 52, /*->305037*/
/*304985*/            OPC_MoveChild0,
/*304986*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*304989*/            OPC_RecordMemRef,
/*304990*/            OPC_RecordNode, // #1 = 'ld' chained node
/*304991*/            OPC_CheckFoldableChainNode,
/*304992*/            OPC_RecordChild1, // #2 = $src2
/*304993*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304995*/            OPC_CheckPredicate, 9, // Predicate_load
/*304997*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*304999*/            OPC_MoveParent,
/*305000*/            OPC_RecordChild1, // #3 = $src1
/*305001*/            OPC_MoveParent,
/*305002*/            OPC_MoveChild2,
/*305003*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*305006*/            OPC_MoveChild0,
/*305007*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*305010*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*305012*/            OPC_CheckType, MVT::v4i32,
/*305014*/            OPC_MoveParent,
/*305015*/            OPC_MoveParent,
/*305016*/            OPC_CheckType, MVT::v2i64,
/*305018*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305020*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*305023*/            OPC_EmitMergeInputChains1_1,
/*305024*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305037*/          /*Scope*/ 45, /*->305083*/
/*305038*/            OPC_RecordChild0, // #1 = $src1
/*305039*/            OPC_MoveChild1,
/*305040*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*305043*/            OPC_MoveChild0,
/*305044*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305047*/            OPC_RecordMemRef,
/*305048*/            OPC_RecordNode, // #2 = 'ld' chained node
/*305049*/            OPC_CheckFoldableChainNode,
/*305050*/            OPC_RecordChild1, // #3 = $src2
/*305051*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305053*/            OPC_CheckPredicate, 9, // Predicate_load
/*305055*/            OPC_CheckType, MVT::i64,
/*305057*/            OPC_MoveParent,
/*305058*/            OPC_MoveParent,
/*305059*/            OPC_MoveParent,
/*305060*/            OPC_RecordChild2, // #4 = $src0
/*305061*/            OPC_CheckType, MVT::v2i64,
/*305063*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305065*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*305068*/            OPC_EmitMergeInputChains1_2,
/*305069*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPANDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305083*/          /*Scope*/ 45, /*->305129*/
/*305084*/            OPC_MoveChild0,
/*305085*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*305088*/            OPC_MoveChild0,
/*305089*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305092*/            OPC_RecordMemRef,
/*305093*/            OPC_RecordNode, // #1 = 'ld' chained node
/*305094*/            OPC_CheckFoldableChainNode,
/*305095*/            OPC_RecordChild1, // #2 = $src2
/*305096*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305098*/            OPC_CheckPredicate, 9, // Predicate_load
/*305100*/            OPC_CheckType, MVT::i64,
/*305102*/            OPC_MoveParent,
/*305103*/            OPC_MoveParent,
/*305104*/            OPC_RecordChild1, // #3 = $src1
/*305105*/            OPC_MoveParent,
/*305106*/            OPC_RecordChild2, // #4 = $src0
/*305107*/            OPC_CheckType, MVT::v2i64,
/*305109*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305111*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*305114*/            OPC_EmitMergeInputChains1_1,
/*305115*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (and:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPANDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305129*/          /*Scope*/ 40, /*->305170*/
/*305130*/            OPC_RecordChild0, // #1 = $src1
/*305131*/            OPC_MoveChild1,
/*305132*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305135*/            OPC_RecordMemRef,
/*305136*/            OPC_RecordNode, // #2 = 'ld' chained node
/*305137*/            OPC_CheckFoldableChainNode,
/*305138*/            OPC_RecordChild1, // #3 = $src2
/*305139*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305141*/            OPC_CheckPredicate, 9, // Predicate_load
/*305143*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*305145*/            OPC_MoveParent,
/*305146*/            OPC_MoveParent,
/*305147*/            OPC_RecordChild2, // #4 = $src0
/*305148*/            OPC_CheckType, MVT::v2i64,
/*305150*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305152*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*305155*/            OPC_EmitMergeInputChains1_2,
/*305156*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305170*/          /*Scope*/ 40, /*->305211*/
/*305171*/            OPC_MoveChild0,
/*305172*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305175*/            OPC_RecordMemRef,
/*305176*/            OPC_RecordNode, // #1 = 'ld' chained node
/*305177*/            OPC_CheckFoldableChainNode,
/*305178*/            OPC_RecordChild1, // #2 = $src2
/*305179*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305181*/            OPC_CheckPredicate, 9, // Predicate_load
/*305183*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*305185*/            OPC_MoveParent,
/*305186*/            OPC_RecordChild1, // #3 = $src1
/*305187*/            OPC_MoveParent,
/*305188*/            OPC_RecordChild2, // #4 = $src0
/*305189*/            OPC_CheckType, MVT::v2i64,
/*305191*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305193*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*305196*/            OPC_EmitMergeInputChains1_1,
/*305197*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305211*/          0, /*End of Scope*/
/*305212*/        /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(ISD::OR),// ->305614
/*305216*/          OPC_Scope, 57, /*->305275*/ // 8 children in Scope
/*305218*/            OPC_RecordChild0, // #1 = $src1
/*305219*/            OPC_MoveChild1,
/*305220*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*305223*/            OPC_MoveChild0,
/*305224*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305227*/            OPC_RecordMemRef,
/*305228*/            OPC_RecordNode, // #2 = 'ld' chained node
/*305229*/            OPC_CheckFoldableChainNode,
/*305230*/            OPC_RecordChild1, // #3 = $src2
/*305231*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305233*/            OPC_CheckPredicate, 9, // Predicate_load
/*305235*/            OPC_CheckType, MVT::i64,
/*305237*/            OPC_MoveParent,
/*305238*/            OPC_MoveParent,
/*305239*/            OPC_MoveParent,
/*305240*/            OPC_MoveChild2,
/*305241*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*305244*/            OPC_MoveChild0,
/*305245*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*305248*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*305250*/            OPC_CheckType, MVT::v4i32,
/*305252*/            OPC_MoveParent,
/*305253*/            OPC_MoveParent,
/*305254*/            OPC_CheckType, MVT::v2i64,
/*305256*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*305261*/            OPC_EmitMergeInputChains1_2,
/*305262*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPORQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305275*/          /*Scope*/ 57, /*->305333*/
/*305276*/            OPC_MoveChild0,
/*305277*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*305280*/            OPC_MoveChild0,
/*305281*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305284*/            OPC_RecordMemRef,
/*305285*/            OPC_RecordNode, // #1 = 'ld' chained node
/*305286*/            OPC_CheckFoldableChainNode,
/*305287*/            OPC_RecordChild1, // #2 = $src2
/*305288*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305290*/            OPC_CheckPredicate, 9, // Predicate_load
/*305292*/            OPC_CheckType, MVT::i64,
/*305294*/            OPC_MoveParent,
/*305295*/            OPC_MoveParent,
/*305296*/            OPC_RecordChild1, // #3 = $src1
/*305297*/            OPC_MoveParent,
/*305298*/            OPC_MoveChild2,
/*305299*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*305302*/            OPC_MoveChild0,
/*305303*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*305306*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*305308*/            OPC_CheckType, MVT::v4i32,
/*305310*/            OPC_MoveParent,
/*305311*/            OPC_MoveParent,
/*305312*/            OPC_CheckType, MVT::v2i64,
/*305314*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305316*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*305319*/            OPC_EmitMergeInputChains1_1,
/*305320*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (or:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPORQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305333*/          /*Scope*/ 52, /*->305386*/
/*305334*/            OPC_RecordChild0, // #1 = $src1
/*305335*/            OPC_MoveChild1,
/*305336*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305339*/            OPC_RecordMemRef,
/*305340*/            OPC_RecordNode, // #2 = 'ld' chained node
/*305341*/            OPC_CheckFoldableChainNode,
/*305342*/            OPC_RecordChild1, // #3 = $src2
/*305343*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305345*/            OPC_CheckPredicate, 9, // Predicate_load
/*305347*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*305349*/            OPC_MoveParent,
/*305350*/            OPC_MoveParent,
/*305351*/            OPC_MoveChild2,
/*305352*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*305355*/            OPC_MoveChild0,
/*305356*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*305359*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*305361*/            OPC_CheckType, MVT::v4i32,
/*305363*/            OPC_MoveParent,
/*305364*/            OPC_MoveParent,
/*305365*/            OPC_CheckType, MVT::v2i64,
/*305367*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305369*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*305372*/            OPC_EmitMergeInputChains1_2,
/*305373*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305386*/          /*Scope*/ 52, /*->305439*/
/*305387*/            OPC_MoveChild0,
/*305388*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305391*/            OPC_RecordMemRef,
/*305392*/            OPC_RecordNode, // #1 = 'ld' chained node
/*305393*/            OPC_CheckFoldableChainNode,
/*305394*/            OPC_RecordChild1, // #2 = $src2
/*305395*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305397*/            OPC_CheckPredicate, 9, // Predicate_load
/*305399*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*305401*/            OPC_MoveParent,
/*305402*/            OPC_RecordChild1, // #3 = $src1
/*305403*/            OPC_MoveParent,
/*305404*/            OPC_MoveChild2,
/*305405*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*305408*/            OPC_MoveChild0,
/*305409*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*305412*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*305414*/            OPC_CheckType, MVT::v4i32,
/*305416*/            OPC_MoveParent,
/*305417*/            OPC_MoveParent,
/*305418*/            OPC_CheckType, MVT::v2i64,
/*305420*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305422*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*305425*/            OPC_EmitMergeInputChains1_1,
/*305426*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (or:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305439*/          /*Scope*/ 45, /*->305485*/
/*305440*/            OPC_RecordChild0, // #1 = $src1
/*305441*/            OPC_MoveChild1,
/*305442*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*305445*/            OPC_MoveChild0,
/*305446*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305449*/            OPC_RecordMemRef,
/*305450*/            OPC_RecordNode, // #2 = 'ld' chained node
/*305451*/            OPC_CheckFoldableChainNode,
/*305452*/            OPC_RecordChild1, // #3 = $src2
/*305453*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305455*/            OPC_CheckPredicate, 9, // Predicate_load
/*305457*/            OPC_CheckType, MVT::i64,
/*305459*/            OPC_MoveParent,
/*305460*/            OPC_MoveParent,
/*305461*/            OPC_MoveParent,
/*305462*/            OPC_RecordChild2, // #4 = $src0
/*305463*/            OPC_CheckType, MVT::v2i64,
/*305465*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305467*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*305470*/            OPC_EmitMergeInputChains1_2,
/*305471*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPORQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305485*/          /*Scope*/ 45, /*->305531*/
/*305486*/            OPC_MoveChild0,
/*305487*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*305490*/            OPC_MoveChild0,
/*305491*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305494*/            OPC_RecordMemRef,
/*305495*/            OPC_RecordNode, // #1 = 'ld' chained node
/*305496*/            OPC_CheckFoldableChainNode,
/*305497*/            OPC_RecordChild1, // #2 = $src2
/*305498*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305500*/            OPC_CheckPredicate, 9, // Predicate_load
/*305502*/            OPC_CheckType, MVT::i64,
/*305504*/            OPC_MoveParent,
/*305505*/            OPC_MoveParent,
/*305506*/            OPC_RecordChild1, // #3 = $src1
/*305507*/            OPC_MoveParent,
/*305508*/            OPC_RecordChild2, // #4 = $src0
/*305509*/            OPC_CheckType, MVT::v2i64,
/*305511*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305513*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*305516*/            OPC_EmitMergeInputChains1_1,
/*305517*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (or:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPORQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305531*/          /*Scope*/ 40, /*->305572*/
/*305532*/            OPC_RecordChild0, // #1 = $src1
/*305533*/            OPC_MoveChild1,
/*305534*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305537*/            OPC_RecordMemRef,
/*305538*/            OPC_RecordNode, // #2 = 'ld' chained node
/*305539*/            OPC_CheckFoldableChainNode,
/*305540*/            OPC_RecordChild1, // #3 = $src2
/*305541*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305543*/            OPC_CheckPredicate, 9, // Predicate_load
/*305545*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*305547*/            OPC_MoveParent,
/*305548*/            OPC_MoveParent,
/*305549*/            OPC_RecordChild2, // #4 = $src0
/*305550*/            OPC_CheckType, MVT::v2i64,
/*305552*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305554*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*305557*/            OPC_EmitMergeInputChains1_2,
/*305558*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305572*/          /*Scope*/ 40, /*->305613*/
/*305573*/            OPC_MoveChild0,
/*305574*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305577*/            OPC_RecordMemRef,
/*305578*/            OPC_RecordNode, // #1 = 'ld' chained node
/*305579*/            OPC_CheckFoldableChainNode,
/*305580*/            OPC_RecordChild1, // #2 = $src2
/*305581*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305583*/            OPC_CheckPredicate, 9, // Predicate_load
/*305585*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*305587*/            OPC_MoveParent,
/*305588*/            OPC_RecordChild1, // #3 = $src1
/*305589*/            OPC_MoveParent,
/*305590*/            OPC_RecordChild2, // #4 = $src0
/*305591*/            OPC_CheckType, MVT::v2i64,
/*305593*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305595*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*305598*/            OPC_EmitMergeInputChains1_1,
/*305599*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (or:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305613*/          0, /*End of Scope*/
/*305614*/        /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(ISD::XOR),// ->306016
/*305618*/          OPC_Scope, 57, /*->305677*/ // 8 children in Scope
/*305620*/            OPC_RecordChild0, // #1 = $src1
/*305621*/            OPC_MoveChild1,
/*305622*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*305625*/            OPC_MoveChild0,
/*305626*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305629*/            OPC_RecordMemRef,
/*305630*/            OPC_RecordNode, // #2 = 'ld' chained node
/*305631*/            OPC_CheckFoldableChainNode,
/*305632*/            OPC_RecordChild1, // #3 = $src2
/*305633*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305635*/            OPC_CheckPredicate, 9, // Predicate_load
/*305637*/            OPC_CheckType, MVT::i64,
/*305639*/            OPC_MoveParent,
/*305640*/            OPC_MoveParent,
/*305641*/            OPC_MoveParent,
/*305642*/            OPC_MoveChild2,
/*305643*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*305646*/            OPC_MoveChild0,
/*305647*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*305650*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*305652*/            OPC_CheckType, MVT::v4i32,
/*305654*/            OPC_MoveParent,
/*305655*/            OPC_MoveParent,
/*305656*/            OPC_CheckType, MVT::v2i64,
/*305658*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305660*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*305663*/            OPC_EmitMergeInputChains1_2,
/*305664*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPXORQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305677*/          /*Scope*/ 57, /*->305735*/
/*305678*/            OPC_MoveChild0,
/*305679*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*305682*/            OPC_MoveChild0,
/*305683*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305686*/            OPC_RecordMemRef,
/*305687*/            OPC_RecordNode, // #1 = 'ld' chained node
/*305688*/            OPC_CheckFoldableChainNode,
/*305689*/            OPC_RecordChild1, // #2 = $src2
/*305690*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305692*/            OPC_CheckPredicate, 9, // Predicate_load
/*305694*/            OPC_CheckType, MVT::i64,
/*305696*/            OPC_MoveParent,
/*305697*/            OPC_MoveParent,
/*305698*/            OPC_RecordChild1, // #3 = $src1
/*305699*/            OPC_MoveParent,
/*305700*/            OPC_MoveChild2,
/*305701*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*305704*/            OPC_MoveChild0,
/*305705*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*305708*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*305710*/            OPC_CheckType, MVT::v4i32,
/*305712*/            OPC_MoveParent,
/*305713*/            OPC_MoveParent,
/*305714*/            OPC_CheckType, MVT::v2i64,
/*305716*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305718*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*305721*/            OPC_EmitMergeInputChains1_1,
/*305722*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (xor:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPXORQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305735*/          /*Scope*/ 52, /*->305788*/
/*305736*/            OPC_RecordChild0, // #1 = $src1
/*305737*/            OPC_MoveChild1,
/*305738*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305741*/            OPC_RecordMemRef,
/*305742*/            OPC_RecordNode, // #2 = 'ld' chained node
/*305743*/            OPC_CheckFoldableChainNode,
/*305744*/            OPC_RecordChild1, // #3 = $src2
/*305745*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305747*/            OPC_CheckPredicate, 9, // Predicate_load
/*305749*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*305751*/            OPC_MoveParent,
/*305752*/            OPC_MoveParent,
/*305753*/            OPC_MoveChild2,
/*305754*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*305757*/            OPC_MoveChild0,
/*305758*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*305761*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*305763*/            OPC_CheckType, MVT::v4i32,
/*305765*/            OPC_MoveParent,
/*305766*/            OPC_MoveParent,
/*305767*/            OPC_CheckType, MVT::v2i64,
/*305769*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305771*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*305774*/            OPC_EmitMergeInputChains1_2,
/*305775*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPXORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305788*/          /*Scope*/ 52, /*->305841*/
/*305789*/            OPC_MoveChild0,
/*305790*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305793*/            OPC_RecordMemRef,
/*305794*/            OPC_RecordNode, // #1 = 'ld' chained node
/*305795*/            OPC_CheckFoldableChainNode,
/*305796*/            OPC_RecordChild1, // #2 = $src2
/*305797*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305799*/            OPC_CheckPredicate, 9, // Predicate_load
/*305801*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*305803*/            OPC_MoveParent,
/*305804*/            OPC_RecordChild1, // #3 = $src1
/*305805*/            OPC_MoveParent,
/*305806*/            OPC_MoveChild2,
/*305807*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*305810*/            OPC_MoveChild0,
/*305811*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*305814*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*305816*/            OPC_CheckType, MVT::v4i32,
/*305818*/            OPC_MoveParent,
/*305819*/            OPC_MoveParent,
/*305820*/            OPC_CheckType, MVT::v2i64,
/*305822*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305824*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*305827*/            OPC_EmitMergeInputChains1_1,
/*305828*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (xor:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPXORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305841*/          /*Scope*/ 45, /*->305887*/
/*305842*/            OPC_RecordChild0, // #1 = $src1
/*305843*/            OPC_MoveChild1,
/*305844*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*305847*/            OPC_MoveChild0,
/*305848*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305851*/            OPC_RecordMemRef,
/*305852*/            OPC_RecordNode, // #2 = 'ld' chained node
/*305853*/            OPC_CheckFoldableChainNode,
/*305854*/            OPC_RecordChild1, // #3 = $src2
/*305855*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305857*/            OPC_CheckPredicate, 9, // Predicate_load
/*305859*/            OPC_CheckType, MVT::i64,
/*305861*/            OPC_MoveParent,
/*305862*/            OPC_MoveParent,
/*305863*/            OPC_MoveParent,
/*305864*/            OPC_RecordChild2, // #4 = $src0
/*305865*/            OPC_CheckType, MVT::v2i64,
/*305867*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305869*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*305872*/            OPC_EmitMergeInputChains1_2,
/*305873*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPXORQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305887*/          /*Scope*/ 45, /*->305933*/
/*305888*/            OPC_MoveChild0,
/*305889*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*305892*/            OPC_MoveChild0,
/*305893*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305896*/            OPC_RecordMemRef,
/*305897*/            OPC_RecordNode, // #1 = 'ld' chained node
/*305898*/            OPC_CheckFoldableChainNode,
/*305899*/            OPC_RecordChild1, // #2 = $src2
/*305900*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305902*/            OPC_CheckPredicate, 9, // Predicate_load
/*305904*/            OPC_CheckType, MVT::i64,
/*305906*/            OPC_MoveParent,
/*305907*/            OPC_MoveParent,
/*305908*/            OPC_RecordChild1, // #3 = $src1
/*305909*/            OPC_MoveParent,
/*305910*/            OPC_RecordChild2, // #4 = $src0
/*305911*/            OPC_CheckType, MVT::v2i64,
/*305913*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305915*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*305918*/            OPC_EmitMergeInputChains1_1,
/*305919*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (xor:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                      // Dst: (VPXORQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305933*/          /*Scope*/ 40, /*->305974*/
/*305934*/            OPC_RecordChild0, // #1 = $src1
/*305935*/            OPC_MoveChild1,
/*305936*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305939*/            OPC_RecordMemRef,
/*305940*/            OPC_RecordNode, // #2 = 'ld' chained node
/*305941*/            OPC_CheckFoldableChainNode,
/*305942*/            OPC_RecordChild1, // #3 = $src2
/*305943*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305945*/            OPC_CheckPredicate, 9, // Predicate_load
/*305947*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*305949*/            OPC_MoveParent,
/*305950*/            OPC_MoveParent,
/*305951*/            OPC_RecordChild2, // #4 = $src0
/*305952*/            OPC_CheckType, MVT::v2i64,
/*305954*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305956*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*305959*/            OPC_EmitMergeInputChains1_2,
/*305960*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPXORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*305974*/          /*Scope*/ 40, /*->306015*/
/*305975*/            OPC_MoveChild0,
/*305976*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*305979*/            OPC_RecordMemRef,
/*305980*/            OPC_RecordNode, // #1 = 'ld' chained node
/*305981*/            OPC_CheckFoldableChainNode,
/*305982*/            OPC_RecordChild1, // #2 = $src2
/*305983*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305985*/            OPC_CheckPredicate, 9, // Predicate_load
/*305987*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*305989*/            OPC_MoveParent,
/*305990*/            OPC_RecordChild1, // #3 = $src1
/*305991*/            OPC_MoveParent,
/*305992*/            OPC_RecordChild2, // #4 = $src0
/*305993*/            OPC_CheckType, MVT::v2i64,
/*305995*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305997*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306000*/            OPC_EmitMergeInputChains1_1,
/*306001*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (xor:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPXORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306015*/          0, /*End of Scope*/
/*306016*/        /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::ANDNP),// ->306183
/*306020*/          OPC_RecordChild0, // #1 = $src1
/*306021*/          OPC_MoveChild1,
/*306022*/          OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->306105
/*306026*/            OPC_MoveChild0,
/*306027*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*306030*/            OPC_RecordMemRef,
/*306031*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306032*/            OPC_CheckFoldableChainNode,
/*306033*/            OPC_RecordChild1, // #3 = $src2
/*306034*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306036*/            OPC_CheckPredicate, 9, // Predicate_load
/*306038*/            OPC_CheckType, MVT::i64,
/*306040*/            OPC_MoveParent,
/*306041*/            OPC_MoveParent,
/*306042*/            OPC_MoveParent,
/*306043*/            OPC_Scope, 35, /*->306080*/ // 2 children in Scope
/*306045*/              OPC_MoveChild2,
/*306046*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306049*/              OPC_MoveChild0,
/*306050*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306053*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306055*/              OPC_CheckType, MVT::v4i32,
/*306057*/              OPC_MoveParent,
/*306058*/              OPC_MoveParent,
/*306059*/              OPC_CheckType, MVT::v2i64,
/*306061*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306063*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306066*/              OPC_EmitMergeInputChains1_2,
/*306067*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPANDNQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306080*/            /*Scope*/ 23, /*->306104*/
/*306081*/              OPC_RecordChild2, // #4 = $src0
/*306082*/              OPC_CheckType, MVT::v2i64,
/*306084*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306086*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306089*/              OPC_EmitMergeInputChains1_2,
/*306090*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPANDNQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306104*/            0, /*End of Scope*/
/*306105*/          /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->306182
/*306108*/            OPC_RecordMemRef,
/*306109*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306110*/            OPC_CheckFoldableChainNode,
/*306111*/            OPC_RecordChild1, // #3 = $src2
/*306112*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306114*/            OPC_CheckPredicate, 9, // Predicate_load
/*306116*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*306118*/            OPC_MoveParent,
/*306119*/            OPC_MoveParent,
/*306120*/            OPC_Scope, 35, /*->306157*/ // 2 children in Scope
/*306122*/              OPC_MoveChild2,
/*306123*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306126*/              OPC_MoveChild0,
/*306127*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306130*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306132*/              OPC_CheckType, MVT::v4i32,
/*306134*/              OPC_MoveParent,
/*306135*/              OPC_MoveParent,
/*306136*/              OPC_CheckType, MVT::v2i64,
/*306138*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306140*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306143*/              OPC_EmitMergeInputChains1_2,
/*306144*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPANDNQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306157*/            /*Scope*/ 23, /*->306181*/
/*306158*/              OPC_RecordChild2, // #4 = $src0
/*306159*/              OPC_CheckType, MVT::v2i64,
/*306161*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306163*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306166*/              OPC_EmitMergeInputChains1_2,
/*306167*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPANDNQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306181*/            0, /*End of Scope*/
/*306182*/          0, // EndSwitchOpcode
/*306183*/        /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(ISD::SHL),// ->306354
/*306187*/          OPC_RecordChild0, // #1 = $src1
/*306188*/          OPC_MoveChild1,
/*306189*/          OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(X86ISD::VBROADCAST),// ->306274
/*306193*/            OPC_MoveChild0,
/*306194*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*306197*/            OPC_RecordMemRef,
/*306198*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306199*/            OPC_CheckFoldableChainNode,
/*306200*/            OPC_RecordChild1, // #3 = $src2
/*306201*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306203*/            OPC_CheckPredicate, 9, // Predicate_load
/*306205*/            OPC_CheckType, MVT::i64,
/*306207*/            OPC_MoveParent,
/*306208*/            OPC_CheckType, MVT::v2i64,
/*306210*/            OPC_MoveParent,
/*306211*/            OPC_MoveParent,
/*306212*/            OPC_Scope, 35, /*->306249*/ // 2 children in Scope
/*306214*/              OPC_MoveChild2,
/*306215*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306218*/              OPC_MoveChild0,
/*306219*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306222*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306224*/              OPC_CheckType, MVT::v4i32,
/*306226*/              OPC_MoveParent,
/*306227*/              OPC_MoveParent,
/*306228*/              OPC_CheckType, MVT::v2i64,
/*306230*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306232*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306235*/              OPC_EmitMergeInputChains1_2,
/*306236*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (shl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSLLVQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306249*/            /*Scope*/ 23, /*->306273*/
/*306250*/              OPC_RecordChild2, // #4 = $src0
/*306251*/              OPC_CheckType, MVT::v2i64,
/*306253*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306255*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306258*/              OPC_EmitMergeInputChains1_2,
/*306259*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (shl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPSLLVQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306273*/            0, /*End of Scope*/
/*306274*/          /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->306353
/*306277*/            OPC_RecordMemRef,
/*306278*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306279*/            OPC_CheckFoldableChainNode,
/*306280*/            OPC_RecordChild1, // #3 = $src2
/*306281*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306283*/            OPC_CheckPredicate, 9, // Predicate_load
/*306285*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*306287*/            OPC_CheckType, MVT::v2i64,
/*306289*/            OPC_MoveParent,
/*306290*/            OPC_MoveParent,
/*306291*/            OPC_Scope, 35, /*->306328*/ // 2 children in Scope
/*306293*/              OPC_MoveChild2,
/*306294*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306297*/              OPC_MoveChild0,
/*306298*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306301*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306303*/              OPC_CheckType, MVT::v4i32,
/*306305*/              OPC_MoveParent,
/*306306*/              OPC_MoveParent,
/*306307*/              OPC_CheckType, MVT::v2i64,
/*306309*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306311*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306314*/              OPC_EmitMergeInputChains1_2,
/*306315*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (shl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSLLVQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306328*/            /*Scope*/ 23, /*->306352*/
/*306329*/              OPC_RecordChild2, // #4 = $src0
/*306330*/              OPC_CheckType, MVT::v2i64,
/*306332*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306334*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306337*/              OPC_EmitMergeInputChains1_2,
/*306338*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (shl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPSLLVQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306352*/            0, /*End of Scope*/
/*306353*/          0, // EndSwitchOpcode
/*306354*/        /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(ISD::SRA),// ->306525
/*306358*/          OPC_RecordChild0, // #1 = $src1
/*306359*/          OPC_MoveChild1,
/*306360*/          OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(X86ISD::VBROADCAST),// ->306445
/*306364*/            OPC_MoveChild0,
/*306365*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*306368*/            OPC_RecordMemRef,
/*306369*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306370*/            OPC_CheckFoldableChainNode,
/*306371*/            OPC_RecordChild1, // #3 = $src2
/*306372*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306374*/            OPC_CheckPredicate, 9, // Predicate_load
/*306376*/            OPC_CheckType, MVT::i64,
/*306378*/            OPC_MoveParent,
/*306379*/            OPC_CheckType, MVT::v2i64,
/*306381*/            OPC_MoveParent,
/*306382*/            OPC_MoveParent,
/*306383*/            OPC_Scope, 35, /*->306420*/ // 2 children in Scope
/*306385*/              OPC_MoveChild2,
/*306386*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306389*/              OPC_MoveChild0,
/*306390*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306393*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306395*/              OPC_CheckType, MVT::v4i32,
/*306397*/              OPC_MoveParent,
/*306398*/              OPC_MoveParent,
/*306399*/              OPC_CheckType, MVT::v2i64,
/*306401*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306403*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306406*/              OPC_EmitMergeInputChains1_2,
/*306407*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSRAVQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306420*/            /*Scope*/ 23, /*->306444*/
/*306421*/              OPC_RecordChild2, // #4 = $src0
/*306422*/              OPC_CheckType, MVT::v2i64,
/*306424*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306426*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306429*/              OPC_EmitMergeInputChains1_2,
/*306430*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPSRAVQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306444*/            0, /*End of Scope*/
/*306445*/          /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->306524
/*306448*/            OPC_RecordMemRef,
/*306449*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306450*/            OPC_CheckFoldableChainNode,
/*306451*/            OPC_RecordChild1, // #3 = $src2
/*306452*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306454*/            OPC_CheckPredicate, 9, // Predicate_load
/*306456*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*306458*/            OPC_CheckType, MVT::v2i64,
/*306460*/            OPC_MoveParent,
/*306461*/            OPC_MoveParent,
/*306462*/            OPC_Scope, 35, /*->306499*/ // 2 children in Scope
/*306464*/              OPC_MoveChild2,
/*306465*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306468*/              OPC_MoveChild0,
/*306469*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306472*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306474*/              OPC_CheckType, MVT::v4i32,
/*306476*/              OPC_MoveParent,
/*306477*/              OPC_MoveParent,
/*306478*/              OPC_CheckType, MVT::v2i64,
/*306480*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306482*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306485*/              OPC_EmitMergeInputChains1_2,
/*306486*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRAVQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306499*/            /*Scope*/ 23, /*->306523*/
/*306500*/              OPC_RecordChild2, // #4 = $src0
/*306501*/              OPC_CheckType, MVT::v2i64,
/*306503*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306505*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306508*/              OPC_EmitMergeInputChains1_2,
/*306509*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRAVQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306523*/            0, /*End of Scope*/
/*306524*/          0, // EndSwitchOpcode
/*306525*/        /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(ISD::SRL),// ->306696
/*306529*/          OPC_RecordChild0, // #1 = $src1
/*306530*/          OPC_MoveChild1,
/*306531*/          OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(X86ISD::VBROADCAST),// ->306616
/*306535*/            OPC_MoveChild0,
/*306536*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*306539*/            OPC_RecordMemRef,
/*306540*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306541*/            OPC_CheckFoldableChainNode,
/*306542*/            OPC_RecordChild1, // #3 = $src2
/*306543*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306545*/            OPC_CheckPredicate, 9, // Predicate_load
/*306547*/            OPC_CheckType, MVT::i64,
/*306549*/            OPC_MoveParent,
/*306550*/            OPC_CheckType, MVT::v2i64,
/*306552*/            OPC_MoveParent,
/*306553*/            OPC_MoveParent,
/*306554*/            OPC_Scope, 35, /*->306591*/ // 2 children in Scope
/*306556*/              OPC_MoveChild2,
/*306557*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306560*/              OPC_MoveChild0,
/*306561*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306564*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306566*/              OPC_CheckType, MVT::v4i32,
/*306568*/              OPC_MoveParent,
/*306569*/              OPC_MoveParent,
/*306570*/              OPC_CheckType, MVT::v2i64,
/*306572*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306574*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306577*/              OPC_EmitMergeInputChains1_2,
/*306578*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (srl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSRLVQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306591*/            /*Scope*/ 23, /*->306615*/
/*306592*/              OPC_RecordChild2, // #4 = $src0
/*306593*/              OPC_CheckType, MVT::v2i64,
/*306595*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306597*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306600*/              OPC_EmitMergeInputChains1_2,
/*306601*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (srl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPSRLVQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306615*/            0, /*End of Scope*/
/*306616*/          /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->306695
/*306619*/            OPC_RecordMemRef,
/*306620*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306621*/            OPC_CheckFoldableChainNode,
/*306622*/            OPC_RecordChild1, // #3 = $src2
/*306623*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306625*/            OPC_CheckPredicate, 9, // Predicate_load
/*306627*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*306629*/            OPC_CheckType, MVT::v2i64,
/*306631*/            OPC_MoveParent,
/*306632*/            OPC_MoveParent,
/*306633*/            OPC_Scope, 35, /*->306670*/ // 2 children in Scope
/*306635*/              OPC_MoveChild2,
/*306636*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306639*/              OPC_MoveChild0,
/*306640*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306643*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306645*/              OPC_CheckType, MVT::v4i32,
/*306647*/              OPC_MoveParent,
/*306648*/              OPC_MoveParent,
/*306649*/              OPC_CheckType, MVT::v2i64,
/*306651*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306653*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306656*/              OPC_EmitMergeInputChains1_2,
/*306657*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (srl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRLVQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306670*/            /*Scope*/ 23, /*->306694*/
/*306671*/              OPC_RecordChild2, // #4 = $src0
/*306672*/              OPC_CheckType, MVT::v2i64,
/*306674*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306676*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306679*/              OPC_EmitMergeInputChains1_2,
/*306680*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (srl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRLVQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306694*/            0, /*End of Scope*/
/*306695*/          0, // EndSwitchOpcode
/*306696*/        /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(ISD::ROTR),// ->306867
/*306700*/          OPC_RecordChild0, // #1 = $src1
/*306701*/          OPC_MoveChild1,
/*306702*/          OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(X86ISD::VBROADCAST),// ->306787
/*306706*/            OPC_MoveChild0,
/*306707*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*306710*/            OPC_RecordMemRef,
/*306711*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306712*/            OPC_CheckFoldableChainNode,
/*306713*/            OPC_RecordChild1, // #3 = $src2
/*306714*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306716*/            OPC_CheckPredicate, 9, // Predicate_load
/*306718*/            OPC_CheckType, MVT::i64,
/*306720*/            OPC_MoveParent,
/*306721*/            OPC_CheckType, MVT::v2i64,
/*306723*/            OPC_MoveParent,
/*306724*/            OPC_MoveParent,
/*306725*/            OPC_Scope, 35, /*->306762*/ // 2 children in Scope
/*306727*/              OPC_MoveChild2,
/*306728*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306731*/              OPC_MoveChild0,
/*306732*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306735*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306737*/              OPC_CheckType, MVT::v4i32,
/*306739*/              OPC_MoveParent,
/*306740*/              OPC_MoveParent,
/*306741*/              OPC_CheckType, MVT::v2i64,
/*306743*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306745*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306748*/              OPC_EmitMergeInputChains1_2,
/*306749*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPRORVQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306762*/            /*Scope*/ 23, /*->306786*/
/*306763*/              OPC_RecordChild2, // #4 = $src0
/*306764*/              OPC_CheckType, MVT::v2i64,
/*306766*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306768*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306771*/              OPC_EmitMergeInputChains1_2,
/*306772*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPRORVQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306786*/            0, /*End of Scope*/
/*306787*/          /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->306866
/*306790*/            OPC_RecordMemRef,
/*306791*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306792*/            OPC_CheckFoldableChainNode,
/*306793*/            OPC_RecordChild1, // #3 = $src2
/*306794*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306796*/            OPC_CheckPredicate, 9, // Predicate_load
/*306798*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*306800*/            OPC_CheckType, MVT::v2i64,
/*306802*/            OPC_MoveParent,
/*306803*/            OPC_MoveParent,
/*306804*/            OPC_Scope, 35, /*->306841*/ // 2 children in Scope
/*306806*/              OPC_MoveChild2,
/*306807*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306810*/              OPC_MoveChild0,
/*306811*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306814*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306816*/              OPC_CheckType, MVT::v4i32,
/*306818*/              OPC_MoveParent,
/*306819*/              OPC_MoveParent,
/*306820*/              OPC_CheckType, MVT::v2i64,
/*306822*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306824*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306827*/              OPC_EmitMergeInputChains1_2,
/*306828*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPRORVQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306841*/            /*Scope*/ 23, /*->306865*/
/*306842*/              OPC_RecordChild2, // #4 = $src0
/*306843*/              OPC_CheckType, MVT::v2i64,
/*306845*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306847*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306850*/              OPC_EmitMergeInputChains1_2,
/*306851*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPRORVQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306865*/            0, /*End of Scope*/
/*306866*/          0, // EndSwitchOpcode
/*306867*/        /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(ISD::ROTL),// ->307038
/*306871*/          OPC_RecordChild0, // #1 = $src1
/*306872*/          OPC_MoveChild1,
/*306873*/          OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(X86ISD::VBROADCAST),// ->306958
/*306877*/            OPC_MoveChild0,
/*306878*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*306881*/            OPC_RecordMemRef,
/*306882*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306883*/            OPC_CheckFoldableChainNode,
/*306884*/            OPC_RecordChild1, // #3 = $src2
/*306885*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306887*/            OPC_CheckPredicate, 9, // Predicate_load
/*306889*/            OPC_CheckType, MVT::i64,
/*306891*/            OPC_MoveParent,
/*306892*/            OPC_CheckType, MVT::v2i64,
/*306894*/            OPC_MoveParent,
/*306895*/            OPC_MoveParent,
/*306896*/            OPC_Scope, 35, /*->306933*/ // 2 children in Scope
/*306898*/              OPC_MoveChild2,
/*306899*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306902*/              OPC_MoveChild0,
/*306903*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306906*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306908*/              OPC_CheckType, MVT::v4i32,
/*306910*/              OPC_MoveParent,
/*306911*/              OPC_MoveParent,
/*306912*/              OPC_CheckType, MVT::v2i64,
/*306914*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306916*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306919*/              OPC_EmitMergeInputChains1_2,
/*306920*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPROLVQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306933*/            /*Scope*/ 23, /*->306957*/
/*306934*/              OPC_RecordChild2, // #4 = $src0
/*306935*/              OPC_CheckType, MVT::v2i64,
/*306937*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306939*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*306942*/              OPC_EmitMergeInputChains1_2,
/*306943*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPROLVQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*306957*/            0, /*End of Scope*/
/*306958*/          /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->307037
/*306961*/            OPC_RecordMemRef,
/*306962*/            OPC_RecordNode, // #2 = 'ld' chained node
/*306963*/            OPC_CheckFoldableChainNode,
/*306964*/            OPC_RecordChild1, // #3 = $src2
/*306965*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306967*/            OPC_CheckPredicate, 9, // Predicate_load
/*306969*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*306971*/            OPC_CheckType, MVT::v2i64,
/*306973*/            OPC_MoveParent,
/*306974*/            OPC_MoveParent,
/*306975*/            OPC_Scope, 35, /*->307012*/ // 2 children in Scope
/*306977*/              OPC_MoveChild2,
/*306978*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*306981*/              OPC_MoveChild0,
/*306982*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*306985*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*306987*/              OPC_CheckType, MVT::v4i32,
/*306989*/              OPC_MoveParent,
/*306990*/              OPC_MoveParent,
/*306991*/              OPC_CheckType, MVT::v2i64,
/*306993*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306995*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*306998*/              OPC_EmitMergeInputChains1_2,
/*306999*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPROLVQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*307012*/            /*Scope*/ 23, /*->307036*/
/*307013*/              OPC_RecordChild2, // #4 = $src0
/*307014*/              OPC_CheckType, MVT::v2i64,
/*307016*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307018*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*307021*/              OPC_EmitMergeInputChains1_2,
/*307022*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPROLVQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*307036*/            0, /*End of Scope*/
/*307037*/          0, // EndSwitchOpcode
/*307038*/        /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::VSRAV),// ->307205
/*307042*/          OPC_RecordChild0, // #1 = $src1
/*307043*/          OPC_MoveChild1,
/*307044*/          OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->307127
/*307048*/            OPC_MoveChild0,
/*307049*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307052*/            OPC_RecordMemRef,
/*307053*/            OPC_RecordNode, // #2 = 'ld' chained node
/*307054*/            OPC_CheckFoldableChainNode,
/*307055*/            OPC_RecordChild1, // #3 = $src2
/*307056*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307058*/            OPC_CheckPredicate, 9, // Predicate_load
/*307060*/            OPC_CheckType, MVT::i64,
/*307062*/            OPC_MoveParent,
/*307063*/            OPC_MoveParent,
/*307064*/            OPC_MoveParent,
/*307065*/            OPC_Scope, 35, /*->307102*/ // 2 children in Scope
/*307067*/              OPC_MoveChild2,
/*307068*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*307071*/              OPC_MoveChild0,
/*307072*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*307075*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*307077*/              OPC_CheckType, MVT::v4i32,
/*307079*/              OPC_MoveParent,
/*307080*/              OPC_MoveParent,
/*307081*/              OPC_CheckType, MVT::v2i64,
/*307083*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*307085*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*307088*/              OPC_EmitMergeInputChains1_2,
/*307089*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrav:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSRAVQZ128rmbkz:{ *:[v2i64] } VK2:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*307102*/            /*Scope*/ 23, /*->307126*/
/*307103*/              OPC_RecordChild2, // #4 = $src0
/*307104*/              OPC_CheckType, MVT::v2i64,
/*307106*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*307108*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*307111*/              OPC_EmitMergeInputChains1_2,
/*307112*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrav:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPSRAVQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*307126*/            0, /*End of Scope*/
/*307127*/          /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->307204
/*307130*/            OPC_RecordMemRef,
/*307131*/            OPC_RecordNode, // #2 = 'ld' chained node
/*307132*/            OPC_CheckFoldableChainNode,
/*307133*/            OPC_RecordChild1, // #3 = $src2
/*307134*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307136*/            OPC_CheckPredicate, 9, // Predicate_load
/*307138*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*307140*/            OPC_MoveParent,
/*307141*/            OPC_MoveParent,
/*307142*/            OPC_Scope, 35, /*->307179*/ // 2 children in Scope
/*307144*/              OPC_MoveChild2,
/*307145*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*307148*/              OPC_MoveChild0,
/*307149*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*307152*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*307154*/              OPC_CheckType, MVT::v4i32,
/*307156*/              OPC_MoveParent,
/*307157*/              OPC_MoveParent,
/*307158*/              OPC_CheckType, MVT::v2i64,
/*307160*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*307162*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*307165*/              OPC_EmitMergeInputChains1_2,
/*307166*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrav:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSRAVQZ128rmkz:{ *:[v2i64] } VK2:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*307179*/            /*Scope*/ 23, /*->307203*/
/*307180*/              OPC_RecordChild2, // #4 = $src0
/*307181*/              OPC_CheckType, MVT::v2i64,
/*307183*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*307185*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*307188*/              OPC_EmitMergeInputChains1_2,
/*307189*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrav:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRAVQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*307203*/            0, /*End of Scope*/
/*307204*/          0, // EndSwitchOpcode
/*307205*/        /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(X86ISD::VPMADD52L),// ->307623
/*307209*/          OPC_Scope, 59, /*->307270*/ // 8 children in Scope
/*307211*/            OPC_RecordChild0, // #1 = $src2
/*307212*/            OPC_MoveChild1,
/*307213*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*307216*/            OPC_MoveChild0,
/*307217*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307220*/            OPC_RecordMemRef,
/*307221*/            OPC_RecordNode, // #2 = 'ld' chained node
/*307222*/            OPC_CheckFoldableChainNode,
/*307223*/            OPC_RecordChild1, // #3 = $src3
/*307224*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307226*/            OPC_CheckPredicate, 9, // Predicate_load
/*307228*/            OPC_CheckType, MVT::i64,
/*307230*/            OPC_MoveParent,
/*307231*/            OPC_MoveParent,
/*307232*/            OPC_RecordChild2, // #4 = $src1
/*307233*/            OPC_MoveParent,
/*307234*/            OPC_MoveChild2,
/*307235*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*307238*/            OPC_MoveChild0,
/*307239*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*307242*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*307244*/            OPC_CheckType, MVT::v4i32,
/*307246*/            OPC_MoveParent,
/*307247*/            OPC_MoveParent,
/*307248*/            OPC_CheckType, MVT::v2i64,
/*307250*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307252*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307255*/            OPC_EmitMergeInputChains1_2,
/*307256*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52l:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMADD52LUQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307270*/          /*Scope*/ 59, /*->307330*/
/*307271*/            OPC_MoveChild0,
/*307272*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*307275*/            OPC_MoveChild0,
/*307276*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307279*/            OPC_RecordMemRef,
/*307280*/            OPC_RecordNode, // #1 = 'ld' chained node
/*307281*/            OPC_CheckFoldableChainNode,
/*307282*/            OPC_RecordChild1, // #2 = $src3
/*307283*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307285*/            OPC_CheckPredicate, 9, // Predicate_load
/*307287*/            OPC_CheckType, MVT::i64,
/*307289*/            OPC_MoveParent,
/*307290*/            OPC_MoveParent,
/*307291*/            OPC_RecordChild1, // #3 = $src2
/*307292*/            OPC_RecordChild2, // #4 = $src1
/*307293*/            OPC_MoveParent,
/*307294*/            OPC_MoveChild2,
/*307295*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*307298*/            OPC_MoveChild0,
/*307299*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*307302*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*307304*/            OPC_CheckType, MVT::v4i32,
/*307306*/            OPC_MoveParent,
/*307307*/            OPC_MoveParent,
/*307308*/            OPC_CheckType, MVT::v2i64,
/*307310*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307312*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307315*/            OPC_EmitMergeInputChains1_1,
/*307316*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52l:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMADD52LUQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307330*/          /*Scope*/ 54, /*->307385*/
/*307331*/            OPC_RecordChild0, // #1 = $src2
/*307332*/            OPC_MoveChild1,
/*307333*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307336*/            OPC_RecordMemRef,
/*307337*/            OPC_RecordNode, // #2 = 'ld' chained node
/*307338*/            OPC_CheckFoldableChainNode,
/*307339*/            OPC_RecordChild1, // #3 = $src3
/*307340*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307342*/            OPC_CheckPredicate, 9, // Predicate_load
/*307344*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*307346*/            OPC_MoveParent,
/*307347*/            OPC_RecordChild2, // #4 = $src1
/*307348*/            OPC_MoveParent,
/*307349*/            OPC_MoveChild2,
/*307350*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*307353*/            OPC_MoveChild0,
/*307354*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*307357*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*307359*/            OPC_CheckType, MVT::v4i32,
/*307361*/            OPC_MoveParent,
/*307362*/            OPC_MoveParent,
/*307363*/            OPC_CheckType, MVT::v2i64,
/*307365*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307367*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307370*/            OPC_EmitMergeInputChains1_2,
/*307371*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52l:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMADD52LUQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307385*/          /*Scope*/ 54, /*->307440*/
/*307386*/            OPC_MoveChild0,
/*307387*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307390*/            OPC_RecordMemRef,
/*307391*/            OPC_RecordNode, // #1 = 'ld' chained node
/*307392*/            OPC_CheckFoldableChainNode,
/*307393*/            OPC_RecordChild1, // #2 = $src3
/*307394*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307396*/            OPC_CheckPredicate, 9, // Predicate_load
/*307398*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*307400*/            OPC_MoveParent,
/*307401*/            OPC_RecordChild1, // #3 = $src2
/*307402*/            OPC_RecordChild2, // #4 = $src1
/*307403*/            OPC_MoveParent,
/*307404*/            OPC_MoveChild2,
/*307405*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*307408*/            OPC_MoveChild0,
/*307409*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*307412*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*307414*/            OPC_CheckType, MVT::v4i32,
/*307416*/            OPC_MoveParent,
/*307417*/            OPC_MoveParent,
/*307418*/            OPC_CheckType, MVT::v2i64,
/*307420*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307422*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307425*/            OPC_EmitMergeInputChains1_1,
/*307426*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52l:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMADD52LUQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307440*/          /*Scope*/ 47, /*->307488*/
/*307441*/            OPC_RecordChild0, // #1 = $src2
/*307442*/            OPC_MoveChild1,
/*307443*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*307446*/            OPC_MoveChild0,
/*307447*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307450*/            OPC_RecordMemRef,
/*307451*/            OPC_RecordNode, // #2 = 'ld' chained node
/*307452*/            OPC_CheckFoldableChainNode,
/*307453*/            OPC_RecordChild1, // #3 = $src3
/*307454*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307456*/            OPC_CheckPredicate, 9, // Predicate_load
/*307458*/            OPC_CheckType, MVT::i64,
/*307460*/            OPC_MoveParent,
/*307461*/            OPC_MoveParent,
/*307462*/            OPC_RecordChild2, // #4 = $src1
/*307463*/            OPC_MoveParent,
/*307464*/            OPC_CheckChild2Same, 4,
/*307466*/            OPC_CheckType, MVT::v2i64,
/*307468*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307470*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307473*/            OPC_EmitMergeInputChains1_2,
/*307474*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52l:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                      // Dst: (VPMADD52LUQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307488*/          /*Scope*/ 47, /*->307536*/
/*307489*/            OPC_MoveChild0,
/*307490*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*307493*/            OPC_MoveChild0,
/*307494*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307497*/            OPC_RecordMemRef,
/*307498*/            OPC_RecordNode, // #1 = 'ld' chained node
/*307499*/            OPC_CheckFoldableChainNode,
/*307500*/            OPC_RecordChild1, // #2 = $src3
/*307501*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307503*/            OPC_CheckPredicate, 9, // Predicate_load
/*307505*/            OPC_CheckType, MVT::i64,
/*307507*/            OPC_MoveParent,
/*307508*/            OPC_MoveParent,
/*307509*/            OPC_RecordChild1, // #3 = $src2
/*307510*/            OPC_RecordChild2, // #4 = $src1
/*307511*/            OPC_MoveParent,
/*307512*/            OPC_CheckChild2Same, 4,
/*307514*/            OPC_CheckType, MVT::v2i64,
/*307516*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307518*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307521*/            OPC_EmitMergeInputChains1_1,
/*307522*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52l:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                      // Dst: (VPMADD52LUQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307536*/          /*Scope*/ 42, /*->307579*/
/*307537*/            OPC_RecordChild0, // #1 = $src2
/*307538*/            OPC_MoveChild1,
/*307539*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307542*/            OPC_RecordMemRef,
/*307543*/            OPC_RecordNode, // #2 = 'ld' chained node
/*307544*/            OPC_CheckFoldableChainNode,
/*307545*/            OPC_RecordChild1, // #3 = $src3
/*307546*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307548*/            OPC_CheckPredicate, 9, // Predicate_load
/*307550*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*307552*/            OPC_MoveParent,
/*307553*/            OPC_RecordChild2, // #4 = $src1
/*307554*/            OPC_MoveParent,
/*307555*/            OPC_CheckChild2Same, 4,
/*307557*/            OPC_CheckType, MVT::v2i64,
/*307559*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307561*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307564*/            OPC_EmitMergeInputChains1_2,
/*307565*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52l:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                      // Dst: (VPMADD52LUQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307579*/          /*Scope*/ 42, /*->307622*/
/*307580*/            OPC_MoveChild0,
/*307581*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307584*/            OPC_RecordMemRef,
/*307585*/            OPC_RecordNode, // #1 = 'ld' chained node
/*307586*/            OPC_CheckFoldableChainNode,
/*307587*/            OPC_RecordChild1, // #2 = $src3
/*307588*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307590*/            OPC_CheckPredicate, 9, // Predicate_load
/*307592*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*307594*/            OPC_MoveParent,
/*307595*/            OPC_RecordChild1, // #3 = $src2
/*307596*/            OPC_RecordChild2, // #4 = $src1
/*307597*/            OPC_MoveParent,
/*307598*/            OPC_CheckChild2Same, 4,
/*307600*/            OPC_CheckType, MVT::v2i64,
/*307602*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307604*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307607*/            OPC_EmitMergeInputChains1_1,
/*307608*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52l:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                      // Dst: (VPMADD52LUQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307622*/          0, /*End of Scope*/
/*307623*/        /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(X86ISD::VPMADD52H),// ->308041
/*307627*/          OPC_Scope, 59, /*->307688*/ // 8 children in Scope
/*307629*/            OPC_RecordChild0, // #1 = $src2
/*307630*/            OPC_MoveChild1,
/*307631*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*307634*/            OPC_MoveChild0,
/*307635*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307638*/            OPC_RecordMemRef,
/*307639*/            OPC_RecordNode, // #2 = 'ld' chained node
/*307640*/            OPC_CheckFoldableChainNode,
/*307641*/            OPC_RecordChild1, // #3 = $src3
/*307642*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307644*/            OPC_CheckPredicate, 9, // Predicate_load
/*307646*/            OPC_CheckType, MVT::i64,
/*307648*/            OPC_MoveParent,
/*307649*/            OPC_MoveParent,
/*307650*/            OPC_RecordChild2, // #4 = $src1
/*307651*/            OPC_MoveParent,
/*307652*/            OPC_MoveChild2,
/*307653*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*307656*/            OPC_MoveChild0,
/*307657*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*307660*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*307662*/            OPC_CheckType, MVT::v4i32,
/*307664*/            OPC_MoveParent,
/*307665*/            OPC_MoveParent,
/*307666*/            OPC_CheckType, MVT::v2i64,
/*307668*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307670*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307673*/            OPC_EmitMergeInputChains1_2,
/*307674*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52h:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMADD52HUQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307688*/          /*Scope*/ 59, /*->307748*/
/*307689*/            OPC_MoveChild0,
/*307690*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*307693*/            OPC_MoveChild0,
/*307694*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307697*/            OPC_RecordMemRef,
/*307698*/            OPC_RecordNode, // #1 = 'ld' chained node
/*307699*/            OPC_CheckFoldableChainNode,
/*307700*/            OPC_RecordChild1, // #2 = $src3
/*307701*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307703*/            OPC_CheckPredicate, 9, // Predicate_load
/*307705*/            OPC_CheckType, MVT::i64,
/*307707*/            OPC_MoveParent,
/*307708*/            OPC_MoveParent,
/*307709*/            OPC_RecordChild1, // #3 = $src2
/*307710*/            OPC_RecordChild2, // #4 = $src1
/*307711*/            OPC_MoveParent,
/*307712*/            OPC_MoveChild2,
/*307713*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*307716*/            OPC_MoveChild0,
/*307717*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*307720*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*307722*/            OPC_CheckType, MVT::v4i32,
/*307724*/            OPC_MoveParent,
/*307725*/            OPC_MoveParent,
/*307726*/            OPC_CheckType, MVT::v2i64,
/*307728*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307730*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307733*/            OPC_EmitMergeInputChains1_1,
/*307734*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52h:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VPMADD52HUQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307748*/          /*Scope*/ 54, /*->307803*/
/*307749*/            OPC_RecordChild0, // #1 = $src2
/*307750*/            OPC_MoveChild1,
/*307751*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307754*/            OPC_RecordMemRef,
/*307755*/            OPC_RecordNode, // #2 = 'ld' chained node
/*307756*/            OPC_CheckFoldableChainNode,
/*307757*/            OPC_RecordChild1, // #3 = $src3
/*307758*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307760*/            OPC_CheckPredicate, 9, // Predicate_load
/*307762*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*307764*/            OPC_MoveParent,
/*307765*/            OPC_RecordChild2, // #4 = $src1
/*307766*/            OPC_MoveParent,
/*307767*/            OPC_MoveChild2,
/*307768*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*307771*/            OPC_MoveChild0,
/*307772*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*307775*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*307777*/            OPC_CheckType, MVT::v4i32,
/*307779*/            OPC_MoveParent,
/*307780*/            OPC_MoveParent,
/*307781*/            OPC_CheckType, MVT::v2i64,
/*307783*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307785*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307788*/            OPC_EmitMergeInputChains1_2,
/*307789*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52h:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMADD52HUQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307803*/          /*Scope*/ 54, /*->307858*/
/*307804*/            OPC_MoveChild0,
/*307805*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307808*/            OPC_RecordMemRef,
/*307809*/            OPC_RecordNode, // #1 = 'ld' chained node
/*307810*/            OPC_CheckFoldableChainNode,
/*307811*/            OPC_RecordChild1, // #2 = $src3
/*307812*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307814*/            OPC_CheckPredicate, 9, // Predicate_load
/*307816*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*307818*/            OPC_MoveParent,
/*307819*/            OPC_RecordChild1, // #3 = $src2
/*307820*/            OPC_RecordChild2, // #4 = $src1
/*307821*/            OPC_MoveParent,
/*307822*/            OPC_MoveChild2,
/*307823*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*307826*/            OPC_MoveChild0,
/*307827*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*307830*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*307832*/            OPC_CheckType, MVT::v4i32,
/*307834*/            OPC_MoveParent,
/*307835*/            OPC_MoveParent,
/*307836*/            OPC_CheckType, MVT::v2i64,
/*307838*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307840*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307843*/            OPC_EmitMergeInputChains1_1,
/*307844*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52h:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPMADD52HUQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307858*/          /*Scope*/ 47, /*->307906*/
/*307859*/            OPC_RecordChild0, // #1 = $src2
/*307860*/            OPC_MoveChild1,
/*307861*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*307864*/            OPC_MoveChild0,
/*307865*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307868*/            OPC_RecordMemRef,
/*307869*/            OPC_RecordNode, // #2 = 'ld' chained node
/*307870*/            OPC_CheckFoldableChainNode,
/*307871*/            OPC_RecordChild1, // #3 = $src3
/*307872*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307874*/            OPC_CheckPredicate, 9, // Predicate_load
/*307876*/            OPC_CheckType, MVT::i64,
/*307878*/            OPC_MoveParent,
/*307879*/            OPC_MoveParent,
/*307880*/            OPC_RecordChild2, // #4 = $src1
/*307881*/            OPC_MoveParent,
/*307882*/            OPC_CheckChild2Same, 4,
/*307884*/            OPC_CheckType, MVT::v2i64,
/*307886*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307888*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307891*/            OPC_EmitMergeInputChains1_2,
/*307892*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52h:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                      // Dst: (VPMADD52HUQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307906*/          /*Scope*/ 47, /*->307954*/
/*307907*/            OPC_MoveChild0,
/*307908*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*307911*/            OPC_MoveChild0,
/*307912*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307915*/            OPC_RecordMemRef,
/*307916*/            OPC_RecordNode, // #1 = 'ld' chained node
/*307917*/            OPC_CheckFoldableChainNode,
/*307918*/            OPC_RecordChild1, // #2 = $src3
/*307919*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307921*/            OPC_CheckPredicate, 9, // Predicate_load
/*307923*/            OPC_CheckType, MVT::i64,
/*307925*/            OPC_MoveParent,
/*307926*/            OPC_MoveParent,
/*307927*/            OPC_RecordChild1, // #3 = $src2
/*307928*/            OPC_RecordChild2, // #4 = $src1
/*307929*/            OPC_MoveParent,
/*307930*/            OPC_CheckChild2Same, 4,
/*307932*/            OPC_CheckType, MVT::v2i64,
/*307934*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307936*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307939*/            OPC_EmitMergeInputChains1_1,
/*307940*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52h:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                      // Dst: (VPMADD52HUQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307954*/          /*Scope*/ 42, /*->307997*/
/*307955*/            OPC_RecordChild0, // #1 = $src2
/*307956*/            OPC_MoveChild1,
/*307957*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*307960*/            OPC_RecordMemRef,
/*307961*/            OPC_RecordNode, // #2 = 'ld' chained node
/*307962*/            OPC_CheckFoldableChainNode,
/*307963*/            OPC_RecordChild1, // #3 = $src3
/*307964*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307966*/            OPC_CheckPredicate, 9, // Predicate_load
/*307968*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*307970*/            OPC_MoveParent,
/*307971*/            OPC_RecordChild2, // #4 = $src1
/*307972*/            OPC_MoveParent,
/*307973*/            OPC_CheckChild2Same, 4,
/*307975*/            OPC_CheckType, MVT::v2i64,
/*307977*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*307979*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307982*/            OPC_EmitMergeInputChains1_2,
/*307983*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52h:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                      // Dst: (VPMADD52HUQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307997*/          /*Scope*/ 42, /*->308040*/
/*307998*/            OPC_MoveChild0,
/*307999*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*308002*/            OPC_RecordMemRef,
/*308003*/            OPC_RecordNode, // #1 = 'ld' chained node
/*308004*/            OPC_CheckFoldableChainNode,
/*308005*/            OPC_RecordChild1, // #2 = $src3
/*308006*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308008*/            OPC_CheckPredicate, 9, // Predicate_load
/*308010*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*308012*/            OPC_MoveParent,
/*308013*/            OPC_RecordChild1, // #3 = $src2
/*308014*/            OPC_RecordChild2, // #4 = $src1
/*308015*/            OPC_MoveParent,
/*308016*/            OPC_CheckChild2Same, 4,
/*308018*/            OPC_CheckType, MVT::v2i64,
/*308020*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*308022*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308025*/            OPC_EmitMergeInputChains1_1,
/*308026*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52h:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                      // Dst: (VPMADD52HUQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308040*/          0, /*End of Scope*/
/*308041*/        /*SwitchOpcode*/ 43|128,2/*299*/, TARGET_VAL(X86ISD::CVTP2SI),// ->308344
/*308045*/          OPC_MoveChild0,
/*308046*/          OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->308199
/*308051*/            OPC_MoveChild0,
/*308052*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*308055*/            OPC_RecordMemRef,
/*308056*/            OPC_RecordNode, // #1 = 'ld' chained node
/*308057*/            OPC_CheckFoldableChainNode,
/*308058*/            OPC_RecordChild1, // #2 = $src
/*308059*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308061*/            OPC_CheckPredicate, 9, // Predicate_load
/*308063*/            OPC_SwitchType /*2 cases */, 65, MVT::f64,// ->308131
/*308066*/              OPC_MoveParent,
/*308067*/              OPC_CheckType, MVT::v2f64,
/*308069*/              OPC_MoveParent,
/*308070*/              OPC_MoveParent,
/*308071*/              OPC_Scope, 34, /*->308107*/ // 2 children in Scope
/*308073*/                OPC_MoveChild2,
/*308074*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308077*/                OPC_MoveChild0,
/*308078*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308081*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308083*/                OPC_CheckType, MVT::v4i32,
/*308085*/                OPC_MoveParent,
/*308086*/                OPC_MoveParent,
/*308087*/                OPC_CheckType, MVT::v2i64,
/*308089*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308091*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308094*/                OPC_EmitMergeInputChains1_1,
/*308095*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTPD2QQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308107*/              /*Scope*/ 22, /*->308130*/
/*308108*/                OPC_RecordChild2, // #3 = $src0
/*308109*/                OPC_CheckType, MVT::v2i64,
/*308111*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308113*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308116*/                OPC_EmitMergeInputChains1_1,
/*308117*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VCVTPD2QQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308130*/              0, /*End of Scope*/
/*308131*/            /*SwitchType*/ 65, MVT::f32,// ->308198
/*308133*/              OPC_MoveParent,
/*308134*/              OPC_CheckType, MVT::v4f32,
/*308136*/              OPC_MoveParent,
/*308137*/              OPC_MoveParent,
/*308138*/              OPC_Scope, 34, /*->308174*/ // 2 children in Scope
/*308140*/                OPC_MoveChild2,
/*308141*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308144*/                OPC_MoveChild0,
/*308145*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308148*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308150*/                OPC_CheckType, MVT::v4i32,
/*308152*/                OPC_MoveParent,
/*308153*/                OPC_MoveParent,
/*308154*/                OPC_CheckType, MVT::v2i64,
/*308156*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308158*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308161*/                OPC_EmitMergeInputChains1_1,
/*308162*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTPS2QQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308174*/              /*Scope*/ 22, /*->308197*/
/*308175*/                OPC_RecordChild2, // #3 = $src0
/*308176*/                OPC_CheckType, MVT::v2i64,
/*308178*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308180*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308183*/                OPC_EmitMergeInputChains1_1,
/*308184*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VCVTPS2QQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308197*/              0, /*End of Scope*/
/*308198*/            0, // EndSwitchType
/*308199*/          /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(ISD::LOAD),// ->308343
/*308203*/            OPC_RecordMemRef,
/*308204*/            OPC_RecordNode, // #1 = 'ld' chained node
/*308205*/            OPC_CheckFoldableChainNode,
/*308206*/            OPC_RecordChild1, // #2 = $src
/*308207*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308209*/            OPC_CheckPredicate, 9, // Predicate_load
/*308211*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*308213*/            OPC_SwitchType /*2 cases */, 62, MVT::v2f64,// ->308278
/*308216*/              OPC_MoveParent,
/*308217*/              OPC_MoveParent,
/*308218*/              OPC_Scope, 34, /*->308254*/ // 2 children in Scope
/*308220*/                OPC_MoveChild2,
/*308221*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308224*/                OPC_MoveChild0,
/*308225*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308228*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308230*/                OPC_CheckType, MVT::v4i32,
/*308232*/                OPC_MoveParent,
/*308233*/                OPC_MoveParent,
/*308234*/                OPC_CheckType, MVT::v2i64,
/*308236*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308238*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308241*/                OPC_EmitMergeInputChains1_1,
/*308242*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTPD2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308254*/              /*Scope*/ 22, /*->308277*/
/*308255*/                OPC_RecordChild2, // #3 = $src0
/*308256*/                OPC_CheckType, MVT::v2i64,
/*308258*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308260*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308263*/                OPC_EmitMergeInputChains1_1,
/*308264*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTPD2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308277*/              0, /*End of Scope*/
/*308278*/            /*SwitchType*/ 62, MVT::v4f32,// ->308342
/*308280*/              OPC_MoveParent,
/*308281*/              OPC_MoveParent,
/*308282*/              OPC_Scope, 34, /*->308318*/ // 2 children in Scope
/*308284*/                OPC_MoveChild2,
/*308285*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308288*/                OPC_MoveChild0,
/*308289*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308292*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308294*/                OPC_CheckType, MVT::v4i32,
/*308296*/                OPC_MoveParent,
/*308297*/                OPC_MoveParent,
/*308298*/                OPC_CheckType, MVT::v2i64,
/*308300*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308302*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308305*/                OPC_EmitMergeInputChains1_1,
/*308306*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTPS2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308318*/              /*Scope*/ 22, /*->308341*/
/*308319*/                OPC_RecordChild2, // #3 = $src0
/*308320*/                OPC_CheckType, MVT::v2i64,
/*308322*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308324*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308327*/                OPC_EmitMergeInputChains1_1,
/*308328*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTPS2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308341*/              0, /*End of Scope*/
/*308342*/            0, // EndSwitchType
/*308343*/          0, // EndSwitchOpcode
/*308344*/        /*SwitchOpcode*/ 43|128,2/*299*/, TARGET_VAL(X86ISD::CVTP2UI),// ->308647
/*308348*/          OPC_MoveChild0,
/*308349*/          OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->308502
/*308354*/            OPC_MoveChild0,
/*308355*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*308358*/            OPC_RecordMemRef,
/*308359*/            OPC_RecordNode, // #1 = 'ld' chained node
/*308360*/            OPC_CheckFoldableChainNode,
/*308361*/            OPC_RecordChild1, // #2 = $src
/*308362*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308364*/            OPC_CheckPredicate, 9, // Predicate_load
/*308366*/            OPC_SwitchType /*2 cases */, 65, MVT::f64,// ->308434
/*308369*/              OPC_MoveParent,
/*308370*/              OPC_CheckType, MVT::v2f64,
/*308372*/              OPC_MoveParent,
/*308373*/              OPC_MoveParent,
/*308374*/              OPC_Scope, 34, /*->308410*/ // 2 children in Scope
/*308376*/                OPC_MoveChild2,
/*308377*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308380*/                OPC_MoveChild0,
/*308381*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308384*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308386*/                OPC_CheckType, MVT::v4i32,
/*308388*/                OPC_MoveParent,
/*308389*/                OPC_MoveParent,
/*308390*/                OPC_CheckType, MVT::v2i64,
/*308392*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308394*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308397*/                OPC_EmitMergeInputChains1_1,
/*308398*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTPD2UQQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308410*/              /*Scope*/ 22, /*->308433*/
/*308411*/                OPC_RecordChild2, // #3 = $src0
/*308412*/                OPC_CheckType, MVT::v2i64,
/*308414*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308416*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308419*/                OPC_EmitMergeInputChains1_1,
/*308420*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VCVTPD2UQQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308433*/              0, /*End of Scope*/
/*308434*/            /*SwitchType*/ 65, MVT::f32,// ->308501
/*308436*/              OPC_MoveParent,
/*308437*/              OPC_CheckType, MVT::v4f32,
/*308439*/              OPC_MoveParent,
/*308440*/              OPC_MoveParent,
/*308441*/              OPC_Scope, 34, /*->308477*/ // 2 children in Scope
/*308443*/                OPC_MoveChild2,
/*308444*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308447*/                OPC_MoveChild0,
/*308448*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308451*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308453*/                OPC_CheckType, MVT::v4i32,
/*308455*/                OPC_MoveParent,
/*308456*/                OPC_MoveParent,
/*308457*/                OPC_CheckType, MVT::v2i64,
/*308459*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308461*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308464*/                OPC_EmitMergeInputChains1_1,
/*308465*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTPS2UQQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308477*/              /*Scope*/ 22, /*->308500*/
/*308478*/                OPC_RecordChild2, // #3 = $src0
/*308479*/                OPC_CheckType, MVT::v2i64,
/*308481*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308483*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308486*/                OPC_EmitMergeInputChains1_1,
/*308487*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VCVTPS2UQQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308500*/              0, /*End of Scope*/
/*308501*/            0, // EndSwitchType
/*308502*/          /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(ISD::LOAD),// ->308646
/*308506*/            OPC_RecordMemRef,
/*308507*/            OPC_RecordNode, // #1 = 'ld' chained node
/*308508*/            OPC_CheckFoldableChainNode,
/*308509*/            OPC_RecordChild1, // #2 = $src
/*308510*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308512*/            OPC_CheckPredicate, 9, // Predicate_load
/*308514*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*308516*/            OPC_SwitchType /*2 cases */, 62, MVT::v2f64,// ->308581
/*308519*/              OPC_MoveParent,
/*308520*/              OPC_MoveParent,
/*308521*/              OPC_Scope, 34, /*->308557*/ // 2 children in Scope
/*308523*/                OPC_MoveChild2,
/*308524*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308527*/                OPC_MoveChild0,
/*308528*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308531*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308533*/                OPC_CheckType, MVT::v4i32,
/*308535*/                OPC_MoveParent,
/*308536*/                OPC_MoveParent,
/*308537*/                OPC_CheckType, MVT::v2i64,
/*308539*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308541*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308544*/                OPC_EmitMergeInputChains1_1,
/*308545*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTPD2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308557*/              /*Scope*/ 22, /*->308580*/
/*308558*/                OPC_RecordChild2, // #3 = $src0
/*308559*/                OPC_CheckType, MVT::v2i64,
/*308561*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308563*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308566*/                OPC_EmitMergeInputChains1_1,
/*308567*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTPD2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308580*/              0, /*End of Scope*/
/*308581*/            /*SwitchType*/ 62, MVT::v4f32,// ->308645
/*308583*/              OPC_MoveParent,
/*308584*/              OPC_MoveParent,
/*308585*/              OPC_Scope, 34, /*->308621*/ // 2 children in Scope
/*308587*/                OPC_MoveChild2,
/*308588*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308591*/                OPC_MoveChild0,
/*308592*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308595*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308597*/                OPC_CheckType, MVT::v4i32,
/*308599*/                OPC_MoveParent,
/*308600*/                OPC_MoveParent,
/*308601*/                OPC_CheckType, MVT::v2i64,
/*308603*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308605*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308608*/                OPC_EmitMergeInputChains1_1,
/*308609*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTPS2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308621*/              /*Scope*/ 22, /*->308644*/
/*308622*/                OPC_RecordChild2, // #3 = $src0
/*308623*/                OPC_CheckType, MVT::v2i64,
/*308625*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308627*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308630*/                OPC_EmitMergeInputChains1_1,
/*308631*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTPS2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308644*/              0, /*End of Scope*/
/*308645*/            0, // EndSwitchType
/*308646*/          0, // EndSwitchOpcode
/*308647*/        /*SwitchOpcode*/ 43|128,2/*299*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->308950
/*308651*/          OPC_MoveChild0,
/*308652*/          OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->308805
/*308657*/            OPC_MoveChild0,
/*308658*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*308661*/            OPC_RecordMemRef,
/*308662*/            OPC_RecordNode, // #1 = 'ld' chained node
/*308663*/            OPC_CheckFoldableChainNode,
/*308664*/            OPC_RecordChild1, // #2 = $src
/*308665*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308667*/            OPC_CheckPredicate, 9, // Predicate_load
/*308669*/            OPC_SwitchType /*2 cases */, 65, MVT::f64,// ->308737
/*308672*/              OPC_MoveParent,
/*308673*/              OPC_CheckType, MVT::v2f64,
/*308675*/              OPC_MoveParent,
/*308676*/              OPC_MoveParent,
/*308677*/              OPC_Scope, 34, /*->308713*/ // 2 children in Scope
/*308679*/                OPC_MoveChild2,
/*308680*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308683*/                OPC_MoveChild0,
/*308684*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308687*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308689*/                OPC_CheckType, MVT::v4i32,
/*308691*/                OPC_MoveParent,
/*308692*/                OPC_MoveParent,
/*308693*/                OPC_CheckType, MVT::v2i64,
/*308695*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308697*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308700*/                OPC_EmitMergeInputChains1_1,
/*308701*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTTPD2QQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308713*/              /*Scope*/ 22, /*->308736*/
/*308714*/                OPC_RecordChild2, // #3 = $src0
/*308715*/                OPC_CheckType, MVT::v2i64,
/*308717*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308719*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308722*/                OPC_EmitMergeInputChains1_1,
/*308723*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VCVTTPD2QQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308736*/              0, /*End of Scope*/
/*308737*/            /*SwitchType*/ 65, MVT::f32,// ->308804
/*308739*/              OPC_MoveParent,
/*308740*/              OPC_CheckType, MVT::v4f32,
/*308742*/              OPC_MoveParent,
/*308743*/              OPC_MoveParent,
/*308744*/              OPC_Scope, 34, /*->308780*/ // 2 children in Scope
/*308746*/                OPC_MoveChild2,
/*308747*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308750*/                OPC_MoveChild0,
/*308751*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308754*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308756*/                OPC_CheckType, MVT::v4i32,
/*308758*/                OPC_MoveParent,
/*308759*/                OPC_MoveParent,
/*308760*/                OPC_CheckType, MVT::v2i64,
/*308762*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308764*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308767*/                OPC_EmitMergeInputChains1_1,
/*308768*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTTPS2QQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308780*/              /*Scope*/ 22, /*->308803*/
/*308781*/                OPC_RecordChild2, // #3 = $src0
/*308782*/                OPC_CheckType, MVT::v2i64,
/*308784*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308786*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308789*/                OPC_EmitMergeInputChains1_1,
/*308790*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VCVTTPS2QQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308803*/              0, /*End of Scope*/
/*308804*/            0, // EndSwitchType
/*308805*/          /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(ISD::LOAD),// ->308949
/*308809*/            OPC_RecordMemRef,
/*308810*/            OPC_RecordNode, // #1 = 'ld' chained node
/*308811*/            OPC_CheckFoldableChainNode,
/*308812*/            OPC_RecordChild1, // #2 = $src
/*308813*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308815*/            OPC_CheckPredicate, 9, // Predicate_load
/*308817*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*308819*/            OPC_SwitchType /*2 cases */, 62, MVT::v2f64,// ->308884
/*308822*/              OPC_MoveParent,
/*308823*/              OPC_MoveParent,
/*308824*/              OPC_Scope, 34, /*->308860*/ // 2 children in Scope
/*308826*/                OPC_MoveChild2,
/*308827*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308830*/                OPC_MoveChild0,
/*308831*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308834*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308836*/                OPC_CheckType, MVT::v4i32,
/*308838*/                OPC_MoveParent,
/*308839*/                OPC_MoveParent,
/*308840*/                OPC_CheckType, MVT::v2i64,
/*308842*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308844*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308847*/                OPC_EmitMergeInputChains1_1,
/*308848*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTTPD2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308860*/              /*Scope*/ 22, /*->308883*/
/*308861*/                OPC_RecordChild2, // #3 = $src0
/*308862*/                OPC_CheckType, MVT::v2i64,
/*308864*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308866*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308869*/                OPC_EmitMergeInputChains1_1,
/*308870*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPD2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308883*/              0, /*End of Scope*/
/*308884*/            /*SwitchType*/ 62, MVT::v4f32,// ->308948
/*308886*/              OPC_MoveParent,
/*308887*/              OPC_MoveParent,
/*308888*/              OPC_Scope, 34, /*->308924*/ // 2 children in Scope
/*308890*/                OPC_MoveChild2,
/*308891*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308894*/                OPC_MoveChild0,
/*308895*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308898*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308900*/                OPC_CheckType, MVT::v4i32,
/*308902*/                OPC_MoveParent,
/*308903*/                OPC_MoveParent,
/*308904*/                OPC_CheckType, MVT::v2i64,
/*308906*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308908*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*308911*/                OPC_EmitMergeInputChains1_1,
/*308912*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTTPS2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308924*/              /*Scope*/ 22, /*->308947*/
/*308925*/                OPC_RecordChild2, // #3 = $src0
/*308926*/                OPC_CheckType, MVT::v2i64,
/*308928*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*308930*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*308933*/                OPC_EmitMergeInputChains1_1,
/*308934*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPS2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*308947*/              0, /*End of Scope*/
/*308948*/            0, // EndSwitchType
/*308949*/          0, // EndSwitchOpcode
/*308950*/        /*SwitchOpcode*/ 43|128,2/*299*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->309253
/*308954*/          OPC_MoveChild0,
/*308955*/          OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->309108
/*308960*/            OPC_MoveChild0,
/*308961*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*308964*/            OPC_RecordMemRef,
/*308965*/            OPC_RecordNode, // #1 = 'ld' chained node
/*308966*/            OPC_CheckFoldableChainNode,
/*308967*/            OPC_RecordChild1, // #2 = $src
/*308968*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308970*/            OPC_CheckPredicate, 9, // Predicate_load
/*308972*/            OPC_SwitchType /*2 cases */, 65, MVT::f64,// ->309040
/*308975*/              OPC_MoveParent,
/*308976*/              OPC_CheckType, MVT::v2f64,
/*308978*/              OPC_MoveParent,
/*308979*/              OPC_MoveParent,
/*308980*/              OPC_Scope, 34, /*->309016*/ // 2 children in Scope
/*308982*/                OPC_MoveChild2,
/*308983*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*308986*/                OPC_MoveChild0,
/*308987*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*308990*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*308992*/                OPC_CheckType, MVT::v4i32,
/*308994*/                OPC_MoveParent,
/*308995*/                OPC_MoveParent,
/*308996*/                OPC_CheckType, MVT::v2i64,
/*308998*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*309000*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*309003*/                OPC_EmitMergeInputChains1_1,
/*309004*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTTPD2UQQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*309016*/              /*Scope*/ 22, /*->309039*/
/*309017*/                OPC_RecordChild2, // #3 = $src0
/*309018*/                OPC_CheckType, MVT::v2i64,
/*309020*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*309022*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*309025*/                OPC_EmitMergeInputChains1_1,
/*309026*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VCVTTPD2UQQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*309039*/              0, /*End of Scope*/
/*309040*/            /*SwitchType*/ 65, MVT::f32,// ->309107
/*309042*/              OPC_MoveParent,
/*309043*/              OPC_CheckType, MVT::v4f32,
/*309045*/              OPC_MoveParent,
/*309046*/              OPC_MoveParent,
/*309047*/              OPC_Scope, 34, /*->309083*/ // 2 children in Scope
/*309049*/                OPC_MoveChild2,
/*309050*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309053*/                OPC_MoveChild0,
/*309054*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309057*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309059*/                OPC_CheckType, MVT::v4i32,
/*309061*/                OPC_MoveParent,
/*309062*/                OPC_MoveParent,
/*309063*/                OPC_CheckType, MVT::v2i64,
/*309065*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*309067*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*309070*/                OPC_EmitMergeInputChains1_1,
/*309071*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTTPS2UQQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*309083*/              /*Scope*/ 22, /*->309106*/
/*309084*/                OPC_RecordChild2, // #3 = $src0
/*309085*/                OPC_CheckType, MVT::v2i64,
/*309087*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*309089*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*309092*/                OPC_EmitMergeInputChains1_1,
/*309093*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VCVTTPS2UQQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*309106*/              0, /*End of Scope*/
/*309107*/            0, // EndSwitchType
/*309108*/          /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(ISD::LOAD),// ->309252
/*309112*/            OPC_RecordMemRef,
/*309113*/            OPC_RecordNode, // #1 = 'ld' chained node
/*309114*/            OPC_CheckFoldableChainNode,
/*309115*/            OPC_RecordChild1, // #2 = $src
/*309116*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309118*/            OPC_CheckPredicate, 9, // Predicate_load
/*309120*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*309122*/            OPC_SwitchType /*2 cases */, 62, MVT::v2f64,// ->309187
/*309125*/              OPC_MoveParent,
/*309126*/              OPC_MoveParent,
/*309127*/              OPC_Scope, 34, /*->309163*/ // 2 children in Scope
/*309129*/                OPC_MoveChild2,
/*309130*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309133*/                OPC_MoveChild0,
/*309134*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309137*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309139*/                OPC_CheckType, MVT::v4i32,
/*309141*/                OPC_MoveParent,
/*309142*/                OPC_MoveParent,
/*309143*/                OPC_CheckType, MVT::v2i64,
/*309145*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*309147*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*309150*/                OPC_EmitMergeInputChains1_1,
/*309151*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTTPD2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*309163*/              /*Scope*/ 22, /*->309186*/
/*309164*/                OPC_RecordChild2, // #3 = $src0
/*309165*/                OPC_CheckType, MVT::v2i64,
/*309167*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*309169*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*309172*/                OPC_EmitMergeInputChains1_1,
/*309173*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPD2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*309186*/              0, /*End of Scope*/
/*309187*/            /*SwitchType*/ 62, MVT::v4f32,// ->309251
/*309189*/              OPC_MoveParent,
/*309190*/              OPC_MoveParent,
/*309191*/              OPC_Scope, 34, /*->309227*/ // 2 children in Scope
/*309193*/                OPC_MoveChild2,
/*309194*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309197*/                OPC_MoveChild0,
/*309198*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309201*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309203*/                OPC_CheckType, MVT::v4i32,
/*309205*/                OPC_MoveParent,
/*309206*/                OPC_MoveParent,
/*309207*/                OPC_CheckType, MVT::v2i64,
/*309209*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*309211*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*309214*/                OPC_EmitMergeInputChains1_1,
/*309215*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTTPS2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*309227*/              /*Scope*/ 22, /*->309250*/
/*309228*/                OPC_RecordChild2, // #3 = $src0
/*309229*/                OPC_CheckType, MVT::v2i64,
/*309231*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*309233*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*309236*/                OPC_EmitMergeInputChains1_1,
/*309237*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPS2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*309250*/              0, /*End of Scope*/
/*309251*/            0, // EndSwitchType
/*309252*/          0, // EndSwitchOpcode
/*309253*/        /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(ISD::ABS),// ->309415
/*309257*/          OPC_MoveChild0,
/*309258*/          OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(X86ISD::VBROADCAST),// ->309339
/*309262*/            OPC_MoveChild0,
/*309263*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*309266*/            OPC_RecordMemRef,
/*309267*/            OPC_RecordNode, // #1 = 'ld' chained node
/*309268*/            OPC_CheckFoldableChainNode,
/*309269*/            OPC_RecordChild1, // #2 = $src1
/*309270*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309272*/            OPC_CheckPredicate, 9, // Predicate_load
/*309274*/            OPC_CheckType, MVT::i64,
/*309276*/            OPC_MoveParent,
/*309277*/            OPC_MoveParent,
/*309278*/            OPC_MoveParent,
/*309279*/            OPC_Scope, 34, /*->309315*/ // 2 children in Scope
/*309281*/              OPC_MoveChild2,
/*309282*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309285*/              OPC_MoveChild0,
/*309286*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309289*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309291*/              OPC_CheckType, MVT::v4i32,
/*309293*/              OPC_MoveParent,
/*309294*/              OPC_MoveParent,
/*309295*/              OPC_CheckType, MVT::v2i64,
/*309297*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309299*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*309302*/              OPC_EmitMergeInputChains1_1,
/*309303*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (abs:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPABSQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309315*/            /*Scope*/ 22, /*->309338*/
/*309316*/              OPC_RecordChild2, // #3 = $src0
/*309317*/              OPC_CheckType, MVT::v2i64,
/*309319*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309321*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*309324*/              OPC_EmitMergeInputChains1_1,
/*309325*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (abs:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPABSQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309338*/            0, /*End of Scope*/
/*309339*/          /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->309414
/*309342*/            OPC_RecordMemRef,
/*309343*/            OPC_RecordNode, // #1 = 'ld' chained node
/*309344*/            OPC_CheckFoldableChainNode,
/*309345*/            OPC_RecordChild1, // #2 = $src1
/*309346*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309348*/            OPC_CheckPredicate, 9, // Predicate_load
/*309350*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*309352*/            OPC_MoveParent,
/*309353*/            OPC_MoveParent,
/*309354*/            OPC_Scope, 34, /*->309390*/ // 2 children in Scope
/*309356*/              OPC_MoveChild2,
/*309357*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309360*/              OPC_MoveChild0,
/*309361*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309364*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309366*/              OPC_CheckType, MVT::v4i32,
/*309368*/              OPC_MoveParent,
/*309369*/              OPC_MoveParent,
/*309370*/              OPC_CheckType, MVT::v2i64,
/*309372*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309374*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*309377*/              OPC_EmitMergeInputChains1_1,
/*309378*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (abs:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPABSQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309390*/            /*Scope*/ 22, /*->309413*/
/*309391*/              OPC_RecordChild2, // #3 = $src0
/*309392*/              OPC_CheckType, MVT::v2i64,
/*309394*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309396*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*309399*/              OPC_EmitMergeInputChains1_1,
/*309400*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (abs:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPABSQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309413*/            0, /*End of Scope*/
/*309414*/          0, // EndSwitchOpcode
/*309415*/        /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(ISD::CTLZ),// ->309577
/*309419*/          OPC_MoveChild0,
/*309420*/          OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(X86ISD::VBROADCAST),// ->309501
/*309424*/            OPC_MoveChild0,
/*309425*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*309428*/            OPC_RecordMemRef,
/*309429*/            OPC_RecordNode, // #1 = 'ld' chained node
/*309430*/            OPC_CheckFoldableChainNode,
/*309431*/            OPC_RecordChild1, // #2 = $src1
/*309432*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309434*/            OPC_CheckPredicate, 9, // Predicate_load
/*309436*/            OPC_CheckType, MVT::i64,
/*309438*/            OPC_MoveParent,
/*309439*/            OPC_MoveParent,
/*309440*/            OPC_MoveParent,
/*309441*/            OPC_Scope, 34, /*->309477*/ // 2 children in Scope
/*309443*/              OPC_MoveChild2,
/*309444*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309447*/              OPC_MoveChild0,
/*309448*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309451*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309453*/              OPC_CheckType, MVT::v4i32,
/*309455*/              OPC_MoveParent,
/*309456*/              OPC_MoveParent,
/*309457*/              OPC_CheckType, MVT::v2i64,
/*309459*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*309461*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*309464*/              OPC_EmitMergeInputChains1_1,
/*309465*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctlz:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPLZCNTQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309477*/            /*Scope*/ 22, /*->309500*/
/*309478*/              OPC_RecordChild2, // #3 = $src0
/*309479*/              OPC_CheckType, MVT::v2i64,
/*309481*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*309483*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*309486*/              OPC_EmitMergeInputChains1_1,
/*309487*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctlz:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPLZCNTQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309500*/            0, /*End of Scope*/
/*309501*/          /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->309576
/*309504*/            OPC_RecordMemRef,
/*309505*/            OPC_RecordNode, // #1 = 'ld' chained node
/*309506*/            OPC_CheckFoldableChainNode,
/*309507*/            OPC_RecordChild1, // #2 = $src1
/*309508*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309510*/            OPC_CheckPredicate, 9, // Predicate_load
/*309512*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*309514*/            OPC_MoveParent,
/*309515*/            OPC_MoveParent,
/*309516*/            OPC_Scope, 34, /*->309552*/ // 2 children in Scope
/*309518*/              OPC_MoveChild2,
/*309519*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309522*/              OPC_MoveChild0,
/*309523*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309526*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309528*/              OPC_CheckType, MVT::v4i32,
/*309530*/              OPC_MoveParent,
/*309531*/              OPC_MoveParent,
/*309532*/              OPC_CheckType, MVT::v2i64,
/*309534*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*309536*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*309539*/              OPC_EmitMergeInputChains1_1,
/*309540*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctlz:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPLZCNTQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309552*/            /*Scope*/ 22, /*->309575*/
/*309553*/              OPC_RecordChild2, // #3 = $src0
/*309554*/              OPC_CheckType, MVT::v2i64,
/*309556*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*309558*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*309561*/              OPC_EmitMergeInputChains1_1,
/*309562*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctlz:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPLZCNTQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309575*/            0, /*End of Scope*/
/*309576*/          0, // EndSwitchOpcode
/*309577*/        /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(X86ISD::CONFLICT),// ->309739
/*309581*/          OPC_MoveChild0,
/*309582*/          OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(X86ISD::VBROADCAST),// ->309663
/*309586*/            OPC_MoveChild0,
/*309587*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*309590*/            OPC_RecordMemRef,
/*309591*/            OPC_RecordNode, // #1 = 'ld' chained node
/*309592*/            OPC_CheckFoldableChainNode,
/*309593*/            OPC_RecordChild1, // #2 = $src1
/*309594*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309596*/            OPC_CheckPredicate, 9, // Predicate_load
/*309598*/            OPC_CheckType, MVT::i64,
/*309600*/            OPC_MoveParent,
/*309601*/            OPC_MoveParent,
/*309602*/            OPC_MoveParent,
/*309603*/            OPC_Scope, 34, /*->309639*/ // 2 children in Scope
/*309605*/              OPC_MoveChild2,
/*309606*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309609*/              OPC_MoveChild0,
/*309610*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309613*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309615*/              OPC_CheckType, MVT::v4i32,
/*309617*/              OPC_MoveParent,
/*309618*/              OPC_MoveParent,
/*309619*/              OPC_CheckType, MVT::v2i64,
/*309621*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*309623*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*309626*/              OPC_EmitMergeInputChains1_1,
/*309627*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Conflict:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPCONFLICTQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309639*/            /*Scope*/ 22, /*->309662*/
/*309640*/              OPC_RecordChild2, // #3 = $src0
/*309641*/              OPC_CheckType, MVT::v2i64,
/*309643*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*309645*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*309648*/              OPC_EmitMergeInputChains1_1,
/*309649*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Conflict:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPCONFLICTQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309662*/            0, /*End of Scope*/
/*309663*/          /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->309738
/*309666*/            OPC_RecordMemRef,
/*309667*/            OPC_RecordNode, // #1 = 'ld' chained node
/*309668*/            OPC_CheckFoldableChainNode,
/*309669*/            OPC_RecordChild1, // #2 = $src1
/*309670*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309672*/            OPC_CheckPredicate, 9, // Predicate_load
/*309674*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*309676*/            OPC_MoveParent,
/*309677*/            OPC_MoveParent,
/*309678*/            OPC_Scope, 34, /*->309714*/ // 2 children in Scope
/*309680*/              OPC_MoveChild2,
/*309681*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309684*/              OPC_MoveChild0,
/*309685*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309688*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309690*/              OPC_CheckType, MVT::v4i32,
/*309692*/              OPC_MoveParent,
/*309693*/              OPC_MoveParent,
/*309694*/              OPC_CheckType, MVT::v2i64,
/*309696*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*309698*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*309701*/              OPC_EmitMergeInputChains1_1,
/*309702*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Conflict:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPCONFLICTQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309714*/            /*Scope*/ 22, /*->309737*/
/*309715*/              OPC_RecordChild2, // #3 = $src0
/*309716*/              OPC_CheckType, MVT::v2i64,
/*309718*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*309720*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*309723*/              OPC_EmitMergeInputChains1_1,
/*309724*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Conflict:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPCONFLICTQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309737*/            0, /*End of Scope*/
/*309738*/          0, // EndSwitchOpcode
/*309739*/        /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(ISD::CTPOP),// ->309901
/*309743*/          OPC_MoveChild0,
/*309744*/          OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(X86ISD::VBROADCAST),// ->309825
/*309748*/            OPC_MoveChild0,
/*309749*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*309752*/            OPC_RecordMemRef,
/*309753*/            OPC_RecordNode, // #1 = 'ld' chained node
/*309754*/            OPC_CheckFoldableChainNode,
/*309755*/            OPC_RecordChild1, // #2 = $src1
/*309756*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309758*/            OPC_CheckPredicate, 9, // Predicate_load
/*309760*/            OPC_CheckType, MVT::i64,
/*309762*/            OPC_MoveParent,
/*309763*/            OPC_MoveParent,
/*309764*/            OPC_MoveParent,
/*309765*/            OPC_Scope, 34, /*->309801*/ // 2 children in Scope
/*309767*/              OPC_MoveChild2,
/*309768*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309771*/              OPC_MoveChild0,
/*309772*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309775*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309777*/              OPC_CheckType, MVT::v4i32,
/*309779*/              OPC_MoveParent,
/*309780*/              OPC_MoveParent,
/*309781*/              OPC_CheckType, MVT::v2i64,
/*309783*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*309785*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*309788*/              OPC_EmitMergeInputChains1_1,
/*309789*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctpop:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPOPCNTQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309801*/            /*Scope*/ 22, /*->309824*/
/*309802*/              OPC_RecordChild2, // #3 = $src0
/*309803*/              OPC_CheckType, MVT::v2i64,
/*309805*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*309807*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*309810*/              OPC_EmitMergeInputChains1_1,
/*309811*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctpop:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPOPCNTQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309824*/            0, /*End of Scope*/
/*309825*/          /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->309900
/*309828*/            OPC_RecordMemRef,
/*309829*/            OPC_RecordNode, // #1 = 'ld' chained node
/*309830*/            OPC_CheckFoldableChainNode,
/*309831*/            OPC_RecordChild1, // #2 = $src1
/*309832*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309834*/            OPC_CheckPredicate, 9, // Predicate_load
/*309836*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*309838*/            OPC_MoveParent,
/*309839*/            OPC_MoveParent,
/*309840*/            OPC_Scope, 34, /*->309876*/ // 2 children in Scope
/*309842*/              OPC_MoveChild2,
/*309843*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309846*/              OPC_MoveChild0,
/*309847*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309850*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309852*/              OPC_CheckType, MVT::v4i32,
/*309854*/              OPC_MoveParent,
/*309855*/              OPC_MoveParent,
/*309856*/              OPC_CheckType, MVT::v2i64,
/*309858*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*309860*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*309863*/              OPC_EmitMergeInputChains1_1,
/*309864*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctpop:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPOPCNTQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309876*/            /*Scope*/ 22, /*->309899*/
/*309877*/              OPC_RecordChild2, // #3 = $src0
/*309878*/              OPC_CheckType, MVT::v2i64,
/*309880*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*309882*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*309885*/              OPC_EmitMergeInputChains1_1,
/*309886*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctpop:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPOPCNTQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*309899*/            0, /*End of Scope*/
/*309900*/          0, // EndSwitchOpcode
/*309901*/        /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::UNPCKL),// ->310068
/*309905*/          OPC_RecordChild0, // #1 = $src1
/*309906*/          OPC_MoveChild1,
/*309907*/          OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->309990
/*309911*/            OPC_MoveChild0,
/*309912*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*309915*/            OPC_RecordMemRef,
/*309916*/            OPC_RecordNode, // #2 = 'ld' chained node
/*309917*/            OPC_CheckFoldableChainNode,
/*309918*/            OPC_RecordChild1, // #3 = $src2
/*309919*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309921*/            OPC_CheckPredicate, 9, // Predicate_load
/*309923*/            OPC_CheckType, MVT::i64,
/*309925*/            OPC_MoveParent,
/*309926*/            OPC_MoveParent,
/*309927*/            OPC_MoveParent,
/*309928*/            OPC_Scope, 35, /*->309965*/ // 2 children in Scope
/*309930*/              OPC_MoveChild2,
/*309931*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*309934*/              OPC_MoveChild0,
/*309935*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*309938*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*309940*/              OPC_CheckType, MVT::v4i32,
/*309942*/              OPC_MoveParent,
/*309943*/              OPC_MoveParent,
/*309944*/              OPC_CheckType, MVT::v2i64,
/*309946*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309948*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*309951*/              OPC_EmitMergeInputChains1_2,
/*309952*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPUNPCKLQDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*309965*/            /*Scope*/ 23, /*->309989*/
/*309966*/              OPC_RecordChild2, // #4 = $src0
/*309967*/              OPC_CheckType, MVT::v2i64,
/*309969*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309971*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*309974*/              OPC_EmitMergeInputChains1_2,
/*309975*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPUNPCKLQDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*309989*/            0, /*End of Scope*/
/*309990*/          /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->310067
/*309993*/            OPC_RecordMemRef,
/*309994*/            OPC_RecordNode, // #2 = 'ld' chained node
/*309995*/            OPC_CheckFoldableChainNode,
/*309996*/            OPC_RecordChild1, // #3 = $src2
/*309997*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309999*/            OPC_CheckPredicate, 9, // Predicate_load
/*310001*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*310003*/            OPC_MoveParent,
/*310004*/            OPC_MoveParent,
/*310005*/            OPC_Scope, 35, /*->310042*/ // 2 children in Scope
/*310007*/              OPC_MoveChild2,
/*310008*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310011*/              OPC_MoveChild0,
/*310012*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310015*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310017*/              OPC_CheckType, MVT::v4i32,
/*310019*/              OPC_MoveParent,
/*310020*/              OPC_MoveParent,
/*310021*/              OPC_CheckType, MVT::v2i64,
/*310023*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310025*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*310028*/              OPC_EmitMergeInputChains1_2,
/*310029*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPUNPCKLQDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310042*/            /*Scope*/ 23, /*->310066*/
/*310043*/              OPC_RecordChild2, // #4 = $src0
/*310044*/              OPC_CheckType, MVT::v2i64,
/*310046*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310048*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*310051*/              OPC_EmitMergeInputChains1_2,
/*310052*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKLQDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310066*/            0, /*End of Scope*/
/*310067*/          0, // EndSwitchOpcode
/*310068*/        /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::UNPCKH),// ->310235
/*310072*/          OPC_RecordChild0, // #1 = $src1
/*310073*/          OPC_MoveChild1,
/*310074*/          OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->310157
/*310078*/            OPC_MoveChild0,
/*310079*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*310082*/            OPC_RecordMemRef,
/*310083*/            OPC_RecordNode, // #2 = 'ld' chained node
/*310084*/            OPC_CheckFoldableChainNode,
/*310085*/            OPC_RecordChild1, // #3 = $src2
/*310086*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310088*/            OPC_CheckPredicate, 9, // Predicate_load
/*310090*/            OPC_CheckType, MVT::i64,
/*310092*/            OPC_MoveParent,
/*310093*/            OPC_MoveParent,
/*310094*/            OPC_MoveParent,
/*310095*/            OPC_Scope, 35, /*->310132*/ // 2 children in Scope
/*310097*/              OPC_MoveChild2,
/*310098*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310101*/              OPC_MoveChild0,
/*310102*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310105*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310107*/              OPC_CheckType, MVT::v4i32,
/*310109*/              OPC_MoveParent,
/*310110*/              OPC_MoveParent,
/*310111*/              OPC_CheckType, MVT::v2i64,
/*310113*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310115*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*310118*/              OPC_EmitMergeInputChains1_2,
/*310119*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPUNPCKHQDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310132*/            /*Scope*/ 23, /*->310156*/
/*310133*/              OPC_RecordChild2, // #4 = $src0
/*310134*/              OPC_CheckType, MVT::v2i64,
/*310136*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310138*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*310141*/              OPC_EmitMergeInputChains1_2,
/*310142*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                        // Dst: (VPUNPCKHQDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310156*/            0, /*End of Scope*/
/*310157*/          /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->310234
/*310160*/            OPC_RecordMemRef,
/*310161*/            OPC_RecordNode, // #2 = 'ld' chained node
/*310162*/            OPC_CheckFoldableChainNode,
/*310163*/            OPC_RecordChild1, // #3 = $src2
/*310164*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310166*/            OPC_CheckPredicate, 9, // Predicate_load
/*310168*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*310170*/            OPC_MoveParent,
/*310171*/            OPC_MoveParent,
/*310172*/            OPC_Scope, 35, /*->310209*/ // 2 children in Scope
/*310174*/              OPC_MoveChild2,
/*310175*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310178*/              OPC_MoveChild0,
/*310179*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310182*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310184*/              OPC_CheckType, MVT::v4i32,
/*310186*/              OPC_MoveParent,
/*310187*/              OPC_MoveParent,
/*310188*/              OPC_CheckType, MVT::v2i64,
/*310190*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310192*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*310195*/              OPC_EmitMergeInputChains1_2,
/*310196*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPUNPCKHQDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310209*/            /*Scope*/ 23, /*->310233*/
/*310210*/              OPC_RecordChild2, // #4 = $src0
/*310211*/              OPC_CheckType, MVT::v2i64,
/*310213*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310215*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*310218*/              OPC_EmitMergeInputChains1_2,
/*310219*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKHQDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310233*/            0, /*End of Scope*/
/*310234*/          0, // EndSwitchOpcode
/*310235*/        /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::VSHLDV),// ->310415
/*310239*/          OPC_RecordChild0, // #1 = $src1
/*310240*/          OPC_RecordChild1, // #2 = $src2
/*310241*/          OPC_MoveChild2,
/*310242*/          OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(X86ISD::VBROADCAST),// ->310331
/*310246*/            OPC_MoveChild0,
/*310247*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*310250*/            OPC_RecordMemRef,
/*310251*/            OPC_RecordNode, // #3 = 'ld' chained node
/*310252*/            OPC_CheckFoldableChainNode,
/*310253*/            OPC_RecordChild1, // #4 = $src3
/*310254*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310256*/            OPC_CheckPredicate, 9, // Predicate_load
/*310258*/            OPC_CheckType, MVT::i64,
/*310260*/            OPC_MoveParent,
/*310261*/            OPC_MoveParent,
/*310262*/            OPC_MoveParent,
/*310263*/            OPC_Scope, 38, /*->310303*/ // 2 children in Scope
/*310265*/              OPC_MoveChild2,
/*310266*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310269*/              OPC_MoveChild0,
/*310270*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310273*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310275*/              OPC_CheckType, MVT::v4i32,
/*310277*/              OPC_MoveParent,
/*310278*/              OPC_MoveParent,
/*310279*/              OPC_CheckType, MVT::v2i64,
/*310281*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*310283*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310286*/              OPC_EmitMergeInputChains, 1, 3, 
/*310289*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShldv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSHLDVQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310303*/            /*Scope*/ 26, /*->310330*/
/*310304*/              OPC_CheckChild2Same, 1,
/*310306*/              OPC_CheckType, MVT::v2i64,
/*310308*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*310310*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310313*/              OPC_EmitMergeInputChains, 1, 3, 
/*310316*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShldv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPSHLDVQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310330*/            0, /*End of Scope*/
/*310331*/          /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->310414
/*310334*/            OPC_RecordMemRef,
/*310335*/            OPC_RecordNode, // #3 = 'ld' chained node
/*310336*/            OPC_CheckFoldableChainNode,
/*310337*/            OPC_RecordChild1, // #4 = $src3
/*310338*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310340*/            OPC_CheckPredicate, 9, // Predicate_load
/*310342*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*310344*/            OPC_MoveParent,
/*310345*/            OPC_MoveParent,
/*310346*/            OPC_Scope, 38, /*->310386*/ // 2 children in Scope
/*310348*/              OPC_MoveChild2,
/*310349*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310352*/              OPC_MoveChild0,
/*310353*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310356*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310358*/              OPC_CheckType, MVT::v4i32,
/*310360*/              OPC_MoveParent,
/*310361*/              OPC_MoveParent,
/*310362*/              OPC_CheckType, MVT::v2i64,
/*310364*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*310366*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310369*/              OPC_EmitMergeInputChains, 1, 3, 
/*310372*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShldv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSHLDVQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310386*/            /*Scope*/ 26, /*->310413*/
/*310387*/              OPC_CheckChild2Same, 1,
/*310389*/              OPC_CheckType, MVT::v2i64,
/*310391*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*310393*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310396*/              OPC_EmitMergeInputChains, 1, 3, 
/*310399*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShldv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                        // Dst: (VPSHLDVQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310413*/            0, /*End of Scope*/
/*310414*/          0, // EndSwitchOpcode
/*310415*/        /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::VSHRDV),// ->310595
/*310419*/          OPC_RecordChild0, // #1 = $src1
/*310420*/          OPC_RecordChild1, // #2 = $src2
/*310421*/          OPC_MoveChild2,
/*310422*/          OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(X86ISD::VBROADCAST),// ->310511
/*310426*/            OPC_MoveChild0,
/*310427*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*310430*/            OPC_RecordMemRef,
/*310431*/            OPC_RecordNode, // #3 = 'ld' chained node
/*310432*/            OPC_CheckFoldableChainNode,
/*310433*/            OPC_RecordChild1, // #4 = $src3
/*310434*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310436*/            OPC_CheckPredicate, 9, // Predicate_load
/*310438*/            OPC_CheckType, MVT::i64,
/*310440*/            OPC_MoveParent,
/*310441*/            OPC_MoveParent,
/*310442*/            OPC_MoveParent,
/*310443*/            OPC_Scope, 38, /*->310483*/ // 2 children in Scope
/*310445*/              OPC_MoveChild2,
/*310446*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310449*/              OPC_MoveChild0,
/*310450*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310453*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310455*/              OPC_CheckType, MVT::v4i32,
/*310457*/              OPC_MoveParent,
/*310458*/              OPC_MoveParent,
/*310459*/              OPC_CheckType, MVT::v2i64,
/*310461*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*310463*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310466*/              OPC_EmitMergeInputChains, 1, 3, 
/*310469*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrdv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPSHRDVQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310483*/            /*Scope*/ 26, /*->310510*/
/*310484*/              OPC_CheckChild2Same, 1,
/*310486*/              OPC_CheckType, MVT::v2i64,
/*310488*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*310490*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310493*/              OPC_EmitMergeInputChains, 1, 3, 
/*310496*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrdv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPSHRDVQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310510*/            0, /*End of Scope*/
/*310511*/          /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->310594
/*310514*/            OPC_RecordMemRef,
/*310515*/            OPC_RecordNode, // #3 = 'ld' chained node
/*310516*/            OPC_CheckFoldableChainNode,
/*310517*/            OPC_RecordChild1, // #4 = $src3
/*310518*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310520*/            OPC_CheckPredicate, 9, // Predicate_load
/*310522*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*310524*/            OPC_MoveParent,
/*310525*/            OPC_MoveParent,
/*310526*/            OPC_Scope, 38, /*->310566*/ // 2 children in Scope
/*310528*/              OPC_MoveChild2,
/*310529*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310532*/              OPC_MoveChild0,
/*310533*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310536*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310538*/              OPC_CheckType, MVT::v4i32,
/*310540*/              OPC_MoveParent,
/*310541*/              OPC_MoveParent,
/*310542*/              OPC_CheckType, MVT::v2i64,
/*310544*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*310546*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310549*/              OPC_EmitMergeInputChains, 1, 3, 
/*310552*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrdv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPSHRDVQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310566*/            /*Scope*/ 26, /*->310593*/
/*310567*/              OPC_CheckChild2Same, 1,
/*310569*/              OPC_CheckType, MVT::v2i64,
/*310571*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*310573*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310576*/              OPC_EmitMergeInputChains, 1, 3, 
/*310579*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrdv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                        // Dst: (VPSHRDVQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310593*/            0, /*End of Scope*/
/*310594*/          0, // EndSwitchOpcode
/*310595*/        /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VSHL),// ->310679
/*310598*/          OPC_RecordChild0, // #1 = $src1
/*310599*/          OPC_MoveChild1,
/*310600*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*310603*/          OPC_RecordMemRef,
/*310604*/          OPC_RecordNode, // #2 = 'ld' chained node
/*310605*/          OPC_CheckFoldableChainNode,
/*310606*/          OPC_RecordChild1, // #3 = $src2
/*310607*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310609*/          OPC_CheckPredicate, 9, // Predicate_load
/*310611*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*310613*/          OPC_CheckType, MVT::v2i64,
/*310615*/          OPC_MoveParent,
/*310616*/          OPC_MoveParent,
/*310617*/          OPC_Scope, 35, /*->310654*/ // 2 children in Scope
/*310619*/            OPC_MoveChild2,
/*310620*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310623*/            OPC_MoveChild0,
/*310624*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310627*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310629*/            OPC_CheckType, MVT::v4i32,
/*310631*/            OPC_MoveParent,
/*310632*/            OPC_MoveParent,
/*310633*/            OPC_CheckType, MVT::v2i64,
/*310635*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310637*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*310640*/            OPC_EmitMergeInputChains1_2,
/*310641*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPSLLQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310654*/          /*Scope*/ 23, /*->310678*/
/*310655*/            OPC_RecordChild2, // #4 = $src0
/*310656*/            OPC_CheckType, MVT::v2i64,
/*310658*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310660*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*310663*/            OPC_EmitMergeInputChains1_2,
/*310664*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPSLLQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310678*/          0, /*End of Scope*/
/*310679*/        /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VSRA),// ->310763
/*310682*/          OPC_RecordChild0, // #1 = $src1
/*310683*/          OPC_MoveChild1,
/*310684*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*310687*/          OPC_RecordMemRef,
/*310688*/          OPC_RecordNode, // #2 = 'ld' chained node
/*310689*/          OPC_CheckFoldableChainNode,
/*310690*/          OPC_RecordChild1, // #3 = $src2
/*310691*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310693*/          OPC_CheckPredicate, 9, // Predicate_load
/*310695*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*310697*/          OPC_CheckType, MVT::v2i64,
/*310699*/          OPC_MoveParent,
/*310700*/          OPC_MoveParent,
/*310701*/          OPC_Scope, 35, /*->310738*/ // 2 children in Scope
/*310703*/            OPC_MoveChild2,
/*310704*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310707*/            OPC_MoveChild0,
/*310708*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310711*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310713*/            OPC_CheckType, MVT::v4i32,
/*310715*/            OPC_MoveParent,
/*310716*/            OPC_MoveParent,
/*310717*/            OPC_CheckType, MVT::v2i64,
/*310719*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310721*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*310724*/            OPC_EmitMergeInputChains1_2,
/*310725*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPSRAQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310738*/          /*Scope*/ 23, /*->310762*/
/*310739*/            OPC_RecordChild2, // #4 = $src0
/*310740*/            OPC_CheckType, MVT::v2i64,
/*310742*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310744*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*310747*/            OPC_EmitMergeInputChains1_2,
/*310748*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPSRAQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310762*/          0, /*End of Scope*/
/*310763*/        /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VSRL),// ->310847
/*310766*/          OPC_RecordChild0, // #1 = $src1
/*310767*/          OPC_MoveChild1,
/*310768*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*310771*/          OPC_RecordMemRef,
/*310772*/          OPC_RecordNode, // #2 = 'ld' chained node
/*310773*/          OPC_CheckFoldableChainNode,
/*310774*/          OPC_RecordChild1, // #3 = $src2
/*310775*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310777*/          OPC_CheckPredicate, 9, // Predicate_load
/*310779*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*310781*/          OPC_CheckType, MVT::v2i64,
/*310783*/          OPC_MoveParent,
/*310784*/          OPC_MoveParent,
/*310785*/          OPC_Scope, 35, /*->310822*/ // 2 children in Scope
/*310787*/            OPC_MoveChild2,
/*310788*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310791*/            OPC_MoveChild0,
/*310792*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310795*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310797*/            OPC_CheckType, MVT::v4i32,
/*310799*/            OPC_MoveParent,
/*310800*/            OPC_MoveParent,
/*310801*/            OPC_CheckType, MVT::v2i64,
/*310803*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310805*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*310808*/            OPC_EmitMergeInputChains1_2,
/*310809*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPSRLQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310822*/          /*Scope*/ 23, /*->310846*/
/*310823*/            OPC_RecordChild2, // #4 = $src0
/*310824*/            OPC_CheckType, MVT::v2i64,
/*310826*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310828*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*310831*/            OPC_EmitMergeInputChains1_2,
/*310832*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPSRLQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*310846*/          0, /*End of Scope*/
/*310847*/        /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::EXPAND),// ->310926
/*310850*/          OPC_MoveChild0,
/*310851*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*310854*/          OPC_RecordMemRef,
/*310855*/          OPC_RecordNode, // #1 = 'ld' chained node
/*310856*/          OPC_CheckFoldableChainNode,
/*310857*/          OPC_RecordChild1, // #2 = $src1
/*310858*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310860*/          OPC_CheckPredicate, 9, // Predicate_load
/*310862*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*310864*/          OPC_MoveParent,
/*310865*/          OPC_MoveParent,
/*310866*/          OPC_Scope, 34, /*->310902*/ // 2 children in Scope
/*310868*/            OPC_MoveChild2,
/*310869*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310872*/            OPC_MoveChild0,
/*310873*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310876*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310878*/            OPC_CheckType, MVT::v4i32,
/*310880*/            OPC_MoveParent,
/*310881*/            OPC_MoveParent,
/*310882*/            OPC_CheckType, MVT::v2i64,
/*310884*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310886*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*310889*/            OPC_EmitMergeInputChains1_1,
/*310890*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86expand:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VPEXPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*310902*/          /*Scope*/ 22, /*->310925*/
/*310903*/            OPC_RecordChild2, // #3 = $src0
/*310904*/            OPC_CheckType, MVT::v2i64,
/*310906*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310908*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*310911*/            OPC_EmitMergeInputChains1_1,
/*310912*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86expand:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                      // Dst: (VPEXPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*310925*/          0, /*End of Scope*/
/*310926*/        /*SwitchOpcode*/ 38|128,4/*550*/, TARGET_VAL(ISD::LOAD),// ->311480
/*310930*/          OPC_RecordMemRef,
/*310931*/          OPC_RecordNode, // #1 = 'ld' chained node
/*310932*/          OPC_CheckFoldableChainNode,
/*310933*/          OPC_RecordChild1, // #2 = $src
/*310934*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310936*/          OPC_Scope, 80, /*->311018*/ // 6 children in Scope
/*310938*/            OPC_CheckPredicate, 9, // Predicate_load
/*310940*/            OPC_Scope, 37, /*->310979*/ // 2 children in Scope
/*310942*/              OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*310944*/              OPC_MoveParent,
/*310945*/              OPC_MoveChild2,
/*310946*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310949*/              OPC_MoveChild0,
/*310950*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310953*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310955*/              OPC_CheckType, MVT::v4i32,
/*310957*/              OPC_MoveParent,
/*310958*/              OPC_MoveParent,
/*310959*/              OPC_CheckType, MVT::v2i64,
/*310961*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310963*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*310966*/              OPC_EmitMergeInputChains1_1,
/*310967*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VMOVDQA64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*310979*/            /*Scope*/ 37, /*->311017*/
/*310980*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*310982*/              OPC_MoveParent,
/*310983*/              OPC_MoveChild2,
/*310984*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*310987*/              OPC_MoveChild0,
/*310988*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*310991*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*310993*/              OPC_CheckType, MVT::v4i32,
/*310995*/              OPC_MoveParent,
/*310996*/              OPC_MoveParent,
/*310997*/              OPC_CheckType, MVT::v2i64,
/*310999*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311001*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*311004*/              OPC_EmitMergeInputChains1_1,
/*311005*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VMOVDQU64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311017*/            0, /*End of Scope*/
/*311018*/          /*Scope*/ 118, /*->311137*/
/*311019*/            OPC_CheckPredicate, 53, // Predicate_zextload
/*311021*/            OPC_Scope, 37, /*->311060*/ // 3 children in Scope
/*311023*/              OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*311025*/              OPC_MoveParent,
/*311026*/              OPC_MoveChild2,
/*311027*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311030*/              OPC_MoveChild0,
/*311031*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311034*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311036*/              OPC_CheckType, MVT::v4i32,
/*311038*/              OPC_MoveParent,
/*311039*/              OPC_MoveParent,
/*311040*/              OPC_CheckType, MVT::v2i64,
/*311042*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311044*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*311047*/              OPC_EmitMergeInputChains1_1,
/*311048*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VPMOVZXBQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311060*/            /*Scope*/ 37, /*->311098*/
/*311061*/              OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*311063*/              OPC_MoveParent,
/*311064*/              OPC_MoveChild2,
/*311065*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311068*/              OPC_MoveChild0,
/*311069*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311072*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311074*/              OPC_CheckType, MVT::v4i32,
/*311076*/              OPC_MoveParent,
/*311077*/              OPC_MoveParent,
/*311078*/              OPC_CheckType, MVT::v2i64,
/*311080*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311082*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*311085*/              OPC_EmitMergeInputChains1_1,
/*311086*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VPMOVZXWQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311098*/            /*Scope*/ 37, /*->311136*/
/*311099*/              OPC_CheckPredicate, 72, // Predicate_zextloadvi32
/*311101*/              OPC_MoveParent,
/*311102*/              OPC_MoveChild2,
/*311103*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311106*/              OPC_MoveChild0,
/*311107*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311110*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311112*/              OPC_CheckType, MVT::v4i32,
/*311114*/              OPC_MoveParent,
/*311115*/              OPC_MoveParent,
/*311116*/              OPC_CheckType, MVT::v2i64,
/*311118*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311120*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*311123*/              OPC_EmitMergeInputChains1_1,
/*311124*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>>, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VPMOVZXDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311136*/            0, /*End of Scope*/
/*311137*/          /*Scope*/ 118, /*->311256*/
/*311138*/            OPC_CheckPredicate, 60, // Predicate_sextload
/*311140*/            OPC_Scope, 37, /*->311179*/ // 3 children in Scope
/*311142*/              OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*311144*/              OPC_MoveParent,
/*311145*/              OPC_MoveChild2,
/*311146*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311149*/              OPC_MoveChild0,
/*311150*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311153*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311155*/              OPC_CheckType, MVT::v4i32,
/*311157*/              OPC_MoveParent,
/*311158*/              OPC_MoveParent,
/*311159*/              OPC_CheckType, MVT::v2i64,
/*311161*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311163*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*311166*/              OPC_EmitMergeInputChains1_1,
/*311167*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VPMOVSXBQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311179*/            /*Scope*/ 37, /*->311217*/
/*311180*/              OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*311182*/              OPC_MoveParent,
/*311183*/              OPC_MoveChild2,
/*311184*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311187*/              OPC_MoveChild0,
/*311188*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311191*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311193*/              OPC_CheckType, MVT::v4i32,
/*311195*/              OPC_MoveParent,
/*311196*/              OPC_MoveParent,
/*311197*/              OPC_CheckType, MVT::v2i64,
/*311199*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311201*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*311204*/              OPC_EmitMergeInputChains1_1,
/*311205*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VPMOVSXWQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311217*/            /*Scope*/ 37, /*->311255*/
/*311218*/              OPC_CheckPredicate, 72, // Predicate_sextloadvi32
/*311220*/              OPC_MoveParent,
/*311221*/              OPC_MoveChild2,
/*311222*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311225*/              OPC_MoveChild0,
/*311226*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311229*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311231*/              OPC_CheckType, MVT::v4i32,
/*311233*/              OPC_MoveParent,
/*311234*/              OPC_MoveParent,
/*311235*/              OPC_CheckType, MVT::v2i64,
/*311237*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311239*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*311242*/              OPC_EmitMergeInputChains1_1,
/*311243*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>>, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VPMOVSXDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311255*/            0, /*End of Scope*/
/*311256*/          /*Scope*/ 56, /*->311313*/
/*311257*/            OPC_CheckPredicate, 9, // Predicate_load
/*311259*/            OPC_Scope, 25, /*->311286*/ // 2 children in Scope
/*311261*/              OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*311263*/              OPC_MoveParent,
/*311264*/              OPC_RecordChild2, // #3 = $src0
/*311265*/              OPC_CheckType, MVT::v2i64,
/*311267*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311269*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*311272*/              OPC_EmitMergeInputChains1_1,
/*311273*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, VR128X:{ *:[v2i64] }:$src0) - Complexity = 25
                        // Dst: (VMOVDQA64Z128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*311286*/            /*Scope*/ 25, /*->311312*/
/*311287*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*311289*/              OPC_MoveParent,
/*311290*/              OPC_RecordChild2, // #3 = $src0
/*311291*/              OPC_CheckType, MVT::v2i64,
/*311293*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311295*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*311298*/              OPC_EmitMergeInputChains1_1,
/*311299*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src0) - Complexity = 25
                        // Dst: (VMOVDQU64Z128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*311312*/            0, /*End of Scope*/
/*311313*/          /*Scope*/ 82, /*->311396*/
/*311314*/            OPC_CheckPredicate, 53, // Predicate_zextload
/*311316*/            OPC_Scope, 25, /*->311343*/ // 3 children in Scope
/*311318*/              OPC_CheckPredicate, 70, // Predicate_zextloadvi8
/*311320*/              OPC_MoveParent,
/*311321*/              OPC_RecordChild2, // #3 = $src0
/*311322*/              OPC_CheckType, MVT::v2i64,
/*311324*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311326*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311329*/              OPC_EmitMergeInputChains1_1,
/*311330*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>>, VR128X:{ *:[v2i64] }:$src0) - Complexity = 25
                        // Dst: (VPMOVZXBQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311343*/            /*Scope*/ 25, /*->311369*/
/*311344*/              OPC_CheckPredicate, 71, // Predicate_zextloadvi16
/*311346*/              OPC_MoveParent,
/*311347*/              OPC_RecordChild2, // #3 = $src0
/*311348*/              OPC_CheckType, MVT::v2i64,
/*311350*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311352*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311355*/              OPC_EmitMergeInputChains1_1,
/*311356*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>>, VR128X:{ *:[v2i64] }:$src0) - Complexity = 25
                        // Dst: (VPMOVZXWQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311369*/            /*Scope*/ 25, /*->311395*/
/*311370*/              OPC_CheckPredicate, 72, // Predicate_zextloadvi32
/*311372*/              OPC_MoveParent,
/*311373*/              OPC_RecordChild2, // #3 = $src0
/*311374*/              OPC_CheckType, MVT::v2i64,
/*311376*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311378*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311381*/              OPC_EmitMergeInputChains1_1,
/*311382*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi32>>, VR128X:{ *:[v2i64] }:$src0) - Complexity = 25
                        // Dst: (VPMOVZXDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311395*/            0, /*End of Scope*/
/*311396*/          /*Scope*/ 82, /*->311479*/
/*311397*/            OPC_CheckPredicate, 60, // Predicate_sextload
/*311399*/            OPC_Scope, 25, /*->311426*/ // 3 children in Scope
/*311401*/              OPC_CheckPredicate, 70, // Predicate_sextloadvi8
/*311403*/              OPC_MoveParent,
/*311404*/              OPC_RecordChild2, // #3 = $src0
/*311405*/              OPC_CheckType, MVT::v2i64,
/*311407*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311409*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311412*/              OPC_EmitMergeInputChains1_1,
/*311413*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>>, VR128X:{ *:[v2i64] }:$src0) - Complexity = 25
                        // Dst: (VPMOVSXBQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311426*/            /*Scope*/ 25, /*->311452*/
/*311427*/              OPC_CheckPredicate, 71, // Predicate_sextloadvi16
/*311429*/              OPC_MoveParent,
/*311430*/              OPC_RecordChild2, // #3 = $src0
/*311431*/              OPC_CheckType, MVT::v2i64,
/*311433*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311435*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311438*/              OPC_EmitMergeInputChains1_1,
/*311439*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>>, VR128X:{ *:[v2i64] }:$src0) - Complexity = 25
                        // Dst: (VPMOVSXWQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311452*/            /*Scope*/ 25, /*->311478*/
/*311453*/              OPC_CheckPredicate, 72, // Predicate_sextloadvi32
/*311455*/              OPC_MoveParent,
/*311456*/              OPC_RecordChild2, // #3 = $src0
/*311457*/              OPC_CheckType, MVT::v2i64,
/*311459*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*311461*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311464*/              OPC_EmitMergeInputChains1_1,
/*311465*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi32>>, VR128X:{ *:[v2i64] }:$src0) - Complexity = 25
                        // Dst: (VPMOVSXDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311478*/            0, /*End of Scope*/
/*311479*/          0, /*End of Scope*/
/*311480*/        /*SwitchOpcode*/ 61|128,4/*573*/, TARGET_VAL(ISD::BITCAST),// ->312057
/*311484*/          OPC_Scope, 39|128,2/*295*/, /*->311782*/ // 2 children in Scope
/*311487*/            OPC_MoveChild0,
/*311488*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*311491*/            OPC_RecordChild0, // #1 = $src
/*311492*/            OPC_SwitchType /*3 cases */, 94, MVT::v4i32,// ->311589
/*311495*/              OPC_Scope, 45, /*->311542*/ // 2 children in Scope
/*311497*/                OPC_CheckChild0Type, MVT::v8i32,
/*311499*/                OPC_CheckChild1Integer, 0, 
/*311501*/                OPC_CheckChild1Type, MVT::iPTR,
/*311503*/                OPC_MoveParent,
/*311504*/                OPC_MoveParent,
/*311505*/                OPC_MoveChild2,
/*311506*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311509*/                OPC_MoveChild0,
/*311510*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311513*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311515*/                OPC_CheckType, MVT::v4i32,
/*311517*/                OPC_MoveParent,
/*311518*/                OPC_MoveParent,
/*311519*/                OPC_CheckType, MVT::v2i64,
/*311521*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311523*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*311526*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*311534*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrkz), 0,
                              MVT::v2i64, 2/*#Ops*/, 0, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VMOVDQA64Z128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }))
/*311542*/              /*Scope*/ 45, /*->311588*/
/*311543*/                OPC_CheckChild0Type, MVT::v16i32,
/*311545*/                OPC_CheckChild1Integer, 0, 
/*311547*/                OPC_CheckChild1Type, MVT::iPTR,
/*311549*/                OPC_MoveParent,
/*311550*/                OPC_MoveParent,
/*311551*/                OPC_MoveChild2,
/*311552*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311555*/                OPC_MoveChild0,
/*311556*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311559*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311561*/                OPC_CheckType, MVT::v4i32,
/*311563*/                OPC_MoveParent,
/*311564*/                OPC_MoveParent,
/*311565*/                OPC_CheckType, MVT::v2i64,
/*311567*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311569*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*311572*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*311580*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrkz), 0,
                              MVT::v2i64, 2/*#Ops*/, 0, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VMOVDQA64Z128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, sub_xmm:{ *:[i32] }))
/*311588*/              0, /*End of Scope*/
/*311589*/            /*SwitchType*/ 94, MVT::v8i16,// ->311685
/*311591*/              OPC_Scope, 45, /*->311638*/ // 2 children in Scope
/*311593*/                OPC_CheckChild0Type, MVT::v16i16,
/*311595*/                OPC_CheckChild1Integer, 0, 
/*311597*/                OPC_CheckChild1Type, MVT::iPTR,
/*311599*/                OPC_MoveParent,
/*311600*/                OPC_MoveParent,
/*311601*/                OPC_MoveChild2,
/*311602*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311605*/                OPC_MoveChild0,
/*311606*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311609*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311611*/                OPC_CheckType, MVT::v4i32,
/*311613*/                OPC_MoveParent,
/*311614*/                OPC_MoveParent,
/*311615*/                OPC_CheckType, MVT::v2i64,
/*311617*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311619*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*311622*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::v8i16, 2/*#Ops*/, 1, 2,  // Results = #3
/*311630*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrkz), 0,
                              MVT::v2i64, 2/*#Ops*/, 0, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VMOVDQA64Z128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] }))
/*311638*/              /*Scope*/ 45, /*->311684*/
/*311639*/                OPC_CheckChild0Type, MVT::v32i16,
/*311641*/                OPC_CheckChild1Integer, 0, 
/*311643*/                OPC_CheckChild1Type, MVT::iPTR,
/*311645*/                OPC_MoveParent,
/*311646*/                OPC_MoveParent,
/*311647*/                OPC_MoveChild2,
/*311648*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311651*/                OPC_MoveChild0,
/*311652*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311655*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311657*/                OPC_CheckType, MVT::v4i32,
/*311659*/                OPC_MoveParent,
/*311660*/                OPC_MoveParent,
/*311661*/                OPC_CheckType, MVT::v2i64,
/*311663*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311665*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*311668*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::v8i16, 2/*#Ops*/, 1, 2,  // Results = #3
/*311676*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrkz), 0,
                              MVT::v2i64, 2/*#Ops*/, 0, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VMOVDQA64Z128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, sub_xmm:{ *:[i32] }))
/*311684*/              0, /*End of Scope*/
/*311685*/            /*SwitchType*/ 94, MVT::v16i8,// ->311781
/*311687*/              OPC_Scope, 45, /*->311734*/ // 2 children in Scope
/*311689*/                OPC_CheckChild0Type, MVT::v32i8,
/*311691*/                OPC_CheckChild1Integer, 0, 
/*311693*/                OPC_CheckChild1Type, MVT::iPTR,
/*311695*/                OPC_MoveParent,
/*311696*/                OPC_MoveParent,
/*311697*/                OPC_MoveChild2,
/*311698*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311701*/                OPC_MoveChild0,
/*311702*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311705*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311707*/                OPC_CheckType, MVT::v4i32,
/*311709*/                OPC_MoveParent,
/*311710*/                OPC_MoveParent,
/*311711*/                OPC_CheckType, MVT::v2i64,
/*311713*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311715*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*311718*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::v16i8, 2/*#Ops*/, 1, 2,  // Results = #3
/*311726*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrkz), 0,
                              MVT::v2i64, 2/*#Ops*/, 0, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VMOVDQA64Z128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] }))
/*311734*/              /*Scope*/ 45, /*->311780*/
/*311735*/                OPC_CheckChild0Type, MVT::v64i8,
/*311737*/                OPC_CheckChild1Integer, 0, 
/*311739*/                OPC_CheckChild1Type, MVT::iPTR,
/*311741*/                OPC_MoveParent,
/*311742*/                OPC_MoveParent,
/*311743*/                OPC_MoveChild2,
/*311744*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311747*/                OPC_MoveChild0,
/*311748*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311751*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311753*/                OPC_CheckType, MVT::v4i32,
/*311755*/                OPC_MoveParent,
/*311756*/                OPC_MoveParent,
/*311757*/                OPC_CheckType, MVT::v2i64,
/*311759*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311761*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*311764*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::v16i8, 2/*#Ops*/, 1, 2,  // Results = #3
/*311772*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrkz), 0,
                              MVT::v2i64, 2/*#Ops*/, 0, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VMOVDQA64Z128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, sub_xmm:{ *:[i32] }))
/*311780*/              0, /*End of Scope*/
/*311781*/            0, // EndSwitchType
/*311782*/          /*Scope*/ 16|128,2/*272*/, /*->312056*/
/*311784*/            OPC_RecordChild0, // #1 = $ext
/*311785*/            OPC_MoveChild0,
/*311786*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*311789*/            OPC_RecordChild0, // #2 = $src
/*311790*/            OPC_Scope, 43, /*->311835*/ // 6 children in Scope
/*311792*/              OPC_CheckChild0Type, MVT::v8i32,
/*311794*/              OPC_MoveChild1,
/*311795*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*311798*/              OPC_CheckType, MVT::iPTR,
/*311800*/              OPC_MoveParent,
/*311801*/              OPC_CheckType, MVT::v4i32,
/*311803*/              OPC_MoveParent,
/*311804*/              OPC_MoveParent,
/*311805*/              OPC_MoveChild2,
/*311806*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311809*/              OPC_MoveChild0,
/*311810*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311813*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311815*/              OPC_CheckType, MVT::v4i32,
/*311817*/              OPC_MoveParent,
/*311818*/              OPC_MoveParent,
/*311819*/              OPC_CheckType, MVT::v2i64,
/*311821*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*311823*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*311826*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Z256rrkz), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                        // Dst: (VEXTRACTI64x2Z256rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v8i32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4i32] }:$ext))
/*311835*/            /*Scope*/ 43, /*->311879*/
/*311836*/              OPC_CheckChild0Type, MVT::v16i16,
/*311838*/              OPC_MoveChild1,
/*311839*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*311842*/              OPC_CheckType, MVT::iPTR,
/*311844*/              OPC_MoveParent,
/*311845*/              OPC_CheckType, MVT::v8i16,
/*311847*/              OPC_MoveParent,
/*311848*/              OPC_MoveParent,
/*311849*/              OPC_MoveChild2,
/*311850*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311853*/              OPC_MoveChild0,
/*311854*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311857*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311859*/              OPC_CheckType, MVT::v4i32,
/*311861*/              OPC_MoveParent,
/*311862*/              OPC_MoveParent,
/*311863*/              OPC_CheckType, MVT::v2i64,
/*311865*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*311867*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*311870*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Z256rrkz), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                        // Dst: (VEXTRACTI64x2Z256rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v16i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*311879*/            /*Scope*/ 43, /*->311923*/
/*311880*/              OPC_CheckChild0Type, MVT::v32i8,
/*311882*/              OPC_MoveChild1,
/*311883*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*311886*/              OPC_CheckType, MVT::iPTR,
/*311888*/              OPC_MoveParent,
/*311889*/              OPC_CheckType, MVT::v16i8,
/*311891*/              OPC_MoveParent,
/*311892*/              OPC_MoveParent,
/*311893*/              OPC_MoveChild2,
/*311894*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311897*/              OPC_MoveChild0,
/*311898*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311901*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311903*/              OPC_CheckType, MVT::v4i32,
/*311905*/              OPC_MoveParent,
/*311906*/              OPC_MoveParent,
/*311907*/              OPC_CheckType, MVT::v2i64,
/*311909*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*311911*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*311914*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Z256rrkz), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                        // Dst: (VEXTRACTI64x2Z256rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v32i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*311923*/            /*Scope*/ 43, /*->311967*/
/*311924*/              OPC_CheckChild0Type, MVT::v16i32,
/*311926*/              OPC_MoveChild1,
/*311927*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*311930*/              OPC_CheckType, MVT::iPTR,
/*311932*/              OPC_MoveParent,
/*311933*/              OPC_CheckType, MVT::v4i32,
/*311935*/              OPC_MoveParent,
/*311936*/              OPC_MoveParent,
/*311937*/              OPC_MoveChild2,
/*311938*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311941*/              OPC_MoveChild0,
/*311942*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311945*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311947*/              OPC_CheckType, MVT::v4i32,
/*311949*/              OPC_MoveParent,
/*311950*/              OPC_MoveParent,
/*311951*/              OPC_CheckType, MVT::v2i64,
/*311953*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*311955*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*311958*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Zrrkz), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                        // Dst: (VEXTRACTI64x2Zrrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v16i32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4i32] }:$ext))
/*311967*/            /*Scope*/ 43, /*->312011*/
/*311968*/              OPC_CheckChild0Type, MVT::v32i16,
/*311970*/              OPC_MoveChild1,
/*311971*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*311974*/              OPC_CheckType, MVT::iPTR,
/*311976*/              OPC_MoveParent,
/*311977*/              OPC_CheckType, MVT::v8i16,
/*311979*/              OPC_MoveParent,
/*311980*/              OPC_MoveParent,
/*311981*/              OPC_MoveChild2,
/*311982*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*311985*/              OPC_MoveChild0,
/*311986*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*311989*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*311991*/              OPC_CheckType, MVT::v4i32,
/*311993*/              OPC_MoveParent,
/*311994*/              OPC_MoveParent,
/*311995*/              OPC_CheckType, MVT::v2i64,
/*311997*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*311999*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*312002*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Zrrkz), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                        // Dst: (VEXTRACTI64x2Zrrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*312011*/            /*Scope*/ 43, /*->312055*/
/*312012*/              OPC_CheckChild0Type, MVT::v64i8,
/*312014*/              OPC_MoveChild1,
/*312015*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312018*/              OPC_CheckType, MVT::iPTR,
/*312020*/              OPC_MoveParent,
/*312021*/              OPC_CheckType, MVT::v16i8,
/*312023*/              OPC_MoveParent,
/*312024*/              OPC_MoveParent,
/*312025*/              OPC_MoveChild2,
/*312026*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312029*/              OPC_MoveChild0,
/*312030*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312033*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312035*/              OPC_CheckType, MVT::v4i32,
/*312037*/              OPC_MoveParent,
/*312038*/              OPC_MoveParent,
/*312039*/              OPC_CheckType, MVT::v2i64,
/*312041*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*312043*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*312046*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Zrrkz), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                        // Dst: (VEXTRACTI64x2Zrrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*312055*/            0, /*End of Scope*/
/*312056*/          0, /*End of Scope*/
/*312057*/        /*SwitchOpcode*/ 93, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->312153
/*312060*/          OPC_RecordChild0, // #1 = $src
/*312061*/          OPC_Scope, 44, /*->312107*/ // 2 children in Scope
/*312063*/            OPC_CheckChild0Type, MVT::v4i64,
/*312065*/            OPC_CheckChild1Integer, 0, 
/*312067*/            OPC_CheckChild1Type, MVT::iPTR,
/*312069*/            OPC_MoveParent,
/*312070*/            OPC_MoveChild2,
/*312071*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312074*/            OPC_MoveChild0,
/*312075*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312078*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312080*/            OPC_CheckType, MVT::v4i32,
/*312082*/            OPC_MoveParent,
/*312083*/            OPC_MoveParent,
/*312084*/            OPC_CheckType, MVT::v2i64,
/*312086*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312088*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*312091*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 2,  // Results = #3
/*312099*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMOVDQA64Z128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }))
/*312107*/          /*Scope*/ 44, /*->312152*/
/*312108*/            OPC_CheckChild0Type, MVT::v8i64,
/*312110*/            OPC_CheckChild1Integer, 0, 
/*312112*/            OPC_CheckChild1Type, MVT::iPTR,
/*312114*/            OPC_MoveParent,
/*312115*/            OPC_MoveChild2,
/*312116*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312119*/            OPC_MoveChild0,
/*312120*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312123*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312125*/            OPC_CheckType, MVT::v4i32,
/*312127*/            OPC_MoveParent,
/*312128*/            OPC_MoveParent,
/*312129*/            OPC_CheckType, MVT::v2i64,
/*312131*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312133*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*312136*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 2,  // Results = #3
/*312144*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] }), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMOVDQA64Z128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, sub_xmm:{ *:[i32] }))
/*312152*/          0, /*End of Scope*/
/*312153*/        0, // EndSwitchOpcode
/*312154*/      0, /*End of Scope*/
/*312155*/    /*Scope*/ 80, /*->312236*/
/*312156*/      OPC_MoveChild0,
/*312157*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*312160*/      OPC_Scope, 36, /*->312198*/ // 2 children in Scope
/*312162*/        OPC_RecordChild0, // #0 = $mask
/*312163*/        OPC_MoveChild1,
/*312164*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312167*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*312169*/        OPC_MoveParent,
/*312170*/        OPC_CheckType, MVT::v8i1,
/*312172*/        OPC_MoveParent,
/*312173*/        OPC_MoveChild1,
/*312174*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312177*/        OPC_MoveChild0,
/*312178*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312181*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312183*/        OPC_CheckType, MVT::v16i32,
/*312185*/        OPC_MoveParent,
/*312186*/        OPC_MoveParent,
/*312187*/        OPC_RecordChild2, // #1 = $src
/*312188*/        OPC_CheckType, MVT::v8i64,
/*312190*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (vselect:{ *:[v8i64] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR512:{ *:[v8i64] }:$src) - Complexity = 17
                  // Dst: (VMOVDQA64Zrrkz:{ *:[v8i64] } VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*312198*/      /*Scope*/ 36, /*->312235*/
/*312199*/        OPC_MoveChild0,
/*312200*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312203*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*312205*/        OPC_MoveParent,
/*312206*/        OPC_RecordChild1, // #0 = $mask
/*312207*/        OPC_CheckType, MVT::v8i1,
/*312209*/        OPC_MoveParent,
/*312210*/        OPC_MoveChild1,
/*312211*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312214*/        OPC_MoveChild0,
/*312215*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312218*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312220*/        OPC_CheckType, MVT::v16i32,
/*312222*/        OPC_MoveParent,
/*312223*/        OPC_MoveParent,
/*312224*/        OPC_RecordChild2, // #1 = $src
/*312225*/        OPC_CheckType, MVT::v8i64,
/*312227*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (vselect:{ *:[v8i64] } (xor:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>>, VK8:{ *:[v8i1] }:$mask), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR512:{ *:[v8i64] }:$src) - Complexity = 17
                  // Dst: (VMOVDQA64Zrrkz:{ *:[v8i64] } VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*312235*/      0, /*End of Scope*/
/*312236*/    /*Scope*/ 71|128,33/*4295*/, /*->316533*/
/*312238*/      OPC_RecordChild0, // #0 = $mask
/*312239*/      OPC_Scope, 12|128,11/*1420*/, /*->313662*/ // 6 children in Scope
/*312242*/        OPC_CheckChild0Type, MVT::v8i1,
/*312244*/        OPC_Scope, 93, /*->312339*/ // 2 children in Scope
/*312246*/          OPC_RecordChild1, // #1 = $src3
/*312247*/          OPC_MoveChild1,
/*312248*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*312251*/          OPC_RecordChild0, // #2 = $src1
/*312252*/          OPC_RecordChild1, // #3 = $src2
/*312253*/          OPC_Scope, 41, /*->312296*/ // 2 children in Scope
/*312255*/            OPC_CheckChild1Type, MVT::v4i64,
/*312257*/            OPC_MoveChild2,
/*312258*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312261*/            OPC_CheckType, MVT::iPTR,
/*312263*/            OPC_MoveParent,
/*312264*/            OPC_MoveParent,
/*312265*/            OPC_MoveChild2,
/*312266*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312269*/            OPC_MoveChild0,
/*312270*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312273*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312275*/            OPC_CheckType, MVT::v16i32,
/*312277*/            OPC_MoveParent,
/*312278*/            OPC_MoveParent,
/*312279*/            OPC_CheckType, MVT::v8i64,
/*312281*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312283*/            OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*312286*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrrkz), 0,
                          MVT::v8i64, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VINSERTI64x4Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*312296*/          /*Scope*/ 41, /*->312338*/
/*312297*/            OPC_CheckChild1Type, MVT::v2i64,
/*312299*/            OPC_MoveChild2,
/*312300*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312303*/            OPC_CheckType, MVT::iPTR,
/*312305*/            OPC_MoveParent,
/*312306*/            OPC_MoveParent,
/*312307*/            OPC_MoveChild2,
/*312308*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312311*/            OPC_MoveChild0,
/*312312*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312315*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312317*/            OPC_CheckType, MVT::v16i32,
/*312319*/            OPC_MoveParent,
/*312320*/            OPC_MoveParent,
/*312321*/            OPC_CheckType, MVT::v8i64,
/*312323*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*312325*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*312328*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrrkz), 0,
                          MVT::v8i64, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VINSERTI64x2Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*312338*/          0, /*End of Scope*/
/*312339*/        /*Scope*/ 40|128,10/*1320*/, /*->313661*/
/*312341*/          OPC_MoveChild1,
/*312342*/          OPC_SwitchOpcode /*21 cases */, 27|128,2/*283*/, TARGET_VAL(ISD::BITCAST),// ->312630
/*312347*/            OPC_Scope, 68|128,1/*196*/, /*->312546*/ // 2 children in Scope
/*312350*/              OPC_RecordChild0, // #1 = $ins
/*312351*/              OPC_MoveChild0,
/*312352*/              OPC_SwitchOpcode /*2 cases */, 95, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->312451
/*312356*/                OPC_RecordChild0, // #2 = $src1
/*312357*/                OPC_RecordChild1, // #3 = $src2
/*312358*/                OPC_MoveChild2,
/*312359*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312362*/                OPC_CheckType, MVT::iPTR,
/*312364*/                OPC_MoveParent,
/*312365*/                OPC_SwitchType /*3 cases */, 26, MVT::v4i64,// ->312394
/*312368*/                  OPC_MoveParent,
/*312369*/                  OPC_MoveParent,
/*312370*/                  OPC_MoveChild2,
/*312371*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312374*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312376*/                  OPC_MoveParent,
/*312377*/                  OPC_CheckType, MVT::v8i32,
/*312379*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312381*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*312384*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rrkz), 0,
                                MVT::v8i32, 4/*#Ops*/, 0, 2, 3, 4, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                            // Dst: (VINSERTI32x4Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ins))
/*312394*/                /*SwitchType*/ 26, MVT::v16i16,// ->312422
/*312396*/                  OPC_MoveParent,
/*312397*/                  OPC_MoveParent,
/*312398*/                  OPC_MoveChild2,
/*312399*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312402*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312404*/                  OPC_MoveParent,
/*312405*/                  OPC_CheckType, MVT::v8i32,
/*312407*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312409*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*312412*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rrkz), 0,
                                MVT::v8i32, 4/*#Ops*/, 0, 2, 3, 4, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                            // Dst: (VINSERTI32x4Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*312422*/                /*SwitchType*/ 26, MVT::v32i8,// ->312450
/*312424*/                  OPC_MoveParent,
/*312425*/                  OPC_MoveParent,
/*312426*/                  OPC_MoveChild2,
/*312427*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312430*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312432*/                  OPC_MoveParent,
/*312433*/                  OPC_CheckType, MVT::v8i32,
/*312435*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312437*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*312440*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rrkz), 0,
                                MVT::v8i32, 4/*#Ops*/, 0, 2, 3, 4, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                            // Dst: (VINSERTI32x4Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*312450*/                0, // EndSwitchType
/*312451*/              /*SwitchOpcode*/ 91, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->312545
/*312454*/                OPC_RecordChild0, // #2 = $src
/*312455*/                OPC_MoveChild1,
/*312456*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312459*/                OPC_CheckType, MVT::iPTR,
/*312461*/                OPC_MoveParent,
/*312462*/                OPC_SwitchType /*3 cases */, 25, MVT::v4i64,// ->312490
/*312465*/                  OPC_MoveParent,
/*312466*/                  OPC_MoveParent,
/*312467*/                  OPC_MoveChild2,
/*312468*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312471*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312473*/                  OPC_MoveParent,
/*312474*/                  OPC_CheckType, MVT::v8i32,
/*312476*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*312478*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*312481*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x8Zrrkz), 0,
                                MVT::v8i32, 3/*#Ops*/, 0, 2, 3, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                            // Dst: (VEXTRACTI32x8Zrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ext))
/*312490*/                /*SwitchType*/ 25, MVT::v16i16,// ->312517
/*312492*/                  OPC_MoveParent,
/*312493*/                  OPC_MoveParent,
/*312494*/                  OPC_MoveChild2,
/*312495*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312498*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312500*/                  OPC_MoveParent,
/*312501*/                  OPC_CheckType, MVT::v8i32,
/*312503*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*312505*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*312508*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x8Zrrkz), 0,
                                MVT::v8i32, 3/*#Ops*/, 0, 2, 3, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                            // Dst: (VEXTRACTI32x8Zrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/*312517*/                /*SwitchType*/ 25, MVT::v32i8,// ->312544
/*312519*/                  OPC_MoveParent,
/*312520*/                  OPC_MoveParent,
/*312521*/                  OPC_MoveChild2,
/*312522*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312525*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312527*/                  OPC_MoveParent,
/*312528*/                  OPC_CheckType, MVT::v8i32,
/*312530*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*312532*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*312535*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x8Zrrkz), 0,
                                MVT::v8i32, 3/*#Ops*/, 0, 2, 3, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                            // Dst: (VEXTRACTI32x8Zrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/*312544*/                0, // EndSwitchType
/*312545*/              0, // EndSwitchOpcode
/*312546*/            /*Scope*/ 82, /*->312629*/
/*312547*/              OPC_MoveChild0,
/*312548*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(X86ISD::SHUF128),// ->312587
/*312552*/                OPC_RecordChild0, // #1 = $src1
/*312553*/                OPC_RecordChild1, // #2 = $src2
/*312554*/                OPC_RecordChild2, // #3 = $src3
/*312555*/                OPC_MoveChild2,
/*312556*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312559*/                OPC_MoveParent,
/*312560*/                OPC_CheckType, MVT::v4i64,
/*312562*/                OPC_MoveParent,
/*312563*/                OPC_MoveParent,
/*312564*/                OPC_MoveChild2,
/*312565*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312568*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312570*/                OPC_MoveParent,
/*312571*/                OPC_CheckType, MVT::v8i32,
/*312573*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*312575*/                OPC_EmitConvertToTarget, 3,
/*312577*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rrikz), 0,
                              MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                          // Dst: (VSHUFI32X4Z256rrikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*312587*/              /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VALIGN),// ->312628
/*312590*/                OPC_RecordChild0, // #1 = $src1
/*312591*/                OPC_RecordChild1, // #2 = $src2
/*312592*/                OPC_RecordChild2, // #3 = $src3
/*312593*/                OPC_MoveChild2,
/*312594*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312597*/                OPC_MoveParent,
/*312598*/                OPC_CheckType, MVT::v4i64,
/*312600*/                OPC_MoveParent,
/*312601*/                OPC_MoveParent,
/*312602*/                OPC_MoveChild2,
/*312603*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312606*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312608*/                OPC_MoveParent,
/*312609*/                OPC_CheckType, MVT::v8i32,
/*312611*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312613*/                OPC_EmitConvertToTarget, 3,
/*312615*/                OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*312618*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rrikz), 0,
                              MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 5, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                          // Dst: (VALIGNDZ256rrikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*312628*/              0, // EndSwitchOpcode
/*312629*/            0, /*End of Scope*/
/*312630*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VSRLI),// ->312691
/*312633*/            OPC_RecordChild0, // #1 = $src1
/*312634*/            OPC_RecordChild1, // #2 = $src2
/*312635*/            OPC_MoveChild1,
/*312636*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312639*/            OPC_MoveParent,
/*312640*/            OPC_MoveParent,
/*312641*/            OPC_MoveChild2,
/*312642*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312645*/            OPC_MoveChild0,
/*312646*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312649*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312651*/            OPC_SwitchType /*2 cases */, 17, MVT::v16i32,// ->312671
/*312654*/              OPC_MoveParent,
/*312655*/              OPC_MoveParent,
/*312656*/              OPC_CheckType, MVT::v8i64,
/*312658*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312660*/              OPC_EmitConvertToTarget, 2,
/*312662*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZrikz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPSRLQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*312671*/            /*SwitchType*/ 17, MVT::v4i32,// ->312690
/*312673*/              OPC_MoveParent,
/*312674*/              OPC_MoveParent,
/*312675*/              OPC_CheckType, MVT::v8i16,
/*312677*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*312679*/              OPC_EmitConvertToTarget, 2,
/*312681*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128rikz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPSRLWZ128rikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*312690*/            0, // EndSwitchType
/*312691*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VSHLI),// ->312752
/*312694*/            OPC_RecordChild0, // #1 = $src1
/*312695*/            OPC_RecordChild1, // #2 = $src2
/*312696*/            OPC_MoveChild1,
/*312697*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312700*/            OPC_MoveParent,
/*312701*/            OPC_MoveParent,
/*312702*/            OPC_MoveChild2,
/*312703*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312706*/            OPC_MoveChild0,
/*312707*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312710*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312712*/            OPC_SwitchType /*2 cases */, 17, MVT::v16i32,// ->312732
/*312715*/              OPC_MoveParent,
/*312716*/              OPC_MoveParent,
/*312717*/              OPC_CheckType, MVT::v8i64,
/*312719*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312721*/              OPC_EmitConvertToTarget, 2,
/*312723*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZrikz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPSLLQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*312732*/            /*SwitchType*/ 17, MVT::v4i32,// ->312751
/*312734*/              OPC_MoveParent,
/*312735*/              OPC_MoveParent,
/*312736*/              OPC_CheckType, MVT::v8i16,
/*312738*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*312740*/              OPC_EmitConvertToTarget, 2,
/*312742*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128rikz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPSLLWZ128rikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*312751*/            0, // EndSwitchType
/*312752*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VSRAI),// ->312813
/*312755*/            OPC_RecordChild0, // #1 = $src1
/*312756*/            OPC_RecordChild1, // #2 = $src2
/*312757*/            OPC_MoveChild1,
/*312758*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312761*/            OPC_MoveParent,
/*312762*/            OPC_MoveParent,
/*312763*/            OPC_MoveChild2,
/*312764*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312767*/            OPC_MoveChild0,
/*312768*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312771*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312773*/            OPC_SwitchType /*2 cases */, 17, MVT::v16i32,// ->312793
/*312776*/              OPC_MoveParent,
/*312777*/              OPC_MoveParent,
/*312778*/              OPC_CheckType, MVT::v8i64,
/*312780*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312782*/              OPC_EmitConvertToTarget, 2,
/*312784*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZrikz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPSRAQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*312793*/            /*SwitchType*/ 17, MVT::v4i32,// ->312812
/*312795*/              OPC_MoveParent,
/*312796*/              OPC_MoveParent,
/*312797*/              OPC_CheckType, MVT::v8i16,
/*312799*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*312801*/              OPC_EmitConvertToTarget, 2,
/*312803*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128rikz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPSRAWZ128rikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*312812*/            0, // EndSwitchType
/*312813*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VROTRI),// ->312853
/*312816*/            OPC_RecordChild0, // #1 = $src1
/*312817*/            OPC_RecordChild1, // #2 = $src2
/*312818*/            OPC_MoveChild1,
/*312819*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312822*/            OPC_MoveParent,
/*312823*/            OPC_MoveParent,
/*312824*/            OPC_MoveChild2,
/*312825*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312828*/            OPC_MoveChild0,
/*312829*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312832*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312834*/            OPC_CheckType, MVT::v16i32,
/*312836*/            OPC_MoveParent,
/*312837*/            OPC_MoveParent,
/*312838*/            OPC_CheckType, MVT::v8i64,
/*312840*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312842*/            OPC_EmitConvertToTarget, 2,
/*312844*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZrikz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPRORQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*312853*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VROTLI),// ->312893
/*312856*/            OPC_RecordChild0, // #1 = $src1
/*312857*/            OPC_RecordChild1, // #2 = $src2
/*312858*/            OPC_MoveChild1,
/*312859*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312862*/            OPC_MoveParent,
/*312863*/            OPC_MoveParent,
/*312864*/            OPC_MoveChild2,
/*312865*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312868*/            OPC_MoveChild0,
/*312869*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312872*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312874*/            OPC_CheckType, MVT::v16i32,
/*312876*/            OPC_MoveParent,
/*312877*/            OPC_MoveParent,
/*312878*/            OPC_CheckType, MVT::v8i64,
/*312880*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312882*/            OPC_EmitConvertToTarget, 2,
/*312884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZrikz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPROLQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*312893*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VPERMI),// ->312933
/*312896*/            OPC_RecordChild0, // #1 = $src1
/*312897*/            OPC_RecordChild1, // #2 = $src2
/*312898*/            OPC_MoveChild1,
/*312899*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312902*/            OPC_MoveParent,
/*312903*/            OPC_MoveParent,
/*312904*/            OPC_MoveChild2,
/*312905*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312908*/            OPC_MoveChild0,
/*312909*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312912*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312914*/            OPC_CheckType, MVT::v16i32,
/*312916*/            OPC_MoveParent,
/*312917*/            OPC_MoveParent,
/*312918*/            OPC_CheckType, MVT::v8i64,
/*312920*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312922*/            OPC_EmitConvertToTarget, 2,
/*312924*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrikz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPERMQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*312933*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::PSHUFHW),// ->312973
/*312936*/            OPC_RecordChild0, // #1 = $src1
/*312937*/            OPC_RecordChild1, // #2 = $src2
/*312938*/            OPC_MoveChild1,
/*312939*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312942*/            OPC_MoveParent,
/*312943*/            OPC_MoveParent,
/*312944*/            OPC_MoveChild2,
/*312945*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312948*/            OPC_MoveChild0,
/*312949*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312952*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312954*/            OPC_CheckType, MVT::v4i32,
/*312956*/            OPC_MoveParent,
/*312957*/            OPC_MoveParent,
/*312958*/            OPC_CheckType, MVT::v8i16,
/*312960*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*312962*/            OPC_EmitConvertToTarget, 2,
/*312964*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128rikz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufhw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSHUFHWZ128rikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*312973*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::PSHUFLW),// ->313013
/*312976*/            OPC_RecordChild0, // #1 = $src1
/*312977*/            OPC_RecordChild1, // #2 = $src2
/*312978*/            OPC_MoveChild1,
/*312979*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*312982*/            OPC_MoveParent,
/*312983*/            OPC_MoveParent,
/*312984*/            OPC_MoveChild2,
/*312985*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*312988*/            OPC_MoveChild0,
/*312989*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*312992*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*312994*/            OPC_CheckType, MVT::v4i32,
/*312996*/            OPC_MoveParent,
/*312997*/            OPC_MoveParent,
/*312998*/            OPC_CheckType, MVT::v8i16,
/*313000*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*313002*/            OPC_EmitConvertToTarget, 2,
/*313004*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128rikz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShuflw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSHUFLWZ128rikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*313013*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::CVTP2SI_RND),// ->313097
/*313016*/            OPC_RecordChild0, // #1 = $src
/*313017*/            OPC_Scope, 38, /*->313057*/ // 2 children in Scope
/*313019*/              OPC_CheckChild0Type, MVT::v8f64,
/*313021*/              OPC_RecordChild1, // #2 = $rc
/*313022*/              OPC_MoveChild1,
/*313023*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313026*/              OPC_MoveParent,
/*313027*/              OPC_MoveParent,
/*313028*/              OPC_MoveChild2,
/*313029*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313032*/              OPC_MoveChild0,
/*313033*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313036*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313038*/              OPC_CheckType, MVT::v16i32,
/*313040*/              OPC_MoveParent,
/*313041*/              OPC_MoveParent,
/*313042*/              OPC_CheckType, MVT::v8i64,
/*313044*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*313046*/              OPC_EmitConvertToTarget, 2,
/*313048*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrrbkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VCVTPD2QQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*313057*/            /*Scope*/ 38, /*->313096*/
/*313058*/              OPC_CheckChild0Type, MVT::v8f32,
/*313060*/              OPC_RecordChild1, // #2 = $rc
/*313061*/              OPC_MoveChild1,
/*313062*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313065*/              OPC_MoveParent,
/*313066*/              OPC_MoveParent,
/*313067*/              OPC_MoveChild2,
/*313068*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313071*/              OPC_MoveChild0,
/*313072*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313075*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313077*/              OPC_CheckType, MVT::v16i32,
/*313079*/              OPC_MoveParent,
/*313080*/              OPC_MoveParent,
/*313081*/              OPC_CheckType, MVT::v8i64,
/*313083*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*313085*/              OPC_EmitConvertToTarget, 2,
/*313087*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrrbkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VCVTPS2QQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc)
/*313096*/            0, /*End of Scope*/
/*313097*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::CVTP2UI_RND),// ->313181
/*313100*/            OPC_RecordChild0, // #1 = $src
/*313101*/            OPC_Scope, 38, /*->313141*/ // 2 children in Scope
/*313103*/              OPC_CheckChild0Type, MVT::v8f64,
/*313105*/              OPC_RecordChild1, // #2 = $rc
/*313106*/              OPC_MoveChild1,
/*313107*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313110*/              OPC_MoveParent,
/*313111*/              OPC_MoveParent,
/*313112*/              OPC_MoveChild2,
/*313113*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313116*/              OPC_MoveChild0,
/*313117*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313120*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313122*/              OPC_CheckType, MVT::v16i32,
/*313124*/              OPC_MoveParent,
/*313125*/              OPC_MoveParent,
/*313126*/              OPC_CheckType, MVT::v8i64,
/*313128*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*313130*/              OPC_EmitConvertToTarget, 2,
/*313132*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrrbkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VCVTPD2UQQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*313141*/            /*Scope*/ 38, /*->313180*/
/*313142*/              OPC_CheckChild0Type, MVT::v8f32,
/*313144*/              OPC_RecordChild1, // #2 = $rc
/*313145*/              OPC_MoveChild1,
/*313146*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313149*/              OPC_MoveParent,
/*313150*/              OPC_MoveParent,
/*313151*/              OPC_MoveChild2,
/*313152*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313155*/              OPC_MoveChild0,
/*313156*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313159*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313161*/              OPC_CheckType, MVT::v16i32,
/*313163*/              OPC_MoveParent,
/*313164*/              OPC_MoveParent,
/*313165*/              OPC_CheckType, MVT::v8i64,
/*313167*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*313169*/              OPC_EmitConvertToTarget, 2,
/*313171*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrrbkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VCVTPS2UQQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc)
/*313180*/            0, /*End of Scope*/
/*313181*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::CVTPS2PH),// ->313265
/*313184*/            OPC_RecordChild0, // #1 = $src1
/*313185*/            OPC_Scope, 38, /*->313225*/ // 2 children in Scope
/*313187*/              OPC_CheckChild0Type, MVT::v8f32,
/*313189*/              OPC_RecordChild1, // #2 = $src2
/*313190*/              OPC_MoveChild1,
/*313191*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313194*/              OPC_MoveParent,
/*313195*/              OPC_MoveParent,
/*313196*/              OPC_MoveChild2,
/*313197*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313200*/              OPC_MoveChild0,
/*313201*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313204*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313206*/              OPC_CheckType, MVT::v4i32,
/*313208*/              OPC_MoveParent,
/*313209*/              OPC_MoveParent,
/*313210*/              OPC_CheckType, MVT::v8i16,
/*313212*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313214*/              OPC_EmitConvertToTarget, 2,
/*313216*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ256rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtps2ph:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VCVTPS2PHZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*313225*/            /*Scope*/ 38, /*->313264*/
/*313226*/              OPC_CheckChild0Type, MVT::v4f32,
/*313228*/              OPC_RecordChild1, // #2 = $src2
/*313229*/              OPC_MoveChild1,
/*313230*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313233*/              OPC_MoveParent,
/*313234*/              OPC_MoveParent,
/*313235*/              OPC_MoveChild2,
/*313236*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313239*/              OPC_MoveChild0,
/*313240*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313243*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313245*/              OPC_CheckType, MVT::v4i32,
/*313247*/              OPC_MoveParent,
/*313248*/              OPC_MoveParent,
/*313249*/              OPC_CheckType, MVT::v8i16,
/*313251*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313253*/              OPC_EmitConvertToTarget, 2,
/*313255*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtps2ph:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VCVTPS2PHZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*313264*/            0, /*End of Scope*/
/*313265*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::SHUF128),// ->313307
/*313268*/            OPC_RecordChild0, // #1 = $src1
/*313269*/            OPC_RecordChild1, // #2 = $src2
/*313270*/            OPC_RecordChild2, // #3 = $src3
/*313271*/            OPC_MoveChild2,
/*313272*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313275*/            OPC_MoveParent,
/*313276*/            OPC_MoveParent,
/*313277*/            OPC_MoveChild2,
/*313278*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313281*/            OPC_MoveChild0,
/*313282*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313285*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313287*/            OPC_CheckType, MVT::v16i32,
/*313289*/            OPC_MoveParent,
/*313290*/            OPC_MoveParent,
/*313291*/            OPC_CheckType, MVT::v8i64,
/*313293*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313295*/            OPC_EmitConvertToTarget, 3,
/*313297*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrrikz), 0,
                          MVT::v8i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSHUFI64X2Zrrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*313307*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VALIGN),// ->313349
/*313310*/            OPC_RecordChild0, // #1 = $src1
/*313311*/            OPC_RecordChild1, // #2 = $src2
/*313312*/            OPC_RecordChild2, // #3 = $src3
/*313313*/            OPC_MoveChild2,
/*313314*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313317*/            OPC_MoveParent,
/*313318*/            OPC_MoveParent,
/*313319*/            OPC_MoveChild2,
/*313320*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313323*/            OPC_MoveChild0,
/*313324*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313327*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313329*/            OPC_CheckType, MVT::v16i32,
/*313331*/            OPC_MoveParent,
/*313332*/            OPC_MoveParent,
/*313333*/            OPC_CheckType, MVT::v8i64,
/*313335*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313337*/            OPC_EmitConvertToTarget, 3,
/*313339*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrrikz), 0,
                          MVT::v8i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VALIGNQZrrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*313349*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::DBPSADBW),// ->313393
/*313352*/            OPC_RecordChild0, // #1 = $src1
/*313353*/            OPC_RecordChild1, // #2 = $src2
/*313354*/            OPC_RecordChild2, // #3 = $src3
/*313355*/            OPC_MoveChild2,
/*313356*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313359*/            OPC_CheckType, MVT::i8,
/*313361*/            OPC_MoveParent,
/*313362*/            OPC_MoveParent,
/*313363*/            OPC_MoveChild2,
/*313364*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313367*/            OPC_MoveChild0,
/*313368*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313371*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313373*/            OPC_CheckType, MVT::v4i32,
/*313375*/            OPC_MoveParent,
/*313376*/            OPC_MoveParent,
/*313377*/            OPC_CheckType, MVT::v8i16,
/*313379*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*313381*/            OPC_EmitConvertToTarget, 3,
/*313383*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rrikz), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VDBPSADBWZ128rrikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*313393*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VPTERNLOG),// ->313437
/*313396*/            OPC_RecordChild0, // #1 = $src1
/*313397*/            OPC_RecordChild1, // #2 = $src2
/*313398*/            OPC_RecordChild2, // #3 = $src3
/*313399*/            OPC_RecordChild3, // #4 = $src4
/*313400*/            OPC_MoveChild3,
/*313401*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313404*/            OPC_MoveParent,
/*313405*/            OPC_MoveParent,
/*313406*/            OPC_MoveChild2,
/*313407*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313410*/            OPC_MoveChild0,
/*313411*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313414*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313416*/            OPC_CheckType, MVT::v16i32,
/*313418*/            OPC_MoveParent,
/*313419*/            OPC_MoveParent,
/*313420*/            OPC_CheckType, MVT::v8i64,
/*313422*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313424*/            OPC_EmitConvertToTarget, 4,
/*313426*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrrikz), 0,
                          MVT::v8i64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPTERNLOGQZrrikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*313437*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VSHLD),// ->313501
/*313440*/            OPC_RecordChild0, // #1 = $src1
/*313441*/            OPC_RecordChild1, // #2 = $src2
/*313442*/            OPC_RecordChild2, // #3 = $src3
/*313443*/            OPC_MoveChild2,
/*313444*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313447*/            OPC_MoveParent,
/*313448*/            OPC_MoveParent,
/*313449*/            OPC_MoveChild2,
/*313450*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313453*/            OPC_MoveChild0,
/*313454*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313457*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313459*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->313480
/*313462*/              OPC_MoveParent,
/*313463*/              OPC_MoveParent,
/*313464*/              OPC_CheckType, MVT::v8i16,
/*313466*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*313468*/              OPC_EmitConvertToTarget, 3,
/*313470*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rrikz), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPSHLDWZ128rrikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*313480*/            /*SwitchType*/ 18, MVT::v16i32,// ->313500
/*313482*/              OPC_MoveParent,
/*313483*/              OPC_MoveParent,
/*313484*/              OPC_CheckType, MVT::v8i64,
/*313486*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*313488*/              OPC_EmitConvertToTarget, 3,
/*313490*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrrikz), 0,
                            MVT::v8i64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPSHLDQZrrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*313500*/            0, // EndSwitchType
/*313501*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VSHRD),// ->313565
/*313504*/            OPC_RecordChild0, // #1 = $src1
/*313505*/            OPC_RecordChild1, // #2 = $src2
/*313506*/            OPC_RecordChild2, // #3 = $src3
/*313507*/            OPC_MoveChild2,
/*313508*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313511*/            OPC_MoveParent,
/*313512*/            OPC_MoveParent,
/*313513*/            OPC_MoveChild2,
/*313514*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313517*/            OPC_MoveChild0,
/*313518*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313521*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313523*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->313544
/*313526*/              OPC_MoveParent,
/*313527*/              OPC_MoveParent,
/*313528*/              OPC_CheckType, MVT::v8i16,
/*313530*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*313532*/              OPC_EmitConvertToTarget, 3,
/*313534*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rrikz), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPSHRDWZ128rrikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*313544*/            /*SwitchType*/ 18, MVT::v16i32,// ->313564
/*313546*/              OPC_MoveParent,
/*313547*/              OPC_MoveParent,
/*313548*/              OPC_CheckType, MVT::v8i64,
/*313550*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*313552*/              OPC_EmitConvertToTarget, 3,
/*313554*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrrikz), 0,
                            MVT::v8i64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPSHRDQZrrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*313564*/            0, // EndSwitchType
/*313565*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::CVTTP2SI_RND),// ->313593
/*313568*/            OPC_RecordChild0, // #1 = $src
/*313569*/            OPC_CheckChild0Type, MVT::v8f64,
/*313571*/            OPC_CheckChild1Integer, 8, 
/*313573*/            OPC_MoveParent,
/*313574*/            OPC_MoveChild2,
/*313575*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313578*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313580*/            OPC_MoveParent,
/*313581*/            OPC_CheckType, MVT::v8i32,
/*313583*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313585*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrrbkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 15
                      // Dst: (VCVTTPD2DQZrrbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*313593*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::CVTTP2UI_RND),// ->313621
/*313596*/            OPC_RecordChild0, // #1 = $src
/*313597*/            OPC_CheckChild0Type, MVT::v8f64,
/*313599*/            OPC_CheckChild1Integer, 8, 
/*313601*/            OPC_MoveParent,
/*313602*/            OPC_MoveChild2,
/*313603*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313606*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313608*/            OPC_MoveParent,
/*313609*/            OPC_CheckType, MVT::v8i32,
/*313611*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313613*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrrbkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 15
                      // Dst: (VCVTTPD2UDQZrrbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*313621*/          /*SwitchOpcode*/ 36, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->313660
/*313624*/            OPC_RecordChild0, // #1 = $src
/*313625*/            OPC_CheckChild1Integer, 0, 
/*313627*/            OPC_CheckChild1Type, MVT::iPTR,
/*313629*/            OPC_MoveParent,
/*313630*/            OPC_MoveChild2,
/*313631*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313634*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313636*/            OPC_MoveParent,
/*313637*/            OPC_CheckType, MVT::v8i32,
/*313639*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313641*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*313644*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*313652*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] }), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 15
                      // Dst: (VMOVDQA32Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, sub_ymm:{ *:[i32] }))
/*313660*/          0, // EndSwitchOpcode
/*313661*/        0, /*End of Scope*/
/*313662*/      /*Scope*/ 19|128,7/*915*/, /*->314579*/
/*313664*/        OPC_CheckChild0Type, MVT::v4i1,
/*313666*/        OPC_Scope, 90, /*->313758*/ // 2 children in Scope
/*313668*/          OPC_RecordChild1, // #1 = $src3
/*313669*/          OPC_MoveChild1,
/*313670*/          OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->313715
/*313674*/            OPC_RecordChild0, // #2 = $src1
/*313675*/            OPC_RecordChild1, // #3 = $src2
/*313676*/            OPC_MoveChild2,
/*313677*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313680*/            OPC_CheckType, MVT::iPTR,
/*313682*/            OPC_MoveParent,
/*313683*/            OPC_MoveParent,
/*313684*/            OPC_MoveChild2,
/*313685*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313688*/            OPC_MoveChild0,
/*313689*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313692*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313694*/            OPC_CheckType, MVT::v8i32,
/*313696*/            OPC_MoveParent,
/*313697*/            OPC_MoveParent,
/*313698*/            OPC_CheckType, MVT::v4i64,
/*313700*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*313702*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*313705*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Z256rrkz), 0,
                          MVT::v4i64, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VINSERTI64x2Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*313715*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->313757
/*313718*/            OPC_RecordChild0, // #2 = $src1
/*313719*/            OPC_MoveChild1,
/*313720*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313723*/            OPC_CheckType, MVT::iPTR,
/*313725*/            OPC_MoveParent,
/*313726*/            OPC_MoveParent,
/*313727*/            OPC_MoveChild2,
/*313728*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*313731*/            OPC_MoveChild0,
/*313732*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313735*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313737*/            OPC_CheckType, MVT::v8i32,
/*313739*/            OPC_MoveParent,
/*313740*/            OPC_MoveParent,
/*313741*/            OPC_CheckType, MVT::v4i64,
/*313743*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313745*/            OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*313748*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VEXTRACTI64x4Zrrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*313757*/          0, // EndSwitchOpcode
/*313758*/        /*Scope*/ 50|128,6/*818*/, /*->314578*/
/*313760*/          OPC_MoveChild1,
/*313761*/          OPC_SwitchOpcode /*13 cases */, 21|128,2/*277*/, TARGET_VAL(ISD::BITCAST),// ->314043
/*313766*/            OPC_Scope, 102|128,1/*230*/, /*->313999*/ // 2 children in Scope
/*313769*/              OPC_RecordChild0, // #1 = $ext
/*313770*/              OPC_MoveChild0,
/*313771*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*313774*/              OPC_RecordChild0, // #2 = $src
/*313775*/              OPC_Scope, 36, /*->313813*/ // 6 children in Scope
/*313777*/                OPC_CheckChild0Type, MVT::v4i64,
/*313779*/                OPC_MoveChild1,
/*313780*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313783*/                OPC_CheckType, MVT::iPTR,
/*313785*/                OPC_MoveParent,
/*313786*/                OPC_CheckType, MVT::v2i64,
/*313788*/                OPC_MoveParent,
/*313789*/                OPC_MoveParent,
/*313790*/                OPC_MoveChild2,
/*313791*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313794*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313796*/                OPC_MoveParent,
/*313797*/                OPC_CheckType, MVT::v4i32,
/*313799*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313801*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*313804*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rrkz), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                          // Dst: (VEXTRACTI32x4Z256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*313813*/              /*Scope*/ 36, /*->313850*/
/*313814*/                OPC_CheckChild0Type, MVT::v16i16,
/*313816*/                OPC_MoveChild1,
/*313817*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313820*/                OPC_CheckType, MVT::iPTR,
/*313822*/                OPC_MoveParent,
/*313823*/                OPC_CheckType, MVT::v8i16,
/*313825*/                OPC_MoveParent,
/*313826*/                OPC_MoveParent,
/*313827*/                OPC_MoveChild2,
/*313828*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313831*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313833*/                OPC_MoveParent,
/*313834*/                OPC_CheckType, MVT::v4i32,
/*313836*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313838*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*313841*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rrkz), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                          // Dst: (VEXTRACTI32x4Z256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*313850*/              /*Scope*/ 36, /*->313887*/
/*313851*/                OPC_CheckChild0Type, MVT::v32i8,
/*313853*/                OPC_MoveChild1,
/*313854*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313857*/                OPC_CheckType, MVT::iPTR,
/*313859*/                OPC_MoveParent,
/*313860*/                OPC_CheckType, MVT::v16i8,
/*313862*/                OPC_MoveParent,
/*313863*/                OPC_MoveParent,
/*313864*/                OPC_MoveChild2,
/*313865*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313868*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313870*/                OPC_MoveParent,
/*313871*/                OPC_CheckType, MVT::v4i32,
/*313873*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313875*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*313878*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rrkz), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                          // Dst: (VEXTRACTI32x4Z256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*313887*/              /*Scope*/ 36, /*->313924*/
/*313888*/                OPC_CheckChild0Type, MVT::v8i64,
/*313890*/                OPC_MoveChild1,
/*313891*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313894*/                OPC_CheckType, MVT::iPTR,
/*313896*/                OPC_MoveParent,
/*313897*/                OPC_CheckType, MVT::v2i64,
/*313899*/                OPC_MoveParent,
/*313900*/                OPC_MoveParent,
/*313901*/                OPC_MoveChild2,
/*313902*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313905*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313907*/                OPC_MoveParent,
/*313908*/                OPC_CheckType, MVT::v4i32,
/*313910*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313912*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*313915*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrrkz), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                          // Dst: (VEXTRACTI32x4Zrrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8i64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*313924*/              /*Scope*/ 36, /*->313961*/
/*313925*/                OPC_CheckChild0Type, MVT::v32i16,
/*313927*/                OPC_MoveChild1,
/*313928*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313931*/                OPC_CheckType, MVT::iPTR,
/*313933*/                OPC_MoveParent,
/*313934*/                OPC_CheckType, MVT::v8i16,
/*313936*/                OPC_MoveParent,
/*313937*/                OPC_MoveParent,
/*313938*/                OPC_MoveChild2,
/*313939*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313942*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313944*/                OPC_MoveParent,
/*313945*/                OPC_CheckType, MVT::v4i32,
/*313947*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313949*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*313952*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrrkz), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                          // Dst: (VEXTRACTI32x4Zrrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*313961*/              /*Scope*/ 36, /*->313998*/
/*313962*/                OPC_CheckChild0Type, MVT::v64i8,
/*313964*/                OPC_MoveChild1,
/*313965*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313968*/                OPC_CheckType, MVT::iPTR,
/*313970*/                OPC_MoveParent,
/*313971*/                OPC_CheckType, MVT::v16i8,
/*313973*/                OPC_MoveParent,
/*313974*/                OPC_MoveParent,
/*313975*/                OPC_MoveChild2,
/*313976*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*313979*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*313981*/                OPC_MoveParent,
/*313982*/                OPC_CheckType, MVT::v4i32,
/*313984*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313986*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*313989*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrrkz), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                          // Dst: (VEXTRACTI32x4Zrrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*313998*/              0, /*End of Scope*/
/*313999*/            /*Scope*/ 42, /*->314042*/
/*314000*/              OPC_MoveChild0,
/*314001*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*314004*/              OPC_RecordChild0, // #1 = $src1
/*314005*/              OPC_RecordChild1, // #2 = $src2
/*314006*/              OPC_RecordChild2, // #3 = $src3
/*314007*/              OPC_MoveChild2,
/*314008*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314011*/              OPC_MoveParent,
/*314012*/              OPC_CheckType, MVT::v2i64,
/*314014*/              OPC_MoveParent,
/*314015*/              OPC_MoveParent,
/*314016*/              OPC_MoveChild2,
/*314017*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314020*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314022*/              OPC_MoveParent,
/*314023*/              OPC_CheckType, MVT::v4i32,
/*314025*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*314027*/              OPC_EmitConvertToTarget, 3,
/*314029*/              OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*314032*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rrikz), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                        // Dst: (VALIGNDZ128rrikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*314042*/            0, /*End of Scope*/
/*314043*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSRLI),// ->314083
/*314046*/            OPC_RecordChild0, // #1 = $src1
/*314047*/            OPC_RecordChild1, // #2 = $src2
/*314048*/            OPC_MoveChild1,
/*314049*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314052*/            OPC_MoveParent,
/*314053*/            OPC_MoveParent,
/*314054*/            OPC_MoveChild2,
/*314055*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314058*/            OPC_MoveChild0,
/*314059*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314062*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314064*/            OPC_CheckType, MVT::v8i32,
/*314066*/            OPC_MoveParent,
/*314067*/            OPC_MoveParent,
/*314068*/            OPC_CheckType, MVT::v4i64,
/*314070*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314072*/            OPC_EmitConvertToTarget, 2,
/*314074*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256rikz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSRLQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*314083*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSHLI),// ->314123
/*314086*/            OPC_RecordChild0, // #1 = $src1
/*314087*/            OPC_RecordChild1, // #2 = $src2
/*314088*/            OPC_MoveChild1,
/*314089*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314092*/            OPC_MoveParent,
/*314093*/            OPC_MoveParent,
/*314094*/            OPC_MoveChild2,
/*314095*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314098*/            OPC_MoveChild0,
/*314099*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314102*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314104*/            OPC_CheckType, MVT::v8i32,
/*314106*/            OPC_MoveParent,
/*314107*/            OPC_MoveParent,
/*314108*/            OPC_CheckType, MVT::v4i64,
/*314110*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314112*/            OPC_EmitConvertToTarget, 2,
/*314114*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256rikz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSLLQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*314123*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSRAI),// ->314163
/*314126*/            OPC_RecordChild0, // #1 = $src1
/*314127*/            OPC_RecordChild1, // #2 = $src2
/*314128*/            OPC_MoveChild1,
/*314129*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314132*/            OPC_MoveParent,
/*314133*/            OPC_MoveParent,
/*314134*/            OPC_MoveChild2,
/*314135*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314138*/            OPC_MoveChild0,
/*314139*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314142*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314144*/            OPC_CheckType, MVT::v8i32,
/*314146*/            OPC_MoveParent,
/*314147*/            OPC_MoveParent,
/*314148*/            OPC_CheckType, MVT::v4i64,
/*314150*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314152*/            OPC_EmitConvertToTarget, 2,
/*314154*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256rikz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSRAQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*314163*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VROTRI),// ->314203
/*314166*/            OPC_RecordChild0, // #1 = $src1
/*314167*/            OPC_RecordChild1, // #2 = $src2
/*314168*/            OPC_MoveChild1,
/*314169*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314172*/            OPC_MoveParent,
/*314173*/            OPC_MoveParent,
/*314174*/            OPC_MoveChild2,
/*314175*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314178*/            OPC_MoveChild0,
/*314179*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314182*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314184*/            OPC_CheckType, MVT::v8i32,
/*314186*/            OPC_MoveParent,
/*314187*/            OPC_MoveParent,
/*314188*/            OPC_CheckType, MVT::v4i64,
/*314190*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314192*/            OPC_EmitConvertToTarget, 2,
/*314194*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256rikz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPRORQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*314203*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VROTLI),// ->314243
/*314206*/            OPC_RecordChild0, // #1 = $src1
/*314207*/            OPC_RecordChild1, // #2 = $src2
/*314208*/            OPC_MoveChild1,
/*314209*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314212*/            OPC_MoveParent,
/*314213*/            OPC_MoveParent,
/*314214*/            OPC_MoveChild2,
/*314215*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314218*/            OPC_MoveChild0,
/*314219*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314222*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314224*/            OPC_CheckType, MVT::v8i32,
/*314226*/            OPC_MoveParent,
/*314227*/            OPC_MoveParent,
/*314228*/            OPC_CheckType, MVT::v4i64,
/*314230*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314232*/            OPC_EmitConvertToTarget, 2,
/*314234*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256rikz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPROLQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*314243*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VPERMI),// ->314283
/*314246*/            OPC_RecordChild0, // #1 = $src1
/*314247*/            OPC_RecordChild1, // #2 = $src2
/*314248*/            OPC_MoveChild1,
/*314249*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314252*/            OPC_MoveParent,
/*314253*/            OPC_MoveParent,
/*314254*/            OPC_MoveChild2,
/*314255*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314258*/            OPC_MoveChild0,
/*314259*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314262*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314264*/            OPC_CheckType, MVT::v8i32,
/*314266*/            OPC_MoveParent,
/*314267*/            OPC_MoveParent,
/*314268*/            OPC_CheckType, MVT::v4i64,
/*314270*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314272*/            OPC_EmitConvertToTarget, 2,
/*314274*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rikz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPERMQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*314283*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::SHUF128),// ->314325
/*314286*/            OPC_RecordChild0, // #1 = $src1
/*314287*/            OPC_RecordChild1, // #2 = $src2
/*314288*/            OPC_RecordChild2, // #3 = $src3
/*314289*/            OPC_MoveChild2,
/*314290*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314293*/            OPC_MoveParent,
/*314294*/            OPC_MoveParent,
/*314295*/            OPC_MoveChild2,
/*314296*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314299*/            OPC_MoveChild0,
/*314300*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314303*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314305*/            OPC_CheckType, MVT::v8i32,
/*314307*/            OPC_MoveParent,
/*314308*/            OPC_MoveParent,
/*314309*/            OPC_CheckType, MVT::v4i64,
/*314311*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314313*/            OPC_EmitConvertToTarget, 3,
/*314315*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rrikz), 0,
                          MVT::v4i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSHUFI64X2Z256rrikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*314325*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VALIGN),// ->314367
/*314328*/            OPC_RecordChild0, // #1 = $src1
/*314329*/            OPC_RecordChild1, // #2 = $src2
/*314330*/            OPC_RecordChild2, // #3 = $src3
/*314331*/            OPC_MoveChild2,
/*314332*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314335*/            OPC_MoveParent,
/*314336*/            OPC_MoveParent,
/*314337*/            OPC_MoveChild2,
/*314338*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314341*/            OPC_MoveChild0,
/*314342*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314345*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314347*/            OPC_CheckType, MVT::v8i32,
/*314349*/            OPC_MoveParent,
/*314350*/            OPC_MoveParent,
/*314351*/            OPC_CheckType, MVT::v4i64,
/*314353*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314355*/            OPC_EmitConvertToTarget, 3,
/*314357*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rrikz), 0,
                          MVT::v4i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VALIGNQZ256rrikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*314367*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VPTERNLOG),// ->314411
/*314370*/            OPC_RecordChild0, // #1 = $src1
/*314371*/            OPC_RecordChild1, // #2 = $src2
/*314372*/            OPC_RecordChild2, // #3 = $src3
/*314373*/            OPC_RecordChild3, // #4 = $src4
/*314374*/            OPC_MoveChild3,
/*314375*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314378*/            OPC_MoveParent,
/*314379*/            OPC_MoveParent,
/*314380*/            OPC_MoveChild2,
/*314381*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314384*/            OPC_MoveChild0,
/*314385*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314388*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314390*/            OPC_CheckType, MVT::v8i32,
/*314392*/            OPC_MoveParent,
/*314393*/            OPC_MoveParent,
/*314394*/            OPC_CheckType, MVT::v4i64,
/*314396*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314398*/            OPC_EmitConvertToTarget, 4,
/*314400*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rrikz), 0,
                          MVT::v4i64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPTERNLOGQZ256rrikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*314411*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSHLD),// ->314453
/*314414*/            OPC_RecordChild0, // #1 = $src1
/*314415*/            OPC_RecordChild1, // #2 = $src2
/*314416*/            OPC_RecordChild2, // #3 = $src3
/*314417*/            OPC_MoveChild2,
/*314418*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314421*/            OPC_MoveParent,
/*314422*/            OPC_MoveParent,
/*314423*/            OPC_MoveChild2,
/*314424*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314427*/            OPC_MoveChild0,
/*314428*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314431*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314433*/            OPC_CheckType, MVT::v8i32,
/*314435*/            OPC_MoveParent,
/*314436*/            OPC_MoveParent,
/*314437*/            OPC_CheckType, MVT::v4i64,
/*314439*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*314441*/            OPC_EmitConvertToTarget, 3,
/*314443*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rrikz), 0,
                          MVT::v4i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSHLDQZ256rrikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*314453*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSHRD),// ->314495
/*314456*/            OPC_RecordChild0, // #1 = $src1
/*314457*/            OPC_RecordChild1, // #2 = $src2
/*314458*/            OPC_RecordChild2, // #3 = $src3
/*314459*/            OPC_MoveChild2,
/*314460*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314463*/            OPC_MoveParent,
/*314464*/            OPC_MoveParent,
/*314465*/            OPC_MoveChild2,
/*314466*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314469*/            OPC_MoveChild0,
/*314470*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314473*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314475*/            OPC_CheckType, MVT::v8i32,
/*314477*/            OPC_MoveParent,
/*314478*/            OPC_MoveParent,
/*314479*/            OPC_CheckType, MVT::v4i64,
/*314481*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*314483*/            OPC_EmitConvertToTarget, 3,
/*314485*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rrikz), 0,
                          MVT::v4i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSHRDQZ256rrikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*314495*/          /*SwitchOpcode*/ 79, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->314577
/*314498*/            OPC_RecordChild0, // #1 = $src
/*314499*/            OPC_Scope, 37, /*->314538*/ // 2 children in Scope
/*314501*/              OPC_CheckChild0Type, MVT::v8i32,
/*314503*/              OPC_CheckChild1Integer, 0, 
/*314505*/              OPC_CheckChild1Type, MVT::iPTR,
/*314507*/              OPC_MoveParent,
/*314508*/              OPC_MoveChild2,
/*314509*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314512*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314514*/              OPC_MoveParent,
/*314515*/              OPC_CheckType, MVT::v4i32,
/*314517*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*314519*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*314522*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*314530*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 15
                        // Dst: (VMOVDQA32Z128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }))
/*314538*/            /*Scope*/ 37, /*->314576*/
/*314539*/              OPC_CheckChild0Type, MVT::v16i32,
/*314541*/              OPC_CheckChild1Integer, 0, 
/*314543*/              OPC_CheckChild1Type, MVT::iPTR,
/*314545*/              OPC_MoveParent,
/*314546*/              OPC_MoveChild2,
/*314547*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314550*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314552*/              OPC_MoveParent,
/*314553*/              OPC_CheckType, MVT::v4i32,
/*314555*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*314557*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*314560*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*314568*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] }), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 15
                        // Dst: (VMOVDQA32Z128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, sub_xmm:{ *:[i32] }))
/*314576*/            0, /*End of Scope*/
/*314577*/          0, // EndSwitchOpcode
/*314578*/        0, /*End of Scope*/
/*314579*/      /*Scope*/ 117|128,6/*885*/, /*->315466*/
/*314581*/        OPC_CheckChild0Type, MVT::v16i1,
/*314583*/        OPC_MoveChild1,
/*314584*/        OPC_SwitchOpcode /*15 cases */, 68|128,2/*324*/, TARGET_VAL(ISD::BITCAST),// ->314913
/*314589*/          OPC_Scope, 109|128,1/*237*/, /*->314829*/ // 2 children in Scope
/*314592*/            OPC_RecordChild0, // #1 = $ins
/*314593*/            OPC_MoveChild0,
/*314594*/            OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*314597*/            OPC_RecordChild0, // #2 = $src1
/*314598*/            OPC_RecordChild1, // #3 = $src2
/*314599*/            OPC_Scope, 37, /*->314638*/ // 6 children in Scope
/*314601*/              OPC_CheckChild1Type, MVT::v2i64,
/*314603*/              OPC_MoveChild2,
/*314604*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314607*/              OPC_CheckType, MVT::iPTR,
/*314609*/              OPC_MoveParent,
/*314610*/              OPC_CheckType, MVT::v8i64,
/*314612*/              OPC_MoveParent,
/*314613*/              OPC_MoveParent,
/*314614*/              OPC_MoveChild2,
/*314615*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314618*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314620*/              OPC_MoveParent,
/*314621*/              OPC_CheckType, MVT::v16i32,
/*314623*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314625*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*314628*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrrkz), 0,
                            MVT::v16i32, 4/*#Ops*/, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                        // Dst: (VINSERTI32x4Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*314638*/            /*Scope*/ 37, /*->314676*/
/*314639*/              OPC_CheckChild1Type, MVT::v8i16,
/*314641*/              OPC_MoveChild2,
/*314642*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314645*/              OPC_CheckType, MVT::iPTR,
/*314647*/              OPC_MoveParent,
/*314648*/              OPC_CheckType, MVT::v32i16,
/*314650*/              OPC_MoveParent,
/*314651*/              OPC_MoveParent,
/*314652*/              OPC_MoveChild2,
/*314653*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314656*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314658*/              OPC_MoveParent,
/*314659*/              OPC_CheckType, MVT::v16i32,
/*314661*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314663*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*314666*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrrkz), 0,
                            MVT::v16i32, 4/*#Ops*/, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                        // Dst: (VINSERTI32x4Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*314676*/            /*Scope*/ 37, /*->314714*/
/*314677*/              OPC_CheckChild1Type, MVT::v16i8,
/*314679*/              OPC_MoveChild2,
/*314680*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314683*/              OPC_CheckType, MVT::iPTR,
/*314685*/              OPC_MoveParent,
/*314686*/              OPC_CheckType, MVT::v64i8,
/*314688*/              OPC_MoveParent,
/*314689*/              OPC_MoveParent,
/*314690*/              OPC_MoveChild2,
/*314691*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314694*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314696*/              OPC_MoveParent,
/*314697*/              OPC_CheckType, MVT::v16i32,
/*314699*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314701*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*314704*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrrkz), 0,
                            MVT::v16i32, 4/*#Ops*/, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                        // Dst: (VINSERTI32x4Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*314714*/            /*Scope*/ 37, /*->314752*/
/*314715*/              OPC_CheckChild1Type, MVT::v4i64,
/*314717*/              OPC_MoveChild2,
/*314718*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314721*/              OPC_CheckType, MVT::iPTR,
/*314723*/              OPC_MoveParent,
/*314724*/              OPC_CheckType, MVT::v8i64,
/*314726*/              OPC_MoveParent,
/*314727*/              OPC_MoveParent,
/*314728*/              OPC_MoveChild2,
/*314729*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314732*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314734*/              OPC_MoveParent,
/*314735*/              OPC_CheckType, MVT::v16i32,
/*314737*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*314739*/              OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*314742*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrrkz), 0,
                            MVT::v16i32, 4/*#Ops*/, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                        // Dst: (VINSERTI32x8Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*314752*/            /*Scope*/ 37, /*->314790*/
/*314753*/              OPC_CheckChild1Type, MVT::v16i16,
/*314755*/              OPC_MoveChild2,
/*314756*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314759*/              OPC_CheckType, MVT::iPTR,
/*314761*/              OPC_MoveParent,
/*314762*/              OPC_CheckType, MVT::v32i16,
/*314764*/              OPC_MoveParent,
/*314765*/              OPC_MoveParent,
/*314766*/              OPC_MoveChild2,
/*314767*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314770*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314772*/              OPC_MoveParent,
/*314773*/              OPC_CheckType, MVT::v16i32,
/*314775*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*314777*/              OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*314780*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrrkz), 0,
                            MVT::v16i32, 4/*#Ops*/, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                        // Dst: (VINSERTI32x8Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*314790*/            /*Scope*/ 37, /*->314828*/
/*314791*/              OPC_CheckChild1Type, MVT::v32i8,
/*314793*/              OPC_MoveChild2,
/*314794*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314797*/              OPC_CheckType, MVT::iPTR,
/*314799*/              OPC_MoveParent,
/*314800*/              OPC_CheckType, MVT::v64i8,
/*314802*/              OPC_MoveParent,
/*314803*/              OPC_MoveParent,
/*314804*/              OPC_MoveChild2,
/*314805*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314808*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314810*/              OPC_MoveParent,
/*314811*/              OPC_CheckType, MVT::v16i32,
/*314813*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*314815*/              OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*314818*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrrkz), 0,
                            MVT::v16i32, 4/*#Ops*/, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                        // Dst: (VINSERTI32x8Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*314828*/            0, /*End of Scope*/
/*314829*/          /*Scope*/ 82, /*->314912*/
/*314830*/            OPC_MoveChild0,
/*314831*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(X86ISD::SHUF128),// ->314870
/*314835*/              OPC_RecordChild0, // #1 = $src1
/*314836*/              OPC_RecordChild1, // #2 = $src2
/*314837*/              OPC_RecordChild2, // #3 = $src3
/*314838*/              OPC_MoveChild2,
/*314839*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314842*/              OPC_MoveParent,
/*314843*/              OPC_CheckType, MVT::v8i64,
/*314845*/              OPC_MoveParent,
/*314846*/              OPC_MoveParent,
/*314847*/              OPC_MoveChild2,
/*314848*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314851*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314853*/              OPC_MoveParent,
/*314854*/              OPC_CheckType, MVT::v16i32,
/*314856*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314858*/              OPC_EmitConvertToTarget, 3,
/*314860*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrrikz), 0,
                            MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                        // Dst: (VSHUFI32X4Zrrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*314870*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VALIGN),// ->314911
/*314873*/              OPC_RecordChild0, // #1 = $src1
/*314874*/              OPC_RecordChild1, // #2 = $src2
/*314875*/              OPC_RecordChild2, // #3 = $src3
/*314876*/              OPC_MoveChild2,
/*314877*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314880*/              OPC_MoveParent,
/*314881*/              OPC_CheckType, MVT::v8i64,
/*314883*/              OPC_MoveParent,
/*314884*/              OPC_MoveParent,
/*314885*/              OPC_MoveChild2,
/*314886*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314889*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314891*/              OPC_MoveParent,
/*314892*/              OPC_CheckType, MVT::v16i32,
/*314894*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314896*/              OPC_EmitConvertToTarget, 3,
/*314898*/              OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*314901*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrrikz), 0,
                            MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 16
                        // Dst: (VALIGNDZrrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*314911*/            0, // EndSwitchOpcode
/*314912*/          0, /*End of Scope*/
/*314913*/        /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSRLI),// ->314953
/*314916*/          OPC_RecordChild0, // #1 = $src1
/*314917*/          OPC_RecordChild1, // #2 = $src2
/*314918*/          OPC_MoveChild1,
/*314919*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314922*/          OPC_MoveParent,
/*314923*/          OPC_MoveParent,
/*314924*/          OPC_MoveChild2,
/*314925*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314928*/          OPC_MoveChild0,
/*314929*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314932*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314934*/          OPC_CheckType, MVT::v8i32,
/*314936*/          OPC_MoveParent,
/*314937*/          OPC_MoveParent,
/*314938*/          OPC_CheckType, MVT::v16i16,
/*314940*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*314942*/          OPC_EmitConvertToTarget, 2,
/*314944*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256rikz), 0,
                        MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSRLWZ256rikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*314953*/        /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSHLI),// ->314993
/*314956*/          OPC_RecordChild0, // #1 = $src1
/*314957*/          OPC_RecordChild1, // #2 = $src2
/*314958*/          OPC_MoveChild1,
/*314959*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314962*/          OPC_MoveParent,
/*314963*/          OPC_MoveParent,
/*314964*/          OPC_MoveChild2,
/*314965*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*314968*/          OPC_MoveChild0,
/*314969*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*314972*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*314974*/          OPC_CheckType, MVT::v8i32,
/*314976*/          OPC_MoveParent,
/*314977*/          OPC_MoveParent,
/*314978*/          OPC_CheckType, MVT::v16i16,
/*314980*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*314982*/          OPC_EmitConvertToTarget, 2,
/*314984*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256rikz), 0,
                        MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSLLWZ256rikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*314993*/        /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSRAI),// ->315033
/*314996*/          OPC_RecordChild0, // #1 = $src1
/*314997*/          OPC_RecordChild1, // #2 = $src2
/*314998*/          OPC_MoveChild1,
/*314999*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315002*/          OPC_MoveParent,
/*315003*/          OPC_MoveParent,
/*315004*/          OPC_MoveChild2,
/*315005*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315008*/          OPC_MoveChild0,
/*315009*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315012*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315014*/          OPC_CheckType, MVT::v8i32,
/*315016*/          OPC_MoveParent,
/*315017*/          OPC_MoveParent,
/*315018*/          OPC_CheckType, MVT::v16i16,
/*315020*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*315022*/          OPC_EmitConvertToTarget, 2,
/*315024*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256rikz), 0,
                        MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSRAWZ256rikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*315033*/        /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::PSHUFHW),// ->315073
/*315036*/          OPC_RecordChild0, // #1 = $src1
/*315037*/          OPC_RecordChild1, // #2 = $src2
/*315038*/          OPC_MoveChild1,
/*315039*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315042*/          OPC_MoveParent,
/*315043*/          OPC_MoveParent,
/*315044*/          OPC_MoveChild2,
/*315045*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315048*/          OPC_MoveChild0,
/*315049*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315052*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315054*/          OPC_CheckType, MVT::v8i32,
/*315056*/          OPC_MoveParent,
/*315057*/          OPC_MoveParent,
/*315058*/          OPC_CheckType, MVT::v16i16,
/*315060*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*315062*/          OPC_EmitConvertToTarget, 2,
/*315064*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256rikz), 0,
                        MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufhw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSHUFHWZ256rikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*315073*/        /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::PSHUFLW),// ->315113
/*315076*/          OPC_RecordChild0, // #1 = $src1
/*315077*/          OPC_RecordChild1, // #2 = $src2
/*315078*/          OPC_MoveChild1,
/*315079*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315082*/          OPC_MoveParent,
/*315083*/          OPC_MoveParent,
/*315084*/          OPC_MoveChild2,
/*315085*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315088*/          OPC_MoveChild0,
/*315089*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315092*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315094*/          OPC_CheckType, MVT::v8i32,
/*315096*/          OPC_MoveParent,
/*315097*/          OPC_MoveParent,
/*315098*/          OPC_CheckType, MVT::v16i16,
/*315100*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*315102*/          OPC_EmitConvertToTarget, 2,
/*315104*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256rikz), 0,
                        MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShuflw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSHUFLWZ256rikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*315113*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTPS2PH),// ->315155
/*315116*/          OPC_RecordChild0, // #1 = $src1
/*315117*/          OPC_CheckChild0Type, MVT::v16f32,
/*315119*/          OPC_RecordChild1, // #2 = $src2
/*315120*/          OPC_MoveChild1,
/*315121*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315124*/          OPC_MoveParent,
/*315125*/          OPC_MoveParent,
/*315126*/          OPC_MoveChild2,
/*315127*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315130*/          OPC_MoveChild0,
/*315131*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315134*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315136*/          OPC_CheckType, MVT::v8i32,
/*315138*/          OPC_MoveParent,
/*315139*/          OPC_MoveParent,
/*315140*/          OPC_CheckType, MVT::v16i16,
/*315142*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315144*/          OPC_EmitConvertToTarget, 2,
/*315146*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZrrkz), 0,
                        MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtps2ph:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VCVTPS2PHZrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*315155*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::PALIGNR),// ->315197
/*315158*/          OPC_RecordChild0, // #1 = $src1
/*315159*/          OPC_RecordChild1, // #2 = $src2
/*315160*/          OPC_RecordChild2, // #3 = $src3
/*315161*/          OPC_MoveChild2,
/*315162*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315165*/          OPC_MoveParent,
/*315166*/          OPC_MoveParent,
/*315167*/          OPC_MoveChild2,
/*315168*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315171*/          OPC_MoveChild0,
/*315172*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315175*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315177*/          OPC_CheckType, MVT::v4i32,
/*315179*/          OPC_MoveParent,
/*315180*/          OPC_MoveParent,
/*315181*/          OPC_CheckType, MVT::v16i8,
/*315183*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*315185*/          OPC_EmitConvertToTarget, 3,
/*315187*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrikz), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPALIGNRZ128rrikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*315197*/        /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::DBPSADBW),// ->315241
/*315200*/          OPC_RecordChild0, // #1 = $src1
/*315201*/          OPC_RecordChild1, // #2 = $src2
/*315202*/          OPC_RecordChild2, // #3 = $src3
/*315203*/          OPC_MoveChild2,
/*315204*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315207*/          OPC_CheckType, MVT::i8,
/*315209*/          OPC_MoveParent,
/*315210*/          OPC_MoveParent,
/*315211*/          OPC_MoveChild2,
/*315212*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315215*/          OPC_MoveChild0,
/*315216*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315219*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315221*/          OPC_CheckType, MVT::v8i32,
/*315223*/          OPC_MoveParent,
/*315224*/          OPC_MoveParent,
/*315225*/          OPC_CheckType, MVT::v16i16,
/*315227*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*315229*/          OPC_EmitConvertToTarget, 3,
/*315231*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rrikz), 0,
                        MVT::v16i16, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VDBPSADBWZ256rrikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*315241*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSHLD),// ->315283
/*315244*/          OPC_RecordChild0, // #1 = $src1
/*315245*/          OPC_RecordChild1, // #2 = $src2
/*315246*/          OPC_RecordChild2, // #3 = $src3
/*315247*/          OPC_MoveChild2,
/*315248*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315251*/          OPC_MoveParent,
/*315252*/          OPC_MoveParent,
/*315253*/          OPC_MoveChild2,
/*315254*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315257*/          OPC_MoveChild0,
/*315258*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315261*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315263*/          OPC_CheckType, MVT::v8i32,
/*315265*/          OPC_MoveParent,
/*315266*/          OPC_MoveParent,
/*315267*/          OPC_CheckType, MVT::v16i16,
/*315269*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*315271*/          OPC_EmitConvertToTarget, 3,
/*315273*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rrikz), 0,
                        MVT::v16i16, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSHLDWZ256rrikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*315283*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSHRD),// ->315325
/*315286*/          OPC_RecordChild0, // #1 = $src1
/*315287*/          OPC_RecordChild1, // #2 = $src2
/*315288*/          OPC_RecordChild2, // #3 = $src3
/*315289*/          OPC_MoveChild2,
/*315290*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315293*/          OPC_MoveParent,
/*315294*/          OPC_MoveParent,
/*315295*/          OPC_MoveChild2,
/*315296*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315299*/          OPC_MoveChild0,
/*315300*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315303*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315305*/          OPC_CheckType, MVT::v8i32,
/*315307*/          OPC_MoveParent,
/*315308*/          OPC_MoveParent,
/*315309*/          OPC_CheckType, MVT::v16i16,
/*315311*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*315313*/          OPC_EmitConvertToTarget, 3,
/*315315*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rrikz), 0,
                        MVT::v16i16, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSHRDWZ256rrikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*315325*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->315367
/*315328*/          OPC_RecordChild0, // #1 = $src1
/*315329*/          OPC_RecordChild1, // #2 = $src2
/*315330*/          OPC_RecordChild2, // #3 = $src3
/*315331*/          OPC_MoveChild2,
/*315332*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315335*/          OPC_MoveParent,
/*315336*/          OPC_MoveParent,
/*315337*/          OPC_MoveChild2,
/*315338*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315341*/          OPC_MoveChild0,
/*315342*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315345*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315347*/          OPC_CheckType, MVT::v4i32,
/*315349*/          OPC_MoveParent,
/*315350*/          OPC_MoveParent,
/*315351*/          OPC_CheckType, MVT::v16i8,
/*315353*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*315355*/          OPC_EmitConvertToTarget, 3,
/*315357*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rrikz), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VGF2P8AFFINEINVQBZ128rrikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*315367*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->315409
/*315370*/          OPC_RecordChild0, // #1 = $src1
/*315371*/          OPC_RecordChild1, // #2 = $src2
/*315372*/          OPC_RecordChild2, // #3 = $src3
/*315373*/          OPC_MoveChild2,
/*315374*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315377*/          OPC_MoveParent,
/*315378*/          OPC_MoveParent,
/*315379*/          OPC_MoveChild2,
/*315380*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315383*/          OPC_MoveChild0,
/*315384*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315387*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315389*/          OPC_CheckType, MVT::v4i32,
/*315391*/          OPC_MoveParent,
/*315392*/          OPC_MoveParent,
/*315393*/          OPC_CheckType, MVT::v16i8,
/*315395*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*315397*/          OPC_EmitConvertToTarget, 3,
/*315399*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rrikz), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VGF2P8AFFINEQBZ128rrikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*315409*/        /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::CVTTP2SI_RND),// ->315437
/*315412*/          OPC_RecordChild0, // #1 = $src
/*315413*/          OPC_CheckChild0Type, MVT::v16f32,
/*315415*/          OPC_CheckChild1Integer, 8, 
/*315417*/          OPC_MoveParent,
/*315418*/          OPC_MoveChild2,
/*315419*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315422*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315424*/          OPC_MoveParent,
/*315425*/          OPC_CheckType, MVT::v16i32,
/*315427*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315429*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrrbkz), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2siRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 15
                    // Dst: (VCVTTPS2DQZrrbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*315437*/        /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::CVTTP2UI_RND),// ->315465
/*315440*/          OPC_RecordChild0, // #1 = $src
/*315441*/          OPC_CheckChild0Type, MVT::v16f32,
/*315443*/          OPC_CheckChild1Integer, 8, 
/*315445*/          OPC_MoveParent,
/*315446*/          OPC_MoveChild2,
/*315447*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315450*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315452*/          OPC_MoveParent,
/*315453*/          OPC_CheckType, MVT::v16i32,
/*315455*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315457*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrrbkz), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2uiRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 15
                    // Dst: (VCVTTPS2UDQZrrbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*315465*/        0, // EndSwitchOpcode
/*315466*/      /*Scope*/ 86|128,3/*470*/, /*->315938*/
/*315468*/        OPC_CheckChild0Type, MVT::v2i1,
/*315470*/        OPC_Scope, 90, /*->315562*/ // 2 children in Scope
/*315472*/          OPC_RecordChild1, // #1 = $idx
/*315473*/          OPC_MoveChild1,
/*315474*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*315477*/          OPC_RecordChild0, // #2 = $src1
/*315478*/          OPC_Scope, 40, /*->315520*/ // 2 children in Scope
/*315480*/            OPC_CheckChild0Type, MVT::v4i64,
/*315482*/            OPC_MoveChild1,
/*315483*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315486*/            OPC_CheckType, MVT::iPTR,
/*315488*/            OPC_MoveParent,
/*315489*/            OPC_MoveParent,
/*315490*/            OPC_MoveChild2,
/*315491*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315494*/            OPC_MoveChild0,
/*315495*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315498*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315500*/            OPC_CheckType, MVT::v4i32,
/*315502*/            OPC_MoveParent,
/*315503*/            OPC_MoveParent,
/*315504*/            OPC_CheckType, MVT::v2i64,
/*315506*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*315508*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*315511*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Z256rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VEXTRACTI64x2Z256rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*315520*/          /*Scope*/ 40, /*->315561*/
/*315521*/            OPC_CheckChild0Type, MVT::v8i64,
/*315523*/            OPC_MoveChild1,
/*315524*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315527*/            OPC_CheckType, MVT::iPTR,
/*315529*/            OPC_MoveParent,
/*315530*/            OPC_MoveParent,
/*315531*/            OPC_MoveChild2,
/*315532*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315535*/            OPC_MoveChild0,
/*315536*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315539*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315541*/            OPC_CheckType, MVT::v4i32,
/*315543*/            OPC_MoveParent,
/*315544*/            OPC_MoveParent,
/*315545*/            OPC_CheckType, MVT::v2i64,
/*315547*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*315549*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*315552*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Zrrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VEXTRACTI64x2Zrrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*315561*/          0, /*End of Scope*/
/*315562*/        /*Scope*/ 117|128,2/*373*/, /*->315937*/
/*315564*/          OPC_MoveChild1,
/*315565*/          OPC_SwitchOpcode /*9 cases */, 37, TARGET_VAL(X86ISD::VSRLI),// ->315606
/*315569*/            OPC_RecordChild0, // #1 = $src1
/*315570*/            OPC_RecordChild1, // #2 = $src2
/*315571*/            OPC_MoveChild1,
/*315572*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315575*/            OPC_MoveParent,
/*315576*/            OPC_MoveParent,
/*315577*/            OPC_MoveChild2,
/*315578*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315581*/            OPC_MoveChild0,
/*315582*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315585*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315587*/            OPC_CheckType, MVT::v4i32,
/*315589*/            OPC_MoveParent,
/*315590*/            OPC_MoveParent,
/*315591*/            OPC_CheckType, MVT::v2i64,
/*315593*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315595*/            OPC_EmitConvertToTarget, 2,
/*315597*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128rikz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSRLQZ128rikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*315606*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSHLI),// ->315646
/*315609*/            OPC_RecordChild0, // #1 = $src1
/*315610*/            OPC_RecordChild1, // #2 = $src2
/*315611*/            OPC_MoveChild1,
/*315612*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315615*/            OPC_MoveParent,
/*315616*/            OPC_MoveParent,
/*315617*/            OPC_MoveChild2,
/*315618*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315621*/            OPC_MoveChild0,
/*315622*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315625*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315627*/            OPC_CheckType, MVT::v4i32,
/*315629*/            OPC_MoveParent,
/*315630*/            OPC_MoveParent,
/*315631*/            OPC_CheckType, MVT::v2i64,
/*315633*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315635*/            OPC_EmitConvertToTarget, 2,
/*315637*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128rikz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSLLQZ128rikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*315646*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSRAI),// ->315686
/*315649*/            OPC_RecordChild0, // #1 = $src1
/*315650*/            OPC_RecordChild1, // #2 = $src2
/*315651*/            OPC_MoveChild1,
/*315652*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315655*/            OPC_MoveParent,
/*315656*/            OPC_MoveParent,
/*315657*/            OPC_MoveChild2,
/*315658*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315661*/            OPC_MoveChild0,
/*315662*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315665*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315667*/            OPC_CheckType, MVT::v4i32,
/*315669*/            OPC_MoveParent,
/*315670*/            OPC_MoveParent,
/*315671*/            OPC_CheckType, MVT::v2i64,
/*315673*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315675*/            OPC_EmitConvertToTarget, 2,
/*315677*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128rikz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSRAQZ128rikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*315686*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VROTRI),// ->315726
/*315689*/            OPC_RecordChild0, // #1 = $src1
/*315690*/            OPC_RecordChild1, // #2 = $src2
/*315691*/            OPC_MoveChild1,
/*315692*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315695*/            OPC_MoveParent,
/*315696*/            OPC_MoveParent,
/*315697*/            OPC_MoveChild2,
/*315698*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315701*/            OPC_MoveChild0,
/*315702*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315705*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315707*/            OPC_CheckType, MVT::v4i32,
/*315709*/            OPC_MoveParent,
/*315710*/            OPC_MoveParent,
/*315711*/            OPC_CheckType, MVT::v2i64,
/*315713*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315715*/            OPC_EmitConvertToTarget, 2,
/*315717*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128rikz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPRORQZ128rikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*315726*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VROTLI),// ->315766
/*315729*/            OPC_RecordChild0, // #1 = $src1
/*315730*/            OPC_RecordChild1, // #2 = $src2
/*315731*/            OPC_MoveChild1,
/*315732*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315735*/            OPC_MoveParent,
/*315736*/            OPC_MoveParent,
/*315737*/            OPC_MoveChild2,
/*315738*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315741*/            OPC_MoveChild0,
/*315742*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315745*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315747*/            OPC_CheckType, MVT::v4i32,
/*315749*/            OPC_MoveParent,
/*315750*/            OPC_MoveParent,
/*315751*/            OPC_CheckType, MVT::v2i64,
/*315753*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315755*/            OPC_EmitConvertToTarget, 2,
/*315757*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128rikz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPROLQZ128rikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*315766*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VALIGN),// ->315808
/*315769*/            OPC_RecordChild0, // #1 = $src1
/*315770*/            OPC_RecordChild1, // #2 = $src2
/*315771*/            OPC_RecordChild2, // #3 = $src3
/*315772*/            OPC_MoveChild2,
/*315773*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315776*/            OPC_MoveParent,
/*315777*/            OPC_MoveParent,
/*315778*/            OPC_MoveChild2,
/*315779*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315782*/            OPC_MoveChild0,
/*315783*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315786*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315788*/            OPC_CheckType, MVT::v4i32,
/*315790*/            OPC_MoveParent,
/*315791*/            OPC_MoveParent,
/*315792*/            OPC_CheckType, MVT::v2i64,
/*315794*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315796*/            OPC_EmitConvertToTarget, 3,
/*315798*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rrikz), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VALIGNQZ128rrikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*315808*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VPTERNLOG),// ->315852
/*315811*/            OPC_RecordChild0, // #1 = $src1
/*315812*/            OPC_RecordChild1, // #2 = $src2
/*315813*/            OPC_RecordChild2, // #3 = $src3
/*315814*/            OPC_RecordChild3, // #4 = $src4
/*315815*/            OPC_MoveChild3,
/*315816*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315819*/            OPC_MoveParent,
/*315820*/            OPC_MoveParent,
/*315821*/            OPC_MoveChild2,
/*315822*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315825*/            OPC_MoveChild0,
/*315826*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315829*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315831*/            OPC_CheckType, MVT::v4i32,
/*315833*/            OPC_MoveParent,
/*315834*/            OPC_MoveParent,
/*315835*/            OPC_CheckType, MVT::v2i64,
/*315837*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315839*/            OPC_EmitConvertToTarget, 4,
/*315841*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rrikz), 0,
                          MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i8] }):$src4), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPTERNLOGQZ128rrikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*315852*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSHLD),// ->315894
/*315855*/            OPC_RecordChild0, // #1 = $src1
/*315856*/            OPC_RecordChild1, // #2 = $src2
/*315857*/            OPC_RecordChild2, // #3 = $src3
/*315858*/            OPC_MoveChild2,
/*315859*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315862*/            OPC_MoveParent,
/*315863*/            OPC_MoveParent,
/*315864*/            OPC_MoveChild2,
/*315865*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315868*/            OPC_MoveChild0,
/*315869*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315872*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315874*/            OPC_CheckType, MVT::v4i32,
/*315876*/            OPC_MoveParent,
/*315877*/            OPC_MoveParent,
/*315878*/            OPC_CheckType, MVT::v2i64,
/*315880*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*315882*/            OPC_EmitConvertToTarget, 3,
/*315884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rrikz), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSHLDQZ128rrikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*315894*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSHRD),// ->315936
/*315897*/            OPC_RecordChild0, // #1 = $src1
/*315898*/            OPC_RecordChild1, // #2 = $src2
/*315899*/            OPC_RecordChild2, // #3 = $src3
/*315900*/            OPC_MoveChild2,
/*315901*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315904*/            OPC_MoveParent,
/*315905*/            OPC_MoveParent,
/*315906*/            OPC_MoveChild2,
/*315907*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315910*/            OPC_MoveChild0,
/*315911*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315914*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315916*/            OPC_CheckType, MVT::v4i32,
/*315918*/            OPC_MoveParent,
/*315919*/            OPC_MoveParent,
/*315920*/            OPC_CheckType, MVT::v2i64,
/*315922*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*315924*/            OPC_EmitConvertToTarget, 3,
/*315926*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rrikz), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPSHRDQZ128rrikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*315936*/          0, // EndSwitchOpcode
/*315937*/        0, /*End of Scope*/
/*315938*/      /*Scope*/ 75|128,3/*459*/, /*->316399*/
/*315940*/        OPC_CheckChild0Type, MVT::v32i1,
/*315942*/        OPC_MoveChild1,
/*315943*/        OPC_SwitchOpcode /*11 cases */, 37, TARGET_VAL(X86ISD::VSRLI),// ->315984
/*315947*/          OPC_RecordChild0, // #1 = $src1
/*315948*/          OPC_RecordChild1, // #2 = $src2
/*315949*/          OPC_MoveChild1,
/*315950*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315953*/          OPC_MoveParent,
/*315954*/          OPC_MoveParent,
/*315955*/          OPC_MoveChild2,
/*315956*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315959*/          OPC_MoveChild0,
/*315960*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*315963*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*315965*/          OPC_CheckType, MVT::v16i32,
/*315967*/          OPC_MoveParent,
/*315968*/          OPC_MoveParent,
/*315969*/          OPC_CheckType, MVT::v32i16,
/*315971*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*315973*/          OPC_EmitConvertToTarget, 2,
/*315975*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZrikz), 0,
                        MVT::v32i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSRLWZrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*315984*/        /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSHLI),// ->316024
/*315987*/          OPC_RecordChild0, // #1 = $src1
/*315988*/          OPC_RecordChild1, // #2 = $src2
/*315989*/          OPC_MoveChild1,
/*315990*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315993*/          OPC_MoveParent,
/*315994*/          OPC_MoveParent,
/*315995*/          OPC_MoveChild2,
/*315996*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315999*/          OPC_MoveChild0,
/*316000*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316003*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316005*/          OPC_CheckType, MVT::v16i32,
/*316007*/          OPC_MoveParent,
/*316008*/          OPC_MoveParent,
/*316009*/          OPC_CheckType, MVT::v32i16,
/*316011*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*316013*/          OPC_EmitConvertToTarget, 2,
/*316015*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZrikz), 0,
                        MVT::v32i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSLLWZrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*316024*/        /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSRAI),// ->316064
/*316027*/          OPC_RecordChild0, // #1 = $src1
/*316028*/          OPC_RecordChild1, // #2 = $src2
/*316029*/          OPC_MoveChild1,
/*316030*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316033*/          OPC_MoveParent,
/*316034*/          OPC_MoveParent,
/*316035*/          OPC_MoveChild2,
/*316036*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316039*/          OPC_MoveChild0,
/*316040*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316043*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316045*/          OPC_CheckType, MVT::v16i32,
/*316047*/          OPC_MoveParent,
/*316048*/          OPC_MoveParent,
/*316049*/          OPC_CheckType, MVT::v32i16,
/*316051*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*316053*/          OPC_EmitConvertToTarget, 2,
/*316055*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZrikz), 0,
                        MVT::v32i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrai:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSRAWZrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*316064*/        /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::PSHUFHW),// ->316104
/*316067*/          OPC_RecordChild0, // #1 = $src1
/*316068*/          OPC_RecordChild1, // #2 = $src2
/*316069*/          OPC_MoveChild1,
/*316070*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316073*/          OPC_MoveParent,
/*316074*/          OPC_MoveParent,
/*316075*/          OPC_MoveChild2,
/*316076*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316079*/          OPC_MoveChild0,
/*316080*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316083*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316085*/          OPC_CheckType, MVT::v16i32,
/*316087*/          OPC_MoveParent,
/*316088*/          OPC_MoveParent,
/*316089*/          OPC_CheckType, MVT::v32i16,
/*316091*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*316093*/          OPC_EmitConvertToTarget, 2,
/*316095*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZrikz), 0,
                        MVT::v32i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShufhw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSHUFHWZrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*316104*/        /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::PSHUFLW),// ->316144
/*316107*/          OPC_RecordChild0, // #1 = $src1
/*316108*/          OPC_RecordChild1, // #2 = $src2
/*316109*/          OPC_MoveChild1,
/*316110*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316113*/          OPC_MoveParent,
/*316114*/          OPC_MoveParent,
/*316115*/          OPC_MoveChild2,
/*316116*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316119*/          OPC_MoveChild0,
/*316120*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316123*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316125*/          OPC_CheckType, MVT::v16i32,
/*316127*/          OPC_MoveParent,
/*316128*/          OPC_MoveParent,
/*316129*/          OPC_CheckType, MVT::v32i16,
/*316131*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*316133*/          OPC_EmitConvertToTarget, 2,
/*316135*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZrikz), 0,
                        MVT::v32i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShuflw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSHUFLWZrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*316144*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::PALIGNR),// ->316186
/*316147*/          OPC_RecordChild0, // #1 = $src1
/*316148*/          OPC_RecordChild1, // #2 = $src2
/*316149*/          OPC_RecordChild2, // #3 = $src3
/*316150*/          OPC_MoveChild2,
/*316151*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316154*/          OPC_MoveParent,
/*316155*/          OPC_MoveParent,
/*316156*/          OPC_MoveChild2,
/*316157*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316160*/          OPC_MoveChild0,
/*316161*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316164*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316166*/          OPC_CheckType, MVT::v8i32,
/*316168*/          OPC_MoveParent,
/*316169*/          OPC_MoveParent,
/*316170*/          OPC_CheckType, MVT::v32i8,
/*316172*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*316174*/          OPC_EmitConvertToTarget, 3,
/*316176*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rrikz), 0,
                        MVT::v32i8, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPALIGNRZ256rrikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*316186*/        /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::DBPSADBW),// ->316230
/*316189*/          OPC_RecordChild0, // #1 = $src1
/*316190*/          OPC_RecordChild1, // #2 = $src2
/*316191*/          OPC_RecordChild2, // #3 = $src3
/*316192*/          OPC_MoveChild2,
/*316193*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316196*/          OPC_CheckType, MVT::i8,
/*316198*/          OPC_MoveParent,
/*316199*/          OPC_MoveParent,
/*316200*/          OPC_MoveChild2,
/*316201*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316204*/          OPC_MoveChild0,
/*316205*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316208*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316210*/          OPC_CheckType, MVT::v16i32,
/*316212*/          OPC_MoveParent,
/*316213*/          OPC_MoveParent,
/*316214*/          OPC_CheckType, MVT::v32i16,
/*316216*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*316218*/          OPC_EmitConvertToTarget, 3,
/*316220*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrrikz), 0,
                        MVT::v32i16, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VDBPSADBWZrrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*316230*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSHLD),// ->316272
/*316233*/          OPC_RecordChild0, // #1 = $src1
/*316234*/          OPC_RecordChild1, // #2 = $src2
/*316235*/          OPC_RecordChild2, // #3 = $src3
/*316236*/          OPC_MoveChild2,
/*316237*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316240*/          OPC_MoveParent,
/*316241*/          OPC_MoveParent,
/*316242*/          OPC_MoveChild2,
/*316243*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316246*/          OPC_MoveChild0,
/*316247*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316250*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316252*/          OPC_CheckType, MVT::v16i32,
/*316254*/          OPC_MoveParent,
/*316255*/          OPC_MoveParent,
/*316256*/          OPC_CheckType, MVT::v32i16,
/*316258*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*316260*/          OPC_EmitConvertToTarget, 3,
/*316262*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrrikz), 0,
                        MVT::v32i16, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSHLDWZrrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*316272*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSHRD),// ->316314
/*316275*/          OPC_RecordChild0, // #1 = $src1
/*316276*/          OPC_RecordChild1, // #2 = $src2
/*316277*/          OPC_RecordChild2, // #3 = $src3
/*316278*/          OPC_MoveChild2,
/*316279*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316282*/          OPC_MoveParent,
/*316283*/          OPC_MoveParent,
/*316284*/          OPC_MoveChild2,
/*316285*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316288*/          OPC_MoveChild0,
/*316289*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316292*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316294*/          OPC_CheckType, MVT::v16i32,
/*316296*/          OPC_MoveParent,
/*316297*/          OPC_MoveParent,
/*316298*/          OPC_CheckType, MVT::v32i16,
/*316300*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*316302*/          OPC_EmitConvertToTarget, 3,
/*316304*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrrikz), 0,
                        MVT::v32i16, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPSHRDWZrrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*316314*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->316356
/*316317*/          OPC_RecordChild0, // #1 = $src1
/*316318*/          OPC_RecordChild1, // #2 = $src2
/*316319*/          OPC_RecordChild2, // #3 = $src3
/*316320*/          OPC_MoveChild2,
/*316321*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316324*/          OPC_MoveParent,
/*316325*/          OPC_MoveParent,
/*316326*/          OPC_MoveChild2,
/*316327*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316330*/          OPC_MoveChild0,
/*316331*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316334*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316336*/          OPC_CheckType, MVT::v8i32,
/*316338*/          OPC_MoveParent,
/*316339*/          OPC_MoveParent,
/*316340*/          OPC_CheckType, MVT::v32i8,
/*316342*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*316344*/          OPC_EmitConvertToTarget, 3,
/*316346*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rrikz), 0,
                        MVT::v32i8, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VGF2P8AFFINEINVQBZ256rrikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*316356*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->316398
/*316359*/          OPC_RecordChild0, // #1 = $src1
/*316360*/          OPC_RecordChild1, // #2 = $src2
/*316361*/          OPC_RecordChild2, // #3 = $src3
/*316362*/          OPC_MoveChild2,
/*316363*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316366*/          OPC_MoveParent,
/*316367*/          OPC_MoveParent,
/*316368*/          OPC_MoveChild2,
/*316369*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316372*/          OPC_MoveChild0,
/*316373*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316376*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316378*/          OPC_CheckType, MVT::v8i32,
/*316380*/          OPC_MoveParent,
/*316381*/          OPC_MoveParent,
/*316382*/          OPC_CheckType, MVT::v32i8,
/*316384*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*316386*/          OPC_EmitConvertToTarget, 3,
/*316388*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rrikz), 0,
                        MVT::v32i8, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VGF2P8AFFINEQBZ256rrikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*316398*/        0, // EndSwitchOpcode
/*316399*/      /*Scope*/ 3|128,1/*131*/, /*->316532*/
/*316401*/        OPC_CheckChild0Type, MVT::v64i1,
/*316403*/        OPC_MoveChild1,
/*316404*/        OPC_SwitchOpcode /*3 cases */, 39, TARGET_VAL(X86ISD::PALIGNR),// ->316447
/*316408*/          OPC_RecordChild0, // #1 = $src1
/*316409*/          OPC_RecordChild1, // #2 = $src2
/*316410*/          OPC_RecordChild2, // #3 = $src3
/*316411*/          OPC_MoveChild2,
/*316412*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316415*/          OPC_MoveParent,
/*316416*/          OPC_MoveParent,
/*316417*/          OPC_MoveChild2,
/*316418*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316421*/          OPC_MoveChild0,
/*316422*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316425*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316427*/          OPC_CheckType, MVT::v16i32,
/*316429*/          OPC_MoveParent,
/*316430*/          OPC_MoveParent,
/*316431*/          OPC_CheckType, MVT::v64i8,
/*316433*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*316435*/          OPC_EmitConvertToTarget, 3,
/*316437*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrrikz), 0,
                        MVT::v64i8, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VPALIGNRZrrikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*316447*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->316489
/*316450*/          OPC_RecordChild0, // #1 = $src1
/*316451*/          OPC_RecordChild1, // #2 = $src2
/*316452*/          OPC_RecordChild2, // #3 = $src3
/*316453*/          OPC_MoveChild2,
/*316454*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316457*/          OPC_MoveParent,
/*316458*/          OPC_MoveParent,
/*316459*/          OPC_MoveChild2,
/*316460*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316463*/          OPC_MoveChild0,
/*316464*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316467*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316469*/          OPC_CheckType, MVT::v16i32,
/*316471*/          OPC_MoveParent,
/*316472*/          OPC_MoveParent,
/*316473*/          OPC_CheckType, MVT::v64i8,
/*316475*/          OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*316477*/          OPC_EmitConvertToTarget, 3,
/*316479*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrrikz), 0,
                        MVT::v64i8, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VGF2P8AFFINEINVQBZrrikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*316489*/        /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->316531
/*316492*/          OPC_RecordChild0, // #1 = $src1
/*316493*/          OPC_RecordChild1, // #2 = $src2
/*316494*/          OPC_RecordChild2, // #3 = $src3
/*316495*/          OPC_MoveChild2,
/*316496*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316499*/          OPC_MoveParent,
/*316500*/          OPC_MoveParent,
/*316501*/          OPC_MoveChild2,
/*316502*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*316505*/          OPC_MoveChild0,
/*316506*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316509*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316511*/          OPC_CheckType, MVT::v16i32,
/*316513*/          OPC_MoveParent,
/*316514*/          OPC_MoveParent,
/*316515*/          OPC_CheckType, MVT::v64i8,
/*316517*/          OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*316519*/          OPC_EmitConvertToTarget, 3,
/*316521*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrrikz), 0,
                        MVT::v64i8, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                    // Dst: (VGF2P8AFFINEQBZrrikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*316531*/        0, // EndSwitchOpcode
/*316532*/      0, /*End of Scope*/
/*316533*/    /*Scope*/ 66, /*->316600*/
/*316534*/      OPC_MoveChild0,
/*316535*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*316538*/      OPC_Scope, 29, /*->316569*/ // 2 children in Scope
/*316540*/        OPC_RecordChild0, // #0 = $mask
/*316541*/        OPC_MoveChild1,
/*316542*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316545*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*316547*/        OPC_MoveParent,
/*316548*/        OPC_CheckType, MVT::v16i1,
/*316550*/        OPC_MoveParent,
/*316551*/        OPC_MoveChild1,
/*316552*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316555*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316557*/        OPC_MoveParent,
/*316558*/        OPC_RecordChild2, // #1 = $src
/*316559*/        OPC_CheckType, MVT::v16i32,
/*316561*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (vselect:{ *:[v16i32] } (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, VR512:{ *:[v16i32] }:$src) - Complexity = 14
                  // Dst: (VMOVDQA32Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*316569*/      /*Scope*/ 29, /*->316599*/
/*316570*/        OPC_MoveChild0,
/*316571*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316574*/        OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*316576*/        OPC_MoveParent,
/*316577*/        OPC_RecordChild1, // #0 = $mask
/*316578*/        OPC_CheckType, MVT::v16i1,
/*316580*/        OPC_MoveParent,
/*316581*/        OPC_MoveChild1,
/*316582*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*316585*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*316587*/        OPC_MoveParent,
/*316588*/        OPC_RecordChild2, // #1 = $src
/*316589*/        OPC_CheckType, MVT::v16i32,
/*316591*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (vselect:{ *:[v16i32] } (xor:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>>, VK16:{ *:[v16i1] }:$mask), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, VR512:{ *:[v16i32] }:$src) - Complexity = 14
                  // Dst: (VMOVDQA32Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*316599*/      0, /*End of Scope*/
/*316600*/    /*Scope*/ 71|128,34|128,9/*151879*/, /*->468482*/
/*316603*/      OPC_RecordChild0, // #0 = $mask
/*316604*/      OPC_Scope, 116|128,44|128,1/*22132*/, /*->338740*/ // 12 children in Scope
/*316608*/        OPC_CheckChild0Type, MVT::v2i1,
/*316610*/        OPC_Scope, 23|128,17/*2199*/, /*->318812*/ // 10 children in Scope
/*316613*/          OPC_MoveChild1,
/*316614*/          OPC_SwitchOpcode /*44 cases */, 45|128,3/*429*/, TARGET_VAL(ISD::BITCAST),// ->317048
/*316619*/            OPC_Scope, 95|128,1/*223*/, /*->316845*/ // 2 children in Scope
/*316622*/              OPC_MoveChild0,
/*316623*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*316626*/              OPC_RecordChild0, // #1 = $src
/*316627*/              OPC_SwitchType /*3 cases */, 70, MVT::v4i32,// ->316700
/*316630*/                OPC_Scope, 33, /*->316665*/ // 2 children in Scope
/*316632*/                  OPC_CheckChild0Type, MVT::v8i32,
/*316634*/                  OPC_CheckChild1Integer, 0, 
/*316636*/                  OPC_CheckChild1Type, MVT::iPTR,
/*316638*/                  OPC_MoveParent,
/*316639*/                  OPC_MoveParent,
/*316640*/                  OPC_RecordChild2, // #2 = $src0
/*316641*/                  OPC_CheckType, MVT::v2i64,
/*316643*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316645*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*316648*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v4i32, 2/*#Ops*/, 1, 3,  // Results = #4
/*316656*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrk), 0,
                                MVT::v2i64, 3/*#Ops*/, 2, 0, 4, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v2i64] }:$src0) - Complexity = 14
                            // Dst: (VMOVDQA64Z128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }))
/*316665*/                /*Scope*/ 33, /*->316699*/
/*316666*/                  OPC_CheckChild0Type, MVT::v16i32,
/*316668*/                  OPC_CheckChild1Integer, 0, 
/*316670*/                  OPC_CheckChild1Type, MVT::iPTR,
/*316672*/                  OPC_MoveParent,
/*316673*/                  OPC_MoveParent,
/*316674*/                  OPC_RecordChild2, // #2 = $src0
/*316675*/                  OPC_CheckType, MVT::v2i64,
/*316677*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316679*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*316682*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v4i32, 2/*#Ops*/, 1, 3,  // Results = #4
/*316690*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrk), 0,
                                MVT::v2i64, 3/*#Ops*/, 2, 0, 4, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v2i64] }:$src0) - Complexity = 14
                            // Dst: (VMOVDQA64Z128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, sub_xmm:{ *:[i32] }))
/*316699*/                0, /*End of Scope*/
/*316700*/              /*SwitchType*/ 70, MVT::v8i16,// ->316772
/*316702*/                OPC_Scope, 33, /*->316737*/ // 2 children in Scope
/*316704*/                  OPC_CheckChild0Type, MVT::v16i16,
/*316706*/                  OPC_CheckChild1Integer, 0, 
/*316708*/                  OPC_CheckChild1Type, MVT::iPTR,
/*316710*/                  OPC_MoveParent,
/*316711*/                  OPC_MoveParent,
/*316712*/                  OPC_RecordChild2, // #2 = $src0
/*316713*/                  OPC_CheckType, MVT::v2i64,
/*316715*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316717*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*316720*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v8i16, 2/*#Ops*/, 1, 3,  // Results = #4
/*316728*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrk), 0,
                                MVT::v2i64, 3/*#Ops*/, 2, 0, 4, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v2i64] }:$src0) - Complexity = 14
                            // Dst: (VMOVDQA64Z128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] }))
/*316737*/                /*Scope*/ 33, /*->316771*/
/*316738*/                  OPC_CheckChild0Type, MVT::v32i16,
/*316740*/                  OPC_CheckChild1Integer, 0, 
/*316742*/                  OPC_CheckChild1Type, MVT::iPTR,
/*316744*/                  OPC_MoveParent,
/*316745*/                  OPC_MoveParent,
/*316746*/                  OPC_RecordChild2, // #2 = $src0
/*316747*/                  OPC_CheckType, MVT::v2i64,
/*316749*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316751*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*316754*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v8i16, 2/*#Ops*/, 1, 3,  // Results = #4
/*316762*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrk), 0,
                                MVT::v2i64, 3/*#Ops*/, 2, 0, 4, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v2i64] }:$src0) - Complexity = 14
                            // Dst: (VMOVDQA64Z128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, sub_xmm:{ *:[i32] }))
/*316771*/                0, /*End of Scope*/
/*316772*/              /*SwitchType*/ 70, MVT::v16i8,// ->316844
/*316774*/                OPC_Scope, 33, /*->316809*/ // 2 children in Scope
/*316776*/                  OPC_CheckChild0Type, MVT::v32i8,
/*316778*/                  OPC_CheckChild1Integer, 0, 
/*316780*/                  OPC_CheckChild1Type, MVT::iPTR,
/*316782*/                  OPC_MoveParent,
/*316783*/                  OPC_MoveParent,
/*316784*/                  OPC_RecordChild2, // #2 = $src0
/*316785*/                  OPC_CheckType, MVT::v2i64,
/*316787*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316789*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*316792*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v16i8, 2/*#Ops*/, 1, 3,  // Results = #4
/*316800*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrk), 0,
                                MVT::v2i64, 3/*#Ops*/, 2, 0, 4, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v2i64] }:$src0) - Complexity = 14
                            // Dst: (VMOVDQA64Z128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] }))
/*316809*/                /*Scope*/ 33, /*->316843*/
/*316810*/                  OPC_CheckChild0Type, MVT::v64i8,
/*316812*/                  OPC_CheckChild1Integer, 0, 
/*316814*/                  OPC_CheckChild1Type, MVT::iPTR,
/*316816*/                  OPC_MoveParent,
/*316817*/                  OPC_MoveParent,
/*316818*/                  OPC_RecordChild2, // #2 = $src0
/*316819*/                  OPC_CheckType, MVT::v2i64,
/*316821*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316823*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*316826*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v16i8, 2/*#Ops*/, 1, 3,  // Results = #4
/*316834*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrk), 0,
                                MVT::v2i64, 3/*#Ops*/, 2, 0, 4, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v2i64] }:$src0) - Complexity = 14
                            // Dst: (VMOVDQA64Z128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, sub_xmm:{ *:[i32] }))
/*316843*/                0, /*End of Scope*/
/*316844*/              0, // EndSwitchType
/*316845*/            /*Scope*/ 72|128,1/*200*/, /*->317047*/
/*316847*/              OPC_RecordChild0, // #1 = $ext
/*316848*/              OPC_MoveChild0,
/*316849*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*316852*/              OPC_RecordChild0, // #2 = $src
/*316853*/              OPC_Scope, 31, /*->316886*/ // 6 children in Scope
/*316855*/                OPC_CheckChild0Type, MVT::v8i32,
/*316857*/                OPC_MoveChild1,
/*316858*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316861*/                OPC_CheckType, MVT::iPTR,
/*316863*/                OPC_MoveParent,
/*316864*/                OPC_CheckType, MVT::v4i32,
/*316866*/                OPC_MoveParent,
/*316867*/                OPC_MoveParent,
/*316868*/                OPC_RecordChild2, // #3 = $src0
/*316869*/                OPC_CheckType, MVT::v2i64,
/*316871*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*316873*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*316876*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Z256rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 12
                          // Dst: (VEXTRACTI64x2Z256rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v8i32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4i32] }:$ext))
/*316886*/              /*Scope*/ 31, /*->316918*/
/*316887*/                OPC_CheckChild0Type, MVT::v16i16,
/*316889*/                OPC_MoveChild1,
/*316890*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316893*/                OPC_CheckType, MVT::iPTR,
/*316895*/                OPC_MoveParent,
/*316896*/                OPC_CheckType, MVT::v8i16,
/*316898*/                OPC_MoveParent,
/*316899*/                OPC_MoveParent,
/*316900*/                OPC_RecordChild2, // #3 = $src0
/*316901*/                OPC_CheckType, MVT::v2i64,
/*316903*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*316905*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*316908*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Z256rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 12
                          // Dst: (VEXTRACTI64x2Z256rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v16i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*316918*/              /*Scope*/ 31, /*->316950*/
/*316919*/                OPC_CheckChild0Type, MVT::v32i8,
/*316921*/                OPC_MoveChild1,
/*316922*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316925*/                OPC_CheckType, MVT::iPTR,
/*316927*/                OPC_MoveParent,
/*316928*/                OPC_CheckType, MVT::v16i8,
/*316930*/                OPC_MoveParent,
/*316931*/                OPC_MoveParent,
/*316932*/                OPC_RecordChild2, // #3 = $src0
/*316933*/                OPC_CheckType, MVT::v2i64,
/*316935*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*316937*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*316940*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Z256rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 12
                          // Dst: (VEXTRACTI64x2Z256rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v32i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*316950*/              /*Scope*/ 31, /*->316982*/
/*316951*/                OPC_CheckChild0Type, MVT::v16i32,
/*316953*/                OPC_MoveChild1,
/*316954*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316957*/                OPC_CheckType, MVT::iPTR,
/*316959*/                OPC_MoveParent,
/*316960*/                OPC_CheckType, MVT::v4i32,
/*316962*/                OPC_MoveParent,
/*316963*/                OPC_MoveParent,
/*316964*/                OPC_RecordChild2, // #3 = $src0
/*316965*/                OPC_CheckType, MVT::v2i64,
/*316967*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*316969*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*316972*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Zrrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 12
                          // Dst: (VEXTRACTI64x2Zrrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v16i32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4i32] }:$ext))
/*316982*/              /*Scope*/ 31, /*->317014*/
/*316983*/                OPC_CheckChild0Type, MVT::v32i16,
/*316985*/                OPC_MoveChild1,
/*316986*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*316989*/                OPC_CheckType, MVT::iPTR,
/*316991*/                OPC_MoveParent,
/*316992*/                OPC_CheckType, MVT::v8i16,
/*316994*/                OPC_MoveParent,
/*316995*/                OPC_MoveParent,
/*316996*/                OPC_RecordChild2, // #3 = $src0
/*316997*/                OPC_CheckType, MVT::v2i64,
/*316999*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*317001*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*317004*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Zrrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 12
                          // Dst: (VEXTRACTI64x2Zrrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*317014*/              /*Scope*/ 31, /*->317046*/
/*317015*/                OPC_CheckChild0Type, MVT::v64i8,
/*317017*/                OPC_MoveChild1,
/*317018*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*317021*/                OPC_CheckType, MVT::iPTR,
/*317023*/                OPC_MoveParent,
/*317024*/                OPC_CheckType, MVT::v16i8,
/*317026*/                OPC_MoveParent,
/*317027*/                OPC_MoveParent,
/*317028*/                OPC_RecordChild2, // #3 = $src0
/*317029*/                OPC_CheckType, MVT::v2i64,
/*317031*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*317033*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*317036*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Zrrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 12
                          // Dst: (VEXTRACTI64x2Zrrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*317046*/              0, /*End of Scope*/
/*317047*/            0, /*End of Scope*/
/*317048*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::VBROADCAST),// ->317114
/*317051*/            OPC_RecordChild0, // #1 = $src
/*317052*/            OPC_Scope, 29, /*->317083*/ // 2 children in Scope
/*317054*/              OPC_CheckChild0Type, MVT::i64,
/*317056*/              OPC_MoveParent,
/*317057*/              OPC_MoveChild2,
/*317058*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317061*/              OPC_MoveChild0,
/*317062*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317065*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317067*/              OPC_CheckType, MVT::v4i32,
/*317069*/              OPC_MoveParent,
/*317070*/              OPC_MoveParent,
/*317071*/              OPC_CheckType, MVT::v2i64,
/*317073*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317075*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZ128rkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2i64] } GR64:{ *:[i64] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTQrZ128rkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, GR64:{ *:[i64] }:$src)
/*317083*/            /*Scope*/ 29, /*->317113*/
/*317084*/              OPC_CheckChild0Type, MVT::v2i64,
/*317086*/              OPC_MoveParent,
/*317087*/              OPC_MoveChild2,
/*317088*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317091*/              OPC_MoveChild0,
/*317092*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317095*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317097*/              OPC_CheckType, MVT::v4i32,
/*317099*/              OPC_MoveParent,
/*317100*/              OPC_MoveParent,
/*317101*/              OPC_CheckType, MVT::v2i64,
/*317103*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317105*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128rkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTQZ128rkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*317113*/            0, /*End of Scope*/
/*317114*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VPERMV3),// ->317149
/*317117*/            OPC_RecordChild0, // #1 = $src1
/*317118*/            OPC_RecordChild1, // #2 = $src2
/*317119*/            OPC_RecordChild2, // #3 = $src3
/*317120*/            OPC_MoveParent,
/*317121*/            OPC_MoveChild2,
/*317122*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317125*/            OPC_MoveChild0,
/*317126*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317129*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317131*/            OPC_CheckType, MVT::v4i32,
/*317133*/            OPC_MoveParent,
/*317134*/            OPC_MoveParent,
/*317135*/            OPC_CheckType, MVT::v2i64,
/*317137*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317139*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q128rrkz), 0,
                          MVT::v2i64, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPERMT2Q128rrkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*317149*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::ADD),// ->317182
/*317152*/            OPC_RecordChild0, // #1 = $src1
/*317153*/            OPC_RecordChild1, // #2 = $src2
/*317154*/            OPC_MoveParent,
/*317155*/            OPC_MoveChild2,
/*317156*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317159*/            OPC_MoveChild0,
/*317160*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317163*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317165*/            OPC_CheckType, MVT::v4i32,
/*317167*/            OPC_MoveParent,
/*317168*/            OPC_MoveParent,
/*317169*/            OPC_CheckType, MVT::v2i64,
/*317171*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317173*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (add:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPADDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317182*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SUB),// ->317215
/*317185*/            OPC_RecordChild0, // #1 = $src1
/*317186*/            OPC_RecordChild1, // #2 = $src2
/*317187*/            OPC_MoveParent,
/*317188*/            OPC_MoveChild2,
/*317189*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317192*/            OPC_MoveChild0,
/*317193*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317196*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317198*/            OPC_CheckType, MVT::v4i32,
/*317200*/            OPC_MoveParent,
/*317201*/            OPC_MoveParent,
/*317202*/            OPC_CheckType, MVT::v2i64,
/*317204*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317206*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sub:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSUBQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317215*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::MUL),// ->317248
/*317218*/            OPC_RecordChild0, // #1 = $src1
/*317219*/            OPC_RecordChild1, // #2 = $src2
/*317220*/            OPC_MoveParent,
/*317221*/            OPC_MoveChild2,
/*317222*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317225*/            OPC_MoveChild0,
/*317226*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317229*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317231*/            OPC_CheckType, MVT::v4i32,
/*317233*/            OPC_MoveParent,
/*317234*/            OPC_MoveParent,
/*317235*/            OPC_CheckType, MVT::v2i64,
/*317237*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*317239*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULLQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317248*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PMULDQ),// ->317281
/*317251*/            OPC_RecordChild0, // #1 = $src1
/*317252*/            OPC_RecordChild1, // #2 = $src2
/*317253*/            OPC_MoveParent,
/*317254*/            OPC_MoveChild2,
/*317255*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317258*/            OPC_MoveChild0,
/*317259*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317262*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317264*/            OPC_CheckType, MVT::v4i32,
/*317266*/            OPC_MoveParent,
/*317267*/            OPC_MoveParent,
/*317268*/            OPC_CheckType, MVT::v2i64,
/*317270*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317272*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuldq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317281*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PMULUDQ),// ->317314
/*317284*/            OPC_RecordChild0, // #1 = $src1
/*317285*/            OPC_RecordChild1, // #2 = $src2
/*317286*/            OPC_MoveParent,
/*317287*/            OPC_MoveChild2,
/*317288*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317291*/            OPC_MoveChild0,
/*317292*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317295*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317297*/            OPC_CheckType, MVT::v4i32,
/*317299*/            OPC_MoveParent,
/*317300*/            OPC_MoveParent,
/*317301*/            OPC_CheckType, MVT::v2i64,
/*317303*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317305*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuludq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULUDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317314*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SMAX),// ->317347
/*317317*/            OPC_RecordChild0, // #1 = $src1
/*317318*/            OPC_RecordChild1, // #2 = $src2
/*317319*/            OPC_MoveParent,
/*317320*/            OPC_MoveChild2,
/*317321*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317324*/            OPC_MoveChild0,
/*317325*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317328*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317330*/            OPC_CheckType, MVT::v4i32,
/*317332*/            OPC_MoveParent,
/*317333*/            OPC_MoveParent,
/*317334*/            OPC_CheckType, MVT::v2i64,
/*317336*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317338*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMAXSQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317347*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::UMAX),// ->317380
/*317350*/            OPC_RecordChild0, // #1 = $src1
/*317351*/            OPC_RecordChild1, // #2 = $src2
/*317352*/            OPC_MoveParent,
/*317353*/            OPC_MoveChild2,
/*317354*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317357*/            OPC_MoveChild0,
/*317358*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317361*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317363*/            OPC_CheckType, MVT::v4i32,
/*317365*/            OPC_MoveParent,
/*317366*/            OPC_MoveParent,
/*317367*/            OPC_CheckType, MVT::v2i64,
/*317369*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317371*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMAXUQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317380*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SMIN),// ->317413
/*317383*/            OPC_RecordChild0, // #1 = $src1
/*317384*/            OPC_RecordChild1, // #2 = $src2
/*317385*/            OPC_MoveParent,
/*317386*/            OPC_MoveChild2,
/*317387*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317390*/            OPC_MoveChild0,
/*317391*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317394*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317396*/            OPC_CheckType, MVT::v4i32,
/*317398*/            OPC_MoveParent,
/*317399*/            OPC_MoveParent,
/*317400*/            OPC_CheckType, MVT::v2i64,
/*317402*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317404*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMINSQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317413*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::UMIN),// ->317446
/*317416*/            OPC_RecordChild0, // #1 = $src1
/*317417*/            OPC_RecordChild1, // #2 = $src2
/*317418*/            OPC_MoveParent,
/*317419*/            OPC_MoveChild2,
/*317420*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317423*/            OPC_MoveChild0,
/*317424*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317427*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317429*/            OPC_CheckType, MVT::v4i32,
/*317431*/            OPC_MoveParent,
/*317432*/            OPC_MoveParent,
/*317433*/            OPC_CheckType, MVT::v2i64,
/*317435*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317437*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMINUQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317446*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::AND),// ->317479
/*317449*/            OPC_RecordChild0, // #1 = $src1
/*317450*/            OPC_RecordChild1, // #2 = $src2
/*317451*/            OPC_MoveParent,
/*317452*/            OPC_MoveChild2,
/*317453*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317456*/            OPC_MoveChild0,
/*317457*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317460*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317462*/            OPC_CheckType, MVT::v4i32,
/*317464*/            OPC_MoveParent,
/*317465*/            OPC_MoveParent,
/*317466*/            OPC_CheckType, MVT::v2i64,
/*317468*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317470*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPANDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317479*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::OR),// ->317512
/*317482*/            OPC_RecordChild0, // #1 = $src1
/*317483*/            OPC_RecordChild1, // #2 = $src2
/*317484*/            OPC_MoveParent,
/*317485*/            OPC_MoveChild2,
/*317486*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317489*/            OPC_MoveChild0,
/*317490*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317493*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317495*/            OPC_CheckType, MVT::v4i32,
/*317497*/            OPC_MoveParent,
/*317498*/            OPC_MoveParent,
/*317499*/            OPC_CheckType, MVT::v2i64,
/*317501*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317503*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPORQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317512*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::XOR),// ->317545
/*317515*/            OPC_RecordChild0, // #1 = $src1
/*317516*/            OPC_RecordChild1, // #2 = $src2
/*317517*/            OPC_MoveParent,
/*317518*/            OPC_MoveChild2,
/*317519*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317522*/            OPC_MoveChild0,
/*317523*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317526*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317528*/            OPC_CheckType, MVT::v4i32,
/*317530*/            OPC_MoveParent,
/*317531*/            OPC_MoveParent,
/*317532*/            OPC_CheckType, MVT::v2i64,
/*317534*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317536*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPXORQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317545*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::ANDNP),// ->317578
/*317548*/            OPC_RecordChild0, // #1 = $src1
/*317549*/            OPC_RecordChild1, // #2 = $src2
/*317550*/            OPC_MoveParent,
/*317551*/            OPC_MoveChild2,
/*317552*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317555*/            OPC_MoveChild0,
/*317556*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317559*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317561*/            OPC_CheckType, MVT::v4i32,
/*317563*/            OPC_MoveParent,
/*317564*/            OPC_MoveParent,
/*317565*/            OPC_CheckType, MVT::v2i64,
/*317567*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317569*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPANDNQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317578*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHL),// ->317613
/*317581*/            OPC_RecordChild0, // #1 = $src1
/*317582*/            OPC_RecordChild1, // #2 = $src2
/*317583*/            OPC_CheckChild1Type, MVT::v2i64,
/*317585*/            OPC_MoveParent,
/*317586*/            OPC_MoveChild2,
/*317587*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317590*/            OPC_MoveChild0,
/*317591*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317594*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317596*/            OPC_CheckType, MVT::v4i32,
/*317598*/            OPC_MoveParent,
/*317599*/            OPC_MoveParent,
/*317600*/            OPC_CheckType, MVT::v2i64,
/*317602*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317604*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSLLQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317613*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSRA),// ->317648
/*317616*/            OPC_RecordChild0, // #1 = $src1
/*317617*/            OPC_RecordChild1, // #2 = $src2
/*317618*/            OPC_CheckChild1Type, MVT::v2i64,
/*317620*/            OPC_MoveParent,
/*317621*/            OPC_MoveChild2,
/*317622*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317625*/            OPC_MoveChild0,
/*317626*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317629*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317631*/            OPC_CheckType, MVT::v4i32,
/*317633*/            OPC_MoveParent,
/*317634*/            OPC_MoveParent,
/*317635*/            OPC_CheckType, MVT::v2i64,
/*317637*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317639*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317648*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSRL),// ->317683
/*317651*/            OPC_RecordChild0, // #1 = $src1
/*317652*/            OPC_RecordChild1, // #2 = $src2
/*317653*/            OPC_CheckChild1Type, MVT::v2i64,
/*317655*/            OPC_MoveParent,
/*317656*/            OPC_MoveChild2,
/*317657*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317660*/            OPC_MoveChild0,
/*317661*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317664*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317666*/            OPC_CheckType, MVT::v4i32,
/*317668*/            OPC_MoveParent,
/*317669*/            OPC_MoveParent,
/*317670*/            OPC_CheckType, MVT::v2i64,
/*317672*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317674*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRLQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317683*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SHL),// ->317718
/*317686*/            OPC_RecordChild0, // #1 = $src1
/*317687*/            OPC_RecordChild1, // #2 = $src2
/*317688*/            OPC_CheckChild1Type, MVT::v2i64,
/*317690*/            OPC_MoveParent,
/*317691*/            OPC_MoveChild2,
/*317692*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317695*/            OPC_MoveChild0,
/*317696*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317699*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317701*/            OPC_CheckType, MVT::v4i32,
/*317703*/            OPC_MoveParent,
/*317704*/            OPC_MoveParent,
/*317705*/            OPC_CheckType, MVT::v2i64,
/*317707*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317709*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (shl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSLLVQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317718*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SRA),// ->317753
/*317721*/            OPC_RecordChild0, // #1 = $src1
/*317722*/            OPC_RecordChild1, // #2 = $src2
/*317723*/            OPC_CheckChild1Type, MVT::v2i64,
/*317725*/            OPC_MoveParent,
/*317726*/            OPC_MoveChild2,
/*317727*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317730*/            OPC_MoveChild0,
/*317731*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317734*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317736*/            OPC_CheckType, MVT::v4i32,
/*317738*/            OPC_MoveParent,
/*317739*/            OPC_MoveParent,
/*317740*/            OPC_CheckType, MVT::v2i64,
/*317742*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317744*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAVQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317753*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SRL),// ->317788
/*317756*/            OPC_RecordChild0, // #1 = $src1
/*317757*/            OPC_RecordChild1, // #2 = $src2
/*317758*/            OPC_CheckChild1Type, MVT::v2i64,
/*317760*/            OPC_MoveParent,
/*317761*/            OPC_MoveChild2,
/*317762*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317765*/            OPC_MoveChild0,
/*317766*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317769*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317771*/            OPC_CheckType, MVT::v4i32,
/*317773*/            OPC_MoveParent,
/*317774*/            OPC_MoveParent,
/*317775*/            OPC_CheckType, MVT::v2i64,
/*317777*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317779*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (srl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRLVQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317788*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::ROTR),// ->317823
/*317791*/            OPC_RecordChild0, // #1 = $src1
/*317792*/            OPC_RecordChild1, // #2 = $src2
/*317793*/            OPC_CheckChild1Type, MVT::v2i64,
/*317795*/            OPC_MoveParent,
/*317796*/            OPC_MoveChild2,
/*317797*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317800*/            OPC_MoveChild0,
/*317801*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317804*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317806*/            OPC_CheckType, MVT::v4i32,
/*317808*/            OPC_MoveParent,
/*317809*/            OPC_MoveParent,
/*317810*/            OPC_CheckType, MVT::v2i64,
/*317812*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317814*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPRORVQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317823*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::ROTL),// ->317858
/*317826*/            OPC_RecordChild0, // #1 = $src1
/*317827*/            OPC_RecordChild1, // #2 = $src2
/*317828*/            OPC_CheckChild1Type, MVT::v2i64,
/*317830*/            OPC_MoveParent,
/*317831*/            OPC_MoveChild2,
/*317832*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317835*/            OPC_MoveChild0,
/*317836*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317839*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317841*/            OPC_CheckType, MVT::v4i32,
/*317843*/            OPC_MoveParent,
/*317844*/            OPC_MoveParent,
/*317845*/            OPC_CheckType, MVT::v2i64,
/*317847*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317849*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPROLVQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317858*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSRAV),// ->317891
/*317861*/            OPC_RecordChild0, // #1 = $src1
/*317862*/            OPC_RecordChild1, // #2 = $src2
/*317863*/            OPC_MoveParent,
/*317864*/            OPC_MoveChild2,
/*317865*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317868*/            OPC_MoveChild0,
/*317869*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317872*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317874*/            OPC_CheckType, MVT::v4i32,
/*317876*/            OPC_MoveParent,
/*317877*/            OPC_MoveParent,
/*317878*/            OPC_CheckType, MVT::v2i64,
/*317880*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317882*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrav:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAVQZ128rrkz:{ *:[v2i64] } VK2:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*317891*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VPMADD52L),// ->317926
/*317894*/            OPC_RecordChild0, // #1 = $src2
/*317895*/            OPC_RecordChild1, // #2 = $src3
/*317896*/            OPC_RecordChild2, // #3 = $src1
/*317897*/            OPC_MoveParent,
/*317898*/            OPC_MoveChild2,
/*317899*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317902*/            OPC_MoveChild0,
/*317903*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317906*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317908*/            OPC_CheckType, MVT::v4i32,
/*317910*/            OPC_MoveParent,
/*317911*/            OPC_MoveParent,
/*317912*/            OPC_CheckType, MVT::v2i64,
/*317914*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*317916*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128rkz), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52l:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMADD52LUQZ128rkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*317926*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VPMADD52H),// ->317961
/*317929*/            OPC_RecordChild0, // #1 = $src2
/*317930*/            OPC_RecordChild1, // #2 = $src3
/*317931*/            OPC_RecordChild2, // #3 = $src1
/*317932*/            OPC_MoveParent,
/*317933*/            OPC_MoveChild2,
/*317934*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317937*/            OPC_MoveChild0,
/*317938*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317941*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317943*/            OPC_CheckType, MVT::v4i32,
/*317945*/            OPC_MoveParent,
/*317946*/            OPC_MoveParent,
/*317947*/            OPC_CheckType, MVT::v2i64,
/*317949*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*317951*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128rkz), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52h:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMADD52HUQZ128rkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*317961*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTP2SI),// ->318027
/*317964*/            OPC_RecordChild0, // #1 = $src
/*317965*/            OPC_Scope, 29, /*->317996*/ // 2 children in Scope
/*317967*/              OPC_CheckChild0Type, MVT::v2f64,
/*317969*/              OPC_MoveParent,
/*317970*/              OPC_MoveChild2,
/*317971*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*317974*/              OPC_MoveChild0,
/*317975*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*317978*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*317980*/              OPC_CheckType, MVT::v4i32,
/*317982*/              OPC_MoveParent,
/*317983*/              OPC_MoveParent,
/*317984*/              OPC_CheckType, MVT::v2i64,
/*317986*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*317988*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPD2QQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*317996*/            /*Scope*/ 29, /*->318026*/
/*317997*/              OPC_CheckChild0Type, MVT::v4f32,
/*317999*/              OPC_MoveParent,
/*318000*/              OPC_MoveChild2,
/*318001*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318004*/              OPC_MoveChild0,
/*318005*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318008*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318010*/              OPC_CheckType, MVT::v4i32,
/*318012*/              OPC_MoveParent,
/*318013*/              OPC_MoveParent,
/*318014*/              OPC_CheckType, MVT::v2i64,
/*318016*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*318018*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPS2QQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*318026*/            0, /*End of Scope*/
/*318027*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTP2UI),// ->318093
/*318030*/            OPC_RecordChild0, // #1 = $src
/*318031*/            OPC_Scope, 29, /*->318062*/ // 2 children in Scope
/*318033*/              OPC_CheckChild0Type, MVT::v2f64,
/*318035*/              OPC_MoveParent,
/*318036*/              OPC_MoveChild2,
/*318037*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318040*/              OPC_MoveChild0,
/*318041*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318044*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318046*/              OPC_CheckType, MVT::v4i32,
/*318048*/              OPC_MoveParent,
/*318049*/              OPC_MoveParent,
/*318050*/              OPC_CheckType, MVT::v2i64,
/*318052*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*318054*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPD2UQQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*318062*/            /*Scope*/ 29, /*->318092*/
/*318063*/              OPC_CheckChild0Type, MVT::v4f32,
/*318065*/              OPC_MoveParent,
/*318066*/              OPC_MoveChild2,
/*318067*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318070*/              OPC_MoveChild0,
/*318071*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318074*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318076*/              OPC_CheckType, MVT::v4i32,
/*318078*/              OPC_MoveParent,
/*318079*/              OPC_MoveParent,
/*318080*/              OPC_CheckType, MVT::v2i64,
/*318082*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*318084*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPS2UQQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*318092*/            0, /*End of Scope*/
/*318093*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTTP2SI),// ->318159
/*318096*/            OPC_RecordChild0, // #1 = $src
/*318097*/            OPC_Scope, 29, /*->318128*/ // 2 children in Scope
/*318099*/              OPC_CheckChild0Type, MVT::v2f64,
/*318101*/              OPC_MoveParent,
/*318102*/              OPC_MoveChild2,
/*318103*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318106*/              OPC_MoveChild0,
/*318107*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318110*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318112*/              OPC_CheckType, MVT::v4i32,
/*318114*/              OPC_MoveParent,
/*318115*/              OPC_MoveParent,
/*318116*/              OPC_CheckType, MVT::v2i64,
/*318118*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*318120*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPD2QQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*318128*/            /*Scope*/ 29, /*->318158*/
/*318129*/              OPC_CheckChild0Type, MVT::v4f32,
/*318131*/              OPC_MoveParent,
/*318132*/              OPC_MoveChild2,
/*318133*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318136*/              OPC_MoveChild0,
/*318137*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318140*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318142*/              OPC_CheckType, MVT::v4i32,
/*318144*/              OPC_MoveParent,
/*318145*/              OPC_MoveParent,
/*318146*/              OPC_CheckType, MVT::v2i64,
/*318148*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*318150*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPS2QQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*318158*/            0, /*End of Scope*/
/*318159*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTTP2UI),// ->318225
/*318162*/            OPC_RecordChild0, // #1 = $src
/*318163*/            OPC_Scope, 29, /*->318194*/ // 2 children in Scope
/*318165*/              OPC_CheckChild0Type, MVT::v2f64,
/*318167*/              OPC_MoveParent,
/*318168*/              OPC_MoveChild2,
/*318169*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318172*/              OPC_MoveChild0,
/*318173*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318176*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318178*/              OPC_CheckType, MVT::v4i32,
/*318180*/              OPC_MoveParent,
/*318181*/              OPC_MoveParent,
/*318182*/              OPC_CheckType, MVT::v2i64,
/*318184*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*318186*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPD2UQQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*318194*/            /*Scope*/ 29, /*->318224*/
/*318195*/              OPC_CheckChild0Type, MVT::v4f32,
/*318197*/              OPC_MoveParent,
/*318198*/              OPC_MoveChild2,
/*318199*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318202*/              OPC_MoveChild0,
/*318203*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318206*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318208*/              OPC_CheckType, MVT::v4i32,
/*318210*/              OPC_MoveParent,
/*318211*/              OPC_MoveParent,
/*318212*/              OPC_CheckType, MVT::v2i64,
/*318214*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*318216*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPS2UQQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*318224*/            0, /*End of Scope*/
/*318225*/          /*SwitchOpcode*/ 93, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->318321
/*318228*/            OPC_RecordChild0, // #1 = $src
/*318229*/            OPC_Scope, 29, /*->318260*/ // 3 children in Scope
/*318231*/              OPC_CheckChild0Type, MVT::v16i8,
/*318233*/              OPC_MoveParent,
/*318234*/              OPC_MoveChild2,
/*318235*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318238*/              OPC_MoveChild0,
/*318239*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318242*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318244*/              OPC_CheckType, MVT::v4i32,
/*318246*/              OPC_MoveParent,
/*318247*/              OPC_MoveParent,
/*318248*/              OPC_CheckType, MVT::v2i64,
/*318250*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318252*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (zext_invec:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVZXBQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*318260*/            /*Scope*/ 29, /*->318290*/
/*318261*/              OPC_CheckChild0Type, MVT::v8i16,
/*318263*/              OPC_MoveParent,
/*318264*/              OPC_MoveChild2,
/*318265*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318268*/              OPC_MoveChild0,
/*318269*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318272*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318274*/              OPC_CheckType, MVT::v4i32,
/*318276*/              OPC_MoveParent,
/*318277*/              OPC_MoveParent,
/*318278*/              OPC_CheckType, MVT::v2i64,
/*318280*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318282*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (zext_invec:{ *:[v2i64] } VR128X:{ *:[v8i16] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVZXWQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*318290*/            /*Scope*/ 29, /*->318320*/
/*318291*/              OPC_CheckChild0Type, MVT::v4i32,
/*318293*/              OPC_MoveParent,
/*318294*/              OPC_MoveChild2,
/*318295*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318298*/              OPC_MoveChild0,
/*318299*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318302*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318304*/              OPC_CheckType, MVT::v4i32,
/*318306*/              OPC_MoveParent,
/*318307*/              OPC_MoveParent,
/*318308*/              OPC_CheckType, MVT::v2i64,
/*318310*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318312*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (zext_invec:{ *:[v2i64] } VR128X:{ *:[v4i32] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVZXDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*318320*/            0, /*End of Scope*/
/*318321*/          /*SwitchOpcode*/ 93, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->318417
/*318324*/            OPC_RecordChild0, // #1 = $src
/*318325*/            OPC_Scope, 29, /*->318356*/ // 3 children in Scope
/*318327*/              OPC_CheckChild0Type, MVT::v16i8,
/*318329*/              OPC_MoveParent,
/*318330*/              OPC_MoveChild2,
/*318331*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318334*/              OPC_MoveChild0,
/*318335*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318338*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318340*/              OPC_CheckType, MVT::v4i32,
/*318342*/              OPC_MoveParent,
/*318343*/              OPC_MoveParent,
/*318344*/              OPC_CheckType, MVT::v2i64,
/*318346*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318348*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sext_invec:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSXBQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*318356*/            /*Scope*/ 29, /*->318386*/
/*318357*/              OPC_CheckChild0Type, MVT::v8i16,
/*318359*/              OPC_MoveParent,
/*318360*/              OPC_MoveChild2,
/*318361*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318364*/              OPC_MoveChild0,
/*318365*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318368*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318370*/              OPC_CheckType, MVT::v4i32,
/*318372*/              OPC_MoveParent,
/*318373*/              OPC_MoveParent,
/*318374*/              OPC_CheckType, MVT::v2i64,
/*318376*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318378*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sext_invec:{ *:[v2i64] } VR128X:{ *:[v8i16] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSXWQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*318386*/            /*Scope*/ 29, /*->318416*/
/*318387*/              OPC_CheckChild0Type, MVT::v4i32,
/*318389*/              OPC_MoveParent,
/*318390*/              OPC_MoveChild2,
/*318391*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318394*/              OPC_MoveChild0,
/*318395*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318398*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318400*/              OPC_CheckType, MVT::v4i32,
/*318402*/              OPC_MoveParent,
/*318403*/              OPC_MoveParent,
/*318404*/              OPC_CheckType, MVT::v2i64,
/*318406*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318408*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sext_invec:{ *:[v2i64] } VR128X:{ *:[v4i32] }:$src), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSXDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*318416*/            0, /*End of Scope*/
/*318417*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::COMPRESS),// ->318448
/*318420*/            OPC_RecordChild0, // #1 = $src1
/*318421*/            OPC_MoveParent,
/*318422*/            OPC_MoveChild2,
/*318423*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318426*/            OPC_MoveChild0,
/*318427*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318430*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318432*/            OPC_CheckType, MVT::v4i32,
/*318434*/            OPC_MoveParent,
/*318435*/            OPC_MoveParent,
/*318436*/            OPC_CheckType, MVT::v2i64,
/*318438*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318440*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZ128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86compress:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPCOMPRESSQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*318448*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::EXPAND),// ->318479
/*318451*/            OPC_RecordChild0, // #1 = $src1
/*318452*/            OPC_MoveParent,
/*318453*/            OPC_MoveChild2,
/*318454*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318457*/            OPC_MoveChild0,
/*318458*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318461*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318463*/            OPC_CheckType, MVT::v4i32,
/*318465*/            OPC_MoveParent,
/*318466*/            OPC_MoveParent,
/*318467*/            OPC_CheckType, MVT::v2i64,
/*318469*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318471*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86expand:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPEXPANDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*318479*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::ABS),// ->318510
/*318482*/            OPC_RecordChild0, // #1 = $src1
/*318483*/            OPC_MoveParent,
/*318484*/            OPC_MoveChild2,
/*318485*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318488*/            OPC_MoveChild0,
/*318489*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318492*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318494*/            OPC_CheckType, MVT::v4i32,
/*318496*/            OPC_MoveParent,
/*318497*/            OPC_MoveParent,
/*318498*/            OPC_CheckType, MVT::v2i64,
/*318500*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318502*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (abs:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPABSQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*318510*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::CTLZ),// ->318541
/*318513*/            OPC_RecordChild0, // #1 = $src1
/*318514*/            OPC_MoveParent,
/*318515*/            OPC_MoveChild2,
/*318516*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318519*/            OPC_MoveChild0,
/*318520*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318523*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318525*/            OPC_CheckType, MVT::v4i32,
/*318527*/            OPC_MoveParent,
/*318528*/            OPC_MoveParent,
/*318529*/            OPC_CheckType, MVT::v2i64,
/*318531*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*318533*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctlz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPLZCNTQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*318541*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::CONFLICT),// ->318572
/*318544*/            OPC_RecordChild0, // #1 = $src1
/*318545*/            OPC_MoveParent,
/*318546*/            OPC_MoveChild2,
/*318547*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318550*/            OPC_MoveChild0,
/*318551*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318554*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318556*/            OPC_CheckType, MVT::v4i32,
/*318558*/            OPC_MoveParent,
/*318559*/            OPC_MoveParent,
/*318560*/            OPC_CheckType, MVT::v2i64,
/*318562*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*318564*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Conflict:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPCONFLICTQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*318572*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::CTPOP),// ->318603
/*318575*/            OPC_RecordChild0, // #1 = $src1
/*318576*/            OPC_MoveParent,
/*318577*/            OPC_MoveChild2,
/*318578*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318581*/            OPC_MoveChild0,
/*318582*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318585*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318587*/            OPC_CheckType, MVT::v4i32,
/*318589*/            OPC_MoveParent,
/*318590*/            OPC_MoveParent,
/*318591*/            OPC_CheckType, MVT::v2i64,
/*318593*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*318595*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctpop:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPOPCNTQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*318603*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::UNPCKL),// ->318636
/*318606*/            OPC_RecordChild0, // #1 = $src1
/*318607*/            OPC_RecordChild1, // #2 = $src2
/*318608*/            OPC_MoveParent,
/*318609*/            OPC_MoveChild2,
/*318610*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318613*/            OPC_MoveChild0,
/*318614*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318617*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318619*/            OPC_CheckType, MVT::v4i32,
/*318621*/            OPC_MoveParent,
/*318622*/            OPC_MoveParent,
/*318623*/            OPC_CheckType, MVT::v2i64,
/*318625*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318627*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPUNPCKLQDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*318636*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::UNPCKH),// ->318669
/*318639*/            OPC_RecordChild0, // #1 = $src1
/*318640*/            OPC_RecordChild1, // #2 = $src2
/*318641*/            OPC_MoveParent,
/*318642*/            OPC_MoveChild2,
/*318643*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318646*/            OPC_MoveChild0,
/*318647*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318650*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318652*/            OPC_CheckType, MVT::v4i32,
/*318654*/            OPC_MoveParent,
/*318655*/            OPC_MoveParent,
/*318656*/            OPC_CheckType, MVT::v2i64,
/*318658*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318660*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPUNPCKHQDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*318669*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHLDV),// ->318704
/*318672*/            OPC_RecordChild0, // #1 = $src1
/*318673*/            OPC_RecordChild1, // #2 = $src2
/*318674*/            OPC_RecordChild2, // #3 = $src3
/*318675*/            OPC_MoveParent,
/*318676*/            OPC_MoveChild2,
/*318677*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318680*/            OPC_MoveChild0,
/*318681*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318684*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318686*/            OPC_CheckType, MVT::v4i32,
/*318688*/            OPC_MoveParent,
/*318689*/            OPC_MoveParent,
/*318690*/            OPC_CheckType, MVT::v2i64,
/*318692*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*318694*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ128rkz), 0,
                          MVT::v2i64, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShldv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSHLDVQZ128rkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*318704*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHRDV),// ->318739
/*318707*/            OPC_RecordChild0, // #1 = $src1
/*318708*/            OPC_RecordChild1, // #2 = $src2
/*318709*/            OPC_RecordChild2, // #3 = $src3
/*318710*/            OPC_MoveParent,
/*318711*/            OPC_MoveChild2,
/*318712*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318715*/            OPC_MoveChild0,
/*318716*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318719*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318721*/            OPC_CheckType, MVT::v4i32,
/*318723*/            OPC_MoveParent,
/*318724*/            OPC_MoveParent,
/*318725*/            OPC_CheckType, MVT::v2i64,
/*318727*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*318729*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ128rkz), 0,
                          MVT::v2i64, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrdv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSHRDVQZ128rkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*318739*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->318811
/*318742*/            OPC_RecordChild0, // #1 = $src
/*318743*/            OPC_Scope, 32, /*->318777*/ // 2 children in Scope
/*318745*/              OPC_CheckChild0Type, MVT::v4i64,
/*318747*/              OPC_CheckChild1Integer, 0, 
/*318749*/              OPC_CheckChild1Type, MVT::iPTR,
/*318751*/              OPC_MoveParent,
/*318752*/              OPC_RecordChild2, // #2 = $src0
/*318753*/              OPC_CheckType, MVT::v2i64,
/*318755*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*318757*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*318760*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v2i64, 2/*#Ops*/, 1, 3,  // Results = #4
/*318768*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }), VR128X:{ *:[v2i64] }:$src0) - Complexity = 11
                        // Dst: (VMOVDQA64Z128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }))
/*318777*/            /*Scope*/ 32, /*->318810*/
/*318778*/              OPC_CheckChild0Type, MVT::v8i64,
/*318780*/              OPC_CheckChild1Integer, 0, 
/*318782*/              OPC_CheckChild1Type, MVT::iPTR,
/*318784*/              OPC_MoveParent,
/*318785*/              OPC_RecordChild2, // #2 = $src0
/*318786*/              OPC_CheckType, MVT::v2i64,
/*318788*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*318790*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*318793*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v2i64, 2/*#Ops*/, 1, 3,  // Results = #4
/*318801*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] }), VR128X:{ *:[v2i64] }:$src0) - Complexity = 11
                        // Dst: (VMOVDQA64Z128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, sub_xmm:{ *:[i32] }))
/*318810*/            0, /*End of Scope*/
/*318811*/          0, // EndSwitchOpcode
/*318812*/        /*Scope*/ 22|128,1/*150*/, /*->318964*/
/*318814*/          OPC_RecordChild1, // #1 = $src
/*318815*/          OPC_Scope, 80, /*->318897*/ // 2 children in Scope
/*318817*/            OPC_MoveChild2,
/*318818*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318821*/            OPC_MoveChild0,
/*318822*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*318825*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*318827*/            OPC_CheckType, MVT::v4i32,
/*318829*/            OPC_MoveParent,
/*318830*/            OPC_MoveParent,
/*318831*/            OPC_CheckType, MVT::v2i64,
/*318833*/            OPC_Scope, 10, /*->318845*/ // 2 children in Scope
/*318835*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318837*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                        // Dst: (VMOVDQA64Z128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*318845*/            /*Scope*/ 50, /*->318896*/
/*318846*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*318848*/              OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*318851*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*318859*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*318865*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*318868*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8i64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*318877*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 3, 6,  // Results = #7
/*318885*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*318888*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v2i64, 2/*#Ops*/, 7, 8, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                        // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VMOVDQA64Zrrkz:{ *:[v8i64] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2WM:{ *:[v2i1] }:$mask, VK8WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*318896*/            0, /*End of Scope*/
/*318897*/          /*Scope*/ 65, /*->318963*/
/*318898*/            OPC_MoveChild1,
/*318899*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*318902*/            OPC_RecordChild0, // #2 = $src1
/*318903*/            OPC_Scope, 28, /*->318933*/ // 2 children in Scope
/*318905*/              OPC_CheckChild0Type, MVT::v4i64,
/*318907*/              OPC_MoveChild1,
/*318908*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*318911*/              OPC_CheckType, MVT::iPTR,
/*318913*/              OPC_MoveParent,
/*318914*/              OPC_MoveParent,
/*318915*/              OPC_RecordChild2, // #3 = $src0
/*318916*/              OPC_CheckType, MVT::v2i64,
/*318918*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*318920*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*318923*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Z256rrk), 0,
                            MVT::v2i64, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                        // Dst: (VEXTRACTI64x2Z256rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*318933*/            /*Scope*/ 28, /*->318962*/
/*318934*/              OPC_CheckChild0Type, MVT::v8i64,
/*318936*/              OPC_MoveChild1,
/*318937*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*318940*/              OPC_CheckType, MVT::iPTR,
/*318942*/              OPC_MoveParent,
/*318943*/              OPC_MoveParent,
/*318944*/              OPC_RecordChild2, // #3 = $src0
/*318945*/              OPC_CheckType, MVT::v2i64,
/*318947*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*318949*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*318952*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x2Zrrk), 0,
                            MVT::v2i64, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                        // Dst: (VEXTRACTI64x2Zrrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*318962*/            0, /*End of Scope*/
/*318963*/          0, /*End of Scope*/
/*318964*/        /*Scope*/ 127|128,10/*1407*/, /*->320373*/
/*318966*/          OPC_MoveChild1,
/*318967*/          OPC_SwitchOpcode /*51 cases */, 25, TARGET_VAL(X86ISD::VSRLI),// ->318996
/*318971*/            OPC_RecordChild0, // #1 = $src1
/*318972*/            OPC_RecordChild1, // #2 = $src2
/*318973*/            OPC_MoveChild1,
/*318974*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*318977*/            OPC_MoveParent,
/*318978*/            OPC_MoveParent,
/*318979*/            OPC_RecordChild2, // #3 = $src0
/*318980*/            OPC_CheckType, MVT::v2i64,
/*318982*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318984*/            OPC_EmitConvertToTarget, 2,
/*318986*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128rik), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPSRLQZ128rik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*318996*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHLI),// ->319024
/*318999*/            OPC_RecordChild0, // #1 = $src1
/*319000*/            OPC_RecordChild1, // #2 = $src2
/*319001*/            OPC_MoveChild1,
/*319002*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*319005*/            OPC_MoveParent,
/*319006*/            OPC_MoveParent,
/*319007*/            OPC_RecordChild2, // #3 = $src0
/*319008*/            OPC_CheckType, MVT::v2i64,
/*319010*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319012*/            OPC_EmitConvertToTarget, 2,
/*319014*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128rik), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPSLLQZ128rik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*319024*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSRAI),// ->319052
/*319027*/            OPC_RecordChild0, // #1 = $src1
/*319028*/            OPC_RecordChild1, // #2 = $src2
/*319029*/            OPC_MoveChild1,
/*319030*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*319033*/            OPC_MoveParent,
/*319034*/            OPC_MoveParent,
/*319035*/            OPC_RecordChild2, // #3 = $src0
/*319036*/            OPC_CheckType, MVT::v2i64,
/*319038*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319040*/            OPC_EmitConvertToTarget, 2,
/*319042*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128rik), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPSRAQZ128rik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*319052*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VROTRI),// ->319080
/*319055*/            OPC_RecordChild0, // #1 = $src1
/*319056*/            OPC_RecordChild1, // #2 = $src2
/*319057*/            OPC_MoveChild1,
/*319058*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*319061*/            OPC_MoveParent,
/*319062*/            OPC_MoveParent,
/*319063*/            OPC_RecordChild2, // #3 = $src0
/*319064*/            OPC_CheckType, MVT::v2i64,
/*319066*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319068*/            OPC_EmitConvertToTarget, 2,
/*319070*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128rik), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPRORQZ128rik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*319080*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VROTLI),// ->319108
/*319083*/            OPC_RecordChild0, // #1 = $src1
/*319084*/            OPC_RecordChild1, // #2 = $src2
/*319085*/            OPC_MoveChild1,
/*319086*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*319089*/            OPC_MoveParent,
/*319090*/            OPC_MoveParent,
/*319091*/            OPC_RecordChild2, // #3 = $src0
/*319092*/            OPC_CheckType, MVT::v2i64,
/*319094*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319096*/            OPC_EmitConvertToTarget, 2,
/*319098*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128rik), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPROLQZ128rik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*319108*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VALIGN),// ->319138
/*319111*/            OPC_RecordChild0, // #1 = $src1
/*319112*/            OPC_RecordChild1, // #2 = $src2
/*319113*/            OPC_RecordChild2, // #3 = $src3
/*319114*/            OPC_MoveChild2,
/*319115*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*319118*/            OPC_MoveParent,
/*319119*/            OPC_MoveParent,
/*319120*/            OPC_RecordChild2, // #4 = $src0
/*319121*/            OPC_CheckType, MVT::v2i64,
/*319123*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319125*/            OPC_EmitConvertToTarget, 3,
/*319127*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rrik), 0,
                          MVT::v2i64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VALIGNQZ128rrik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*319138*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VPTERNLOG),// ->319215
/*319141*/            OPC_RecordChild0, // #1 = $src1
/*319142*/            OPC_RecordChild1, // #2 = $src2
/*319143*/            OPC_RecordChild2, // #3 = $src3
/*319144*/            OPC_RecordChild3, // #4 = $src4
/*319145*/            OPC_MoveChild3,
/*319146*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*319149*/            OPC_MoveParent,
/*319150*/            OPC_MoveParent,
/*319151*/            OPC_CheckType, MVT::v2i64,
/*319153*/            OPC_Scope, 17, /*->319172*/ // 3 children in Scope
/*319155*/              OPC_CheckChild2Same, 1,
/*319157*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319159*/              OPC_EmitConvertToTarget, 4,
/*319161*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rrik), 0,
                            MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 9
                        // Dst: (VPTERNLOGQZ128rrik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*319172*/            /*Scope*/ 20, /*->319193*/
/*319173*/              OPC_CheckChild2Same, 3,
/*319175*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319177*/              OPC_EmitConvertToTarget, 4,
/*319179*/              OPC_EmitNodeXForm, 15, 5, // VPTERNLOG321_imm8
/*319182*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rrik), 0,
                            MVT::v2i64, 5/*#Ops*/, 3, 0, 2, 1, 6, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src3, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 9
                        // Dst: (VPTERNLOGQZ128rrik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*319193*/            /*Scope*/ 20, /*->319214*/
/*319194*/              OPC_CheckChild2Same, 2,
/*319196*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319198*/              OPC_EmitConvertToTarget, 4,
/*319200*/              OPC_EmitNodeXForm, 17, 5, // VPTERNLOG213_imm8
/*319203*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rrik), 0,
                            MVT::v2i64, 5/*#Ops*/, 2, 0, 1, 3, 6, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 9
                        // Dst: (VPTERNLOGQZ128rrik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*319214*/            0, /*End of Scope*/
/*319215*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VSHLD),// ->319245
/*319218*/            OPC_RecordChild0, // #1 = $src1
/*319219*/            OPC_RecordChild1, // #2 = $src2
/*319220*/            OPC_RecordChild2, // #3 = $src3
/*319221*/            OPC_MoveChild2,
/*319222*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*319225*/            OPC_MoveParent,
/*319226*/            OPC_MoveParent,
/*319227*/            OPC_RecordChild2, // #4 = $src0
/*319228*/            OPC_CheckType, MVT::v2i64,
/*319230*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*319232*/            OPC_EmitConvertToTarget, 3,
/*319234*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rrik), 0,
                          MVT::v2i64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPSHLDQZ128rrik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*319245*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VSHRD),// ->319275
/*319248*/            OPC_RecordChild0, // #1 = $src1
/*319249*/            OPC_RecordChild1, // #2 = $src2
/*319250*/            OPC_RecordChild2, // #3 = $src3
/*319251*/            OPC_MoveChild2,
/*319252*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*319255*/            OPC_MoveParent,
/*319256*/            OPC_MoveParent,
/*319257*/            OPC_RecordChild2, // #4 = $src0
/*319258*/            OPC_CheckType, MVT::v2i64,
/*319260*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*319262*/            OPC_EmitConvertToTarget, 3,
/*319264*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rrik), 0,
                          MVT::v2i64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPSHRDQZ128rrik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*319275*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST),// ->319317
/*319278*/            OPC_RecordChild0, // #1 = $src
/*319279*/            OPC_Scope, 17, /*->319298*/ // 2 children in Scope
/*319281*/              OPC_CheckChild0Type, MVT::i64,
/*319283*/              OPC_MoveParent,
/*319284*/              OPC_RecordChild2, // #2 = $src0
/*319285*/              OPC_CheckType, MVT::v2i64,
/*319287*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319289*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZ128rk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2i64] } GR64:{ *:[i64] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTQrZ128rk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, GR64:{ *:[i64] }:$src)
/*319298*/            /*Scope*/ 17, /*->319316*/
/*319299*/              OPC_CheckChild0Type, MVT::v2i64,
/*319301*/              OPC_MoveParent,
/*319302*/              OPC_RecordChild2, // #2 = $src0
/*319303*/              OPC_CheckType, MVT::v2i64,
/*319305*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319307*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128rk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTQZ128rk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*319316*/            0, /*End of Scope*/
/*319317*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VPERMV3),// ->319358
/*319320*/            OPC_RecordChild0, // #1 = $src2
/*319321*/            OPC_RecordChild1, // #2 = $src1
/*319322*/            OPC_RecordChild2, // #3 = $src3
/*319323*/            OPC_MoveParent,
/*319324*/            OPC_CheckType, MVT::v2i64,
/*319326*/            OPC_Scope, 14, /*->319342*/ // 2 children in Scope
/*319328*/              OPC_CheckChild2Same, 2,
/*319330*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*319332*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Q128rrk), 0,
                            MVT::v2i64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src3), VR128X:{ *:[v2i64] }:$src1) - Complexity = 6
                        // Dst: (VPERMI2Q128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*319342*/            /*Scope*/ 14, /*->319357*/
/*319343*/              OPC_CheckChild2Same, 1,
/*319345*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*319347*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q128rrk), 0,
                            MVT::v2i64, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3), VR128X:{ *:[v2i64] }:$src1) - Complexity = 6
                        // Dst: (VPERMT2Q128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*319357*/            0, /*End of Scope*/
/*319358*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::ADD),// ->319379
/*319361*/            OPC_RecordChild0, // #1 = $src1
/*319362*/            OPC_RecordChild1, // #2 = $src2
/*319363*/            OPC_MoveParent,
/*319364*/            OPC_RecordChild2, // #3 = $src0
/*319365*/            OPC_CheckType, MVT::v2i64,
/*319367*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319369*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (add:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPADDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319379*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SUB),// ->319400
/*319382*/            OPC_RecordChild0, // #1 = $src1
/*319383*/            OPC_RecordChild1, // #2 = $src2
/*319384*/            OPC_MoveParent,
/*319385*/            OPC_RecordChild2, // #3 = $src0
/*319386*/            OPC_CheckType, MVT::v2i64,
/*319388*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319390*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sub:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPSUBQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319400*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MUL),// ->319421
/*319403*/            OPC_RecordChild0, // #1 = $src1
/*319404*/            OPC_RecordChild1, // #2 = $src2
/*319405*/            OPC_MoveParent,
/*319406*/            OPC_RecordChild2, // #3 = $src0
/*319407*/            OPC_CheckType, MVT::v2i64,
/*319409*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*319411*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPMULLQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319421*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULDQ),// ->319442
/*319424*/            OPC_RecordChild0, // #1 = $src1
/*319425*/            OPC_RecordChild1, // #2 = $src2
/*319426*/            OPC_MoveParent,
/*319427*/            OPC_RecordChild2, // #3 = $src0
/*319428*/            OPC_CheckType, MVT::v2i64,
/*319430*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319432*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuldq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPMULDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319442*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULUDQ),// ->319463
/*319445*/            OPC_RecordChild0, // #1 = $src1
/*319446*/            OPC_RecordChild1, // #2 = $src2
/*319447*/            OPC_MoveParent,
/*319448*/            OPC_RecordChild2, // #3 = $src0
/*319449*/            OPC_CheckType, MVT::v2i64,
/*319451*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319453*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86pmuludq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPMULUDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319463*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SMAX),// ->319484
/*319466*/            OPC_RecordChild0, // #1 = $src1
/*319467*/            OPC_RecordChild1, // #2 = $src2
/*319468*/            OPC_MoveParent,
/*319469*/            OPC_RecordChild2, // #3 = $src0
/*319470*/            OPC_CheckType, MVT::v2i64,
/*319472*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319474*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPMAXSQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319484*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UMAX),// ->319505
/*319487*/            OPC_RecordChild0, // #1 = $src1
/*319488*/            OPC_RecordChild1, // #2 = $src2
/*319489*/            OPC_MoveParent,
/*319490*/            OPC_RecordChild2, // #3 = $src0
/*319491*/            OPC_CheckType, MVT::v2i64,
/*319493*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319495*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPMAXUQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319505*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SMIN),// ->319526
/*319508*/            OPC_RecordChild0, // #1 = $src1
/*319509*/            OPC_RecordChild1, // #2 = $src2
/*319510*/            OPC_MoveParent,
/*319511*/            OPC_RecordChild2, // #3 = $src0
/*319512*/            OPC_CheckType, MVT::v2i64,
/*319514*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319516*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (smin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPMINSQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319526*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UMIN),// ->319547
/*319529*/            OPC_RecordChild0, // #1 = $src1
/*319530*/            OPC_RecordChild1, // #2 = $src2
/*319531*/            OPC_MoveParent,
/*319532*/            OPC_RecordChild2, // #3 = $src0
/*319533*/            OPC_CheckType, MVT::v2i64,
/*319535*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319537*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (umin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPMINUQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319547*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::AND),// ->319568
/*319550*/            OPC_RecordChild0, // #1 = $src1
/*319551*/            OPC_RecordChild1, // #2 = $src2
/*319552*/            OPC_MoveParent,
/*319553*/            OPC_RecordChild2, // #3 = $src0
/*319554*/            OPC_CheckType, MVT::v2i64,
/*319556*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319558*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPANDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319568*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::OR),// ->319589
/*319571*/            OPC_RecordChild0, // #1 = $src1
/*319572*/            OPC_RecordChild1, // #2 = $src2
/*319573*/            OPC_MoveParent,
/*319574*/            OPC_RecordChild2, // #3 = $src0
/*319575*/            OPC_CheckType, MVT::v2i64,
/*319577*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319579*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPORQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319589*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::XOR),// ->319610
/*319592*/            OPC_RecordChild0, // #1 = $src1
/*319593*/            OPC_RecordChild1, // #2 = $src2
/*319594*/            OPC_MoveParent,
/*319595*/            OPC_RecordChild2, // #3 = $src0
/*319596*/            OPC_CheckType, MVT::v2i64,
/*319598*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319600*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPXORQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319610*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::ANDNP),// ->319631
/*319613*/            OPC_RecordChild0, // #1 = $src1
/*319614*/            OPC_RecordChild1, // #2 = $src2
/*319615*/            OPC_MoveParent,
/*319616*/            OPC_RecordChild2, // #3 = $src0
/*319617*/            OPC_CheckType, MVT::v2i64,
/*319619*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319621*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPANDNQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319631*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHL),// ->319654
/*319634*/            OPC_RecordChild0, // #1 = $src1
/*319635*/            OPC_RecordChild1, // #2 = $src2
/*319636*/            OPC_CheckChild1Type, MVT::v2i64,
/*319638*/            OPC_MoveParent,
/*319639*/            OPC_RecordChild2, // #3 = $src0
/*319640*/            OPC_CheckType, MVT::v2i64,
/*319642*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319644*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPSLLQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319654*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSRA),// ->319677
/*319657*/            OPC_RecordChild0, // #1 = $src1
/*319658*/            OPC_RecordChild1, // #2 = $src2
/*319659*/            OPC_CheckChild1Type, MVT::v2i64,
/*319661*/            OPC_MoveParent,
/*319662*/            OPC_RecordChild2, // #3 = $src0
/*319663*/            OPC_CheckType, MVT::v2i64,
/*319665*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319667*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPSRAQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319677*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSRL),// ->319700
/*319680*/            OPC_RecordChild0, // #1 = $src1
/*319681*/            OPC_RecordChild1, // #2 = $src2
/*319682*/            OPC_CheckChild1Type, MVT::v2i64,
/*319684*/            OPC_MoveParent,
/*319685*/            OPC_RecordChild2, // #3 = $src0
/*319686*/            OPC_CheckType, MVT::v2i64,
/*319688*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319690*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPSRLQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319700*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::SHL),// ->319723
/*319703*/            OPC_RecordChild0, // #1 = $src1
/*319704*/            OPC_RecordChild1, // #2 = $src2
/*319705*/            OPC_CheckChild1Type, MVT::v2i64,
/*319707*/            OPC_MoveParent,
/*319708*/            OPC_RecordChild2, // #3 = $src0
/*319709*/            OPC_CheckType, MVT::v2i64,
/*319711*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319713*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (shl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPSLLVQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319723*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::SRA),// ->319746
/*319726*/            OPC_RecordChild0, // #1 = $src1
/*319727*/            OPC_RecordChild1, // #2 = $src2
/*319728*/            OPC_CheckChild1Type, MVT::v2i64,
/*319730*/            OPC_MoveParent,
/*319731*/            OPC_RecordChild2, // #3 = $src0
/*319732*/            OPC_CheckType, MVT::v2i64,
/*319734*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319736*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPSRAVQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319746*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::SRL),// ->319769
/*319749*/            OPC_RecordChild0, // #1 = $src1
/*319750*/            OPC_RecordChild1, // #2 = $src2
/*319751*/            OPC_CheckChild1Type, MVT::v2i64,
/*319753*/            OPC_MoveParent,
/*319754*/            OPC_RecordChild2, // #3 = $src0
/*319755*/            OPC_CheckType, MVT::v2i64,
/*319757*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319759*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (srl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPSRLVQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319769*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::ROTR),// ->319792
/*319772*/            OPC_RecordChild0, // #1 = $src1
/*319773*/            OPC_RecordChild1, // #2 = $src2
/*319774*/            OPC_CheckChild1Type, MVT::v2i64,
/*319776*/            OPC_MoveParent,
/*319777*/            OPC_RecordChild2, // #3 = $src0
/*319778*/            OPC_CheckType, MVT::v2i64,
/*319780*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319782*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPRORVQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319792*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::ROTL),// ->319815
/*319795*/            OPC_RecordChild0, // #1 = $src1
/*319796*/            OPC_RecordChild1, // #2 = $src2
/*319797*/            OPC_CheckChild1Type, MVT::v2i64,
/*319799*/            OPC_MoveParent,
/*319800*/            OPC_RecordChild2, // #3 = $src0
/*319801*/            OPC_CheckType, MVT::v2i64,
/*319803*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319805*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (rotl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPROLVQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319815*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VSRAV),// ->319836
/*319818*/            OPC_RecordChild0, // #1 = $src1
/*319819*/            OPC_RecordChild1, // #2 = $src2
/*319820*/            OPC_MoveParent,
/*319821*/            OPC_RecordChild2, // #3 = $src0
/*319822*/            OPC_CheckType, MVT::v2i64,
/*319824*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*319826*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrav:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPSRAVQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*319836*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52L),// ->319859
/*319839*/            OPC_RecordChild0, // #1 = $src2
/*319840*/            OPC_RecordChild1, // #2 = $src3
/*319841*/            OPC_RecordChild2, // #3 = $src1
/*319842*/            OPC_MoveParent,
/*319843*/            OPC_CheckChild2Same, 3,
/*319845*/            OPC_CheckType, MVT::v2i64,
/*319847*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*319849*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128rk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52l:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 6
                      // Dst: (VPMADD52LUQZ128rk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*319859*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52H),// ->319882
/*319862*/            OPC_RecordChild0, // #1 = $src2
/*319863*/            OPC_RecordChild1, // #2 = $src3
/*319864*/            OPC_RecordChild2, // #3 = $src1
/*319865*/            OPC_MoveParent,
/*319866*/            OPC_CheckChild2Same, 3,
/*319868*/            OPC_CheckType, MVT::v2i64,
/*319870*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*319872*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128rk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (x86vpmadd52h:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 6
                      // Dst: (VPMADD52HUQZ128rk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*319882*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTP2SI),// ->319924
/*319885*/            OPC_RecordChild0, // #1 = $src
/*319886*/            OPC_Scope, 17, /*->319905*/ // 2 children in Scope
/*319888*/              OPC_CheckChild0Type, MVT::v2f64,
/*319890*/              OPC_MoveParent,
/*319891*/              OPC_RecordChild2, // #2 = $src0
/*319892*/              OPC_CheckType, MVT::v2i64,
/*319894*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*319896*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTPD2QQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*319905*/            /*Scope*/ 17, /*->319923*/
/*319906*/              OPC_CheckChild0Type, MVT::v4f32,
/*319908*/              OPC_MoveParent,
/*319909*/              OPC_RecordChild2, // #2 = $src0
/*319910*/              OPC_CheckType, MVT::v2i64,
/*319912*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*319914*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTPS2QQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*319923*/            0, /*End of Scope*/
/*319924*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTP2UI),// ->319966
/*319927*/            OPC_RecordChild0, // #1 = $src
/*319928*/            OPC_Scope, 17, /*->319947*/ // 2 children in Scope
/*319930*/              OPC_CheckChild0Type, MVT::v2f64,
/*319932*/              OPC_MoveParent,
/*319933*/              OPC_RecordChild2, // #2 = $src0
/*319934*/              OPC_CheckType, MVT::v2i64,
/*319936*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*319938*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTPD2UQQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*319947*/            /*Scope*/ 17, /*->319965*/
/*319948*/              OPC_CheckChild0Type, MVT::v4f32,
/*319950*/              OPC_MoveParent,
/*319951*/              OPC_RecordChild2, // #2 = $src0
/*319952*/              OPC_CheckType, MVT::v2i64,
/*319954*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*319956*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTPS2UQQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*319965*/            0, /*End of Scope*/
/*319966*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTTP2SI),// ->320008
/*319969*/            OPC_RecordChild0, // #1 = $src
/*319970*/            OPC_Scope, 17, /*->319989*/ // 2 children in Scope
/*319972*/              OPC_CheckChild0Type, MVT::v2f64,
/*319974*/              OPC_MoveParent,
/*319975*/              OPC_RecordChild2, // #2 = $src0
/*319976*/              OPC_CheckType, MVT::v2i64,
/*319978*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*319980*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPD2QQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*319989*/            /*Scope*/ 17, /*->320007*/
/*319990*/              OPC_CheckChild0Type, MVT::v4f32,
/*319992*/              OPC_MoveParent,
/*319993*/              OPC_RecordChild2, // #2 = $src0
/*319994*/              OPC_CheckType, MVT::v2i64,
/*319996*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*319998*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPS2QQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*320007*/            0, /*End of Scope*/
/*320008*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTTP2UI),// ->320050
/*320011*/            OPC_RecordChild0, // #1 = $src
/*320012*/            OPC_Scope, 17, /*->320031*/ // 2 children in Scope
/*320014*/              OPC_CheckChild0Type, MVT::v2f64,
/*320016*/              OPC_MoveParent,
/*320017*/              OPC_RecordChild2, // #2 = $src0
/*320018*/              OPC_CheckType, MVT::v2i64,
/*320020*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*320022*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPD2UQQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*320031*/            /*Scope*/ 17, /*->320049*/
/*320032*/              OPC_CheckChild0Type, MVT::v4f32,
/*320034*/              OPC_MoveParent,
/*320035*/              OPC_RecordChild2, // #2 = $src0
/*320036*/              OPC_CheckType, MVT::v2i64,
/*320038*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*320040*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPS2UQQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*320049*/            0, /*End of Scope*/
/*320050*/          /*SwitchOpcode*/ 57, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->320110
/*320053*/            OPC_RecordChild0, // #1 = $src
/*320054*/            OPC_Scope, 17, /*->320073*/ // 3 children in Scope
/*320056*/              OPC_CheckChild0Type, MVT::v16i8,
/*320058*/              OPC_MoveParent,
/*320059*/              OPC_RecordChild2, // #2 = $src0
/*320060*/              OPC_CheckType, MVT::v2i64,
/*320062*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320064*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (zext_invec:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXBQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*320073*/            /*Scope*/ 17, /*->320091*/
/*320074*/              OPC_CheckChild0Type, MVT::v8i16,
/*320076*/              OPC_MoveParent,
/*320077*/              OPC_RecordChild2, // #2 = $src0
/*320078*/              OPC_CheckType, MVT::v2i64,
/*320080*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320082*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (zext_invec:{ *:[v2i64] } VR128X:{ *:[v8i16] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXWQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*320091*/            /*Scope*/ 17, /*->320109*/
/*320092*/              OPC_CheckChild0Type, MVT::v4i32,
/*320094*/              OPC_MoveParent,
/*320095*/              OPC_RecordChild2, // #2 = $src0
/*320096*/              OPC_CheckType, MVT::v2i64,
/*320098*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320100*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (zext_invec:{ *:[v2i64] } VR128X:{ *:[v4i32] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*320109*/            0, /*End of Scope*/
/*320110*/          /*SwitchOpcode*/ 57, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->320170
/*320113*/            OPC_RecordChild0, // #1 = $src
/*320114*/            OPC_Scope, 17, /*->320133*/ // 3 children in Scope
/*320116*/              OPC_CheckChild0Type, MVT::v16i8,
/*320118*/              OPC_MoveParent,
/*320119*/              OPC_RecordChild2, // #2 = $src0
/*320120*/              OPC_CheckType, MVT::v2i64,
/*320122*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320124*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sext_invec:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXBQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*320133*/            /*Scope*/ 17, /*->320151*/
/*320134*/              OPC_CheckChild0Type, MVT::v8i16,
/*320136*/              OPC_MoveParent,
/*320137*/              OPC_RecordChild2, // #2 = $src0
/*320138*/              OPC_CheckType, MVT::v2i64,
/*320140*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320142*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sext_invec:{ *:[v2i64] } VR128X:{ *:[v8i16] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXWQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*320151*/            /*Scope*/ 17, /*->320169*/
/*320152*/              OPC_CheckChild0Type, MVT::v4i32,
/*320154*/              OPC_MoveParent,
/*320155*/              OPC_RecordChild2, // #2 = $src0
/*320156*/              OPC_CheckType, MVT::v2i64,
/*320158*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ128rrk), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (sext_invec:{ *:[v2i64] } VR128X:{ *:[v4i32] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*320169*/            0, /*End of Scope*/
/*320170*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::COMPRESS),// ->320189
/*320173*/            OPC_RecordChild0, // #1 = $src1
/*320174*/            OPC_MoveParent,
/*320175*/            OPC_RecordChild2, // #2 = $src0
/*320176*/            OPC_CheckType, MVT::v2i64,
/*320178*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320180*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZ128rrk), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86compress:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPCOMPRESSQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*320189*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::EXPAND),// ->320208
/*320192*/            OPC_RecordChild0, // #1 = $src1
/*320193*/            OPC_MoveParent,
/*320194*/            OPC_RecordChild2, // #2 = $src0
/*320195*/            OPC_CheckType, MVT::v2i64,
/*320197*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320199*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rrk), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86expand:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPEXPANDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*320208*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::ABS),// ->320227
/*320211*/            OPC_RecordChild0, // #1 = $src1
/*320212*/            OPC_MoveParent,
/*320213*/            OPC_RecordChild2, // #2 = $src0
/*320214*/            OPC_CheckType, MVT::v2i64,
/*320216*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320218*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ128rrk), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (abs:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPABSQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*320227*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::CTLZ),// ->320246
/*320230*/            OPC_RecordChild0, // #1 = $src1
/*320231*/            OPC_MoveParent,
/*320232*/            OPC_RecordChild2, // #2 = $src0
/*320233*/            OPC_CheckType, MVT::v2i64,
/*320235*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*320237*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ128rrk), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctlz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPLZCNTQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*320246*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::CONFLICT),// ->320265
/*320249*/            OPC_RecordChild0, // #1 = $src1
/*320250*/            OPC_MoveParent,
/*320251*/            OPC_RecordChild2, // #2 = $src0
/*320252*/            OPC_CheckType, MVT::v2i64,
/*320254*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*320256*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ128rrk), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Conflict:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPCONFLICTQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*320265*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::CTPOP),// ->320284
/*320268*/            OPC_RecordChild0, // #1 = $src1
/*320269*/            OPC_MoveParent,
/*320270*/            OPC_RecordChild2, // #2 = $src0
/*320271*/            OPC_CheckType, MVT::v2i64,
/*320273*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*320275*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ128rrk), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctpop:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPOPCNTQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*320284*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKL),// ->320305
/*320287*/            OPC_RecordChild0, // #1 = $src1
/*320288*/            OPC_RecordChild1, // #2 = $src2
/*320289*/            OPC_MoveParent,
/*320290*/            OPC_RecordChild2, // #3 = $src0
/*320291*/            OPC_CheckType, MVT::v2i64,
/*320293*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320295*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPUNPCKLQDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*320305*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKH),// ->320326
/*320308*/            OPC_RecordChild0, // #1 = $src1
/*320309*/            OPC_RecordChild1, // #2 = $src2
/*320310*/            OPC_MoveParent,
/*320311*/            OPC_RecordChild2, // #3 = $src0
/*320312*/            OPC_CheckType, MVT::v2i64,
/*320314*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320316*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                      // Dst: (VPUNPCKHQDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*320326*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHLDV),// ->320349
/*320329*/            OPC_RecordChild0, // #1 = $src1
/*320330*/            OPC_RecordChild1, // #2 = $src2
/*320331*/            OPC_RecordChild2, // #3 = $src3
/*320332*/            OPC_MoveParent,
/*320333*/            OPC_CheckChild2Same, 1,
/*320335*/            OPC_CheckType, MVT::v2i64,
/*320337*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*320339*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ128rk), 0,
                          MVT::v2i64, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShldv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3), VR128X:{ *:[v2i64] }:$src1) - Complexity = 6
                      // Dst: (VPSHLDVQZ128rk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*320349*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHRDV),// ->320372
/*320352*/            OPC_RecordChild0, // #1 = $src1
/*320353*/            OPC_RecordChild1, // #2 = $src2
/*320354*/            OPC_RecordChild2, // #3 = $src3
/*320355*/            OPC_MoveParent,
/*320356*/            OPC_CheckChild2Same, 1,
/*320358*/            OPC_CheckType, MVT::v2i64,
/*320360*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*320362*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ128rk), 0,
                          MVT::v2i64, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrdv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3), VR128X:{ *:[v2i64] }:$src1) - Complexity = 6
                      // Dst: (VPSHRDVQZ128rk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*320372*/          0, // EndSwitchOpcode
/*320373*/        /*Scope*/ 88, /*->320462*/
/*320374*/          OPC_RecordChild1, // #1 = $src1
/*320375*/          OPC_RecordChild2, // #2 = $src0
/*320376*/          OPC_CheckType, MVT::v2i64,
/*320378*/          OPC_Scope, 11, /*->320391*/ // 2 children in Scope
/*320380*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320382*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrk), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src0) - Complexity = 3
                      // Dst: (VMOVDQA64Z128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*320391*/          /*Scope*/ 69, /*->320461*/
/*320392*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*320394*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*320400*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*320403*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*320412*/            OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*320415*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*320423*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*320429*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*320432*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*320441*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Zrrk), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*320450*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*320453*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 11, 12, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src0) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VMOVDQA64Zrrk:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src0, sub_xmm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v8i1] } VK2WM:{ *:[v2i1] }:$mask, VK8WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*320461*/          0, /*End of Scope*/
/*320462*/        /*Scope*/ 82|128,115/*14802*/, /*->335266*/
/*320464*/          OPC_MoveChild1,
/*320465*/          OPC_SwitchOpcode /*45 cases */, 122|128,1/*250*/, TARGET_VAL(X86ISD::VFIXUPIMM),// ->320720
/*320470*/            OPC_RecordChild0, // #1 = $src1
/*320471*/            OPC_RecordChild1, // #2 = $src2
/*320472*/            OPC_Scope, 74|128,1/*202*/, /*->320677*/ // 2 children in Scope
/*320475*/              OPC_MoveChild2,
/*320476*/              OPC_SwitchOpcode /*2 cases */, 99, TARGET_VAL(X86ISD::VBROADCAST),// ->320579
/*320480*/                OPC_MoveChild0,
/*320481*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*320484*/                OPC_RecordMemRef,
/*320485*/                OPC_RecordNode, // #3 = 'ld' chained node
/*320486*/                OPC_CheckFoldableChainNode,
/*320487*/                OPC_RecordChild1, // #4 = $src3
/*320488*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*320490*/                OPC_CheckPredicate, 9, // Predicate_load
/*320492*/                OPC_CheckType, MVT::i64,
/*320494*/                OPC_MoveParent,
/*320495*/                OPC_MoveParent,
/*320496*/                OPC_RecordChild3, // #5 = $src4
/*320497*/                OPC_MoveChild3,
/*320498*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*320501*/                OPC_MoveParent,
/*320502*/                OPC_CheckChild4Integer, 4, 
/*320504*/                OPC_MoveParent,
/*320505*/                OPC_Scope, 41, /*->320548*/ // 2 children in Scope
/*320507*/                  OPC_MoveChild2,
/*320508*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*320511*/                  OPC_MoveChild0,
/*320512*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*320515*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*320517*/                  OPC_CheckType, MVT::v4i32,
/*320519*/                  OPC_MoveParent,
/*320520*/                  OPC_MoveParent,
/*320521*/                  OPC_CheckType, MVT::v2f64,
/*320523*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320525*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*320528*/                  OPC_EmitMergeInputChains, 1, 3, 
/*320531*/                  OPC_EmitConvertToTarget, 5,
/*320533*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 46
                            // Dst: (VFIXUPIMMPDZ128rmbikz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*320548*/                /*Scope*/ 29, /*->320578*/
/*320549*/                  OPC_CheckChild2Same, 1,
/*320551*/                  OPC_CheckType, MVT::v2f64,
/*320553*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320555*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*320558*/                  OPC_EmitMergeInputChains, 1, 3, 
/*320561*/                  OPC_EmitConvertToTarget, 5,
/*320563*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src1) - Complexity = 39
                            // Dst: (VFIXUPIMMPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*320578*/                0, /*End of Scope*/
/*320579*/              /*SwitchOpcode*/ 94, TARGET_VAL(ISD::LOAD),// ->320676
/*320582*/                OPC_RecordMemRef,
/*320583*/                OPC_RecordNode, // #3 = 'ld' chained node
/*320584*/                OPC_CheckFoldableChainNode,
/*320585*/                OPC_RecordChild1, // #4 = $src3
/*320586*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*320588*/                OPC_CheckPredicate, 9, // Predicate_load
/*320590*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*320592*/                OPC_MoveParent,
/*320593*/                OPC_RecordChild3, // #5 = $src4
/*320594*/                OPC_MoveChild3,
/*320595*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*320598*/                OPC_MoveParent,
/*320599*/                OPC_CheckChild4Integer, 4, 
/*320601*/                OPC_MoveParent,
/*320602*/                OPC_Scope, 41, /*->320645*/ // 2 children in Scope
/*320604*/                  OPC_MoveChild2,
/*320605*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*320608*/                  OPC_MoveChild0,
/*320609*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*320612*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*320614*/                  OPC_CheckType, MVT::v4i32,
/*320616*/                  OPC_MoveParent,
/*320617*/                  OPC_MoveParent,
/*320618*/                  OPC_CheckType, MVT::v2f64,
/*320620*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320622*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*320625*/                  OPC_EmitMergeInputChains, 1, 3, 
/*320628*/                  OPC_EmitConvertToTarget, 5,
/*320630*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                            // Dst: (VFIXUPIMMPDZ128rmikz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*320645*/                /*Scope*/ 29, /*->320675*/
/*320646*/                  OPC_CheckChild2Same, 1,
/*320648*/                  OPC_CheckType, MVT::v2f64,
/*320650*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320652*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*320655*/                  OPC_EmitMergeInputChains, 1, 3, 
/*320658*/                  OPC_EmitConvertToTarget, 5,
/*320660*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src1) - Complexity = 36
                            // Dst: (VFIXUPIMMPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*320675*/                0, /*End of Scope*/
/*320676*/              0, // EndSwitchOpcode
/*320677*/            /*Scope*/ 41, /*->320719*/
/*320678*/              OPC_RecordChild2, // #3 = $src3
/*320679*/              OPC_RecordChild3, // #4 = $src4
/*320680*/              OPC_MoveChild3,
/*320681*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*320684*/              OPC_MoveParent,
/*320685*/              OPC_CheckChild4Integer, 4, 
/*320687*/              OPC_MoveParent,
/*320688*/              OPC_MoveChild2,
/*320689*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*320692*/              OPC_MoveChild0,
/*320693*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*320696*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*320698*/              OPC_CheckType, MVT::v4i32,
/*320700*/              OPC_MoveParent,
/*320701*/              OPC_MoveParent,
/*320702*/              OPC_CheckType, MVT::v2f64,
/*320704*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320706*/              OPC_EmitConvertToTarget, 4,
/*320708*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rrikz), 0,
                            MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                        // Dst: (VFIXUPIMMPDZ128rrikz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*320719*/            0, /*End of Scope*/
/*320720*/          /*SwitchOpcode*/ 56|128,13/*1720*/, TARGET_VAL(ISD::BITCAST),// ->322444
/*320724*/            OPC_Scope, 83|128,12/*1619*/, /*->322346*/ // 2 children in Scope
/*320727*/              OPC_MoveChild0,
/*320728*/              OPC_SwitchOpcode /*5 cases */, 58|128,3/*442*/, TARGET_VAL(ISD::AND),// ->321175
/*320733*/                OPC_Scope, 67, /*->320802*/ // 8 children in Scope
/*320735*/                  OPC_RecordChild0, // #1 = $src1
/*320736*/                  OPC_MoveChild1,
/*320737*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*320740*/                  OPC_MoveChild0,
/*320741*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*320744*/                  OPC_MoveChild0,
/*320745*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*320748*/                  OPC_RecordMemRef,
/*320749*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*320750*/                  OPC_CheckFoldableChainNode,
/*320751*/                  OPC_RecordChild1, // #3 = $src2
/*320752*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*320754*/                  OPC_CheckPredicate, 9, // Predicate_load
/*320756*/                  OPC_CheckType, MVT::f64,
/*320758*/                  OPC_MoveParent,
/*320759*/                  OPC_CheckType, MVT::v2f64,
/*320761*/                  OPC_MoveParent,
/*320762*/                  OPC_MoveParent,
/*320763*/                  OPC_CheckType, MVT::v2i64,
/*320765*/                  OPC_MoveParent,
/*320766*/                  OPC_MoveParent,
/*320767*/                  OPC_MoveChild2,
/*320768*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*320771*/                  OPC_MoveChild0,
/*320772*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*320775*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*320777*/                  OPC_CheckType, MVT::v4i32,
/*320779*/                  OPC_MoveParent,
/*320780*/                  OPC_MoveParent,
/*320781*/                  OPC_CheckType, MVT::v2f64,
/*320783*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*320785*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*320788*/                  OPC_EmitMergeInputChains1_2,
/*320789*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPANDQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*320802*/                /*Scope*/ 67, /*->320870*/
/*320803*/                  OPC_MoveChild0,
/*320804*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*320807*/                  OPC_MoveChild0,
/*320808*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*320811*/                  OPC_MoveChild0,
/*320812*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*320815*/                  OPC_RecordMemRef,
/*320816*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*320817*/                  OPC_CheckFoldableChainNode,
/*320818*/                  OPC_RecordChild1, // #2 = $src2
/*320819*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*320821*/                  OPC_CheckPredicate, 9, // Predicate_load
/*320823*/                  OPC_CheckType, MVT::f64,
/*320825*/                  OPC_MoveParent,
/*320826*/                  OPC_CheckType, MVT::v2f64,
/*320828*/                  OPC_MoveParent,
/*320829*/                  OPC_MoveParent,
/*320830*/                  OPC_RecordChild1, // #3 = $src1
/*320831*/                  OPC_CheckType, MVT::v2i64,
/*320833*/                  OPC_MoveParent,
/*320834*/                  OPC_MoveParent,
/*320835*/                  OPC_MoveChild2,
/*320836*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*320839*/                  OPC_MoveChild0,
/*320840*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*320843*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*320845*/                  OPC_CheckType, MVT::v4i32,
/*320847*/                  OPC_MoveParent,
/*320848*/                  OPC_MoveParent,
/*320849*/                  OPC_CheckType, MVT::v2f64,
/*320851*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*320853*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*320856*/                  OPC_EmitMergeInputChains1_1,
/*320857*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPANDQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*320870*/                /*Scope*/ 53, /*->320924*/
/*320871*/                  OPC_RecordChild0, // #1 = $src1
/*320872*/                  OPC_MoveChild1,
/*320873*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*320876*/                  OPC_RecordMemRef,
/*320877*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*320878*/                  OPC_CheckFoldableChainNode,
/*320879*/                  OPC_RecordChild1, // #3 = $src2
/*320880*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*320882*/                  OPC_CheckPredicate, 9, // Predicate_load
/*320884*/                  OPC_MoveParent,
/*320885*/                  OPC_CheckType, MVT::v2i64,
/*320887*/                  OPC_MoveParent,
/*320888*/                  OPC_MoveParent,
/*320889*/                  OPC_MoveChild2,
/*320890*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*320893*/                  OPC_MoveChild0,
/*320894*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*320897*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*320899*/                  OPC_CheckType, MVT::v4i32,
/*320901*/                  OPC_MoveParent,
/*320902*/                  OPC_MoveParent,
/*320903*/                  OPC_CheckType, MVT::v2f64,
/*320905*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*320907*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*320910*/                  OPC_EmitMergeInputChains1_2,
/*320911*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPANDQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*320924*/                /*Scope*/ 53, /*->320978*/
/*320925*/                  OPC_MoveChild0,
/*320926*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*320929*/                  OPC_RecordMemRef,
/*320930*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*320931*/                  OPC_CheckFoldableChainNode,
/*320932*/                  OPC_RecordChild1, // #2 = $src2
/*320933*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*320935*/                  OPC_CheckPredicate, 9, // Predicate_load
/*320937*/                  OPC_MoveParent,
/*320938*/                  OPC_RecordChild1, // #3 = $src1
/*320939*/                  OPC_CheckType, MVT::v2i64,
/*320941*/                  OPC_MoveParent,
/*320942*/                  OPC_MoveParent,
/*320943*/                  OPC_MoveChild2,
/*320944*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*320947*/                  OPC_MoveChild0,
/*320948*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*320951*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*320953*/                  OPC_CheckType, MVT::v4i32,
/*320955*/                  OPC_MoveParent,
/*320956*/                  OPC_MoveParent,
/*320957*/                  OPC_CheckType, MVT::v2f64,
/*320959*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*320961*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*320964*/                  OPC_EmitMergeInputChains1_1,
/*320965*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPANDQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*320978*/                /*Scope*/ 55, /*->321034*/
/*320979*/                  OPC_RecordChild0, // #1 = $src1
/*320980*/                  OPC_MoveChild1,
/*320981*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*320984*/                  OPC_MoveChild0,
/*320985*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*320988*/                  OPC_MoveChild0,
/*320989*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*320992*/                  OPC_RecordMemRef,
/*320993*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*320994*/                  OPC_CheckFoldableChainNode,
/*320995*/                  OPC_RecordChild1, // #3 = $src2
/*320996*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*320998*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321000*/                  OPC_CheckType, MVT::f64,
/*321002*/                  OPC_MoveParent,
/*321003*/                  OPC_CheckType, MVT::v2f64,
/*321005*/                  OPC_MoveParent,
/*321006*/                  OPC_MoveParent,
/*321007*/                  OPC_CheckType, MVT::v2i64,
/*321009*/                  OPC_MoveParent,
/*321010*/                  OPC_MoveParent,
/*321011*/                  OPC_RecordChild2, // #4 = $src0
/*321012*/                  OPC_CheckType, MVT::v2f64,
/*321014*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321016*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*321019*/                  OPC_EmitMergeInputChains1_2,
/*321020*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR128X:{ *:[v2f64] }:$src0) - Complexity = 37
                            // Dst: (VPANDQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321034*/                /*Scope*/ 55, /*->321090*/
/*321035*/                  OPC_MoveChild0,
/*321036*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321039*/                  OPC_MoveChild0,
/*321040*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*321043*/                  OPC_MoveChild0,
/*321044*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321047*/                  OPC_RecordMemRef,
/*321048*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*321049*/                  OPC_CheckFoldableChainNode,
/*321050*/                  OPC_RecordChild1, // #2 = $src2
/*321051*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321053*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321055*/                  OPC_CheckType, MVT::f64,
/*321057*/                  OPC_MoveParent,
/*321058*/                  OPC_CheckType, MVT::v2f64,
/*321060*/                  OPC_MoveParent,
/*321061*/                  OPC_MoveParent,
/*321062*/                  OPC_RecordChild1, // #3 = $src1
/*321063*/                  OPC_CheckType, MVT::v2i64,
/*321065*/                  OPC_MoveParent,
/*321066*/                  OPC_MoveParent,
/*321067*/                  OPC_RecordChild2, // #4 = $src0
/*321068*/                  OPC_CheckType, MVT::v2f64,
/*321070*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321072*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*321075*/                  OPC_EmitMergeInputChains1_1,
/*321076*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 37
                            // Dst: (VPANDQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321090*/                /*Scope*/ 41, /*->321132*/
/*321091*/                  OPC_RecordChild0, // #1 = $src1
/*321092*/                  OPC_MoveChild1,
/*321093*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321096*/                  OPC_RecordMemRef,
/*321097*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*321098*/                  OPC_CheckFoldableChainNode,
/*321099*/                  OPC_RecordChild1, // #3 = $src2
/*321100*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321102*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321104*/                  OPC_MoveParent,
/*321105*/                  OPC_CheckType, MVT::v2i64,
/*321107*/                  OPC_MoveParent,
/*321108*/                  OPC_MoveParent,
/*321109*/                  OPC_RecordChild2, // #4 = $src0
/*321110*/                  OPC_CheckType, MVT::v2f64,
/*321112*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321114*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*321117*/                  OPC_EmitMergeInputChains1_2,
/*321118*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                            // Dst: (VPANDQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321132*/                /*Scope*/ 41, /*->321174*/
/*321133*/                  OPC_MoveChild0,
/*321134*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321137*/                  OPC_RecordMemRef,
/*321138*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*321139*/                  OPC_CheckFoldableChainNode,
/*321140*/                  OPC_RecordChild1, // #2 = $src2
/*321141*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321143*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321145*/                  OPC_MoveParent,
/*321146*/                  OPC_RecordChild1, // #3 = $src1
/*321147*/                  OPC_CheckType, MVT::v2i64,
/*321149*/                  OPC_MoveParent,
/*321150*/                  OPC_MoveParent,
/*321151*/                  OPC_RecordChild2, // #4 = $src0
/*321152*/                  OPC_CheckType, MVT::v2f64,
/*321154*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321156*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*321159*/                  OPC_EmitMergeInputChains1_1,
/*321160*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                            // Dst: (VPANDQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321174*/                0, /*End of Scope*/
/*321175*/              /*SwitchOpcode*/ 58|128,3/*442*/, TARGET_VAL(ISD::OR),// ->321621
/*321179*/                OPC_Scope, 67, /*->321248*/ // 8 children in Scope
/*321181*/                  OPC_RecordChild0, // #1 = $src1
/*321182*/                  OPC_MoveChild1,
/*321183*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321186*/                  OPC_MoveChild0,
/*321187*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*321190*/                  OPC_MoveChild0,
/*321191*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321194*/                  OPC_RecordMemRef,
/*321195*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*321196*/                  OPC_CheckFoldableChainNode,
/*321197*/                  OPC_RecordChild1, // #3 = $src2
/*321198*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321200*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321202*/                  OPC_CheckType, MVT::f64,
/*321204*/                  OPC_MoveParent,
/*321205*/                  OPC_CheckType, MVT::v2f64,
/*321207*/                  OPC_MoveParent,
/*321208*/                  OPC_MoveParent,
/*321209*/                  OPC_CheckType, MVT::v2i64,
/*321211*/                  OPC_MoveParent,
/*321212*/                  OPC_MoveParent,
/*321213*/                  OPC_MoveChild2,
/*321214*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321217*/                  OPC_MoveChild0,
/*321218*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*321221*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*321223*/                  OPC_CheckType, MVT::v4i32,
/*321225*/                  OPC_MoveParent,
/*321226*/                  OPC_MoveParent,
/*321227*/                  OPC_CheckType, MVT::v2f64,
/*321229*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321231*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*321234*/                  OPC_EmitMergeInputChains1_2,
/*321235*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPORQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321248*/                /*Scope*/ 67, /*->321316*/
/*321249*/                  OPC_MoveChild0,
/*321250*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321253*/                  OPC_MoveChild0,
/*321254*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*321257*/                  OPC_MoveChild0,
/*321258*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321261*/                  OPC_RecordMemRef,
/*321262*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*321263*/                  OPC_CheckFoldableChainNode,
/*321264*/                  OPC_RecordChild1, // #2 = $src2
/*321265*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321267*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321269*/                  OPC_CheckType, MVT::f64,
/*321271*/                  OPC_MoveParent,
/*321272*/                  OPC_CheckType, MVT::v2f64,
/*321274*/                  OPC_MoveParent,
/*321275*/                  OPC_MoveParent,
/*321276*/                  OPC_RecordChild1, // #3 = $src1
/*321277*/                  OPC_CheckType, MVT::v2i64,
/*321279*/                  OPC_MoveParent,
/*321280*/                  OPC_MoveParent,
/*321281*/                  OPC_MoveChild2,
/*321282*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321285*/                  OPC_MoveChild0,
/*321286*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*321289*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*321291*/                  OPC_CheckType, MVT::v4i32,
/*321293*/                  OPC_MoveParent,
/*321294*/                  OPC_MoveParent,
/*321295*/                  OPC_CheckType, MVT::v2f64,
/*321297*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321299*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*321302*/                  OPC_EmitMergeInputChains1_1,
/*321303*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPORQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321316*/                /*Scope*/ 53, /*->321370*/
/*321317*/                  OPC_RecordChild0, // #1 = $src1
/*321318*/                  OPC_MoveChild1,
/*321319*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321322*/                  OPC_RecordMemRef,
/*321323*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*321324*/                  OPC_CheckFoldableChainNode,
/*321325*/                  OPC_RecordChild1, // #3 = $src2
/*321326*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321328*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321330*/                  OPC_MoveParent,
/*321331*/                  OPC_CheckType, MVT::v2i64,
/*321333*/                  OPC_MoveParent,
/*321334*/                  OPC_MoveParent,
/*321335*/                  OPC_MoveChild2,
/*321336*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321339*/                  OPC_MoveChild0,
/*321340*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*321343*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*321345*/                  OPC_CheckType, MVT::v4i32,
/*321347*/                  OPC_MoveParent,
/*321348*/                  OPC_MoveParent,
/*321349*/                  OPC_CheckType, MVT::v2f64,
/*321351*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321353*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*321356*/                  OPC_EmitMergeInputChains1_2,
/*321357*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321370*/                /*Scope*/ 53, /*->321424*/
/*321371*/                  OPC_MoveChild0,
/*321372*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321375*/                  OPC_RecordMemRef,
/*321376*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*321377*/                  OPC_CheckFoldableChainNode,
/*321378*/                  OPC_RecordChild1, // #2 = $src2
/*321379*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321381*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321383*/                  OPC_MoveParent,
/*321384*/                  OPC_RecordChild1, // #3 = $src1
/*321385*/                  OPC_CheckType, MVT::v2i64,
/*321387*/                  OPC_MoveParent,
/*321388*/                  OPC_MoveParent,
/*321389*/                  OPC_MoveChild2,
/*321390*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321393*/                  OPC_MoveChild0,
/*321394*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*321397*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*321399*/                  OPC_CheckType, MVT::v4i32,
/*321401*/                  OPC_MoveParent,
/*321402*/                  OPC_MoveParent,
/*321403*/                  OPC_CheckType, MVT::v2f64,
/*321405*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321407*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*321410*/                  OPC_EmitMergeInputChains1_1,
/*321411*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321424*/                /*Scope*/ 55, /*->321480*/
/*321425*/                  OPC_RecordChild0, // #1 = $src1
/*321426*/                  OPC_MoveChild1,
/*321427*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321430*/                  OPC_MoveChild0,
/*321431*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*321434*/                  OPC_MoveChild0,
/*321435*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321438*/                  OPC_RecordMemRef,
/*321439*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*321440*/                  OPC_CheckFoldableChainNode,
/*321441*/                  OPC_RecordChild1, // #3 = $src2
/*321442*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321444*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321446*/                  OPC_CheckType, MVT::f64,
/*321448*/                  OPC_MoveParent,
/*321449*/                  OPC_CheckType, MVT::v2f64,
/*321451*/                  OPC_MoveParent,
/*321452*/                  OPC_MoveParent,
/*321453*/                  OPC_CheckType, MVT::v2i64,
/*321455*/                  OPC_MoveParent,
/*321456*/                  OPC_MoveParent,
/*321457*/                  OPC_RecordChild2, // #4 = $src0
/*321458*/                  OPC_CheckType, MVT::v2f64,
/*321460*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321462*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*321465*/                  OPC_EmitMergeInputChains1_2,
/*321466*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR128X:{ *:[v2f64] }:$src0) - Complexity = 37
                            // Dst: (VPORQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321480*/                /*Scope*/ 55, /*->321536*/
/*321481*/                  OPC_MoveChild0,
/*321482*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321485*/                  OPC_MoveChild0,
/*321486*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*321489*/                  OPC_MoveChild0,
/*321490*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321493*/                  OPC_RecordMemRef,
/*321494*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*321495*/                  OPC_CheckFoldableChainNode,
/*321496*/                  OPC_RecordChild1, // #2 = $src2
/*321497*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321499*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321501*/                  OPC_CheckType, MVT::f64,
/*321503*/                  OPC_MoveParent,
/*321504*/                  OPC_CheckType, MVT::v2f64,
/*321506*/                  OPC_MoveParent,
/*321507*/                  OPC_MoveParent,
/*321508*/                  OPC_RecordChild1, // #3 = $src1
/*321509*/                  OPC_CheckType, MVT::v2i64,
/*321511*/                  OPC_MoveParent,
/*321512*/                  OPC_MoveParent,
/*321513*/                  OPC_RecordChild2, // #4 = $src0
/*321514*/                  OPC_CheckType, MVT::v2f64,
/*321516*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321518*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*321521*/                  OPC_EmitMergeInputChains1_1,
/*321522*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 37
                            // Dst: (VPORQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321536*/                /*Scope*/ 41, /*->321578*/
/*321537*/                  OPC_RecordChild0, // #1 = $src1
/*321538*/                  OPC_MoveChild1,
/*321539*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321542*/                  OPC_RecordMemRef,
/*321543*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*321544*/                  OPC_CheckFoldableChainNode,
/*321545*/                  OPC_RecordChild1, // #3 = $src2
/*321546*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321548*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321550*/                  OPC_MoveParent,
/*321551*/                  OPC_CheckType, MVT::v2i64,
/*321553*/                  OPC_MoveParent,
/*321554*/                  OPC_MoveParent,
/*321555*/                  OPC_RecordChild2, // #4 = $src0
/*321556*/                  OPC_CheckType, MVT::v2f64,
/*321558*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321560*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*321563*/                  OPC_EmitMergeInputChains1_2,
/*321564*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                            // Dst: (VPORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321578*/                /*Scope*/ 41, /*->321620*/
/*321579*/                  OPC_MoveChild0,
/*321580*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321583*/                  OPC_RecordMemRef,
/*321584*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*321585*/                  OPC_CheckFoldableChainNode,
/*321586*/                  OPC_RecordChild1, // #2 = $src2
/*321587*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321589*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321591*/                  OPC_MoveParent,
/*321592*/                  OPC_RecordChild1, // #3 = $src1
/*321593*/                  OPC_CheckType, MVT::v2i64,
/*321595*/                  OPC_MoveParent,
/*321596*/                  OPC_MoveParent,
/*321597*/                  OPC_RecordChild2, // #4 = $src0
/*321598*/                  OPC_CheckType, MVT::v2f64,
/*321600*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321602*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*321605*/                  OPC_EmitMergeInputChains1_1,
/*321606*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                            // Dst: (VPORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321620*/                0, /*End of Scope*/
/*321621*/              /*SwitchOpcode*/ 58|128,3/*442*/, TARGET_VAL(ISD::XOR),// ->322067
/*321625*/                OPC_Scope, 67, /*->321694*/ // 8 children in Scope
/*321627*/                  OPC_RecordChild0, // #1 = $src1
/*321628*/                  OPC_MoveChild1,
/*321629*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321632*/                  OPC_MoveChild0,
/*321633*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*321636*/                  OPC_MoveChild0,
/*321637*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321640*/                  OPC_RecordMemRef,
/*321641*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*321642*/                  OPC_CheckFoldableChainNode,
/*321643*/                  OPC_RecordChild1, // #3 = $src2
/*321644*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321646*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321648*/                  OPC_CheckType, MVT::f64,
/*321650*/                  OPC_MoveParent,
/*321651*/                  OPC_CheckType, MVT::v2f64,
/*321653*/                  OPC_MoveParent,
/*321654*/                  OPC_MoveParent,
/*321655*/                  OPC_CheckType, MVT::v2i64,
/*321657*/                  OPC_MoveParent,
/*321658*/                  OPC_MoveParent,
/*321659*/                  OPC_MoveChild2,
/*321660*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321663*/                  OPC_MoveChild0,
/*321664*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*321667*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*321669*/                  OPC_CheckType, MVT::v4i32,
/*321671*/                  OPC_MoveParent,
/*321672*/                  OPC_MoveParent,
/*321673*/                  OPC_CheckType, MVT::v2f64,
/*321675*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321677*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*321680*/                  OPC_EmitMergeInputChains1_2,
/*321681*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPXORQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321694*/                /*Scope*/ 67, /*->321762*/
/*321695*/                  OPC_MoveChild0,
/*321696*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321699*/                  OPC_MoveChild0,
/*321700*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*321703*/                  OPC_MoveChild0,
/*321704*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321707*/                  OPC_RecordMemRef,
/*321708*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*321709*/                  OPC_CheckFoldableChainNode,
/*321710*/                  OPC_RecordChild1, // #2 = $src2
/*321711*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321713*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321715*/                  OPC_CheckType, MVT::f64,
/*321717*/                  OPC_MoveParent,
/*321718*/                  OPC_CheckType, MVT::v2f64,
/*321720*/                  OPC_MoveParent,
/*321721*/                  OPC_MoveParent,
/*321722*/                  OPC_RecordChild1, // #3 = $src1
/*321723*/                  OPC_CheckType, MVT::v2i64,
/*321725*/                  OPC_MoveParent,
/*321726*/                  OPC_MoveParent,
/*321727*/                  OPC_MoveChild2,
/*321728*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321731*/                  OPC_MoveChild0,
/*321732*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*321735*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*321737*/                  OPC_CheckType, MVT::v4i32,
/*321739*/                  OPC_MoveParent,
/*321740*/                  OPC_MoveParent,
/*321741*/                  OPC_CheckType, MVT::v2f64,
/*321743*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321745*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*321748*/                  OPC_EmitMergeInputChains1_1,
/*321749*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPXORQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321762*/                /*Scope*/ 53, /*->321816*/
/*321763*/                  OPC_RecordChild0, // #1 = $src1
/*321764*/                  OPC_MoveChild1,
/*321765*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321768*/                  OPC_RecordMemRef,
/*321769*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*321770*/                  OPC_CheckFoldableChainNode,
/*321771*/                  OPC_RecordChild1, // #3 = $src2
/*321772*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321774*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321776*/                  OPC_MoveParent,
/*321777*/                  OPC_CheckType, MVT::v2i64,
/*321779*/                  OPC_MoveParent,
/*321780*/                  OPC_MoveParent,
/*321781*/                  OPC_MoveChild2,
/*321782*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321785*/                  OPC_MoveChild0,
/*321786*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*321789*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*321791*/                  OPC_CheckType, MVT::v4i32,
/*321793*/                  OPC_MoveParent,
/*321794*/                  OPC_MoveParent,
/*321795*/                  OPC_CheckType, MVT::v2f64,
/*321797*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321799*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*321802*/                  OPC_EmitMergeInputChains1_2,
/*321803*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPXORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321816*/                /*Scope*/ 53, /*->321870*/
/*321817*/                  OPC_MoveChild0,
/*321818*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321821*/                  OPC_RecordMemRef,
/*321822*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*321823*/                  OPC_CheckFoldableChainNode,
/*321824*/                  OPC_RecordChild1, // #2 = $src2
/*321825*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321827*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321829*/                  OPC_MoveParent,
/*321830*/                  OPC_RecordChild1, // #3 = $src1
/*321831*/                  OPC_CheckType, MVT::v2i64,
/*321833*/                  OPC_MoveParent,
/*321834*/                  OPC_MoveParent,
/*321835*/                  OPC_MoveChild2,
/*321836*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321839*/                  OPC_MoveChild0,
/*321840*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*321843*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*321845*/                  OPC_CheckType, MVT::v4i32,
/*321847*/                  OPC_MoveParent,
/*321848*/                  OPC_MoveParent,
/*321849*/                  OPC_CheckType, MVT::v2f64,
/*321851*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321853*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*321856*/                  OPC_EmitMergeInputChains1_1,
/*321857*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPXORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321870*/                /*Scope*/ 55, /*->321926*/
/*321871*/                  OPC_RecordChild0, // #1 = $src1
/*321872*/                  OPC_MoveChild1,
/*321873*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321876*/                  OPC_MoveChild0,
/*321877*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*321880*/                  OPC_MoveChild0,
/*321881*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321884*/                  OPC_RecordMemRef,
/*321885*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*321886*/                  OPC_CheckFoldableChainNode,
/*321887*/                  OPC_RecordChild1, // #3 = $src2
/*321888*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321890*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321892*/                  OPC_CheckType, MVT::f64,
/*321894*/                  OPC_MoveParent,
/*321895*/                  OPC_CheckType, MVT::v2f64,
/*321897*/                  OPC_MoveParent,
/*321898*/                  OPC_MoveParent,
/*321899*/                  OPC_CheckType, MVT::v2i64,
/*321901*/                  OPC_MoveParent,
/*321902*/                  OPC_MoveParent,
/*321903*/                  OPC_RecordChild2, // #4 = $src0
/*321904*/                  OPC_CheckType, MVT::v2f64,
/*321906*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321908*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*321911*/                  OPC_EmitMergeInputChains1_2,
/*321912*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR128X:{ *:[v2f64] }:$src0) - Complexity = 37
                            // Dst: (VPXORQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321926*/                /*Scope*/ 55, /*->321982*/
/*321927*/                  OPC_MoveChild0,
/*321928*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321931*/                  OPC_MoveChild0,
/*321932*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*321935*/                  OPC_MoveChild0,
/*321936*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321939*/                  OPC_RecordMemRef,
/*321940*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*321941*/                  OPC_CheckFoldableChainNode,
/*321942*/                  OPC_RecordChild1, // #2 = $src2
/*321943*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321945*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321947*/                  OPC_CheckType, MVT::f64,
/*321949*/                  OPC_MoveParent,
/*321950*/                  OPC_CheckType, MVT::v2f64,
/*321952*/                  OPC_MoveParent,
/*321953*/                  OPC_MoveParent,
/*321954*/                  OPC_RecordChild1, // #3 = $src1
/*321955*/                  OPC_CheckType, MVT::v2i64,
/*321957*/                  OPC_MoveParent,
/*321958*/                  OPC_MoveParent,
/*321959*/                  OPC_RecordChild2, // #4 = $src0
/*321960*/                  OPC_CheckType, MVT::v2f64,
/*321962*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321964*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*321967*/                  OPC_EmitMergeInputChains1_1,
/*321968*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 37
                            // Dst: (VPXORQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*321982*/                /*Scope*/ 41, /*->322024*/
/*321983*/                  OPC_RecordChild0, // #1 = $src1
/*321984*/                  OPC_MoveChild1,
/*321985*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*321988*/                  OPC_RecordMemRef,
/*321989*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*321990*/                  OPC_CheckFoldableChainNode,
/*321991*/                  OPC_RecordChild1, // #3 = $src2
/*321992*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*321994*/                  OPC_CheckPredicate, 9, // Predicate_load
/*321996*/                  OPC_MoveParent,
/*321997*/                  OPC_CheckType, MVT::v2i64,
/*321999*/                  OPC_MoveParent,
/*322000*/                  OPC_MoveParent,
/*322001*/                  OPC_RecordChild2, // #4 = $src0
/*322002*/                  OPC_CheckType, MVT::v2f64,
/*322004*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322006*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*322009*/                  OPC_EmitMergeInputChains1_2,
/*322010*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                            // Dst: (VPXORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*322024*/                /*Scope*/ 41, /*->322066*/
/*322025*/                  OPC_MoveChild0,
/*322026*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*322029*/                  OPC_RecordMemRef,
/*322030*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*322031*/                  OPC_CheckFoldableChainNode,
/*322032*/                  OPC_RecordChild1, // #2 = $src2
/*322033*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*322035*/                  OPC_CheckPredicate, 9, // Predicate_load
/*322037*/                  OPC_MoveParent,
/*322038*/                  OPC_RecordChild1, // #3 = $src1
/*322039*/                  OPC_CheckType, MVT::v2i64,
/*322041*/                  OPC_MoveParent,
/*322042*/                  OPC_MoveParent,
/*322043*/                  OPC_RecordChild2, // #4 = $src0
/*322044*/                  OPC_CheckType, MVT::v2f64,
/*322046*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322048*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*322051*/                  OPC_EmitMergeInputChains1_1,
/*322052*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                            // Dst: (VPXORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*322066*/                0, /*End of Scope*/
/*322067*/              /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(X86ISD::ANDNP),// ->322245
/*322071*/                OPC_RecordChild0, // #1 = $src1
/*322072*/                OPC_MoveChild1,
/*322073*/                OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::BITCAST),// ->322166
/*322077*/                  OPC_MoveChild0,
/*322078*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*322081*/                  OPC_MoveChild0,
/*322082*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*322085*/                  OPC_RecordMemRef,
/*322086*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*322087*/                  OPC_CheckFoldableChainNode,
/*322088*/                  OPC_RecordChild1, // #3 = $src2
/*322089*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*322091*/                  OPC_CheckPredicate, 9, // Predicate_load
/*322093*/                  OPC_CheckType, MVT::f64,
/*322095*/                  OPC_MoveParent,
/*322096*/                  OPC_CheckType, MVT::v2f64,
/*322098*/                  OPC_MoveParent,
/*322099*/                  OPC_MoveParent,
/*322100*/                  OPC_CheckType, MVT::v2i64,
/*322102*/                  OPC_MoveParent,
/*322103*/                  OPC_MoveParent,
/*322104*/                  OPC_Scope, 35, /*->322141*/ // 2 children in Scope
/*322106*/                    OPC_MoveChild2,
/*322107*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322110*/                    OPC_MoveChild0,
/*322111*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322114*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322116*/                    OPC_CheckType, MVT::v4i32,
/*322118*/                    OPC_MoveParent,
/*322119*/                    OPC_MoveParent,
/*322120*/                    OPC_CheckType, MVT::v2f64,
/*322122*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322124*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*322127*/                    OPC_EmitMergeInputChains1_2,
/*322128*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPANDNQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*322141*/                  /*Scope*/ 23, /*->322165*/
/*322142*/                    OPC_RecordChild2, // #4 = $src0
/*322143*/                    OPC_CheckType, MVT::v2f64,
/*322145*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322147*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*322150*/                    OPC_EmitMergeInputChains1_2,
/*322151*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR128X:{ *:[v2f64] }:$src0) - Complexity = 37
                              // Dst: (VPANDNQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*322165*/                  0, /*End of Scope*/
/*322166*/                /*SwitchOpcode*/ 75, TARGET_VAL(ISD::LOAD),// ->322244
/*322169*/                  OPC_RecordMemRef,
/*322170*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*322171*/                  OPC_CheckFoldableChainNode,
/*322172*/                  OPC_RecordChild1, // #3 = $src2
/*322173*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*322175*/                  OPC_CheckPredicate, 9, // Predicate_load
/*322177*/                  OPC_MoveParent,
/*322178*/                  OPC_CheckType, MVT::v2i64,
/*322180*/                  OPC_MoveParent,
/*322181*/                  OPC_MoveParent,
/*322182*/                  OPC_Scope, 35, /*->322219*/ // 2 children in Scope
/*322184*/                    OPC_MoveChild2,
/*322185*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322188*/                    OPC_MoveChild0,
/*322189*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322192*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322194*/                    OPC_CheckType, MVT::v4i32,
/*322196*/                    OPC_MoveParent,
/*322197*/                    OPC_MoveParent,
/*322198*/                    OPC_CheckType, MVT::v2f64,
/*322200*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322202*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*322205*/                    OPC_EmitMergeInputChains1_2,
/*322206*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDNQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*322219*/                  /*Scope*/ 23, /*->322243*/
/*322220*/                    OPC_RecordChild2, // #4 = $src0
/*322221*/                    OPC_CheckType, MVT::v2f64,
/*322223*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322225*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*322228*/                    OPC_EmitMergeInputChains1_2,
/*322229*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*322243*/                  0, /*End of Scope*/
/*322244*/                0, // EndSwitchOpcode
/*322245*/              /*SwitchOpcode*/ 97, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->322345
/*322248*/                OPC_RecordChild0, // #1 = $src
/*322249*/                OPC_CheckType, MVT::v4f32,
/*322251*/                OPC_Scope, 45, /*->322298*/ // 2 children in Scope
/*322253*/                  OPC_CheckChild0Type, MVT::v8f32,
/*322255*/                  OPC_CheckChild1Integer, 0, 
/*322257*/                  OPC_CheckChild1Type, MVT::iPTR,
/*322259*/                  OPC_MoveParent,
/*322260*/                  OPC_MoveParent,
/*322261*/                  OPC_MoveChild2,
/*322262*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322265*/                  OPC_MoveChild0,
/*322266*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322269*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322271*/                  OPC_CheckType, MVT::v4i32,
/*322273*/                  OPC_MoveParent,
/*322274*/                  OPC_MoveParent,
/*322275*/                  OPC_CheckType, MVT::v2f64,
/*322277*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322279*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*322282*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*322290*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rrkz), 0,
                                MVT::v2f64, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                            // Dst: (VMOVAPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }))
/*322298*/                /*Scope*/ 45, /*->322344*/
/*322299*/                  OPC_CheckChild0Type, MVT::v16f32,
/*322301*/                  OPC_CheckChild1Integer, 0, 
/*322303*/                  OPC_CheckChild1Type, MVT::iPTR,
/*322305*/                  OPC_MoveParent,
/*322306*/                  OPC_MoveParent,
/*322307*/                  OPC_MoveChild2,
/*322308*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322311*/                  OPC_MoveChild0,
/*322312*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322315*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322317*/                  OPC_CheckType, MVT::v4i32,
/*322319*/                  OPC_MoveParent,
/*322320*/                  OPC_MoveParent,
/*322321*/                  OPC_CheckType, MVT::v2f64,
/*322323*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322325*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*322328*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*322336*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rrkz), 0,
                                MVT::v2f64, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                            // Dst: (VMOVAPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, sub_xmm:{ *:[i32] }))
/*322344*/                0, /*End of Scope*/
/*322345*/              0, // EndSwitchOpcode
/*322346*/            /*Scope*/ 96, /*->322443*/
/*322347*/              OPC_RecordChild0, // #1 = $ext
/*322348*/              OPC_MoveChild0,
/*322349*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*322352*/              OPC_RecordChild0, // #2 = $src
/*322353*/              OPC_Scope, 43, /*->322398*/ // 2 children in Scope
/*322355*/                OPC_CheckChild0Type, MVT::v8f32,
/*322357*/                OPC_MoveChild1,
/*322358*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*322361*/                OPC_CheckType, MVT::iPTR,
/*322363*/                OPC_MoveParent,
/*322364*/                OPC_CheckType, MVT::v4f32,
/*322366*/                OPC_MoveParent,
/*322367*/                OPC_MoveParent,
/*322368*/                OPC_MoveChild2,
/*322369*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322372*/                OPC_MoveChild0,
/*322373*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322376*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322378*/                OPC_CheckType, MVT::v4i32,
/*322380*/                OPC_MoveParent,
/*322381*/                OPC_MoveParent,
/*322382*/                OPC_CheckType, MVT::v2f64,
/*322384*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*322386*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*322389*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x2Z256rrkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 0, 2, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VEXTRACTF64x2Z256rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4f32] }:$ext))
/*322398*/              /*Scope*/ 43, /*->322442*/
/*322399*/                OPC_CheckChild0Type, MVT::v16f32,
/*322401*/                OPC_MoveChild1,
/*322402*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*322405*/                OPC_CheckType, MVT::iPTR,
/*322407*/                OPC_MoveParent,
/*322408*/                OPC_CheckType, MVT::v4f32,
/*322410*/                OPC_MoveParent,
/*322411*/                OPC_MoveParent,
/*322412*/                OPC_MoveChild2,
/*322413*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322416*/                OPC_MoveChild0,
/*322417*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322420*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322422*/                OPC_CheckType, MVT::v4i32,
/*322424*/                OPC_MoveParent,
/*322425*/                OPC_MoveParent,
/*322426*/                OPC_CheckType, MVT::v2f64,
/*322428*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*322430*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*322433*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x2Zrrkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 0, 2, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VEXTRACTF64x2Zrrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v16f32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4f32] }:$ext))
/*322442*/              0, /*End of Scope*/
/*322443*/            0, /*End of Scope*/
/*322444*/          /*SwitchOpcode*/ 75|128,1/*203*/, TARGET_VAL(X86ISD::SCALEF),// ->322651
/*322448*/            OPC_RecordChild0, // #1 = $src1
/*322449*/            OPC_Scope, 38|128,1/*166*/, /*->322618*/ // 2 children in Scope
/*322452*/              OPC_MoveChild1,
/*322453*/              OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(X86ISD::VBROADCAST),// ->322538
/*322457*/                OPC_MoveChild0,
/*322458*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*322461*/                OPC_RecordMemRef,
/*322462*/                OPC_RecordNode, // #2 = 'ld' chained node
/*322463*/                OPC_CheckFoldableChainNode,
/*322464*/                OPC_RecordChild1, // #3 = $src2
/*322465*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*322467*/                OPC_CheckPredicate, 9, // Predicate_load
/*322469*/                OPC_CheckType, MVT::f64,
/*322471*/                OPC_MoveParent,
/*322472*/                OPC_MoveParent,
/*322473*/                OPC_CheckChild2Integer, 4, 
/*322475*/                OPC_MoveParent,
/*322476*/                OPC_Scope, 35, /*->322513*/ // 2 children in Scope
/*322478*/                  OPC_MoveChild2,
/*322479*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322482*/                  OPC_MoveChild0,
/*322483*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322486*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322488*/                  OPC_CheckType, MVT::v4i32,
/*322490*/                  OPC_MoveParent,
/*322491*/                  OPC_MoveParent,
/*322492*/                  OPC_CheckType, MVT::v2f64,
/*322494*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322496*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*322499*/                  OPC_EmitMergeInputChains1_2,
/*322500*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86scalef:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                            // Dst: (VSCALEFPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*322513*/                /*Scope*/ 23, /*->322537*/
/*322514*/                  OPC_RecordChild2, // #4 = $src0
/*322515*/                  OPC_CheckType, MVT::v2f64,
/*322517*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322519*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*322522*/                  OPC_EmitMergeInputChains1_2,
/*322523*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86scalef:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 36
                            // Dst: (VSCALEFPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*322537*/                0, /*End of Scope*/
/*322538*/              /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->322617
/*322541*/                OPC_RecordMemRef,
/*322542*/                OPC_RecordNode, // #2 = 'ld' chained node
/*322543*/                OPC_CheckFoldableChainNode,
/*322544*/                OPC_RecordChild1, // #3 = $src2
/*322545*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*322547*/                OPC_CheckPredicate, 9, // Predicate_load
/*322549*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*322551*/                OPC_MoveParent,
/*322552*/                OPC_CheckChild2Integer, 4, 
/*322554*/                OPC_MoveParent,
/*322555*/                OPC_Scope, 35, /*->322592*/ // 2 children in Scope
/*322557*/                  OPC_MoveChild2,
/*322558*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322561*/                  OPC_MoveChild0,
/*322562*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322565*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322567*/                  OPC_CheckType, MVT::v4i32,
/*322569*/                  OPC_MoveParent,
/*322570*/                  OPC_MoveParent,
/*322571*/                  OPC_CheckType, MVT::v2f64,
/*322573*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322575*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*322578*/                  OPC_EmitMergeInputChains1_2,
/*322579*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86scalef:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                            // Dst: (VSCALEFPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*322592*/                /*Scope*/ 23, /*->322616*/
/*322593*/                  OPC_RecordChild2, // #4 = $src0
/*322594*/                  OPC_CheckType, MVT::v2f64,
/*322596*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322598*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*322601*/                  OPC_EmitMergeInputChains1_2,
/*322602*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86scalef:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 33
                            // Dst: (VSCALEFPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*322616*/                0, /*End of Scope*/
/*322617*/              0, // EndSwitchOpcode
/*322618*/            /*Scope*/ 31, /*->322650*/
/*322619*/              OPC_RecordChild1, // #2 = $src2
/*322620*/              OPC_CheckChild2Integer, 4, 
/*322622*/              OPC_MoveParent,
/*322623*/              OPC_MoveChild2,
/*322624*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322627*/              OPC_MoveChild0,
/*322628*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322631*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322633*/              OPC_CheckType, MVT::v4i32,
/*322635*/              OPC_MoveParent,
/*322636*/              OPC_MoveParent,
/*322637*/              OPC_CheckType, MVT::v2f64,
/*322639*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322641*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ128rrkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86scalef:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VSCALEFPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*322650*/            0, /*End of Scope*/
/*322651*/          /*SwitchOpcode*/ 69|128,1/*197*/, TARGET_VAL(X86ISD::FGETEXP_RND),// ->322852
/*322655*/            OPC_Scope, 34|128,1/*162*/, /*->322820*/ // 2 children in Scope
/*322658*/              OPC_MoveChild0,
/*322659*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->322742
/*322663*/                OPC_MoveChild0,
/*322664*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*322667*/                OPC_RecordMemRef,
/*322668*/                OPC_RecordNode, // #1 = 'ld' chained node
/*322669*/                OPC_CheckFoldableChainNode,
/*322670*/                OPC_RecordChild1, // #2 = $src
/*322671*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*322673*/                OPC_CheckPredicate, 9, // Predicate_load
/*322675*/                OPC_CheckType, MVT::f64,
/*322677*/                OPC_MoveParent,
/*322678*/                OPC_MoveParent,
/*322679*/                OPC_CheckChild1Integer, 4, 
/*322681*/                OPC_MoveParent,
/*322682*/                OPC_Scope, 34, /*->322718*/ // 2 children in Scope
/*322684*/                  OPC_MoveChild2,
/*322685*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322688*/                  OPC_MoveChild0,
/*322689*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322692*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322694*/                  OPC_CheckType, MVT::v4i32,
/*322696*/                  OPC_MoveParent,
/*322697*/                  OPC_MoveParent,
/*322698*/                  OPC_CheckType, MVT::v2f64,
/*322700*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322702*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*322705*/                  OPC_EmitMergeInputChains1_1,
/*322706*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fgetexpRnd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                            // Dst: (VGETEXPPDZ128mbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*322718*/                /*Scope*/ 22, /*->322741*/
/*322719*/                  OPC_RecordChild2, // #3 = $src0
/*322720*/                  OPC_CheckType, MVT::v2f64,
/*322722*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322724*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*322727*/                  OPC_EmitMergeInputChains1_1,
/*322728*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fgetexpRnd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 36
                            // Dst: (VGETEXPPDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*322741*/                0, /*End of Scope*/
/*322742*/              /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->322819
/*322745*/                OPC_RecordMemRef,
/*322746*/                OPC_RecordNode, // #1 = 'ld' chained node
/*322747*/                OPC_CheckFoldableChainNode,
/*322748*/                OPC_RecordChild1, // #2 = $src
/*322749*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*322751*/                OPC_CheckPredicate, 9, // Predicate_load
/*322753*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*322755*/                OPC_MoveParent,
/*322756*/                OPC_CheckChild1Integer, 4, 
/*322758*/                OPC_MoveParent,
/*322759*/                OPC_Scope, 34, /*->322795*/ // 2 children in Scope
/*322761*/                  OPC_MoveChild2,
/*322762*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322765*/                  OPC_MoveChild0,
/*322766*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322769*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322771*/                  OPC_CheckType, MVT::v4i32,
/*322773*/                  OPC_MoveParent,
/*322774*/                  OPC_MoveParent,
/*322775*/                  OPC_CheckType, MVT::v2f64,
/*322777*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322779*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*322782*/                  OPC_EmitMergeInputChains1_1,
/*322783*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fgetexpRnd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                            // Dst: (VGETEXPPDZ128mkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*322795*/                /*Scope*/ 22, /*->322818*/
/*322796*/                  OPC_RecordChild2, // #3 = $src0
/*322797*/                  OPC_CheckType, MVT::v2f64,
/*322799*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322801*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*322804*/                  OPC_EmitMergeInputChains1_1,
/*322805*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fgetexpRnd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 33
                            // Dst: (VGETEXPPDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*322818*/                0, /*End of Scope*/
/*322819*/              0, // EndSwitchOpcode
/*322820*/            /*Scope*/ 30, /*->322851*/
/*322821*/              OPC_RecordChild0, // #1 = $src
/*322822*/              OPC_CheckChild1Integer, 4, 
/*322824*/              OPC_MoveParent,
/*322825*/              OPC_MoveChild2,
/*322826*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322829*/              OPC_MoveChild0,
/*322830*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322833*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322835*/              OPC_CheckType, MVT::v4i32,
/*322837*/              OPC_MoveParent,
/*322838*/              OPC_MoveParent,
/*322839*/              OPC_CheckType, MVT::v2f64,
/*322841*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*322843*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128rkz), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fgetexpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VGETEXPPDZ128rkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*322851*/            0, /*End of Scope*/
/*322852*/          /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(X86ISD::VPERMILPI),// ->323038
/*322856*/            OPC_MoveChild0,
/*322857*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->322950
/*322861*/              OPC_MoveChild0,
/*322862*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*322865*/              OPC_RecordMemRef,
/*322866*/              OPC_RecordNode, // #1 = 'ld' chained node
/*322867*/              OPC_CheckFoldableChainNode,
/*322868*/              OPC_RecordChild1, // #2 = $src1
/*322869*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*322871*/              OPC_CheckPredicate, 9, // Predicate_load
/*322873*/              OPC_CheckType, MVT::f64,
/*322875*/              OPC_MoveParent,
/*322876*/              OPC_MoveParent,
/*322877*/              OPC_RecordChild1, // #3 = $src2
/*322878*/              OPC_MoveChild1,
/*322879*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*322882*/              OPC_MoveParent,
/*322883*/              OPC_MoveParent,
/*322884*/              OPC_Scope, 37, /*->322923*/ // 2 children in Scope
/*322886*/                OPC_MoveChild2,
/*322887*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322890*/                OPC_MoveChild0,
/*322891*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322894*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322896*/                OPC_CheckType, MVT::v4i32,
/*322898*/                OPC_MoveParent,
/*322899*/                OPC_MoveParent,
/*322900*/                OPC_CheckType, MVT::v2f64,
/*322902*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*322904*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*322907*/                OPC_EmitMergeInputChains1_1,
/*322908*/                OPC_EmitConvertToTarget, 3,
/*322910*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VPERMILPDZ128mbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*322923*/              /*Scope*/ 25, /*->322949*/
/*322924*/                OPC_RecordChild2, // #4 = $src0
/*322925*/                OPC_CheckType, MVT::v2f64,
/*322927*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*322929*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*322932*/                OPC_EmitMergeInputChains1_1,
/*322933*/                OPC_EmitConvertToTarget, 3,
/*322935*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                          // Dst: (VPERMILPDZ128mbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*322949*/              0, /*End of Scope*/
/*322950*/            /*SwitchOpcode*/ 84, TARGET_VAL(ISD::LOAD),// ->323037
/*322953*/              OPC_RecordMemRef,
/*322954*/              OPC_RecordNode, // #1 = 'ld' chained node
/*322955*/              OPC_CheckFoldableChainNode,
/*322956*/              OPC_RecordChild1, // #2 = $src1
/*322957*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*322959*/              OPC_CheckPredicate, 9, // Predicate_load
/*322961*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*322963*/              OPC_MoveParent,
/*322964*/              OPC_RecordChild1, // #3 = $src2
/*322965*/              OPC_MoveChild1,
/*322966*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*322969*/              OPC_MoveParent,
/*322970*/              OPC_MoveParent,
/*322971*/              OPC_Scope, 37, /*->323010*/ // 2 children in Scope
/*322973*/                OPC_MoveChild2,
/*322974*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*322977*/                OPC_MoveChild0,
/*322978*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*322981*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*322983*/                OPC_CheckType, MVT::v4i32,
/*322985*/                OPC_MoveParent,
/*322986*/                OPC_MoveParent,
/*322987*/                OPC_CheckType, MVT::v2f64,
/*322989*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*322991*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*322994*/                OPC_EmitMergeInputChains1_1,
/*322995*/                OPC_EmitConvertToTarget, 3,
/*322997*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMILPDZ128mikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*323010*/              /*Scope*/ 25, /*->323036*/
/*323011*/                OPC_RecordChild2, // #4 = $src0
/*323012*/                OPC_CheckType, MVT::v2f64,
/*323014*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323016*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*323019*/                OPC_EmitMergeInputChains1_1,
/*323020*/                OPC_EmitConvertToTarget, 3,
/*323022*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPDZ128mik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*323036*/              0, /*End of Scope*/
/*323037*/            0, // EndSwitchOpcode
/*323038*/          /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(X86ISD::VREDUCE),// ->323224
/*323042*/            OPC_MoveChild0,
/*323043*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->323136
/*323047*/              OPC_MoveChild0,
/*323048*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*323051*/              OPC_RecordMemRef,
/*323052*/              OPC_RecordNode, // #1 = 'ld' chained node
/*323053*/              OPC_CheckFoldableChainNode,
/*323054*/              OPC_RecordChild1, // #2 = $src1
/*323055*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*323057*/              OPC_CheckPredicate, 9, // Predicate_load
/*323059*/              OPC_CheckType, MVT::f64,
/*323061*/              OPC_MoveParent,
/*323062*/              OPC_MoveParent,
/*323063*/              OPC_RecordChild1, // #3 = $src2
/*323064*/              OPC_MoveChild1,
/*323065*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*323068*/              OPC_MoveParent,
/*323069*/              OPC_MoveParent,
/*323070*/              OPC_Scope, 37, /*->323109*/ // 2 children in Scope
/*323072*/                OPC_MoveChild2,
/*323073*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*323076*/                OPC_MoveChild0,
/*323077*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*323080*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*323082*/                OPC_CheckType, MVT::v4i32,
/*323084*/                OPC_MoveParent,
/*323085*/                OPC_MoveParent,
/*323086*/                OPC_CheckType, MVT::v2f64,
/*323088*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*323090*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*323093*/                OPC_EmitMergeInputChains1_1,
/*323094*/                OPC_EmitConvertToTarget, 3,
/*323096*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VREDUCEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323109*/              /*Scope*/ 25, /*->323135*/
/*323110*/                OPC_RecordChild2, // #4 = $src0
/*323111*/                OPC_CheckType, MVT::v2f64,
/*323113*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*323115*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*323118*/                OPC_EmitMergeInputChains1_1,
/*323119*/                OPC_EmitConvertToTarget, 3,
/*323121*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                          // Dst: (VREDUCEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323135*/              0, /*End of Scope*/
/*323136*/            /*SwitchOpcode*/ 84, TARGET_VAL(ISD::LOAD),// ->323223
/*323139*/              OPC_RecordMemRef,
/*323140*/              OPC_RecordNode, // #1 = 'ld' chained node
/*323141*/              OPC_CheckFoldableChainNode,
/*323142*/              OPC_RecordChild1, // #2 = $src1
/*323143*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*323145*/              OPC_CheckPredicate, 9, // Predicate_load
/*323147*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*323149*/              OPC_MoveParent,
/*323150*/              OPC_RecordChild1, // #3 = $src2
/*323151*/              OPC_MoveChild1,
/*323152*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*323155*/              OPC_MoveParent,
/*323156*/              OPC_MoveParent,
/*323157*/              OPC_Scope, 37, /*->323196*/ // 2 children in Scope
/*323159*/                OPC_MoveChild2,
/*323160*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*323163*/                OPC_MoveChild0,
/*323164*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*323167*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*323169*/                OPC_CheckType, MVT::v4i32,
/*323171*/                OPC_MoveParent,
/*323172*/                OPC_MoveParent,
/*323173*/                OPC_CheckType, MVT::v2f64,
/*323175*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*323177*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*323180*/                OPC_EmitMergeInputChains1_1,
/*323181*/                OPC_EmitConvertToTarget, 3,
/*323183*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VREDUCEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323196*/              /*Scope*/ 25, /*->323222*/
/*323197*/                OPC_RecordChild2, // #4 = $src0
/*323198*/                OPC_CheckType, MVT::v2f64,
/*323200*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*323202*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*323205*/                OPC_EmitMergeInputChains1_1,
/*323206*/                OPC_EmitConvertToTarget, 3,
/*323208*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VREDUCEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323222*/              0, /*End of Scope*/
/*323223*/            0, // EndSwitchOpcode
/*323224*/          /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(X86ISD::VRNDSCALE),// ->323410
/*323228*/            OPC_MoveChild0,
/*323229*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->323322
/*323233*/              OPC_MoveChild0,
/*323234*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*323237*/              OPC_RecordMemRef,
/*323238*/              OPC_RecordNode, // #1 = 'ld' chained node
/*323239*/              OPC_CheckFoldableChainNode,
/*323240*/              OPC_RecordChild1, // #2 = $src1
/*323241*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*323243*/              OPC_CheckPredicate, 9, // Predicate_load
/*323245*/              OPC_CheckType, MVT::f64,
/*323247*/              OPC_MoveParent,
/*323248*/              OPC_MoveParent,
/*323249*/              OPC_RecordChild1, // #3 = $src2
/*323250*/              OPC_MoveChild1,
/*323251*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*323254*/              OPC_MoveParent,
/*323255*/              OPC_MoveParent,
/*323256*/              OPC_Scope, 37, /*->323295*/ // 2 children in Scope
/*323258*/                OPC_MoveChild2,
/*323259*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*323262*/                OPC_MoveChild0,
/*323263*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*323266*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*323268*/                OPC_CheckType, MVT::v4i32,
/*323270*/                OPC_MoveParent,
/*323271*/                OPC_MoveParent,
/*323272*/                OPC_CheckType, MVT::v2f64,
/*323274*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323276*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*323279*/                OPC_EmitMergeInputChains1_1,
/*323280*/                OPC_EmitConvertToTarget, 3,
/*323282*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VRNDSCALEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323295*/              /*Scope*/ 25, /*->323321*/
/*323296*/                OPC_RecordChild2, // #4 = $src0
/*323297*/                OPC_CheckType, MVT::v2f64,
/*323299*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323301*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*323304*/                OPC_EmitMergeInputChains1_1,
/*323305*/                OPC_EmitConvertToTarget, 3,
/*323307*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                          // Dst: (VRNDSCALEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323321*/              0, /*End of Scope*/
/*323322*/            /*SwitchOpcode*/ 84, TARGET_VAL(ISD::LOAD),// ->323409
/*323325*/              OPC_RecordMemRef,
/*323326*/              OPC_RecordNode, // #1 = 'ld' chained node
/*323327*/              OPC_CheckFoldableChainNode,
/*323328*/              OPC_RecordChild1, // #2 = $src1
/*323329*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*323331*/              OPC_CheckPredicate, 9, // Predicate_load
/*323333*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*323335*/              OPC_MoveParent,
/*323336*/              OPC_RecordChild1, // #3 = $src2
/*323337*/              OPC_MoveChild1,
/*323338*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*323341*/              OPC_MoveParent,
/*323342*/              OPC_MoveParent,
/*323343*/              OPC_Scope, 37, /*->323382*/ // 2 children in Scope
/*323345*/                OPC_MoveChild2,
/*323346*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*323349*/                OPC_MoveChild0,
/*323350*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*323353*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*323355*/                OPC_CheckType, MVT::v4i32,
/*323357*/                OPC_MoveParent,
/*323358*/                OPC_MoveParent,
/*323359*/                OPC_CheckType, MVT::v2f64,
/*323361*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323363*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*323366*/                OPC_EmitMergeInputChains1_1,
/*323367*/                OPC_EmitConvertToTarget, 3,
/*323369*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323382*/              /*Scope*/ 25, /*->323408*/
/*323383*/                OPC_RecordChild2, // #4 = $src0
/*323384*/                OPC_CheckType, MVT::v2f64,
/*323386*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323388*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*323391*/                OPC_EmitMergeInputChains1_1,
/*323392*/                OPC_EmitConvertToTarget, 3,
/*323394*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323408*/              0, /*End of Scope*/
/*323409*/            0, // EndSwitchOpcode
/*323410*/          /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(X86ISD::VGETMANT),// ->323596
/*323414*/            OPC_MoveChild0,
/*323415*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(X86ISD::VBROADCAST),// ->323508
/*323419*/              OPC_MoveChild0,
/*323420*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*323423*/              OPC_RecordMemRef,
/*323424*/              OPC_RecordNode, // #1 = 'ld' chained node
/*323425*/              OPC_CheckFoldableChainNode,
/*323426*/              OPC_RecordChild1, // #2 = $src1
/*323427*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*323429*/              OPC_CheckPredicate, 9, // Predicate_load
/*323431*/              OPC_CheckType, MVT::f64,
/*323433*/              OPC_MoveParent,
/*323434*/              OPC_MoveParent,
/*323435*/              OPC_RecordChild1, // #3 = $src2
/*323436*/              OPC_MoveChild1,
/*323437*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*323440*/              OPC_MoveParent,
/*323441*/              OPC_MoveParent,
/*323442*/              OPC_Scope, 37, /*->323481*/ // 2 children in Scope
/*323444*/                OPC_MoveChild2,
/*323445*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*323448*/                OPC_MoveChild0,
/*323449*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*323452*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*323454*/                OPC_CheckType, MVT::v4i32,
/*323456*/                OPC_MoveParent,
/*323457*/                OPC_MoveParent,
/*323458*/                OPC_CheckType, MVT::v2f64,
/*323460*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323462*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*323465*/                OPC_EmitMergeInputChains1_1,
/*323466*/                OPC_EmitConvertToTarget, 3,
/*323468*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VGETMANTPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323481*/              /*Scope*/ 25, /*->323507*/
/*323482*/                OPC_RecordChild2, // #4 = $src0
/*323483*/                OPC_CheckType, MVT::v2f64,
/*323485*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323487*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*323490*/                OPC_EmitMergeInputChains1_1,
/*323491*/                OPC_EmitConvertToTarget, 3,
/*323493*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                          // Dst: (VGETMANTPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323507*/              0, /*End of Scope*/
/*323508*/            /*SwitchOpcode*/ 84, TARGET_VAL(ISD::LOAD),// ->323595
/*323511*/              OPC_RecordMemRef,
/*323512*/              OPC_RecordNode, // #1 = 'ld' chained node
/*323513*/              OPC_CheckFoldableChainNode,
/*323514*/              OPC_RecordChild1, // #2 = $src1
/*323515*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*323517*/              OPC_CheckPredicate, 9, // Predicate_load
/*323519*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*323521*/              OPC_MoveParent,
/*323522*/              OPC_RecordChild1, // #3 = $src2
/*323523*/              OPC_MoveChild1,
/*323524*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*323527*/              OPC_MoveParent,
/*323528*/              OPC_MoveParent,
/*323529*/              OPC_Scope, 37, /*->323568*/ // 2 children in Scope
/*323531*/                OPC_MoveChild2,
/*323532*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*323535*/                OPC_MoveChild0,
/*323536*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*323539*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*323541*/                OPC_CheckType, MVT::v4i32,
/*323543*/                OPC_MoveParent,
/*323544*/                OPC_MoveParent,
/*323545*/                OPC_CheckType, MVT::v2f64,
/*323547*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323549*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*323552*/                OPC_EmitMergeInputChains1_1,
/*323553*/                OPC_EmitConvertToTarget, 3,
/*323555*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VGETMANTPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323568*/              /*Scope*/ 25, /*->323594*/
/*323569*/                OPC_RecordChild2, // #4 = $src0
/*323570*/                OPC_CheckType, MVT::v2f64,
/*323572*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323574*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*323577*/                OPC_EmitMergeInputChains1_1,
/*323578*/                OPC_EmitConvertToTarget, 3,
/*323580*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VGETMANTPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*323594*/              0, /*End of Scope*/
/*323595*/            0, // EndSwitchOpcode
/*323596*/          /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::VRANGE),// ->323787
/*323600*/            OPC_RecordChild0, // #1 = $src1
/*323601*/            OPC_MoveChild1,
/*323602*/            OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(X86ISD::VBROADCAST),// ->323697
/*323606*/              OPC_MoveChild0,
/*323607*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*323610*/              OPC_RecordMemRef,
/*323611*/              OPC_RecordNode, // #2 = 'ld' chained node
/*323612*/              OPC_CheckFoldableChainNode,
/*323613*/              OPC_RecordChild1, // #3 = $src2
/*323614*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*323616*/              OPC_CheckPredicate, 9, // Predicate_load
/*323618*/              OPC_CheckType, MVT::f64,
/*323620*/              OPC_MoveParent,
/*323621*/              OPC_MoveParent,
/*323622*/              OPC_RecordChild2, // #4 = $src3
/*323623*/              OPC_MoveChild2,
/*323624*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*323627*/              OPC_MoveParent,
/*323628*/              OPC_MoveParent,
/*323629*/              OPC_Scope, 38, /*->323669*/ // 2 children in Scope
/*323631*/                OPC_MoveChild2,
/*323632*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*323635*/                OPC_MoveChild0,
/*323636*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*323639*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*323641*/                OPC_CheckType, MVT::v4i32,
/*323643*/                OPC_MoveParent,
/*323644*/                OPC_MoveParent,
/*323645*/                OPC_CheckType, MVT::v2f64,
/*323647*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*323649*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*323652*/                OPC_EmitMergeInputChains1_2,
/*323653*/                OPC_EmitConvertToTarget, 4,
/*323655*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VRANGEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*323669*/              /*Scope*/ 26, /*->323696*/
/*323670*/                OPC_RecordChild2, // #5 = $src0
/*323671*/                OPC_CheckType, MVT::v2f64,
/*323673*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*323675*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*323678*/                OPC_EmitMergeInputChains1_2,
/*323679*/                OPC_EmitConvertToTarget, 4,
/*323681*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                          // Dst: (VRANGEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*323696*/              0, /*End of Scope*/
/*323697*/            /*SwitchOpcode*/ 86, TARGET_VAL(ISD::LOAD),// ->323786
/*323700*/              OPC_RecordMemRef,
/*323701*/              OPC_RecordNode, // #2 = 'ld' chained node
/*323702*/              OPC_CheckFoldableChainNode,
/*323703*/              OPC_RecordChild1, // #3 = $src2
/*323704*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*323706*/              OPC_CheckPredicate, 9, // Predicate_load
/*323708*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*323710*/              OPC_MoveParent,
/*323711*/              OPC_RecordChild2, // #4 = $src3
/*323712*/              OPC_MoveChild2,
/*323713*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*323716*/              OPC_MoveParent,
/*323717*/              OPC_MoveParent,
/*323718*/              OPC_Scope, 38, /*->323758*/ // 2 children in Scope
/*323720*/                OPC_MoveChild2,
/*323721*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*323724*/                OPC_MoveChild0,
/*323725*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*323728*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*323730*/                OPC_CheckType, MVT::v4i32,
/*323732*/                OPC_MoveParent,
/*323733*/                OPC_MoveParent,
/*323734*/                OPC_CheckType, MVT::v2f64,
/*323736*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*323738*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*323741*/                OPC_EmitMergeInputChains1_2,
/*323742*/                OPC_EmitConvertToTarget, 4,
/*323744*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRANGEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*323758*/              /*Scope*/ 26, /*->323785*/
/*323759*/                OPC_RecordChild2, // #5 = $src0
/*323760*/                OPC_CheckType, MVT::v2f64,
/*323762*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*323764*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*323767*/                OPC_EmitMergeInputChains1_2,
/*323768*/                OPC_EmitConvertToTarget, 4,
/*323770*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VRANGEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*323785*/              0, /*End of Scope*/
/*323786*/            0, // EndSwitchOpcode
/*323787*/          /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::SHUFP),// ->323978
/*323791*/            OPC_RecordChild0, // #1 = $src1
/*323792*/            OPC_MoveChild1,
/*323793*/            OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(X86ISD::VBROADCAST),// ->323888
/*323797*/              OPC_MoveChild0,
/*323798*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*323801*/              OPC_RecordMemRef,
/*323802*/              OPC_RecordNode, // #2 = 'ld' chained node
/*323803*/              OPC_CheckFoldableChainNode,
/*323804*/              OPC_RecordChild1, // #3 = $src2
/*323805*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*323807*/              OPC_CheckPredicate, 9, // Predicate_load
/*323809*/              OPC_CheckType, MVT::f64,
/*323811*/              OPC_MoveParent,
/*323812*/              OPC_MoveParent,
/*323813*/              OPC_RecordChild2, // #4 = $src3
/*323814*/              OPC_MoveChild2,
/*323815*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*323818*/              OPC_MoveParent,
/*323819*/              OPC_MoveParent,
/*323820*/              OPC_Scope, 38, /*->323860*/ // 2 children in Scope
/*323822*/                OPC_MoveChild2,
/*323823*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*323826*/                OPC_MoveChild0,
/*323827*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*323830*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*323832*/                OPC_CheckType, MVT::v4i32,
/*323834*/                OPC_MoveParent,
/*323835*/                OPC_MoveParent,
/*323836*/                OPC_CheckType, MVT::v2f64,
/*323838*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323840*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*323843*/                OPC_EmitMergeInputChains1_2,
/*323844*/                OPC_EmitConvertToTarget, 4,
/*323846*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VSHUFPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*323860*/              /*Scope*/ 26, /*->323887*/
/*323861*/                OPC_RecordChild2, // #5 = $src0
/*323862*/                OPC_CheckType, MVT::v2f64,
/*323864*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323866*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*323869*/                OPC_EmitMergeInputChains1_2,
/*323870*/                OPC_EmitConvertToTarget, 4,
/*323872*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                          // Dst: (VSHUFPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*323887*/              0, /*End of Scope*/
/*323888*/            /*SwitchOpcode*/ 86, TARGET_VAL(ISD::LOAD),// ->323977
/*323891*/              OPC_RecordMemRef,
/*323892*/              OPC_RecordNode, // #2 = 'ld' chained node
/*323893*/              OPC_CheckFoldableChainNode,
/*323894*/              OPC_RecordChild1, // #3 = $src2
/*323895*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*323897*/              OPC_CheckPredicate, 9, // Predicate_load
/*323899*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*323901*/              OPC_MoveParent,
/*323902*/              OPC_RecordChild2, // #4 = $src3
/*323903*/              OPC_MoveChild2,
/*323904*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*323907*/              OPC_MoveParent,
/*323908*/              OPC_MoveParent,
/*323909*/              OPC_Scope, 38, /*->323949*/ // 2 children in Scope
/*323911*/                OPC_MoveChild2,
/*323912*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*323915*/                OPC_MoveChild0,
/*323916*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*323919*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*323921*/                OPC_CheckType, MVT::v4i32,
/*323923*/                OPC_MoveParent,
/*323924*/                OPC_MoveParent,
/*323925*/                OPC_CheckType, MVT::v2f64,
/*323927*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323929*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*323932*/                OPC_EmitMergeInputChains1_2,
/*323933*/                OPC_EmitConvertToTarget, 4,
/*323935*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSHUFPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*323949*/              /*Scope*/ 26, /*->323976*/
/*323950*/                OPC_RecordChild2, // #5 = $src0
/*323951*/                OPC_CheckType, MVT::v2f64,
/*323953*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*323955*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*323958*/                OPC_EmitMergeInputChains1_2,
/*323959*/                OPC_EmitConvertToTarget, 4,
/*323961*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VSHUFPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*323976*/              0, /*End of Scope*/
/*323977*/            0, // EndSwitchOpcode
/*323978*/          /*SwitchOpcode*/ 110|128,1/*238*/, TARGET_VAL(X86ISD::VPERMV3),// ->324220
/*323982*/            OPC_RecordChild0, // #1 = $src1
/*323983*/            OPC_RecordChild1, // #2 = $src2
/*323984*/            OPC_MoveChild2,
/*323985*/            OPC_SwitchOpcode /*2 cases */, 116, TARGET_VAL(X86ISD::VBROADCAST),// ->324105
/*323989*/              OPC_MoveChild0,
/*323990*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*323993*/              OPC_RecordMemRef,
/*323994*/              OPC_RecordNode, // #3 = 'ld' chained node
/*323995*/              OPC_CheckFoldableChainNode,
/*323996*/              OPC_RecordChild1, // #4 = $src3
/*323997*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*323999*/              OPC_CheckPredicate, 9, // Predicate_load
/*324001*/              OPC_CheckType, MVT::f64,
/*324003*/              OPC_MoveParent,
/*324004*/              OPC_MoveParent,
/*324005*/              OPC_MoveParent,
/*324006*/              OPC_Scope, 69, /*->324077*/ // 2 children in Scope
/*324008*/                OPC_MoveChild2,
/*324009*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*324012*/                OPC_Scope, 34, /*->324048*/ // 2 children in Scope
/*324014*/                  OPC_MoveChild0,
/*324015*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*324018*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*324020*/                  OPC_CheckType, MVT::v4i32,
/*324022*/                  OPC_MoveParent,
/*324023*/                  OPC_MoveParent,
/*324024*/                  OPC_CheckType, MVT::v2f64,
/*324026*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*324028*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*324031*/                  OPC_EmitMergeInputChains, 1, 3, 
/*324034*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPERMT2PD128rmbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*324048*/                /*Scope*/ 27, /*->324076*/
/*324049*/                  OPC_CheckChild0Same, 2,
/*324051*/                  OPC_MoveParent,
/*324052*/                  OPC_CheckType, MVT::v2f64,
/*324054*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*324056*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*324059*/                  OPC_EmitMergeInputChains, 1, 3, 
/*324062*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PD128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1)) - Complexity = 34
                            // Dst: (VPERMI2PD128rmbk:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*324076*/                0, /*End of Scope*/
/*324077*/              /*Scope*/ 26, /*->324104*/
/*324078*/                OPC_CheckChild2Same, 1,
/*324080*/                OPC_CheckType, MVT::v2f64,
/*324082*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*324084*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*324087*/                OPC_EmitMergeInputChains, 1, 3, 
/*324090*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VPERMT2PD128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*324104*/              0, /*End of Scope*/
/*324105*/            /*SwitchOpcode*/ 111, TARGET_VAL(ISD::LOAD),// ->324219
/*324108*/              OPC_RecordMemRef,
/*324109*/              OPC_RecordNode, // #3 = 'ld' chained node
/*324110*/              OPC_CheckFoldableChainNode,
/*324111*/              OPC_RecordChild1, // #4 = $src3
/*324112*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324114*/              OPC_CheckPredicate, 9, // Predicate_load
/*324116*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*324118*/              OPC_MoveParent,
/*324119*/              OPC_MoveParent,
/*324120*/              OPC_Scope, 69, /*->324191*/ // 2 children in Scope
/*324122*/                OPC_MoveChild2,
/*324123*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*324126*/                OPC_Scope, 34, /*->324162*/ // 2 children in Scope
/*324128*/                  OPC_MoveChild0,
/*324129*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*324132*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*324134*/                  OPC_CheckType, MVT::v4i32,
/*324136*/                  OPC_MoveParent,
/*324137*/                  OPC_MoveParent,
/*324138*/                  OPC_CheckType, MVT::v2f64,
/*324140*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*324142*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*324145*/                  OPC_EmitMergeInputChains, 1, 3, 
/*324148*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VPERMT2PD128rmkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*324162*/                /*Scope*/ 27, /*->324190*/
/*324163*/                  OPC_CheckChild0Same, 2,
/*324165*/                  OPC_MoveParent,
/*324166*/                  OPC_CheckType, MVT::v2f64,
/*324168*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*324170*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*324173*/                  OPC_EmitMergeInputChains, 1, 3, 
/*324176*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PD128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1)) - Complexity = 31
                            // Dst: (VPERMI2PD128rmk:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*324190*/                0, /*End of Scope*/
/*324191*/              /*Scope*/ 26, /*->324218*/
/*324192*/                OPC_CheckChild2Same, 1,
/*324194*/                OPC_CheckType, MVT::v2f64,
/*324196*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*324198*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*324201*/                OPC_EmitMergeInputChains, 1, 3, 
/*324204*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2PD128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*324218*/              0, /*End of Scope*/
/*324219*/            0, // EndSwitchOpcode
/*324220*/          /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(ISD::FADD),// ->324622
/*324224*/            OPC_Scope, 57, /*->324283*/ // 8 children in Scope
/*324226*/              OPC_RecordChild0, // #1 = $src1
/*324227*/              OPC_MoveChild1,
/*324228*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*324231*/              OPC_MoveChild0,
/*324232*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324235*/              OPC_RecordMemRef,
/*324236*/              OPC_RecordNode, // #2 = 'ld' chained node
/*324237*/              OPC_CheckFoldableChainNode,
/*324238*/              OPC_RecordChild1, // #3 = $src2
/*324239*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324241*/              OPC_CheckPredicate, 9, // Predicate_load
/*324243*/              OPC_CheckType, MVT::f64,
/*324245*/              OPC_MoveParent,
/*324246*/              OPC_MoveParent,
/*324247*/              OPC_MoveParent,
/*324248*/              OPC_MoveChild2,
/*324249*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*324252*/              OPC_MoveChild0,
/*324253*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*324256*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*324258*/              OPC_CheckType, MVT::v4i32,
/*324260*/              OPC_MoveParent,
/*324261*/              OPC_MoveParent,
/*324262*/              OPC_CheckType, MVT::v2f64,
/*324264*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324266*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*324269*/              OPC_EmitMergeInputChains1_2,
/*324270*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VADDPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324283*/            /*Scope*/ 57, /*->324341*/
/*324284*/              OPC_MoveChild0,
/*324285*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*324288*/              OPC_MoveChild0,
/*324289*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324292*/              OPC_RecordMemRef,
/*324293*/              OPC_RecordNode, // #1 = 'ld' chained node
/*324294*/              OPC_CheckFoldableChainNode,
/*324295*/              OPC_RecordChild1, // #2 = $src2
/*324296*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324298*/              OPC_CheckPredicate, 9, // Predicate_load
/*324300*/              OPC_CheckType, MVT::f64,
/*324302*/              OPC_MoveParent,
/*324303*/              OPC_MoveParent,
/*324304*/              OPC_RecordChild1, // #3 = $src1
/*324305*/              OPC_MoveParent,
/*324306*/              OPC_MoveChild2,
/*324307*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*324310*/              OPC_MoveChild0,
/*324311*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*324314*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*324316*/              OPC_CheckType, MVT::v4i32,
/*324318*/              OPC_MoveParent,
/*324319*/              OPC_MoveParent,
/*324320*/              OPC_CheckType, MVT::v2f64,
/*324322*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324324*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*324327*/              OPC_EmitMergeInputChains1_1,
/*324328*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VADDPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324341*/            /*Scope*/ 52, /*->324394*/
/*324342*/              OPC_RecordChild0, // #1 = $src1
/*324343*/              OPC_MoveChild1,
/*324344*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324347*/              OPC_RecordMemRef,
/*324348*/              OPC_RecordNode, // #2 = 'ld' chained node
/*324349*/              OPC_CheckFoldableChainNode,
/*324350*/              OPC_RecordChild1, // #3 = $src2
/*324351*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324353*/              OPC_CheckPredicate, 9, // Predicate_load
/*324355*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*324357*/              OPC_MoveParent,
/*324358*/              OPC_MoveParent,
/*324359*/              OPC_MoveChild2,
/*324360*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*324363*/              OPC_MoveChild0,
/*324364*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*324367*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*324369*/              OPC_CheckType, MVT::v4i32,
/*324371*/              OPC_MoveParent,
/*324372*/              OPC_MoveParent,
/*324373*/              OPC_CheckType, MVT::v2f64,
/*324375*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324377*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*324380*/              OPC_EmitMergeInputChains1_2,
/*324381*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VADDPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324394*/            /*Scope*/ 52, /*->324447*/
/*324395*/              OPC_MoveChild0,
/*324396*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324399*/              OPC_RecordMemRef,
/*324400*/              OPC_RecordNode, // #1 = 'ld' chained node
/*324401*/              OPC_CheckFoldableChainNode,
/*324402*/              OPC_RecordChild1, // #2 = $src2
/*324403*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324405*/              OPC_CheckPredicate, 9, // Predicate_load
/*324407*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*324409*/              OPC_MoveParent,
/*324410*/              OPC_RecordChild1, // #3 = $src1
/*324411*/              OPC_MoveParent,
/*324412*/              OPC_MoveChild2,
/*324413*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*324416*/              OPC_MoveChild0,
/*324417*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*324420*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*324422*/              OPC_CheckType, MVT::v4i32,
/*324424*/              OPC_MoveParent,
/*324425*/              OPC_MoveParent,
/*324426*/              OPC_CheckType, MVT::v2f64,
/*324428*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324430*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*324433*/              OPC_EmitMergeInputChains1_1,
/*324434*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VADDPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324447*/            /*Scope*/ 45, /*->324493*/
/*324448*/              OPC_RecordChild0, // #1 = $src1
/*324449*/              OPC_MoveChild1,
/*324450*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*324453*/              OPC_MoveChild0,
/*324454*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324457*/              OPC_RecordMemRef,
/*324458*/              OPC_RecordNode, // #2 = 'ld' chained node
/*324459*/              OPC_CheckFoldableChainNode,
/*324460*/              OPC_RecordChild1, // #3 = $src2
/*324461*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324463*/              OPC_CheckPredicate, 9, // Predicate_load
/*324465*/              OPC_CheckType, MVT::f64,
/*324467*/              OPC_MoveParent,
/*324468*/              OPC_MoveParent,
/*324469*/              OPC_MoveParent,
/*324470*/              OPC_RecordChild2, // #4 = $src0
/*324471*/              OPC_CheckType, MVT::v2f64,
/*324473*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324475*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*324478*/              OPC_EmitMergeInputChains1_2,
/*324479*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                        // Dst: (VADDPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324493*/            /*Scope*/ 45, /*->324539*/
/*324494*/              OPC_MoveChild0,
/*324495*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*324498*/              OPC_MoveChild0,
/*324499*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324502*/              OPC_RecordMemRef,
/*324503*/              OPC_RecordNode, // #1 = 'ld' chained node
/*324504*/              OPC_CheckFoldableChainNode,
/*324505*/              OPC_RecordChild1, // #2 = $src2
/*324506*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324508*/              OPC_CheckPredicate, 9, // Predicate_load
/*324510*/              OPC_CheckType, MVT::f64,
/*324512*/              OPC_MoveParent,
/*324513*/              OPC_MoveParent,
/*324514*/              OPC_RecordChild1, // #3 = $src1
/*324515*/              OPC_MoveParent,
/*324516*/              OPC_RecordChild2, // #4 = $src0
/*324517*/              OPC_CheckType, MVT::v2f64,
/*324519*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324521*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*324524*/              OPC_EmitMergeInputChains1_1,
/*324525*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                        // Dst: (VADDPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324539*/            /*Scope*/ 40, /*->324580*/
/*324540*/              OPC_RecordChild0, // #1 = $src1
/*324541*/              OPC_MoveChild1,
/*324542*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324545*/              OPC_RecordMemRef,
/*324546*/              OPC_RecordNode, // #2 = 'ld' chained node
/*324547*/              OPC_CheckFoldableChainNode,
/*324548*/              OPC_RecordChild1, // #3 = $src2
/*324549*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324551*/              OPC_CheckPredicate, 9, // Predicate_load
/*324553*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*324555*/              OPC_MoveParent,
/*324556*/              OPC_MoveParent,
/*324557*/              OPC_RecordChild2, // #4 = $src0
/*324558*/              OPC_CheckType, MVT::v2f64,
/*324560*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324562*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*324565*/              OPC_EmitMergeInputChains1_2,
/*324566*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VADDPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324580*/            /*Scope*/ 40, /*->324621*/
/*324581*/              OPC_MoveChild0,
/*324582*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324585*/              OPC_RecordMemRef,
/*324586*/              OPC_RecordNode, // #1 = 'ld' chained node
/*324587*/              OPC_CheckFoldableChainNode,
/*324588*/              OPC_RecordChild1, // #2 = $src2
/*324589*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324591*/              OPC_CheckPredicate, 9, // Predicate_load
/*324593*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*324595*/              OPC_MoveParent,
/*324596*/              OPC_RecordChild1, // #3 = $src1
/*324597*/              OPC_MoveParent,
/*324598*/              OPC_RecordChild2, // #4 = $src0
/*324599*/              OPC_CheckType, MVT::v2f64,
/*324601*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324603*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*324606*/              OPC_EmitMergeInputChains1_1,
/*324607*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VADDPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324621*/            0, /*End of Scope*/
/*324622*/          /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(ISD::FMUL),// ->325024
/*324626*/            OPC_Scope, 57, /*->324685*/ // 8 children in Scope
/*324628*/              OPC_RecordChild0, // #1 = $src1
/*324629*/              OPC_MoveChild1,
/*324630*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*324633*/              OPC_MoveChild0,
/*324634*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324637*/              OPC_RecordMemRef,
/*324638*/              OPC_RecordNode, // #2 = 'ld' chained node
/*324639*/              OPC_CheckFoldableChainNode,
/*324640*/              OPC_RecordChild1, // #3 = $src2
/*324641*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324643*/              OPC_CheckPredicate, 9, // Predicate_load
/*324645*/              OPC_CheckType, MVT::f64,
/*324647*/              OPC_MoveParent,
/*324648*/              OPC_MoveParent,
/*324649*/              OPC_MoveParent,
/*324650*/              OPC_MoveChild2,
/*324651*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*324654*/              OPC_MoveChild0,
/*324655*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*324658*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*324660*/              OPC_CheckType, MVT::v4i32,
/*324662*/              OPC_MoveParent,
/*324663*/              OPC_MoveParent,
/*324664*/              OPC_CheckType, MVT::v2f64,
/*324666*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324668*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*324671*/              OPC_EmitMergeInputChains1_2,
/*324672*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMULPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324685*/            /*Scope*/ 57, /*->324743*/
/*324686*/              OPC_MoveChild0,
/*324687*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*324690*/              OPC_MoveChild0,
/*324691*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324694*/              OPC_RecordMemRef,
/*324695*/              OPC_RecordNode, // #1 = 'ld' chained node
/*324696*/              OPC_CheckFoldableChainNode,
/*324697*/              OPC_RecordChild1, // #2 = $src2
/*324698*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324700*/              OPC_CheckPredicate, 9, // Predicate_load
/*324702*/              OPC_CheckType, MVT::f64,
/*324704*/              OPC_MoveParent,
/*324705*/              OPC_MoveParent,
/*324706*/              OPC_RecordChild1, // #3 = $src1
/*324707*/              OPC_MoveParent,
/*324708*/              OPC_MoveChild2,
/*324709*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*324712*/              OPC_MoveChild0,
/*324713*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*324716*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*324718*/              OPC_CheckType, MVT::v4i32,
/*324720*/              OPC_MoveParent,
/*324721*/              OPC_MoveParent,
/*324722*/              OPC_CheckType, MVT::v2f64,
/*324724*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324726*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*324729*/              OPC_EmitMergeInputChains1_1,
/*324730*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fmul:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMULPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324743*/            /*Scope*/ 52, /*->324796*/
/*324744*/              OPC_RecordChild0, // #1 = $src1
/*324745*/              OPC_MoveChild1,
/*324746*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324749*/              OPC_RecordMemRef,
/*324750*/              OPC_RecordNode, // #2 = 'ld' chained node
/*324751*/              OPC_CheckFoldableChainNode,
/*324752*/              OPC_RecordChild1, // #3 = $src2
/*324753*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324755*/              OPC_CheckPredicate, 9, // Predicate_load
/*324757*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*324759*/              OPC_MoveParent,
/*324760*/              OPC_MoveParent,
/*324761*/              OPC_MoveChild2,
/*324762*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*324765*/              OPC_MoveChild0,
/*324766*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*324769*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*324771*/              OPC_CheckType, MVT::v4i32,
/*324773*/              OPC_MoveParent,
/*324774*/              OPC_MoveParent,
/*324775*/              OPC_CheckType, MVT::v2f64,
/*324777*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324779*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*324782*/              OPC_EmitMergeInputChains1_2,
/*324783*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMULPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324796*/            /*Scope*/ 52, /*->324849*/
/*324797*/              OPC_MoveChild0,
/*324798*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324801*/              OPC_RecordMemRef,
/*324802*/              OPC_RecordNode, // #1 = 'ld' chained node
/*324803*/              OPC_CheckFoldableChainNode,
/*324804*/              OPC_RecordChild1, // #2 = $src2
/*324805*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324807*/              OPC_CheckPredicate, 9, // Predicate_load
/*324809*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*324811*/              OPC_MoveParent,
/*324812*/              OPC_RecordChild1, // #3 = $src1
/*324813*/              OPC_MoveParent,
/*324814*/              OPC_MoveChild2,
/*324815*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*324818*/              OPC_MoveChild0,
/*324819*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*324822*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*324824*/              OPC_CheckType, MVT::v4i32,
/*324826*/              OPC_MoveParent,
/*324827*/              OPC_MoveParent,
/*324828*/              OPC_CheckType, MVT::v2f64,
/*324830*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324832*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*324835*/              OPC_EmitMergeInputChains1_1,
/*324836*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fmul:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMULPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324849*/            /*Scope*/ 45, /*->324895*/
/*324850*/              OPC_RecordChild0, // #1 = $src1
/*324851*/              OPC_MoveChild1,
/*324852*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*324855*/              OPC_MoveChild0,
/*324856*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324859*/              OPC_RecordMemRef,
/*324860*/              OPC_RecordNode, // #2 = 'ld' chained node
/*324861*/              OPC_CheckFoldableChainNode,
/*324862*/              OPC_RecordChild1, // #3 = $src2
/*324863*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324865*/              OPC_CheckPredicate, 9, // Predicate_load
/*324867*/              OPC_CheckType, MVT::f64,
/*324869*/              OPC_MoveParent,
/*324870*/              OPC_MoveParent,
/*324871*/              OPC_MoveParent,
/*324872*/              OPC_RecordChild2, // #4 = $src0
/*324873*/              OPC_CheckType, MVT::v2f64,
/*324875*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324877*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*324880*/              OPC_EmitMergeInputChains1_2,
/*324881*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                        // Dst: (VMULPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324895*/            /*Scope*/ 45, /*->324941*/
/*324896*/              OPC_MoveChild0,
/*324897*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*324900*/              OPC_MoveChild0,
/*324901*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324904*/              OPC_RecordMemRef,
/*324905*/              OPC_RecordNode, // #1 = 'ld' chained node
/*324906*/              OPC_CheckFoldableChainNode,
/*324907*/              OPC_RecordChild1, // #2 = $src2
/*324908*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324910*/              OPC_CheckPredicate, 9, // Predicate_load
/*324912*/              OPC_CheckType, MVT::f64,
/*324914*/              OPC_MoveParent,
/*324915*/              OPC_MoveParent,
/*324916*/              OPC_RecordChild1, // #3 = $src1
/*324917*/              OPC_MoveParent,
/*324918*/              OPC_RecordChild2, // #4 = $src0
/*324919*/              OPC_CheckType, MVT::v2f64,
/*324921*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324923*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*324926*/              OPC_EmitMergeInputChains1_1,
/*324927*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fmul:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                        // Dst: (VMULPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324941*/            /*Scope*/ 40, /*->324982*/
/*324942*/              OPC_RecordChild0, // #1 = $src1
/*324943*/              OPC_MoveChild1,
/*324944*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324947*/              OPC_RecordMemRef,
/*324948*/              OPC_RecordNode, // #2 = 'ld' chained node
/*324949*/              OPC_CheckFoldableChainNode,
/*324950*/              OPC_RecordChild1, // #3 = $src2
/*324951*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324953*/              OPC_CheckPredicate, 9, // Predicate_load
/*324955*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*324957*/              OPC_MoveParent,
/*324958*/              OPC_MoveParent,
/*324959*/              OPC_RecordChild2, // #4 = $src0
/*324960*/              OPC_CheckType, MVT::v2f64,
/*324962*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*324964*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*324967*/              OPC_EmitMergeInputChains1_2,
/*324968*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VMULPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*324982*/            /*Scope*/ 40, /*->325023*/
/*324983*/              OPC_MoveChild0,
/*324984*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*324987*/              OPC_RecordMemRef,
/*324988*/              OPC_RecordNode, // #1 = 'ld' chained node
/*324989*/              OPC_CheckFoldableChainNode,
/*324990*/              OPC_RecordChild1, // #2 = $src2
/*324991*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*324993*/              OPC_CheckPredicate, 9, // Predicate_load
/*324995*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*324997*/              OPC_MoveParent,
/*324998*/              OPC_RecordChild1, // #3 = $src1
/*324999*/              OPC_MoveParent,
/*325000*/              OPC_RecordChild2, // #4 = $src0
/*325001*/              OPC_CheckType, MVT::v2f64,
/*325003*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325005*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*325008*/              OPC_EmitMergeInputChains1_1,
/*325009*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fmul:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VMULPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325023*/            0, /*End of Scope*/
/*325024*/          /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(ISD::FSUB),// ->325191
/*325028*/            OPC_RecordChild0, // #1 = $src1
/*325029*/            OPC_MoveChild1,
/*325030*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->325113
/*325034*/              OPC_MoveChild0,
/*325035*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*325038*/              OPC_RecordMemRef,
/*325039*/              OPC_RecordNode, // #2 = 'ld' chained node
/*325040*/              OPC_CheckFoldableChainNode,
/*325041*/              OPC_RecordChild1, // #3 = $src2
/*325042*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325044*/              OPC_CheckPredicate, 9, // Predicate_load
/*325046*/              OPC_CheckType, MVT::f64,
/*325048*/              OPC_MoveParent,
/*325049*/              OPC_MoveParent,
/*325050*/              OPC_MoveParent,
/*325051*/              OPC_Scope, 35, /*->325088*/ // 2 children in Scope
/*325053*/                OPC_MoveChild2,
/*325054*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325057*/                OPC_MoveChild0,
/*325058*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325061*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325063*/                OPC_CheckType, MVT::v4i32,
/*325065*/                OPC_MoveParent,
/*325066*/                OPC_MoveParent,
/*325067*/                OPC_CheckType, MVT::v2f64,
/*325069*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325071*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325074*/                OPC_EmitMergeInputChains1_2,
/*325075*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSUBPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325088*/              /*Scope*/ 23, /*->325112*/
/*325089*/                OPC_RecordChild2, // #4 = $src0
/*325090*/                OPC_CheckType, MVT::v2f64,
/*325092*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325094*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*325097*/                OPC_EmitMergeInputChains1_2,
/*325098*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VSUBPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325112*/              0, /*End of Scope*/
/*325113*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->325190
/*325116*/              OPC_RecordMemRef,
/*325117*/              OPC_RecordNode, // #2 = 'ld' chained node
/*325118*/              OPC_CheckFoldableChainNode,
/*325119*/              OPC_RecordChild1, // #3 = $src2
/*325120*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325122*/              OPC_CheckPredicate, 9, // Predicate_load
/*325124*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*325126*/              OPC_MoveParent,
/*325127*/              OPC_MoveParent,
/*325128*/              OPC_Scope, 35, /*->325165*/ // 2 children in Scope
/*325130*/                OPC_MoveChild2,
/*325131*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325134*/                OPC_MoveChild0,
/*325135*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325138*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325140*/                OPC_CheckType, MVT::v4i32,
/*325142*/                OPC_MoveParent,
/*325143*/                OPC_MoveParent,
/*325144*/                OPC_CheckType, MVT::v2f64,
/*325146*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325148*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325151*/                OPC_EmitMergeInputChains1_2,
/*325152*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VSUBPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325165*/              /*Scope*/ 23, /*->325189*/
/*325166*/                OPC_RecordChild2, // #4 = $src0
/*325167*/                OPC_CheckType, MVT::v2f64,
/*325169*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325171*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*325174*/                OPC_EmitMergeInputChains1_2,
/*325175*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325189*/              0, /*End of Scope*/
/*325190*/            0, // EndSwitchOpcode
/*325191*/          /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(ISD::FDIV),// ->325358
/*325195*/            OPC_RecordChild0, // #1 = $src1
/*325196*/            OPC_MoveChild1,
/*325197*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->325280
/*325201*/              OPC_MoveChild0,
/*325202*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*325205*/              OPC_RecordMemRef,
/*325206*/              OPC_RecordNode, // #2 = 'ld' chained node
/*325207*/              OPC_CheckFoldableChainNode,
/*325208*/              OPC_RecordChild1, // #3 = $src2
/*325209*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325211*/              OPC_CheckPredicate, 9, // Predicate_load
/*325213*/              OPC_CheckType, MVT::f64,
/*325215*/              OPC_MoveParent,
/*325216*/              OPC_MoveParent,
/*325217*/              OPC_MoveParent,
/*325218*/              OPC_Scope, 35, /*->325255*/ // 2 children in Scope
/*325220*/                OPC_MoveChild2,
/*325221*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325224*/                OPC_MoveChild0,
/*325225*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325228*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325230*/                OPC_CheckType, MVT::v4i32,
/*325232*/                OPC_MoveParent,
/*325233*/                OPC_MoveParent,
/*325234*/                OPC_CheckType, MVT::v2f64,
/*325236*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325238*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325241*/                OPC_EmitMergeInputChains1_2,
/*325242*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VDIVPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325255*/              /*Scope*/ 23, /*->325279*/
/*325256*/                OPC_RecordChild2, // #4 = $src0
/*325257*/                OPC_CheckType, MVT::v2f64,
/*325259*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325261*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*325264*/                OPC_EmitMergeInputChains1_2,
/*325265*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VDIVPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325279*/              0, /*End of Scope*/
/*325280*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->325357
/*325283*/              OPC_RecordMemRef,
/*325284*/              OPC_RecordNode, // #2 = 'ld' chained node
/*325285*/              OPC_CheckFoldableChainNode,
/*325286*/              OPC_RecordChild1, // #3 = $src2
/*325287*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325289*/              OPC_CheckPredicate, 9, // Predicate_load
/*325291*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*325293*/              OPC_MoveParent,
/*325294*/              OPC_MoveParent,
/*325295*/              OPC_Scope, 35, /*->325332*/ // 2 children in Scope
/*325297*/                OPC_MoveChild2,
/*325298*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325301*/                OPC_MoveChild0,
/*325302*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325305*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325307*/                OPC_CheckType, MVT::v4i32,
/*325309*/                OPC_MoveParent,
/*325310*/                OPC_MoveParent,
/*325311*/                OPC_CheckType, MVT::v2f64,
/*325313*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325315*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325318*/                OPC_EmitMergeInputChains1_2,
/*325319*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VDIVPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325332*/              /*Scope*/ 23, /*->325356*/
/*325333*/                OPC_RecordChild2, // #4 = $src0
/*325334*/                OPC_CheckType, MVT::v2f64,
/*325336*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325338*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*325341*/                OPC_EmitMergeInputChains1_2,
/*325342*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325356*/              0, /*End of Scope*/
/*325357*/            0, // EndSwitchOpcode
/*325358*/          /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::FMIN),// ->325525
/*325362*/            OPC_RecordChild0, // #1 = $src1
/*325363*/            OPC_MoveChild1,
/*325364*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->325447
/*325368*/              OPC_MoveChild0,
/*325369*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*325372*/              OPC_RecordMemRef,
/*325373*/              OPC_RecordNode, // #2 = 'ld' chained node
/*325374*/              OPC_CheckFoldableChainNode,
/*325375*/              OPC_RecordChild1, // #3 = $src2
/*325376*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325378*/              OPC_CheckPredicate, 9, // Predicate_load
/*325380*/              OPC_CheckType, MVT::f64,
/*325382*/              OPC_MoveParent,
/*325383*/              OPC_MoveParent,
/*325384*/              OPC_MoveParent,
/*325385*/              OPC_Scope, 35, /*->325422*/ // 2 children in Scope
/*325387*/                OPC_MoveChild2,
/*325388*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325391*/                OPC_MoveChild0,
/*325392*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325395*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325397*/                OPC_CheckType, MVT::v4i32,
/*325399*/                OPC_MoveParent,
/*325400*/                OPC_MoveParent,
/*325401*/                OPC_CheckType, MVT::v2f64,
/*325403*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325405*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325408*/                OPC_EmitMergeInputChains1_2,
/*325409*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmin:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325422*/              /*Scope*/ 23, /*->325446*/
/*325423*/                OPC_RecordChild2, // #4 = $src0
/*325424*/                OPC_CheckType, MVT::v2f64,
/*325426*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325428*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*325431*/                OPC_EmitMergeInputChains1_2,
/*325432*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmin:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VMINPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325446*/              0, /*End of Scope*/
/*325447*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->325524
/*325450*/              OPC_RecordMemRef,
/*325451*/              OPC_RecordNode, // #2 = 'ld' chained node
/*325452*/              OPC_CheckFoldableChainNode,
/*325453*/              OPC_RecordChild1, // #3 = $src2
/*325454*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325456*/              OPC_CheckPredicate, 9, // Predicate_load
/*325458*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*325460*/              OPC_MoveParent,
/*325461*/              OPC_MoveParent,
/*325462*/              OPC_Scope, 35, /*->325499*/ // 2 children in Scope
/*325464*/                OPC_MoveChild2,
/*325465*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325468*/                OPC_MoveChild0,
/*325469*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325472*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325474*/                OPC_CheckType, MVT::v4i32,
/*325476*/                OPC_MoveParent,
/*325477*/                OPC_MoveParent,
/*325478*/                OPC_CheckType, MVT::v2f64,
/*325480*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325482*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325485*/                OPC_EmitMergeInputChains1_2,
/*325486*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmin:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325499*/              /*Scope*/ 23, /*->325523*/
/*325500*/                OPC_RecordChild2, // #4 = $src0
/*325501*/                OPC_CheckType, MVT::v2f64,
/*325503*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325505*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*325508*/                OPC_EmitMergeInputChains1_2,
/*325509*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmin:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMINPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325523*/              0, /*End of Scope*/
/*325524*/            0, // EndSwitchOpcode
/*325525*/          /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::FMAX),// ->325692
/*325529*/            OPC_RecordChild0, // #1 = $src1
/*325530*/            OPC_MoveChild1,
/*325531*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->325614
/*325535*/              OPC_MoveChild0,
/*325536*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*325539*/              OPC_RecordMemRef,
/*325540*/              OPC_RecordNode, // #2 = 'ld' chained node
/*325541*/              OPC_CheckFoldableChainNode,
/*325542*/              OPC_RecordChild1, // #3 = $src2
/*325543*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325545*/              OPC_CheckPredicate, 9, // Predicate_load
/*325547*/              OPC_CheckType, MVT::f64,
/*325549*/              OPC_MoveParent,
/*325550*/              OPC_MoveParent,
/*325551*/              OPC_MoveParent,
/*325552*/              OPC_Scope, 35, /*->325589*/ // 2 children in Scope
/*325554*/                OPC_MoveChild2,
/*325555*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325558*/                OPC_MoveChild0,
/*325559*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325562*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325564*/                OPC_CheckType, MVT::v4i32,
/*325566*/                OPC_MoveParent,
/*325567*/                OPC_MoveParent,
/*325568*/                OPC_CheckType, MVT::v2f64,
/*325570*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325572*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325575*/                OPC_EmitMergeInputChains1_2,
/*325576*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmax:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325589*/              /*Scope*/ 23, /*->325613*/
/*325590*/                OPC_RecordChild2, // #4 = $src0
/*325591*/                OPC_CheckType, MVT::v2f64,
/*325593*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325595*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*325598*/                OPC_EmitMergeInputChains1_2,
/*325599*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmax:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VMAXPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325613*/              0, /*End of Scope*/
/*325614*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->325691
/*325617*/              OPC_RecordMemRef,
/*325618*/              OPC_RecordNode, // #2 = 'ld' chained node
/*325619*/              OPC_CheckFoldableChainNode,
/*325620*/              OPC_RecordChild1, // #3 = $src2
/*325621*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325623*/              OPC_CheckPredicate, 9, // Predicate_load
/*325625*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*325627*/              OPC_MoveParent,
/*325628*/              OPC_MoveParent,
/*325629*/              OPC_Scope, 35, /*->325666*/ // 2 children in Scope
/*325631*/                OPC_MoveChild2,
/*325632*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325635*/                OPC_MoveChild0,
/*325636*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325639*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325641*/                OPC_CheckType, MVT::v4i32,
/*325643*/                OPC_MoveParent,
/*325644*/                OPC_MoveParent,
/*325645*/                OPC_CheckType, MVT::v2f64,
/*325647*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325649*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325652*/                OPC_EmitMergeInputChains1_2,
/*325653*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmax:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325666*/              /*Scope*/ 23, /*->325690*/
/*325667*/                OPC_RecordChild2, // #4 = $src0
/*325668*/                OPC_CheckType, MVT::v2f64,
/*325670*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325672*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*325675*/                OPC_EmitMergeInputChains1_2,
/*325676*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmax:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325690*/              0, /*End of Scope*/
/*325691*/            0, // EndSwitchOpcode
/*325692*/          /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(X86ISD::FMINC),// ->326094
/*325696*/            OPC_Scope, 57, /*->325755*/ // 8 children in Scope
/*325698*/              OPC_RecordChild0, // #1 = $src1
/*325699*/              OPC_MoveChild1,
/*325700*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*325703*/              OPC_MoveChild0,
/*325704*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*325707*/              OPC_RecordMemRef,
/*325708*/              OPC_RecordNode, // #2 = 'ld' chained node
/*325709*/              OPC_CheckFoldableChainNode,
/*325710*/              OPC_RecordChild1, // #3 = $src2
/*325711*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325713*/              OPC_CheckPredicate, 9, // Predicate_load
/*325715*/              OPC_CheckType, MVT::f64,
/*325717*/              OPC_MoveParent,
/*325718*/              OPC_MoveParent,
/*325719*/              OPC_MoveParent,
/*325720*/              OPC_MoveChild2,
/*325721*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325724*/              OPC_MoveChild0,
/*325725*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325728*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325730*/              OPC_CheckType, MVT::v4i32,
/*325732*/              OPC_MoveParent,
/*325733*/              OPC_MoveParent,
/*325734*/              OPC_CheckType, MVT::v2f64,
/*325736*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325738*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325741*/              OPC_EmitMergeInputChains1_2,
/*325742*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fminc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMINCPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325755*/            /*Scope*/ 57, /*->325813*/
/*325756*/              OPC_MoveChild0,
/*325757*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*325760*/              OPC_MoveChild0,
/*325761*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*325764*/              OPC_RecordMemRef,
/*325765*/              OPC_RecordNode, // #1 = 'ld' chained node
/*325766*/              OPC_CheckFoldableChainNode,
/*325767*/              OPC_RecordChild1, // #2 = $src2
/*325768*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325770*/              OPC_CheckPredicate, 9, // Predicate_load
/*325772*/              OPC_CheckType, MVT::f64,
/*325774*/              OPC_MoveParent,
/*325775*/              OPC_MoveParent,
/*325776*/              OPC_RecordChild1, // #3 = $src1
/*325777*/              OPC_MoveParent,
/*325778*/              OPC_MoveChild2,
/*325779*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325782*/              OPC_MoveChild0,
/*325783*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325786*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325788*/              OPC_CheckType, MVT::v4i32,
/*325790*/              OPC_MoveParent,
/*325791*/              OPC_MoveParent,
/*325792*/              OPC_CheckType, MVT::v2f64,
/*325794*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325796*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325799*/              OPC_EmitMergeInputChains1_1,
/*325800*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fminc:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMINCPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325813*/            /*Scope*/ 52, /*->325866*/
/*325814*/              OPC_RecordChild0, // #1 = $src1
/*325815*/              OPC_MoveChild1,
/*325816*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*325819*/              OPC_RecordMemRef,
/*325820*/              OPC_RecordNode, // #2 = 'ld' chained node
/*325821*/              OPC_CheckFoldableChainNode,
/*325822*/              OPC_RecordChild1, // #3 = $src2
/*325823*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325825*/              OPC_CheckPredicate, 9, // Predicate_load
/*325827*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*325829*/              OPC_MoveParent,
/*325830*/              OPC_MoveParent,
/*325831*/              OPC_MoveChild2,
/*325832*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325835*/              OPC_MoveChild0,
/*325836*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325839*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325841*/              OPC_CheckType, MVT::v4i32,
/*325843*/              OPC_MoveParent,
/*325844*/              OPC_MoveParent,
/*325845*/              OPC_CheckType, MVT::v2f64,
/*325847*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325849*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325852*/              OPC_EmitMergeInputChains1_2,
/*325853*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fminc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMINCPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325866*/            /*Scope*/ 52, /*->325919*/
/*325867*/              OPC_MoveChild0,
/*325868*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*325871*/              OPC_RecordMemRef,
/*325872*/              OPC_RecordNode, // #1 = 'ld' chained node
/*325873*/              OPC_CheckFoldableChainNode,
/*325874*/              OPC_RecordChild1, // #2 = $src2
/*325875*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325877*/              OPC_CheckPredicate, 9, // Predicate_load
/*325879*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*325881*/              OPC_MoveParent,
/*325882*/              OPC_RecordChild1, // #3 = $src1
/*325883*/              OPC_MoveParent,
/*325884*/              OPC_MoveChild2,
/*325885*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*325888*/              OPC_MoveChild0,
/*325889*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*325892*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*325894*/              OPC_CheckType, MVT::v4i32,
/*325896*/              OPC_MoveParent,
/*325897*/              OPC_MoveParent,
/*325898*/              OPC_CheckType, MVT::v2f64,
/*325900*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325902*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*325905*/              OPC_EmitMergeInputChains1_1,
/*325906*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fminc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMINCPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325919*/            /*Scope*/ 45, /*->325965*/
/*325920*/              OPC_RecordChild0, // #1 = $src1
/*325921*/              OPC_MoveChild1,
/*325922*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*325925*/              OPC_MoveChild0,
/*325926*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*325929*/              OPC_RecordMemRef,
/*325930*/              OPC_RecordNode, // #2 = 'ld' chained node
/*325931*/              OPC_CheckFoldableChainNode,
/*325932*/              OPC_RecordChild1, // #3 = $src2
/*325933*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325935*/              OPC_CheckPredicate, 9, // Predicate_load
/*325937*/              OPC_CheckType, MVT::f64,
/*325939*/              OPC_MoveParent,
/*325940*/              OPC_MoveParent,
/*325941*/              OPC_MoveParent,
/*325942*/              OPC_RecordChild2, // #4 = $src0
/*325943*/              OPC_CheckType, MVT::v2f64,
/*325945*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325947*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*325950*/              OPC_EmitMergeInputChains1_2,
/*325951*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fminc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                        // Dst: (VMINCPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*325965*/            /*Scope*/ 45, /*->326011*/
/*325966*/              OPC_MoveChild0,
/*325967*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*325970*/              OPC_MoveChild0,
/*325971*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*325974*/              OPC_RecordMemRef,
/*325975*/              OPC_RecordNode, // #1 = 'ld' chained node
/*325976*/              OPC_CheckFoldableChainNode,
/*325977*/              OPC_RecordChild1, // #2 = $src2
/*325978*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*325980*/              OPC_CheckPredicate, 9, // Predicate_load
/*325982*/              OPC_CheckType, MVT::f64,
/*325984*/              OPC_MoveParent,
/*325985*/              OPC_MoveParent,
/*325986*/              OPC_RecordChild1, // #3 = $src1
/*325987*/              OPC_MoveParent,
/*325988*/              OPC_RecordChild2, // #4 = $src0
/*325989*/              OPC_CheckType, MVT::v2f64,
/*325991*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*325993*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*325996*/              OPC_EmitMergeInputChains1_1,
/*325997*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fminc:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                        // Dst: (VMINCPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326011*/            /*Scope*/ 40, /*->326052*/
/*326012*/              OPC_RecordChild0, // #1 = $src1
/*326013*/              OPC_MoveChild1,
/*326014*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326017*/              OPC_RecordMemRef,
/*326018*/              OPC_RecordNode, // #2 = 'ld' chained node
/*326019*/              OPC_CheckFoldableChainNode,
/*326020*/              OPC_RecordChild1, // #3 = $src2
/*326021*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326023*/              OPC_CheckPredicate, 9, // Predicate_load
/*326025*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*326027*/              OPC_MoveParent,
/*326028*/              OPC_MoveParent,
/*326029*/              OPC_RecordChild2, // #4 = $src0
/*326030*/              OPC_CheckType, MVT::v2f64,
/*326032*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326034*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*326037*/              OPC_EmitMergeInputChains1_2,
/*326038*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fminc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VMINCPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326052*/            /*Scope*/ 40, /*->326093*/
/*326053*/              OPC_MoveChild0,
/*326054*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326057*/              OPC_RecordMemRef,
/*326058*/              OPC_RecordNode, // #1 = 'ld' chained node
/*326059*/              OPC_CheckFoldableChainNode,
/*326060*/              OPC_RecordChild1, // #2 = $src2
/*326061*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326063*/              OPC_CheckPredicate, 9, // Predicate_load
/*326065*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*326067*/              OPC_MoveParent,
/*326068*/              OPC_RecordChild1, // #3 = $src1
/*326069*/              OPC_MoveParent,
/*326070*/              OPC_RecordChild2, // #4 = $src0
/*326071*/              OPC_CheckType, MVT::v2f64,
/*326073*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326075*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*326078*/              OPC_EmitMergeInputChains1_1,
/*326079*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fminc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VMINCPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326093*/            0, /*End of Scope*/
/*326094*/          /*SwitchOpcode*/ 14|128,3/*398*/, TARGET_VAL(X86ISD::FMAXC),// ->326496
/*326098*/            OPC_Scope, 57, /*->326157*/ // 8 children in Scope
/*326100*/              OPC_RecordChild0, // #1 = $src1
/*326101*/              OPC_MoveChild1,
/*326102*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*326105*/              OPC_MoveChild0,
/*326106*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326109*/              OPC_RecordMemRef,
/*326110*/              OPC_RecordNode, // #2 = 'ld' chained node
/*326111*/              OPC_CheckFoldableChainNode,
/*326112*/              OPC_RecordChild1, // #3 = $src2
/*326113*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326115*/              OPC_CheckPredicate, 9, // Predicate_load
/*326117*/              OPC_CheckType, MVT::f64,
/*326119*/              OPC_MoveParent,
/*326120*/              OPC_MoveParent,
/*326121*/              OPC_MoveParent,
/*326122*/              OPC_MoveChild2,
/*326123*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326126*/              OPC_MoveChild0,
/*326127*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326130*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326132*/              OPC_CheckType, MVT::v4i32,
/*326134*/              OPC_MoveParent,
/*326135*/              OPC_MoveParent,
/*326136*/              OPC_CheckType, MVT::v2f64,
/*326138*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326140*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*326143*/              OPC_EmitMergeInputChains1_2,
/*326144*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmaxc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMAXCPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326157*/            /*Scope*/ 57, /*->326215*/
/*326158*/              OPC_MoveChild0,
/*326159*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*326162*/              OPC_MoveChild0,
/*326163*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326166*/              OPC_RecordMemRef,
/*326167*/              OPC_RecordNode, // #1 = 'ld' chained node
/*326168*/              OPC_CheckFoldableChainNode,
/*326169*/              OPC_RecordChild1, // #2 = $src2
/*326170*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326172*/              OPC_CheckPredicate, 9, // Predicate_load
/*326174*/              OPC_CheckType, MVT::f64,
/*326176*/              OPC_MoveParent,
/*326177*/              OPC_MoveParent,
/*326178*/              OPC_RecordChild1, // #3 = $src1
/*326179*/              OPC_MoveParent,
/*326180*/              OPC_MoveChild2,
/*326181*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326184*/              OPC_MoveChild0,
/*326185*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326188*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326190*/              OPC_CheckType, MVT::v4i32,
/*326192*/              OPC_MoveParent,
/*326193*/              OPC_MoveParent,
/*326194*/              OPC_CheckType, MVT::v2f64,
/*326196*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326198*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*326201*/              OPC_EmitMergeInputChains1_1,
/*326202*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmaxc:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMAXCPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326215*/            /*Scope*/ 52, /*->326268*/
/*326216*/              OPC_RecordChild0, // #1 = $src1
/*326217*/              OPC_MoveChild1,
/*326218*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326221*/              OPC_RecordMemRef,
/*326222*/              OPC_RecordNode, // #2 = 'ld' chained node
/*326223*/              OPC_CheckFoldableChainNode,
/*326224*/              OPC_RecordChild1, // #3 = $src2
/*326225*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326227*/              OPC_CheckPredicate, 9, // Predicate_load
/*326229*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*326231*/              OPC_MoveParent,
/*326232*/              OPC_MoveParent,
/*326233*/              OPC_MoveChild2,
/*326234*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326237*/              OPC_MoveChild0,
/*326238*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326241*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326243*/              OPC_CheckType, MVT::v4i32,
/*326245*/              OPC_MoveParent,
/*326246*/              OPC_MoveParent,
/*326247*/              OPC_CheckType, MVT::v2f64,
/*326249*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326251*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*326254*/              OPC_EmitMergeInputChains1_2,
/*326255*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmaxc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMAXCPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326268*/            /*Scope*/ 52, /*->326321*/
/*326269*/              OPC_MoveChild0,
/*326270*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326273*/              OPC_RecordMemRef,
/*326274*/              OPC_RecordNode, // #1 = 'ld' chained node
/*326275*/              OPC_CheckFoldableChainNode,
/*326276*/              OPC_RecordChild1, // #2 = $src2
/*326277*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326279*/              OPC_CheckPredicate, 9, // Predicate_load
/*326281*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*326283*/              OPC_MoveParent,
/*326284*/              OPC_RecordChild1, // #3 = $src1
/*326285*/              OPC_MoveParent,
/*326286*/              OPC_MoveChild2,
/*326287*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326290*/              OPC_MoveChild0,
/*326291*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326294*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326296*/              OPC_CheckType, MVT::v4i32,
/*326298*/              OPC_MoveParent,
/*326299*/              OPC_MoveParent,
/*326300*/              OPC_CheckType, MVT::v2f64,
/*326302*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326304*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*326307*/              OPC_EmitMergeInputChains1_1,
/*326308*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmaxc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMAXCPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326321*/            /*Scope*/ 45, /*->326367*/
/*326322*/              OPC_RecordChild0, // #1 = $src1
/*326323*/              OPC_MoveChild1,
/*326324*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*326327*/              OPC_MoveChild0,
/*326328*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326331*/              OPC_RecordMemRef,
/*326332*/              OPC_RecordNode, // #2 = 'ld' chained node
/*326333*/              OPC_CheckFoldableChainNode,
/*326334*/              OPC_RecordChild1, // #3 = $src2
/*326335*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326337*/              OPC_CheckPredicate, 9, // Predicate_load
/*326339*/              OPC_CheckType, MVT::f64,
/*326341*/              OPC_MoveParent,
/*326342*/              OPC_MoveParent,
/*326343*/              OPC_MoveParent,
/*326344*/              OPC_RecordChild2, // #4 = $src0
/*326345*/              OPC_CheckType, MVT::v2f64,
/*326347*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326349*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*326352*/              OPC_EmitMergeInputChains1_2,
/*326353*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmaxc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                        // Dst: (VMAXCPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326367*/            /*Scope*/ 45, /*->326413*/
/*326368*/              OPC_MoveChild0,
/*326369*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*326372*/              OPC_MoveChild0,
/*326373*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326376*/              OPC_RecordMemRef,
/*326377*/              OPC_RecordNode, // #1 = 'ld' chained node
/*326378*/              OPC_CheckFoldableChainNode,
/*326379*/              OPC_RecordChild1, // #2 = $src2
/*326380*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326382*/              OPC_CheckPredicate, 9, // Predicate_load
/*326384*/              OPC_CheckType, MVT::f64,
/*326386*/              OPC_MoveParent,
/*326387*/              OPC_MoveParent,
/*326388*/              OPC_RecordChild1, // #3 = $src1
/*326389*/              OPC_MoveParent,
/*326390*/              OPC_RecordChild2, // #4 = $src0
/*326391*/              OPC_CheckType, MVT::v2f64,
/*326393*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326395*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*326398*/              OPC_EmitMergeInputChains1_1,
/*326399*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmaxc:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                        // Dst: (VMAXCPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326413*/            /*Scope*/ 40, /*->326454*/
/*326414*/              OPC_RecordChild0, // #1 = $src1
/*326415*/              OPC_MoveChild1,
/*326416*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326419*/              OPC_RecordMemRef,
/*326420*/              OPC_RecordNode, // #2 = 'ld' chained node
/*326421*/              OPC_CheckFoldableChainNode,
/*326422*/              OPC_RecordChild1, // #3 = $src2
/*326423*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326425*/              OPC_CheckPredicate, 9, // Predicate_load
/*326427*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*326429*/              OPC_MoveParent,
/*326430*/              OPC_MoveParent,
/*326431*/              OPC_RecordChild2, // #4 = $src0
/*326432*/              OPC_CheckType, MVT::v2f64,
/*326434*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326436*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*326439*/              OPC_EmitMergeInputChains1_2,
/*326440*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmaxc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VMAXCPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326454*/            /*Scope*/ 40, /*->326495*/
/*326455*/              OPC_MoveChild0,
/*326456*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326459*/              OPC_RecordMemRef,
/*326460*/              OPC_RecordNode, // #1 = 'ld' chained node
/*326461*/              OPC_CheckFoldableChainNode,
/*326462*/              OPC_RecordChild1, // #2 = $src2
/*326463*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326465*/              OPC_CheckPredicate, 9, // Predicate_load
/*326467*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*326469*/              OPC_MoveParent,
/*326470*/              OPC_RecordChild1, // #3 = $src1
/*326471*/              OPC_MoveParent,
/*326472*/              OPC_RecordChild2, // #4 = $src0
/*326473*/              OPC_CheckType, MVT::v2f64,
/*326475*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326477*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*326480*/              OPC_EmitMergeInputChains1_1,
/*326481*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmaxc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VMAXCPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326495*/            0, /*End of Scope*/
/*326496*/          /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::VPERMILPV),// ->326663
/*326500*/            OPC_RecordChild0, // #1 = $src1
/*326501*/            OPC_MoveChild1,
/*326502*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->326585
/*326506*/              OPC_MoveChild0,
/*326507*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326510*/              OPC_RecordMemRef,
/*326511*/              OPC_RecordNode, // #2 = 'ld' chained node
/*326512*/              OPC_CheckFoldableChainNode,
/*326513*/              OPC_RecordChild1, // #3 = $src2
/*326514*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326516*/              OPC_CheckPredicate, 9, // Predicate_load
/*326518*/              OPC_CheckType, MVT::i64,
/*326520*/              OPC_MoveParent,
/*326521*/              OPC_MoveParent,
/*326522*/              OPC_MoveParent,
/*326523*/              OPC_Scope, 35, /*->326560*/ // 2 children in Scope
/*326525*/                OPC_MoveChild2,
/*326526*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326529*/                OPC_MoveChild0,
/*326530*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326533*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326535*/                OPC_CheckType, MVT::v4i32,
/*326537*/                OPC_MoveParent,
/*326538*/                OPC_MoveParent,
/*326539*/                OPC_CheckType, MVT::v2f64,
/*326541*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326543*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*326546*/                OPC_EmitMergeInputChains1_2,
/*326547*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMILPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326560*/              /*Scope*/ 23, /*->326584*/
/*326561*/                OPC_RecordChild2, // #4 = $src0
/*326562*/                OPC_CheckType, MVT::v2f64,
/*326564*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326566*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*326569*/                OPC_EmitMergeInputChains1_2,
/*326570*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326584*/              0, /*End of Scope*/
/*326585*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->326662
/*326588*/              OPC_RecordMemRef,
/*326589*/              OPC_RecordNode, // #2 = 'ld' chained node
/*326590*/              OPC_CheckFoldableChainNode,
/*326591*/              OPC_RecordChild1, // #3 = $src2
/*326592*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326594*/              OPC_CheckPredicate, 9, // Predicate_load
/*326596*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*326598*/              OPC_MoveParent,
/*326599*/              OPC_MoveParent,
/*326600*/              OPC_Scope, 35, /*->326637*/ // 2 children in Scope
/*326602*/                OPC_MoveChild2,
/*326603*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326606*/                OPC_MoveChild0,
/*326607*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326610*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326612*/                OPC_CheckType, MVT::v4i32,
/*326614*/                OPC_MoveParent,
/*326615*/                OPC_MoveParent,
/*326616*/                OPC_CheckType, MVT::v2f64,
/*326618*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326620*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*326623*/                OPC_EmitMergeInputChains1_2,
/*326624*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPERMILPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326637*/              /*Scope*/ 23, /*->326661*/
/*326638*/                OPC_RecordChild2, // #4 = $src0
/*326639*/                OPC_CheckType, MVT::v2f64,
/*326641*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326643*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*326646*/                OPC_EmitMergeInputChains1_2,
/*326647*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VPERMILPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*326661*/              0, /*End of Scope*/
/*326662*/            0, // EndSwitchOpcode
/*326663*/          /*SwitchOpcode*/ 17|128,7/*913*/, TARGET_VAL(ISD::FMA),// ->327580
/*326667*/            OPC_Scope, 123, /*->326792*/ // 13 children in Scope
/*326669*/              OPC_RecordChild0, // #1 = $src2
/*326670*/              OPC_Scope, 60, /*->326732*/ // 2 children in Scope
/*326672*/                OPC_RecordChild1, // #2 = $src1
/*326673*/                OPC_MoveChild2,
/*326674*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*326677*/                OPC_MoveChild0,
/*326678*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326681*/                OPC_RecordMemRef,
/*326682*/                OPC_RecordNode, // #3 = 'ld' chained node
/*326683*/                OPC_CheckFoldableChainNode,
/*326684*/                OPC_RecordChild1, // #4 = $src3
/*326685*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326687*/                OPC_CheckPredicate, 9, // Predicate_load
/*326689*/                OPC_CheckType, MVT::f64,
/*326691*/                OPC_MoveParent,
/*326692*/                OPC_MoveParent,
/*326693*/                OPC_MoveParent,
/*326694*/                OPC_MoveChild2,
/*326695*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326698*/                OPC_MoveChild0,
/*326699*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326702*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326704*/                OPC_CheckType, MVT::v4i32,
/*326706*/                OPC_MoveParent,
/*326707*/                OPC_MoveParent,
/*326708*/                OPC_CheckType, MVT::v2f64,
/*326710*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326712*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*326715*/                OPC_EmitMergeInputChains, 1, 3, 
/*326718*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADD213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*326732*/              /*Scope*/ 58, /*->326791*/
/*326733*/                OPC_MoveChild1,
/*326734*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*326737*/                OPC_MoveChild0,
/*326738*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326741*/                OPC_RecordMemRef,
/*326742*/                OPC_RecordNode, // #2 = 'ld' chained node
/*326743*/                OPC_CheckFoldableChainNode,
/*326744*/                OPC_RecordChild1, // #3 = $src3
/*326745*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326747*/                OPC_CheckPredicate, 9, // Predicate_load
/*326749*/                OPC_CheckType, MVT::f64,
/*326751*/                OPC_MoveParent,
/*326752*/                OPC_MoveParent,
/*326753*/                OPC_RecordChild2, // #4 = $src1
/*326754*/                OPC_MoveParent,
/*326755*/                OPC_MoveChild2,
/*326756*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326759*/                OPC_MoveChild0,
/*326760*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326763*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326765*/                OPC_CheckType, MVT::v4i32,
/*326767*/                OPC_MoveParent,
/*326768*/                OPC_MoveParent,
/*326769*/                OPC_CheckType, MVT::v2f64,
/*326771*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326773*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*326776*/                OPC_EmitMergeInputChains1_2,
/*326777*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADD231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*326791*/              0, /*End of Scope*/
/*326792*/            /*Scope*/ 59, /*->326852*/
/*326793*/              OPC_MoveChild0,
/*326794*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*326797*/              OPC_MoveChild0,
/*326798*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326801*/              OPC_RecordMemRef,
/*326802*/              OPC_RecordNode, // #1 = 'ld' chained node
/*326803*/              OPC_CheckFoldableChainNode,
/*326804*/              OPC_RecordChild1, // #2 = $src3
/*326805*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326807*/              OPC_CheckPredicate, 9, // Predicate_load
/*326809*/              OPC_CheckType, MVT::f64,
/*326811*/              OPC_MoveParent,
/*326812*/              OPC_MoveParent,
/*326813*/              OPC_RecordChild1, // #3 = $src1
/*326814*/              OPC_RecordChild2, // #4 = $src2
/*326815*/              OPC_MoveParent,
/*326816*/              OPC_MoveChild2,
/*326817*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326820*/              OPC_MoveChild0,
/*326821*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326824*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326826*/              OPC_CheckType, MVT::v4i32,
/*326828*/              OPC_MoveParent,
/*326829*/              OPC_MoveParent,
/*326830*/              OPC_CheckType, MVT::v2f64,
/*326832*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326834*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*326837*/              OPC_EmitMergeInputChains1_1,
/*326838*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFMADD132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*326852*/            /*Scope*/ 113, /*->326966*/
/*326853*/              OPC_RecordChild0, // #1 = $src2
/*326854*/              OPC_Scope, 55, /*->326911*/ // 2 children in Scope
/*326856*/                OPC_RecordChild1, // #2 = $src1
/*326857*/                OPC_MoveChild2,
/*326858*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326861*/                OPC_RecordMemRef,
/*326862*/                OPC_RecordNode, // #3 = 'ld' chained node
/*326863*/                OPC_CheckFoldableChainNode,
/*326864*/                OPC_RecordChild1, // #4 = $src3
/*326865*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326867*/                OPC_CheckPredicate, 9, // Predicate_load
/*326869*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*326871*/                OPC_MoveParent,
/*326872*/                OPC_MoveParent,
/*326873*/                OPC_MoveChild2,
/*326874*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326877*/                OPC_MoveChild0,
/*326878*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326881*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326883*/                OPC_CheckType, MVT::v4i32,
/*326885*/                OPC_MoveParent,
/*326886*/                OPC_MoveParent,
/*326887*/                OPC_CheckType, MVT::v2f64,
/*326889*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326891*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*326894*/                OPC_EmitMergeInputChains, 1, 3, 
/*326897*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADD213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*326911*/              /*Scope*/ 53, /*->326965*/
/*326912*/                OPC_MoveChild1,
/*326913*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326916*/                OPC_RecordMemRef,
/*326917*/                OPC_RecordNode, // #2 = 'ld' chained node
/*326918*/                OPC_CheckFoldableChainNode,
/*326919*/                OPC_RecordChild1, // #3 = $src3
/*326920*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326922*/                OPC_CheckPredicate, 9, // Predicate_load
/*326924*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*326926*/                OPC_MoveParent,
/*326927*/                OPC_RecordChild2, // #4 = $src1
/*326928*/                OPC_MoveParent,
/*326929*/                OPC_MoveChild2,
/*326930*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326933*/                OPC_MoveChild0,
/*326934*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326937*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326939*/                OPC_CheckType, MVT::v4i32,
/*326941*/                OPC_MoveParent,
/*326942*/                OPC_MoveParent,
/*326943*/                OPC_CheckType, MVT::v2f64,
/*326945*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*326947*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*326950*/                OPC_EmitMergeInputChains1_2,
/*326951*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADD231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*326965*/              0, /*End of Scope*/
/*326966*/            /*Scope*/ 54, /*->327021*/
/*326967*/              OPC_MoveChild0,
/*326968*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*326971*/              OPC_RecordMemRef,
/*326972*/              OPC_RecordNode, // #1 = 'ld' chained node
/*326973*/              OPC_CheckFoldableChainNode,
/*326974*/              OPC_RecordChild1, // #2 = $src3
/*326975*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*326977*/              OPC_CheckPredicate, 9, // Predicate_load
/*326979*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*326981*/              OPC_MoveParent,
/*326982*/              OPC_RecordChild1, // #3 = $src1
/*326983*/              OPC_RecordChild2, // #4 = $src2
/*326984*/              OPC_MoveParent,
/*326985*/              OPC_MoveChild2,
/*326986*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*326989*/              OPC_MoveChild0,
/*326990*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*326993*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*326995*/              OPC_CheckType, MVT::v4i32,
/*326997*/              OPC_MoveParent,
/*326998*/              OPC_MoveParent,
/*326999*/              OPC_CheckType, MVT::v2f64,
/*327001*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327003*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327006*/              OPC_EmitMergeInputChains1_1,
/*327007*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFMADD132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327021*/            /*Scope*/ 99, /*->327121*/
/*327022*/              OPC_RecordChild0, // #1 = $src2
/*327023*/              OPC_Scope, 48, /*->327073*/ // 2 children in Scope
/*327025*/                OPC_RecordChild1, // #2 = $src1
/*327026*/                OPC_MoveChild2,
/*327027*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*327030*/                OPC_MoveChild0,
/*327031*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327034*/                OPC_RecordMemRef,
/*327035*/                OPC_RecordNode, // #3 = 'ld' chained node
/*327036*/                OPC_CheckFoldableChainNode,
/*327037*/                OPC_RecordChild1, // #4 = $src3
/*327038*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327040*/                OPC_CheckPredicate, 9, // Predicate_load
/*327042*/                OPC_CheckType, MVT::f64,
/*327044*/                OPC_MoveParent,
/*327045*/                OPC_MoveParent,
/*327046*/                OPC_MoveParent,
/*327047*/                OPC_CheckChild2Same, 2,
/*327049*/                OPC_CheckType, MVT::v2f64,
/*327051*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327053*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327056*/                OPC_EmitMergeInputChains, 1, 3, 
/*327059*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327073*/              /*Scope*/ 46, /*->327120*/
/*327074*/                OPC_MoveChild1,
/*327075*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*327078*/                OPC_MoveChild0,
/*327079*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327082*/                OPC_RecordMemRef,
/*327083*/                OPC_RecordNode, // #2 = 'ld' chained node
/*327084*/                OPC_CheckFoldableChainNode,
/*327085*/                OPC_RecordChild1, // #3 = $src3
/*327086*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327088*/                OPC_CheckPredicate, 9, // Predicate_load
/*327090*/                OPC_CheckType, MVT::f64,
/*327092*/                OPC_MoveParent,
/*327093*/                OPC_MoveParent,
/*327094*/                OPC_RecordChild2, // #4 = $src1
/*327095*/                OPC_MoveParent,
/*327096*/                OPC_CheckChild2Same, 4,
/*327098*/                OPC_CheckType, MVT::v2f64,
/*327100*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327102*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327105*/                OPC_EmitMergeInputChains1_2,
/*327106*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327120*/              0, /*End of Scope*/
/*327121*/            /*Scope*/ 47, /*->327169*/
/*327122*/              OPC_MoveChild0,
/*327123*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*327126*/              OPC_MoveChild0,
/*327127*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327130*/              OPC_RecordMemRef,
/*327131*/              OPC_RecordNode, // #1 = 'ld' chained node
/*327132*/              OPC_CheckFoldableChainNode,
/*327133*/              OPC_RecordChild1, // #2 = $src3
/*327134*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327136*/              OPC_CheckPredicate, 9, // Predicate_load
/*327138*/              OPC_CheckType, MVT::f64,
/*327140*/              OPC_MoveParent,
/*327141*/              OPC_MoveParent,
/*327142*/              OPC_RecordChild1, // #3 = $src1
/*327143*/              OPC_RecordChild2, // #4 = $src2
/*327144*/              OPC_MoveParent,
/*327145*/              OPC_CheckChild2Same, 3,
/*327147*/              OPC_CheckType, MVT::v2f64,
/*327149*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327151*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327154*/              OPC_EmitMergeInputChains1_1,
/*327155*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327169*/            /*Scope*/ 49, /*->327219*/
/*327170*/              OPC_RecordChild0, // #1 = $src1
/*327171*/              OPC_RecordChild1, // #2 = $src2
/*327172*/              OPC_MoveChild2,
/*327173*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*327176*/              OPC_MoveChild0,
/*327177*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327180*/              OPC_RecordMemRef,
/*327181*/              OPC_RecordNode, // #3 = 'ld' chained node
/*327182*/              OPC_CheckFoldableChainNode,
/*327183*/              OPC_RecordChild1, // #4 = $src3
/*327184*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327186*/              OPC_CheckPredicate, 9, // Predicate_load
/*327188*/              OPC_CheckType, MVT::f64,
/*327190*/              OPC_MoveParent,
/*327191*/              OPC_MoveParent,
/*327192*/              OPC_MoveParent,
/*327193*/              OPC_CheckChild2Same, 1,
/*327195*/              OPC_CheckType, MVT::v2f64,
/*327197*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327199*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327202*/              OPC_EmitMergeInputChains, 1, 3, 
/*327205*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327219*/            /*Scope*/ 47, /*->327267*/
/*327220*/              OPC_MoveChild0,
/*327221*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*327224*/              OPC_MoveChild0,
/*327225*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327228*/              OPC_RecordMemRef,
/*327229*/              OPC_RecordNode, // #1 = 'ld' chained node
/*327230*/              OPC_CheckFoldableChainNode,
/*327231*/              OPC_RecordChild1, // #2 = $src3
/*327232*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327234*/              OPC_CheckPredicate, 9, // Predicate_load
/*327236*/              OPC_CheckType, MVT::f64,
/*327238*/              OPC_MoveParent,
/*327239*/              OPC_MoveParent,
/*327240*/              OPC_RecordChild1, // #3 = $src2
/*327241*/              OPC_RecordChild2, // #4 = $src1
/*327242*/              OPC_MoveParent,
/*327243*/              OPC_CheckChild2Same, 4,
/*327245*/              OPC_CheckType, MVT::v2f64,
/*327247*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327249*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327252*/              OPC_EmitMergeInputChains1_1,
/*327253*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327267*/            /*Scope*/ 8|128,1/*136*/, /*->327405*/
/*327269*/              OPC_RecordChild0, // #1 = $src1
/*327270*/              OPC_Scope, 46, /*->327318*/ // 3 children in Scope
/*327272*/                OPC_MoveChild1,
/*327273*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*327276*/                OPC_MoveChild0,
/*327277*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327280*/                OPC_RecordMemRef,
/*327281*/                OPC_RecordNode, // #2 = 'ld' chained node
/*327282*/                OPC_CheckFoldableChainNode,
/*327283*/                OPC_RecordChild1, // #3 = $src3
/*327284*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327286*/                OPC_CheckPredicate, 9, // Predicate_load
/*327288*/                OPC_CheckType, MVT::f64,
/*327290*/                OPC_MoveParent,
/*327291*/                OPC_MoveParent,
/*327292*/                OPC_RecordChild2, // #4 = $src2
/*327293*/                OPC_MoveParent,
/*327294*/                OPC_CheckChild2Same, 1,
/*327296*/                OPC_CheckType, MVT::v2f64,
/*327298*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327300*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327303*/                OPC_EmitMergeInputChains1_2,
/*327304*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327318*/              /*Scope*/ 43, /*->327362*/
/*327319*/                OPC_RecordChild1, // #2 = $src1
/*327320*/                OPC_MoveChild2,
/*327321*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327324*/                OPC_RecordMemRef,
/*327325*/                OPC_RecordNode, // #3 = 'ld' chained node
/*327326*/                OPC_CheckFoldableChainNode,
/*327327*/                OPC_RecordChild1, // #4 = $src3
/*327328*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327330*/                OPC_CheckPredicate, 9, // Predicate_load
/*327332*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*327334*/                OPC_MoveParent,
/*327335*/                OPC_MoveParent,
/*327336*/                OPC_CheckChild2Same, 2,
/*327338*/                OPC_CheckType, MVT::v2f64,
/*327340*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327342*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327345*/                OPC_EmitMergeInputChains, 1, 3, 
/*327348*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327362*/              /*Scope*/ 41, /*->327404*/
/*327363*/                OPC_MoveChild1,
/*327364*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327367*/                OPC_RecordMemRef,
/*327368*/                OPC_RecordNode, // #2 = 'ld' chained node
/*327369*/                OPC_CheckFoldableChainNode,
/*327370*/                OPC_RecordChild1, // #3 = $src3
/*327371*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327373*/                OPC_CheckPredicate, 9, // Predicate_load
/*327375*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*327377*/                OPC_MoveParent,
/*327378*/                OPC_RecordChild2, // #4 = $src1
/*327379*/                OPC_MoveParent,
/*327380*/                OPC_CheckChild2Same, 4,
/*327382*/                OPC_CheckType, MVT::v2f64,
/*327384*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327386*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327389*/                OPC_EmitMergeInputChains1_2,
/*327390*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327404*/              0, /*End of Scope*/
/*327405*/            /*Scope*/ 42, /*->327448*/
/*327406*/              OPC_MoveChild0,
/*327407*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327410*/              OPC_RecordMemRef,
/*327411*/              OPC_RecordNode, // #1 = 'ld' chained node
/*327412*/              OPC_CheckFoldableChainNode,
/*327413*/              OPC_RecordChild1, // #2 = $src3
/*327414*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327416*/              OPC_CheckPredicate, 9, // Predicate_load
/*327418*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*327420*/              OPC_MoveParent,
/*327421*/              OPC_RecordChild1, // #3 = $src1
/*327422*/              OPC_RecordChild2, // #4 = $src2
/*327423*/              OPC_MoveParent,
/*327424*/              OPC_CheckChild2Same, 3,
/*327426*/              OPC_CheckType, MVT::v2f64,
/*327428*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327430*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327433*/              OPC_EmitMergeInputChains1_1,
/*327434*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMADD132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327448*/            /*Scope*/ 44, /*->327493*/
/*327449*/              OPC_RecordChild0, // #1 = $src1
/*327450*/              OPC_RecordChild1, // #2 = $src2
/*327451*/              OPC_MoveChild2,
/*327452*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327455*/              OPC_RecordMemRef,
/*327456*/              OPC_RecordNode, // #3 = 'ld' chained node
/*327457*/              OPC_CheckFoldableChainNode,
/*327458*/              OPC_RecordChild1, // #4 = $src3
/*327459*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327461*/              OPC_CheckPredicate, 9, // Predicate_load
/*327463*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*327465*/              OPC_MoveParent,
/*327466*/              OPC_MoveParent,
/*327467*/              OPC_CheckChild2Same, 1,
/*327469*/              OPC_CheckType, MVT::v2f64,
/*327471*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327473*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327476*/              OPC_EmitMergeInputChains, 1, 3, 
/*327479*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327493*/            /*Scope*/ 42, /*->327536*/
/*327494*/              OPC_MoveChild0,
/*327495*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327498*/              OPC_RecordMemRef,
/*327499*/              OPC_RecordNode, // #1 = 'ld' chained node
/*327500*/              OPC_CheckFoldableChainNode,
/*327501*/              OPC_RecordChild1, // #2 = $src3
/*327502*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327504*/              OPC_CheckPredicate, 9, // Predicate_load
/*327506*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*327508*/              OPC_MoveParent,
/*327509*/              OPC_RecordChild1, // #3 = $src2
/*327510*/              OPC_RecordChild2, // #4 = $src1
/*327511*/              OPC_MoveParent,
/*327512*/              OPC_CheckChild2Same, 4,
/*327514*/              OPC_CheckType, MVT::v2f64,
/*327516*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327518*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327521*/              OPC_EmitMergeInputChains1_1,
/*327522*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMADD231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327536*/            /*Scope*/ 42, /*->327579*/
/*327537*/              OPC_RecordChild0, // #1 = $src1
/*327538*/              OPC_MoveChild1,
/*327539*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327542*/              OPC_RecordMemRef,
/*327543*/              OPC_RecordNode, // #2 = 'ld' chained node
/*327544*/              OPC_CheckFoldableChainNode,
/*327545*/              OPC_RecordChild1, // #3 = $src3
/*327546*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327548*/              OPC_CheckPredicate, 9, // Predicate_load
/*327550*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*327552*/              OPC_MoveParent,
/*327553*/              OPC_RecordChild2, // #4 = $src2
/*327554*/              OPC_MoveParent,
/*327555*/              OPC_CheckChild2Same, 1,
/*327557*/              OPC_CheckType, MVT::v2f64,
/*327559*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327561*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327564*/              OPC_EmitMergeInputChains1_2,
/*327565*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMADD132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327579*/            0, /*End of Scope*/
/*327580*/          /*SwitchOpcode*/ 17|128,7/*913*/, TARGET_VAL(X86ISD::FMSUB),// ->328497
/*327584*/            OPC_Scope, 123, /*->327709*/ // 13 children in Scope
/*327586*/              OPC_RecordChild0, // #1 = $src2
/*327587*/              OPC_Scope, 60, /*->327649*/ // 2 children in Scope
/*327589*/                OPC_RecordChild1, // #2 = $src1
/*327590*/                OPC_MoveChild2,
/*327591*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*327594*/                OPC_MoveChild0,
/*327595*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327598*/                OPC_RecordMemRef,
/*327599*/                OPC_RecordNode, // #3 = 'ld' chained node
/*327600*/                OPC_CheckFoldableChainNode,
/*327601*/                OPC_RecordChild1, // #4 = $src3
/*327602*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327604*/                OPC_CheckPredicate, 9, // Predicate_load
/*327606*/                OPC_CheckType, MVT::f64,
/*327608*/                OPC_MoveParent,
/*327609*/                OPC_MoveParent,
/*327610*/                OPC_MoveParent,
/*327611*/                OPC_MoveChild2,
/*327612*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*327615*/                OPC_MoveChild0,
/*327616*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*327619*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*327621*/                OPC_CheckType, MVT::v4i32,
/*327623*/                OPC_MoveParent,
/*327624*/                OPC_MoveParent,
/*327625*/                OPC_CheckType, MVT::v2f64,
/*327627*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327629*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327632*/                OPC_EmitMergeInputChains, 1, 3, 
/*327635*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUB213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327649*/              /*Scope*/ 58, /*->327708*/
/*327650*/                OPC_MoveChild1,
/*327651*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*327654*/                OPC_MoveChild0,
/*327655*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327658*/                OPC_RecordMemRef,
/*327659*/                OPC_RecordNode, // #2 = 'ld' chained node
/*327660*/                OPC_CheckFoldableChainNode,
/*327661*/                OPC_RecordChild1, // #3 = $src3
/*327662*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327664*/                OPC_CheckPredicate, 9, // Predicate_load
/*327666*/                OPC_CheckType, MVT::f64,
/*327668*/                OPC_MoveParent,
/*327669*/                OPC_MoveParent,
/*327670*/                OPC_RecordChild2, // #4 = $src1
/*327671*/                OPC_MoveParent,
/*327672*/                OPC_MoveChild2,
/*327673*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*327676*/                OPC_MoveChild0,
/*327677*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*327680*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*327682*/                OPC_CheckType, MVT::v4i32,
/*327684*/                OPC_MoveParent,
/*327685*/                OPC_MoveParent,
/*327686*/                OPC_CheckType, MVT::v2f64,
/*327688*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327690*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327693*/                OPC_EmitMergeInputChains1_2,
/*327694*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUB231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327708*/              0, /*End of Scope*/
/*327709*/            /*Scope*/ 59, /*->327769*/
/*327710*/              OPC_MoveChild0,
/*327711*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*327714*/              OPC_MoveChild0,
/*327715*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327718*/              OPC_RecordMemRef,
/*327719*/              OPC_RecordNode, // #1 = 'ld' chained node
/*327720*/              OPC_CheckFoldableChainNode,
/*327721*/              OPC_RecordChild1, // #2 = $src3
/*327722*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327724*/              OPC_CheckPredicate, 9, // Predicate_load
/*327726*/              OPC_CheckType, MVT::f64,
/*327728*/              OPC_MoveParent,
/*327729*/              OPC_MoveParent,
/*327730*/              OPC_RecordChild1, // #3 = $src1
/*327731*/              OPC_RecordChild2, // #4 = $src2
/*327732*/              OPC_MoveParent,
/*327733*/              OPC_MoveChild2,
/*327734*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*327737*/              OPC_MoveChild0,
/*327738*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*327741*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*327743*/              OPC_CheckType, MVT::v4i32,
/*327745*/              OPC_MoveParent,
/*327746*/              OPC_MoveParent,
/*327747*/              OPC_CheckType, MVT::v2f64,
/*327749*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327751*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327754*/              OPC_EmitMergeInputChains1_1,
/*327755*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFMSUB132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327769*/            /*Scope*/ 113, /*->327883*/
/*327770*/              OPC_RecordChild0, // #1 = $src2
/*327771*/              OPC_Scope, 55, /*->327828*/ // 2 children in Scope
/*327773*/                OPC_RecordChild1, // #2 = $src1
/*327774*/                OPC_MoveChild2,
/*327775*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327778*/                OPC_RecordMemRef,
/*327779*/                OPC_RecordNode, // #3 = 'ld' chained node
/*327780*/                OPC_CheckFoldableChainNode,
/*327781*/                OPC_RecordChild1, // #4 = $src3
/*327782*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327784*/                OPC_CheckPredicate, 9, // Predicate_load
/*327786*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*327788*/                OPC_MoveParent,
/*327789*/                OPC_MoveParent,
/*327790*/                OPC_MoveChild2,
/*327791*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*327794*/                OPC_MoveChild0,
/*327795*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*327798*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*327800*/                OPC_CheckType, MVT::v4i32,
/*327802*/                OPC_MoveParent,
/*327803*/                OPC_MoveParent,
/*327804*/                OPC_CheckType, MVT::v2f64,
/*327806*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327808*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327811*/                OPC_EmitMergeInputChains, 1, 3, 
/*327814*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUB213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327828*/              /*Scope*/ 53, /*->327882*/
/*327829*/                OPC_MoveChild1,
/*327830*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327833*/                OPC_RecordMemRef,
/*327834*/                OPC_RecordNode, // #2 = 'ld' chained node
/*327835*/                OPC_CheckFoldableChainNode,
/*327836*/                OPC_RecordChild1, // #3 = $src3
/*327837*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327839*/                OPC_CheckPredicate, 9, // Predicate_load
/*327841*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*327843*/                OPC_MoveParent,
/*327844*/                OPC_RecordChild2, // #4 = $src1
/*327845*/                OPC_MoveParent,
/*327846*/                OPC_MoveChild2,
/*327847*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*327850*/                OPC_MoveChild0,
/*327851*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*327854*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*327856*/                OPC_CheckType, MVT::v4i32,
/*327858*/                OPC_MoveParent,
/*327859*/                OPC_MoveParent,
/*327860*/                OPC_CheckType, MVT::v2f64,
/*327862*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327864*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327867*/                OPC_EmitMergeInputChains1_2,
/*327868*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUB231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327882*/              0, /*End of Scope*/
/*327883*/            /*Scope*/ 54, /*->327938*/
/*327884*/              OPC_MoveChild0,
/*327885*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327888*/              OPC_RecordMemRef,
/*327889*/              OPC_RecordNode, // #1 = 'ld' chained node
/*327890*/              OPC_CheckFoldableChainNode,
/*327891*/              OPC_RecordChild1, // #2 = $src3
/*327892*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327894*/              OPC_CheckPredicate, 9, // Predicate_load
/*327896*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*327898*/              OPC_MoveParent,
/*327899*/              OPC_RecordChild1, // #3 = $src1
/*327900*/              OPC_RecordChild2, // #4 = $src2
/*327901*/              OPC_MoveParent,
/*327902*/              OPC_MoveChild2,
/*327903*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*327906*/              OPC_MoveChild0,
/*327907*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*327910*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*327912*/              OPC_CheckType, MVT::v4i32,
/*327914*/              OPC_MoveParent,
/*327915*/              OPC_MoveParent,
/*327916*/              OPC_CheckType, MVT::v2f64,
/*327918*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327920*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327923*/              OPC_EmitMergeInputChains1_1,
/*327924*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFMSUB132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327938*/            /*Scope*/ 99, /*->328038*/
/*327939*/              OPC_RecordChild0, // #1 = $src2
/*327940*/              OPC_Scope, 48, /*->327990*/ // 2 children in Scope
/*327942*/                OPC_RecordChild1, // #2 = $src1
/*327943*/                OPC_MoveChild2,
/*327944*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*327947*/                OPC_MoveChild0,
/*327948*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327951*/                OPC_RecordMemRef,
/*327952*/                OPC_RecordNode, // #3 = 'ld' chained node
/*327953*/                OPC_CheckFoldableChainNode,
/*327954*/                OPC_RecordChild1, // #4 = $src3
/*327955*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*327957*/                OPC_CheckPredicate, 9, // Predicate_load
/*327959*/                OPC_CheckType, MVT::f64,
/*327961*/                OPC_MoveParent,
/*327962*/                OPC_MoveParent,
/*327963*/                OPC_MoveParent,
/*327964*/                OPC_CheckChild2Same, 2,
/*327966*/                OPC_CheckType, MVT::v2f64,
/*327968*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*327970*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*327973*/                OPC_EmitMergeInputChains, 1, 3, 
/*327976*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*327990*/              /*Scope*/ 46, /*->328037*/
/*327991*/                OPC_MoveChild1,
/*327992*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*327995*/                OPC_MoveChild0,
/*327996*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*327999*/                OPC_RecordMemRef,
/*328000*/                OPC_RecordNode, // #2 = 'ld' chained node
/*328001*/                OPC_CheckFoldableChainNode,
/*328002*/                OPC_RecordChild1, // #3 = $src3
/*328003*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328005*/                OPC_CheckPredicate, 9, // Predicate_load
/*328007*/                OPC_CheckType, MVT::f64,
/*328009*/                OPC_MoveParent,
/*328010*/                OPC_MoveParent,
/*328011*/                OPC_RecordChild2, // #4 = $src1
/*328012*/                OPC_MoveParent,
/*328013*/                OPC_CheckChild2Same, 4,
/*328015*/                OPC_CheckType, MVT::v2f64,
/*328017*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328019*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328022*/                OPC_EmitMergeInputChains1_2,
/*328023*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328037*/              0, /*End of Scope*/
/*328038*/            /*Scope*/ 47, /*->328086*/
/*328039*/              OPC_MoveChild0,
/*328040*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*328043*/              OPC_MoveChild0,
/*328044*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328047*/              OPC_RecordMemRef,
/*328048*/              OPC_RecordNode, // #1 = 'ld' chained node
/*328049*/              OPC_CheckFoldableChainNode,
/*328050*/              OPC_RecordChild1, // #2 = $src3
/*328051*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328053*/              OPC_CheckPredicate, 9, // Predicate_load
/*328055*/              OPC_CheckType, MVT::f64,
/*328057*/              OPC_MoveParent,
/*328058*/              OPC_MoveParent,
/*328059*/              OPC_RecordChild1, // #3 = $src1
/*328060*/              OPC_RecordChild2, // #4 = $src2
/*328061*/              OPC_MoveParent,
/*328062*/              OPC_CheckChild2Same, 3,
/*328064*/              OPC_CheckType, MVT::v2f64,
/*328066*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328068*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328071*/              OPC_EmitMergeInputChains1_1,
/*328072*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328086*/            /*Scope*/ 49, /*->328136*/
/*328087*/              OPC_RecordChild0, // #1 = $src1
/*328088*/              OPC_RecordChild1, // #2 = $src2
/*328089*/              OPC_MoveChild2,
/*328090*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*328093*/              OPC_MoveChild0,
/*328094*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328097*/              OPC_RecordMemRef,
/*328098*/              OPC_RecordNode, // #3 = 'ld' chained node
/*328099*/              OPC_CheckFoldableChainNode,
/*328100*/              OPC_RecordChild1, // #4 = $src3
/*328101*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328103*/              OPC_CheckPredicate, 9, // Predicate_load
/*328105*/              OPC_CheckType, MVT::f64,
/*328107*/              OPC_MoveParent,
/*328108*/              OPC_MoveParent,
/*328109*/              OPC_MoveParent,
/*328110*/              OPC_CheckChild2Same, 1,
/*328112*/              OPC_CheckType, MVT::v2f64,
/*328114*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328116*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328119*/              OPC_EmitMergeInputChains, 1, 3, 
/*328122*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328136*/            /*Scope*/ 47, /*->328184*/
/*328137*/              OPC_MoveChild0,
/*328138*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*328141*/              OPC_MoveChild0,
/*328142*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328145*/              OPC_RecordMemRef,
/*328146*/              OPC_RecordNode, // #1 = 'ld' chained node
/*328147*/              OPC_CheckFoldableChainNode,
/*328148*/              OPC_RecordChild1, // #2 = $src3
/*328149*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328151*/              OPC_CheckPredicate, 9, // Predicate_load
/*328153*/              OPC_CheckType, MVT::f64,
/*328155*/              OPC_MoveParent,
/*328156*/              OPC_MoveParent,
/*328157*/              OPC_RecordChild1, // #3 = $src2
/*328158*/              OPC_RecordChild2, // #4 = $src1
/*328159*/              OPC_MoveParent,
/*328160*/              OPC_CheckChild2Same, 4,
/*328162*/              OPC_CheckType, MVT::v2f64,
/*328164*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328166*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328169*/              OPC_EmitMergeInputChains1_1,
/*328170*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328184*/            /*Scope*/ 8|128,1/*136*/, /*->328322*/
/*328186*/              OPC_RecordChild0, // #1 = $src1
/*328187*/              OPC_Scope, 46, /*->328235*/ // 3 children in Scope
/*328189*/                OPC_MoveChild1,
/*328190*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*328193*/                OPC_MoveChild0,
/*328194*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328197*/                OPC_RecordMemRef,
/*328198*/                OPC_RecordNode, // #2 = 'ld' chained node
/*328199*/                OPC_CheckFoldableChainNode,
/*328200*/                OPC_RecordChild1, // #3 = $src3
/*328201*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328203*/                OPC_CheckPredicate, 9, // Predicate_load
/*328205*/                OPC_CheckType, MVT::f64,
/*328207*/                OPC_MoveParent,
/*328208*/                OPC_MoveParent,
/*328209*/                OPC_RecordChild2, // #4 = $src2
/*328210*/                OPC_MoveParent,
/*328211*/                OPC_CheckChild2Same, 1,
/*328213*/                OPC_CheckType, MVT::v2f64,
/*328215*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328217*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328220*/                OPC_EmitMergeInputChains1_2,
/*328221*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328235*/              /*Scope*/ 43, /*->328279*/
/*328236*/                OPC_RecordChild1, // #2 = $src1
/*328237*/                OPC_MoveChild2,
/*328238*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328241*/                OPC_RecordMemRef,
/*328242*/                OPC_RecordNode, // #3 = 'ld' chained node
/*328243*/                OPC_CheckFoldableChainNode,
/*328244*/                OPC_RecordChild1, // #4 = $src3
/*328245*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328247*/                OPC_CheckPredicate, 9, // Predicate_load
/*328249*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*328251*/                OPC_MoveParent,
/*328252*/                OPC_MoveParent,
/*328253*/                OPC_CheckChild2Same, 2,
/*328255*/                OPC_CheckType, MVT::v2f64,
/*328257*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328259*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328262*/                OPC_EmitMergeInputChains, 1, 3, 
/*328265*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328279*/              /*Scope*/ 41, /*->328321*/
/*328280*/                OPC_MoveChild1,
/*328281*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328284*/                OPC_RecordMemRef,
/*328285*/                OPC_RecordNode, // #2 = 'ld' chained node
/*328286*/                OPC_CheckFoldableChainNode,
/*328287*/                OPC_RecordChild1, // #3 = $src3
/*328288*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328290*/                OPC_CheckPredicate, 9, // Predicate_load
/*328292*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*328294*/                OPC_MoveParent,
/*328295*/                OPC_RecordChild2, // #4 = $src1
/*328296*/                OPC_MoveParent,
/*328297*/                OPC_CheckChild2Same, 4,
/*328299*/                OPC_CheckType, MVT::v2f64,
/*328301*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328303*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328306*/                OPC_EmitMergeInputChains1_2,
/*328307*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328321*/              0, /*End of Scope*/
/*328322*/            /*Scope*/ 42, /*->328365*/
/*328323*/              OPC_MoveChild0,
/*328324*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328327*/              OPC_RecordMemRef,
/*328328*/              OPC_RecordNode, // #1 = 'ld' chained node
/*328329*/              OPC_CheckFoldableChainNode,
/*328330*/              OPC_RecordChild1, // #2 = $src3
/*328331*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328333*/              OPC_CheckPredicate, 9, // Predicate_load
/*328335*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*328337*/              OPC_MoveParent,
/*328338*/              OPC_RecordChild1, // #3 = $src1
/*328339*/              OPC_RecordChild2, // #4 = $src2
/*328340*/              OPC_MoveParent,
/*328341*/              OPC_CheckChild2Same, 3,
/*328343*/              OPC_CheckType, MVT::v2f64,
/*328345*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328347*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328350*/              OPC_EmitMergeInputChains1_1,
/*328351*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMSUB132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328365*/            /*Scope*/ 44, /*->328410*/
/*328366*/              OPC_RecordChild0, // #1 = $src1
/*328367*/              OPC_RecordChild1, // #2 = $src2
/*328368*/              OPC_MoveChild2,
/*328369*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328372*/              OPC_RecordMemRef,
/*328373*/              OPC_RecordNode, // #3 = 'ld' chained node
/*328374*/              OPC_CheckFoldableChainNode,
/*328375*/              OPC_RecordChild1, // #4 = $src3
/*328376*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328378*/              OPC_CheckPredicate, 9, // Predicate_load
/*328380*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*328382*/              OPC_MoveParent,
/*328383*/              OPC_MoveParent,
/*328384*/              OPC_CheckChild2Same, 1,
/*328386*/              OPC_CheckType, MVT::v2f64,
/*328388*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328390*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328393*/              OPC_EmitMergeInputChains, 1, 3, 
/*328396*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328410*/            /*Scope*/ 42, /*->328453*/
/*328411*/              OPC_MoveChild0,
/*328412*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328415*/              OPC_RecordMemRef,
/*328416*/              OPC_RecordNode, // #1 = 'ld' chained node
/*328417*/              OPC_CheckFoldableChainNode,
/*328418*/              OPC_RecordChild1, // #2 = $src3
/*328419*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328421*/              OPC_CheckPredicate, 9, // Predicate_load
/*328423*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*328425*/              OPC_MoveParent,
/*328426*/              OPC_RecordChild1, // #3 = $src2
/*328427*/              OPC_RecordChild2, // #4 = $src1
/*328428*/              OPC_MoveParent,
/*328429*/              OPC_CheckChild2Same, 4,
/*328431*/              OPC_CheckType, MVT::v2f64,
/*328433*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328435*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328438*/              OPC_EmitMergeInputChains1_1,
/*328439*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMSUB231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328453*/            /*Scope*/ 42, /*->328496*/
/*328454*/              OPC_RecordChild0, // #1 = $src1
/*328455*/              OPC_MoveChild1,
/*328456*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328459*/              OPC_RecordMemRef,
/*328460*/              OPC_RecordNode, // #2 = 'ld' chained node
/*328461*/              OPC_CheckFoldableChainNode,
/*328462*/              OPC_RecordChild1, // #3 = $src3
/*328463*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328465*/              OPC_CheckPredicate, 9, // Predicate_load
/*328467*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*328469*/              OPC_MoveParent,
/*328470*/              OPC_RecordChild2, // #4 = $src2
/*328471*/              OPC_MoveParent,
/*328472*/              OPC_CheckChild2Same, 1,
/*328474*/              OPC_CheckType, MVT::v2f64,
/*328476*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328478*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328481*/              OPC_EmitMergeInputChains1_2,
/*328482*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMSUB132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328496*/            0, /*End of Scope*/
/*328497*/          /*SwitchOpcode*/ 17|128,7/*913*/, TARGET_VAL(X86ISD::FMADDSUB),// ->329414
/*328501*/            OPC_Scope, 123, /*->328626*/ // 13 children in Scope
/*328503*/              OPC_RecordChild0, // #1 = $src2
/*328504*/              OPC_Scope, 60, /*->328566*/ // 2 children in Scope
/*328506*/                OPC_RecordChild1, // #2 = $src1
/*328507*/                OPC_MoveChild2,
/*328508*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*328511*/                OPC_MoveChild0,
/*328512*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328515*/                OPC_RecordMemRef,
/*328516*/                OPC_RecordNode, // #3 = 'ld' chained node
/*328517*/                OPC_CheckFoldableChainNode,
/*328518*/                OPC_RecordChild1, // #4 = $src3
/*328519*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328521*/                OPC_CheckPredicate, 9, // Predicate_load
/*328523*/                OPC_CheckType, MVT::f64,
/*328525*/                OPC_MoveParent,
/*328526*/                OPC_MoveParent,
/*328527*/                OPC_MoveParent,
/*328528*/                OPC_MoveChild2,
/*328529*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*328532*/                OPC_MoveChild0,
/*328533*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*328536*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*328538*/                OPC_CheckType, MVT::v4i32,
/*328540*/                OPC_MoveParent,
/*328541*/                OPC_MoveParent,
/*328542*/                OPC_CheckType, MVT::v2f64,
/*328544*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328546*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328549*/                OPC_EmitMergeInputChains, 1, 3, 
/*328552*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADDSUB213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328566*/              /*Scope*/ 58, /*->328625*/
/*328567*/                OPC_MoveChild1,
/*328568*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*328571*/                OPC_MoveChild0,
/*328572*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328575*/                OPC_RecordMemRef,
/*328576*/                OPC_RecordNode, // #2 = 'ld' chained node
/*328577*/                OPC_CheckFoldableChainNode,
/*328578*/                OPC_RecordChild1, // #3 = $src3
/*328579*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328581*/                OPC_CheckPredicate, 9, // Predicate_load
/*328583*/                OPC_CheckType, MVT::f64,
/*328585*/                OPC_MoveParent,
/*328586*/                OPC_MoveParent,
/*328587*/                OPC_RecordChild2, // #4 = $src1
/*328588*/                OPC_MoveParent,
/*328589*/                OPC_MoveChild2,
/*328590*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*328593*/                OPC_MoveChild0,
/*328594*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*328597*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*328599*/                OPC_CheckType, MVT::v4i32,
/*328601*/                OPC_MoveParent,
/*328602*/                OPC_MoveParent,
/*328603*/                OPC_CheckType, MVT::v2f64,
/*328605*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328607*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328610*/                OPC_EmitMergeInputChains1_2,
/*328611*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADDSUB231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328625*/              0, /*End of Scope*/
/*328626*/            /*Scope*/ 59, /*->328686*/
/*328627*/              OPC_MoveChild0,
/*328628*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*328631*/              OPC_MoveChild0,
/*328632*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328635*/              OPC_RecordMemRef,
/*328636*/              OPC_RecordNode, // #1 = 'ld' chained node
/*328637*/              OPC_CheckFoldableChainNode,
/*328638*/              OPC_RecordChild1, // #2 = $src3
/*328639*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328641*/              OPC_CheckPredicate, 9, // Predicate_load
/*328643*/              OPC_CheckType, MVT::f64,
/*328645*/              OPC_MoveParent,
/*328646*/              OPC_MoveParent,
/*328647*/              OPC_RecordChild1, // #3 = $src1
/*328648*/              OPC_RecordChild2, // #4 = $src2
/*328649*/              OPC_MoveParent,
/*328650*/              OPC_MoveChild2,
/*328651*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*328654*/              OPC_MoveChild0,
/*328655*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*328658*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*328660*/              OPC_CheckType, MVT::v4i32,
/*328662*/              OPC_MoveParent,
/*328663*/              OPC_MoveParent,
/*328664*/              OPC_CheckType, MVT::v2f64,
/*328666*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328668*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328671*/              OPC_EmitMergeInputChains1_1,
/*328672*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFMADDSUB132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328686*/            /*Scope*/ 113, /*->328800*/
/*328687*/              OPC_RecordChild0, // #1 = $src2
/*328688*/              OPC_Scope, 55, /*->328745*/ // 2 children in Scope
/*328690*/                OPC_RecordChild1, // #2 = $src1
/*328691*/                OPC_MoveChild2,
/*328692*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328695*/                OPC_RecordMemRef,
/*328696*/                OPC_RecordNode, // #3 = 'ld' chained node
/*328697*/                OPC_CheckFoldableChainNode,
/*328698*/                OPC_RecordChild1, // #4 = $src3
/*328699*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328701*/                OPC_CheckPredicate, 9, // Predicate_load
/*328703*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*328705*/                OPC_MoveParent,
/*328706*/                OPC_MoveParent,
/*328707*/                OPC_MoveChild2,
/*328708*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*328711*/                OPC_MoveChild0,
/*328712*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*328715*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*328717*/                OPC_CheckType, MVT::v4i32,
/*328719*/                OPC_MoveParent,
/*328720*/                OPC_MoveParent,
/*328721*/                OPC_CheckType, MVT::v2f64,
/*328723*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328725*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328728*/                OPC_EmitMergeInputChains, 1, 3, 
/*328731*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADDSUB213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328745*/              /*Scope*/ 53, /*->328799*/
/*328746*/                OPC_MoveChild1,
/*328747*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328750*/                OPC_RecordMemRef,
/*328751*/                OPC_RecordNode, // #2 = 'ld' chained node
/*328752*/                OPC_CheckFoldableChainNode,
/*328753*/                OPC_RecordChild1, // #3 = $src3
/*328754*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328756*/                OPC_CheckPredicate, 9, // Predicate_load
/*328758*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*328760*/                OPC_MoveParent,
/*328761*/                OPC_RecordChild2, // #4 = $src1
/*328762*/                OPC_MoveParent,
/*328763*/                OPC_MoveChild2,
/*328764*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*328767*/                OPC_MoveChild0,
/*328768*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*328771*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*328773*/                OPC_CheckType, MVT::v4i32,
/*328775*/                OPC_MoveParent,
/*328776*/                OPC_MoveParent,
/*328777*/                OPC_CheckType, MVT::v2f64,
/*328779*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328781*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328784*/                OPC_EmitMergeInputChains1_2,
/*328785*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADDSUB231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328799*/              0, /*End of Scope*/
/*328800*/            /*Scope*/ 54, /*->328855*/
/*328801*/              OPC_MoveChild0,
/*328802*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328805*/              OPC_RecordMemRef,
/*328806*/              OPC_RecordNode, // #1 = 'ld' chained node
/*328807*/              OPC_CheckFoldableChainNode,
/*328808*/              OPC_RecordChild1, // #2 = $src3
/*328809*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328811*/              OPC_CheckPredicate, 9, // Predicate_load
/*328813*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*328815*/              OPC_MoveParent,
/*328816*/              OPC_RecordChild1, // #3 = $src1
/*328817*/              OPC_RecordChild2, // #4 = $src2
/*328818*/              OPC_MoveParent,
/*328819*/              OPC_MoveChild2,
/*328820*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*328823*/              OPC_MoveChild0,
/*328824*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*328827*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*328829*/              OPC_CheckType, MVT::v4i32,
/*328831*/              OPC_MoveParent,
/*328832*/              OPC_MoveParent,
/*328833*/              OPC_CheckType, MVT::v2f64,
/*328835*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328837*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328840*/              OPC_EmitMergeInputChains1_1,
/*328841*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFMADDSUB132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328855*/            /*Scope*/ 99, /*->328955*/
/*328856*/              OPC_RecordChild0, // #1 = $src2
/*328857*/              OPC_Scope, 48, /*->328907*/ // 2 children in Scope
/*328859*/                OPC_RecordChild1, // #2 = $src1
/*328860*/                OPC_MoveChild2,
/*328861*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*328864*/                OPC_MoveChild0,
/*328865*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328868*/                OPC_RecordMemRef,
/*328869*/                OPC_RecordNode, // #3 = 'ld' chained node
/*328870*/                OPC_CheckFoldableChainNode,
/*328871*/                OPC_RecordChild1, // #4 = $src3
/*328872*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328874*/                OPC_CheckPredicate, 9, // Predicate_load
/*328876*/                OPC_CheckType, MVT::f64,
/*328878*/                OPC_MoveParent,
/*328879*/                OPC_MoveParent,
/*328880*/                OPC_MoveParent,
/*328881*/                OPC_CheckChild2Same, 2,
/*328883*/                OPC_CheckType, MVT::v2f64,
/*328885*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328887*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328890*/                OPC_EmitMergeInputChains, 1, 3, 
/*328893*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328907*/              /*Scope*/ 46, /*->328954*/
/*328908*/                OPC_MoveChild1,
/*328909*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*328912*/                OPC_MoveChild0,
/*328913*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328916*/                OPC_RecordMemRef,
/*328917*/                OPC_RecordNode, // #2 = 'ld' chained node
/*328918*/                OPC_CheckFoldableChainNode,
/*328919*/                OPC_RecordChild1, // #3 = $src3
/*328920*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328922*/                OPC_CheckPredicate, 9, // Predicate_load
/*328924*/                OPC_CheckType, MVT::f64,
/*328926*/                OPC_MoveParent,
/*328927*/                OPC_MoveParent,
/*328928*/                OPC_RecordChild2, // #4 = $src1
/*328929*/                OPC_MoveParent,
/*328930*/                OPC_CheckChild2Same, 4,
/*328932*/                OPC_CheckType, MVT::v2f64,
/*328934*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328936*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328939*/                OPC_EmitMergeInputChains1_2,
/*328940*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*328954*/              0, /*End of Scope*/
/*328955*/            /*Scope*/ 47, /*->329003*/
/*328956*/              OPC_MoveChild0,
/*328957*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*328960*/              OPC_MoveChild0,
/*328961*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*328964*/              OPC_RecordMemRef,
/*328965*/              OPC_RecordNode, // #1 = 'ld' chained node
/*328966*/              OPC_CheckFoldableChainNode,
/*328967*/              OPC_RecordChild1, // #2 = $src3
/*328968*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*328970*/              OPC_CheckPredicate, 9, // Predicate_load
/*328972*/              OPC_CheckType, MVT::f64,
/*328974*/              OPC_MoveParent,
/*328975*/              OPC_MoveParent,
/*328976*/              OPC_RecordChild1, // #3 = $src1
/*328977*/              OPC_RecordChild2, // #4 = $src2
/*328978*/              OPC_MoveParent,
/*328979*/              OPC_CheckChild2Same, 3,
/*328981*/              OPC_CheckType, MVT::v2f64,
/*328983*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*328985*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*328988*/              OPC_EmitMergeInputChains1_1,
/*328989*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMADDSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329003*/            /*Scope*/ 49, /*->329053*/
/*329004*/              OPC_RecordChild0, // #1 = $src1
/*329005*/              OPC_RecordChild1, // #2 = $src2
/*329006*/              OPC_MoveChild2,
/*329007*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*329010*/              OPC_MoveChild0,
/*329011*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329014*/              OPC_RecordMemRef,
/*329015*/              OPC_RecordNode, // #3 = 'ld' chained node
/*329016*/              OPC_CheckFoldableChainNode,
/*329017*/              OPC_RecordChild1, // #4 = $src3
/*329018*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329020*/              OPC_CheckPredicate, 9, // Predicate_load
/*329022*/              OPC_CheckType, MVT::f64,
/*329024*/              OPC_MoveParent,
/*329025*/              OPC_MoveParent,
/*329026*/              OPC_MoveParent,
/*329027*/              OPC_CheckChild2Same, 1,
/*329029*/              OPC_CheckType, MVT::v2f64,
/*329031*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329033*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329036*/              OPC_EmitMergeInputChains, 1, 3, 
/*329039*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMADDSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329053*/            /*Scope*/ 47, /*->329101*/
/*329054*/              OPC_MoveChild0,
/*329055*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*329058*/              OPC_MoveChild0,
/*329059*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329062*/              OPC_RecordMemRef,
/*329063*/              OPC_RecordNode, // #1 = 'ld' chained node
/*329064*/              OPC_CheckFoldableChainNode,
/*329065*/              OPC_RecordChild1, // #2 = $src3
/*329066*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329068*/              OPC_CheckPredicate, 9, // Predicate_load
/*329070*/              OPC_CheckType, MVT::f64,
/*329072*/              OPC_MoveParent,
/*329073*/              OPC_MoveParent,
/*329074*/              OPC_RecordChild1, // #3 = $src2
/*329075*/              OPC_RecordChild2, // #4 = $src1
/*329076*/              OPC_MoveParent,
/*329077*/              OPC_CheckChild2Same, 4,
/*329079*/              OPC_CheckType, MVT::v2f64,
/*329081*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329083*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329086*/              OPC_EmitMergeInputChains1_1,
/*329087*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMADDSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329101*/            /*Scope*/ 8|128,1/*136*/, /*->329239*/
/*329103*/              OPC_RecordChild0, // #1 = $src1
/*329104*/              OPC_Scope, 46, /*->329152*/ // 3 children in Scope
/*329106*/                OPC_MoveChild1,
/*329107*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*329110*/                OPC_MoveChild0,
/*329111*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329114*/                OPC_RecordMemRef,
/*329115*/                OPC_RecordNode, // #2 = 'ld' chained node
/*329116*/                OPC_CheckFoldableChainNode,
/*329117*/                OPC_RecordChild1, // #3 = $src3
/*329118*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329120*/                OPC_CheckPredicate, 9, // Predicate_load
/*329122*/                OPC_CheckType, MVT::f64,
/*329124*/                OPC_MoveParent,
/*329125*/                OPC_MoveParent,
/*329126*/                OPC_RecordChild2, // #4 = $src2
/*329127*/                OPC_MoveParent,
/*329128*/                OPC_CheckChild2Same, 1,
/*329130*/                OPC_CheckType, MVT::v2f64,
/*329132*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329134*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329137*/                OPC_EmitMergeInputChains1_2,
/*329138*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329152*/              /*Scope*/ 43, /*->329196*/
/*329153*/                OPC_RecordChild1, // #2 = $src1
/*329154*/                OPC_MoveChild2,
/*329155*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329158*/                OPC_RecordMemRef,
/*329159*/                OPC_RecordNode, // #3 = 'ld' chained node
/*329160*/                OPC_CheckFoldableChainNode,
/*329161*/                OPC_RecordChild1, // #4 = $src3
/*329162*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329164*/                OPC_CheckPredicate, 9, // Predicate_load
/*329166*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*329168*/                OPC_MoveParent,
/*329169*/                OPC_MoveParent,
/*329170*/                OPC_CheckChild2Same, 2,
/*329172*/                OPC_CheckType, MVT::v2f64,
/*329174*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329176*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329179*/                OPC_EmitMergeInputChains, 1, 3, 
/*329182*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329196*/              /*Scope*/ 41, /*->329238*/
/*329197*/                OPC_MoveChild1,
/*329198*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329201*/                OPC_RecordMemRef,
/*329202*/                OPC_RecordNode, // #2 = 'ld' chained node
/*329203*/                OPC_CheckFoldableChainNode,
/*329204*/                OPC_RecordChild1, // #3 = $src3
/*329205*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329207*/                OPC_CheckPredicate, 9, // Predicate_load
/*329209*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*329211*/                OPC_MoveParent,
/*329212*/                OPC_RecordChild2, // #4 = $src1
/*329213*/                OPC_MoveParent,
/*329214*/                OPC_CheckChild2Same, 4,
/*329216*/                OPC_CheckType, MVT::v2f64,
/*329218*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329220*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329223*/                OPC_EmitMergeInputChains1_2,
/*329224*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329238*/              0, /*End of Scope*/
/*329239*/            /*Scope*/ 42, /*->329282*/
/*329240*/              OPC_MoveChild0,
/*329241*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329244*/              OPC_RecordMemRef,
/*329245*/              OPC_RecordNode, // #1 = 'ld' chained node
/*329246*/              OPC_CheckFoldableChainNode,
/*329247*/              OPC_RecordChild1, // #2 = $src3
/*329248*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329250*/              OPC_CheckPredicate, 9, // Predicate_load
/*329252*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*329254*/              OPC_MoveParent,
/*329255*/              OPC_RecordChild1, // #3 = $src1
/*329256*/              OPC_RecordChild2, // #4 = $src2
/*329257*/              OPC_MoveParent,
/*329258*/              OPC_CheckChild2Same, 3,
/*329260*/              OPC_CheckType, MVT::v2f64,
/*329262*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329264*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329267*/              OPC_EmitMergeInputChains1_1,
/*329268*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMADDSUB132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329282*/            /*Scope*/ 44, /*->329327*/
/*329283*/              OPC_RecordChild0, // #1 = $src1
/*329284*/              OPC_RecordChild1, // #2 = $src2
/*329285*/              OPC_MoveChild2,
/*329286*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329289*/              OPC_RecordMemRef,
/*329290*/              OPC_RecordNode, // #3 = 'ld' chained node
/*329291*/              OPC_CheckFoldableChainNode,
/*329292*/              OPC_RecordChild1, // #4 = $src3
/*329293*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329295*/              OPC_CheckPredicate, 9, // Predicate_load
/*329297*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*329299*/              OPC_MoveParent,
/*329300*/              OPC_MoveParent,
/*329301*/              OPC_CheckChild2Same, 1,
/*329303*/              OPC_CheckType, MVT::v2f64,
/*329305*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329307*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329310*/              OPC_EmitMergeInputChains, 1, 3, 
/*329313*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMADDSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329327*/            /*Scope*/ 42, /*->329370*/
/*329328*/              OPC_MoveChild0,
/*329329*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329332*/              OPC_RecordMemRef,
/*329333*/              OPC_RecordNode, // #1 = 'ld' chained node
/*329334*/              OPC_CheckFoldableChainNode,
/*329335*/              OPC_RecordChild1, // #2 = $src3
/*329336*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329338*/              OPC_CheckPredicate, 9, // Predicate_load
/*329340*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*329342*/              OPC_MoveParent,
/*329343*/              OPC_RecordChild1, // #3 = $src2
/*329344*/              OPC_RecordChild2, // #4 = $src1
/*329345*/              OPC_MoveParent,
/*329346*/              OPC_CheckChild2Same, 4,
/*329348*/              OPC_CheckType, MVT::v2f64,
/*329350*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329352*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329355*/              OPC_EmitMergeInputChains1_1,
/*329356*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMADDSUB231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329370*/            /*Scope*/ 42, /*->329413*/
/*329371*/              OPC_RecordChild0, // #1 = $src1
/*329372*/              OPC_MoveChild1,
/*329373*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329376*/              OPC_RecordMemRef,
/*329377*/              OPC_RecordNode, // #2 = 'ld' chained node
/*329378*/              OPC_CheckFoldableChainNode,
/*329379*/              OPC_RecordChild1, // #3 = $src3
/*329380*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329382*/              OPC_CheckPredicate, 9, // Predicate_load
/*329384*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*329386*/              OPC_MoveParent,
/*329387*/              OPC_RecordChild2, // #4 = $src2
/*329388*/              OPC_MoveParent,
/*329389*/              OPC_CheckChild2Same, 1,
/*329391*/              OPC_CheckType, MVT::v2f64,
/*329393*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329395*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329398*/              OPC_EmitMergeInputChains1_2,
/*329399*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMADDSUB132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329413*/            0, /*End of Scope*/
/*329414*/          /*SwitchOpcode*/ 17|128,7/*913*/, TARGET_VAL(X86ISD::FMSUBADD),// ->330331
/*329418*/            OPC_Scope, 123, /*->329543*/ // 13 children in Scope
/*329420*/              OPC_RecordChild0, // #1 = $src2
/*329421*/              OPC_Scope, 60, /*->329483*/ // 2 children in Scope
/*329423*/                OPC_RecordChild1, // #2 = $src1
/*329424*/                OPC_MoveChild2,
/*329425*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*329428*/                OPC_MoveChild0,
/*329429*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329432*/                OPC_RecordMemRef,
/*329433*/                OPC_RecordNode, // #3 = 'ld' chained node
/*329434*/                OPC_CheckFoldableChainNode,
/*329435*/                OPC_RecordChild1, // #4 = $src3
/*329436*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329438*/                OPC_CheckPredicate, 9, // Predicate_load
/*329440*/                OPC_CheckType, MVT::f64,
/*329442*/                OPC_MoveParent,
/*329443*/                OPC_MoveParent,
/*329444*/                OPC_MoveParent,
/*329445*/                OPC_MoveChild2,
/*329446*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*329449*/                OPC_MoveChild0,
/*329450*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*329453*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*329455*/                OPC_CheckType, MVT::v4i32,
/*329457*/                OPC_MoveParent,
/*329458*/                OPC_MoveParent,
/*329459*/                OPC_CheckType, MVT::v2f64,
/*329461*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329463*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329466*/                OPC_EmitMergeInputChains, 1, 3, 
/*329469*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUBADD213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329483*/              /*Scope*/ 58, /*->329542*/
/*329484*/                OPC_MoveChild1,
/*329485*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*329488*/                OPC_MoveChild0,
/*329489*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329492*/                OPC_RecordMemRef,
/*329493*/                OPC_RecordNode, // #2 = 'ld' chained node
/*329494*/                OPC_CheckFoldableChainNode,
/*329495*/                OPC_RecordChild1, // #3 = $src3
/*329496*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329498*/                OPC_CheckPredicate, 9, // Predicate_load
/*329500*/                OPC_CheckType, MVT::f64,
/*329502*/                OPC_MoveParent,
/*329503*/                OPC_MoveParent,
/*329504*/                OPC_RecordChild2, // #4 = $src1
/*329505*/                OPC_MoveParent,
/*329506*/                OPC_MoveChild2,
/*329507*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*329510*/                OPC_MoveChild0,
/*329511*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*329514*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*329516*/                OPC_CheckType, MVT::v4i32,
/*329518*/                OPC_MoveParent,
/*329519*/                OPC_MoveParent,
/*329520*/                OPC_CheckType, MVT::v2f64,
/*329522*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329524*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329527*/                OPC_EmitMergeInputChains1_2,
/*329528*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUBADD231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329542*/              0, /*End of Scope*/
/*329543*/            /*Scope*/ 59, /*->329603*/
/*329544*/              OPC_MoveChild0,
/*329545*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*329548*/              OPC_MoveChild0,
/*329549*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329552*/              OPC_RecordMemRef,
/*329553*/              OPC_RecordNode, // #1 = 'ld' chained node
/*329554*/              OPC_CheckFoldableChainNode,
/*329555*/              OPC_RecordChild1, // #2 = $src3
/*329556*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329558*/              OPC_CheckPredicate, 9, // Predicate_load
/*329560*/              OPC_CheckType, MVT::f64,
/*329562*/              OPC_MoveParent,
/*329563*/              OPC_MoveParent,
/*329564*/              OPC_RecordChild1, // #3 = $src1
/*329565*/              OPC_RecordChild2, // #4 = $src2
/*329566*/              OPC_MoveParent,
/*329567*/              OPC_MoveChild2,
/*329568*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*329571*/              OPC_MoveChild0,
/*329572*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*329575*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*329577*/              OPC_CheckType, MVT::v4i32,
/*329579*/              OPC_MoveParent,
/*329580*/              OPC_MoveParent,
/*329581*/              OPC_CheckType, MVT::v2f64,
/*329583*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329585*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329588*/              OPC_EmitMergeInputChains1_1,
/*329589*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFMSUBADD132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329603*/            /*Scope*/ 113, /*->329717*/
/*329604*/              OPC_RecordChild0, // #1 = $src2
/*329605*/              OPC_Scope, 55, /*->329662*/ // 2 children in Scope
/*329607*/                OPC_RecordChild1, // #2 = $src1
/*329608*/                OPC_MoveChild2,
/*329609*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329612*/                OPC_RecordMemRef,
/*329613*/                OPC_RecordNode, // #3 = 'ld' chained node
/*329614*/                OPC_CheckFoldableChainNode,
/*329615*/                OPC_RecordChild1, // #4 = $src3
/*329616*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329618*/                OPC_CheckPredicate, 9, // Predicate_load
/*329620*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*329622*/                OPC_MoveParent,
/*329623*/                OPC_MoveParent,
/*329624*/                OPC_MoveChild2,
/*329625*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*329628*/                OPC_MoveChild0,
/*329629*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*329632*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*329634*/                OPC_CheckType, MVT::v4i32,
/*329636*/                OPC_MoveParent,
/*329637*/                OPC_MoveParent,
/*329638*/                OPC_CheckType, MVT::v2f64,
/*329640*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329642*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329645*/                OPC_EmitMergeInputChains, 1, 3, 
/*329648*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUBADD213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329662*/              /*Scope*/ 53, /*->329716*/
/*329663*/                OPC_MoveChild1,
/*329664*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329667*/                OPC_RecordMemRef,
/*329668*/                OPC_RecordNode, // #2 = 'ld' chained node
/*329669*/                OPC_CheckFoldableChainNode,
/*329670*/                OPC_RecordChild1, // #3 = $src3
/*329671*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329673*/                OPC_CheckPredicate, 9, // Predicate_load
/*329675*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*329677*/                OPC_MoveParent,
/*329678*/                OPC_RecordChild2, // #4 = $src1
/*329679*/                OPC_MoveParent,
/*329680*/                OPC_MoveChild2,
/*329681*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*329684*/                OPC_MoveChild0,
/*329685*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*329688*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*329690*/                OPC_CheckType, MVT::v4i32,
/*329692*/                OPC_MoveParent,
/*329693*/                OPC_MoveParent,
/*329694*/                OPC_CheckType, MVT::v2f64,
/*329696*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329698*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329701*/                OPC_EmitMergeInputChains1_2,
/*329702*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUBADD231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329716*/              0, /*End of Scope*/
/*329717*/            /*Scope*/ 54, /*->329772*/
/*329718*/              OPC_MoveChild0,
/*329719*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329722*/              OPC_RecordMemRef,
/*329723*/              OPC_RecordNode, // #1 = 'ld' chained node
/*329724*/              OPC_CheckFoldableChainNode,
/*329725*/              OPC_RecordChild1, // #2 = $src3
/*329726*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329728*/              OPC_CheckPredicate, 9, // Predicate_load
/*329730*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*329732*/              OPC_MoveParent,
/*329733*/              OPC_RecordChild1, // #3 = $src1
/*329734*/              OPC_RecordChild2, // #4 = $src2
/*329735*/              OPC_MoveParent,
/*329736*/              OPC_MoveChild2,
/*329737*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*329740*/              OPC_MoveChild0,
/*329741*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*329744*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*329746*/              OPC_CheckType, MVT::v4i32,
/*329748*/              OPC_MoveParent,
/*329749*/              OPC_MoveParent,
/*329750*/              OPC_CheckType, MVT::v2f64,
/*329752*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329754*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329757*/              OPC_EmitMergeInputChains1_1,
/*329758*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFMSUBADD132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329772*/            /*Scope*/ 99, /*->329872*/
/*329773*/              OPC_RecordChild0, // #1 = $src2
/*329774*/              OPC_Scope, 48, /*->329824*/ // 2 children in Scope
/*329776*/                OPC_RecordChild1, // #2 = $src1
/*329777*/                OPC_MoveChild2,
/*329778*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*329781*/                OPC_MoveChild0,
/*329782*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329785*/                OPC_RecordMemRef,
/*329786*/                OPC_RecordNode, // #3 = 'ld' chained node
/*329787*/                OPC_CheckFoldableChainNode,
/*329788*/                OPC_RecordChild1, // #4 = $src3
/*329789*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329791*/                OPC_CheckPredicate, 9, // Predicate_load
/*329793*/                OPC_CheckType, MVT::f64,
/*329795*/                OPC_MoveParent,
/*329796*/                OPC_MoveParent,
/*329797*/                OPC_MoveParent,
/*329798*/                OPC_CheckChild2Same, 2,
/*329800*/                OPC_CheckType, MVT::v2f64,
/*329802*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329804*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329807*/                OPC_EmitMergeInputChains, 1, 3, 
/*329810*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329824*/              /*Scope*/ 46, /*->329871*/
/*329825*/                OPC_MoveChild1,
/*329826*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*329829*/                OPC_MoveChild0,
/*329830*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329833*/                OPC_RecordMemRef,
/*329834*/                OPC_RecordNode, // #2 = 'ld' chained node
/*329835*/                OPC_CheckFoldableChainNode,
/*329836*/                OPC_RecordChild1, // #3 = $src3
/*329837*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329839*/                OPC_CheckPredicate, 9, // Predicate_load
/*329841*/                OPC_CheckType, MVT::f64,
/*329843*/                OPC_MoveParent,
/*329844*/                OPC_MoveParent,
/*329845*/                OPC_RecordChild2, // #4 = $src1
/*329846*/                OPC_MoveParent,
/*329847*/                OPC_CheckChild2Same, 4,
/*329849*/                OPC_CheckType, MVT::v2f64,
/*329851*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329853*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329856*/                OPC_EmitMergeInputChains1_2,
/*329857*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329871*/              0, /*End of Scope*/
/*329872*/            /*Scope*/ 47, /*->329920*/
/*329873*/              OPC_MoveChild0,
/*329874*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*329877*/              OPC_MoveChild0,
/*329878*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329881*/              OPC_RecordMemRef,
/*329882*/              OPC_RecordNode, // #1 = 'ld' chained node
/*329883*/              OPC_CheckFoldableChainNode,
/*329884*/              OPC_RecordChild1, // #2 = $src3
/*329885*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329887*/              OPC_CheckPredicate, 9, // Predicate_load
/*329889*/              OPC_CheckType, MVT::f64,
/*329891*/              OPC_MoveParent,
/*329892*/              OPC_MoveParent,
/*329893*/              OPC_RecordChild1, // #3 = $src1
/*329894*/              OPC_RecordChild2, // #4 = $src2
/*329895*/              OPC_MoveParent,
/*329896*/              OPC_CheckChild2Same, 3,
/*329898*/              OPC_CheckType, MVT::v2f64,
/*329900*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329902*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329905*/              OPC_EmitMergeInputChains1_1,
/*329906*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMSUBADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329920*/            /*Scope*/ 49, /*->329970*/
/*329921*/              OPC_RecordChild0, // #1 = $src1
/*329922*/              OPC_RecordChild1, // #2 = $src2
/*329923*/              OPC_MoveChild2,
/*329924*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*329927*/              OPC_MoveChild0,
/*329928*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329931*/              OPC_RecordMemRef,
/*329932*/              OPC_RecordNode, // #3 = 'ld' chained node
/*329933*/              OPC_CheckFoldableChainNode,
/*329934*/              OPC_RecordChild1, // #4 = $src3
/*329935*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329937*/              OPC_CheckPredicate, 9, // Predicate_load
/*329939*/              OPC_CheckType, MVT::f64,
/*329941*/              OPC_MoveParent,
/*329942*/              OPC_MoveParent,
/*329943*/              OPC_MoveParent,
/*329944*/              OPC_CheckChild2Same, 1,
/*329946*/              OPC_CheckType, MVT::v2f64,
/*329948*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*329950*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*329953*/              OPC_EmitMergeInputChains, 1, 3, 
/*329956*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMSUBADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*329970*/            /*Scope*/ 47, /*->330018*/
/*329971*/              OPC_MoveChild0,
/*329972*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*329975*/              OPC_MoveChild0,
/*329976*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329979*/              OPC_RecordMemRef,
/*329980*/              OPC_RecordNode, // #1 = 'ld' chained node
/*329981*/              OPC_CheckFoldableChainNode,
/*329982*/              OPC_RecordChild1, // #2 = $src3
/*329983*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329985*/              OPC_CheckPredicate, 9, // Predicate_load
/*329987*/              OPC_CheckType, MVT::f64,
/*329989*/              OPC_MoveParent,
/*329990*/              OPC_MoveParent,
/*329991*/              OPC_RecordChild1, // #3 = $src2
/*329992*/              OPC_RecordChild2, // #4 = $src1
/*329993*/              OPC_MoveParent,
/*329994*/              OPC_CheckChild2Same, 4,
/*329996*/              OPC_CheckType, MVT::v2f64,
/*329998*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330000*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330003*/              OPC_EmitMergeInputChains1_1,
/*330004*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFMSUBADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330018*/            /*Scope*/ 8|128,1/*136*/, /*->330156*/
/*330020*/              OPC_RecordChild0, // #1 = $src1
/*330021*/              OPC_Scope, 46, /*->330069*/ // 3 children in Scope
/*330023*/                OPC_MoveChild1,
/*330024*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*330027*/                OPC_MoveChild0,
/*330028*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330031*/                OPC_RecordMemRef,
/*330032*/                OPC_RecordNode, // #2 = 'ld' chained node
/*330033*/                OPC_CheckFoldableChainNode,
/*330034*/                OPC_RecordChild1, // #3 = $src3
/*330035*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330037*/                OPC_CheckPredicate, 9, // Predicate_load
/*330039*/                OPC_CheckType, MVT::f64,
/*330041*/                OPC_MoveParent,
/*330042*/                OPC_MoveParent,
/*330043*/                OPC_RecordChild2, // #4 = $src2
/*330044*/                OPC_MoveParent,
/*330045*/                OPC_CheckChild2Same, 1,
/*330047*/                OPC_CheckType, MVT::v2f64,
/*330049*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330051*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330054*/                OPC_EmitMergeInputChains1_2,
/*330055*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330069*/              /*Scope*/ 43, /*->330113*/
/*330070*/                OPC_RecordChild1, // #2 = $src1
/*330071*/                OPC_MoveChild2,
/*330072*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330075*/                OPC_RecordMemRef,
/*330076*/                OPC_RecordNode, // #3 = 'ld' chained node
/*330077*/                OPC_CheckFoldableChainNode,
/*330078*/                OPC_RecordChild1, // #4 = $src3
/*330079*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330081*/                OPC_CheckPredicate, 9, // Predicate_load
/*330083*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*330085*/                OPC_MoveParent,
/*330086*/                OPC_MoveParent,
/*330087*/                OPC_CheckChild2Same, 2,
/*330089*/                OPC_CheckType, MVT::v2f64,
/*330091*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330093*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330096*/                OPC_EmitMergeInputChains, 1, 3, 
/*330099*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330113*/              /*Scope*/ 41, /*->330155*/
/*330114*/                OPC_MoveChild1,
/*330115*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330118*/                OPC_RecordMemRef,
/*330119*/                OPC_RecordNode, // #2 = 'ld' chained node
/*330120*/                OPC_CheckFoldableChainNode,
/*330121*/                OPC_RecordChild1, // #3 = $src3
/*330122*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330124*/                OPC_CheckPredicate, 9, // Predicate_load
/*330126*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*330128*/                OPC_MoveParent,
/*330129*/                OPC_RecordChild2, // #4 = $src1
/*330130*/                OPC_MoveParent,
/*330131*/                OPC_CheckChild2Same, 4,
/*330133*/                OPC_CheckType, MVT::v2f64,
/*330135*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330137*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330140*/                OPC_EmitMergeInputChains1_2,
/*330141*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330155*/              0, /*End of Scope*/
/*330156*/            /*Scope*/ 42, /*->330199*/
/*330157*/              OPC_MoveChild0,
/*330158*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330161*/              OPC_RecordMemRef,
/*330162*/              OPC_RecordNode, // #1 = 'ld' chained node
/*330163*/              OPC_CheckFoldableChainNode,
/*330164*/              OPC_RecordChild1, // #2 = $src3
/*330165*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330167*/              OPC_CheckPredicate, 9, // Predicate_load
/*330169*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*330171*/              OPC_MoveParent,
/*330172*/              OPC_RecordChild1, // #3 = $src1
/*330173*/              OPC_RecordChild2, // #4 = $src2
/*330174*/              OPC_MoveParent,
/*330175*/              OPC_CheckChild2Same, 3,
/*330177*/              OPC_CheckType, MVT::v2f64,
/*330179*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330181*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330184*/              OPC_EmitMergeInputChains1_1,
/*330185*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMSUBADD132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330199*/            /*Scope*/ 44, /*->330244*/
/*330200*/              OPC_RecordChild0, // #1 = $src1
/*330201*/              OPC_RecordChild1, // #2 = $src2
/*330202*/              OPC_MoveChild2,
/*330203*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330206*/              OPC_RecordMemRef,
/*330207*/              OPC_RecordNode, // #3 = 'ld' chained node
/*330208*/              OPC_CheckFoldableChainNode,
/*330209*/              OPC_RecordChild1, // #4 = $src3
/*330210*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330212*/              OPC_CheckPredicate, 9, // Predicate_load
/*330214*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*330216*/              OPC_MoveParent,
/*330217*/              OPC_MoveParent,
/*330218*/              OPC_CheckChild2Same, 1,
/*330220*/              OPC_CheckType, MVT::v2f64,
/*330222*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330224*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330227*/              OPC_EmitMergeInputChains, 1, 3, 
/*330230*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMSUBADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330244*/            /*Scope*/ 42, /*->330287*/
/*330245*/              OPC_MoveChild0,
/*330246*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330249*/              OPC_RecordMemRef,
/*330250*/              OPC_RecordNode, // #1 = 'ld' chained node
/*330251*/              OPC_CheckFoldableChainNode,
/*330252*/              OPC_RecordChild1, // #2 = $src3
/*330253*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330255*/              OPC_CheckPredicate, 9, // Predicate_load
/*330257*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*330259*/              OPC_MoveParent,
/*330260*/              OPC_RecordChild1, // #3 = $src2
/*330261*/              OPC_RecordChild2, // #4 = $src1
/*330262*/              OPC_MoveParent,
/*330263*/              OPC_CheckChild2Same, 4,
/*330265*/              OPC_CheckType, MVT::v2f64,
/*330267*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330269*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330272*/              OPC_EmitMergeInputChains1_1,
/*330273*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMSUBADD231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330287*/            /*Scope*/ 42, /*->330330*/
/*330288*/              OPC_RecordChild0, // #1 = $src1
/*330289*/              OPC_MoveChild1,
/*330290*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330293*/              OPC_RecordMemRef,
/*330294*/              OPC_RecordNode, // #2 = 'ld' chained node
/*330295*/              OPC_CheckFoldableChainNode,
/*330296*/              OPC_RecordChild1, // #3 = $src3
/*330297*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330299*/              OPC_CheckPredicate, 9, // Predicate_load
/*330301*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*330303*/              OPC_MoveParent,
/*330304*/              OPC_RecordChild2, // #4 = $src2
/*330305*/              OPC_MoveParent,
/*330306*/              OPC_CheckChild2Same, 1,
/*330308*/              OPC_CheckType, MVT::v2f64,
/*330310*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330312*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330315*/              OPC_EmitMergeInputChains1_2,
/*330316*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFMSUBADD132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330330*/            0, /*End of Scope*/
/*330331*/          /*SwitchOpcode*/ 17|128,7/*913*/, TARGET_VAL(X86ISD::FNMADD),// ->331248
/*330335*/            OPC_Scope, 123, /*->330460*/ // 13 children in Scope
/*330337*/              OPC_RecordChild0, // #1 = $src2
/*330338*/              OPC_Scope, 60, /*->330400*/ // 2 children in Scope
/*330340*/                OPC_RecordChild1, // #2 = $src1
/*330341*/                OPC_MoveChild2,
/*330342*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*330345*/                OPC_MoveChild0,
/*330346*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330349*/                OPC_RecordMemRef,
/*330350*/                OPC_RecordNode, // #3 = 'ld' chained node
/*330351*/                OPC_CheckFoldableChainNode,
/*330352*/                OPC_RecordChild1, // #4 = $src3
/*330353*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330355*/                OPC_CheckPredicate, 9, // Predicate_load
/*330357*/                OPC_CheckType, MVT::f64,
/*330359*/                OPC_MoveParent,
/*330360*/                OPC_MoveParent,
/*330361*/                OPC_MoveParent,
/*330362*/                OPC_MoveChild2,
/*330363*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*330366*/                OPC_MoveChild0,
/*330367*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*330370*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*330372*/                OPC_CheckType, MVT::v4i32,
/*330374*/                OPC_MoveParent,
/*330375*/                OPC_MoveParent,
/*330376*/                OPC_CheckType, MVT::v2f64,
/*330378*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330380*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330383*/                OPC_EmitMergeInputChains, 1, 3, 
/*330386*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMADD213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330400*/              /*Scope*/ 58, /*->330459*/
/*330401*/                OPC_MoveChild1,
/*330402*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*330405*/                OPC_MoveChild0,
/*330406*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330409*/                OPC_RecordMemRef,
/*330410*/                OPC_RecordNode, // #2 = 'ld' chained node
/*330411*/                OPC_CheckFoldableChainNode,
/*330412*/                OPC_RecordChild1, // #3 = $src3
/*330413*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330415*/                OPC_CheckPredicate, 9, // Predicate_load
/*330417*/                OPC_CheckType, MVT::f64,
/*330419*/                OPC_MoveParent,
/*330420*/                OPC_MoveParent,
/*330421*/                OPC_RecordChild2, // #4 = $src1
/*330422*/                OPC_MoveParent,
/*330423*/                OPC_MoveChild2,
/*330424*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*330427*/                OPC_MoveChild0,
/*330428*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*330431*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*330433*/                OPC_CheckType, MVT::v4i32,
/*330435*/                OPC_MoveParent,
/*330436*/                OPC_MoveParent,
/*330437*/                OPC_CheckType, MVT::v2f64,
/*330439*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330441*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330444*/                OPC_EmitMergeInputChains1_2,
/*330445*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMADD231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330459*/              0, /*End of Scope*/
/*330460*/            /*Scope*/ 59, /*->330520*/
/*330461*/              OPC_MoveChild0,
/*330462*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*330465*/              OPC_MoveChild0,
/*330466*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330469*/              OPC_RecordMemRef,
/*330470*/              OPC_RecordNode, // #1 = 'ld' chained node
/*330471*/              OPC_CheckFoldableChainNode,
/*330472*/              OPC_RecordChild1, // #2 = $src3
/*330473*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330475*/              OPC_CheckPredicate, 9, // Predicate_load
/*330477*/              OPC_CheckType, MVT::f64,
/*330479*/              OPC_MoveParent,
/*330480*/              OPC_MoveParent,
/*330481*/              OPC_RecordChild1, // #3 = $src1
/*330482*/              OPC_RecordChild2, // #4 = $src2
/*330483*/              OPC_MoveParent,
/*330484*/              OPC_MoveChild2,
/*330485*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*330488*/              OPC_MoveChild0,
/*330489*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*330492*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*330494*/              OPC_CheckType, MVT::v4i32,
/*330496*/              OPC_MoveParent,
/*330497*/              OPC_MoveParent,
/*330498*/              OPC_CheckType, MVT::v2f64,
/*330500*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330502*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330505*/              OPC_EmitMergeInputChains1_1,
/*330506*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFNMADD132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330520*/            /*Scope*/ 113, /*->330634*/
/*330521*/              OPC_RecordChild0, // #1 = $src2
/*330522*/              OPC_Scope, 55, /*->330579*/ // 2 children in Scope
/*330524*/                OPC_RecordChild1, // #2 = $src1
/*330525*/                OPC_MoveChild2,
/*330526*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330529*/                OPC_RecordMemRef,
/*330530*/                OPC_RecordNode, // #3 = 'ld' chained node
/*330531*/                OPC_CheckFoldableChainNode,
/*330532*/                OPC_RecordChild1, // #4 = $src3
/*330533*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330535*/                OPC_CheckPredicate, 9, // Predicate_load
/*330537*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*330539*/                OPC_MoveParent,
/*330540*/                OPC_MoveParent,
/*330541*/                OPC_MoveChild2,
/*330542*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*330545*/                OPC_MoveChild0,
/*330546*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*330549*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*330551*/                OPC_CheckType, MVT::v4i32,
/*330553*/                OPC_MoveParent,
/*330554*/                OPC_MoveParent,
/*330555*/                OPC_CheckType, MVT::v2f64,
/*330557*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330559*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330562*/                OPC_EmitMergeInputChains, 1, 3, 
/*330565*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMADD213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330579*/              /*Scope*/ 53, /*->330633*/
/*330580*/                OPC_MoveChild1,
/*330581*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330584*/                OPC_RecordMemRef,
/*330585*/                OPC_RecordNode, // #2 = 'ld' chained node
/*330586*/                OPC_CheckFoldableChainNode,
/*330587*/                OPC_RecordChild1, // #3 = $src3
/*330588*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330590*/                OPC_CheckPredicate, 9, // Predicate_load
/*330592*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*330594*/                OPC_MoveParent,
/*330595*/                OPC_RecordChild2, // #4 = $src1
/*330596*/                OPC_MoveParent,
/*330597*/                OPC_MoveChild2,
/*330598*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*330601*/                OPC_MoveChild0,
/*330602*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*330605*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*330607*/                OPC_CheckType, MVT::v4i32,
/*330609*/                OPC_MoveParent,
/*330610*/                OPC_MoveParent,
/*330611*/                OPC_CheckType, MVT::v2f64,
/*330613*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330615*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330618*/                OPC_EmitMergeInputChains1_2,
/*330619*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMADD231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330633*/              0, /*End of Scope*/
/*330634*/            /*Scope*/ 54, /*->330689*/
/*330635*/              OPC_MoveChild0,
/*330636*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330639*/              OPC_RecordMemRef,
/*330640*/              OPC_RecordNode, // #1 = 'ld' chained node
/*330641*/              OPC_CheckFoldableChainNode,
/*330642*/              OPC_RecordChild1, // #2 = $src3
/*330643*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330645*/              OPC_CheckPredicate, 9, // Predicate_load
/*330647*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*330649*/              OPC_MoveParent,
/*330650*/              OPC_RecordChild1, // #3 = $src1
/*330651*/              OPC_RecordChild2, // #4 = $src2
/*330652*/              OPC_MoveParent,
/*330653*/              OPC_MoveChild2,
/*330654*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*330657*/              OPC_MoveChild0,
/*330658*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*330661*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*330663*/              OPC_CheckType, MVT::v4i32,
/*330665*/              OPC_MoveParent,
/*330666*/              OPC_MoveParent,
/*330667*/              OPC_CheckType, MVT::v2f64,
/*330669*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330671*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330674*/              OPC_EmitMergeInputChains1_1,
/*330675*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFNMADD132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330689*/            /*Scope*/ 99, /*->330789*/
/*330690*/              OPC_RecordChild0, // #1 = $src2
/*330691*/              OPC_Scope, 48, /*->330741*/ // 2 children in Scope
/*330693*/                OPC_RecordChild1, // #2 = $src1
/*330694*/                OPC_MoveChild2,
/*330695*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*330698*/                OPC_MoveChild0,
/*330699*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330702*/                OPC_RecordMemRef,
/*330703*/                OPC_RecordNode, // #3 = 'ld' chained node
/*330704*/                OPC_CheckFoldableChainNode,
/*330705*/                OPC_RecordChild1, // #4 = $src3
/*330706*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330708*/                OPC_CheckPredicate, 9, // Predicate_load
/*330710*/                OPC_CheckType, MVT::f64,
/*330712*/                OPC_MoveParent,
/*330713*/                OPC_MoveParent,
/*330714*/                OPC_MoveParent,
/*330715*/                OPC_CheckChild2Same, 2,
/*330717*/                OPC_CheckType, MVT::v2f64,
/*330719*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330721*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330724*/                OPC_EmitMergeInputChains, 1, 3, 
/*330727*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330741*/              /*Scope*/ 46, /*->330788*/
/*330742*/                OPC_MoveChild1,
/*330743*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*330746*/                OPC_MoveChild0,
/*330747*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330750*/                OPC_RecordMemRef,
/*330751*/                OPC_RecordNode, // #2 = 'ld' chained node
/*330752*/                OPC_CheckFoldableChainNode,
/*330753*/                OPC_RecordChild1, // #3 = $src3
/*330754*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330756*/                OPC_CheckPredicate, 9, // Predicate_load
/*330758*/                OPC_CheckType, MVT::f64,
/*330760*/                OPC_MoveParent,
/*330761*/                OPC_MoveParent,
/*330762*/                OPC_RecordChild2, // #4 = $src1
/*330763*/                OPC_MoveParent,
/*330764*/                OPC_CheckChild2Same, 4,
/*330766*/                OPC_CheckType, MVT::v2f64,
/*330768*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330770*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330773*/                OPC_EmitMergeInputChains1_2,
/*330774*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330788*/              0, /*End of Scope*/
/*330789*/            /*Scope*/ 47, /*->330837*/
/*330790*/              OPC_MoveChild0,
/*330791*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*330794*/              OPC_MoveChild0,
/*330795*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330798*/              OPC_RecordMemRef,
/*330799*/              OPC_RecordNode, // #1 = 'ld' chained node
/*330800*/              OPC_CheckFoldableChainNode,
/*330801*/              OPC_RecordChild1, // #2 = $src3
/*330802*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330804*/              OPC_CheckPredicate, 9, // Predicate_load
/*330806*/              OPC_CheckType, MVT::f64,
/*330808*/              OPC_MoveParent,
/*330809*/              OPC_MoveParent,
/*330810*/              OPC_RecordChild1, // #3 = $src1
/*330811*/              OPC_RecordChild2, // #4 = $src2
/*330812*/              OPC_MoveParent,
/*330813*/              OPC_CheckChild2Same, 3,
/*330815*/              OPC_CheckType, MVT::v2f64,
/*330817*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330819*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330822*/              OPC_EmitMergeInputChains1_1,
/*330823*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFNMADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330837*/            /*Scope*/ 49, /*->330887*/
/*330838*/              OPC_RecordChild0, // #1 = $src1
/*330839*/              OPC_RecordChild1, // #2 = $src2
/*330840*/              OPC_MoveChild2,
/*330841*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*330844*/              OPC_MoveChild0,
/*330845*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330848*/              OPC_RecordMemRef,
/*330849*/              OPC_RecordNode, // #3 = 'ld' chained node
/*330850*/              OPC_CheckFoldableChainNode,
/*330851*/              OPC_RecordChild1, // #4 = $src3
/*330852*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330854*/              OPC_CheckPredicate, 9, // Predicate_load
/*330856*/              OPC_CheckType, MVT::f64,
/*330858*/              OPC_MoveParent,
/*330859*/              OPC_MoveParent,
/*330860*/              OPC_MoveParent,
/*330861*/              OPC_CheckChild2Same, 1,
/*330863*/              OPC_CheckType, MVT::v2f64,
/*330865*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330867*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330870*/              OPC_EmitMergeInputChains, 1, 3, 
/*330873*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFNMADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330887*/            /*Scope*/ 47, /*->330935*/
/*330888*/              OPC_MoveChild0,
/*330889*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*330892*/              OPC_MoveChild0,
/*330893*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330896*/              OPC_RecordMemRef,
/*330897*/              OPC_RecordNode, // #1 = 'ld' chained node
/*330898*/              OPC_CheckFoldableChainNode,
/*330899*/              OPC_RecordChild1, // #2 = $src3
/*330900*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330902*/              OPC_CheckPredicate, 9, // Predicate_load
/*330904*/              OPC_CheckType, MVT::f64,
/*330906*/              OPC_MoveParent,
/*330907*/              OPC_MoveParent,
/*330908*/              OPC_RecordChild1, // #3 = $src2
/*330909*/              OPC_RecordChild2, // #4 = $src1
/*330910*/              OPC_MoveParent,
/*330911*/              OPC_CheckChild2Same, 4,
/*330913*/              OPC_CheckType, MVT::v2f64,
/*330915*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330917*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330920*/              OPC_EmitMergeInputChains1_1,
/*330921*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFNMADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330935*/            /*Scope*/ 8|128,1/*136*/, /*->331073*/
/*330937*/              OPC_RecordChild0, // #1 = $src1
/*330938*/              OPC_Scope, 46, /*->330986*/ // 3 children in Scope
/*330940*/                OPC_MoveChild1,
/*330941*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*330944*/                OPC_MoveChild0,
/*330945*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330948*/                OPC_RecordMemRef,
/*330949*/                OPC_RecordNode, // #2 = 'ld' chained node
/*330950*/                OPC_CheckFoldableChainNode,
/*330951*/                OPC_RecordChild1, // #3 = $src3
/*330952*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330954*/                OPC_CheckPredicate, 9, // Predicate_load
/*330956*/                OPC_CheckType, MVT::f64,
/*330958*/                OPC_MoveParent,
/*330959*/                OPC_MoveParent,
/*330960*/                OPC_RecordChild2, // #4 = $src2
/*330961*/                OPC_MoveParent,
/*330962*/                OPC_CheckChild2Same, 1,
/*330964*/                OPC_CheckType, MVT::v2f64,
/*330966*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*330968*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*330971*/                OPC_EmitMergeInputChains1_2,
/*330972*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*330986*/              /*Scope*/ 43, /*->331030*/
/*330987*/                OPC_RecordChild1, // #2 = $src1
/*330988*/                OPC_MoveChild2,
/*330989*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*330992*/                OPC_RecordMemRef,
/*330993*/                OPC_RecordNode, // #3 = 'ld' chained node
/*330994*/                OPC_CheckFoldableChainNode,
/*330995*/                OPC_RecordChild1, // #4 = $src3
/*330996*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330998*/                OPC_CheckPredicate, 9, // Predicate_load
/*331000*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*331002*/                OPC_MoveParent,
/*331003*/                OPC_MoveParent,
/*331004*/                OPC_CheckChild2Same, 2,
/*331006*/                OPC_CheckType, MVT::v2f64,
/*331008*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331010*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331013*/                OPC_EmitMergeInputChains, 1, 3, 
/*331016*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331030*/              /*Scope*/ 41, /*->331072*/
/*331031*/                OPC_MoveChild1,
/*331032*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331035*/                OPC_RecordMemRef,
/*331036*/                OPC_RecordNode, // #2 = 'ld' chained node
/*331037*/                OPC_CheckFoldableChainNode,
/*331038*/                OPC_RecordChild1, // #3 = $src3
/*331039*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331041*/                OPC_CheckPredicate, 9, // Predicate_load
/*331043*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*331045*/                OPC_MoveParent,
/*331046*/                OPC_RecordChild2, // #4 = $src1
/*331047*/                OPC_MoveParent,
/*331048*/                OPC_CheckChild2Same, 4,
/*331050*/                OPC_CheckType, MVT::v2f64,
/*331052*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331054*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331057*/                OPC_EmitMergeInputChains1_2,
/*331058*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331072*/              0, /*End of Scope*/
/*331073*/            /*Scope*/ 42, /*->331116*/
/*331074*/              OPC_MoveChild0,
/*331075*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331078*/              OPC_RecordMemRef,
/*331079*/              OPC_RecordNode, // #1 = 'ld' chained node
/*331080*/              OPC_CheckFoldableChainNode,
/*331081*/              OPC_RecordChild1, // #2 = $src3
/*331082*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331084*/              OPC_CheckPredicate, 9, // Predicate_load
/*331086*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*331088*/              OPC_MoveParent,
/*331089*/              OPC_RecordChild1, // #3 = $src1
/*331090*/              OPC_RecordChild2, // #4 = $src2
/*331091*/              OPC_MoveParent,
/*331092*/              OPC_CheckChild2Same, 3,
/*331094*/              OPC_CheckType, MVT::v2f64,
/*331096*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331098*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331101*/              OPC_EmitMergeInputChains1_1,
/*331102*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFNMADD132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331116*/            /*Scope*/ 44, /*->331161*/
/*331117*/              OPC_RecordChild0, // #1 = $src1
/*331118*/              OPC_RecordChild1, // #2 = $src2
/*331119*/              OPC_MoveChild2,
/*331120*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331123*/              OPC_RecordMemRef,
/*331124*/              OPC_RecordNode, // #3 = 'ld' chained node
/*331125*/              OPC_CheckFoldableChainNode,
/*331126*/              OPC_RecordChild1, // #4 = $src3
/*331127*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331129*/              OPC_CheckPredicate, 9, // Predicate_load
/*331131*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*331133*/              OPC_MoveParent,
/*331134*/              OPC_MoveParent,
/*331135*/              OPC_CheckChild2Same, 1,
/*331137*/              OPC_CheckType, MVT::v2f64,
/*331139*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331141*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331144*/              OPC_EmitMergeInputChains, 1, 3, 
/*331147*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFNMADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331161*/            /*Scope*/ 42, /*->331204*/
/*331162*/              OPC_MoveChild0,
/*331163*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331166*/              OPC_RecordMemRef,
/*331167*/              OPC_RecordNode, // #1 = 'ld' chained node
/*331168*/              OPC_CheckFoldableChainNode,
/*331169*/              OPC_RecordChild1, // #2 = $src3
/*331170*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331172*/              OPC_CheckPredicate, 9, // Predicate_load
/*331174*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*331176*/              OPC_MoveParent,
/*331177*/              OPC_RecordChild1, // #3 = $src2
/*331178*/              OPC_RecordChild2, // #4 = $src1
/*331179*/              OPC_MoveParent,
/*331180*/              OPC_CheckChild2Same, 4,
/*331182*/              OPC_CheckType, MVT::v2f64,
/*331184*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331186*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331189*/              OPC_EmitMergeInputChains1_1,
/*331190*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFNMADD231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331204*/            /*Scope*/ 42, /*->331247*/
/*331205*/              OPC_RecordChild0, // #1 = $src1
/*331206*/              OPC_MoveChild1,
/*331207*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331210*/              OPC_RecordMemRef,
/*331211*/              OPC_RecordNode, // #2 = 'ld' chained node
/*331212*/              OPC_CheckFoldableChainNode,
/*331213*/              OPC_RecordChild1, // #3 = $src3
/*331214*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331216*/              OPC_CheckPredicate, 9, // Predicate_load
/*331218*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*331220*/              OPC_MoveParent,
/*331221*/              OPC_RecordChild2, // #4 = $src2
/*331222*/              OPC_MoveParent,
/*331223*/              OPC_CheckChild2Same, 1,
/*331225*/              OPC_CheckType, MVT::v2f64,
/*331227*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331229*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331232*/              OPC_EmitMergeInputChains1_2,
/*331233*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFNMADD132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331247*/            0, /*End of Scope*/
/*331248*/          /*SwitchOpcode*/ 17|128,7/*913*/, TARGET_VAL(X86ISD::FNMSUB),// ->332165
/*331252*/            OPC_Scope, 123, /*->331377*/ // 13 children in Scope
/*331254*/              OPC_RecordChild0, // #1 = $src2
/*331255*/              OPC_Scope, 60, /*->331317*/ // 2 children in Scope
/*331257*/                OPC_RecordChild1, // #2 = $src1
/*331258*/                OPC_MoveChild2,
/*331259*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*331262*/                OPC_MoveChild0,
/*331263*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331266*/                OPC_RecordMemRef,
/*331267*/                OPC_RecordNode, // #3 = 'ld' chained node
/*331268*/                OPC_CheckFoldableChainNode,
/*331269*/                OPC_RecordChild1, // #4 = $src3
/*331270*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331272*/                OPC_CheckPredicate, 9, // Predicate_load
/*331274*/                OPC_CheckType, MVT::f64,
/*331276*/                OPC_MoveParent,
/*331277*/                OPC_MoveParent,
/*331278*/                OPC_MoveParent,
/*331279*/                OPC_MoveChild2,
/*331280*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*331283*/                OPC_MoveChild0,
/*331284*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*331287*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*331289*/                OPC_CheckType, MVT::v4i32,
/*331291*/                OPC_MoveParent,
/*331292*/                OPC_MoveParent,
/*331293*/                OPC_CheckType, MVT::v2f64,
/*331295*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331297*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331300*/                OPC_EmitMergeInputChains, 1, 3, 
/*331303*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMSUB213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331317*/              /*Scope*/ 58, /*->331376*/
/*331318*/                OPC_MoveChild1,
/*331319*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*331322*/                OPC_MoveChild0,
/*331323*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331326*/                OPC_RecordMemRef,
/*331327*/                OPC_RecordNode, // #2 = 'ld' chained node
/*331328*/                OPC_CheckFoldableChainNode,
/*331329*/                OPC_RecordChild1, // #3 = $src3
/*331330*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331332*/                OPC_CheckPredicate, 9, // Predicate_load
/*331334*/                OPC_CheckType, MVT::f64,
/*331336*/                OPC_MoveParent,
/*331337*/                OPC_MoveParent,
/*331338*/                OPC_RecordChild2, // #4 = $src1
/*331339*/                OPC_MoveParent,
/*331340*/                OPC_MoveChild2,
/*331341*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*331344*/                OPC_MoveChild0,
/*331345*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*331348*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*331350*/                OPC_CheckType, MVT::v4i32,
/*331352*/                OPC_MoveParent,
/*331353*/                OPC_MoveParent,
/*331354*/                OPC_CheckType, MVT::v2f64,
/*331356*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331358*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331361*/                OPC_EmitMergeInputChains1_2,
/*331362*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMSUB231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331376*/              0, /*End of Scope*/
/*331377*/            /*Scope*/ 59, /*->331437*/
/*331378*/              OPC_MoveChild0,
/*331379*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*331382*/              OPC_MoveChild0,
/*331383*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331386*/              OPC_RecordMemRef,
/*331387*/              OPC_RecordNode, // #1 = 'ld' chained node
/*331388*/              OPC_CheckFoldableChainNode,
/*331389*/              OPC_RecordChild1, // #2 = $src3
/*331390*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331392*/              OPC_CheckPredicate, 9, // Predicate_load
/*331394*/              OPC_CheckType, MVT::f64,
/*331396*/              OPC_MoveParent,
/*331397*/              OPC_MoveParent,
/*331398*/              OPC_RecordChild1, // #3 = $src1
/*331399*/              OPC_RecordChild2, // #4 = $src2
/*331400*/              OPC_MoveParent,
/*331401*/              OPC_MoveChild2,
/*331402*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*331405*/              OPC_MoveChild0,
/*331406*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*331409*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*331411*/              OPC_CheckType, MVT::v4i32,
/*331413*/              OPC_MoveParent,
/*331414*/              OPC_MoveParent,
/*331415*/              OPC_CheckType, MVT::v2f64,
/*331417*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331419*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331422*/              OPC_EmitMergeInputChains1_1,
/*331423*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFNMSUB132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331437*/            /*Scope*/ 113, /*->331551*/
/*331438*/              OPC_RecordChild0, // #1 = $src2
/*331439*/              OPC_Scope, 55, /*->331496*/ // 2 children in Scope
/*331441*/                OPC_RecordChild1, // #2 = $src1
/*331442*/                OPC_MoveChild2,
/*331443*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331446*/                OPC_RecordMemRef,
/*331447*/                OPC_RecordNode, // #3 = 'ld' chained node
/*331448*/                OPC_CheckFoldableChainNode,
/*331449*/                OPC_RecordChild1, // #4 = $src3
/*331450*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331452*/                OPC_CheckPredicate, 9, // Predicate_load
/*331454*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*331456*/                OPC_MoveParent,
/*331457*/                OPC_MoveParent,
/*331458*/                OPC_MoveChild2,
/*331459*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*331462*/                OPC_MoveChild0,
/*331463*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*331466*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*331468*/                OPC_CheckType, MVT::v4i32,
/*331470*/                OPC_MoveParent,
/*331471*/                OPC_MoveParent,
/*331472*/                OPC_CheckType, MVT::v2f64,
/*331474*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331476*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331479*/                OPC_EmitMergeInputChains, 1, 3, 
/*331482*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMSUB213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331496*/              /*Scope*/ 53, /*->331550*/
/*331497*/                OPC_MoveChild1,
/*331498*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331501*/                OPC_RecordMemRef,
/*331502*/                OPC_RecordNode, // #2 = 'ld' chained node
/*331503*/                OPC_CheckFoldableChainNode,
/*331504*/                OPC_RecordChild1, // #3 = $src3
/*331505*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331507*/                OPC_CheckPredicate, 9, // Predicate_load
/*331509*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*331511*/                OPC_MoveParent,
/*331512*/                OPC_RecordChild2, // #4 = $src1
/*331513*/                OPC_MoveParent,
/*331514*/                OPC_MoveChild2,
/*331515*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*331518*/                OPC_MoveChild0,
/*331519*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*331522*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*331524*/                OPC_CheckType, MVT::v4i32,
/*331526*/                OPC_MoveParent,
/*331527*/                OPC_MoveParent,
/*331528*/                OPC_CheckType, MVT::v2f64,
/*331530*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331532*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331535*/                OPC_EmitMergeInputChains1_2,
/*331536*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMSUB231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331550*/              0, /*End of Scope*/
/*331551*/            /*Scope*/ 54, /*->331606*/
/*331552*/              OPC_MoveChild0,
/*331553*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331556*/              OPC_RecordMemRef,
/*331557*/              OPC_RecordNode, // #1 = 'ld' chained node
/*331558*/              OPC_CheckFoldableChainNode,
/*331559*/              OPC_RecordChild1, // #2 = $src3
/*331560*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331562*/              OPC_CheckPredicate, 9, // Predicate_load
/*331564*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*331566*/              OPC_MoveParent,
/*331567*/              OPC_RecordChild1, // #3 = $src1
/*331568*/              OPC_RecordChild2, // #4 = $src2
/*331569*/              OPC_MoveParent,
/*331570*/              OPC_MoveChild2,
/*331571*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*331574*/              OPC_MoveChild0,
/*331575*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*331578*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*331580*/              OPC_CheckType, MVT::v4i32,
/*331582*/              OPC_MoveParent,
/*331583*/              OPC_MoveParent,
/*331584*/              OPC_CheckType, MVT::v2f64,
/*331586*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331588*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331591*/              OPC_EmitMergeInputChains1_1,
/*331592*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFNMSUB132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331606*/            /*Scope*/ 99, /*->331706*/
/*331607*/              OPC_RecordChild0, // #1 = $src2
/*331608*/              OPC_Scope, 48, /*->331658*/ // 2 children in Scope
/*331610*/                OPC_RecordChild1, // #2 = $src1
/*331611*/                OPC_MoveChild2,
/*331612*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*331615*/                OPC_MoveChild0,
/*331616*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331619*/                OPC_RecordMemRef,
/*331620*/                OPC_RecordNode, // #3 = 'ld' chained node
/*331621*/                OPC_CheckFoldableChainNode,
/*331622*/                OPC_RecordChild1, // #4 = $src3
/*331623*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331625*/                OPC_CheckPredicate, 9, // Predicate_load
/*331627*/                OPC_CheckType, MVT::f64,
/*331629*/                OPC_MoveParent,
/*331630*/                OPC_MoveParent,
/*331631*/                OPC_MoveParent,
/*331632*/                OPC_CheckChild2Same, 2,
/*331634*/                OPC_CheckType, MVT::v2f64,
/*331636*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331638*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331641*/                OPC_EmitMergeInputChains, 1, 3, 
/*331644*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331658*/              /*Scope*/ 46, /*->331705*/
/*331659*/                OPC_MoveChild1,
/*331660*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*331663*/                OPC_MoveChild0,
/*331664*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331667*/                OPC_RecordMemRef,
/*331668*/                OPC_RecordNode, // #2 = 'ld' chained node
/*331669*/                OPC_CheckFoldableChainNode,
/*331670*/                OPC_RecordChild1, // #3 = $src3
/*331671*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331673*/                OPC_CheckPredicate, 9, // Predicate_load
/*331675*/                OPC_CheckType, MVT::f64,
/*331677*/                OPC_MoveParent,
/*331678*/                OPC_MoveParent,
/*331679*/                OPC_RecordChild2, // #4 = $src1
/*331680*/                OPC_MoveParent,
/*331681*/                OPC_CheckChild2Same, 4,
/*331683*/                OPC_CheckType, MVT::v2f64,
/*331685*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331687*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331690*/                OPC_EmitMergeInputChains1_2,
/*331691*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331705*/              0, /*End of Scope*/
/*331706*/            /*Scope*/ 47, /*->331754*/
/*331707*/              OPC_MoveChild0,
/*331708*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*331711*/              OPC_MoveChild0,
/*331712*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331715*/              OPC_RecordMemRef,
/*331716*/              OPC_RecordNode, // #1 = 'ld' chained node
/*331717*/              OPC_CheckFoldableChainNode,
/*331718*/              OPC_RecordChild1, // #2 = $src3
/*331719*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331721*/              OPC_CheckPredicate, 9, // Predicate_load
/*331723*/              OPC_CheckType, MVT::f64,
/*331725*/              OPC_MoveParent,
/*331726*/              OPC_MoveParent,
/*331727*/              OPC_RecordChild1, // #3 = $src1
/*331728*/              OPC_RecordChild2, // #4 = $src2
/*331729*/              OPC_MoveParent,
/*331730*/              OPC_CheckChild2Same, 3,
/*331732*/              OPC_CheckType, MVT::v2f64,
/*331734*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331736*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331739*/              OPC_EmitMergeInputChains1_1,
/*331740*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFNMSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331754*/            /*Scope*/ 49, /*->331804*/
/*331755*/              OPC_RecordChild0, // #1 = $src1
/*331756*/              OPC_RecordChild1, // #2 = $src2
/*331757*/              OPC_MoveChild2,
/*331758*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*331761*/              OPC_MoveChild0,
/*331762*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331765*/              OPC_RecordMemRef,
/*331766*/              OPC_RecordNode, // #3 = 'ld' chained node
/*331767*/              OPC_CheckFoldableChainNode,
/*331768*/              OPC_RecordChild1, // #4 = $src3
/*331769*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331771*/              OPC_CheckPredicate, 9, // Predicate_load
/*331773*/              OPC_CheckType, MVT::f64,
/*331775*/              OPC_MoveParent,
/*331776*/              OPC_MoveParent,
/*331777*/              OPC_MoveParent,
/*331778*/              OPC_CheckChild2Same, 1,
/*331780*/              OPC_CheckType, MVT::v2f64,
/*331782*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331784*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331787*/              OPC_EmitMergeInputChains, 1, 3, 
/*331790*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFNMSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331804*/            /*Scope*/ 47, /*->331852*/
/*331805*/              OPC_MoveChild0,
/*331806*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*331809*/              OPC_MoveChild0,
/*331810*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331813*/              OPC_RecordMemRef,
/*331814*/              OPC_RecordNode, // #1 = 'ld' chained node
/*331815*/              OPC_CheckFoldableChainNode,
/*331816*/              OPC_RecordChild1, // #2 = $src3
/*331817*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331819*/              OPC_CheckPredicate, 9, // Predicate_load
/*331821*/              OPC_CheckType, MVT::f64,
/*331823*/              OPC_MoveParent,
/*331824*/              OPC_MoveParent,
/*331825*/              OPC_RecordChild1, // #3 = $src2
/*331826*/              OPC_RecordChild2, // #4 = $src1
/*331827*/              OPC_MoveParent,
/*331828*/              OPC_CheckChild2Same, 4,
/*331830*/              OPC_CheckType, MVT::v2f64,
/*331832*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331834*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331837*/              OPC_EmitMergeInputChains1_1,
/*331838*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                        // Dst: (VFNMSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331852*/            /*Scope*/ 8|128,1/*136*/, /*->331990*/
/*331854*/              OPC_RecordChild0, // #1 = $src1
/*331855*/              OPC_Scope, 46, /*->331903*/ // 3 children in Scope
/*331857*/                OPC_MoveChild1,
/*331858*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*331861*/                OPC_MoveChild0,
/*331862*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331865*/                OPC_RecordMemRef,
/*331866*/                OPC_RecordNode, // #2 = 'ld' chained node
/*331867*/                OPC_CheckFoldableChainNode,
/*331868*/                OPC_RecordChild1, // #3 = $src3
/*331869*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331871*/                OPC_CheckPredicate, 9, // Predicate_load
/*331873*/                OPC_CheckType, MVT::f64,
/*331875*/                OPC_MoveParent,
/*331876*/                OPC_MoveParent,
/*331877*/                OPC_RecordChild2, // #4 = $src2
/*331878*/                OPC_MoveParent,
/*331879*/                OPC_CheckChild2Same, 1,
/*331881*/                OPC_CheckType, MVT::v2f64,
/*331883*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331885*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331888*/                OPC_EmitMergeInputChains1_2,
/*331889*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331903*/              /*Scope*/ 43, /*->331947*/
/*331904*/                OPC_RecordChild1, // #2 = $src1
/*331905*/                OPC_MoveChild2,
/*331906*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331909*/                OPC_RecordMemRef,
/*331910*/                OPC_RecordNode, // #3 = 'ld' chained node
/*331911*/                OPC_CheckFoldableChainNode,
/*331912*/                OPC_RecordChild1, // #4 = $src3
/*331913*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331915*/                OPC_CheckPredicate, 9, // Predicate_load
/*331917*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*331919*/                OPC_MoveParent,
/*331920*/                OPC_MoveParent,
/*331921*/                OPC_CheckChild2Same, 2,
/*331923*/                OPC_CheckType, MVT::v2f64,
/*331925*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331927*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331930*/                OPC_EmitMergeInputChains, 1, 3, 
/*331933*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331947*/              /*Scope*/ 41, /*->331989*/
/*331948*/                OPC_MoveChild1,
/*331949*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331952*/                OPC_RecordMemRef,
/*331953*/                OPC_RecordNode, // #2 = 'ld' chained node
/*331954*/                OPC_CheckFoldableChainNode,
/*331955*/                OPC_RecordChild1, // #3 = $src3
/*331956*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331958*/                OPC_CheckPredicate, 9, // Predicate_load
/*331960*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*331962*/                OPC_MoveParent,
/*331963*/                OPC_RecordChild2, // #4 = $src1
/*331964*/                OPC_MoveParent,
/*331965*/                OPC_CheckChild2Same, 4,
/*331967*/                OPC_CheckType, MVT::v2f64,
/*331969*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*331971*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*331974*/                OPC_EmitMergeInputChains1_2,
/*331975*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*331989*/              0, /*End of Scope*/
/*331990*/            /*Scope*/ 42, /*->332033*/
/*331991*/              OPC_MoveChild0,
/*331992*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331995*/              OPC_RecordMemRef,
/*331996*/              OPC_RecordNode, // #1 = 'ld' chained node
/*331997*/              OPC_CheckFoldableChainNode,
/*331998*/              OPC_RecordChild1, // #2 = $src3
/*331999*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332001*/              OPC_CheckPredicate, 9, // Predicate_load
/*332003*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*332005*/              OPC_MoveParent,
/*332006*/              OPC_RecordChild1, // #3 = $src1
/*332007*/              OPC_RecordChild2, // #4 = $src2
/*332008*/              OPC_MoveParent,
/*332009*/              OPC_CheckChild2Same, 3,
/*332011*/              OPC_CheckType, MVT::v2f64,
/*332013*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*332015*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*332018*/              OPC_EmitMergeInputChains1_1,
/*332019*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFNMSUB132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*332033*/            /*Scope*/ 44, /*->332078*/
/*332034*/              OPC_RecordChild0, // #1 = $src1
/*332035*/              OPC_RecordChild1, // #2 = $src2
/*332036*/              OPC_MoveChild2,
/*332037*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*332040*/              OPC_RecordMemRef,
/*332041*/              OPC_RecordNode, // #3 = 'ld' chained node
/*332042*/              OPC_CheckFoldableChainNode,
/*332043*/              OPC_RecordChild1, // #4 = $src3
/*332044*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332046*/              OPC_CheckPredicate, 9, // Predicate_load
/*332048*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*332050*/              OPC_MoveParent,
/*332051*/              OPC_MoveParent,
/*332052*/              OPC_CheckChild2Same, 1,
/*332054*/              OPC_CheckType, MVT::v2f64,
/*332056*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*332058*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*332061*/              OPC_EmitMergeInputChains, 1, 3, 
/*332064*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFNMSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*332078*/            /*Scope*/ 42, /*->332121*/
/*332079*/              OPC_MoveChild0,
/*332080*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*332083*/              OPC_RecordMemRef,
/*332084*/              OPC_RecordNode, // #1 = 'ld' chained node
/*332085*/              OPC_CheckFoldableChainNode,
/*332086*/              OPC_RecordChild1, // #2 = $src3
/*332087*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332089*/              OPC_CheckPredicate, 9, // Predicate_load
/*332091*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*332093*/              OPC_MoveParent,
/*332094*/              OPC_RecordChild1, // #3 = $src2
/*332095*/              OPC_RecordChild2, // #4 = $src1
/*332096*/              OPC_MoveParent,
/*332097*/              OPC_CheckChild2Same, 4,
/*332099*/              OPC_CheckType, MVT::v2f64,
/*332101*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*332103*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*332106*/              OPC_EmitMergeInputChains1_1,
/*332107*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFNMSUB231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*332121*/            /*Scope*/ 42, /*->332164*/
/*332122*/              OPC_RecordChild0, // #1 = $src1
/*332123*/              OPC_MoveChild1,
/*332124*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*332127*/              OPC_RecordMemRef,
/*332128*/              OPC_RecordNode, // #2 = 'ld' chained node
/*332129*/              OPC_CheckFoldableChainNode,
/*332130*/              OPC_RecordChild1, // #3 = $src3
/*332131*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332133*/              OPC_CheckPredicate, 9, // Predicate_load
/*332135*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*332137*/              OPC_MoveParent,
/*332138*/              OPC_RecordChild2, // #4 = $src2
/*332139*/              OPC_MoveParent,
/*332140*/              OPC_CheckChild2Same, 1,
/*332142*/              OPC_CheckType, MVT::v2f64,
/*332144*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*332146*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*332149*/              OPC_EmitMergeInputChains1_2,
/*332150*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                        // Dst: (VFNMSUB132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*332164*/            0, /*End of Scope*/
/*332165*/          /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(X86ISD::VFPEXT),// ->332327
/*332169*/            OPC_MoveChild0,
/*332170*/            OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(X86ISD::VBROADCAST),// ->332251
/*332174*/              OPC_MoveChild0,
/*332175*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*332178*/              OPC_RecordMemRef,
/*332179*/              OPC_RecordNode, // #1 = 'ld' chained node
/*332180*/              OPC_CheckFoldableChainNode,
/*332181*/              OPC_RecordChild1, // #2 = $src
/*332182*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332184*/              OPC_CheckPredicate, 9, // Predicate_load
/*332186*/              OPC_CheckType, MVT::f32,
/*332188*/              OPC_MoveParent,
/*332189*/              OPC_MoveParent,
/*332190*/              OPC_MoveParent,
/*332191*/              OPC_Scope, 34, /*->332227*/ // 2 children in Scope
/*332193*/                OPC_MoveChild2,
/*332194*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332197*/                OPC_MoveChild0,
/*332198*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*332201*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*332203*/                OPC_CheckType, MVT::v4i32,
/*332205*/                OPC_MoveParent,
/*332206*/                OPC_MoveParent,
/*332207*/                OPC_CheckType, MVT::v2f64,
/*332209*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332211*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332214*/                OPC_EmitMergeInputChains1_1,
/*332215*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86vfpext:{ *:[v2f64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTPS2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332227*/              /*Scope*/ 22, /*->332250*/
/*332228*/                OPC_RecordChild2, // #3 = $src0
/*332229*/                OPC_CheckType, MVT::v2f64,
/*332231*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332233*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*332236*/                OPC_EmitMergeInputChains1_1,
/*332237*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86vfpext:{ *:[v2f64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VCVTPS2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332250*/              0, /*End of Scope*/
/*332251*/            /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->332326
/*332254*/              OPC_RecordMemRef,
/*332255*/              OPC_RecordNode, // #1 = 'ld' chained node
/*332256*/              OPC_CheckFoldableChainNode,
/*332257*/              OPC_RecordChild1, // #2 = $src
/*332258*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332260*/              OPC_CheckPredicate, 9, // Predicate_load
/*332262*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*332264*/              OPC_MoveParent,
/*332265*/              OPC_MoveParent,
/*332266*/              OPC_Scope, 34, /*->332302*/ // 2 children in Scope
/*332268*/                OPC_MoveChild2,
/*332269*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332272*/                OPC_MoveChild0,
/*332273*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*332276*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*332278*/                OPC_CheckType, MVT::v4i32,
/*332280*/                OPC_MoveParent,
/*332281*/                OPC_MoveParent,
/*332282*/                OPC_CheckType, MVT::v2f64,
/*332284*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332286*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332289*/                OPC_EmitMergeInputChains1_1,
/*332290*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86vfpext:{ *:[v2f64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTPS2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332302*/              /*Scope*/ 22, /*->332325*/
/*332303*/                OPC_RecordChild2, // #3 = $src0
/*332304*/                OPC_CheckType, MVT::v2f64,
/*332306*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332308*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*332311*/                OPC_EmitMergeInputChains1_1,
/*332312*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86vfpext:{ *:[v2f64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTPS2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332325*/              0, /*End of Scope*/
/*332326*/            0, // EndSwitchOpcode
/*332327*/          /*SwitchOpcode*/ 41|128,1/*169*/, TARGET_VAL(X86ISD::CVTSI2P),// ->332500
/*332331*/            OPC_MoveChild0,
/*332332*/            OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(ISD::BITCAST),// ->332417
/*332336*/              OPC_MoveChild0,
/*332337*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*332340*/              OPC_RecordMemRef,
/*332341*/              OPC_RecordNode, // #1 = 'ld' chained node
/*332342*/              OPC_CheckFoldableChainNode,
/*332343*/              OPC_RecordChild1, // #2 = $src
/*332344*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332346*/              OPC_CheckPredicate, 9, // Predicate_load
/*332348*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*332350*/              OPC_CheckType, MVT::v2i64,
/*332352*/              OPC_MoveParent,
/*332353*/              OPC_CheckType, MVT::v4i32,
/*332355*/              OPC_MoveParent,
/*332356*/              OPC_MoveParent,
/*332357*/              OPC_Scope, 34, /*->332393*/ // 2 children in Scope
/*332359*/                OPC_MoveChild2,
/*332360*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332363*/                OPC_MoveChild0,
/*332364*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*332367*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*332369*/                OPC_CheckType, MVT::v4i32,
/*332371*/                OPC_MoveParent,
/*332372*/                OPC_MoveParent,
/*332373*/                OPC_CheckType, MVT::v2f64,
/*332375*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332377*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332380*/                OPC_EmitMergeInputChains1_1,
/*332381*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTDQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332393*/              /*Scope*/ 22, /*->332416*/
/*332394*/                OPC_RecordChild2, // #3 = $src0
/*332395*/                OPC_CheckType, MVT::v2f64,
/*332397*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332399*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*332402*/                OPC_EmitMergeInputChains1_1,
/*332403*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VCVTDQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332416*/              0, /*End of Scope*/
/*332417*/            /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VBROADCAST),// ->332499
/*332420*/              OPC_MoveChild0,
/*332421*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*332424*/              OPC_RecordMemRef,
/*332425*/              OPC_RecordNode, // #1 = 'ld' chained node
/*332426*/              OPC_CheckFoldableChainNode,
/*332427*/              OPC_RecordChild1, // #2 = $src
/*332428*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332430*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*332432*/              OPC_CheckType, MVT::i32,
/*332434*/              OPC_MoveParent,
/*332435*/              OPC_CheckType, MVT::v4i32,
/*332437*/              OPC_MoveParent,
/*332438*/              OPC_MoveParent,
/*332439*/              OPC_Scope, 34, /*->332475*/ // 2 children in Scope
/*332441*/                OPC_MoveChild2,
/*332442*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332445*/                OPC_MoveChild0,
/*332446*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*332449*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*332451*/                OPC_CheckType, MVT::v4i32,
/*332453*/                OPC_MoveParent,
/*332454*/                OPC_MoveParent,
/*332455*/                OPC_CheckType, MVT::v2f64,
/*332457*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332459*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332462*/                OPC_EmitMergeInputChains1_1,
/*332463*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VSintToFP:{ *:[v2f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTDQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332475*/              /*Scope*/ 22, /*->332498*/
/*332476*/                OPC_RecordChild2, // #3 = $src0
/*332477*/                OPC_CheckType, MVT::v2f64,
/*332479*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332481*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*332484*/                OPC_EmitMergeInputChains1_1,
/*332485*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VSintToFP:{ *:[v2f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VCVTDQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332498*/              0, /*End of Scope*/
/*332499*/            0, // EndSwitchOpcode
/*332500*/          /*SwitchOpcode*/ 41|128,1/*169*/, TARGET_VAL(X86ISD::CVTUI2P),// ->332673
/*332504*/            OPC_MoveChild0,
/*332505*/            OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(ISD::BITCAST),// ->332590
/*332509*/              OPC_MoveChild0,
/*332510*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*332513*/              OPC_RecordMemRef,
/*332514*/              OPC_RecordNode, // #1 = 'ld' chained node
/*332515*/              OPC_CheckFoldableChainNode,
/*332516*/              OPC_RecordChild1, // #2 = $src
/*332517*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332519*/              OPC_CheckPredicate, 9, // Predicate_load
/*332521*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*332523*/              OPC_CheckType, MVT::v2i64,
/*332525*/              OPC_MoveParent,
/*332526*/              OPC_CheckType, MVT::v4i32,
/*332528*/              OPC_MoveParent,
/*332529*/              OPC_MoveParent,
/*332530*/              OPC_Scope, 34, /*->332566*/ // 2 children in Scope
/*332532*/                OPC_MoveChild2,
/*332533*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332536*/                OPC_MoveChild0,
/*332537*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*332540*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*332542*/                OPC_CheckType, MVT::v4i32,
/*332544*/                OPC_MoveParent,
/*332545*/                OPC_MoveParent,
/*332546*/                OPC_CheckType, MVT::v2f64,
/*332548*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332550*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332553*/                OPC_EmitMergeInputChains1_1,
/*332554*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VUintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTUDQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332566*/              /*Scope*/ 22, /*->332589*/
/*332567*/                OPC_RecordChild2, // #3 = $src0
/*332568*/                OPC_CheckType, MVT::v2f64,
/*332570*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332572*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*332575*/                OPC_EmitMergeInputChains1_1,
/*332576*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VUintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VCVTUDQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332589*/              0, /*End of Scope*/
/*332590*/            /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VBROADCAST),// ->332672
/*332593*/              OPC_MoveChild0,
/*332594*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*332597*/              OPC_RecordMemRef,
/*332598*/              OPC_RecordNode, // #1 = 'ld' chained node
/*332599*/              OPC_CheckFoldableChainNode,
/*332600*/              OPC_RecordChild1, // #2 = $src
/*332601*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332603*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*332605*/              OPC_CheckType, MVT::i32,
/*332607*/              OPC_MoveParent,
/*332608*/              OPC_CheckType, MVT::v4i32,
/*332610*/              OPC_MoveParent,
/*332611*/              OPC_MoveParent,
/*332612*/              OPC_Scope, 34, /*->332648*/ // 2 children in Scope
/*332614*/                OPC_MoveChild2,
/*332615*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332618*/                OPC_MoveChild0,
/*332619*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*332622*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*332624*/                OPC_CheckType, MVT::v4i32,
/*332626*/                OPC_MoveParent,
/*332627*/                OPC_MoveParent,
/*332628*/                OPC_CheckType, MVT::v2f64,
/*332630*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332632*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332635*/                OPC_EmitMergeInputChains1_1,
/*332636*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VUintToFP:{ *:[v2f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTUDQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332648*/              /*Scope*/ 22, /*->332671*/
/*332649*/                OPC_RecordChild2, // #3 = $src0
/*332650*/                OPC_CheckType, MVT::v2f64,
/*332652*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*332654*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*332657*/                OPC_EmitMergeInputChains1_1,
/*332658*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VUintToFP:{ *:[v2f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VCVTUDQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332671*/              0, /*End of Scope*/
/*332672*/            0, // EndSwitchOpcode
/*332673*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(ISD::SINT_TO_FP),// ->332839
/*332677*/            OPC_MoveChild0,
/*332678*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->332761
/*332682*/              OPC_MoveChild0,
/*332683*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*332686*/              OPC_RecordMemRef,
/*332687*/              OPC_RecordNode, // #1 = 'ld' chained node
/*332688*/              OPC_CheckFoldableChainNode,
/*332689*/              OPC_RecordChild1, // #2 = $src
/*332690*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332692*/              OPC_CheckPredicate, 9, // Predicate_load
/*332694*/              OPC_CheckType, MVT::i64,
/*332696*/              OPC_MoveParent,
/*332697*/              OPC_CheckType, MVT::v2i64,
/*332699*/              OPC_MoveParent,
/*332700*/              OPC_MoveParent,
/*332701*/              OPC_Scope, 34, /*->332737*/ // 2 children in Scope
/*332703*/                OPC_MoveChild2,
/*332704*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332707*/                OPC_MoveChild0,
/*332708*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*332711*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*332713*/                OPC_CheckType, MVT::v4i32,
/*332715*/                OPC_MoveParent,
/*332716*/                OPC_MoveParent,
/*332717*/                OPC_CheckType, MVT::v2f64,
/*332719*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*332721*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332724*/                OPC_EmitMergeInputChains1_1,
/*332725*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (sint_to_fp:{ *:[v2f64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTQQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332737*/              /*Scope*/ 22, /*->332760*/
/*332738*/                OPC_RecordChild2, // #3 = $src0
/*332739*/                OPC_CheckType, MVT::v2f64,
/*332741*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*332743*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*332746*/                OPC_EmitMergeInputChains1_1,
/*332747*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (sint_to_fp:{ *:[v2f64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VCVTQQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332760*/              0, /*End of Scope*/
/*332761*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->332838
/*332764*/              OPC_RecordMemRef,
/*332765*/              OPC_RecordNode, // #1 = 'ld' chained node
/*332766*/              OPC_CheckFoldableChainNode,
/*332767*/              OPC_RecordChild1, // #2 = $src
/*332768*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332770*/              OPC_CheckPredicate, 9, // Predicate_load
/*332772*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*332774*/              OPC_CheckType, MVT::v2i64,
/*332776*/              OPC_MoveParent,
/*332777*/              OPC_MoveParent,
/*332778*/              OPC_Scope, 34, /*->332814*/ // 2 children in Scope
/*332780*/                OPC_MoveChild2,
/*332781*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332784*/                OPC_MoveChild0,
/*332785*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*332788*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*332790*/                OPC_CheckType, MVT::v4i32,
/*332792*/                OPC_MoveParent,
/*332793*/                OPC_MoveParent,
/*332794*/                OPC_CheckType, MVT::v2f64,
/*332796*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*332798*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332801*/                OPC_EmitMergeInputChains1_1,
/*332802*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (sint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTQQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332814*/              /*Scope*/ 22, /*->332837*/
/*332815*/                OPC_RecordChild2, // #3 = $src0
/*332816*/                OPC_CheckType, MVT::v2f64,
/*332818*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*332820*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*332823*/                OPC_EmitMergeInputChains1_1,
/*332824*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (sint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTQQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332837*/              0, /*End of Scope*/
/*332838*/            0, // EndSwitchOpcode
/*332839*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(ISD::UINT_TO_FP),// ->333005
/*332843*/            OPC_MoveChild0,
/*332844*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->332927
/*332848*/              OPC_MoveChild0,
/*332849*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*332852*/              OPC_RecordMemRef,
/*332853*/              OPC_RecordNode, // #1 = 'ld' chained node
/*332854*/              OPC_CheckFoldableChainNode,
/*332855*/              OPC_RecordChild1, // #2 = $src
/*332856*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332858*/              OPC_CheckPredicate, 9, // Predicate_load
/*332860*/              OPC_CheckType, MVT::i64,
/*332862*/              OPC_MoveParent,
/*332863*/              OPC_CheckType, MVT::v2i64,
/*332865*/              OPC_MoveParent,
/*332866*/              OPC_MoveParent,
/*332867*/              OPC_Scope, 34, /*->332903*/ // 2 children in Scope
/*332869*/                OPC_MoveChild2,
/*332870*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332873*/                OPC_MoveChild0,
/*332874*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*332877*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*332879*/                OPC_CheckType, MVT::v4i32,
/*332881*/                OPC_MoveParent,
/*332882*/                OPC_MoveParent,
/*332883*/                OPC_CheckType, MVT::v2f64,
/*332885*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*332887*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332890*/                OPC_EmitMergeInputChains1_1,
/*332891*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (uint_to_fp:{ *:[v2f64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTUQQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332903*/              /*Scope*/ 22, /*->332926*/
/*332904*/                OPC_RecordChild2, // #3 = $src0
/*332905*/                OPC_CheckType, MVT::v2f64,
/*332907*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*332909*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*332912*/                OPC_EmitMergeInputChains1_1,
/*332913*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (uint_to_fp:{ *:[v2f64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VCVTUQQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332926*/              0, /*End of Scope*/
/*332927*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->333004
/*332930*/              OPC_RecordMemRef,
/*332931*/              OPC_RecordNode, // #1 = 'ld' chained node
/*332932*/              OPC_CheckFoldableChainNode,
/*332933*/              OPC_RecordChild1, // #2 = $src
/*332934*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332936*/              OPC_CheckPredicate, 9, // Predicate_load
/*332938*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*332940*/              OPC_CheckType, MVT::v2i64,
/*332942*/              OPC_MoveParent,
/*332943*/              OPC_MoveParent,
/*332944*/              OPC_Scope, 34, /*->332980*/ // 2 children in Scope
/*332946*/                OPC_MoveChild2,
/*332947*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332950*/                OPC_MoveChild0,
/*332951*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*332954*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*332956*/                OPC_CheckType, MVT::v4i32,
/*332958*/                OPC_MoveParent,
/*332959*/                OPC_MoveParent,
/*332960*/                OPC_CheckType, MVT::v2f64,
/*332962*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*332964*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332967*/                OPC_EmitMergeInputChains1_1,
/*332968*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (uint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTUQQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332980*/              /*Scope*/ 22, /*->333003*/
/*332981*/                OPC_RecordChild2, // #3 = $src0
/*332982*/                OPC_CheckType, MVT::v2f64,
/*332984*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*332986*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*332989*/                OPC_EmitMergeInputChains1_1,
/*332990*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (uint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTUQQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333003*/              0, /*End of Scope*/
/*333004*/            0, // EndSwitchOpcode
/*333005*/          /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(X86ISD::RSQRT14),// ->333167
/*333009*/            OPC_MoveChild0,
/*333010*/            OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(X86ISD::VBROADCAST),// ->333091
/*333014*/              OPC_MoveChild0,
/*333015*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*333018*/              OPC_RecordMemRef,
/*333019*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333020*/              OPC_CheckFoldableChainNode,
/*333021*/              OPC_RecordChild1, // #2 = $src
/*333022*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333024*/              OPC_CheckPredicate, 9, // Predicate_load
/*333026*/              OPC_CheckType, MVT::f64,
/*333028*/              OPC_MoveParent,
/*333029*/              OPC_MoveParent,
/*333030*/              OPC_MoveParent,
/*333031*/              OPC_Scope, 34, /*->333067*/ // 2 children in Scope
/*333033*/                OPC_MoveChild2,
/*333034*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333037*/                OPC_MoveChild0,
/*333038*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333041*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333043*/                OPC_CheckType, MVT::v4i32,
/*333045*/                OPC_MoveParent,
/*333046*/                OPC_MoveParent,
/*333047*/                OPC_CheckType, MVT::v2f64,
/*333049*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333051*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333054*/                OPC_EmitMergeInputChains1_1,
/*333055*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rsqrt14:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRSQRT14PDZ128mbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333067*/              /*Scope*/ 22, /*->333090*/
/*333068*/                OPC_RecordChild2, // #3 = $src0
/*333069*/                OPC_CheckType, MVT::v2f64,
/*333071*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333073*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*333076*/                OPC_EmitMergeInputChains1_1,
/*333077*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rsqrt14:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VRSQRT14PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333090*/              0, /*End of Scope*/
/*333091*/            /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->333166
/*333094*/              OPC_RecordMemRef,
/*333095*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333096*/              OPC_CheckFoldableChainNode,
/*333097*/              OPC_RecordChild1, // #2 = $src
/*333098*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333100*/              OPC_CheckPredicate, 9, // Predicate_load
/*333102*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*333104*/              OPC_MoveParent,
/*333105*/              OPC_MoveParent,
/*333106*/              OPC_Scope, 34, /*->333142*/ // 2 children in Scope
/*333108*/                OPC_MoveChild2,
/*333109*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333112*/                OPC_MoveChild0,
/*333113*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333116*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333118*/                OPC_CheckType, MVT::v4i32,
/*333120*/                OPC_MoveParent,
/*333121*/                OPC_MoveParent,
/*333122*/                OPC_CheckType, MVT::v2f64,
/*333124*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333126*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333129*/                OPC_EmitMergeInputChains1_1,
/*333130*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rsqrt14:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRSQRT14PDZ128mkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333142*/              /*Scope*/ 22, /*->333165*/
/*333143*/                OPC_RecordChild2, // #3 = $src0
/*333144*/                OPC_CheckType, MVT::v2f64,
/*333146*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333148*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*333151*/                OPC_EmitMergeInputChains1_1,
/*333152*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rsqrt14:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333165*/              0, /*End of Scope*/
/*333166*/            0, // EndSwitchOpcode
/*333167*/          /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(X86ISD::RCP14),// ->333329
/*333171*/            OPC_MoveChild0,
/*333172*/            OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(X86ISD::VBROADCAST),// ->333253
/*333176*/              OPC_MoveChild0,
/*333177*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*333180*/              OPC_RecordMemRef,
/*333181*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333182*/              OPC_CheckFoldableChainNode,
/*333183*/              OPC_RecordChild1, // #2 = $src
/*333184*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333186*/              OPC_CheckPredicate, 9, // Predicate_load
/*333188*/              OPC_CheckType, MVT::f64,
/*333190*/              OPC_MoveParent,
/*333191*/              OPC_MoveParent,
/*333192*/              OPC_MoveParent,
/*333193*/              OPC_Scope, 34, /*->333229*/ // 2 children in Scope
/*333195*/                OPC_MoveChild2,
/*333196*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333199*/                OPC_MoveChild0,
/*333200*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333203*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333205*/                OPC_CheckType, MVT::v4i32,
/*333207*/                OPC_MoveParent,
/*333208*/                OPC_MoveParent,
/*333209*/                OPC_CheckType, MVT::v2f64,
/*333211*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333213*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333216*/                OPC_EmitMergeInputChains1_1,
/*333217*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rcp14:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRCP14PDZ128mbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333229*/              /*Scope*/ 22, /*->333252*/
/*333230*/                OPC_RecordChild2, // #3 = $src0
/*333231*/                OPC_CheckType, MVT::v2f64,
/*333233*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333235*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*333238*/                OPC_EmitMergeInputChains1_1,
/*333239*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rcp14:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VRCP14PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333252*/              0, /*End of Scope*/
/*333253*/            /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->333328
/*333256*/              OPC_RecordMemRef,
/*333257*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333258*/              OPC_CheckFoldableChainNode,
/*333259*/              OPC_RecordChild1, // #2 = $src
/*333260*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333262*/              OPC_CheckPredicate, 9, // Predicate_load
/*333264*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*333266*/              OPC_MoveParent,
/*333267*/              OPC_MoveParent,
/*333268*/              OPC_Scope, 34, /*->333304*/ // 2 children in Scope
/*333270*/                OPC_MoveChild2,
/*333271*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333274*/                OPC_MoveChild0,
/*333275*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333278*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333280*/                OPC_CheckType, MVT::v4i32,
/*333282*/                OPC_MoveParent,
/*333283*/                OPC_MoveParent,
/*333284*/                OPC_CheckType, MVT::v2f64,
/*333286*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333288*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333291*/                OPC_EmitMergeInputChains1_1,
/*333292*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rcp14:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRCP14PDZ128mkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333304*/              /*Scope*/ 22, /*->333327*/
/*333305*/                OPC_RecordChild2, // #3 = $src0
/*333306*/                OPC_CheckType, MVT::v2f64,
/*333308*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333310*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*333313*/                OPC_EmitMergeInputChains1_1,
/*333314*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rcp14:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333327*/              0, /*End of Scope*/
/*333328*/            0, // EndSwitchOpcode
/*333329*/          /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(ISD::FSQRT),// ->333491
/*333333*/            OPC_MoveChild0,
/*333334*/            OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(X86ISD::VBROADCAST),// ->333415
/*333338*/              OPC_MoveChild0,
/*333339*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*333342*/              OPC_RecordMemRef,
/*333343*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333344*/              OPC_CheckFoldableChainNode,
/*333345*/              OPC_RecordChild1, // #2 = $src
/*333346*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333348*/              OPC_CheckPredicate, 9, // Predicate_load
/*333350*/              OPC_CheckType, MVT::f64,
/*333352*/              OPC_MoveParent,
/*333353*/              OPC_MoveParent,
/*333354*/              OPC_MoveParent,
/*333355*/              OPC_Scope, 34, /*->333391*/ // 2 children in Scope
/*333357*/                OPC_MoveChild2,
/*333358*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333361*/                OPC_MoveChild0,
/*333362*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333365*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333367*/                OPC_CheckType, MVT::v4i32,
/*333369*/                OPC_MoveParent,
/*333370*/                OPC_MoveParent,
/*333371*/                OPC_CheckType, MVT::v2f64,
/*333373*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333375*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333378*/                OPC_EmitMergeInputChains1_1,
/*333379*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsqrt:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSQRTPDZ128mbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333391*/              /*Scope*/ 22, /*->333414*/
/*333392*/                OPC_RecordChild2, // #3 = $src0
/*333393*/                OPC_CheckType, MVT::v2f64,
/*333395*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333397*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*333400*/                OPC_EmitMergeInputChains1_1,
/*333401*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsqrt:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VSQRTPDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333414*/              0, /*End of Scope*/
/*333415*/            /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->333490
/*333418*/              OPC_RecordMemRef,
/*333419*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333420*/              OPC_CheckFoldableChainNode,
/*333421*/              OPC_RecordChild1, // #2 = $src
/*333422*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333424*/              OPC_CheckPredicate, 9, // Predicate_load
/*333426*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*333428*/              OPC_MoveParent,
/*333429*/              OPC_MoveParent,
/*333430*/              OPC_Scope, 34, /*->333466*/ // 2 children in Scope
/*333432*/                OPC_MoveChild2,
/*333433*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333436*/                OPC_MoveChild0,
/*333437*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333440*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333442*/                OPC_CheckType, MVT::v4i32,
/*333444*/                OPC_MoveParent,
/*333445*/                OPC_MoveParent,
/*333446*/                OPC_CheckType, MVT::v2f64,
/*333448*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333450*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333453*/                OPC_EmitMergeInputChains1_1,
/*333454*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsqrt:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VSQRTPDZ128mkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333466*/              /*Scope*/ 22, /*->333489*/
/*333467*/                OPC_RecordChild2, // #3 = $src0
/*333468*/                OPC_CheckType, MVT::v2f64,
/*333470*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333472*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*333475*/                OPC_EmitMergeInputChains1_1,
/*333476*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsqrt:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*333489*/              0, /*End of Scope*/
/*333490*/            0, // EndSwitchOpcode
/*333491*/          /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(ISD::FFLOOR),// ->333669
/*333495*/            OPC_MoveChild0,
/*333496*/            OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(X86ISD::VBROADCAST),// ->333585
/*333500*/              OPC_MoveChild0,
/*333501*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*333504*/              OPC_RecordMemRef,
/*333505*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333506*/              OPC_CheckFoldableChainNode,
/*333507*/              OPC_RecordChild1, // #2 = $src
/*333508*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333510*/              OPC_CheckPredicate, 9, // Predicate_load
/*333512*/              OPC_CheckType, MVT::f64,
/*333514*/              OPC_MoveParent,
/*333515*/              OPC_MoveParent,
/*333516*/              OPC_MoveParent,
/*333517*/              OPC_Scope, 38, /*->333557*/ // 2 children in Scope
/*333519*/                OPC_MoveChild2,
/*333520*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333523*/                OPC_MoveChild0,
/*333524*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333527*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333529*/                OPC_CheckType, MVT::v4i32,
/*333531*/                OPC_MoveParent,
/*333532*/                OPC_MoveParent,
/*333533*/                OPC_CheckType, MVT::v2f64,
/*333535*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333537*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333540*/                OPC_EmitMergeInputChains1_1,
/*333541*/                OPC_EmitInteger, MVT::i32, 9, 
/*333544*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ffloor:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*333557*/              /*Scope*/ 26, /*->333584*/
/*333558*/                OPC_RecordChild2, // #3 = $dst
/*333559*/                OPC_CheckType, MVT::v2f64,
/*333561*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333563*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*333566*/                OPC_EmitMergeInputChains1_1,
/*333567*/                OPC_EmitInteger, MVT::i32, 9, 
/*333570*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ffloor:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*333584*/              0, /*End of Scope*/
/*333585*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->333668
/*333588*/              OPC_RecordMemRef,
/*333589*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333590*/              OPC_CheckFoldableChainNode,
/*333591*/              OPC_RecordChild1, // #2 = $src
/*333592*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333594*/              OPC_CheckPredicate, 9, // Predicate_load
/*333596*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*333598*/              OPC_MoveParent,
/*333599*/              OPC_MoveParent,
/*333600*/              OPC_Scope, 38, /*->333640*/ // 2 children in Scope
/*333602*/                OPC_MoveChild2,
/*333603*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333606*/                OPC_MoveChild0,
/*333607*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333610*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333612*/                OPC_CheckType, MVT::v4i32,
/*333614*/                OPC_MoveParent,
/*333615*/                OPC_MoveParent,
/*333616*/                OPC_CheckType, MVT::v2f64,
/*333618*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333620*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333623*/                OPC_EmitMergeInputChains1_1,
/*333624*/                OPC_EmitInteger, MVT::i32, 9, 
/*333627*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ffloor:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*333640*/              /*Scope*/ 26, /*->333667*/
/*333641*/                OPC_RecordChild2, // #3 = $dst
/*333642*/                OPC_CheckType, MVT::v2f64,
/*333644*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333646*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*333649*/                OPC_EmitMergeInputChains1_1,
/*333650*/                OPC_EmitInteger, MVT::i32, 9, 
/*333653*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ffloor:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*333667*/              0, /*End of Scope*/
/*333668*/            0, // EndSwitchOpcode
/*333669*/          /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(ISD::FNEARBYINT),// ->333847
/*333673*/            OPC_MoveChild0,
/*333674*/            OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(X86ISD::VBROADCAST),// ->333763
/*333678*/              OPC_MoveChild0,
/*333679*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*333682*/              OPC_RecordMemRef,
/*333683*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333684*/              OPC_CheckFoldableChainNode,
/*333685*/              OPC_RecordChild1, // #2 = $src
/*333686*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333688*/              OPC_CheckPredicate, 9, // Predicate_load
/*333690*/              OPC_CheckType, MVT::f64,
/*333692*/              OPC_MoveParent,
/*333693*/              OPC_MoveParent,
/*333694*/              OPC_MoveParent,
/*333695*/              OPC_Scope, 38, /*->333735*/ // 2 children in Scope
/*333697*/                OPC_MoveChild2,
/*333698*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333701*/                OPC_MoveChild0,
/*333702*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333705*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333707*/                OPC_CheckType, MVT::v4i32,
/*333709*/                OPC_MoveParent,
/*333710*/                OPC_MoveParent,
/*333711*/                OPC_CheckType, MVT::v2f64,
/*333713*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333715*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333718*/                OPC_EmitMergeInputChains1_1,
/*333719*/                OPC_EmitInteger, MVT::i32, 12, 
/*333722*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fnearbyint:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*333735*/              /*Scope*/ 26, /*->333762*/
/*333736*/                OPC_RecordChild2, // #3 = $dst
/*333737*/                OPC_CheckType, MVT::v2f64,
/*333739*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333741*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*333744*/                OPC_EmitMergeInputChains1_1,
/*333745*/                OPC_EmitInteger, MVT::i32, 12, 
/*333748*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fnearbyint:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*333762*/              0, /*End of Scope*/
/*333763*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->333846
/*333766*/              OPC_RecordMemRef,
/*333767*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333768*/              OPC_CheckFoldableChainNode,
/*333769*/              OPC_RecordChild1, // #2 = $src
/*333770*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333772*/              OPC_CheckPredicate, 9, // Predicate_load
/*333774*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*333776*/              OPC_MoveParent,
/*333777*/              OPC_MoveParent,
/*333778*/              OPC_Scope, 38, /*->333818*/ // 2 children in Scope
/*333780*/                OPC_MoveChild2,
/*333781*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333784*/                OPC_MoveChild0,
/*333785*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333788*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333790*/                OPC_CheckType, MVT::v4i32,
/*333792*/                OPC_MoveParent,
/*333793*/                OPC_MoveParent,
/*333794*/                OPC_CheckType, MVT::v2f64,
/*333796*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333798*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333801*/                OPC_EmitMergeInputChains1_1,
/*333802*/                OPC_EmitInteger, MVT::i32, 12, 
/*333805*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fnearbyint:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*333818*/              /*Scope*/ 26, /*->333845*/
/*333819*/                OPC_RecordChild2, // #3 = $dst
/*333820*/                OPC_CheckType, MVT::v2f64,
/*333822*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333824*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*333827*/                OPC_EmitMergeInputChains1_1,
/*333828*/                OPC_EmitInteger, MVT::i32, 12, 
/*333831*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fnearbyint:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*333845*/              0, /*End of Scope*/
/*333846*/            0, // EndSwitchOpcode
/*333847*/          /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(ISD::FCEIL),// ->334025
/*333851*/            OPC_MoveChild0,
/*333852*/            OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(X86ISD::VBROADCAST),// ->333941
/*333856*/              OPC_MoveChild0,
/*333857*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*333860*/              OPC_RecordMemRef,
/*333861*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333862*/              OPC_CheckFoldableChainNode,
/*333863*/              OPC_RecordChild1, // #2 = $src
/*333864*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333866*/              OPC_CheckPredicate, 9, // Predicate_load
/*333868*/              OPC_CheckType, MVT::f64,
/*333870*/              OPC_MoveParent,
/*333871*/              OPC_MoveParent,
/*333872*/              OPC_MoveParent,
/*333873*/              OPC_Scope, 38, /*->333913*/ // 2 children in Scope
/*333875*/                OPC_MoveChild2,
/*333876*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333879*/                OPC_MoveChild0,
/*333880*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333883*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333885*/                OPC_CheckType, MVT::v4i32,
/*333887*/                OPC_MoveParent,
/*333888*/                OPC_MoveParent,
/*333889*/                OPC_CheckType, MVT::v2f64,
/*333891*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333893*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333896*/                OPC_EmitMergeInputChains1_1,
/*333897*/                OPC_EmitInteger, MVT::i32, 10, 
/*333900*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fceil:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*333913*/              /*Scope*/ 26, /*->333940*/
/*333914*/                OPC_RecordChild2, // #3 = $dst
/*333915*/                OPC_CheckType, MVT::v2f64,
/*333917*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333919*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*333922*/                OPC_EmitMergeInputChains1_1,
/*333923*/                OPC_EmitInteger, MVT::i32, 10, 
/*333926*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fceil:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*333940*/              0, /*End of Scope*/
/*333941*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->334024
/*333944*/              OPC_RecordMemRef,
/*333945*/              OPC_RecordNode, // #1 = 'ld' chained node
/*333946*/              OPC_CheckFoldableChainNode,
/*333947*/              OPC_RecordChild1, // #2 = $src
/*333948*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333950*/              OPC_CheckPredicate, 9, // Predicate_load
/*333952*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*333954*/              OPC_MoveParent,
/*333955*/              OPC_MoveParent,
/*333956*/              OPC_Scope, 38, /*->333996*/ // 2 children in Scope
/*333958*/                OPC_MoveChild2,
/*333959*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*333962*/                OPC_MoveChild0,
/*333963*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*333966*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*333968*/                OPC_CheckType, MVT::v4i32,
/*333970*/                OPC_MoveParent,
/*333971*/                OPC_MoveParent,
/*333972*/                OPC_CheckType, MVT::v2f64,
/*333974*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*333976*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*333979*/                OPC_EmitMergeInputChains1_1,
/*333980*/                OPC_EmitInteger, MVT::i32, 10, 
/*333983*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fceil:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*333996*/              /*Scope*/ 26, /*->334023*/
/*333997*/                OPC_RecordChild2, // #3 = $dst
/*333998*/                OPC_CheckType, MVT::v2f64,
/*334000*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334002*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*334005*/                OPC_EmitMergeInputChains1_1,
/*334006*/                OPC_EmitInteger, MVT::i32, 10, 
/*334009*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fceil:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*334023*/              0, /*End of Scope*/
/*334024*/            0, // EndSwitchOpcode
/*334025*/          /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(ISD::FRINT),// ->334203
/*334029*/            OPC_MoveChild0,
/*334030*/            OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(X86ISD::VBROADCAST),// ->334119
/*334034*/              OPC_MoveChild0,
/*334035*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*334038*/              OPC_RecordMemRef,
/*334039*/              OPC_RecordNode, // #1 = 'ld' chained node
/*334040*/              OPC_CheckFoldableChainNode,
/*334041*/              OPC_RecordChild1, // #2 = $src
/*334042*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334044*/              OPC_CheckPredicate, 9, // Predicate_load
/*334046*/              OPC_CheckType, MVT::f64,
/*334048*/              OPC_MoveParent,
/*334049*/              OPC_MoveParent,
/*334050*/              OPC_MoveParent,
/*334051*/              OPC_Scope, 38, /*->334091*/ // 2 children in Scope
/*334053*/                OPC_MoveChild2,
/*334054*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334057*/                OPC_MoveChild0,
/*334058*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334061*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334063*/                OPC_CheckType, MVT::v4i32,
/*334065*/                OPC_MoveParent,
/*334066*/                OPC_MoveParent,
/*334067*/                OPC_CheckType, MVT::v2f64,
/*334069*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334071*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*334074*/                OPC_EmitMergeInputChains1_1,
/*334075*/                OPC_EmitInteger, MVT::i32, 4, 
/*334078*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (frint:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*334091*/              /*Scope*/ 26, /*->334118*/
/*334092*/                OPC_RecordChild2, // #3 = $dst
/*334093*/                OPC_CheckType, MVT::v2f64,
/*334095*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334097*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*334100*/                OPC_EmitMergeInputChains1_1,
/*334101*/                OPC_EmitInteger, MVT::i32, 4, 
/*334104*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (frint:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*334118*/              0, /*End of Scope*/
/*334119*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->334202
/*334122*/              OPC_RecordMemRef,
/*334123*/              OPC_RecordNode, // #1 = 'ld' chained node
/*334124*/              OPC_CheckFoldableChainNode,
/*334125*/              OPC_RecordChild1, // #2 = $src
/*334126*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334128*/              OPC_CheckPredicate, 9, // Predicate_load
/*334130*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*334132*/              OPC_MoveParent,
/*334133*/              OPC_MoveParent,
/*334134*/              OPC_Scope, 38, /*->334174*/ // 2 children in Scope
/*334136*/                OPC_MoveChild2,
/*334137*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334140*/                OPC_MoveChild0,
/*334141*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334144*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334146*/                OPC_CheckType, MVT::v4i32,
/*334148*/                OPC_MoveParent,
/*334149*/                OPC_MoveParent,
/*334150*/                OPC_CheckType, MVT::v2f64,
/*334152*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334154*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*334157*/                OPC_EmitMergeInputChains1_1,
/*334158*/                OPC_EmitInteger, MVT::i32, 4, 
/*334161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (frint:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*334174*/              /*Scope*/ 26, /*->334201*/
/*334175*/                OPC_RecordChild2, // #3 = $dst
/*334176*/                OPC_CheckType, MVT::v2f64,
/*334178*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334180*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*334183*/                OPC_EmitMergeInputChains1_1,
/*334184*/                OPC_EmitInteger, MVT::i32, 4, 
/*334187*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (frint:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*334201*/              0, /*End of Scope*/
/*334202*/            0, // EndSwitchOpcode
/*334203*/          /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(ISD::FTRUNC),// ->334381
/*334207*/            OPC_MoveChild0,
/*334208*/            OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(X86ISD::VBROADCAST),// ->334297
/*334212*/              OPC_MoveChild0,
/*334213*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*334216*/              OPC_RecordMemRef,
/*334217*/              OPC_RecordNode, // #1 = 'ld' chained node
/*334218*/              OPC_CheckFoldableChainNode,
/*334219*/              OPC_RecordChild1, // #2 = $src
/*334220*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334222*/              OPC_CheckPredicate, 9, // Predicate_load
/*334224*/              OPC_CheckType, MVT::f64,
/*334226*/              OPC_MoveParent,
/*334227*/              OPC_MoveParent,
/*334228*/              OPC_MoveParent,
/*334229*/              OPC_Scope, 38, /*->334269*/ // 2 children in Scope
/*334231*/                OPC_MoveChild2,
/*334232*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334235*/                OPC_MoveChild0,
/*334236*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334239*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334241*/                OPC_CheckType, MVT::v4i32,
/*334243*/                OPC_MoveParent,
/*334244*/                OPC_MoveParent,
/*334245*/                OPC_CheckType, MVT::v2f64,
/*334247*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334249*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*334252*/                OPC_EmitMergeInputChains1_1,
/*334253*/                OPC_EmitInteger, MVT::i32, 11, 
/*334256*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ftrunc:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*334269*/              /*Scope*/ 26, /*->334296*/
/*334270*/                OPC_RecordChild2, // #3 = $dst
/*334271*/                OPC_CheckType, MVT::v2f64,
/*334273*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334275*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*334278*/                OPC_EmitMergeInputChains1_1,
/*334279*/                OPC_EmitInteger, MVT::i32, 11, 
/*334282*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ftrunc:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*334296*/              0, /*End of Scope*/
/*334297*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->334380
/*334300*/              OPC_RecordMemRef,
/*334301*/              OPC_RecordNode, // #1 = 'ld' chained node
/*334302*/              OPC_CheckFoldableChainNode,
/*334303*/              OPC_RecordChild1, // #2 = $src
/*334304*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334306*/              OPC_CheckPredicate, 9, // Predicate_load
/*334308*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*334310*/              OPC_MoveParent,
/*334311*/              OPC_MoveParent,
/*334312*/              OPC_Scope, 38, /*->334352*/ // 2 children in Scope
/*334314*/                OPC_MoveChild2,
/*334315*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334318*/                OPC_MoveChild0,
/*334319*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334322*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334324*/                OPC_CheckType, MVT::v4i32,
/*334326*/                OPC_MoveParent,
/*334327*/                OPC_MoveParent,
/*334328*/                OPC_CheckType, MVT::v2f64,
/*334330*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334332*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*334335*/                OPC_EmitMergeInputChains1_1,
/*334336*/                OPC_EmitInteger, MVT::i32, 11, 
/*334339*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ftrunc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*334352*/              /*Scope*/ 26, /*->334379*/
/*334353*/                OPC_RecordChild2, // #3 = $dst
/*334354*/                OPC_CheckType, MVT::v2f64,
/*334356*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334358*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*334361*/                OPC_EmitMergeInputChains1_1,
/*334362*/                OPC_EmitInteger, MVT::i32, 11, 
/*334365*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ftrunc:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*334379*/              0, /*End of Scope*/
/*334380*/            0, // EndSwitchOpcode
/*334381*/          /*SwitchOpcode*/ 101|128,1/*229*/, TARGET_VAL(X86ISD::VBROADCAST),// ->334614
/*334385*/            OPC_MoveChild0,
/*334386*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->334469
/*334390*/              OPC_MoveChild0,
/*334391*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*334394*/              OPC_RecordMemRef,
/*334395*/              OPC_RecordNode, // #1 = 'ld' chained node
/*334396*/              OPC_CheckFoldableChainNode,
/*334397*/              OPC_RecordChild1, // #2 = $src
/*334398*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334400*/              OPC_CheckPredicate, 9, // Predicate_load
/*334402*/              OPC_CheckType, MVT::f64,
/*334404*/              OPC_MoveParent,
/*334405*/              OPC_CheckType, MVT::v2f64,
/*334407*/              OPC_MoveParent,
/*334408*/              OPC_MoveParent,
/*334409*/              OPC_Scope, 34, /*->334445*/ // 2 children in Scope
/*334411*/                OPC_MoveChild2,
/*334412*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334415*/                OPC_MoveChild0,
/*334416*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334419*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334421*/                OPC_CheckType, MVT::v4i32,
/*334423*/                OPC_MoveParent,
/*334424*/                OPC_MoveParent,
/*334425*/                OPC_CheckType, MVT::v2f64,
/*334427*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*334429*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*334432*/                OPC_EmitMergeInputChains1_1,
/*334433*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMOVDDUPZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*334445*/              /*Scope*/ 22, /*->334468*/
/*334446*/                OPC_RecordChild2, // #3 = $src0
/*334447*/                OPC_CheckType, MVT::v2f64,
/*334449*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*334451*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*334454*/                OPC_EmitMergeInputChains1_1,
/*334455*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VMOVDDUPZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*334468*/              0, /*End of Scope*/
/*334469*/            /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(ISD::LOAD),// ->334613
/*334473*/              OPC_RecordMemRef,
/*334474*/              OPC_RecordNode, // #1 = 'ld' chained node
/*334475*/              OPC_CheckFoldableChainNode,
/*334476*/              OPC_RecordChild1, // #2 = $src
/*334477*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334479*/              OPC_CheckPredicate, 9, // Predicate_load
/*334481*/              OPC_SwitchType /*2 cases */, 62, MVT::f64,// ->334546
/*334484*/                OPC_MoveParent,
/*334485*/                OPC_MoveParent,
/*334486*/                OPC_Scope, 34, /*->334522*/ // 2 children in Scope
/*334488*/                  OPC_MoveChild2,
/*334489*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334492*/                  OPC_MoveChild0,
/*334493*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334496*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334498*/                  OPC_CheckType, MVT::v4i32,
/*334500*/                  OPC_MoveParent,
/*334501*/                  OPC_MoveParent,
/*334502*/                  OPC_CheckType, MVT::v2f64,
/*334504*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334506*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*334509*/                  OPC_EmitMergeInputChains1_1,
/*334510*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VMOVDDUPZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*334522*/                /*Scope*/ 22, /*->334545*/
/*334523*/                  OPC_RecordChild2, // #3 = $src0
/*334524*/                  OPC_CheckType, MVT::v2f64,
/*334526*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334528*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*334531*/                  OPC_EmitMergeInputChains1_1,
/*334532*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                            // Dst: (VMOVDDUPZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*334545*/                0, /*End of Scope*/
/*334546*/              /*SwitchType*/ 64, MVT::v2f64,// ->334612
/*334548*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*334550*/                OPC_MoveParent,
/*334551*/                OPC_MoveParent,
/*334552*/                OPC_Scope, 34, /*->334588*/ // 2 children in Scope
/*334554*/                  OPC_MoveChild2,
/*334555*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334558*/                  OPC_MoveChild0,
/*334559*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334562*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334564*/                  OPC_CheckType, MVT::v4i32,
/*334566*/                  OPC_MoveParent,
/*334567*/                  OPC_MoveParent,
/*334568*/                  OPC_CheckType, MVT::v2f64,
/*334570*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334572*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*334575*/                  OPC_EmitMergeInputChains1_1,
/*334576*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VMOVDDUPZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*334588*/                /*Scope*/ 22, /*->334611*/
/*334589*/                  OPC_RecordChild2, // #3 = $src0
/*334590*/                  OPC_CheckType, MVT::v2f64,
/*334592*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*334594*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*334597*/                  OPC_EmitMergeInputChains1_1,
/*334598*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                            // Dst: (VMOVDDUPZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*334611*/                0, /*End of Scope*/
/*334612*/              0, // EndSwitchType
/*334613*/            0, // EndSwitchOpcode
/*334614*/          /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::UNPCKH),// ->334781
/*334618*/            OPC_RecordChild0, // #1 = $src1
/*334619*/            OPC_MoveChild1,
/*334620*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->334703
/*334624*/              OPC_MoveChild0,
/*334625*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*334628*/              OPC_RecordMemRef,
/*334629*/              OPC_RecordNode, // #2 = 'ld' chained node
/*334630*/              OPC_CheckFoldableChainNode,
/*334631*/              OPC_RecordChild1, // #3 = $src2
/*334632*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334634*/              OPC_CheckPredicate, 9, // Predicate_load
/*334636*/              OPC_CheckType, MVT::f64,
/*334638*/              OPC_MoveParent,
/*334639*/              OPC_MoveParent,
/*334640*/              OPC_MoveParent,
/*334641*/              OPC_Scope, 35, /*->334678*/ // 2 children in Scope
/*334643*/                OPC_MoveChild2,
/*334644*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334647*/                OPC_MoveChild0,
/*334648*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334651*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334653*/                OPC_CheckType, MVT::v4i32,
/*334655*/                OPC_MoveParent,
/*334656*/                OPC_MoveParent,
/*334657*/                OPC_CheckType, MVT::v2f64,
/*334659*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*334661*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*334664*/                OPC_EmitMergeInputChains1_2,
/*334665*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VUNPCKHPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*334678*/              /*Scope*/ 23, /*->334702*/
/*334679*/                OPC_RecordChild2, // #4 = $src0
/*334680*/                OPC_CheckType, MVT::v2f64,
/*334682*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*334684*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*334687*/                OPC_EmitMergeInputChains1_2,
/*334688*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VUNPCKHPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*334702*/              0, /*End of Scope*/
/*334703*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->334780
/*334706*/              OPC_RecordMemRef,
/*334707*/              OPC_RecordNode, // #2 = 'ld' chained node
/*334708*/              OPC_CheckFoldableChainNode,
/*334709*/              OPC_RecordChild1, // #3 = $src2
/*334710*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334712*/              OPC_CheckPredicate, 9, // Predicate_load
/*334714*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*334716*/              OPC_MoveParent,
/*334717*/              OPC_MoveParent,
/*334718*/              OPC_Scope, 35, /*->334755*/ // 2 children in Scope
/*334720*/                OPC_MoveChild2,
/*334721*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334724*/                OPC_MoveChild0,
/*334725*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334728*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334730*/                OPC_CheckType, MVT::v4i32,
/*334732*/                OPC_MoveParent,
/*334733*/                OPC_MoveParent,
/*334734*/                OPC_CheckType, MVT::v2f64,
/*334736*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*334738*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*334741*/                OPC_EmitMergeInputChains1_2,
/*334742*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VUNPCKHPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*334755*/              /*Scope*/ 23, /*->334779*/
/*334756*/                OPC_RecordChild2, // #4 = $src0
/*334757*/                OPC_CheckType, MVT::v2f64,
/*334759*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*334761*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*334764*/                OPC_EmitMergeInputChains1_2,
/*334765*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*334779*/              0, /*End of Scope*/
/*334780*/            0, // EndSwitchOpcode
/*334781*/          /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::UNPCKL),// ->334948
/*334785*/            OPC_RecordChild0, // #1 = $src1
/*334786*/            OPC_MoveChild1,
/*334787*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->334870
/*334791*/              OPC_MoveChild0,
/*334792*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*334795*/              OPC_RecordMemRef,
/*334796*/              OPC_RecordNode, // #2 = 'ld' chained node
/*334797*/              OPC_CheckFoldableChainNode,
/*334798*/              OPC_RecordChild1, // #3 = $src2
/*334799*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334801*/              OPC_CheckPredicate, 9, // Predicate_load
/*334803*/              OPC_CheckType, MVT::f64,
/*334805*/              OPC_MoveParent,
/*334806*/              OPC_MoveParent,
/*334807*/              OPC_MoveParent,
/*334808*/              OPC_Scope, 35, /*->334845*/ // 2 children in Scope
/*334810*/                OPC_MoveChild2,
/*334811*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334814*/                OPC_MoveChild0,
/*334815*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334818*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334820*/                OPC_CheckType, MVT::v4i32,
/*334822*/                OPC_MoveParent,
/*334823*/                OPC_MoveParent,
/*334824*/                OPC_CheckType, MVT::v2f64,
/*334826*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*334828*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*334831*/                OPC_EmitMergeInputChains1_2,
/*334832*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VUNPCKLPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*334845*/              /*Scope*/ 23, /*->334869*/
/*334846*/                OPC_RecordChild2, // #4 = $src0
/*334847*/                OPC_CheckType, MVT::v2f64,
/*334849*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*334851*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*334854*/                OPC_EmitMergeInputChains1_2,
/*334855*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VUNPCKLPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*334869*/              0, /*End of Scope*/
/*334870*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->334947
/*334873*/              OPC_RecordMemRef,
/*334874*/              OPC_RecordNode, // #2 = 'ld' chained node
/*334875*/              OPC_CheckFoldableChainNode,
/*334876*/              OPC_RecordChild1, // #3 = $src2
/*334877*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334879*/              OPC_CheckPredicate, 9, // Predicate_load
/*334881*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*334883*/              OPC_MoveParent,
/*334884*/              OPC_MoveParent,
/*334885*/              OPC_Scope, 35, /*->334922*/ // 2 children in Scope
/*334887*/                OPC_MoveChild2,
/*334888*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334891*/                OPC_MoveChild0,
/*334892*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334895*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334897*/                OPC_CheckType, MVT::v4i32,
/*334899*/                OPC_MoveParent,
/*334900*/                OPC_MoveParent,
/*334901*/                OPC_CheckType, MVT::v2f64,
/*334903*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*334905*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*334908*/                OPC_EmitMergeInputChains1_2,
/*334909*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VUNPCKLPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*334922*/              /*Scope*/ 23, /*->334946*/
/*334923*/                OPC_RecordChild2, // #4 = $src0
/*334924*/                OPC_CheckType, MVT::v2f64,
/*334926*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*334928*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*334931*/                OPC_EmitMergeInputChains1_2,
/*334932*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*334946*/              0, /*End of Scope*/
/*334947*/            0, // EndSwitchOpcode
/*334948*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::EXPAND),// ->335027
/*334951*/            OPC_MoveChild0,
/*334952*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*334955*/            OPC_RecordMemRef,
/*334956*/            OPC_RecordNode, // #1 = 'ld' chained node
/*334957*/            OPC_CheckFoldableChainNode,
/*334958*/            OPC_RecordChild1, // #2 = $src1
/*334959*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334961*/            OPC_CheckPredicate, 9, // Predicate_load
/*334963*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*334965*/            OPC_MoveParent,
/*334966*/            OPC_MoveParent,
/*334967*/            OPC_Scope, 34, /*->335003*/ // 2 children in Scope
/*334969*/              OPC_MoveChild2,
/*334970*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*334973*/              OPC_MoveChild0,
/*334974*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*334977*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*334979*/              OPC_CheckType, MVT::v4i32,
/*334981*/              OPC_MoveParent,
/*334982*/              OPC_MoveParent,
/*334983*/              OPC_CheckType, MVT::v2f64,
/*334985*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*334987*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*334990*/              OPC_EmitMergeInputChains1_1,
/*334991*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86expand:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VEXPANDPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*335003*/            /*Scope*/ 22, /*->335026*/
/*335004*/              OPC_RecordChild2, // #3 = $src0
/*335005*/              OPC_CheckType, MVT::v2f64,
/*335007*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*335009*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*335012*/              OPC_EmitMergeInputChains1_1,
/*335013*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86expand:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VEXPANDPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*335026*/            0, /*End of Scope*/
/*335027*/          /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::LOAD),// ->335169
/*335031*/            OPC_RecordMemRef,
/*335032*/            OPC_RecordNode, // #1 = 'ld' chained node
/*335033*/            OPC_CheckFoldableChainNode,
/*335034*/            OPC_RecordChild1, // #2 = $src
/*335035*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335037*/            OPC_CheckPredicate, 9, // Predicate_load
/*335039*/            OPC_Scope, 37, /*->335078*/ // 4 children in Scope
/*335041*/              OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*335043*/              OPC_MoveParent,
/*335044*/              OPC_MoveChild2,
/*335045*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335048*/              OPC_MoveChild0,
/*335049*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335052*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335054*/              OPC_CheckType, MVT::v4i32,
/*335056*/              OPC_MoveParent,
/*335057*/              OPC_MoveParent,
/*335058*/              OPC_CheckType, MVT::v2f64,
/*335060*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*335062*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*335065*/              OPC_EmitMergeInputChains1_1,
/*335066*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VMOVAPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*335078*/            /*Scope*/ 37, /*->335116*/
/*335079*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*335081*/              OPC_MoveParent,
/*335082*/              OPC_MoveChild2,
/*335083*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335086*/              OPC_MoveChild0,
/*335087*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335090*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335092*/              OPC_CheckType, MVT::v4i32,
/*335094*/              OPC_MoveParent,
/*335095*/              OPC_MoveParent,
/*335096*/              OPC_CheckType, MVT::v2f64,
/*335098*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*335100*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*335103*/              OPC_EmitMergeInputChains1_1,
/*335104*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VMOVUPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*335116*/            /*Scope*/ 25, /*->335142*/
/*335117*/              OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*335119*/              OPC_MoveParent,
/*335120*/              OPC_RecordChild2, // #3 = $src0
/*335121*/              OPC_CheckType, MVT::v2f64,
/*335123*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*335125*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*335128*/              OPC_EmitMergeInputChains1_1,
/*335129*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, VR128X:{ *:[v2f64] }:$src0) - Complexity = 25
                        // Dst: (VMOVAPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*335142*/            /*Scope*/ 25, /*->335168*/
/*335143*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*335145*/              OPC_MoveParent,
/*335146*/              OPC_RecordChild2, // #3 = $src0
/*335147*/              OPC_CheckType, MVT::v2f64,
/*335149*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*335151*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*335154*/              OPC_EmitMergeInputChains1_1,
/*335155*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src0) - Complexity = 25
                        // Dst: (VMOVUPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*335168*/            0, /*End of Scope*/
/*335169*/          /*SwitchOpcode*/ 93, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->335265
/*335172*/            OPC_RecordChild0, // #1 = $src
/*335173*/            OPC_Scope, 44, /*->335219*/ // 2 children in Scope
/*335175*/              OPC_CheckChild0Type, MVT::v4f64,
/*335177*/              OPC_CheckChild1Integer, 0, 
/*335179*/              OPC_CheckChild1Type, MVT::iPTR,
/*335181*/              OPC_MoveParent,
/*335182*/              OPC_MoveChild2,
/*335183*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335186*/              OPC_MoveChild0,
/*335187*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335190*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335192*/              OPC_CheckType, MVT::v4i32,
/*335194*/              OPC_MoveParent,
/*335195*/              OPC_MoveParent,
/*335196*/              OPC_CheckType, MVT::v2f64,
/*335198*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*335200*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*335203*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*335211*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rrkz), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VMOVAPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }))
/*335219*/            /*Scope*/ 44, /*->335264*/
/*335220*/              OPC_CheckChild0Type, MVT::v8f64,
/*335222*/              OPC_CheckChild1Integer, 0, 
/*335224*/              OPC_CheckChild1Type, MVT::iPTR,
/*335226*/              OPC_MoveParent,
/*335227*/              OPC_MoveChild2,
/*335228*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335231*/              OPC_MoveChild0,
/*335232*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335235*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335237*/              OPC_CheckType, MVT::v4i32,
/*335239*/              OPC_MoveParent,
/*335240*/              OPC_MoveParent,
/*335241*/              OPC_CheckType, MVT::v2f64,
/*335243*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*335245*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*335248*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*335256*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rrkz), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VMOVAPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, sub_xmm:{ *:[i32] }))
/*335264*/            0, /*End of Scope*/
/*335265*/          0, // EndSwitchOpcode
/*335266*/        /*Scope*/ 90, /*->335357*/
/*335267*/          OPC_RecordChild1, // #1 = $idx
/*335268*/          OPC_MoveChild1,
/*335269*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*335272*/          OPC_RecordChild0, // #2 = $src1
/*335273*/          OPC_Scope, 40, /*->335315*/ // 2 children in Scope
/*335275*/            OPC_CheckChild0Type, MVT::v4f64,
/*335277*/            OPC_MoveChild1,
/*335278*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*335281*/            OPC_CheckType, MVT::iPTR,
/*335283*/            OPC_MoveParent,
/*335284*/            OPC_MoveParent,
/*335285*/            OPC_MoveChild2,
/*335286*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335289*/            OPC_MoveChild0,
/*335290*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335293*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335295*/            OPC_CheckType, MVT::v4i32,
/*335297*/            OPC_MoveParent,
/*335298*/            OPC_MoveParent,
/*335299*/            OPC_CheckType, MVT::v2f64,
/*335301*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*335303*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*335306*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x2Z256rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VEXTRACTF64x2Z256rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*335315*/          /*Scope*/ 40, /*->335356*/
/*335316*/            OPC_CheckChild0Type, MVT::v8f64,
/*335318*/            OPC_MoveChild1,
/*335319*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*335322*/            OPC_CheckType, MVT::iPTR,
/*335324*/            OPC_MoveParent,
/*335325*/            OPC_MoveParent,
/*335326*/            OPC_MoveChild2,
/*335327*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335330*/            OPC_MoveChild0,
/*335331*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335334*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335336*/            OPC_CheckType, MVT::v4i32,
/*335338*/            OPC_MoveParent,
/*335339*/            OPC_MoveParent,
/*335340*/            OPC_CheckType, MVT::v2f64,
/*335342*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*335344*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*335347*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x2Zrrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VEXTRACTF64x2Zrrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*335356*/          0, /*End of Scope*/
/*335357*/        /*Scope*/ 87|128,14/*1879*/, /*->337238*/
/*335359*/          OPC_MoveChild1,
/*335360*/          OPC_SwitchOpcode /*45 cases */, 44|128,2/*300*/, TARGET_VAL(ISD::BITCAST),// ->335665
/*335365*/            OPC_Scope, 95|128,1/*223*/, /*->335591*/ // 2 children in Scope
/*335368*/              OPC_MoveChild0,
/*335369*/              OPC_SwitchOpcode /*5 cases */, 33, TARGET_VAL(ISD::AND),// ->335406
/*335373*/                OPC_RecordChild0, // #1 = $src1
/*335374*/                OPC_RecordChild1, // #2 = $src2
/*335375*/                OPC_CheckType, MVT::v2i64,
/*335377*/                OPC_MoveParent,
/*335378*/                OPC_MoveParent,
/*335379*/                OPC_MoveChild2,
/*335380*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335383*/                OPC_MoveChild0,
/*335384*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335387*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335389*/                OPC_CheckType, MVT::v4i32,
/*335391*/                OPC_MoveParent,
/*335392*/                OPC_MoveParent,
/*335393*/                OPC_CheckType, MVT::v2f64,
/*335395*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*335397*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                          // Dst: (VPANDQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*335406*/              /*SwitchOpcode*/ 33, TARGET_VAL(ISD::OR),// ->335442
/*335409*/                OPC_RecordChild0, // #1 = $src1
/*335410*/                OPC_RecordChild1, // #2 = $src2
/*335411*/                OPC_CheckType, MVT::v2i64,
/*335413*/                OPC_MoveParent,
/*335414*/                OPC_MoveParent,
/*335415*/                OPC_MoveChild2,
/*335416*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335419*/                OPC_MoveChild0,
/*335420*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335423*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335425*/                OPC_CheckType, MVT::v4i32,
/*335427*/                OPC_MoveParent,
/*335428*/                OPC_MoveParent,
/*335429*/                OPC_CheckType, MVT::v2f64,
/*335431*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*335433*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                          // Dst: (VPORQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*335442*/              /*SwitchOpcode*/ 33, TARGET_VAL(ISD::XOR),// ->335478
/*335445*/                OPC_RecordChild0, // #1 = $src1
/*335446*/                OPC_RecordChild1, // #2 = $src2
/*335447*/                OPC_CheckType, MVT::v2i64,
/*335449*/                OPC_MoveParent,
/*335450*/                OPC_MoveParent,
/*335451*/                OPC_MoveChild2,
/*335452*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335455*/                OPC_MoveChild0,
/*335456*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335459*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335461*/                OPC_CheckType, MVT::v4i32,
/*335463*/                OPC_MoveParent,
/*335464*/                OPC_MoveParent,
/*335465*/                OPC_CheckType, MVT::v2f64,
/*335467*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*335469*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                          // Dst: (VPXORQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*335478*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::ANDNP),// ->335514
/*335481*/                OPC_RecordChild0, // #1 = $src1
/*335482*/                OPC_RecordChild1, // #2 = $src2
/*335483*/                OPC_CheckType, MVT::v2i64,
/*335485*/                OPC_MoveParent,
/*335486*/                OPC_MoveParent,
/*335487*/                OPC_MoveChild2,
/*335488*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335491*/                OPC_MoveChild0,
/*335492*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335495*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335497*/                OPC_CheckType, MVT::v4i32,
/*335499*/                OPC_MoveParent,
/*335500*/                OPC_MoveParent,
/*335501*/                OPC_CheckType, MVT::v2f64,
/*335503*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*335505*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                          // Dst: (VPANDNQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*335514*/              /*SwitchOpcode*/ 73, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->335590
/*335517*/                OPC_RecordChild0, // #1 = $src
/*335518*/                OPC_CheckType, MVT::v4f32,
/*335520*/                OPC_Scope, 33, /*->335555*/ // 2 children in Scope
/*335522*/                  OPC_CheckChild0Type, MVT::v8f32,
/*335524*/                  OPC_CheckChild1Integer, 0, 
/*335526*/                  OPC_CheckChild1Type, MVT::iPTR,
/*335528*/                  OPC_MoveParent,
/*335529*/                  OPC_MoveParent,
/*335530*/                  OPC_RecordChild2, // #2 = $src0
/*335531*/                  OPC_CheckType, MVT::v2f64,
/*335533*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*335535*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*335538*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*335546*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rrk), 0,
                                MVT::v2f64, 3/*#Ops*/, 2, 0, 4, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v2f64] }:$src0) - Complexity = 14
                            // Dst: (VMOVAPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }))
/*335555*/                /*Scope*/ 33, /*->335589*/
/*335556*/                  OPC_CheckChild0Type, MVT::v16f32,
/*335558*/                  OPC_CheckChild1Integer, 0, 
/*335560*/                  OPC_CheckChild1Type, MVT::iPTR,
/*335562*/                  OPC_MoveParent,
/*335563*/                  OPC_MoveParent,
/*335564*/                  OPC_RecordChild2, // #2 = $src0
/*335565*/                  OPC_CheckType, MVT::v2f64,
/*335567*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*335569*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*335572*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*335580*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rrk), 0,
                                MVT::v2f64, 3/*#Ops*/, 2, 0, 4, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v2f64] }:$src0) - Complexity = 14
                            // Dst: (VMOVAPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, sub_xmm:{ *:[i32] }))
/*335589*/                0, /*End of Scope*/
/*335590*/              0, // EndSwitchOpcode
/*335591*/            /*Scope*/ 72, /*->335664*/
/*335592*/              OPC_RecordChild0, // #1 = $ext
/*335593*/              OPC_MoveChild0,
/*335594*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*335597*/              OPC_RecordChild0, // #2 = $src
/*335598*/              OPC_Scope, 31, /*->335631*/ // 2 children in Scope
/*335600*/                OPC_CheckChild0Type, MVT::v8f32,
/*335602*/                OPC_MoveChild1,
/*335603*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*335606*/                OPC_CheckType, MVT::iPTR,
/*335608*/                OPC_MoveParent,
/*335609*/                OPC_CheckType, MVT::v4f32,
/*335611*/                OPC_MoveParent,
/*335612*/                OPC_MoveParent,
/*335613*/                OPC_RecordChild2, // #3 = $src0
/*335614*/                OPC_CheckType, MVT::v2f64,
/*335616*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*335618*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*335621*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x2Z256rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2f64] }:$src0) - Complexity = 12
                          // Dst: (VEXTRACTF64x2Z256rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4f32] }:$ext))
/*335631*/              /*Scope*/ 31, /*->335663*/
/*335632*/                OPC_CheckChild0Type, MVT::v16f32,
/*335634*/                OPC_MoveChild1,
/*335635*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*335638*/                OPC_CheckType, MVT::iPTR,
/*335640*/                OPC_MoveParent,
/*335641*/                OPC_CheckType, MVT::v4f32,
/*335643*/                OPC_MoveParent,
/*335644*/                OPC_MoveParent,
/*335645*/                OPC_RecordChild2, // #3 = $src0
/*335646*/                OPC_CheckType, MVT::v2f64,
/*335648*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*335650*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*335653*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x2Zrrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2f64] }:$src0) - Complexity = 12
                          // Dst: (VEXTRACTF64x2Zrrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v16f32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4f32] }:$ext))
/*335663*/              0, /*End of Scope*/
/*335664*/            0, /*End of Scope*/
/*335665*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VPERMILPI),// ->335705
/*335668*/            OPC_RecordChild0, // #1 = $src1
/*335669*/            OPC_RecordChild1, // #2 = $src2
/*335670*/            OPC_MoveChild1,
/*335671*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*335674*/            OPC_MoveParent,
/*335675*/            OPC_MoveParent,
/*335676*/            OPC_MoveChild2,
/*335677*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335680*/            OPC_MoveChild0,
/*335681*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335684*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335686*/            OPC_CheckType, MVT::v4i32,
/*335688*/            OPC_MoveParent,
/*335689*/            OPC_MoveParent,
/*335690*/            OPC_CheckType, MVT::v2f64,
/*335692*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*335694*/            OPC_EmitConvertToTarget, 2,
/*335696*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPERMILPDZ128rikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*335705*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VREDUCE),// ->335745
/*335708*/            OPC_RecordChild0, // #1 = $src1
/*335709*/            OPC_RecordChild1, // #2 = $src2
/*335710*/            OPC_MoveChild1,
/*335711*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*335714*/            OPC_MoveParent,
/*335715*/            OPC_MoveParent,
/*335716*/            OPC_MoveChild2,
/*335717*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335720*/            OPC_MoveChild0,
/*335721*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335724*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335726*/            OPC_CheckType, MVT::v4i32,
/*335728*/            OPC_MoveParent,
/*335729*/            OPC_MoveParent,
/*335730*/            OPC_CheckType, MVT::v2f64,
/*335732*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*335734*/            OPC_EmitConvertToTarget, 2,
/*335736*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rrikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VREDUCEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*335745*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VRNDSCALE),// ->335785
/*335748*/            OPC_RecordChild0, // #1 = $src1
/*335749*/            OPC_RecordChild1, // #2 = $src2
/*335750*/            OPC_MoveChild1,
/*335751*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*335754*/            OPC_MoveParent,
/*335755*/            OPC_MoveParent,
/*335756*/            OPC_MoveChild2,
/*335757*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335760*/            OPC_MoveChild0,
/*335761*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335764*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335766*/            OPC_CheckType, MVT::v4i32,
/*335768*/            OPC_MoveParent,
/*335769*/            OPC_MoveParent,
/*335770*/            OPC_CheckType, MVT::v2f64,
/*335772*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*335774*/            OPC_EmitConvertToTarget, 2,
/*335776*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VRNDSCALEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*335785*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VGETMANT),// ->335825
/*335788*/            OPC_RecordChild0, // #1 = $src1
/*335789*/            OPC_RecordChild1, // #2 = $src2
/*335790*/            OPC_MoveChild1,
/*335791*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*335794*/            OPC_MoveParent,
/*335795*/            OPC_MoveParent,
/*335796*/            OPC_MoveChild2,
/*335797*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335800*/            OPC_MoveChild0,
/*335801*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335804*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335806*/            OPC_CheckType, MVT::v4i32,
/*335808*/            OPC_MoveParent,
/*335809*/            OPC_MoveParent,
/*335810*/            OPC_CheckType, MVT::v2f64,
/*335812*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*335814*/            OPC_EmitConvertToTarget, 2,
/*335816*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rrikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VGETMANTPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*335825*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VRANGE),// ->335867
/*335828*/            OPC_RecordChild0, // #1 = $src1
/*335829*/            OPC_RecordChild1, // #2 = $src2
/*335830*/            OPC_RecordChild2, // #3 = $src3
/*335831*/            OPC_MoveChild2,
/*335832*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*335835*/            OPC_MoveParent,
/*335836*/            OPC_MoveParent,
/*335837*/            OPC_MoveChild2,
/*335838*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335841*/            OPC_MoveChild0,
/*335842*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335845*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335847*/            OPC_CheckType, MVT::v4i32,
/*335849*/            OPC_MoveParent,
/*335850*/            OPC_MoveParent,
/*335851*/            OPC_CheckType, MVT::v2f64,
/*335853*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*335855*/            OPC_EmitConvertToTarget, 3,
/*335857*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rrikz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VRANGEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*335867*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::SHUFP),// ->335909
/*335870*/            OPC_RecordChild0, // #1 = $src1
/*335871*/            OPC_RecordChild1, // #2 = $src2
/*335872*/            OPC_RecordChild2, // #3 = $src3
/*335873*/            OPC_MoveChild2,
/*335874*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*335877*/            OPC_MoveParent,
/*335878*/            OPC_MoveParent,
/*335879*/            OPC_MoveChild2,
/*335880*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335883*/            OPC_MoveChild0,
/*335884*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335887*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335889*/            OPC_CheckType, MVT::v4i32,
/*335891*/            OPC_MoveParent,
/*335892*/            OPC_MoveParent,
/*335893*/            OPC_CheckType, MVT::v2f64,
/*335895*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*335897*/            OPC_EmitConvertToTarget, 3,
/*335899*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rrikz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSHUFPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*335909*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VFIXUPIMM),// ->335943
/*335912*/            OPC_RecordChild0, // #1 = $src1
/*335913*/            OPC_RecordChild1, // #2 = $src2
/*335914*/            OPC_RecordChild2, // #3 = $src3
/*335915*/            OPC_RecordChild3, // #4 = $src4
/*335916*/            OPC_MoveChild3,
/*335917*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*335920*/            OPC_MoveParent,
/*335921*/            OPC_CheckChild4Integer, 4, 
/*335923*/            OPC_MoveParent,
/*335924*/            OPC_CheckChild2Same, 1,
/*335926*/            OPC_CheckType, MVT::v2f64,
/*335928*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*335930*/            OPC_EmitConvertToTarget, 4,
/*335932*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rrik), 0,
                          MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src1) - Complexity = 14
                      // Dst: (VFIXUPIMMPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*335943*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VPERMV3),// ->335978
/*335946*/            OPC_RecordChild0, // #1 = $src1
/*335947*/            OPC_RecordChild1, // #2 = $src2
/*335948*/            OPC_RecordChild2, // #3 = $src3
/*335949*/            OPC_MoveParent,
/*335950*/            OPC_MoveChild2,
/*335951*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335954*/            OPC_MoveChild0,
/*335955*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335958*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335960*/            OPC_CheckType, MVT::v4i32,
/*335962*/            OPC_MoveParent,
/*335963*/            OPC_MoveParent,
/*335964*/            OPC_CheckType, MVT::v2f64,
/*335966*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*335968*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD128rrkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2f64] }:$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPERMT2PD128rrkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*335978*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::FADD),// ->336011
/*335981*/            OPC_RecordChild0, // #1 = $src1
/*335982*/            OPC_RecordChild1, // #2 = $src2
/*335983*/            OPC_MoveParent,
/*335984*/            OPC_MoveChild2,
/*335985*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*335988*/            OPC_MoveChild0,
/*335989*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*335992*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*335994*/            OPC_CheckType, MVT::v4i32,
/*335996*/            OPC_MoveParent,
/*335997*/            OPC_MoveParent,
/*335998*/            OPC_CheckType, MVT::v2f64,
/*336000*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336002*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VADDPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*336011*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::FMUL),// ->336044
/*336014*/            OPC_RecordChild0, // #1 = $src1
/*336015*/            OPC_RecordChild1, // #2 = $src2
/*336016*/            OPC_MoveParent,
/*336017*/            OPC_MoveChild2,
/*336018*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336021*/            OPC_MoveChild0,
/*336022*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336025*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336027*/            OPC_CheckType, MVT::v4i32,
/*336029*/            OPC_MoveParent,
/*336030*/            OPC_MoveParent,
/*336031*/            OPC_CheckType, MVT::v2f64,
/*336033*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336035*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMULPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*336044*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::FSUB),// ->336077
/*336047*/            OPC_RecordChild0, // #1 = $src1
/*336048*/            OPC_RecordChild1, // #2 = $src2
/*336049*/            OPC_MoveParent,
/*336050*/            OPC_MoveChild2,
/*336051*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336054*/            OPC_MoveChild0,
/*336055*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336058*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336060*/            OPC_CheckType, MVT::v4i32,
/*336062*/            OPC_MoveParent,
/*336063*/            OPC_MoveParent,
/*336064*/            OPC_CheckType, MVT::v2f64,
/*336066*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336068*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VSUBPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*336077*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::FDIV),// ->336110
/*336080*/            OPC_RecordChild0, // #1 = $src1
/*336081*/            OPC_RecordChild1, // #2 = $src2
/*336082*/            OPC_MoveParent,
/*336083*/            OPC_MoveChild2,
/*336084*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336087*/            OPC_MoveChild0,
/*336088*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336091*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336093*/            OPC_CheckType, MVT::v4i32,
/*336095*/            OPC_MoveParent,
/*336096*/            OPC_MoveParent,
/*336097*/            OPC_CheckType, MVT::v2f64,
/*336099*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336101*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VDIVPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*336110*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMIN),// ->336143
/*336113*/            OPC_RecordChild0, // #1 = $src1
/*336114*/            OPC_RecordChild1, // #2 = $src2
/*336115*/            OPC_MoveParent,
/*336116*/            OPC_MoveChild2,
/*336117*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336120*/            OPC_MoveChild0,
/*336121*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336124*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336126*/            OPC_CheckType, MVT::v4i32,
/*336128*/            OPC_MoveParent,
/*336129*/            OPC_MoveParent,
/*336130*/            OPC_CheckType, MVT::v2f64,
/*336132*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336134*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ128rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmin:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMINPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*336143*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMAX),// ->336176
/*336146*/            OPC_RecordChild0, // #1 = $src1
/*336147*/            OPC_RecordChild1, // #2 = $src2
/*336148*/            OPC_MoveParent,
/*336149*/            OPC_MoveChild2,
/*336150*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336153*/            OPC_MoveChild0,
/*336154*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336157*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336159*/            OPC_CheckType, MVT::v4i32,
/*336161*/            OPC_MoveParent,
/*336162*/            OPC_MoveParent,
/*336163*/            OPC_CheckType, MVT::v2f64,
/*336165*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336167*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ128rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmax:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMAXPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*336176*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMINC),// ->336209
/*336179*/            OPC_RecordChild0, // #1 = $src1
/*336180*/            OPC_RecordChild1, // #2 = $src2
/*336181*/            OPC_MoveParent,
/*336182*/            OPC_MoveChild2,
/*336183*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336186*/            OPC_MoveChild0,
/*336187*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336190*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336192*/            OPC_CheckType, MVT::v4i32,
/*336194*/            OPC_MoveParent,
/*336195*/            OPC_MoveParent,
/*336196*/            OPC_CheckType, MVT::v2f64,
/*336198*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336200*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fminc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMINCPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*336209*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMAXC),// ->336242
/*336212*/            OPC_RecordChild0, // #1 = $src1
/*336213*/            OPC_RecordChild1, // #2 = $src2
/*336214*/            OPC_MoveParent,
/*336215*/            OPC_MoveChild2,
/*336216*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336219*/            OPC_MoveChild0,
/*336220*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336223*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336225*/            OPC_CheckType, MVT::v4i32,
/*336227*/            OPC_MoveParent,
/*336228*/            OPC_MoveParent,
/*336229*/            OPC_CheckType, MVT::v2f64,
/*336231*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336233*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmaxc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMAXCPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*336242*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VPERMILPV),// ->336275
/*336245*/            OPC_RecordChild0, // #1 = $src1
/*336246*/            OPC_RecordChild1, // #2 = $src2
/*336247*/            OPC_MoveParent,
/*336248*/            OPC_MoveChild2,
/*336249*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336252*/            OPC_MoveChild0,
/*336253*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336256*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336258*/            OPC_CheckType, MVT::v4i32,
/*336260*/            OPC_MoveParent,
/*336261*/            OPC_MoveParent,
/*336262*/            OPC_CheckType, MVT::v2f64,
/*336264*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336266*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPERMILPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*336275*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FMA),// ->336310
/*336278*/            OPC_RecordChild0, // #1 = $src2
/*336279*/            OPC_RecordChild1, // #2 = $src1
/*336280*/            OPC_RecordChild2, // #3 = $src3
/*336281*/            OPC_MoveParent,
/*336282*/            OPC_MoveChild2,
/*336283*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336286*/            OPC_MoveChild0,
/*336287*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336290*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336292*/            OPC_CheckType, MVT::v4i32,
/*336294*/            OPC_MoveParent,
/*336295*/            OPC_MoveParent,
/*336296*/            OPC_CheckType, MVT::v2f64,
/*336298*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336300*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128rkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFMADD213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*336310*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FMSUB),// ->336345
/*336313*/            OPC_RecordChild0, // #1 = $src2
/*336314*/            OPC_RecordChild1, // #2 = $src1
/*336315*/            OPC_RecordChild2, // #3 = $src3
/*336316*/            OPC_MoveParent,
/*336317*/            OPC_MoveChild2,
/*336318*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336321*/            OPC_MoveChild0,
/*336322*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336325*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336327*/            OPC_CheckType, MVT::v4i32,
/*336329*/            OPC_MoveParent,
/*336330*/            OPC_MoveParent,
/*336331*/            OPC_CheckType, MVT::v2f64,
/*336333*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336335*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ128rkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFMSUB213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*336345*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FMADDSUB),// ->336380
/*336348*/            OPC_RecordChild0, // #1 = $src2
/*336349*/            OPC_RecordChild1, // #2 = $src1
/*336350*/            OPC_RecordChild2, // #3 = $src3
/*336351*/            OPC_MoveParent,
/*336352*/            OPC_MoveChild2,
/*336353*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336356*/            OPC_MoveChild0,
/*336357*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336360*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336362*/            OPC_CheckType, MVT::v4i32,
/*336364*/            OPC_MoveParent,
/*336365*/            OPC_MoveParent,
/*336366*/            OPC_CheckType, MVT::v2f64,
/*336368*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336370*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ128rkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFMADDSUB213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*336380*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FMSUBADD),// ->336415
/*336383*/            OPC_RecordChild0, // #1 = $src2
/*336384*/            OPC_RecordChild1, // #2 = $src1
/*336385*/            OPC_RecordChild2, // #3 = $src3
/*336386*/            OPC_MoveParent,
/*336387*/            OPC_MoveChild2,
/*336388*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336391*/            OPC_MoveChild0,
/*336392*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336395*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336397*/            OPC_CheckType, MVT::v4i32,
/*336399*/            OPC_MoveParent,
/*336400*/            OPC_MoveParent,
/*336401*/            OPC_CheckType, MVT::v2f64,
/*336403*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336405*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ128rkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFMSUBADD213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*336415*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FNMADD),// ->336450
/*336418*/            OPC_RecordChild0, // #1 = $src2
/*336419*/            OPC_RecordChild1, // #2 = $src1
/*336420*/            OPC_RecordChild2, // #3 = $src3
/*336421*/            OPC_MoveParent,
/*336422*/            OPC_MoveChild2,
/*336423*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336426*/            OPC_MoveChild0,
/*336427*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336430*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336432*/            OPC_CheckType, MVT::v4i32,
/*336434*/            OPC_MoveParent,
/*336435*/            OPC_MoveParent,
/*336436*/            OPC_CheckType, MVT::v2f64,
/*336438*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336440*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ128rkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFNMADD213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*336450*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FNMSUB),// ->336485
/*336453*/            OPC_RecordChild0, // #1 = $src2
/*336454*/            OPC_RecordChild1, // #2 = $src1
/*336455*/            OPC_RecordChild2, // #3 = $src3
/*336456*/            OPC_MoveParent,
/*336457*/            OPC_MoveChild2,
/*336458*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336461*/            OPC_MoveChild0,
/*336462*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336465*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336467*/            OPC_CheckType, MVT::v4i32,
/*336469*/            OPC_MoveParent,
/*336470*/            OPC_MoveParent,
/*336471*/            OPC_CheckType, MVT::v2f64,
/*336473*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336475*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ128rkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFNMSUB213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*336485*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VFPEXT),// ->336516
/*336488*/            OPC_RecordChild0, // #1 = $src
/*336489*/            OPC_MoveParent,
/*336490*/            OPC_MoveChild2,
/*336491*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336494*/            OPC_MoveChild0,
/*336495*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336498*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336500*/            OPC_CheckType, MVT::v4i32,
/*336502*/            OPC_MoveParent,
/*336503*/            OPC_MoveParent,
/*336504*/            OPC_CheckType, MVT::v2f64,
/*336506*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*336508*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rrkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86vfpext:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTPS2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*336516*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::CVTSI2P),// ->336549
/*336519*/            OPC_RecordChild0, // #1 = $src
/*336520*/            OPC_CheckChild0Type, MVT::v4i32,
/*336522*/            OPC_MoveParent,
/*336523*/            OPC_MoveChild2,
/*336524*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336527*/            OPC_MoveChild0,
/*336528*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336531*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336533*/            OPC_CheckType, MVT::v4i32,
/*336535*/            OPC_MoveParent,
/*336536*/            OPC_MoveParent,
/*336537*/            OPC_CheckType, MVT::v2f64,
/*336539*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*336541*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rrkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VSintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTDQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*336549*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::CVTUI2P),// ->336582
/*336552*/            OPC_RecordChild0, // #1 = $src
/*336553*/            OPC_CheckChild0Type, MVT::v4i32,
/*336555*/            OPC_MoveParent,
/*336556*/            OPC_MoveChild2,
/*336557*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336560*/            OPC_MoveChild0,
/*336561*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336564*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336566*/            OPC_CheckType, MVT::v4i32,
/*336568*/            OPC_MoveParent,
/*336569*/            OPC_MoveParent,
/*336570*/            OPC_CheckType, MVT::v2f64,
/*336572*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*336574*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rrkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VUintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTUDQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*336582*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SINT_TO_FP),// ->336615
/*336585*/            OPC_RecordChild0, // #1 = $src
/*336586*/            OPC_CheckChild0Type, MVT::v2i64,
/*336588*/            OPC_MoveParent,
/*336589*/            OPC_MoveChild2,
/*336590*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336593*/            OPC_MoveChild0,
/*336594*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336597*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336599*/            OPC_CheckType, MVT::v4i32,
/*336601*/            OPC_MoveParent,
/*336602*/            OPC_MoveParent,
/*336603*/            OPC_CheckType, MVT::v2f64,
/*336605*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*336607*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rrkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (sint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTQQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*336615*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::UINT_TO_FP),// ->336648
/*336618*/            OPC_RecordChild0, // #1 = $src
/*336619*/            OPC_CheckChild0Type, MVT::v2i64,
/*336621*/            OPC_MoveParent,
/*336622*/            OPC_MoveChild2,
/*336623*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336626*/            OPC_MoveChild0,
/*336627*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336630*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336632*/            OPC_CheckType, MVT::v4i32,
/*336634*/            OPC_MoveParent,
/*336635*/            OPC_MoveParent,
/*336636*/            OPC_CheckType, MVT::v2f64,
/*336638*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*336640*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rrkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (uint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTUQQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*336648*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::RSQRT14),// ->336679
/*336651*/            OPC_RecordChild0, // #1 = $src
/*336652*/            OPC_MoveParent,
/*336653*/            OPC_MoveChild2,
/*336654*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336657*/            OPC_MoveChild0,
/*336658*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336661*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336663*/            OPC_CheckType, MVT::v4i32,
/*336665*/            OPC_MoveParent,
/*336666*/            OPC_MoveParent,
/*336667*/            OPC_CheckType, MVT::v2f64,
/*336669*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*336671*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ128rkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rsqrt14:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRSQRT14PDZ128rkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*336679*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::RCP14),// ->336710
/*336682*/            OPC_RecordChild0, // #1 = $src
/*336683*/            OPC_MoveParent,
/*336684*/            OPC_MoveChild2,
/*336685*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336688*/            OPC_MoveChild0,
/*336689*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336692*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336694*/            OPC_CheckType, MVT::v4i32,
/*336696*/            OPC_MoveParent,
/*336697*/            OPC_MoveParent,
/*336698*/            OPC_CheckType, MVT::v2f64,
/*336700*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*336702*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ128rkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rcp14:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRCP14PDZ128rkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*336710*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::FSQRT),// ->336741
/*336713*/            OPC_RecordChild0, // #1 = $src
/*336714*/            OPC_MoveParent,
/*336715*/            OPC_MoveChild2,
/*336716*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336719*/            OPC_MoveChild0,
/*336720*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336723*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336725*/            OPC_CheckType, MVT::v4i32,
/*336727*/            OPC_MoveParent,
/*336728*/            OPC_MoveParent,
/*336729*/            OPC_CheckType, MVT::v2f64,
/*336731*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*336733*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128rkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsqrt:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VSQRTPDZ128rkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*336741*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::COMPRESS),// ->336772
/*336744*/            OPC_RecordChild0, // #1 = $src1
/*336745*/            OPC_MoveParent,
/*336746*/            OPC_MoveChild2,
/*336747*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336750*/            OPC_MoveChild0,
/*336751*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336754*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336756*/            OPC_CheckType, MVT::v4i32,
/*336758*/            OPC_MoveParent,
/*336759*/            OPC_MoveParent,
/*336760*/            OPC_CheckType, MVT::v2f64,
/*336762*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336764*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZ128rrkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86compress:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCOMPRESSPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1)
/*336772*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::EXPAND),// ->336803
/*336775*/            OPC_RecordChild0, // #1 = $src1
/*336776*/            OPC_MoveParent,
/*336777*/            OPC_MoveChild2,
/*336778*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336781*/            OPC_MoveChild0,
/*336782*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336785*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336787*/            OPC_CheckType, MVT::v4i32,
/*336789*/            OPC_MoveParent,
/*336790*/            OPC_MoveParent,
/*336791*/            OPC_CheckType, MVT::v2f64,
/*336793*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*336795*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rrkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86expand:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VEXPANDPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1)
/*336803*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FFLOOR),// ->336838
/*336806*/            OPC_RecordChild0, // #1 = $src
/*336807*/            OPC_MoveParent,
/*336808*/            OPC_MoveChild2,
/*336809*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336812*/            OPC_MoveChild0,
/*336813*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336816*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336818*/            OPC_CheckType, MVT::v4i32,
/*336820*/            OPC_MoveParent,
/*336821*/            OPC_MoveParent,
/*336822*/            OPC_CheckType, MVT::v2f64,
/*336824*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*336826*/            OPC_EmitInteger, MVT::i32, 9, 
/*336829*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ffloor:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRNDSCALEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, 9:{ *:[i32] })
/*336838*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FNEARBYINT),// ->336873
/*336841*/            OPC_RecordChild0, // #1 = $src
/*336842*/            OPC_MoveParent,
/*336843*/            OPC_MoveChild2,
/*336844*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336847*/            OPC_MoveChild0,
/*336848*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336851*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336853*/            OPC_CheckType, MVT::v4i32,
/*336855*/            OPC_MoveParent,
/*336856*/            OPC_MoveParent,
/*336857*/            OPC_CheckType, MVT::v2f64,
/*336859*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*336861*/            OPC_EmitInteger, MVT::i32, 12, 
/*336864*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fnearbyint:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRNDSCALEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, 12:{ *:[i32] })
/*336873*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FCEIL),// ->336908
/*336876*/            OPC_RecordChild0, // #1 = $src
/*336877*/            OPC_MoveParent,
/*336878*/            OPC_MoveChild2,
/*336879*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336882*/            OPC_MoveChild0,
/*336883*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336886*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336888*/            OPC_CheckType, MVT::v4i32,
/*336890*/            OPC_MoveParent,
/*336891*/            OPC_MoveParent,
/*336892*/            OPC_CheckType, MVT::v2f64,
/*336894*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*336896*/            OPC_EmitInteger, MVT::i32, 10, 
/*336899*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fceil:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRNDSCALEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, 10:{ *:[i32] })
/*336908*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FRINT),// ->336943
/*336911*/            OPC_RecordChild0, // #1 = $src
/*336912*/            OPC_MoveParent,
/*336913*/            OPC_MoveChild2,
/*336914*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336917*/            OPC_MoveChild0,
/*336918*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336921*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336923*/            OPC_CheckType, MVT::v4i32,
/*336925*/            OPC_MoveParent,
/*336926*/            OPC_MoveParent,
/*336927*/            OPC_CheckType, MVT::v2f64,
/*336929*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*336931*/            OPC_EmitInteger, MVT::i32, 4, 
/*336934*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (frint:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRNDSCALEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] })
/*336943*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FTRUNC),// ->336978
/*336946*/            OPC_RecordChild0, // #1 = $src
/*336947*/            OPC_MoveParent,
/*336948*/            OPC_MoveChild2,
/*336949*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336952*/            OPC_MoveChild0,
/*336953*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336956*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336958*/            OPC_CheckType, MVT::v4i32,
/*336960*/            OPC_MoveParent,
/*336961*/            OPC_MoveParent,
/*336962*/            OPC_CheckType, MVT::v2f64,
/*336964*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*336966*/            OPC_EmitInteger, MVT::i32, 11, 
/*336969*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ftrunc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRNDSCALEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, 11:{ *:[i32] })
/*336978*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->337055
/*336981*/            OPC_RecordChild0, // #1 = $src
/*336982*/            OPC_Scope, 29, /*->337013*/ // 2 children in Scope
/*336984*/              OPC_CheckChild0Type, MVT::v2f64,
/*336986*/              OPC_MoveParent,
/*336987*/              OPC_MoveChild2,
/*336988*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*336991*/              OPC_MoveChild0,
/*336992*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*336995*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*336997*/              OPC_CheckType, MVT::v4i32,
/*336999*/              OPC_MoveParent,
/*337000*/              OPC_MoveParent,
/*337001*/              OPC_CheckType, MVT::v2f64,
/*337003*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337005*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rrkz), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMOVDDUPZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*337013*/            /*Scope*/ 40, /*->337054*/
/*337014*/              OPC_CheckChild0Type, MVT::f64,
/*337016*/              OPC_MoveParent,
/*337017*/              OPC_MoveChild2,
/*337018*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*337021*/              OPC_MoveChild0,
/*337022*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*337025*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*337027*/              OPC_CheckType, MVT::v4i32,
/*337029*/              OPC_MoveParent,
/*337030*/              OPC_MoveParent,
/*337031*/              OPC_CheckType, MVT::v2f64,
/*337033*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*337035*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*337038*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*337046*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rrkz), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } f64:{ *:[f64] }:$src), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMOVDDUPZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*337054*/            0, /*End of Scope*/
/*337055*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::UNPCKH),// ->337088
/*337058*/            OPC_RecordChild0, // #1 = $src1
/*337059*/            OPC_RecordChild1, // #2 = $src2
/*337060*/            OPC_MoveParent,
/*337061*/            OPC_MoveChild2,
/*337062*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*337065*/            OPC_MoveChild0,
/*337066*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*337069*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*337071*/            OPC_CheckType, MVT::v4i32,
/*337073*/            OPC_MoveParent,
/*337074*/            OPC_MoveParent,
/*337075*/            OPC_CheckType, MVT::v2f64,
/*337077*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337079*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ128rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VUNPCKHPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*337088*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::UNPCKL),// ->337121
/*337091*/            OPC_RecordChild0, // #1 = $src1
/*337092*/            OPC_RecordChild1, // #2 = $src2
/*337093*/            OPC_MoveParent,
/*337094*/            OPC_MoveChild2,
/*337095*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*337098*/            OPC_MoveChild0,
/*337099*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*337102*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*337104*/            OPC_CheckType, MVT::v4i32,
/*337106*/            OPC_MoveParent,
/*337107*/            OPC_MoveParent,
/*337108*/            OPC_CheckType, MVT::v2f64,
/*337110*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337112*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ128rrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VUNPCKLPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*337121*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::SCALEF),// ->337144
/*337124*/            OPC_RecordChild0, // #1 = $src1
/*337125*/            OPC_RecordChild1, // #2 = $src2
/*337126*/            OPC_CheckChild2Integer, 4, 
/*337128*/            OPC_MoveParent,
/*337129*/            OPC_RecordChild2, // #3 = $src0
/*337130*/            OPC_CheckType, MVT::v2f64,
/*337132*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*337134*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86scalef:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VSCALEFPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*337144*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FGETEXP_RND),// ->337165
/*337147*/            OPC_RecordChild0, // #1 = $src
/*337148*/            OPC_CheckChild1Integer, 4, 
/*337150*/            OPC_MoveParent,
/*337151*/            OPC_RecordChild2, // #2 = $src0
/*337152*/            OPC_CheckType, MVT::v2f64,
/*337154*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*337156*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128rk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fgetexpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                      // Dst: (VGETEXPPDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*337165*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->337237
/*337168*/            OPC_RecordChild0, // #1 = $src
/*337169*/            OPC_Scope, 32, /*->337203*/ // 2 children in Scope
/*337171*/              OPC_CheckChild0Type, MVT::v4f64,
/*337173*/              OPC_CheckChild1Integer, 0, 
/*337175*/              OPC_CheckChild1Type, MVT::iPTR,
/*337177*/              OPC_MoveParent,
/*337178*/              OPC_RecordChild2, // #2 = $src0
/*337179*/              OPC_CheckType, MVT::v2f64,
/*337181*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*337183*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*337186*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*337194*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rrk), 0,
                            MVT::v2f64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                        // Dst: (VMOVAPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }))
/*337203*/            /*Scope*/ 32, /*->337236*/
/*337204*/              OPC_CheckChild0Type, MVT::v8f64,
/*337206*/              OPC_CheckChild1Integer, 0, 
/*337208*/              OPC_CheckChild1Type, MVT::iPTR,
/*337210*/              OPC_MoveParent,
/*337211*/              OPC_RecordChild2, // #2 = $src0
/*337212*/              OPC_CheckType, MVT::v2f64,
/*337214*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*337216*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*337219*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*337227*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rrk), 0,
                            MVT::v2f64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] }), VR128X:{ *:[v2f64] }:$src0) - Complexity = 11
                        // Dst: (VMOVAPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, sub_xmm:{ *:[i32] }))
/*337236*/            0, /*End of Scope*/
/*337237*/          0, // EndSwitchOpcode
/*337238*/        /*Scope*/ 22|128,1/*150*/, /*->337390*/
/*337240*/          OPC_RecordChild1, // #1 = $src
/*337241*/          OPC_Scope, 80, /*->337323*/ // 2 children in Scope
/*337243*/            OPC_MoveChild2,
/*337244*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*337247*/            OPC_MoveChild0,
/*337248*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*337251*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*337253*/            OPC_CheckType, MVT::v4i32,
/*337255*/            OPC_MoveParent,
/*337256*/            OPC_MoveParent,
/*337257*/            OPC_CheckType, MVT::v2f64,
/*337259*/            OPC_Scope, 10, /*->337271*/ // 2 children in Scope
/*337261*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337263*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rrkz), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                        // Dst: (VMOVAPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*337271*/            /*Scope*/ 50, /*->337322*/
/*337272*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*337274*/              OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*337277*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*337285*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8f64, 0/*#Ops*/,  // Results = #4
/*337291*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*337294*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8f64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*337303*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZrrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*337311*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*337314*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v2f64, 2/*#Ops*/, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                        // Dst: (EXTRACT_SUBREG:{ *:[v2f64] } (VMOVAPDZrrkz:{ *:[v8f64] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2WM:{ *:[v2i1] }:$mask, VK8WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*337322*/            0, /*End of Scope*/
/*337323*/          /*Scope*/ 65, /*->337389*/
/*337324*/            OPC_MoveChild1,
/*337325*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*337328*/            OPC_RecordChild0, // #2 = $src1
/*337329*/            OPC_Scope, 28, /*->337359*/ // 2 children in Scope
/*337331*/              OPC_CheckChild0Type, MVT::v4f64,
/*337333*/              OPC_MoveChild1,
/*337334*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*337337*/              OPC_CheckType, MVT::iPTR,
/*337339*/              OPC_MoveParent,
/*337340*/              OPC_MoveParent,
/*337341*/              OPC_RecordChild2, // #3 = $src0
/*337342*/              OPC_CheckType, MVT::v2f64,
/*337344*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*337346*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*337349*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x2Z256rrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                        // Dst: (VEXTRACTF64x2Z256rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*337359*/            /*Scope*/ 28, /*->337388*/
/*337360*/              OPC_CheckChild0Type, MVT::v8f64,
/*337362*/              OPC_MoveChild1,
/*337363*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*337366*/              OPC_CheckType, MVT::iPTR,
/*337368*/              OPC_MoveParent,
/*337369*/              OPC_MoveParent,
/*337370*/              OPC_RecordChild2, // #3 = $src0
/*337371*/              OPC_CheckType, MVT::v2f64,
/*337373*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*337375*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*337378*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x2Zrrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                        // Dst: (VEXTRACTF64x2Zrrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*337388*/            0, /*End of Scope*/
/*337389*/          0, /*End of Scope*/
/*337390*/        /*Scope*/ 106|128,9/*1258*/, /*->338650*/
/*337392*/          OPC_MoveChild1,
/*337393*/          OPC_SwitchOpcode /*41 cases */, 45, TARGET_VAL(X86ISD::VPERMV3),// ->337442
/*337397*/            OPC_RecordChild0, // #1 = $src2
/*337398*/            OPC_RecordChild1, // #2 = $src1
/*337399*/            OPC_RecordChild2, // #3 = $src3
/*337400*/            OPC_MoveParent,
/*337401*/            OPC_Scope, 21, /*->337424*/ // 2 children in Scope
/*337403*/              OPC_MoveChild2,
/*337404*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*337407*/              OPC_CheckChild0Same, 2,
/*337409*/              OPC_MoveParent,
/*337410*/              OPC_CheckType, MVT::v2f64,
/*337412*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*337414*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PD128rrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2f64] }:$src3), (bitconvert:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1)) - Complexity = 9
                        // Dst: (VPERMI2PD128rrk:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*337424*/            /*Scope*/ 16, /*->337441*/
/*337425*/              OPC_CheckChild2Same, 1,
/*337427*/              OPC_CheckType, MVT::v2f64,
/*337429*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*337431*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD128rrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2f64] }:$src3), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VPERMT2PD128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*337441*/            0, /*End of Scope*/
/*337442*/          /*SwitchOpcode*/ 99, TARGET_VAL(ISD::BITCAST),// ->337544
/*337445*/            OPC_MoveChild0,
/*337446*/            OPC_SwitchOpcode /*4 cases */, 21, TARGET_VAL(ISD::AND),// ->337471
/*337450*/              OPC_RecordChild0, // #1 = $src1
/*337451*/              OPC_RecordChild1, // #2 = $src2
/*337452*/              OPC_CheckType, MVT::v2i64,
/*337454*/              OPC_MoveParent,
/*337455*/              OPC_MoveParent,
/*337456*/              OPC_RecordChild2, // #3 = $src0
/*337457*/              OPC_CheckType, MVT::v2f64,
/*337459*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*337461*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                        // Dst: (VPANDQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*337471*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::OR),// ->337495
/*337474*/              OPC_RecordChild0, // #1 = $src1
/*337475*/              OPC_RecordChild1, // #2 = $src2
/*337476*/              OPC_CheckType, MVT::v2i64,
/*337478*/              OPC_MoveParent,
/*337479*/              OPC_MoveParent,
/*337480*/              OPC_RecordChild2, // #3 = $src0
/*337481*/              OPC_CheckType, MVT::v2f64,
/*337483*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*337485*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                        // Dst: (VPORQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*337495*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::XOR),// ->337519
/*337498*/              OPC_RecordChild0, // #1 = $src1
/*337499*/              OPC_RecordChild1, // #2 = $src2
/*337500*/              OPC_CheckType, MVT::v2i64,
/*337502*/              OPC_MoveParent,
/*337503*/              OPC_MoveParent,
/*337504*/              OPC_RecordChild2, // #3 = $src0
/*337505*/              OPC_CheckType, MVT::v2f64,
/*337507*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*337509*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                        // Dst: (VPXORQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*337519*/            /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::ANDNP),// ->337543
/*337522*/              OPC_RecordChild0, // #1 = $src1
/*337523*/              OPC_RecordChild1, // #2 = $src2
/*337524*/              OPC_CheckType, MVT::v2i64,
/*337526*/              OPC_MoveParent,
/*337527*/              OPC_MoveParent,
/*337528*/              OPC_RecordChild2, // #3 = $src0
/*337529*/              OPC_CheckType, MVT::v2f64,
/*337531*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*337533*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                        // Dst: (VPANDNQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*337543*/            0, // EndSwitchOpcode
/*337544*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPERMILPI),// ->337572
/*337547*/            OPC_RecordChild0, // #1 = $src1
/*337548*/            OPC_RecordChild1, // #2 = $src2
/*337549*/            OPC_MoveChild1,
/*337550*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*337553*/            OPC_MoveParent,
/*337554*/            OPC_MoveParent,
/*337555*/            OPC_RecordChild2, // #3 = $src0
/*337556*/            OPC_CheckType, MVT::v2f64,
/*337558*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337560*/            OPC_EmitConvertToTarget, 2,
/*337562*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rik), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VPERMILPDZ128rik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*337572*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VREDUCE),// ->337600
/*337575*/            OPC_RecordChild0, // #1 = $src1
/*337576*/            OPC_RecordChild1, // #2 = $src2
/*337577*/            OPC_MoveChild1,
/*337578*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*337581*/            OPC_MoveParent,
/*337582*/            OPC_MoveParent,
/*337583*/            OPC_RecordChild2, // #3 = $src0
/*337584*/            OPC_CheckType, MVT::v2f64,
/*337586*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*337588*/            OPC_EmitConvertToTarget, 2,
/*337590*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rrik), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VREDUCEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*337600*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VRNDSCALE),// ->337628
/*337603*/            OPC_RecordChild0, // #1 = $src1
/*337604*/            OPC_RecordChild1, // #2 = $src2
/*337605*/            OPC_MoveChild1,
/*337606*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*337609*/            OPC_MoveParent,
/*337610*/            OPC_MoveParent,
/*337611*/            OPC_RecordChild2, // #3 = $src0
/*337612*/            OPC_CheckType, MVT::v2f64,
/*337614*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337616*/            OPC_EmitConvertToTarget, 2,
/*337618*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrik), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*337628*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VGETMANT),// ->337656
/*337631*/            OPC_RecordChild0, // #1 = $src1
/*337632*/            OPC_RecordChild1, // #2 = $src2
/*337633*/            OPC_MoveChild1,
/*337634*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*337637*/            OPC_MoveParent,
/*337638*/            OPC_MoveParent,
/*337639*/            OPC_RecordChild2, // #3 = $src0
/*337640*/            OPC_CheckType, MVT::v2f64,
/*337642*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337644*/            OPC_EmitConvertToTarget, 2,
/*337646*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rrik), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VGETMANTPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*337656*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VRANGE),// ->337686
/*337659*/            OPC_RecordChild0, // #1 = $src1
/*337660*/            OPC_RecordChild1, // #2 = $src2
/*337661*/            OPC_RecordChild2, // #3 = $src3
/*337662*/            OPC_MoveChild2,
/*337663*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*337666*/            OPC_MoveParent,
/*337667*/            OPC_MoveParent,
/*337668*/            OPC_RecordChild2, // #4 = $src0
/*337669*/            OPC_CheckType, MVT::v2f64,
/*337671*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*337673*/            OPC_EmitConvertToTarget, 3,
/*337675*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rrik), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VRANGEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*337686*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::SHUFP),// ->337716
/*337689*/            OPC_RecordChild0, // #1 = $src1
/*337690*/            OPC_RecordChild1, // #2 = $src2
/*337691*/            OPC_RecordChild2, // #3 = $src3
/*337692*/            OPC_MoveChild2,
/*337693*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*337696*/            OPC_MoveParent,
/*337697*/            OPC_MoveParent,
/*337698*/            OPC_RecordChild2, // #4 = $src0
/*337699*/            OPC_CheckType, MVT::v2f64,
/*337701*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337703*/            OPC_EmitConvertToTarget, 3,
/*337705*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rrik), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VSHUFPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*337716*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FADD),// ->337737
/*337719*/            OPC_RecordChild0, // #1 = $src1
/*337720*/            OPC_RecordChild1, // #2 = $src2
/*337721*/            OPC_MoveParent,
/*337722*/            OPC_RecordChild2, // #3 = $src0
/*337723*/            OPC_CheckType, MVT::v2f64,
/*337725*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337727*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VADDPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*337737*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FMUL),// ->337758
/*337740*/            OPC_RecordChild0, // #1 = $src1
/*337741*/            OPC_RecordChild1, // #2 = $src2
/*337742*/            OPC_MoveParent,
/*337743*/            OPC_RecordChild2, // #3 = $src0
/*337744*/            OPC_CheckType, MVT::v2f64,
/*337746*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337748*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VMULPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*337758*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FSUB),// ->337779
/*337761*/            OPC_RecordChild0, // #1 = $src1
/*337762*/            OPC_RecordChild1, // #2 = $src2
/*337763*/            OPC_MoveParent,
/*337764*/            OPC_RecordChild2, // #3 = $src0
/*337765*/            OPC_CheckType, MVT::v2f64,
/*337767*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337769*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VSUBPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*337779*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FDIV),// ->337800
/*337782*/            OPC_RecordChild0, // #1 = $src1
/*337783*/            OPC_RecordChild1, // #2 = $src2
/*337784*/            OPC_MoveParent,
/*337785*/            OPC_RecordChild2, // #3 = $src0
/*337786*/            OPC_CheckType, MVT::v2f64,
/*337788*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337790*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VDIVPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*337800*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMIN),// ->337821
/*337803*/            OPC_RecordChild0, // #1 = $src1
/*337804*/            OPC_RecordChild1, // #2 = $src2
/*337805*/            OPC_MoveParent,
/*337806*/            OPC_RecordChild2, // #3 = $src0
/*337807*/            OPC_CheckType, MVT::v2f64,
/*337809*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337811*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmin:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VMINPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*337821*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMAX),// ->337842
/*337824*/            OPC_RecordChild0, // #1 = $src1
/*337825*/            OPC_RecordChild1, // #2 = $src2
/*337826*/            OPC_MoveParent,
/*337827*/            OPC_RecordChild2, // #3 = $src0
/*337828*/            OPC_CheckType, MVT::v2f64,
/*337830*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337832*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmax:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VMAXPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*337842*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMINC),// ->337863
/*337845*/            OPC_RecordChild0, // #1 = $src1
/*337846*/            OPC_RecordChild1, // #2 = $src2
/*337847*/            OPC_MoveParent,
/*337848*/            OPC_RecordChild2, // #3 = $src0
/*337849*/            OPC_CheckType, MVT::v2f64,
/*337851*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337853*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fminc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VMINCPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*337863*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMAXC),// ->337884
/*337866*/            OPC_RecordChild0, // #1 = $src1
/*337867*/            OPC_RecordChild1, // #2 = $src2
/*337868*/            OPC_MoveParent,
/*337869*/            OPC_RecordChild2, // #3 = $src0
/*337870*/            OPC_CheckType, MVT::v2f64,
/*337872*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337874*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fmaxc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VMAXCPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*337884*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMILPV),// ->337905
/*337887*/            OPC_RecordChild0, // #1 = $src1
/*337888*/            OPC_RecordChild1, // #2 = $src2
/*337889*/            OPC_MoveParent,
/*337890*/            OPC_RecordChild2, // #3 = $src0
/*337891*/            OPC_CheckType, MVT::v2f64,
/*337893*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337895*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VPERMILPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*337905*/          /*SwitchOpcode*/ 53, TARGET_VAL(ISD::FMA),// ->337961
/*337908*/            OPC_RecordChild0, // #1 = $src2
/*337909*/            OPC_RecordChild1, // #2 = $src1
/*337910*/            OPC_RecordChild2, // #3 = $src3
/*337911*/            OPC_MoveParent,
/*337912*/            OPC_CheckType, MVT::v2f64,
/*337914*/            OPC_Scope, 14, /*->337930*/ // 3 children in Scope
/*337916*/              OPC_CheckChild2Same, 2,
/*337918*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337920*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMADD213PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*337930*/            /*Scope*/ 14, /*->337945*/
/*337931*/              OPC_CheckChild2Same, 3,
/*337933*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337935*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMADD231PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*337945*/            /*Scope*/ 14, /*->337960*/
/*337946*/              OPC_CheckChild2Same, 1,
/*337948*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337950*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMADD132PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*337960*/            0, /*End of Scope*/
/*337961*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMSUB),// ->338017
/*337964*/            OPC_RecordChild0, // #1 = $src2
/*337965*/            OPC_RecordChild1, // #2 = $src1
/*337966*/            OPC_RecordChild2, // #3 = $src3
/*337967*/            OPC_MoveParent,
/*337968*/            OPC_CheckType, MVT::v2f64,
/*337970*/            OPC_Scope, 14, /*->337986*/ // 3 children in Scope
/*337972*/              OPC_CheckChild2Same, 2,
/*337974*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337976*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMSUB213PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*337986*/            /*Scope*/ 14, /*->338001*/
/*337987*/              OPC_CheckChild2Same, 3,
/*337989*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*337991*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMSUB231PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338001*/            /*Scope*/ 14, /*->338016*/
/*338002*/              OPC_CheckChild2Same, 1,
/*338004*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338006*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMSUB132PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338016*/            0, /*End of Scope*/
/*338017*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMADDSUB),// ->338073
/*338020*/            OPC_RecordChild0, // #1 = $src2
/*338021*/            OPC_RecordChild1, // #2 = $src1
/*338022*/            OPC_RecordChild2, // #3 = $src3
/*338023*/            OPC_MoveParent,
/*338024*/            OPC_CheckType, MVT::v2f64,
/*338026*/            OPC_Scope, 14, /*->338042*/ // 3 children in Scope
/*338028*/              OPC_CheckChild2Same, 2,
/*338030*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338032*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMADDSUB213PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338042*/            /*Scope*/ 14, /*->338057*/
/*338043*/              OPC_CheckChild2Same, 3,
/*338045*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338047*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMADDSUB231PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338057*/            /*Scope*/ 14, /*->338072*/
/*338058*/              OPC_CheckChild2Same, 1,
/*338060*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338062*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMADDSUB132PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338072*/            0, /*End of Scope*/
/*338073*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMSUBADD),// ->338129
/*338076*/            OPC_RecordChild0, // #1 = $src2
/*338077*/            OPC_RecordChild1, // #2 = $src1
/*338078*/            OPC_RecordChild2, // #3 = $src3
/*338079*/            OPC_MoveParent,
/*338080*/            OPC_CheckType, MVT::v2f64,
/*338082*/            OPC_Scope, 14, /*->338098*/ // 3 children in Scope
/*338084*/              OPC_CheckChild2Same, 2,
/*338086*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338088*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMSUBADD213PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338098*/            /*Scope*/ 14, /*->338113*/
/*338099*/              OPC_CheckChild2Same, 3,
/*338101*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338103*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMSUBADD231PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338113*/            /*Scope*/ 14, /*->338128*/
/*338114*/              OPC_CheckChild2Same, 1,
/*338116*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338118*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFMSUBADD132PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338128*/            0, /*End of Scope*/
/*338129*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FNMADD),// ->338185
/*338132*/            OPC_RecordChild0, // #1 = $src2
/*338133*/            OPC_RecordChild1, // #2 = $src1
/*338134*/            OPC_RecordChild2, // #3 = $src3
/*338135*/            OPC_MoveParent,
/*338136*/            OPC_CheckType, MVT::v2f64,
/*338138*/            OPC_Scope, 14, /*->338154*/ // 3 children in Scope
/*338140*/              OPC_CheckChild2Same, 2,
/*338142*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338144*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFNMADD213PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338154*/            /*Scope*/ 14, /*->338169*/
/*338155*/              OPC_CheckChild2Same, 3,
/*338157*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338159*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFNMADD231PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338169*/            /*Scope*/ 14, /*->338184*/
/*338170*/              OPC_CheckChild2Same, 1,
/*338172*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338174*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFNMADD132PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338184*/            0, /*End of Scope*/
/*338185*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FNMSUB),// ->338241
/*338188*/            OPC_RecordChild0, // #1 = $src2
/*338189*/            OPC_RecordChild1, // #2 = $src1
/*338190*/            OPC_RecordChild2, // #3 = $src3
/*338191*/            OPC_MoveParent,
/*338192*/            OPC_CheckType, MVT::v2f64,
/*338194*/            OPC_Scope, 14, /*->338210*/ // 3 children in Scope
/*338196*/              OPC_CheckChild2Same, 2,
/*338198*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338200*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFNMSUB213PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338210*/            /*Scope*/ 14, /*->338225*/
/*338211*/              OPC_CheckChild2Same, 3,
/*338213*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338215*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFNMSUB231PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338225*/            /*Scope*/ 14, /*->338240*/
/*338226*/              OPC_CheckChild2Same, 1,
/*338228*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338230*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ128rk), 0,
                            MVT::v2f64, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Fnmsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 6
                        // Dst: (VFNMSUB132PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*338240*/            0, /*End of Scope*/
/*338241*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::VFPEXT),// ->338260
/*338244*/            OPC_RecordChild0, // #1 = $src
/*338245*/            OPC_MoveParent,
/*338246*/            OPC_RecordChild2, // #2 = $src0
/*338247*/            OPC_CheckType, MVT::v2f64,
/*338249*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338251*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rrk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86vfpext:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTPS2PDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*338260*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTSI2P),// ->338281
/*338263*/            OPC_RecordChild0, // #1 = $src
/*338264*/            OPC_CheckChild0Type, MVT::v4i32,
/*338266*/            OPC_MoveParent,
/*338267*/            OPC_RecordChild2, // #2 = $src0
/*338268*/            OPC_CheckType, MVT::v2f64,
/*338270*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338272*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rrk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VSintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTDQ2PDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*338281*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTUI2P),// ->338302
/*338284*/            OPC_RecordChild0, // #1 = $src
/*338285*/            OPC_CheckChild0Type, MVT::v4i32,
/*338287*/            OPC_MoveParent,
/*338288*/            OPC_RecordChild2, // #2 = $src0
/*338289*/            OPC_CheckType, MVT::v2f64,
/*338291*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338293*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rrk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VUintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTUDQ2PDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*338302*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SINT_TO_FP),// ->338323
/*338305*/            OPC_RecordChild0, // #1 = $src
/*338306*/            OPC_CheckChild0Type, MVT::v2i64,
/*338308*/            OPC_MoveParent,
/*338309*/            OPC_RecordChild2, // #2 = $src0
/*338310*/            OPC_CheckType, MVT::v2f64,
/*338312*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*338314*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rrk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (sint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTQQ2PDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*338323*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UINT_TO_FP),// ->338344
/*338326*/            OPC_RecordChild0, // #1 = $src
/*338327*/            OPC_CheckChild0Type, MVT::v2i64,
/*338329*/            OPC_MoveParent,
/*338330*/            OPC_RecordChild2, // #2 = $src0
/*338331*/            OPC_CheckType, MVT::v2f64,
/*338333*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*338335*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rrk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (uint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTUQQ2PDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*338344*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RSQRT14),// ->338363
/*338347*/            OPC_RecordChild0, // #1 = $src
/*338348*/            OPC_MoveParent,
/*338349*/            OPC_RecordChild2, // #2 = $src0
/*338350*/            OPC_CheckType, MVT::v2f64,
/*338352*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338354*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ128rk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rsqrt14:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT14PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*338363*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RCP14),// ->338382
/*338366*/            OPC_RecordChild0, // #1 = $src
/*338367*/            OPC_MoveParent,
/*338368*/            OPC_RecordChild2, // #2 = $src0
/*338369*/            OPC_CheckType, MVT::v2f64,
/*338371*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338373*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ128rk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rcp14:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VRCP14PDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*338382*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::FSQRT),// ->338401
/*338385*/            OPC_RecordChild0, // #1 = $src
/*338386*/            OPC_MoveParent,
/*338387*/            OPC_RecordChild2, // #2 = $src0
/*338388*/            OPC_CheckType, MVT::v2f64,
/*338390*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338392*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128rk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsqrt:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VSQRTPDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*338401*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::COMPRESS),// ->338420
/*338404*/            OPC_RecordChild0, // #1 = $src1
/*338405*/            OPC_MoveParent,
/*338406*/            OPC_RecordChild2, // #2 = $src0
/*338407*/            OPC_CheckType, MVT::v2f64,
/*338409*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338411*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZ128rrk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86compress:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VCOMPRESSPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1)
/*338420*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::EXPAND),// ->338439
/*338423*/            OPC_RecordChild0, // #1 = $src1
/*338424*/            OPC_MoveParent,
/*338425*/            OPC_RecordChild2, // #2 = $src0
/*338426*/            OPC_CheckType, MVT::v2f64,
/*338428*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338430*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rrk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86expand:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VEXPANDPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1)
/*338439*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FFLOOR),// ->338462
/*338442*/            OPC_RecordChild0, // #1 = $src
/*338443*/            OPC_MoveParent,
/*338444*/            OPC_RecordChild2, // #2 = $dst
/*338445*/            OPC_CheckType, MVT::v2f64,
/*338447*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338449*/            OPC_EmitInteger, MVT::i32, 9, 
/*338452*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrik), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ffloor:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2f64] }:$dst) - Complexity = 6
                      // Dst: (VRNDSCALEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, 9:{ *:[i32] })
/*338462*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FNEARBYINT),// ->338485
/*338465*/            OPC_RecordChild0, // #1 = $src
/*338466*/            OPC_MoveParent,
/*338467*/            OPC_RecordChild2, // #2 = $dst
/*338468*/            OPC_CheckType, MVT::v2f64,
/*338470*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338472*/            OPC_EmitInteger, MVT::i32, 12, 
/*338475*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrik), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fnearbyint:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2f64] }:$dst) - Complexity = 6
                      // Dst: (VRNDSCALEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, 12:{ *:[i32] })
/*338485*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FCEIL),// ->338508
/*338488*/            OPC_RecordChild0, // #1 = $src
/*338489*/            OPC_MoveParent,
/*338490*/            OPC_RecordChild2, // #2 = $dst
/*338491*/            OPC_CheckType, MVT::v2f64,
/*338493*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338495*/            OPC_EmitInteger, MVT::i32, 10, 
/*338498*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrik), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fceil:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2f64] }:$dst) - Complexity = 6
                      // Dst: (VRNDSCALEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, 10:{ *:[i32] })
/*338508*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FRINT),// ->338531
/*338511*/            OPC_RecordChild0, // #1 = $src
/*338512*/            OPC_MoveParent,
/*338513*/            OPC_RecordChild2, // #2 = $dst
/*338514*/            OPC_CheckType, MVT::v2f64,
/*338516*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338518*/            OPC_EmitInteger, MVT::i32, 4, 
/*338521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrik), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (frint:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2f64] }:$dst) - Complexity = 6
                      // Dst: (VRNDSCALEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] })
/*338531*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FTRUNC),// ->338554
/*338534*/            OPC_RecordChild0, // #1 = $src
/*338535*/            OPC_MoveParent,
/*338536*/            OPC_RecordChild2, // #2 = $dst
/*338537*/            OPC_CheckType, MVT::v2f64,
/*338539*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338541*/            OPC_EmitInteger, MVT::i32, 11, 
/*338544*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrik), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (ftrunc:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2f64] }:$dst) - Complexity = 6
                      // Dst: (VRNDSCALEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, 11:{ *:[i32] })
/*338554*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::VBROADCAST),// ->338607
/*338557*/            OPC_RecordChild0, // #1 = $src
/*338558*/            OPC_Scope, 17, /*->338577*/ // 2 children in Scope
/*338560*/              OPC_CheckChild0Type, MVT::v2f64,
/*338562*/              OPC_MoveParent,
/*338563*/              OPC_RecordChild2, // #2 = $src0
/*338564*/              OPC_CheckType, MVT::v2f64,
/*338566*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338568*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rrk), 0,
                            MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                        // Dst: (VMOVDDUPZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*338577*/            /*Scope*/ 28, /*->338606*/
/*338578*/              OPC_CheckChild0Type, MVT::f64,
/*338580*/              OPC_MoveParent,
/*338581*/              OPC_RecordChild2, // #2 = $src0
/*338582*/              OPC_CheckType, MVT::v2f64,
/*338584*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338586*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*338589*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*338597*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rrk), 0,
                            MVT::v2f64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } f64:{ *:[f64] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                        // Dst: (VMOVDDUPZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*338606*/            0, /*End of Scope*/
/*338607*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKH),// ->338628
/*338610*/            OPC_RecordChild0, // #1 = $src1
/*338611*/            OPC_RecordChild1, // #2 = $src2
/*338612*/            OPC_MoveParent,
/*338613*/            OPC_RecordChild2, // #3 = $src0
/*338614*/            OPC_CheckType, MVT::v2f64,
/*338616*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338618*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckh:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VUNPCKHPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*338628*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKL),// ->338649
/*338631*/            OPC_RecordChild0, // #1 = $src1
/*338632*/            OPC_RecordChild1, // #2 = $src2
/*338633*/            OPC_MoveParent,
/*338634*/            OPC_RecordChild2, // #3 = $src0
/*338635*/            OPC_CheckType, MVT::v2f64,
/*338637*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338639*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ128rrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Unpckl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VUNPCKLPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*338649*/          0, // EndSwitchOpcode
/*338650*/        /*Scope*/ 88, /*->338739*/
/*338651*/          OPC_RecordChild1, // #1 = $src1
/*338652*/          OPC_RecordChild2, // #2 = $src0
/*338653*/          OPC_CheckType, MVT::v2f64,
/*338655*/          OPC_Scope, 11, /*->338668*/ // 2 children in Scope
/*338657*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*338659*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rrk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src0) - Complexity = 3
                      // Dst: (VMOVAPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1)
/*338668*/          /*Scope*/ 69, /*->338738*/
/*338669*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*338671*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #3
/*338677*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*338680*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*338689*/            OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*338692*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*338700*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #8
/*338706*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*338709*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*338718*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZrrk), 0,
                          MVT::v8f64, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*338727*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*338730*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f64, 2/*#Ops*/, 11, 12, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src0) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v2f64] } (VMOVAPDZrrk:{ *:[v8f64] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src0, sub_xmm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v8i1] } VK2WM:{ *:[v2i1] }:$mask, VK8WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*338738*/          0, /*End of Scope*/
/*338739*/        0, /*End of Scope*/
/*338740*/      /*Scope*/ 3|128,79|128,2/*42883*/, /*->381626*/
/*338743*/        OPC_CheckChild0Type, MVT::v4i1,
/*338745*/        OPC_Scope, 65|128,2/*321*/, /*->339069*/ // 20 children in Scope
/*338748*/          OPC_MoveChild1,
/*338749*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*338752*/          OPC_MoveChild0,
/*338753*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*338756*/          OPC_RecordChild0, // #1 = $src
/*338757*/          OPC_Scope, 35, /*->338794*/ // 7 children in Scope
/*338759*/            OPC_CheckChild0Type, MVT::v4i64,
/*338761*/            OPC_CheckChild1Integer, 0, 
/*338763*/            OPC_CheckChild1Type, MVT::iPTR,
/*338765*/            OPC_CheckType, MVT::v2i64,
/*338767*/            OPC_MoveParent,
/*338768*/            OPC_MoveParent,
/*338769*/            OPC_RecordChild2, // #2 = $src0
/*338770*/            OPC_CheckType, MVT::v4i32,
/*338772*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338774*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*338777*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 3,  // Results = #4
/*338785*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrk), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 4, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v4i32] }:$src0) - Complexity = 14
                      // Dst: (VMOVDQA32Z128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }))
/*338794*/          /*Scope*/ 35, /*->338830*/
/*338795*/            OPC_CheckChild0Type, MVT::v16i16,
/*338797*/            OPC_CheckChild1Integer, 0, 
/*338799*/            OPC_CheckChild1Type, MVT::iPTR,
/*338801*/            OPC_CheckType, MVT::v8i16,
/*338803*/            OPC_MoveParent,
/*338804*/            OPC_MoveParent,
/*338805*/            OPC_RecordChild2, // #2 = $src0
/*338806*/            OPC_CheckType, MVT::v4i32,
/*338808*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338810*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*338813*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 3,  // Results = #4
/*338821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrk), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 4, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v4i32] }:$src0) - Complexity = 14
                      // Dst: (VMOVDQA32Z128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] }))
/*338830*/          /*Scope*/ 35, /*->338866*/
/*338831*/            OPC_CheckChild0Type, MVT::v32i8,
/*338833*/            OPC_CheckChild1Integer, 0, 
/*338835*/            OPC_CheckChild1Type, MVT::iPTR,
/*338837*/            OPC_CheckType, MVT::v16i8,
/*338839*/            OPC_MoveParent,
/*338840*/            OPC_MoveParent,
/*338841*/            OPC_RecordChild2, // #2 = $src0
/*338842*/            OPC_CheckType, MVT::v4i32,
/*338844*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338846*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*338849*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 1, 3,  // Results = #4
/*338857*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrk), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 4, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v4i32] }:$src0) - Complexity = 14
                      // Dst: (VMOVDQA32Z128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] }))
/*338866*/          /*Scope*/ 35, /*->338902*/
/*338867*/            OPC_CheckChild0Type, MVT::v8i64,
/*338869*/            OPC_CheckChild1Integer, 0, 
/*338871*/            OPC_CheckChild1Type, MVT::iPTR,
/*338873*/            OPC_CheckType, MVT::v2i64,
/*338875*/            OPC_MoveParent,
/*338876*/            OPC_MoveParent,
/*338877*/            OPC_RecordChild2, // #2 = $src0
/*338878*/            OPC_CheckType, MVT::v4i32,
/*338880*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338882*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*338885*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 3,  // Results = #4
/*338893*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrk), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 4, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v4i32] }:$src0) - Complexity = 14
                      // Dst: (VMOVDQA32Z128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, sub_xmm:{ *:[i32] }))
/*338902*/          /*Scope*/ 35, /*->338938*/
/*338903*/            OPC_CheckChild0Type, MVT::v32i16,
/*338905*/            OPC_CheckChild1Integer, 0, 
/*338907*/            OPC_CheckChild1Type, MVT::iPTR,
/*338909*/            OPC_CheckType, MVT::v8i16,
/*338911*/            OPC_MoveParent,
/*338912*/            OPC_MoveParent,
/*338913*/            OPC_RecordChild2, // #2 = $src0
/*338914*/            OPC_CheckType, MVT::v4i32,
/*338916*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338918*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*338921*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 3,  // Results = #4
/*338929*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrk), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 4, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v4i32] }:$src0) - Complexity = 14
                      // Dst: (VMOVDQA32Z128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, sub_xmm:{ *:[i32] }))
/*338938*/          /*Scope*/ 35, /*->338974*/
/*338939*/            OPC_CheckChild0Type, MVT::v64i8,
/*338941*/            OPC_CheckChild1Integer, 0, 
/*338943*/            OPC_CheckChild1Type, MVT::iPTR,
/*338945*/            OPC_CheckType, MVT::v16i8,
/*338947*/            OPC_MoveParent,
/*338948*/            OPC_MoveParent,
/*338949*/            OPC_RecordChild2, // #2 = $src0
/*338950*/            OPC_CheckType, MVT::v4i32,
/*338952*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338954*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*338957*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 1, 3,  // Results = #4
/*338965*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrk), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 4, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v4i32] }:$src0) - Complexity = 14
                      // Dst: (VMOVDQA32Z128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, sub_xmm:{ *:[i32] }))
/*338974*/          /*Scope*/ 93, /*->339068*/
/*338975*/            OPC_CheckChild1Integer, 0, 
/*338977*/            OPC_CheckChild1Type, MVT::iPTR,
/*338979*/            OPC_SwitchType /*3 cases */, 27, MVT::v8i32,// ->339009
/*338982*/              OPC_MoveParent,
/*338983*/              OPC_MoveParent,
/*338984*/              OPC_RecordChild2, // #2 = $src0
/*338985*/              OPC_CheckType, MVT::v4i64,
/*338987*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*338989*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*338992*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v8i32, 2/*#Ops*/, 1, 3,  // Results = #4
/*339000*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] })), VR256X:{ *:[v4i64] }:$src0) - Complexity = 14
                        // Dst: (VMOVDQA64Z256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, sub_ymm:{ *:[i32] }))
/*339009*/            /*SwitchType*/ 27, MVT::v16i16,// ->339038
/*339011*/              OPC_MoveParent,
/*339012*/              OPC_MoveParent,
/*339013*/              OPC_RecordChild2, // #2 = $src0
/*339014*/              OPC_CheckType, MVT::v4i64,
/*339016*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*339018*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*339021*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v16i16, 2/*#Ops*/, 1, 3,  // Results = #4
/*339029*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] })), VR256X:{ *:[v4i64] }:$src0) - Complexity = 14
                        // Dst: (VMOVDQA64Z256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, sub_ymm:{ *:[i32] }))
/*339038*/            /*SwitchType*/ 27, MVT::v32i8,// ->339067
/*339040*/              OPC_MoveParent,
/*339041*/              OPC_MoveParent,
/*339042*/              OPC_RecordChild2, // #2 = $src0
/*339043*/              OPC_CheckType, MVT::v4i64,
/*339045*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*339047*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*339050*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v32i8, 2/*#Ops*/, 1, 3,  // Results = #4
/*339058*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] })), VR256X:{ *:[v4i64] }:$src0) - Complexity = 14
                        // Dst: (VMOVDQA64Z256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, sub_ymm:{ *:[i32] }))
/*339067*/            0, // EndSwitchType
/*339068*/          0, /*End of Scope*/
/*339069*/        /*Scope*/ 76, /*->339146*/
/*339070*/          OPC_RecordChild1, // #1 = $idx
/*339071*/          OPC_MoveChild1,
/*339072*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*339075*/          OPC_RecordChild0, // #2 = $src1
/*339076*/          OPC_Scope, 33, /*->339111*/ // 2 children in Scope
/*339078*/            OPC_CheckChild0Type, MVT::v16i32,
/*339080*/            OPC_MoveChild1,
/*339081*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*339084*/            OPC_CheckType, MVT::iPTR,
/*339086*/            OPC_MoveParent,
/*339087*/            OPC_MoveParent,
/*339088*/            OPC_MoveChild2,
/*339089*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339092*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339094*/            OPC_MoveParent,
/*339095*/            OPC_CheckType, MVT::v4i32,
/*339097*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339099*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*339102*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VEXTRACTI32x4Zrrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*339111*/          /*Scope*/ 33, /*->339145*/
/*339112*/            OPC_CheckChild0Type, MVT::v8i32,
/*339114*/            OPC_MoveChild1,
/*339115*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*339118*/            OPC_CheckType, MVT::iPTR,
/*339120*/            OPC_MoveParent,
/*339121*/            OPC_MoveParent,
/*339122*/            OPC_MoveChild2,
/*339123*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339126*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339128*/            OPC_MoveParent,
/*339129*/            OPC_CheckType, MVT::v4i32,
/*339131*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*339133*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*339136*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VEXTRACTI32x4Z256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*339145*/          0, /*End of Scope*/
/*339146*/        /*Scope*/ 108|128,21/*2796*/, /*->341944*/
/*339148*/          OPC_MoveChild1,
/*339149*/          OPC_SwitchOpcode /*55 cases */, 109, TARGET_VAL(X86ISD::VBROADCAST),// ->339262
/*339153*/            OPC_RecordChild0, // #1 = $src
/*339154*/            OPC_Scope, 29, /*->339185*/ // 4 children in Scope
/*339156*/              OPC_CheckChild0Type, MVT::i64,
/*339158*/              OPC_MoveParent,
/*339159*/              OPC_MoveChild2,
/*339160*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*339163*/              OPC_MoveChild0,
/*339164*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339167*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339169*/              OPC_CheckType, MVT::v8i32,
/*339171*/              OPC_MoveParent,
/*339172*/              OPC_MoveParent,
/*339173*/              OPC_CheckType, MVT::v4i64,
/*339175*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*339177*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZ256rkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i64] } GR64:{ *:[i64] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTQrZ256rkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, GR64:{ *:[i64] }:$src)
/*339185*/            /*Scope*/ 29, /*->339215*/
/*339186*/              OPC_CheckChild0Type, MVT::v2i64,
/*339188*/              OPC_MoveParent,
/*339189*/              OPC_MoveChild2,
/*339190*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*339193*/              OPC_MoveChild0,
/*339194*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339197*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339199*/              OPC_CheckType, MVT::v8i32,
/*339201*/              OPC_MoveParent,
/*339202*/              OPC_MoveParent,
/*339203*/              OPC_CheckType, MVT::v4i64,
/*339205*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*339207*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256rkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i64] } VR128X:{ *:[v2i64] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTQZ256rkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*339215*/            /*Scope*/ 22, /*->339238*/
/*339216*/              OPC_CheckChild0Type, MVT::i32,
/*339218*/              OPC_MoveParent,
/*339219*/              OPC_MoveChild2,
/*339220*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339223*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339225*/              OPC_MoveParent,
/*339226*/              OPC_CheckType, MVT::v4i32,
/*339228*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*339230*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZ128rkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i32] } GR32:{ *:[i32] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPBROADCASTDrZ128rkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, GR32:{ *:[i32] }:$src)
/*339238*/            /*Scope*/ 22, /*->339261*/
/*339239*/              OPC_CheckChild0Type, MVT::v4i32,
/*339241*/              OPC_MoveParent,
/*339242*/              OPC_MoveChild2,
/*339243*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339246*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339248*/              OPC_MoveParent,
/*339249*/              OPC_CheckType, MVT::v4i32,
/*339251*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*339253*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ128rkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPBROADCASTDZ128rkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*339261*/            0, /*End of Scope*/
/*339262*/          /*SwitchOpcode*/ 42|128,4/*554*/, TARGET_VAL(ISD::BITCAST),// ->339820
/*339266*/            OPC_Scope, 20|128,1/*148*/, /*->339417*/ // 3 children in Scope
/*339269*/              OPC_MoveChild0,
/*339270*/              OPC_SwitchOpcode /*5 cases */, 26, TARGET_VAL(X86ISD::VBROADCAST),// ->339300
/*339274*/                OPC_RecordChild0, // #1 = $src
/*339275*/                OPC_CheckChild0Type, MVT::v2i64,
/*339277*/                OPC_CheckType, MVT::v2i64,
/*339279*/                OPC_MoveParent,
/*339280*/                OPC_MoveParent,
/*339281*/                OPC_MoveChild2,
/*339282*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339285*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339287*/                OPC_MoveParent,
/*339288*/                OPC_CheckType, MVT::v4i32,
/*339290*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*339292*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z128rkz), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VBroadcast:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VBROADCASTI32X2Z128rkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*339300*/              /*SwitchOpcode*/ 26, TARGET_VAL(ISD::AND),// ->339329
/*339303*/                OPC_RecordChild0, // #1 = $src1
/*339304*/                OPC_RecordChild1, // #2 = $src2
/*339305*/                OPC_CheckType, MVT::v2i64,
/*339307*/                OPC_MoveParent,
/*339308*/                OPC_MoveParent,
/*339309*/                OPC_MoveChild2,
/*339310*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339313*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339315*/                OPC_MoveParent,
/*339316*/                OPC_CheckType, MVT::v4i32,
/*339318*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*339320*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrkz), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPANDDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*339329*/              /*SwitchOpcode*/ 26, TARGET_VAL(ISD::OR),// ->339358
/*339332*/                OPC_RecordChild0, // #1 = $src1
/*339333*/                OPC_RecordChild1, // #2 = $src2
/*339334*/                OPC_CheckType, MVT::v2i64,
/*339336*/                OPC_MoveParent,
/*339337*/                OPC_MoveParent,
/*339338*/                OPC_MoveChild2,
/*339339*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339342*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339344*/                OPC_MoveParent,
/*339345*/                OPC_CheckType, MVT::v4i32,
/*339347*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*339349*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrkz), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPORDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*339358*/              /*SwitchOpcode*/ 26, TARGET_VAL(ISD::XOR),// ->339387
/*339361*/                OPC_RecordChild0, // #1 = $src1
/*339362*/                OPC_RecordChild1, // #2 = $src2
/*339363*/                OPC_CheckType, MVT::v2i64,
/*339365*/                OPC_MoveParent,
/*339366*/                OPC_MoveParent,
/*339367*/                OPC_MoveChild2,
/*339368*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339371*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339373*/                OPC_MoveParent,
/*339374*/                OPC_CheckType, MVT::v4i32,
/*339376*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*339378*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrkz), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPXORDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*339387*/              /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::ANDNP),// ->339416
/*339390*/                OPC_RecordChild0, // #1 = $src1
/*339391*/                OPC_RecordChild1, // #2 = $src2
/*339392*/                OPC_CheckType, MVT::v2i64,
/*339394*/                OPC_MoveParent,
/*339395*/                OPC_MoveParent,
/*339396*/                OPC_MoveChild2,
/*339397*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339400*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339402*/                OPC_MoveParent,
/*339403*/                OPC_CheckType, MVT::v4i32,
/*339405*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*339407*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrkz), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPANDNDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*339416*/              0, // EndSwitchOpcode
/*339417*/            /*Scope*/ 106|128,2/*362*/, /*->339781*/
/*339419*/              OPC_RecordChild0, // #1 = $ins
/*339420*/              OPC_MoveChild0,
/*339421*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->339505
/*339425*/                OPC_RecordChild0, // #2 = $src1
/*339426*/                OPC_RecordChild1, // #3 = $src2
/*339427*/                OPC_MoveChild2,
/*339428*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*339431*/                OPC_CheckType, MVT::iPTR,
/*339433*/                OPC_MoveParent,
/*339434*/                OPC_SwitchType /*3 cases */, 21, MVT::v8i32,// ->339458
/*339437*/                  OPC_MoveParent,
/*339438*/                  OPC_MoveParent,
/*339439*/                  OPC_RecordChild2, // #4 = $src0
/*339440*/                  OPC_CheckType, MVT::v4i64,
/*339442*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*339444*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*339447*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rrk), 0,
                                MVT::v4i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v4i64] }:$src0) - Complexity = 12
                            // Dst: (VINSERTF64x2Z256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ins))
/*339458*/                /*SwitchType*/ 21, MVT::v16i16,// ->339481
/*339460*/                  OPC_MoveParent,
/*339461*/                  OPC_MoveParent,
/*339462*/                  OPC_RecordChild2, // #4 = $src0
/*339463*/                  OPC_CheckType, MVT::v4i64,
/*339465*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*339467*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*339470*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rrk), 0,
                                MVT::v4i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v4i64] }:$src0) - Complexity = 12
                            // Dst: (VINSERTF64x2Z256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*339481*/                /*SwitchType*/ 21, MVT::v32i8,// ->339504
/*339483*/                  OPC_MoveParent,
/*339484*/                  OPC_MoveParent,
/*339485*/                  OPC_RecordChild2, // #4 = $src0
/*339486*/                  OPC_CheckType, MVT::v4i64,
/*339488*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*339490*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*339493*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rrk), 0,
                                MVT::v4i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (insert_subvector:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v4i64] }:$src0) - Complexity = 12
                            // Dst: (VINSERTF64x2Z256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*339504*/                0, // EndSwitchType
/*339505*/              /*SwitchOpcode*/ 15|128,2/*271*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->339780
/*339509*/                OPC_RecordChild0, // #2 = $src
/*339510*/                OPC_Scope, 31, /*->339543*/ // 7 children in Scope
/*339512*/                  OPC_CheckChild0Type, MVT::v4i64,
/*339514*/                  OPC_MoveChild1,
/*339515*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*339518*/                  OPC_CheckType, MVT::iPTR,
/*339520*/                  OPC_MoveParent,
/*339521*/                  OPC_CheckType, MVT::v2i64,
/*339523*/                  OPC_MoveParent,
/*339524*/                  OPC_MoveParent,
/*339525*/                  OPC_RecordChild2, // #3 = $src0
/*339526*/                  OPC_CheckType, MVT::v4i32,
/*339528*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*339530*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*339533*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rrk), 0,
                                MVT::v4i32, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTI32x4Z256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*339543*/                /*Scope*/ 31, /*->339575*/
/*339544*/                  OPC_CheckChild0Type, MVT::v16i16,
/*339546*/                  OPC_MoveChild1,
/*339547*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*339550*/                  OPC_CheckType, MVT::iPTR,
/*339552*/                  OPC_MoveParent,
/*339553*/                  OPC_CheckType, MVT::v8i16,
/*339555*/                  OPC_MoveParent,
/*339556*/                  OPC_MoveParent,
/*339557*/                  OPC_RecordChild2, // #3 = $src0
/*339558*/                  OPC_CheckType, MVT::v4i32,
/*339560*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*339562*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*339565*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rrk), 0,
                                MVT::v4i32, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTI32x4Z256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*339575*/                /*Scope*/ 31, /*->339607*/
/*339576*/                  OPC_CheckChild0Type, MVT::v32i8,
/*339578*/                  OPC_MoveChild1,
/*339579*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*339582*/                  OPC_CheckType, MVT::iPTR,
/*339584*/                  OPC_MoveParent,
/*339585*/                  OPC_CheckType, MVT::v16i8,
/*339587*/                  OPC_MoveParent,
/*339588*/                  OPC_MoveParent,
/*339589*/                  OPC_RecordChild2, // #3 = $src0
/*339590*/                  OPC_CheckType, MVT::v4i32,
/*339592*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*339594*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*339597*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rrk), 0,
                                MVT::v4i32, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTI32x4Z256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*339607*/                /*Scope*/ 31, /*->339639*/
/*339608*/                  OPC_CheckChild0Type, MVT::v8i64,
/*339610*/                  OPC_MoveChild1,
/*339611*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*339614*/                  OPC_CheckType, MVT::iPTR,
/*339616*/                  OPC_MoveParent,
/*339617*/                  OPC_CheckType, MVT::v2i64,
/*339619*/                  OPC_MoveParent,
/*339620*/                  OPC_MoveParent,
/*339621*/                  OPC_RecordChild2, // #3 = $src0
/*339622*/                  OPC_CheckType, MVT::v4i32,
/*339624*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339626*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*339629*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrrk), 0,
                                MVT::v4i32, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTI32x4Zrrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8i64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*339639*/                /*Scope*/ 31, /*->339671*/
/*339640*/                  OPC_CheckChild0Type, MVT::v32i16,
/*339642*/                  OPC_MoveChild1,
/*339643*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*339646*/                  OPC_CheckType, MVT::iPTR,
/*339648*/                  OPC_MoveParent,
/*339649*/                  OPC_CheckType, MVT::v8i16,
/*339651*/                  OPC_MoveParent,
/*339652*/                  OPC_MoveParent,
/*339653*/                  OPC_RecordChild2, // #3 = $src0
/*339654*/                  OPC_CheckType, MVT::v4i32,
/*339656*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339658*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*339661*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrrk), 0,
                                MVT::v4i32, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTI32x4Zrrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*339671*/                /*Scope*/ 31, /*->339703*/
/*339672*/                  OPC_CheckChild0Type, MVT::v64i8,
/*339674*/                  OPC_MoveChild1,
/*339675*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*339678*/                  OPC_CheckType, MVT::iPTR,
/*339680*/                  OPC_MoveParent,
/*339681*/                  OPC_CheckType, MVT::v16i8,
/*339683*/                  OPC_MoveParent,
/*339684*/                  OPC_MoveParent,
/*339685*/                  OPC_RecordChild2, // #3 = $src0
/*339686*/                  OPC_CheckType, MVT::v4i32,
/*339688*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339690*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*339693*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrrk), 0,
                                MVT::v4i32, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTI32x4Zrrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*339703*/                /*Scope*/ 75, /*->339779*/
/*339704*/                  OPC_MoveChild1,
/*339705*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*339708*/                  OPC_CheckType, MVT::iPTR,
/*339710*/                  OPC_MoveParent,
/*339711*/                  OPC_SwitchType /*3 cases */, 20, MVT::v8i32,// ->339734
/*339714*/                    OPC_MoveParent,
/*339715*/                    OPC_MoveParent,
/*339716*/                    OPC_RecordChild2, // #3 = $src0
/*339717*/                    OPC_CheckType, MVT::v4i64,
/*339719*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339721*/                    OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*339724*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrrk), 0,
                                  MVT::v4i64, 4/*#Ops*/, 3, 0, 2, 4, 
                              // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v4i64] }:$src0) - Complexity = 12
                              // Dst: (VEXTRACTI64x4Zrrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16i32] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ext))
/*339734*/                  /*SwitchType*/ 20, MVT::v16i16,// ->339756
/*339736*/                    OPC_MoveParent,
/*339737*/                    OPC_MoveParent,
/*339738*/                    OPC_RecordChild2, // #3 = $src0
/*339739*/                    OPC_CheckType, MVT::v4i64,
/*339741*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339743*/                    OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*339746*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrrk), 0,
                                  MVT::v4i64, 4/*#Ops*/, 3, 0, 2, 4, 
                              // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v4i64] }:$src0) - Complexity = 12
                              // Dst: (VEXTRACTI64x4Zrrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/*339756*/                  /*SwitchType*/ 20, MVT::v32i8,// ->339778
/*339758*/                    OPC_MoveParent,
/*339759*/                    OPC_MoveParent,
/*339760*/                    OPC_RecordChild2, // #3 = $src0
/*339761*/                    OPC_CheckType, MVT::v4i64,
/*339763*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339765*/                    OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*339768*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrrk), 0,
                                  MVT::v4i64, 4/*#Ops*/, 3, 0, 2, 4, 
                              // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v4i64] }:$src0) - Complexity = 12
                              // Dst: (VEXTRACTI64x4Zrrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/*339778*/                  0, // EndSwitchType
/*339779*/                0, /*End of Scope*/
/*339780*/              0, // EndSwitchOpcode
/*339781*/            /*Scope*/ 37, /*->339819*/
/*339782*/              OPC_MoveChild0,
/*339783*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*339786*/              OPC_RecordChild0, // #1 = $src1
/*339787*/              OPC_RecordChild1, // #2 = $src2
/*339788*/              OPC_RecordChild2, // #3 = $src3
/*339789*/              OPC_MoveChild2,
/*339790*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*339793*/              OPC_MoveParent,
/*339794*/              OPC_CheckType, MVT::v2i64,
/*339796*/              OPC_MoveParent,
/*339797*/              OPC_MoveParent,
/*339798*/              OPC_RecordChild2, // #4 = $src0
/*339799*/              OPC_CheckType, MVT::v4i32,
/*339801*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*339803*/              OPC_EmitConvertToTarget, 3,
/*339805*/              OPC_EmitNodeXForm, 14, 5, // ValignqImm32XForm
/*339808*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rrik), 0,
                            MVT::v4i32, 5/*#Ops*/, 4, 0, 1, 2, 6, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 12
                        // Dst: (VALIGNDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*339819*/            0, /*End of Scope*/
/*339820*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VPERMV3),// ->339877
/*339823*/            OPC_RecordChild0, // #1 = $src1
/*339824*/            OPC_RecordChild1, // #2 = $src2
/*339825*/            OPC_RecordChild2, // #3 = $src3
/*339826*/            OPC_MoveParent,
/*339827*/            OPC_MoveChild2,
/*339828*/            OPC_SwitchOpcode /*2 cases */, 24, TARGET_VAL(ISD::BITCAST),// ->339856
/*339832*/              OPC_MoveChild0,
/*339833*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339836*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339838*/              OPC_CheckType, MVT::v8i32,
/*339840*/              OPC_MoveParent,
/*339841*/              OPC_MoveParent,
/*339842*/              OPC_CheckType, MVT::v4i64,
/*339844*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*339846*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q256rrkz), 0,
                            MVT::v4i64, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMT2Q256rrkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*339856*/            /*SwitchOpcode*/ 17, TARGET_VAL(ISD::BUILD_VECTOR),// ->339876
/*339859*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339861*/              OPC_MoveParent,
/*339862*/              OPC_CheckType, MVT::v4i32,
/*339864*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*339866*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D128rrkz), 0,
                            MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPERMT2D128rrkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*339876*/            0, // EndSwitchOpcode
/*339877*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::ADD),// ->339910
/*339880*/            OPC_RecordChild0, // #1 = $src1
/*339881*/            OPC_RecordChild1, // #2 = $src2
/*339882*/            OPC_MoveParent,
/*339883*/            OPC_MoveChild2,
/*339884*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*339887*/            OPC_MoveChild0,
/*339888*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339891*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339893*/            OPC_CheckType, MVT::v8i32,
/*339895*/            OPC_MoveParent,
/*339896*/            OPC_MoveParent,
/*339897*/            OPC_CheckType, MVT::v4i64,
/*339899*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*339901*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPADDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*339910*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SUB),// ->339943
/*339913*/            OPC_RecordChild0, // #1 = $src1
/*339914*/            OPC_RecordChild1, // #2 = $src2
/*339915*/            OPC_MoveParent,
/*339916*/            OPC_MoveChild2,
/*339917*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*339920*/            OPC_MoveChild0,
/*339921*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339924*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339926*/            OPC_CheckType, MVT::v8i32,
/*339928*/            OPC_MoveParent,
/*339929*/            OPC_MoveParent,
/*339930*/            OPC_CheckType, MVT::v4i64,
/*339932*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*339934*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSUBQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*339943*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::MUL),// ->339976
/*339946*/            OPC_RecordChild0, // #1 = $src1
/*339947*/            OPC_RecordChild1, // #2 = $src2
/*339948*/            OPC_MoveParent,
/*339949*/            OPC_MoveChild2,
/*339950*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*339953*/            OPC_MoveChild0,
/*339954*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339957*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339959*/            OPC_CheckType, MVT::v8i32,
/*339961*/            OPC_MoveParent,
/*339962*/            OPC_MoveParent,
/*339963*/            OPC_CheckType, MVT::v4i64,
/*339965*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*339967*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULLQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*339976*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PMULDQ),// ->340009
/*339979*/            OPC_RecordChild0, // #1 = $src1
/*339980*/            OPC_RecordChild1, // #2 = $src2
/*339981*/            OPC_MoveParent,
/*339982*/            OPC_MoveChild2,
/*339983*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*339986*/            OPC_MoveChild0,
/*339987*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*339990*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*339992*/            OPC_CheckType, MVT::v8i32,
/*339994*/            OPC_MoveParent,
/*339995*/            OPC_MoveParent,
/*339996*/            OPC_CheckType, MVT::v4i64,
/*339998*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340000*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuldq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340009*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PMULUDQ),// ->340042
/*340012*/            OPC_RecordChild0, // #1 = $src1
/*340013*/            OPC_RecordChild1, // #2 = $src2
/*340014*/            OPC_MoveParent,
/*340015*/            OPC_MoveChild2,
/*340016*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340019*/            OPC_MoveChild0,
/*340020*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340023*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340025*/            OPC_CheckType, MVT::v8i32,
/*340027*/            OPC_MoveParent,
/*340028*/            OPC_MoveParent,
/*340029*/            OPC_CheckType, MVT::v4i64,
/*340031*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340033*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuludq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULUDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340042*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SMAX),// ->340075
/*340045*/            OPC_RecordChild0, // #1 = $src1
/*340046*/            OPC_RecordChild1, // #2 = $src2
/*340047*/            OPC_MoveParent,
/*340048*/            OPC_MoveChild2,
/*340049*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340052*/            OPC_MoveChild0,
/*340053*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340056*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340058*/            OPC_CheckType, MVT::v8i32,
/*340060*/            OPC_MoveParent,
/*340061*/            OPC_MoveParent,
/*340062*/            OPC_CheckType, MVT::v4i64,
/*340064*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340066*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMAXSQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340075*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::UMAX),// ->340108
/*340078*/            OPC_RecordChild0, // #1 = $src1
/*340079*/            OPC_RecordChild1, // #2 = $src2
/*340080*/            OPC_MoveParent,
/*340081*/            OPC_MoveChild2,
/*340082*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340085*/            OPC_MoveChild0,
/*340086*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340089*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340091*/            OPC_CheckType, MVT::v8i32,
/*340093*/            OPC_MoveParent,
/*340094*/            OPC_MoveParent,
/*340095*/            OPC_CheckType, MVT::v4i64,
/*340097*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340099*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMAXUQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340108*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SMIN),// ->340141
/*340111*/            OPC_RecordChild0, // #1 = $src1
/*340112*/            OPC_RecordChild1, // #2 = $src2
/*340113*/            OPC_MoveParent,
/*340114*/            OPC_MoveChild2,
/*340115*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340118*/            OPC_MoveChild0,
/*340119*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340122*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340124*/            OPC_CheckType, MVT::v8i32,
/*340126*/            OPC_MoveParent,
/*340127*/            OPC_MoveParent,
/*340128*/            OPC_CheckType, MVT::v4i64,
/*340130*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340132*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMINSQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340141*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::UMIN),// ->340174
/*340144*/            OPC_RecordChild0, // #1 = $src1
/*340145*/            OPC_RecordChild1, // #2 = $src2
/*340146*/            OPC_MoveParent,
/*340147*/            OPC_MoveChild2,
/*340148*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340151*/            OPC_MoveChild0,
/*340152*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340155*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340157*/            OPC_CheckType, MVT::v8i32,
/*340159*/            OPC_MoveParent,
/*340160*/            OPC_MoveParent,
/*340161*/            OPC_CheckType, MVT::v4i64,
/*340163*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340165*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMINUQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340174*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::AND),// ->340207
/*340177*/            OPC_RecordChild0, // #1 = $src1
/*340178*/            OPC_RecordChild1, // #2 = $src2
/*340179*/            OPC_MoveParent,
/*340180*/            OPC_MoveChild2,
/*340181*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340184*/            OPC_MoveChild0,
/*340185*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340188*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340190*/            OPC_CheckType, MVT::v8i32,
/*340192*/            OPC_MoveParent,
/*340193*/            OPC_MoveParent,
/*340194*/            OPC_CheckType, MVT::v4i64,
/*340196*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340198*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPANDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340207*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::OR),// ->340240
/*340210*/            OPC_RecordChild0, // #1 = $src1
/*340211*/            OPC_RecordChild1, // #2 = $src2
/*340212*/            OPC_MoveParent,
/*340213*/            OPC_MoveChild2,
/*340214*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340217*/            OPC_MoveChild0,
/*340218*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340221*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340223*/            OPC_CheckType, MVT::v8i32,
/*340225*/            OPC_MoveParent,
/*340226*/            OPC_MoveParent,
/*340227*/            OPC_CheckType, MVT::v4i64,
/*340229*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340231*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPORQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340240*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::XOR),// ->340273
/*340243*/            OPC_RecordChild0, // #1 = $src1
/*340244*/            OPC_RecordChild1, // #2 = $src2
/*340245*/            OPC_MoveParent,
/*340246*/            OPC_MoveChild2,
/*340247*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340250*/            OPC_MoveChild0,
/*340251*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340254*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340256*/            OPC_CheckType, MVT::v8i32,
/*340258*/            OPC_MoveParent,
/*340259*/            OPC_MoveParent,
/*340260*/            OPC_CheckType, MVT::v4i64,
/*340262*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340264*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPXORQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340273*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::ANDNP),// ->340306
/*340276*/            OPC_RecordChild0, // #1 = $src1
/*340277*/            OPC_RecordChild1, // #2 = $src2
/*340278*/            OPC_MoveParent,
/*340279*/            OPC_MoveChild2,
/*340280*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340283*/            OPC_MoveChild0,
/*340284*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340287*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340289*/            OPC_CheckType, MVT::v8i32,
/*340291*/            OPC_MoveParent,
/*340292*/            OPC_MoveParent,
/*340293*/            OPC_CheckType, MVT::v4i64,
/*340295*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340297*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPANDNQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340306*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSRLI),// ->340339
/*340309*/            OPC_RecordChild0, // #1 = $src1
/*340310*/            OPC_RecordChild1, // #2 = $src2
/*340311*/            OPC_MoveChild1,
/*340312*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*340315*/            OPC_MoveParent,
/*340316*/            OPC_MoveParent,
/*340317*/            OPC_MoveChild2,
/*340318*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340321*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340323*/            OPC_MoveParent,
/*340324*/            OPC_CheckType, MVT::v4i32,
/*340326*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340328*/            OPC_EmitConvertToTarget, 2,
/*340330*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128rikz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSRLDZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*340339*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSHLI),// ->340372
/*340342*/            OPC_RecordChild0, // #1 = $src1
/*340343*/            OPC_RecordChild1, // #2 = $src2
/*340344*/            OPC_MoveChild1,
/*340345*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*340348*/            OPC_MoveParent,
/*340349*/            OPC_MoveParent,
/*340350*/            OPC_MoveChild2,
/*340351*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340354*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340356*/            OPC_MoveParent,
/*340357*/            OPC_CheckType, MVT::v4i32,
/*340359*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340361*/            OPC_EmitConvertToTarget, 2,
/*340363*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128rikz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSLLDZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*340372*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSRAI),// ->340405
/*340375*/            OPC_RecordChild0, // #1 = $src1
/*340376*/            OPC_RecordChild1, // #2 = $src2
/*340377*/            OPC_MoveChild1,
/*340378*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*340381*/            OPC_MoveParent,
/*340382*/            OPC_MoveParent,
/*340383*/            OPC_MoveChild2,
/*340384*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340387*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340389*/            OPC_MoveParent,
/*340390*/            OPC_CheckType, MVT::v4i32,
/*340392*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340394*/            OPC_EmitConvertToTarget, 2,
/*340396*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128rikz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSRADZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*340405*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VROTRI),// ->340438
/*340408*/            OPC_RecordChild0, // #1 = $src1
/*340409*/            OPC_RecordChild1, // #2 = $src2
/*340410*/            OPC_MoveChild1,
/*340411*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*340414*/            OPC_MoveParent,
/*340415*/            OPC_MoveParent,
/*340416*/            OPC_MoveChild2,
/*340417*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340420*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340422*/            OPC_MoveParent,
/*340423*/            OPC_CheckType, MVT::v4i32,
/*340425*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340427*/            OPC_EmitConvertToTarget, 2,
/*340429*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128rikz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPRORDZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*340438*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VROTLI),// ->340471
/*340441*/            OPC_RecordChild0, // #1 = $src1
/*340442*/            OPC_RecordChild1, // #2 = $src2
/*340443*/            OPC_MoveChild1,
/*340444*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*340447*/            OPC_MoveParent,
/*340448*/            OPC_MoveParent,
/*340449*/            OPC_MoveChild2,
/*340450*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340453*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340455*/            OPC_MoveParent,
/*340456*/            OPC_CheckType, MVT::v4i32,
/*340458*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340460*/            OPC_EmitConvertToTarget, 2,
/*340462*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128rikz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPROLDZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*340471*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHL),// ->340506
/*340474*/            OPC_RecordChild0, // #1 = $src1
/*340475*/            OPC_RecordChild1, // #2 = $src2
/*340476*/            OPC_CheckChild1Type, MVT::v2i64,
/*340478*/            OPC_MoveParent,
/*340479*/            OPC_MoveChild2,
/*340480*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340483*/            OPC_MoveChild0,
/*340484*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340487*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340489*/            OPC_CheckType, MVT::v8i32,
/*340491*/            OPC_MoveParent,
/*340492*/            OPC_MoveParent,
/*340493*/            OPC_CheckType, MVT::v4i64,
/*340495*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340497*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSLLQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*340506*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSRA),// ->340541
/*340509*/            OPC_RecordChild0, // #1 = $src1
/*340510*/            OPC_RecordChild1, // #2 = $src2
/*340511*/            OPC_CheckChild1Type, MVT::v2i64,
/*340513*/            OPC_MoveParent,
/*340514*/            OPC_MoveChild2,
/*340515*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340518*/            OPC_MoveChild0,
/*340519*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340522*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340524*/            OPC_CheckType, MVT::v8i32,
/*340526*/            OPC_MoveParent,
/*340527*/            OPC_MoveParent,
/*340528*/            OPC_CheckType, MVT::v4i64,
/*340530*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340532*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*340541*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSRL),// ->340576
/*340544*/            OPC_RecordChild0, // #1 = $src1
/*340545*/            OPC_RecordChild1, // #2 = $src2
/*340546*/            OPC_CheckChild1Type, MVT::v2i64,
/*340548*/            OPC_MoveParent,
/*340549*/            OPC_MoveChild2,
/*340550*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340553*/            OPC_MoveChild0,
/*340554*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340557*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340559*/            OPC_CheckType, MVT::v8i32,
/*340561*/            OPC_MoveParent,
/*340562*/            OPC_MoveParent,
/*340563*/            OPC_CheckType, MVT::v4i64,
/*340565*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340567*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRLQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*340576*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SHL),// ->340611
/*340579*/            OPC_RecordChild0, // #1 = $src1
/*340580*/            OPC_RecordChild1, // #2 = $src2
/*340581*/            OPC_CheckChild1Type, MVT::v4i64,
/*340583*/            OPC_MoveParent,
/*340584*/            OPC_MoveChild2,
/*340585*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340588*/            OPC_MoveChild0,
/*340589*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340592*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340594*/            OPC_CheckType, MVT::v8i32,
/*340596*/            OPC_MoveParent,
/*340597*/            OPC_MoveParent,
/*340598*/            OPC_CheckType, MVT::v4i64,
/*340600*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340602*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSLLVQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340611*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SRA),// ->340646
/*340614*/            OPC_RecordChild0, // #1 = $src1
/*340615*/            OPC_RecordChild1, // #2 = $src2
/*340616*/            OPC_CheckChild1Type, MVT::v4i64,
/*340618*/            OPC_MoveParent,
/*340619*/            OPC_MoveChild2,
/*340620*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340623*/            OPC_MoveChild0,
/*340624*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340627*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340629*/            OPC_CheckType, MVT::v8i32,
/*340631*/            OPC_MoveParent,
/*340632*/            OPC_MoveParent,
/*340633*/            OPC_CheckType, MVT::v4i64,
/*340635*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340637*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAVQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340646*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SRL),// ->340681
/*340649*/            OPC_RecordChild0, // #1 = $src1
/*340650*/            OPC_RecordChild1, // #2 = $src2
/*340651*/            OPC_CheckChild1Type, MVT::v4i64,
/*340653*/            OPC_MoveParent,
/*340654*/            OPC_MoveChild2,
/*340655*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340658*/            OPC_MoveChild0,
/*340659*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340662*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340664*/            OPC_CheckType, MVT::v8i32,
/*340666*/            OPC_MoveParent,
/*340667*/            OPC_MoveParent,
/*340668*/            OPC_CheckType, MVT::v4i64,
/*340670*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340672*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRLVQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340681*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::ROTR),// ->340716
/*340684*/            OPC_RecordChild0, // #1 = $src1
/*340685*/            OPC_RecordChild1, // #2 = $src2
/*340686*/            OPC_CheckChild1Type, MVT::v4i64,
/*340688*/            OPC_MoveParent,
/*340689*/            OPC_MoveChild2,
/*340690*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340693*/            OPC_MoveChild0,
/*340694*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340697*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340699*/            OPC_CheckType, MVT::v8i32,
/*340701*/            OPC_MoveParent,
/*340702*/            OPC_MoveParent,
/*340703*/            OPC_CheckType, MVT::v4i64,
/*340705*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340707*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPRORVQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340716*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::ROTL),// ->340751
/*340719*/            OPC_RecordChild0, // #1 = $src1
/*340720*/            OPC_RecordChild1, // #2 = $src2
/*340721*/            OPC_CheckChild1Type, MVT::v4i64,
/*340723*/            OPC_MoveParent,
/*340724*/            OPC_MoveChild2,
/*340725*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340728*/            OPC_MoveChild0,
/*340729*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340732*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340734*/            OPC_CheckType, MVT::v8i32,
/*340736*/            OPC_MoveParent,
/*340737*/            OPC_MoveParent,
/*340738*/            OPC_CheckType, MVT::v4i64,
/*340740*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340742*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPROLVQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340751*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSRAV),// ->340784
/*340754*/            OPC_RecordChild0, // #1 = $src1
/*340755*/            OPC_RecordChild1, // #2 = $src2
/*340756*/            OPC_MoveParent,
/*340757*/            OPC_MoveChild2,
/*340758*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340761*/            OPC_MoveChild0,
/*340762*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340765*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340767*/            OPC_CheckType, MVT::v8i32,
/*340769*/            OPC_MoveParent,
/*340770*/            OPC_MoveParent,
/*340771*/            OPC_CheckType, MVT::v4i64,
/*340773*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*340775*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAVQZ256rrkz:{ *:[v4i64] } VK4:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340784*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VPERMV),// ->340817
/*340787*/            OPC_RecordChild0, // #1 = $src1
/*340788*/            OPC_RecordChild1, // #2 = $src2
/*340789*/            OPC_MoveParent,
/*340790*/            OPC_MoveChild2,
/*340791*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340794*/            OPC_MoveChild0,
/*340795*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340798*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340800*/            OPC_CheckType, MVT::v8i32,
/*340802*/            OPC_MoveParent,
/*340803*/            OPC_MoveParent,
/*340804*/            OPC_CheckType, MVT::v4i64,
/*340806*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340808*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPERMQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*340817*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PSHUFD),// ->340850
/*340820*/            OPC_RecordChild0, // #1 = $src1
/*340821*/            OPC_RecordChild1, // #2 = $src2
/*340822*/            OPC_MoveChild1,
/*340823*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*340826*/            OPC_MoveParent,
/*340827*/            OPC_MoveParent,
/*340828*/            OPC_MoveChild2,
/*340829*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340832*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340834*/            OPC_MoveParent,
/*340835*/            OPC_CheckType, MVT::v4i32,
/*340837*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*340839*/            OPC_EmitConvertToTarget, 2,
/*340841*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128rikz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSHUFDZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*340850*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VPMADD52L),// ->340885
/*340853*/            OPC_RecordChild0, // #1 = $src2
/*340854*/            OPC_RecordChild1, // #2 = $src3
/*340855*/            OPC_RecordChild2, // #3 = $src1
/*340856*/            OPC_MoveParent,
/*340857*/            OPC_MoveChild2,
/*340858*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340861*/            OPC_MoveChild0,
/*340862*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340865*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340867*/            OPC_CheckType, MVT::v8i32,
/*340869*/            OPC_MoveParent,
/*340870*/            OPC_MoveParent,
/*340871*/            OPC_CheckType, MVT::v4i64,
/*340873*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*340875*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256rkz), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52l:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMADD52LUQZ256rkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*340885*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VPMADD52H),// ->340920
/*340888*/            OPC_RecordChild0, // #1 = $src2
/*340889*/            OPC_RecordChild1, // #2 = $src3
/*340890*/            OPC_RecordChild2, // #3 = $src1
/*340891*/            OPC_MoveParent,
/*340892*/            OPC_MoveChild2,
/*340893*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340896*/            OPC_MoveChild0,
/*340897*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340900*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340902*/            OPC_CheckType, MVT::v8i32,
/*340904*/            OPC_MoveParent,
/*340905*/            OPC_MoveParent,
/*340906*/            OPC_CheckType, MVT::v4i64,
/*340908*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*340910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256rkz), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52h:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMADD52HUQZ256rkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*340920*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTP2SI),// ->340986
/*340923*/            OPC_RecordChild0, // #1 = $src
/*340924*/            OPC_Scope, 29, /*->340955*/ // 2 children in Scope
/*340926*/              OPC_CheckChild0Type, MVT::v4f64,
/*340928*/              OPC_MoveParent,
/*340929*/              OPC_MoveChild2,
/*340930*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340933*/              OPC_MoveChild0,
/*340934*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340937*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340939*/              OPC_CheckType, MVT::v8i32,
/*340941*/              OPC_MoveParent,
/*340942*/              OPC_MoveParent,
/*340943*/              OPC_CheckType, MVT::v4i64,
/*340945*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*340947*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPD2QQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*340955*/            /*Scope*/ 29, /*->340985*/
/*340956*/              OPC_CheckChild0Type, MVT::v4f32,
/*340958*/              OPC_MoveParent,
/*340959*/              OPC_MoveChild2,
/*340960*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340963*/              OPC_MoveChild0,
/*340964*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*340967*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*340969*/              OPC_CheckType, MVT::v8i32,
/*340971*/              OPC_MoveParent,
/*340972*/              OPC_MoveParent,
/*340973*/              OPC_CheckType, MVT::v4i64,
/*340975*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*340977*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPS2QQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*340985*/            0, /*End of Scope*/
/*340986*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTP2UI),// ->341052
/*340989*/            OPC_RecordChild0, // #1 = $src
/*340990*/            OPC_Scope, 29, /*->341021*/ // 2 children in Scope
/*340992*/              OPC_CheckChild0Type, MVT::v4f64,
/*340994*/              OPC_MoveParent,
/*340995*/              OPC_MoveChild2,
/*340996*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*340999*/              OPC_MoveChild0,
/*341000*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341003*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341005*/              OPC_CheckType, MVT::v8i32,
/*341007*/              OPC_MoveParent,
/*341008*/              OPC_MoveParent,
/*341009*/              OPC_CheckType, MVT::v4i64,
/*341011*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*341013*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPD2UQQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*341021*/            /*Scope*/ 29, /*->341051*/
/*341022*/              OPC_CheckChild0Type, MVT::v4f32,
/*341024*/              OPC_MoveParent,
/*341025*/              OPC_MoveChild2,
/*341026*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341029*/              OPC_MoveChild0,
/*341030*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341033*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341035*/              OPC_CheckType, MVT::v8i32,
/*341037*/              OPC_MoveParent,
/*341038*/              OPC_MoveParent,
/*341039*/              OPC_CheckType, MVT::v4i64,
/*341041*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*341043*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPS2UQQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*341051*/            0, /*End of Scope*/
/*341052*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTTP2SI),// ->341118
/*341055*/            OPC_RecordChild0, // #1 = $src
/*341056*/            OPC_Scope, 29, /*->341087*/ // 2 children in Scope
/*341058*/              OPC_CheckChild0Type, MVT::v4f64,
/*341060*/              OPC_MoveParent,
/*341061*/              OPC_MoveChild2,
/*341062*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341065*/              OPC_MoveChild0,
/*341066*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341069*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341071*/              OPC_CheckType, MVT::v8i32,
/*341073*/              OPC_MoveParent,
/*341074*/              OPC_MoveParent,
/*341075*/              OPC_CheckType, MVT::v4i64,
/*341077*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*341079*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPD2QQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*341087*/            /*Scope*/ 29, /*->341117*/
/*341088*/              OPC_CheckChild0Type, MVT::v4f32,
/*341090*/              OPC_MoveParent,
/*341091*/              OPC_MoveChild2,
/*341092*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341095*/              OPC_MoveChild0,
/*341096*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341099*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341101*/              OPC_CheckType, MVT::v8i32,
/*341103*/              OPC_MoveParent,
/*341104*/              OPC_MoveParent,
/*341105*/              OPC_CheckType, MVT::v4i64,
/*341107*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*341109*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPS2QQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*341117*/            0, /*End of Scope*/
/*341118*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTTP2UI),// ->341184
/*341121*/            OPC_RecordChild0, // #1 = $src
/*341122*/            OPC_Scope, 29, /*->341153*/ // 2 children in Scope
/*341124*/              OPC_CheckChild0Type, MVT::v4f64,
/*341126*/              OPC_MoveParent,
/*341127*/              OPC_MoveChild2,
/*341128*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341131*/              OPC_MoveChild0,
/*341132*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341135*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341137*/              OPC_CheckType, MVT::v8i32,
/*341139*/              OPC_MoveParent,
/*341140*/              OPC_MoveParent,
/*341141*/              OPC_CheckType, MVT::v4i64,
/*341143*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*341145*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPD2UQQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*341153*/            /*Scope*/ 29, /*->341183*/
/*341154*/              OPC_CheckChild0Type, MVT::v4f32,
/*341156*/              OPC_MoveParent,
/*341157*/              OPC_MoveChild2,
/*341158*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341161*/              OPC_MoveChild0,
/*341162*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341165*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341167*/              OPC_CheckType, MVT::v8i32,
/*341169*/              OPC_MoveParent,
/*341170*/              OPC_MoveParent,
/*341171*/              OPC_CheckType, MVT::v4i64,
/*341173*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*341175*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPS2UQQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*341183*/            0, /*End of Scope*/
/*341184*/          /*SwitchOpcode*/ 93, TARGET_VAL(X86ISD::VZEXT),// ->341280
/*341187*/            OPC_RecordChild0, // #1 = $src
/*341188*/            OPC_Scope, 29, /*->341219*/ // 3 children in Scope
/*341190*/              OPC_CheckChild0Type, MVT::v16i8,
/*341192*/              OPC_MoveParent,
/*341193*/              OPC_MoveChild2,
/*341194*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341197*/              OPC_MoveChild0,
/*341198*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341201*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341203*/              OPC_CheckType, MVT::v8i32,
/*341205*/              OPC_MoveParent,
/*341206*/              OPC_MoveParent,
/*341207*/              OPC_CheckType, MVT::v4i64,
/*341209*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341211*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vzext:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVZXBQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*341219*/            /*Scope*/ 29, /*->341249*/
/*341220*/              OPC_CheckChild0Type, MVT::v8i16,
/*341222*/              OPC_MoveParent,
/*341223*/              OPC_MoveChild2,
/*341224*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341227*/              OPC_MoveChild0,
/*341228*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341231*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341233*/              OPC_CheckType, MVT::v8i32,
/*341235*/              OPC_MoveParent,
/*341236*/              OPC_MoveParent,
/*341237*/              OPC_CheckType, MVT::v4i64,
/*341239*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341241*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vzext:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVZXWQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*341249*/            /*Scope*/ 29, /*->341279*/
/*341250*/              OPC_CheckChild0Type, MVT::v4i32,
/*341252*/              OPC_MoveParent,
/*341253*/              OPC_MoveChild2,
/*341254*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341257*/              OPC_MoveChild0,
/*341258*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341261*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341263*/              OPC_CheckType, MVT::v8i32,
/*341265*/              OPC_MoveParent,
/*341266*/              OPC_MoveParent,
/*341267*/              OPC_CheckType, MVT::v4i64,
/*341269*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341271*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vzext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVZXDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*341279*/            0, /*End of Scope*/
/*341280*/          /*SwitchOpcode*/ 93, TARGET_VAL(X86ISD::VSEXT),// ->341376
/*341283*/            OPC_RecordChild0, // #1 = $src
/*341284*/            OPC_Scope, 29, /*->341315*/ // 3 children in Scope
/*341286*/              OPC_CheckChild0Type, MVT::v16i8,
/*341288*/              OPC_MoveParent,
/*341289*/              OPC_MoveChild2,
/*341290*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341293*/              OPC_MoveChild0,
/*341294*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341297*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341299*/              OPC_CheckType, MVT::v8i32,
/*341301*/              OPC_MoveParent,
/*341302*/              OPC_MoveParent,
/*341303*/              OPC_CheckType, MVT::v4i64,
/*341305*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341307*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsext:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSXBQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*341315*/            /*Scope*/ 29, /*->341345*/
/*341316*/              OPC_CheckChild0Type, MVT::v8i16,
/*341318*/              OPC_MoveParent,
/*341319*/              OPC_MoveChild2,
/*341320*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341323*/              OPC_MoveChild0,
/*341324*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341327*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341329*/              OPC_CheckType, MVT::v8i32,
/*341331*/              OPC_MoveParent,
/*341332*/              OPC_MoveParent,
/*341333*/              OPC_CheckType, MVT::v4i64,
/*341335*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341337*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsext:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSXWQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*341345*/            /*Scope*/ 29, /*->341375*/
/*341346*/              OPC_CheckChild0Type, MVT::v4i32,
/*341348*/              OPC_MoveParent,
/*341349*/              OPC_MoveChild2,
/*341350*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341353*/              OPC_MoveChild0,
/*341354*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341357*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341359*/              OPC_CheckType, MVT::v8i32,
/*341361*/              OPC_MoveParent,
/*341362*/              OPC_MoveParent,
/*341363*/              OPC_CheckType, MVT::v4i64,
/*341365*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341367*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSXDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*341375*/            0, /*End of Scope*/
/*341376*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::COMPRESS),// ->341407
/*341379*/            OPC_RecordChild0, // #1 = $src1
/*341380*/            OPC_MoveParent,
/*341381*/            OPC_MoveChild2,
/*341382*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341385*/            OPC_MoveChild0,
/*341386*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341389*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341391*/            OPC_CheckType, MVT::v8i32,
/*341393*/            OPC_MoveParent,
/*341394*/            OPC_MoveParent,
/*341395*/            OPC_CheckType, MVT::v4i64,
/*341397*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZ256rrkz), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86compress:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPCOMPRESSQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*341407*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::EXPAND),// ->341438
/*341410*/            OPC_RecordChild0, // #1 = $src1
/*341411*/            OPC_MoveParent,
/*341412*/            OPC_MoveChild2,
/*341413*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341416*/            OPC_MoveChild0,
/*341417*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341420*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341422*/            OPC_CheckType, MVT::v8i32,
/*341424*/            OPC_MoveParent,
/*341425*/            OPC_MoveParent,
/*341426*/            OPC_CheckType, MVT::v4i64,
/*341428*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341430*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rrkz), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPEXPANDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*341438*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VALIGN),// ->341473
/*341441*/            OPC_RecordChild0, // #1 = $src1
/*341442*/            OPC_RecordChild1, // #2 = $src2
/*341443*/            OPC_RecordChild2, // #3 = $src3
/*341444*/            OPC_MoveChild2,
/*341445*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*341448*/            OPC_MoveParent,
/*341449*/            OPC_MoveParent,
/*341450*/            OPC_MoveChild2,
/*341451*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341454*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341456*/            OPC_MoveParent,
/*341457*/            OPC_CheckType, MVT::v4i32,
/*341459*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341461*/            OPC_EmitConvertToTarget, 3,
/*341463*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rrikz), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VALIGNDZ128rrikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*341473*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::ABS),// ->341504
/*341476*/            OPC_RecordChild0, // #1 = $src1
/*341477*/            OPC_MoveParent,
/*341478*/            OPC_MoveChild2,
/*341479*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341482*/            OPC_MoveChild0,
/*341483*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341486*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341488*/            OPC_CheckType, MVT::v8i32,
/*341490*/            OPC_MoveParent,
/*341491*/            OPC_MoveParent,
/*341492*/            OPC_CheckType, MVT::v4i64,
/*341494*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341496*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ256rrkz), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPABSQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*341504*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::CTLZ),// ->341535
/*341507*/            OPC_RecordChild0, // #1 = $src1
/*341508*/            OPC_MoveParent,
/*341509*/            OPC_MoveChild2,
/*341510*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341513*/            OPC_MoveChild0,
/*341514*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341517*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341519*/            OPC_CheckType, MVT::v8i32,
/*341521*/            OPC_MoveParent,
/*341522*/            OPC_MoveParent,
/*341523*/            OPC_CheckType, MVT::v4i64,
/*341525*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*341527*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ256rrkz), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPLZCNTQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*341535*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::CONFLICT),// ->341566
/*341538*/            OPC_RecordChild0, // #1 = $src1
/*341539*/            OPC_MoveParent,
/*341540*/            OPC_MoveChild2,
/*341541*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341544*/            OPC_MoveChild0,
/*341545*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341548*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341550*/            OPC_CheckType, MVT::v8i32,
/*341552*/            OPC_MoveParent,
/*341553*/            OPC_MoveParent,
/*341554*/            OPC_CheckType, MVT::v4i64,
/*341556*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*341558*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ256rrkz), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPCONFLICTQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*341566*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::CTPOP),// ->341597
/*341569*/            OPC_RecordChild0, // #1 = $src1
/*341570*/            OPC_MoveParent,
/*341571*/            OPC_MoveChild2,
/*341572*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341575*/            OPC_MoveChild0,
/*341576*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341579*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341581*/            OPC_CheckType, MVT::v8i32,
/*341583*/            OPC_MoveParent,
/*341584*/            OPC_MoveParent,
/*341585*/            OPC_CheckType, MVT::v4i64,
/*341587*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*341589*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ256rrkz), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPOPCNTQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*341597*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::UNPCKL),// ->341630
/*341600*/            OPC_RecordChild0, // #1 = $src1
/*341601*/            OPC_RecordChild1, // #2 = $src2
/*341602*/            OPC_MoveParent,
/*341603*/            OPC_MoveChild2,
/*341604*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341607*/            OPC_MoveChild0,
/*341608*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341611*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341613*/            OPC_CheckType, MVT::v8i32,
/*341615*/            OPC_MoveParent,
/*341616*/            OPC_MoveParent,
/*341617*/            OPC_CheckType, MVT::v4i64,
/*341619*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341621*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPUNPCKLQDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*341630*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::UNPCKH),// ->341663
/*341633*/            OPC_RecordChild0, // #1 = $src1
/*341634*/            OPC_RecordChild1, // #2 = $src2
/*341635*/            OPC_MoveParent,
/*341636*/            OPC_MoveChild2,
/*341637*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341640*/            OPC_MoveChild0,
/*341641*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341644*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341646*/            OPC_CheckType, MVT::v8i32,
/*341648*/            OPC_MoveParent,
/*341649*/            OPC_MoveParent,
/*341650*/            OPC_CheckType, MVT::v4i64,
/*341652*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341654*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ256rrkz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPUNPCKHQDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*341663*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPTERNLOG),// ->341700
/*341666*/            OPC_RecordChild0, // #1 = $src1
/*341667*/            OPC_RecordChild1, // #2 = $src2
/*341668*/            OPC_RecordChild2, // #3 = $src3
/*341669*/            OPC_RecordChild3, // #4 = $src4
/*341670*/            OPC_MoveChild3,
/*341671*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*341674*/            OPC_MoveParent,
/*341675*/            OPC_MoveParent,
/*341676*/            OPC_MoveChild2,
/*341677*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341680*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341682*/            OPC_MoveParent,
/*341683*/            OPC_CheckType, MVT::v4i32,
/*341685*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341687*/            OPC_EmitConvertToTarget, 4,
/*341689*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rrikz), 0,
                          MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPTERNLOGDZ128rrikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*341700*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHLDV),// ->341735
/*341703*/            OPC_RecordChild0, // #1 = $src1
/*341704*/            OPC_RecordChild1, // #2 = $src2
/*341705*/            OPC_RecordChild2, // #3 = $src3
/*341706*/            OPC_MoveParent,
/*341707*/            OPC_MoveChild2,
/*341708*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341711*/            OPC_MoveChild0,
/*341712*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341715*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341717*/            OPC_CheckType, MVT::v8i32,
/*341719*/            OPC_MoveParent,
/*341720*/            OPC_MoveParent,
/*341721*/            OPC_CheckType, MVT::v4i64,
/*341723*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*341725*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ256rkz), 0,
                          MVT::v4i64, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSHLDVQZ256rkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*341735*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHRDV),// ->341770
/*341738*/            OPC_RecordChild0, // #1 = $src1
/*341739*/            OPC_RecordChild1, // #2 = $src2
/*341740*/            OPC_RecordChild2, // #3 = $src3
/*341741*/            OPC_MoveParent,
/*341742*/            OPC_MoveChild2,
/*341743*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341746*/            OPC_MoveChild0,
/*341747*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341750*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341752*/            OPC_CheckType, MVT::v8i32,
/*341754*/            OPC_MoveParent,
/*341755*/            OPC_MoveParent,
/*341756*/            OPC_CheckType, MVT::v4i64,
/*341758*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*341760*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ256rkz), 0,
                          MVT::v4i64, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSHRDVQZ256rkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*341770*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHLD),// ->341805
/*341773*/            OPC_RecordChild0, // #1 = $src1
/*341774*/            OPC_RecordChild1, // #2 = $src2
/*341775*/            OPC_RecordChild2, // #3 = $src3
/*341776*/            OPC_MoveChild2,
/*341777*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*341780*/            OPC_MoveParent,
/*341781*/            OPC_MoveParent,
/*341782*/            OPC_MoveChild2,
/*341783*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341786*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341788*/            OPC_MoveParent,
/*341789*/            OPC_CheckType, MVT::v4i32,
/*341791*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*341793*/            OPC_EmitConvertToTarget, 3,
/*341795*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rrikz), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSHLDDZ128rrikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*341805*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHRD),// ->341840
/*341808*/            OPC_RecordChild0, // #1 = $src1
/*341809*/            OPC_RecordChild1, // #2 = $src2
/*341810*/            OPC_RecordChild2, // #3 = $src3
/*341811*/            OPC_MoveChild2,
/*341812*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*341815*/            OPC_MoveParent,
/*341816*/            OPC_MoveParent,
/*341817*/            OPC_MoveChild2,
/*341818*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341821*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341823*/            OPC_MoveParent,
/*341824*/            OPC_CheckType, MVT::v4i32,
/*341826*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*341828*/            OPC_EmitConvertToTarget, 3,
/*341830*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rrikz), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSHRDDZ128rrikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*341840*/          /*SwitchOpcode*/ 100, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->341943
/*341843*/            OPC_RecordChild0, // #1 = $src
/*341844*/            OPC_Scope, 32, /*->341878*/ // 3 children in Scope
/*341846*/              OPC_CheckChild0Type, MVT::v8i32,
/*341848*/              OPC_CheckChild1Integer, 0, 
/*341850*/              OPC_CheckChild1Type, MVT::iPTR,
/*341852*/              OPC_MoveParent,
/*341853*/              OPC_RecordChild2, // #2 = $src0
/*341854*/              OPC_CheckType, MVT::v4i32,
/*341856*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*341858*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*341861*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4i32, 2/*#Ops*/, 1, 3,  // Results = #4
/*341869*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }), VR128X:{ *:[v4i32] }:$src0) - Complexity = 11
                        // Dst: (VMOVDQA32Z128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }))
/*341878*/            /*Scope*/ 32, /*->341911*/
/*341879*/              OPC_CheckChild0Type, MVT::v16i32,
/*341881*/              OPC_CheckChild1Integer, 0, 
/*341883*/              OPC_CheckChild1Type, MVT::iPTR,
/*341885*/              OPC_MoveParent,
/*341886*/              OPC_RecordChild2, // #2 = $src0
/*341887*/              OPC_CheckType, MVT::v4i32,
/*341889*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*341891*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*341894*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4i32, 2/*#Ops*/, 1, 3,  // Results = #4
/*341902*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] }), VR128X:{ *:[v4i32] }:$src0) - Complexity = 11
                        // Dst: (VMOVDQA32Z128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, sub_xmm:{ *:[i32] }))
/*341911*/            /*Scope*/ 30, /*->341942*/
/*341912*/              OPC_CheckChild1Integer, 0, 
/*341914*/              OPC_CheckChild1Type, MVT::iPTR,
/*341916*/              OPC_MoveParent,
/*341917*/              OPC_RecordChild2, // #2 = $src0
/*341918*/              OPC_CheckType, MVT::v4i64,
/*341920*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*341922*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*341925*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4i64, 2/*#Ops*/, 1, 3,  // Results = #4
/*341933*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] }), VR256X:{ *:[v4i64] }:$src0) - Complexity = 11
                        // Dst: (VMOVDQA64Z256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, sub_ymm:{ *:[i32] }))
/*341942*/            0, /*End of Scope*/
/*341943*/          0, // EndSwitchOpcode
/*341944*/        /*Scope*/ 27, /*->341972*/
/*341945*/          OPC_RecordChild1, // #1 = $src
/*341946*/          OPC_MoveChild2,
/*341947*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*341950*/          OPC_MoveChild0,
/*341951*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341954*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341956*/          OPC_CheckType, MVT::v8i32,
/*341958*/          OPC_MoveParent,
/*341959*/          OPC_MoveParent,
/*341960*/          OPC_CheckType, MVT::v4i64,
/*341962*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341964*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rrkz), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                    // Dst: (VMOVDQA64Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*341972*/        /*Scope*/ 103|128,10/*1383*/, /*->343357*/
/*341974*/          OPC_MoveChild1,
/*341975*/          OPC_SwitchOpcode /*41 cases */, 23, TARGET_VAL(ISD::ADD),// ->342002
/*341979*/            OPC_RecordChild0, // #1 = $src1
/*341980*/            OPC_RecordChild1, // #2 = $src2
/*341981*/            OPC_MoveParent,
/*341982*/            OPC_MoveChild2,
/*341983*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*341986*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*341988*/            OPC_MoveParent,
/*341989*/            OPC_CheckType, MVT::v4i32,
/*341991*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*341993*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPADDDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342002*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::SUB),// ->342028
/*342005*/            OPC_RecordChild0, // #1 = $src1
/*342006*/            OPC_RecordChild1, // #2 = $src2
/*342007*/            OPC_MoveParent,
/*342008*/            OPC_MoveChild2,
/*342009*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342012*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342014*/            OPC_MoveParent,
/*342015*/            OPC_CheckType, MVT::v4i32,
/*342017*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342019*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSUBDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342028*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::MUL),// ->342054
/*342031*/            OPC_RecordChild0, // #1 = $src1
/*342032*/            OPC_RecordChild1, // #2 = $src2
/*342033*/            OPC_MoveParent,
/*342034*/            OPC_MoveChild2,
/*342035*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342038*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342040*/            OPC_MoveParent,
/*342041*/            OPC_CheckType, MVT::v4i32,
/*342043*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342045*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMULLDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342054*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VPMADDWD),// ->342080
/*342057*/            OPC_RecordChild0, // #1 = $src1
/*342058*/            OPC_RecordChild1, // #2 = $src2
/*342059*/            OPC_MoveParent,
/*342060*/            OPC_MoveChild2,
/*342061*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342064*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342066*/            OPC_MoveParent,
/*342067*/            OPC_CheckType, MVT::v4i32,
/*342069*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*342071*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpmaddwd:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMADDWDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*342080*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::SMAX),// ->342106
/*342083*/            OPC_RecordChild0, // #1 = $src1
/*342084*/            OPC_RecordChild1, // #2 = $src2
/*342085*/            OPC_MoveParent,
/*342086*/            OPC_MoveChild2,
/*342087*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342090*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342092*/            OPC_MoveParent,
/*342093*/            OPC_CheckType, MVT::v4i32,
/*342095*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342097*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMAXSDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342106*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::UMAX),// ->342132
/*342109*/            OPC_RecordChild0, // #1 = $src1
/*342110*/            OPC_RecordChild1, // #2 = $src2
/*342111*/            OPC_MoveParent,
/*342112*/            OPC_MoveChild2,
/*342113*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342116*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342118*/            OPC_MoveParent,
/*342119*/            OPC_CheckType, MVT::v4i32,
/*342121*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342123*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMAXUDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342132*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::SMIN),// ->342158
/*342135*/            OPC_RecordChild0, // #1 = $src1
/*342136*/            OPC_RecordChild1, // #2 = $src2
/*342137*/            OPC_MoveParent,
/*342138*/            OPC_MoveChild2,
/*342139*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342142*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342144*/            OPC_MoveParent,
/*342145*/            OPC_CheckType, MVT::v4i32,
/*342147*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342149*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMINSDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342158*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::UMIN),// ->342184
/*342161*/            OPC_RecordChild0, // #1 = $src1
/*342162*/            OPC_RecordChild1, // #2 = $src2
/*342163*/            OPC_MoveParent,
/*342164*/            OPC_MoveChild2,
/*342165*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342168*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342170*/            OPC_MoveParent,
/*342171*/            OPC_CheckType, MVT::v4i32,
/*342173*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342175*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMINUDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342184*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHL),// ->342212
/*342187*/            OPC_RecordChild0, // #1 = $src1
/*342188*/            OPC_RecordChild1, // #2 = $src2
/*342189*/            OPC_CheckChild1Type, MVT::v4i32,
/*342191*/            OPC_MoveParent,
/*342192*/            OPC_MoveChild2,
/*342193*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342196*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342198*/            OPC_MoveParent,
/*342199*/            OPC_CheckType, MVT::v4i32,
/*342201*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342203*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSLLDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342212*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSRA),// ->342240
/*342215*/            OPC_RecordChild0, // #1 = $src1
/*342216*/            OPC_RecordChild1, // #2 = $src2
/*342217*/            OPC_CheckChild1Type, MVT::v4i32,
/*342219*/            OPC_MoveParent,
/*342220*/            OPC_MoveChild2,
/*342221*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342224*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342226*/            OPC_MoveParent,
/*342227*/            OPC_CheckType, MVT::v4i32,
/*342229*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342231*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRADZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342240*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSRL),// ->342268
/*342243*/            OPC_RecordChild0, // #1 = $src1
/*342244*/            OPC_RecordChild1, // #2 = $src2
/*342245*/            OPC_CheckChild1Type, MVT::v4i32,
/*342247*/            OPC_MoveParent,
/*342248*/            OPC_MoveChild2,
/*342249*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342252*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342254*/            OPC_MoveParent,
/*342255*/            OPC_CheckType, MVT::v4i32,
/*342257*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342259*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRLDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342268*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::SHL),// ->342296
/*342271*/            OPC_RecordChild0, // #1 = $src1
/*342272*/            OPC_RecordChild1, // #2 = $src2
/*342273*/            OPC_CheckChild1Type, MVT::v4i32,
/*342275*/            OPC_MoveParent,
/*342276*/            OPC_MoveChild2,
/*342277*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342280*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342282*/            OPC_MoveParent,
/*342283*/            OPC_CheckType, MVT::v4i32,
/*342285*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342287*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSLLVDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342296*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::SRA),// ->342324
/*342299*/            OPC_RecordChild0, // #1 = $src1
/*342300*/            OPC_RecordChild1, // #2 = $src2
/*342301*/            OPC_CheckChild1Type, MVT::v4i32,
/*342303*/            OPC_MoveParent,
/*342304*/            OPC_MoveChild2,
/*342305*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342308*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342310*/            OPC_MoveParent,
/*342311*/            OPC_CheckType, MVT::v4i32,
/*342313*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342315*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRAVDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342324*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::SRL),// ->342352
/*342327*/            OPC_RecordChild0, // #1 = $src1
/*342328*/            OPC_RecordChild1, // #2 = $src2
/*342329*/            OPC_CheckChild1Type, MVT::v4i32,
/*342331*/            OPC_MoveParent,
/*342332*/            OPC_MoveChild2,
/*342333*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342336*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342338*/            OPC_MoveParent,
/*342339*/            OPC_CheckType, MVT::v4i32,
/*342341*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342343*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRLVDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342352*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::ROTR),// ->342380
/*342355*/            OPC_RecordChild0, // #1 = $src1
/*342356*/            OPC_RecordChild1, // #2 = $src2
/*342357*/            OPC_CheckChild1Type, MVT::v4i32,
/*342359*/            OPC_MoveParent,
/*342360*/            OPC_MoveChild2,
/*342361*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342364*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342366*/            OPC_MoveParent,
/*342367*/            OPC_CheckType, MVT::v4i32,
/*342369*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342371*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPRORVDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342380*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::ROTL),// ->342408
/*342383*/            OPC_RecordChild0, // #1 = $src1
/*342384*/            OPC_RecordChild1, // #2 = $src2
/*342385*/            OPC_CheckChild1Type, MVT::v4i32,
/*342387*/            OPC_MoveParent,
/*342388*/            OPC_MoveChild2,
/*342389*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342392*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342394*/            OPC_MoveParent,
/*342395*/            OPC_CheckType, MVT::v4i32,
/*342397*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPROLVDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342408*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VSRAV),// ->342434
/*342411*/            OPC_RecordChild0, // #1 = $src1
/*342412*/            OPC_RecordChild1, // #2 = $src2
/*342413*/            OPC_MoveParent,
/*342414*/            OPC_MoveChild2,
/*342415*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342418*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342420*/            OPC_MoveParent,
/*342421*/            OPC_CheckType, MVT::v4i32,
/*342423*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342425*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRAVDZ128rrkz:{ *:[v4i32] } VK4:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*342434*/          /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::CVTTP2SI),// ->342509
/*342437*/            OPC_RecordChild0, // #1 = $src
/*342438*/            OPC_Scope, 22, /*->342462*/ // 3 children in Scope
/*342440*/              OPC_CheckChild0Type, MVT::v4f32,
/*342442*/              OPC_MoveParent,
/*342443*/              OPC_MoveChild2,
/*342444*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342447*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342449*/              OPC_MoveParent,
/*342450*/              OPC_CheckType, MVT::v4i32,
/*342452*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342454*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTTPS2DQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*342462*/            /*Scope*/ 22, /*->342485*/
/*342463*/              OPC_CheckChild0Type, MVT::v2f64,
/*342465*/              OPC_MoveParent,
/*342466*/              OPC_MoveChild2,
/*342467*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342470*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342472*/              OPC_MoveParent,
/*342473*/              OPC_CheckType, MVT::v4i32,
/*342475*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342477*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTTPD2DQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*342485*/            /*Scope*/ 22, /*->342508*/
/*342486*/              OPC_CheckChild0Type, MVT::v4f64,
/*342488*/              OPC_MoveParent,
/*342489*/              OPC_MoveChild2,
/*342490*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342493*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342495*/              OPC_MoveParent,
/*342496*/              OPC_CheckType, MVT::v4i32,
/*342498*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342500*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTTPD2DQZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*342508*/            0, /*End of Scope*/
/*342509*/          /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::CVTTP2UI),// ->342584
/*342512*/            OPC_RecordChild0, // #1 = $src
/*342513*/            OPC_Scope, 22, /*->342537*/ // 3 children in Scope
/*342515*/              OPC_CheckChild0Type, MVT::v4f32,
/*342517*/              OPC_MoveParent,
/*342518*/              OPC_MoveChild2,
/*342519*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342522*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342524*/              OPC_MoveParent,
/*342525*/              OPC_CheckType, MVT::v4i32,
/*342527*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342529*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTTPS2UDQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*342537*/            /*Scope*/ 22, /*->342560*/
/*342538*/              OPC_CheckChild0Type, MVT::v2f64,
/*342540*/              OPC_MoveParent,
/*342541*/              OPC_MoveChild2,
/*342542*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342545*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342547*/              OPC_MoveParent,
/*342548*/              OPC_CheckType, MVT::v4i32,
/*342550*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342552*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTTPD2UDQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*342560*/            /*Scope*/ 22, /*->342583*/
/*342561*/              OPC_CheckChild0Type, MVT::v4f64,
/*342563*/              OPC_MoveParent,
/*342564*/              OPC_MoveChild2,
/*342565*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342568*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342570*/              OPC_MoveParent,
/*342571*/              OPC_CheckType, MVT::v4i32,
/*342573*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342575*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTTPD2UDQZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*342583*/            0, /*End of Scope*/
/*342584*/          /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::CVTP2SI),// ->342659
/*342587*/            OPC_RecordChild0, // #1 = $src
/*342588*/            OPC_Scope, 22, /*->342612*/ // 3 children in Scope
/*342590*/              OPC_CheckChild0Type, MVT::v4f32,
/*342592*/              OPC_MoveParent,
/*342593*/              OPC_MoveChild2,
/*342594*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342597*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342599*/              OPC_MoveParent,
/*342600*/              OPC_CheckType, MVT::v4i32,
/*342602*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342604*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTPS2DQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*342612*/            /*Scope*/ 22, /*->342635*/
/*342613*/              OPC_CheckChild0Type, MVT::v2f64,
/*342615*/              OPC_MoveParent,
/*342616*/              OPC_MoveChild2,
/*342617*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342620*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342622*/              OPC_MoveParent,
/*342623*/              OPC_CheckType, MVT::v4i32,
/*342625*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342627*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTPD2DQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*342635*/            /*Scope*/ 22, /*->342658*/
/*342636*/              OPC_CheckChild0Type, MVT::v4f64,
/*342638*/              OPC_MoveParent,
/*342639*/              OPC_MoveChild2,
/*342640*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342643*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342645*/              OPC_MoveParent,
/*342646*/              OPC_CheckType, MVT::v4i32,
/*342648*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342650*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ256rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTPD2DQZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*342658*/            0, /*End of Scope*/
/*342659*/          /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::CVTP2UI),// ->342734
/*342662*/            OPC_RecordChild0, // #1 = $src
/*342663*/            OPC_Scope, 22, /*->342687*/ // 3 children in Scope
/*342665*/              OPC_CheckChild0Type, MVT::v4f32,
/*342667*/              OPC_MoveParent,
/*342668*/              OPC_MoveChild2,
/*342669*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342672*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342674*/              OPC_MoveParent,
/*342675*/              OPC_CheckType, MVT::v4i32,
/*342677*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342679*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTPS2UDQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*342687*/            /*Scope*/ 22, /*->342710*/
/*342688*/              OPC_CheckChild0Type, MVT::v2f64,
/*342690*/              OPC_MoveParent,
/*342691*/              OPC_MoveChild2,
/*342692*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342695*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342697*/              OPC_MoveParent,
/*342698*/              OPC_CheckType, MVT::v4i32,
/*342700*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342702*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTPD2UDQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*342710*/            /*Scope*/ 22, /*->342733*/
/*342711*/              OPC_CheckChild0Type, MVT::v4f64,
/*342713*/              OPC_MoveParent,
/*342714*/              OPC_MoveChild2,
/*342715*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342718*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342720*/              OPC_MoveParent,
/*342721*/              OPC_CheckType, MVT::v4i32,
/*342723*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*342725*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ256rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTPD2UDQZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*342733*/            0, /*End of Scope*/
/*342734*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VTRUNC),// ->342760
/*342737*/            OPC_RecordChild0, // #1 = $src1
/*342738*/            OPC_CheckChild0Type, MVT::v2i64,
/*342740*/            OPC_MoveParent,
/*342741*/            OPC_MoveChild2,
/*342742*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342745*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342747*/            OPC_MoveParent,
/*342748*/            OPC_CheckType, MVT::v4i32,
/*342750*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342752*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ128rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtrunc:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMOVQDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*342760*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::TRUNCATE),// ->342784
/*342763*/            OPC_RecordChild0, // #1 = $src1
/*342764*/            OPC_MoveParent,
/*342765*/            OPC_MoveChild2,
/*342766*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342769*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342771*/            OPC_MoveParent,
/*342772*/            OPC_CheckType, MVT::v4i32,
/*342774*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342776*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ256rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (trunc:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMOVQDZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*342784*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VTRUNCS),// ->342836
/*342787*/            OPC_RecordChild0, // #1 = $src1
/*342788*/            OPC_Scope, 22, /*->342812*/ // 2 children in Scope
/*342790*/              OPC_CheckChild0Type, MVT::v2i64,
/*342792*/              OPC_MoveParent,
/*342793*/              OPC_MoveChild2,
/*342794*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342797*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342799*/              OPC_MoveParent,
/*342800*/              OPC_CheckType, MVT::v4i32,
/*342802*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342804*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncs:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVSQDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*342812*/            /*Scope*/ 22, /*->342835*/
/*342813*/              OPC_CheckChild0Type, MVT::v4i64,
/*342815*/              OPC_MoveParent,
/*342816*/              OPC_MoveChild2,
/*342817*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342820*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342822*/              OPC_MoveParent,
/*342823*/              OPC_CheckType, MVT::v4i32,
/*342825*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342827*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ256rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncs:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVSQDZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*342835*/            0, /*End of Scope*/
/*342836*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VTRUNCUS),// ->342888
/*342839*/            OPC_RecordChild0, // #1 = $src1
/*342840*/            OPC_Scope, 22, /*->342864*/ // 2 children in Scope
/*342842*/              OPC_CheckChild0Type, MVT::v2i64,
/*342844*/              OPC_MoveParent,
/*342845*/              OPC_MoveChild2,
/*342846*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342849*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342851*/              OPC_MoveParent,
/*342852*/              OPC_CheckType, MVT::v4i32,
/*342854*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342856*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncus:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVUSQDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*342864*/            /*Scope*/ 22, /*->342887*/
/*342865*/              OPC_CheckChild0Type, MVT::v4i64,
/*342867*/              OPC_MoveParent,
/*342868*/              OPC_MoveChild2,
/*342869*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342872*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342874*/              OPC_MoveParent,
/*342875*/              OPC_CheckType, MVT::v4i32,
/*342877*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342879*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ256rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncus:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVUSQDZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*342887*/            0, /*End of Scope*/
/*342888*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->342940
/*342891*/            OPC_RecordChild0, // #1 = $src
/*342892*/            OPC_Scope, 22, /*->342916*/ // 2 children in Scope
/*342894*/              OPC_CheckChild0Type, MVT::v16i8,
/*342896*/              OPC_MoveParent,
/*342897*/              OPC_MoveChild2,
/*342898*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342901*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342903*/              OPC_MoveParent,
/*342904*/              OPC_CheckType, MVT::v4i32,
/*342906*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342908*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (zext_invec:{ *:[v4i32] } VR128X:{ *:[v16i8] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVZXBDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*342916*/            /*Scope*/ 22, /*->342939*/
/*342917*/              OPC_CheckChild0Type, MVT::v8i16,
/*342919*/              OPC_MoveParent,
/*342920*/              OPC_MoveChild2,
/*342921*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342924*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342926*/              OPC_MoveParent,
/*342927*/              OPC_CheckType, MVT::v4i32,
/*342929*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342931*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (zext_invec:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVZXWDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*342939*/            0, /*End of Scope*/
/*342940*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->342992
/*342943*/            OPC_RecordChild0, // #1 = $src
/*342944*/            OPC_Scope, 22, /*->342968*/ // 2 children in Scope
/*342946*/              OPC_CheckChild0Type, MVT::v16i8,
/*342948*/              OPC_MoveParent,
/*342949*/              OPC_MoveChild2,
/*342950*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342953*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342955*/              OPC_MoveParent,
/*342956*/              OPC_CheckType, MVT::v4i32,
/*342958*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342960*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sext_invec:{ *:[v4i32] } VR128X:{ *:[v16i8] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVSXBDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*342968*/            /*Scope*/ 22, /*->342991*/
/*342969*/              OPC_CheckChild0Type, MVT::v8i16,
/*342971*/              OPC_MoveParent,
/*342972*/              OPC_MoveChild2,
/*342973*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*342976*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*342978*/              OPC_MoveParent,
/*342979*/              OPC_CheckType, MVT::v4i32,
/*342981*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*342983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sext_invec:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVSXWDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*342991*/            0, /*End of Scope*/
/*342992*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::COMPRESS),// ->343016
/*342995*/            OPC_RecordChild0, // #1 = $src1
/*342996*/            OPC_MoveParent,
/*342997*/            OPC_MoveChild2,
/*342998*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343001*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343003*/            OPC_MoveParent,
/*343004*/            OPC_CheckType, MVT::v4i32,
/*343006*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343008*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZ128rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86compress:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPCOMPRESSDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*343016*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::EXPAND),// ->343040
/*343019*/            OPC_RecordChild0, // #1 = $src1
/*343020*/            OPC_MoveParent,
/*343021*/            OPC_MoveChild2,
/*343022*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343025*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343027*/            OPC_MoveParent,
/*343028*/            OPC_CheckType, MVT::v4i32,
/*343030*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343032*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPEXPANDDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*343040*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::ABS),// ->343064
/*343043*/            OPC_RecordChild0, // #1 = $src1
/*343044*/            OPC_MoveParent,
/*343045*/            OPC_MoveChild2,
/*343046*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343049*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343051*/            OPC_MoveParent,
/*343052*/            OPC_CheckType, MVT::v4i32,
/*343054*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343056*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPABSDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*343064*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::CTLZ),// ->343088
/*343067*/            OPC_RecordChild0, // #1 = $src1
/*343068*/            OPC_MoveParent,
/*343069*/            OPC_MoveChild2,
/*343070*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343073*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343075*/            OPC_MoveParent,
/*343076*/            OPC_CheckType, MVT::v4i32,
/*343078*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*343080*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPLZCNTDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*343088*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::CONFLICT),// ->343112
/*343091*/            OPC_RecordChild0, // #1 = $src1
/*343092*/            OPC_MoveParent,
/*343093*/            OPC_MoveChild2,
/*343094*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343097*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343099*/            OPC_MoveParent,
/*343100*/            OPC_CheckType, MVT::v4i32,
/*343102*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*343104*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPCONFLICTDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*343112*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::CTPOP),// ->343136
/*343115*/            OPC_RecordChild0, // #1 = $src1
/*343116*/            OPC_MoveParent,
/*343117*/            OPC_MoveChild2,
/*343118*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343121*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343123*/            OPC_MoveParent,
/*343124*/            OPC_CheckType, MVT::v4i32,
/*343126*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*343128*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPOPCNTDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*343136*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::UNPCKL),// ->343162
/*343139*/            OPC_RecordChild0, // #1 = $src1
/*343140*/            OPC_RecordChild1, // #2 = $src2
/*343141*/            OPC_MoveParent,
/*343142*/            OPC_MoveChild2,
/*343143*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343146*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343148*/            OPC_MoveParent,
/*343149*/            OPC_CheckType, MVT::v4i32,
/*343151*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343153*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPUNPCKLDQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*343162*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::UNPCKH),// ->343188
/*343165*/            OPC_RecordChild0, // #1 = $src1
/*343166*/            OPC_RecordChild1, // #2 = $src2
/*343167*/            OPC_MoveParent,
/*343168*/            OPC_MoveChild2,
/*343169*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343172*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343174*/            OPC_MoveParent,
/*343175*/            OPC_CheckType, MVT::v4i32,
/*343177*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343179*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ128rrkz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPUNPCKHDQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*343188*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHLDV),// ->343216
/*343191*/            OPC_RecordChild0, // #1 = $src1
/*343192*/            OPC_RecordChild1, // #2 = $src2
/*343193*/            OPC_RecordChild2, // #3 = $src3
/*343194*/            OPC_MoveParent,
/*343195*/            OPC_MoveChild2,
/*343196*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343199*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343201*/            OPC_MoveParent,
/*343202*/            OPC_CheckType, MVT::v4i32,
/*343204*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*343206*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ128rkz), 0,
                          MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSHLDVDZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*343216*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHRDV),// ->343244
/*343219*/            OPC_RecordChild0, // #1 = $src1
/*343220*/            OPC_RecordChild1, // #2 = $src2
/*343221*/            OPC_RecordChild2, // #3 = $src3
/*343222*/            OPC_MoveParent,
/*343223*/            OPC_MoveChild2,
/*343224*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343227*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343229*/            OPC_MoveParent,
/*343230*/            OPC_CheckType, MVT::v4i32,
/*343232*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*343234*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ128rkz), 0,
                          MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSHRDVDZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*343244*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPBUSD),// ->343272
/*343247*/            OPC_RecordChild0, // #1 = $src1
/*343248*/            OPC_RecordChild1, // #2 = $src2
/*343249*/            OPC_RecordChild2, // #3 = $src3
/*343250*/            OPC_MoveParent,
/*343251*/            OPC_MoveChild2,
/*343252*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343255*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343257*/            OPC_MoveParent,
/*343258*/            OPC_CheckType, MVT::v4i32,
/*343260*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*343262*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ128rkz), 0,
                          MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPBUSDZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*343272*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPBUSDS),// ->343300
/*343275*/            OPC_RecordChild0, // #1 = $src1
/*343276*/            OPC_RecordChild1, // #2 = $src2
/*343277*/            OPC_RecordChild2, // #3 = $src3
/*343278*/            OPC_MoveParent,
/*343279*/            OPC_MoveChild2,
/*343280*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343283*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343285*/            OPC_MoveParent,
/*343286*/            OPC_CheckType, MVT::v4i32,
/*343288*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*343290*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ128rkz), 0,
                          MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPBUSDSZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*343300*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPWSSD),// ->343328
/*343303*/            OPC_RecordChild0, // #1 = $src1
/*343304*/            OPC_RecordChild1, // #2 = $src2
/*343305*/            OPC_RecordChild2, // #3 = $src3
/*343306*/            OPC_MoveParent,
/*343307*/            OPC_MoveChild2,
/*343308*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343311*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343313*/            OPC_MoveParent,
/*343314*/            OPC_CheckType, MVT::v4i32,
/*343316*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*343318*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128rkz), 0,
                          MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPWSSDZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*343328*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPWSSDS),// ->343356
/*343331*/            OPC_RecordChild0, // #1 = $src1
/*343332*/            OPC_RecordChild1, // #2 = $src2
/*343333*/            OPC_RecordChild2, // #3 = $src3
/*343334*/            OPC_MoveParent,
/*343335*/            OPC_MoveChild2,
/*343336*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343339*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343341*/            OPC_MoveParent,
/*343342*/            OPC_CheckType, MVT::v4i32,
/*343344*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*343346*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ128rkz), 0,
                          MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPWSSDSZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*343356*/          0, // EndSwitchOpcode
/*343357*/        /*Scope*/ 69|128,1/*197*/, /*->343556*/
/*343359*/          OPC_RecordChild1, // #1 = $src1
/*343360*/          OPC_Scope, 66, /*->343428*/ // 2 children in Scope
/*343362*/            OPC_MoveChild2,
/*343363*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*343366*/            OPC_MoveChild0,
/*343367*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*343370*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*343372*/            OPC_CheckType, MVT::v8i32,
/*343374*/            OPC_MoveParent,
/*343375*/            OPC_MoveParent,
/*343376*/            OPC_CheckType, MVT::v4i64,
/*343378*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*343380*/            OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*343383*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*343391*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*343397*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*343400*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*343409*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                          MVT::v8i64, 2/*#Ops*/, 3, 6,  // Results = #7
/*343417*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*343420*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i64, 2/*#Ops*/, 7, 8, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VMOVDQA64Zrrkz:{ *:[v8i64] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4WM:{ *:[v4i1] }:$mask, VK8WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*343428*/          /*Scope*/ 126, /*->343555*/
/*343429*/            OPC_MoveChild1,
/*343430*/            OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->343463
/*343434*/              OPC_RecordChild0, // #2 = $src1
/*343435*/              OPC_RecordChild1, // #3 = $src2
/*343436*/              OPC_MoveChild2,
/*343437*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343440*/              OPC_CheckType, MVT::iPTR,
/*343442*/              OPC_MoveParent,
/*343443*/              OPC_MoveParent,
/*343444*/              OPC_RecordChild2, // #4 = $src0
/*343445*/              OPC_CheckType, MVT::v4i64,
/*343447*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*343449*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*343452*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Z256rrk), 0,
                            MVT::v4i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VINSERTI64x2Z256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*343463*/            /*SwitchOpcode*/ 88, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->343554
/*343466*/              OPC_RecordChild0, // #2 = $src1
/*343467*/              OPC_Scope, 28, /*->343497*/ // 3 children in Scope
/*343469*/                OPC_CheckChild0Type, MVT::v16i32,
/*343471*/                OPC_MoveChild1,
/*343472*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343475*/                OPC_CheckType, MVT::iPTR,
/*343477*/                OPC_MoveParent,
/*343478*/                OPC_MoveParent,
/*343479*/                OPC_RecordChild2, // #3 = $src0
/*343480*/                OPC_CheckType, MVT::v4i32,
/*343482*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343484*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*343487*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                          // Dst: (VEXTRACTI32x4Zrrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*343497*/              /*Scope*/ 26, /*->343524*/
/*343498*/                OPC_MoveChild1,
/*343499*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343502*/                OPC_CheckType, MVT::iPTR,
/*343504*/                OPC_MoveParent,
/*343505*/                OPC_MoveParent,
/*343506*/                OPC_RecordChild2, // #3 = $src0
/*343507*/                OPC_CheckType, MVT::v4i64,
/*343509*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343511*/                OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*343514*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx, VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VEXTRACTI64x4Zrrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*343524*/              /*Scope*/ 28, /*->343553*/
/*343525*/                OPC_CheckChild0Type, MVT::v8i32,
/*343527*/                OPC_MoveChild1,
/*343528*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343531*/                OPC_CheckType, MVT::iPTR,
/*343533*/                OPC_MoveParent,
/*343534*/                OPC_MoveParent,
/*343535*/                OPC_RecordChild2, // #3 = $src0
/*343536*/                OPC_CheckType, MVT::v4i32,
/*343538*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*343540*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*343543*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                          // Dst: (VEXTRACTI32x4Z256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*343553*/              0, /*End of Scope*/
/*343554*/            0, // EndSwitchOpcode
/*343555*/          0, /*End of Scope*/
/*343556*/        /*Scope*/ 96|128,5/*736*/, /*->344294*/
/*343558*/          OPC_MoveChild1,
/*343559*/          OPC_SwitchOpcode /*13 cases */, 123, TARGET_VAL(ISD::BITCAST),// ->343686
/*343563*/            OPC_MoveChild0,
/*343564*/            OPC_SwitchOpcode /*5 cases */, 21, TARGET_VAL(X86ISD::VBROADCAST),// ->343589
/*343568*/              OPC_RecordChild0, // #1 = $src
/*343569*/              OPC_CheckChild0Type, MVT::v2i64,
/*343571*/              OPC_CheckType, MVT::v2i64,
/*343573*/              OPC_MoveParent,
/*343574*/              OPC_MoveParent,
/*343575*/              OPC_RecordChild2, // #2 = $src0
/*343576*/              OPC_CheckType, MVT::v4i32,
/*343578*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*343580*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z128rk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VBroadcast:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VBROADCASTI32X2Z128rk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*343589*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::AND),// ->343613
/*343592*/              OPC_RecordChild0, // #1 = $src1
/*343593*/              OPC_RecordChild1, // #2 = $src2
/*343594*/              OPC_CheckType, MVT::v2i64,
/*343596*/              OPC_MoveParent,
/*343597*/              OPC_MoveParent,
/*343598*/              OPC_RecordChild2, // #3 = $src0
/*343599*/              OPC_CheckType, MVT::v4i32,
/*343601*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343603*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPANDDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*343613*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::OR),// ->343637
/*343616*/              OPC_RecordChild0, // #1 = $src1
/*343617*/              OPC_RecordChild1, // #2 = $src2
/*343618*/              OPC_CheckType, MVT::v2i64,
/*343620*/              OPC_MoveParent,
/*343621*/              OPC_MoveParent,
/*343622*/              OPC_RecordChild2, // #3 = $src0
/*343623*/              OPC_CheckType, MVT::v4i32,
/*343625*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343627*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPORDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*343637*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::XOR),// ->343661
/*343640*/              OPC_RecordChild0, // #1 = $src1
/*343641*/              OPC_RecordChild1, // #2 = $src2
/*343642*/              OPC_CheckType, MVT::v2i64,
/*343644*/              OPC_MoveParent,
/*343645*/              OPC_MoveParent,
/*343646*/              OPC_RecordChild2, // #3 = $src0
/*343647*/              OPC_CheckType, MVT::v4i32,
/*343649*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343651*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPXORDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*343661*/            /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::ANDNP),// ->343685
/*343664*/              OPC_RecordChild0, // #1 = $src1
/*343665*/              OPC_RecordChild1, // #2 = $src2
/*343666*/              OPC_CheckType, MVT::v2i64,
/*343668*/              OPC_MoveParent,
/*343669*/              OPC_MoveParent,
/*343670*/              OPC_RecordChild2, // #3 = $src0
/*343671*/              OPC_CheckType, MVT::v4i32,
/*343673*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343675*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPANDNDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*343685*/            0, // EndSwitchOpcode
/*343686*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VSRLI),// ->343732
/*343689*/            OPC_RecordChild0, // #1 = $src1
/*343690*/            OPC_RecordChild1, // #2 = $src2
/*343691*/            OPC_MoveChild1,
/*343692*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343695*/            OPC_MoveParent,
/*343696*/            OPC_MoveParent,
/*343697*/            OPC_RecordChild2, // #3 = $src0
/*343698*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->343715
/*343701*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343703*/              OPC_EmitConvertToTarget, 2,
/*343705*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128rik), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRLDZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*343715*/            /*SwitchType*/ 14, MVT::v4i64,// ->343731
/*343717*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343719*/              OPC_EmitConvertToTarget, 2,
/*343721*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256rik), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPSRLQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*343731*/            0, // EndSwitchType
/*343732*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VSHLI),// ->343778
/*343735*/            OPC_RecordChild0, // #1 = $src1
/*343736*/            OPC_RecordChild1, // #2 = $src2
/*343737*/            OPC_MoveChild1,
/*343738*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343741*/            OPC_MoveParent,
/*343742*/            OPC_MoveParent,
/*343743*/            OPC_RecordChild2, // #3 = $src0
/*343744*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->343761
/*343747*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343749*/              OPC_EmitConvertToTarget, 2,
/*343751*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128rik), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPSLLDZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*343761*/            /*SwitchType*/ 14, MVT::v4i64,// ->343777
/*343763*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343765*/              OPC_EmitConvertToTarget, 2,
/*343767*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256rik), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPSLLQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*343777*/            0, // EndSwitchType
/*343778*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VSRAI),// ->343824
/*343781*/            OPC_RecordChild0, // #1 = $src1
/*343782*/            OPC_RecordChild1, // #2 = $src2
/*343783*/            OPC_MoveChild1,
/*343784*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343787*/            OPC_MoveParent,
/*343788*/            OPC_MoveParent,
/*343789*/            OPC_RecordChild2, // #3 = $src0
/*343790*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->343807
/*343793*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343795*/              OPC_EmitConvertToTarget, 2,
/*343797*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128rik), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRADZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*343807*/            /*SwitchType*/ 14, MVT::v4i64,// ->343823
/*343809*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343811*/              OPC_EmitConvertToTarget, 2,
/*343813*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256rik), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPSRAQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*343823*/            0, // EndSwitchType
/*343824*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VROTRI),// ->343870
/*343827*/            OPC_RecordChild0, // #1 = $src1
/*343828*/            OPC_RecordChild1, // #2 = $src2
/*343829*/            OPC_MoveChild1,
/*343830*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343833*/            OPC_MoveParent,
/*343834*/            OPC_MoveParent,
/*343835*/            OPC_RecordChild2, // #3 = $src0
/*343836*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->343853
/*343839*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343841*/              OPC_EmitConvertToTarget, 2,
/*343843*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128rik), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPRORDZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*343853*/            /*SwitchType*/ 14, MVT::v4i64,// ->343869
/*343855*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343857*/              OPC_EmitConvertToTarget, 2,
/*343859*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256rik), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPRORQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*343869*/            0, // EndSwitchType
/*343870*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VROTLI),// ->343916
/*343873*/            OPC_RecordChild0, // #1 = $src1
/*343874*/            OPC_RecordChild1, // #2 = $src2
/*343875*/            OPC_MoveChild1,
/*343876*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343879*/            OPC_MoveParent,
/*343880*/            OPC_MoveParent,
/*343881*/            OPC_RecordChild2, // #3 = $src0
/*343882*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->343899
/*343885*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343887*/              OPC_EmitConvertToTarget, 2,
/*343889*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128rik), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPROLDZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*343899*/            /*SwitchType*/ 14, MVT::v4i64,// ->343915
/*343901*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343903*/              OPC_EmitConvertToTarget, 2,
/*343905*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256rik), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPROLQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*343915*/            0, // EndSwitchType
/*343916*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPERMI),// ->343944
/*343919*/            OPC_RecordChild0, // #1 = $src1
/*343920*/            OPC_RecordChild1, // #2 = $src2
/*343921*/            OPC_MoveChild1,
/*343922*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343925*/            OPC_MoveParent,
/*343926*/            OPC_MoveParent,
/*343927*/            OPC_RecordChild2, // #3 = $src0
/*343928*/            OPC_CheckType, MVT::v4i64,
/*343930*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343932*/            OPC_EmitConvertToTarget, 2,
/*343934*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rik), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                      // Dst: (VPERMQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*343944*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::PSHUFD),// ->343972
/*343947*/            OPC_RecordChild0, // #1 = $src1
/*343948*/            OPC_RecordChild1, // #2 = $src2
/*343949*/            OPC_MoveChild1,
/*343950*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343953*/            OPC_MoveParent,
/*343954*/            OPC_MoveParent,
/*343955*/            OPC_RecordChild2, // #3 = $src0
/*343956*/            OPC_CheckType, MVT::v4i32,
/*343958*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343960*/            OPC_EmitConvertToTarget, 2,
/*343962*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128rik), 0,
                          MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFDZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*343972*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::SHUF128),// ->344002
/*343975*/            OPC_RecordChild0, // #1 = $src1
/*343976*/            OPC_RecordChild1, // #2 = $src2
/*343977*/            OPC_RecordChild2, // #3 = $src3
/*343978*/            OPC_MoveChild2,
/*343979*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*343982*/            OPC_MoveParent,
/*343983*/            OPC_MoveParent,
/*343984*/            OPC_RecordChild2, // #4 = $src0
/*343985*/            OPC_CheckType, MVT::v4i64,
/*343987*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*343989*/            OPC_EmitConvertToTarget, 3,
/*343991*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rrik), 0,
                          MVT::v4i64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                      // Dst: (VSHUFI64X2Z256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*344002*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VALIGN),// ->344051
/*344005*/            OPC_RecordChild0, // #1 = $src1
/*344006*/            OPC_RecordChild1, // #2 = $src2
/*344007*/            OPC_RecordChild2, // #3 = $src3
/*344008*/            OPC_MoveChild2,
/*344009*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*344012*/            OPC_MoveParent,
/*344013*/            OPC_MoveParent,
/*344014*/            OPC_RecordChild2, // #4 = $src0
/*344015*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->344033
/*344018*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344020*/              OPC_EmitConvertToTarget, 3,
/*344022*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rrik), 0,
                            MVT::v4i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VALIGNDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*344033*/            /*SwitchType*/ 15, MVT::v4i64,// ->344050
/*344035*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344037*/              OPC_EmitConvertToTarget, 3,
/*344039*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rrik), 0,
                            MVT::v4i64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VALIGNQZ256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*344050*/            0, // EndSwitchType
/*344051*/          /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->344195
/*344055*/            OPC_RecordChild0, // #1 = $src1
/*344056*/            OPC_RecordChild1, // #2 = $src2
/*344057*/            OPC_RecordChild2, // #3 = $src3
/*344058*/            OPC_RecordChild3, // #4 = $src4
/*344059*/            OPC_MoveChild3,
/*344060*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*344063*/            OPC_MoveParent,
/*344064*/            OPC_MoveParent,
/*344065*/            OPC_SwitchType /*2 cases */, 62, MVT::v4i32,// ->344130
/*344068*/              OPC_Scope, 17, /*->344087*/ // 3 children in Scope
/*344070*/                OPC_CheckChild2Same, 1,
/*344072*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344074*/                OPC_EmitConvertToTarget, 4,
/*344076*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rrik), 0,
                              MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*344087*/              /*Scope*/ 20, /*->344108*/
/*344088*/                OPC_CheckChild2Same, 3,
/*344090*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344092*/                OPC_EmitConvertToTarget, 4,
/*344094*/                OPC_EmitNodeXForm, 15, 5, // VPTERNLOG321_imm8
/*344097*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rrik), 0,
                              MVT::v4i32, 5/*#Ops*/, 3, 0, 2, 1, 6, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src3, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*344108*/              /*Scope*/ 20, /*->344129*/
/*344109*/                OPC_CheckChild2Same, 2,
/*344111*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344113*/                OPC_EmitConvertToTarget, 4,
/*344115*/                OPC_EmitNodeXForm, 17, 5, // VPTERNLOG213_imm8
/*344118*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rrik), 0,
                              MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 6, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*344129*/              0, /*End of Scope*/
/*344130*/            /*SwitchType*/ 62, MVT::v4i64,// ->344194
/*344132*/              OPC_Scope, 17, /*->344151*/ // 3 children in Scope
/*344134*/                OPC_CheckChild2Same, 1,
/*344136*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344138*/                OPC_EmitConvertToTarget, 4,
/*344140*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rrik), 0,
                              MVT::v4i64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGQZ256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*344151*/              /*Scope*/ 20, /*->344172*/
/*344152*/                OPC_CheckChild2Same, 3,
/*344154*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344156*/                OPC_EmitConvertToTarget, 4,
/*344158*/                OPC_EmitNodeXForm, 15, 5, // VPTERNLOG321_imm8
/*344161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rrik), 0,
                              MVT::v4i64, 5/*#Ops*/, 3, 0, 2, 1, 6, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src3, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGQZ256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*344172*/              /*Scope*/ 20, /*->344193*/
/*344173*/                OPC_CheckChild2Same, 2,
/*344175*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344177*/                OPC_EmitConvertToTarget, 4,
/*344179*/                OPC_EmitNodeXForm, 17, 5, // VPTERNLOG213_imm8
/*344182*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rrik), 0,
                              MVT::v4i64, 5/*#Ops*/, 2, 0, 1, 3, 6, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGQZ256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*344193*/              0, /*End of Scope*/
/*344194*/            0, // EndSwitchType
/*344195*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VSHLD),// ->344244
/*344198*/            OPC_RecordChild0, // #1 = $src1
/*344199*/            OPC_RecordChild1, // #2 = $src2
/*344200*/            OPC_RecordChild2, // #3 = $src3
/*344201*/            OPC_MoveChild2,
/*344202*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*344205*/            OPC_MoveParent,
/*344206*/            OPC_MoveParent,
/*344207*/            OPC_RecordChild2, // #4 = $src0
/*344208*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->344226
/*344211*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*344213*/              OPC_EmitConvertToTarget, 3,
/*344215*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rrik), 0,
                            MVT::v4i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*344226*/            /*SwitchType*/ 15, MVT::v4i64,// ->344243
/*344228*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*344230*/              OPC_EmitConvertToTarget, 3,
/*344232*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rrik), 0,
                            MVT::v4i64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDQZ256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*344243*/            0, // EndSwitchType
/*344244*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VSHRD),// ->344293
/*344247*/            OPC_RecordChild0, // #1 = $src1
/*344248*/            OPC_RecordChild1, // #2 = $src2
/*344249*/            OPC_RecordChild2, // #3 = $src3
/*344250*/            OPC_MoveChild2,
/*344251*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*344254*/            OPC_MoveParent,
/*344255*/            OPC_MoveParent,
/*344256*/            OPC_RecordChild2, // #4 = $src0
/*344257*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->344275
/*344260*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*344262*/              OPC_EmitConvertToTarget, 3,
/*344264*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rrik), 0,
                            MVT::v4i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*344275*/            /*SwitchType*/ 15, MVT::v4i64,// ->344292
/*344277*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*344279*/              OPC_EmitConvertToTarget, 3,
/*344281*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rrik), 0,
                            MVT::v4i64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDQZ256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*344292*/            0, // EndSwitchType
/*344293*/          0, // EndSwitchOpcode
/*344294*/        /*Scope*/ 74, /*->344369*/
/*344295*/          OPC_RecordChild1, // #1 = $src
/*344296*/          OPC_MoveChild2,
/*344297*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*344300*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*344302*/          OPC_MoveParent,
/*344303*/          OPC_CheckType, MVT::v4i32,
/*344305*/          OPC_Scope, 10, /*->344317*/ // 2 children in Scope
/*344307*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344309*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 7
                      // Dst: (VMOVDQA32Z128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*344317*/          /*Scope*/ 50, /*->344368*/
/*344318*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*344320*/            OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*344323*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*344331*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #4
/*344337*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*344340*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*344349*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 3, 6,  // Results = #7
/*344357*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*344360*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 7
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VMOVDQA32Zrrkz:{ *:[v16i32] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4WM:{ *:[v4i1] }:$mask, VK16WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*344368*/          0, /*End of Scope*/
/*344369*/        /*Scope*/ 114|128,16/*2162*/, /*->346533*/
/*344371*/          OPC_MoveChild1,
/*344372*/          OPC_SwitchOpcode /*54 cases */, 75, TARGET_VAL(X86ISD::VBROADCAST),// ->344451
/*344376*/            OPC_RecordChild0, // #1 = $src
/*344377*/            OPC_Scope, 17, /*->344396*/ // 4 children in Scope
/*344379*/              OPC_CheckChild0Type, MVT::i32,
/*344381*/              OPC_MoveParent,
/*344382*/              OPC_RecordChild2, // #2 = $src0
/*344383*/              OPC_CheckType, MVT::v4i32,
/*344385*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344387*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZ128rk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i32] } GR32:{ *:[i32] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTDrZ128rk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, GR32:{ *:[i32] }:$src)
/*344396*/            /*Scope*/ 17, /*->344414*/
/*344397*/              OPC_CheckChild0Type, MVT::i64,
/*344399*/              OPC_MoveParent,
/*344400*/              OPC_RecordChild2, // #2 = $src0
/*344401*/              OPC_CheckType, MVT::v4i64,
/*344403*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344405*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZ256rk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i64] } GR64:{ *:[i64] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTQrZ256rk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, GR64:{ *:[i64] }:$src)
/*344414*/            /*Scope*/ 17, /*->344432*/
/*344415*/              OPC_CheckChild0Type, MVT::v4i32,
/*344417*/              OPC_MoveParent,
/*344418*/              OPC_RecordChild2, // #2 = $src0
/*344419*/              OPC_CheckType, MVT::v4i32,
/*344421*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344423*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ128rk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTDZ128rk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*344432*/            /*Scope*/ 17, /*->344450*/
/*344433*/              OPC_CheckChild0Type, MVT::v2i64,
/*344435*/              OPC_MoveParent,
/*344436*/              OPC_RecordChild2, // #2 = $src0
/*344437*/              OPC_CheckType, MVT::v4i64,
/*344439*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344441*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256rk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i64] } VR128X:{ *:[v2i64] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTQZ256rk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*344450*/            0, /*End of Scope*/
/*344451*/          /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VPERMV3),// ->344526
/*344454*/            OPC_RecordChild0, // #1 = $src2
/*344455*/            OPC_RecordChild1, // #2 = $src1
/*344456*/            OPC_RecordChild2, // #3 = $src3
/*344457*/            OPC_MoveParent,
/*344458*/            OPC_Scope, 32, /*->344492*/ // 2 children in Scope
/*344460*/              OPC_CheckChild2Same, 2,
/*344462*/              OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->344477
/*344465*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*344467*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2D128rrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src3), VR128X:{ *:[v4i32] }:$src1) - Complexity = 6
                          // Dst: (VPERMI2D128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*344477*/              /*SwitchType*/ 12, MVT::v4i64,// ->344491
/*344479*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*344481*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Q256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src3), VR256X:{ *:[v4i64] }:$src1) - Complexity = 6
                          // Dst: (VPERMI2Q256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*344491*/              0, // EndSwitchType
/*344492*/            /*Scope*/ 32, /*->344525*/
/*344493*/              OPC_CheckChild2Same, 1,
/*344495*/              OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->344510
/*344498*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*344500*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D128rrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), VR128X:{ *:[v4i32] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2D128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*344510*/              /*SwitchType*/ 12, MVT::v4i64,// ->344524
/*344512*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*344514*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3), VR256X:{ *:[v4i64] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2Q256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*344524*/              0, // EndSwitchType
/*344525*/            0, /*End of Scope*/
/*344526*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ADD),// ->344563
/*344529*/            OPC_RecordChild0, // #1 = $src1
/*344530*/            OPC_RecordChild1, // #2 = $src2
/*344531*/            OPC_MoveParent,
/*344532*/            OPC_RecordChild2, // #3 = $src0
/*344533*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i64,// ->344548
/*344536*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344538*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPADDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344548*/            /*SwitchType*/ 12, MVT::v4i32,// ->344562
/*344550*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344552*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPADDDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*344562*/            0, // EndSwitchType
/*344563*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SUB),// ->344600
/*344566*/            OPC_RecordChild0, // #1 = $src1
/*344567*/            OPC_RecordChild1, // #2 = $src2
/*344568*/            OPC_MoveParent,
/*344569*/            OPC_RecordChild2, // #3 = $src0
/*344570*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i64,// ->344585
/*344573*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344575*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPSUBQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344585*/            /*SwitchType*/ 12, MVT::v4i32,// ->344599
/*344587*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344589*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sub:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPSUBDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*344599*/            0, // EndSwitchType
/*344600*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::MUL),// ->344637
/*344603*/            OPC_RecordChild0, // #1 = $src1
/*344604*/            OPC_RecordChild1, // #2 = $src2
/*344605*/            OPC_MoveParent,
/*344606*/            OPC_RecordChild2, // #3 = $src0
/*344607*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->344622
/*344610*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344612*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMULLDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*344622*/            /*SwitchType*/ 12, MVT::v4i64,// ->344636
/*344624*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*344626*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPMULLQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344636*/            0, // EndSwitchType
/*344637*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULDQ),// ->344658
/*344640*/            OPC_RecordChild0, // #1 = $src1
/*344641*/            OPC_RecordChild1, // #2 = $src2
/*344642*/            OPC_MoveParent,
/*344643*/            OPC_RecordChild2, // #3 = $src0
/*344644*/            OPC_CheckType, MVT::v4i64,
/*344646*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344648*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rrk), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuldq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                      // Dst: (VPMULDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344658*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULUDQ),// ->344679
/*344661*/            OPC_RecordChild0, // #1 = $src1
/*344662*/            OPC_RecordChild1, // #2 = $src2
/*344663*/            OPC_MoveParent,
/*344664*/            OPC_RecordChild2, // #3 = $src0
/*344665*/            OPC_CheckType, MVT::v4i64,
/*344667*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344669*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rrk), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86pmuludq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                      // Dst: (VPMULUDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344679*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDWD),// ->344700
/*344682*/            OPC_RecordChild0, // #1 = $src1
/*344683*/            OPC_RecordChild1, // #2 = $src2
/*344684*/            OPC_MoveParent,
/*344685*/            OPC_RecordChild2, // #3 = $src0
/*344686*/            OPC_CheckType, MVT::v4i32,
/*344688*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*344690*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ128rrk), 0,
                          MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpmaddwd:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                      // Dst: (VPMADDWDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*344700*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMAX),// ->344737
/*344703*/            OPC_RecordChild0, // #1 = $src1
/*344704*/            OPC_RecordChild1, // #2 = $src2
/*344705*/            OPC_MoveParent,
/*344706*/            OPC_RecordChild2, // #3 = $src0
/*344707*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->344722
/*344710*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344712*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMAXSDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*344722*/            /*SwitchType*/ 12, MVT::v4i64,// ->344736
/*344724*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344726*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPMAXSQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344736*/            0, // EndSwitchType
/*344737*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMAX),// ->344774
/*344740*/            OPC_RecordChild0, // #1 = $src1
/*344741*/            OPC_RecordChild1, // #2 = $src2
/*344742*/            OPC_MoveParent,
/*344743*/            OPC_RecordChild2, // #3 = $src0
/*344744*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->344759
/*344747*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344749*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMAXUDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*344759*/            /*SwitchType*/ 12, MVT::v4i64,// ->344773
/*344761*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344763*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPMAXUQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344773*/            0, // EndSwitchType
/*344774*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMIN),// ->344811
/*344777*/            OPC_RecordChild0, // #1 = $src1
/*344778*/            OPC_RecordChild1, // #2 = $src2
/*344779*/            OPC_MoveParent,
/*344780*/            OPC_RecordChild2, // #3 = $src0
/*344781*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->344796
/*344784*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344786*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMINSDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*344796*/            /*SwitchType*/ 12, MVT::v4i64,// ->344810
/*344798*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344800*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (smin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPMINSQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344810*/            0, // EndSwitchType
/*344811*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMIN),// ->344848
/*344814*/            OPC_RecordChild0, // #1 = $src1
/*344815*/            OPC_RecordChild1, // #2 = $src2
/*344816*/            OPC_MoveParent,
/*344817*/            OPC_RecordChild2, // #3 = $src0
/*344818*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->344833
/*344821*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344823*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMINUDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*344833*/            /*SwitchType*/ 12, MVT::v4i64,// ->344847
/*344835*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344837*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (umin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPMINUQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344847*/            0, // EndSwitchType
/*344848*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::AND),// ->344869
/*344851*/            OPC_RecordChild0, // #1 = $src1
/*344852*/            OPC_RecordChild1, // #2 = $src2
/*344853*/            OPC_MoveParent,
/*344854*/            OPC_RecordChild2, // #3 = $src0
/*344855*/            OPC_CheckType, MVT::v4i64,
/*344857*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344859*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrk), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                      // Dst: (VPANDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344869*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::OR),// ->344890
/*344872*/            OPC_RecordChild0, // #1 = $src1
/*344873*/            OPC_RecordChild1, // #2 = $src2
/*344874*/            OPC_MoveParent,
/*344875*/            OPC_RecordChild2, // #3 = $src0
/*344876*/            OPC_CheckType, MVT::v4i64,
/*344878*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344880*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrk), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                      // Dst: (VPORQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344890*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::XOR),// ->344911
/*344893*/            OPC_RecordChild0, // #1 = $src1
/*344894*/            OPC_RecordChild1, // #2 = $src2
/*344895*/            OPC_MoveParent,
/*344896*/            OPC_RecordChild2, // #3 = $src0
/*344897*/            OPC_CheckType, MVT::v4i64,
/*344899*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344901*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrk), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                      // Dst: (VPXORQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344911*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::ANDNP),// ->344932
/*344914*/            OPC_RecordChild0, // #1 = $src1
/*344915*/            OPC_RecordChild1, // #2 = $src2
/*344916*/            OPC_MoveParent,
/*344917*/            OPC_RecordChild2, // #3 = $src0
/*344918*/            OPC_CheckType, MVT::v4i64,
/*344920*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344922*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrk), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                      // Dst: (VPANDNQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*344932*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSHL),// ->344977
/*344935*/            OPC_RecordChild0, // #1 = $src1
/*344936*/            OPC_RecordChild1, // #2 = $src2
/*344937*/            OPC_Scope, 18, /*->344957*/ // 2 children in Scope
/*344939*/              OPC_CheckChild1Type, MVT::v4i32,
/*344941*/              OPC_MoveParent,
/*344942*/              OPC_RecordChild2, // #3 = $src0
/*344943*/              OPC_CheckType, MVT::v4i32,
/*344945*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344947*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPSLLDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*344957*/            /*Scope*/ 18, /*->344976*/
/*344958*/              OPC_CheckChild1Type, MVT::v2i64,
/*344960*/              OPC_MoveParent,
/*344961*/              OPC_RecordChild2, // #3 = $src0
/*344962*/              OPC_CheckType, MVT::v4i64,
/*344964*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344966*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPSLLQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*344976*/            0, /*End of Scope*/
/*344977*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSRA),// ->345022
/*344980*/            OPC_RecordChild0, // #1 = $src1
/*344981*/            OPC_RecordChild1, // #2 = $src2
/*344982*/            OPC_Scope, 18, /*->345002*/ // 2 children in Scope
/*344984*/              OPC_CheckChild1Type, MVT::v4i32,
/*344986*/              OPC_MoveParent,
/*344987*/              OPC_RecordChild2, // #3 = $src0
/*344988*/              OPC_CheckType, MVT::v4i32,
/*344990*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*344992*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRADZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*345002*/            /*Scope*/ 18, /*->345021*/
/*345003*/              OPC_CheckChild1Type, MVT::v2i64,
/*345005*/              OPC_MoveParent,
/*345006*/              OPC_RecordChild2, // #3 = $src0
/*345007*/              OPC_CheckType, MVT::v4i64,
/*345009*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345011*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPSRAQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*345021*/            0, /*End of Scope*/
/*345022*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSRL),// ->345067
/*345025*/            OPC_RecordChild0, // #1 = $src1
/*345026*/            OPC_RecordChild1, // #2 = $src2
/*345027*/            OPC_Scope, 18, /*->345047*/ // 2 children in Scope
/*345029*/              OPC_CheckChild1Type, MVT::v4i32,
/*345031*/              OPC_MoveParent,
/*345032*/              OPC_RecordChild2, // #3 = $src0
/*345033*/              OPC_CheckType, MVT::v4i32,
/*345035*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345037*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRLDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*345047*/            /*Scope*/ 18, /*->345066*/
/*345048*/              OPC_CheckChild1Type, MVT::v2i64,
/*345050*/              OPC_MoveParent,
/*345051*/              OPC_RecordChild2, // #3 = $src0
/*345052*/              OPC_CheckType, MVT::v4i64,
/*345054*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345056*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPSRLQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*345066*/            0, /*End of Scope*/
/*345067*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::SHL),// ->345112
/*345070*/            OPC_RecordChild0, // #1 = $src1
/*345071*/            OPC_RecordChild1, // #2 = $src2
/*345072*/            OPC_Scope, 18, /*->345092*/ // 2 children in Scope
/*345074*/              OPC_CheckChild1Type, MVT::v4i32,
/*345076*/              OPC_MoveParent,
/*345077*/              OPC_RecordChild2, // #3 = $src0
/*345078*/              OPC_CheckType, MVT::v4i32,
/*345080*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345082*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPSLLVDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*345092*/            /*Scope*/ 18, /*->345111*/
/*345093*/              OPC_CheckChild1Type, MVT::v4i64,
/*345095*/              OPC_MoveParent,
/*345096*/              OPC_RecordChild2, // #3 = $src0
/*345097*/              OPC_CheckType, MVT::v4i64,
/*345099*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345101*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (shl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPSLLVQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*345111*/            0, /*End of Scope*/
/*345112*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::SRA),// ->345157
/*345115*/            OPC_RecordChild0, // #1 = $src1
/*345116*/            OPC_RecordChild1, // #2 = $src2
/*345117*/            OPC_Scope, 18, /*->345137*/ // 2 children in Scope
/*345119*/              OPC_CheckChild1Type, MVT::v4i32,
/*345121*/              OPC_MoveParent,
/*345122*/              OPC_RecordChild2, // #3 = $src0
/*345123*/              OPC_CheckType, MVT::v4i32,
/*345125*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345127*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*345137*/            /*Scope*/ 18, /*->345156*/
/*345138*/              OPC_CheckChild1Type, MVT::v4i64,
/*345140*/              OPC_MoveParent,
/*345141*/              OPC_RecordChild2, // #3 = $src0
/*345142*/              OPC_CheckType, MVT::v4i64,
/*345144*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345146*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*345156*/            0, /*End of Scope*/
/*345157*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::SRL),// ->345202
/*345160*/            OPC_RecordChild0, // #1 = $src1
/*345161*/            OPC_RecordChild1, // #2 = $src2
/*345162*/            OPC_Scope, 18, /*->345182*/ // 2 children in Scope
/*345164*/              OPC_CheckChild1Type, MVT::v4i32,
/*345166*/              OPC_MoveParent,
/*345167*/              OPC_RecordChild2, // #3 = $src0
/*345168*/              OPC_CheckType, MVT::v4i32,
/*345170*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345172*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRLVDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*345182*/            /*Scope*/ 18, /*->345201*/
/*345183*/              OPC_CheckChild1Type, MVT::v4i64,
/*345185*/              OPC_MoveParent,
/*345186*/              OPC_RecordChild2, // #3 = $src0
/*345187*/              OPC_CheckType, MVT::v4i64,
/*345189*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345191*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (srl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPSRLVQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*345201*/            0, /*End of Scope*/
/*345202*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::ROTR),// ->345247
/*345205*/            OPC_RecordChild0, // #1 = $src1
/*345206*/            OPC_RecordChild1, // #2 = $src2
/*345207*/            OPC_Scope, 18, /*->345227*/ // 2 children in Scope
/*345209*/              OPC_CheckChild1Type, MVT::v4i32,
/*345211*/              OPC_MoveParent,
/*345212*/              OPC_RecordChild2, // #3 = $src0
/*345213*/              OPC_CheckType, MVT::v4i32,
/*345215*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345217*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPRORVDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*345227*/            /*Scope*/ 18, /*->345246*/
/*345228*/              OPC_CheckChild1Type, MVT::v4i64,
/*345230*/              OPC_MoveParent,
/*345231*/              OPC_RecordChild2, // #3 = $src0
/*345232*/              OPC_CheckType, MVT::v4i64,
/*345234*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345236*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPRORVQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*345246*/            0, /*End of Scope*/
/*345247*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::ROTL),// ->345292
/*345250*/            OPC_RecordChild0, // #1 = $src1
/*345251*/            OPC_RecordChild1, // #2 = $src2
/*345252*/            OPC_Scope, 18, /*->345272*/ // 2 children in Scope
/*345254*/              OPC_CheckChild1Type, MVT::v4i32,
/*345256*/              OPC_MoveParent,
/*345257*/              OPC_RecordChild2, // #3 = $src0
/*345258*/              OPC_CheckType, MVT::v4i32,
/*345260*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345262*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPROLVDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*345272*/            /*Scope*/ 18, /*->345291*/
/*345273*/              OPC_CheckChild1Type, MVT::v4i64,
/*345275*/              OPC_MoveParent,
/*345276*/              OPC_RecordChild2, // #3 = $src0
/*345277*/              OPC_CheckType, MVT::v4i64,
/*345279*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345281*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (rotl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPROLVQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*345291*/            0, /*End of Scope*/
/*345292*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VSRAV),// ->345329
/*345295*/            OPC_RecordChild0, // #1 = $src1
/*345296*/            OPC_RecordChild1, // #2 = $src2
/*345297*/            OPC_MoveParent,
/*345298*/            OPC_RecordChild2, // #3 = $src0
/*345299*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->345314
/*345302*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345304*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*345314*/            /*SwitchType*/ 12, MVT::v4i64,// ->345328
/*345316*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345318*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrav:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*345328*/            0, // EndSwitchType
/*345329*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMV),// ->345350
/*345332*/            OPC_RecordChild0, // #1 = $src1
/*345333*/            OPC_RecordChild1, // #2 = $src2
/*345334*/            OPC_MoveParent,
/*345335*/            OPC_RecordChild2, // #3 = $src0
/*345336*/            OPC_CheckType, MVT::v4i64,
/*345338*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345340*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rrk), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                      // Dst: (VPERMQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*345350*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52L),// ->345373
/*345353*/            OPC_RecordChild0, // #1 = $src2
/*345354*/            OPC_RecordChild1, // #2 = $src3
/*345355*/            OPC_RecordChild2, // #3 = $src1
/*345356*/            OPC_MoveParent,
/*345357*/            OPC_CheckChild2Same, 3,
/*345359*/            OPC_CheckType, MVT::v4i64,
/*345361*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*345363*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256rk), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52l:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 6
                      // Dst: (VPMADD52LUQZ256rk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*345373*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52H),// ->345396
/*345376*/            OPC_RecordChild0, // #1 = $src2
/*345377*/            OPC_RecordChild1, // #2 = $src3
/*345378*/            OPC_RecordChild2, // #3 = $src1
/*345379*/            OPC_MoveParent,
/*345380*/            OPC_CheckChild2Same, 3,
/*345382*/            OPC_CheckType, MVT::v4i64,
/*345384*/            OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*345386*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256rk), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (x86vpmadd52h:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 6
                      // Dst: (VPMADD52HUQZ256rk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*345396*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::CVTTP2SI),// ->345486
/*345399*/            OPC_RecordChild0, // #1 = $src
/*345400*/            OPC_Scope, 32, /*->345434*/ // 3 children in Scope
/*345402*/              OPC_CheckChild0Type, MVT::v4f32,
/*345404*/              OPC_MoveParent,
/*345405*/              OPC_RecordChild2, // #2 = $src0
/*345406*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->345420
/*345409*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345411*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rrk), 0,
                              MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2DQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*345420*/              /*SwitchType*/ 11, MVT::v4i64,// ->345433
/*345422*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*345424*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2QQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*345433*/              0, // EndSwitchType
/*345434*/            /*Scope*/ 17, /*->345452*/
/*345435*/              OPC_CheckChild0Type, MVT::v2f64,
/*345437*/              OPC_MoveParent,
/*345438*/              OPC_RecordChild2, // #2 = $src0
/*345439*/              OPC_CheckType, MVT::v4i32,
/*345441*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345443*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPD2DQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*345452*/            /*Scope*/ 32, /*->345485*/
/*345453*/              OPC_CheckChild0Type, MVT::v4f64,
/*345455*/              OPC_MoveParent,
/*345456*/              OPC_RecordChild2, // #2 = $src0
/*345457*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->345471
/*345460*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345462*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rrk), 0,
                              MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2DQZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*345471*/              /*SwitchType*/ 11, MVT::v4i64,// ->345484
/*345473*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*345475*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2QQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*345484*/              0, // EndSwitchType
/*345485*/            0, /*End of Scope*/
/*345486*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::CVTTP2UI),// ->345576
/*345489*/            OPC_RecordChild0, // #1 = $src
/*345490*/            OPC_Scope, 32, /*->345524*/ // 3 children in Scope
/*345492*/              OPC_CheckChild0Type, MVT::v4f32,
/*345494*/              OPC_MoveParent,
/*345495*/              OPC_RecordChild2, // #2 = $src0
/*345496*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->345510
/*345499*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345501*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rrk), 0,
                              MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2UDQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*345510*/              /*SwitchType*/ 11, MVT::v4i64,// ->345523
/*345512*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*345514*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2UQQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*345523*/              0, // EndSwitchType
/*345524*/            /*Scope*/ 17, /*->345542*/
/*345525*/              OPC_CheckChild0Type, MVT::v2f64,
/*345527*/              OPC_MoveParent,
/*345528*/              OPC_RecordChild2, // #2 = $src0
/*345529*/              OPC_CheckType, MVT::v4i32,
/*345531*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345533*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPD2UDQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*345542*/            /*Scope*/ 32, /*->345575*/
/*345543*/              OPC_CheckChild0Type, MVT::v4f64,
/*345545*/              OPC_MoveParent,
/*345546*/              OPC_RecordChild2, // #2 = $src0
/*345547*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->345561
/*345550*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345552*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rrk), 0,
                              MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2UDQZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*345561*/              /*SwitchType*/ 11, MVT::v4i64,// ->345574
/*345563*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*345565*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2UQQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*345574*/              0, // EndSwitchType
/*345575*/            0, /*End of Scope*/
/*345576*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::CVTP2SI),// ->345666
/*345579*/            OPC_RecordChild0, // #1 = $src
/*345580*/            OPC_Scope, 32, /*->345614*/ // 3 children in Scope
/*345582*/              OPC_CheckChild0Type, MVT::v4f32,
/*345584*/              OPC_MoveParent,
/*345585*/              OPC_RecordChild2, // #2 = $src0
/*345586*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->345600
/*345589*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345591*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ128rrk), 0,
                              MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTPS2DQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*345600*/              /*SwitchType*/ 11, MVT::v4i64,// ->345613
/*345602*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*345604*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTPS2QQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*345613*/              0, // EndSwitchType
/*345614*/            /*Scope*/ 17, /*->345632*/
/*345615*/              OPC_CheckChild0Type, MVT::v2f64,
/*345617*/              OPC_MoveParent,
/*345618*/              OPC_RecordChild2, // #2 = $src0
/*345619*/              OPC_CheckType, MVT::v4i32,
/*345621*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345623*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VCVTPD2DQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*345632*/            /*Scope*/ 32, /*->345665*/
/*345633*/              OPC_CheckChild0Type, MVT::v4f64,
/*345635*/              OPC_MoveParent,
/*345636*/              OPC_RecordChild2, // #2 = $src0
/*345637*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->345651
/*345640*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345642*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ256rrk), 0,
                              MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTPD2DQZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*345651*/              /*SwitchType*/ 11, MVT::v4i64,// ->345664
/*345653*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*345655*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTPD2QQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*345664*/              0, // EndSwitchType
/*345665*/            0, /*End of Scope*/
/*345666*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::CVTP2UI),// ->345756
/*345669*/            OPC_RecordChild0, // #1 = $src
/*345670*/            OPC_Scope, 32, /*->345704*/ // 3 children in Scope
/*345672*/              OPC_CheckChild0Type, MVT::v4f32,
/*345674*/              OPC_MoveParent,
/*345675*/              OPC_RecordChild2, // #2 = $src0
/*345676*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->345690
/*345679*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345681*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ128rrk), 0,
                              MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTPS2UDQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*345690*/              /*SwitchType*/ 11, MVT::v4i64,// ->345703
/*345692*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*345694*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTPS2UQQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*345703*/              0, // EndSwitchType
/*345704*/            /*Scope*/ 17, /*->345722*/
/*345705*/              OPC_CheckChild0Type, MVT::v2f64,
/*345707*/              OPC_MoveParent,
/*345708*/              OPC_RecordChild2, // #2 = $src0
/*345709*/              OPC_CheckType, MVT::v4i32,
/*345711*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345713*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VCVTPD2UDQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*345722*/            /*Scope*/ 32, /*->345755*/
/*345723*/              OPC_CheckChild0Type, MVT::v4f64,
/*345725*/              OPC_MoveParent,
/*345726*/              OPC_RecordChild2, // #2 = $src0
/*345727*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->345741
/*345730*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*345732*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ256rrk), 0,
                              MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTPD2UDQZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*345741*/              /*SwitchType*/ 11, MVT::v4i64,// ->345754
/*345743*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*345745*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTPD2UQQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*345754*/              0, // EndSwitchType
/*345755*/            0, /*End of Scope*/
/*345756*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VTRUNC),// ->345777
/*345759*/            OPC_RecordChild0, // #1 = $src1
/*345760*/            OPC_CheckChild0Type, MVT::v2i64,
/*345762*/            OPC_MoveParent,
/*345763*/            OPC_RecordChild2, // #2 = $src0
/*345764*/            OPC_CheckType, MVT::v4i32,
/*345766*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345768*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ128rrk), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtrunc:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                      // Dst: (VPMOVQDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*345777*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::TRUNCATE),// ->345796
/*345780*/            OPC_RecordChild0, // #1 = $src1
/*345781*/            OPC_MoveParent,
/*345782*/            OPC_RecordChild2, // #2 = $src0
/*345783*/            OPC_CheckType, MVT::v4i32,
/*345785*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345787*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ256rrk), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (trunc:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                      // Dst: (VPMOVQDZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*345796*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VTRUNCS),// ->345838
/*345799*/            OPC_RecordChild0, // #1 = $src1
/*345800*/            OPC_Scope, 17, /*->345819*/ // 2 children in Scope
/*345802*/              OPC_CheckChild0Type, MVT::v2i64,
/*345804*/              OPC_MoveParent,
/*345805*/              OPC_RecordChild2, // #2 = $src0
/*345806*/              OPC_CheckType, MVT::v4i32,
/*345808*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345810*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncs:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSQDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*345819*/            /*Scope*/ 17, /*->345837*/
/*345820*/              OPC_CheckChild0Type, MVT::v4i64,
/*345822*/              OPC_MoveParent,
/*345823*/              OPC_RecordChild2, // #2 = $src0
/*345824*/              OPC_CheckType, MVT::v4i32,
/*345826*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345828*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ256rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncs:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSQDZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*345837*/            0, /*End of Scope*/
/*345838*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VTRUNCUS),// ->345880
/*345841*/            OPC_RecordChild0, // #1 = $src1
/*345842*/            OPC_Scope, 17, /*->345861*/ // 2 children in Scope
/*345844*/              OPC_CheckChild0Type, MVT::v2i64,
/*345846*/              OPC_MoveParent,
/*345847*/              OPC_RecordChild2, // #2 = $src0
/*345848*/              OPC_CheckType, MVT::v4i32,
/*345850*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345852*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncus:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSQDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*345861*/            /*Scope*/ 17, /*->345879*/
/*345862*/              OPC_CheckChild0Type, MVT::v4i64,
/*345864*/              OPC_MoveParent,
/*345865*/              OPC_RecordChild2, // #2 = $src0
/*345866*/              OPC_CheckType, MVT::v4i32,
/*345868*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345870*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ256rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncus:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSQDZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*345879*/            0, /*End of Scope*/
/*345880*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->345922
/*345883*/            OPC_RecordChild0, // #1 = $src
/*345884*/            OPC_Scope, 17, /*->345903*/ // 2 children in Scope
/*345886*/              OPC_CheckChild0Type, MVT::v16i8,
/*345888*/              OPC_MoveParent,
/*345889*/              OPC_RecordChild2, // #2 = $src0
/*345890*/              OPC_CheckType, MVT::v4i32,
/*345892*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345894*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (zext_invec:{ *:[v4i32] } VR128X:{ *:[v16i8] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXBDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*345903*/            /*Scope*/ 17, /*->345921*/
/*345904*/              OPC_CheckChild0Type, MVT::v8i16,
/*345906*/              OPC_MoveParent,
/*345907*/              OPC_RecordChild2, // #2 = $src0
/*345908*/              OPC_CheckType, MVT::v4i32,
/*345910*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345912*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (zext_invec:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXWDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*345921*/            0, /*End of Scope*/
/*345922*/          /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VZEXT),// ->345982
/*345925*/            OPC_RecordChild0, // #1 = $src
/*345926*/            OPC_Scope, 17, /*->345945*/ // 3 children in Scope
/*345928*/              OPC_CheckChild0Type, MVT::v16i8,
/*345930*/              OPC_MoveParent,
/*345931*/              OPC_RecordChild2, // #2 = $src0
/*345932*/              OPC_CheckType, MVT::v4i64,
/*345934*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345936*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vzext:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXBQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*345945*/            /*Scope*/ 17, /*->345963*/
/*345946*/              OPC_CheckChild0Type, MVT::v8i16,
/*345948*/              OPC_MoveParent,
/*345949*/              OPC_RecordChild2, // #2 = $src0
/*345950*/              OPC_CheckType, MVT::v4i64,
/*345952*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345954*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vzext:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXWQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*345963*/            /*Scope*/ 17, /*->345981*/
/*345964*/              OPC_CheckChild0Type, MVT::v4i32,
/*345966*/              OPC_MoveParent,
/*345967*/              OPC_RecordChild2, // #2 = $src0
/*345968*/              OPC_CheckType, MVT::v4i64,
/*345970*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345972*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vzext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*345981*/            0, /*End of Scope*/
/*345982*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->346024
/*345985*/            OPC_RecordChild0, // #1 = $src
/*345986*/            OPC_Scope, 17, /*->346005*/ // 2 children in Scope
/*345988*/              OPC_CheckChild0Type, MVT::v16i8,
/*345990*/              OPC_MoveParent,
/*345991*/              OPC_RecordChild2, // #2 = $src0
/*345992*/              OPC_CheckType, MVT::v4i32,
/*345994*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*345996*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sext_invec:{ *:[v4i32] } VR128X:{ *:[v16i8] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXBDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*346005*/            /*Scope*/ 17, /*->346023*/
/*346006*/              OPC_CheckChild0Type, MVT::v8i16,
/*346008*/              OPC_MoveParent,
/*346009*/              OPC_RecordChild2, // #2 = $src0
/*346010*/              OPC_CheckType, MVT::v4i32,
/*346012*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346014*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (sext_invec:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXWDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*346023*/            0, /*End of Scope*/
/*346024*/          /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VSEXT),// ->346084
/*346027*/            OPC_RecordChild0, // #1 = $src
/*346028*/            OPC_Scope, 17, /*->346047*/ // 3 children in Scope
/*346030*/              OPC_CheckChild0Type, MVT::v16i8,
/*346032*/              OPC_MoveParent,
/*346033*/              OPC_RecordChild2, // #2 = $src0
/*346034*/              OPC_CheckType, MVT::v4i64,
/*346036*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346038*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsext:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXBQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*346047*/            /*Scope*/ 17, /*->346065*/
/*346048*/              OPC_CheckChild0Type, MVT::v8i16,
/*346050*/              OPC_MoveParent,
/*346051*/              OPC_RecordChild2, // #2 = $src0
/*346052*/              OPC_CheckType, MVT::v4i64,
/*346054*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346056*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsext:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXWQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*346065*/            /*Scope*/ 17, /*->346083*/
/*346066*/              OPC_CheckChild0Type, MVT::v4i32,
/*346068*/              OPC_MoveParent,
/*346069*/              OPC_RecordChild2, // #2 = $src0
/*346070*/              OPC_CheckType, MVT::v4i64,
/*346072*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346074*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*346083*/            0, /*End of Scope*/
/*346084*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::COMPRESS),// ->346118
/*346087*/            OPC_RecordChild0, // #1 = $src1
/*346088*/            OPC_MoveParent,
/*346089*/            OPC_RecordChild2, // #2 = $src0
/*346090*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->346104
/*346093*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346095*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86compress:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPCOMPRESSDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*346104*/            /*SwitchType*/ 11, MVT::v4i64,// ->346117
/*346106*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346108*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86compress:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPCOMPRESSQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*346117*/            0, // EndSwitchType
/*346118*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::EXPAND),// ->346152
/*346121*/            OPC_RecordChild0, // #1 = $src1
/*346122*/            OPC_MoveParent,
/*346123*/            OPC_RecordChild2, // #2 = $src0
/*346124*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->346138
/*346127*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346129*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPEXPANDDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*346138*/            /*SwitchType*/ 11, MVT::v4i64,// ->346151
/*346140*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346142*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPEXPANDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*346151*/            0, // EndSwitchType
/*346152*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::ABS),// ->346186
/*346155*/            OPC_RecordChild0, // #1 = $src1
/*346156*/            OPC_MoveParent,
/*346157*/            OPC_RecordChild2, // #2 = $src0
/*346158*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->346172
/*346161*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346163*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPABSQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*346172*/            /*SwitchType*/ 11, MVT::v4i32,// ->346185
/*346174*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPABSDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*346185*/            0, // EndSwitchType
/*346186*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::CTLZ),// ->346220
/*346189*/            OPC_RecordChild0, // #1 = $src1
/*346190*/            OPC_MoveParent,
/*346191*/            OPC_RecordChild2, // #2 = $src0
/*346192*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->346206
/*346195*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*346197*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPLZCNTQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*346206*/            /*SwitchType*/ 11, MVT::v4i32,// ->346219
/*346208*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*346210*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPLZCNTDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*346219*/            0, // EndSwitchType
/*346220*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::CONFLICT),// ->346254
/*346223*/            OPC_RecordChild0, // #1 = $src1
/*346224*/            OPC_MoveParent,
/*346225*/            OPC_RecordChild2, // #2 = $src0
/*346226*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->346240
/*346229*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*346231*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPCONFLICTQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*346240*/            /*SwitchType*/ 11, MVT::v4i32,// ->346253
/*346242*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*346244*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPCONFLICTDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*346253*/            0, // EndSwitchType
/*346254*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::CTPOP),// ->346288
/*346257*/            OPC_RecordChild0, // #1 = $src1
/*346258*/            OPC_MoveParent,
/*346259*/            OPC_RecordChild2, // #2 = $src0
/*346260*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->346274
/*346263*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*346265*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPOPCNTQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*346274*/            /*SwitchType*/ 11, MVT::v4i32,// ->346287
/*346276*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*346278*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPOPCNTDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*346287*/            0, // EndSwitchType
/*346288*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->346325
/*346291*/            OPC_RecordChild0, // #1 = $src1
/*346292*/            OPC_RecordChild1, // #2 = $src2
/*346293*/            OPC_MoveParent,
/*346294*/            OPC_RecordChild2, // #3 = $src0
/*346295*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->346310
/*346298*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346300*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKLDQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*346310*/            /*SwitchType*/ 12, MVT::v4i64,// ->346324
/*346312*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346314*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKLQDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*346324*/            0, // EndSwitchType
/*346325*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->346362
/*346328*/            OPC_RecordChild0, // #1 = $src1
/*346329*/            OPC_RecordChild1, // #2 = $src2
/*346330*/            OPC_MoveParent,
/*346331*/            OPC_RecordChild2, // #3 = $src0
/*346332*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->346347
/*346335*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346337*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKHDQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*346347*/            /*SwitchType*/ 12, MVT::v4i64,// ->346361
/*346349*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346351*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKHQDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*346361*/            0, // EndSwitchType
/*346362*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VSHLDV),// ->346401
/*346365*/            OPC_RecordChild0, // #1 = $src1
/*346366*/            OPC_RecordChild1, // #2 = $src2
/*346367*/            OPC_RecordChild2, // #3 = $src3
/*346368*/            OPC_MoveParent,
/*346369*/            OPC_CheckChild2Same, 1,
/*346371*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->346386
/*346374*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*346376*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ128rk), 0,
                            MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), VR128X:{ *:[v4i32] }:$src1) - Complexity = 6
                        // Dst: (VPSHLDVDZ128rk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*346386*/            /*SwitchType*/ 12, MVT::v4i64,// ->346400
/*346388*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*346390*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ256rk), 0,
                            MVT::v4i64, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShldv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3), VR256X:{ *:[v4i64] }:$src1) - Complexity = 6
                        // Dst: (VPSHLDVQZ256rk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*346400*/            0, // EndSwitchType
/*346401*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VSHRDV),// ->346440
/*346404*/            OPC_RecordChild0, // #1 = $src1
/*346405*/            OPC_RecordChild1, // #2 = $src2
/*346406*/            OPC_RecordChild2, // #3 = $src3
/*346407*/            OPC_MoveParent,
/*346408*/            OPC_CheckChild2Same, 1,
/*346410*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->346425
/*346413*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*346415*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ128rk), 0,
                            MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), VR128X:{ *:[v4i32] }:$src1) - Complexity = 6
                        // Dst: (VPSHRDVDZ128rk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*346425*/            /*SwitchType*/ 12, MVT::v4i64,// ->346439
/*346427*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*346429*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ256rk), 0,
                            MVT::v4i64, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrdv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3), VR256X:{ *:[v4i64] }:$src1) - Complexity = 6
                        // Dst: (VPSHRDVQZ256rk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*346439*/            0, // EndSwitchType
/*346440*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSD),// ->346463
/*346443*/            OPC_RecordChild0, // #1 = $src1
/*346444*/            OPC_RecordChild1, // #2 = $src2
/*346445*/            OPC_RecordChild2, // #3 = $src3
/*346446*/            OPC_MoveParent,
/*346447*/            OPC_CheckChild2Same, 1,
/*346449*/            OPC_CheckType, MVT::v4i32,
/*346451*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*346453*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ128rk), 0,
                          MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), VR128X:{ *:[v4i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPBUSDZ128rk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*346463*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSDS),// ->346486
/*346466*/            OPC_RecordChild0, // #1 = $src1
/*346467*/            OPC_RecordChild1, // #2 = $src2
/*346468*/            OPC_RecordChild2, // #3 = $src3
/*346469*/            OPC_MoveParent,
/*346470*/            OPC_CheckChild2Same, 1,
/*346472*/            OPC_CheckType, MVT::v4i32,
/*346474*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*346476*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ128rk), 0,
                          MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpbusds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), VR128X:{ *:[v4i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPBUSDSZ128rk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*346486*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSD),// ->346509
/*346489*/            OPC_RecordChild0, // #1 = $src1
/*346490*/            OPC_RecordChild1, // #2 = $src2
/*346491*/            OPC_RecordChild2, // #3 = $src3
/*346492*/            OPC_MoveParent,
/*346493*/            OPC_CheckChild2Same, 1,
/*346495*/            OPC_CheckType, MVT::v4i32,
/*346497*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*346499*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128rk), 0,
                          MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), VR128X:{ *:[v4i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPWSSDZ128rk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*346509*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSDS),// ->346532
/*346512*/            OPC_RecordChild0, // #1 = $src1
/*346513*/            OPC_RecordChild1, // #2 = $src2
/*346514*/            OPC_RecordChild2, // #3 = $src3
/*346515*/            OPC_MoveParent,
/*346516*/            OPC_CheckChild2Same, 1,
/*346518*/            OPC_CheckType, MVT::v4i32,
/*346520*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*346522*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ128rk), 0,
                          MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Vpdpwssds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), VR128X:{ *:[v4i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPWSSDSZ128rk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*346532*/          0, // EndSwitchOpcode
/*346533*/        /*Scope*/ 48|128,1/*176*/, /*->346711*/
/*346535*/          OPC_RecordChild1, // #1 = $src1
/*346536*/          OPC_RecordChild2, // #2 = $src0
/*346537*/          OPC_SwitchType /*2 cases */, 84, MVT::v4i32,// ->346624
/*346540*/            OPC_Scope, 11, /*->346553*/ // 2 children in Scope
/*346542*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346544*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrk), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src0) - Complexity = 3
                        // Dst: (VMOVDQA32Z128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*346553*/            /*Scope*/ 69, /*->346623*/
/*346554*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*346556*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*346562*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*346565*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*346574*/              OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*346577*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*346585*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #8
/*346591*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*346594*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*346603*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA32Zrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*346612*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*346615*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4i32, 2/*#Ops*/, 11, 12, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src0) - Complexity = 3
                        // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VMOVDQA32Zrrk:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src0, sub_xmm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4WM:{ *:[v4i1] }:$mask, VK16WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*346623*/            0, /*End of Scope*/
/*346624*/          /*SwitchType*/ 84, MVT::v4i64,// ->346710
/*346626*/            OPC_Scope, 11, /*->346639*/ // 2 children in Scope
/*346628*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346630*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rrk), 0,
                            MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src0) - Complexity = 3
                        // Dst: (VMOVDQA64Z256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*346639*/            /*Scope*/ 69, /*->346709*/
/*346640*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*346642*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*346648*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*346651*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8i64, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*346660*/              OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*346663*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*346671*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*346677*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*346680*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*346689*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Zrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*346698*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*346701*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4i64, 2/*#Ops*/, 11, 12, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src0) - Complexity = 3
                        // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VMOVDQA64Zrrk:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src0, sub_ymm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v8i1] } VK4WM:{ *:[v4i1] }:$mask, VK8WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*346709*/            0, /*End of Scope*/
/*346710*/          0, // EndSwitchType
/*346711*/        /*Scope*/ 77|128,19/*2509*/, /*->349222*/
/*346713*/          OPC_MoveChild1,
/*346714*/          OPC_SwitchOpcode /*12 cases */, 111|128,2/*367*/, TARGET_VAL(X86ISD::VFIXUPIMM),// ->347086
/*346719*/            OPC_RecordChild0, // #1 = $src1
/*346720*/            OPC_RecordChild1, // #2 = $src2
/*346721*/            OPC_MoveChild2,
/*346722*/            OPC_SwitchOpcode /*3 cases */, 101, TARGET_VAL(ISD::BITCAST),// ->346827
/*346726*/              OPC_MoveChild0,
/*346727*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*346730*/              OPC_RecordMemRef,
/*346731*/              OPC_RecordNode, // #3 = 'ld' chained node
/*346732*/              OPC_CheckFoldableChainNode,
/*346733*/              OPC_RecordChild1, // #4 = $src3
/*346734*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*346736*/              OPC_CheckPredicate, 9, // Predicate_load
/*346738*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*346740*/              OPC_CheckType, MVT::v2i64,
/*346742*/              OPC_MoveParent,
/*346743*/              OPC_MoveParent,
/*346744*/              OPC_RecordChild3, // #5 = $src4
/*346745*/              OPC_MoveChild3,
/*346746*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*346749*/              OPC_MoveParent,
/*346750*/              OPC_CheckChild4Integer, 4, 
/*346752*/              OPC_MoveParent,
/*346753*/              OPC_Scope, 41, /*->346796*/ // 2 children in Scope
/*346755*/                OPC_MoveChild2,
/*346756*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*346759*/                OPC_MoveChild0,
/*346760*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*346763*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*346765*/                OPC_CheckType, MVT::v4i32,
/*346767*/                OPC_MoveParent,
/*346768*/                OPC_MoveParent,
/*346769*/                OPC_CheckType, MVT::v4f32,
/*346771*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346773*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*346776*/                OPC_EmitMergeInputChains, 1, 3, 
/*346779*/                OPC_EmitConvertToTarget, 5,
/*346781*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 46
                          // Dst: (VFIXUPIMMPSZ128rmikz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*346796*/              /*Scope*/ 29, /*->346826*/
/*346797*/                OPC_CheckChild2Same, 1,
/*346799*/                OPC_CheckType, MVT::v4f32,
/*346801*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346803*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*346806*/                OPC_EmitMergeInputChains, 1, 3, 
/*346809*/                OPC_EmitConvertToTarget, 5,
/*346811*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src1) - Complexity = 39
                          // Dst: (VFIXUPIMMPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*346826*/              0, /*End of Scope*/
/*346827*/            /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(X86ISD::VBROADCAST),// ->347021
/*346831*/              OPC_MoveChild0,
/*346832*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*346835*/              OPC_RecordMemRef,
/*346836*/              OPC_RecordNode, // #3 = 'ld' chained node
/*346837*/              OPC_CheckFoldableChainNode,
/*346838*/              OPC_RecordChild1, // #4 = $src3
/*346839*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*346841*/              OPC_SwitchType /*2 cases */, 87, MVT::i32,// ->346931
/*346844*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*346846*/                OPC_MoveParent,
/*346847*/                OPC_MoveParent,
/*346848*/                OPC_RecordChild3, // #5 = $src4
/*346849*/                OPC_MoveChild3,
/*346850*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*346853*/                OPC_MoveParent,
/*346854*/                OPC_CheckChild4Integer, 4, 
/*346856*/                OPC_MoveParent,
/*346857*/                OPC_Scope, 41, /*->346900*/ // 2 children in Scope
/*346859*/                  OPC_MoveChild2,
/*346860*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*346863*/                  OPC_MoveChild0,
/*346864*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*346867*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*346869*/                  OPC_CheckType, MVT::v4i32,
/*346871*/                  OPC_MoveParent,
/*346872*/                  OPC_MoveParent,
/*346873*/                  OPC_CheckType, MVT::v4f32,
/*346875*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346877*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*346880*/                  OPC_EmitMergeInputChains, 1, 3, 
/*346883*/                  OPC_EmitConvertToTarget, 5,
/*346885*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 46
                            // Dst: (VFIXUPIMMPSZ128rmbikz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*346900*/                /*Scope*/ 29, /*->346930*/
/*346901*/                  OPC_CheckChild2Same, 1,
/*346903*/                  OPC_CheckType, MVT::v4f32,
/*346905*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346907*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*346910*/                  OPC_EmitMergeInputChains, 1, 3, 
/*346913*/                  OPC_EmitConvertToTarget, 5,
/*346915*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src1) - Complexity = 39
                            // Dst: (VFIXUPIMMPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*346930*/                0, /*End of Scope*/
/*346931*/              /*SwitchType*/ 87, MVT::i64,// ->347020
/*346933*/                OPC_CheckPredicate, 9, // Predicate_load
/*346935*/                OPC_MoveParent,
/*346936*/                OPC_MoveParent,
/*346937*/                OPC_RecordChild3, // #5 = $src4
/*346938*/                OPC_MoveChild3,
/*346939*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*346942*/                OPC_MoveParent,
/*346943*/                OPC_CheckChild4Integer, 4, 
/*346945*/                OPC_MoveParent,
/*346946*/                OPC_Scope, 41, /*->346989*/ // 2 children in Scope
/*346948*/                  OPC_MoveChild2,
/*346949*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*346952*/                  OPC_MoveChild0,
/*346953*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*346956*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*346958*/                  OPC_CheckType, MVT::v8i32,
/*346960*/                  OPC_MoveParent,
/*346961*/                  OPC_MoveParent,
/*346962*/                  OPC_CheckType, MVT::v4f64,
/*346964*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346966*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*346969*/                  OPC_EmitMergeInputChains, 1, 3, 
/*346972*/                  OPC_EmitConvertToTarget, 5,
/*346974*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 46
                            // Dst: (VFIXUPIMMPDZ256rmbikz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*346989*/                /*Scope*/ 29, /*->347019*/
/*346990*/                  OPC_CheckChild2Same, 1,
/*346992*/                  OPC_CheckType, MVT::v4f64,
/*346994*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*346996*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*346999*/                  OPC_EmitMergeInputChains, 1, 3, 
/*347002*/                  OPC_EmitConvertToTarget, 5,
/*347004*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR256X:{ *:[v4f64] }:$src1) - Complexity = 39
                            // Dst: (VFIXUPIMMPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*347019*/                0, /*End of Scope*/
/*347020*/              0, // EndSwitchType
/*347021*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->347085
/*347024*/              OPC_RecordMemRef,
/*347025*/              OPC_RecordNode, // #3 = 'ld' chained node
/*347026*/              OPC_CheckFoldableChainNode,
/*347027*/              OPC_RecordChild1, // #4 = $src3
/*347028*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*347030*/              OPC_CheckPredicate, 9, // Predicate_load
/*347032*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*347034*/              OPC_MoveParent,
/*347035*/              OPC_RecordChild3, // #5 = $src4
/*347036*/              OPC_MoveChild3,
/*347037*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*347040*/              OPC_MoveParent,
/*347041*/              OPC_CheckChild4Integer, 4, 
/*347043*/              OPC_MoveParent,
/*347044*/              OPC_MoveChild2,
/*347045*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347048*/              OPC_MoveChild0,
/*347049*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347052*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347054*/              OPC_CheckType, MVT::v8i32,
/*347056*/              OPC_MoveParent,
/*347057*/              OPC_MoveParent,
/*347058*/              OPC_CheckType, MVT::v4f64,
/*347060*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*347062*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*347065*/              OPC_EmitMergeInputChains, 1, 3, 
/*347068*/              OPC_EmitConvertToTarget, 5,
/*347070*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                        // Dst: (VFIXUPIMMPDZ256rmikz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*347085*/            0, // EndSwitchOpcode
/*347086*/          /*SwitchOpcode*/ 20|128,7/*916*/, TARGET_VAL(ISD::BITCAST),// ->348006
/*347090*/            OPC_Scope, 70|128,6/*838*/, /*->347931*/ // 2 children in Scope
/*347093*/              OPC_MoveChild0,
/*347094*/              OPC_SwitchOpcode /*4 cases */, 107|128,1/*235*/, TARGET_VAL(ISD::AND),// ->347334
/*347099*/                OPC_Scope, 115, /*->347216*/ // 2 children in Scope
/*347101*/                  OPC_RecordChild0, // #1 = $src1
/*347102*/                  OPC_MoveChild1,
/*347103*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347106*/                  OPC_MoveChild0,
/*347107*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*347110*/                  OPC_MoveChild0,
/*347111*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*347114*/                  OPC_RecordMemRef,
/*347115*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*347116*/                  OPC_CheckFoldableChainNode,
/*347117*/                  OPC_RecordChild1, // #3 = $src2
/*347118*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*347120*/                  OPC_CheckPredicate, 9, // Predicate_load
/*347122*/                  OPC_SwitchType /*2 cases */, 44, MVT::f32,// ->347169
/*347125*/                    OPC_MoveParent,
/*347126*/                    OPC_CheckType, MVT::v4f32,
/*347128*/                    OPC_MoveParent,
/*347129*/                    OPC_MoveParent,
/*347130*/                    OPC_CheckType, MVT::v2i64,
/*347132*/                    OPC_MoveParent,
/*347133*/                    OPC_MoveParent,
/*347134*/                    OPC_MoveChild2,
/*347135*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347138*/                    OPC_MoveChild0,
/*347139*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347142*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347144*/                    OPC_CheckType, MVT::v4i32,
/*347146*/                    OPC_MoveParent,
/*347147*/                    OPC_MoveParent,
/*347148*/                    OPC_CheckType, MVT::v4f32,
/*347150*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347152*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347155*/                    OPC_EmitMergeInputChains1_2,
/*347156*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPANDDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347169*/                  /*SwitchType*/ 44, MVT::f64,// ->347215
/*347171*/                    OPC_MoveParent,
/*347172*/                    OPC_CheckType, MVT::v4f64,
/*347174*/                    OPC_MoveParent,
/*347175*/                    OPC_MoveParent,
/*347176*/                    OPC_CheckType, MVT::v4i64,
/*347178*/                    OPC_MoveParent,
/*347179*/                    OPC_MoveParent,
/*347180*/                    OPC_MoveChild2,
/*347181*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347184*/                    OPC_MoveChild0,
/*347185*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347188*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347190*/                    OPC_CheckType, MVT::v8i32,
/*347192*/                    OPC_MoveParent,
/*347193*/                    OPC_MoveParent,
/*347194*/                    OPC_CheckType, MVT::v4f64,
/*347196*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347198*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347201*/                    OPC_EmitMergeInputChains1_2,
/*347202*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPANDQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347215*/                  0, // EndSwitchType
/*347216*/                /*Scope*/ 116, /*->347333*/
/*347217*/                  OPC_MoveChild0,
/*347218*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347221*/                  OPC_MoveChild0,
/*347222*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*347225*/                  OPC_MoveChild0,
/*347226*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*347229*/                  OPC_RecordMemRef,
/*347230*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*347231*/                  OPC_CheckFoldableChainNode,
/*347232*/                  OPC_RecordChild1, // #2 = $src2
/*347233*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*347235*/                  OPC_CheckPredicate, 9, // Predicate_load
/*347237*/                  OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->347285
/*347240*/                    OPC_MoveParent,
/*347241*/                    OPC_CheckType, MVT::v4f32,
/*347243*/                    OPC_MoveParent,
/*347244*/                    OPC_MoveParent,
/*347245*/                    OPC_RecordChild1, // #3 = $src1
/*347246*/                    OPC_CheckType, MVT::v2i64,
/*347248*/                    OPC_MoveParent,
/*347249*/                    OPC_MoveParent,
/*347250*/                    OPC_MoveChild2,
/*347251*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347254*/                    OPC_MoveChild0,
/*347255*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347258*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347260*/                    OPC_CheckType, MVT::v4i32,
/*347262*/                    OPC_MoveParent,
/*347263*/                    OPC_MoveParent,
/*347264*/                    OPC_CheckType, MVT::v4f32,
/*347266*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347268*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347271*/                    OPC_EmitMergeInputChains1_1,
/*347272*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPANDDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347285*/                  /*SwitchType*/ 45, MVT::f64,// ->347332
/*347287*/                    OPC_MoveParent,
/*347288*/                    OPC_CheckType, MVT::v4f64,
/*347290*/                    OPC_MoveParent,
/*347291*/                    OPC_MoveParent,
/*347292*/                    OPC_RecordChild1, // #3 = $src1
/*347293*/                    OPC_CheckType, MVT::v4i64,
/*347295*/                    OPC_MoveParent,
/*347296*/                    OPC_MoveParent,
/*347297*/                    OPC_MoveChild2,
/*347298*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347301*/                    OPC_MoveChild0,
/*347302*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347305*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347307*/                    OPC_CheckType, MVT::v8i32,
/*347309*/                    OPC_MoveParent,
/*347310*/                    OPC_MoveParent,
/*347311*/                    OPC_CheckType, MVT::v4f64,
/*347313*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347315*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347318*/                    OPC_EmitMergeInputChains1_1,
/*347319*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPANDQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347332*/                  0, // EndSwitchType
/*347333*/                0, /*End of Scope*/
/*347334*/              /*SwitchOpcode*/ 107|128,1/*235*/, TARGET_VAL(ISD::OR),// ->347573
/*347338*/                OPC_Scope, 115, /*->347455*/ // 2 children in Scope
/*347340*/                  OPC_RecordChild0, // #1 = $src1
/*347341*/                  OPC_MoveChild1,
/*347342*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347345*/                  OPC_MoveChild0,
/*347346*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*347349*/                  OPC_MoveChild0,
/*347350*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*347353*/                  OPC_RecordMemRef,
/*347354*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*347355*/                  OPC_CheckFoldableChainNode,
/*347356*/                  OPC_RecordChild1, // #3 = $src2
/*347357*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*347359*/                  OPC_CheckPredicate, 9, // Predicate_load
/*347361*/                  OPC_SwitchType /*2 cases */, 44, MVT::f32,// ->347408
/*347364*/                    OPC_MoveParent,
/*347365*/                    OPC_CheckType, MVT::v4f32,
/*347367*/                    OPC_MoveParent,
/*347368*/                    OPC_MoveParent,
/*347369*/                    OPC_CheckType, MVT::v2i64,
/*347371*/                    OPC_MoveParent,
/*347372*/                    OPC_MoveParent,
/*347373*/                    OPC_MoveChild2,
/*347374*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347377*/                    OPC_MoveChild0,
/*347378*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347381*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347383*/                    OPC_CheckType, MVT::v4i32,
/*347385*/                    OPC_MoveParent,
/*347386*/                    OPC_MoveParent,
/*347387*/                    OPC_CheckType, MVT::v4f32,
/*347389*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347391*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347394*/                    OPC_EmitMergeInputChains1_2,
/*347395*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPORDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347408*/                  /*SwitchType*/ 44, MVT::f64,// ->347454
/*347410*/                    OPC_MoveParent,
/*347411*/                    OPC_CheckType, MVT::v4f64,
/*347413*/                    OPC_MoveParent,
/*347414*/                    OPC_MoveParent,
/*347415*/                    OPC_CheckType, MVT::v4i64,
/*347417*/                    OPC_MoveParent,
/*347418*/                    OPC_MoveParent,
/*347419*/                    OPC_MoveChild2,
/*347420*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347423*/                    OPC_MoveChild0,
/*347424*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347427*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347429*/                    OPC_CheckType, MVT::v8i32,
/*347431*/                    OPC_MoveParent,
/*347432*/                    OPC_MoveParent,
/*347433*/                    OPC_CheckType, MVT::v4f64,
/*347435*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347437*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347440*/                    OPC_EmitMergeInputChains1_2,
/*347441*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPORQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347454*/                  0, // EndSwitchType
/*347455*/                /*Scope*/ 116, /*->347572*/
/*347456*/                  OPC_MoveChild0,
/*347457*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347460*/                  OPC_MoveChild0,
/*347461*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*347464*/                  OPC_MoveChild0,
/*347465*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*347468*/                  OPC_RecordMemRef,
/*347469*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*347470*/                  OPC_CheckFoldableChainNode,
/*347471*/                  OPC_RecordChild1, // #2 = $src2
/*347472*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*347474*/                  OPC_CheckPredicate, 9, // Predicate_load
/*347476*/                  OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->347524
/*347479*/                    OPC_MoveParent,
/*347480*/                    OPC_CheckType, MVT::v4f32,
/*347482*/                    OPC_MoveParent,
/*347483*/                    OPC_MoveParent,
/*347484*/                    OPC_RecordChild1, // #3 = $src1
/*347485*/                    OPC_CheckType, MVT::v2i64,
/*347487*/                    OPC_MoveParent,
/*347488*/                    OPC_MoveParent,
/*347489*/                    OPC_MoveChild2,
/*347490*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347493*/                    OPC_MoveChild0,
/*347494*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347497*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347499*/                    OPC_CheckType, MVT::v4i32,
/*347501*/                    OPC_MoveParent,
/*347502*/                    OPC_MoveParent,
/*347503*/                    OPC_CheckType, MVT::v4f32,
/*347505*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347507*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347510*/                    OPC_EmitMergeInputChains1_1,
/*347511*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPORDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347524*/                  /*SwitchType*/ 45, MVT::f64,// ->347571
/*347526*/                    OPC_MoveParent,
/*347527*/                    OPC_CheckType, MVT::v4f64,
/*347529*/                    OPC_MoveParent,
/*347530*/                    OPC_MoveParent,
/*347531*/                    OPC_RecordChild1, // #3 = $src1
/*347532*/                    OPC_CheckType, MVT::v4i64,
/*347534*/                    OPC_MoveParent,
/*347535*/                    OPC_MoveParent,
/*347536*/                    OPC_MoveChild2,
/*347537*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347540*/                    OPC_MoveChild0,
/*347541*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347544*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347546*/                    OPC_CheckType, MVT::v8i32,
/*347548*/                    OPC_MoveParent,
/*347549*/                    OPC_MoveParent,
/*347550*/                    OPC_CheckType, MVT::v4f64,
/*347552*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347554*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347557*/                    OPC_EmitMergeInputChains1_1,
/*347558*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPORQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347571*/                  0, // EndSwitchType
/*347572*/                0, /*End of Scope*/
/*347573*/              /*SwitchOpcode*/ 107|128,1/*235*/, TARGET_VAL(ISD::XOR),// ->347812
/*347577*/                OPC_Scope, 115, /*->347694*/ // 2 children in Scope
/*347579*/                  OPC_RecordChild0, // #1 = $src1
/*347580*/                  OPC_MoveChild1,
/*347581*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347584*/                  OPC_MoveChild0,
/*347585*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*347588*/                  OPC_MoveChild0,
/*347589*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*347592*/                  OPC_RecordMemRef,
/*347593*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*347594*/                  OPC_CheckFoldableChainNode,
/*347595*/                  OPC_RecordChild1, // #3 = $src2
/*347596*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*347598*/                  OPC_CheckPredicate, 9, // Predicate_load
/*347600*/                  OPC_SwitchType /*2 cases */, 44, MVT::f32,// ->347647
/*347603*/                    OPC_MoveParent,
/*347604*/                    OPC_CheckType, MVT::v4f32,
/*347606*/                    OPC_MoveParent,
/*347607*/                    OPC_MoveParent,
/*347608*/                    OPC_CheckType, MVT::v2i64,
/*347610*/                    OPC_MoveParent,
/*347611*/                    OPC_MoveParent,
/*347612*/                    OPC_MoveChild2,
/*347613*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347616*/                    OPC_MoveChild0,
/*347617*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347620*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347622*/                    OPC_CheckType, MVT::v4i32,
/*347624*/                    OPC_MoveParent,
/*347625*/                    OPC_MoveParent,
/*347626*/                    OPC_CheckType, MVT::v4f32,
/*347628*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347630*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347633*/                    OPC_EmitMergeInputChains1_2,
/*347634*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPXORDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347647*/                  /*SwitchType*/ 44, MVT::f64,// ->347693
/*347649*/                    OPC_MoveParent,
/*347650*/                    OPC_CheckType, MVT::v4f64,
/*347652*/                    OPC_MoveParent,
/*347653*/                    OPC_MoveParent,
/*347654*/                    OPC_CheckType, MVT::v4i64,
/*347656*/                    OPC_MoveParent,
/*347657*/                    OPC_MoveParent,
/*347658*/                    OPC_MoveChild2,
/*347659*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347662*/                    OPC_MoveChild0,
/*347663*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347666*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347668*/                    OPC_CheckType, MVT::v8i32,
/*347670*/                    OPC_MoveParent,
/*347671*/                    OPC_MoveParent,
/*347672*/                    OPC_CheckType, MVT::v4f64,
/*347674*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347676*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347679*/                    OPC_EmitMergeInputChains1_2,
/*347680*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPXORQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347693*/                  0, // EndSwitchType
/*347694*/                /*Scope*/ 116, /*->347811*/
/*347695*/                  OPC_MoveChild0,
/*347696*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347699*/                  OPC_MoveChild0,
/*347700*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*347703*/                  OPC_MoveChild0,
/*347704*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*347707*/                  OPC_RecordMemRef,
/*347708*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*347709*/                  OPC_CheckFoldableChainNode,
/*347710*/                  OPC_RecordChild1, // #2 = $src2
/*347711*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*347713*/                  OPC_CheckPredicate, 9, // Predicate_load
/*347715*/                  OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->347763
/*347718*/                    OPC_MoveParent,
/*347719*/                    OPC_CheckType, MVT::v4f32,
/*347721*/                    OPC_MoveParent,
/*347722*/                    OPC_MoveParent,
/*347723*/                    OPC_RecordChild1, // #3 = $src1
/*347724*/                    OPC_CheckType, MVT::v2i64,
/*347726*/                    OPC_MoveParent,
/*347727*/                    OPC_MoveParent,
/*347728*/                    OPC_MoveChild2,
/*347729*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347732*/                    OPC_MoveChild0,
/*347733*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347736*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347738*/                    OPC_CheckType, MVT::v4i32,
/*347740*/                    OPC_MoveParent,
/*347741*/                    OPC_MoveParent,
/*347742*/                    OPC_CheckType, MVT::v4f32,
/*347744*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347746*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347749*/                    OPC_EmitMergeInputChains1_1,
/*347750*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPXORDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347763*/                  /*SwitchType*/ 45, MVT::f64,// ->347810
/*347765*/                    OPC_MoveParent,
/*347766*/                    OPC_CheckType, MVT::v4f64,
/*347768*/                    OPC_MoveParent,
/*347769*/                    OPC_MoveParent,
/*347770*/                    OPC_RecordChild1, // #3 = $src1
/*347771*/                    OPC_CheckType, MVT::v4i64,
/*347773*/                    OPC_MoveParent,
/*347774*/                    OPC_MoveParent,
/*347775*/                    OPC_MoveChild2,
/*347776*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347779*/                    OPC_MoveChild0,
/*347780*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347783*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347785*/                    OPC_CheckType, MVT::v8i32,
/*347787*/                    OPC_MoveParent,
/*347788*/                    OPC_MoveParent,
/*347789*/                    OPC_CheckType, MVT::v4f64,
/*347791*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347793*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347796*/                    OPC_EmitMergeInputChains1_1,
/*347797*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPXORQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347810*/                  0, // EndSwitchType
/*347811*/                0, /*End of Scope*/
/*347812*/              /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::ANDNP),// ->347930
/*347815*/                OPC_RecordChild0, // #1 = $src1
/*347816*/                OPC_MoveChild1,
/*347817*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347820*/                OPC_MoveChild0,
/*347821*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*347824*/                OPC_MoveChild0,
/*347825*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*347828*/                OPC_RecordMemRef,
/*347829*/                OPC_RecordNode, // #2 = 'ld' chained node
/*347830*/                OPC_CheckFoldableChainNode,
/*347831*/                OPC_RecordChild1, // #3 = $src2
/*347832*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*347834*/                OPC_CheckPredicate, 9, // Predicate_load
/*347836*/                OPC_SwitchType /*2 cases */, 44, MVT::f32,// ->347883
/*347839*/                  OPC_MoveParent,
/*347840*/                  OPC_CheckType, MVT::v4f32,
/*347842*/                  OPC_MoveParent,
/*347843*/                  OPC_MoveParent,
/*347844*/                  OPC_CheckType, MVT::v2i64,
/*347846*/                  OPC_MoveParent,
/*347847*/                  OPC_MoveParent,
/*347848*/                  OPC_MoveChild2,
/*347849*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347852*/                  OPC_MoveChild0,
/*347853*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347856*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347858*/                  OPC_CheckType, MVT::v4i32,
/*347860*/                  OPC_MoveParent,
/*347861*/                  OPC_MoveParent,
/*347862*/                  OPC_CheckType, MVT::v4f32,
/*347864*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347866*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347869*/                  OPC_EmitMergeInputChains1_2,
/*347870*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPANDNDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347883*/                /*SwitchType*/ 44, MVT::f64,// ->347929
/*347885*/                  OPC_MoveParent,
/*347886*/                  OPC_CheckType, MVT::v4f64,
/*347888*/                  OPC_MoveParent,
/*347889*/                  OPC_MoveParent,
/*347890*/                  OPC_CheckType, MVT::v4i64,
/*347892*/                  OPC_MoveParent,
/*347893*/                  OPC_MoveParent,
/*347894*/                  OPC_MoveChild2,
/*347895*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347898*/                  OPC_MoveChild0,
/*347899*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347902*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347904*/                  OPC_CheckType, MVT::v8i32,
/*347906*/                  OPC_MoveParent,
/*347907*/                  OPC_MoveParent,
/*347908*/                  OPC_CheckType, MVT::v4f64,
/*347910*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*347912*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*347915*/                  OPC_EmitMergeInputChains1_2,
/*347916*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPANDNQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*347929*/                0, // EndSwitchType
/*347930*/              0, // EndSwitchOpcode
/*347931*/            /*Scope*/ 73, /*->348005*/
/*347932*/              OPC_RecordChild0, // #1 = $ins
/*347933*/              OPC_MoveChild0,
/*347934*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*347937*/              OPC_RecordChild0, // #2 = $src1
/*347938*/              OPC_MoveChild1,
/*347939*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*347942*/              OPC_RecordMemRef,
/*347943*/              OPC_RecordNode, // #3 = 'ld' chained node
/*347944*/              OPC_CheckFoldableChainNode,
/*347945*/              OPC_RecordChild1, // #4 = $src2
/*347946*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*347948*/              OPC_CheckPredicate, 9, // Predicate_load
/*347950*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*347952*/              OPC_MoveParent,
/*347953*/              OPC_MoveChild2,
/*347954*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*347957*/              OPC_CheckType, MVT::iPTR,
/*347959*/              OPC_MoveParent,
/*347960*/              OPC_CheckType, MVT::v8f32,
/*347962*/              OPC_MoveParent,
/*347963*/              OPC_MoveParent,
/*347964*/              OPC_MoveChild2,
/*347965*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347968*/              OPC_MoveChild0,
/*347969*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*347972*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*347974*/              OPC_CheckType, MVT::v8i32,
/*347976*/              OPC_MoveParent,
/*347977*/              OPC_MoveParent,
/*347978*/              OPC_CheckType, MVT::v4f64,
/*347980*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*347982*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*347985*/              OPC_EmitMergeInputChains, 1, 3, 
/*347988*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*347991*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VINSERTF64x2Z256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ins))
/*348005*/            0, /*End of Scope*/
/*348006*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::SCALEF),// ->348194
/*348010*/            OPC_RecordChild0, // #1 = $src1
/*348011*/            OPC_MoveChild1,
/*348012*/            OPC_SwitchOpcode /*2 cases */, 98, TARGET_VAL(X86ISD::VBROADCAST),// ->348114
/*348016*/              OPC_MoveChild0,
/*348017*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*348020*/              OPC_RecordMemRef,
/*348021*/              OPC_RecordNode, // #2 = 'ld' chained node
/*348022*/              OPC_CheckFoldableChainNode,
/*348023*/              OPC_RecordChild1, // #3 = $src2
/*348024*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*348026*/              OPC_CheckPredicate, 9, // Predicate_load
/*348028*/              OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->348071
/*348031*/                OPC_MoveParent,
/*348032*/                OPC_MoveParent,
/*348033*/                OPC_CheckChild2Integer, 4, 
/*348035*/                OPC_MoveParent,
/*348036*/                OPC_MoveChild2,
/*348037*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348040*/                OPC_MoveChild0,
/*348041*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348044*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348046*/                OPC_CheckType, MVT::v4i32,
/*348048*/                OPC_MoveParent,
/*348049*/                OPC_MoveParent,
/*348050*/                OPC_CheckType, MVT::v4f32,
/*348052*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*348054*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*348057*/                OPC_EmitMergeInputChains1_2,
/*348058*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                          // Dst: (VSCALEFPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*348071*/              /*SwitchType*/ 40, MVT::f64,// ->348113
/*348073*/                OPC_MoveParent,
/*348074*/                OPC_MoveParent,
/*348075*/                OPC_CheckChild2Integer, 4, 
/*348077*/                OPC_MoveParent,
/*348078*/                OPC_MoveChild2,
/*348079*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348082*/                OPC_MoveChild0,
/*348083*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348086*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348088*/                OPC_CheckType, MVT::v8i32,
/*348090*/                OPC_MoveParent,
/*348091*/                OPC_MoveParent,
/*348092*/                OPC_CheckType, MVT::v4f64,
/*348094*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*348096*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*348099*/                OPC_EmitMergeInputChains1_2,
/*348100*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                          // Dst: (VSCALEFPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*348113*/              0, // EndSwitchType
/*348114*/            /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->348193
/*348117*/              OPC_RecordMemRef,
/*348118*/              OPC_RecordNode, // #2 = 'ld' chained node
/*348119*/              OPC_CheckFoldableChainNode,
/*348120*/              OPC_RecordChild1, // #3 = $src2
/*348121*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*348123*/              OPC_CheckPredicate, 9, // Predicate_load
/*348125*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*348127*/              OPC_MoveParent,
/*348128*/              OPC_CheckChild2Integer, 4, 
/*348130*/              OPC_MoveParent,
/*348131*/              OPC_MoveChild2,
/*348132*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348135*/              OPC_MoveChild0,
/*348136*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348139*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348141*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->348167
/*348144*/                OPC_MoveParent,
/*348145*/                OPC_MoveParent,
/*348146*/                OPC_CheckType, MVT::v4f32,
/*348148*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*348150*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*348153*/                OPC_EmitMergeInputChains1_2,
/*348154*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                          // Dst: (VSCALEFPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*348167*/              /*SwitchType*/ 23, MVT::v8i32,// ->348192
/*348169*/                OPC_MoveParent,
/*348170*/                OPC_MoveParent,
/*348171*/                OPC_CheckType, MVT::v4f64,
/*348173*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*348175*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*348178*/                OPC_EmitMergeInputChains1_2,
/*348179*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                          // Dst: (VSCALEFPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*348192*/              0, // EndSwitchType
/*348193*/            0, // EndSwitchOpcode
/*348194*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::FGETEXP_RND),// ->348377
/*348198*/            OPC_MoveChild0,
/*348199*/            OPC_SwitchOpcode /*2 cases */, 96, TARGET_VAL(X86ISD::VBROADCAST),// ->348299
/*348203*/              OPC_MoveChild0,
/*348204*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*348207*/              OPC_RecordMemRef,
/*348208*/              OPC_RecordNode, // #1 = 'ld' chained node
/*348209*/              OPC_CheckFoldableChainNode,
/*348210*/              OPC_RecordChild1, // #2 = $src
/*348211*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*348213*/              OPC_CheckPredicate, 9, // Predicate_load
/*348215*/              OPC_SwitchType /*2 cases */, 39, MVT::f32,// ->348257
/*348218*/                OPC_MoveParent,
/*348219*/                OPC_MoveParent,
/*348220*/                OPC_CheckChild1Integer, 4, 
/*348222*/                OPC_MoveParent,
/*348223*/                OPC_MoveChild2,
/*348224*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348227*/                OPC_MoveChild0,
/*348228*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348231*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348233*/                OPC_CheckType, MVT::v4i32,
/*348235*/                OPC_MoveParent,
/*348236*/                OPC_MoveParent,
/*348237*/                OPC_CheckType, MVT::v4f32,
/*348239*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*348241*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*348244*/                OPC_EmitMergeInputChains1_1,
/*348245*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                          // Dst: (VGETEXPPSZ128mbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*348257*/              /*SwitchType*/ 39, MVT::f64,// ->348298
/*348259*/                OPC_MoveParent,
/*348260*/                OPC_MoveParent,
/*348261*/                OPC_CheckChild1Integer, 4, 
/*348263*/                OPC_MoveParent,
/*348264*/                OPC_MoveChild2,
/*348265*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348268*/                OPC_MoveChild0,
/*348269*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348272*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348274*/                OPC_CheckType, MVT::v8i32,
/*348276*/                OPC_MoveParent,
/*348277*/                OPC_MoveParent,
/*348278*/                OPC_CheckType, MVT::v4f64,
/*348280*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*348282*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*348285*/                OPC_EmitMergeInputChains1_1,
/*348286*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                          // Dst: (VGETEXPPDZ256mbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*348298*/              0, // EndSwitchType
/*348299*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->348376
/*348302*/              OPC_RecordMemRef,
/*348303*/              OPC_RecordNode, // #1 = 'ld' chained node
/*348304*/              OPC_CheckFoldableChainNode,
/*348305*/              OPC_RecordChild1, // #2 = $src
/*348306*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*348308*/              OPC_CheckPredicate, 9, // Predicate_load
/*348310*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*348312*/              OPC_MoveParent,
/*348313*/              OPC_CheckChild1Integer, 4, 
/*348315*/              OPC_MoveParent,
/*348316*/              OPC_MoveChild2,
/*348317*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348320*/              OPC_MoveChild0,
/*348321*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348324*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348326*/              OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->348351
/*348329*/                OPC_MoveParent,
/*348330*/                OPC_MoveParent,
/*348331*/                OPC_CheckType, MVT::v4f32,
/*348333*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*348335*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*348338*/                OPC_EmitMergeInputChains1_1,
/*348339*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                          // Dst: (VGETEXPPSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*348351*/              /*SwitchType*/ 22, MVT::v8i32,// ->348375
/*348353*/                OPC_MoveParent,
/*348354*/                OPC_MoveParent,
/*348355*/                OPC_CheckType, MVT::v4f64,
/*348357*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*348359*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*348362*/                OPC_EmitMergeInputChains1_1,
/*348363*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                          // Dst: (VGETEXPPDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*348375*/              0, // EndSwitchType
/*348376*/            0, // EndSwitchOpcode
/*348377*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VPERMI),// ->348444
/*348380*/            OPC_MoveChild0,
/*348381*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*348384*/            OPC_MoveChild0,
/*348385*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*348388*/            OPC_RecordMemRef,
/*348389*/            OPC_RecordNode, // #1 = 'ld' chained node
/*348390*/            OPC_CheckFoldableChainNode,
/*348391*/            OPC_RecordChild1, // #2 = $src1
/*348392*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*348394*/            OPC_CheckPredicate, 9, // Predicate_load
/*348396*/            OPC_CheckType, MVT::f64,
/*348398*/            OPC_MoveParent,
/*348399*/            OPC_MoveParent,
/*348400*/            OPC_RecordChild1, // #3 = $src2
/*348401*/            OPC_MoveChild1,
/*348402*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348405*/            OPC_MoveParent,
/*348406*/            OPC_MoveParent,
/*348407*/            OPC_MoveChild2,
/*348408*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348411*/            OPC_MoveChild0,
/*348412*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348415*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348417*/            OPC_CheckType, MVT::v8i32,
/*348419*/            OPC_MoveParent,
/*348420*/            OPC_MoveParent,
/*348421*/            OPC_CheckType, MVT::v4f64,
/*348423*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*348425*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*348428*/            OPC_EmitMergeInputChains1_1,
/*348429*/            OPC_EmitConvertToTarget, 3,
/*348431*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPERMPDZ256mbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*348444*/          /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::VPERMILPI),// ->348561
/*348447*/            OPC_MoveChild0,
/*348448*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*348451*/            OPC_MoveChild0,
/*348452*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*348455*/            OPC_RecordMemRef,
/*348456*/            OPC_RecordNode, // #1 = 'ld' chained node
/*348457*/            OPC_CheckFoldableChainNode,
/*348458*/            OPC_RecordChild1, // #2 = $src1
/*348459*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*348461*/            OPC_CheckPredicate, 9, // Predicate_load
/*348463*/            OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->348512
/*348466*/              OPC_MoveParent,
/*348467*/              OPC_MoveParent,
/*348468*/              OPC_RecordChild1, // #3 = $src2
/*348469*/              OPC_MoveChild1,
/*348470*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348473*/              OPC_MoveParent,
/*348474*/              OPC_MoveParent,
/*348475*/              OPC_MoveChild2,
/*348476*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348479*/              OPC_MoveChild0,
/*348480*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348483*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348485*/              OPC_CheckType, MVT::v4i32,
/*348487*/              OPC_MoveParent,
/*348488*/              OPC_MoveParent,
/*348489*/              OPC_CheckType, MVT::v4f32,
/*348491*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*348493*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*348496*/              OPC_EmitMergeInputChains1_1,
/*348497*/              OPC_EmitConvertToTarget, 3,
/*348499*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPERMILPSZ128mbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*348512*/            /*SwitchType*/ 46, MVT::f64,// ->348560
/*348514*/              OPC_MoveParent,
/*348515*/              OPC_MoveParent,
/*348516*/              OPC_RecordChild1, // #3 = $src2
/*348517*/              OPC_MoveChild1,
/*348518*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348521*/              OPC_MoveParent,
/*348522*/              OPC_MoveParent,
/*348523*/              OPC_MoveChild2,
/*348524*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348527*/              OPC_MoveChild0,
/*348528*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348531*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348533*/              OPC_CheckType, MVT::v8i32,
/*348535*/              OPC_MoveParent,
/*348536*/              OPC_MoveParent,
/*348537*/              OPC_CheckType, MVT::v4f64,
/*348539*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*348541*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*348544*/              OPC_EmitMergeInputChains1_1,
/*348545*/              OPC_EmitConvertToTarget, 3,
/*348547*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPERMILPDZ256mbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*348560*/            0, // EndSwitchType
/*348561*/          /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::VREDUCE),// ->348678
/*348564*/            OPC_MoveChild0,
/*348565*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*348568*/            OPC_MoveChild0,
/*348569*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*348572*/            OPC_RecordMemRef,
/*348573*/            OPC_RecordNode, // #1 = 'ld' chained node
/*348574*/            OPC_CheckFoldableChainNode,
/*348575*/            OPC_RecordChild1, // #2 = $src1
/*348576*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*348578*/            OPC_CheckPredicate, 9, // Predicate_load
/*348580*/            OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->348629
/*348583*/              OPC_MoveParent,
/*348584*/              OPC_MoveParent,
/*348585*/              OPC_RecordChild1, // #3 = $src2
/*348586*/              OPC_MoveChild1,
/*348587*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348590*/              OPC_MoveParent,
/*348591*/              OPC_MoveParent,
/*348592*/              OPC_MoveChild2,
/*348593*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348596*/              OPC_MoveChild0,
/*348597*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348600*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348602*/              OPC_CheckType, MVT::v4i32,
/*348604*/              OPC_MoveParent,
/*348605*/              OPC_MoveParent,
/*348606*/              OPC_CheckType, MVT::v4f32,
/*348608*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*348610*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*348613*/              OPC_EmitMergeInputChains1_1,
/*348614*/              OPC_EmitConvertToTarget, 3,
/*348616*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VREDUCEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*348629*/            /*SwitchType*/ 46, MVT::f64,// ->348677
/*348631*/              OPC_MoveParent,
/*348632*/              OPC_MoveParent,
/*348633*/              OPC_RecordChild1, // #3 = $src2
/*348634*/              OPC_MoveChild1,
/*348635*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348638*/              OPC_MoveParent,
/*348639*/              OPC_MoveParent,
/*348640*/              OPC_MoveChild2,
/*348641*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348644*/              OPC_MoveChild0,
/*348645*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348648*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348650*/              OPC_CheckType, MVT::v8i32,
/*348652*/              OPC_MoveParent,
/*348653*/              OPC_MoveParent,
/*348654*/              OPC_CheckType, MVT::v4f64,
/*348656*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*348658*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*348661*/              OPC_EmitMergeInputChains1_1,
/*348662*/              OPC_EmitConvertToTarget, 3,
/*348664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VREDUCEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*348677*/            0, // EndSwitchType
/*348678*/          /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::VRNDSCALE),// ->348795
/*348681*/            OPC_MoveChild0,
/*348682*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*348685*/            OPC_MoveChild0,
/*348686*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*348689*/            OPC_RecordMemRef,
/*348690*/            OPC_RecordNode, // #1 = 'ld' chained node
/*348691*/            OPC_CheckFoldableChainNode,
/*348692*/            OPC_RecordChild1, // #2 = $src1
/*348693*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*348695*/            OPC_CheckPredicate, 9, // Predicate_load
/*348697*/            OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->348746
/*348700*/              OPC_MoveParent,
/*348701*/              OPC_MoveParent,
/*348702*/              OPC_RecordChild1, // #3 = $src2
/*348703*/              OPC_MoveChild1,
/*348704*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348707*/              OPC_MoveParent,
/*348708*/              OPC_MoveParent,
/*348709*/              OPC_MoveChild2,
/*348710*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348713*/              OPC_MoveChild0,
/*348714*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348717*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348719*/              OPC_CheckType, MVT::v4i32,
/*348721*/              OPC_MoveParent,
/*348722*/              OPC_MoveParent,
/*348723*/              OPC_CheckType, MVT::v4f32,
/*348725*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*348727*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*348730*/              OPC_EmitMergeInputChains1_1,
/*348731*/              OPC_EmitConvertToTarget, 3,
/*348733*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VRNDSCALEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*348746*/            /*SwitchType*/ 46, MVT::f64,// ->348794
/*348748*/              OPC_MoveParent,
/*348749*/              OPC_MoveParent,
/*348750*/              OPC_RecordChild1, // #3 = $src2
/*348751*/              OPC_MoveChild1,
/*348752*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348755*/              OPC_MoveParent,
/*348756*/              OPC_MoveParent,
/*348757*/              OPC_MoveChild2,
/*348758*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348761*/              OPC_MoveChild0,
/*348762*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348765*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348767*/              OPC_CheckType, MVT::v8i32,
/*348769*/              OPC_MoveParent,
/*348770*/              OPC_MoveParent,
/*348771*/              OPC_CheckType, MVT::v4f64,
/*348773*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*348775*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*348778*/              OPC_EmitMergeInputChains1_1,
/*348779*/              OPC_EmitConvertToTarget, 3,
/*348781*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VRNDSCALEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*348794*/            0, // EndSwitchType
/*348795*/          /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::VGETMANT),// ->348912
/*348798*/            OPC_MoveChild0,
/*348799*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*348802*/            OPC_MoveChild0,
/*348803*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*348806*/            OPC_RecordMemRef,
/*348807*/            OPC_RecordNode, // #1 = 'ld' chained node
/*348808*/            OPC_CheckFoldableChainNode,
/*348809*/            OPC_RecordChild1, // #2 = $src1
/*348810*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*348812*/            OPC_CheckPredicate, 9, // Predicate_load
/*348814*/            OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->348863
/*348817*/              OPC_MoveParent,
/*348818*/              OPC_MoveParent,
/*348819*/              OPC_RecordChild1, // #3 = $src2
/*348820*/              OPC_MoveChild1,
/*348821*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348824*/              OPC_MoveParent,
/*348825*/              OPC_MoveParent,
/*348826*/              OPC_MoveChild2,
/*348827*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348830*/              OPC_MoveChild0,
/*348831*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348834*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348836*/              OPC_CheckType, MVT::v4i32,
/*348838*/              OPC_MoveParent,
/*348839*/              OPC_MoveParent,
/*348840*/              OPC_CheckType, MVT::v4f32,
/*348842*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*348844*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*348847*/              OPC_EmitMergeInputChains1_1,
/*348848*/              OPC_EmitConvertToTarget, 3,
/*348850*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGETMANTPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*348863*/            /*SwitchType*/ 46, MVT::f64,// ->348911
/*348865*/              OPC_MoveParent,
/*348866*/              OPC_MoveParent,
/*348867*/              OPC_RecordChild1, // #3 = $src2
/*348868*/              OPC_MoveChild1,
/*348869*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348872*/              OPC_MoveParent,
/*348873*/              OPC_MoveParent,
/*348874*/              OPC_MoveChild2,
/*348875*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348878*/              OPC_MoveChild0,
/*348879*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348882*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348884*/              OPC_CheckType, MVT::v8i32,
/*348886*/              OPC_MoveParent,
/*348887*/              OPC_MoveParent,
/*348888*/              OPC_CheckType, MVT::v4f64,
/*348890*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*348892*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*348895*/              OPC_EmitMergeInputChains1_1,
/*348896*/              OPC_EmitConvertToTarget, 3,
/*348898*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGETMANTPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*348911*/            0, // EndSwitchType
/*348912*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::VRANGE),// ->349032
/*348915*/            OPC_RecordChild0, // #1 = $src1
/*348916*/            OPC_MoveChild1,
/*348917*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*348920*/            OPC_MoveChild0,
/*348921*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*348924*/            OPC_RecordMemRef,
/*348925*/            OPC_RecordNode, // #2 = 'ld' chained node
/*348926*/            OPC_CheckFoldableChainNode,
/*348927*/            OPC_RecordChild1, // #3 = $src2
/*348928*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*348930*/            OPC_CheckPredicate, 9, // Predicate_load
/*348932*/            OPC_SwitchType /*2 cases */, 47, MVT::f64,// ->348982
/*348935*/              OPC_MoveParent,
/*348936*/              OPC_MoveParent,
/*348937*/              OPC_RecordChild2, // #4 = $src3
/*348938*/              OPC_MoveChild2,
/*348939*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348942*/              OPC_MoveParent,
/*348943*/              OPC_MoveParent,
/*348944*/              OPC_MoveChild2,
/*348945*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348948*/              OPC_MoveChild0,
/*348949*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*348952*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*348954*/              OPC_CheckType, MVT::v8i32,
/*348956*/              OPC_MoveParent,
/*348957*/              OPC_MoveParent,
/*348958*/              OPC_CheckType, MVT::v4f64,
/*348960*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*348962*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*348965*/              OPC_EmitMergeInputChains1_2,
/*348966*/              OPC_EmitConvertToTarget, 4,
/*348968*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VRANGEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*348982*/            /*SwitchType*/ 47, MVT::f32,// ->349031
/*348984*/              OPC_MoveParent,
/*348985*/              OPC_MoveParent,
/*348986*/              OPC_RecordChild2, // #4 = $src3
/*348987*/              OPC_MoveChild2,
/*348988*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348991*/              OPC_MoveParent,
/*348992*/              OPC_MoveParent,
/*348993*/              OPC_MoveChild2,
/*348994*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*348997*/              OPC_MoveChild0,
/*348998*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349001*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349003*/              OPC_CheckType, MVT::v4i32,
/*349005*/              OPC_MoveParent,
/*349006*/              OPC_MoveParent,
/*349007*/              OPC_CheckType, MVT::v4f32,
/*349009*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*349011*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*349014*/              OPC_EmitMergeInputChains1_2,
/*349015*/              OPC_EmitConvertToTarget, 4,
/*349017*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VRANGEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*349031*/            0, // EndSwitchType
/*349032*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::SHUF128),// ->349101
/*349035*/            OPC_RecordChild0, // #1 = $src1
/*349036*/            OPC_MoveChild1,
/*349037*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*349040*/            OPC_MoveChild0,
/*349041*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*349044*/            OPC_RecordMemRef,
/*349045*/            OPC_RecordNode, // #2 = 'ld' chained node
/*349046*/            OPC_CheckFoldableChainNode,
/*349047*/            OPC_RecordChild1, // #3 = $src2
/*349048*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*349050*/            OPC_CheckPredicate, 9, // Predicate_load
/*349052*/            OPC_CheckType, MVT::f64,
/*349054*/            OPC_MoveParent,
/*349055*/            OPC_MoveParent,
/*349056*/            OPC_RecordChild2, // #4 = $src3
/*349057*/            OPC_MoveChild2,
/*349058*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*349061*/            OPC_MoveParent,
/*349062*/            OPC_MoveParent,
/*349063*/            OPC_MoveChild2,
/*349064*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349067*/            OPC_MoveChild0,
/*349068*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349071*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349073*/            OPC_CheckType, MVT::v8i32,
/*349075*/            OPC_MoveParent,
/*349076*/            OPC_MoveParent,
/*349077*/            OPC_CheckType, MVT::v4f64,
/*349079*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*349081*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*349084*/            OPC_EmitMergeInputChains1_2,
/*349085*/            OPC_EmitConvertToTarget, 4,
/*349087*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VSHUFF64X2Z256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*349101*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::SHUFP),// ->349221
/*349104*/            OPC_RecordChild0, // #1 = $src1
/*349105*/            OPC_MoveChild1,
/*349106*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*349109*/            OPC_MoveChild0,
/*349110*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*349113*/            OPC_RecordMemRef,
/*349114*/            OPC_RecordNode, // #2 = 'ld' chained node
/*349115*/            OPC_CheckFoldableChainNode,
/*349116*/            OPC_RecordChild1, // #3 = $src2
/*349117*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*349119*/            OPC_CheckPredicate, 9, // Predicate_load
/*349121*/            OPC_SwitchType /*2 cases */, 47, MVT::f32,// ->349171
/*349124*/              OPC_MoveParent,
/*349125*/              OPC_MoveParent,
/*349126*/              OPC_RecordChild2, // #4 = $src3
/*349127*/              OPC_MoveChild2,
/*349128*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*349131*/              OPC_MoveParent,
/*349132*/              OPC_MoveParent,
/*349133*/              OPC_MoveChild2,
/*349134*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349137*/              OPC_MoveChild0,
/*349138*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349141*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349143*/              OPC_CheckType, MVT::v4i32,
/*349145*/              OPC_MoveParent,
/*349146*/              OPC_MoveParent,
/*349147*/              OPC_CheckType, MVT::v4f32,
/*349149*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*349151*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*349154*/              OPC_EmitMergeInputChains1_2,
/*349155*/              OPC_EmitConvertToTarget, 4,
/*349157*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VSHUFPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*349171*/            /*SwitchType*/ 47, MVT::f64,// ->349220
/*349173*/              OPC_MoveParent,
/*349174*/              OPC_MoveParent,
/*349175*/              OPC_RecordChild2, // #4 = $src3
/*349176*/              OPC_MoveChild2,
/*349177*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*349180*/              OPC_MoveParent,
/*349181*/              OPC_MoveParent,
/*349182*/              OPC_MoveChild2,
/*349183*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349186*/              OPC_MoveChild0,
/*349187*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349190*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349192*/              OPC_CheckType, MVT::v8i32,
/*349194*/              OPC_MoveParent,
/*349195*/              OPC_MoveParent,
/*349196*/              OPC_CheckType, MVT::v4f64,
/*349198*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*349200*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*349203*/              OPC_EmitMergeInputChains1_2,
/*349204*/              OPC_EmitConvertToTarget, 4,
/*349206*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VSHUFPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*349220*/            0, // EndSwitchType
/*349221*/          0, // EndSwitchOpcode
/*349222*/        /*Scope*/ 70, /*->349293*/
/*349223*/          OPC_RecordChild1, // #1 = $src3
/*349224*/          OPC_MoveChild1,
/*349225*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*349228*/          OPC_RecordChild0, // #2 = $src1
/*349229*/          OPC_MoveChild1,
/*349230*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*349233*/          OPC_RecordMemRef,
/*349234*/          OPC_RecordNode, // #3 = 'ld' chained node
/*349235*/          OPC_CheckFoldableChainNode,
/*349236*/          OPC_RecordChild1, // #4 = $src2
/*349237*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*349239*/          OPC_CheckPredicate, 9, // Predicate_load
/*349241*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*349243*/          OPC_MoveParent,
/*349244*/          OPC_MoveChild2,
/*349245*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*349248*/          OPC_CheckType, MVT::iPTR,
/*349250*/          OPC_MoveParent,
/*349251*/          OPC_MoveParent,
/*349252*/          OPC_MoveChild2,
/*349253*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349256*/          OPC_MoveChild0,
/*349257*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349260*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349262*/          OPC_CheckType, MVT::v8i32,
/*349264*/          OPC_MoveParent,
/*349265*/          OPC_MoveParent,
/*349266*/          OPC_CheckType, MVT::v4f64,
/*349268*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*349270*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*349273*/          OPC_EmitMergeInputChains, 1, 3, 
/*349276*/          OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*349279*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                    // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                    // Dst: (VINSERTF64x2Z256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*349293*/        /*Scope*/ 3|128,104/*13315*/, /*->362610*/
/*349295*/          OPC_MoveChild1,
/*349296*/          OPC_SwitchOpcode /*54 cases */, 63|128,1/*191*/, TARGET_VAL(X86ISD::VBROADCAST),// ->349492
/*349301*/            OPC_MoveChild0,
/*349302*/            OPC_SwitchOpcode /*2 cases */, 96, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->349402
/*349306*/              OPC_MoveChild0,
/*349307*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*349310*/              OPC_RecordMemRef,
/*349311*/              OPC_RecordNode, // #1 = 'ld' chained node
/*349312*/              OPC_CheckFoldableChainNode,
/*349313*/              OPC_RecordChild1, // #2 = $src
/*349314*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*349316*/              OPC_CheckPredicate, 9, // Predicate_load
/*349318*/              OPC_SwitchType /*2 cases */, 39, MVT::f32,// ->349360
/*349321*/                OPC_MoveParent,
/*349322*/                OPC_CheckType, MVT::v4f32,
/*349324*/                OPC_MoveParent,
/*349325*/                OPC_MoveParent,
/*349326*/                OPC_MoveChild2,
/*349327*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349330*/                OPC_MoveChild0,
/*349331*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349334*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349336*/                OPC_CheckType, MVT::v4i32,
/*349338*/                OPC_MoveParent,
/*349339*/                OPC_MoveParent,
/*349340*/                OPC_CheckType, MVT::v4f32,
/*349342*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349344*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*349347*/                OPC_EmitMergeInputChains1_1,
/*349348*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VBROADCASTSSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*349360*/              /*SwitchType*/ 39, MVT::f64,// ->349401
/*349362*/                OPC_MoveParent,
/*349363*/                OPC_CheckType, MVT::v2f64,
/*349365*/                OPC_MoveParent,
/*349366*/                OPC_MoveParent,
/*349367*/                OPC_MoveChild2,
/*349368*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349371*/                OPC_MoveChild0,
/*349372*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349375*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349377*/                OPC_CheckType, MVT::v8i32,
/*349379*/                OPC_MoveParent,
/*349380*/                OPC_MoveParent,
/*349381*/                OPC_CheckType, MVT::v4f64,
/*349383*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349385*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*349388*/                OPC_EmitMergeInputChains1_1,
/*349389*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VBROADCASTSDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*349401*/              0, // EndSwitchType
/*349402*/            /*SwitchOpcode*/ 86, TARGET_VAL(ISD::LOAD),// ->349491
/*349405*/              OPC_RecordMemRef,
/*349406*/              OPC_RecordNode, // #1 = 'ld' chained node
/*349407*/              OPC_CheckFoldableChainNode,
/*349408*/              OPC_RecordChild1, // #2 = $src
/*349409*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*349411*/              OPC_CheckPredicate, 9, // Predicate_load
/*349413*/              OPC_SwitchType /*2 cases */, 36, MVT::f32,// ->349452
/*349416*/                OPC_MoveParent,
/*349417*/                OPC_MoveParent,
/*349418*/                OPC_MoveChild2,
/*349419*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349422*/                OPC_MoveChild0,
/*349423*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349426*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349428*/                OPC_CheckType, MVT::v4i32,
/*349430*/                OPC_MoveParent,
/*349431*/                OPC_MoveParent,
/*349432*/                OPC_CheckType, MVT::v4f32,
/*349434*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349436*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*349439*/                OPC_EmitMergeInputChains1_1,
/*349440*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VBROADCASTSSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*349452*/              /*SwitchType*/ 36, MVT::f64,// ->349490
/*349454*/                OPC_MoveParent,
/*349455*/                OPC_MoveParent,
/*349456*/                OPC_MoveChild2,
/*349457*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349460*/                OPC_MoveChild0,
/*349461*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349464*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349466*/                OPC_CheckType, MVT::v8i32,
/*349468*/                OPC_MoveParent,
/*349469*/                OPC_MoveParent,
/*349470*/                OPC_CheckType, MVT::v4f64,
/*349472*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349474*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*349477*/                OPC_EmitMergeInputChains1_1,
/*349478*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VBROADCASTSDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*349490*/              0, // EndSwitchType
/*349491*/            0, // EndSwitchOpcode
/*349492*/          /*SwitchOpcode*/ 49|128,11/*1457*/, TARGET_VAL(ISD::BITCAST),// ->350953
/*349496*/            OPC_Scope, 111|128,10/*1391*/, /*->350890*/ // 2 children in Scope
/*349499*/              OPC_MoveChild0,
/*349500*/              OPC_SwitchOpcode /*5 cases */, 53, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->349557
/*349504*/                OPC_MoveChild0,
/*349505*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*349508*/                OPC_RecordMemRef,
/*349509*/                OPC_RecordNode, // #1 = 'ld' chained node
/*349510*/                OPC_CheckFoldableChainNode,
/*349511*/                OPC_RecordChild1, // #2 = $src
/*349512*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*349514*/                OPC_CheckPredicate, 9, // Predicate_load
/*349516*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*349518*/                OPC_MoveParent,
/*349519*/                OPC_CheckType, MVT::v8f32,
/*349521*/                OPC_MoveParent,
/*349522*/                OPC_MoveParent,
/*349523*/                OPC_MoveChild2,
/*349524*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349527*/                OPC_MoveChild0,
/*349528*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349531*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349533*/                OPC_CheckType, MVT::v8i32,
/*349535*/                OPC_MoveParent,
/*349536*/                OPC_MoveParent,
/*349537*/                OPC_CheckType, MVT::v4f64,
/*349539*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*349541*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*349544*/                OPC_EmitMergeInputChains1_1,
/*349545*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X2Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86SubVBroadcast:{ *:[v8f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VBROADCASTF64X2Z128rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*349557*/              /*SwitchOpcode*/ 121|128,2/*377*/, TARGET_VAL(ISD::AND),// ->349938
/*349561*/                OPC_Scope, 94, /*->349657*/ // 4 children in Scope
/*349563*/                  OPC_RecordChild0, // #1 = $src1
/*349564*/                  OPC_MoveChild1,
/*349565*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*349568*/                  OPC_RecordMemRef,
/*349569*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*349570*/                  OPC_CheckFoldableChainNode,
/*349571*/                  OPC_RecordChild1, // #3 = $src2
/*349572*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*349574*/                  OPC_CheckPredicate, 9, // Predicate_load
/*349576*/                  OPC_MoveParent,
/*349577*/                  OPC_SwitchType /*2 cases */, 37, MVT::v2i64,// ->349617
/*349580*/                    OPC_MoveParent,
/*349581*/                    OPC_MoveParent,
/*349582*/                    OPC_MoveChild2,
/*349583*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349586*/                    OPC_MoveChild0,
/*349587*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349590*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349592*/                    OPC_CheckType, MVT::v4i32,
/*349594*/                    OPC_MoveParent,
/*349595*/                    OPC_MoveParent,
/*349596*/                    OPC_CheckType, MVT::v4f32,
/*349598*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349600*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*349603*/                    OPC_EmitMergeInputChains1_2,
/*349604*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*349617*/                  /*SwitchType*/ 37, MVT::v4i64,// ->349656
/*349619*/                    OPC_MoveParent,
/*349620*/                    OPC_MoveParent,
/*349621*/                    OPC_MoveChild2,
/*349622*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349625*/                    OPC_MoveChild0,
/*349626*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349629*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349631*/                    OPC_CheckType, MVT::v8i32,
/*349633*/                    OPC_MoveParent,
/*349634*/                    OPC_MoveParent,
/*349635*/                    OPC_CheckType, MVT::v4f64,
/*349637*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349639*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*349642*/                    OPC_EmitMergeInputChains1_2,
/*349643*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*349656*/                  0, // EndSwitchType
/*349657*/                /*Scope*/ 94, /*->349752*/
/*349658*/                  OPC_MoveChild0,
/*349659*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*349662*/                  OPC_RecordMemRef,
/*349663*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*349664*/                  OPC_CheckFoldableChainNode,
/*349665*/                  OPC_RecordChild1, // #2 = $src2
/*349666*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*349668*/                  OPC_CheckPredicate, 9, // Predicate_load
/*349670*/                  OPC_MoveParent,
/*349671*/                  OPC_RecordChild1, // #3 = $src1
/*349672*/                  OPC_SwitchType /*2 cases */, 37, MVT::v2i64,// ->349712
/*349675*/                    OPC_MoveParent,
/*349676*/                    OPC_MoveParent,
/*349677*/                    OPC_MoveChild2,
/*349678*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349681*/                    OPC_MoveChild0,
/*349682*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349685*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349687*/                    OPC_CheckType, MVT::v4i32,
/*349689*/                    OPC_MoveParent,
/*349690*/                    OPC_MoveParent,
/*349691*/                    OPC_CheckType, MVT::v4f32,
/*349693*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349695*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*349698*/                    OPC_EmitMergeInputChains1_1,
/*349699*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*349712*/                  /*SwitchType*/ 37, MVT::v4i64,// ->349751
/*349714*/                    OPC_MoveParent,
/*349715*/                    OPC_MoveParent,
/*349716*/                    OPC_MoveChild2,
/*349717*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349720*/                    OPC_MoveChild0,
/*349721*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349724*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349726*/                    OPC_CheckType, MVT::v8i32,
/*349728*/                    OPC_MoveParent,
/*349729*/                    OPC_MoveParent,
/*349730*/                    OPC_CheckType, MVT::v4f64,
/*349732*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349734*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*349737*/                    OPC_EmitMergeInputChains1_1,
/*349738*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*349751*/                  0, // EndSwitchType
/*349752*/                /*Scope*/ 91, /*->349844*/
/*349753*/                  OPC_RecordChild0, // #1 = $src1
/*349754*/                  OPC_MoveChild1,
/*349755*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349758*/                  OPC_MoveChild0,
/*349759*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*349762*/                  OPC_MoveChild0,
/*349763*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*349766*/                  OPC_RecordMemRef,
/*349767*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*349768*/                  OPC_CheckFoldableChainNode,
/*349769*/                  OPC_RecordChild1, // #3 = $src2
/*349770*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*349772*/                  OPC_CheckPredicate, 9, // Predicate_load
/*349774*/                  OPC_SwitchType /*2 cases */, 32, MVT::f32,// ->349809
/*349777*/                    OPC_MoveParent,
/*349778*/                    OPC_CheckType, MVT::v4f32,
/*349780*/                    OPC_MoveParent,
/*349781*/                    OPC_MoveParent,
/*349782*/                    OPC_CheckType, MVT::v2i64,
/*349784*/                    OPC_MoveParent,
/*349785*/                    OPC_MoveParent,
/*349786*/                    OPC_RecordChild2, // #4 = $src0
/*349787*/                    OPC_CheckType, MVT::v4f32,
/*349789*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349791*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*349794*/                    OPC_EmitMergeInputChains1_2,
/*349795*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR128X:{ *:[v4f32] }:$src0) - Complexity = 37
                              // Dst: (VPANDDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*349809*/                  /*SwitchType*/ 32, MVT::f64,// ->349843
/*349811*/                    OPC_MoveParent,
/*349812*/                    OPC_CheckType, MVT::v4f64,
/*349814*/                    OPC_MoveParent,
/*349815*/                    OPC_MoveParent,
/*349816*/                    OPC_CheckType, MVT::v4i64,
/*349818*/                    OPC_MoveParent,
/*349819*/                    OPC_MoveParent,
/*349820*/                    OPC_RecordChild2, // #4 = $src0
/*349821*/                    OPC_CheckType, MVT::v4f64,
/*349823*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349825*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*349828*/                    OPC_EmitMergeInputChains1_2,
/*349829*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR256X:{ *:[v4f64] }:$src0) - Complexity = 37
                              // Dst: (VPANDQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*349843*/                  0, // EndSwitchType
/*349844*/                /*Scope*/ 92, /*->349937*/
/*349845*/                  OPC_MoveChild0,
/*349846*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349849*/                  OPC_MoveChild0,
/*349850*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*349853*/                  OPC_MoveChild0,
/*349854*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*349857*/                  OPC_RecordMemRef,
/*349858*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*349859*/                  OPC_CheckFoldableChainNode,
/*349860*/                  OPC_RecordChild1, // #2 = $src2
/*349861*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*349863*/                  OPC_CheckPredicate, 9, // Predicate_load
/*349865*/                  OPC_SwitchType /*2 cases */, 33, MVT::f32,// ->349901
/*349868*/                    OPC_MoveParent,
/*349869*/                    OPC_CheckType, MVT::v4f32,
/*349871*/                    OPC_MoveParent,
/*349872*/                    OPC_MoveParent,
/*349873*/                    OPC_RecordChild1, // #3 = $src1
/*349874*/                    OPC_CheckType, MVT::v2i64,
/*349876*/                    OPC_MoveParent,
/*349877*/                    OPC_MoveParent,
/*349878*/                    OPC_RecordChild2, // #4 = $src0
/*349879*/                    OPC_CheckType, MVT::v4f32,
/*349881*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349883*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*349886*/                    OPC_EmitMergeInputChains1_1,
/*349887*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 37
                              // Dst: (VPANDDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*349901*/                  /*SwitchType*/ 33, MVT::f64,// ->349936
/*349903*/                    OPC_MoveParent,
/*349904*/                    OPC_CheckType, MVT::v4f64,
/*349906*/                    OPC_MoveParent,
/*349907*/                    OPC_MoveParent,
/*349908*/                    OPC_RecordChild1, // #3 = $src1
/*349909*/                    OPC_CheckType, MVT::v4i64,
/*349911*/                    OPC_MoveParent,
/*349912*/                    OPC_MoveParent,
/*349913*/                    OPC_RecordChild2, // #4 = $src0
/*349914*/                    OPC_CheckType, MVT::v4f64,
/*349916*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349918*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*349921*/                    OPC_EmitMergeInputChains1_1,
/*349922*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 37
                              // Dst: (VPANDQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*349936*/                  0, // EndSwitchType
/*349937*/                0, /*End of Scope*/
/*349938*/              /*SwitchOpcode*/ 121|128,2/*377*/, TARGET_VAL(ISD::OR),// ->350319
/*349942*/                OPC_Scope, 94, /*->350038*/ // 4 children in Scope
/*349944*/                  OPC_RecordChild0, // #1 = $src1
/*349945*/                  OPC_MoveChild1,
/*349946*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*349949*/                  OPC_RecordMemRef,
/*349950*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*349951*/                  OPC_CheckFoldableChainNode,
/*349952*/                  OPC_RecordChild1, // #3 = $src2
/*349953*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*349955*/                  OPC_CheckPredicate, 9, // Predicate_load
/*349957*/                  OPC_MoveParent,
/*349958*/                  OPC_SwitchType /*2 cases */, 37, MVT::v2i64,// ->349998
/*349961*/                    OPC_MoveParent,
/*349962*/                    OPC_MoveParent,
/*349963*/                    OPC_MoveChild2,
/*349964*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349967*/                    OPC_MoveChild0,
/*349968*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*349971*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*349973*/                    OPC_CheckType, MVT::v4i32,
/*349975*/                    OPC_MoveParent,
/*349976*/                    OPC_MoveParent,
/*349977*/                    OPC_CheckType, MVT::v4f32,
/*349979*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*349981*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*349984*/                    OPC_EmitMergeInputChains1_2,
/*349985*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*349998*/                  /*SwitchType*/ 37, MVT::v4i64,// ->350037
/*350000*/                    OPC_MoveParent,
/*350001*/                    OPC_MoveParent,
/*350002*/                    OPC_MoveChild2,
/*350003*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350006*/                    OPC_MoveChild0,
/*350007*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*350010*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*350012*/                    OPC_CheckType, MVT::v8i32,
/*350014*/                    OPC_MoveParent,
/*350015*/                    OPC_MoveParent,
/*350016*/                    OPC_CheckType, MVT::v4f64,
/*350018*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350020*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*350023*/                    OPC_EmitMergeInputChains1_2,
/*350024*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350037*/                  0, // EndSwitchType
/*350038*/                /*Scope*/ 94, /*->350133*/
/*350039*/                  OPC_MoveChild0,
/*350040*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*350043*/                  OPC_RecordMemRef,
/*350044*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*350045*/                  OPC_CheckFoldableChainNode,
/*350046*/                  OPC_RecordChild1, // #2 = $src2
/*350047*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*350049*/                  OPC_CheckPredicate, 9, // Predicate_load
/*350051*/                  OPC_MoveParent,
/*350052*/                  OPC_RecordChild1, // #3 = $src1
/*350053*/                  OPC_SwitchType /*2 cases */, 37, MVT::v2i64,// ->350093
/*350056*/                    OPC_MoveParent,
/*350057*/                    OPC_MoveParent,
/*350058*/                    OPC_MoveChild2,
/*350059*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350062*/                    OPC_MoveChild0,
/*350063*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*350066*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*350068*/                    OPC_CheckType, MVT::v4i32,
/*350070*/                    OPC_MoveParent,
/*350071*/                    OPC_MoveParent,
/*350072*/                    OPC_CheckType, MVT::v4f32,
/*350074*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350076*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*350079*/                    OPC_EmitMergeInputChains1_1,
/*350080*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350093*/                  /*SwitchType*/ 37, MVT::v4i64,// ->350132
/*350095*/                    OPC_MoveParent,
/*350096*/                    OPC_MoveParent,
/*350097*/                    OPC_MoveChild2,
/*350098*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350101*/                    OPC_MoveChild0,
/*350102*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*350105*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*350107*/                    OPC_CheckType, MVT::v8i32,
/*350109*/                    OPC_MoveParent,
/*350110*/                    OPC_MoveParent,
/*350111*/                    OPC_CheckType, MVT::v4f64,
/*350113*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350115*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*350118*/                    OPC_EmitMergeInputChains1_1,
/*350119*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350132*/                  0, // EndSwitchType
/*350133*/                /*Scope*/ 91, /*->350225*/
/*350134*/                  OPC_RecordChild0, // #1 = $src1
/*350135*/                  OPC_MoveChild1,
/*350136*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350139*/                  OPC_MoveChild0,
/*350140*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*350143*/                  OPC_MoveChild0,
/*350144*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*350147*/                  OPC_RecordMemRef,
/*350148*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*350149*/                  OPC_CheckFoldableChainNode,
/*350150*/                  OPC_RecordChild1, // #3 = $src2
/*350151*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*350153*/                  OPC_CheckPredicate, 9, // Predicate_load
/*350155*/                  OPC_SwitchType /*2 cases */, 32, MVT::f32,// ->350190
/*350158*/                    OPC_MoveParent,
/*350159*/                    OPC_CheckType, MVT::v4f32,
/*350161*/                    OPC_MoveParent,
/*350162*/                    OPC_MoveParent,
/*350163*/                    OPC_CheckType, MVT::v2i64,
/*350165*/                    OPC_MoveParent,
/*350166*/                    OPC_MoveParent,
/*350167*/                    OPC_RecordChild2, // #4 = $src0
/*350168*/                    OPC_CheckType, MVT::v4f32,
/*350170*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350172*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*350175*/                    OPC_EmitMergeInputChains1_2,
/*350176*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR128X:{ *:[v4f32] }:$src0) - Complexity = 37
                              // Dst: (VPORDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350190*/                  /*SwitchType*/ 32, MVT::f64,// ->350224
/*350192*/                    OPC_MoveParent,
/*350193*/                    OPC_CheckType, MVT::v4f64,
/*350195*/                    OPC_MoveParent,
/*350196*/                    OPC_MoveParent,
/*350197*/                    OPC_CheckType, MVT::v4i64,
/*350199*/                    OPC_MoveParent,
/*350200*/                    OPC_MoveParent,
/*350201*/                    OPC_RecordChild2, // #4 = $src0
/*350202*/                    OPC_CheckType, MVT::v4f64,
/*350204*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350206*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*350209*/                    OPC_EmitMergeInputChains1_2,
/*350210*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR256X:{ *:[v4f64] }:$src0) - Complexity = 37
                              // Dst: (VPORQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350224*/                  0, // EndSwitchType
/*350225*/                /*Scope*/ 92, /*->350318*/
/*350226*/                  OPC_MoveChild0,
/*350227*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350230*/                  OPC_MoveChild0,
/*350231*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*350234*/                  OPC_MoveChild0,
/*350235*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*350238*/                  OPC_RecordMemRef,
/*350239*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*350240*/                  OPC_CheckFoldableChainNode,
/*350241*/                  OPC_RecordChild1, // #2 = $src2
/*350242*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*350244*/                  OPC_CheckPredicate, 9, // Predicate_load
/*350246*/                  OPC_SwitchType /*2 cases */, 33, MVT::f32,// ->350282
/*350249*/                    OPC_MoveParent,
/*350250*/                    OPC_CheckType, MVT::v4f32,
/*350252*/                    OPC_MoveParent,
/*350253*/                    OPC_MoveParent,
/*350254*/                    OPC_RecordChild1, // #3 = $src1
/*350255*/                    OPC_CheckType, MVT::v2i64,
/*350257*/                    OPC_MoveParent,
/*350258*/                    OPC_MoveParent,
/*350259*/                    OPC_RecordChild2, // #4 = $src0
/*350260*/                    OPC_CheckType, MVT::v4f32,
/*350262*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350264*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*350267*/                    OPC_EmitMergeInputChains1_1,
/*350268*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 37
                              // Dst: (VPORDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350282*/                  /*SwitchType*/ 33, MVT::f64,// ->350317
/*350284*/                    OPC_MoveParent,
/*350285*/                    OPC_CheckType, MVT::v4f64,
/*350287*/                    OPC_MoveParent,
/*350288*/                    OPC_MoveParent,
/*350289*/                    OPC_RecordChild1, // #3 = $src1
/*350290*/                    OPC_CheckType, MVT::v4i64,
/*350292*/                    OPC_MoveParent,
/*350293*/                    OPC_MoveParent,
/*350294*/                    OPC_RecordChild2, // #4 = $src0
/*350295*/                    OPC_CheckType, MVT::v4f64,
/*350297*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350299*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*350302*/                    OPC_EmitMergeInputChains1_1,
/*350303*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 37
                              // Dst: (VPORQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350317*/                  0, // EndSwitchType
/*350318*/                0, /*End of Scope*/
/*350319*/              /*SwitchOpcode*/ 121|128,2/*377*/, TARGET_VAL(ISD::XOR),// ->350700
/*350323*/                OPC_Scope, 94, /*->350419*/ // 4 children in Scope
/*350325*/                  OPC_RecordChild0, // #1 = $src1
/*350326*/                  OPC_MoveChild1,
/*350327*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*350330*/                  OPC_RecordMemRef,
/*350331*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*350332*/                  OPC_CheckFoldableChainNode,
/*350333*/                  OPC_RecordChild1, // #3 = $src2
/*350334*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*350336*/                  OPC_CheckPredicate, 9, // Predicate_load
/*350338*/                  OPC_MoveParent,
/*350339*/                  OPC_SwitchType /*2 cases */, 37, MVT::v2i64,// ->350379
/*350342*/                    OPC_MoveParent,
/*350343*/                    OPC_MoveParent,
/*350344*/                    OPC_MoveChild2,
/*350345*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350348*/                    OPC_MoveChild0,
/*350349*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*350352*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*350354*/                    OPC_CheckType, MVT::v4i32,
/*350356*/                    OPC_MoveParent,
/*350357*/                    OPC_MoveParent,
/*350358*/                    OPC_CheckType, MVT::v4f32,
/*350360*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350362*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*350365*/                    OPC_EmitMergeInputChains1_2,
/*350366*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPXORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350379*/                  /*SwitchType*/ 37, MVT::v4i64,// ->350418
/*350381*/                    OPC_MoveParent,
/*350382*/                    OPC_MoveParent,
/*350383*/                    OPC_MoveChild2,
/*350384*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350387*/                    OPC_MoveChild0,
/*350388*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*350391*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*350393*/                    OPC_CheckType, MVT::v8i32,
/*350395*/                    OPC_MoveParent,
/*350396*/                    OPC_MoveParent,
/*350397*/                    OPC_CheckType, MVT::v4f64,
/*350399*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350401*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*350404*/                    OPC_EmitMergeInputChains1_2,
/*350405*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPXORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350418*/                  0, // EndSwitchType
/*350419*/                /*Scope*/ 94, /*->350514*/
/*350420*/                  OPC_MoveChild0,
/*350421*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*350424*/                  OPC_RecordMemRef,
/*350425*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*350426*/                  OPC_CheckFoldableChainNode,
/*350427*/                  OPC_RecordChild1, // #2 = $src2
/*350428*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*350430*/                  OPC_CheckPredicate, 9, // Predicate_load
/*350432*/                  OPC_MoveParent,
/*350433*/                  OPC_RecordChild1, // #3 = $src1
/*350434*/                  OPC_SwitchType /*2 cases */, 37, MVT::v2i64,// ->350474
/*350437*/                    OPC_MoveParent,
/*350438*/                    OPC_MoveParent,
/*350439*/                    OPC_MoveChild2,
/*350440*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350443*/                    OPC_MoveChild0,
/*350444*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*350447*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*350449*/                    OPC_CheckType, MVT::v4i32,
/*350451*/                    OPC_MoveParent,
/*350452*/                    OPC_MoveParent,
/*350453*/                    OPC_CheckType, MVT::v4f32,
/*350455*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350457*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*350460*/                    OPC_EmitMergeInputChains1_1,
/*350461*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPXORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350474*/                  /*SwitchType*/ 37, MVT::v4i64,// ->350513
/*350476*/                    OPC_MoveParent,
/*350477*/                    OPC_MoveParent,
/*350478*/                    OPC_MoveChild2,
/*350479*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350482*/                    OPC_MoveChild0,
/*350483*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*350486*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*350488*/                    OPC_CheckType, MVT::v8i32,
/*350490*/                    OPC_MoveParent,
/*350491*/                    OPC_MoveParent,
/*350492*/                    OPC_CheckType, MVT::v4f64,
/*350494*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350496*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*350499*/                    OPC_EmitMergeInputChains1_1,
/*350500*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPXORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350513*/                  0, // EndSwitchType
/*350514*/                /*Scope*/ 91, /*->350606*/
/*350515*/                  OPC_RecordChild0, // #1 = $src1
/*350516*/                  OPC_MoveChild1,
/*350517*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350520*/                  OPC_MoveChild0,
/*350521*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*350524*/                  OPC_MoveChild0,
/*350525*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*350528*/                  OPC_RecordMemRef,
/*350529*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*350530*/                  OPC_CheckFoldableChainNode,
/*350531*/                  OPC_RecordChild1, // #3 = $src2
/*350532*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*350534*/                  OPC_CheckPredicate, 9, // Predicate_load
/*350536*/                  OPC_SwitchType /*2 cases */, 32, MVT::f32,// ->350571
/*350539*/                    OPC_MoveParent,
/*350540*/                    OPC_CheckType, MVT::v4f32,
/*350542*/                    OPC_MoveParent,
/*350543*/                    OPC_MoveParent,
/*350544*/                    OPC_CheckType, MVT::v2i64,
/*350546*/                    OPC_MoveParent,
/*350547*/                    OPC_MoveParent,
/*350548*/                    OPC_RecordChild2, // #4 = $src0
/*350549*/                    OPC_CheckType, MVT::v4f32,
/*350551*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350553*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*350556*/                    OPC_EmitMergeInputChains1_2,
/*350557*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR128X:{ *:[v4f32] }:$src0) - Complexity = 37
                              // Dst: (VPXORDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350571*/                  /*SwitchType*/ 32, MVT::f64,// ->350605
/*350573*/                    OPC_MoveParent,
/*350574*/                    OPC_CheckType, MVT::v4f64,
/*350576*/                    OPC_MoveParent,
/*350577*/                    OPC_MoveParent,
/*350578*/                    OPC_CheckType, MVT::v4i64,
/*350580*/                    OPC_MoveParent,
/*350581*/                    OPC_MoveParent,
/*350582*/                    OPC_RecordChild2, // #4 = $src0
/*350583*/                    OPC_CheckType, MVT::v4f64,
/*350585*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350587*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*350590*/                    OPC_EmitMergeInputChains1_2,
/*350591*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR256X:{ *:[v4f64] }:$src0) - Complexity = 37
                              // Dst: (VPXORQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350605*/                  0, // EndSwitchType
/*350606*/                /*Scope*/ 92, /*->350699*/
/*350607*/                  OPC_MoveChild0,
/*350608*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350611*/                  OPC_MoveChild0,
/*350612*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*350615*/                  OPC_MoveChild0,
/*350616*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*350619*/                  OPC_RecordMemRef,
/*350620*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*350621*/                  OPC_CheckFoldableChainNode,
/*350622*/                  OPC_RecordChild1, // #2 = $src2
/*350623*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*350625*/                  OPC_CheckPredicate, 9, // Predicate_load
/*350627*/                  OPC_SwitchType /*2 cases */, 33, MVT::f32,// ->350663
/*350630*/                    OPC_MoveParent,
/*350631*/                    OPC_CheckType, MVT::v4f32,
/*350633*/                    OPC_MoveParent,
/*350634*/                    OPC_MoveParent,
/*350635*/                    OPC_RecordChild1, // #3 = $src1
/*350636*/                    OPC_CheckType, MVT::v2i64,
/*350638*/                    OPC_MoveParent,
/*350639*/                    OPC_MoveParent,
/*350640*/                    OPC_RecordChild2, // #4 = $src0
/*350641*/                    OPC_CheckType, MVT::v4f32,
/*350643*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350645*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*350648*/                    OPC_EmitMergeInputChains1_1,
/*350649*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 37
                              // Dst: (VPXORDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350663*/                  /*SwitchType*/ 33, MVT::f64,// ->350698
/*350665*/                    OPC_MoveParent,
/*350666*/                    OPC_CheckType, MVT::v4f64,
/*350668*/                    OPC_MoveParent,
/*350669*/                    OPC_MoveParent,
/*350670*/                    OPC_RecordChild1, // #3 = $src1
/*350671*/                    OPC_CheckType, MVT::v4i64,
/*350673*/                    OPC_MoveParent,
/*350674*/                    OPC_MoveParent,
/*350675*/                    OPC_RecordChild2, // #4 = $src0
/*350676*/                    OPC_CheckType, MVT::v4f64,
/*350678*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350680*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*350683*/                    OPC_EmitMergeInputChains1_1,
/*350684*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 37
                              // Dst: (VPXORQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350698*/                  0, // EndSwitchType
/*350699*/                0, /*End of Scope*/
/*350700*/              /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(X86ISD::ANDNP),// ->350889
/*350704*/                OPC_RecordChild0, // #1 = $src1
/*350705*/                OPC_MoveChild1,
/*350706*/                OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::LOAD),// ->350799
/*350710*/                  OPC_RecordMemRef,
/*350711*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*350712*/                  OPC_CheckFoldableChainNode,
/*350713*/                  OPC_RecordChild1, // #3 = $src2
/*350714*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*350716*/                  OPC_CheckPredicate, 9, // Predicate_load
/*350718*/                  OPC_MoveParent,
/*350719*/                  OPC_SwitchType /*2 cases */, 37, MVT::v2i64,// ->350759
/*350722*/                    OPC_MoveParent,
/*350723*/                    OPC_MoveParent,
/*350724*/                    OPC_MoveChild2,
/*350725*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350728*/                    OPC_MoveChild0,
/*350729*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*350732*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*350734*/                    OPC_CheckType, MVT::v4i32,
/*350736*/                    OPC_MoveParent,
/*350737*/                    OPC_MoveParent,
/*350738*/                    OPC_CheckType, MVT::v4f32,
/*350740*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350742*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*350745*/                    OPC_EmitMergeInputChains1_2,
/*350746*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDNDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350759*/                  /*SwitchType*/ 37, MVT::v4i64,// ->350798
/*350761*/                    OPC_MoveParent,
/*350762*/                    OPC_MoveParent,
/*350763*/                    OPC_MoveChild2,
/*350764*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350767*/                    OPC_MoveChild0,
/*350768*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*350771*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*350773*/                    OPC_CheckType, MVT::v8i32,
/*350775*/                    OPC_MoveParent,
/*350776*/                    OPC_MoveParent,
/*350777*/                    OPC_CheckType, MVT::v4f64,
/*350779*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350781*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*350784*/                    OPC_EmitMergeInputChains1_2,
/*350785*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDNQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350798*/                  0, // EndSwitchType
/*350799*/                /*SwitchOpcode*/ 86, TARGET_VAL(ISD::BITCAST),// ->350888
/*350802*/                  OPC_MoveChild0,
/*350803*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*350806*/                  OPC_MoveChild0,
/*350807*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*350810*/                  OPC_RecordMemRef,
/*350811*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*350812*/                  OPC_CheckFoldableChainNode,
/*350813*/                  OPC_RecordChild1, // #3 = $src2
/*350814*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*350816*/                  OPC_CheckPredicate, 9, // Predicate_load
/*350818*/                  OPC_SwitchType /*2 cases */, 32, MVT::f32,// ->350853
/*350821*/                    OPC_MoveParent,
/*350822*/                    OPC_CheckType, MVT::v4f32,
/*350824*/                    OPC_MoveParent,
/*350825*/                    OPC_MoveParent,
/*350826*/                    OPC_CheckType, MVT::v2i64,
/*350828*/                    OPC_MoveParent,
/*350829*/                    OPC_MoveParent,
/*350830*/                    OPC_RecordChild2, // #4 = $src0
/*350831*/                    OPC_CheckType, MVT::v4f32,
/*350833*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350835*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*350838*/                    OPC_EmitMergeInputChains1_2,
/*350839*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR128X:{ *:[v4f32] }:$src0) - Complexity = 37
                              // Dst: (VPANDNDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350853*/                  /*SwitchType*/ 32, MVT::f64,// ->350887
/*350855*/                    OPC_MoveParent,
/*350856*/                    OPC_CheckType, MVT::v4f64,
/*350858*/                    OPC_MoveParent,
/*350859*/                    OPC_MoveParent,
/*350860*/                    OPC_CheckType, MVT::v4i64,
/*350862*/                    OPC_MoveParent,
/*350863*/                    OPC_MoveParent,
/*350864*/                    OPC_RecordChild2, // #4 = $src0
/*350865*/                    OPC_CheckType, MVT::v4f64,
/*350867*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*350869*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*350872*/                    OPC_EmitMergeInputChains1_2,
/*350873*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR256X:{ *:[v4f64] }:$src0) - Complexity = 37
                              // Dst: (VPANDNQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*350887*/                  0, // EndSwitchType
/*350888*/                0, // EndSwitchOpcode
/*350889*/              0, // EndSwitchOpcode
/*350890*/            /*Scope*/ 61, /*->350952*/
/*350891*/              OPC_RecordChild0, // #1 = $ins
/*350892*/              OPC_MoveChild0,
/*350893*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*350896*/              OPC_RecordChild0, // #2 = $src1
/*350897*/              OPC_MoveChild1,
/*350898*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*350901*/              OPC_RecordMemRef,
/*350902*/              OPC_RecordNode, // #3 = 'ld' chained node
/*350903*/              OPC_CheckFoldableChainNode,
/*350904*/              OPC_RecordChild1, // #4 = $src2
/*350905*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*350907*/              OPC_CheckPredicate, 9, // Predicate_load
/*350909*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*350911*/              OPC_MoveParent,
/*350912*/              OPC_MoveChild2,
/*350913*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*350916*/              OPC_CheckType, MVT::iPTR,
/*350918*/              OPC_MoveParent,
/*350919*/              OPC_CheckType, MVT::v8f32,
/*350921*/              OPC_MoveParent,
/*350922*/              OPC_MoveParent,
/*350923*/              OPC_RecordChild2, // #5 = $src0
/*350924*/              OPC_CheckType, MVT::v4f64,
/*350926*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*350928*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*350931*/              OPC_EmitMergeInputChains, 1, 3, 
/*350934*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*350937*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v4f64] }:$src0) - Complexity = 34
                        // Dst: (VINSERTF64x2Z256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ins))
/*350952*/            0, /*End of Scope*/
/*350953*/          /*SwitchOpcode*/ 16|128,3/*400*/, TARGET_VAL(X86ISD::VPERMV3),// ->351357
/*350957*/            OPC_RecordChild0, // #1 = $src1
/*350958*/            OPC_Scope, 105, /*->351065*/ // 4 children in Scope
/*350960*/              OPC_RecordChild1, // #2 = $src2
/*350961*/              OPC_MoveChild2,
/*350962*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*350965*/              OPC_MoveChild0,
/*350966*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*350969*/              OPC_RecordMemRef,
/*350970*/              OPC_RecordNode, // #3 = 'ld' chained node
/*350971*/              OPC_CheckFoldableChainNode,
/*350972*/              OPC_RecordChild1, // #4 = $src3
/*350973*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*350975*/              OPC_CheckPredicate, 9, // Predicate_load
/*350977*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->351021
/*350980*/                OPC_MoveParent,
/*350981*/                OPC_MoveParent,
/*350982*/                OPC_MoveParent,
/*350983*/                OPC_MoveChild2,
/*350984*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*350987*/                OPC_MoveChild0,
/*350988*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*350991*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*350993*/                OPC_CheckType, MVT::v4i32,
/*350995*/                OPC_MoveParent,
/*350996*/                OPC_MoveParent,
/*350997*/                OPC_CheckType, MVT::v4f32,
/*350999*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351001*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*351004*/                OPC_EmitMergeInputChains, 1, 3, 
/*351007*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMT2PS128rmbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*351021*/              /*SwitchType*/ 41, MVT::f64,// ->351064
/*351023*/                OPC_MoveParent,
/*351024*/                OPC_MoveParent,
/*351025*/                OPC_MoveParent,
/*351026*/                OPC_MoveChild2,
/*351027*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351030*/                OPC_MoveChild0,
/*351031*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351034*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351036*/                OPC_CheckType, MVT::v8i32,
/*351038*/                OPC_MoveParent,
/*351039*/                OPC_MoveParent,
/*351040*/                OPC_CheckType, MVT::v4f64,
/*351042*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351044*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*351047*/                OPC_EmitMergeInputChains, 1, 3, 
/*351050*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMT2PD256rmbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*351064*/              0, // EndSwitchType
/*351065*/            /*Scope*/ 58, /*->351124*/
/*351066*/              OPC_MoveChild1,
/*351067*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351070*/              OPC_RecordChild0, // #2 = $src1
/*351071*/              OPC_CheckChild0Type, MVT::v2i64,
/*351073*/              OPC_MoveParent,
/*351074*/              OPC_MoveChild2,
/*351075*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*351078*/              OPC_MoveChild0,
/*351079*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*351082*/              OPC_RecordMemRef,
/*351083*/              OPC_RecordNode, // #3 = 'ld' chained node
/*351084*/              OPC_CheckFoldableChainNode,
/*351085*/              OPC_RecordChild1, // #4 = $src3
/*351086*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*351088*/              OPC_CheckPredicate, 9, // Predicate_load
/*351090*/              OPC_CheckType, MVT::f32,
/*351092*/              OPC_MoveParent,
/*351093*/              OPC_MoveParent,
/*351094*/              OPC_MoveParent,
/*351095*/              OPC_MoveChild2,
/*351096*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351099*/              OPC_CheckChild0Same, 2,
/*351101*/              OPC_MoveParent,
/*351102*/              OPC_CheckType, MVT::v4f32,
/*351104*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*351107*/              OPC_EmitMergeInputChains, 1, 3, 
/*351110*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (bitconvert:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1), (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src1)) - Complexity = 37
                        // Dst: (VPERMI2PS128rmbk:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*351124*/            /*Scope*/ 48|128,1/*176*/, /*->351302*/
/*351126*/              OPC_RecordChild1, // #2 = $src2
/*351127*/              OPC_MoveChild2,
/*351128*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->351212
/*351132*/                OPC_RecordMemRef,
/*351133*/                OPC_RecordNode, // #3 = 'ld' chained node
/*351134*/                OPC_CheckFoldableChainNode,
/*351135*/                OPC_RecordChild1, // #4 = $src3
/*351136*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*351138*/                OPC_CheckPredicate, 9, // Predicate_load
/*351140*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*351142*/                OPC_MoveParent,
/*351143*/                OPC_MoveParent,
/*351144*/                OPC_MoveChild2,
/*351145*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351148*/                OPC_MoveChild0,
/*351149*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351152*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351154*/                OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->351183
/*351157*/                  OPC_MoveParent,
/*351158*/                  OPC_MoveParent,
/*351159*/                  OPC_CheckType, MVT::v4f32,
/*351161*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351163*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*351166*/                  OPC_EmitMergeInputChains, 1, 3, 
/*351169*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VPERMT2PS128rmkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*351183*/                /*SwitchType*/ 26, MVT::v8i32,// ->351211
/*351185*/                  OPC_MoveParent,
/*351186*/                  OPC_MoveParent,
/*351187*/                  OPC_CheckType, MVT::v4f64,
/*351189*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351191*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*351194*/                  OPC_EmitMergeInputChains, 1, 3, 
/*351197*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VPERMT2PD256rmkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*351211*/                0, // EndSwitchType
/*351212*/              /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VBROADCAST),// ->351301
/*351215*/                OPC_MoveChild0,
/*351216*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*351219*/                OPC_RecordMemRef,
/*351220*/                OPC_RecordNode, // #3 = 'ld' chained node
/*351221*/                OPC_CheckFoldableChainNode,
/*351222*/                OPC_RecordChild1, // #4 = $src3
/*351223*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*351225*/                OPC_CheckPredicate, 9, // Predicate_load
/*351227*/                OPC_SwitchType /*2 cases */, 34, MVT::f32,// ->351264
/*351230*/                  OPC_MoveParent,
/*351231*/                  OPC_MoveParent,
/*351232*/                  OPC_MoveParent,
/*351233*/                  OPC_MoveChild2,
/*351234*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351237*/                  OPC_CheckChild0Same, 2,
/*351239*/                  OPC_MoveParent,
/*351240*/                  OPC_CheckType, MVT::v4f32,
/*351242*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351244*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*351247*/                  OPC_EmitMergeInputChains, 1, 3, 
/*351250*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src1)) - Complexity = 34
                            // Dst: (VPERMI2PS128rmbk:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*351264*/                /*SwitchType*/ 34, MVT::f64,// ->351300
/*351266*/                  OPC_MoveParent,
/*351267*/                  OPC_MoveParent,
/*351268*/                  OPC_MoveParent,
/*351269*/                  OPC_MoveChild2,
/*351270*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351273*/                  OPC_CheckChild0Same, 2,
/*351275*/                  OPC_MoveParent,
/*351276*/                  OPC_CheckType, MVT::v4f64,
/*351278*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351280*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*351283*/                  OPC_EmitMergeInputChains, 1, 3, 
/*351286*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PD256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1)) - Complexity = 34
                            // Dst: (VPERMI2PD256rmbk:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*351300*/                0, // EndSwitchType
/*351301*/              0, // EndSwitchOpcode
/*351302*/            /*Scope*/ 53, /*->351356*/
/*351303*/              OPC_MoveChild1,
/*351304*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351307*/              OPC_RecordChild0, // #2 = $src1
/*351308*/              OPC_CheckChild0Type, MVT::v2i64,
/*351310*/              OPC_MoveParent,
/*351311*/              OPC_MoveChild2,
/*351312*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*351315*/              OPC_RecordMemRef,
/*351316*/              OPC_RecordNode, // #3 = 'ld' chained node
/*351317*/              OPC_CheckFoldableChainNode,
/*351318*/              OPC_RecordChild1, // #4 = $src3
/*351319*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*351321*/              OPC_CheckPredicate, 9, // Predicate_load
/*351323*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*351325*/              OPC_MoveParent,
/*351326*/              OPC_MoveParent,
/*351327*/              OPC_MoveChild2,
/*351328*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351331*/              OPC_CheckChild0Same, 2,
/*351333*/              OPC_MoveParent,
/*351334*/              OPC_CheckType, MVT::v4f32,
/*351336*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*351339*/              OPC_EmitMergeInputChains, 1, 3, 
/*351342*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (bitconvert:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1), (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src1)) - Complexity = 34
                        // Dst: (VPERMI2PS128rmk:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*351356*/            0, /*End of Scope*/
/*351357*/          /*SwitchOpcode*/ 107|128,2/*363*/, TARGET_VAL(ISD::FADD),// ->351724
/*351361*/            OPC_Scope, 99, /*->351462*/ // 4 children in Scope
/*351363*/              OPC_RecordChild0, // #1 = $src1
/*351364*/              OPC_MoveChild1,
/*351365*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*351368*/              OPC_MoveChild0,
/*351369*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*351372*/              OPC_RecordMemRef,
/*351373*/              OPC_RecordNode, // #2 = 'ld' chained node
/*351374*/              OPC_CheckFoldableChainNode,
/*351375*/              OPC_RecordChild1, // #3 = $src2
/*351376*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*351378*/              OPC_CheckPredicate, 9, // Predicate_load
/*351380*/              OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->351421
/*351383*/                OPC_MoveParent,
/*351384*/                OPC_MoveParent,
/*351385*/                OPC_MoveParent,
/*351386*/                OPC_MoveChild2,
/*351387*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351390*/                OPC_MoveChild0,
/*351391*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351394*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351396*/                OPC_CheckType, MVT::v4i32,
/*351398*/                OPC_MoveParent,
/*351399*/                OPC_MoveParent,
/*351400*/                OPC_CheckType, MVT::v4f32,
/*351402*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351404*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351407*/                OPC_EmitMergeInputChains1_2,
/*351408*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VADDPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351421*/              /*SwitchType*/ 38, MVT::f64,// ->351461
/*351423*/                OPC_MoveParent,
/*351424*/                OPC_MoveParent,
/*351425*/                OPC_MoveParent,
/*351426*/                OPC_MoveChild2,
/*351427*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351430*/                OPC_MoveChild0,
/*351431*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351434*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351436*/                OPC_CheckType, MVT::v8i32,
/*351438*/                OPC_MoveParent,
/*351439*/                OPC_MoveParent,
/*351440*/                OPC_CheckType, MVT::v4f64,
/*351442*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351444*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351447*/                OPC_EmitMergeInputChains1_2,
/*351448*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VADDPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351461*/              0, // EndSwitchType
/*351462*/            /*Scope*/ 100, /*->351563*/
/*351463*/              OPC_MoveChild0,
/*351464*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*351467*/              OPC_MoveChild0,
/*351468*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*351471*/              OPC_RecordMemRef,
/*351472*/              OPC_RecordNode, // #1 = 'ld' chained node
/*351473*/              OPC_CheckFoldableChainNode,
/*351474*/              OPC_RecordChild1, // #2 = $src2
/*351475*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*351477*/              OPC_CheckPredicate, 9, // Predicate_load
/*351479*/              OPC_SwitchType /*2 cases */, 39, MVT::f32,// ->351521
/*351482*/                OPC_MoveParent,
/*351483*/                OPC_MoveParent,
/*351484*/                OPC_RecordChild1, // #3 = $src1
/*351485*/                OPC_MoveParent,
/*351486*/                OPC_MoveChild2,
/*351487*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351490*/                OPC_MoveChild0,
/*351491*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351494*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351496*/                OPC_CheckType, MVT::v4i32,
/*351498*/                OPC_MoveParent,
/*351499*/                OPC_MoveParent,
/*351500*/                OPC_CheckType, MVT::v4f32,
/*351502*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351504*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351507*/                OPC_EmitMergeInputChains1_1,
/*351508*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VADDPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351521*/              /*SwitchType*/ 39, MVT::f64,// ->351562
/*351523*/                OPC_MoveParent,
/*351524*/                OPC_MoveParent,
/*351525*/                OPC_RecordChild1, // #3 = $src1
/*351526*/                OPC_MoveParent,
/*351527*/                OPC_MoveChild2,
/*351528*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351531*/                OPC_MoveChild0,
/*351532*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351535*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351537*/                OPC_CheckType, MVT::v8i32,
/*351539*/                OPC_MoveParent,
/*351540*/                OPC_MoveParent,
/*351541*/                OPC_CheckType, MVT::v4f64,
/*351543*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351545*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351548*/                OPC_EmitMergeInputChains1_1,
/*351549*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VADDPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351562*/              0, // EndSwitchType
/*351563*/            /*Scope*/ 79, /*->351643*/
/*351564*/              OPC_RecordChild0, // #1 = $src1
/*351565*/              OPC_MoveChild1,
/*351566*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*351569*/              OPC_RecordMemRef,
/*351570*/              OPC_RecordNode, // #2 = 'ld' chained node
/*351571*/              OPC_CheckFoldableChainNode,
/*351572*/              OPC_RecordChild1, // #3 = $src2
/*351573*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*351575*/              OPC_CheckPredicate, 9, // Predicate_load
/*351577*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*351579*/              OPC_MoveParent,
/*351580*/              OPC_MoveParent,
/*351581*/              OPC_MoveChild2,
/*351582*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351585*/              OPC_MoveChild0,
/*351586*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351589*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351591*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->351617
/*351594*/                OPC_MoveParent,
/*351595*/                OPC_MoveParent,
/*351596*/                OPC_CheckType, MVT::v4f32,
/*351598*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351600*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351603*/                OPC_EmitMergeInputChains1_2,
/*351604*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VADDPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351617*/              /*SwitchType*/ 23, MVT::v8i32,// ->351642
/*351619*/                OPC_MoveParent,
/*351620*/                OPC_MoveParent,
/*351621*/                OPC_CheckType, MVT::v4f64,
/*351623*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351625*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351628*/                OPC_EmitMergeInputChains1_2,
/*351629*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VADDPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351642*/              0, // EndSwitchType
/*351643*/            /*Scope*/ 79, /*->351723*/
/*351644*/              OPC_MoveChild0,
/*351645*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*351648*/              OPC_RecordMemRef,
/*351649*/              OPC_RecordNode, // #1 = 'ld' chained node
/*351650*/              OPC_CheckFoldableChainNode,
/*351651*/              OPC_RecordChild1, // #2 = $src2
/*351652*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*351654*/              OPC_CheckPredicate, 9, // Predicate_load
/*351656*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*351658*/              OPC_MoveParent,
/*351659*/              OPC_RecordChild1, // #3 = $src1
/*351660*/              OPC_MoveParent,
/*351661*/              OPC_MoveChild2,
/*351662*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351665*/              OPC_MoveChild0,
/*351666*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351669*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351671*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->351697
/*351674*/                OPC_MoveParent,
/*351675*/                OPC_MoveParent,
/*351676*/                OPC_CheckType, MVT::v4f32,
/*351678*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351680*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351683*/                OPC_EmitMergeInputChains1_1,
/*351684*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VADDPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351697*/              /*SwitchType*/ 23, MVT::v8i32,// ->351722
/*351699*/                OPC_MoveParent,
/*351700*/                OPC_MoveParent,
/*351701*/                OPC_CheckType, MVT::v4f64,
/*351703*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351705*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351708*/                OPC_EmitMergeInputChains1_1,
/*351709*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VADDPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351722*/              0, // EndSwitchType
/*351723*/            0, /*End of Scope*/
/*351724*/          /*SwitchOpcode*/ 107|128,2/*363*/, TARGET_VAL(ISD::FMUL),// ->352091
/*351728*/            OPC_Scope, 99, /*->351829*/ // 4 children in Scope
/*351730*/              OPC_RecordChild0, // #1 = $src1
/*351731*/              OPC_MoveChild1,
/*351732*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*351735*/              OPC_MoveChild0,
/*351736*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*351739*/              OPC_RecordMemRef,
/*351740*/              OPC_RecordNode, // #2 = 'ld' chained node
/*351741*/              OPC_CheckFoldableChainNode,
/*351742*/              OPC_RecordChild1, // #3 = $src2
/*351743*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*351745*/              OPC_CheckPredicate, 9, // Predicate_load
/*351747*/              OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->351788
/*351750*/                OPC_MoveParent,
/*351751*/                OPC_MoveParent,
/*351752*/                OPC_MoveParent,
/*351753*/                OPC_MoveChild2,
/*351754*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351757*/                OPC_MoveChild0,
/*351758*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351761*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351763*/                OPC_CheckType, MVT::v4i32,
/*351765*/                OPC_MoveParent,
/*351766*/                OPC_MoveParent,
/*351767*/                OPC_CheckType, MVT::v4f32,
/*351769*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351771*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351774*/                OPC_EmitMergeInputChains1_2,
/*351775*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMULPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351788*/              /*SwitchType*/ 38, MVT::f64,// ->351828
/*351790*/                OPC_MoveParent,
/*351791*/                OPC_MoveParent,
/*351792*/                OPC_MoveParent,
/*351793*/                OPC_MoveChild2,
/*351794*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351797*/                OPC_MoveChild0,
/*351798*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351801*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351803*/                OPC_CheckType, MVT::v8i32,
/*351805*/                OPC_MoveParent,
/*351806*/                OPC_MoveParent,
/*351807*/                OPC_CheckType, MVT::v4f64,
/*351809*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351811*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351814*/                OPC_EmitMergeInputChains1_2,
/*351815*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMULPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351828*/              0, // EndSwitchType
/*351829*/            /*Scope*/ 100, /*->351930*/
/*351830*/              OPC_MoveChild0,
/*351831*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*351834*/              OPC_MoveChild0,
/*351835*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*351838*/              OPC_RecordMemRef,
/*351839*/              OPC_RecordNode, // #1 = 'ld' chained node
/*351840*/              OPC_CheckFoldableChainNode,
/*351841*/              OPC_RecordChild1, // #2 = $src2
/*351842*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*351844*/              OPC_CheckPredicate, 9, // Predicate_load
/*351846*/              OPC_SwitchType /*2 cases */, 39, MVT::f32,// ->351888
/*351849*/                OPC_MoveParent,
/*351850*/                OPC_MoveParent,
/*351851*/                OPC_RecordChild1, // #3 = $src1
/*351852*/                OPC_MoveParent,
/*351853*/                OPC_MoveChild2,
/*351854*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351857*/                OPC_MoveChild0,
/*351858*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351861*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351863*/                OPC_CheckType, MVT::v4i32,
/*351865*/                OPC_MoveParent,
/*351866*/                OPC_MoveParent,
/*351867*/                OPC_CheckType, MVT::v4f32,
/*351869*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351874*/                OPC_EmitMergeInputChains1_1,
/*351875*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMULPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351888*/              /*SwitchType*/ 39, MVT::f64,// ->351929
/*351890*/                OPC_MoveParent,
/*351891*/                OPC_MoveParent,
/*351892*/                OPC_RecordChild1, // #3 = $src1
/*351893*/                OPC_MoveParent,
/*351894*/                OPC_MoveChild2,
/*351895*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351898*/                OPC_MoveChild0,
/*351899*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351902*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351904*/                OPC_CheckType, MVT::v8i32,
/*351906*/                OPC_MoveParent,
/*351907*/                OPC_MoveParent,
/*351908*/                OPC_CheckType, MVT::v4f64,
/*351910*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351912*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351915*/                OPC_EmitMergeInputChains1_1,
/*351916*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMULPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351929*/              0, // EndSwitchType
/*351930*/            /*Scope*/ 79, /*->352010*/
/*351931*/              OPC_RecordChild0, // #1 = $src1
/*351932*/              OPC_MoveChild1,
/*351933*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*351936*/              OPC_RecordMemRef,
/*351937*/              OPC_RecordNode, // #2 = 'ld' chained node
/*351938*/              OPC_CheckFoldableChainNode,
/*351939*/              OPC_RecordChild1, // #3 = $src2
/*351940*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*351942*/              OPC_CheckPredicate, 9, // Predicate_load
/*351944*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*351946*/              OPC_MoveParent,
/*351947*/              OPC_MoveParent,
/*351948*/              OPC_MoveChild2,
/*351949*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*351952*/              OPC_MoveChild0,
/*351953*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*351956*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*351958*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->351984
/*351961*/                OPC_MoveParent,
/*351962*/                OPC_MoveParent,
/*351963*/                OPC_CheckType, MVT::v4f32,
/*351965*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351967*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351970*/                OPC_EmitMergeInputChains1_2,
/*351971*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMULPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*351984*/              /*SwitchType*/ 23, MVT::v8i32,// ->352009
/*351986*/                OPC_MoveParent,
/*351987*/                OPC_MoveParent,
/*351988*/                OPC_CheckType, MVT::v4f64,
/*351990*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*351992*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*351995*/                OPC_EmitMergeInputChains1_2,
/*351996*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMULPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352009*/              0, // EndSwitchType
/*352010*/            /*Scope*/ 79, /*->352090*/
/*352011*/              OPC_MoveChild0,
/*352012*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*352015*/              OPC_RecordMemRef,
/*352016*/              OPC_RecordNode, // #1 = 'ld' chained node
/*352017*/              OPC_CheckFoldableChainNode,
/*352018*/              OPC_RecordChild1, // #2 = $src2
/*352019*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*352021*/              OPC_CheckPredicate, 9, // Predicate_load
/*352023*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*352025*/              OPC_MoveParent,
/*352026*/              OPC_RecordChild1, // #3 = $src1
/*352027*/              OPC_MoveParent,
/*352028*/              OPC_MoveChild2,
/*352029*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352032*/              OPC_MoveChild0,
/*352033*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352036*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352038*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->352064
/*352041*/                OPC_MoveParent,
/*352042*/                OPC_MoveParent,
/*352043*/                OPC_CheckType, MVT::v4f32,
/*352045*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352047*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352050*/                OPC_EmitMergeInputChains1_1,
/*352051*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMULPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352064*/              /*SwitchType*/ 23, MVT::v8i32,// ->352089
/*352066*/                OPC_MoveParent,
/*352067*/                OPC_MoveParent,
/*352068*/                OPC_CheckType, MVT::v4f64,
/*352070*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352072*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352075*/                OPC_EmitMergeInputChains1_1,
/*352076*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMULPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352089*/              0, // EndSwitchType
/*352090*/            0, /*End of Scope*/
/*352091*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(ISD::FSUB),// ->352273
/*352095*/            OPC_RecordChild0, // #1 = $src1
/*352096*/            OPC_MoveChild1,
/*352097*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->352195
/*352101*/              OPC_MoveChild0,
/*352102*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*352105*/              OPC_RecordMemRef,
/*352106*/              OPC_RecordNode, // #2 = 'ld' chained node
/*352107*/              OPC_CheckFoldableChainNode,
/*352108*/              OPC_RecordChild1, // #3 = $src2
/*352109*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*352111*/              OPC_CheckPredicate, 9, // Predicate_load
/*352113*/              OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->352154
/*352116*/                OPC_MoveParent,
/*352117*/                OPC_MoveParent,
/*352118*/                OPC_MoveParent,
/*352119*/                OPC_MoveChild2,
/*352120*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352123*/                OPC_MoveChild0,
/*352124*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352127*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352129*/                OPC_CheckType, MVT::v4i32,
/*352131*/                OPC_MoveParent,
/*352132*/                OPC_MoveParent,
/*352133*/                OPC_CheckType, MVT::v4f32,
/*352135*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352137*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352140*/                OPC_EmitMergeInputChains1_2,
/*352141*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSUBPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352154*/              /*SwitchType*/ 38, MVT::f64,// ->352194
/*352156*/                OPC_MoveParent,
/*352157*/                OPC_MoveParent,
/*352158*/                OPC_MoveParent,
/*352159*/                OPC_MoveChild2,
/*352160*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352163*/                OPC_MoveChild0,
/*352164*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352167*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352169*/                OPC_CheckType, MVT::v8i32,
/*352171*/                OPC_MoveParent,
/*352172*/                OPC_MoveParent,
/*352173*/                OPC_CheckType, MVT::v4f64,
/*352175*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352177*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352180*/                OPC_EmitMergeInputChains1_2,
/*352181*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSUBPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352194*/              0, // EndSwitchType
/*352195*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->352272
/*352198*/              OPC_RecordMemRef,
/*352199*/              OPC_RecordNode, // #2 = 'ld' chained node
/*352200*/              OPC_CheckFoldableChainNode,
/*352201*/              OPC_RecordChild1, // #3 = $src2
/*352202*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*352204*/              OPC_CheckPredicate, 9, // Predicate_load
/*352206*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*352208*/              OPC_MoveParent,
/*352209*/              OPC_MoveParent,
/*352210*/              OPC_MoveChild2,
/*352211*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352214*/              OPC_MoveChild0,
/*352215*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352218*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352220*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->352246
/*352223*/                OPC_MoveParent,
/*352224*/                OPC_MoveParent,
/*352225*/                OPC_CheckType, MVT::v4f32,
/*352227*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352229*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352232*/                OPC_EmitMergeInputChains1_2,
/*352233*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VSUBPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352246*/              /*SwitchType*/ 23, MVT::v8i32,// ->352271
/*352248*/                OPC_MoveParent,
/*352249*/                OPC_MoveParent,
/*352250*/                OPC_CheckType, MVT::v4f64,
/*352252*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352254*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352257*/                OPC_EmitMergeInputChains1_2,
/*352258*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VSUBPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352271*/              0, // EndSwitchType
/*352272*/            0, // EndSwitchOpcode
/*352273*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(ISD::FDIV),// ->352455
/*352277*/            OPC_RecordChild0, // #1 = $src1
/*352278*/            OPC_MoveChild1,
/*352279*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->352377
/*352283*/              OPC_MoveChild0,
/*352284*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*352287*/              OPC_RecordMemRef,
/*352288*/              OPC_RecordNode, // #2 = 'ld' chained node
/*352289*/              OPC_CheckFoldableChainNode,
/*352290*/              OPC_RecordChild1, // #3 = $src2
/*352291*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*352293*/              OPC_CheckPredicate, 9, // Predicate_load
/*352295*/              OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->352336
/*352298*/                OPC_MoveParent,
/*352299*/                OPC_MoveParent,
/*352300*/                OPC_MoveParent,
/*352301*/                OPC_MoveChild2,
/*352302*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352305*/                OPC_MoveChild0,
/*352306*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352309*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352311*/                OPC_CheckType, MVT::v4i32,
/*352313*/                OPC_MoveParent,
/*352314*/                OPC_MoveParent,
/*352315*/                OPC_CheckType, MVT::v4f32,
/*352317*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352319*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352322*/                OPC_EmitMergeInputChains1_2,
/*352323*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VDIVPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352336*/              /*SwitchType*/ 38, MVT::f64,// ->352376
/*352338*/                OPC_MoveParent,
/*352339*/                OPC_MoveParent,
/*352340*/                OPC_MoveParent,
/*352341*/                OPC_MoveChild2,
/*352342*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352345*/                OPC_MoveChild0,
/*352346*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352349*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352351*/                OPC_CheckType, MVT::v8i32,
/*352353*/                OPC_MoveParent,
/*352354*/                OPC_MoveParent,
/*352355*/                OPC_CheckType, MVT::v4f64,
/*352357*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352359*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352362*/                OPC_EmitMergeInputChains1_2,
/*352363*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VDIVPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352376*/              0, // EndSwitchType
/*352377*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->352454
/*352380*/              OPC_RecordMemRef,
/*352381*/              OPC_RecordNode, // #2 = 'ld' chained node
/*352382*/              OPC_CheckFoldableChainNode,
/*352383*/              OPC_RecordChild1, // #3 = $src2
/*352384*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*352386*/              OPC_CheckPredicate, 9, // Predicate_load
/*352388*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*352390*/              OPC_MoveParent,
/*352391*/              OPC_MoveParent,
/*352392*/              OPC_MoveChild2,
/*352393*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352396*/              OPC_MoveChild0,
/*352397*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352400*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352402*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->352428
/*352405*/                OPC_MoveParent,
/*352406*/                OPC_MoveParent,
/*352407*/                OPC_CheckType, MVT::v4f32,
/*352409*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352411*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352414*/                OPC_EmitMergeInputChains1_2,
/*352415*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VDIVPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352428*/              /*SwitchType*/ 23, MVT::v8i32,// ->352453
/*352430*/                OPC_MoveParent,
/*352431*/                OPC_MoveParent,
/*352432*/                OPC_CheckType, MVT::v4f64,
/*352434*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352436*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352439*/                OPC_EmitMergeInputChains1_2,
/*352440*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VDIVPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352453*/              0, // EndSwitchType
/*352454*/            0, // EndSwitchOpcode
/*352455*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::FMIN),// ->352637
/*352459*/            OPC_RecordChild0, // #1 = $src1
/*352460*/            OPC_MoveChild1,
/*352461*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->352559
/*352465*/              OPC_MoveChild0,
/*352466*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*352469*/              OPC_RecordMemRef,
/*352470*/              OPC_RecordNode, // #2 = 'ld' chained node
/*352471*/              OPC_CheckFoldableChainNode,
/*352472*/              OPC_RecordChild1, // #3 = $src2
/*352473*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*352475*/              OPC_CheckPredicate, 9, // Predicate_load
/*352477*/              OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->352518
/*352480*/                OPC_MoveParent,
/*352481*/                OPC_MoveParent,
/*352482*/                OPC_MoveParent,
/*352483*/                OPC_MoveChild2,
/*352484*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352487*/                OPC_MoveChild0,
/*352488*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352491*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352493*/                OPC_CheckType, MVT::v4i32,
/*352495*/                OPC_MoveParent,
/*352496*/                OPC_MoveParent,
/*352497*/                OPC_CheckType, MVT::v4f32,
/*352499*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352501*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352504*/                OPC_EmitMergeInputChains1_2,
/*352505*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352518*/              /*SwitchType*/ 38, MVT::f64,// ->352558
/*352520*/                OPC_MoveParent,
/*352521*/                OPC_MoveParent,
/*352522*/                OPC_MoveParent,
/*352523*/                OPC_MoveChild2,
/*352524*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352527*/                OPC_MoveChild0,
/*352528*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352531*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352533*/                OPC_CheckType, MVT::v8i32,
/*352535*/                OPC_MoveParent,
/*352536*/                OPC_MoveParent,
/*352537*/                OPC_CheckType, MVT::v4f64,
/*352539*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352541*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352544*/                OPC_EmitMergeInputChains1_2,
/*352545*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352558*/              0, // EndSwitchType
/*352559*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->352636
/*352562*/              OPC_RecordMemRef,
/*352563*/              OPC_RecordNode, // #2 = 'ld' chained node
/*352564*/              OPC_CheckFoldableChainNode,
/*352565*/              OPC_RecordChild1, // #3 = $src2
/*352566*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*352568*/              OPC_CheckPredicate, 9, // Predicate_load
/*352570*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*352572*/              OPC_MoveParent,
/*352573*/              OPC_MoveParent,
/*352574*/              OPC_MoveChild2,
/*352575*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352578*/              OPC_MoveChild0,
/*352579*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352582*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352584*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->352610
/*352587*/                OPC_MoveParent,
/*352588*/                OPC_MoveParent,
/*352589*/                OPC_CheckType, MVT::v4f32,
/*352591*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352593*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352596*/                OPC_EmitMergeInputChains1_2,
/*352597*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352610*/              /*SwitchType*/ 23, MVT::v8i32,// ->352635
/*352612*/                OPC_MoveParent,
/*352613*/                OPC_MoveParent,
/*352614*/                OPC_CheckType, MVT::v4f64,
/*352616*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352618*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352621*/                OPC_EmitMergeInputChains1_2,
/*352622*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352635*/              0, // EndSwitchType
/*352636*/            0, // EndSwitchOpcode
/*352637*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::FMAX),// ->352819
/*352641*/            OPC_RecordChild0, // #1 = $src1
/*352642*/            OPC_MoveChild1,
/*352643*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->352741
/*352647*/              OPC_MoveChild0,
/*352648*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*352651*/              OPC_RecordMemRef,
/*352652*/              OPC_RecordNode, // #2 = 'ld' chained node
/*352653*/              OPC_CheckFoldableChainNode,
/*352654*/              OPC_RecordChild1, // #3 = $src2
/*352655*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*352657*/              OPC_CheckPredicate, 9, // Predicate_load
/*352659*/              OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->352700
/*352662*/                OPC_MoveParent,
/*352663*/                OPC_MoveParent,
/*352664*/                OPC_MoveParent,
/*352665*/                OPC_MoveChild2,
/*352666*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352669*/                OPC_MoveChild0,
/*352670*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352673*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352675*/                OPC_CheckType, MVT::v4i32,
/*352677*/                OPC_MoveParent,
/*352678*/                OPC_MoveParent,
/*352679*/                OPC_CheckType, MVT::v4f32,
/*352681*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352683*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352686*/                OPC_EmitMergeInputChains1_2,
/*352687*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352700*/              /*SwitchType*/ 38, MVT::f64,// ->352740
/*352702*/                OPC_MoveParent,
/*352703*/                OPC_MoveParent,
/*352704*/                OPC_MoveParent,
/*352705*/                OPC_MoveChild2,
/*352706*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352709*/                OPC_MoveChild0,
/*352710*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352713*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352715*/                OPC_CheckType, MVT::v8i32,
/*352717*/                OPC_MoveParent,
/*352718*/                OPC_MoveParent,
/*352719*/                OPC_CheckType, MVT::v4f64,
/*352721*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352723*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352726*/                OPC_EmitMergeInputChains1_2,
/*352727*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352740*/              0, // EndSwitchType
/*352741*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->352818
/*352744*/              OPC_RecordMemRef,
/*352745*/              OPC_RecordNode, // #2 = 'ld' chained node
/*352746*/              OPC_CheckFoldableChainNode,
/*352747*/              OPC_RecordChild1, // #3 = $src2
/*352748*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*352750*/              OPC_CheckPredicate, 9, // Predicate_load
/*352752*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*352754*/              OPC_MoveParent,
/*352755*/              OPC_MoveParent,
/*352756*/              OPC_MoveChild2,
/*352757*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352760*/              OPC_MoveChild0,
/*352761*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352764*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352766*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->352792
/*352769*/                OPC_MoveParent,
/*352770*/                OPC_MoveParent,
/*352771*/                OPC_CheckType, MVT::v4f32,
/*352773*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352775*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352778*/                OPC_EmitMergeInputChains1_2,
/*352779*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352792*/              /*SwitchType*/ 23, MVT::v8i32,// ->352817
/*352794*/                OPC_MoveParent,
/*352795*/                OPC_MoveParent,
/*352796*/                OPC_CheckType, MVT::v4f64,
/*352798*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352800*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352803*/                OPC_EmitMergeInputChains1_2,
/*352804*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352817*/              0, // EndSwitchType
/*352818*/            0, // EndSwitchOpcode
/*352819*/          /*SwitchOpcode*/ 107|128,2/*363*/, TARGET_VAL(X86ISD::FMINC),// ->353186
/*352823*/            OPC_Scope, 99, /*->352924*/ // 4 children in Scope
/*352825*/              OPC_RecordChild0, // #1 = $src1
/*352826*/              OPC_MoveChild1,
/*352827*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*352830*/              OPC_MoveChild0,
/*352831*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*352834*/              OPC_RecordMemRef,
/*352835*/              OPC_RecordNode, // #2 = 'ld' chained node
/*352836*/              OPC_CheckFoldableChainNode,
/*352837*/              OPC_RecordChild1, // #3 = $src2
/*352838*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*352840*/              OPC_CheckPredicate, 9, // Predicate_load
/*352842*/              OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->352883
/*352845*/                OPC_MoveParent,
/*352846*/                OPC_MoveParent,
/*352847*/                OPC_MoveParent,
/*352848*/                OPC_MoveChild2,
/*352849*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352852*/                OPC_MoveChild0,
/*352853*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352856*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352858*/                OPC_CheckType, MVT::v4i32,
/*352860*/                OPC_MoveParent,
/*352861*/                OPC_MoveParent,
/*352862*/                OPC_CheckType, MVT::v4f32,
/*352864*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352866*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352869*/                OPC_EmitMergeInputChains1_2,
/*352870*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINCPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352883*/              /*SwitchType*/ 38, MVT::f64,// ->352923
/*352885*/                OPC_MoveParent,
/*352886*/                OPC_MoveParent,
/*352887*/                OPC_MoveParent,
/*352888*/                OPC_MoveChild2,
/*352889*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352892*/                OPC_MoveChild0,
/*352893*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352896*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352898*/                OPC_CheckType, MVT::v8i32,
/*352900*/                OPC_MoveParent,
/*352901*/                OPC_MoveParent,
/*352902*/                OPC_CheckType, MVT::v4f64,
/*352904*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352906*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352909*/                OPC_EmitMergeInputChains1_2,
/*352910*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINCPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352923*/              0, // EndSwitchType
/*352924*/            /*Scope*/ 100, /*->353025*/
/*352925*/              OPC_MoveChild0,
/*352926*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*352929*/              OPC_MoveChild0,
/*352930*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*352933*/              OPC_RecordMemRef,
/*352934*/              OPC_RecordNode, // #1 = 'ld' chained node
/*352935*/              OPC_CheckFoldableChainNode,
/*352936*/              OPC_RecordChild1, // #2 = $src2
/*352937*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*352939*/              OPC_CheckPredicate, 9, // Predicate_load
/*352941*/              OPC_SwitchType /*2 cases */, 39, MVT::f32,// ->352983
/*352944*/                OPC_MoveParent,
/*352945*/                OPC_MoveParent,
/*352946*/                OPC_RecordChild1, // #3 = $src1
/*352947*/                OPC_MoveParent,
/*352948*/                OPC_MoveChild2,
/*352949*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352952*/                OPC_MoveChild0,
/*352953*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352956*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352958*/                OPC_CheckType, MVT::v4i32,
/*352960*/                OPC_MoveParent,
/*352961*/                OPC_MoveParent,
/*352962*/                OPC_CheckType, MVT::v4f32,
/*352964*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352966*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*352969*/                OPC_EmitMergeInputChains1_1,
/*352970*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINCPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*352983*/              /*SwitchType*/ 39, MVT::f64,// ->353024
/*352985*/                OPC_MoveParent,
/*352986*/                OPC_MoveParent,
/*352987*/                OPC_RecordChild1, // #3 = $src1
/*352988*/                OPC_MoveParent,
/*352989*/                OPC_MoveChild2,
/*352990*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*352993*/                OPC_MoveChild0,
/*352994*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*352997*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*352999*/                OPC_CheckType, MVT::v8i32,
/*353001*/                OPC_MoveParent,
/*353002*/                OPC_MoveParent,
/*353003*/                OPC_CheckType, MVT::v4f64,
/*353005*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353007*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353010*/                OPC_EmitMergeInputChains1_1,
/*353011*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINCPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353024*/              0, // EndSwitchType
/*353025*/            /*Scope*/ 79, /*->353105*/
/*353026*/              OPC_RecordChild0, // #1 = $src1
/*353027*/              OPC_MoveChild1,
/*353028*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*353031*/              OPC_RecordMemRef,
/*353032*/              OPC_RecordNode, // #2 = 'ld' chained node
/*353033*/              OPC_CheckFoldableChainNode,
/*353034*/              OPC_RecordChild1, // #3 = $src2
/*353035*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353037*/              OPC_CheckPredicate, 9, // Predicate_load
/*353039*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*353041*/              OPC_MoveParent,
/*353042*/              OPC_MoveParent,
/*353043*/              OPC_MoveChild2,
/*353044*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353047*/              OPC_MoveChild0,
/*353048*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353051*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353053*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->353079
/*353056*/                OPC_MoveParent,
/*353057*/                OPC_MoveParent,
/*353058*/                OPC_CheckType, MVT::v4f32,
/*353060*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353062*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353065*/                OPC_EmitMergeInputChains1_2,
/*353066*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINCPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353079*/              /*SwitchType*/ 23, MVT::v8i32,// ->353104
/*353081*/                OPC_MoveParent,
/*353082*/                OPC_MoveParent,
/*353083*/                OPC_CheckType, MVT::v4f64,
/*353085*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353087*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353090*/                OPC_EmitMergeInputChains1_2,
/*353091*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINCPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353104*/              0, // EndSwitchType
/*353105*/            /*Scope*/ 79, /*->353185*/
/*353106*/              OPC_MoveChild0,
/*353107*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*353110*/              OPC_RecordMemRef,
/*353111*/              OPC_RecordNode, // #1 = 'ld' chained node
/*353112*/              OPC_CheckFoldableChainNode,
/*353113*/              OPC_RecordChild1, // #2 = $src2
/*353114*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353116*/              OPC_CheckPredicate, 9, // Predicate_load
/*353118*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*353120*/              OPC_MoveParent,
/*353121*/              OPC_RecordChild1, // #3 = $src1
/*353122*/              OPC_MoveParent,
/*353123*/              OPC_MoveChild2,
/*353124*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353127*/              OPC_MoveChild0,
/*353128*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353131*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353133*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->353159
/*353136*/                OPC_MoveParent,
/*353137*/                OPC_MoveParent,
/*353138*/                OPC_CheckType, MVT::v4f32,
/*353140*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353142*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353145*/                OPC_EmitMergeInputChains1_1,
/*353146*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINCPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353159*/              /*SwitchType*/ 23, MVT::v8i32,// ->353184
/*353161*/                OPC_MoveParent,
/*353162*/                OPC_MoveParent,
/*353163*/                OPC_CheckType, MVT::v4f64,
/*353165*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353167*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353170*/                OPC_EmitMergeInputChains1_1,
/*353171*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINCPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353184*/              0, // EndSwitchType
/*353185*/            0, /*End of Scope*/
/*353186*/          /*SwitchOpcode*/ 107|128,2/*363*/, TARGET_VAL(X86ISD::FMAXC),// ->353553
/*353190*/            OPC_Scope, 99, /*->353291*/ // 4 children in Scope
/*353192*/              OPC_RecordChild0, // #1 = $src1
/*353193*/              OPC_MoveChild1,
/*353194*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*353197*/              OPC_MoveChild0,
/*353198*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*353201*/              OPC_RecordMemRef,
/*353202*/              OPC_RecordNode, // #2 = 'ld' chained node
/*353203*/              OPC_CheckFoldableChainNode,
/*353204*/              OPC_RecordChild1, // #3 = $src2
/*353205*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353207*/              OPC_CheckPredicate, 9, // Predicate_load
/*353209*/              OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->353250
/*353212*/                OPC_MoveParent,
/*353213*/                OPC_MoveParent,
/*353214*/                OPC_MoveParent,
/*353215*/                OPC_MoveChild2,
/*353216*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353219*/                OPC_MoveChild0,
/*353220*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353223*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353225*/                OPC_CheckType, MVT::v4i32,
/*353227*/                OPC_MoveParent,
/*353228*/                OPC_MoveParent,
/*353229*/                OPC_CheckType, MVT::v4f32,
/*353231*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353233*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353236*/                OPC_EmitMergeInputChains1_2,
/*353237*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXCPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353250*/              /*SwitchType*/ 38, MVT::f64,// ->353290
/*353252*/                OPC_MoveParent,
/*353253*/                OPC_MoveParent,
/*353254*/                OPC_MoveParent,
/*353255*/                OPC_MoveChild2,
/*353256*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353259*/                OPC_MoveChild0,
/*353260*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353263*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353265*/                OPC_CheckType, MVT::v8i32,
/*353267*/                OPC_MoveParent,
/*353268*/                OPC_MoveParent,
/*353269*/                OPC_CheckType, MVT::v4f64,
/*353271*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353273*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353276*/                OPC_EmitMergeInputChains1_2,
/*353277*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXCPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353290*/              0, // EndSwitchType
/*353291*/            /*Scope*/ 100, /*->353392*/
/*353292*/              OPC_MoveChild0,
/*353293*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*353296*/              OPC_MoveChild0,
/*353297*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*353300*/              OPC_RecordMemRef,
/*353301*/              OPC_RecordNode, // #1 = 'ld' chained node
/*353302*/              OPC_CheckFoldableChainNode,
/*353303*/              OPC_RecordChild1, // #2 = $src2
/*353304*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353306*/              OPC_CheckPredicate, 9, // Predicate_load
/*353308*/              OPC_SwitchType /*2 cases */, 39, MVT::f32,// ->353350
/*353311*/                OPC_MoveParent,
/*353312*/                OPC_MoveParent,
/*353313*/                OPC_RecordChild1, // #3 = $src1
/*353314*/                OPC_MoveParent,
/*353315*/                OPC_MoveChild2,
/*353316*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353319*/                OPC_MoveChild0,
/*353320*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353323*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353325*/                OPC_CheckType, MVT::v4i32,
/*353327*/                OPC_MoveParent,
/*353328*/                OPC_MoveParent,
/*353329*/                OPC_CheckType, MVT::v4f32,
/*353331*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353333*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353336*/                OPC_EmitMergeInputChains1_1,
/*353337*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXCPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353350*/              /*SwitchType*/ 39, MVT::f64,// ->353391
/*353352*/                OPC_MoveParent,
/*353353*/                OPC_MoveParent,
/*353354*/                OPC_RecordChild1, // #3 = $src1
/*353355*/                OPC_MoveParent,
/*353356*/                OPC_MoveChild2,
/*353357*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353360*/                OPC_MoveChild0,
/*353361*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353364*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353366*/                OPC_CheckType, MVT::v8i32,
/*353368*/                OPC_MoveParent,
/*353369*/                OPC_MoveParent,
/*353370*/                OPC_CheckType, MVT::v4f64,
/*353372*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353374*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353377*/                OPC_EmitMergeInputChains1_1,
/*353378*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXCPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353391*/              0, // EndSwitchType
/*353392*/            /*Scope*/ 79, /*->353472*/
/*353393*/              OPC_RecordChild0, // #1 = $src1
/*353394*/              OPC_MoveChild1,
/*353395*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*353398*/              OPC_RecordMemRef,
/*353399*/              OPC_RecordNode, // #2 = 'ld' chained node
/*353400*/              OPC_CheckFoldableChainNode,
/*353401*/              OPC_RecordChild1, // #3 = $src2
/*353402*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353404*/              OPC_CheckPredicate, 9, // Predicate_load
/*353406*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*353408*/              OPC_MoveParent,
/*353409*/              OPC_MoveParent,
/*353410*/              OPC_MoveChild2,
/*353411*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353414*/              OPC_MoveChild0,
/*353415*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353418*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353420*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->353446
/*353423*/                OPC_MoveParent,
/*353424*/                OPC_MoveParent,
/*353425*/                OPC_CheckType, MVT::v4f32,
/*353427*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353429*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353432*/                OPC_EmitMergeInputChains1_2,
/*353433*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXCPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353446*/              /*SwitchType*/ 23, MVT::v8i32,// ->353471
/*353448*/                OPC_MoveParent,
/*353449*/                OPC_MoveParent,
/*353450*/                OPC_CheckType, MVT::v4f64,
/*353452*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353454*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353457*/                OPC_EmitMergeInputChains1_2,
/*353458*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXCPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353471*/              0, // EndSwitchType
/*353472*/            /*Scope*/ 79, /*->353552*/
/*353473*/              OPC_MoveChild0,
/*353474*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*353477*/              OPC_RecordMemRef,
/*353478*/              OPC_RecordNode, // #1 = 'ld' chained node
/*353479*/              OPC_CheckFoldableChainNode,
/*353480*/              OPC_RecordChild1, // #2 = $src2
/*353481*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353483*/              OPC_CheckPredicate, 9, // Predicate_load
/*353485*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*353487*/              OPC_MoveParent,
/*353488*/              OPC_RecordChild1, // #3 = $src1
/*353489*/              OPC_MoveParent,
/*353490*/              OPC_MoveChild2,
/*353491*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353494*/              OPC_MoveChild0,
/*353495*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353498*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353500*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->353526
/*353503*/                OPC_MoveParent,
/*353504*/                OPC_MoveParent,
/*353505*/                OPC_CheckType, MVT::v4f32,
/*353507*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353509*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353512*/                OPC_EmitMergeInputChains1_1,
/*353513*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXCPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353526*/              /*SwitchType*/ 23, MVT::v8i32,// ->353551
/*353528*/                OPC_MoveParent,
/*353529*/                OPC_MoveParent,
/*353530*/                OPC_CheckType, MVT::v4f64,
/*353532*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353534*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353537*/                OPC_EmitMergeInputChains1_1,
/*353538*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXCPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353551*/              0, // EndSwitchType
/*353552*/            0, /*End of Scope*/
/*353553*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPERMV),// ->353665
/*353556*/            OPC_RecordChild0, // #1 = $src1
/*353557*/            OPC_MoveChild1,
/*353558*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->353614
/*353562*/              OPC_MoveChild0,
/*353563*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*353566*/              OPC_RecordMemRef,
/*353567*/              OPC_RecordNode, // #2 = 'ld' chained node
/*353568*/              OPC_CheckFoldableChainNode,
/*353569*/              OPC_RecordChild1, // #3 = $src2
/*353570*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353572*/              OPC_CheckPredicate, 9, // Predicate_load
/*353574*/              OPC_CheckType, MVT::f64,
/*353576*/              OPC_MoveParent,
/*353577*/              OPC_MoveParent,
/*353578*/              OPC_MoveParent,
/*353579*/              OPC_MoveChild2,
/*353580*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353583*/              OPC_MoveChild0,
/*353584*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353587*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353589*/              OPC_CheckType, MVT::v8i32,
/*353591*/              OPC_MoveParent,
/*353592*/              OPC_MoveParent,
/*353593*/              OPC_CheckType, MVT::v4f64,
/*353595*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353597*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353600*/              OPC_EmitMergeInputChains1_2,
/*353601*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353614*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->353664
/*353617*/              OPC_RecordMemRef,
/*353618*/              OPC_RecordNode, // #2 = 'ld' chained node
/*353619*/              OPC_CheckFoldableChainNode,
/*353620*/              OPC_RecordChild1, // #3 = $src2
/*353621*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353623*/              OPC_CheckPredicate, 9, // Predicate_load
/*353625*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*353627*/              OPC_MoveParent,
/*353628*/              OPC_MoveParent,
/*353629*/              OPC_MoveChild2,
/*353630*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353633*/              OPC_MoveChild0,
/*353634*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353637*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353639*/              OPC_CheckType, MVT::v8i32,
/*353641*/              OPC_MoveParent,
/*353642*/              OPC_MoveParent,
/*353643*/              OPC_CheckType, MVT::v4f64,
/*353645*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353647*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353650*/              OPC_EmitMergeInputChains1_2,
/*353651*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPERMPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353664*/            0, // EndSwitchOpcode
/*353665*/          /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VPERMI),// ->353780
/*353668*/            OPC_MoveChild0,
/*353669*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->353728
/*353673*/              OPC_RecordMemRef,
/*353674*/              OPC_RecordNode, // #1 = 'ld' chained node
/*353675*/              OPC_CheckFoldableChainNode,
/*353676*/              OPC_RecordChild1, // #2 = $src1
/*353677*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353679*/              OPC_CheckPredicate, 9, // Predicate_load
/*353681*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*353683*/              OPC_MoveParent,
/*353684*/              OPC_RecordChild1, // #3 = $src2
/*353685*/              OPC_MoveChild1,
/*353686*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*353689*/              OPC_MoveParent,
/*353690*/              OPC_MoveParent,
/*353691*/              OPC_MoveChild2,
/*353692*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353695*/              OPC_MoveChild0,
/*353696*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353699*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353701*/              OPC_CheckType, MVT::v8i32,
/*353703*/              OPC_MoveParent,
/*353704*/              OPC_MoveParent,
/*353705*/              OPC_CheckType, MVT::v4f64,
/*353707*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353709*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*353712*/              OPC_EmitMergeInputChains1_1,
/*353713*/              OPC_EmitConvertToTarget, 3,
/*353715*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMPDZ256mikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*353728*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->353779
/*353731*/              OPC_MoveChild0,
/*353732*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*353735*/              OPC_RecordMemRef,
/*353736*/              OPC_RecordNode, // #1 = 'ld' chained node
/*353737*/              OPC_CheckFoldableChainNode,
/*353738*/              OPC_RecordChild1, // #2 = $src1
/*353739*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353741*/              OPC_CheckPredicate, 9, // Predicate_load
/*353743*/              OPC_CheckType, MVT::f64,
/*353745*/              OPC_MoveParent,
/*353746*/              OPC_MoveParent,
/*353747*/              OPC_RecordChild1, // #3 = $src2
/*353748*/              OPC_MoveChild1,
/*353749*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*353752*/              OPC_MoveParent,
/*353753*/              OPC_MoveParent,
/*353754*/              OPC_RecordChild2, // #4 = $src0
/*353755*/              OPC_CheckType, MVT::v4f64,
/*353757*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353759*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*353762*/              OPC_EmitMergeInputChains1_1,
/*353763*/              OPC_EmitConvertToTarget, 3,
/*353765*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 34
                        // Dst: (VPERMPDZ256mbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*353779*/            0, // EndSwitchOpcode
/*353780*/          /*SwitchOpcode*/ 82|128,1/*210*/, TARGET_VAL(X86ISD::VPERMILPV),// ->353994
/*353784*/            OPC_RecordChild0, // #1 = $src1
/*353785*/            OPC_MoveChild1,
/*353786*/            OPC_SwitchOpcode /*3 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->353844
/*353790*/              OPC_MoveChild0,
/*353791*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*353794*/              OPC_RecordMemRef,
/*353795*/              OPC_RecordNode, // #2 = 'ld' chained node
/*353796*/              OPC_CheckFoldableChainNode,
/*353797*/              OPC_RecordChild1, // #3 = $src2
/*353798*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353800*/              OPC_CheckPredicate, 9, // Predicate_load
/*353802*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*353804*/              OPC_CheckType, MVT::v2i64,
/*353806*/              OPC_MoveParent,
/*353807*/              OPC_MoveParent,
/*353808*/              OPC_MoveParent,
/*353809*/              OPC_MoveChild2,
/*353810*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353813*/              OPC_MoveChild0,
/*353814*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353817*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353819*/              OPC_CheckType, MVT::v4i32,
/*353821*/              OPC_MoveParent,
/*353822*/              OPC_MoveParent,
/*353823*/              OPC_CheckType, MVT::v4f32,
/*353825*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353827*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353830*/              OPC_EmitMergeInputChains1_2,
/*353831*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMILPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353844*/            /*SwitchOpcode*/ 96, TARGET_VAL(X86ISD::VBROADCAST),// ->353943
/*353847*/              OPC_MoveChild0,
/*353848*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*353851*/              OPC_RecordMemRef,
/*353852*/              OPC_RecordNode, // #2 = 'ld' chained node
/*353853*/              OPC_CheckFoldableChainNode,
/*353854*/              OPC_RecordChild1, // #3 = $src2
/*353855*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353857*/              OPC_SwitchType /*2 cases */, 40, MVT::i32,// ->353900
/*353860*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*353862*/                OPC_MoveParent,
/*353863*/                OPC_MoveParent,
/*353864*/                OPC_MoveParent,
/*353865*/                OPC_MoveChild2,
/*353866*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353869*/                OPC_MoveChild0,
/*353870*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353873*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353875*/                OPC_CheckType, MVT::v4i32,
/*353877*/                OPC_MoveParent,
/*353878*/                OPC_MoveParent,
/*353879*/                OPC_CheckType, MVT::v4f32,
/*353881*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353883*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353886*/                OPC_EmitMergeInputChains1_2,
/*353887*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMILPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353900*/              /*SwitchType*/ 40, MVT::i64,// ->353942
/*353902*/                OPC_CheckPredicate, 9, // Predicate_load
/*353904*/                OPC_MoveParent,
/*353905*/                OPC_MoveParent,
/*353906*/                OPC_MoveParent,
/*353907*/                OPC_MoveChild2,
/*353908*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353911*/                OPC_MoveChild0,
/*353912*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353915*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353917*/                OPC_CheckType, MVT::v8i32,
/*353919*/                OPC_MoveParent,
/*353920*/                OPC_MoveParent,
/*353921*/                OPC_CheckType, MVT::v4f64,
/*353923*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353925*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353928*/                OPC_EmitMergeInputChains1_2,
/*353929*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMILPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353942*/              0, // EndSwitchType
/*353943*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->353993
/*353946*/              OPC_RecordMemRef,
/*353947*/              OPC_RecordNode, // #2 = 'ld' chained node
/*353948*/              OPC_CheckFoldableChainNode,
/*353949*/              OPC_RecordChild1, // #3 = $src2
/*353950*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*353952*/              OPC_CheckPredicate, 9, // Predicate_load
/*353954*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*353956*/              OPC_MoveParent,
/*353957*/              OPC_MoveParent,
/*353958*/              OPC_MoveChild2,
/*353959*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*353962*/              OPC_MoveChild0,
/*353963*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*353966*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*353968*/              OPC_CheckType, MVT::v8i32,
/*353970*/              OPC_MoveParent,
/*353971*/              OPC_MoveParent,
/*353972*/              OPC_CheckType, MVT::v4f64,
/*353974*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353976*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*353979*/              OPC_EmitMergeInputChains1_2,
/*353980*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPERMILPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*353993*/            0, // EndSwitchOpcode
/*353994*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::VPERMILPI),// ->354177
/*353998*/            OPC_MoveChild0,
/*353999*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::LOAD),// ->354087
/*354003*/              OPC_RecordMemRef,
/*354004*/              OPC_RecordNode, // #1 = 'ld' chained node
/*354005*/              OPC_CheckFoldableChainNode,
/*354006*/              OPC_RecordChild1, // #2 = $src1
/*354007*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*354009*/              OPC_CheckPredicate, 9, // Predicate_load
/*354011*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*354013*/              OPC_MoveParent,
/*354014*/              OPC_RecordChild1, // #3 = $src2
/*354015*/              OPC_MoveChild1,
/*354016*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*354019*/              OPC_MoveParent,
/*354020*/              OPC_MoveParent,
/*354021*/              OPC_MoveChild2,
/*354022*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354025*/              OPC_MoveChild0,
/*354026*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354029*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354031*/              OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->354059
/*354034*/                OPC_MoveParent,
/*354035*/                OPC_MoveParent,
/*354036*/                OPC_CheckType, MVT::v4f32,
/*354038*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354040*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*354043*/                OPC_EmitMergeInputChains1_1,
/*354044*/                OPC_EmitConvertToTarget, 3,
/*354046*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMILPSZ128mikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*354059*/              /*SwitchType*/ 25, MVT::v8i32,// ->354086
/*354061*/                OPC_MoveParent,
/*354062*/                OPC_MoveParent,
/*354063*/                OPC_CheckType, MVT::v4f64,
/*354065*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354067*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*354070*/                OPC_EmitMergeInputChains1_1,
/*354071*/                OPC_EmitConvertToTarget, 3,
/*354073*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMILPDZ256mikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*354086*/              0, // EndSwitchType
/*354087*/            /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VBROADCAST),// ->354176
/*354090*/              OPC_MoveChild0,
/*354091*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*354094*/              OPC_RecordMemRef,
/*354095*/              OPC_RecordNode, // #1 = 'ld' chained node
/*354096*/              OPC_CheckFoldableChainNode,
/*354097*/              OPC_RecordChild1, // #2 = $src1
/*354098*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*354100*/              OPC_CheckPredicate, 9, // Predicate_load
/*354102*/              OPC_SwitchType /*2 cases */, 34, MVT::f32,// ->354139
/*354105*/                OPC_MoveParent,
/*354106*/                OPC_MoveParent,
/*354107*/                OPC_RecordChild1, // #3 = $src2
/*354108*/                OPC_MoveChild1,
/*354109*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*354112*/                OPC_MoveParent,
/*354113*/                OPC_MoveParent,
/*354114*/                OPC_RecordChild2, // #4 = $src0
/*354115*/                OPC_CheckType, MVT::v4f32,
/*354117*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354119*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*354122*/                OPC_EmitMergeInputChains1_1,
/*354123*/                OPC_EmitConvertToTarget, 3,
/*354125*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 34
                          // Dst: (VPERMILPSZ128mbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*354139*/              /*SwitchType*/ 34, MVT::f64,// ->354175
/*354141*/                OPC_MoveParent,
/*354142*/                OPC_MoveParent,
/*354143*/                OPC_RecordChild1, // #3 = $src2
/*354144*/                OPC_MoveChild1,
/*354145*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*354148*/                OPC_MoveParent,
/*354149*/                OPC_MoveParent,
/*354150*/                OPC_RecordChild2, // #4 = $src0
/*354151*/                OPC_CheckType, MVT::v4f64,
/*354153*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354155*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*354158*/                OPC_EmitMergeInputChains1_1,
/*354159*/                OPC_EmitConvertToTarget, 3,
/*354161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 34
                          // Dst: (VPERMILPDZ256mbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*354175*/              0, // EndSwitchType
/*354176*/            0, // EndSwitchOpcode
/*354177*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(ISD::FMA),// ->354758
/*354181*/            OPC_Scope, 84|128,1/*212*/, /*->354396*/ // 4 children in Scope
/*354184*/              OPC_RecordChild0, // #1 = $src2
/*354185*/              OPC_Scope, 105, /*->354292*/ // 2 children in Scope
/*354187*/                OPC_RecordChild1, // #2 = $src1
/*354188*/                OPC_MoveChild2,
/*354189*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*354192*/                OPC_MoveChild0,
/*354193*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*354196*/                OPC_RecordMemRef,
/*354197*/                OPC_RecordNode, // #3 = 'ld' chained node
/*354198*/                OPC_CheckFoldableChainNode,
/*354199*/                OPC_RecordChild1, // #4 = $src3
/*354200*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*354202*/                OPC_CheckPredicate, 9, // Predicate_load
/*354204*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->354248
/*354207*/                  OPC_MoveParent,
/*354208*/                  OPC_MoveParent,
/*354209*/                  OPC_MoveParent,
/*354210*/                  OPC_MoveChild2,
/*354211*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354214*/                  OPC_MoveChild0,
/*354215*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354218*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354220*/                  OPC_CheckType, MVT::v4i32,
/*354222*/                  OPC_MoveParent,
/*354223*/                  OPC_MoveParent,
/*354224*/                  OPC_CheckType, MVT::v4f32,
/*354226*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354228*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354231*/                  OPC_EmitMergeInputChains, 1, 3, 
/*354234*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADD213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354248*/                /*SwitchType*/ 41, MVT::f64,// ->354291
/*354250*/                  OPC_MoveParent,
/*354251*/                  OPC_MoveParent,
/*354252*/                  OPC_MoveParent,
/*354253*/                  OPC_MoveChild2,
/*354254*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354257*/                  OPC_MoveChild0,
/*354258*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354261*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354263*/                  OPC_CheckType, MVT::v8i32,
/*354265*/                  OPC_MoveParent,
/*354266*/                  OPC_MoveParent,
/*354267*/                  OPC_CheckType, MVT::v4f64,
/*354269*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354271*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354274*/                  OPC_EmitMergeInputChains, 1, 3, 
/*354277*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADD213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354291*/                0, // EndSwitchType
/*354292*/              /*Scope*/ 102, /*->354395*/
/*354293*/                OPC_MoveChild1,
/*354294*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*354297*/                OPC_MoveChild0,
/*354298*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*354301*/                OPC_RecordMemRef,
/*354302*/                OPC_RecordNode, // #2 = 'ld' chained node
/*354303*/                OPC_CheckFoldableChainNode,
/*354304*/                OPC_RecordChild1, // #3 = $src3
/*354305*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*354307*/                OPC_CheckPredicate, 9, // Predicate_load
/*354309*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->354352
/*354312*/                  OPC_MoveParent,
/*354313*/                  OPC_MoveParent,
/*354314*/                  OPC_RecordChild2, // #4 = $src1
/*354315*/                  OPC_MoveParent,
/*354316*/                  OPC_MoveChild2,
/*354317*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354320*/                  OPC_MoveChild0,
/*354321*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354324*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354326*/                  OPC_CheckType, MVT::v4i32,
/*354328*/                  OPC_MoveParent,
/*354329*/                  OPC_MoveParent,
/*354330*/                  OPC_CheckType, MVT::v4f32,
/*354332*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354334*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354337*/                  OPC_EmitMergeInputChains1_2,
/*354338*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADD231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354352*/                /*SwitchType*/ 40, MVT::f64,// ->354394
/*354354*/                  OPC_MoveParent,
/*354355*/                  OPC_MoveParent,
/*354356*/                  OPC_RecordChild2, // #4 = $src1
/*354357*/                  OPC_MoveParent,
/*354358*/                  OPC_MoveChild2,
/*354359*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354362*/                  OPC_MoveChild0,
/*354363*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354366*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354368*/                  OPC_CheckType, MVT::v8i32,
/*354370*/                  OPC_MoveParent,
/*354371*/                  OPC_MoveParent,
/*354372*/                  OPC_CheckType, MVT::v4f64,
/*354374*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354376*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354379*/                  OPC_EmitMergeInputChains1_2,
/*354380*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADD231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354394*/                0, // EndSwitchType
/*354395*/              0, /*End of Scope*/
/*354396*/            /*Scope*/ 104, /*->354501*/
/*354397*/              OPC_MoveChild0,
/*354398*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*354401*/              OPC_MoveChild0,
/*354402*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*354405*/              OPC_RecordMemRef,
/*354406*/              OPC_RecordNode, // #1 = 'ld' chained node
/*354407*/              OPC_CheckFoldableChainNode,
/*354408*/              OPC_RecordChild1, // #2 = $src3
/*354409*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*354411*/              OPC_CheckPredicate, 9, // Predicate_load
/*354413*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->354457
/*354416*/                OPC_MoveParent,
/*354417*/                OPC_MoveParent,
/*354418*/                OPC_RecordChild1, // #3 = $src1
/*354419*/                OPC_RecordChild2, // #4 = $src2
/*354420*/                OPC_MoveParent,
/*354421*/                OPC_MoveChild2,
/*354422*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354425*/                OPC_MoveChild0,
/*354426*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354429*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354431*/                OPC_CheckType, MVT::v4i32,
/*354433*/                OPC_MoveParent,
/*354434*/                OPC_MoveParent,
/*354435*/                OPC_CheckType, MVT::v4f32,
/*354437*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354439*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354442*/                OPC_EmitMergeInputChains1_1,
/*354443*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADD132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354457*/              /*SwitchType*/ 41, MVT::f64,// ->354500
/*354459*/                OPC_MoveParent,
/*354460*/                OPC_MoveParent,
/*354461*/                OPC_RecordChild1, // #3 = $src1
/*354462*/                OPC_RecordChild2, // #4 = $src2
/*354463*/                OPC_MoveParent,
/*354464*/                OPC_MoveChild2,
/*354465*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354468*/                OPC_MoveChild0,
/*354469*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354472*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354474*/                OPC_CheckType, MVT::v8i32,
/*354476*/                OPC_MoveParent,
/*354477*/                OPC_MoveParent,
/*354478*/                OPC_CheckType, MVT::v4f64,
/*354480*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354482*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354485*/                OPC_EmitMergeInputChains1_1,
/*354486*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADD132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354500*/              0, // EndSwitchType
/*354501*/            /*Scope*/ 43|128,1/*171*/, /*->354674*/
/*354503*/              OPC_RecordChild0, // #1 = $src2
/*354504*/              OPC_Scope, 85, /*->354591*/ // 2 children in Scope
/*354506*/                OPC_RecordChild1, // #2 = $src1
/*354507*/                OPC_MoveChild2,
/*354508*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*354511*/                OPC_RecordMemRef,
/*354512*/                OPC_RecordNode, // #3 = 'ld' chained node
/*354513*/                OPC_CheckFoldableChainNode,
/*354514*/                OPC_RecordChild1, // #4 = $src3
/*354515*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*354517*/                OPC_CheckPredicate, 9, // Predicate_load
/*354519*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*354521*/                OPC_MoveParent,
/*354522*/                OPC_MoveParent,
/*354523*/                OPC_MoveChild2,
/*354524*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354527*/                OPC_MoveChild0,
/*354528*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354531*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354533*/                OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->354562
/*354536*/                  OPC_MoveParent,
/*354537*/                  OPC_MoveParent,
/*354538*/                  OPC_CheckType, MVT::v4f32,
/*354540*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354542*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354545*/                  OPC_EmitMergeInputChains, 1, 3, 
/*354548*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADD213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354562*/                /*SwitchType*/ 26, MVT::v8i32,// ->354590
/*354564*/                  OPC_MoveParent,
/*354565*/                  OPC_MoveParent,
/*354566*/                  OPC_CheckType, MVT::v4f64,
/*354568*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354570*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354573*/                  OPC_EmitMergeInputChains, 1, 3, 
/*354576*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADD213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354590*/                0, // EndSwitchType
/*354591*/              /*Scope*/ 81, /*->354673*/
/*354592*/                OPC_MoveChild1,
/*354593*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*354596*/                OPC_RecordMemRef,
/*354597*/                OPC_RecordNode, // #2 = 'ld' chained node
/*354598*/                OPC_CheckFoldableChainNode,
/*354599*/                OPC_RecordChild1, // #3 = $src3
/*354600*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*354602*/                OPC_CheckPredicate, 9, // Predicate_load
/*354604*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*354606*/                OPC_MoveParent,
/*354607*/                OPC_RecordChild2, // #4 = $src1
/*354608*/                OPC_MoveParent,
/*354609*/                OPC_MoveChild2,
/*354610*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354613*/                OPC_MoveChild0,
/*354614*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354617*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354619*/                OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->354646
/*354622*/                  OPC_MoveParent,
/*354623*/                  OPC_MoveParent,
/*354624*/                  OPC_CheckType, MVT::v4f32,
/*354626*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354628*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354631*/                  OPC_EmitMergeInputChains1_2,
/*354632*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADD231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354646*/                /*SwitchType*/ 24, MVT::v8i32,// ->354672
/*354648*/                  OPC_MoveParent,
/*354649*/                  OPC_MoveParent,
/*354650*/                  OPC_CheckType, MVT::v4f64,
/*354652*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354654*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354657*/                  OPC_EmitMergeInputChains1_2,
/*354658*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADD231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354672*/                0, // EndSwitchType
/*354673*/              0, /*End of Scope*/
/*354674*/            /*Scope*/ 82, /*->354757*/
/*354675*/              OPC_MoveChild0,
/*354676*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*354679*/              OPC_RecordMemRef,
/*354680*/              OPC_RecordNode, // #1 = 'ld' chained node
/*354681*/              OPC_CheckFoldableChainNode,
/*354682*/              OPC_RecordChild1, // #2 = $src3
/*354683*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*354685*/              OPC_CheckPredicate, 9, // Predicate_load
/*354687*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*354689*/              OPC_MoveParent,
/*354690*/              OPC_RecordChild1, // #3 = $src1
/*354691*/              OPC_RecordChild2, // #4 = $src2
/*354692*/              OPC_MoveParent,
/*354693*/              OPC_MoveChild2,
/*354694*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354697*/              OPC_MoveChild0,
/*354698*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354701*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354703*/              OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->354730
/*354706*/                OPC_MoveParent,
/*354707*/                OPC_MoveParent,
/*354708*/                OPC_CheckType, MVT::v4f32,
/*354710*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354712*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354715*/                OPC_EmitMergeInputChains1_1,
/*354716*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADD132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354730*/              /*SwitchType*/ 24, MVT::v8i32,// ->354756
/*354732*/                OPC_MoveParent,
/*354733*/                OPC_MoveParent,
/*354734*/                OPC_CheckType, MVT::v4f64,
/*354736*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354738*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354741*/                OPC_EmitMergeInputChains1_1,
/*354742*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADD132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354756*/              0, // EndSwitchType
/*354757*/            0, /*End of Scope*/
/*354758*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(X86ISD::FMSUB),// ->355339
/*354762*/            OPC_Scope, 84|128,1/*212*/, /*->354977*/ // 4 children in Scope
/*354765*/              OPC_RecordChild0, // #1 = $src2
/*354766*/              OPC_Scope, 105, /*->354873*/ // 2 children in Scope
/*354768*/                OPC_RecordChild1, // #2 = $src1
/*354769*/                OPC_MoveChild2,
/*354770*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*354773*/                OPC_MoveChild0,
/*354774*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*354777*/                OPC_RecordMemRef,
/*354778*/                OPC_RecordNode, // #3 = 'ld' chained node
/*354779*/                OPC_CheckFoldableChainNode,
/*354780*/                OPC_RecordChild1, // #4 = $src3
/*354781*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*354783*/                OPC_CheckPredicate, 9, // Predicate_load
/*354785*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->354829
/*354788*/                  OPC_MoveParent,
/*354789*/                  OPC_MoveParent,
/*354790*/                  OPC_MoveParent,
/*354791*/                  OPC_MoveChild2,
/*354792*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354795*/                  OPC_MoveChild0,
/*354796*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354799*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354801*/                  OPC_CheckType, MVT::v4i32,
/*354803*/                  OPC_MoveParent,
/*354804*/                  OPC_MoveParent,
/*354805*/                  OPC_CheckType, MVT::v4f32,
/*354807*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354809*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354812*/                  OPC_EmitMergeInputChains, 1, 3, 
/*354815*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUB213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354829*/                /*SwitchType*/ 41, MVT::f64,// ->354872
/*354831*/                  OPC_MoveParent,
/*354832*/                  OPC_MoveParent,
/*354833*/                  OPC_MoveParent,
/*354834*/                  OPC_MoveChild2,
/*354835*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354838*/                  OPC_MoveChild0,
/*354839*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354842*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354844*/                  OPC_CheckType, MVT::v8i32,
/*354846*/                  OPC_MoveParent,
/*354847*/                  OPC_MoveParent,
/*354848*/                  OPC_CheckType, MVT::v4f64,
/*354850*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354852*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354855*/                  OPC_EmitMergeInputChains, 1, 3, 
/*354858*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUB213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354872*/                0, // EndSwitchType
/*354873*/              /*Scope*/ 102, /*->354976*/
/*354874*/                OPC_MoveChild1,
/*354875*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*354878*/                OPC_MoveChild0,
/*354879*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*354882*/                OPC_RecordMemRef,
/*354883*/                OPC_RecordNode, // #2 = 'ld' chained node
/*354884*/                OPC_CheckFoldableChainNode,
/*354885*/                OPC_RecordChild1, // #3 = $src3
/*354886*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*354888*/                OPC_CheckPredicate, 9, // Predicate_load
/*354890*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->354933
/*354893*/                  OPC_MoveParent,
/*354894*/                  OPC_MoveParent,
/*354895*/                  OPC_RecordChild2, // #4 = $src1
/*354896*/                  OPC_MoveParent,
/*354897*/                  OPC_MoveChild2,
/*354898*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354901*/                  OPC_MoveChild0,
/*354902*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354905*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354907*/                  OPC_CheckType, MVT::v4i32,
/*354909*/                  OPC_MoveParent,
/*354910*/                  OPC_MoveParent,
/*354911*/                  OPC_CheckType, MVT::v4f32,
/*354913*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354915*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354918*/                  OPC_EmitMergeInputChains1_2,
/*354919*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUB231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354933*/                /*SwitchType*/ 40, MVT::f64,// ->354975
/*354935*/                  OPC_MoveParent,
/*354936*/                  OPC_MoveParent,
/*354937*/                  OPC_RecordChild2, // #4 = $src1
/*354938*/                  OPC_MoveParent,
/*354939*/                  OPC_MoveChild2,
/*354940*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*354943*/                  OPC_MoveChild0,
/*354944*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*354947*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*354949*/                  OPC_CheckType, MVT::v8i32,
/*354951*/                  OPC_MoveParent,
/*354952*/                  OPC_MoveParent,
/*354953*/                  OPC_CheckType, MVT::v4f64,
/*354955*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354957*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*354960*/                  OPC_EmitMergeInputChains1_2,
/*354961*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUB231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*354975*/                0, // EndSwitchType
/*354976*/              0, /*End of Scope*/
/*354977*/            /*Scope*/ 104, /*->355082*/
/*354978*/              OPC_MoveChild0,
/*354979*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*354982*/              OPC_MoveChild0,
/*354983*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*354986*/              OPC_RecordMemRef,
/*354987*/              OPC_RecordNode, // #1 = 'ld' chained node
/*354988*/              OPC_CheckFoldableChainNode,
/*354989*/              OPC_RecordChild1, // #2 = $src3
/*354990*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*354992*/              OPC_CheckPredicate, 9, // Predicate_load
/*354994*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->355038
/*354997*/                OPC_MoveParent,
/*354998*/                OPC_MoveParent,
/*354999*/                OPC_RecordChild1, // #3 = $src1
/*355000*/                OPC_RecordChild2, // #4 = $src2
/*355001*/                OPC_MoveParent,
/*355002*/                OPC_MoveChild2,
/*355003*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355006*/                OPC_MoveChild0,
/*355007*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355010*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355012*/                OPC_CheckType, MVT::v4i32,
/*355014*/                OPC_MoveParent,
/*355015*/                OPC_MoveParent,
/*355016*/                OPC_CheckType, MVT::v4f32,
/*355018*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355020*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355023*/                OPC_EmitMergeInputChains1_1,
/*355024*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUB132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355038*/              /*SwitchType*/ 41, MVT::f64,// ->355081
/*355040*/                OPC_MoveParent,
/*355041*/                OPC_MoveParent,
/*355042*/                OPC_RecordChild1, // #3 = $src1
/*355043*/                OPC_RecordChild2, // #4 = $src2
/*355044*/                OPC_MoveParent,
/*355045*/                OPC_MoveChild2,
/*355046*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355049*/                OPC_MoveChild0,
/*355050*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355053*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355055*/                OPC_CheckType, MVT::v8i32,
/*355057*/                OPC_MoveParent,
/*355058*/                OPC_MoveParent,
/*355059*/                OPC_CheckType, MVT::v4f64,
/*355061*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355063*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355066*/                OPC_EmitMergeInputChains1_1,
/*355067*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUB132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355081*/              0, // EndSwitchType
/*355082*/            /*Scope*/ 43|128,1/*171*/, /*->355255*/
/*355084*/              OPC_RecordChild0, // #1 = $src2
/*355085*/              OPC_Scope, 85, /*->355172*/ // 2 children in Scope
/*355087*/                OPC_RecordChild1, // #2 = $src1
/*355088*/                OPC_MoveChild2,
/*355089*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*355092*/                OPC_RecordMemRef,
/*355093*/                OPC_RecordNode, // #3 = 'ld' chained node
/*355094*/                OPC_CheckFoldableChainNode,
/*355095*/                OPC_RecordChild1, // #4 = $src3
/*355096*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*355098*/                OPC_CheckPredicate, 9, // Predicate_load
/*355100*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*355102*/                OPC_MoveParent,
/*355103*/                OPC_MoveParent,
/*355104*/                OPC_MoveChild2,
/*355105*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355108*/                OPC_MoveChild0,
/*355109*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355112*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355114*/                OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->355143
/*355117*/                  OPC_MoveParent,
/*355118*/                  OPC_MoveParent,
/*355119*/                  OPC_CheckType, MVT::v4f32,
/*355121*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355123*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355126*/                  OPC_EmitMergeInputChains, 1, 3, 
/*355129*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUB213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355143*/                /*SwitchType*/ 26, MVT::v8i32,// ->355171
/*355145*/                  OPC_MoveParent,
/*355146*/                  OPC_MoveParent,
/*355147*/                  OPC_CheckType, MVT::v4f64,
/*355149*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355151*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355154*/                  OPC_EmitMergeInputChains, 1, 3, 
/*355157*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUB213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355171*/                0, // EndSwitchType
/*355172*/              /*Scope*/ 81, /*->355254*/
/*355173*/                OPC_MoveChild1,
/*355174*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*355177*/                OPC_RecordMemRef,
/*355178*/                OPC_RecordNode, // #2 = 'ld' chained node
/*355179*/                OPC_CheckFoldableChainNode,
/*355180*/                OPC_RecordChild1, // #3 = $src3
/*355181*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*355183*/                OPC_CheckPredicate, 9, // Predicate_load
/*355185*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*355187*/                OPC_MoveParent,
/*355188*/                OPC_RecordChild2, // #4 = $src1
/*355189*/                OPC_MoveParent,
/*355190*/                OPC_MoveChild2,
/*355191*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355194*/                OPC_MoveChild0,
/*355195*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355198*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355200*/                OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->355227
/*355203*/                  OPC_MoveParent,
/*355204*/                  OPC_MoveParent,
/*355205*/                  OPC_CheckType, MVT::v4f32,
/*355207*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355209*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355212*/                  OPC_EmitMergeInputChains1_2,
/*355213*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUB231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355227*/                /*SwitchType*/ 24, MVT::v8i32,// ->355253
/*355229*/                  OPC_MoveParent,
/*355230*/                  OPC_MoveParent,
/*355231*/                  OPC_CheckType, MVT::v4f64,
/*355233*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355235*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355238*/                  OPC_EmitMergeInputChains1_2,
/*355239*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUB231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355253*/                0, // EndSwitchType
/*355254*/              0, /*End of Scope*/
/*355255*/            /*Scope*/ 82, /*->355338*/
/*355256*/              OPC_MoveChild0,
/*355257*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*355260*/              OPC_RecordMemRef,
/*355261*/              OPC_RecordNode, // #1 = 'ld' chained node
/*355262*/              OPC_CheckFoldableChainNode,
/*355263*/              OPC_RecordChild1, // #2 = $src3
/*355264*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*355266*/              OPC_CheckPredicate, 9, // Predicate_load
/*355268*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*355270*/              OPC_MoveParent,
/*355271*/              OPC_RecordChild1, // #3 = $src1
/*355272*/              OPC_RecordChild2, // #4 = $src2
/*355273*/              OPC_MoveParent,
/*355274*/              OPC_MoveChild2,
/*355275*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355278*/              OPC_MoveChild0,
/*355279*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355282*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355284*/              OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->355311
/*355287*/                OPC_MoveParent,
/*355288*/                OPC_MoveParent,
/*355289*/                OPC_CheckType, MVT::v4f32,
/*355291*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355293*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355296*/                OPC_EmitMergeInputChains1_1,
/*355297*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUB132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355311*/              /*SwitchType*/ 24, MVT::v8i32,// ->355337
/*355313*/                OPC_MoveParent,
/*355314*/                OPC_MoveParent,
/*355315*/                OPC_CheckType, MVT::v4f64,
/*355317*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355319*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355322*/                OPC_EmitMergeInputChains1_1,
/*355323*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUB132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355337*/              0, // EndSwitchType
/*355338*/            0, /*End of Scope*/
/*355339*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(X86ISD::FMADDSUB),// ->355920
/*355343*/            OPC_Scope, 84|128,1/*212*/, /*->355558*/ // 4 children in Scope
/*355346*/              OPC_RecordChild0, // #1 = $src2
/*355347*/              OPC_Scope, 105, /*->355454*/ // 2 children in Scope
/*355349*/                OPC_RecordChild1, // #2 = $src1
/*355350*/                OPC_MoveChild2,
/*355351*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*355354*/                OPC_MoveChild0,
/*355355*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*355358*/                OPC_RecordMemRef,
/*355359*/                OPC_RecordNode, // #3 = 'ld' chained node
/*355360*/                OPC_CheckFoldableChainNode,
/*355361*/                OPC_RecordChild1, // #4 = $src3
/*355362*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*355364*/                OPC_CheckPredicate, 9, // Predicate_load
/*355366*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->355410
/*355369*/                  OPC_MoveParent,
/*355370*/                  OPC_MoveParent,
/*355371*/                  OPC_MoveParent,
/*355372*/                  OPC_MoveChild2,
/*355373*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355376*/                  OPC_MoveChild0,
/*355377*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355380*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355382*/                  OPC_CheckType, MVT::v4i32,
/*355384*/                  OPC_MoveParent,
/*355385*/                  OPC_MoveParent,
/*355386*/                  OPC_CheckType, MVT::v4f32,
/*355388*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355390*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355393*/                  OPC_EmitMergeInputChains, 1, 3, 
/*355396*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADDSUB213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355410*/                /*SwitchType*/ 41, MVT::f64,// ->355453
/*355412*/                  OPC_MoveParent,
/*355413*/                  OPC_MoveParent,
/*355414*/                  OPC_MoveParent,
/*355415*/                  OPC_MoveChild2,
/*355416*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355419*/                  OPC_MoveChild0,
/*355420*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355423*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355425*/                  OPC_CheckType, MVT::v8i32,
/*355427*/                  OPC_MoveParent,
/*355428*/                  OPC_MoveParent,
/*355429*/                  OPC_CheckType, MVT::v4f64,
/*355431*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355433*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355436*/                  OPC_EmitMergeInputChains, 1, 3, 
/*355439*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADDSUB213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355453*/                0, // EndSwitchType
/*355454*/              /*Scope*/ 102, /*->355557*/
/*355455*/                OPC_MoveChild1,
/*355456*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*355459*/                OPC_MoveChild0,
/*355460*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*355463*/                OPC_RecordMemRef,
/*355464*/                OPC_RecordNode, // #2 = 'ld' chained node
/*355465*/                OPC_CheckFoldableChainNode,
/*355466*/                OPC_RecordChild1, // #3 = $src3
/*355467*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*355469*/                OPC_CheckPredicate, 9, // Predicate_load
/*355471*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->355514
/*355474*/                  OPC_MoveParent,
/*355475*/                  OPC_MoveParent,
/*355476*/                  OPC_RecordChild2, // #4 = $src1
/*355477*/                  OPC_MoveParent,
/*355478*/                  OPC_MoveChild2,
/*355479*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355482*/                  OPC_MoveChild0,
/*355483*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355486*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355488*/                  OPC_CheckType, MVT::v4i32,
/*355490*/                  OPC_MoveParent,
/*355491*/                  OPC_MoveParent,
/*355492*/                  OPC_CheckType, MVT::v4f32,
/*355494*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355496*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355499*/                  OPC_EmitMergeInputChains1_2,
/*355500*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADDSUB231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355514*/                /*SwitchType*/ 40, MVT::f64,// ->355556
/*355516*/                  OPC_MoveParent,
/*355517*/                  OPC_MoveParent,
/*355518*/                  OPC_RecordChild2, // #4 = $src1
/*355519*/                  OPC_MoveParent,
/*355520*/                  OPC_MoveChild2,
/*355521*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355524*/                  OPC_MoveChild0,
/*355525*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355528*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355530*/                  OPC_CheckType, MVT::v8i32,
/*355532*/                  OPC_MoveParent,
/*355533*/                  OPC_MoveParent,
/*355534*/                  OPC_CheckType, MVT::v4f64,
/*355536*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355538*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355541*/                  OPC_EmitMergeInputChains1_2,
/*355542*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADDSUB231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355556*/                0, // EndSwitchType
/*355557*/              0, /*End of Scope*/
/*355558*/            /*Scope*/ 104, /*->355663*/
/*355559*/              OPC_MoveChild0,
/*355560*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*355563*/              OPC_MoveChild0,
/*355564*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*355567*/              OPC_RecordMemRef,
/*355568*/              OPC_RecordNode, // #1 = 'ld' chained node
/*355569*/              OPC_CheckFoldableChainNode,
/*355570*/              OPC_RecordChild1, // #2 = $src3
/*355571*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*355573*/              OPC_CheckPredicate, 9, // Predicate_load
/*355575*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->355619
/*355578*/                OPC_MoveParent,
/*355579*/                OPC_MoveParent,
/*355580*/                OPC_RecordChild1, // #3 = $src1
/*355581*/                OPC_RecordChild2, // #4 = $src2
/*355582*/                OPC_MoveParent,
/*355583*/                OPC_MoveChild2,
/*355584*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355587*/                OPC_MoveChild0,
/*355588*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355591*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355593*/                OPC_CheckType, MVT::v4i32,
/*355595*/                OPC_MoveParent,
/*355596*/                OPC_MoveParent,
/*355597*/                OPC_CheckType, MVT::v4f32,
/*355599*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355601*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355604*/                OPC_EmitMergeInputChains1_1,
/*355605*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADDSUB132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355619*/              /*SwitchType*/ 41, MVT::f64,// ->355662
/*355621*/                OPC_MoveParent,
/*355622*/                OPC_MoveParent,
/*355623*/                OPC_RecordChild1, // #3 = $src1
/*355624*/                OPC_RecordChild2, // #4 = $src2
/*355625*/                OPC_MoveParent,
/*355626*/                OPC_MoveChild2,
/*355627*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355630*/                OPC_MoveChild0,
/*355631*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355634*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355636*/                OPC_CheckType, MVT::v8i32,
/*355638*/                OPC_MoveParent,
/*355639*/                OPC_MoveParent,
/*355640*/                OPC_CheckType, MVT::v4f64,
/*355642*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355644*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355647*/                OPC_EmitMergeInputChains1_1,
/*355648*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADDSUB132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355662*/              0, // EndSwitchType
/*355663*/            /*Scope*/ 43|128,1/*171*/, /*->355836*/
/*355665*/              OPC_RecordChild0, // #1 = $src2
/*355666*/              OPC_Scope, 85, /*->355753*/ // 2 children in Scope
/*355668*/                OPC_RecordChild1, // #2 = $src1
/*355669*/                OPC_MoveChild2,
/*355670*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*355673*/                OPC_RecordMemRef,
/*355674*/                OPC_RecordNode, // #3 = 'ld' chained node
/*355675*/                OPC_CheckFoldableChainNode,
/*355676*/                OPC_RecordChild1, // #4 = $src3
/*355677*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*355679*/                OPC_CheckPredicate, 9, // Predicate_load
/*355681*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*355683*/                OPC_MoveParent,
/*355684*/                OPC_MoveParent,
/*355685*/                OPC_MoveChild2,
/*355686*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355689*/                OPC_MoveChild0,
/*355690*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355693*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355695*/                OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->355724
/*355698*/                  OPC_MoveParent,
/*355699*/                  OPC_MoveParent,
/*355700*/                  OPC_CheckType, MVT::v4f32,
/*355702*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355704*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355707*/                  OPC_EmitMergeInputChains, 1, 3, 
/*355710*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADDSUB213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355724*/                /*SwitchType*/ 26, MVT::v8i32,// ->355752
/*355726*/                  OPC_MoveParent,
/*355727*/                  OPC_MoveParent,
/*355728*/                  OPC_CheckType, MVT::v4f64,
/*355730*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355732*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355735*/                  OPC_EmitMergeInputChains, 1, 3, 
/*355738*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADDSUB213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355752*/                0, // EndSwitchType
/*355753*/              /*Scope*/ 81, /*->355835*/
/*355754*/                OPC_MoveChild1,
/*355755*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*355758*/                OPC_RecordMemRef,
/*355759*/                OPC_RecordNode, // #2 = 'ld' chained node
/*355760*/                OPC_CheckFoldableChainNode,
/*355761*/                OPC_RecordChild1, // #3 = $src3
/*355762*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*355764*/                OPC_CheckPredicate, 9, // Predicate_load
/*355766*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*355768*/                OPC_MoveParent,
/*355769*/                OPC_RecordChild2, // #4 = $src1
/*355770*/                OPC_MoveParent,
/*355771*/                OPC_MoveChild2,
/*355772*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355775*/                OPC_MoveChild0,
/*355776*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355779*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355781*/                OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->355808
/*355784*/                  OPC_MoveParent,
/*355785*/                  OPC_MoveParent,
/*355786*/                  OPC_CheckType, MVT::v4f32,
/*355788*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355790*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355793*/                  OPC_EmitMergeInputChains1_2,
/*355794*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADDSUB231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355808*/                /*SwitchType*/ 24, MVT::v8i32,// ->355834
/*355810*/                  OPC_MoveParent,
/*355811*/                  OPC_MoveParent,
/*355812*/                  OPC_CheckType, MVT::v4f64,
/*355814*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355816*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355819*/                  OPC_EmitMergeInputChains1_2,
/*355820*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADDSUB231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355834*/                0, // EndSwitchType
/*355835*/              0, /*End of Scope*/
/*355836*/            /*Scope*/ 82, /*->355919*/
/*355837*/              OPC_MoveChild0,
/*355838*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*355841*/              OPC_RecordMemRef,
/*355842*/              OPC_RecordNode, // #1 = 'ld' chained node
/*355843*/              OPC_CheckFoldableChainNode,
/*355844*/              OPC_RecordChild1, // #2 = $src3
/*355845*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*355847*/              OPC_CheckPredicate, 9, // Predicate_load
/*355849*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*355851*/              OPC_MoveParent,
/*355852*/              OPC_RecordChild1, // #3 = $src1
/*355853*/              OPC_RecordChild2, // #4 = $src2
/*355854*/              OPC_MoveParent,
/*355855*/              OPC_MoveChild2,
/*355856*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355859*/              OPC_MoveChild0,
/*355860*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355863*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355865*/              OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->355892
/*355868*/                OPC_MoveParent,
/*355869*/                OPC_MoveParent,
/*355870*/                OPC_CheckType, MVT::v4f32,
/*355872*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355874*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355877*/                OPC_EmitMergeInputChains1_1,
/*355878*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADDSUB132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355892*/              /*SwitchType*/ 24, MVT::v8i32,// ->355918
/*355894*/                OPC_MoveParent,
/*355895*/                OPC_MoveParent,
/*355896*/                OPC_CheckType, MVT::v4f64,
/*355898*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355900*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355903*/                OPC_EmitMergeInputChains1_1,
/*355904*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADDSUB132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355918*/              0, // EndSwitchType
/*355919*/            0, /*End of Scope*/
/*355920*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(X86ISD::FMSUBADD),// ->356501
/*355924*/            OPC_Scope, 84|128,1/*212*/, /*->356139*/ // 4 children in Scope
/*355927*/              OPC_RecordChild0, // #1 = $src2
/*355928*/              OPC_Scope, 105, /*->356035*/ // 2 children in Scope
/*355930*/                OPC_RecordChild1, // #2 = $src1
/*355931*/                OPC_MoveChild2,
/*355932*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*355935*/                OPC_MoveChild0,
/*355936*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*355939*/                OPC_RecordMemRef,
/*355940*/                OPC_RecordNode, // #3 = 'ld' chained node
/*355941*/                OPC_CheckFoldableChainNode,
/*355942*/                OPC_RecordChild1, // #4 = $src3
/*355943*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*355945*/                OPC_CheckPredicate, 9, // Predicate_load
/*355947*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->355991
/*355950*/                  OPC_MoveParent,
/*355951*/                  OPC_MoveParent,
/*355952*/                  OPC_MoveParent,
/*355953*/                  OPC_MoveChild2,
/*355954*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*355957*/                  OPC_MoveChild0,
/*355958*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*355961*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*355963*/                  OPC_CheckType, MVT::v4i32,
/*355965*/                  OPC_MoveParent,
/*355966*/                  OPC_MoveParent,
/*355967*/                  OPC_CheckType, MVT::v4f32,
/*355969*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355971*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*355974*/                  OPC_EmitMergeInputChains, 1, 3, 
/*355977*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUBADD213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*355991*/                /*SwitchType*/ 41, MVT::f64,// ->356034
/*355993*/                  OPC_MoveParent,
/*355994*/                  OPC_MoveParent,
/*355995*/                  OPC_MoveParent,
/*355996*/                  OPC_MoveChild2,
/*355997*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356000*/                  OPC_MoveChild0,
/*356001*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356004*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356006*/                  OPC_CheckType, MVT::v8i32,
/*356008*/                  OPC_MoveParent,
/*356009*/                  OPC_MoveParent,
/*356010*/                  OPC_CheckType, MVT::v4f64,
/*356012*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356014*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356017*/                  OPC_EmitMergeInputChains, 1, 3, 
/*356020*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUBADD213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356034*/                0, // EndSwitchType
/*356035*/              /*Scope*/ 102, /*->356138*/
/*356036*/                OPC_MoveChild1,
/*356037*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*356040*/                OPC_MoveChild0,
/*356041*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*356044*/                OPC_RecordMemRef,
/*356045*/                OPC_RecordNode, // #2 = 'ld' chained node
/*356046*/                OPC_CheckFoldableChainNode,
/*356047*/                OPC_RecordChild1, // #3 = $src3
/*356048*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*356050*/                OPC_CheckPredicate, 9, // Predicate_load
/*356052*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->356095
/*356055*/                  OPC_MoveParent,
/*356056*/                  OPC_MoveParent,
/*356057*/                  OPC_RecordChild2, // #4 = $src1
/*356058*/                  OPC_MoveParent,
/*356059*/                  OPC_MoveChild2,
/*356060*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356063*/                  OPC_MoveChild0,
/*356064*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356067*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356069*/                  OPC_CheckType, MVT::v4i32,
/*356071*/                  OPC_MoveParent,
/*356072*/                  OPC_MoveParent,
/*356073*/                  OPC_CheckType, MVT::v4f32,
/*356075*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356077*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356080*/                  OPC_EmitMergeInputChains1_2,
/*356081*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUBADD231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356095*/                /*SwitchType*/ 40, MVT::f64,// ->356137
/*356097*/                  OPC_MoveParent,
/*356098*/                  OPC_MoveParent,
/*356099*/                  OPC_RecordChild2, // #4 = $src1
/*356100*/                  OPC_MoveParent,
/*356101*/                  OPC_MoveChild2,
/*356102*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356105*/                  OPC_MoveChild0,
/*356106*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356109*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356111*/                  OPC_CheckType, MVT::v8i32,
/*356113*/                  OPC_MoveParent,
/*356114*/                  OPC_MoveParent,
/*356115*/                  OPC_CheckType, MVT::v4f64,
/*356117*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356119*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356122*/                  OPC_EmitMergeInputChains1_2,
/*356123*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUBADD231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356137*/                0, // EndSwitchType
/*356138*/              0, /*End of Scope*/
/*356139*/            /*Scope*/ 104, /*->356244*/
/*356140*/              OPC_MoveChild0,
/*356141*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*356144*/              OPC_MoveChild0,
/*356145*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*356148*/              OPC_RecordMemRef,
/*356149*/              OPC_RecordNode, // #1 = 'ld' chained node
/*356150*/              OPC_CheckFoldableChainNode,
/*356151*/              OPC_RecordChild1, // #2 = $src3
/*356152*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*356154*/              OPC_CheckPredicate, 9, // Predicate_load
/*356156*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->356200
/*356159*/                OPC_MoveParent,
/*356160*/                OPC_MoveParent,
/*356161*/                OPC_RecordChild1, // #3 = $src1
/*356162*/                OPC_RecordChild2, // #4 = $src2
/*356163*/                OPC_MoveParent,
/*356164*/                OPC_MoveChild2,
/*356165*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356168*/                OPC_MoveChild0,
/*356169*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356172*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356174*/                OPC_CheckType, MVT::v4i32,
/*356176*/                OPC_MoveParent,
/*356177*/                OPC_MoveParent,
/*356178*/                OPC_CheckType, MVT::v4f32,
/*356180*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356182*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356185*/                OPC_EmitMergeInputChains1_1,
/*356186*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUBADD132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356200*/              /*SwitchType*/ 41, MVT::f64,// ->356243
/*356202*/                OPC_MoveParent,
/*356203*/                OPC_MoveParent,
/*356204*/                OPC_RecordChild1, // #3 = $src1
/*356205*/                OPC_RecordChild2, // #4 = $src2
/*356206*/                OPC_MoveParent,
/*356207*/                OPC_MoveChild2,
/*356208*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356211*/                OPC_MoveChild0,
/*356212*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356215*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356217*/                OPC_CheckType, MVT::v8i32,
/*356219*/                OPC_MoveParent,
/*356220*/                OPC_MoveParent,
/*356221*/                OPC_CheckType, MVT::v4f64,
/*356223*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356225*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356228*/                OPC_EmitMergeInputChains1_1,
/*356229*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUBADD132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356243*/              0, // EndSwitchType
/*356244*/            /*Scope*/ 43|128,1/*171*/, /*->356417*/
/*356246*/              OPC_RecordChild0, // #1 = $src2
/*356247*/              OPC_Scope, 85, /*->356334*/ // 2 children in Scope
/*356249*/                OPC_RecordChild1, // #2 = $src1
/*356250*/                OPC_MoveChild2,
/*356251*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*356254*/                OPC_RecordMemRef,
/*356255*/                OPC_RecordNode, // #3 = 'ld' chained node
/*356256*/                OPC_CheckFoldableChainNode,
/*356257*/                OPC_RecordChild1, // #4 = $src3
/*356258*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*356260*/                OPC_CheckPredicate, 9, // Predicate_load
/*356262*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*356264*/                OPC_MoveParent,
/*356265*/                OPC_MoveParent,
/*356266*/                OPC_MoveChild2,
/*356267*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356270*/                OPC_MoveChild0,
/*356271*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356274*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356276*/                OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->356305
/*356279*/                  OPC_MoveParent,
/*356280*/                  OPC_MoveParent,
/*356281*/                  OPC_CheckType, MVT::v4f32,
/*356283*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356285*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356288*/                  OPC_EmitMergeInputChains, 1, 3, 
/*356291*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUBADD213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356305*/                /*SwitchType*/ 26, MVT::v8i32,// ->356333
/*356307*/                  OPC_MoveParent,
/*356308*/                  OPC_MoveParent,
/*356309*/                  OPC_CheckType, MVT::v4f64,
/*356311*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356313*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356316*/                  OPC_EmitMergeInputChains, 1, 3, 
/*356319*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUBADD213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356333*/                0, // EndSwitchType
/*356334*/              /*Scope*/ 81, /*->356416*/
/*356335*/                OPC_MoveChild1,
/*356336*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*356339*/                OPC_RecordMemRef,
/*356340*/                OPC_RecordNode, // #2 = 'ld' chained node
/*356341*/                OPC_CheckFoldableChainNode,
/*356342*/                OPC_RecordChild1, // #3 = $src3
/*356343*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*356345*/                OPC_CheckPredicate, 9, // Predicate_load
/*356347*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*356349*/                OPC_MoveParent,
/*356350*/                OPC_RecordChild2, // #4 = $src1
/*356351*/                OPC_MoveParent,
/*356352*/                OPC_MoveChild2,
/*356353*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356356*/                OPC_MoveChild0,
/*356357*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356360*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356362*/                OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->356389
/*356365*/                  OPC_MoveParent,
/*356366*/                  OPC_MoveParent,
/*356367*/                  OPC_CheckType, MVT::v4f32,
/*356369*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356371*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356374*/                  OPC_EmitMergeInputChains1_2,
/*356375*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUBADD231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356389*/                /*SwitchType*/ 24, MVT::v8i32,// ->356415
/*356391*/                  OPC_MoveParent,
/*356392*/                  OPC_MoveParent,
/*356393*/                  OPC_CheckType, MVT::v4f64,
/*356395*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356397*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356400*/                  OPC_EmitMergeInputChains1_2,
/*356401*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUBADD231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356415*/                0, // EndSwitchType
/*356416*/              0, /*End of Scope*/
/*356417*/            /*Scope*/ 82, /*->356500*/
/*356418*/              OPC_MoveChild0,
/*356419*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*356422*/              OPC_RecordMemRef,
/*356423*/              OPC_RecordNode, // #1 = 'ld' chained node
/*356424*/              OPC_CheckFoldableChainNode,
/*356425*/              OPC_RecordChild1, // #2 = $src3
/*356426*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*356428*/              OPC_CheckPredicate, 9, // Predicate_load
/*356430*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*356432*/              OPC_MoveParent,
/*356433*/              OPC_RecordChild1, // #3 = $src1
/*356434*/              OPC_RecordChild2, // #4 = $src2
/*356435*/              OPC_MoveParent,
/*356436*/              OPC_MoveChild2,
/*356437*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356440*/              OPC_MoveChild0,
/*356441*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356444*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356446*/              OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->356473
/*356449*/                OPC_MoveParent,
/*356450*/                OPC_MoveParent,
/*356451*/                OPC_CheckType, MVT::v4f32,
/*356453*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356455*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356458*/                OPC_EmitMergeInputChains1_1,
/*356459*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUBADD132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356473*/              /*SwitchType*/ 24, MVT::v8i32,// ->356499
/*356475*/                OPC_MoveParent,
/*356476*/                OPC_MoveParent,
/*356477*/                OPC_CheckType, MVT::v4f64,
/*356479*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356481*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356484*/                OPC_EmitMergeInputChains1_1,
/*356485*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUBADD132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356499*/              0, // EndSwitchType
/*356500*/            0, /*End of Scope*/
/*356501*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(X86ISD::FNMADD),// ->357082
/*356505*/            OPC_Scope, 84|128,1/*212*/, /*->356720*/ // 4 children in Scope
/*356508*/              OPC_RecordChild0, // #1 = $src2
/*356509*/              OPC_Scope, 105, /*->356616*/ // 2 children in Scope
/*356511*/                OPC_RecordChild1, // #2 = $src1
/*356512*/                OPC_MoveChild2,
/*356513*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*356516*/                OPC_MoveChild0,
/*356517*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*356520*/                OPC_RecordMemRef,
/*356521*/                OPC_RecordNode, // #3 = 'ld' chained node
/*356522*/                OPC_CheckFoldableChainNode,
/*356523*/                OPC_RecordChild1, // #4 = $src3
/*356524*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*356526*/                OPC_CheckPredicate, 9, // Predicate_load
/*356528*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->356572
/*356531*/                  OPC_MoveParent,
/*356532*/                  OPC_MoveParent,
/*356533*/                  OPC_MoveParent,
/*356534*/                  OPC_MoveChild2,
/*356535*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356538*/                  OPC_MoveChild0,
/*356539*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356542*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356544*/                  OPC_CheckType, MVT::v4i32,
/*356546*/                  OPC_MoveParent,
/*356547*/                  OPC_MoveParent,
/*356548*/                  OPC_CheckType, MVT::v4f32,
/*356550*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356552*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356555*/                  OPC_EmitMergeInputChains, 1, 3, 
/*356558*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMADD213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356572*/                /*SwitchType*/ 41, MVT::f64,// ->356615
/*356574*/                  OPC_MoveParent,
/*356575*/                  OPC_MoveParent,
/*356576*/                  OPC_MoveParent,
/*356577*/                  OPC_MoveChild2,
/*356578*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356581*/                  OPC_MoveChild0,
/*356582*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356585*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356587*/                  OPC_CheckType, MVT::v8i32,
/*356589*/                  OPC_MoveParent,
/*356590*/                  OPC_MoveParent,
/*356591*/                  OPC_CheckType, MVT::v4f64,
/*356593*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356595*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356598*/                  OPC_EmitMergeInputChains, 1, 3, 
/*356601*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMADD213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356615*/                0, // EndSwitchType
/*356616*/              /*Scope*/ 102, /*->356719*/
/*356617*/                OPC_MoveChild1,
/*356618*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*356621*/                OPC_MoveChild0,
/*356622*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*356625*/                OPC_RecordMemRef,
/*356626*/                OPC_RecordNode, // #2 = 'ld' chained node
/*356627*/                OPC_CheckFoldableChainNode,
/*356628*/                OPC_RecordChild1, // #3 = $src3
/*356629*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*356631*/                OPC_CheckPredicate, 9, // Predicate_load
/*356633*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->356676
/*356636*/                  OPC_MoveParent,
/*356637*/                  OPC_MoveParent,
/*356638*/                  OPC_RecordChild2, // #4 = $src1
/*356639*/                  OPC_MoveParent,
/*356640*/                  OPC_MoveChild2,
/*356641*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356644*/                  OPC_MoveChild0,
/*356645*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356648*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356650*/                  OPC_CheckType, MVT::v4i32,
/*356652*/                  OPC_MoveParent,
/*356653*/                  OPC_MoveParent,
/*356654*/                  OPC_CheckType, MVT::v4f32,
/*356656*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356658*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356661*/                  OPC_EmitMergeInputChains1_2,
/*356662*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMADD231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356676*/                /*SwitchType*/ 40, MVT::f64,// ->356718
/*356678*/                  OPC_MoveParent,
/*356679*/                  OPC_MoveParent,
/*356680*/                  OPC_RecordChild2, // #4 = $src1
/*356681*/                  OPC_MoveParent,
/*356682*/                  OPC_MoveChild2,
/*356683*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356686*/                  OPC_MoveChild0,
/*356687*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356690*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356692*/                  OPC_CheckType, MVT::v8i32,
/*356694*/                  OPC_MoveParent,
/*356695*/                  OPC_MoveParent,
/*356696*/                  OPC_CheckType, MVT::v4f64,
/*356698*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356700*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356703*/                  OPC_EmitMergeInputChains1_2,
/*356704*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMADD231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356718*/                0, // EndSwitchType
/*356719*/              0, /*End of Scope*/
/*356720*/            /*Scope*/ 104, /*->356825*/
/*356721*/              OPC_MoveChild0,
/*356722*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*356725*/              OPC_MoveChild0,
/*356726*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*356729*/              OPC_RecordMemRef,
/*356730*/              OPC_RecordNode, // #1 = 'ld' chained node
/*356731*/              OPC_CheckFoldableChainNode,
/*356732*/              OPC_RecordChild1, // #2 = $src3
/*356733*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*356735*/              OPC_CheckPredicate, 9, // Predicate_load
/*356737*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->356781
/*356740*/                OPC_MoveParent,
/*356741*/                OPC_MoveParent,
/*356742*/                OPC_RecordChild1, // #3 = $src1
/*356743*/                OPC_RecordChild2, // #4 = $src2
/*356744*/                OPC_MoveParent,
/*356745*/                OPC_MoveChild2,
/*356746*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356749*/                OPC_MoveChild0,
/*356750*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356753*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356755*/                OPC_CheckType, MVT::v4i32,
/*356757*/                OPC_MoveParent,
/*356758*/                OPC_MoveParent,
/*356759*/                OPC_CheckType, MVT::v4f32,
/*356761*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356763*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356766*/                OPC_EmitMergeInputChains1_1,
/*356767*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMADD132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356781*/              /*SwitchType*/ 41, MVT::f64,// ->356824
/*356783*/                OPC_MoveParent,
/*356784*/                OPC_MoveParent,
/*356785*/                OPC_RecordChild1, // #3 = $src1
/*356786*/                OPC_RecordChild2, // #4 = $src2
/*356787*/                OPC_MoveParent,
/*356788*/                OPC_MoveChild2,
/*356789*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356792*/                OPC_MoveChild0,
/*356793*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356796*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356798*/                OPC_CheckType, MVT::v8i32,
/*356800*/                OPC_MoveParent,
/*356801*/                OPC_MoveParent,
/*356802*/                OPC_CheckType, MVT::v4f64,
/*356804*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356806*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356809*/                OPC_EmitMergeInputChains1_1,
/*356810*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMADD132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356824*/              0, // EndSwitchType
/*356825*/            /*Scope*/ 43|128,1/*171*/, /*->356998*/
/*356827*/              OPC_RecordChild0, // #1 = $src2
/*356828*/              OPC_Scope, 85, /*->356915*/ // 2 children in Scope
/*356830*/                OPC_RecordChild1, // #2 = $src1
/*356831*/                OPC_MoveChild2,
/*356832*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*356835*/                OPC_RecordMemRef,
/*356836*/                OPC_RecordNode, // #3 = 'ld' chained node
/*356837*/                OPC_CheckFoldableChainNode,
/*356838*/                OPC_RecordChild1, // #4 = $src3
/*356839*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*356841*/                OPC_CheckPredicate, 9, // Predicate_load
/*356843*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*356845*/                OPC_MoveParent,
/*356846*/                OPC_MoveParent,
/*356847*/                OPC_MoveChild2,
/*356848*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356851*/                OPC_MoveChild0,
/*356852*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356855*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356857*/                OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->356886
/*356860*/                  OPC_MoveParent,
/*356861*/                  OPC_MoveParent,
/*356862*/                  OPC_CheckType, MVT::v4f32,
/*356864*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356866*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356869*/                  OPC_EmitMergeInputChains, 1, 3, 
/*356872*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMADD213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356886*/                /*SwitchType*/ 26, MVT::v8i32,// ->356914
/*356888*/                  OPC_MoveParent,
/*356889*/                  OPC_MoveParent,
/*356890*/                  OPC_CheckType, MVT::v4f64,
/*356892*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356894*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356897*/                  OPC_EmitMergeInputChains, 1, 3, 
/*356900*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMADD213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356914*/                0, // EndSwitchType
/*356915*/              /*Scope*/ 81, /*->356997*/
/*356916*/                OPC_MoveChild1,
/*356917*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*356920*/                OPC_RecordMemRef,
/*356921*/                OPC_RecordNode, // #2 = 'ld' chained node
/*356922*/                OPC_CheckFoldableChainNode,
/*356923*/                OPC_RecordChild1, // #3 = $src3
/*356924*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*356926*/                OPC_CheckPredicate, 9, // Predicate_load
/*356928*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*356930*/                OPC_MoveParent,
/*356931*/                OPC_RecordChild2, // #4 = $src1
/*356932*/                OPC_MoveParent,
/*356933*/                OPC_MoveChild2,
/*356934*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*356937*/                OPC_MoveChild0,
/*356938*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*356941*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*356943*/                OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->356970
/*356946*/                  OPC_MoveParent,
/*356947*/                  OPC_MoveParent,
/*356948*/                  OPC_CheckType, MVT::v4f32,
/*356950*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356952*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356955*/                  OPC_EmitMergeInputChains1_2,
/*356956*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMADD231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356970*/                /*SwitchType*/ 24, MVT::v8i32,// ->356996
/*356972*/                  OPC_MoveParent,
/*356973*/                  OPC_MoveParent,
/*356974*/                  OPC_CheckType, MVT::v4f64,
/*356976*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356978*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*356981*/                  OPC_EmitMergeInputChains1_2,
/*356982*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMADD231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*356996*/                0, // EndSwitchType
/*356997*/              0, /*End of Scope*/
/*356998*/            /*Scope*/ 82, /*->357081*/
/*356999*/              OPC_MoveChild0,
/*357000*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*357003*/              OPC_RecordMemRef,
/*357004*/              OPC_RecordNode, // #1 = 'ld' chained node
/*357005*/              OPC_CheckFoldableChainNode,
/*357006*/              OPC_RecordChild1, // #2 = $src3
/*357007*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357009*/              OPC_CheckPredicate, 9, // Predicate_load
/*357011*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*357013*/              OPC_MoveParent,
/*357014*/              OPC_RecordChild1, // #3 = $src1
/*357015*/              OPC_RecordChild2, // #4 = $src2
/*357016*/              OPC_MoveParent,
/*357017*/              OPC_MoveChild2,
/*357018*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357021*/              OPC_MoveChild0,
/*357022*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357025*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357027*/              OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->357054
/*357030*/                OPC_MoveParent,
/*357031*/                OPC_MoveParent,
/*357032*/                OPC_CheckType, MVT::v4f32,
/*357034*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357036*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357039*/                OPC_EmitMergeInputChains1_1,
/*357040*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMADD132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357054*/              /*SwitchType*/ 24, MVT::v8i32,// ->357080
/*357056*/                OPC_MoveParent,
/*357057*/                OPC_MoveParent,
/*357058*/                OPC_CheckType, MVT::v4f64,
/*357060*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357062*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357065*/                OPC_EmitMergeInputChains1_1,
/*357066*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMADD132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357080*/              0, // EndSwitchType
/*357081*/            0, /*End of Scope*/
/*357082*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(X86ISD::FNMSUB),// ->357663
/*357086*/            OPC_Scope, 84|128,1/*212*/, /*->357301*/ // 4 children in Scope
/*357089*/              OPC_RecordChild0, // #1 = $src2
/*357090*/              OPC_Scope, 105, /*->357197*/ // 2 children in Scope
/*357092*/                OPC_RecordChild1, // #2 = $src1
/*357093*/                OPC_MoveChild2,
/*357094*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*357097*/                OPC_MoveChild0,
/*357098*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*357101*/                OPC_RecordMemRef,
/*357102*/                OPC_RecordNode, // #3 = 'ld' chained node
/*357103*/                OPC_CheckFoldableChainNode,
/*357104*/                OPC_RecordChild1, // #4 = $src3
/*357105*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357107*/                OPC_CheckPredicate, 9, // Predicate_load
/*357109*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->357153
/*357112*/                  OPC_MoveParent,
/*357113*/                  OPC_MoveParent,
/*357114*/                  OPC_MoveParent,
/*357115*/                  OPC_MoveChild2,
/*357116*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357119*/                  OPC_MoveChild0,
/*357120*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357123*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357125*/                  OPC_CheckType, MVT::v4i32,
/*357127*/                  OPC_MoveParent,
/*357128*/                  OPC_MoveParent,
/*357129*/                  OPC_CheckType, MVT::v4f32,
/*357131*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357133*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357136*/                  OPC_EmitMergeInputChains, 1, 3, 
/*357139*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMSUB213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357153*/                /*SwitchType*/ 41, MVT::f64,// ->357196
/*357155*/                  OPC_MoveParent,
/*357156*/                  OPC_MoveParent,
/*357157*/                  OPC_MoveParent,
/*357158*/                  OPC_MoveChild2,
/*357159*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357162*/                  OPC_MoveChild0,
/*357163*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357166*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357168*/                  OPC_CheckType, MVT::v8i32,
/*357170*/                  OPC_MoveParent,
/*357171*/                  OPC_MoveParent,
/*357172*/                  OPC_CheckType, MVT::v4f64,
/*357174*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357176*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357179*/                  OPC_EmitMergeInputChains, 1, 3, 
/*357182*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMSUB213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357196*/                0, // EndSwitchType
/*357197*/              /*Scope*/ 102, /*->357300*/
/*357198*/                OPC_MoveChild1,
/*357199*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*357202*/                OPC_MoveChild0,
/*357203*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*357206*/                OPC_RecordMemRef,
/*357207*/                OPC_RecordNode, // #2 = 'ld' chained node
/*357208*/                OPC_CheckFoldableChainNode,
/*357209*/                OPC_RecordChild1, // #3 = $src3
/*357210*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357212*/                OPC_CheckPredicate, 9, // Predicate_load
/*357214*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->357257
/*357217*/                  OPC_MoveParent,
/*357218*/                  OPC_MoveParent,
/*357219*/                  OPC_RecordChild2, // #4 = $src1
/*357220*/                  OPC_MoveParent,
/*357221*/                  OPC_MoveChild2,
/*357222*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357225*/                  OPC_MoveChild0,
/*357226*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357229*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357231*/                  OPC_CheckType, MVT::v4i32,
/*357233*/                  OPC_MoveParent,
/*357234*/                  OPC_MoveParent,
/*357235*/                  OPC_CheckType, MVT::v4f32,
/*357237*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357239*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357242*/                  OPC_EmitMergeInputChains1_2,
/*357243*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMSUB231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357257*/                /*SwitchType*/ 40, MVT::f64,// ->357299
/*357259*/                  OPC_MoveParent,
/*357260*/                  OPC_MoveParent,
/*357261*/                  OPC_RecordChild2, // #4 = $src1
/*357262*/                  OPC_MoveParent,
/*357263*/                  OPC_MoveChild2,
/*357264*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357267*/                  OPC_MoveChild0,
/*357268*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357271*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357273*/                  OPC_CheckType, MVT::v8i32,
/*357275*/                  OPC_MoveParent,
/*357276*/                  OPC_MoveParent,
/*357277*/                  OPC_CheckType, MVT::v4f64,
/*357279*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357281*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357284*/                  OPC_EmitMergeInputChains1_2,
/*357285*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMSUB231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357299*/                0, // EndSwitchType
/*357300*/              0, /*End of Scope*/
/*357301*/            /*Scope*/ 104, /*->357406*/
/*357302*/              OPC_MoveChild0,
/*357303*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*357306*/              OPC_MoveChild0,
/*357307*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*357310*/              OPC_RecordMemRef,
/*357311*/              OPC_RecordNode, // #1 = 'ld' chained node
/*357312*/              OPC_CheckFoldableChainNode,
/*357313*/              OPC_RecordChild1, // #2 = $src3
/*357314*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357316*/              OPC_CheckPredicate, 9, // Predicate_load
/*357318*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->357362
/*357321*/                OPC_MoveParent,
/*357322*/                OPC_MoveParent,
/*357323*/                OPC_RecordChild1, // #3 = $src1
/*357324*/                OPC_RecordChild2, // #4 = $src2
/*357325*/                OPC_MoveParent,
/*357326*/                OPC_MoveChild2,
/*357327*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357330*/                OPC_MoveChild0,
/*357331*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357334*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357336*/                OPC_CheckType, MVT::v4i32,
/*357338*/                OPC_MoveParent,
/*357339*/                OPC_MoveParent,
/*357340*/                OPC_CheckType, MVT::v4f32,
/*357342*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357344*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357347*/                OPC_EmitMergeInputChains1_1,
/*357348*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMSUB132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357362*/              /*SwitchType*/ 41, MVT::f64,// ->357405
/*357364*/                OPC_MoveParent,
/*357365*/                OPC_MoveParent,
/*357366*/                OPC_RecordChild1, // #3 = $src1
/*357367*/                OPC_RecordChild2, // #4 = $src2
/*357368*/                OPC_MoveParent,
/*357369*/                OPC_MoveChild2,
/*357370*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357373*/                OPC_MoveChild0,
/*357374*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357377*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357379*/                OPC_CheckType, MVT::v8i32,
/*357381*/                OPC_MoveParent,
/*357382*/                OPC_MoveParent,
/*357383*/                OPC_CheckType, MVT::v4f64,
/*357385*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357387*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357390*/                OPC_EmitMergeInputChains1_1,
/*357391*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMSUB132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357405*/              0, // EndSwitchType
/*357406*/            /*Scope*/ 43|128,1/*171*/, /*->357579*/
/*357408*/              OPC_RecordChild0, // #1 = $src2
/*357409*/              OPC_Scope, 85, /*->357496*/ // 2 children in Scope
/*357411*/                OPC_RecordChild1, // #2 = $src1
/*357412*/                OPC_MoveChild2,
/*357413*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*357416*/                OPC_RecordMemRef,
/*357417*/                OPC_RecordNode, // #3 = 'ld' chained node
/*357418*/                OPC_CheckFoldableChainNode,
/*357419*/                OPC_RecordChild1, // #4 = $src3
/*357420*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357422*/                OPC_CheckPredicate, 9, // Predicate_load
/*357424*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*357426*/                OPC_MoveParent,
/*357427*/                OPC_MoveParent,
/*357428*/                OPC_MoveChild2,
/*357429*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357432*/                OPC_MoveChild0,
/*357433*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357436*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357438*/                OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->357467
/*357441*/                  OPC_MoveParent,
/*357442*/                  OPC_MoveParent,
/*357443*/                  OPC_CheckType, MVT::v4f32,
/*357445*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357447*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357450*/                  OPC_EmitMergeInputChains, 1, 3, 
/*357453*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMSUB213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357467*/                /*SwitchType*/ 26, MVT::v8i32,// ->357495
/*357469*/                  OPC_MoveParent,
/*357470*/                  OPC_MoveParent,
/*357471*/                  OPC_CheckType, MVT::v4f64,
/*357473*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357475*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357478*/                  OPC_EmitMergeInputChains, 1, 3, 
/*357481*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMSUB213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357495*/                0, // EndSwitchType
/*357496*/              /*Scope*/ 81, /*->357578*/
/*357497*/                OPC_MoveChild1,
/*357498*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*357501*/                OPC_RecordMemRef,
/*357502*/                OPC_RecordNode, // #2 = 'ld' chained node
/*357503*/                OPC_CheckFoldableChainNode,
/*357504*/                OPC_RecordChild1, // #3 = $src3
/*357505*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357507*/                OPC_CheckPredicate, 9, // Predicate_load
/*357509*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*357511*/                OPC_MoveParent,
/*357512*/                OPC_RecordChild2, // #4 = $src1
/*357513*/                OPC_MoveParent,
/*357514*/                OPC_MoveChild2,
/*357515*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357518*/                OPC_MoveChild0,
/*357519*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357522*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357524*/                OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->357551
/*357527*/                  OPC_MoveParent,
/*357528*/                  OPC_MoveParent,
/*357529*/                  OPC_CheckType, MVT::v4f32,
/*357531*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357533*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357536*/                  OPC_EmitMergeInputChains1_2,
/*357537*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMSUB231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357551*/                /*SwitchType*/ 24, MVT::v8i32,// ->357577
/*357553*/                  OPC_MoveParent,
/*357554*/                  OPC_MoveParent,
/*357555*/                  OPC_CheckType, MVT::v4f64,
/*357557*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357559*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357562*/                  OPC_EmitMergeInputChains1_2,
/*357563*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMSUB231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357577*/                0, // EndSwitchType
/*357578*/              0, /*End of Scope*/
/*357579*/            /*Scope*/ 82, /*->357662*/
/*357580*/              OPC_MoveChild0,
/*357581*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*357584*/              OPC_RecordMemRef,
/*357585*/              OPC_RecordNode, // #1 = 'ld' chained node
/*357586*/              OPC_CheckFoldableChainNode,
/*357587*/              OPC_RecordChild1, // #2 = $src3
/*357588*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357590*/              OPC_CheckPredicate, 9, // Predicate_load
/*357592*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*357594*/              OPC_MoveParent,
/*357595*/              OPC_RecordChild1, // #3 = $src1
/*357596*/              OPC_RecordChild2, // #4 = $src2
/*357597*/              OPC_MoveParent,
/*357598*/              OPC_MoveChild2,
/*357599*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357602*/              OPC_MoveChild0,
/*357603*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357606*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357608*/              OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->357635
/*357611*/                OPC_MoveParent,
/*357612*/                OPC_MoveParent,
/*357613*/                OPC_CheckType, MVT::v4f32,
/*357615*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357617*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357620*/                OPC_EmitMergeInputChains1_1,
/*357621*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMSUB132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357635*/              /*SwitchType*/ 24, MVT::v8i32,// ->357661
/*357637*/                OPC_MoveParent,
/*357638*/                OPC_MoveParent,
/*357639*/                OPC_CheckType, MVT::v4f64,
/*357641*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357643*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*357646*/                OPC_EmitMergeInputChains1_1,
/*357647*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMSUB132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*357661*/              0, // EndSwitchType
/*357662*/            0, /*End of Scope*/
/*357663*/          /*SwitchOpcode*/ 106, TARGET_VAL(X86ISD::VFPROUND),// ->357772
/*357666*/            OPC_MoveChild0,
/*357667*/            OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(X86ISD::VBROADCAST),// ->357722
/*357671*/              OPC_MoveChild0,
/*357672*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*357675*/              OPC_RecordMemRef,
/*357676*/              OPC_RecordNode, // #1 = 'ld' chained node
/*357677*/              OPC_CheckFoldableChainNode,
/*357678*/              OPC_RecordChild1, // #2 = $src
/*357679*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357681*/              OPC_CheckPredicate, 9, // Predicate_load
/*357683*/              OPC_CheckType, MVT::f64,
/*357685*/              OPC_MoveParent,
/*357686*/              OPC_MoveParent,
/*357687*/              OPC_MoveParent,
/*357688*/              OPC_MoveChild2,
/*357689*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357692*/              OPC_MoveChild0,
/*357693*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357696*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357698*/              OPC_CheckType, MVT::v4i32,
/*357700*/              OPC_MoveParent,
/*357701*/              OPC_MoveParent,
/*357702*/              OPC_CheckType, MVT::v4f32,
/*357704*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357706*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*357709*/              OPC_EmitMergeInputChains1_1,
/*357710*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86vfpround:{ *:[v4f32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VCVTPD2PSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*357722*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->357771
/*357725*/              OPC_RecordMemRef,
/*357726*/              OPC_RecordNode, // #1 = 'ld' chained node
/*357727*/              OPC_CheckFoldableChainNode,
/*357728*/              OPC_RecordChild1, // #2 = $src
/*357729*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357731*/              OPC_CheckPredicate, 9, // Predicate_load
/*357733*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*357735*/              OPC_MoveParent,
/*357736*/              OPC_MoveParent,
/*357737*/              OPC_MoveChild2,
/*357738*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357741*/              OPC_MoveChild0,
/*357742*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357745*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357747*/              OPC_CheckType, MVT::v4i32,
/*357749*/              OPC_MoveParent,
/*357750*/              OPC_MoveParent,
/*357751*/              OPC_CheckType, MVT::v4f32,
/*357753*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357755*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*357758*/              OPC_EmitMergeInputChains1_1,
/*357759*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86vfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VCVTPD2PSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*357771*/            0, // EndSwitchOpcode
/*357772*/          /*SwitchOpcode*/ 106, TARGET_VAL(ISD::FP_ROUND),// ->357881
/*357775*/            OPC_MoveChild0,
/*357776*/            OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(X86ISD::VBROADCAST),// ->357831
/*357780*/              OPC_MoveChild0,
/*357781*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*357784*/              OPC_RecordMemRef,
/*357785*/              OPC_RecordNode, // #1 = 'ld' chained node
/*357786*/              OPC_CheckFoldableChainNode,
/*357787*/              OPC_RecordChild1, // #2 = $src
/*357788*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357790*/              OPC_CheckPredicate, 9, // Predicate_load
/*357792*/              OPC_CheckType, MVT::f64,
/*357794*/              OPC_MoveParent,
/*357795*/              OPC_MoveParent,
/*357796*/              OPC_MoveParent,
/*357797*/              OPC_MoveChild2,
/*357798*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357801*/              OPC_MoveChild0,
/*357802*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357805*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357807*/              OPC_CheckType, MVT::v4i32,
/*357809*/              OPC_MoveParent,
/*357810*/              OPC_MoveParent,
/*357811*/              OPC_CheckType, MVT::v4f32,
/*357813*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357815*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*357818*/              OPC_EmitMergeInputChains1_1,
/*357819*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fpround:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VCVTPD2PSZ256rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*357831*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->357880
/*357834*/              OPC_RecordMemRef,
/*357835*/              OPC_RecordNode, // #1 = 'ld' chained node
/*357836*/              OPC_CheckFoldableChainNode,
/*357837*/              OPC_RecordChild1, // #2 = $src
/*357838*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357840*/              OPC_CheckPredicate, 9, // Predicate_load
/*357842*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*357844*/              OPC_MoveParent,
/*357845*/              OPC_MoveParent,
/*357846*/              OPC_MoveChild2,
/*357847*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357850*/              OPC_MoveChild0,
/*357851*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357854*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357856*/              OPC_CheckType, MVT::v4i32,
/*357858*/              OPC_MoveParent,
/*357859*/              OPC_MoveParent,
/*357860*/              OPC_CheckType, MVT::v4f32,
/*357862*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357864*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*357867*/              OPC_EmitMergeInputChains1_1,
/*357868*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VCVTPD2PSZ256rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*357880*/            0, // EndSwitchOpcode
/*357881*/          /*SwitchOpcode*/ 106, TARGET_VAL(ISD::FP_EXTEND),// ->357990
/*357884*/            OPC_MoveChild0,
/*357885*/            OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(X86ISD::VBROADCAST),// ->357940
/*357889*/              OPC_MoveChild0,
/*357890*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*357893*/              OPC_RecordMemRef,
/*357894*/              OPC_RecordNode, // #1 = 'ld' chained node
/*357895*/              OPC_CheckFoldableChainNode,
/*357896*/              OPC_RecordChild1, // #2 = $src
/*357897*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357899*/              OPC_CheckPredicate, 9, // Predicate_load
/*357901*/              OPC_CheckType, MVT::f32,
/*357903*/              OPC_MoveParent,
/*357904*/              OPC_MoveParent,
/*357905*/              OPC_MoveParent,
/*357906*/              OPC_MoveChild2,
/*357907*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357910*/              OPC_MoveChild0,
/*357911*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357914*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357916*/              OPC_CheckType, MVT::v8i32,
/*357918*/              OPC_MoveParent,
/*357919*/              OPC_MoveParent,
/*357920*/              OPC_CheckType, MVT::v4f64,
/*357922*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357924*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*357927*/              OPC_EmitMergeInputChains1_1,
/*357928*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fpextend:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VCVTPS2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*357940*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->357989
/*357943*/              OPC_RecordMemRef,
/*357944*/              OPC_RecordNode, // #1 = 'ld' chained node
/*357945*/              OPC_CheckFoldableChainNode,
/*357946*/              OPC_RecordChild1, // #2 = $src
/*357947*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*357949*/              OPC_CheckPredicate, 9, // Predicate_load
/*357951*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*357953*/              OPC_MoveParent,
/*357954*/              OPC_MoveParent,
/*357955*/              OPC_MoveChild2,
/*357956*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*357959*/              OPC_MoveChild0,
/*357960*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*357963*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*357965*/              OPC_CheckType, MVT::v8i32,
/*357967*/              OPC_MoveParent,
/*357968*/              OPC_MoveParent,
/*357969*/              OPC_CheckType, MVT::v4f64,
/*357971*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357973*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*357976*/              OPC_EmitMergeInputChains1_1,
/*357977*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fpextend:{ *:[v4f64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VCVTPS2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*357989*/            0, // EndSwitchOpcode
/*357990*/          /*SwitchOpcode*/ 62|128,2/*318*/, TARGET_VAL(ISD::SINT_TO_FP),// ->358312
/*357994*/            OPC_MoveChild0,
/*357995*/            OPC_SwitchOpcode /*3 cases */, 81, TARGET_VAL(ISD::BITCAST),// ->358080
/*357999*/              OPC_MoveChild0,
/*358000*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*358003*/              OPC_RecordMemRef,
/*358004*/              OPC_RecordNode, // #1 = 'ld' chained node
/*358005*/              OPC_CheckFoldableChainNode,
/*358006*/              OPC_RecordChild1, // #2 = $src
/*358007*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358009*/              OPC_CheckPredicate, 9, // Predicate_load
/*358011*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*358013*/              OPC_CheckType, MVT::v2i64,
/*358015*/              OPC_MoveParent,
/*358016*/              OPC_CheckType, MVT::v4i32,
/*358018*/              OPC_MoveParent,
/*358019*/              OPC_MoveParent,
/*358020*/              OPC_MoveChild2,
/*358021*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358024*/              OPC_MoveChild0,
/*358025*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358028*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358030*/              OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->358055
/*358033*/                OPC_MoveParent,
/*358034*/                OPC_MoveParent,
/*358035*/                OPC_CheckType, MVT::v4f64,
/*358037*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*358039*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358042*/                OPC_EmitMergeInputChains1_1,
/*358043*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTDQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358055*/              /*SwitchType*/ 22, MVT::v4i32,// ->358079
/*358057*/                OPC_MoveParent,
/*358058*/                OPC_MoveParent,
/*358059*/                OPC_CheckType, MVT::v4f32,
/*358061*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*358063*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358066*/                OPC_EmitMergeInputChains1_1,
/*358067*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTDQ2PSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358079*/              0, // EndSwitchType
/*358080*/            /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST),// ->358234
/*358084*/              OPC_MoveChild0,
/*358085*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*358088*/              OPC_RecordMemRef,
/*358089*/              OPC_RecordNode, // #1 = 'ld' chained node
/*358090*/              OPC_CheckFoldableChainNode,
/*358091*/              OPC_RecordChild1, // #2 = $src
/*358092*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358094*/              OPC_SwitchType /*2 cases */, 67, MVT::i32,// ->358164
/*358097*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*358099*/                OPC_MoveParent,
/*358100*/                OPC_CheckType, MVT::v4i32,
/*358102*/                OPC_MoveParent,
/*358103*/                OPC_MoveParent,
/*358104*/                OPC_MoveChild2,
/*358105*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358108*/                OPC_MoveChild0,
/*358109*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358112*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358114*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->358139
/*358117*/                  OPC_MoveParent,
/*358118*/                  OPC_MoveParent,
/*358119*/                  OPC_CheckType, MVT::v4f64,
/*358121*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*358123*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358126*/                  OPC_EmitMergeInputChains1_1,
/*358127*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTDQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358139*/                /*SwitchType*/ 22, MVT::v4i32,// ->358163
/*358141*/                  OPC_MoveParent,
/*358142*/                  OPC_MoveParent,
/*358143*/                  OPC_CheckType, MVT::v4f32,
/*358145*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*358147*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358150*/                  OPC_EmitMergeInputChains1_1,
/*358151*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTDQ2PSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358163*/                0, // EndSwitchType
/*358164*/              /*SwitchType*/ 67, MVT::i64,// ->358233
/*358166*/                OPC_CheckPredicate, 9, // Predicate_load
/*358168*/                OPC_MoveParent,
/*358169*/                OPC_CheckType, MVT::v4i64,
/*358171*/                OPC_MoveParent,
/*358172*/                OPC_MoveParent,
/*358173*/                OPC_MoveChild2,
/*358174*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358177*/                OPC_MoveChild0,
/*358178*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358181*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358183*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->358208
/*358186*/                  OPC_MoveParent,
/*358187*/                  OPC_MoveParent,
/*358188*/                  OPC_CheckType, MVT::v4f64,
/*358190*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358192*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358195*/                  OPC_EmitMergeInputChains1_1,
/*358196*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTQQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358208*/                /*SwitchType*/ 22, MVT::v4i32,// ->358232
/*358210*/                  OPC_MoveParent,
/*358211*/                  OPC_MoveParent,
/*358212*/                  OPC_CheckType, MVT::v4f32,
/*358214*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358216*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358219*/                  OPC_EmitMergeInputChains1_1,
/*358220*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTQQ2PSZ256rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358232*/                0, // EndSwitchType
/*358233*/              0, // EndSwitchType
/*358234*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->358311
/*358237*/              OPC_RecordMemRef,
/*358238*/              OPC_RecordNode, // #1 = 'ld' chained node
/*358239*/              OPC_CheckFoldableChainNode,
/*358240*/              OPC_RecordChild1, // #2 = $src
/*358241*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358243*/              OPC_CheckPredicate, 9, // Predicate_load
/*358245*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*358247*/              OPC_CheckType, MVT::v4i64,
/*358249*/              OPC_MoveParent,
/*358250*/              OPC_MoveParent,
/*358251*/              OPC_MoveChild2,
/*358252*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358255*/              OPC_MoveChild0,
/*358256*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358259*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358261*/              OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->358286
/*358264*/                OPC_MoveParent,
/*358265*/                OPC_MoveParent,
/*358266*/                OPC_CheckType, MVT::v4f64,
/*358268*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358270*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358273*/                OPC_EmitMergeInputChains1_1,
/*358274*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTQQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358286*/              /*SwitchType*/ 22, MVT::v4i32,// ->358310
/*358288*/                OPC_MoveParent,
/*358289*/                OPC_MoveParent,
/*358290*/                OPC_CheckType, MVT::v4f32,
/*358292*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358294*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358297*/                OPC_EmitMergeInputChains1_1,
/*358298*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTQQ2PSZ256rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358310*/              0, // EndSwitchType
/*358311*/            0, // EndSwitchOpcode
/*358312*/          /*SwitchOpcode*/ 62|128,2/*318*/, TARGET_VAL(ISD::UINT_TO_FP),// ->358634
/*358316*/            OPC_MoveChild0,
/*358317*/            OPC_SwitchOpcode /*3 cases */, 81, TARGET_VAL(ISD::BITCAST),// ->358402
/*358321*/              OPC_MoveChild0,
/*358322*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*358325*/              OPC_RecordMemRef,
/*358326*/              OPC_RecordNode, // #1 = 'ld' chained node
/*358327*/              OPC_CheckFoldableChainNode,
/*358328*/              OPC_RecordChild1, // #2 = $src
/*358329*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358331*/              OPC_CheckPredicate, 9, // Predicate_load
/*358333*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*358335*/              OPC_CheckType, MVT::v2i64,
/*358337*/              OPC_MoveParent,
/*358338*/              OPC_CheckType, MVT::v4i32,
/*358340*/              OPC_MoveParent,
/*358341*/              OPC_MoveParent,
/*358342*/              OPC_MoveChild2,
/*358343*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358346*/              OPC_MoveChild0,
/*358347*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358350*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358352*/              OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->358377
/*358355*/                OPC_MoveParent,
/*358356*/                OPC_MoveParent,
/*358357*/                OPC_CheckType, MVT::v4f64,
/*358359*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*358361*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358364*/                OPC_EmitMergeInputChains1_1,
/*358365*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTUDQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358377*/              /*SwitchType*/ 22, MVT::v4i32,// ->358401
/*358379*/                OPC_MoveParent,
/*358380*/                OPC_MoveParent,
/*358381*/                OPC_CheckType, MVT::v4f32,
/*358383*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*358385*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358388*/                OPC_EmitMergeInputChains1_1,
/*358389*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTUDQ2PSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358401*/              0, // EndSwitchType
/*358402*/            /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST),// ->358556
/*358406*/              OPC_MoveChild0,
/*358407*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*358410*/              OPC_RecordMemRef,
/*358411*/              OPC_RecordNode, // #1 = 'ld' chained node
/*358412*/              OPC_CheckFoldableChainNode,
/*358413*/              OPC_RecordChild1, // #2 = $src
/*358414*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358416*/              OPC_SwitchType /*2 cases */, 67, MVT::i32,// ->358486
/*358419*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*358421*/                OPC_MoveParent,
/*358422*/                OPC_CheckType, MVT::v4i32,
/*358424*/                OPC_MoveParent,
/*358425*/                OPC_MoveParent,
/*358426*/                OPC_MoveChild2,
/*358427*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358430*/                OPC_MoveChild0,
/*358431*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358434*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358436*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->358461
/*358439*/                  OPC_MoveParent,
/*358440*/                  OPC_MoveParent,
/*358441*/                  OPC_CheckType, MVT::v4f64,
/*358443*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*358445*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358448*/                  OPC_EmitMergeInputChains1_1,
/*358449*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTUDQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358461*/                /*SwitchType*/ 22, MVT::v4i32,// ->358485
/*358463*/                  OPC_MoveParent,
/*358464*/                  OPC_MoveParent,
/*358465*/                  OPC_CheckType, MVT::v4f32,
/*358467*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*358469*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358472*/                  OPC_EmitMergeInputChains1_1,
/*358473*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTUDQ2PSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358485*/                0, // EndSwitchType
/*358486*/              /*SwitchType*/ 67, MVT::i64,// ->358555
/*358488*/                OPC_CheckPredicate, 9, // Predicate_load
/*358490*/                OPC_MoveParent,
/*358491*/                OPC_CheckType, MVT::v4i64,
/*358493*/                OPC_MoveParent,
/*358494*/                OPC_MoveParent,
/*358495*/                OPC_MoveChild2,
/*358496*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358499*/                OPC_MoveChild0,
/*358500*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358503*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358505*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->358530
/*358508*/                  OPC_MoveParent,
/*358509*/                  OPC_MoveParent,
/*358510*/                  OPC_CheckType, MVT::v4f64,
/*358512*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358514*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358517*/                  OPC_EmitMergeInputChains1_1,
/*358518*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTUQQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358530*/                /*SwitchType*/ 22, MVT::v4i32,// ->358554
/*358532*/                  OPC_MoveParent,
/*358533*/                  OPC_MoveParent,
/*358534*/                  OPC_CheckType, MVT::v4f32,
/*358536*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358538*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358541*/                  OPC_EmitMergeInputChains1_1,
/*358542*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTUQQ2PSZ256rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358554*/                0, // EndSwitchType
/*358555*/              0, // EndSwitchType
/*358556*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->358633
/*358559*/              OPC_RecordMemRef,
/*358560*/              OPC_RecordNode, // #1 = 'ld' chained node
/*358561*/              OPC_CheckFoldableChainNode,
/*358562*/              OPC_RecordChild1, // #2 = $src
/*358563*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358565*/              OPC_CheckPredicate, 9, // Predicate_load
/*358567*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*358569*/              OPC_CheckType, MVT::v4i64,
/*358571*/              OPC_MoveParent,
/*358572*/              OPC_MoveParent,
/*358573*/              OPC_MoveChild2,
/*358574*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358577*/              OPC_MoveChild0,
/*358578*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358581*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358583*/              OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->358608
/*358586*/                OPC_MoveParent,
/*358587*/                OPC_MoveParent,
/*358588*/                OPC_CheckType, MVT::v4f64,
/*358590*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358592*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358595*/                OPC_EmitMergeInputChains1_1,
/*358596*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTUQQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358608*/              /*SwitchType*/ 22, MVT::v4i32,// ->358632
/*358610*/                OPC_MoveParent,
/*358611*/                OPC_MoveParent,
/*358612*/                OPC_CheckType, MVT::v4f32,
/*358614*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358616*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358619*/                OPC_EmitMergeInputChains1_1,
/*358620*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTUQQ2PSZ256rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358632*/              0, // EndSwitchType
/*358633*/            0, // EndSwitchOpcode
/*358634*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::CVTSI2P),// ->358747
/*358637*/            OPC_MoveChild0,
/*358638*/            OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->358695
/*358642*/              OPC_MoveChild0,
/*358643*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*358646*/              OPC_RecordMemRef,
/*358647*/              OPC_RecordNode, // #1 = 'ld' chained node
/*358648*/              OPC_CheckFoldableChainNode,
/*358649*/              OPC_RecordChild1, // #2 = $src
/*358650*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358652*/              OPC_CheckPredicate, 9, // Predicate_load
/*358654*/              OPC_CheckType, MVT::i64,
/*358656*/              OPC_MoveParent,
/*358657*/              OPC_CheckType, MVT::v2i64,
/*358659*/              OPC_MoveParent,
/*358660*/              OPC_MoveParent,
/*358661*/              OPC_MoveChild2,
/*358662*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358665*/              OPC_MoveChild0,
/*358666*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358669*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358671*/              OPC_CheckType, MVT::v4i32,
/*358673*/              OPC_MoveParent,
/*358674*/              OPC_MoveParent,
/*358675*/              OPC_CheckType, MVT::v4f32,
/*358677*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358679*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358682*/              OPC_EmitMergeInputChains1_1,
/*358683*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VSintToFP:{ *:[v4f32] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VCVTQQ2PSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358695*/            /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->358746
/*358698*/              OPC_RecordMemRef,
/*358699*/              OPC_RecordNode, // #1 = 'ld' chained node
/*358700*/              OPC_CheckFoldableChainNode,
/*358701*/              OPC_RecordChild1, // #2 = $src
/*358702*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358704*/              OPC_CheckPredicate, 9, // Predicate_load
/*358706*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*358708*/              OPC_CheckType, MVT::v2i64,
/*358710*/              OPC_MoveParent,
/*358711*/              OPC_MoveParent,
/*358712*/              OPC_MoveChild2,
/*358713*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358716*/              OPC_MoveChild0,
/*358717*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358720*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358722*/              OPC_CheckType, MVT::v4i32,
/*358724*/              OPC_MoveParent,
/*358725*/              OPC_MoveParent,
/*358726*/              OPC_CheckType, MVT::v4f32,
/*358728*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358730*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358733*/              OPC_EmitMergeInputChains1_1,
/*358734*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VSintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VCVTQQ2PSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358746*/            0, // EndSwitchOpcode
/*358747*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::CVTUI2P),// ->358860
/*358750*/            OPC_MoveChild0,
/*358751*/            OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->358808
/*358755*/              OPC_MoveChild0,
/*358756*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*358759*/              OPC_RecordMemRef,
/*358760*/              OPC_RecordNode, // #1 = 'ld' chained node
/*358761*/              OPC_CheckFoldableChainNode,
/*358762*/              OPC_RecordChild1, // #2 = $src
/*358763*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358765*/              OPC_CheckPredicate, 9, // Predicate_load
/*358767*/              OPC_CheckType, MVT::i64,
/*358769*/              OPC_MoveParent,
/*358770*/              OPC_CheckType, MVT::v2i64,
/*358772*/              OPC_MoveParent,
/*358773*/              OPC_MoveParent,
/*358774*/              OPC_MoveChild2,
/*358775*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358778*/              OPC_MoveChild0,
/*358779*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358782*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358784*/              OPC_CheckType, MVT::v4i32,
/*358786*/              OPC_MoveParent,
/*358787*/              OPC_MoveParent,
/*358788*/              OPC_CheckType, MVT::v4f32,
/*358790*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358792*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358795*/              OPC_EmitMergeInputChains1_1,
/*358796*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VUintToFP:{ *:[v4f32] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VCVTUQQ2PSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358808*/            /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->358859
/*358811*/              OPC_RecordMemRef,
/*358812*/              OPC_RecordNode, // #1 = 'ld' chained node
/*358813*/              OPC_CheckFoldableChainNode,
/*358814*/              OPC_RecordChild1, // #2 = $src
/*358815*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358817*/              OPC_CheckPredicate, 9, // Predicate_load
/*358819*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*358821*/              OPC_CheckType, MVT::v2i64,
/*358823*/              OPC_MoveParent,
/*358824*/              OPC_MoveParent,
/*358825*/              OPC_MoveChild2,
/*358826*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358829*/              OPC_MoveChild0,
/*358830*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358833*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358835*/              OPC_CheckType, MVT::v4i32,
/*358837*/              OPC_MoveParent,
/*358838*/              OPC_MoveParent,
/*358839*/              OPC_CheckType, MVT::v4f32,
/*358841*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358843*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358846*/              OPC_EmitMergeInputChains1_1,
/*358847*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VUintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VCVTUQQ2PSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358859*/            0, // EndSwitchOpcode
/*358860*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::CVTPH2PS),// ->358922
/*358863*/            OPC_MoveChild0,
/*358864*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358867*/            OPC_MoveChild0,
/*358868*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*358871*/            OPC_RecordMemRef,
/*358872*/            OPC_RecordNode, // #1 = 'ld' chained node
/*358873*/            OPC_CheckFoldableChainNode,
/*358874*/            OPC_RecordChild1, // #2 = $src
/*358875*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358877*/            OPC_CheckPredicate, 9, // Predicate_load
/*358879*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*358881*/            OPC_CheckType, MVT::v2i64,
/*358883*/            OPC_MoveParent,
/*358884*/            OPC_CheckType, MVT::v8i16,
/*358886*/            OPC_MoveParent,
/*358887*/            OPC_MoveParent,
/*358888*/            OPC_MoveChild2,
/*358889*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358892*/            OPC_MoveChild0,
/*358893*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358896*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358898*/            OPC_CheckType, MVT::v4i32,
/*358900*/            OPC_MoveParent,
/*358901*/            OPC_MoveParent,
/*358902*/            OPC_CheckType, MVT::v4f32,
/*358904*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*358906*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358909*/            OPC_EmitMergeInputChains1_1,
/*358910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtph2ps:{ *:[v4f32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VCVTPH2PSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358922*/          /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::RSQRT14),// ->359099
/*358926*/            OPC_MoveChild0,
/*358927*/            OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(X86ISD::VBROADCAST),// ->359023
/*358931*/              OPC_MoveChild0,
/*358932*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*358935*/              OPC_RecordMemRef,
/*358936*/              OPC_RecordNode, // #1 = 'ld' chained node
/*358937*/              OPC_CheckFoldableChainNode,
/*358938*/              OPC_RecordChild1, // #2 = $src
/*358939*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358941*/              OPC_CheckPredicate, 9, // Predicate_load
/*358943*/              OPC_SwitchType /*2 cases */, 37, MVT::f32,// ->358983
/*358946*/                OPC_MoveParent,
/*358947*/                OPC_MoveParent,
/*358948*/                OPC_MoveParent,
/*358949*/                OPC_MoveChild2,
/*358950*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358953*/                OPC_MoveChild0,
/*358954*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358957*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358959*/                OPC_CheckType, MVT::v4i32,
/*358961*/                OPC_MoveParent,
/*358962*/                OPC_MoveParent,
/*358963*/                OPC_CheckType, MVT::v4f32,
/*358965*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*358967*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358970*/                OPC_EmitMergeInputChains1_1,
/*358971*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRSQRT14PSZ128mbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358983*/              /*SwitchType*/ 37, MVT::f64,// ->359022
/*358985*/                OPC_MoveParent,
/*358986*/                OPC_MoveParent,
/*358987*/                OPC_MoveParent,
/*358988*/                OPC_MoveChild2,
/*358989*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358992*/                OPC_MoveChild0,
/*358993*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*358996*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*358998*/                OPC_CheckType, MVT::v8i32,
/*359000*/                OPC_MoveParent,
/*359001*/                OPC_MoveParent,
/*359002*/                OPC_CheckType, MVT::v4f64,
/*359004*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359006*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*359009*/                OPC_EmitMergeInputChains1_1,
/*359010*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRSQRT14PDZ256mbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*359022*/              0, // EndSwitchType
/*359023*/            /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->359098
/*359026*/              OPC_RecordMemRef,
/*359027*/              OPC_RecordNode, // #1 = 'ld' chained node
/*359028*/              OPC_CheckFoldableChainNode,
/*359029*/              OPC_RecordChild1, // #2 = $src
/*359030*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359032*/              OPC_CheckPredicate, 9, // Predicate_load
/*359034*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*359036*/              OPC_MoveParent,
/*359037*/              OPC_MoveParent,
/*359038*/              OPC_MoveChild2,
/*359039*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*359042*/              OPC_MoveChild0,
/*359043*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*359046*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*359048*/              OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->359073
/*359051*/                OPC_MoveParent,
/*359052*/                OPC_MoveParent,
/*359053*/                OPC_CheckType, MVT::v4f32,
/*359055*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359057*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*359060*/                OPC_EmitMergeInputChains1_1,
/*359061*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRSQRT14PSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*359073*/              /*SwitchType*/ 22, MVT::v8i32,// ->359097
/*359075*/                OPC_MoveParent,
/*359076*/                OPC_MoveParent,
/*359077*/                OPC_CheckType, MVT::v4f64,
/*359079*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359081*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*359084*/                OPC_EmitMergeInputChains1_1,
/*359085*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRSQRT14PDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*359097*/              0, // EndSwitchType
/*359098*/            0, // EndSwitchOpcode
/*359099*/          /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::RCP14),// ->359276
/*359103*/            OPC_MoveChild0,
/*359104*/            OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(X86ISD::VBROADCAST),// ->359200
/*359108*/              OPC_MoveChild0,
/*359109*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*359112*/              OPC_RecordMemRef,
/*359113*/              OPC_RecordNode, // #1 = 'ld' chained node
/*359114*/              OPC_CheckFoldableChainNode,
/*359115*/              OPC_RecordChild1, // #2 = $src
/*359116*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359118*/              OPC_CheckPredicate, 9, // Predicate_load
/*359120*/              OPC_SwitchType /*2 cases */, 37, MVT::f32,// ->359160
/*359123*/                OPC_MoveParent,
/*359124*/                OPC_MoveParent,
/*359125*/                OPC_MoveParent,
/*359126*/                OPC_MoveChild2,
/*359127*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*359130*/                OPC_MoveChild0,
/*359131*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*359134*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*359136*/                OPC_CheckType, MVT::v4i32,
/*359138*/                OPC_MoveParent,
/*359139*/                OPC_MoveParent,
/*359140*/                OPC_CheckType, MVT::v4f32,
/*359142*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359144*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*359147*/                OPC_EmitMergeInputChains1_1,
/*359148*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRCP14PSZ128mbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*359160*/              /*SwitchType*/ 37, MVT::f64,// ->359199
/*359162*/                OPC_MoveParent,
/*359163*/                OPC_MoveParent,
/*359164*/                OPC_MoveParent,
/*359165*/                OPC_MoveChild2,
/*359166*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*359169*/                OPC_MoveChild0,
/*359170*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*359173*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*359175*/                OPC_CheckType, MVT::v8i32,
/*359177*/                OPC_MoveParent,
/*359178*/                OPC_MoveParent,
/*359179*/                OPC_CheckType, MVT::v4f64,
/*359181*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359183*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*359186*/                OPC_EmitMergeInputChains1_1,
/*359187*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRCP14PDZ256mbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*359199*/              0, // EndSwitchType
/*359200*/            /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->359275
/*359203*/              OPC_RecordMemRef,
/*359204*/              OPC_RecordNode, // #1 = 'ld' chained node
/*359205*/              OPC_CheckFoldableChainNode,
/*359206*/              OPC_RecordChild1, // #2 = $src
/*359207*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359209*/              OPC_CheckPredicate, 9, // Predicate_load
/*359211*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*359213*/              OPC_MoveParent,
/*359214*/              OPC_MoveParent,
/*359215*/              OPC_MoveChild2,
/*359216*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*359219*/              OPC_MoveChild0,
/*359220*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*359223*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*359225*/              OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->359250
/*359228*/                OPC_MoveParent,
/*359229*/                OPC_MoveParent,
/*359230*/                OPC_CheckType, MVT::v4f32,
/*359232*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359234*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*359237*/                OPC_EmitMergeInputChains1_1,
/*359238*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRCP14PSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*359250*/              /*SwitchType*/ 22, MVT::v8i32,// ->359274
/*359252*/                OPC_MoveParent,
/*359253*/                OPC_MoveParent,
/*359254*/                OPC_CheckType, MVT::v4f64,
/*359256*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359258*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*359261*/                OPC_EmitMergeInputChains1_1,
/*359262*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRCP14PDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*359274*/              0, // EndSwitchType
/*359275*/            0, // EndSwitchOpcode
/*359276*/          /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(ISD::FSQRT),// ->359453
/*359280*/            OPC_MoveChild0,
/*359281*/            OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(X86ISD::VBROADCAST),// ->359377
/*359285*/              OPC_MoveChild0,
/*359286*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*359289*/              OPC_RecordMemRef,
/*359290*/              OPC_RecordNode, // #1 = 'ld' chained node
/*359291*/              OPC_CheckFoldableChainNode,
/*359292*/              OPC_RecordChild1, // #2 = $src
/*359293*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359295*/              OPC_CheckPredicate, 9, // Predicate_load
/*359297*/              OPC_SwitchType /*2 cases */, 37, MVT::f32,// ->359337
/*359300*/                OPC_MoveParent,
/*359301*/                OPC_MoveParent,
/*359302*/                OPC_MoveParent,
/*359303*/                OPC_MoveChild2,
/*359304*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*359307*/                OPC_MoveChild0,
/*359308*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*359311*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*359313*/                OPC_CheckType, MVT::v4i32,
/*359315*/                OPC_MoveParent,
/*359316*/                OPC_MoveParent,
/*359317*/                OPC_CheckType, MVT::v4f32,
/*359319*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359321*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*359324*/                OPC_EmitMergeInputChains1_1,
/*359325*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSQRTPSZ128mbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*359337*/              /*SwitchType*/ 37, MVT::f64,// ->359376
/*359339*/                OPC_MoveParent,
/*359340*/                OPC_MoveParent,
/*359341*/                OPC_MoveParent,
/*359342*/                OPC_MoveChild2,
/*359343*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*359346*/                OPC_MoveChild0,
/*359347*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*359350*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*359352*/                OPC_CheckType, MVT::v8i32,
/*359354*/                OPC_MoveParent,
/*359355*/                OPC_MoveParent,
/*359356*/                OPC_CheckType, MVT::v4f64,
/*359358*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359360*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*359363*/                OPC_EmitMergeInputChains1_1,
/*359364*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSQRTPDZ256mbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*359376*/              0, // EndSwitchType
/*359377*/            /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->359452
/*359380*/              OPC_RecordMemRef,
/*359381*/              OPC_RecordNode, // #1 = 'ld' chained node
/*359382*/              OPC_CheckFoldableChainNode,
/*359383*/              OPC_RecordChild1, // #2 = $src
/*359384*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359386*/              OPC_CheckPredicate, 9, // Predicate_load
/*359388*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*359390*/              OPC_MoveParent,
/*359391*/              OPC_MoveParent,
/*359392*/              OPC_MoveChild2,
/*359393*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*359396*/              OPC_MoveChild0,
/*359397*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*359400*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*359402*/              OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->359427
/*359405*/                OPC_MoveParent,
/*359406*/                OPC_MoveParent,
/*359407*/                OPC_CheckType, MVT::v4f32,
/*359409*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359411*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*359414*/                OPC_EmitMergeInputChains1_1,
/*359415*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VSQRTPSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*359427*/              /*SwitchType*/ 22, MVT::v8i32,// ->359451
/*359429*/                OPC_MoveParent,
/*359430*/                OPC_MoveParent,
/*359431*/                OPC_CheckType, MVT::v4f64,
/*359433*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359435*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*359438*/                OPC_EmitMergeInputChains1_1,
/*359439*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VSQRTPDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*359451*/              0, // EndSwitchType
/*359452*/            0, // EndSwitchOpcode
/*359453*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::VREDUCE),// ->359636
/*359457*/            OPC_MoveChild0,
/*359458*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::LOAD),// ->359546
/*359462*/              OPC_RecordMemRef,
/*359463*/              OPC_RecordNode, // #1 = 'ld' chained node
/*359464*/              OPC_CheckFoldableChainNode,
/*359465*/              OPC_RecordChild1, // #2 = $src1
/*359466*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359468*/              OPC_CheckPredicate, 9, // Predicate_load
/*359470*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*359472*/              OPC_MoveParent,
/*359473*/              OPC_RecordChild1, // #3 = $src2
/*359474*/              OPC_MoveChild1,
/*359475*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*359478*/              OPC_MoveParent,
/*359479*/              OPC_MoveParent,
/*359480*/              OPC_MoveChild2,
/*359481*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*359484*/              OPC_MoveChild0,
/*359485*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*359488*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*359490*/              OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->359518
/*359493*/                OPC_MoveParent,
/*359494*/                OPC_MoveParent,
/*359495*/                OPC_CheckType, MVT::v4f32,
/*359497*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*359499*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*359502*/                OPC_EmitMergeInputChains1_1,
/*359503*/                OPC_EmitConvertToTarget, 3,
/*359505*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VREDUCEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*359518*/              /*SwitchType*/ 25, MVT::v8i32,// ->359545
/*359520*/                OPC_MoveParent,
/*359521*/                OPC_MoveParent,
/*359522*/                OPC_CheckType, MVT::v4f64,
/*359524*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*359526*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*359529*/                OPC_EmitMergeInputChains1_1,
/*359530*/                OPC_EmitConvertToTarget, 3,
/*359532*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VREDUCEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*359545*/              0, // EndSwitchType
/*359546*/            /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VBROADCAST),// ->359635
/*359549*/              OPC_MoveChild0,
/*359550*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*359553*/              OPC_RecordMemRef,
/*359554*/              OPC_RecordNode, // #1 = 'ld' chained node
/*359555*/              OPC_CheckFoldableChainNode,
/*359556*/              OPC_RecordChild1, // #2 = $src1
/*359557*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359559*/              OPC_CheckPredicate, 9, // Predicate_load
/*359561*/              OPC_SwitchType /*2 cases */, 34, MVT::f32,// ->359598
/*359564*/                OPC_MoveParent,
/*359565*/                OPC_MoveParent,
/*359566*/                OPC_RecordChild1, // #3 = $src2
/*359567*/                OPC_MoveChild1,
/*359568*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*359571*/                OPC_MoveParent,
/*359572*/                OPC_MoveParent,
/*359573*/                OPC_RecordChild2, // #4 = $src0
/*359574*/                OPC_CheckType, MVT::v4f32,
/*359576*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*359578*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*359581*/                OPC_EmitMergeInputChains1_1,
/*359582*/                OPC_EmitConvertToTarget, 3,
/*359584*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 34
                          // Dst: (VREDUCEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*359598*/              /*SwitchType*/ 34, MVT::f64,// ->359634
/*359600*/                OPC_MoveParent,
/*359601*/                OPC_MoveParent,
/*359602*/                OPC_RecordChild1, // #3 = $src2
/*359603*/                OPC_MoveChild1,
/*359604*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*359607*/                OPC_MoveParent,
/*359608*/                OPC_MoveParent,
/*359609*/                OPC_RecordChild2, // #4 = $src0
/*359610*/                OPC_CheckType, MVT::v4f64,
/*359612*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*359614*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*359617*/                OPC_EmitMergeInputChains1_1,
/*359618*/                OPC_EmitConvertToTarget, 3,
/*359620*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 34
                          // Dst: (VREDUCEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*359634*/              0, // EndSwitchType
/*359635*/            0, // EndSwitchOpcode
/*359636*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::VRNDSCALE),// ->359819
/*359640*/            OPC_MoveChild0,
/*359641*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::LOAD),// ->359729
/*359645*/              OPC_RecordMemRef,
/*359646*/              OPC_RecordNode, // #1 = 'ld' chained node
/*359647*/              OPC_CheckFoldableChainNode,
/*359648*/              OPC_RecordChild1, // #2 = $src1
/*359649*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359651*/              OPC_CheckPredicate, 9, // Predicate_load
/*359653*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*359655*/              OPC_MoveParent,
/*359656*/              OPC_RecordChild1, // #3 = $src2
/*359657*/              OPC_MoveChild1,
/*359658*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*359661*/              OPC_MoveParent,
/*359662*/              OPC_MoveParent,
/*359663*/              OPC_MoveChild2,
/*359664*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*359667*/              OPC_MoveChild0,
/*359668*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*359671*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*359673*/              OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->359701
/*359676*/                OPC_MoveParent,
/*359677*/                OPC_MoveParent,
/*359678*/                OPC_CheckType, MVT::v4f32,
/*359680*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*359682*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*359685*/                OPC_EmitMergeInputChains1_1,
/*359686*/                OPC_EmitConvertToTarget, 3,
/*359688*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*359701*/              /*SwitchType*/ 25, MVT::v8i32,// ->359728
/*359703*/                OPC_MoveParent,
/*359704*/                OPC_MoveParent,
/*359705*/                OPC_CheckType, MVT::v4f64,
/*359707*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*359709*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*359712*/                OPC_EmitMergeInputChains1_1,
/*359713*/                OPC_EmitConvertToTarget, 3,
/*359715*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*359728*/              0, // EndSwitchType
/*359729*/            /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VBROADCAST),// ->359818
/*359732*/              OPC_MoveChild0,
/*359733*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*359736*/              OPC_RecordMemRef,
/*359737*/              OPC_RecordNode, // #1 = 'ld' chained node
/*359738*/              OPC_CheckFoldableChainNode,
/*359739*/              OPC_RecordChild1, // #2 = $src1
/*359740*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359742*/              OPC_CheckPredicate, 9, // Predicate_load
/*359744*/              OPC_SwitchType /*2 cases */, 34, MVT::f32,// ->359781
/*359747*/                OPC_MoveParent,
/*359748*/                OPC_MoveParent,
/*359749*/                OPC_RecordChild1, // #3 = $src2
/*359750*/                OPC_MoveChild1,
/*359751*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*359754*/                OPC_MoveParent,
/*359755*/                OPC_MoveParent,
/*359756*/                OPC_RecordChild2, // #4 = $src0
/*359757*/                OPC_CheckType, MVT::v4f32,
/*359759*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*359761*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*359764*/                OPC_EmitMergeInputChains1_1,
/*359765*/                OPC_EmitConvertToTarget, 3,
/*359767*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 34
                          // Dst: (VRNDSCALEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*359781*/              /*SwitchType*/ 34, MVT::f64,// ->359817
/*359783*/                OPC_MoveParent,
/*359784*/                OPC_MoveParent,
/*359785*/                OPC_RecordChild1, // #3 = $src2
/*359786*/                OPC_MoveChild1,
/*359787*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*359790*/                OPC_MoveParent,
/*359791*/                OPC_MoveParent,
/*359792*/                OPC_RecordChild2, // #4 = $src0
/*359793*/                OPC_CheckType, MVT::v4f64,
/*359795*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*359797*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*359800*/                OPC_EmitMergeInputChains1_1,
/*359801*/                OPC_EmitConvertToTarget, 3,
/*359803*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 34
                          // Dst: (VRNDSCALEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*359817*/              0, // EndSwitchType
/*359818*/            0, // EndSwitchOpcode
/*359819*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::VGETMANT),// ->360002
/*359823*/            OPC_MoveChild0,
/*359824*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::LOAD),// ->359912
/*359828*/              OPC_RecordMemRef,
/*359829*/              OPC_RecordNode, // #1 = 'ld' chained node
/*359830*/              OPC_CheckFoldableChainNode,
/*359831*/              OPC_RecordChild1, // #2 = $src1
/*359832*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359834*/              OPC_CheckPredicate, 9, // Predicate_load
/*359836*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*359838*/              OPC_MoveParent,
/*359839*/              OPC_RecordChild1, // #3 = $src2
/*359840*/              OPC_MoveChild1,
/*359841*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*359844*/              OPC_MoveParent,
/*359845*/              OPC_MoveParent,
/*359846*/              OPC_MoveChild2,
/*359847*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*359850*/              OPC_MoveChild0,
/*359851*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*359854*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*359856*/              OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->359884
/*359859*/                OPC_MoveParent,
/*359860*/                OPC_MoveParent,
/*359861*/                OPC_CheckType, MVT::v4f32,
/*359863*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*359865*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*359868*/                OPC_EmitMergeInputChains1_1,
/*359869*/                OPC_EmitConvertToTarget, 3,
/*359871*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VGETMANTPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*359884*/              /*SwitchType*/ 25, MVT::v8i32,// ->359911
/*359886*/                OPC_MoveParent,
/*359887*/                OPC_MoveParent,
/*359888*/                OPC_CheckType, MVT::v4f64,
/*359890*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*359892*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*359895*/                OPC_EmitMergeInputChains1_1,
/*359896*/                OPC_EmitConvertToTarget, 3,
/*359898*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VGETMANTPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*359911*/              0, // EndSwitchType
/*359912*/            /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VBROADCAST),// ->360001
/*359915*/              OPC_MoveChild0,
/*359916*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*359919*/              OPC_RecordMemRef,
/*359920*/              OPC_RecordNode, // #1 = 'ld' chained node
/*359921*/              OPC_CheckFoldableChainNode,
/*359922*/              OPC_RecordChild1, // #2 = $src1
/*359923*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359925*/              OPC_CheckPredicate, 9, // Predicate_load
/*359927*/              OPC_SwitchType /*2 cases */, 34, MVT::f32,// ->359964
/*359930*/                OPC_MoveParent,
/*359931*/                OPC_MoveParent,
/*359932*/                OPC_RecordChild1, // #3 = $src2
/*359933*/                OPC_MoveChild1,
/*359934*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*359937*/                OPC_MoveParent,
/*359938*/                OPC_MoveParent,
/*359939*/                OPC_RecordChild2, // #4 = $src0
/*359940*/                OPC_CheckType, MVT::v4f32,
/*359942*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*359944*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*359947*/                OPC_EmitMergeInputChains1_1,
/*359948*/                OPC_EmitConvertToTarget, 3,
/*359950*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 34
                          // Dst: (VGETMANTPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*359964*/              /*SwitchType*/ 34, MVT::f64,// ->360000
/*359966*/                OPC_MoveParent,
/*359967*/                OPC_MoveParent,
/*359968*/                OPC_RecordChild1, // #3 = $src2
/*359969*/                OPC_MoveChild1,
/*359970*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*359973*/                OPC_MoveParent,
/*359974*/                OPC_MoveParent,
/*359975*/                OPC_RecordChild2, // #4 = $src0
/*359976*/                OPC_CheckType, MVT::v4f64,
/*359978*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*359980*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*359983*/                OPC_EmitMergeInputChains1_1,
/*359984*/                OPC_EmitConvertToTarget, 3,
/*359986*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 34
                          // Dst: (VGETMANTPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*360000*/              0, // EndSwitchType
/*360001*/            0, // EndSwitchOpcode
/*360002*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::VRANGE),// ->360190
/*360006*/            OPC_RecordChild0, // #1 = $src1
/*360007*/            OPC_MoveChild1,
/*360008*/            OPC_SwitchOpcode /*2 cases */, 86, TARGET_VAL(ISD::LOAD),// ->360098
/*360012*/              OPC_RecordMemRef,
/*360013*/              OPC_RecordNode, // #2 = 'ld' chained node
/*360014*/              OPC_CheckFoldableChainNode,
/*360015*/              OPC_RecordChild1, // #3 = $src2
/*360016*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360018*/              OPC_CheckPredicate, 9, // Predicate_load
/*360020*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*360022*/              OPC_MoveParent,
/*360023*/              OPC_RecordChild2, // #4 = $src3
/*360024*/              OPC_MoveChild2,
/*360025*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*360028*/              OPC_MoveParent,
/*360029*/              OPC_MoveParent,
/*360030*/              OPC_MoveChild2,
/*360031*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360034*/              OPC_MoveChild0,
/*360035*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360038*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360040*/              OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->360069
/*360043*/                OPC_MoveParent,
/*360044*/                OPC_MoveParent,
/*360045*/                OPC_CheckType, MVT::v4f64,
/*360047*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*360049*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*360052*/                OPC_EmitMergeInputChains1_2,
/*360053*/                OPC_EmitConvertToTarget, 4,
/*360055*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRANGEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*360069*/              /*SwitchType*/ 26, MVT::v4i32,// ->360097
/*360071*/                OPC_MoveParent,
/*360072*/                OPC_MoveParent,
/*360073*/                OPC_CheckType, MVT::v4f32,
/*360075*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*360077*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*360080*/                OPC_EmitMergeInputChains1_2,
/*360081*/                OPC_EmitConvertToTarget, 4,
/*360083*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRANGEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*360097*/              0, // EndSwitchType
/*360098*/            /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::VBROADCAST),// ->360189
/*360101*/              OPC_MoveChild0,
/*360102*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*360105*/              OPC_RecordMemRef,
/*360106*/              OPC_RecordNode, // #2 = 'ld' chained node
/*360107*/              OPC_CheckFoldableChainNode,
/*360108*/              OPC_RecordChild1, // #3 = $src2
/*360109*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360111*/              OPC_CheckPredicate, 9, // Predicate_load
/*360113*/              OPC_SwitchType /*2 cases */, 35, MVT::f64,// ->360151
/*360116*/                OPC_MoveParent,
/*360117*/                OPC_MoveParent,
/*360118*/                OPC_RecordChild2, // #4 = $src3
/*360119*/                OPC_MoveChild2,
/*360120*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*360123*/                OPC_MoveParent,
/*360124*/                OPC_MoveParent,
/*360125*/                OPC_RecordChild2, // #5 = $src0
/*360126*/                OPC_CheckType, MVT::v4f64,
/*360128*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*360130*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*360133*/                OPC_EmitMergeInputChains1_2,
/*360134*/                OPC_EmitConvertToTarget, 4,
/*360136*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 34
                          // Dst: (VRANGEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*360151*/              /*SwitchType*/ 35, MVT::f32,// ->360188
/*360153*/                OPC_MoveParent,
/*360154*/                OPC_MoveParent,
/*360155*/                OPC_RecordChild2, // #4 = $src3
/*360156*/                OPC_MoveChild2,
/*360157*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*360160*/                OPC_MoveParent,
/*360161*/                OPC_MoveParent,
/*360162*/                OPC_RecordChild2, // #5 = $src0
/*360163*/                OPC_CheckType, MVT::v4f32,
/*360165*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*360167*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*360170*/                OPC_EmitMergeInputChains1_2,
/*360171*/                OPC_EmitConvertToTarget, 4,
/*360173*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 34
                          // Dst: (VRANGEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*360188*/              0, // EndSwitchType
/*360189*/            0, // EndSwitchOpcode
/*360190*/          /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FFLOOR),// ->360383
/*360194*/            OPC_MoveChild0,
/*360195*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(X86ISD::VBROADCAST),// ->360299
/*360199*/              OPC_MoveChild0,
/*360200*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*360203*/              OPC_RecordMemRef,
/*360204*/              OPC_RecordNode, // #1 = 'ld' chained node
/*360205*/              OPC_CheckFoldableChainNode,
/*360206*/              OPC_RecordChild1, // #2 = $src
/*360207*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360209*/              OPC_CheckPredicate, 9, // Predicate_load
/*360211*/              OPC_SwitchType /*2 cases */, 41, MVT::f64,// ->360255
/*360214*/                OPC_MoveParent,
/*360215*/                OPC_MoveParent,
/*360216*/                OPC_MoveParent,
/*360217*/                OPC_MoveChild2,
/*360218*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360221*/                OPC_MoveChild0,
/*360222*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360225*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360227*/                OPC_CheckType, MVT::v8i32,
/*360229*/                OPC_MoveParent,
/*360230*/                OPC_MoveParent,
/*360231*/                OPC_CheckType, MVT::v4f64,
/*360233*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360235*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360238*/                OPC_EmitMergeInputChains1_1,
/*360239*/                OPC_EmitInteger, MVT::i32, 9, 
/*360242*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*360255*/              /*SwitchType*/ 41, MVT::f32,// ->360298
/*360257*/                OPC_MoveParent,
/*360258*/                OPC_MoveParent,
/*360259*/                OPC_MoveParent,
/*360260*/                OPC_MoveChild2,
/*360261*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360264*/                OPC_MoveChild0,
/*360265*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360268*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360270*/                OPC_CheckType, MVT::v4i32,
/*360272*/                OPC_MoveParent,
/*360273*/                OPC_MoveParent,
/*360274*/                OPC_CheckType, MVT::v4f32,
/*360276*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360278*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360281*/                OPC_EmitMergeInputChains1_1,
/*360282*/                OPC_EmitInteger, MVT::i32, 9, 
/*360285*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*360298*/              0, // EndSwitchType
/*360299*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->360382
/*360302*/              OPC_RecordMemRef,
/*360303*/              OPC_RecordNode, // #1 = 'ld' chained node
/*360304*/              OPC_CheckFoldableChainNode,
/*360305*/              OPC_RecordChild1, // #2 = $src
/*360306*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360308*/              OPC_CheckPredicate, 9, // Predicate_load
/*360310*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*360312*/              OPC_MoveParent,
/*360313*/              OPC_MoveParent,
/*360314*/              OPC_MoveChild2,
/*360315*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360318*/              OPC_MoveChild0,
/*360319*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360322*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360324*/              OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->360353
/*360327*/                OPC_MoveParent,
/*360328*/                OPC_MoveParent,
/*360329*/                OPC_CheckType, MVT::v4f64,
/*360331*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360333*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360336*/                OPC_EmitMergeInputChains1_1,
/*360337*/                OPC_EmitInteger, MVT::i32, 9, 
/*360340*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*360353*/              /*SwitchType*/ 26, MVT::v4i32,// ->360381
/*360355*/                OPC_MoveParent,
/*360356*/                OPC_MoveParent,
/*360357*/                OPC_CheckType, MVT::v4f32,
/*360359*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360361*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360364*/                OPC_EmitMergeInputChains1_1,
/*360365*/                OPC_EmitInteger, MVT::i32, 9, 
/*360368*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*360381*/              0, // EndSwitchType
/*360382*/            0, // EndSwitchOpcode
/*360383*/          /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FNEARBYINT),// ->360576
/*360387*/            OPC_MoveChild0,
/*360388*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(X86ISD::VBROADCAST),// ->360492
/*360392*/              OPC_MoveChild0,
/*360393*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*360396*/              OPC_RecordMemRef,
/*360397*/              OPC_RecordNode, // #1 = 'ld' chained node
/*360398*/              OPC_CheckFoldableChainNode,
/*360399*/              OPC_RecordChild1, // #2 = $src
/*360400*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360402*/              OPC_CheckPredicate, 9, // Predicate_load
/*360404*/              OPC_SwitchType /*2 cases */, 41, MVT::f64,// ->360448
/*360407*/                OPC_MoveParent,
/*360408*/                OPC_MoveParent,
/*360409*/                OPC_MoveParent,
/*360410*/                OPC_MoveChild2,
/*360411*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360414*/                OPC_MoveChild0,
/*360415*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360418*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360420*/                OPC_CheckType, MVT::v8i32,
/*360422*/                OPC_MoveParent,
/*360423*/                OPC_MoveParent,
/*360424*/                OPC_CheckType, MVT::v4f64,
/*360426*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360428*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360431*/                OPC_EmitMergeInputChains1_1,
/*360432*/                OPC_EmitInteger, MVT::i32, 12, 
/*360435*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*360448*/              /*SwitchType*/ 41, MVT::f32,// ->360491
/*360450*/                OPC_MoveParent,
/*360451*/                OPC_MoveParent,
/*360452*/                OPC_MoveParent,
/*360453*/                OPC_MoveChild2,
/*360454*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360457*/                OPC_MoveChild0,
/*360458*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360461*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360463*/                OPC_CheckType, MVT::v4i32,
/*360465*/                OPC_MoveParent,
/*360466*/                OPC_MoveParent,
/*360467*/                OPC_CheckType, MVT::v4f32,
/*360469*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360471*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360474*/                OPC_EmitMergeInputChains1_1,
/*360475*/                OPC_EmitInteger, MVT::i32, 12, 
/*360478*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*360491*/              0, // EndSwitchType
/*360492*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->360575
/*360495*/              OPC_RecordMemRef,
/*360496*/              OPC_RecordNode, // #1 = 'ld' chained node
/*360497*/              OPC_CheckFoldableChainNode,
/*360498*/              OPC_RecordChild1, // #2 = $src
/*360499*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360501*/              OPC_CheckPredicate, 9, // Predicate_load
/*360503*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*360505*/              OPC_MoveParent,
/*360506*/              OPC_MoveParent,
/*360507*/              OPC_MoveChild2,
/*360508*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360511*/              OPC_MoveChild0,
/*360512*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360515*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360517*/              OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->360546
/*360520*/                OPC_MoveParent,
/*360521*/                OPC_MoveParent,
/*360522*/                OPC_CheckType, MVT::v4f64,
/*360524*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360526*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360529*/                OPC_EmitMergeInputChains1_1,
/*360530*/                OPC_EmitInteger, MVT::i32, 12, 
/*360533*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*360546*/              /*SwitchType*/ 26, MVT::v4i32,// ->360574
/*360548*/                OPC_MoveParent,
/*360549*/                OPC_MoveParent,
/*360550*/                OPC_CheckType, MVT::v4f32,
/*360552*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360554*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360557*/                OPC_EmitMergeInputChains1_1,
/*360558*/                OPC_EmitInteger, MVT::i32, 12, 
/*360561*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*360574*/              0, // EndSwitchType
/*360575*/            0, // EndSwitchOpcode
/*360576*/          /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FCEIL),// ->360769
/*360580*/            OPC_MoveChild0,
/*360581*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(X86ISD::VBROADCAST),// ->360685
/*360585*/              OPC_MoveChild0,
/*360586*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*360589*/              OPC_RecordMemRef,
/*360590*/              OPC_RecordNode, // #1 = 'ld' chained node
/*360591*/              OPC_CheckFoldableChainNode,
/*360592*/              OPC_RecordChild1, // #2 = $src
/*360593*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360595*/              OPC_CheckPredicate, 9, // Predicate_load
/*360597*/              OPC_SwitchType /*2 cases */, 41, MVT::f64,// ->360641
/*360600*/                OPC_MoveParent,
/*360601*/                OPC_MoveParent,
/*360602*/                OPC_MoveParent,
/*360603*/                OPC_MoveChild2,
/*360604*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360607*/                OPC_MoveChild0,
/*360608*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360611*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360613*/                OPC_CheckType, MVT::v8i32,
/*360615*/                OPC_MoveParent,
/*360616*/                OPC_MoveParent,
/*360617*/                OPC_CheckType, MVT::v4f64,
/*360619*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360621*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360624*/                OPC_EmitMergeInputChains1_1,
/*360625*/                OPC_EmitInteger, MVT::i32, 10, 
/*360628*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*360641*/              /*SwitchType*/ 41, MVT::f32,// ->360684
/*360643*/                OPC_MoveParent,
/*360644*/                OPC_MoveParent,
/*360645*/                OPC_MoveParent,
/*360646*/                OPC_MoveChild2,
/*360647*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360650*/                OPC_MoveChild0,
/*360651*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360654*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360656*/                OPC_CheckType, MVT::v4i32,
/*360658*/                OPC_MoveParent,
/*360659*/                OPC_MoveParent,
/*360660*/                OPC_CheckType, MVT::v4f32,
/*360662*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360664*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360667*/                OPC_EmitMergeInputChains1_1,
/*360668*/                OPC_EmitInteger, MVT::i32, 10, 
/*360671*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*360684*/              0, // EndSwitchType
/*360685*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->360768
/*360688*/              OPC_RecordMemRef,
/*360689*/              OPC_RecordNode, // #1 = 'ld' chained node
/*360690*/              OPC_CheckFoldableChainNode,
/*360691*/              OPC_RecordChild1, // #2 = $src
/*360692*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360694*/              OPC_CheckPredicate, 9, // Predicate_load
/*360696*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*360698*/              OPC_MoveParent,
/*360699*/              OPC_MoveParent,
/*360700*/              OPC_MoveChild2,
/*360701*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360704*/              OPC_MoveChild0,
/*360705*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360708*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360710*/              OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->360739
/*360713*/                OPC_MoveParent,
/*360714*/                OPC_MoveParent,
/*360715*/                OPC_CheckType, MVT::v4f64,
/*360717*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360719*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360722*/                OPC_EmitMergeInputChains1_1,
/*360723*/                OPC_EmitInteger, MVT::i32, 10, 
/*360726*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*360739*/              /*SwitchType*/ 26, MVT::v4i32,// ->360767
/*360741*/                OPC_MoveParent,
/*360742*/                OPC_MoveParent,
/*360743*/                OPC_CheckType, MVT::v4f32,
/*360745*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360747*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360750*/                OPC_EmitMergeInputChains1_1,
/*360751*/                OPC_EmitInteger, MVT::i32, 10, 
/*360754*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*360767*/              0, // EndSwitchType
/*360768*/            0, // EndSwitchOpcode
/*360769*/          /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FRINT),// ->360962
/*360773*/            OPC_MoveChild0,
/*360774*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(X86ISD::VBROADCAST),// ->360878
/*360778*/              OPC_MoveChild0,
/*360779*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*360782*/              OPC_RecordMemRef,
/*360783*/              OPC_RecordNode, // #1 = 'ld' chained node
/*360784*/              OPC_CheckFoldableChainNode,
/*360785*/              OPC_RecordChild1, // #2 = $src
/*360786*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360788*/              OPC_CheckPredicate, 9, // Predicate_load
/*360790*/              OPC_SwitchType /*2 cases */, 41, MVT::f64,// ->360834
/*360793*/                OPC_MoveParent,
/*360794*/                OPC_MoveParent,
/*360795*/                OPC_MoveParent,
/*360796*/                OPC_MoveChild2,
/*360797*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360800*/                OPC_MoveChild0,
/*360801*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360804*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360806*/                OPC_CheckType, MVT::v8i32,
/*360808*/                OPC_MoveParent,
/*360809*/                OPC_MoveParent,
/*360810*/                OPC_CheckType, MVT::v4f64,
/*360812*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360814*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360817*/                OPC_EmitMergeInputChains1_1,
/*360818*/                OPC_EmitInteger, MVT::i32, 4, 
/*360821*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*360834*/              /*SwitchType*/ 41, MVT::f32,// ->360877
/*360836*/                OPC_MoveParent,
/*360837*/                OPC_MoveParent,
/*360838*/                OPC_MoveParent,
/*360839*/                OPC_MoveChild2,
/*360840*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360843*/                OPC_MoveChild0,
/*360844*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360847*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360849*/                OPC_CheckType, MVT::v4i32,
/*360851*/                OPC_MoveParent,
/*360852*/                OPC_MoveParent,
/*360853*/                OPC_CheckType, MVT::v4f32,
/*360855*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360857*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360860*/                OPC_EmitMergeInputChains1_1,
/*360861*/                OPC_EmitInteger, MVT::i32, 4, 
/*360864*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*360877*/              0, // EndSwitchType
/*360878*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->360961
/*360881*/              OPC_RecordMemRef,
/*360882*/              OPC_RecordNode, // #1 = 'ld' chained node
/*360883*/              OPC_CheckFoldableChainNode,
/*360884*/              OPC_RecordChild1, // #2 = $src
/*360885*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360887*/              OPC_CheckPredicate, 9, // Predicate_load
/*360889*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*360891*/              OPC_MoveParent,
/*360892*/              OPC_MoveParent,
/*360893*/              OPC_MoveChild2,
/*360894*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360897*/              OPC_MoveChild0,
/*360898*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360901*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360903*/              OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->360932
/*360906*/                OPC_MoveParent,
/*360907*/                OPC_MoveParent,
/*360908*/                OPC_CheckType, MVT::v4f64,
/*360910*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360912*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360915*/                OPC_EmitMergeInputChains1_1,
/*360916*/                OPC_EmitInteger, MVT::i32, 4, 
/*360919*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*360932*/              /*SwitchType*/ 26, MVT::v4i32,// ->360960
/*360934*/                OPC_MoveParent,
/*360935*/                OPC_MoveParent,
/*360936*/                OPC_CheckType, MVT::v4f32,
/*360938*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360940*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*360943*/                OPC_EmitMergeInputChains1_1,
/*360944*/                OPC_EmitInteger, MVT::i32, 4, 
/*360947*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*360960*/              0, // EndSwitchType
/*360961*/            0, // EndSwitchOpcode
/*360962*/          /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FTRUNC),// ->361155
/*360966*/            OPC_MoveChild0,
/*360967*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(X86ISD::VBROADCAST),// ->361071
/*360971*/              OPC_MoveChild0,
/*360972*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*360975*/              OPC_RecordMemRef,
/*360976*/              OPC_RecordNode, // #1 = 'ld' chained node
/*360977*/              OPC_CheckFoldableChainNode,
/*360978*/              OPC_RecordChild1, // #2 = $src
/*360979*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360981*/              OPC_CheckPredicate, 9, // Predicate_load
/*360983*/              OPC_SwitchType /*2 cases */, 41, MVT::f64,// ->361027
/*360986*/                OPC_MoveParent,
/*360987*/                OPC_MoveParent,
/*360988*/                OPC_MoveParent,
/*360989*/                OPC_MoveChild2,
/*360990*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*360993*/                OPC_MoveChild0,
/*360994*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*360997*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*360999*/                OPC_CheckType, MVT::v8i32,
/*361001*/                OPC_MoveParent,
/*361002*/                OPC_MoveParent,
/*361003*/                OPC_CheckType, MVT::v4f64,
/*361005*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361007*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*361010*/                OPC_EmitMergeInputChains1_1,
/*361011*/                OPC_EmitInteger, MVT::i32, 11, 
/*361014*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*361027*/              /*SwitchType*/ 41, MVT::f32,// ->361070
/*361029*/                OPC_MoveParent,
/*361030*/                OPC_MoveParent,
/*361031*/                OPC_MoveParent,
/*361032*/                OPC_MoveChild2,
/*361033*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*361036*/                OPC_MoveChild0,
/*361037*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*361040*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*361042*/                OPC_CheckType, MVT::v4i32,
/*361044*/                OPC_MoveParent,
/*361045*/                OPC_MoveParent,
/*361046*/                OPC_CheckType, MVT::v4f32,
/*361048*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361050*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*361053*/                OPC_EmitMergeInputChains1_1,
/*361054*/                OPC_EmitInteger, MVT::i32, 11, 
/*361057*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*361070*/              0, // EndSwitchType
/*361071*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->361154
/*361074*/              OPC_RecordMemRef,
/*361075*/              OPC_RecordNode, // #1 = 'ld' chained node
/*361076*/              OPC_CheckFoldableChainNode,
/*361077*/              OPC_RecordChild1, // #2 = $src
/*361078*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361080*/              OPC_CheckPredicate, 9, // Predicate_load
/*361082*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*361084*/              OPC_MoveParent,
/*361085*/              OPC_MoveParent,
/*361086*/              OPC_MoveChild2,
/*361087*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*361090*/              OPC_MoveChild0,
/*361091*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*361094*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*361096*/              OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->361125
/*361099*/                OPC_MoveParent,
/*361100*/                OPC_MoveParent,
/*361101*/                OPC_CheckType, MVT::v4f64,
/*361103*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361105*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*361108*/                OPC_EmitMergeInputChains1_1,
/*361109*/                OPC_EmitInteger, MVT::i32, 11, 
/*361112*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*361125*/              /*SwitchType*/ 26, MVT::v4i32,// ->361153
/*361127*/                OPC_MoveParent,
/*361128*/                OPC_MoveParent,
/*361129*/                OPC_CheckType, MVT::v4f32,
/*361131*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361133*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*361136*/                OPC_EmitMergeInputChains1_1,
/*361137*/                OPC_EmitInteger, MVT::i32, 11, 
/*361140*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*361153*/              0, // EndSwitchType
/*361154*/            0, // EndSwitchOpcode
/*361155*/          /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::SHUF128),// ->361273
/*361158*/            OPC_RecordChild0, // #1 = $src1
/*361159*/            OPC_MoveChild1,
/*361160*/            OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::LOAD),// ->361220
/*361164*/              OPC_RecordMemRef,
/*361165*/              OPC_RecordNode, // #2 = 'ld' chained node
/*361166*/              OPC_CheckFoldableChainNode,
/*361167*/              OPC_RecordChild1, // #3 = $src2
/*361168*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361170*/              OPC_CheckPredicate, 9, // Predicate_load
/*361172*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*361174*/              OPC_MoveParent,
/*361175*/              OPC_RecordChild2, // #4 = $src3
/*361176*/              OPC_MoveChild2,
/*361177*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*361180*/              OPC_MoveParent,
/*361181*/              OPC_MoveParent,
/*361182*/              OPC_MoveChild2,
/*361183*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*361186*/              OPC_MoveChild0,
/*361187*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*361190*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*361192*/              OPC_CheckType, MVT::v8i32,
/*361194*/              OPC_MoveParent,
/*361195*/              OPC_MoveParent,
/*361196*/              OPC_CheckType, MVT::v4f64,
/*361198*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361200*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*361203*/              OPC_EmitMergeInputChains1_2,
/*361204*/              OPC_EmitConvertToTarget, 4,
/*361206*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VSHUFF64X2Z256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*361220*/            /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VBROADCAST),// ->361272
/*361223*/              OPC_MoveChild0,
/*361224*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*361227*/              OPC_RecordMemRef,
/*361228*/              OPC_RecordNode, // #2 = 'ld' chained node
/*361229*/              OPC_CheckFoldableChainNode,
/*361230*/              OPC_RecordChild1, // #3 = $src2
/*361231*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361233*/              OPC_CheckPredicate, 9, // Predicate_load
/*361235*/              OPC_CheckType, MVT::f64,
/*361237*/              OPC_MoveParent,
/*361238*/              OPC_MoveParent,
/*361239*/              OPC_RecordChild2, // #4 = $src3
/*361240*/              OPC_MoveChild2,
/*361241*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*361244*/              OPC_MoveParent,
/*361245*/              OPC_MoveParent,
/*361246*/              OPC_RecordChild2, // #5 = $src0
/*361247*/              OPC_CheckType, MVT::v4f64,
/*361249*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361251*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*361254*/              OPC_EmitMergeInputChains1_2,
/*361255*/              OPC_EmitConvertToTarget, 4,
/*361257*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 34
                        // Dst: (VSHUFF64X2Z256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*361272*/            0, // EndSwitchOpcode
/*361273*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::UNPCKH),// ->361455
/*361277*/            OPC_RecordChild0, // #1 = $src1
/*361278*/            OPC_MoveChild1,
/*361279*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->361377
/*361283*/              OPC_MoveChild0,
/*361284*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*361287*/              OPC_RecordMemRef,
/*361288*/              OPC_RecordNode, // #2 = 'ld' chained node
/*361289*/              OPC_CheckFoldableChainNode,
/*361290*/              OPC_RecordChild1, // #3 = $src2
/*361291*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361293*/              OPC_CheckPredicate, 9, // Predicate_load
/*361295*/              OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->361336
/*361298*/                OPC_MoveParent,
/*361299*/                OPC_MoveParent,
/*361300*/                OPC_MoveParent,
/*361301*/                OPC_MoveChild2,
/*361302*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*361305*/                OPC_MoveChild0,
/*361306*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*361309*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*361311*/                OPC_CheckType, MVT::v4i32,
/*361313*/                OPC_MoveParent,
/*361314*/                OPC_MoveParent,
/*361315*/                OPC_CheckType, MVT::v4f32,
/*361317*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361319*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361322*/                OPC_EmitMergeInputChains1_2,
/*361323*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VUNPCKHPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361336*/              /*SwitchType*/ 38, MVT::f64,// ->361376
/*361338*/                OPC_MoveParent,
/*361339*/                OPC_MoveParent,
/*361340*/                OPC_MoveParent,
/*361341*/                OPC_MoveChild2,
/*361342*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*361345*/                OPC_MoveChild0,
/*361346*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*361349*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*361351*/                OPC_CheckType, MVT::v8i32,
/*361353*/                OPC_MoveParent,
/*361354*/                OPC_MoveParent,
/*361355*/                OPC_CheckType, MVT::v4f64,
/*361357*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361359*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361362*/                OPC_EmitMergeInputChains1_2,
/*361363*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VUNPCKHPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361376*/              0, // EndSwitchType
/*361377*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->361454
/*361380*/              OPC_RecordMemRef,
/*361381*/              OPC_RecordNode, // #2 = 'ld' chained node
/*361382*/              OPC_CheckFoldableChainNode,
/*361383*/              OPC_RecordChild1, // #3 = $src2
/*361384*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361386*/              OPC_CheckPredicate, 9, // Predicate_load
/*361388*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*361390*/              OPC_MoveParent,
/*361391*/              OPC_MoveParent,
/*361392*/              OPC_MoveChild2,
/*361393*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*361396*/              OPC_MoveChild0,
/*361397*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*361400*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*361402*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->361428
/*361405*/                OPC_MoveParent,
/*361406*/                OPC_MoveParent,
/*361407*/                OPC_CheckType, MVT::v4f32,
/*361409*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361411*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361414*/                OPC_EmitMergeInputChains1_2,
/*361415*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VUNPCKHPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361428*/              /*SwitchType*/ 23, MVT::v8i32,// ->361453
/*361430*/                OPC_MoveParent,
/*361431*/                OPC_MoveParent,
/*361432*/                OPC_CheckType, MVT::v4f64,
/*361434*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361436*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361439*/                OPC_EmitMergeInputChains1_2,
/*361440*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VUNPCKHPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361453*/              0, // EndSwitchType
/*361454*/            0, // EndSwitchOpcode
/*361455*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::UNPCKL),// ->361637
/*361459*/            OPC_RecordChild0, // #1 = $src1
/*361460*/            OPC_MoveChild1,
/*361461*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->361559
/*361465*/              OPC_MoveChild0,
/*361466*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*361469*/              OPC_RecordMemRef,
/*361470*/              OPC_RecordNode, // #2 = 'ld' chained node
/*361471*/              OPC_CheckFoldableChainNode,
/*361472*/              OPC_RecordChild1, // #3 = $src2
/*361473*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361475*/              OPC_CheckPredicate, 9, // Predicate_load
/*361477*/              OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->361518
/*361480*/                OPC_MoveParent,
/*361481*/                OPC_MoveParent,
/*361482*/                OPC_MoveParent,
/*361483*/                OPC_MoveChild2,
/*361484*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*361487*/                OPC_MoveChild0,
/*361488*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*361491*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*361493*/                OPC_CheckType, MVT::v4i32,
/*361495*/                OPC_MoveParent,
/*361496*/                OPC_MoveParent,
/*361497*/                OPC_CheckType, MVT::v4f32,
/*361499*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361501*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361504*/                OPC_EmitMergeInputChains1_2,
/*361505*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VUNPCKLPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361518*/              /*SwitchType*/ 38, MVT::f64,// ->361558
/*361520*/                OPC_MoveParent,
/*361521*/                OPC_MoveParent,
/*361522*/                OPC_MoveParent,
/*361523*/                OPC_MoveChild2,
/*361524*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*361527*/                OPC_MoveChild0,
/*361528*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*361531*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*361533*/                OPC_CheckType, MVT::v8i32,
/*361535*/                OPC_MoveParent,
/*361536*/                OPC_MoveParent,
/*361537*/                OPC_CheckType, MVT::v4f64,
/*361539*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361541*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361544*/                OPC_EmitMergeInputChains1_2,
/*361545*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VUNPCKLPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361558*/              0, // EndSwitchType
/*361559*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->361636
/*361562*/              OPC_RecordMemRef,
/*361563*/              OPC_RecordNode, // #2 = 'ld' chained node
/*361564*/              OPC_CheckFoldableChainNode,
/*361565*/              OPC_RecordChild1, // #3 = $src2
/*361566*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361568*/              OPC_CheckPredicate, 9, // Predicate_load
/*361570*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*361572*/              OPC_MoveParent,
/*361573*/              OPC_MoveParent,
/*361574*/              OPC_MoveChild2,
/*361575*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*361578*/              OPC_MoveChild0,
/*361579*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*361582*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*361584*/              OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->361610
/*361587*/                OPC_MoveParent,
/*361588*/                OPC_MoveParent,
/*361589*/                OPC_CheckType, MVT::v4f32,
/*361591*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361593*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361596*/                OPC_EmitMergeInputChains1_2,
/*361597*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VUNPCKLPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361610*/              /*SwitchType*/ 23, MVT::v8i32,// ->361635
/*361612*/                OPC_MoveParent,
/*361613*/                OPC_MoveParent,
/*361614*/                OPC_CheckType, MVT::v4f64,
/*361616*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361618*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361621*/                OPC_EmitMergeInputChains1_2,
/*361622*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VUNPCKLPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361635*/              0, // EndSwitchType
/*361636*/            0, // EndSwitchOpcode
/*361637*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::SHUFP),// ->361825
/*361641*/            OPC_RecordChild0, // #1 = $src1
/*361642*/            OPC_MoveChild1,
/*361643*/            OPC_SwitchOpcode /*2 cases */, 86, TARGET_VAL(ISD::LOAD),// ->361733
/*361647*/              OPC_RecordMemRef,
/*361648*/              OPC_RecordNode, // #2 = 'ld' chained node
/*361649*/              OPC_CheckFoldableChainNode,
/*361650*/              OPC_RecordChild1, // #3 = $src2
/*361651*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361653*/              OPC_CheckPredicate, 9, // Predicate_load
/*361655*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*361657*/              OPC_MoveParent,
/*361658*/              OPC_RecordChild2, // #4 = $src3
/*361659*/              OPC_MoveChild2,
/*361660*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*361663*/              OPC_MoveParent,
/*361664*/              OPC_MoveParent,
/*361665*/              OPC_MoveChild2,
/*361666*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*361669*/              OPC_MoveChild0,
/*361670*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*361673*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*361675*/              OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->361704
/*361678*/                OPC_MoveParent,
/*361679*/                OPC_MoveParent,
/*361680*/                OPC_CheckType, MVT::v4f32,
/*361682*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361684*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*361687*/                OPC_EmitMergeInputChains1_2,
/*361688*/                OPC_EmitConvertToTarget, 4,
/*361690*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSHUFPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*361704*/              /*SwitchType*/ 26, MVT::v8i32,// ->361732
/*361706*/                OPC_MoveParent,
/*361707*/                OPC_MoveParent,
/*361708*/                OPC_CheckType, MVT::v4f64,
/*361710*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361712*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*361715*/                OPC_EmitMergeInputChains1_2,
/*361716*/                OPC_EmitConvertToTarget, 4,
/*361718*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSHUFPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*361732*/              0, // EndSwitchType
/*361733*/            /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::VBROADCAST),// ->361824
/*361736*/              OPC_MoveChild0,
/*361737*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*361740*/              OPC_RecordMemRef,
/*361741*/              OPC_RecordNode, // #2 = 'ld' chained node
/*361742*/              OPC_CheckFoldableChainNode,
/*361743*/              OPC_RecordChild1, // #3 = $src2
/*361744*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361746*/              OPC_CheckPredicate, 9, // Predicate_load
/*361748*/              OPC_SwitchType /*2 cases */, 35, MVT::f32,// ->361786
/*361751*/                OPC_MoveParent,
/*361752*/                OPC_MoveParent,
/*361753*/                OPC_RecordChild2, // #4 = $src3
/*361754*/                OPC_MoveChild2,
/*361755*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*361758*/                OPC_MoveParent,
/*361759*/                OPC_MoveParent,
/*361760*/                OPC_RecordChild2, // #5 = $src0
/*361761*/                OPC_CheckType, MVT::v4f32,
/*361763*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361765*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*361768*/                OPC_EmitMergeInputChains1_2,
/*361769*/                OPC_EmitConvertToTarget, 4,
/*361771*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 34
                          // Dst: (VSHUFPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*361786*/              /*SwitchType*/ 35, MVT::f64,// ->361823
/*361788*/                OPC_MoveParent,
/*361789*/                OPC_MoveParent,
/*361790*/                OPC_RecordChild2, // #4 = $src3
/*361791*/                OPC_MoveChild2,
/*361792*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*361795*/                OPC_MoveParent,
/*361796*/                OPC_MoveParent,
/*361797*/                OPC_RecordChild2, // #5 = $src0
/*361798*/                OPC_CheckType, MVT::v4f64,
/*361800*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361802*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*361805*/                OPC_EmitMergeInputChains1_2,
/*361806*/                OPC_EmitConvertToTarget, 4,
/*361808*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 34
                          // Dst: (VSHUFPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*361823*/              0, // EndSwitchType
/*361824*/            0, // EndSwitchOpcode
/*361825*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(X86ISD::SCALEF),// ->361974
/*361829*/            OPC_RecordChild0, // #1 = $src1
/*361830*/            OPC_MoveChild1,
/*361831*/            OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(X86ISD::VBROADCAST),// ->361909
/*361835*/              OPC_MoveChild0,
/*361836*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*361839*/              OPC_RecordMemRef,
/*361840*/              OPC_RecordNode, // #2 = 'ld' chained node
/*361841*/              OPC_CheckFoldableChainNode,
/*361842*/              OPC_RecordChild1, // #3 = $src2
/*361843*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361845*/              OPC_CheckPredicate, 9, // Predicate_load
/*361847*/              OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->361878
/*361850*/                OPC_MoveParent,
/*361851*/                OPC_MoveParent,
/*361852*/                OPC_CheckChild2Integer, 4, 
/*361854*/                OPC_MoveParent,
/*361855*/                OPC_RecordChild2, // #4 = $src0
/*361856*/                OPC_CheckType, MVT::v4f32,
/*361858*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361860*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*361863*/                OPC_EmitMergeInputChains1_2,
/*361864*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 36
                          // Dst: (VSCALEFPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361878*/              /*SwitchType*/ 28, MVT::f64,// ->361908
/*361880*/                OPC_MoveParent,
/*361881*/                OPC_MoveParent,
/*361882*/                OPC_CheckChild2Integer, 4, 
/*361884*/                OPC_MoveParent,
/*361885*/                OPC_RecordChild2, // #4 = $src0
/*361886*/                OPC_CheckType, MVT::v4f64,
/*361888*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361890*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*361893*/                OPC_EmitMergeInputChains1_2,
/*361894*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR256X:{ *:[v4f64] }:$src0) - Complexity = 36
                          // Dst: (VSCALEFPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361908*/              0, // EndSwitchType
/*361909*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->361973
/*361912*/              OPC_RecordMemRef,
/*361913*/              OPC_RecordNode, // #2 = 'ld' chained node
/*361914*/              OPC_CheckFoldableChainNode,
/*361915*/              OPC_RecordChild1, // #3 = $src2
/*361916*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361918*/              OPC_CheckPredicate, 9, // Predicate_load
/*361920*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*361922*/              OPC_MoveParent,
/*361923*/              OPC_CheckChild2Integer, 4, 
/*361925*/              OPC_MoveParent,
/*361926*/              OPC_RecordChild2, // #4 = $src0
/*361927*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->361950
/*361930*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361932*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*361935*/                OPC_EmitMergeInputChains1_2,
/*361936*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 33
                          // Dst: (VSCALEFPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361950*/              /*SwitchType*/ 20, MVT::v4f64,// ->361972
/*361952*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361954*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*361957*/                OPC_EmitMergeInputChains1_2,
/*361958*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR256X:{ *:[v4f64] }:$src0) - Complexity = 33
                          // Dst: (VSCALEFPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361972*/              0, // EndSwitchType
/*361973*/            0, // EndSwitchOpcode
/*361974*/          /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::FGETEXP_RND),// ->362118
/*361978*/            OPC_MoveChild0,
/*361979*/            OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(X86ISD::VBROADCAST),// ->362055
/*361983*/              OPC_MoveChild0,
/*361984*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*361987*/              OPC_RecordMemRef,
/*361988*/              OPC_RecordNode, // #1 = 'ld' chained node
/*361989*/              OPC_CheckFoldableChainNode,
/*361990*/              OPC_RecordChild1, // #2 = $src
/*361991*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361993*/              OPC_CheckPredicate, 9, // Predicate_load
/*361995*/              OPC_SwitchType /*2 cases */, 27, MVT::f32,// ->362025
/*361998*/                OPC_MoveParent,
/*361999*/                OPC_MoveParent,
/*362000*/                OPC_CheckChild1Integer, 4, 
/*362002*/                OPC_MoveParent,
/*362003*/                OPC_RecordChild2, // #3 = $src0
/*362004*/                OPC_CheckType, MVT::v4f32,
/*362006*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362008*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*362011*/                OPC_EmitMergeInputChains1_1,
/*362012*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 36
                          // Dst: (VGETEXPPSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362025*/              /*SwitchType*/ 27, MVT::f64,// ->362054
/*362027*/                OPC_MoveParent,
/*362028*/                OPC_MoveParent,
/*362029*/                OPC_CheckChild1Integer, 4, 
/*362031*/                OPC_MoveParent,
/*362032*/                OPC_RecordChild2, // #3 = $src0
/*362033*/                OPC_CheckType, MVT::v4f64,
/*362035*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362037*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*362040*/                OPC_EmitMergeInputChains1_1,
/*362041*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR256X:{ *:[v4f64] }:$src0) - Complexity = 36
                          // Dst: (VGETEXPPDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362054*/              0, // EndSwitchType
/*362055*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->362117
/*362058*/              OPC_RecordMemRef,
/*362059*/              OPC_RecordNode, // #1 = 'ld' chained node
/*362060*/              OPC_CheckFoldableChainNode,
/*362061*/              OPC_RecordChild1, // #2 = $src
/*362062*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362064*/              OPC_CheckPredicate, 9, // Predicate_load
/*362066*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*362068*/              OPC_MoveParent,
/*362069*/              OPC_CheckChild1Integer, 4, 
/*362071*/              OPC_MoveParent,
/*362072*/              OPC_RecordChild2, // #3 = $src0
/*362073*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->362095
/*362076*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362078*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*362081*/                OPC_EmitMergeInputChains1_1,
/*362082*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 33
                          // Dst: (VGETEXPPSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362095*/              /*SwitchType*/ 19, MVT::v4f64,// ->362116
/*362097*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362099*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*362102*/                OPC_EmitMergeInputChains1_1,
/*362103*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR256X:{ *:[v4f64] }:$src0) - Complexity = 33
                          // Dst: (VGETEXPPDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362116*/              0, // EndSwitchType
/*362117*/            0, // EndSwitchOpcode
/*362118*/          /*SwitchOpcode*/ 55, TARGET_VAL(X86ISD::VFIXUPIMM),// ->362176
/*362121*/            OPC_RecordChild0, // #1 = $src1
/*362122*/            OPC_RecordChild1, // #2 = $src2
/*362123*/            OPC_MoveChild2,
/*362124*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362127*/            OPC_RecordMemRef,
/*362128*/            OPC_RecordNode, // #3 = 'ld' chained node
/*362129*/            OPC_CheckFoldableChainNode,
/*362130*/            OPC_RecordChild1, // #4 = $src3
/*362131*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362133*/            OPC_CheckPredicate, 9, // Predicate_load
/*362135*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*362137*/            OPC_MoveParent,
/*362138*/            OPC_RecordChild3, // #5 = $src4
/*362139*/            OPC_MoveChild3,
/*362140*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*362143*/            OPC_MoveParent,
/*362144*/            OPC_CheckChild4Integer, 4, 
/*362146*/            OPC_MoveParent,
/*362147*/            OPC_CheckChild2Same, 1,
/*362149*/            OPC_CheckType, MVT::v4f64,
/*362151*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362153*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*362156*/            OPC_EmitMergeInputChains, 1, 3, 
/*362159*/            OPC_EmitConvertToTarget, 5,
/*362161*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR256X:{ *:[v4f64] }:$src1) - Complexity = 36
                      // Dst: (VFIXUPIMMPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*362176*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->362229
/*362179*/            OPC_MoveChild0,
/*362180*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362183*/            OPC_RecordMemRef,
/*362184*/            OPC_RecordNode, // #1 = 'ld' chained node
/*362185*/            OPC_CheckFoldableChainNode,
/*362186*/            OPC_RecordChild1, // #2 = $src
/*362187*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362189*/            OPC_CheckPredicate, 9, // Predicate_load
/*362191*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*362193*/            OPC_MoveParent,
/*362194*/            OPC_MoveParent,
/*362195*/            OPC_MoveChild2,
/*362196*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*362199*/            OPC_MoveChild0,
/*362200*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*362203*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*362205*/            OPC_CheckType, MVT::v8i32,
/*362207*/            OPC_MoveParent,
/*362208*/            OPC_MoveParent,
/*362209*/            OPC_CheckType, MVT::v4f64,
/*362211*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*362213*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*362216*/            OPC_EmitMergeInputChains1_1,
/*362217*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X2Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86SubVBroadcast:{ *:[v4f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VBROADCASTF64X2Z128rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362229*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::EXPAND),// ->362308
/*362232*/            OPC_MoveChild0,
/*362233*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362236*/            OPC_RecordMemRef,
/*362237*/            OPC_RecordNode, // #1 = 'ld' chained node
/*362238*/            OPC_CheckFoldableChainNode,
/*362239*/            OPC_RecordChild1, // #2 = $src1
/*362240*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362242*/            OPC_CheckPredicate, 9, // Predicate_load
/*362244*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*362246*/            OPC_MoveParent,
/*362247*/            OPC_MoveParent,
/*362248*/            OPC_MoveChild2,
/*362249*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*362252*/            OPC_MoveChild0,
/*362253*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*362256*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*362258*/            OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->362283
/*362261*/              OPC_MoveParent,
/*362262*/              OPC_MoveParent,
/*362263*/              OPC_CheckType, MVT::v4f32,
/*362265*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362267*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*362270*/              OPC_EmitMergeInputChains1_1,
/*362271*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VEXPANDPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*362283*/            /*SwitchType*/ 22, MVT::v8i32,// ->362307
/*362285*/              OPC_MoveParent,
/*362286*/              OPC_MoveParent,
/*362287*/              OPC_CheckType, MVT::v4f64,
/*362289*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362291*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*362294*/              OPC_EmitMergeInputChains1_1,
/*362295*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VEXPANDPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*362307*/            0, // EndSwitchType
/*362308*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::MOVSHDUP),// ->362361
/*362311*/            OPC_MoveChild0,
/*362312*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362315*/            OPC_RecordMemRef,
/*362316*/            OPC_RecordNode, // #1 = 'ld' chained node
/*362317*/            OPC_CheckFoldableChainNode,
/*362318*/            OPC_RecordChild1, // #2 = $src1
/*362319*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362321*/            OPC_CheckPredicate, 9, // Predicate_load
/*362323*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*362325*/            OPC_MoveParent,
/*362326*/            OPC_MoveParent,
/*362327*/            OPC_MoveChild2,
/*362328*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*362331*/            OPC_MoveChild0,
/*362332*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*362335*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*362337*/            OPC_CheckType, MVT::v4i32,
/*362339*/            OPC_MoveParent,
/*362340*/            OPC_MoveParent,
/*362341*/            OPC_CheckType, MVT::v4f32,
/*362343*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362345*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*362348*/            OPC_EmitMergeInputChains1_1,
/*362349*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Movshdup:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VMOVSHDUPZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*362361*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::MOVSLDUP),// ->362414
/*362364*/            OPC_MoveChild0,
/*362365*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362368*/            OPC_RecordMemRef,
/*362369*/            OPC_RecordNode, // #1 = 'ld' chained node
/*362370*/            OPC_CheckFoldableChainNode,
/*362371*/            OPC_RecordChild1, // #2 = $src1
/*362372*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362374*/            OPC_CheckPredicate, 9, // Predicate_load
/*362376*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*362378*/            OPC_MoveParent,
/*362379*/            OPC_MoveParent,
/*362380*/            OPC_MoveChild2,
/*362381*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*362384*/            OPC_MoveChild0,
/*362385*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*362388*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*362390*/            OPC_CheckType, MVT::v4i32,
/*362392*/            OPC_MoveParent,
/*362393*/            OPC_MoveParent,
/*362394*/            OPC_CheckType, MVT::v4f32,
/*362396*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362398*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*362401*/            OPC_EmitMergeInputChains1_1,
/*362402*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Movsldup:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VMOVSLDUPZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*362414*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::MOVDDUP),// ->362467
/*362417*/            OPC_MoveChild0,
/*362418*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362421*/            OPC_RecordMemRef,
/*362422*/            OPC_RecordNode, // #1 = 'ld' chained node
/*362423*/            OPC_CheckFoldableChainNode,
/*362424*/            OPC_RecordChild1, // #2 = $src1
/*362425*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362427*/            OPC_CheckPredicate, 9, // Predicate_load
/*362429*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*362431*/            OPC_MoveParent,
/*362432*/            OPC_MoveParent,
/*362433*/            OPC_MoveChild2,
/*362434*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*362437*/            OPC_MoveChild0,
/*362438*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*362441*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*362443*/            OPC_CheckType, MVT::v8i32,
/*362445*/            OPC_MoveParent,
/*362446*/            OPC_MoveParent,
/*362447*/            OPC_CheckType, MVT::v4f64,
/*362449*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362451*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*362454*/            OPC_EmitMergeInputChains1_1,
/*362455*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Movddup:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VMOVDDUPZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*362467*/          /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::LOAD),// ->362609
/*362471*/            OPC_RecordMemRef,
/*362472*/            OPC_RecordNode, // #1 = 'ld' chained node
/*362473*/            OPC_CheckFoldableChainNode,
/*362474*/            OPC_RecordChild1, // #2 = $src
/*362475*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362477*/            OPC_CheckPredicate, 9, // Predicate_load
/*362479*/            OPC_Scope, 63, /*->362544*/ // 2 children in Scope
/*362481*/              OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*362483*/              OPC_MoveParent,
/*362484*/              OPC_MoveChild2,
/*362485*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*362488*/              OPC_MoveChild0,
/*362489*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*362492*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*362494*/              OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->362519
/*362497*/                OPC_MoveParent,
/*362498*/                OPC_MoveParent,
/*362499*/                OPC_CheckType, MVT::v4f32,
/*362501*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362503*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*362506*/                OPC_EmitMergeInputChains1_1,
/*362507*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVAPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362519*/              /*SwitchType*/ 22, MVT::v8i32,// ->362543
/*362521*/                OPC_MoveParent,
/*362522*/                OPC_MoveParent,
/*362523*/                OPC_CheckType, MVT::v4f64,
/*362525*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362527*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*362530*/                OPC_EmitMergeInputChains1_1,
/*362531*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVAPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362543*/              0, // EndSwitchType
/*362544*/            /*Scope*/ 63, /*->362608*/
/*362545*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*362547*/              OPC_MoveParent,
/*362548*/              OPC_MoveChild2,
/*362549*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*362552*/              OPC_MoveChild0,
/*362553*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*362556*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*362558*/              OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->362583
/*362561*/                OPC_MoveParent,
/*362562*/                OPC_MoveParent,
/*362563*/                OPC_CheckType, MVT::v4f32,
/*362565*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362567*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*362570*/                OPC_EmitMergeInputChains1_1,
/*362571*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVUPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362583*/              /*SwitchType*/ 22, MVT::v8i32,// ->362607
/*362585*/                OPC_MoveParent,
/*362586*/                OPC_MoveParent,
/*362587*/                OPC_CheckType, MVT::v4f64,
/*362589*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362591*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*362594*/                OPC_EmitMergeInputChains1_1,
/*362595*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVUPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362607*/              0, // EndSwitchType
/*362608*/            0, /*End of Scope*/
/*362609*/          0, // EndSwitchOpcode
/*362610*/        /*Scope*/ 58, /*->362669*/
/*362611*/          OPC_RecordChild1, // #1 = $src3
/*362612*/          OPC_MoveChild1,
/*362613*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*362616*/          OPC_RecordChild0, // #2 = $src1
/*362617*/          OPC_MoveChild1,
/*362618*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362621*/          OPC_RecordMemRef,
/*362622*/          OPC_RecordNode, // #3 = 'ld' chained node
/*362623*/          OPC_CheckFoldableChainNode,
/*362624*/          OPC_RecordChild1, // #4 = $src2
/*362625*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362627*/          OPC_CheckPredicate, 9, // Predicate_load
/*362629*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*362631*/          OPC_MoveParent,
/*362632*/          OPC_MoveChild2,
/*362633*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*362636*/          OPC_CheckType, MVT::iPTR,
/*362638*/          OPC_MoveParent,
/*362639*/          OPC_MoveParent,
/*362640*/          OPC_RecordChild2, // #5 = $src0
/*362641*/          OPC_CheckType, MVT::v4f64,
/*362643*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*362645*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*362648*/          OPC_EmitMergeInputChains, 1, 3, 
/*362651*/          OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*362654*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                    // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                    // Dst: (VINSERTF64x2Z256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*362669*/        /*Scope*/ 116|128,96/*12404*/, /*->375075*/
/*362671*/          OPC_MoveChild1,
/*362672*/          OPC_SwitchOpcode /*55 cases */, 15|128,1/*143*/, TARGET_VAL(X86ISD::VBROADCAST),// ->362820
/*362677*/            OPC_MoveChild0,
/*362678*/            OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->362754
/*362682*/              OPC_MoveChild0,
/*362683*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362686*/              OPC_RecordMemRef,
/*362687*/              OPC_RecordNode, // #1 = 'ld' chained node
/*362688*/              OPC_CheckFoldableChainNode,
/*362689*/              OPC_RecordChild1, // #2 = $src
/*362690*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362692*/              OPC_CheckPredicate, 9, // Predicate_load
/*362694*/              OPC_SwitchType /*2 cases */, 27, MVT::f32,// ->362724
/*362697*/                OPC_MoveParent,
/*362698*/                OPC_CheckType, MVT::v4f32,
/*362700*/                OPC_MoveParent,
/*362701*/                OPC_MoveParent,
/*362702*/                OPC_RecordChild2, // #3 = $src0
/*362703*/                OPC_CheckType, MVT::v4f32,
/*362705*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362707*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*362710*/                OPC_EmitMergeInputChains1_1,
/*362711*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTSSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362724*/              /*SwitchType*/ 27, MVT::f64,// ->362753
/*362726*/                OPC_MoveParent,
/*362727*/                OPC_CheckType, MVT::v2f64,
/*362729*/                OPC_MoveParent,
/*362730*/                OPC_MoveParent,
/*362731*/                OPC_RecordChild2, // #3 = $src0
/*362732*/                OPC_CheckType, MVT::v4f64,
/*362734*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362736*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*362739*/                OPC_EmitMergeInputChains1_1,
/*362740*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTSDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362753*/              0, // EndSwitchType
/*362754*/            /*SwitchOpcode*/ 62, TARGET_VAL(ISD::LOAD),// ->362819
/*362757*/              OPC_RecordMemRef,
/*362758*/              OPC_RecordNode, // #1 = 'ld' chained node
/*362759*/              OPC_CheckFoldableChainNode,
/*362760*/              OPC_RecordChild1, // #2 = $src
/*362761*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362763*/              OPC_CheckPredicate, 9, // Predicate_load
/*362765*/              OPC_SwitchType /*2 cases */, 24, MVT::f32,// ->362792
/*362768*/                OPC_MoveParent,
/*362769*/                OPC_MoveParent,
/*362770*/                OPC_RecordChild2, // #3 = $src0
/*362771*/                OPC_CheckType, MVT::v4f32,
/*362773*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362775*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*362778*/                OPC_EmitMergeInputChains1_1,
/*362779*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VBROADCASTSSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362792*/              /*SwitchType*/ 24, MVT::f64,// ->362818
/*362794*/                OPC_MoveParent,
/*362795*/                OPC_MoveParent,
/*362796*/                OPC_RecordChild2, // #3 = $src0
/*362797*/                OPC_CheckType, MVT::v4f64,
/*362799*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362801*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*362804*/                OPC_EmitMergeInputChains1_1,
/*362805*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VBROADCASTSDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362818*/              0, // EndSwitchType
/*362819*/            0, // EndSwitchOpcode
/*362820*/          /*SwitchOpcode*/ 10|128,7/*906*/, TARGET_VAL(ISD::BITCAST),// ->363730
/*362824*/            OPC_Scope, 72|128,5/*712*/, /*->363539*/ // 2 children in Scope
/*362827*/              OPC_MoveChild0,
/*362828*/              OPC_SwitchOpcode /*6 cases */, 41, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->362873
/*362832*/                OPC_MoveChild0,
/*362833*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362836*/                OPC_RecordMemRef,
/*362837*/                OPC_RecordNode, // #1 = 'ld' chained node
/*362838*/                OPC_CheckFoldableChainNode,
/*362839*/                OPC_RecordChild1, // #2 = $src
/*362840*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362842*/                OPC_CheckPredicate, 9, // Predicate_load
/*362844*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*362846*/                OPC_MoveParent,
/*362847*/                OPC_CheckType, MVT::v8f32,
/*362849*/                OPC_MoveParent,
/*362850*/                OPC_MoveParent,
/*362851*/                OPC_RecordChild2, // #3 = $src0
/*362852*/                OPC_CheckType, MVT::v4f64,
/*362854*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*362856*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*362859*/                OPC_EmitMergeInputChains1_1,
/*362860*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X2Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86SubVBroadcast:{ *:[v8f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTF64X2Z128rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362873*/              /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::AND),// ->363021
/*362877*/                OPC_Scope, 70, /*->362949*/ // 2 children in Scope
/*362879*/                  OPC_RecordChild0, // #1 = $src1
/*362880*/                  OPC_MoveChild1,
/*362881*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362884*/                  OPC_RecordMemRef,
/*362885*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*362886*/                  OPC_CheckFoldableChainNode,
/*362887*/                  OPC_RecordChild1, // #3 = $src2
/*362888*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362890*/                  OPC_CheckPredicate, 9, // Predicate_load
/*362892*/                  OPC_MoveParent,
/*362893*/                  OPC_SwitchType /*2 cases */, 25, MVT::v2i64,// ->362921
/*362896*/                    OPC_MoveParent,
/*362897*/                    OPC_MoveParent,
/*362898*/                    OPC_RecordChild2, // #4 = $src0
/*362899*/                    OPC_CheckType, MVT::v4f32,
/*362901*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362903*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362906*/                    OPC_EmitMergeInputChains1_2,
/*362907*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*362921*/                  /*SwitchType*/ 25, MVT::v4i64,// ->362948
/*362923*/                    OPC_MoveParent,
/*362924*/                    OPC_MoveParent,
/*362925*/                    OPC_RecordChild2, // #4 = $src0
/*362926*/                    OPC_CheckType, MVT::v4f64,
/*362928*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362930*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362933*/                    OPC_EmitMergeInputChains1_2,
/*362934*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*362948*/                  0, // EndSwitchType
/*362949*/                /*Scope*/ 70, /*->363020*/
/*362950*/                  OPC_MoveChild0,
/*362951*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362954*/                  OPC_RecordMemRef,
/*362955*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*362956*/                  OPC_CheckFoldableChainNode,
/*362957*/                  OPC_RecordChild1, // #2 = $src2
/*362958*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362960*/                  OPC_CheckPredicate, 9, // Predicate_load
/*362962*/                  OPC_MoveParent,
/*362963*/                  OPC_RecordChild1, // #3 = $src1
/*362964*/                  OPC_SwitchType /*2 cases */, 25, MVT::v2i64,// ->362992
/*362967*/                    OPC_MoveParent,
/*362968*/                    OPC_MoveParent,
/*362969*/                    OPC_RecordChild2, // #4 = $src0
/*362970*/                    OPC_CheckType, MVT::v4f32,
/*362972*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362974*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362977*/                    OPC_EmitMergeInputChains1_1,
/*362978*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*362992*/                  /*SwitchType*/ 25, MVT::v4i64,// ->363019
/*362994*/                    OPC_MoveParent,
/*362995*/                    OPC_MoveParent,
/*362996*/                    OPC_RecordChild2, // #4 = $src0
/*362997*/                    OPC_CheckType, MVT::v4f64,
/*362999*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363001*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363004*/                    OPC_EmitMergeInputChains1_1,
/*363005*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363019*/                  0, // EndSwitchType
/*363020*/                0, /*End of Scope*/
/*363021*/              /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::OR),// ->363169
/*363025*/                OPC_Scope, 70, /*->363097*/ // 2 children in Scope
/*363027*/                  OPC_RecordChild0, // #1 = $src1
/*363028*/                  OPC_MoveChild1,
/*363029*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*363032*/                  OPC_RecordMemRef,
/*363033*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*363034*/                  OPC_CheckFoldableChainNode,
/*363035*/                  OPC_RecordChild1, // #3 = $src2
/*363036*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363038*/                  OPC_CheckPredicate, 9, // Predicate_load
/*363040*/                  OPC_MoveParent,
/*363041*/                  OPC_SwitchType /*2 cases */, 25, MVT::v2i64,// ->363069
/*363044*/                    OPC_MoveParent,
/*363045*/                    OPC_MoveParent,
/*363046*/                    OPC_RecordChild2, // #4 = $src0
/*363047*/                    OPC_CheckType, MVT::v4f32,
/*363049*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363051*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363054*/                    OPC_EmitMergeInputChains1_2,
/*363055*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363069*/                  /*SwitchType*/ 25, MVT::v4i64,// ->363096
/*363071*/                    OPC_MoveParent,
/*363072*/                    OPC_MoveParent,
/*363073*/                    OPC_RecordChild2, // #4 = $src0
/*363074*/                    OPC_CheckType, MVT::v4f64,
/*363076*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363078*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363081*/                    OPC_EmitMergeInputChains1_2,
/*363082*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363096*/                  0, // EndSwitchType
/*363097*/                /*Scope*/ 70, /*->363168*/
/*363098*/                  OPC_MoveChild0,
/*363099*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*363102*/                  OPC_RecordMemRef,
/*363103*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*363104*/                  OPC_CheckFoldableChainNode,
/*363105*/                  OPC_RecordChild1, // #2 = $src2
/*363106*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363108*/                  OPC_CheckPredicate, 9, // Predicate_load
/*363110*/                  OPC_MoveParent,
/*363111*/                  OPC_RecordChild1, // #3 = $src1
/*363112*/                  OPC_SwitchType /*2 cases */, 25, MVT::v2i64,// ->363140
/*363115*/                    OPC_MoveParent,
/*363116*/                    OPC_MoveParent,
/*363117*/                    OPC_RecordChild2, // #4 = $src0
/*363118*/                    OPC_CheckType, MVT::v4f32,
/*363120*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363122*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363125*/                    OPC_EmitMergeInputChains1_1,
/*363126*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363140*/                  /*SwitchType*/ 25, MVT::v4i64,// ->363167
/*363142*/                    OPC_MoveParent,
/*363143*/                    OPC_MoveParent,
/*363144*/                    OPC_RecordChild2, // #4 = $src0
/*363145*/                    OPC_CheckType, MVT::v4f64,
/*363147*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363149*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363152*/                    OPC_EmitMergeInputChains1_1,
/*363153*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363167*/                  0, // EndSwitchType
/*363168*/                0, /*End of Scope*/
/*363169*/              /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::XOR),// ->363317
/*363173*/                OPC_Scope, 70, /*->363245*/ // 2 children in Scope
/*363175*/                  OPC_RecordChild0, // #1 = $src1
/*363176*/                  OPC_MoveChild1,
/*363177*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*363180*/                  OPC_RecordMemRef,
/*363181*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*363182*/                  OPC_CheckFoldableChainNode,
/*363183*/                  OPC_RecordChild1, // #3 = $src2
/*363184*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363186*/                  OPC_CheckPredicate, 9, // Predicate_load
/*363188*/                  OPC_MoveParent,
/*363189*/                  OPC_SwitchType /*2 cases */, 25, MVT::v2i64,// ->363217
/*363192*/                    OPC_MoveParent,
/*363193*/                    OPC_MoveParent,
/*363194*/                    OPC_RecordChild2, // #4 = $src0
/*363195*/                    OPC_CheckType, MVT::v4f32,
/*363197*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363199*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363202*/                    OPC_EmitMergeInputChains1_2,
/*363203*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363217*/                  /*SwitchType*/ 25, MVT::v4i64,// ->363244
/*363219*/                    OPC_MoveParent,
/*363220*/                    OPC_MoveParent,
/*363221*/                    OPC_RecordChild2, // #4 = $src0
/*363222*/                    OPC_CheckType, MVT::v4f64,
/*363224*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363226*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363229*/                    OPC_EmitMergeInputChains1_2,
/*363230*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363244*/                  0, // EndSwitchType
/*363245*/                /*Scope*/ 70, /*->363316*/
/*363246*/                  OPC_MoveChild0,
/*363247*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*363250*/                  OPC_RecordMemRef,
/*363251*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*363252*/                  OPC_CheckFoldableChainNode,
/*363253*/                  OPC_RecordChild1, // #2 = $src2
/*363254*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363256*/                  OPC_CheckPredicate, 9, // Predicate_load
/*363258*/                  OPC_MoveParent,
/*363259*/                  OPC_RecordChild1, // #3 = $src1
/*363260*/                  OPC_SwitchType /*2 cases */, 25, MVT::v2i64,// ->363288
/*363263*/                    OPC_MoveParent,
/*363264*/                    OPC_MoveParent,
/*363265*/                    OPC_RecordChild2, // #4 = $src0
/*363266*/                    OPC_CheckType, MVT::v4f32,
/*363268*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363270*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363273*/                    OPC_EmitMergeInputChains1_1,
/*363274*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363288*/                  /*SwitchType*/ 25, MVT::v4i64,// ->363315
/*363290*/                    OPC_MoveParent,
/*363291*/                    OPC_MoveParent,
/*363292*/                    OPC_RecordChild2, // #4 = $src0
/*363293*/                    OPC_CheckType, MVT::v4f64,
/*363295*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363297*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363300*/                    OPC_EmitMergeInputChains1_1,
/*363301*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363315*/                  0, // EndSwitchType
/*363316*/                0, /*End of Scope*/
/*363317*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::ANDNP),// ->363390
/*363320*/                OPC_RecordChild0, // #1 = $src1
/*363321*/                OPC_MoveChild1,
/*363322*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*363325*/                OPC_RecordMemRef,
/*363326*/                OPC_RecordNode, // #2 = 'ld' chained node
/*363327*/                OPC_CheckFoldableChainNode,
/*363328*/                OPC_RecordChild1, // #3 = $src2
/*363329*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363331*/                OPC_CheckPredicate, 9, // Predicate_load
/*363333*/                OPC_MoveParent,
/*363334*/                OPC_SwitchType /*2 cases */, 25, MVT::v2i64,// ->363362
/*363337*/                  OPC_MoveParent,
/*363338*/                  OPC_MoveParent,
/*363339*/                  OPC_RecordChild2, // #4 = $src0
/*363340*/                  OPC_CheckType, MVT::v4f32,
/*363342*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363344*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363347*/                  OPC_EmitMergeInputChains1_2,
/*363348*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363362*/                /*SwitchType*/ 25, MVT::v4i64,// ->363389
/*363364*/                  OPC_MoveParent,
/*363365*/                  OPC_MoveParent,
/*363366*/                  OPC_RecordChild2, // #4 = $src0
/*363367*/                  OPC_CheckType, MVT::v4f64,
/*363369*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363371*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363374*/                  OPC_EmitMergeInputChains1_2,
/*363375*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                            // Dst: (VPANDNQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363389*/                0, // EndSwitchType
/*363390*/              /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->363538
/*363394*/                OPC_RecordChild0, // #1 = $src
/*363395*/                OPC_SwitchType /*2 cases */, 94, MVT::v2f64,// ->363492
/*363398*/                  OPC_Scope, 45, /*->363445*/ // 2 children in Scope
/*363400*/                    OPC_CheckChild0Type, MVT::v4f64,
/*363402*/                    OPC_CheckChild1Integer, 0, 
/*363404*/                    OPC_CheckChild1Type, MVT::iPTR,
/*363406*/                    OPC_MoveParent,
/*363407*/                    OPC_MoveParent,
/*363408*/                    OPC_MoveChild2,
/*363409*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*363412*/                    OPC_MoveChild0,
/*363413*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*363416*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*363418*/                    OPC_CheckType, MVT::v4i32,
/*363420*/                    OPC_MoveParent,
/*363421*/                    OPC_MoveParent,
/*363422*/                    OPC_CheckType, MVT::v4f32,
/*363424*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363426*/                    OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*363429*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*363437*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rrkz), 0,
                                  MVT::v4f32, 2/*#Ops*/, 0, 3, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                              // Dst: (VMOVAPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }))
/*363445*/                  /*Scope*/ 45, /*->363491*/
/*363446*/                    OPC_CheckChild0Type, MVT::v8f64,
/*363448*/                    OPC_CheckChild1Integer, 0, 
/*363450*/                    OPC_CheckChild1Type, MVT::iPTR,
/*363452*/                    OPC_MoveParent,
/*363453*/                    OPC_MoveParent,
/*363454*/                    OPC_MoveChild2,
/*363455*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*363458*/                    OPC_MoveChild0,
/*363459*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*363462*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*363464*/                    OPC_CheckType, MVT::v4i32,
/*363466*/                    OPC_MoveParent,
/*363467*/                    OPC_MoveParent,
/*363468*/                    OPC_CheckType, MVT::v4f32,
/*363470*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363472*/                    OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*363475*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*363483*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rrkz), 0,
                                  MVT::v4f32, 2/*#Ops*/, 0, 3, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                              // Dst: (VMOVAPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, sub_xmm:{ *:[i32] }))
/*363491*/                  0, /*End of Scope*/
/*363492*/                /*SwitchType*/ 43, MVT::v8f32,// ->363537
/*363494*/                  OPC_CheckChild1Integer, 0, 
/*363496*/                  OPC_CheckChild1Type, MVT::iPTR,
/*363498*/                  OPC_MoveParent,
/*363499*/                  OPC_MoveParent,
/*363500*/                  OPC_MoveChild2,
/*363501*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*363504*/                  OPC_MoveChild0,
/*363505*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*363508*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*363510*/                  OPC_CheckType, MVT::v8i32,
/*363512*/                  OPC_MoveParent,
/*363513*/                  OPC_MoveParent,
/*363514*/                  OPC_CheckType, MVT::v4f64,
/*363516*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363518*/                  OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*363521*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v8f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*363529*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rrkz), 0,
                                MVT::v4f64, 2/*#Ops*/, 0, 3, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                            // Dst: (VMOVAPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, sub_ymm:{ *:[i32] }))
/*363537*/                0, // EndSwitchType
/*363538*/              0, // EndSwitchOpcode
/*363539*/            /*Scope*/ 60|128,1/*188*/, /*->363729*/
/*363541*/              OPC_RecordChild0, // #1 = $ins
/*363542*/              OPC_MoveChild0,
/*363543*/              OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->363591
/*363547*/                OPC_RecordChild0, // #2 = $src1
/*363548*/                OPC_RecordChild1, // #3 = $src2
/*363549*/                OPC_MoveChild2,
/*363550*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*363553*/                OPC_CheckType, MVT::iPTR,
/*363555*/                OPC_MoveParent,
/*363556*/                OPC_CheckType, MVT::v8f32,
/*363558*/                OPC_MoveParent,
/*363559*/                OPC_MoveParent,
/*363560*/                OPC_MoveChild2,
/*363561*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*363564*/                OPC_MoveChild0,
/*363565*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*363568*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*363570*/                OPC_CheckType, MVT::v8i32,
/*363572*/                OPC_MoveParent,
/*363573*/                OPC_MoveParent,
/*363574*/                OPC_CheckType, MVT::v4f64,
/*363576*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*363578*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*363581*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rrkz), 0,
                              MVT::v4f64, 4/*#Ops*/, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VINSERTF64x2Z256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ins))
/*363591*/              /*SwitchOpcode*/ 5|128,1/*133*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->363728
/*363595*/                OPC_RecordChild0, // #2 = $src
/*363596*/                OPC_Scope, 43, /*->363641*/ // 3 children in Scope
/*363598*/                  OPC_CheckChild0Type, MVT::v4f64,
/*363600*/                  OPC_MoveChild1,
/*363601*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*363604*/                  OPC_CheckType, MVT::iPTR,
/*363606*/                  OPC_MoveParent,
/*363607*/                  OPC_CheckType, MVT::v2f64,
/*363609*/                  OPC_MoveParent,
/*363610*/                  OPC_MoveParent,
/*363611*/                  OPC_MoveChild2,
/*363612*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*363615*/                  OPC_MoveChild0,
/*363616*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*363619*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*363621*/                  OPC_CheckType, MVT::v4i32,
/*363623*/                  OPC_MoveParent,
/*363624*/                  OPC_MoveParent,
/*363625*/                  OPC_CheckType, MVT::v4f32,
/*363627*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363629*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*363632*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Z256rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 2, 3, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VEXTRACTF32x4Z256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*363641*/                /*Scope*/ 43, /*->363685*/
/*363642*/                  OPC_CheckChild0Type, MVT::v8f64,
/*363644*/                  OPC_MoveChild1,
/*363645*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*363648*/                  OPC_CheckType, MVT::iPTR,
/*363650*/                  OPC_MoveParent,
/*363651*/                  OPC_CheckType, MVT::v2f64,
/*363653*/                  OPC_MoveParent,
/*363654*/                  OPC_MoveParent,
/*363655*/                  OPC_MoveChild2,
/*363656*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*363659*/                  OPC_MoveChild0,
/*363660*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*363663*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*363665*/                  OPC_CheckType, MVT::v4i32,
/*363667*/                  OPC_MoveParent,
/*363668*/                  OPC_MoveParent,
/*363669*/                  OPC_CheckType, MVT::v4f32,
/*363671*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*363673*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*363676*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Zrrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 2, 3, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VEXTRACTF32x4Zrrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8f64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*363685*/                /*Scope*/ 41, /*->363727*/
/*363686*/                  OPC_MoveChild1,
/*363687*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*363690*/                  OPC_CheckType, MVT::iPTR,
/*363692*/                  OPC_MoveParent,
/*363693*/                  OPC_CheckType, MVT::v8f32,
/*363695*/                  OPC_MoveParent,
/*363696*/                  OPC_MoveParent,
/*363697*/                  OPC_MoveChild2,
/*363698*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*363701*/                  OPC_MoveChild0,
/*363702*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*363705*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*363707*/                  OPC_CheckType, MVT::v8i32,
/*363709*/                  OPC_MoveParent,
/*363710*/                  OPC_MoveParent,
/*363711*/                  OPC_CheckType, MVT::v4f64,
/*363713*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*363715*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*363718*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x4Zrrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 2, 3, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VEXTRACTF64x4Zrrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16f32] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ext))
/*363727*/                0, /*End of Scope*/
/*363728*/              0, // EndSwitchOpcode
/*363729*/            0, /*End of Scope*/
/*363730*/          /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(X86ISD::VPERMV3),// ->363946
/*363734*/            OPC_RecordChild0, // #1 = $src2
/*363735*/            OPC_RecordChild1, // #2 = $src1
/*363736*/            OPC_MoveChild2,
/*363737*/            OPC_SwitchOpcode /*2 cases */, 125, TARGET_VAL(ISD::LOAD),// ->363866
/*363741*/              OPC_RecordMemRef,
/*363742*/              OPC_RecordNode, // #3 = 'ld' chained node
/*363743*/              OPC_CheckFoldableChainNode,
/*363744*/              OPC_RecordChild1, // #4 = $src3
/*363745*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363747*/              OPC_CheckPredicate, 9, // Predicate_load
/*363749*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*363751*/              OPC_MoveParent,
/*363752*/              OPC_MoveParent,
/*363753*/              OPC_Scope, 57, /*->363812*/ // 2 children in Scope
/*363755*/                OPC_MoveChild2,
/*363756*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*363759*/                OPC_CheckChild0Same, 2,
/*363761*/                OPC_MoveParent,
/*363762*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->363787
/*363765*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363767*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*363770*/                  OPC_EmitMergeInputChains, 1, 3, 
/*363773*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src1)) - Complexity = 31
                            // Dst: (VPERMI2PS128rmk:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*363787*/                /*SwitchType*/ 22, MVT::v4f64,// ->363811
/*363789*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363791*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*363794*/                  OPC_EmitMergeInputChains, 1, 3, 
/*363797*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PD256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1)) - Complexity = 31
                            // Dst: (VPERMI2PD256rmk:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*363811*/                0, // EndSwitchType
/*363812*/              /*Scope*/ 52, /*->363865*/
/*363813*/                OPC_CheckChild2Same, 1,
/*363815*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->363840
/*363818*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363820*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*363823*/                  OPC_EmitMergeInputChains, 1, 3, 
/*363826*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2PS128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*363840*/                /*SwitchType*/ 22, MVT::v4f64,// ->363864
/*363842*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363844*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*363847*/                  OPC_EmitMergeInputChains, 1, 3, 
/*363850*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2PD256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*363864*/                0, // EndSwitchType
/*363865*/              0, /*End of Scope*/
/*363866*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->363945
/*363869*/              OPC_MoveChild0,
/*363870*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*363873*/              OPC_RecordMemRef,
/*363874*/              OPC_RecordNode, // #3 = 'ld' chained node
/*363875*/              OPC_CheckFoldableChainNode,
/*363876*/              OPC_RecordChild1, // #4 = $src3
/*363877*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363879*/              OPC_CheckPredicate, 9, // Predicate_load
/*363881*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->363913
/*363884*/                OPC_MoveParent,
/*363885*/                OPC_MoveParent,
/*363886*/                OPC_MoveParent,
/*363887*/                OPC_CheckChild2Same, 1,
/*363889*/                OPC_CheckType, MVT::v4f32,
/*363891*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363893*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*363896*/                OPC_EmitMergeInputChains, 1, 3, 
/*363899*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VPERMT2PS128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*363913*/              /*SwitchType*/ 29, MVT::f64,// ->363944
/*363915*/                OPC_MoveParent,
/*363916*/                OPC_MoveParent,
/*363917*/                OPC_MoveParent,
/*363918*/                OPC_CheckChild2Same, 1,
/*363920*/                OPC_CheckType, MVT::v4f64,
/*363922*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*363924*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*363927*/                OPC_EmitMergeInputChains, 1, 3, 
/*363930*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VPERMT2PD256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*363944*/              0, // EndSwitchType
/*363945*/            0, // EndSwitchOpcode
/*363946*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(ISD::FADD),// ->364235
/*363950*/            OPC_Scope, 75, /*->364027*/ // 4 children in Scope
/*363952*/              OPC_RecordChild0, // #1 = $src1
/*363953*/              OPC_MoveChild1,
/*363954*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*363957*/              OPC_MoveChild0,
/*363958*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*363961*/              OPC_RecordMemRef,
/*363962*/              OPC_RecordNode, // #2 = 'ld' chained node
/*363963*/              OPC_CheckFoldableChainNode,
/*363964*/              OPC_RecordChild1, // #3 = $src2
/*363965*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363967*/              OPC_CheckPredicate, 9, // Predicate_load
/*363969*/              OPC_SwitchType /*2 cases */, 26, MVT::f32,// ->363998
/*363972*/                OPC_MoveParent,
/*363973*/                OPC_MoveParent,
/*363974*/                OPC_MoveParent,
/*363975*/                OPC_RecordChild2, // #4 = $src0
/*363976*/                OPC_CheckType, MVT::v4f32,
/*363978*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363980*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363983*/                OPC_EmitMergeInputChains1_2,
/*363984*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VADDPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363998*/              /*SwitchType*/ 26, MVT::f64,// ->364026
/*364000*/                OPC_MoveParent,
/*364001*/                OPC_MoveParent,
/*364002*/                OPC_MoveParent,
/*364003*/                OPC_RecordChild2, // #4 = $src0
/*364004*/                OPC_CheckType, MVT::v4f64,
/*364006*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364008*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364011*/                OPC_EmitMergeInputChains1_2,
/*364012*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VADDPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364026*/              0, // EndSwitchType
/*364027*/            /*Scope*/ 76, /*->364104*/
/*364028*/              OPC_MoveChild0,
/*364029*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*364032*/              OPC_MoveChild0,
/*364033*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*364036*/              OPC_RecordMemRef,
/*364037*/              OPC_RecordNode, // #1 = 'ld' chained node
/*364038*/              OPC_CheckFoldableChainNode,
/*364039*/              OPC_RecordChild1, // #2 = $src2
/*364040*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364042*/              OPC_CheckPredicate, 9, // Predicate_load
/*364044*/              OPC_SwitchType /*2 cases */, 27, MVT::f32,// ->364074
/*364047*/                OPC_MoveParent,
/*364048*/                OPC_MoveParent,
/*364049*/                OPC_RecordChild1, // #3 = $src1
/*364050*/                OPC_MoveParent,
/*364051*/                OPC_RecordChild2, // #4 = $src0
/*364052*/                OPC_CheckType, MVT::v4f32,
/*364054*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364056*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364059*/                OPC_EmitMergeInputChains1_1,
/*364060*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VADDPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364074*/              /*SwitchType*/ 27, MVT::f64,// ->364103
/*364076*/                OPC_MoveParent,
/*364077*/                OPC_MoveParent,
/*364078*/                OPC_RecordChild1, // #3 = $src1
/*364079*/                OPC_MoveParent,
/*364080*/                OPC_RecordChild2, // #4 = $src0
/*364081*/                OPC_CheckType, MVT::v4f64,
/*364083*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364085*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364088*/                OPC_EmitMergeInputChains1_1,
/*364089*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VADDPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364103*/              0, // EndSwitchType
/*364104*/            /*Scope*/ 64, /*->364169*/
/*364105*/              OPC_RecordChild0, // #1 = $src1
/*364106*/              OPC_MoveChild1,
/*364107*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*364110*/              OPC_RecordMemRef,
/*364111*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364112*/              OPC_CheckFoldableChainNode,
/*364113*/              OPC_RecordChild1, // #3 = $src2
/*364114*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364116*/              OPC_CheckPredicate, 9, // Predicate_load
/*364118*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*364120*/              OPC_MoveParent,
/*364121*/              OPC_MoveParent,
/*364122*/              OPC_RecordChild2, // #4 = $src0
/*364123*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->364146
/*364126*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364128*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364131*/                OPC_EmitMergeInputChains1_2,
/*364132*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364146*/              /*SwitchType*/ 20, MVT::v4f64,// ->364168
/*364148*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364150*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364153*/                OPC_EmitMergeInputChains1_2,
/*364154*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364168*/              0, // EndSwitchType
/*364169*/            /*Scope*/ 64, /*->364234*/
/*364170*/              OPC_MoveChild0,
/*364171*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*364174*/              OPC_RecordMemRef,
/*364175*/              OPC_RecordNode, // #1 = 'ld' chained node
/*364176*/              OPC_CheckFoldableChainNode,
/*364177*/              OPC_RecordChild1, // #2 = $src2
/*364178*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364180*/              OPC_CheckPredicate, 9, // Predicate_load
/*364182*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*364184*/              OPC_MoveParent,
/*364185*/              OPC_RecordChild1, // #3 = $src1
/*364186*/              OPC_MoveParent,
/*364187*/              OPC_RecordChild2, // #4 = $src0
/*364188*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->364211
/*364191*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364193*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364196*/                OPC_EmitMergeInputChains1_1,
/*364197*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364211*/              /*SwitchType*/ 20, MVT::v4f64,// ->364233
/*364213*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364215*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364218*/                OPC_EmitMergeInputChains1_1,
/*364219*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364233*/              0, // EndSwitchType
/*364234*/            0, /*End of Scope*/
/*364235*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(ISD::FMUL),// ->364524
/*364239*/            OPC_Scope, 75, /*->364316*/ // 4 children in Scope
/*364241*/              OPC_RecordChild0, // #1 = $src1
/*364242*/              OPC_MoveChild1,
/*364243*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*364246*/              OPC_MoveChild0,
/*364247*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*364250*/              OPC_RecordMemRef,
/*364251*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364252*/              OPC_CheckFoldableChainNode,
/*364253*/              OPC_RecordChild1, // #3 = $src2
/*364254*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364256*/              OPC_CheckPredicate, 9, // Predicate_load
/*364258*/              OPC_SwitchType /*2 cases */, 26, MVT::f32,// ->364287
/*364261*/                OPC_MoveParent,
/*364262*/                OPC_MoveParent,
/*364263*/                OPC_MoveParent,
/*364264*/                OPC_RecordChild2, // #4 = $src0
/*364265*/                OPC_CheckType, MVT::v4f32,
/*364267*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364269*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364272*/                OPC_EmitMergeInputChains1_2,
/*364273*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VMULPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364287*/              /*SwitchType*/ 26, MVT::f64,// ->364315
/*364289*/                OPC_MoveParent,
/*364290*/                OPC_MoveParent,
/*364291*/                OPC_MoveParent,
/*364292*/                OPC_RecordChild2, // #4 = $src0
/*364293*/                OPC_CheckType, MVT::v4f64,
/*364295*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364297*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364300*/                OPC_EmitMergeInputChains1_2,
/*364301*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VMULPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364315*/              0, // EndSwitchType
/*364316*/            /*Scope*/ 76, /*->364393*/
/*364317*/              OPC_MoveChild0,
/*364318*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*364321*/              OPC_MoveChild0,
/*364322*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*364325*/              OPC_RecordMemRef,
/*364326*/              OPC_RecordNode, // #1 = 'ld' chained node
/*364327*/              OPC_CheckFoldableChainNode,
/*364328*/              OPC_RecordChild1, // #2 = $src2
/*364329*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364331*/              OPC_CheckPredicate, 9, // Predicate_load
/*364333*/              OPC_SwitchType /*2 cases */, 27, MVT::f32,// ->364363
/*364336*/                OPC_MoveParent,
/*364337*/                OPC_MoveParent,
/*364338*/                OPC_RecordChild1, // #3 = $src1
/*364339*/                OPC_MoveParent,
/*364340*/                OPC_RecordChild2, // #4 = $src0
/*364341*/                OPC_CheckType, MVT::v4f32,
/*364343*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364345*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364348*/                OPC_EmitMergeInputChains1_1,
/*364349*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VMULPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364363*/              /*SwitchType*/ 27, MVT::f64,// ->364392
/*364365*/                OPC_MoveParent,
/*364366*/                OPC_MoveParent,
/*364367*/                OPC_RecordChild1, // #3 = $src1
/*364368*/                OPC_MoveParent,
/*364369*/                OPC_RecordChild2, // #4 = $src0
/*364370*/                OPC_CheckType, MVT::v4f64,
/*364372*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364374*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364377*/                OPC_EmitMergeInputChains1_1,
/*364378*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VMULPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364392*/              0, // EndSwitchType
/*364393*/            /*Scope*/ 64, /*->364458*/
/*364394*/              OPC_RecordChild0, // #1 = $src1
/*364395*/              OPC_MoveChild1,
/*364396*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*364399*/              OPC_RecordMemRef,
/*364400*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364401*/              OPC_CheckFoldableChainNode,
/*364402*/              OPC_RecordChild1, // #3 = $src2
/*364403*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364405*/              OPC_CheckPredicate, 9, // Predicate_load
/*364407*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*364409*/              OPC_MoveParent,
/*364410*/              OPC_MoveParent,
/*364411*/              OPC_RecordChild2, // #4 = $src0
/*364412*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->364435
/*364415*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364417*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364420*/                OPC_EmitMergeInputChains1_2,
/*364421*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364435*/              /*SwitchType*/ 20, MVT::v4f64,// ->364457
/*364437*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364439*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364442*/                OPC_EmitMergeInputChains1_2,
/*364443*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364457*/              0, // EndSwitchType
/*364458*/            /*Scope*/ 64, /*->364523*/
/*364459*/              OPC_MoveChild0,
/*364460*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*364463*/              OPC_RecordMemRef,
/*364464*/              OPC_RecordNode, // #1 = 'ld' chained node
/*364465*/              OPC_CheckFoldableChainNode,
/*364466*/              OPC_RecordChild1, // #2 = $src2
/*364467*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364469*/              OPC_CheckPredicate, 9, // Predicate_load
/*364471*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*364473*/              OPC_MoveParent,
/*364474*/              OPC_RecordChild1, // #3 = $src1
/*364475*/              OPC_MoveParent,
/*364476*/              OPC_RecordChild2, // #4 = $src0
/*364477*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->364500
/*364480*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364482*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364485*/                OPC_EmitMergeInputChains1_1,
/*364486*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364500*/              /*SwitchType*/ 20, MVT::v4f64,// ->364522
/*364502*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364504*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364507*/                OPC_EmitMergeInputChains1_1,
/*364508*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364522*/              0, // EndSwitchType
/*364523*/            0, /*End of Scope*/
/*364524*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(ISD::FSUB),// ->364667
/*364528*/            OPC_RecordChild0, // #1 = $src1
/*364529*/            OPC_MoveChild1,
/*364530*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->364604
/*364534*/              OPC_MoveChild0,
/*364535*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*364538*/              OPC_RecordMemRef,
/*364539*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364540*/              OPC_CheckFoldableChainNode,
/*364541*/              OPC_RecordChild1, // #3 = $src2
/*364542*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364544*/              OPC_CheckPredicate, 9, // Predicate_load
/*364546*/              OPC_SwitchType /*2 cases */, 26, MVT::f32,// ->364575
/*364549*/                OPC_MoveParent,
/*364550*/                OPC_MoveParent,
/*364551*/                OPC_MoveParent,
/*364552*/                OPC_RecordChild2, // #4 = $src0
/*364553*/                OPC_CheckType, MVT::v4f32,
/*364555*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364557*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364560*/                OPC_EmitMergeInputChains1_2,
/*364561*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VSUBPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364575*/              /*SwitchType*/ 26, MVT::f64,// ->364603
/*364577*/                OPC_MoveParent,
/*364578*/                OPC_MoveParent,
/*364579*/                OPC_MoveParent,
/*364580*/                OPC_RecordChild2, // #4 = $src0
/*364581*/                OPC_CheckType, MVT::v4f64,
/*364583*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364585*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364588*/                OPC_EmitMergeInputChains1_2,
/*364589*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VSUBPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364603*/              0, // EndSwitchType
/*364604*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->364666
/*364607*/              OPC_RecordMemRef,
/*364608*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364609*/              OPC_CheckFoldableChainNode,
/*364610*/              OPC_RecordChild1, // #3 = $src2
/*364611*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364613*/              OPC_CheckPredicate, 9, // Predicate_load
/*364615*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*364617*/              OPC_MoveParent,
/*364618*/              OPC_MoveParent,
/*364619*/              OPC_RecordChild2, // #4 = $src0
/*364620*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->364643
/*364623*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364625*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364628*/                OPC_EmitMergeInputChains1_2,
/*364629*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSUBPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364643*/              /*SwitchType*/ 20, MVT::v4f64,// ->364665
/*364645*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364647*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364650*/                OPC_EmitMergeInputChains1_2,
/*364651*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364665*/              0, // EndSwitchType
/*364666*/            0, // EndSwitchOpcode
/*364667*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(ISD::FDIV),// ->364810
/*364671*/            OPC_RecordChild0, // #1 = $src1
/*364672*/            OPC_MoveChild1,
/*364673*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->364747
/*364677*/              OPC_MoveChild0,
/*364678*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*364681*/              OPC_RecordMemRef,
/*364682*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364683*/              OPC_CheckFoldableChainNode,
/*364684*/              OPC_RecordChild1, // #3 = $src2
/*364685*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364687*/              OPC_CheckPredicate, 9, // Predicate_load
/*364689*/              OPC_SwitchType /*2 cases */, 26, MVT::f32,// ->364718
/*364692*/                OPC_MoveParent,
/*364693*/                OPC_MoveParent,
/*364694*/                OPC_MoveParent,
/*364695*/                OPC_RecordChild2, // #4 = $src0
/*364696*/                OPC_CheckType, MVT::v4f32,
/*364698*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364700*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364703*/                OPC_EmitMergeInputChains1_2,
/*364704*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VDIVPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364718*/              /*SwitchType*/ 26, MVT::f64,// ->364746
/*364720*/                OPC_MoveParent,
/*364721*/                OPC_MoveParent,
/*364722*/                OPC_MoveParent,
/*364723*/                OPC_RecordChild2, // #4 = $src0
/*364724*/                OPC_CheckType, MVT::v4f64,
/*364726*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364728*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364731*/                OPC_EmitMergeInputChains1_2,
/*364732*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VDIVPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364746*/              0, // EndSwitchType
/*364747*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->364809
/*364750*/              OPC_RecordMemRef,
/*364751*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364752*/              OPC_CheckFoldableChainNode,
/*364753*/              OPC_RecordChild1, // #3 = $src2
/*364754*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364756*/              OPC_CheckPredicate, 9, // Predicate_load
/*364758*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*364760*/              OPC_MoveParent,
/*364761*/              OPC_MoveParent,
/*364762*/              OPC_RecordChild2, // #4 = $src0
/*364763*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->364786
/*364766*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364768*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364771*/                OPC_EmitMergeInputChains1_2,
/*364772*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VDIVPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364786*/              /*SwitchType*/ 20, MVT::v4f64,// ->364808
/*364788*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364790*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364793*/                OPC_EmitMergeInputChains1_2,
/*364794*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364808*/              0, // EndSwitchType
/*364809*/            0, // EndSwitchOpcode
/*364810*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::FMIN),// ->364953
/*364814*/            OPC_RecordChild0, // #1 = $src1
/*364815*/            OPC_MoveChild1,
/*364816*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->364890
/*364820*/              OPC_MoveChild0,
/*364821*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*364824*/              OPC_RecordMemRef,
/*364825*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364826*/              OPC_CheckFoldableChainNode,
/*364827*/              OPC_RecordChild1, // #3 = $src2
/*364828*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364830*/              OPC_CheckPredicate, 9, // Predicate_load
/*364832*/              OPC_SwitchType /*2 cases */, 26, MVT::f32,// ->364861
/*364835*/                OPC_MoveParent,
/*364836*/                OPC_MoveParent,
/*364837*/                OPC_MoveParent,
/*364838*/                OPC_RecordChild2, // #4 = $src0
/*364839*/                OPC_CheckType, MVT::v4f32,
/*364841*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364843*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364846*/                OPC_EmitMergeInputChains1_2,
/*364847*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VMINPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364861*/              /*SwitchType*/ 26, MVT::f64,// ->364889
/*364863*/                OPC_MoveParent,
/*364864*/                OPC_MoveParent,
/*364865*/                OPC_MoveParent,
/*364866*/                OPC_RecordChild2, // #4 = $src0
/*364867*/                OPC_CheckType, MVT::v4f64,
/*364869*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364874*/                OPC_EmitMergeInputChains1_2,
/*364875*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VMINPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364889*/              0, // EndSwitchType
/*364890*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->364952
/*364893*/              OPC_RecordMemRef,
/*364894*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364895*/              OPC_CheckFoldableChainNode,
/*364896*/              OPC_RecordChild1, // #3 = $src2
/*364897*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364899*/              OPC_CheckPredicate, 9, // Predicate_load
/*364901*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*364903*/              OPC_MoveParent,
/*364904*/              OPC_MoveParent,
/*364905*/              OPC_RecordChild2, // #4 = $src0
/*364906*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->364929
/*364909*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364911*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364914*/                OPC_EmitMergeInputChains1_2,
/*364915*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMINPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364929*/              /*SwitchType*/ 20, MVT::v4f64,// ->364951
/*364931*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364933*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364936*/                OPC_EmitMergeInputChains1_2,
/*364937*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMINPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364951*/              0, // EndSwitchType
/*364952*/            0, // EndSwitchOpcode
/*364953*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::FMAX),// ->365096
/*364957*/            OPC_RecordChild0, // #1 = $src1
/*364958*/            OPC_MoveChild1,
/*364959*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->365033
/*364963*/              OPC_MoveChild0,
/*364964*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*364967*/              OPC_RecordMemRef,
/*364968*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364969*/              OPC_CheckFoldableChainNode,
/*364970*/              OPC_RecordChild1, // #3 = $src2
/*364971*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364973*/              OPC_CheckPredicate, 9, // Predicate_load
/*364975*/              OPC_SwitchType /*2 cases */, 26, MVT::f32,// ->365004
/*364978*/                OPC_MoveParent,
/*364979*/                OPC_MoveParent,
/*364980*/                OPC_MoveParent,
/*364981*/                OPC_RecordChild2, // #4 = $src0
/*364982*/                OPC_CheckType, MVT::v4f32,
/*364984*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364986*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364989*/                OPC_EmitMergeInputChains1_2,
/*364990*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VMAXPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365004*/              /*SwitchType*/ 26, MVT::f64,// ->365032
/*365006*/                OPC_MoveParent,
/*365007*/                OPC_MoveParent,
/*365008*/                OPC_MoveParent,
/*365009*/                OPC_RecordChild2, // #4 = $src0
/*365010*/                OPC_CheckType, MVT::v4f64,
/*365012*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365014*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365017*/                OPC_EmitMergeInputChains1_2,
/*365018*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VMAXPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365032*/              0, // EndSwitchType
/*365033*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->365095
/*365036*/              OPC_RecordMemRef,
/*365037*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365038*/              OPC_CheckFoldableChainNode,
/*365039*/              OPC_RecordChild1, // #3 = $src2
/*365040*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365042*/              OPC_CheckPredicate, 9, // Predicate_load
/*365044*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*365046*/              OPC_MoveParent,
/*365047*/              OPC_MoveParent,
/*365048*/              OPC_RecordChild2, // #4 = $src0
/*365049*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->365072
/*365052*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365054*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365057*/                OPC_EmitMergeInputChains1_2,
/*365058*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365072*/              /*SwitchType*/ 20, MVT::v4f64,// ->365094
/*365074*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365076*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365079*/                OPC_EmitMergeInputChains1_2,
/*365080*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365094*/              0, // EndSwitchType
/*365095*/            0, // EndSwitchOpcode
/*365096*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(X86ISD::FMINC),// ->365385
/*365100*/            OPC_Scope, 75, /*->365177*/ // 4 children in Scope
/*365102*/              OPC_RecordChild0, // #1 = $src1
/*365103*/              OPC_MoveChild1,
/*365104*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*365107*/              OPC_MoveChild0,
/*365108*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365111*/              OPC_RecordMemRef,
/*365112*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365113*/              OPC_CheckFoldableChainNode,
/*365114*/              OPC_RecordChild1, // #3 = $src2
/*365115*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365117*/              OPC_CheckPredicate, 9, // Predicate_load
/*365119*/              OPC_SwitchType /*2 cases */, 26, MVT::f32,// ->365148
/*365122*/                OPC_MoveParent,
/*365123*/                OPC_MoveParent,
/*365124*/                OPC_MoveParent,
/*365125*/                OPC_RecordChild2, // #4 = $src0
/*365126*/                OPC_CheckType, MVT::v4f32,
/*365128*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365130*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365133*/                OPC_EmitMergeInputChains1_2,
/*365134*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VMINCPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365148*/              /*SwitchType*/ 26, MVT::f64,// ->365176
/*365150*/                OPC_MoveParent,
/*365151*/                OPC_MoveParent,
/*365152*/                OPC_MoveParent,
/*365153*/                OPC_RecordChild2, // #4 = $src0
/*365154*/                OPC_CheckType, MVT::v4f64,
/*365156*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365158*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365161*/                OPC_EmitMergeInputChains1_2,
/*365162*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VMINCPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365176*/              0, // EndSwitchType
/*365177*/            /*Scope*/ 76, /*->365254*/
/*365178*/              OPC_MoveChild0,
/*365179*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*365182*/              OPC_MoveChild0,
/*365183*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365186*/              OPC_RecordMemRef,
/*365187*/              OPC_RecordNode, // #1 = 'ld' chained node
/*365188*/              OPC_CheckFoldableChainNode,
/*365189*/              OPC_RecordChild1, // #2 = $src2
/*365190*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365192*/              OPC_CheckPredicate, 9, // Predicate_load
/*365194*/              OPC_SwitchType /*2 cases */, 27, MVT::f32,// ->365224
/*365197*/                OPC_MoveParent,
/*365198*/                OPC_MoveParent,
/*365199*/                OPC_RecordChild1, // #3 = $src1
/*365200*/                OPC_MoveParent,
/*365201*/                OPC_RecordChild2, // #4 = $src0
/*365202*/                OPC_CheckType, MVT::v4f32,
/*365204*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365206*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365209*/                OPC_EmitMergeInputChains1_1,
/*365210*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VMINCPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365224*/              /*SwitchType*/ 27, MVT::f64,// ->365253
/*365226*/                OPC_MoveParent,
/*365227*/                OPC_MoveParent,
/*365228*/                OPC_RecordChild1, // #3 = $src1
/*365229*/                OPC_MoveParent,
/*365230*/                OPC_RecordChild2, // #4 = $src0
/*365231*/                OPC_CheckType, MVT::v4f64,
/*365233*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365235*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365238*/                OPC_EmitMergeInputChains1_1,
/*365239*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VMINCPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365253*/              0, // EndSwitchType
/*365254*/            /*Scope*/ 64, /*->365319*/
/*365255*/              OPC_RecordChild0, // #1 = $src1
/*365256*/              OPC_MoveChild1,
/*365257*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365260*/              OPC_RecordMemRef,
/*365261*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365262*/              OPC_CheckFoldableChainNode,
/*365263*/              OPC_RecordChild1, // #3 = $src2
/*365264*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365266*/              OPC_CheckPredicate, 9, // Predicate_load
/*365268*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*365270*/              OPC_MoveParent,
/*365271*/              OPC_MoveParent,
/*365272*/              OPC_RecordChild2, // #4 = $src0
/*365273*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->365296
/*365276*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365278*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365281*/                OPC_EmitMergeInputChains1_2,
/*365282*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMINCPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365296*/              /*SwitchType*/ 20, MVT::v4f64,// ->365318
/*365298*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365300*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365303*/                OPC_EmitMergeInputChains1_2,
/*365304*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMINCPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365318*/              0, // EndSwitchType
/*365319*/            /*Scope*/ 64, /*->365384*/
/*365320*/              OPC_MoveChild0,
/*365321*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365324*/              OPC_RecordMemRef,
/*365325*/              OPC_RecordNode, // #1 = 'ld' chained node
/*365326*/              OPC_CheckFoldableChainNode,
/*365327*/              OPC_RecordChild1, // #2 = $src2
/*365328*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365330*/              OPC_CheckPredicate, 9, // Predicate_load
/*365332*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*365334*/              OPC_MoveParent,
/*365335*/              OPC_RecordChild1, // #3 = $src1
/*365336*/              OPC_MoveParent,
/*365337*/              OPC_RecordChild2, // #4 = $src0
/*365338*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->365361
/*365341*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365343*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365346*/                OPC_EmitMergeInputChains1_1,
/*365347*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMINCPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365361*/              /*SwitchType*/ 20, MVT::v4f64,// ->365383
/*365363*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365365*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365368*/                OPC_EmitMergeInputChains1_1,
/*365369*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMINCPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365383*/              0, // EndSwitchType
/*365384*/            0, /*End of Scope*/
/*365385*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(X86ISD::FMAXC),// ->365674
/*365389*/            OPC_Scope, 75, /*->365466*/ // 4 children in Scope
/*365391*/              OPC_RecordChild0, // #1 = $src1
/*365392*/              OPC_MoveChild1,
/*365393*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*365396*/              OPC_MoveChild0,
/*365397*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365400*/              OPC_RecordMemRef,
/*365401*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365402*/              OPC_CheckFoldableChainNode,
/*365403*/              OPC_RecordChild1, // #3 = $src2
/*365404*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365406*/              OPC_CheckPredicate, 9, // Predicate_load
/*365408*/              OPC_SwitchType /*2 cases */, 26, MVT::f32,// ->365437
/*365411*/                OPC_MoveParent,
/*365412*/                OPC_MoveParent,
/*365413*/                OPC_MoveParent,
/*365414*/                OPC_RecordChild2, // #4 = $src0
/*365415*/                OPC_CheckType, MVT::v4f32,
/*365417*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365419*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365422*/                OPC_EmitMergeInputChains1_2,
/*365423*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VMAXCPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365437*/              /*SwitchType*/ 26, MVT::f64,// ->365465
/*365439*/                OPC_MoveParent,
/*365440*/                OPC_MoveParent,
/*365441*/                OPC_MoveParent,
/*365442*/                OPC_RecordChild2, // #4 = $src0
/*365443*/                OPC_CheckType, MVT::v4f64,
/*365445*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365447*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365450*/                OPC_EmitMergeInputChains1_2,
/*365451*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VMAXCPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365465*/              0, // EndSwitchType
/*365466*/            /*Scope*/ 76, /*->365543*/
/*365467*/              OPC_MoveChild0,
/*365468*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*365471*/              OPC_MoveChild0,
/*365472*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365475*/              OPC_RecordMemRef,
/*365476*/              OPC_RecordNode, // #1 = 'ld' chained node
/*365477*/              OPC_CheckFoldableChainNode,
/*365478*/              OPC_RecordChild1, // #2 = $src2
/*365479*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365481*/              OPC_CheckPredicate, 9, // Predicate_load
/*365483*/              OPC_SwitchType /*2 cases */, 27, MVT::f32,// ->365513
/*365486*/                OPC_MoveParent,
/*365487*/                OPC_MoveParent,
/*365488*/                OPC_RecordChild1, // #3 = $src1
/*365489*/                OPC_MoveParent,
/*365490*/                OPC_RecordChild2, // #4 = $src0
/*365491*/                OPC_CheckType, MVT::v4f32,
/*365493*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365495*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365498*/                OPC_EmitMergeInputChains1_1,
/*365499*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VMAXCPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365513*/              /*SwitchType*/ 27, MVT::f64,// ->365542
/*365515*/                OPC_MoveParent,
/*365516*/                OPC_MoveParent,
/*365517*/                OPC_RecordChild1, // #3 = $src1
/*365518*/                OPC_MoveParent,
/*365519*/                OPC_RecordChild2, // #4 = $src0
/*365520*/                OPC_CheckType, MVT::v4f64,
/*365522*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365524*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365527*/                OPC_EmitMergeInputChains1_1,
/*365528*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VMAXCPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365542*/              0, // EndSwitchType
/*365543*/            /*Scope*/ 64, /*->365608*/
/*365544*/              OPC_RecordChild0, // #1 = $src1
/*365545*/              OPC_MoveChild1,
/*365546*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365549*/              OPC_RecordMemRef,
/*365550*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365551*/              OPC_CheckFoldableChainNode,
/*365552*/              OPC_RecordChild1, // #3 = $src2
/*365553*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365555*/              OPC_CheckPredicate, 9, // Predicate_load
/*365557*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*365559*/              OPC_MoveParent,
/*365560*/              OPC_MoveParent,
/*365561*/              OPC_RecordChild2, // #4 = $src0
/*365562*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->365585
/*365565*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365567*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365570*/                OPC_EmitMergeInputChains1_2,
/*365571*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365585*/              /*SwitchType*/ 20, MVT::v4f64,// ->365607
/*365587*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365589*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365592*/                OPC_EmitMergeInputChains1_2,
/*365593*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365607*/              0, // EndSwitchType
/*365608*/            /*Scope*/ 64, /*->365673*/
/*365609*/              OPC_MoveChild0,
/*365610*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365613*/              OPC_RecordMemRef,
/*365614*/              OPC_RecordNode, // #1 = 'ld' chained node
/*365615*/              OPC_CheckFoldableChainNode,
/*365616*/              OPC_RecordChild1, // #2 = $src2
/*365617*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365619*/              OPC_CheckPredicate, 9, // Predicate_load
/*365621*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*365623*/              OPC_MoveParent,
/*365624*/              OPC_RecordChild1, // #3 = $src1
/*365625*/              OPC_MoveParent,
/*365626*/              OPC_RecordChild2, // #4 = $src0
/*365627*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->365650
/*365630*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365632*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365635*/                OPC_EmitMergeInputChains1_1,
/*365636*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365650*/              /*SwitchType*/ 20, MVT::v4f64,// ->365672
/*365652*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365654*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365657*/                OPC_EmitMergeInputChains1_1,
/*365658*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365672*/              0, // EndSwitchType
/*365673*/            0, /*End of Scope*/
/*365674*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VPERMV),// ->365762
/*365677*/            OPC_RecordChild0, // #1 = $src1
/*365678*/            OPC_MoveChild1,
/*365679*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(X86ISD::VBROADCAST),// ->365723
/*365683*/              OPC_MoveChild0,
/*365684*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365687*/              OPC_RecordMemRef,
/*365688*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365689*/              OPC_CheckFoldableChainNode,
/*365690*/              OPC_RecordChild1, // #3 = $src2
/*365691*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365693*/              OPC_CheckPredicate, 9, // Predicate_load
/*365695*/              OPC_CheckType, MVT::f64,
/*365697*/              OPC_MoveParent,
/*365698*/              OPC_MoveParent,
/*365699*/              OPC_MoveParent,
/*365700*/              OPC_RecordChild2, // #4 = $src0
/*365701*/              OPC_CheckType, MVT::v4f64,
/*365703*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365705*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365708*/              OPC_EmitMergeInputChains1_2,
/*365709*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VPERMPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365723*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->365761
/*365726*/              OPC_RecordMemRef,
/*365727*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365728*/              OPC_CheckFoldableChainNode,
/*365729*/              OPC_RecordChild1, // #3 = $src2
/*365730*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365732*/              OPC_CheckPredicate, 9, // Predicate_load
/*365734*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*365736*/              OPC_MoveParent,
/*365737*/              OPC_MoveParent,
/*365738*/              OPC_RecordChild2, // #4 = $src0
/*365739*/              OPC_CheckType, MVT::v4f64,
/*365741*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365743*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365746*/              OPC_EmitMergeInputChains1_2,
/*365747*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                        // Dst: (VPERMPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365761*/            0, // EndSwitchOpcode
/*365762*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VPERMI),// ->365812
/*365765*/            OPC_MoveChild0,
/*365766*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365769*/            OPC_RecordMemRef,
/*365770*/            OPC_RecordNode, // #1 = 'ld' chained node
/*365771*/            OPC_CheckFoldableChainNode,
/*365772*/            OPC_RecordChild1, // #2 = $src1
/*365773*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365775*/            OPC_CheckPredicate, 9, // Predicate_load
/*365777*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*365779*/            OPC_MoveParent,
/*365780*/            OPC_RecordChild1, // #3 = $src2
/*365781*/            OPC_MoveChild1,
/*365782*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*365785*/            OPC_MoveParent,
/*365786*/            OPC_MoveParent,
/*365787*/            OPC_RecordChild2, // #4 = $src0
/*365788*/            OPC_CheckType, MVT::v4f64,
/*365790*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365792*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*365795*/            OPC_EmitMergeInputChains1_1,
/*365796*/            OPC_EmitConvertToTarget, 3,
/*365798*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                      // Dst: (VPERMPDZ256mik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*365812*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::VPERMILPV),// ->365978
/*365816*/            OPC_RecordChild0, // #1 = $src1
/*365817*/            OPC_MoveChild1,
/*365818*/            OPC_SwitchOpcode /*3 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->365864
/*365822*/              OPC_MoveChild0,
/*365823*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365826*/              OPC_RecordMemRef,
/*365827*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365828*/              OPC_CheckFoldableChainNode,
/*365829*/              OPC_RecordChild1, // #3 = $src2
/*365830*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365832*/              OPC_CheckPredicate, 9, // Predicate_load
/*365834*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*365836*/              OPC_CheckType, MVT::v2i64,
/*365838*/              OPC_MoveParent,
/*365839*/              OPC_MoveParent,
/*365840*/              OPC_MoveParent,
/*365841*/              OPC_RecordChild2, // #4 = $src0
/*365842*/              OPC_CheckType, MVT::v4f32,
/*365844*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365846*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365849*/              OPC_EmitMergeInputChains1_2,
/*365850*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                        // Dst: (VPERMILPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365864*/            /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->365939
/*365867*/              OPC_MoveChild0,
/*365868*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365871*/              OPC_RecordMemRef,
/*365872*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365873*/              OPC_CheckFoldableChainNode,
/*365874*/              OPC_RecordChild1, // #3 = $src2
/*365875*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365877*/              OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->365908
/*365880*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*365882*/                OPC_MoveParent,
/*365883*/                OPC_MoveParent,
/*365884*/                OPC_MoveParent,
/*365885*/                OPC_RecordChild2, // #4 = $src0
/*365886*/                OPC_CheckType, MVT::v4f32,
/*365888*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365890*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365893*/                OPC_EmitMergeInputChains1_2,
/*365894*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365908*/              /*SwitchType*/ 28, MVT::i64,// ->365938
/*365910*/                OPC_CheckPredicate, 9, // Predicate_load
/*365912*/                OPC_MoveParent,
/*365913*/                OPC_MoveParent,
/*365914*/                OPC_MoveParent,
/*365915*/                OPC_RecordChild2, // #4 = $src0
/*365916*/                OPC_CheckType, MVT::v4f64,
/*365918*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365920*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365923*/                OPC_EmitMergeInputChains1_2,
/*365924*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365938*/              0, // EndSwitchType
/*365939*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->365977
/*365942*/              OPC_RecordMemRef,
/*365943*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365944*/              OPC_CheckFoldableChainNode,
/*365945*/              OPC_RecordChild1, // #3 = $src2
/*365946*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365948*/              OPC_CheckPredicate, 9, // Predicate_load
/*365950*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*365952*/              OPC_MoveParent,
/*365953*/              OPC_MoveParent,
/*365954*/              OPC_RecordChild2, // #4 = $src0
/*365955*/              OPC_CheckType, MVT::v4f64,
/*365957*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365959*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*365962*/              OPC_EmitMergeInputChains1_2,
/*365963*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                        // Dst: (VPERMILPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365977*/            0, // EndSwitchOpcode
/*365978*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VPERMILPI),// ->366054
/*365981*/            OPC_MoveChild0,
/*365982*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*365985*/            OPC_RecordMemRef,
/*365986*/            OPC_RecordNode, // #1 = 'ld' chained node
/*365987*/            OPC_CheckFoldableChainNode,
/*365988*/            OPC_RecordChild1, // #2 = $src1
/*365989*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365991*/            OPC_CheckPredicate, 9, // Predicate_load
/*365993*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*365995*/            OPC_MoveParent,
/*365996*/            OPC_RecordChild1, // #3 = $src2
/*365997*/            OPC_MoveChild1,
/*365998*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*366001*/            OPC_MoveParent,
/*366002*/            OPC_MoveParent,
/*366003*/            OPC_RecordChild2, // #4 = $src0
/*366004*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->366029
/*366007*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366009*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*366012*/              OPC_EmitMergeInputChains1_1,
/*366013*/              OPC_EmitConvertToTarget, 3,
/*366015*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                        // Dst: (VPERMILPSZ128mik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*366029*/            /*SwitchType*/ 22, MVT::v4f64,// ->366053
/*366031*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366033*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*366036*/              OPC_EmitMergeInputChains1_1,
/*366037*/              OPC_EmitConvertToTarget, 3,
/*366039*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VPERMILPDZ256mik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*366053*/            0, // EndSwitchType
/*366054*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(ISD::FMA),// ->366963
/*366058*/            OPC_Scope, 36|128,1/*164*/, /*->366225*/ // 9 children in Scope
/*366061*/              OPC_RecordChild0, // #1 = $src2
/*366062*/              OPC_Scope, 81, /*->366145*/ // 2 children in Scope
/*366064*/                OPC_RecordChild1, // #2 = $src1
/*366065*/                OPC_MoveChild2,
/*366066*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*366069*/                OPC_MoveChild0,
/*366070*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366073*/                OPC_RecordMemRef,
/*366074*/                OPC_RecordNode, // #3 = 'ld' chained node
/*366075*/                OPC_CheckFoldableChainNode,
/*366076*/                OPC_RecordChild1, // #4 = $src3
/*366077*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366079*/                OPC_CheckPredicate, 9, // Predicate_load
/*366081*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->366113
/*366084*/                  OPC_MoveParent,
/*366085*/                  OPC_MoveParent,
/*366086*/                  OPC_MoveParent,
/*366087*/                  OPC_CheckChild2Same, 2,
/*366089*/                  OPC_CheckType, MVT::v4f32,
/*366091*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366093*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366096*/                  OPC_EmitMergeInputChains, 1, 3, 
/*366099*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366113*/                /*SwitchType*/ 29, MVT::f64,// ->366144
/*366115*/                  OPC_MoveParent,
/*366116*/                  OPC_MoveParent,
/*366117*/                  OPC_MoveParent,
/*366118*/                  OPC_CheckChild2Same, 2,
/*366120*/                  OPC_CheckType, MVT::v4f64,
/*366122*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366124*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366127*/                  OPC_EmitMergeInputChains, 1, 3, 
/*366130*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366144*/                0, // EndSwitchType
/*366145*/              /*Scope*/ 78, /*->366224*/
/*366146*/                OPC_MoveChild1,
/*366147*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*366150*/                OPC_MoveChild0,
/*366151*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366154*/                OPC_RecordMemRef,
/*366155*/                OPC_RecordNode, // #2 = 'ld' chained node
/*366156*/                OPC_CheckFoldableChainNode,
/*366157*/                OPC_RecordChild1, // #3 = $src3
/*366158*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366160*/                OPC_CheckPredicate, 9, // Predicate_load
/*366162*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->366193
/*366165*/                  OPC_MoveParent,
/*366166*/                  OPC_MoveParent,
/*366167*/                  OPC_RecordChild2, // #4 = $src1
/*366168*/                  OPC_MoveParent,
/*366169*/                  OPC_CheckChild2Same, 4,
/*366171*/                  OPC_CheckType, MVT::v4f32,
/*366173*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366175*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366178*/                  OPC_EmitMergeInputChains1_2,
/*366179*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366193*/                /*SwitchType*/ 28, MVT::f64,// ->366223
/*366195*/                  OPC_MoveParent,
/*366196*/                  OPC_MoveParent,
/*366197*/                  OPC_RecordChild2, // #4 = $src1
/*366198*/                  OPC_MoveParent,
/*366199*/                  OPC_CheckChild2Same, 4,
/*366201*/                  OPC_CheckType, MVT::v4f64,
/*366203*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366205*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366208*/                  OPC_EmitMergeInputChains1_2,
/*366209*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366223*/                0, // EndSwitchType
/*366224*/              0, /*End of Scope*/
/*366225*/            /*Scope*/ 80, /*->366306*/
/*366226*/              OPC_MoveChild0,
/*366227*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*366230*/              OPC_MoveChild0,
/*366231*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366234*/              OPC_RecordMemRef,
/*366235*/              OPC_RecordNode, // #1 = 'ld' chained node
/*366236*/              OPC_CheckFoldableChainNode,
/*366237*/              OPC_RecordChild1, // #2 = $src3
/*366238*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366240*/              OPC_CheckPredicate, 9, // Predicate_load
/*366242*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->366274
/*366245*/                OPC_MoveParent,
/*366246*/                OPC_MoveParent,
/*366247*/                OPC_RecordChild1, // #3 = $src1
/*366248*/                OPC_RecordChild2, // #4 = $src2
/*366249*/                OPC_MoveParent,
/*366250*/                OPC_CheckChild2Same, 3,
/*366252*/                OPC_CheckType, MVT::v4f32,
/*366254*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366256*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366259*/                OPC_EmitMergeInputChains1_1,
/*366260*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366274*/              /*SwitchType*/ 29, MVT::f64,// ->366305
/*366276*/                OPC_MoveParent,
/*366277*/                OPC_MoveParent,
/*366278*/                OPC_RecordChild1, // #3 = $src1
/*366279*/                OPC_RecordChild2, // #4 = $src2
/*366280*/                OPC_MoveParent,
/*366281*/                OPC_CheckChild2Same, 3,
/*366283*/                OPC_CheckType, MVT::v4f64,
/*366285*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366287*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366290*/                OPC_EmitMergeInputChains1_1,
/*366291*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366305*/              0, // EndSwitchType
/*366306*/            /*Scope*/ 82, /*->366389*/
/*366307*/              OPC_RecordChild0, // #1 = $src1
/*366308*/              OPC_RecordChild1, // #2 = $src2
/*366309*/              OPC_MoveChild2,
/*366310*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*366313*/              OPC_MoveChild0,
/*366314*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366317*/              OPC_RecordMemRef,
/*366318*/              OPC_RecordNode, // #3 = 'ld' chained node
/*366319*/              OPC_CheckFoldableChainNode,
/*366320*/              OPC_RecordChild1, // #4 = $src3
/*366321*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366323*/              OPC_CheckPredicate, 9, // Predicate_load
/*366325*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->366357
/*366328*/                OPC_MoveParent,
/*366329*/                OPC_MoveParent,
/*366330*/                OPC_MoveParent,
/*366331*/                OPC_CheckChild2Same, 1,
/*366333*/                OPC_CheckType, MVT::v4f32,
/*366335*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366337*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366340*/                OPC_EmitMergeInputChains, 1, 3, 
/*366343*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366357*/              /*SwitchType*/ 29, MVT::f64,// ->366388
/*366359*/                OPC_MoveParent,
/*366360*/                OPC_MoveParent,
/*366361*/                OPC_MoveParent,
/*366362*/                OPC_CheckChild2Same, 1,
/*366364*/                OPC_CheckType, MVT::v4f64,
/*366366*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366368*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366371*/                OPC_EmitMergeInputChains, 1, 3, 
/*366374*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366388*/              0, // EndSwitchType
/*366389*/            /*Scope*/ 80, /*->366470*/
/*366390*/              OPC_MoveChild0,
/*366391*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*366394*/              OPC_MoveChild0,
/*366395*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366398*/              OPC_RecordMemRef,
/*366399*/              OPC_RecordNode, // #1 = 'ld' chained node
/*366400*/              OPC_CheckFoldableChainNode,
/*366401*/              OPC_RecordChild1, // #2 = $src3
/*366402*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366404*/              OPC_CheckPredicate, 9, // Predicate_load
/*366406*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->366438
/*366409*/                OPC_MoveParent,
/*366410*/                OPC_MoveParent,
/*366411*/                OPC_RecordChild1, // #3 = $src2
/*366412*/                OPC_RecordChild2, // #4 = $src1
/*366413*/                OPC_MoveParent,
/*366414*/                OPC_CheckChild2Same, 4,
/*366416*/                OPC_CheckType, MVT::v4f32,
/*366418*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366420*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366423*/                OPC_EmitMergeInputChains1_1,
/*366424*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366438*/              /*SwitchType*/ 29, MVT::f64,// ->366469
/*366440*/                OPC_MoveParent,
/*366441*/                OPC_MoveParent,
/*366442*/                OPC_RecordChild1, // #3 = $src2
/*366443*/                OPC_RecordChild2, // #4 = $src1
/*366444*/                OPC_MoveParent,
/*366445*/                OPC_CheckChild2Same, 4,
/*366447*/                OPC_CheckType, MVT::v4f64,
/*366449*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366451*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366454*/                OPC_EmitMergeInputChains1_1,
/*366455*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366469*/              0, // EndSwitchType
/*366470*/            /*Scope*/ 90|128,1/*218*/, /*->366690*/
/*366472*/              OPC_RecordChild0, // #1 = $src1
/*366473*/              OPC_Scope, 78, /*->366553*/ // 3 children in Scope
/*366475*/                OPC_MoveChild1,
/*366476*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*366479*/                OPC_MoveChild0,
/*366480*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366483*/                OPC_RecordMemRef,
/*366484*/                OPC_RecordNode, // #2 = 'ld' chained node
/*366485*/                OPC_CheckFoldableChainNode,
/*366486*/                OPC_RecordChild1, // #3 = $src3
/*366487*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366489*/                OPC_CheckPredicate, 9, // Predicate_load
/*366491*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->366522
/*366494*/                  OPC_MoveParent,
/*366495*/                  OPC_MoveParent,
/*366496*/                  OPC_RecordChild2, // #4 = $src2
/*366497*/                  OPC_MoveParent,
/*366498*/                  OPC_CheckChild2Same, 1,
/*366500*/                  OPC_CheckType, MVT::v4f32,
/*366502*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366504*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366507*/                  OPC_EmitMergeInputChains1_2,
/*366508*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366522*/                /*SwitchType*/ 28, MVT::f64,// ->366552
/*366524*/                  OPC_MoveParent,
/*366525*/                  OPC_MoveParent,
/*366526*/                  OPC_RecordChild2, // #4 = $src2
/*366527*/                  OPC_MoveParent,
/*366528*/                  OPC_CheckChild2Same, 1,
/*366530*/                  OPC_CheckType, MVT::v4f64,
/*366532*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366534*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366537*/                  OPC_EmitMergeInputChains1_2,
/*366538*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366552*/                0, // EndSwitchType
/*366553*/              /*Scope*/ 69, /*->366623*/
/*366554*/                OPC_RecordChild1, // #2 = $src1
/*366555*/                OPC_MoveChild2,
/*366556*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366559*/                OPC_RecordMemRef,
/*366560*/                OPC_RecordNode, // #3 = 'ld' chained node
/*366561*/                OPC_CheckFoldableChainNode,
/*366562*/                OPC_RecordChild1, // #4 = $src3
/*366563*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366565*/                OPC_CheckPredicate, 9, // Predicate_load
/*366567*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*366569*/                OPC_MoveParent,
/*366570*/                OPC_MoveParent,
/*366571*/                OPC_CheckChild2Same, 2,
/*366573*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->366598
/*366576*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366578*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366581*/                  OPC_EmitMergeInputChains, 1, 3, 
/*366584*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366598*/                /*SwitchType*/ 22, MVT::v4f64,// ->366622
/*366600*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366602*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366605*/                  OPC_EmitMergeInputChains, 1, 3, 
/*366608*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366622*/                0, // EndSwitchType
/*366623*/              /*Scope*/ 65, /*->366689*/
/*366624*/                OPC_MoveChild1,
/*366625*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366628*/                OPC_RecordMemRef,
/*366629*/                OPC_RecordNode, // #2 = 'ld' chained node
/*366630*/                OPC_CheckFoldableChainNode,
/*366631*/                OPC_RecordChild1, // #3 = $src3
/*366632*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366634*/                OPC_CheckPredicate, 9, // Predicate_load
/*366636*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*366638*/                OPC_MoveParent,
/*366639*/                OPC_RecordChild2, // #4 = $src1
/*366640*/                OPC_MoveParent,
/*366641*/                OPC_CheckChild2Same, 4,
/*366643*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->366666
/*366646*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366648*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366651*/                  OPC_EmitMergeInputChains1_2,
/*366652*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366666*/                /*SwitchType*/ 20, MVT::v4f64,// ->366688
/*366668*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366670*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366673*/                  OPC_EmitMergeInputChains1_2,
/*366674*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366688*/                0, // EndSwitchType
/*366689*/              0, /*End of Scope*/
/*366690*/            /*Scope*/ 66, /*->366757*/
/*366691*/              OPC_MoveChild0,
/*366692*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366695*/              OPC_RecordMemRef,
/*366696*/              OPC_RecordNode, // #1 = 'ld' chained node
/*366697*/              OPC_CheckFoldableChainNode,
/*366698*/              OPC_RecordChild1, // #2 = $src3
/*366699*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366701*/              OPC_CheckPredicate, 9, // Predicate_load
/*366703*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*366705*/              OPC_MoveParent,
/*366706*/              OPC_RecordChild1, // #3 = $src1
/*366707*/              OPC_RecordChild2, // #4 = $src2
/*366708*/              OPC_MoveParent,
/*366709*/              OPC_CheckChild2Same, 3,
/*366711*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->366734
/*366714*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366716*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366719*/                OPC_EmitMergeInputChains1_1,
/*366720*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366734*/              /*SwitchType*/ 20, MVT::v4f64,// ->366756
/*366736*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366738*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366741*/                OPC_EmitMergeInputChains1_1,
/*366742*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366756*/              0, // EndSwitchType
/*366757*/            /*Scope*/ 70, /*->366828*/
/*366758*/              OPC_RecordChild0, // #1 = $src1
/*366759*/              OPC_RecordChild1, // #2 = $src2
/*366760*/              OPC_MoveChild2,
/*366761*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366764*/              OPC_RecordMemRef,
/*366765*/              OPC_RecordNode, // #3 = 'ld' chained node
/*366766*/              OPC_CheckFoldableChainNode,
/*366767*/              OPC_RecordChild1, // #4 = $src3
/*366768*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366770*/              OPC_CheckPredicate, 9, // Predicate_load
/*366772*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*366774*/              OPC_MoveParent,
/*366775*/              OPC_MoveParent,
/*366776*/              OPC_CheckChild2Same, 1,
/*366778*/              OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->366803
/*366781*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366783*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366786*/                OPC_EmitMergeInputChains, 1, 3, 
/*366789*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366803*/              /*SwitchType*/ 22, MVT::v4f64,// ->366827
/*366805*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366807*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366810*/                OPC_EmitMergeInputChains, 1, 3, 
/*366813*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366827*/              0, // EndSwitchType
/*366828*/            /*Scope*/ 66, /*->366895*/
/*366829*/              OPC_MoveChild0,
/*366830*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366833*/              OPC_RecordMemRef,
/*366834*/              OPC_RecordNode, // #1 = 'ld' chained node
/*366835*/              OPC_CheckFoldableChainNode,
/*366836*/              OPC_RecordChild1, // #2 = $src3
/*366837*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366839*/              OPC_CheckPredicate, 9, // Predicate_load
/*366841*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*366843*/              OPC_MoveParent,
/*366844*/              OPC_RecordChild1, // #3 = $src2
/*366845*/              OPC_RecordChild2, // #4 = $src1
/*366846*/              OPC_MoveParent,
/*366847*/              OPC_CheckChild2Same, 4,
/*366849*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->366872
/*366852*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366854*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366857*/                OPC_EmitMergeInputChains1_1,
/*366858*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366872*/              /*SwitchType*/ 20, MVT::v4f64,// ->366894
/*366874*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366876*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366879*/                OPC_EmitMergeInputChains1_1,
/*366880*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366894*/              0, // EndSwitchType
/*366895*/            /*Scope*/ 66, /*->366962*/
/*366896*/              OPC_RecordChild0, // #1 = $src1
/*366897*/              OPC_MoveChild1,
/*366898*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366901*/              OPC_RecordMemRef,
/*366902*/              OPC_RecordNode, // #2 = 'ld' chained node
/*366903*/              OPC_CheckFoldableChainNode,
/*366904*/              OPC_RecordChild1, // #3 = $src3
/*366905*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366907*/              OPC_CheckPredicate, 9, // Predicate_load
/*366909*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*366911*/              OPC_MoveParent,
/*366912*/              OPC_RecordChild2, // #4 = $src2
/*366913*/              OPC_MoveParent,
/*366914*/              OPC_CheckChild2Same, 1,
/*366916*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->366939
/*366919*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366921*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366924*/                OPC_EmitMergeInputChains1_2,
/*366925*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366939*/              /*SwitchType*/ 20, MVT::v4f64,// ->366961
/*366941*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366943*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366946*/                OPC_EmitMergeInputChains1_2,
/*366947*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366961*/              0, // EndSwitchType
/*366962*/            0, /*End of Scope*/
/*366963*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(X86ISD::FMSUB),// ->367872
/*366967*/            OPC_Scope, 36|128,1/*164*/, /*->367134*/ // 9 children in Scope
/*366970*/              OPC_RecordChild0, // #1 = $src2
/*366971*/              OPC_Scope, 81, /*->367054*/ // 2 children in Scope
/*366973*/                OPC_RecordChild1, // #2 = $src1
/*366974*/                OPC_MoveChild2,
/*366975*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*366978*/                OPC_MoveChild0,
/*366979*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*366982*/                OPC_RecordMemRef,
/*366983*/                OPC_RecordNode, // #3 = 'ld' chained node
/*366984*/                OPC_CheckFoldableChainNode,
/*366985*/                OPC_RecordChild1, // #4 = $src3
/*366986*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366988*/                OPC_CheckPredicate, 9, // Predicate_load
/*366990*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->367022
/*366993*/                  OPC_MoveParent,
/*366994*/                  OPC_MoveParent,
/*366995*/                  OPC_MoveParent,
/*366996*/                  OPC_CheckChild2Same, 2,
/*366998*/                  OPC_CheckType, MVT::v4f32,
/*367000*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367002*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367005*/                  OPC_EmitMergeInputChains, 1, 3, 
/*367008*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367022*/                /*SwitchType*/ 29, MVT::f64,// ->367053
/*367024*/                  OPC_MoveParent,
/*367025*/                  OPC_MoveParent,
/*367026*/                  OPC_MoveParent,
/*367027*/                  OPC_CheckChild2Same, 2,
/*367029*/                  OPC_CheckType, MVT::v4f64,
/*367031*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367033*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367036*/                  OPC_EmitMergeInputChains, 1, 3, 
/*367039*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367053*/                0, // EndSwitchType
/*367054*/              /*Scope*/ 78, /*->367133*/
/*367055*/                OPC_MoveChild1,
/*367056*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*367059*/                OPC_MoveChild0,
/*367060*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367063*/                OPC_RecordMemRef,
/*367064*/                OPC_RecordNode, // #2 = 'ld' chained node
/*367065*/                OPC_CheckFoldableChainNode,
/*367066*/                OPC_RecordChild1, // #3 = $src3
/*367067*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367069*/                OPC_CheckPredicate, 9, // Predicate_load
/*367071*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->367102
/*367074*/                  OPC_MoveParent,
/*367075*/                  OPC_MoveParent,
/*367076*/                  OPC_RecordChild2, // #4 = $src1
/*367077*/                  OPC_MoveParent,
/*367078*/                  OPC_CheckChild2Same, 4,
/*367080*/                  OPC_CheckType, MVT::v4f32,
/*367082*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367084*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367087*/                  OPC_EmitMergeInputChains1_2,
/*367088*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367102*/                /*SwitchType*/ 28, MVT::f64,// ->367132
/*367104*/                  OPC_MoveParent,
/*367105*/                  OPC_MoveParent,
/*367106*/                  OPC_RecordChild2, // #4 = $src1
/*367107*/                  OPC_MoveParent,
/*367108*/                  OPC_CheckChild2Same, 4,
/*367110*/                  OPC_CheckType, MVT::v4f64,
/*367112*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367114*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367117*/                  OPC_EmitMergeInputChains1_2,
/*367118*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367132*/                0, // EndSwitchType
/*367133*/              0, /*End of Scope*/
/*367134*/            /*Scope*/ 80, /*->367215*/
/*367135*/              OPC_MoveChild0,
/*367136*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*367139*/              OPC_MoveChild0,
/*367140*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367143*/              OPC_RecordMemRef,
/*367144*/              OPC_RecordNode, // #1 = 'ld' chained node
/*367145*/              OPC_CheckFoldableChainNode,
/*367146*/              OPC_RecordChild1, // #2 = $src3
/*367147*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367149*/              OPC_CheckPredicate, 9, // Predicate_load
/*367151*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->367183
/*367154*/                OPC_MoveParent,
/*367155*/                OPC_MoveParent,
/*367156*/                OPC_RecordChild1, // #3 = $src1
/*367157*/                OPC_RecordChild2, // #4 = $src2
/*367158*/                OPC_MoveParent,
/*367159*/                OPC_CheckChild2Same, 3,
/*367161*/                OPC_CheckType, MVT::v4f32,
/*367163*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367165*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367168*/                OPC_EmitMergeInputChains1_1,
/*367169*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367183*/              /*SwitchType*/ 29, MVT::f64,// ->367214
/*367185*/                OPC_MoveParent,
/*367186*/                OPC_MoveParent,
/*367187*/                OPC_RecordChild1, // #3 = $src1
/*367188*/                OPC_RecordChild2, // #4 = $src2
/*367189*/                OPC_MoveParent,
/*367190*/                OPC_CheckChild2Same, 3,
/*367192*/                OPC_CheckType, MVT::v4f64,
/*367194*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367196*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367199*/                OPC_EmitMergeInputChains1_1,
/*367200*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367214*/              0, // EndSwitchType
/*367215*/            /*Scope*/ 82, /*->367298*/
/*367216*/              OPC_RecordChild0, // #1 = $src1
/*367217*/              OPC_RecordChild1, // #2 = $src2
/*367218*/              OPC_MoveChild2,
/*367219*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*367222*/              OPC_MoveChild0,
/*367223*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367226*/              OPC_RecordMemRef,
/*367227*/              OPC_RecordNode, // #3 = 'ld' chained node
/*367228*/              OPC_CheckFoldableChainNode,
/*367229*/              OPC_RecordChild1, // #4 = $src3
/*367230*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367232*/              OPC_CheckPredicate, 9, // Predicate_load
/*367234*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->367266
/*367237*/                OPC_MoveParent,
/*367238*/                OPC_MoveParent,
/*367239*/                OPC_MoveParent,
/*367240*/                OPC_CheckChild2Same, 1,
/*367242*/                OPC_CheckType, MVT::v4f32,
/*367244*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367246*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367249*/                OPC_EmitMergeInputChains, 1, 3, 
/*367252*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367266*/              /*SwitchType*/ 29, MVT::f64,// ->367297
/*367268*/                OPC_MoveParent,
/*367269*/                OPC_MoveParent,
/*367270*/                OPC_MoveParent,
/*367271*/                OPC_CheckChild2Same, 1,
/*367273*/                OPC_CheckType, MVT::v4f64,
/*367275*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367277*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367280*/                OPC_EmitMergeInputChains, 1, 3, 
/*367283*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367297*/              0, // EndSwitchType
/*367298*/            /*Scope*/ 80, /*->367379*/
/*367299*/              OPC_MoveChild0,
/*367300*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*367303*/              OPC_MoveChild0,
/*367304*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367307*/              OPC_RecordMemRef,
/*367308*/              OPC_RecordNode, // #1 = 'ld' chained node
/*367309*/              OPC_CheckFoldableChainNode,
/*367310*/              OPC_RecordChild1, // #2 = $src3
/*367311*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367313*/              OPC_CheckPredicate, 9, // Predicate_load
/*367315*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->367347
/*367318*/                OPC_MoveParent,
/*367319*/                OPC_MoveParent,
/*367320*/                OPC_RecordChild1, // #3 = $src2
/*367321*/                OPC_RecordChild2, // #4 = $src1
/*367322*/                OPC_MoveParent,
/*367323*/                OPC_CheckChild2Same, 4,
/*367325*/                OPC_CheckType, MVT::v4f32,
/*367327*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367329*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367332*/                OPC_EmitMergeInputChains1_1,
/*367333*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367347*/              /*SwitchType*/ 29, MVT::f64,// ->367378
/*367349*/                OPC_MoveParent,
/*367350*/                OPC_MoveParent,
/*367351*/                OPC_RecordChild1, // #3 = $src2
/*367352*/                OPC_RecordChild2, // #4 = $src1
/*367353*/                OPC_MoveParent,
/*367354*/                OPC_CheckChild2Same, 4,
/*367356*/                OPC_CheckType, MVT::v4f64,
/*367358*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367360*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367363*/                OPC_EmitMergeInputChains1_1,
/*367364*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367378*/              0, // EndSwitchType
/*367379*/            /*Scope*/ 90|128,1/*218*/, /*->367599*/
/*367381*/              OPC_RecordChild0, // #1 = $src1
/*367382*/              OPC_Scope, 78, /*->367462*/ // 3 children in Scope
/*367384*/                OPC_MoveChild1,
/*367385*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*367388*/                OPC_MoveChild0,
/*367389*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367392*/                OPC_RecordMemRef,
/*367393*/                OPC_RecordNode, // #2 = 'ld' chained node
/*367394*/                OPC_CheckFoldableChainNode,
/*367395*/                OPC_RecordChild1, // #3 = $src3
/*367396*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367398*/                OPC_CheckPredicate, 9, // Predicate_load
/*367400*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->367431
/*367403*/                  OPC_MoveParent,
/*367404*/                  OPC_MoveParent,
/*367405*/                  OPC_RecordChild2, // #4 = $src2
/*367406*/                  OPC_MoveParent,
/*367407*/                  OPC_CheckChild2Same, 1,
/*367409*/                  OPC_CheckType, MVT::v4f32,
/*367411*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367413*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367416*/                  OPC_EmitMergeInputChains1_2,
/*367417*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367431*/                /*SwitchType*/ 28, MVT::f64,// ->367461
/*367433*/                  OPC_MoveParent,
/*367434*/                  OPC_MoveParent,
/*367435*/                  OPC_RecordChild2, // #4 = $src2
/*367436*/                  OPC_MoveParent,
/*367437*/                  OPC_CheckChild2Same, 1,
/*367439*/                  OPC_CheckType, MVT::v4f64,
/*367441*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367443*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367446*/                  OPC_EmitMergeInputChains1_2,
/*367447*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367461*/                0, // EndSwitchType
/*367462*/              /*Scope*/ 69, /*->367532*/
/*367463*/                OPC_RecordChild1, // #2 = $src1
/*367464*/                OPC_MoveChild2,
/*367465*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367468*/                OPC_RecordMemRef,
/*367469*/                OPC_RecordNode, // #3 = 'ld' chained node
/*367470*/                OPC_CheckFoldableChainNode,
/*367471*/                OPC_RecordChild1, // #4 = $src3
/*367472*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367474*/                OPC_CheckPredicate, 9, // Predicate_load
/*367476*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*367478*/                OPC_MoveParent,
/*367479*/                OPC_MoveParent,
/*367480*/                OPC_CheckChild2Same, 2,
/*367482*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->367507
/*367485*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367487*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367490*/                  OPC_EmitMergeInputChains, 1, 3, 
/*367493*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367507*/                /*SwitchType*/ 22, MVT::v4f64,// ->367531
/*367509*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367511*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367514*/                  OPC_EmitMergeInputChains, 1, 3, 
/*367517*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367531*/                0, // EndSwitchType
/*367532*/              /*Scope*/ 65, /*->367598*/
/*367533*/                OPC_MoveChild1,
/*367534*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367537*/                OPC_RecordMemRef,
/*367538*/                OPC_RecordNode, // #2 = 'ld' chained node
/*367539*/                OPC_CheckFoldableChainNode,
/*367540*/                OPC_RecordChild1, // #3 = $src3
/*367541*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367543*/                OPC_CheckPredicate, 9, // Predicate_load
/*367545*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*367547*/                OPC_MoveParent,
/*367548*/                OPC_RecordChild2, // #4 = $src1
/*367549*/                OPC_MoveParent,
/*367550*/                OPC_CheckChild2Same, 4,
/*367552*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->367575
/*367555*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367557*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367560*/                  OPC_EmitMergeInputChains1_2,
/*367561*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367575*/                /*SwitchType*/ 20, MVT::v4f64,// ->367597
/*367577*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367579*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367582*/                  OPC_EmitMergeInputChains1_2,
/*367583*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367597*/                0, // EndSwitchType
/*367598*/              0, /*End of Scope*/
/*367599*/            /*Scope*/ 66, /*->367666*/
/*367600*/              OPC_MoveChild0,
/*367601*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367604*/              OPC_RecordMemRef,
/*367605*/              OPC_RecordNode, // #1 = 'ld' chained node
/*367606*/              OPC_CheckFoldableChainNode,
/*367607*/              OPC_RecordChild1, // #2 = $src3
/*367608*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367610*/              OPC_CheckPredicate, 9, // Predicate_load
/*367612*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*367614*/              OPC_MoveParent,
/*367615*/              OPC_RecordChild1, // #3 = $src1
/*367616*/              OPC_RecordChild2, // #4 = $src2
/*367617*/              OPC_MoveParent,
/*367618*/              OPC_CheckChild2Same, 3,
/*367620*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->367643
/*367623*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367625*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367628*/                OPC_EmitMergeInputChains1_1,
/*367629*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367643*/              /*SwitchType*/ 20, MVT::v4f64,// ->367665
/*367645*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367647*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367650*/                OPC_EmitMergeInputChains1_1,
/*367651*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367665*/              0, // EndSwitchType
/*367666*/            /*Scope*/ 70, /*->367737*/
/*367667*/              OPC_RecordChild0, // #1 = $src1
/*367668*/              OPC_RecordChild1, // #2 = $src2
/*367669*/              OPC_MoveChild2,
/*367670*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367673*/              OPC_RecordMemRef,
/*367674*/              OPC_RecordNode, // #3 = 'ld' chained node
/*367675*/              OPC_CheckFoldableChainNode,
/*367676*/              OPC_RecordChild1, // #4 = $src3
/*367677*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367679*/              OPC_CheckPredicate, 9, // Predicate_load
/*367681*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*367683*/              OPC_MoveParent,
/*367684*/              OPC_MoveParent,
/*367685*/              OPC_CheckChild2Same, 1,
/*367687*/              OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->367712
/*367690*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367692*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367695*/                OPC_EmitMergeInputChains, 1, 3, 
/*367698*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367712*/              /*SwitchType*/ 22, MVT::v4f64,// ->367736
/*367714*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367716*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367719*/                OPC_EmitMergeInputChains, 1, 3, 
/*367722*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367736*/              0, // EndSwitchType
/*367737*/            /*Scope*/ 66, /*->367804*/
/*367738*/              OPC_MoveChild0,
/*367739*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367742*/              OPC_RecordMemRef,
/*367743*/              OPC_RecordNode, // #1 = 'ld' chained node
/*367744*/              OPC_CheckFoldableChainNode,
/*367745*/              OPC_RecordChild1, // #2 = $src3
/*367746*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367748*/              OPC_CheckPredicate, 9, // Predicate_load
/*367750*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*367752*/              OPC_MoveParent,
/*367753*/              OPC_RecordChild1, // #3 = $src2
/*367754*/              OPC_RecordChild2, // #4 = $src1
/*367755*/              OPC_MoveParent,
/*367756*/              OPC_CheckChild2Same, 4,
/*367758*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->367781
/*367761*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367763*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367766*/                OPC_EmitMergeInputChains1_1,
/*367767*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367781*/              /*SwitchType*/ 20, MVT::v4f64,// ->367803
/*367783*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367785*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367788*/                OPC_EmitMergeInputChains1_1,
/*367789*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367803*/              0, // EndSwitchType
/*367804*/            /*Scope*/ 66, /*->367871*/
/*367805*/              OPC_RecordChild0, // #1 = $src1
/*367806*/              OPC_MoveChild1,
/*367807*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367810*/              OPC_RecordMemRef,
/*367811*/              OPC_RecordNode, // #2 = 'ld' chained node
/*367812*/              OPC_CheckFoldableChainNode,
/*367813*/              OPC_RecordChild1, // #3 = $src3
/*367814*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367816*/              OPC_CheckPredicate, 9, // Predicate_load
/*367818*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*367820*/              OPC_MoveParent,
/*367821*/              OPC_RecordChild2, // #4 = $src2
/*367822*/              OPC_MoveParent,
/*367823*/              OPC_CheckChild2Same, 1,
/*367825*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->367848
/*367828*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367830*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367833*/                OPC_EmitMergeInputChains1_2,
/*367834*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367848*/              /*SwitchType*/ 20, MVT::v4f64,// ->367870
/*367850*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367852*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367855*/                OPC_EmitMergeInputChains1_2,
/*367856*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367870*/              0, // EndSwitchType
/*367871*/            0, /*End of Scope*/
/*367872*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(X86ISD::FMADDSUB),// ->368781
/*367876*/            OPC_Scope, 36|128,1/*164*/, /*->368043*/ // 9 children in Scope
/*367879*/              OPC_RecordChild0, // #1 = $src2
/*367880*/              OPC_Scope, 81, /*->367963*/ // 2 children in Scope
/*367882*/                OPC_RecordChild1, // #2 = $src1
/*367883*/                OPC_MoveChild2,
/*367884*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*367887*/                OPC_MoveChild0,
/*367888*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367891*/                OPC_RecordMemRef,
/*367892*/                OPC_RecordNode, // #3 = 'ld' chained node
/*367893*/                OPC_CheckFoldableChainNode,
/*367894*/                OPC_RecordChild1, // #4 = $src3
/*367895*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367897*/                OPC_CheckPredicate, 9, // Predicate_load
/*367899*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->367931
/*367902*/                  OPC_MoveParent,
/*367903*/                  OPC_MoveParent,
/*367904*/                  OPC_MoveParent,
/*367905*/                  OPC_CheckChild2Same, 2,
/*367907*/                  OPC_CheckType, MVT::v4f32,
/*367909*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367911*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367914*/                  OPC_EmitMergeInputChains, 1, 3, 
/*367917*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367931*/                /*SwitchType*/ 29, MVT::f64,// ->367962
/*367933*/                  OPC_MoveParent,
/*367934*/                  OPC_MoveParent,
/*367935*/                  OPC_MoveParent,
/*367936*/                  OPC_CheckChild2Same, 2,
/*367938*/                  OPC_CheckType, MVT::v4f64,
/*367940*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367942*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367945*/                  OPC_EmitMergeInputChains, 1, 3, 
/*367948*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367962*/                0, // EndSwitchType
/*367963*/              /*Scope*/ 78, /*->368042*/
/*367964*/                OPC_MoveChild1,
/*367965*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*367968*/                OPC_MoveChild0,
/*367969*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*367972*/                OPC_RecordMemRef,
/*367973*/                OPC_RecordNode, // #2 = 'ld' chained node
/*367974*/                OPC_CheckFoldableChainNode,
/*367975*/                OPC_RecordChild1, // #3 = $src3
/*367976*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367978*/                OPC_CheckPredicate, 9, // Predicate_load
/*367980*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->368011
/*367983*/                  OPC_MoveParent,
/*367984*/                  OPC_MoveParent,
/*367985*/                  OPC_RecordChild2, // #4 = $src1
/*367986*/                  OPC_MoveParent,
/*367987*/                  OPC_CheckChild2Same, 4,
/*367989*/                  OPC_CheckType, MVT::v4f32,
/*367991*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367993*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367996*/                  OPC_EmitMergeInputChains1_2,
/*367997*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368011*/                /*SwitchType*/ 28, MVT::f64,// ->368041
/*368013*/                  OPC_MoveParent,
/*368014*/                  OPC_MoveParent,
/*368015*/                  OPC_RecordChild2, // #4 = $src1
/*368016*/                  OPC_MoveParent,
/*368017*/                  OPC_CheckChild2Same, 4,
/*368019*/                  OPC_CheckType, MVT::v4f64,
/*368021*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368023*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368026*/                  OPC_EmitMergeInputChains1_2,
/*368027*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368041*/                0, // EndSwitchType
/*368042*/              0, /*End of Scope*/
/*368043*/            /*Scope*/ 80, /*->368124*/
/*368044*/              OPC_MoveChild0,
/*368045*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*368048*/              OPC_MoveChild0,
/*368049*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368052*/              OPC_RecordMemRef,
/*368053*/              OPC_RecordNode, // #1 = 'ld' chained node
/*368054*/              OPC_CheckFoldableChainNode,
/*368055*/              OPC_RecordChild1, // #2 = $src3
/*368056*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368058*/              OPC_CheckPredicate, 9, // Predicate_load
/*368060*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->368092
/*368063*/                OPC_MoveParent,
/*368064*/                OPC_MoveParent,
/*368065*/                OPC_RecordChild1, // #3 = $src1
/*368066*/                OPC_RecordChild2, // #4 = $src2
/*368067*/                OPC_MoveParent,
/*368068*/                OPC_CheckChild2Same, 3,
/*368070*/                OPC_CheckType, MVT::v4f32,
/*368072*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368074*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368077*/                OPC_EmitMergeInputChains1_1,
/*368078*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368092*/              /*SwitchType*/ 29, MVT::f64,// ->368123
/*368094*/                OPC_MoveParent,
/*368095*/                OPC_MoveParent,
/*368096*/                OPC_RecordChild1, // #3 = $src1
/*368097*/                OPC_RecordChild2, // #4 = $src2
/*368098*/                OPC_MoveParent,
/*368099*/                OPC_CheckChild2Same, 3,
/*368101*/                OPC_CheckType, MVT::v4f64,
/*368103*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368105*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368108*/                OPC_EmitMergeInputChains1_1,
/*368109*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368123*/              0, // EndSwitchType
/*368124*/            /*Scope*/ 82, /*->368207*/
/*368125*/              OPC_RecordChild0, // #1 = $src1
/*368126*/              OPC_RecordChild1, // #2 = $src2
/*368127*/              OPC_MoveChild2,
/*368128*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*368131*/              OPC_MoveChild0,
/*368132*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368135*/              OPC_RecordMemRef,
/*368136*/              OPC_RecordNode, // #3 = 'ld' chained node
/*368137*/              OPC_CheckFoldableChainNode,
/*368138*/              OPC_RecordChild1, // #4 = $src3
/*368139*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368141*/              OPC_CheckPredicate, 9, // Predicate_load
/*368143*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->368175
/*368146*/                OPC_MoveParent,
/*368147*/                OPC_MoveParent,
/*368148*/                OPC_MoveParent,
/*368149*/                OPC_CheckChild2Same, 1,
/*368151*/                OPC_CheckType, MVT::v4f32,
/*368153*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368155*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368158*/                OPC_EmitMergeInputChains, 1, 3, 
/*368161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368175*/              /*SwitchType*/ 29, MVT::f64,// ->368206
/*368177*/                OPC_MoveParent,
/*368178*/                OPC_MoveParent,
/*368179*/                OPC_MoveParent,
/*368180*/                OPC_CheckChild2Same, 1,
/*368182*/                OPC_CheckType, MVT::v4f64,
/*368184*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368186*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368189*/                OPC_EmitMergeInputChains, 1, 3, 
/*368192*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368206*/              0, // EndSwitchType
/*368207*/            /*Scope*/ 80, /*->368288*/
/*368208*/              OPC_MoveChild0,
/*368209*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*368212*/              OPC_MoveChild0,
/*368213*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368216*/              OPC_RecordMemRef,
/*368217*/              OPC_RecordNode, // #1 = 'ld' chained node
/*368218*/              OPC_CheckFoldableChainNode,
/*368219*/              OPC_RecordChild1, // #2 = $src3
/*368220*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368222*/              OPC_CheckPredicate, 9, // Predicate_load
/*368224*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->368256
/*368227*/                OPC_MoveParent,
/*368228*/                OPC_MoveParent,
/*368229*/                OPC_RecordChild1, // #3 = $src2
/*368230*/                OPC_RecordChild2, // #4 = $src1
/*368231*/                OPC_MoveParent,
/*368232*/                OPC_CheckChild2Same, 4,
/*368234*/                OPC_CheckType, MVT::v4f32,
/*368236*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368238*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368241*/                OPC_EmitMergeInputChains1_1,
/*368242*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368256*/              /*SwitchType*/ 29, MVT::f64,// ->368287
/*368258*/                OPC_MoveParent,
/*368259*/                OPC_MoveParent,
/*368260*/                OPC_RecordChild1, // #3 = $src2
/*368261*/                OPC_RecordChild2, // #4 = $src1
/*368262*/                OPC_MoveParent,
/*368263*/                OPC_CheckChild2Same, 4,
/*368265*/                OPC_CheckType, MVT::v4f64,
/*368267*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368269*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368272*/                OPC_EmitMergeInputChains1_1,
/*368273*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368287*/              0, // EndSwitchType
/*368288*/            /*Scope*/ 90|128,1/*218*/, /*->368508*/
/*368290*/              OPC_RecordChild0, // #1 = $src1
/*368291*/              OPC_Scope, 78, /*->368371*/ // 3 children in Scope
/*368293*/                OPC_MoveChild1,
/*368294*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*368297*/                OPC_MoveChild0,
/*368298*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368301*/                OPC_RecordMemRef,
/*368302*/                OPC_RecordNode, // #2 = 'ld' chained node
/*368303*/                OPC_CheckFoldableChainNode,
/*368304*/                OPC_RecordChild1, // #3 = $src3
/*368305*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368307*/                OPC_CheckPredicate, 9, // Predicate_load
/*368309*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->368340
/*368312*/                  OPC_MoveParent,
/*368313*/                  OPC_MoveParent,
/*368314*/                  OPC_RecordChild2, // #4 = $src2
/*368315*/                  OPC_MoveParent,
/*368316*/                  OPC_CheckChild2Same, 1,
/*368318*/                  OPC_CheckType, MVT::v4f32,
/*368320*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368322*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368325*/                  OPC_EmitMergeInputChains1_2,
/*368326*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368340*/                /*SwitchType*/ 28, MVT::f64,// ->368370
/*368342*/                  OPC_MoveParent,
/*368343*/                  OPC_MoveParent,
/*368344*/                  OPC_RecordChild2, // #4 = $src2
/*368345*/                  OPC_MoveParent,
/*368346*/                  OPC_CheckChild2Same, 1,
/*368348*/                  OPC_CheckType, MVT::v4f64,
/*368350*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368352*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368355*/                  OPC_EmitMergeInputChains1_2,
/*368356*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368370*/                0, // EndSwitchType
/*368371*/              /*Scope*/ 69, /*->368441*/
/*368372*/                OPC_RecordChild1, // #2 = $src1
/*368373*/                OPC_MoveChild2,
/*368374*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368377*/                OPC_RecordMemRef,
/*368378*/                OPC_RecordNode, // #3 = 'ld' chained node
/*368379*/                OPC_CheckFoldableChainNode,
/*368380*/                OPC_RecordChild1, // #4 = $src3
/*368381*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368383*/                OPC_CheckPredicate, 9, // Predicate_load
/*368385*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*368387*/                OPC_MoveParent,
/*368388*/                OPC_MoveParent,
/*368389*/                OPC_CheckChild2Same, 2,
/*368391*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->368416
/*368394*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368396*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368399*/                  OPC_EmitMergeInputChains, 1, 3, 
/*368402*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368416*/                /*SwitchType*/ 22, MVT::v4f64,// ->368440
/*368418*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368420*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368423*/                  OPC_EmitMergeInputChains, 1, 3, 
/*368426*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368440*/                0, // EndSwitchType
/*368441*/              /*Scope*/ 65, /*->368507*/
/*368442*/                OPC_MoveChild1,
/*368443*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368446*/                OPC_RecordMemRef,
/*368447*/                OPC_RecordNode, // #2 = 'ld' chained node
/*368448*/                OPC_CheckFoldableChainNode,
/*368449*/                OPC_RecordChild1, // #3 = $src3
/*368450*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368452*/                OPC_CheckPredicate, 9, // Predicate_load
/*368454*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*368456*/                OPC_MoveParent,
/*368457*/                OPC_RecordChild2, // #4 = $src1
/*368458*/                OPC_MoveParent,
/*368459*/                OPC_CheckChild2Same, 4,
/*368461*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->368484
/*368464*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368466*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368469*/                  OPC_EmitMergeInputChains1_2,
/*368470*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368484*/                /*SwitchType*/ 20, MVT::v4f64,// ->368506
/*368486*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368488*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368491*/                  OPC_EmitMergeInputChains1_2,
/*368492*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368506*/                0, // EndSwitchType
/*368507*/              0, /*End of Scope*/
/*368508*/            /*Scope*/ 66, /*->368575*/
/*368509*/              OPC_MoveChild0,
/*368510*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368513*/              OPC_RecordMemRef,
/*368514*/              OPC_RecordNode, // #1 = 'ld' chained node
/*368515*/              OPC_CheckFoldableChainNode,
/*368516*/              OPC_RecordChild1, // #2 = $src3
/*368517*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368519*/              OPC_CheckPredicate, 9, // Predicate_load
/*368521*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*368523*/              OPC_MoveParent,
/*368524*/              OPC_RecordChild1, // #3 = $src1
/*368525*/              OPC_RecordChild2, // #4 = $src2
/*368526*/              OPC_MoveParent,
/*368527*/              OPC_CheckChild2Same, 3,
/*368529*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->368552
/*368532*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368534*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368537*/                OPC_EmitMergeInputChains1_1,
/*368538*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368552*/              /*SwitchType*/ 20, MVT::v4f64,// ->368574
/*368554*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368556*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368559*/                OPC_EmitMergeInputChains1_1,
/*368560*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368574*/              0, // EndSwitchType
/*368575*/            /*Scope*/ 70, /*->368646*/
/*368576*/              OPC_RecordChild0, // #1 = $src1
/*368577*/              OPC_RecordChild1, // #2 = $src2
/*368578*/              OPC_MoveChild2,
/*368579*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368582*/              OPC_RecordMemRef,
/*368583*/              OPC_RecordNode, // #3 = 'ld' chained node
/*368584*/              OPC_CheckFoldableChainNode,
/*368585*/              OPC_RecordChild1, // #4 = $src3
/*368586*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368588*/              OPC_CheckPredicate, 9, // Predicate_load
/*368590*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*368592*/              OPC_MoveParent,
/*368593*/              OPC_MoveParent,
/*368594*/              OPC_CheckChild2Same, 1,
/*368596*/              OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->368621
/*368599*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368601*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368604*/                OPC_EmitMergeInputChains, 1, 3, 
/*368607*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368621*/              /*SwitchType*/ 22, MVT::v4f64,// ->368645
/*368623*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368625*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368628*/                OPC_EmitMergeInputChains, 1, 3, 
/*368631*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368645*/              0, // EndSwitchType
/*368646*/            /*Scope*/ 66, /*->368713*/
/*368647*/              OPC_MoveChild0,
/*368648*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368651*/              OPC_RecordMemRef,
/*368652*/              OPC_RecordNode, // #1 = 'ld' chained node
/*368653*/              OPC_CheckFoldableChainNode,
/*368654*/              OPC_RecordChild1, // #2 = $src3
/*368655*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368657*/              OPC_CheckPredicate, 9, // Predicate_load
/*368659*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*368661*/              OPC_MoveParent,
/*368662*/              OPC_RecordChild1, // #3 = $src2
/*368663*/              OPC_RecordChild2, // #4 = $src1
/*368664*/              OPC_MoveParent,
/*368665*/              OPC_CheckChild2Same, 4,
/*368667*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->368690
/*368670*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368672*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368675*/                OPC_EmitMergeInputChains1_1,
/*368676*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368690*/              /*SwitchType*/ 20, MVT::v4f64,// ->368712
/*368692*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368694*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368697*/                OPC_EmitMergeInputChains1_1,
/*368698*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368712*/              0, // EndSwitchType
/*368713*/            /*Scope*/ 66, /*->368780*/
/*368714*/              OPC_RecordChild0, // #1 = $src1
/*368715*/              OPC_MoveChild1,
/*368716*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368719*/              OPC_RecordMemRef,
/*368720*/              OPC_RecordNode, // #2 = 'ld' chained node
/*368721*/              OPC_CheckFoldableChainNode,
/*368722*/              OPC_RecordChild1, // #3 = $src3
/*368723*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368725*/              OPC_CheckPredicate, 9, // Predicate_load
/*368727*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*368729*/              OPC_MoveParent,
/*368730*/              OPC_RecordChild2, // #4 = $src2
/*368731*/              OPC_MoveParent,
/*368732*/              OPC_CheckChild2Same, 1,
/*368734*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->368757
/*368737*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368739*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368742*/                OPC_EmitMergeInputChains1_2,
/*368743*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368757*/              /*SwitchType*/ 20, MVT::v4f64,// ->368779
/*368759*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368761*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368764*/                OPC_EmitMergeInputChains1_2,
/*368765*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368779*/              0, // EndSwitchType
/*368780*/            0, /*End of Scope*/
/*368781*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(X86ISD::FMSUBADD),// ->369690
/*368785*/            OPC_Scope, 36|128,1/*164*/, /*->368952*/ // 9 children in Scope
/*368788*/              OPC_RecordChild0, // #1 = $src2
/*368789*/              OPC_Scope, 81, /*->368872*/ // 2 children in Scope
/*368791*/                OPC_RecordChild1, // #2 = $src1
/*368792*/                OPC_MoveChild2,
/*368793*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*368796*/                OPC_MoveChild0,
/*368797*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368800*/                OPC_RecordMemRef,
/*368801*/                OPC_RecordNode, // #3 = 'ld' chained node
/*368802*/                OPC_CheckFoldableChainNode,
/*368803*/                OPC_RecordChild1, // #4 = $src3
/*368804*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368806*/                OPC_CheckPredicate, 9, // Predicate_load
/*368808*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->368840
/*368811*/                  OPC_MoveParent,
/*368812*/                  OPC_MoveParent,
/*368813*/                  OPC_MoveParent,
/*368814*/                  OPC_CheckChild2Same, 2,
/*368816*/                  OPC_CheckType, MVT::v4f32,
/*368818*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368820*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368823*/                  OPC_EmitMergeInputChains, 1, 3, 
/*368826*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368840*/                /*SwitchType*/ 29, MVT::f64,// ->368871
/*368842*/                  OPC_MoveParent,
/*368843*/                  OPC_MoveParent,
/*368844*/                  OPC_MoveParent,
/*368845*/                  OPC_CheckChild2Same, 2,
/*368847*/                  OPC_CheckType, MVT::v4f64,
/*368849*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368851*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368854*/                  OPC_EmitMergeInputChains, 1, 3, 
/*368857*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368871*/                0, // EndSwitchType
/*368872*/              /*Scope*/ 78, /*->368951*/
/*368873*/                OPC_MoveChild1,
/*368874*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*368877*/                OPC_MoveChild0,
/*368878*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368881*/                OPC_RecordMemRef,
/*368882*/                OPC_RecordNode, // #2 = 'ld' chained node
/*368883*/                OPC_CheckFoldableChainNode,
/*368884*/                OPC_RecordChild1, // #3 = $src3
/*368885*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368887*/                OPC_CheckPredicate, 9, // Predicate_load
/*368889*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->368920
/*368892*/                  OPC_MoveParent,
/*368893*/                  OPC_MoveParent,
/*368894*/                  OPC_RecordChild2, // #4 = $src1
/*368895*/                  OPC_MoveParent,
/*368896*/                  OPC_CheckChild2Same, 4,
/*368898*/                  OPC_CheckType, MVT::v4f32,
/*368900*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368902*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368905*/                  OPC_EmitMergeInputChains1_2,
/*368906*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368920*/                /*SwitchType*/ 28, MVT::f64,// ->368950
/*368922*/                  OPC_MoveParent,
/*368923*/                  OPC_MoveParent,
/*368924*/                  OPC_RecordChild2, // #4 = $src1
/*368925*/                  OPC_MoveParent,
/*368926*/                  OPC_CheckChild2Same, 4,
/*368928*/                  OPC_CheckType, MVT::v4f64,
/*368930*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368932*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368935*/                  OPC_EmitMergeInputChains1_2,
/*368936*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368950*/                0, // EndSwitchType
/*368951*/              0, /*End of Scope*/
/*368952*/            /*Scope*/ 80, /*->369033*/
/*368953*/              OPC_MoveChild0,
/*368954*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*368957*/              OPC_MoveChild0,
/*368958*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*368961*/              OPC_RecordMemRef,
/*368962*/              OPC_RecordNode, // #1 = 'ld' chained node
/*368963*/              OPC_CheckFoldableChainNode,
/*368964*/              OPC_RecordChild1, // #2 = $src3
/*368965*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368967*/              OPC_CheckPredicate, 9, // Predicate_load
/*368969*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->369001
/*368972*/                OPC_MoveParent,
/*368973*/                OPC_MoveParent,
/*368974*/                OPC_RecordChild1, // #3 = $src1
/*368975*/                OPC_RecordChild2, // #4 = $src2
/*368976*/                OPC_MoveParent,
/*368977*/                OPC_CheckChild2Same, 3,
/*368979*/                OPC_CheckType, MVT::v4f32,
/*368981*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368983*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368986*/                OPC_EmitMergeInputChains1_1,
/*368987*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369001*/              /*SwitchType*/ 29, MVT::f64,// ->369032
/*369003*/                OPC_MoveParent,
/*369004*/                OPC_MoveParent,
/*369005*/                OPC_RecordChild1, // #3 = $src1
/*369006*/                OPC_RecordChild2, // #4 = $src2
/*369007*/                OPC_MoveParent,
/*369008*/                OPC_CheckChild2Same, 3,
/*369010*/                OPC_CheckType, MVT::v4f64,
/*369012*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369014*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369017*/                OPC_EmitMergeInputChains1_1,
/*369018*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369032*/              0, // EndSwitchType
/*369033*/            /*Scope*/ 82, /*->369116*/
/*369034*/              OPC_RecordChild0, // #1 = $src1
/*369035*/              OPC_RecordChild1, // #2 = $src2
/*369036*/              OPC_MoveChild2,
/*369037*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*369040*/              OPC_MoveChild0,
/*369041*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369044*/              OPC_RecordMemRef,
/*369045*/              OPC_RecordNode, // #3 = 'ld' chained node
/*369046*/              OPC_CheckFoldableChainNode,
/*369047*/              OPC_RecordChild1, // #4 = $src3
/*369048*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369050*/              OPC_CheckPredicate, 9, // Predicate_load
/*369052*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->369084
/*369055*/                OPC_MoveParent,
/*369056*/                OPC_MoveParent,
/*369057*/                OPC_MoveParent,
/*369058*/                OPC_CheckChild2Same, 1,
/*369060*/                OPC_CheckType, MVT::v4f32,
/*369062*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369064*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369067*/                OPC_EmitMergeInputChains, 1, 3, 
/*369070*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369084*/              /*SwitchType*/ 29, MVT::f64,// ->369115
/*369086*/                OPC_MoveParent,
/*369087*/                OPC_MoveParent,
/*369088*/                OPC_MoveParent,
/*369089*/                OPC_CheckChild2Same, 1,
/*369091*/                OPC_CheckType, MVT::v4f64,
/*369093*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369095*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369098*/                OPC_EmitMergeInputChains, 1, 3, 
/*369101*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369115*/              0, // EndSwitchType
/*369116*/            /*Scope*/ 80, /*->369197*/
/*369117*/              OPC_MoveChild0,
/*369118*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*369121*/              OPC_MoveChild0,
/*369122*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369125*/              OPC_RecordMemRef,
/*369126*/              OPC_RecordNode, // #1 = 'ld' chained node
/*369127*/              OPC_CheckFoldableChainNode,
/*369128*/              OPC_RecordChild1, // #2 = $src3
/*369129*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369131*/              OPC_CheckPredicate, 9, // Predicate_load
/*369133*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->369165
/*369136*/                OPC_MoveParent,
/*369137*/                OPC_MoveParent,
/*369138*/                OPC_RecordChild1, // #3 = $src2
/*369139*/                OPC_RecordChild2, // #4 = $src1
/*369140*/                OPC_MoveParent,
/*369141*/                OPC_CheckChild2Same, 4,
/*369143*/                OPC_CheckType, MVT::v4f32,
/*369145*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369147*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369150*/                OPC_EmitMergeInputChains1_1,
/*369151*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369165*/              /*SwitchType*/ 29, MVT::f64,// ->369196
/*369167*/                OPC_MoveParent,
/*369168*/                OPC_MoveParent,
/*369169*/                OPC_RecordChild1, // #3 = $src2
/*369170*/                OPC_RecordChild2, // #4 = $src1
/*369171*/                OPC_MoveParent,
/*369172*/                OPC_CheckChild2Same, 4,
/*369174*/                OPC_CheckType, MVT::v4f64,
/*369176*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369178*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369181*/                OPC_EmitMergeInputChains1_1,
/*369182*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369196*/              0, // EndSwitchType
/*369197*/            /*Scope*/ 90|128,1/*218*/, /*->369417*/
/*369199*/              OPC_RecordChild0, // #1 = $src1
/*369200*/              OPC_Scope, 78, /*->369280*/ // 3 children in Scope
/*369202*/                OPC_MoveChild1,
/*369203*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*369206*/                OPC_MoveChild0,
/*369207*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369210*/                OPC_RecordMemRef,
/*369211*/                OPC_RecordNode, // #2 = 'ld' chained node
/*369212*/                OPC_CheckFoldableChainNode,
/*369213*/                OPC_RecordChild1, // #3 = $src3
/*369214*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369216*/                OPC_CheckPredicate, 9, // Predicate_load
/*369218*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->369249
/*369221*/                  OPC_MoveParent,
/*369222*/                  OPC_MoveParent,
/*369223*/                  OPC_RecordChild2, // #4 = $src2
/*369224*/                  OPC_MoveParent,
/*369225*/                  OPC_CheckChild2Same, 1,
/*369227*/                  OPC_CheckType, MVT::v4f32,
/*369229*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369231*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369234*/                  OPC_EmitMergeInputChains1_2,
/*369235*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369249*/                /*SwitchType*/ 28, MVT::f64,// ->369279
/*369251*/                  OPC_MoveParent,
/*369252*/                  OPC_MoveParent,
/*369253*/                  OPC_RecordChild2, // #4 = $src2
/*369254*/                  OPC_MoveParent,
/*369255*/                  OPC_CheckChild2Same, 1,
/*369257*/                  OPC_CheckType, MVT::v4f64,
/*369259*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369261*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369264*/                  OPC_EmitMergeInputChains1_2,
/*369265*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369279*/                0, // EndSwitchType
/*369280*/              /*Scope*/ 69, /*->369350*/
/*369281*/                OPC_RecordChild1, // #2 = $src1
/*369282*/                OPC_MoveChild2,
/*369283*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369286*/                OPC_RecordMemRef,
/*369287*/                OPC_RecordNode, // #3 = 'ld' chained node
/*369288*/                OPC_CheckFoldableChainNode,
/*369289*/                OPC_RecordChild1, // #4 = $src3
/*369290*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369292*/                OPC_CheckPredicate, 9, // Predicate_load
/*369294*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*369296*/                OPC_MoveParent,
/*369297*/                OPC_MoveParent,
/*369298*/                OPC_CheckChild2Same, 2,
/*369300*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->369325
/*369303*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369305*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369308*/                  OPC_EmitMergeInputChains, 1, 3, 
/*369311*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369325*/                /*SwitchType*/ 22, MVT::v4f64,// ->369349
/*369327*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369329*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369332*/                  OPC_EmitMergeInputChains, 1, 3, 
/*369335*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369349*/                0, // EndSwitchType
/*369350*/              /*Scope*/ 65, /*->369416*/
/*369351*/                OPC_MoveChild1,
/*369352*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369355*/                OPC_RecordMemRef,
/*369356*/                OPC_RecordNode, // #2 = 'ld' chained node
/*369357*/                OPC_CheckFoldableChainNode,
/*369358*/                OPC_RecordChild1, // #3 = $src3
/*369359*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369361*/                OPC_CheckPredicate, 9, // Predicate_load
/*369363*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*369365*/                OPC_MoveParent,
/*369366*/                OPC_RecordChild2, // #4 = $src1
/*369367*/                OPC_MoveParent,
/*369368*/                OPC_CheckChild2Same, 4,
/*369370*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->369393
/*369373*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369375*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369378*/                  OPC_EmitMergeInputChains1_2,
/*369379*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369393*/                /*SwitchType*/ 20, MVT::v4f64,// ->369415
/*369395*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369397*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369400*/                  OPC_EmitMergeInputChains1_2,
/*369401*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369415*/                0, // EndSwitchType
/*369416*/              0, /*End of Scope*/
/*369417*/            /*Scope*/ 66, /*->369484*/
/*369418*/              OPC_MoveChild0,
/*369419*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369422*/              OPC_RecordMemRef,
/*369423*/              OPC_RecordNode, // #1 = 'ld' chained node
/*369424*/              OPC_CheckFoldableChainNode,
/*369425*/              OPC_RecordChild1, // #2 = $src3
/*369426*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369428*/              OPC_CheckPredicate, 9, // Predicate_load
/*369430*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*369432*/              OPC_MoveParent,
/*369433*/              OPC_RecordChild1, // #3 = $src1
/*369434*/              OPC_RecordChild2, // #4 = $src2
/*369435*/              OPC_MoveParent,
/*369436*/              OPC_CheckChild2Same, 3,
/*369438*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->369461
/*369441*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369443*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369446*/                OPC_EmitMergeInputChains1_1,
/*369447*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369461*/              /*SwitchType*/ 20, MVT::v4f64,// ->369483
/*369463*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369465*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369468*/                OPC_EmitMergeInputChains1_1,
/*369469*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369483*/              0, // EndSwitchType
/*369484*/            /*Scope*/ 70, /*->369555*/
/*369485*/              OPC_RecordChild0, // #1 = $src1
/*369486*/              OPC_RecordChild1, // #2 = $src2
/*369487*/              OPC_MoveChild2,
/*369488*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369491*/              OPC_RecordMemRef,
/*369492*/              OPC_RecordNode, // #3 = 'ld' chained node
/*369493*/              OPC_CheckFoldableChainNode,
/*369494*/              OPC_RecordChild1, // #4 = $src3
/*369495*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369497*/              OPC_CheckPredicate, 9, // Predicate_load
/*369499*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*369501*/              OPC_MoveParent,
/*369502*/              OPC_MoveParent,
/*369503*/              OPC_CheckChild2Same, 1,
/*369505*/              OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->369530
/*369508*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369510*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369513*/                OPC_EmitMergeInputChains, 1, 3, 
/*369516*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369530*/              /*SwitchType*/ 22, MVT::v4f64,// ->369554
/*369532*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369534*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369537*/                OPC_EmitMergeInputChains, 1, 3, 
/*369540*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369554*/              0, // EndSwitchType
/*369555*/            /*Scope*/ 66, /*->369622*/
/*369556*/              OPC_MoveChild0,
/*369557*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369560*/              OPC_RecordMemRef,
/*369561*/              OPC_RecordNode, // #1 = 'ld' chained node
/*369562*/              OPC_CheckFoldableChainNode,
/*369563*/              OPC_RecordChild1, // #2 = $src3
/*369564*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369566*/              OPC_CheckPredicate, 9, // Predicate_load
/*369568*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*369570*/              OPC_MoveParent,
/*369571*/              OPC_RecordChild1, // #3 = $src2
/*369572*/              OPC_RecordChild2, // #4 = $src1
/*369573*/              OPC_MoveParent,
/*369574*/              OPC_CheckChild2Same, 4,
/*369576*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->369599
/*369579*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369581*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369584*/                OPC_EmitMergeInputChains1_1,
/*369585*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369599*/              /*SwitchType*/ 20, MVT::v4f64,// ->369621
/*369601*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369603*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369606*/                OPC_EmitMergeInputChains1_1,
/*369607*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369621*/              0, // EndSwitchType
/*369622*/            /*Scope*/ 66, /*->369689*/
/*369623*/              OPC_RecordChild0, // #1 = $src1
/*369624*/              OPC_MoveChild1,
/*369625*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369628*/              OPC_RecordMemRef,
/*369629*/              OPC_RecordNode, // #2 = 'ld' chained node
/*369630*/              OPC_CheckFoldableChainNode,
/*369631*/              OPC_RecordChild1, // #3 = $src3
/*369632*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369634*/              OPC_CheckPredicate, 9, // Predicate_load
/*369636*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*369638*/              OPC_MoveParent,
/*369639*/              OPC_RecordChild2, // #4 = $src2
/*369640*/              OPC_MoveParent,
/*369641*/              OPC_CheckChild2Same, 1,
/*369643*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->369666
/*369646*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369648*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369651*/                OPC_EmitMergeInputChains1_2,
/*369652*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369666*/              /*SwitchType*/ 20, MVT::v4f64,// ->369688
/*369668*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369670*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369673*/                OPC_EmitMergeInputChains1_2,
/*369674*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369688*/              0, // EndSwitchType
/*369689*/            0, /*End of Scope*/
/*369690*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(X86ISD::FNMADD),// ->370599
/*369694*/            OPC_Scope, 36|128,1/*164*/, /*->369861*/ // 9 children in Scope
/*369697*/              OPC_RecordChild0, // #1 = $src2
/*369698*/              OPC_Scope, 81, /*->369781*/ // 2 children in Scope
/*369700*/                OPC_RecordChild1, // #2 = $src1
/*369701*/                OPC_MoveChild2,
/*369702*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*369705*/                OPC_MoveChild0,
/*369706*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369709*/                OPC_RecordMemRef,
/*369710*/                OPC_RecordNode, // #3 = 'ld' chained node
/*369711*/                OPC_CheckFoldableChainNode,
/*369712*/                OPC_RecordChild1, // #4 = $src3
/*369713*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369715*/                OPC_CheckPredicate, 9, // Predicate_load
/*369717*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->369749
/*369720*/                  OPC_MoveParent,
/*369721*/                  OPC_MoveParent,
/*369722*/                  OPC_MoveParent,
/*369723*/                  OPC_CheckChild2Same, 2,
/*369725*/                  OPC_CheckType, MVT::v4f32,
/*369727*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369729*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369732*/                  OPC_EmitMergeInputChains, 1, 3, 
/*369735*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369749*/                /*SwitchType*/ 29, MVT::f64,// ->369780
/*369751*/                  OPC_MoveParent,
/*369752*/                  OPC_MoveParent,
/*369753*/                  OPC_MoveParent,
/*369754*/                  OPC_CheckChild2Same, 2,
/*369756*/                  OPC_CheckType, MVT::v4f64,
/*369758*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369760*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369763*/                  OPC_EmitMergeInputChains, 1, 3, 
/*369766*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369780*/                0, // EndSwitchType
/*369781*/              /*Scope*/ 78, /*->369860*/
/*369782*/                OPC_MoveChild1,
/*369783*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*369786*/                OPC_MoveChild0,
/*369787*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369790*/                OPC_RecordMemRef,
/*369791*/                OPC_RecordNode, // #2 = 'ld' chained node
/*369792*/                OPC_CheckFoldableChainNode,
/*369793*/                OPC_RecordChild1, // #3 = $src3
/*369794*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369796*/                OPC_CheckPredicate, 9, // Predicate_load
/*369798*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->369829
/*369801*/                  OPC_MoveParent,
/*369802*/                  OPC_MoveParent,
/*369803*/                  OPC_RecordChild2, // #4 = $src1
/*369804*/                  OPC_MoveParent,
/*369805*/                  OPC_CheckChild2Same, 4,
/*369807*/                  OPC_CheckType, MVT::v4f32,
/*369809*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369811*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369814*/                  OPC_EmitMergeInputChains1_2,
/*369815*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369829*/                /*SwitchType*/ 28, MVT::f64,// ->369859
/*369831*/                  OPC_MoveParent,
/*369832*/                  OPC_MoveParent,
/*369833*/                  OPC_RecordChild2, // #4 = $src1
/*369834*/                  OPC_MoveParent,
/*369835*/                  OPC_CheckChild2Same, 4,
/*369837*/                  OPC_CheckType, MVT::v4f64,
/*369839*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369841*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369844*/                  OPC_EmitMergeInputChains1_2,
/*369845*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369859*/                0, // EndSwitchType
/*369860*/              0, /*End of Scope*/
/*369861*/            /*Scope*/ 80, /*->369942*/
/*369862*/              OPC_MoveChild0,
/*369863*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*369866*/              OPC_MoveChild0,
/*369867*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369870*/              OPC_RecordMemRef,
/*369871*/              OPC_RecordNode, // #1 = 'ld' chained node
/*369872*/              OPC_CheckFoldableChainNode,
/*369873*/              OPC_RecordChild1, // #2 = $src3
/*369874*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369876*/              OPC_CheckPredicate, 9, // Predicate_load
/*369878*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->369910
/*369881*/                OPC_MoveParent,
/*369882*/                OPC_MoveParent,
/*369883*/                OPC_RecordChild1, // #3 = $src1
/*369884*/                OPC_RecordChild2, // #4 = $src2
/*369885*/                OPC_MoveParent,
/*369886*/                OPC_CheckChild2Same, 3,
/*369888*/                OPC_CheckType, MVT::v4f32,
/*369890*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369892*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369895*/                OPC_EmitMergeInputChains1_1,
/*369896*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369910*/              /*SwitchType*/ 29, MVT::f64,// ->369941
/*369912*/                OPC_MoveParent,
/*369913*/                OPC_MoveParent,
/*369914*/                OPC_RecordChild1, // #3 = $src1
/*369915*/                OPC_RecordChild2, // #4 = $src2
/*369916*/                OPC_MoveParent,
/*369917*/                OPC_CheckChild2Same, 3,
/*369919*/                OPC_CheckType, MVT::v4f64,
/*369921*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369923*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369926*/                OPC_EmitMergeInputChains1_1,
/*369927*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369941*/              0, // EndSwitchType
/*369942*/            /*Scope*/ 82, /*->370025*/
/*369943*/              OPC_RecordChild0, // #1 = $src1
/*369944*/              OPC_RecordChild1, // #2 = $src2
/*369945*/              OPC_MoveChild2,
/*369946*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*369949*/              OPC_MoveChild0,
/*369950*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*369953*/              OPC_RecordMemRef,
/*369954*/              OPC_RecordNode, // #3 = 'ld' chained node
/*369955*/              OPC_CheckFoldableChainNode,
/*369956*/              OPC_RecordChild1, // #4 = $src3
/*369957*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369959*/              OPC_CheckPredicate, 9, // Predicate_load
/*369961*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->369993
/*369964*/                OPC_MoveParent,
/*369965*/                OPC_MoveParent,
/*369966*/                OPC_MoveParent,
/*369967*/                OPC_CheckChild2Same, 1,
/*369969*/                OPC_CheckType, MVT::v4f32,
/*369971*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*369973*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*369976*/                OPC_EmitMergeInputChains, 1, 3, 
/*369979*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*369993*/              /*SwitchType*/ 29, MVT::f64,// ->370024
/*369995*/                OPC_MoveParent,
/*369996*/                OPC_MoveParent,
/*369997*/                OPC_MoveParent,
/*369998*/                OPC_CheckChild2Same, 1,
/*370000*/                OPC_CheckType, MVT::v4f64,
/*370002*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370004*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370007*/                OPC_EmitMergeInputChains, 1, 3, 
/*370010*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370024*/              0, // EndSwitchType
/*370025*/            /*Scope*/ 80, /*->370106*/
/*370026*/              OPC_MoveChild0,
/*370027*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*370030*/              OPC_MoveChild0,
/*370031*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370034*/              OPC_RecordMemRef,
/*370035*/              OPC_RecordNode, // #1 = 'ld' chained node
/*370036*/              OPC_CheckFoldableChainNode,
/*370037*/              OPC_RecordChild1, // #2 = $src3
/*370038*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370040*/              OPC_CheckPredicate, 9, // Predicate_load
/*370042*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->370074
/*370045*/                OPC_MoveParent,
/*370046*/                OPC_MoveParent,
/*370047*/                OPC_RecordChild1, // #3 = $src2
/*370048*/                OPC_RecordChild2, // #4 = $src1
/*370049*/                OPC_MoveParent,
/*370050*/                OPC_CheckChild2Same, 4,
/*370052*/                OPC_CheckType, MVT::v4f32,
/*370054*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370056*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370059*/                OPC_EmitMergeInputChains1_1,
/*370060*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370074*/              /*SwitchType*/ 29, MVT::f64,// ->370105
/*370076*/                OPC_MoveParent,
/*370077*/                OPC_MoveParent,
/*370078*/                OPC_RecordChild1, // #3 = $src2
/*370079*/                OPC_RecordChild2, // #4 = $src1
/*370080*/                OPC_MoveParent,
/*370081*/                OPC_CheckChild2Same, 4,
/*370083*/                OPC_CheckType, MVT::v4f64,
/*370085*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370087*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370090*/                OPC_EmitMergeInputChains1_1,
/*370091*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370105*/              0, // EndSwitchType
/*370106*/            /*Scope*/ 90|128,1/*218*/, /*->370326*/
/*370108*/              OPC_RecordChild0, // #1 = $src1
/*370109*/              OPC_Scope, 78, /*->370189*/ // 3 children in Scope
/*370111*/                OPC_MoveChild1,
/*370112*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*370115*/                OPC_MoveChild0,
/*370116*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370119*/                OPC_RecordMemRef,
/*370120*/                OPC_RecordNode, // #2 = 'ld' chained node
/*370121*/                OPC_CheckFoldableChainNode,
/*370122*/                OPC_RecordChild1, // #3 = $src3
/*370123*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370125*/                OPC_CheckPredicate, 9, // Predicate_load
/*370127*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->370158
/*370130*/                  OPC_MoveParent,
/*370131*/                  OPC_MoveParent,
/*370132*/                  OPC_RecordChild2, // #4 = $src2
/*370133*/                  OPC_MoveParent,
/*370134*/                  OPC_CheckChild2Same, 1,
/*370136*/                  OPC_CheckType, MVT::v4f32,
/*370138*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370140*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370143*/                  OPC_EmitMergeInputChains1_2,
/*370144*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370158*/                /*SwitchType*/ 28, MVT::f64,// ->370188
/*370160*/                  OPC_MoveParent,
/*370161*/                  OPC_MoveParent,
/*370162*/                  OPC_RecordChild2, // #4 = $src2
/*370163*/                  OPC_MoveParent,
/*370164*/                  OPC_CheckChild2Same, 1,
/*370166*/                  OPC_CheckType, MVT::v4f64,
/*370168*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370170*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370173*/                  OPC_EmitMergeInputChains1_2,
/*370174*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370188*/                0, // EndSwitchType
/*370189*/              /*Scope*/ 69, /*->370259*/
/*370190*/                OPC_RecordChild1, // #2 = $src1
/*370191*/                OPC_MoveChild2,
/*370192*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370195*/                OPC_RecordMemRef,
/*370196*/                OPC_RecordNode, // #3 = 'ld' chained node
/*370197*/                OPC_CheckFoldableChainNode,
/*370198*/                OPC_RecordChild1, // #4 = $src3
/*370199*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370201*/                OPC_CheckPredicate, 9, // Predicate_load
/*370203*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*370205*/                OPC_MoveParent,
/*370206*/                OPC_MoveParent,
/*370207*/                OPC_CheckChild2Same, 2,
/*370209*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->370234
/*370212*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370214*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370217*/                  OPC_EmitMergeInputChains, 1, 3, 
/*370220*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370234*/                /*SwitchType*/ 22, MVT::v4f64,// ->370258
/*370236*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370238*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370241*/                  OPC_EmitMergeInputChains, 1, 3, 
/*370244*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370258*/                0, // EndSwitchType
/*370259*/              /*Scope*/ 65, /*->370325*/
/*370260*/                OPC_MoveChild1,
/*370261*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370264*/                OPC_RecordMemRef,
/*370265*/                OPC_RecordNode, // #2 = 'ld' chained node
/*370266*/                OPC_CheckFoldableChainNode,
/*370267*/                OPC_RecordChild1, // #3 = $src3
/*370268*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370270*/                OPC_CheckPredicate, 9, // Predicate_load
/*370272*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*370274*/                OPC_MoveParent,
/*370275*/                OPC_RecordChild2, // #4 = $src1
/*370276*/                OPC_MoveParent,
/*370277*/                OPC_CheckChild2Same, 4,
/*370279*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->370302
/*370282*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370284*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370287*/                  OPC_EmitMergeInputChains1_2,
/*370288*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370302*/                /*SwitchType*/ 20, MVT::v4f64,// ->370324
/*370304*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370306*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370309*/                  OPC_EmitMergeInputChains1_2,
/*370310*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370324*/                0, // EndSwitchType
/*370325*/              0, /*End of Scope*/
/*370326*/            /*Scope*/ 66, /*->370393*/
/*370327*/              OPC_MoveChild0,
/*370328*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370331*/              OPC_RecordMemRef,
/*370332*/              OPC_RecordNode, // #1 = 'ld' chained node
/*370333*/              OPC_CheckFoldableChainNode,
/*370334*/              OPC_RecordChild1, // #2 = $src3
/*370335*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370337*/              OPC_CheckPredicate, 9, // Predicate_load
/*370339*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*370341*/              OPC_MoveParent,
/*370342*/              OPC_RecordChild1, // #3 = $src1
/*370343*/              OPC_RecordChild2, // #4 = $src2
/*370344*/              OPC_MoveParent,
/*370345*/              OPC_CheckChild2Same, 3,
/*370347*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->370370
/*370350*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370352*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370355*/                OPC_EmitMergeInputChains1_1,
/*370356*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370370*/              /*SwitchType*/ 20, MVT::v4f64,// ->370392
/*370372*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370374*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370377*/                OPC_EmitMergeInputChains1_1,
/*370378*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370392*/              0, // EndSwitchType
/*370393*/            /*Scope*/ 70, /*->370464*/
/*370394*/              OPC_RecordChild0, // #1 = $src1
/*370395*/              OPC_RecordChild1, // #2 = $src2
/*370396*/              OPC_MoveChild2,
/*370397*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370400*/              OPC_RecordMemRef,
/*370401*/              OPC_RecordNode, // #3 = 'ld' chained node
/*370402*/              OPC_CheckFoldableChainNode,
/*370403*/              OPC_RecordChild1, // #4 = $src3
/*370404*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370406*/              OPC_CheckPredicate, 9, // Predicate_load
/*370408*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*370410*/              OPC_MoveParent,
/*370411*/              OPC_MoveParent,
/*370412*/              OPC_CheckChild2Same, 1,
/*370414*/              OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->370439
/*370417*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370419*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370422*/                OPC_EmitMergeInputChains, 1, 3, 
/*370425*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370439*/              /*SwitchType*/ 22, MVT::v4f64,// ->370463
/*370441*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370443*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370446*/                OPC_EmitMergeInputChains, 1, 3, 
/*370449*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370463*/              0, // EndSwitchType
/*370464*/            /*Scope*/ 66, /*->370531*/
/*370465*/              OPC_MoveChild0,
/*370466*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370469*/              OPC_RecordMemRef,
/*370470*/              OPC_RecordNode, // #1 = 'ld' chained node
/*370471*/              OPC_CheckFoldableChainNode,
/*370472*/              OPC_RecordChild1, // #2 = $src3
/*370473*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370475*/              OPC_CheckPredicate, 9, // Predicate_load
/*370477*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*370479*/              OPC_MoveParent,
/*370480*/              OPC_RecordChild1, // #3 = $src2
/*370481*/              OPC_RecordChild2, // #4 = $src1
/*370482*/              OPC_MoveParent,
/*370483*/              OPC_CheckChild2Same, 4,
/*370485*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->370508
/*370488*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370490*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370493*/                OPC_EmitMergeInputChains1_1,
/*370494*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370508*/              /*SwitchType*/ 20, MVT::v4f64,// ->370530
/*370510*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370512*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370515*/                OPC_EmitMergeInputChains1_1,
/*370516*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370530*/              0, // EndSwitchType
/*370531*/            /*Scope*/ 66, /*->370598*/
/*370532*/              OPC_RecordChild0, // #1 = $src1
/*370533*/              OPC_MoveChild1,
/*370534*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370537*/              OPC_RecordMemRef,
/*370538*/              OPC_RecordNode, // #2 = 'ld' chained node
/*370539*/              OPC_CheckFoldableChainNode,
/*370540*/              OPC_RecordChild1, // #3 = $src3
/*370541*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370543*/              OPC_CheckPredicate, 9, // Predicate_load
/*370545*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*370547*/              OPC_MoveParent,
/*370548*/              OPC_RecordChild2, // #4 = $src2
/*370549*/              OPC_MoveParent,
/*370550*/              OPC_CheckChild2Same, 1,
/*370552*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->370575
/*370555*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370557*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370560*/                OPC_EmitMergeInputChains1_2,
/*370561*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370575*/              /*SwitchType*/ 20, MVT::v4f64,// ->370597
/*370577*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370579*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370582*/                OPC_EmitMergeInputChains1_2,
/*370583*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370597*/              0, // EndSwitchType
/*370598*/            0, /*End of Scope*/
/*370599*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(X86ISD::FNMSUB),// ->371508
/*370603*/            OPC_Scope, 36|128,1/*164*/, /*->370770*/ // 9 children in Scope
/*370606*/              OPC_RecordChild0, // #1 = $src2
/*370607*/              OPC_Scope, 81, /*->370690*/ // 2 children in Scope
/*370609*/                OPC_RecordChild1, // #2 = $src1
/*370610*/                OPC_MoveChild2,
/*370611*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*370614*/                OPC_MoveChild0,
/*370615*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370618*/                OPC_RecordMemRef,
/*370619*/                OPC_RecordNode, // #3 = 'ld' chained node
/*370620*/                OPC_CheckFoldableChainNode,
/*370621*/                OPC_RecordChild1, // #4 = $src3
/*370622*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370624*/                OPC_CheckPredicate, 9, // Predicate_load
/*370626*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->370658
/*370629*/                  OPC_MoveParent,
/*370630*/                  OPC_MoveParent,
/*370631*/                  OPC_MoveParent,
/*370632*/                  OPC_CheckChild2Same, 2,
/*370634*/                  OPC_CheckType, MVT::v4f32,
/*370636*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370638*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370641*/                  OPC_EmitMergeInputChains, 1, 3, 
/*370644*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370658*/                /*SwitchType*/ 29, MVT::f64,// ->370689
/*370660*/                  OPC_MoveParent,
/*370661*/                  OPC_MoveParent,
/*370662*/                  OPC_MoveParent,
/*370663*/                  OPC_CheckChild2Same, 2,
/*370665*/                  OPC_CheckType, MVT::v4f64,
/*370667*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370669*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370672*/                  OPC_EmitMergeInputChains, 1, 3, 
/*370675*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370689*/                0, // EndSwitchType
/*370690*/              /*Scope*/ 78, /*->370769*/
/*370691*/                OPC_MoveChild1,
/*370692*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*370695*/                OPC_MoveChild0,
/*370696*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370699*/                OPC_RecordMemRef,
/*370700*/                OPC_RecordNode, // #2 = 'ld' chained node
/*370701*/                OPC_CheckFoldableChainNode,
/*370702*/                OPC_RecordChild1, // #3 = $src3
/*370703*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370705*/                OPC_CheckPredicate, 9, // Predicate_load
/*370707*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->370738
/*370710*/                  OPC_MoveParent,
/*370711*/                  OPC_MoveParent,
/*370712*/                  OPC_RecordChild2, // #4 = $src1
/*370713*/                  OPC_MoveParent,
/*370714*/                  OPC_CheckChild2Same, 4,
/*370716*/                  OPC_CheckType, MVT::v4f32,
/*370718*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370720*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370723*/                  OPC_EmitMergeInputChains1_2,
/*370724*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370738*/                /*SwitchType*/ 28, MVT::f64,// ->370768
/*370740*/                  OPC_MoveParent,
/*370741*/                  OPC_MoveParent,
/*370742*/                  OPC_RecordChild2, // #4 = $src1
/*370743*/                  OPC_MoveParent,
/*370744*/                  OPC_CheckChild2Same, 4,
/*370746*/                  OPC_CheckType, MVT::v4f64,
/*370748*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370750*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370753*/                  OPC_EmitMergeInputChains1_2,
/*370754*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370768*/                0, // EndSwitchType
/*370769*/              0, /*End of Scope*/
/*370770*/            /*Scope*/ 80, /*->370851*/
/*370771*/              OPC_MoveChild0,
/*370772*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*370775*/              OPC_MoveChild0,
/*370776*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370779*/              OPC_RecordMemRef,
/*370780*/              OPC_RecordNode, // #1 = 'ld' chained node
/*370781*/              OPC_CheckFoldableChainNode,
/*370782*/              OPC_RecordChild1, // #2 = $src3
/*370783*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370785*/              OPC_CheckPredicate, 9, // Predicate_load
/*370787*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->370819
/*370790*/                OPC_MoveParent,
/*370791*/                OPC_MoveParent,
/*370792*/                OPC_RecordChild1, // #3 = $src1
/*370793*/                OPC_RecordChild2, // #4 = $src2
/*370794*/                OPC_MoveParent,
/*370795*/                OPC_CheckChild2Same, 3,
/*370797*/                OPC_CheckType, MVT::v4f32,
/*370799*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370801*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370804*/                OPC_EmitMergeInputChains1_1,
/*370805*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370819*/              /*SwitchType*/ 29, MVT::f64,// ->370850
/*370821*/                OPC_MoveParent,
/*370822*/                OPC_MoveParent,
/*370823*/                OPC_RecordChild1, // #3 = $src1
/*370824*/                OPC_RecordChild2, // #4 = $src2
/*370825*/                OPC_MoveParent,
/*370826*/                OPC_CheckChild2Same, 3,
/*370828*/                OPC_CheckType, MVT::v4f64,
/*370830*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370832*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370835*/                OPC_EmitMergeInputChains1_1,
/*370836*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370850*/              0, // EndSwitchType
/*370851*/            /*Scope*/ 82, /*->370934*/
/*370852*/              OPC_RecordChild0, // #1 = $src1
/*370853*/              OPC_RecordChild1, // #2 = $src2
/*370854*/              OPC_MoveChild2,
/*370855*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*370858*/              OPC_MoveChild0,
/*370859*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370862*/              OPC_RecordMemRef,
/*370863*/              OPC_RecordNode, // #3 = 'ld' chained node
/*370864*/              OPC_CheckFoldableChainNode,
/*370865*/              OPC_RecordChild1, // #4 = $src3
/*370866*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370868*/              OPC_CheckPredicate, 9, // Predicate_load
/*370870*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->370902
/*370873*/                OPC_MoveParent,
/*370874*/                OPC_MoveParent,
/*370875*/                OPC_MoveParent,
/*370876*/                OPC_CheckChild2Same, 1,
/*370878*/                OPC_CheckType, MVT::v4f32,
/*370880*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370882*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370885*/                OPC_EmitMergeInputChains, 1, 3, 
/*370888*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370902*/              /*SwitchType*/ 29, MVT::f64,// ->370933
/*370904*/                OPC_MoveParent,
/*370905*/                OPC_MoveParent,
/*370906*/                OPC_MoveParent,
/*370907*/                OPC_CheckChild2Same, 1,
/*370909*/                OPC_CheckType, MVT::v4f64,
/*370911*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370913*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370916*/                OPC_EmitMergeInputChains, 1, 3, 
/*370919*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370933*/              0, // EndSwitchType
/*370934*/            /*Scope*/ 80, /*->371015*/
/*370935*/              OPC_MoveChild0,
/*370936*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*370939*/              OPC_MoveChild0,
/*370940*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370943*/              OPC_RecordMemRef,
/*370944*/              OPC_RecordNode, // #1 = 'ld' chained node
/*370945*/              OPC_CheckFoldableChainNode,
/*370946*/              OPC_RecordChild1, // #2 = $src3
/*370947*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370949*/              OPC_CheckPredicate, 9, // Predicate_load
/*370951*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->370983
/*370954*/                OPC_MoveParent,
/*370955*/                OPC_MoveParent,
/*370956*/                OPC_RecordChild1, // #3 = $src2
/*370957*/                OPC_RecordChild2, // #4 = $src1
/*370958*/                OPC_MoveParent,
/*370959*/                OPC_CheckChild2Same, 4,
/*370961*/                OPC_CheckType, MVT::v4f32,
/*370963*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370965*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370968*/                OPC_EmitMergeInputChains1_1,
/*370969*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*370983*/              /*SwitchType*/ 29, MVT::f64,// ->371014
/*370985*/                OPC_MoveParent,
/*370986*/                OPC_MoveParent,
/*370987*/                OPC_RecordChild1, // #3 = $src2
/*370988*/                OPC_RecordChild2, // #4 = $src1
/*370989*/                OPC_MoveParent,
/*370990*/                OPC_CheckChild2Same, 4,
/*370992*/                OPC_CheckType, MVT::v4f64,
/*370994*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370996*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*370999*/                OPC_EmitMergeInputChains1_1,
/*371000*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371014*/              0, // EndSwitchType
/*371015*/            /*Scope*/ 90|128,1/*218*/, /*->371235*/
/*371017*/              OPC_RecordChild0, // #1 = $src1
/*371018*/              OPC_Scope, 78, /*->371098*/ // 3 children in Scope
/*371020*/                OPC_MoveChild1,
/*371021*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*371024*/                OPC_MoveChild0,
/*371025*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371028*/                OPC_RecordMemRef,
/*371029*/                OPC_RecordNode, // #2 = 'ld' chained node
/*371030*/                OPC_CheckFoldableChainNode,
/*371031*/                OPC_RecordChild1, // #3 = $src3
/*371032*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371034*/                OPC_CheckPredicate, 9, // Predicate_load
/*371036*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->371067
/*371039*/                  OPC_MoveParent,
/*371040*/                  OPC_MoveParent,
/*371041*/                  OPC_RecordChild2, // #4 = $src2
/*371042*/                  OPC_MoveParent,
/*371043*/                  OPC_CheckChild2Same, 1,
/*371045*/                  OPC_CheckType, MVT::v4f32,
/*371047*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371049*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371052*/                  OPC_EmitMergeInputChains1_2,
/*371053*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371067*/                /*SwitchType*/ 28, MVT::f64,// ->371097
/*371069*/                  OPC_MoveParent,
/*371070*/                  OPC_MoveParent,
/*371071*/                  OPC_RecordChild2, // #4 = $src2
/*371072*/                  OPC_MoveParent,
/*371073*/                  OPC_CheckChild2Same, 1,
/*371075*/                  OPC_CheckType, MVT::v4f64,
/*371077*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371079*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371082*/                  OPC_EmitMergeInputChains1_2,
/*371083*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371097*/                0, // EndSwitchType
/*371098*/              /*Scope*/ 69, /*->371168*/
/*371099*/                OPC_RecordChild1, // #2 = $src1
/*371100*/                OPC_MoveChild2,
/*371101*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371104*/                OPC_RecordMemRef,
/*371105*/                OPC_RecordNode, // #3 = 'ld' chained node
/*371106*/                OPC_CheckFoldableChainNode,
/*371107*/                OPC_RecordChild1, // #4 = $src3
/*371108*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371110*/                OPC_CheckPredicate, 9, // Predicate_load
/*371112*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*371114*/                OPC_MoveParent,
/*371115*/                OPC_MoveParent,
/*371116*/                OPC_CheckChild2Same, 2,
/*371118*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->371143
/*371121*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371123*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371126*/                  OPC_EmitMergeInputChains, 1, 3, 
/*371129*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371143*/                /*SwitchType*/ 22, MVT::v4f64,// ->371167
/*371145*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371147*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371150*/                  OPC_EmitMergeInputChains, 1, 3, 
/*371153*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371167*/                0, // EndSwitchType
/*371168*/              /*Scope*/ 65, /*->371234*/
/*371169*/                OPC_MoveChild1,
/*371170*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371173*/                OPC_RecordMemRef,
/*371174*/                OPC_RecordNode, // #2 = 'ld' chained node
/*371175*/                OPC_CheckFoldableChainNode,
/*371176*/                OPC_RecordChild1, // #3 = $src3
/*371177*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371179*/                OPC_CheckPredicate, 9, // Predicate_load
/*371181*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*371183*/                OPC_MoveParent,
/*371184*/                OPC_RecordChild2, // #4 = $src1
/*371185*/                OPC_MoveParent,
/*371186*/                OPC_CheckChild2Same, 4,
/*371188*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->371211
/*371191*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371193*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371196*/                  OPC_EmitMergeInputChains1_2,
/*371197*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371211*/                /*SwitchType*/ 20, MVT::v4f64,// ->371233
/*371213*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371215*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371218*/                  OPC_EmitMergeInputChains1_2,
/*371219*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371233*/                0, // EndSwitchType
/*371234*/              0, /*End of Scope*/
/*371235*/            /*Scope*/ 66, /*->371302*/
/*371236*/              OPC_MoveChild0,
/*371237*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371240*/              OPC_RecordMemRef,
/*371241*/              OPC_RecordNode, // #1 = 'ld' chained node
/*371242*/              OPC_CheckFoldableChainNode,
/*371243*/              OPC_RecordChild1, // #2 = $src3
/*371244*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371246*/              OPC_CheckPredicate, 9, // Predicate_load
/*371248*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*371250*/              OPC_MoveParent,
/*371251*/              OPC_RecordChild1, // #3 = $src1
/*371252*/              OPC_RecordChild2, // #4 = $src2
/*371253*/              OPC_MoveParent,
/*371254*/              OPC_CheckChild2Same, 3,
/*371256*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->371279
/*371259*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371261*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371264*/                OPC_EmitMergeInputChains1_1,
/*371265*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371279*/              /*SwitchType*/ 20, MVT::v4f64,// ->371301
/*371281*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371283*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371286*/                OPC_EmitMergeInputChains1_1,
/*371287*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371301*/              0, // EndSwitchType
/*371302*/            /*Scope*/ 70, /*->371373*/
/*371303*/              OPC_RecordChild0, // #1 = $src1
/*371304*/              OPC_RecordChild1, // #2 = $src2
/*371305*/              OPC_MoveChild2,
/*371306*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371309*/              OPC_RecordMemRef,
/*371310*/              OPC_RecordNode, // #3 = 'ld' chained node
/*371311*/              OPC_CheckFoldableChainNode,
/*371312*/              OPC_RecordChild1, // #4 = $src3
/*371313*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371315*/              OPC_CheckPredicate, 9, // Predicate_load
/*371317*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*371319*/              OPC_MoveParent,
/*371320*/              OPC_MoveParent,
/*371321*/              OPC_CheckChild2Same, 1,
/*371323*/              OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->371348
/*371326*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371328*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371331*/                OPC_EmitMergeInputChains, 1, 3, 
/*371334*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371348*/              /*SwitchType*/ 22, MVT::v4f64,// ->371372
/*371350*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371352*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371355*/                OPC_EmitMergeInputChains, 1, 3, 
/*371358*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371372*/              0, // EndSwitchType
/*371373*/            /*Scope*/ 66, /*->371440*/
/*371374*/              OPC_MoveChild0,
/*371375*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371378*/              OPC_RecordMemRef,
/*371379*/              OPC_RecordNode, // #1 = 'ld' chained node
/*371380*/              OPC_CheckFoldableChainNode,
/*371381*/              OPC_RecordChild1, // #2 = $src3
/*371382*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371384*/              OPC_CheckPredicate, 9, // Predicate_load
/*371386*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*371388*/              OPC_MoveParent,
/*371389*/              OPC_RecordChild1, // #3 = $src2
/*371390*/              OPC_RecordChild2, // #4 = $src1
/*371391*/              OPC_MoveParent,
/*371392*/              OPC_CheckChild2Same, 4,
/*371394*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->371417
/*371397*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371399*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371402*/                OPC_EmitMergeInputChains1_1,
/*371403*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371417*/              /*SwitchType*/ 20, MVT::v4f64,// ->371439
/*371419*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371421*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371424*/                OPC_EmitMergeInputChains1_1,
/*371425*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371439*/              0, // EndSwitchType
/*371440*/            /*Scope*/ 66, /*->371507*/
/*371441*/              OPC_RecordChild0, // #1 = $src1
/*371442*/              OPC_MoveChild1,
/*371443*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371446*/              OPC_RecordMemRef,
/*371447*/              OPC_RecordNode, // #2 = 'ld' chained node
/*371448*/              OPC_CheckFoldableChainNode,
/*371449*/              OPC_RecordChild1, // #3 = $src3
/*371450*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371452*/              OPC_CheckPredicate, 9, // Predicate_load
/*371454*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*371456*/              OPC_MoveParent,
/*371457*/              OPC_RecordChild2, // #4 = $src2
/*371458*/              OPC_MoveParent,
/*371459*/              OPC_CheckChild2Same, 1,
/*371461*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->371484
/*371464*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371466*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371469*/                OPC_EmitMergeInputChains1_2,
/*371470*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371484*/              /*SwitchType*/ 20, MVT::v4f64,// ->371506
/*371486*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371488*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371491*/                OPC_EmitMergeInputChains1_2,
/*371492*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371506*/              0, // EndSwitchType
/*371507*/            0, /*End of Scope*/
/*371508*/          /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VFPROUND),// ->371593
/*371511*/            OPC_MoveChild0,
/*371512*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->371555
/*371516*/              OPC_MoveChild0,
/*371517*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371520*/              OPC_RecordMemRef,
/*371521*/              OPC_RecordNode, // #1 = 'ld' chained node
/*371522*/              OPC_CheckFoldableChainNode,
/*371523*/              OPC_RecordChild1, // #2 = $src
/*371524*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371526*/              OPC_CheckPredicate, 9, // Predicate_load
/*371528*/              OPC_CheckType, MVT::f64,
/*371530*/              OPC_MoveParent,
/*371531*/              OPC_MoveParent,
/*371532*/              OPC_MoveParent,
/*371533*/              OPC_RecordChild2, // #3 = $src0
/*371534*/              OPC_CheckType, MVT::v4f32,
/*371536*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371538*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371541*/              OPC_EmitMergeInputChains1_1,
/*371542*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86vfpround:{ *:[v4f32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                        // Dst: (VCVTPD2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371555*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->371592
/*371558*/              OPC_RecordMemRef,
/*371559*/              OPC_RecordNode, // #1 = 'ld' chained node
/*371560*/              OPC_CheckFoldableChainNode,
/*371561*/              OPC_RecordChild1, // #2 = $src
/*371562*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371564*/              OPC_CheckPredicate, 9, // Predicate_load
/*371566*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*371568*/              OPC_MoveParent,
/*371569*/              OPC_MoveParent,
/*371570*/              OPC_RecordChild2, // #3 = $src0
/*371571*/              OPC_CheckType, MVT::v4f32,
/*371573*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371575*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371578*/              OPC_EmitMergeInputChains1_1,
/*371579*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86vfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPD2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371592*/            0, // EndSwitchOpcode
/*371593*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::FP_ROUND),// ->371678
/*371596*/            OPC_MoveChild0,
/*371597*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->371640
/*371601*/              OPC_MoveChild0,
/*371602*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371605*/              OPC_RecordMemRef,
/*371606*/              OPC_RecordNode, // #1 = 'ld' chained node
/*371607*/              OPC_CheckFoldableChainNode,
/*371608*/              OPC_RecordChild1, // #2 = $src
/*371609*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371611*/              OPC_CheckPredicate, 9, // Predicate_load
/*371613*/              OPC_CheckType, MVT::f64,
/*371615*/              OPC_MoveParent,
/*371616*/              OPC_MoveParent,
/*371617*/              OPC_MoveParent,
/*371618*/              OPC_RecordChild2, // #3 = $src0
/*371619*/              OPC_CheckType, MVT::v4f32,
/*371621*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371623*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371626*/              OPC_EmitMergeInputChains1_1,
/*371627*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fpround:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                        // Dst: (VCVTPD2PSZ256rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371640*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->371677
/*371643*/              OPC_RecordMemRef,
/*371644*/              OPC_RecordNode, // #1 = 'ld' chained node
/*371645*/              OPC_CheckFoldableChainNode,
/*371646*/              OPC_RecordChild1, // #2 = $src
/*371647*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371649*/              OPC_CheckPredicate, 9, // Predicate_load
/*371651*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*371653*/              OPC_MoveParent,
/*371654*/              OPC_MoveParent,
/*371655*/              OPC_RecordChild2, // #3 = $src0
/*371656*/              OPC_CheckType, MVT::v4f32,
/*371658*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371660*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371663*/              OPC_EmitMergeInputChains1_1,
/*371664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPD2PSZ256rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371677*/            0, // EndSwitchOpcode
/*371678*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::FP_EXTEND),// ->371763
/*371681*/            OPC_MoveChild0,
/*371682*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->371725
/*371686*/              OPC_MoveChild0,
/*371687*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371690*/              OPC_RecordMemRef,
/*371691*/              OPC_RecordNode, // #1 = 'ld' chained node
/*371692*/              OPC_CheckFoldableChainNode,
/*371693*/              OPC_RecordChild1, // #2 = $src
/*371694*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371696*/              OPC_CheckPredicate, 9, // Predicate_load
/*371698*/              OPC_CheckType, MVT::f32,
/*371700*/              OPC_MoveParent,
/*371701*/              OPC_MoveParent,
/*371702*/              OPC_MoveParent,
/*371703*/              OPC_RecordChild2, // #3 = $src0
/*371704*/              OPC_CheckType, MVT::v4f64,
/*371706*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371708*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371711*/              OPC_EmitMergeInputChains1_1,
/*371712*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fpextend:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VCVTPS2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371725*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->371762
/*371728*/              OPC_RecordMemRef,
/*371729*/              OPC_RecordNode, // #1 = 'ld' chained node
/*371730*/              OPC_CheckFoldableChainNode,
/*371731*/              OPC_RecordChild1, // #2 = $src
/*371732*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371734*/              OPC_CheckPredicate, 9, // Predicate_load
/*371736*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*371738*/              OPC_MoveParent,
/*371739*/              OPC_MoveParent,
/*371740*/              OPC_RecordChild2, // #3 = $src0
/*371741*/              OPC_CheckType, MVT::v4f64,
/*371743*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371745*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371748*/              OPC_EmitMergeInputChains1_1,
/*371749*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fpextend:{ *:[v4f64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                        // Dst: (VCVTPS2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371762*/            0, // EndSwitchOpcode
/*371763*/          /*SwitchOpcode*/ 1|128,2/*257*/, TARGET_VAL(ISD::SINT_TO_FP),// ->372024
/*371767*/            OPC_MoveChild0,
/*371768*/            OPC_SwitchOpcode /*3 cases */, 66, TARGET_VAL(ISD::BITCAST),// ->371838
/*371772*/              OPC_MoveChild0,
/*371773*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371776*/              OPC_RecordMemRef,
/*371777*/              OPC_RecordNode, // #1 = 'ld' chained node
/*371778*/              OPC_CheckFoldableChainNode,
/*371779*/              OPC_RecordChild1, // #2 = $src
/*371780*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371782*/              OPC_CheckPredicate, 9, // Predicate_load
/*371784*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*371786*/              OPC_CheckType, MVT::v2i64,
/*371788*/              OPC_MoveParent,
/*371789*/              OPC_CheckType, MVT::v4i32,
/*371791*/              OPC_MoveParent,
/*371792*/              OPC_MoveParent,
/*371793*/              OPC_RecordChild2, // #3 = $src0
/*371794*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->371816
/*371797*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371799*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371802*/                OPC_EmitMergeInputChains1_1,
/*371803*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VCVTDQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371816*/              /*SwitchType*/ 19, MVT::v4f32,// ->371837
/*371818*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371820*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371823*/                OPC_EmitMergeInputChains1_1,
/*371824*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VCVTDQ2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371837*/              0, // EndSwitchType
/*371838*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST),// ->371961
/*371841*/              OPC_MoveChild0,
/*371842*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371845*/              OPC_RecordMemRef,
/*371846*/              OPC_RecordNode, // #1 = 'ld' chained node
/*371847*/              OPC_CheckFoldableChainNode,
/*371848*/              OPC_RecordChild1, // #2 = $src
/*371849*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371851*/              OPC_SwitchType /*2 cases */, 52, MVT::i32,// ->371906
/*371854*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*371856*/                OPC_MoveParent,
/*371857*/                OPC_CheckType, MVT::v4i32,
/*371859*/                OPC_MoveParent,
/*371860*/                OPC_MoveParent,
/*371861*/                OPC_RecordChild2, // #3 = $src0
/*371862*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->371884
/*371865*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371867*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371870*/                  OPC_EmitMergeInputChains1_1,
/*371871*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTDQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371884*/                /*SwitchType*/ 19, MVT::v4f32,// ->371905
/*371886*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371888*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371891*/                  OPC_EmitMergeInputChains1_1,
/*371892*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                            // Dst: (VCVTDQ2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371905*/                0, // EndSwitchType
/*371906*/              /*SwitchType*/ 52, MVT::i64,// ->371960
/*371908*/                OPC_CheckPredicate, 9, // Predicate_load
/*371910*/                OPC_MoveParent,
/*371911*/                OPC_CheckType, MVT::v4i64,
/*371913*/                OPC_MoveParent,
/*371914*/                OPC_MoveParent,
/*371915*/                OPC_RecordChild2, // #3 = $src0
/*371916*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->371938
/*371919*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*371921*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371924*/                  OPC_EmitMergeInputChains1_1,
/*371925*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTQQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371938*/                /*SwitchType*/ 19, MVT::v4f32,// ->371959
/*371940*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*371942*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371945*/                  OPC_EmitMergeInputChains1_1,
/*371946*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                            // Dst: (VCVTQQ2PSZ256rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371959*/                0, // EndSwitchType
/*371960*/              0, // EndSwitchType
/*371961*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->372023
/*371964*/              OPC_RecordMemRef,
/*371965*/              OPC_RecordNode, // #1 = 'ld' chained node
/*371966*/              OPC_CheckFoldableChainNode,
/*371967*/              OPC_RecordChild1, // #2 = $src
/*371968*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371970*/              OPC_CheckPredicate, 9, // Predicate_load
/*371972*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*371974*/              OPC_CheckType, MVT::v4i64,
/*371976*/              OPC_MoveParent,
/*371977*/              OPC_MoveParent,
/*371978*/              OPC_RecordChild2, // #3 = $src0
/*371979*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->372001
/*371982*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*371984*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371987*/                OPC_EmitMergeInputChains1_1,
/*371988*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTQQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372001*/              /*SwitchType*/ 19, MVT::v4f32,// ->372022
/*372003*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*372005*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372008*/                OPC_EmitMergeInputChains1_1,
/*372009*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VCVTQQ2PSZ256rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372022*/              0, // EndSwitchType
/*372023*/            0, // EndSwitchOpcode
/*372024*/          /*SwitchOpcode*/ 1|128,2/*257*/, TARGET_VAL(ISD::UINT_TO_FP),// ->372285
/*372028*/            OPC_MoveChild0,
/*372029*/            OPC_SwitchOpcode /*3 cases */, 66, TARGET_VAL(ISD::BITCAST),// ->372099
/*372033*/              OPC_MoveChild0,
/*372034*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*372037*/              OPC_RecordMemRef,
/*372038*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372039*/              OPC_CheckFoldableChainNode,
/*372040*/              OPC_RecordChild1, // #2 = $src
/*372041*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372043*/              OPC_CheckPredicate, 9, // Predicate_load
/*372045*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*372047*/              OPC_CheckType, MVT::v2i64,
/*372049*/              OPC_MoveParent,
/*372050*/              OPC_CheckType, MVT::v4i32,
/*372052*/              OPC_MoveParent,
/*372053*/              OPC_MoveParent,
/*372054*/              OPC_RecordChild2, // #3 = $src0
/*372055*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->372077
/*372058*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372060*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372063*/                OPC_EmitMergeInputChains1_1,
/*372064*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VCVTUDQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372077*/              /*SwitchType*/ 19, MVT::v4f32,// ->372098
/*372079*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372081*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372084*/                OPC_EmitMergeInputChains1_1,
/*372085*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VCVTUDQ2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372098*/              0, // EndSwitchType
/*372099*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST),// ->372222
/*372102*/              OPC_MoveChild0,
/*372103*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*372106*/              OPC_RecordMemRef,
/*372107*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372108*/              OPC_CheckFoldableChainNode,
/*372109*/              OPC_RecordChild1, // #2 = $src
/*372110*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372112*/              OPC_SwitchType /*2 cases */, 52, MVT::i32,// ->372167
/*372115*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*372117*/                OPC_MoveParent,
/*372118*/                OPC_CheckType, MVT::v4i32,
/*372120*/                OPC_MoveParent,
/*372121*/                OPC_MoveParent,
/*372122*/                OPC_RecordChild2, // #3 = $src0
/*372123*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->372145
/*372126*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372128*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372131*/                  OPC_EmitMergeInputChains1_1,
/*372132*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTUDQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372145*/                /*SwitchType*/ 19, MVT::v4f32,// ->372166
/*372147*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372149*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372152*/                  OPC_EmitMergeInputChains1_1,
/*372153*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                            // Dst: (VCVTUDQ2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372166*/                0, // EndSwitchType
/*372167*/              /*SwitchType*/ 52, MVT::i64,// ->372221
/*372169*/                OPC_CheckPredicate, 9, // Predicate_load
/*372171*/                OPC_MoveParent,
/*372172*/                OPC_CheckType, MVT::v4i64,
/*372174*/                OPC_MoveParent,
/*372175*/                OPC_MoveParent,
/*372176*/                OPC_RecordChild2, // #3 = $src0
/*372177*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->372199
/*372180*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*372182*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372185*/                  OPC_EmitMergeInputChains1_1,
/*372186*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTUQQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372199*/                /*SwitchType*/ 19, MVT::v4f32,// ->372220
/*372201*/                  OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*372203*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372206*/                  OPC_EmitMergeInputChains1_1,
/*372207*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                            // Dst: (VCVTUQQ2PSZ256rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372220*/                0, // EndSwitchType
/*372221*/              0, // EndSwitchType
/*372222*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->372284
/*372225*/              OPC_RecordMemRef,
/*372226*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372227*/              OPC_CheckFoldableChainNode,
/*372228*/              OPC_RecordChild1, // #2 = $src
/*372229*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372231*/              OPC_CheckPredicate, 9, // Predicate_load
/*372233*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*372235*/              OPC_CheckType, MVT::v4i64,
/*372237*/              OPC_MoveParent,
/*372238*/              OPC_MoveParent,
/*372239*/              OPC_RecordChild2, // #3 = $src0
/*372240*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->372262
/*372243*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*372245*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372248*/                OPC_EmitMergeInputChains1_1,
/*372249*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTUQQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372262*/              /*SwitchType*/ 19, MVT::v4f32,// ->372283
/*372264*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*372266*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372269*/                OPC_EmitMergeInputChains1_1,
/*372270*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VCVTUQQ2PSZ256rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372283*/              0, // EndSwitchType
/*372284*/            0, // EndSwitchOpcode
/*372285*/          /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::CVTSI2P),// ->372374
/*372288*/            OPC_MoveChild0,
/*372289*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(X86ISD::VBROADCAST),// ->372334
/*372293*/              OPC_MoveChild0,
/*372294*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*372297*/              OPC_RecordMemRef,
/*372298*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372299*/              OPC_CheckFoldableChainNode,
/*372300*/              OPC_RecordChild1, // #2 = $src
/*372301*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372303*/              OPC_CheckPredicate, 9, // Predicate_load
/*372305*/              OPC_CheckType, MVT::i64,
/*372307*/              OPC_MoveParent,
/*372308*/              OPC_CheckType, MVT::v2i64,
/*372310*/              OPC_MoveParent,
/*372311*/              OPC_MoveParent,
/*372312*/              OPC_RecordChild2, // #3 = $src0
/*372313*/              OPC_CheckType, MVT::v4f32,
/*372315*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*372317*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372320*/              OPC_EmitMergeInputChains1_1,
/*372321*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VSintToFP:{ *:[v4f32] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                        // Dst: (VCVTQQ2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372334*/            /*SwitchOpcode*/ 36, TARGET_VAL(ISD::LOAD),// ->372373
/*372337*/              OPC_RecordMemRef,
/*372338*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372339*/              OPC_CheckFoldableChainNode,
/*372340*/              OPC_RecordChild1, // #2 = $src
/*372341*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372343*/              OPC_CheckPredicate, 9, // Predicate_load
/*372345*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*372347*/              OPC_CheckType, MVT::v2i64,
/*372349*/              OPC_MoveParent,
/*372350*/              OPC_MoveParent,
/*372351*/              OPC_RecordChild2, // #3 = $src0
/*372352*/              OPC_CheckType, MVT::v4f32,
/*372354*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*372356*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372359*/              OPC_EmitMergeInputChains1_1,
/*372360*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VSintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTQQ2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372373*/            0, // EndSwitchOpcode
/*372374*/          /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::CVTUI2P),// ->372463
/*372377*/            OPC_MoveChild0,
/*372378*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(X86ISD::VBROADCAST),// ->372423
/*372382*/              OPC_MoveChild0,
/*372383*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*372386*/              OPC_RecordMemRef,
/*372387*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372388*/              OPC_CheckFoldableChainNode,
/*372389*/              OPC_RecordChild1, // #2 = $src
/*372390*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372392*/              OPC_CheckPredicate, 9, // Predicate_load
/*372394*/              OPC_CheckType, MVT::i64,
/*372396*/              OPC_MoveParent,
/*372397*/              OPC_CheckType, MVT::v2i64,
/*372399*/              OPC_MoveParent,
/*372400*/              OPC_MoveParent,
/*372401*/              OPC_RecordChild2, // #3 = $src0
/*372402*/              OPC_CheckType, MVT::v4f32,
/*372404*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*372406*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372409*/              OPC_EmitMergeInputChains1_1,
/*372410*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VUintToFP:{ *:[v4f32] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                        // Dst: (VCVTUQQ2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372423*/            /*SwitchOpcode*/ 36, TARGET_VAL(ISD::LOAD),// ->372462
/*372426*/              OPC_RecordMemRef,
/*372427*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372428*/              OPC_CheckFoldableChainNode,
/*372429*/              OPC_RecordChild1, // #2 = $src
/*372430*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372432*/              OPC_CheckPredicate, 9, // Predicate_load
/*372434*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*372436*/              OPC_CheckType, MVT::v2i64,
/*372438*/              OPC_MoveParent,
/*372439*/              OPC_MoveParent,
/*372440*/              OPC_RecordChild2, // #3 = $src0
/*372441*/              OPC_CheckType, MVT::v4f32,
/*372443*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*372445*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372448*/              OPC_EmitMergeInputChains1_1,
/*372449*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VUintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTUQQ2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372462*/            0, // EndSwitchOpcode
/*372463*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::CVTPH2PS),// ->372513
/*372466*/            OPC_MoveChild0,
/*372467*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*372470*/            OPC_MoveChild0,
/*372471*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*372474*/            OPC_RecordMemRef,
/*372475*/            OPC_RecordNode, // #1 = 'ld' chained node
/*372476*/            OPC_CheckFoldableChainNode,
/*372477*/            OPC_RecordChild1, // #2 = $src
/*372478*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372480*/            OPC_CheckPredicate, 9, // Predicate_load
/*372482*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*372484*/            OPC_CheckType, MVT::v2i64,
/*372486*/            OPC_MoveParent,
/*372487*/            OPC_CheckType, MVT::v8i16,
/*372489*/            OPC_MoveParent,
/*372490*/            OPC_MoveParent,
/*372491*/            OPC_RecordChild2, // #3 = $src0
/*372492*/            OPC_CheckType, MVT::v4f32,
/*372494*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372496*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372499*/            OPC_EmitMergeInputChains1_1,
/*372500*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtph2ps:{ *:[v4f32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                      // Dst: (VCVTPH2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372513*/          /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(X86ISD::RSQRT14),// ->372651
/*372517*/            OPC_MoveChild0,
/*372518*/            OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(X86ISD::VBROADCAST),// ->372590
/*372522*/              OPC_MoveChild0,
/*372523*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*372526*/              OPC_RecordMemRef,
/*372527*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372528*/              OPC_CheckFoldableChainNode,
/*372529*/              OPC_RecordChild1, // #2 = $src
/*372530*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372532*/              OPC_CheckPredicate, 9, // Predicate_load
/*372534*/              OPC_SwitchType /*2 cases */, 25, MVT::f32,// ->372562
/*372537*/                OPC_MoveParent,
/*372538*/                OPC_MoveParent,
/*372539*/                OPC_MoveParent,
/*372540*/                OPC_RecordChild2, // #3 = $src0
/*372541*/                OPC_CheckType, MVT::v4f32,
/*372543*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372545*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372548*/                OPC_EmitMergeInputChains1_1,
/*372549*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VRSQRT14PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372562*/              /*SwitchType*/ 25, MVT::f64,// ->372589
/*372564*/                OPC_MoveParent,
/*372565*/                OPC_MoveParent,
/*372566*/                OPC_MoveParent,
/*372567*/                OPC_RecordChild2, // #3 = $src0
/*372568*/                OPC_CheckType, MVT::v4f64,
/*372570*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372572*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372575*/                OPC_EmitMergeInputChains1_1,
/*372576*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VRSQRT14PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372589*/              0, // EndSwitchType
/*372590*/            /*SwitchOpcode*/ 57, TARGET_VAL(ISD::LOAD),// ->372650
/*372593*/              OPC_RecordMemRef,
/*372594*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372595*/              OPC_CheckFoldableChainNode,
/*372596*/              OPC_RecordChild1, // #2 = $src
/*372597*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372599*/              OPC_CheckPredicate, 9, // Predicate_load
/*372601*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*372603*/              OPC_MoveParent,
/*372604*/              OPC_MoveParent,
/*372605*/              OPC_RecordChild2, // #3 = $src0
/*372606*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->372628
/*372609*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372611*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372614*/                OPC_EmitMergeInputChains1_1,
/*372615*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372628*/              /*SwitchType*/ 19, MVT::v4f64,// ->372649
/*372630*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372632*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372635*/                OPC_EmitMergeInputChains1_1,
/*372636*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372649*/              0, // EndSwitchType
/*372650*/            0, // EndSwitchOpcode
/*372651*/          /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(X86ISD::RCP14),// ->372789
/*372655*/            OPC_MoveChild0,
/*372656*/            OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(X86ISD::VBROADCAST),// ->372728
/*372660*/              OPC_MoveChild0,
/*372661*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*372664*/              OPC_RecordMemRef,
/*372665*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372666*/              OPC_CheckFoldableChainNode,
/*372667*/              OPC_RecordChild1, // #2 = $src
/*372668*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372670*/              OPC_CheckPredicate, 9, // Predicate_load
/*372672*/              OPC_SwitchType /*2 cases */, 25, MVT::f32,// ->372700
/*372675*/                OPC_MoveParent,
/*372676*/                OPC_MoveParent,
/*372677*/                OPC_MoveParent,
/*372678*/                OPC_RecordChild2, // #3 = $src0
/*372679*/                OPC_CheckType, MVT::v4f32,
/*372681*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372683*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372686*/                OPC_EmitMergeInputChains1_1,
/*372687*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VRCP14PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372700*/              /*SwitchType*/ 25, MVT::f64,// ->372727
/*372702*/                OPC_MoveParent,
/*372703*/                OPC_MoveParent,
/*372704*/                OPC_MoveParent,
/*372705*/                OPC_RecordChild2, // #3 = $src0
/*372706*/                OPC_CheckType, MVT::v4f64,
/*372708*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372710*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372713*/                OPC_EmitMergeInputChains1_1,
/*372714*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VRCP14PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372727*/              0, // EndSwitchType
/*372728*/            /*SwitchOpcode*/ 57, TARGET_VAL(ISD::LOAD),// ->372788
/*372731*/              OPC_RecordMemRef,
/*372732*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372733*/              OPC_CheckFoldableChainNode,
/*372734*/              OPC_RecordChild1, // #2 = $src
/*372735*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372737*/              OPC_CheckPredicate, 9, // Predicate_load
/*372739*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*372741*/              OPC_MoveParent,
/*372742*/              OPC_MoveParent,
/*372743*/              OPC_RecordChild2, // #3 = $src0
/*372744*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->372766
/*372747*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372749*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372752*/                OPC_EmitMergeInputChains1_1,
/*372753*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372766*/              /*SwitchType*/ 19, MVT::v4f64,// ->372787
/*372768*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372770*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372773*/                OPC_EmitMergeInputChains1_1,
/*372774*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372787*/              0, // EndSwitchType
/*372788*/            0, // EndSwitchOpcode
/*372789*/          /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(ISD::FSQRT),// ->372927
/*372793*/            OPC_MoveChild0,
/*372794*/            OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(X86ISD::VBROADCAST),// ->372866
/*372798*/              OPC_MoveChild0,
/*372799*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*372802*/              OPC_RecordMemRef,
/*372803*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372804*/              OPC_CheckFoldableChainNode,
/*372805*/              OPC_RecordChild1, // #2 = $src
/*372806*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372808*/              OPC_CheckPredicate, 9, // Predicate_load
/*372810*/              OPC_SwitchType /*2 cases */, 25, MVT::f32,// ->372838
/*372813*/                OPC_MoveParent,
/*372814*/                OPC_MoveParent,
/*372815*/                OPC_MoveParent,
/*372816*/                OPC_RecordChild2, // #3 = $src0
/*372817*/                OPC_CheckType, MVT::v4f32,
/*372819*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372821*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372824*/                OPC_EmitMergeInputChains1_1,
/*372825*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VSQRTPSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372838*/              /*SwitchType*/ 25, MVT::f64,// ->372865
/*372840*/                OPC_MoveParent,
/*372841*/                OPC_MoveParent,
/*372842*/                OPC_MoveParent,
/*372843*/                OPC_RecordChild2, // #3 = $src0
/*372844*/                OPC_CheckType, MVT::v4f64,
/*372846*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372848*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372851*/                OPC_EmitMergeInputChains1_1,
/*372852*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VSQRTPDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372865*/              0, // EndSwitchType
/*372866*/            /*SwitchOpcode*/ 57, TARGET_VAL(ISD::LOAD),// ->372926
/*372869*/              OPC_RecordMemRef,
/*372870*/              OPC_RecordNode, // #1 = 'ld' chained node
/*372871*/              OPC_CheckFoldableChainNode,
/*372872*/              OPC_RecordChild1, // #2 = $src
/*372873*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372875*/              OPC_CheckPredicate, 9, // Predicate_load
/*372877*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*372879*/              OPC_MoveParent,
/*372880*/              OPC_MoveParent,
/*372881*/              OPC_RecordChild2, // #3 = $src0
/*372882*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->372904
/*372885*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372887*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372890*/                OPC_EmitMergeInputChains1_1,
/*372891*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372904*/              /*SwitchType*/ 19, MVT::v4f64,// ->372925
/*372906*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372908*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*372911*/                OPC_EmitMergeInputChains1_1,
/*372912*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*372925*/              0, // EndSwitchType
/*372926*/            0, // EndSwitchOpcode
/*372927*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VREDUCE),// ->373003
/*372930*/            OPC_MoveChild0,
/*372931*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*372934*/            OPC_RecordMemRef,
/*372935*/            OPC_RecordNode, // #1 = 'ld' chained node
/*372936*/            OPC_CheckFoldableChainNode,
/*372937*/            OPC_RecordChild1, // #2 = $src1
/*372938*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372940*/            OPC_CheckPredicate, 9, // Predicate_load
/*372942*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*372944*/            OPC_MoveParent,
/*372945*/            OPC_RecordChild1, // #3 = $src2
/*372946*/            OPC_MoveChild1,
/*372947*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*372950*/            OPC_MoveParent,
/*372951*/            OPC_MoveParent,
/*372952*/            OPC_RecordChild2, // #4 = $src0
/*372953*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->372978
/*372956*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*372958*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*372961*/              OPC_EmitMergeInputChains1_1,
/*372962*/              OPC_EmitConvertToTarget, 3,
/*372964*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                        // Dst: (VREDUCEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*372978*/            /*SwitchType*/ 22, MVT::v4f64,// ->373002
/*372980*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*372982*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*372985*/              OPC_EmitMergeInputChains1_1,
/*372986*/              OPC_EmitConvertToTarget, 3,
/*372988*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VREDUCEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*373002*/            0, // EndSwitchType
/*373003*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VRNDSCALE),// ->373079
/*373006*/            OPC_MoveChild0,
/*373007*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*373010*/            OPC_RecordMemRef,
/*373011*/            OPC_RecordNode, // #1 = 'ld' chained node
/*373012*/            OPC_CheckFoldableChainNode,
/*373013*/            OPC_RecordChild1, // #2 = $src1
/*373014*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373016*/            OPC_CheckPredicate, 9, // Predicate_load
/*373018*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*373020*/            OPC_MoveParent,
/*373021*/            OPC_RecordChild1, // #3 = $src2
/*373022*/            OPC_MoveChild1,
/*373023*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*373026*/            OPC_MoveParent,
/*373027*/            OPC_MoveParent,
/*373028*/            OPC_RecordChild2, // #4 = $src0
/*373029*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->373054
/*373032*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*373034*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*373037*/              OPC_EmitMergeInputChains1_1,
/*373038*/              OPC_EmitConvertToTarget, 3,
/*373040*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                        // Dst: (VRNDSCALEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*373054*/            /*SwitchType*/ 22, MVT::v4f64,// ->373078
/*373056*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*373058*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*373061*/              OPC_EmitMergeInputChains1_1,
/*373062*/              OPC_EmitConvertToTarget, 3,
/*373064*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VRNDSCALEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*373078*/            0, // EndSwitchType
/*373079*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VGETMANT),// ->373155
/*373082*/            OPC_MoveChild0,
/*373083*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*373086*/            OPC_RecordMemRef,
/*373087*/            OPC_RecordNode, // #1 = 'ld' chained node
/*373088*/            OPC_CheckFoldableChainNode,
/*373089*/            OPC_RecordChild1, // #2 = $src1
/*373090*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373092*/            OPC_CheckPredicate, 9, // Predicate_load
/*373094*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*373096*/            OPC_MoveParent,
/*373097*/            OPC_RecordChild1, // #3 = $src2
/*373098*/            OPC_MoveChild1,
/*373099*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*373102*/            OPC_MoveParent,
/*373103*/            OPC_MoveParent,
/*373104*/            OPC_RecordChild2, // #4 = $src0
/*373105*/            OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->373130
/*373108*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*373110*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*373113*/              OPC_EmitMergeInputChains1_1,
/*373114*/              OPC_EmitConvertToTarget, 3,
/*373116*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                        // Dst: (VGETMANTPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*373130*/            /*SwitchType*/ 22, MVT::v4f64,// ->373154
/*373132*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*373134*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*373137*/              OPC_EmitMergeInputChains1_1,
/*373138*/              OPC_EmitConvertToTarget, 3,
/*373140*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VGETMANTPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*373154*/            0, // EndSwitchType
/*373155*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VRANGE),// ->373234
/*373158*/            OPC_RecordChild0, // #1 = $src1
/*373159*/            OPC_MoveChild1,
/*373160*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*373163*/            OPC_RecordMemRef,
/*373164*/            OPC_RecordNode, // #2 = 'ld' chained node
/*373165*/            OPC_CheckFoldableChainNode,
/*373166*/            OPC_RecordChild1, // #3 = $src2
/*373167*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373169*/            OPC_CheckPredicate, 9, // Predicate_load
/*373171*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*373173*/            OPC_MoveParent,
/*373174*/            OPC_RecordChild2, // #4 = $src3
/*373175*/            OPC_MoveChild2,
/*373176*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*373179*/            OPC_MoveParent,
/*373180*/            OPC_MoveParent,
/*373181*/            OPC_RecordChild2, // #5 = $src0
/*373182*/            OPC_SwitchType /*2 cases */, 23, MVT::v4f64,// ->373208
/*373185*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*373187*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*373190*/              OPC_EmitMergeInputChains1_2,
/*373191*/              OPC_EmitConvertToTarget, 4,
/*373193*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VRANGEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*373208*/            /*SwitchType*/ 23, MVT::v4f32,// ->373233
/*373210*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*373212*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*373215*/              OPC_EmitMergeInputChains1_2,
/*373216*/              OPC_EmitConvertToTarget, 4,
/*373218*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                        // Dst: (VRANGEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*373233*/            0, // EndSwitchType
/*373234*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::FFLOOR),// ->373388
/*373238*/            OPC_MoveChild0,
/*373239*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(X86ISD::VBROADCAST),// ->373319
/*373243*/              OPC_MoveChild0,
/*373244*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*373247*/              OPC_RecordMemRef,
/*373248*/              OPC_RecordNode, // #1 = 'ld' chained node
/*373249*/              OPC_CheckFoldableChainNode,
/*373250*/              OPC_RecordChild1, // #2 = $src
/*373251*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373253*/              OPC_CheckPredicate, 9, // Predicate_load
/*373255*/              OPC_SwitchType /*2 cases */, 29, MVT::f64,// ->373287
/*373258*/                OPC_MoveParent,
/*373259*/                OPC_MoveParent,
/*373260*/                OPC_MoveParent,
/*373261*/                OPC_RecordChild2, // #3 = $dst
/*373262*/                OPC_CheckType, MVT::v4f64,
/*373264*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373266*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373269*/                OPC_EmitMergeInputChains1_1,
/*373270*/                OPC_EmitInteger, MVT::i32, 9, 
/*373273*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*373287*/              /*SwitchType*/ 29, MVT::f32,// ->373318
/*373289*/                OPC_MoveParent,
/*373290*/                OPC_MoveParent,
/*373291*/                OPC_MoveParent,
/*373292*/                OPC_RecordChild2, // #3 = $dst
/*373293*/                OPC_CheckType, MVT::v4f32,
/*373295*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373297*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373300*/                OPC_EmitMergeInputChains1_1,
/*373301*/                OPC_EmitInteger, MVT::i32, 9, 
/*373304*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*373318*/              0, // EndSwitchType
/*373319*/            /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->373387
/*373322*/              OPC_RecordMemRef,
/*373323*/              OPC_RecordNode, // #1 = 'ld' chained node
/*373324*/              OPC_CheckFoldableChainNode,
/*373325*/              OPC_RecordChild1, // #2 = $src
/*373326*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373328*/              OPC_CheckPredicate, 9, // Predicate_load
/*373330*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*373332*/              OPC_MoveParent,
/*373333*/              OPC_MoveParent,
/*373334*/              OPC_RecordChild2, // #3 = $dst
/*373335*/              OPC_SwitchType /*2 cases */, 23, MVT::v4f64,// ->373361
/*373338*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373340*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373343*/                OPC_EmitMergeInputChains1_1,
/*373344*/                OPC_EmitInteger, MVT::i32, 9, 
/*373347*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*373361*/              /*SwitchType*/ 23, MVT::v4f32,// ->373386
/*373363*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373365*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373368*/                OPC_EmitMergeInputChains1_1,
/*373369*/                OPC_EmitInteger, MVT::i32, 9, 
/*373372*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*373386*/              0, // EndSwitchType
/*373387*/            0, // EndSwitchOpcode
/*373388*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::FNEARBYINT),// ->373542
/*373392*/            OPC_MoveChild0,
/*373393*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(X86ISD::VBROADCAST),// ->373473
/*373397*/              OPC_MoveChild0,
/*373398*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*373401*/              OPC_RecordMemRef,
/*373402*/              OPC_RecordNode, // #1 = 'ld' chained node
/*373403*/              OPC_CheckFoldableChainNode,
/*373404*/              OPC_RecordChild1, // #2 = $src
/*373405*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373407*/              OPC_CheckPredicate, 9, // Predicate_load
/*373409*/              OPC_SwitchType /*2 cases */, 29, MVT::f64,// ->373441
/*373412*/                OPC_MoveParent,
/*373413*/                OPC_MoveParent,
/*373414*/                OPC_MoveParent,
/*373415*/                OPC_RecordChild2, // #3 = $dst
/*373416*/                OPC_CheckType, MVT::v4f64,
/*373418*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373420*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373423*/                OPC_EmitMergeInputChains1_1,
/*373424*/                OPC_EmitInteger, MVT::i32, 12, 
/*373427*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*373441*/              /*SwitchType*/ 29, MVT::f32,// ->373472
/*373443*/                OPC_MoveParent,
/*373444*/                OPC_MoveParent,
/*373445*/                OPC_MoveParent,
/*373446*/                OPC_RecordChild2, // #3 = $dst
/*373447*/                OPC_CheckType, MVT::v4f32,
/*373449*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373451*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373454*/                OPC_EmitMergeInputChains1_1,
/*373455*/                OPC_EmitInteger, MVT::i32, 12, 
/*373458*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*373472*/              0, // EndSwitchType
/*373473*/            /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->373541
/*373476*/              OPC_RecordMemRef,
/*373477*/              OPC_RecordNode, // #1 = 'ld' chained node
/*373478*/              OPC_CheckFoldableChainNode,
/*373479*/              OPC_RecordChild1, // #2 = $src
/*373480*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373482*/              OPC_CheckPredicate, 9, // Predicate_load
/*373484*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*373486*/              OPC_MoveParent,
/*373487*/              OPC_MoveParent,
/*373488*/              OPC_RecordChild2, // #3 = $dst
/*373489*/              OPC_SwitchType /*2 cases */, 23, MVT::v4f64,// ->373515
/*373492*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373494*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373497*/                OPC_EmitMergeInputChains1_1,
/*373498*/                OPC_EmitInteger, MVT::i32, 12, 
/*373501*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*373515*/              /*SwitchType*/ 23, MVT::v4f32,// ->373540
/*373517*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373519*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373522*/                OPC_EmitMergeInputChains1_1,
/*373523*/                OPC_EmitInteger, MVT::i32, 12, 
/*373526*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*373540*/              0, // EndSwitchType
/*373541*/            0, // EndSwitchOpcode
/*373542*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::FCEIL),// ->373696
/*373546*/            OPC_MoveChild0,
/*373547*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(X86ISD::VBROADCAST),// ->373627
/*373551*/              OPC_MoveChild0,
/*373552*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*373555*/              OPC_RecordMemRef,
/*373556*/              OPC_RecordNode, // #1 = 'ld' chained node
/*373557*/              OPC_CheckFoldableChainNode,
/*373558*/              OPC_RecordChild1, // #2 = $src
/*373559*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373561*/              OPC_CheckPredicate, 9, // Predicate_load
/*373563*/              OPC_SwitchType /*2 cases */, 29, MVT::f64,// ->373595
/*373566*/                OPC_MoveParent,
/*373567*/                OPC_MoveParent,
/*373568*/                OPC_MoveParent,
/*373569*/                OPC_RecordChild2, // #3 = $dst
/*373570*/                OPC_CheckType, MVT::v4f64,
/*373572*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373574*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373577*/                OPC_EmitMergeInputChains1_1,
/*373578*/                OPC_EmitInteger, MVT::i32, 10, 
/*373581*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*373595*/              /*SwitchType*/ 29, MVT::f32,// ->373626
/*373597*/                OPC_MoveParent,
/*373598*/                OPC_MoveParent,
/*373599*/                OPC_MoveParent,
/*373600*/                OPC_RecordChild2, // #3 = $dst
/*373601*/                OPC_CheckType, MVT::v4f32,
/*373603*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373605*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373608*/                OPC_EmitMergeInputChains1_1,
/*373609*/                OPC_EmitInteger, MVT::i32, 10, 
/*373612*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*373626*/              0, // EndSwitchType
/*373627*/            /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->373695
/*373630*/              OPC_RecordMemRef,
/*373631*/              OPC_RecordNode, // #1 = 'ld' chained node
/*373632*/              OPC_CheckFoldableChainNode,
/*373633*/              OPC_RecordChild1, // #2 = $src
/*373634*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373636*/              OPC_CheckPredicate, 9, // Predicate_load
/*373638*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*373640*/              OPC_MoveParent,
/*373641*/              OPC_MoveParent,
/*373642*/              OPC_RecordChild2, // #3 = $dst
/*373643*/              OPC_SwitchType /*2 cases */, 23, MVT::v4f64,// ->373669
/*373646*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373648*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373651*/                OPC_EmitMergeInputChains1_1,
/*373652*/                OPC_EmitInteger, MVT::i32, 10, 
/*373655*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*373669*/              /*SwitchType*/ 23, MVT::v4f32,// ->373694
/*373671*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373673*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373676*/                OPC_EmitMergeInputChains1_1,
/*373677*/                OPC_EmitInteger, MVT::i32, 10, 
/*373680*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*373694*/              0, // EndSwitchType
/*373695*/            0, // EndSwitchOpcode
/*373696*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::FRINT),// ->373850
/*373700*/            OPC_MoveChild0,
/*373701*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(X86ISD::VBROADCAST),// ->373781
/*373705*/              OPC_MoveChild0,
/*373706*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*373709*/              OPC_RecordMemRef,
/*373710*/              OPC_RecordNode, // #1 = 'ld' chained node
/*373711*/              OPC_CheckFoldableChainNode,
/*373712*/              OPC_RecordChild1, // #2 = $src
/*373713*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373715*/              OPC_CheckPredicate, 9, // Predicate_load
/*373717*/              OPC_SwitchType /*2 cases */, 29, MVT::f64,// ->373749
/*373720*/                OPC_MoveParent,
/*373721*/                OPC_MoveParent,
/*373722*/                OPC_MoveParent,
/*373723*/                OPC_RecordChild2, // #3 = $dst
/*373724*/                OPC_CheckType, MVT::v4f64,
/*373726*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373728*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373731*/                OPC_EmitMergeInputChains1_1,
/*373732*/                OPC_EmitInteger, MVT::i32, 4, 
/*373735*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*373749*/              /*SwitchType*/ 29, MVT::f32,// ->373780
/*373751*/                OPC_MoveParent,
/*373752*/                OPC_MoveParent,
/*373753*/                OPC_MoveParent,
/*373754*/                OPC_RecordChild2, // #3 = $dst
/*373755*/                OPC_CheckType, MVT::v4f32,
/*373757*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373759*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373762*/                OPC_EmitMergeInputChains1_1,
/*373763*/                OPC_EmitInteger, MVT::i32, 4, 
/*373766*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*373780*/              0, // EndSwitchType
/*373781*/            /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->373849
/*373784*/              OPC_RecordMemRef,
/*373785*/              OPC_RecordNode, // #1 = 'ld' chained node
/*373786*/              OPC_CheckFoldableChainNode,
/*373787*/              OPC_RecordChild1, // #2 = $src
/*373788*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373790*/              OPC_CheckPredicate, 9, // Predicate_load
/*373792*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*373794*/              OPC_MoveParent,
/*373795*/              OPC_MoveParent,
/*373796*/              OPC_RecordChild2, // #3 = $dst
/*373797*/              OPC_SwitchType /*2 cases */, 23, MVT::v4f64,// ->373823
/*373800*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373802*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373805*/                OPC_EmitMergeInputChains1_1,
/*373806*/                OPC_EmitInteger, MVT::i32, 4, 
/*373809*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*373823*/              /*SwitchType*/ 23, MVT::v4f32,// ->373848
/*373825*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373827*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373830*/                OPC_EmitMergeInputChains1_1,
/*373831*/                OPC_EmitInteger, MVT::i32, 4, 
/*373834*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*373848*/              0, // EndSwitchType
/*373849*/            0, // EndSwitchOpcode
/*373850*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::FTRUNC),// ->374004
/*373854*/            OPC_MoveChild0,
/*373855*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(X86ISD::VBROADCAST),// ->373935
/*373859*/              OPC_MoveChild0,
/*373860*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*373863*/              OPC_RecordMemRef,
/*373864*/              OPC_RecordNode, // #1 = 'ld' chained node
/*373865*/              OPC_CheckFoldableChainNode,
/*373866*/              OPC_RecordChild1, // #2 = $src
/*373867*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373869*/              OPC_CheckPredicate, 9, // Predicate_load
/*373871*/              OPC_SwitchType /*2 cases */, 29, MVT::f64,// ->373903
/*373874*/                OPC_MoveParent,
/*373875*/                OPC_MoveParent,
/*373876*/                OPC_MoveParent,
/*373877*/                OPC_RecordChild2, // #3 = $dst
/*373878*/                OPC_CheckType, MVT::v4f64,
/*373880*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373882*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373885*/                OPC_EmitMergeInputChains1_1,
/*373886*/                OPC_EmitInteger, MVT::i32, 11, 
/*373889*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*373903*/              /*SwitchType*/ 29, MVT::f32,// ->373934
/*373905*/                OPC_MoveParent,
/*373906*/                OPC_MoveParent,
/*373907*/                OPC_MoveParent,
/*373908*/                OPC_RecordChild2, // #3 = $dst
/*373909*/                OPC_CheckType, MVT::v4f32,
/*373911*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373913*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373916*/                OPC_EmitMergeInputChains1_1,
/*373917*/                OPC_EmitInteger, MVT::i32, 11, 
/*373920*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*373934*/              0, // EndSwitchType
/*373935*/            /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->374003
/*373938*/              OPC_RecordMemRef,
/*373939*/              OPC_RecordNode, // #1 = 'ld' chained node
/*373940*/              OPC_CheckFoldableChainNode,
/*373941*/              OPC_RecordChild1, // #2 = $src
/*373942*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373944*/              OPC_CheckPredicate, 9, // Predicate_load
/*373946*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*373948*/              OPC_MoveParent,
/*373949*/              OPC_MoveParent,
/*373950*/              OPC_RecordChild2, // #3 = $dst
/*373951*/              OPC_SwitchType /*2 cases */, 23, MVT::v4f64,// ->373977
/*373954*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373956*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373959*/                OPC_EmitMergeInputChains1_1,
/*373960*/                OPC_EmitInteger, MVT::i32, 11, 
/*373963*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*373977*/              /*SwitchType*/ 23, MVT::v4f32,// ->374002
/*373979*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373981*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*373984*/                OPC_EmitMergeInputChains1_1,
/*373985*/                OPC_EmitInteger, MVT::i32, 11, 
/*373988*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*374002*/              0, // EndSwitchType
/*374003*/            0, // EndSwitchOpcode
/*374004*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::SHUF128),// ->374056
/*374007*/            OPC_RecordChild0, // #1 = $src1
/*374008*/            OPC_MoveChild1,
/*374009*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*374012*/            OPC_RecordMemRef,
/*374013*/            OPC_RecordNode, // #2 = 'ld' chained node
/*374014*/            OPC_CheckFoldableChainNode,
/*374015*/            OPC_RecordChild1, // #3 = $src2
/*374016*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374018*/            OPC_CheckPredicate, 9, // Predicate_load
/*374020*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*374022*/            OPC_MoveParent,
/*374023*/            OPC_RecordChild2, // #4 = $src3
/*374024*/            OPC_MoveChild2,
/*374025*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*374028*/            OPC_MoveParent,
/*374029*/            OPC_MoveParent,
/*374030*/            OPC_RecordChild2, // #5 = $src0
/*374031*/            OPC_CheckType, MVT::v4f64,
/*374033*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374035*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*374038*/            OPC_EmitMergeInputChains1_2,
/*374039*/            OPC_EmitConvertToTarget, 4,
/*374041*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                      // Dst: (VSHUFF64X2Z256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*374056*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::UNPCKH),// ->374199
/*374060*/            OPC_RecordChild0, // #1 = $src1
/*374061*/            OPC_MoveChild1,
/*374062*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->374136
/*374066*/              OPC_MoveChild0,
/*374067*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*374070*/              OPC_RecordMemRef,
/*374071*/              OPC_RecordNode, // #2 = 'ld' chained node
/*374072*/              OPC_CheckFoldableChainNode,
/*374073*/              OPC_RecordChild1, // #3 = $src2
/*374074*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374076*/              OPC_CheckPredicate, 9, // Predicate_load
/*374078*/              OPC_SwitchType /*2 cases */, 26, MVT::f32,// ->374107
/*374081*/                OPC_MoveParent,
/*374082*/                OPC_MoveParent,
/*374083*/                OPC_MoveParent,
/*374084*/                OPC_RecordChild2, // #4 = $src0
/*374085*/                OPC_CheckType, MVT::v4f32,
/*374087*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374089*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*374092*/                OPC_EmitMergeInputChains1_2,
/*374093*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VUNPCKHPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*374107*/              /*SwitchType*/ 26, MVT::f64,// ->374135
/*374109*/                OPC_MoveParent,
/*374110*/                OPC_MoveParent,
/*374111*/                OPC_MoveParent,
/*374112*/                OPC_RecordChild2, // #4 = $src0
/*374113*/                OPC_CheckType, MVT::v4f64,
/*374115*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374117*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*374120*/                OPC_EmitMergeInputChains1_2,
/*374121*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VUNPCKHPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*374135*/              0, // EndSwitchType
/*374136*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->374198
/*374139*/              OPC_RecordMemRef,
/*374140*/              OPC_RecordNode, // #2 = 'ld' chained node
/*374141*/              OPC_CheckFoldableChainNode,
/*374142*/              OPC_RecordChild1, // #3 = $src2
/*374143*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374145*/              OPC_CheckPredicate, 9, // Predicate_load
/*374147*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*374149*/              OPC_MoveParent,
/*374150*/              OPC_MoveParent,
/*374151*/              OPC_RecordChild2, // #4 = $src0
/*374152*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->374175
/*374155*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374157*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*374160*/                OPC_EmitMergeInputChains1_2,
/*374161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*374175*/              /*SwitchType*/ 20, MVT::v4f64,// ->374197
/*374177*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374179*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*374182*/                OPC_EmitMergeInputChains1_2,
/*374183*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*374197*/              0, // EndSwitchType
/*374198*/            0, // EndSwitchOpcode
/*374199*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::UNPCKL),// ->374342
/*374203*/            OPC_RecordChild0, // #1 = $src1
/*374204*/            OPC_MoveChild1,
/*374205*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->374279
/*374209*/              OPC_MoveChild0,
/*374210*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*374213*/              OPC_RecordMemRef,
/*374214*/              OPC_RecordNode, // #2 = 'ld' chained node
/*374215*/              OPC_CheckFoldableChainNode,
/*374216*/              OPC_RecordChild1, // #3 = $src2
/*374217*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374219*/              OPC_CheckPredicate, 9, // Predicate_load
/*374221*/              OPC_SwitchType /*2 cases */, 26, MVT::f32,// ->374250
/*374224*/                OPC_MoveParent,
/*374225*/                OPC_MoveParent,
/*374226*/                OPC_MoveParent,
/*374227*/                OPC_RecordChild2, // #4 = $src0
/*374228*/                OPC_CheckType, MVT::v4f32,
/*374230*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374232*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*374235*/                OPC_EmitMergeInputChains1_2,
/*374236*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VUNPCKLPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*374250*/              /*SwitchType*/ 26, MVT::f64,// ->374278
/*374252*/                OPC_MoveParent,
/*374253*/                OPC_MoveParent,
/*374254*/                OPC_MoveParent,
/*374255*/                OPC_RecordChild2, // #4 = $src0
/*374256*/                OPC_CheckType, MVT::v4f64,
/*374258*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374260*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*374263*/                OPC_EmitMergeInputChains1_2,
/*374264*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VUNPCKLPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*374278*/              0, // EndSwitchType
/*374279*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->374341
/*374282*/              OPC_RecordMemRef,
/*374283*/              OPC_RecordNode, // #2 = 'ld' chained node
/*374284*/              OPC_CheckFoldableChainNode,
/*374285*/              OPC_RecordChild1, // #3 = $src2
/*374286*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374288*/              OPC_CheckPredicate, 9, // Predicate_load
/*374290*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*374292*/              OPC_MoveParent,
/*374293*/              OPC_MoveParent,
/*374294*/              OPC_RecordChild2, // #4 = $src0
/*374295*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->374318
/*374298*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374300*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*374303*/                OPC_EmitMergeInputChains1_2,
/*374304*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*374318*/              /*SwitchType*/ 20, MVT::v4f64,// ->374340
/*374320*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374322*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*374325*/                OPC_EmitMergeInputChains1_2,
/*374326*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*374340*/              0, // EndSwitchType
/*374341*/            0, // EndSwitchOpcode
/*374342*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::SHUFP),// ->374421
/*374345*/            OPC_RecordChild0, // #1 = $src1
/*374346*/            OPC_MoveChild1,
/*374347*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*374350*/            OPC_RecordMemRef,
/*374351*/            OPC_RecordNode, // #2 = 'ld' chained node
/*374352*/            OPC_CheckFoldableChainNode,
/*374353*/            OPC_RecordChild1, // #3 = $src2
/*374354*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374356*/            OPC_CheckPredicate, 9, // Predicate_load
/*374358*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*374360*/            OPC_MoveParent,
/*374361*/            OPC_RecordChild2, // #4 = $src3
/*374362*/            OPC_MoveChild2,
/*374363*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*374366*/            OPC_MoveParent,
/*374367*/            OPC_MoveParent,
/*374368*/            OPC_RecordChild2, // #5 = $src0
/*374369*/            OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->374395
/*374372*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374374*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*374377*/              OPC_EmitMergeInputChains1_2,
/*374378*/              OPC_EmitConvertToTarget, 4,
/*374380*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                        // Dst: (VSHUFPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*374395*/            /*SwitchType*/ 23, MVT::v4f64,// ->374420
/*374397*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374399*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*374402*/              OPC_EmitMergeInputChains1_2,
/*374403*/              OPC_EmitConvertToTarget, 4,
/*374405*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VSHUFPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*374420*/            0, // EndSwitchType
/*374421*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->374462
/*374424*/            OPC_MoveChild0,
/*374425*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*374428*/            OPC_RecordMemRef,
/*374429*/            OPC_RecordNode, // #1 = 'ld' chained node
/*374430*/            OPC_CheckFoldableChainNode,
/*374431*/            OPC_RecordChild1, // #2 = $src
/*374432*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374434*/            OPC_CheckPredicate, 9, // Predicate_load
/*374436*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*374438*/            OPC_MoveParent,
/*374439*/            OPC_MoveParent,
/*374440*/            OPC_RecordChild2, // #3 = $src0
/*374441*/            OPC_CheckType, MVT::v4f64,
/*374443*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*374445*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*374448*/            OPC_EmitMergeInputChains1_1,
/*374449*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X2Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86SubVBroadcast:{ *:[v4f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                      // Dst: (VBROADCASTF64X2Z128rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*374462*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::EXPAND),// ->374526
/*374465*/            OPC_MoveChild0,
/*374466*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*374469*/            OPC_RecordMemRef,
/*374470*/            OPC_RecordNode, // #1 = 'ld' chained node
/*374471*/            OPC_CheckFoldableChainNode,
/*374472*/            OPC_RecordChild1, // #2 = $src1
/*374473*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374475*/            OPC_CheckPredicate, 9, // Predicate_load
/*374477*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*374479*/            OPC_MoveParent,
/*374480*/            OPC_MoveParent,
/*374481*/            OPC_RecordChild2, // #3 = $src0
/*374482*/            OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->374504
/*374485*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374487*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*374490*/              OPC_EmitMergeInputChains1_1,
/*374491*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                        // Dst: (VEXPANDPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*374504*/            /*SwitchType*/ 19, MVT::v4f64,// ->374525
/*374506*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374508*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*374511*/              OPC_EmitMergeInputChains1_1,
/*374512*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                        // Dst: (VEXPANDPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*374525*/            0, // EndSwitchType
/*374526*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::MOVSHDUP),// ->374567
/*374529*/            OPC_MoveChild0,
/*374530*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*374533*/            OPC_RecordMemRef,
/*374534*/            OPC_RecordNode, // #1 = 'ld' chained node
/*374535*/            OPC_CheckFoldableChainNode,
/*374536*/            OPC_RecordChild1, // #2 = $src1
/*374537*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374539*/            OPC_CheckPredicate, 9, // Predicate_load
/*374541*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*374543*/            OPC_MoveParent,
/*374544*/            OPC_MoveParent,
/*374545*/            OPC_RecordChild2, // #3 = $src0
/*374546*/            OPC_CheckType, MVT::v4f32,
/*374548*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374550*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*374553*/            OPC_EmitMergeInputChains1_1,
/*374554*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Movshdup:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSHDUPZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*374567*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::MOVSLDUP),// ->374608
/*374570*/            OPC_MoveChild0,
/*374571*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*374574*/            OPC_RecordMemRef,
/*374575*/            OPC_RecordNode, // #1 = 'ld' chained node
/*374576*/            OPC_CheckFoldableChainNode,
/*374577*/            OPC_RecordChild1, // #2 = $src1
/*374578*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374580*/            OPC_CheckPredicate, 9, // Predicate_load
/*374582*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*374584*/            OPC_MoveParent,
/*374585*/            OPC_MoveParent,
/*374586*/            OPC_RecordChild2, // #3 = $src0
/*374587*/            OPC_CheckType, MVT::v4f32,
/*374589*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374591*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*374594*/            OPC_EmitMergeInputChains1_1,
/*374595*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Movsldup:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSLDUPZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*374608*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::MOVDDUP),// ->374649
/*374611*/            OPC_MoveChild0,
/*374612*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*374615*/            OPC_RecordMemRef,
/*374616*/            OPC_RecordNode, // #1 = 'ld' chained node
/*374617*/            OPC_CheckFoldableChainNode,
/*374618*/            OPC_RecordChild1, // #2 = $src1
/*374619*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374621*/            OPC_CheckPredicate, 9, // Predicate_load
/*374623*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*374625*/            OPC_MoveParent,
/*374626*/            OPC_MoveParent,
/*374627*/            OPC_RecordChild2, // #3 = $src0
/*374628*/            OPC_CheckType, MVT::v4f64,
/*374630*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374632*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*374635*/            OPC_EmitMergeInputChains1_1,
/*374636*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Movddup:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                      // Dst: (VMOVDDUPZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*374649*/          /*SwitchOpcode*/ 108, TARGET_VAL(ISD::LOAD),// ->374760
/*374652*/            OPC_RecordMemRef,
/*374653*/            OPC_RecordNode, // #1 = 'ld' chained node
/*374654*/            OPC_CheckFoldableChainNode,
/*374655*/            OPC_RecordChild1, // #2 = $src1
/*374656*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374658*/            OPC_CheckPredicate, 9, // Predicate_load
/*374660*/            OPC_Scope, 48, /*->374710*/ // 2 children in Scope
/*374662*/              OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*374664*/              OPC_MoveParent,
/*374665*/              OPC_RecordChild2, // #3 = $src0
/*374666*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->374688
/*374669*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374671*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*374674*/                OPC_EmitMergeInputChains1_1,
/*374675*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, VR128X:{ *:[v4f32] }:$src0) - Complexity = 25
                          // Dst: (VMOVAPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*374688*/              /*SwitchType*/ 19, MVT::v4f64,// ->374709
/*374690*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374692*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*374695*/                OPC_EmitMergeInputChains1_1,
/*374696*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, VR256X:{ *:[v4f64] }:$src0) - Complexity = 25
                          // Dst: (VMOVAPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*374709*/              0, // EndSwitchType
/*374710*/            /*Scope*/ 48, /*->374759*/
/*374711*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*374713*/              OPC_MoveParent,
/*374714*/              OPC_RecordChild2, // #3 = $src0
/*374715*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->374737
/*374718*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374720*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*374723*/                OPC_EmitMergeInputChains1_1,
/*374724*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src0) - Complexity = 25
                          // Dst: (VMOVUPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*374737*/              /*SwitchType*/ 19, MVT::v4f64,// ->374758
/*374739*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374741*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*374744*/                OPC_EmitMergeInputChains1_1,
/*374745*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src0) - Complexity = 25
                          // Dst: (VMOVUPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*374758*/              0, // EndSwitchType
/*374759*/            0, /*End of Scope*/
/*374760*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VFIXUPIMM),// ->374829
/*374763*/            OPC_RecordChild0, // #1 = $src1
/*374764*/            OPC_RecordChild1, // #2 = $src2
/*374765*/            OPC_RecordChild2, // #3 = $src3
/*374766*/            OPC_RecordChild3, // #4 = $src4
/*374767*/            OPC_MoveChild3,
/*374768*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*374771*/            OPC_MoveParent,
/*374772*/            OPC_CheckChild4Integer, 4, 
/*374774*/            OPC_MoveParent,
/*374775*/            OPC_MoveChild2,
/*374776*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*374779*/            OPC_MoveChild0,
/*374780*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*374783*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*374785*/            OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->374807
/*374788*/              OPC_MoveParent,
/*374789*/              OPC_MoveParent,
/*374790*/              OPC_CheckType, MVT::v4f32,
/*374792*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374794*/              OPC_EmitConvertToTarget, 4,
/*374796*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rrikz), 0,
                            MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                        // Dst: (VFIXUPIMMPSZ128rrikz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*374807*/            /*SwitchType*/ 19, MVT::v8i32,// ->374828
/*374809*/              OPC_MoveParent,
/*374810*/              OPC_MoveParent,
/*374811*/              OPC_CheckType, MVT::v4f64,
/*374813*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374815*/              OPC_EmitConvertToTarget, 4,
/*374817*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rrikz), 0,
                            MVT::v4f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                        // Dst: (VFIXUPIMMPDZ256rrikz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*374828*/            0, // EndSwitchType
/*374829*/          /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::SCALEF),// ->374883
/*374832*/            OPC_RecordChild0, // #1 = $src1
/*374833*/            OPC_RecordChild1, // #2 = $src2
/*374834*/            OPC_CheckChild2Integer, 4, 
/*374836*/            OPC_MoveParent,
/*374837*/            OPC_MoveChild2,
/*374838*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*374841*/            OPC_MoveChild0,
/*374842*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*374845*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*374847*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->374865
/*374850*/              OPC_MoveParent,
/*374851*/              OPC_MoveParent,
/*374852*/              OPC_CheckType, MVT::v4f32,
/*374854*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*374856*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VSCALEFPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*374865*/            /*SwitchType*/ 15, MVT::v8i32,// ->374882
/*374867*/              OPC_MoveParent,
/*374868*/              OPC_MoveParent,
/*374869*/              OPC_CheckType, MVT::v4f64,
/*374871*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*374873*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VSCALEFPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*374882*/            0, // EndSwitchType
/*374883*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::FGETEXP_RND),// ->374934
/*374886*/            OPC_RecordChild0, // #1 = $src
/*374887*/            OPC_CheckChild1Integer, 4, 
/*374889*/            OPC_MoveParent,
/*374890*/            OPC_MoveChild2,
/*374891*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*374894*/            OPC_MoveChild0,
/*374895*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*374898*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*374900*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->374917
/*374903*/              OPC_MoveParent,
/*374904*/              OPC_MoveParent,
/*374905*/              OPC_CheckType, MVT::v4f32,
/*374907*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*374909*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VGETEXPPSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*374917*/            /*SwitchType*/ 14, MVT::v8i32,// ->374933
/*374919*/              OPC_MoveParent,
/*374920*/              OPC_MoveParent,
/*374921*/              OPC_CheckType, MVT::v4f64,
/*374923*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*374925*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VGETEXPPDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*374933*/            0, // EndSwitchType
/*374934*/          /*SwitchOpcode*/ 8|128,1/*136*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->375074
/*374938*/            OPC_RecordChild0, // #1 = $src
/*374939*/            OPC_Scope, 44, /*->374985*/ // 3 children in Scope
/*374941*/              OPC_CheckChild0Type, MVT::v8f32,
/*374943*/              OPC_CheckChild1Integer, 0, 
/*374945*/              OPC_CheckChild1Type, MVT::iPTR,
/*374947*/              OPC_MoveParent,
/*374948*/              OPC_MoveChild2,
/*374949*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*374952*/              OPC_MoveChild0,
/*374953*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*374956*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*374958*/              OPC_CheckType, MVT::v4i32,
/*374960*/              OPC_MoveParent,
/*374961*/              OPC_MoveParent,
/*374962*/              OPC_CheckType, MVT::v4f32,
/*374964*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*374966*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*374969*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*374977*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rrkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VMOVAPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }))
/*374985*/            /*Scope*/ 44, /*->375030*/
/*374986*/              OPC_CheckChild0Type, MVT::v16f32,
/*374988*/              OPC_CheckChild1Integer, 0, 
/*374990*/              OPC_CheckChild1Type, MVT::iPTR,
/*374992*/              OPC_MoveParent,
/*374993*/              OPC_MoveChild2,
/*374994*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*374997*/              OPC_MoveChild0,
/*374998*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375001*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375003*/              OPC_CheckType, MVT::v4i32,
/*375005*/              OPC_MoveParent,
/*375006*/              OPC_MoveParent,
/*375007*/              OPC_CheckType, MVT::v4f32,
/*375009*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375011*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*375014*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*375022*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rrkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VMOVAPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, sub_xmm:{ *:[i32] }))
/*375030*/            /*Scope*/ 42, /*->375073*/
/*375031*/              OPC_CheckChild1Integer, 0, 
/*375033*/              OPC_CheckChild1Type, MVT::iPTR,
/*375035*/              OPC_MoveParent,
/*375036*/              OPC_MoveChild2,
/*375037*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375040*/              OPC_MoveChild0,
/*375041*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375044*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375046*/              OPC_CheckType, MVT::v8i32,
/*375048*/              OPC_MoveParent,
/*375049*/              OPC_MoveParent,
/*375050*/              OPC_CheckType, MVT::v4f64,
/*375052*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375054*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*375057*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*375065*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rrkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] }), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VMOVAPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, sub_ymm:{ *:[i32] }))
/*375073*/            0, /*End of Scope*/
/*375074*/          0, // EndSwitchOpcode
/*375075*/        /*Scope*/ 47|128,1/*175*/, /*->375252*/
/*375077*/          OPC_RecordChild1, // #1 = $src3
/*375078*/          OPC_MoveChild1,
/*375079*/          OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->375124
/*375083*/            OPC_RecordChild0, // #2 = $src1
/*375084*/            OPC_RecordChild1, // #3 = $src2
/*375085*/            OPC_MoveChild2,
/*375086*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375089*/            OPC_CheckType, MVT::iPTR,
/*375091*/            OPC_MoveParent,
/*375092*/            OPC_MoveParent,
/*375093*/            OPC_MoveChild2,
/*375094*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375097*/            OPC_MoveChild0,
/*375098*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375101*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375103*/            OPC_CheckType, MVT::v8i32,
/*375105*/            OPC_MoveParent,
/*375106*/            OPC_MoveParent,
/*375107*/            OPC_CheckType, MVT::v4f64,
/*375109*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*375111*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*375114*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rrkz), 0,
                          MVT::v4f64, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VINSERTF64x2Z256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*375124*/          /*SwitchOpcode*/ 124, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->375251
/*375127*/            OPC_RecordChild0, // #2 = $src1
/*375128*/            OPC_Scope, 40, /*->375170*/ // 3 children in Scope
/*375130*/              OPC_CheckChild0Type, MVT::v16f32,
/*375132*/              OPC_MoveChild1,
/*375133*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375136*/              OPC_CheckType, MVT::iPTR,
/*375138*/              OPC_MoveParent,
/*375139*/              OPC_MoveParent,
/*375140*/              OPC_MoveChild2,
/*375141*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375144*/              OPC_MoveChild0,
/*375145*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375148*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375150*/              OPC_CheckType, MVT::v4i32,
/*375152*/              OPC_MoveParent,
/*375153*/              OPC_MoveParent,
/*375154*/              OPC_CheckType, MVT::v4f32,
/*375156*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*375158*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*375161*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Zrrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VEXTRACTF32x4Zrrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*375170*/            /*Scope*/ 38, /*->375209*/
/*375171*/              OPC_MoveChild1,
/*375172*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375175*/              OPC_CheckType, MVT::iPTR,
/*375177*/              OPC_MoveParent,
/*375178*/              OPC_MoveParent,
/*375179*/              OPC_MoveChild2,
/*375180*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375183*/              OPC_MoveChild0,
/*375184*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375187*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375189*/              OPC_CheckType, MVT::v8i32,
/*375191*/              OPC_MoveParent,
/*375192*/              OPC_MoveParent,
/*375193*/              OPC_CheckType, MVT::v4f64,
/*375195*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*375197*/              OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*375200*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x4Zrrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx, (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VEXTRACTF64x4Zrrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*375209*/            /*Scope*/ 40, /*->375250*/
/*375210*/              OPC_CheckChild0Type, MVT::v8f32,
/*375212*/              OPC_MoveChild1,
/*375213*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375216*/              OPC_CheckType, MVT::iPTR,
/*375218*/              OPC_MoveParent,
/*375219*/              OPC_MoveParent,
/*375220*/              OPC_MoveChild2,
/*375221*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375224*/              OPC_MoveChild0,
/*375225*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375228*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375230*/              OPC_CheckType, MVT::v4i32,
/*375232*/              OPC_MoveParent,
/*375233*/              OPC_MoveParent,
/*375234*/              OPC_CheckType, MVT::v4f32,
/*375236*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375238*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*375241*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Z256rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VEXTRACTF32x4Z256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*375250*/            0, /*End of Scope*/
/*375251*/          0, // EndSwitchOpcode
/*375252*/        /*Scope*/ 90|128,26/*3418*/, /*->378672*/
/*375254*/          OPC_MoveChild1,
/*375255*/          OPC_SwitchOpcode /*54 cases */, 23|128,4/*535*/, TARGET_VAL(ISD::BITCAST),// ->375795
/*375260*/            OPC_Scope, 6|128,3/*390*/, /*->375653*/ // 2 children in Scope
/*375263*/              OPC_MoveChild0,
/*375264*/              OPC_SwitchOpcode /*5 cases */, 66, TARGET_VAL(ISD::AND),// ->375334
/*375268*/                OPC_RecordChild0, // #1 = $src1
/*375269*/                OPC_RecordChild1, // #2 = $src2
/*375270*/                OPC_SwitchType /*2 cases */, 29, MVT::v2i64,// ->375302
/*375273*/                  OPC_MoveParent,
/*375274*/                  OPC_MoveParent,
/*375275*/                  OPC_MoveChild2,
/*375276*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375279*/                  OPC_MoveChild0,
/*375280*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375283*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375285*/                  OPC_CheckType, MVT::v4i32,
/*375287*/                  OPC_MoveParent,
/*375288*/                  OPC_MoveParent,
/*375289*/                  OPC_CheckType, MVT::v4f32,
/*375291*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375293*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPANDDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*375302*/                /*SwitchType*/ 29, MVT::v4i64,// ->375333
/*375304*/                  OPC_MoveParent,
/*375305*/                  OPC_MoveParent,
/*375306*/                  OPC_MoveChild2,
/*375307*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375310*/                  OPC_MoveChild0,
/*375311*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375314*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375316*/                  OPC_CheckType, MVT::v8i32,
/*375318*/                  OPC_MoveParent,
/*375319*/                  OPC_MoveParent,
/*375320*/                  OPC_CheckType, MVT::v4f64,
/*375322*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375324*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPANDQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*375333*/                0, // EndSwitchType
/*375334*/              /*SwitchOpcode*/ 66, TARGET_VAL(ISD::OR),// ->375403
/*375337*/                OPC_RecordChild0, // #1 = $src1
/*375338*/                OPC_RecordChild1, // #2 = $src2
/*375339*/                OPC_SwitchType /*2 cases */, 29, MVT::v2i64,// ->375371
/*375342*/                  OPC_MoveParent,
/*375343*/                  OPC_MoveParent,
/*375344*/                  OPC_MoveChild2,
/*375345*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375348*/                  OPC_MoveChild0,
/*375349*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375352*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375354*/                  OPC_CheckType, MVT::v4i32,
/*375356*/                  OPC_MoveParent,
/*375357*/                  OPC_MoveParent,
/*375358*/                  OPC_CheckType, MVT::v4f32,
/*375360*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375362*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPORDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*375371*/                /*SwitchType*/ 29, MVT::v4i64,// ->375402
/*375373*/                  OPC_MoveParent,
/*375374*/                  OPC_MoveParent,
/*375375*/                  OPC_MoveChild2,
/*375376*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375379*/                  OPC_MoveChild0,
/*375380*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375383*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375385*/                  OPC_CheckType, MVT::v8i32,
/*375387*/                  OPC_MoveParent,
/*375388*/                  OPC_MoveParent,
/*375389*/                  OPC_CheckType, MVT::v4f64,
/*375391*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375393*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPORQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*375402*/                0, // EndSwitchType
/*375403*/              /*SwitchOpcode*/ 66, TARGET_VAL(ISD::XOR),// ->375472
/*375406*/                OPC_RecordChild0, // #1 = $src1
/*375407*/                OPC_RecordChild1, // #2 = $src2
/*375408*/                OPC_SwitchType /*2 cases */, 29, MVT::v2i64,// ->375440
/*375411*/                  OPC_MoveParent,
/*375412*/                  OPC_MoveParent,
/*375413*/                  OPC_MoveChild2,
/*375414*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375417*/                  OPC_MoveChild0,
/*375418*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375421*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375423*/                  OPC_CheckType, MVT::v4i32,
/*375425*/                  OPC_MoveParent,
/*375426*/                  OPC_MoveParent,
/*375427*/                  OPC_CheckType, MVT::v4f32,
/*375429*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375431*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPXORDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*375440*/                /*SwitchType*/ 29, MVT::v4i64,// ->375471
/*375442*/                  OPC_MoveParent,
/*375443*/                  OPC_MoveParent,
/*375444*/                  OPC_MoveChild2,
/*375445*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375448*/                  OPC_MoveChild0,
/*375449*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375452*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375454*/                  OPC_CheckType, MVT::v8i32,
/*375456*/                  OPC_MoveParent,
/*375457*/                  OPC_MoveParent,
/*375458*/                  OPC_CheckType, MVT::v4f64,
/*375460*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375462*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPXORQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*375471*/                0, // EndSwitchType
/*375472*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::ANDNP),// ->375541
/*375475*/                OPC_RecordChild0, // #1 = $src1
/*375476*/                OPC_RecordChild1, // #2 = $src2
/*375477*/                OPC_SwitchType /*2 cases */, 29, MVT::v2i64,// ->375509
/*375480*/                  OPC_MoveParent,
/*375481*/                  OPC_MoveParent,
/*375482*/                  OPC_MoveChild2,
/*375483*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375486*/                  OPC_MoveChild0,
/*375487*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375490*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375492*/                  OPC_CheckType, MVT::v4i32,
/*375494*/                  OPC_MoveParent,
/*375495*/                  OPC_MoveParent,
/*375496*/                  OPC_CheckType, MVT::v4f32,
/*375498*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375500*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPANDNDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*375509*/                /*SwitchType*/ 29, MVT::v4i64,// ->375540
/*375511*/                  OPC_MoveParent,
/*375512*/                  OPC_MoveParent,
/*375513*/                  OPC_MoveChild2,
/*375514*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375517*/                  OPC_MoveChild0,
/*375518*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375521*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375523*/                  OPC_CheckType, MVT::v8i32,
/*375525*/                  OPC_MoveParent,
/*375526*/                  OPC_MoveParent,
/*375527*/                  OPC_CheckType, MVT::v4f64,
/*375529*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375531*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPANDNQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*375540*/                0, // EndSwitchType
/*375541*/              /*SwitchOpcode*/ 108, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->375652
/*375544*/                OPC_RecordChild0, // #1 = $src
/*375545*/                OPC_SwitchType /*2 cases */, 70, MVT::v2f64,// ->375618
/*375548*/                  OPC_Scope, 33, /*->375583*/ // 2 children in Scope
/*375550*/                    OPC_CheckChild0Type, MVT::v4f64,
/*375552*/                    OPC_CheckChild1Integer, 0, 
/*375554*/                    OPC_CheckChild1Type, MVT::iPTR,
/*375556*/                    OPC_MoveParent,
/*375557*/                    OPC_MoveParent,
/*375558*/                    OPC_RecordChild2, // #2 = $src0
/*375559*/                    OPC_CheckType, MVT::v4f32,
/*375561*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375563*/                    OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*375566*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*375574*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rrk), 0,
                                  MVT::v4f32, 3/*#Ops*/, 2, 0, 4, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v4f32] }:$src0) - Complexity = 14
                              // Dst: (VMOVAPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }))
/*375583*/                  /*Scope*/ 33, /*->375617*/
/*375584*/                    OPC_CheckChild0Type, MVT::v8f64,
/*375586*/                    OPC_CheckChild1Integer, 0, 
/*375588*/                    OPC_CheckChild1Type, MVT::iPTR,
/*375590*/                    OPC_MoveParent,
/*375591*/                    OPC_MoveParent,
/*375592*/                    OPC_RecordChild2, // #2 = $src0
/*375593*/                    OPC_CheckType, MVT::v4f32,
/*375595*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375597*/                    OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*375600*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*375608*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rrk), 0,
                                  MVT::v4f32, 3/*#Ops*/, 2, 0, 4, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] })), VR128X:{ *:[v4f32] }:$src0) - Complexity = 14
                              // Dst: (VMOVAPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, sub_xmm:{ *:[i32] }))
/*375617*/                  0, /*End of Scope*/
/*375618*/                /*SwitchType*/ 31, MVT::v8f32,// ->375651
/*375620*/                  OPC_CheckChild1Integer, 0, 
/*375622*/                  OPC_CheckChild1Type, MVT::iPTR,
/*375624*/                  OPC_MoveParent,
/*375625*/                  OPC_MoveParent,
/*375626*/                  OPC_RecordChild2, // #2 = $src0
/*375627*/                  OPC_CheckType, MVT::v4f64,
/*375629*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375631*/                  OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*375634*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::v8f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*375642*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rrk), 0,
                                MVT::v4f64, 3/*#Ops*/, 2, 0, 4, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] })), VR256X:{ *:[v4f64] }:$src0) - Complexity = 14
                            // Dst: (VMOVAPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, sub_ymm:{ *:[i32] }))
/*375651*/                0, // EndSwitchType
/*375652*/              0, // EndSwitchOpcode
/*375653*/            /*Scope*/ 11|128,1/*139*/, /*->375794*/
/*375655*/              OPC_RecordChild0, // #1 = $ins
/*375656*/              OPC_MoveChild0,
/*375657*/              OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->375693
/*375661*/                OPC_RecordChild0, // #2 = $src1
/*375662*/                OPC_RecordChild1, // #3 = $src2
/*375663*/                OPC_MoveChild2,
/*375664*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375667*/                OPC_CheckType, MVT::iPTR,
/*375669*/                OPC_MoveParent,
/*375670*/                OPC_CheckType, MVT::v8f32,
/*375672*/                OPC_MoveParent,
/*375673*/                OPC_MoveParent,
/*375674*/                OPC_RecordChild2, // #4 = $src0
/*375675*/                OPC_CheckType, MVT::v4f64,
/*375677*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*375679*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*375682*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rrk), 0,
                              MVT::v4f64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v4f64] }:$src0) - Complexity = 12
                          // Dst: (VINSERTF64x2Z256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ins))
/*375693*/              /*SwitchOpcode*/ 97, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->375793
/*375696*/                OPC_RecordChild0, // #2 = $src
/*375697*/                OPC_Scope, 31, /*->375730*/ // 3 children in Scope
/*375699*/                  OPC_CheckChild0Type, MVT::v4f64,
/*375701*/                  OPC_MoveChild1,
/*375702*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375705*/                  OPC_CheckType, MVT::iPTR,
/*375707*/                  OPC_MoveParent,
/*375708*/                  OPC_CheckType, MVT::v2f64,
/*375710*/                  OPC_MoveParent,
/*375711*/                  OPC_MoveParent,
/*375712*/                  OPC_RecordChild2, // #3 = $src0
/*375713*/                  OPC_CheckType, MVT::v4f32,
/*375715*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375717*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*375720*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Z256rrk), 0,
                                MVT::v4f32, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4f32] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTF32x4Z256rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*375730*/                /*Scope*/ 31, /*->375762*/
/*375731*/                  OPC_CheckChild0Type, MVT::v8f64,
/*375733*/                  OPC_MoveChild1,
/*375734*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375737*/                  OPC_CheckType, MVT::iPTR,
/*375739*/                  OPC_MoveParent,
/*375740*/                  OPC_CheckType, MVT::v2f64,
/*375742*/                  OPC_MoveParent,
/*375743*/                  OPC_MoveParent,
/*375744*/                  OPC_RecordChild2, // #3 = $src0
/*375745*/                  OPC_CheckType, MVT::v4f32,
/*375747*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*375749*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*375752*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Zrrk), 0,
                                MVT::v4f32, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4f32] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTF32x4Zrrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8f64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*375762*/                /*Scope*/ 29, /*->375792*/
/*375763*/                  OPC_MoveChild1,
/*375764*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375767*/                  OPC_CheckType, MVT::iPTR,
/*375769*/                  OPC_MoveParent,
/*375770*/                  OPC_CheckType, MVT::v8f32,
/*375772*/                  OPC_MoveParent,
/*375773*/                  OPC_MoveParent,
/*375774*/                  OPC_RecordChild2, // #3 = $src0
/*375775*/                  OPC_CheckType, MVT::v4f64,
/*375777*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*375779*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*375782*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x4Zrrk), 0,
                                MVT::v4f64, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v4f64] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTF64x4Zrrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16f32] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ext))
/*375792*/                0, /*End of Scope*/
/*375793*/              0, // EndSwitchOpcode
/*375794*/            0, /*End of Scope*/
/*375795*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VPERMI),// ->375835
/*375798*/            OPC_RecordChild0, // #1 = $src1
/*375799*/            OPC_RecordChild1, // #2 = $src2
/*375800*/            OPC_MoveChild1,
/*375801*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375804*/            OPC_MoveParent,
/*375805*/            OPC_MoveParent,
/*375806*/            OPC_MoveChild2,
/*375807*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375810*/            OPC_MoveChild0,
/*375811*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375814*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375816*/            OPC_CheckType, MVT::v8i32,
/*375818*/            OPC_MoveParent,
/*375819*/            OPC_MoveParent,
/*375820*/            OPC_CheckType, MVT::v4f64,
/*375822*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375824*/            OPC_EmitConvertToTarget, 2,
/*375826*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rikz), 0,
                          MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPERMPDZ256rikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*375835*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VPERMILPI),// ->375896
/*375838*/            OPC_RecordChild0, // #1 = $src1
/*375839*/            OPC_RecordChild1, // #2 = $src2
/*375840*/            OPC_MoveChild1,
/*375841*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375844*/            OPC_MoveParent,
/*375845*/            OPC_MoveParent,
/*375846*/            OPC_MoveChild2,
/*375847*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375850*/            OPC_MoveChild0,
/*375851*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375854*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375856*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->375876
/*375859*/              OPC_MoveParent,
/*375860*/              OPC_MoveParent,
/*375861*/              OPC_CheckType, MVT::v4f32,
/*375863*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375865*/              OPC_EmitConvertToTarget, 2,
/*375867*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPERMILPSZ128rikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*375876*/            /*SwitchType*/ 17, MVT::v8i32,// ->375895
/*375878*/              OPC_MoveParent,
/*375879*/              OPC_MoveParent,
/*375880*/              OPC_CheckType, MVT::v4f64,
/*375882*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375884*/              OPC_EmitConvertToTarget, 2,
/*375886*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPERMILPDZ256rikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*375895*/            0, // EndSwitchType
/*375896*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VREDUCE),// ->375957
/*375899*/            OPC_RecordChild0, // #1 = $src1
/*375900*/            OPC_RecordChild1, // #2 = $src2
/*375901*/            OPC_MoveChild1,
/*375902*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375905*/            OPC_MoveParent,
/*375906*/            OPC_MoveParent,
/*375907*/            OPC_MoveChild2,
/*375908*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375911*/            OPC_MoveChild0,
/*375912*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375915*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375917*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->375937
/*375920*/              OPC_MoveParent,
/*375921*/              OPC_MoveParent,
/*375922*/              OPC_CheckType, MVT::v4f32,
/*375924*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*375926*/              OPC_EmitConvertToTarget, 2,
/*375928*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rrikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VREDUCEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*375937*/            /*SwitchType*/ 17, MVT::v8i32,// ->375956
/*375939*/              OPC_MoveParent,
/*375940*/              OPC_MoveParent,
/*375941*/              OPC_CheckType, MVT::v4f64,
/*375943*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*375945*/              OPC_EmitConvertToTarget, 2,
/*375947*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rrikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VREDUCEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*375956*/            0, // EndSwitchType
/*375957*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VRNDSCALE),// ->376018
/*375960*/            OPC_RecordChild0, // #1 = $src1
/*375961*/            OPC_RecordChild1, // #2 = $src2
/*375962*/            OPC_MoveChild1,
/*375963*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*375966*/            OPC_MoveParent,
/*375967*/            OPC_MoveParent,
/*375968*/            OPC_MoveChild2,
/*375969*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*375972*/            OPC_MoveChild0,
/*375973*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*375976*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*375978*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->375998
/*375981*/              OPC_MoveParent,
/*375982*/              OPC_MoveParent,
/*375983*/              OPC_CheckType, MVT::v4f32,
/*375985*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375987*/              OPC_EmitConvertToTarget, 2,
/*375989*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VRNDSCALEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*375998*/            /*SwitchType*/ 17, MVT::v8i32,// ->376017
/*376000*/              OPC_MoveParent,
/*376001*/              OPC_MoveParent,
/*376002*/              OPC_CheckType, MVT::v4f64,
/*376004*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376006*/              OPC_EmitConvertToTarget, 2,
/*376008*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VRNDSCALEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*376017*/            0, // EndSwitchType
/*376018*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VGETMANT),// ->376079
/*376021*/            OPC_RecordChild0, // #1 = $src1
/*376022*/            OPC_RecordChild1, // #2 = $src2
/*376023*/            OPC_MoveChild1,
/*376024*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*376027*/            OPC_MoveParent,
/*376028*/            OPC_MoveParent,
/*376029*/            OPC_MoveChild2,
/*376030*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376033*/            OPC_MoveChild0,
/*376034*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376037*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376039*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->376059
/*376042*/              OPC_MoveParent,
/*376043*/              OPC_MoveParent,
/*376044*/              OPC_CheckType, MVT::v4f32,
/*376046*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376048*/              OPC_EmitConvertToTarget, 2,
/*376050*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rrikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VGETMANTPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*376059*/            /*SwitchType*/ 17, MVT::v8i32,// ->376078
/*376061*/              OPC_MoveParent,
/*376062*/              OPC_MoveParent,
/*376063*/              OPC_CheckType, MVT::v4f64,
/*376065*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376067*/              OPC_EmitConvertToTarget, 2,
/*376069*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rrikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VGETMANTPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*376078*/            0, // EndSwitchType
/*376079*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VRANGE),// ->376143
/*376082*/            OPC_RecordChild0, // #1 = $src1
/*376083*/            OPC_RecordChild1, // #2 = $src2
/*376084*/            OPC_RecordChild2, // #3 = $src3
/*376085*/            OPC_MoveChild2,
/*376086*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*376089*/            OPC_MoveParent,
/*376090*/            OPC_MoveParent,
/*376091*/            OPC_MoveChild2,
/*376092*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376095*/            OPC_MoveChild0,
/*376096*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376099*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376101*/            OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->376122
/*376104*/              OPC_MoveParent,
/*376105*/              OPC_MoveParent,
/*376106*/              OPC_CheckType, MVT::v4f64,
/*376108*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*376110*/              OPC_EmitConvertToTarget, 3,
/*376112*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rrikz), 0,
                            MVT::v4f64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VRANGEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*376122*/            /*SwitchType*/ 18, MVT::v4i32,// ->376142
/*376124*/              OPC_MoveParent,
/*376125*/              OPC_MoveParent,
/*376126*/              OPC_CheckType, MVT::v4f32,
/*376128*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*376130*/              OPC_EmitConvertToTarget, 3,
/*376132*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rrikz), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VRANGEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*376142*/            0, // EndSwitchType
/*376143*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::SHUF128),// ->376185
/*376146*/            OPC_RecordChild0, // #1 = $src1
/*376147*/            OPC_RecordChild1, // #2 = $src2
/*376148*/            OPC_RecordChild2, // #3 = $src3
/*376149*/            OPC_MoveChild2,
/*376150*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*376153*/            OPC_MoveParent,
/*376154*/            OPC_MoveParent,
/*376155*/            OPC_MoveChild2,
/*376156*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376159*/            OPC_MoveChild0,
/*376160*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376163*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376165*/            OPC_CheckType, MVT::v8i32,
/*376167*/            OPC_MoveParent,
/*376168*/            OPC_MoveParent,
/*376169*/            OPC_CheckType, MVT::v4f64,
/*376171*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376173*/            OPC_EmitConvertToTarget, 3,
/*376175*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rrikz), 0,
                          MVT::v4f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSHUFF64X2Z256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*376185*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::SHUFP),// ->376249
/*376188*/            OPC_RecordChild0, // #1 = $src1
/*376189*/            OPC_RecordChild1, // #2 = $src2
/*376190*/            OPC_RecordChild2, // #3 = $src3
/*376191*/            OPC_MoveChild2,
/*376192*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*376195*/            OPC_MoveParent,
/*376196*/            OPC_MoveParent,
/*376197*/            OPC_MoveChild2,
/*376198*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376201*/            OPC_MoveChild0,
/*376202*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376205*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376207*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->376228
/*376210*/              OPC_MoveParent,
/*376211*/              OPC_MoveParent,
/*376212*/              OPC_CheckType, MVT::v4f32,
/*376214*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376216*/              OPC_EmitConvertToTarget, 3,
/*376218*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rrikz), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VSHUFPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*376228*/            /*SwitchType*/ 18, MVT::v8i32,// ->376248
/*376230*/              OPC_MoveParent,
/*376231*/              OPC_MoveParent,
/*376232*/              OPC_CheckType, MVT::v4f64,
/*376234*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376236*/              OPC_EmitConvertToTarget, 3,
/*376238*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rrikz), 0,
                            MVT::v4f64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VSHUFPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*376248*/            0, // EndSwitchType
/*376249*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::VFIXUPIMM),// ->376302
/*376252*/            OPC_RecordChild0, // #1 = $src1
/*376253*/            OPC_RecordChild1, // #2 = $src2
/*376254*/            OPC_RecordChild2, // #3 = $src3
/*376255*/            OPC_RecordChild3, // #4 = $src4
/*376256*/            OPC_MoveChild3,
/*376257*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*376260*/            OPC_MoveParent,
/*376261*/            OPC_CheckChild4Integer, 4, 
/*376263*/            OPC_MoveParent,
/*376264*/            OPC_CheckChild2Same, 1,
/*376266*/            OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->376284
/*376269*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376271*/              OPC_EmitConvertToTarget, 4,
/*376273*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rrik), 0,
                            MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src1) - Complexity = 14
                        // Dst: (VFIXUPIMMPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*376284*/            /*SwitchType*/ 15, MVT::v4f64,// ->376301
/*376286*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376288*/              OPC_EmitConvertToTarget, 4,
/*376290*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rrik), 0,
                            MVT::v4f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR256X:{ *:[v4f64] }:$src1) - Complexity = 14
                        // Dst: (VFIXUPIMMPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*376301*/            0, // EndSwitchType
/*376302*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(X86ISD::VBROADCAST),// ->376451
/*376306*/            OPC_RecordChild0, // #1 = $src
/*376307*/            OPC_Scope, 29, /*->376338*/ // 4 children in Scope
/*376309*/              OPC_CheckChild0Type, MVT::v4f32,
/*376311*/              OPC_MoveParent,
/*376312*/              OPC_MoveChild2,
/*376313*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376316*/              OPC_MoveChild0,
/*376317*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376320*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376322*/              OPC_CheckType, MVT::v4i32,
/*376324*/              OPC_MoveParent,
/*376325*/              OPC_MoveParent,
/*376326*/              OPC_CheckType, MVT::v4f32,
/*376328*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*376330*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VBROADCASTSSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*376338*/            /*Scope*/ 29, /*->376368*/
/*376339*/              OPC_CheckChild0Type, MVT::v2f64,
/*376341*/              OPC_MoveParent,
/*376342*/              OPC_MoveChild2,
/*376343*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376346*/              OPC_MoveChild0,
/*376347*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376350*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376352*/              OPC_CheckType, MVT::v8i32,
/*376354*/              OPC_MoveParent,
/*376355*/              OPC_MoveParent,
/*376356*/              OPC_CheckType, MVT::v4f64,
/*376358*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*376360*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VBROADCASTSDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*376368*/            /*Scope*/ 40, /*->376409*/
/*376369*/              OPC_CheckChild0Type, MVT::f32,
/*376371*/              OPC_MoveParent,
/*376372*/              OPC_MoveChild2,
/*376373*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376376*/              OPC_MoveChild0,
/*376377*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376380*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376382*/              OPC_CheckType, MVT::v4i32,
/*376384*/              OPC_MoveParent,
/*376385*/              OPC_MoveParent,
/*376386*/              OPC_CheckType, MVT::v4f32,
/*376388*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*376390*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*376393*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*376401*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f32] } FR32X:{ *:[f32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VBROADCASTSSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*376409*/            /*Scope*/ 40, /*->376450*/
/*376410*/              OPC_CheckChild0Type, MVT::f64,
/*376412*/              OPC_MoveParent,
/*376413*/              OPC_MoveChild2,
/*376414*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376417*/              OPC_MoveChild0,
/*376418*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376421*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376423*/              OPC_CheckType, MVT::v8i32,
/*376425*/              OPC_MoveParent,
/*376426*/              OPC_MoveParent,
/*376427*/              OPC_CheckType, MVT::v4f64,
/*376429*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*376431*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*376434*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*376442*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f64] } FR64X:{ *:[f64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VBROADCASTSDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*376450*/            0, /*End of Scope*/
/*376451*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VPERMV3),// ->376539
/*376454*/            OPC_RecordChild0, // #1 = $src1
/*376455*/            OPC_Scope, 51, /*->376508*/ // 2 children in Scope
/*376457*/              OPC_RecordChild1, // #2 = $src2
/*376458*/              OPC_RecordChild2, // #3 = $src3
/*376459*/              OPC_MoveParent,
/*376460*/              OPC_MoveChild2,
/*376461*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376464*/              OPC_MoveChild0,
/*376465*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376468*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376470*/              OPC_SwitchType /*2 cases */, 16, MVT::v4i32,// ->376489
/*376473*/                OPC_MoveParent,
/*376474*/                OPC_MoveParent,
/*376475*/                OPC_CheckType, MVT::v4f32,
/*376477*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*376479*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS128rrkz), 0,
                              MVT::v4f32, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4f32] }:$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPERMT2PS128rrkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*376489*/              /*SwitchType*/ 16, MVT::v8i32,// ->376507
/*376491*/                OPC_MoveParent,
/*376492*/                OPC_MoveParent,
/*376493*/                OPC_CheckType, MVT::v4f64,
/*376495*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*376497*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD256rrkz), 0,
                              MVT::v4f64, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4f64] }:$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPERMT2PD256rrkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*376507*/              0, // EndSwitchType
/*376508*/            /*Scope*/ 29, /*->376538*/
/*376509*/              OPC_MoveChild1,
/*376510*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376513*/              OPC_RecordChild0, // #2 = $src1
/*376514*/              OPC_CheckChild0Type, MVT::v2i64,
/*376516*/              OPC_MoveParent,
/*376517*/              OPC_RecordChild2, // #3 = $src3
/*376518*/              OPC_MoveParent,
/*376519*/              OPC_MoveChild2,
/*376520*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376523*/              OPC_CheckChild0Same, 2,
/*376525*/              OPC_MoveParent,
/*376526*/              OPC_CheckType, MVT::v4f32,
/*376528*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (bitconvert:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v4f32] }:$src3), (bitconvert:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src1)) - Complexity = 12
                        // Dst: (VPERMI2PS128rrk:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*376538*/            0, /*End of Scope*/
/*376539*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FADD),// ->376591
/*376542*/            OPC_RecordChild0, // #1 = $src1
/*376543*/            OPC_RecordChild1, // #2 = $src2
/*376544*/            OPC_MoveParent,
/*376545*/            OPC_MoveChild2,
/*376546*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376549*/            OPC_MoveChild0,
/*376550*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376553*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376555*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->376573
/*376558*/              OPC_MoveParent,
/*376559*/              OPC_MoveParent,
/*376560*/              OPC_CheckType, MVT::v4f32,
/*376562*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376564*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VADDPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*376573*/            /*SwitchType*/ 15, MVT::v8i32,// ->376590
/*376575*/              OPC_MoveParent,
/*376576*/              OPC_MoveParent,
/*376577*/              OPC_CheckType, MVT::v4f64,
/*376579*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376581*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VADDPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*376590*/            0, // EndSwitchType
/*376591*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FMUL),// ->376643
/*376594*/            OPC_RecordChild0, // #1 = $src1
/*376595*/            OPC_RecordChild1, // #2 = $src2
/*376596*/            OPC_MoveParent,
/*376597*/            OPC_MoveChild2,
/*376598*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376601*/            OPC_MoveChild0,
/*376602*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376605*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376607*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->376625
/*376610*/              OPC_MoveParent,
/*376611*/              OPC_MoveParent,
/*376612*/              OPC_CheckType, MVT::v4f32,
/*376614*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376616*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMULPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*376625*/            /*SwitchType*/ 15, MVT::v8i32,// ->376642
/*376627*/              OPC_MoveParent,
/*376628*/              OPC_MoveParent,
/*376629*/              OPC_CheckType, MVT::v4f64,
/*376631*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376633*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMULPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*376642*/            0, // EndSwitchType
/*376643*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FSUB),// ->376695
/*376646*/            OPC_RecordChild0, // #1 = $src1
/*376647*/            OPC_RecordChild1, // #2 = $src2
/*376648*/            OPC_MoveParent,
/*376649*/            OPC_MoveChild2,
/*376650*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376653*/            OPC_MoveChild0,
/*376654*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376657*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376659*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->376677
/*376662*/              OPC_MoveParent,
/*376663*/              OPC_MoveParent,
/*376664*/              OPC_CheckType, MVT::v4f32,
/*376666*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376668*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VSUBPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*376677*/            /*SwitchType*/ 15, MVT::v8i32,// ->376694
/*376679*/              OPC_MoveParent,
/*376680*/              OPC_MoveParent,
/*376681*/              OPC_CheckType, MVT::v4f64,
/*376683*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376685*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VSUBPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*376694*/            0, // EndSwitchType
/*376695*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FDIV),// ->376747
/*376698*/            OPC_RecordChild0, // #1 = $src1
/*376699*/            OPC_RecordChild1, // #2 = $src2
/*376700*/            OPC_MoveParent,
/*376701*/            OPC_MoveChild2,
/*376702*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376705*/            OPC_MoveChild0,
/*376706*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376709*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376711*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->376729
/*376714*/              OPC_MoveParent,
/*376715*/              OPC_MoveParent,
/*376716*/              OPC_CheckType, MVT::v4f32,
/*376718*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376720*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VDIVPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*376729*/            /*SwitchType*/ 15, MVT::v8i32,// ->376746
/*376731*/              OPC_MoveParent,
/*376732*/              OPC_MoveParent,
/*376733*/              OPC_CheckType, MVT::v4f64,
/*376735*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376737*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VDIVPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*376746*/            0, // EndSwitchType
/*376747*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::FMIN),// ->376799
/*376750*/            OPC_RecordChild0, // #1 = $src1
/*376751*/            OPC_RecordChild1, // #2 = $src2
/*376752*/            OPC_MoveParent,
/*376753*/            OPC_MoveChild2,
/*376754*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376757*/            OPC_MoveChild0,
/*376758*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376761*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376763*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->376781
/*376766*/              OPC_MoveParent,
/*376767*/              OPC_MoveParent,
/*376768*/              OPC_CheckType, MVT::v4f32,
/*376770*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376772*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMINPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*376781*/            /*SwitchType*/ 15, MVT::v8i32,// ->376798
/*376783*/              OPC_MoveParent,
/*376784*/              OPC_MoveParent,
/*376785*/              OPC_CheckType, MVT::v4f64,
/*376787*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376789*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMINPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*376798*/            0, // EndSwitchType
/*376799*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::FMAX),// ->376851
/*376802*/            OPC_RecordChild0, // #1 = $src1
/*376803*/            OPC_RecordChild1, // #2 = $src2
/*376804*/            OPC_MoveParent,
/*376805*/            OPC_MoveChild2,
/*376806*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376809*/            OPC_MoveChild0,
/*376810*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376813*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376815*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->376833
/*376818*/              OPC_MoveParent,
/*376819*/              OPC_MoveParent,
/*376820*/              OPC_CheckType, MVT::v4f32,
/*376822*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376824*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMAXPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*376833*/            /*SwitchType*/ 15, MVT::v8i32,// ->376850
/*376835*/              OPC_MoveParent,
/*376836*/              OPC_MoveParent,
/*376837*/              OPC_CheckType, MVT::v4f64,
/*376839*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376841*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMAXPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*376850*/            0, // EndSwitchType
/*376851*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::FMINC),// ->376903
/*376854*/            OPC_RecordChild0, // #1 = $src1
/*376855*/            OPC_RecordChild1, // #2 = $src2
/*376856*/            OPC_MoveParent,
/*376857*/            OPC_MoveChild2,
/*376858*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376861*/            OPC_MoveChild0,
/*376862*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376865*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376867*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->376885
/*376870*/              OPC_MoveParent,
/*376871*/              OPC_MoveParent,
/*376872*/              OPC_CheckType, MVT::v4f32,
/*376874*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376876*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMINCPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*376885*/            /*SwitchType*/ 15, MVT::v8i32,// ->376902
/*376887*/              OPC_MoveParent,
/*376888*/              OPC_MoveParent,
/*376889*/              OPC_CheckType, MVT::v4f64,
/*376891*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376893*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMINCPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*376902*/            0, // EndSwitchType
/*376903*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::FMAXC),// ->376955
/*376906*/            OPC_RecordChild0, // #1 = $src1
/*376907*/            OPC_RecordChild1, // #2 = $src2
/*376908*/            OPC_MoveParent,
/*376909*/            OPC_MoveChild2,
/*376910*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376913*/            OPC_MoveChild0,
/*376914*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376917*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376919*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->376937
/*376922*/              OPC_MoveParent,
/*376923*/              OPC_MoveParent,
/*376924*/              OPC_CheckType, MVT::v4f32,
/*376926*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376928*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMAXCPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*376937*/            /*SwitchType*/ 15, MVT::v8i32,// ->376954
/*376939*/              OPC_MoveParent,
/*376940*/              OPC_MoveParent,
/*376941*/              OPC_CheckType, MVT::v4f64,
/*376943*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376945*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMAXCPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*376954*/            0, // EndSwitchType
/*376955*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VPERMV),// ->376988
/*376958*/            OPC_RecordChild0, // #1 = $src1
/*376959*/            OPC_RecordChild1, // #2 = $src2
/*376960*/            OPC_MoveParent,
/*376961*/            OPC_MoveChild2,
/*376962*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376965*/            OPC_MoveChild0,
/*376966*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*376969*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*376971*/            OPC_CheckType, MVT::v8i32,
/*376973*/            OPC_MoveParent,
/*376974*/            OPC_MoveParent,
/*376975*/            OPC_CheckType, MVT::v4f64,
/*376977*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376979*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rrkz), 0,
                          MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPERMPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*376988*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VPERMILPV),// ->377040
/*376991*/            OPC_RecordChild0, // #1 = $src1
/*376992*/            OPC_RecordChild1, // #2 = $src2
/*376993*/            OPC_MoveParent,
/*376994*/            OPC_MoveChild2,
/*376995*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*376998*/            OPC_MoveChild0,
/*376999*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377002*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377004*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->377022
/*377007*/              OPC_MoveParent,
/*377008*/              OPC_MoveParent,
/*377009*/              OPC_CheckType, MVT::v4f32,
/*377011*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377013*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMILPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*377022*/            /*SwitchType*/ 15, MVT::v8i32,// ->377039
/*377024*/              OPC_MoveParent,
/*377025*/              OPC_MoveParent,
/*377026*/              OPC_CheckType, MVT::v4f64,
/*377028*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377030*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMILPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*377039*/            0, // EndSwitchType
/*377040*/          /*SwitchOpcode*/ 52, TARGET_VAL(ISD::FMA),// ->377095
/*377043*/            OPC_RecordChild0, // #1 = $src2
/*377044*/            OPC_RecordChild1, // #2 = $src1
/*377045*/            OPC_RecordChild2, // #3 = $src3
/*377046*/            OPC_MoveParent,
/*377047*/            OPC_MoveChild2,
/*377048*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377051*/            OPC_MoveChild0,
/*377052*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377055*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377057*/            OPC_SwitchType /*2 cases */, 16, MVT::v4i32,// ->377076
/*377060*/              OPC_MoveParent,
/*377061*/              OPC_MoveParent,
/*377062*/              OPC_CheckType, MVT::v4f32,
/*377064*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377066*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128rkz), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMADD213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*377076*/            /*SwitchType*/ 16, MVT::v8i32,// ->377094
/*377078*/              OPC_MoveParent,
/*377079*/              OPC_MoveParent,
/*377080*/              OPC_CheckType, MVT::v4f64,
/*377082*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377084*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256rkz), 0,
                            MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMADD213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*377094*/            0, // EndSwitchType
/*377095*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::FMSUB),// ->377150
/*377098*/            OPC_RecordChild0, // #1 = $src2
/*377099*/            OPC_RecordChild1, // #2 = $src1
/*377100*/            OPC_RecordChild2, // #3 = $src3
/*377101*/            OPC_MoveParent,
/*377102*/            OPC_MoveChild2,
/*377103*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377106*/            OPC_MoveChild0,
/*377107*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377110*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377112*/            OPC_SwitchType /*2 cases */, 16, MVT::v4i32,// ->377131
/*377115*/              OPC_MoveParent,
/*377116*/              OPC_MoveParent,
/*377117*/              OPC_CheckType, MVT::v4f32,
/*377119*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377121*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ128rkz), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMSUB213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*377131*/            /*SwitchType*/ 16, MVT::v8i32,// ->377149
/*377133*/              OPC_MoveParent,
/*377134*/              OPC_MoveParent,
/*377135*/              OPC_CheckType, MVT::v4f64,
/*377137*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377139*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ256rkz), 0,
                            MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMSUB213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*377149*/            0, // EndSwitchType
/*377150*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::FMADDSUB),// ->377205
/*377153*/            OPC_RecordChild0, // #1 = $src2
/*377154*/            OPC_RecordChild1, // #2 = $src1
/*377155*/            OPC_RecordChild2, // #3 = $src3
/*377156*/            OPC_MoveParent,
/*377157*/            OPC_MoveChild2,
/*377158*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377161*/            OPC_MoveChild0,
/*377162*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377165*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377167*/            OPC_SwitchType /*2 cases */, 16, MVT::v4i32,// ->377186
/*377170*/              OPC_MoveParent,
/*377171*/              OPC_MoveParent,
/*377172*/              OPC_CheckType, MVT::v4f32,
/*377174*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ128rkz), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMADDSUB213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*377186*/            /*SwitchType*/ 16, MVT::v8i32,// ->377204
/*377188*/              OPC_MoveParent,
/*377189*/              OPC_MoveParent,
/*377190*/              OPC_CheckType, MVT::v4f64,
/*377192*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377194*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ256rkz), 0,
                            MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMADDSUB213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*377204*/            0, // EndSwitchType
/*377205*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::FMSUBADD),// ->377260
/*377208*/            OPC_RecordChild0, // #1 = $src2
/*377209*/            OPC_RecordChild1, // #2 = $src1
/*377210*/            OPC_RecordChild2, // #3 = $src3
/*377211*/            OPC_MoveParent,
/*377212*/            OPC_MoveChild2,
/*377213*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377216*/            OPC_MoveChild0,
/*377217*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377220*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377222*/            OPC_SwitchType /*2 cases */, 16, MVT::v4i32,// ->377241
/*377225*/              OPC_MoveParent,
/*377226*/              OPC_MoveParent,
/*377227*/              OPC_CheckType, MVT::v4f32,
/*377229*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377231*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ128rkz), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMSUBADD213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*377241*/            /*SwitchType*/ 16, MVT::v8i32,// ->377259
/*377243*/              OPC_MoveParent,
/*377244*/              OPC_MoveParent,
/*377245*/              OPC_CheckType, MVT::v4f64,
/*377247*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377249*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ256rkz), 0,
                            MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMSUBADD213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*377259*/            0, // EndSwitchType
/*377260*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::FNMADD),// ->377315
/*377263*/            OPC_RecordChild0, // #1 = $src2
/*377264*/            OPC_RecordChild1, // #2 = $src1
/*377265*/            OPC_RecordChild2, // #3 = $src3
/*377266*/            OPC_MoveParent,
/*377267*/            OPC_MoveChild2,
/*377268*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377271*/            OPC_MoveChild0,
/*377272*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377275*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377277*/            OPC_SwitchType /*2 cases */, 16, MVT::v4i32,// ->377296
/*377280*/              OPC_MoveParent,
/*377281*/              OPC_MoveParent,
/*377282*/              OPC_CheckType, MVT::v4f32,
/*377284*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377286*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ128rkz), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFNMADD213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*377296*/            /*SwitchType*/ 16, MVT::v8i32,// ->377314
/*377298*/              OPC_MoveParent,
/*377299*/              OPC_MoveParent,
/*377300*/              OPC_CheckType, MVT::v4f64,
/*377302*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377304*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ256rkz), 0,
                            MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFNMADD213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*377314*/            0, // EndSwitchType
/*377315*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::FNMSUB),// ->377370
/*377318*/            OPC_RecordChild0, // #1 = $src2
/*377319*/            OPC_RecordChild1, // #2 = $src1
/*377320*/            OPC_RecordChild2, // #3 = $src3
/*377321*/            OPC_MoveParent,
/*377322*/            OPC_MoveChild2,
/*377323*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377326*/            OPC_MoveChild0,
/*377327*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377330*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377332*/            OPC_SwitchType /*2 cases */, 16, MVT::v4i32,// ->377351
/*377335*/              OPC_MoveParent,
/*377336*/              OPC_MoveParent,
/*377337*/              OPC_CheckType, MVT::v4f32,
/*377339*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377341*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ128rkz), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFNMSUB213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*377351*/            /*SwitchType*/ 16, MVT::v8i32,// ->377369
/*377353*/              OPC_MoveParent,
/*377354*/              OPC_MoveParent,
/*377355*/              OPC_CheckType, MVT::v4f64,
/*377357*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377359*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ256rkz), 0,
                            MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFNMSUB213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*377369*/            0, // EndSwitchType
/*377370*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VFPROUND),// ->377401
/*377373*/            OPC_RecordChild0, // #1 = $src
/*377374*/            OPC_MoveParent,
/*377375*/            OPC_MoveChild2,
/*377376*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377379*/            OPC_MoveChild0,
/*377380*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377383*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377385*/            OPC_CheckType, MVT::v4i32,
/*377387*/            OPC_MoveParent,
/*377388*/            OPC_MoveParent,
/*377389*/            OPC_CheckType, MVT::v4f32,
/*377391*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377393*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rrkz), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86vfpround:{ *:[v4f32] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTPD2PSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*377401*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::FP_ROUND),// ->377432
/*377404*/            OPC_RecordChild0, // #1 = $src
/*377405*/            OPC_MoveParent,
/*377406*/            OPC_MoveChild2,
/*377407*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377410*/            OPC_MoveChild0,
/*377411*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377414*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377416*/            OPC_CheckType, MVT::v4i32,
/*377418*/            OPC_MoveParent,
/*377419*/            OPC_MoveParent,
/*377420*/            OPC_CheckType, MVT::v4f32,
/*377422*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377424*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rrkz), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fpround:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTPD2PSZ256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*377432*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::FP_EXTEND),// ->377463
/*377435*/            OPC_RecordChild0, // #1 = $src
/*377436*/            OPC_MoveParent,
/*377437*/            OPC_MoveChild2,
/*377438*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377441*/            OPC_MoveChild0,
/*377442*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377445*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377447*/            OPC_CheckType, MVT::v8i32,
/*377449*/            OPC_MoveParent,
/*377450*/            OPC_MoveParent,
/*377451*/            OPC_CheckType, MVT::v4f64,
/*377453*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377455*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rrkz), 0,
                          MVT::v4f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fpextend:{ *:[v4f64] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTPS2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*377463*/          /*SwitchOpcode*/ 99, TARGET_VAL(ISD::SINT_TO_FP),// ->377565
/*377466*/            OPC_RecordChild0, // #1 = $src
/*377467*/            OPC_Scope, 47, /*->377516*/ // 2 children in Scope
/*377469*/              OPC_CheckChild0Type, MVT::v4i32,
/*377471*/              OPC_MoveParent,
/*377472*/              OPC_MoveChild2,
/*377473*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377476*/              OPC_MoveChild0,
/*377477*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377480*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377482*/              OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->377499
/*377485*/                OPC_MoveParent,
/*377486*/                OPC_MoveParent,
/*377487*/                OPC_CheckType, MVT::v4f64,
/*377489*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377491*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rrkz), 0,
                              MVT::v4f64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTDQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*377499*/              /*SwitchType*/ 14, MVT::v4i32,// ->377515
/*377501*/                OPC_MoveParent,
/*377502*/                OPC_MoveParent,
/*377503*/                OPC_CheckType, MVT::v4f32,
/*377505*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377507*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rrkz), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTDQ2PSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*377515*/              0, // EndSwitchType
/*377516*/            /*Scope*/ 47, /*->377564*/
/*377517*/              OPC_CheckChild0Type, MVT::v4i64,
/*377519*/              OPC_MoveParent,
/*377520*/              OPC_MoveChild2,
/*377521*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377524*/              OPC_MoveChild0,
/*377525*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377528*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377530*/              OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->377547
/*377533*/                OPC_MoveParent,
/*377534*/                OPC_MoveParent,
/*377535*/                OPC_CheckType, MVT::v4f64,
/*377537*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*377539*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rrkz), 0,
                              MVT::v4f64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTQQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*377547*/              /*SwitchType*/ 14, MVT::v4i32,// ->377563
/*377549*/                OPC_MoveParent,
/*377550*/                OPC_MoveParent,
/*377551*/                OPC_CheckType, MVT::v4f32,
/*377553*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*377555*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rrkz), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTQQ2PSZ256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*377563*/              0, // EndSwitchType
/*377564*/            0, /*End of Scope*/
/*377565*/          /*SwitchOpcode*/ 99, TARGET_VAL(ISD::UINT_TO_FP),// ->377667
/*377568*/            OPC_RecordChild0, // #1 = $src
/*377569*/            OPC_Scope, 47, /*->377618*/ // 2 children in Scope
/*377571*/              OPC_CheckChild0Type, MVT::v4i32,
/*377573*/              OPC_MoveParent,
/*377574*/              OPC_MoveChild2,
/*377575*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377578*/              OPC_MoveChild0,
/*377579*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377582*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377584*/              OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->377601
/*377587*/                OPC_MoveParent,
/*377588*/                OPC_MoveParent,
/*377589*/                OPC_CheckType, MVT::v4f64,
/*377591*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377593*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rrkz), 0,
                              MVT::v4f64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTUDQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*377601*/              /*SwitchType*/ 14, MVT::v4i32,// ->377617
/*377603*/                OPC_MoveParent,
/*377604*/                OPC_MoveParent,
/*377605*/                OPC_CheckType, MVT::v4f32,
/*377607*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377609*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rrkz), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTUDQ2PSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*377617*/              0, // EndSwitchType
/*377618*/            /*Scope*/ 47, /*->377666*/
/*377619*/              OPC_CheckChild0Type, MVT::v4i64,
/*377621*/              OPC_MoveParent,
/*377622*/              OPC_MoveChild2,
/*377623*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377626*/              OPC_MoveChild0,
/*377627*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377630*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377632*/              OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->377649
/*377635*/                OPC_MoveParent,
/*377636*/                OPC_MoveParent,
/*377637*/                OPC_CheckType, MVT::v4f64,
/*377639*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*377641*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rrkz), 0,
                              MVT::v4f64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTUQQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*377649*/              /*SwitchType*/ 14, MVT::v4i32,// ->377665
/*377651*/                OPC_MoveParent,
/*377652*/                OPC_MoveParent,
/*377653*/                OPC_CheckType, MVT::v4f32,
/*377655*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*377657*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rrkz), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTUQQ2PSZ256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*377665*/              0, // EndSwitchType
/*377666*/            0, /*End of Scope*/
/*377667*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::CVTSI2P),// ->377700
/*377670*/            OPC_RecordChild0, // #1 = $src
/*377671*/            OPC_CheckChild0Type, MVT::v2i64,
/*377673*/            OPC_MoveParent,
/*377674*/            OPC_MoveChild2,
/*377675*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377678*/            OPC_MoveChild0,
/*377679*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377682*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377684*/            OPC_CheckType, MVT::v4i32,
/*377686*/            OPC_MoveParent,
/*377687*/            OPC_MoveParent,
/*377688*/            OPC_CheckType, MVT::v4f32,
/*377690*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*377692*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rrkz), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VSintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTQQ2PSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*377700*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::CVTUI2P),// ->377733
/*377703*/            OPC_RecordChild0, // #1 = $src
/*377704*/            OPC_CheckChild0Type, MVT::v2i64,
/*377706*/            OPC_MoveParent,
/*377707*/            OPC_MoveChild2,
/*377708*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377711*/            OPC_MoveChild0,
/*377712*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377715*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377717*/            OPC_CheckType, MVT::v4i32,
/*377719*/            OPC_MoveParent,
/*377720*/            OPC_MoveParent,
/*377721*/            OPC_CheckType, MVT::v4f32,
/*377723*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*377725*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rrkz), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VUintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTUQQ2PSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*377733*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::CVTPH2PS),// ->377766
/*377736*/            OPC_RecordChild0, // #1 = $src
/*377737*/            OPC_CheckChild0Type, MVT::v8i16,
/*377739*/            OPC_MoveParent,
/*377740*/            OPC_MoveChild2,
/*377741*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377744*/            OPC_MoveChild0,
/*377745*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377748*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377750*/            OPC_CheckType, MVT::v4i32,
/*377752*/            OPC_MoveParent,
/*377753*/            OPC_MoveParent,
/*377754*/            OPC_CheckType, MVT::v4f32,
/*377756*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377758*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ128rrkz), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtph2ps:{ *:[v4f32] } VR128X:{ *:[v8i16] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTPH2PSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*377766*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::RSQRT14),// ->377815
/*377769*/            OPC_RecordChild0, // #1 = $src
/*377770*/            OPC_MoveParent,
/*377771*/            OPC_MoveChild2,
/*377772*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377775*/            OPC_MoveChild0,
/*377776*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377779*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377781*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->377798
/*377784*/              OPC_MoveParent,
/*377785*/              OPC_MoveParent,
/*377786*/              OPC_CheckType, MVT::v4f32,
/*377788*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377790*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRSQRT14PSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*377798*/            /*SwitchType*/ 14, MVT::v8i32,// ->377814
/*377800*/              OPC_MoveParent,
/*377801*/              OPC_MoveParent,
/*377802*/              OPC_CheckType, MVT::v4f64,
/*377804*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377806*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRSQRT14PDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*377814*/            0, // EndSwitchType
/*377815*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::RCP14),// ->377864
/*377818*/            OPC_RecordChild0, // #1 = $src
/*377819*/            OPC_MoveParent,
/*377820*/            OPC_MoveChild2,
/*377821*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377824*/            OPC_MoveChild0,
/*377825*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377828*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377830*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->377847
/*377833*/              OPC_MoveParent,
/*377834*/              OPC_MoveParent,
/*377835*/              OPC_CheckType, MVT::v4f32,
/*377837*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377839*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRCP14PSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*377847*/            /*SwitchType*/ 14, MVT::v8i32,// ->377863
/*377849*/              OPC_MoveParent,
/*377850*/              OPC_MoveParent,
/*377851*/              OPC_CheckType, MVT::v4f64,
/*377853*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377855*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRCP14PDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*377863*/            0, // EndSwitchType
/*377864*/          /*SwitchOpcode*/ 46, TARGET_VAL(ISD::FSQRT),// ->377913
/*377867*/            OPC_RecordChild0, // #1 = $src
/*377868*/            OPC_MoveParent,
/*377869*/            OPC_MoveChild2,
/*377870*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377873*/            OPC_MoveChild0,
/*377874*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377877*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377879*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->377896
/*377882*/              OPC_MoveParent,
/*377883*/              OPC_MoveParent,
/*377884*/              OPC_CheckType, MVT::v4f32,
/*377886*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377888*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VSQRTPSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*377896*/            /*SwitchType*/ 14, MVT::v8i32,// ->377912
/*377898*/              OPC_MoveParent,
/*377899*/              OPC_MoveParent,
/*377900*/              OPC_CheckType, MVT::v4f64,
/*377902*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*377904*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VSQRTPDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*377912*/            0, // EndSwitchType
/*377913*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::COMPRESS),// ->377962
/*377916*/            OPC_RecordChild0, // #1 = $src1
/*377917*/            OPC_MoveParent,
/*377918*/            OPC_MoveChild2,
/*377919*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377922*/            OPC_MoveChild0,
/*377923*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377926*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377928*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->377945
/*377931*/              OPC_MoveParent,
/*377932*/              OPC_MoveParent,
/*377933*/              OPC_CheckType, MVT::v4f32,
/*377935*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377937*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZ128rrkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86compress:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCOMPRESSPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1)
/*377945*/            /*SwitchType*/ 14, MVT::v8i32,// ->377961
/*377947*/              OPC_MoveParent,
/*377948*/              OPC_MoveParent,
/*377949*/              OPC_CheckType, MVT::v4f64,
/*377951*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377953*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZ256rrkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86compress:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCOMPRESSPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1)
/*377961*/            0, // EndSwitchType
/*377962*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::EXPAND),// ->378011
/*377965*/            OPC_RecordChild0, // #1 = $src1
/*377966*/            OPC_MoveParent,
/*377967*/            OPC_MoveChild2,
/*377968*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*377971*/            OPC_MoveChild0,
/*377972*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*377975*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*377977*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->377994
/*377980*/              OPC_MoveParent,
/*377981*/              OPC_MoveParent,
/*377982*/              OPC_CheckType, MVT::v4f32,
/*377984*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377986*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rrkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VEXPANDPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1)
/*377994*/            /*SwitchType*/ 14, MVT::v8i32,// ->378010
/*377996*/              OPC_MoveParent,
/*377997*/              OPC_MoveParent,
/*377998*/              OPC_CheckType, MVT::v4f64,
/*378000*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378002*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rrkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VEXPANDPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1)
/*378010*/            0, // EndSwitchType
/*378011*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::FFLOOR),// ->378068
/*378014*/            OPC_RecordChild0, // #1 = $src
/*378015*/            OPC_MoveParent,
/*378016*/            OPC_MoveChild2,
/*378017*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378020*/            OPC_MoveChild0,
/*378021*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*378024*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*378026*/            OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->378047
/*378029*/              OPC_MoveParent,
/*378030*/              OPC_MoveParent,
/*378031*/              OPC_CheckType, MVT::v4f64,
/*378033*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378035*/              OPC_EmitInteger, MVT::i32, 9, 
/*378038*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, 9:{ *:[i32] })
/*378047*/            /*SwitchType*/ 18, MVT::v4i32,// ->378067
/*378049*/              OPC_MoveParent,
/*378050*/              OPC_MoveParent,
/*378051*/              OPC_CheckType, MVT::v4f32,
/*378053*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378055*/              OPC_EmitInteger, MVT::i32, 9, 
/*378058*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, 9:{ *:[i32] })
/*378067*/            0, // EndSwitchType
/*378068*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::FNEARBYINT),// ->378125
/*378071*/            OPC_RecordChild0, // #1 = $src
/*378072*/            OPC_MoveParent,
/*378073*/            OPC_MoveChild2,
/*378074*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378077*/            OPC_MoveChild0,
/*378078*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*378081*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*378083*/            OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->378104
/*378086*/              OPC_MoveParent,
/*378087*/              OPC_MoveParent,
/*378088*/              OPC_CheckType, MVT::v4f64,
/*378090*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378092*/              OPC_EmitInteger, MVT::i32, 12, 
/*378095*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, 12:{ *:[i32] })
/*378104*/            /*SwitchType*/ 18, MVT::v4i32,// ->378124
/*378106*/              OPC_MoveParent,
/*378107*/              OPC_MoveParent,
/*378108*/              OPC_CheckType, MVT::v4f32,
/*378110*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378112*/              OPC_EmitInteger, MVT::i32, 12, 
/*378115*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, 12:{ *:[i32] })
/*378124*/            0, // EndSwitchType
/*378125*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::FCEIL),// ->378182
/*378128*/            OPC_RecordChild0, // #1 = $src
/*378129*/            OPC_MoveParent,
/*378130*/            OPC_MoveChild2,
/*378131*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378134*/            OPC_MoveChild0,
/*378135*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*378138*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*378140*/            OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->378161
/*378143*/              OPC_MoveParent,
/*378144*/              OPC_MoveParent,
/*378145*/              OPC_CheckType, MVT::v4f64,
/*378147*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378149*/              OPC_EmitInteger, MVT::i32, 10, 
/*378152*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, 10:{ *:[i32] })
/*378161*/            /*SwitchType*/ 18, MVT::v4i32,// ->378181
/*378163*/              OPC_MoveParent,
/*378164*/              OPC_MoveParent,
/*378165*/              OPC_CheckType, MVT::v4f32,
/*378167*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378169*/              OPC_EmitInteger, MVT::i32, 10, 
/*378172*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, 10:{ *:[i32] })
/*378181*/            0, // EndSwitchType
/*378182*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::FRINT),// ->378239
/*378185*/            OPC_RecordChild0, // #1 = $src
/*378186*/            OPC_MoveParent,
/*378187*/            OPC_MoveChild2,
/*378188*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378191*/            OPC_MoveChild0,
/*378192*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*378195*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*378197*/            OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->378218
/*378200*/              OPC_MoveParent,
/*378201*/              OPC_MoveParent,
/*378202*/              OPC_CheckType, MVT::v4f64,
/*378204*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378206*/              OPC_EmitInteger, MVT::i32, 4, 
/*378209*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, 4:{ *:[i32] })
/*378218*/            /*SwitchType*/ 18, MVT::v4i32,// ->378238
/*378220*/              OPC_MoveParent,
/*378221*/              OPC_MoveParent,
/*378222*/              OPC_CheckType, MVT::v4f32,
/*378224*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378226*/              OPC_EmitInteger, MVT::i32, 4, 
/*378229*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] })
/*378238*/            0, // EndSwitchType
/*378239*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::FTRUNC),// ->378296
/*378242*/            OPC_RecordChild0, // #1 = $src
/*378243*/            OPC_MoveParent,
/*378244*/            OPC_MoveChild2,
/*378245*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378248*/            OPC_MoveChild0,
/*378249*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*378252*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*378254*/            OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->378275
/*378257*/              OPC_MoveParent,
/*378258*/              OPC_MoveParent,
/*378259*/              OPC_CheckType, MVT::v4f64,
/*378261*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378263*/              OPC_EmitInteger, MVT::i32, 11, 
/*378266*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, 11:{ *:[i32] })
/*378275*/            /*SwitchType*/ 18, MVT::v4i32,// ->378295
/*378277*/              OPC_MoveParent,
/*378278*/              OPC_MoveParent,
/*378279*/              OPC_CheckType, MVT::v4f32,
/*378281*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378283*/              OPC_EmitInteger, MVT::i32, 11, 
/*378286*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, 11:{ *:[i32] })
/*378295*/            0, // EndSwitchType
/*378296*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::MOVSHDUP),// ->378327
/*378299*/            OPC_RecordChild0, // #1 = $src1
/*378300*/            OPC_MoveParent,
/*378301*/            OPC_MoveChild2,
/*378302*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378305*/            OPC_MoveChild0,
/*378306*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*378309*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*378311*/            OPC_CheckType, MVT::v4i32,
/*378313*/            OPC_MoveParent,
/*378314*/            OPC_MoveParent,
/*378315*/            OPC_CheckType, MVT::v4f32,
/*378317*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378319*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ128rrkz), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Movshdup:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMOVSHDUPZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1)
/*378327*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::MOVSLDUP),// ->378358
/*378330*/            OPC_RecordChild0, // #1 = $src1
/*378331*/            OPC_MoveParent,
/*378332*/            OPC_MoveChild2,
/*378333*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378336*/            OPC_MoveChild0,
/*378337*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*378340*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*378342*/            OPC_CheckType, MVT::v4i32,
/*378344*/            OPC_MoveParent,
/*378345*/            OPC_MoveParent,
/*378346*/            OPC_CheckType, MVT::v4f32,
/*378348*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378350*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ128rrkz), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Movsldup:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMOVSLDUPZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1)
/*378358*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::MOVDDUP),// ->378389
/*378361*/            OPC_RecordChild0, // #1 = $src1
/*378362*/            OPC_MoveParent,
/*378363*/            OPC_MoveChild2,
/*378364*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378367*/            OPC_MoveChild0,
/*378368*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*378371*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*378373*/            OPC_CheckType, MVT::v8i32,
/*378375*/            OPC_MoveParent,
/*378376*/            OPC_MoveParent,
/*378377*/            OPC_CheckType, MVT::v4f64,
/*378379*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378381*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ256rrkz), 0,
                          MVT::v4f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Movddup:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMOVDDUPZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1)
/*378389*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::UNPCKH),// ->378441
/*378392*/            OPC_RecordChild0, // #1 = $src1
/*378393*/            OPC_RecordChild1, // #2 = $src2
/*378394*/            OPC_MoveParent,
/*378395*/            OPC_MoveChild2,
/*378396*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378399*/            OPC_MoveChild0,
/*378400*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*378403*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*378405*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->378423
/*378408*/              OPC_MoveParent,
/*378409*/              OPC_MoveParent,
/*378410*/              OPC_CheckType, MVT::v4f32,
/*378412*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378414*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VUNPCKHPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*378423*/            /*SwitchType*/ 15, MVT::v8i32,// ->378440
/*378425*/              OPC_MoveParent,
/*378426*/              OPC_MoveParent,
/*378427*/              OPC_CheckType, MVT::v4f64,
/*378429*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378431*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VUNPCKHPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*378440*/            0, // EndSwitchType
/*378441*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::UNPCKL),// ->378493
/*378444*/            OPC_RecordChild0, // #1 = $src1
/*378445*/            OPC_RecordChild1, // #2 = $src2
/*378446*/            OPC_MoveParent,
/*378447*/            OPC_MoveChild2,
/*378448*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378451*/            OPC_MoveChild0,
/*378452*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*378455*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*378457*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->378475
/*378460*/              OPC_MoveParent,
/*378461*/              OPC_MoveParent,
/*378462*/              OPC_CheckType, MVT::v4f32,
/*378464*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378466*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ128rrkz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VUNPCKLPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*378475*/            /*SwitchType*/ 15, MVT::v8i32,// ->378492
/*378477*/              OPC_MoveParent,
/*378478*/              OPC_MoveParent,
/*378479*/              OPC_CheckType, MVT::v4f64,
/*378481*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378483*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ256rrkz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VUNPCKLPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*378492*/            0, // EndSwitchType
/*378493*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::SCALEF),// ->378532
/*378496*/            OPC_RecordChild0, // #1 = $src1
/*378497*/            OPC_RecordChild1, // #2 = $src2
/*378498*/            OPC_CheckChild2Integer, 4, 
/*378500*/            OPC_MoveParent,
/*378501*/            OPC_RecordChild2, // #3 = $src0
/*378502*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->378517
/*378505*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378507*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                        // Dst: (VSCALEFPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*378517*/            /*SwitchType*/ 12, MVT::v4f64,// ->378531
/*378519*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378521*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86scalef:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, 4:{ *:[i32] }), VR256X:{ *:[v4f64] }:$src0) - Complexity = 11
                        // Dst: (VSCALEFPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*378531*/            0, // EndSwitchType
/*378532*/          /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::FGETEXP_RND),// ->378568
/*378535*/            OPC_RecordChild0, // #1 = $src
/*378536*/            OPC_CheckChild1Integer, 4, 
/*378538*/            OPC_MoveParent,
/*378539*/            OPC_RecordChild2, // #2 = $src0
/*378540*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->378554
/*378543*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128rk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                        // Dst: (VGETEXPPSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*378554*/            /*SwitchType*/ 11, MVT::v4f64,// ->378567
/*378556*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378558*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256rk), 0,
                            MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexpRnd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, 4:{ *:[i32] }), VR256X:{ *:[v4f64] }:$src0) - Complexity = 11
                        // Dst: (VGETEXPPDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*378567*/            0, // EndSwitchType
/*378568*/          /*SwitchOpcode*/ 100, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->378671
/*378571*/            OPC_RecordChild0, // #1 = $src
/*378572*/            OPC_Scope, 32, /*->378606*/ // 3 children in Scope
/*378574*/              OPC_CheckChild0Type, MVT::v8f32,
/*378576*/              OPC_CheckChild1Integer, 0, 
/*378578*/              OPC_CheckChild1Type, MVT::iPTR,
/*378580*/              OPC_MoveParent,
/*378581*/              OPC_RecordChild2, // #2 = $src0
/*378582*/              OPC_CheckType, MVT::v4f32,
/*378584*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378586*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*378589*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*378597*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rrk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                        // Dst: (VMOVAPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }))
/*378606*/            /*Scope*/ 32, /*->378639*/
/*378607*/              OPC_CheckChild0Type, MVT::v16f32,
/*378609*/              OPC_CheckChild1Integer, 0, 
/*378611*/              OPC_CheckChild1Type, MVT::iPTR,
/*378613*/              OPC_MoveParent,
/*378614*/              OPC_RecordChild2, // #2 = $src0
/*378615*/              OPC_CheckType, MVT::v4f32,
/*378617*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378619*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*378622*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*378630*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rrk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] }), VR128X:{ *:[v4f32] }:$src0) - Complexity = 11
                        // Dst: (VMOVAPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, sub_xmm:{ *:[i32] }))
/*378639*/            /*Scope*/ 30, /*->378670*/
/*378640*/              OPC_CheckChild1Integer, 0, 
/*378642*/              OPC_CheckChild1Type, MVT::iPTR,
/*378644*/              OPC_MoveParent,
/*378645*/              OPC_RecordChild2, // #2 = $src0
/*378646*/              OPC_CheckType, MVT::v4f64,
/*378648*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378650*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*378653*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*378661*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rrk), 0,
                            MVT::v4f64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] }), VR256X:{ *:[v4f64] }:$src0) - Complexity = 11
                        // Dst: (VMOVAPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, sub_ymm:{ *:[i32] }))
/*378670*/            0, /*End of Scope*/
/*378671*/          0, // EndSwitchOpcode
/*378672*/        /*Scope*/ 28|128,2/*284*/, /*->378958*/
/*378674*/          OPC_RecordChild1, // #1 = $src
/*378675*/          OPC_Scope, 24|128,1/*152*/, /*->378830*/ // 2 children in Scope
/*378678*/            OPC_MoveChild2,
/*378679*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378682*/            OPC_MoveChild0,
/*378683*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*378686*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*378688*/            OPC_SwitchType /*2 cases */, 68, MVT::v4i32,// ->378759
/*378691*/              OPC_MoveParent,
/*378692*/              OPC_MoveParent,
/*378693*/              OPC_CheckType, MVT::v4f32,
/*378695*/              OPC_Scope, 10, /*->378707*/ // 2 children in Scope
/*378697*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378699*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rrkz), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                          // Dst: (VMOVAPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*378707*/              /*Scope*/ 50, /*->378758*/
/*378708*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*378710*/                OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*378713*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*378721*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v16f32, 0/*#Ops*/,  // Results = #4
/*378727*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*378730*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::v16f32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*378739*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZrrkz), 0,
                              MVT::v16f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*378747*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*378750*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::v4f32, 2/*#Ops*/, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                          // Dst: (EXTRACT_SUBREG:{ *:[v4f32] } (VMOVAPSZrrkz:{ *:[v16f32] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4WM:{ *:[v4i1] }:$mask, VK16WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*378758*/              0, /*End of Scope*/
/*378759*/            /*SwitchType*/ 68, MVT::v8i32,// ->378829
/*378761*/              OPC_MoveParent,
/*378762*/              OPC_MoveParent,
/*378763*/              OPC_CheckType, MVT::v4f64,
/*378765*/              OPC_Scope, 10, /*->378777*/ // 2 children in Scope
/*378767*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378769*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rrkz), 0,
                              MVT::v4f64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                          // Dst: (VMOVAPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*378777*/              /*Scope*/ 50, /*->378828*/
/*378778*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*378780*/                OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*378783*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*378791*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v8f64, 0/*#Ops*/,  // Results = #4
/*378797*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*378800*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::v8f64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*378809*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZrrkz), 0,
                              MVT::v8f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*378817*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*378820*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::v4f64, 2/*#Ops*/, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                          // Dst: (EXTRACT_SUBREG:{ *:[v4f64] } (VMOVAPDZrrkz:{ *:[v8f64] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4WM:{ *:[v4i1] }:$mask, VK8WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*378828*/              0, /*End of Scope*/
/*378829*/            0, // EndSwitchType
/*378830*/          /*Scope*/ 126, /*->378957*/
/*378831*/            OPC_MoveChild1,
/*378832*/            OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->378865
/*378836*/              OPC_RecordChild0, // #2 = $src1
/*378837*/              OPC_RecordChild1, // #3 = $src2
/*378838*/              OPC_MoveChild2,
/*378839*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*378842*/              OPC_CheckType, MVT::iPTR,
/*378844*/              OPC_MoveParent,
/*378845*/              OPC_MoveParent,
/*378846*/              OPC_RecordChild2, // #4 = $src0
/*378847*/              OPC_CheckType, MVT::v4f64,
/*378849*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*378851*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*378854*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Z256rrk), 0,
                            MVT::v4f64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VINSERTF64x2Z256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*378865*/            /*SwitchOpcode*/ 88, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->378956
/*378868*/              OPC_RecordChild0, // #2 = $src1
/*378869*/              OPC_Scope, 28, /*->378899*/ // 3 children in Scope
/*378871*/                OPC_CheckChild0Type, MVT::v16f32,
/*378873*/                OPC_MoveChild1,
/*378874*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*378877*/                OPC_CheckType, MVT::iPTR,
/*378879*/                OPC_MoveParent,
/*378880*/                OPC_MoveParent,
/*378881*/                OPC_RecordChild2, // #3 = $src0
/*378882*/                OPC_CheckType, MVT::v4f32,
/*378884*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*378886*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*378889*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Zrrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VEXTRACTF32x4Zrrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*378899*/              /*Scope*/ 26, /*->378926*/
/*378900*/                OPC_MoveChild1,
/*378901*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*378904*/                OPC_CheckType, MVT::iPTR,
/*378906*/                OPC_MoveParent,
/*378907*/                OPC_MoveParent,
/*378908*/                OPC_RecordChild2, // #3 = $src0
/*378909*/                OPC_CheckType, MVT::v4f64,
/*378911*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*378913*/                OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*378916*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x4Zrrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx, VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VEXTRACTF64x4Zrrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*378926*/              /*Scope*/ 28, /*->378955*/
/*378927*/                OPC_CheckChild0Type, MVT::v8f32,
/*378929*/                OPC_MoveChild1,
/*378930*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*378933*/                OPC_CheckType, MVT::iPTR,
/*378935*/                OPC_MoveParent,
/*378936*/                OPC_MoveParent,
/*378937*/                OPC_RecordChild2, // #3 = $src0
/*378938*/                OPC_CheckType, MVT::v4f32,
/*378940*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378942*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*378945*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Z256rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VEXTRACTF32x4Z256rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*378955*/              0, /*End of Scope*/
/*378956*/            0, // EndSwitchOpcode
/*378957*/          0, /*End of Scope*/
/*378958*/        /*Scope*/ 55|128,19/*2487*/, /*->381447*/
/*378960*/          OPC_MoveChild1,
/*378961*/          OPC_SwitchOpcode /*50 cases */, 77, TARGET_VAL(X86ISD::VPERMV3),// ->379042
/*378965*/            OPC_RecordChild0, // #1 = $src2
/*378966*/            OPC_RecordChild1, // #2 = $src1
/*378967*/            OPC_RecordChild2, // #3 = $src3
/*378968*/            OPC_MoveParent,
/*378969*/            OPC_Scope, 37, /*->379008*/ // 2 children in Scope
/*378971*/              OPC_MoveChild2,
/*378972*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*378975*/              OPC_CheckChild0Same, 2,
/*378977*/              OPC_MoveParent,
/*378978*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->378993
/*378981*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378983*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4f32] }:$src3), (bitconvert:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src1)) - Complexity = 9
                          // Dst: (VPERMI2PS128rrk:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*378993*/              /*SwitchType*/ 12, MVT::v4f64,// ->379007
/*378995*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378997*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PD256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4f64] }:$src3), (bitconvert:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1)) - Complexity = 9
                          // Dst: (VPERMI2PD256rrk:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*379007*/              0, // EndSwitchType
/*379008*/            /*Scope*/ 32, /*->379041*/
/*379009*/              OPC_CheckChild2Same, 1,
/*379011*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->379026
/*379014*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379016*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4f32] }:$src3), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2PS128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*379026*/              /*SwitchType*/ 12, MVT::v4f64,// ->379040
/*379028*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379030*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4f64] }:$src3), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2PD256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*379040*/              0, // EndSwitchType
/*379041*/            0, /*End of Scope*/
/*379042*/          /*SwitchOpcode*/ 55|128,1/*183*/, TARGET_VAL(ISD::BITCAST),// ->379229
/*379046*/            OPC_MoveChild0,
/*379047*/            OPC_SwitchOpcode /*4 cases */, 42, TARGET_VAL(ISD::AND),// ->379093
/*379051*/              OPC_RecordChild0, // #1 = $src1
/*379052*/              OPC_RecordChild1, // #2 = $src2
/*379053*/              OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->379073
/*379056*/                OPC_MoveParent,
/*379057*/                OPC_MoveParent,
/*379058*/                OPC_RecordChild2, // #3 = $src0
/*379059*/                OPC_CheckType, MVT::v4f32,
/*379061*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379063*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*379073*/              /*SwitchType*/ 17, MVT::v4i64,// ->379092
/*379075*/                OPC_MoveParent,
/*379076*/                OPC_MoveParent,
/*379077*/                OPC_RecordChild2, // #3 = $src0
/*379078*/                OPC_CheckType, MVT::v4f64,
/*379080*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379082*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*379092*/              0, // EndSwitchType
/*379093*/            /*SwitchOpcode*/ 42, TARGET_VAL(ISD::OR),// ->379138
/*379096*/              OPC_RecordChild0, // #1 = $src1
/*379097*/              OPC_RecordChild1, // #2 = $src2
/*379098*/              OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->379118
/*379101*/                OPC_MoveParent,
/*379102*/                OPC_MoveParent,
/*379103*/                OPC_RecordChild2, // #3 = $src0
/*379104*/                OPC_CheckType, MVT::v4f32,
/*379106*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379108*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*379118*/              /*SwitchType*/ 17, MVT::v4i64,// ->379137
/*379120*/                OPC_MoveParent,
/*379121*/                OPC_MoveParent,
/*379122*/                OPC_RecordChild2, // #3 = $src0
/*379123*/                OPC_CheckType, MVT::v4f64,
/*379125*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379127*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*379137*/              0, // EndSwitchType
/*379138*/            /*SwitchOpcode*/ 42, TARGET_VAL(ISD::XOR),// ->379183
/*379141*/              OPC_RecordChild0, // #1 = $src1
/*379142*/              OPC_RecordChild1, // #2 = $src2
/*379143*/              OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->379163
/*379146*/                OPC_MoveParent,
/*379147*/                OPC_MoveParent,
/*379148*/                OPC_RecordChild2, // #3 = $src0
/*379149*/                OPC_CheckType, MVT::v4f32,
/*379151*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379153*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*379163*/              /*SwitchType*/ 17, MVT::v4i64,// ->379182
/*379165*/                OPC_MoveParent,
/*379166*/                OPC_MoveParent,
/*379167*/                OPC_RecordChild2, // #3 = $src0
/*379168*/                OPC_CheckType, MVT::v4f64,
/*379170*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379172*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*379182*/              0, // EndSwitchType
/*379183*/            /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::ANDNP),// ->379228
/*379186*/              OPC_RecordChild0, // #1 = $src1
/*379187*/              OPC_RecordChild1, // #2 = $src2
/*379188*/              OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->379208
/*379191*/                OPC_MoveParent,
/*379192*/                OPC_MoveParent,
/*379193*/                OPC_RecordChild2, // #3 = $src0
/*379194*/                OPC_CheckType, MVT::v4f32,
/*379196*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379198*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*379208*/              /*SwitchType*/ 17, MVT::v4i64,// ->379227
/*379210*/                OPC_MoveParent,
/*379211*/                OPC_MoveParent,
/*379212*/                OPC_RecordChild2, // #3 = $src0
/*379213*/                OPC_CheckType, MVT::v4f64,
/*379215*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379217*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*379227*/              0, // EndSwitchType
/*379228*/            0, // EndSwitchOpcode
/*379229*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPERMI),// ->379257
/*379232*/            OPC_RecordChild0, // #1 = $src1
/*379233*/            OPC_RecordChild1, // #2 = $src2
/*379234*/            OPC_MoveChild1,
/*379235*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*379238*/            OPC_MoveParent,
/*379239*/            OPC_MoveParent,
/*379240*/            OPC_RecordChild2, // #3 = $src0
/*379241*/            OPC_CheckType, MVT::v4f64,
/*379243*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379245*/            OPC_EmitConvertToTarget, 2,
/*379247*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rik), 0,
                          MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                      // Dst: (VPERMPDZ256rik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*379257*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VPERMILPI),// ->379303
/*379260*/            OPC_RecordChild0, // #1 = $src1
/*379261*/            OPC_RecordChild1, // #2 = $src2
/*379262*/            OPC_MoveChild1,
/*379263*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*379266*/            OPC_MoveParent,
/*379267*/            OPC_MoveParent,
/*379268*/            OPC_RecordChild2, // #3 = $src0
/*379269*/            OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->379286
/*379272*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379274*/              OPC_EmitConvertToTarget, 2,
/*379276*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rik), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VPERMILPSZ128rik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*379286*/            /*SwitchType*/ 14, MVT::v4f64,// ->379302
/*379288*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379290*/              OPC_EmitConvertToTarget, 2,
/*379292*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rik), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VPERMILPDZ256rik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*379302*/            0, // EndSwitchType
/*379303*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VREDUCE),// ->379349
/*379306*/            OPC_RecordChild0, // #1 = $src1
/*379307*/            OPC_RecordChild1, // #2 = $src2
/*379308*/            OPC_MoveChild1,
/*379309*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*379312*/            OPC_MoveParent,
/*379313*/            OPC_MoveParent,
/*379314*/            OPC_RecordChild2, // #3 = $src0
/*379315*/            OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->379332
/*379318*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*379320*/              OPC_EmitConvertToTarget, 2,
/*379322*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rrik), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VREDUCEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*379332*/            /*SwitchType*/ 14, MVT::v4f64,// ->379348
/*379334*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*379336*/              OPC_EmitConvertToTarget, 2,
/*379338*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rrik), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VREDUCEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*379348*/            0, // EndSwitchType
/*379349*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VRNDSCALE),// ->379395
/*379352*/            OPC_RecordChild0, // #1 = $src1
/*379353*/            OPC_RecordChild1, // #2 = $src2
/*379354*/            OPC_MoveChild1,
/*379355*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*379358*/            OPC_MoveParent,
/*379359*/            OPC_MoveParent,
/*379360*/            OPC_RecordChild2, // #3 = $src0
/*379361*/            OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->379378
/*379364*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379366*/              OPC_EmitConvertToTarget, 2,
/*379368*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrik), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*379378*/            /*SwitchType*/ 14, MVT::v4f64,// ->379394
/*379380*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379382*/              OPC_EmitConvertToTarget, 2,
/*379384*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrik), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*379394*/            0, // EndSwitchType
/*379395*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VGETMANT),// ->379441
/*379398*/            OPC_RecordChild0, // #1 = $src1
/*379399*/            OPC_RecordChild1, // #2 = $src2
/*379400*/            OPC_MoveChild1,
/*379401*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*379404*/            OPC_MoveParent,
/*379405*/            OPC_MoveParent,
/*379406*/            OPC_RecordChild2, // #3 = $src0
/*379407*/            OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->379424
/*379410*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379412*/              OPC_EmitConvertToTarget, 2,
/*379414*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rrik), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VGETMANTPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*379424*/            /*SwitchType*/ 14, MVT::v4f64,// ->379440
/*379426*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379428*/              OPC_EmitConvertToTarget, 2,
/*379430*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rrik), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VGETMANTPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*379440*/            0, // EndSwitchType
/*379441*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VRANGE),// ->379490
/*379444*/            OPC_RecordChild0, // #1 = $src1
/*379445*/            OPC_RecordChild1, // #2 = $src2
/*379446*/            OPC_RecordChild2, // #3 = $src3
/*379447*/            OPC_MoveChild2,
/*379448*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*379451*/            OPC_MoveParent,
/*379452*/            OPC_MoveParent,
/*379453*/            OPC_RecordChild2, // #4 = $src0
/*379454*/            OPC_SwitchType /*2 cases */, 15, MVT::v4f64,// ->379472
/*379457*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*379459*/              OPC_EmitConvertToTarget, 3,
/*379461*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rrik), 0,
                            MVT::v4f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i32] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VRANGEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*379472*/            /*SwitchType*/ 15, MVT::v4f32,// ->379489
/*379474*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*379476*/              OPC_EmitConvertToTarget, 3,
/*379478*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rrik), 0,
                            MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VRANGEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*379489*/            0, // EndSwitchType
/*379490*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::SHUF128),// ->379520
/*379493*/            OPC_RecordChild0, // #1 = $src1
/*379494*/            OPC_RecordChild1, // #2 = $src2
/*379495*/            OPC_RecordChild2, // #3 = $src3
/*379496*/            OPC_MoveChild2,
/*379497*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*379500*/            OPC_MoveParent,
/*379501*/            OPC_MoveParent,
/*379502*/            OPC_RecordChild2, // #4 = $src0
/*379503*/            OPC_CheckType, MVT::v4f64,
/*379505*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379507*/            OPC_EmitConvertToTarget, 3,
/*379509*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rrik), 0,
                          MVT::v4f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                      // Dst: (VSHUFF64X2Z256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*379520*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::SHUFP),// ->379569
/*379523*/            OPC_RecordChild0, // #1 = $src1
/*379524*/            OPC_RecordChild1, // #2 = $src2
/*379525*/            OPC_RecordChild2, // #3 = $src3
/*379526*/            OPC_MoveChild2,
/*379527*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*379530*/            OPC_MoveParent,
/*379531*/            OPC_MoveParent,
/*379532*/            OPC_RecordChild2, // #4 = $src0
/*379533*/            OPC_SwitchType /*2 cases */, 15, MVT::v4f32,// ->379551
/*379536*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379538*/              OPC_EmitConvertToTarget, 3,
/*379540*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rrik), 0,
                            MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VSHUFPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*379551*/            /*SwitchType*/ 15, MVT::v4f64,// ->379568
/*379553*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379555*/              OPC_EmitConvertToTarget, 3,
/*379557*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rrik), 0,
                            MVT::v4f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VSHUFPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*379568*/            0, // EndSwitchType
/*379569*/          /*SwitchOpcode*/ 97, TARGET_VAL(X86ISD::VBROADCAST),// ->379669
/*379572*/            OPC_RecordChild0, // #1 = $src
/*379573*/            OPC_Scope, 17, /*->379592*/ // 4 children in Scope
/*379575*/              OPC_CheckChild0Type, MVT::v4f32,
/*379577*/              OPC_MoveParent,
/*379578*/              OPC_RecordChild2, // #2 = $src0
/*379579*/              OPC_CheckType, MVT::v4f32,
/*379581*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379583*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128rk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VBROADCASTSSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*379592*/            /*Scope*/ 17, /*->379610*/
/*379593*/              OPC_CheckChild0Type, MVT::v2f64,
/*379595*/              OPC_MoveParent,
/*379596*/              OPC_RecordChild2, // #2 = $src0
/*379597*/              OPC_CheckType, MVT::v4f64,
/*379599*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379601*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256rk), 0,
                            MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f64] } VR128X:{ *:[v2f64] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VBROADCASTSDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*379610*/            /*Scope*/ 28, /*->379639*/
/*379611*/              OPC_CheckChild0Type, MVT::f32,
/*379613*/              OPC_MoveParent,
/*379614*/              OPC_RecordChild2, // #2 = $src0
/*379615*/              OPC_CheckType, MVT::v4f32,
/*379617*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379619*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*379622*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*379630*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128rk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f32] } FR32X:{ *:[f32] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VBROADCASTSSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*379639*/            /*Scope*/ 28, /*->379668*/
/*379640*/              OPC_CheckChild0Type, MVT::f64,
/*379642*/              OPC_MoveParent,
/*379643*/              OPC_RecordChild2, // #2 = $src0
/*379644*/              OPC_CheckType, MVT::v4f64,
/*379646*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*379648*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*379651*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*379659*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256rk), 0,
                            MVT::v4f64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f64] } FR64X:{ *:[f64] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VBROADCASTSDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*379668*/            0, /*End of Scope*/
/*379669*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FADD),// ->379706
/*379672*/            OPC_RecordChild0, // #1 = $src1
/*379673*/            OPC_RecordChild1, // #2 = $src2
/*379674*/            OPC_MoveParent,
/*379675*/            OPC_RecordChild2, // #3 = $src0
/*379676*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->379691
/*379679*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379681*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VADDPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*379691*/            /*SwitchType*/ 12, MVT::v4f64,// ->379705
/*379693*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379695*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VADDPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*379705*/            0, // EndSwitchType
/*379706*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FMUL),// ->379743
/*379709*/            OPC_RecordChild0, // #1 = $src1
/*379710*/            OPC_RecordChild1, // #2 = $src2
/*379711*/            OPC_MoveParent,
/*379712*/            OPC_RecordChild2, // #3 = $src0
/*379713*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->379728
/*379716*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379718*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VMULPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*379728*/            /*SwitchType*/ 12, MVT::v4f64,// ->379742
/*379730*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379732*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VMULPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*379742*/            0, // EndSwitchType
/*379743*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FSUB),// ->379780
/*379746*/            OPC_RecordChild0, // #1 = $src1
/*379747*/            OPC_RecordChild1, // #2 = $src2
/*379748*/            OPC_MoveParent,
/*379749*/            OPC_RecordChild2, // #3 = $src0
/*379750*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->379765
/*379753*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379755*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VSUBPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*379765*/            /*SwitchType*/ 12, MVT::v4f64,// ->379779
/*379767*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379769*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VSUBPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*379779*/            0, // EndSwitchType
/*379780*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FDIV),// ->379817
/*379783*/            OPC_RecordChild0, // #1 = $src1
/*379784*/            OPC_RecordChild1, // #2 = $src2
/*379785*/            OPC_MoveParent,
/*379786*/            OPC_RecordChild2, // #3 = $src0
/*379787*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->379802
/*379790*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379792*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VDIVPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*379802*/            /*SwitchType*/ 12, MVT::v4f64,// ->379816
/*379804*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379806*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VDIVPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*379816*/            0, // EndSwitchType
/*379817*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMIN),// ->379854
/*379820*/            OPC_RecordChild0, // #1 = $src1
/*379821*/            OPC_RecordChild1, // #2 = $src2
/*379822*/            OPC_MoveParent,
/*379823*/            OPC_RecordChild2, // #3 = $src0
/*379824*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->379839
/*379827*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379829*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VMINPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*379839*/            /*SwitchType*/ 12, MVT::v4f64,// ->379853
/*379841*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379843*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmin:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VMINPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*379853*/            0, // EndSwitchType
/*379854*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAX),// ->379891
/*379857*/            OPC_RecordChild0, // #1 = $src1
/*379858*/            OPC_RecordChild1, // #2 = $src2
/*379859*/            OPC_MoveParent,
/*379860*/            OPC_RecordChild2, // #3 = $src0
/*379861*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->379876
/*379864*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379866*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VMAXPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*379876*/            /*SwitchType*/ 12, MVT::v4f64,// ->379890
/*379878*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379880*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmax:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VMAXPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*379890*/            0, // EndSwitchType
/*379891*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMINC),// ->379928
/*379894*/            OPC_RecordChild0, // #1 = $src1
/*379895*/            OPC_RecordChild1, // #2 = $src2
/*379896*/            OPC_MoveParent,
/*379897*/            OPC_RecordChild2, // #3 = $src0
/*379898*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->379913
/*379901*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379903*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VMINCPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*379913*/            /*SwitchType*/ 12, MVT::v4f64,// ->379927
/*379915*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379917*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fminc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VMINCPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*379927*/            0, // EndSwitchType
/*379928*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAXC),// ->379965
/*379931*/            OPC_RecordChild0, // #1 = $src1
/*379932*/            OPC_RecordChild1, // #2 = $src2
/*379933*/            OPC_MoveParent,
/*379934*/            OPC_RecordChild2, // #3 = $src0
/*379935*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->379950
/*379938*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379940*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VMAXCPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*379950*/            /*SwitchType*/ 12, MVT::v4f64,// ->379964
/*379952*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379954*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fmaxc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VMAXCPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*379964*/            0, // EndSwitchType
/*379965*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMV),// ->379986
/*379968*/            OPC_RecordChild0, // #1 = $src1
/*379969*/            OPC_RecordChild1, // #2 = $src2
/*379970*/            OPC_MoveParent,
/*379971*/            OPC_RecordChild2, // #3 = $src0
/*379972*/            OPC_CheckType, MVT::v4f64,
/*379974*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379976*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rrk), 0,
                          MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermv:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                      // Dst: (VPERMPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*379986*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMILPV),// ->380023
/*379989*/            OPC_RecordChild0, // #1 = $src1
/*379990*/            OPC_RecordChild1, // #2 = $src2
/*379991*/            OPC_MoveParent,
/*379992*/            OPC_RecordChild2, // #3 = $src0
/*379993*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380008
/*379996*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379998*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VPERMILPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*380008*/            /*SwitchType*/ 12, MVT::v4f64,// ->380022
/*380010*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380012*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VPERMILPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*380022*/            0, // EndSwitchType
/*380023*/          /*SwitchOpcode*/ 105, TARGET_VAL(ISD::FMA),// ->380131
/*380026*/            OPC_RecordChild0, // #1 = $src2
/*380027*/            OPC_RecordChild1, // #2 = $src1
/*380028*/            OPC_RecordChild2, // #3 = $src3
/*380029*/            OPC_MoveParent,
/*380030*/            OPC_Scope, 32, /*->380064*/ // 3 children in Scope
/*380032*/              OPC_CheckChild2Same, 2,
/*380034*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380049
/*380037*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380039*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADD213PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380049*/              /*SwitchType*/ 12, MVT::v4f64,// ->380063
/*380051*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380053*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADD213PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380063*/              0, // EndSwitchType
/*380064*/            /*Scope*/ 32, /*->380097*/
/*380065*/              OPC_CheckChild2Same, 3,
/*380067*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380082
/*380070*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380072*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADD231PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380082*/              /*SwitchType*/ 12, MVT::v4f64,// ->380096
/*380084*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380086*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADD231PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380096*/              0, // EndSwitchType
/*380097*/            /*Scope*/ 32, /*->380130*/
/*380098*/              OPC_CheckChild2Same, 1,
/*380100*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380115
/*380103*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380105*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADD132PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380115*/              /*SwitchType*/ 12, MVT::v4f64,// ->380129
/*380117*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380119*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADD132PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380129*/              0, // EndSwitchType
/*380130*/            0, /*End of Scope*/
/*380131*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMSUB),// ->380239
/*380134*/            OPC_RecordChild0, // #1 = $src2
/*380135*/            OPC_RecordChild1, // #2 = $src1
/*380136*/            OPC_RecordChild2, // #3 = $src3
/*380137*/            OPC_MoveParent,
/*380138*/            OPC_Scope, 32, /*->380172*/ // 3 children in Scope
/*380140*/              OPC_CheckChild2Same, 2,
/*380142*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380157
/*380145*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380147*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB213PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380157*/              /*SwitchType*/ 12, MVT::v4f64,// ->380171
/*380159*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB213PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380171*/              0, // EndSwitchType
/*380172*/            /*Scope*/ 32, /*->380205*/
/*380173*/              OPC_CheckChild2Same, 3,
/*380175*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380190
/*380178*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380180*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB231PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380190*/              /*SwitchType*/ 12, MVT::v4f64,// ->380204
/*380192*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380194*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB231PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380204*/              0, // EndSwitchType
/*380205*/            /*Scope*/ 32, /*->380238*/
/*380206*/              OPC_CheckChild2Same, 1,
/*380208*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380223
/*380211*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380213*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB132PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380223*/              /*SwitchType*/ 12, MVT::v4f64,// ->380237
/*380225*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380227*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB132PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380237*/              0, // EndSwitchType
/*380238*/            0, /*End of Scope*/
/*380239*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMADDSUB),// ->380347
/*380242*/            OPC_RecordChild0, // #1 = $src2
/*380243*/            OPC_RecordChild1, // #2 = $src1
/*380244*/            OPC_RecordChild2, // #3 = $src3
/*380245*/            OPC_MoveParent,
/*380246*/            OPC_Scope, 32, /*->380280*/ // 3 children in Scope
/*380248*/              OPC_CheckChild2Same, 2,
/*380250*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380265
/*380253*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380255*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB213PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380265*/              /*SwitchType*/ 12, MVT::v4f64,// ->380279
/*380267*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380269*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB213PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380279*/              0, // EndSwitchType
/*380280*/            /*Scope*/ 32, /*->380313*/
/*380281*/              OPC_CheckChild2Same, 3,
/*380283*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380298
/*380286*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380288*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB231PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380298*/              /*SwitchType*/ 12, MVT::v4f64,// ->380312
/*380300*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380302*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB231PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380312*/              0, // EndSwitchType
/*380313*/            /*Scope*/ 32, /*->380346*/
/*380314*/              OPC_CheckChild2Same, 1,
/*380316*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380331
/*380319*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380321*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB132PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380331*/              /*SwitchType*/ 12, MVT::v4f64,// ->380345
/*380333*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380335*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB132PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380345*/              0, // EndSwitchType
/*380346*/            0, /*End of Scope*/
/*380347*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMSUBADD),// ->380455
/*380350*/            OPC_RecordChild0, // #1 = $src2
/*380351*/            OPC_RecordChild1, // #2 = $src1
/*380352*/            OPC_RecordChild2, // #3 = $src3
/*380353*/            OPC_MoveParent,
/*380354*/            OPC_Scope, 32, /*->380388*/ // 3 children in Scope
/*380356*/              OPC_CheckChild2Same, 2,
/*380358*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380373
/*380361*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380363*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD213PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380373*/              /*SwitchType*/ 12, MVT::v4f64,// ->380387
/*380375*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380377*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD213PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380387*/              0, // EndSwitchType
/*380388*/            /*Scope*/ 32, /*->380421*/
/*380389*/              OPC_CheckChild2Same, 3,
/*380391*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380406
/*380394*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380396*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD231PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380406*/              /*SwitchType*/ 12, MVT::v4f64,// ->380420
/*380408*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380410*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD231PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380420*/              0, // EndSwitchType
/*380421*/            /*Scope*/ 32, /*->380454*/
/*380422*/              OPC_CheckChild2Same, 1,
/*380424*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380439
/*380427*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380429*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD132PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380439*/              /*SwitchType*/ 12, MVT::v4f64,// ->380453
/*380441*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380443*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD132PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380453*/              0, // EndSwitchType
/*380454*/            0, /*End of Scope*/
/*380455*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FNMADD),// ->380563
/*380458*/            OPC_RecordChild0, // #1 = $src2
/*380459*/            OPC_RecordChild1, // #2 = $src1
/*380460*/            OPC_RecordChild2, // #3 = $src3
/*380461*/            OPC_MoveParent,
/*380462*/            OPC_Scope, 32, /*->380496*/ // 3 children in Scope
/*380464*/              OPC_CheckChild2Same, 2,
/*380466*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380481
/*380469*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380471*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD213PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380481*/              /*SwitchType*/ 12, MVT::v4f64,// ->380495
/*380483*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380485*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD213PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380495*/              0, // EndSwitchType
/*380496*/            /*Scope*/ 32, /*->380529*/
/*380497*/              OPC_CheckChild2Same, 3,
/*380499*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380514
/*380502*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380504*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD231PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380514*/              /*SwitchType*/ 12, MVT::v4f64,// ->380528
/*380516*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380518*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD231PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380528*/              0, // EndSwitchType
/*380529*/            /*Scope*/ 32, /*->380562*/
/*380530*/              OPC_CheckChild2Same, 1,
/*380532*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380547
/*380535*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380537*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD132PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380547*/              /*SwitchType*/ 12, MVT::v4f64,// ->380561
/*380549*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380551*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD132PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380561*/              0, // EndSwitchType
/*380562*/            0, /*End of Scope*/
/*380563*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FNMSUB),// ->380671
/*380566*/            OPC_RecordChild0, // #1 = $src2
/*380567*/            OPC_RecordChild1, // #2 = $src1
/*380568*/            OPC_RecordChild2, // #3 = $src3
/*380569*/            OPC_MoveParent,
/*380570*/            OPC_Scope, 32, /*->380604*/ // 3 children in Scope
/*380572*/              OPC_CheckChild2Same, 2,
/*380574*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380589
/*380577*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380579*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB213PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380589*/              /*SwitchType*/ 12, MVT::v4f64,// ->380603
/*380591*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380593*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB213PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380603*/              0, // EndSwitchType
/*380604*/            /*Scope*/ 32, /*->380637*/
/*380605*/              OPC_CheckChild2Same, 3,
/*380607*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380622
/*380610*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380612*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB231PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380622*/              /*SwitchType*/ 12, MVT::v4f64,// ->380636
/*380624*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380626*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB231PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380636*/              0, // EndSwitchType
/*380637*/            /*Scope*/ 32, /*->380670*/
/*380638*/              OPC_CheckChild2Same, 1,
/*380640*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->380655
/*380643*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380645*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ128rk), 0,
                              MVT::v4f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB132PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*380655*/              /*SwitchType*/ 12, MVT::v4f64,// ->380669
/*380657*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380659*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZ256rk), 0,
                              MVT::v4f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Fnmsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB132PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*380669*/              0, // EndSwitchType
/*380670*/            0, /*End of Scope*/
/*380671*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::VFPROUND),// ->380690
/*380674*/            OPC_RecordChild0, // #1 = $src
/*380675*/            OPC_MoveParent,
/*380676*/            OPC_RecordChild2, // #2 = $src0
/*380677*/            OPC_CheckType, MVT::v4f32,
/*380679*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380681*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rrk), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86vfpround:{ *:[v4f32] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPD2PSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*380690*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::FP_ROUND),// ->380709
/*380693*/            OPC_RecordChild0, // #1 = $src
/*380694*/            OPC_MoveParent,
/*380695*/            OPC_RecordChild2, // #2 = $src0
/*380696*/            OPC_CheckType, MVT::v4f32,
/*380698*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380700*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rrk), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fpround:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPD2PSZ256rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*380709*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::FP_EXTEND),// ->380728
/*380712*/            OPC_RecordChild0, // #1 = $src
/*380713*/            OPC_MoveParent,
/*380714*/            OPC_RecordChild2, // #2 = $src0
/*380715*/            OPC_CheckType, MVT::v4f64,
/*380717*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380719*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rrk), 0,
                          MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fpextend:{ *:[v4f64] } VR128X:{ *:[v4f32] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTPS2PDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*380728*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::SINT_TO_FP),// ->380800
/*380731*/            OPC_RecordChild0, // #1 = $src
/*380732*/            OPC_Scope, 32, /*->380766*/ // 2 children in Scope
/*380734*/              OPC_CheckChild0Type, MVT::v4i32,
/*380736*/              OPC_MoveParent,
/*380737*/              OPC_RecordChild2, // #2 = $src0
/*380738*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->380752
/*380741*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380743*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rrk), 0,
                              MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTDQ2PDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*380752*/              /*SwitchType*/ 11, MVT::v4f32,// ->380765
/*380754*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380756*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rrk), 0,
                              MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTDQ2PSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*380765*/              0, // EndSwitchType
/*380766*/            /*Scope*/ 32, /*->380799*/
/*380767*/              OPC_CheckChild0Type, MVT::v4i64,
/*380769*/              OPC_MoveParent,
/*380770*/              OPC_RecordChild2, // #2 = $src0
/*380771*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->380785
/*380774*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*380776*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rrk), 0,
                              MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTQQ2PDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*380785*/              /*SwitchType*/ 11, MVT::v4f32,// ->380798
/*380787*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*380789*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rrk), 0,
                              MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (sint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTQQ2PSZ256rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*380798*/              0, // EndSwitchType
/*380799*/            0, /*End of Scope*/
/*380800*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::UINT_TO_FP),// ->380872
/*380803*/            OPC_RecordChild0, // #1 = $src
/*380804*/            OPC_Scope, 32, /*->380838*/ // 2 children in Scope
/*380806*/              OPC_CheckChild0Type, MVT::v4i32,
/*380808*/              OPC_MoveParent,
/*380809*/              OPC_RecordChild2, // #2 = $src0
/*380810*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->380824
/*380813*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380815*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rrk), 0,
                              MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTUDQ2PDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*380824*/              /*SwitchType*/ 11, MVT::v4f32,// ->380837
/*380826*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380828*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rrk), 0,
                              MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTUDQ2PSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*380837*/              0, // EndSwitchType
/*380838*/            /*Scope*/ 32, /*->380871*/
/*380839*/              OPC_CheckChild0Type, MVT::v4i64,
/*380841*/              OPC_MoveParent,
/*380842*/              OPC_RecordChild2, // #2 = $src0
/*380843*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->380857
/*380846*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*380848*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rrk), 0,
                              MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTUQQ2PDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*380857*/              /*SwitchType*/ 11, MVT::v4f32,// ->380870
/*380859*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*380861*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rrk), 0,
                              MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (uint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTUQQ2PSZ256rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*380870*/              0, // EndSwitchType
/*380871*/            0, /*End of Scope*/
/*380872*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTSI2P),// ->380893
/*380875*/            OPC_RecordChild0, // #1 = $src
/*380876*/            OPC_CheckChild0Type, MVT::v2i64,
/*380878*/            OPC_MoveParent,
/*380879*/            OPC_RecordChild2, // #2 = $src0
/*380880*/            OPC_CheckType, MVT::v4f32,
/*380882*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*380884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rrk), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VSintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTQQ2PSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*380893*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTUI2P),// ->380914
/*380896*/            OPC_RecordChild0, // #1 = $src
/*380897*/            OPC_CheckChild0Type, MVT::v2i64,
/*380899*/            OPC_MoveParent,
/*380900*/            OPC_RecordChild2, // #2 = $src0
/*380901*/            OPC_CheckType, MVT::v4f32,
/*380903*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*380905*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rrk), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VUintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTUQQ2PSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*380914*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTPH2PS),// ->380935
/*380917*/            OPC_RecordChild0, // #1 = $src
/*380918*/            OPC_CheckChild0Type, MVT::v8i16,
/*380920*/            OPC_MoveParent,
/*380921*/            OPC_RecordChild2, // #2 = $src0
/*380922*/            OPC_CheckType, MVT::v4f32,
/*380924*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380926*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ128rrk), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtph2ps:{ *:[v4f32] } VR128X:{ *:[v8i16] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPH2PSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*380935*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RSQRT14),// ->380969
/*380938*/            OPC_RecordChild0, // #1 = $src
/*380939*/            OPC_MoveParent,
/*380940*/            OPC_RecordChild2, // #2 = $src0
/*380941*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->380955
/*380944*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380946*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ128rk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VRSQRT14PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*380955*/            /*SwitchType*/ 11, MVT::v4f64,// ->380968
/*380957*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380959*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ256rk), 0,
                            MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VRSQRT14PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*380968*/            0, // EndSwitchType
/*380969*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RCP14),// ->381003
/*380972*/            OPC_RecordChild0, // #1 = $src
/*380973*/            OPC_MoveParent,
/*380974*/            OPC_RecordChild2, // #2 = $src0
/*380975*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->380989
/*380978*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380980*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ128rk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VRCP14PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*380989*/            /*SwitchType*/ 11, MVT::v4f64,// ->381002
/*380991*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*380993*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ256rk), 0,
                            MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VRCP14PDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*381002*/            0, // EndSwitchType
/*381003*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::FSQRT),// ->381037
/*381006*/            OPC_RecordChild0, // #1 = $src
/*381007*/            OPC_MoveParent,
/*381008*/            OPC_RecordChild2, // #2 = $src0
/*381009*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->381023
/*381012*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381014*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128rk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VSQRTPSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*381023*/            /*SwitchType*/ 11, MVT::v4f64,// ->381036
/*381025*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381027*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256rk), 0,
                            MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VSQRTPDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*381036*/            0, // EndSwitchType
/*381037*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::COMPRESS),// ->381071
/*381040*/            OPC_RecordChild0, // #1 = $src1
/*381041*/            OPC_MoveParent,
/*381042*/            OPC_RecordChild2, // #2 = $src0
/*381043*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->381057
/*381046*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381048*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZ128rrk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86compress:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VCOMPRESSPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1)
/*381057*/            /*SwitchType*/ 11, MVT::v4f64,// ->381070
/*381059*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381061*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZ256rrk), 0,
                            MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86compress:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VCOMPRESSPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1)
/*381070*/            0, // EndSwitchType
/*381071*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::EXPAND),// ->381105
/*381074*/            OPC_RecordChild0, // #1 = $src1
/*381075*/            OPC_MoveParent,
/*381076*/            OPC_RecordChild2, // #2 = $src0
/*381077*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->381091
/*381080*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381082*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rrk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VEXPANDPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1)
/*381091*/            /*SwitchType*/ 11, MVT::v4f64,// ->381104
/*381093*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381095*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rrk), 0,
                            MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86expand:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VEXPANDPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1)
/*381104*/            0, // EndSwitchType
/*381105*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FFLOOR),// ->381147
/*381108*/            OPC_RecordChild0, // #1 = $src
/*381109*/            OPC_MoveParent,
/*381110*/            OPC_RecordChild2, // #2 = $dst
/*381111*/            OPC_SwitchType /*2 cases */, 15, MVT::v4f64,// ->381129
/*381114*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381116*/              OPC_EmitInteger, MVT::i32, 9, 
/*381119*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrik), 0,
                            MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4f64] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, 9:{ *:[i32] })
/*381129*/            /*SwitchType*/ 15, MVT::v4f32,// ->381146
/*381131*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381133*/              OPC_EmitInteger, MVT::i32, 9, 
/*381136*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrik), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ffloor:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4f32] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, 9:{ *:[i32] })
/*381146*/            0, // EndSwitchType
/*381147*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FNEARBYINT),// ->381189
/*381150*/            OPC_RecordChild0, // #1 = $src
/*381151*/            OPC_MoveParent,
/*381152*/            OPC_RecordChild2, // #2 = $dst
/*381153*/            OPC_SwitchType /*2 cases */, 15, MVT::v4f64,// ->381171
/*381156*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381158*/              OPC_EmitInteger, MVT::i32, 12, 
/*381161*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrik), 0,
                            MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4f64] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, 12:{ *:[i32] })
/*381171*/            /*SwitchType*/ 15, MVT::v4f32,// ->381188
/*381173*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381175*/              OPC_EmitInteger, MVT::i32, 12, 
/*381178*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrik), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fnearbyint:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4f32] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, 12:{ *:[i32] })
/*381188*/            0, // EndSwitchType
/*381189*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FCEIL),// ->381231
/*381192*/            OPC_RecordChild0, // #1 = $src
/*381193*/            OPC_MoveParent,
/*381194*/            OPC_RecordChild2, // #2 = $dst
/*381195*/            OPC_SwitchType /*2 cases */, 15, MVT::v4f64,// ->381213
/*381198*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381200*/              OPC_EmitInteger, MVT::i32, 10, 
/*381203*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrik), 0,
                            MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4f64] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, 10:{ *:[i32] })
/*381213*/            /*SwitchType*/ 15, MVT::v4f32,// ->381230
/*381215*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381217*/              OPC_EmitInteger, MVT::i32, 10, 
/*381220*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrik), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fceil:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4f32] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, 10:{ *:[i32] })
/*381230*/            0, // EndSwitchType
/*381231*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FRINT),// ->381273
/*381234*/            OPC_RecordChild0, // #1 = $src
/*381235*/            OPC_MoveParent,
/*381236*/            OPC_RecordChild2, // #2 = $dst
/*381237*/            OPC_SwitchType /*2 cases */, 15, MVT::v4f64,// ->381255
/*381240*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381242*/              OPC_EmitInteger, MVT::i32, 4, 
/*381245*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrik), 0,
                            MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4f64] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, 4:{ *:[i32] })
/*381255*/            /*SwitchType*/ 15, MVT::v4f32,// ->381272
/*381257*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381259*/              OPC_EmitInteger, MVT::i32, 4, 
/*381262*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrik), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (frint:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4f32] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] })
/*381272*/            0, // EndSwitchType
/*381273*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FTRUNC),// ->381315
/*381276*/            OPC_RecordChild0, // #1 = $src
/*381277*/            OPC_MoveParent,
/*381278*/            OPC_RecordChild2, // #2 = $dst
/*381279*/            OPC_SwitchType /*2 cases */, 15, MVT::v4f64,// ->381297
/*381282*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381284*/              OPC_EmitInteger, MVT::i32, 11, 
/*381287*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrik), 0,
                            MVT::v4f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4f64] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, 11:{ *:[i32] })
/*381297*/            /*SwitchType*/ 15, MVT::v4f32,// ->381314
/*381299*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381301*/              OPC_EmitInteger, MVT::i32, 11, 
/*381304*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrik), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (ftrunc:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4f32] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, 11:{ *:[i32] })
/*381314*/            0, // EndSwitchType
/*381315*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSHDUP),// ->381334
/*381318*/            OPC_RecordChild0, // #1 = $src1
/*381319*/            OPC_MoveParent,
/*381320*/            OPC_RecordChild2, // #2 = $src0
/*381321*/            OPC_CheckType, MVT::v4f32,
/*381323*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381325*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ128rrk), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Movshdup:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VMOVSHDUPZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1)
/*381334*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSLDUP),// ->381353
/*381337*/            OPC_RecordChild0, // #1 = $src1
/*381338*/            OPC_MoveParent,
/*381339*/            OPC_RecordChild2, // #2 = $src0
/*381340*/            OPC_CheckType, MVT::v4f32,
/*381342*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381344*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ128rrk), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Movsldup:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VMOVSLDUPZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1)
/*381353*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVDDUP),// ->381372
/*381356*/            OPC_RecordChild0, // #1 = $src1
/*381357*/            OPC_MoveParent,
/*381358*/            OPC_RecordChild2, // #2 = $src0
/*381359*/            OPC_CheckType, MVT::v4f64,
/*381361*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381363*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ256rrk), 0,
                          MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Movddup:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                      // Dst: (VMOVDDUPZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1)
/*381372*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->381409
/*381375*/            OPC_RecordChild0, // #1 = $src1
/*381376*/            OPC_RecordChild1, // #2 = $src2
/*381377*/            OPC_MoveParent,
/*381378*/            OPC_RecordChild2, // #3 = $src0
/*381379*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->381394
/*381382*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381384*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VUNPCKHPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*381394*/            /*SwitchType*/ 12, MVT::v4f64,// ->381408
/*381396*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381398*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckh:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VUNPCKHPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*381408*/            0, // EndSwitchType
/*381409*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->381446
/*381412*/            OPC_RecordChild0, // #1 = $src1
/*381413*/            OPC_RecordChild1, // #2 = $src2
/*381414*/            OPC_MoveParent,
/*381415*/            OPC_RecordChild2, // #3 = $src0
/*381416*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->381431
/*381419*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381421*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ128rrk), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VUNPCKLPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*381431*/            /*SwitchType*/ 12, MVT::v4f64,// ->381445
/*381433*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381435*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ256rrk), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Unpckl:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VUNPCKLPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*381445*/            0, // EndSwitchType
/*381446*/          0, // EndSwitchOpcode
/*381447*/        /*Scope*/ 48|128,1/*176*/, /*->381625*/
/*381449*/          OPC_RecordChild1, // #1 = $src1
/*381450*/          OPC_RecordChild2, // #2 = $src0
/*381451*/          OPC_SwitchType /*2 cases */, 84, MVT::v4f32,// ->381538
/*381454*/            OPC_Scope, 11, /*->381467*/ // 2 children in Scope
/*381456*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381458*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rrk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src0) - Complexity = 3
                        // Dst: (VMOVAPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1)
/*381467*/            /*Scope*/ 69, /*->381537*/
/*381468*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*381470*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16f32, 0/*#Ops*/,  // Results = #3
/*381476*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*381479*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16f32, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*381488*/              OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*381491*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*381499*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16f32, 0/*#Ops*/,  // Results = #8
/*381505*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*381508*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16f32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*381517*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZrrk), 0,
                            MVT::v16f32, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*381526*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*381529*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f32, 2/*#Ops*/, 11, 12, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src0) - Complexity = 3
                        // Dst: (EXTRACT_SUBREG:{ *:[v4f32] } (VMOVAPSZrrk:{ *:[v16f32] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src0, sub_xmm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4WM:{ *:[v4i1] }:$mask, VK16WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*381537*/            0, /*End of Scope*/
/*381538*/          /*SwitchType*/ 84, MVT::v4f64,// ->381624
/*381540*/            OPC_Scope, 11, /*->381553*/ // 2 children in Scope
/*381542*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381544*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rrk), 0,
                            MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src0) - Complexity = 3
                        // Dst: (VMOVAPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1)
/*381553*/            /*Scope*/ 69, /*->381623*/
/*381554*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*381556*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8f64, 0/*#Ops*/,  // Results = #3
/*381562*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*381565*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8f64, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*381574*/              OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*381577*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*381585*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8f64, 0/*#Ops*/,  // Results = #8
/*381591*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*381594*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8f64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*381603*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZrrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*381612*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*381615*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f64, 2/*#Ops*/, 11, 12, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src0) - Complexity = 3
                        // Dst: (EXTRACT_SUBREG:{ *:[v4f64] } (VMOVAPDZrrk:{ *:[v8f64] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src0, sub_ymm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v8i1] } VK4WM:{ *:[v4i1] }:$mask, VK8WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*381623*/            0, /*End of Scope*/
/*381624*/          0, // EndSwitchType
/*381625*/        0, /*End of Scope*/
/*381626*/      /*Scope*/ 76|128,124|128,2/*48716*/, /*->430345*/
/*381629*/        OPC_CheckChild0Type, MVT::v8i1,
/*381631*/        OPC_Scope, 102, /*->381735*/ // 20 children in Scope
/*381633*/          OPC_MoveChild1,
/*381634*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*381637*/          OPC_MoveChild0,
/*381638*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*381641*/          OPC_RecordChild0, // #1 = $src
/*381642*/          OPC_CheckChild1Integer, 0, 
/*381644*/          OPC_CheckChild1Type, MVT::iPTR,
/*381646*/          OPC_SwitchType /*3 cases */, 27, MVT::v4i64,// ->381676
/*381649*/            OPC_MoveParent,
/*381650*/            OPC_MoveParent,
/*381651*/            OPC_RecordChild2, // #2 = $src0
/*381652*/            OPC_CheckType, MVT::v8i32,
/*381654*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381656*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*381659*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i64, 2/*#Ops*/, 1, 3,  // Results = #4
/*381667*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rrk), 0,
                          MVT::v8i32, 3/*#Ops*/, 2, 0, 4, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] })), VR256X:{ *:[v8i32] }:$src0) - Complexity = 14
                      // Dst: (VMOVDQA32Z256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, sub_ymm:{ *:[i32] }))
/*381676*/          /*SwitchType*/ 27, MVT::v16i16,// ->381705
/*381678*/            OPC_MoveParent,
/*381679*/            OPC_MoveParent,
/*381680*/            OPC_RecordChild2, // #2 = $src0
/*381681*/            OPC_CheckType, MVT::v8i32,
/*381683*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381685*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*381688*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i16, 2/*#Ops*/, 1, 3,  // Results = #4
/*381696*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rrk), 0,
                          MVT::v8i32, 3/*#Ops*/, 2, 0, 4, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] })), VR256X:{ *:[v8i32] }:$src0) - Complexity = 14
                      // Dst: (VMOVDQA32Z256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, sub_ymm:{ *:[i32] }))
/*381705*/          /*SwitchType*/ 27, MVT::v32i8,// ->381734
/*381707*/            OPC_MoveParent,
/*381708*/            OPC_MoveParent,
/*381709*/            OPC_RecordChild2, // #2 = $src0
/*381710*/            OPC_CheckType, MVT::v8i32,
/*381712*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381714*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*381717*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v32i8, 2/*#Ops*/, 1, 3,  // Results = #4
/*381725*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rrk), 0,
                          MVT::v8i32, 3/*#Ops*/, 2, 0, 4, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] })), VR256X:{ *:[v8i32] }:$src0) - Complexity = 14
                      // Dst: (VMOVDQA32Z256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, sub_ymm:{ *:[i32] }))
/*381734*/          0, // EndSwitchType
/*381735*/        /*Scope*/ 76, /*->381812*/
/*381736*/          OPC_RecordChild1, // #1 = $src3
/*381737*/          OPC_MoveChild1,
/*381738*/          OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->381776
/*381742*/            OPC_RecordChild0, // #2 = $src1
/*381743*/            OPC_RecordChild1, // #3 = $src2
/*381744*/            OPC_MoveChild2,
/*381745*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*381748*/            OPC_CheckType, MVT::iPTR,
/*381750*/            OPC_MoveParent,
/*381751*/            OPC_MoveParent,
/*381752*/            OPC_MoveChild2,
/*381753*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*381756*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*381758*/            OPC_MoveParent,
/*381759*/            OPC_CheckType, MVT::v8i32,
/*381761*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*381763*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*381766*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rrkz), 0,
                          MVT::v8i32, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VINSERTI32x4Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*381776*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->381811
/*381779*/            OPC_RecordChild0, // #2 = $src1
/*381780*/            OPC_MoveChild1,
/*381781*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*381784*/            OPC_CheckType, MVT::iPTR,
/*381786*/            OPC_MoveParent,
/*381787*/            OPC_MoveParent,
/*381788*/            OPC_MoveChild2,
/*381789*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*381792*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*381794*/            OPC_MoveParent,
/*381795*/            OPC_CheckType, MVT::v8i32,
/*381797*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*381799*/            OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*381802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x8Zrrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VEXTRACTI32x8Zrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*381811*/          0, // EndSwitchOpcode
/*381812*/        /*Scope*/ 9|128,35/*4489*/, /*->386303*/
/*381814*/          OPC_MoveChild1,
/*381815*/          OPC_SwitchOpcode /*76 cases */, 59|128,1/*187*/, TARGET_VAL(X86ISD::VBROADCAST),// ->382007
/*381820*/            OPC_RecordChild0, // #1 = $src
/*381821*/            OPC_Scope, 29, /*->381852*/ // 6 children in Scope
/*381823*/              OPC_CheckChild0Type, MVT::i64,
/*381825*/              OPC_MoveParent,
/*381826*/              OPC_MoveChild2,
/*381827*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*381830*/              OPC_MoveChild0,
/*381831*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*381834*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*381836*/              OPC_CheckType, MVT::v16i32,
/*381838*/              OPC_MoveParent,
/*381839*/              OPC_MoveParent,
/*381840*/              OPC_CheckType, MVT::v8i64,
/*381842*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*381844*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i64] } GR64:{ *:[i64] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTQrZrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, GR64:{ *:[i64] }:$src)
/*381852*/            /*Scope*/ 29, /*->381882*/
/*381853*/              OPC_CheckChild0Type, MVT::v8i16,
/*381855*/              OPC_MoveParent,
/*381856*/              OPC_MoveChild2,
/*381857*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*381860*/              OPC_MoveChild0,
/*381861*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*381864*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*381866*/              OPC_CheckType, MVT::v4i32,
/*381868*/              OPC_MoveParent,
/*381869*/              OPC_MoveParent,
/*381870*/              OPC_CheckType, MVT::v8i16,
/*381872*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*381874*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128rkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTWZ128rkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*381882*/            /*Scope*/ 29, /*->381912*/
/*381883*/              OPC_CheckChild0Type, MVT::v2i64,
/*381885*/              OPC_MoveParent,
/*381886*/              OPC_MoveChild2,
/*381887*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*381890*/              OPC_MoveChild0,
/*381891*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*381894*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*381896*/              OPC_CheckType, MVT::v16i32,
/*381898*/              OPC_MoveParent,
/*381899*/              OPC_MoveParent,
/*381900*/              OPC_CheckType, MVT::v8i64,
/*381902*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*381904*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i64] } VR128X:{ *:[v2i64] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTQZrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*381912*/            /*Scope*/ 47, /*->381960*/
/*381913*/              OPC_CheckChild0Type, MVT::i16,
/*381915*/              OPC_MoveParent,
/*381916*/              OPC_MoveChild2,
/*381917*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*381920*/              OPC_MoveChild0,
/*381921*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*381924*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*381926*/              OPC_CheckType, MVT::v4i32,
/*381928*/              OPC_MoveParent,
/*381929*/              OPC_MoveParent,
/*381930*/              OPC_CheckType, MVT::v8i16,
/*381932*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*381934*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*381940*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*381943*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*381952*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZ128rkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i16] } GR16:{ *:[i16] }:$src), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTWrZ128rkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*381960*/            /*Scope*/ 22, /*->381983*/
/*381961*/              OPC_CheckChild0Type, MVT::i32,
/*381963*/              OPC_MoveParent,
/*381964*/              OPC_MoveChild2,
/*381965*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*381968*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*381970*/              OPC_MoveParent,
/*381971*/              OPC_CheckType, MVT::v8i32,
/*381973*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381975*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZ256rkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i32] } GR32:{ *:[i32] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPBROADCASTDrZ256rkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, GR32:{ *:[i32] }:$src)
/*381983*/            /*Scope*/ 22, /*->382006*/
/*381984*/              OPC_CheckChild0Type, MVT::v4i32,
/*381986*/              OPC_MoveParent,
/*381987*/              OPC_MoveChild2,
/*381988*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*381991*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*381993*/              OPC_MoveParent,
/*381994*/              OPC_CheckType, MVT::v8i32,
/*381996*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381998*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256rkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i32] } VR128X:{ *:[v4i32] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPBROADCASTDZ256rkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*382006*/            0, /*End of Scope*/
/*382007*/          /*SwitchOpcode*/ 83|128,4/*595*/, TARGET_VAL(ISD::BITCAST),// ->382606
/*382011*/            OPC_Scope, 20|128,1/*148*/, /*->382162*/ // 3 children in Scope
/*382014*/              OPC_MoveChild0,
/*382015*/              OPC_SwitchOpcode /*5 cases */, 26, TARGET_VAL(X86ISD::VBROADCAST),// ->382045
/*382019*/                OPC_RecordChild0, // #1 = $src
/*382020*/                OPC_CheckChild0Type, MVT::v2i64,
/*382022*/                OPC_CheckType, MVT::v4i64,
/*382024*/                OPC_MoveParent,
/*382025*/                OPC_MoveParent,
/*382026*/                OPC_MoveChild2,
/*382027*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382030*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382032*/                OPC_MoveParent,
/*382033*/                OPC_CheckType, MVT::v8i32,
/*382035*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*382037*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z256rkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VBroadcast:{ *:[v4i64] } VR128X:{ *:[v2i64] }:$src)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VBROADCASTI32X2Z256rkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*382045*/              /*SwitchOpcode*/ 26, TARGET_VAL(ISD::AND),// ->382074
/*382048*/                OPC_RecordChild0, // #1 = $src1
/*382049*/                OPC_RecordChild1, // #2 = $src2
/*382050*/                OPC_CheckType, MVT::v4i64,
/*382052*/                OPC_MoveParent,
/*382053*/                OPC_MoveParent,
/*382054*/                OPC_MoveChild2,
/*382055*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382058*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382060*/                OPC_MoveParent,
/*382061*/                OPC_CheckType, MVT::v8i32,
/*382063*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382065*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrkz), 0,
                              MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPANDDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*382074*/              /*SwitchOpcode*/ 26, TARGET_VAL(ISD::OR),// ->382103
/*382077*/                OPC_RecordChild0, // #1 = $src1
/*382078*/                OPC_RecordChild1, // #2 = $src2
/*382079*/                OPC_CheckType, MVT::v4i64,
/*382081*/                OPC_MoveParent,
/*382082*/                OPC_MoveParent,
/*382083*/                OPC_MoveChild2,
/*382084*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382087*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382089*/                OPC_MoveParent,
/*382090*/                OPC_CheckType, MVT::v8i32,
/*382092*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382094*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrkz), 0,
                              MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPORDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*382103*/              /*SwitchOpcode*/ 26, TARGET_VAL(ISD::XOR),// ->382132
/*382106*/                OPC_RecordChild0, // #1 = $src1
/*382107*/                OPC_RecordChild1, // #2 = $src2
/*382108*/                OPC_CheckType, MVT::v4i64,
/*382110*/                OPC_MoveParent,
/*382111*/                OPC_MoveParent,
/*382112*/                OPC_MoveChild2,
/*382113*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382116*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382118*/                OPC_MoveParent,
/*382119*/                OPC_CheckType, MVT::v8i32,
/*382121*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382123*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrkz), 0,
                              MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPXORDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*382132*/              /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::ANDNP),// ->382161
/*382135*/                OPC_RecordChild0, // #1 = $src1
/*382136*/                OPC_RecordChild1, // #2 = $src2
/*382137*/                OPC_CheckType, MVT::v4i64,
/*382139*/                OPC_MoveParent,
/*382140*/                OPC_MoveParent,
/*382141*/                OPC_MoveChild2,
/*382142*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382145*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382147*/                OPC_MoveParent,
/*382148*/                OPC_CheckType, MVT::v8i32,
/*382150*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382152*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrkz), 0,
                              MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPANDNDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*382161*/              0, // EndSwitchOpcode
/*382162*/            /*Scope*/ 112|128,2/*368*/, /*->382532*/
/*382164*/              OPC_RecordChild0, // #1 = $ins
/*382165*/              OPC_MoveChild0,
/*382166*/              OPC_SwitchOpcode /*2 cases */, 25|128,2/*281*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->382452
/*382171*/                OPC_RecordChild0, // #2 = $src1
/*382172*/                OPC_RecordChild1, // #3 = $src2
/*382173*/                OPC_Scope, 78, /*->382253*/ // 7 children in Scope
/*382175*/                  OPC_MoveChild2,
/*382176*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*382179*/                  OPC_CheckType, MVT::iPTR,
/*382181*/                  OPC_MoveParent,
/*382182*/                  OPC_SwitchType /*3 cases */, 21, MVT::v4i64,// ->382206
/*382185*/                    OPC_MoveParent,
/*382186*/                    OPC_MoveParent,
/*382187*/                    OPC_RecordChild2, // #4 = $src0
/*382188*/                    OPC_CheckType, MVT::v8i32,
/*382190*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*382192*/                    OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*382195*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rrk), 0,
                                  MVT::v8i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                              // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v8i32] }:$src0) - Complexity = 12
                              // Dst: (VINSERTI32x4Z256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ins))
/*382206*/                  /*SwitchType*/ 21, MVT::v16i16,// ->382229
/*382208*/                    OPC_MoveParent,
/*382209*/                    OPC_MoveParent,
/*382210*/                    OPC_RecordChild2, // #4 = $src0
/*382211*/                    OPC_CheckType, MVT::v8i32,
/*382213*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*382215*/                    OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*382218*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rrk), 0,
                                  MVT::v8i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                              // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v8i32] }:$src0) - Complexity = 12
                              // Dst: (VINSERTI32x4Z256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*382229*/                  /*SwitchType*/ 21, MVT::v32i8,// ->382252
/*382231*/                    OPC_MoveParent,
/*382232*/                    OPC_MoveParent,
/*382233*/                    OPC_RecordChild2, // #4 = $src0
/*382234*/                    OPC_CheckType, MVT::v8i32,
/*382236*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*382238*/                    OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*382241*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rrk), 0,
                                  MVT::v8i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                              // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (insert_subvector:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v8i32] }:$src0) - Complexity = 12
                              // Dst: (VINSERTI32x4Z256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*382252*/                  0, // EndSwitchType
/*382253*/                /*Scope*/ 32, /*->382286*/
/*382254*/                  OPC_CheckChild1Type, MVT::v4i32,
/*382256*/                  OPC_MoveChild2,
/*382257*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*382260*/                  OPC_CheckType, MVT::iPTR,
/*382262*/                  OPC_MoveParent,
/*382263*/                  OPC_CheckType, MVT::v16i32,
/*382265*/                  OPC_MoveParent,
/*382266*/                  OPC_MoveParent,
/*382267*/                  OPC_RecordChild2, // #4 = $src0
/*382268*/                  OPC_CheckType, MVT::v8i64,
/*382270*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*382272*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*382275*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrrk), 0,
                                MVT::v8i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 12
                            // Dst: (VINSERTI64x2Zrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*382286*/                /*Scope*/ 32, /*->382319*/
/*382287*/                  OPC_CheckChild1Type, MVT::v8i16,
/*382289*/                  OPC_MoveChild2,
/*382290*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*382293*/                  OPC_CheckType, MVT::iPTR,
/*382295*/                  OPC_MoveParent,
/*382296*/                  OPC_CheckType, MVT::v32i16,
/*382298*/                  OPC_MoveParent,
/*382299*/                  OPC_MoveParent,
/*382300*/                  OPC_RecordChild2, // #4 = $src0
/*382301*/                  OPC_CheckType, MVT::v8i64,
/*382303*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*382305*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*382308*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrrk), 0,
                                MVT::v8i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 12
                            // Dst: (VINSERTI64x2Zrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*382319*/                /*Scope*/ 32, /*->382352*/
/*382320*/                  OPC_CheckChild1Type, MVT::v16i8,
/*382322*/                  OPC_MoveChild2,
/*382323*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*382326*/                  OPC_CheckType, MVT::iPTR,
/*382328*/                  OPC_MoveParent,
/*382329*/                  OPC_CheckType, MVT::v64i8,
/*382331*/                  OPC_MoveParent,
/*382332*/                  OPC_MoveParent,
/*382333*/                  OPC_RecordChild2, // #4 = $src0
/*382334*/                  OPC_CheckType, MVT::v8i64,
/*382336*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*382338*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*382341*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrrk), 0,
                                MVT::v8i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 12
                            // Dst: (VINSERTI64x2Zrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*382352*/                /*Scope*/ 32, /*->382385*/
/*382353*/                  OPC_CheckChild1Type, MVT::v8i32,
/*382355*/                  OPC_MoveChild2,
/*382356*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*382359*/                  OPC_CheckType, MVT::iPTR,
/*382361*/                  OPC_MoveParent,
/*382362*/                  OPC_CheckType, MVT::v16i32,
/*382364*/                  OPC_MoveParent,
/*382365*/                  OPC_MoveParent,
/*382366*/                  OPC_RecordChild2, // #4 = $src0
/*382367*/                  OPC_CheckType, MVT::v8i64,
/*382369*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*382371*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*382374*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrrk), 0,
                                MVT::v8i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 12
                            // Dst: (VINSERTI64x4Zrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*382385*/                /*Scope*/ 32, /*->382418*/
/*382386*/                  OPC_CheckChild1Type, MVT::v16i16,
/*382388*/                  OPC_MoveChild2,
/*382389*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*382392*/                  OPC_CheckType, MVT::iPTR,
/*382394*/                  OPC_MoveParent,
/*382395*/                  OPC_CheckType, MVT::v32i16,
/*382397*/                  OPC_MoveParent,
/*382398*/                  OPC_MoveParent,
/*382399*/                  OPC_RecordChild2, // #4 = $src0
/*382400*/                  OPC_CheckType, MVT::v8i64,
/*382402*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*382404*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*382407*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrrk), 0,
                                MVT::v8i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 12
                            // Dst: (VINSERTI64x4Zrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*382418*/                /*Scope*/ 32, /*->382451*/
/*382419*/                  OPC_CheckChild1Type, MVT::v32i8,
/*382421*/                  OPC_MoveChild2,
/*382422*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*382425*/                  OPC_CheckType, MVT::iPTR,
/*382427*/                  OPC_MoveParent,
/*382428*/                  OPC_CheckType, MVT::v64i8,
/*382430*/                  OPC_MoveParent,
/*382431*/                  OPC_MoveParent,
/*382432*/                  OPC_RecordChild2, // #4 = $src0
/*382433*/                  OPC_CheckType, MVT::v8i64,
/*382435*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*382437*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*382440*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrrk), 0,
                                MVT::v8i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 12
                            // Dst: (VINSERTI64x4Zrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*382451*/                0, /*End of Scope*/
/*382452*/              /*SwitchOpcode*/ 76, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->382531
/*382455*/                OPC_RecordChild0, // #2 = $src
/*382456*/                OPC_MoveChild1,
/*382457*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*382460*/                OPC_CheckType, MVT::iPTR,
/*382462*/                OPC_MoveParent,
/*382463*/                OPC_SwitchType /*3 cases */, 20, MVT::v4i64,// ->382486
/*382466*/                  OPC_MoveParent,
/*382467*/                  OPC_MoveParent,
/*382468*/                  OPC_RecordChild2, // #3 = $src0
/*382469*/                  OPC_CheckType, MVT::v8i32,
/*382471*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*382473*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*382476*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x8Zrrk), 0,
                                MVT::v8i32, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v8i32] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTI32x8Zrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ext))
/*382486*/                /*SwitchType*/ 20, MVT::v16i16,// ->382508
/*382488*/                  OPC_MoveParent,
/*382489*/                  OPC_MoveParent,
/*382490*/                  OPC_RecordChild2, // #3 = $src0
/*382491*/                  OPC_CheckType, MVT::v8i32,
/*382493*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*382495*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*382498*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x8Zrrk), 0,
                                MVT::v8i32, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v8i32] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTI32x8Zrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/*382508*/                /*SwitchType*/ 20, MVT::v32i8,// ->382530
/*382510*/                  OPC_MoveParent,
/*382511*/                  OPC_MoveParent,
/*382512*/                  OPC_RecordChild2, // #3 = $src0
/*382513*/                  OPC_CheckType, MVT::v8i32,
/*382515*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*382517*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*382520*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x8Zrrk), 0,
                                MVT::v8i32, 4/*#Ops*/, 3, 0, 2, 4, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v8i32] }:$src0) - Complexity = 12
                            // Dst: (VEXTRACTI32x8Zrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/*382530*/                0, // EndSwitchType
/*382531*/              0, // EndSwitchOpcode
/*382532*/            /*Scope*/ 72, /*->382605*/
/*382533*/              OPC_MoveChild0,
/*382534*/              OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(X86ISD::SHUF128),// ->382568
/*382538*/                OPC_RecordChild0, // #1 = $src1
/*382539*/                OPC_RecordChild1, // #2 = $src2
/*382540*/                OPC_RecordChild2, // #3 = $src3
/*382541*/                OPC_MoveChild2,
/*382542*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*382545*/                OPC_MoveParent,
/*382546*/                OPC_CheckType, MVT::v4i64,
/*382548*/                OPC_MoveParent,
/*382549*/                OPC_MoveParent,
/*382550*/                OPC_RecordChild2, // #4 = $src0
/*382551*/                OPC_CheckType, MVT::v8i32,
/*382553*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382555*/                OPC_EmitConvertToTarget, 3,
/*382557*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rrik), 0,
                              MVT::v8i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 12
                          // Dst: (VSHUFI32X4Z256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*382568*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VALIGN),// ->382604
/*382571*/                OPC_RecordChild0, // #1 = $src1
/*382572*/                OPC_RecordChild1, // #2 = $src2
/*382573*/                OPC_RecordChild2, // #3 = $src3
/*382574*/                OPC_MoveChild2,
/*382575*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*382578*/                OPC_MoveParent,
/*382579*/                OPC_CheckType, MVT::v4i64,
/*382581*/                OPC_MoveParent,
/*382582*/                OPC_MoveParent,
/*382583*/                OPC_RecordChild2, // #4 = $src0
/*382584*/                OPC_CheckType, MVT::v8i32,
/*382586*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*382588*/                OPC_EmitConvertToTarget, 3,
/*382590*/                OPC_EmitNodeXForm, 14, 5, // ValignqImm32XForm
/*382593*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rrik), 0,
                              MVT::v8i32, 5/*#Ops*/, 4, 0, 1, 2, 6, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 12
                          // Dst: (VALIGNDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*382604*/              0, // EndSwitchOpcode
/*382605*/            0, /*End of Scope*/
/*382606*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VPERMV3),// ->382683
/*382609*/            OPC_RecordChild0, // #1 = $src1
/*382610*/            OPC_RecordChild1, // #2 = $src2
/*382611*/            OPC_RecordChild2, // #3 = $src3
/*382612*/            OPC_MoveParent,
/*382613*/            OPC_MoveChild2,
/*382614*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->382662
/*382618*/              OPC_MoveChild0,
/*382619*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382622*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382624*/              OPC_SwitchType /*2 cases */, 16, MVT::v16i32,// ->382643
/*382627*/                OPC_MoveParent,
/*382628*/                OPC_MoveParent,
/*382629*/                OPC_CheckType, MVT::v8i64,
/*382631*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*382633*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Qrrkz), 0,
                              MVT::v8i64, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPERMT2Qrrkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*382643*/              /*SwitchType*/ 16, MVT::v4i32,// ->382661
/*382645*/                OPC_MoveParent,
/*382646*/                OPC_MoveParent,
/*382647*/                OPC_CheckType, MVT::v8i16,
/*382649*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*382651*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W128rrkz), 0,
                              MVT::v8i16, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPERMT2W128rrkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*382661*/              0, // EndSwitchType
/*382662*/            /*SwitchOpcode*/ 17, TARGET_VAL(ISD::BUILD_VECTOR),// ->382682
/*382665*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382667*/              OPC_MoveParent,
/*382668*/              OPC_CheckType, MVT::v8i32,
/*382670*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*382672*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D256rrkz), 0,
                            MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPERMT2D256rrkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*382682*/            0, // EndSwitchOpcode
/*382683*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::ADD),// ->382735
/*382686*/            OPC_RecordChild0, // #1 = $src1
/*382687*/            OPC_RecordChild1, // #2 = $src2
/*382688*/            OPC_MoveParent,
/*382689*/            OPC_MoveChild2,
/*382690*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*382693*/            OPC_MoveChild0,
/*382694*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382697*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382699*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->382717
/*382702*/              OPC_MoveParent,
/*382703*/              OPC_MoveParent,
/*382704*/              OPC_CheckType, MVT::v8i64,
/*382706*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*382708*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*382717*/            /*SwitchType*/ 15, MVT::v4i32,// ->382734
/*382719*/              OPC_MoveParent,
/*382720*/              OPC_MoveParent,
/*382721*/              OPC_CheckType, MVT::v8i16,
/*382723*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*382725*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*382734*/            0, // EndSwitchType
/*382735*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::SUB),// ->382787
/*382738*/            OPC_RecordChild0, // #1 = $src1
/*382739*/            OPC_RecordChild1, // #2 = $src2
/*382740*/            OPC_MoveParent,
/*382741*/            OPC_MoveChild2,
/*382742*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*382745*/            OPC_MoveChild0,
/*382746*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382749*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382751*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->382769
/*382754*/              OPC_MoveParent,
/*382755*/              OPC_MoveParent,
/*382756*/              OPC_CheckType, MVT::v8i64,
/*382758*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*382760*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*382769*/            /*SwitchType*/ 15, MVT::v4i32,// ->382786
/*382771*/              OPC_MoveParent,
/*382772*/              OPC_MoveParent,
/*382773*/              OPC_CheckType, MVT::v8i16,
/*382775*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*382777*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*382786*/            0, // EndSwitchType
/*382787*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::ADDS),// ->382820
/*382790*/            OPC_RecordChild0, // #1 = $src1
/*382791*/            OPC_RecordChild1, // #2 = $src2
/*382792*/            OPC_MoveParent,
/*382793*/            OPC_MoveChild2,
/*382794*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*382797*/            OPC_MoveChild0,
/*382798*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382801*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382803*/            OPC_CheckType, MVT::v4i32,
/*382805*/            OPC_MoveParent,
/*382806*/            OPC_MoveParent,
/*382807*/            OPC_CheckType, MVT::v8i16,
/*382809*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*382811*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86adds:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPADDSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*382820*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::SUBS),// ->382853
/*382823*/            OPC_RecordChild0, // #1 = $src1
/*382824*/            OPC_RecordChild1, // #2 = $src2
/*382825*/            OPC_MoveParent,
/*382826*/            OPC_MoveChild2,
/*382827*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*382830*/            OPC_MoveChild0,
/*382831*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382834*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382836*/            OPC_CheckType, MVT::v4i32,
/*382838*/            OPC_MoveParent,
/*382839*/            OPC_MoveParent,
/*382840*/            OPC_CheckType, MVT::v8i16,
/*382842*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*382844*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86subs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSUBSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*382853*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::ADDUS),// ->382886
/*382856*/            OPC_RecordChild0, // #1 = $src1
/*382857*/            OPC_RecordChild1, // #2 = $src2
/*382858*/            OPC_MoveParent,
/*382859*/            OPC_MoveChild2,
/*382860*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*382863*/            OPC_MoveChild0,
/*382864*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382867*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382869*/            OPC_CheckType, MVT::v4i32,
/*382871*/            OPC_MoveParent,
/*382872*/            OPC_MoveParent,
/*382873*/            OPC_CheckType, MVT::v8i16,
/*382875*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*382877*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86addus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPADDUSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*382886*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::SUBUS),// ->382919
/*382889*/            OPC_RecordChild0, // #1 = $src1
/*382890*/            OPC_RecordChild1, // #2 = $src2
/*382891*/            OPC_MoveParent,
/*382892*/            OPC_MoveChild2,
/*382893*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*382896*/            OPC_MoveChild0,
/*382897*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382900*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382902*/            OPC_CheckType, MVT::v4i32,
/*382904*/            OPC_MoveParent,
/*382905*/            OPC_MoveParent,
/*382906*/            OPC_CheckType, MVT::v8i16,
/*382908*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*382910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86subus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSUBUSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*382919*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::MUL),// ->382971
/*382922*/            OPC_RecordChild0, // #1 = $src1
/*382923*/            OPC_RecordChild1, // #2 = $src2
/*382924*/            OPC_MoveParent,
/*382925*/            OPC_MoveChild2,
/*382926*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*382929*/            OPC_MoveChild0,
/*382930*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382933*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382935*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->382953
/*382938*/              OPC_MoveParent,
/*382939*/              OPC_MoveParent,
/*382940*/              OPC_CheckType, MVT::v8i16,
/*382942*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*382944*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMULLWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*382953*/            /*SwitchType*/ 15, MVT::v16i32,// ->382970
/*382955*/              OPC_MoveParent,
/*382956*/              OPC_MoveParent,
/*382957*/              OPC_CheckType, MVT::v8i64,
/*382959*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*382961*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMULLQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*382970*/            0, // EndSwitchType
/*382971*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::MULHS),// ->383004
/*382974*/            OPC_RecordChild0, // #1 = $src1
/*382975*/            OPC_RecordChild1, // #2 = $src2
/*382976*/            OPC_MoveParent,
/*382977*/            OPC_MoveChild2,
/*382978*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*382981*/            OPC_MoveChild0,
/*382982*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*382985*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*382987*/            OPC_CheckType, MVT::v4i32,
/*382989*/            OPC_MoveParent,
/*382990*/            OPC_MoveParent,
/*382991*/            OPC_CheckType, MVT::v8i16,
/*382993*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*382995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULHWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*383004*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::MULHU),// ->383037
/*383007*/            OPC_RecordChild0, // #1 = $src1
/*383008*/            OPC_RecordChild1, // #2 = $src2
/*383009*/            OPC_MoveParent,
/*383010*/            OPC_MoveChild2,
/*383011*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383014*/            OPC_MoveChild0,
/*383015*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383018*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383020*/            OPC_CheckType, MVT::v4i32,
/*383022*/            OPC_MoveParent,
/*383023*/            OPC_MoveParent,
/*383024*/            OPC_CheckType, MVT::v8i16,
/*383026*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383028*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhu:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULHUWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*383037*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::MULHRS),// ->383070
/*383040*/            OPC_RecordChild0, // #1 = $src1
/*383041*/            OPC_RecordChild1, // #2 = $src2
/*383042*/            OPC_MoveParent,
/*383043*/            OPC_MoveChild2,
/*383044*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383047*/            OPC_MoveChild0,
/*383048*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383051*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383053*/            OPC_CheckType, MVT::v4i32,
/*383055*/            OPC_MoveParent,
/*383056*/            OPC_MoveParent,
/*383057*/            OPC_CheckType, MVT::v8i16,
/*383059*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383061*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86mulhrs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULHRSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*383070*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::AVG),// ->383103
/*383073*/            OPC_RecordChild0, // #1 = $src1
/*383074*/            OPC_RecordChild1, // #2 = $src2
/*383075*/            OPC_MoveParent,
/*383076*/            OPC_MoveChild2,
/*383077*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383080*/            OPC_MoveChild0,
/*383081*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383084*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383086*/            OPC_CheckType, MVT::v4i32,
/*383088*/            OPC_MoveParent,
/*383089*/            OPC_MoveParent,
/*383090*/            OPC_CheckType, MVT::v8i16,
/*383092*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383094*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86avg:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPAVGWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*383103*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PMULDQ),// ->383136
/*383106*/            OPC_RecordChild0, // #1 = $src1
/*383107*/            OPC_RecordChild1, // #2 = $src2
/*383108*/            OPC_MoveParent,
/*383109*/            OPC_MoveChild2,
/*383110*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383113*/            OPC_MoveChild0,
/*383114*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383117*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383119*/            OPC_CheckType, MVT::v16i32,
/*383121*/            OPC_MoveParent,
/*383122*/            OPC_MoveParent,
/*383123*/            OPC_CheckType, MVT::v8i64,
/*383125*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383127*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrrkz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuldq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*383136*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PMULUDQ),// ->383169
/*383139*/            OPC_RecordChild0, // #1 = $src1
/*383140*/            OPC_RecordChild1, // #2 = $src2
/*383141*/            OPC_MoveParent,
/*383142*/            OPC_MoveChild2,
/*383143*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383146*/            OPC_MoveChild0,
/*383147*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383150*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383152*/            OPC_CheckType, MVT::v16i32,
/*383154*/            OPC_MoveParent,
/*383155*/            OPC_MoveParent,
/*383156*/            OPC_CheckType, MVT::v8i64,
/*383158*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383160*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrrkz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuludq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULUDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*383169*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::PACKSS),// ->383204
/*383172*/            OPC_RecordChild0, // #1 = $src1
/*383173*/            OPC_CheckChild0Type, MVT::v4i32,
/*383175*/            OPC_RecordChild1, // #2 = $src2
/*383176*/            OPC_MoveParent,
/*383177*/            OPC_MoveChild2,
/*383178*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383181*/            OPC_MoveChild0,
/*383182*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383185*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383187*/            OPC_CheckType, MVT::v4i32,
/*383189*/            OPC_MoveParent,
/*383190*/            OPC_MoveParent,
/*383191*/            OPC_CheckType, MVT::v8i16,
/*383193*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383195*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packss:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPACKSSDWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*383204*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::PACKUS),// ->383239
/*383207*/            OPC_RecordChild0, // #1 = $src1
/*383208*/            OPC_CheckChild0Type, MVT::v4i32,
/*383210*/            OPC_RecordChild1, // #2 = $src2
/*383211*/            OPC_MoveParent,
/*383212*/            OPC_MoveChild2,
/*383213*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383216*/            OPC_MoveChild0,
/*383217*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383220*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383222*/            OPC_CheckType, MVT::v4i32,
/*383224*/            OPC_MoveParent,
/*383225*/            OPC_MoveParent,
/*383226*/            OPC_CheckType, MVT::v8i16,
/*383228*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383230*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPACKUSDWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*383239*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VPMADDUBSW),// ->383272
/*383242*/            OPC_RecordChild0, // #1 = $src1
/*383243*/            OPC_RecordChild1, // #2 = $src2
/*383244*/            OPC_MoveParent,
/*383245*/            OPC_MoveChild2,
/*383246*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383249*/            OPC_MoveChild0,
/*383250*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383253*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383255*/            OPC_CheckType, MVT::v4i32,
/*383257*/            OPC_MoveParent,
/*383258*/            OPC_MoveParent,
/*383259*/            OPC_CheckType, MVT::v8i16,
/*383261*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383263*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vpmaddubsw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMADDUBSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*383272*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::SMAX),// ->383324
/*383275*/            OPC_RecordChild0, // #1 = $src1
/*383276*/            OPC_RecordChild1, // #2 = $src2
/*383277*/            OPC_MoveParent,
/*383278*/            OPC_MoveChild2,
/*383279*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383282*/            OPC_MoveChild0,
/*383283*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383286*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383288*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->383306
/*383291*/              OPC_MoveParent,
/*383292*/              OPC_MoveParent,
/*383293*/              OPC_CheckType, MVT::v8i16,
/*383295*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383297*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*383306*/            /*SwitchType*/ 15, MVT::v16i32,// ->383323
/*383308*/              OPC_MoveParent,
/*383309*/              OPC_MoveParent,
/*383310*/              OPC_CheckType, MVT::v8i64,
/*383312*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383314*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXSQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*383323*/            0, // EndSwitchType
/*383324*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::UMAX),// ->383376
/*383327*/            OPC_RecordChild0, // #1 = $src1
/*383328*/            OPC_RecordChild1, // #2 = $src2
/*383329*/            OPC_MoveParent,
/*383330*/            OPC_MoveChild2,
/*383331*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383334*/            OPC_MoveChild0,
/*383335*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383338*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383340*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->383358
/*383343*/              OPC_MoveParent,
/*383344*/              OPC_MoveParent,
/*383345*/              OPC_CheckType, MVT::v8i16,
/*383347*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383349*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXUWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*383358*/            /*SwitchType*/ 15, MVT::v16i32,// ->383375
/*383360*/              OPC_MoveParent,
/*383361*/              OPC_MoveParent,
/*383362*/              OPC_CheckType, MVT::v8i64,
/*383364*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383366*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXUQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*383375*/            0, // EndSwitchType
/*383376*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::SMIN),// ->383428
/*383379*/            OPC_RecordChild0, // #1 = $src1
/*383380*/            OPC_RecordChild1, // #2 = $src2
/*383381*/            OPC_MoveParent,
/*383382*/            OPC_MoveChild2,
/*383383*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383386*/            OPC_MoveChild0,
/*383387*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383390*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383392*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->383410
/*383395*/              OPC_MoveParent,
/*383396*/              OPC_MoveParent,
/*383397*/              OPC_CheckType, MVT::v8i16,
/*383399*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383401*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*383410*/            /*SwitchType*/ 15, MVT::v16i32,// ->383427
/*383412*/              OPC_MoveParent,
/*383413*/              OPC_MoveParent,
/*383414*/              OPC_CheckType, MVT::v8i64,
/*383416*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383418*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINSQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*383427*/            0, // EndSwitchType
/*383428*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::UMIN),// ->383480
/*383431*/            OPC_RecordChild0, // #1 = $src1
/*383432*/            OPC_RecordChild1, // #2 = $src2
/*383433*/            OPC_MoveParent,
/*383434*/            OPC_MoveChild2,
/*383435*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383438*/            OPC_MoveChild0,
/*383439*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383442*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383444*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->383462
/*383447*/              OPC_MoveParent,
/*383448*/              OPC_MoveParent,
/*383449*/              OPC_CheckType, MVT::v8i16,
/*383451*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383453*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINUWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*383462*/            /*SwitchType*/ 15, MVT::v16i32,// ->383479
/*383464*/              OPC_MoveParent,
/*383465*/              OPC_MoveParent,
/*383466*/              OPC_CheckType, MVT::v8i64,
/*383468*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383470*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINUQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*383479*/            0, // EndSwitchType
/*383480*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::AND),// ->383513
/*383483*/            OPC_RecordChild0, // #1 = $src1
/*383484*/            OPC_RecordChild1, // #2 = $src2
/*383485*/            OPC_MoveParent,
/*383486*/            OPC_MoveChild2,
/*383487*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383490*/            OPC_MoveChild0,
/*383491*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383494*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383496*/            OPC_CheckType, MVT::v16i32,
/*383498*/            OPC_MoveParent,
/*383499*/            OPC_MoveParent,
/*383500*/            OPC_CheckType, MVT::v8i64,
/*383502*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383504*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrkz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPANDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*383513*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::OR),// ->383546
/*383516*/            OPC_RecordChild0, // #1 = $src1
/*383517*/            OPC_RecordChild1, // #2 = $src2
/*383518*/            OPC_MoveParent,
/*383519*/            OPC_MoveChild2,
/*383520*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383523*/            OPC_MoveChild0,
/*383524*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383527*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383529*/            OPC_CheckType, MVT::v16i32,
/*383531*/            OPC_MoveParent,
/*383532*/            OPC_MoveParent,
/*383533*/            OPC_CheckType, MVT::v8i64,
/*383535*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383537*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrkz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPORQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*383546*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::XOR),// ->383579
/*383549*/            OPC_RecordChild0, // #1 = $src1
/*383550*/            OPC_RecordChild1, // #2 = $src2
/*383551*/            OPC_MoveParent,
/*383552*/            OPC_MoveChild2,
/*383553*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383556*/            OPC_MoveChild0,
/*383557*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383560*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383562*/            OPC_CheckType, MVT::v16i32,
/*383564*/            OPC_MoveParent,
/*383565*/            OPC_MoveParent,
/*383566*/            OPC_CheckType, MVT::v8i64,
/*383568*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383570*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrkz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPXORQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*383579*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::ANDNP),// ->383612
/*383582*/            OPC_RecordChild0, // #1 = $src1
/*383583*/            OPC_RecordChild1, // #2 = $src2
/*383584*/            OPC_MoveParent,
/*383585*/            OPC_MoveChild2,
/*383586*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383589*/            OPC_MoveChild0,
/*383590*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383593*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383595*/            OPC_CheckType, MVT::v16i32,
/*383597*/            OPC_MoveParent,
/*383598*/            OPC_MoveParent,
/*383599*/            OPC_CheckType, MVT::v8i64,
/*383601*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383603*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrkz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPANDNQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*383612*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSRLI),// ->383645
/*383615*/            OPC_RecordChild0, // #1 = $src1
/*383616*/            OPC_RecordChild1, // #2 = $src2
/*383617*/            OPC_MoveChild1,
/*383618*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*383621*/            OPC_MoveParent,
/*383622*/            OPC_MoveParent,
/*383623*/            OPC_MoveChild2,
/*383624*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383627*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383629*/            OPC_MoveParent,
/*383630*/            OPC_CheckType, MVT::v8i32,
/*383632*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383634*/            OPC_EmitConvertToTarget, 2,
/*383636*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256rikz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSRLDZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*383645*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSHLI),// ->383678
/*383648*/            OPC_RecordChild0, // #1 = $src1
/*383649*/            OPC_RecordChild1, // #2 = $src2
/*383650*/            OPC_MoveChild1,
/*383651*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*383654*/            OPC_MoveParent,
/*383655*/            OPC_MoveParent,
/*383656*/            OPC_MoveChild2,
/*383657*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383660*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383662*/            OPC_MoveParent,
/*383663*/            OPC_CheckType, MVT::v8i32,
/*383665*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383667*/            OPC_EmitConvertToTarget, 2,
/*383669*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256rikz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSLLDZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*383678*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSRAI),// ->383711
/*383681*/            OPC_RecordChild0, // #1 = $src1
/*383682*/            OPC_RecordChild1, // #2 = $src2
/*383683*/            OPC_MoveChild1,
/*383684*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*383687*/            OPC_MoveParent,
/*383688*/            OPC_MoveParent,
/*383689*/            OPC_MoveChild2,
/*383690*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383693*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383695*/            OPC_MoveParent,
/*383696*/            OPC_CheckType, MVT::v8i32,
/*383698*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383700*/            OPC_EmitConvertToTarget, 2,
/*383702*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256rikz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSRADZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*383711*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VROTRI),// ->383744
/*383714*/            OPC_RecordChild0, // #1 = $src1
/*383715*/            OPC_RecordChild1, // #2 = $src2
/*383716*/            OPC_MoveChild1,
/*383717*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*383720*/            OPC_MoveParent,
/*383721*/            OPC_MoveParent,
/*383722*/            OPC_MoveChild2,
/*383723*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383726*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383728*/            OPC_MoveParent,
/*383729*/            OPC_CheckType, MVT::v8i32,
/*383731*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383733*/            OPC_EmitConvertToTarget, 2,
/*383735*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256rikz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPRORDZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*383744*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VROTLI),// ->383777
/*383747*/            OPC_RecordChild0, // #1 = $src1
/*383748*/            OPC_RecordChild1, // #2 = $src2
/*383749*/            OPC_MoveChild1,
/*383750*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*383753*/            OPC_MoveParent,
/*383754*/            OPC_MoveParent,
/*383755*/            OPC_MoveChild2,
/*383756*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383759*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383761*/            OPC_MoveParent,
/*383762*/            OPC_CheckType, MVT::v8i32,
/*383764*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383766*/            OPC_EmitConvertToTarget, 2,
/*383768*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256rikz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPROLDZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*383777*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VSHL),// ->383846
/*383780*/            OPC_RecordChild0, // #1 = $src1
/*383781*/            OPC_RecordChild1, // #2 = $src2
/*383782*/            OPC_Scope, 30, /*->383814*/ // 2 children in Scope
/*383784*/              OPC_CheckChild1Type, MVT::v2i64,
/*383786*/              OPC_MoveParent,
/*383787*/              OPC_MoveChild2,
/*383788*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383791*/              OPC_MoveChild0,
/*383792*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383795*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383797*/              OPC_CheckType, MVT::v16i32,
/*383799*/              OPC_MoveParent,
/*383800*/              OPC_MoveParent,
/*383801*/              OPC_CheckType, MVT::v8i64,
/*383803*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383805*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSLLQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*383814*/            /*Scope*/ 30, /*->383845*/
/*383815*/              OPC_CheckChild1Type, MVT::v8i16,
/*383817*/              OPC_MoveParent,
/*383818*/              OPC_MoveChild2,
/*383819*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383822*/              OPC_MoveChild0,
/*383823*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383826*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383828*/              OPC_CheckType, MVT::v4i32,
/*383830*/              OPC_MoveParent,
/*383831*/              OPC_MoveParent,
/*383832*/              OPC_CheckType, MVT::v8i16,
/*383834*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383836*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSLLWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*383845*/            0, /*End of Scope*/
/*383846*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VSRA),// ->383915
/*383849*/            OPC_RecordChild0, // #1 = $src1
/*383850*/            OPC_RecordChild1, // #2 = $src2
/*383851*/            OPC_Scope, 30, /*->383883*/ // 2 children in Scope
/*383853*/              OPC_CheckChild1Type, MVT::v2i64,
/*383855*/              OPC_MoveParent,
/*383856*/              OPC_MoveChild2,
/*383857*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383860*/              OPC_MoveChild0,
/*383861*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383864*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383866*/              OPC_CheckType, MVT::v16i32,
/*383868*/              OPC_MoveParent,
/*383869*/              OPC_MoveParent,
/*383870*/              OPC_CheckType, MVT::v8i64,
/*383872*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383874*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSRAQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*383883*/            /*Scope*/ 30, /*->383914*/
/*383884*/              OPC_CheckChild1Type, MVT::v8i16,
/*383886*/              OPC_MoveParent,
/*383887*/              OPC_MoveChild2,
/*383888*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383891*/              OPC_MoveChild0,
/*383892*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383895*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383897*/              OPC_CheckType, MVT::v4i32,
/*383899*/              OPC_MoveParent,
/*383900*/              OPC_MoveParent,
/*383901*/              OPC_CheckType, MVT::v8i16,
/*383903*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383905*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSRAWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*383914*/            0, /*End of Scope*/
/*383915*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VSRL),// ->383984
/*383918*/            OPC_RecordChild0, // #1 = $src1
/*383919*/            OPC_RecordChild1, // #2 = $src2
/*383920*/            OPC_Scope, 30, /*->383952*/ // 2 children in Scope
/*383922*/              OPC_CheckChild1Type, MVT::v2i64,
/*383924*/              OPC_MoveParent,
/*383925*/              OPC_MoveChild2,
/*383926*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383929*/              OPC_MoveChild0,
/*383930*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383933*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383935*/              OPC_CheckType, MVT::v16i32,
/*383937*/              OPC_MoveParent,
/*383938*/              OPC_MoveParent,
/*383939*/              OPC_CheckType, MVT::v8i64,
/*383941*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*383943*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSRLQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*383952*/            /*Scope*/ 30, /*->383983*/
/*383953*/              OPC_CheckChild1Type, MVT::v8i16,
/*383955*/              OPC_MoveParent,
/*383956*/              OPC_MoveChild2,
/*383957*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383960*/              OPC_MoveChild0,
/*383961*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*383964*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*383966*/              OPC_CheckType, MVT::v4i32,
/*383968*/              OPC_MoveParent,
/*383969*/              OPC_MoveParent,
/*383970*/              OPC_CheckType, MVT::v8i16,
/*383972*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*383974*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSRLWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*383983*/            0, /*End of Scope*/
/*383984*/          /*SwitchOpcode*/ 66, TARGET_VAL(ISD::SHL),// ->384053
/*383987*/            OPC_RecordChild0, // #1 = $src1
/*383988*/            OPC_RecordChild1, // #2 = $src2
/*383989*/            OPC_Scope, 30, /*->384021*/ // 2 children in Scope
/*383991*/              OPC_CheckChild1Type, MVT::v8i64,
/*383993*/              OPC_MoveParent,
/*383994*/              OPC_MoveChild2,
/*383995*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*383998*/              OPC_MoveChild0,
/*383999*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384002*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384004*/              OPC_CheckType, MVT::v16i32,
/*384006*/              OPC_MoveParent,
/*384007*/              OPC_MoveParent,
/*384008*/              OPC_CheckType, MVT::v8i64,
/*384010*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*384012*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSLLVQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*384021*/            /*Scope*/ 30, /*->384052*/
/*384022*/              OPC_CheckChild1Type, MVT::v8i16,
/*384024*/              OPC_MoveParent,
/*384025*/              OPC_MoveChild2,
/*384026*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384029*/              OPC_MoveChild0,
/*384030*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384033*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384035*/              OPC_CheckType, MVT::v4i32,
/*384037*/              OPC_MoveParent,
/*384038*/              OPC_MoveParent,
/*384039*/              OPC_CheckType, MVT::v8i16,
/*384041*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*384043*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSLLVWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*384052*/            0, /*End of Scope*/
/*384053*/          /*SwitchOpcode*/ 66, TARGET_VAL(ISD::SRA),// ->384122
/*384056*/            OPC_RecordChild0, // #1 = $src1
/*384057*/            OPC_RecordChild1, // #2 = $src2
/*384058*/            OPC_Scope, 30, /*->384090*/ // 2 children in Scope
/*384060*/              OPC_CheckChild1Type, MVT::v8i64,
/*384062*/              OPC_MoveParent,
/*384063*/              OPC_MoveChild2,
/*384064*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384067*/              OPC_MoveChild0,
/*384068*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384071*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384073*/              OPC_CheckType, MVT::v16i32,
/*384075*/              OPC_MoveParent,
/*384076*/              OPC_MoveParent,
/*384077*/              OPC_CheckType, MVT::v8i64,
/*384079*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*384081*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSRAVQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*384090*/            /*Scope*/ 30, /*->384121*/
/*384091*/              OPC_CheckChild1Type, MVT::v8i16,
/*384093*/              OPC_MoveParent,
/*384094*/              OPC_MoveChild2,
/*384095*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384098*/              OPC_MoveChild0,
/*384099*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384102*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384104*/              OPC_CheckType, MVT::v4i32,
/*384106*/              OPC_MoveParent,
/*384107*/              OPC_MoveParent,
/*384108*/              OPC_CheckType, MVT::v8i16,
/*384110*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*384112*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSRAVWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*384121*/            0, /*End of Scope*/
/*384122*/          /*SwitchOpcode*/ 66, TARGET_VAL(ISD::SRL),// ->384191
/*384125*/            OPC_RecordChild0, // #1 = $src1
/*384126*/            OPC_RecordChild1, // #2 = $src2
/*384127*/            OPC_Scope, 30, /*->384159*/ // 2 children in Scope
/*384129*/              OPC_CheckChild1Type, MVT::v8i64,
/*384131*/              OPC_MoveParent,
/*384132*/              OPC_MoveChild2,
/*384133*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384136*/              OPC_MoveChild0,
/*384137*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384140*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384142*/              OPC_CheckType, MVT::v16i32,
/*384144*/              OPC_MoveParent,
/*384145*/              OPC_MoveParent,
/*384146*/              OPC_CheckType, MVT::v8i64,
/*384148*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*384150*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSRLVQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*384159*/            /*Scope*/ 30, /*->384190*/
/*384160*/              OPC_CheckChild1Type, MVT::v8i16,
/*384162*/              OPC_MoveParent,
/*384163*/              OPC_MoveChild2,
/*384164*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384167*/              OPC_MoveChild0,
/*384168*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384171*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384173*/              OPC_CheckType, MVT::v4i32,
/*384175*/              OPC_MoveParent,
/*384176*/              OPC_MoveParent,
/*384177*/              OPC_CheckType, MVT::v8i16,
/*384179*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*384181*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSRLVWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*384190*/            0, /*End of Scope*/
/*384191*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::ROTR),// ->384226
/*384194*/            OPC_RecordChild0, // #1 = $src1
/*384195*/            OPC_RecordChild1, // #2 = $src2
/*384196*/            OPC_CheckChild1Type, MVT::v8i64,
/*384198*/            OPC_MoveParent,
/*384199*/            OPC_MoveChild2,
/*384200*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384203*/            OPC_MoveChild0,
/*384204*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384207*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384209*/            OPC_CheckType, MVT::v16i32,
/*384211*/            OPC_MoveParent,
/*384212*/            OPC_MoveParent,
/*384213*/            OPC_CheckType, MVT::v8i64,
/*384215*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*384217*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZrrkz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPRORVQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*384226*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::ROTL),// ->384261
/*384229*/            OPC_RecordChild0, // #1 = $src1
/*384230*/            OPC_RecordChild1, // #2 = $src2
/*384231*/            OPC_CheckChild1Type, MVT::v8i64,
/*384233*/            OPC_MoveParent,
/*384234*/            OPC_MoveChild2,
/*384235*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384238*/            OPC_MoveChild0,
/*384239*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384242*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384244*/            OPC_CheckType, MVT::v16i32,
/*384246*/            OPC_MoveParent,
/*384247*/            OPC_MoveParent,
/*384248*/            OPC_CheckType, MVT::v8i64,
/*384250*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*384252*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZrrkz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPROLVQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*384261*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VSRAV),// ->384313
/*384264*/            OPC_RecordChild0, // #1 = $src1
/*384265*/            OPC_RecordChild1, // #2 = $src2
/*384266*/            OPC_MoveParent,
/*384267*/            OPC_MoveChild2,
/*384268*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384271*/            OPC_MoveChild0,
/*384272*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384275*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384277*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->384295
/*384280*/              OPC_MoveParent,
/*384281*/              OPC_MoveParent,
/*384282*/              OPC_CheckType, MVT::v8i16,
/*384284*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*384286*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSRAVWZ128rrkz:{ *:[v8i16] } VK8:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*384295*/            /*SwitchType*/ 15, MVT::v16i32,// ->384312
/*384297*/              OPC_MoveParent,
/*384298*/              OPC_MoveParent,
/*384299*/              OPC_CheckType, MVT::v8i64,
/*384301*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*384303*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSRAVQZrrkz:{ *:[v8i64] } VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*384312*/            0, // EndSwitchType
/*384313*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VPERMV),// ->384365
/*384316*/            OPC_RecordChild0, // #1 = $src1
/*384317*/            OPC_RecordChild1, // #2 = $src2
/*384318*/            OPC_MoveParent,
/*384319*/            OPC_MoveChild2,
/*384320*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384323*/            OPC_MoveChild0,
/*384324*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384327*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384329*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->384347
/*384332*/              OPC_MoveParent,
/*384333*/              OPC_MoveParent,
/*384334*/              OPC_CheckType, MVT::v8i16,
/*384336*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*384338*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*384347*/            /*SwitchType*/ 15, MVT::v16i32,// ->384364
/*384349*/              OPC_MoveParent,
/*384350*/              OPC_MoveParent,
/*384351*/              OPC_CheckType, MVT::v8i64,
/*384353*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*384355*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*384364*/            0, // EndSwitchType
/*384365*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PSHUFD),// ->384398
/*384368*/            OPC_RecordChild0, // #1 = $src1
/*384369*/            OPC_RecordChild1, // #2 = $src2
/*384370*/            OPC_MoveChild1,
/*384371*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*384374*/            OPC_MoveParent,
/*384375*/            OPC_MoveParent,
/*384376*/            OPC_MoveChild2,
/*384377*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384380*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384382*/            OPC_MoveParent,
/*384383*/            OPC_CheckType, MVT::v8i32,
/*384385*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384387*/            OPC_EmitConvertToTarget, 2,
/*384389*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256rikz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSHUFDZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*384398*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VPMADD52L),// ->384433
/*384401*/            OPC_RecordChild0, // #1 = $src2
/*384402*/            OPC_RecordChild1, // #2 = $src3
/*384403*/            OPC_RecordChild2, // #3 = $src1
/*384404*/            OPC_MoveParent,
/*384405*/            OPC_MoveChild2,
/*384406*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384409*/            OPC_MoveChild0,
/*384410*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384413*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384415*/            OPC_CheckType, MVT::v16i32,
/*384417*/            OPC_MoveParent,
/*384418*/            OPC_MoveParent,
/*384419*/            OPC_CheckType, MVT::v8i64,
/*384421*/            OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*384423*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZrkz), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52l:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMADD52LUQZrkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*384433*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VPMADD52H),// ->384468
/*384436*/            OPC_RecordChild0, // #1 = $src2
/*384437*/            OPC_RecordChild1, // #2 = $src3
/*384438*/            OPC_RecordChild2, // #3 = $src1
/*384439*/            OPC_MoveParent,
/*384440*/            OPC_MoveChild2,
/*384441*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384444*/            OPC_MoveChild0,
/*384445*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384448*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384450*/            OPC_CheckType, MVT::v16i32,
/*384452*/            OPC_MoveParent,
/*384453*/            OPC_MoveParent,
/*384454*/            OPC_CheckType, MVT::v8i64,
/*384456*/            OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*384458*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZrkz), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52h:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMADD52HUQZrkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*384468*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::CVTP2SI_RND),// ->384503
/*384471*/            OPC_RecordChild0, // #1 = $src
/*384472*/            OPC_CheckChild0Type, MVT::v8f64,
/*384474*/            OPC_RecordChild1, // #2 = $rc
/*384475*/            OPC_MoveChild1,
/*384476*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*384479*/            OPC_MoveParent,
/*384480*/            OPC_MoveParent,
/*384481*/            OPC_MoveChild2,
/*384482*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384485*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384487*/            OPC_MoveParent,
/*384488*/            OPC_CheckType, MVT::v8i32,
/*384490*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*384492*/            OPC_EmitConvertToTarget, 2,
/*384494*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrrbkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VCVTPD2DQZrrbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*384503*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::CVTP2UI_RND),// ->384538
/*384506*/            OPC_RecordChild0, // #1 = $src
/*384507*/            OPC_CheckChild0Type, MVT::v8f64,
/*384509*/            OPC_RecordChild1, // #2 = $rc
/*384510*/            OPC_MoveChild1,
/*384511*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*384514*/            OPC_MoveParent,
/*384515*/            OPC_MoveParent,
/*384516*/            OPC_MoveChild2,
/*384517*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384520*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384522*/            OPC_MoveParent,
/*384523*/            OPC_CheckType, MVT::v8i32,
/*384525*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*384527*/            OPC_EmitConvertToTarget, 2,
/*384529*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrrbkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VCVTPD2UDQZrrbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*384538*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTP2SI),// ->384604
/*384541*/            OPC_RecordChild0, // #1 = $src
/*384542*/            OPC_Scope, 29, /*->384573*/ // 2 children in Scope
/*384544*/              OPC_CheckChild0Type, MVT::v8f64,
/*384546*/              OPC_MoveParent,
/*384547*/              OPC_MoveChild2,
/*384548*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384551*/              OPC_MoveChild0,
/*384552*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384555*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384557*/              OPC_CheckType, MVT::v16i32,
/*384559*/              OPC_MoveParent,
/*384560*/              OPC_MoveParent,
/*384561*/              OPC_CheckType, MVT::v8i64,
/*384563*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*384565*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPD2QQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*384573*/            /*Scope*/ 29, /*->384603*/
/*384574*/              OPC_CheckChild0Type, MVT::v8f32,
/*384576*/              OPC_MoveParent,
/*384577*/              OPC_MoveChild2,
/*384578*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384581*/              OPC_MoveChild0,
/*384582*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384585*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384587*/              OPC_CheckType, MVT::v16i32,
/*384589*/              OPC_MoveParent,
/*384590*/              OPC_MoveParent,
/*384591*/              OPC_CheckType, MVT::v8i64,
/*384593*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*384595*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPS2QQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*384603*/            0, /*End of Scope*/
/*384604*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTP2UI),// ->384670
/*384607*/            OPC_RecordChild0, // #1 = $src
/*384608*/            OPC_Scope, 29, /*->384639*/ // 2 children in Scope
/*384610*/              OPC_CheckChild0Type, MVT::v8f64,
/*384612*/              OPC_MoveParent,
/*384613*/              OPC_MoveChild2,
/*384614*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384617*/              OPC_MoveChild0,
/*384618*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384621*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384623*/              OPC_CheckType, MVT::v16i32,
/*384625*/              OPC_MoveParent,
/*384626*/              OPC_MoveParent,
/*384627*/              OPC_CheckType, MVT::v8i64,
/*384629*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*384631*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPD2UQQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*384639*/            /*Scope*/ 29, /*->384669*/
/*384640*/              OPC_CheckChild0Type, MVT::v8f32,
/*384642*/              OPC_MoveParent,
/*384643*/              OPC_MoveChild2,
/*384644*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384647*/              OPC_MoveChild0,
/*384648*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384651*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384653*/              OPC_CheckType, MVT::v16i32,
/*384655*/              OPC_MoveParent,
/*384656*/              OPC_MoveParent,
/*384657*/              OPC_CheckType, MVT::v8i64,
/*384659*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*384661*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTPS2UQQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*384669*/            0, /*End of Scope*/
/*384670*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTTP2SI),// ->384736
/*384673*/            OPC_RecordChild0, // #1 = $src
/*384674*/            OPC_Scope, 29, /*->384705*/ // 2 children in Scope
/*384676*/              OPC_CheckChild0Type, MVT::v8f64,
/*384678*/              OPC_MoveParent,
/*384679*/              OPC_MoveChild2,
/*384680*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384683*/              OPC_MoveChild0,
/*384684*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384687*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384689*/              OPC_CheckType, MVT::v16i32,
/*384691*/              OPC_MoveParent,
/*384692*/              OPC_MoveParent,
/*384693*/              OPC_CheckType, MVT::v8i64,
/*384695*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*384697*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPD2QQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*384705*/            /*Scope*/ 29, /*->384735*/
/*384706*/              OPC_CheckChild0Type, MVT::v8f32,
/*384708*/              OPC_MoveParent,
/*384709*/              OPC_MoveChild2,
/*384710*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384713*/              OPC_MoveChild0,
/*384714*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384717*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384719*/              OPC_CheckType, MVT::v16i32,
/*384721*/              OPC_MoveParent,
/*384722*/              OPC_MoveParent,
/*384723*/              OPC_CheckType, MVT::v8i64,
/*384725*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*384727*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPS2QQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*384735*/            0, /*End of Scope*/
/*384736*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::CVTTP2UI),// ->384802
/*384739*/            OPC_RecordChild0, // #1 = $src
/*384740*/            OPC_Scope, 29, /*->384771*/ // 2 children in Scope
/*384742*/              OPC_CheckChild0Type, MVT::v8f64,
/*384744*/              OPC_MoveParent,
/*384745*/              OPC_MoveChild2,
/*384746*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384749*/              OPC_MoveChild0,
/*384750*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384753*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384755*/              OPC_CheckType, MVT::v16i32,
/*384757*/              OPC_MoveParent,
/*384758*/              OPC_MoveParent,
/*384759*/              OPC_CheckType, MVT::v8i64,
/*384761*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*384763*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPD2UQQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*384771*/            /*Scope*/ 29, /*->384801*/
/*384772*/              OPC_CheckChild0Type, MVT::v8f32,
/*384774*/              OPC_MoveParent,
/*384775*/              OPC_MoveChild2,
/*384776*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384779*/              OPC_MoveChild0,
/*384780*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384783*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384785*/              OPC_CheckType, MVT::v16i32,
/*384787*/              OPC_MoveParent,
/*384788*/              OPC_MoveParent,
/*384789*/              OPC_CheckType, MVT::v8i64,
/*384791*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*384793*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCVTTPS2UQQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*384801*/            0, /*End of Scope*/
/*384802*/          /*SwitchOpcode*/ 93, TARGET_VAL(X86ISD::VTRUNC),// ->384898
/*384805*/            OPC_RecordChild0, // #1 = $src1
/*384806*/            OPC_Scope, 29, /*->384837*/ // 3 children in Scope
/*384808*/              OPC_CheckChild0Type, MVT::v2i64,
/*384810*/              OPC_MoveParent,
/*384811*/              OPC_MoveChild2,
/*384812*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384815*/              OPC_MoveChild0,
/*384816*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384819*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384821*/              OPC_CheckType, MVT::v4i32,
/*384823*/              OPC_MoveParent,
/*384824*/              OPC_MoveParent,
/*384825*/              OPC_CheckType, MVT::v8i16,
/*384827*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384829*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtrunc:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVQWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*384837*/            /*Scope*/ 29, /*->384867*/
/*384838*/              OPC_CheckChild0Type, MVT::v4i64,
/*384840*/              OPC_MoveParent,
/*384841*/              OPC_MoveChild2,
/*384842*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384845*/              OPC_MoveChild0,
/*384846*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384849*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384851*/              OPC_CheckType, MVT::v4i32,
/*384853*/              OPC_MoveParent,
/*384854*/              OPC_MoveParent,
/*384855*/              OPC_CheckType, MVT::v8i16,
/*384857*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384859*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ256rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtrunc:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVQWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*384867*/            /*Scope*/ 29, /*->384897*/
/*384868*/              OPC_CheckChild0Type, MVT::v4i32,
/*384870*/              OPC_MoveParent,
/*384871*/              OPC_MoveChild2,
/*384872*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384875*/              OPC_MoveChild0,
/*384876*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384879*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384881*/              OPC_CheckType, MVT::v4i32,
/*384883*/              OPC_MoveParent,
/*384884*/              OPC_MoveParent,
/*384885*/              OPC_CheckType, MVT::v8i16,
/*384887*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384889*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtrunc:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVDWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*384897*/            0, /*End of Scope*/
/*384898*/          /*SwitchOpcode*/ 63, TARGET_VAL(ISD::TRUNCATE),// ->384964
/*384901*/            OPC_RecordChild0, // #1 = $src1
/*384902*/            OPC_Scope, 29, /*->384933*/ // 2 children in Scope
/*384904*/              OPC_CheckChild0Type, MVT::v8i64,
/*384906*/              OPC_MoveParent,
/*384907*/              OPC_MoveChild2,
/*384908*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384911*/              OPC_MoveChild0,
/*384912*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384915*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384917*/              OPC_CheckType, MVT::v4i32,
/*384919*/              OPC_MoveParent,
/*384920*/              OPC_MoveParent,
/*384921*/              OPC_CheckType, MVT::v8i16,
/*384923*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*384925*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZrrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVQWZrrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*384933*/            /*Scope*/ 29, /*->384963*/
/*384934*/              OPC_CheckChild0Type, MVT::v8i32,
/*384936*/              OPC_MoveParent,
/*384937*/              OPC_MoveChild2,
/*384938*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384941*/              OPC_MoveChild0,
/*384942*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384945*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384947*/              OPC_CheckType, MVT::v4i32,
/*384949*/              OPC_MoveParent,
/*384950*/              OPC_MoveParent,
/*384951*/              OPC_CheckType, MVT::v8i16,
/*384953*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384955*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ256rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVDWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*384963*/            0, /*End of Scope*/
/*384964*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::VTRUNCS),// ->385121
/*384968*/            OPC_RecordChild0, // #1 = $src1
/*384969*/            OPC_Scope, 29, /*->385000*/ // 5 children in Scope
/*384971*/              OPC_CheckChild0Type, MVT::v2i64,
/*384973*/              OPC_MoveParent,
/*384974*/              OPC_MoveChild2,
/*384975*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*384978*/              OPC_MoveChild0,
/*384979*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*384982*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*384984*/              OPC_CheckType, MVT::v4i32,
/*384986*/              OPC_MoveParent,
/*384987*/              OPC_MoveParent,
/*384988*/              OPC_CheckType, MVT::v8i16,
/*384990*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384992*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSQWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*385000*/            /*Scope*/ 29, /*->385030*/
/*385001*/              OPC_CheckChild0Type, MVT::v4i64,
/*385003*/              OPC_MoveParent,
/*385004*/              OPC_MoveChild2,
/*385005*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385008*/              OPC_MoveChild0,
/*385009*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385012*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385014*/              OPC_CheckType, MVT::v4i32,
/*385016*/              OPC_MoveParent,
/*385017*/              OPC_MoveParent,
/*385018*/              OPC_CheckType, MVT::v8i16,
/*385020*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*385022*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ256rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSQWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*385030*/            /*Scope*/ 29, /*->385060*/
/*385031*/              OPC_CheckChild0Type, MVT::v8i64,
/*385033*/              OPC_MoveParent,
/*385034*/              OPC_MoveChild2,
/*385035*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385038*/              OPC_MoveChild0,
/*385039*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385042*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385044*/              OPC_CheckType, MVT::v4i32,
/*385046*/              OPC_MoveParent,
/*385047*/              OPC_MoveParent,
/*385048*/              OPC_CheckType, MVT::v8i16,
/*385050*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385052*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZrrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSQWZrrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*385060*/            /*Scope*/ 29, /*->385090*/
/*385061*/              OPC_CheckChild0Type, MVT::v4i32,
/*385063*/              OPC_MoveParent,
/*385064*/              OPC_MoveChild2,
/*385065*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385068*/              OPC_MoveChild0,
/*385069*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385072*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385074*/              OPC_CheckType, MVT::v4i32,
/*385076*/              OPC_MoveParent,
/*385077*/              OPC_MoveParent,
/*385078*/              OPC_CheckType, MVT::v8i16,
/*385080*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*385082*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSDWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*385090*/            /*Scope*/ 29, /*->385120*/
/*385091*/              OPC_CheckChild0Type, MVT::v8i32,
/*385093*/              OPC_MoveParent,
/*385094*/              OPC_MoveChild2,
/*385095*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385098*/              OPC_MoveChild0,
/*385099*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385102*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385104*/              OPC_CheckType, MVT::v4i32,
/*385106*/              OPC_MoveParent,
/*385107*/              OPC_MoveParent,
/*385108*/              OPC_CheckType, MVT::v8i16,
/*385110*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*385112*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ256rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSDWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*385120*/            0, /*End of Scope*/
/*385121*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::VTRUNCUS),// ->385278
/*385125*/            OPC_RecordChild0, // #1 = $src1
/*385126*/            OPC_Scope, 29, /*->385157*/ // 5 children in Scope
/*385128*/              OPC_CheckChild0Type, MVT::v2i64,
/*385130*/              OPC_MoveParent,
/*385131*/              OPC_MoveChild2,
/*385132*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385135*/              OPC_MoveChild0,
/*385136*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385139*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385141*/              OPC_CheckType, MVT::v4i32,
/*385143*/              OPC_MoveParent,
/*385144*/              OPC_MoveParent,
/*385145*/              OPC_CheckType, MVT::v8i16,
/*385147*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*385149*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSQWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*385157*/            /*Scope*/ 29, /*->385187*/
/*385158*/              OPC_CheckChild0Type, MVT::v4i64,
/*385160*/              OPC_MoveParent,
/*385161*/              OPC_MoveChild2,
/*385162*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385165*/              OPC_MoveChild0,
/*385166*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385169*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385171*/              OPC_CheckType, MVT::v4i32,
/*385173*/              OPC_MoveParent,
/*385174*/              OPC_MoveParent,
/*385175*/              OPC_CheckType, MVT::v8i16,
/*385177*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*385179*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ256rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSQWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*385187*/            /*Scope*/ 29, /*->385217*/
/*385188*/              OPC_CheckChild0Type, MVT::v8i64,
/*385190*/              OPC_MoveParent,
/*385191*/              OPC_MoveChild2,
/*385192*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385195*/              OPC_MoveChild0,
/*385196*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385199*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385201*/              OPC_CheckType, MVT::v4i32,
/*385203*/              OPC_MoveParent,
/*385204*/              OPC_MoveParent,
/*385205*/              OPC_CheckType, MVT::v8i16,
/*385207*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385209*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZrrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSQWZrrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*385217*/            /*Scope*/ 29, /*->385247*/
/*385218*/              OPC_CheckChild0Type, MVT::v4i32,
/*385220*/              OPC_MoveParent,
/*385221*/              OPC_MoveChild2,
/*385222*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385225*/              OPC_MoveChild0,
/*385226*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385229*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385231*/              OPC_CheckType, MVT::v4i32,
/*385233*/              OPC_MoveParent,
/*385234*/              OPC_MoveParent,
/*385235*/              OPC_CheckType, MVT::v8i16,
/*385237*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*385239*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSDWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*385247*/            /*Scope*/ 29, /*->385277*/
/*385248*/              OPC_CheckChild0Type, MVT::v8i32,
/*385250*/              OPC_MoveParent,
/*385251*/              OPC_MoveChild2,
/*385252*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385255*/              OPC_MoveChild0,
/*385256*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385259*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385261*/              OPC_CheckType, MVT::v4i32,
/*385263*/              OPC_MoveParent,
/*385264*/              OPC_MoveParent,
/*385265*/              OPC_CheckType, MVT::v8i16,
/*385267*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*385269*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ256rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSDWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*385277*/            0, /*End of Scope*/
/*385278*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->385309
/*385281*/            OPC_RecordChild0, // #1 = $src
/*385282*/            OPC_MoveParent,
/*385283*/            OPC_MoveChild2,
/*385284*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385287*/            OPC_MoveChild0,
/*385288*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385291*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385293*/            OPC_CheckType, MVT::v4i32,
/*385295*/            OPC_MoveParent,
/*385296*/            OPC_MoveParent,
/*385297*/            OPC_CheckType, MVT::v8i16,
/*385299*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*385301*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ128rrkz), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (zext_invec:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMOVZXBWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*385309*/          /*SwitchOpcode*/ 93, TARGET_VAL(X86ISD::VZEXT),// ->385405
/*385312*/            OPC_RecordChild0, // #1 = $src
/*385313*/            OPC_Scope, 29, /*->385344*/ // 3 children in Scope
/*385315*/              OPC_CheckChild0Type, MVT::v16i8,
/*385317*/              OPC_MoveParent,
/*385318*/              OPC_MoveChild2,
/*385319*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385322*/              OPC_MoveChild0,
/*385323*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385326*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385328*/              OPC_CheckType, MVT::v16i32,
/*385330*/              OPC_MoveParent,
/*385331*/              OPC_MoveParent,
/*385332*/              OPC_CheckType, MVT::v8i64,
/*385334*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385336*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vzext:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVZXBQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*385344*/            /*Scope*/ 29, /*->385374*/
/*385345*/              OPC_CheckChild0Type, MVT::v8i16,
/*385347*/              OPC_MoveParent,
/*385348*/              OPC_MoveChild2,
/*385349*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385352*/              OPC_MoveChild0,
/*385353*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385356*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385358*/              OPC_CheckType, MVT::v16i32,
/*385360*/              OPC_MoveParent,
/*385361*/              OPC_MoveParent,
/*385362*/              OPC_CheckType, MVT::v8i64,
/*385364*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385366*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vzext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVZXWQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*385374*/            /*Scope*/ 29, /*->385404*/
/*385375*/              OPC_CheckChild0Type, MVT::v8i32,
/*385377*/              OPC_MoveParent,
/*385378*/              OPC_MoveChild2,
/*385379*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385382*/              OPC_MoveChild0,
/*385383*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385386*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385388*/              OPC_CheckType, MVT::v16i32,
/*385390*/              OPC_MoveParent,
/*385391*/              OPC_MoveParent,
/*385392*/              OPC_CheckType, MVT::v8i64,
/*385394*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385396*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vzext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVZXDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*385404*/            0, /*End of Scope*/
/*385405*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->385436
/*385408*/            OPC_RecordChild0, // #1 = $src
/*385409*/            OPC_MoveParent,
/*385410*/            OPC_MoveChild2,
/*385411*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385414*/            OPC_MoveChild0,
/*385415*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385418*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385420*/            OPC_CheckType, MVT::v4i32,
/*385422*/            OPC_MoveParent,
/*385423*/            OPC_MoveParent,
/*385424*/            OPC_CheckType, MVT::v8i16,
/*385426*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*385428*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ128rrkz), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (sext_invec:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMOVSXBWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*385436*/          /*SwitchOpcode*/ 93, TARGET_VAL(X86ISD::VSEXT),// ->385532
/*385439*/            OPC_RecordChild0, // #1 = $src
/*385440*/            OPC_Scope, 29, /*->385471*/ // 3 children in Scope
/*385442*/              OPC_CheckChild0Type, MVT::v16i8,
/*385444*/              OPC_MoveParent,
/*385445*/              OPC_MoveChild2,
/*385446*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385449*/              OPC_MoveChild0,
/*385450*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385453*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385455*/              OPC_CheckType, MVT::v16i32,
/*385457*/              OPC_MoveParent,
/*385458*/              OPC_MoveParent,
/*385459*/              OPC_CheckType, MVT::v8i64,
/*385461*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385463*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsext:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSXBQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*385471*/            /*Scope*/ 29, /*->385501*/
/*385472*/              OPC_CheckChild0Type, MVT::v8i16,
/*385474*/              OPC_MoveParent,
/*385475*/              OPC_MoveChild2,
/*385476*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385479*/              OPC_MoveChild0,
/*385480*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385483*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385485*/              OPC_CheckType, MVT::v16i32,
/*385487*/              OPC_MoveParent,
/*385488*/              OPC_MoveParent,
/*385489*/              OPC_CheckType, MVT::v8i64,
/*385491*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385493*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSXWQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*385501*/            /*Scope*/ 29, /*->385531*/
/*385502*/              OPC_CheckChild0Type, MVT::v8i32,
/*385504*/              OPC_MoveParent,
/*385505*/              OPC_MoveChild2,
/*385506*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385509*/              OPC_MoveChild0,
/*385510*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385513*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385515*/              OPC_CheckType, MVT::v16i32,
/*385517*/              OPC_MoveParent,
/*385518*/              OPC_MoveParent,
/*385519*/              OPC_CheckType, MVT::v8i64,
/*385521*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385523*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSXDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*385531*/            0, /*End of Scope*/
/*385532*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::COMPRESS),// ->385581
/*385535*/            OPC_RecordChild0, // #1 = $src1
/*385536*/            OPC_MoveParent,
/*385537*/            OPC_MoveChild2,
/*385538*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385541*/            OPC_MoveChild0,
/*385542*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385545*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385547*/            OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->385564
/*385550*/              OPC_MoveParent,
/*385551*/              OPC_MoveParent,
/*385552*/              OPC_CheckType, MVT::v8i64,
/*385554*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385556*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86compress:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPCOMPRESSQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*385564*/            /*SwitchType*/ 14, MVT::v4i32,// ->385580
/*385566*/              OPC_MoveParent,
/*385567*/              OPC_MoveParent,
/*385568*/              OPC_CheckType, MVT::v8i16,
/*385570*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*385572*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86compress:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPCOMPRESSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*385580*/            0, // EndSwitchType
/*385581*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::EXPAND),// ->385630
/*385584*/            OPC_RecordChild0, // #1 = $src1
/*385585*/            OPC_MoveParent,
/*385586*/            OPC_MoveChild2,
/*385587*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385590*/            OPC_MoveChild0,
/*385591*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385594*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385596*/            OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->385613
/*385599*/              OPC_MoveParent,
/*385600*/              OPC_MoveParent,
/*385601*/              OPC_CheckType, MVT::v8i64,
/*385603*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385605*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPEXPANDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*385613*/            /*SwitchType*/ 14, MVT::v4i32,// ->385629
/*385615*/              OPC_MoveParent,
/*385616*/              OPC_MoveParent,
/*385617*/              OPC_CheckType, MVT::v8i16,
/*385619*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*385621*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPEXPANDWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*385629*/            0, // EndSwitchType
/*385630*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VALIGN),// ->385665
/*385633*/            OPC_RecordChild0, // #1 = $src1
/*385634*/            OPC_RecordChild1, // #2 = $src2
/*385635*/            OPC_RecordChild2, // #3 = $src3
/*385636*/            OPC_MoveChild2,
/*385637*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*385640*/            OPC_MoveParent,
/*385641*/            OPC_MoveParent,
/*385642*/            OPC_MoveChild2,
/*385643*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385646*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385648*/            OPC_MoveParent,
/*385649*/            OPC_CheckType, MVT::v8i32,
/*385651*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*385653*/            OPC_EmitConvertToTarget, 3,
/*385655*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rrikz), 0,
                          MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VALIGNDZ256rrikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*385665*/          /*SwitchOpcode*/ 46, TARGET_VAL(ISD::ABS),// ->385714
/*385668*/            OPC_RecordChild0, // #1 = $src1
/*385669*/            OPC_MoveParent,
/*385670*/            OPC_MoveChild2,
/*385671*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385674*/            OPC_MoveChild0,
/*385675*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385678*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385680*/            OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->385697
/*385683*/              OPC_MoveParent,
/*385684*/              OPC_MoveParent,
/*385685*/              OPC_CheckType, MVT::v8i64,
/*385687*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385689*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPABSQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*385697*/            /*SwitchType*/ 14, MVT::v4i32,// ->385713
/*385699*/              OPC_MoveParent,
/*385700*/              OPC_MoveParent,
/*385701*/              OPC_CheckType, MVT::v8i16,
/*385703*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*385705*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPABSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*385713*/            0, // EndSwitchType
/*385714*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::CTLZ),// ->385745
/*385717*/            OPC_RecordChild0, // #1 = $src1
/*385718*/            OPC_MoveParent,
/*385719*/            OPC_MoveChild2,
/*385720*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385723*/            OPC_MoveChild0,
/*385724*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385727*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385729*/            OPC_CheckType, MVT::v16i32,
/*385731*/            OPC_MoveParent,
/*385732*/            OPC_MoveParent,
/*385733*/            OPC_CheckType, MVT::v8i64,
/*385735*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*385737*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZrrkz), 0,
                          MVT::v8i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPLZCNTQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*385745*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::CONFLICT),// ->385776
/*385748*/            OPC_RecordChild0, // #1 = $src1
/*385749*/            OPC_MoveParent,
/*385750*/            OPC_MoveChild2,
/*385751*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385754*/            OPC_MoveChild0,
/*385755*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385758*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385760*/            OPC_CheckType, MVT::v16i32,
/*385762*/            OPC_MoveParent,
/*385763*/            OPC_MoveParent,
/*385764*/            OPC_CheckType, MVT::v8i64,
/*385766*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*385768*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZrrkz), 0,
                          MVT::v8i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPCONFLICTQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*385776*/          /*SwitchOpcode*/ 46, TARGET_VAL(ISD::CTPOP),// ->385825
/*385779*/            OPC_RecordChild0, // #1 = $src1
/*385780*/            OPC_MoveParent,
/*385781*/            OPC_MoveChild2,
/*385782*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385785*/            OPC_MoveChild0,
/*385786*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385789*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385791*/            OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->385808
/*385794*/              OPC_MoveParent,
/*385795*/              OPC_MoveParent,
/*385796*/              OPC_CheckType, MVT::v8i64,
/*385798*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*385800*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPOPCNTQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*385808*/            /*SwitchType*/ 14, MVT::v4i32,// ->385824
/*385810*/              OPC_MoveParent,
/*385811*/              OPC_MoveParent,
/*385812*/              OPC_CheckType, MVT::v8i16,
/*385814*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*385816*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPOPCNTWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*385824*/            0, // EndSwitchType
/*385825*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::UNPCKL),// ->385877
/*385828*/            OPC_RecordChild0, // #1 = $src1
/*385829*/            OPC_RecordChild1, // #2 = $src2
/*385830*/            OPC_MoveParent,
/*385831*/            OPC_MoveChild2,
/*385832*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385835*/            OPC_MoveChild0,
/*385836*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385839*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385841*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->385859
/*385844*/              OPC_MoveParent,
/*385845*/              OPC_MoveParent,
/*385846*/              OPC_CheckType, MVT::v8i16,
/*385848*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*385850*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKLWDZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*385859*/            /*SwitchType*/ 15, MVT::v16i32,// ->385876
/*385861*/              OPC_MoveParent,
/*385862*/              OPC_MoveParent,
/*385863*/              OPC_CheckType, MVT::v8i64,
/*385865*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385867*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKLQDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*385876*/            0, // EndSwitchType
/*385877*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::UNPCKH),// ->385929
/*385880*/            OPC_RecordChild0, // #1 = $src1
/*385881*/            OPC_RecordChild1, // #2 = $src2
/*385882*/            OPC_MoveParent,
/*385883*/            OPC_MoveChild2,
/*385884*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385887*/            OPC_MoveChild0,
/*385888*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385891*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385893*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->385911
/*385896*/              OPC_MoveParent,
/*385897*/              OPC_MoveParent,
/*385898*/              OPC_CheckType, MVT::v8i16,
/*385900*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*385902*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKHWDZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*385911*/            /*SwitchType*/ 15, MVT::v16i32,// ->385928
/*385913*/              OPC_MoveParent,
/*385914*/              OPC_MoveParent,
/*385915*/              OPC_CheckType, MVT::v8i64,
/*385917*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*385919*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKHQDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*385928*/            0, // EndSwitchType
/*385929*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPTERNLOG),// ->385966
/*385932*/            OPC_RecordChild0, // #1 = $src1
/*385933*/            OPC_RecordChild1, // #2 = $src2
/*385934*/            OPC_RecordChild2, // #3 = $src3
/*385935*/            OPC_RecordChild3, // #4 = $src4
/*385936*/            OPC_MoveChild3,
/*385937*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*385940*/            OPC_MoveParent,
/*385941*/            OPC_MoveParent,
/*385942*/            OPC_MoveChild2,
/*385943*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385946*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385948*/            OPC_MoveParent,
/*385949*/            OPC_CheckType, MVT::v8i32,
/*385951*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*385953*/            OPC_EmitConvertToTarget, 4,
/*385955*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rrikz), 0,
                          MVT::v8i32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPTERNLOGDZ256rrikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*385966*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VSHLDV),// ->386021
/*385969*/            OPC_RecordChild0, // #1 = $src1
/*385970*/            OPC_RecordChild1, // #2 = $src2
/*385971*/            OPC_RecordChild2, // #3 = $src3
/*385972*/            OPC_MoveParent,
/*385973*/            OPC_MoveChild2,
/*385974*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*385977*/            OPC_MoveChild0,
/*385978*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*385981*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*385983*/            OPC_SwitchType /*2 cases */, 16, MVT::v4i32,// ->386002
/*385986*/              OPC_MoveParent,
/*385987*/              OPC_MoveParent,
/*385988*/              OPC_CheckType, MVT::v8i16,
/*385990*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*385992*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ128rkz), 0,
                            MVT::v8i16, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSHLDVWZ128rkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*386002*/            /*SwitchType*/ 16, MVT::v16i32,// ->386020
/*386004*/              OPC_MoveParent,
/*386005*/              OPC_MoveParent,
/*386006*/              OPC_CheckType, MVT::v8i64,
/*386008*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*386010*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZrkz), 0,
                            MVT::v8i64, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSHLDVQZrkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*386020*/            0, // EndSwitchType
/*386021*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VSHRDV),// ->386076
/*386024*/            OPC_RecordChild0, // #1 = $src1
/*386025*/            OPC_RecordChild1, // #2 = $src2
/*386026*/            OPC_RecordChild2, // #3 = $src3
/*386027*/            OPC_MoveParent,
/*386028*/            OPC_MoveChild2,
/*386029*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*386032*/            OPC_MoveChild0,
/*386033*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386036*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386038*/            OPC_SwitchType /*2 cases */, 16, MVT::v4i32,// ->386057
/*386041*/              OPC_MoveParent,
/*386042*/              OPC_MoveParent,
/*386043*/              OPC_CheckType, MVT::v8i16,
/*386045*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*386047*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ128rkz), 0,
                            MVT::v8i16, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSHRDVWZ128rkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*386057*/            /*SwitchType*/ 16, MVT::v16i32,// ->386075
/*386059*/              OPC_MoveParent,
/*386060*/              OPC_MoveParent,
/*386061*/              OPC_CheckType, MVT::v8i64,
/*386063*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*386065*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZrkz), 0,
                            MVT::v8i64, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSHRDVQZrkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*386075*/            0, // EndSwitchType
/*386076*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHLD),// ->386111
/*386079*/            OPC_RecordChild0, // #1 = $src1
/*386080*/            OPC_RecordChild1, // #2 = $src2
/*386081*/            OPC_RecordChild2, // #3 = $src3
/*386082*/            OPC_MoveChild2,
/*386083*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*386086*/            OPC_MoveParent,
/*386087*/            OPC_MoveParent,
/*386088*/            OPC_MoveChild2,
/*386089*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386092*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386094*/            OPC_MoveParent,
/*386095*/            OPC_CheckType, MVT::v8i32,
/*386097*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*386099*/            OPC_EmitConvertToTarget, 3,
/*386101*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rrikz), 0,
                          MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSHLDDZ256rrikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*386111*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHRD),// ->386146
/*386114*/            OPC_RecordChild0, // #1 = $src1
/*386115*/            OPC_RecordChild1, // #2 = $src2
/*386116*/            OPC_RecordChild2, // #3 = $src3
/*386117*/            OPC_MoveChild2,
/*386118*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*386121*/            OPC_MoveParent,
/*386122*/            OPC_MoveParent,
/*386123*/            OPC_MoveChild2,
/*386124*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386127*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386129*/            OPC_MoveParent,
/*386130*/            OPC_CheckType, MVT::v8i32,
/*386132*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*386134*/            OPC_EmitConvertToTarget, 3,
/*386136*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rrikz), 0,
                          MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSHRDDZ256rrikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*386146*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::CVTTP2SI_RND),// ->386207
/*386149*/            OPC_RecordChild0, // #1 = $src
/*386150*/            OPC_Scope, 34, /*->386186*/ // 2 children in Scope
/*386152*/              OPC_CheckChild0Type, MVT::v8f64,
/*386154*/              OPC_CheckChild1Integer, 8, 
/*386156*/              OPC_MoveParent,
/*386157*/              OPC_RecordChild2, // #2 = $src0
/*386158*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->386172
/*386161*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*386163*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrrbk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), VR256X:{ *:[v8i32] }:$src0) - Complexity = 11
                          // Dst: (VCVTTPD2DQZrrbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*386172*/              /*SwitchType*/ 11, MVT::v8i64,// ->386185
/*386174*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*386176*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrrbk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), VR512:{ *:[v8i64] }:$src0) - Complexity = 11
                          // Dst: (VCVTTPD2QQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*386185*/              0, // EndSwitchType
/*386186*/            /*Scope*/ 19, /*->386206*/
/*386187*/              OPC_CheckChild0Type, MVT::v8f32,
/*386189*/              OPC_CheckChild1Integer, 8, 
/*386191*/              OPC_MoveParent,
/*386192*/              OPC_RecordChild2, // #2 = $src0
/*386193*/              OPC_CheckType, MVT::v8i64,
/*386195*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*386197*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrrbk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, 8:{ *:[i32] }), VR512:{ *:[v8i64] }:$src0) - Complexity = 11
                        // Dst: (VCVTTPS2QQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*386206*/            0, /*End of Scope*/
/*386207*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::CVTTP2UI_RND),// ->386268
/*386210*/            OPC_RecordChild0, // #1 = $src
/*386211*/            OPC_Scope, 34, /*->386247*/ // 2 children in Scope
/*386213*/              OPC_CheckChild0Type, MVT::v8f64,
/*386215*/              OPC_CheckChild1Integer, 8, 
/*386217*/              OPC_MoveParent,
/*386218*/              OPC_RecordChild2, // #2 = $src0
/*386219*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->386233
/*386222*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*386224*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrrbk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), VR256X:{ *:[v8i32] }:$src0) - Complexity = 11
                          // Dst: (VCVTTPD2UDQZrrbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*386233*/              /*SwitchType*/ 11, MVT::v8i64,// ->386246
/*386235*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*386237*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrrbk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), VR512:{ *:[v8i64] }:$src0) - Complexity = 11
                          // Dst: (VCVTTPD2UQQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*386246*/              0, // EndSwitchType
/*386247*/            /*Scope*/ 19, /*->386267*/
/*386248*/              OPC_CheckChild0Type, MVT::v8f32,
/*386250*/              OPC_CheckChild1Integer, 8, 
/*386252*/              OPC_MoveParent,
/*386253*/              OPC_RecordChild2, // #2 = $src0
/*386254*/              OPC_CheckType, MVT::v8i64,
/*386256*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*386258*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrrbk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, 8:{ *:[i32] }), VR512:{ *:[v8i64] }:$src0) - Complexity = 11
                        // Dst: (VCVTTPS2UQQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*386267*/            0, /*End of Scope*/
/*386268*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->386302
/*386271*/            OPC_RecordChild0, // #1 = $src
/*386272*/            OPC_CheckChild1Integer, 0, 
/*386274*/            OPC_CheckChild1Type, MVT::iPTR,
/*386276*/            OPC_MoveParent,
/*386277*/            OPC_RecordChild2, // #2 = $src0
/*386278*/            OPC_CheckType, MVT::v8i32,
/*386280*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386282*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*386285*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i32, 2/*#Ops*/, 1, 3,  // Results = #4
/*386293*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rrk), 0,
                          MVT::v8i32, 3/*#Ops*/, 2, 0, 4, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] }), VR256X:{ *:[v8i32] }:$src0) - Complexity = 11
                      // Dst: (VMOVDQA32Z256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, sub_ymm:{ *:[i32] }))
/*386302*/          0, // EndSwitchOpcode
/*386303*/        /*Scope*/ 45, /*->386349*/
/*386304*/          OPC_RecordChild1, // #1 = $src
/*386305*/          OPC_MoveChild2,
/*386306*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*386309*/          OPC_MoveChild0,
/*386310*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386313*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386315*/          OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->386332
/*386318*/            OPC_MoveParent,
/*386319*/            OPC_MoveParent,
/*386320*/            OPC_CheckType, MVT::v8i64,
/*386322*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*386324*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                          MVT::v8i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                      // Dst: (VMOVDQA64Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*386332*/          /*SwitchType*/ 14, MVT::v4i32,// ->386348
/*386334*/            OPC_MoveParent,
/*386335*/            OPC_MoveParent,
/*386336*/            OPC_CheckType, MVT::v8i16,
/*386338*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*386340*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z128rrkz), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                      // Dst: (VMOVDQU16Z128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*386348*/          0, // EndSwitchType
/*386349*/        /*Scope*/ 12|128,10/*1292*/, /*->387643*/
/*386351*/          OPC_MoveChild1,
/*386352*/          OPC_SwitchOpcode /*42 cases */, 23, TARGET_VAL(ISD::ADD),// ->386379
/*386356*/            OPC_RecordChild0, // #1 = $src1
/*386357*/            OPC_RecordChild1, // #2 = $src2
/*386358*/            OPC_MoveParent,
/*386359*/            OPC_MoveChild2,
/*386360*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386363*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386365*/            OPC_MoveParent,
/*386366*/            OPC_CheckType, MVT::v8i32,
/*386368*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386370*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPADDDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386379*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::SUB),// ->386405
/*386382*/            OPC_RecordChild0, // #1 = $src1
/*386383*/            OPC_RecordChild1, // #2 = $src2
/*386384*/            OPC_MoveParent,
/*386385*/            OPC_MoveChild2,
/*386386*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386389*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386391*/            OPC_MoveParent,
/*386392*/            OPC_CheckType, MVT::v8i32,
/*386394*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386396*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSUBDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386405*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::MUL),// ->386431
/*386408*/            OPC_RecordChild0, // #1 = $src1
/*386409*/            OPC_RecordChild1, // #2 = $src2
/*386410*/            OPC_MoveParent,
/*386411*/            OPC_MoveChild2,
/*386412*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386415*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386417*/            OPC_MoveParent,
/*386418*/            OPC_CheckType, MVT::v8i32,
/*386420*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386422*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMULLDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386431*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VPMADDWD),// ->386457
/*386434*/            OPC_RecordChild0, // #1 = $src1
/*386435*/            OPC_RecordChild1, // #2 = $src2
/*386436*/            OPC_MoveParent,
/*386437*/            OPC_MoveChild2,
/*386438*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386441*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386443*/            OPC_MoveParent,
/*386444*/            OPC_CheckType, MVT::v8i32,
/*386446*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*386448*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpmaddwd:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMADDWDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*386457*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::SMAX),// ->386483
/*386460*/            OPC_RecordChild0, // #1 = $src1
/*386461*/            OPC_RecordChild1, // #2 = $src2
/*386462*/            OPC_MoveParent,
/*386463*/            OPC_MoveChild2,
/*386464*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386467*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386469*/            OPC_MoveParent,
/*386470*/            OPC_CheckType, MVT::v8i32,
/*386472*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386474*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMAXSDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386483*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::UMAX),// ->386509
/*386486*/            OPC_RecordChild0, // #1 = $src1
/*386487*/            OPC_RecordChild1, // #2 = $src2
/*386488*/            OPC_MoveParent,
/*386489*/            OPC_MoveChild2,
/*386490*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386493*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386495*/            OPC_MoveParent,
/*386496*/            OPC_CheckType, MVT::v8i32,
/*386498*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386500*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMAXUDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386509*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::SMIN),// ->386535
/*386512*/            OPC_RecordChild0, // #1 = $src1
/*386513*/            OPC_RecordChild1, // #2 = $src2
/*386514*/            OPC_MoveParent,
/*386515*/            OPC_MoveChild2,
/*386516*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386519*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386521*/            OPC_MoveParent,
/*386522*/            OPC_CheckType, MVT::v8i32,
/*386524*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386526*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMINSDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386535*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::UMIN),// ->386561
/*386538*/            OPC_RecordChild0, // #1 = $src1
/*386539*/            OPC_RecordChild1, // #2 = $src2
/*386540*/            OPC_MoveParent,
/*386541*/            OPC_MoveChild2,
/*386542*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386545*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386547*/            OPC_MoveParent,
/*386548*/            OPC_CheckType, MVT::v8i32,
/*386550*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386552*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMINUDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386561*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHL),// ->386589
/*386564*/            OPC_RecordChild0, // #1 = $src1
/*386565*/            OPC_RecordChild1, // #2 = $src2
/*386566*/            OPC_CheckChild1Type, MVT::v4i32,
/*386568*/            OPC_MoveParent,
/*386569*/            OPC_MoveChild2,
/*386570*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386573*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386575*/            OPC_MoveParent,
/*386576*/            OPC_CheckType, MVT::v8i32,
/*386578*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386580*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSLLDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*386589*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSRA),// ->386617
/*386592*/            OPC_RecordChild0, // #1 = $src1
/*386593*/            OPC_RecordChild1, // #2 = $src2
/*386594*/            OPC_CheckChild1Type, MVT::v4i32,
/*386596*/            OPC_MoveParent,
/*386597*/            OPC_MoveChild2,
/*386598*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386601*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386603*/            OPC_MoveParent,
/*386604*/            OPC_CheckType, MVT::v8i32,
/*386606*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386608*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRADZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*386617*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSRL),// ->386645
/*386620*/            OPC_RecordChild0, // #1 = $src1
/*386621*/            OPC_RecordChild1, // #2 = $src2
/*386622*/            OPC_CheckChild1Type, MVT::v4i32,
/*386624*/            OPC_MoveParent,
/*386625*/            OPC_MoveChild2,
/*386626*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386629*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386631*/            OPC_MoveParent,
/*386632*/            OPC_CheckType, MVT::v8i32,
/*386634*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386636*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRLDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*386645*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::SHL),// ->386673
/*386648*/            OPC_RecordChild0, // #1 = $src1
/*386649*/            OPC_RecordChild1, // #2 = $src2
/*386650*/            OPC_CheckChild1Type, MVT::v8i32,
/*386652*/            OPC_MoveParent,
/*386653*/            OPC_MoveChild2,
/*386654*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386657*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386659*/            OPC_MoveParent,
/*386660*/            OPC_CheckType, MVT::v8i32,
/*386662*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386664*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSLLVDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386673*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::SRA),// ->386701
/*386676*/            OPC_RecordChild0, // #1 = $src1
/*386677*/            OPC_RecordChild1, // #2 = $src2
/*386678*/            OPC_CheckChild1Type, MVT::v8i32,
/*386680*/            OPC_MoveParent,
/*386681*/            OPC_MoveChild2,
/*386682*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386685*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386687*/            OPC_MoveParent,
/*386688*/            OPC_CheckType, MVT::v8i32,
/*386690*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386692*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRAVDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386701*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::SRL),// ->386729
/*386704*/            OPC_RecordChild0, // #1 = $src1
/*386705*/            OPC_RecordChild1, // #2 = $src2
/*386706*/            OPC_CheckChild1Type, MVT::v8i32,
/*386708*/            OPC_MoveParent,
/*386709*/            OPC_MoveChild2,
/*386710*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386713*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386715*/            OPC_MoveParent,
/*386716*/            OPC_CheckType, MVT::v8i32,
/*386718*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386720*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRLVDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386729*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::ROTR),// ->386757
/*386732*/            OPC_RecordChild0, // #1 = $src1
/*386733*/            OPC_RecordChild1, // #2 = $src2
/*386734*/            OPC_CheckChild1Type, MVT::v8i32,
/*386736*/            OPC_MoveParent,
/*386737*/            OPC_MoveChild2,
/*386738*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386741*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386743*/            OPC_MoveParent,
/*386744*/            OPC_CheckType, MVT::v8i32,
/*386746*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386748*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPRORVDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386757*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::ROTL),// ->386785
/*386760*/            OPC_RecordChild0, // #1 = $src1
/*386761*/            OPC_RecordChild1, // #2 = $src2
/*386762*/            OPC_CheckChild1Type, MVT::v8i32,
/*386764*/            OPC_MoveParent,
/*386765*/            OPC_MoveChild2,
/*386766*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386769*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386771*/            OPC_MoveParent,
/*386772*/            OPC_CheckType, MVT::v8i32,
/*386774*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386776*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPROLVDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386785*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VSRAV),// ->386811
/*386788*/            OPC_RecordChild0, // #1 = $src1
/*386789*/            OPC_RecordChild1, // #2 = $src2
/*386790*/            OPC_MoveParent,
/*386791*/            OPC_MoveChild2,
/*386792*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386795*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386797*/            OPC_MoveParent,
/*386798*/            OPC_CheckType, MVT::v8i32,
/*386800*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRAVDZ256rrkz:{ *:[v8i32] } VK8:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386811*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VPERMV),// ->386837
/*386814*/            OPC_RecordChild0, // #1 = $src1
/*386815*/            OPC_RecordChild1, // #2 = $src2
/*386816*/            OPC_MoveParent,
/*386817*/            OPC_MoveChild2,
/*386818*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386821*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386823*/            OPC_MoveParent,
/*386824*/            OPC_CheckType, MVT::v8i32,
/*386826*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386828*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPERMDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*386837*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::CVTTP2SI),// ->386889
/*386840*/            OPC_RecordChild0, // #1 = $src
/*386841*/            OPC_Scope, 22, /*->386865*/ // 2 children in Scope
/*386843*/              OPC_CheckChild0Type, MVT::v8f32,
/*386845*/              OPC_MoveParent,
/*386846*/              OPC_MoveChild2,
/*386847*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386850*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386852*/              OPC_MoveParent,
/*386853*/              OPC_CheckType, MVT::v8i32,
/*386855*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386857*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTTPS2DQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*386865*/            /*Scope*/ 22, /*->386888*/
/*386866*/              OPC_CheckChild0Type, MVT::v8f64,
/*386868*/              OPC_MoveParent,
/*386869*/              OPC_MoveChild2,
/*386870*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386873*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386875*/              OPC_MoveParent,
/*386876*/              OPC_CheckType, MVT::v8i32,
/*386878*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*386880*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTTPD2DQZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*386888*/            0, /*End of Scope*/
/*386889*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::CVTTP2UI),// ->386941
/*386892*/            OPC_RecordChild0, // #1 = $src
/*386893*/            OPC_Scope, 22, /*->386917*/ // 2 children in Scope
/*386895*/              OPC_CheckChild0Type, MVT::v8f32,
/*386897*/              OPC_MoveParent,
/*386898*/              OPC_MoveChild2,
/*386899*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386902*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386904*/              OPC_MoveParent,
/*386905*/              OPC_CheckType, MVT::v8i32,
/*386907*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386909*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTTPS2UDQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*386917*/            /*Scope*/ 22, /*->386940*/
/*386918*/              OPC_CheckChild0Type, MVT::v8f64,
/*386920*/              OPC_MoveParent,
/*386921*/              OPC_MoveChild2,
/*386922*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386925*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386927*/              OPC_MoveParent,
/*386928*/              OPC_CheckType, MVT::v8i32,
/*386930*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*386932*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTTPD2UDQZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*386940*/            0, /*End of Scope*/
/*386941*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::CVTP2SI),// ->386993
/*386944*/            OPC_RecordChild0, // #1 = $src
/*386945*/            OPC_Scope, 22, /*->386969*/ // 2 children in Scope
/*386947*/              OPC_CheckChild0Type, MVT::v8f32,
/*386949*/              OPC_MoveParent,
/*386950*/              OPC_MoveChild2,
/*386951*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386954*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386956*/              OPC_MoveParent,
/*386957*/              OPC_CheckType, MVT::v8i32,
/*386959*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386961*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTPS2DQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*386969*/            /*Scope*/ 22, /*->386992*/
/*386970*/              OPC_CheckChild0Type, MVT::v8f64,
/*386972*/              OPC_MoveParent,
/*386973*/              OPC_MoveChild2,
/*386974*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*386977*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*386979*/              OPC_MoveParent,
/*386980*/              OPC_CheckType, MVT::v8i32,
/*386982*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*386984*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTPD2DQZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*386992*/            0, /*End of Scope*/
/*386993*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::CVTP2UI),// ->387045
/*386996*/            OPC_RecordChild0, // #1 = $src
/*386997*/            OPC_Scope, 22, /*->387021*/ // 2 children in Scope
/*386999*/              OPC_CheckChild0Type, MVT::v8f32,
/*387001*/              OPC_MoveParent,
/*387002*/              OPC_MoveChild2,
/*387003*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387006*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387008*/              OPC_MoveParent,
/*387009*/              OPC_CheckType, MVT::v8i32,
/*387011*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387013*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTPS2UDQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*387021*/            /*Scope*/ 22, /*->387044*/
/*387022*/              OPC_CheckChild0Type, MVT::v8f64,
/*387024*/              OPC_MoveParent,
/*387025*/              OPC_MoveChild2,
/*387026*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387029*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387031*/              OPC_MoveParent,
/*387032*/              OPC_CheckType, MVT::v8i32,
/*387034*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*387036*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VCVTPD2UDQZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*387044*/            0, /*End of Scope*/
/*387045*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::TRUNCATE),// ->387069
/*387048*/            OPC_RecordChild0, // #1 = $src1
/*387049*/            OPC_MoveParent,
/*387050*/            OPC_MoveChild2,
/*387051*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387054*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387056*/            OPC_MoveParent,
/*387057*/            OPC_CheckType, MVT::v8i32,
/*387059*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*387061*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZrrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMOVQDZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*387069*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VTRUNCS),// ->387095
/*387072*/            OPC_RecordChild0, // #1 = $src1
/*387073*/            OPC_CheckChild0Type, MVT::v8i64,
/*387075*/            OPC_MoveParent,
/*387076*/            OPC_MoveChild2,
/*387077*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387080*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387082*/            OPC_MoveParent,
/*387083*/            OPC_CheckType, MVT::v8i32,
/*387085*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*387087*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZrrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMOVSQDZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*387095*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VTRUNCUS),// ->387121
/*387098*/            OPC_RecordChild0, // #1 = $src1
/*387099*/            OPC_CheckChild0Type, MVT::v8i64,
/*387101*/            OPC_MoveParent,
/*387102*/            OPC_MoveChild2,
/*387103*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387106*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387108*/            OPC_MoveParent,
/*387109*/            OPC_CheckType, MVT::v8i32,
/*387111*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*387113*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZrrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMOVUSQDZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*387121*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VZEXT),// ->387173
/*387124*/            OPC_RecordChild0, // #1 = $src
/*387125*/            OPC_Scope, 22, /*->387149*/ // 2 children in Scope
/*387127*/              OPC_CheckChild0Type, MVT::v16i8,
/*387129*/              OPC_MoveParent,
/*387130*/              OPC_MoveChild2,
/*387131*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387134*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387136*/              OPC_MoveParent,
/*387137*/              OPC_CheckType, MVT::v8i32,
/*387139*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387141*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vzext:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVZXBDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*387149*/            /*Scope*/ 22, /*->387172*/
/*387150*/              OPC_CheckChild0Type, MVT::v8i16,
/*387152*/              OPC_MoveParent,
/*387153*/              OPC_MoveChild2,
/*387154*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387157*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387159*/              OPC_MoveParent,
/*387160*/              OPC_CheckType, MVT::v8i32,
/*387162*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387164*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vzext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVZXWDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*387172*/            0, /*End of Scope*/
/*387173*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VSEXT),// ->387225
/*387176*/            OPC_RecordChild0, // #1 = $src
/*387177*/            OPC_Scope, 22, /*->387201*/ // 2 children in Scope
/*387179*/              OPC_CheckChild0Type, MVT::v16i8,
/*387181*/              OPC_MoveParent,
/*387182*/              OPC_MoveChild2,
/*387183*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387186*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387188*/              OPC_MoveParent,
/*387189*/              OPC_CheckType, MVT::v8i32,
/*387191*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387193*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsext:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVSXBDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*387201*/            /*Scope*/ 22, /*->387224*/
/*387202*/              OPC_CheckChild0Type, MVT::v8i16,
/*387204*/              OPC_MoveParent,
/*387205*/              OPC_MoveChild2,
/*387206*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387209*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387211*/              OPC_MoveParent,
/*387212*/              OPC_CheckType, MVT::v8i32,
/*387214*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387216*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVSXWDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*387224*/            0, /*End of Scope*/
/*387225*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::COMPRESS),// ->387249
/*387228*/            OPC_RecordChild0, // #1 = $src1
/*387229*/            OPC_MoveParent,
/*387230*/            OPC_MoveChild2,
/*387231*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387234*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387236*/            OPC_MoveParent,
/*387237*/            OPC_CheckType, MVT::v8i32,
/*387239*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387241*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZ256rrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86compress:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPCOMPRESSDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*387249*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::EXPAND),// ->387273
/*387252*/            OPC_RecordChild0, // #1 = $src1
/*387253*/            OPC_MoveParent,
/*387254*/            OPC_MoveChild2,
/*387255*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387258*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387260*/            OPC_MoveParent,
/*387261*/            OPC_CheckType, MVT::v8i32,
/*387263*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387265*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPEXPANDDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*387273*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::ABS),// ->387297
/*387276*/            OPC_RecordChild0, // #1 = $src1
/*387277*/            OPC_MoveParent,
/*387278*/            OPC_MoveChild2,
/*387279*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387282*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387284*/            OPC_MoveParent,
/*387285*/            OPC_CheckType, MVT::v8i32,
/*387287*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387289*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPABSDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*387297*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::CTLZ),// ->387321
/*387300*/            OPC_RecordChild0, // #1 = $src1
/*387301*/            OPC_MoveParent,
/*387302*/            OPC_MoveChild2,
/*387303*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387306*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387308*/            OPC_MoveParent,
/*387309*/            OPC_CheckType, MVT::v8i32,
/*387311*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*387313*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPLZCNTDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*387321*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::CONFLICT),// ->387345
/*387324*/            OPC_RecordChild0, // #1 = $src1
/*387325*/            OPC_MoveParent,
/*387326*/            OPC_MoveChild2,
/*387327*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387330*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387332*/            OPC_MoveParent,
/*387333*/            OPC_CheckType, MVT::v8i32,
/*387335*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*387337*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPCONFLICTDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*387345*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::CTPOP),// ->387369
/*387348*/            OPC_RecordChild0, // #1 = $src1
/*387349*/            OPC_MoveParent,
/*387350*/            OPC_MoveChild2,
/*387351*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387354*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387356*/            OPC_MoveParent,
/*387357*/            OPC_CheckType, MVT::v8i32,
/*387359*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*387361*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPOPCNTDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*387369*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::UNPCKL),// ->387395
/*387372*/            OPC_RecordChild0, // #1 = $src1
/*387373*/            OPC_RecordChild1, // #2 = $src2
/*387374*/            OPC_MoveParent,
/*387375*/            OPC_MoveChild2,
/*387376*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387379*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387381*/            OPC_MoveParent,
/*387382*/            OPC_CheckType, MVT::v8i32,
/*387384*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387386*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPUNPCKLDQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*387395*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::UNPCKH),// ->387421
/*387398*/            OPC_RecordChild0, // #1 = $src1
/*387399*/            OPC_RecordChild1, // #2 = $src2
/*387400*/            OPC_MoveParent,
/*387401*/            OPC_MoveChild2,
/*387402*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387405*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387407*/            OPC_MoveParent,
/*387408*/            OPC_CheckType, MVT::v8i32,
/*387410*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ256rrkz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPUNPCKHDQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*387421*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHLDV),// ->387449
/*387424*/            OPC_RecordChild0, // #1 = $src1
/*387425*/            OPC_RecordChild1, // #2 = $src2
/*387426*/            OPC_RecordChild2, // #3 = $src3
/*387427*/            OPC_MoveParent,
/*387428*/            OPC_MoveChild2,
/*387429*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387432*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387434*/            OPC_MoveParent,
/*387435*/            OPC_CheckType, MVT::v8i32,
/*387437*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*387439*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ256rkz), 0,
                          MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSHLDVDZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*387449*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHRDV),// ->387477
/*387452*/            OPC_RecordChild0, // #1 = $src1
/*387453*/            OPC_RecordChild1, // #2 = $src2
/*387454*/            OPC_RecordChild2, // #3 = $src3
/*387455*/            OPC_MoveParent,
/*387456*/            OPC_MoveChild2,
/*387457*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387460*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387462*/            OPC_MoveParent,
/*387463*/            OPC_CheckType, MVT::v8i32,
/*387465*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*387467*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ256rkz), 0,
                          MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSHRDVDZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*387477*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPBUSD),// ->387505
/*387480*/            OPC_RecordChild0, // #1 = $src1
/*387481*/            OPC_RecordChild1, // #2 = $src2
/*387482*/            OPC_RecordChild2, // #3 = $src3
/*387483*/            OPC_MoveParent,
/*387484*/            OPC_MoveChild2,
/*387485*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387488*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387490*/            OPC_MoveParent,
/*387491*/            OPC_CheckType, MVT::v8i32,
/*387493*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*387495*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ256rkz), 0,
                          MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPBUSDZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*387505*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPBUSDS),// ->387533
/*387508*/            OPC_RecordChild0, // #1 = $src1
/*387509*/            OPC_RecordChild1, // #2 = $src2
/*387510*/            OPC_RecordChild2, // #3 = $src3
/*387511*/            OPC_MoveParent,
/*387512*/            OPC_MoveChild2,
/*387513*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387516*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387518*/            OPC_MoveParent,
/*387519*/            OPC_CheckType, MVT::v8i32,
/*387521*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*387523*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ256rkz), 0,
                          MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPBUSDSZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*387533*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPWSSD),// ->387561
/*387536*/            OPC_RecordChild0, // #1 = $src1
/*387537*/            OPC_RecordChild1, // #2 = $src2
/*387538*/            OPC_RecordChild2, // #3 = $src3
/*387539*/            OPC_MoveParent,
/*387540*/            OPC_MoveChild2,
/*387541*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387544*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387546*/            OPC_MoveParent,
/*387547*/            OPC_CheckType, MVT::v8i32,
/*387549*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*387551*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256rkz), 0,
                          MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPWSSDZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*387561*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPWSSDS),// ->387589
/*387564*/            OPC_RecordChild0, // #1 = $src1
/*387565*/            OPC_RecordChild1, // #2 = $src2
/*387566*/            OPC_RecordChild2, // #3 = $src3
/*387567*/            OPC_MoveParent,
/*387568*/            OPC_MoveChild2,
/*387569*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387572*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387574*/            OPC_MoveParent,
/*387575*/            OPC_CheckType, MVT::v8i32,
/*387577*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*387579*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ256rkz), 0,
                          MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPWSSDSZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*387589*/          /*SwitchOpcode*/ 50, TARGET_VAL(ISD::BITCAST),// ->387642
/*387592*/            OPC_MoveChild0,
/*387593*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387596*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387598*/            OPC_CheckType, MVT::v16i32,
/*387600*/            OPC_MoveParent,
/*387601*/            OPC_MoveParent,
/*387602*/            OPC_RecordChild2, // #1 = $src
/*387603*/            OPC_CheckType, MVT::v8i64,
/*387605*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*387608*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*387616*/            OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                          MVT::v16i1, 1/*#Ops*/, 3,  // Results = #4
/*387623*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*387626*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 4, 5,  // Results = #6
/*387634*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                          MVT::v8i64, 2/*#Ops*/, 6, 1, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR512:{ *:[v8i64] }:$src) - Complexity = 10
                      // Dst: (VMOVDQA64Zrrkz:{ *:[v8i64] } (COPY_TO_REGCLASS:{ *:[v8i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] })), VK8:{ *:[i32] }), VR512:{ *:[v8i64] }:$src)
/*387642*/          0, // EndSwitchOpcode
/*387643*/        /*Scope*/ 72|128,1/*200*/, /*->387845*/
/*387645*/          OPC_RecordChild1, // #1 = $src1
/*387646*/          OPC_Scope, 66, /*->387714*/ // 2 children in Scope
/*387648*/            OPC_MoveChild2,
/*387649*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*387652*/            OPC_MoveChild0,
/*387653*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*387656*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*387658*/            OPC_CheckType, MVT::v4i32,
/*387660*/            OPC_MoveParent,
/*387661*/            OPC_MoveParent,
/*387662*/            OPC_CheckType, MVT::v8i16,
/*387664*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*387666*/            OPC_EmitInteger, MVT::i32, X86::VK32WMRegClassID,
/*387669*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*387677*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #4
/*387683*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*387686*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*387695*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU16Zrrkz), 0,
                          MVT::v32i16, 2/*#Ops*/, 3, 6,  // Results = #7
/*387703*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*387706*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 7, 8, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                      // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } (VMOVDQU16Zrrkz:{ *:[v32i16] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8WM:{ *:[v8i1] }:$mask, VK32WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*387714*/          /*Scope*/ 0|128,1/*128*/, /*->387844*/
/*387716*/            OPC_MoveChild1,
/*387717*/            OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->387813
/*387721*/              OPC_RecordChild0, // #2 = $src1
/*387722*/              OPC_RecordChild1, // #3 = $src2
/*387723*/              OPC_Scope, 27, /*->387752*/ // 3 children in Scope
/*387725*/                OPC_MoveChild2,
/*387726*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387729*/                OPC_CheckType, MVT::iPTR,
/*387731*/                OPC_MoveParent,
/*387732*/                OPC_MoveParent,
/*387733*/                OPC_RecordChild2, // #4 = $src0
/*387734*/                OPC_CheckType, MVT::v8i32,
/*387736*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387738*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*387741*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rrk), 0,
                              MVT::v8i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VINSERTI32x4Z256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*387752*/              /*Scope*/ 29, /*->387782*/
/*387753*/                OPC_CheckChild1Type, MVT::v4i64,
/*387755*/                OPC_MoveChild2,
/*387756*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387759*/                OPC_CheckType, MVT::iPTR,
/*387761*/                OPC_MoveParent,
/*387762*/                OPC_MoveParent,
/*387763*/                OPC_RecordChild2, // #4 = $src0
/*387764*/                OPC_CheckType, MVT::v8i64,
/*387766*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*387768*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*387771*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrrk), 0,
                              MVT::v8i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VINSERTI64x4Zrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*387782*/              /*Scope*/ 29, /*->387812*/
/*387783*/                OPC_CheckChild1Type, MVT::v2i64,
/*387785*/                OPC_MoveChild2,
/*387786*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387789*/                OPC_CheckType, MVT::iPTR,
/*387791*/                OPC_MoveParent,
/*387792*/                OPC_MoveParent,
/*387793*/                OPC_RecordChild2, // #4 = $src0
/*387794*/                OPC_CheckType, MVT::v8i64,
/*387796*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*387798*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*387801*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x2Zrrk), 0,
                              MVT::v8i64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VINSERTI64x2Zrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*387812*/              0, /*End of Scope*/
/*387813*/            /*SwitchOpcode*/ 27, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->387843
/*387816*/              OPC_RecordChild0, // #2 = $src1
/*387817*/              OPC_MoveChild1,
/*387818*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387821*/              OPC_CheckType, MVT::iPTR,
/*387823*/              OPC_MoveParent,
/*387824*/              OPC_MoveParent,
/*387825*/              OPC_RecordChild2, // #3 = $src0
/*387826*/              OPC_CheckType, MVT::v8i32,
/*387828*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*387830*/              OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*387833*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x8Zrrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx, VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VEXTRACTI32x8Zrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*387843*/            0, // EndSwitchOpcode
/*387844*/          0, /*End of Scope*/
/*387845*/        /*Scope*/ 98|128,8/*1122*/, /*->388969*/
/*387847*/          OPC_MoveChild1,
/*387848*/          OPC_SwitchOpcode /*19 cases */, 123, TARGET_VAL(ISD::BITCAST),// ->387975
/*387852*/            OPC_MoveChild0,
/*387853*/            OPC_SwitchOpcode /*5 cases */, 21, TARGET_VAL(X86ISD::VBROADCAST),// ->387878
/*387857*/              OPC_RecordChild0, // #1 = $src
/*387858*/              OPC_CheckChild0Type, MVT::v2i64,
/*387860*/              OPC_CheckType, MVT::v4i64,
/*387862*/              OPC_MoveParent,
/*387863*/              OPC_MoveParent,
/*387864*/              OPC_RecordChild2, // #2 = $src0
/*387865*/              OPC_CheckType, MVT::v8i32,
/*387867*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*387869*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Z256rk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VBroadcast:{ *:[v4i64] } VR128X:{ *:[v2i64] }:$src)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VBROADCASTI32X2Z256rk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*387878*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::AND),// ->387902
/*387881*/              OPC_RecordChild0, // #1 = $src1
/*387882*/              OPC_RecordChild1, // #2 = $src2
/*387883*/              OPC_CheckType, MVT::v4i64,
/*387885*/              OPC_MoveParent,
/*387886*/              OPC_MoveParent,
/*387887*/              OPC_RecordChild2, // #3 = $src0
/*387888*/              OPC_CheckType, MVT::v8i32,
/*387890*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387892*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPANDDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*387902*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::OR),// ->387926
/*387905*/              OPC_RecordChild0, // #1 = $src1
/*387906*/              OPC_RecordChild1, // #2 = $src2
/*387907*/              OPC_CheckType, MVT::v4i64,
/*387909*/              OPC_MoveParent,
/*387910*/              OPC_MoveParent,
/*387911*/              OPC_RecordChild2, // #3 = $src0
/*387912*/              OPC_CheckType, MVT::v8i32,
/*387914*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387916*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPORDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*387926*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::XOR),// ->387950
/*387929*/              OPC_RecordChild0, // #1 = $src1
/*387930*/              OPC_RecordChild1, // #2 = $src2
/*387931*/              OPC_CheckType, MVT::v4i64,
/*387933*/              OPC_MoveParent,
/*387934*/              OPC_MoveParent,
/*387935*/              OPC_RecordChild2, // #3 = $src0
/*387936*/              OPC_CheckType, MVT::v8i32,
/*387938*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387940*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPXORDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*387950*/            /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::ANDNP),// ->387974
/*387953*/              OPC_RecordChild0, // #1 = $src1
/*387954*/              OPC_RecordChild1, // #2 = $src2
/*387955*/              OPC_CheckType, MVT::v4i64,
/*387957*/              OPC_MoveParent,
/*387958*/              OPC_MoveParent,
/*387959*/              OPC_RecordChild2, // #3 = $src0
/*387960*/              OPC_CheckType, MVT::v8i32,
/*387962*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387964*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPANDNDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*387974*/            0, // EndSwitchOpcode
/*387975*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VSRLI),// ->388037
/*387978*/            OPC_RecordChild0, // #1 = $src1
/*387979*/            OPC_RecordChild1, // #2 = $src2
/*387980*/            OPC_MoveChild1,
/*387981*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387984*/            OPC_MoveParent,
/*387985*/            OPC_MoveParent,
/*387986*/            OPC_RecordChild2, // #3 = $src0
/*387987*/            OPC_SwitchType /*3 cases */, 14, MVT::v8i32,// ->388004
/*387990*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387992*/              OPC_EmitConvertToTarget, 2,
/*387994*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256rik), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRLDZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*388004*/            /*SwitchType*/ 14, MVT::v8i64,// ->388020
/*388006*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388008*/              OPC_EmitConvertToTarget, 2,
/*388010*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZrik), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPSRLQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*388020*/            /*SwitchType*/ 14, MVT::v8i16,// ->388036
/*388022*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*388024*/              OPC_EmitConvertToTarget, 2,
/*388026*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128rik), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VPSRLWZ128rik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*388036*/            0, // EndSwitchType
/*388037*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VSHLI),// ->388099
/*388040*/            OPC_RecordChild0, // #1 = $src1
/*388041*/            OPC_RecordChild1, // #2 = $src2
/*388042*/            OPC_MoveChild1,
/*388043*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388046*/            OPC_MoveParent,
/*388047*/            OPC_MoveParent,
/*388048*/            OPC_RecordChild2, // #3 = $src0
/*388049*/            OPC_SwitchType /*3 cases */, 14, MVT::v8i32,// ->388066
/*388052*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388054*/              OPC_EmitConvertToTarget, 2,
/*388056*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256rik), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPSLLDZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*388066*/            /*SwitchType*/ 14, MVT::v8i64,// ->388082
/*388068*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388070*/              OPC_EmitConvertToTarget, 2,
/*388072*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZrik), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPSLLQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*388082*/            /*SwitchType*/ 14, MVT::v8i16,// ->388098
/*388084*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*388086*/              OPC_EmitConvertToTarget, 2,
/*388088*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128rik), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VPSLLWZ128rik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*388098*/            0, // EndSwitchType
/*388099*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VSRAI),// ->388161
/*388102*/            OPC_RecordChild0, // #1 = $src1
/*388103*/            OPC_RecordChild1, // #2 = $src2
/*388104*/            OPC_MoveChild1,
/*388105*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388108*/            OPC_MoveParent,
/*388109*/            OPC_MoveParent,
/*388110*/            OPC_RecordChild2, // #3 = $src0
/*388111*/            OPC_SwitchType /*3 cases */, 14, MVT::v8i32,// ->388128
/*388114*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388116*/              OPC_EmitConvertToTarget, 2,
/*388118*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256rik), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRADZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*388128*/            /*SwitchType*/ 14, MVT::v8i64,// ->388144
/*388130*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388132*/              OPC_EmitConvertToTarget, 2,
/*388134*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZrik), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPSRAQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*388144*/            /*SwitchType*/ 14, MVT::v8i16,// ->388160
/*388146*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*388148*/              OPC_EmitConvertToTarget, 2,
/*388150*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128rik), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VPSRAWZ128rik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*388160*/            0, // EndSwitchType
/*388161*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VROTRI),// ->388207
/*388164*/            OPC_RecordChild0, // #1 = $src1
/*388165*/            OPC_RecordChild1, // #2 = $src2
/*388166*/            OPC_MoveChild1,
/*388167*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388170*/            OPC_MoveParent,
/*388171*/            OPC_MoveParent,
/*388172*/            OPC_RecordChild2, // #3 = $src0
/*388173*/            OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->388190
/*388176*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388178*/              OPC_EmitConvertToTarget, 2,
/*388180*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256rik), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPRORDZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*388190*/            /*SwitchType*/ 14, MVT::v8i64,// ->388206
/*388192*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388194*/              OPC_EmitConvertToTarget, 2,
/*388196*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZrik), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPRORQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*388206*/            0, // EndSwitchType
/*388207*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VROTLI),// ->388253
/*388210*/            OPC_RecordChild0, // #1 = $src1
/*388211*/            OPC_RecordChild1, // #2 = $src2
/*388212*/            OPC_MoveChild1,
/*388213*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388216*/            OPC_MoveParent,
/*388217*/            OPC_MoveParent,
/*388218*/            OPC_RecordChild2, // #3 = $src0
/*388219*/            OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->388236
/*388222*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388224*/              OPC_EmitConvertToTarget, 2,
/*388226*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256rik), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPROLDZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*388236*/            /*SwitchType*/ 14, MVT::v8i64,// ->388252
/*388238*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388240*/              OPC_EmitConvertToTarget, 2,
/*388242*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZrik), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPROLQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*388252*/            0, // EndSwitchType
/*388253*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPERMI),// ->388281
/*388256*/            OPC_RecordChild0, // #1 = $src1
/*388257*/            OPC_RecordChild1, // #2 = $src2
/*388258*/            OPC_MoveChild1,
/*388259*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388262*/            OPC_MoveParent,
/*388263*/            OPC_MoveParent,
/*388264*/            OPC_RecordChild2, // #3 = $src0
/*388265*/            OPC_CheckType, MVT::v8i64,
/*388267*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388269*/            OPC_EmitConvertToTarget, 2,
/*388271*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrik), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                      // Dst: (VPERMQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*388281*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::PSHUFD),// ->388309
/*388284*/            OPC_RecordChild0, // #1 = $src1
/*388285*/            OPC_RecordChild1, // #2 = $src2
/*388286*/            OPC_MoveChild1,
/*388287*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388290*/            OPC_MoveParent,
/*388291*/            OPC_MoveParent,
/*388292*/            OPC_RecordChild2, // #3 = $src0
/*388293*/            OPC_CheckType, MVT::v8i32,
/*388295*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388297*/            OPC_EmitConvertToTarget, 2,
/*388299*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256rik), 0,
                          MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFDZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*388309*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::PSHUFHW),// ->388337
/*388312*/            OPC_RecordChild0, // #1 = $src1
/*388313*/            OPC_RecordChild1, // #2 = $src2
/*388314*/            OPC_MoveChild1,
/*388315*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388318*/            OPC_MoveParent,
/*388319*/            OPC_MoveParent,
/*388320*/            OPC_RecordChild2, // #3 = $src0
/*388321*/            OPC_CheckType, MVT::v8i16,
/*388323*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*388325*/            OPC_EmitConvertToTarget, 2,
/*388327*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128rik), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufhw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFHWZ128rik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*388337*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::PSHUFLW),// ->388365
/*388340*/            OPC_RecordChild0, // #1 = $src1
/*388341*/            OPC_RecordChild1, // #2 = $src2
/*388342*/            OPC_MoveChild1,
/*388343*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388346*/            OPC_MoveParent,
/*388347*/            OPC_MoveParent,
/*388348*/            OPC_RecordChild2, // #3 = $src0
/*388349*/            OPC_CheckType, MVT::v8i16,
/*388351*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*388353*/            OPC_EmitConvertToTarget, 2,
/*388355*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128rik), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShuflw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFLWZ128rik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*388365*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::CVTP2SI_RND),// ->388443
/*388368*/            OPC_RecordChild0, // #1 = $src
/*388369*/            OPC_Scope, 44, /*->388415*/ // 2 children in Scope
/*388371*/              OPC_CheckChild0Type, MVT::v8f64,
/*388373*/              OPC_RecordChild1, // #2 = $rc
/*388374*/              OPC_MoveChild1,
/*388375*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388378*/              OPC_MoveParent,
/*388379*/              OPC_MoveParent,
/*388380*/              OPC_RecordChild2, // #3 = $src0
/*388381*/              OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->388398
/*388384*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388386*/                OPC_EmitConvertToTarget, 2,
/*388388*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrrbk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VCVTPD2DQZrrbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*388398*/              /*SwitchType*/ 14, MVT::v8i64,// ->388414
/*388400*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*388402*/                OPC_EmitConvertToTarget, 2,
/*388404*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrrbk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VCVTPD2QQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*388414*/              0, // EndSwitchType
/*388415*/            /*Scope*/ 26, /*->388442*/
/*388416*/              OPC_CheckChild0Type, MVT::v8f32,
/*388418*/              OPC_RecordChild1, // #2 = $rc
/*388419*/              OPC_MoveChild1,
/*388420*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388423*/              OPC_MoveParent,
/*388424*/              OPC_MoveParent,
/*388425*/              OPC_RecordChild2, // #3 = $src0
/*388426*/              OPC_CheckType, MVT::v8i64,
/*388428*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*388430*/              OPC_EmitConvertToTarget, 2,
/*388432*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrrbk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VCVTPS2QQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc)
/*388442*/            0, /*End of Scope*/
/*388443*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::CVTP2UI_RND),// ->388521
/*388446*/            OPC_RecordChild0, // #1 = $src
/*388447*/            OPC_Scope, 44, /*->388493*/ // 2 children in Scope
/*388449*/              OPC_CheckChild0Type, MVT::v8f64,
/*388451*/              OPC_RecordChild1, // #2 = $rc
/*388452*/              OPC_MoveChild1,
/*388453*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388456*/              OPC_MoveParent,
/*388457*/              OPC_MoveParent,
/*388458*/              OPC_RecordChild2, // #3 = $src0
/*388459*/              OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->388476
/*388462*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388464*/                OPC_EmitConvertToTarget, 2,
/*388466*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrrbk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VCVTPD2UDQZrrbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*388476*/              /*SwitchType*/ 14, MVT::v8i64,// ->388492
/*388478*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*388480*/                OPC_EmitConvertToTarget, 2,
/*388482*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrrbk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VCVTPD2UQQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*388492*/              0, // EndSwitchType
/*388493*/            /*Scope*/ 26, /*->388520*/
/*388494*/              OPC_CheckChild0Type, MVT::v8f32,
/*388496*/              OPC_RecordChild1, // #2 = $rc
/*388497*/              OPC_MoveChild1,
/*388498*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388501*/              OPC_MoveParent,
/*388502*/              OPC_MoveParent,
/*388503*/              OPC_RecordChild2, // #3 = $src0
/*388504*/              OPC_CheckType, MVT::v8i64,
/*388506*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*388508*/              OPC_EmitConvertToTarget, 2,
/*388510*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrrbk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VCVTPS2UQQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc)
/*388520*/            0, /*End of Scope*/
/*388521*/          /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::CVTPS2PH),// ->388581
/*388524*/            OPC_RecordChild0, // #1 = $src1
/*388525*/            OPC_Scope, 26, /*->388553*/ // 2 children in Scope
/*388527*/              OPC_CheckChild0Type, MVT::v8f32,
/*388529*/              OPC_RecordChild1, // #2 = $src2
/*388530*/              OPC_MoveChild1,
/*388531*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388534*/              OPC_MoveParent,
/*388535*/              OPC_MoveParent,
/*388536*/              OPC_RecordChild2, // #3 = $src0
/*388537*/              OPC_CheckType, MVT::v8i16,
/*388539*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388541*/              OPC_EmitConvertToTarget, 2,
/*388543*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ256rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtps2ph:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VCVTPS2PHZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*388553*/            /*Scope*/ 26, /*->388580*/
/*388554*/              OPC_CheckChild0Type, MVT::v4f32,
/*388556*/              OPC_RecordChild1, // #2 = $src2
/*388557*/              OPC_MoveChild1,
/*388558*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388561*/              OPC_MoveParent,
/*388562*/              OPC_MoveParent,
/*388563*/              OPC_RecordChild2, // #3 = $src0
/*388564*/              OPC_CheckType, MVT::v8i16,
/*388566*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388568*/              OPC_EmitConvertToTarget, 2,
/*388570*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtps2ph:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VCVTPS2PHZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*388580*/            0, /*End of Scope*/
/*388581*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::SHUF128),// ->388611
/*388584*/            OPC_RecordChild0, // #1 = $src1
/*388585*/            OPC_RecordChild1, // #2 = $src2
/*388586*/            OPC_RecordChild2, // #3 = $src3
/*388587*/            OPC_MoveChild2,
/*388588*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388591*/            OPC_MoveParent,
/*388592*/            OPC_MoveParent,
/*388593*/            OPC_RecordChild2, // #4 = $src0
/*388594*/            OPC_CheckType, MVT::v8i64,
/*388596*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388598*/            OPC_EmitConvertToTarget, 3,
/*388600*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrrik), 0,
                          MVT::v8i64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                      // Dst: (VSHUFI64X2Zrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*388611*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VALIGN),// ->388660
/*388614*/            OPC_RecordChild0, // #1 = $src1
/*388615*/            OPC_RecordChild1, // #2 = $src2
/*388616*/            OPC_RecordChild2, // #3 = $src3
/*388617*/            OPC_MoveChild2,
/*388618*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388621*/            OPC_MoveParent,
/*388622*/            OPC_MoveParent,
/*388623*/            OPC_RecordChild2, // #4 = $src0
/*388624*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->388642
/*388627*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388629*/              OPC_EmitConvertToTarget, 3,
/*388631*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rrik), 0,
                            MVT::v8i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VALIGNDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*388642*/            /*SwitchType*/ 15, MVT::v8i64,// ->388659
/*388644*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388646*/              OPC_EmitConvertToTarget, 3,
/*388648*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrrik), 0,
                            MVT::v8i64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VALIGNQZrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*388659*/            0, // EndSwitchType
/*388660*/          /*SwitchOpcode*/ 29, TARGET_VAL(X86ISD::DBPSADBW),// ->388692
/*388663*/            OPC_RecordChild0, // #1 = $src1
/*388664*/            OPC_RecordChild1, // #2 = $src2
/*388665*/            OPC_RecordChild2, // #3 = $src3
/*388666*/            OPC_MoveChild2,
/*388667*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388670*/            OPC_CheckType, MVT::i8,
/*388672*/            OPC_MoveParent,
/*388673*/            OPC_MoveParent,
/*388674*/            OPC_RecordChild2, // #4 = $src0
/*388675*/            OPC_CheckType, MVT::v8i16,
/*388677*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*388679*/            OPC_EmitConvertToTarget, 3,
/*388681*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rrik), 0,
                          MVT::v8i16, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                      // Dst: (VDBPSADBWZ128rrik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*388692*/          /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->388836
/*388696*/            OPC_RecordChild0, // #1 = $src1
/*388697*/            OPC_RecordChild1, // #2 = $src2
/*388698*/            OPC_RecordChild2, // #3 = $src3
/*388699*/            OPC_RecordChild3, // #4 = $src4
/*388700*/            OPC_MoveChild3,
/*388701*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388704*/            OPC_MoveParent,
/*388705*/            OPC_MoveParent,
/*388706*/            OPC_SwitchType /*2 cases */, 62, MVT::v8i32,// ->388771
/*388709*/              OPC_Scope, 17, /*->388728*/ // 3 children in Scope
/*388711*/                OPC_CheckChild2Same, 1,
/*388713*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388715*/                OPC_EmitConvertToTarget, 4,
/*388717*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rrik), 0,
                              MVT::v8i32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*388728*/              /*Scope*/ 20, /*->388749*/
/*388729*/                OPC_CheckChild2Same, 3,
/*388731*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388733*/                OPC_EmitConvertToTarget, 4,
/*388735*/                OPC_EmitNodeXForm, 15, 5, // VPTERNLOG321_imm8
/*388738*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rrik), 0,
                              MVT::v8i32, 5/*#Ops*/, 3, 0, 2, 1, 6, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src3, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*388749*/              /*Scope*/ 20, /*->388770*/
/*388750*/                OPC_CheckChild2Same, 2,
/*388752*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388754*/                OPC_EmitConvertToTarget, 4,
/*388756*/                OPC_EmitNodeXForm, 17, 5, // VPTERNLOG213_imm8
/*388759*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rrik), 0,
                              MVT::v8i32, 5/*#Ops*/, 2, 0, 1, 3, 6, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*388770*/              0, /*End of Scope*/
/*388771*/            /*SwitchType*/ 62, MVT::v8i64,// ->388835
/*388773*/              OPC_Scope, 17, /*->388792*/ // 3 children in Scope
/*388775*/                OPC_CheckChild2Same, 1,
/*388777*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388779*/                OPC_EmitConvertToTarget, 4,
/*388781*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrrik), 0,
                              MVT::v8i64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGQZrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*388792*/              /*Scope*/ 20, /*->388813*/
/*388793*/                OPC_CheckChild2Same, 3,
/*388795*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388797*/                OPC_EmitConvertToTarget, 4,
/*388799*/                OPC_EmitNodeXForm, 15, 5, // VPTERNLOG321_imm8
/*388802*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrrik), 0,
                              MVT::v8i64, 5/*#Ops*/, 3, 0, 2, 1, 6, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src3, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGQZrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*388813*/              /*Scope*/ 20, /*->388834*/
/*388814*/                OPC_CheckChild2Same, 2,
/*388816*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388818*/                OPC_EmitConvertToTarget, 4,
/*388820*/                OPC_EmitNodeXForm, 17, 5, // VPTERNLOG213_imm8
/*388823*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrrik), 0,
                              MVT::v8i64, 5/*#Ops*/, 2, 0, 1, 3, 6, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGQZrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*388834*/              0, /*End of Scope*/
/*388835*/            0, // EndSwitchType
/*388836*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::VSHLD),// ->388902
/*388839*/            OPC_RecordChild0, // #1 = $src1
/*388840*/            OPC_RecordChild1, // #2 = $src2
/*388841*/            OPC_RecordChild2, // #3 = $src3
/*388842*/            OPC_MoveChild2,
/*388843*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388846*/            OPC_MoveParent,
/*388847*/            OPC_MoveParent,
/*388848*/            OPC_RecordChild2, // #4 = $src0
/*388849*/            OPC_SwitchType /*3 cases */, 15, MVT::v8i16,// ->388867
/*388852*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*388854*/              OPC_EmitConvertToTarget, 3,
/*388856*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rrik), 0,
                            MVT::v8i16, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDWZ128rrik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*388867*/            /*SwitchType*/ 15, MVT::v8i32,// ->388884
/*388869*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*388871*/              OPC_EmitConvertToTarget, 3,
/*388873*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rrik), 0,
                            MVT::v8i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*388884*/            /*SwitchType*/ 15, MVT::v8i64,// ->388901
/*388886*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*388888*/              OPC_EmitConvertToTarget, 3,
/*388890*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrrik), 0,
                            MVT::v8i64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDQZrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*388901*/            0, // EndSwitchType
/*388902*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::VSHRD),// ->388968
/*388905*/            OPC_RecordChild0, // #1 = $src1
/*388906*/            OPC_RecordChild1, // #2 = $src2
/*388907*/            OPC_RecordChild2, // #3 = $src3
/*388908*/            OPC_MoveChild2,
/*388909*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388912*/            OPC_MoveParent,
/*388913*/            OPC_MoveParent,
/*388914*/            OPC_RecordChild2, // #4 = $src0
/*388915*/            OPC_SwitchType /*3 cases */, 15, MVT::v8i16,// ->388933
/*388918*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*388920*/              OPC_EmitConvertToTarget, 3,
/*388922*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rrik), 0,
                            MVT::v8i16, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDWZ128rrik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*388933*/            /*SwitchType*/ 15, MVT::v8i32,// ->388950
/*388935*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*388937*/              OPC_EmitConvertToTarget, 3,
/*388939*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rrik), 0,
                            MVT::v8i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*388950*/            /*SwitchType*/ 15, MVT::v8i64,// ->388967
/*388952*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*388954*/              OPC_EmitConvertToTarget, 3,
/*388956*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrrik), 0,
                            MVT::v8i64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDQZrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*388967*/            0, // EndSwitchType
/*388968*/          0, // EndSwitchOpcode
/*388969*/        /*Scope*/ 74, /*->389044*/
/*388970*/          OPC_RecordChild1, // #1 = $src
/*388971*/          OPC_MoveChild2,
/*388972*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*388975*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*388977*/          OPC_MoveParent,
/*388978*/          OPC_CheckType, MVT::v8i32,
/*388980*/          OPC_Scope, 10, /*->388992*/ // 2 children in Scope
/*388982*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388984*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 7
                      // Dst: (VMOVDQA32Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*388992*/          /*Scope*/ 50, /*->389043*/
/*388993*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*388995*/            OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*388998*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*389006*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #4
/*389012*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*389015*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*389024*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 3, 6,  // Results = #7
/*389032*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*389035*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i32, 2/*#Ops*/, 7, 8, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 7
                      // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VMOVDQA32Zrrkz:{ *:[v16i32] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8WM:{ *:[v8i1] }:$mask, VK16WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*389043*/          0, /*End of Scope*/
/*389044*/        /*Scope*/ 58|128,23/*3002*/, /*->392048*/
/*389046*/          OPC_MoveChild1,
/*389047*/          OPC_SwitchOpcode /*65 cases */, 1|128,1/*129*/, TARGET_VAL(X86ISD::VBROADCAST),// ->389181
/*389052*/            OPC_RecordChild0, // #1 = $src
/*389053*/            OPC_Scope, 17, /*->389072*/ // 6 children in Scope
/*389055*/              OPC_CheckChild0Type, MVT::i32,
/*389057*/              OPC_MoveParent,
/*389058*/              OPC_RecordChild2, // #2 = $src0
/*389059*/              OPC_CheckType, MVT::v8i32,
/*389061*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389063*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZ256rk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i32] } GR32:{ *:[i32] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTDrZ256rk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, GR32:{ *:[i32] }:$src)
/*389072*/            /*Scope*/ 17, /*->389090*/
/*389073*/              OPC_CheckChild0Type, MVT::i64,
/*389075*/              OPC_MoveParent,
/*389076*/              OPC_RecordChild2, // #2 = $src0
/*389077*/              OPC_CheckType, MVT::v8i64,
/*389079*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389081*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i64] } GR64:{ *:[i64] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTQrZrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, GR64:{ *:[i64] }:$src)
/*389090*/            /*Scope*/ 17, /*->389108*/
/*389091*/              OPC_CheckChild0Type, MVT::v8i16,
/*389093*/              OPC_MoveParent,
/*389094*/              OPC_RecordChild2, // #2 = $src0
/*389095*/              OPC_CheckType, MVT::v8i16,
/*389097*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389099*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128rk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTWZ128rk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*389108*/            /*Scope*/ 17, /*->389126*/
/*389109*/              OPC_CheckChild0Type, MVT::v4i32,
/*389111*/              OPC_MoveParent,
/*389112*/              OPC_RecordChild2, // #2 = $src0
/*389113*/              OPC_CheckType, MVT::v8i32,
/*389115*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389117*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256rk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i32] } VR128X:{ *:[v4i32] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTDZ256rk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*389126*/            /*Scope*/ 17, /*->389144*/
/*389127*/              OPC_CheckChild0Type, MVT::v2i64,
/*389129*/              OPC_MoveParent,
/*389130*/              OPC_RecordChild2, // #2 = $src0
/*389131*/              OPC_CheckType, MVT::v8i64,
/*389133*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389135*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i64] } VR128X:{ *:[v2i64] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTQZrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*389144*/            /*Scope*/ 35, /*->389180*/
/*389145*/              OPC_CheckChild0Type, MVT::i16,
/*389147*/              OPC_MoveParent,
/*389148*/              OPC_RecordChild2, // #2 = $src0
/*389149*/              OPC_CheckType, MVT::v8i16,
/*389151*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389153*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*389159*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*389162*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*389171*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZ128rk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 5, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i16] } GR16:{ *:[i16] }:$src), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTWrZ128rk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*389180*/            0, /*End of Scope*/
/*389181*/          /*SwitchOpcode*/ 100, TARGET_VAL(X86ISD::VPERMV3),// ->389284
/*389184*/            OPC_RecordChild0, // #1 = $src2
/*389185*/            OPC_RecordChild1, // #2 = $src1
/*389186*/            OPC_RecordChild2, // #3 = $src3
/*389187*/            OPC_MoveParent,
/*389188*/            OPC_Scope, 46, /*->389236*/ // 2 children in Scope
/*389190*/              OPC_CheckChild2Same, 2,
/*389192*/              OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->389207
/*389195*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389197*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2D256rrk), 0,
                              MVT::v8i32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src3), VR256X:{ *:[v8i32] }:$src1) - Complexity = 6
                          // Dst: (VPERMI2D256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*389207*/              /*SwitchType*/ 12, MVT::v8i64,// ->389221
/*389209*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389211*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Qrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src3), VR512:{ *:[v8i64] }:$src1) - Complexity = 6
                          // Dst: (VPERMI2Qrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*389221*/              /*SwitchType*/ 12, MVT::v8i16,// ->389235
/*389223*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389225*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2W128rrk), 0,
                              MVT::v8i16, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src3), VR128X:{ *:[v8i16] }:$src1) - Complexity = 6
                          // Dst: (VPERMI2W128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*389235*/              0, // EndSwitchType
/*389236*/            /*Scope*/ 46, /*->389283*/
/*389237*/              OPC_CheckChild2Same, 1,
/*389239*/              OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->389254
/*389242*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389244*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D256rrk), 0,
                              MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), VR256X:{ *:[v8i32] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2D256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*389254*/              /*SwitchType*/ 12, MVT::v8i64,// ->389268
/*389256*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389258*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Qrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3), VR512:{ *:[v8i64] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2Qrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*389268*/              /*SwitchType*/ 12, MVT::v8i16,// ->389282
/*389270*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389272*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W128rrk), 0,
                              MVT::v8i16, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3), VR128X:{ *:[v8i16] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2W128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*389282*/              0, // EndSwitchType
/*389283*/            0, /*End of Scope*/
/*389284*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::ADD),// ->389335
/*389287*/            OPC_RecordChild0, // #1 = $src1
/*389288*/            OPC_RecordChild1, // #2 = $src2
/*389289*/            OPC_MoveParent,
/*389290*/            OPC_RecordChild2, // #3 = $src0
/*389291*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i64,// ->389306
/*389294*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389296*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPADDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*389306*/            /*SwitchType*/ 12, MVT::v8i32,// ->389320
/*389308*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389310*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPADDDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*389320*/            /*SwitchType*/ 12, MVT::v8i16,// ->389334
/*389322*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389324*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (add:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPADDWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389334*/            0, // EndSwitchType
/*389335*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SUB),// ->389386
/*389338*/            OPC_RecordChild0, // #1 = $src1
/*389339*/            OPC_RecordChild1, // #2 = $src2
/*389340*/            OPC_MoveParent,
/*389341*/            OPC_RecordChild2, // #3 = $src0
/*389342*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i64,// ->389357
/*389345*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389347*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPSUBQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*389357*/            /*SwitchType*/ 12, MVT::v8i32,// ->389371
/*389359*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389361*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPSUBDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*389371*/            /*SwitchType*/ 12, MVT::v8i16,// ->389385
/*389373*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389375*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (sub:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPSUBWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389385*/            0, // EndSwitchType
/*389386*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::ADDS),// ->389407
/*389389*/            OPC_RecordChild0, // #1 = $src1
/*389390*/            OPC_RecordChild1, // #2 = $src2
/*389391*/            OPC_MoveParent,
/*389392*/            OPC_RecordChild2, // #3 = $src0
/*389393*/            OPC_CheckType, MVT::v8i16,
/*389395*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389397*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86adds:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPADDSWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389407*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::SUBS),// ->389428
/*389410*/            OPC_RecordChild0, // #1 = $src1
/*389411*/            OPC_RecordChild1, // #2 = $src2
/*389412*/            OPC_MoveParent,
/*389413*/            OPC_RecordChild2, // #3 = $src0
/*389414*/            OPC_CheckType, MVT::v8i16,
/*389416*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389418*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86subs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPSUBSWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389428*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::ADDUS),// ->389449
/*389431*/            OPC_RecordChild0, // #1 = $src1
/*389432*/            OPC_RecordChild1, // #2 = $src2
/*389433*/            OPC_MoveParent,
/*389434*/            OPC_RecordChild2, // #3 = $src0
/*389435*/            OPC_CheckType, MVT::v8i16,
/*389437*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389439*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86addus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPADDUSWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389449*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::SUBUS),// ->389470
/*389452*/            OPC_RecordChild0, // #1 = $src1
/*389453*/            OPC_RecordChild1, // #2 = $src2
/*389454*/            OPC_MoveParent,
/*389455*/            OPC_RecordChild2, // #3 = $src0
/*389456*/            OPC_CheckType, MVT::v8i16,
/*389458*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389460*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86subus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPSUBUSWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389470*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::MUL),// ->389521
/*389473*/            OPC_RecordChild0, // #1 = $src1
/*389474*/            OPC_RecordChild1, // #2 = $src2
/*389475*/            OPC_MoveParent,
/*389476*/            OPC_RecordChild2, // #3 = $src0
/*389477*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->389492
/*389480*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389482*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPMULLDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*389492*/            /*SwitchType*/ 12, MVT::v8i16,// ->389506
/*389494*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389496*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMULLWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389506*/            /*SwitchType*/ 12, MVT::v8i64,// ->389520
/*389508*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*389510*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (mul:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPMULLQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*389520*/            0, // EndSwitchType
/*389521*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHS),// ->389542
/*389524*/            OPC_RecordChild0, // #1 = $src1
/*389525*/            OPC_RecordChild1, // #2 = $src2
/*389526*/            OPC_MoveParent,
/*389527*/            OPC_RecordChild2, // #3 = $src0
/*389528*/            OPC_CheckType, MVT::v8i16,
/*389530*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389532*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPMULHWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389542*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHU),// ->389563
/*389545*/            OPC_RecordChild0, // #1 = $src1
/*389546*/            OPC_RecordChild1, // #2 = $src2
/*389547*/            OPC_MoveParent,
/*389548*/            OPC_RecordChild2, // #3 = $src0
/*389549*/            OPC_CheckType, MVT::v8i16,
/*389551*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389553*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (mulhu:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPMULHUWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389563*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::MULHRS),// ->389584
/*389566*/            OPC_RecordChild0, // #1 = $src1
/*389567*/            OPC_RecordChild1, // #2 = $src2
/*389568*/            OPC_MoveParent,
/*389569*/            OPC_RecordChild2, // #3 = $src0
/*389570*/            OPC_CheckType, MVT::v8i16,
/*389572*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389574*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86mulhrs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPMULHRSWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389584*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::AVG),// ->389605
/*389587*/            OPC_RecordChild0, // #1 = $src1
/*389588*/            OPC_RecordChild1, // #2 = $src2
/*389589*/            OPC_MoveParent,
/*389590*/            OPC_RecordChild2, // #3 = $src0
/*389591*/            OPC_CheckType, MVT::v8i16,
/*389593*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389595*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86avg:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPAVGWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389605*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULDQ),// ->389626
/*389608*/            OPC_RecordChild0, // #1 = $src1
/*389609*/            OPC_RecordChild1, // #2 = $src2
/*389610*/            OPC_MoveParent,
/*389611*/            OPC_RecordChild2, // #3 = $src0
/*389612*/            OPC_CheckType, MVT::v8i64,
/*389614*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389616*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrrk), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuldq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                      // Dst: (VPMULDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*389626*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULUDQ),// ->389647
/*389629*/            OPC_RecordChild0, // #1 = $src1
/*389630*/            OPC_RecordChild1, // #2 = $src2
/*389631*/            OPC_MoveParent,
/*389632*/            OPC_RecordChild2, // #3 = $src0
/*389633*/            OPC_CheckType, MVT::v8i64,
/*389635*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389637*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrrk), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86pmuludq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                      // Dst: (VPMULUDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*389647*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::PACKSS),// ->389670
/*389650*/            OPC_RecordChild0, // #1 = $src1
/*389651*/            OPC_CheckChild0Type, MVT::v4i32,
/*389653*/            OPC_RecordChild1, // #2 = $src2
/*389654*/            OPC_MoveParent,
/*389655*/            OPC_RecordChild2, // #3 = $src0
/*389656*/            OPC_CheckType, MVT::v8i16,
/*389658*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389660*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packss:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPACKSSDWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*389670*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::PACKUS),// ->389693
/*389673*/            OPC_RecordChild0, // #1 = $src1
/*389674*/            OPC_CheckChild0Type, MVT::v4i32,
/*389676*/            OPC_RecordChild1, // #2 = $src2
/*389677*/            OPC_MoveParent,
/*389678*/            OPC_RecordChild2, // #3 = $src0
/*389679*/            OPC_CheckType, MVT::v8i16,
/*389681*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389683*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Packus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPACKUSDWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*389693*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDUBSW),// ->389714
/*389696*/            OPC_RecordChild0, // #1 = $src1
/*389697*/            OPC_RecordChild1, // #2 = $src2
/*389698*/            OPC_MoveParent,
/*389699*/            OPC_RecordChild2, // #3 = $src0
/*389700*/            OPC_CheckType, MVT::v8i16,
/*389702*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389704*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vpmaddubsw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPMADDUBSWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*389714*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDWD),// ->389735
/*389717*/            OPC_RecordChild0, // #1 = $src1
/*389718*/            OPC_RecordChild1, // #2 = $src2
/*389719*/            OPC_MoveParent,
/*389720*/            OPC_RecordChild2, // #3 = $src0
/*389721*/            OPC_CheckType, MVT::v8i32,
/*389723*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389725*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ256rrk), 0,
                          MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpmaddwd:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                      // Dst: (VPMADDWDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*389735*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SMAX),// ->389786
/*389738*/            OPC_RecordChild0, // #1 = $src1
/*389739*/            OPC_RecordChild1, // #2 = $src2
/*389740*/            OPC_MoveParent,
/*389741*/            OPC_RecordChild2, // #3 = $src0
/*389742*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->389757
/*389745*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389747*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMAXSWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389757*/            /*SwitchType*/ 12, MVT::v8i32,// ->389771
/*389759*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389761*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPMAXSDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*389771*/            /*SwitchType*/ 12, MVT::v8i64,// ->389785
/*389773*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389775*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPMAXSQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*389785*/            0, // EndSwitchType
/*389786*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::UMAX),// ->389837
/*389789*/            OPC_RecordChild0, // #1 = $src1
/*389790*/            OPC_RecordChild1, // #2 = $src2
/*389791*/            OPC_MoveParent,
/*389792*/            OPC_RecordChild2, // #3 = $src0
/*389793*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->389808
/*389796*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389798*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMAXUWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389808*/            /*SwitchType*/ 12, MVT::v8i32,// ->389822
/*389810*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389812*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPMAXUDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*389822*/            /*SwitchType*/ 12, MVT::v8i64,// ->389836
/*389824*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389826*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPMAXUQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*389836*/            0, // EndSwitchType
/*389837*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SMIN),// ->389888
/*389840*/            OPC_RecordChild0, // #1 = $src1
/*389841*/            OPC_RecordChild1, // #2 = $src2
/*389842*/            OPC_MoveParent,
/*389843*/            OPC_RecordChild2, // #3 = $src0
/*389844*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->389859
/*389847*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389849*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMINSWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389859*/            /*SwitchType*/ 12, MVT::v8i32,// ->389873
/*389861*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389863*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPMINSDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*389873*/            /*SwitchType*/ 12, MVT::v8i64,// ->389887
/*389875*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389877*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (smin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPMINSQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*389887*/            0, // EndSwitchType
/*389888*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::UMIN),// ->389939
/*389891*/            OPC_RecordChild0, // #1 = $src1
/*389892*/            OPC_RecordChild1, // #2 = $src2
/*389893*/            OPC_MoveParent,
/*389894*/            OPC_RecordChild2, // #3 = $src0
/*389895*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->389910
/*389898*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*389900*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMINUWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*389910*/            /*SwitchType*/ 12, MVT::v8i32,// ->389924
/*389912*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389914*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPMINUDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*389924*/            /*SwitchType*/ 12, MVT::v8i64,// ->389938
/*389926*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389928*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (umin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPMINUQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*389938*/            0, // EndSwitchType
/*389939*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::AND),// ->389960
/*389942*/            OPC_RecordChild0, // #1 = $src1
/*389943*/            OPC_RecordChild1, // #2 = $src2
/*389944*/            OPC_MoveParent,
/*389945*/            OPC_RecordChild2, // #3 = $src0
/*389946*/            OPC_CheckType, MVT::v8i64,
/*389948*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389950*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrk), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                      // Dst: (VPANDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*389960*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::OR),// ->389981
/*389963*/            OPC_RecordChild0, // #1 = $src1
/*389964*/            OPC_RecordChild1, // #2 = $src2
/*389965*/            OPC_MoveParent,
/*389966*/            OPC_RecordChild2, // #3 = $src0
/*389967*/            OPC_CheckType, MVT::v8i64,
/*389969*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389971*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrk), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                      // Dst: (VPORQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*389981*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::XOR),// ->390002
/*389984*/            OPC_RecordChild0, // #1 = $src1
/*389985*/            OPC_RecordChild1, // #2 = $src2
/*389986*/            OPC_MoveParent,
/*389987*/            OPC_RecordChild2, // #3 = $src0
/*389988*/            OPC_CheckType, MVT::v8i64,
/*389990*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*389992*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrk), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                      // Dst: (VPXORQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*390002*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::ANDNP),// ->390023
/*390005*/            OPC_RecordChild0, // #1 = $src1
/*390006*/            OPC_RecordChild1, // #2 = $src2
/*390007*/            OPC_MoveParent,
/*390008*/            OPC_RecordChild2, // #3 = $src0
/*390009*/            OPC_CheckType, MVT::v8i64,
/*390011*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390013*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrk), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                      // Dst: (VPANDNQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*390023*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VSHL),// ->390087
/*390026*/            OPC_RecordChild0, // #1 = $src1
/*390027*/            OPC_RecordChild1, // #2 = $src2
/*390028*/            OPC_Scope, 18, /*->390048*/ // 3 children in Scope
/*390030*/              OPC_CheckChild1Type, MVT::v4i32,
/*390032*/              OPC_MoveParent,
/*390033*/              OPC_RecordChild2, // #3 = $src0
/*390034*/              OPC_CheckType, MVT::v8i32,
/*390036*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390038*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPSLLDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*390048*/            /*Scope*/ 18, /*->390067*/
/*390049*/              OPC_CheckChild1Type, MVT::v2i64,
/*390051*/              OPC_MoveParent,
/*390052*/              OPC_RecordChild2, // #3 = $src0
/*390053*/              OPC_CheckType, MVT::v8i64,
/*390055*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390057*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPSLLQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*390067*/            /*Scope*/ 18, /*->390086*/
/*390068*/              OPC_CheckChild1Type, MVT::v8i16,
/*390070*/              OPC_MoveParent,
/*390071*/              OPC_RecordChild2, // #3 = $src0
/*390072*/              OPC_CheckType, MVT::v8i16,
/*390074*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*390076*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPSLLWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*390086*/            0, /*End of Scope*/
/*390087*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VSRA),// ->390151
/*390090*/            OPC_RecordChild0, // #1 = $src1
/*390091*/            OPC_RecordChild1, // #2 = $src2
/*390092*/            OPC_Scope, 18, /*->390112*/ // 3 children in Scope
/*390094*/              OPC_CheckChild1Type, MVT::v4i32,
/*390096*/              OPC_MoveParent,
/*390097*/              OPC_RecordChild2, // #3 = $src0
/*390098*/              OPC_CheckType, MVT::v8i32,
/*390100*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390102*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRADZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*390112*/            /*Scope*/ 18, /*->390131*/
/*390113*/              OPC_CheckChild1Type, MVT::v2i64,
/*390115*/              OPC_MoveParent,
/*390116*/              OPC_RecordChild2, // #3 = $src0
/*390117*/              OPC_CheckType, MVT::v8i64,
/*390119*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390121*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPSRAQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*390131*/            /*Scope*/ 18, /*->390150*/
/*390132*/              OPC_CheckChild1Type, MVT::v8i16,
/*390134*/              OPC_MoveParent,
/*390135*/              OPC_RecordChild2, // #3 = $src0
/*390136*/              OPC_CheckType, MVT::v8i16,
/*390138*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*390140*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPSRAWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*390150*/            0, /*End of Scope*/
/*390151*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VSRL),// ->390215
/*390154*/            OPC_RecordChild0, // #1 = $src1
/*390155*/            OPC_RecordChild1, // #2 = $src2
/*390156*/            OPC_Scope, 18, /*->390176*/ // 3 children in Scope
/*390158*/              OPC_CheckChild1Type, MVT::v4i32,
/*390160*/              OPC_MoveParent,
/*390161*/              OPC_RecordChild2, // #3 = $src0
/*390162*/              OPC_CheckType, MVT::v8i32,
/*390164*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390166*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRLDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*390176*/            /*Scope*/ 18, /*->390195*/
/*390177*/              OPC_CheckChild1Type, MVT::v2i64,
/*390179*/              OPC_MoveParent,
/*390180*/              OPC_RecordChild2, // #3 = $src0
/*390181*/              OPC_CheckType, MVT::v8i64,
/*390183*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390185*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPSRLQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*390195*/            /*Scope*/ 18, /*->390214*/
/*390196*/              OPC_CheckChild1Type, MVT::v8i16,
/*390198*/              OPC_MoveParent,
/*390199*/              OPC_RecordChild2, // #3 = $src0
/*390200*/              OPC_CheckType, MVT::v8i16,
/*390202*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*390204*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPSRLWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*390214*/            0, /*End of Scope*/
/*390215*/          /*SwitchOpcode*/ 61, TARGET_VAL(ISD::SHL),// ->390279
/*390218*/            OPC_RecordChild0, // #1 = $src1
/*390219*/            OPC_RecordChild1, // #2 = $src2
/*390220*/            OPC_Scope, 18, /*->390240*/ // 3 children in Scope
/*390222*/              OPC_CheckChild1Type, MVT::v8i32,
/*390224*/              OPC_MoveParent,
/*390225*/              OPC_RecordChild2, // #3 = $src0
/*390226*/              OPC_CheckType, MVT::v8i32,
/*390228*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390230*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPSLLVDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*390240*/            /*Scope*/ 18, /*->390259*/
/*390241*/              OPC_CheckChild1Type, MVT::v8i64,
/*390243*/              OPC_MoveParent,
/*390244*/              OPC_RecordChild2, // #3 = $src0
/*390245*/              OPC_CheckType, MVT::v8i64,
/*390247*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390249*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPSLLVQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*390259*/            /*Scope*/ 18, /*->390278*/
/*390260*/              OPC_CheckChild1Type, MVT::v8i16,
/*390262*/              OPC_MoveParent,
/*390263*/              OPC_RecordChild2, // #3 = $src0
/*390264*/              OPC_CheckType, MVT::v8i16,
/*390266*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*390268*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (shl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPSLLVWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*390278*/            0, /*End of Scope*/
/*390279*/          /*SwitchOpcode*/ 61, TARGET_VAL(ISD::SRA),// ->390343
/*390282*/            OPC_RecordChild0, // #1 = $src1
/*390283*/            OPC_RecordChild1, // #2 = $src2
/*390284*/            OPC_Scope, 18, /*->390304*/ // 3 children in Scope
/*390286*/              OPC_CheckChild1Type, MVT::v8i32,
/*390288*/              OPC_MoveParent,
/*390289*/              OPC_RecordChild2, // #3 = $src0
/*390290*/              OPC_CheckType, MVT::v8i32,
/*390292*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390294*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*390304*/            /*Scope*/ 18, /*->390323*/
/*390305*/              OPC_CheckChild1Type, MVT::v8i64,
/*390307*/              OPC_MoveParent,
/*390308*/              OPC_RecordChild2, // #3 = $src0
/*390309*/              OPC_CheckType, MVT::v8i64,
/*390311*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390313*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*390323*/            /*Scope*/ 18, /*->390342*/
/*390324*/              OPC_CheckChild1Type, MVT::v8i16,
/*390326*/              OPC_MoveParent,
/*390327*/              OPC_RecordChild2, // #3 = $src0
/*390328*/              OPC_CheckType, MVT::v8i16,
/*390330*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*390332*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (sra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*390342*/            0, /*End of Scope*/
/*390343*/          /*SwitchOpcode*/ 61, TARGET_VAL(ISD::SRL),// ->390407
/*390346*/            OPC_RecordChild0, // #1 = $src1
/*390347*/            OPC_RecordChild1, // #2 = $src2
/*390348*/            OPC_Scope, 18, /*->390368*/ // 3 children in Scope
/*390350*/              OPC_CheckChild1Type, MVT::v8i32,
/*390352*/              OPC_MoveParent,
/*390353*/              OPC_RecordChild2, // #3 = $src0
/*390354*/              OPC_CheckType, MVT::v8i32,
/*390356*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390358*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRLVDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*390368*/            /*Scope*/ 18, /*->390387*/
/*390369*/              OPC_CheckChild1Type, MVT::v8i64,
/*390371*/              OPC_MoveParent,
/*390372*/              OPC_RecordChild2, // #3 = $src0
/*390373*/              OPC_CheckType, MVT::v8i64,
/*390375*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390377*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPSRLVQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*390387*/            /*Scope*/ 18, /*->390406*/
/*390388*/              OPC_CheckChild1Type, MVT::v8i16,
/*390390*/              OPC_MoveParent,
/*390391*/              OPC_RecordChild2, // #3 = $src0
/*390392*/              OPC_CheckType, MVT::v8i16,
/*390394*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*390396*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (srl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPSRLVWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*390406*/            0, /*End of Scope*/
/*390407*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::ROTR),// ->390452
/*390410*/            OPC_RecordChild0, // #1 = $src1
/*390411*/            OPC_RecordChild1, // #2 = $src2
/*390412*/            OPC_Scope, 18, /*->390432*/ // 2 children in Scope
/*390414*/              OPC_CheckChild1Type, MVT::v8i32,
/*390416*/              OPC_MoveParent,
/*390417*/              OPC_RecordChild2, // #3 = $src0
/*390418*/              OPC_CheckType, MVT::v8i32,
/*390420*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390422*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPRORVDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*390432*/            /*Scope*/ 18, /*->390451*/
/*390433*/              OPC_CheckChild1Type, MVT::v8i64,
/*390435*/              OPC_MoveParent,
/*390436*/              OPC_RecordChild2, // #3 = $src0
/*390437*/              OPC_CheckType, MVT::v8i64,
/*390439*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390441*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPRORVQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*390451*/            0, /*End of Scope*/
/*390452*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::ROTL),// ->390497
/*390455*/            OPC_RecordChild0, // #1 = $src1
/*390456*/            OPC_RecordChild1, // #2 = $src2
/*390457*/            OPC_Scope, 18, /*->390477*/ // 2 children in Scope
/*390459*/              OPC_CheckChild1Type, MVT::v8i32,
/*390461*/              OPC_MoveParent,
/*390462*/              OPC_RecordChild2, // #3 = $src0
/*390463*/              OPC_CheckType, MVT::v8i32,
/*390465*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390467*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPROLVDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*390477*/            /*Scope*/ 18, /*->390496*/
/*390478*/              OPC_CheckChild1Type, MVT::v8i64,
/*390480*/              OPC_MoveParent,
/*390481*/              OPC_RecordChild2, // #3 = $src0
/*390482*/              OPC_CheckType, MVT::v8i64,
/*390484*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390486*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (rotl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPROLVQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*390496*/            0, /*End of Scope*/
/*390497*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VSRAV),// ->390548
/*390500*/            OPC_RecordChild0, // #1 = $src1
/*390501*/            OPC_RecordChild1, // #2 = $src2
/*390502*/            OPC_MoveParent,
/*390503*/            OPC_RecordChild2, // #3 = $src0
/*390504*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->390519
/*390507*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*390509*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*390519*/            /*SwitchType*/ 12, MVT::v8i32,// ->390533
/*390521*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390523*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*390533*/            /*SwitchType*/ 12, MVT::v8i64,// ->390547
/*390535*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390537*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrav:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*390547*/            0, // EndSwitchType
/*390548*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VPERMV),// ->390599
/*390551*/            OPC_RecordChild0, // #1 = $src1
/*390552*/            OPC_RecordChild1, // #2 = $src2
/*390553*/            OPC_MoveParent,
/*390554*/            OPC_RecordChild2, // #3 = $src0
/*390555*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->390570
/*390558*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*390560*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPERMWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*390570*/            /*SwitchType*/ 12, MVT::v8i32,// ->390584
/*390572*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390574*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPERMDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*390584*/            /*SwitchType*/ 12, MVT::v8i64,// ->390598
/*390586*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390588*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPERMQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*390598*/            0, // EndSwitchType
/*390599*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52L),// ->390622
/*390602*/            OPC_RecordChild0, // #1 = $src2
/*390603*/            OPC_RecordChild1, // #2 = $src3
/*390604*/            OPC_RecordChild2, // #3 = $src1
/*390605*/            OPC_MoveParent,
/*390606*/            OPC_CheckChild2Same, 3,
/*390608*/            OPC_CheckType, MVT::v8i64,
/*390610*/            OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*390612*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZrk), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52l:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 6
                      // Dst: (VPMADD52LUQZrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*390622*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52H),// ->390645
/*390625*/            OPC_RecordChild0, // #1 = $src2
/*390626*/            OPC_RecordChild1, // #2 = $src3
/*390627*/            OPC_RecordChild2, // #3 = $src1
/*390628*/            OPC_MoveParent,
/*390629*/            OPC_CheckChild2Same, 3,
/*390631*/            OPC_CheckType, MVT::v8i64,
/*390633*/            OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*390635*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZrk), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (x86vpmadd52h:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 6
                      // Dst: (VPMADD52HUQZrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*390645*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTTP2SI),// ->390717
/*390648*/            OPC_RecordChild0, // #1 = $src
/*390649*/            OPC_Scope, 32, /*->390683*/ // 2 children in Scope
/*390651*/              OPC_CheckChild0Type, MVT::v8f32,
/*390653*/              OPC_MoveParent,
/*390654*/              OPC_RecordChild2, // #2 = $src0
/*390655*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->390669
/*390658*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390660*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2DQZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*390669*/              /*SwitchType*/ 11, MVT::v8i64,// ->390682
/*390671*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*390673*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2QQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*390682*/              0, // EndSwitchType
/*390683*/            /*Scope*/ 32, /*->390716*/
/*390684*/              OPC_CheckChild0Type, MVT::v8f64,
/*390686*/              OPC_MoveParent,
/*390687*/              OPC_RecordChild2, // #2 = $src0
/*390688*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->390702
/*390691*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390693*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2DQZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*390702*/              /*SwitchType*/ 11, MVT::v8i64,// ->390715
/*390704*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*390706*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2QQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*390715*/              0, // EndSwitchType
/*390716*/            0, /*End of Scope*/
/*390717*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTTP2UI),// ->390789
/*390720*/            OPC_RecordChild0, // #1 = $src
/*390721*/            OPC_Scope, 32, /*->390755*/ // 2 children in Scope
/*390723*/              OPC_CheckChild0Type, MVT::v8f32,
/*390725*/              OPC_MoveParent,
/*390726*/              OPC_RecordChild2, // #2 = $src0
/*390727*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->390741
/*390730*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390732*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2UDQZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*390741*/              /*SwitchType*/ 11, MVT::v8i64,// ->390754
/*390743*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*390745*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2UQQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*390754*/              0, // EndSwitchType
/*390755*/            /*Scope*/ 32, /*->390788*/
/*390756*/              OPC_CheckChild0Type, MVT::v8f64,
/*390758*/              OPC_MoveParent,
/*390759*/              OPC_RecordChild2, // #2 = $src0
/*390760*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->390774
/*390763*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390765*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2UDQZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*390774*/              /*SwitchType*/ 11, MVT::v8i64,// ->390787
/*390776*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*390778*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2UQQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*390787*/              0, // EndSwitchType
/*390788*/            0, /*End of Scope*/
/*390789*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2SI),// ->390861
/*390792*/            OPC_RecordChild0, // #1 = $src
/*390793*/            OPC_Scope, 32, /*->390827*/ // 2 children in Scope
/*390795*/              OPC_CheckChild0Type, MVT::v8f32,
/*390797*/              OPC_MoveParent,
/*390798*/              OPC_RecordChild2, // #2 = $src0
/*390799*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->390813
/*390802*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390804*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ256rrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTPS2DQZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*390813*/              /*SwitchType*/ 11, MVT::v8i64,// ->390826
/*390815*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*390817*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTPS2QQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*390826*/              0, // EndSwitchType
/*390827*/            /*Scope*/ 32, /*->390860*/
/*390828*/              OPC_CheckChild0Type, MVT::v8f64,
/*390830*/              OPC_MoveParent,
/*390831*/              OPC_RecordChild2, // #2 = $src0
/*390832*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->390846
/*390835*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390837*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTPD2DQZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*390846*/              /*SwitchType*/ 11, MVT::v8i64,// ->390859
/*390848*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*390850*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTPD2QQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*390859*/              0, // EndSwitchType
/*390860*/            0, /*End of Scope*/
/*390861*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2UI),// ->390933
/*390864*/            OPC_RecordChild0, // #1 = $src
/*390865*/            OPC_Scope, 32, /*->390899*/ // 2 children in Scope
/*390867*/              OPC_CheckChild0Type, MVT::v8f32,
/*390869*/              OPC_MoveParent,
/*390870*/              OPC_RecordChild2, // #2 = $src0
/*390871*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->390885
/*390874*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390876*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ256rrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTPS2UDQZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*390885*/              /*SwitchType*/ 11, MVT::v8i64,// ->390898
/*390887*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*390889*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTPS2UQQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*390898*/              0, // EndSwitchType
/*390899*/            /*Scope*/ 32, /*->390932*/
/*390900*/              OPC_CheckChild0Type, MVT::v8f64,
/*390902*/              OPC_MoveParent,
/*390903*/              OPC_RecordChild2, // #2 = $src0
/*390904*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->390918
/*390907*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*390909*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTPD2UDQZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*390918*/              /*SwitchType*/ 11, MVT::v8i64,// ->390931
/*390920*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*390922*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTPD2UQQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*390931*/              0, // EndSwitchType
/*390932*/            0, /*End of Scope*/
/*390933*/          /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VTRUNC),// ->390993
/*390936*/            OPC_RecordChild0, // #1 = $src1
/*390937*/            OPC_Scope, 17, /*->390956*/ // 3 children in Scope
/*390939*/              OPC_CheckChild0Type, MVT::v2i64,
/*390941*/              OPC_MoveParent,
/*390942*/              OPC_RecordChild2, // #2 = $src0
/*390943*/              OPC_CheckType, MVT::v8i16,
/*390945*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390947*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ128rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtrunc:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVQWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*390956*/            /*Scope*/ 17, /*->390974*/
/*390957*/              OPC_CheckChild0Type, MVT::v4i64,
/*390959*/              OPC_MoveParent,
/*390960*/              OPC_RecordChild2, // #2 = $src0
/*390961*/              OPC_CheckType, MVT::v8i16,
/*390963*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390965*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ256rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtrunc:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVQWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*390974*/            /*Scope*/ 17, /*->390992*/
/*390975*/              OPC_CheckChild0Type, MVT::v4i32,
/*390977*/              OPC_MoveParent,
/*390978*/              OPC_RecordChild2, // #2 = $src0
/*390979*/              OPC_CheckType, MVT::v8i16,
/*390981*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ128rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtrunc:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVDWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*390992*/            0, /*End of Scope*/
/*390993*/          /*SwitchOpcode*/ 55, TARGET_VAL(ISD::TRUNCATE),// ->391051
/*390996*/            OPC_RecordChild0, // #1 = $src1
/*390997*/            OPC_Scope, 17, /*->391016*/ // 3 children in Scope
/*390999*/              OPC_CheckChild0Type, MVT::v8i64,
/*391001*/              OPC_MoveParent,
/*391002*/              OPC_RecordChild2, // #2 = $src0
/*391003*/              OPC_CheckType, MVT::v8i16,
/*391005*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391007*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZrrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVQWZrrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391016*/            /*Scope*/ 15, /*->391032*/
/*391017*/              OPC_MoveParent,
/*391018*/              OPC_RecordChild2, // #2 = $src0
/*391019*/              OPC_CheckType, MVT::v8i32,
/*391021*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391023*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZrrk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVQDZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391032*/            /*Scope*/ 17, /*->391050*/
/*391033*/              OPC_CheckChild0Type, MVT::v8i32,
/*391035*/              OPC_MoveParent,
/*391036*/              OPC_RecordChild2, // #2 = $src0
/*391037*/              OPC_CheckType, MVT::v8i16,
/*391039*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391041*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ256rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVDWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*391050*/            0, /*End of Scope*/
/*391051*/          /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VTRUNCS),// ->391162
/*391054*/            OPC_RecordChild0, // #1 = $src1
/*391055*/            OPC_Scope, 17, /*->391074*/ // 5 children in Scope
/*391057*/              OPC_CheckChild0Type, MVT::v2i64,
/*391059*/              OPC_MoveParent,
/*391060*/              OPC_RecordChild2, // #2 = $src0
/*391061*/              OPC_CheckType, MVT::v8i16,
/*391063*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391065*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ128rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSQWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*391074*/            /*Scope*/ 17, /*->391092*/
/*391075*/              OPC_CheckChild0Type, MVT::v4i64,
/*391077*/              OPC_MoveParent,
/*391078*/              OPC_RecordChild2, // #2 = $src0
/*391079*/              OPC_CheckType, MVT::v8i16,
/*391081*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391083*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ256rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSQWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*391092*/            /*Scope*/ 32, /*->391125*/
/*391093*/              OPC_CheckChild0Type, MVT::v8i64,
/*391095*/              OPC_MoveParent,
/*391096*/              OPC_RecordChild2, // #2 = $src0
/*391097*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i16,// ->391111
/*391100*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391102*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZrrk), 0,
                              MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSQWZrrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391111*/              /*SwitchType*/ 11, MVT::v8i32,// ->391124
/*391113*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391115*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZrrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSQDZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391124*/              0, // EndSwitchType
/*391125*/            /*Scope*/ 17, /*->391143*/
/*391126*/              OPC_CheckChild0Type, MVT::v4i32,
/*391128*/              OPC_MoveParent,
/*391129*/              OPC_RecordChild2, // #2 = $src0
/*391130*/              OPC_CheckType, MVT::v8i16,
/*391132*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391134*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ128rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSDWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*391143*/            /*Scope*/ 17, /*->391161*/
/*391144*/              OPC_CheckChild0Type, MVT::v8i32,
/*391146*/              OPC_MoveParent,
/*391147*/              OPC_RecordChild2, // #2 = $src0
/*391148*/              OPC_CheckType, MVT::v8i16,
/*391150*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391152*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ256rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSDWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*391161*/            0, /*End of Scope*/
/*391162*/          /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VTRUNCUS),// ->391273
/*391165*/            OPC_RecordChild0, // #1 = $src1
/*391166*/            OPC_Scope, 17, /*->391185*/ // 5 children in Scope
/*391168*/              OPC_CheckChild0Type, MVT::v2i64,
/*391170*/              OPC_MoveParent,
/*391171*/              OPC_RecordChild2, // #2 = $src0
/*391172*/              OPC_CheckType, MVT::v8i16,
/*391174*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ128rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSQWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*391185*/            /*Scope*/ 17, /*->391203*/
/*391186*/              OPC_CheckChild0Type, MVT::v4i64,
/*391188*/              OPC_MoveParent,
/*391189*/              OPC_RecordChild2, // #2 = $src0
/*391190*/              OPC_CheckType, MVT::v8i16,
/*391192*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391194*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ256rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSQWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*391203*/            /*Scope*/ 32, /*->391236*/
/*391204*/              OPC_CheckChild0Type, MVT::v8i64,
/*391206*/              OPC_MoveParent,
/*391207*/              OPC_RecordChild2, // #2 = $src0
/*391208*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i16,// ->391222
/*391211*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391213*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZrrk), 0,
                              MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVUSQWZrrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391222*/              /*SwitchType*/ 11, MVT::v8i32,// ->391235
/*391224*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391226*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZrrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVUSQDZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391235*/              0, // EndSwitchType
/*391236*/            /*Scope*/ 17, /*->391254*/
/*391237*/              OPC_CheckChild0Type, MVT::v4i32,
/*391239*/              OPC_MoveParent,
/*391240*/              OPC_RecordChild2, // #2 = $src0
/*391241*/              OPC_CheckType, MVT::v8i16,
/*391243*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391245*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ128rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSDWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*391254*/            /*Scope*/ 17, /*->391272*/
/*391255*/              OPC_CheckChild0Type, MVT::v8i32,
/*391257*/              OPC_MoveParent,
/*391258*/              OPC_RecordChild2, // #2 = $src0
/*391259*/              OPC_CheckType, MVT::v8i16,
/*391261*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391263*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ256rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSDWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*391272*/            0, /*End of Scope*/
/*391273*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->391292
/*391276*/            OPC_RecordChild0, // #1 = $src
/*391277*/            OPC_MoveParent,
/*391278*/            OPC_RecordChild2, // #2 = $src0
/*391279*/            OPC_CheckType, MVT::v8i16,
/*391281*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*391283*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ128rrk), 0,
                          MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (zext_invec:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPMOVZXBWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*391292*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VZEXT),// ->391382
/*391295*/            OPC_RecordChild0, // #1 = $src
/*391296*/            OPC_Scope, 32, /*->391330*/ // 3 children in Scope
/*391298*/              OPC_CheckChild0Type, MVT::v16i8,
/*391300*/              OPC_MoveParent,
/*391301*/              OPC_RecordChild2, // #2 = $src0
/*391302*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->391316
/*391305*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391307*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vzext:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXBDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*391316*/              /*SwitchType*/ 11, MVT::v8i64,// ->391329
/*391318*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391320*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vzext:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXBQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*391329*/              0, // EndSwitchType
/*391330*/            /*Scope*/ 32, /*->391363*/
/*391331*/              OPC_CheckChild0Type, MVT::v8i16,
/*391333*/              OPC_MoveParent,
/*391334*/              OPC_RecordChild2, // #2 = $src0
/*391335*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->391349
/*391338*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391340*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vzext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXWDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*391349*/              /*SwitchType*/ 11, MVT::v8i64,// ->391362
/*391351*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391353*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vzext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXWQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*391362*/              0, // EndSwitchType
/*391363*/            /*Scope*/ 17, /*->391381*/
/*391364*/              OPC_CheckChild0Type, MVT::v8i32,
/*391366*/              OPC_MoveParent,
/*391367*/              OPC_RecordChild2, // #2 = $src0
/*391368*/              OPC_CheckType, MVT::v8i64,
/*391370*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391372*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vzext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*391381*/            0, /*End of Scope*/
/*391382*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->391401
/*391385*/            OPC_RecordChild0, // #1 = $src
/*391386*/            OPC_MoveParent,
/*391387*/            OPC_RecordChild2, // #2 = $src0
/*391388*/            OPC_CheckType, MVT::v8i16,
/*391390*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*391392*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ128rrk), 0,
                          MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (sext_invec:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VPMOVSXBWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*391401*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VSEXT),// ->391491
/*391404*/            OPC_RecordChild0, // #1 = $src
/*391405*/            OPC_Scope, 32, /*->391439*/ // 3 children in Scope
/*391407*/              OPC_CheckChild0Type, MVT::v16i8,
/*391409*/              OPC_MoveParent,
/*391410*/              OPC_RecordChild2, // #2 = $src0
/*391411*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->391425
/*391414*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391416*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsext:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXBDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*391425*/              /*SwitchType*/ 11, MVT::v8i64,// ->391438
/*391427*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391429*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsext:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXBQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*391438*/              0, // EndSwitchType
/*391439*/            /*Scope*/ 32, /*->391472*/
/*391440*/              OPC_CheckChild0Type, MVT::v8i16,
/*391442*/              OPC_MoveParent,
/*391443*/              OPC_RecordChild2, // #2 = $src0
/*391444*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->391458
/*391447*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391449*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXWDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*391458*/              /*SwitchType*/ 11, MVT::v8i64,// ->391471
/*391460*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391462*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXWQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*391471*/              0, // EndSwitchType
/*391472*/            /*Scope*/ 17, /*->391490*/
/*391473*/              OPC_CheckChild0Type, MVT::v8i32,
/*391475*/              OPC_MoveParent,
/*391476*/              OPC_RecordChild2, // #2 = $src0
/*391477*/              OPC_CheckType, MVT::v8i64,
/*391479*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391481*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*391490*/            0, /*End of Scope*/
/*391491*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::COMPRESS),// ->391538
/*391494*/            OPC_RecordChild0, // #1 = $src1
/*391495*/            OPC_MoveParent,
/*391496*/            OPC_RecordChild2, // #2 = $src0
/*391497*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i32,// ->391511
/*391500*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391502*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZ256rrk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86compress:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPCOMPRESSDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*391511*/            /*SwitchType*/ 11, MVT::v8i64,// ->391524
/*391513*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391515*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86compress:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPCOMPRESSQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391524*/            /*SwitchType*/ 11, MVT::v8i16,// ->391537
/*391526*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*391528*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZ128rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86compress:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPCOMPRESSWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*391537*/            0, // EndSwitchType
/*391538*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::EXPAND),// ->391585
/*391541*/            OPC_RecordChild0, // #1 = $src1
/*391542*/            OPC_MoveParent,
/*391543*/            OPC_RecordChild2, // #2 = $src0
/*391544*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i32,// ->391558
/*391547*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391549*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rrk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPEXPANDDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*391558*/            /*SwitchType*/ 11, MVT::v8i64,// ->391571
/*391560*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391562*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPEXPANDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391571*/            /*SwitchType*/ 11, MVT::v8i16,// ->391584
/*391573*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*391575*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPEXPANDWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*391584*/            0, // EndSwitchType
/*391585*/          /*SwitchOpcode*/ 44, TARGET_VAL(ISD::ABS),// ->391632
/*391588*/            OPC_RecordChild0, // #1 = $src1
/*391589*/            OPC_MoveParent,
/*391590*/            OPC_RecordChild2, // #2 = $src0
/*391591*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i64,// ->391605
/*391594*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391596*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPABSQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391605*/            /*SwitchType*/ 11, MVT::v8i32,// ->391618
/*391607*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391609*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rrk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPABSDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*391618*/            /*SwitchType*/ 11, MVT::v8i16,// ->391631
/*391620*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*391622*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ128rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPABSWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*391631*/            0, // EndSwitchType
/*391632*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::CTLZ),// ->391666
/*391635*/            OPC_RecordChild0, // #1 = $src1
/*391636*/            OPC_MoveParent,
/*391637*/            OPC_RecordChild2, // #2 = $src0
/*391638*/            OPC_SwitchType /*2 cases */, 11, MVT::v8i64,// ->391652
/*391641*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*391643*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPLZCNTQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391652*/            /*SwitchType*/ 11, MVT::v8i32,// ->391665
/*391654*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*391656*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rrk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPLZCNTDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*391665*/            0, // EndSwitchType
/*391666*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::CONFLICT),// ->391700
/*391669*/            OPC_RecordChild0, // #1 = $src1
/*391670*/            OPC_MoveParent,
/*391671*/            OPC_RecordChild2, // #2 = $src0
/*391672*/            OPC_SwitchType /*2 cases */, 11, MVT::v8i64,// ->391686
/*391675*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*391677*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPCONFLICTQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391686*/            /*SwitchType*/ 11, MVT::v8i32,// ->391699
/*391688*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*391690*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rrk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPCONFLICTDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*391699*/            0, // EndSwitchType
/*391700*/          /*SwitchOpcode*/ 44, TARGET_VAL(ISD::CTPOP),// ->391747
/*391703*/            OPC_RecordChild0, // #1 = $src1
/*391704*/            OPC_MoveParent,
/*391705*/            OPC_RecordChild2, // #2 = $src0
/*391706*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i64,// ->391720
/*391709*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*391711*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPOPCNTQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*391720*/            /*SwitchType*/ 11, MVT::v8i32,// ->391733
/*391722*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*391724*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rrk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPOPCNTDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*391733*/            /*SwitchType*/ 11, MVT::v8i16,// ->391746
/*391735*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*391737*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ128rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPOPCNTWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*391746*/            0, // EndSwitchType
/*391747*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::UNPCKL),// ->391798
/*391750*/            OPC_RecordChild0, // #1 = $src1
/*391751*/            OPC_RecordChild1, // #2 = $src2
/*391752*/            OPC_MoveParent,
/*391753*/            OPC_RecordChild2, // #3 = $src0
/*391754*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->391769
/*391757*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*391759*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKLWDZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*391769*/            /*SwitchType*/ 12, MVT::v8i32,// ->391783
/*391771*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391773*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKLDQZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*391783*/            /*SwitchType*/ 12, MVT::v8i64,// ->391797
/*391785*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391787*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKLQDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*391797*/            0, // EndSwitchType
/*391798*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::UNPCKH),// ->391849
/*391801*/            OPC_RecordChild0, // #1 = $src1
/*391802*/            OPC_RecordChild1, // #2 = $src2
/*391803*/            OPC_MoveParent,
/*391804*/            OPC_RecordChild2, // #3 = $src0
/*391805*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->391820
/*391808*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*391810*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKHWDZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*391820*/            /*SwitchType*/ 12, MVT::v8i32,// ->391834
/*391822*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391824*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKHDQZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*391834*/            /*SwitchType*/ 12, MVT::v8i64,// ->391848
/*391836*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*391838*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKHQDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*391848*/            0, // EndSwitchType
/*391849*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::VSHLDV),// ->391902
/*391852*/            OPC_RecordChild0, // #1 = $src1
/*391853*/            OPC_RecordChild1, // #2 = $src2
/*391854*/            OPC_RecordChild2, // #3 = $src3
/*391855*/            OPC_MoveParent,
/*391856*/            OPC_CheckChild2Same, 1,
/*391858*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->391873
/*391861*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*391863*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ128rk), 0,
                            MVT::v8i16, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3), VR128X:{ *:[v8i16] }:$src1) - Complexity = 6
                        // Dst: (VPSHLDVWZ128rk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*391873*/            /*SwitchType*/ 12, MVT::v8i32,// ->391887
/*391875*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*391877*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ256rk), 0,
                            MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), VR256X:{ *:[v8i32] }:$src1) - Complexity = 6
                        // Dst: (VPSHLDVDZ256rk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*391887*/            /*SwitchType*/ 12, MVT::v8i64,// ->391901
/*391889*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*391891*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShldv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3), VR512:{ *:[v8i64] }:$src1) - Complexity = 6
                        // Dst: (VPSHLDVQZrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*391901*/            0, // EndSwitchType
/*391902*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::VSHRDV),// ->391955
/*391905*/            OPC_RecordChild0, // #1 = $src1
/*391906*/            OPC_RecordChild1, // #2 = $src2
/*391907*/            OPC_RecordChild2, // #3 = $src3
/*391908*/            OPC_MoveParent,
/*391909*/            OPC_CheckChild2Same, 1,
/*391911*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->391926
/*391914*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*391916*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ128rk), 0,
                            MVT::v8i16, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3), VR128X:{ *:[v8i16] }:$src1) - Complexity = 6
                        // Dst: (VPSHRDVWZ128rk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*391926*/            /*SwitchType*/ 12, MVT::v8i32,// ->391940
/*391928*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*391930*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ256rk), 0,
                            MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), VR256X:{ *:[v8i32] }:$src1) - Complexity = 6
                        // Dst: (VPSHRDVDZ256rk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*391940*/            /*SwitchType*/ 12, MVT::v8i64,// ->391954
/*391942*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*391944*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrdv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3), VR512:{ *:[v8i64] }:$src1) - Complexity = 6
                        // Dst: (VPSHRDVQZrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*391954*/            0, // EndSwitchType
/*391955*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSD),// ->391978
/*391958*/            OPC_RecordChild0, // #1 = $src1
/*391959*/            OPC_RecordChild1, // #2 = $src2
/*391960*/            OPC_RecordChild2, // #3 = $src3
/*391961*/            OPC_MoveParent,
/*391962*/            OPC_CheckChild2Same, 1,
/*391964*/            OPC_CheckType, MVT::v8i32,
/*391966*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*391968*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ256rk), 0,
                          MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), VR256X:{ *:[v8i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPBUSDZ256rk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*391978*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSDS),// ->392001
/*391981*/            OPC_RecordChild0, // #1 = $src1
/*391982*/            OPC_RecordChild1, // #2 = $src2
/*391983*/            OPC_RecordChild2, // #3 = $src3
/*391984*/            OPC_MoveParent,
/*391985*/            OPC_CheckChild2Same, 1,
/*391987*/            OPC_CheckType, MVT::v8i32,
/*391989*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*391991*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ256rk), 0,
                          MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpbusds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), VR256X:{ *:[v8i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPBUSDSZ256rk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*392001*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSD),// ->392024
/*392004*/            OPC_RecordChild0, // #1 = $src1
/*392005*/            OPC_RecordChild1, // #2 = $src2
/*392006*/            OPC_RecordChild2, // #3 = $src3
/*392007*/            OPC_MoveParent,
/*392008*/            OPC_CheckChild2Same, 1,
/*392010*/            OPC_CheckType, MVT::v8i32,
/*392012*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*392014*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256rk), 0,
                          MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), VR256X:{ *:[v8i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPWSSDZ256rk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*392024*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSDS),// ->392047
/*392027*/            OPC_RecordChild0, // #1 = $src1
/*392028*/            OPC_RecordChild1, // #2 = $src2
/*392029*/            OPC_RecordChild2, // #3 = $src3
/*392030*/            OPC_MoveParent,
/*392031*/            OPC_CheckChild2Same, 1,
/*392033*/            OPC_CheckType, MVT::v8i32,
/*392035*/            OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*392037*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ256rk), 0,
                          MVT::v8i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Vpdpwssds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), VR256X:{ *:[v8i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPWSSDSZ256rk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*392047*/          0, // EndSwitchOpcode
/*392048*/        /*Scope*/ 61|128,1/*189*/, /*->392239*/
/*392050*/          OPC_RecordChild1, // #1 = $src1
/*392051*/          OPC_RecordChild2, // #2 = $src0
/*392052*/          OPC_SwitchType /*3 cases */, 84, MVT::v8i32,// ->392139
/*392055*/            OPC_Scope, 11, /*->392068*/ // 2 children in Scope
/*392057*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392059*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rrk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src0) - Complexity = 3
                        // Dst: (VMOVDQA32Z256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*392068*/            /*Scope*/ 69, /*->392138*/
/*392069*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*392071*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*392077*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*392080*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*392089*/              OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*392092*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*392100*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #8
/*392106*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*392109*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*392118*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA32Zrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*392127*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*392130*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v8i32, 2/*#Ops*/, 11, 12, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src0) - Complexity = 3
                        // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VMOVDQA32Zrrk:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src0, sub_ymm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8WM:{ *:[v8i1] }:$mask, VK16WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*392138*/            0, /*End of Scope*/
/*392139*/          /*SwitchType*/ 11, MVT::v8i64,// ->392152
/*392141*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*392143*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrrk), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src0) - Complexity = 3
                      // Dst: (VMOVDQA64Zrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*392152*/          /*SwitchType*/ 84, MVT::v8i16,// ->392238
/*392154*/            OPC_Scope, 11, /*->392167*/ // 2 children in Scope
/*392156*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*392158*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z128rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src0) - Complexity = 3
                        // Dst: (VMOVDQU16Z128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*392167*/            /*Scope*/ 69, /*->392237*/
/*392168*/              OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*392170*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*392176*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*392179*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*392188*/              OPC_EmitInteger, MVT::i32, X86::VK32WMRegClassID,
/*392191*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v32i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*392199*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #8
/*392205*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*392208*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*392217*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU16Zrrk), 0,
                            MVT::v32i16, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*392226*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*392229*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v8i16, 2/*#Ops*/, 11, 12, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src0) - Complexity = 3
                        // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } (VMOVDQU16Zrrk:{ *:[v32i16] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src0, sub_xmm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v32i1] } VK8WM:{ *:[v8i1] }:$mask, VK32WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*392237*/            0, /*End of Scope*/
/*392238*/          0, // EndSwitchType
/*392239*/        /*Scope*/ 101|128,24/*3173*/, /*->395414*/
/*392241*/          OPC_MoveChild1,
/*392242*/          OPC_SwitchOpcode /*15 cases */, 111|128,2/*367*/, TARGET_VAL(X86ISD::VFIXUPIMM),// ->392614
/*392247*/            OPC_RecordChild0, // #1 = $src1
/*392248*/            OPC_RecordChild1, // #2 = $src2
/*392249*/            OPC_MoveChild2,
/*392250*/            OPC_SwitchOpcode /*3 cases */, 101, TARGET_VAL(ISD::BITCAST),// ->392355
/*392254*/              OPC_MoveChild0,
/*392255*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*392258*/              OPC_RecordMemRef,
/*392259*/              OPC_RecordNode, // #3 = 'ld' chained node
/*392260*/              OPC_CheckFoldableChainNode,
/*392261*/              OPC_RecordChild1, // #4 = $src3
/*392262*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*392264*/              OPC_CheckPredicate, 9, // Predicate_load
/*392266*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*392268*/              OPC_CheckType, MVT::v4i64,
/*392270*/              OPC_MoveParent,
/*392271*/              OPC_MoveParent,
/*392272*/              OPC_RecordChild3, // #5 = $src4
/*392273*/              OPC_MoveChild3,
/*392274*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*392277*/              OPC_MoveParent,
/*392278*/              OPC_CheckChild4Integer, 4, 
/*392280*/              OPC_MoveParent,
/*392281*/              OPC_Scope, 41, /*->392324*/ // 2 children in Scope
/*392283*/                OPC_MoveChild2,
/*392284*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392287*/                OPC_MoveChild0,
/*392288*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*392291*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*392293*/                OPC_CheckType, MVT::v8i32,
/*392295*/                OPC_MoveParent,
/*392296*/                OPC_MoveParent,
/*392297*/                OPC_CheckType, MVT::v8f32,
/*392299*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392301*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*392304*/                OPC_EmitMergeInputChains, 1, 3, 
/*392307*/                OPC_EmitConvertToTarget, 5,
/*392309*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 46
                          // Dst: (VFIXUPIMMPSZ256rmikz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*392324*/              /*Scope*/ 29, /*->392354*/
/*392325*/                OPC_CheckChild2Same, 1,
/*392327*/                OPC_CheckType, MVT::v8f32,
/*392329*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392331*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*392334*/                OPC_EmitMergeInputChains, 1, 3, 
/*392337*/                OPC_EmitConvertToTarget, 5,
/*392339*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR256X:{ *:[v8f32] }:$src1) - Complexity = 39
                          // Dst: (VFIXUPIMMPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*392354*/              0, /*End of Scope*/
/*392355*/            /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(X86ISD::VBROADCAST),// ->392549
/*392359*/              OPC_MoveChild0,
/*392360*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*392363*/              OPC_RecordMemRef,
/*392364*/              OPC_RecordNode, // #3 = 'ld' chained node
/*392365*/              OPC_CheckFoldableChainNode,
/*392366*/              OPC_RecordChild1, // #4 = $src3
/*392367*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*392369*/              OPC_SwitchType /*2 cases */, 87, MVT::i32,// ->392459
/*392372*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*392374*/                OPC_MoveParent,
/*392375*/                OPC_MoveParent,
/*392376*/                OPC_RecordChild3, // #5 = $src4
/*392377*/                OPC_MoveChild3,
/*392378*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*392381*/                OPC_MoveParent,
/*392382*/                OPC_CheckChild4Integer, 4, 
/*392384*/                OPC_MoveParent,
/*392385*/                OPC_Scope, 41, /*->392428*/ // 2 children in Scope
/*392387*/                  OPC_MoveChild2,
/*392388*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392391*/                  OPC_MoveChild0,
/*392392*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*392395*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*392397*/                  OPC_CheckType, MVT::v8i32,
/*392399*/                  OPC_MoveParent,
/*392400*/                  OPC_MoveParent,
/*392401*/                  OPC_CheckType, MVT::v8f32,
/*392403*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392405*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*392408*/                  OPC_EmitMergeInputChains, 1, 3, 
/*392411*/                  OPC_EmitConvertToTarget, 5,
/*392413*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 46
                            // Dst: (VFIXUPIMMPSZ256rmbikz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*392428*/                /*Scope*/ 29, /*->392458*/
/*392429*/                  OPC_CheckChild2Same, 1,
/*392431*/                  OPC_CheckType, MVT::v8f32,
/*392433*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392435*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*392438*/                  OPC_EmitMergeInputChains, 1, 3, 
/*392441*/                  OPC_EmitConvertToTarget, 5,
/*392443*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR256X:{ *:[v8f32] }:$src1) - Complexity = 39
                            // Dst: (VFIXUPIMMPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*392458*/                0, /*End of Scope*/
/*392459*/              /*SwitchType*/ 87, MVT::i64,// ->392548
/*392461*/                OPC_CheckPredicate, 9, // Predicate_load
/*392463*/                OPC_MoveParent,
/*392464*/                OPC_MoveParent,
/*392465*/                OPC_RecordChild3, // #5 = $src4
/*392466*/                OPC_MoveChild3,
/*392467*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*392470*/                OPC_MoveParent,
/*392471*/                OPC_CheckChild4Integer, 4, 
/*392473*/                OPC_MoveParent,
/*392474*/                OPC_Scope, 41, /*->392517*/ // 2 children in Scope
/*392476*/                  OPC_MoveChild2,
/*392477*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392480*/                  OPC_MoveChild0,
/*392481*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*392484*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*392486*/                  OPC_CheckType, MVT::v16i32,
/*392488*/                  OPC_MoveParent,
/*392489*/                  OPC_MoveParent,
/*392490*/                  OPC_CheckType, MVT::v8f64,
/*392492*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*392494*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*392497*/                  OPC_EmitMergeInputChains, 1, 3, 
/*392500*/                  OPC_EmitConvertToTarget, 5,
/*392502*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 46
                            // Dst: (VFIXUPIMMPDZrmbikz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*392517*/                /*Scope*/ 29, /*->392547*/
/*392518*/                  OPC_CheckChild2Same, 1,
/*392520*/                  OPC_CheckType, MVT::v8f64,
/*392522*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*392524*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*392527*/                  OPC_EmitMergeInputChains, 1, 3, 
/*392530*/                  OPC_EmitConvertToTarget, 5,
/*392532*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src1) - Complexity = 39
                            // Dst: (VFIXUPIMMPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*392547*/                0, /*End of Scope*/
/*392548*/              0, // EndSwitchType
/*392549*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->392613
/*392552*/              OPC_RecordMemRef,
/*392553*/              OPC_RecordNode, // #3 = 'ld' chained node
/*392554*/              OPC_CheckFoldableChainNode,
/*392555*/              OPC_RecordChild1, // #4 = $src3
/*392556*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*392558*/              OPC_CheckPredicate, 9, // Predicate_load
/*392560*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*392562*/              OPC_MoveParent,
/*392563*/              OPC_RecordChild3, // #5 = $src4
/*392564*/              OPC_MoveChild3,
/*392565*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*392568*/              OPC_MoveParent,
/*392569*/              OPC_CheckChild4Integer, 4, 
/*392571*/              OPC_MoveParent,
/*392572*/              OPC_MoveChild2,
/*392573*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392576*/              OPC_MoveChild0,
/*392577*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*392580*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*392582*/              OPC_CheckType, MVT::v16i32,
/*392584*/              OPC_MoveParent,
/*392585*/              OPC_MoveParent,
/*392586*/              OPC_CheckType, MVT::v8f64,
/*392588*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*392590*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*392593*/              OPC_EmitMergeInputChains, 1, 3, 
/*392596*/              OPC_EmitConvertToTarget, 5,
/*392598*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                        // Dst: (VFIXUPIMMPDZrmikz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*392613*/            0, // EndSwitchOpcode
/*392614*/          /*SwitchOpcode*/ 89|128,9/*1241*/, TARGET_VAL(ISD::BITCAST),// ->393859
/*392618*/            OPC_Scope, 86|128,7/*982*/, /*->393603*/ // 3 children in Scope
/*392621*/              OPC_MoveChild0,
/*392622*/              OPC_SwitchOpcode /*5 cases */, 107|128,1/*235*/, TARGET_VAL(ISD::AND),// ->392862
/*392627*/                OPC_Scope, 115, /*->392744*/ // 2 children in Scope
/*392629*/                  OPC_RecordChild0, // #1 = $src1
/*392630*/                  OPC_MoveChild1,
/*392631*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392634*/                  OPC_MoveChild0,
/*392635*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*392638*/                  OPC_MoveChild0,
/*392639*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*392642*/                  OPC_RecordMemRef,
/*392643*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*392644*/                  OPC_CheckFoldableChainNode,
/*392645*/                  OPC_RecordChild1, // #3 = $src2
/*392646*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*392648*/                  OPC_CheckPredicate, 9, // Predicate_load
/*392650*/                  OPC_SwitchType /*2 cases */, 44, MVT::f32,// ->392697
/*392653*/                    OPC_MoveParent,
/*392654*/                    OPC_CheckType, MVT::v8f32,
/*392656*/                    OPC_MoveParent,
/*392657*/                    OPC_MoveParent,
/*392658*/                    OPC_CheckType, MVT::v4i64,
/*392660*/                    OPC_MoveParent,
/*392661*/                    OPC_MoveParent,
/*392662*/                    OPC_MoveChild2,
/*392663*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392666*/                    OPC_MoveChild0,
/*392667*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*392670*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*392672*/                    OPC_CheckType, MVT::v8i32,
/*392674*/                    OPC_MoveParent,
/*392675*/                    OPC_MoveParent,
/*392676*/                    OPC_CheckType, MVT::v8f32,
/*392678*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*392680*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*392683*/                    OPC_EmitMergeInputChains1_2,
/*392684*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPANDDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*392697*/                  /*SwitchType*/ 44, MVT::f64,// ->392743
/*392699*/                    OPC_MoveParent,
/*392700*/                    OPC_CheckType, MVT::v8f64,
/*392702*/                    OPC_MoveParent,
/*392703*/                    OPC_MoveParent,
/*392704*/                    OPC_CheckType, MVT::v8i64,
/*392706*/                    OPC_MoveParent,
/*392707*/                    OPC_MoveParent,
/*392708*/                    OPC_MoveChild2,
/*392709*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392712*/                    OPC_MoveChild0,
/*392713*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*392716*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*392718*/                    OPC_CheckType, MVT::v16i32,
/*392720*/                    OPC_MoveParent,
/*392721*/                    OPC_MoveParent,
/*392722*/                    OPC_CheckType, MVT::v8f64,
/*392724*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*392726*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*392729*/                    OPC_EmitMergeInputChains1_2,
/*392730*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPANDQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*392743*/                  0, // EndSwitchType
/*392744*/                /*Scope*/ 116, /*->392861*/
/*392745*/                  OPC_MoveChild0,
/*392746*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392749*/                  OPC_MoveChild0,
/*392750*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*392753*/                  OPC_MoveChild0,
/*392754*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*392757*/                  OPC_RecordMemRef,
/*392758*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*392759*/                  OPC_CheckFoldableChainNode,
/*392760*/                  OPC_RecordChild1, // #2 = $src2
/*392761*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*392763*/                  OPC_CheckPredicate, 9, // Predicate_load
/*392765*/                  OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->392813
/*392768*/                    OPC_MoveParent,
/*392769*/                    OPC_CheckType, MVT::v8f32,
/*392771*/                    OPC_MoveParent,
/*392772*/                    OPC_MoveParent,
/*392773*/                    OPC_RecordChild1, // #3 = $src1
/*392774*/                    OPC_CheckType, MVT::v4i64,
/*392776*/                    OPC_MoveParent,
/*392777*/                    OPC_MoveParent,
/*392778*/                    OPC_MoveChild2,
/*392779*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392782*/                    OPC_MoveChild0,
/*392783*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*392786*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*392788*/                    OPC_CheckType, MVT::v8i32,
/*392790*/                    OPC_MoveParent,
/*392791*/                    OPC_MoveParent,
/*392792*/                    OPC_CheckType, MVT::v8f32,
/*392794*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*392796*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*392799*/                    OPC_EmitMergeInputChains1_1,
/*392800*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPANDDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*392813*/                  /*SwitchType*/ 45, MVT::f64,// ->392860
/*392815*/                    OPC_MoveParent,
/*392816*/                    OPC_CheckType, MVT::v8f64,
/*392818*/                    OPC_MoveParent,
/*392819*/                    OPC_MoveParent,
/*392820*/                    OPC_RecordChild1, // #3 = $src1
/*392821*/                    OPC_CheckType, MVT::v8i64,
/*392823*/                    OPC_MoveParent,
/*392824*/                    OPC_MoveParent,
/*392825*/                    OPC_MoveChild2,
/*392826*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392829*/                    OPC_MoveChild0,
/*392830*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*392833*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*392835*/                    OPC_CheckType, MVT::v16i32,
/*392837*/                    OPC_MoveParent,
/*392838*/                    OPC_MoveParent,
/*392839*/                    OPC_CheckType, MVT::v8f64,
/*392841*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*392843*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*392846*/                    OPC_EmitMergeInputChains1_1,
/*392847*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPANDQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*392860*/                  0, // EndSwitchType
/*392861*/                0, /*End of Scope*/
/*392862*/              /*SwitchOpcode*/ 107|128,1/*235*/, TARGET_VAL(ISD::OR),// ->393101
/*392866*/                OPC_Scope, 115, /*->392983*/ // 2 children in Scope
/*392868*/                  OPC_RecordChild0, // #1 = $src1
/*392869*/                  OPC_MoveChild1,
/*392870*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392873*/                  OPC_MoveChild0,
/*392874*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*392877*/                  OPC_MoveChild0,
/*392878*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*392881*/                  OPC_RecordMemRef,
/*392882*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*392883*/                  OPC_CheckFoldableChainNode,
/*392884*/                  OPC_RecordChild1, // #3 = $src2
/*392885*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*392887*/                  OPC_CheckPredicate, 9, // Predicate_load
/*392889*/                  OPC_SwitchType /*2 cases */, 44, MVT::f32,// ->392936
/*392892*/                    OPC_MoveParent,
/*392893*/                    OPC_CheckType, MVT::v8f32,
/*392895*/                    OPC_MoveParent,
/*392896*/                    OPC_MoveParent,
/*392897*/                    OPC_CheckType, MVT::v4i64,
/*392899*/                    OPC_MoveParent,
/*392900*/                    OPC_MoveParent,
/*392901*/                    OPC_MoveChild2,
/*392902*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392905*/                    OPC_MoveChild0,
/*392906*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*392909*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*392911*/                    OPC_CheckType, MVT::v8i32,
/*392913*/                    OPC_MoveParent,
/*392914*/                    OPC_MoveParent,
/*392915*/                    OPC_CheckType, MVT::v8f32,
/*392917*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*392919*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*392922*/                    OPC_EmitMergeInputChains1_2,
/*392923*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPORDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*392936*/                  /*SwitchType*/ 44, MVT::f64,// ->392982
/*392938*/                    OPC_MoveParent,
/*392939*/                    OPC_CheckType, MVT::v8f64,
/*392941*/                    OPC_MoveParent,
/*392942*/                    OPC_MoveParent,
/*392943*/                    OPC_CheckType, MVT::v8i64,
/*392945*/                    OPC_MoveParent,
/*392946*/                    OPC_MoveParent,
/*392947*/                    OPC_MoveChild2,
/*392948*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392951*/                    OPC_MoveChild0,
/*392952*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*392955*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*392957*/                    OPC_CheckType, MVT::v16i32,
/*392959*/                    OPC_MoveParent,
/*392960*/                    OPC_MoveParent,
/*392961*/                    OPC_CheckType, MVT::v8f64,
/*392963*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*392965*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*392968*/                    OPC_EmitMergeInputChains1_2,
/*392969*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPORQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*392982*/                  0, // EndSwitchType
/*392983*/                /*Scope*/ 116, /*->393100*/
/*392984*/                  OPC_MoveChild0,
/*392985*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*392988*/                  OPC_MoveChild0,
/*392989*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*392992*/                  OPC_MoveChild0,
/*392993*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*392996*/                  OPC_RecordMemRef,
/*392997*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*392998*/                  OPC_CheckFoldableChainNode,
/*392999*/                  OPC_RecordChild1, // #2 = $src2
/*393000*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*393002*/                  OPC_CheckPredicate, 9, // Predicate_load
/*393004*/                  OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->393052
/*393007*/                    OPC_MoveParent,
/*393008*/                    OPC_CheckType, MVT::v8f32,
/*393010*/                    OPC_MoveParent,
/*393011*/                    OPC_MoveParent,
/*393012*/                    OPC_RecordChild1, // #3 = $src1
/*393013*/                    OPC_CheckType, MVT::v4i64,
/*393015*/                    OPC_MoveParent,
/*393016*/                    OPC_MoveParent,
/*393017*/                    OPC_MoveChild2,
/*393018*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393021*/                    OPC_MoveChild0,
/*393022*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393025*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393027*/                    OPC_CheckType, MVT::v8i32,
/*393029*/                    OPC_MoveParent,
/*393030*/                    OPC_MoveParent,
/*393031*/                    OPC_CheckType, MVT::v8f32,
/*393033*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393035*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*393038*/                    OPC_EmitMergeInputChains1_1,
/*393039*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPORDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*393052*/                  /*SwitchType*/ 45, MVT::f64,// ->393099
/*393054*/                    OPC_MoveParent,
/*393055*/                    OPC_CheckType, MVT::v8f64,
/*393057*/                    OPC_MoveParent,
/*393058*/                    OPC_MoveParent,
/*393059*/                    OPC_RecordChild1, // #3 = $src1
/*393060*/                    OPC_CheckType, MVT::v8i64,
/*393062*/                    OPC_MoveParent,
/*393063*/                    OPC_MoveParent,
/*393064*/                    OPC_MoveChild2,
/*393065*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393068*/                    OPC_MoveChild0,
/*393069*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393072*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393074*/                    OPC_CheckType, MVT::v16i32,
/*393076*/                    OPC_MoveParent,
/*393077*/                    OPC_MoveParent,
/*393078*/                    OPC_CheckType, MVT::v8f64,
/*393080*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*393082*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*393085*/                    OPC_EmitMergeInputChains1_1,
/*393086*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPORQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*393099*/                  0, // EndSwitchType
/*393100*/                0, /*End of Scope*/
/*393101*/              /*SwitchOpcode*/ 107|128,1/*235*/, TARGET_VAL(ISD::XOR),// ->393340
/*393105*/                OPC_Scope, 115, /*->393222*/ // 2 children in Scope
/*393107*/                  OPC_RecordChild0, // #1 = $src1
/*393108*/                  OPC_MoveChild1,
/*393109*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393112*/                  OPC_MoveChild0,
/*393113*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*393116*/                  OPC_MoveChild0,
/*393117*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*393120*/                  OPC_RecordMemRef,
/*393121*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*393122*/                  OPC_CheckFoldableChainNode,
/*393123*/                  OPC_RecordChild1, // #3 = $src2
/*393124*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*393126*/                  OPC_CheckPredicate, 9, // Predicate_load
/*393128*/                  OPC_SwitchType /*2 cases */, 44, MVT::f32,// ->393175
/*393131*/                    OPC_MoveParent,
/*393132*/                    OPC_CheckType, MVT::v8f32,
/*393134*/                    OPC_MoveParent,
/*393135*/                    OPC_MoveParent,
/*393136*/                    OPC_CheckType, MVT::v4i64,
/*393138*/                    OPC_MoveParent,
/*393139*/                    OPC_MoveParent,
/*393140*/                    OPC_MoveChild2,
/*393141*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393144*/                    OPC_MoveChild0,
/*393145*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393148*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393150*/                    OPC_CheckType, MVT::v8i32,
/*393152*/                    OPC_MoveParent,
/*393153*/                    OPC_MoveParent,
/*393154*/                    OPC_CheckType, MVT::v8f32,
/*393156*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393158*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*393161*/                    OPC_EmitMergeInputChains1_2,
/*393162*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPXORDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*393175*/                  /*SwitchType*/ 44, MVT::f64,// ->393221
/*393177*/                    OPC_MoveParent,
/*393178*/                    OPC_CheckType, MVT::v8f64,
/*393180*/                    OPC_MoveParent,
/*393181*/                    OPC_MoveParent,
/*393182*/                    OPC_CheckType, MVT::v8i64,
/*393184*/                    OPC_MoveParent,
/*393185*/                    OPC_MoveParent,
/*393186*/                    OPC_MoveChild2,
/*393187*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393190*/                    OPC_MoveChild0,
/*393191*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393194*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393196*/                    OPC_CheckType, MVT::v16i32,
/*393198*/                    OPC_MoveParent,
/*393199*/                    OPC_MoveParent,
/*393200*/                    OPC_CheckType, MVT::v8f64,
/*393202*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*393204*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*393207*/                    OPC_EmitMergeInputChains1_2,
/*393208*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPXORQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*393221*/                  0, // EndSwitchType
/*393222*/                /*Scope*/ 116, /*->393339*/
/*393223*/                  OPC_MoveChild0,
/*393224*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393227*/                  OPC_MoveChild0,
/*393228*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*393231*/                  OPC_MoveChild0,
/*393232*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*393235*/                  OPC_RecordMemRef,
/*393236*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*393237*/                  OPC_CheckFoldableChainNode,
/*393238*/                  OPC_RecordChild1, // #2 = $src2
/*393239*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*393241*/                  OPC_CheckPredicate, 9, // Predicate_load
/*393243*/                  OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->393291
/*393246*/                    OPC_MoveParent,
/*393247*/                    OPC_CheckType, MVT::v8f32,
/*393249*/                    OPC_MoveParent,
/*393250*/                    OPC_MoveParent,
/*393251*/                    OPC_RecordChild1, // #3 = $src1
/*393252*/                    OPC_CheckType, MVT::v4i64,
/*393254*/                    OPC_MoveParent,
/*393255*/                    OPC_MoveParent,
/*393256*/                    OPC_MoveChild2,
/*393257*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393260*/                    OPC_MoveChild0,
/*393261*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393264*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393266*/                    OPC_CheckType, MVT::v8i32,
/*393268*/                    OPC_MoveParent,
/*393269*/                    OPC_MoveParent,
/*393270*/                    OPC_CheckType, MVT::v8f32,
/*393272*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393274*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*393277*/                    OPC_EmitMergeInputChains1_1,
/*393278*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPXORDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*393291*/                  /*SwitchType*/ 45, MVT::f64,// ->393338
/*393293*/                    OPC_MoveParent,
/*393294*/                    OPC_CheckType, MVT::v8f64,
/*393296*/                    OPC_MoveParent,
/*393297*/                    OPC_MoveParent,
/*393298*/                    OPC_RecordChild1, // #3 = $src1
/*393299*/                    OPC_CheckType, MVT::v8i64,
/*393301*/                    OPC_MoveParent,
/*393302*/                    OPC_MoveParent,
/*393303*/                    OPC_MoveChild2,
/*393304*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393307*/                    OPC_MoveChild0,
/*393308*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393311*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393313*/                    OPC_CheckType, MVT::v16i32,
/*393315*/                    OPC_MoveParent,
/*393316*/                    OPC_MoveParent,
/*393317*/                    OPC_CheckType, MVT::v8f64,
/*393319*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*393321*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*393324*/                    OPC_EmitMergeInputChains1_1,
/*393325*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                              // Dst: (VPXORQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*393338*/                  0, // EndSwitchType
/*393339*/                0, /*End of Scope*/
/*393340*/              /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::ANDNP),// ->393458
/*393343*/                OPC_RecordChild0, // #1 = $src1
/*393344*/                OPC_MoveChild1,
/*393345*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393348*/                OPC_MoveChild0,
/*393349*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*393352*/                OPC_MoveChild0,
/*393353*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*393356*/                OPC_RecordMemRef,
/*393357*/                OPC_RecordNode, // #2 = 'ld' chained node
/*393358*/                OPC_CheckFoldableChainNode,
/*393359*/                OPC_RecordChild1, // #3 = $src2
/*393360*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*393362*/                OPC_CheckPredicate, 9, // Predicate_load
/*393364*/                OPC_SwitchType /*2 cases */, 44, MVT::f32,// ->393411
/*393367*/                  OPC_MoveParent,
/*393368*/                  OPC_CheckType, MVT::v8f32,
/*393370*/                  OPC_MoveParent,
/*393371*/                  OPC_MoveParent,
/*393372*/                  OPC_CheckType, MVT::v4i64,
/*393374*/                  OPC_MoveParent,
/*393375*/                  OPC_MoveParent,
/*393376*/                  OPC_MoveChild2,
/*393377*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393380*/                  OPC_MoveChild0,
/*393381*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393384*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393386*/                  OPC_CheckType, MVT::v8i32,
/*393388*/                  OPC_MoveParent,
/*393389*/                  OPC_MoveParent,
/*393390*/                  OPC_CheckType, MVT::v8f32,
/*393392*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393394*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*393397*/                  OPC_EmitMergeInputChains1_2,
/*393398*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPANDNDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*393411*/                /*SwitchType*/ 44, MVT::f64,// ->393457
/*393413*/                  OPC_MoveParent,
/*393414*/                  OPC_CheckType, MVT::v8f64,
/*393416*/                  OPC_MoveParent,
/*393417*/                  OPC_MoveParent,
/*393418*/                  OPC_CheckType, MVT::v8i64,
/*393420*/                  OPC_MoveParent,
/*393421*/                  OPC_MoveParent,
/*393422*/                  OPC_MoveChild2,
/*393423*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393426*/                  OPC_MoveChild0,
/*393427*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393430*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393432*/                  OPC_CheckType, MVT::v16i32,
/*393434*/                  OPC_MoveParent,
/*393435*/                  OPC_MoveParent,
/*393436*/                  OPC_CheckType, MVT::v8f64,
/*393438*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*393440*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*393443*/                  OPC_EmitMergeInputChains1_2,
/*393444*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPANDNQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*393457*/                0, // EndSwitchType
/*393458*/              /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::SHUF128),// ->393602
/*393462*/                OPC_RecordChild0, // #1 = $src1
/*393463*/                OPC_MoveChild1,
/*393464*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::BITCAST),// ->393534
/*393468*/                  OPC_MoveChild0,
/*393469*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*393472*/                  OPC_RecordMemRef,
/*393473*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*393474*/                  OPC_CheckFoldableChainNode,
/*393475*/                  OPC_RecordChild1, // #3 = $src2
/*393476*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*393478*/                  OPC_CheckPredicate, 9, // Predicate_load
/*393480*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*393482*/                  OPC_CheckType, MVT::v8f32,
/*393484*/                  OPC_MoveParent,
/*393485*/                  OPC_MoveParent,
/*393486*/                  OPC_RecordChild2, // #4 = $src3
/*393487*/                  OPC_MoveChild2,
/*393488*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*393491*/                  OPC_MoveParent,
/*393492*/                  OPC_CheckType, MVT::v4f64,
/*393494*/                  OPC_MoveParent,
/*393495*/                  OPC_MoveParent,
/*393496*/                  OPC_MoveChild2,
/*393497*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393500*/                  OPC_MoveChild0,
/*393501*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393504*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393506*/                  OPC_CheckType, MVT::v8i32,
/*393508*/                  OPC_MoveParent,
/*393509*/                  OPC_MoveParent,
/*393510*/                  OPC_CheckType, MVT::v8f32,
/*393512*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393514*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*393517*/                  OPC_EmitMergeInputChains1_2,
/*393518*/                  OPC_EmitConvertToTarget, 4,
/*393520*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (bitconvert:{ *:[v4f64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VSHUFF32X4Z256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*393534*/                /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST),// ->393601
/*393537*/                  OPC_MoveChild0,
/*393538*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*393541*/                  OPC_RecordMemRef,
/*393542*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*393543*/                  OPC_CheckFoldableChainNode,
/*393544*/                  OPC_RecordChild1, // #3 = $src2
/*393545*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*393547*/                  OPC_CheckPredicate, 9, // Predicate_load
/*393549*/                  OPC_CheckType, MVT::f32,
/*393551*/                  OPC_MoveParent,
/*393552*/                  OPC_MoveParent,
/*393553*/                  OPC_RecordChild2, // #4 = $src3
/*393554*/                  OPC_MoveChild2,
/*393555*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*393558*/                  OPC_MoveParent,
/*393559*/                  OPC_CheckType, MVT::v4f64,
/*393561*/                  OPC_MoveParent,
/*393562*/                  OPC_MoveParent,
/*393563*/                  OPC_MoveChild2,
/*393564*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393567*/                  OPC_MoveChild0,
/*393568*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393571*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393573*/                  OPC_CheckType, MVT::v8i32,
/*393575*/                  OPC_MoveParent,
/*393576*/                  OPC_MoveParent,
/*393577*/                  OPC_CheckType, MVT::v8f32,
/*393579*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393581*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*393584*/                  OPC_EmitMergeInputChains1_2,
/*393585*/                  OPC_EmitConvertToTarget, 4,
/*393587*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VSHUFF32X4Z256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*393601*/                0, // EndSwitchOpcode
/*393602*/              0, // EndSwitchOpcode
/*393603*/            /*Scope*/ 60|128,1/*188*/, /*->393793*/
/*393605*/              OPC_RecordChild0, // #1 = $ins
/*393606*/              OPC_MoveChild0,
/*393607*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*393610*/              OPC_RecordChild0, // #2 = $src1
/*393611*/              OPC_MoveChild1,
/*393612*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*393615*/              OPC_RecordMemRef,
/*393616*/              OPC_RecordNode, // #3 = 'ld' chained node
/*393617*/              OPC_CheckFoldableChainNode,
/*393618*/              OPC_RecordChild1, // #4 = $src2
/*393619*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*393621*/              OPC_CheckPredicate, 9, // Predicate_load
/*393623*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*393625*/              OPC_Scope, 53, /*->393680*/ // 3 children in Scope
/*393627*/                OPC_MoveParent,
/*393628*/                OPC_MoveChild2,
/*393629*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*393632*/                OPC_CheckType, MVT::iPTR,
/*393634*/                OPC_MoveParent,
/*393635*/                OPC_CheckType, MVT::v4f64,
/*393637*/                OPC_MoveParent,
/*393638*/                OPC_MoveParent,
/*393639*/                OPC_MoveChild2,
/*393640*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393643*/                OPC_MoveChild0,
/*393644*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393647*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393649*/                OPC_CheckType, MVT::v8i32,
/*393651*/                OPC_MoveParent,
/*393652*/                OPC_MoveParent,
/*393653*/                OPC_CheckType, MVT::v8f32,
/*393655*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393657*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*393660*/                OPC_EmitMergeInputChains, 1, 3, 
/*393663*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*393666*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VINSERTF32x4Z256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ins))
/*393680*/              /*Scope*/ 55, /*->393736*/
/*393681*/                OPC_CheckType, MVT::v4f32,
/*393683*/                OPC_MoveParent,
/*393684*/                OPC_MoveChild2,
/*393685*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*393688*/                OPC_CheckType, MVT::iPTR,
/*393690*/                OPC_MoveParent,
/*393691*/                OPC_CheckType, MVT::v16f32,
/*393693*/                OPC_MoveParent,
/*393694*/                OPC_MoveParent,
/*393695*/                OPC_MoveChild2,
/*393696*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393699*/                OPC_MoveChild0,
/*393700*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393703*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393705*/                OPC_CheckType, MVT::v16i32,
/*393707*/                OPC_MoveParent,
/*393708*/                OPC_MoveParent,
/*393709*/                OPC_CheckType, MVT::v8f64,
/*393711*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*393713*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*393716*/                OPC_EmitMergeInputChains, 1, 3, 
/*393719*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*393722*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VINSERTF64x2Zrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*393736*/              /*Scope*/ 55, /*->393792*/
/*393737*/                OPC_CheckType, MVT::v8f32,
/*393739*/                OPC_MoveParent,
/*393740*/                OPC_MoveChild2,
/*393741*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*393744*/                OPC_CheckType, MVT::iPTR,
/*393746*/                OPC_MoveParent,
/*393747*/                OPC_CheckType, MVT::v16f32,
/*393749*/                OPC_MoveParent,
/*393750*/                OPC_MoveParent,
/*393751*/                OPC_MoveChild2,
/*393752*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393755*/                OPC_MoveChild0,
/*393756*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393759*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393761*/                OPC_CheckType, MVT::v16i32,
/*393763*/                OPC_MoveParent,
/*393764*/                OPC_MoveParent,
/*393765*/                OPC_CheckType, MVT::v8f64,
/*393767*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*393769*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*393772*/                OPC_EmitMergeInputChains, 1, 3, 
/*393775*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*393778*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VINSERTF64x4Zrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*393792*/              0, /*End of Scope*/
/*393793*/            /*Scope*/ 64, /*->393858*/
/*393794*/              OPC_MoveChild0,
/*393795*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*393798*/              OPC_MoveChild0,
/*393799*/              OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*393802*/              OPC_MoveChild0,
/*393803*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*393806*/              OPC_RecordMemRef,
/*393807*/              OPC_RecordNode, // #1 = 'ld' chained node
/*393808*/              OPC_CheckFoldableChainNode,
/*393809*/              OPC_RecordChild1, // #2 = $src
/*393810*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*393812*/              OPC_CheckPredicate, 9, // Predicate_load
/*393814*/              OPC_CheckType, MVT::f64,
/*393816*/              OPC_MoveParent,
/*393817*/              OPC_CheckType, MVT::v2f64,
/*393819*/              OPC_MoveParent,
/*393820*/              OPC_CheckType, MVT::v4f64,
/*393822*/              OPC_MoveParent,
/*393823*/              OPC_MoveParent,
/*393824*/              OPC_MoveChild2,
/*393825*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393828*/              OPC_MoveChild0,
/*393829*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393832*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393834*/              OPC_CheckType, MVT::v8i32,
/*393836*/              OPC_MoveParent,
/*393837*/              OPC_MoveParent,
/*393838*/              OPC_CheckType, MVT::v8f32,
/*393840*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*393842*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*393845*/              OPC_EmitMergeInputChains1_1,
/*393846*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Z256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86VBroadcast:{ *:[v4f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VBROADCASTF32X2Z256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*393858*/            0, /*End of Scope*/
/*393859*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::SCALEF),// ->394047
/*393863*/            OPC_RecordChild0, // #1 = $src1
/*393864*/            OPC_MoveChild1,
/*393865*/            OPC_SwitchOpcode /*2 cases */, 98, TARGET_VAL(X86ISD::VBROADCAST),// ->393967
/*393869*/              OPC_MoveChild0,
/*393870*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*393873*/              OPC_RecordMemRef,
/*393874*/              OPC_RecordNode, // #2 = 'ld' chained node
/*393875*/              OPC_CheckFoldableChainNode,
/*393876*/              OPC_RecordChild1, // #3 = $src2
/*393877*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*393879*/              OPC_CheckPredicate, 9, // Predicate_load
/*393881*/              OPC_SwitchType /*2 cases */, 40, MVT::f64,// ->393924
/*393884*/                OPC_MoveParent,
/*393885*/                OPC_MoveParent,
/*393886*/                OPC_CheckChild2Integer, 4, 
/*393888*/                OPC_MoveParent,
/*393889*/                OPC_MoveChild2,
/*393890*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393893*/                OPC_MoveChild0,
/*393894*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393897*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393899*/                OPC_CheckType, MVT::v16i32,
/*393901*/                OPC_MoveParent,
/*393902*/                OPC_MoveParent,
/*393903*/                OPC_CheckType, MVT::v8f64,
/*393905*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*393907*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*393910*/                OPC_EmitMergeInputChains1_2,
/*393911*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                          // Dst: (VSCALEFPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*393924*/              /*SwitchType*/ 40, MVT::f32,// ->393966
/*393926*/                OPC_MoveParent,
/*393927*/                OPC_MoveParent,
/*393928*/                OPC_CheckChild2Integer, 4, 
/*393930*/                OPC_MoveParent,
/*393931*/                OPC_MoveChild2,
/*393932*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393935*/                OPC_MoveChild0,
/*393936*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393939*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393941*/                OPC_CheckType, MVT::v8i32,
/*393943*/                OPC_MoveParent,
/*393944*/                OPC_MoveParent,
/*393945*/                OPC_CheckType, MVT::v8f32,
/*393947*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393949*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*393952*/                OPC_EmitMergeInputChains1_2,
/*393953*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                          // Dst: (VSCALEFPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*393966*/              0, // EndSwitchType
/*393967*/            /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->394046
/*393970*/              OPC_RecordMemRef,
/*393971*/              OPC_RecordNode, // #2 = 'ld' chained node
/*393972*/              OPC_CheckFoldableChainNode,
/*393973*/              OPC_RecordChild1, // #3 = $src2
/*393974*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*393976*/              OPC_CheckPredicate, 9, // Predicate_load
/*393978*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*393980*/              OPC_MoveParent,
/*393981*/              OPC_CheckChild2Integer, 4, 
/*393983*/              OPC_MoveParent,
/*393984*/              OPC_MoveChild2,
/*393985*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*393988*/              OPC_MoveChild0,
/*393989*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*393992*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*393994*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->394020
/*393997*/                OPC_MoveParent,
/*393998*/                OPC_MoveParent,
/*393999*/                OPC_CheckType, MVT::v8f64,
/*394001*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*394003*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*394006*/                OPC_EmitMergeInputChains1_2,
/*394007*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                          // Dst: (VSCALEFPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*394020*/              /*SwitchType*/ 23, MVT::v8i32,// ->394045
/*394022*/                OPC_MoveParent,
/*394023*/                OPC_MoveParent,
/*394024*/                OPC_CheckType, MVT::v8f32,
/*394026*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394028*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*394031*/                OPC_EmitMergeInputChains1_2,
/*394032*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                          // Dst: (VSCALEFPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*394045*/              0, // EndSwitchType
/*394046*/            0, // EndSwitchOpcode
/*394047*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::RSQRT28),// ->394160
/*394050*/            OPC_MoveChild0,
/*394051*/            OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->394108
/*394055*/              OPC_MoveChild0,
/*394056*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*394059*/              OPC_RecordMemRef,
/*394060*/              OPC_RecordNode, // #1 = 'ld' chained node
/*394061*/              OPC_CheckFoldableChainNode,
/*394062*/              OPC_RecordChild1, // #2 = $src
/*394063*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394065*/              OPC_CheckPredicate, 9, // Predicate_load
/*394067*/              OPC_CheckType, MVT::f64,
/*394069*/              OPC_MoveParent,
/*394070*/              OPC_MoveParent,
/*394071*/              OPC_CheckChild1Integer, 4, 
/*394073*/              OPC_MoveParent,
/*394074*/              OPC_MoveChild2,
/*394075*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394078*/              OPC_MoveChild0,
/*394079*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394082*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394084*/              OPC_CheckType, MVT::v16i32,
/*394086*/              OPC_MoveParent,
/*394087*/              OPC_MoveParent,
/*394088*/              OPC_CheckType, MVT::v8f64,
/*394090*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*394092*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*394095*/              OPC_EmitMergeInputChains1_1,
/*394096*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt28:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                        // Dst: (VRSQRT28PDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*394108*/            /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->394159
/*394111*/              OPC_RecordMemRef,
/*394112*/              OPC_RecordNode, // #1 = 'ld' chained node
/*394113*/              OPC_CheckFoldableChainNode,
/*394114*/              OPC_RecordChild1, // #2 = $src
/*394115*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394117*/              OPC_CheckPredicate, 9, // Predicate_load
/*394119*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*394121*/              OPC_MoveParent,
/*394122*/              OPC_CheckChild1Integer, 4, 
/*394124*/              OPC_MoveParent,
/*394125*/              OPC_MoveChild2,
/*394126*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394129*/              OPC_MoveChild0,
/*394130*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394133*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394135*/              OPC_CheckType, MVT::v16i32,
/*394137*/              OPC_MoveParent,
/*394138*/              OPC_MoveParent,
/*394139*/              OPC_CheckType, MVT::v8f64,
/*394141*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*394143*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*394146*/              OPC_EmitMergeInputChains1_1,
/*394147*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt28:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                        // Dst: (VRSQRT28PDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*394159*/            0, // EndSwitchOpcode
/*394160*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::RCP28),// ->394273
/*394163*/            OPC_MoveChild0,
/*394164*/            OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->394221
/*394168*/              OPC_MoveChild0,
/*394169*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*394172*/              OPC_RecordMemRef,
/*394173*/              OPC_RecordNode, // #1 = 'ld' chained node
/*394174*/              OPC_CheckFoldableChainNode,
/*394175*/              OPC_RecordChild1, // #2 = $src
/*394176*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394178*/              OPC_CheckPredicate, 9, // Predicate_load
/*394180*/              OPC_CheckType, MVT::f64,
/*394182*/              OPC_MoveParent,
/*394183*/              OPC_MoveParent,
/*394184*/              OPC_CheckChild1Integer, 4, 
/*394186*/              OPC_MoveParent,
/*394187*/              OPC_MoveChild2,
/*394188*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394191*/              OPC_MoveChild0,
/*394192*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394195*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394197*/              OPC_CheckType, MVT::v16i32,
/*394199*/              OPC_MoveParent,
/*394200*/              OPC_MoveParent,
/*394201*/              OPC_CheckType, MVT::v8f64,
/*394203*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*394205*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*394208*/              OPC_EmitMergeInputChains1_1,
/*394209*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp28:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                        // Dst: (VRCP28PDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*394221*/            /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->394272
/*394224*/              OPC_RecordMemRef,
/*394225*/              OPC_RecordNode, // #1 = 'ld' chained node
/*394226*/              OPC_CheckFoldableChainNode,
/*394227*/              OPC_RecordChild1, // #2 = $src
/*394228*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394230*/              OPC_CheckPredicate, 9, // Predicate_load
/*394232*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*394234*/              OPC_MoveParent,
/*394235*/              OPC_CheckChild1Integer, 4, 
/*394237*/              OPC_MoveParent,
/*394238*/              OPC_MoveChild2,
/*394239*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394242*/              OPC_MoveChild0,
/*394243*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394246*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394248*/              OPC_CheckType, MVT::v16i32,
/*394250*/              OPC_MoveParent,
/*394251*/              OPC_MoveParent,
/*394252*/              OPC_CheckType, MVT::v8f64,
/*394254*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*394256*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*394259*/              OPC_EmitMergeInputChains1_1,
/*394260*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp28:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                        // Dst: (VRCP28PDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*394272*/            0, // EndSwitchOpcode
/*394273*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::EXP2),// ->394386
/*394276*/            OPC_MoveChild0,
/*394277*/            OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->394334
/*394281*/              OPC_MoveChild0,
/*394282*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*394285*/              OPC_RecordMemRef,
/*394286*/              OPC_RecordNode, // #1 = 'ld' chained node
/*394287*/              OPC_CheckFoldableChainNode,
/*394288*/              OPC_RecordChild1, // #2 = $src
/*394289*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394291*/              OPC_CheckPredicate, 9, // Predicate_load
/*394293*/              OPC_CheckType, MVT::f64,
/*394295*/              OPC_MoveParent,
/*394296*/              OPC_MoveParent,
/*394297*/              OPC_CheckChild1Integer, 4, 
/*394299*/              OPC_MoveParent,
/*394300*/              OPC_MoveChild2,
/*394301*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394304*/              OPC_MoveChild0,
/*394305*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394308*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394310*/              OPC_CheckType, MVT::v16i32,
/*394312*/              OPC_MoveParent,
/*394313*/              OPC_MoveParent,
/*394314*/              OPC_CheckType, MVT::v8f64,
/*394316*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*394318*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*394321*/              OPC_EmitMergeInputChains1_1,
/*394322*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86exp2:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                        // Dst: (VEXP2PDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*394334*/            /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->394385
/*394337*/              OPC_RecordMemRef,
/*394338*/              OPC_RecordNode, // #1 = 'ld' chained node
/*394339*/              OPC_CheckFoldableChainNode,
/*394340*/              OPC_RecordChild1, // #2 = $src
/*394341*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394343*/              OPC_CheckPredicate, 9, // Predicate_load
/*394345*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*394347*/              OPC_MoveParent,
/*394348*/              OPC_CheckChild1Integer, 4, 
/*394350*/              OPC_MoveParent,
/*394351*/              OPC_MoveChild2,
/*394352*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394355*/              OPC_MoveChild0,
/*394356*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394359*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394361*/              OPC_CheckType, MVT::v16i32,
/*394363*/              OPC_MoveParent,
/*394364*/              OPC_MoveParent,
/*394365*/              OPC_CheckType, MVT::v8f64,
/*394367*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*394369*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*394372*/              OPC_EmitMergeInputChains1_1,
/*394373*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86exp2:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                        // Dst: (VEXP2PDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*394385*/            0, // EndSwitchOpcode
/*394386*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::FGETEXP_RND),// ->394569
/*394390*/            OPC_MoveChild0,
/*394391*/            OPC_SwitchOpcode /*2 cases */, 96, TARGET_VAL(X86ISD::VBROADCAST),// ->394491
/*394395*/              OPC_MoveChild0,
/*394396*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*394399*/              OPC_RecordMemRef,
/*394400*/              OPC_RecordNode, // #1 = 'ld' chained node
/*394401*/              OPC_CheckFoldableChainNode,
/*394402*/              OPC_RecordChild1, // #2 = $src
/*394403*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394405*/              OPC_CheckPredicate, 9, // Predicate_load
/*394407*/              OPC_SwitchType /*2 cases */, 39, MVT::f64,// ->394449
/*394410*/                OPC_MoveParent,
/*394411*/                OPC_MoveParent,
/*394412*/                OPC_CheckChild1Integer, 4, 
/*394414*/                OPC_MoveParent,
/*394415*/                OPC_MoveChild2,
/*394416*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394419*/                OPC_MoveChild0,
/*394420*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394423*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394425*/                OPC_CheckType, MVT::v16i32,
/*394427*/                OPC_MoveParent,
/*394428*/                OPC_MoveParent,
/*394429*/                OPC_CheckType, MVT::v8f64,
/*394431*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*394433*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*394436*/                OPC_EmitMergeInputChains1_1,
/*394437*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                          // Dst: (VGETEXPPDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*394449*/              /*SwitchType*/ 39, MVT::f32,// ->394490
/*394451*/                OPC_MoveParent,
/*394452*/                OPC_MoveParent,
/*394453*/                OPC_CheckChild1Integer, 4, 
/*394455*/                OPC_MoveParent,
/*394456*/                OPC_MoveChild2,
/*394457*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394460*/                OPC_MoveChild0,
/*394461*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394464*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394466*/                OPC_CheckType, MVT::v8i32,
/*394468*/                OPC_MoveParent,
/*394469*/                OPC_MoveParent,
/*394470*/                OPC_CheckType, MVT::v8f32,
/*394472*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394474*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*394477*/                OPC_EmitMergeInputChains1_1,
/*394478*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                          // Dst: (VGETEXPPSZ256mbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*394490*/              0, // EndSwitchType
/*394491*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->394568
/*394494*/              OPC_RecordMemRef,
/*394495*/              OPC_RecordNode, // #1 = 'ld' chained node
/*394496*/              OPC_CheckFoldableChainNode,
/*394497*/              OPC_RecordChild1, // #2 = $src
/*394498*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394500*/              OPC_CheckPredicate, 9, // Predicate_load
/*394502*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*394504*/              OPC_MoveParent,
/*394505*/              OPC_CheckChild1Integer, 4, 
/*394507*/              OPC_MoveParent,
/*394508*/              OPC_MoveChild2,
/*394509*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394512*/              OPC_MoveChild0,
/*394513*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394516*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394518*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->394543
/*394521*/                OPC_MoveParent,
/*394522*/                OPC_MoveParent,
/*394523*/                OPC_CheckType, MVT::v8f64,
/*394525*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*394527*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*394530*/                OPC_EmitMergeInputChains1_1,
/*394531*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                          // Dst: (VGETEXPPDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*394543*/              /*SwitchType*/ 22, MVT::v8i32,// ->394567
/*394545*/                OPC_MoveParent,
/*394546*/                OPC_MoveParent,
/*394547*/                OPC_CheckType, MVT::v8f32,
/*394549*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394551*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*394554*/                OPC_EmitMergeInputChains1_1,
/*394555*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                          // Dst: (VGETEXPPSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*394567*/              0, // EndSwitchType
/*394568*/            0, // EndSwitchOpcode
/*394569*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VPERMI),// ->394636
/*394572*/            OPC_MoveChild0,
/*394573*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*394576*/            OPC_MoveChild0,
/*394577*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*394580*/            OPC_RecordMemRef,
/*394581*/            OPC_RecordNode, // #1 = 'ld' chained node
/*394582*/            OPC_CheckFoldableChainNode,
/*394583*/            OPC_RecordChild1, // #2 = $src1
/*394584*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394586*/            OPC_CheckPredicate, 9, // Predicate_load
/*394588*/            OPC_CheckType, MVT::f64,
/*394590*/            OPC_MoveParent,
/*394591*/            OPC_MoveParent,
/*394592*/            OPC_RecordChild1, // #3 = $src2
/*394593*/            OPC_MoveChild1,
/*394594*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394597*/            OPC_MoveParent,
/*394598*/            OPC_MoveParent,
/*394599*/            OPC_MoveChild2,
/*394600*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394603*/            OPC_MoveChild0,
/*394604*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394607*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394609*/            OPC_CheckType, MVT::v16i32,
/*394611*/            OPC_MoveParent,
/*394612*/            OPC_MoveParent,
/*394613*/            OPC_CheckType, MVT::v8f64,
/*394615*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*394617*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*394620*/            OPC_EmitMergeInputChains1_1,
/*394621*/            OPC_EmitConvertToTarget, 3,
/*394623*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPERMPDZmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*394636*/          /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::VPERMILPI),// ->394753
/*394639*/            OPC_MoveChild0,
/*394640*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*394643*/            OPC_MoveChild0,
/*394644*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*394647*/            OPC_RecordMemRef,
/*394648*/            OPC_RecordNode, // #1 = 'ld' chained node
/*394649*/            OPC_CheckFoldableChainNode,
/*394650*/            OPC_RecordChild1, // #2 = $src1
/*394651*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394653*/            OPC_CheckPredicate, 9, // Predicate_load
/*394655*/            OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->394704
/*394658*/              OPC_MoveParent,
/*394659*/              OPC_MoveParent,
/*394660*/              OPC_RecordChild1, // #3 = $src2
/*394661*/              OPC_MoveChild1,
/*394662*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394665*/              OPC_MoveParent,
/*394666*/              OPC_MoveParent,
/*394667*/              OPC_MoveChild2,
/*394668*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394671*/              OPC_MoveChild0,
/*394672*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394675*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394677*/              OPC_CheckType, MVT::v8i32,
/*394679*/              OPC_MoveParent,
/*394680*/              OPC_MoveParent,
/*394681*/              OPC_CheckType, MVT::v8f32,
/*394683*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394685*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*394688*/              OPC_EmitMergeInputChains1_1,
/*394689*/              OPC_EmitConvertToTarget, 3,
/*394691*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPERMILPSZ256mbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*394704*/            /*SwitchType*/ 46, MVT::f64,// ->394752
/*394706*/              OPC_MoveParent,
/*394707*/              OPC_MoveParent,
/*394708*/              OPC_RecordChild1, // #3 = $src2
/*394709*/              OPC_MoveChild1,
/*394710*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394713*/              OPC_MoveParent,
/*394714*/              OPC_MoveParent,
/*394715*/              OPC_MoveChild2,
/*394716*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394719*/              OPC_MoveChild0,
/*394720*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394723*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394725*/              OPC_CheckType, MVT::v16i32,
/*394727*/              OPC_MoveParent,
/*394728*/              OPC_MoveParent,
/*394729*/              OPC_CheckType, MVT::v8f64,
/*394731*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*394733*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*394736*/              OPC_EmitMergeInputChains1_1,
/*394737*/              OPC_EmitConvertToTarget, 3,
/*394739*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VPERMILPDZmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*394752*/            0, // EndSwitchType
/*394753*/          /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::VREDUCE),// ->394870
/*394756*/            OPC_MoveChild0,
/*394757*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*394760*/            OPC_MoveChild0,
/*394761*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*394764*/            OPC_RecordMemRef,
/*394765*/            OPC_RecordNode, // #1 = 'ld' chained node
/*394766*/            OPC_CheckFoldableChainNode,
/*394767*/            OPC_RecordChild1, // #2 = $src1
/*394768*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394770*/            OPC_CheckPredicate, 9, // Predicate_load
/*394772*/            OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->394821
/*394775*/              OPC_MoveParent,
/*394776*/              OPC_MoveParent,
/*394777*/              OPC_RecordChild1, // #3 = $src2
/*394778*/              OPC_MoveChild1,
/*394779*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394782*/              OPC_MoveParent,
/*394783*/              OPC_MoveParent,
/*394784*/              OPC_MoveChild2,
/*394785*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394788*/              OPC_MoveChild0,
/*394789*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394792*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394794*/              OPC_CheckType, MVT::v8i32,
/*394796*/              OPC_MoveParent,
/*394797*/              OPC_MoveParent,
/*394798*/              OPC_CheckType, MVT::v8f32,
/*394800*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*394802*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*394805*/              OPC_EmitMergeInputChains1_1,
/*394806*/              OPC_EmitConvertToTarget, 3,
/*394808*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VREDUCEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*394821*/            /*SwitchType*/ 46, MVT::f64,// ->394869
/*394823*/              OPC_MoveParent,
/*394824*/              OPC_MoveParent,
/*394825*/              OPC_RecordChild1, // #3 = $src2
/*394826*/              OPC_MoveChild1,
/*394827*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394830*/              OPC_MoveParent,
/*394831*/              OPC_MoveParent,
/*394832*/              OPC_MoveChild2,
/*394833*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394836*/              OPC_MoveChild0,
/*394837*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394840*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394842*/              OPC_CheckType, MVT::v16i32,
/*394844*/              OPC_MoveParent,
/*394845*/              OPC_MoveParent,
/*394846*/              OPC_CheckType, MVT::v8f64,
/*394848*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*394850*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*394853*/              OPC_EmitMergeInputChains1_1,
/*394854*/              OPC_EmitConvertToTarget, 3,
/*394856*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VREDUCEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*394869*/            0, // EndSwitchType
/*394870*/          /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::VRNDSCALE),// ->394987
/*394873*/            OPC_MoveChild0,
/*394874*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*394877*/            OPC_MoveChild0,
/*394878*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*394881*/            OPC_RecordMemRef,
/*394882*/            OPC_RecordNode, // #1 = 'ld' chained node
/*394883*/            OPC_CheckFoldableChainNode,
/*394884*/            OPC_RecordChild1, // #2 = $src1
/*394885*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*394887*/            OPC_CheckPredicate, 9, // Predicate_load
/*394889*/            OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->394938
/*394892*/              OPC_MoveParent,
/*394893*/              OPC_MoveParent,
/*394894*/              OPC_RecordChild1, // #3 = $src2
/*394895*/              OPC_MoveChild1,
/*394896*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394899*/              OPC_MoveParent,
/*394900*/              OPC_MoveParent,
/*394901*/              OPC_MoveChild2,
/*394902*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394905*/              OPC_MoveChild0,
/*394906*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394909*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394911*/              OPC_CheckType, MVT::v8i32,
/*394913*/              OPC_MoveParent,
/*394914*/              OPC_MoveParent,
/*394915*/              OPC_CheckType, MVT::v8f32,
/*394917*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394919*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*394922*/              OPC_EmitMergeInputChains1_1,
/*394923*/              OPC_EmitConvertToTarget, 3,
/*394925*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VRNDSCALEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*394938*/            /*SwitchType*/ 46, MVT::f64,// ->394986
/*394940*/              OPC_MoveParent,
/*394941*/              OPC_MoveParent,
/*394942*/              OPC_RecordChild1, // #3 = $src2
/*394943*/              OPC_MoveChild1,
/*394944*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394947*/              OPC_MoveParent,
/*394948*/              OPC_MoveParent,
/*394949*/              OPC_MoveChild2,
/*394950*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*394953*/              OPC_MoveChild0,
/*394954*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*394957*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*394959*/              OPC_CheckType, MVT::v16i32,
/*394961*/              OPC_MoveParent,
/*394962*/              OPC_MoveParent,
/*394963*/              OPC_CheckType, MVT::v8f64,
/*394965*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*394967*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*394970*/              OPC_EmitMergeInputChains1_1,
/*394971*/              OPC_EmitConvertToTarget, 3,
/*394973*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VRNDSCALEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*394986*/            0, // EndSwitchType
/*394987*/          /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::VGETMANT),// ->395104
/*394990*/            OPC_MoveChild0,
/*394991*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*394994*/            OPC_MoveChild0,
/*394995*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*394998*/            OPC_RecordMemRef,
/*394999*/            OPC_RecordNode, // #1 = 'ld' chained node
/*395000*/            OPC_CheckFoldableChainNode,
/*395001*/            OPC_RecordChild1, // #2 = $src1
/*395002*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*395004*/            OPC_CheckPredicate, 9, // Predicate_load
/*395006*/            OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->395055
/*395009*/              OPC_MoveParent,
/*395010*/              OPC_MoveParent,
/*395011*/              OPC_RecordChild1, // #3 = $src2
/*395012*/              OPC_MoveChild1,
/*395013*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*395016*/              OPC_MoveParent,
/*395017*/              OPC_MoveParent,
/*395018*/              OPC_MoveChild2,
/*395019*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395022*/              OPC_MoveChild0,
/*395023*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395026*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395028*/              OPC_CheckType, MVT::v8i32,
/*395030*/              OPC_MoveParent,
/*395031*/              OPC_MoveParent,
/*395032*/              OPC_CheckType, MVT::v8f32,
/*395034*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395036*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*395039*/              OPC_EmitMergeInputChains1_1,
/*395040*/              OPC_EmitConvertToTarget, 3,
/*395042*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGETMANTPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*395055*/            /*SwitchType*/ 46, MVT::f64,// ->395103
/*395057*/              OPC_MoveParent,
/*395058*/              OPC_MoveParent,
/*395059*/              OPC_RecordChild1, // #3 = $src2
/*395060*/              OPC_MoveChild1,
/*395061*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*395064*/              OPC_MoveParent,
/*395065*/              OPC_MoveParent,
/*395066*/              OPC_MoveChild2,
/*395067*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395070*/              OPC_MoveChild0,
/*395071*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395074*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395076*/              OPC_CheckType, MVT::v16i32,
/*395078*/              OPC_MoveParent,
/*395079*/              OPC_MoveParent,
/*395080*/              OPC_CheckType, MVT::v8f64,
/*395082*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*395084*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*395087*/              OPC_EmitMergeInputChains1_1,
/*395088*/              OPC_EmitConvertToTarget, 3,
/*395090*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VGETMANTPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*395103*/            0, // EndSwitchType
/*395104*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::VRANGE),// ->395224
/*395107*/            OPC_RecordChild0, // #1 = $src1
/*395108*/            OPC_MoveChild1,
/*395109*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*395112*/            OPC_MoveChild0,
/*395113*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*395116*/            OPC_RecordMemRef,
/*395117*/            OPC_RecordNode, // #2 = 'ld' chained node
/*395118*/            OPC_CheckFoldableChainNode,
/*395119*/            OPC_RecordChild1, // #3 = $src2
/*395120*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*395122*/            OPC_CheckPredicate, 9, // Predicate_load
/*395124*/            OPC_SwitchType /*2 cases */, 47, MVT::f64,// ->395174
/*395127*/              OPC_MoveParent,
/*395128*/              OPC_MoveParent,
/*395129*/              OPC_RecordChild2, // #4 = $src3
/*395130*/              OPC_MoveChild2,
/*395131*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*395134*/              OPC_MoveParent,
/*395135*/              OPC_MoveParent,
/*395136*/              OPC_MoveChild2,
/*395137*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395140*/              OPC_MoveChild0,
/*395141*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395144*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395146*/              OPC_CheckType, MVT::v16i32,
/*395148*/              OPC_MoveParent,
/*395149*/              OPC_MoveParent,
/*395150*/              OPC_CheckType, MVT::v8f64,
/*395152*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*395154*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*395157*/              OPC_EmitMergeInputChains1_2,
/*395158*/              OPC_EmitConvertToTarget, 4,
/*395160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VRANGEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*395174*/            /*SwitchType*/ 47, MVT::f32,// ->395223
/*395176*/              OPC_MoveParent,
/*395177*/              OPC_MoveParent,
/*395178*/              OPC_RecordChild2, // #4 = $src3
/*395179*/              OPC_MoveChild2,
/*395180*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*395183*/              OPC_MoveParent,
/*395184*/              OPC_MoveParent,
/*395185*/              OPC_MoveChild2,
/*395186*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395189*/              OPC_MoveChild0,
/*395190*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395193*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395195*/              OPC_CheckType, MVT::v8i32,
/*395197*/              OPC_MoveParent,
/*395198*/              OPC_MoveParent,
/*395199*/              OPC_CheckType, MVT::v8f32,
/*395201*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395203*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*395206*/              OPC_EmitMergeInputChains1_2,
/*395207*/              OPC_EmitConvertToTarget, 4,
/*395209*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VRANGEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*395223*/            0, // EndSwitchType
/*395224*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::SHUF128),// ->395293
/*395227*/            OPC_RecordChild0, // #1 = $src1
/*395228*/            OPC_MoveChild1,
/*395229*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*395232*/            OPC_MoveChild0,
/*395233*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*395236*/            OPC_RecordMemRef,
/*395237*/            OPC_RecordNode, // #2 = 'ld' chained node
/*395238*/            OPC_CheckFoldableChainNode,
/*395239*/            OPC_RecordChild1, // #3 = $src2
/*395240*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*395242*/            OPC_CheckPredicate, 9, // Predicate_load
/*395244*/            OPC_CheckType, MVT::f64,
/*395246*/            OPC_MoveParent,
/*395247*/            OPC_MoveParent,
/*395248*/            OPC_RecordChild2, // #4 = $src3
/*395249*/            OPC_MoveChild2,
/*395250*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*395253*/            OPC_MoveParent,
/*395254*/            OPC_MoveParent,
/*395255*/            OPC_MoveChild2,
/*395256*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395259*/            OPC_MoveChild0,
/*395260*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395263*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395265*/            OPC_CheckType, MVT::v16i32,
/*395267*/            OPC_MoveParent,
/*395268*/            OPC_MoveParent,
/*395269*/            OPC_CheckType, MVT::v8f64,
/*395271*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*395273*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*395276*/            OPC_EmitMergeInputChains1_2,
/*395277*/            OPC_EmitConvertToTarget, 4,
/*395279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VSHUFF64X2Zrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*395293*/          /*SwitchOpcode*/ 117, TARGET_VAL(X86ISD::SHUFP),// ->395413
/*395296*/            OPC_RecordChild0, // #1 = $src1
/*395297*/            OPC_MoveChild1,
/*395298*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*395301*/            OPC_MoveChild0,
/*395302*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*395305*/            OPC_RecordMemRef,
/*395306*/            OPC_RecordNode, // #2 = 'ld' chained node
/*395307*/            OPC_CheckFoldableChainNode,
/*395308*/            OPC_RecordChild1, // #3 = $src2
/*395309*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*395311*/            OPC_CheckPredicate, 9, // Predicate_load
/*395313*/            OPC_SwitchType /*2 cases */, 47, MVT::f32,// ->395363
/*395316*/              OPC_MoveParent,
/*395317*/              OPC_MoveParent,
/*395318*/              OPC_RecordChild2, // #4 = $src3
/*395319*/              OPC_MoveChild2,
/*395320*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*395323*/              OPC_MoveParent,
/*395324*/              OPC_MoveParent,
/*395325*/              OPC_MoveChild2,
/*395326*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395329*/              OPC_MoveChild0,
/*395330*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395333*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395335*/              OPC_CheckType, MVT::v8i32,
/*395337*/              OPC_MoveParent,
/*395338*/              OPC_MoveParent,
/*395339*/              OPC_CheckType, MVT::v8f32,
/*395341*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395343*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*395346*/              OPC_EmitMergeInputChains1_2,
/*395347*/              OPC_EmitConvertToTarget, 4,
/*395349*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VSHUFPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*395363*/            /*SwitchType*/ 47, MVT::f64,// ->395412
/*395365*/              OPC_MoveParent,
/*395366*/              OPC_MoveParent,
/*395367*/              OPC_RecordChild2, // #4 = $src3
/*395368*/              OPC_MoveChild2,
/*395369*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*395372*/              OPC_MoveParent,
/*395373*/              OPC_MoveParent,
/*395374*/              OPC_MoveChild2,
/*395375*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395378*/              OPC_MoveChild0,
/*395379*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395382*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395384*/              OPC_CheckType, MVT::v16i32,
/*395386*/              OPC_MoveParent,
/*395387*/              OPC_MoveParent,
/*395388*/              OPC_CheckType, MVT::v8f64,
/*395390*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*395392*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*395395*/              OPC_EmitMergeInputChains1_2,
/*395396*/              OPC_EmitConvertToTarget, 4,
/*395398*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VSHUFPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*395412*/            0, // EndSwitchType
/*395413*/          0, // EndSwitchOpcode
/*395414*/        /*Scope*/ 51|128,1/*179*/, /*->395595*/
/*395416*/          OPC_RecordChild1, // #1 = $src3
/*395417*/          OPC_MoveChild1,
/*395418*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*395421*/          OPC_RecordChild0, // #2 = $src1
/*395422*/          OPC_MoveChild1,
/*395423*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*395426*/          OPC_RecordMemRef,
/*395427*/          OPC_RecordNode, // #3 = 'ld' chained node
/*395428*/          OPC_CheckFoldableChainNode,
/*395429*/          OPC_RecordChild1, // #4 = $src2
/*395430*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*395432*/          OPC_CheckPredicate, 9, // Predicate_load
/*395434*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*395436*/          OPC_Scope, 50, /*->395488*/ // 3 children in Scope
/*395438*/            OPC_MoveParent,
/*395439*/            OPC_MoveChild2,
/*395440*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*395443*/            OPC_CheckType, MVT::iPTR,
/*395445*/            OPC_MoveParent,
/*395446*/            OPC_MoveParent,
/*395447*/            OPC_MoveChild2,
/*395448*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395451*/            OPC_MoveChild0,
/*395452*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395455*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395457*/            OPC_CheckType, MVT::v8i32,
/*395459*/            OPC_MoveParent,
/*395460*/            OPC_MoveParent,
/*395461*/            OPC_CheckType, MVT::v8f32,
/*395463*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*395465*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*395468*/            OPC_EmitMergeInputChains, 1, 3, 
/*395471*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*395474*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VINSERTF32x4Z256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*395488*/          /*Scope*/ 52, /*->395541*/
/*395489*/            OPC_CheckType, MVT::v4f64,
/*395491*/            OPC_MoveParent,
/*395492*/            OPC_MoveChild2,
/*395493*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*395496*/            OPC_CheckType, MVT::iPTR,
/*395498*/            OPC_MoveParent,
/*395499*/            OPC_MoveParent,
/*395500*/            OPC_MoveChild2,
/*395501*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395504*/            OPC_MoveChild0,
/*395505*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395508*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395510*/            OPC_CheckType, MVT::v16i32,
/*395512*/            OPC_MoveParent,
/*395513*/            OPC_MoveParent,
/*395514*/            OPC_CheckType, MVT::v8f64,
/*395516*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*395518*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*395521*/            OPC_EmitMergeInputChains, 1, 3, 
/*395524*/            OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*395527*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VINSERTF64x4Zrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*395541*/          /*Scope*/ 52, /*->395594*/
/*395542*/            OPC_CheckType, MVT::v2f64,
/*395544*/            OPC_MoveParent,
/*395545*/            OPC_MoveChild2,
/*395546*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*395549*/            OPC_CheckType, MVT::iPTR,
/*395551*/            OPC_MoveParent,
/*395552*/            OPC_MoveParent,
/*395553*/            OPC_MoveChild2,
/*395554*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395557*/            OPC_MoveChild0,
/*395558*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395561*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395563*/            OPC_CheckType, MVT::v16i32,
/*395565*/            OPC_MoveParent,
/*395566*/            OPC_MoveParent,
/*395567*/            OPC_CheckType, MVT::v8f64,
/*395569*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*395571*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*395574*/            OPC_EmitMergeInputChains, 1, 3, 
/*395577*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*395580*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VINSERTF64x2Zrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*395594*/          0, /*End of Scope*/
/*395595*/        /*Scope*/ 111|128,107/*13807*/, /*->409404*/
/*395597*/          OPC_MoveChild1,
/*395598*/          OPC_SwitchOpcode /*54 cases */, 63|128,1/*191*/, TARGET_VAL(X86ISD::VBROADCAST),// ->395794
/*395603*/            OPC_MoveChild0,
/*395604*/            OPC_SwitchOpcode /*2 cases */, 96, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->395704
/*395608*/              OPC_MoveChild0,
/*395609*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*395612*/              OPC_RecordMemRef,
/*395613*/              OPC_RecordNode, // #1 = 'ld' chained node
/*395614*/              OPC_CheckFoldableChainNode,
/*395615*/              OPC_RecordChild1, // #2 = $src
/*395616*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*395618*/              OPC_CheckPredicate, 9, // Predicate_load
/*395620*/              OPC_SwitchType /*2 cases */, 39, MVT::f32,// ->395662
/*395623*/                OPC_MoveParent,
/*395624*/                OPC_CheckType, MVT::v4f32,
/*395626*/                OPC_MoveParent,
/*395627*/                OPC_MoveParent,
/*395628*/                OPC_MoveChild2,
/*395629*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395632*/                OPC_MoveChild0,
/*395633*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395636*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395638*/                OPC_CheckType, MVT::v8i32,
/*395640*/                OPC_MoveParent,
/*395641*/                OPC_MoveParent,
/*395642*/                OPC_CheckType, MVT::v8f32,
/*395644*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*395646*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*395649*/                OPC_EmitMergeInputChains1_1,
/*395650*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VBROADCASTSSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*395662*/              /*SwitchType*/ 39, MVT::f64,// ->395703
/*395664*/                OPC_MoveParent,
/*395665*/                OPC_CheckType, MVT::v2f64,
/*395667*/                OPC_MoveParent,
/*395668*/                OPC_MoveParent,
/*395669*/                OPC_MoveChild2,
/*395670*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395673*/                OPC_MoveChild0,
/*395674*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395677*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395679*/                OPC_CheckType, MVT::v16i32,
/*395681*/                OPC_MoveParent,
/*395682*/                OPC_MoveParent,
/*395683*/                OPC_CheckType, MVT::v8f64,
/*395685*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*395687*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*395690*/                OPC_EmitMergeInputChains1_1,
/*395691*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VBROADCASTSDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*395703*/              0, // EndSwitchType
/*395704*/            /*SwitchOpcode*/ 86, TARGET_VAL(ISD::LOAD),// ->395793
/*395707*/              OPC_RecordMemRef,
/*395708*/              OPC_RecordNode, // #1 = 'ld' chained node
/*395709*/              OPC_CheckFoldableChainNode,
/*395710*/              OPC_RecordChild1, // #2 = $src
/*395711*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*395713*/              OPC_CheckPredicate, 9, // Predicate_load
/*395715*/              OPC_SwitchType /*2 cases */, 36, MVT::f32,// ->395754
/*395718*/                OPC_MoveParent,
/*395719*/                OPC_MoveParent,
/*395720*/                OPC_MoveChild2,
/*395721*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395724*/                OPC_MoveChild0,
/*395725*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395728*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395730*/                OPC_CheckType, MVT::v8i32,
/*395732*/                OPC_MoveParent,
/*395733*/                OPC_MoveParent,
/*395734*/                OPC_CheckType, MVT::v8f32,
/*395736*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*395738*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*395741*/                OPC_EmitMergeInputChains1_1,
/*395742*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VBROADCASTSSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*395754*/              /*SwitchType*/ 36, MVT::f64,// ->395792
/*395756*/                OPC_MoveParent,
/*395757*/                OPC_MoveParent,
/*395758*/                OPC_MoveChild2,
/*395759*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395762*/                OPC_MoveChild0,
/*395763*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395766*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395768*/                OPC_CheckType, MVT::v16i32,
/*395770*/                OPC_MoveParent,
/*395771*/                OPC_MoveParent,
/*395772*/                OPC_CheckType, MVT::v8f64,
/*395774*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*395776*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*395779*/                OPC_EmitMergeInputChains1_1,
/*395780*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VBROADCASTSDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*395792*/              0, // EndSwitchType
/*395793*/            0, // EndSwitchOpcode
/*395794*/          /*SwitchOpcode*/ 73|128,14/*1865*/, TARGET_VAL(ISD::BITCAST),// ->397663
/*395798*/            OPC_Scope, 118|128,12/*1654*/, /*->397455*/ // 3 children in Scope
/*395801*/              OPC_MoveChild0,
/*395802*/              OPC_SwitchOpcode /*7 cases */, 12|128,1/*140*/, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->395947
/*395807*/                OPC_MoveChild0,
/*395808*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*395811*/                OPC_RecordMemRef,
/*395812*/                OPC_RecordNode, // #1 = 'ld' chained node
/*395813*/                OPC_CheckFoldableChainNode,
/*395814*/                OPC_RecordChild1, // #2 = $src
/*395815*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*395817*/                OPC_CheckPredicate, 9, // Predicate_load
/*395819*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*395821*/                OPC_Scope, 41, /*->395864*/ // 3 children in Scope
/*395823*/                  OPC_CheckType, MVT::v8f32,
/*395825*/                  OPC_MoveParent,
/*395826*/                  OPC_CheckType, MVT::v16f32,
/*395828*/                  OPC_MoveParent,
/*395829*/                  OPC_MoveParent,
/*395830*/                  OPC_MoveChild2,
/*395831*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395834*/                  OPC_MoveChild0,
/*395835*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395838*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395840*/                  OPC_CheckType, MVT::v16i32,
/*395842*/                  OPC_MoveParent,
/*395843*/                  OPC_MoveParent,
/*395844*/                  OPC_CheckType, MVT::v8f64,
/*395846*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*395848*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*395851*/                  OPC_EmitMergeInputChains1_1,
/*395852*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X4rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86SubVBroadcast:{ *:[v16f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VBROADCASTF64X4rmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*395864*/                /*Scope*/ 39, /*->395904*/
/*395865*/                  OPC_MoveParent,
/*395866*/                  OPC_CheckType, MVT::v4f64,
/*395868*/                  OPC_MoveParent,
/*395869*/                  OPC_MoveParent,
/*395870*/                  OPC_MoveChild2,
/*395871*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395874*/                  OPC_MoveChild0,
/*395875*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395878*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395880*/                  OPC_CheckType, MVT::v8i32,
/*395882*/                  OPC_MoveParent,
/*395883*/                  OPC_MoveParent,
/*395884*/                  OPC_CheckType, MVT::v8f32,
/*395886*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*395888*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*395891*/                  OPC_EmitMergeInputChains1_1,
/*395892*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86SubVBroadcast:{ *:[v4f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VBROADCASTF32X4Z256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*395904*/                /*Scope*/ 41, /*->395946*/
/*395905*/                  OPC_CheckType, MVT::v4f32,
/*395907*/                  OPC_MoveParent,
/*395908*/                  OPC_CheckType, MVT::v16f32,
/*395910*/                  OPC_MoveParent,
/*395911*/                  OPC_MoveParent,
/*395912*/                  OPC_MoveChild2,
/*395913*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395916*/                  OPC_MoveChild0,
/*395917*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395920*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395922*/                  OPC_CheckType, MVT::v16i32,
/*395924*/                  OPC_MoveParent,
/*395925*/                  OPC_MoveParent,
/*395926*/                  OPC_CheckType, MVT::v8f64,
/*395928*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*395930*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*395933*/                  OPC_EmitMergeInputChains1_1,
/*395934*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X2rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86SubVBroadcast:{ *:[v16f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VBROADCASTF64X2rmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*395946*/                0, /*End of Scope*/
/*395947*/              /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->396003
/*395950*/                OPC_MoveChild0,
/*395951*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*395954*/                OPC_RecordMemRef,
/*395955*/                OPC_RecordNode, // #1 = 'ld' chained node
/*395956*/                OPC_CheckFoldableChainNode,
/*395957*/                OPC_RecordChild1, // #2 = $src
/*395958*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*395960*/                OPC_CheckPredicate, 9, // Predicate_load
/*395962*/                OPC_CheckType, MVT::f64,
/*395964*/                OPC_MoveParent,
/*395965*/                OPC_CheckType, MVT::v4f64,
/*395967*/                OPC_MoveParent,
/*395968*/                OPC_MoveParent,
/*395969*/                OPC_MoveChild2,
/*395970*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*395973*/                OPC_MoveChild0,
/*395974*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*395977*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*395979*/                OPC_CheckType, MVT::v8i32,
/*395981*/                OPC_MoveParent,
/*395982*/                OPC_MoveParent,
/*395983*/                OPC_CheckType, MVT::v8f32,
/*395985*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395987*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*395990*/                OPC_EmitMergeInputChains1_1,
/*395991*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Z256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VBROADCASTF32X2Z256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*396003*/              /*SwitchOpcode*/ 121|128,2/*377*/, TARGET_VAL(ISD::AND),// ->396384
/*396007*/                OPC_Scope, 94, /*->396103*/ // 4 children in Scope
/*396009*/                  OPC_RecordChild0, // #1 = $src1
/*396010*/                  OPC_MoveChild1,
/*396011*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*396014*/                  OPC_RecordMemRef,
/*396015*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*396016*/                  OPC_CheckFoldableChainNode,
/*396017*/                  OPC_RecordChild1, // #3 = $src2
/*396018*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*396020*/                  OPC_CheckPredicate, 9, // Predicate_load
/*396022*/                  OPC_MoveParent,
/*396023*/                  OPC_SwitchType /*2 cases */, 37, MVT::v4i64,// ->396063
/*396026*/                    OPC_MoveParent,
/*396027*/                    OPC_MoveParent,
/*396028*/                    OPC_MoveChild2,
/*396029*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396032*/                    OPC_MoveChild0,
/*396033*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396036*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396038*/                    OPC_CheckType, MVT::v8i32,
/*396040*/                    OPC_MoveParent,
/*396041*/                    OPC_MoveParent,
/*396042*/                    OPC_CheckType, MVT::v8f32,
/*396044*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396046*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396049*/                    OPC_EmitMergeInputChains1_2,
/*396050*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396063*/                  /*SwitchType*/ 37, MVT::v8i64,// ->396102
/*396065*/                    OPC_MoveParent,
/*396066*/                    OPC_MoveParent,
/*396067*/                    OPC_MoveChild2,
/*396068*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396071*/                    OPC_MoveChild0,
/*396072*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396075*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396077*/                    OPC_CheckType, MVT::v16i32,
/*396079*/                    OPC_MoveParent,
/*396080*/                    OPC_MoveParent,
/*396081*/                    OPC_CheckType, MVT::v8f64,
/*396083*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*396085*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396088*/                    OPC_EmitMergeInputChains1_2,
/*396089*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396102*/                  0, // EndSwitchType
/*396103*/                /*Scope*/ 94, /*->396198*/
/*396104*/                  OPC_MoveChild0,
/*396105*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*396108*/                  OPC_RecordMemRef,
/*396109*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*396110*/                  OPC_CheckFoldableChainNode,
/*396111*/                  OPC_RecordChild1, // #2 = $src2
/*396112*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*396114*/                  OPC_CheckPredicate, 9, // Predicate_load
/*396116*/                  OPC_MoveParent,
/*396117*/                  OPC_RecordChild1, // #3 = $src1
/*396118*/                  OPC_SwitchType /*2 cases */, 37, MVT::v4i64,// ->396158
/*396121*/                    OPC_MoveParent,
/*396122*/                    OPC_MoveParent,
/*396123*/                    OPC_MoveChild2,
/*396124*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396127*/                    OPC_MoveChild0,
/*396128*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396131*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396133*/                    OPC_CheckType, MVT::v8i32,
/*396135*/                    OPC_MoveParent,
/*396136*/                    OPC_MoveParent,
/*396137*/                    OPC_CheckType, MVT::v8f32,
/*396139*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396141*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396144*/                    OPC_EmitMergeInputChains1_1,
/*396145*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396158*/                  /*SwitchType*/ 37, MVT::v8i64,// ->396197
/*396160*/                    OPC_MoveParent,
/*396161*/                    OPC_MoveParent,
/*396162*/                    OPC_MoveChild2,
/*396163*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396166*/                    OPC_MoveChild0,
/*396167*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396170*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396172*/                    OPC_CheckType, MVT::v16i32,
/*396174*/                    OPC_MoveParent,
/*396175*/                    OPC_MoveParent,
/*396176*/                    OPC_CheckType, MVT::v8f64,
/*396178*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*396180*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396183*/                    OPC_EmitMergeInputChains1_1,
/*396184*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396197*/                  0, // EndSwitchType
/*396198*/                /*Scope*/ 91, /*->396290*/
/*396199*/                  OPC_RecordChild0, // #1 = $src1
/*396200*/                  OPC_MoveChild1,
/*396201*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396204*/                  OPC_MoveChild0,
/*396205*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*396208*/                  OPC_MoveChild0,
/*396209*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*396212*/                  OPC_RecordMemRef,
/*396213*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*396214*/                  OPC_CheckFoldableChainNode,
/*396215*/                  OPC_RecordChild1, // #3 = $src2
/*396216*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*396218*/                  OPC_CheckPredicate, 9, // Predicate_load
/*396220*/                  OPC_SwitchType /*2 cases */, 32, MVT::f32,// ->396255
/*396223*/                    OPC_MoveParent,
/*396224*/                    OPC_CheckType, MVT::v8f32,
/*396226*/                    OPC_MoveParent,
/*396227*/                    OPC_MoveParent,
/*396228*/                    OPC_CheckType, MVT::v4i64,
/*396230*/                    OPC_MoveParent,
/*396231*/                    OPC_MoveParent,
/*396232*/                    OPC_RecordChild2, // #4 = $src0
/*396233*/                    OPC_CheckType, MVT::v8f32,
/*396235*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396237*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*396240*/                    OPC_EmitMergeInputChains1_2,
/*396241*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR256X:{ *:[v8f32] }:$src0) - Complexity = 37
                              // Dst: (VPANDDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396255*/                  /*SwitchType*/ 32, MVT::f64,// ->396289
/*396257*/                    OPC_MoveParent,
/*396258*/                    OPC_CheckType, MVT::v8f64,
/*396260*/                    OPC_MoveParent,
/*396261*/                    OPC_MoveParent,
/*396262*/                    OPC_CheckType, MVT::v8i64,
/*396264*/                    OPC_MoveParent,
/*396265*/                    OPC_MoveParent,
/*396266*/                    OPC_RecordChild2, // #4 = $src0
/*396267*/                    OPC_CheckType, MVT::v8f64,
/*396269*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*396271*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*396274*/                    OPC_EmitMergeInputChains1_2,
/*396275*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR512:{ *:[v8f64] }:$src0) - Complexity = 37
                              // Dst: (VPANDQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396289*/                  0, // EndSwitchType
/*396290*/                /*Scope*/ 92, /*->396383*/
/*396291*/                  OPC_MoveChild0,
/*396292*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396295*/                  OPC_MoveChild0,
/*396296*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*396299*/                  OPC_MoveChild0,
/*396300*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*396303*/                  OPC_RecordMemRef,
/*396304*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*396305*/                  OPC_CheckFoldableChainNode,
/*396306*/                  OPC_RecordChild1, // #2 = $src2
/*396307*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*396309*/                  OPC_CheckPredicate, 9, // Predicate_load
/*396311*/                  OPC_SwitchType /*2 cases */, 33, MVT::f32,// ->396347
/*396314*/                    OPC_MoveParent,
/*396315*/                    OPC_CheckType, MVT::v8f32,
/*396317*/                    OPC_MoveParent,
/*396318*/                    OPC_MoveParent,
/*396319*/                    OPC_RecordChild1, // #3 = $src1
/*396320*/                    OPC_CheckType, MVT::v4i64,
/*396322*/                    OPC_MoveParent,
/*396323*/                    OPC_MoveParent,
/*396324*/                    OPC_RecordChild2, // #4 = $src0
/*396325*/                    OPC_CheckType, MVT::v8f32,
/*396327*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396329*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*396332*/                    OPC_EmitMergeInputChains1_1,
/*396333*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 37
                              // Dst: (VPANDDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396347*/                  /*SwitchType*/ 33, MVT::f64,// ->396382
/*396349*/                    OPC_MoveParent,
/*396350*/                    OPC_CheckType, MVT::v8f64,
/*396352*/                    OPC_MoveParent,
/*396353*/                    OPC_MoveParent,
/*396354*/                    OPC_RecordChild1, // #3 = $src1
/*396355*/                    OPC_CheckType, MVT::v8i64,
/*396357*/                    OPC_MoveParent,
/*396358*/                    OPC_MoveParent,
/*396359*/                    OPC_RecordChild2, // #4 = $src0
/*396360*/                    OPC_CheckType, MVT::v8f64,
/*396362*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*396364*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*396367*/                    OPC_EmitMergeInputChains1_1,
/*396368*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 37
                              // Dst: (VPANDQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396382*/                  0, // EndSwitchType
/*396383*/                0, /*End of Scope*/
/*396384*/              /*SwitchOpcode*/ 121|128,2/*377*/, TARGET_VAL(ISD::OR),// ->396765
/*396388*/                OPC_Scope, 94, /*->396484*/ // 4 children in Scope
/*396390*/                  OPC_RecordChild0, // #1 = $src1
/*396391*/                  OPC_MoveChild1,
/*396392*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*396395*/                  OPC_RecordMemRef,
/*396396*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*396397*/                  OPC_CheckFoldableChainNode,
/*396398*/                  OPC_RecordChild1, // #3 = $src2
/*396399*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*396401*/                  OPC_CheckPredicate, 9, // Predicate_load
/*396403*/                  OPC_MoveParent,
/*396404*/                  OPC_SwitchType /*2 cases */, 37, MVT::v4i64,// ->396444
/*396407*/                    OPC_MoveParent,
/*396408*/                    OPC_MoveParent,
/*396409*/                    OPC_MoveChild2,
/*396410*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396413*/                    OPC_MoveChild0,
/*396414*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396417*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396419*/                    OPC_CheckType, MVT::v8i32,
/*396421*/                    OPC_MoveParent,
/*396422*/                    OPC_MoveParent,
/*396423*/                    OPC_CheckType, MVT::v8f32,
/*396425*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396427*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396430*/                    OPC_EmitMergeInputChains1_2,
/*396431*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396444*/                  /*SwitchType*/ 37, MVT::v8i64,// ->396483
/*396446*/                    OPC_MoveParent,
/*396447*/                    OPC_MoveParent,
/*396448*/                    OPC_MoveChild2,
/*396449*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396452*/                    OPC_MoveChild0,
/*396453*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396456*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396458*/                    OPC_CheckType, MVT::v16i32,
/*396460*/                    OPC_MoveParent,
/*396461*/                    OPC_MoveParent,
/*396462*/                    OPC_CheckType, MVT::v8f64,
/*396464*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*396466*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396469*/                    OPC_EmitMergeInputChains1_2,
/*396470*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396483*/                  0, // EndSwitchType
/*396484*/                /*Scope*/ 94, /*->396579*/
/*396485*/                  OPC_MoveChild0,
/*396486*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*396489*/                  OPC_RecordMemRef,
/*396490*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*396491*/                  OPC_CheckFoldableChainNode,
/*396492*/                  OPC_RecordChild1, // #2 = $src2
/*396493*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*396495*/                  OPC_CheckPredicate, 9, // Predicate_load
/*396497*/                  OPC_MoveParent,
/*396498*/                  OPC_RecordChild1, // #3 = $src1
/*396499*/                  OPC_SwitchType /*2 cases */, 37, MVT::v4i64,// ->396539
/*396502*/                    OPC_MoveParent,
/*396503*/                    OPC_MoveParent,
/*396504*/                    OPC_MoveChild2,
/*396505*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396508*/                    OPC_MoveChild0,
/*396509*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396512*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396514*/                    OPC_CheckType, MVT::v8i32,
/*396516*/                    OPC_MoveParent,
/*396517*/                    OPC_MoveParent,
/*396518*/                    OPC_CheckType, MVT::v8f32,
/*396520*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396522*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396525*/                    OPC_EmitMergeInputChains1_1,
/*396526*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396539*/                  /*SwitchType*/ 37, MVT::v8i64,// ->396578
/*396541*/                    OPC_MoveParent,
/*396542*/                    OPC_MoveParent,
/*396543*/                    OPC_MoveChild2,
/*396544*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396547*/                    OPC_MoveChild0,
/*396548*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396551*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396553*/                    OPC_CheckType, MVT::v16i32,
/*396555*/                    OPC_MoveParent,
/*396556*/                    OPC_MoveParent,
/*396557*/                    OPC_CheckType, MVT::v8f64,
/*396559*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*396561*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396564*/                    OPC_EmitMergeInputChains1_1,
/*396565*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396578*/                  0, // EndSwitchType
/*396579*/                /*Scope*/ 91, /*->396671*/
/*396580*/                  OPC_RecordChild0, // #1 = $src1
/*396581*/                  OPC_MoveChild1,
/*396582*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396585*/                  OPC_MoveChild0,
/*396586*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*396589*/                  OPC_MoveChild0,
/*396590*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*396593*/                  OPC_RecordMemRef,
/*396594*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*396595*/                  OPC_CheckFoldableChainNode,
/*396596*/                  OPC_RecordChild1, // #3 = $src2
/*396597*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*396599*/                  OPC_CheckPredicate, 9, // Predicate_load
/*396601*/                  OPC_SwitchType /*2 cases */, 32, MVT::f32,// ->396636
/*396604*/                    OPC_MoveParent,
/*396605*/                    OPC_CheckType, MVT::v8f32,
/*396607*/                    OPC_MoveParent,
/*396608*/                    OPC_MoveParent,
/*396609*/                    OPC_CheckType, MVT::v4i64,
/*396611*/                    OPC_MoveParent,
/*396612*/                    OPC_MoveParent,
/*396613*/                    OPC_RecordChild2, // #4 = $src0
/*396614*/                    OPC_CheckType, MVT::v8f32,
/*396616*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396618*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*396621*/                    OPC_EmitMergeInputChains1_2,
/*396622*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR256X:{ *:[v8f32] }:$src0) - Complexity = 37
                              // Dst: (VPORDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396636*/                  /*SwitchType*/ 32, MVT::f64,// ->396670
/*396638*/                    OPC_MoveParent,
/*396639*/                    OPC_CheckType, MVT::v8f64,
/*396641*/                    OPC_MoveParent,
/*396642*/                    OPC_MoveParent,
/*396643*/                    OPC_CheckType, MVT::v8i64,
/*396645*/                    OPC_MoveParent,
/*396646*/                    OPC_MoveParent,
/*396647*/                    OPC_RecordChild2, // #4 = $src0
/*396648*/                    OPC_CheckType, MVT::v8f64,
/*396650*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*396652*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*396655*/                    OPC_EmitMergeInputChains1_2,
/*396656*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR512:{ *:[v8f64] }:$src0) - Complexity = 37
                              // Dst: (VPORQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396670*/                  0, // EndSwitchType
/*396671*/                /*Scope*/ 92, /*->396764*/
/*396672*/                  OPC_MoveChild0,
/*396673*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396676*/                  OPC_MoveChild0,
/*396677*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*396680*/                  OPC_MoveChild0,
/*396681*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*396684*/                  OPC_RecordMemRef,
/*396685*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*396686*/                  OPC_CheckFoldableChainNode,
/*396687*/                  OPC_RecordChild1, // #2 = $src2
/*396688*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*396690*/                  OPC_CheckPredicate, 9, // Predicate_load
/*396692*/                  OPC_SwitchType /*2 cases */, 33, MVT::f32,// ->396728
/*396695*/                    OPC_MoveParent,
/*396696*/                    OPC_CheckType, MVT::v8f32,
/*396698*/                    OPC_MoveParent,
/*396699*/                    OPC_MoveParent,
/*396700*/                    OPC_RecordChild1, // #3 = $src1
/*396701*/                    OPC_CheckType, MVT::v4i64,
/*396703*/                    OPC_MoveParent,
/*396704*/                    OPC_MoveParent,
/*396705*/                    OPC_RecordChild2, // #4 = $src0
/*396706*/                    OPC_CheckType, MVT::v8f32,
/*396708*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396710*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*396713*/                    OPC_EmitMergeInputChains1_1,
/*396714*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 37
                              // Dst: (VPORDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396728*/                  /*SwitchType*/ 33, MVT::f64,// ->396763
/*396730*/                    OPC_MoveParent,
/*396731*/                    OPC_CheckType, MVT::v8f64,
/*396733*/                    OPC_MoveParent,
/*396734*/                    OPC_MoveParent,
/*396735*/                    OPC_RecordChild1, // #3 = $src1
/*396736*/                    OPC_CheckType, MVT::v8i64,
/*396738*/                    OPC_MoveParent,
/*396739*/                    OPC_MoveParent,
/*396740*/                    OPC_RecordChild2, // #4 = $src0
/*396741*/                    OPC_CheckType, MVT::v8f64,
/*396743*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*396745*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*396748*/                    OPC_EmitMergeInputChains1_1,
/*396749*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 37
                              // Dst: (VPORQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396763*/                  0, // EndSwitchType
/*396764*/                0, /*End of Scope*/
/*396765*/              /*SwitchOpcode*/ 121|128,2/*377*/, TARGET_VAL(ISD::XOR),// ->397146
/*396769*/                OPC_Scope, 94, /*->396865*/ // 4 children in Scope
/*396771*/                  OPC_RecordChild0, // #1 = $src1
/*396772*/                  OPC_MoveChild1,
/*396773*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*396776*/                  OPC_RecordMemRef,
/*396777*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*396778*/                  OPC_CheckFoldableChainNode,
/*396779*/                  OPC_RecordChild1, // #3 = $src2
/*396780*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*396782*/                  OPC_CheckPredicate, 9, // Predicate_load
/*396784*/                  OPC_MoveParent,
/*396785*/                  OPC_SwitchType /*2 cases */, 37, MVT::v4i64,// ->396825
/*396788*/                    OPC_MoveParent,
/*396789*/                    OPC_MoveParent,
/*396790*/                    OPC_MoveChild2,
/*396791*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396794*/                    OPC_MoveChild0,
/*396795*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396798*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396800*/                    OPC_CheckType, MVT::v8i32,
/*396802*/                    OPC_MoveParent,
/*396803*/                    OPC_MoveParent,
/*396804*/                    OPC_CheckType, MVT::v8f32,
/*396806*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396808*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396811*/                    OPC_EmitMergeInputChains1_2,
/*396812*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPXORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396825*/                  /*SwitchType*/ 37, MVT::v8i64,// ->396864
/*396827*/                    OPC_MoveParent,
/*396828*/                    OPC_MoveParent,
/*396829*/                    OPC_MoveChild2,
/*396830*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396833*/                    OPC_MoveChild0,
/*396834*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396837*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396839*/                    OPC_CheckType, MVT::v16i32,
/*396841*/                    OPC_MoveParent,
/*396842*/                    OPC_MoveParent,
/*396843*/                    OPC_CheckType, MVT::v8f64,
/*396845*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*396847*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396850*/                    OPC_EmitMergeInputChains1_2,
/*396851*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPXORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396864*/                  0, // EndSwitchType
/*396865*/                /*Scope*/ 94, /*->396960*/
/*396866*/                  OPC_MoveChild0,
/*396867*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*396870*/                  OPC_RecordMemRef,
/*396871*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*396872*/                  OPC_CheckFoldableChainNode,
/*396873*/                  OPC_RecordChild1, // #2 = $src2
/*396874*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*396876*/                  OPC_CheckPredicate, 9, // Predicate_load
/*396878*/                  OPC_MoveParent,
/*396879*/                  OPC_RecordChild1, // #3 = $src1
/*396880*/                  OPC_SwitchType /*2 cases */, 37, MVT::v4i64,// ->396920
/*396883*/                    OPC_MoveParent,
/*396884*/                    OPC_MoveParent,
/*396885*/                    OPC_MoveChild2,
/*396886*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396889*/                    OPC_MoveChild0,
/*396890*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396893*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396895*/                    OPC_CheckType, MVT::v8i32,
/*396897*/                    OPC_MoveParent,
/*396898*/                    OPC_MoveParent,
/*396899*/                    OPC_CheckType, MVT::v8f32,
/*396901*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396903*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396906*/                    OPC_EmitMergeInputChains1_1,
/*396907*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPXORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396920*/                  /*SwitchType*/ 37, MVT::v8i64,// ->396959
/*396922*/                    OPC_MoveParent,
/*396923*/                    OPC_MoveParent,
/*396924*/                    OPC_MoveChild2,
/*396925*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396928*/                    OPC_MoveChild0,
/*396929*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*396932*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*396934*/                    OPC_CheckType, MVT::v16i32,
/*396936*/                    OPC_MoveParent,
/*396937*/                    OPC_MoveParent,
/*396938*/                    OPC_CheckType, MVT::v8f64,
/*396940*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*396942*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*396945*/                    OPC_EmitMergeInputChains1_1,
/*396946*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPXORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*396959*/                  0, // EndSwitchType
/*396960*/                /*Scope*/ 91, /*->397052*/
/*396961*/                  OPC_RecordChild0, // #1 = $src1
/*396962*/                  OPC_MoveChild1,
/*396963*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*396966*/                  OPC_MoveChild0,
/*396967*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*396970*/                  OPC_MoveChild0,
/*396971*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*396974*/                  OPC_RecordMemRef,
/*396975*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*396976*/                  OPC_CheckFoldableChainNode,
/*396977*/                  OPC_RecordChild1, // #3 = $src2
/*396978*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*396980*/                  OPC_CheckPredicate, 9, // Predicate_load
/*396982*/                  OPC_SwitchType /*2 cases */, 32, MVT::f32,// ->397017
/*396985*/                    OPC_MoveParent,
/*396986*/                    OPC_CheckType, MVT::v8f32,
/*396988*/                    OPC_MoveParent,
/*396989*/                    OPC_MoveParent,
/*396990*/                    OPC_CheckType, MVT::v4i64,
/*396992*/                    OPC_MoveParent,
/*396993*/                    OPC_MoveParent,
/*396994*/                    OPC_RecordChild2, // #4 = $src0
/*396995*/                    OPC_CheckType, MVT::v8f32,
/*396997*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396999*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*397002*/                    OPC_EmitMergeInputChains1_2,
/*397003*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR256X:{ *:[v8f32] }:$src0) - Complexity = 37
                              // Dst: (VPXORDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*397017*/                  /*SwitchType*/ 32, MVT::f64,// ->397051
/*397019*/                    OPC_MoveParent,
/*397020*/                    OPC_CheckType, MVT::v8f64,
/*397022*/                    OPC_MoveParent,
/*397023*/                    OPC_MoveParent,
/*397024*/                    OPC_CheckType, MVT::v8i64,
/*397026*/                    OPC_MoveParent,
/*397027*/                    OPC_MoveParent,
/*397028*/                    OPC_RecordChild2, // #4 = $src0
/*397029*/                    OPC_CheckType, MVT::v8f64,
/*397031*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*397033*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*397036*/                    OPC_EmitMergeInputChains1_2,
/*397037*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR512:{ *:[v8f64] }:$src0) - Complexity = 37
                              // Dst: (VPXORQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*397051*/                  0, // EndSwitchType
/*397052*/                /*Scope*/ 92, /*->397145*/
/*397053*/                  OPC_MoveChild0,
/*397054*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*397057*/                  OPC_MoveChild0,
/*397058*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*397061*/                  OPC_MoveChild0,
/*397062*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*397065*/                  OPC_RecordMemRef,
/*397066*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*397067*/                  OPC_CheckFoldableChainNode,
/*397068*/                  OPC_RecordChild1, // #2 = $src2
/*397069*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397071*/                  OPC_CheckPredicate, 9, // Predicate_load
/*397073*/                  OPC_SwitchType /*2 cases */, 33, MVT::f32,// ->397109
/*397076*/                    OPC_MoveParent,
/*397077*/                    OPC_CheckType, MVT::v8f32,
/*397079*/                    OPC_MoveParent,
/*397080*/                    OPC_MoveParent,
/*397081*/                    OPC_RecordChild1, // #3 = $src1
/*397082*/                    OPC_CheckType, MVT::v4i64,
/*397084*/                    OPC_MoveParent,
/*397085*/                    OPC_MoveParent,
/*397086*/                    OPC_RecordChild2, // #4 = $src0
/*397087*/                    OPC_CheckType, MVT::v8f32,
/*397089*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*397091*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*397094*/                    OPC_EmitMergeInputChains1_1,
/*397095*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 37
                              // Dst: (VPXORDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*397109*/                  /*SwitchType*/ 33, MVT::f64,// ->397144
/*397111*/                    OPC_MoveParent,
/*397112*/                    OPC_CheckType, MVT::v8f64,
/*397114*/                    OPC_MoveParent,
/*397115*/                    OPC_MoveParent,
/*397116*/                    OPC_RecordChild1, // #3 = $src1
/*397117*/                    OPC_CheckType, MVT::v8i64,
/*397119*/                    OPC_MoveParent,
/*397120*/                    OPC_MoveParent,
/*397121*/                    OPC_RecordChild2, // #4 = $src0
/*397122*/                    OPC_CheckType, MVT::v8f64,
/*397124*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*397126*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*397129*/                    OPC_EmitMergeInputChains1_1,
/*397130*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 37
                              // Dst: (VPXORQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*397144*/                  0, // EndSwitchType
/*397145*/                0, /*End of Scope*/
/*397146*/              /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(X86ISD::ANDNP),// ->397335
/*397150*/                OPC_RecordChild0, // #1 = $src1
/*397151*/                OPC_MoveChild1,
/*397152*/                OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::LOAD),// ->397245
/*397156*/                  OPC_RecordMemRef,
/*397157*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*397158*/                  OPC_CheckFoldableChainNode,
/*397159*/                  OPC_RecordChild1, // #3 = $src2
/*397160*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397162*/                  OPC_CheckPredicate, 9, // Predicate_load
/*397164*/                  OPC_MoveParent,
/*397165*/                  OPC_SwitchType /*2 cases */, 37, MVT::v4i64,// ->397205
/*397168*/                    OPC_MoveParent,
/*397169*/                    OPC_MoveParent,
/*397170*/                    OPC_MoveChild2,
/*397171*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*397174*/                    OPC_MoveChild0,
/*397175*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*397178*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*397180*/                    OPC_CheckType, MVT::v8i32,
/*397182*/                    OPC_MoveParent,
/*397183*/                    OPC_MoveParent,
/*397184*/                    OPC_CheckType, MVT::v8f32,
/*397186*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*397188*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*397191*/                    OPC_EmitMergeInputChains1_2,
/*397192*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDNDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*397205*/                  /*SwitchType*/ 37, MVT::v8i64,// ->397244
/*397207*/                    OPC_MoveParent,
/*397208*/                    OPC_MoveParent,
/*397209*/                    OPC_MoveChild2,
/*397210*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*397213*/                    OPC_MoveChild0,
/*397214*/                    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*397217*/                    OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*397219*/                    OPC_CheckType, MVT::v16i32,
/*397221*/                    OPC_MoveParent,
/*397222*/                    OPC_MoveParent,
/*397223*/                    OPC_CheckType, MVT::v8f64,
/*397225*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*397227*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*397230*/                    OPC_EmitMergeInputChains1_2,
/*397231*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                              // Dst: (VPANDNQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*397244*/                  0, // EndSwitchType
/*397245*/                /*SwitchOpcode*/ 86, TARGET_VAL(ISD::BITCAST),// ->397334
/*397248*/                  OPC_MoveChild0,
/*397249*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*397252*/                  OPC_MoveChild0,
/*397253*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*397256*/                  OPC_RecordMemRef,
/*397257*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*397258*/                  OPC_CheckFoldableChainNode,
/*397259*/                  OPC_RecordChild1, // #3 = $src2
/*397260*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397262*/                  OPC_CheckPredicate, 9, // Predicate_load
/*397264*/                  OPC_SwitchType /*2 cases */, 32, MVT::f32,// ->397299
/*397267*/                    OPC_MoveParent,
/*397268*/                    OPC_CheckType, MVT::v8f32,
/*397270*/                    OPC_MoveParent,
/*397271*/                    OPC_MoveParent,
/*397272*/                    OPC_CheckType, MVT::v4i64,
/*397274*/                    OPC_MoveParent,
/*397275*/                    OPC_MoveParent,
/*397276*/                    OPC_RecordChild2, // #4 = $src0
/*397277*/                    OPC_CheckType, MVT::v8f32,
/*397279*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*397281*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*397284*/                    OPC_EmitMergeInputChains1_2,
/*397285*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR256X:{ *:[v8f32] }:$src0) - Complexity = 37
                              // Dst: (VPANDNDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*397299*/                  /*SwitchType*/ 32, MVT::f64,// ->397333
/*397301*/                    OPC_MoveParent,
/*397302*/                    OPC_CheckType, MVT::v8f64,
/*397304*/                    OPC_MoveParent,
/*397305*/                    OPC_MoveParent,
/*397306*/                    OPC_CheckType, MVT::v8i64,
/*397308*/                    OPC_MoveParent,
/*397309*/                    OPC_MoveParent,
/*397310*/                    OPC_RecordChild2, // #4 = $src0
/*397311*/                    OPC_CheckType, MVT::v8f64,
/*397313*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*397315*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*397318*/                    OPC_EmitMergeInputChains1_2,
/*397319*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR512:{ *:[v8f64] }:$src0) - Complexity = 37
                              // Dst: (VPANDNQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*397333*/                  0, // EndSwitchType
/*397334*/                0, // EndSwitchOpcode
/*397335*/              /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::SHUF128),// ->397454
/*397338*/                OPC_RecordChild0, // #1 = $src1
/*397339*/                OPC_MoveChild1,
/*397340*/                OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->397398
/*397344*/                  OPC_MoveChild0,
/*397345*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*397348*/                  OPC_RecordMemRef,
/*397349*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*397350*/                  OPC_CheckFoldableChainNode,
/*397351*/                  OPC_RecordChild1, // #3 = $src2
/*397352*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397354*/                  OPC_CheckPredicate, 9, // Predicate_load
/*397356*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*397358*/                  OPC_CheckType, MVT::v8f32,
/*397360*/                  OPC_MoveParent,
/*397361*/                  OPC_MoveParent,
/*397362*/                  OPC_RecordChild2, // #4 = $src3
/*397363*/                  OPC_MoveChild2,
/*397364*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*397367*/                  OPC_MoveParent,
/*397368*/                  OPC_CheckType, MVT::v4f64,
/*397370*/                  OPC_MoveParent,
/*397371*/                  OPC_MoveParent,
/*397372*/                  OPC_RecordChild2, // #5 = $src0
/*397373*/                  OPC_CheckType, MVT::v8f32,
/*397375*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397377*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*397380*/                  OPC_EmitMergeInputChains1_2,
/*397381*/                  OPC_EmitConvertToTarget, 4,
/*397383*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (bitconvert:{ *:[v4f64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 37
                            // Dst: (VSHUFF32X4Z256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*397398*/                /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->397453
/*397401*/                  OPC_MoveChild0,
/*397402*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*397405*/                  OPC_RecordMemRef,
/*397406*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*397407*/                  OPC_CheckFoldableChainNode,
/*397408*/                  OPC_RecordChild1, // #3 = $src2
/*397409*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397411*/                  OPC_CheckPredicate, 9, // Predicate_load
/*397413*/                  OPC_CheckType, MVT::f32,
/*397415*/                  OPC_MoveParent,
/*397416*/                  OPC_MoveParent,
/*397417*/                  OPC_RecordChild2, // #4 = $src3
/*397418*/                  OPC_MoveChild2,
/*397419*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*397422*/                  OPC_MoveParent,
/*397423*/                  OPC_CheckType, MVT::v4f64,
/*397425*/                  OPC_MoveParent,
/*397426*/                  OPC_MoveParent,
/*397427*/                  OPC_RecordChild2, // #5 = $src0
/*397428*/                  OPC_CheckType, MVT::v8f32,
/*397430*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397432*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*397435*/                  OPC_EmitMergeInputChains1_2,
/*397436*/                  OPC_EmitConvertToTarget, 4,
/*397438*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 37
                            // Dst: (VSHUFF32X4Z256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*397453*/                0, // EndSwitchOpcode
/*397454*/              0, // EndSwitchOpcode
/*397455*/            /*Scope*/ 24|128,1/*152*/, /*->397609*/
/*397457*/              OPC_RecordChild0, // #1 = $ins
/*397458*/              OPC_MoveChild0,
/*397459*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*397462*/              OPC_RecordChild0, // #2 = $src1
/*397463*/              OPC_MoveChild1,
/*397464*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*397467*/              OPC_RecordMemRef,
/*397468*/              OPC_RecordNode, // #3 = 'ld' chained node
/*397469*/              OPC_CheckFoldableChainNode,
/*397470*/              OPC_RecordChild1, // #4 = $src2
/*397471*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397473*/              OPC_CheckPredicate, 9, // Predicate_load
/*397475*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*397477*/              OPC_Scope, 41, /*->397520*/ // 3 children in Scope
/*397479*/                OPC_MoveParent,
/*397480*/                OPC_MoveChild2,
/*397481*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*397484*/                OPC_CheckType, MVT::iPTR,
/*397486*/                OPC_MoveParent,
/*397487*/                OPC_CheckType, MVT::v4f64,
/*397489*/                OPC_MoveParent,
/*397490*/                OPC_MoveParent,
/*397491*/                OPC_RecordChild2, // #5 = $src0
/*397492*/                OPC_CheckType, MVT::v8f32,
/*397494*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*397496*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*397499*/                OPC_EmitMergeInputChains, 1, 3, 
/*397502*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*397505*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v8f32] }:$src0) - Complexity = 34
                          // Dst: (VINSERTF32x4Z256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ins))
/*397520*/              /*Scope*/ 43, /*->397564*/
/*397521*/                OPC_CheckType, MVT::v4f32,
/*397523*/                OPC_MoveParent,
/*397524*/                OPC_MoveChild2,
/*397525*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*397528*/                OPC_CheckType, MVT::iPTR,
/*397530*/                OPC_MoveParent,
/*397531*/                OPC_CheckType, MVT::v16f32,
/*397533*/                OPC_MoveParent,
/*397534*/                OPC_MoveParent,
/*397535*/                OPC_RecordChild2, // #5 = $src0
/*397536*/                OPC_CheckType, MVT::v8f64,
/*397538*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*397540*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*397543*/                OPC_EmitMergeInputChains, 1, 3, 
/*397546*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*397549*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v8f64] }:$src0) - Complexity = 34
                          // Dst: (VINSERTF64x2Zrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*397564*/              /*Scope*/ 43, /*->397608*/
/*397565*/                OPC_CheckType, MVT::v8f32,
/*397567*/                OPC_MoveParent,
/*397568*/                OPC_MoveChild2,
/*397569*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*397572*/                OPC_CheckType, MVT::iPTR,
/*397574*/                OPC_MoveParent,
/*397575*/                OPC_CheckType, MVT::v16f32,
/*397577*/                OPC_MoveParent,
/*397578*/                OPC_MoveParent,
/*397579*/                OPC_RecordChild2, // #5 = $src0
/*397580*/                OPC_CheckType, MVT::v8f64,
/*397582*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*397584*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*397587*/                OPC_EmitMergeInputChains, 1, 3, 
/*397590*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*397593*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v8f64] }:$src0) - Complexity = 34
                          // Dst: (VINSERTF64x4Zrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*397608*/              0, /*End of Scope*/
/*397609*/            /*Scope*/ 52, /*->397662*/
/*397610*/              OPC_MoveChild0,
/*397611*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*397614*/              OPC_MoveChild0,
/*397615*/              OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*397618*/              OPC_MoveChild0,
/*397619*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*397622*/              OPC_RecordMemRef,
/*397623*/              OPC_RecordNode, // #1 = 'ld' chained node
/*397624*/              OPC_CheckFoldableChainNode,
/*397625*/              OPC_RecordChild1, // #2 = $src
/*397626*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397628*/              OPC_CheckPredicate, 9, // Predicate_load
/*397630*/              OPC_CheckType, MVT::f64,
/*397632*/              OPC_MoveParent,
/*397633*/              OPC_CheckType, MVT::v2f64,
/*397635*/              OPC_MoveParent,
/*397636*/              OPC_CheckType, MVT::v4f64,
/*397638*/              OPC_MoveParent,
/*397639*/              OPC_MoveParent,
/*397640*/              OPC_RecordChild2, // #3 = $src0
/*397641*/              OPC_CheckType, MVT::v8f32,
/*397643*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397645*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*397648*/              OPC_EmitMergeInputChains1_1,
/*397649*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Z256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86VBroadcast:{ *:[v4f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR256X:{ *:[v8f32] }:$src0) - Complexity = 34
                        // Dst: (VBROADCASTF32X2Z256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*397662*/            0, /*End of Scope*/
/*397663*/          /*SwitchOpcode*/ 16|128,3/*400*/, TARGET_VAL(X86ISD::VPERMV3),// ->398067
/*397667*/            OPC_RecordChild0, // #1 = $src1
/*397668*/            OPC_Scope, 105, /*->397775*/ // 4 children in Scope
/*397670*/              OPC_RecordChild1, // #2 = $src2
/*397671*/              OPC_MoveChild2,
/*397672*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*397675*/              OPC_MoveChild0,
/*397676*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*397679*/              OPC_RecordMemRef,
/*397680*/              OPC_RecordNode, // #3 = 'ld' chained node
/*397681*/              OPC_CheckFoldableChainNode,
/*397682*/              OPC_RecordChild1, // #4 = $src3
/*397683*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397685*/              OPC_CheckPredicate, 9, // Predicate_load
/*397687*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->397731
/*397690*/                OPC_MoveParent,
/*397691*/                OPC_MoveParent,
/*397692*/                OPC_MoveParent,
/*397693*/                OPC_MoveChild2,
/*397694*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*397697*/                OPC_MoveChild0,
/*397698*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*397701*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*397703*/                OPC_CheckType, MVT::v8i32,
/*397705*/                OPC_MoveParent,
/*397706*/                OPC_MoveParent,
/*397707*/                OPC_CheckType, MVT::v8f32,
/*397709*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*397711*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*397714*/                OPC_EmitMergeInputChains, 1, 3, 
/*397717*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMT2PS256rmbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*397731*/              /*SwitchType*/ 41, MVT::f64,// ->397774
/*397733*/                OPC_MoveParent,
/*397734*/                OPC_MoveParent,
/*397735*/                OPC_MoveParent,
/*397736*/                OPC_MoveChild2,
/*397737*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*397740*/                OPC_MoveChild0,
/*397741*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*397744*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*397746*/                OPC_CheckType, MVT::v16i32,
/*397748*/                OPC_MoveParent,
/*397749*/                OPC_MoveParent,
/*397750*/                OPC_CheckType, MVT::v8f64,
/*397752*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*397754*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*397757*/                OPC_EmitMergeInputChains, 1, 3, 
/*397760*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PDrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMT2PDrmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*397774*/              0, // EndSwitchType
/*397775*/            /*Scope*/ 58, /*->397834*/
/*397776*/              OPC_MoveChild1,
/*397777*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*397780*/              OPC_RecordChild0, // #2 = $src1
/*397781*/              OPC_CheckChild0Type, MVT::v4i64,
/*397783*/              OPC_MoveParent,
/*397784*/              OPC_MoveChild2,
/*397785*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*397788*/              OPC_MoveChild0,
/*397789*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*397792*/              OPC_RecordMemRef,
/*397793*/              OPC_RecordNode, // #3 = 'ld' chained node
/*397794*/              OPC_CheckFoldableChainNode,
/*397795*/              OPC_RecordChild1, // #4 = $src3
/*397796*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397798*/              OPC_CheckPredicate, 9, // Predicate_load
/*397800*/              OPC_CheckType, MVT::f32,
/*397802*/              OPC_MoveParent,
/*397803*/              OPC_MoveParent,
/*397804*/              OPC_MoveParent,
/*397805*/              OPC_MoveChild2,
/*397806*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*397809*/              OPC_CheckChild0Same, 2,
/*397811*/              OPC_MoveParent,
/*397812*/              OPC_CheckType, MVT::v8f32,
/*397814*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*397817*/              OPC_EmitMergeInputChains, 1, 3, 
/*397820*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (bitconvert:{ *:[v8i32] } VR256X:{ *:[v4i64] }:$src1), (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } VR256X:{ *:[v4i64] }:$src1)) - Complexity = 37
                        // Dst: (VPERMI2PS256rmbk:{ *:[v8f32] } VR256X:{ *:[v4i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*397834*/            /*Scope*/ 48|128,1/*176*/, /*->398012*/
/*397836*/              OPC_RecordChild1, // #2 = $src2
/*397837*/              OPC_MoveChild2,
/*397838*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->397922
/*397842*/                OPC_RecordMemRef,
/*397843*/                OPC_RecordNode, // #3 = 'ld' chained node
/*397844*/                OPC_CheckFoldableChainNode,
/*397845*/                OPC_RecordChild1, // #4 = $src3
/*397846*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397848*/                OPC_CheckPredicate, 9, // Predicate_load
/*397850*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*397852*/                OPC_MoveParent,
/*397853*/                OPC_MoveParent,
/*397854*/                OPC_MoveChild2,
/*397855*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*397858*/                OPC_MoveChild0,
/*397859*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*397862*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*397864*/                OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->397893
/*397867*/                  OPC_MoveParent,
/*397868*/                  OPC_MoveParent,
/*397869*/                  OPC_CheckType, MVT::v8f32,
/*397871*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*397873*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*397876*/                  OPC_EmitMergeInputChains, 1, 3, 
/*397879*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VPERMT2PS256rmkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*397893*/                /*SwitchType*/ 26, MVT::v16i32,// ->397921
/*397895*/                  OPC_MoveParent,
/*397896*/                  OPC_MoveParent,
/*397897*/                  OPC_CheckType, MVT::v8f64,
/*397899*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*397901*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*397904*/                  OPC_EmitMergeInputChains, 1, 3, 
/*397907*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PDrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VPERMT2PDrmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*397921*/                0, // EndSwitchType
/*397922*/              /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VBROADCAST),// ->398011
/*397925*/                OPC_MoveChild0,
/*397926*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*397929*/                OPC_RecordMemRef,
/*397930*/                OPC_RecordNode, // #3 = 'ld' chained node
/*397931*/                OPC_CheckFoldableChainNode,
/*397932*/                OPC_RecordChild1, // #4 = $src3
/*397933*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397935*/                OPC_CheckPredicate, 9, // Predicate_load
/*397937*/                OPC_SwitchType /*2 cases */, 34, MVT::f32,// ->397974
/*397940*/                  OPC_MoveParent,
/*397941*/                  OPC_MoveParent,
/*397942*/                  OPC_MoveParent,
/*397943*/                  OPC_MoveChild2,
/*397944*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*397947*/                  OPC_CheckChild0Same, 2,
/*397949*/                  OPC_MoveParent,
/*397950*/                  OPC_CheckType, MVT::v8f32,
/*397952*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*397954*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*397957*/                  OPC_EmitMergeInputChains, 1, 3, 
/*397960*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1)) - Complexity = 34
                            // Dst: (VPERMI2PS256rmbk:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*397974*/                /*SwitchType*/ 34, MVT::f64,// ->398010
/*397976*/                  OPC_MoveParent,
/*397977*/                  OPC_MoveParent,
/*397978*/                  OPC_MoveParent,
/*397979*/                  OPC_MoveChild2,
/*397980*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*397983*/                  OPC_CheckChild0Same, 2,
/*397985*/                  OPC_MoveParent,
/*397986*/                  OPC_CheckType, MVT::v8f64,
/*397988*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*397990*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*397993*/                  OPC_EmitMergeInputChains, 1, 3, 
/*397996*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PDrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1)) - Complexity = 34
                            // Dst: (VPERMI2PDrmbk:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*398010*/                0, // EndSwitchType
/*398011*/              0, // EndSwitchOpcode
/*398012*/            /*Scope*/ 53, /*->398066*/
/*398013*/              OPC_MoveChild1,
/*398014*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398017*/              OPC_RecordChild0, // #2 = $src1
/*398018*/              OPC_CheckChild0Type, MVT::v4i64,
/*398020*/              OPC_MoveParent,
/*398021*/              OPC_MoveChild2,
/*398022*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398025*/              OPC_RecordMemRef,
/*398026*/              OPC_RecordNode, // #3 = 'ld' chained node
/*398027*/              OPC_CheckFoldableChainNode,
/*398028*/              OPC_RecordChild1, // #4 = $src3
/*398029*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398031*/              OPC_CheckPredicate, 9, // Predicate_load
/*398033*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*398035*/              OPC_MoveParent,
/*398036*/              OPC_MoveParent,
/*398037*/              OPC_MoveChild2,
/*398038*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398041*/              OPC_CheckChild0Same, 2,
/*398043*/              OPC_MoveParent,
/*398044*/              OPC_CheckType, MVT::v8f32,
/*398046*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*398049*/              OPC_EmitMergeInputChains, 1, 3, 
/*398052*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (bitconvert:{ *:[v8i32] } VR256X:{ *:[v4i64] }:$src1), (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } VR256X:{ *:[v4i64] }:$src1)) - Complexity = 34
                        // Dst: (VPERMI2PS256rmk:{ *:[v8f32] } VR256X:{ *:[v4i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*398066*/            0, /*End of Scope*/
/*398067*/          /*SwitchOpcode*/ 107|128,2/*363*/, TARGET_VAL(ISD::FADD),// ->398434
/*398071*/            OPC_Scope, 99, /*->398172*/ // 4 children in Scope
/*398073*/              OPC_RecordChild0, // #1 = $src1
/*398074*/              OPC_MoveChild1,
/*398075*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*398078*/              OPC_MoveChild0,
/*398079*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398082*/              OPC_RecordMemRef,
/*398083*/              OPC_RecordNode, // #2 = 'ld' chained node
/*398084*/              OPC_CheckFoldableChainNode,
/*398085*/              OPC_RecordChild1, // #3 = $src2
/*398086*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398088*/              OPC_CheckPredicate, 9, // Predicate_load
/*398090*/              OPC_SwitchType /*2 cases */, 38, MVT::f64,// ->398131
/*398093*/                OPC_MoveParent,
/*398094*/                OPC_MoveParent,
/*398095*/                OPC_MoveParent,
/*398096*/                OPC_MoveChild2,
/*398097*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398100*/                OPC_MoveChild0,
/*398101*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398104*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398106*/                OPC_CheckType, MVT::v16i32,
/*398108*/                OPC_MoveParent,
/*398109*/                OPC_MoveParent,
/*398110*/                OPC_CheckType, MVT::v8f64,
/*398112*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*398114*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398117*/                OPC_EmitMergeInputChains1_2,
/*398118*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VADDPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398131*/              /*SwitchType*/ 38, MVT::f32,// ->398171
/*398133*/                OPC_MoveParent,
/*398134*/                OPC_MoveParent,
/*398135*/                OPC_MoveParent,
/*398136*/                OPC_MoveChild2,
/*398137*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398140*/                OPC_MoveChild0,
/*398141*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398144*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398146*/                OPC_CheckType, MVT::v8i32,
/*398148*/                OPC_MoveParent,
/*398149*/                OPC_MoveParent,
/*398150*/                OPC_CheckType, MVT::v8f32,
/*398152*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*398154*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398157*/                OPC_EmitMergeInputChains1_2,
/*398158*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VADDPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398171*/              0, // EndSwitchType
/*398172*/            /*Scope*/ 100, /*->398273*/
/*398173*/              OPC_MoveChild0,
/*398174*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*398177*/              OPC_MoveChild0,
/*398178*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398181*/              OPC_RecordMemRef,
/*398182*/              OPC_RecordNode, // #1 = 'ld' chained node
/*398183*/              OPC_CheckFoldableChainNode,
/*398184*/              OPC_RecordChild1, // #2 = $src2
/*398185*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398187*/              OPC_CheckPredicate, 9, // Predicate_load
/*398189*/              OPC_SwitchType /*2 cases */, 39, MVT::f64,// ->398231
/*398192*/                OPC_MoveParent,
/*398193*/                OPC_MoveParent,
/*398194*/                OPC_RecordChild1, // #3 = $src1
/*398195*/                OPC_MoveParent,
/*398196*/                OPC_MoveChild2,
/*398197*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398200*/                OPC_MoveChild0,
/*398201*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398204*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398206*/                OPC_CheckType, MVT::v16i32,
/*398208*/                OPC_MoveParent,
/*398209*/                OPC_MoveParent,
/*398210*/                OPC_CheckType, MVT::v8f64,
/*398212*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*398214*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398217*/                OPC_EmitMergeInputChains1_1,
/*398218*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VADDPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398231*/              /*SwitchType*/ 39, MVT::f32,// ->398272
/*398233*/                OPC_MoveParent,
/*398234*/                OPC_MoveParent,
/*398235*/                OPC_RecordChild1, // #3 = $src1
/*398236*/                OPC_MoveParent,
/*398237*/                OPC_MoveChild2,
/*398238*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398241*/                OPC_MoveChild0,
/*398242*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398245*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398247*/                OPC_CheckType, MVT::v8i32,
/*398249*/                OPC_MoveParent,
/*398250*/                OPC_MoveParent,
/*398251*/                OPC_CheckType, MVT::v8f32,
/*398253*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*398255*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398258*/                OPC_EmitMergeInputChains1_1,
/*398259*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VADDPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398272*/              0, // EndSwitchType
/*398273*/            /*Scope*/ 79, /*->398353*/
/*398274*/              OPC_RecordChild0, // #1 = $src1
/*398275*/              OPC_MoveChild1,
/*398276*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398279*/              OPC_RecordMemRef,
/*398280*/              OPC_RecordNode, // #2 = 'ld' chained node
/*398281*/              OPC_CheckFoldableChainNode,
/*398282*/              OPC_RecordChild1, // #3 = $src2
/*398283*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398285*/              OPC_CheckPredicate, 9, // Predicate_load
/*398287*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*398289*/              OPC_MoveParent,
/*398290*/              OPC_MoveParent,
/*398291*/              OPC_MoveChild2,
/*398292*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398295*/              OPC_MoveChild0,
/*398296*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398299*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398301*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->398327
/*398304*/                OPC_MoveParent,
/*398305*/                OPC_MoveParent,
/*398306*/                OPC_CheckType, MVT::v8f64,
/*398308*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*398310*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398313*/                OPC_EmitMergeInputChains1_2,
/*398314*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VADDPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398327*/              /*SwitchType*/ 23, MVT::v8i32,// ->398352
/*398329*/                OPC_MoveParent,
/*398330*/                OPC_MoveParent,
/*398331*/                OPC_CheckType, MVT::v8f32,
/*398333*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*398335*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398338*/                OPC_EmitMergeInputChains1_2,
/*398339*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VADDPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398352*/              0, // EndSwitchType
/*398353*/            /*Scope*/ 79, /*->398433*/
/*398354*/              OPC_MoveChild0,
/*398355*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398358*/              OPC_RecordMemRef,
/*398359*/              OPC_RecordNode, // #1 = 'ld' chained node
/*398360*/              OPC_CheckFoldableChainNode,
/*398361*/              OPC_RecordChild1, // #2 = $src2
/*398362*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398364*/              OPC_CheckPredicate, 9, // Predicate_load
/*398366*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*398368*/              OPC_MoveParent,
/*398369*/              OPC_RecordChild1, // #3 = $src1
/*398370*/              OPC_MoveParent,
/*398371*/              OPC_MoveChild2,
/*398372*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398375*/              OPC_MoveChild0,
/*398376*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398379*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398381*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->398407
/*398384*/                OPC_MoveParent,
/*398385*/                OPC_MoveParent,
/*398386*/                OPC_CheckType, MVT::v8f64,
/*398388*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*398390*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398393*/                OPC_EmitMergeInputChains1_1,
/*398394*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VADDPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398407*/              /*SwitchType*/ 23, MVT::v8i32,// ->398432
/*398409*/                OPC_MoveParent,
/*398410*/                OPC_MoveParent,
/*398411*/                OPC_CheckType, MVT::v8f32,
/*398413*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*398415*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398418*/                OPC_EmitMergeInputChains1_1,
/*398419*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VADDPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398432*/              0, // EndSwitchType
/*398433*/            0, /*End of Scope*/
/*398434*/          /*SwitchOpcode*/ 107|128,2/*363*/, TARGET_VAL(ISD::FMUL),// ->398801
/*398438*/            OPC_Scope, 99, /*->398539*/ // 4 children in Scope
/*398440*/              OPC_RecordChild0, // #1 = $src1
/*398441*/              OPC_MoveChild1,
/*398442*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*398445*/              OPC_MoveChild0,
/*398446*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398449*/              OPC_RecordMemRef,
/*398450*/              OPC_RecordNode, // #2 = 'ld' chained node
/*398451*/              OPC_CheckFoldableChainNode,
/*398452*/              OPC_RecordChild1, // #3 = $src2
/*398453*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398455*/              OPC_CheckPredicate, 9, // Predicate_load
/*398457*/              OPC_SwitchType /*2 cases */, 38, MVT::f64,// ->398498
/*398460*/                OPC_MoveParent,
/*398461*/                OPC_MoveParent,
/*398462*/                OPC_MoveParent,
/*398463*/                OPC_MoveChild2,
/*398464*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398467*/                OPC_MoveChild0,
/*398468*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398471*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398473*/                OPC_CheckType, MVT::v16i32,
/*398475*/                OPC_MoveParent,
/*398476*/                OPC_MoveParent,
/*398477*/                OPC_CheckType, MVT::v8f64,
/*398479*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*398481*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398484*/                OPC_EmitMergeInputChains1_2,
/*398485*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMULPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398498*/              /*SwitchType*/ 38, MVT::f32,// ->398538
/*398500*/                OPC_MoveParent,
/*398501*/                OPC_MoveParent,
/*398502*/                OPC_MoveParent,
/*398503*/                OPC_MoveChild2,
/*398504*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398507*/                OPC_MoveChild0,
/*398508*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398511*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398513*/                OPC_CheckType, MVT::v8i32,
/*398515*/                OPC_MoveParent,
/*398516*/                OPC_MoveParent,
/*398517*/                OPC_CheckType, MVT::v8f32,
/*398519*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*398521*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398524*/                OPC_EmitMergeInputChains1_2,
/*398525*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMULPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398538*/              0, // EndSwitchType
/*398539*/            /*Scope*/ 100, /*->398640*/
/*398540*/              OPC_MoveChild0,
/*398541*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*398544*/              OPC_MoveChild0,
/*398545*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398548*/              OPC_RecordMemRef,
/*398549*/              OPC_RecordNode, // #1 = 'ld' chained node
/*398550*/              OPC_CheckFoldableChainNode,
/*398551*/              OPC_RecordChild1, // #2 = $src2
/*398552*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398554*/              OPC_CheckPredicate, 9, // Predicate_load
/*398556*/              OPC_SwitchType /*2 cases */, 39, MVT::f64,// ->398598
/*398559*/                OPC_MoveParent,
/*398560*/                OPC_MoveParent,
/*398561*/                OPC_RecordChild1, // #3 = $src1
/*398562*/                OPC_MoveParent,
/*398563*/                OPC_MoveChild2,
/*398564*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398567*/                OPC_MoveChild0,
/*398568*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398571*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398573*/                OPC_CheckType, MVT::v16i32,
/*398575*/                OPC_MoveParent,
/*398576*/                OPC_MoveParent,
/*398577*/                OPC_CheckType, MVT::v8f64,
/*398579*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*398581*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398584*/                OPC_EmitMergeInputChains1_1,
/*398585*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMULPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398598*/              /*SwitchType*/ 39, MVT::f32,// ->398639
/*398600*/                OPC_MoveParent,
/*398601*/                OPC_MoveParent,
/*398602*/                OPC_RecordChild1, // #3 = $src1
/*398603*/                OPC_MoveParent,
/*398604*/                OPC_MoveChild2,
/*398605*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398608*/                OPC_MoveChild0,
/*398609*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398612*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398614*/                OPC_CheckType, MVT::v8i32,
/*398616*/                OPC_MoveParent,
/*398617*/                OPC_MoveParent,
/*398618*/                OPC_CheckType, MVT::v8f32,
/*398620*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*398622*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398625*/                OPC_EmitMergeInputChains1_1,
/*398626*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMULPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398639*/              0, // EndSwitchType
/*398640*/            /*Scope*/ 79, /*->398720*/
/*398641*/              OPC_RecordChild0, // #1 = $src1
/*398642*/              OPC_MoveChild1,
/*398643*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398646*/              OPC_RecordMemRef,
/*398647*/              OPC_RecordNode, // #2 = 'ld' chained node
/*398648*/              OPC_CheckFoldableChainNode,
/*398649*/              OPC_RecordChild1, // #3 = $src2
/*398650*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398652*/              OPC_CheckPredicate, 9, // Predicate_load
/*398654*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*398656*/              OPC_MoveParent,
/*398657*/              OPC_MoveParent,
/*398658*/              OPC_MoveChild2,
/*398659*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398662*/              OPC_MoveChild0,
/*398663*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398666*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398668*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->398694
/*398671*/                OPC_MoveParent,
/*398672*/                OPC_MoveParent,
/*398673*/                OPC_CheckType, MVT::v8f64,
/*398675*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*398677*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398680*/                OPC_EmitMergeInputChains1_2,
/*398681*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMULPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398694*/              /*SwitchType*/ 23, MVT::v8i32,// ->398719
/*398696*/                OPC_MoveParent,
/*398697*/                OPC_MoveParent,
/*398698*/                OPC_CheckType, MVT::v8f32,
/*398700*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*398702*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398705*/                OPC_EmitMergeInputChains1_2,
/*398706*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMULPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398719*/              0, // EndSwitchType
/*398720*/            /*Scope*/ 79, /*->398800*/
/*398721*/              OPC_MoveChild0,
/*398722*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398725*/              OPC_RecordMemRef,
/*398726*/              OPC_RecordNode, // #1 = 'ld' chained node
/*398727*/              OPC_CheckFoldableChainNode,
/*398728*/              OPC_RecordChild1, // #2 = $src2
/*398729*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398731*/              OPC_CheckPredicate, 9, // Predicate_load
/*398733*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*398735*/              OPC_MoveParent,
/*398736*/              OPC_RecordChild1, // #3 = $src1
/*398737*/              OPC_MoveParent,
/*398738*/              OPC_MoveChild2,
/*398739*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398742*/              OPC_MoveChild0,
/*398743*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398746*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398748*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->398774
/*398751*/                OPC_MoveParent,
/*398752*/                OPC_MoveParent,
/*398753*/                OPC_CheckType, MVT::v8f64,
/*398755*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*398757*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398760*/                OPC_EmitMergeInputChains1_1,
/*398761*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMULPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398774*/              /*SwitchType*/ 23, MVT::v8i32,// ->398799
/*398776*/                OPC_MoveParent,
/*398777*/                OPC_MoveParent,
/*398778*/                OPC_CheckType, MVT::v8f32,
/*398780*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*398782*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398785*/                OPC_EmitMergeInputChains1_1,
/*398786*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMULPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398799*/              0, // EndSwitchType
/*398800*/            0, /*End of Scope*/
/*398801*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(ISD::FSUB),// ->398983
/*398805*/            OPC_RecordChild0, // #1 = $src1
/*398806*/            OPC_MoveChild1,
/*398807*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->398905
/*398811*/              OPC_MoveChild0,
/*398812*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398815*/              OPC_RecordMemRef,
/*398816*/              OPC_RecordNode, // #2 = 'ld' chained node
/*398817*/              OPC_CheckFoldableChainNode,
/*398818*/              OPC_RecordChild1, // #3 = $src2
/*398819*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398821*/              OPC_CheckPredicate, 9, // Predicate_load
/*398823*/              OPC_SwitchType /*2 cases */, 38, MVT::f64,// ->398864
/*398826*/                OPC_MoveParent,
/*398827*/                OPC_MoveParent,
/*398828*/                OPC_MoveParent,
/*398829*/                OPC_MoveChild2,
/*398830*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398833*/                OPC_MoveChild0,
/*398834*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398837*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398839*/                OPC_CheckType, MVT::v16i32,
/*398841*/                OPC_MoveParent,
/*398842*/                OPC_MoveParent,
/*398843*/                OPC_CheckType, MVT::v8f64,
/*398845*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*398847*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398850*/                OPC_EmitMergeInputChains1_2,
/*398851*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSUBPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398864*/              /*SwitchType*/ 38, MVT::f32,// ->398904
/*398866*/                OPC_MoveParent,
/*398867*/                OPC_MoveParent,
/*398868*/                OPC_MoveParent,
/*398869*/                OPC_MoveChild2,
/*398870*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398873*/                OPC_MoveChild0,
/*398874*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398877*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398879*/                OPC_CheckType, MVT::v8i32,
/*398881*/                OPC_MoveParent,
/*398882*/                OPC_MoveParent,
/*398883*/                OPC_CheckType, MVT::v8f32,
/*398885*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*398887*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398890*/                OPC_EmitMergeInputChains1_2,
/*398891*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSUBPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398904*/              0, // EndSwitchType
/*398905*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->398982
/*398908*/              OPC_RecordMemRef,
/*398909*/              OPC_RecordNode, // #2 = 'ld' chained node
/*398910*/              OPC_CheckFoldableChainNode,
/*398911*/              OPC_RecordChild1, // #3 = $src2
/*398912*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398914*/              OPC_CheckPredicate, 9, // Predicate_load
/*398916*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*398918*/              OPC_MoveParent,
/*398919*/              OPC_MoveParent,
/*398920*/              OPC_MoveChild2,
/*398921*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*398924*/              OPC_MoveChild0,
/*398925*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*398928*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*398930*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->398956
/*398933*/                OPC_MoveParent,
/*398934*/                OPC_MoveParent,
/*398935*/                OPC_CheckType, MVT::v8f64,
/*398937*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*398939*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398942*/                OPC_EmitMergeInputChains1_2,
/*398943*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VSUBPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398956*/              /*SwitchType*/ 23, MVT::v8i32,// ->398981
/*398958*/                OPC_MoveParent,
/*398959*/                OPC_MoveParent,
/*398960*/                OPC_CheckType, MVT::v8f32,
/*398962*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*398964*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398967*/                OPC_EmitMergeInputChains1_2,
/*398968*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VSUBPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398981*/              0, // EndSwitchType
/*398982*/            0, // EndSwitchOpcode
/*398983*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(ISD::FDIV),// ->399165
/*398987*/            OPC_RecordChild0, // #1 = $src1
/*398988*/            OPC_MoveChild1,
/*398989*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->399087
/*398993*/              OPC_MoveChild0,
/*398994*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398997*/              OPC_RecordMemRef,
/*398998*/              OPC_RecordNode, // #2 = 'ld' chained node
/*398999*/              OPC_CheckFoldableChainNode,
/*399000*/              OPC_RecordChild1, // #3 = $src2
/*399001*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399003*/              OPC_CheckPredicate, 9, // Predicate_load
/*399005*/              OPC_SwitchType /*2 cases */, 38, MVT::f64,// ->399046
/*399008*/                OPC_MoveParent,
/*399009*/                OPC_MoveParent,
/*399010*/                OPC_MoveParent,
/*399011*/                OPC_MoveChild2,
/*399012*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399015*/                OPC_MoveChild0,
/*399016*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399019*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399021*/                OPC_CheckType, MVT::v16i32,
/*399023*/                OPC_MoveParent,
/*399024*/                OPC_MoveParent,
/*399025*/                OPC_CheckType, MVT::v8f64,
/*399027*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*399029*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399032*/                OPC_EmitMergeInputChains1_2,
/*399033*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VDIVPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399046*/              /*SwitchType*/ 38, MVT::f32,// ->399086
/*399048*/                OPC_MoveParent,
/*399049*/                OPC_MoveParent,
/*399050*/                OPC_MoveParent,
/*399051*/                OPC_MoveChild2,
/*399052*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399055*/                OPC_MoveChild0,
/*399056*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399059*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399061*/                OPC_CheckType, MVT::v8i32,
/*399063*/                OPC_MoveParent,
/*399064*/                OPC_MoveParent,
/*399065*/                OPC_CheckType, MVT::v8f32,
/*399067*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*399069*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399072*/                OPC_EmitMergeInputChains1_2,
/*399073*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VDIVPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399086*/              0, // EndSwitchType
/*399087*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->399164
/*399090*/              OPC_RecordMemRef,
/*399091*/              OPC_RecordNode, // #2 = 'ld' chained node
/*399092*/              OPC_CheckFoldableChainNode,
/*399093*/              OPC_RecordChild1, // #3 = $src2
/*399094*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399096*/              OPC_CheckPredicate, 9, // Predicate_load
/*399098*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*399100*/              OPC_MoveParent,
/*399101*/              OPC_MoveParent,
/*399102*/              OPC_MoveChild2,
/*399103*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399106*/              OPC_MoveChild0,
/*399107*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399110*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399112*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->399138
/*399115*/                OPC_MoveParent,
/*399116*/                OPC_MoveParent,
/*399117*/                OPC_CheckType, MVT::v8f64,
/*399119*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*399121*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399124*/                OPC_EmitMergeInputChains1_2,
/*399125*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VDIVPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399138*/              /*SwitchType*/ 23, MVT::v8i32,// ->399163
/*399140*/                OPC_MoveParent,
/*399141*/                OPC_MoveParent,
/*399142*/                OPC_CheckType, MVT::v8f32,
/*399144*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*399146*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399149*/                OPC_EmitMergeInputChains1_2,
/*399150*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VDIVPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399163*/              0, // EndSwitchType
/*399164*/            0, // EndSwitchOpcode
/*399165*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::FMIN),// ->399347
/*399169*/            OPC_RecordChild0, // #1 = $src1
/*399170*/            OPC_MoveChild1,
/*399171*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->399269
/*399175*/              OPC_MoveChild0,
/*399176*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*399179*/              OPC_RecordMemRef,
/*399180*/              OPC_RecordNode, // #2 = 'ld' chained node
/*399181*/              OPC_CheckFoldableChainNode,
/*399182*/              OPC_RecordChild1, // #3 = $src2
/*399183*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399185*/              OPC_CheckPredicate, 9, // Predicate_load
/*399187*/              OPC_SwitchType /*2 cases */, 38, MVT::f64,// ->399228
/*399190*/                OPC_MoveParent,
/*399191*/                OPC_MoveParent,
/*399192*/                OPC_MoveParent,
/*399193*/                OPC_MoveChild2,
/*399194*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399197*/                OPC_MoveChild0,
/*399198*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399201*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399203*/                OPC_CheckType, MVT::v16i32,
/*399205*/                OPC_MoveParent,
/*399206*/                OPC_MoveParent,
/*399207*/                OPC_CheckType, MVT::v8f64,
/*399209*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*399211*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399214*/                OPC_EmitMergeInputChains1_2,
/*399215*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399228*/              /*SwitchType*/ 38, MVT::f32,// ->399268
/*399230*/                OPC_MoveParent,
/*399231*/                OPC_MoveParent,
/*399232*/                OPC_MoveParent,
/*399233*/                OPC_MoveChild2,
/*399234*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399237*/                OPC_MoveChild0,
/*399238*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399241*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399243*/                OPC_CheckType, MVT::v8i32,
/*399245*/                OPC_MoveParent,
/*399246*/                OPC_MoveParent,
/*399247*/                OPC_CheckType, MVT::v8f32,
/*399249*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*399251*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399254*/                OPC_EmitMergeInputChains1_2,
/*399255*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399268*/              0, // EndSwitchType
/*399269*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->399346
/*399272*/              OPC_RecordMemRef,
/*399273*/              OPC_RecordNode, // #2 = 'ld' chained node
/*399274*/              OPC_CheckFoldableChainNode,
/*399275*/              OPC_RecordChild1, // #3 = $src2
/*399276*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399278*/              OPC_CheckPredicate, 9, // Predicate_load
/*399280*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*399282*/              OPC_MoveParent,
/*399283*/              OPC_MoveParent,
/*399284*/              OPC_MoveChild2,
/*399285*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399288*/              OPC_MoveChild0,
/*399289*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399292*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399294*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->399320
/*399297*/                OPC_MoveParent,
/*399298*/                OPC_MoveParent,
/*399299*/                OPC_CheckType, MVT::v8f64,
/*399301*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*399303*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399306*/                OPC_EmitMergeInputChains1_2,
/*399307*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399320*/              /*SwitchType*/ 23, MVT::v8i32,// ->399345
/*399322*/                OPC_MoveParent,
/*399323*/                OPC_MoveParent,
/*399324*/                OPC_CheckType, MVT::v8f32,
/*399326*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*399328*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399331*/                OPC_EmitMergeInputChains1_2,
/*399332*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399345*/              0, // EndSwitchType
/*399346*/            0, // EndSwitchOpcode
/*399347*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::FMAX),// ->399529
/*399351*/            OPC_RecordChild0, // #1 = $src1
/*399352*/            OPC_MoveChild1,
/*399353*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->399451
/*399357*/              OPC_MoveChild0,
/*399358*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*399361*/              OPC_RecordMemRef,
/*399362*/              OPC_RecordNode, // #2 = 'ld' chained node
/*399363*/              OPC_CheckFoldableChainNode,
/*399364*/              OPC_RecordChild1, // #3 = $src2
/*399365*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399367*/              OPC_CheckPredicate, 9, // Predicate_load
/*399369*/              OPC_SwitchType /*2 cases */, 38, MVT::f64,// ->399410
/*399372*/                OPC_MoveParent,
/*399373*/                OPC_MoveParent,
/*399374*/                OPC_MoveParent,
/*399375*/                OPC_MoveChild2,
/*399376*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399379*/                OPC_MoveChild0,
/*399380*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399383*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399385*/                OPC_CheckType, MVT::v16i32,
/*399387*/                OPC_MoveParent,
/*399388*/                OPC_MoveParent,
/*399389*/                OPC_CheckType, MVT::v8f64,
/*399391*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*399393*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399396*/                OPC_EmitMergeInputChains1_2,
/*399397*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399410*/              /*SwitchType*/ 38, MVT::f32,// ->399450
/*399412*/                OPC_MoveParent,
/*399413*/                OPC_MoveParent,
/*399414*/                OPC_MoveParent,
/*399415*/                OPC_MoveChild2,
/*399416*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399419*/                OPC_MoveChild0,
/*399420*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399423*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399425*/                OPC_CheckType, MVT::v8i32,
/*399427*/                OPC_MoveParent,
/*399428*/                OPC_MoveParent,
/*399429*/                OPC_CheckType, MVT::v8f32,
/*399431*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*399433*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399436*/                OPC_EmitMergeInputChains1_2,
/*399437*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399450*/              0, // EndSwitchType
/*399451*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->399528
/*399454*/              OPC_RecordMemRef,
/*399455*/              OPC_RecordNode, // #2 = 'ld' chained node
/*399456*/              OPC_CheckFoldableChainNode,
/*399457*/              OPC_RecordChild1, // #3 = $src2
/*399458*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399460*/              OPC_CheckPredicate, 9, // Predicate_load
/*399462*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*399464*/              OPC_MoveParent,
/*399465*/              OPC_MoveParent,
/*399466*/              OPC_MoveChild2,
/*399467*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399470*/              OPC_MoveChild0,
/*399471*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399474*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399476*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->399502
/*399479*/                OPC_MoveParent,
/*399480*/                OPC_MoveParent,
/*399481*/                OPC_CheckType, MVT::v8f64,
/*399483*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*399485*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399488*/                OPC_EmitMergeInputChains1_2,
/*399489*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399502*/              /*SwitchType*/ 23, MVT::v8i32,// ->399527
/*399504*/                OPC_MoveParent,
/*399505*/                OPC_MoveParent,
/*399506*/                OPC_CheckType, MVT::v8f32,
/*399508*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*399510*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399513*/                OPC_EmitMergeInputChains1_2,
/*399514*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399527*/              0, // EndSwitchType
/*399528*/            0, // EndSwitchOpcode
/*399529*/          /*SwitchOpcode*/ 107|128,2/*363*/, TARGET_VAL(X86ISD::FMINC),// ->399896
/*399533*/            OPC_Scope, 99, /*->399634*/ // 4 children in Scope
/*399535*/              OPC_RecordChild0, // #1 = $src1
/*399536*/              OPC_MoveChild1,
/*399537*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*399540*/              OPC_MoveChild0,
/*399541*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*399544*/              OPC_RecordMemRef,
/*399545*/              OPC_RecordNode, // #2 = 'ld' chained node
/*399546*/              OPC_CheckFoldableChainNode,
/*399547*/              OPC_RecordChild1, // #3 = $src2
/*399548*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399550*/              OPC_CheckPredicate, 9, // Predicate_load
/*399552*/              OPC_SwitchType /*2 cases */, 38, MVT::f64,// ->399593
/*399555*/                OPC_MoveParent,
/*399556*/                OPC_MoveParent,
/*399557*/                OPC_MoveParent,
/*399558*/                OPC_MoveChild2,
/*399559*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399562*/                OPC_MoveChild0,
/*399563*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399566*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399568*/                OPC_CheckType, MVT::v16i32,
/*399570*/                OPC_MoveParent,
/*399571*/                OPC_MoveParent,
/*399572*/                OPC_CheckType, MVT::v8f64,
/*399574*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*399576*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399579*/                OPC_EmitMergeInputChains1_2,
/*399580*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINCPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399593*/              /*SwitchType*/ 38, MVT::f32,// ->399633
/*399595*/                OPC_MoveParent,
/*399596*/                OPC_MoveParent,
/*399597*/                OPC_MoveParent,
/*399598*/                OPC_MoveChild2,
/*399599*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399602*/                OPC_MoveChild0,
/*399603*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399606*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399608*/                OPC_CheckType, MVT::v8i32,
/*399610*/                OPC_MoveParent,
/*399611*/                OPC_MoveParent,
/*399612*/                OPC_CheckType, MVT::v8f32,
/*399614*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*399616*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399619*/                OPC_EmitMergeInputChains1_2,
/*399620*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINCPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399633*/              0, // EndSwitchType
/*399634*/            /*Scope*/ 100, /*->399735*/
/*399635*/              OPC_MoveChild0,
/*399636*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*399639*/              OPC_MoveChild0,
/*399640*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*399643*/              OPC_RecordMemRef,
/*399644*/              OPC_RecordNode, // #1 = 'ld' chained node
/*399645*/              OPC_CheckFoldableChainNode,
/*399646*/              OPC_RecordChild1, // #2 = $src2
/*399647*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399649*/              OPC_CheckPredicate, 9, // Predicate_load
/*399651*/              OPC_SwitchType /*2 cases */, 39, MVT::f64,// ->399693
/*399654*/                OPC_MoveParent,
/*399655*/                OPC_MoveParent,
/*399656*/                OPC_RecordChild1, // #3 = $src1
/*399657*/                OPC_MoveParent,
/*399658*/                OPC_MoveChild2,
/*399659*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399662*/                OPC_MoveChild0,
/*399663*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399666*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399668*/                OPC_CheckType, MVT::v16i32,
/*399670*/                OPC_MoveParent,
/*399671*/                OPC_MoveParent,
/*399672*/                OPC_CheckType, MVT::v8f64,
/*399674*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*399676*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399679*/                OPC_EmitMergeInputChains1_1,
/*399680*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINCPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399693*/              /*SwitchType*/ 39, MVT::f32,// ->399734
/*399695*/                OPC_MoveParent,
/*399696*/                OPC_MoveParent,
/*399697*/                OPC_RecordChild1, // #3 = $src1
/*399698*/                OPC_MoveParent,
/*399699*/                OPC_MoveChild2,
/*399700*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399703*/                OPC_MoveChild0,
/*399704*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399707*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399709*/                OPC_CheckType, MVT::v8i32,
/*399711*/                OPC_MoveParent,
/*399712*/                OPC_MoveParent,
/*399713*/                OPC_CheckType, MVT::v8f32,
/*399715*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*399717*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399720*/                OPC_EmitMergeInputChains1_1,
/*399721*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMINCPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399734*/              0, // EndSwitchType
/*399735*/            /*Scope*/ 79, /*->399815*/
/*399736*/              OPC_RecordChild0, // #1 = $src1
/*399737*/              OPC_MoveChild1,
/*399738*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*399741*/              OPC_RecordMemRef,
/*399742*/              OPC_RecordNode, // #2 = 'ld' chained node
/*399743*/              OPC_CheckFoldableChainNode,
/*399744*/              OPC_RecordChild1, // #3 = $src2
/*399745*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399747*/              OPC_CheckPredicate, 9, // Predicate_load
/*399749*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*399751*/              OPC_MoveParent,
/*399752*/              OPC_MoveParent,
/*399753*/              OPC_MoveChild2,
/*399754*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399757*/              OPC_MoveChild0,
/*399758*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399761*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399763*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->399789
/*399766*/                OPC_MoveParent,
/*399767*/                OPC_MoveParent,
/*399768*/                OPC_CheckType, MVT::v8f64,
/*399770*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*399772*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399775*/                OPC_EmitMergeInputChains1_2,
/*399776*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINCPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399789*/              /*SwitchType*/ 23, MVT::v8i32,// ->399814
/*399791*/                OPC_MoveParent,
/*399792*/                OPC_MoveParent,
/*399793*/                OPC_CheckType, MVT::v8f32,
/*399795*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*399797*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399800*/                OPC_EmitMergeInputChains1_2,
/*399801*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINCPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399814*/              0, // EndSwitchType
/*399815*/            /*Scope*/ 79, /*->399895*/
/*399816*/              OPC_MoveChild0,
/*399817*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*399820*/              OPC_RecordMemRef,
/*399821*/              OPC_RecordNode, // #1 = 'ld' chained node
/*399822*/              OPC_CheckFoldableChainNode,
/*399823*/              OPC_RecordChild1, // #2 = $src2
/*399824*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399826*/              OPC_CheckPredicate, 9, // Predicate_load
/*399828*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*399830*/              OPC_MoveParent,
/*399831*/              OPC_RecordChild1, // #3 = $src1
/*399832*/              OPC_MoveParent,
/*399833*/              OPC_MoveChild2,
/*399834*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399837*/              OPC_MoveChild0,
/*399838*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399841*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399843*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->399869
/*399846*/                OPC_MoveParent,
/*399847*/                OPC_MoveParent,
/*399848*/                OPC_CheckType, MVT::v8f64,
/*399850*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*399852*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399855*/                OPC_EmitMergeInputChains1_1,
/*399856*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINCPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399869*/              /*SwitchType*/ 23, MVT::v8i32,// ->399894
/*399871*/                OPC_MoveParent,
/*399872*/                OPC_MoveParent,
/*399873*/                OPC_CheckType, MVT::v8f32,
/*399875*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*399877*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399880*/                OPC_EmitMergeInputChains1_1,
/*399881*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMINCPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399894*/              0, // EndSwitchType
/*399895*/            0, /*End of Scope*/
/*399896*/          /*SwitchOpcode*/ 107|128,2/*363*/, TARGET_VAL(X86ISD::FMAXC),// ->400263
/*399900*/            OPC_Scope, 99, /*->400001*/ // 4 children in Scope
/*399902*/              OPC_RecordChild0, // #1 = $src1
/*399903*/              OPC_MoveChild1,
/*399904*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*399907*/              OPC_MoveChild0,
/*399908*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*399911*/              OPC_RecordMemRef,
/*399912*/              OPC_RecordNode, // #2 = 'ld' chained node
/*399913*/              OPC_CheckFoldableChainNode,
/*399914*/              OPC_RecordChild1, // #3 = $src2
/*399915*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399917*/              OPC_CheckPredicate, 9, // Predicate_load
/*399919*/              OPC_SwitchType /*2 cases */, 38, MVT::f64,// ->399960
/*399922*/                OPC_MoveParent,
/*399923*/                OPC_MoveParent,
/*399924*/                OPC_MoveParent,
/*399925*/                OPC_MoveChild2,
/*399926*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399929*/                OPC_MoveChild0,
/*399930*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399933*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399935*/                OPC_CheckType, MVT::v16i32,
/*399937*/                OPC_MoveParent,
/*399938*/                OPC_MoveParent,
/*399939*/                OPC_CheckType, MVT::v8f64,
/*399941*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*399943*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399946*/                OPC_EmitMergeInputChains1_2,
/*399947*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXCPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399960*/              /*SwitchType*/ 38, MVT::f32,// ->400000
/*399962*/                OPC_MoveParent,
/*399963*/                OPC_MoveParent,
/*399964*/                OPC_MoveParent,
/*399965*/                OPC_MoveChild2,
/*399966*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*399969*/                OPC_MoveChild0,
/*399970*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*399973*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*399975*/                OPC_CheckType, MVT::v8i32,
/*399977*/                OPC_MoveParent,
/*399978*/                OPC_MoveParent,
/*399979*/                OPC_CheckType, MVT::v8f32,
/*399981*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*399983*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399986*/                OPC_EmitMergeInputChains1_2,
/*399987*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXCPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400000*/              0, // EndSwitchType
/*400001*/            /*Scope*/ 100, /*->400102*/
/*400002*/              OPC_MoveChild0,
/*400003*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*400006*/              OPC_MoveChild0,
/*400007*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*400010*/              OPC_RecordMemRef,
/*400011*/              OPC_RecordNode, // #1 = 'ld' chained node
/*400012*/              OPC_CheckFoldableChainNode,
/*400013*/              OPC_RecordChild1, // #2 = $src2
/*400014*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400016*/              OPC_CheckPredicate, 9, // Predicate_load
/*400018*/              OPC_SwitchType /*2 cases */, 39, MVT::f64,// ->400060
/*400021*/                OPC_MoveParent,
/*400022*/                OPC_MoveParent,
/*400023*/                OPC_RecordChild1, // #3 = $src1
/*400024*/                OPC_MoveParent,
/*400025*/                OPC_MoveChild2,
/*400026*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400029*/                OPC_MoveChild0,
/*400030*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400033*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400035*/                OPC_CheckType, MVT::v16i32,
/*400037*/                OPC_MoveParent,
/*400038*/                OPC_MoveParent,
/*400039*/                OPC_CheckType, MVT::v8f64,
/*400041*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*400043*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400046*/                OPC_EmitMergeInputChains1_1,
/*400047*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXCPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400060*/              /*SwitchType*/ 39, MVT::f32,// ->400101
/*400062*/                OPC_MoveParent,
/*400063*/                OPC_MoveParent,
/*400064*/                OPC_RecordChild1, // #3 = $src1
/*400065*/                OPC_MoveParent,
/*400066*/                OPC_MoveChild2,
/*400067*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400070*/                OPC_MoveChild0,
/*400071*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400074*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400076*/                OPC_CheckType, MVT::v8i32,
/*400078*/                OPC_MoveParent,
/*400079*/                OPC_MoveParent,
/*400080*/                OPC_CheckType, MVT::v8f32,
/*400082*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*400084*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400087*/                OPC_EmitMergeInputChains1_1,
/*400088*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VMAXCPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400101*/              0, // EndSwitchType
/*400102*/            /*Scope*/ 79, /*->400182*/
/*400103*/              OPC_RecordChild0, // #1 = $src1
/*400104*/              OPC_MoveChild1,
/*400105*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*400108*/              OPC_RecordMemRef,
/*400109*/              OPC_RecordNode, // #2 = 'ld' chained node
/*400110*/              OPC_CheckFoldableChainNode,
/*400111*/              OPC_RecordChild1, // #3 = $src2
/*400112*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400114*/              OPC_CheckPredicate, 9, // Predicate_load
/*400116*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*400118*/              OPC_MoveParent,
/*400119*/              OPC_MoveParent,
/*400120*/              OPC_MoveChild2,
/*400121*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400124*/              OPC_MoveChild0,
/*400125*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400128*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400130*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->400156
/*400133*/                OPC_MoveParent,
/*400134*/                OPC_MoveParent,
/*400135*/                OPC_CheckType, MVT::v8f64,
/*400137*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*400139*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400142*/                OPC_EmitMergeInputChains1_2,
/*400143*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXCPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400156*/              /*SwitchType*/ 23, MVT::v8i32,// ->400181
/*400158*/                OPC_MoveParent,
/*400159*/                OPC_MoveParent,
/*400160*/                OPC_CheckType, MVT::v8f32,
/*400162*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*400164*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400167*/                OPC_EmitMergeInputChains1_2,
/*400168*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXCPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400181*/              0, // EndSwitchType
/*400182*/            /*Scope*/ 79, /*->400262*/
/*400183*/              OPC_MoveChild0,
/*400184*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*400187*/              OPC_RecordMemRef,
/*400188*/              OPC_RecordNode, // #1 = 'ld' chained node
/*400189*/              OPC_CheckFoldableChainNode,
/*400190*/              OPC_RecordChild1, // #2 = $src2
/*400191*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400193*/              OPC_CheckPredicate, 9, // Predicate_load
/*400195*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*400197*/              OPC_MoveParent,
/*400198*/              OPC_RecordChild1, // #3 = $src1
/*400199*/              OPC_MoveParent,
/*400200*/              OPC_MoveChild2,
/*400201*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400204*/              OPC_MoveChild0,
/*400205*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400208*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400210*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->400236
/*400213*/                OPC_MoveParent,
/*400214*/                OPC_MoveParent,
/*400215*/                OPC_CheckType, MVT::v8f64,
/*400217*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*400219*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400222*/                OPC_EmitMergeInputChains1_1,
/*400223*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXCPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400236*/              /*SwitchType*/ 23, MVT::v8i32,// ->400261
/*400238*/                OPC_MoveParent,
/*400239*/                OPC_MoveParent,
/*400240*/                OPC_CheckType, MVT::v8f32,
/*400242*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*400244*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400247*/                OPC_EmitMergeInputChains1_1,
/*400248*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VMAXCPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400261*/              0, // EndSwitchType
/*400262*/            0, /*End of Scope*/
/*400263*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::VPERMV),// ->400445
/*400267*/            OPC_RecordChild0, // #1 = $src1
/*400268*/            OPC_MoveChild1,
/*400269*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->400367
/*400273*/              OPC_MoveChild0,
/*400274*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*400277*/              OPC_RecordMemRef,
/*400278*/              OPC_RecordNode, // #2 = 'ld' chained node
/*400279*/              OPC_CheckFoldableChainNode,
/*400280*/              OPC_RecordChild1, // #3 = $src2
/*400281*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400283*/              OPC_CheckPredicate, 9, // Predicate_load
/*400285*/              OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->400326
/*400288*/                OPC_MoveParent,
/*400289*/                OPC_MoveParent,
/*400290*/                OPC_MoveParent,
/*400291*/                OPC_MoveChild2,
/*400292*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400295*/                OPC_MoveChild0,
/*400296*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400299*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400301*/                OPC_CheckType, MVT::v8i32,
/*400303*/                OPC_MoveParent,
/*400304*/                OPC_MoveParent,
/*400305*/                OPC_CheckType, MVT::v8f32,
/*400307*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*400309*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400312*/                OPC_EmitMergeInputChains1_2,
/*400313*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400326*/              /*SwitchType*/ 38, MVT::f64,// ->400366
/*400328*/                OPC_MoveParent,
/*400329*/                OPC_MoveParent,
/*400330*/                OPC_MoveParent,
/*400331*/                OPC_MoveChild2,
/*400332*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400335*/                OPC_MoveChild0,
/*400336*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400339*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400341*/                OPC_CheckType, MVT::v16i32,
/*400343*/                OPC_MoveParent,
/*400344*/                OPC_MoveParent,
/*400345*/                OPC_CheckType, MVT::v8f64,
/*400347*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*400349*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400352*/                OPC_EmitMergeInputChains1_2,
/*400353*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400366*/              0, // EndSwitchType
/*400367*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->400444
/*400370*/              OPC_RecordMemRef,
/*400371*/              OPC_RecordNode, // #2 = 'ld' chained node
/*400372*/              OPC_CheckFoldableChainNode,
/*400373*/              OPC_RecordChild1, // #3 = $src2
/*400374*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400376*/              OPC_CheckPredicate, 9, // Predicate_load
/*400378*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*400380*/              OPC_MoveParent,
/*400381*/              OPC_MoveParent,
/*400382*/              OPC_MoveChild2,
/*400383*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400386*/              OPC_MoveChild0,
/*400387*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400390*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400392*/              OPC_SwitchType /*2 cases */, 23, MVT::v8i32,// ->400418
/*400395*/                OPC_MoveParent,
/*400396*/                OPC_MoveParent,
/*400397*/                OPC_CheckType, MVT::v8f32,
/*400399*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*400401*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400404*/                OPC_EmitMergeInputChains1_2,
/*400405*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPERMPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400418*/              /*SwitchType*/ 23, MVT::v16i32,// ->400443
/*400420*/                OPC_MoveParent,
/*400421*/                OPC_MoveParent,
/*400422*/                OPC_CheckType, MVT::v8f64,
/*400424*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*400426*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400429*/                OPC_EmitMergeInputChains1_2,
/*400430*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPERMPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400443*/              0, // EndSwitchType
/*400444*/            0, // EndSwitchOpcode
/*400445*/          /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VPERMI),// ->400560
/*400448*/            OPC_MoveChild0,
/*400449*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->400508
/*400453*/              OPC_RecordMemRef,
/*400454*/              OPC_RecordNode, // #1 = 'ld' chained node
/*400455*/              OPC_CheckFoldableChainNode,
/*400456*/              OPC_RecordChild1, // #2 = $src1
/*400457*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400459*/              OPC_CheckPredicate, 9, // Predicate_load
/*400461*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*400463*/              OPC_MoveParent,
/*400464*/              OPC_RecordChild1, // #3 = $src2
/*400465*/              OPC_MoveChild1,
/*400466*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*400469*/              OPC_MoveParent,
/*400470*/              OPC_MoveParent,
/*400471*/              OPC_MoveChild2,
/*400472*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400475*/              OPC_MoveChild0,
/*400476*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400479*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400481*/              OPC_CheckType, MVT::v16i32,
/*400483*/              OPC_MoveParent,
/*400484*/              OPC_MoveParent,
/*400485*/              OPC_CheckType, MVT::v8f64,
/*400487*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*400489*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*400492*/              OPC_EmitMergeInputChains1_1,
/*400493*/              OPC_EmitConvertToTarget, 3,
/*400495*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMPDZmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*400508*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->400559
/*400511*/              OPC_MoveChild0,
/*400512*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*400515*/              OPC_RecordMemRef,
/*400516*/              OPC_RecordNode, // #1 = 'ld' chained node
/*400517*/              OPC_CheckFoldableChainNode,
/*400518*/              OPC_RecordChild1, // #2 = $src1
/*400519*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400521*/              OPC_CheckPredicate, 9, // Predicate_load
/*400523*/              OPC_CheckType, MVT::f64,
/*400525*/              OPC_MoveParent,
/*400526*/              OPC_MoveParent,
/*400527*/              OPC_RecordChild1, // #3 = $src2
/*400528*/              OPC_MoveChild1,
/*400529*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*400532*/              OPC_MoveParent,
/*400533*/              OPC_MoveParent,
/*400534*/              OPC_RecordChild2, // #4 = $src0
/*400535*/              OPC_CheckType, MVT::v8f64,
/*400537*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*400539*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*400542*/              OPC_EmitMergeInputChains1_1,
/*400543*/              OPC_EmitConvertToTarget, 3,
/*400545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 34
                        // Dst: (VPERMPDZmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*400559*/            0, // EndSwitchOpcode
/*400560*/          /*SwitchOpcode*/ 82|128,1/*210*/, TARGET_VAL(X86ISD::VPERMILPV),// ->400774
/*400564*/            OPC_RecordChild0, // #1 = $src1
/*400565*/            OPC_MoveChild1,
/*400566*/            OPC_SwitchOpcode /*3 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->400624
/*400570*/              OPC_MoveChild0,
/*400571*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*400574*/              OPC_RecordMemRef,
/*400575*/              OPC_RecordNode, // #2 = 'ld' chained node
/*400576*/              OPC_CheckFoldableChainNode,
/*400577*/              OPC_RecordChild1, // #3 = $src2
/*400578*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400580*/              OPC_CheckPredicate, 9, // Predicate_load
/*400582*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*400584*/              OPC_CheckType, MVT::v4i64,
/*400586*/              OPC_MoveParent,
/*400587*/              OPC_MoveParent,
/*400588*/              OPC_MoveParent,
/*400589*/              OPC_MoveChild2,
/*400590*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400593*/              OPC_MoveChild0,
/*400594*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400597*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400599*/              OPC_CheckType, MVT::v8i32,
/*400601*/              OPC_MoveParent,
/*400602*/              OPC_MoveParent,
/*400603*/              OPC_CheckType, MVT::v8f32,
/*400605*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*400607*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400610*/              OPC_EmitMergeInputChains1_2,
/*400611*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMILPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400624*/            /*SwitchOpcode*/ 96, TARGET_VAL(X86ISD::VBROADCAST),// ->400723
/*400627*/              OPC_MoveChild0,
/*400628*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*400631*/              OPC_RecordMemRef,
/*400632*/              OPC_RecordNode, // #2 = 'ld' chained node
/*400633*/              OPC_CheckFoldableChainNode,
/*400634*/              OPC_RecordChild1, // #3 = $src2
/*400635*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400637*/              OPC_SwitchType /*2 cases */, 40, MVT::i32,// ->400680
/*400640*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*400642*/                OPC_MoveParent,
/*400643*/                OPC_MoveParent,
/*400644*/                OPC_MoveParent,
/*400645*/                OPC_MoveChild2,
/*400646*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400649*/                OPC_MoveChild0,
/*400650*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400653*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400655*/                OPC_CheckType, MVT::v8i32,
/*400657*/                OPC_MoveParent,
/*400658*/                OPC_MoveParent,
/*400659*/                OPC_CheckType, MVT::v8f32,
/*400661*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*400663*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400666*/                OPC_EmitMergeInputChains1_2,
/*400667*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMILPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400680*/              /*SwitchType*/ 40, MVT::i64,// ->400722
/*400682*/                OPC_CheckPredicate, 9, // Predicate_load
/*400684*/                OPC_MoveParent,
/*400685*/                OPC_MoveParent,
/*400686*/                OPC_MoveParent,
/*400687*/                OPC_MoveChild2,
/*400688*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400691*/                OPC_MoveChild0,
/*400692*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400695*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400697*/                OPC_CheckType, MVT::v16i32,
/*400699*/                OPC_MoveParent,
/*400700*/                OPC_MoveParent,
/*400701*/                OPC_CheckType, MVT::v8f64,
/*400703*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*400705*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400708*/                OPC_EmitMergeInputChains1_2,
/*400709*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMILPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400722*/              0, // EndSwitchType
/*400723*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->400773
/*400726*/              OPC_RecordMemRef,
/*400727*/              OPC_RecordNode, // #2 = 'ld' chained node
/*400728*/              OPC_CheckFoldableChainNode,
/*400729*/              OPC_RecordChild1, // #3 = $src2
/*400730*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400732*/              OPC_CheckPredicate, 9, // Predicate_load
/*400734*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*400736*/              OPC_MoveParent,
/*400737*/              OPC_MoveParent,
/*400738*/              OPC_MoveChild2,
/*400739*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400742*/              OPC_MoveChild0,
/*400743*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400746*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400748*/              OPC_CheckType, MVT::v16i32,
/*400750*/              OPC_MoveParent,
/*400751*/              OPC_MoveParent,
/*400752*/              OPC_CheckType, MVT::v8f64,
/*400754*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*400756*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400759*/              OPC_EmitMergeInputChains1_2,
/*400760*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPERMILPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400773*/            0, // EndSwitchOpcode
/*400774*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::VPERMILPI),// ->400957
/*400778*/            OPC_MoveChild0,
/*400779*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::LOAD),// ->400867
/*400783*/              OPC_RecordMemRef,
/*400784*/              OPC_RecordNode, // #1 = 'ld' chained node
/*400785*/              OPC_CheckFoldableChainNode,
/*400786*/              OPC_RecordChild1, // #2 = $src1
/*400787*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400789*/              OPC_CheckPredicate, 9, // Predicate_load
/*400791*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*400793*/              OPC_MoveParent,
/*400794*/              OPC_RecordChild1, // #3 = $src2
/*400795*/              OPC_MoveChild1,
/*400796*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*400799*/              OPC_MoveParent,
/*400800*/              OPC_MoveParent,
/*400801*/              OPC_MoveChild2,
/*400802*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400805*/              OPC_MoveChild0,
/*400806*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400809*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*400811*/              OPC_SwitchType /*2 cases */, 25, MVT::v8i32,// ->400839
/*400814*/                OPC_MoveParent,
/*400815*/                OPC_MoveParent,
/*400816*/                OPC_CheckType, MVT::v8f32,
/*400818*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*400820*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*400823*/                OPC_EmitMergeInputChains1_1,
/*400824*/                OPC_EmitConvertToTarget, 3,
/*400826*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMILPSZ256mikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*400839*/              /*SwitchType*/ 25, MVT::v16i32,// ->400866
/*400841*/                OPC_MoveParent,
/*400842*/                OPC_MoveParent,
/*400843*/                OPC_CheckType, MVT::v8f64,
/*400845*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*400847*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*400850*/                OPC_EmitMergeInputChains1_1,
/*400851*/                OPC_EmitConvertToTarget, 3,
/*400853*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VPERMILPDZmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*400866*/              0, // EndSwitchType
/*400867*/            /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VBROADCAST),// ->400956
/*400870*/              OPC_MoveChild0,
/*400871*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*400874*/              OPC_RecordMemRef,
/*400875*/              OPC_RecordNode, // #1 = 'ld' chained node
/*400876*/              OPC_CheckFoldableChainNode,
/*400877*/              OPC_RecordChild1, // #2 = $src1
/*400878*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400880*/              OPC_CheckPredicate, 9, // Predicate_load
/*400882*/              OPC_SwitchType /*2 cases */, 34, MVT::f32,// ->400919
/*400885*/                OPC_MoveParent,
/*400886*/                OPC_MoveParent,
/*400887*/                OPC_RecordChild1, // #3 = $src2
/*400888*/                OPC_MoveChild1,
/*400889*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*400892*/                OPC_MoveParent,
/*400893*/                OPC_MoveParent,
/*400894*/                OPC_RecordChild2, // #4 = $src0
/*400895*/                OPC_CheckType, MVT::v8f32,
/*400897*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*400899*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*400902*/                OPC_EmitMergeInputChains1_1,
/*400903*/                OPC_EmitConvertToTarget, 3,
/*400905*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 34
                          // Dst: (VPERMILPSZ256mbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*400919*/              /*SwitchType*/ 34, MVT::f64,// ->400955
/*400921*/                OPC_MoveParent,
/*400922*/                OPC_MoveParent,
/*400923*/                OPC_RecordChild1, // #3 = $src2
/*400924*/                OPC_MoveChild1,
/*400925*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*400928*/                OPC_MoveParent,
/*400929*/                OPC_MoveParent,
/*400930*/                OPC_RecordChild2, // #4 = $src0
/*400931*/                OPC_CheckType, MVT::v8f64,
/*400933*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*400935*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*400938*/                OPC_EmitMergeInputChains1_1,
/*400939*/                OPC_EmitConvertToTarget, 3,
/*400941*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 34
                          // Dst: (VPERMILPDZmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*400955*/              0, // EndSwitchType
/*400956*/            0, // EndSwitchOpcode
/*400957*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(ISD::FMA),// ->401538
/*400961*/            OPC_Scope, 84|128,1/*212*/, /*->401176*/ // 4 children in Scope
/*400964*/              OPC_RecordChild0, // #1 = $src2
/*400965*/              OPC_Scope, 105, /*->401072*/ // 2 children in Scope
/*400967*/                OPC_RecordChild1, // #2 = $src1
/*400968*/                OPC_MoveChild2,
/*400969*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*400972*/                OPC_MoveChild0,
/*400973*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*400976*/                OPC_RecordMemRef,
/*400977*/                OPC_RecordNode, // #3 = 'ld' chained node
/*400978*/                OPC_CheckFoldableChainNode,
/*400979*/                OPC_RecordChild1, // #4 = $src3
/*400980*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400982*/                OPC_CheckPredicate, 9, // Predicate_load
/*400984*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->401028
/*400987*/                  OPC_MoveParent,
/*400988*/                  OPC_MoveParent,
/*400989*/                  OPC_MoveParent,
/*400990*/                  OPC_MoveChild2,
/*400991*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*400994*/                  OPC_MoveChild0,
/*400995*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*400998*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401000*/                  OPC_CheckType, MVT::v8i32,
/*401002*/                  OPC_MoveParent,
/*401003*/                  OPC_MoveParent,
/*401004*/                  OPC_CheckType, MVT::v8f32,
/*401006*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401008*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401011*/                  OPC_EmitMergeInputChains, 1, 3, 
/*401014*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADD213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401028*/                /*SwitchType*/ 41, MVT::f64,// ->401071
/*401030*/                  OPC_MoveParent,
/*401031*/                  OPC_MoveParent,
/*401032*/                  OPC_MoveParent,
/*401033*/                  OPC_MoveChild2,
/*401034*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401037*/                  OPC_MoveChild0,
/*401038*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401041*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401043*/                  OPC_CheckType, MVT::v16i32,
/*401045*/                  OPC_MoveParent,
/*401046*/                  OPC_MoveParent,
/*401047*/                  OPC_CheckType, MVT::v8f64,
/*401049*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*401051*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401054*/                  OPC_EmitMergeInputChains, 1, 3, 
/*401057*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADD213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401071*/                0, // EndSwitchType
/*401072*/              /*Scope*/ 102, /*->401175*/
/*401073*/                OPC_MoveChild1,
/*401074*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*401077*/                OPC_MoveChild0,
/*401078*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*401081*/                OPC_RecordMemRef,
/*401082*/                OPC_RecordNode, // #2 = 'ld' chained node
/*401083*/                OPC_CheckFoldableChainNode,
/*401084*/                OPC_RecordChild1, // #3 = $src3
/*401085*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401087*/                OPC_CheckPredicate, 9, // Predicate_load
/*401089*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->401132
/*401092*/                  OPC_MoveParent,
/*401093*/                  OPC_MoveParent,
/*401094*/                  OPC_RecordChild2, // #4 = $src1
/*401095*/                  OPC_MoveParent,
/*401096*/                  OPC_MoveChild2,
/*401097*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401100*/                  OPC_MoveChild0,
/*401101*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401104*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401106*/                  OPC_CheckType, MVT::v8i32,
/*401108*/                  OPC_MoveParent,
/*401109*/                  OPC_MoveParent,
/*401110*/                  OPC_CheckType, MVT::v8f32,
/*401112*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401114*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401117*/                  OPC_EmitMergeInputChains1_2,
/*401118*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADD231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401132*/                /*SwitchType*/ 40, MVT::f64,// ->401174
/*401134*/                  OPC_MoveParent,
/*401135*/                  OPC_MoveParent,
/*401136*/                  OPC_RecordChild2, // #4 = $src1
/*401137*/                  OPC_MoveParent,
/*401138*/                  OPC_MoveChild2,
/*401139*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401142*/                  OPC_MoveChild0,
/*401143*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401146*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401148*/                  OPC_CheckType, MVT::v16i32,
/*401150*/                  OPC_MoveParent,
/*401151*/                  OPC_MoveParent,
/*401152*/                  OPC_CheckType, MVT::v8f64,
/*401154*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*401156*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401159*/                  OPC_EmitMergeInputChains1_2,
/*401160*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADD231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401174*/                0, // EndSwitchType
/*401175*/              0, /*End of Scope*/
/*401176*/            /*Scope*/ 104, /*->401281*/
/*401177*/              OPC_MoveChild0,
/*401178*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*401181*/              OPC_MoveChild0,
/*401182*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*401185*/              OPC_RecordMemRef,
/*401186*/              OPC_RecordNode, // #1 = 'ld' chained node
/*401187*/              OPC_CheckFoldableChainNode,
/*401188*/              OPC_RecordChild1, // #2 = $src3
/*401189*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401191*/              OPC_CheckPredicate, 9, // Predicate_load
/*401193*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->401237
/*401196*/                OPC_MoveParent,
/*401197*/                OPC_MoveParent,
/*401198*/                OPC_RecordChild1, // #3 = $src1
/*401199*/                OPC_RecordChild2, // #4 = $src2
/*401200*/                OPC_MoveParent,
/*401201*/                OPC_MoveChild2,
/*401202*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401205*/                OPC_MoveChild0,
/*401206*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401209*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401211*/                OPC_CheckType, MVT::v8i32,
/*401213*/                OPC_MoveParent,
/*401214*/                OPC_MoveParent,
/*401215*/                OPC_CheckType, MVT::v8f32,
/*401217*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401219*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401222*/                OPC_EmitMergeInputChains1_1,
/*401223*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADD132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401237*/              /*SwitchType*/ 41, MVT::f64,// ->401280
/*401239*/                OPC_MoveParent,
/*401240*/                OPC_MoveParent,
/*401241*/                OPC_RecordChild1, // #3 = $src1
/*401242*/                OPC_RecordChild2, // #4 = $src2
/*401243*/                OPC_MoveParent,
/*401244*/                OPC_MoveChild2,
/*401245*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401248*/                OPC_MoveChild0,
/*401249*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401252*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401254*/                OPC_CheckType, MVT::v16i32,
/*401256*/                OPC_MoveParent,
/*401257*/                OPC_MoveParent,
/*401258*/                OPC_CheckType, MVT::v8f64,
/*401260*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*401262*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401265*/                OPC_EmitMergeInputChains1_1,
/*401266*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADD132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401280*/              0, // EndSwitchType
/*401281*/            /*Scope*/ 43|128,1/*171*/, /*->401454*/
/*401283*/              OPC_RecordChild0, // #1 = $src2
/*401284*/              OPC_Scope, 85, /*->401371*/ // 2 children in Scope
/*401286*/                OPC_RecordChild1, // #2 = $src1
/*401287*/                OPC_MoveChild2,
/*401288*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*401291*/                OPC_RecordMemRef,
/*401292*/                OPC_RecordNode, // #3 = 'ld' chained node
/*401293*/                OPC_CheckFoldableChainNode,
/*401294*/                OPC_RecordChild1, // #4 = $src3
/*401295*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401297*/                OPC_CheckPredicate, 9, // Predicate_load
/*401299*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*401301*/                OPC_MoveParent,
/*401302*/                OPC_MoveParent,
/*401303*/                OPC_MoveChild2,
/*401304*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401307*/                OPC_MoveChild0,
/*401308*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401311*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401313*/                OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->401342
/*401316*/                  OPC_MoveParent,
/*401317*/                  OPC_MoveParent,
/*401318*/                  OPC_CheckType, MVT::v8f32,
/*401320*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401322*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401325*/                  OPC_EmitMergeInputChains, 1, 3, 
/*401328*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADD213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401342*/                /*SwitchType*/ 26, MVT::v16i32,// ->401370
/*401344*/                  OPC_MoveParent,
/*401345*/                  OPC_MoveParent,
/*401346*/                  OPC_CheckType, MVT::v8f64,
/*401348*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*401350*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401353*/                  OPC_EmitMergeInputChains, 1, 3, 
/*401356*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADD213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401370*/                0, // EndSwitchType
/*401371*/              /*Scope*/ 81, /*->401453*/
/*401372*/                OPC_MoveChild1,
/*401373*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*401376*/                OPC_RecordMemRef,
/*401377*/                OPC_RecordNode, // #2 = 'ld' chained node
/*401378*/                OPC_CheckFoldableChainNode,
/*401379*/                OPC_RecordChild1, // #3 = $src3
/*401380*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401382*/                OPC_CheckPredicate, 9, // Predicate_load
/*401384*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*401386*/                OPC_MoveParent,
/*401387*/                OPC_RecordChild2, // #4 = $src1
/*401388*/                OPC_MoveParent,
/*401389*/                OPC_MoveChild2,
/*401390*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401393*/                OPC_MoveChild0,
/*401394*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401397*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401399*/                OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->401426
/*401402*/                  OPC_MoveParent,
/*401403*/                  OPC_MoveParent,
/*401404*/                  OPC_CheckType, MVT::v8f32,
/*401406*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401408*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401411*/                  OPC_EmitMergeInputChains1_2,
/*401412*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADD231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401426*/                /*SwitchType*/ 24, MVT::v16i32,// ->401452
/*401428*/                  OPC_MoveParent,
/*401429*/                  OPC_MoveParent,
/*401430*/                  OPC_CheckType, MVT::v8f64,
/*401432*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*401434*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401437*/                  OPC_EmitMergeInputChains1_2,
/*401438*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADD231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401452*/                0, // EndSwitchType
/*401453*/              0, /*End of Scope*/
/*401454*/            /*Scope*/ 82, /*->401537*/
/*401455*/              OPC_MoveChild0,
/*401456*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*401459*/              OPC_RecordMemRef,
/*401460*/              OPC_RecordNode, // #1 = 'ld' chained node
/*401461*/              OPC_CheckFoldableChainNode,
/*401462*/              OPC_RecordChild1, // #2 = $src3
/*401463*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401465*/              OPC_CheckPredicate, 9, // Predicate_load
/*401467*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*401469*/              OPC_MoveParent,
/*401470*/              OPC_RecordChild1, // #3 = $src1
/*401471*/              OPC_RecordChild2, // #4 = $src2
/*401472*/              OPC_MoveParent,
/*401473*/              OPC_MoveChild2,
/*401474*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401477*/              OPC_MoveChild0,
/*401478*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401481*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401483*/              OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->401510
/*401486*/                OPC_MoveParent,
/*401487*/                OPC_MoveParent,
/*401488*/                OPC_CheckType, MVT::v8f32,
/*401490*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401492*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401495*/                OPC_EmitMergeInputChains1_1,
/*401496*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADD132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401510*/              /*SwitchType*/ 24, MVT::v16i32,// ->401536
/*401512*/                OPC_MoveParent,
/*401513*/                OPC_MoveParent,
/*401514*/                OPC_CheckType, MVT::v8f64,
/*401516*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*401518*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401521*/                OPC_EmitMergeInputChains1_1,
/*401522*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADD132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401536*/              0, // EndSwitchType
/*401537*/            0, /*End of Scope*/
/*401538*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(X86ISD::FMSUB),// ->402119
/*401542*/            OPC_Scope, 84|128,1/*212*/, /*->401757*/ // 4 children in Scope
/*401545*/              OPC_RecordChild0, // #1 = $src2
/*401546*/              OPC_Scope, 105, /*->401653*/ // 2 children in Scope
/*401548*/                OPC_RecordChild1, // #2 = $src1
/*401549*/                OPC_MoveChild2,
/*401550*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*401553*/                OPC_MoveChild0,
/*401554*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*401557*/                OPC_RecordMemRef,
/*401558*/                OPC_RecordNode, // #3 = 'ld' chained node
/*401559*/                OPC_CheckFoldableChainNode,
/*401560*/                OPC_RecordChild1, // #4 = $src3
/*401561*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401563*/                OPC_CheckPredicate, 9, // Predicate_load
/*401565*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->401609
/*401568*/                  OPC_MoveParent,
/*401569*/                  OPC_MoveParent,
/*401570*/                  OPC_MoveParent,
/*401571*/                  OPC_MoveChild2,
/*401572*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401575*/                  OPC_MoveChild0,
/*401576*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401579*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401581*/                  OPC_CheckType, MVT::v8i32,
/*401583*/                  OPC_MoveParent,
/*401584*/                  OPC_MoveParent,
/*401585*/                  OPC_CheckType, MVT::v8f32,
/*401587*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401589*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401592*/                  OPC_EmitMergeInputChains, 1, 3, 
/*401595*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUB213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401609*/                /*SwitchType*/ 41, MVT::f64,// ->401652
/*401611*/                  OPC_MoveParent,
/*401612*/                  OPC_MoveParent,
/*401613*/                  OPC_MoveParent,
/*401614*/                  OPC_MoveChild2,
/*401615*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401618*/                  OPC_MoveChild0,
/*401619*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401622*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401624*/                  OPC_CheckType, MVT::v16i32,
/*401626*/                  OPC_MoveParent,
/*401627*/                  OPC_MoveParent,
/*401628*/                  OPC_CheckType, MVT::v8f64,
/*401630*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*401632*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401635*/                  OPC_EmitMergeInputChains, 1, 3, 
/*401638*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUB213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401652*/                0, // EndSwitchType
/*401653*/              /*Scope*/ 102, /*->401756*/
/*401654*/                OPC_MoveChild1,
/*401655*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*401658*/                OPC_MoveChild0,
/*401659*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*401662*/                OPC_RecordMemRef,
/*401663*/                OPC_RecordNode, // #2 = 'ld' chained node
/*401664*/                OPC_CheckFoldableChainNode,
/*401665*/                OPC_RecordChild1, // #3 = $src3
/*401666*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401668*/                OPC_CheckPredicate, 9, // Predicate_load
/*401670*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->401713
/*401673*/                  OPC_MoveParent,
/*401674*/                  OPC_MoveParent,
/*401675*/                  OPC_RecordChild2, // #4 = $src1
/*401676*/                  OPC_MoveParent,
/*401677*/                  OPC_MoveChild2,
/*401678*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401681*/                  OPC_MoveChild0,
/*401682*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401685*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401687*/                  OPC_CheckType, MVT::v8i32,
/*401689*/                  OPC_MoveParent,
/*401690*/                  OPC_MoveParent,
/*401691*/                  OPC_CheckType, MVT::v8f32,
/*401693*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401695*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401698*/                  OPC_EmitMergeInputChains1_2,
/*401699*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUB231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401713*/                /*SwitchType*/ 40, MVT::f64,// ->401755
/*401715*/                  OPC_MoveParent,
/*401716*/                  OPC_MoveParent,
/*401717*/                  OPC_RecordChild2, // #4 = $src1
/*401718*/                  OPC_MoveParent,
/*401719*/                  OPC_MoveChild2,
/*401720*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401723*/                  OPC_MoveChild0,
/*401724*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401727*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401729*/                  OPC_CheckType, MVT::v16i32,
/*401731*/                  OPC_MoveParent,
/*401732*/                  OPC_MoveParent,
/*401733*/                  OPC_CheckType, MVT::v8f64,
/*401735*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*401737*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401740*/                  OPC_EmitMergeInputChains1_2,
/*401741*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUB231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401755*/                0, // EndSwitchType
/*401756*/              0, /*End of Scope*/
/*401757*/            /*Scope*/ 104, /*->401862*/
/*401758*/              OPC_MoveChild0,
/*401759*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*401762*/              OPC_MoveChild0,
/*401763*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*401766*/              OPC_RecordMemRef,
/*401767*/              OPC_RecordNode, // #1 = 'ld' chained node
/*401768*/              OPC_CheckFoldableChainNode,
/*401769*/              OPC_RecordChild1, // #2 = $src3
/*401770*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401772*/              OPC_CheckPredicate, 9, // Predicate_load
/*401774*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->401818
/*401777*/                OPC_MoveParent,
/*401778*/                OPC_MoveParent,
/*401779*/                OPC_RecordChild1, // #3 = $src1
/*401780*/                OPC_RecordChild2, // #4 = $src2
/*401781*/                OPC_MoveParent,
/*401782*/                OPC_MoveChild2,
/*401783*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401786*/                OPC_MoveChild0,
/*401787*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401790*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401792*/                OPC_CheckType, MVT::v8i32,
/*401794*/                OPC_MoveParent,
/*401795*/                OPC_MoveParent,
/*401796*/                OPC_CheckType, MVT::v8f32,
/*401798*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401800*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401803*/                OPC_EmitMergeInputChains1_1,
/*401804*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUB132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401818*/              /*SwitchType*/ 41, MVT::f64,// ->401861
/*401820*/                OPC_MoveParent,
/*401821*/                OPC_MoveParent,
/*401822*/                OPC_RecordChild1, // #3 = $src1
/*401823*/                OPC_RecordChild2, // #4 = $src2
/*401824*/                OPC_MoveParent,
/*401825*/                OPC_MoveChild2,
/*401826*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401829*/                OPC_MoveChild0,
/*401830*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401833*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401835*/                OPC_CheckType, MVT::v16i32,
/*401837*/                OPC_MoveParent,
/*401838*/                OPC_MoveParent,
/*401839*/                OPC_CheckType, MVT::v8f64,
/*401841*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*401843*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401846*/                OPC_EmitMergeInputChains1_1,
/*401847*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUB132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401861*/              0, // EndSwitchType
/*401862*/            /*Scope*/ 43|128,1/*171*/, /*->402035*/
/*401864*/              OPC_RecordChild0, // #1 = $src2
/*401865*/              OPC_Scope, 85, /*->401952*/ // 2 children in Scope
/*401867*/                OPC_RecordChild1, // #2 = $src1
/*401868*/                OPC_MoveChild2,
/*401869*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*401872*/                OPC_RecordMemRef,
/*401873*/                OPC_RecordNode, // #3 = 'ld' chained node
/*401874*/                OPC_CheckFoldableChainNode,
/*401875*/                OPC_RecordChild1, // #4 = $src3
/*401876*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401878*/                OPC_CheckPredicate, 9, // Predicate_load
/*401880*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*401882*/                OPC_MoveParent,
/*401883*/                OPC_MoveParent,
/*401884*/                OPC_MoveChild2,
/*401885*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401888*/                OPC_MoveChild0,
/*401889*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401892*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401894*/                OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->401923
/*401897*/                  OPC_MoveParent,
/*401898*/                  OPC_MoveParent,
/*401899*/                  OPC_CheckType, MVT::v8f32,
/*401901*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401903*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401906*/                  OPC_EmitMergeInputChains, 1, 3, 
/*401909*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUB213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401923*/                /*SwitchType*/ 26, MVT::v16i32,// ->401951
/*401925*/                  OPC_MoveParent,
/*401926*/                  OPC_MoveParent,
/*401927*/                  OPC_CheckType, MVT::v8f64,
/*401929*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*401931*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401934*/                  OPC_EmitMergeInputChains, 1, 3, 
/*401937*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUB213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*401951*/                0, // EndSwitchType
/*401952*/              /*Scope*/ 81, /*->402034*/
/*401953*/                OPC_MoveChild1,
/*401954*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*401957*/                OPC_RecordMemRef,
/*401958*/                OPC_RecordNode, // #2 = 'ld' chained node
/*401959*/                OPC_CheckFoldableChainNode,
/*401960*/                OPC_RecordChild1, // #3 = $src3
/*401961*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401963*/                OPC_CheckPredicate, 9, // Predicate_load
/*401965*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*401967*/                OPC_MoveParent,
/*401968*/                OPC_RecordChild2, // #4 = $src1
/*401969*/                OPC_MoveParent,
/*401970*/                OPC_MoveChild2,
/*401971*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*401974*/                OPC_MoveChild0,
/*401975*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*401978*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*401980*/                OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->402007
/*401983*/                  OPC_MoveParent,
/*401984*/                  OPC_MoveParent,
/*401985*/                  OPC_CheckType, MVT::v8f32,
/*401987*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401989*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*401992*/                  OPC_EmitMergeInputChains1_2,
/*401993*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUB231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402007*/                /*SwitchType*/ 24, MVT::v16i32,// ->402033
/*402009*/                  OPC_MoveParent,
/*402010*/                  OPC_MoveParent,
/*402011*/                  OPC_CheckType, MVT::v8f64,
/*402013*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*402015*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402018*/                  OPC_EmitMergeInputChains1_2,
/*402019*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUB231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402033*/                0, // EndSwitchType
/*402034*/              0, /*End of Scope*/
/*402035*/            /*Scope*/ 82, /*->402118*/
/*402036*/              OPC_MoveChild0,
/*402037*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*402040*/              OPC_RecordMemRef,
/*402041*/              OPC_RecordNode, // #1 = 'ld' chained node
/*402042*/              OPC_CheckFoldableChainNode,
/*402043*/              OPC_RecordChild1, // #2 = $src3
/*402044*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402046*/              OPC_CheckPredicate, 9, // Predicate_load
/*402048*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*402050*/              OPC_MoveParent,
/*402051*/              OPC_RecordChild1, // #3 = $src1
/*402052*/              OPC_RecordChild2, // #4 = $src2
/*402053*/              OPC_MoveParent,
/*402054*/              OPC_MoveChild2,
/*402055*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402058*/              OPC_MoveChild0,
/*402059*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402062*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402064*/              OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->402091
/*402067*/                OPC_MoveParent,
/*402068*/                OPC_MoveParent,
/*402069*/                OPC_CheckType, MVT::v8f32,
/*402071*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402073*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402076*/                OPC_EmitMergeInputChains1_1,
/*402077*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUB132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402091*/              /*SwitchType*/ 24, MVT::v16i32,// ->402117
/*402093*/                OPC_MoveParent,
/*402094*/                OPC_MoveParent,
/*402095*/                OPC_CheckType, MVT::v8f64,
/*402097*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*402099*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402102*/                OPC_EmitMergeInputChains1_1,
/*402103*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUB132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402117*/              0, // EndSwitchType
/*402118*/            0, /*End of Scope*/
/*402119*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(X86ISD::FMADDSUB),// ->402700
/*402123*/            OPC_Scope, 84|128,1/*212*/, /*->402338*/ // 4 children in Scope
/*402126*/              OPC_RecordChild0, // #1 = $src2
/*402127*/              OPC_Scope, 105, /*->402234*/ // 2 children in Scope
/*402129*/                OPC_RecordChild1, // #2 = $src1
/*402130*/                OPC_MoveChild2,
/*402131*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*402134*/                OPC_MoveChild0,
/*402135*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*402138*/                OPC_RecordMemRef,
/*402139*/                OPC_RecordNode, // #3 = 'ld' chained node
/*402140*/                OPC_CheckFoldableChainNode,
/*402141*/                OPC_RecordChild1, // #4 = $src3
/*402142*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402144*/                OPC_CheckPredicate, 9, // Predicate_load
/*402146*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->402190
/*402149*/                  OPC_MoveParent,
/*402150*/                  OPC_MoveParent,
/*402151*/                  OPC_MoveParent,
/*402152*/                  OPC_MoveChild2,
/*402153*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402156*/                  OPC_MoveChild0,
/*402157*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402160*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402162*/                  OPC_CheckType, MVT::v8i32,
/*402164*/                  OPC_MoveParent,
/*402165*/                  OPC_MoveParent,
/*402166*/                  OPC_CheckType, MVT::v8f32,
/*402168*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402170*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402173*/                  OPC_EmitMergeInputChains, 1, 3, 
/*402176*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADDSUB213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402190*/                /*SwitchType*/ 41, MVT::f64,// ->402233
/*402192*/                  OPC_MoveParent,
/*402193*/                  OPC_MoveParent,
/*402194*/                  OPC_MoveParent,
/*402195*/                  OPC_MoveChild2,
/*402196*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402199*/                  OPC_MoveChild0,
/*402200*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402203*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402205*/                  OPC_CheckType, MVT::v16i32,
/*402207*/                  OPC_MoveParent,
/*402208*/                  OPC_MoveParent,
/*402209*/                  OPC_CheckType, MVT::v8f64,
/*402211*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*402213*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402216*/                  OPC_EmitMergeInputChains, 1, 3, 
/*402219*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADDSUB213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402233*/                0, // EndSwitchType
/*402234*/              /*Scope*/ 102, /*->402337*/
/*402235*/                OPC_MoveChild1,
/*402236*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*402239*/                OPC_MoveChild0,
/*402240*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*402243*/                OPC_RecordMemRef,
/*402244*/                OPC_RecordNode, // #2 = 'ld' chained node
/*402245*/                OPC_CheckFoldableChainNode,
/*402246*/                OPC_RecordChild1, // #3 = $src3
/*402247*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402249*/                OPC_CheckPredicate, 9, // Predicate_load
/*402251*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->402294
/*402254*/                  OPC_MoveParent,
/*402255*/                  OPC_MoveParent,
/*402256*/                  OPC_RecordChild2, // #4 = $src1
/*402257*/                  OPC_MoveParent,
/*402258*/                  OPC_MoveChild2,
/*402259*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402262*/                  OPC_MoveChild0,
/*402263*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402266*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402268*/                  OPC_CheckType, MVT::v8i32,
/*402270*/                  OPC_MoveParent,
/*402271*/                  OPC_MoveParent,
/*402272*/                  OPC_CheckType, MVT::v8f32,
/*402274*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402276*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402279*/                  OPC_EmitMergeInputChains1_2,
/*402280*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADDSUB231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402294*/                /*SwitchType*/ 40, MVT::f64,// ->402336
/*402296*/                  OPC_MoveParent,
/*402297*/                  OPC_MoveParent,
/*402298*/                  OPC_RecordChild2, // #4 = $src1
/*402299*/                  OPC_MoveParent,
/*402300*/                  OPC_MoveChild2,
/*402301*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402304*/                  OPC_MoveChild0,
/*402305*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402308*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402310*/                  OPC_CheckType, MVT::v16i32,
/*402312*/                  OPC_MoveParent,
/*402313*/                  OPC_MoveParent,
/*402314*/                  OPC_CheckType, MVT::v8f64,
/*402316*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*402318*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402321*/                  OPC_EmitMergeInputChains1_2,
/*402322*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMADDSUB231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402336*/                0, // EndSwitchType
/*402337*/              0, /*End of Scope*/
/*402338*/            /*Scope*/ 104, /*->402443*/
/*402339*/              OPC_MoveChild0,
/*402340*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*402343*/              OPC_MoveChild0,
/*402344*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*402347*/              OPC_RecordMemRef,
/*402348*/              OPC_RecordNode, // #1 = 'ld' chained node
/*402349*/              OPC_CheckFoldableChainNode,
/*402350*/              OPC_RecordChild1, // #2 = $src3
/*402351*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402353*/              OPC_CheckPredicate, 9, // Predicate_load
/*402355*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->402399
/*402358*/                OPC_MoveParent,
/*402359*/                OPC_MoveParent,
/*402360*/                OPC_RecordChild1, // #3 = $src1
/*402361*/                OPC_RecordChild2, // #4 = $src2
/*402362*/                OPC_MoveParent,
/*402363*/                OPC_MoveChild2,
/*402364*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402367*/                OPC_MoveChild0,
/*402368*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402371*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402373*/                OPC_CheckType, MVT::v8i32,
/*402375*/                OPC_MoveParent,
/*402376*/                OPC_MoveParent,
/*402377*/                OPC_CheckType, MVT::v8f32,
/*402379*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402381*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402384*/                OPC_EmitMergeInputChains1_1,
/*402385*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADDSUB132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402399*/              /*SwitchType*/ 41, MVT::f64,// ->402442
/*402401*/                OPC_MoveParent,
/*402402*/                OPC_MoveParent,
/*402403*/                OPC_RecordChild1, // #3 = $src1
/*402404*/                OPC_RecordChild2, // #4 = $src2
/*402405*/                OPC_MoveParent,
/*402406*/                OPC_MoveChild2,
/*402407*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402410*/                OPC_MoveChild0,
/*402411*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402414*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402416*/                OPC_CheckType, MVT::v16i32,
/*402418*/                OPC_MoveParent,
/*402419*/                OPC_MoveParent,
/*402420*/                OPC_CheckType, MVT::v8f64,
/*402422*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*402424*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402427*/                OPC_EmitMergeInputChains1_1,
/*402428*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADDSUB132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402442*/              0, // EndSwitchType
/*402443*/            /*Scope*/ 43|128,1/*171*/, /*->402616*/
/*402445*/              OPC_RecordChild0, // #1 = $src2
/*402446*/              OPC_Scope, 85, /*->402533*/ // 2 children in Scope
/*402448*/                OPC_RecordChild1, // #2 = $src1
/*402449*/                OPC_MoveChild2,
/*402450*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*402453*/                OPC_RecordMemRef,
/*402454*/                OPC_RecordNode, // #3 = 'ld' chained node
/*402455*/                OPC_CheckFoldableChainNode,
/*402456*/                OPC_RecordChild1, // #4 = $src3
/*402457*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402459*/                OPC_CheckPredicate, 9, // Predicate_load
/*402461*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*402463*/                OPC_MoveParent,
/*402464*/                OPC_MoveParent,
/*402465*/                OPC_MoveChild2,
/*402466*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402469*/                OPC_MoveChild0,
/*402470*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402473*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402475*/                OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->402504
/*402478*/                  OPC_MoveParent,
/*402479*/                  OPC_MoveParent,
/*402480*/                  OPC_CheckType, MVT::v8f32,
/*402482*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402484*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402487*/                  OPC_EmitMergeInputChains, 1, 3, 
/*402490*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADDSUB213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402504*/                /*SwitchType*/ 26, MVT::v16i32,// ->402532
/*402506*/                  OPC_MoveParent,
/*402507*/                  OPC_MoveParent,
/*402508*/                  OPC_CheckType, MVT::v8f64,
/*402510*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*402512*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402515*/                  OPC_EmitMergeInputChains, 1, 3, 
/*402518*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADDSUB213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402532*/                0, // EndSwitchType
/*402533*/              /*Scope*/ 81, /*->402615*/
/*402534*/                OPC_MoveChild1,
/*402535*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*402538*/                OPC_RecordMemRef,
/*402539*/                OPC_RecordNode, // #2 = 'ld' chained node
/*402540*/                OPC_CheckFoldableChainNode,
/*402541*/                OPC_RecordChild1, // #3 = $src3
/*402542*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402544*/                OPC_CheckPredicate, 9, // Predicate_load
/*402546*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*402548*/                OPC_MoveParent,
/*402549*/                OPC_RecordChild2, // #4 = $src1
/*402550*/                OPC_MoveParent,
/*402551*/                OPC_MoveChild2,
/*402552*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402555*/                OPC_MoveChild0,
/*402556*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402559*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402561*/                OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->402588
/*402564*/                  OPC_MoveParent,
/*402565*/                  OPC_MoveParent,
/*402566*/                  OPC_CheckType, MVT::v8f32,
/*402568*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402570*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402573*/                  OPC_EmitMergeInputChains1_2,
/*402574*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADDSUB231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402588*/                /*SwitchType*/ 24, MVT::v16i32,// ->402614
/*402590*/                  OPC_MoveParent,
/*402591*/                  OPC_MoveParent,
/*402592*/                  OPC_CheckType, MVT::v8f64,
/*402594*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*402596*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402599*/                  OPC_EmitMergeInputChains1_2,
/*402600*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMADDSUB231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402614*/                0, // EndSwitchType
/*402615*/              0, /*End of Scope*/
/*402616*/            /*Scope*/ 82, /*->402699*/
/*402617*/              OPC_MoveChild0,
/*402618*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*402621*/              OPC_RecordMemRef,
/*402622*/              OPC_RecordNode, // #1 = 'ld' chained node
/*402623*/              OPC_CheckFoldableChainNode,
/*402624*/              OPC_RecordChild1, // #2 = $src3
/*402625*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402627*/              OPC_CheckPredicate, 9, // Predicate_load
/*402629*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*402631*/              OPC_MoveParent,
/*402632*/              OPC_RecordChild1, // #3 = $src1
/*402633*/              OPC_RecordChild2, // #4 = $src2
/*402634*/              OPC_MoveParent,
/*402635*/              OPC_MoveChild2,
/*402636*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402639*/              OPC_MoveChild0,
/*402640*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402643*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402645*/              OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->402672
/*402648*/                OPC_MoveParent,
/*402649*/                OPC_MoveParent,
/*402650*/                OPC_CheckType, MVT::v8f32,
/*402652*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402654*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402657*/                OPC_EmitMergeInputChains1_1,
/*402658*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADDSUB132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402672*/              /*SwitchType*/ 24, MVT::v16i32,// ->402698
/*402674*/                OPC_MoveParent,
/*402675*/                OPC_MoveParent,
/*402676*/                OPC_CheckType, MVT::v8f64,
/*402678*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*402680*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402683*/                OPC_EmitMergeInputChains1_1,
/*402684*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADDSUB132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402698*/              0, // EndSwitchType
/*402699*/            0, /*End of Scope*/
/*402700*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(X86ISD::FMSUBADD),// ->403281
/*402704*/            OPC_Scope, 84|128,1/*212*/, /*->402919*/ // 4 children in Scope
/*402707*/              OPC_RecordChild0, // #1 = $src2
/*402708*/              OPC_Scope, 105, /*->402815*/ // 2 children in Scope
/*402710*/                OPC_RecordChild1, // #2 = $src1
/*402711*/                OPC_MoveChild2,
/*402712*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*402715*/                OPC_MoveChild0,
/*402716*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*402719*/                OPC_RecordMemRef,
/*402720*/                OPC_RecordNode, // #3 = 'ld' chained node
/*402721*/                OPC_CheckFoldableChainNode,
/*402722*/                OPC_RecordChild1, // #4 = $src3
/*402723*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402725*/                OPC_CheckPredicate, 9, // Predicate_load
/*402727*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->402771
/*402730*/                  OPC_MoveParent,
/*402731*/                  OPC_MoveParent,
/*402732*/                  OPC_MoveParent,
/*402733*/                  OPC_MoveChild2,
/*402734*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402737*/                  OPC_MoveChild0,
/*402738*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402741*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402743*/                  OPC_CheckType, MVT::v8i32,
/*402745*/                  OPC_MoveParent,
/*402746*/                  OPC_MoveParent,
/*402747*/                  OPC_CheckType, MVT::v8f32,
/*402749*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402751*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402754*/                  OPC_EmitMergeInputChains, 1, 3, 
/*402757*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUBADD213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402771*/                /*SwitchType*/ 41, MVT::f64,// ->402814
/*402773*/                  OPC_MoveParent,
/*402774*/                  OPC_MoveParent,
/*402775*/                  OPC_MoveParent,
/*402776*/                  OPC_MoveChild2,
/*402777*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402780*/                  OPC_MoveChild0,
/*402781*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402784*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402786*/                  OPC_CheckType, MVT::v16i32,
/*402788*/                  OPC_MoveParent,
/*402789*/                  OPC_MoveParent,
/*402790*/                  OPC_CheckType, MVT::v8f64,
/*402792*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*402794*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402797*/                  OPC_EmitMergeInputChains, 1, 3, 
/*402800*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUBADD213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402814*/                0, // EndSwitchType
/*402815*/              /*Scope*/ 102, /*->402918*/
/*402816*/                OPC_MoveChild1,
/*402817*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*402820*/                OPC_MoveChild0,
/*402821*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*402824*/                OPC_RecordMemRef,
/*402825*/                OPC_RecordNode, // #2 = 'ld' chained node
/*402826*/                OPC_CheckFoldableChainNode,
/*402827*/                OPC_RecordChild1, // #3 = $src3
/*402828*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402830*/                OPC_CheckPredicate, 9, // Predicate_load
/*402832*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->402875
/*402835*/                  OPC_MoveParent,
/*402836*/                  OPC_MoveParent,
/*402837*/                  OPC_RecordChild2, // #4 = $src1
/*402838*/                  OPC_MoveParent,
/*402839*/                  OPC_MoveChild2,
/*402840*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402843*/                  OPC_MoveChild0,
/*402844*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402847*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402849*/                  OPC_CheckType, MVT::v8i32,
/*402851*/                  OPC_MoveParent,
/*402852*/                  OPC_MoveParent,
/*402853*/                  OPC_CheckType, MVT::v8f32,
/*402855*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402857*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402860*/                  OPC_EmitMergeInputChains1_2,
/*402861*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUBADD231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402875*/                /*SwitchType*/ 40, MVT::f64,// ->402917
/*402877*/                  OPC_MoveParent,
/*402878*/                  OPC_MoveParent,
/*402879*/                  OPC_RecordChild2, // #4 = $src1
/*402880*/                  OPC_MoveParent,
/*402881*/                  OPC_MoveChild2,
/*402882*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402885*/                  OPC_MoveChild0,
/*402886*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402889*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402891*/                  OPC_CheckType, MVT::v16i32,
/*402893*/                  OPC_MoveParent,
/*402894*/                  OPC_MoveParent,
/*402895*/                  OPC_CheckType, MVT::v8f64,
/*402897*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*402899*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402902*/                  OPC_EmitMergeInputChains1_2,
/*402903*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFMSUBADD231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402917*/                0, // EndSwitchType
/*402918*/              0, /*End of Scope*/
/*402919*/            /*Scope*/ 104, /*->403024*/
/*402920*/              OPC_MoveChild0,
/*402921*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*402924*/              OPC_MoveChild0,
/*402925*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*402928*/              OPC_RecordMemRef,
/*402929*/              OPC_RecordNode, // #1 = 'ld' chained node
/*402930*/              OPC_CheckFoldableChainNode,
/*402931*/              OPC_RecordChild1, // #2 = $src3
/*402932*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402934*/              OPC_CheckPredicate, 9, // Predicate_load
/*402936*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->402980
/*402939*/                OPC_MoveParent,
/*402940*/                OPC_MoveParent,
/*402941*/                OPC_RecordChild1, // #3 = $src1
/*402942*/                OPC_RecordChild2, // #4 = $src2
/*402943*/                OPC_MoveParent,
/*402944*/                OPC_MoveChild2,
/*402945*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402948*/                OPC_MoveChild0,
/*402949*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402952*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402954*/                OPC_CheckType, MVT::v8i32,
/*402956*/                OPC_MoveParent,
/*402957*/                OPC_MoveParent,
/*402958*/                OPC_CheckType, MVT::v8f32,
/*402960*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402962*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402965*/                OPC_EmitMergeInputChains1_1,
/*402966*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUBADD132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402980*/              /*SwitchType*/ 41, MVT::f64,// ->403023
/*402982*/                OPC_MoveParent,
/*402983*/                OPC_MoveParent,
/*402984*/                OPC_RecordChild1, // #3 = $src1
/*402985*/                OPC_RecordChild2, // #4 = $src2
/*402986*/                OPC_MoveParent,
/*402987*/                OPC_MoveChild2,
/*402988*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402991*/                OPC_MoveChild0,
/*402992*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*402995*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*402997*/                OPC_CheckType, MVT::v16i32,
/*402999*/                OPC_MoveParent,
/*403000*/                OPC_MoveParent,
/*403001*/                OPC_CheckType, MVT::v8f64,
/*403003*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*403005*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403008*/                OPC_EmitMergeInputChains1_1,
/*403009*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUBADD132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403023*/              0, // EndSwitchType
/*403024*/            /*Scope*/ 43|128,1/*171*/, /*->403197*/
/*403026*/              OPC_RecordChild0, // #1 = $src2
/*403027*/              OPC_Scope, 85, /*->403114*/ // 2 children in Scope
/*403029*/                OPC_RecordChild1, // #2 = $src1
/*403030*/                OPC_MoveChild2,
/*403031*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*403034*/                OPC_RecordMemRef,
/*403035*/                OPC_RecordNode, // #3 = 'ld' chained node
/*403036*/                OPC_CheckFoldableChainNode,
/*403037*/                OPC_RecordChild1, // #4 = $src3
/*403038*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403040*/                OPC_CheckPredicate, 9, // Predicate_load
/*403042*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*403044*/                OPC_MoveParent,
/*403045*/                OPC_MoveParent,
/*403046*/                OPC_MoveChild2,
/*403047*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403050*/                OPC_MoveChild0,
/*403051*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403054*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403056*/                OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->403085
/*403059*/                  OPC_MoveParent,
/*403060*/                  OPC_MoveParent,
/*403061*/                  OPC_CheckType, MVT::v8f32,
/*403063*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403065*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403068*/                  OPC_EmitMergeInputChains, 1, 3, 
/*403071*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUBADD213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403085*/                /*SwitchType*/ 26, MVT::v16i32,// ->403113
/*403087*/                  OPC_MoveParent,
/*403088*/                  OPC_MoveParent,
/*403089*/                  OPC_CheckType, MVT::v8f64,
/*403091*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*403093*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403096*/                  OPC_EmitMergeInputChains, 1, 3, 
/*403099*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUBADD213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403113*/                0, // EndSwitchType
/*403114*/              /*Scope*/ 81, /*->403196*/
/*403115*/                OPC_MoveChild1,
/*403116*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*403119*/                OPC_RecordMemRef,
/*403120*/                OPC_RecordNode, // #2 = 'ld' chained node
/*403121*/                OPC_CheckFoldableChainNode,
/*403122*/                OPC_RecordChild1, // #3 = $src3
/*403123*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403125*/                OPC_CheckPredicate, 9, // Predicate_load
/*403127*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*403129*/                OPC_MoveParent,
/*403130*/                OPC_RecordChild2, // #4 = $src1
/*403131*/                OPC_MoveParent,
/*403132*/                OPC_MoveChild2,
/*403133*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403136*/                OPC_MoveChild0,
/*403137*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403140*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403142*/                OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->403169
/*403145*/                  OPC_MoveParent,
/*403146*/                  OPC_MoveParent,
/*403147*/                  OPC_CheckType, MVT::v8f32,
/*403149*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403151*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403154*/                  OPC_EmitMergeInputChains1_2,
/*403155*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUBADD231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403169*/                /*SwitchType*/ 24, MVT::v16i32,// ->403195
/*403171*/                  OPC_MoveParent,
/*403172*/                  OPC_MoveParent,
/*403173*/                  OPC_CheckType, MVT::v8f64,
/*403175*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*403177*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403180*/                  OPC_EmitMergeInputChains1_2,
/*403181*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFMSUBADD231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403195*/                0, // EndSwitchType
/*403196*/              0, /*End of Scope*/
/*403197*/            /*Scope*/ 82, /*->403280*/
/*403198*/              OPC_MoveChild0,
/*403199*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*403202*/              OPC_RecordMemRef,
/*403203*/              OPC_RecordNode, // #1 = 'ld' chained node
/*403204*/              OPC_CheckFoldableChainNode,
/*403205*/              OPC_RecordChild1, // #2 = $src3
/*403206*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403208*/              OPC_CheckPredicate, 9, // Predicate_load
/*403210*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*403212*/              OPC_MoveParent,
/*403213*/              OPC_RecordChild1, // #3 = $src1
/*403214*/              OPC_RecordChild2, // #4 = $src2
/*403215*/              OPC_MoveParent,
/*403216*/              OPC_MoveChild2,
/*403217*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403220*/              OPC_MoveChild0,
/*403221*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403224*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403226*/              OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->403253
/*403229*/                OPC_MoveParent,
/*403230*/                OPC_MoveParent,
/*403231*/                OPC_CheckType, MVT::v8f32,
/*403233*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403235*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403238*/                OPC_EmitMergeInputChains1_1,
/*403239*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUBADD132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403253*/              /*SwitchType*/ 24, MVT::v16i32,// ->403279
/*403255*/                OPC_MoveParent,
/*403256*/                OPC_MoveParent,
/*403257*/                OPC_CheckType, MVT::v8f64,
/*403259*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*403261*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403264*/                OPC_EmitMergeInputChains1_1,
/*403265*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUBADD132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403279*/              0, // EndSwitchType
/*403280*/            0, /*End of Scope*/
/*403281*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(X86ISD::FNMADD),// ->403862
/*403285*/            OPC_Scope, 84|128,1/*212*/, /*->403500*/ // 4 children in Scope
/*403288*/              OPC_RecordChild0, // #1 = $src2
/*403289*/              OPC_Scope, 105, /*->403396*/ // 2 children in Scope
/*403291*/                OPC_RecordChild1, // #2 = $src1
/*403292*/                OPC_MoveChild2,
/*403293*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*403296*/                OPC_MoveChild0,
/*403297*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*403300*/                OPC_RecordMemRef,
/*403301*/                OPC_RecordNode, // #3 = 'ld' chained node
/*403302*/                OPC_CheckFoldableChainNode,
/*403303*/                OPC_RecordChild1, // #4 = $src3
/*403304*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403306*/                OPC_CheckPredicate, 9, // Predicate_load
/*403308*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->403352
/*403311*/                  OPC_MoveParent,
/*403312*/                  OPC_MoveParent,
/*403313*/                  OPC_MoveParent,
/*403314*/                  OPC_MoveChild2,
/*403315*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403318*/                  OPC_MoveChild0,
/*403319*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403322*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403324*/                  OPC_CheckType, MVT::v8i32,
/*403326*/                  OPC_MoveParent,
/*403327*/                  OPC_MoveParent,
/*403328*/                  OPC_CheckType, MVT::v8f32,
/*403330*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403332*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403335*/                  OPC_EmitMergeInputChains, 1, 3, 
/*403338*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMADD213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403352*/                /*SwitchType*/ 41, MVT::f64,// ->403395
/*403354*/                  OPC_MoveParent,
/*403355*/                  OPC_MoveParent,
/*403356*/                  OPC_MoveParent,
/*403357*/                  OPC_MoveChild2,
/*403358*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403361*/                  OPC_MoveChild0,
/*403362*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403365*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403367*/                  OPC_CheckType, MVT::v16i32,
/*403369*/                  OPC_MoveParent,
/*403370*/                  OPC_MoveParent,
/*403371*/                  OPC_CheckType, MVT::v8f64,
/*403373*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*403375*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403378*/                  OPC_EmitMergeInputChains, 1, 3, 
/*403381*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMADD213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403395*/                0, // EndSwitchType
/*403396*/              /*Scope*/ 102, /*->403499*/
/*403397*/                OPC_MoveChild1,
/*403398*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*403401*/                OPC_MoveChild0,
/*403402*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*403405*/                OPC_RecordMemRef,
/*403406*/                OPC_RecordNode, // #2 = 'ld' chained node
/*403407*/                OPC_CheckFoldableChainNode,
/*403408*/                OPC_RecordChild1, // #3 = $src3
/*403409*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403411*/                OPC_CheckPredicate, 9, // Predicate_load
/*403413*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->403456
/*403416*/                  OPC_MoveParent,
/*403417*/                  OPC_MoveParent,
/*403418*/                  OPC_RecordChild2, // #4 = $src1
/*403419*/                  OPC_MoveParent,
/*403420*/                  OPC_MoveChild2,
/*403421*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403424*/                  OPC_MoveChild0,
/*403425*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403428*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403430*/                  OPC_CheckType, MVT::v8i32,
/*403432*/                  OPC_MoveParent,
/*403433*/                  OPC_MoveParent,
/*403434*/                  OPC_CheckType, MVT::v8f32,
/*403436*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403438*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403441*/                  OPC_EmitMergeInputChains1_2,
/*403442*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMADD231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403456*/                /*SwitchType*/ 40, MVT::f64,// ->403498
/*403458*/                  OPC_MoveParent,
/*403459*/                  OPC_MoveParent,
/*403460*/                  OPC_RecordChild2, // #4 = $src1
/*403461*/                  OPC_MoveParent,
/*403462*/                  OPC_MoveChild2,
/*403463*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403466*/                  OPC_MoveChild0,
/*403467*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403470*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403472*/                  OPC_CheckType, MVT::v16i32,
/*403474*/                  OPC_MoveParent,
/*403475*/                  OPC_MoveParent,
/*403476*/                  OPC_CheckType, MVT::v8f64,
/*403478*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*403480*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403483*/                  OPC_EmitMergeInputChains1_2,
/*403484*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMADD231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403498*/                0, // EndSwitchType
/*403499*/              0, /*End of Scope*/
/*403500*/            /*Scope*/ 104, /*->403605*/
/*403501*/              OPC_MoveChild0,
/*403502*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*403505*/              OPC_MoveChild0,
/*403506*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*403509*/              OPC_RecordMemRef,
/*403510*/              OPC_RecordNode, // #1 = 'ld' chained node
/*403511*/              OPC_CheckFoldableChainNode,
/*403512*/              OPC_RecordChild1, // #2 = $src3
/*403513*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403515*/              OPC_CheckPredicate, 9, // Predicate_load
/*403517*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->403561
/*403520*/                OPC_MoveParent,
/*403521*/                OPC_MoveParent,
/*403522*/                OPC_RecordChild1, // #3 = $src1
/*403523*/                OPC_RecordChild2, // #4 = $src2
/*403524*/                OPC_MoveParent,
/*403525*/                OPC_MoveChild2,
/*403526*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403529*/                OPC_MoveChild0,
/*403530*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403533*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403535*/                OPC_CheckType, MVT::v8i32,
/*403537*/                OPC_MoveParent,
/*403538*/                OPC_MoveParent,
/*403539*/                OPC_CheckType, MVT::v8f32,
/*403541*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403543*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403546*/                OPC_EmitMergeInputChains1_1,
/*403547*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMADD132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403561*/              /*SwitchType*/ 41, MVT::f64,// ->403604
/*403563*/                OPC_MoveParent,
/*403564*/                OPC_MoveParent,
/*403565*/                OPC_RecordChild1, // #3 = $src1
/*403566*/                OPC_RecordChild2, // #4 = $src2
/*403567*/                OPC_MoveParent,
/*403568*/                OPC_MoveChild2,
/*403569*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403572*/                OPC_MoveChild0,
/*403573*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403576*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403578*/                OPC_CheckType, MVT::v16i32,
/*403580*/                OPC_MoveParent,
/*403581*/                OPC_MoveParent,
/*403582*/                OPC_CheckType, MVT::v8f64,
/*403584*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*403586*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403589*/                OPC_EmitMergeInputChains1_1,
/*403590*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMADD132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403604*/              0, // EndSwitchType
/*403605*/            /*Scope*/ 43|128,1/*171*/, /*->403778*/
/*403607*/              OPC_RecordChild0, // #1 = $src2
/*403608*/              OPC_Scope, 85, /*->403695*/ // 2 children in Scope
/*403610*/                OPC_RecordChild1, // #2 = $src1
/*403611*/                OPC_MoveChild2,
/*403612*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*403615*/                OPC_RecordMemRef,
/*403616*/                OPC_RecordNode, // #3 = 'ld' chained node
/*403617*/                OPC_CheckFoldableChainNode,
/*403618*/                OPC_RecordChild1, // #4 = $src3
/*403619*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403621*/                OPC_CheckPredicate, 9, // Predicate_load
/*403623*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*403625*/                OPC_MoveParent,
/*403626*/                OPC_MoveParent,
/*403627*/                OPC_MoveChild2,
/*403628*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403631*/                OPC_MoveChild0,
/*403632*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403635*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403637*/                OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->403666
/*403640*/                  OPC_MoveParent,
/*403641*/                  OPC_MoveParent,
/*403642*/                  OPC_CheckType, MVT::v8f32,
/*403644*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403646*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403649*/                  OPC_EmitMergeInputChains, 1, 3, 
/*403652*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMADD213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403666*/                /*SwitchType*/ 26, MVT::v16i32,// ->403694
/*403668*/                  OPC_MoveParent,
/*403669*/                  OPC_MoveParent,
/*403670*/                  OPC_CheckType, MVT::v8f64,
/*403672*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*403674*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403677*/                  OPC_EmitMergeInputChains, 1, 3, 
/*403680*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMADD213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403694*/                0, // EndSwitchType
/*403695*/              /*Scope*/ 81, /*->403777*/
/*403696*/                OPC_MoveChild1,
/*403697*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*403700*/                OPC_RecordMemRef,
/*403701*/                OPC_RecordNode, // #2 = 'ld' chained node
/*403702*/                OPC_CheckFoldableChainNode,
/*403703*/                OPC_RecordChild1, // #3 = $src3
/*403704*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403706*/                OPC_CheckPredicate, 9, // Predicate_load
/*403708*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*403710*/                OPC_MoveParent,
/*403711*/                OPC_RecordChild2, // #4 = $src1
/*403712*/                OPC_MoveParent,
/*403713*/                OPC_MoveChild2,
/*403714*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403717*/                OPC_MoveChild0,
/*403718*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403721*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403723*/                OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->403750
/*403726*/                  OPC_MoveParent,
/*403727*/                  OPC_MoveParent,
/*403728*/                  OPC_CheckType, MVT::v8f32,
/*403730*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403732*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403735*/                  OPC_EmitMergeInputChains1_2,
/*403736*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMADD231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403750*/                /*SwitchType*/ 24, MVT::v16i32,// ->403776
/*403752*/                  OPC_MoveParent,
/*403753*/                  OPC_MoveParent,
/*403754*/                  OPC_CheckType, MVT::v8f64,
/*403756*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*403758*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403761*/                  OPC_EmitMergeInputChains1_2,
/*403762*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMADD231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403776*/                0, // EndSwitchType
/*403777*/              0, /*End of Scope*/
/*403778*/            /*Scope*/ 82, /*->403861*/
/*403779*/              OPC_MoveChild0,
/*403780*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*403783*/              OPC_RecordMemRef,
/*403784*/              OPC_RecordNode, // #1 = 'ld' chained node
/*403785*/              OPC_CheckFoldableChainNode,
/*403786*/              OPC_RecordChild1, // #2 = $src3
/*403787*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403789*/              OPC_CheckPredicate, 9, // Predicate_load
/*403791*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*403793*/              OPC_MoveParent,
/*403794*/              OPC_RecordChild1, // #3 = $src1
/*403795*/              OPC_RecordChild2, // #4 = $src2
/*403796*/              OPC_MoveParent,
/*403797*/              OPC_MoveChild2,
/*403798*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403801*/              OPC_MoveChild0,
/*403802*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403805*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403807*/              OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->403834
/*403810*/                OPC_MoveParent,
/*403811*/                OPC_MoveParent,
/*403812*/                OPC_CheckType, MVT::v8f32,
/*403814*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403816*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403819*/                OPC_EmitMergeInputChains1_1,
/*403820*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMADD132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403834*/              /*SwitchType*/ 24, MVT::v16i32,// ->403860
/*403836*/                OPC_MoveParent,
/*403837*/                OPC_MoveParent,
/*403838*/                OPC_CheckType, MVT::v8f64,
/*403840*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*403842*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403845*/                OPC_EmitMergeInputChains1_1,
/*403846*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMADD132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403860*/              0, // EndSwitchType
/*403861*/            0, /*End of Scope*/
/*403862*/          /*SwitchOpcode*/ 65|128,4/*577*/, TARGET_VAL(X86ISD::FNMSUB),// ->404443
/*403866*/            OPC_Scope, 84|128,1/*212*/, /*->404081*/ // 4 children in Scope
/*403869*/              OPC_RecordChild0, // #1 = $src2
/*403870*/              OPC_Scope, 105, /*->403977*/ // 2 children in Scope
/*403872*/                OPC_RecordChild1, // #2 = $src1
/*403873*/                OPC_MoveChild2,
/*403874*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*403877*/                OPC_MoveChild0,
/*403878*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*403881*/                OPC_RecordMemRef,
/*403882*/                OPC_RecordNode, // #3 = 'ld' chained node
/*403883*/                OPC_CheckFoldableChainNode,
/*403884*/                OPC_RecordChild1, // #4 = $src3
/*403885*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403887*/                OPC_CheckPredicate, 9, // Predicate_load
/*403889*/                OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->403933
/*403892*/                  OPC_MoveParent,
/*403893*/                  OPC_MoveParent,
/*403894*/                  OPC_MoveParent,
/*403895*/                  OPC_MoveChild2,
/*403896*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403899*/                  OPC_MoveChild0,
/*403900*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403903*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403905*/                  OPC_CheckType, MVT::v8i32,
/*403907*/                  OPC_MoveParent,
/*403908*/                  OPC_MoveParent,
/*403909*/                  OPC_CheckType, MVT::v8f32,
/*403911*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403913*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403916*/                  OPC_EmitMergeInputChains, 1, 3, 
/*403919*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMSUB213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403933*/                /*SwitchType*/ 41, MVT::f64,// ->403976
/*403935*/                  OPC_MoveParent,
/*403936*/                  OPC_MoveParent,
/*403937*/                  OPC_MoveParent,
/*403938*/                  OPC_MoveChild2,
/*403939*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*403942*/                  OPC_MoveChild0,
/*403943*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*403946*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*403948*/                  OPC_CheckType, MVT::v16i32,
/*403950*/                  OPC_MoveParent,
/*403951*/                  OPC_MoveParent,
/*403952*/                  OPC_CheckType, MVT::v8f64,
/*403954*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*403956*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*403959*/                  OPC_EmitMergeInputChains, 1, 3, 
/*403962*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMSUB213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*403976*/                0, // EndSwitchType
/*403977*/              /*Scope*/ 102, /*->404080*/
/*403978*/                OPC_MoveChild1,
/*403979*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*403982*/                OPC_MoveChild0,
/*403983*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*403986*/                OPC_RecordMemRef,
/*403987*/                OPC_RecordNode, // #2 = 'ld' chained node
/*403988*/                OPC_CheckFoldableChainNode,
/*403989*/                OPC_RecordChild1, // #3 = $src3
/*403990*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403992*/                OPC_CheckPredicate, 9, // Predicate_load
/*403994*/                OPC_SwitchType /*2 cases */, 40, MVT::f32,// ->404037
/*403997*/                  OPC_MoveParent,
/*403998*/                  OPC_MoveParent,
/*403999*/                  OPC_RecordChild2, // #4 = $src1
/*404000*/                  OPC_MoveParent,
/*404001*/                  OPC_MoveChild2,
/*404002*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404005*/                  OPC_MoveChild0,
/*404006*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404009*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404011*/                  OPC_CheckType, MVT::v8i32,
/*404013*/                  OPC_MoveParent,
/*404014*/                  OPC_MoveParent,
/*404015*/                  OPC_CheckType, MVT::v8f32,
/*404017*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404019*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*404022*/                  OPC_EmitMergeInputChains1_2,
/*404023*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMSUB231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*404037*/                /*SwitchType*/ 40, MVT::f64,// ->404079
/*404039*/                  OPC_MoveParent,
/*404040*/                  OPC_MoveParent,
/*404041*/                  OPC_RecordChild2, // #4 = $src1
/*404042*/                  OPC_MoveParent,
/*404043*/                  OPC_MoveChild2,
/*404044*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404047*/                  OPC_MoveChild0,
/*404048*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404051*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404053*/                  OPC_CheckType, MVT::v16i32,
/*404055*/                  OPC_MoveParent,
/*404056*/                  OPC_MoveParent,
/*404057*/                  OPC_CheckType, MVT::v8f64,
/*404059*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*404061*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*404064*/                  OPC_EmitMergeInputChains1_2,
/*404065*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VFNMSUB231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*404079*/                0, // EndSwitchType
/*404080*/              0, /*End of Scope*/
/*404081*/            /*Scope*/ 104, /*->404186*/
/*404082*/              OPC_MoveChild0,
/*404083*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*404086*/              OPC_MoveChild0,
/*404087*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*404090*/              OPC_RecordMemRef,
/*404091*/              OPC_RecordNode, // #1 = 'ld' chained node
/*404092*/              OPC_CheckFoldableChainNode,
/*404093*/              OPC_RecordChild1, // #2 = $src3
/*404094*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404096*/              OPC_CheckPredicate, 9, // Predicate_load
/*404098*/              OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->404142
/*404101*/                OPC_MoveParent,
/*404102*/                OPC_MoveParent,
/*404103*/                OPC_RecordChild1, // #3 = $src1
/*404104*/                OPC_RecordChild2, // #4 = $src2
/*404105*/                OPC_MoveParent,
/*404106*/                OPC_MoveChild2,
/*404107*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404110*/                OPC_MoveChild0,
/*404111*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404114*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404116*/                OPC_CheckType, MVT::v8i32,
/*404118*/                OPC_MoveParent,
/*404119*/                OPC_MoveParent,
/*404120*/                OPC_CheckType, MVT::v8f32,
/*404122*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404124*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*404127*/                OPC_EmitMergeInputChains1_1,
/*404128*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMSUB132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*404142*/              /*SwitchType*/ 41, MVT::f64,// ->404185
/*404144*/                OPC_MoveParent,
/*404145*/                OPC_MoveParent,
/*404146*/                OPC_RecordChild1, // #3 = $src1
/*404147*/                OPC_RecordChild2, // #4 = $src2
/*404148*/                OPC_MoveParent,
/*404149*/                OPC_MoveChild2,
/*404150*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404153*/                OPC_MoveChild0,
/*404154*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404157*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404159*/                OPC_CheckType, MVT::v16i32,
/*404161*/                OPC_MoveParent,
/*404162*/                OPC_MoveParent,
/*404163*/                OPC_CheckType, MVT::v8f64,
/*404165*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*404167*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*404170*/                OPC_EmitMergeInputChains1_1,
/*404171*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMSUB132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*404185*/              0, // EndSwitchType
/*404186*/            /*Scope*/ 43|128,1/*171*/, /*->404359*/
/*404188*/              OPC_RecordChild0, // #1 = $src2
/*404189*/              OPC_Scope, 85, /*->404276*/ // 2 children in Scope
/*404191*/                OPC_RecordChild1, // #2 = $src1
/*404192*/                OPC_MoveChild2,
/*404193*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*404196*/                OPC_RecordMemRef,
/*404197*/                OPC_RecordNode, // #3 = 'ld' chained node
/*404198*/                OPC_CheckFoldableChainNode,
/*404199*/                OPC_RecordChild1, // #4 = $src3
/*404200*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404202*/                OPC_CheckPredicate, 9, // Predicate_load
/*404204*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*404206*/                OPC_MoveParent,
/*404207*/                OPC_MoveParent,
/*404208*/                OPC_MoveChild2,
/*404209*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404212*/                OPC_MoveChild0,
/*404213*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404216*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404218*/                OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->404247
/*404221*/                  OPC_MoveParent,
/*404222*/                  OPC_MoveParent,
/*404223*/                  OPC_CheckType, MVT::v8f32,
/*404225*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404227*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*404230*/                  OPC_EmitMergeInputChains, 1, 3, 
/*404233*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMSUB213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*404247*/                /*SwitchType*/ 26, MVT::v16i32,// ->404275
/*404249*/                  OPC_MoveParent,
/*404250*/                  OPC_MoveParent,
/*404251*/                  OPC_CheckType, MVT::v8f64,
/*404253*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*404255*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*404258*/                  OPC_EmitMergeInputChains, 1, 3, 
/*404261*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMSUB213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*404275*/                0, // EndSwitchType
/*404276*/              /*Scope*/ 81, /*->404358*/
/*404277*/                OPC_MoveChild1,
/*404278*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*404281*/                OPC_RecordMemRef,
/*404282*/                OPC_RecordNode, // #2 = 'ld' chained node
/*404283*/                OPC_CheckFoldableChainNode,
/*404284*/                OPC_RecordChild1, // #3 = $src3
/*404285*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404287*/                OPC_CheckPredicate, 9, // Predicate_load
/*404289*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*404291*/                OPC_MoveParent,
/*404292*/                OPC_RecordChild2, // #4 = $src1
/*404293*/                OPC_MoveParent,
/*404294*/                OPC_MoveChild2,
/*404295*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404298*/                OPC_MoveChild0,
/*404299*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404302*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404304*/                OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->404331
/*404307*/                  OPC_MoveParent,
/*404308*/                  OPC_MoveParent,
/*404309*/                  OPC_CheckType, MVT::v8f32,
/*404311*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404313*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*404316*/                  OPC_EmitMergeInputChains1_2,
/*404317*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMSUB231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*404331*/                /*SwitchType*/ 24, MVT::v16i32,// ->404357
/*404333*/                  OPC_MoveParent,
/*404334*/                  OPC_MoveParent,
/*404335*/                  OPC_CheckType, MVT::v8f64,
/*404337*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*404339*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*404342*/                  OPC_EmitMergeInputChains1_2,
/*404343*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                            // Dst: (VFNMSUB231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*404357*/                0, // EndSwitchType
/*404358*/              0, /*End of Scope*/
/*404359*/            /*Scope*/ 82, /*->404442*/
/*404360*/              OPC_MoveChild0,
/*404361*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*404364*/              OPC_RecordMemRef,
/*404365*/              OPC_RecordNode, // #1 = 'ld' chained node
/*404366*/              OPC_CheckFoldableChainNode,
/*404367*/              OPC_RecordChild1, // #2 = $src3
/*404368*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404370*/              OPC_CheckPredicate, 9, // Predicate_load
/*404372*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*404374*/              OPC_MoveParent,
/*404375*/              OPC_RecordChild1, // #3 = $src1
/*404376*/              OPC_RecordChild2, // #4 = $src2
/*404377*/              OPC_MoveParent,
/*404378*/              OPC_MoveChild2,
/*404379*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404382*/              OPC_MoveChild0,
/*404383*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404386*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404388*/              OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->404415
/*404391*/                OPC_MoveParent,
/*404392*/                OPC_MoveParent,
/*404393*/                OPC_CheckType, MVT::v8f32,
/*404395*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404397*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*404400*/                OPC_EmitMergeInputChains1_1,
/*404401*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMSUB132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*404415*/              /*SwitchType*/ 24, MVT::v16i32,// ->404441
/*404417*/                OPC_MoveParent,
/*404418*/                OPC_MoveParent,
/*404419*/                OPC_CheckType, MVT::v8f64,
/*404421*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*404423*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*404426*/                OPC_EmitMergeInputChains1_1,
/*404427*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMSUB132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*404441*/              0, // EndSwitchType
/*404442*/            0, /*End of Scope*/
/*404443*/          /*SwitchOpcode*/ 106, TARGET_VAL(ISD::FP_ROUND),// ->404552
/*404446*/            OPC_MoveChild0,
/*404447*/            OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(X86ISD::VBROADCAST),// ->404502
/*404451*/              OPC_MoveChild0,
/*404452*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*404455*/              OPC_RecordMemRef,
/*404456*/              OPC_RecordNode, // #1 = 'ld' chained node
/*404457*/              OPC_CheckFoldableChainNode,
/*404458*/              OPC_RecordChild1, // #2 = $src
/*404459*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404461*/              OPC_CheckPredicate, 9, // Predicate_load
/*404463*/              OPC_CheckType, MVT::f64,
/*404465*/              OPC_MoveParent,
/*404466*/              OPC_MoveParent,
/*404467*/              OPC_MoveParent,
/*404468*/              OPC_MoveChild2,
/*404469*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404472*/              OPC_MoveChild0,
/*404473*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404476*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404478*/              OPC_CheckType, MVT::v8i32,
/*404480*/              OPC_MoveParent,
/*404481*/              OPC_MoveParent,
/*404482*/              OPC_CheckType, MVT::v8f32,
/*404484*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*404486*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404489*/              OPC_EmitMergeInputChains1_1,
/*404490*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fpround:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VCVTPD2PSZrmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404502*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->404551
/*404505*/              OPC_RecordMemRef,
/*404506*/              OPC_RecordNode, // #1 = 'ld' chained node
/*404507*/              OPC_CheckFoldableChainNode,
/*404508*/              OPC_RecordChild1, // #2 = $src
/*404509*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404511*/              OPC_CheckPredicate, 9, // Predicate_load
/*404513*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*404515*/              OPC_MoveParent,
/*404516*/              OPC_MoveParent,
/*404517*/              OPC_MoveChild2,
/*404518*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404521*/              OPC_MoveChild0,
/*404522*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404525*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404527*/              OPC_CheckType, MVT::v8i32,
/*404529*/              OPC_MoveParent,
/*404530*/              OPC_MoveParent,
/*404531*/              OPC_CheckType, MVT::v8f32,
/*404533*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*404535*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404538*/              OPC_EmitMergeInputChains1_1,
/*404539*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fpround:{ *:[v8f32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VCVTPD2PSZrmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404551*/            0, // EndSwitchOpcode
/*404552*/          /*SwitchOpcode*/ 106, TARGET_VAL(ISD::FP_EXTEND),// ->404661
/*404555*/            OPC_MoveChild0,
/*404556*/            OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(X86ISD::VBROADCAST),// ->404611
/*404560*/              OPC_MoveChild0,
/*404561*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*404564*/              OPC_RecordMemRef,
/*404565*/              OPC_RecordNode, // #1 = 'ld' chained node
/*404566*/              OPC_CheckFoldableChainNode,
/*404567*/              OPC_RecordChild1, // #2 = $src
/*404568*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404570*/              OPC_CheckPredicate, 9, // Predicate_load
/*404572*/              OPC_CheckType, MVT::f32,
/*404574*/              OPC_MoveParent,
/*404575*/              OPC_MoveParent,
/*404576*/              OPC_MoveParent,
/*404577*/              OPC_MoveChild2,
/*404578*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404581*/              OPC_MoveChild0,
/*404582*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404585*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404587*/              OPC_CheckType, MVT::v16i32,
/*404589*/              OPC_MoveParent,
/*404590*/              OPC_MoveParent,
/*404591*/              OPC_CheckType, MVT::v8f64,
/*404593*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*404595*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404598*/              OPC_EmitMergeInputChains1_1,
/*404599*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fpextend:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VCVTPS2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404611*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->404660
/*404614*/              OPC_RecordMemRef,
/*404615*/              OPC_RecordNode, // #1 = 'ld' chained node
/*404616*/              OPC_CheckFoldableChainNode,
/*404617*/              OPC_RecordChild1, // #2 = $src
/*404618*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404620*/              OPC_CheckPredicate, 9, // Predicate_load
/*404622*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*404624*/              OPC_MoveParent,
/*404625*/              OPC_MoveParent,
/*404626*/              OPC_MoveChild2,
/*404627*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404630*/              OPC_MoveChild0,
/*404631*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404634*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404636*/              OPC_CheckType, MVT::v16i32,
/*404638*/              OPC_MoveParent,
/*404639*/              OPC_MoveParent,
/*404640*/              OPC_CheckType, MVT::v8f64,
/*404642*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*404644*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404647*/              OPC_EmitMergeInputChains1_1,
/*404648*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fpextend:{ *:[v8f64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VCVTPS2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404660*/            0, // EndSwitchOpcode
/*404661*/          /*SwitchOpcode*/ 62|128,2/*318*/, TARGET_VAL(ISD::SINT_TO_FP),// ->404983
/*404665*/            OPC_MoveChild0,
/*404666*/            OPC_SwitchOpcode /*3 cases */, 81, TARGET_VAL(ISD::BITCAST),// ->404751
/*404670*/              OPC_MoveChild0,
/*404671*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*404674*/              OPC_RecordMemRef,
/*404675*/              OPC_RecordNode, // #1 = 'ld' chained node
/*404676*/              OPC_CheckFoldableChainNode,
/*404677*/              OPC_RecordChild1, // #2 = $src
/*404678*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404680*/              OPC_CheckPredicate, 9, // Predicate_load
/*404682*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*404684*/              OPC_CheckType, MVT::v4i64,
/*404686*/              OPC_MoveParent,
/*404687*/              OPC_CheckType, MVT::v8i32,
/*404689*/              OPC_MoveParent,
/*404690*/              OPC_MoveParent,
/*404691*/              OPC_MoveChild2,
/*404692*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404695*/              OPC_MoveChild0,
/*404696*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404699*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404701*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->404726
/*404704*/                OPC_MoveParent,
/*404705*/                OPC_MoveParent,
/*404706*/                OPC_CheckType, MVT::v8f64,
/*404708*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*404710*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404713*/                OPC_EmitMergeInputChains1_1,
/*404714*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTDQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404726*/              /*SwitchType*/ 22, MVT::v8i32,// ->404750
/*404728*/                OPC_MoveParent,
/*404729*/                OPC_MoveParent,
/*404730*/                OPC_CheckType, MVT::v8f32,
/*404732*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*404734*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404737*/                OPC_EmitMergeInputChains1_1,
/*404738*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTDQ2PSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404750*/              0, // EndSwitchType
/*404751*/            /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST),// ->404905
/*404755*/              OPC_MoveChild0,
/*404756*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*404759*/              OPC_RecordMemRef,
/*404760*/              OPC_RecordNode, // #1 = 'ld' chained node
/*404761*/              OPC_CheckFoldableChainNode,
/*404762*/              OPC_RecordChild1, // #2 = $src
/*404763*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404765*/              OPC_SwitchType /*2 cases */, 67, MVT::i32,// ->404835
/*404768*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*404770*/                OPC_MoveParent,
/*404771*/                OPC_CheckType, MVT::v8i32,
/*404773*/                OPC_MoveParent,
/*404774*/                OPC_MoveParent,
/*404775*/                OPC_MoveChild2,
/*404776*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404779*/                OPC_MoveChild0,
/*404780*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404783*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404785*/                OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->404810
/*404788*/                  OPC_MoveParent,
/*404789*/                  OPC_MoveParent,
/*404790*/                  OPC_CheckType, MVT::v8f64,
/*404792*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*404794*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404797*/                  OPC_EmitMergeInputChains1_1,
/*404798*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTDQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404810*/                /*SwitchType*/ 22, MVT::v8i32,// ->404834
/*404812*/                  OPC_MoveParent,
/*404813*/                  OPC_MoveParent,
/*404814*/                  OPC_CheckType, MVT::v8f32,
/*404816*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*404818*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404821*/                  OPC_EmitMergeInputChains1_1,
/*404822*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTDQ2PSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404834*/                0, // EndSwitchType
/*404835*/              /*SwitchType*/ 67, MVT::i64,// ->404904
/*404837*/                OPC_CheckPredicate, 9, // Predicate_load
/*404839*/                OPC_MoveParent,
/*404840*/                OPC_CheckType, MVT::v8i64,
/*404842*/                OPC_MoveParent,
/*404843*/                OPC_MoveParent,
/*404844*/                OPC_MoveChild2,
/*404845*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404848*/                OPC_MoveChild0,
/*404849*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404852*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404854*/                OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->404879
/*404857*/                  OPC_MoveParent,
/*404858*/                  OPC_MoveParent,
/*404859*/                  OPC_CheckType, MVT::v8f64,
/*404861*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*404863*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404866*/                  OPC_EmitMergeInputChains1_1,
/*404867*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTQQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404879*/                /*SwitchType*/ 22, MVT::v8i32,// ->404903
/*404881*/                  OPC_MoveParent,
/*404882*/                  OPC_MoveParent,
/*404883*/                  OPC_CheckType, MVT::v8f32,
/*404885*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*404887*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404890*/                  OPC_EmitMergeInputChains1_1,
/*404891*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTQQ2PSZrmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404903*/                0, // EndSwitchType
/*404904*/              0, // EndSwitchType
/*404905*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->404982
/*404908*/              OPC_RecordMemRef,
/*404909*/              OPC_RecordNode, // #1 = 'ld' chained node
/*404910*/              OPC_CheckFoldableChainNode,
/*404911*/              OPC_RecordChild1, // #2 = $src
/*404912*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404914*/              OPC_CheckPredicate, 9, // Predicate_load
/*404916*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*404918*/              OPC_CheckType, MVT::v8i64,
/*404920*/              OPC_MoveParent,
/*404921*/              OPC_MoveParent,
/*404922*/              OPC_MoveChild2,
/*404923*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*404926*/              OPC_MoveChild0,
/*404927*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*404930*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*404932*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->404957
/*404935*/                OPC_MoveParent,
/*404936*/                OPC_MoveParent,
/*404937*/                OPC_CheckType, MVT::v8f64,
/*404939*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*404941*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404944*/                OPC_EmitMergeInputChains1_1,
/*404945*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTQQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404957*/              /*SwitchType*/ 22, MVT::v8i32,// ->404981
/*404959*/                OPC_MoveParent,
/*404960*/                OPC_MoveParent,
/*404961*/                OPC_CheckType, MVT::v8f32,
/*404963*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*404965*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*404968*/                OPC_EmitMergeInputChains1_1,
/*404969*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTQQ2PSZrmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*404981*/              0, // EndSwitchType
/*404982*/            0, // EndSwitchOpcode
/*404983*/          /*SwitchOpcode*/ 62|128,2/*318*/, TARGET_VAL(ISD::UINT_TO_FP),// ->405305
/*404987*/            OPC_MoveChild0,
/*404988*/            OPC_SwitchOpcode /*3 cases */, 81, TARGET_VAL(ISD::BITCAST),// ->405073
/*404992*/              OPC_MoveChild0,
/*404993*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*404996*/              OPC_RecordMemRef,
/*404997*/              OPC_RecordNode, // #1 = 'ld' chained node
/*404998*/              OPC_CheckFoldableChainNode,
/*404999*/              OPC_RecordChild1, // #2 = $src
/*405000*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405002*/              OPC_CheckPredicate, 9, // Predicate_load
/*405004*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*405006*/              OPC_CheckType, MVT::v4i64,
/*405008*/              OPC_MoveParent,
/*405009*/              OPC_CheckType, MVT::v8i32,
/*405011*/              OPC_MoveParent,
/*405012*/              OPC_MoveParent,
/*405013*/              OPC_MoveChild2,
/*405014*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405017*/              OPC_MoveChild0,
/*405018*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405021*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405023*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->405048
/*405026*/                OPC_MoveParent,
/*405027*/                OPC_MoveParent,
/*405028*/                OPC_CheckType, MVT::v8f64,
/*405030*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*405032*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405035*/                OPC_EmitMergeInputChains1_1,
/*405036*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTUDQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405048*/              /*SwitchType*/ 22, MVT::v8i32,// ->405072
/*405050*/                OPC_MoveParent,
/*405051*/                OPC_MoveParent,
/*405052*/                OPC_CheckType, MVT::v8f32,
/*405054*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405056*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405059*/                OPC_EmitMergeInputChains1_1,
/*405060*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VCVTUDQ2PSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405072*/              0, // EndSwitchType
/*405073*/            /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST),// ->405227
/*405077*/              OPC_MoveChild0,
/*405078*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*405081*/              OPC_RecordMemRef,
/*405082*/              OPC_RecordNode, // #1 = 'ld' chained node
/*405083*/              OPC_CheckFoldableChainNode,
/*405084*/              OPC_RecordChild1, // #2 = $src
/*405085*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405087*/              OPC_SwitchType /*2 cases */, 67, MVT::i32,// ->405157
/*405090*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*405092*/                OPC_MoveParent,
/*405093*/                OPC_CheckType, MVT::v8i32,
/*405095*/                OPC_MoveParent,
/*405096*/                OPC_MoveParent,
/*405097*/                OPC_MoveChild2,
/*405098*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405101*/                OPC_MoveChild0,
/*405102*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405105*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405107*/                OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->405132
/*405110*/                  OPC_MoveParent,
/*405111*/                  OPC_MoveParent,
/*405112*/                  OPC_CheckType, MVT::v8f64,
/*405114*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*405116*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405119*/                  OPC_EmitMergeInputChains1_1,
/*405120*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTUDQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405132*/                /*SwitchType*/ 22, MVT::v8i32,// ->405156
/*405134*/                  OPC_MoveParent,
/*405135*/                  OPC_MoveParent,
/*405136*/                  OPC_CheckType, MVT::v8f32,
/*405138*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405140*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405143*/                  OPC_EmitMergeInputChains1_1,
/*405144*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTUDQ2PSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405156*/                0, // EndSwitchType
/*405157*/              /*SwitchType*/ 67, MVT::i64,// ->405226
/*405159*/                OPC_CheckPredicate, 9, // Predicate_load
/*405161*/                OPC_MoveParent,
/*405162*/                OPC_CheckType, MVT::v8i64,
/*405164*/                OPC_MoveParent,
/*405165*/                OPC_MoveParent,
/*405166*/                OPC_MoveChild2,
/*405167*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405170*/                OPC_MoveChild0,
/*405171*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405174*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405176*/                OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->405201
/*405179*/                  OPC_MoveParent,
/*405180*/                  OPC_MoveParent,
/*405181*/                  OPC_CheckType, MVT::v8f64,
/*405183*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*405185*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405188*/                  OPC_EmitMergeInputChains1_1,
/*405189*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTUQQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405201*/                /*SwitchType*/ 22, MVT::v8i32,// ->405225
/*405203*/                  OPC_MoveParent,
/*405204*/                  OPC_MoveParent,
/*405205*/                  OPC_CheckType, MVT::v8f32,
/*405207*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*405209*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405212*/                  OPC_EmitMergeInputChains1_1,
/*405213*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VCVTUQQ2PSZrmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405225*/                0, // EndSwitchType
/*405226*/              0, // EndSwitchType
/*405227*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->405304
/*405230*/              OPC_RecordMemRef,
/*405231*/              OPC_RecordNode, // #1 = 'ld' chained node
/*405232*/              OPC_CheckFoldableChainNode,
/*405233*/              OPC_RecordChild1, // #2 = $src
/*405234*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405236*/              OPC_CheckPredicate, 9, // Predicate_load
/*405238*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*405240*/              OPC_CheckType, MVT::v8i64,
/*405242*/              OPC_MoveParent,
/*405243*/              OPC_MoveParent,
/*405244*/              OPC_MoveChild2,
/*405245*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405248*/              OPC_MoveChild0,
/*405249*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405252*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405254*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->405279
/*405257*/                OPC_MoveParent,
/*405258*/                OPC_MoveParent,
/*405259*/                OPC_CheckType, MVT::v8f64,
/*405261*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*405263*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405266*/                OPC_EmitMergeInputChains1_1,
/*405267*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTUQQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405279*/              /*SwitchType*/ 22, MVT::v8i32,// ->405303
/*405281*/                OPC_MoveParent,
/*405282*/                OPC_MoveParent,
/*405283*/                OPC_CheckType, MVT::v8f32,
/*405285*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*405287*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405290*/                OPC_EmitMergeInputChains1_1,
/*405291*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VCVTUQQ2PSZrmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405303*/              0, // EndSwitchType
/*405304*/            0, // EndSwitchOpcode
/*405305*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::CVTPH2PS),// ->405367
/*405308*/            OPC_MoveChild0,
/*405309*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405312*/            OPC_MoveChild0,
/*405313*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*405316*/            OPC_RecordMemRef,
/*405317*/            OPC_RecordNode, // #1 = 'ld' chained node
/*405318*/            OPC_CheckFoldableChainNode,
/*405319*/            OPC_RecordChild1, // #2 = $src
/*405320*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405322*/            OPC_CheckPredicate, 9, // Predicate_load
/*405324*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*405326*/            OPC_CheckType, MVT::v2i64,
/*405328*/            OPC_MoveParent,
/*405329*/            OPC_CheckType, MVT::v8i16,
/*405331*/            OPC_MoveParent,
/*405332*/            OPC_MoveParent,
/*405333*/            OPC_MoveChild2,
/*405334*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405337*/            OPC_MoveChild0,
/*405338*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405341*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405343*/            OPC_CheckType, MVT::v8i32,
/*405345*/            OPC_MoveParent,
/*405346*/            OPC_MoveParent,
/*405347*/            OPC_CheckType, MVT::v8f32,
/*405349*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405351*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405354*/            OPC_EmitMergeInputChains1_1,
/*405355*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtph2ps:{ *:[v8f32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VCVTPH2PSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405367*/          /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::RSQRT14),// ->405544
/*405371*/            OPC_MoveChild0,
/*405372*/            OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(X86ISD::VBROADCAST),// ->405468
/*405376*/              OPC_MoveChild0,
/*405377*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*405380*/              OPC_RecordMemRef,
/*405381*/              OPC_RecordNode, // #1 = 'ld' chained node
/*405382*/              OPC_CheckFoldableChainNode,
/*405383*/              OPC_RecordChild1, // #2 = $src
/*405384*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405386*/              OPC_CheckPredicate, 9, // Predicate_load
/*405388*/              OPC_SwitchType /*2 cases */, 37, MVT::f64,// ->405428
/*405391*/                OPC_MoveParent,
/*405392*/                OPC_MoveParent,
/*405393*/                OPC_MoveParent,
/*405394*/                OPC_MoveChild2,
/*405395*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405398*/                OPC_MoveChild0,
/*405399*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405402*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405404*/                OPC_CheckType, MVT::v16i32,
/*405406*/                OPC_MoveParent,
/*405407*/                OPC_MoveParent,
/*405408*/                OPC_CheckType, MVT::v8f64,
/*405410*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*405412*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405415*/                OPC_EmitMergeInputChains1_1,
/*405416*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRSQRT14PDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405428*/              /*SwitchType*/ 37, MVT::f32,// ->405467
/*405430*/                OPC_MoveParent,
/*405431*/                OPC_MoveParent,
/*405432*/                OPC_MoveParent,
/*405433*/                OPC_MoveChild2,
/*405434*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405437*/                OPC_MoveChild0,
/*405438*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405441*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405443*/                OPC_CheckType, MVT::v8i32,
/*405445*/                OPC_MoveParent,
/*405446*/                OPC_MoveParent,
/*405447*/                OPC_CheckType, MVT::v8f32,
/*405449*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405451*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405454*/                OPC_EmitMergeInputChains1_1,
/*405455*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRSQRT14PSZ256mbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405467*/              0, // EndSwitchType
/*405468*/            /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->405543
/*405471*/              OPC_RecordMemRef,
/*405472*/              OPC_RecordNode, // #1 = 'ld' chained node
/*405473*/              OPC_CheckFoldableChainNode,
/*405474*/              OPC_RecordChild1, // #2 = $src
/*405475*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405477*/              OPC_CheckPredicate, 9, // Predicate_load
/*405479*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*405481*/              OPC_MoveParent,
/*405482*/              OPC_MoveParent,
/*405483*/              OPC_MoveChild2,
/*405484*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405487*/              OPC_MoveChild0,
/*405488*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405491*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405493*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->405518
/*405496*/                OPC_MoveParent,
/*405497*/                OPC_MoveParent,
/*405498*/                OPC_CheckType, MVT::v8f64,
/*405500*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*405502*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405505*/                OPC_EmitMergeInputChains1_1,
/*405506*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRSQRT14PDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405518*/              /*SwitchType*/ 22, MVT::v8i32,// ->405542
/*405520*/                OPC_MoveParent,
/*405521*/                OPC_MoveParent,
/*405522*/                OPC_CheckType, MVT::v8f32,
/*405524*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405526*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405529*/                OPC_EmitMergeInputChains1_1,
/*405530*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRSQRT14PSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405542*/              0, // EndSwitchType
/*405543*/            0, // EndSwitchOpcode
/*405544*/          /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::RCP14),// ->405721
/*405548*/            OPC_MoveChild0,
/*405549*/            OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(X86ISD::VBROADCAST),// ->405645
/*405553*/              OPC_MoveChild0,
/*405554*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*405557*/              OPC_RecordMemRef,
/*405558*/              OPC_RecordNode, // #1 = 'ld' chained node
/*405559*/              OPC_CheckFoldableChainNode,
/*405560*/              OPC_RecordChild1, // #2 = $src
/*405561*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405563*/              OPC_CheckPredicate, 9, // Predicate_load
/*405565*/              OPC_SwitchType /*2 cases */, 37, MVT::f64,// ->405605
/*405568*/                OPC_MoveParent,
/*405569*/                OPC_MoveParent,
/*405570*/                OPC_MoveParent,
/*405571*/                OPC_MoveChild2,
/*405572*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405575*/                OPC_MoveChild0,
/*405576*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405579*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405581*/                OPC_CheckType, MVT::v16i32,
/*405583*/                OPC_MoveParent,
/*405584*/                OPC_MoveParent,
/*405585*/                OPC_CheckType, MVT::v8f64,
/*405587*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*405589*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405592*/                OPC_EmitMergeInputChains1_1,
/*405593*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRCP14PDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405605*/              /*SwitchType*/ 37, MVT::f32,// ->405644
/*405607*/                OPC_MoveParent,
/*405608*/                OPC_MoveParent,
/*405609*/                OPC_MoveParent,
/*405610*/                OPC_MoveChild2,
/*405611*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405614*/                OPC_MoveChild0,
/*405615*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405618*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405620*/                OPC_CheckType, MVT::v8i32,
/*405622*/                OPC_MoveParent,
/*405623*/                OPC_MoveParent,
/*405624*/                OPC_CheckType, MVT::v8f32,
/*405626*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405628*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405631*/                OPC_EmitMergeInputChains1_1,
/*405632*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRCP14PSZ256mbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405644*/              0, // EndSwitchType
/*405645*/            /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->405720
/*405648*/              OPC_RecordMemRef,
/*405649*/              OPC_RecordNode, // #1 = 'ld' chained node
/*405650*/              OPC_CheckFoldableChainNode,
/*405651*/              OPC_RecordChild1, // #2 = $src
/*405652*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405654*/              OPC_CheckPredicate, 9, // Predicate_load
/*405656*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*405658*/              OPC_MoveParent,
/*405659*/              OPC_MoveParent,
/*405660*/              OPC_MoveChild2,
/*405661*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405664*/              OPC_MoveChild0,
/*405665*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405668*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405670*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->405695
/*405673*/                OPC_MoveParent,
/*405674*/                OPC_MoveParent,
/*405675*/                OPC_CheckType, MVT::v8f64,
/*405677*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*405679*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405682*/                OPC_EmitMergeInputChains1_1,
/*405683*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRCP14PDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405695*/              /*SwitchType*/ 22, MVT::v8i32,// ->405719
/*405697*/                OPC_MoveParent,
/*405698*/                OPC_MoveParent,
/*405699*/                OPC_CheckType, MVT::v8f32,
/*405701*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405703*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405706*/                OPC_EmitMergeInputChains1_1,
/*405707*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRCP14PSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405719*/              0, // EndSwitchType
/*405720*/            0, // EndSwitchOpcode
/*405721*/          /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(ISD::FSQRT),// ->405898
/*405725*/            OPC_MoveChild0,
/*405726*/            OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(X86ISD::VBROADCAST),// ->405822
/*405730*/              OPC_MoveChild0,
/*405731*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*405734*/              OPC_RecordMemRef,
/*405735*/              OPC_RecordNode, // #1 = 'ld' chained node
/*405736*/              OPC_CheckFoldableChainNode,
/*405737*/              OPC_RecordChild1, // #2 = $src
/*405738*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405740*/              OPC_CheckPredicate, 9, // Predicate_load
/*405742*/              OPC_SwitchType /*2 cases */, 37, MVT::f64,// ->405782
/*405745*/                OPC_MoveParent,
/*405746*/                OPC_MoveParent,
/*405747*/                OPC_MoveParent,
/*405748*/                OPC_MoveChild2,
/*405749*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405752*/                OPC_MoveChild0,
/*405753*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405756*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405758*/                OPC_CheckType, MVT::v16i32,
/*405760*/                OPC_MoveParent,
/*405761*/                OPC_MoveParent,
/*405762*/                OPC_CheckType, MVT::v8f64,
/*405764*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*405766*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405769*/                OPC_EmitMergeInputChains1_1,
/*405770*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSQRTPDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405782*/              /*SwitchType*/ 37, MVT::f32,// ->405821
/*405784*/                OPC_MoveParent,
/*405785*/                OPC_MoveParent,
/*405786*/                OPC_MoveParent,
/*405787*/                OPC_MoveChild2,
/*405788*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405791*/                OPC_MoveChild0,
/*405792*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405795*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405797*/                OPC_CheckType, MVT::v8i32,
/*405799*/                OPC_MoveParent,
/*405800*/                OPC_MoveParent,
/*405801*/                OPC_CheckType, MVT::v8f32,
/*405803*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405805*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405808*/                OPC_EmitMergeInputChains1_1,
/*405809*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSQRTPSZ256mbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405821*/              0, // EndSwitchType
/*405822*/            /*SwitchOpcode*/ 72, TARGET_VAL(ISD::LOAD),// ->405897
/*405825*/              OPC_RecordMemRef,
/*405826*/              OPC_RecordNode, // #1 = 'ld' chained node
/*405827*/              OPC_CheckFoldableChainNode,
/*405828*/              OPC_RecordChild1, // #2 = $src
/*405829*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405831*/              OPC_CheckPredicate, 9, // Predicate_load
/*405833*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*405835*/              OPC_MoveParent,
/*405836*/              OPC_MoveParent,
/*405837*/              OPC_MoveChild2,
/*405838*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405841*/              OPC_MoveChild0,
/*405842*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405845*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405847*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i32,// ->405872
/*405850*/                OPC_MoveParent,
/*405851*/                OPC_MoveParent,
/*405852*/                OPC_CheckType, MVT::v8f64,
/*405854*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*405856*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405859*/                OPC_EmitMergeInputChains1_1,
/*405860*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VSQRTPDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405872*/              /*SwitchType*/ 22, MVT::v8i32,// ->405896
/*405874*/                OPC_MoveParent,
/*405875*/                OPC_MoveParent,
/*405876*/                OPC_CheckType, MVT::v8f32,
/*405878*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405880*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*405883*/                OPC_EmitMergeInputChains1_1,
/*405884*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VSQRTPSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*405896*/              0, // EndSwitchType
/*405897*/            0, // EndSwitchOpcode
/*405898*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::VREDUCE),// ->406081
/*405902*/            OPC_MoveChild0,
/*405903*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::LOAD),// ->405991
/*405907*/              OPC_RecordMemRef,
/*405908*/              OPC_RecordNode, // #1 = 'ld' chained node
/*405909*/              OPC_CheckFoldableChainNode,
/*405910*/              OPC_RecordChild1, // #2 = $src1
/*405911*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405913*/              OPC_CheckPredicate, 9, // Predicate_load
/*405915*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*405917*/              OPC_MoveParent,
/*405918*/              OPC_RecordChild1, // #3 = $src2
/*405919*/              OPC_MoveChild1,
/*405920*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*405923*/              OPC_MoveParent,
/*405924*/              OPC_MoveParent,
/*405925*/              OPC_MoveChild2,
/*405926*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*405929*/              OPC_MoveChild0,
/*405930*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*405933*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*405935*/              OPC_SwitchType /*2 cases */, 25, MVT::v8i32,// ->405963
/*405938*/                OPC_MoveParent,
/*405939*/                OPC_MoveParent,
/*405940*/                OPC_CheckType, MVT::v8f32,
/*405942*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*405944*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*405947*/                OPC_EmitMergeInputChains1_1,
/*405948*/                OPC_EmitConvertToTarget, 3,
/*405950*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VREDUCEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*405963*/              /*SwitchType*/ 25, MVT::v16i32,// ->405990
/*405965*/                OPC_MoveParent,
/*405966*/                OPC_MoveParent,
/*405967*/                OPC_CheckType, MVT::v8f64,
/*405969*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*405971*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*405974*/                OPC_EmitMergeInputChains1_1,
/*405975*/                OPC_EmitConvertToTarget, 3,
/*405977*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VREDUCEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*405990*/              0, // EndSwitchType
/*405991*/            /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VBROADCAST),// ->406080
/*405994*/              OPC_MoveChild0,
/*405995*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*405998*/              OPC_RecordMemRef,
/*405999*/              OPC_RecordNode, // #1 = 'ld' chained node
/*406000*/              OPC_CheckFoldableChainNode,
/*406001*/              OPC_RecordChild1, // #2 = $src1
/*406002*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406004*/              OPC_CheckPredicate, 9, // Predicate_load
/*406006*/              OPC_SwitchType /*2 cases */, 34, MVT::f32,// ->406043
/*406009*/                OPC_MoveParent,
/*406010*/                OPC_MoveParent,
/*406011*/                OPC_RecordChild1, // #3 = $src2
/*406012*/                OPC_MoveChild1,
/*406013*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*406016*/                OPC_MoveParent,
/*406017*/                OPC_MoveParent,
/*406018*/                OPC_RecordChild2, // #4 = $src0
/*406019*/                OPC_CheckType, MVT::v8f32,
/*406021*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*406023*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*406026*/                OPC_EmitMergeInputChains1_1,
/*406027*/                OPC_EmitConvertToTarget, 3,
/*406029*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 34
                          // Dst: (VREDUCEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*406043*/              /*SwitchType*/ 34, MVT::f64,// ->406079
/*406045*/                OPC_MoveParent,
/*406046*/                OPC_MoveParent,
/*406047*/                OPC_RecordChild1, // #3 = $src2
/*406048*/                OPC_MoveChild1,
/*406049*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*406052*/                OPC_MoveParent,
/*406053*/                OPC_MoveParent,
/*406054*/                OPC_RecordChild2, // #4 = $src0
/*406055*/                OPC_CheckType, MVT::v8f64,
/*406057*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*406059*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*406062*/                OPC_EmitMergeInputChains1_1,
/*406063*/                OPC_EmitConvertToTarget, 3,
/*406065*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 34
                          // Dst: (VREDUCEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*406079*/              0, // EndSwitchType
/*406080*/            0, // EndSwitchOpcode
/*406081*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::VRNDSCALE),// ->406264
/*406085*/            OPC_MoveChild0,
/*406086*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::LOAD),// ->406174
/*406090*/              OPC_RecordMemRef,
/*406091*/              OPC_RecordNode, // #1 = 'ld' chained node
/*406092*/              OPC_CheckFoldableChainNode,
/*406093*/              OPC_RecordChild1, // #2 = $src1
/*406094*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406096*/              OPC_CheckPredicate, 9, // Predicate_load
/*406098*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*406100*/              OPC_MoveParent,
/*406101*/              OPC_RecordChild1, // #3 = $src2
/*406102*/              OPC_MoveChild1,
/*406103*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*406106*/              OPC_MoveParent,
/*406107*/              OPC_MoveParent,
/*406108*/              OPC_MoveChild2,
/*406109*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*406112*/              OPC_MoveChild0,
/*406113*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*406116*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*406118*/              OPC_SwitchType /*2 cases */, 25, MVT::v8i32,// ->406146
/*406121*/                OPC_MoveParent,
/*406122*/                OPC_MoveParent,
/*406123*/                OPC_CheckType, MVT::v8f32,
/*406125*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406127*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*406130*/                OPC_EmitMergeInputChains1_1,
/*406131*/                OPC_EmitConvertToTarget, 3,
/*406133*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*406146*/              /*SwitchType*/ 25, MVT::v16i32,// ->406173
/*406148*/                OPC_MoveParent,
/*406149*/                OPC_MoveParent,
/*406150*/                OPC_CheckType, MVT::v8f64,
/*406152*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*406154*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*406157*/                OPC_EmitMergeInputChains1_1,
/*406158*/                OPC_EmitConvertToTarget, 3,
/*406160*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*406173*/              0, // EndSwitchType
/*406174*/            /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VBROADCAST),// ->406263
/*406177*/              OPC_MoveChild0,
/*406178*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*406181*/              OPC_RecordMemRef,
/*406182*/              OPC_RecordNode, // #1 = 'ld' chained node
/*406183*/              OPC_CheckFoldableChainNode,
/*406184*/              OPC_RecordChild1, // #2 = $src1
/*406185*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406187*/              OPC_CheckPredicate, 9, // Predicate_load
/*406189*/              OPC_SwitchType /*2 cases */, 34, MVT::f32,// ->406226
/*406192*/                OPC_MoveParent,
/*406193*/                OPC_MoveParent,
/*406194*/                OPC_RecordChild1, // #3 = $src2
/*406195*/                OPC_MoveChild1,
/*406196*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*406199*/                OPC_MoveParent,
/*406200*/                OPC_MoveParent,
/*406201*/                OPC_RecordChild2, // #4 = $src0
/*406202*/                OPC_CheckType, MVT::v8f32,
/*406204*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406206*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*406209*/                OPC_EmitMergeInputChains1_1,
/*406210*/                OPC_EmitConvertToTarget, 3,
/*406212*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 34
                          // Dst: (VRNDSCALEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*406226*/              /*SwitchType*/ 34, MVT::f64,// ->406262
/*406228*/                OPC_MoveParent,
/*406229*/                OPC_MoveParent,
/*406230*/                OPC_RecordChild1, // #3 = $src2
/*406231*/                OPC_MoveChild1,
/*406232*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*406235*/                OPC_MoveParent,
/*406236*/                OPC_MoveParent,
/*406237*/                OPC_RecordChild2, // #4 = $src0
/*406238*/                OPC_CheckType, MVT::v8f64,
/*406240*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*406242*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*406245*/                OPC_EmitMergeInputChains1_1,
/*406246*/                OPC_EmitConvertToTarget, 3,
/*406248*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 34
                          // Dst: (VRNDSCALEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*406262*/              0, // EndSwitchType
/*406263*/            0, // EndSwitchOpcode
/*406264*/          /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(X86ISD::VGETMANT),// ->406447
/*406268*/            OPC_MoveChild0,
/*406269*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::LOAD),// ->406357
/*406273*/              OPC_RecordMemRef,
/*406274*/              OPC_RecordNode, // #1 = 'ld' chained node
/*406275*/              OPC_CheckFoldableChainNode,
/*406276*/              OPC_RecordChild1, // #2 = $src1
/*406277*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406279*/              OPC_CheckPredicate, 9, // Predicate_load
/*406281*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*406283*/              OPC_MoveParent,
/*406284*/              OPC_RecordChild1, // #3 = $src2
/*406285*/              OPC_MoveChild1,
/*406286*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*406289*/              OPC_MoveParent,
/*406290*/              OPC_MoveParent,
/*406291*/              OPC_MoveChild2,
/*406292*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*406295*/              OPC_MoveChild0,
/*406296*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*406299*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*406301*/              OPC_SwitchType /*2 cases */, 25, MVT::v8i32,// ->406329
/*406304*/                OPC_MoveParent,
/*406305*/                OPC_MoveParent,
/*406306*/                OPC_CheckType, MVT::v8f32,
/*406308*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406310*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*406313*/                OPC_EmitMergeInputChains1_1,
/*406314*/                OPC_EmitConvertToTarget, 3,
/*406316*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VGETMANTPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*406329*/              /*SwitchType*/ 25, MVT::v16i32,// ->406356
/*406331*/                OPC_MoveParent,
/*406332*/                OPC_MoveParent,
/*406333*/                OPC_CheckType, MVT::v8f64,
/*406335*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*406337*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*406340*/                OPC_EmitMergeInputChains1_1,
/*406341*/                OPC_EmitConvertToTarget, 3,
/*406343*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VGETMANTPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*406356*/              0, // EndSwitchType
/*406357*/            /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::VBROADCAST),// ->406446
/*406360*/              OPC_MoveChild0,
/*406361*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*406364*/              OPC_RecordMemRef,
/*406365*/              OPC_RecordNode, // #1 = 'ld' chained node
/*406366*/              OPC_CheckFoldableChainNode,
/*406367*/              OPC_RecordChild1, // #2 = $src1
/*406368*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406370*/              OPC_CheckPredicate, 9, // Predicate_load
/*406372*/              OPC_SwitchType /*2 cases */, 34, MVT::f32,// ->406409
/*406375*/                OPC_MoveParent,
/*406376*/                OPC_MoveParent,
/*406377*/                OPC_RecordChild1, // #3 = $src2
/*406378*/                OPC_MoveChild1,
/*406379*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*406382*/                OPC_MoveParent,
/*406383*/                OPC_MoveParent,
/*406384*/                OPC_RecordChild2, // #4 = $src0
/*406385*/                OPC_CheckType, MVT::v8f32,
/*406387*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406389*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*406392*/                OPC_EmitMergeInputChains1_1,
/*406393*/                OPC_EmitConvertToTarget, 3,
/*406395*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 34
                          // Dst: (VGETMANTPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*406409*/              /*SwitchType*/ 34, MVT::f64,// ->406445
/*406411*/                OPC_MoveParent,
/*406412*/                OPC_MoveParent,
/*406413*/                OPC_RecordChild1, // #3 = $src2
/*406414*/                OPC_MoveChild1,
/*406415*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*406418*/                OPC_MoveParent,
/*406419*/                OPC_MoveParent,
/*406420*/                OPC_RecordChild2, // #4 = $src0
/*406421*/                OPC_CheckType, MVT::v8f64,
/*406423*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*406425*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*406428*/                OPC_EmitMergeInputChains1_1,
/*406429*/                OPC_EmitConvertToTarget, 3,
/*406431*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 34
                          // Dst: (VGETMANTPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*406445*/              0, // EndSwitchType
/*406446*/            0, // EndSwitchOpcode
/*406447*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::VRANGE),// ->406635
/*406451*/            OPC_RecordChild0, // #1 = $src1
/*406452*/            OPC_MoveChild1,
/*406453*/            OPC_SwitchOpcode /*2 cases */, 86, TARGET_VAL(ISD::LOAD),// ->406543
/*406457*/              OPC_RecordMemRef,
/*406458*/              OPC_RecordNode, // #2 = 'ld' chained node
/*406459*/              OPC_CheckFoldableChainNode,
/*406460*/              OPC_RecordChild1, // #3 = $src2
/*406461*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406463*/              OPC_CheckPredicate, 9, // Predicate_load
/*406465*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*406467*/              OPC_MoveParent,
/*406468*/              OPC_RecordChild2, // #4 = $src3
/*406469*/              OPC_MoveChild2,
/*406470*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*406473*/              OPC_MoveParent,
/*406474*/              OPC_MoveParent,
/*406475*/              OPC_MoveChild2,
/*406476*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*406479*/              OPC_MoveChild0,
/*406480*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*406483*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*406485*/              OPC_SwitchType /*2 cases */, 26, MVT::v16i32,// ->406514
/*406488*/                OPC_MoveParent,
/*406489*/                OPC_MoveParent,
/*406490*/                OPC_CheckType, MVT::v8f64,
/*406492*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*406494*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*406497*/                OPC_EmitMergeInputChains1_2,
/*406498*/                OPC_EmitConvertToTarget, 4,
/*406500*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRANGEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*406514*/              /*SwitchType*/ 26, MVT::v8i32,// ->406542
/*406516*/                OPC_MoveParent,
/*406517*/                OPC_MoveParent,
/*406518*/                OPC_CheckType, MVT::v8f32,
/*406520*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*406522*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*406525*/                OPC_EmitMergeInputChains1_2,
/*406526*/                OPC_EmitConvertToTarget, 4,
/*406528*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRANGEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*406542*/              0, // EndSwitchType
/*406543*/            /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::VBROADCAST),// ->406634
/*406546*/              OPC_MoveChild0,
/*406547*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*406550*/              OPC_RecordMemRef,
/*406551*/              OPC_RecordNode, // #2 = 'ld' chained node
/*406552*/              OPC_CheckFoldableChainNode,
/*406553*/              OPC_RecordChild1, // #3 = $src2
/*406554*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406556*/              OPC_CheckPredicate, 9, // Predicate_load
/*406558*/              OPC_SwitchType /*2 cases */, 35, MVT::f64,// ->406596
/*406561*/                OPC_MoveParent,
/*406562*/                OPC_MoveParent,
/*406563*/                OPC_RecordChild2, // #4 = $src3
/*406564*/                OPC_MoveChild2,
/*406565*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*406568*/                OPC_MoveParent,
/*406569*/                OPC_MoveParent,
/*406570*/                OPC_RecordChild2, // #5 = $src0
/*406571*/                OPC_CheckType, MVT::v8f64,
/*406573*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*406575*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*406578*/                OPC_EmitMergeInputChains1_2,
/*406579*/                OPC_EmitConvertToTarget, 4,
/*406581*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 34
                          // Dst: (VRANGEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*406596*/              /*SwitchType*/ 35, MVT::f32,// ->406633
/*406598*/                OPC_MoveParent,
/*406599*/                OPC_MoveParent,
/*406600*/                OPC_RecordChild2, // #4 = $src3
/*406601*/                OPC_MoveChild2,
/*406602*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*406605*/                OPC_MoveParent,
/*406606*/                OPC_MoveParent,
/*406607*/                OPC_RecordChild2, // #5 = $src0
/*406608*/                OPC_CheckType, MVT::v8f32,
/*406610*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*406612*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*406615*/                OPC_EmitMergeInputChains1_2,
/*406616*/                OPC_EmitConvertToTarget, 4,
/*406618*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 34
                          // Dst: (VRANGEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*406633*/              0, // EndSwitchType
/*406634*/            0, // EndSwitchOpcode
/*406635*/          /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FFLOOR),// ->406828
/*406639*/            OPC_MoveChild0,
/*406640*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(X86ISD::VBROADCAST),// ->406744
/*406644*/              OPC_MoveChild0,
/*406645*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*406648*/              OPC_RecordMemRef,
/*406649*/              OPC_RecordNode, // #1 = 'ld' chained node
/*406650*/              OPC_CheckFoldableChainNode,
/*406651*/              OPC_RecordChild1, // #2 = $src
/*406652*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406654*/              OPC_CheckPredicate, 9, // Predicate_load
/*406656*/              OPC_SwitchType /*2 cases */, 41, MVT::f64,// ->406700
/*406659*/                OPC_MoveParent,
/*406660*/                OPC_MoveParent,
/*406661*/                OPC_MoveParent,
/*406662*/                OPC_MoveChild2,
/*406663*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*406666*/                OPC_MoveChild0,
/*406667*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*406670*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*406672*/                OPC_CheckType, MVT::v16i32,
/*406674*/                OPC_MoveParent,
/*406675*/                OPC_MoveParent,
/*406676*/                OPC_CheckType, MVT::v8f64,
/*406678*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*406680*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*406683*/                OPC_EmitMergeInputChains1_1,
/*406684*/                OPC_EmitInteger, MVT::i32, 9, 
/*406687*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*406700*/              /*SwitchType*/ 41, MVT::f32,// ->406743
/*406702*/                OPC_MoveParent,
/*406703*/                OPC_MoveParent,
/*406704*/                OPC_MoveParent,
/*406705*/                OPC_MoveChild2,
/*406706*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*406709*/                OPC_MoveChild0,
/*406710*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*406713*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*406715*/                OPC_CheckType, MVT::v8i32,
/*406717*/                OPC_MoveParent,
/*406718*/                OPC_MoveParent,
/*406719*/                OPC_CheckType, MVT::v8f32,
/*406721*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*406723*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*406726*/                OPC_EmitMergeInputChains1_1,
/*406727*/                OPC_EmitInteger, MVT::i32, 9, 
/*406730*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*406743*/              0, // EndSwitchType
/*406744*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->406827
/*406747*/              OPC_RecordMemRef,
/*406748*/              OPC_RecordNode, // #1 = 'ld' chained node
/*406749*/              OPC_CheckFoldableChainNode,
/*406750*/              OPC_RecordChild1, // #2 = $src
/*406751*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406753*/              OPC_CheckPredicate, 9, // Predicate_load
/*406755*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*406757*/              OPC_MoveParent,
/*406758*/              OPC_MoveParent,
/*406759*/              OPC_MoveChild2,
/*406760*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*406763*/              OPC_MoveChild0,
/*406764*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*406767*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*406769*/              OPC_SwitchType /*2 cases */, 26, MVT::v16i32,// ->406798
/*406772*/                OPC_MoveParent,
/*406773*/                OPC_MoveParent,
/*406774*/                OPC_CheckType, MVT::v8f64,
/*406776*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*406778*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*406781*/                OPC_EmitMergeInputChains1_1,
/*406782*/                OPC_EmitInteger, MVT::i32, 9, 
/*406785*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*406798*/              /*SwitchType*/ 26, MVT::v8i32,// ->406826
/*406800*/                OPC_MoveParent,
/*406801*/                OPC_MoveParent,
/*406802*/                OPC_CheckType, MVT::v8f32,
/*406804*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*406806*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*406809*/                OPC_EmitMergeInputChains1_1,
/*406810*/                OPC_EmitInteger, MVT::i32, 9, 
/*406813*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*406826*/              0, // EndSwitchType
/*406827*/            0, // EndSwitchOpcode
/*406828*/          /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FNEARBYINT),// ->407021
/*406832*/            OPC_MoveChild0,
/*406833*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(X86ISD::VBROADCAST),// ->406937
/*406837*/              OPC_MoveChild0,
/*406838*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*406841*/              OPC_RecordMemRef,
/*406842*/              OPC_RecordNode, // #1 = 'ld' chained node
/*406843*/              OPC_CheckFoldableChainNode,
/*406844*/              OPC_RecordChild1, // #2 = $src
/*406845*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406847*/              OPC_CheckPredicate, 9, // Predicate_load
/*406849*/              OPC_SwitchType /*2 cases */, 41, MVT::f64,// ->406893
/*406852*/                OPC_MoveParent,
/*406853*/                OPC_MoveParent,
/*406854*/                OPC_MoveParent,
/*406855*/                OPC_MoveChild2,
/*406856*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*406859*/                OPC_MoveChild0,
/*406860*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*406863*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*406865*/                OPC_CheckType, MVT::v16i32,
/*406867*/                OPC_MoveParent,
/*406868*/                OPC_MoveParent,
/*406869*/                OPC_CheckType, MVT::v8f64,
/*406871*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*406873*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*406876*/                OPC_EmitMergeInputChains1_1,
/*406877*/                OPC_EmitInteger, MVT::i32, 12, 
/*406880*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*406893*/              /*SwitchType*/ 41, MVT::f32,// ->406936
/*406895*/                OPC_MoveParent,
/*406896*/                OPC_MoveParent,
/*406897*/                OPC_MoveParent,
/*406898*/                OPC_MoveChild2,
/*406899*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*406902*/                OPC_MoveChild0,
/*406903*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*406906*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*406908*/                OPC_CheckType, MVT::v8i32,
/*406910*/                OPC_MoveParent,
/*406911*/                OPC_MoveParent,
/*406912*/                OPC_CheckType, MVT::v8f32,
/*406914*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*406916*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*406919*/                OPC_EmitMergeInputChains1_1,
/*406920*/                OPC_EmitInteger, MVT::i32, 12, 
/*406923*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*406936*/              0, // EndSwitchType
/*406937*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->407020
/*406940*/              OPC_RecordMemRef,
/*406941*/              OPC_RecordNode, // #1 = 'ld' chained node
/*406942*/              OPC_CheckFoldableChainNode,
/*406943*/              OPC_RecordChild1, // #2 = $src
/*406944*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406946*/              OPC_CheckPredicate, 9, // Predicate_load
/*406948*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*406950*/              OPC_MoveParent,
/*406951*/              OPC_MoveParent,
/*406952*/              OPC_MoveChild2,
/*406953*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*406956*/              OPC_MoveChild0,
/*406957*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*406960*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*406962*/              OPC_SwitchType /*2 cases */, 26, MVT::v16i32,// ->406991
/*406965*/                OPC_MoveParent,
/*406966*/                OPC_MoveParent,
/*406967*/                OPC_CheckType, MVT::v8f64,
/*406969*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*406971*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*406974*/                OPC_EmitMergeInputChains1_1,
/*406975*/                OPC_EmitInteger, MVT::i32, 12, 
/*406978*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*406991*/              /*SwitchType*/ 26, MVT::v8i32,// ->407019
/*406993*/                OPC_MoveParent,
/*406994*/                OPC_MoveParent,
/*406995*/                OPC_CheckType, MVT::v8f32,
/*406997*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*406999*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407002*/                OPC_EmitMergeInputChains1_1,
/*407003*/                OPC_EmitInteger, MVT::i32, 12, 
/*407006*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*407019*/              0, // EndSwitchType
/*407020*/            0, // EndSwitchOpcode
/*407021*/          /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FCEIL),// ->407214
/*407025*/            OPC_MoveChild0,
/*407026*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(X86ISD::VBROADCAST),// ->407130
/*407030*/              OPC_MoveChild0,
/*407031*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*407034*/              OPC_RecordMemRef,
/*407035*/              OPC_RecordNode, // #1 = 'ld' chained node
/*407036*/              OPC_CheckFoldableChainNode,
/*407037*/              OPC_RecordChild1, // #2 = $src
/*407038*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407040*/              OPC_CheckPredicate, 9, // Predicate_load
/*407042*/              OPC_SwitchType /*2 cases */, 41, MVT::f64,// ->407086
/*407045*/                OPC_MoveParent,
/*407046*/                OPC_MoveParent,
/*407047*/                OPC_MoveParent,
/*407048*/                OPC_MoveChild2,
/*407049*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407052*/                OPC_MoveChild0,
/*407053*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407056*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407058*/                OPC_CheckType, MVT::v16i32,
/*407060*/                OPC_MoveParent,
/*407061*/                OPC_MoveParent,
/*407062*/                OPC_CheckType, MVT::v8f64,
/*407064*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*407066*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407069*/                OPC_EmitMergeInputChains1_1,
/*407070*/                OPC_EmitInteger, MVT::i32, 10, 
/*407073*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*407086*/              /*SwitchType*/ 41, MVT::f32,// ->407129
/*407088*/                OPC_MoveParent,
/*407089*/                OPC_MoveParent,
/*407090*/                OPC_MoveParent,
/*407091*/                OPC_MoveChild2,
/*407092*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407095*/                OPC_MoveChild0,
/*407096*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407099*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407101*/                OPC_CheckType, MVT::v8i32,
/*407103*/                OPC_MoveParent,
/*407104*/                OPC_MoveParent,
/*407105*/                OPC_CheckType, MVT::v8f32,
/*407107*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*407109*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407112*/                OPC_EmitMergeInputChains1_1,
/*407113*/                OPC_EmitInteger, MVT::i32, 10, 
/*407116*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*407129*/              0, // EndSwitchType
/*407130*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->407213
/*407133*/              OPC_RecordMemRef,
/*407134*/              OPC_RecordNode, // #1 = 'ld' chained node
/*407135*/              OPC_CheckFoldableChainNode,
/*407136*/              OPC_RecordChild1, // #2 = $src
/*407137*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407139*/              OPC_CheckPredicate, 9, // Predicate_load
/*407141*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*407143*/              OPC_MoveParent,
/*407144*/              OPC_MoveParent,
/*407145*/              OPC_MoveChild2,
/*407146*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407149*/              OPC_MoveChild0,
/*407150*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407153*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407155*/              OPC_SwitchType /*2 cases */, 26, MVT::v16i32,// ->407184
/*407158*/                OPC_MoveParent,
/*407159*/                OPC_MoveParent,
/*407160*/                OPC_CheckType, MVT::v8f64,
/*407162*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*407164*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407167*/                OPC_EmitMergeInputChains1_1,
/*407168*/                OPC_EmitInteger, MVT::i32, 10, 
/*407171*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*407184*/              /*SwitchType*/ 26, MVT::v8i32,// ->407212
/*407186*/                OPC_MoveParent,
/*407187*/                OPC_MoveParent,
/*407188*/                OPC_CheckType, MVT::v8f32,
/*407190*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*407192*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407195*/                OPC_EmitMergeInputChains1_1,
/*407196*/                OPC_EmitInteger, MVT::i32, 10, 
/*407199*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*407212*/              0, // EndSwitchType
/*407213*/            0, // EndSwitchOpcode
/*407214*/          /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FRINT),// ->407407
/*407218*/            OPC_MoveChild0,
/*407219*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(X86ISD::VBROADCAST),// ->407323
/*407223*/              OPC_MoveChild0,
/*407224*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*407227*/              OPC_RecordMemRef,
/*407228*/              OPC_RecordNode, // #1 = 'ld' chained node
/*407229*/              OPC_CheckFoldableChainNode,
/*407230*/              OPC_RecordChild1, // #2 = $src
/*407231*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407233*/              OPC_CheckPredicate, 9, // Predicate_load
/*407235*/              OPC_SwitchType /*2 cases */, 41, MVT::f64,// ->407279
/*407238*/                OPC_MoveParent,
/*407239*/                OPC_MoveParent,
/*407240*/                OPC_MoveParent,
/*407241*/                OPC_MoveChild2,
/*407242*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407245*/                OPC_MoveChild0,
/*407246*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407249*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407251*/                OPC_CheckType, MVT::v16i32,
/*407253*/                OPC_MoveParent,
/*407254*/                OPC_MoveParent,
/*407255*/                OPC_CheckType, MVT::v8f64,
/*407257*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*407259*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407262*/                OPC_EmitMergeInputChains1_1,
/*407263*/                OPC_EmitInteger, MVT::i32, 4, 
/*407266*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*407279*/              /*SwitchType*/ 41, MVT::f32,// ->407322
/*407281*/                OPC_MoveParent,
/*407282*/                OPC_MoveParent,
/*407283*/                OPC_MoveParent,
/*407284*/                OPC_MoveChild2,
/*407285*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407288*/                OPC_MoveChild0,
/*407289*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407292*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407294*/                OPC_CheckType, MVT::v8i32,
/*407296*/                OPC_MoveParent,
/*407297*/                OPC_MoveParent,
/*407298*/                OPC_CheckType, MVT::v8f32,
/*407300*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*407302*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407305*/                OPC_EmitMergeInputChains1_1,
/*407306*/                OPC_EmitInteger, MVT::i32, 4, 
/*407309*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*407322*/              0, // EndSwitchType
/*407323*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->407406
/*407326*/              OPC_RecordMemRef,
/*407327*/              OPC_RecordNode, // #1 = 'ld' chained node
/*407328*/              OPC_CheckFoldableChainNode,
/*407329*/              OPC_RecordChild1, // #2 = $src
/*407330*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407332*/              OPC_CheckPredicate, 9, // Predicate_load
/*407334*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*407336*/              OPC_MoveParent,
/*407337*/              OPC_MoveParent,
/*407338*/              OPC_MoveChild2,
/*407339*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407342*/              OPC_MoveChild0,
/*407343*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407346*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407348*/              OPC_SwitchType /*2 cases */, 26, MVT::v16i32,// ->407377
/*407351*/                OPC_MoveParent,
/*407352*/                OPC_MoveParent,
/*407353*/                OPC_CheckType, MVT::v8f64,
/*407355*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*407357*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407360*/                OPC_EmitMergeInputChains1_1,
/*407361*/                OPC_EmitInteger, MVT::i32, 4, 
/*407364*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*407377*/              /*SwitchType*/ 26, MVT::v8i32,// ->407405
/*407379*/                OPC_MoveParent,
/*407380*/                OPC_MoveParent,
/*407381*/                OPC_CheckType, MVT::v8f32,
/*407383*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*407385*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407388*/                OPC_EmitMergeInputChains1_1,
/*407389*/                OPC_EmitInteger, MVT::i32, 4, 
/*407392*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*407405*/              0, // EndSwitchType
/*407406*/            0, // EndSwitchOpcode
/*407407*/          /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FTRUNC),// ->407600
/*407411*/            OPC_MoveChild0,
/*407412*/            OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(X86ISD::VBROADCAST),// ->407516
/*407416*/              OPC_MoveChild0,
/*407417*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*407420*/              OPC_RecordMemRef,
/*407421*/              OPC_RecordNode, // #1 = 'ld' chained node
/*407422*/              OPC_CheckFoldableChainNode,
/*407423*/              OPC_RecordChild1, // #2 = $src
/*407424*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407426*/              OPC_CheckPredicate, 9, // Predicate_load
/*407428*/              OPC_SwitchType /*2 cases */, 41, MVT::f64,// ->407472
/*407431*/                OPC_MoveParent,
/*407432*/                OPC_MoveParent,
/*407433*/                OPC_MoveParent,
/*407434*/                OPC_MoveChild2,
/*407435*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407438*/                OPC_MoveChild0,
/*407439*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407442*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407444*/                OPC_CheckType, MVT::v16i32,
/*407446*/                OPC_MoveParent,
/*407447*/                OPC_MoveParent,
/*407448*/                OPC_CheckType, MVT::v8f64,
/*407450*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*407452*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407455*/                OPC_EmitMergeInputChains1_1,
/*407456*/                OPC_EmitInteger, MVT::i32, 11, 
/*407459*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*407472*/              /*SwitchType*/ 41, MVT::f32,// ->407515
/*407474*/                OPC_MoveParent,
/*407475*/                OPC_MoveParent,
/*407476*/                OPC_MoveParent,
/*407477*/                OPC_MoveChild2,
/*407478*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407481*/                OPC_MoveChild0,
/*407482*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407485*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407487*/                OPC_CheckType, MVT::v8i32,
/*407489*/                OPC_MoveParent,
/*407490*/                OPC_MoveParent,
/*407491*/                OPC_CheckType, MVT::v8f32,
/*407493*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*407495*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407498*/                OPC_EmitMergeInputChains1_1,
/*407499*/                OPC_EmitInteger, MVT::i32, 11, 
/*407502*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VRNDSCALEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*407515*/              0, // EndSwitchType
/*407516*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->407599
/*407519*/              OPC_RecordMemRef,
/*407520*/              OPC_RecordNode, // #1 = 'ld' chained node
/*407521*/              OPC_CheckFoldableChainNode,
/*407522*/              OPC_RecordChild1, // #2 = $src
/*407523*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407525*/              OPC_CheckPredicate, 9, // Predicate_load
/*407527*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*407529*/              OPC_MoveParent,
/*407530*/              OPC_MoveParent,
/*407531*/              OPC_MoveChild2,
/*407532*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407535*/              OPC_MoveChild0,
/*407536*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407539*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407541*/              OPC_SwitchType /*2 cases */, 26, MVT::v16i32,// ->407570
/*407544*/                OPC_MoveParent,
/*407545*/                OPC_MoveParent,
/*407546*/                OPC_CheckType, MVT::v8f64,
/*407548*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*407550*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407553*/                OPC_EmitMergeInputChains1_1,
/*407554*/                OPC_EmitInteger, MVT::i32, 11, 
/*407557*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*407570*/              /*SwitchType*/ 26, MVT::v8i32,// ->407598
/*407572*/                OPC_MoveParent,
/*407573*/                OPC_MoveParent,
/*407574*/                OPC_CheckType, MVT::v8f32,
/*407576*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*407578*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*407581*/                OPC_EmitMergeInputChains1_1,
/*407582*/                OPC_EmitInteger, MVT::i32, 11, 
/*407585*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*407598*/              0, // EndSwitchType
/*407599*/            0, // EndSwitchOpcode
/*407600*/          /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::SHUF128),// ->407718
/*407603*/            OPC_RecordChild0, // #1 = $src1
/*407604*/            OPC_MoveChild1,
/*407605*/            OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::LOAD),// ->407665
/*407609*/              OPC_RecordMemRef,
/*407610*/              OPC_RecordNode, // #2 = 'ld' chained node
/*407611*/              OPC_CheckFoldableChainNode,
/*407612*/              OPC_RecordChild1, // #3 = $src2
/*407613*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407615*/              OPC_CheckPredicate, 9, // Predicate_load
/*407617*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*407619*/              OPC_MoveParent,
/*407620*/              OPC_RecordChild2, // #4 = $src3
/*407621*/              OPC_MoveChild2,
/*407622*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*407625*/              OPC_MoveParent,
/*407626*/              OPC_MoveParent,
/*407627*/              OPC_MoveChild2,
/*407628*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407631*/              OPC_MoveChild0,
/*407632*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407635*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407637*/              OPC_CheckType, MVT::v16i32,
/*407639*/              OPC_MoveParent,
/*407640*/              OPC_MoveParent,
/*407641*/              OPC_CheckType, MVT::v8f64,
/*407643*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*407645*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*407648*/              OPC_EmitMergeInputChains1_2,
/*407649*/              OPC_EmitConvertToTarget, 4,
/*407651*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VSHUFF64X2Zrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*407665*/            /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VBROADCAST),// ->407717
/*407668*/              OPC_MoveChild0,
/*407669*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*407672*/              OPC_RecordMemRef,
/*407673*/              OPC_RecordNode, // #2 = 'ld' chained node
/*407674*/              OPC_CheckFoldableChainNode,
/*407675*/              OPC_RecordChild1, // #3 = $src2
/*407676*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407678*/              OPC_CheckPredicate, 9, // Predicate_load
/*407680*/              OPC_CheckType, MVT::f64,
/*407682*/              OPC_MoveParent,
/*407683*/              OPC_MoveParent,
/*407684*/              OPC_RecordChild2, // #4 = $src3
/*407685*/              OPC_MoveChild2,
/*407686*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*407689*/              OPC_MoveParent,
/*407690*/              OPC_MoveParent,
/*407691*/              OPC_RecordChild2, // #5 = $src0
/*407692*/              OPC_CheckType, MVT::v8f64,
/*407694*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*407696*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*407699*/              OPC_EmitMergeInputChains1_2,
/*407700*/              OPC_EmitConvertToTarget, 4,
/*407702*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 34
                        // Dst: (VSHUFF64X2Zrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*407717*/            0, // EndSwitchOpcode
/*407718*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::UNPCKH),// ->407900
/*407722*/            OPC_RecordChild0, // #1 = $src1
/*407723*/            OPC_MoveChild1,
/*407724*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->407822
/*407728*/              OPC_MoveChild0,
/*407729*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*407732*/              OPC_RecordMemRef,
/*407733*/              OPC_RecordNode, // #2 = 'ld' chained node
/*407734*/              OPC_CheckFoldableChainNode,
/*407735*/              OPC_RecordChild1, // #3 = $src2
/*407736*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407738*/              OPC_CheckPredicate, 9, // Predicate_load
/*407740*/              OPC_SwitchType /*2 cases */, 38, MVT::f64,// ->407781
/*407743*/                OPC_MoveParent,
/*407744*/                OPC_MoveParent,
/*407745*/                OPC_MoveParent,
/*407746*/                OPC_MoveChild2,
/*407747*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407750*/                OPC_MoveChild0,
/*407751*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407754*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407756*/                OPC_CheckType, MVT::v16i32,
/*407758*/                OPC_MoveParent,
/*407759*/                OPC_MoveParent,
/*407760*/                OPC_CheckType, MVT::v8f64,
/*407762*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*407764*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*407767*/                OPC_EmitMergeInputChains1_2,
/*407768*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VUNPCKHPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*407781*/              /*SwitchType*/ 38, MVT::f32,// ->407821
/*407783*/                OPC_MoveParent,
/*407784*/                OPC_MoveParent,
/*407785*/                OPC_MoveParent,
/*407786*/                OPC_MoveChild2,
/*407787*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407790*/                OPC_MoveChild0,
/*407791*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407794*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407796*/                OPC_CheckType, MVT::v8i32,
/*407798*/                OPC_MoveParent,
/*407799*/                OPC_MoveParent,
/*407800*/                OPC_CheckType, MVT::v8f32,
/*407802*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407804*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*407807*/                OPC_EmitMergeInputChains1_2,
/*407808*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VUNPCKHPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*407821*/              0, // EndSwitchType
/*407822*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->407899
/*407825*/              OPC_RecordMemRef,
/*407826*/              OPC_RecordNode, // #2 = 'ld' chained node
/*407827*/              OPC_CheckFoldableChainNode,
/*407828*/              OPC_RecordChild1, // #3 = $src2
/*407829*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407831*/              OPC_CheckPredicate, 9, // Predicate_load
/*407833*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*407835*/              OPC_MoveParent,
/*407836*/              OPC_MoveParent,
/*407837*/              OPC_MoveChild2,
/*407838*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407841*/              OPC_MoveChild0,
/*407842*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407845*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407847*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->407873
/*407850*/                OPC_MoveParent,
/*407851*/                OPC_MoveParent,
/*407852*/                OPC_CheckType, MVT::v8f64,
/*407854*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*407856*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*407859*/                OPC_EmitMergeInputChains1_2,
/*407860*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VUNPCKHPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*407873*/              /*SwitchType*/ 23, MVT::v8i32,// ->407898
/*407875*/                OPC_MoveParent,
/*407876*/                OPC_MoveParent,
/*407877*/                OPC_CheckType, MVT::v8f32,
/*407879*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407881*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*407884*/                OPC_EmitMergeInputChains1_2,
/*407885*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VUNPCKHPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*407898*/              0, // EndSwitchType
/*407899*/            0, // EndSwitchOpcode
/*407900*/          /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::UNPCKL),// ->408082
/*407904*/            OPC_RecordChild0, // #1 = $src1
/*407905*/            OPC_MoveChild1,
/*407906*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::VBROADCAST),// ->408004
/*407910*/              OPC_MoveChild0,
/*407911*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*407914*/              OPC_RecordMemRef,
/*407915*/              OPC_RecordNode, // #2 = 'ld' chained node
/*407916*/              OPC_CheckFoldableChainNode,
/*407917*/              OPC_RecordChild1, // #3 = $src2
/*407918*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407920*/              OPC_CheckPredicate, 9, // Predicate_load
/*407922*/              OPC_SwitchType /*2 cases */, 38, MVT::f64,// ->407963
/*407925*/                OPC_MoveParent,
/*407926*/                OPC_MoveParent,
/*407927*/                OPC_MoveParent,
/*407928*/                OPC_MoveChild2,
/*407929*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407932*/                OPC_MoveChild0,
/*407933*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407936*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407938*/                OPC_CheckType, MVT::v16i32,
/*407940*/                OPC_MoveParent,
/*407941*/                OPC_MoveParent,
/*407942*/                OPC_CheckType, MVT::v8f64,
/*407944*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*407946*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*407949*/                OPC_EmitMergeInputChains1_2,
/*407950*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VUNPCKLPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*407963*/              /*SwitchType*/ 38, MVT::f32,// ->408003
/*407965*/                OPC_MoveParent,
/*407966*/                OPC_MoveParent,
/*407967*/                OPC_MoveParent,
/*407968*/                OPC_MoveChild2,
/*407969*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*407972*/                OPC_MoveChild0,
/*407973*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*407976*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*407978*/                OPC_CheckType, MVT::v8i32,
/*407980*/                OPC_MoveParent,
/*407981*/                OPC_MoveParent,
/*407982*/                OPC_CheckType, MVT::v8f32,
/*407984*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407986*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*407989*/                OPC_EmitMergeInputChains1_2,
/*407990*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VUNPCKLPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*408003*/              0, // EndSwitchType
/*408004*/            /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->408081
/*408007*/              OPC_RecordMemRef,
/*408008*/              OPC_RecordNode, // #2 = 'ld' chained node
/*408009*/              OPC_CheckFoldableChainNode,
/*408010*/              OPC_RecordChild1, // #3 = $src2
/*408011*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408013*/              OPC_CheckPredicate, 9, // Predicate_load
/*408015*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*408017*/              OPC_MoveParent,
/*408018*/              OPC_MoveParent,
/*408019*/              OPC_MoveChild2,
/*408020*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*408023*/              OPC_MoveChild0,
/*408024*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*408027*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*408029*/              OPC_SwitchType /*2 cases */, 23, MVT::v16i32,// ->408055
/*408032*/                OPC_MoveParent,
/*408033*/                OPC_MoveParent,
/*408034*/                OPC_CheckType, MVT::v8f64,
/*408036*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*408038*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*408041*/                OPC_EmitMergeInputChains1_2,
/*408042*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VUNPCKLPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*408055*/              /*SwitchType*/ 23, MVT::v8i32,// ->408080
/*408057*/                OPC_MoveParent,
/*408058*/                OPC_MoveParent,
/*408059*/                OPC_CheckType, MVT::v8f32,
/*408061*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408063*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*408066*/                OPC_EmitMergeInputChains1_2,
/*408067*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VUNPCKLPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*408080*/              0, // EndSwitchType
/*408081*/            0, // EndSwitchOpcode
/*408082*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::SHUFP),// ->408270
/*408086*/            OPC_RecordChild0, // #1 = $src1
/*408087*/            OPC_MoveChild1,
/*408088*/            OPC_SwitchOpcode /*2 cases */, 86, TARGET_VAL(ISD::LOAD),// ->408178
/*408092*/              OPC_RecordMemRef,
/*408093*/              OPC_RecordNode, // #2 = 'ld' chained node
/*408094*/              OPC_CheckFoldableChainNode,
/*408095*/              OPC_RecordChild1, // #3 = $src2
/*408096*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408098*/              OPC_CheckPredicate, 9, // Predicate_load
/*408100*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*408102*/              OPC_MoveParent,
/*408103*/              OPC_RecordChild2, // #4 = $src3
/*408104*/              OPC_MoveChild2,
/*408105*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*408108*/              OPC_MoveParent,
/*408109*/              OPC_MoveParent,
/*408110*/              OPC_MoveChild2,
/*408111*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*408114*/              OPC_MoveChild0,
/*408115*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*408118*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*408120*/              OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->408149
/*408123*/                OPC_MoveParent,
/*408124*/                OPC_MoveParent,
/*408125*/                OPC_CheckType, MVT::v8f32,
/*408127*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408129*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*408132*/                OPC_EmitMergeInputChains1_2,
/*408133*/                OPC_EmitConvertToTarget, 4,
/*408135*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSHUFPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*408149*/              /*SwitchType*/ 26, MVT::v16i32,// ->408177
/*408151*/                OPC_MoveParent,
/*408152*/                OPC_MoveParent,
/*408153*/                OPC_CheckType, MVT::v8f64,
/*408155*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*408157*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*408160*/                OPC_EmitMergeInputChains1_2,
/*408161*/                OPC_EmitConvertToTarget, 4,
/*408163*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VSHUFPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*408177*/              0, // EndSwitchType
/*408178*/            /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::VBROADCAST),// ->408269
/*408181*/              OPC_MoveChild0,
/*408182*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*408185*/              OPC_RecordMemRef,
/*408186*/              OPC_RecordNode, // #2 = 'ld' chained node
/*408187*/              OPC_CheckFoldableChainNode,
/*408188*/              OPC_RecordChild1, // #3 = $src2
/*408189*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408191*/              OPC_CheckPredicate, 9, // Predicate_load
/*408193*/              OPC_SwitchType /*2 cases */, 35, MVT::f32,// ->408231
/*408196*/                OPC_MoveParent,
/*408197*/                OPC_MoveParent,
/*408198*/                OPC_RecordChild2, // #4 = $src3
/*408199*/                OPC_MoveChild2,
/*408200*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*408203*/                OPC_MoveParent,
/*408204*/                OPC_MoveParent,
/*408205*/                OPC_RecordChild2, // #5 = $src0
/*408206*/                OPC_CheckType, MVT::v8f32,
/*408208*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408210*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*408213*/                OPC_EmitMergeInputChains1_2,
/*408214*/                OPC_EmitConvertToTarget, 4,
/*408216*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 34
                          // Dst: (VSHUFPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*408231*/              /*SwitchType*/ 35, MVT::f64,// ->408268
/*408233*/                OPC_MoveParent,
/*408234*/                OPC_MoveParent,
/*408235*/                OPC_RecordChild2, // #4 = $src3
/*408236*/                OPC_MoveChild2,
/*408237*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*408240*/                OPC_MoveParent,
/*408241*/                OPC_MoveParent,
/*408242*/                OPC_RecordChild2, // #5 = $src0
/*408243*/                OPC_CheckType, MVT::v8f64,
/*408245*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*408247*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*408250*/                OPC_EmitMergeInputChains1_2,
/*408251*/                OPC_EmitConvertToTarget, 4,
/*408253*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 34
                          // Dst: (VSHUFPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*408268*/              0, // EndSwitchType
/*408269*/            0, // EndSwitchOpcode
/*408270*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(X86ISD::SCALEF),// ->408419
/*408274*/            OPC_RecordChild0, // #1 = $src1
/*408275*/            OPC_MoveChild1,
/*408276*/            OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(X86ISD::VBROADCAST),// ->408354
/*408280*/              OPC_MoveChild0,
/*408281*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*408284*/              OPC_RecordMemRef,
/*408285*/              OPC_RecordNode, // #2 = 'ld' chained node
/*408286*/              OPC_CheckFoldableChainNode,
/*408287*/              OPC_RecordChild1, // #3 = $src2
/*408288*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408290*/              OPC_CheckPredicate, 9, // Predicate_load
/*408292*/              OPC_SwitchType /*2 cases */, 28, MVT::f64,// ->408323
/*408295*/                OPC_MoveParent,
/*408296*/                OPC_MoveParent,
/*408297*/                OPC_CheckChild2Integer, 4, 
/*408299*/                OPC_MoveParent,
/*408300*/                OPC_RecordChild2, // #4 = $src0
/*408301*/                OPC_CheckType, MVT::v8f64,
/*408303*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*408305*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*408308*/                OPC_EmitMergeInputChains1_2,
/*408309*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 36
                          // Dst: (VSCALEFPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*408323*/              /*SwitchType*/ 28, MVT::f32,// ->408353
/*408325*/                OPC_MoveParent,
/*408326*/                OPC_MoveParent,
/*408327*/                OPC_CheckChild2Integer, 4, 
/*408329*/                OPC_MoveParent,
/*408330*/                OPC_RecordChild2, // #4 = $src0
/*408331*/                OPC_CheckType, MVT::v8f32,
/*408333*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*408335*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*408338*/                OPC_EmitMergeInputChains1_2,
/*408339*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR256X:{ *:[v8f32] }:$src0) - Complexity = 36
                          // Dst: (VSCALEFPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*408353*/              0, // EndSwitchType
/*408354*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->408418
/*408357*/              OPC_RecordMemRef,
/*408358*/              OPC_RecordNode, // #2 = 'ld' chained node
/*408359*/              OPC_CheckFoldableChainNode,
/*408360*/              OPC_RecordChild1, // #3 = $src2
/*408361*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408363*/              OPC_CheckPredicate, 9, // Predicate_load
/*408365*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*408367*/              OPC_MoveParent,
/*408368*/              OPC_CheckChild2Integer, 4, 
/*408370*/              OPC_MoveParent,
/*408371*/              OPC_RecordChild2, // #4 = $src0
/*408372*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->408395
/*408375*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*408377*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*408380*/                OPC_EmitMergeInputChains1_2,
/*408381*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 33
                          // Dst: (VSCALEFPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*408395*/              /*SwitchType*/ 20, MVT::v8f32,// ->408417
/*408397*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*408399*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*408402*/                OPC_EmitMergeInputChains1_2,
/*408403*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR256X:{ *:[v8f32] }:$src0) - Complexity = 33
                          // Dst: (VSCALEFPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*408417*/              0, // EndSwitchType
/*408418*/            0, // EndSwitchOpcode
/*408419*/          /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::RSQRT28),// ->408508
/*408422*/            OPC_MoveChild0,
/*408423*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(X86ISD::VBROADCAST),// ->408468
/*408427*/              OPC_MoveChild0,
/*408428*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*408431*/              OPC_RecordMemRef,
/*408432*/              OPC_RecordNode, // #1 = 'ld' chained node
/*408433*/              OPC_CheckFoldableChainNode,
/*408434*/              OPC_RecordChild1, // #2 = $src
/*408435*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408437*/              OPC_CheckPredicate, 9, // Predicate_load
/*408439*/              OPC_CheckType, MVT::f64,
/*408441*/              OPC_MoveParent,
/*408442*/              OPC_MoveParent,
/*408443*/              OPC_CheckChild1Integer, 4, 
/*408445*/              OPC_MoveParent,
/*408446*/              OPC_RecordChild2, // #3 = $src0
/*408447*/              OPC_CheckType, MVT::v8f64,
/*408449*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*408451*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*408454*/              OPC_EmitMergeInputChains1_1,
/*408455*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt28:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 36
                        // Dst: (VRSQRT28PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408468*/            /*SwitchOpcode*/ 36, TARGET_VAL(ISD::LOAD),// ->408507
/*408471*/              OPC_RecordMemRef,
/*408472*/              OPC_RecordNode, // #1 = 'ld' chained node
/*408473*/              OPC_CheckFoldableChainNode,
/*408474*/              OPC_RecordChild1, // #2 = $src
/*408475*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408477*/              OPC_CheckPredicate, 9, // Predicate_load
/*408479*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*408481*/              OPC_MoveParent,
/*408482*/              OPC_CheckChild1Integer, 4, 
/*408484*/              OPC_MoveParent,
/*408485*/              OPC_RecordChild2, // #3 = $src0
/*408486*/              OPC_CheckType, MVT::v8f64,
/*408488*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*408490*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*408493*/              OPC_EmitMergeInputChains1_1,
/*408494*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt28:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 33
                        // Dst: (VRSQRT28PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408507*/            0, // EndSwitchOpcode
/*408508*/          /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::RCP28),// ->408597
/*408511*/            OPC_MoveChild0,
/*408512*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(X86ISD::VBROADCAST),// ->408557
/*408516*/              OPC_MoveChild0,
/*408517*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*408520*/              OPC_RecordMemRef,
/*408521*/              OPC_RecordNode, // #1 = 'ld' chained node
/*408522*/              OPC_CheckFoldableChainNode,
/*408523*/              OPC_RecordChild1, // #2 = $src
/*408524*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408526*/              OPC_CheckPredicate, 9, // Predicate_load
/*408528*/              OPC_CheckType, MVT::f64,
/*408530*/              OPC_MoveParent,
/*408531*/              OPC_MoveParent,
/*408532*/              OPC_CheckChild1Integer, 4, 
/*408534*/              OPC_MoveParent,
/*408535*/              OPC_RecordChild2, // #3 = $src0
/*408536*/              OPC_CheckType, MVT::v8f64,
/*408538*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*408540*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*408543*/              OPC_EmitMergeInputChains1_1,
/*408544*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp28:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 36
                        // Dst: (VRCP28PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408557*/            /*SwitchOpcode*/ 36, TARGET_VAL(ISD::LOAD),// ->408596
/*408560*/              OPC_RecordMemRef,
/*408561*/              OPC_RecordNode, // #1 = 'ld' chained node
/*408562*/              OPC_CheckFoldableChainNode,
/*408563*/              OPC_RecordChild1, // #2 = $src
/*408564*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408566*/              OPC_CheckPredicate, 9, // Predicate_load
/*408568*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*408570*/              OPC_MoveParent,
/*408571*/              OPC_CheckChild1Integer, 4, 
/*408573*/              OPC_MoveParent,
/*408574*/              OPC_RecordChild2, // #3 = $src0
/*408575*/              OPC_CheckType, MVT::v8f64,
/*408577*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*408579*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*408582*/              OPC_EmitMergeInputChains1_1,
/*408583*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp28:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 33
                        // Dst: (VRCP28PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408596*/            0, // EndSwitchOpcode
/*408597*/          /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::EXP2),// ->408686
/*408600*/            OPC_MoveChild0,
/*408601*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(X86ISD::VBROADCAST),// ->408646
/*408605*/              OPC_MoveChild0,
/*408606*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*408609*/              OPC_RecordMemRef,
/*408610*/              OPC_RecordNode, // #1 = 'ld' chained node
/*408611*/              OPC_CheckFoldableChainNode,
/*408612*/              OPC_RecordChild1, // #2 = $src
/*408613*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408615*/              OPC_CheckPredicate, 9, // Predicate_load
/*408617*/              OPC_CheckType, MVT::f64,
/*408619*/              OPC_MoveParent,
/*408620*/              OPC_MoveParent,
/*408621*/              OPC_CheckChild1Integer, 4, 
/*408623*/              OPC_MoveParent,
/*408624*/              OPC_RecordChild2, // #3 = $src0
/*408625*/              OPC_CheckType, MVT::v8f64,
/*408627*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*408629*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*408632*/              OPC_EmitMergeInputChains1_1,
/*408633*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86exp2:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 36
                        // Dst: (VEXP2PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408646*/            /*SwitchOpcode*/ 36, TARGET_VAL(ISD::LOAD),// ->408685
/*408649*/              OPC_RecordMemRef,
/*408650*/              OPC_RecordNode, // #1 = 'ld' chained node
/*408651*/              OPC_CheckFoldableChainNode,
/*408652*/              OPC_RecordChild1, // #2 = $src
/*408653*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408655*/              OPC_CheckPredicate, 9, // Predicate_load
/*408657*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*408659*/              OPC_MoveParent,
/*408660*/              OPC_CheckChild1Integer, 4, 
/*408662*/              OPC_MoveParent,
/*408663*/              OPC_RecordChild2, // #3 = $src0
/*408664*/              OPC_CheckType, MVT::v8f64,
/*408666*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*408668*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*408671*/              OPC_EmitMergeInputChains1_1,
/*408672*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86exp2:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 33
                        // Dst: (VEXP2PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408685*/            0, // EndSwitchOpcode
/*408686*/          /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::FGETEXP_RND),// ->408830
/*408690*/            OPC_MoveChild0,
/*408691*/            OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(X86ISD::VBROADCAST),// ->408767
/*408695*/              OPC_MoveChild0,
/*408696*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*408699*/              OPC_RecordMemRef,
/*408700*/              OPC_RecordNode, // #1 = 'ld' chained node
/*408701*/              OPC_CheckFoldableChainNode,
/*408702*/              OPC_RecordChild1, // #2 = $src
/*408703*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408705*/              OPC_CheckPredicate, 9, // Predicate_load
/*408707*/              OPC_SwitchType /*2 cases */, 27, MVT::f64,// ->408737
/*408710*/                OPC_MoveParent,
/*408711*/                OPC_MoveParent,
/*408712*/                OPC_CheckChild1Integer, 4, 
/*408714*/                OPC_MoveParent,
/*408715*/                OPC_RecordChild2, // #3 = $src0
/*408716*/                OPC_CheckType, MVT::v8f64,
/*408718*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*408720*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*408723*/                OPC_EmitMergeInputChains1_1,
/*408724*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 36
                          // Dst: (VGETEXPPDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408737*/              /*SwitchType*/ 27, MVT::f32,// ->408766
/*408739*/                OPC_MoveParent,
/*408740*/                OPC_MoveParent,
/*408741*/                OPC_CheckChild1Integer, 4, 
/*408743*/                OPC_MoveParent,
/*408744*/                OPC_RecordChild2, // #3 = $src0
/*408745*/                OPC_CheckType, MVT::v8f32,
/*408747*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*408749*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*408752*/                OPC_EmitMergeInputChains1_1,
/*408753*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR256X:{ *:[v8f32] }:$src0) - Complexity = 36
                          // Dst: (VGETEXPPSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408766*/              0, // EndSwitchType
/*408767*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->408829
/*408770*/              OPC_RecordMemRef,
/*408771*/              OPC_RecordNode, // #1 = 'ld' chained node
/*408772*/              OPC_CheckFoldableChainNode,
/*408773*/              OPC_RecordChild1, // #2 = $src
/*408774*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408776*/              OPC_CheckPredicate, 9, // Predicate_load
/*408778*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*408780*/              OPC_MoveParent,
/*408781*/              OPC_CheckChild1Integer, 4, 
/*408783*/              OPC_MoveParent,
/*408784*/              OPC_RecordChild2, // #3 = $src0
/*408785*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->408807
/*408788*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*408790*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*408793*/                OPC_EmitMergeInputChains1_1,
/*408794*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 33
                          // Dst: (VGETEXPPDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408807*/              /*SwitchType*/ 19, MVT::v8f32,// ->408828
/*408809*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*408811*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*408814*/                OPC_EmitMergeInputChains1_1,
/*408815*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR256X:{ *:[v8f32] }:$src0) - Complexity = 33
                          // Dst: (VGETEXPPSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408828*/              0, // EndSwitchType
/*408829*/            0, // EndSwitchOpcode
/*408830*/          /*SwitchOpcode*/ 55, TARGET_VAL(X86ISD::VFIXUPIMM),// ->408888
/*408833*/            OPC_RecordChild0, // #1 = $src1
/*408834*/            OPC_RecordChild1, // #2 = $src2
/*408835*/            OPC_MoveChild2,
/*408836*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*408839*/            OPC_RecordMemRef,
/*408840*/            OPC_RecordNode, // #3 = 'ld' chained node
/*408841*/            OPC_CheckFoldableChainNode,
/*408842*/            OPC_RecordChild1, // #4 = $src3
/*408843*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408845*/            OPC_CheckPredicate, 9, // Predicate_load
/*408847*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*408849*/            OPC_MoveParent,
/*408850*/            OPC_RecordChild3, // #5 = $src4
/*408851*/            OPC_MoveChild3,
/*408852*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*408855*/            OPC_MoveParent,
/*408856*/            OPC_CheckChild4Integer, 4, 
/*408858*/            OPC_MoveParent,
/*408859*/            OPC_CheckChild2Same, 1,
/*408861*/            OPC_CheckType, MVT::v8f64,
/*408863*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*408865*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*408868*/            OPC_EmitMergeInputChains, 1, 3, 
/*408871*/            OPC_EmitConvertToTarget, 5,
/*408873*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src1) - Complexity = 36
                      // Dst: (VFIXUPIMMPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*408888*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->409023
/*408892*/            OPC_MoveChild0,
/*408893*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*408896*/            OPC_RecordMemRef,
/*408897*/            OPC_RecordNode, // #1 = 'ld' chained node
/*408898*/            OPC_CheckFoldableChainNode,
/*408899*/            OPC_RecordChild1, // #2 = $src
/*408900*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408902*/            OPC_CheckPredicate, 9, // Predicate_load
/*408904*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*408906*/            OPC_Scope, 38, /*->408946*/ // 3 children in Scope
/*408908*/              OPC_CheckType, MVT::v4f64,
/*408910*/              OPC_MoveParent,
/*408911*/              OPC_MoveParent,
/*408912*/              OPC_MoveChild2,
/*408913*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*408916*/              OPC_MoveChild0,
/*408917*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*408920*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*408922*/              OPC_CheckType, MVT::v16i32,
/*408924*/              OPC_MoveParent,
/*408925*/              OPC_MoveParent,
/*408926*/              OPC_CheckType, MVT::v8f64,
/*408928*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*408930*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*408933*/              OPC_EmitMergeInputChains1_1,
/*408934*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X4rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VBROADCASTF64X4rmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408946*/            /*Scope*/ 36, /*->408983*/
/*408947*/              OPC_MoveParent,
/*408948*/              OPC_MoveParent,
/*408949*/              OPC_MoveChild2,
/*408950*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*408953*/              OPC_MoveChild0,
/*408954*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*408957*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*408959*/              OPC_CheckType, MVT::v8i32,
/*408961*/              OPC_MoveParent,
/*408962*/              OPC_MoveParent,
/*408963*/              OPC_CheckType, MVT::v8f32,
/*408965*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*408967*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*408970*/              OPC_EmitMergeInputChains1_1,
/*408971*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VBROADCASTF32X4Z256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*408983*/            /*Scope*/ 38, /*->409022*/
/*408984*/              OPC_CheckType, MVT::v2f64,
/*408986*/              OPC_MoveParent,
/*408987*/              OPC_MoveParent,
/*408988*/              OPC_MoveChild2,
/*408989*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*408992*/              OPC_MoveChild0,
/*408993*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*408996*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*408998*/              OPC_CheckType, MVT::v16i32,
/*409000*/              OPC_MoveParent,
/*409001*/              OPC_MoveParent,
/*409002*/              OPC_CheckType, MVT::v8f64,
/*409004*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*409006*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*409009*/              OPC_EmitMergeInputChains1_1,
/*409010*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X2rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VBROADCASTF64X2rmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409022*/            0, /*End of Scope*/
/*409023*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::EXPAND),// ->409102
/*409026*/            OPC_MoveChild0,
/*409027*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*409030*/            OPC_RecordMemRef,
/*409031*/            OPC_RecordNode, // #1 = 'ld' chained node
/*409032*/            OPC_CheckFoldableChainNode,
/*409033*/            OPC_RecordChild1, // #2 = $src1
/*409034*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409036*/            OPC_CheckPredicate, 9, // Predicate_load
/*409038*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*409040*/            OPC_MoveParent,
/*409041*/            OPC_MoveParent,
/*409042*/            OPC_MoveChild2,
/*409043*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*409046*/            OPC_MoveChild0,
/*409047*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*409050*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*409052*/            OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->409077
/*409055*/              OPC_MoveParent,
/*409056*/              OPC_MoveParent,
/*409057*/              OPC_CheckType, MVT::v8f32,
/*409059*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409061*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*409064*/              OPC_EmitMergeInputChains1_1,
/*409065*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VEXPANDPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*409077*/            /*SwitchType*/ 22, MVT::v16i32,// ->409101
/*409079*/              OPC_MoveParent,
/*409080*/              OPC_MoveParent,
/*409081*/              OPC_CheckType, MVT::v8f64,
/*409083*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*409085*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*409088*/              OPC_EmitMergeInputChains1_1,
/*409089*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VEXPANDPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*409101*/            0, // EndSwitchType
/*409102*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::MOVSHDUP),// ->409155
/*409105*/            OPC_MoveChild0,
/*409106*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*409109*/            OPC_RecordMemRef,
/*409110*/            OPC_RecordNode, // #1 = 'ld' chained node
/*409111*/            OPC_CheckFoldableChainNode,
/*409112*/            OPC_RecordChild1, // #2 = $src1
/*409113*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409115*/            OPC_CheckPredicate, 9, // Predicate_load
/*409117*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*409119*/            OPC_MoveParent,
/*409120*/            OPC_MoveParent,
/*409121*/            OPC_MoveChild2,
/*409122*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*409125*/            OPC_MoveChild0,
/*409126*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*409129*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*409131*/            OPC_CheckType, MVT::v8i32,
/*409133*/            OPC_MoveParent,
/*409134*/            OPC_MoveParent,
/*409135*/            OPC_CheckType, MVT::v8f32,
/*409137*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409139*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*409142*/            OPC_EmitMergeInputChains1_1,
/*409143*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Movshdup:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VMOVSHDUPZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*409155*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::MOVSLDUP),// ->409208
/*409158*/            OPC_MoveChild0,
/*409159*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*409162*/            OPC_RecordMemRef,
/*409163*/            OPC_RecordNode, // #1 = 'ld' chained node
/*409164*/            OPC_CheckFoldableChainNode,
/*409165*/            OPC_RecordChild1, // #2 = $src1
/*409166*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409168*/            OPC_CheckPredicate, 9, // Predicate_load
/*409170*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*409172*/            OPC_MoveParent,
/*409173*/            OPC_MoveParent,
/*409174*/            OPC_MoveChild2,
/*409175*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*409178*/            OPC_MoveChild0,
/*409179*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*409182*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*409184*/            OPC_CheckType, MVT::v8i32,
/*409186*/            OPC_MoveParent,
/*409187*/            OPC_MoveParent,
/*409188*/            OPC_CheckType, MVT::v8f32,
/*409190*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409192*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*409195*/            OPC_EmitMergeInputChains1_1,
/*409196*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Movsldup:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VMOVSLDUPZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*409208*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::MOVDDUP),// ->409261
/*409211*/            OPC_MoveChild0,
/*409212*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*409215*/            OPC_RecordMemRef,
/*409216*/            OPC_RecordNode, // #1 = 'ld' chained node
/*409217*/            OPC_CheckFoldableChainNode,
/*409218*/            OPC_RecordChild1, // #2 = $src1
/*409219*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409221*/            OPC_CheckPredicate, 9, // Predicate_load
/*409223*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*409225*/            OPC_MoveParent,
/*409226*/            OPC_MoveParent,
/*409227*/            OPC_MoveChild2,
/*409228*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*409231*/            OPC_MoveChild0,
/*409232*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*409235*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*409237*/            OPC_CheckType, MVT::v16i32,
/*409239*/            OPC_MoveParent,
/*409240*/            OPC_MoveParent,
/*409241*/            OPC_CheckType, MVT::v8f64,
/*409243*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*409245*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*409248*/            OPC_EmitMergeInputChains1_1,
/*409249*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Movddup:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VMOVDDUPZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*409261*/          /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::LOAD),// ->409403
/*409265*/            OPC_RecordMemRef,
/*409266*/            OPC_RecordNode, // #1 = 'ld' chained node
/*409267*/            OPC_CheckFoldableChainNode,
/*409268*/            OPC_RecordChild1, // #2 = $src
/*409269*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409271*/            OPC_CheckPredicate, 9, // Predicate_load
/*409273*/            OPC_Scope, 63, /*->409338*/ // 2 children in Scope
/*409275*/              OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*409277*/              OPC_MoveParent,
/*409278*/              OPC_MoveChild2,
/*409279*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*409282*/              OPC_MoveChild0,
/*409283*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*409286*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*409288*/              OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->409313
/*409291*/                OPC_MoveParent,
/*409292*/                OPC_MoveParent,
/*409293*/                OPC_CheckType, MVT::v8f32,
/*409295*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409297*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*409300*/                OPC_EmitMergeInputChains1_1,
/*409301*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVAPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409313*/              /*SwitchType*/ 22, MVT::v16i32,// ->409337
/*409315*/                OPC_MoveParent,
/*409316*/                OPC_MoveParent,
/*409317*/                OPC_CheckType, MVT::v8f64,
/*409319*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*409321*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*409324*/                OPC_EmitMergeInputChains1_1,
/*409325*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVAPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409337*/              0, // EndSwitchType
/*409338*/            /*Scope*/ 63, /*->409402*/
/*409339*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*409341*/              OPC_MoveParent,
/*409342*/              OPC_MoveChild2,
/*409343*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*409346*/              OPC_MoveChild0,
/*409347*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*409350*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*409352*/              OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->409377
/*409355*/                OPC_MoveParent,
/*409356*/                OPC_MoveParent,
/*409357*/                OPC_CheckType, MVT::v8f32,
/*409359*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409361*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*409364*/                OPC_EmitMergeInputChains1_1,
/*409365*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVUPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409377*/              /*SwitchType*/ 22, MVT::v16i32,// ->409401
/*409379*/                OPC_MoveParent,
/*409380*/                OPC_MoveParent,
/*409381*/                OPC_CheckType, MVT::v8f64,
/*409383*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*409385*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*409388*/                OPC_EmitMergeInputChains1_1,
/*409389*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                          // Dst: (VMOVUPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409401*/              0, // EndSwitchType
/*409402*/            0, /*End of Scope*/
/*409403*/          0, // EndSwitchOpcode
/*409404*/        /*Scope*/ 15|128,1/*143*/, /*->409549*/
/*409406*/          OPC_RecordChild1, // #1 = $src3
/*409407*/          OPC_MoveChild1,
/*409408*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*409411*/          OPC_RecordChild0, // #2 = $src1
/*409412*/          OPC_MoveChild1,
/*409413*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*409416*/          OPC_RecordMemRef,
/*409417*/          OPC_RecordNode, // #3 = 'ld' chained node
/*409418*/          OPC_CheckFoldableChainNode,
/*409419*/          OPC_RecordChild1, // #4 = $src2
/*409420*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409422*/          OPC_CheckPredicate, 9, // Predicate_load
/*409424*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*409426*/          OPC_Scope, 38, /*->409466*/ // 3 children in Scope
/*409428*/            OPC_MoveParent,
/*409429*/            OPC_MoveChild2,
/*409430*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*409433*/            OPC_CheckType, MVT::iPTR,
/*409435*/            OPC_MoveParent,
/*409436*/            OPC_MoveParent,
/*409437*/            OPC_RecordChild2, // #5 = $src0
/*409438*/            OPC_CheckType, MVT::v8f32,
/*409440*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*409442*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*409445*/            OPC_EmitMergeInputChains, 1, 3, 
/*409448*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*409451*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                      // Dst: (VINSERTF32x4Z256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*409466*/          /*Scope*/ 40, /*->409507*/
/*409467*/            OPC_CheckType, MVT::v4f64,
/*409469*/            OPC_MoveParent,
/*409470*/            OPC_MoveChild2,
/*409471*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*409474*/            OPC_CheckType, MVT::iPTR,
/*409476*/            OPC_MoveParent,
/*409477*/            OPC_MoveParent,
/*409478*/            OPC_RecordChild2, // #5 = $src0
/*409479*/            OPC_CheckType, MVT::v8f64,
/*409481*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*409483*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*409486*/            OPC_EmitMergeInputChains, 1, 3, 
/*409489*/            OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*409492*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                      // Dst: (VINSERTF64x4Zrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*409507*/          /*Scope*/ 40, /*->409548*/
/*409508*/            OPC_CheckType, MVT::v2f64,
/*409510*/            OPC_MoveParent,
/*409511*/            OPC_MoveChild2,
/*409512*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*409515*/            OPC_CheckType, MVT::iPTR,
/*409517*/            OPC_MoveParent,
/*409518*/            OPC_MoveParent,
/*409519*/            OPC_RecordChild2, // #5 = $src0
/*409520*/            OPC_CheckType, MVT::v8f64,
/*409522*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*409524*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*409527*/            OPC_EmitMergeInputChains, 1, 3, 
/*409530*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*409533*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                      // Dst: (VINSERTF64x2Zrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*409548*/          0, /*End of Scope*/
/*409549*/        /*Scope*/ 88|128,99/*12760*/, /*->422311*/
/*409551*/          OPC_MoveChild1,
/*409552*/          OPC_SwitchOpcode /*62 cases */, 15|128,1/*143*/, TARGET_VAL(X86ISD::VBROADCAST),// ->409700
/*409557*/            OPC_MoveChild0,
/*409558*/            OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->409634
/*409562*/              OPC_MoveChild0,
/*409563*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*409566*/              OPC_RecordMemRef,
/*409567*/              OPC_RecordNode, // #1 = 'ld' chained node
/*409568*/              OPC_CheckFoldableChainNode,
/*409569*/              OPC_RecordChild1, // #2 = $src
/*409570*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409572*/              OPC_CheckPredicate, 9, // Predicate_load
/*409574*/              OPC_SwitchType /*2 cases */, 27, MVT::f32,// ->409604
/*409577*/                OPC_MoveParent,
/*409578*/                OPC_CheckType, MVT::v4f32,
/*409580*/                OPC_MoveParent,
/*409581*/                OPC_MoveParent,
/*409582*/                OPC_RecordChild2, // #3 = $src0
/*409583*/                OPC_CheckType, MVT::v8f32,
/*409585*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*409587*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*409590*/                OPC_EmitMergeInputChains1_1,
/*409591*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTSSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409604*/              /*SwitchType*/ 27, MVT::f64,// ->409633
/*409606*/                OPC_MoveParent,
/*409607*/                OPC_CheckType, MVT::v2f64,
/*409609*/                OPC_MoveParent,
/*409610*/                OPC_MoveParent,
/*409611*/                OPC_RecordChild2, // #3 = $src0
/*409612*/                OPC_CheckType, MVT::v8f64,
/*409614*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*409616*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*409619*/                OPC_EmitMergeInputChains1_1,
/*409620*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTSDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409633*/              0, // EndSwitchType
/*409634*/            /*SwitchOpcode*/ 62, TARGET_VAL(ISD::LOAD),// ->409699
/*409637*/              OPC_RecordMemRef,
/*409638*/              OPC_RecordNode, // #1 = 'ld' chained node
/*409639*/              OPC_CheckFoldableChainNode,
/*409640*/              OPC_RecordChild1, // #2 = $src
/*409641*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409643*/              OPC_CheckPredicate, 9, // Predicate_load
/*409645*/              OPC_SwitchType /*2 cases */, 24, MVT::f32,// ->409672
/*409648*/                OPC_MoveParent,
/*409649*/                OPC_MoveParent,
/*409650*/                OPC_RecordChild2, // #3 = $src0
/*409651*/                OPC_CheckType, MVT::v8f32,
/*409653*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*409655*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*409658*/                OPC_EmitMergeInputChains1_1,
/*409659*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VBROADCASTSSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409672*/              /*SwitchType*/ 24, MVT::f64,// ->409698
/*409674*/                OPC_MoveParent,
/*409675*/                OPC_MoveParent,
/*409676*/                OPC_RecordChild2, // #3 = $src0
/*409677*/                OPC_CheckType, MVT::v8f64,
/*409679*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*409681*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*409684*/                OPC_EmitMergeInputChains1_1,
/*409685*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VBROADCASTSDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409698*/              0, // EndSwitchType
/*409699*/            0, // EndSwitchOpcode
/*409700*/          /*SwitchOpcode*/ 67|128,7/*963*/, TARGET_VAL(ISD::BITCAST),// ->410667
/*409704*/            OPC_Scope, 80|128,5/*720*/, /*->410427*/ // 3 children in Scope
/*409707*/              OPC_MoveChild0,
/*409708*/              OPC_SwitchOpcode /*7 cases */, 104, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->409816
/*409712*/                OPC_MoveChild0,
/*409713*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*409716*/                OPC_RecordMemRef,
/*409717*/                OPC_RecordNode, // #1 = 'ld' chained node
/*409718*/                OPC_CheckFoldableChainNode,
/*409719*/                OPC_RecordChild1, // #2 = $src
/*409720*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409722*/                OPC_CheckPredicate, 9, // Predicate_load
/*409724*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*409726*/                OPC_Scope, 29, /*->409757*/ // 3 children in Scope
/*409728*/                  OPC_CheckType, MVT::v8f32,
/*409730*/                  OPC_MoveParent,
/*409731*/                  OPC_CheckType, MVT::v16f32,
/*409733*/                  OPC_MoveParent,
/*409734*/                  OPC_MoveParent,
/*409735*/                  OPC_RecordChild2, // #3 = $src0
/*409736*/                  OPC_CheckType, MVT::v8f64,
/*409738*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*409740*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*409743*/                  OPC_EmitMergeInputChains1_1,
/*409744*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X4rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86SubVBroadcast:{ *:[v16f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTF64X4rmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409757*/                /*Scope*/ 27, /*->409785*/
/*409758*/                  OPC_MoveParent,
/*409759*/                  OPC_CheckType, MVT::v4f64,
/*409761*/                  OPC_MoveParent,
/*409762*/                  OPC_MoveParent,
/*409763*/                  OPC_RecordChild2, // #3 = $src0
/*409764*/                  OPC_CheckType, MVT::v8f32,
/*409766*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*409768*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*409771*/                  OPC_EmitMergeInputChains1_1,
/*409772*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86SubVBroadcast:{ *:[v4f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTF32X4Z256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409785*/                /*Scope*/ 29, /*->409815*/
/*409786*/                  OPC_CheckType, MVT::v4f32,
/*409788*/                  OPC_MoveParent,
/*409789*/                  OPC_CheckType, MVT::v16f32,
/*409791*/                  OPC_MoveParent,
/*409792*/                  OPC_MoveParent,
/*409793*/                  OPC_RecordChild2, // #3 = $src0
/*409794*/                  OPC_CheckType, MVT::v8f64,
/*409796*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*409798*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*409801*/                  OPC_EmitMergeInputChains1_1,
/*409802*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X2rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86SubVBroadcast:{ *:[v16f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTF64X2rmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409815*/                0, /*End of Scope*/
/*409816*/              /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->409860
/*409819*/                OPC_MoveChild0,
/*409820*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*409823*/                OPC_RecordMemRef,
/*409824*/                OPC_RecordNode, // #1 = 'ld' chained node
/*409825*/                OPC_CheckFoldableChainNode,
/*409826*/                OPC_RecordChild1, // #2 = $src
/*409827*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409829*/                OPC_CheckPredicate, 9, // Predicate_load
/*409831*/                OPC_CheckType, MVT::f64,
/*409833*/                OPC_MoveParent,
/*409834*/                OPC_CheckType, MVT::v4f64,
/*409836*/                OPC_MoveParent,
/*409837*/                OPC_MoveParent,
/*409838*/                OPC_RecordChild2, // #3 = $src0
/*409839*/                OPC_CheckType, MVT::v8f32,
/*409841*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*409843*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*409846*/                OPC_EmitMergeInputChains1_1,
/*409847*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Z256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTF32X2Z256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*409860*/              /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::AND),// ->410008
/*409864*/                OPC_Scope, 70, /*->409936*/ // 2 children in Scope
/*409866*/                  OPC_RecordChild0, // #1 = $src1
/*409867*/                  OPC_MoveChild1,
/*409868*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*409871*/                  OPC_RecordMemRef,
/*409872*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*409873*/                  OPC_CheckFoldableChainNode,
/*409874*/                  OPC_RecordChild1, // #3 = $src2
/*409875*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409877*/                  OPC_CheckPredicate, 9, // Predicate_load
/*409879*/                  OPC_MoveParent,
/*409880*/                  OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->409908
/*409883*/                    OPC_MoveParent,
/*409884*/                    OPC_MoveParent,
/*409885*/                    OPC_RecordChild2, // #4 = $src0
/*409886*/                    OPC_CheckType, MVT::v8f32,
/*409888*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*409890*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*409893*/                    OPC_EmitMergeInputChains1_2,
/*409894*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*409908*/                  /*SwitchType*/ 25, MVT::v8i64,// ->409935
/*409910*/                    OPC_MoveParent,
/*409911*/                    OPC_MoveParent,
/*409912*/                    OPC_RecordChild2, // #4 = $src0
/*409913*/                    OPC_CheckType, MVT::v8f64,
/*409915*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*409917*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*409920*/                    OPC_EmitMergeInputChains1_2,
/*409921*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*409935*/                  0, // EndSwitchType
/*409936*/                /*Scope*/ 70, /*->410007*/
/*409937*/                  OPC_MoveChild0,
/*409938*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*409941*/                  OPC_RecordMemRef,
/*409942*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*409943*/                  OPC_CheckFoldableChainNode,
/*409944*/                  OPC_RecordChild1, // #2 = $src2
/*409945*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409947*/                  OPC_CheckPredicate, 9, // Predicate_load
/*409949*/                  OPC_MoveParent,
/*409950*/                  OPC_RecordChild1, // #3 = $src1
/*409951*/                  OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->409979
/*409954*/                    OPC_MoveParent,
/*409955*/                    OPC_MoveParent,
/*409956*/                    OPC_RecordChild2, // #4 = $src0
/*409957*/                    OPC_CheckType, MVT::v8f32,
/*409959*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*409961*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*409964*/                    OPC_EmitMergeInputChains1_1,
/*409965*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*409979*/                  /*SwitchType*/ 25, MVT::v8i64,// ->410006
/*409981*/                    OPC_MoveParent,
/*409982*/                    OPC_MoveParent,
/*409983*/                    OPC_RecordChild2, // #4 = $src0
/*409984*/                    OPC_CheckType, MVT::v8f64,
/*409986*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*409988*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*409991*/                    OPC_EmitMergeInputChains1_1,
/*409992*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410006*/                  0, // EndSwitchType
/*410007*/                0, /*End of Scope*/
/*410008*/              /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::OR),// ->410156
/*410012*/                OPC_Scope, 70, /*->410084*/ // 2 children in Scope
/*410014*/                  OPC_RecordChild0, // #1 = $src1
/*410015*/                  OPC_MoveChild1,
/*410016*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*410019*/                  OPC_RecordMemRef,
/*410020*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*410021*/                  OPC_CheckFoldableChainNode,
/*410022*/                  OPC_RecordChild1, // #3 = $src2
/*410023*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410025*/                  OPC_CheckPredicate, 9, // Predicate_load
/*410027*/                  OPC_MoveParent,
/*410028*/                  OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->410056
/*410031*/                    OPC_MoveParent,
/*410032*/                    OPC_MoveParent,
/*410033*/                    OPC_RecordChild2, // #4 = $src0
/*410034*/                    OPC_CheckType, MVT::v8f32,
/*410036*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410038*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410041*/                    OPC_EmitMergeInputChains1_2,
/*410042*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410056*/                  /*SwitchType*/ 25, MVT::v8i64,// ->410083
/*410058*/                    OPC_MoveParent,
/*410059*/                    OPC_MoveParent,
/*410060*/                    OPC_RecordChild2, // #4 = $src0
/*410061*/                    OPC_CheckType, MVT::v8f64,
/*410063*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*410065*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410068*/                    OPC_EmitMergeInputChains1_2,
/*410069*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410083*/                  0, // EndSwitchType
/*410084*/                /*Scope*/ 70, /*->410155*/
/*410085*/                  OPC_MoveChild0,
/*410086*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*410089*/                  OPC_RecordMemRef,
/*410090*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*410091*/                  OPC_CheckFoldableChainNode,
/*410092*/                  OPC_RecordChild1, // #2 = $src2
/*410093*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410095*/                  OPC_CheckPredicate, 9, // Predicate_load
/*410097*/                  OPC_MoveParent,
/*410098*/                  OPC_RecordChild1, // #3 = $src1
/*410099*/                  OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->410127
/*410102*/                    OPC_MoveParent,
/*410103*/                    OPC_MoveParent,
/*410104*/                    OPC_RecordChild2, // #4 = $src0
/*410105*/                    OPC_CheckType, MVT::v8f32,
/*410107*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410109*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410112*/                    OPC_EmitMergeInputChains1_1,
/*410113*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410127*/                  /*SwitchType*/ 25, MVT::v8i64,// ->410154
/*410129*/                    OPC_MoveParent,
/*410130*/                    OPC_MoveParent,
/*410131*/                    OPC_RecordChild2, // #4 = $src0
/*410132*/                    OPC_CheckType, MVT::v8f64,
/*410134*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*410136*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410139*/                    OPC_EmitMergeInputChains1_1,
/*410140*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410154*/                  0, // EndSwitchType
/*410155*/                0, /*End of Scope*/
/*410156*/              /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::XOR),// ->410304
/*410160*/                OPC_Scope, 70, /*->410232*/ // 2 children in Scope
/*410162*/                  OPC_RecordChild0, // #1 = $src1
/*410163*/                  OPC_MoveChild1,
/*410164*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*410167*/                  OPC_RecordMemRef,
/*410168*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*410169*/                  OPC_CheckFoldableChainNode,
/*410170*/                  OPC_RecordChild1, // #3 = $src2
/*410171*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410173*/                  OPC_CheckPredicate, 9, // Predicate_load
/*410175*/                  OPC_MoveParent,
/*410176*/                  OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->410204
/*410179*/                    OPC_MoveParent,
/*410180*/                    OPC_MoveParent,
/*410181*/                    OPC_RecordChild2, // #4 = $src0
/*410182*/                    OPC_CheckType, MVT::v8f32,
/*410184*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410186*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410189*/                    OPC_EmitMergeInputChains1_2,
/*410190*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410204*/                  /*SwitchType*/ 25, MVT::v8i64,// ->410231
/*410206*/                    OPC_MoveParent,
/*410207*/                    OPC_MoveParent,
/*410208*/                    OPC_RecordChild2, // #4 = $src0
/*410209*/                    OPC_CheckType, MVT::v8f64,
/*410211*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*410213*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410216*/                    OPC_EmitMergeInputChains1_2,
/*410217*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410231*/                  0, // EndSwitchType
/*410232*/                /*Scope*/ 70, /*->410303*/
/*410233*/                  OPC_MoveChild0,
/*410234*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*410237*/                  OPC_RecordMemRef,
/*410238*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*410239*/                  OPC_CheckFoldableChainNode,
/*410240*/                  OPC_RecordChild1, // #2 = $src2
/*410241*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410243*/                  OPC_CheckPredicate, 9, // Predicate_load
/*410245*/                  OPC_MoveParent,
/*410246*/                  OPC_RecordChild1, // #3 = $src1
/*410247*/                  OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->410275
/*410250*/                    OPC_MoveParent,
/*410251*/                    OPC_MoveParent,
/*410252*/                    OPC_RecordChild2, // #4 = $src0
/*410253*/                    OPC_CheckType, MVT::v8f32,
/*410255*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410257*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410260*/                    OPC_EmitMergeInputChains1_1,
/*410261*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410275*/                  /*SwitchType*/ 25, MVT::v8i64,// ->410302
/*410277*/                    OPC_MoveParent,
/*410278*/                    OPC_MoveParent,
/*410279*/                    OPC_RecordChild2, // #4 = $src0
/*410280*/                    OPC_CheckType, MVT::v8f64,
/*410282*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*410284*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410287*/                    OPC_EmitMergeInputChains1_1,
/*410288*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410302*/                  0, // EndSwitchType
/*410303*/                0, /*End of Scope*/
/*410304*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::ANDNP),// ->410377
/*410307*/                OPC_RecordChild0, // #1 = $src1
/*410308*/                OPC_MoveChild1,
/*410309*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*410312*/                OPC_RecordMemRef,
/*410313*/                OPC_RecordNode, // #2 = 'ld' chained node
/*410314*/                OPC_CheckFoldableChainNode,
/*410315*/                OPC_RecordChild1, // #3 = $src2
/*410316*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410318*/                OPC_CheckPredicate, 9, // Predicate_load
/*410320*/                OPC_MoveParent,
/*410321*/                OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->410349
/*410324*/                  OPC_MoveParent,
/*410325*/                  OPC_MoveParent,
/*410326*/                  OPC_RecordChild2, // #4 = $src0
/*410327*/                  OPC_CheckType, MVT::v8f32,
/*410329*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410331*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410334*/                  OPC_EmitMergeInputChains1_2,
/*410335*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410349*/                /*SwitchType*/ 25, MVT::v8i64,// ->410376
/*410351*/                  OPC_MoveParent,
/*410352*/                  OPC_MoveParent,
/*410353*/                  OPC_RecordChild2, // #4 = $src0
/*410354*/                  OPC_CheckType, MVT::v8f64,
/*410356*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*410358*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410361*/                  OPC_EmitMergeInputChains1_2,
/*410362*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                            // Dst: (VPANDNQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410376*/                0, // EndSwitchType
/*410377*/              /*SwitchOpcode*/ 46, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->410426
/*410380*/                OPC_RecordChild0, // #1 = $src
/*410381*/                OPC_CheckChild1Integer, 0, 
/*410383*/                OPC_CheckChild1Type, MVT::iPTR,
/*410385*/                OPC_CheckType, MVT::v4f64,
/*410387*/                OPC_MoveParent,
/*410388*/                OPC_MoveParent,
/*410389*/                OPC_MoveChild2,
/*410390*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*410393*/                OPC_MoveChild0,
/*410394*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*410397*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*410399*/                OPC_CheckType, MVT::v8i32,
/*410401*/                OPC_MoveParent,
/*410402*/                OPC_MoveParent,
/*410403*/                OPC_CheckType, MVT::v8f32,
/*410405*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410407*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*410410*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::v4f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*410418*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rrkz), 0,
                              MVT::v8f32, 2/*#Ops*/, 0, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] })), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VMOVAPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, sub_ymm:{ *:[i32] }))
/*410426*/              0, // EndSwitchOpcode
/*410427*/            /*Scope*/ 62|128,1/*190*/, /*->410619*/
/*410429*/              OPC_RecordChild0, // #1 = $ins
/*410430*/              OPC_MoveChild0,
/*410431*/              OPC_SwitchOpcode /*2 cases */, 9|128,1/*137*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->410573
/*410436*/                OPC_RecordChild0, // #2 = $src1
/*410437*/                OPC_RecordChild1, // #3 = $src2
/*410438*/                OPC_Scope, 42, /*->410482*/ // 3 children in Scope
/*410440*/                  OPC_MoveChild2,
/*410441*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*410444*/                  OPC_CheckType, MVT::iPTR,
/*410446*/                  OPC_MoveParent,
/*410447*/                  OPC_CheckType, MVT::v4f64,
/*410449*/                  OPC_MoveParent,
/*410450*/                  OPC_MoveParent,
/*410451*/                  OPC_MoveChild2,
/*410452*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*410455*/                  OPC_MoveChild0,
/*410456*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*410459*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*410461*/                  OPC_CheckType, MVT::v8i32,
/*410463*/                  OPC_MoveParent,
/*410464*/                  OPC_MoveParent,
/*410465*/                  OPC_CheckType, MVT::v8f32,
/*410467*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410469*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*410472*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rrkz), 0,
                                MVT::v8f32, 4/*#Ops*/, 0, 2, 3, 4, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VINSERTF32x4Z256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ins))
/*410482*/                /*Scope*/ 44, /*->410527*/
/*410483*/                  OPC_CheckChild1Type, MVT::v4f32,
/*410485*/                  OPC_MoveChild2,
/*410486*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*410489*/                  OPC_CheckType, MVT::iPTR,
/*410491*/                  OPC_MoveParent,
/*410492*/                  OPC_CheckType, MVT::v16f32,
/*410494*/                  OPC_MoveParent,
/*410495*/                  OPC_MoveParent,
/*410496*/                  OPC_MoveChild2,
/*410497*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*410500*/                  OPC_MoveChild0,
/*410501*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*410504*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*410506*/                  OPC_CheckType, MVT::v16i32,
/*410508*/                  OPC_MoveParent,
/*410509*/                  OPC_MoveParent,
/*410510*/                  OPC_CheckType, MVT::v8f64,
/*410512*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*410514*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*410517*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Zrrkz), 0,
                                MVT::v8f64, 4/*#Ops*/, 0, 2, 3, 4, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VINSERTF64x2Zrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*410527*/                /*Scope*/ 44, /*->410572*/
/*410528*/                  OPC_CheckChild1Type, MVT::v8f32,
/*410530*/                  OPC_MoveChild2,
/*410531*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*410534*/                  OPC_CheckType, MVT::iPTR,
/*410536*/                  OPC_MoveParent,
/*410537*/                  OPC_CheckType, MVT::v16f32,
/*410539*/                  OPC_MoveParent,
/*410540*/                  OPC_MoveParent,
/*410541*/                  OPC_MoveChild2,
/*410542*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*410545*/                  OPC_MoveChild0,
/*410546*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*410549*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*410551*/                  OPC_CheckType, MVT::v16i32,
/*410553*/                  OPC_MoveParent,
/*410554*/                  OPC_MoveParent,
/*410555*/                  OPC_CheckType, MVT::v8f64,
/*410557*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*410559*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*410562*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrrkz), 0,
                                MVT::v8f64, 4/*#Ops*/, 0, 2, 3, 4, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                            // Dst: (VINSERTF64x4Zrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*410572*/                0, /*End of Scope*/
/*410573*/              /*SwitchOpcode*/ 42, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->410618
/*410576*/                OPC_RecordChild0, // #2 = $src
/*410577*/                OPC_MoveChild1,
/*410578*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*410581*/                OPC_CheckType, MVT::iPTR,
/*410583*/                OPC_MoveParent,
/*410584*/                OPC_CheckType, MVT::v4f64,
/*410586*/                OPC_MoveParent,
/*410587*/                OPC_MoveParent,
/*410588*/                OPC_MoveChild2,
/*410589*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*410592*/                OPC_MoveChild0,
/*410593*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*410596*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*410598*/                OPC_CheckType, MVT::v8i32,
/*410600*/                OPC_MoveParent,
/*410601*/                OPC_MoveParent,
/*410602*/                OPC_CheckType, MVT::v8f32,
/*410604*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*410606*/                OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*410609*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x8Zrrkz), 0,
                              MVT::v8f32, 3/*#Ops*/, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VEXTRACTF32x8Zrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ext))
/*410618*/              0, // EndSwitchOpcode
/*410619*/            /*Scope*/ 46, /*->410666*/
/*410620*/              OPC_MoveChild0,
/*410621*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*410624*/              OPC_RecordChild0, // #1 = $src1
/*410625*/              OPC_RecordChild1, // #2 = $src2
/*410626*/              OPC_RecordChild2, // #3 = $src3
/*410627*/              OPC_MoveChild2,
/*410628*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*410631*/              OPC_MoveParent,
/*410632*/              OPC_CheckType, MVT::v4f64,
/*410634*/              OPC_MoveParent,
/*410635*/              OPC_MoveParent,
/*410636*/              OPC_MoveChild2,
/*410637*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*410640*/              OPC_MoveChild0,
/*410641*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*410644*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*410646*/              OPC_CheckType, MVT::v8i32,
/*410648*/              OPC_MoveParent,
/*410649*/              OPC_MoveParent,
/*410650*/              OPC_CheckType, MVT::v8f32,
/*410652*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410654*/              OPC_EmitConvertToTarget, 3,
/*410656*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rrikz), 0,
                            MVT::v8f32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                        // Dst: (VSHUFF32X4Z256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*410666*/            0, /*End of Scope*/
/*410667*/          /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(X86ISD::VPERMV3),// ->410883
/*410671*/            OPC_RecordChild0, // #1 = $src2
/*410672*/            OPC_RecordChild1, // #2 = $src1
/*410673*/            OPC_MoveChild2,
/*410674*/            OPC_SwitchOpcode /*2 cases */, 125, TARGET_VAL(ISD::LOAD),// ->410803
/*410678*/              OPC_RecordMemRef,
/*410679*/              OPC_RecordNode, // #3 = 'ld' chained node
/*410680*/              OPC_CheckFoldableChainNode,
/*410681*/              OPC_RecordChild1, // #4 = $src3
/*410682*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410684*/              OPC_CheckPredicate, 9, // Predicate_load
/*410686*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*410688*/              OPC_MoveParent,
/*410689*/              OPC_MoveParent,
/*410690*/              OPC_Scope, 57, /*->410749*/ // 2 children in Scope
/*410692*/                OPC_MoveChild2,
/*410693*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*410696*/                OPC_CheckChild0Same, 2,
/*410698*/                OPC_MoveParent,
/*410699*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->410724
/*410702*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410704*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410707*/                  OPC_EmitMergeInputChains, 1, 3, 
/*410710*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1)) - Complexity = 31
                            // Dst: (VPERMI2PS256rmk:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410724*/                /*SwitchType*/ 22, MVT::v8f64,// ->410748
/*410726*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*410728*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410731*/                  OPC_EmitMergeInputChains, 1, 3, 
/*410734*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PDrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1)) - Complexity = 31
                            // Dst: (VPERMI2PDrmk:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410748*/                0, // EndSwitchType
/*410749*/              /*Scope*/ 52, /*->410802*/
/*410750*/                OPC_CheckChild2Same, 1,
/*410752*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->410777
/*410755*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410757*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410760*/                  OPC_EmitMergeInputChains, 1, 3, 
/*410763*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2PS256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410777*/                /*SwitchType*/ 22, MVT::v8f64,// ->410801
/*410779*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*410781*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410784*/                  OPC_EmitMergeInputChains, 1, 3, 
/*410787*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PDrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2PDrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410801*/                0, // EndSwitchType
/*410802*/              0, /*End of Scope*/
/*410803*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST),// ->410882
/*410806*/              OPC_MoveChild0,
/*410807*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*410810*/              OPC_RecordMemRef,
/*410811*/              OPC_RecordNode, // #3 = 'ld' chained node
/*410812*/              OPC_CheckFoldableChainNode,
/*410813*/              OPC_RecordChild1, // #4 = $src3
/*410814*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410816*/              OPC_CheckPredicate, 9, // Predicate_load
/*410818*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->410850
/*410821*/                OPC_MoveParent,
/*410822*/                OPC_MoveParent,
/*410823*/                OPC_MoveParent,
/*410824*/                OPC_CheckChild2Same, 1,
/*410826*/                OPC_CheckType, MVT::v8f32,
/*410828*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410830*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410833*/                OPC_EmitMergeInputChains, 1, 3, 
/*410836*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VPERMT2PS256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410850*/              /*SwitchType*/ 29, MVT::f64,// ->410881
/*410852*/                OPC_MoveParent,
/*410853*/                OPC_MoveParent,
/*410854*/                OPC_MoveParent,
/*410855*/                OPC_CheckChild2Same, 1,
/*410857*/                OPC_CheckType, MVT::v8f64,
/*410859*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*410861*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410864*/                OPC_EmitMergeInputChains, 1, 3, 
/*410867*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PDrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VPERMT2PDrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410881*/              0, // EndSwitchType
/*410882*/            0, // EndSwitchOpcode
/*410883*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(ISD::FADD),// ->411172
/*410887*/            OPC_Scope, 75, /*->410964*/ // 4 children in Scope
/*410889*/              OPC_RecordChild0, // #1 = $src1
/*410890*/              OPC_MoveChild1,
/*410891*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*410894*/              OPC_MoveChild0,
/*410895*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*410898*/              OPC_RecordMemRef,
/*410899*/              OPC_RecordNode, // #2 = 'ld' chained node
/*410900*/              OPC_CheckFoldableChainNode,
/*410901*/              OPC_RecordChild1, // #3 = $src2
/*410902*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410904*/              OPC_CheckPredicate, 9, // Predicate_load
/*410906*/              OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->410935
/*410909*/                OPC_MoveParent,
/*410910*/                OPC_MoveParent,
/*410911*/                OPC_MoveParent,
/*410912*/                OPC_RecordChild2, // #4 = $src0
/*410913*/                OPC_CheckType, MVT::v8f64,
/*410915*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*410917*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410920*/                OPC_EmitMergeInputChains1_2,
/*410921*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VADDPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410935*/              /*SwitchType*/ 26, MVT::f32,// ->410963
/*410937*/                OPC_MoveParent,
/*410938*/                OPC_MoveParent,
/*410939*/                OPC_MoveParent,
/*410940*/                OPC_RecordChild2, // #4 = $src0
/*410941*/                OPC_CheckType, MVT::v8f32,
/*410943*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410945*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410948*/                OPC_EmitMergeInputChains1_2,
/*410949*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VADDPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*410963*/              0, // EndSwitchType
/*410964*/            /*Scope*/ 76, /*->411041*/
/*410965*/              OPC_MoveChild0,
/*410966*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*410969*/              OPC_MoveChild0,
/*410970*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*410973*/              OPC_RecordMemRef,
/*410974*/              OPC_RecordNode, // #1 = 'ld' chained node
/*410975*/              OPC_CheckFoldableChainNode,
/*410976*/              OPC_RecordChild1, // #2 = $src2
/*410977*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410979*/              OPC_CheckPredicate, 9, // Predicate_load
/*410981*/              OPC_SwitchType /*2 cases */, 27, MVT::f64,// ->411011
/*410984*/                OPC_MoveParent,
/*410985*/                OPC_MoveParent,
/*410986*/                OPC_RecordChild1, // #3 = $src1
/*410987*/                OPC_MoveParent,
/*410988*/                OPC_RecordChild2, // #4 = $src0
/*410989*/                OPC_CheckType, MVT::v8f64,
/*410991*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*410993*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*410996*/                OPC_EmitMergeInputChains1_1,
/*410997*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VADDPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411011*/              /*SwitchType*/ 27, MVT::f32,// ->411040
/*411013*/                OPC_MoveParent,
/*411014*/                OPC_MoveParent,
/*411015*/                OPC_RecordChild1, // #3 = $src1
/*411016*/                OPC_MoveParent,
/*411017*/                OPC_RecordChild2, // #4 = $src0
/*411018*/                OPC_CheckType, MVT::v8f32,
/*411020*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411022*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411025*/                OPC_EmitMergeInputChains1_1,
/*411026*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VADDPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411040*/              0, // EndSwitchType
/*411041*/            /*Scope*/ 64, /*->411106*/
/*411042*/              OPC_RecordChild0, // #1 = $src1
/*411043*/              OPC_MoveChild1,
/*411044*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*411047*/              OPC_RecordMemRef,
/*411048*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411049*/              OPC_CheckFoldableChainNode,
/*411050*/              OPC_RecordChild1, // #3 = $src2
/*411051*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411053*/              OPC_CheckPredicate, 9, // Predicate_load
/*411055*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*411057*/              OPC_MoveParent,
/*411058*/              OPC_MoveParent,
/*411059*/              OPC_RecordChild2, // #4 = $src0
/*411060*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->411083
/*411063*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411065*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411068*/                OPC_EmitMergeInputChains1_2,
/*411069*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411083*/              /*SwitchType*/ 20, MVT::v8f32,// ->411105
/*411085*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411087*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411090*/                OPC_EmitMergeInputChains1_2,
/*411091*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411105*/              0, // EndSwitchType
/*411106*/            /*Scope*/ 64, /*->411171*/
/*411107*/              OPC_MoveChild0,
/*411108*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*411111*/              OPC_RecordMemRef,
/*411112*/              OPC_RecordNode, // #1 = 'ld' chained node
/*411113*/              OPC_CheckFoldableChainNode,
/*411114*/              OPC_RecordChild1, // #2 = $src2
/*411115*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411117*/              OPC_CheckPredicate, 9, // Predicate_load
/*411119*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*411121*/              OPC_MoveParent,
/*411122*/              OPC_RecordChild1, // #3 = $src1
/*411123*/              OPC_MoveParent,
/*411124*/              OPC_RecordChild2, // #4 = $src0
/*411125*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->411148
/*411128*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411130*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411133*/                OPC_EmitMergeInputChains1_1,
/*411134*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411148*/              /*SwitchType*/ 20, MVT::v8f32,// ->411170
/*411150*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411152*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411155*/                OPC_EmitMergeInputChains1_1,
/*411156*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411170*/              0, // EndSwitchType
/*411171*/            0, /*End of Scope*/
/*411172*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(ISD::FMUL),// ->411461
/*411176*/            OPC_Scope, 75, /*->411253*/ // 4 children in Scope
/*411178*/              OPC_RecordChild0, // #1 = $src1
/*411179*/              OPC_MoveChild1,
/*411180*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*411183*/              OPC_MoveChild0,
/*411184*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*411187*/              OPC_RecordMemRef,
/*411188*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411189*/              OPC_CheckFoldableChainNode,
/*411190*/              OPC_RecordChild1, // #3 = $src2
/*411191*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411193*/              OPC_CheckPredicate, 9, // Predicate_load
/*411195*/              OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->411224
/*411198*/                OPC_MoveParent,
/*411199*/                OPC_MoveParent,
/*411200*/                OPC_MoveParent,
/*411201*/                OPC_RecordChild2, // #4 = $src0
/*411202*/                OPC_CheckType, MVT::v8f64,
/*411204*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411206*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411209*/                OPC_EmitMergeInputChains1_2,
/*411210*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VMULPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411224*/              /*SwitchType*/ 26, MVT::f32,// ->411252
/*411226*/                OPC_MoveParent,
/*411227*/                OPC_MoveParent,
/*411228*/                OPC_MoveParent,
/*411229*/                OPC_RecordChild2, // #4 = $src0
/*411230*/                OPC_CheckType, MVT::v8f32,
/*411232*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411234*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411237*/                OPC_EmitMergeInputChains1_2,
/*411238*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VMULPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411252*/              0, // EndSwitchType
/*411253*/            /*Scope*/ 76, /*->411330*/
/*411254*/              OPC_MoveChild0,
/*411255*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*411258*/              OPC_MoveChild0,
/*411259*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*411262*/              OPC_RecordMemRef,
/*411263*/              OPC_RecordNode, // #1 = 'ld' chained node
/*411264*/              OPC_CheckFoldableChainNode,
/*411265*/              OPC_RecordChild1, // #2 = $src2
/*411266*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411268*/              OPC_CheckPredicate, 9, // Predicate_load
/*411270*/              OPC_SwitchType /*2 cases */, 27, MVT::f64,// ->411300
/*411273*/                OPC_MoveParent,
/*411274*/                OPC_MoveParent,
/*411275*/                OPC_RecordChild1, // #3 = $src1
/*411276*/                OPC_MoveParent,
/*411277*/                OPC_RecordChild2, // #4 = $src0
/*411278*/                OPC_CheckType, MVT::v8f64,
/*411280*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411282*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411285*/                OPC_EmitMergeInputChains1_1,
/*411286*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VMULPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411300*/              /*SwitchType*/ 27, MVT::f32,// ->411329
/*411302*/                OPC_MoveParent,
/*411303*/                OPC_MoveParent,
/*411304*/                OPC_RecordChild1, // #3 = $src1
/*411305*/                OPC_MoveParent,
/*411306*/                OPC_RecordChild2, // #4 = $src0
/*411307*/                OPC_CheckType, MVT::v8f32,
/*411309*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411311*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411314*/                OPC_EmitMergeInputChains1_1,
/*411315*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VMULPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411329*/              0, // EndSwitchType
/*411330*/            /*Scope*/ 64, /*->411395*/
/*411331*/              OPC_RecordChild0, // #1 = $src1
/*411332*/              OPC_MoveChild1,
/*411333*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*411336*/              OPC_RecordMemRef,
/*411337*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411338*/              OPC_CheckFoldableChainNode,
/*411339*/              OPC_RecordChild1, // #3 = $src2
/*411340*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411342*/              OPC_CheckPredicate, 9, // Predicate_load
/*411344*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*411346*/              OPC_MoveParent,
/*411347*/              OPC_MoveParent,
/*411348*/              OPC_RecordChild2, // #4 = $src0
/*411349*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->411372
/*411352*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411354*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411357*/                OPC_EmitMergeInputChains1_2,
/*411358*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411372*/              /*SwitchType*/ 20, MVT::v8f32,// ->411394
/*411374*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411376*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411379*/                OPC_EmitMergeInputChains1_2,
/*411380*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411394*/              0, // EndSwitchType
/*411395*/            /*Scope*/ 64, /*->411460*/
/*411396*/              OPC_MoveChild0,
/*411397*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*411400*/              OPC_RecordMemRef,
/*411401*/              OPC_RecordNode, // #1 = 'ld' chained node
/*411402*/              OPC_CheckFoldableChainNode,
/*411403*/              OPC_RecordChild1, // #2 = $src2
/*411404*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411406*/              OPC_CheckPredicate, 9, // Predicate_load
/*411408*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*411410*/              OPC_MoveParent,
/*411411*/              OPC_RecordChild1, // #3 = $src1
/*411412*/              OPC_MoveParent,
/*411413*/              OPC_RecordChild2, // #4 = $src0
/*411414*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->411437
/*411417*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411419*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411422*/                OPC_EmitMergeInputChains1_1,
/*411423*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411437*/              /*SwitchType*/ 20, MVT::v8f32,// ->411459
/*411439*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411441*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411444*/                OPC_EmitMergeInputChains1_1,
/*411445*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411459*/              0, // EndSwitchType
/*411460*/            0, /*End of Scope*/
/*411461*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(ISD::FSUB),// ->411604
/*411465*/            OPC_RecordChild0, // #1 = $src1
/*411466*/            OPC_MoveChild1,
/*411467*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->411541
/*411471*/              OPC_MoveChild0,
/*411472*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*411475*/              OPC_RecordMemRef,
/*411476*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411477*/              OPC_CheckFoldableChainNode,
/*411478*/              OPC_RecordChild1, // #3 = $src2
/*411479*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411481*/              OPC_CheckPredicate, 9, // Predicate_load
/*411483*/              OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->411512
/*411486*/                OPC_MoveParent,
/*411487*/                OPC_MoveParent,
/*411488*/                OPC_MoveParent,
/*411489*/                OPC_RecordChild2, // #4 = $src0
/*411490*/                OPC_CheckType, MVT::v8f64,
/*411492*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411494*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411497*/                OPC_EmitMergeInputChains1_2,
/*411498*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VSUBPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411512*/              /*SwitchType*/ 26, MVT::f32,// ->411540
/*411514*/                OPC_MoveParent,
/*411515*/                OPC_MoveParent,
/*411516*/                OPC_MoveParent,
/*411517*/                OPC_RecordChild2, // #4 = $src0
/*411518*/                OPC_CheckType, MVT::v8f32,
/*411520*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411522*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411525*/                OPC_EmitMergeInputChains1_2,
/*411526*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VSUBPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411540*/              0, // EndSwitchType
/*411541*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->411603
/*411544*/              OPC_RecordMemRef,
/*411545*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411546*/              OPC_CheckFoldableChainNode,
/*411547*/              OPC_RecordChild1, // #3 = $src2
/*411548*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411550*/              OPC_CheckPredicate, 9, // Predicate_load
/*411552*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*411554*/              OPC_MoveParent,
/*411555*/              OPC_MoveParent,
/*411556*/              OPC_RecordChild2, // #4 = $src0
/*411557*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->411580
/*411560*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411562*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411565*/                OPC_EmitMergeInputChains1_2,
/*411566*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411580*/              /*SwitchType*/ 20, MVT::v8f32,// ->411602
/*411582*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411584*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411587*/                OPC_EmitMergeInputChains1_2,
/*411588*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSUBPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411602*/              0, // EndSwitchType
/*411603*/            0, // EndSwitchOpcode
/*411604*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(ISD::FDIV),// ->411747
/*411608*/            OPC_RecordChild0, // #1 = $src1
/*411609*/            OPC_MoveChild1,
/*411610*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->411684
/*411614*/              OPC_MoveChild0,
/*411615*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*411618*/              OPC_RecordMemRef,
/*411619*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411620*/              OPC_CheckFoldableChainNode,
/*411621*/              OPC_RecordChild1, // #3 = $src2
/*411622*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411624*/              OPC_CheckPredicate, 9, // Predicate_load
/*411626*/              OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->411655
/*411629*/                OPC_MoveParent,
/*411630*/                OPC_MoveParent,
/*411631*/                OPC_MoveParent,
/*411632*/                OPC_RecordChild2, // #4 = $src0
/*411633*/                OPC_CheckType, MVT::v8f64,
/*411635*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411637*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411640*/                OPC_EmitMergeInputChains1_2,
/*411641*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VDIVPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411655*/              /*SwitchType*/ 26, MVT::f32,// ->411683
/*411657*/                OPC_MoveParent,
/*411658*/                OPC_MoveParent,
/*411659*/                OPC_MoveParent,
/*411660*/                OPC_RecordChild2, // #4 = $src0
/*411661*/                OPC_CheckType, MVT::v8f32,
/*411663*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411665*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411668*/                OPC_EmitMergeInputChains1_2,
/*411669*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VDIVPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411683*/              0, // EndSwitchType
/*411684*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->411746
/*411687*/              OPC_RecordMemRef,
/*411688*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411689*/              OPC_CheckFoldableChainNode,
/*411690*/              OPC_RecordChild1, // #3 = $src2
/*411691*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411693*/              OPC_CheckPredicate, 9, // Predicate_load
/*411695*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*411697*/              OPC_MoveParent,
/*411698*/              OPC_MoveParent,
/*411699*/              OPC_RecordChild2, // #4 = $src0
/*411700*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->411723
/*411703*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411705*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411708*/                OPC_EmitMergeInputChains1_2,
/*411709*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411723*/              /*SwitchType*/ 20, MVT::v8f32,// ->411745
/*411725*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411727*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411730*/                OPC_EmitMergeInputChains1_2,
/*411731*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VDIVPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411745*/              0, // EndSwitchType
/*411746*/            0, // EndSwitchOpcode
/*411747*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::FMIN),// ->411890
/*411751*/            OPC_RecordChild0, // #1 = $src1
/*411752*/            OPC_MoveChild1,
/*411753*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->411827
/*411757*/              OPC_MoveChild0,
/*411758*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*411761*/              OPC_RecordMemRef,
/*411762*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411763*/              OPC_CheckFoldableChainNode,
/*411764*/              OPC_RecordChild1, // #3 = $src2
/*411765*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411767*/              OPC_CheckPredicate, 9, // Predicate_load
/*411769*/              OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->411798
/*411772*/                OPC_MoveParent,
/*411773*/                OPC_MoveParent,
/*411774*/                OPC_MoveParent,
/*411775*/                OPC_RecordChild2, // #4 = $src0
/*411776*/                OPC_CheckType, MVT::v8f64,
/*411778*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411780*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411783*/                OPC_EmitMergeInputChains1_2,
/*411784*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VMINPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411798*/              /*SwitchType*/ 26, MVT::f32,// ->411826
/*411800*/                OPC_MoveParent,
/*411801*/                OPC_MoveParent,
/*411802*/                OPC_MoveParent,
/*411803*/                OPC_RecordChild2, // #4 = $src0
/*411804*/                OPC_CheckType, MVT::v8f32,
/*411806*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411808*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411811*/                OPC_EmitMergeInputChains1_2,
/*411812*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VMINPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411826*/              0, // EndSwitchType
/*411827*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->411889
/*411830*/              OPC_RecordMemRef,
/*411831*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411832*/              OPC_CheckFoldableChainNode,
/*411833*/              OPC_RecordChild1, // #3 = $src2
/*411834*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411836*/              OPC_CheckPredicate, 9, // Predicate_load
/*411838*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*411840*/              OPC_MoveParent,
/*411841*/              OPC_MoveParent,
/*411842*/              OPC_RecordChild2, // #4 = $src0
/*411843*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->411866
/*411846*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411848*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411851*/                OPC_EmitMergeInputChains1_2,
/*411852*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMINPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411866*/              /*SwitchType*/ 20, MVT::v8f32,// ->411888
/*411868*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411870*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411873*/                OPC_EmitMergeInputChains1_2,
/*411874*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMINPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411888*/              0, // EndSwitchType
/*411889*/            0, // EndSwitchOpcode
/*411890*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::FMAX),// ->412033
/*411894*/            OPC_RecordChild0, // #1 = $src1
/*411895*/            OPC_MoveChild1,
/*411896*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->411970
/*411900*/              OPC_MoveChild0,
/*411901*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*411904*/              OPC_RecordMemRef,
/*411905*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411906*/              OPC_CheckFoldableChainNode,
/*411907*/              OPC_RecordChild1, // #3 = $src2
/*411908*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411910*/              OPC_CheckPredicate, 9, // Predicate_load
/*411912*/              OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->411941
/*411915*/                OPC_MoveParent,
/*411916*/                OPC_MoveParent,
/*411917*/                OPC_MoveParent,
/*411918*/                OPC_RecordChild2, // #4 = $src0
/*411919*/                OPC_CheckType, MVT::v8f64,
/*411921*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411923*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411926*/                OPC_EmitMergeInputChains1_2,
/*411927*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VMAXPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411941*/              /*SwitchType*/ 26, MVT::f32,// ->411969
/*411943*/                OPC_MoveParent,
/*411944*/                OPC_MoveParent,
/*411945*/                OPC_MoveParent,
/*411946*/                OPC_RecordChild2, // #4 = $src0
/*411947*/                OPC_CheckType, MVT::v8f32,
/*411949*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*411951*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411954*/                OPC_EmitMergeInputChains1_2,
/*411955*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VMAXPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*411969*/              0, // EndSwitchType
/*411970*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->412032
/*411973*/              OPC_RecordMemRef,
/*411974*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411975*/              OPC_CheckFoldableChainNode,
/*411976*/              OPC_RecordChild1, // #3 = $src2
/*411977*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411979*/              OPC_CheckPredicate, 9, // Predicate_load
/*411981*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*411983*/              OPC_MoveParent,
/*411984*/              OPC_MoveParent,
/*411985*/              OPC_RecordChild2, // #4 = $src0
/*411986*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->412009
/*411989*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*411991*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*411994*/                OPC_EmitMergeInputChains1_2,
/*411995*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412009*/              /*SwitchType*/ 20, MVT::v8f32,// ->412031
/*412011*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412013*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412016*/                OPC_EmitMergeInputChains1_2,
/*412017*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412031*/              0, // EndSwitchType
/*412032*/            0, // EndSwitchOpcode
/*412033*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(X86ISD::FMINC),// ->412322
/*412037*/            OPC_Scope, 75, /*->412114*/ // 4 children in Scope
/*412039*/              OPC_RecordChild0, // #1 = $src1
/*412040*/              OPC_MoveChild1,
/*412041*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*412044*/              OPC_MoveChild0,
/*412045*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412048*/              OPC_RecordMemRef,
/*412049*/              OPC_RecordNode, // #2 = 'ld' chained node
/*412050*/              OPC_CheckFoldableChainNode,
/*412051*/              OPC_RecordChild1, // #3 = $src2
/*412052*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412054*/              OPC_CheckPredicate, 9, // Predicate_load
/*412056*/              OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->412085
/*412059*/                OPC_MoveParent,
/*412060*/                OPC_MoveParent,
/*412061*/                OPC_MoveParent,
/*412062*/                OPC_RecordChild2, // #4 = $src0
/*412063*/                OPC_CheckType, MVT::v8f64,
/*412065*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412067*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412070*/                OPC_EmitMergeInputChains1_2,
/*412071*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VMINCPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412085*/              /*SwitchType*/ 26, MVT::f32,// ->412113
/*412087*/                OPC_MoveParent,
/*412088*/                OPC_MoveParent,
/*412089*/                OPC_MoveParent,
/*412090*/                OPC_RecordChild2, // #4 = $src0
/*412091*/                OPC_CheckType, MVT::v8f32,
/*412093*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412095*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412098*/                OPC_EmitMergeInputChains1_2,
/*412099*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VMINCPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412113*/              0, // EndSwitchType
/*412114*/            /*Scope*/ 76, /*->412191*/
/*412115*/              OPC_MoveChild0,
/*412116*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*412119*/              OPC_MoveChild0,
/*412120*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412123*/              OPC_RecordMemRef,
/*412124*/              OPC_RecordNode, // #1 = 'ld' chained node
/*412125*/              OPC_CheckFoldableChainNode,
/*412126*/              OPC_RecordChild1, // #2 = $src2
/*412127*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412129*/              OPC_CheckPredicate, 9, // Predicate_load
/*412131*/              OPC_SwitchType /*2 cases */, 27, MVT::f64,// ->412161
/*412134*/                OPC_MoveParent,
/*412135*/                OPC_MoveParent,
/*412136*/                OPC_RecordChild1, // #3 = $src1
/*412137*/                OPC_MoveParent,
/*412138*/                OPC_RecordChild2, // #4 = $src0
/*412139*/                OPC_CheckType, MVT::v8f64,
/*412141*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412143*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412146*/                OPC_EmitMergeInputChains1_1,
/*412147*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VMINCPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412161*/              /*SwitchType*/ 27, MVT::f32,// ->412190
/*412163*/                OPC_MoveParent,
/*412164*/                OPC_MoveParent,
/*412165*/                OPC_RecordChild1, // #3 = $src1
/*412166*/                OPC_MoveParent,
/*412167*/                OPC_RecordChild2, // #4 = $src0
/*412168*/                OPC_CheckType, MVT::v8f32,
/*412170*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412172*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412175*/                OPC_EmitMergeInputChains1_1,
/*412176*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VMINCPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412190*/              0, // EndSwitchType
/*412191*/            /*Scope*/ 64, /*->412256*/
/*412192*/              OPC_RecordChild0, // #1 = $src1
/*412193*/              OPC_MoveChild1,
/*412194*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412197*/              OPC_RecordMemRef,
/*412198*/              OPC_RecordNode, // #2 = 'ld' chained node
/*412199*/              OPC_CheckFoldableChainNode,
/*412200*/              OPC_RecordChild1, // #3 = $src2
/*412201*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412203*/              OPC_CheckPredicate, 9, // Predicate_load
/*412205*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*412207*/              OPC_MoveParent,
/*412208*/              OPC_MoveParent,
/*412209*/              OPC_RecordChild2, // #4 = $src0
/*412210*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->412233
/*412213*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412215*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412218*/                OPC_EmitMergeInputChains1_2,
/*412219*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMINCPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412233*/              /*SwitchType*/ 20, MVT::v8f32,// ->412255
/*412235*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412237*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412240*/                OPC_EmitMergeInputChains1_2,
/*412241*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMINCPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412255*/              0, // EndSwitchType
/*412256*/            /*Scope*/ 64, /*->412321*/
/*412257*/              OPC_MoveChild0,
/*412258*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412261*/              OPC_RecordMemRef,
/*412262*/              OPC_RecordNode, // #1 = 'ld' chained node
/*412263*/              OPC_CheckFoldableChainNode,
/*412264*/              OPC_RecordChild1, // #2 = $src2
/*412265*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412267*/              OPC_CheckPredicate, 9, // Predicate_load
/*412269*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*412271*/              OPC_MoveParent,
/*412272*/              OPC_RecordChild1, // #3 = $src1
/*412273*/              OPC_MoveParent,
/*412274*/              OPC_RecordChild2, // #4 = $src0
/*412275*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->412298
/*412278*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412280*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412283*/                OPC_EmitMergeInputChains1_1,
/*412284*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMINCPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412298*/              /*SwitchType*/ 20, MVT::v8f32,// ->412320
/*412300*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412302*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412305*/                OPC_EmitMergeInputChains1_1,
/*412306*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMINCPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412320*/              0, // EndSwitchType
/*412321*/            0, /*End of Scope*/
/*412322*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(X86ISD::FMAXC),// ->412611
/*412326*/            OPC_Scope, 75, /*->412403*/ // 4 children in Scope
/*412328*/              OPC_RecordChild0, // #1 = $src1
/*412329*/              OPC_MoveChild1,
/*412330*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*412333*/              OPC_MoveChild0,
/*412334*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412337*/              OPC_RecordMemRef,
/*412338*/              OPC_RecordNode, // #2 = 'ld' chained node
/*412339*/              OPC_CheckFoldableChainNode,
/*412340*/              OPC_RecordChild1, // #3 = $src2
/*412341*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412343*/              OPC_CheckPredicate, 9, // Predicate_load
/*412345*/              OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->412374
/*412348*/                OPC_MoveParent,
/*412349*/                OPC_MoveParent,
/*412350*/                OPC_MoveParent,
/*412351*/                OPC_RecordChild2, // #4 = $src0
/*412352*/                OPC_CheckType, MVT::v8f64,
/*412354*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412356*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412359*/                OPC_EmitMergeInputChains1_2,
/*412360*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VMAXCPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412374*/              /*SwitchType*/ 26, MVT::f32,// ->412402
/*412376*/                OPC_MoveParent,
/*412377*/                OPC_MoveParent,
/*412378*/                OPC_MoveParent,
/*412379*/                OPC_RecordChild2, // #4 = $src0
/*412380*/                OPC_CheckType, MVT::v8f32,
/*412382*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412384*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412387*/                OPC_EmitMergeInputChains1_2,
/*412388*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VMAXCPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412402*/              0, // EndSwitchType
/*412403*/            /*Scope*/ 76, /*->412480*/
/*412404*/              OPC_MoveChild0,
/*412405*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*412408*/              OPC_MoveChild0,
/*412409*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412412*/              OPC_RecordMemRef,
/*412413*/              OPC_RecordNode, // #1 = 'ld' chained node
/*412414*/              OPC_CheckFoldableChainNode,
/*412415*/              OPC_RecordChild1, // #2 = $src2
/*412416*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412418*/              OPC_CheckPredicate, 9, // Predicate_load
/*412420*/              OPC_SwitchType /*2 cases */, 27, MVT::f64,// ->412450
/*412423*/                OPC_MoveParent,
/*412424*/                OPC_MoveParent,
/*412425*/                OPC_RecordChild1, // #3 = $src1
/*412426*/                OPC_MoveParent,
/*412427*/                OPC_RecordChild2, // #4 = $src0
/*412428*/                OPC_CheckType, MVT::v8f64,
/*412430*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412432*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412435*/                OPC_EmitMergeInputChains1_1,
/*412436*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VMAXCPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412450*/              /*SwitchType*/ 27, MVT::f32,// ->412479
/*412452*/                OPC_MoveParent,
/*412453*/                OPC_MoveParent,
/*412454*/                OPC_RecordChild1, // #3 = $src1
/*412455*/                OPC_MoveParent,
/*412456*/                OPC_RecordChild2, // #4 = $src0
/*412457*/                OPC_CheckType, MVT::v8f32,
/*412459*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412461*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412464*/                OPC_EmitMergeInputChains1_1,
/*412465*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VMAXCPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412479*/              0, // EndSwitchType
/*412480*/            /*Scope*/ 64, /*->412545*/
/*412481*/              OPC_RecordChild0, // #1 = $src1
/*412482*/              OPC_MoveChild1,
/*412483*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412486*/              OPC_RecordMemRef,
/*412487*/              OPC_RecordNode, // #2 = 'ld' chained node
/*412488*/              OPC_CheckFoldableChainNode,
/*412489*/              OPC_RecordChild1, // #3 = $src2
/*412490*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412492*/              OPC_CheckPredicate, 9, // Predicate_load
/*412494*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*412496*/              OPC_MoveParent,
/*412497*/              OPC_MoveParent,
/*412498*/              OPC_RecordChild2, // #4 = $src0
/*412499*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->412522
/*412502*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412504*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412507*/                OPC_EmitMergeInputChains1_2,
/*412508*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412522*/              /*SwitchType*/ 20, MVT::v8f32,// ->412544
/*412524*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412526*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412529*/                OPC_EmitMergeInputChains1_2,
/*412530*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412544*/              0, // EndSwitchType
/*412545*/            /*Scope*/ 64, /*->412610*/
/*412546*/              OPC_MoveChild0,
/*412547*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412550*/              OPC_RecordMemRef,
/*412551*/              OPC_RecordNode, // #1 = 'ld' chained node
/*412552*/              OPC_CheckFoldableChainNode,
/*412553*/              OPC_RecordChild1, // #2 = $src2
/*412554*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412556*/              OPC_CheckPredicate, 9, // Predicate_load
/*412558*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*412560*/              OPC_MoveParent,
/*412561*/              OPC_RecordChild1, // #3 = $src1
/*412562*/              OPC_MoveParent,
/*412563*/              OPC_RecordChild2, // #4 = $src0
/*412564*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->412587
/*412567*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412569*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412572*/                OPC_EmitMergeInputChains1_1,
/*412573*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412587*/              /*SwitchType*/ 20, MVT::v8f32,// ->412609
/*412589*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412591*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412594*/                OPC_EmitMergeInputChains1_1,
/*412595*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412609*/              0, // EndSwitchType
/*412610*/            0, /*End of Scope*/
/*412611*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::VPERMV),// ->412754
/*412615*/            OPC_RecordChild0, // #1 = $src1
/*412616*/            OPC_MoveChild1,
/*412617*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->412691
/*412621*/              OPC_MoveChild0,
/*412622*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412625*/              OPC_RecordMemRef,
/*412626*/              OPC_RecordNode, // #2 = 'ld' chained node
/*412627*/              OPC_CheckFoldableChainNode,
/*412628*/              OPC_RecordChild1, // #3 = $src2
/*412629*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412631*/              OPC_CheckPredicate, 9, // Predicate_load
/*412633*/              OPC_SwitchType /*2 cases */, 26, MVT::f32,// ->412662
/*412636*/                OPC_MoveParent,
/*412637*/                OPC_MoveParent,
/*412638*/                OPC_MoveParent,
/*412639*/                OPC_RecordChild2, // #4 = $src0
/*412640*/                OPC_CheckType, MVT::v8f32,
/*412642*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412644*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412647*/                OPC_EmitMergeInputChains1_2,
/*412648*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VPERMPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412662*/              /*SwitchType*/ 26, MVT::f64,// ->412690
/*412664*/                OPC_MoveParent,
/*412665*/                OPC_MoveParent,
/*412666*/                OPC_MoveParent,
/*412667*/                OPC_RecordChild2, // #4 = $src0
/*412668*/                OPC_CheckType, MVT::v8f64,
/*412670*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412672*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412675*/                OPC_EmitMergeInputChains1_2,
/*412676*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VPERMPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412690*/              0, // EndSwitchType
/*412691*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->412753
/*412694*/              OPC_RecordMemRef,
/*412695*/              OPC_RecordNode, // #2 = 'ld' chained node
/*412696*/              OPC_CheckFoldableChainNode,
/*412697*/              OPC_RecordChild1, // #3 = $src2
/*412698*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412700*/              OPC_CheckPredicate, 9, // Predicate_load
/*412702*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*412704*/              OPC_MoveParent,
/*412705*/              OPC_MoveParent,
/*412706*/              OPC_RecordChild2, // #4 = $src0
/*412707*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->412730
/*412710*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412712*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412715*/                OPC_EmitMergeInputChains1_2,
/*412716*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VPERMPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412730*/              /*SwitchType*/ 20, MVT::v8f64,// ->412752
/*412732*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412734*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412737*/                OPC_EmitMergeInputChains1_2,
/*412738*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VPERMPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412752*/              0, // EndSwitchType
/*412753*/            0, // EndSwitchOpcode
/*412754*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VPERMI),// ->412804
/*412757*/            OPC_MoveChild0,
/*412758*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412761*/            OPC_RecordMemRef,
/*412762*/            OPC_RecordNode, // #1 = 'ld' chained node
/*412763*/            OPC_CheckFoldableChainNode,
/*412764*/            OPC_RecordChild1, // #2 = $src1
/*412765*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412767*/            OPC_CheckPredicate, 9, // Predicate_load
/*412769*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*412771*/            OPC_MoveParent,
/*412772*/            OPC_RecordChild1, // #3 = $src2
/*412773*/            OPC_MoveChild1,
/*412774*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*412777*/            OPC_MoveParent,
/*412778*/            OPC_MoveParent,
/*412779*/            OPC_RecordChild2, // #4 = $src0
/*412780*/            OPC_CheckType, MVT::v8f64,
/*412782*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412784*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*412787*/            OPC_EmitMergeInputChains1_1,
/*412788*/            OPC_EmitConvertToTarget, 3,
/*412790*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                      // Dst: (VPERMPDZmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*412804*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::VPERMILPV),// ->412970
/*412808*/            OPC_RecordChild0, // #1 = $src1
/*412809*/            OPC_MoveChild1,
/*412810*/            OPC_SwitchOpcode /*3 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->412856
/*412814*/              OPC_MoveChild0,
/*412815*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412818*/              OPC_RecordMemRef,
/*412819*/              OPC_RecordNode, // #2 = 'ld' chained node
/*412820*/              OPC_CheckFoldableChainNode,
/*412821*/              OPC_RecordChild1, // #3 = $src2
/*412822*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412824*/              OPC_CheckPredicate, 9, // Predicate_load
/*412826*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*412828*/              OPC_CheckType, MVT::v4i64,
/*412830*/              OPC_MoveParent,
/*412831*/              OPC_MoveParent,
/*412832*/              OPC_MoveParent,
/*412833*/              OPC_RecordChild2, // #4 = $src0
/*412834*/              OPC_CheckType, MVT::v8f32,
/*412836*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412838*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412841*/              OPC_EmitMergeInputChains1_2,
/*412842*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                        // Dst: (VPERMILPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412856*/            /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST),// ->412931
/*412859*/              OPC_MoveChild0,
/*412860*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412863*/              OPC_RecordMemRef,
/*412864*/              OPC_RecordNode, // #2 = 'ld' chained node
/*412865*/              OPC_CheckFoldableChainNode,
/*412866*/              OPC_RecordChild1, // #3 = $src2
/*412867*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412869*/              OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->412900
/*412872*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*412874*/                OPC_MoveParent,
/*412875*/                OPC_MoveParent,
/*412876*/                OPC_MoveParent,
/*412877*/                OPC_RecordChild2, // #4 = $src0
/*412878*/                OPC_CheckType, MVT::v8f32,
/*412880*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412882*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412885*/                OPC_EmitMergeInputChains1_2,
/*412886*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412900*/              /*SwitchType*/ 28, MVT::i64,// ->412930
/*412902*/                OPC_CheckPredicate, 9, // Predicate_load
/*412904*/                OPC_MoveParent,
/*412905*/                OPC_MoveParent,
/*412906*/                OPC_MoveParent,
/*412907*/                OPC_RecordChild2, // #4 = $src0
/*412908*/                OPC_CheckType, MVT::v8f64,
/*412910*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412912*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412915*/                OPC_EmitMergeInputChains1_2,
/*412916*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412930*/              0, // EndSwitchType
/*412931*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->412969
/*412934*/              OPC_RecordMemRef,
/*412935*/              OPC_RecordNode, // #2 = 'ld' chained node
/*412936*/              OPC_CheckFoldableChainNode,
/*412937*/              OPC_RecordChild1, // #3 = $src2
/*412938*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412940*/              OPC_CheckPredicate, 9, // Predicate_load
/*412942*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*412944*/              OPC_MoveParent,
/*412945*/              OPC_MoveParent,
/*412946*/              OPC_RecordChild2, // #4 = $src0
/*412947*/              OPC_CheckType, MVT::v8f64,
/*412949*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*412951*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412954*/              OPC_EmitMergeInputChains1_2,
/*412955*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VPERMILPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412969*/            0, // EndSwitchOpcode
/*412970*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VPERMILPI),// ->413046
/*412973*/            OPC_MoveChild0,
/*412974*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412977*/            OPC_RecordMemRef,
/*412978*/            OPC_RecordNode, // #1 = 'ld' chained node
/*412979*/            OPC_CheckFoldableChainNode,
/*412980*/            OPC_RecordChild1, // #2 = $src1
/*412981*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412983*/            OPC_CheckPredicate, 9, // Predicate_load
/*412985*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*412987*/            OPC_MoveParent,
/*412988*/            OPC_RecordChild1, // #3 = $src2
/*412989*/            OPC_MoveChild1,
/*412990*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*412993*/            OPC_MoveParent,
/*412994*/            OPC_MoveParent,
/*412995*/            OPC_RecordChild2, // #4 = $src0
/*412996*/            OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->413021
/*412999*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413001*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*413004*/              OPC_EmitMergeInputChains1_1,
/*413005*/              OPC_EmitConvertToTarget, 3,
/*413007*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                        // Dst: (VPERMILPSZ256mik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*413021*/            /*SwitchType*/ 22, MVT::v8f64,// ->413045
/*413023*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413025*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*413028*/              OPC_EmitMergeInputChains1_1,
/*413029*/              OPC_EmitConvertToTarget, 3,
/*413031*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                        // Dst: (VPERMILPDZmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*413045*/            0, // EndSwitchType
/*413046*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(ISD::FMA),// ->413955
/*413050*/            OPC_Scope, 36|128,1/*164*/, /*->413217*/ // 9 children in Scope
/*413053*/              OPC_RecordChild0, // #1 = $src2
/*413054*/              OPC_Scope, 81, /*->413137*/ // 2 children in Scope
/*413056*/                OPC_RecordChild1, // #2 = $src1
/*413057*/                OPC_MoveChild2,
/*413058*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*413061*/                OPC_MoveChild0,
/*413062*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413065*/                OPC_RecordMemRef,
/*413066*/                OPC_RecordNode, // #3 = 'ld' chained node
/*413067*/                OPC_CheckFoldableChainNode,
/*413068*/                OPC_RecordChild1, // #4 = $src3
/*413069*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413071*/                OPC_CheckPredicate, 9, // Predicate_load
/*413073*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->413105
/*413076*/                  OPC_MoveParent,
/*413077*/                  OPC_MoveParent,
/*413078*/                  OPC_MoveParent,
/*413079*/                  OPC_CheckChild2Same, 2,
/*413081*/                  OPC_CheckType, MVT::v8f32,
/*413083*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413085*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413088*/                  OPC_EmitMergeInputChains, 1, 3, 
/*413091*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413105*/                /*SwitchType*/ 29, MVT::f64,// ->413136
/*413107*/                  OPC_MoveParent,
/*413108*/                  OPC_MoveParent,
/*413109*/                  OPC_MoveParent,
/*413110*/                  OPC_CheckChild2Same, 2,
/*413112*/                  OPC_CheckType, MVT::v8f64,
/*413114*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413116*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413119*/                  OPC_EmitMergeInputChains, 1, 3, 
/*413122*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413136*/                0, // EndSwitchType
/*413137*/              /*Scope*/ 78, /*->413216*/
/*413138*/                OPC_MoveChild1,
/*413139*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*413142*/                OPC_MoveChild0,
/*413143*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413146*/                OPC_RecordMemRef,
/*413147*/                OPC_RecordNode, // #2 = 'ld' chained node
/*413148*/                OPC_CheckFoldableChainNode,
/*413149*/                OPC_RecordChild1, // #3 = $src3
/*413150*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413152*/                OPC_CheckPredicate, 9, // Predicate_load
/*413154*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->413185
/*413157*/                  OPC_MoveParent,
/*413158*/                  OPC_MoveParent,
/*413159*/                  OPC_RecordChild2, // #4 = $src1
/*413160*/                  OPC_MoveParent,
/*413161*/                  OPC_CheckChild2Same, 4,
/*413163*/                  OPC_CheckType, MVT::v8f32,
/*413165*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413167*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413170*/                  OPC_EmitMergeInputChains1_2,
/*413171*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413185*/                /*SwitchType*/ 28, MVT::f64,// ->413215
/*413187*/                  OPC_MoveParent,
/*413188*/                  OPC_MoveParent,
/*413189*/                  OPC_RecordChild2, // #4 = $src1
/*413190*/                  OPC_MoveParent,
/*413191*/                  OPC_CheckChild2Same, 4,
/*413193*/                  OPC_CheckType, MVT::v8f64,
/*413195*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413197*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413200*/                  OPC_EmitMergeInputChains1_2,
/*413201*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413215*/                0, // EndSwitchType
/*413216*/              0, /*End of Scope*/
/*413217*/            /*Scope*/ 80, /*->413298*/
/*413218*/              OPC_MoveChild0,
/*413219*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*413222*/              OPC_MoveChild0,
/*413223*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413226*/              OPC_RecordMemRef,
/*413227*/              OPC_RecordNode, // #1 = 'ld' chained node
/*413228*/              OPC_CheckFoldableChainNode,
/*413229*/              OPC_RecordChild1, // #2 = $src3
/*413230*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413232*/              OPC_CheckPredicate, 9, // Predicate_load
/*413234*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->413266
/*413237*/                OPC_MoveParent,
/*413238*/                OPC_MoveParent,
/*413239*/                OPC_RecordChild1, // #3 = $src1
/*413240*/                OPC_RecordChild2, // #4 = $src2
/*413241*/                OPC_MoveParent,
/*413242*/                OPC_CheckChild2Same, 3,
/*413244*/                OPC_CheckType, MVT::v8f32,
/*413246*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413248*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413251*/                OPC_EmitMergeInputChains1_1,
/*413252*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413266*/              /*SwitchType*/ 29, MVT::f64,// ->413297
/*413268*/                OPC_MoveParent,
/*413269*/                OPC_MoveParent,
/*413270*/                OPC_RecordChild1, // #3 = $src1
/*413271*/                OPC_RecordChild2, // #4 = $src2
/*413272*/                OPC_MoveParent,
/*413273*/                OPC_CheckChild2Same, 3,
/*413275*/                OPC_CheckType, MVT::v8f64,
/*413277*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413279*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413282*/                OPC_EmitMergeInputChains1_1,
/*413283*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413297*/              0, // EndSwitchType
/*413298*/            /*Scope*/ 82, /*->413381*/
/*413299*/              OPC_RecordChild0, // #1 = $src1
/*413300*/              OPC_RecordChild1, // #2 = $src2
/*413301*/              OPC_MoveChild2,
/*413302*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*413305*/              OPC_MoveChild0,
/*413306*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413309*/              OPC_RecordMemRef,
/*413310*/              OPC_RecordNode, // #3 = 'ld' chained node
/*413311*/              OPC_CheckFoldableChainNode,
/*413312*/              OPC_RecordChild1, // #4 = $src3
/*413313*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413315*/              OPC_CheckPredicate, 9, // Predicate_load
/*413317*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->413349
/*413320*/                OPC_MoveParent,
/*413321*/                OPC_MoveParent,
/*413322*/                OPC_MoveParent,
/*413323*/                OPC_CheckChild2Same, 1,
/*413325*/                OPC_CheckType, MVT::v8f32,
/*413327*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413329*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413332*/                OPC_EmitMergeInputChains, 1, 3, 
/*413335*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413349*/              /*SwitchType*/ 29, MVT::f64,// ->413380
/*413351*/                OPC_MoveParent,
/*413352*/                OPC_MoveParent,
/*413353*/                OPC_MoveParent,
/*413354*/                OPC_CheckChild2Same, 1,
/*413356*/                OPC_CheckType, MVT::v8f64,
/*413358*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413360*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413363*/                OPC_EmitMergeInputChains, 1, 3, 
/*413366*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413380*/              0, // EndSwitchType
/*413381*/            /*Scope*/ 80, /*->413462*/
/*413382*/              OPC_MoveChild0,
/*413383*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*413386*/              OPC_MoveChild0,
/*413387*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413390*/              OPC_RecordMemRef,
/*413391*/              OPC_RecordNode, // #1 = 'ld' chained node
/*413392*/              OPC_CheckFoldableChainNode,
/*413393*/              OPC_RecordChild1, // #2 = $src3
/*413394*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413396*/              OPC_CheckPredicate, 9, // Predicate_load
/*413398*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->413430
/*413401*/                OPC_MoveParent,
/*413402*/                OPC_MoveParent,
/*413403*/                OPC_RecordChild1, // #3 = $src2
/*413404*/                OPC_RecordChild2, // #4 = $src1
/*413405*/                OPC_MoveParent,
/*413406*/                OPC_CheckChild2Same, 4,
/*413408*/                OPC_CheckType, MVT::v8f32,
/*413410*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413412*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413415*/                OPC_EmitMergeInputChains1_1,
/*413416*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413430*/              /*SwitchType*/ 29, MVT::f64,// ->413461
/*413432*/                OPC_MoveParent,
/*413433*/                OPC_MoveParent,
/*413434*/                OPC_RecordChild1, // #3 = $src2
/*413435*/                OPC_RecordChild2, // #4 = $src1
/*413436*/                OPC_MoveParent,
/*413437*/                OPC_CheckChild2Same, 4,
/*413439*/                OPC_CheckType, MVT::v8f64,
/*413441*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413443*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413446*/                OPC_EmitMergeInputChains1_1,
/*413447*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413461*/              0, // EndSwitchType
/*413462*/            /*Scope*/ 90|128,1/*218*/, /*->413682*/
/*413464*/              OPC_RecordChild0, // #1 = $src1
/*413465*/              OPC_Scope, 78, /*->413545*/ // 3 children in Scope
/*413467*/                OPC_MoveChild1,
/*413468*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*413471*/                OPC_MoveChild0,
/*413472*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413475*/                OPC_RecordMemRef,
/*413476*/                OPC_RecordNode, // #2 = 'ld' chained node
/*413477*/                OPC_CheckFoldableChainNode,
/*413478*/                OPC_RecordChild1, // #3 = $src3
/*413479*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413481*/                OPC_CheckPredicate, 9, // Predicate_load
/*413483*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->413514
/*413486*/                  OPC_MoveParent,
/*413487*/                  OPC_MoveParent,
/*413488*/                  OPC_RecordChild2, // #4 = $src2
/*413489*/                  OPC_MoveParent,
/*413490*/                  OPC_CheckChild2Same, 1,
/*413492*/                  OPC_CheckType, MVT::v8f32,
/*413494*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413496*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413499*/                  OPC_EmitMergeInputChains1_2,
/*413500*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413514*/                /*SwitchType*/ 28, MVT::f64,// ->413544
/*413516*/                  OPC_MoveParent,
/*413517*/                  OPC_MoveParent,
/*413518*/                  OPC_RecordChild2, // #4 = $src2
/*413519*/                  OPC_MoveParent,
/*413520*/                  OPC_CheckChild2Same, 1,
/*413522*/                  OPC_CheckType, MVT::v8f64,
/*413524*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413526*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413529*/                  OPC_EmitMergeInputChains1_2,
/*413530*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413544*/                0, // EndSwitchType
/*413545*/              /*Scope*/ 69, /*->413615*/
/*413546*/                OPC_RecordChild1, // #2 = $src1
/*413547*/                OPC_MoveChild2,
/*413548*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413551*/                OPC_RecordMemRef,
/*413552*/                OPC_RecordNode, // #3 = 'ld' chained node
/*413553*/                OPC_CheckFoldableChainNode,
/*413554*/                OPC_RecordChild1, // #4 = $src3
/*413555*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413557*/                OPC_CheckPredicate, 9, // Predicate_load
/*413559*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*413561*/                OPC_MoveParent,
/*413562*/                OPC_MoveParent,
/*413563*/                OPC_CheckChild2Same, 2,
/*413565*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->413590
/*413568*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413570*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413573*/                  OPC_EmitMergeInputChains, 1, 3, 
/*413576*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413590*/                /*SwitchType*/ 22, MVT::v8f64,// ->413614
/*413592*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413594*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413597*/                  OPC_EmitMergeInputChains, 1, 3, 
/*413600*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413614*/                0, // EndSwitchType
/*413615*/              /*Scope*/ 65, /*->413681*/
/*413616*/                OPC_MoveChild1,
/*413617*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413620*/                OPC_RecordMemRef,
/*413621*/                OPC_RecordNode, // #2 = 'ld' chained node
/*413622*/                OPC_CheckFoldableChainNode,
/*413623*/                OPC_RecordChild1, // #3 = $src3
/*413624*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413626*/                OPC_CheckPredicate, 9, // Predicate_load
/*413628*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*413630*/                OPC_MoveParent,
/*413631*/                OPC_RecordChild2, // #4 = $src1
/*413632*/                OPC_MoveParent,
/*413633*/                OPC_CheckChild2Same, 4,
/*413635*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->413658
/*413638*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413640*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413643*/                  OPC_EmitMergeInputChains1_2,
/*413644*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413658*/                /*SwitchType*/ 20, MVT::v8f64,// ->413680
/*413660*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413662*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413665*/                  OPC_EmitMergeInputChains1_2,
/*413666*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413680*/                0, // EndSwitchType
/*413681*/              0, /*End of Scope*/
/*413682*/            /*Scope*/ 66, /*->413749*/
/*413683*/              OPC_MoveChild0,
/*413684*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413687*/              OPC_RecordMemRef,
/*413688*/              OPC_RecordNode, // #1 = 'ld' chained node
/*413689*/              OPC_CheckFoldableChainNode,
/*413690*/              OPC_RecordChild1, // #2 = $src3
/*413691*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413693*/              OPC_CheckPredicate, 9, // Predicate_load
/*413695*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*413697*/              OPC_MoveParent,
/*413698*/              OPC_RecordChild1, // #3 = $src1
/*413699*/              OPC_RecordChild2, // #4 = $src2
/*413700*/              OPC_MoveParent,
/*413701*/              OPC_CheckChild2Same, 3,
/*413703*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->413726
/*413706*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413708*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413711*/                OPC_EmitMergeInputChains1_1,
/*413712*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413726*/              /*SwitchType*/ 20, MVT::v8f64,// ->413748
/*413728*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413730*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413733*/                OPC_EmitMergeInputChains1_1,
/*413734*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413748*/              0, // EndSwitchType
/*413749*/            /*Scope*/ 70, /*->413820*/
/*413750*/              OPC_RecordChild0, // #1 = $src1
/*413751*/              OPC_RecordChild1, // #2 = $src2
/*413752*/              OPC_MoveChild2,
/*413753*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413756*/              OPC_RecordMemRef,
/*413757*/              OPC_RecordNode, // #3 = 'ld' chained node
/*413758*/              OPC_CheckFoldableChainNode,
/*413759*/              OPC_RecordChild1, // #4 = $src3
/*413760*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413762*/              OPC_CheckPredicate, 9, // Predicate_load
/*413764*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*413766*/              OPC_MoveParent,
/*413767*/              OPC_MoveParent,
/*413768*/              OPC_CheckChild2Same, 1,
/*413770*/              OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->413795
/*413773*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413775*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413778*/                OPC_EmitMergeInputChains, 1, 3, 
/*413781*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413795*/              /*SwitchType*/ 22, MVT::v8f64,// ->413819
/*413797*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413799*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413802*/                OPC_EmitMergeInputChains, 1, 3, 
/*413805*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413819*/              0, // EndSwitchType
/*413820*/            /*Scope*/ 66, /*->413887*/
/*413821*/              OPC_MoveChild0,
/*413822*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413825*/              OPC_RecordMemRef,
/*413826*/              OPC_RecordNode, // #1 = 'ld' chained node
/*413827*/              OPC_CheckFoldableChainNode,
/*413828*/              OPC_RecordChild1, // #2 = $src3
/*413829*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413831*/              OPC_CheckPredicate, 9, // Predicate_load
/*413833*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*413835*/              OPC_MoveParent,
/*413836*/              OPC_RecordChild1, // #3 = $src2
/*413837*/              OPC_RecordChild2, // #4 = $src1
/*413838*/              OPC_MoveParent,
/*413839*/              OPC_CheckChild2Same, 4,
/*413841*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->413864
/*413844*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413846*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413849*/                OPC_EmitMergeInputChains1_1,
/*413850*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413864*/              /*SwitchType*/ 20, MVT::v8f64,// ->413886
/*413866*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413868*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413871*/                OPC_EmitMergeInputChains1_1,
/*413872*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413886*/              0, // EndSwitchType
/*413887*/            /*Scope*/ 66, /*->413954*/
/*413888*/              OPC_RecordChild0, // #1 = $src1
/*413889*/              OPC_MoveChild1,
/*413890*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413893*/              OPC_RecordMemRef,
/*413894*/              OPC_RecordNode, // #2 = 'ld' chained node
/*413895*/              OPC_CheckFoldableChainNode,
/*413896*/              OPC_RecordChild1, // #3 = $src3
/*413897*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413899*/              OPC_CheckPredicate, 9, // Predicate_load
/*413901*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*413903*/              OPC_MoveParent,
/*413904*/              OPC_RecordChild2, // #4 = $src2
/*413905*/              OPC_MoveParent,
/*413906*/              OPC_CheckChild2Same, 1,
/*413908*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->413931
/*413911*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413913*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413916*/                OPC_EmitMergeInputChains1_2,
/*413917*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413931*/              /*SwitchType*/ 20, MVT::v8f64,// ->413953
/*413933*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*413935*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413938*/                OPC_EmitMergeInputChains1_2,
/*413939*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*413953*/              0, // EndSwitchType
/*413954*/            0, /*End of Scope*/
/*413955*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(X86ISD::FMSUB),// ->414864
/*413959*/            OPC_Scope, 36|128,1/*164*/, /*->414126*/ // 9 children in Scope
/*413962*/              OPC_RecordChild0, // #1 = $src2
/*413963*/              OPC_Scope, 81, /*->414046*/ // 2 children in Scope
/*413965*/                OPC_RecordChild1, // #2 = $src1
/*413966*/                OPC_MoveChild2,
/*413967*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*413970*/                OPC_MoveChild0,
/*413971*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*413974*/                OPC_RecordMemRef,
/*413975*/                OPC_RecordNode, // #3 = 'ld' chained node
/*413976*/                OPC_CheckFoldableChainNode,
/*413977*/                OPC_RecordChild1, // #4 = $src3
/*413978*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*413980*/                OPC_CheckPredicate, 9, // Predicate_load
/*413982*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->414014
/*413985*/                  OPC_MoveParent,
/*413986*/                  OPC_MoveParent,
/*413987*/                  OPC_MoveParent,
/*413988*/                  OPC_CheckChild2Same, 2,
/*413990*/                  OPC_CheckType, MVT::v8f32,
/*413992*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413994*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*413997*/                  OPC_EmitMergeInputChains, 1, 3, 
/*414000*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414014*/                /*SwitchType*/ 29, MVT::f64,// ->414045
/*414016*/                  OPC_MoveParent,
/*414017*/                  OPC_MoveParent,
/*414018*/                  OPC_MoveParent,
/*414019*/                  OPC_CheckChild2Same, 2,
/*414021*/                  OPC_CheckType, MVT::v8f64,
/*414023*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414025*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414028*/                  OPC_EmitMergeInputChains, 1, 3, 
/*414031*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414045*/                0, // EndSwitchType
/*414046*/              /*Scope*/ 78, /*->414125*/
/*414047*/                OPC_MoveChild1,
/*414048*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*414051*/                OPC_MoveChild0,
/*414052*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414055*/                OPC_RecordMemRef,
/*414056*/                OPC_RecordNode, // #2 = 'ld' chained node
/*414057*/                OPC_CheckFoldableChainNode,
/*414058*/                OPC_RecordChild1, // #3 = $src3
/*414059*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414061*/                OPC_CheckPredicate, 9, // Predicate_load
/*414063*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->414094
/*414066*/                  OPC_MoveParent,
/*414067*/                  OPC_MoveParent,
/*414068*/                  OPC_RecordChild2, // #4 = $src1
/*414069*/                  OPC_MoveParent,
/*414070*/                  OPC_CheckChild2Same, 4,
/*414072*/                  OPC_CheckType, MVT::v8f32,
/*414074*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414076*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414079*/                  OPC_EmitMergeInputChains1_2,
/*414080*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414094*/                /*SwitchType*/ 28, MVT::f64,// ->414124
/*414096*/                  OPC_MoveParent,
/*414097*/                  OPC_MoveParent,
/*414098*/                  OPC_RecordChild2, // #4 = $src1
/*414099*/                  OPC_MoveParent,
/*414100*/                  OPC_CheckChild2Same, 4,
/*414102*/                  OPC_CheckType, MVT::v8f64,
/*414104*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414106*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414109*/                  OPC_EmitMergeInputChains1_2,
/*414110*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414124*/                0, // EndSwitchType
/*414125*/              0, /*End of Scope*/
/*414126*/            /*Scope*/ 80, /*->414207*/
/*414127*/              OPC_MoveChild0,
/*414128*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*414131*/              OPC_MoveChild0,
/*414132*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414135*/              OPC_RecordMemRef,
/*414136*/              OPC_RecordNode, // #1 = 'ld' chained node
/*414137*/              OPC_CheckFoldableChainNode,
/*414138*/              OPC_RecordChild1, // #2 = $src3
/*414139*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414141*/              OPC_CheckPredicate, 9, // Predicate_load
/*414143*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->414175
/*414146*/                OPC_MoveParent,
/*414147*/                OPC_MoveParent,
/*414148*/                OPC_RecordChild1, // #3 = $src1
/*414149*/                OPC_RecordChild2, // #4 = $src2
/*414150*/                OPC_MoveParent,
/*414151*/                OPC_CheckChild2Same, 3,
/*414153*/                OPC_CheckType, MVT::v8f32,
/*414155*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414157*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414160*/                OPC_EmitMergeInputChains1_1,
/*414161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414175*/              /*SwitchType*/ 29, MVT::f64,// ->414206
/*414177*/                OPC_MoveParent,
/*414178*/                OPC_MoveParent,
/*414179*/                OPC_RecordChild1, // #3 = $src1
/*414180*/                OPC_RecordChild2, // #4 = $src2
/*414181*/                OPC_MoveParent,
/*414182*/                OPC_CheckChild2Same, 3,
/*414184*/                OPC_CheckType, MVT::v8f64,
/*414186*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414188*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414191*/                OPC_EmitMergeInputChains1_1,
/*414192*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414206*/              0, // EndSwitchType
/*414207*/            /*Scope*/ 82, /*->414290*/
/*414208*/              OPC_RecordChild0, // #1 = $src1
/*414209*/              OPC_RecordChild1, // #2 = $src2
/*414210*/              OPC_MoveChild2,
/*414211*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*414214*/              OPC_MoveChild0,
/*414215*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414218*/              OPC_RecordMemRef,
/*414219*/              OPC_RecordNode, // #3 = 'ld' chained node
/*414220*/              OPC_CheckFoldableChainNode,
/*414221*/              OPC_RecordChild1, // #4 = $src3
/*414222*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414224*/              OPC_CheckPredicate, 9, // Predicate_load
/*414226*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->414258
/*414229*/                OPC_MoveParent,
/*414230*/                OPC_MoveParent,
/*414231*/                OPC_MoveParent,
/*414232*/                OPC_CheckChild2Same, 1,
/*414234*/                OPC_CheckType, MVT::v8f32,
/*414236*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414238*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414241*/                OPC_EmitMergeInputChains, 1, 3, 
/*414244*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414258*/              /*SwitchType*/ 29, MVT::f64,// ->414289
/*414260*/                OPC_MoveParent,
/*414261*/                OPC_MoveParent,
/*414262*/                OPC_MoveParent,
/*414263*/                OPC_CheckChild2Same, 1,
/*414265*/                OPC_CheckType, MVT::v8f64,
/*414267*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414269*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414272*/                OPC_EmitMergeInputChains, 1, 3, 
/*414275*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414289*/              0, // EndSwitchType
/*414290*/            /*Scope*/ 80, /*->414371*/
/*414291*/              OPC_MoveChild0,
/*414292*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*414295*/              OPC_MoveChild0,
/*414296*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414299*/              OPC_RecordMemRef,
/*414300*/              OPC_RecordNode, // #1 = 'ld' chained node
/*414301*/              OPC_CheckFoldableChainNode,
/*414302*/              OPC_RecordChild1, // #2 = $src3
/*414303*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414305*/              OPC_CheckPredicate, 9, // Predicate_load
/*414307*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->414339
/*414310*/                OPC_MoveParent,
/*414311*/                OPC_MoveParent,
/*414312*/                OPC_RecordChild1, // #3 = $src2
/*414313*/                OPC_RecordChild2, // #4 = $src1
/*414314*/                OPC_MoveParent,
/*414315*/                OPC_CheckChild2Same, 4,
/*414317*/                OPC_CheckType, MVT::v8f32,
/*414319*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414321*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414324*/                OPC_EmitMergeInputChains1_1,
/*414325*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414339*/              /*SwitchType*/ 29, MVT::f64,// ->414370
/*414341*/                OPC_MoveParent,
/*414342*/                OPC_MoveParent,
/*414343*/                OPC_RecordChild1, // #3 = $src2
/*414344*/                OPC_RecordChild2, // #4 = $src1
/*414345*/                OPC_MoveParent,
/*414346*/                OPC_CheckChild2Same, 4,
/*414348*/                OPC_CheckType, MVT::v8f64,
/*414350*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414352*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414355*/                OPC_EmitMergeInputChains1_1,
/*414356*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414370*/              0, // EndSwitchType
/*414371*/            /*Scope*/ 90|128,1/*218*/, /*->414591*/
/*414373*/              OPC_RecordChild0, // #1 = $src1
/*414374*/              OPC_Scope, 78, /*->414454*/ // 3 children in Scope
/*414376*/                OPC_MoveChild1,
/*414377*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*414380*/                OPC_MoveChild0,
/*414381*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414384*/                OPC_RecordMemRef,
/*414385*/                OPC_RecordNode, // #2 = 'ld' chained node
/*414386*/                OPC_CheckFoldableChainNode,
/*414387*/                OPC_RecordChild1, // #3 = $src3
/*414388*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414390*/                OPC_CheckPredicate, 9, // Predicate_load
/*414392*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->414423
/*414395*/                  OPC_MoveParent,
/*414396*/                  OPC_MoveParent,
/*414397*/                  OPC_RecordChild2, // #4 = $src2
/*414398*/                  OPC_MoveParent,
/*414399*/                  OPC_CheckChild2Same, 1,
/*414401*/                  OPC_CheckType, MVT::v8f32,
/*414403*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414405*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414408*/                  OPC_EmitMergeInputChains1_2,
/*414409*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414423*/                /*SwitchType*/ 28, MVT::f64,// ->414453
/*414425*/                  OPC_MoveParent,
/*414426*/                  OPC_MoveParent,
/*414427*/                  OPC_RecordChild2, // #4 = $src2
/*414428*/                  OPC_MoveParent,
/*414429*/                  OPC_CheckChild2Same, 1,
/*414431*/                  OPC_CheckType, MVT::v8f64,
/*414433*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414435*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414438*/                  OPC_EmitMergeInputChains1_2,
/*414439*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414453*/                0, // EndSwitchType
/*414454*/              /*Scope*/ 69, /*->414524*/
/*414455*/                OPC_RecordChild1, // #2 = $src1
/*414456*/                OPC_MoveChild2,
/*414457*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414460*/                OPC_RecordMemRef,
/*414461*/                OPC_RecordNode, // #3 = 'ld' chained node
/*414462*/                OPC_CheckFoldableChainNode,
/*414463*/                OPC_RecordChild1, // #4 = $src3
/*414464*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414466*/                OPC_CheckPredicate, 9, // Predicate_load
/*414468*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*414470*/                OPC_MoveParent,
/*414471*/                OPC_MoveParent,
/*414472*/                OPC_CheckChild2Same, 2,
/*414474*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->414499
/*414477*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414479*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414482*/                  OPC_EmitMergeInputChains, 1, 3, 
/*414485*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414499*/                /*SwitchType*/ 22, MVT::v8f64,// ->414523
/*414501*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414503*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414506*/                  OPC_EmitMergeInputChains, 1, 3, 
/*414509*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414523*/                0, // EndSwitchType
/*414524*/              /*Scope*/ 65, /*->414590*/
/*414525*/                OPC_MoveChild1,
/*414526*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414529*/                OPC_RecordMemRef,
/*414530*/                OPC_RecordNode, // #2 = 'ld' chained node
/*414531*/                OPC_CheckFoldableChainNode,
/*414532*/                OPC_RecordChild1, // #3 = $src3
/*414533*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414535*/                OPC_CheckPredicate, 9, // Predicate_load
/*414537*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*414539*/                OPC_MoveParent,
/*414540*/                OPC_RecordChild2, // #4 = $src1
/*414541*/                OPC_MoveParent,
/*414542*/                OPC_CheckChild2Same, 4,
/*414544*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->414567
/*414547*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414549*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414552*/                  OPC_EmitMergeInputChains1_2,
/*414553*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414567*/                /*SwitchType*/ 20, MVT::v8f64,// ->414589
/*414569*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414571*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414574*/                  OPC_EmitMergeInputChains1_2,
/*414575*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414589*/                0, // EndSwitchType
/*414590*/              0, /*End of Scope*/
/*414591*/            /*Scope*/ 66, /*->414658*/
/*414592*/              OPC_MoveChild0,
/*414593*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414596*/              OPC_RecordMemRef,
/*414597*/              OPC_RecordNode, // #1 = 'ld' chained node
/*414598*/              OPC_CheckFoldableChainNode,
/*414599*/              OPC_RecordChild1, // #2 = $src3
/*414600*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414602*/              OPC_CheckPredicate, 9, // Predicate_load
/*414604*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*414606*/              OPC_MoveParent,
/*414607*/              OPC_RecordChild1, // #3 = $src1
/*414608*/              OPC_RecordChild2, // #4 = $src2
/*414609*/              OPC_MoveParent,
/*414610*/              OPC_CheckChild2Same, 3,
/*414612*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->414635
/*414615*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414617*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414620*/                OPC_EmitMergeInputChains1_1,
/*414621*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414635*/              /*SwitchType*/ 20, MVT::v8f64,// ->414657
/*414637*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414639*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414642*/                OPC_EmitMergeInputChains1_1,
/*414643*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414657*/              0, // EndSwitchType
/*414658*/            /*Scope*/ 70, /*->414729*/
/*414659*/              OPC_RecordChild0, // #1 = $src1
/*414660*/              OPC_RecordChild1, // #2 = $src2
/*414661*/              OPC_MoveChild2,
/*414662*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414665*/              OPC_RecordMemRef,
/*414666*/              OPC_RecordNode, // #3 = 'ld' chained node
/*414667*/              OPC_CheckFoldableChainNode,
/*414668*/              OPC_RecordChild1, // #4 = $src3
/*414669*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414671*/              OPC_CheckPredicate, 9, // Predicate_load
/*414673*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*414675*/              OPC_MoveParent,
/*414676*/              OPC_MoveParent,
/*414677*/              OPC_CheckChild2Same, 1,
/*414679*/              OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->414704
/*414682*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414684*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414687*/                OPC_EmitMergeInputChains, 1, 3, 
/*414690*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414704*/              /*SwitchType*/ 22, MVT::v8f64,// ->414728
/*414706*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414708*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414711*/                OPC_EmitMergeInputChains, 1, 3, 
/*414714*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414728*/              0, // EndSwitchType
/*414729*/            /*Scope*/ 66, /*->414796*/
/*414730*/              OPC_MoveChild0,
/*414731*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414734*/              OPC_RecordMemRef,
/*414735*/              OPC_RecordNode, // #1 = 'ld' chained node
/*414736*/              OPC_CheckFoldableChainNode,
/*414737*/              OPC_RecordChild1, // #2 = $src3
/*414738*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414740*/              OPC_CheckPredicate, 9, // Predicate_load
/*414742*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*414744*/              OPC_MoveParent,
/*414745*/              OPC_RecordChild1, // #3 = $src2
/*414746*/              OPC_RecordChild2, // #4 = $src1
/*414747*/              OPC_MoveParent,
/*414748*/              OPC_CheckChild2Same, 4,
/*414750*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->414773
/*414753*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414755*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414758*/                OPC_EmitMergeInputChains1_1,
/*414759*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414773*/              /*SwitchType*/ 20, MVT::v8f64,// ->414795
/*414775*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414777*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414780*/                OPC_EmitMergeInputChains1_1,
/*414781*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414795*/              0, // EndSwitchType
/*414796*/            /*Scope*/ 66, /*->414863*/
/*414797*/              OPC_RecordChild0, // #1 = $src1
/*414798*/              OPC_MoveChild1,
/*414799*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414802*/              OPC_RecordMemRef,
/*414803*/              OPC_RecordNode, // #2 = 'ld' chained node
/*414804*/              OPC_CheckFoldableChainNode,
/*414805*/              OPC_RecordChild1, // #3 = $src3
/*414806*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414808*/              OPC_CheckPredicate, 9, // Predicate_load
/*414810*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*414812*/              OPC_MoveParent,
/*414813*/              OPC_RecordChild2, // #4 = $src2
/*414814*/              OPC_MoveParent,
/*414815*/              OPC_CheckChild2Same, 1,
/*414817*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->414840
/*414820*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414822*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414825*/                OPC_EmitMergeInputChains1_2,
/*414826*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414840*/              /*SwitchType*/ 20, MVT::v8f64,// ->414862
/*414842*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414844*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414847*/                OPC_EmitMergeInputChains1_2,
/*414848*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414862*/              0, // EndSwitchType
/*414863*/            0, /*End of Scope*/
/*414864*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(X86ISD::FMADDSUB),// ->415773
/*414868*/            OPC_Scope, 36|128,1/*164*/, /*->415035*/ // 9 children in Scope
/*414871*/              OPC_RecordChild0, // #1 = $src2
/*414872*/              OPC_Scope, 81, /*->414955*/ // 2 children in Scope
/*414874*/                OPC_RecordChild1, // #2 = $src1
/*414875*/                OPC_MoveChild2,
/*414876*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*414879*/                OPC_MoveChild0,
/*414880*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414883*/                OPC_RecordMemRef,
/*414884*/                OPC_RecordNode, // #3 = 'ld' chained node
/*414885*/                OPC_CheckFoldableChainNode,
/*414886*/                OPC_RecordChild1, // #4 = $src3
/*414887*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414889*/                OPC_CheckPredicate, 9, // Predicate_load
/*414891*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->414923
/*414894*/                  OPC_MoveParent,
/*414895*/                  OPC_MoveParent,
/*414896*/                  OPC_MoveParent,
/*414897*/                  OPC_CheckChild2Same, 2,
/*414899*/                  OPC_CheckType, MVT::v8f32,
/*414901*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414903*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414906*/                  OPC_EmitMergeInputChains, 1, 3, 
/*414909*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414923*/                /*SwitchType*/ 29, MVT::f64,// ->414954
/*414925*/                  OPC_MoveParent,
/*414926*/                  OPC_MoveParent,
/*414927*/                  OPC_MoveParent,
/*414928*/                  OPC_CheckChild2Same, 2,
/*414930*/                  OPC_CheckType, MVT::v8f64,
/*414932*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*414934*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414937*/                  OPC_EmitMergeInputChains, 1, 3, 
/*414940*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*414954*/                0, // EndSwitchType
/*414955*/              /*Scope*/ 78, /*->415034*/
/*414956*/                OPC_MoveChild1,
/*414957*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*414960*/                OPC_MoveChild0,
/*414961*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*414964*/                OPC_RecordMemRef,
/*414965*/                OPC_RecordNode, // #2 = 'ld' chained node
/*414966*/                OPC_CheckFoldableChainNode,
/*414967*/                OPC_RecordChild1, // #3 = $src3
/*414968*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*414970*/                OPC_CheckPredicate, 9, // Predicate_load
/*414972*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->415003
/*414975*/                  OPC_MoveParent,
/*414976*/                  OPC_MoveParent,
/*414977*/                  OPC_RecordChild2, // #4 = $src1
/*414978*/                  OPC_MoveParent,
/*414979*/                  OPC_CheckChild2Same, 4,
/*414981*/                  OPC_CheckType, MVT::v8f32,
/*414983*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414985*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*414988*/                  OPC_EmitMergeInputChains1_2,
/*414989*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415003*/                /*SwitchType*/ 28, MVT::f64,// ->415033
/*415005*/                  OPC_MoveParent,
/*415006*/                  OPC_MoveParent,
/*415007*/                  OPC_RecordChild2, // #4 = $src1
/*415008*/                  OPC_MoveParent,
/*415009*/                  OPC_CheckChild2Same, 4,
/*415011*/                  OPC_CheckType, MVT::v8f64,
/*415013*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415015*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415018*/                  OPC_EmitMergeInputChains1_2,
/*415019*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415033*/                0, // EndSwitchType
/*415034*/              0, /*End of Scope*/
/*415035*/            /*Scope*/ 80, /*->415116*/
/*415036*/              OPC_MoveChild0,
/*415037*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*415040*/              OPC_MoveChild0,
/*415041*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415044*/              OPC_RecordMemRef,
/*415045*/              OPC_RecordNode, // #1 = 'ld' chained node
/*415046*/              OPC_CheckFoldableChainNode,
/*415047*/              OPC_RecordChild1, // #2 = $src3
/*415048*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415050*/              OPC_CheckPredicate, 9, // Predicate_load
/*415052*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->415084
/*415055*/                OPC_MoveParent,
/*415056*/                OPC_MoveParent,
/*415057*/                OPC_RecordChild1, // #3 = $src1
/*415058*/                OPC_RecordChild2, // #4 = $src2
/*415059*/                OPC_MoveParent,
/*415060*/                OPC_CheckChild2Same, 3,
/*415062*/                OPC_CheckType, MVT::v8f32,
/*415064*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415066*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415069*/                OPC_EmitMergeInputChains1_1,
/*415070*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415084*/              /*SwitchType*/ 29, MVT::f64,// ->415115
/*415086*/                OPC_MoveParent,
/*415087*/                OPC_MoveParent,
/*415088*/                OPC_RecordChild1, // #3 = $src1
/*415089*/                OPC_RecordChild2, // #4 = $src2
/*415090*/                OPC_MoveParent,
/*415091*/                OPC_CheckChild2Same, 3,
/*415093*/                OPC_CheckType, MVT::v8f64,
/*415095*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415097*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415100*/                OPC_EmitMergeInputChains1_1,
/*415101*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415115*/              0, // EndSwitchType
/*415116*/            /*Scope*/ 82, /*->415199*/
/*415117*/              OPC_RecordChild0, // #1 = $src1
/*415118*/              OPC_RecordChild1, // #2 = $src2
/*415119*/              OPC_MoveChild2,
/*415120*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*415123*/              OPC_MoveChild0,
/*415124*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415127*/              OPC_RecordMemRef,
/*415128*/              OPC_RecordNode, // #3 = 'ld' chained node
/*415129*/              OPC_CheckFoldableChainNode,
/*415130*/              OPC_RecordChild1, // #4 = $src3
/*415131*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415133*/              OPC_CheckPredicate, 9, // Predicate_load
/*415135*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->415167
/*415138*/                OPC_MoveParent,
/*415139*/                OPC_MoveParent,
/*415140*/                OPC_MoveParent,
/*415141*/                OPC_CheckChild2Same, 1,
/*415143*/                OPC_CheckType, MVT::v8f32,
/*415145*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415147*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415150*/                OPC_EmitMergeInputChains, 1, 3, 
/*415153*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415167*/              /*SwitchType*/ 29, MVT::f64,// ->415198
/*415169*/                OPC_MoveParent,
/*415170*/                OPC_MoveParent,
/*415171*/                OPC_MoveParent,
/*415172*/                OPC_CheckChild2Same, 1,
/*415174*/                OPC_CheckType, MVT::v8f64,
/*415176*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415178*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415181*/                OPC_EmitMergeInputChains, 1, 3, 
/*415184*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415198*/              0, // EndSwitchType
/*415199*/            /*Scope*/ 80, /*->415280*/
/*415200*/              OPC_MoveChild0,
/*415201*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*415204*/              OPC_MoveChild0,
/*415205*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415208*/              OPC_RecordMemRef,
/*415209*/              OPC_RecordNode, // #1 = 'ld' chained node
/*415210*/              OPC_CheckFoldableChainNode,
/*415211*/              OPC_RecordChild1, // #2 = $src3
/*415212*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415214*/              OPC_CheckPredicate, 9, // Predicate_load
/*415216*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->415248
/*415219*/                OPC_MoveParent,
/*415220*/                OPC_MoveParent,
/*415221*/                OPC_RecordChild1, // #3 = $src2
/*415222*/                OPC_RecordChild2, // #4 = $src1
/*415223*/                OPC_MoveParent,
/*415224*/                OPC_CheckChild2Same, 4,
/*415226*/                OPC_CheckType, MVT::v8f32,
/*415228*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415230*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415233*/                OPC_EmitMergeInputChains1_1,
/*415234*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415248*/              /*SwitchType*/ 29, MVT::f64,// ->415279
/*415250*/                OPC_MoveParent,
/*415251*/                OPC_MoveParent,
/*415252*/                OPC_RecordChild1, // #3 = $src2
/*415253*/                OPC_RecordChild2, // #4 = $src1
/*415254*/                OPC_MoveParent,
/*415255*/                OPC_CheckChild2Same, 4,
/*415257*/                OPC_CheckType, MVT::v8f64,
/*415259*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415261*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415264*/                OPC_EmitMergeInputChains1_1,
/*415265*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415279*/              0, // EndSwitchType
/*415280*/            /*Scope*/ 90|128,1/*218*/, /*->415500*/
/*415282*/              OPC_RecordChild0, // #1 = $src1
/*415283*/              OPC_Scope, 78, /*->415363*/ // 3 children in Scope
/*415285*/                OPC_MoveChild1,
/*415286*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*415289*/                OPC_MoveChild0,
/*415290*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415293*/                OPC_RecordMemRef,
/*415294*/                OPC_RecordNode, // #2 = 'ld' chained node
/*415295*/                OPC_CheckFoldableChainNode,
/*415296*/                OPC_RecordChild1, // #3 = $src3
/*415297*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415299*/                OPC_CheckPredicate, 9, // Predicate_load
/*415301*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->415332
/*415304*/                  OPC_MoveParent,
/*415305*/                  OPC_MoveParent,
/*415306*/                  OPC_RecordChild2, // #4 = $src2
/*415307*/                  OPC_MoveParent,
/*415308*/                  OPC_CheckChild2Same, 1,
/*415310*/                  OPC_CheckType, MVT::v8f32,
/*415312*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415314*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415317*/                  OPC_EmitMergeInputChains1_2,
/*415318*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415332*/                /*SwitchType*/ 28, MVT::f64,// ->415362
/*415334*/                  OPC_MoveParent,
/*415335*/                  OPC_MoveParent,
/*415336*/                  OPC_RecordChild2, // #4 = $src2
/*415337*/                  OPC_MoveParent,
/*415338*/                  OPC_CheckChild2Same, 1,
/*415340*/                  OPC_CheckType, MVT::v8f64,
/*415342*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415344*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415347*/                  OPC_EmitMergeInputChains1_2,
/*415348*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMADDSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415362*/                0, // EndSwitchType
/*415363*/              /*Scope*/ 69, /*->415433*/
/*415364*/                OPC_RecordChild1, // #2 = $src1
/*415365*/                OPC_MoveChild2,
/*415366*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415369*/                OPC_RecordMemRef,
/*415370*/                OPC_RecordNode, // #3 = 'ld' chained node
/*415371*/                OPC_CheckFoldableChainNode,
/*415372*/                OPC_RecordChild1, // #4 = $src3
/*415373*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415375*/                OPC_CheckPredicate, 9, // Predicate_load
/*415377*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*415379*/                OPC_MoveParent,
/*415380*/                OPC_MoveParent,
/*415381*/                OPC_CheckChild2Same, 2,
/*415383*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->415408
/*415386*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415388*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415391*/                  OPC_EmitMergeInputChains, 1, 3, 
/*415394*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415408*/                /*SwitchType*/ 22, MVT::v8f64,// ->415432
/*415410*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415412*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415415*/                  OPC_EmitMergeInputChains, 1, 3, 
/*415418*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415432*/                0, // EndSwitchType
/*415433*/              /*Scope*/ 65, /*->415499*/
/*415434*/                OPC_MoveChild1,
/*415435*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415438*/                OPC_RecordMemRef,
/*415439*/                OPC_RecordNode, // #2 = 'ld' chained node
/*415440*/                OPC_CheckFoldableChainNode,
/*415441*/                OPC_RecordChild1, // #3 = $src3
/*415442*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415444*/                OPC_CheckPredicate, 9, // Predicate_load
/*415446*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*415448*/                OPC_MoveParent,
/*415449*/                OPC_RecordChild2, // #4 = $src1
/*415450*/                OPC_MoveParent,
/*415451*/                OPC_CheckChild2Same, 4,
/*415453*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->415476
/*415456*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415458*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415461*/                  OPC_EmitMergeInputChains1_2,
/*415462*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415476*/                /*SwitchType*/ 20, MVT::v8f64,// ->415498
/*415478*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415480*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415483*/                  OPC_EmitMergeInputChains1_2,
/*415484*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415498*/                0, // EndSwitchType
/*415499*/              0, /*End of Scope*/
/*415500*/            /*Scope*/ 66, /*->415567*/
/*415501*/              OPC_MoveChild0,
/*415502*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415505*/              OPC_RecordMemRef,
/*415506*/              OPC_RecordNode, // #1 = 'ld' chained node
/*415507*/              OPC_CheckFoldableChainNode,
/*415508*/              OPC_RecordChild1, // #2 = $src3
/*415509*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415511*/              OPC_CheckPredicate, 9, // Predicate_load
/*415513*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*415515*/              OPC_MoveParent,
/*415516*/              OPC_RecordChild1, // #3 = $src1
/*415517*/              OPC_RecordChild2, // #4 = $src2
/*415518*/              OPC_MoveParent,
/*415519*/              OPC_CheckChild2Same, 3,
/*415521*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->415544
/*415524*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415526*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415529*/                OPC_EmitMergeInputChains1_1,
/*415530*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415544*/              /*SwitchType*/ 20, MVT::v8f64,// ->415566
/*415546*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415548*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415551*/                OPC_EmitMergeInputChains1_1,
/*415552*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415566*/              0, // EndSwitchType
/*415567*/            /*Scope*/ 70, /*->415638*/
/*415568*/              OPC_RecordChild0, // #1 = $src1
/*415569*/              OPC_RecordChild1, // #2 = $src2
/*415570*/              OPC_MoveChild2,
/*415571*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415574*/              OPC_RecordMemRef,
/*415575*/              OPC_RecordNode, // #3 = 'ld' chained node
/*415576*/              OPC_CheckFoldableChainNode,
/*415577*/              OPC_RecordChild1, // #4 = $src3
/*415578*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415580*/              OPC_CheckPredicate, 9, // Predicate_load
/*415582*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*415584*/              OPC_MoveParent,
/*415585*/              OPC_MoveParent,
/*415586*/              OPC_CheckChild2Same, 1,
/*415588*/              OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->415613
/*415591*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415593*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415596*/                OPC_EmitMergeInputChains, 1, 3, 
/*415599*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415613*/              /*SwitchType*/ 22, MVT::v8f64,// ->415637
/*415615*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415617*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415620*/                OPC_EmitMergeInputChains, 1, 3, 
/*415623*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415637*/              0, // EndSwitchType
/*415638*/            /*Scope*/ 66, /*->415705*/
/*415639*/              OPC_MoveChild0,
/*415640*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415643*/              OPC_RecordMemRef,
/*415644*/              OPC_RecordNode, // #1 = 'ld' chained node
/*415645*/              OPC_CheckFoldableChainNode,
/*415646*/              OPC_RecordChild1, // #2 = $src3
/*415647*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415649*/              OPC_CheckPredicate, 9, // Predicate_load
/*415651*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*415653*/              OPC_MoveParent,
/*415654*/              OPC_RecordChild1, // #3 = $src2
/*415655*/              OPC_RecordChild2, // #4 = $src1
/*415656*/              OPC_MoveParent,
/*415657*/              OPC_CheckChild2Same, 4,
/*415659*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->415682
/*415662*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415664*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415667*/                OPC_EmitMergeInputChains1_1,
/*415668*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415682*/              /*SwitchType*/ 20, MVT::v8f64,// ->415704
/*415684*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415686*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415689*/                OPC_EmitMergeInputChains1_1,
/*415690*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415704*/              0, // EndSwitchType
/*415705*/            /*Scope*/ 66, /*->415772*/
/*415706*/              OPC_RecordChild0, // #1 = $src1
/*415707*/              OPC_MoveChild1,
/*415708*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415711*/              OPC_RecordMemRef,
/*415712*/              OPC_RecordNode, // #2 = 'ld' chained node
/*415713*/              OPC_CheckFoldableChainNode,
/*415714*/              OPC_RecordChild1, // #3 = $src3
/*415715*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415717*/              OPC_CheckPredicate, 9, // Predicate_load
/*415719*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*415721*/              OPC_MoveParent,
/*415722*/              OPC_RecordChild2, // #4 = $src2
/*415723*/              OPC_MoveParent,
/*415724*/              OPC_CheckChild2Same, 1,
/*415726*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->415749
/*415729*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415731*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415734*/                OPC_EmitMergeInputChains1_2,
/*415735*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415749*/              /*SwitchType*/ 20, MVT::v8f64,// ->415771
/*415751*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415753*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415756*/                OPC_EmitMergeInputChains1_2,
/*415757*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415771*/              0, // EndSwitchType
/*415772*/            0, /*End of Scope*/
/*415773*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(X86ISD::FMSUBADD),// ->416682
/*415777*/            OPC_Scope, 36|128,1/*164*/, /*->415944*/ // 9 children in Scope
/*415780*/              OPC_RecordChild0, // #1 = $src2
/*415781*/              OPC_Scope, 81, /*->415864*/ // 2 children in Scope
/*415783*/                OPC_RecordChild1, // #2 = $src1
/*415784*/                OPC_MoveChild2,
/*415785*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*415788*/                OPC_MoveChild0,
/*415789*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415792*/                OPC_RecordMemRef,
/*415793*/                OPC_RecordNode, // #3 = 'ld' chained node
/*415794*/                OPC_CheckFoldableChainNode,
/*415795*/                OPC_RecordChild1, // #4 = $src3
/*415796*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415798*/                OPC_CheckPredicate, 9, // Predicate_load
/*415800*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->415832
/*415803*/                  OPC_MoveParent,
/*415804*/                  OPC_MoveParent,
/*415805*/                  OPC_MoveParent,
/*415806*/                  OPC_CheckChild2Same, 2,
/*415808*/                  OPC_CheckType, MVT::v8f32,
/*415810*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415812*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415815*/                  OPC_EmitMergeInputChains, 1, 3, 
/*415818*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415832*/                /*SwitchType*/ 29, MVT::f64,// ->415863
/*415834*/                  OPC_MoveParent,
/*415835*/                  OPC_MoveParent,
/*415836*/                  OPC_MoveParent,
/*415837*/                  OPC_CheckChild2Same, 2,
/*415839*/                  OPC_CheckType, MVT::v8f64,
/*415841*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415843*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415846*/                  OPC_EmitMergeInputChains, 1, 3, 
/*415849*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415863*/                0, // EndSwitchType
/*415864*/              /*Scope*/ 78, /*->415943*/
/*415865*/                OPC_MoveChild1,
/*415866*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*415869*/                OPC_MoveChild0,
/*415870*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415873*/                OPC_RecordMemRef,
/*415874*/                OPC_RecordNode, // #2 = 'ld' chained node
/*415875*/                OPC_CheckFoldableChainNode,
/*415876*/                OPC_RecordChild1, // #3 = $src3
/*415877*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415879*/                OPC_CheckPredicate, 9, // Predicate_load
/*415881*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->415912
/*415884*/                  OPC_MoveParent,
/*415885*/                  OPC_MoveParent,
/*415886*/                  OPC_RecordChild2, // #4 = $src1
/*415887*/                  OPC_MoveParent,
/*415888*/                  OPC_CheckChild2Same, 4,
/*415890*/                  OPC_CheckType, MVT::v8f32,
/*415892*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415894*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415897*/                  OPC_EmitMergeInputChains1_2,
/*415898*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415912*/                /*SwitchType*/ 28, MVT::f64,// ->415942
/*415914*/                  OPC_MoveParent,
/*415915*/                  OPC_MoveParent,
/*415916*/                  OPC_RecordChild2, // #4 = $src1
/*415917*/                  OPC_MoveParent,
/*415918*/                  OPC_CheckChild2Same, 4,
/*415920*/                  OPC_CheckType, MVT::v8f64,
/*415922*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*415924*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415927*/                  OPC_EmitMergeInputChains1_2,
/*415928*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415942*/                0, // EndSwitchType
/*415943*/              0, /*End of Scope*/
/*415944*/            /*Scope*/ 80, /*->416025*/
/*415945*/              OPC_MoveChild0,
/*415946*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*415949*/              OPC_MoveChild0,
/*415950*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*415953*/              OPC_RecordMemRef,
/*415954*/              OPC_RecordNode, // #1 = 'ld' chained node
/*415955*/              OPC_CheckFoldableChainNode,
/*415956*/              OPC_RecordChild1, // #2 = $src3
/*415957*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*415959*/              OPC_CheckPredicate, 9, // Predicate_load
/*415961*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->415993
/*415964*/                OPC_MoveParent,
/*415965*/                OPC_MoveParent,
/*415966*/                OPC_RecordChild1, // #3 = $src1
/*415967*/                OPC_RecordChild2, // #4 = $src2
/*415968*/                OPC_MoveParent,
/*415969*/                OPC_CheckChild2Same, 3,
/*415971*/                OPC_CheckType, MVT::v8f32,
/*415973*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415975*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*415978*/                OPC_EmitMergeInputChains1_1,
/*415979*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*415993*/              /*SwitchType*/ 29, MVT::f64,// ->416024
/*415995*/                OPC_MoveParent,
/*415996*/                OPC_MoveParent,
/*415997*/                OPC_RecordChild1, // #3 = $src1
/*415998*/                OPC_RecordChild2, // #4 = $src2
/*415999*/                OPC_MoveParent,
/*416000*/                OPC_CheckChild2Same, 3,
/*416002*/                OPC_CheckType, MVT::v8f64,
/*416004*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416006*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416009*/                OPC_EmitMergeInputChains1_1,
/*416010*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416024*/              0, // EndSwitchType
/*416025*/            /*Scope*/ 82, /*->416108*/
/*416026*/              OPC_RecordChild0, // #1 = $src1
/*416027*/              OPC_RecordChild1, // #2 = $src2
/*416028*/              OPC_MoveChild2,
/*416029*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*416032*/              OPC_MoveChild0,
/*416033*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416036*/              OPC_RecordMemRef,
/*416037*/              OPC_RecordNode, // #3 = 'ld' chained node
/*416038*/              OPC_CheckFoldableChainNode,
/*416039*/              OPC_RecordChild1, // #4 = $src3
/*416040*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416042*/              OPC_CheckPredicate, 9, // Predicate_load
/*416044*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->416076
/*416047*/                OPC_MoveParent,
/*416048*/                OPC_MoveParent,
/*416049*/                OPC_MoveParent,
/*416050*/                OPC_CheckChild2Same, 1,
/*416052*/                OPC_CheckType, MVT::v8f32,
/*416054*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416056*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416059*/                OPC_EmitMergeInputChains, 1, 3, 
/*416062*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416076*/              /*SwitchType*/ 29, MVT::f64,// ->416107
/*416078*/                OPC_MoveParent,
/*416079*/                OPC_MoveParent,
/*416080*/                OPC_MoveParent,
/*416081*/                OPC_CheckChild2Same, 1,
/*416083*/                OPC_CheckType, MVT::v8f64,
/*416085*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416087*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416090*/                OPC_EmitMergeInputChains, 1, 3, 
/*416093*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416107*/              0, // EndSwitchType
/*416108*/            /*Scope*/ 80, /*->416189*/
/*416109*/              OPC_MoveChild0,
/*416110*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*416113*/              OPC_MoveChild0,
/*416114*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416117*/              OPC_RecordMemRef,
/*416118*/              OPC_RecordNode, // #1 = 'ld' chained node
/*416119*/              OPC_CheckFoldableChainNode,
/*416120*/              OPC_RecordChild1, // #2 = $src3
/*416121*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416123*/              OPC_CheckPredicate, 9, // Predicate_load
/*416125*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->416157
/*416128*/                OPC_MoveParent,
/*416129*/                OPC_MoveParent,
/*416130*/                OPC_RecordChild1, // #3 = $src2
/*416131*/                OPC_RecordChild2, // #4 = $src1
/*416132*/                OPC_MoveParent,
/*416133*/                OPC_CheckChild2Same, 4,
/*416135*/                OPC_CheckType, MVT::v8f32,
/*416137*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416139*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416142*/                OPC_EmitMergeInputChains1_1,
/*416143*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416157*/              /*SwitchType*/ 29, MVT::f64,// ->416188
/*416159*/                OPC_MoveParent,
/*416160*/                OPC_MoveParent,
/*416161*/                OPC_RecordChild1, // #3 = $src2
/*416162*/                OPC_RecordChild2, // #4 = $src1
/*416163*/                OPC_MoveParent,
/*416164*/                OPC_CheckChild2Same, 4,
/*416166*/                OPC_CheckType, MVT::v8f64,
/*416168*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416170*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416173*/                OPC_EmitMergeInputChains1_1,
/*416174*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416188*/              0, // EndSwitchType
/*416189*/            /*Scope*/ 90|128,1/*218*/, /*->416409*/
/*416191*/              OPC_RecordChild0, // #1 = $src1
/*416192*/              OPC_Scope, 78, /*->416272*/ // 3 children in Scope
/*416194*/                OPC_MoveChild1,
/*416195*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*416198*/                OPC_MoveChild0,
/*416199*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416202*/                OPC_RecordMemRef,
/*416203*/                OPC_RecordNode, // #2 = 'ld' chained node
/*416204*/                OPC_CheckFoldableChainNode,
/*416205*/                OPC_RecordChild1, // #3 = $src3
/*416206*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416208*/                OPC_CheckPredicate, 9, // Predicate_load
/*416210*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->416241
/*416213*/                  OPC_MoveParent,
/*416214*/                  OPC_MoveParent,
/*416215*/                  OPC_RecordChild2, // #4 = $src2
/*416216*/                  OPC_MoveParent,
/*416217*/                  OPC_CheckChild2Same, 1,
/*416219*/                  OPC_CheckType, MVT::v8f32,
/*416221*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416223*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416226*/                  OPC_EmitMergeInputChains1_2,
/*416227*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416241*/                /*SwitchType*/ 28, MVT::f64,// ->416271
/*416243*/                  OPC_MoveParent,
/*416244*/                  OPC_MoveParent,
/*416245*/                  OPC_RecordChild2, // #4 = $src2
/*416246*/                  OPC_MoveParent,
/*416247*/                  OPC_CheckChild2Same, 1,
/*416249*/                  OPC_CheckType, MVT::v8f64,
/*416251*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416253*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416256*/                  OPC_EmitMergeInputChains1_2,
/*416257*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFMSUBADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416271*/                0, // EndSwitchType
/*416272*/              /*Scope*/ 69, /*->416342*/
/*416273*/                OPC_RecordChild1, // #2 = $src1
/*416274*/                OPC_MoveChild2,
/*416275*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416278*/                OPC_RecordMemRef,
/*416279*/                OPC_RecordNode, // #3 = 'ld' chained node
/*416280*/                OPC_CheckFoldableChainNode,
/*416281*/                OPC_RecordChild1, // #4 = $src3
/*416282*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416284*/                OPC_CheckPredicate, 9, // Predicate_load
/*416286*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*416288*/                OPC_MoveParent,
/*416289*/                OPC_MoveParent,
/*416290*/                OPC_CheckChild2Same, 2,
/*416292*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->416317
/*416295*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416297*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416300*/                  OPC_EmitMergeInputChains, 1, 3, 
/*416303*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416317*/                /*SwitchType*/ 22, MVT::v8f64,// ->416341
/*416319*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416321*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416324*/                  OPC_EmitMergeInputChains, 1, 3, 
/*416327*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416341*/                0, // EndSwitchType
/*416342*/              /*Scope*/ 65, /*->416408*/
/*416343*/                OPC_MoveChild1,
/*416344*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416347*/                OPC_RecordMemRef,
/*416348*/                OPC_RecordNode, // #2 = 'ld' chained node
/*416349*/                OPC_CheckFoldableChainNode,
/*416350*/                OPC_RecordChild1, // #3 = $src3
/*416351*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416353*/                OPC_CheckPredicate, 9, // Predicate_load
/*416355*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*416357*/                OPC_MoveParent,
/*416358*/                OPC_RecordChild2, // #4 = $src1
/*416359*/                OPC_MoveParent,
/*416360*/                OPC_CheckChild2Same, 4,
/*416362*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->416385
/*416365*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416367*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416370*/                  OPC_EmitMergeInputChains1_2,
/*416371*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416385*/                /*SwitchType*/ 20, MVT::v8f64,// ->416407
/*416387*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416389*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416392*/                  OPC_EmitMergeInputChains1_2,
/*416393*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416407*/                0, // EndSwitchType
/*416408*/              0, /*End of Scope*/
/*416409*/            /*Scope*/ 66, /*->416476*/
/*416410*/              OPC_MoveChild0,
/*416411*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416414*/              OPC_RecordMemRef,
/*416415*/              OPC_RecordNode, // #1 = 'ld' chained node
/*416416*/              OPC_CheckFoldableChainNode,
/*416417*/              OPC_RecordChild1, // #2 = $src3
/*416418*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416420*/              OPC_CheckPredicate, 9, // Predicate_load
/*416422*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*416424*/              OPC_MoveParent,
/*416425*/              OPC_RecordChild1, // #3 = $src1
/*416426*/              OPC_RecordChild2, // #4 = $src2
/*416427*/              OPC_MoveParent,
/*416428*/              OPC_CheckChild2Same, 3,
/*416430*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->416453
/*416433*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416435*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416438*/                OPC_EmitMergeInputChains1_1,
/*416439*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416453*/              /*SwitchType*/ 20, MVT::v8f64,// ->416475
/*416455*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416457*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416460*/                OPC_EmitMergeInputChains1_1,
/*416461*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416475*/              0, // EndSwitchType
/*416476*/            /*Scope*/ 70, /*->416547*/
/*416477*/              OPC_RecordChild0, // #1 = $src1
/*416478*/              OPC_RecordChild1, // #2 = $src2
/*416479*/              OPC_MoveChild2,
/*416480*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416483*/              OPC_RecordMemRef,
/*416484*/              OPC_RecordNode, // #3 = 'ld' chained node
/*416485*/              OPC_CheckFoldableChainNode,
/*416486*/              OPC_RecordChild1, // #4 = $src3
/*416487*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416489*/              OPC_CheckPredicate, 9, // Predicate_load
/*416491*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*416493*/              OPC_MoveParent,
/*416494*/              OPC_MoveParent,
/*416495*/              OPC_CheckChild2Same, 1,
/*416497*/              OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->416522
/*416500*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416502*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416505*/                OPC_EmitMergeInputChains, 1, 3, 
/*416508*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416522*/              /*SwitchType*/ 22, MVT::v8f64,// ->416546
/*416524*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416526*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416529*/                OPC_EmitMergeInputChains, 1, 3, 
/*416532*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416546*/              0, // EndSwitchType
/*416547*/            /*Scope*/ 66, /*->416614*/
/*416548*/              OPC_MoveChild0,
/*416549*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416552*/              OPC_RecordMemRef,
/*416553*/              OPC_RecordNode, // #1 = 'ld' chained node
/*416554*/              OPC_CheckFoldableChainNode,
/*416555*/              OPC_RecordChild1, // #2 = $src3
/*416556*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416558*/              OPC_CheckPredicate, 9, // Predicate_load
/*416560*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*416562*/              OPC_MoveParent,
/*416563*/              OPC_RecordChild1, // #3 = $src2
/*416564*/              OPC_RecordChild2, // #4 = $src1
/*416565*/              OPC_MoveParent,
/*416566*/              OPC_CheckChild2Same, 4,
/*416568*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->416591
/*416571*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416573*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416576*/                OPC_EmitMergeInputChains1_1,
/*416577*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416591*/              /*SwitchType*/ 20, MVT::v8f64,// ->416613
/*416593*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416595*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416598*/                OPC_EmitMergeInputChains1_1,
/*416599*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416613*/              0, // EndSwitchType
/*416614*/            /*Scope*/ 66, /*->416681*/
/*416615*/              OPC_RecordChild0, // #1 = $src1
/*416616*/              OPC_MoveChild1,
/*416617*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416620*/              OPC_RecordMemRef,
/*416621*/              OPC_RecordNode, // #2 = 'ld' chained node
/*416622*/              OPC_CheckFoldableChainNode,
/*416623*/              OPC_RecordChild1, // #3 = $src3
/*416624*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416626*/              OPC_CheckPredicate, 9, // Predicate_load
/*416628*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*416630*/              OPC_MoveParent,
/*416631*/              OPC_RecordChild2, // #4 = $src2
/*416632*/              OPC_MoveParent,
/*416633*/              OPC_CheckChild2Same, 1,
/*416635*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->416658
/*416638*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416640*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416643*/                OPC_EmitMergeInputChains1_2,
/*416644*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416658*/              /*SwitchType*/ 20, MVT::v8f64,// ->416680
/*416660*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416662*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416665*/                OPC_EmitMergeInputChains1_2,
/*416666*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416680*/              0, // EndSwitchType
/*416681*/            0, /*End of Scope*/
/*416682*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(X86ISD::FNMADD),// ->417591
/*416686*/            OPC_Scope, 36|128,1/*164*/, /*->416853*/ // 9 children in Scope
/*416689*/              OPC_RecordChild0, // #1 = $src2
/*416690*/              OPC_Scope, 81, /*->416773*/ // 2 children in Scope
/*416692*/                OPC_RecordChild1, // #2 = $src1
/*416693*/                OPC_MoveChild2,
/*416694*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*416697*/                OPC_MoveChild0,
/*416698*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416701*/                OPC_RecordMemRef,
/*416702*/                OPC_RecordNode, // #3 = 'ld' chained node
/*416703*/                OPC_CheckFoldableChainNode,
/*416704*/                OPC_RecordChild1, // #4 = $src3
/*416705*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416707*/                OPC_CheckPredicate, 9, // Predicate_load
/*416709*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->416741
/*416712*/                  OPC_MoveParent,
/*416713*/                  OPC_MoveParent,
/*416714*/                  OPC_MoveParent,
/*416715*/                  OPC_CheckChild2Same, 2,
/*416717*/                  OPC_CheckType, MVT::v8f32,
/*416719*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416721*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416724*/                  OPC_EmitMergeInputChains, 1, 3, 
/*416727*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416741*/                /*SwitchType*/ 29, MVT::f64,// ->416772
/*416743*/                  OPC_MoveParent,
/*416744*/                  OPC_MoveParent,
/*416745*/                  OPC_MoveParent,
/*416746*/                  OPC_CheckChild2Same, 2,
/*416748*/                  OPC_CheckType, MVT::v8f64,
/*416750*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416752*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416755*/                  OPC_EmitMergeInputChains, 1, 3, 
/*416758*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416772*/                0, // EndSwitchType
/*416773*/              /*Scope*/ 78, /*->416852*/
/*416774*/                OPC_MoveChild1,
/*416775*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*416778*/                OPC_MoveChild0,
/*416779*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416782*/                OPC_RecordMemRef,
/*416783*/                OPC_RecordNode, // #2 = 'ld' chained node
/*416784*/                OPC_CheckFoldableChainNode,
/*416785*/                OPC_RecordChild1, // #3 = $src3
/*416786*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416788*/                OPC_CheckPredicate, 9, // Predicate_load
/*416790*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->416821
/*416793*/                  OPC_MoveParent,
/*416794*/                  OPC_MoveParent,
/*416795*/                  OPC_RecordChild2, // #4 = $src1
/*416796*/                  OPC_MoveParent,
/*416797*/                  OPC_CheckChild2Same, 4,
/*416799*/                  OPC_CheckType, MVT::v8f32,
/*416801*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416803*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416806*/                  OPC_EmitMergeInputChains1_2,
/*416807*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416821*/                /*SwitchType*/ 28, MVT::f64,// ->416851
/*416823*/                  OPC_MoveParent,
/*416824*/                  OPC_MoveParent,
/*416825*/                  OPC_RecordChild2, // #4 = $src1
/*416826*/                  OPC_MoveParent,
/*416827*/                  OPC_CheckChild2Same, 4,
/*416829*/                  OPC_CheckType, MVT::v8f64,
/*416831*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416833*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416836*/                  OPC_EmitMergeInputChains1_2,
/*416837*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416851*/                0, // EndSwitchType
/*416852*/              0, /*End of Scope*/
/*416853*/            /*Scope*/ 80, /*->416934*/
/*416854*/              OPC_MoveChild0,
/*416855*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*416858*/              OPC_MoveChild0,
/*416859*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416862*/              OPC_RecordMemRef,
/*416863*/              OPC_RecordNode, // #1 = 'ld' chained node
/*416864*/              OPC_CheckFoldableChainNode,
/*416865*/              OPC_RecordChild1, // #2 = $src3
/*416866*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416868*/              OPC_CheckPredicate, 9, // Predicate_load
/*416870*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->416902
/*416873*/                OPC_MoveParent,
/*416874*/                OPC_MoveParent,
/*416875*/                OPC_RecordChild1, // #3 = $src1
/*416876*/                OPC_RecordChild2, // #4 = $src2
/*416877*/                OPC_MoveParent,
/*416878*/                OPC_CheckChild2Same, 3,
/*416880*/                OPC_CheckType, MVT::v8f32,
/*416882*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416884*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416887*/                OPC_EmitMergeInputChains1_1,
/*416888*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416902*/              /*SwitchType*/ 29, MVT::f64,// ->416933
/*416904*/                OPC_MoveParent,
/*416905*/                OPC_MoveParent,
/*416906*/                OPC_RecordChild1, // #3 = $src1
/*416907*/                OPC_RecordChild2, // #4 = $src2
/*416908*/                OPC_MoveParent,
/*416909*/                OPC_CheckChild2Same, 3,
/*416911*/                OPC_CheckType, MVT::v8f64,
/*416913*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416915*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416918*/                OPC_EmitMergeInputChains1_1,
/*416919*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416933*/              0, // EndSwitchType
/*416934*/            /*Scope*/ 82, /*->417017*/
/*416935*/              OPC_RecordChild0, // #1 = $src1
/*416936*/              OPC_RecordChild1, // #2 = $src2
/*416937*/              OPC_MoveChild2,
/*416938*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*416941*/              OPC_MoveChild0,
/*416942*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*416945*/              OPC_RecordMemRef,
/*416946*/              OPC_RecordNode, // #3 = 'ld' chained node
/*416947*/              OPC_CheckFoldableChainNode,
/*416948*/              OPC_RecordChild1, // #4 = $src3
/*416949*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*416951*/              OPC_CheckPredicate, 9, // Predicate_load
/*416953*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->416985
/*416956*/                OPC_MoveParent,
/*416957*/                OPC_MoveParent,
/*416958*/                OPC_MoveParent,
/*416959*/                OPC_CheckChild2Same, 1,
/*416961*/                OPC_CheckType, MVT::v8f32,
/*416963*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416965*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416968*/                OPC_EmitMergeInputChains, 1, 3, 
/*416971*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*416985*/              /*SwitchType*/ 29, MVT::f64,// ->417016
/*416987*/                OPC_MoveParent,
/*416988*/                OPC_MoveParent,
/*416989*/                OPC_MoveParent,
/*416990*/                OPC_CheckChild2Same, 1,
/*416992*/                OPC_CheckType, MVT::v8f64,
/*416994*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*416996*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*416999*/                OPC_EmitMergeInputChains, 1, 3, 
/*417002*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417016*/              0, // EndSwitchType
/*417017*/            /*Scope*/ 80, /*->417098*/
/*417018*/              OPC_MoveChild0,
/*417019*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*417022*/              OPC_MoveChild0,
/*417023*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417026*/              OPC_RecordMemRef,
/*417027*/              OPC_RecordNode, // #1 = 'ld' chained node
/*417028*/              OPC_CheckFoldableChainNode,
/*417029*/              OPC_RecordChild1, // #2 = $src3
/*417030*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417032*/              OPC_CheckPredicate, 9, // Predicate_load
/*417034*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->417066
/*417037*/                OPC_MoveParent,
/*417038*/                OPC_MoveParent,
/*417039*/                OPC_RecordChild1, // #3 = $src2
/*417040*/                OPC_RecordChild2, // #4 = $src1
/*417041*/                OPC_MoveParent,
/*417042*/                OPC_CheckChild2Same, 4,
/*417044*/                OPC_CheckType, MVT::v8f32,
/*417046*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417048*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417051*/                OPC_EmitMergeInputChains1_1,
/*417052*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417066*/              /*SwitchType*/ 29, MVT::f64,// ->417097
/*417068*/                OPC_MoveParent,
/*417069*/                OPC_MoveParent,
/*417070*/                OPC_RecordChild1, // #3 = $src2
/*417071*/                OPC_RecordChild2, // #4 = $src1
/*417072*/                OPC_MoveParent,
/*417073*/                OPC_CheckChild2Same, 4,
/*417075*/                OPC_CheckType, MVT::v8f64,
/*417077*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417079*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417082*/                OPC_EmitMergeInputChains1_1,
/*417083*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417097*/              0, // EndSwitchType
/*417098*/            /*Scope*/ 90|128,1/*218*/, /*->417318*/
/*417100*/              OPC_RecordChild0, // #1 = $src1
/*417101*/              OPC_Scope, 78, /*->417181*/ // 3 children in Scope
/*417103*/                OPC_MoveChild1,
/*417104*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*417107*/                OPC_MoveChild0,
/*417108*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417111*/                OPC_RecordMemRef,
/*417112*/                OPC_RecordNode, // #2 = 'ld' chained node
/*417113*/                OPC_CheckFoldableChainNode,
/*417114*/                OPC_RecordChild1, // #3 = $src3
/*417115*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417117*/                OPC_CheckPredicate, 9, // Predicate_load
/*417119*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->417150
/*417122*/                  OPC_MoveParent,
/*417123*/                  OPC_MoveParent,
/*417124*/                  OPC_RecordChild2, // #4 = $src2
/*417125*/                  OPC_MoveParent,
/*417126*/                  OPC_CheckChild2Same, 1,
/*417128*/                  OPC_CheckType, MVT::v8f32,
/*417130*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417132*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417135*/                  OPC_EmitMergeInputChains1_2,
/*417136*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417150*/                /*SwitchType*/ 28, MVT::f64,// ->417180
/*417152*/                  OPC_MoveParent,
/*417153*/                  OPC_MoveParent,
/*417154*/                  OPC_RecordChild2, // #4 = $src2
/*417155*/                  OPC_MoveParent,
/*417156*/                  OPC_CheckChild2Same, 1,
/*417158*/                  OPC_CheckType, MVT::v8f64,
/*417160*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417162*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417165*/                  OPC_EmitMergeInputChains1_2,
/*417166*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417180*/                0, // EndSwitchType
/*417181*/              /*Scope*/ 69, /*->417251*/
/*417182*/                OPC_RecordChild1, // #2 = $src1
/*417183*/                OPC_MoveChild2,
/*417184*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417187*/                OPC_RecordMemRef,
/*417188*/                OPC_RecordNode, // #3 = 'ld' chained node
/*417189*/                OPC_CheckFoldableChainNode,
/*417190*/                OPC_RecordChild1, // #4 = $src3
/*417191*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417193*/                OPC_CheckPredicate, 9, // Predicate_load
/*417195*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*417197*/                OPC_MoveParent,
/*417198*/                OPC_MoveParent,
/*417199*/                OPC_CheckChild2Same, 2,
/*417201*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->417226
/*417204*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417206*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417209*/                  OPC_EmitMergeInputChains, 1, 3, 
/*417212*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417226*/                /*SwitchType*/ 22, MVT::v8f64,// ->417250
/*417228*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417230*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417233*/                  OPC_EmitMergeInputChains, 1, 3, 
/*417236*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417250*/                0, // EndSwitchType
/*417251*/              /*Scope*/ 65, /*->417317*/
/*417252*/                OPC_MoveChild1,
/*417253*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417256*/                OPC_RecordMemRef,
/*417257*/                OPC_RecordNode, // #2 = 'ld' chained node
/*417258*/                OPC_CheckFoldableChainNode,
/*417259*/                OPC_RecordChild1, // #3 = $src3
/*417260*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417262*/                OPC_CheckPredicate, 9, // Predicate_load
/*417264*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*417266*/                OPC_MoveParent,
/*417267*/                OPC_RecordChild2, // #4 = $src1
/*417268*/                OPC_MoveParent,
/*417269*/                OPC_CheckChild2Same, 4,
/*417271*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->417294
/*417274*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417276*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417279*/                  OPC_EmitMergeInputChains1_2,
/*417280*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417294*/                /*SwitchType*/ 20, MVT::v8f64,// ->417316
/*417296*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417298*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417301*/                  OPC_EmitMergeInputChains1_2,
/*417302*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417316*/                0, // EndSwitchType
/*417317*/              0, /*End of Scope*/
/*417318*/            /*Scope*/ 66, /*->417385*/
/*417319*/              OPC_MoveChild0,
/*417320*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417323*/              OPC_RecordMemRef,
/*417324*/              OPC_RecordNode, // #1 = 'ld' chained node
/*417325*/              OPC_CheckFoldableChainNode,
/*417326*/              OPC_RecordChild1, // #2 = $src3
/*417327*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417329*/              OPC_CheckPredicate, 9, // Predicate_load
/*417331*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*417333*/              OPC_MoveParent,
/*417334*/              OPC_RecordChild1, // #3 = $src1
/*417335*/              OPC_RecordChild2, // #4 = $src2
/*417336*/              OPC_MoveParent,
/*417337*/              OPC_CheckChild2Same, 3,
/*417339*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->417362
/*417342*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417344*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417347*/                OPC_EmitMergeInputChains1_1,
/*417348*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417362*/              /*SwitchType*/ 20, MVT::v8f64,// ->417384
/*417364*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417366*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417369*/                OPC_EmitMergeInputChains1_1,
/*417370*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417384*/              0, // EndSwitchType
/*417385*/            /*Scope*/ 70, /*->417456*/
/*417386*/              OPC_RecordChild0, // #1 = $src1
/*417387*/              OPC_RecordChild1, // #2 = $src2
/*417388*/              OPC_MoveChild2,
/*417389*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417392*/              OPC_RecordMemRef,
/*417393*/              OPC_RecordNode, // #3 = 'ld' chained node
/*417394*/              OPC_CheckFoldableChainNode,
/*417395*/              OPC_RecordChild1, // #4 = $src3
/*417396*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417398*/              OPC_CheckPredicate, 9, // Predicate_load
/*417400*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*417402*/              OPC_MoveParent,
/*417403*/              OPC_MoveParent,
/*417404*/              OPC_CheckChild2Same, 1,
/*417406*/              OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->417431
/*417409*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417411*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417414*/                OPC_EmitMergeInputChains, 1, 3, 
/*417417*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417431*/              /*SwitchType*/ 22, MVT::v8f64,// ->417455
/*417433*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417435*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417438*/                OPC_EmitMergeInputChains, 1, 3, 
/*417441*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417455*/              0, // EndSwitchType
/*417456*/            /*Scope*/ 66, /*->417523*/
/*417457*/              OPC_MoveChild0,
/*417458*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417461*/              OPC_RecordMemRef,
/*417462*/              OPC_RecordNode, // #1 = 'ld' chained node
/*417463*/              OPC_CheckFoldableChainNode,
/*417464*/              OPC_RecordChild1, // #2 = $src3
/*417465*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417467*/              OPC_CheckPredicate, 9, // Predicate_load
/*417469*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*417471*/              OPC_MoveParent,
/*417472*/              OPC_RecordChild1, // #3 = $src2
/*417473*/              OPC_RecordChild2, // #4 = $src1
/*417474*/              OPC_MoveParent,
/*417475*/              OPC_CheckChild2Same, 4,
/*417477*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->417500
/*417480*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417482*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417485*/                OPC_EmitMergeInputChains1_1,
/*417486*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417500*/              /*SwitchType*/ 20, MVT::v8f64,// ->417522
/*417502*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417504*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417507*/                OPC_EmitMergeInputChains1_1,
/*417508*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417522*/              0, // EndSwitchType
/*417523*/            /*Scope*/ 66, /*->417590*/
/*417524*/              OPC_RecordChild0, // #1 = $src1
/*417525*/              OPC_MoveChild1,
/*417526*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417529*/              OPC_RecordMemRef,
/*417530*/              OPC_RecordNode, // #2 = 'ld' chained node
/*417531*/              OPC_CheckFoldableChainNode,
/*417532*/              OPC_RecordChild1, // #3 = $src3
/*417533*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417535*/              OPC_CheckPredicate, 9, // Predicate_load
/*417537*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*417539*/              OPC_MoveParent,
/*417540*/              OPC_RecordChild2, // #4 = $src2
/*417541*/              OPC_MoveParent,
/*417542*/              OPC_CheckChild2Same, 1,
/*417544*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->417567
/*417547*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417549*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417552*/                OPC_EmitMergeInputChains1_2,
/*417553*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417567*/              /*SwitchType*/ 20, MVT::v8f64,// ->417589
/*417569*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417571*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417574*/                OPC_EmitMergeInputChains1_2,
/*417575*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417589*/              0, // EndSwitchType
/*417590*/            0, /*End of Scope*/
/*417591*/          /*SwitchOpcode*/ 9|128,7/*905*/, TARGET_VAL(X86ISD::FNMSUB),// ->418500
/*417595*/            OPC_Scope, 36|128,1/*164*/, /*->417762*/ // 9 children in Scope
/*417598*/              OPC_RecordChild0, // #1 = $src2
/*417599*/              OPC_Scope, 81, /*->417682*/ // 2 children in Scope
/*417601*/                OPC_RecordChild1, // #2 = $src1
/*417602*/                OPC_MoveChild2,
/*417603*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*417606*/                OPC_MoveChild0,
/*417607*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417610*/                OPC_RecordMemRef,
/*417611*/                OPC_RecordNode, // #3 = 'ld' chained node
/*417612*/                OPC_CheckFoldableChainNode,
/*417613*/                OPC_RecordChild1, // #4 = $src3
/*417614*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417616*/                OPC_CheckPredicate, 9, // Predicate_load
/*417618*/                OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->417650
/*417621*/                  OPC_MoveParent,
/*417622*/                  OPC_MoveParent,
/*417623*/                  OPC_MoveParent,
/*417624*/                  OPC_CheckChild2Same, 2,
/*417626*/                  OPC_CheckType, MVT::v8f32,
/*417628*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417630*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417633*/                  OPC_EmitMergeInputChains, 1, 3, 
/*417636*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417650*/                /*SwitchType*/ 29, MVT::f64,// ->417681
/*417652*/                  OPC_MoveParent,
/*417653*/                  OPC_MoveParent,
/*417654*/                  OPC_MoveParent,
/*417655*/                  OPC_CheckChild2Same, 2,
/*417657*/                  OPC_CheckType, MVT::v8f64,
/*417659*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417661*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417664*/                  OPC_EmitMergeInputChains, 1, 3, 
/*417667*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417681*/                0, // EndSwitchType
/*417682*/              /*Scope*/ 78, /*->417761*/
/*417683*/                OPC_MoveChild1,
/*417684*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*417687*/                OPC_MoveChild0,
/*417688*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417691*/                OPC_RecordMemRef,
/*417692*/                OPC_RecordNode, // #2 = 'ld' chained node
/*417693*/                OPC_CheckFoldableChainNode,
/*417694*/                OPC_RecordChild1, // #3 = $src3
/*417695*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417697*/                OPC_CheckPredicate, 9, // Predicate_load
/*417699*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->417730
/*417702*/                  OPC_MoveParent,
/*417703*/                  OPC_MoveParent,
/*417704*/                  OPC_RecordChild2, // #4 = $src1
/*417705*/                  OPC_MoveParent,
/*417706*/                  OPC_CheckChild2Same, 4,
/*417708*/                  OPC_CheckType, MVT::v8f32,
/*417710*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417712*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417715*/                  OPC_EmitMergeInputChains1_2,
/*417716*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417730*/                /*SwitchType*/ 28, MVT::f64,// ->417760
/*417732*/                  OPC_MoveParent,
/*417733*/                  OPC_MoveParent,
/*417734*/                  OPC_RecordChild2, // #4 = $src1
/*417735*/                  OPC_MoveParent,
/*417736*/                  OPC_CheckChild2Same, 4,
/*417738*/                  OPC_CheckType, MVT::v8f64,
/*417740*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417742*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417745*/                  OPC_EmitMergeInputChains1_2,
/*417746*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417760*/                0, // EndSwitchType
/*417761*/              0, /*End of Scope*/
/*417762*/            /*Scope*/ 80, /*->417843*/
/*417763*/              OPC_MoveChild0,
/*417764*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*417767*/              OPC_MoveChild0,
/*417768*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417771*/              OPC_RecordMemRef,
/*417772*/              OPC_RecordNode, // #1 = 'ld' chained node
/*417773*/              OPC_CheckFoldableChainNode,
/*417774*/              OPC_RecordChild1, // #2 = $src3
/*417775*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417777*/              OPC_CheckPredicate, 9, // Predicate_load
/*417779*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->417811
/*417782*/                OPC_MoveParent,
/*417783*/                OPC_MoveParent,
/*417784*/                OPC_RecordChild1, // #3 = $src1
/*417785*/                OPC_RecordChild2, // #4 = $src2
/*417786*/                OPC_MoveParent,
/*417787*/                OPC_CheckChild2Same, 3,
/*417789*/                OPC_CheckType, MVT::v8f32,
/*417791*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417793*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417796*/                OPC_EmitMergeInputChains1_1,
/*417797*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417811*/              /*SwitchType*/ 29, MVT::f64,// ->417842
/*417813*/                OPC_MoveParent,
/*417814*/                OPC_MoveParent,
/*417815*/                OPC_RecordChild1, // #3 = $src1
/*417816*/                OPC_RecordChild2, // #4 = $src2
/*417817*/                OPC_MoveParent,
/*417818*/                OPC_CheckChild2Same, 3,
/*417820*/                OPC_CheckType, MVT::v8f64,
/*417822*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417824*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417827*/                OPC_EmitMergeInputChains1_1,
/*417828*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417842*/              0, // EndSwitchType
/*417843*/            /*Scope*/ 82, /*->417926*/
/*417844*/              OPC_RecordChild0, // #1 = $src1
/*417845*/              OPC_RecordChild1, // #2 = $src2
/*417846*/              OPC_MoveChild2,
/*417847*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*417850*/              OPC_MoveChild0,
/*417851*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417854*/              OPC_RecordMemRef,
/*417855*/              OPC_RecordNode, // #3 = 'ld' chained node
/*417856*/              OPC_CheckFoldableChainNode,
/*417857*/              OPC_RecordChild1, // #4 = $src3
/*417858*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417860*/              OPC_CheckPredicate, 9, // Predicate_load
/*417862*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->417894
/*417865*/                OPC_MoveParent,
/*417866*/                OPC_MoveParent,
/*417867*/                OPC_MoveParent,
/*417868*/                OPC_CheckChild2Same, 1,
/*417870*/                OPC_CheckType, MVT::v8f32,
/*417872*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417874*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417877*/                OPC_EmitMergeInputChains, 1, 3, 
/*417880*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417894*/              /*SwitchType*/ 29, MVT::f64,// ->417925
/*417896*/                OPC_MoveParent,
/*417897*/                OPC_MoveParent,
/*417898*/                OPC_MoveParent,
/*417899*/                OPC_CheckChild2Same, 1,
/*417901*/                OPC_CheckType, MVT::v8f64,
/*417903*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417905*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417908*/                OPC_EmitMergeInputChains, 1, 3, 
/*417911*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417925*/              0, // EndSwitchType
/*417926*/            /*Scope*/ 80, /*->418007*/
/*417927*/              OPC_MoveChild0,
/*417928*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*417931*/              OPC_MoveChild0,
/*417932*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*417935*/              OPC_RecordMemRef,
/*417936*/              OPC_RecordNode, // #1 = 'ld' chained node
/*417937*/              OPC_CheckFoldableChainNode,
/*417938*/              OPC_RecordChild1, // #2 = $src3
/*417939*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*417941*/              OPC_CheckPredicate, 9, // Predicate_load
/*417943*/              OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->417975
/*417946*/                OPC_MoveParent,
/*417947*/                OPC_MoveParent,
/*417948*/                OPC_RecordChild1, // #3 = $src2
/*417949*/                OPC_RecordChild2, // #4 = $src1
/*417950*/                OPC_MoveParent,
/*417951*/                OPC_CheckChild2Same, 4,
/*417953*/                OPC_CheckType, MVT::v8f32,
/*417955*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*417957*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417960*/                OPC_EmitMergeInputChains1_1,
/*417961*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*417975*/              /*SwitchType*/ 29, MVT::f64,// ->418006
/*417977*/                OPC_MoveParent,
/*417978*/                OPC_MoveParent,
/*417979*/                OPC_RecordChild1, // #3 = $src2
/*417980*/                OPC_RecordChild2, // #4 = $src1
/*417981*/                OPC_MoveParent,
/*417982*/                OPC_CheckChild2Same, 4,
/*417984*/                OPC_CheckType, MVT::v8f64,
/*417986*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*417988*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*417991*/                OPC_EmitMergeInputChains1_1,
/*417992*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418006*/              0, // EndSwitchType
/*418007*/            /*Scope*/ 90|128,1/*218*/, /*->418227*/
/*418009*/              OPC_RecordChild0, // #1 = $src1
/*418010*/              OPC_Scope, 78, /*->418090*/ // 3 children in Scope
/*418012*/                OPC_MoveChild1,
/*418013*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*418016*/                OPC_MoveChild0,
/*418017*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418020*/                OPC_RecordMemRef,
/*418021*/                OPC_RecordNode, // #2 = 'ld' chained node
/*418022*/                OPC_CheckFoldableChainNode,
/*418023*/                OPC_RecordChild1, // #3 = $src3
/*418024*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418026*/                OPC_CheckPredicate, 9, // Predicate_load
/*418028*/                OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->418059
/*418031*/                  OPC_MoveParent,
/*418032*/                  OPC_MoveParent,
/*418033*/                  OPC_RecordChild2, // #4 = $src2
/*418034*/                  OPC_MoveParent,
/*418035*/                  OPC_CheckChild2Same, 1,
/*418037*/                  OPC_CheckType, MVT::v8f32,
/*418039*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*418041*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418044*/                  OPC_EmitMergeInputChains1_2,
/*418045*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418059*/                /*SwitchType*/ 28, MVT::f64,// ->418089
/*418061*/                  OPC_MoveParent,
/*418062*/                  OPC_MoveParent,
/*418063*/                  OPC_RecordChild2, // #4 = $src2
/*418064*/                  OPC_MoveParent,
/*418065*/                  OPC_CheckChild2Same, 1,
/*418067*/                  OPC_CheckType, MVT::v8f64,
/*418069*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418071*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418074*/                  OPC_EmitMergeInputChains1_2,
/*418075*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                            // Dst: (VFNMSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418089*/                0, // EndSwitchType
/*418090*/              /*Scope*/ 69, /*->418160*/
/*418091*/                OPC_RecordChild1, // #2 = $src1
/*418092*/                OPC_MoveChild2,
/*418093*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418096*/                OPC_RecordMemRef,
/*418097*/                OPC_RecordNode, // #3 = 'ld' chained node
/*418098*/                OPC_CheckFoldableChainNode,
/*418099*/                OPC_RecordChild1, // #4 = $src3
/*418100*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418102*/                OPC_CheckPredicate, 9, // Predicate_load
/*418104*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*418106*/                OPC_MoveParent,
/*418107*/                OPC_MoveParent,
/*418108*/                OPC_CheckChild2Same, 2,
/*418110*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->418135
/*418113*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*418115*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418118*/                  OPC_EmitMergeInputChains, 1, 3, 
/*418121*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418135*/                /*SwitchType*/ 22, MVT::v8f64,// ->418159
/*418137*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418139*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418142*/                  OPC_EmitMergeInputChains, 1, 3, 
/*418145*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418159*/                0, // EndSwitchType
/*418160*/              /*Scope*/ 65, /*->418226*/
/*418161*/                OPC_MoveChild1,
/*418162*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418165*/                OPC_RecordMemRef,
/*418166*/                OPC_RecordNode, // #2 = 'ld' chained node
/*418167*/                OPC_CheckFoldableChainNode,
/*418168*/                OPC_RecordChild1, // #3 = $src3
/*418169*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418171*/                OPC_CheckPredicate, 9, // Predicate_load
/*418173*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*418175*/                OPC_MoveParent,
/*418176*/                OPC_RecordChild2, // #4 = $src1
/*418177*/                OPC_MoveParent,
/*418178*/                OPC_CheckChild2Same, 4,
/*418180*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->418203
/*418183*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*418185*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418188*/                  OPC_EmitMergeInputChains1_2,
/*418189*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418203*/                /*SwitchType*/ 20, MVT::v8f64,// ->418225
/*418205*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418207*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418210*/                  OPC_EmitMergeInputChains1_2,
/*418211*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418225*/                0, // EndSwitchType
/*418226*/              0, /*End of Scope*/
/*418227*/            /*Scope*/ 66, /*->418294*/
/*418228*/              OPC_MoveChild0,
/*418229*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418232*/              OPC_RecordMemRef,
/*418233*/              OPC_RecordNode, // #1 = 'ld' chained node
/*418234*/              OPC_CheckFoldableChainNode,
/*418235*/              OPC_RecordChild1, // #2 = $src3
/*418236*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418238*/              OPC_CheckPredicate, 9, // Predicate_load
/*418240*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*418242*/              OPC_MoveParent,
/*418243*/              OPC_RecordChild1, // #3 = $src1
/*418244*/              OPC_RecordChild2, // #4 = $src2
/*418245*/              OPC_MoveParent,
/*418246*/              OPC_CheckChild2Same, 3,
/*418248*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->418271
/*418251*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*418253*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418256*/                OPC_EmitMergeInputChains1_1,
/*418257*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418271*/              /*SwitchType*/ 20, MVT::v8f64,// ->418293
/*418273*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418275*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418278*/                OPC_EmitMergeInputChains1_1,
/*418279*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418293*/              0, // EndSwitchType
/*418294*/            /*Scope*/ 70, /*->418365*/
/*418295*/              OPC_RecordChild0, // #1 = $src1
/*418296*/              OPC_RecordChild1, // #2 = $src2
/*418297*/              OPC_MoveChild2,
/*418298*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418301*/              OPC_RecordMemRef,
/*418302*/              OPC_RecordNode, // #3 = 'ld' chained node
/*418303*/              OPC_CheckFoldableChainNode,
/*418304*/              OPC_RecordChild1, // #4 = $src3
/*418305*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418307*/              OPC_CheckPredicate, 9, // Predicate_load
/*418309*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*418311*/              OPC_MoveParent,
/*418312*/              OPC_MoveParent,
/*418313*/              OPC_CheckChild2Same, 1,
/*418315*/              OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->418340
/*418318*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*418320*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418323*/                OPC_EmitMergeInputChains, 1, 3, 
/*418326*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418340*/              /*SwitchType*/ 22, MVT::v8f64,// ->418364
/*418342*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418344*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418347*/                OPC_EmitMergeInputChains, 1, 3, 
/*418350*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418364*/              0, // EndSwitchType
/*418365*/            /*Scope*/ 66, /*->418432*/
/*418366*/              OPC_MoveChild0,
/*418367*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418370*/              OPC_RecordMemRef,
/*418371*/              OPC_RecordNode, // #1 = 'ld' chained node
/*418372*/              OPC_CheckFoldableChainNode,
/*418373*/              OPC_RecordChild1, // #2 = $src3
/*418374*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418376*/              OPC_CheckPredicate, 9, // Predicate_load
/*418378*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*418380*/              OPC_MoveParent,
/*418381*/              OPC_RecordChild1, // #3 = $src2
/*418382*/              OPC_RecordChild2, // #4 = $src1
/*418383*/              OPC_MoveParent,
/*418384*/              OPC_CheckChild2Same, 4,
/*418386*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->418409
/*418389*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*418391*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418394*/                OPC_EmitMergeInputChains1_1,
/*418395*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418409*/              /*SwitchType*/ 20, MVT::v8f64,// ->418431
/*418411*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418413*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418416*/                OPC_EmitMergeInputChains1_1,
/*418417*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418431*/              0, // EndSwitchType
/*418432*/            /*Scope*/ 66, /*->418499*/
/*418433*/              OPC_RecordChild0, // #1 = $src1
/*418434*/              OPC_MoveChild1,
/*418435*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418438*/              OPC_RecordMemRef,
/*418439*/              OPC_RecordNode, // #2 = 'ld' chained node
/*418440*/              OPC_CheckFoldableChainNode,
/*418441*/              OPC_RecordChild1, // #3 = $src3
/*418442*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418444*/              OPC_CheckPredicate, 9, // Predicate_load
/*418446*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*418448*/              OPC_MoveParent,
/*418449*/              OPC_RecordChild2, // #4 = $src2
/*418450*/              OPC_MoveParent,
/*418451*/              OPC_CheckChild2Same, 1,
/*418453*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->418476
/*418456*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*418458*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418461*/                OPC_EmitMergeInputChains1_2,
/*418462*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418476*/              /*SwitchType*/ 20, MVT::v8f64,// ->418498
/*418478*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418480*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*418483*/                OPC_EmitMergeInputChains1_2,
/*418484*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*418498*/              0, // EndSwitchType
/*418499*/            0, /*End of Scope*/
/*418500*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::FP_ROUND),// ->418585
/*418503*/            OPC_MoveChild0,
/*418504*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->418547
/*418508*/              OPC_MoveChild0,
/*418509*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418512*/              OPC_RecordMemRef,
/*418513*/              OPC_RecordNode, // #1 = 'ld' chained node
/*418514*/              OPC_CheckFoldableChainNode,
/*418515*/              OPC_RecordChild1, // #2 = $src
/*418516*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418518*/              OPC_CheckPredicate, 9, // Predicate_load
/*418520*/              OPC_CheckType, MVT::f64,
/*418522*/              OPC_MoveParent,
/*418523*/              OPC_MoveParent,
/*418524*/              OPC_MoveParent,
/*418525*/              OPC_RecordChild2, // #3 = $src0
/*418526*/              OPC_CheckType, MVT::v8f32,
/*418528*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418530*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418533*/              OPC_EmitMergeInputChains1_1,
/*418534*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fpround:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                        // Dst: (VCVTPD2PSZrmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418547*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->418584
/*418550*/              OPC_RecordMemRef,
/*418551*/              OPC_RecordNode, // #1 = 'ld' chained node
/*418552*/              OPC_CheckFoldableChainNode,
/*418553*/              OPC_RecordChild1, // #2 = $src
/*418554*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418556*/              OPC_CheckPredicate, 9, // Predicate_load
/*418558*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*418560*/              OPC_MoveParent,
/*418561*/              OPC_MoveParent,
/*418562*/              OPC_RecordChild2, // #3 = $src0
/*418563*/              OPC_CheckType, MVT::v8f32,
/*418565*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418567*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418570*/              OPC_EmitMergeInputChains1_1,
/*418571*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fpround:{ *:[v8f32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPD2PSZrmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418584*/            0, // EndSwitchOpcode
/*418585*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::FP_EXTEND),// ->418670
/*418588*/            OPC_MoveChild0,
/*418589*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->418632
/*418593*/              OPC_MoveChild0,
/*418594*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418597*/              OPC_RecordMemRef,
/*418598*/              OPC_RecordNode, // #1 = 'ld' chained node
/*418599*/              OPC_CheckFoldableChainNode,
/*418600*/              OPC_RecordChild1, // #2 = $src
/*418601*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418603*/              OPC_CheckPredicate, 9, // Predicate_load
/*418605*/              OPC_CheckType, MVT::f32,
/*418607*/              OPC_MoveParent,
/*418608*/              OPC_MoveParent,
/*418609*/              OPC_MoveParent,
/*418610*/              OPC_RecordChild2, // #3 = $src0
/*418611*/              OPC_CheckType, MVT::v8f64,
/*418613*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418615*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418618*/              OPC_EmitMergeInputChains1_1,
/*418619*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fpextend:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                        // Dst: (VCVTPS2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418632*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->418669
/*418635*/              OPC_RecordMemRef,
/*418636*/              OPC_RecordNode, // #1 = 'ld' chained node
/*418637*/              OPC_CheckFoldableChainNode,
/*418638*/              OPC_RecordChild1, // #2 = $src
/*418639*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418641*/              OPC_CheckPredicate, 9, // Predicate_load
/*418643*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*418645*/              OPC_MoveParent,
/*418646*/              OPC_MoveParent,
/*418647*/              OPC_RecordChild2, // #3 = $src0
/*418648*/              OPC_CheckType, MVT::v8f64,
/*418650*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418652*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418655*/              OPC_EmitMergeInputChains1_1,
/*418656*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fpextend:{ *:[v8f64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VCVTPS2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418669*/            0, // EndSwitchOpcode
/*418670*/          /*SwitchOpcode*/ 1|128,2/*257*/, TARGET_VAL(ISD::SINT_TO_FP),// ->418931
/*418674*/            OPC_MoveChild0,
/*418675*/            OPC_SwitchOpcode /*3 cases */, 66, TARGET_VAL(ISD::BITCAST),// ->418745
/*418679*/              OPC_MoveChild0,
/*418680*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418683*/              OPC_RecordMemRef,
/*418684*/              OPC_RecordNode, // #1 = 'ld' chained node
/*418685*/              OPC_CheckFoldableChainNode,
/*418686*/              OPC_RecordChild1, // #2 = $src
/*418687*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418689*/              OPC_CheckPredicate, 9, // Predicate_load
/*418691*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*418693*/              OPC_CheckType, MVT::v4i64,
/*418695*/              OPC_MoveParent,
/*418696*/              OPC_CheckType, MVT::v8i32,
/*418698*/              OPC_MoveParent,
/*418699*/              OPC_MoveParent,
/*418700*/              OPC_RecordChild2, // #3 = $src0
/*418701*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->418723
/*418704*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418706*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418709*/                OPC_EmitMergeInputChains1_1,
/*418710*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VCVTDQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418723*/              /*SwitchType*/ 19, MVT::v8f32,// ->418744
/*418725*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*418727*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418730*/                OPC_EmitMergeInputChains1_1,
/*418731*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VCVTDQ2PSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418744*/              0, // EndSwitchType
/*418745*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST),// ->418868
/*418748*/              OPC_MoveChild0,
/*418749*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418752*/              OPC_RecordMemRef,
/*418753*/              OPC_RecordNode, // #1 = 'ld' chained node
/*418754*/              OPC_CheckFoldableChainNode,
/*418755*/              OPC_RecordChild1, // #2 = $src
/*418756*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418758*/              OPC_SwitchType /*2 cases */, 52, MVT::i32,// ->418813
/*418761*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*418763*/                OPC_MoveParent,
/*418764*/                OPC_CheckType, MVT::v8i32,
/*418766*/                OPC_MoveParent,
/*418767*/                OPC_MoveParent,
/*418768*/                OPC_RecordChild2, // #3 = $src0
/*418769*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->418791
/*418772*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418774*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418777*/                  OPC_EmitMergeInputChains1_1,
/*418778*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTDQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418791*/                /*SwitchType*/ 19, MVT::v8f32,// ->418812
/*418793*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*418795*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418798*/                  OPC_EmitMergeInputChains1_1,
/*418799*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                            // Dst: (VCVTDQ2PSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418812*/                0, // EndSwitchType
/*418813*/              /*SwitchType*/ 52, MVT::i64,// ->418867
/*418815*/                OPC_CheckPredicate, 9, // Predicate_load
/*418817*/                OPC_MoveParent,
/*418818*/                OPC_CheckType, MVT::v8i64,
/*418820*/                OPC_MoveParent,
/*418821*/                OPC_MoveParent,
/*418822*/                OPC_RecordChild2, // #3 = $src0
/*418823*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->418845
/*418826*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*418828*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418831*/                  OPC_EmitMergeInputChains1_1,
/*418832*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTQQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418845*/                /*SwitchType*/ 19, MVT::v8f32,// ->418866
/*418847*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*418849*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418852*/                  OPC_EmitMergeInputChains1_1,
/*418853*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                            // Dst: (VCVTQQ2PSZrmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418866*/                0, // EndSwitchType
/*418867*/              0, // EndSwitchType
/*418868*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->418930
/*418871*/              OPC_RecordMemRef,
/*418872*/              OPC_RecordNode, // #1 = 'ld' chained node
/*418873*/              OPC_CheckFoldableChainNode,
/*418874*/              OPC_RecordChild1, // #2 = $src
/*418875*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418877*/              OPC_CheckPredicate, 9, // Predicate_load
/*418879*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*418881*/              OPC_CheckType, MVT::v8i64,
/*418883*/              OPC_MoveParent,
/*418884*/              OPC_MoveParent,
/*418885*/              OPC_RecordChild2, // #3 = $src0
/*418886*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->418908
/*418889*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*418891*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418894*/                OPC_EmitMergeInputChains1_1,
/*418895*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTQQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418908*/              /*SwitchType*/ 19, MVT::v8f32,// ->418929
/*418910*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*418912*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418915*/                OPC_EmitMergeInputChains1_1,
/*418916*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VCVTQQ2PSZrmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418929*/              0, // EndSwitchType
/*418930*/            0, // EndSwitchOpcode
/*418931*/          /*SwitchOpcode*/ 1|128,2/*257*/, TARGET_VAL(ISD::UINT_TO_FP),// ->419192
/*418935*/            OPC_MoveChild0,
/*418936*/            OPC_SwitchOpcode /*3 cases */, 66, TARGET_VAL(ISD::BITCAST),// ->419006
/*418940*/              OPC_MoveChild0,
/*418941*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*418944*/              OPC_RecordMemRef,
/*418945*/              OPC_RecordNode, // #1 = 'ld' chained node
/*418946*/              OPC_CheckFoldableChainNode,
/*418947*/              OPC_RecordChild1, // #2 = $src
/*418948*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*418950*/              OPC_CheckPredicate, 9, // Predicate_load
/*418952*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*418954*/              OPC_CheckType, MVT::v4i64,
/*418956*/              OPC_MoveParent,
/*418957*/              OPC_CheckType, MVT::v8i32,
/*418959*/              OPC_MoveParent,
/*418960*/              OPC_MoveParent,
/*418961*/              OPC_RecordChild2, // #3 = $src0
/*418962*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->418984
/*418965*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*418967*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418970*/                OPC_EmitMergeInputChains1_1,
/*418971*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VCVTUDQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*418984*/              /*SwitchType*/ 19, MVT::v8f32,// ->419005
/*418986*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*418988*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*418991*/                OPC_EmitMergeInputChains1_1,
/*418992*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VCVTUDQ2PSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419005*/              0, // EndSwitchType
/*419006*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST),// ->419129
/*419009*/              OPC_MoveChild0,
/*419010*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*419013*/              OPC_RecordMemRef,
/*419014*/              OPC_RecordNode, // #1 = 'ld' chained node
/*419015*/              OPC_CheckFoldableChainNode,
/*419016*/              OPC_RecordChild1, // #2 = $src
/*419017*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419019*/              OPC_SwitchType /*2 cases */, 52, MVT::i32,// ->419074
/*419022*/                OPC_CheckPredicate, 8, // Predicate_loadi32
/*419024*/                OPC_MoveParent,
/*419025*/                OPC_CheckType, MVT::v8i32,
/*419027*/                OPC_MoveParent,
/*419028*/                OPC_MoveParent,
/*419029*/                OPC_RecordChild2, // #3 = $src0
/*419030*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->419052
/*419033*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*419035*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419038*/                  OPC_EmitMergeInputChains1_1,
/*419039*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTUDQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419052*/                /*SwitchType*/ 19, MVT::v8f32,// ->419073
/*419054*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*419056*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419059*/                  OPC_EmitMergeInputChains1_1,
/*419060*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                            // Dst: (VCVTUDQ2PSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419073*/                0, // EndSwitchType
/*419074*/              /*SwitchType*/ 52, MVT::i64,// ->419128
/*419076*/                OPC_CheckPredicate, 9, // Predicate_load
/*419078*/                OPC_MoveParent,
/*419079*/                OPC_CheckType, MVT::v8i64,
/*419081*/                OPC_MoveParent,
/*419082*/                OPC_MoveParent,
/*419083*/                OPC_RecordChild2, // #3 = $src0
/*419084*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->419106
/*419087*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*419089*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419092*/                  OPC_EmitMergeInputChains1_1,
/*419093*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTUQQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419106*/                /*SwitchType*/ 19, MVT::v8f32,// ->419127
/*419108*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*419110*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419113*/                  OPC_EmitMergeInputChains1_1,
/*419114*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                            // Dst: (VCVTUQQ2PSZrmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419127*/                0, // EndSwitchType
/*419128*/              0, // EndSwitchType
/*419129*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->419191
/*419132*/              OPC_RecordMemRef,
/*419133*/              OPC_RecordNode, // #1 = 'ld' chained node
/*419134*/              OPC_CheckFoldableChainNode,
/*419135*/              OPC_RecordChild1, // #2 = $src
/*419136*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419138*/              OPC_CheckPredicate, 9, // Predicate_load
/*419140*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*419142*/              OPC_CheckType, MVT::v8i64,
/*419144*/              OPC_MoveParent,
/*419145*/              OPC_MoveParent,
/*419146*/              OPC_RecordChild2, // #3 = $src0
/*419147*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->419169
/*419150*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*419152*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419155*/                OPC_EmitMergeInputChains1_1,
/*419156*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTUQQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419169*/              /*SwitchType*/ 19, MVT::v8f32,// ->419190
/*419171*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*419173*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419176*/                OPC_EmitMergeInputChains1_1,
/*419177*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VCVTUQQ2PSZrmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419190*/              0, // EndSwitchType
/*419191*/            0, // EndSwitchOpcode
/*419192*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::CVTPH2PS),// ->419242
/*419195*/            OPC_MoveChild0,
/*419196*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*419199*/            OPC_MoveChild0,
/*419200*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*419203*/            OPC_RecordMemRef,
/*419204*/            OPC_RecordNode, // #1 = 'ld' chained node
/*419205*/            OPC_CheckFoldableChainNode,
/*419206*/            OPC_RecordChild1, // #2 = $src
/*419207*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419209*/            OPC_CheckPredicate, 9, // Predicate_load
/*419211*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*419213*/            OPC_CheckType, MVT::v2i64,
/*419215*/            OPC_MoveParent,
/*419216*/            OPC_CheckType, MVT::v8i16,
/*419218*/            OPC_MoveParent,
/*419219*/            OPC_MoveParent,
/*419220*/            OPC_RecordChild2, // #3 = $src0
/*419221*/            OPC_CheckType, MVT::v8f32,
/*419223*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*419225*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419228*/            OPC_EmitMergeInputChains1_1,
/*419229*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtph2ps:{ *:[v8f32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                      // Dst: (VCVTPH2PSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419242*/          /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(X86ISD::RSQRT14),// ->419380
/*419246*/            OPC_MoveChild0,
/*419247*/            OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(X86ISD::VBROADCAST),// ->419319
/*419251*/              OPC_MoveChild0,
/*419252*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*419255*/              OPC_RecordMemRef,
/*419256*/              OPC_RecordNode, // #1 = 'ld' chained node
/*419257*/              OPC_CheckFoldableChainNode,
/*419258*/              OPC_RecordChild1, // #2 = $src
/*419259*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419261*/              OPC_CheckPredicate, 9, // Predicate_load
/*419263*/              OPC_SwitchType /*2 cases */, 25, MVT::f64,// ->419291
/*419266*/                OPC_MoveParent,
/*419267*/                OPC_MoveParent,
/*419268*/                OPC_MoveParent,
/*419269*/                OPC_RecordChild2, // #3 = $src0
/*419270*/                OPC_CheckType, MVT::v8f64,
/*419272*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*419274*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419277*/                OPC_EmitMergeInputChains1_1,
/*419278*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VRSQRT14PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419291*/              /*SwitchType*/ 25, MVT::f32,// ->419318
/*419293*/                OPC_MoveParent,
/*419294*/                OPC_MoveParent,
/*419295*/                OPC_MoveParent,
/*419296*/                OPC_RecordChild2, // #3 = $src0
/*419297*/                OPC_CheckType, MVT::v8f32,
/*419299*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*419301*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419304*/                OPC_EmitMergeInputChains1_1,
/*419305*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VRSQRT14PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419318*/              0, // EndSwitchType
/*419319*/            /*SwitchOpcode*/ 57, TARGET_VAL(ISD::LOAD),// ->419379
/*419322*/              OPC_RecordMemRef,
/*419323*/              OPC_RecordNode, // #1 = 'ld' chained node
/*419324*/              OPC_CheckFoldableChainNode,
/*419325*/              OPC_RecordChild1, // #2 = $src
/*419326*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419328*/              OPC_CheckPredicate, 9, // Predicate_load
/*419330*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*419332*/              OPC_MoveParent,
/*419333*/              OPC_MoveParent,
/*419334*/              OPC_RecordChild2, // #3 = $src0
/*419335*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->419357
/*419338*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*419340*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419343*/                OPC_EmitMergeInputChains1_1,
/*419344*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419357*/              /*SwitchType*/ 19, MVT::v8f32,// ->419378
/*419359*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*419361*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419364*/                OPC_EmitMergeInputChains1_1,
/*419365*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419378*/              0, // EndSwitchType
/*419379*/            0, // EndSwitchOpcode
/*419380*/          /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(X86ISD::RCP14),// ->419518
/*419384*/            OPC_MoveChild0,
/*419385*/            OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(X86ISD::VBROADCAST),// ->419457
/*419389*/              OPC_MoveChild0,
/*419390*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*419393*/              OPC_RecordMemRef,
/*419394*/              OPC_RecordNode, // #1 = 'ld' chained node
/*419395*/              OPC_CheckFoldableChainNode,
/*419396*/              OPC_RecordChild1, // #2 = $src
/*419397*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419399*/              OPC_CheckPredicate, 9, // Predicate_load
/*419401*/              OPC_SwitchType /*2 cases */, 25, MVT::f64,// ->419429
/*419404*/                OPC_MoveParent,
/*419405*/                OPC_MoveParent,
/*419406*/                OPC_MoveParent,
/*419407*/                OPC_RecordChild2, // #3 = $src0
/*419408*/                OPC_CheckType, MVT::v8f64,
/*419410*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*419412*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419415*/                OPC_EmitMergeInputChains1_1,
/*419416*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VRCP14PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419429*/              /*SwitchType*/ 25, MVT::f32,// ->419456
/*419431*/                OPC_MoveParent,
/*419432*/                OPC_MoveParent,
/*419433*/                OPC_MoveParent,
/*419434*/                OPC_RecordChild2, // #3 = $src0
/*419435*/                OPC_CheckType, MVT::v8f32,
/*419437*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*419439*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419442*/                OPC_EmitMergeInputChains1_1,
/*419443*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VRCP14PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419456*/              0, // EndSwitchType
/*419457*/            /*SwitchOpcode*/ 57, TARGET_VAL(ISD::LOAD),// ->419517
/*419460*/              OPC_RecordMemRef,
/*419461*/              OPC_RecordNode, // #1 = 'ld' chained node
/*419462*/              OPC_CheckFoldableChainNode,
/*419463*/              OPC_RecordChild1, // #2 = $src
/*419464*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419466*/              OPC_CheckPredicate, 9, // Predicate_load
/*419468*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*419470*/              OPC_MoveParent,
/*419471*/              OPC_MoveParent,
/*419472*/              OPC_RecordChild2, // #3 = $src0
/*419473*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->419495
/*419476*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*419478*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419481*/                OPC_EmitMergeInputChains1_1,
/*419482*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419495*/              /*SwitchType*/ 19, MVT::v8f32,// ->419516
/*419497*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*419499*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419502*/                OPC_EmitMergeInputChains1_1,
/*419503*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419516*/              0, // EndSwitchType
/*419517*/            0, // EndSwitchOpcode
/*419518*/          /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(ISD::FSQRT),// ->419656
/*419522*/            OPC_MoveChild0,
/*419523*/            OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(X86ISD::VBROADCAST),// ->419595
/*419527*/              OPC_MoveChild0,
/*419528*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*419531*/              OPC_RecordMemRef,
/*419532*/              OPC_RecordNode, // #1 = 'ld' chained node
/*419533*/              OPC_CheckFoldableChainNode,
/*419534*/              OPC_RecordChild1, // #2 = $src
/*419535*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419537*/              OPC_CheckPredicate, 9, // Predicate_load
/*419539*/              OPC_SwitchType /*2 cases */, 25, MVT::f64,// ->419567
/*419542*/                OPC_MoveParent,
/*419543*/                OPC_MoveParent,
/*419544*/                OPC_MoveParent,
/*419545*/                OPC_RecordChild2, // #3 = $src0
/*419546*/                OPC_CheckType, MVT::v8f64,
/*419548*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*419550*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419553*/                OPC_EmitMergeInputChains1_1,
/*419554*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VSQRTPDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419567*/              /*SwitchType*/ 25, MVT::f32,// ->419594
/*419569*/                OPC_MoveParent,
/*419570*/                OPC_MoveParent,
/*419571*/                OPC_MoveParent,
/*419572*/                OPC_RecordChild2, // #3 = $src0
/*419573*/                OPC_CheckType, MVT::v8f32,
/*419575*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*419577*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419580*/                OPC_EmitMergeInputChains1_1,
/*419581*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VSQRTPSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419594*/              0, // EndSwitchType
/*419595*/            /*SwitchOpcode*/ 57, TARGET_VAL(ISD::LOAD),// ->419655
/*419598*/              OPC_RecordMemRef,
/*419599*/              OPC_RecordNode, // #1 = 'ld' chained node
/*419600*/              OPC_CheckFoldableChainNode,
/*419601*/              OPC_RecordChild1, // #2 = $src
/*419602*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419604*/              OPC_CheckPredicate, 9, // Predicate_load
/*419606*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*419608*/              OPC_MoveParent,
/*419609*/              OPC_MoveParent,
/*419610*/              OPC_RecordChild2, // #3 = $src0
/*419611*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->419633
/*419614*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*419616*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419619*/                OPC_EmitMergeInputChains1_1,
/*419620*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419633*/              /*SwitchType*/ 19, MVT::v8f32,// ->419654
/*419635*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*419637*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419640*/                OPC_EmitMergeInputChains1_1,
/*419641*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*419654*/              0, // EndSwitchType
/*419655*/            0, // EndSwitchOpcode
/*419656*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VREDUCE),// ->419732
/*419659*/            OPC_MoveChild0,
/*419660*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*419663*/            OPC_RecordMemRef,
/*419664*/            OPC_RecordNode, // #1 = 'ld' chained node
/*419665*/            OPC_CheckFoldableChainNode,
/*419666*/            OPC_RecordChild1, // #2 = $src1
/*419667*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419669*/            OPC_CheckPredicate, 9, // Predicate_load
/*419671*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*419673*/            OPC_MoveParent,
/*419674*/            OPC_RecordChild1, // #3 = $src2
/*419675*/            OPC_MoveChild1,
/*419676*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*419679*/            OPC_MoveParent,
/*419680*/            OPC_MoveParent,
/*419681*/            OPC_RecordChild2, // #4 = $src0
/*419682*/            OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->419707
/*419685*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*419687*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*419690*/              OPC_EmitMergeInputChains1_1,
/*419691*/              OPC_EmitConvertToTarget, 3,
/*419693*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                        // Dst: (VREDUCEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*419707*/            /*SwitchType*/ 22, MVT::v8f64,// ->419731
/*419709*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*419711*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*419714*/              OPC_EmitMergeInputChains1_1,
/*419715*/              OPC_EmitConvertToTarget, 3,
/*419717*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                        // Dst: (VREDUCEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*419731*/            0, // EndSwitchType
/*419732*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VRNDSCALE),// ->419808
/*419735*/            OPC_MoveChild0,
/*419736*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*419739*/            OPC_RecordMemRef,
/*419740*/            OPC_RecordNode, // #1 = 'ld' chained node
/*419741*/            OPC_CheckFoldableChainNode,
/*419742*/            OPC_RecordChild1, // #2 = $src1
/*419743*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419745*/            OPC_CheckPredicate, 9, // Predicate_load
/*419747*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*419749*/            OPC_MoveParent,
/*419750*/            OPC_RecordChild1, // #3 = $src2
/*419751*/            OPC_MoveChild1,
/*419752*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*419755*/            OPC_MoveParent,
/*419756*/            OPC_MoveParent,
/*419757*/            OPC_RecordChild2, // #4 = $src0
/*419758*/            OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->419783
/*419761*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*419763*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*419766*/              OPC_EmitMergeInputChains1_1,
/*419767*/              OPC_EmitConvertToTarget, 3,
/*419769*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                        // Dst: (VRNDSCALEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*419783*/            /*SwitchType*/ 22, MVT::v8f64,// ->419807
/*419785*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*419787*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*419790*/              OPC_EmitMergeInputChains1_1,
/*419791*/              OPC_EmitConvertToTarget, 3,
/*419793*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                        // Dst: (VRNDSCALEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*419807*/            0, // EndSwitchType
/*419808*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VGETMANT),// ->419884
/*419811*/            OPC_MoveChild0,
/*419812*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*419815*/            OPC_RecordMemRef,
/*419816*/            OPC_RecordNode, // #1 = 'ld' chained node
/*419817*/            OPC_CheckFoldableChainNode,
/*419818*/            OPC_RecordChild1, // #2 = $src1
/*419819*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419821*/            OPC_CheckPredicate, 9, // Predicate_load
/*419823*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*419825*/            OPC_MoveParent,
/*419826*/            OPC_RecordChild1, // #3 = $src2
/*419827*/            OPC_MoveChild1,
/*419828*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*419831*/            OPC_MoveParent,
/*419832*/            OPC_MoveParent,
/*419833*/            OPC_RecordChild2, // #4 = $src0
/*419834*/            OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->419859
/*419837*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*419839*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*419842*/              OPC_EmitMergeInputChains1_1,
/*419843*/              OPC_EmitConvertToTarget, 3,
/*419845*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                        // Dst: (VGETMANTPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*419859*/            /*SwitchType*/ 22, MVT::v8f64,// ->419883
/*419861*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*419863*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*419866*/              OPC_EmitMergeInputChains1_1,
/*419867*/              OPC_EmitConvertToTarget, 3,
/*419869*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                        // Dst: (VGETMANTPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*419883*/            0, // EndSwitchType
/*419884*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VRANGE),// ->419963
/*419887*/            OPC_RecordChild0, // #1 = $src1
/*419888*/            OPC_MoveChild1,
/*419889*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*419892*/            OPC_RecordMemRef,
/*419893*/            OPC_RecordNode, // #2 = 'ld' chained node
/*419894*/            OPC_CheckFoldableChainNode,
/*419895*/            OPC_RecordChild1, // #3 = $src2
/*419896*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419898*/            OPC_CheckPredicate, 9, // Predicate_load
/*419900*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*419902*/            OPC_MoveParent,
/*419903*/            OPC_RecordChild2, // #4 = $src3
/*419904*/            OPC_MoveChild2,
/*419905*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*419908*/            OPC_MoveParent,
/*419909*/            OPC_MoveParent,
/*419910*/            OPC_RecordChild2, // #5 = $src0
/*419911*/            OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->419937
/*419914*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*419916*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*419919*/              OPC_EmitMergeInputChains1_2,
/*419920*/              OPC_EmitConvertToTarget, 4,
/*419922*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                        // Dst: (VRANGEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*419937*/            /*SwitchType*/ 23, MVT::v8f32,// ->419962
/*419939*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*419941*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*419944*/              OPC_EmitMergeInputChains1_2,
/*419945*/              OPC_EmitConvertToTarget, 4,
/*419947*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                        // Dst: (VRANGEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*419962*/            0, // EndSwitchType
/*419963*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::FFLOOR),// ->420117
/*419967*/            OPC_MoveChild0,
/*419968*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(X86ISD::VBROADCAST),// ->420048
/*419972*/              OPC_MoveChild0,
/*419973*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*419976*/              OPC_RecordMemRef,
/*419977*/              OPC_RecordNode, // #1 = 'ld' chained node
/*419978*/              OPC_CheckFoldableChainNode,
/*419979*/              OPC_RecordChild1, // #2 = $src
/*419980*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*419982*/              OPC_CheckPredicate, 9, // Predicate_load
/*419984*/              OPC_SwitchType /*2 cases */, 29, MVT::f64,// ->420016
/*419987*/                OPC_MoveParent,
/*419988*/                OPC_MoveParent,
/*419989*/                OPC_MoveParent,
/*419990*/                OPC_RecordChild2, // #3 = $dst
/*419991*/                OPC_CheckType, MVT::v8f64,
/*419993*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*419995*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*419998*/                OPC_EmitMergeInputChains1_1,
/*419999*/                OPC_EmitInteger, MVT::i32, 9, 
/*420002*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*420016*/              /*SwitchType*/ 29, MVT::f32,// ->420047
/*420018*/                OPC_MoveParent,
/*420019*/                OPC_MoveParent,
/*420020*/                OPC_MoveParent,
/*420021*/                OPC_RecordChild2, // #3 = $dst
/*420022*/                OPC_CheckType, MVT::v8f32,
/*420024*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*420026*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420029*/                OPC_EmitMergeInputChains1_1,
/*420030*/                OPC_EmitInteger, MVT::i32, 9, 
/*420033*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*420047*/              0, // EndSwitchType
/*420048*/            /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->420116
/*420051*/              OPC_RecordMemRef,
/*420052*/              OPC_RecordNode, // #1 = 'ld' chained node
/*420053*/              OPC_CheckFoldableChainNode,
/*420054*/              OPC_RecordChild1, // #2 = $src
/*420055*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420057*/              OPC_CheckPredicate, 9, // Predicate_load
/*420059*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*420061*/              OPC_MoveParent,
/*420062*/              OPC_MoveParent,
/*420063*/              OPC_RecordChild2, // #3 = $dst
/*420064*/              OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->420090
/*420067*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420069*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420072*/                OPC_EmitMergeInputChains1_1,
/*420073*/                OPC_EmitInteger, MVT::i32, 9, 
/*420076*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*420090*/              /*SwitchType*/ 23, MVT::v8f32,// ->420115
/*420092*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*420094*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420097*/                OPC_EmitMergeInputChains1_1,
/*420098*/                OPC_EmitInteger, MVT::i32, 9, 
/*420101*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*420115*/              0, // EndSwitchType
/*420116*/            0, // EndSwitchOpcode
/*420117*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::FNEARBYINT),// ->420271
/*420121*/            OPC_MoveChild0,
/*420122*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(X86ISD::VBROADCAST),// ->420202
/*420126*/              OPC_MoveChild0,
/*420127*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*420130*/              OPC_RecordMemRef,
/*420131*/              OPC_RecordNode, // #1 = 'ld' chained node
/*420132*/              OPC_CheckFoldableChainNode,
/*420133*/              OPC_RecordChild1, // #2 = $src
/*420134*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420136*/              OPC_CheckPredicate, 9, // Predicate_load
/*420138*/              OPC_SwitchType /*2 cases */, 29, MVT::f64,// ->420170
/*420141*/                OPC_MoveParent,
/*420142*/                OPC_MoveParent,
/*420143*/                OPC_MoveParent,
/*420144*/                OPC_RecordChild2, // #3 = $dst
/*420145*/                OPC_CheckType, MVT::v8f64,
/*420147*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420149*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420152*/                OPC_EmitMergeInputChains1_1,
/*420153*/                OPC_EmitInteger, MVT::i32, 12, 
/*420156*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*420170*/              /*SwitchType*/ 29, MVT::f32,// ->420201
/*420172*/                OPC_MoveParent,
/*420173*/                OPC_MoveParent,
/*420174*/                OPC_MoveParent,
/*420175*/                OPC_RecordChild2, // #3 = $dst
/*420176*/                OPC_CheckType, MVT::v8f32,
/*420178*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*420180*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420183*/                OPC_EmitMergeInputChains1_1,
/*420184*/                OPC_EmitInteger, MVT::i32, 12, 
/*420187*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*420201*/              0, // EndSwitchType
/*420202*/            /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->420270
/*420205*/              OPC_RecordMemRef,
/*420206*/              OPC_RecordNode, // #1 = 'ld' chained node
/*420207*/              OPC_CheckFoldableChainNode,
/*420208*/              OPC_RecordChild1, // #2 = $src
/*420209*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420211*/              OPC_CheckPredicate, 9, // Predicate_load
/*420213*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*420215*/              OPC_MoveParent,
/*420216*/              OPC_MoveParent,
/*420217*/              OPC_RecordChild2, // #3 = $dst
/*420218*/              OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->420244
/*420221*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420223*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420226*/                OPC_EmitMergeInputChains1_1,
/*420227*/                OPC_EmitInteger, MVT::i32, 12, 
/*420230*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*420244*/              /*SwitchType*/ 23, MVT::v8f32,// ->420269
/*420246*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*420248*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420251*/                OPC_EmitMergeInputChains1_1,
/*420252*/                OPC_EmitInteger, MVT::i32, 12, 
/*420255*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*420269*/              0, // EndSwitchType
/*420270*/            0, // EndSwitchOpcode
/*420271*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::FCEIL),// ->420425
/*420275*/            OPC_MoveChild0,
/*420276*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(X86ISD::VBROADCAST),// ->420356
/*420280*/              OPC_MoveChild0,
/*420281*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*420284*/              OPC_RecordMemRef,
/*420285*/              OPC_RecordNode, // #1 = 'ld' chained node
/*420286*/              OPC_CheckFoldableChainNode,
/*420287*/              OPC_RecordChild1, // #2 = $src
/*420288*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420290*/              OPC_CheckPredicate, 9, // Predicate_load
/*420292*/              OPC_SwitchType /*2 cases */, 29, MVT::f64,// ->420324
/*420295*/                OPC_MoveParent,
/*420296*/                OPC_MoveParent,
/*420297*/                OPC_MoveParent,
/*420298*/                OPC_RecordChild2, // #3 = $dst
/*420299*/                OPC_CheckType, MVT::v8f64,
/*420301*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420303*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420306*/                OPC_EmitMergeInputChains1_1,
/*420307*/                OPC_EmitInteger, MVT::i32, 10, 
/*420310*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*420324*/              /*SwitchType*/ 29, MVT::f32,// ->420355
/*420326*/                OPC_MoveParent,
/*420327*/                OPC_MoveParent,
/*420328*/                OPC_MoveParent,
/*420329*/                OPC_RecordChild2, // #3 = $dst
/*420330*/                OPC_CheckType, MVT::v8f32,
/*420332*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*420334*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420337*/                OPC_EmitMergeInputChains1_1,
/*420338*/                OPC_EmitInteger, MVT::i32, 10, 
/*420341*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*420355*/              0, // EndSwitchType
/*420356*/            /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->420424
/*420359*/              OPC_RecordMemRef,
/*420360*/              OPC_RecordNode, // #1 = 'ld' chained node
/*420361*/              OPC_CheckFoldableChainNode,
/*420362*/              OPC_RecordChild1, // #2 = $src
/*420363*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420365*/              OPC_CheckPredicate, 9, // Predicate_load
/*420367*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*420369*/              OPC_MoveParent,
/*420370*/              OPC_MoveParent,
/*420371*/              OPC_RecordChild2, // #3 = $dst
/*420372*/              OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->420398
/*420375*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420377*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420380*/                OPC_EmitMergeInputChains1_1,
/*420381*/                OPC_EmitInteger, MVT::i32, 10, 
/*420384*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*420398*/              /*SwitchType*/ 23, MVT::v8f32,// ->420423
/*420400*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*420402*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420405*/                OPC_EmitMergeInputChains1_1,
/*420406*/                OPC_EmitInteger, MVT::i32, 10, 
/*420409*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*420423*/              0, // EndSwitchType
/*420424*/            0, // EndSwitchOpcode
/*420425*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::FRINT),// ->420579
/*420429*/            OPC_MoveChild0,
/*420430*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(X86ISD::VBROADCAST),// ->420510
/*420434*/              OPC_MoveChild0,
/*420435*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*420438*/              OPC_RecordMemRef,
/*420439*/              OPC_RecordNode, // #1 = 'ld' chained node
/*420440*/              OPC_CheckFoldableChainNode,
/*420441*/              OPC_RecordChild1, // #2 = $src
/*420442*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420444*/              OPC_CheckPredicate, 9, // Predicate_load
/*420446*/              OPC_SwitchType /*2 cases */, 29, MVT::f64,// ->420478
/*420449*/                OPC_MoveParent,
/*420450*/                OPC_MoveParent,
/*420451*/                OPC_MoveParent,
/*420452*/                OPC_RecordChild2, // #3 = $dst
/*420453*/                OPC_CheckType, MVT::v8f64,
/*420455*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420457*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420460*/                OPC_EmitMergeInputChains1_1,
/*420461*/                OPC_EmitInteger, MVT::i32, 4, 
/*420464*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*420478*/              /*SwitchType*/ 29, MVT::f32,// ->420509
/*420480*/                OPC_MoveParent,
/*420481*/                OPC_MoveParent,
/*420482*/                OPC_MoveParent,
/*420483*/                OPC_RecordChild2, // #3 = $dst
/*420484*/                OPC_CheckType, MVT::v8f32,
/*420486*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*420488*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420491*/                OPC_EmitMergeInputChains1_1,
/*420492*/                OPC_EmitInteger, MVT::i32, 4, 
/*420495*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*420509*/              0, // EndSwitchType
/*420510*/            /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->420578
/*420513*/              OPC_RecordMemRef,
/*420514*/              OPC_RecordNode, // #1 = 'ld' chained node
/*420515*/              OPC_CheckFoldableChainNode,
/*420516*/              OPC_RecordChild1, // #2 = $src
/*420517*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420519*/              OPC_CheckPredicate, 9, // Predicate_load
/*420521*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*420523*/              OPC_MoveParent,
/*420524*/              OPC_MoveParent,
/*420525*/              OPC_RecordChild2, // #3 = $dst
/*420526*/              OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->420552
/*420529*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420531*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420534*/                OPC_EmitMergeInputChains1_1,
/*420535*/                OPC_EmitInteger, MVT::i32, 4, 
/*420538*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*420552*/              /*SwitchType*/ 23, MVT::v8f32,// ->420577
/*420554*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*420556*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420559*/                OPC_EmitMergeInputChains1_1,
/*420560*/                OPC_EmitInteger, MVT::i32, 4, 
/*420563*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*420577*/              0, // EndSwitchType
/*420578*/            0, // EndSwitchOpcode
/*420579*/          /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::FTRUNC),// ->420733
/*420583*/            OPC_MoveChild0,
/*420584*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(X86ISD::VBROADCAST),// ->420664
/*420588*/              OPC_MoveChild0,
/*420589*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*420592*/              OPC_RecordMemRef,
/*420593*/              OPC_RecordNode, // #1 = 'ld' chained node
/*420594*/              OPC_CheckFoldableChainNode,
/*420595*/              OPC_RecordChild1, // #2 = $src
/*420596*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420598*/              OPC_CheckPredicate, 9, // Predicate_load
/*420600*/              OPC_SwitchType /*2 cases */, 29, MVT::f64,// ->420632
/*420603*/                OPC_MoveParent,
/*420604*/                OPC_MoveParent,
/*420605*/                OPC_MoveParent,
/*420606*/                OPC_RecordChild2, // #3 = $dst
/*420607*/                OPC_CheckType, MVT::v8f64,
/*420609*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420611*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420614*/                OPC_EmitMergeInputChains1_1,
/*420615*/                OPC_EmitInteger, MVT::i32, 11, 
/*420618*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*420632*/              /*SwitchType*/ 29, MVT::f32,// ->420663
/*420634*/                OPC_MoveParent,
/*420635*/                OPC_MoveParent,
/*420636*/                OPC_MoveParent,
/*420637*/                OPC_RecordChild2, // #3 = $dst
/*420638*/                OPC_CheckType, MVT::v8f32,
/*420640*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*420642*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420645*/                OPC_EmitMergeInputChains1_1,
/*420646*/                OPC_EmitInteger, MVT::i32, 11, 
/*420649*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$dst) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*420663*/              0, // EndSwitchType
/*420664*/            /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->420732
/*420667*/              OPC_RecordMemRef,
/*420668*/              OPC_RecordNode, // #1 = 'ld' chained node
/*420669*/              OPC_CheckFoldableChainNode,
/*420670*/              OPC_RecordChild1, // #2 = $src
/*420671*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420673*/              OPC_CheckPredicate, 9, // Predicate_load
/*420675*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*420677*/              OPC_MoveParent,
/*420678*/              OPC_MoveParent,
/*420679*/              OPC_RecordChild2, // #3 = $dst
/*420680*/              OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->420706
/*420683*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420685*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420688*/                OPC_EmitMergeInputChains1_1,
/*420689*/                OPC_EmitInteger, MVT::i32, 11, 
/*420692*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*420706*/              /*SwitchType*/ 23, MVT::v8f32,// ->420731
/*420708*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*420710*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*420713*/                OPC_EmitMergeInputChains1_1,
/*420714*/                OPC_EmitInteger, MVT::i32, 11, 
/*420717*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$dst) - Complexity = 28
                          // Dst: (VRNDSCALEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*420731*/              0, // EndSwitchType
/*420732*/            0, // EndSwitchOpcode
/*420733*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::SHUF128),// ->420785
/*420736*/            OPC_RecordChild0, // #1 = $src1
/*420737*/            OPC_MoveChild1,
/*420738*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*420741*/            OPC_RecordMemRef,
/*420742*/            OPC_RecordNode, // #2 = 'ld' chained node
/*420743*/            OPC_CheckFoldableChainNode,
/*420744*/            OPC_RecordChild1, // #3 = $src2
/*420745*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420747*/            OPC_CheckPredicate, 9, // Predicate_load
/*420749*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*420751*/            OPC_MoveParent,
/*420752*/            OPC_RecordChild2, // #4 = $src3
/*420753*/            OPC_MoveChild2,
/*420754*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*420757*/            OPC_MoveParent,
/*420758*/            OPC_MoveParent,
/*420759*/            OPC_RecordChild2, // #5 = $src0
/*420760*/            OPC_CheckType, MVT::v8f64,
/*420762*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420764*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*420767*/            OPC_EmitMergeInputChains1_2,
/*420768*/            OPC_EmitConvertToTarget, 4,
/*420770*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                      // Dst: (VSHUFF64X2Zrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*420785*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::UNPCKH),// ->420928
/*420789*/            OPC_RecordChild0, // #1 = $src1
/*420790*/            OPC_MoveChild1,
/*420791*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->420865
/*420795*/              OPC_MoveChild0,
/*420796*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*420799*/              OPC_RecordMemRef,
/*420800*/              OPC_RecordNode, // #2 = 'ld' chained node
/*420801*/              OPC_CheckFoldableChainNode,
/*420802*/              OPC_RecordChild1, // #3 = $src2
/*420803*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420805*/              OPC_CheckPredicate, 9, // Predicate_load
/*420807*/              OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->420836
/*420810*/                OPC_MoveParent,
/*420811*/                OPC_MoveParent,
/*420812*/                OPC_MoveParent,
/*420813*/                OPC_RecordChild2, // #4 = $src0
/*420814*/                OPC_CheckType, MVT::v8f64,
/*420816*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420818*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*420821*/                OPC_EmitMergeInputChains1_2,
/*420822*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VUNPCKHPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*420836*/              /*SwitchType*/ 26, MVT::f32,// ->420864
/*420838*/                OPC_MoveParent,
/*420839*/                OPC_MoveParent,
/*420840*/                OPC_MoveParent,
/*420841*/                OPC_RecordChild2, // #4 = $src0
/*420842*/                OPC_CheckType, MVT::v8f32,
/*420844*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*420846*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*420849*/                OPC_EmitMergeInputChains1_2,
/*420850*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VUNPCKHPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*420864*/              0, // EndSwitchType
/*420865*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->420927
/*420868*/              OPC_RecordMemRef,
/*420869*/              OPC_RecordNode, // #2 = 'ld' chained node
/*420870*/              OPC_CheckFoldableChainNode,
/*420871*/              OPC_RecordChild1, // #3 = $src2
/*420872*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420874*/              OPC_CheckPredicate, 9, // Predicate_load
/*420876*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*420878*/              OPC_MoveParent,
/*420879*/              OPC_MoveParent,
/*420880*/              OPC_RecordChild2, // #4 = $src0
/*420881*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->420904
/*420884*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420886*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*420889*/                OPC_EmitMergeInputChains1_2,
/*420890*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*420904*/              /*SwitchType*/ 20, MVT::v8f32,// ->420926
/*420906*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*420908*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*420911*/                OPC_EmitMergeInputChains1_2,
/*420912*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*420926*/              0, // EndSwitchType
/*420927*/            0, // EndSwitchOpcode
/*420928*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::UNPCKL),// ->421071
/*420932*/            OPC_RecordChild0, // #1 = $src1
/*420933*/            OPC_MoveChild1,
/*420934*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->421008
/*420938*/              OPC_MoveChild0,
/*420939*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*420942*/              OPC_RecordMemRef,
/*420943*/              OPC_RecordNode, // #2 = 'ld' chained node
/*420944*/              OPC_CheckFoldableChainNode,
/*420945*/              OPC_RecordChild1, // #3 = $src2
/*420946*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*420948*/              OPC_CheckPredicate, 9, // Predicate_load
/*420950*/              OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->420979
/*420953*/                OPC_MoveParent,
/*420954*/                OPC_MoveParent,
/*420955*/                OPC_MoveParent,
/*420956*/                OPC_RecordChild2, // #4 = $src0
/*420957*/                OPC_CheckType, MVT::v8f64,
/*420959*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*420961*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*420964*/                OPC_EmitMergeInputChains1_2,
/*420965*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VUNPCKLPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*420979*/              /*SwitchType*/ 26, MVT::f32,// ->421007
/*420981*/                OPC_MoveParent,
/*420982*/                OPC_MoveParent,
/*420983*/                OPC_MoveParent,
/*420984*/                OPC_RecordChild2, // #4 = $src0
/*420985*/                OPC_CheckType, MVT::v8f32,
/*420987*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*420989*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*420992*/                OPC_EmitMergeInputChains1_2,
/*420993*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VUNPCKLPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*421007*/              0, // EndSwitchType
/*421008*/            /*SwitchOpcode*/ 59, TARGET_VAL(ISD::LOAD),// ->421070
/*421011*/              OPC_RecordMemRef,
/*421012*/              OPC_RecordNode, // #2 = 'ld' chained node
/*421013*/              OPC_CheckFoldableChainNode,
/*421014*/              OPC_RecordChild1, // #3 = $src2
/*421015*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*421017*/              OPC_CheckPredicate, 9, // Predicate_load
/*421019*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*421021*/              OPC_MoveParent,
/*421022*/              OPC_MoveParent,
/*421023*/              OPC_RecordChild2, // #4 = $src0
/*421024*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->421047
/*421027*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421029*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*421032*/                OPC_EmitMergeInputChains1_2,
/*421033*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*421047*/              /*SwitchType*/ 20, MVT::v8f32,// ->421069
/*421049*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*421051*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*421054*/                OPC_EmitMergeInputChains1_2,
/*421055*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*421069*/              0, // EndSwitchType
/*421070*/            0, // EndSwitchOpcode
/*421071*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::SHUFP),// ->421150
/*421074*/            OPC_RecordChild0, // #1 = $src1
/*421075*/            OPC_MoveChild1,
/*421076*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*421079*/            OPC_RecordMemRef,
/*421080*/            OPC_RecordNode, // #2 = 'ld' chained node
/*421081*/            OPC_CheckFoldableChainNode,
/*421082*/            OPC_RecordChild1, // #3 = $src2
/*421083*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*421085*/            OPC_CheckPredicate, 9, // Predicate_load
/*421087*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*421089*/            OPC_MoveParent,
/*421090*/            OPC_RecordChild2, // #4 = $src3
/*421091*/            OPC_MoveChild2,
/*421092*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*421095*/            OPC_MoveParent,
/*421096*/            OPC_MoveParent,
/*421097*/            OPC_RecordChild2, // #5 = $src0
/*421098*/            OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->421124
/*421101*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*421103*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*421106*/              OPC_EmitMergeInputChains1_2,
/*421107*/              OPC_EmitConvertToTarget, 4,
/*421109*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                        // Dst: (VSHUFPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*421124*/            /*SwitchType*/ 23, MVT::v8f64,// ->421149
/*421126*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421128*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*421131*/              OPC_EmitMergeInputChains1_2,
/*421132*/              OPC_EmitConvertToTarget, 4,
/*421134*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                        // Dst: (VSHUFPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*421149*/            0, // EndSwitchType
/*421150*/          /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->421248
/*421153*/            OPC_MoveChild0,
/*421154*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*421157*/            OPC_RecordMemRef,
/*421158*/            OPC_RecordNode, // #1 = 'ld' chained node
/*421159*/            OPC_CheckFoldableChainNode,
/*421160*/            OPC_RecordChild1, // #2 = $src
/*421161*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*421163*/            OPC_CheckPredicate, 9, // Predicate_load
/*421165*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*421167*/            OPC_Scope, 26, /*->421195*/ // 3 children in Scope
/*421169*/              OPC_CheckType, MVT::v4f64,
/*421171*/              OPC_MoveParent,
/*421172*/              OPC_MoveParent,
/*421173*/              OPC_RecordChild2, // #3 = $src0
/*421174*/              OPC_CheckType, MVT::v8f64,
/*421176*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421178*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*421181*/              OPC_EmitMergeInputChains1_1,
/*421182*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X4rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTF64X4rmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*421195*/            /*Scope*/ 24, /*->421220*/
/*421196*/              OPC_MoveParent,
/*421197*/              OPC_MoveParent,
/*421198*/              OPC_RecordChild2, // #3 = $src0
/*421199*/              OPC_CheckType, MVT::v8f32,
/*421201*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*421203*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*421206*/              OPC_EmitMergeInputChains1_1,
/*421207*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTF32X4Z256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*421220*/            /*Scope*/ 26, /*->421247*/
/*421221*/              OPC_CheckType, MVT::v2f64,
/*421223*/              OPC_MoveParent,
/*421224*/              OPC_MoveParent,
/*421225*/              OPC_RecordChild2, // #3 = $src0
/*421226*/              OPC_CheckType, MVT::v8f64,
/*421228*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*421230*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*421233*/              OPC_EmitMergeInputChains1_1,
/*421234*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X2rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86SubVBroadcast:{ *:[v8f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTF64X2rmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*421247*/            0, /*End of Scope*/
/*421248*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::EXPAND),// ->421312
/*421251*/            OPC_MoveChild0,
/*421252*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*421255*/            OPC_RecordMemRef,
/*421256*/            OPC_RecordNode, // #1 = 'ld' chained node
/*421257*/            OPC_CheckFoldableChainNode,
/*421258*/            OPC_RecordChild1, // #2 = $src1
/*421259*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*421261*/            OPC_CheckPredicate, 9, // Predicate_load
/*421263*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*421265*/            OPC_MoveParent,
/*421266*/            OPC_MoveParent,
/*421267*/            OPC_RecordChild2, // #3 = $src0
/*421268*/            OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->421290
/*421271*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*421273*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*421276*/              OPC_EmitMergeInputChains1_1,
/*421277*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                        // Dst: (VEXPANDPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*421290*/            /*SwitchType*/ 19, MVT::v8f64,// ->421311
/*421292*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421294*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*421297*/              OPC_EmitMergeInputChains1_1,
/*421298*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VEXPANDPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*421311*/            0, // EndSwitchType
/*421312*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::MOVSHDUP),// ->421353
/*421315*/            OPC_MoveChild0,
/*421316*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*421319*/            OPC_RecordMemRef,
/*421320*/            OPC_RecordNode, // #1 = 'ld' chained node
/*421321*/            OPC_CheckFoldableChainNode,
/*421322*/            OPC_RecordChild1, // #2 = $src1
/*421323*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*421325*/            OPC_CheckPredicate, 9, // Predicate_load
/*421327*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*421329*/            OPC_MoveParent,
/*421330*/            OPC_MoveParent,
/*421331*/            OPC_RecordChild2, // #3 = $src0
/*421332*/            OPC_CheckType, MVT::v8f32,
/*421334*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*421336*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*421339*/            OPC_EmitMergeInputChains1_1,
/*421340*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Movshdup:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSHDUPZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*421353*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::MOVSLDUP),// ->421394
/*421356*/            OPC_MoveChild0,
/*421357*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*421360*/            OPC_RecordMemRef,
/*421361*/            OPC_RecordNode, // #1 = 'ld' chained node
/*421362*/            OPC_CheckFoldableChainNode,
/*421363*/            OPC_RecordChild1, // #2 = $src1
/*421364*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*421366*/            OPC_CheckPredicate, 9, // Predicate_load
/*421368*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*421370*/            OPC_MoveParent,
/*421371*/            OPC_MoveParent,
/*421372*/            OPC_RecordChild2, // #3 = $src0
/*421373*/            OPC_CheckType, MVT::v8f32,
/*421375*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*421377*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*421380*/            OPC_EmitMergeInputChains1_1,
/*421381*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Movsldup:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSLDUPZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*421394*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::MOVDDUP),// ->421435
/*421397*/            OPC_MoveChild0,
/*421398*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*421401*/            OPC_RecordMemRef,
/*421402*/            OPC_RecordNode, // #1 = 'ld' chained node
/*421403*/            OPC_CheckFoldableChainNode,
/*421404*/            OPC_RecordChild1, // #2 = $src1
/*421405*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*421407*/            OPC_CheckPredicate, 9, // Predicate_load
/*421409*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*421411*/            OPC_MoveParent,
/*421412*/            OPC_MoveParent,
/*421413*/            OPC_RecordChild2, // #3 = $src0
/*421414*/            OPC_CheckType, MVT::v8f64,
/*421416*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421418*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*421421*/            OPC_EmitMergeInputChains1_1,
/*421422*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Movddup:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                      // Dst: (VMOVDDUPZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*421435*/          /*SwitchOpcode*/ 108, TARGET_VAL(ISD::LOAD),// ->421546
/*421438*/            OPC_RecordMemRef,
/*421439*/            OPC_RecordNode, // #1 = 'ld' chained node
/*421440*/            OPC_CheckFoldableChainNode,
/*421441*/            OPC_RecordChild1, // #2 = $src1
/*421442*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*421444*/            OPC_CheckPredicate, 9, // Predicate_load
/*421446*/            OPC_Scope, 48, /*->421496*/ // 2 children in Scope
/*421448*/              OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*421450*/              OPC_MoveParent,
/*421451*/              OPC_RecordChild2, // #3 = $src0
/*421452*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->421474
/*421455*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*421457*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*421460*/                OPC_EmitMergeInputChains1_1,
/*421461*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, VR256X:{ *:[v8f32] }:$src0) - Complexity = 25
                          // Dst: (VMOVAPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*421474*/              /*SwitchType*/ 19, MVT::v8f64,// ->421495
/*421476*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421478*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*421481*/                OPC_EmitMergeInputChains1_1,
/*421482*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, VR512:{ *:[v8f64] }:$src0) - Complexity = 25
                          // Dst: (VMOVAPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*421495*/              0, // EndSwitchType
/*421496*/            /*Scope*/ 48, /*->421545*/
/*421497*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*421499*/              OPC_MoveParent,
/*421500*/              OPC_RecordChild2, // #3 = $src0
/*421501*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->421523
/*421504*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*421506*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*421509*/                OPC_EmitMergeInputChains1_1,
/*421510*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src0) - Complexity = 25
                          // Dst: (VMOVUPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*421523*/              /*SwitchType*/ 19, MVT::v8f64,// ->421544
/*421525*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421527*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*421530*/                OPC_EmitMergeInputChains1_1,
/*421531*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src0) - Complexity = 25
                          // Dst: (VMOVUPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*421544*/              0, // EndSwitchType
/*421545*/            0, /*End of Scope*/
/*421546*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VREDUCE_RND),// ->421588
/*421549*/            OPC_RecordChild0, // #1 = $src1
/*421550*/            OPC_RecordChild1, // #2 = $src2
/*421551*/            OPC_MoveChild1,
/*421552*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*421555*/            OPC_MoveParent,
/*421556*/            OPC_CheckChild2Integer, 8, 
/*421558*/            OPC_MoveParent,
/*421559*/            OPC_MoveChild2,
/*421560*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*421563*/            OPC_MoveChild0,
/*421564*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*421567*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*421569*/            OPC_CheckType, MVT::v16i32,
/*421571*/            OPC_MoveParent,
/*421572*/            OPC_MoveParent,
/*421573*/            OPC_CheckType, MVT::v8f64,
/*421575*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*421577*/            OPC_EmitConvertToTarget, 2,
/*421579*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrribkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduceRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VREDUCEPDZrribkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*421588*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VRNDSCALE_RND),// ->421630
/*421591*/            OPC_RecordChild0, // #1 = $src1
/*421592*/            OPC_RecordChild1, // #2 = $src2
/*421593*/            OPC_MoveChild1,
/*421594*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*421597*/            OPC_MoveParent,
/*421598*/            OPC_CheckChild2Integer, 8, 
/*421600*/            OPC_MoveParent,
/*421601*/            OPC_MoveChild2,
/*421602*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*421605*/            OPC_MoveChild0,
/*421606*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*421609*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*421611*/            OPC_CheckType, MVT::v16i32,
/*421613*/            OPC_MoveParent,
/*421614*/            OPC_MoveParent,
/*421615*/            OPC_CheckType, MVT::v8f64,
/*421617*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421619*/            OPC_EmitConvertToTarget, 2,
/*421621*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrribkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScaleRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VRNDSCALEPDZrribkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*421630*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VGETMANT_RND),// ->421672
/*421633*/            OPC_RecordChild0, // #1 = $src1
/*421634*/            OPC_RecordChild1, // #2 = $src2
/*421635*/            OPC_MoveChild1,
/*421636*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*421639*/            OPC_MoveParent,
/*421640*/            OPC_CheckChild2Integer, 8, 
/*421642*/            OPC_MoveParent,
/*421643*/            OPC_MoveChild2,
/*421644*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*421647*/            OPC_MoveChild0,
/*421648*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*421651*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*421653*/            OPC_CheckType, MVT::v16i32,
/*421655*/            OPC_MoveParent,
/*421656*/            OPC_MoveParent,
/*421657*/            OPC_CheckType, MVT::v8f64,
/*421659*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421661*/            OPC_EmitConvertToTarget, 2,
/*421663*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrribkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMantRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VGETMANTPDZrribkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*421672*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VRANGE_RND),// ->421716
/*421675*/            OPC_RecordChild0, // #1 = $src1
/*421676*/            OPC_RecordChild1, // #2 = $src2
/*421677*/            OPC_RecordChild2, // #3 = $src3
/*421678*/            OPC_MoveChild2,
/*421679*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*421682*/            OPC_MoveParent,
/*421683*/            OPC_CheckChild3Integer, 8, 
/*421685*/            OPC_MoveParent,
/*421686*/            OPC_MoveChild2,
/*421687*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*421690*/            OPC_MoveChild0,
/*421691*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*421694*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*421696*/            OPC_CheckType, MVT::v16i32,
/*421698*/            OPC_MoveParent,
/*421699*/            OPC_MoveParent,
/*421700*/            OPC_CheckType, MVT::v8f64,
/*421702*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*421704*/            OPC_EmitConvertToTarget, 3,
/*421706*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrribkz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRangeRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VRANGEPDZrribkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*421716*/          /*SwitchOpcode*/ 104, TARGET_VAL(X86ISD::VFIXUPIMM),// ->421823
/*421719*/            OPC_RecordChild0, // #1 = $src1
/*421720*/            OPC_RecordChild1, // #2 = $src2
/*421721*/            OPC_RecordChild2, // #3 = $src3
/*421722*/            OPC_RecordChild3, // #4 = $src4
/*421723*/            OPC_MoveChild3,
/*421724*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*421727*/            OPC_MoveParent,
/*421728*/            OPC_Scope, 57, /*->421787*/ // 2 children in Scope
/*421730*/              OPC_CheckChild4Integer, 4, 
/*421732*/              OPC_MoveParent,
/*421733*/              OPC_MoveChild2,
/*421734*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*421737*/              OPC_MoveChild0,
/*421738*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*421741*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*421743*/              OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->421765
/*421746*/                OPC_MoveParent,
/*421747*/                OPC_MoveParent,
/*421748*/                OPC_CheckType, MVT::v8f32,
/*421750*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*421752*/                OPC_EmitConvertToTarget, 4,
/*421754*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rrikz), 0,
                              MVT::v8f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VFIXUPIMMPSZ256rrikz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*421765*/              /*SwitchType*/ 19, MVT::v16i32,// ->421786
/*421767*/                OPC_MoveParent,
/*421768*/                OPC_MoveParent,
/*421769*/                OPC_CheckType, MVT::v8f64,
/*421771*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421773*/                OPC_EmitConvertToTarget, 4,
/*421775*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrrikz), 0,
                              MVT::v8f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                          // Dst: (VFIXUPIMMPDZrrikz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*421786*/              0, // EndSwitchType
/*421787*/            /*Scope*/ 34, /*->421822*/
/*421788*/              OPC_CheckChild4Integer, 8, 
/*421790*/              OPC_MoveParent,
/*421791*/              OPC_MoveChild2,
/*421792*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*421795*/              OPC_MoveChild0,
/*421796*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*421799*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*421801*/              OPC_CheckType, MVT::v16i32,
/*421803*/              OPC_MoveParent,
/*421804*/              OPC_MoveParent,
/*421805*/              OPC_CheckType, MVT::v8f64,
/*421807*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421809*/              OPC_EmitConvertToTarget, 4,
/*421811*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrribkz), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                        // Dst: (VFIXUPIMMPDZrribkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*421822*/            0, /*End of Scope*/
/*421823*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FMIN_RND),// ->421858
/*421826*/            OPC_RecordChild0, // #1 = $src1
/*421827*/            OPC_RecordChild1, // #2 = $src2
/*421828*/            OPC_CheckChild2Integer, 8, 
/*421830*/            OPC_MoveParent,
/*421831*/            OPC_MoveChild2,
/*421832*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*421835*/            OPC_MoveChild0,
/*421836*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*421839*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*421841*/            OPC_CheckType, MVT::v16i32,
/*421843*/            OPC_MoveParent,
/*421844*/            OPC_MoveParent,
/*421845*/            OPC_CheckType, MVT::v8f64,
/*421847*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421849*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrrbkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMINPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*421858*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FMAX_RND),// ->421893
/*421861*/            OPC_RecordChild0, // #1 = $src1
/*421862*/            OPC_RecordChild1, // #2 = $src2
/*421863*/            OPC_CheckChild2Integer, 8, 
/*421865*/            OPC_MoveParent,
/*421866*/            OPC_MoveChild2,
/*421867*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*421870*/            OPC_MoveChild0,
/*421871*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*421874*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*421876*/            OPC_CheckType, MVT::v16i32,
/*421878*/            OPC_MoveParent,
/*421879*/            OPC_MoveParent,
/*421880*/            OPC_CheckType, MVT::v8f64,
/*421882*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrrbkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMAXPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*421893*/          /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::SCALEF),// ->421947
/*421896*/            OPC_RecordChild0, // #1 = $src1
/*421897*/            OPC_RecordChild1, // #2 = $src2
/*421898*/            OPC_CheckChild2Integer, 4, 
/*421900*/            OPC_MoveParent,
/*421901*/            OPC_MoveChild2,
/*421902*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*421905*/            OPC_MoveChild0,
/*421906*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*421909*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*421911*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->421929
/*421914*/              OPC_MoveParent,
/*421915*/              OPC_MoveParent,
/*421916*/              OPC_CheckType, MVT::v8f64,
/*421918*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421920*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VSCALEFPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*421929*/            /*SwitchType*/ 15, MVT::v8i32,// ->421946
/*421931*/              OPC_MoveParent,
/*421932*/              OPC_MoveParent,
/*421933*/              OPC_CheckType, MVT::v8f32,
/*421935*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*421937*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VSCALEFPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*421946*/            0, // EndSwitchType
/*421947*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VFPEXT_RND),// ->421982
/*421950*/            OPC_RecordChild0, // #1 = $src
/*421951*/            OPC_CheckChild0Type, MVT::v8f32,
/*421953*/            OPC_CheckChild1Integer, 8, 
/*421955*/            OPC_MoveParent,
/*421956*/            OPC_MoveChild2,
/*421957*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*421960*/            OPC_MoveChild0,
/*421961*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*421964*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*421966*/            OPC_CheckType, MVT::v16i32,
/*421968*/            OPC_MoveParent,
/*421969*/            OPC_MoveParent,
/*421970*/            OPC_CheckType, MVT::v8f64,
/*421972*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*421974*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrrbkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86vfpextRnd:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VCVTPS2PDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*421982*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::RSQRT28),// ->422048
/*421985*/            OPC_RecordChild0, // #1 = $src
/*421986*/            OPC_Scope, 29, /*->422017*/ // 2 children in Scope
/*421988*/              OPC_CheckChild1Integer, 4, 
/*421990*/              OPC_MoveParent,
/*421991*/              OPC_MoveChild2,
/*421992*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*421995*/              OPC_MoveChild0,
/*421996*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*421999*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422001*/              OPC_CheckType, MVT::v16i32,
/*422003*/              OPC_MoveParent,
/*422004*/              OPC_MoveParent,
/*422005*/              OPC_CheckType, MVT::v8f64,
/*422007*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*422009*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRSQRT28PDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*422017*/            /*Scope*/ 29, /*->422047*/
/*422018*/              OPC_CheckChild1Integer, 8, 
/*422020*/              OPC_MoveParent,
/*422021*/              OPC_MoveChild2,
/*422022*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422025*/              OPC_MoveChild0,
/*422026*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422029*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422031*/              OPC_CheckType, MVT::v16i32,
/*422033*/              OPC_MoveParent,
/*422034*/              OPC_MoveParent,
/*422035*/              OPC_CheckType, MVT::v8f64,
/*422037*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*422039*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZrbkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRSQRT28PDZrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*422047*/            0, /*End of Scope*/
/*422048*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::RCP28),// ->422114
/*422051*/            OPC_RecordChild0, // #1 = $src
/*422052*/            OPC_Scope, 29, /*->422083*/ // 2 children in Scope
/*422054*/              OPC_CheckChild1Integer, 4, 
/*422056*/              OPC_MoveParent,
/*422057*/              OPC_MoveChild2,
/*422058*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422061*/              OPC_MoveChild0,
/*422062*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422065*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422067*/              OPC_CheckType, MVT::v16i32,
/*422069*/              OPC_MoveParent,
/*422070*/              OPC_MoveParent,
/*422071*/              OPC_CheckType, MVT::v8f64,
/*422073*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*422075*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRCP28PDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*422083*/            /*Scope*/ 29, /*->422113*/
/*422084*/              OPC_CheckChild1Integer, 8, 
/*422086*/              OPC_MoveParent,
/*422087*/              OPC_MoveChild2,
/*422088*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422091*/              OPC_MoveChild0,
/*422092*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422095*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422097*/              OPC_CheckType, MVT::v16i32,
/*422099*/              OPC_MoveParent,
/*422100*/              OPC_MoveParent,
/*422101*/              OPC_CheckType, MVT::v8f64,
/*422103*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*422105*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZrbkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRCP28PDZrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*422113*/            0, /*End of Scope*/
/*422114*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::EXP2),// ->422180
/*422117*/            OPC_RecordChild0, // #1 = $src
/*422118*/            OPC_Scope, 29, /*->422149*/ // 2 children in Scope
/*422120*/              OPC_CheckChild1Integer, 4, 
/*422122*/              OPC_MoveParent,
/*422123*/              OPC_MoveChild2,
/*422124*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422127*/              OPC_MoveChild0,
/*422128*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422131*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422133*/              OPC_CheckType, MVT::v16i32,
/*422135*/              OPC_MoveParent,
/*422136*/              OPC_MoveParent,
/*422137*/              OPC_CheckType, MVT::v8f64,
/*422139*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*422141*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86exp2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VEXP2PDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*422149*/            /*Scope*/ 29, /*->422179*/
/*422150*/              OPC_CheckChild1Integer, 8, 
/*422152*/              OPC_MoveParent,
/*422153*/              OPC_MoveChild2,
/*422154*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422157*/              OPC_MoveChild0,
/*422158*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422161*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422163*/              OPC_CheckType, MVT::v16i32,
/*422165*/              OPC_MoveParent,
/*422166*/              OPC_MoveParent,
/*422167*/              OPC_CheckType, MVT::v8f64,
/*422169*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*422171*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZrbkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86exp2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VEXP2PDZrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*422179*/            0, /*End of Scope*/
/*422180*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::FGETEXP_RND),// ->422264
/*422183*/            OPC_RecordChild0, // #1 = $src
/*422184*/            OPC_Scope, 47, /*->422233*/ // 2 children in Scope
/*422186*/              OPC_CheckChild1Integer, 4, 
/*422188*/              OPC_MoveParent,
/*422189*/              OPC_MoveChild2,
/*422190*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422193*/              OPC_MoveChild0,
/*422194*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422197*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422199*/              OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->422216
/*422202*/                OPC_MoveParent,
/*422203*/                OPC_MoveParent,
/*422204*/                OPC_CheckType, MVT::v8f64,
/*422206*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*422208*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZrkz), 0,
                              MVT::v8f64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                          // Dst: (VGETEXPPDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*422216*/              /*SwitchType*/ 14, MVT::v8i32,// ->422232
/*422218*/                OPC_MoveParent,
/*422219*/                OPC_MoveParent,
/*422220*/                OPC_CheckType, MVT::v8f32,
/*422222*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422224*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256rkz), 0,
                              MVT::v8f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                          // Dst: (VGETEXPPSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*422232*/              0, // EndSwitchType
/*422233*/            /*Scope*/ 29, /*->422263*/
/*422234*/              OPC_CheckChild1Integer, 8, 
/*422236*/              OPC_MoveParent,
/*422237*/              OPC_MoveChild2,
/*422238*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422241*/              OPC_MoveChild0,
/*422242*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422245*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422247*/              OPC_CheckType, MVT::v16i32,
/*422249*/              OPC_MoveParent,
/*422250*/              OPC_MoveParent,
/*422251*/              OPC_CheckType, MVT::v8f64,
/*422253*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*422255*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZrbkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VGETEXPPDZrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*422263*/            0, /*End of Scope*/
/*422264*/          /*SwitchOpcode*/ 43, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->422310
/*422267*/            OPC_RecordChild0, // #1 = $src
/*422268*/            OPC_CheckChild1Integer, 0, 
/*422270*/            OPC_CheckChild1Type, MVT::iPTR,
/*422272*/            OPC_MoveParent,
/*422273*/            OPC_MoveChild2,
/*422274*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422277*/            OPC_MoveChild0,
/*422278*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422281*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422283*/            OPC_CheckType, MVT::v8i32,
/*422285*/            OPC_MoveParent,
/*422286*/            OPC_MoveParent,
/*422287*/            OPC_CheckType, MVT::v8f32,
/*422289*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422291*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*422294*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*422302*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rrkz), 0,
                          MVT::v8f32, 2/*#Ops*/, 0, 3, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] }), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMOVAPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, sub_ymm:{ *:[i32] }))
/*422310*/          0, // EndSwitchOpcode
/*422311*/        /*Scope*/ 50|128,1/*178*/, /*->422491*/
/*422313*/          OPC_RecordChild1, // #1 = $src3
/*422314*/          OPC_MoveChild1,
/*422315*/          OPC_SwitchOpcode /*2 cases */, 0|128,1/*128*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->422448
/*422320*/            OPC_RecordChild0, // #2 = $src1
/*422321*/            OPC_RecordChild1, // #3 = $src2
/*422322*/            OPC_Scope, 39, /*->422363*/ // 3 children in Scope
/*422324*/              OPC_MoveChild2,
/*422325*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*422328*/              OPC_CheckType, MVT::iPTR,
/*422330*/              OPC_MoveParent,
/*422331*/              OPC_MoveParent,
/*422332*/              OPC_MoveChild2,
/*422333*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422336*/              OPC_MoveChild0,
/*422337*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422340*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422342*/              OPC_CheckType, MVT::v8i32,
/*422344*/              OPC_MoveParent,
/*422345*/              OPC_MoveParent,
/*422346*/              OPC_CheckType, MVT::v8f32,
/*422348*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422350*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*422353*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rrkz), 0,
                            MVT::v8f32, 4/*#Ops*/, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VINSERTF32x4Z256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*422363*/            /*Scope*/ 41, /*->422405*/
/*422364*/              OPC_CheckChild1Type, MVT::v4f64,
/*422366*/              OPC_MoveChild2,
/*422367*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*422370*/              OPC_CheckType, MVT::iPTR,
/*422372*/              OPC_MoveParent,
/*422373*/              OPC_MoveParent,
/*422374*/              OPC_MoveChild2,
/*422375*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422378*/              OPC_MoveChild0,
/*422379*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422382*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422384*/              OPC_CheckType, MVT::v16i32,
/*422386*/              OPC_MoveParent,
/*422387*/              OPC_MoveParent,
/*422388*/              OPC_CheckType, MVT::v8f64,
/*422390*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*422392*/              OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*422395*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrrkz), 0,
                            MVT::v8f64, 4/*#Ops*/, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VINSERTF64x4Zrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*422405*/            /*Scope*/ 41, /*->422447*/
/*422406*/              OPC_CheckChild1Type, MVT::v2f64,
/*422408*/              OPC_MoveChild2,
/*422409*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*422412*/              OPC_CheckType, MVT::iPTR,
/*422414*/              OPC_MoveParent,
/*422415*/              OPC_MoveParent,
/*422416*/              OPC_MoveChild2,
/*422417*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422420*/              OPC_MoveChild0,
/*422421*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422424*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422426*/              OPC_CheckType, MVT::v16i32,
/*422428*/              OPC_MoveParent,
/*422429*/              OPC_MoveParent,
/*422430*/              OPC_CheckType, MVT::v8f64,
/*422432*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*422434*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*422437*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Zrrkz), 0,
                            MVT::v8f64, 4/*#Ops*/, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VINSERTF64x2Zrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*422447*/            0, /*End of Scope*/
/*422448*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->422490
/*422451*/            OPC_RecordChild0, // #2 = $src1
/*422452*/            OPC_MoveChild1,
/*422453*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*422456*/            OPC_CheckType, MVT::iPTR,
/*422458*/            OPC_MoveParent,
/*422459*/            OPC_MoveParent,
/*422460*/            OPC_MoveChild2,
/*422461*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422464*/            OPC_MoveChild0,
/*422465*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422468*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422470*/            OPC_CheckType, MVT::v8i32,
/*422472*/            OPC_MoveParent,
/*422473*/            OPC_MoveParent,
/*422474*/            OPC_CheckType, MVT::v8f32,
/*422476*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*422478*/            OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*422481*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x8Zrrkz), 0,
                          MVT::v8f32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx, (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VEXTRACTF32x8Zrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*422490*/          0, // EndSwitchOpcode
/*422491*/        /*Scope*/ 91|128,33/*4315*/, /*->426808*/
/*422493*/          OPC_MoveChild1,
/*422494*/          OPC_SwitchOpcode /*75 cases */, 22|128,4/*534*/, TARGET_VAL(ISD::BITCAST),// ->423033
/*422499*/            OPC_Scope, 96|128,2/*352*/, /*->422854*/ // 3 children in Scope
/*422502*/              OPC_MoveChild0,
/*422503*/              OPC_SwitchOpcode /*6 cases */, 33, TARGET_VAL(X86ISD::VBROADCAST),// ->422540
/*422507*/                OPC_RecordChild0, // #1 = $src
/*422508*/                OPC_CheckChild0Type, MVT::v2f64,
/*422510*/                OPC_CheckType, MVT::v4f64,
/*422512*/                OPC_MoveParent,
/*422513*/                OPC_MoveParent,
/*422514*/                OPC_MoveChild2,
/*422515*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422518*/                OPC_MoveChild0,
/*422519*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422522*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422524*/                OPC_CheckType, MVT::v8i32,
/*422526*/                OPC_MoveParent,
/*422527*/                OPC_MoveParent,
/*422528*/                OPC_CheckType, MVT::v8f32,
/*422530*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*422532*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Z256rkz), 0,
                              MVT::v8f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86VBroadcast:{ *:[v4f64] } VR128X:{ *:[v2f64] }:$src)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                          // Dst: (VBROADCASTF32X2Z256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*422540*/              /*SwitchOpcode*/ 66, TARGET_VAL(ISD::AND),// ->422609
/*422543*/                OPC_RecordChild0, // #1 = $src1
/*422544*/                OPC_RecordChild1, // #2 = $src2
/*422545*/                OPC_SwitchType /*2 cases */, 29, MVT::v4i64,// ->422577
/*422548*/                  OPC_MoveParent,
/*422549*/                  OPC_MoveParent,
/*422550*/                  OPC_MoveChild2,
/*422551*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422554*/                  OPC_MoveChild0,
/*422555*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422558*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422560*/                  OPC_CheckType, MVT::v8i32,
/*422562*/                  OPC_MoveParent,
/*422563*/                  OPC_MoveParent,
/*422564*/                  OPC_CheckType, MVT::v8f32,
/*422566*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422568*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPANDDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*422577*/                /*SwitchType*/ 29, MVT::v8i64,// ->422608
/*422579*/                  OPC_MoveParent,
/*422580*/                  OPC_MoveParent,
/*422581*/                  OPC_MoveChild2,
/*422582*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422585*/                  OPC_MoveChild0,
/*422586*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422589*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422591*/                  OPC_CheckType, MVT::v16i32,
/*422593*/                  OPC_MoveParent,
/*422594*/                  OPC_MoveParent,
/*422595*/                  OPC_CheckType, MVT::v8f64,
/*422597*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*422599*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPANDQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*422608*/                0, // EndSwitchType
/*422609*/              /*SwitchOpcode*/ 66, TARGET_VAL(ISD::OR),// ->422678
/*422612*/                OPC_RecordChild0, // #1 = $src1
/*422613*/                OPC_RecordChild1, // #2 = $src2
/*422614*/                OPC_SwitchType /*2 cases */, 29, MVT::v4i64,// ->422646
/*422617*/                  OPC_MoveParent,
/*422618*/                  OPC_MoveParent,
/*422619*/                  OPC_MoveChild2,
/*422620*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422623*/                  OPC_MoveChild0,
/*422624*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422627*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422629*/                  OPC_CheckType, MVT::v8i32,
/*422631*/                  OPC_MoveParent,
/*422632*/                  OPC_MoveParent,
/*422633*/                  OPC_CheckType, MVT::v8f32,
/*422635*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422637*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPORDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*422646*/                /*SwitchType*/ 29, MVT::v8i64,// ->422677
/*422648*/                  OPC_MoveParent,
/*422649*/                  OPC_MoveParent,
/*422650*/                  OPC_MoveChild2,
/*422651*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422654*/                  OPC_MoveChild0,
/*422655*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422658*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422660*/                  OPC_CheckType, MVT::v16i32,
/*422662*/                  OPC_MoveParent,
/*422663*/                  OPC_MoveParent,
/*422664*/                  OPC_CheckType, MVT::v8f64,
/*422666*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*422668*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPORQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*422677*/                0, // EndSwitchType
/*422678*/              /*SwitchOpcode*/ 66, TARGET_VAL(ISD::XOR),// ->422747
/*422681*/                OPC_RecordChild0, // #1 = $src1
/*422682*/                OPC_RecordChild1, // #2 = $src2
/*422683*/                OPC_SwitchType /*2 cases */, 29, MVT::v4i64,// ->422715
/*422686*/                  OPC_MoveParent,
/*422687*/                  OPC_MoveParent,
/*422688*/                  OPC_MoveChild2,
/*422689*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422692*/                  OPC_MoveChild0,
/*422693*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422696*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422698*/                  OPC_CheckType, MVT::v8i32,
/*422700*/                  OPC_MoveParent,
/*422701*/                  OPC_MoveParent,
/*422702*/                  OPC_CheckType, MVT::v8f32,
/*422704*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422706*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPXORDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*422715*/                /*SwitchType*/ 29, MVT::v8i64,// ->422746
/*422717*/                  OPC_MoveParent,
/*422718*/                  OPC_MoveParent,
/*422719*/                  OPC_MoveChild2,
/*422720*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422723*/                  OPC_MoveChild0,
/*422724*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422727*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422729*/                  OPC_CheckType, MVT::v16i32,
/*422731*/                  OPC_MoveParent,
/*422732*/                  OPC_MoveParent,
/*422733*/                  OPC_CheckType, MVT::v8f64,
/*422735*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*422737*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPXORQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*422746*/                0, // EndSwitchType
/*422747*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::ANDNP),// ->422816
/*422750*/                OPC_RecordChild0, // #1 = $src1
/*422751*/                OPC_RecordChild1, // #2 = $src2
/*422752*/                OPC_SwitchType /*2 cases */, 29, MVT::v4i64,// ->422784
/*422755*/                  OPC_MoveParent,
/*422756*/                  OPC_MoveParent,
/*422757*/                  OPC_MoveChild2,
/*422758*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422761*/                  OPC_MoveChild0,
/*422762*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422765*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422767*/                  OPC_CheckType, MVT::v8i32,
/*422769*/                  OPC_MoveParent,
/*422770*/                  OPC_MoveParent,
/*422771*/                  OPC_CheckType, MVT::v8f32,
/*422773*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422775*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPANDNDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*422784*/                /*SwitchType*/ 29, MVT::v8i64,// ->422815
/*422786*/                  OPC_MoveParent,
/*422787*/                  OPC_MoveParent,
/*422788*/                  OPC_MoveChild2,
/*422789*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*422792*/                  OPC_MoveChild0,
/*422793*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*422796*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*422798*/                  OPC_CheckType, MVT::v16i32,
/*422800*/                  OPC_MoveParent,
/*422801*/                  OPC_MoveParent,
/*422802*/                  OPC_CheckType, MVT::v8f64,
/*422804*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*422806*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                            // Dst: (VPANDNQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*422815*/                0, // EndSwitchType
/*422816*/              /*SwitchOpcode*/ 34, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->422853
/*422819*/                OPC_RecordChild0, // #1 = $src
/*422820*/                OPC_CheckChild1Integer, 0, 
/*422822*/                OPC_CheckChild1Type, MVT::iPTR,
/*422824*/                OPC_CheckType, MVT::v4f64,
/*422826*/                OPC_MoveParent,
/*422827*/                OPC_MoveParent,
/*422828*/                OPC_RecordChild2, // #2 = $src0
/*422829*/                OPC_CheckType, MVT::v8f32,
/*422831*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422833*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*422836*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::v4f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*422844*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rrk), 0,
                              MVT::v8f32, 3/*#Ops*/, 2, 0, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] })), VR256X:{ *:[v8f32] }:$src0) - Complexity = 14
                          // Dst: (VMOVAPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, sub_ymm:{ *:[i32] }))
/*422853*/              0, // EndSwitchOpcode
/*422854*/            /*Scope*/ 13|128,1/*141*/, /*->422997*/
/*422856*/              OPC_RecordChild0, // #1 = $ins
/*422857*/              OPC_MoveChild0,
/*422858*/              OPC_SwitchOpcode /*2 cases */, 101, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->422963
/*422862*/                OPC_RecordChild0, // #2 = $src1
/*422863*/                OPC_RecordChild1, // #3 = $src2
/*422864*/                OPC_Scope, 30, /*->422896*/ // 3 children in Scope
/*422866*/                  OPC_MoveChild2,
/*422867*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*422870*/                  OPC_CheckType, MVT::iPTR,
/*422872*/                  OPC_MoveParent,
/*422873*/                  OPC_CheckType, MVT::v4f64,
/*422875*/                  OPC_MoveParent,
/*422876*/                  OPC_MoveParent,
/*422877*/                  OPC_RecordChild2, // #4 = $src0
/*422878*/                  OPC_CheckType, MVT::v8f32,
/*422880*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422882*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*422885*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rrk), 0,
                                MVT::v8f32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v8f32] }:$src0) - Complexity = 12
                            // Dst: (VINSERTF32x4Z256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ins))
/*422896*/                /*Scope*/ 32, /*->422929*/
/*422897*/                  OPC_CheckChild1Type, MVT::v4f32,
/*422899*/                  OPC_MoveChild2,
/*422900*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*422903*/                  OPC_CheckType, MVT::iPTR,
/*422905*/                  OPC_MoveParent,
/*422906*/                  OPC_CheckType, MVT::v16f32,
/*422908*/                  OPC_MoveParent,
/*422909*/                  OPC_MoveParent,
/*422910*/                  OPC_RecordChild2, // #4 = $src0
/*422911*/                  OPC_CheckType, MVT::v8f64,
/*422913*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*422915*/                  OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*422918*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Zrrk), 0,
                                MVT::v8f64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v8f64] }:$src0) - Complexity = 12
                            // Dst: (VINSERTF64x2Zrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*422929*/                /*Scope*/ 32, /*->422962*/
/*422930*/                  OPC_CheckChild1Type, MVT::v8f32,
/*422932*/                  OPC_MoveChild2,
/*422933*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*422936*/                  OPC_CheckType, MVT::iPTR,
/*422938*/                  OPC_MoveParent,
/*422939*/                  OPC_CheckType, MVT::v16f32,
/*422941*/                  OPC_MoveParent,
/*422942*/                  OPC_MoveParent,
/*422943*/                  OPC_RecordChild2, // #4 = $src0
/*422944*/                  OPC_CheckType, MVT::v8f64,
/*422946*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*422948*/                  OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*422951*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrrk), 0,
                                MVT::v8f64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v8f64] }:$src0) - Complexity = 12
                            // Dst: (VINSERTF64x4Zrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*422962*/                0, /*End of Scope*/
/*422963*/              /*SwitchOpcode*/ 30, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->422996
/*422966*/                OPC_RecordChild0, // #2 = $src
/*422967*/                OPC_MoveChild1,
/*422968*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*422971*/                OPC_CheckType, MVT::iPTR,
/*422973*/                OPC_MoveParent,
/*422974*/                OPC_CheckType, MVT::v4f64,
/*422976*/                OPC_MoveParent,
/*422977*/                OPC_MoveParent,
/*422978*/                OPC_RecordChild2, // #3 = $src0
/*422979*/                OPC_CheckType, MVT::v8f32,
/*422981*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*422983*/                OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*422986*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x8Zrrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v8f32] }:$src0) - Complexity = 12
                          // Dst: (VEXTRACTF32x8Zrrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ext))
/*422996*/              0, // EndSwitchOpcode
/*422997*/            /*Scope*/ 34, /*->423032*/
/*422998*/              OPC_MoveChild0,
/*422999*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*423002*/              OPC_RecordChild0, // #1 = $src1
/*423003*/              OPC_RecordChild1, // #2 = $src2
/*423004*/              OPC_RecordChild2, // #3 = $src3
/*423005*/              OPC_MoveChild2,
/*423006*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423009*/              OPC_MoveParent,
/*423010*/              OPC_CheckType, MVT::v4f64,
/*423012*/              OPC_MoveParent,
/*423013*/              OPC_MoveParent,
/*423014*/              OPC_RecordChild2, // #4 = $src0
/*423015*/              OPC_CheckType, MVT::v8f32,
/*423017*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*423019*/              OPC_EmitConvertToTarget, 3,
/*423021*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rrik), 0,
                            MVT::v8f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 12
                        // Dst: (VSHUFF32X4Z256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*423032*/            0, /*End of Scope*/
/*423033*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::FADD_RND),// ->423075
/*423036*/            OPC_RecordChild0, // #1 = $src1
/*423037*/            OPC_RecordChild1, // #2 = $src2
/*423038*/            OPC_RecordChild2, // #3 = $rc
/*423039*/            OPC_MoveChild2,
/*423040*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423043*/            OPC_MoveParent,
/*423044*/            OPC_MoveParent,
/*423045*/            OPC_MoveChild2,
/*423046*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423049*/            OPC_MoveChild0,
/*423050*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423053*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423055*/            OPC_CheckType, MVT::v16i32,
/*423057*/            OPC_MoveParent,
/*423058*/            OPC_MoveParent,
/*423059*/            OPC_CheckType, MVT::v8f64,
/*423061*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423063*/            OPC_EmitConvertToTarget, 3,
/*423065*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrrbkz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86faddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VADDPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*423075*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::FMUL_RND),// ->423117
/*423078*/            OPC_RecordChild0, // #1 = $src1
/*423079*/            OPC_RecordChild1, // #2 = $src2
/*423080*/            OPC_RecordChild2, // #3 = $rc
/*423081*/            OPC_MoveChild2,
/*423082*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423085*/            OPC_MoveParent,
/*423086*/            OPC_MoveParent,
/*423087*/            OPC_MoveChild2,
/*423088*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423091*/            OPC_MoveChild0,
/*423092*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423095*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423097*/            OPC_CheckType, MVT::v16i32,
/*423099*/            OPC_MoveParent,
/*423100*/            OPC_MoveParent,
/*423101*/            OPC_CheckType, MVT::v8f64,
/*423103*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423105*/            OPC_EmitConvertToTarget, 3,
/*423107*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrrbkz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmulRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VMULPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*423117*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::FSUB_RND),// ->423159
/*423120*/            OPC_RecordChild0, // #1 = $src1
/*423121*/            OPC_RecordChild1, // #2 = $src2
/*423122*/            OPC_RecordChild2, // #3 = $rc
/*423123*/            OPC_MoveChild2,
/*423124*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423127*/            OPC_MoveParent,
/*423128*/            OPC_MoveParent,
/*423129*/            OPC_MoveChild2,
/*423130*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423133*/            OPC_MoveChild0,
/*423134*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423137*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423139*/            OPC_CheckType, MVT::v16i32,
/*423141*/            OPC_MoveParent,
/*423142*/            OPC_MoveParent,
/*423143*/            OPC_CheckType, MVT::v8f64,
/*423145*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423147*/            OPC_EmitConvertToTarget, 3,
/*423149*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrrbkz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSUBPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*423159*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::FDIV_RND),// ->423201
/*423162*/            OPC_RecordChild0, // #1 = $src1
/*423163*/            OPC_RecordChild1, // #2 = $src2
/*423164*/            OPC_RecordChild2, // #3 = $rc
/*423165*/            OPC_MoveChild2,
/*423166*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423169*/            OPC_MoveParent,
/*423170*/            OPC_MoveParent,
/*423171*/            OPC_MoveChild2,
/*423172*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423175*/            OPC_MoveChild0,
/*423176*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423179*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423181*/            OPC_CheckType, MVT::v16i32,
/*423183*/            OPC_MoveParent,
/*423184*/            OPC_MoveParent,
/*423185*/            OPC_CheckType, MVT::v8f64,
/*423187*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423189*/            OPC_EmitConvertToTarget, 3,
/*423191*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrrbkz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fdivRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VDIVPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*423201*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::SCALEF),// ->423281
/*423204*/            OPC_RecordChild0, // #1 = $src1
/*423205*/            OPC_RecordChild1, // #2 = $src2
/*423206*/            OPC_Scope, 37, /*->423245*/ // 2 children in Scope
/*423208*/              OPC_RecordChild2, // #3 = $rc
/*423209*/              OPC_MoveChild2,
/*423210*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423213*/              OPC_MoveParent,
/*423214*/              OPC_MoveParent,
/*423215*/              OPC_MoveChild2,
/*423216*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423219*/              OPC_MoveChild0,
/*423220*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423223*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423225*/              OPC_CheckType, MVT::v16i32,
/*423227*/              OPC_MoveParent,
/*423228*/              OPC_MoveParent,
/*423229*/              OPC_CheckType, MVT::v8f64,
/*423231*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423233*/              OPC_EmitConvertToTarget, 3,
/*423235*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrrbkz), 0,
                            MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VSCALEFPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*423245*/            /*Scope*/ 34, /*->423280*/
/*423246*/              OPC_CheckChild2Integer, 4, 
/*423248*/              OPC_MoveParent,
/*423249*/              OPC_RecordChild2, // #3 = $src0
/*423250*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->423265
/*423253*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423255*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                          // Dst: (VSCALEFPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*423265*/              /*SwitchType*/ 12, MVT::v8f32,// ->423279
/*423267*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*423269*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, 4:{ *:[i32] }), VR256X:{ *:[v8f32] }:$src0) - Complexity = 11
                          // Dst: (VSCALEFPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*423279*/              0, // EndSwitchType
/*423280*/            0, /*End of Scope*/
/*423281*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VPERMI),// ->423321
/*423284*/            OPC_RecordChild0, // #1 = $src1
/*423285*/            OPC_RecordChild1, // #2 = $src2
/*423286*/            OPC_MoveChild1,
/*423287*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423290*/            OPC_MoveParent,
/*423291*/            OPC_MoveParent,
/*423292*/            OPC_MoveChild2,
/*423293*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423296*/            OPC_MoveChild0,
/*423297*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423300*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423302*/            OPC_CheckType, MVT::v16i32,
/*423304*/            OPC_MoveParent,
/*423305*/            OPC_MoveParent,
/*423306*/            OPC_CheckType, MVT::v8f64,
/*423308*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423310*/            OPC_EmitConvertToTarget, 2,
/*423312*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrikz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPERMPDZrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*423321*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VPERMILPI),// ->423382
/*423324*/            OPC_RecordChild0, // #1 = $src1
/*423325*/            OPC_RecordChild1, // #2 = $src2
/*423326*/            OPC_MoveChild1,
/*423327*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423330*/            OPC_MoveParent,
/*423331*/            OPC_MoveParent,
/*423332*/            OPC_MoveChild2,
/*423333*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423336*/            OPC_MoveChild0,
/*423337*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423340*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423342*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->423362
/*423345*/              OPC_MoveParent,
/*423346*/              OPC_MoveParent,
/*423347*/              OPC_CheckType, MVT::v8f32,
/*423349*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*423351*/              OPC_EmitConvertToTarget, 2,
/*423353*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPERMILPSZ256rikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*423362*/            /*SwitchType*/ 17, MVT::v16i32,// ->423381
/*423364*/              OPC_MoveParent,
/*423365*/              OPC_MoveParent,
/*423366*/              OPC_CheckType, MVT::v8f64,
/*423368*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423370*/              OPC_EmitConvertToTarget, 2,
/*423372*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VPERMILPDZrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*423381*/            0, // EndSwitchType
/*423382*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FMADD_RND),// ->423426
/*423385*/            OPC_RecordChild0, // #1 = $src2
/*423386*/            OPC_RecordChild1, // #2 = $src1
/*423387*/            OPC_RecordChild2, // #3 = $src3
/*423388*/            OPC_RecordChild3, // #4 = $rc
/*423389*/            OPC_MoveChild3,
/*423390*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423393*/            OPC_MoveParent,
/*423394*/            OPC_MoveParent,
/*423395*/            OPC_MoveChild2,
/*423396*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423399*/            OPC_MoveChild0,
/*423400*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423403*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423405*/            OPC_CheckType, MVT::v16i32,
/*423407*/            OPC_MoveParent,
/*423408*/            OPC_MoveParent,
/*423409*/            OPC_CheckType, MVT::v8f64,
/*423411*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423413*/            OPC_EmitConvertToTarget, 4,
/*423415*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFMADD213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*423426*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FMSUB_RND),// ->423470
/*423429*/            OPC_RecordChild0, // #1 = $src2
/*423430*/            OPC_RecordChild1, // #2 = $src1
/*423431*/            OPC_RecordChild2, // #3 = $src3
/*423432*/            OPC_RecordChild3, // #4 = $rc
/*423433*/            OPC_MoveChild3,
/*423434*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423437*/            OPC_MoveParent,
/*423438*/            OPC_MoveParent,
/*423439*/            OPC_MoveChild2,
/*423440*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423443*/            OPC_MoveChild0,
/*423444*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423447*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423449*/            OPC_CheckType, MVT::v16i32,
/*423451*/            OPC_MoveParent,
/*423452*/            OPC_MoveParent,
/*423453*/            OPC_CheckType, MVT::v8f64,
/*423455*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423457*/            OPC_EmitConvertToTarget, 4,
/*423459*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFMSUB213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*423470*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FMADDSUB_RND),// ->423514
/*423473*/            OPC_RecordChild0, // #1 = $src2
/*423474*/            OPC_RecordChild1, // #2 = $src1
/*423475*/            OPC_RecordChild2, // #3 = $src3
/*423476*/            OPC_RecordChild3, // #4 = $rc
/*423477*/            OPC_MoveChild3,
/*423478*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423481*/            OPC_MoveParent,
/*423482*/            OPC_MoveParent,
/*423483*/            OPC_MoveChild2,
/*423484*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423487*/            OPC_MoveChild0,
/*423488*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423491*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423493*/            OPC_CheckType, MVT::v16i32,
/*423495*/            OPC_MoveParent,
/*423496*/            OPC_MoveParent,
/*423497*/            OPC_CheckType, MVT::v8f64,
/*423499*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423501*/            OPC_EmitConvertToTarget, 4,
/*423503*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFMADDSUB213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*423514*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FMSUBADD_RND),// ->423558
/*423517*/            OPC_RecordChild0, // #1 = $src2
/*423518*/            OPC_RecordChild1, // #2 = $src1
/*423519*/            OPC_RecordChild2, // #3 = $src3
/*423520*/            OPC_RecordChild3, // #4 = $rc
/*423521*/            OPC_MoveChild3,
/*423522*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423525*/            OPC_MoveParent,
/*423526*/            OPC_MoveParent,
/*423527*/            OPC_MoveChild2,
/*423528*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423531*/            OPC_MoveChild0,
/*423532*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423535*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423537*/            OPC_CheckType, MVT::v16i32,
/*423539*/            OPC_MoveParent,
/*423540*/            OPC_MoveParent,
/*423541*/            OPC_CheckType, MVT::v8f64,
/*423543*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423545*/            OPC_EmitConvertToTarget, 4,
/*423547*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFMSUBADD213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*423558*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FNMADD_RND),// ->423602
/*423561*/            OPC_RecordChild0, // #1 = $src2
/*423562*/            OPC_RecordChild1, // #2 = $src1
/*423563*/            OPC_RecordChild2, // #3 = $src3
/*423564*/            OPC_RecordChild3, // #4 = $rc
/*423565*/            OPC_MoveChild3,
/*423566*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423569*/            OPC_MoveParent,
/*423570*/            OPC_MoveParent,
/*423571*/            OPC_MoveChild2,
/*423572*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423575*/            OPC_MoveChild0,
/*423576*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423579*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423581*/            OPC_CheckType, MVT::v16i32,
/*423583*/            OPC_MoveParent,
/*423584*/            OPC_MoveParent,
/*423585*/            OPC_CheckType, MVT::v8f64,
/*423587*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423589*/            OPC_EmitConvertToTarget, 4,
/*423591*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFNMADD213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*423602*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FNMSUB_RND),// ->423646
/*423605*/            OPC_RecordChild0, // #1 = $src2
/*423606*/            OPC_RecordChild1, // #2 = $src1
/*423607*/            OPC_RecordChild2, // #3 = $src3
/*423608*/            OPC_RecordChild3, // #4 = $rc
/*423609*/            OPC_MoveChild3,
/*423610*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423613*/            OPC_MoveParent,
/*423614*/            OPC_MoveParent,
/*423615*/            OPC_MoveChild2,
/*423616*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423619*/            OPC_MoveChild0,
/*423620*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423623*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423625*/            OPC_CheckType, MVT::v16i32,
/*423627*/            OPC_MoveParent,
/*423628*/            OPC_MoveParent,
/*423629*/            OPC_CheckType, MVT::v8f64,
/*423631*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423633*/            OPC_EmitConvertToTarget, 4,
/*423635*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFNMSUB213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*423646*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VFPROUND_RND),// ->423688
/*423649*/            OPC_RecordChild0, // #1 = $src
/*423650*/            OPC_CheckChild0Type, MVT::v8f64,
/*423652*/            OPC_RecordChild1, // #2 = $rc
/*423653*/            OPC_MoveChild1,
/*423654*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423657*/            OPC_MoveParent,
/*423658*/            OPC_MoveParent,
/*423659*/            OPC_MoveChild2,
/*423660*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423663*/            OPC_MoveChild0,
/*423664*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423667*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423669*/            OPC_CheckType, MVT::v8i32,
/*423671*/            OPC_MoveParent,
/*423672*/            OPC_MoveParent,
/*423673*/            OPC_CheckType, MVT::v8f32,
/*423675*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423677*/            OPC_EmitConvertToTarget, 2,
/*423679*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrbkz), 0,
                          MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86vfproundRnd:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VCVTPD2PSZrrbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*423688*/          /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::SINT_TO_FP_RND),// ->423751
/*423691*/            OPC_RecordChild0, // #1 = $src
/*423692*/            OPC_CheckChild0Type, MVT::v8i64,
/*423694*/            OPC_RecordChild1, // #2 = $rc
/*423695*/            OPC_MoveChild1,
/*423696*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423699*/            OPC_MoveParent,
/*423700*/            OPC_MoveParent,
/*423701*/            OPC_MoveChild2,
/*423702*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423705*/            OPC_MoveChild0,
/*423706*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423709*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423711*/            OPC_SwitchType /*2 cases */, 17, MVT::v16i32,// ->423731
/*423714*/              OPC_MoveParent,
/*423715*/              OPC_MoveParent,
/*423716*/              OPC_CheckType, MVT::v8f64,
/*423718*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*423720*/              OPC_EmitConvertToTarget, 2,
/*423722*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrrbkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VSintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VCVTQQ2PDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*423731*/            /*SwitchType*/ 17, MVT::v8i32,// ->423750
/*423733*/              OPC_MoveParent,
/*423734*/              OPC_MoveParent,
/*423735*/              OPC_CheckType, MVT::v8f32,
/*423737*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*423739*/              OPC_EmitConvertToTarget, 2,
/*423741*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrrbkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VSintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VCVTQQ2PSZrrbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*423750*/            0, // EndSwitchType
/*423751*/          /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::UINT_TO_FP_RND),// ->423814
/*423754*/            OPC_RecordChild0, // #1 = $src
/*423755*/            OPC_CheckChild0Type, MVT::v8i64,
/*423757*/            OPC_RecordChild1, // #2 = $rc
/*423758*/            OPC_MoveChild1,
/*423759*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423762*/            OPC_MoveParent,
/*423763*/            OPC_MoveParent,
/*423764*/            OPC_MoveChild2,
/*423765*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423768*/            OPC_MoveChild0,
/*423769*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423772*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423774*/            OPC_SwitchType /*2 cases */, 17, MVT::v16i32,// ->423794
/*423777*/              OPC_MoveParent,
/*423778*/              OPC_MoveParent,
/*423779*/              OPC_CheckType, MVT::v8f64,
/*423781*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*423783*/              OPC_EmitConvertToTarget, 2,
/*423785*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrrbkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VUintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VCVTUQQ2PDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*423794*/            /*SwitchType*/ 17, MVT::v8i32,// ->423813
/*423796*/              OPC_MoveParent,
/*423797*/              OPC_MoveParent,
/*423798*/              OPC_CheckType, MVT::v8f32,
/*423800*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*423802*/              OPC_EmitConvertToTarget, 2,
/*423804*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrrbkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VUintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VCVTUQQ2PSZrrbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*423813*/            0, // EndSwitchType
/*423814*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FSQRT_RND),// ->423854
/*423817*/            OPC_RecordChild0, // #1 = $src
/*423818*/            OPC_RecordChild1, // #2 = $rc
/*423819*/            OPC_MoveChild1,
/*423820*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423823*/            OPC_MoveParent,
/*423824*/            OPC_MoveParent,
/*423825*/            OPC_MoveChild2,
/*423826*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423829*/            OPC_MoveChild0,
/*423830*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423833*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423835*/            OPC_CheckType, MVT::v16i32,
/*423837*/            OPC_MoveParent,
/*423838*/            OPC_MoveParent,
/*423839*/            OPC_CheckType, MVT::v8f64,
/*423841*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423843*/            OPC_EmitConvertToTarget, 2,
/*423845*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZrbkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fsqrtRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSQRTPDZrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*423854*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VREDUCE),// ->423915
/*423857*/            OPC_RecordChild0, // #1 = $src1
/*423858*/            OPC_RecordChild1, // #2 = $src2
/*423859*/            OPC_MoveChild1,
/*423860*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423863*/            OPC_MoveParent,
/*423864*/            OPC_MoveParent,
/*423865*/            OPC_MoveChild2,
/*423866*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423869*/            OPC_MoveChild0,
/*423870*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423873*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423875*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->423895
/*423878*/              OPC_MoveParent,
/*423879*/              OPC_MoveParent,
/*423880*/              OPC_CheckType, MVT::v8f32,
/*423882*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*423884*/              OPC_EmitConvertToTarget, 2,
/*423886*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rrikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VREDUCEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*423895*/            /*SwitchType*/ 17, MVT::v16i32,// ->423914
/*423897*/              OPC_MoveParent,
/*423898*/              OPC_MoveParent,
/*423899*/              OPC_CheckType, MVT::v8f64,
/*423901*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*423903*/              OPC_EmitConvertToTarget, 2,
/*423905*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VREDUCEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*423914*/            0, // EndSwitchType
/*423915*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VRNDSCALE),// ->423976
/*423918*/            OPC_RecordChild0, // #1 = $src1
/*423919*/            OPC_RecordChild1, // #2 = $src2
/*423920*/            OPC_MoveChild1,
/*423921*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423924*/            OPC_MoveParent,
/*423925*/            OPC_MoveParent,
/*423926*/            OPC_MoveChild2,
/*423927*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423930*/            OPC_MoveChild0,
/*423931*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423934*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423936*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->423956
/*423939*/              OPC_MoveParent,
/*423940*/              OPC_MoveParent,
/*423941*/              OPC_CheckType, MVT::v8f32,
/*423943*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*423945*/              OPC_EmitConvertToTarget, 2,
/*423947*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VRNDSCALEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*423956*/            /*SwitchType*/ 17, MVT::v16i32,// ->423975
/*423958*/              OPC_MoveParent,
/*423959*/              OPC_MoveParent,
/*423960*/              OPC_CheckType, MVT::v8f64,
/*423962*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423964*/              OPC_EmitConvertToTarget, 2,
/*423966*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VRNDSCALEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*423975*/            0, // EndSwitchType
/*423976*/          /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VGETMANT),// ->424037
/*423979*/            OPC_RecordChild0, // #1 = $src1
/*423980*/            OPC_RecordChild1, // #2 = $src2
/*423981*/            OPC_MoveChild1,
/*423982*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*423985*/            OPC_MoveParent,
/*423986*/            OPC_MoveParent,
/*423987*/            OPC_MoveChild2,
/*423988*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*423991*/            OPC_MoveChild0,
/*423992*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*423995*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*423997*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->424017
/*424000*/              OPC_MoveParent,
/*424001*/              OPC_MoveParent,
/*424002*/              OPC_CheckType, MVT::v8f32,
/*424004*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*424006*/              OPC_EmitConvertToTarget, 2,
/*424008*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rrikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VGETMANTPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*424017*/            /*SwitchType*/ 17, MVT::v16i32,// ->424036
/*424019*/              OPC_MoveParent,
/*424020*/              OPC_MoveParent,
/*424021*/              OPC_CheckType, MVT::v8f64,
/*424023*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424025*/              OPC_EmitConvertToTarget, 2,
/*424027*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VGETMANTPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*424036*/            0, // EndSwitchType
/*424037*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VRANGE),// ->424101
/*424040*/            OPC_RecordChild0, // #1 = $src1
/*424041*/            OPC_RecordChild1, // #2 = $src2
/*424042*/            OPC_RecordChild2, // #3 = $src3
/*424043*/            OPC_MoveChild2,
/*424044*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*424047*/            OPC_MoveParent,
/*424048*/            OPC_MoveParent,
/*424049*/            OPC_MoveChild2,
/*424050*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424053*/            OPC_MoveChild0,
/*424054*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424057*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424059*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i32,// ->424080
/*424062*/              OPC_MoveParent,
/*424063*/              OPC_MoveParent,
/*424064*/              OPC_CheckType, MVT::v8f64,
/*424066*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*424068*/              OPC_EmitConvertToTarget, 3,
/*424070*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrrikz), 0,
                            MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VRANGEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*424080*/            /*SwitchType*/ 18, MVT::v8i32,// ->424100
/*424082*/              OPC_MoveParent,
/*424083*/              OPC_MoveParent,
/*424084*/              OPC_CheckType, MVT::v8f32,
/*424086*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*424088*/              OPC_EmitConvertToTarget, 3,
/*424090*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rrikz), 0,
                            MVT::v8f32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VRANGEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*424100*/            0, // EndSwitchType
/*424101*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::SHUF128),// ->424143
/*424104*/            OPC_RecordChild0, // #1 = $src1
/*424105*/            OPC_RecordChild1, // #2 = $src2
/*424106*/            OPC_RecordChild2, // #3 = $src3
/*424107*/            OPC_MoveChild2,
/*424108*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*424111*/            OPC_MoveParent,
/*424112*/            OPC_MoveParent,
/*424113*/            OPC_MoveChild2,
/*424114*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424117*/            OPC_MoveChild0,
/*424118*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424121*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424123*/            OPC_CheckType, MVT::v16i32,
/*424125*/            OPC_MoveParent,
/*424126*/            OPC_MoveParent,
/*424127*/            OPC_CheckType, MVT::v8f64,
/*424129*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424131*/            OPC_EmitConvertToTarget, 3,
/*424133*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrrikz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSHUFF64X2Zrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*424143*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::SHUFP),// ->424207
/*424146*/            OPC_RecordChild0, // #1 = $src1
/*424147*/            OPC_RecordChild1, // #2 = $src2
/*424148*/            OPC_RecordChild2, // #3 = $src3
/*424149*/            OPC_MoveChild2,
/*424150*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*424153*/            OPC_MoveParent,
/*424154*/            OPC_MoveParent,
/*424155*/            OPC_MoveChild2,
/*424156*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424159*/            OPC_MoveChild0,
/*424160*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424163*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424165*/            OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->424186
/*424168*/              OPC_MoveParent,
/*424169*/              OPC_MoveParent,
/*424170*/              OPC_CheckType, MVT::v8f32,
/*424172*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*424174*/              OPC_EmitConvertToTarget, 3,
/*424176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rrikz), 0,
                            MVT::v8f32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VSHUFPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*424186*/            /*SwitchType*/ 18, MVT::v16i32,// ->424206
/*424188*/              OPC_MoveParent,
/*424189*/              OPC_MoveParent,
/*424190*/              OPC_CheckType, MVT::v8f64,
/*424192*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424194*/              OPC_EmitConvertToTarget, 3,
/*424196*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrrikz), 0,
                            MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VSHUFPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*424206*/            0, // EndSwitchType
/*424207*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VREDUCE_RND),// ->424237
/*424210*/            OPC_RecordChild0, // #1 = $src1
/*424211*/            OPC_RecordChild1, // #2 = $src2
/*424212*/            OPC_MoveChild1,
/*424213*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*424216*/            OPC_MoveParent,
/*424217*/            OPC_CheckChild2Integer, 8, 
/*424219*/            OPC_MoveParent,
/*424220*/            OPC_RecordChild2, // #3 = $src0
/*424221*/            OPC_CheckType, MVT::v8f64,
/*424223*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*424225*/            OPC_EmitConvertToTarget, 2,
/*424227*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrribk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduceRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 14
                      // Dst: (VREDUCEPDZrribk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*424237*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VRNDSCALE_RND),// ->424267
/*424240*/            OPC_RecordChild0, // #1 = $src1
/*424241*/            OPC_RecordChild1, // #2 = $src2
/*424242*/            OPC_MoveChild1,
/*424243*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*424246*/            OPC_MoveParent,
/*424247*/            OPC_CheckChild2Integer, 8, 
/*424249*/            OPC_MoveParent,
/*424250*/            OPC_RecordChild2, // #3 = $src0
/*424251*/            OPC_CheckType, MVT::v8f64,
/*424253*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424255*/            OPC_EmitConvertToTarget, 2,
/*424257*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrribk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScaleRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 14
                      // Dst: (VRNDSCALEPDZrribk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*424267*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VGETMANT_RND),// ->424297
/*424270*/            OPC_RecordChild0, // #1 = $src1
/*424271*/            OPC_RecordChild1, // #2 = $src2
/*424272*/            OPC_MoveChild1,
/*424273*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*424276*/            OPC_MoveParent,
/*424277*/            OPC_CheckChild2Integer, 8, 
/*424279*/            OPC_MoveParent,
/*424280*/            OPC_RecordChild2, // #3 = $src0
/*424281*/            OPC_CheckType, MVT::v8f64,
/*424283*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424285*/            OPC_EmitConvertToTarget, 2,
/*424287*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrribk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMantRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 14
                      // Dst: (VGETMANTPDZrribk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*424297*/          /*SwitchOpcode*/ 29, TARGET_VAL(X86ISD::VRANGE_RND),// ->424329
/*424300*/            OPC_RecordChild0, // #1 = $src1
/*424301*/            OPC_RecordChild1, // #2 = $src2
/*424302*/            OPC_RecordChild2, // #3 = $src3
/*424303*/            OPC_MoveChild2,
/*424304*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*424307*/            OPC_MoveParent,
/*424308*/            OPC_CheckChild3Integer, 8, 
/*424310*/            OPC_MoveParent,
/*424311*/            OPC_RecordChild2, // #4 = $src0
/*424312*/            OPC_CheckType, MVT::v8f64,
/*424314*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*424316*/            OPC_EmitConvertToTarget, 3,
/*424318*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrribk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRangeRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 14
                      // Dst: (VRANGEPDZrribk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*424329*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VFIXUPIMM),// ->424408
/*424332*/            OPC_RecordChild0, // #1 = $src1
/*424333*/            OPC_RecordChild1, // #2 = $src2
/*424334*/            OPC_RecordChild2, // #3 = $src3
/*424335*/            OPC_RecordChild3, // #4 = $src4
/*424336*/            OPC_MoveChild3,
/*424337*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*424340*/            OPC_MoveParent,
/*424341*/            OPC_Scope, 41, /*->424384*/ // 2 children in Scope
/*424343*/              OPC_CheckChild4Integer, 4, 
/*424345*/              OPC_MoveParent,
/*424346*/              OPC_CheckChild2Same, 1,
/*424348*/              OPC_SwitchType /*2 cases */, 15, MVT::v8f32,// ->424366
/*424351*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*424353*/                OPC_EmitConvertToTarget, 4,
/*424355*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rrik), 0,
                              MVT::v8f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR256X:{ *:[v8f32] }:$src1) - Complexity = 14
                          // Dst: (VFIXUPIMMPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*424366*/              /*SwitchType*/ 15, MVT::v8f64,// ->424383
/*424368*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424370*/                OPC_EmitConvertToTarget, 4,
/*424372*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrrik), 0,
                              MVT::v8f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src1) - Complexity = 14
                          // Dst: (VFIXUPIMMPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*424383*/              0, // EndSwitchType
/*424384*/            /*Scope*/ 22, /*->424407*/
/*424385*/              OPC_CheckChild4Integer, 8, 
/*424387*/              OPC_MoveParent,
/*424388*/              OPC_CheckChild2Same, 1,
/*424390*/              OPC_CheckType, MVT::v8f64,
/*424392*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424394*/              OPC_EmitConvertToTarget, 4,
/*424396*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrribk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src1) - Complexity = 14
                        // Dst: (VFIXUPIMMPDZrribk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*424407*/            0, /*End of Scope*/
/*424408*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(X86ISD::VBROADCAST),// ->424557
/*424412*/            OPC_RecordChild0, // #1 = $src
/*424413*/            OPC_Scope, 29, /*->424444*/ // 4 children in Scope
/*424415*/              OPC_CheckChild0Type, MVT::v4f32,
/*424417*/              OPC_MoveParent,
/*424418*/              OPC_MoveChild2,
/*424419*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424422*/              OPC_MoveChild0,
/*424423*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424426*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424428*/              OPC_CheckType, MVT::v8i32,
/*424430*/              OPC_MoveParent,
/*424431*/              OPC_MoveParent,
/*424432*/              OPC_CheckType, MVT::v8f32,
/*424434*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424436*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256rkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f32] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VBROADCASTSSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*424444*/            /*Scope*/ 29, /*->424474*/
/*424445*/              OPC_CheckChild0Type, MVT::v2f64,
/*424447*/              OPC_MoveParent,
/*424448*/              OPC_MoveChild2,
/*424449*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424452*/              OPC_MoveChild0,
/*424453*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424456*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424458*/              OPC_CheckType, MVT::v16i32,
/*424460*/              OPC_MoveParent,
/*424461*/              OPC_MoveParent,
/*424462*/              OPC_CheckType, MVT::v8f64,
/*424464*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424466*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f64] } VR128X:{ *:[v2f64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VBROADCASTSDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*424474*/            /*Scope*/ 40, /*->424515*/
/*424475*/              OPC_CheckChild0Type, MVT::f32,
/*424477*/              OPC_MoveParent,
/*424478*/              OPC_MoveChild2,
/*424479*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424482*/              OPC_MoveChild0,
/*424483*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424486*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424488*/              OPC_CheckType, MVT::v8i32,
/*424490*/              OPC_MoveParent,
/*424491*/              OPC_MoveParent,
/*424492*/              OPC_CheckType, MVT::v8f32,
/*424494*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424496*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*424499*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*424507*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256rkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f32] } FR32X:{ *:[f32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VBROADCASTSSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*424515*/            /*Scope*/ 40, /*->424556*/
/*424516*/              OPC_CheckChild0Type, MVT::f64,
/*424518*/              OPC_MoveParent,
/*424519*/              OPC_MoveChild2,
/*424520*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424523*/              OPC_MoveChild0,
/*424524*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424527*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424529*/              OPC_CheckType, MVT::v16i32,
/*424531*/              OPC_MoveParent,
/*424532*/              OPC_MoveParent,
/*424533*/              OPC_CheckType, MVT::v8f64,
/*424535*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424537*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*424540*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*424548*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f64] } FR64X:{ *:[f64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VBROADCASTSDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*424556*/            0, /*End of Scope*/
/*424557*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VPERMV3),// ->424645
/*424560*/            OPC_RecordChild0, // #1 = $src1
/*424561*/            OPC_Scope, 51, /*->424614*/ // 2 children in Scope
/*424563*/              OPC_RecordChild1, // #2 = $src2
/*424564*/              OPC_RecordChild2, // #3 = $src3
/*424565*/              OPC_MoveParent,
/*424566*/              OPC_MoveChild2,
/*424567*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424570*/              OPC_MoveChild0,
/*424571*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424574*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424576*/              OPC_SwitchType /*2 cases */, 16, MVT::v8i32,// ->424595
/*424579*/                OPC_MoveParent,
/*424580*/                OPC_MoveParent,
/*424581*/                OPC_CheckType, MVT::v8f32,
/*424583*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424585*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS256rrkz), 0,
                              MVT::v8f32, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8f32] }:$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPERMT2PS256rrkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*424595*/              /*SwitchType*/ 16, MVT::v16i32,// ->424613
/*424597*/                OPC_MoveParent,
/*424598*/                OPC_MoveParent,
/*424599*/                OPC_CheckType, MVT::v8f64,
/*424601*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424603*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PDrrkz), 0,
                              MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8f64] }:$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPERMT2PDrrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*424613*/              0, // EndSwitchType
/*424614*/            /*Scope*/ 29, /*->424644*/
/*424615*/              OPC_MoveChild1,
/*424616*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424619*/              OPC_RecordChild0, // #2 = $src1
/*424620*/              OPC_CheckChild0Type, MVT::v4i64,
/*424622*/              OPC_MoveParent,
/*424623*/              OPC_RecordChild2, // #3 = $src3
/*424624*/              OPC_MoveParent,
/*424625*/              OPC_MoveChild2,
/*424626*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424629*/              OPC_CheckChild0Same, 2,
/*424631*/              OPC_MoveParent,
/*424632*/              OPC_CheckType, MVT::v8f32,
/*424634*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (bitconvert:{ *:[v8i32] } VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v8f32] }:$src3), (bitconvert:{ *:[v8f32] } VR256X:{ *:[v4i64] }:$src1)) - Complexity = 12
                        // Dst: (VPERMI2PS256rrk:{ *:[v8f32] } VR256X:{ *:[v4i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*424644*/            0, /*End of Scope*/
/*424645*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FADD),// ->424697
/*424648*/            OPC_RecordChild0, // #1 = $src1
/*424649*/            OPC_RecordChild1, // #2 = $src2
/*424650*/            OPC_MoveParent,
/*424651*/            OPC_MoveChild2,
/*424652*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424655*/            OPC_MoveChild0,
/*424656*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424659*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424661*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->424679
/*424664*/              OPC_MoveParent,
/*424665*/              OPC_MoveParent,
/*424666*/              OPC_CheckType, MVT::v8f64,
/*424668*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424670*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VADDPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*424679*/            /*SwitchType*/ 15, MVT::v8i32,// ->424696
/*424681*/              OPC_MoveParent,
/*424682*/              OPC_MoveParent,
/*424683*/              OPC_CheckType, MVT::v8f32,
/*424685*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*424687*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VADDPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*424696*/            0, // EndSwitchType
/*424697*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FMUL),// ->424749
/*424700*/            OPC_RecordChild0, // #1 = $src1
/*424701*/            OPC_RecordChild1, // #2 = $src2
/*424702*/            OPC_MoveParent,
/*424703*/            OPC_MoveChild2,
/*424704*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424707*/            OPC_MoveChild0,
/*424708*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424711*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424713*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->424731
/*424716*/              OPC_MoveParent,
/*424717*/              OPC_MoveParent,
/*424718*/              OPC_CheckType, MVT::v8f64,
/*424720*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424722*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMULPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*424731*/            /*SwitchType*/ 15, MVT::v8i32,// ->424748
/*424733*/              OPC_MoveParent,
/*424734*/              OPC_MoveParent,
/*424735*/              OPC_CheckType, MVT::v8f32,
/*424737*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*424739*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMULPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*424748*/            0, // EndSwitchType
/*424749*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FSUB),// ->424801
/*424752*/            OPC_RecordChild0, // #1 = $src1
/*424753*/            OPC_RecordChild1, // #2 = $src2
/*424754*/            OPC_MoveParent,
/*424755*/            OPC_MoveChild2,
/*424756*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424759*/            OPC_MoveChild0,
/*424760*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424763*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424765*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->424783
/*424768*/              OPC_MoveParent,
/*424769*/              OPC_MoveParent,
/*424770*/              OPC_CheckType, MVT::v8f64,
/*424772*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424774*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VSUBPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*424783*/            /*SwitchType*/ 15, MVT::v8i32,// ->424800
/*424785*/              OPC_MoveParent,
/*424786*/              OPC_MoveParent,
/*424787*/              OPC_CheckType, MVT::v8f32,
/*424789*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*424791*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VSUBPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*424800*/            0, // EndSwitchType
/*424801*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FDIV),// ->424853
/*424804*/            OPC_RecordChild0, // #1 = $src1
/*424805*/            OPC_RecordChild1, // #2 = $src2
/*424806*/            OPC_MoveParent,
/*424807*/            OPC_MoveChild2,
/*424808*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424811*/            OPC_MoveChild0,
/*424812*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424815*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424817*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->424835
/*424820*/              OPC_MoveParent,
/*424821*/              OPC_MoveParent,
/*424822*/              OPC_CheckType, MVT::v8f64,
/*424824*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424826*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VDIVPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*424835*/            /*SwitchType*/ 15, MVT::v8i32,// ->424852
/*424837*/              OPC_MoveParent,
/*424838*/              OPC_MoveParent,
/*424839*/              OPC_CheckType, MVT::v8f32,
/*424841*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*424843*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VDIVPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*424852*/            0, // EndSwitchType
/*424853*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::FMIN),// ->424905
/*424856*/            OPC_RecordChild0, // #1 = $src1
/*424857*/            OPC_RecordChild1, // #2 = $src2
/*424858*/            OPC_MoveParent,
/*424859*/            OPC_MoveChild2,
/*424860*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424863*/            OPC_MoveChild0,
/*424864*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424867*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424869*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->424887
/*424872*/              OPC_MoveParent,
/*424873*/              OPC_MoveParent,
/*424874*/              OPC_CheckType, MVT::v8f64,
/*424876*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424878*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMINPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*424887*/            /*SwitchType*/ 15, MVT::v8i32,// ->424904
/*424889*/              OPC_MoveParent,
/*424890*/              OPC_MoveParent,
/*424891*/              OPC_CheckType, MVT::v8f32,
/*424893*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*424895*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMINPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*424904*/            0, // EndSwitchType
/*424905*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::FMAX),// ->424957
/*424908*/            OPC_RecordChild0, // #1 = $src1
/*424909*/            OPC_RecordChild1, // #2 = $src2
/*424910*/            OPC_MoveParent,
/*424911*/            OPC_MoveChild2,
/*424912*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424915*/            OPC_MoveChild0,
/*424916*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424919*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424921*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->424939
/*424924*/              OPC_MoveParent,
/*424925*/              OPC_MoveParent,
/*424926*/              OPC_CheckType, MVT::v8f64,
/*424928*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424930*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMAXPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*424939*/            /*SwitchType*/ 15, MVT::v8i32,// ->424956
/*424941*/              OPC_MoveParent,
/*424942*/              OPC_MoveParent,
/*424943*/              OPC_CheckType, MVT::v8f32,
/*424945*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*424947*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMAXPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*424956*/            0, // EndSwitchType
/*424957*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::FMINC),// ->425009
/*424960*/            OPC_RecordChild0, // #1 = $src1
/*424961*/            OPC_RecordChild1, // #2 = $src2
/*424962*/            OPC_MoveParent,
/*424963*/            OPC_MoveChild2,
/*424964*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*424967*/            OPC_MoveChild0,
/*424968*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*424971*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*424973*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->424991
/*424976*/              OPC_MoveParent,
/*424977*/              OPC_MoveParent,
/*424978*/              OPC_CheckType, MVT::v8f64,
/*424980*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424982*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMINCPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*424991*/            /*SwitchType*/ 15, MVT::v8i32,// ->425008
/*424993*/              OPC_MoveParent,
/*424994*/              OPC_MoveParent,
/*424995*/              OPC_CheckType, MVT::v8f32,
/*424997*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*424999*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMINCPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*425008*/            0, // EndSwitchType
/*425009*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::FMAXC),// ->425061
/*425012*/            OPC_RecordChild0, // #1 = $src1
/*425013*/            OPC_RecordChild1, // #2 = $src2
/*425014*/            OPC_MoveParent,
/*425015*/            OPC_MoveChild2,
/*425016*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425019*/            OPC_MoveChild0,
/*425020*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425023*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425025*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->425043
/*425028*/              OPC_MoveParent,
/*425029*/              OPC_MoveParent,
/*425030*/              OPC_CheckType, MVT::v8f64,
/*425032*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425034*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMAXCPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*425043*/            /*SwitchType*/ 15, MVT::v8i32,// ->425060
/*425045*/              OPC_MoveParent,
/*425046*/              OPC_MoveParent,
/*425047*/              OPC_CheckType, MVT::v8f32,
/*425049*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425051*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VMAXCPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*425060*/            0, // EndSwitchType
/*425061*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VPERMV),// ->425113
/*425064*/            OPC_RecordChild0, // #1 = $src1
/*425065*/            OPC_RecordChild1, // #2 = $src2
/*425066*/            OPC_MoveParent,
/*425067*/            OPC_MoveChild2,
/*425068*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425071*/            OPC_MoveChild0,
/*425072*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425075*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425077*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->425095
/*425080*/              OPC_MoveParent,
/*425081*/              OPC_MoveParent,
/*425082*/              OPC_CheckType, MVT::v8f32,
/*425084*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425086*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*425095*/            /*SwitchType*/ 15, MVT::v16i32,// ->425112
/*425097*/              OPC_MoveParent,
/*425098*/              OPC_MoveParent,
/*425099*/              OPC_CheckType, MVT::v8f64,
/*425101*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425103*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*425112*/            0, // EndSwitchType
/*425113*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VPERMILPV),// ->425165
/*425116*/            OPC_RecordChild0, // #1 = $src1
/*425117*/            OPC_RecordChild1, // #2 = $src2
/*425118*/            OPC_MoveParent,
/*425119*/            OPC_MoveChild2,
/*425120*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425123*/            OPC_MoveChild0,
/*425124*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425127*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425129*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->425147
/*425132*/              OPC_MoveParent,
/*425133*/              OPC_MoveParent,
/*425134*/              OPC_CheckType, MVT::v8f32,
/*425136*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425138*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMILPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*425147*/            /*SwitchType*/ 15, MVT::v16i32,// ->425164
/*425149*/              OPC_MoveParent,
/*425150*/              OPC_MoveParent,
/*425151*/              OPC_CheckType, MVT::v8f64,
/*425153*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425155*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMILPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*425164*/            0, // EndSwitchType
/*425165*/          /*SwitchOpcode*/ 52, TARGET_VAL(ISD::FMA),// ->425220
/*425168*/            OPC_RecordChild0, // #1 = $src2
/*425169*/            OPC_RecordChild1, // #2 = $src1
/*425170*/            OPC_RecordChild2, // #3 = $src3
/*425171*/            OPC_MoveParent,
/*425172*/            OPC_MoveChild2,
/*425173*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425176*/            OPC_MoveChild0,
/*425177*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425180*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425182*/            OPC_SwitchType /*2 cases */, 16, MVT::v8i32,// ->425201
/*425185*/              OPC_MoveParent,
/*425186*/              OPC_MoveParent,
/*425187*/              OPC_CheckType, MVT::v8f32,
/*425189*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425191*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256rkz), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMADD213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*425201*/            /*SwitchType*/ 16, MVT::v16i32,// ->425219
/*425203*/              OPC_MoveParent,
/*425204*/              OPC_MoveParent,
/*425205*/              OPC_CheckType, MVT::v8f64,
/*425207*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425209*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZrkz), 0,
                            MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMADD213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*425219*/            0, // EndSwitchType
/*425220*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::FMSUB),// ->425275
/*425223*/            OPC_RecordChild0, // #1 = $src2
/*425224*/            OPC_RecordChild1, // #2 = $src1
/*425225*/            OPC_RecordChild2, // #3 = $src3
/*425226*/            OPC_MoveParent,
/*425227*/            OPC_MoveChild2,
/*425228*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425231*/            OPC_MoveChild0,
/*425232*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425235*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425237*/            OPC_SwitchType /*2 cases */, 16, MVT::v8i32,// ->425256
/*425240*/              OPC_MoveParent,
/*425241*/              OPC_MoveParent,
/*425242*/              OPC_CheckType, MVT::v8f32,
/*425244*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425246*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ256rkz), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMSUB213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*425256*/            /*SwitchType*/ 16, MVT::v16i32,// ->425274
/*425258*/              OPC_MoveParent,
/*425259*/              OPC_MoveParent,
/*425260*/              OPC_CheckType, MVT::v8f64,
/*425262*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425264*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZrkz), 0,
                            MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMSUB213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*425274*/            0, // EndSwitchType
/*425275*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::FMADDSUB),// ->425330
/*425278*/            OPC_RecordChild0, // #1 = $src2
/*425279*/            OPC_RecordChild1, // #2 = $src1
/*425280*/            OPC_RecordChild2, // #3 = $src3
/*425281*/            OPC_MoveParent,
/*425282*/            OPC_MoveChild2,
/*425283*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425286*/            OPC_MoveChild0,
/*425287*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425290*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425292*/            OPC_SwitchType /*2 cases */, 16, MVT::v8i32,// ->425311
/*425295*/              OPC_MoveParent,
/*425296*/              OPC_MoveParent,
/*425297*/              OPC_CheckType, MVT::v8f32,
/*425299*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425301*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ256rkz), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMADDSUB213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*425311*/            /*SwitchType*/ 16, MVT::v16i32,// ->425329
/*425313*/              OPC_MoveParent,
/*425314*/              OPC_MoveParent,
/*425315*/              OPC_CheckType, MVT::v8f64,
/*425317*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425319*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZrkz), 0,
                            MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMADDSUB213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*425329*/            0, // EndSwitchType
/*425330*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::FMSUBADD),// ->425385
/*425333*/            OPC_RecordChild0, // #1 = $src2
/*425334*/            OPC_RecordChild1, // #2 = $src1
/*425335*/            OPC_RecordChild2, // #3 = $src3
/*425336*/            OPC_MoveParent,
/*425337*/            OPC_MoveChild2,
/*425338*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425341*/            OPC_MoveChild0,
/*425342*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425345*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425347*/            OPC_SwitchType /*2 cases */, 16, MVT::v8i32,// ->425366
/*425350*/              OPC_MoveParent,
/*425351*/              OPC_MoveParent,
/*425352*/              OPC_CheckType, MVT::v8f32,
/*425354*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425356*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ256rkz), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMSUBADD213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*425366*/            /*SwitchType*/ 16, MVT::v16i32,// ->425384
/*425368*/              OPC_MoveParent,
/*425369*/              OPC_MoveParent,
/*425370*/              OPC_CheckType, MVT::v8f64,
/*425372*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425374*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZrkz), 0,
                            MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFMSUBADD213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*425384*/            0, // EndSwitchType
/*425385*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::FNMADD),// ->425440
/*425388*/            OPC_RecordChild0, // #1 = $src2
/*425389*/            OPC_RecordChild1, // #2 = $src1
/*425390*/            OPC_RecordChild2, // #3 = $src3
/*425391*/            OPC_MoveParent,
/*425392*/            OPC_MoveChild2,
/*425393*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425396*/            OPC_MoveChild0,
/*425397*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425400*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425402*/            OPC_SwitchType /*2 cases */, 16, MVT::v8i32,// ->425421
/*425405*/              OPC_MoveParent,
/*425406*/              OPC_MoveParent,
/*425407*/              OPC_CheckType, MVT::v8f32,
/*425409*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425411*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ256rkz), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFNMADD213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*425421*/            /*SwitchType*/ 16, MVT::v16i32,// ->425439
/*425423*/              OPC_MoveParent,
/*425424*/              OPC_MoveParent,
/*425425*/              OPC_CheckType, MVT::v8f64,
/*425427*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425429*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZrkz), 0,
                            MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFNMADD213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*425439*/            0, // EndSwitchType
/*425440*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::FNMSUB),// ->425495
/*425443*/            OPC_RecordChild0, // #1 = $src2
/*425444*/            OPC_RecordChild1, // #2 = $src1
/*425445*/            OPC_RecordChild2, // #3 = $src3
/*425446*/            OPC_MoveParent,
/*425447*/            OPC_MoveChild2,
/*425448*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425451*/            OPC_MoveChild0,
/*425452*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425455*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425457*/            OPC_SwitchType /*2 cases */, 16, MVT::v8i32,// ->425476
/*425460*/              OPC_MoveParent,
/*425461*/              OPC_MoveParent,
/*425462*/              OPC_CheckType, MVT::v8f32,
/*425464*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425466*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ256rkz), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFNMSUB213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*425476*/            /*SwitchType*/ 16, MVT::v16i32,// ->425494
/*425478*/              OPC_MoveParent,
/*425479*/              OPC_MoveParent,
/*425480*/              OPC_CheckType, MVT::v8f64,
/*425482*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425484*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZrkz), 0,
                            MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VFNMSUB213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*425494*/            0, // EndSwitchType
/*425495*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::FP_ROUND),// ->425526
/*425498*/            OPC_RecordChild0, // #1 = $src
/*425499*/            OPC_MoveParent,
/*425500*/            OPC_MoveChild2,
/*425501*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425504*/            OPC_MoveChild0,
/*425505*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425508*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425510*/            OPC_CheckType, MVT::v8i32,
/*425512*/            OPC_MoveParent,
/*425513*/            OPC_MoveParent,
/*425514*/            OPC_CheckType, MVT::v8f32,
/*425516*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425518*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrkz), 0,
                          MVT::v8f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fpround:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTPD2PSZrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*425526*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::FP_EXTEND),// ->425557
/*425529*/            OPC_RecordChild0, // #1 = $src
/*425530*/            OPC_MoveParent,
/*425531*/            OPC_MoveChild2,
/*425532*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425535*/            OPC_MoveChild0,
/*425536*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425539*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425541*/            OPC_CheckType, MVT::v16i32,
/*425543*/            OPC_MoveParent,
/*425544*/            OPC_MoveParent,
/*425545*/            OPC_CheckType, MVT::v8f64,
/*425547*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425549*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrrkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fpextend:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTPS2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*425557*/          /*SwitchOpcode*/ 99, TARGET_VAL(ISD::SINT_TO_FP),// ->425659
/*425560*/            OPC_RecordChild0, // #1 = $src
/*425561*/            OPC_Scope, 47, /*->425610*/ // 2 children in Scope
/*425563*/              OPC_CheckChild0Type, MVT::v8i32,
/*425565*/              OPC_MoveParent,
/*425566*/              OPC_MoveChild2,
/*425567*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425570*/              OPC_MoveChild0,
/*425571*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425574*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425576*/              OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->425593
/*425579*/                OPC_MoveParent,
/*425580*/                OPC_MoveParent,
/*425581*/                OPC_CheckType, MVT::v8f64,
/*425583*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425585*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrrkz), 0,
                              MVT::v8f64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTDQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*425593*/              /*SwitchType*/ 14, MVT::v8i32,// ->425609
/*425595*/                OPC_MoveParent,
/*425596*/                OPC_MoveParent,
/*425597*/                OPC_CheckType, MVT::v8f32,
/*425599*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425601*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rrkz), 0,
                              MVT::v8f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTDQ2PSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*425609*/              0, // EndSwitchType
/*425610*/            /*Scope*/ 47, /*->425658*/
/*425611*/              OPC_CheckChild0Type, MVT::v8i64,
/*425613*/              OPC_MoveParent,
/*425614*/              OPC_MoveChild2,
/*425615*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425618*/              OPC_MoveChild0,
/*425619*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425622*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425624*/              OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->425641
/*425627*/                OPC_MoveParent,
/*425628*/                OPC_MoveParent,
/*425629*/                OPC_CheckType, MVT::v8f64,
/*425631*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*425633*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrrkz), 0,
                              MVT::v8f64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTQQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*425641*/              /*SwitchType*/ 14, MVT::v8i32,// ->425657
/*425643*/                OPC_MoveParent,
/*425644*/                OPC_MoveParent,
/*425645*/                OPC_CheckType, MVT::v8f32,
/*425647*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*425649*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrrkz), 0,
                              MVT::v8f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTQQ2PSZrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*425657*/              0, // EndSwitchType
/*425658*/            0, /*End of Scope*/
/*425659*/          /*SwitchOpcode*/ 99, TARGET_VAL(ISD::UINT_TO_FP),// ->425761
/*425662*/            OPC_RecordChild0, // #1 = $src
/*425663*/            OPC_Scope, 47, /*->425712*/ // 2 children in Scope
/*425665*/              OPC_CheckChild0Type, MVT::v8i32,
/*425667*/              OPC_MoveParent,
/*425668*/              OPC_MoveChild2,
/*425669*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425672*/              OPC_MoveChild0,
/*425673*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425676*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425678*/              OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->425695
/*425681*/                OPC_MoveParent,
/*425682*/                OPC_MoveParent,
/*425683*/                OPC_CheckType, MVT::v8f64,
/*425685*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425687*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrrkz), 0,
                              MVT::v8f64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTUDQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*425695*/              /*SwitchType*/ 14, MVT::v8i32,// ->425711
/*425697*/                OPC_MoveParent,
/*425698*/                OPC_MoveParent,
/*425699*/                OPC_CheckType, MVT::v8f32,
/*425701*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425703*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rrkz), 0,
                              MVT::v8f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTUDQ2PSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*425711*/              0, // EndSwitchType
/*425712*/            /*Scope*/ 47, /*->425760*/
/*425713*/              OPC_CheckChild0Type, MVT::v8i64,
/*425715*/              OPC_MoveParent,
/*425716*/              OPC_MoveChild2,
/*425717*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425720*/              OPC_MoveChild0,
/*425721*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425724*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425726*/              OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->425743
/*425729*/                OPC_MoveParent,
/*425730*/                OPC_MoveParent,
/*425731*/                OPC_CheckType, MVT::v8f64,
/*425733*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*425735*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrrkz), 0,
                              MVT::v8f64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTUQQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*425743*/              /*SwitchType*/ 14, MVT::v8i32,// ->425759
/*425745*/                OPC_MoveParent,
/*425746*/                OPC_MoveParent,
/*425747*/                OPC_CheckType, MVT::v8f32,
/*425749*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*425751*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrrkz), 0,
                              MVT::v8f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VCVTUQQ2PSZrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*425759*/              0, // EndSwitchType
/*425760*/            0, /*End of Scope*/
/*425761*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::CVTPH2PS),// ->425794
/*425764*/            OPC_RecordChild0, // #1 = $src
/*425765*/            OPC_CheckChild0Type, MVT::v8i16,
/*425767*/            OPC_MoveParent,
/*425768*/            OPC_MoveChild2,
/*425769*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425772*/            OPC_MoveChild0,
/*425773*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425776*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425778*/            OPC_CheckType, MVT::v8i32,
/*425780*/            OPC_MoveParent,
/*425781*/            OPC_MoveParent,
/*425782*/            OPC_CheckType, MVT::v8f32,
/*425784*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425786*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ256rrkz), 0,
                          MVT::v8f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtph2ps:{ *:[v8f32] } VR128X:{ *:[v8i16] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTPH2PSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*425794*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::RSQRT14),// ->425843
/*425797*/            OPC_RecordChild0, // #1 = $src
/*425798*/            OPC_MoveParent,
/*425799*/            OPC_MoveChild2,
/*425800*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425803*/            OPC_MoveChild0,
/*425804*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425807*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425809*/            OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->425826
/*425812*/              OPC_MoveParent,
/*425813*/              OPC_MoveParent,
/*425814*/              OPC_CheckType, MVT::v8f64,
/*425816*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425818*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRSQRT14PDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*425826*/            /*SwitchType*/ 14, MVT::v8i32,// ->425842
/*425828*/              OPC_MoveParent,
/*425829*/              OPC_MoveParent,
/*425830*/              OPC_CheckType, MVT::v8f32,
/*425832*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425834*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ256rkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRSQRT14PSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*425842*/            0, // EndSwitchType
/*425843*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::RCP14),// ->425892
/*425846*/            OPC_RecordChild0, // #1 = $src
/*425847*/            OPC_MoveParent,
/*425848*/            OPC_MoveChild2,
/*425849*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425852*/            OPC_MoveChild0,
/*425853*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425856*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425858*/            OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->425875
/*425861*/              OPC_MoveParent,
/*425862*/              OPC_MoveParent,
/*425863*/              OPC_CheckType, MVT::v8f64,
/*425865*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425867*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRCP14PDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*425875*/            /*SwitchType*/ 14, MVT::v8i32,// ->425891
/*425877*/              OPC_MoveParent,
/*425878*/              OPC_MoveParent,
/*425879*/              OPC_CheckType, MVT::v8f32,
/*425881*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425883*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ256rkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRCP14PSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*425891*/            0, // EndSwitchType
/*425892*/          /*SwitchOpcode*/ 46, TARGET_VAL(ISD::FSQRT),// ->425941
/*425895*/            OPC_RecordChild0, // #1 = $src
/*425896*/            OPC_MoveParent,
/*425897*/            OPC_MoveChild2,
/*425898*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425901*/            OPC_MoveChild0,
/*425902*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425905*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425907*/            OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->425924
/*425910*/              OPC_MoveParent,
/*425911*/              OPC_MoveParent,
/*425912*/              OPC_CheckType, MVT::v8f64,
/*425914*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425916*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VSQRTPDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*425924*/            /*SwitchType*/ 14, MVT::v8i32,// ->425940
/*425926*/              OPC_MoveParent,
/*425927*/              OPC_MoveParent,
/*425928*/              OPC_CheckType, MVT::v8f32,
/*425930*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425932*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256rkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VSQRTPSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*425940*/            0, // EndSwitchType
/*425941*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::COMPRESS),// ->425990
/*425944*/            OPC_RecordChild0, // #1 = $src1
/*425945*/            OPC_MoveParent,
/*425946*/            OPC_MoveChild2,
/*425947*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425950*/            OPC_MoveChild0,
/*425951*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*425954*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*425956*/            OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->425973
/*425959*/              OPC_MoveParent,
/*425960*/              OPC_MoveParent,
/*425961*/              OPC_CheckType, MVT::v8f32,
/*425963*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425965*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZ256rrkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86compress:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCOMPRESSPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1)
/*425973*/            /*SwitchType*/ 14, MVT::v16i32,// ->425989
/*425975*/              OPC_MoveParent,
/*425976*/              OPC_MoveParent,
/*425977*/              OPC_CheckType, MVT::v8f64,
/*425979*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425981*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZrrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86compress:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VCOMPRESSPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1)
/*425989*/            0, // EndSwitchType
/*425990*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::EXPAND),// ->426039
/*425993*/            OPC_RecordChild0, // #1 = $src1
/*425994*/            OPC_MoveParent,
/*425995*/            OPC_MoveChild2,
/*425996*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*425999*/            OPC_MoveChild0,
/*426000*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426003*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426005*/            OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->426022
/*426008*/              OPC_MoveParent,
/*426009*/              OPC_MoveParent,
/*426010*/              OPC_CheckType, MVT::v8f32,
/*426012*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*426014*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rrkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VEXPANDPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1)
/*426022*/            /*SwitchType*/ 14, MVT::v16i32,// ->426038
/*426024*/              OPC_MoveParent,
/*426025*/              OPC_MoveParent,
/*426026*/              OPC_CheckType, MVT::v8f64,
/*426028*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426030*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VEXPANDPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1)
/*426038*/            0, // EndSwitchType
/*426039*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::FFLOOR),// ->426096
/*426042*/            OPC_RecordChild0, // #1 = $src
/*426043*/            OPC_MoveParent,
/*426044*/            OPC_MoveChild2,
/*426045*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*426048*/            OPC_MoveChild0,
/*426049*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426052*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426054*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i32,// ->426075
/*426057*/              OPC_MoveParent,
/*426058*/              OPC_MoveParent,
/*426059*/              OPC_CheckType, MVT::v8f64,
/*426061*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426063*/              OPC_EmitInteger, MVT::i32, 9, 
/*426066*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, 9:{ *:[i32] })
/*426075*/            /*SwitchType*/ 18, MVT::v8i32,// ->426095
/*426077*/              OPC_MoveParent,
/*426078*/              OPC_MoveParent,
/*426079*/              OPC_CheckType, MVT::v8f32,
/*426081*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426083*/              OPC_EmitInteger, MVT::i32, 9, 
/*426086*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, 9:{ *:[i32] })
/*426095*/            0, // EndSwitchType
/*426096*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::FNEARBYINT),// ->426153
/*426099*/            OPC_RecordChild0, // #1 = $src
/*426100*/            OPC_MoveParent,
/*426101*/            OPC_MoveChild2,
/*426102*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*426105*/            OPC_MoveChild0,
/*426106*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426109*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426111*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i32,// ->426132
/*426114*/              OPC_MoveParent,
/*426115*/              OPC_MoveParent,
/*426116*/              OPC_CheckType, MVT::v8f64,
/*426118*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426120*/              OPC_EmitInteger, MVT::i32, 12, 
/*426123*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, 12:{ *:[i32] })
/*426132*/            /*SwitchType*/ 18, MVT::v8i32,// ->426152
/*426134*/              OPC_MoveParent,
/*426135*/              OPC_MoveParent,
/*426136*/              OPC_CheckType, MVT::v8f32,
/*426138*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426140*/              OPC_EmitInteger, MVT::i32, 12, 
/*426143*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, 12:{ *:[i32] })
/*426152*/            0, // EndSwitchType
/*426153*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::FCEIL),// ->426210
/*426156*/            OPC_RecordChild0, // #1 = $src
/*426157*/            OPC_MoveParent,
/*426158*/            OPC_MoveChild2,
/*426159*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*426162*/            OPC_MoveChild0,
/*426163*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426166*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426168*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i32,// ->426189
/*426171*/              OPC_MoveParent,
/*426172*/              OPC_MoveParent,
/*426173*/              OPC_CheckType, MVT::v8f64,
/*426175*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426177*/              OPC_EmitInteger, MVT::i32, 10, 
/*426180*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, 10:{ *:[i32] })
/*426189*/            /*SwitchType*/ 18, MVT::v8i32,// ->426209
/*426191*/              OPC_MoveParent,
/*426192*/              OPC_MoveParent,
/*426193*/              OPC_CheckType, MVT::v8f32,
/*426195*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426197*/              OPC_EmitInteger, MVT::i32, 10, 
/*426200*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, 10:{ *:[i32] })
/*426209*/            0, // EndSwitchType
/*426210*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::FRINT),// ->426267
/*426213*/            OPC_RecordChild0, // #1 = $src
/*426214*/            OPC_MoveParent,
/*426215*/            OPC_MoveChild2,
/*426216*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*426219*/            OPC_MoveChild0,
/*426220*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426223*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426225*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i32,// ->426246
/*426228*/              OPC_MoveParent,
/*426229*/              OPC_MoveParent,
/*426230*/              OPC_CheckType, MVT::v8f64,
/*426232*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426234*/              OPC_EmitInteger, MVT::i32, 4, 
/*426237*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] })
/*426246*/            /*SwitchType*/ 18, MVT::v8i32,// ->426266
/*426248*/              OPC_MoveParent,
/*426249*/              OPC_MoveParent,
/*426250*/              OPC_CheckType, MVT::v8f32,
/*426252*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426254*/              OPC_EmitInteger, MVT::i32, 4, 
/*426257*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, 4:{ *:[i32] })
/*426266*/            0, // EndSwitchType
/*426267*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::FTRUNC),// ->426324
/*426270*/            OPC_RecordChild0, // #1 = $src
/*426271*/            OPC_MoveParent,
/*426272*/            OPC_MoveChild2,
/*426273*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*426276*/            OPC_MoveChild0,
/*426277*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426280*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426282*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i32,// ->426303
/*426285*/              OPC_MoveParent,
/*426286*/              OPC_MoveParent,
/*426287*/              OPC_CheckType, MVT::v8f64,
/*426289*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426291*/              OPC_EmitInteger, MVT::i32, 11, 
/*426294*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, 11:{ *:[i32] })
/*426303*/            /*SwitchType*/ 18, MVT::v8i32,// ->426323
/*426305*/              OPC_MoveParent,
/*426306*/              OPC_MoveParent,
/*426307*/              OPC_CheckType, MVT::v8f32,
/*426309*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426311*/              OPC_EmitInteger, MVT::i32, 11, 
/*426314*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, 11:{ *:[i32] })
/*426323*/            0, // EndSwitchType
/*426324*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::MOVSHDUP),// ->426355
/*426327*/            OPC_RecordChild0, // #1 = $src1
/*426328*/            OPC_MoveParent,
/*426329*/            OPC_MoveChild2,
/*426330*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*426333*/            OPC_MoveChild0,
/*426334*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426337*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426339*/            OPC_CheckType, MVT::v8i32,
/*426341*/            OPC_MoveParent,
/*426342*/            OPC_MoveParent,
/*426343*/            OPC_CheckType, MVT::v8f32,
/*426345*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*426347*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ256rrkz), 0,
                          MVT::v8f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Movshdup:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMOVSHDUPZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1)
/*426355*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::MOVSLDUP),// ->426386
/*426358*/            OPC_RecordChild0, // #1 = $src1
/*426359*/            OPC_MoveParent,
/*426360*/            OPC_MoveChild2,
/*426361*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*426364*/            OPC_MoveChild0,
/*426365*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426368*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426370*/            OPC_CheckType, MVT::v8i32,
/*426372*/            OPC_MoveParent,
/*426373*/            OPC_MoveParent,
/*426374*/            OPC_CheckType, MVT::v8f32,
/*426376*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*426378*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ256rrkz), 0,
                          MVT::v8f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Movsldup:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMOVSLDUPZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1)
/*426386*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::MOVDDUP),// ->426417
/*426389*/            OPC_RecordChild0, // #1 = $src1
/*426390*/            OPC_MoveParent,
/*426391*/            OPC_MoveChild2,
/*426392*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*426395*/            OPC_MoveChild0,
/*426396*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426399*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426401*/            OPC_CheckType, MVT::v16i32,
/*426403*/            OPC_MoveParent,
/*426404*/            OPC_MoveParent,
/*426405*/            OPC_CheckType, MVT::v8f64,
/*426407*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426409*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZrrkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Movddup:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMOVDDUPZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1)
/*426417*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::UNPCKH),// ->426469
/*426420*/            OPC_RecordChild0, // #1 = $src1
/*426421*/            OPC_RecordChild1, // #2 = $src2
/*426422*/            OPC_MoveParent,
/*426423*/            OPC_MoveChild2,
/*426424*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*426427*/            OPC_MoveChild0,
/*426428*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426431*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426433*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->426451
/*426436*/              OPC_MoveParent,
/*426437*/              OPC_MoveParent,
/*426438*/              OPC_CheckType, MVT::v8f64,
/*426440*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426442*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VUNPCKHPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*426451*/            /*SwitchType*/ 15, MVT::v8i32,// ->426468
/*426453*/              OPC_MoveParent,
/*426454*/              OPC_MoveParent,
/*426455*/              OPC_CheckType, MVT::v8f32,
/*426457*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*426459*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VUNPCKHPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*426468*/            0, // EndSwitchType
/*426469*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::UNPCKL),// ->426521
/*426472*/            OPC_RecordChild0, // #1 = $src1
/*426473*/            OPC_RecordChild1, // #2 = $src2
/*426474*/            OPC_MoveParent,
/*426475*/            OPC_MoveChild2,
/*426476*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*426479*/            OPC_MoveChild0,
/*426480*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426483*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426485*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->426503
/*426488*/              OPC_MoveParent,
/*426489*/              OPC_MoveParent,
/*426490*/              OPC_CheckType, MVT::v8f64,
/*426492*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426494*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZrrkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VUNPCKLPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*426503*/            /*SwitchType*/ 15, MVT::v8i32,// ->426520
/*426505*/              OPC_MoveParent,
/*426506*/              OPC_MoveParent,
/*426507*/              OPC_CheckType, MVT::v8f32,
/*426509*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*426511*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ256rrkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VUNPCKLPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*426520*/            0, // EndSwitchType
/*426521*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::FMIN_RND),// ->426544
/*426524*/            OPC_RecordChild0, // #1 = $src1
/*426525*/            OPC_RecordChild1, // #2 = $src2
/*426526*/            OPC_CheckChild2Integer, 8, 
/*426528*/            OPC_MoveParent,
/*426529*/            OPC_RecordChild2, // #3 = $src0
/*426530*/            OPC_CheckType, MVT::v8f64,
/*426532*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426534*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrrbk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                      // Dst: (VMINPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*426544*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::FMAX_RND),// ->426567
/*426547*/            OPC_RecordChild0, // #1 = $src1
/*426548*/            OPC_RecordChild1, // #2 = $src2
/*426549*/            OPC_CheckChild2Integer, 8, 
/*426551*/            OPC_MoveParent,
/*426552*/            OPC_RecordChild2, // #3 = $src0
/*426553*/            OPC_CheckType, MVT::v8f64,
/*426555*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426557*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrrbk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                      // Dst: (VMAXPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*426567*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VFPEXT_RND),// ->426590
/*426570*/            OPC_RecordChild0, // #1 = $src
/*426571*/            OPC_CheckChild0Type, MVT::v8f32,
/*426573*/            OPC_CheckChild1Integer, 8, 
/*426575*/            OPC_MoveParent,
/*426576*/            OPC_RecordChild2, // #2 = $src0
/*426577*/            OPC_CheckType, MVT::v8f64,
/*426579*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426581*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrrbk), 0,
                          MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86vfpextRnd:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                      // Dst: (VCVTPS2PDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*426590*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::RSQRT28),// ->426632
/*426593*/            OPC_RecordChild0, // #1 = $src
/*426594*/            OPC_Scope, 17, /*->426613*/ // 2 children in Scope
/*426596*/              OPC_CheckChild1Integer, 4, 
/*426598*/              OPC_MoveParent,
/*426599*/              OPC_RecordChild2, // #2 = $src0
/*426600*/              OPC_CheckType, MVT::v8f64,
/*426602*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*426604*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                        // Dst: (VRSQRT28PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*426613*/            /*Scope*/ 17, /*->426631*/
/*426614*/              OPC_CheckChild1Integer, 8, 
/*426616*/              OPC_MoveParent,
/*426617*/              OPC_RecordChild2, // #2 = $src0
/*426618*/              OPC_CheckType, MVT::v8f64,
/*426620*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*426622*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZrbk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                        // Dst: (VRSQRT28PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*426631*/            0, /*End of Scope*/
/*426632*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::RCP28),// ->426674
/*426635*/            OPC_RecordChild0, // #1 = $src
/*426636*/            OPC_Scope, 17, /*->426655*/ // 2 children in Scope
/*426638*/              OPC_CheckChild1Integer, 4, 
/*426640*/              OPC_MoveParent,
/*426641*/              OPC_RecordChild2, // #2 = $src0
/*426642*/              OPC_CheckType, MVT::v8f64,
/*426644*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*426646*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                        // Dst: (VRCP28PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*426655*/            /*Scope*/ 17, /*->426673*/
/*426656*/              OPC_CheckChild1Integer, 8, 
/*426658*/              OPC_MoveParent,
/*426659*/              OPC_RecordChild2, // #2 = $src0
/*426660*/              OPC_CheckType, MVT::v8f64,
/*426662*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*426664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZrbk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                        // Dst: (VRCP28PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*426673*/            0, /*End of Scope*/
/*426674*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::EXP2),// ->426716
/*426677*/            OPC_RecordChild0, // #1 = $src
/*426678*/            OPC_Scope, 17, /*->426697*/ // 2 children in Scope
/*426680*/              OPC_CheckChild1Integer, 4, 
/*426682*/              OPC_MoveParent,
/*426683*/              OPC_RecordChild2, // #2 = $src0
/*426684*/              OPC_CheckType, MVT::v8f64,
/*426686*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*426688*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86exp2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                        // Dst: (VEXP2PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*426697*/            /*Scope*/ 17, /*->426715*/
/*426698*/              OPC_CheckChild1Integer, 8, 
/*426700*/              OPC_MoveParent,
/*426701*/              OPC_RecordChild2, // #2 = $src0
/*426702*/              OPC_CheckType, MVT::v8f64,
/*426704*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*426706*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZrbk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86exp2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                        // Dst: (VEXP2PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*426715*/            0, /*End of Scope*/
/*426716*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::FGETEXP_RND),// ->426773
/*426719*/            OPC_RecordChild0, // #1 = $src
/*426720*/            OPC_Scope, 32, /*->426754*/ // 2 children in Scope
/*426722*/              OPC_CheckChild1Integer, 4, 
/*426724*/              OPC_MoveParent,
/*426725*/              OPC_RecordChild2, // #2 = $src0
/*426726*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->426740
/*426729*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426731*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZrk), 0,
                              MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                          // Dst: (VGETEXPPDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*426740*/              /*SwitchType*/ 11, MVT::v8f32,// ->426753
/*426742*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426744*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256rk), 0,
                              MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, 4:{ *:[i32] }), VR256X:{ *:[v8f32] }:$src0) - Complexity = 11
                          // Dst: (VGETEXPPSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*426753*/              0, // EndSwitchType
/*426754*/            /*Scope*/ 17, /*->426772*/
/*426755*/              OPC_CheckChild1Integer, 8, 
/*426757*/              OPC_MoveParent,
/*426758*/              OPC_RecordChild2, // #2 = $src0
/*426759*/              OPC_CheckType, MVT::v8f64,
/*426761*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426763*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZrbk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }), VR512:{ *:[v8f64] }:$src0) - Complexity = 11
                        // Dst: (VGETEXPPDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*426772*/            0, /*End of Scope*/
/*426773*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->426807
/*426776*/            OPC_RecordChild0, // #1 = $src
/*426777*/            OPC_CheckChild1Integer, 0, 
/*426779*/            OPC_CheckChild1Type, MVT::iPTR,
/*426781*/            OPC_MoveParent,
/*426782*/            OPC_RecordChild2, // #2 = $src0
/*426783*/            OPC_CheckType, MVT::v8f32,
/*426785*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426787*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*426790*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*426798*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rrk), 0,
                          MVT::v8f32, 3/*#Ops*/, 2, 0, 4, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] }), VR256X:{ *:[v8f32] }:$src0) - Complexity = 11
                      // Dst: (VMOVAPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, (EXTRACT_SUBREG:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, sub_ymm:{ *:[i32] }))
/*426807*/          0, // EndSwitchOpcode
/*426808*/        /*Scope*/ 104|128,1/*232*/, /*->427042*/
/*426810*/          OPC_RecordChild1, // #1 = $src
/*426811*/          OPC_Scope, 98, /*->426911*/ // 2 children in Scope
/*426813*/            OPC_MoveChild2,
/*426814*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*426817*/            OPC_MoveChild0,
/*426818*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*426821*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*426823*/            OPC_SwitchType /*2 cases */, 68, MVT::v8i32,// ->426894
/*426826*/              OPC_MoveParent,
/*426827*/              OPC_MoveParent,
/*426828*/              OPC_CheckType, MVT::v8f32,
/*426830*/              OPC_Scope, 10, /*->426842*/ // 2 children in Scope
/*426832*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*426834*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rrkz), 0,
                              MVT::v8f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                          // Dst: (VMOVAPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*426842*/              /*Scope*/ 50, /*->426893*/
/*426843*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*426845*/                OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*426848*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*426856*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v16f32, 0/*#Ops*/,  // Results = #4
/*426862*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*426865*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::v16f32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*426874*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZrrkz), 0,
                              MVT::v16f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*426882*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*426885*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::v8f32, 2/*#Ops*/, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                          // Dst: (EXTRACT_SUBREG:{ *:[v8f32] } (VMOVAPSZrrkz:{ *:[v16f32] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8WM:{ *:[v8i1] }:$mask, VK16WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*426893*/              0, /*End of Scope*/
/*426894*/            /*SwitchType*/ 14, MVT::v16i32,// ->426910
/*426896*/              OPC_MoveParent,
/*426897*/              OPC_MoveParent,
/*426898*/              OPC_CheckType, MVT::v8f64,
/*426900*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426902*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                        // Dst: (VMOVAPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*426910*/            0, // EndSwitchType
/*426911*/          /*Scope*/ 0|128,1/*128*/, /*->427041*/
/*426913*/            OPC_MoveChild1,
/*426914*/            OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->427010
/*426918*/              OPC_RecordChild0, // #2 = $src1
/*426919*/              OPC_RecordChild1, // #3 = $src2
/*426920*/              OPC_Scope, 27, /*->426949*/ // 3 children in Scope
/*426922*/                OPC_MoveChild2,
/*426923*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*426926*/                OPC_CheckType, MVT::iPTR,
/*426928*/                OPC_MoveParent,
/*426929*/                OPC_MoveParent,
/*426930*/                OPC_RecordChild2, // #4 = $src0
/*426931*/                OPC_CheckType, MVT::v8f32,
/*426933*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426935*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*426938*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rrk), 0,
                              MVT::v8f32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VINSERTF32x4Z256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*426949*/              /*Scope*/ 29, /*->426979*/
/*426950*/                OPC_CheckChild1Type, MVT::v4f64,
/*426952*/                OPC_MoveChild2,
/*426953*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*426956*/                OPC_CheckType, MVT::iPTR,
/*426958*/                OPC_MoveParent,
/*426959*/                OPC_MoveParent,
/*426960*/                OPC_RecordChild2, // #4 = $src0
/*426961*/                OPC_CheckType, MVT::v8f64,
/*426963*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426965*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*426968*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrrk), 0,
                              MVT::v8f64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VINSERTF64x4Zrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*426979*/              /*Scope*/ 29, /*->427009*/
/*426980*/                OPC_CheckChild1Type, MVT::v2f64,
/*426982*/                OPC_MoveChild2,
/*426983*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*426986*/                OPC_CheckType, MVT::iPTR,
/*426988*/                OPC_MoveParent,
/*426989*/                OPC_MoveParent,
/*426990*/                OPC_RecordChild2, // #4 = $src0
/*426991*/                OPC_CheckType, MVT::v8f64,
/*426993*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*426995*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*426998*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x2Zrrk), 0,
                              MVT::v8f64, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VINSERTF64x2Zrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*427009*/              0, /*End of Scope*/
/*427010*/            /*SwitchOpcode*/ 27, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->427040
/*427013*/              OPC_RecordChild0, // #2 = $src1
/*427014*/              OPC_MoveChild1,
/*427015*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427018*/              OPC_CheckType, MVT::iPTR,
/*427020*/              OPC_MoveParent,
/*427021*/              OPC_MoveParent,
/*427022*/              OPC_RecordChild2, // #3 = $src0
/*427023*/              OPC_CheckType, MVT::v8f32,
/*427025*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*427027*/              OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*427030*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x8Zrrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx, VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VEXTRACTF32x8Zrrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*427040*/            0, // EndSwitchOpcode
/*427041*/          0, /*End of Scope*/
/*427042*/        /*Scope*/ 124|128,24/*3196*/, /*->430240*/
/*427044*/          OPC_MoveChild1,
/*427045*/          OPC_SwitchOpcode /*62 cases */, 79|128,1/*207*/, TARGET_VAL(ISD::BITCAST),// ->427257
/*427050*/            OPC_MoveChild0,
/*427051*/            OPC_SwitchOpcode /*5 cases */, 21, TARGET_VAL(X86ISD::VBROADCAST),// ->427076
/*427055*/              OPC_RecordChild0, // #1 = $src
/*427056*/              OPC_CheckChild0Type, MVT::v2f64,
/*427058*/              OPC_CheckType, MVT::v4f64,
/*427060*/              OPC_MoveParent,
/*427061*/              OPC_MoveParent,
/*427062*/              OPC_RecordChild2, // #2 = $src0
/*427063*/              OPC_CheckType, MVT::v8f32,
/*427065*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427067*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Z256rk), 0,
                            MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86VBroadcast:{ *:[v4f64] } VR128X:{ *:[v2f64] }:$src)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VBROADCASTF32X2Z256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*427076*/            /*SwitchOpcode*/ 42, TARGET_VAL(ISD::AND),// ->427121
/*427079*/              OPC_RecordChild0, // #1 = $src1
/*427080*/              OPC_RecordChild1, // #2 = $src2
/*427081*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i64,// ->427101
/*427084*/                OPC_MoveParent,
/*427085*/                OPC_MoveParent,
/*427086*/                OPC_RecordChild2, // #3 = $src0
/*427087*/                OPC_CheckType, MVT::v8f32,
/*427089*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427091*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*427101*/              /*SwitchType*/ 17, MVT::v8i64,// ->427120
/*427103*/                OPC_MoveParent,
/*427104*/                OPC_MoveParent,
/*427105*/                OPC_RecordChild2, // #3 = $src0
/*427106*/                OPC_CheckType, MVT::v8f64,
/*427108*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427110*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*427120*/              0, // EndSwitchType
/*427121*/            /*SwitchOpcode*/ 42, TARGET_VAL(ISD::OR),// ->427166
/*427124*/              OPC_RecordChild0, // #1 = $src1
/*427125*/              OPC_RecordChild1, // #2 = $src2
/*427126*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i64,// ->427146
/*427129*/                OPC_MoveParent,
/*427130*/                OPC_MoveParent,
/*427131*/                OPC_RecordChild2, // #3 = $src0
/*427132*/                OPC_CheckType, MVT::v8f32,
/*427134*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427136*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*427146*/              /*SwitchType*/ 17, MVT::v8i64,// ->427165
/*427148*/                OPC_MoveParent,
/*427149*/                OPC_MoveParent,
/*427150*/                OPC_RecordChild2, // #3 = $src0
/*427151*/                OPC_CheckType, MVT::v8f64,
/*427153*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427155*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*427165*/              0, // EndSwitchType
/*427166*/            /*SwitchOpcode*/ 42, TARGET_VAL(ISD::XOR),// ->427211
/*427169*/              OPC_RecordChild0, // #1 = $src1
/*427170*/              OPC_RecordChild1, // #2 = $src2
/*427171*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i64,// ->427191
/*427174*/                OPC_MoveParent,
/*427175*/                OPC_MoveParent,
/*427176*/                OPC_RecordChild2, // #3 = $src0
/*427177*/                OPC_CheckType, MVT::v8f32,
/*427179*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427181*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*427191*/              /*SwitchType*/ 17, MVT::v8i64,// ->427210
/*427193*/                OPC_MoveParent,
/*427194*/                OPC_MoveParent,
/*427195*/                OPC_RecordChild2, // #3 = $src0
/*427196*/                OPC_CheckType, MVT::v8f64,
/*427198*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427200*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*427210*/              0, // EndSwitchType
/*427211*/            /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::ANDNP),// ->427256
/*427214*/              OPC_RecordChild0, // #1 = $src1
/*427215*/              OPC_RecordChild1, // #2 = $src2
/*427216*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i64,// ->427236
/*427219*/                OPC_MoveParent,
/*427220*/                OPC_MoveParent,
/*427221*/                OPC_RecordChild2, // #3 = $src0
/*427222*/                OPC_CheckType, MVT::v8f32,
/*427224*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427226*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*427236*/              /*SwitchType*/ 17, MVT::v8i64,// ->427255
/*427238*/                OPC_MoveParent,
/*427239*/                OPC_MoveParent,
/*427240*/                OPC_RecordChild2, // #3 = $src0
/*427241*/                OPC_CheckType, MVT::v8f64,
/*427243*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427245*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*427255*/              0, // EndSwitchType
/*427256*/            0, // EndSwitchOpcode
/*427257*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::VPERMV3),// ->427337
/*427260*/            OPC_RecordChild0, // #1 = $src2
/*427261*/            OPC_RecordChild1, // #2 = $src1
/*427262*/            OPC_RecordChild2, // #3 = $src3
/*427263*/            OPC_MoveParent,
/*427264*/            OPC_Scope, 37, /*->427303*/ // 2 children in Scope
/*427266*/              OPC_MoveChild2,
/*427267*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*427270*/              OPC_CheckChild0Same, 2,
/*427272*/              OPC_MoveParent,
/*427273*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->427288
/*427276*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427278*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PS256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8f32] }:$src3), (bitconvert:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1)) - Complexity = 9
                          // Dst: (VPERMI2PS256rrk:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*427288*/              /*SwitchType*/ 12, MVT::v8f64,// ->427302
/*427290*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427292*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PDrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8f64] }:$src3), (bitconvert:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1)) - Complexity = 9
                          // Dst: (VPERMI2PDrrk:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*427302*/              0, // EndSwitchType
/*427303*/            /*Scope*/ 32, /*->427336*/
/*427304*/              OPC_CheckChild2Same, 1,
/*427306*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->427321
/*427309*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427311*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8f32] }:$src3), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2PS256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*427321*/              /*SwitchType*/ 12, MVT::v8f64,// ->427335
/*427323*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427325*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PDrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8f64] }:$src3), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2PDrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*427335*/              0, // EndSwitchType
/*427336*/            0, /*End of Scope*/
/*427337*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::FADD_RND),// ->427367
/*427340*/            OPC_RecordChild0, // #1 = $src1
/*427341*/            OPC_RecordChild1, // #2 = $src2
/*427342*/            OPC_RecordChild2, // #3 = $rc
/*427343*/            OPC_MoveChild2,
/*427344*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427347*/            OPC_MoveParent,
/*427348*/            OPC_MoveParent,
/*427349*/            OPC_RecordChild2, // #4 = $src0
/*427350*/            OPC_CheckType, MVT::v8f64,
/*427352*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427354*/            OPC_EmitConvertToTarget, 3,
/*427356*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrrbk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86faddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VADDPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*427367*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::FMUL_RND),// ->427397
/*427370*/            OPC_RecordChild0, // #1 = $src1
/*427371*/            OPC_RecordChild1, // #2 = $src2
/*427372*/            OPC_RecordChild2, // #3 = $rc
/*427373*/            OPC_MoveChild2,
/*427374*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427377*/            OPC_MoveParent,
/*427378*/            OPC_MoveParent,
/*427379*/            OPC_RecordChild2, // #4 = $src0
/*427380*/            OPC_CheckType, MVT::v8f64,
/*427382*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427384*/            OPC_EmitConvertToTarget, 3,
/*427386*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrrbk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmulRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VMULPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*427397*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::FSUB_RND),// ->427427
/*427400*/            OPC_RecordChild0, // #1 = $src1
/*427401*/            OPC_RecordChild1, // #2 = $src2
/*427402*/            OPC_RecordChild2, // #3 = $rc
/*427403*/            OPC_MoveChild2,
/*427404*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427407*/            OPC_MoveParent,
/*427408*/            OPC_MoveParent,
/*427409*/            OPC_RecordChild2, // #4 = $src0
/*427410*/            OPC_CheckType, MVT::v8f64,
/*427412*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427414*/            OPC_EmitConvertToTarget, 3,
/*427416*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrrbk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VSUBPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*427427*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::FDIV_RND),// ->427457
/*427430*/            OPC_RecordChild0, // #1 = $src1
/*427431*/            OPC_RecordChild1, // #2 = $src2
/*427432*/            OPC_RecordChild2, // #3 = $rc
/*427433*/            OPC_MoveChild2,
/*427434*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427437*/            OPC_MoveParent,
/*427438*/            OPC_MoveParent,
/*427439*/            OPC_RecordChild2, // #4 = $src0
/*427440*/            OPC_CheckType, MVT::v8f64,
/*427442*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427444*/            OPC_EmitConvertToTarget, 3,
/*427446*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrrbk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fdivRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VDIVPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*427457*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::SCALEF),// ->427487
/*427460*/            OPC_RecordChild0, // #1 = $src1
/*427461*/            OPC_RecordChild1, // #2 = $src2
/*427462*/            OPC_RecordChild2, // #3 = $rc
/*427463*/            OPC_MoveChild2,
/*427464*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427467*/            OPC_MoveParent,
/*427468*/            OPC_MoveParent,
/*427469*/            OPC_RecordChild2, // #4 = $src0
/*427470*/            OPC_CheckType, MVT::v8f64,
/*427472*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427474*/            OPC_EmitConvertToTarget, 3,
/*427476*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrrbk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VSCALEFPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*427487*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPERMI),// ->427515
/*427490*/            OPC_RecordChild0, // #1 = $src1
/*427491*/            OPC_RecordChild1, // #2 = $src2
/*427492*/            OPC_MoveChild1,
/*427493*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427496*/            OPC_MoveParent,
/*427497*/            OPC_MoveParent,
/*427498*/            OPC_RecordChild2, // #3 = $src0
/*427499*/            OPC_CheckType, MVT::v8f64,
/*427501*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427503*/            OPC_EmitConvertToTarget, 2,
/*427505*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrik), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VPERMPDZrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*427515*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VPERMILPI),// ->427561
/*427518*/            OPC_RecordChild0, // #1 = $src1
/*427519*/            OPC_RecordChild1, // #2 = $src2
/*427520*/            OPC_MoveChild1,
/*427521*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427524*/            OPC_MoveParent,
/*427525*/            OPC_MoveParent,
/*427526*/            OPC_RecordChild2, // #3 = $src0
/*427527*/            OPC_SwitchType /*2 cases */, 14, MVT::v8f32,// ->427544
/*427530*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*427532*/              OPC_EmitConvertToTarget, 2,
/*427534*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rik), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VPERMILPSZ256rik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*427544*/            /*SwitchType*/ 14, MVT::v8f64,// ->427560
/*427546*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427548*/              OPC_EmitConvertToTarget, 2,
/*427550*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VPERMILPDZrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*427560*/            0, // EndSwitchType
/*427561*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FMADD_RND),// ->427632
/*427564*/            OPC_RecordChild0, // #1 = $src2
/*427565*/            OPC_RecordChild1, // #2 = $src1
/*427566*/            OPC_RecordChild2, // #3 = $src3
/*427567*/            OPC_RecordChild3, // #4 = $rc
/*427568*/            OPC_MoveChild3,
/*427569*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427572*/            OPC_MoveParent,
/*427573*/            OPC_MoveParent,
/*427574*/            OPC_CheckType, MVT::v8f64,
/*427576*/            OPC_Scope, 17, /*->427595*/ // 3 children in Scope
/*427578*/              OPC_CheckChild2Same, 2,
/*427580*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427582*/              OPC_EmitConvertToTarget, 4,
/*427584*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADD213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427595*/            /*Scope*/ 17, /*->427613*/
/*427596*/              OPC_CheckChild2Same, 3,
/*427598*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427600*/              OPC_EmitConvertToTarget, 4,
/*427602*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADD231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427613*/            /*Scope*/ 17, /*->427631*/
/*427614*/              OPC_CheckChild2Same, 1,
/*427616*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427618*/              OPC_EmitConvertToTarget, 4,
/*427620*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADD132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427631*/            0, /*End of Scope*/
/*427632*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FMSUB_RND),// ->427703
/*427635*/            OPC_RecordChild0, // #1 = $src2
/*427636*/            OPC_RecordChild1, // #2 = $src1
/*427637*/            OPC_RecordChild2, // #3 = $src3
/*427638*/            OPC_RecordChild3, // #4 = $rc
/*427639*/            OPC_MoveChild3,
/*427640*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427643*/            OPC_MoveParent,
/*427644*/            OPC_MoveParent,
/*427645*/            OPC_CheckType, MVT::v8f64,
/*427647*/            OPC_Scope, 17, /*->427666*/ // 3 children in Scope
/*427649*/              OPC_CheckChild2Same, 2,
/*427651*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427653*/              OPC_EmitConvertToTarget, 4,
/*427655*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427666*/            /*Scope*/ 17, /*->427684*/
/*427667*/              OPC_CheckChild2Same, 3,
/*427669*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427671*/              OPC_EmitConvertToTarget, 4,
/*427673*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427684*/            /*Scope*/ 17, /*->427702*/
/*427685*/              OPC_CheckChild2Same, 1,
/*427687*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427689*/              OPC_EmitConvertToTarget, 4,
/*427691*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427702*/            0, /*End of Scope*/
/*427703*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FMADDSUB_RND),// ->427774
/*427706*/            OPC_RecordChild0, // #1 = $src2
/*427707*/            OPC_RecordChild1, // #2 = $src1
/*427708*/            OPC_RecordChild2, // #3 = $src3
/*427709*/            OPC_RecordChild3, // #4 = $rc
/*427710*/            OPC_MoveChild3,
/*427711*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427714*/            OPC_MoveParent,
/*427715*/            OPC_MoveParent,
/*427716*/            OPC_CheckType, MVT::v8f64,
/*427718*/            OPC_Scope, 17, /*->427737*/ // 3 children in Scope
/*427720*/              OPC_CheckChild2Same, 2,
/*427722*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427724*/              OPC_EmitConvertToTarget, 4,
/*427726*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427737*/            /*Scope*/ 17, /*->427755*/
/*427738*/              OPC_CheckChild2Same, 3,
/*427740*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427742*/              OPC_EmitConvertToTarget, 4,
/*427744*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427755*/            /*Scope*/ 17, /*->427773*/
/*427756*/              OPC_CheckChild2Same, 1,
/*427758*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427760*/              OPC_EmitConvertToTarget, 4,
/*427762*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427773*/            0, /*End of Scope*/
/*427774*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FMSUBADD_RND),// ->427845
/*427777*/            OPC_RecordChild0, // #1 = $src2
/*427778*/            OPC_RecordChild1, // #2 = $src1
/*427779*/            OPC_RecordChild2, // #3 = $src3
/*427780*/            OPC_RecordChild3, // #4 = $rc
/*427781*/            OPC_MoveChild3,
/*427782*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427785*/            OPC_MoveParent,
/*427786*/            OPC_MoveParent,
/*427787*/            OPC_CheckType, MVT::v8f64,
/*427789*/            OPC_Scope, 17, /*->427808*/ // 3 children in Scope
/*427791*/              OPC_CheckChild2Same, 2,
/*427793*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427795*/              OPC_EmitConvertToTarget, 4,
/*427797*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427808*/            /*Scope*/ 17, /*->427826*/
/*427809*/              OPC_CheckChild2Same, 3,
/*427811*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427813*/              OPC_EmitConvertToTarget, 4,
/*427815*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427826*/            /*Scope*/ 17, /*->427844*/
/*427827*/              OPC_CheckChild2Same, 1,
/*427829*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427831*/              OPC_EmitConvertToTarget, 4,
/*427833*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427844*/            0, /*End of Scope*/
/*427845*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FNMADD_RND),// ->427916
/*427848*/            OPC_RecordChild0, // #1 = $src2
/*427849*/            OPC_RecordChild1, // #2 = $src1
/*427850*/            OPC_RecordChild2, // #3 = $src3
/*427851*/            OPC_RecordChild3, // #4 = $rc
/*427852*/            OPC_MoveChild3,
/*427853*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427856*/            OPC_MoveParent,
/*427857*/            OPC_MoveParent,
/*427858*/            OPC_CheckType, MVT::v8f64,
/*427860*/            OPC_Scope, 17, /*->427879*/ // 3 children in Scope
/*427862*/              OPC_CheckChild2Same, 2,
/*427864*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427866*/              OPC_EmitConvertToTarget, 4,
/*427868*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427879*/            /*Scope*/ 17, /*->427897*/
/*427880*/              OPC_CheckChild2Same, 3,
/*427882*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427884*/              OPC_EmitConvertToTarget, 4,
/*427886*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427897*/            /*Scope*/ 17, /*->427915*/
/*427898*/              OPC_CheckChild2Same, 1,
/*427900*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427902*/              OPC_EmitConvertToTarget, 4,
/*427904*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427915*/            0, /*End of Scope*/
/*427916*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FNMSUB_RND),// ->427987
/*427919*/            OPC_RecordChild0, // #1 = $src2
/*427920*/            OPC_RecordChild1, // #2 = $src1
/*427921*/            OPC_RecordChild2, // #3 = $src3
/*427922*/            OPC_RecordChild3, // #4 = $rc
/*427923*/            OPC_MoveChild3,
/*427924*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427927*/            OPC_MoveParent,
/*427928*/            OPC_MoveParent,
/*427929*/            OPC_CheckType, MVT::v8f64,
/*427931*/            OPC_Scope, 17, /*->427950*/ // 3 children in Scope
/*427933*/              OPC_CheckChild2Same, 2,
/*427935*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427937*/              OPC_EmitConvertToTarget, 4,
/*427939*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427950*/            /*Scope*/ 17, /*->427968*/
/*427951*/              OPC_CheckChild2Same, 3,
/*427953*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427955*/              OPC_EmitConvertToTarget, 4,
/*427957*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427968*/            /*Scope*/ 17, /*->427986*/
/*427969*/              OPC_CheckChild2Same, 1,
/*427971*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427973*/              OPC_EmitConvertToTarget, 4,
/*427975*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*427986*/            0, /*End of Scope*/
/*427987*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VFPROUND_RND),// ->428017
/*427990*/            OPC_RecordChild0, // #1 = $src
/*427991*/            OPC_CheckChild0Type, MVT::v8f64,
/*427993*/            OPC_RecordChild1, // #2 = $rc
/*427994*/            OPC_MoveChild1,
/*427995*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*427998*/            OPC_MoveParent,
/*427999*/            OPC_MoveParent,
/*428000*/            OPC_RecordChild2, // #3 = $src0
/*428001*/            OPC_CheckType, MVT::v8f32,
/*428003*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428005*/            OPC_EmitConvertToTarget, 2,
/*428007*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrbk), 0,
                          MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86vfproundRnd:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                      // Dst: (VCVTPD2PSZrrbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*428017*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::SINT_TO_FP_RND),// ->428065
/*428020*/            OPC_RecordChild0, // #1 = $src
/*428021*/            OPC_CheckChild0Type, MVT::v8i64,
/*428023*/            OPC_RecordChild1, // #2 = $rc
/*428024*/            OPC_MoveChild1,
/*428025*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*428028*/            OPC_MoveParent,
/*428029*/            OPC_MoveParent,
/*428030*/            OPC_RecordChild2, // #3 = $src0
/*428031*/            OPC_SwitchType /*2 cases */, 14, MVT::v8f64,// ->428048
/*428034*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*428036*/              OPC_EmitConvertToTarget, 2,
/*428038*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrrbk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VSintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VCVTQQ2PDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*428048*/            /*SwitchType*/ 14, MVT::v8f32,// ->428064
/*428050*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*428052*/              OPC_EmitConvertToTarget, 2,
/*428054*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrrbk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VSintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VCVTQQ2PSZrrbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*428064*/            0, // EndSwitchType
/*428065*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::UINT_TO_FP_RND),// ->428113
/*428068*/            OPC_RecordChild0, // #1 = $src
/*428069*/            OPC_CheckChild0Type, MVT::v8i64,
/*428071*/            OPC_RecordChild1, // #2 = $rc
/*428072*/            OPC_MoveChild1,
/*428073*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*428076*/            OPC_MoveParent,
/*428077*/            OPC_MoveParent,
/*428078*/            OPC_RecordChild2, // #3 = $src0
/*428079*/            OPC_SwitchType /*2 cases */, 14, MVT::v8f64,// ->428096
/*428082*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*428084*/              OPC_EmitConvertToTarget, 2,
/*428086*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrrbk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VUintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VCVTUQQ2PDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*428096*/            /*SwitchType*/ 14, MVT::v8f32,// ->428112
/*428098*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*428100*/              OPC_EmitConvertToTarget, 2,
/*428102*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrrbk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VUintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VCVTUQQ2PSZrrbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*428112*/            0, // EndSwitchType
/*428113*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FSQRT_RND),// ->428141
/*428116*/            OPC_RecordChild0, // #1 = $src
/*428117*/            OPC_RecordChild1, // #2 = $rc
/*428118*/            OPC_MoveChild1,
/*428119*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*428122*/            OPC_MoveParent,
/*428123*/            OPC_MoveParent,
/*428124*/            OPC_RecordChild2, // #3 = $src0
/*428125*/            OPC_CheckType, MVT::v8f64,
/*428127*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428129*/            OPC_EmitConvertToTarget, 2,
/*428131*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZrbk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fsqrtRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VSQRTPDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*428141*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VREDUCE),// ->428187
/*428144*/            OPC_RecordChild0, // #1 = $src1
/*428145*/            OPC_RecordChild1, // #2 = $src2
/*428146*/            OPC_MoveChild1,
/*428147*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*428150*/            OPC_MoveParent,
/*428151*/            OPC_MoveParent,
/*428152*/            OPC_RecordChild2, // #3 = $src0
/*428153*/            OPC_SwitchType /*2 cases */, 14, MVT::v8f32,// ->428170
/*428156*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428158*/              OPC_EmitConvertToTarget, 2,
/*428160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rrik), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VREDUCEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*428170*/            /*SwitchType*/ 14, MVT::v8f64,// ->428186
/*428172*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*428174*/              OPC_EmitConvertToTarget, 2,
/*428176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VREDUCEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*428186*/            0, // EndSwitchType
/*428187*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VRNDSCALE),// ->428233
/*428190*/            OPC_RecordChild0, // #1 = $src1
/*428191*/            OPC_RecordChild1, // #2 = $src2
/*428192*/            OPC_MoveChild1,
/*428193*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*428196*/            OPC_MoveParent,
/*428197*/            OPC_MoveParent,
/*428198*/            OPC_RecordChild2, // #3 = $src0
/*428199*/            OPC_SwitchType /*2 cases */, 14, MVT::v8f32,// ->428216
/*428202*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428204*/              OPC_EmitConvertToTarget, 2,
/*428206*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrik), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*428216*/            /*SwitchType*/ 14, MVT::v8f64,// ->428232
/*428218*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428220*/              OPC_EmitConvertToTarget, 2,
/*428222*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*428232*/            0, // EndSwitchType
/*428233*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VGETMANT),// ->428279
/*428236*/            OPC_RecordChild0, // #1 = $src1
/*428237*/            OPC_RecordChild1, // #2 = $src2
/*428238*/            OPC_MoveChild1,
/*428239*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*428242*/            OPC_MoveParent,
/*428243*/            OPC_MoveParent,
/*428244*/            OPC_RecordChild2, // #3 = $src0
/*428245*/            OPC_SwitchType /*2 cases */, 14, MVT::v8f32,// ->428262
/*428248*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428250*/              OPC_EmitConvertToTarget, 2,
/*428252*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rrik), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VGETMANTPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*428262*/            /*SwitchType*/ 14, MVT::v8f64,// ->428278
/*428264*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428266*/              OPC_EmitConvertToTarget, 2,
/*428268*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VGETMANTPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*428278*/            0, // EndSwitchType
/*428279*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VRANGE),// ->428328
/*428282*/            OPC_RecordChild0, // #1 = $src1
/*428283*/            OPC_RecordChild1, // #2 = $src2
/*428284*/            OPC_RecordChild2, // #3 = $src3
/*428285*/            OPC_MoveChild2,
/*428286*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*428289*/            OPC_MoveParent,
/*428290*/            OPC_MoveParent,
/*428291*/            OPC_RecordChild2, // #4 = $src0
/*428292*/            OPC_SwitchType /*2 cases */, 15, MVT::v8f64,// ->428310
/*428295*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*428297*/              OPC_EmitConvertToTarget, 3,
/*428299*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrrik), 0,
                            MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VRANGEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*428310*/            /*SwitchType*/ 15, MVT::v8f32,// ->428327
/*428312*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428314*/              OPC_EmitConvertToTarget, 3,
/*428316*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rrik), 0,
                            MVT::v8f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i32] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VRANGEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*428327*/            0, // EndSwitchType
/*428328*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::SHUF128),// ->428358
/*428331*/            OPC_RecordChild0, // #1 = $src1
/*428332*/            OPC_RecordChild1, // #2 = $src2
/*428333*/            OPC_RecordChild2, // #3 = $src3
/*428334*/            OPC_MoveChild2,
/*428335*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*428338*/            OPC_MoveParent,
/*428339*/            OPC_MoveParent,
/*428340*/            OPC_RecordChild2, // #4 = $src0
/*428341*/            OPC_CheckType, MVT::v8f64,
/*428343*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428345*/            OPC_EmitConvertToTarget, 3,
/*428347*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrrik), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VSHUFF64X2Zrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*428358*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::SHUFP),// ->428407
/*428361*/            OPC_RecordChild0, // #1 = $src1
/*428362*/            OPC_RecordChild1, // #2 = $src2
/*428363*/            OPC_RecordChild2, // #3 = $src3
/*428364*/            OPC_MoveChild2,
/*428365*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*428368*/            OPC_MoveParent,
/*428369*/            OPC_MoveParent,
/*428370*/            OPC_RecordChild2, // #4 = $src0
/*428371*/            OPC_SwitchType /*2 cases */, 15, MVT::v8f32,// ->428389
/*428374*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428376*/              OPC_EmitConvertToTarget, 3,
/*428378*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rrik), 0,
                            MVT::v8f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VSHUFPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*428389*/            /*SwitchType*/ 15, MVT::v8f64,// ->428406
/*428391*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428393*/              OPC_EmitConvertToTarget, 3,
/*428395*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrrik), 0,
                            MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VSHUFPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*428406*/            0, // EndSwitchType
/*428407*/          /*SwitchOpcode*/ 97, TARGET_VAL(X86ISD::VBROADCAST),// ->428507
/*428410*/            OPC_RecordChild0, // #1 = $src
/*428411*/            OPC_Scope, 17, /*->428430*/ // 4 children in Scope
/*428413*/              OPC_CheckChild0Type, MVT::v4f32,
/*428415*/              OPC_MoveParent,
/*428416*/              OPC_RecordChild2, // #2 = $src0
/*428417*/              OPC_CheckType, MVT::v8f32,
/*428419*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428421*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256rk), 0,
                            MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f32] } VR128X:{ *:[v4f32] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VBROADCASTSSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*428430*/            /*Scope*/ 17, /*->428448*/
/*428431*/              OPC_CheckChild0Type, MVT::v2f64,
/*428433*/              OPC_MoveParent,
/*428434*/              OPC_RecordChild2, // #2 = $src0
/*428435*/              OPC_CheckType, MVT::v8f64,
/*428437*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428439*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f64] } VR128X:{ *:[v2f64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VBROADCASTSDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*428448*/            /*Scope*/ 28, /*->428477*/
/*428449*/              OPC_CheckChild0Type, MVT::f32,
/*428451*/              OPC_MoveParent,
/*428452*/              OPC_RecordChild2, // #2 = $src0
/*428453*/              OPC_CheckType, MVT::v8f32,
/*428455*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428457*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*428460*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*428468*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256rk), 0,
                            MVT::v8f32, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f32] } FR32X:{ *:[f32] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VBROADCASTSSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*428477*/            /*Scope*/ 28, /*->428506*/
/*428478*/              OPC_CheckChild0Type, MVT::f64,
/*428480*/              OPC_MoveParent,
/*428481*/              OPC_RecordChild2, // #2 = $src0
/*428482*/              OPC_CheckType, MVT::v8f64,
/*428484*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428486*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*428489*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*428497*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f64] } FR64X:{ *:[f64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VBROADCASTSDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*428506*/            0, /*End of Scope*/
/*428507*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FADD),// ->428544
/*428510*/            OPC_RecordChild0, // #1 = $src1
/*428511*/            OPC_RecordChild1, // #2 = $src2
/*428512*/            OPC_MoveParent,
/*428513*/            OPC_RecordChild2, // #3 = $src0
/*428514*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->428529
/*428517*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428519*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VADDPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*428529*/            /*SwitchType*/ 12, MVT::v8f32,// ->428543
/*428531*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428533*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VADDPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*428543*/            0, // EndSwitchType
/*428544*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FMUL),// ->428581
/*428547*/            OPC_RecordChild0, // #1 = $src1
/*428548*/            OPC_RecordChild1, // #2 = $src2
/*428549*/            OPC_MoveParent,
/*428550*/            OPC_RecordChild2, // #3 = $src0
/*428551*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->428566
/*428554*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428556*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VMULPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*428566*/            /*SwitchType*/ 12, MVT::v8f32,// ->428580
/*428568*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428570*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VMULPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*428580*/            0, // EndSwitchType
/*428581*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FSUB),// ->428618
/*428584*/            OPC_RecordChild0, // #1 = $src1
/*428585*/            OPC_RecordChild1, // #2 = $src2
/*428586*/            OPC_MoveParent,
/*428587*/            OPC_RecordChild2, // #3 = $src0
/*428588*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->428603
/*428591*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428593*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VSUBPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*428603*/            /*SwitchType*/ 12, MVT::v8f32,// ->428617
/*428605*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428607*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VSUBPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*428617*/            0, // EndSwitchType
/*428618*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FDIV),// ->428655
/*428621*/            OPC_RecordChild0, // #1 = $src1
/*428622*/            OPC_RecordChild1, // #2 = $src2
/*428623*/            OPC_MoveParent,
/*428624*/            OPC_RecordChild2, // #3 = $src0
/*428625*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->428640
/*428628*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428630*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VDIVPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*428640*/            /*SwitchType*/ 12, MVT::v8f32,// ->428654
/*428642*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428644*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VDIVPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*428654*/            0, // EndSwitchType
/*428655*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMIN),// ->428692
/*428658*/            OPC_RecordChild0, // #1 = $src1
/*428659*/            OPC_RecordChild1, // #2 = $src2
/*428660*/            OPC_MoveParent,
/*428661*/            OPC_RecordChild2, // #3 = $src0
/*428662*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->428677
/*428665*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428667*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VMINPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*428677*/            /*SwitchType*/ 12, MVT::v8f32,// ->428691
/*428679*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428681*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmin:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VMINPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*428691*/            0, // EndSwitchType
/*428692*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAX),// ->428729
/*428695*/            OPC_RecordChild0, // #1 = $src1
/*428696*/            OPC_RecordChild1, // #2 = $src2
/*428697*/            OPC_MoveParent,
/*428698*/            OPC_RecordChild2, // #3 = $src0
/*428699*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->428714
/*428702*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428704*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VMAXPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*428714*/            /*SwitchType*/ 12, MVT::v8f32,// ->428728
/*428716*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428718*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmax:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VMAXPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*428728*/            0, // EndSwitchType
/*428729*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMINC),// ->428766
/*428732*/            OPC_RecordChild0, // #1 = $src1
/*428733*/            OPC_RecordChild1, // #2 = $src2
/*428734*/            OPC_MoveParent,
/*428735*/            OPC_RecordChild2, // #3 = $src0
/*428736*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->428751
/*428739*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428741*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VMINCPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*428751*/            /*SwitchType*/ 12, MVT::v8f32,// ->428765
/*428753*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428755*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fminc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VMINCPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*428765*/            0, // EndSwitchType
/*428766*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAXC),// ->428803
/*428769*/            OPC_RecordChild0, // #1 = $src1
/*428770*/            OPC_RecordChild1, // #2 = $src2
/*428771*/            OPC_MoveParent,
/*428772*/            OPC_RecordChild2, // #3 = $src0
/*428773*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->428788
/*428776*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428778*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VMAXCPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*428788*/            /*SwitchType*/ 12, MVT::v8f32,// ->428802
/*428790*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428792*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VMAXCPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*428802*/            0, // EndSwitchType
/*428803*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMV),// ->428840
/*428806*/            OPC_RecordChild0, // #1 = $src1
/*428807*/            OPC_RecordChild1, // #2 = $src2
/*428808*/            OPC_MoveParent,
/*428809*/            OPC_RecordChild2, // #3 = $src0
/*428810*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->428825
/*428813*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428815*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VPERMPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*428825*/            /*SwitchType*/ 12, MVT::v8f64,// ->428839
/*428827*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428829*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermv:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VPERMPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*428839*/            0, // EndSwitchType
/*428840*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMILPV),// ->428877
/*428843*/            OPC_RecordChild0, // #1 = $src1
/*428844*/            OPC_RecordChild1, // #2 = $src2
/*428845*/            OPC_MoveParent,
/*428846*/            OPC_RecordChild2, // #3 = $src0
/*428847*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->428862
/*428850*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428852*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VPERMILPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*428862*/            /*SwitchType*/ 12, MVT::v8f64,// ->428876
/*428864*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428866*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VPERMILPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*428876*/            0, // EndSwitchType
/*428877*/          /*SwitchOpcode*/ 105, TARGET_VAL(ISD::FMA),// ->428985
/*428880*/            OPC_RecordChild0, // #1 = $src2
/*428881*/            OPC_RecordChild1, // #2 = $src1
/*428882*/            OPC_RecordChild2, // #3 = $src3
/*428883*/            OPC_MoveParent,
/*428884*/            OPC_Scope, 32, /*->428918*/ // 3 children in Scope
/*428886*/              OPC_CheckChild2Same, 2,
/*428888*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->428903
/*428891*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428893*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADD213PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*428903*/              /*SwitchType*/ 12, MVT::v8f64,// ->428917
/*428905*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428907*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADD213PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*428917*/              0, // EndSwitchType
/*428918*/            /*Scope*/ 32, /*->428951*/
/*428919*/              OPC_CheckChild2Same, 3,
/*428921*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->428936
/*428924*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428926*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADD231PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*428936*/              /*SwitchType*/ 12, MVT::v8f64,// ->428950
/*428938*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428940*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADD231PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*428950*/              0, // EndSwitchType
/*428951*/            /*Scope*/ 32, /*->428984*/
/*428952*/              OPC_CheckChild2Same, 1,
/*428954*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->428969
/*428957*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*428959*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADD132PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*428969*/              /*SwitchType*/ 12, MVT::v8f64,// ->428983
/*428971*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428973*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADD132PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*428983*/              0, // EndSwitchType
/*428984*/            0, /*End of Scope*/
/*428985*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMSUB),// ->429093
/*428988*/            OPC_RecordChild0, // #1 = $src2
/*428989*/            OPC_RecordChild1, // #2 = $src1
/*428990*/            OPC_RecordChild2, // #3 = $src3
/*428991*/            OPC_MoveParent,
/*428992*/            OPC_Scope, 32, /*->429026*/ // 3 children in Scope
/*428994*/              OPC_CheckChild2Same, 2,
/*428996*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429011
/*428999*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429001*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB213PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429011*/              /*SwitchType*/ 12, MVT::v8f64,// ->429025
/*429013*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429015*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB213PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429025*/              0, // EndSwitchType
/*429026*/            /*Scope*/ 32, /*->429059*/
/*429027*/              OPC_CheckChild2Same, 3,
/*429029*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429044
/*429032*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429034*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB231PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429044*/              /*SwitchType*/ 12, MVT::v8f64,// ->429058
/*429046*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429048*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB231PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429058*/              0, // EndSwitchType
/*429059*/            /*Scope*/ 32, /*->429092*/
/*429060*/              OPC_CheckChild2Same, 1,
/*429062*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429077
/*429065*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429067*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB132PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429077*/              /*SwitchType*/ 12, MVT::v8f64,// ->429091
/*429079*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429081*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUB132PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429091*/              0, // EndSwitchType
/*429092*/            0, /*End of Scope*/
/*429093*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMADDSUB),// ->429201
/*429096*/            OPC_RecordChild0, // #1 = $src2
/*429097*/            OPC_RecordChild1, // #2 = $src1
/*429098*/            OPC_RecordChild2, // #3 = $src3
/*429099*/            OPC_MoveParent,
/*429100*/            OPC_Scope, 32, /*->429134*/ // 3 children in Scope
/*429102*/              OPC_CheckChild2Same, 2,
/*429104*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429119
/*429107*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429109*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB213PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429119*/              /*SwitchType*/ 12, MVT::v8f64,// ->429133
/*429121*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429123*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB213PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429133*/              0, // EndSwitchType
/*429134*/            /*Scope*/ 32, /*->429167*/
/*429135*/              OPC_CheckChild2Same, 3,
/*429137*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429152
/*429140*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429142*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB231PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429152*/              /*SwitchType*/ 12, MVT::v8f64,// ->429166
/*429154*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429156*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB231PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429166*/              0, // EndSwitchType
/*429167*/            /*Scope*/ 32, /*->429200*/
/*429168*/              OPC_CheckChild2Same, 1,
/*429170*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429185
/*429173*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429175*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB132PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429185*/              /*SwitchType*/ 12, MVT::v8f64,// ->429199
/*429187*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429189*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMADDSUB132PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429199*/              0, // EndSwitchType
/*429200*/            0, /*End of Scope*/
/*429201*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMSUBADD),// ->429309
/*429204*/            OPC_RecordChild0, // #1 = $src2
/*429205*/            OPC_RecordChild1, // #2 = $src1
/*429206*/            OPC_RecordChild2, // #3 = $src3
/*429207*/            OPC_MoveParent,
/*429208*/            OPC_Scope, 32, /*->429242*/ // 3 children in Scope
/*429210*/              OPC_CheckChild2Same, 2,
/*429212*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429227
/*429215*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429217*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD213PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429227*/              /*SwitchType*/ 12, MVT::v8f64,// ->429241
/*429229*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429231*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD213PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429241*/              0, // EndSwitchType
/*429242*/            /*Scope*/ 32, /*->429275*/
/*429243*/              OPC_CheckChild2Same, 3,
/*429245*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429260
/*429248*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429250*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD231PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429260*/              /*SwitchType*/ 12, MVT::v8f64,// ->429274
/*429262*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429264*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD231PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429274*/              0, // EndSwitchType
/*429275*/            /*Scope*/ 32, /*->429308*/
/*429276*/              OPC_CheckChild2Same, 1,
/*429278*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429293
/*429281*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429283*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD132PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429293*/              /*SwitchType*/ 12, MVT::v8f64,// ->429307
/*429295*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429297*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFMSUBADD132PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429307*/              0, // EndSwitchType
/*429308*/            0, /*End of Scope*/
/*429309*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FNMADD),// ->429417
/*429312*/            OPC_RecordChild0, // #1 = $src2
/*429313*/            OPC_RecordChild1, // #2 = $src1
/*429314*/            OPC_RecordChild2, // #3 = $src3
/*429315*/            OPC_MoveParent,
/*429316*/            OPC_Scope, 32, /*->429350*/ // 3 children in Scope
/*429318*/              OPC_CheckChild2Same, 2,
/*429320*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429335
/*429323*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429325*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD213PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429335*/              /*SwitchType*/ 12, MVT::v8f64,// ->429349
/*429337*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429339*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD213PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429349*/              0, // EndSwitchType
/*429350*/            /*Scope*/ 32, /*->429383*/
/*429351*/              OPC_CheckChild2Same, 3,
/*429353*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429368
/*429356*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429358*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD231PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429368*/              /*SwitchType*/ 12, MVT::v8f64,// ->429382
/*429370*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429372*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD231PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429382*/              0, // EndSwitchType
/*429383*/            /*Scope*/ 32, /*->429416*/
/*429384*/              OPC_CheckChild2Same, 1,
/*429386*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429401
/*429389*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429391*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD132PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429401*/              /*SwitchType*/ 12, MVT::v8f64,// ->429415
/*429403*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429405*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMADD132PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429415*/              0, // EndSwitchType
/*429416*/            0, /*End of Scope*/
/*429417*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FNMSUB),// ->429525
/*429420*/            OPC_RecordChild0, // #1 = $src2
/*429421*/            OPC_RecordChild1, // #2 = $src1
/*429422*/            OPC_RecordChild2, // #3 = $src3
/*429423*/            OPC_MoveParent,
/*429424*/            OPC_Scope, 32, /*->429458*/ // 3 children in Scope
/*429426*/              OPC_CheckChild2Same, 2,
/*429428*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429443
/*429431*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429433*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB213PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429443*/              /*SwitchType*/ 12, MVT::v8f64,// ->429457
/*429445*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429447*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB213PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429457*/              0, // EndSwitchType
/*429458*/            /*Scope*/ 32, /*->429491*/
/*429459*/              OPC_CheckChild2Same, 3,
/*429461*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429476
/*429464*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429466*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB231PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429476*/              /*SwitchType*/ 12, MVT::v8f64,// ->429490
/*429478*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429480*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB231PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429490*/              0, // EndSwitchType
/*429491*/            /*Scope*/ 32, /*->429524*/
/*429492*/              OPC_CheckChild2Same, 1,
/*429494*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->429509
/*429497*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429499*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZ256rk), 0,
                              MVT::v8f32, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB132PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*429509*/              /*SwitchType*/ 12, MVT::v8f64,// ->429523
/*429511*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429513*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 1, 0, 3, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Fnmsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 6
                          // Dst: (VFNMSUB132PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*429523*/              0, // EndSwitchType
/*429524*/            0, /*End of Scope*/
/*429525*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::FP_ROUND),// ->429544
/*429528*/            OPC_RecordChild0, // #1 = $src
/*429529*/            OPC_MoveParent,
/*429530*/            OPC_RecordChild2, // #2 = $src0
/*429531*/            OPC_CheckType, MVT::v8f32,
/*429533*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429535*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrk), 0,
                          MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fpround:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPD2PSZrrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*429544*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::FP_EXTEND),// ->429563
/*429547*/            OPC_RecordChild0, // #1 = $src
/*429548*/            OPC_MoveParent,
/*429549*/            OPC_RecordChild2, // #2 = $src0
/*429550*/            OPC_CheckType, MVT::v8f64,
/*429552*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429554*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrrk), 0,
                          MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fpextend:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTPS2PDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*429563*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::SINT_TO_FP),// ->429635
/*429566*/            OPC_RecordChild0, // #1 = $src
/*429567*/            OPC_Scope, 32, /*->429601*/ // 2 children in Scope
/*429569*/              OPC_CheckChild0Type, MVT::v8i32,
/*429571*/              OPC_MoveParent,
/*429572*/              OPC_RecordChild2, // #2 = $src0
/*429573*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->429587
/*429576*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429578*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrrk), 0,
                              MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTDQ2PDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*429587*/              /*SwitchType*/ 11, MVT::v8f32,// ->429600
/*429589*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429591*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rrk), 0,
                              MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTDQ2PSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*429600*/              0, // EndSwitchType
/*429601*/            /*Scope*/ 32, /*->429634*/
/*429602*/              OPC_CheckChild0Type, MVT::v8i64,
/*429604*/              OPC_MoveParent,
/*429605*/              OPC_RecordChild2, // #2 = $src0
/*429606*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->429620
/*429609*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*429611*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrrk), 0,
                              MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTQQ2PDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*429620*/              /*SwitchType*/ 11, MVT::v8f32,// ->429633
/*429622*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*429624*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrrk), 0,
                              MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (sint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTQQ2PSZrrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*429633*/              0, // EndSwitchType
/*429634*/            0, /*End of Scope*/
/*429635*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::UINT_TO_FP),// ->429707
/*429638*/            OPC_RecordChild0, // #1 = $src
/*429639*/            OPC_Scope, 32, /*->429673*/ // 2 children in Scope
/*429641*/              OPC_CheckChild0Type, MVT::v8i32,
/*429643*/              OPC_MoveParent,
/*429644*/              OPC_RecordChild2, // #2 = $src0
/*429645*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->429659
/*429648*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429650*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrrk), 0,
                              MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTUDQ2PDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*429659*/              /*SwitchType*/ 11, MVT::v8f32,// ->429672
/*429661*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429663*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rrk), 0,
                              MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTUDQ2PSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*429672*/              0, // EndSwitchType
/*429673*/            /*Scope*/ 32, /*->429706*/
/*429674*/              OPC_CheckChild0Type, MVT::v8i64,
/*429676*/              OPC_MoveParent,
/*429677*/              OPC_RecordChild2, // #2 = $src0
/*429678*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->429692
/*429681*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*429683*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrrk), 0,
                              MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTUQQ2PDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*429692*/              /*SwitchType*/ 11, MVT::v8f32,// ->429705
/*429694*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*429696*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrrk), 0,
                              MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (uint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTUQQ2PSZrrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*429705*/              0, // EndSwitchType
/*429706*/            0, /*End of Scope*/
/*429707*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTPH2PS),// ->429728
/*429710*/            OPC_RecordChild0, // #1 = $src
/*429711*/            OPC_CheckChild0Type, MVT::v8i16,
/*429713*/            OPC_MoveParent,
/*429714*/            OPC_RecordChild2, // #2 = $src0
/*429715*/            OPC_CheckType, MVT::v8f32,
/*429717*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429719*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ256rrk), 0,
                          MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtph2ps:{ *:[v8f32] } VR128X:{ *:[v8i16] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPH2PSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*429728*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RSQRT14),// ->429762
/*429731*/            OPC_RecordChild0, // #1 = $src
/*429732*/            OPC_MoveParent,
/*429733*/            OPC_RecordChild2, // #2 = $src0
/*429734*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->429748
/*429737*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429739*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VRSQRT14PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*429748*/            /*SwitchType*/ 11, MVT::v8f32,// ->429761
/*429750*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429752*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ256rk), 0,
                            MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VRSQRT14PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*429761*/            0, // EndSwitchType
/*429762*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RCP14),// ->429796
/*429765*/            OPC_RecordChild0, // #1 = $src
/*429766*/            OPC_MoveParent,
/*429767*/            OPC_RecordChild2, // #2 = $src0
/*429768*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->429782
/*429771*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429773*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VRCP14PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*429782*/            /*SwitchType*/ 11, MVT::v8f32,// ->429795
/*429784*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429786*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ256rk), 0,
                            MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VRCP14PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*429795*/            0, // EndSwitchType
/*429796*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::FSQRT),// ->429830
/*429799*/            OPC_RecordChild0, // #1 = $src
/*429800*/            OPC_MoveParent,
/*429801*/            OPC_RecordChild2, // #2 = $src0
/*429802*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->429816
/*429805*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429807*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VSQRTPDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*429816*/            /*SwitchType*/ 11, MVT::v8f32,// ->429829
/*429818*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429820*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256rk), 0,
                            MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VSQRTPSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*429829*/            0, // EndSwitchType
/*429830*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::COMPRESS),// ->429864
/*429833*/            OPC_RecordChild0, // #1 = $src1
/*429834*/            OPC_MoveParent,
/*429835*/            OPC_RecordChild2, // #2 = $src0
/*429836*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f32,// ->429850
/*429839*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429841*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZ256rrk), 0,
                            MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86compress:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VCOMPRESSPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1)
/*429850*/            /*SwitchType*/ 11, MVT::v8f64,// ->429863
/*429852*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429854*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZrrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86compress:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VCOMPRESSPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1)
/*429863*/            0, // EndSwitchType
/*429864*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::EXPAND),// ->429898
/*429867*/            OPC_RecordChild0, // #1 = $src1
/*429868*/            OPC_MoveParent,
/*429869*/            OPC_RecordChild2, // #2 = $src0
/*429870*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f32,// ->429884
/*429873*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*429875*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rrk), 0,
                            MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VEXPANDPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1)
/*429884*/            /*SwitchType*/ 11, MVT::v8f64,// ->429897
/*429886*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429888*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86expand:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VEXPANDPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1)
/*429897*/            0, // EndSwitchType
/*429898*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FFLOOR),// ->429940
/*429901*/            OPC_RecordChild0, // #1 = $src
/*429902*/            OPC_MoveParent,
/*429903*/            OPC_RecordChild2, // #2 = $dst
/*429904*/            OPC_SwitchType /*2 cases */, 15, MVT::v8f64,// ->429922
/*429907*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429909*/              OPC_EmitInteger, MVT::i32, 9, 
/*429912*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, 9:{ *:[i32] })
/*429922*/            /*SwitchType*/ 15, MVT::v8f32,// ->429939
/*429924*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429926*/              OPC_EmitInteger, MVT::i32, 9, 
/*429929*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrik), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ffloor:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8f32] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, 9:{ *:[i32] })
/*429939*/            0, // EndSwitchType
/*429940*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FNEARBYINT),// ->429982
/*429943*/            OPC_RecordChild0, // #1 = $src
/*429944*/            OPC_MoveParent,
/*429945*/            OPC_RecordChild2, // #2 = $dst
/*429946*/            OPC_SwitchType /*2 cases */, 15, MVT::v8f64,// ->429964
/*429949*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429951*/              OPC_EmitInteger, MVT::i32, 12, 
/*429954*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, 12:{ *:[i32] })
/*429964*/            /*SwitchType*/ 15, MVT::v8f32,// ->429981
/*429966*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429968*/              OPC_EmitInteger, MVT::i32, 12, 
/*429971*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrik), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fnearbyint:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8f32] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, 12:{ *:[i32] })
/*429981*/            0, // EndSwitchType
/*429982*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FCEIL),// ->430024
/*429985*/            OPC_RecordChild0, // #1 = $src
/*429986*/            OPC_MoveParent,
/*429987*/            OPC_RecordChild2, // #2 = $dst
/*429988*/            OPC_SwitchType /*2 cases */, 15, MVT::v8f64,// ->430006
/*429991*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429993*/              OPC_EmitInteger, MVT::i32, 10, 
/*429996*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, 10:{ *:[i32] })
/*430006*/            /*SwitchType*/ 15, MVT::v8f32,// ->430023
/*430008*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430010*/              OPC_EmitInteger, MVT::i32, 10, 
/*430013*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrik), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fceil:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8f32] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, 10:{ *:[i32] })
/*430023*/            0, // EndSwitchType
/*430024*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FRINT),// ->430066
/*430027*/            OPC_RecordChild0, // #1 = $src
/*430028*/            OPC_MoveParent,
/*430029*/            OPC_RecordChild2, // #2 = $dst
/*430030*/            OPC_SwitchType /*2 cases */, 15, MVT::v8f64,// ->430048
/*430033*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430035*/              OPC_EmitInteger, MVT::i32, 4, 
/*430038*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] })
/*430048*/            /*SwitchType*/ 15, MVT::v8f32,// ->430065
/*430050*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430052*/              OPC_EmitInteger, MVT::i32, 4, 
/*430055*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrik), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (frint:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8f32] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, 4:{ *:[i32] })
/*430065*/            0, // EndSwitchType
/*430066*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FTRUNC),// ->430108
/*430069*/            OPC_RecordChild0, // #1 = $src
/*430070*/            OPC_MoveParent,
/*430071*/            OPC_RecordChild2, // #2 = $dst
/*430072*/            OPC_SwitchType /*2 cases */, 15, MVT::v8f64,// ->430090
/*430075*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430077*/              OPC_EmitInteger, MVT::i32, 11, 
/*430080*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, 11:{ *:[i32] })
/*430090*/            /*SwitchType*/ 15, MVT::v8f32,// ->430107
/*430092*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430094*/              OPC_EmitInteger, MVT::i32, 11, 
/*430097*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrik), 0,
                            MVT::v8f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (ftrunc:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8f32] }:$dst) - Complexity = 6
                        // Dst: (VRNDSCALEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, 11:{ *:[i32] })
/*430107*/            0, // EndSwitchType
/*430108*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSHDUP),// ->430127
/*430111*/            OPC_RecordChild0, // #1 = $src1
/*430112*/            OPC_MoveParent,
/*430113*/            OPC_RecordChild2, // #2 = $src0
/*430114*/            OPC_CheckType, MVT::v8f32,
/*430116*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*430118*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ256rrk), 0,
                          MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Movshdup:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                      // Dst: (VMOVSHDUPZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1)
/*430127*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSLDUP),// ->430146
/*430130*/            OPC_RecordChild0, // #1 = $src1
/*430131*/            OPC_MoveParent,
/*430132*/            OPC_RecordChild2, // #2 = $src0
/*430133*/            OPC_CheckType, MVT::v8f32,
/*430135*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*430137*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ256rrk), 0,
                          MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Movsldup:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                      // Dst: (VMOVSLDUPZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1)
/*430146*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVDDUP),// ->430165
/*430149*/            OPC_RecordChild0, // #1 = $src1
/*430150*/            OPC_MoveParent,
/*430151*/            OPC_RecordChild2, // #2 = $src0
/*430152*/            OPC_CheckType, MVT::v8f64,
/*430154*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430156*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZrrk), 0,
                          MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Movddup:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VMOVDDUPZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1)
/*430165*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->430202
/*430168*/            OPC_RecordChild0, // #1 = $src1
/*430169*/            OPC_RecordChild1, // #2 = $src2
/*430170*/            OPC_MoveParent,
/*430171*/            OPC_RecordChild2, // #3 = $src0
/*430172*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->430187
/*430175*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430177*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VUNPCKHPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*430187*/            /*SwitchType*/ 12, MVT::v8f32,// ->430201
/*430189*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*430191*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckh:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VUNPCKHPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*430201*/            0, // EndSwitchType
/*430202*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->430239
/*430205*/            OPC_RecordChild0, // #1 = $src1
/*430206*/            OPC_RecordChild1, // #2 = $src2
/*430207*/            OPC_MoveParent,
/*430208*/            OPC_RecordChild2, // #3 = $src0
/*430209*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->430224
/*430212*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430214*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZrrk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VUNPCKLPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*430224*/            /*SwitchType*/ 12, MVT::v8f32,// ->430238
/*430226*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*430228*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ256rrk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Unpckl:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VUNPCKLPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*430238*/            0, // EndSwitchType
/*430239*/          0, // EndSwitchOpcode
/*430240*/        /*Scope*/ 103, /*->430344*/
/*430241*/          OPC_RecordChild1, // #1 = $src1
/*430242*/          OPC_RecordChild2, // #2 = $src0
/*430243*/          OPC_SwitchType /*2 cases */, 84, MVT::v8f32,// ->430330
/*430246*/            OPC_Scope, 11, /*->430259*/ // 2 children in Scope
/*430248*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*430250*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rrk), 0,
                            MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src0) - Complexity = 3
                        // Dst: (VMOVAPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1)
/*430259*/            /*Scope*/ 69, /*->430329*/
/*430260*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*430262*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16f32, 0/*#Ops*/,  // Results = #3
/*430268*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*430271*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16f32, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*430280*/              OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*430283*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*430291*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16f32, 0/*#Ops*/,  // Results = #8
/*430297*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*430300*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16f32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*430309*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZrrk), 0,
                            MVT::v16f32, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*430318*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*430321*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v8f32, 2/*#Ops*/, 11, 12, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src0) - Complexity = 3
                        // Dst: (EXTRACT_SUBREG:{ *:[v8f32] } (VMOVAPSZrrk:{ *:[v16f32] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src0, sub_ymm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8WM:{ *:[v8i1] }:$mask, VK16WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*430329*/            0, /*End of Scope*/
/*430330*/          /*SwitchType*/ 11, MVT::v8f64,// ->430343
/*430332*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430334*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrrk), 0,
                          MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src0) - Complexity = 3
                      // Dst: (VMOVAPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1)
/*430343*/          0, // EndSwitchType
/*430344*/        0, /*End of Scope*/
/*430345*/      /*Scope*/ 37|128,124|128,1/*32293*/, /*->462641*/
/*430348*/        OPC_CheckChild0Type, MVT::v16i1,
/*430350*/        OPC_Scope, 79, /*->430431*/ // 19 children in Scope
/*430352*/          OPC_RecordChild1, // #1 = $src3
/*430353*/          OPC_MoveChild1,
/*430354*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*430357*/          OPC_RecordChild0, // #2 = $src1
/*430358*/          OPC_RecordChild1, // #3 = $src2
/*430359*/          OPC_Scope, 34, /*->430395*/ // 2 children in Scope
/*430361*/            OPC_CheckChild1Type, MVT::v4i32,
/*430363*/            OPC_MoveChild2,
/*430364*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*430367*/            OPC_CheckType, MVT::iPTR,
/*430369*/            OPC_MoveParent,
/*430370*/            OPC_MoveParent,
/*430371*/            OPC_MoveChild2,
/*430372*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430375*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430377*/            OPC_MoveParent,
/*430378*/            OPC_CheckType, MVT::v16i32,
/*430380*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430382*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*430385*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrrkz), 0,
                          MVT::v16i32, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VINSERTI32x4Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*430395*/          /*Scope*/ 34, /*->430430*/
/*430396*/            OPC_CheckChild1Type, MVT::v8i32,
/*430398*/            OPC_MoveChild2,
/*430399*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*430402*/            OPC_CheckType, MVT::iPTR,
/*430404*/            OPC_MoveParent,
/*430405*/            OPC_MoveParent,
/*430406*/            OPC_MoveChild2,
/*430407*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430410*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430412*/            OPC_MoveParent,
/*430413*/            OPC_CheckType, MVT::v16i32,
/*430415*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*430417*/            OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*430420*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrrkz), 0,
                          MVT::v16i32, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VINSERTI32x8Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*430430*/          0, /*End of Scope*/
/*430431*/        /*Scope*/ 67|128,29/*3779*/, /*->434212*/
/*430433*/          OPC_MoveChild1,
/*430434*/          OPC_SwitchOpcode /*61 cases */, 77|128,1/*205*/, TARGET_VAL(X86ISD::VBROADCAST),// ->430644
/*430439*/            OPC_RecordChild0, // #1 = $src
/*430440*/            OPC_Scope, 29, /*->430471*/ // 6 children in Scope
/*430442*/              OPC_CheckChild0Type, MVT::v16i8,
/*430444*/              OPC_MoveParent,
/*430445*/              OPC_MoveChild2,
/*430446*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*430449*/              OPC_MoveChild0,
/*430450*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430453*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430455*/              OPC_CheckType, MVT::v4i32,
/*430457*/              OPC_MoveParent,
/*430458*/              OPC_MoveParent,
/*430459*/              OPC_CheckType, MVT::v16i8,
/*430461*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*430463*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ128rkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTBZ128rkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*430471*/            /*Scope*/ 29, /*->430501*/
/*430472*/              OPC_CheckChild0Type, MVT::v8i16,
/*430474*/              OPC_MoveParent,
/*430475*/              OPC_MoveChild2,
/*430476*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*430479*/              OPC_MoveChild0,
/*430480*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430483*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430485*/              OPC_CheckType, MVT::v8i32,
/*430487*/              OPC_MoveParent,
/*430488*/              OPC_MoveParent,
/*430489*/              OPC_CheckType, MVT::v16i16,
/*430491*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*430493*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256rkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i16] } VR128X:{ *:[v8i16] }:$src), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTWZ256rkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*430501*/            /*Scope*/ 47, /*->430549*/
/*430502*/              OPC_CheckChild0Type, MVT::i8,
/*430504*/              OPC_MoveParent,
/*430505*/              OPC_MoveChild2,
/*430506*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*430509*/              OPC_MoveChild0,
/*430510*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430513*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430515*/              OPC_CheckType, MVT::v4i32,
/*430517*/              OPC_MoveParent,
/*430518*/              OPC_MoveParent,
/*430519*/              OPC_CheckType, MVT::v16i8,
/*430521*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*430523*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*430529*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*430532*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*430541*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZ128rkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i8] } GR8:{ *:[i8] }:$src), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTBrZ128rkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*430549*/            /*Scope*/ 47, /*->430597*/
/*430550*/              OPC_CheckChild0Type, MVT::i16,
/*430552*/              OPC_MoveParent,
/*430553*/              OPC_MoveChild2,
/*430554*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*430557*/              OPC_MoveChild0,
/*430558*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430561*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430563*/              OPC_CheckType, MVT::v8i32,
/*430565*/              OPC_MoveParent,
/*430566*/              OPC_MoveParent,
/*430567*/              OPC_CheckType, MVT::v16i16,
/*430569*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*430571*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*430577*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*430580*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*430589*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZ256rkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i16] } GR16:{ *:[i16] }:$src), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTWrZ256rkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*430597*/            /*Scope*/ 22, /*->430620*/
/*430598*/              OPC_CheckChild0Type, MVT::i32,
/*430600*/              OPC_MoveParent,
/*430601*/              OPC_MoveChild2,
/*430602*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430605*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430607*/              OPC_MoveParent,
/*430608*/              OPC_CheckType, MVT::v16i32,
/*430610*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430612*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i32] } GR32:{ *:[i32] }:$src), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPBROADCASTDrZrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, GR32:{ *:[i32] }:$src)
/*430620*/            /*Scope*/ 22, /*->430643*/
/*430621*/              OPC_CheckChild0Type, MVT::v4i32,
/*430623*/              OPC_MoveParent,
/*430624*/              OPC_MoveChild2,
/*430625*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430628*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430630*/              OPC_MoveParent,
/*430631*/              OPC_CheckType, MVT::v16i32,
/*430633*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430635*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i32] } VR128X:{ *:[v4i32] }:$src), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPBROADCASTDZrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*430643*/            0, /*End of Scope*/
/*430644*/          /*SwitchOpcode*/ 102|128,3/*486*/, TARGET_VAL(ISD::BITCAST),// ->431134
/*430648*/            OPC_Scope, 20|128,1/*148*/, /*->430799*/ // 3 children in Scope
/*430651*/              OPC_MoveChild0,
/*430652*/              OPC_SwitchOpcode /*5 cases */, 26, TARGET_VAL(X86ISD::VBROADCAST),// ->430682
/*430656*/                OPC_RecordChild0, // #1 = $src
/*430657*/                OPC_CheckChild0Type, MVT::v2i64,
/*430659*/                OPC_CheckType, MVT::v8i64,
/*430661*/                OPC_MoveParent,
/*430662*/                OPC_MoveParent,
/*430663*/                OPC_MoveChild2,
/*430664*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430667*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430669*/                OPC_MoveParent,
/*430670*/                OPC_CheckType, MVT::v16i32,
/*430672*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*430674*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Zrkz), 0,
                              MVT::v16i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VBroadcast:{ *:[v8i64] } VR128X:{ *:[v2i64] }:$src)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VBROADCASTI32X2Zrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*430682*/              /*SwitchOpcode*/ 26, TARGET_VAL(ISD::AND),// ->430711
/*430685*/                OPC_RecordChild0, // #1 = $src1
/*430686*/                OPC_RecordChild1, // #2 = $src2
/*430687*/                OPC_CheckType, MVT::v8i64,
/*430689*/                OPC_MoveParent,
/*430690*/                OPC_MoveParent,
/*430691*/                OPC_MoveChild2,
/*430692*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430695*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430697*/                OPC_MoveParent,
/*430698*/                OPC_CheckType, MVT::v16i32,
/*430700*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430702*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrkz), 0,
                              MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPANDDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*430711*/              /*SwitchOpcode*/ 26, TARGET_VAL(ISD::OR),// ->430740
/*430714*/                OPC_RecordChild0, // #1 = $src1
/*430715*/                OPC_RecordChild1, // #2 = $src2
/*430716*/                OPC_CheckType, MVT::v8i64,
/*430718*/                OPC_MoveParent,
/*430719*/                OPC_MoveParent,
/*430720*/                OPC_MoveChild2,
/*430721*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430724*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430726*/                OPC_MoveParent,
/*430727*/                OPC_CheckType, MVT::v16i32,
/*430729*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430731*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrkz), 0,
                              MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPORDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*430740*/              /*SwitchOpcode*/ 26, TARGET_VAL(ISD::XOR),// ->430769
/*430743*/                OPC_RecordChild0, // #1 = $src1
/*430744*/                OPC_RecordChild1, // #2 = $src2
/*430745*/                OPC_CheckType, MVT::v8i64,
/*430747*/                OPC_MoveParent,
/*430748*/                OPC_MoveParent,
/*430749*/                OPC_MoveChild2,
/*430750*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430753*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430755*/                OPC_MoveParent,
/*430756*/                OPC_CheckType, MVT::v16i32,
/*430758*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430760*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrkz), 0,
                              MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPXORDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*430769*/              /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::ANDNP),// ->430798
/*430772*/                OPC_RecordChild0, // #1 = $src1
/*430773*/                OPC_RecordChild1, // #2 = $src2
/*430774*/                OPC_CheckType, MVT::v8i64,
/*430776*/                OPC_MoveParent,
/*430777*/                OPC_MoveParent,
/*430778*/                OPC_MoveChild2,
/*430779*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*430782*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*430784*/                OPC_MoveParent,
/*430785*/                OPC_CheckType, MVT::v16i32,
/*430787*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430789*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrkz), 0,
                              MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                          // Dst: (VPANDNDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*430798*/              0, // EndSwitchOpcode
/*430799*/            /*Scope*/ 79|128,1/*207*/, /*->431008*/
/*430801*/              OPC_RecordChild0, // #1 = $ins
/*430802*/              OPC_MoveChild0,
/*430803*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*430806*/              OPC_RecordChild0, // #2 = $src1
/*430807*/              OPC_RecordChild1, // #3 = $src2
/*430808*/              OPC_Scope, 32, /*->430842*/ // 6 children in Scope
/*430810*/                OPC_CheckChild1Type, MVT::v2i64,
/*430812*/                OPC_MoveChild2,
/*430813*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*430816*/                OPC_CheckType, MVT::iPTR,
/*430818*/                OPC_MoveParent,
/*430819*/                OPC_CheckType, MVT::v8i64,
/*430821*/                OPC_MoveParent,
/*430822*/                OPC_MoveParent,
/*430823*/                OPC_RecordChild2, // #4 = $src0
/*430824*/                OPC_CheckType, MVT::v16i32,
/*430826*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430828*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*430831*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrrk), 0,
                              MVT::v16i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 12
                          // Dst: (VINSERTI32x4Zrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*430842*/              /*Scope*/ 32, /*->430875*/
/*430843*/                OPC_CheckChild1Type, MVT::v8i16,
/*430845*/                OPC_MoveChild2,
/*430846*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*430849*/                OPC_CheckType, MVT::iPTR,
/*430851*/                OPC_MoveParent,
/*430852*/                OPC_CheckType, MVT::v32i16,
/*430854*/                OPC_MoveParent,
/*430855*/                OPC_MoveParent,
/*430856*/                OPC_RecordChild2, // #4 = $src0
/*430857*/                OPC_CheckType, MVT::v16i32,
/*430859*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430861*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*430864*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrrk), 0,
                              MVT::v16i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 12
                          // Dst: (VINSERTI32x4Zrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*430875*/              /*Scope*/ 32, /*->430908*/
/*430876*/                OPC_CheckChild1Type, MVT::v16i8,
/*430878*/                OPC_MoveChild2,
/*430879*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*430882*/                OPC_CheckType, MVT::iPTR,
/*430884*/                OPC_MoveParent,
/*430885*/                OPC_CheckType, MVT::v64i8,
/*430887*/                OPC_MoveParent,
/*430888*/                OPC_MoveParent,
/*430889*/                OPC_RecordChild2, // #4 = $src0
/*430890*/                OPC_CheckType, MVT::v16i32,
/*430892*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430894*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*430897*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrrk), 0,
                              MVT::v16i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 12
                          // Dst: (VINSERTI32x4Zrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*430908*/              /*Scope*/ 32, /*->430941*/
/*430909*/                OPC_CheckChild1Type, MVT::v4i64,
/*430911*/                OPC_MoveChild2,
/*430912*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*430915*/                OPC_CheckType, MVT::iPTR,
/*430917*/                OPC_MoveParent,
/*430918*/                OPC_CheckType, MVT::v8i64,
/*430920*/                OPC_MoveParent,
/*430921*/                OPC_MoveParent,
/*430922*/                OPC_RecordChild2, // #4 = $src0
/*430923*/                OPC_CheckType, MVT::v16i32,
/*430925*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*430927*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*430930*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrrk), 0,
                              MVT::v16i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 12
                          // Dst: (VINSERTI32x8Zrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*430941*/              /*Scope*/ 32, /*->430974*/
/*430942*/                OPC_CheckChild1Type, MVT::v16i16,
/*430944*/                OPC_MoveChild2,
/*430945*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*430948*/                OPC_CheckType, MVT::iPTR,
/*430950*/                OPC_MoveParent,
/*430951*/                OPC_CheckType, MVT::v32i16,
/*430953*/                OPC_MoveParent,
/*430954*/                OPC_MoveParent,
/*430955*/                OPC_RecordChild2, // #4 = $src0
/*430956*/                OPC_CheckType, MVT::v16i32,
/*430958*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*430960*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*430963*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrrk), 0,
                              MVT::v16i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 12
                          // Dst: (VINSERTI32x8Zrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*430974*/              /*Scope*/ 32, /*->431007*/
/*430975*/                OPC_CheckChild1Type, MVT::v32i8,
/*430977*/                OPC_MoveChild2,
/*430978*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*430981*/                OPC_CheckType, MVT::iPTR,
/*430983*/                OPC_MoveParent,
/*430984*/                OPC_CheckType, MVT::v64i8,
/*430986*/                OPC_MoveParent,
/*430987*/                OPC_MoveParent,
/*430988*/                OPC_RecordChild2, // #4 = $src0
/*430989*/                OPC_CheckType, MVT::v16i32,
/*430991*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*430993*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*430996*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrrk), 0,
                              MVT::v16i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 12
                          // Dst: (VINSERTI32x8Zrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*431007*/              0, /*End of Scope*/
/*431008*/            /*Scope*/ 124, /*->431133*/
/*431009*/              OPC_MoveChild0,
/*431010*/              OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(X86ISD::SHUF128),// ->431044
/*431014*/                OPC_RecordChild0, // #1 = $src1
/*431015*/                OPC_RecordChild1, // #2 = $src2
/*431016*/                OPC_RecordChild2, // #3 = $src3
/*431017*/                OPC_MoveChild2,
/*431018*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*431021*/                OPC_MoveParent,
/*431022*/                OPC_CheckType, MVT::v8i64,
/*431024*/                OPC_MoveParent,
/*431025*/                OPC_MoveParent,
/*431026*/                OPC_RecordChild2, // #4 = $src0
/*431027*/                OPC_CheckType, MVT::v16i32,
/*431029*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*431031*/                OPC_EmitConvertToTarget, 3,
/*431033*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrrik), 0,
                              MVT::v16i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 12
                          // Dst: (VSHUFI32X4Zrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*431044*/              /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VALIGN),// ->431132
/*431047*/                OPC_RecordChild0, // #1 = $src1
/*431048*/                OPC_RecordChild1, // #2 = $src2
/*431049*/                OPC_RecordChild2, // #3 = $src3
/*431050*/                OPC_MoveChild2,
/*431051*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*431054*/                OPC_MoveParent,
/*431055*/                OPC_SwitchType /*3 cases */, 23, MVT::v8i64,// ->431081
/*431058*/                  OPC_MoveParent,
/*431059*/                  OPC_MoveParent,
/*431060*/                  OPC_RecordChild2, // #4 = $src0
/*431061*/                  OPC_CheckType, MVT::v16i32,
/*431063*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*431065*/                  OPC_EmitConvertToTarget, 3,
/*431067*/                  OPC_EmitNodeXForm, 14, 5, // ValignqImm32XForm
/*431070*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrrik), 0,
                                MVT::v16i32, 5/*#Ops*/, 4, 0, 1, 2, 6, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 12
                            // Dst: (VALIGNDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*431081*/                /*SwitchType*/ 23, MVT::v2i64,// ->431106
/*431083*/                  OPC_MoveParent,
/*431084*/                  OPC_MoveParent,
/*431085*/                  OPC_RecordChild2, // #4 = $src0
/*431086*/                  OPC_CheckType, MVT::v16i8,
/*431088*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431090*/                  OPC_EmitConvertToTarget, 3,
/*431092*/                  OPC_EmitNodeXForm, 22, 5, // ValignqImm8XForm
/*431095*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrik), 0,
                                MVT::v16i8, 5/*#Ops*/, 4, 0, 1, 2, 6, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 12
                            // Dst: (VPALIGNRZ128rrik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ValignqImm8XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*431106*/                /*SwitchType*/ 23, MVT::v4i32,// ->431131
/*431108*/                  OPC_MoveParent,
/*431109*/                  OPC_MoveParent,
/*431110*/                  OPC_RecordChild2, // #4 = $src0
/*431111*/                  OPC_CheckType, MVT::v16i8,
/*431113*/                  OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431115*/                  OPC_EmitConvertToTarget, 3,
/*431117*/                  OPC_EmitNodeXForm, 21, 5, // ValigndImm8XForm
/*431120*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrik), 0,
                                MVT::v16i8, 5/*#Ops*/, 4, 0, 1, 2, 6, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 12
                            // Dst: (VPALIGNRZ128rrik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ValigndImm8XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*431131*/                0, // EndSwitchType
/*431132*/              0, // EndSwitchOpcode
/*431133*/            0, /*End of Scope*/
/*431134*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VPERMV3),// ->431211
/*431137*/            OPC_RecordChild0, // #1 = $src1
/*431138*/            OPC_RecordChild1, // #2 = $src2
/*431139*/            OPC_RecordChild2, // #3 = $src3
/*431140*/            OPC_MoveParent,
/*431141*/            OPC_MoveChild2,
/*431142*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::BITCAST),// ->431190
/*431146*/              OPC_MoveChild0,
/*431147*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431150*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431152*/              OPC_SwitchType /*2 cases */, 16, MVT::v8i32,// ->431171
/*431155*/                OPC_MoveParent,
/*431156*/                OPC_MoveParent,
/*431157*/                OPC_CheckType, MVT::v16i16,
/*431159*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W256rrkz), 0,
                              MVT::v16i16, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPERMT2W256rrkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*431171*/              /*SwitchType*/ 16, MVT::v4i32,// ->431189
/*431173*/                OPC_MoveParent,
/*431174*/                OPC_MoveParent,
/*431175*/                OPC_CheckType, MVT::v16i8,
/*431177*/                OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*431179*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B128rrkz), 0,
                              MVT::v16i8, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src3), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPERMT2B128rrkz:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src3)
/*431189*/              0, // EndSwitchType
/*431190*/            /*SwitchOpcode*/ 17, TARGET_VAL(ISD::BUILD_VECTOR),// ->431210
/*431193*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431195*/              OPC_MoveParent,
/*431196*/              OPC_CheckType, MVT::v16i32,
/*431198*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*431200*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Drrkz), 0,
                            MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPERMT2Drrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*431210*/            0, // EndSwitchOpcode
/*431211*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::ADD),// ->431263
/*431214*/            OPC_RecordChild0, // #1 = $src1
/*431215*/            OPC_RecordChild1, // #2 = $src2
/*431216*/            OPC_MoveParent,
/*431217*/            OPC_MoveChild2,
/*431218*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431221*/            OPC_MoveChild0,
/*431222*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431225*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431227*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->431245
/*431230*/              OPC_MoveParent,
/*431231*/              OPC_MoveParent,
/*431232*/              OPC_CheckType, MVT::v16i16,
/*431234*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431236*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431245*/            /*SwitchType*/ 15, MVT::v4i32,// ->431262
/*431247*/              OPC_MoveParent,
/*431248*/              OPC_MoveParent,
/*431249*/              OPC_CheckType, MVT::v16i8,
/*431251*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431253*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*431262*/            0, // EndSwitchType
/*431263*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::SUB),// ->431315
/*431266*/            OPC_RecordChild0, // #1 = $src1
/*431267*/            OPC_RecordChild1, // #2 = $src2
/*431268*/            OPC_MoveParent,
/*431269*/            OPC_MoveChild2,
/*431270*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431273*/            OPC_MoveChild0,
/*431274*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431277*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431279*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->431297
/*431282*/              OPC_MoveParent,
/*431283*/              OPC_MoveParent,
/*431284*/              OPC_CheckType, MVT::v16i16,
/*431286*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431288*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431297*/            /*SwitchType*/ 15, MVT::v4i32,// ->431314
/*431299*/              OPC_MoveParent,
/*431300*/              OPC_MoveParent,
/*431301*/              OPC_CheckType, MVT::v16i8,
/*431303*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431305*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*431314*/            0, // EndSwitchType
/*431315*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::ADDS),// ->431367
/*431318*/            OPC_RecordChild0, // #1 = $src1
/*431319*/            OPC_RecordChild1, // #2 = $src2
/*431320*/            OPC_MoveParent,
/*431321*/            OPC_MoveChild2,
/*431322*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431325*/            OPC_MoveChild0,
/*431326*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431329*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431331*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->431349
/*431334*/              OPC_MoveParent,
/*431335*/              OPC_MoveParent,
/*431336*/              OPC_CheckType, MVT::v16i16,
/*431338*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431340*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431349*/            /*SwitchType*/ 15, MVT::v4i32,// ->431366
/*431351*/              OPC_MoveParent,
/*431352*/              OPC_MoveParent,
/*431353*/              OPC_CheckType, MVT::v16i8,
/*431355*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431357*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*431366*/            0, // EndSwitchType
/*431367*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::SUBS),// ->431419
/*431370*/            OPC_RecordChild0, // #1 = $src1
/*431371*/            OPC_RecordChild1, // #2 = $src2
/*431372*/            OPC_MoveParent,
/*431373*/            OPC_MoveChild2,
/*431374*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431377*/            OPC_MoveChild0,
/*431378*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431381*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431383*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->431401
/*431386*/              OPC_MoveParent,
/*431387*/              OPC_MoveParent,
/*431388*/              OPC_CheckType, MVT::v16i16,
/*431390*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431392*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86subs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431401*/            /*SwitchType*/ 15, MVT::v4i32,// ->431418
/*431403*/              OPC_MoveParent,
/*431404*/              OPC_MoveParent,
/*431405*/              OPC_CheckType, MVT::v16i8,
/*431407*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431409*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86subs:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*431418*/            0, // EndSwitchType
/*431419*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::ADDUS),// ->431471
/*431422*/            OPC_RecordChild0, // #1 = $src1
/*431423*/            OPC_RecordChild1, // #2 = $src2
/*431424*/            OPC_MoveParent,
/*431425*/            OPC_MoveChild2,
/*431426*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431429*/            OPC_MoveChild0,
/*431430*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431433*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431435*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->431453
/*431438*/              OPC_MoveParent,
/*431439*/              OPC_MoveParent,
/*431440*/              OPC_CheckType, MVT::v16i16,
/*431442*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431444*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDUSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431453*/            /*SwitchType*/ 15, MVT::v4i32,// ->431470
/*431455*/              OPC_MoveParent,
/*431456*/              OPC_MoveParent,
/*431457*/              OPC_CheckType, MVT::v16i8,
/*431459*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431461*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDUSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*431470*/            0, // EndSwitchType
/*431471*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::SUBUS),// ->431523
/*431474*/            OPC_RecordChild0, // #1 = $src1
/*431475*/            OPC_RecordChild1, // #2 = $src2
/*431476*/            OPC_MoveParent,
/*431477*/            OPC_MoveChild2,
/*431478*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431481*/            OPC_MoveChild0,
/*431482*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431485*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431487*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->431505
/*431490*/              OPC_MoveParent,
/*431491*/              OPC_MoveParent,
/*431492*/              OPC_CheckType, MVT::v16i16,
/*431494*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431496*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86subus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBUSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431505*/            /*SwitchType*/ 15, MVT::v4i32,// ->431522
/*431507*/              OPC_MoveParent,
/*431508*/              OPC_MoveParent,
/*431509*/              OPC_CheckType, MVT::v16i8,
/*431511*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431513*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86subus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBUSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*431522*/            0, // EndSwitchType
/*431523*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::MUL),// ->431556
/*431526*/            OPC_RecordChild0, // #1 = $src1
/*431527*/            OPC_RecordChild1, // #2 = $src2
/*431528*/            OPC_MoveParent,
/*431529*/            OPC_MoveChild2,
/*431530*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431533*/            OPC_MoveChild0,
/*431534*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431537*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431539*/            OPC_CheckType, MVT::v8i32,
/*431541*/            OPC_MoveParent,
/*431542*/            OPC_MoveParent,
/*431543*/            OPC_CheckType, MVT::v16i16,
/*431545*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431547*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULLWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431556*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::MULHS),// ->431589
/*431559*/            OPC_RecordChild0, // #1 = $src1
/*431560*/            OPC_RecordChild1, // #2 = $src2
/*431561*/            OPC_MoveParent,
/*431562*/            OPC_MoveChild2,
/*431563*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431566*/            OPC_MoveChild0,
/*431567*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431570*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431572*/            OPC_CheckType, MVT::v8i32,
/*431574*/            OPC_MoveParent,
/*431575*/            OPC_MoveParent,
/*431576*/            OPC_CheckType, MVT::v16i16,
/*431578*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431580*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULHWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431589*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::MULHU),// ->431622
/*431592*/            OPC_RecordChild0, // #1 = $src1
/*431593*/            OPC_RecordChild1, // #2 = $src2
/*431594*/            OPC_MoveParent,
/*431595*/            OPC_MoveChild2,
/*431596*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431599*/            OPC_MoveChild0,
/*431600*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431603*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431605*/            OPC_CheckType, MVT::v8i32,
/*431607*/            OPC_MoveParent,
/*431608*/            OPC_MoveParent,
/*431609*/            OPC_CheckType, MVT::v16i16,
/*431611*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431613*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhu:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULHUWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431622*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::MULHRS),// ->431655
/*431625*/            OPC_RecordChild0, // #1 = $src1
/*431626*/            OPC_RecordChild1, // #2 = $src2
/*431627*/            OPC_MoveParent,
/*431628*/            OPC_MoveChild2,
/*431629*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431632*/            OPC_MoveChild0,
/*431633*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431636*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431638*/            OPC_CheckType, MVT::v8i32,
/*431640*/            OPC_MoveParent,
/*431641*/            OPC_MoveParent,
/*431642*/            OPC_CheckType, MVT::v16i16,
/*431644*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431646*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86mulhrs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULHRSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431655*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::AVG),// ->431707
/*431658*/            OPC_RecordChild0, // #1 = $src1
/*431659*/            OPC_RecordChild1, // #2 = $src2
/*431660*/            OPC_MoveParent,
/*431661*/            OPC_MoveChild2,
/*431662*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431665*/            OPC_MoveChild0,
/*431666*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431669*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431671*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->431689
/*431674*/              OPC_MoveParent,
/*431675*/              OPC_MoveParent,
/*431676*/              OPC_CheckType, MVT::v16i16,
/*431678*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431680*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPAVGWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431689*/            /*SwitchType*/ 15, MVT::v4i32,// ->431706
/*431691*/              OPC_MoveParent,
/*431692*/              OPC_MoveParent,
/*431693*/              OPC_CheckType, MVT::v16i8,
/*431695*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431697*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPAVGBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*431706*/            0, // EndSwitchType
/*431707*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::MULTISHIFT),// ->431742
/*431710*/            OPC_RecordChild0, // #1 = $src1
/*431711*/            OPC_CheckChild0Type, MVT::v16i8,
/*431713*/            OPC_RecordChild1, // #2 = $src2
/*431714*/            OPC_MoveParent,
/*431715*/            OPC_MoveChild2,
/*431716*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431719*/            OPC_MoveChild0,
/*431720*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431723*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431725*/            OPC_CheckType, MVT::v4i32,
/*431727*/            OPC_MoveParent,
/*431728*/            OPC_MoveParent,
/*431729*/            OPC_CheckType, MVT::v16i8,
/*431731*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*431733*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ128rrkz), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86multishift:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULTISHIFTQBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*431742*/          /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::PACKSS),// ->431812
/*431745*/            OPC_RecordChild0, // #1 = $src1
/*431746*/            OPC_Scope, 31, /*->431779*/ // 2 children in Scope
/*431748*/              OPC_CheckChild0Type, MVT::v8i32,
/*431750*/              OPC_RecordChild1, // #2 = $src2
/*431751*/              OPC_MoveParent,
/*431752*/              OPC_MoveChild2,
/*431753*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431756*/              OPC_MoveChild0,
/*431757*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431760*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431762*/              OPC_CheckType, MVT::v8i32,
/*431764*/              OPC_MoveParent,
/*431765*/              OPC_MoveParent,
/*431766*/              OPC_CheckType, MVT::v16i16,
/*431768*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431770*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packss:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPACKSSDWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*431779*/            /*Scope*/ 31, /*->431811*/
/*431780*/              OPC_CheckChild0Type, MVT::v8i16,
/*431782*/              OPC_RecordChild1, // #2 = $src2
/*431783*/              OPC_MoveParent,
/*431784*/              OPC_MoveChild2,
/*431785*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431788*/              OPC_MoveChild0,
/*431789*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431792*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431794*/              OPC_CheckType, MVT::v4i32,
/*431796*/              OPC_MoveParent,
/*431797*/              OPC_MoveParent,
/*431798*/              OPC_CheckType, MVT::v16i8,
/*431800*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431802*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Packss:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPACKSSWBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*431811*/            0, /*End of Scope*/
/*431812*/          /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::PACKUS),// ->431882
/*431815*/            OPC_RecordChild0, // #1 = $src1
/*431816*/            OPC_Scope, 31, /*->431849*/ // 2 children in Scope
/*431818*/              OPC_CheckChild0Type, MVT::v8i32,
/*431820*/              OPC_RecordChild1, // #2 = $src2
/*431821*/              OPC_MoveParent,
/*431822*/              OPC_MoveChild2,
/*431823*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431826*/              OPC_MoveChild0,
/*431827*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431830*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431832*/              OPC_CheckType, MVT::v8i32,
/*431834*/              OPC_MoveParent,
/*431835*/              OPC_MoveParent,
/*431836*/              OPC_CheckType, MVT::v16i16,
/*431838*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431840*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packus:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPACKUSDWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*431849*/            /*Scope*/ 31, /*->431881*/
/*431850*/              OPC_CheckChild0Type, MVT::v8i16,
/*431852*/              OPC_RecordChild1, // #2 = $src2
/*431853*/              OPC_MoveParent,
/*431854*/              OPC_MoveChild2,
/*431855*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431858*/              OPC_MoveChild0,
/*431859*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431862*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431864*/              OPC_CheckType, MVT::v4i32,
/*431866*/              OPC_MoveParent,
/*431867*/              OPC_MoveParent,
/*431868*/              OPC_CheckType, MVT::v16i8,
/*431870*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431872*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Packus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPACKUSWBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*431881*/            0, /*End of Scope*/
/*431882*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VPMADDUBSW),// ->431915
/*431885*/            OPC_RecordChild0, // #1 = $src1
/*431886*/            OPC_RecordChild1, // #2 = $src2
/*431887*/            OPC_MoveParent,
/*431888*/            OPC_MoveChild2,
/*431889*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431892*/            OPC_MoveChild0,
/*431893*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431896*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431898*/            OPC_CheckType, MVT::v8i32,
/*431900*/            OPC_MoveParent,
/*431901*/            OPC_MoveParent,
/*431902*/            OPC_CheckType, MVT::v16i16,
/*431904*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431906*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vpmaddubsw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMADDUBSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*431915*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::SMAX),// ->431967
/*431918*/            OPC_RecordChild0, // #1 = $src1
/*431919*/            OPC_RecordChild1, // #2 = $src2
/*431920*/            OPC_MoveParent,
/*431921*/            OPC_MoveChild2,
/*431922*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431925*/            OPC_MoveChild0,
/*431926*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431929*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431931*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->431949
/*431934*/              OPC_MoveParent,
/*431935*/              OPC_MoveParent,
/*431936*/              OPC_CheckType, MVT::v16i8,
/*431938*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431940*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*431949*/            /*SwitchType*/ 15, MVT::v8i32,// ->431966
/*431951*/              OPC_MoveParent,
/*431952*/              OPC_MoveParent,
/*431953*/              OPC_CheckType, MVT::v16i16,
/*431955*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431957*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*431966*/            0, // EndSwitchType
/*431967*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::UMAX),// ->432019
/*431970*/            OPC_RecordChild0, // #1 = $src1
/*431971*/            OPC_RecordChild1, // #2 = $src2
/*431972*/            OPC_MoveParent,
/*431973*/            OPC_MoveChild2,
/*431974*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*431977*/            OPC_MoveChild0,
/*431978*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*431981*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*431983*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->432001
/*431986*/              OPC_MoveParent,
/*431987*/              OPC_MoveParent,
/*431988*/              OPC_CheckType, MVT::v16i8,
/*431990*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*431992*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXUBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*432001*/            /*SwitchType*/ 15, MVT::v8i32,// ->432018
/*432003*/              OPC_MoveParent,
/*432004*/              OPC_MoveParent,
/*432005*/              OPC_CheckType, MVT::v16i16,
/*432007*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432009*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXUWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*432018*/            0, // EndSwitchType
/*432019*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::SMIN),// ->432071
/*432022*/            OPC_RecordChild0, // #1 = $src1
/*432023*/            OPC_RecordChild1, // #2 = $src2
/*432024*/            OPC_MoveParent,
/*432025*/            OPC_MoveChild2,
/*432026*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432029*/            OPC_MoveChild0,
/*432030*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432033*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432035*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->432053
/*432038*/              OPC_MoveParent,
/*432039*/              OPC_MoveParent,
/*432040*/              OPC_CheckType, MVT::v16i8,
/*432042*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432044*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*432053*/            /*SwitchType*/ 15, MVT::v8i32,// ->432070
/*432055*/              OPC_MoveParent,
/*432056*/              OPC_MoveParent,
/*432057*/              OPC_CheckType, MVT::v16i16,
/*432059*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432061*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*432070*/            0, // EndSwitchType
/*432071*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::UMIN),// ->432123
/*432074*/            OPC_RecordChild0, // #1 = $src1
/*432075*/            OPC_RecordChild1, // #2 = $src2
/*432076*/            OPC_MoveParent,
/*432077*/            OPC_MoveChild2,
/*432078*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432081*/            OPC_MoveChild0,
/*432082*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432085*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432087*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->432105
/*432090*/              OPC_MoveParent,
/*432091*/              OPC_MoveParent,
/*432092*/              OPC_CheckType, MVT::v16i8,
/*432094*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432096*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINUBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*432105*/            /*SwitchType*/ 15, MVT::v8i32,// ->432122
/*432107*/              OPC_MoveParent,
/*432108*/              OPC_MoveParent,
/*432109*/              OPC_CheckType, MVT::v16i16,
/*432111*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432113*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINUWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*432122*/            0, // EndSwitchType
/*432123*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSRLI),// ->432156
/*432126*/            OPC_RecordChild0, // #1 = $src1
/*432127*/            OPC_RecordChild1, // #2 = $src2
/*432128*/            OPC_MoveChild1,
/*432129*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432132*/            OPC_MoveParent,
/*432133*/            OPC_MoveParent,
/*432134*/            OPC_MoveChild2,
/*432135*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432138*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432140*/            OPC_MoveParent,
/*432141*/            OPC_CheckType, MVT::v16i32,
/*432143*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432145*/            OPC_EmitConvertToTarget, 2,
/*432147*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZrikz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSRLDZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*432156*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSHLI),// ->432189
/*432159*/            OPC_RecordChild0, // #1 = $src1
/*432160*/            OPC_RecordChild1, // #2 = $src2
/*432161*/            OPC_MoveChild1,
/*432162*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432165*/            OPC_MoveParent,
/*432166*/            OPC_MoveParent,
/*432167*/            OPC_MoveChild2,
/*432168*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432171*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432173*/            OPC_MoveParent,
/*432174*/            OPC_CheckType, MVT::v16i32,
/*432176*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432178*/            OPC_EmitConvertToTarget, 2,
/*432180*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZrikz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSLLDZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*432189*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSRAI),// ->432222
/*432192*/            OPC_RecordChild0, // #1 = $src1
/*432193*/            OPC_RecordChild1, // #2 = $src2
/*432194*/            OPC_MoveChild1,
/*432195*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432198*/            OPC_MoveParent,
/*432199*/            OPC_MoveParent,
/*432200*/            OPC_MoveChild2,
/*432201*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432204*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432206*/            OPC_MoveParent,
/*432207*/            OPC_CheckType, MVT::v16i32,
/*432209*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432211*/            OPC_EmitConvertToTarget, 2,
/*432213*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZrikz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSRADZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*432222*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VROTRI),// ->432255
/*432225*/            OPC_RecordChild0, // #1 = $src1
/*432226*/            OPC_RecordChild1, // #2 = $src2
/*432227*/            OPC_MoveChild1,
/*432228*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432231*/            OPC_MoveParent,
/*432232*/            OPC_MoveParent,
/*432233*/            OPC_MoveChild2,
/*432234*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432237*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432239*/            OPC_MoveParent,
/*432240*/            OPC_CheckType, MVT::v16i32,
/*432242*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432244*/            OPC_EmitConvertToTarget, 2,
/*432246*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZrikz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPRORDZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*432255*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VROTLI),// ->432288
/*432258*/            OPC_RecordChild0, // #1 = $src1
/*432259*/            OPC_RecordChild1, // #2 = $src2
/*432260*/            OPC_MoveChild1,
/*432261*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432264*/            OPC_MoveParent,
/*432265*/            OPC_MoveParent,
/*432266*/            OPC_MoveChild2,
/*432267*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432270*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432272*/            OPC_MoveParent,
/*432273*/            OPC_CheckType, MVT::v16i32,
/*432275*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432277*/            OPC_EmitConvertToTarget, 2,
/*432279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZrikz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPROLDZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*432288*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHL),// ->432323
/*432291*/            OPC_RecordChild0, // #1 = $src1
/*432292*/            OPC_RecordChild1, // #2 = $src2
/*432293*/            OPC_CheckChild1Type, MVT::v8i16,
/*432295*/            OPC_MoveParent,
/*432296*/            OPC_MoveChild2,
/*432297*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432300*/            OPC_MoveChild0,
/*432301*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432304*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432306*/            OPC_CheckType, MVT::v8i32,
/*432308*/            OPC_MoveParent,
/*432309*/            OPC_MoveParent,
/*432310*/            OPC_CheckType, MVT::v16i16,
/*432312*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432314*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSLLWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*432323*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSRA),// ->432358
/*432326*/            OPC_RecordChild0, // #1 = $src1
/*432327*/            OPC_RecordChild1, // #2 = $src2
/*432328*/            OPC_CheckChild1Type, MVT::v8i16,
/*432330*/            OPC_MoveParent,
/*432331*/            OPC_MoveChild2,
/*432332*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432335*/            OPC_MoveChild0,
/*432336*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432339*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432341*/            OPC_CheckType, MVT::v8i32,
/*432343*/            OPC_MoveParent,
/*432344*/            OPC_MoveParent,
/*432345*/            OPC_CheckType, MVT::v16i16,
/*432347*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432349*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*432358*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSRL),// ->432393
/*432361*/            OPC_RecordChild0, // #1 = $src1
/*432362*/            OPC_RecordChild1, // #2 = $src2
/*432363*/            OPC_CheckChild1Type, MVT::v8i16,
/*432365*/            OPC_MoveParent,
/*432366*/            OPC_MoveChild2,
/*432367*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432370*/            OPC_MoveChild0,
/*432371*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432374*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432376*/            OPC_CheckType, MVT::v8i32,
/*432378*/            OPC_MoveParent,
/*432379*/            OPC_MoveParent,
/*432380*/            OPC_CheckType, MVT::v16i16,
/*432382*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432384*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRLWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*432393*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SHL),// ->432428
/*432396*/            OPC_RecordChild0, // #1 = $src1
/*432397*/            OPC_RecordChild1, // #2 = $src2
/*432398*/            OPC_CheckChild1Type, MVT::v16i16,
/*432400*/            OPC_MoveParent,
/*432401*/            OPC_MoveChild2,
/*432402*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432405*/            OPC_MoveChild0,
/*432406*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432409*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432411*/            OPC_CheckType, MVT::v8i32,
/*432413*/            OPC_MoveParent,
/*432414*/            OPC_MoveParent,
/*432415*/            OPC_CheckType, MVT::v16i16,
/*432417*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432419*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (shl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSLLVWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*432428*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SRA),// ->432463
/*432431*/            OPC_RecordChild0, // #1 = $src1
/*432432*/            OPC_RecordChild1, // #2 = $src2
/*432433*/            OPC_CheckChild1Type, MVT::v16i16,
/*432435*/            OPC_MoveParent,
/*432436*/            OPC_MoveChild2,
/*432437*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432440*/            OPC_MoveChild0,
/*432441*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432444*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432446*/            OPC_CheckType, MVT::v8i32,
/*432448*/            OPC_MoveParent,
/*432449*/            OPC_MoveParent,
/*432450*/            OPC_CheckType, MVT::v16i16,
/*432452*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432454*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (sra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAVWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*432463*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SRL),// ->432498
/*432466*/            OPC_RecordChild0, // #1 = $src1
/*432467*/            OPC_RecordChild1, // #2 = $src2
/*432468*/            OPC_CheckChild1Type, MVT::v16i16,
/*432470*/            OPC_MoveParent,
/*432471*/            OPC_MoveChild2,
/*432472*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432475*/            OPC_MoveChild0,
/*432476*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432479*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432481*/            OPC_CheckType, MVT::v8i32,
/*432483*/            OPC_MoveParent,
/*432484*/            OPC_MoveParent,
/*432485*/            OPC_CheckType, MVT::v16i16,
/*432487*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432489*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (srl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRLVWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*432498*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSRAV),// ->432531
/*432501*/            OPC_RecordChild0, // #1 = $src1
/*432502*/            OPC_RecordChild1, // #2 = $src2
/*432503*/            OPC_MoveParent,
/*432504*/            OPC_MoveChild2,
/*432505*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432508*/            OPC_MoveChild0,
/*432509*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432512*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432514*/            OPC_CheckType, MVT::v8i32,
/*432516*/            OPC_MoveParent,
/*432517*/            OPC_MoveParent,
/*432518*/            OPC_CheckType, MVT::v16i16,
/*432520*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432522*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrav:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAVWZ256rrkz:{ *:[v16i16] } VK16:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*432531*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VPERMV),// ->432583
/*432534*/            OPC_RecordChild0, // #1 = $src1
/*432535*/            OPC_RecordChild1, // #2 = $src2
/*432536*/            OPC_MoveParent,
/*432537*/            OPC_MoveChild2,
/*432538*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432541*/            OPC_MoveChild0,
/*432542*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432545*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432547*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->432565
/*432550*/              OPC_MoveParent,
/*432551*/              OPC_MoveParent,
/*432552*/              OPC_CheckType, MVT::v16i16,
/*432554*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432556*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*432565*/            /*SwitchType*/ 15, MVT::v4i32,// ->432582
/*432567*/              OPC_MoveParent,
/*432568*/              OPC_MoveParent,
/*432569*/              OPC_CheckType, MVT::v16i8,
/*432571*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*432573*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*432582*/            0, // EndSwitchType
/*432583*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PSHUFD),// ->432616
/*432586*/            OPC_RecordChild0, // #1 = $src1
/*432587*/            OPC_RecordChild1, // #2 = $src2
/*432588*/            OPC_MoveChild1,
/*432589*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432592*/            OPC_MoveParent,
/*432593*/            OPC_MoveParent,
/*432594*/            OPC_MoveChild2,
/*432595*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432598*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432600*/            OPC_MoveParent,
/*432601*/            OPC_CheckType, MVT::v16i32,
/*432603*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432605*/            OPC_EmitConvertToTarget, 2,
/*432607*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZrikz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSHUFDZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*432616*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PSHUFB),// ->432649
/*432619*/            OPC_RecordChild0, // #1 = $src1
/*432620*/            OPC_RecordChild1, // #2 = $src2
/*432621*/            OPC_MoveParent,
/*432622*/            OPC_MoveChild2,
/*432623*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432626*/            OPC_MoveChild0,
/*432627*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432630*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432632*/            OPC_CheckType, MVT::v4i32,
/*432634*/            OPC_MoveParent,
/*432635*/            OPC_MoveParent,
/*432636*/            OPC_CheckType, MVT::v16i8,
/*432638*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432640*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ128rrkz), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86pshufb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSHUFBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*432649*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::CVTP2SI_RND),// ->432684
/*432652*/            OPC_RecordChild0, // #1 = $src
/*432653*/            OPC_CheckChild0Type, MVT::v16f32,
/*432655*/            OPC_RecordChild1, // #2 = $rc
/*432656*/            OPC_MoveChild1,
/*432657*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432660*/            OPC_MoveParent,
/*432661*/            OPC_MoveParent,
/*432662*/            OPC_MoveChild2,
/*432663*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432666*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432668*/            OPC_MoveParent,
/*432669*/            OPC_CheckType, MVT::v16i32,
/*432671*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432673*/            OPC_EmitConvertToTarget, 2,
/*432675*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrrbkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2IntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VCVTPS2DQZrrbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc)
/*432684*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::CVTP2UI_RND),// ->432719
/*432687*/            OPC_RecordChild0, // #1 = $src
/*432688*/            OPC_CheckChild0Type, MVT::v16f32,
/*432690*/            OPC_RecordChild1, // #2 = $rc
/*432691*/            OPC_MoveChild1,
/*432692*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432695*/            OPC_MoveParent,
/*432696*/            OPC_MoveParent,
/*432697*/            OPC_MoveChild2,
/*432698*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432701*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432703*/            OPC_MoveParent,
/*432704*/            OPC_CheckType, MVT::v16i32,
/*432706*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432708*/            OPC_EmitConvertToTarget, 2,
/*432710*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrrbkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VCVTPS2UDQZrrbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc)
/*432719*/          /*SwitchOpcode*/ 55|128,1/*183*/, TARGET_VAL(X86ISD::VTRUNC),// ->432906
/*432723*/            OPC_RecordChild0, // #1 = $src1
/*432724*/            OPC_Scope, 29, /*->432755*/ // 6 children in Scope
/*432726*/              OPC_CheckChild0Type, MVT::v2i64,
/*432728*/              OPC_MoveParent,
/*432729*/              OPC_MoveChild2,
/*432730*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432733*/              OPC_MoveChild0,
/*432734*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432737*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432739*/              OPC_CheckType, MVT::v4i32,
/*432741*/              OPC_MoveParent,
/*432742*/              OPC_MoveParent,
/*432743*/              OPC_CheckType, MVT::v16i8,
/*432745*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*432747*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVQBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*432755*/            /*Scope*/ 29, /*->432785*/
/*432756*/              OPC_CheckChild0Type, MVT::v4i64,
/*432758*/              OPC_MoveParent,
/*432759*/              OPC_MoveChild2,
/*432760*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432763*/              OPC_MoveChild0,
/*432764*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432767*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432769*/              OPC_CheckType, MVT::v4i32,
/*432771*/              OPC_MoveParent,
/*432772*/              OPC_MoveParent,
/*432773*/              OPC_CheckType, MVT::v16i8,
/*432775*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*432777*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVQBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*432785*/            /*Scope*/ 29, /*->432815*/
/*432786*/              OPC_CheckChild0Type, MVT::v8i64,
/*432788*/              OPC_MoveParent,
/*432789*/              OPC_MoveChild2,
/*432790*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432793*/              OPC_MoveChild0,
/*432794*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432797*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432799*/              OPC_CheckType, MVT::v4i32,
/*432801*/              OPC_MoveParent,
/*432802*/              OPC_MoveParent,
/*432803*/              OPC_CheckType, MVT::v16i8,
/*432805*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432807*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZrrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVQBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*432815*/            /*Scope*/ 29, /*->432845*/
/*432816*/              OPC_CheckChild0Type, MVT::v4i32,
/*432818*/              OPC_MoveParent,
/*432819*/              OPC_MoveChild2,
/*432820*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432823*/              OPC_MoveChild0,
/*432824*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432827*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432829*/              OPC_CheckType, MVT::v4i32,
/*432831*/              OPC_MoveParent,
/*432832*/              OPC_MoveParent,
/*432833*/              OPC_CheckType, MVT::v16i8,
/*432835*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*432837*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVDBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*432845*/            /*Scope*/ 29, /*->432875*/
/*432846*/              OPC_CheckChild0Type, MVT::v8i32,
/*432848*/              OPC_MoveParent,
/*432849*/              OPC_MoveChild2,
/*432850*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432853*/              OPC_MoveChild0,
/*432854*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432857*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432859*/              OPC_CheckType, MVT::v4i32,
/*432861*/              OPC_MoveParent,
/*432862*/              OPC_MoveParent,
/*432863*/              OPC_CheckType, MVT::v16i8,
/*432865*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*432867*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVDBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*432875*/            /*Scope*/ 29, /*->432905*/
/*432876*/              OPC_CheckChild0Type, MVT::v8i16,
/*432878*/              OPC_MoveParent,
/*432879*/              OPC_MoveChild2,
/*432880*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432883*/              OPC_MoveChild0,
/*432884*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432887*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432889*/              OPC_CheckType, MVT::v4i32,
/*432891*/              OPC_MoveParent,
/*432892*/              OPC_MoveParent,
/*432893*/              OPC_CheckType, MVT::v16i8,
/*432895*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*432897*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVWBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*432905*/            0, /*End of Scope*/
/*432906*/          /*SwitchOpcode*/ 5|128,2/*261*/, TARGET_VAL(X86ISD::VTRUNCS),// ->433171
/*432910*/            OPC_RecordChild0, // #1 = $src1
/*432911*/            OPC_Scope, 29, /*->432942*/ // 8 children in Scope
/*432913*/              OPC_CheckChild0Type, MVT::v2i64,
/*432915*/              OPC_MoveParent,
/*432916*/              OPC_MoveChild2,
/*432917*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432920*/              OPC_MoveChild0,
/*432921*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432924*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432926*/              OPC_CheckType, MVT::v4i32,
/*432928*/              OPC_MoveParent,
/*432929*/              OPC_MoveParent,
/*432930*/              OPC_CheckType, MVT::v16i8,
/*432932*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*432934*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSQBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*432942*/            /*Scope*/ 29, /*->432972*/
/*432943*/              OPC_CheckChild0Type, MVT::v4i64,
/*432945*/              OPC_MoveParent,
/*432946*/              OPC_MoveChild2,
/*432947*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432950*/              OPC_MoveChild0,
/*432951*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432954*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432956*/              OPC_CheckType, MVT::v4i32,
/*432958*/              OPC_MoveParent,
/*432959*/              OPC_MoveParent,
/*432960*/              OPC_CheckType, MVT::v16i8,
/*432962*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*432964*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSQBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*432972*/            /*Scope*/ 29, /*->433002*/
/*432973*/              OPC_CheckChild0Type, MVT::v8i64,
/*432975*/              OPC_MoveParent,
/*432976*/              OPC_MoveChild2,
/*432977*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*432980*/              OPC_MoveChild0,
/*432981*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*432984*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*432986*/              OPC_CheckType, MVT::v4i32,
/*432988*/              OPC_MoveParent,
/*432989*/              OPC_MoveParent,
/*432990*/              OPC_CheckType, MVT::v16i8,
/*432992*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432994*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZrrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSQBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*433002*/            /*Scope*/ 29, /*->433032*/
/*433003*/              OPC_CheckChild0Type, MVT::v4i32,
/*433005*/              OPC_MoveParent,
/*433006*/              OPC_MoveChild2,
/*433007*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433010*/              OPC_MoveChild0,
/*433011*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433014*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433016*/              OPC_CheckType, MVT::v4i32,
/*433018*/              OPC_MoveParent,
/*433019*/              OPC_MoveParent,
/*433020*/              OPC_CheckType, MVT::v16i8,
/*433022*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*433024*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSDBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*433032*/            /*Scope*/ 29, /*->433062*/
/*433033*/              OPC_CheckChild0Type, MVT::v8i32,
/*433035*/              OPC_MoveParent,
/*433036*/              OPC_MoveChild2,
/*433037*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433040*/              OPC_MoveChild0,
/*433041*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433044*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433046*/              OPC_CheckType, MVT::v4i32,
/*433048*/              OPC_MoveParent,
/*433049*/              OPC_MoveParent,
/*433050*/              OPC_CheckType, MVT::v16i8,
/*433052*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*433054*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSDBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*433062*/            /*Scope*/ 47, /*->433110*/
/*433063*/              OPC_CheckChild0Type, MVT::v16i32,
/*433065*/              OPC_MoveParent,
/*433066*/              OPC_MoveChild2,
/*433067*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433070*/              OPC_MoveChild0,
/*433071*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433074*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433076*/              OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->433093
/*433079*/                OPC_MoveParent,
/*433080*/                OPC_MoveParent,
/*433081*/                OPC_CheckType, MVT::v16i8,
/*433083*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433085*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZrrkz), 0,
                              MVT::v16i8, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPMOVSDBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*433093*/              /*SwitchType*/ 14, MVT::v8i32,// ->433109
/*433095*/                OPC_MoveParent,
/*433096*/                OPC_MoveParent,
/*433097*/                OPC_CheckType, MVT::v16i16,
/*433099*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433101*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZrrkz), 0,
                              MVT::v16i16, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPMOVSDWZrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*433109*/              0, // EndSwitchType
/*433110*/            /*Scope*/ 29, /*->433140*/
/*433111*/              OPC_CheckChild0Type, MVT::v8i16,
/*433113*/              OPC_MoveParent,
/*433114*/              OPC_MoveChild2,
/*433115*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433118*/              OPC_MoveChild0,
/*433119*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433122*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433124*/              OPC_CheckType, MVT::v4i32,
/*433126*/              OPC_MoveParent,
/*433127*/              OPC_MoveParent,
/*433128*/              OPC_CheckType, MVT::v16i8,
/*433130*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433132*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSWBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*433140*/            /*Scope*/ 29, /*->433170*/
/*433141*/              OPC_CheckChild0Type, MVT::v16i16,
/*433143*/              OPC_MoveParent,
/*433144*/              OPC_MoveChild2,
/*433145*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433148*/              OPC_MoveChild0,
/*433149*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433152*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433154*/              OPC_CheckType, MVT::v4i32,
/*433156*/              OPC_MoveParent,
/*433157*/              OPC_MoveParent,
/*433158*/              OPC_CheckType, MVT::v16i8,
/*433160*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433162*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVSWBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*433170*/            0, /*End of Scope*/
/*433171*/          /*SwitchOpcode*/ 5|128,2/*261*/, TARGET_VAL(X86ISD::VTRUNCUS),// ->433436
/*433175*/            OPC_RecordChild0, // #1 = $src1
/*433176*/            OPC_Scope, 29, /*->433207*/ // 8 children in Scope
/*433178*/              OPC_CheckChild0Type, MVT::v2i64,
/*433180*/              OPC_MoveParent,
/*433181*/              OPC_MoveChild2,
/*433182*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433185*/              OPC_MoveChild0,
/*433186*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433189*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433191*/              OPC_CheckType, MVT::v4i32,
/*433193*/              OPC_MoveParent,
/*433194*/              OPC_MoveParent,
/*433195*/              OPC_CheckType, MVT::v16i8,
/*433197*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*433199*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSQBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*433207*/            /*Scope*/ 29, /*->433237*/
/*433208*/              OPC_CheckChild0Type, MVT::v4i64,
/*433210*/              OPC_MoveParent,
/*433211*/              OPC_MoveChild2,
/*433212*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433215*/              OPC_MoveChild0,
/*433216*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433219*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433221*/              OPC_CheckType, MVT::v4i32,
/*433223*/              OPC_MoveParent,
/*433224*/              OPC_MoveParent,
/*433225*/              OPC_CheckType, MVT::v16i8,
/*433227*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*433229*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSQBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*433237*/            /*Scope*/ 29, /*->433267*/
/*433238*/              OPC_CheckChild0Type, MVT::v8i64,
/*433240*/              OPC_MoveParent,
/*433241*/              OPC_MoveChild2,
/*433242*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433245*/              OPC_MoveChild0,
/*433246*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433249*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433251*/              OPC_CheckType, MVT::v4i32,
/*433253*/              OPC_MoveParent,
/*433254*/              OPC_MoveParent,
/*433255*/              OPC_CheckType, MVT::v16i8,
/*433257*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433259*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZrrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSQBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*433267*/            /*Scope*/ 29, /*->433297*/
/*433268*/              OPC_CheckChild0Type, MVT::v4i32,
/*433270*/              OPC_MoveParent,
/*433271*/              OPC_MoveChild2,
/*433272*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433275*/              OPC_MoveChild0,
/*433276*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433279*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433281*/              OPC_CheckType, MVT::v4i32,
/*433283*/              OPC_MoveParent,
/*433284*/              OPC_MoveParent,
/*433285*/              OPC_CheckType, MVT::v16i8,
/*433287*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*433289*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSDBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*433297*/            /*Scope*/ 29, /*->433327*/
/*433298*/              OPC_CheckChild0Type, MVT::v8i32,
/*433300*/              OPC_MoveParent,
/*433301*/              OPC_MoveChild2,
/*433302*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433305*/              OPC_MoveChild0,
/*433306*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433309*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433311*/              OPC_CheckType, MVT::v4i32,
/*433313*/              OPC_MoveParent,
/*433314*/              OPC_MoveParent,
/*433315*/              OPC_CheckType, MVT::v16i8,
/*433317*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*433319*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSDBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*433327*/            /*Scope*/ 47, /*->433375*/
/*433328*/              OPC_CheckChild0Type, MVT::v16i32,
/*433330*/              OPC_MoveParent,
/*433331*/              OPC_MoveChild2,
/*433332*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433335*/              OPC_MoveChild0,
/*433336*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433339*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433341*/              OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->433358
/*433344*/                OPC_MoveParent,
/*433345*/                OPC_MoveParent,
/*433346*/                OPC_CheckType, MVT::v16i8,
/*433348*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433350*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZrrkz), 0,
                              MVT::v16i8, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPMOVUSDBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*433358*/              /*SwitchType*/ 14, MVT::v8i32,// ->433374
/*433360*/                OPC_MoveParent,
/*433361*/                OPC_MoveParent,
/*433362*/                OPC_CheckType, MVT::v16i16,
/*433364*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433366*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZrrkz), 0,
                              MVT::v16i16, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                          // Dst: (VPMOVUSDWZrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*433374*/              0, // EndSwitchType
/*433375*/            /*Scope*/ 29, /*->433405*/
/*433376*/              OPC_CheckChild0Type, MVT::v8i16,
/*433378*/              OPC_MoveParent,
/*433379*/              OPC_MoveChild2,
/*433380*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433383*/              OPC_MoveChild0,
/*433384*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433387*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433389*/              OPC_CheckType, MVT::v4i32,
/*433391*/              OPC_MoveParent,
/*433392*/              OPC_MoveParent,
/*433393*/              OPC_CheckType, MVT::v16i8,
/*433395*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433397*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSWBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*433405*/            /*Scope*/ 29, /*->433435*/
/*433406*/              OPC_CheckChild0Type, MVT::v16i16,
/*433408*/              OPC_MoveParent,
/*433409*/              OPC_MoveChild2,
/*433410*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433413*/              OPC_MoveChild0,
/*433414*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433417*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433419*/              OPC_CheckType, MVT::v4i32,
/*433421*/              OPC_MoveParent,
/*433422*/              OPC_MoveParent,
/*433423*/              OPC_CheckType, MVT::v16i8,
/*433425*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433427*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVUSWBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*433435*/            0, /*End of Scope*/
/*433436*/          /*SwitchOpcode*/ 91, TARGET_VAL(ISD::TRUNCATE),// ->433530
/*433439*/            OPC_RecordChild0, // #1 = $src1
/*433440*/            OPC_Scope, 29, /*->433471*/ // 3 children in Scope
/*433442*/              OPC_CheckChild0Type, MVT::v16i32,
/*433444*/              OPC_MoveParent,
/*433445*/              OPC_MoveChild2,
/*433446*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433449*/              OPC_MoveChild0,
/*433450*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433453*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433455*/              OPC_CheckType, MVT::v4i32,
/*433457*/              OPC_MoveParent,
/*433458*/              OPC_MoveParent,
/*433459*/              OPC_CheckType, MVT::v16i8,
/*433461*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433463*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVDBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*433471*/            /*Scope*/ 27, /*->433499*/
/*433472*/              OPC_MoveParent,
/*433473*/              OPC_MoveChild2,
/*433474*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433477*/              OPC_MoveChild0,
/*433478*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433481*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433483*/              OPC_CheckType, MVT::v8i32,
/*433485*/              OPC_MoveParent,
/*433486*/              OPC_MoveParent,
/*433487*/              OPC_CheckType, MVT::v16i16,
/*433489*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433491*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZrrkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVDWZrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*433499*/            /*Scope*/ 29, /*->433529*/
/*433500*/              OPC_CheckChild0Type, MVT::v16i16,
/*433502*/              OPC_MoveParent,
/*433503*/              OPC_MoveChild2,
/*433504*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433507*/              OPC_MoveChild0,
/*433508*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433511*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433513*/              OPC_CheckType, MVT::v4i32,
/*433515*/              OPC_MoveParent,
/*433516*/              OPC_MoveParent,
/*433517*/              OPC_CheckType, MVT::v16i8,
/*433519*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433521*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMOVWBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*433529*/            0, /*End of Scope*/
/*433530*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VZEXT),// ->433563
/*433533*/            OPC_RecordChild0, // #1 = $src
/*433534*/            OPC_CheckChild0Type, MVT::v16i8,
/*433536*/            OPC_MoveParent,
/*433537*/            OPC_MoveChild2,
/*433538*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433541*/            OPC_MoveChild0,
/*433542*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433545*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433547*/            OPC_CheckType, MVT::v8i32,
/*433549*/            OPC_MoveParent,
/*433550*/            OPC_MoveParent,
/*433551*/            OPC_CheckType, MVT::v16i16,
/*433553*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433555*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rrkz), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vzext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMOVZXBWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*433563*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSEXT),// ->433596
/*433566*/            OPC_RecordChild0, // #1 = $src
/*433567*/            OPC_CheckChild0Type, MVT::v16i8,
/*433569*/            OPC_MoveParent,
/*433570*/            OPC_MoveChild2,
/*433571*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433574*/            OPC_MoveChild0,
/*433575*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433578*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433580*/            OPC_CheckType, MVT::v8i32,
/*433582*/            OPC_MoveParent,
/*433583*/            OPC_MoveParent,
/*433584*/            OPC_CheckType, MVT::v16i16,
/*433586*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433588*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rrkz), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMOVSXBWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*433596*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VALIGN),// ->433631
/*433599*/            OPC_RecordChild0, // #1 = $src1
/*433600*/            OPC_RecordChild1, // #2 = $src2
/*433601*/            OPC_RecordChild2, // #3 = $src3
/*433602*/            OPC_MoveChild2,
/*433603*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*433606*/            OPC_MoveParent,
/*433607*/            OPC_MoveParent,
/*433608*/            OPC_MoveChild2,
/*433609*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433612*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433614*/            OPC_MoveParent,
/*433615*/            OPC_CheckType, MVT::v16i32,
/*433617*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433619*/            OPC_EmitConvertToTarget, 3,
/*433621*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrrikz), 0,
                          MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VALIGNDZrrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*433631*/          /*SwitchOpcode*/ 46, TARGET_VAL(ISD::ABS),// ->433680
/*433634*/            OPC_RecordChild0, // #1 = $src1
/*433635*/            OPC_MoveParent,
/*433636*/            OPC_MoveChild2,
/*433637*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433640*/            OPC_MoveChild0,
/*433641*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433644*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433646*/            OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->433663
/*433649*/              OPC_MoveParent,
/*433650*/              OPC_MoveParent,
/*433651*/              OPC_CheckType, MVT::v16i16,
/*433653*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433655*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ256rrkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPABSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*433663*/            /*SwitchType*/ 14, MVT::v4i32,// ->433679
/*433665*/              OPC_MoveParent,
/*433666*/              OPC_MoveParent,
/*433667*/              OPC_CheckType, MVT::v16i8,
/*433669*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433671*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPABSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1)
/*433679*/            0, // EndSwitchType
/*433680*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::UNPCKL),// ->433732
/*433683*/            OPC_RecordChild0, // #1 = $src1
/*433684*/            OPC_RecordChild1, // #2 = $src2
/*433685*/            OPC_MoveParent,
/*433686*/            OPC_MoveChild2,
/*433687*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433690*/            OPC_MoveChild0,
/*433691*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433694*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433696*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->433714
/*433699*/              OPC_MoveParent,
/*433700*/              OPC_MoveParent,
/*433701*/              OPC_CheckType, MVT::v16i8,
/*433703*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433705*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKLBWZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*433714*/            /*SwitchType*/ 15, MVT::v8i32,// ->433731
/*433716*/              OPC_MoveParent,
/*433717*/              OPC_MoveParent,
/*433718*/              OPC_CheckType, MVT::v16i16,
/*433720*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433722*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKLWDZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*433731*/            0, // EndSwitchType
/*433732*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::UNPCKH),// ->433784
/*433735*/            OPC_RecordChild0, // #1 = $src1
/*433736*/            OPC_RecordChild1, // #2 = $src2
/*433737*/            OPC_MoveParent,
/*433738*/            OPC_MoveChild2,
/*433739*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433742*/            OPC_MoveChild0,
/*433743*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433746*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433748*/            OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->433766
/*433751*/              OPC_MoveParent,
/*433752*/              OPC_MoveParent,
/*433753*/              OPC_CheckType, MVT::v16i8,
/*433755*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433757*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKHBWZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*433766*/            /*SwitchType*/ 15, MVT::v8i32,// ->433783
/*433768*/              OPC_MoveParent,
/*433769*/              OPC_MoveParent,
/*433770*/              OPC_CheckType, MVT::v16i16,
/*433772*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433774*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKHWDZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*433783*/            0, // EndSwitchType
/*433784*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPTERNLOG),// ->433821
/*433787*/            OPC_RecordChild0, // #1 = $src1
/*433788*/            OPC_RecordChild1, // #2 = $src2
/*433789*/            OPC_RecordChild2, // #3 = $src3
/*433790*/            OPC_RecordChild3, // #4 = $src4
/*433791*/            OPC_MoveChild3,
/*433792*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*433795*/            OPC_MoveParent,
/*433796*/            OPC_MoveParent,
/*433797*/            OPC_MoveChild2,
/*433798*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433801*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433803*/            OPC_MoveParent,
/*433804*/            OPC_CheckType, MVT::v16i32,
/*433806*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433808*/            OPC_EmitConvertToTarget, 4,
/*433810*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrrikz), 0,
                          MVT::v16i32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i8] }):$src4), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPTERNLOGDZrrikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*433821*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHLDV),// ->433856
/*433824*/            OPC_RecordChild0, // #1 = $src1
/*433825*/            OPC_RecordChild1, // #2 = $src2
/*433826*/            OPC_RecordChild2, // #3 = $src3
/*433827*/            OPC_MoveParent,
/*433828*/            OPC_MoveChild2,
/*433829*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433832*/            OPC_MoveChild0,
/*433833*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433836*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433838*/            OPC_CheckType, MVT::v8i32,
/*433840*/            OPC_MoveParent,
/*433841*/            OPC_MoveParent,
/*433842*/            OPC_CheckType, MVT::v16i16,
/*433844*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*433846*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ256rkz), 0,
                          MVT::v16i16, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShldv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSHLDVWZ256rkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*433856*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHRDV),// ->433891
/*433859*/            OPC_RecordChild0, // #1 = $src1
/*433860*/            OPC_RecordChild1, // #2 = $src2
/*433861*/            OPC_RecordChild2, // #3 = $src3
/*433862*/            OPC_MoveParent,
/*433863*/            OPC_MoveChild2,
/*433864*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433867*/            OPC_MoveChild0,
/*433868*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433871*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433873*/            OPC_CheckType, MVT::v8i32,
/*433875*/            OPC_MoveParent,
/*433876*/            OPC_MoveParent,
/*433877*/            OPC_CheckType, MVT::v16i16,
/*433879*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*433881*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ256rkz), 0,
                          MVT::v16i16, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrdv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSHRDVWZ256rkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*433891*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHLD),// ->433926
/*433894*/            OPC_RecordChild0, // #1 = $src1
/*433895*/            OPC_RecordChild1, // #2 = $src2
/*433896*/            OPC_RecordChild2, // #3 = $src3
/*433897*/            OPC_MoveChild2,
/*433898*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*433901*/            OPC_MoveParent,
/*433902*/            OPC_MoveParent,
/*433903*/            OPC_MoveChild2,
/*433904*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433907*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433909*/            OPC_MoveParent,
/*433910*/            OPC_CheckType, MVT::v16i32,
/*433912*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*433914*/            OPC_EmitConvertToTarget, 3,
/*433916*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrrikz), 0,
                          MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSHLDDZrrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*433926*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHRD),// ->433961
/*433929*/            OPC_RecordChild0, // #1 = $src1
/*433930*/            OPC_RecordChild1, // #2 = $src2
/*433931*/            OPC_RecordChild2, // #3 = $src3
/*433932*/            OPC_MoveChild2,
/*433933*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*433936*/            OPC_MoveParent,
/*433937*/            OPC_MoveParent,
/*433938*/            OPC_MoveChild2,
/*433939*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433942*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433944*/            OPC_MoveParent,
/*433945*/            OPC_CheckType, MVT::v16i32,
/*433947*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*433949*/            OPC_EmitConvertToTarget, 3,
/*433951*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrrikz), 0,
                          MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 13
                      // Dst: (VPSHRDDZrrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*433961*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::COMPRESS),// ->434010
/*433964*/            OPC_RecordChild0, // #1 = $src1
/*433965*/            OPC_MoveParent,
/*433966*/            OPC_MoveChild2,
/*433967*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*433970*/            OPC_MoveChild0,
/*433971*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*433974*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*433976*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->433993
/*433979*/              OPC_MoveParent,
/*433980*/              OPC_MoveParent,
/*433981*/              OPC_CheckType, MVT::v16i8,
/*433983*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*433985*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86compress:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPCOMPRESSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1)
/*433993*/            /*SwitchType*/ 14, MVT::v8i32,// ->434009
/*433995*/              OPC_MoveParent,
/*433996*/              OPC_MoveParent,
/*433997*/              OPC_CheckType, MVT::v16i16,
/*433999*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*434001*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZ256rrkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86compress:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPCOMPRESSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*434009*/            0, // EndSwitchType
/*434010*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::EXPAND),// ->434059
/*434013*/            OPC_RecordChild0, // #1 = $src1
/*434014*/            OPC_MoveParent,
/*434015*/            OPC_MoveChild2,
/*434016*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*434019*/            OPC_MoveChild0,
/*434020*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434023*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434025*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->434042
/*434028*/              OPC_MoveParent,
/*434029*/              OPC_MoveParent,
/*434030*/              OPC_CheckType, MVT::v16i8,
/*434032*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*434034*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPEXPANDBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1)
/*434042*/            /*SwitchType*/ 14, MVT::v8i32,// ->434058
/*434044*/              OPC_MoveParent,
/*434045*/              OPC_MoveParent,
/*434046*/              OPC_CheckType, MVT::v16i16,
/*434048*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*434050*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rrkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPEXPANDWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*434058*/            0, // EndSwitchType
/*434059*/          /*SwitchOpcode*/ 46, TARGET_VAL(ISD::CTPOP),// ->434108
/*434062*/            OPC_RecordChild0, // #1 = $src1
/*434063*/            OPC_MoveParent,
/*434064*/            OPC_MoveChild2,
/*434065*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*434068*/            OPC_MoveChild0,
/*434069*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434072*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434074*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->434091
/*434077*/              OPC_MoveParent,
/*434078*/              OPC_MoveParent,
/*434079*/              OPC_CheckType, MVT::v16i8,
/*434081*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*434083*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPOPCNTBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1)
/*434091*/            /*SwitchType*/ 14, MVT::v8i32,// ->434107
/*434093*/              OPC_MoveParent,
/*434094*/              OPC_MoveParent,
/*434095*/              OPC_CheckType, MVT::v16i16,
/*434097*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*434099*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ256rrkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPOPCNTWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*434107*/            0, // EndSwitchType
/*434108*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::GF2P8MULB),// ->434141
/*434111*/            OPC_RecordChild0, // #1 = $src1
/*434112*/            OPC_RecordChild1, // #2 = $src2
/*434113*/            OPC_MoveParent,
/*434114*/            OPC_MoveChild2,
/*434115*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*434118*/            OPC_MoveChild0,
/*434119*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434122*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434124*/            OPC_CheckType, MVT::v4i32,
/*434126*/            OPC_MoveParent,
/*434127*/            OPC_MoveParent,
/*434128*/            OPC_CheckType, MVT::v16i8,
/*434130*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*434132*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ128rrkz), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8mulb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VGF2P8MULBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*434141*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::BUILD_VECTOR),// ->434165
/*434144*/            OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*434146*/            OPC_MoveParent,
/*434147*/            OPC_MoveChild2,
/*434148*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434151*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434153*/            OPC_MoveParent,
/*434154*/            OPC_CheckType, MVT::v16i32,
/*434156*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434158*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SEXT_MASK_32), 0,
                          MVT::v16i32, 1/*#Ops*/, 0, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllOnesV>>, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 11
                      // Dst: (AVX512_512_SEXT_MASK_32:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask)
/*434165*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::CVTTP2SI_RND),// ->434188
/*434168*/            OPC_RecordChild0, // #1 = $src
/*434169*/            OPC_CheckChild0Type, MVT::v16f32,
/*434171*/            OPC_CheckChild1Integer, 8, 
/*434173*/            OPC_MoveParent,
/*434174*/            OPC_RecordChild2, // #2 = $src0
/*434175*/            OPC_CheckType, MVT::v16i32,
/*434177*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434179*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrrbk), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2siRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), VR512:{ *:[v16i32] }:$src0) - Complexity = 11
                      // Dst: (VCVTTPS2DQZrrbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*434188*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::CVTTP2UI_RND),// ->434211
/*434191*/            OPC_RecordChild0, // #1 = $src
/*434192*/            OPC_CheckChild0Type, MVT::v16f32,
/*434194*/            OPC_CheckChild1Integer, 8, 
/*434196*/            OPC_MoveParent,
/*434197*/            OPC_RecordChild2, // #2 = $src0
/*434198*/            OPC_CheckType, MVT::v16i32,
/*434200*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434202*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrrbk), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2uiRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), VR512:{ *:[v16i32] }:$src0) - Complexity = 11
                      // Dst: (VCVTTPS2UDQZrrbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*434211*/          0, // EndSwitchOpcode
/*434212*/        /*Scope*/ 45, /*->434258*/
/*434213*/          OPC_RecordChild1, // #1 = $src
/*434214*/          OPC_MoveChild2,
/*434215*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*434218*/          OPC_MoveChild0,
/*434219*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434222*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434224*/          OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->434241
/*434227*/            OPC_MoveParent,
/*434228*/            OPC_MoveParent,
/*434229*/            OPC_CheckType, MVT::v16i8,
/*434231*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*434233*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z128rrkz), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                      // Dst: (VMOVDQU8Z128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*434241*/          /*SwitchType*/ 14, MVT::v8i32,// ->434257
/*434243*/            OPC_MoveParent,
/*434244*/            OPC_MoveParent,
/*434245*/            OPC_CheckType, MVT::v16i16,
/*434247*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*434249*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z256rrkz), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                      // Dst: (VMOVDQU16Z256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*434257*/          0, // EndSwitchType
/*434258*/        /*Scope*/ 35|128,8/*1059*/, /*->435319*/
/*434260*/          OPC_MoveChild1,
/*434261*/          OPC_SwitchOpcode /*38 cases */, 23, TARGET_VAL(ISD::ADD),// ->434288
/*434265*/            OPC_RecordChild0, // #1 = $src1
/*434266*/            OPC_RecordChild1, // #2 = $src2
/*434267*/            OPC_MoveParent,
/*434268*/            OPC_MoveChild2,
/*434269*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434272*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434274*/            OPC_MoveParent,
/*434275*/            OPC_CheckType, MVT::v16i32,
/*434277*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPADDDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434288*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::SUB),// ->434314
/*434291*/            OPC_RecordChild0, // #1 = $src1
/*434292*/            OPC_RecordChild1, // #2 = $src2
/*434293*/            OPC_MoveParent,
/*434294*/            OPC_MoveChild2,
/*434295*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434298*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434300*/            OPC_MoveParent,
/*434301*/            OPC_CheckType, MVT::v16i32,
/*434303*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434305*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSUBDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434314*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::MUL),// ->434340
/*434317*/            OPC_RecordChild0, // #1 = $src1
/*434318*/            OPC_RecordChild1, // #2 = $src2
/*434319*/            OPC_MoveParent,
/*434320*/            OPC_MoveChild2,
/*434321*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434324*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434326*/            OPC_MoveParent,
/*434327*/            OPC_CheckType, MVT::v16i32,
/*434329*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434331*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMULLDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434340*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VPMADDWD),// ->434366
/*434343*/            OPC_RecordChild0, // #1 = $src1
/*434344*/            OPC_RecordChild1, // #2 = $src2
/*434345*/            OPC_MoveParent,
/*434346*/            OPC_MoveChild2,
/*434347*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434350*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434352*/            OPC_MoveParent,
/*434353*/            OPC_CheckType, MVT::v16i32,
/*434355*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*434357*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpmaddwd:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMADDWDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*434366*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::SMAX),// ->434392
/*434369*/            OPC_RecordChild0, // #1 = $src1
/*434370*/            OPC_RecordChild1, // #2 = $src2
/*434371*/            OPC_MoveParent,
/*434372*/            OPC_MoveChild2,
/*434373*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434376*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434378*/            OPC_MoveParent,
/*434379*/            OPC_CheckType, MVT::v16i32,
/*434381*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434383*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMAXSDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434392*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::UMAX),// ->434418
/*434395*/            OPC_RecordChild0, // #1 = $src1
/*434396*/            OPC_RecordChild1, // #2 = $src2
/*434397*/            OPC_MoveParent,
/*434398*/            OPC_MoveChild2,
/*434399*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434402*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434404*/            OPC_MoveParent,
/*434405*/            OPC_CheckType, MVT::v16i32,
/*434407*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434409*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMAXUDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434418*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::SMIN),// ->434444
/*434421*/            OPC_RecordChild0, // #1 = $src1
/*434422*/            OPC_RecordChild1, // #2 = $src2
/*434423*/            OPC_MoveParent,
/*434424*/            OPC_MoveChild2,
/*434425*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434428*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434430*/            OPC_MoveParent,
/*434431*/            OPC_CheckType, MVT::v16i32,
/*434433*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434435*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMINSDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434444*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::UMIN),// ->434470
/*434447*/            OPC_RecordChild0, // #1 = $src1
/*434448*/            OPC_RecordChild1, // #2 = $src2
/*434449*/            OPC_MoveParent,
/*434450*/            OPC_MoveChild2,
/*434451*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434454*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434456*/            OPC_MoveParent,
/*434457*/            OPC_CheckType, MVT::v16i32,
/*434459*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434461*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPMINUDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434470*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHL),// ->434498
/*434473*/            OPC_RecordChild0, // #1 = $src1
/*434474*/            OPC_RecordChild1, // #2 = $src2
/*434475*/            OPC_CheckChild1Type, MVT::v4i32,
/*434477*/            OPC_MoveParent,
/*434478*/            OPC_MoveChild2,
/*434479*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434482*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434484*/            OPC_MoveParent,
/*434485*/            OPC_CheckType, MVT::v16i32,
/*434487*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434489*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSLLDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*434498*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSRA),// ->434526
/*434501*/            OPC_RecordChild0, // #1 = $src1
/*434502*/            OPC_RecordChild1, // #2 = $src2
/*434503*/            OPC_CheckChild1Type, MVT::v4i32,
/*434505*/            OPC_MoveParent,
/*434506*/            OPC_MoveChild2,
/*434507*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434510*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434512*/            OPC_MoveParent,
/*434513*/            OPC_CheckType, MVT::v16i32,
/*434515*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434517*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRADZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*434526*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSRL),// ->434554
/*434529*/            OPC_RecordChild0, // #1 = $src1
/*434530*/            OPC_RecordChild1, // #2 = $src2
/*434531*/            OPC_CheckChild1Type, MVT::v4i32,
/*434533*/            OPC_MoveParent,
/*434534*/            OPC_MoveChild2,
/*434535*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434538*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434540*/            OPC_MoveParent,
/*434541*/            OPC_CheckType, MVT::v16i32,
/*434543*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434545*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRLDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*434554*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::SHL),// ->434582
/*434557*/            OPC_RecordChild0, // #1 = $src1
/*434558*/            OPC_RecordChild1, // #2 = $src2
/*434559*/            OPC_CheckChild1Type, MVT::v16i32,
/*434561*/            OPC_MoveParent,
/*434562*/            OPC_MoveChild2,
/*434563*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434566*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434568*/            OPC_MoveParent,
/*434569*/            OPC_CheckType, MVT::v16i32,
/*434571*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434573*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (shl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSLLVDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434582*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::SRA),// ->434610
/*434585*/            OPC_RecordChild0, // #1 = $src1
/*434586*/            OPC_RecordChild1, // #2 = $src2
/*434587*/            OPC_CheckChild1Type, MVT::v16i32,
/*434589*/            OPC_MoveParent,
/*434590*/            OPC_MoveChild2,
/*434591*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434594*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434596*/            OPC_MoveParent,
/*434597*/            OPC_CheckType, MVT::v16i32,
/*434599*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434601*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRAVDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434610*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::SRL),// ->434638
/*434613*/            OPC_RecordChild0, // #1 = $src1
/*434614*/            OPC_RecordChild1, // #2 = $src2
/*434615*/            OPC_CheckChild1Type, MVT::v16i32,
/*434617*/            OPC_MoveParent,
/*434618*/            OPC_MoveChild2,
/*434619*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434622*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434624*/            OPC_MoveParent,
/*434625*/            OPC_CheckType, MVT::v16i32,
/*434627*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434629*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (srl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRLVDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434638*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::ROTR),// ->434666
/*434641*/            OPC_RecordChild0, // #1 = $src1
/*434642*/            OPC_RecordChild1, // #2 = $src2
/*434643*/            OPC_CheckChild1Type, MVT::v16i32,
/*434645*/            OPC_MoveParent,
/*434646*/            OPC_MoveChild2,
/*434647*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434650*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434652*/            OPC_MoveParent,
/*434653*/            OPC_CheckType, MVT::v16i32,
/*434655*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434657*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPRORVDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434666*/          /*SwitchOpcode*/ 25, TARGET_VAL(ISD::ROTL),// ->434694
/*434669*/            OPC_RecordChild0, // #1 = $src1
/*434670*/            OPC_RecordChild1, // #2 = $src2
/*434671*/            OPC_CheckChild1Type, MVT::v16i32,
/*434673*/            OPC_MoveParent,
/*434674*/            OPC_MoveChild2,
/*434675*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434678*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434680*/            OPC_MoveParent,
/*434681*/            OPC_CheckType, MVT::v16i32,
/*434683*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434685*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPROLVDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434694*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VSRAV),// ->434720
/*434697*/            OPC_RecordChild0, // #1 = $src1
/*434698*/            OPC_RecordChild1, // #2 = $src2
/*434699*/            OPC_MoveParent,
/*434700*/            OPC_MoveChild2,
/*434701*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434704*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434706*/            OPC_MoveParent,
/*434707*/            OPC_CheckType, MVT::v16i32,
/*434709*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434711*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrav:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSRAVDZrrkz:{ *:[v16i32] } VK16:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434720*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VPERMV),// ->434746
/*434723*/            OPC_RecordChild0, // #1 = $src1
/*434724*/            OPC_RecordChild1, // #2 = $src2
/*434725*/            OPC_MoveParent,
/*434726*/            OPC_MoveChild2,
/*434727*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434730*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434732*/            OPC_MoveParent,
/*434733*/            OPC_CheckType, MVT::v16i32,
/*434735*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434737*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPERMDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*434746*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::CVTTP2SI),// ->434772
/*434749*/            OPC_RecordChild0, // #1 = $src
/*434750*/            OPC_CheckChild0Type, MVT::v16f32,
/*434752*/            OPC_MoveParent,
/*434753*/            OPC_MoveChild2,
/*434754*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434757*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434759*/            OPC_MoveParent,
/*434760*/            OPC_CheckType, MVT::v16i32,
/*434762*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434764*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2si:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VCVTTPS2DQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*434772*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::CVTTP2UI),// ->434798
/*434775*/            OPC_RecordChild0, // #1 = $src
/*434776*/            OPC_CheckChild0Type, MVT::v16f32,
/*434778*/            OPC_MoveParent,
/*434779*/            OPC_MoveChild2,
/*434780*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434783*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434785*/            OPC_MoveParent,
/*434786*/            OPC_CheckType, MVT::v16i32,
/*434788*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434790*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2ui:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VCVTTPS2UDQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*434798*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::CVTP2SI),// ->434824
/*434801*/            OPC_RecordChild0, // #1 = $src
/*434802*/            OPC_CheckChild0Type, MVT::v16f32,
/*434804*/            OPC_MoveParent,
/*434805*/            OPC_MoveChild2,
/*434806*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434809*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434811*/            OPC_MoveParent,
/*434812*/            OPC_CheckType, MVT::v16i32,
/*434814*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434816*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2Int:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VCVTPS2DQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*434824*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::CVTP2UI),// ->434850
/*434827*/            OPC_RecordChild0, // #1 = $src
/*434828*/            OPC_CheckChild0Type, MVT::v16f32,
/*434830*/            OPC_MoveParent,
/*434831*/            OPC_MoveChild2,
/*434832*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434835*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434837*/            OPC_MoveParent,
/*434838*/            OPC_CheckType, MVT::v16i32,
/*434840*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434842*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2UInt:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VCVTPS2UDQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*434850*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VZEXT),// ->434902
/*434853*/            OPC_RecordChild0, // #1 = $src
/*434854*/            OPC_Scope, 22, /*->434878*/ // 2 children in Scope
/*434856*/              OPC_CheckChild0Type, MVT::v16i8,
/*434858*/              OPC_MoveParent,
/*434859*/              OPC_MoveChild2,
/*434860*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434863*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434865*/              OPC_MoveParent,
/*434866*/              OPC_CheckType, MVT::v16i32,
/*434868*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434870*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZrrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vzext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVZXBDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*434878*/            /*Scope*/ 22, /*->434901*/
/*434879*/              OPC_CheckChild0Type, MVT::v16i16,
/*434881*/              OPC_MoveParent,
/*434882*/              OPC_MoveChild2,
/*434883*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434886*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434888*/              OPC_MoveParent,
/*434889*/              OPC_CheckType, MVT::v16i32,
/*434891*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434893*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZrrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vzext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVZXWDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*434901*/            0, /*End of Scope*/
/*434902*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VSEXT),// ->434954
/*434905*/            OPC_RecordChild0, // #1 = $src
/*434906*/            OPC_Scope, 22, /*->434930*/ // 2 children in Scope
/*434908*/              OPC_CheckChild0Type, MVT::v16i8,
/*434910*/              OPC_MoveParent,
/*434911*/              OPC_MoveChild2,
/*434912*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434915*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434917*/              OPC_MoveParent,
/*434918*/              OPC_CheckType, MVT::v16i32,
/*434920*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434922*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZrrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVSXBDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*434930*/            /*Scope*/ 22, /*->434953*/
/*434931*/              OPC_CheckChild0Type, MVT::v16i16,
/*434933*/              OPC_MoveParent,
/*434934*/              OPC_MoveChild2,
/*434935*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434938*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434940*/              OPC_MoveParent,
/*434941*/              OPC_CheckType, MVT::v16i32,
/*434943*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434945*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZrrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                        // Dst: (VPMOVSXWDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*434953*/            0, /*End of Scope*/
/*434954*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::COMPRESS),// ->434978
/*434957*/            OPC_RecordChild0, // #1 = $src1
/*434958*/            OPC_MoveParent,
/*434959*/            OPC_MoveChild2,
/*434960*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434963*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434965*/            OPC_MoveParent,
/*434966*/            OPC_CheckType, MVT::v16i32,
/*434968*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434970*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86compress:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPCOMPRESSDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*434978*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::EXPAND),// ->435002
/*434981*/            OPC_RecordChild0, // #1 = $src1
/*434982*/            OPC_MoveParent,
/*434983*/            OPC_MoveChild2,
/*434984*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*434987*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*434989*/            OPC_MoveParent,
/*434990*/            OPC_CheckType, MVT::v16i32,
/*434992*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434994*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPEXPANDDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*435002*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::ABS),// ->435026
/*435005*/            OPC_RecordChild0, // #1 = $src1
/*435006*/            OPC_MoveParent,
/*435007*/            OPC_MoveChild2,
/*435008*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435011*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435013*/            OPC_MoveParent,
/*435014*/            OPC_CheckType, MVT::v16i32,
/*435016*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435018*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPABSDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*435026*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::CTLZ),// ->435050
/*435029*/            OPC_RecordChild0, // #1 = $src1
/*435030*/            OPC_MoveParent,
/*435031*/            OPC_MoveChild2,
/*435032*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435035*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435037*/            OPC_MoveParent,
/*435038*/            OPC_CheckType, MVT::v16i32,
/*435040*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*435042*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctlz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPLZCNTDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*435050*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::CONFLICT),// ->435074
/*435053*/            OPC_RecordChild0, // #1 = $src1
/*435054*/            OPC_MoveParent,
/*435055*/            OPC_MoveChild2,
/*435056*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435059*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435061*/            OPC_MoveParent,
/*435062*/            OPC_CheckType, MVT::v16i32,
/*435064*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*435066*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Conflict:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPCONFLICTDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*435074*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::CTPOP),// ->435098
/*435077*/            OPC_RecordChild0, // #1 = $src1
/*435078*/            OPC_MoveParent,
/*435079*/            OPC_MoveChild2,
/*435080*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435083*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435085*/            OPC_MoveParent,
/*435086*/            OPC_CheckType, MVT::v16i32,
/*435088*/            OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*435090*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPOPCNTDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*435098*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::UNPCKL),// ->435124
/*435101*/            OPC_RecordChild0, // #1 = $src1
/*435102*/            OPC_RecordChild1, // #2 = $src2
/*435103*/            OPC_MoveParent,
/*435104*/            OPC_MoveChild2,
/*435105*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435108*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435110*/            OPC_MoveParent,
/*435111*/            OPC_CheckType, MVT::v16i32,
/*435113*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435115*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPUNPCKLDQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*435124*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::UNPCKH),// ->435150
/*435127*/            OPC_RecordChild0, // #1 = $src1
/*435128*/            OPC_RecordChild1, // #2 = $src2
/*435129*/            OPC_MoveParent,
/*435130*/            OPC_MoveChild2,
/*435131*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435134*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435136*/            OPC_MoveParent,
/*435137*/            OPC_CheckType, MVT::v16i32,
/*435139*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435141*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPUNPCKHDQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*435150*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHLDV),// ->435178
/*435153*/            OPC_RecordChild0, // #1 = $src1
/*435154*/            OPC_RecordChild1, // #2 = $src2
/*435155*/            OPC_RecordChild2, // #3 = $src3
/*435156*/            OPC_MoveParent,
/*435157*/            OPC_MoveChild2,
/*435158*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435161*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435163*/            OPC_MoveParent,
/*435164*/            OPC_CheckType, MVT::v16i32,
/*435166*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*435168*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZrkz), 0,
                          MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShldv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSHLDVDZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*435178*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHRDV),// ->435206
/*435181*/            OPC_RecordChild0, // #1 = $src1
/*435182*/            OPC_RecordChild1, // #2 = $src2
/*435183*/            OPC_RecordChild2, // #3 = $src3
/*435184*/            OPC_MoveParent,
/*435185*/            OPC_MoveChild2,
/*435186*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435189*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435191*/            OPC_MoveParent,
/*435192*/            OPC_CheckType, MVT::v16i32,
/*435194*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*435196*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZrkz), 0,
                          MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrdv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPSHRDVDZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*435206*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPBUSD),// ->435234
/*435209*/            OPC_RecordChild0, // #1 = $src1
/*435210*/            OPC_RecordChild1, // #2 = $src2
/*435211*/            OPC_RecordChild2, // #3 = $src3
/*435212*/            OPC_MoveParent,
/*435213*/            OPC_MoveChild2,
/*435214*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435217*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435219*/            OPC_MoveParent,
/*435220*/            OPC_CheckType, MVT::v16i32,
/*435222*/            OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*435224*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZrkz), 0,
                          MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPBUSDZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*435234*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPBUSDS),// ->435262
/*435237*/            OPC_RecordChild0, // #1 = $src1
/*435238*/            OPC_RecordChild1, // #2 = $src2
/*435239*/            OPC_RecordChild2, // #3 = $src3
/*435240*/            OPC_MoveParent,
/*435241*/            OPC_MoveChild2,
/*435242*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435245*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435247*/            OPC_MoveParent,
/*435248*/            OPC_CheckType, MVT::v16i32,
/*435250*/            OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*435252*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZrkz), 0,
                          MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPBUSDSZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*435262*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPWSSD),// ->435290
/*435265*/            OPC_RecordChild0, // #1 = $src1
/*435266*/            OPC_RecordChild1, // #2 = $src2
/*435267*/            OPC_RecordChild2, // #3 = $src3
/*435268*/            OPC_MoveParent,
/*435269*/            OPC_MoveChild2,
/*435270*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435273*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435275*/            OPC_MoveParent,
/*435276*/            OPC_CheckType, MVT::v16i32,
/*435278*/            OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*435280*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZrkz), 0,
                          MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPWSSDZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*435290*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPDPWSSDS),// ->435318
/*435293*/            OPC_RecordChild0, // #1 = $src1
/*435294*/            OPC_RecordChild1, // #2 = $src2
/*435295*/            OPC_RecordChild2, // #3 = $src3
/*435296*/            OPC_MoveParent,
/*435297*/            OPC_MoveChild2,
/*435298*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435301*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435303*/            OPC_MoveParent,
/*435304*/            OPC_CheckType, MVT::v16i32,
/*435306*/            OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*435308*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZrkz), 0,
                          MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 10
                      // Dst: (VPDPWSSDSZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*435318*/          0, // EndSwitchOpcode
/*435319*/        /*Scope*/ 69|128,1/*197*/, /*->435518*/
/*435321*/          OPC_RecordChild1, // #1 = $src1
/*435322*/          OPC_Scope, 124, /*->435448*/ // 2 children in Scope
/*435324*/            OPC_MoveChild2,
/*435325*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*435328*/            OPC_MoveChild0,
/*435329*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*435332*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*435334*/            OPC_SwitchType /*2 cases */, 54, MVT::v4i32,// ->435391
/*435337*/              OPC_MoveParent,
/*435338*/              OPC_MoveParent,
/*435339*/              OPC_CheckType, MVT::v16i8,
/*435341*/              OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*435343*/              OPC_EmitInteger, MVT::i32, X86::VK64WMRegClassID,
/*435346*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*435354*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #4
/*435360*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435363*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*435372*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU8Zrrkz), 0,
                            MVT::v64i8, 2/*#Ops*/, 3, 6,  // Results = #7
/*435380*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435383*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v16i8, 2/*#Ops*/, 7, 8, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                        // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } (VMOVDQU8Zrrkz:{ *:[v64i8] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK16WM:{ *:[v16i1] }:$mask, VK64WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*435391*/            /*SwitchType*/ 54, MVT::v8i32,// ->435447
/*435393*/              OPC_MoveParent,
/*435394*/              OPC_MoveParent,
/*435395*/              OPC_CheckType, MVT::v16i16,
/*435397*/              OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*435399*/              OPC_EmitInteger, MVT::i32, X86::VK32WMRegClassID,
/*435402*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v32i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*435410*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #4
/*435416*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*435419*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*435428*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU16Zrrkz), 0,
                            MVT::v32i16, 2/*#Ops*/, 3, 6,  // Results = #7
/*435436*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*435439*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v16i16, 2/*#Ops*/, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                        // Dst: (EXTRACT_SUBREG:{ *:[v16i16] } (VMOVDQU16Zrrkz:{ *:[v32i16] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16WM:{ *:[v16i1] }:$mask, VK32WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*435447*/            0, // EndSwitchType
/*435448*/          /*Scope*/ 68, /*->435517*/
/*435449*/            OPC_MoveChild1,
/*435450*/            OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*435453*/            OPC_RecordChild0, // #2 = $src1
/*435454*/            OPC_RecordChild1, // #3 = $src2
/*435455*/            OPC_Scope, 29, /*->435486*/ // 2 children in Scope
/*435457*/              OPC_CheckChild1Type, MVT::v4i32,
/*435459*/              OPC_MoveChild2,
/*435460*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435463*/              OPC_CheckType, MVT::iPTR,
/*435465*/              OPC_MoveParent,
/*435466*/              OPC_MoveParent,
/*435467*/              OPC_RecordChild2, // #4 = $src0
/*435468*/              OPC_CheckType, MVT::v16i32,
/*435470*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435472*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*435475*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrrk), 0,
                            MVT::v16i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VINSERTI32x4Zrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*435486*/            /*Scope*/ 29, /*->435516*/
/*435487*/              OPC_CheckChild1Type, MVT::v8i32,
/*435489*/              OPC_MoveChild2,
/*435490*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435493*/              OPC_CheckType, MVT::iPTR,
/*435495*/              OPC_MoveParent,
/*435496*/              OPC_MoveParent,
/*435497*/              OPC_RecordChild2, // #4 = $src0
/*435498*/              OPC_CheckType, MVT::v16i32,
/*435500*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*435502*/              OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*435505*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x8Zrrk), 0,
                            MVT::v16i32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VINSERTI32x8Zrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*435516*/            0, /*End of Scope*/
/*435517*/          0, /*End of Scope*/
/*435518*/        /*Scope*/ 56|128,6/*824*/, /*->436344*/
/*435520*/          OPC_MoveChild1,
/*435521*/          OPC_SwitchOpcode /*20 cases */, 123, TARGET_VAL(ISD::BITCAST),// ->435648
/*435525*/            OPC_MoveChild0,
/*435526*/            OPC_SwitchOpcode /*5 cases */, 21, TARGET_VAL(X86ISD::VBROADCAST),// ->435551
/*435530*/              OPC_RecordChild0, // #1 = $src
/*435531*/              OPC_CheckChild0Type, MVT::v2i64,
/*435533*/              OPC_CheckType, MVT::v8i64,
/*435535*/              OPC_MoveParent,
/*435536*/              OPC_MoveParent,
/*435537*/              OPC_RecordChild2, // #2 = $src0
/*435538*/              OPC_CheckType, MVT::v16i32,
/*435540*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*435542*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X2Zrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VBroadcast:{ *:[v8i64] } VR128X:{ *:[v2i64] }:$src)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VBROADCASTI32X2Zrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*435551*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::AND),// ->435575
/*435554*/              OPC_RecordChild0, // #1 = $src1
/*435555*/              OPC_RecordChild1, // #2 = $src2
/*435556*/              OPC_CheckType, MVT::v8i64,
/*435558*/              OPC_MoveParent,
/*435559*/              OPC_MoveParent,
/*435560*/              OPC_RecordChild2, // #3 = $src0
/*435561*/              OPC_CheckType, MVT::v16i32,
/*435563*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435565*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPANDDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*435575*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::OR),// ->435599
/*435578*/              OPC_RecordChild0, // #1 = $src1
/*435579*/              OPC_RecordChild1, // #2 = $src2
/*435580*/              OPC_CheckType, MVT::v8i64,
/*435582*/              OPC_MoveParent,
/*435583*/              OPC_MoveParent,
/*435584*/              OPC_RecordChild2, // #3 = $src0
/*435585*/              OPC_CheckType, MVT::v16i32,
/*435587*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435589*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPORDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*435599*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::XOR),// ->435623
/*435602*/              OPC_RecordChild0, // #1 = $src1
/*435603*/              OPC_RecordChild1, // #2 = $src2
/*435604*/              OPC_CheckType, MVT::v8i64,
/*435606*/              OPC_MoveParent,
/*435607*/              OPC_MoveParent,
/*435608*/              OPC_RecordChild2, // #3 = $src0
/*435609*/              OPC_CheckType, MVT::v16i32,
/*435611*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435613*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPXORDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*435623*/            /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::ANDNP),// ->435647
/*435626*/              OPC_RecordChild0, // #1 = $src1
/*435627*/              OPC_RecordChild1, // #2 = $src2
/*435628*/              OPC_CheckType, MVT::v8i64,
/*435630*/              OPC_MoveParent,
/*435631*/              OPC_MoveParent,
/*435632*/              OPC_RecordChild2, // #3 = $src0
/*435633*/              OPC_CheckType, MVT::v16i32,
/*435635*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435637*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPANDNDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*435647*/            0, // EndSwitchOpcode
/*435648*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VSRLI),// ->435694
/*435651*/            OPC_RecordChild0, // #1 = $src1
/*435652*/            OPC_RecordChild1, // #2 = $src2
/*435653*/            OPC_MoveChild1,
/*435654*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435657*/            OPC_MoveParent,
/*435658*/            OPC_MoveParent,
/*435659*/            OPC_RecordChild2, // #3 = $src0
/*435660*/            OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->435677
/*435663*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435665*/              OPC_EmitConvertToTarget, 2,
/*435667*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZrik), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRLDZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*435677*/            /*SwitchType*/ 14, MVT::v16i16,// ->435693
/*435679*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*435681*/              OPC_EmitConvertToTarget, 2,
/*435683*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256rik), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                        // Dst: (VPSRLWZ256rik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*435693*/            0, // EndSwitchType
/*435694*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VSHLI),// ->435740
/*435697*/            OPC_RecordChild0, // #1 = $src1
/*435698*/            OPC_RecordChild1, // #2 = $src2
/*435699*/            OPC_MoveChild1,
/*435700*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435703*/            OPC_MoveParent,
/*435704*/            OPC_MoveParent,
/*435705*/            OPC_RecordChild2, // #3 = $src0
/*435706*/            OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->435723
/*435709*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435711*/              OPC_EmitConvertToTarget, 2,
/*435713*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZrik), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPSLLDZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*435723*/            /*SwitchType*/ 14, MVT::v16i16,// ->435739
/*435725*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*435727*/              OPC_EmitConvertToTarget, 2,
/*435729*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256rik), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                        // Dst: (VPSLLWZ256rik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*435739*/            0, // EndSwitchType
/*435740*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VSRAI),// ->435786
/*435743*/            OPC_RecordChild0, // #1 = $src1
/*435744*/            OPC_RecordChild1, // #2 = $src2
/*435745*/            OPC_MoveChild1,
/*435746*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435749*/            OPC_MoveParent,
/*435750*/            OPC_MoveParent,
/*435751*/            OPC_RecordChild2, // #3 = $src0
/*435752*/            OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->435769
/*435755*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435757*/              OPC_EmitConvertToTarget, 2,
/*435759*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZrik), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRADZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*435769*/            /*SwitchType*/ 14, MVT::v16i16,// ->435785
/*435771*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*435773*/              OPC_EmitConvertToTarget, 2,
/*435775*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256rik), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                        // Dst: (VPSRAWZ256rik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*435785*/            0, // EndSwitchType
/*435786*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VROTRI),// ->435814
/*435789*/            OPC_RecordChild0, // #1 = $src1
/*435790*/            OPC_RecordChild1, // #2 = $src2
/*435791*/            OPC_MoveChild1,
/*435792*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435795*/            OPC_MoveParent,
/*435796*/            OPC_MoveParent,
/*435797*/            OPC_RecordChild2, // #3 = $src0
/*435798*/            OPC_CheckType, MVT::v16i32,
/*435800*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435802*/            OPC_EmitConvertToTarget, 2,
/*435804*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZrik), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VPRORDZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*435814*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VROTLI),// ->435842
/*435817*/            OPC_RecordChild0, // #1 = $src1
/*435818*/            OPC_RecordChild1, // #2 = $src2
/*435819*/            OPC_MoveChild1,
/*435820*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435823*/            OPC_MoveParent,
/*435824*/            OPC_MoveParent,
/*435825*/            OPC_RecordChild2, // #3 = $src0
/*435826*/            OPC_CheckType, MVT::v16i32,
/*435828*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435830*/            OPC_EmitConvertToTarget, 2,
/*435832*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZrik), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VPROLDZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*435842*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::PSHUFD),// ->435870
/*435845*/            OPC_RecordChild0, // #1 = $src1
/*435846*/            OPC_RecordChild1, // #2 = $src2
/*435847*/            OPC_MoveChild1,
/*435848*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435851*/            OPC_MoveParent,
/*435852*/            OPC_MoveParent,
/*435853*/            OPC_RecordChild2, // #3 = $src0
/*435854*/            OPC_CheckType, MVT::v16i32,
/*435856*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435858*/            OPC_EmitConvertToTarget, 2,
/*435860*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZrik), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFDZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*435870*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::PSHUFHW),// ->435898
/*435873*/            OPC_RecordChild0, // #1 = $src1
/*435874*/            OPC_RecordChild1, // #2 = $src2
/*435875*/            OPC_MoveChild1,
/*435876*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435879*/            OPC_MoveParent,
/*435880*/            OPC_MoveParent,
/*435881*/            OPC_RecordChild2, // #3 = $src0
/*435882*/            OPC_CheckType, MVT::v16i16,
/*435884*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*435886*/            OPC_EmitConvertToTarget, 2,
/*435888*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256rik), 0,
                          MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufhw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFHWZ256rik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*435898*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::PSHUFLW),// ->435926
/*435901*/            OPC_RecordChild0, // #1 = $src1
/*435902*/            OPC_RecordChild1, // #2 = $src2
/*435903*/            OPC_MoveChild1,
/*435904*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435907*/            OPC_MoveParent,
/*435908*/            OPC_MoveParent,
/*435909*/            OPC_RecordChild2, // #3 = $src0
/*435910*/            OPC_CheckType, MVT::v16i16,
/*435912*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*435914*/            OPC_EmitConvertToTarget, 2,
/*435916*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256rik), 0,
                          MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShuflw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFLWZ256rik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*435926*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::CVTP2SI_RND),// ->435956
/*435929*/            OPC_RecordChild0, // #1 = $src
/*435930*/            OPC_CheckChild0Type, MVT::v16f32,
/*435932*/            OPC_RecordChild1, // #2 = $rc
/*435933*/            OPC_MoveChild1,
/*435934*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435937*/            OPC_MoveParent,
/*435938*/            OPC_MoveParent,
/*435939*/            OPC_RecordChild2, // #3 = $src0
/*435940*/            OPC_CheckType, MVT::v16i32,
/*435942*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435944*/            OPC_EmitConvertToTarget, 2,
/*435946*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrrbk), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2IntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VCVTPS2DQZrrbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc)
/*435956*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::CVTP2UI_RND),// ->435986
/*435959*/            OPC_RecordChild0, // #1 = $src
/*435960*/            OPC_CheckChild0Type, MVT::v16f32,
/*435962*/            OPC_RecordChild1, // #2 = $rc
/*435963*/            OPC_MoveChild1,
/*435964*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435967*/            OPC_MoveParent,
/*435968*/            OPC_MoveParent,
/*435969*/            OPC_RecordChild2, // #3 = $src0
/*435970*/            OPC_CheckType, MVT::v16i32,
/*435972*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435974*/            OPC_EmitConvertToTarget, 2,
/*435976*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrrbk), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VCVTPS2UDQZrrbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc)
/*435986*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::CVTPS2PH),// ->436016
/*435989*/            OPC_RecordChild0, // #1 = $src1
/*435990*/            OPC_CheckChild0Type, MVT::v16f32,
/*435992*/            OPC_RecordChild1, // #2 = $src2
/*435993*/            OPC_MoveChild1,
/*435994*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435997*/            OPC_MoveParent,
/*435998*/            OPC_MoveParent,
/*435999*/            OPC_RecordChild2, // #3 = $src0
/*436000*/            OPC_CheckType, MVT::v16i16,
/*436002*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436004*/            OPC_EmitConvertToTarget, 2,
/*436006*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZrrk), 0,
                          MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtps2ph:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                      // Dst: (VCVTPS2PHZrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*436016*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VALIGN),// ->436046
/*436019*/            OPC_RecordChild0, // #1 = $src1
/*436020*/            OPC_RecordChild1, // #2 = $src2
/*436021*/            OPC_RecordChild2, // #3 = $src3
/*436022*/            OPC_MoveChild2,
/*436023*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436026*/            OPC_MoveParent,
/*436027*/            OPC_MoveParent,
/*436028*/            OPC_RecordChild2, // #4 = $src0
/*436029*/            OPC_CheckType, MVT::v16i32,
/*436031*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436033*/            OPC_EmitConvertToTarget, 3,
/*436035*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrrik), 0,
                          MVT::v16i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VALIGNDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*436046*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::PALIGNR),// ->436076
/*436049*/            OPC_RecordChild0, // #1 = $src1
/*436050*/            OPC_RecordChild1, // #2 = $src2
/*436051*/            OPC_RecordChild2, // #3 = $src3
/*436052*/            OPC_MoveChild2,
/*436053*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436056*/            OPC_MoveParent,
/*436057*/            OPC_MoveParent,
/*436058*/            OPC_RecordChild2, // #4 = $src0
/*436059*/            OPC_CheckType, MVT::v16i8,
/*436061*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436063*/            OPC_EmitConvertToTarget, 3,
/*436065*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrik), 0,
                          MVT::v16i8, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 9
                      // Dst: (VPALIGNRZ128rrik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*436076*/          /*SwitchOpcode*/ 29, TARGET_VAL(X86ISD::DBPSADBW),// ->436108
/*436079*/            OPC_RecordChild0, // #1 = $src1
/*436080*/            OPC_RecordChild1, // #2 = $src2
/*436081*/            OPC_RecordChild2, // #3 = $src3
/*436082*/            OPC_MoveChild2,
/*436083*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436086*/            OPC_CheckType, MVT::i8,
/*436088*/            OPC_MoveParent,
/*436089*/            OPC_MoveParent,
/*436090*/            OPC_RecordChild2, // #4 = $src0
/*436091*/            OPC_CheckType, MVT::v16i16,
/*436093*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436095*/            OPC_EmitConvertToTarget, 3,
/*436097*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rrik), 0,
                          MVT::v16i16, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                      // Dst: (VDBPSADBWZ256rrik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*436108*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VPTERNLOG),// ->436185
/*436111*/            OPC_RecordChild0, // #1 = $src1
/*436112*/            OPC_RecordChild1, // #2 = $src2
/*436113*/            OPC_RecordChild2, // #3 = $src3
/*436114*/            OPC_RecordChild3, // #4 = $src4
/*436115*/            OPC_MoveChild3,
/*436116*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436119*/            OPC_MoveParent,
/*436120*/            OPC_MoveParent,
/*436121*/            OPC_CheckType, MVT::v16i32,
/*436123*/            OPC_Scope, 17, /*->436142*/ // 3 children in Scope
/*436125*/              OPC_CheckChild2Same, 1,
/*436127*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436129*/              OPC_EmitConvertToTarget, 4,
/*436131*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrrik), 0,
                            MVT::v16i32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 9
                        // Dst: (VPTERNLOGDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*436142*/            /*Scope*/ 20, /*->436163*/
/*436143*/              OPC_CheckChild2Same, 3,
/*436145*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436147*/              OPC_EmitConvertToTarget, 4,
/*436149*/              OPC_EmitNodeXForm, 15, 5, // VPTERNLOG321_imm8
/*436152*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrrik), 0,
                            MVT::v16i32, 5/*#Ops*/, 3, 0, 2, 1, 6, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src3, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 9
                        // Dst: (VPTERNLOGDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*436163*/            /*Scope*/ 20, /*->436184*/
/*436164*/              OPC_CheckChild2Same, 2,
/*436166*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436168*/              OPC_EmitConvertToTarget, 4,
/*436170*/              OPC_EmitNodeXForm, 17, 5, // VPTERNLOG213_imm8
/*436173*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrrik), 0,
                            MVT::v16i32, 5/*#Ops*/, 2, 0, 1, 3, 6, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 9
                        // Dst: (VPTERNLOGDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*436184*/            0, /*End of Scope*/
/*436185*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VSHLD),// ->436234
/*436188*/            OPC_RecordChild0, // #1 = $src1
/*436189*/            OPC_RecordChild1, // #2 = $src2
/*436190*/            OPC_RecordChild2, // #3 = $src3
/*436191*/            OPC_MoveChild2,
/*436192*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436195*/            OPC_MoveParent,
/*436196*/            OPC_MoveParent,
/*436197*/            OPC_RecordChild2, // #4 = $src0
/*436198*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i16,// ->436216
/*436201*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*436203*/              OPC_EmitConvertToTarget, 3,
/*436205*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rrik), 0,
                            MVT::v16i16, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDWZ256rrik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*436216*/            /*SwitchType*/ 15, MVT::v16i32,// ->436233
/*436218*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*436220*/              OPC_EmitConvertToTarget, 3,
/*436222*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrrik), 0,
                            MVT::v16i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*436233*/            0, // EndSwitchType
/*436234*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VSHRD),// ->436283
/*436237*/            OPC_RecordChild0, // #1 = $src1
/*436238*/            OPC_RecordChild1, // #2 = $src2
/*436239*/            OPC_RecordChild2, // #3 = $src3
/*436240*/            OPC_MoveChild2,
/*436241*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436244*/            OPC_MoveParent,
/*436245*/            OPC_MoveParent,
/*436246*/            OPC_RecordChild2, // #4 = $src0
/*436247*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i16,// ->436265
/*436250*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*436252*/              OPC_EmitConvertToTarget, 3,
/*436254*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rrik), 0,
                            MVT::v16i16, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDWZ256rrik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*436265*/            /*SwitchType*/ 15, MVT::v16i32,// ->436282
/*436267*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*436269*/              OPC_EmitConvertToTarget, 3,
/*436271*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrrik), 0,
                            MVT::v16i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*436282*/            0, // EndSwitchType
/*436283*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->436313
/*436286*/            OPC_RecordChild0, // #1 = $src1
/*436287*/            OPC_RecordChild1, // #2 = $src2
/*436288*/            OPC_RecordChild2, // #3 = $src3
/*436289*/            OPC_MoveChild2,
/*436290*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436293*/            OPC_MoveParent,
/*436294*/            OPC_MoveParent,
/*436295*/            OPC_RecordChild2, // #4 = $src0
/*436296*/            OPC_CheckType, MVT::v16i8,
/*436298*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*436300*/            OPC_EmitConvertToTarget, 3,
/*436302*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rrik), 0,
                          MVT::v16i8, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 9
                      // Dst: (VGF2P8AFFINEINVQBZ128rrik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*436313*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->436343
/*436316*/            OPC_RecordChild0, // #1 = $src1
/*436317*/            OPC_RecordChild1, // #2 = $src2
/*436318*/            OPC_RecordChild2, // #3 = $src3
/*436319*/            OPC_MoveChild2,
/*436320*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436323*/            OPC_MoveParent,
/*436324*/            OPC_MoveParent,
/*436325*/            OPC_RecordChild2, // #4 = $src0
/*436326*/            OPC_CheckType, MVT::v16i8,
/*436328*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*436330*/            OPC_EmitConvertToTarget, 3,
/*436332*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rrik), 0,
                          MVT::v16i8, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 9
                      // Dst: (VGF2P8AFFINEQBZ128rrik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*436343*/          0, // EndSwitchOpcode
/*436344*/        /*Scope*/ 20, /*->436365*/
/*436345*/          OPC_RecordChild1, // #1 = $src
/*436346*/          OPC_MoveChild2,
/*436347*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*436350*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*436352*/          OPC_MoveParent,
/*436353*/          OPC_CheckType, MVT::v16i32,
/*436355*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436357*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>) - Complexity = 7
                    // Dst: (VMOVDQA32Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*436365*/        /*Scope*/ 115|128,20/*2675*/, /*->439042*/
/*436367*/          OPC_MoveChild1,
/*436368*/          OPC_SwitchOpcode /*59 cases */, 21, TARGET_VAL(ISD::BUILD_VECTOR),// ->436393
/*436372*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*436374*/            OPC_MoveParent,
/*436375*/            OPC_RecordChild2, // #1 = $src
/*436376*/            OPC_CheckType, MVT::v16i32,
/*436378*/            OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                          MVT::v16i1, 1/*#Ops*/, 0,  // Results = #2
/*436385*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 2, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, VR512:{ *:[v16i32] }:$src) - Complexity = 7
                      // Dst: (VMOVDQA32Zrrkz:{ *:[v16i32] } (KNOTWrr:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask), VR512:{ *:[v16i32] }:$src)
/*436393*/          /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(X86ISD::VBROADCAST),// ->436544
/*436397*/            OPC_RecordChild0, // #1 = $src
/*436398*/            OPC_Scope, 17, /*->436417*/ // 6 children in Scope
/*436400*/              OPC_CheckChild0Type, MVT::i32,
/*436402*/              OPC_MoveParent,
/*436403*/              OPC_RecordChild2, // #2 = $src0
/*436404*/              OPC_CheckType, MVT::v16i32,
/*436406*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436408*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i32] } GR32:{ *:[i32] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTDrZrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, GR32:{ *:[i32] }:$src)
/*436417*/            /*Scope*/ 17, /*->436435*/
/*436418*/              OPC_CheckChild0Type, MVT::v16i8,
/*436420*/              OPC_MoveParent,
/*436421*/              OPC_RecordChild2, // #2 = $src0
/*436422*/              OPC_CheckType, MVT::v16i8,
/*436424*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436426*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ128rk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTBZ128rk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*436435*/            /*Scope*/ 17, /*->436453*/
/*436436*/              OPC_CheckChild0Type, MVT::v8i16,
/*436438*/              OPC_MoveParent,
/*436439*/              OPC_RecordChild2, // #2 = $src0
/*436440*/              OPC_CheckType, MVT::v16i16,
/*436442*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436444*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256rk), 0,
                            MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i16] } VR128X:{ *:[v8i16] }:$src), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTWZ256rk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*436453*/            /*Scope*/ 17, /*->436471*/
/*436454*/              OPC_CheckChild0Type, MVT::v4i32,
/*436456*/              OPC_MoveParent,
/*436457*/              OPC_RecordChild2, // #2 = $src0
/*436458*/              OPC_CheckType, MVT::v16i32,
/*436460*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436462*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i32] } VR128X:{ *:[v4i32] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTDZrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*436471*/            /*Scope*/ 35, /*->436507*/
/*436472*/              OPC_CheckChild0Type, MVT::i8,
/*436474*/              OPC_MoveParent,
/*436475*/              OPC_RecordChild2, // #2 = $src0
/*436476*/              OPC_CheckType, MVT::v16i8,
/*436478*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436480*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*436486*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*436489*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*436498*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZ128rk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 5, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i8] } GR8:{ *:[i8] }:$src), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTBrZ128rk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*436507*/            /*Scope*/ 35, /*->436543*/
/*436508*/              OPC_CheckChild0Type, MVT::i16,
/*436510*/              OPC_MoveParent,
/*436511*/              OPC_RecordChild2, // #2 = $src0
/*436512*/              OPC_CheckType, MVT::v16i16,
/*436514*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436516*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*436522*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*436525*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*436534*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZ256rk), 0,
                            MVT::v16i16, 3/*#Ops*/, 2, 0, 5, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i16] } GR16:{ *:[i16] }:$src), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTWrZ256rk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*436543*/            0, /*End of Scope*/
/*436544*/          /*SwitchOpcode*/ 100, TARGET_VAL(X86ISD::VPERMV3),// ->436647
/*436547*/            OPC_RecordChild0, // #1 = $src2
/*436548*/            OPC_RecordChild1, // #2 = $src1
/*436549*/            OPC_RecordChild2, // #3 = $src3
/*436550*/            OPC_MoveParent,
/*436551*/            OPC_Scope, 46, /*->436599*/ // 2 children in Scope
/*436553*/              OPC_CheckChild2Same, 2,
/*436555*/              OPC_SwitchType /*3 cases */, 12, MVT::v16i32,// ->436570
/*436558*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436560*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Drrk), 0,
                              MVT::v16i32, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src3), VR512:{ *:[v16i32] }:$src1) - Complexity = 6
                          // Dst: (VPERMI2Drrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*436570*/              /*SwitchType*/ 12, MVT::v16i16,// ->436584
/*436572*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436574*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2W256rrk), 0,
                              MVT::v16i16, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src3), VR256X:{ *:[v16i16] }:$src1) - Complexity = 6
                          // Dst: (VPERMI2W256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*436584*/              /*SwitchType*/ 12, MVT::v16i8,// ->436598
/*436586*/                OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*436588*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2B128rrk), 0,
                              MVT::v16i8, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src3), VR128X:{ *:[v16i8] }:$src1) - Complexity = 6
                          // Dst: (VPERMI2B128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src3)
/*436598*/              0, // EndSwitchType
/*436599*/            /*Scope*/ 46, /*->436646*/
/*436600*/              OPC_CheckChild2Same, 1,
/*436602*/              OPC_SwitchType /*3 cases */, 12, MVT::v16i32,// ->436617
/*436605*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436607*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Drrk), 0,
                              MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), VR512:{ *:[v16i32] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2Drrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*436617*/              /*SwitchType*/ 12, MVT::v16i16,// ->436631
/*436619*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436621*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W256rrk), 0,
                              MVT::v16i16, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3), VR256X:{ *:[v16i16] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2W256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*436631*/              /*SwitchType*/ 12, MVT::v16i8,// ->436645
/*436633*/                OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*436635*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B128rrk), 0,
                              MVT::v16i8, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src3), VR128X:{ *:[v16i8] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2B128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src3)
/*436645*/              0, // EndSwitchType
/*436646*/            0, /*End of Scope*/
/*436647*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::ADD),// ->436698
/*436650*/            OPC_RecordChild0, // #1 = $src1
/*436651*/            OPC_RecordChild1, // #2 = $src2
/*436652*/            OPC_MoveParent,
/*436653*/            OPC_RecordChild2, // #3 = $src0
/*436654*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i32,// ->436669
/*436657*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436659*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPADDDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*436669*/            /*SwitchType*/ 12, MVT::v16i16,// ->436683
/*436671*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436673*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPADDWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*436683*/            /*SwitchType*/ 12, MVT::v16i8,// ->436697
/*436685*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436687*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (add:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPADDBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*436697*/            0, // EndSwitchType
/*436698*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SUB),// ->436749
/*436701*/            OPC_RecordChild0, // #1 = $src1
/*436702*/            OPC_RecordChild1, // #2 = $src2
/*436703*/            OPC_MoveParent,
/*436704*/            OPC_RecordChild2, // #3 = $src0
/*436705*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i32,// ->436720
/*436708*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436710*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPSUBDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*436720*/            /*SwitchType*/ 12, MVT::v16i16,// ->436734
/*436722*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436724*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPSUBWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*436734*/            /*SwitchType*/ 12, MVT::v16i8,// ->436748
/*436736*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436738*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (sub:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPSUBBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*436748*/            0, // EndSwitchType
/*436749*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::ADDS),// ->436786
/*436752*/            OPC_RecordChild0, // #1 = $src1
/*436753*/            OPC_RecordChild1, // #2 = $src2
/*436754*/            OPC_MoveParent,
/*436755*/            OPC_RecordChild2, // #3 = $src0
/*436756*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->436771
/*436759*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436761*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPADDSWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*436771*/            /*SwitchType*/ 12, MVT::v16i8,// ->436785
/*436773*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436775*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86adds:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPADDSBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*436785*/            0, // EndSwitchType
/*436786*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::SUBS),// ->436823
/*436789*/            OPC_RecordChild0, // #1 = $src1
/*436790*/            OPC_RecordChild1, // #2 = $src2
/*436791*/            OPC_MoveParent,
/*436792*/            OPC_RecordChild2, // #3 = $src0
/*436793*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->436808
/*436796*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436798*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86subs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPSUBSWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*436808*/            /*SwitchType*/ 12, MVT::v16i8,// ->436822
/*436810*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436812*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86subs:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPSUBSBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*436822*/            0, // EndSwitchType
/*436823*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::ADDUS),// ->436860
/*436826*/            OPC_RecordChild0, // #1 = $src1
/*436827*/            OPC_RecordChild1, // #2 = $src2
/*436828*/            OPC_MoveParent,
/*436829*/            OPC_RecordChild2, // #3 = $src0
/*436830*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->436845
/*436833*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436835*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPADDUSWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*436845*/            /*SwitchType*/ 12, MVT::v16i8,// ->436859
/*436847*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436849*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86addus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPADDUSBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*436859*/            0, // EndSwitchType
/*436860*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::SUBUS),// ->436897
/*436863*/            OPC_RecordChild0, // #1 = $src1
/*436864*/            OPC_RecordChild1, // #2 = $src2
/*436865*/            OPC_MoveParent,
/*436866*/            OPC_RecordChild2, // #3 = $src0
/*436867*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->436882
/*436870*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436872*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86subus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPSUBUSWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*436882*/            /*SwitchType*/ 12, MVT::v16i8,// ->436896
/*436884*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436886*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86subus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPSUBUSBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*436896*/            0, // EndSwitchType
/*436897*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::MUL),// ->436934
/*436900*/            OPC_RecordChild0, // #1 = $src1
/*436901*/            OPC_RecordChild1, // #2 = $src2
/*436902*/            OPC_MoveParent,
/*436903*/            OPC_RecordChild2, // #3 = $src0
/*436904*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i32,// ->436919
/*436907*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436909*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPMULLDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*436919*/            /*SwitchType*/ 12, MVT::v16i16,// ->436933
/*436921*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436923*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mul:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPMULLWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*436933*/            0, // EndSwitchType
/*436934*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHS),// ->436955
/*436937*/            OPC_RecordChild0, // #1 = $src1
/*436938*/            OPC_RecordChild1, // #2 = $src2
/*436939*/            OPC_MoveParent,
/*436940*/            OPC_RecordChild2, // #3 = $src0
/*436941*/            OPC_CheckType, MVT::v16i16,
/*436943*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436945*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ256rrk), 0,
                          MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                      // Dst: (VPMULHWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*436955*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHU),// ->436976
/*436958*/            OPC_RecordChild0, // #1 = $src1
/*436959*/            OPC_RecordChild1, // #2 = $src2
/*436960*/            OPC_MoveParent,
/*436961*/            OPC_RecordChild2, // #3 = $src0
/*436962*/            OPC_CheckType, MVT::v16i16,
/*436964*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436966*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ256rrk), 0,
                          MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (mulhu:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                      // Dst: (VPMULHUWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*436976*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::MULHRS),// ->436997
/*436979*/            OPC_RecordChild0, // #1 = $src1
/*436980*/            OPC_RecordChild1, // #2 = $src2
/*436981*/            OPC_MoveParent,
/*436982*/            OPC_RecordChild2, // #3 = $src0
/*436983*/            OPC_CheckType, MVT::v16i16,
/*436985*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*436987*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ256rrk), 0,
                          MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86mulhrs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                      // Dst: (VPMULHRSWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*436997*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::AVG),// ->437034
/*437000*/            OPC_RecordChild0, // #1 = $src1
/*437001*/            OPC_RecordChild1, // #2 = $src2
/*437002*/            OPC_MoveParent,
/*437003*/            OPC_RecordChild2, // #3 = $src0
/*437004*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->437019
/*437007*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437009*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPAVGWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*437019*/            /*SwitchType*/ 12, MVT::v16i8,// ->437033
/*437021*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437023*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86avg:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPAVGBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*437033*/            0, // EndSwitchType
/*437034*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::MULTISHIFT),// ->437057
/*437037*/            OPC_RecordChild0, // #1 = $src1
/*437038*/            OPC_CheckChild0Type, MVT::v16i8,
/*437040*/            OPC_RecordChild1, // #2 = $src2
/*437041*/            OPC_MoveParent,
/*437042*/            OPC_RecordChild2, // #3 = $src0
/*437043*/            OPC_CheckType, MVT::v16i8,
/*437045*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*437047*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ128rrk), 0,
                          MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86multishift:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                      // Dst: (VPMULTISHIFTQBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*437057*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PACKSS),// ->437103
/*437060*/            OPC_RecordChild0, // #1 = $src1
/*437061*/            OPC_Scope, 19, /*->437082*/ // 2 children in Scope
/*437063*/              OPC_CheckChild0Type, MVT::v8i32,
/*437065*/              OPC_RecordChild1, // #2 = $src2
/*437066*/              OPC_MoveParent,
/*437067*/              OPC_RecordChild2, // #3 = $src0
/*437068*/              OPC_CheckType, MVT::v16i16,
/*437070*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437072*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packss:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPACKSSDWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*437082*/            /*Scope*/ 19, /*->437102*/
/*437083*/              OPC_CheckChild0Type, MVT::v8i16,
/*437085*/              OPC_RecordChild1, // #2 = $src2
/*437086*/              OPC_MoveParent,
/*437087*/              OPC_RecordChild2, // #3 = $src0
/*437088*/              OPC_CheckType, MVT::v16i8,
/*437090*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437092*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Packss:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPACKSSWBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*437102*/            0, /*End of Scope*/
/*437103*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PACKUS),// ->437149
/*437106*/            OPC_RecordChild0, // #1 = $src1
/*437107*/            OPC_Scope, 19, /*->437128*/ // 2 children in Scope
/*437109*/              OPC_CheckChild0Type, MVT::v8i32,
/*437111*/              OPC_RecordChild1, // #2 = $src2
/*437112*/              OPC_MoveParent,
/*437113*/              OPC_RecordChild2, // #3 = $src0
/*437114*/              OPC_CheckType, MVT::v16i16,
/*437116*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437118*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Packus:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPACKUSDWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*437128*/            /*Scope*/ 19, /*->437148*/
/*437129*/              OPC_CheckChild0Type, MVT::v8i16,
/*437131*/              OPC_RecordChild1, // #2 = $src2
/*437132*/              OPC_MoveParent,
/*437133*/              OPC_RecordChild2, // #3 = $src0
/*437134*/              OPC_CheckType, MVT::v16i8,
/*437136*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437138*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Packus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPACKUSWBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*437148*/            0, /*End of Scope*/
/*437149*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDUBSW),// ->437170
/*437152*/            OPC_RecordChild0, // #1 = $src1
/*437153*/            OPC_RecordChild1, // #2 = $src2
/*437154*/            OPC_MoveParent,
/*437155*/            OPC_RecordChild2, // #3 = $src0
/*437156*/            OPC_CheckType, MVT::v16i16,
/*437158*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437160*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ256rrk), 0,
                          MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vpmaddubsw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                      // Dst: (VPMADDUBSWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*437170*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDWD),// ->437191
/*437173*/            OPC_RecordChild0, // #1 = $src1
/*437174*/            OPC_RecordChild1, // #2 = $src2
/*437175*/            OPC_MoveParent,
/*437176*/            OPC_RecordChild2, // #3 = $src0
/*437177*/            OPC_CheckType, MVT::v16i32,
/*437179*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*437181*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZrrk), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpmaddwd:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VPMADDWDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*437191*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SMAX),// ->437242
/*437194*/            OPC_RecordChild0, // #1 = $src1
/*437195*/            OPC_RecordChild1, // #2 = $src2
/*437196*/            OPC_MoveParent,
/*437197*/            OPC_RecordChild2, // #3 = $src0
/*437198*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->437213
/*437201*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437203*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMAXSBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*437213*/            /*SwitchType*/ 12, MVT::v16i16,// ->437227
/*437215*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437217*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPMAXSWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*437227*/            /*SwitchType*/ 12, MVT::v16i32,// ->437241
/*437229*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437231*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPMAXSDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*437241*/            0, // EndSwitchType
/*437242*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::UMAX),// ->437293
/*437245*/            OPC_RecordChild0, // #1 = $src1
/*437246*/            OPC_RecordChild1, // #2 = $src2
/*437247*/            OPC_MoveParent,
/*437248*/            OPC_RecordChild2, // #3 = $src0
/*437249*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->437264
/*437252*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437254*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMAXUBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*437264*/            /*SwitchType*/ 12, MVT::v16i16,// ->437278
/*437266*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437268*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPMAXUWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*437278*/            /*SwitchType*/ 12, MVT::v16i32,// ->437292
/*437280*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437282*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPMAXUDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*437292*/            0, // EndSwitchType
/*437293*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SMIN),// ->437344
/*437296*/            OPC_RecordChild0, // #1 = $src1
/*437297*/            OPC_RecordChild1, // #2 = $src2
/*437298*/            OPC_MoveParent,
/*437299*/            OPC_RecordChild2, // #3 = $src0
/*437300*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->437315
/*437303*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437305*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMINSBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*437315*/            /*SwitchType*/ 12, MVT::v16i16,// ->437329
/*437317*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437319*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPMINSWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*437329*/            /*SwitchType*/ 12, MVT::v16i32,// ->437343
/*437331*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437333*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (smin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPMINSDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*437343*/            0, // EndSwitchType
/*437344*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::UMIN),// ->437395
/*437347*/            OPC_RecordChild0, // #1 = $src1
/*437348*/            OPC_RecordChild1, // #2 = $src2
/*437349*/            OPC_MoveParent,
/*437350*/            OPC_RecordChild2, // #3 = $src0
/*437351*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->437366
/*437354*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437356*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMINUBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*437366*/            /*SwitchType*/ 12, MVT::v16i16,// ->437380
/*437368*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437370*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPMINUWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*437380*/            /*SwitchType*/ 12, MVT::v16i32,// ->437394
/*437382*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437384*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (umin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPMINUDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*437394*/            0, // EndSwitchType
/*437395*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSHL),// ->437440
/*437398*/            OPC_RecordChild0, // #1 = $src1
/*437399*/            OPC_RecordChild1, // #2 = $src2
/*437400*/            OPC_Scope, 18, /*->437420*/ // 2 children in Scope
/*437402*/              OPC_CheckChild1Type, MVT::v4i32,
/*437404*/              OPC_MoveParent,
/*437405*/              OPC_RecordChild2, // #3 = $src0
/*437406*/              OPC_CheckType, MVT::v16i32,
/*437408*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437410*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPSLLDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*437420*/            /*Scope*/ 18, /*->437439*/
/*437421*/              OPC_CheckChild1Type, MVT::v8i16,
/*437423*/              OPC_MoveParent,
/*437424*/              OPC_RecordChild2, // #3 = $src0
/*437425*/              OPC_CheckType, MVT::v16i16,
/*437427*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437429*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPSLLWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*437439*/            0, /*End of Scope*/
/*437440*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSRA),// ->437485
/*437443*/            OPC_RecordChild0, // #1 = $src1
/*437444*/            OPC_RecordChild1, // #2 = $src2
/*437445*/            OPC_Scope, 18, /*->437465*/ // 2 children in Scope
/*437447*/              OPC_CheckChild1Type, MVT::v4i32,
/*437449*/              OPC_MoveParent,
/*437450*/              OPC_RecordChild2, // #3 = $src0
/*437451*/              OPC_CheckType, MVT::v16i32,
/*437453*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437455*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRADZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*437465*/            /*Scope*/ 18, /*->437484*/
/*437466*/              OPC_CheckChild1Type, MVT::v8i16,
/*437468*/              OPC_MoveParent,
/*437469*/              OPC_RecordChild2, // #3 = $src0
/*437470*/              OPC_CheckType, MVT::v16i16,
/*437472*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437474*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPSRAWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*437484*/            0, /*End of Scope*/
/*437485*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSRL),// ->437530
/*437488*/            OPC_RecordChild0, // #1 = $src1
/*437489*/            OPC_RecordChild1, // #2 = $src2
/*437490*/            OPC_Scope, 18, /*->437510*/ // 2 children in Scope
/*437492*/              OPC_CheckChild1Type, MVT::v4i32,
/*437494*/              OPC_MoveParent,
/*437495*/              OPC_RecordChild2, // #3 = $src0
/*437496*/              OPC_CheckType, MVT::v16i32,
/*437498*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437500*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRLDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*437510*/            /*Scope*/ 18, /*->437529*/
/*437511*/              OPC_CheckChild1Type, MVT::v8i16,
/*437513*/              OPC_MoveParent,
/*437514*/              OPC_RecordChild2, // #3 = $src0
/*437515*/              OPC_CheckType, MVT::v16i16,
/*437517*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437519*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPSRLWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*437529*/            0, /*End of Scope*/
/*437530*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::SHL),// ->437575
/*437533*/            OPC_RecordChild0, // #1 = $src1
/*437534*/            OPC_RecordChild1, // #2 = $src2
/*437535*/            OPC_Scope, 18, /*->437555*/ // 2 children in Scope
/*437537*/              OPC_CheckChild1Type, MVT::v16i32,
/*437539*/              OPC_MoveParent,
/*437540*/              OPC_RecordChild2, // #3 = $src0
/*437541*/              OPC_CheckType, MVT::v16i32,
/*437543*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (shl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPSLLVDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*437555*/            /*Scope*/ 18, /*->437574*/
/*437556*/              OPC_CheckChild1Type, MVT::v16i16,
/*437558*/              OPC_MoveParent,
/*437559*/              OPC_RecordChild2, // #3 = $src0
/*437560*/              OPC_CheckType, MVT::v16i16,
/*437562*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437564*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (shl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPSLLVWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*437574*/            0, /*End of Scope*/
/*437575*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::SRA),// ->437620
/*437578*/            OPC_RecordChild0, // #1 = $src1
/*437579*/            OPC_RecordChild1, // #2 = $src2
/*437580*/            OPC_Scope, 18, /*->437600*/ // 2 children in Scope
/*437582*/              OPC_CheckChild1Type, MVT::v16i32,
/*437584*/              OPC_MoveParent,
/*437585*/              OPC_RecordChild2, // #3 = $src0
/*437586*/              OPC_CheckType, MVT::v16i32,
/*437588*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437590*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*437600*/            /*Scope*/ 18, /*->437619*/
/*437601*/              OPC_CheckChild1Type, MVT::v16i16,
/*437603*/              OPC_MoveParent,
/*437604*/              OPC_RecordChild2, // #3 = $src0
/*437605*/              OPC_CheckType, MVT::v16i16,
/*437607*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437609*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (sra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*437619*/            0, /*End of Scope*/
/*437620*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::SRL),// ->437665
/*437623*/            OPC_RecordChild0, // #1 = $src1
/*437624*/            OPC_RecordChild1, // #2 = $src2
/*437625*/            OPC_Scope, 18, /*->437645*/ // 2 children in Scope
/*437627*/              OPC_CheckChild1Type, MVT::v16i32,
/*437629*/              OPC_MoveParent,
/*437630*/              OPC_RecordChild2, // #3 = $src0
/*437631*/              OPC_CheckType, MVT::v16i32,
/*437633*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437635*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (srl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRLVDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*437645*/            /*Scope*/ 18, /*->437664*/
/*437646*/              OPC_CheckChild1Type, MVT::v16i16,
/*437648*/              OPC_MoveParent,
/*437649*/              OPC_RecordChild2, // #3 = $src0
/*437650*/              OPC_CheckType, MVT::v16i16,
/*437652*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437654*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (srl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPSRLVWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*437664*/            0, /*End of Scope*/
/*437665*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::ROTR),// ->437688
/*437668*/            OPC_RecordChild0, // #1 = $src1
/*437669*/            OPC_RecordChild1, // #2 = $src2
/*437670*/            OPC_CheckChild1Type, MVT::v16i32,
/*437672*/            OPC_MoveParent,
/*437673*/            OPC_RecordChild2, // #3 = $src0
/*437674*/            OPC_CheckType, MVT::v16i32,
/*437676*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437678*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORVDZrrk), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VPRORVDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*437688*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::ROTL),// ->437711
/*437691*/            OPC_RecordChild0, // #1 = $src1
/*437692*/            OPC_RecordChild1, // #2 = $src2
/*437693*/            OPC_CheckChild1Type, MVT::v16i32,
/*437695*/            OPC_MoveParent,
/*437696*/            OPC_RecordChild2, // #3 = $src0
/*437697*/            OPC_CheckType, MVT::v16i32,
/*437699*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437701*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLVDZrrk), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (rotl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VPROLVDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*437711*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VSRAV),// ->437748
/*437714*/            OPC_RecordChild0, // #1 = $src1
/*437715*/            OPC_RecordChild1, // #2 = $src2
/*437716*/            OPC_MoveParent,
/*437717*/            OPC_RecordChild2, // #3 = $src0
/*437718*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->437733
/*437721*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437723*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrav:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*437733*/            /*SwitchType*/ 12, MVT::v16i32,// ->437747
/*437735*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437737*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrav:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPSRAVDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*437747*/            0, // EndSwitchType
/*437748*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VPERMV),// ->437799
/*437751*/            OPC_RecordChild0, // #1 = $src1
/*437752*/            OPC_RecordChild1, // #2 = $src2
/*437753*/            OPC_MoveParent,
/*437754*/            OPC_RecordChild2, // #3 = $src0
/*437755*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i16,// ->437770
/*437758*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437760*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPERMWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*437770*/            /*SwitchType*/ 12, MVT::v16i8,// ->437784
/*437772*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*437774*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPERMBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*437784*/            /*SwitchType*/ 12, MVT::v16i32,// ->437798
/*437786*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437788*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPERMDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*437798*/            0, // EndSwitchType
/*437799*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PSHUFB),// ->437820
/*437802*/            OPC_RecordChild0, // #1 = $src1
/*437803*/            OPC_RecordChild1, // #2 = $src2
/*437804*/            OPC_MoveParent,
/*437805*/            OPC_RecordChild2, // #3 = $src0
/*437806*/            OPC_CheckType, MVT::v16i8,
/*437808*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437810*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ128rrk), 0,
                          MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86pshufb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                      // Dst: (VPSHUFBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*437820*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTTP2SI),// ->437841
/*437823*/            OPC_RecordChild0, // #1 = $src
/*437824*/            OPC_CheckChild0Type, MVT::v16f32,
/*437826*/            OPC_MoveParent,
/*437827*/            OPC_RecordChild2, // #2 = $src0
/*437828*/            OPC_CheckType, MVT::v16i32,
/*437830*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437832*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrrk), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2si:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VCVTTPS2DQZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*437841*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTTP2UI),// ->437862
/*437844*/            OPC_RecordChild0, // #1 = $src
/*437845*/            OPC_CheckChild0Type, MVT::v16f32,
/*437847*/            OPC_MoveParent,
/*437848*/            OPC_RecordChild2, // #2 = $src0
/*437849*/            OPC_CheckType, MVT::v16i32,
/*437851*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437853*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrrk), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2ui:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VCVTTPS2UDQZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*437862*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTP2SI),// ->437883
/*437865*/            OPC_RecordChild0, // #1 = $src
/*437866*/            OPC_CheckChild0Type, MVT::v16f32,
/*437868*/            OPC_MoveParent,
/*437869*/            OPC_RecordChild2, // #2 = $src0
/*437870*/            OPC_CheckType, MVT::v16i32,
/*437872*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437874*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrrk), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2Int:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPS2DQZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*437883*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTP2UI),// ->437904
/*437886*/            OPC_RecordChild0, // #1 = $src
/*437887*/            OPC_CheckChild0Type, MVT::v16f32,
/*437889*/            OPC_MoveParent,
/*437890*/            OPC_RecordChild2, // #2 = $src0
/*437891*/            OPC_CheckType, MVT::v16i32,
/*437893*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437895*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrrk), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2UInt:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPS2UDQZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*437904*/          /*SwitchOpcode*/ 111, TARGET_VAL(X86ISD::VTRUNC),// ->438018
/*437907*/            OPC_RecordChild0, // #1 = $src1
/*437908*/            OPC_Scope, 17, /*->437927*/ // 6 children in Scope
/*437910*/              OPC_CheckChild0Type, MVT::v2i64,
/*437912*/              OPC_MoveParent,
/*437913*/              OPC_RecordChild2, // #2 = $src0
/*437914*/              OPC_CheckType, MVT::v16i8,
/*437916*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*437918*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVQBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*437927*/            /*Scope*/ 17, /*->437945*/
/*437928*/              OPC_CheckChild0Type, MVT::v4i64,
/*437930*/              OPC_MoveParent,
/*437931*/              OPC_RecordChild2, // #2 = $src0
/*437932*/              OPC_CheckType, MVT::v16i8,
/*437934*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*437936*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVQBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*437945*/            /*Scope*/ 17, /*->437963*/
/*437946*/              OPC_CheckChild0Type, MVT::v8i64,
/*437948*/              OPC_MoveParent,
/*437949*/              OPC_RecordChild2, // #2 = $src0
/*437950*/              OPC_CheckType, MVT::v16i8,
/*437952*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437954*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZrrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVQBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*437963*/            /*Scope*/ 17, /*->437981*/
/*437964*/              OPC_CheckChild0Type, MVT::v4i32,
/*437966*/              OPC_MoveParent,
/*437967*/              OPC_RecordChild2, // #2 = $src0
/*437968*/              OPC_CheckType, MVT::v16i8,
/*437970*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*437972*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVDBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*437981*/            /*Scope*/ 17, /*->437999*/
/*437982*/              OPC_CheckChild0Type, MVT::v8i32,
/*437984*/              OPC_MoveParent,
/*437985*/              OPC_RecordChild2, // #2 = $src0
/*437986*/              OPC_CheckType, MVT::v16i8,
/*437988*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*437990*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVDBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*437999*/            /*Scope*/ 17, /*->438017*/
/*438000*/              OPC_CheckChild0Type, MVT::v8i16,
/*438002*/              OPC_MoveParent,
/*438003*/              OPC_RecordChild2, // #2 = $src0
/*438004*/              OPC_CheckType, MVT::v16i8,
/*438006*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438008*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVWBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*438017*/            0, /*End of Scope*/
/*438018*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::VTRUNCS),// ->438184
/*438022*/            OPC_RecordChild0, // #1 = $src1
/*438023*/            OPC_Scope, 17, /*->438042*/ // 8 children in Scope
/*438025*/              OPC_CheckChild0Type, MVT::v2i64,
/*438027*/              OPC_MoveParent,
/*438028*/              OPC_RecordChild2, // #2 = $src0
/*438029*/              OPC_CheckType, MVT::v16i8,
/*438031*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438033*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSQBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*438042*/            /*Scope*/ 17, /*->438060*/
/*438043*/              OPC_CheckChild0Type, MVT::v4i64,
/*438045*/              OPC_MoveParent,
/*438046*/              OPC_RecordChild2, // #2 = $src0
/*438047*/              OPC_CheckType, MVT::v16i8,
/*438049*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438051*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSQBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*438060*/            /*Scope*/ 17, /*->438078*/
/*438061*/              OPC_CheckChild0Type, MVT::v8i64,
/*438063*/              OPC_MoveParent,
/*438064*/              OPC_RecordChild2, // #2 = $src0
/*438065*/              OPC_CheckType, MVT::v16i8,
/*438067*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438069*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZrrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSQBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*438078*/            /*Scope*/ 17, /*->438096*/
/*438079*/              OPC_CheckChild0Type, MVT::v4i32,
/*438081*/              OPC_MoveParent,
/*438082*/              OPC_RecordChild2, // #2 = $src0
/*438083*/              OPC_CheckType, MVT::v16i8,
/*438085*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438087*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSDBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*438096*/            /*Scope*/ 17, /*->438114*/
/*438097*/              OPC_CheckChild0Type, MVT::v8i32,
/*438099*/              OPC_MoveParent,
/*438100*/              OPC_RecordChild2, // #2 = $src0
/*438101*/              OPC_CheckType, MVT::v16i8,
/*438103*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438105*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSDBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*438114*/            /*Scope*/ 32, /*->438147*/
/*438115*/              OPC_CheckChild0Type, MVT::v16i32,
/*438117*/              OPC_MoveParent,
/*438118*/              OPC_RecordChild2, // #2 = $src0
/*438119*/              OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->438133
/*438122*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438124*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZrrk), 0,
                              MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSDBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438133*/              /*SwitchType*/ 11, MVT::v16i16,// ->438146
/*438135*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438137*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZrrk), 0,
                              MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSDWZrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438146*/              0, // EndSwitchType
/*438147*/            /*Scope*/ 17, /*->438165*/
/*438148*/              OPC_CheckChild0Type, MVT::v8i16,
/*438150*/              OPC_MoveParent,
/*438151*/              OPC_RecordChild2, // #2 = $src0
/*438152*/              OPC_CheckType, MVT::v16i8,
/*438154*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438156*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSWBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*438165*/            /*Scope*/ 17, /*->438183*/
/*438166*/              OPC_CheckChild0Type, MVT::v16i16,
/*438168*/              OPC_MoveParent,
/*438169*/              OPC_RecordChild2, // #2 = $src0
/*438170*/              OPC_CheckType, MVT::v16i8,
/*438172*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438174*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSWBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*438183*/            0, /*End of Scope*/
/*438184*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::VTRUNCUS),// ->438350
/*438188*/            OPC_RecordChild0, // #1 = $src1
/*438189*/            OPC_Scope, 17, /*->438208*/ // 8 children in Scope
/*438191*/              OPC_CheckChild0Type, MVT::v2i64,
/*438193*/              OPC_MoveParent,
/*438194*/              OPC_RecordChild2, // #2 = $src0
/*438195*/              OPC_CheckType, MVT::v16i8,
/*438197*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438199*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSQBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*438208*/            /*Scope*/ 17, /*->438226*/
/*438209*/              OPC_CheckChild0Type, MVT::v4i64,
/*438211*/              OPC_MoveParent,
/*438212*/              OPC_RecordChild2, // #2 = $src0
/*438213*/              OPC_CheckType, MVT::v16i8,
/*438215*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438217*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSQBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*438226*/            /*Scope*/ 17, /*->438244*/
/*438227*/              OPC_CheckChild0Type, MVT::v8i64,
/*438229*/              OPC_MoveParent,
/*438230*/              OPC_RecordChild2, // #2 = $src0
/*438231*/              OPC_CheckType, MVT::v16i8,
/*438233*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438235*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZrrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSQBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*438244*/            /*Scope*/ 17, /*->438262*/
/*438245*/              OPC_CheckChild0Type, MVT::v4i32,
/*438247*/              OPC_MoveParent,
/*438248*/              OPC_RecordChild2, // #2 = $src0
/*438249*/              OPC_CheckType, MVT::v16i8,
/*438251*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438253*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSDBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*438262*/            /*Scope*/ 17, /*->438280*/
/*438263*/              OPC_CheckChild0Type, MVT::v8i32,
/*438265*/              OPC_MoveParent,
/*438266*/              OPC_RecordChild2, // #2 = $src0
/*438267*/              OPC_CheckType, MVT::v16i8,
/*438269*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438271*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSDBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*438280*/            /*Scope*/ 32, /*->438313*/
/*438281*/              OPC_CheckChild0Type, MVT::v16i32,
/*438283*/              OPC_MoveParent,
/*438284*/              OPC_RecordChild2, // #2 = $src0
/*438285*/              OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->438299
/*438288*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438290*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZrrk), 0,
                              MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                          // Dst: (VPMOVUSDBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438299*/              /*SwitchType*/ 11, MVT::v16i16,// ->438312
/*438301*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438303*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZrrk), 0,
                              MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVUSDWZrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438312*/              0, // EndSwitchType
/*438313*/            /*Scope*/ 17, /*->438331*/
/*438314*/              OPC_CheckChild0Type, MVT::v8i16,
/*438316*/              OPC_MoveParent,
/*438317*/              OPC_RecordChild2, // #2 = $src0
/*438318*/              OPC_CheckType, MVT::v16i8,
/*438320*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438322*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSWBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*438331*/            /*Scope*/ 17, /*->438349*/
/*438332*/              OPC_CheckChild0Type, MVT::v16i16,
/*438334*/              OPC_MoveParent,
/*438335*/              OPC_RecordChild2, // #2 = $src0
/*438336*/              OPC_CheckType, MVT::v16i8,
/*438338*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438340*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSWBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*438349*/            0, /*End of Scope*/
/*438350*/          /*SwitchOpcode*/ 55, TARGET_VAL(ISD::TRUNCATE),// ->438408
/*438353*/            OPC_RecordChild0, // #1 = $src1
/*438354*/            OPC_Scope, 17, /*->438373*/ // 3 children in Scope
/*438356*/              OPC_CheckChild0Type, MVT::v16i32,
/*438358*/              OPC_MoveParent,
/*438359*/              OPC_RecordChild2, // #2 = $src0
/*438360*/              OPC_CheckType, MVT::v16i8,
/*438362*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438364*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVDBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438373*/            /*Scope*/ 15, /*->438389*/
/*438374*/              OPC_MoveParent,
/*438375*/              OPC_RecordChild2, // #2 = $src0
/*438376*/              OPC_CheckType, MVT::v16i16,
/*438378*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438380*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZrrk), 0,
                            MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVDWZrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438389*/            /*Scope*/ 17, /*->438407*/
/*438390*/              OPC_CheckChild0Type, MVT::v16i16,
/*438392*/              OPC_MoveParent,
/*438393*/              OPC_RecordChild2, // #2 = $src0
/*438394*/              OPC_CheckType, MVT::v16i8,
/*438396*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438398*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVWBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*438407*/            0, /*End of Scope*/
/*438408*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VZEXT),// ->438465
/*438411*/            OPC_RecordChild0, // #1 = $src
/*438412*/            OPC_Scope, 32, /*->438446*/ // 2 children in Scope
/*438414*/              OPC_CheckChild0Type, MVT::v16i8,
/*438416*/              OPC_MoveParent,
/*438417*/              OPC_RecordChild2, // #2 = $src0
/*438418*/              OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->438432
/*438421*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438423*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rrk), 0,
                              MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vzext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXBWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*438432*/              /*SwitchType*/ 11, MVT::v16i32,// ->438445
/*438434*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438436*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZrrk), 0,
                              MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vzext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXBDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*438445*/              0, // EndSwitchType
/*438446*/            /*Scope*/ 17, /*->438464*/
/*438447*/              OPC_CheckChild0Type, MVT::v16i16,
/*438449*/              OPC_MoveParent,
/*438450*/              OPC_RecordChild2, // #2 = $src0
/*438451*/              OPC_CheckType, MVT::v16i32,
/*438453*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438455*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vzext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXWDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*438464*/            0, /*End of Scope*/
/*438465*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VSEXT),// ->438522
/*438468*/            OPC_RecordChild0, // #1 = $src
/*438469*/            OPC_Scope, 32, /*->438503*/ // 2 children in Scope
/*438471*/              OPC_CheckChild0Type, MVT::v16i8,
/*438473*/              OPC_MoveParent,
/*438474*/              OPC_RecordChild2, // #2 = $src0
/*438475*/              OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->438489
/*438478*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438480*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rrk), 0,
                              MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXBWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*438489*/              /*SwitchType*/ 11, MVT::v16i32,// ->438502
/*438491*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438493*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZrrk), 0,
                              MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXBDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*438502*/              0, // EndSwitchType
/*438503*/            /*Scope*/ 17, /*->438521*/
/*438504*/              OPC_CheckChild0Type, MVT::v16i16,
/*438506*/              OPC_MoveParent,
/*438507*/              OPC_RecordChild2, // #2 = $src0
/*438508*/              OPC_CheckType, MVT::v16i32,
/*438510*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438512*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXWDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*438521*/            0, /*End of Scope*/
/*438522*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::COMPRESS),// ->438569
/*438525*/            OPC_RecordChild0, // #1 = $src1
/*438526*/            OPC_MoveParent,
/*438527*/            OPC_RecordChild2, // #2 = $src0
/*438528*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->438542
/*438531*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438533*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86compress:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPCOMPRESSDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438542*/            /*SwitchType*/ 11, MVT::v16i8,// ->438555
/*438544*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438546*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86compress:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPCOMPRESSBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1)
/*438555*/            /*SwitchType*/ 11, MVT::v16i16,// ->438568
/*438557*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438559*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZ256rrk), 0,
                            MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86compress:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPCOMPRESSWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*438568*/            0, // EndSwitchType
/*438569*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::EXPAND),// ->438616
/*438572*/            OPC_RecordChild0, // #1 = $src1
/*438573*/            OPC_MoveParent,
/*438574*/            OPC_RecordChild2, // #2 = $src0
/*438575*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->438589
/*438578*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438580*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPEXPANDDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438589*/            /*SwitchType*/ 11, MVT::v16i8,// ->438602
/*438591*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438593*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPEXPANDBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1)
/*438602*/            /*SwitchType*/ 11, MVT::v16i16,// ->438615
/*438604*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438606*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rrk), 0,
                            MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPEXPANDWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*438615*/            0, // EndSwitchType
/*438616*/          /*SwitchOpcode*/ 44, TARGET_VAL(ISD::ABS),// ->438663
/*438619*/            OPC_RecordChild0, // #1 = $src1
/*438620*/            OPC_MoveParent,
/*438621*/            OPC_RecordChild2, // #2 = $src0
/*438622*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->438636
/*438625*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438627*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPABSDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438636*/            /*SwitchType*/ 11, MVT::v16i16,// ->438649
/*438638*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438640*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ256rrk), 0,
                            MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPABSWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*438649*/            /*SwitchType*/ 11, MVT::v16i8,// ->438662
/*438651*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438653*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPABSBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1)
/*438662*/            0, // EndSwitchType
/*438663*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::CTLZ),// ->438682
/*438666*/            OPC_RecordChild0, // #1 = $src1
/*438667*/            OPC_MoveParent,
/*438668*/            OPC_RecordChild2, // #2 = $src0
/*438669*/            OPC_CheckType, MVT::v16i32,
/*438671*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*438673*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrrk), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctlz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VPLZCNTDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438682*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::CONFLICT),// ->438701
/*438685*/            OPC_RecordChild0, // #1 = $src1
/*438686*/            OPC_MoveParent,
/*438687*/            OPC_RecordChild2, // #2 = $src0
/*438688*/            OPC_CheckType, MVT::v16i32,
/*438690*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*438692*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrrk), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Conflict:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VPCONFLICTDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438701*/          /*SwitchOpcode*/ 44, TARGET_VAL(ISD::CTPOP),// ->438748
/*438704*/            OPC_RecordChild0, // #1 = $src1
/*438705*/            OPC_MoveParent,
/*438706*/            OPC_RecordChild2, // #2 = $src0
/*438707*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->438721
/*438710*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*438712*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPOPCNTDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*438721*/            /*SwitchType*/ 11, MVT::v16i8,// ->438734
/*438723*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*438725*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPOPCNTBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1)
/*438734*/            /*SwitchType*/ 11, MVT::v16i16,// ->438747
/*438736*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*438738*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ256rrk), 0,
                            MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPOPCNTWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*438747*/            0, // EndSwitchType
/*438748*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::UNPCKL),// ->438799
/*438751*/            OPC_RecordChild0, // #1 = $src1
/*438752*/            OPC_RecordChild1, // #2 = $src2
/*438753*/            OPC_MoveParent,
/*438754*/            OPC_RecordChild2, // #3 = $src0
/*438755*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->438770
/*438758*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438760*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKLBWZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*438770*/            /*SwitchType*/ 12, MVT::v16i16,// ->438784
/*438772*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438774*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKLWDZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*438784*/            /*SwitchType*/ 12, MVT::v16i32,// ->438798
/*438786*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438788*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKLDQZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*438798*/            0, // EndSwitchType
/*438799*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::UNPCKH),// ->438850
/*438802*/            OPC_RecordChild0, // #1 = $src1
/*438803*/            OPC_RecordChild1, // #2 = $src2
/*438804*/            OPC_MoveParent,
/*438805*/            OPC_RecordChild2, // #3 = $src0
/*438806*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->438821
/*438809*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438811*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKHBWZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*438821*/            /*SwitchType*/ 12, MVT::v16i16,// ->438835
/*438823*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438825*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKHWDZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*438835*/            /*SwitchType*/ 12, MVT::v16i32,// ->438849
/*438837*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438839*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKHDQZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*438849*/            0, // EndSwitchType
/*438850*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VSHLDV),// ->438889
/*438853*/            OPC_RecordChild0, // #1 = $src1
/*438854*/            OPC_RecordChild1, // #2 = $src2
/*438855*/            OPC_RecordChild2, // #3 = $src3
/*438856*/            OPC_MoveParent,
/*438857*/            OPC_CheckChild2Same, 1,
/*438859*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->438874
/*438862*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438864*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ256rk), 0,
                            MVT::v16i16, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShldv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3), VR256X:{ *:[v16i16] }:$src1) - Complexity = 6
                        // Dst: (VPSHLDVWZ256rk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*438874*/            /*SwitchType*/ 12, MVT::v16i32,// ->438888
/*438876*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*438878*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShldv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), VR512:{ *:[v16i32] }:$src1) - Complexity = 6
                        // Dst: (VPSHLDVDZrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*438888*/            0, // EndSwitchType
/*438889*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VSHRDV),// ->438928
/*438892*/            OPC_RecordChild0, // #1 = $src1
/*438893*/            OPC_RecordChild1, // #2 = $src2
/*438894*/            OPC_RecordChild2, // #3 = $src3
/*438895*/            OPC_MoveParent,
/*438896*/            OPC_CheckChild2Same, 1,
/*438898*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->438913
/*438901*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438903*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ256rk), 0,
                            MVT::v16i16, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrdv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3), VR256X:{ *:[v16i16] }:$src1) - Complexity = 6
                        // Dst: (VPSHRDVWZ256rk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*438913*/            /*SwitchType*/ 12, MVT::v16i32,// ->438927
/*438915*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*438917*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrdv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), VR512:{ *:[v16i32] }:$src1) - Complexity = 6
                        // Dst: (VPSHRDVDZrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*438927*/            0, // EndSwitchType
/*438928*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSD),// ->438951
/*438931*/            OPC_RecordChild0, // #1 = $src1
/*438932*/            OPC_RecordChild1, // #2 = $src2
/*438933*/            OPC_RecordChild2, // #3 = $src3
/*438934*/            OPC_MoveParent,
/*438935*/            OPC_CheckChild2Same, 1,
/*438937*/            OPC_CheckType, MVT::v16i32,
/*438939*/            OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*438941*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZrk), 0,
                          MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), VR512:{ *:[v16i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPBUSDZrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*438951*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSDS),// ->438974
/*438954*/            OPC_RecordChild0, // #1 = $src1
/*438955*/            OPC_RecordChild1, // #2 = $src2
/*438956*/            OPC_RecordChild2, // #3 = $src3
/*438957*/            OPC_MoveParent,
/*438958*/            OPC_CheckChild2Same, 1,
/*438960*/            OPC_CheckType, MVT::v16i32,
/*438962*/            OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*438964*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZrk), 0,
                          MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpbusds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), VR512:{ *:[v16i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPBUSDSZrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*438974*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSD),// ->438997
/*438977*/            OPC_RecordChild0, // #1 = $src1
/*438978*/            OPC_RecordChild1, // #2 = $src2
/*438979*/            OPC_RecordChild2, // #3 = $src3
/*438980*/            OPC_MoveParent,
/*438981*/            OPC_CheckChild2Same, 1,
/*438983*/            OPC_CheckType, MVT::v16i32,
/*438985*/            OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*438987*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZrk), 0,
                          MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), VR512:{ *:[v16i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPWSSDZrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*438997*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSDS),// ->439020
/*439000*/            OPC_RecordChild0, // #1 = $src1
/*439001*/            OPC_RecordChild1, // #2 = $src2
/*439002*/            OPC_RecordChild2, // #3 = $src3
/*439003*/            OPC_MoveParent,
/*439004*/            OPC_CheckChild2Same, 1,
/*439006*/            OPC_CheckType, MVT::v16i32,
/*439008*/            OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*439010*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZrk), 0,
                          MVT::v16i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Vpdpwssds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), VR512:{ *:[v16i32] }:$src1) - Complexity = 6
                      // Dst: (VPDPWSSDSZrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*439020*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::GF2P8MULB),// ->439041
/*439023*/            OPC_RecordChild0, // #1 = $src1
/*439024*/            OPC_RecordChild1, // #2 = $src2
/*439025*/            OPC_MoveParent,
/*439026*/            OPC_RecordChild2, // #3 = $src0
/*439027*/            OPC_CheckType, MVT::v16i8,
/*439029*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*439031*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ128rrk), 0,
                          MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8mulb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                      // Dst: (VGF2P8MULBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*439041*/          0, // EndSwitchOpcode
/*439042*/        /*Scope*/ 61|128,1/*189*/, /*->439233*/
/*439044*/          OPC_RecordChild1, // #1 = $src1
/*439045*/          OPC_RecordChild2, // #2 = $src0
/*439046*/          OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->439060
/*439049*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439051*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrrk), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src0) - Complexity = 3
                      // Dst: (VMOVDQA32Zrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*439060*/          /*SwitchType*/ 84, MVT::v16i8,// ->439146
/*439062*/            OPC_Scope, 11, /*->439075*/ // 2 children in Scope
/*439064*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*439066*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z128rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src0) - Complexity = 3
                        // Dst: (VMOVDQU8Z128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1)
/*439075*/            /*Scope*/ 69, /*->439145*/
/*439076*/              OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*439078*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*439084*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*439087*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*439096*/              OPC_EmitInteger, MVT::i32, X86::VK64WMRegClassID,
/*439099*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*439107*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #8
/*439113*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*439116*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*439125*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU8Zrrk), 0,
                            MVT::v64i8, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*439134*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*439137*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v16i8, 2/*#Ops*/, 11, 12, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src0) - Complexity = 3
                        // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } (VMOVDQU8Zrrk:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src0, sub_xmm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v64i1] } VK16WM:{ *:[v16i1] }:$mask, VK64WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*439145*/            0, /*End of Scope*/
/*439146*/          /*SwitchType*/ 84, MVT::v16i16,// ->439232
/*439148*/            OPC_Scope, 11, /*->439161*/ // 2 children in Scope
/*439150*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*439152*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z256rrk), 0,
                            MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src0) - Complexity = 3
                        // Dst: (VMOVDQU16Z256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*439161*/            /*Scope*/ 69, /*->439231*/
/*439162*/              OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*439164*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*439170*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*439173*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*439182*/              OPC_EmitInteger, MVT::i32, X86::VK32WMRegClassID,
/*439185*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v32i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*439193*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #8
/*439199*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*439202*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*439211*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU16Zrrk), 0,
                            MVT::v32i16, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*439220*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*439223*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v16i16, 2/*#Ops*/, 11, 12, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src0) - Complexity = 3
                        // Dst: (EXTRACT_SUBREG:{ *:[v16i16] } (VMOVDQU16Zrrk:{ *:[v32i16] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src0, sub_ymm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v32i1] } VK16WM:{ *:[v16i1] }:$mask, VK32WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*439231*/            0, /*End of Scope*/
/*439232*/          0, // EndSwitchType
/*439233*/        /*Scope*/ 122|128,15/*2042*/, /*->441277*/
/*439235*/          OPC_MoveChild1,
/*439236*/          OPC_SwitchOpcode /*13 cases */, 83|128,1/*211*/, TARGET_VAL(X86ISD::VFIXUPIMM),// ->439452
/*439241*/            OPC_RecordChild0, // #1 = $src1
/*439242*/            OPC_RecordChild1, // #2 = $src2
/*439243*/            OPC_MoveChild2,
/*439244*/            OPC_SwitchOpcode /*2 cases */, 101, TARGET_VAL(ISD::BITCAST),// ->439349
/*439248*/              OPC_MoveChild0,
/*439249*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*439252*/              OPC_RecordMemRef,
/*439253*/              OPC_RecordNode, // #3 = 'ld' chained node
/*439254*/              OPC_CheckFoldableChainNode,
/*439255*/              OPC_RecordChild1, // #4 = $src3
/*439256*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*439258*/              OPC_CheckPredicate, 9, // Predicate_load
/*439260*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*439262*/              OPC_CheckType, MVT::v8i64,
/*439264*/              OPC_MoveParent,
/*439265*/              OPC_MoveParent,
/*439266*/              OPC_RecordChild3, // #5 = $src4
/*439267*/              OPC_MoveChild3,
/*439268*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*439271*/              OPC_MoveParent,
/*439272*/              OPC_CheckChild4Integer, 4, 
/*439274*/              OPC_MoveParent,
/*439275*/              OPC_Scope, 41, /*->439318*/ // 2 children in Scope
/*439277*/                OPC_MoveChild2,
/*439278*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439281*/                OPC_MoveChild0,
/*439282*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*439285*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*439287*/                OPC_CheckType, MVT::v16i32,
/*439289*/                OPC_MoveParent,
/*439290*/                OPC_MoveParent,
/*439291*/                OPC_CheckType, MVT::v16f32,
/*439293*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439295*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*439298*/                OPC_EmitMergeInputChains, 1, 3, 
/*439301*/                OPC_EmitConvertToTarget, 5,
/*439303*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 46
                          // Dst: (VFIXUPIMMPSZrmikz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*439318*/              /*Scope*/ 29, /*->439348*/
/*439319*/                OPC_CheckChild2Same, 1,
/*439321*/                OPC_CheckType, MVT::v16f32,
/*439323*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439325*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*439328*/                OPC_EmitMergeInputChains, 1, 3, 
/*439331*/                OPC_EmitConvertToTarget, 5,
/*439333*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src1) - Complexity = 39
                          // Dst: (VFIXUPIMMPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*439348*/              0, /*End of Scope*/
/*439349*/            /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VBROADCAST),// ->439451
/*439352*/              OPC_MoveChild0,
/*439353*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*439356*/              OPC_RecordMemRef,
/*439357*/              OPC_RecordNode, // #3 = 'ld' chained node
/*439358*/              OPC_CheckFoldableChainNode,
/*439359*/              OPC_RecordChild1, // #4 = $src3
/*439360*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*439362*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*439364*/              OPC_CheckType, MVT::i32,
/*439366*/              OPC_MoveParent,
/*439367*/              OPC_MoveParent,
/*439368*/              OPC_RecordChild3, // #5 = $src4
/*439369*/              OPC_MoveChild3,
/*439370*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*439373*/              OPC_MoveParent,
/*439374*/              OPC_CheckChild4Integer, 4, 
/*439376*/              OPC_MoveParent,
/*439377*/              OPC_Scope, 41, /*->439420*/ // 2 children in Scope
/*439379*/                OPC_MoveChild2,
/*439380*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439383*/                OPC_MoveChild0,
/*439384*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*439387*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*439389*/                OPC_CheckType, MVT::v16i32,
/*439391*/                OPC_MoveParent,
/*439392*/                OPC_MoveParent,
/*439393*/                OPC_CheckType, MVT::v16f32,
/*439395*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439397*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*439400*/                OPC_EmitMergeInputChains, 1, 3, 
/*439403*/                OPC_EmitConvertToTarget, 5,
/*439405*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 46
                          // Dst: (VFIXUPIMMPSZrmbikz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*439420*/              /*Scope*/ 29, /*->439450*/
/*439421*/                OPC_CheckChild2Same, 1,
/*439423*/                OPC_CheckType, MVT::v16f32,
/*439425*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439427*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*439430*/                OPC_EmitMergeInputChains, 1, 3, 
/*439433*/                OPC_EmitConvertToTarget, 5,
/*439435*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src1) - Complexity = 39
                          // Dst: (VFIXUPIMMPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*439450*/              0, /*End of Scope*/
/*439451*/            0, // EndSwitchOpcode
/*439452*/          /*SwitchOpcode*/ 78|128,6/*846*/, TARGET_VAL(ISD::BITCAST),// ->440302
/*439456*/            OPC_Scope, 3|128,5/*643*/, /*->440102*/ // 3 children in Scope
/*439459*/              OPC_MoveChild0,
/*439460*/              OPC_SwitchOpcode /*5 cases */, 10|128,1/*138*/, TARGET_VAL(ISD::AND),// ->439603
/*439465*/                OPC_Scope, 67, /*->439534*/ // 2 children in Scope
/*439467*/                  OPC_RecordChild0, // #1 = $src1
/*439468*/                  OPC_MoveChild1,
/*439469*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439472*/                  OPC_MoveChild0,
/*439473*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*439476*/                  OPC_MoveChild0,
/*439477*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*439480*/                  OPC_RecordMemRef,
/*439481*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*439482*/                  OPC_CheckFoldableChainNode,
/*439483*/                  OPC_RecordChild1, // #3 = $src2
/*439484*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*439486*/                  OPC_CheckPredicate, 9, // Predicate_load
/*439488*/                  OPC_CheckType, MVT::f32,
/*439490*/                  OPC_MoveParent,
/*439491*/                  OPC_CheckType, MVT::v16f32,
/*439493*/                  OPC_MoveParent,
/*439494*/                  OPC_MoveParent,
/*439495*/                  OPC_CheckType, MVT::v8i64,
/*439497*/                  OPC_MoveParent,
/*439498*/                  OPC_MoveParent,
/*439499*/                  OPC_MoveChild2,
/*439500*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439503*/                  OPC_MoveChild0,
/*439504*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*439507*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*439509*/                  OPC_CheckType, MVT::v16i32,
/*439511*/                  OPC_MoveParent,
/*439512*/                  OPC_MoveParent,
/*439513*/                  OPC_CheckType, MVT::v16f32,
/*439515*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439517*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*439520*/                  OPC_EmitMergeInputChains1_2,
/*439521*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPANDDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*439534*/                /*Scope*/ 67, /*->439602*/
/*439535*/                  OPC_MoveChild0,
/*439536*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439539*/                  OPC_MoveChild0,
/*439540*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*439543*/                  OPC_MoveChild0,
/*439544*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*439547*/                  OPC_RecordMemRef,
/*439548*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*439549*/                  OPC_CheckFoldableChainNode,
/*439550*/                  OPC_RecordChild1, // #2 = $src2
/*439551*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*439553*/                  OPC_CheckPredicate, 9, // Predicate_load
/*439555*/                  OPC_CheckType, MVT::f32,
/*439557*/                  OPC_MoveParent,
/*439558*/                  OPC_CheckType, MVT::v16f32,
/*439560*/                  OPC_MoveParent,
/*439561*/                  OPC_MoveParent,
/*439562*/                  OPC_RecordChild1, // #3 = $src1
/*439563*/                  OPC_CheckType, MVT::v8i64,
/*439565*/                  OPC_MoveParent,
/*439566*/                  OPC_MoveParent,
/*439567*/                  OPC_MoveChild2,
/*439568*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439571*/                  OPC_MoveChild0,
/*439572*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*439575*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*439577*/                  OPC_CheckType, MVT::v16i32,
/*439579*/                  OPC_MoveParent,
/*439580*/                  OPC_MoveParent,
/*439581*/                  OPC_CheckType, MVT::v16f32,
/*439583*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439585*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*439588*/                  OPC_EmitMergeInputChains1_1,
/*439589*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPANDDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*439602*/                0, /*End of Scope*/
/*439603*/              /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::OR),// ->439745
/*439607*/                OPC_Scope, 67, /*->439676*/ // 2 children in Scope
/*439609*/                  OPC_RecordChild0, // #1 = $src1
/*439610*/                  OPC_MoveChild1,
/*439611*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439614*/                  OPC_MoveChild0,
/*439615*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*439618*/                  OPC_MoveChild0,
/*439619*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*439622*/                  OPC_RecordMemRef,
/*439623*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*439624*/                  OPC_CheckFoldableChainNode,
/*439625*/                  OPC_RecordChild1, // #3 = $src2
/*439626*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*439628*/                  OPC_CheckPredicate, 9, // Predicate_load
/*439630*/                  OPC_CheckType, MVT::f32,
/*439632*/                  OPC_MoveParent,
/*439633*/                  OPC_CheckType, MVT::v16f32,
/*439635*/                  OPC_MoveParent,
/*439636*/                  OPC_MoveParent,
/*439637*/                  OPC_CheckType, MVT::v8i64,
/*439639*/                  OPC_MoveParent,
/*439640*/                  OPC_MoveParent,
/*439641*/                  OPC_MoveChild2,
/*439642*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439645*/                  OPC_MoveChild0,
/*439646*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*439649*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*439651*/                  OPC_CheckType, MVT::v16i32,
/*439653*/                  OPC_MoveParent,
/*439654*/                  OPC_MoveParent,
/*439655*/                  OPC_CheckType, MVT::v16f32,
/*439657*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439659*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*439662*/                  OPC_EmitMergeInputChains1_2,
/*439663*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPORDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*439676*/                /*Scope*/ 67, /*->439744*/
/*439677*/                  OPC_MoveChild0,
/*439678*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439681*/                  OPC_MoveChild0,
/*439682*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*439685*/                  OPC_MoveChild0,
/*439686*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*439689*/                  OPC_RecordMemRef,
/*439690*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*439691*/                  OPC_CheckFoldableChainNode,
/*439692*/                  OPC_RecordChild1, // #2 = $src2
/*439693*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*439695*/                  OPC_CheckPredicate, 9, // Predicate_load
/*439697*/                  OPC_CheckType, MVT::f32,
/*439699*/                  OPC_MoveParent,
/*439700*/                  OPC_CheckType, MVT::v16f32,
/*439702*/                  OPC_MoveParent,
/*439703*/                  OPC_MoveParent,
/*439704*/                  OPC_RecordChild1, // #3 = $src1
/*439705*/                  OPC_CheckType, MVT::v8i64,
/*439707*/                  OPC_MoveParent,
/*439708*/                  OPC_MoveParent,
/*439709*/                  OPC_MoveChild2,
/*439710*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439713*/                  OPC_MoveChild0,
/*439714*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*439717*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*439719*/                  OPC_CheckType, MVT::v16i32,
/*439721*/                  OPC_MoveParent,
/*439722*/                  OPC_MoveParent,
/*439723*/                  OPC_CheckType, MVT::v16f32,
/*439725*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439727*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*439730*/                  OPC_EmitMergeInputChains1_1,
/*439731*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPORDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*439744*/                0, /*End of Scope*/
/*439745*/              /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::XOR),// ->439887
/*439749*/                OPC_Scope, 67, /*->439818*/ // 2 children in Scope
/*439751*/                  OPC_RecordChild0, // #1 = $src1
/*439752*/                  OPC_MoveChild1,
/*439753*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439756*/                  OPC_MoveChild0,
/*439757*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*439760*/                  OPC_MoveChild0,
/*439761*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*439764*/                  OPC_RecordMemRef,
/*439765*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*439766*/                  OPC_CheckFoldableChainNode,
/*439767*/                  OPC_RecordChild1, // #3 = $src2
/*439768*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*439770*/                  OPC_CheckPredicate, 9, // Predicate_load
/*439772*/                  OPC_CheckType, MVT::f32,
/*439774*/                  OPC_MoveParent,
/*439775*/                  OPC_CheckType, MVT::v16f32,
/*439777*/                  OPC_MoveParent,
/*439778*/                  OPC_MoveParent,
/*439779*/                  OPC_CheckType, MVT::v8i64,
/*439781*/                  OPC_MoveParent,
/*439782*/                  OPC_MoveParent,
/*439783*/                  OPC_MoveChild2,
/*439784*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439787*/                  OPC_MoveChild0,
/*439788*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*439791*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*439793*/                  OPC_CheckType, MVT::v16i32,
/*439795*/                  OPC_MoveParent,
/*439796*/                  OPC_MoveParent,
/*439797*/                  OPC_CheckType, MVT::v16f32,
/*439799*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439801*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*439804*/                  OPC_EmitMergeInputChains1_2,
/*439805*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPXORDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*439818*/                /*Scope*/ 67, /*->439886*/
/*439819*/                  OPC_MoveChild0,
/*439820*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439823*/                  OPC_MoveChild0,
/*439824*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*439827*/                  OPC_MoveChild0,
/*439828*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*439831*/                  OPC_RecordMemRef,
/*439832*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*439833*/                  OPC_CheckFoldableChainNode,
/*439834*/                  OPC_RecordChild1, // #2 = $src2
/*439835*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*439837*/                  OPC_CheckPredicate, 9, // Predicate_load
/*439839*/                  OPC_CheckType, MVT::f32,
/*439841*/                  OPC_MoveParent,
/*439842*/                  OPC_CheckType, MVT::v16f32,
/*439844*/                  OPC_MoveParent,
/*439845*/                  OPC_MoveParent,
/*439846*/                  OPC_RecordChild1, // #3 = $src1
/*439847*/                  OPC_CheckType, MVT::v8i64,
/*439849*/                  OPC_MoveParent,
/*439850*/                  OPC_MoveParent,
/*439851*/                  OPC_MoveChild2,
/*439852*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439855*/                  OPC_MoveChild0,
/*439856*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*439859*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*439861*/                  OPC_CheckType, MVT::v16i32,
/*439863*/                  OPC_MoveParent,
/*439864*/                  OPC_MoveParent,
/*439865*/                  OPC_CheckType, MVT::v16f32,
/*439867*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439869*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*439872*/                  OPC_EmitMergeInputChains1_1,
/*439873*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VPXORDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*439886*/                0, /*End of Scope*/
/*439887*/              /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::ANDNP),// ->439957
/*439890*/                OPC_RecordChild0, // #1 = $src1
/*439891*/                OPC_MoveChild1,
/*439892*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439895*/                OPC_MoveChild0,
/*439896*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*439899*/                OPC_MoveChild0,
/*439900*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*439903*/                OPC_RecordMemRef,
/*439904*/                OPC_RecordNode, // #2 = 'ld' chained node
/*439905*/                OPC_CheckFoldableChainNode,
/*439906*/                OPC_RecordChild1, // #3 = $src2
/*439907*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*439909*/                OPC_CheckPredicate, 9, // Predicate_load
/*439911*/                OPC_CheckType, MVT::f32,
/*439913*/                OPC_MoveParent,
/*439914*/                OPC_CheckType, MVT::v16f32,
/*439916*/                OPC_MoveParent,
/*439917*/                OPC_MoveParent,
/*439918*/                OPC_CheckType, MVT::v8i64,
/*439920*/                OPC_MoveParent,
/*439921*/                OPC_MoveParent,
/*439922*/                OPC_MoveChild2,
/*439923*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439926*/                OPC_MoveChild0,
/*439927*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*439930*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*439932*/                OPC_CheckType, MVT::v16i32,
/*439934*/                OPC_MoveParent,
/*439935*/                OPC_MoveParent,
/*439936*/                OPC_CheckType, MVT::v16f32,
/*439938*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*439940*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*439943*/                OPC_EmitMergeInputChains1_2,
/*439944*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                          // Dst: (VPANDNDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*439957*/              /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::SHUF128),// ->440101
/*439961*/                OPC_RecordChild0, // #1 = $src1
/*439962*/                OPC_MoveChild1,
/*439963*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::BITCAST),// ->440033
/*439967*/                  OPC_MoveChild0,
/*439968*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*439971*/                  OPC_RecordMemRef,
/*439972*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*439973*/                  OPC_CheckFoldableChainNode,
/*439974*/                  OPC_RecordChild1, // #3 = $src2
/*439975*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*439977*/                  OPC_CheckPredicate, 9, // Predicate_load
/*439979*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*439981*/                  OPC_CheckType, MVT::v16f32,
/*439983*/                  OPC_MoveParent,
/*439984*/                  OPC_MoveParent,
/*439985*/                  OPC_RecordChild2, // #4 = $src3
/*439986*/                  OPC_MoveChild2,
/*439987*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*439990*/                  OPC_MoveParent,
/*439991*/                  OPC_CheckType, MVT::v8f64,
/*439993*/                  OPC_MoveParent,
/*439994*/                  OPC_MoveParent,
/*439995*/                  OPC_MoveChild2,
/*439996*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*439999*/                  OPC_MoveChild0,
/*440000*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440003*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440005*/                  OPC_CheckType, MVT::v16i32,
/*440007*/                  OPC_MoveParent,
/*440008*/                  OPC_MoveParent,
/*440009*/                  OPC_CheckType, MVT::v16f32,
/*440011*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440013*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*440016*/                  OPC_EmitMergeInputChains1_2,
/*440017*/                  OPC_EmitConvertToTarget, 4,
/*440019*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (bitconvert:{ *:[v8f64] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VSHUFF32X4Zrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*440033*/                /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST),// ->440100
/*440036*/                  OPC_MoveChild0,
/*440037*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*440040*/                  OPC_RecordMemRef,
/*440041*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*440042*/                  OPC_CheckFoldableChainNode,
/*440043*/                  OPC_RecordChild1, // #3 = $src2
/*440044*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440046*/                  OPC_CheckPredicate, 9, // Predicate_load
/*440048*/                  OPC_CheckType, MVT::f32,
/*440050*/                  OPC_MoveParent,
/*440051*/                  OPC_MoveParent,
/*440052*/                  OPC_RecordChild2, // #4 = $src3
/*440053*/                  OPC_MoveChild2,
/*440054*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*440057*/                  OPC_MoveParent,
/*440058*/                  OPC_CheckType, MVT::v8f64,
/*440060*/                  OPC_MoveParent,
/*440061*/                  OPC_MoveParent,
/*440062*/                  OPC_MoveChild2,
/*440063*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440066*/                  OPC_MoveChild0,
/*440067*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440070*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440072*/                  OPC_CheckType, MVT::v16i32,
/*440074*/                  OPC_MoveParent,
/*440075*/                  OPC_MoveParent,
/*440076*/                  OPC_CheckType, MVT::v16f32,
/*440078*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440080*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*440083*/                  OPC_EmitMergeInputChains1_2,
/*440084*/                  OPC_EmitConvertToTarget, 4,
/*440086*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 44
                            // Dst: (VSHUFF32X4Zrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*440100*/                0, // EndSwitchOpcode
/*440101*/              0, // EndSwitchOpcode
/*440102*/            /*Scope*/ 4|128,1/*132*/, /*->440236*/
/*440104*/              OPC_RecordChild0, // #1 = $ins
/*440105*/              OPC_MoveChild0,
/*440106*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*440109*/              OPC_RecordChild0, // #2 = $src1
/*440110*/              OPC_MoveChild1,
/*440111*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*440114*/              OPC_RecordMemRef,
/*440115*/              OPC_RecordNode, // #3 = 'ld' chained node
/*440116*/              OPC_CheckFoldableChainNode,
/*440117*/              OPC_RecordChild1, // #4 = $src2
/*440118*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440120*/              OPC_CheckPredicate, 9, // Predicate_load
/*440122*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*440124*/              OPC_SwitchType /*2 cases */, 53, MVT::v2f64,// ->440180
/*440127*/                OPC_MoveParent,
/*440128*/                OPC_MoveChild2,
/*440129*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*440132*/                OPC_CheckType, MVT::iPTR,
/*440134*/                OPC_MoveParent,
/*440135*/                OPC_CheckType, MVT::v8f64,
/*440137*/                OPC_MoveParent,
/*440138*/                OPC_MoveParent,
/*440139*/                OPC_MoveChild2,
/*440140*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440143*/                OPC_MoveChild0,
/*440144*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440147*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440149*/                OPC_CheckType, MVT::v16i32,
/*440151*/                OPC_MoveParent,
/*440152*/                OPC_MoveParent,
/*440153*/                OPC_CheckType, MVT::v16f32,
/*440155*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440157*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*440160*/                OPC_EmitMergeInputChains, 1, 3, 
/*440163*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*440166*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VINSERTF32x4Zrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*440180*/              /*SwitchType*/ 53, MVT::v4f64,// ->440235
/*440182*/                OPC_MoveParent,
/*440183*/                OPC_MoveChild2,
/*440184*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*440187*/                OPC_CheckType, MVT::iPTR,
/*440189*/                OPC_MoveParent,
/*440190*/                OPC_CheckType, MVT::v8f64,
/*440192*/                OPC_MoveParent,
/*440193*/                OPC_MoveParent,
/*440194*/                OPC_MoveChild2,
/*440195*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440198*/                OPC_MoveChild0,
/*440199*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440202*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440204*/                OPC_CheckType, MVT::v16i32,
/*440206*/                OPC_MoveParent,
/*440207*/                OPC_MoveParent,
/*440208*/                OPC_CheckType, MVT::v16f32,
/*440210*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*440212*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*440215*/                OPC_EmitMergeInputChains, 1, 3, 
/*440218*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*440221*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x8Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                          // Dst: (VINSERTF32x8Zrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*440235*/              0, // EndSwitchType
/*440236*/            /*Scope*/ 64, /*->440301*/
/*440237*/              OPC_MoveChild0,
/*440238*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*440241*/              OPC_MoveChild0,
/*440242*/              OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*440245*/              OPC_MoveChild0,
/*440246*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*440249*/              OPC_RecordMemRef,
/*440250*/              OPC_RecordNode, // #1 = 'ld' chained node
/*440251*/              OPC_CheckFoldableChainNode,
/*440252*/              OPC_RecordChild1, // #2 = $src
/*440253*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440255*/              OPC_CheckPredicate, 9, // Predicate_load
/*440257*/              OPC_CheckType, MVT::f64,
/*440259*/              OPC_MoveParent,
/*440260*/              OPC_CheckType, MVT::v2f64,
/*440262*/              OPC_MoveParent,
/*440263*/              OPC_CheckType, MVT::v8f64,
/*440265*/              OPC_MoveParent,
/*440266*/              OPC_MoveParent,
/*440267*/              OPC_MoveChild2,
/*440268*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440271*/              OPC_MoveChild0,
/*440272*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440275*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440277*/              OPC_CheckType, MVT::v16i32,
/*440279*/              OPC_MoveParent,
/*440280*/              OPC_MoveParent,
/*440281*/              OPC_CheckType, MVT::v16f32,
/*440283*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*440285*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*440288*/              OPC_EmitMergeInputChains1_1,
/*440289*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Zmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86VBroadcast:{ *:[v8f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                        // Dst: (VBROADCASTF32X2Zmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440301*/            0, /*End of Scope*/
/*440302*/          /*SwitchOpcode*/ 113, TARGET_VAL(X86ISD::SCALEF),// ->440418
/*440305*/            OPC_RecordChild0, // #1 = $src1
/*440306*/            OPC_MoveChild1,
/*440307*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(X86ISD::VBROADCAST),// ->440365
/*440311*/              OPC_MoveChild0,
/*440312*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*440315*/              OPC_RecordMemRef,
/*440316*/              OPC_RecordNode, // #2 = 'ld' chained node
/*440317*/              OPC_CheckFoldableChainNode,
/*440318*/              OPC_RecordChild1, // #3 = $src2
/*440319*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440321*/              OPC_CheckPredicate, 9, // Predicate_load
/*440323*/              OPC_CheckType, MVT::f32,
/*440325*/              OPC_MoveParent,
/*440326*/              OPC_MoveParent,
/*440327*/              OPC_CheckChild2Integer, 4, 
/*440329*/              OPC_MoveParent,
/*440330*/              OPC_MoveChild2,
/*440331*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440334*/              OPC_MoveChild0,
/*440335*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440338*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440340*/              OPC_CheckType, MVT::v16i32,
/*440342*/              OPC_MoveParent,
/*440343*/              OPC_MoveParent,
/*440344*/              OPC_CheckType, MVT::v16f32,
/*440346*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440348*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*440351*/              OPC_EmitMergeInputChains1_2,
/*440352*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                        // Dst: (VSCALEFPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*440365*/            /*SwitchOpcode*/ 49, TARGET_VAL(ISD::LOAD),// ->440417
/*440368*/              OPC_RecordMemRef,
/*440369*/              OPC_RecordNode, // #2 = 'ld' chained node
/*440370*/              OPC_CheckFoldableChainNode,
/*440371*/              OPC_RecordChild1, // #3 = $src2
/*440372*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440374*/              OPC_CheckPredicate, 9, // Predicate_load
/*440376*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*440378*/              OPC_MoveParent,
/*440379*/              OPC_CheckChild2Integer, 4, 
/*440381*/              OPC_MoveParent,
/*440382*/              OPC_MoveChild2,
/*440383*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440386*/              OPC_MoveChild0,
/*440387*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440390*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440392*/              OPC_CheckType, MVT::v16i32,
/*440394*/              OPC_MoveParent,
/*440395*/              OPC_MoveParent,
/*440396*/              OPC_CheckType, MVT::v16f32,
/*440398*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440400*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*440403*/              OPC_EmitMergeInputChains1_2,
/*440404*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                        // Dst: (VSCALEFPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*440417*/            0, // EndSwitchOpcode
/*440418*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::RSQRT28),// ->440531
/*440421*/            OPC_MoveChild0,
/*440422*/            OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->440479
/*440426*/              OPC_MoveChild0,
/*440427*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*440430*/              OPC_RecordMemRef,
/*440431*/              OPC_RecordNode, // #1 = 'ld' chained node
/*440432*/              OPC_CheckFoldableChainNode,
/*440433*/              OPC_RecordChild1, // #2 = $src
/*440434*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440436*/              OPC_CheckPredicate, 9, // Predicate_load
/*440438*/              OPC_CheckType, MVT::f32,
/*440440*/              OPC_MoveParent,
/*440441*/              OPC_MoveParent,
/*440442*/              OPC_CheckChild1Integer, 4, 
/*440444*/              OPC_MoveParent,
/*440445*/              OPC_MoveChild2,
/*440446*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440449*/              OPC_MoveChild0,
/*440450*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440453*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440455*/              OPC_CheckType, MVT::v16i32,
/*440457*/              OPC_MoveParent,
/*440458*/              OPC_MoveParent,
/*440459*/              OPC_CheckType, MVT::v16f32,
/*440461*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*440463*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*440466*/              OPC_EmitMergeInputChains1_1,
/*440467*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt28:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                        // Dst: (VRSQRT28PSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440479*/            /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->440530
/*440482*/              OPC_RecordMemRef,
/*440483*/              OPC_RecordNode, // #1 = 'ld' chained node
/*440484*/              OPC_CheckFoldableChainNode,
/*440485*/              OPC_RecordChild1, // #2 = $src
/*440486*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440488*/              OPC_CheckPredicate, 9, // Predicate_load
/*440490*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*440492*/              OPC_MoveParent,
/*440493*/              OPC_CheckChild1Integer, 4, 
/*440495*/              OPC_MoveParent,
/*440496*/              OPC_MoveChild2,
/*440497*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440500*/              OPC_MoveChild0,
/*440501*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440504*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440506*/              OPC_CheckType, MVT::v16i32,
/*440508*/              OPC_MoveParent,
/*440509*/              OPC_MoveParent,
/*440510*/              OPC_CheckType, MVT::v16f32,
/*440512*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*440514*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*440517*/              OPC_EmitMergeInputChains1_1,
/*440518*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt28:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                        // Dst: (VRSQRT28PSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440530*/            0, // EndSwitchOpcode
/*440531*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::RCP28),// ->440644
/*440534*/            OPC_MoveChild0,
/*440535*/            OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->440592
/*440539*/              OPC_MoveChild0,
/*440540*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*440543*/              OPC_RecordMemRef,
/*440544*/              OPC_RecordNode, // #1 = 'ld' chained node
/*440545*/              OPC_CheckFoldableChainNode,
/*440546*/              OPC_RecordChild1, // #2 = $src
/*440547*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440549*/              OPC_CheckPredicate, 9, // Predicate_load
/*440551*/              OPC_CheckType, MVT::f32,
/*440553*/              OPC_MoveParent,
/*440554*/              OPC_MoveParent,
/*440555*/              OPC_CheckChild1Integer, 4, 
/*440557*/              OPC_MoveParent,
/*440558*/              OPC_MoveChild2,
/*440559*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440562*/              OPC_MoveChild0,
/*440563*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440566*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440568*/              OPC_CheckType, MVT::v16i32,
/*440570*/              OPC_MoveParent,
/*440571*/              OPC_MoveParent,
/*440572*/              OPC_CheckType, MVT::v16f32,
/*440574*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*440576*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*440579*/              OPC_EmitMergeInputChains1_1,
/*440580*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp28:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                        // Dst: (VRCP28PSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440592*/            /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->440643
/*440595*/              OPC_RecordMemRef,
/*440596*/              OPC_RecordNode, // #1 = 'ld' chained node
/*440597*/              OPC_CheckFoldableChainNode,
/*440598*/              OPC_RecordChild1, // #2 = $src
/*440599*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440601*/              OPC_CheckPredicate, 9, // Predicate_load
/*440603*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*440605*/              OPC_MoveParent,
/*440606*/              OPC_CheckChild1Integer, 4, 
/*440608*/              OPC_MoveParent,
/*440609*/              OPC_MoveChild2,
/*440610*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440613*/              OPC_MoveChild0,
/*440614*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440617*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440619*/              OPC_CheckType, MVT::v16i32,
/*440621*/              OPC_MoveParent,
/*440622*/              OPC_MoveParent,
/*440623*/              OPC_CheckType, MVT::v16f32,
/*440625*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*440627*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*440630*/              OPC_EmitMergeInputChains1_1,
/*440631*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp28:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                        // Dst: (VRCP28PSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440643*/            0, // EndSwitchOpcode
/*440644*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::EXP2),// ->440757
/*440647*/            OPC_MoveChild0,
/*440648*/            OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->440705
/*440652*/              OPC_MoveChild0,
/*440653*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*440656*/              OPC_RecordMemRef,
/*440657*/              OPC_RecordNode, // #1 = 'ld' chained node
/*440658*/              OPC_CheckFoldableChainNode,
/*440659*/              OPC_RecordChild1, // #2 = $src
/*440660*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440662*/              OPC_CheckPredicate, 9, // Predicate_load
/*440664*/              OPC_CheckType, MVT::f32,
/*440666*/              OPC_MoveParent,
/*440667*/              OPC_MoveParent,
/*440668*/              OPC_CheckChild1Integer, 4, 
/*440670*/              OPC_MoveParent,
/*440671*/              OPC_MoveChild2,
/*440672*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440675*/              OPC_MoveChild0,
/*440676*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440679*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440681*/              OPC_CheckType, MVT::v16i32,
/*440683*/              OPC_MoveParent,
/*440684*/              OPC_MoveParent,
/*440685*/              OPC_CheckType, MVT::v16f32,
/*440687*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*440689*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*440692*/              OPC_EmitMergeInputChains1_1,
/*440693*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86exp2:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                        // Dst: (VEXP2PSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440705*/            /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->440756
/*440708*/              OPC_RecordMemRef,
/*440709*/              OPC_RecordNode, // #1 = 'ld' chained node
/*440710*/              OPC_CheckFoldableChainNode,
/*440711*/              OPC_RecordChild1, // #2 = $src
/*440712*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440714*/              OPC_CheckPredicate, 9, // Predicate_load
/*440716*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*440718*/              OPC_MoveParent,
/*440719*/              OPC_CheckChild1Integer, 4, 
/*440721*/              OPC_MoveParent,
/*440722*/              OPC_MoveChild2,
/*440723*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440726*/              OPC_MoveChild0,
/*440727*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440730*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440732*/              OPC_CheckType, MVT::v16i32,
/*440734*/              OPC_MoveParent,
/*440735*/              OPC_MoveParent,
/*440736*/              OPC_CheckType, MVT::v16f32,
/*440738*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*440740*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*440743*/              OPC_EmitMergeInputChains1_1,
/*440744*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86exp2:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                        // Dst: (VEXP2PSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440756*/            0, // EndSwitchOpcode
/*440757*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::FGETEXP_RND),// ->440870
/*440760*/            OPC_MoveChild0,
/*440761*/            OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(X86ISD::VBROADCAST),// ->440818
/*440765*/              OPC_MoveChild0,
/*440766*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*440769*/              OPC_RecordMemRef,
/*440770*/              OPC_RecordNode, // #1 = 'ld' chained node
/*440771*/              OPC_CheckFoldableChainNode,
/*440772*/              OPC_RecordChild1, // #2 = $src
/*440773*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440775*/              OPC_CheckPredicate, 9, // Predicate_load
/*440777*/              OPC_CheckType, MVT::f32,
/*440779*/              OPC_MoveParent,
/*440780*/              OPC_MoveParent,
/*440781*/              OPC_CheckChild1Integer, 4, 
/*440783*/              OPC_MoveParent,
/*440784*/              OPC_MoveChild2,
/*440785*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440788*/              OPC_MoveChild0,
/*440789*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440792*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440794*/              OPC_CheckType, MVT::v16i32,
/*440796*/              OPC_MoveParent,
/*440797*/              OPC_MoveParent,
/*440798*/              OPC_CheckType, MVT::v16f32,
/*440800*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440802*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*440805*/              OPC_EmitMergeInputChains1_1,
/*440806*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexpRnd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 43
                        // Dst: (VGETEXPPSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440818*/            /*SwitchOpcode*/ 48, TARGET_VAL(ISD::LOAD),// ->440869
/*440821*/              OPC_RecordMemRef,
/*440822*/              OPC_RecordNode, // #1 = 'ld' chained node
/*440823*/              OPC_CheckFoldableChainNode,
/*440824*/              OPC_RecordChild1, // #2 = $src
/*440825*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440827*/              OPC_CheckPredicate, 9, // Predicate_load
/*440829*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*440831*/              OPC_MoveParent,
/*440832*/              OPC_CheckChild1Integer, 4, 
/*440834*/              OPC_MoveParent,
/*440835*/              OPC_MoveChild2,
/*440836*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440839*/              OPC_MoveChild0,
/*440840*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440843*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440845*/              OPC_CheckType, MVT::v16i32,
/*440847*/              OPC_MoveParent,
/*440848*/              OPC_MoveParent,
/*440849*/              OPC_CheckType, MVT::v16f32,
/*440851*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440853*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*440856*/              OPC_EmitMergeInputChains1_1,
/*440857*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexpRnd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 40
                        // Dst: (VGETEXPPSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440869*/            0, // EndSwitchOpcode
/*440870*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VPERMILPI),// ->440937
/*440873*/            OPC_MoveChild0,
/*440874*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*440877*/            OPC_MoveChild0,
/*440878*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*440881*/            OPC_RecordMemRef,
/*440882*/            OPC_RecordNode, // #1 = 'ld' chained node
/*440883*/            OPC_CheckFoldableChainNode,
/*440884*/            OPC_RecordChild1, // #2 = $src1
/*440885*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440887*/            OPC_CheckPredicate, 9, // Predicate_load
/*440889*/            OPC_CheckType, MVT::f32,
/*440891*/            OPC_MoveParent,
/*440892*/            OPC_MoveParent,
/*440893*/            OPC_RecordChild1, // #3 = $src2
/*440894*/            OPC_MoveChild1,
/*440895*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*440898*/            OPC_MoveParent,
/*440899*/            OPC_MoveParent,
/*440900*/            OPC_MoveChild2,
/*440901*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440904*/            OPC_MoveChild0,
/*440905*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440908*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440910*/            OPC_CheckType, MVT::v16i32,
/*440912*/            OPC_MoveParent,
/*440913*/            OPC_MoveParent,
/*440914*/            OPC_CheckType, MVT::v16f32,
/*440916*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440918*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*440921*/            OPC_EmitMergeInputChains1_1,
/*440922*/            OPC_EmitConvertToTarget, 3,
/*440924*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VPERMILPSZmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*440937*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VREDUCE),// ->441004
/*440940*/            OPC_MoveChild0,
/*440941*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*440944*/            OPC_MoveChild0,
/*440945*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*440948*/            OPC_RecordMemRef,
/*440949*/            OPC_RecordNode, // #1 = 'ld' chained node
/*440950*/            OPC_CheckFoldableChainNode,
/*440951*/            OPC_RecordChild1, // #2 = $src1
/*440952*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*440954*/            OPC_CheckPredicate, 9, // Predicate_load
/*440956*/            OPC_CheckType, MVT::f32,
/*440958*/            OPC_MoveParent,
/*440959*/            OPC_MoveParent,
/*440960*/            OPC_RecordChild1, // #3 = $src2
/*440961*/            OPC_MoveChild1,
/*440962*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*440965*/            OPC_MoveParent,
/*440966*/            OPC_MoveParent,
/*440967*/            OPC_MoveChild2,
/*440968*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440971*/            OPC_MoveChild0,
/*440972*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*440975*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*440977*/            OPC_CheckType, MVT::v16i32,
/*440979*/            OPC_MoveParent,
/*440980*/            OPC_MoveParent,
/*440981*/            OPC_CheckType, MVT::v16f32,
/*440983*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*440985*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*440988*/            OPC_EmitMergeInputChains1_1,
/*440989*/            OPC_EmitConvertToTarget, 3,
/*440991*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VREDUCEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*441004*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VRNDSCALE),// ->441071
/*441007*/            OPC_MoveChild0,
/*441008*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*441011*/            OPC_MoveChild0,
/*441012*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441015*/            OPC_RecordMemRef,
/*441016*/            OPC_RecordNode, // #1 = 'ld' chained node
/*441017*/            OPC_CheckFoldableChainNode,
/*441018*/            OPC_RecordChild1, // #2 = $src1
/*441019*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441021*/            OPC_CheckPredicate, 9, // Predicate_load
/*441023*/            OPC_CheckType, MVT::f32,
/*441025*/            OPC_MoveParent,
/*441026*/            OPC_MoveParent,
/*441027*/            OPC_RecordChild1, // #3 = $src2
/*441028*/            OPC_MoveChild1,
/*441029*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*441032*/            OPC_MoveParent,
/*441033*/            OPC_MoveParent,
/*441034*/            OPC_MoveChild2,
/*441035*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441038*/            OPC_MoveChild0,
/*441039*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441042*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441044*/            OPC_CheckType, MVT::v16i32,
/*441046*/            OPC_MoveParent,
/*441047*/            OPC_MoveParent,
/*441048*/            OPC_CheckType, MVT::v16f32,
/*441050*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441052*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*441055*/            OPC_EmitMergeInputChains1_1,
/*441056*/            OPC_EmitConvertToTarget, 3,
/*441058*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VRNDSCALEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*441071*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VGETMANT),// ->441138
/*441074*/            OPC_MoveChild0,
/*441075*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*441078*/            OPC_MoveChild0,
/*441079*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441082*/            OPC_RecordMemRef,
/*441083*/            OPC_RecordNode, // #1 = 'ld' chained node
/*441084*/            OPC_CheckFoldableChainNode,
/*441085*/            OPC_RecordChild1, // #2 = $src1
/*441086*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441088*/            OPC_CheckPredicate, 9, // Predicate_load
/*441090*/            OPC_CheckType, MVT::f32,
/*441092*/            OPC_MoveParent,
/*441093*/            OPC_MoveParent,
/*441094*/            OPC_RecordChild1, // #3 = $src2
/*441095*/            OPC_MoveChild1,
/*441096*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*441099*/            OPC_MoveParent,
/*441100*/            OPC_MoveParent,
/*441101*/            OPC_MoveChild2,
/*441102*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441105*/            OPC_MoveChild0,
/*441106*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441109*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441111*/            OPC_CheckType, MVT::v16i32,
/*441113*/            OPC_MoveParent,
/*441114*/            OPC_MoveParent,
/*441115*/            OPC_CheckType, MVT::v16f32,
/*441117*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441119*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*441122*/            OPC_EmitMergeInputChains1_1,
/*441123*/            OPC_EmitConvertToTarget, 3,
/*441125*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VGETMANTPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*441138*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VRANGE),// ->441207
/*441141*/            OPC_RecordChild0, // #1 = $src1
/*441142*/            OPC_MoveChild1,
/*441143*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*441146*/            OPC_MoveChild0,
/*441147*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441150*/            OPC_RecordMemRef,
/*441151*/            OPC_RecordNode, // #2 = 'ld' chained node
/*441152*/            OPC_CheckFoldableChainNode,
/*441153*/            OPC_RecordChild1, // #3 = $src2
/*441154*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441156*/            OPC_CheckPredicate, 9, // Predicate_load
/*441158*/            OPC_CheckType, MVT::f32,
/*441160*/            OPC_MoveParent,
/*441161*/            OPC_MoveParent,
/*441162*/            OPC_RecordChild2, // #4 = $src3
/*441163*/            OPC_MoveChild2,
/*441164*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*441167*/            OPC_MoveParent,
/*441168*/            OPC_MoveParent,
/*441169*/            OPC_MoveChild2,
/*441170*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441173*/            OPC_MoveChild0,
/*441174*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441177*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441179*/            OPC_CheckType, MVT::v16i32,
/*441181*/            OPC_MoveParent,
/*441182*/            OPC_MoveParent,
/*441183*/            OPC_CheckType, MVT::v16f32,
/*441185*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*441187*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*441190*/            OPC_EmitMergeInputChains1_2,
/*441191*/            OPC_EmitConvertToTarget, 4,
/*441193*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VRANGEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*441207*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::SHUFP),// ->441276
/*441210*/            OPC_RecordChild0, // #1 = $src1
/*441211*/            OPC_MoveChild1,
/*441212*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*441215*/            OPC_MoveChild0,
/*441216*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441219*/            OPC_RecordMemRef,
/*441220*/            OPC_RecordNode, // #2 = 'ld' chained node
/*441221*/            OPC_CheckFoldableChainNode,
/*441222*/            OPC_RecordChild1, // #3 = $src2
/*441223*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441225*/            OPC_CheckPredicate, 9, // Predicate_load
/*441227*/            OPC_CheckType, MVT::f32,
/*441229*/            OPC_MoveParent,
/*441230*/            OPC_MoveParent,
/*441231*/            OPC_RecordChild2, // #4 = $src3
/*441232*/            OPC_MoveChild2,
/*441233*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*441236*/            OPC_MoveParent,
/*441237*/            OPC_MoveParent,
/*441238*/            OPC_MoveChild2,
/*441239*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441242*/            OPC_MoveChild0,
/*441243*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441246*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441248*/            OPC_CheckType, MVT::v16i32,
/*441250*/            OPC_MoveParent,
/*441251*/            OPC_MoveParent,
/*441252*/            OPC_CheckType, MVT::v16f32,
/*441254*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441256*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*441259*/            OPC_EmitMergeInputChains1_2,
/*441260*/            OPC_EmitConvertToTarget, 4,
/*441262*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 41
                      // Dst: (VSHUFPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*441276*/          0, // EndSwitchOpcode
/*441277*/        /*Scope*/ 126, /*->441404*/
/*441278*/          OPC_RecordChild1, // #1 = $src3
/*441279*/          OPC_MoveChild1,
/*441280*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*441283*/          OPC_RecordChild0, // #2 = $src1
/*441284*/          OPC_MoveChild1,
/*441285*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441288*/          OPC_RecordMemRef,
/*441289*/          OPC_RecordNode, // #3 = 'ld' chained node
/*441290*/          OPC_CheckFoldableChainNode,
/*441291*/          OPC_RecordChild1, // #4 = $src2
/*441292*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441294*/          OPC_CheckPredicate, 9, // Predicate_load
/*441296*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*441298*/          OPC_SwitchType /*2 cases */, 50, MVT::v4f32,// ->441351
/*441301*/            OPC_MoveParent,
/*441302*/            OPC_MoveChild2,
/*441303*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*441306*/            OPC_CheckType, MVT::iPTR,
/*441308*/            OPC_MoveParent,
/*441309*/            OPC_MoveParent,
/*441310*/            OPC_MoveChild2,
/*441311*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441314*/            OPC_MoveChild0,
/*441315*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441318*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441320*/            OPC_CheckType, MVT::v16i32,
/*441322*/            OPC_MoveParent,
/*441323*/            OPC_MoveParent,
/*441324*/            OPC_CheckType, MVT::v16f32,
/*441326*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441328*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*441331*/            OPC_EmitMergeInputChains, 1, 3, 
/*441334*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*441337*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VINSERTF32x4Zrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*441351*/          /*SwitchType*/ 50, MVT::v8f32,// ->441403
/*441353*/            OPC_MoveParent,
/*441354*/            OPC_MoveChild2,
/*441355*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*441358*/            OPC_CheckType, MVT::iPTR,
/*441360*/            OPC_MoveParent,
/*441361*/            OPC_MoveParent,
/*441362*/            OPC_MoveChild2,
/*441363*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441366*/            OPC_MoveChild0,
/*441367*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441370*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441372*/            OPC_CheckType, MVT::v16i32,
/*441374*/            OPC_MoveParent,
/*441375*/            OPC_MoveParent,
/*441376*/            OPC_CheckType, MVT::v16f32,
/*441378*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*441380*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*441383*/            OPC_EmitMergeInputChains, 1, 3, 
/*441386*/            OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*441389*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x8Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 8/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VINSERTF32x8Zrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*441403*/          0, // EndSwitchType
/*441404*/        /*Scope*/ 120|128,64/*8312*/, /*->449718*/
/*441406*/          OPC_MoveChild1,
/*441407*/          OPC_SwitchOpcode /*48 cases */, 108, TARGET_VAL(X86ISD::VBROADCAST),// ->441519
/*441411*/            OPC_MoveChild0,
/*441412*/            OPC_SwitchOpcode /*2 cases */, 53, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->441469
/*441416*/              OPC_MoveChild0,
/*441417*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441420*/              OPC_RecordMemRef,
/*441421*/              OPC_RecordNode, // #1 = 'ld' chained node
/*441422*/              OPC_CheckFoldableChainNode,
/*441423*/              OPC_RecordChild1, // #2 = $src
/*441424*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441426*/              OPC_CheckPredicate, 9, // Predicate_load
/*441428*/              OPC_CheckType, MVT::f32,
/*441430*/              OPC_MoveParent,
/*441431*/              OPC_CheckType, MVT::v4f32,
/*441433*/              OPC_MoveParent,
/*441434*/              OPC_MoveParent,
/*441435*/              OPC_MoveChild2,
/*441436*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441439*/              OPC_MoveChild0,
/*441440*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441443*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441445*/              OPC_CheckType, MVT::v16i32,
/*441447*/              OPC_MoveParent,
/*441448*/              OPC_MoveParent,
/*441449*/              OPC_CheckType, MVT::v16f32,
/*441451*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441453*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*441456*/              OPC_EmitMergeInputChains1_1,
/*441457*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VBROADCASTSSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441469*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->441518
/*441472*/              OPC_RecordMemRef,
/*441473*/              OPC_RecordNode, // #1 = 'ld' chained node
/*441474*/              OPC_CheckFoldableChainNode,
/*441475*/              OPC_RecordChild1, // #2 = $src
/*441476*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441478*/              OPC_CheckPredicate, 9, // Predicate_load
/*441480*/              OPC_CheckType, MVT::f32,
/*441482*/              OPC_MoveParent,
/*441483*/              OPC_MoveParent,
/*441484*/              OPC_MoveChild2,
/*441485*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441488*/              OPC_MoveChild0,
/*441489*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441492*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441494*/              OPC_CheckType, MVT::v16i32,
/*441496*/              OPC_MoveParent,
/*441497*/              OPC_MoveParent,
/*441498*/              OPC_CheckType, MVT::v16f32,
/*441500*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441502*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*441505*/              OPC_EmitMergeInputChains1_1,
/*441506*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VBROADCASTSSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441518*/            0, // EndSwitchOpcode
/*441519*/          /*SwitchOpcode*/ 82|128,9/*1234*/, TARGET_VAL(ISD::BITCAST),// ->442757
/*441523*/            OPC_Scope, 44|128,8/*1068*/, /*->442594*/ // 3 children in Scope
/*441526*/              OPC_MoveChild0,
/*441527*/              OPC_SwitchOpcode /*7 cases */, 98, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->441629
/*441531*/                OPC_MoveChild0,
/*441532*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441535*/                OPC_RecordMemRef,
/*441536*/                OPC_RecordNode, // #1 = 'ld' chained node
/*441537*/                OPC_CheckFoldableChainNode,
/*441538*/                OPC_RecordChild1, // #2 = $src
/*441539*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441541*/                OPC_CheckPredicate, 9, // Predicate_load
/*441543*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*441545*/                OPC_SwitchType /*2 cases */, 39, MVT::v2f64,// ->441587
/*441548*/                  OPC_MoveParent,
/*441549*/                  OPC_CheckType, MVT::v8f64,
/*441551*/                  OPC_MoveParent,
/*441552*/                  OPC_MoveParent,
/*441553*/                  OPC_MoveChild2,
/*441554*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441557*/                  OPC_MoveChild0,
/*441558*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441561*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441563*/                  OPC_CheckType, MVT::v16i32,
/*441565*/                  OPC_MoveParent,
/*441566*/                  OPC_MoveParent,
/*441567*/                  OPC_CheckType, MVT::v16f32,
/*441569*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441571*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*441574*/                  OPC_EmitMergeInputChains1_1,
/*441575*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86SubVBroadcast:{ *:[v8f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VBROADCASTF32X4rmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441587*/                /*SwitchType*/ 39, MVT::v4f64,// ->441628
/*441589*/                  OPC_MoveParent,
/*441590*/                  OPC_CheckType, MVT::v8f64,
/*441592*/                  OPC_MoveParent,
/*441593*/                  OPC_MoveParent,
/*441594*/                  OPC_MoveChild2,
/*441595*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441598*/                  OPC_MoveChild0,
/*441599*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441602*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441604*/                  OPC_CheckType, MVT::v16i32,
/*441606*/                  OPC_MoveParent,
/*441607*/                  OPC_MoveParent,
/*441608*/                  OPC_CheckType, MVT::v16f32,
/*441610*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*441612*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*441615*/                  OPC_EmitMergeInputChains1_1,
/*441616*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X8rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86SubVBroadcast:{ *:[v8f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VBROADCASTF32X8rmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441628*/                0, // EndSwitchType
/*441629*/              /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->441685
/*441632*/                OPC_MoveChild0,
/*441633*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441636*/                OPC_RecordMemRef,
/*441637*/                OPC_RecordNode, // #1 = 'ld' chained node
/*441638*/                OPC_CheckFoldableChainNode,
/*441639*/                OPC_RecordChild1, // #2 = $src
/*441640*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441642*/                OPC_CheckPredicate, 9, // Predicate_load
/*441644*/                OPC_CheckType, MVT::f64,
/*441646*/                OPC_MoveParent,
/*441647*/                OPC_CheckType, MVT::v8f64,
/*441649*/                OPC_MoveParent,
/*441650*/                OPC_MoveParent,
/*441651*/                OPC_MoveChild2,
/*441652*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441655*/                OPC_MoveChild0,
/*441656*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441659*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441661*/                OPC_CheckType, MVT::v16i32,
/*441663*/                OPC_MoveParent,
/*441664*/                OPC_MoveParent,
/*441665*/                OPC_CheckType, MVT::v16f32,
/*441667*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*441669*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*441672*/                OPC_EmitMergeInputChains1_1,
/*441673*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Zmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VBROADCASTF32X2Zmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441685*/              /*SwitchOpcode*/ 94|128,1/*222*/, TARGET_VAL(ISD::AND),// ->441911
/*441689*/                OPC_Scope, 53, /*->441744*/ // 4 children in Scope
/*441691*/                  OPC_RecordChild0, // #1 = $src1
/*441692*/                  OPC_MoveChild1,
/*441693*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441696*/                  OPC_RecordMemRef,
/*441697*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*441698*/                  OPC_CheckFoldableChainNode,
/*441699*/                  OPC_RecordChild1, // #3 = $src2
/*441700*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441702*/                  OPC_CheckPredicate, 9, // Predicate_load
/*441704*/                  OPC_MoveParent,
/*441705*/                  OPC_CheckType, MVT::v8i64,
/*441707*/                  OPC_MoveParent,
/*441708*/                  OPC_MoveParent,
/*441709*/                  OPC_MoveChild2,
/*441710*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441713*/                  OPC_MoveChild0,
/*441714*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441717*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441719*/                  OPC_CheckType, MVT::v16i32,
/*441721*/                  OPC_MoveParent,
/*441722*/                  OPC_MoveParent,
/*441723*/                  OPC_CheckType, MVT::v16f32,
/*441725*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441727*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*441730*/                  OPC_EmitMergeInputChains1_2,
/*441731*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPANDDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*441744*/                /*Scope*/ 53, /*->441798*/
/*441745*/                  OPC_MoveChild0,
/*441746*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441749*/                  OPC_RecordMemRef,
/*441750*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*441751*/                  OPC_CheckFoldableChainNode,
/*441752*/                  OPC_RecordChild1, // #2 = $src2
/*441753*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441755*/                  OPC_CheckPredicate, 9, // Predicate_load
/*441757*/                  OPC_MoveParent,
/*441758*/                  OPC_RecordChild1, // #3 = $src1
/*441759*/                  OPC_CheckType, MVT::v8i64,
/*441761*/                  OPC_MoveParent,
/*441762*/                  OPC_MoveParent,
/*441763*/                  OPC_MoveChild2,
/*441764*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441767*/                  OPC_MoveChild0,
/*441768*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441771*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441773*/                  OPC_CheckType, MVT::v16i32,
/*441775*/                  OPC_MoveParent,
/*441776*/                  OPC_MoveParent,
/*441777*/                  OPC_CheckType, MVT::v16f32,
/*441779*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441781*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*441784*/                  OPC_EmitMergeInputChains1_1,
/*441785*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPANDDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*441798*/                /*Scope*/ 55, /*->441854*/
/*441799*/                  OPC_RecordChild0, // #1 = $src1
/*441800*/                  OPC_MoveChild1,
/*441801*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441804*/                  OPC_MoveChild0,
/*441805*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*441808*/                  OPC_MoveChild0,
/*441809*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441812*/                  OPC_RecordMemRef,
/*441813*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*441814*/                  OPC_CheckFoldableChainNode,
/*441815*/                  OPC_RecordChild1, // #3 = $src2
/*441816*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441818*/                  OPC_CheckPredicate, 9, // Predicate_load
/*441820*/                  OPC_CheckType, MVT::f32,
/*441822*/                  OPC_MoveParent,
/*441823*/                  OPC_CheckType, MVT::v16f32,
/*441825*/                  OPC_MoveParent,
/*441826*/                  OPC_MoveParent,
/*441827*/                  OPC_CheckType, MVT::v8i64,
/*441829*/                  OPC_MoveParent,
/*441830*/                  OPC_MoveParent,
/*441831*/                  OPC_RecordChild2, // #4 = $src0
/*441832*/                  OPC_CheckType, MVT::v16f32,
/*441834*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441836*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*441839*/                  OPC_EmitMergeInputChains1_2,
/*441840*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR512:{ *:[v16f32] }:$src0) - Complexity = 37
                            // Dst: (VPANDDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*441854*/                /*Scope*/ 55, /*->441910*/
/*441855*/                  OPC_MoveChild0,
/*441856*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441859*/                  OPC_MoveChild0,
/*441860*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*441863*/                  OPC_MoveChild0,
/*441864*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441867*/                  OPC_RecordMemRef,
/*441868*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*441869*/                  OPC_CheckFoldableChainNode,
/*441870*/                  OPC_RecordChild1, // #2 = $src2
/*441871*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441873*/                  OPC_CheckPredicate, 9, // Predicate_load
/*441875*/                  OPC_CheckType, MVT::f32,
/*441877*/                  OPC_MoveParent,
/*441878*/                  OPC_CheckType, MVT::v16f32,
/*441880*/                  OPC_MoveParent,
/*441881*/                  OPC_MoveParent,
/*441882*/                  OPC_RecordChild1, // #3 = $src1
/*441883*/                  OPC_CheckType, MVT::v8i64,
/*441885*/                  OPC_MoveParent,
/*441886*/                  OPC_MoveParent,
/*441887*/                  OPC_RecordChild2, // #4 = $src0
/*441888*/                  OPC_CheckType, MVT::v16f32,
/*441890*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441892*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*441895*/                  OPC_EmitMergeInputChains1_1,
/*441896*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 37
                            // Dst: (VPANDDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*441910*/                0, /*End of Scope*/
/*441911*/              /*SwitchOpcode*/ 94|128,1/*222*/, TARGET_VAL(ISD::OR),// ->442137
/*441915*/                OPC_Scope, 53, /*->441970*/ // 4 children in Scope
/*441917*/                  OPC_RecordChild0, // #1 = $src1
/*441918*/                  OPC_MoveChild1,
/*441919*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441922*/                  OPC_RecordMemRef,
/*441923*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*441924*/                  OPC_CheckFoldableChainNode,
/*441925*/                  OPC_RecordChild1, // #3 = $src2
/*441926*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441928*/                  OPC_CheckPredicate, 9, // Predicate_load
/*441930*/                  OPC_MoveParent,
/*441931*/                  OPC_CheckType, MVT::v8i64,
/*441933*/                  OPC_MoveParent,
/*441934*/                  OPC_MoveParent,
/*441935*/                  OPC_MoveChild2,
/*441936*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441939*/                  OPC_MoveChild0,
/*441940*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441943*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441945*/                  OPC_CheckType, MVT::v16i32,
/*441947*/                  OPC_MoveParent,
/*441948*/                  OPC_MoveParent,
/*441949*/                  OPC_CheckType, MVT::v16f32,
/*441951*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441953*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*441956*/                  OPC_EmitMergeInputChains1_2,
/*441957*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*441970*/                /*Scope*/ 53, /*->442024*/
/*441971*/                  OPC_MoveChild0,
/*441972*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*441975*/                  OPC_RecordMemRef,
/*441976*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*441977*/                  OPC_CheckFoldableChainNode,
/*441978*/                  OPC_RecordChild1, // #2 = $src2
/*441979*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441981*/                  OPC_CheckPredicate, 9, // Predicate_load
/*441983*/                  OPC_MoveParent,
/*441984*/                  OPC_RecordChild1, // #3 = $src1
/*441985*/                  OPC_CheckType, MVT::v8i64,
/*441987*/                  OPC_MoveParent,
/*441988*/                  OPC_MoveParent,
/*441989*/                  OPC_MoveChild2,
/*441990*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*441993*/                  OPC_MoveChild0,
/*441994*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*441997*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*441999*/                  OPC_CheckType, MVT::v16i32,
/*442001*/                  OPC_MoveParent,
/*442002*/                  OPC_MoveParent,
/*442003*/                  OPC_CheckType, MVT::v16f32,
/*442005*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442007*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*442010*/                  OPC_EmitMergeInputChains1_1,
/*442011*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*442024*/                /*Scope*/ 55, /*->442080*/
/*442025*/                  OPC_RecordChild0, // #1 = $src1
/*442026*/                  OPC_MoveChild1,
/*442027*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442030*/                  OPC_MoveChild0,
/*442031*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*442034*/                  OPC_MoveChild0,
/*442035*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442038*/                  OPC_RecordMemRef,
/*442039*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*442040*/                  OPC_CheckFoldableChainNode,
/*442041*/                  OPC_RecordChild1, // #3 = $src2
/*442042*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442044*/                  OPC_CheckPredicate, 9, // Predicate_load
/*442046*/                  OPC_CheckType, MVT::f32,
/*442048*/                  OPC_MoveParent,
/*442049*/                  OPC_CheckType, MVT::v16f32,
/*442051*/                  OPC_MoveParent,
/*442052*/                  OPC_MoveParent,
/*442053*/                  OPC_CheckType, MVT::v8i64,
/*442055*/                  OPC_MoveParent,
/*442056*/                  OPC_MoveParent,
/*442057*/                  OPC_RecordChild2, // #4 = $src0
/*442058*/                  OPC_CheckType, MVT::v16f32,
/*442060*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442062*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*442065*/                  OPC_EmitMergeInputChains1_2,
/*442066*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR512:{ *:[v16f32] }:$src0) - Complexity = 37
                            // Dst: (VPORDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*442080*/                /*Scope*/ 55, /*->442136*/
/*442081*/                  OPC_MoveChild0,
/*442082*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442085*/                  OPC_MoveChild0,
/*442086*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*442089*/                  OPC_MoveChild0,
/*442090*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442093*/                  OPC_RecordMemRef,
/*442094*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*442095*/                  OPC_CheckFoldableChainNode,
/*442096*/                  OPC_RecordChild1, // #2 = $src2
/*442097*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442099*/                  OPC_CheckPredicate, 9, // Predicate_load
/*442101*/                  OPC_CheckType, MVT::f32,
/*442103*/                  OPC_MoveParent,
/*442104*/                  OPC_CheckType, MVT::v16f32,
/*442106*/                  OPC_MoveParent,
/*442107*/                  OPC_MoveParent,
/*442108*/                  OPC_RecordChild1, // #3 = $src1
/*442109*/                  OPC_CheckType, MVT::v8i64,
/*442111*/                  OPC_MoveParent,
/*442112*/                  OPC_MoveParent,
/*442113*/                  OPC_RecordChild2, // #4 = $src0
/*442114*/                  OPC_CheckType, MVT::v16f32,
/*442116*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442118*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*442121*/                  OPC_EmitMergeInputChains1_1,
/*442122*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 37
                            // Dst: (VPORDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*442136*/                0, /*End of Scope*/
/*442137*/              /*SwitchOpcode*/ 94|128,1/*222*/, TARGET_VAL(ISD::XOR),// ->442363
/*442141*/                OPC_Scope, 53, /*->442196*/ // 4 children in Scope
/*442143*/                  OPC_RecordChild0, // #1 = $src1
/*442144*/                  OPC_MoveChild1,
/*442145*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442148*/                  OPC_RecordMemRef,
/*442149*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*442150*/                  OPC_CheckFoldableChainNode,
/*442151*/                  OPC_RecordChild1, // #3 = $src2
/*442152*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442154*/                  OPC_CheckPredicate, 9, // Predicate_load
/*442156*/                  OPC_MoveParent,
/*442157*/                  OPC_CheckType, MVT::v8i64,
/*442159*/                  OPC_MoveParent,
/*442160*/                  OPC_MoveParent,
/*442161*/                  OPC_MoveChild2,
/*442162*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442165*/                  OPC_MoveChild0,
/*442166*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*442169*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*442171*/                  OPC_CheckType, MVT::v16i32,
/*442173*/                  OPC_MoveParent,
/*442174*/                  OPC_MoveParent,
/*442175*/                  OPC_CheckType, MVT::v16f32,
/*442177*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442179*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*442182*/                  OPC_EmitMergeInputChains1_2,
/*442183*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPXORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*442196*/                /*Scope*/ 53, /*->442250*/
/*442197*/                  OPC_MoveChild0,
/*442198*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442201*/                  OPC_RecordMemRef,
/*442202*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*442203*/                  OPC_CheckFoldableChainNode,
/*442204*/                  OPC_RecordChild1, // #2 = $src2
/*442205*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442207*/                  OPC_CheckPredicate, 9, // Predicate_load
/*442209*/                  OPC_MoveParent,
/*442210*/                  OPC_RecordChild1, // #3 = $src1
/*442211*/                  OPC_CheckType, MVT::v8i64,
/*442213*/                  OPC_MoveParent,
/*442214*/                  OPC_MoveParent,
/*442215*/                  OPC_MoveChild2,
/*442216*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442219*/                  OPC_MoveChild0,
/*442220*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*442223*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*442225*/                  OPC_CheckType, MVT::v16i32,
/*442227*/                  OPC_MoveParent,
/*442228*/                  OPC_MoveParent,
/*442229*/                  OPC_CheckType, MVT::v16f32,
/*442231*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442233*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*442236*/                  OPC_EmitMergeInputChains1_1,
/*442237*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPXORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*442250*/                /*Scope*/ 55, /*->442306*/
/*442251*/                  OPC_RecordChild0, // #1 = $src1
/*442252*/                  OPC_MoveChild1,
/*442253*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442256*/                  OPC_MoveChild0,
/*442257*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*442260*/                  OPC_MoveChild0,
/*442261*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442264*/                  OPC_RecordMemRef,
/*442265*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*442266*/                  OPC_CheckFoldableChainNode,
/*442267*/                  OPC_RecordChild1, // #3 = $src2
/*442268*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442270*/                  OPC_CheckPredicate, 9, // Predicate_load
/*442272*/                  OPC_CheckType, MVT::f32,
/*442274*/                  OPC_MoveParent,
/*442275*/                  OPC_CheckType, MVT::v16f32,
/*442277*/                  OPC_MoveParent,
/*442278*/                  OPC_MoveParent,
/*442279*/                  OPC_CheckType, MVT::v8i64,
/*442281*/                  OPC_MoveParent,
/*442282*/                  OPC_MoveParent,
/*442283*/                  OPC_RecordChild2, // #4 = $src0
/*442284*/                  OPC_CheckType, MVT::v16f32,
/*442286*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442288*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*442291*/                  OPC_EmitMergeInputChains1_2,
/*442292*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR512:{ *:[v16f32] }:$src0) - Complexity = 37
                            // Dst: (VPXORDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*442306*/                /*Scope*/ 55, /*->442362*/
/*442307*/                  OPC_MoveChild0,
/*442308*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442311*/                  OPC_MoveChild0,
/*442312*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*442315*/                  OPC_MoveChild0,
/*442316*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442319*/                  OPC_RecordMemRef,
/*442320*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*442321*/                  OPC_CheckFoldableChainNode,
/*442322*/                  OPC_RecordChild1, // #2 = $src2
/*442323*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442325*/                  OPC_CheckPredicate, 9, // Predicate_load
/*442327*/                  OPC_CheckType, MVT::f32,
/*442329*/                  OPC_MoveParent,
/*442330*/                  OPC_CheckType, MVT::v16f32,
/*442332*/                  OPC_MoveParent,
/*442333*/                  OPC_MoveParent,
/*442334*/                  OPC_RecordChild1, // #3 = $src1
/*442335*/                  OPC_CheckType, MVT::v8i64,
/*442337*/                  OPC_MoveParent,
/*442338*/                  OPC_MoveParent,
/*442339*/                  OPC_RecordChild2, // #4 = $src0
/*442340*/                  OPC_CheckType, MVT::v16f32,
/*442342*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442344*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*442347*/                  OPC_EmitMergeInputChains1_1,
/*442348*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 37
                            // Dst: (VPXORDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*442362*/                0, /*End of Scope*/
/*442363*/              /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::ANDNP),// ->442474
/*442366*/                OPC_RecordChild0, // #1 = $src1
/*442367*/                OPC_MoveChild1,
/*442368*/                OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::LOAD),// ->442420
/*442372*/                  OPC_RecordMemRef,
/*442373*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*442374*/                  OPC_CheckFoldableChainNode,
/*442375*/                  OPC_RecordChild1, // #3 = $src2
/*442376*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442378*/                  OPC_CheckPredicate, 9, // Predicate_load
/*442380*/                  OPC_MoveParent,
/*442381*/                  OPC_CheckType, MVT::v8i64,
/*442383*/                  OPC_MoveParent,
/*442384*/                  OPC_MoveParent,
/*442385*/                  OPC_MoveChild2,
/*442386*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442389*/                  OPC_MoveChild0,
/*442390*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*442393*/                  OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*442395*/                  OPC_CheckType, MVT::v16i32,
/*442397*/                  OPC_MoveParent,
/*442398*/                  OPC_MoveParent,
/*442399*/                  OPC_CheckType, MVT::v16f32,
/*442401*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442403*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*442406*/                  OPC_EmitMergeInputChains1_2,
/*442407*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                            // Dst: (VPANDNDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*442420*/                /*SwitchOpcode*/ 50, TARGET_VAL(ISD::BITCAST),// ->442473
/*442423*/                  OPC_MoveChild0,
/*442424*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*442427*/                  OPC_MoveChild0,
/*442428*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442431*/                  OPC_RecordMemRef,
/*442432*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*442433*/                  OPC_CheckFoldableChainNode,
/*442434*/                  OPC_RecordChild1, // #3 = $src2
/*442435*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442437*/                  OPC_CheckPredicate, 9, // Predicate_load
/*442439*/                  OPC_CheckType, MVT::f32,
/*442441*/                  OPC_MoveParent,
/*442442*/                  OPC_CheckType, MVT::v16f32,
/*442444*/                  OPC_MoveParent,
/*442445*/                  OPC_MoveParent,
/*442446*/                  OPC_CheckType, MVT::v8i64,
/*442448*/                  OPC_MoveParent,
/*442449*/                  OPC_MoveParent,
/*442450*/                  OPC_RecordChild2, // #4 = $src0
/*442451*/                  OPC_CheckType, MVT::v16f32,
/*442453*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442455*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*442458*/                  OPC_EmitMergeInputChains1_2,
/*442459*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))), VR512:{ *:[v16f32] }:$src0) - Complexity = 37
                            // Dst: (VPANDNDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*442473*/                0, // EndSwitchOpcode
/*442474*/              /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::SHUF128),// ->442593
/*442477*/                OPC_RecordChild0, // #1 = $src1
/*442478*/                OPC_MoveChild1,
/*442479*/                OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->442537
/*442483*/                  OPC_MoveChild0,
/*442484*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442487*/                  OPC_RecordMemRef,
/*442488*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*442489*/                  OPC_CheckFoldableChainNode,
/*442490*/                  OPC_RecordChild1, // #3 = $src2
/*442491*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442493*/                  OPC_CheckPredicate, 9, // Predicate_load
/*442495*/                  OPC_CheckPredicate, 40, // Predicate_vecload
/*442497*/                  OPC_CheckType, MVT::v16f32,
/*442499*/                  OPC_MoveParent,
/*442500*/                  OPC_MoveParent,
/*442501*/                  OPC_RecordChild2, // #4 = $src3
/*442502*/                  OPC_MoveChild2,
/*442503*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*442506*/                  OPC_MoveParent,
/*442507*/                  OPC_CheckType, MVT::v8f64,
/*442509*/                  OPC_MoveParent,
/*442510*/                  OPC_MoveParent,
/*442511*/                  OPC_RecordChild2, // #5 = $src0
/*442512*/                  OPC_CheckType, MVT::v16f32,
/*442514*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442516*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*442519*/                  OPC_EmitMergeInputChains1_2,
/*442520*/                  OPC_EmitConvertToTarget, 4,
/*442522*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (bitconvert:{ *:[v8f64] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3)), VR512:{ *:[v16f32] }:$src0) - Complexity = 37
                            // Dst: (VSHUFF32X4Zrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*442537*/                /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->442592
/*442540*/                  OPC_MoveChild0,
/*442541*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442544*/                  OPC_RecordMemRef,
/*442545*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*442546*/                  OPC_CheckFoldableChainNode,
/*442547*/                  OPC_RecordChild1, // #3 = $src2
/*442548*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442550*/                  OPC_CheckPredicate, 9, // Predicate_load
/*442552*/                  OPC_CheckType, MVT::f32,
/*442554*/                  OPC_MoveParent,
/*442555*/                  OPC_MoveParent,
/*442556*/                  OPC_RecordChild2, // #4 = $src3
/*442557*/                  OPC_MoveChild2,
/*442558*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*442561*/                  OPC_MoveParent,
/*442562*/                  OPC_CheckType, MVT::v8f64,
/*442564*/                  OPC_MoveParent,
/*442565*/                  OPC_MoveParent,
/*442566*/                  OPC_RecordChild2, // #5 = $src0
/*442567*/                  OPC_CheckType, MVT::v16f32,
/*442569*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442571*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*442574*/                  OPC_EmitMergeInputChains1_2,
/*442575*/                  OPC_EmitConvertToTarget, 4,
/*442577*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3)), VR512:{ *:[v16f32] }:$src0) - Complexity = 37
                            // Dst: (VSHUFF32X4Zrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*442592*/                0, // EndSwitchOpcode
/*442593*/              0, // EndSwitchOpcode
/*442594*/            /*Scope*/ 108, /*->442703*/
/*442595*/              OPC_RecordChild0, // #1 = $ins
/*442596*/              OPC_MoveChild0,
/*442597*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*442600*/              OPC_RecordChild0, // #2 = $src1
/*442601*/              OPC_MoveChild1,
/*442602*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442605*/              OPC_RecordMemRef,
/*442606*/              OPC_RecordNode, // #3 = 'ld' chained node
/*442607*/              OPC_CheckFoldableChainNode,
/*442608*/              OPC_RecordChild1, // #4 = $src2
/*442609*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442611*/              OPC_CheckPredicate, 9, // Predicate_load
/*442613*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*442615*/              OPC_SwitchType /*2 cases */, 41, MVT::v2f64,// ->442659
/*442618*/                OPC_MoveParent,
/*442619*/                OPC_MoveChild2,
/*442620*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*442623*/                OPC_CheckType, MVT::iPTR,
/*442625*/                OPC_MoveParent,
/*442626*/                OPC_CheckType, MVT::v8f64,
/*442628*/                OPC_MoveParent,
/*442629*/                OPC_MoveParent,
/*442630*/                OPC_RecordChild2, // #5 = $src0
/*442631*/                OPC_CheckType, MVT::v16f32,
/*442633*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442635*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*442638*/                OPC_EmitMergeInputChains, 1, 3, 
/*442641*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*442644*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v16f32] }:$src0) - Complexity = 34
                          // Dst: (VINSERTF32x4Zrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*442659*/              /*SwitchType*/ 41, MVT::v4f64,// ->442702
/*442661*/                OPC_MoveParent,
/*442662*/                OPC_MoveChild2,
/*442663*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*442666*/                OPC_CheckType, MVT::iPTR,
/*442668*/                OPC_MoveParent,
/*442669*/                OPC_CheckType, MVT::v8f64,
/*442671*/                OPC_MoveParent,
/*442672*/                OPC_MoveParent,
/*442673*/                OPC_RecordChild2, // #5 = $src0
/*442674*/                OPC_CheckType, MVT::v16f32,
/*442676*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*442678*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*442681*/                OPC_EmitMergeInputChains, 1, 3, 
/*442684*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*442687*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x8Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v16f32] }:$src0) - Complexity = 34
                          // Dst: (VINSERTF32x8Zrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*442702*/              0, // EndSwitchType
/*442703*/            /*Scope*/ 52, /*->442756*/
/*442704*/              OPC_MoveChild0,
/*442705*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*442708*/              OPC_MoveChild0,
/*442709*/              OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*442712*/              OPC_MoveChild0,
/*442713*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442716*/              OPC_RecordMemRef,
/*442717*/              OPC_RecordNode, // #1 = 'ld' chained node
/*442718*/              OPC_CheckFoldableChainNode,
/*442719*/              OPC_RecordChild1, // #2 = $src
/*442720*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442722*/              OPC_CheckPredicate, 9, // Predicate_load
/*442724*/              OPC_CheckType, MVT::f64,
/*442726*/              OPC_MoveParent,
/*442727*/              OPC_CheckType, MVT::v2f64,
/*442729*/              OPC_MoveParent,
/*442730*/              OPC_CheckType, MVT::v8f64,
/*442732*/              OPC_MoveParent,
/*442733*/              OPC_MoveParent,
/*442734*/              OPC_RecordChild2, // #3 = $src0
/*442735*/              OPC_CheckType, MVT::v16f32,
/*442737*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*442739*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*442742*/              OPC_EmitMergeInputChains1_1,
/*442743*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Zmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86VBroadcast:{ *:[v8f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR512:{ *:[v16f32] }:$src0) - Complexity = 34
                        // Dst: (VBROADCASTF32X2Zmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442756*/            0, /*End of Scope*/
/*442757*/          /*SwitchOpcode*/ 30|128,2/*286*/, TARGET_VAL(X86ISD::VPERMV3),// ->443047
/*442761*/            OPC_RecordChild0, // #1 = $src1
/*442762*/            OPC_Scope, 60, /*->442824*/ // 4 children in Scope
/*442764*/              OPC_RecordChild1, // #2 = $src2
/*442765*/              OPC_MoveChild2,
/*442766*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*442769*/              OPC_MoveChild0,
/*442770*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442773*/              OPC_RecordMemRef,
/*442774*/              OPC_RecordNode, // #3 = 'ld' chained node
/*442775*/              OPC_CheckFoldableChainNode,
/*442776*/              OPC_RecordChild1, // #4 = $src3
/*442777*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442779*/              OPC_CheckPredicate, 9, // Predicate_load
/*442781*/              OPC_CheckType, MVT::f32,
/*442783*/              OPC_MoveParent,
/*442784*/              OPC_MoveParent,
/*442785*/              OPC_MoveParent,
/*442786*/              OPC_MoveChild2,
/*442787*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442790*/              OPC_MoveChild0,
/*442791*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*442794*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*442796*/              OPC_CheckType, MVT::v16i32,
/*442798*/              OPC_MoveParent,
/*442799*/              OPC_MoveParent,
/*442800*/              OPC_CheckType, MVT::v16f32,
/*442802*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442804*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*442807*/              OPC_EmitMergeInputChains, 1, 3, 
/*442810*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PSrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMT2PSrmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*442824*/            /*Scope*/ 58, /*->442883*/
/*442825*/              OPC_MoveChild1,
/*442826*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442829*/              OPC_RecordChild0, // #2 = $src1
/*442830*/              OPC_CheckChild0Type, MVT::v8i64,
/*442832*/              OPC_MoveParent,
/*442833*/              OPC_MoveChild2,
/*442834*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*442837*/              OPC_MoveChild0,
/*442838*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442841*/              OPC_RecordMemRef,
/*442842*/              OPC_RecordNode, // #3 = 'ld' chained node
/*442843*/              OPC_CheckFoldableChainNode,
/*442844*/              OPC_RecordChild1, // #4 = $src3
/*442845*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442847*/              OPC_CheckPredicate, 9, // Predicate_load
/*442849*/              OPC_CheckType, MVT::f32,
/*442851*/              OPC_MoveParent,
/*442852*/              OPC_MoveParent,
/*442853*/              OPC_MoveParent,
/*442854*/              OPC_MoveChild2,
/*442855*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442858*/              OPC_CheckChild0Same, 2,
/*442860*/              OPC_MoveParent,
/*442861*/              OPC_CheckType, MVT::v16f32,
/*442863*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*442866*/              OPC_EmitMergeInputChains, 1, 3, 
/*442869*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PSrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (bitconvert:{ *:[v16i32] } VR512:{ *:[v8i64] }:$src1), (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src1)) - Complexity = 37
                        // Dst: (VPERMI2PSrmbk:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*442883*/            /*Scope*/ 108, /*->442992*/
/*442884*/              OPC_RecordChild1, // #2 = $src2
/*442885*/              OPC_MoveChild2,
/*442886*/              OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(ISD::LOAD),// ->442940
/*442890*/                OPC_RecordMemRef,
/*442891*/                OPC_RecordNode, // #3 = 'ld' chained node
/*442892*/                OPC_CheckFoldableChainNode,
/*442893*/                OPC_RecordChild1, // #4 = $src3
/*442894*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442896*/                OPC_CheckPredicate, 9, // Predicate_load
/*442898*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*442900*/                OPC_MoveParent,
/*442901*/                OPC_MoveParent,
/*442902*/                OPC_MoveChild2,
/*442903*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442906*/                OPC_MoveChild0,
/*442907*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*442910*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*442912*/                OPC_CheckType, MVT::v16i32,
/*442914*/                OPC_MoveParent,
/*442915*/                OPC_MoveParent,
/*442916*/                OPC_CheckType, MVT::v16f32,
/*442918*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442920*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*442923*/                OPC_EmitMergeInputChains, 1, 3, 
/*442926*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PSrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VPERMT2PSrmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*442940*/              /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->442991
/*442943*/                OPC_MoveChild0,
/*442944*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*442947*/                OPC_RecordMemRef,
/*442948*/                OPC_RecordNode, // #3 = 'ld' chained node
/*442949*/                OPC_CheckFoldableChainNode,
/*442950*/                OPC_RecordChild1, // #4 = $src3
/*442951*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442953*/                OPC_CheckPredicate, 9, // Predicate_load
/*442955*/                OPC_CheckType, MVT::f32,
/*442957*/                OPC_MoveParent,
/*442958*/                OPC_MoveParent,
/*442959*/                OPC_MoveParent,
/*442960*/                OPC_MoveChild2,
/*442961*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442964*/                OPC_CheckChild0Same, 2,
/*442966*/                OPC_MoveParent,
/*442967*/                OPC_CheckType, MVT::v16f32,
/*442969*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442971*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*442974*/                OPC_EmitMergeInputChains, 1, 3, 
/*442977*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PSrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1)) - Complexity = 34
                          // Dst: (VPERMI2PSrmbk:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*442991*/              0, // EndSwitchOpcode
/*442992*/            /*Scope*/ 53, /*->443046*/
/*442993*/              OPC_MoveChild1,
/*442994*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*442997*/              OPC_RecordChild0, // #2 = $src1
/*442998*/              OPC_CheckChild0Type, MVT::v8i64,
/*443000*/              OPC_MoveParent,
/*443001*/              OPC_MoveChild2,
/*443002*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443005*/              OPC_RecordMemRef,
/*443006*/              OPC_RecordNode, // #3 = 'ld' chained node
/*443007*/              OPC_CheckFoldableChainNode,
/*443008*/              OPC_RecordChild1, // #4 = $src3
/*443009*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443011*/              OPC_CheckPredicate, 9, // Predicate_load
/*443013*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*443015*/              OPC_MoveParent,
/*443016*/              OPC_MoveParent,
/*443017*/              OPC_MoveChild2,
/*443018*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443021*/              OPC_CheckChild0Same, 2,
/*443023*/              OPC_MoveParent,
/*443024*/              OPC_CheckType, MVT::v16f32,
/*443026*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*443029*/              OPC_EmitMergeInputChains, 1, 3, 
/*443032*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PSrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (bitconvert:{ *:[v16i32] } VR512:{ *:[v8i64] }:$src1), (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src1)) - Complexity = 34
                        // Dst: (VPERMI2PSrmk:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*443046*/            0, /*End of Scope*/
/*443047*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(ISD::FADD),// ->443275
/*443051*/            OPC_Scope, 57, /*->443110*/ // 4 children in Scope
/*443053*/              OPC_RecordChild0, // #1 = $src1
/*443054*/              OPC_MoveChild1,
/*443055*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*443058*/              OPC_MoveChild0,
/*443059*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443062*/              OPC_RecordMemRef,
/*443063*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443064*/              OPC_CheckFoldableChainNode,
/*443065*/              OPC_RecordChild1, // #3 = $src2
/*443066*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443068*/              OPC_CheckPredicate, 9, // Predicate_load
/*443070*/              OPC_CheckType, MVT::f32,
/*443072*/              OPC_MoveParent,
/*443073*/              OPC_MoveParent,
/*443074*/              OPC_MoveParent,
/*443075*/              OPC_MoveChild2,
/*443076*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443079*/              OPC_MoveChild0,
/*443080*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443083*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443085*/              OPC_CheckType, MVT::v16i32,
/*443087*/              OPC_MoveParent,
/*443088*/              OPC_MoveParent,
/*443089*/              OPC_CheckType, MVT::v16f32,
/*443091*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443093*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443096*/              OPC_EmitMergeInputChains1_2,
/*443097*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VADDPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443110*/            /*Scope*/ 57, /*->443168*/
/*443111*/              OPC_MoveChild0,
/*443112*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*443115*/              OPC_MoveChild0,
/*443116*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443119*/              OPC_RecordMemRef,
/*443120*/              OPC_RecordNode, // #1 = 'ld' chained node
/*443121*/              OPC_CheckFoldableChainNode,
/*443122*/              OPC_RecordChild1, // #2 = $src2
/*443123*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443125*/              OPC_CheckPredicate, 9, // Predicate_load
/*443127*/              OPC_CheckType, MVT::f32,
/*443129*/              OPC_MoveParent,
/*443130*/              OPC_MoveParent,
/*443131*/              OPC_RecordChild1, // #3 = $src1
/*443132*/              OPC_MoveParent,
/*443133*/              OPC_MoveChild2,
/*443134*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443137*/              OPC_MoveChild0,
/*443138*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443141*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443143*/              OPC_CheckType, MVT::v16i32,
/*443145*/              OPC_MoveParent,
/*443146*/              OPC_MoveParent,
/*443147*/              OPC_CheckType, MVT::v16f32,
/*443149*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443151*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443154*/              OPC_EmitMergeInputChains1_1,
/*443155*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VADDPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443168*/            /*Scope*/ 52, /*->443221*/
/*443169*/              OPC_RecordChild0, // #1 = $src1
/*443170*/              OPC_MoveChild1,
/*443171*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443174*/              OPC_RecordMemRef,
/*443175*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443176*/              OPC_CheckFoldableChainNode,
/*443177*/              OPC_RecordChild1, // #3 = $src2
/*443178*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443180*/              OPC_CheckPredicate, 9, // Predicate_load
/*443182*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*443184*/              OPC_MoveParent,
/*443185*/              OPC_MoveParent,
/*443186*/              OPC_MoveChild2,
/*443187*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443190*/              OPC_MoveChild0,
/*443191*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443194*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443196*/              OPC_CheckType, MVT::v16i32,
/*443198*/              OPC_MoveParent,
/*443199*/              OPC_MoveParent,
/*443200*/              OPC_CheckType, MVT::v16f32,
/*443202*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443204*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443207*/              OPC_EmitMergeInputChains1_2,
/*443208*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VADDPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443221*/            /*Scope*/ 52, /*->443274*/
/*443222*/              OPC_MoveChild0,
/*443223*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443226*/              OPC_RecordMemRef,
/*443227*/              OPC_RecordNode, // #1 = 'ld' chained node
/*443228*/              OPC_CheckFoldableChainNode,
/*443229*/              OPC_RecordChild1, // #2 = $src2
/*443230*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443232*/              OPC_CheckPredicate, 9, // Predicate_load
/*443234*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*443236*/              OPC_MoveParent,
/*443237*/              OPC_RecordChild1, // #3 = $src1
/*443238*/              OPC_MoveParent,
/*443239*/              OPC_MoveChild2,
/*443240*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443243*/              OPC_MoveChild0,
/*443244*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443247*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443249*/              OPC_CheckType, MVT::v16i32,
/*443251*/              OPC_MoveParent,
/*443252*/              OPC_MoveParent,
/*443253*/              OPC_CheckType, MVT::v16f32,
/*443255*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443257*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443260*/              OPC_EmitMergeInputChains1_1,
/*443261*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VADDPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443274*/            0, /*End of Scope*/
/*443275*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(ISD::FMUL),// ->443503
/*443279*/            OPC_Scope, 57, /*->443338*/ // 4 children in Scope
/*443281*/              OPC_RecordChild0, // #1 = $src1
/*443282*/              OPC_MoveChild1,
/*443283*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*443286*/              OPC_MoveChild0,
/*443287*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443290*/              OPC_RecordMemRef,
/*443291*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443292*/              OPC_CheckFoldableChainNode,
/*443293*/              OPC_RecordChild1, // #3 = $src2
/*443294*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443296*/              OPC_CheckPredicate, 9, // Predicate_load
/*443298*/              OPC_CheckType, MVT::f32,
/*443300*/              OPC_MoveParent,
/*443301*/              OPC_MoveParent,
/*443302*/              OPC_MoveParent,
/*443303*/              OPC_MoveChild2,
/*443304*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443307*/              OPC_MoveChild0,
/*443308*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443311*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443313*/              OPC_CheckType, MVT::v16i32,
/*443315*/              OPC_MoveParent,
/*443316*/              OPC_MoveParent,
/*443317*/              OPC_CheckType, MVT::v16f32,
/*443319*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443321*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443324*/              OPC_EmitMergeInputChains1_2,
/*443325*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMULPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443338*/            /*Scope*/ 57, /*->443396*/
/*443339*/              OPC_MoveChild0,
/*443340*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*443343*/              OPC_MoveChild0,
/*443344*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443347*/              OPC_RecordMemRef,
/*443348*/              OPC_RecordNode, // #1 = 'ld' chained node
/*443349*/              OPC_CheckFoldableChainNode,
/*443350*/              OPC_RecordChild1, // #2 = $src2
/*443351*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443353*/              OPC_CheckPredicate, 9, // Predicate_load
/*443355*/              OPC_CheckType, MVT::f32,
/*443357*/              OPC_MoveParent,
/*443358*/              OPC_MoveParent,
/*443359*/              OPC_RecordChild1, // #3 = $src1
/*443360*/              OPC_MoveParent,
/*443361*/              OPC_MoveChild2,
/*443362*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443365*/              OPC_MoveChild0,
/*443366*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443369*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443371*/              OPC_CheckType, MVT::v16i32,
/*443373*/              OPC_MoveParent,
/*443374*/              OPC_MoveParent,
/*443375*/              OPC_CheckType, MVT::v16f32,
/*443377*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443379*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443382*/              OPC_EmitMergeInputChains1_1,
/*443383*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fmul:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMULPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443396*/            /*Scope*/ 52, /*->443449*/
/*443397*/              OPC_RecordChild0, // #1 = $src1
/*443398*/              OPC_MoveChild1,
/*443399*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443402*/              OPC_RecordMemRef,
/*443403*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443404*/              OPC_CheckFoldableChainNode,
/*443405*/              OPC_RecordChild1, // #3 = $src2
/*443406*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443408*/              OPC_CheckPredicate, 9, // Predicate_load
/*443410*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*443412*/              OPC_MoveParent,
/*443413*/              OPC_MoveParent,
/*443414*/              OPC_MoveChild2,
/*443415*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443418*/              OPC_MoveChild0,
/*443419*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443422*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443424*/              OPC_CheckType, MVT::v16i32,
/*443426*/              OPC_MoveParent,
/*443427*/              OPC_MoveParent,
/*443428*/              OPC_CheckType, MVT::v16f32,
/*443430*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443432*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443435*/              OPC_EmitMergeInputChains1_2,
/*443436*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMULPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443449*/            /*Scope*/ 52, /*->443502*/
/*443450*/              OPC_MoveChild0,
/*443451*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443454*/              OPC_RecordMemRef,
/*443455*/              OPC_RecordNode, // #1 = 'ld' chained node
/*443456*/              OPC_CheckFoldableChainNode,
/*443457*/              OPC_RecordChild1, // #2 = $src2
/*443458*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443460*/              OPC_CheckPredicate, 9, // Predicate_load
/*443462*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*443464*/              OPC_MoveParent,
/*443465*/              OPC_RecordChild1, // #3 = $src1
/*443466*/              OPC_MoveParent,
/*443467*/              OPC_MoveChild2,
/*443468*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443471*/              OPC_MoveChild0,
/*443472*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443475*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443477*/              OPC_CheckType, MVT::v16i32,
/*443479*/              OPC_MoveParent,
/*443480*/              OPC_MoveParent,
/*443481*/              OPC_CheckType, MVT::v16f32,
/*443483*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443485*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443488*/              OPC_EmitMergeInputChains1_1,
/*443489*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fmul:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMULPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443502*/            0, /*End of Scope*/
/*443503*/          /*SwitchOpcode*/ 109, TARGET_VAL(ISD::FSUB),// ->443615
/*443506*/            OPC_RecordChild0, // #1 = $src1
/*443507*/            OPC_MoveChild1,
/*443508*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->443564
/*443512*/              OPC_MoveChild0,
/*443513*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443516*/              OPC_RecordMemRef,
/*443517*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443518*/              OPC_CheckFoldableChainNode,
/*443519*/              OPC_RecordChild1, // #3 = $src2
/*443520*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443522*/              OPC_CheckPredicate, 9, // Predicate_load
/*443524*/              OPC_CheckType, MVT::f32,
/*443526*/              OPC_MoveParent,
/*443527*/              OPC_MoveParent,
/*443528*/              OPC_MoveParent,
/*443529*/              OPC_MoveChild2,
/*443530*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443533*/              OPC_MoveChild0,
/*443534*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443537*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443539*/              OPC_CheckType, MVT::v16i32,
/*443541*/              OPC_MoveParent,
/*443542*/              OPC_MoveParent,
/*443543*/              OPC_CheckType, MVT::v16f32,
/*443545*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443547*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443550*/              OPC_EmitMergeInputChains1_2,
/*443551*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VSUBPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443564*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->443614
/*443567*/              OPC_RecordMemRef,
/*443568*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443569*/              OPC_CheckFoldableChainNode,
/*443570*/              OPC_RecordChild1, // #3 = $src2
/*443571*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443573*/              OPC_CheckPredicate, 9, // Predicate_load
/*443575*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*443577*/              OPC_MoveParent,
/*443578*/              OPC_MoveParent,
/*443579*/              OPC_MoveChild2,
/*443580*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443583*/              OPC_MoveChild0,
/*443584*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443587*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443589*/              OPC_CheckType, MVT::v16i32,
/*443591*/              OPC_MoveParent,
/*443592*/              OPC_MoveParent,
/*443593*/              OPC_CheckType, MVT::v16f32,
/*443595*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443597*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443600*/              OPC_EmitMergeInputChains1_2,
/*443601*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VSUBPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443614*/            0, // EndSwitchOpcode
/*443615*/          /*SwitchOpcode*/ 109, TARGET_VAL(ISD::FDIV),// ->443727
/*443618*/            OPC_RecordChild0, // #1 = $src1
/*443619*/            OPC_MoveChild1,
/*443620*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->443676
/*443624*/              OPC_MoveChild0,
/*443625*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443628*/              OPC_RecordMemRef,
/*443629*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443630*/              OPC_CheckFoldableChainNode,
/*443631*/              OPC_RecordChild1, // #3 = $src2
/*443632*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443634*/              OPC_CheckPredicate, 9, // Predicate_load
/*443636*/              OPC_CheckType, MVT::f32,
/*443638*/              OPC_MoveParent,
/*443639*/              OPC_MoveParent,
/*443640*/              OPC_MoveParent,
/*443641*/              OPC_MoveChild2,
/*443642*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443645*/              OPC_MoveChild0,
/*443646*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443649*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443651*/              OPC_CheckType, MVT::v16i32,
/*443653*/              OPC_MoveParent,
/*443654*/              OPC_MoveParent,
/*443655*/              OPC_CheckType, MVT::v16f32,
/*443657*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443659*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443662*/              OPC_EmitMergeInputChains1_2,
/*443663*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VDIVPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443676*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->443726
/*443679*/              OPC_RecordMemRef,
/*443680*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443681*/              OPC_CheckFoldableChainNode,
/*443682*/              OPC_RecordChild1, // #3 = $src2
/*443683*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443685*/              OPC_CheckPredicate, 9, // Predicate_load
/*443687*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*443689*/              OPC_MoveParent,
/*443690*/              OPC_MoveParent,
/*443691*/              OPC_MoveChild2,
/*443692*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443695*/              OPC_MoveChild0,
/*443696*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443699*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443701*/              OPC_CheckType, MVT::v16i32,
/*443703*/              OPC_MoveParent,
/*443704*/              OPC_MoveParent,
/*443705*/              OPC_CheckType, MVT::v16f32,
/*443707*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443709*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443712*/              OPC_EmitMergeInputChains1_2,
/*443713*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VDIVPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443726*/            0, // EndSwitchOpcode
/*443727*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::FMIN),// ->443839
/*443730*/            OPC_RecordChild0, // #1 = $src1
/*443731*/            OPC_MoveChild1,
/*443732*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->443788
/*443736*/              OPC_MoveChild0,
/*443737*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443740*/              OPC_RecordMemRef,
/*443741*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443742*/              OPC_CheckFoldableChainNode,
/*443743*/              OPC_RecordChild1, // #3 = $src2
/*443744*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443746*/              OPC_CheckPredicate, 9, // Predicate_load
/*443748*/              OPC_CheckType, MVT::f32,
/*443750*/              OPC_MoveParent,
/*443751*/              OPC_MoveParent,
/*443752*/              OPC_MoveParent,
/*443753*/              OPC_MoveChild2,
/*443754*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443757*/              OPC_MoveChild0,
/*443758*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443761*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443763*/              OPC_CheckType, MVT::v16i32,
/*443765*/              OPC_MoveParent,
/*443766*/              OPC_MoveParent,
/*443767*/              OPC_CheckType, MVT::v16f32,
/*443769*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443771*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443774*/              OPC_EmitMergeInputChains1_2,
/*443775*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmin:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMINPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443788*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->443838
/*443791*/              OPC_RecordMemRef,
/*443792*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443793*/              OPC_CheckFoldableChainNode,
/*443794*/              OPC_RecordChild1, // #3 = $src2
/*443795*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443797*/              OPC_CheckPredicate, 9, // Predicate_load
/*443799*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*443801*/              OPC_MoveParent,
/*443802*/              OPC_MoveParent,
/*443803*/              OPC_MoveChild2,
/*443804*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443807*/              OPC_MoveChild0,
/*443808*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443811*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443813*/              OPC_CheckType, MVT::v16i32,
/*443815*/              OPC_MoveParent,
/*443816*/              OPC_MoveParent,
/*443817*/              OPC_CheckType, MVT::v16f32,
/*443819*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443821*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443824*/              OPC_EmitMergeInputChains1_2,
/*443825*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmin:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMINPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443838*/            0, // EndSwitchOpcode
/*443839*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::FMAX),// ->443951
/*443842*/            OPC_RecordChild0, // #1 = $src1
/*443843*/            OPC_MoveChild1,
/*443844*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->443900
/*443848*/              OPC_MoveChild0,
/*443849*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443852*/              OPC_RecordMemRef,
/*443853*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443854*/              OPC_CheckFoldableChainNode,
/*443855*/              OPC_RecordChild1, // #3 = $src2
/*443856*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443858*/              OPC_CheckPredicate, 9, // Predicate_load
/*443860*/              OPC_CheckType, MVT::f32,
/*443862*/              OPC_MoveParent,
/*443863*/              OPC_MoveParent,
/*443864*/              OPC_MoveParent,
/*443865*/              OPC_MoveChild2,
/*443866*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443869*/              OPC_MoveChild0,
/*443870*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443873*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443875*/              OPC_CheckType, MVT::v16i32,
/*443877*/              OPC_MoveParent,
/*443878*/              OPC_MoveParent,
/*443879*/              OPC_CheckType, MVT::v16f32,
/*443881*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443883*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443886*/              OPC_EmitMergeInputChains1_2,
/*443887*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmax:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMAXPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443900*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->443950
/*443903*/              OPC_RecordMemRef,
/*443904*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443905*/              OPC_CheckFoldableChainNode,
/*443906*/              OPC_RecordChild1, // #3 = $src2
/*443907*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443909*/              OPC_CheckPredicate, 9, // Predicate_load
/*443911*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*443913*/              OPC_MoveParent,
/*443914*/              OPC_MoveParent,
/*443915*/              OPC_MoveChild2,
/*443916*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443919*/              OPC_MoveChild0,
/*443920*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443923*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443925*/              OPC_CheckType, MVT::v16i32,
/*443927*/              OPC_MoveParent,
/*443928*/              OPC_MoveParent,
/*443929*/              OPC_CheckType, MVT::v16f32,
/*443931*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443933*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443936*/              OPC_EmitMergeInputChains1_2,
/*443937*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmax:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMAXPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*443950*/            0, // EndSwitchOpcode
/*443951*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(X86ISD::FMINC),// ->444179
/*443955*/            OPC_Scope, 57, /*->444014*/ // 4 children in Scope
/*443957*/              OPC_RecordChild0, // #1 = $src1
/*443958*/              OPC_MoveChild1,
/*443959*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*443962*/              OPC_MoveChild0,
/*443963*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443966*/              OPC_RecordMemRef,
/*443967*/              OPC_RecordNode, // #2 = 'ld' chained node
/*443968*/              OPC_CheckFoldableChainNode,
/*443969*/              OPC_RecordChild1, // #3 = $src2
/*443970*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443972*/              OPC_CheckPredicate, 9, // Predicate_load
/*443974*/              OPC_CheckType, MVT::f32,
/*443976*/              OPC_MoveParent,
/*443977*/              OPC_MoveParent,
/*443978*/              OPC_MoveParent,
/*443979*/              OPC_MoveChild2,
/*443980*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*443983*/              OPC_MoveChild0,
/*443984*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*443987*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*443989*/              OPC_CheckType, MVT::v16i32,
/*443991*/              OPC_MoveParent,
/*443992*/              OPC_MoveParent,
/*443993*/              OPC_CheckType, MVT::v16f32,
/*443995*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443997*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444000*/              OPC_EmitMergeInputChains1_2,
/*444001*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMINCPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444014*/            /*Scope*/ 57, /*->444072*/
/*444015*/              OPC_MoveChild0,
/*444016*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*444019*/              OPC_MoveChild0,
/*444020*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444023*/              OPC_RecordMemRef,
/*444024*/              OPC_RecordNode, // #1 = 'ld' chained node
/*444025*/              OPC_CheckFoldableChainNode,
/*444026*/              OPC_RecordChild1, // #2 = $src2
/*444027*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444029*/              OPC_CheckPredicate, 9, // Predicate_load
/*444031*/              OPC_CheckType, MVT::f32,
/*444033*/              OPC_MoveParent,
/*444034*/              OPC_MoveParent,
/*444035*/              OPC_RecordChild1, // #3 = $src1
/*444036*/              OPC_MoveParent,
/*444037*/              OPC_MoveChild2,
/*444038*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444041*/              OPC_MoveChild0,
/*444042*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444045*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444047*/              OPC_CheckType, MVT::v16i32,
/*444049*/              OPC_MoveParent,
/*444050*/              OPC_MoveParent,
/*444051*/              OPC_CheckType, MVT::v16f32,
/*444053*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444055*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444058*/              OPC_EmitMergeInputChains1_1,
/*444059*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminc:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMINCPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444072*/            /*Scope*/ 52, /*->444125*/
/*444073*/              OPC_RecordChild0, // #1 = $src1
/*444074*/              OPC_MoveChild1,
/*444075*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444078*/              OPC_RecordMemRef,
/*444079*/              OPC_RecordNode, // #2 = 'ld' chained node
/*444080*/              OPC_CheckFoldableChainNode,
/*444081*/              OPC_RecordChild1, // #3 = $src2
/*444082*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444084*/              OPC_CheckPredicate, 9, // Predicate_load
/*444086*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*444088*/              OPC_MoveParent,
/*444089*/              OPC_MoveParent,
/*444090*/              OPC_MoveChild2,
/*444091*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444094*/              OPC_MoveChild0,
/*444095*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444098*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444100*/              OPC_CheckType, MVT::v16i32,
/*444102*/              OPC_MoveParent,
/*444103*/              OPC_MoveParent,
/*444104*/              OPC_CheckType, MVT::v16f32,
/*444106*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444108*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444111*/              OPC_EmitMergeInputChains1_2,
/*444112*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMINCPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444125*/            /*Scope*/ 52, /*->444178*/
/*444126*/              OPC_MoveChild0,
/*444127*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444130*/              OPC_RecordMemRef,
/*444131*/              OPC_RecordNode, // #1 = 'ld' chained node
/*444132*/              OPC_CheckFoldableChainNode,
/*444133*/              OPC_RecordChild1, // #2 = $src2
/*444134*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444136*/              OPC_CheckPredicate, 9, // Predicate_load
/*444138*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*444140*/              OPC_MoveParent,
/*444141*/              OPC_RecordChild1, // #3 = $src1
/*444142*/              OPC_MoveParent,
/*444143*/              OPC_MoveChild2,
/*444144*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444147*/              OPC_MoveChild0,
/*444148*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444151*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444153*/              OPC_CheckType, MVT::v16i32,
/*444155*/              OPC_MoveParent,
/*444156*/              OPC_MoveParent,
/*444157*/              OPC_CheckType, MVT::v16f32,
/*444159*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444161*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444164*/              OPC_EmitMergeInputChains1_1,
/*444165*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminc:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMINCPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444178*/            0, /*End of Scope*/
/*444179*/          /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(X86ISD::FMAXC),// ->444407
/*444183*/            OPC_Scope, 57, /*->444242*/ // 4 children in Scope
/*444185*/              OPC_RecordChild0, // #1 = $src1
/*444186*/              OPC_MoveChild1,
/*444187*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*444190*/              OPC_MoveChild0,
/*444191*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444194*/              OPC_RecordMemRef,
/*444195*/              OPC_RecordNode, // #2 = 'ld' chained node
/*444196*/              OPC_CheckFoldableChainNode,
/*444197*/              OPC_RecordChild1, // #3 = $src2
/*444198*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444200*/              OPC_CheckPredicate, 9, // Predicate_load
/*444202*/              OPC_CheckType, MVT::f32,
/*444204*/              OPC_MoveParent,
/*444205*/              OPC_MoveParent,
/*444206*/              OPC_MoveParent,
/*444207*/              OPC_MoveChild2,
/*444208*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444211*/              OPC_MoveChild0,
/*444212*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444215*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444217*/              OPC_CheckType, MVT::v16i32,
/*444219*/              OPC_MoveParent,
/*444220*/              OPC_MoveParent,
/*444221*/              OPC_CheckType, MVT::v16f32,
/*444223*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444225*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444228*/              OPC_EmitMergeInputChains1_2,
/*444229*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMAXCPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444242*/            /*Scope*/ 57, /*->444300*/
/*444243*/              OPC_MoveChild0,
/*444244*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*444247*/              OPC_MoveChild0,
/*444248*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444251*/              OPC_RecordMemRef,
/*444252*/              OPC_RecordNode, // #1 = 'ld' chained node
/*444253*/              OPC_CheckFoldableChainNode,
/*444254*/              OPC_RecordChild1, // #2 = $src2
/*444255*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444257*/              OPC_CheckPredicate, 9, // Predicate_load
/*444259*/              OPC_CheckType, MVT::f32,
/*444261*/              OPC_MoveParent,
/*444262*/              OPC_MoveParent,
/*444263*/              OPC_RecordChild1, // #3 = $src1
/*444264*/              OPC_MoveParent,
/*444265*/              OPC_MoveChild2,
/*444266*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444269*/              OPC_MoveChild0,
/*444270*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444273*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444275*/              OPC_CheckType, MVT::v16i32,
/*444277*/              OPC_MoveParent,
/*444278*/              OPC_MoveParent,
/*444279*/              OPC_CheckType, MVT::v16f32,
/*444281*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444283*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444286*/              OPC_EmitMergeInputChains1_1,
/*444287*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxc:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VMAXCPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444300*/            /*Scope*/ 52, /*->444353*/
/*444301*/              OPC_RecordChild0, // #1 = $src1
/*444302*/              OPC_MoveChild1,
/*444303*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444306*/              OPC_RecordMemRef,
/*444307*/              OPC_RecordNode, // #2 = 'ld' chained node
/*444308*/              OPC_CheckFoldableChainNode,
/*444309*/              OPC_RecordChild1, // #3 = $src2
/*444310*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444312*/              OPC_CheckPredicate, 9, // Predicate_load
/*444314*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*444316*/              OPC_MoveParent,
/*444317*/              OPC_MoveParent,
/*444318*/              OPC_MoveChild2,
/*444319*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444322*/              OPC_MoveChild0,
/*444323*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444326*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444328*/              OPC_CheckType, MVT::v16i32,
/*444330*/              OPC_MoveParent,
/*444331*/              OPC_MoveParent,
/*444332*/              OPC_CheckType, MVT::v16f32,
/*444334*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444336*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444339*/              OPC_EmitMergeInputChains1_2,
/*444340*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMAXCPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444353*/            /*Scope*/ 52, /*->444406*/
/*444354*/              OPC_MoveChild0,
/*444355*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444358*/              OPC_RecordMemRef,
/*444359*/              OPC_RecordNode, // #1 = 'ld' chained node
/*444360*/              OPC_CheckFoldableChainNode,
/*444361*/              OPC_RecordChild1, // #2 = $src2
/*444362*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444364*/              OPC_CheckPredicate, 9, // Predicate_load
/*444366*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*444368*/              OPC_MoveParent,
/*444369*/              OPC_RecordChild1, // #3 = $src1
/*444370*/              OPC_MoveParent,
/*444371*/              OPC_MoveChild2,
/*444372*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444375*/              OPC_MoveChild0,
/*444376*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444379*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444381*/              OPC_CheckType, MVT::v16i32,
/*444383*/              OPC_MoveParent,
/*444384*/              OPC_MoveParent,
/*444385*/              OPC_CheckType, MVT::v16f32,
/*444387*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444389*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444392*/              OPC_EmitMergeInputChains1_1,
/*444393*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxc:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VMAXCPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444406*/            0, /*End of Scope*/
/*444407*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VPERMV),// ->444519
/*444410*/            OPC_RecordChild0, // #1 = $src1
/*444411*/            OPC_MoveChild1,
/*444412*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->444468
/*444416*/              OPC_MoveChild0,
/*444417*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444420*/              OPC_RecordMemRef,
/*444421*/              OPC_RecordNode, // #2 = 'ld' chained node
/*444422*/              OPC_CheckFoldableChainNode,
/*444423*/              OPC_RecordChild1, // #3 = $src2
/*444424*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444426*/              OPC_CheckPredicate, 9, // Predicate_load
/*444428*/              OPC_CheckType, MVT::f32,
/*444430*/              OPC_MoveParent,
/*444431*/              OPC_MoveParent,
/*444432*/              OPC_MoveParent,
/*444433*/              OPC_MoveChild2,
/*444434*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444437*/              OPC_MoveChild0,
/*444438*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444441*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444443*/              OPC_CheckType, MVT::v16i32,
/*444445*/              OPC_MoveParent,
/*444446*/              OPC_MoveParent,
/*444447*/              OPC_CheckType, MVT::v16f32,
/*444449*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444451*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444454*/              OPC_EmitMergeInputChains1_2,
/*444455*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444468*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->444518
/*444471*/              OPC_RecordMemRef,
/*444472*/              OPC_RecordNode, // #2 = 'ld' chained node
/*444473*/              OPC_CheckFoldableChainNode,
/*444474*/              OPC_RecordChild1, // #3 = $src2
/*444475*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444477*/              OPC_CheckPredicate, 9, // Predicate_load
/*444479*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*444481*/              OPC_MoveParent,
/*444482*/              OPC_MoveParent,
/*444483*/              OPC_MoveChild2,
/*444484*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444487*/              OPC_MoveChild0,
/*444488*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444491*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444493*/              OPC_CheckType, MVT::v16i32,
/*444495*/              OPC_MoveParent,
/*444496*/              OPC_MoveParent,
/*444497*/              OPC_CheckType, MVT::v16f32,
/*444499*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444501*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444504*/              OPC_EmitMergeInputChains1_2,
/*444505*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VPERMPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444518*/            0, // EndSwitchOpcode
/*444519*/          /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::VPERMILPV),// ->444638
/*444522*/            OPC_RecordChild0, // #1 = $src1
/*444523*/            OPC_MoveChild1,
/*444524*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->444582
/*444528*/              OPC_MoveChild0,
/*444529*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444532*/              OPC_RecordMemRef,
/*444533*/              OPC_RecordNode, // #2 = 'ld' chained node
/*444534*/              OPC_CheckFoldableChainNode,
/*444535*/              OPC_RecordChild1, // #3 = $src2
/*444536*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444538*/              OPC_CheckPredicate, 9, // Predicate_load
/*444540*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*444542*/              OPC_CheckType, MVT::v8i64,
/*444544*/              OPC_MoveParent,
/*444545*/              OPC_MoveParent,
/*444546*/              OPC_MoveParent,
/*444547*/              OPC_MoveChild2,
/*444548*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444551*/              OPC_MoveChild0,
/*444552*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444555*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444557*/              OPC_CheckType, MVT::v16i32,
/*444559*/              OPC_MoveParent,
/*444560*/              OPC_MoveParent,
/*444561*/              OPC_CheckType, MVT::v16f32,
/*444563*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444565*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444568*/              OPC_EmitMergeInputChains1_2,
/*444569*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMILPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444582*/            /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->444637
/*444585*/              OPC_MoveChild0,
/*444586*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444589*/              OPC_RecordMemRef,
/*444590*/              OPC_RecordNode, // #2 = 'ld' chained node
/*444591*/              OPC_CheckFoldableChainNode,
/*444592*/              OPC_RecordChild1, // #3 = $src2
/*444593*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444595*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*444597*/              OPC_CheckType, MVT::i32,
/*444599*/              OPC_MoveParent,
/*444600*/              OPC_MoveParent,
/*444601*/              OPC_MoveParent,
/*444602*/              OPC_MoveChild2,
/*444603*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444606*/              OPC_MoveChild0,
/*444607*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444610*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444612*/              OPC_CheckType, MVT::v16i32,
/*444614*/              OPC_MoveParent,
/*444615*/              OPC_MoveParent,
/*444616*/              OPC_CheckType, MVT::v16f32,
/*444618*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444620*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444623*/              OPC_EmitMergeInputChains1_2,
/*444624*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMILPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*444637*/            0, // EndSwitchOpcode
/*444638*/          /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VPERMILPI),// ->444753
/*444641*/            OPC_MoveChild0,
/*444642*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->444701
/*444646*/              OPC_RecordMemRef,
/*444647*/              OPC_RecordNode, // #1 = 'ld' chained node
/*444648*/              OPC_CheckFoldableChainNode,
/*444649*/              OPC_RecordChild1, // #2 = $src1
/*444650*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444652*/              OPC_CheckPredicate, 9, // Predicate_load
/*444654*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*444656*/              OPC_MoveParent,
/*444657*/              OPC_RecordChild1, // #3 = $src2
/*444658*/              OPC_MoveChild1,
/*444659*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*444662*/              OPC_MoveParent,
/*444663*/              OPC_MoveParent,
/*444664*/              OPC_MoveChild2,
/*444665*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444668*/              OPC_MoveChild0,
/*444669*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444672*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444674*/              OPC_CheckType, MVT::v16i32,
/*444676*/              OPC_MoveParent,
/*444677*/              OPC_MoveParent,
/*444678*/              OPC_CheckType, MVT::v16f32,
/*444680*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444682*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*444685*/              OPC_EmitMergeInputChains1_1,
/*444686*/              OPC_EmitConvertToTarget, 3,
/*444688*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VPERMILPSZmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*444701*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->444752
/*444704*/              OPC_MoveChild0,
/*444705*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444708*/              OPC_RecordMemRef,
/*444709*/              OPC_RecordNode, // #1 = 'ld' chained node
/*444710*/              OPC_CheckFoldableChainNode,
/*444711*/              OPC_RecordChild1, // #2 = $src1
/*444712*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444714*/              OPC_CheckPredicate, 9, // Predicate_load
/*444716*/              OPC_CheckType, MVT::f32,
/*444718*/              OPC_MoveParent,
/*444719*/              OPC_MoveParent,
/*444720*/              OPC_RecordChild1, // #3 = $src2
/*444721*/              OPC_MoveChild1,
/*444722*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*444725*/              OPC_MoveParent,
/*444726*/              OPC_MoveParent,
/*444727*/              OPC_RecordChild2, // #4 = $src0
/*444728*/              OPC_CheckType, MVT::v16f32,
/*444730*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444732*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*444735*/              OPC_EmitMergeInputChains1_1,
/*444736*/              OPC_EmitConvertToTarget, 3,
/*444738*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 34
                        // Dst: (VPERMILPSZmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*444752*/            0, // EndSwitchOpcode
/*444753*/          /*SwitchOpcode*/ 99|128,2/*355*/, TARGET_VAL(ISD::FMA),// ->445112
/*444757*/            OPC_Scope, 123, /*->444882*/ // 4 children in Scope
/*444759*/              OPC_RecordChild0, // #1 = $src2
/*444760*/              OPC_Scope, 60, /*->444822*/ // 2 children in Scope
/*444762*/                OPC_RecordChild1, // #2 = $src1
/*444763*/                OPC_MoveChild2,
/*444764*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*444767*/                OPC_MoveChild0,
/*444768*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444771*/                OPC_RecordMemRef,
/*444772*/                OPC_RecordNode, // #3 = 'ld' chained node
/*444773*/                OPC_CheckFoldableChainNode,
/*444774*/                OPC_RecordChild1, // #4 = $src3
/*444775*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444777*/                OPC_CheckPredicate, 9, // Predicate_load
/*444779*/                OPC_CheckType, MVT::f32,
/*444781*/                OPC_MoveParent,
/*444782*/                OPC_MoveParent,
/*444783*/                OPC_MoveParent,
/*444784*/                OPC_MoveChild2,
/*444785*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444788*/                OPC_MoveChild0,
/*444789*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444792*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444794*/                OPC_CheckType, MVT::v16i32,
/*444796*/                OPC_MoveParent,
/*444797*/                OPC_MoveParent,
/*444798*/                OPC_CheckType, MVT::v16f32,
/*444800*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444802*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*444805*/                OPC_EmitMergeInputChains, 1, 3, 
/*444808*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADD213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*444822*/              /*Scope*/ 58, /*->444881*/
/*444823*/                OPC_MoveChild1,
/*444824*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*444827*/                OPC_MoveChild0,
/*444828*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444831*/                OPC_RecordMemRef,
/*444832*/                OPC_RecordNode, // #2 = 'ld' chained node
/*444833*/                OPC_CheckFoldableChainNode,
/*444834*/                OPC_RecordChild1, // #3 = $src3
/*444835*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444837*/                OPC_CheckPredicate, 9, // Predicate_load
/*444839*/                OPC_CheckType, MVT::f32,
/*444841*/                OPC_MoveParent,
/*444842*/                OPC_MoveParent,
/*444843*/                OPC_RecordChild2, // #4 = $src1
/*444844*/                OPC_MoveParent,
/*444845*/                OPC_MoveChild2,
/*444846*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444849*/                OPC_MoveChild0,
/*444850*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444853*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444855*/                OPC_CheckType, MVT::v16i32,
/*444857*/                OPC_MoveParent,
/*444858*/                OPC_MoveParent,
/*444859*/                OPC_CheckType, MVT::v16f32,
/*444861*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444863*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*444866*/                OPC_EmitMergeInputChains1_2,
/*444867*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADD231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*444881*/              0, /*End of Scope*/
/*444882*/            /*Scope*/ 59, /*->444942*/
/*444883*/              OPC_MoveChild0,
/*444884*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*444887*/              OPC_MoveChild0,
/*444888*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444891*/              OPC_RecordMemRef,
/*444892*/              OPC_RecordNode, // #1 = 'ld' chained node
/*444893*/              OPC_CheckFoldableChainNode,
/*444894*/              OPC_RecordChild1, // #2 = $src3
/*444895*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444897*/              OPC_CheckPredicate, 9, // Predicate_load
/*444899*/              OPC_CheckType, MVT::f32,
/*444901*/              OPC_MoveParent,
/*444902*/              OPC_MoveParent,
/*444903*/              OPC_RecordChild1, // #3 = $src1
/*444904*/              OPC_RecordChild2, // #4 = $src2
/*444905*/              OPC_MoveParent,
/*444906*/              OPC_MoveChild2,
/*444907*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444910*/              OPC_MoveChild0,
/*444911*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444914*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444916*/              OPC_CheckType, MVT::v16i32,
/*444918*/              OPC_MoveParent,
/*444919*/              OPC_MoveParent,
/*444920*/              OPC_CheckType, MVT::v16f32,
/*444922*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444924*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*444927*/              OPC_EmitMergeInputChains1_1,
/*444928*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFMADD132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*444942*/            /*Scope*/ 113, /*->445056*/
/*444943*/              OPC_RecordChild0, // #1 = $src2
/*444944*/              OPC_Scope, 55, /*->445001*/ // 2 children in Scope
/*444946*/                OPC_RecordChild1, // #2 = $src1
/*444947*/                OPC_MoveChild2,
/*444948*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444951*/                OPC_RecordMemRef,
/*444952*/                OPC_RecordNode, // #3 = 'ld' chained node
/*444953*/                OPC_CheckFoldableChainNode,
/*444954*/                OPC_RecordChild1, // #4 = $src3
/*444955*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444957*/                OPC_CheckPredicate, 9, // Predicate_load
/*444959*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*444961*/                OPC_MoveParent,
/*444962*/                OPC_MoveParent,
/*444963*/                OPC_MoveChild2,
/*444964*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*444967*/                OPC_MoveChild0,
/*444968*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*444971*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*444973*/                OPC_CheckType, MVT::v16i32,
/*444975*/                OPC_MoveParent,
/*444976*/                OPC_MoveParent,
/*444977*/                OPC_CheckType, MVT::v16f32,
/*444979*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444981*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*444984*/                OPC_EmitMergeInputChains, 1, 3, 
/*444987*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADD213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445001*/              /*Scope*/ 53, /*->445055*/
/*445002*/                OPC_MoveChild1,
/*445003*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445006*/                OPC_RecordMemRef,
/*445007*/                OPC_RecordNode, // #2 = 'ld' chained node
/*445008*/                OPC_CheckFoldableChainNode,
/*445009*/                OPC_RecordChild1, // #3 = $src3
/*445010*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445012*/                OPC_CheckPredicate, 9, // Predicate_load
/*445014*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*445016*/                OPC_MoveParent,
/*445017*/                OPC_RecordChild2, // #4 = $src1
/*445018*/                OPC_MoveParent,
/*445019*/                OPC_MoveChild2,
/*445020*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445023*/                OPC_MoveChild0,
/*445024*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445027*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445029*/                OPC_CheckType, MVT::v16i32,
/*445031*/                OPC_MoveParent,
/*445032*/                OPC_MoveParent,
/*445033*/                OPC_CheckType, MVT::v16f32,
/*445035*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445037*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445040*/                OPC_EmitMergeInputChains1_2,
/*445041*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADD231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445055*/              0, /*End of Scope*/
/*445056*/            /*Scope*/ 54, /*->445111*/
/*445057*/              OPC_MoveChild0,
/*445058*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445061*/              OPC_RecordMemRef,
/*445062*/              OPC_RecordNode, // #1 = 'ld' chained node
/*445063*/              OPC_CheckFoldableChainNode,
/*445064*/              OPC_RecordChild1, // #2 = $src3
/*445065*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445067*/              OPC_CheckPredicate, 9, // Predicate_load
/*445069*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*445071*/              OPC_MoveParent,
/*445072*/              OPC_RecordChild1, // #3 = $src1
/*445073*/              OPC_RecordChild2, // #4 = $src2
/*445074*/              OPC_MoveParent,
/*445075*/              OPC_MoveChild2,
/*445076*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445079*/              OPC_MoveChild0,
/*445080*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445083*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445085*/              OPC_CheckType, MVT::v16i32,
/*445087*/              OPC_MoveParent,
/*445088*/              OPC_MoveParent,
/*445089*/              OPC_CheckType, MVT::v16f32,
/*445091*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445093*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445096*/              OPC_EmitMergeInputChains1_1,
/*445097*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFMADD132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445111*/            0, /*End of Scope*/
/*445112*/          /*SwitchOpcode*/ 99|128,2/*355*/, TARGET_VAL(X86ISD::FMSUB),// ->445471
/*445116*/            OPC_Scope, 123, /*->445241*/ // 4 children in Scope
/*445118*/              OPC_RecordChild0, // #1 = $src2
/*445119*/              OPC_Scope, 60, /*->445181*/ // 2 children in Scope
/*445121*/                OPC_RecordChild1, // #2 = $src1
/*445122*/                OPC_MoveChild2,
/*445123*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*445126*/                OPC_MoveChild0,
/*445127*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445130*/                OPC_RecordMemRef,
/*445131*/                OPC_RecordNode, // #3 = 'ld' chained node
/*445132*/                OPC_CheckFoldableChainNode,
/*445133*/                OPC_RecordChild1, // #4 = $src3
/*445134*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445136*/                OPC_CheckPredicate, 9, // Predicate_load
/*445138*/                OPC_CheckType, MVT::f32,
/*445140*/                OPC_MoveParent,
/*445141*/                OPC_MoveParent,
/*445142*/                OPC_MoveParent,
/*445143*/                OPC_MoveChild2,
/*445144*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445147*/                OPC_MoveChild0,
/*445148*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445151*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445153*/                OPC_CheckType, MVT::v16i32,
/*445155*/                OPC_MoveParent,
/*445156*/                OPC_MoveParent,
/*445157*/                OPC_CheckType, MVT::v16f32,
/*445159*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445161*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445164*/                OPC_EmitMergeInputChains, 1, 3, 
/*445167*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUB213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445181*/              /*Scope*/ 58, /*->445240*/
/*445182*/                OPC_MoveChild1,
/*445183*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*445186*/                OPC_MoveChild0,
/*445187*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445190*/                OPC_RecordMemRef,
/*445191*/                OPC_RecordNode, // #2 = 'ld' chained node
/*445192*/                OPC_CheckFoldableChainNode,
/*445193*/                OPC_RecordChild1, // #3 = $src3
/*445194*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445196*/                OPC_CheckPredicate, 9, // Predicate_load
/*445198*/                OPC_CheckType, MVT::f32,
/*445200*/                OPC_MoveParent,
/*445201*/                OPC_MoveParent,
/*445202*/                OPC_RecordChild2, // #4 = $src1
/*445203*/                OPC_MoveParent,
/*445204*/                OPC_MoveChild2,
/*445205*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445208*/                OPC_MoveChild0,
/*445209*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445212*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445214*/                OPC_CheckType, MVT::v16i32,
/*445216*/                OPC_MoveParent,
/*445217*/                OPC_MoveParent,
/*445218*/                OPC_CheckType, MVT::v16f32,
/*445220*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445222*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445225*/                OPC_EmitMergeInputChains1_2,
/*445226*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUB231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445240*/              0, /*End of Scope*/
/*445241*/            /*Scope*/ 59, /*->445301*/
/*445242*/              OPC_MoveChild0,
/*445243*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*445246*/              OPC_MoveChild0,
/*445247*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445250*/              OPC_RecordMemRef,
/*445251*/              OPC_RecordNode, // #1 = 'ld' chained node
/*445252*/              OPC_CheckFoldableChainNode,
/*445253*/              OPC_RecordChild1, // #2 = $src3
/*445254*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445256*/              OPC_CheckPredicate, 9, // Predicate_load
/*445258*/              OPC_CheckType, MVT::f32,
/*445260*/              OPC_MoveParent,
/*445261*/              OPC_MoveParent,
/*445262*/              OPC_RecordChild1, // #3 = $src1
/*445263*/              OPC_RecordChild2, // #4 = $src2
/*445264*/              OPC_MoveParent,
/*445265*/              OPC_MoveChild2,
/*445266*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445269*/              OPC_MoveChild0,
/*445270*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445273*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445275*/              OPC_CheckType, MVT::v16i32,
/*445277*/              OPC_MoveParent,
/*445278*/              OPC_MoveParent,
/*445279*/              OPC_CheckType, MVT::v16f32,
/*445281*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445283*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445286*/              OPC_EmitMergeInputChains1_1,
/*445287*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFMSUB132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445301*/            /*Scope*/ 113, /*->445415*/
/*445302*/              OPC_RecordChild0, // #1 = $src2
/*445303*/              OPC_Scope, 55, /*->445360*/ // 2 children in Scope
/*445305*/                OPC_RecordChild1, // #2 = $src1
/*445306*/                OPC_MoveChild2,
/*445307*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445310*/                OPC_RecordMemRef,
/*445311*/                OPC_RecordNode, // #3 = 'ld' chained node
/*445312*/                OPC_CheckFoldableChainNode,
/*445313*/                OPC_RecordChild1, // #4 = $src3
/*445314*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445316*/                OPC_CheckPredicate, 9, // Predicate_load
/*445318*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*445320*/                OPC_MoveParent,
/*445321*/                OPC_MoveParent,
/*445322*/                OPC_MoveChild2,
/*445323*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445326*/                OPC_MoveChild0,
/*445327*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445330*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445332*/                OPC_CheckType, MVT::v16i32,
/*445334*/                OPC_MoveParent,
/*445335*/                OPC_MoveParent,
/*445336*/                OPC_CheckType, MVT::v16f32,
/*445338*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445340*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445343*/                OPC_EmitMergeInputChains, 1, 3, 
/*445346*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUB213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445360*/              /*Scope*/ 53, /*->445414*/
/*445361*/                OPC_MoveChild1,
/*445362*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445365*/                OPC_RecordMemRef,
/*445366*/                OPC_RecordNode, // #2 = 'ld' chained node
/*445367*/                OPC_CheckFoldableChainNode,
/*445368*/                OPC_RecordChild1, // #3 = $src3
/*445369*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445371*/                OPC_CheckPredicate, 9, // Predicate_load
/*445373*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*445375*/                OPC_MoveParent,
/*445376*/                OPC_RecordChild2, // #4 = $src1
/*445377*/                OPC_MoveParent,
/*445378*/                OPC_MoveChild2,
/*445379*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445382*/                OPC_MoveChild0,
/*445383*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445386*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445388*/                OPC_CheckType, MVT::v16i32,
/*445390*/                OPC_MoveParent,
/*445391*/                OPC_MoveParent,
/*445392*/                OPC_CheckType, MVT::v16f32,
/*445394*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445396*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445399*/                OPC_EmitMergeInputChains1_2,
/*445400*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUB231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445414*/              0, /*End of Scope*/
/*445415*/            /*Scope*/ 54, /*->445470*/
/*445416*/              OPC_MoveChild0,
/*445417*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445420*/              OPC_RecordMemRef,
/*445421*/              OPC_RecordNode, // #1 = 'ld' chained node
/*445422*/              OPC_CheckFoldableChainNode,
/*445423*/              OPC_RecordChild1, // #2 = $src3
/*445424*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445426*/              OPC_CheckPredicate, 9, // Predicate_load
/*445428*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*445430*/              OPC_MoveParent,
/*445431*/              OPC_RecordChild1, // #3 = $src1
/*445432*/              OPC_RecordChild2, // #4 = $src2
/*445433*/              OPC_MoveParent,
/*445434*/              OPC_MoveChild2,
/*445435*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445438*/              OPC_MoveChild0,
/*445439*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445442*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445444*/              OPC_CheckType, MVT::v16i32,
/*445446*/              OPC_MoveParent,
/*445447*/              OPC_MoveParent,
/*445448*/              OPC_CheckType, MVT::v16f32,
/*445450*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445452*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445455*/              OPC_EmitMergeInputChains1_1,
/*445456*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFMSUB132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445470*/            0, /*End of Scope*/
/*445471*/          /*SwitchOpcode*/ 99|128,2/*355*/, TARGET_VAL(X86ISD::FMADDSUB),// ->445830
/*445475*/            OPC_Scope, 123, /*->445600*/ // 4 children in Scope
/*445477*/              OPC_RecordChild0, // #1 = $src2
/*445478*/              OPC_Scope, 60, /*->445540*/ // 2 children in Scope
/*445480*/                OPC_RecordChild1, // #2 = $src1
/*445481*/                OPC_MoveChild2,
/*445482*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*445485*/                OPC_MoveChild0,
/*445486*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445489*/                OPC_RecordMemRef,
/*445490*/                OPC_RecordNode, // #3 = 'ld' chained node
/*445491*/                OPC_CheckFoldableChainNode,
/*445492*/                OPC_RecordChild1, // #4 = $src3
/*445493*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445495*/                OPC_CheckPredicate, 9, // Predicate_load
/*445497*/                OPC_CheckType, MVT::f32,
/*445499*/                OPC_MoveParent,
/*445500*/                OPC_MoveParent,
/*445501*/                OPC_MoveParent,
/*445502*/                OPC_MoveChild2,
/*445503*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445506*/                OPC_MoveChild0,
/*445507*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445510*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445512*/                OPC_CheckType, MVT::v16i32,
/*445514*/                OPC_MoveParent,
/*445515*/                OPC_MoveParent,
/*445516*/                OPC_CheckType, MVT::v16f32,
/*445518*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445520*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445523*/                OPC_EmitMergeInputChains, 1, 3, 
/*445526*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADDSUB213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445540*/              /*Scope*/ 58, /*->445599*/
/*445541*/                OPC_MoveChild1,
/*445542*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*445545*/                OPC_MoveChild0,
/*445546*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445549*/                OPC_RecordMemRef,
/*445550*/                OPC_RecordNode, // #2 = 'ld' chained node
/*445551*/                OPC_CheckFoldableChainNode,
/*445552*/                OPC_RecordChild1, // #3 = $src3
/*445553*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445555*/                OPC_CheckPredicate, 9, // Predicate_load
/*445557*/                OPC_CheckType, MVT::f32,
/*445559*/                OPC_MoveParent,
/*445560*/                OPC_MoveParent,
/*445561*/                OPC_RecordChild2, // #4 = $src1
/*445562*/                OPC_MoveParent,
/*445563*/                OPC_MoveChild2,
/*445564*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445567*/                OPC_MoveChild0,
/*445568*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445571*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445573*/                OPC_CheckType, MVT::v16i32,
/*445575*/                OPC_MoveParent,
/*445576*/                OPC_MoveParent,
/*445577*/                OPC_CheckType, MVT::v16f32,
/*445579*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445581*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445584*/                OPC_EmitMergeInputChains1_2,
/*445585*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMADDSUB231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445599*/              0, /*End of Scope*/
/*445600*/            /*Scope*/ 59, /*->445660*/
/*445601*/              OPC_MoveChild0,
/*445602*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*445605*/              OPC_MoveChild0,
/*445606*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445609*/              OPC_RecordMemRef,
/*445610*/              OPC_RecordNode, // #1 = 'ld' chained node
/*445611*/              OPC_CheckFoldableChainNode,
/*445612*/              OPC_RecordChild1, // #2 = $src3
/*445613*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445615*/              OPC_CheckPredicate, 9, // Predicate_load
/*445617*/              OPC_CheckType, MVT::f32,
/*445619*/              OPC_MoveParent,
/*445620*/              OPC_MoveParent,
/*445621*/              OPC_RecordChild1, // #3 = $src1
/*445622*/              OPC_RecordChild2, // #4 = $src2
/*445623*/              OPC_MoveParent,
/*445624*/              OPC_MoveChild2,
/*445625*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445628*/              OPC_MoveChild0,
/*445629*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445632*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445634*/              OPC_CheckType, MVT::v16i32,
/*445636*/              OPC_MoveParent,
/*445637*/              OPC_MoveParent,
/*445638*/              OPC_CheckType, MVT::v16f32,
/*445640*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445642*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445645*/              OPC_EmitMergeInputChains1_1,
/*445646*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFMADDSUB132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445660*/            /*Scope*/ 113, /*->445774*/
/*445661*/              OPC_RecordChild0, // #1 = $src2
/*445662*/              OPC_Scope, 55, /*->445719*/ // 2 children in Scope
/*445664*/                OPC_RecordChild1, // #2 = $src1
/*445665*/                OPC_MoveChild2,
/*445666*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445669*/                OPC_RecordMemRef,
/*445670*/                OPC_RecordNode, // #3 = 'ld' chained node
/*445671*/                OPC_CheckFoldableChainNode,
/*445672*/                OPC_RecordChild1, // #4 = $src3
/*445673*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445675*/                OPC_CheckPredicate, 9, // Predicate_load
/*445677*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*445679*/                OPC_MoveParent,
/*445680*/                OPC_MoveParent,
/*445681*/                OPC_MoveChild2,
/*445682*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445685*/                OPC_MoveChild0,
/*445686*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445689*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445691*/                OPC_CheckType, MVT::v16i32,
/*445693*/                OPC_MoveParent,
/*445694*/                OPC_MoveParent,
/*445695*/                OPC_CheckType, MVT::v16f32,
/*445697*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445699*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445702*/                OPC_EmitMergeInputChains, 1, 3, 
/*445705*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADDSUB213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445719*/              /*Scope*/ 53, /*->445773*/
/*445720*/                OPC_MoveChild1,
/*445721*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445724*/                OPC_RecordMemRef,
/*445725*/                OPC_RecordNode, // #2 = 'ld' chained node
/*445726*/                OPC_CheckFoldableChainNode,
/*445727*/                OPC_RecordChild1, // #3 = $src3
/*445728*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445730*/                OPC_CheckPredicate, 9, // Predicate_load
/*445732*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*445734*/                OPC_MoveParent,
/*445735*/                OPC_RecordChild2, // #4 = $src1
/*445736*/                OPC_MoveParent,
/*445737*/                OPC_MoveChild2,
/*445738*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445741*/                OPC_MoveChild0,
/*445742*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445745*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445747*/                OPC_CheckType, MVT::v16i32,
/*445749*/                OPC_MoveParent,
/*445750*/                OPC_MoveParent,
/*445751*/                OPC_CheckType, MVT::v16f32,
/*445753*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445755*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445758*/                OPC_EmitMergeInputChains1_2,
/*445759*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMADDSUB231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445773*/              0, /*End of Scope*/
/*445774*/            /*Scope*/ 54, /*->445829*/
/*445775*/              OPC_MoveChild0,
/*445776*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445779*/              OPC_RecordMemRef,
/*445780*/              OPC_RecordNode, // #1 = 'ld' chained node
/*445781*/              OPC_CheckFoldableChainNode,
/*445782*/              OPC_RecordChild1, // #2 = $src3
/*445783*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445785*/              OPC_CheckPredicate, 9, // Predicate_load
/*445787*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*445789*/              OPC_MoveParent,
/*445790*/              OPC_RecordChild1, // #3 = $src1
/*445791*/              OPC_RecordChild2, // #4 = $src2
/*445792*/              OPC_MoveParent,
/*445793*/              OPC_MoveChild2,
/*445794*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445797*/              OPC_MoveChild0,
/*445798*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445801*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445803*/              OPC_CheckType, MVT::v16i32,
/*445805*/              OPC_MoveParent,
/*445806*/              OPC_MoveParent,
/*445807*/              OPC_CheckType, MVT::v16f32,
/*445809*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445811*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445814*/              OPC_EmitMergeInputChains1_1,
/*445815*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFMADDSUB132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445829*/            0, /*End of Scope*/
/*445830*/          /*SwitchOpcode*/ 99|128,2/*355*/, TARGET_VAL(X86ISD::FMSUBADD),// ->446189
/*445834*/            OPC_Scope, 123, /*->445959*/ // 4 children in Scope
/*445836*/              OPC_RecordChild0, // #1 = $src2
/*445837*/              OPC_Scope, 60, /*->445899*/ // 2 children in Scope
/*445839*/                OPC_RecordChild1, // #2 = $src1
/*445840*/                OPC_MoveChild2,
/*445841*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*445844*/                OPC_MoveChild0,
/*445845*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445848*/                OPC_RecordMemRef,
/*445849*/                OPC_RecordNode, // #3 = 'ld' chained node
/*445850*/                OPC_CheckFoldableChainNode,
/*445851*/                OPC_RecordChild1, // #4 = $src3
/*445852*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445854*/                OPC_CheckPredicate, 9, // Predicate_load
/*445856*/                OPC_CheckType, MVT::f32,
/*445858*/                OPC_MoveParent,
/*445859*/                OPC_MoveParent,
/*445860*/                OPC_MoveParent,
/*445861*/                OPC_MoveChild2,
/*445862*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445865*/                OPC_MoveChild0,
/*445866*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445869*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445871*/                OPC_CheckType, MVT::v16i32,
/*445873*/                OPC_MoveParent,
/*445874*/                OPC_MoveParent,
/*445875*/                OPC_CheckType, MVT::v16f32,
/*445877*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445879*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445882*/                OPC_EmitMergeInputChains, 1, 3, 
/*445885*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUBADD213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445899*/              /*Scope*/ 58, /*->445958*/
/*445900*/                OPC_MoveChild1,
/*445901*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*445904*/                OPC_MoveChild0,
/*445905*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445908*/                OPC_RecordMemRef,
/*445909*/                OPC_RecordNode, // #2 = 'ld' chained node
/*445910*/                OPC_CheckFoldableChainNode,
/*445911*/                OPC_RecordChild1, // #3 = $src3
/*445912*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445914*/                OPC_CheckPredicate, 9, // Predicate_load
/*445916*/                OPC_CheckType, MVT::f32,
/*445918*/                OPC_MoveParent,
/*445919*/                OPC_MoveParent,
/*445920*/                OPC_RecordChild2, // #4 = $src1
/*445921*/                OPC_MoveParent,
/*445922*/                OPC_MoveChild2,
/*445923*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445926*/                OPC_MoveChild0,
/*445927*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445930*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445932*/                OPC_CheckType, MVT::v16i32,
/*445934*/                OPC_MoveParent,
/*445935*/                OPC_MoveParent,
/*445936*/                OPC_CheckType, MVT::v16f32,
/*445938*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*445940*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*445943*/                OPC_EmitMergeInputChains1_2,
/*445944*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFMSUBADD231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*445958*/              0, /*End of Scope*/
/*445959*/            /*Scope*/ 59, /*->446019*/
/*445960*/              OPC_MoveChild0,
/*445961*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*445964*/              OPC_MoveChild0,
/*445965*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445968*/              OPC_RecordMemRef,
/*445969*/              OPC_RecordNode, // #1 = 'ld' chained node
/*445970*/              OPC_CheckFoldableChainNode,
/*445971*/              OPC_RecordChild1, // #2 = $src3
/*445972*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445974*/              OPC_CheckPredicate, 9, // Predicate_load
/*445976*/              OPC_CheckType, MVT::f32,
/*445978*/              OPC_MoveParent,
/*445979*/              OPC_MoveParent,
/*445980*/              OPC_RecordChild1, // #3 = $src1
/*445981*/              OPC_RecordChild2, // #4 = $src2
/*445982*/              OPC_MoveParent,
/*445983*/              OPC_MoveChild2,
/*445984*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*445987*/              OPC_MoveChild0,
/*445988*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*445991*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*445993*/              OPC_CheckType, MVT::v16i32,
/*445995*/              OPC_MoveParent,
/*445996*/              OPC_MoveParent,
/*445997*/              OPC_CheckType, MVT::v16f32,
/*445999*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446001*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446004*/              OPC_EmitMergeInputChains1_1,
/*446005*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFMSUBADD132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446019*/            /*Scope*/ 113, /*->446133*/
/*446020*/              OPC_RecordChild0, // #1 = $src2
/*446021*/              OPC_Scope, 55, /*->446078*/ // 2 children in Scope
/*446023*/                OPC_RecordChild1, // #2 = $src1
/*446024*/                OPC_MoveChild2,
/*446025*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446028*/                OPC_RecordMemRef,
/*446029*/                OPC_RecordNode, // #3 = 'ld' chained node
/*446030*/                OPC_CheckFoldableChainNode,
/*446031*/                OPC_RecordChild1, // #4 = $src3
/*446032*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446034*/                OPC_CheckPredicate, 9, // Predicate_load
/*446036*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*446038*/                OPC_MoveParent,
/*446039*/                OPC_MoveParent,
/*446040*/                OPC_MoveChild2,
/*446041*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446044*/                OPC_MoveChild0,
/*446045*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446048*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446050*/                OPC_CheckType, MVT::v16i32,
/*446052*/                OPC_MoveParent,
/*446053*/                OPC_MoveParent,
/*446054*/                OPC_CheckType, MVT::v16f32,
/*446056*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446058*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446061*/                OPC_EmitMergeInputChains, 1, 3, 
/*446064*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUBADD213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446078*/              /*Scope*/ 53, /*->446132*/
/*446079*/                OPC_MoveChild1,
/*446080*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446083*/                OPC_RecordMemRef,
/*446084*/                OPC_RecordNode, // #2 = 'ld' chained node
/*446085*/                OPC_CheckFoldableChainNode,
/*446086*/                OPC_RecordChild1, // #3 = $src3
/*446087*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446089*/                OPC_CheckPredicate, 9, // Predicate_load
/*446091*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*446093*/                OPC_MoveParent,
/*446094*/                OPC_RecordChild2, // #4 = $src1
/*446095*/                OPC_MoveParent,
/*446096*/                OPC_MoveChild2,
/*446097*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446100*/                OPC_MoveChild0,
/*446101*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446104*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446106*/                OPC_CheckType, MVT::v16i32,
/*446108*/                OPC_MoveParent,
/*446109*/                OPC_MoveParent,
/*446110*/                OPC_CheckType, MVT::v16f32,
/*446112*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446114*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446117*/                OPC_EmitMergeInputChains1_2,
/*446118*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFMSUBADD231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446132*/              0, /*End of Scope*/
/*446133*/            /*Scope*/ 54, /*->446188*/
/*446134*/              OPC_MoveChild0,
/*446135*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446138*/              OPC_RecordMemRef,
/*446139*/              OPC_RecordNode, // #1 = 'ld' chained node
/*446140*/              OPC_CheckFoldableChainNode,
/*446141*/              OPC_RecordChild1, // #2 = $src3
/*446142*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446144*/              OPC_CheckPredicate, 9, // Predicate_load
/*446146*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*446148*/              OPC_MoveParent,
/*446149*/              OPC_RecordChild1, // #3 = $src1
/*446150*/              OPC_RecordChild2, // #4 = $src2
/*446151*/              OPC_MoveParent,
/*446152*/              OPC_MoveChild2,
/*446153*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446156*/              OPC_MoveChild0,
/*446157*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446160*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446162*/              OPC_CheckType, MVT::v16i32,
/*446164*/              OPC_MoveParent,
/*446165*/              OPC_MoveParent,
/*446166*/              OPC_CheckType, MVT::v16f32,
/*446168*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446170*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446173*/              OPC_EmitMergeInputChains1_1,
/*446174*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFMSUBADD132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446188*/            0, /*End of Scope*/
/*446189*/          /*SwitchOpcode*/ 99|128,2/*355*/, TARGET_VAL(X86ISD::FNMADD),// ->446548
/*446193*/            OPC_Scope, 123, /*->446318*/ // 4 children in Scope
/*446195*/              OPC_RecordChild0, // #1 = $src2
/*446196*/              OPC_Scope, 60, /*->446258*/ // 2 children in Scope
/*446198*/                OPC_RecordChild1, // #2 = $src1
/*446199*/                OPC_MoveChild2,
/*446200*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*446203*/                OPC_MoveChild0,
/*446204*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446207*/                OPC_RecordMemRef,
/*446208*/                OPC_RecordNode, // #3 = 'ld' chained node
/*446209*/                OPC_CheckFoldableChainNode,
/*446210*/                OPC_RecordChild1, // #4 = $src3
/*446211*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446213*/                OPC_CheckPredicate, 9, // Predicate_load
/*446215*/                OPC_CheckType, MVT::f32,
/*446217*/                OPC_MoveParent,
/*446218*/                OPC_MoveParent,
/*446219*/                OPC_MoveParent,
/*446220*/                OPC_MoveChild2,
/*446221*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446224*/                OPC_MoveChild0,
/*446225*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446228*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446230*/                OPC_CheckType, MVT::v16i32,
/*446232*/                OPC_MoveParent,
/*446233*/                OPC_MoveParent,
/*446234*/                OPC_CheckType, MVT::v16f32,
/*446236*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446238*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446241*/                OPC_EmitMergeInputChains, 1, 3, 
/*446244*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMADD213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446258*/              /*Scope*/ 58, /*->446317*/
/*446259*/                OPC_MoveChild1,
/*446260*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*446263*/                OPC_MoveChild0,
/*446264*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446267*/                OPC_RecordMemRef,
/*446268*/                OPC_RecordNode, // #2 = 'ld' chained node
/*446269*/                OPC_CheckFoldableChainNode,
/*446270*/                OPC_RecordChild1, // #3 = $src3
/*446271*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446273*/                OPC_CheckPredicate, 9, // Predicate_load
/*446275*/                OPC_CheckType, MVT::f32,
/*446277*/                OPC_MoveParent,
/*446278*/                OPC_MoveParent,
/*446279*/                OPC_RecordChild2, // #4 = $src1
/*446280*/                OPC_MoveParent,
/*446281*/                OPC_MoveChild2,
/*446282*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446285*/                OPC_MoveChild0,
/*446286*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446289*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446291*/                OPC_CheckType, MVT::v16i32,
/*446293*/                OPC_MoveParent,
/*446294*/                OPC_MoveParent,
/*446295*/                OPC_CheckType, MVT::v16f32,
/*446297*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446299*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446302*/                OPC_EmitMergeInputChains1_2,
/*446303*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMADD231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446317*/              0, /*End of Scope*/
/*446318*/            /*Scope*/ 59, /*->446378*/
/*446319*/              OPC_MoveChild0,
/*446320*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*446323*/              OPC_MoveChild0,
/*446324*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446327*/              OPC_RecordMemRef,
/*446328*/              OPC_RecordNode, // #1 = 'ld' chained node
/*446329*/              OPC_CheckFoldableChainNode,
/*446330*/              OPC_RecordChild1, // #2 = $src3
/*446331*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446333*/              OPC_CheckPredicate, 9, // Predicate_load
/*446335*/              OPC_CheckType, MVT::f32,
/*446337*/              OPC_MoveParent,
/*446338*/              OPC_MoveParent,
/*446339*/              OPC_RecordChild1, // #3 = $src1
/*446340*/              OPC_RecordChild2, // #4 = $src2
/*446341*/              OPC_MoveParent,
/*446342*/              OPC_MoveChild2,
/*446343*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446346*/              OPC_MoveChild0,
/*446347*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446350*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446352*/              OPC_CheckType, MVT::v16i32,
/*446354*/              OPC_MoveParent,
/*446355*/              OPC_MoveParent,
/*446356*/              OPC_CheckType, MVT::v16f32,
/*446358*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446360*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446363*/              OPC_EmitMergeInputChains1_1,
/*446364*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFNMADD132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446378*/            /*Scope*/ 113, /*->446492*/
/*446379*/              OPC_RecordChild0, // #1 = $src2
/*446380*/              OPC_Scope, 55, /*->446437*/ // 2 children in Scope
/*446382*/                OPC_RecordChild1, // #2 = $src1
/*446383*/                OPC_MoveChild2,
/*446384*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446387*/                OPC_RecordMemRef,
/*446388*/                OPC_RecordNode, // #3 = 'ld' chained node
/*446389*/                OPC_CheckFoldableChainNode,
/*446390*/                OPC_RecordChild1, // #4 = $src3
/*446391*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446393*/                OPC_CheckPredicate, 9, // Predicate_load
/*446395*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*446397*/                OPC_MoveParent,
/*446398*/                OPC_MoveParent,
/*446399*/                OPC_MoveChild2,
/*446400*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446403*/                OPC_MoveChild0,
/*446404*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446407*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446409*/                OPC_CheckType, MVT::v16i32,
/*446411*/                OPC_MoveParent,
/*446412*/                OPC_MoveParent,
/*446413*/                OPC_CheckType, MVT::v16f32,
/*446415*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446417*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446420*/                OPC_EmitMergeInputChains, 1, 3, 
/*446423*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMADD213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446437*/              /*Scope*/ 53, /*->446491*/
/*446438*/                OPC_MoveChild1,
/*446439*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446442*/                OPC_RecordMemRef,
/*446443*/                OPC_RecordNode, // #2 = 'ld' chained node
/*446444*/                OPC_CheckFoldableChainNode,
/*446445*/                OPC_RecordChild1, // #3 = $src3
/*446446*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446448*/                OPC_CheckPredicate, 9, // Predicate_load
/*446450*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*446452*/                OPC_MoveParent,
/*446453*/                OPC_RecordChild2, // #4 = $src1
/*446454*/                OPC_MoveParent,
/*446455*/                OPC_MoveChild2,
/*446456*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446459*/                OPC_MoveChild0,
/*446460*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446463*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446465*/                OPC_CheckType, MVT::v16i32,
/*446467*/                OPC_MoveParent,
/*446468*/                OPC_MoveParent,
/*446469*/                OPC_CheckType, MVT::v16f32,
/*446471*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446473*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446476*/                OPC_EmitMergeInputChains1_2,
/*446477*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMADD231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446491*/              0, /*End of Scope*/
/*446492*/            /*Scope*/ 54, /*->446547*/
/*446493*/              OPC_MoveChild0,
/*446494*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446497*/              OPC_RecordMemRef,
/*446498*/              OPC_RecordNode, // #1 = 'ld' chained node
/*446499*/              OPC_CheckFoldableChainNode,
/*446500*/              OPC_RecordChild1, // #2 = $src3
/*446501*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446503*/              OPC_CheckPredicate, 9, // Predicate_load
/*446505*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*446507*/              OPC_MoveParent,
/*446508*/              OPC_RecordChild1, // #3 = $src1
/*446509*/              OPC_RecordChild2, // #4 = $src2
/*446510*/              OPC_MoveParent,
/*446511*/              OPC_MoveChild2,
/*446512*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446515*/              OPC_MoveChild0,
/*446516*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446519*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446521*/              OPC_CheckType, MVT::v16i32,
/*446523*/              OPC_MoveParent,
/*446524*/              OPC_MoveParent,
/*446525*/              OPC_CheckType, MVT::v16f32,
/*446527*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446529*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446532*/              OPC_EmitMergeInputChains1_1,
/*446533*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFNMADD132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446547*/            0, /*End of Scope*/
/*446548*/          /*SwitchOpcode*/ 99|128,2/*355*/, TARGET_VAL(X86ISD::FNMSUB),// ->446907
/*446552*/            OPC_Scope, 123, /*->446677*/ // 4 children in Scope
/*446554*/              OPC_RecordChild0, // #1 = $src2
/*446555*/              OPC_Scope, 60, /*->446617*/ // 2 children in Scope
/*446557*/                OPC_RecordChild1, // #2 = $src1
/*446558*/                OPC_MoveChild2,
/*446559*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*446562*/                OPC_MoveChild0,
/*446563*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446566*/                OPC_RecordMemRef,
/*446567*/                OPC_RecordNode, // #3 = 'ld' chained node
/*446568*/                OPC_CheckFoldableChainNode,
/*446569*/                OPC_RecordChild1, // #4 = $src3
/*446570*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446572*/                OPC_CheckPredicate, 9, // Predicate_load
/*446574*/                OPC_CheckType, MVT::f32,
/*446576*/                OPC_MoveParent,
/*446577*/                OPC_MoveParent,
/*446578*/                OPC_MoveParent,
/*446579*/                OPC_MoveChild2,
/*446580*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446583*/                OPC_MoveChild0,
/*446584*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446587*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446589*/                OPC_CheckType, MVT::v16i32,
/*446591*/                OPC_MoveParent,
/*446592*/                OPC_MoveParent,
/*446593*/                OPC_CheckType, MVT::v16f32,
/*446595*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446597*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446600*/                OPC_EmitMergeInputChains, 1, 3, 
/*446603*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMSUB213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446617*/              /*Scope*/ 58, /*->446676*/
/*446618*/                OPC_MoveChild1,
/*446619*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*446622*/                OPC_MoveChild0,
/*446623*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446626*/                OPC_RecordMemRef,
/*446627*/                OPC_RecordNode, // #2 = 'ld' chained node
/*446628*/                OPC_CheckFoldableChainNode,
/*446629*/                OPC_RecordChild1, // #3 = $src3
/*446630*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446632*/                OPC_CheckPredicate, 9, // Predicate_load
/*446634*/                OPC_CheckType, MVT::f32,
/*446636*/                OPC_MoveParent,
/*446637*/                OPC_MoveParent,
/*446638*/                OPC_RecordChild2, // #4 = $src1
/*446639*/                OPC_MoveParent,
/*446640*/                OPC_MoveChild2,
/*446641*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446644*/                OPC_MoveChild0,
/*446645*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446648*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446650*/                OPC_CheckType, MVT::v16i32,
/*446652*/                OPC_MoveParent,
/*446653*/                OPC_MoveParent,
/*446654*/                OPC_CheckType, MVT::v16f32,
/*446656*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446658*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446661*/                OPC_EmitMergeInputChains1_2,
/*446662*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                          // Dst: (VFNMSUB231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446676*/              0, /*End of Scope*/
/*446677*/            /*Scope*/ 59, /*->446737*/
/*446678*/              OPC_MoveChild0,
/*446679*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*446682*/              OPC_MoveChild0,
/*446683*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446686*/              OPC_RecordMemRef,
/*446687*/              OPC_RecordNode, // #1 = 'ld' chained node
/*446688*/              OPC_CheckFoldableChainNode,
/*446689*/              OPC_RecordChild1, // #2 = $src3
/*446690*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446692*/              OPC_CheckPredicate, 9, // Predicate_load
/*446694*/              OPC_CheckType, MVT::f32,
/*446696*/              OPC_MoveParent,
/*446697*/              OPC_MoveParent,
/*446698*/              OPC_RecordChild1, // #3 = $src1
/*446699*/              OPC_RecordChild2, // #4 = $src2
/*446700*/              OPC_MoveParent,
/*446701*/              OPC_MoveChild2,
/*446702*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446705*/              OPC_MoveChild0,
/*446706*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446709*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446711*/              OPC_CheckType, MVT::v16i32,
/*446713*/              OPC_MoveParent,
/*446714*/              OPC_MoveParent,
/*446715*/              OPC_CheckType, MVT::v16f32,
/*446717*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446719*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446722*/              OPC_EmitMergeInputChains1_1,
/*446723*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VFNMSUB132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446737*/            /*Scope*/ 113, /*->446851*/
/*446738*/              OPC_RecordChild0, // #1 = $src2
/*446739*/              OPC_Scope, 55, /*->446796*/ // 2 children in Scope
/*446741*/                OPC_RecordChild1, // #2 = $src1
/*446742*/                OPC_MoveChild2,
/*446743*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446746*/                OPC_RecordMemRef,
/*446747*/                OPC_RecordNode, // #3 = 'ld' chained node
/*446748*/                OPC_CheckFoldableChainNode,
/*446749*/                OPC_RecordChild1, // #4 = $src3
/*446750*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446752*/                OPC_CheckPredicate, 9, // Predicate_load
/*446754*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*446756*/                OPC_MoveParent,
/*446757*/                OPC_MoveParent,
/*446758*/                OPC_MoveChild2,
/*446759*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446762*/                OPC_MoveChild0,
/*446763*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446766*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446768*/                OPC_CheckType, MVT::v16i32,
/*446770*/                OPC_MoveParent,
/*446771*/                OPC_MoveParent,
/*446772*/                OPC_CheckType, MVT::v16f32,
/*446774*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446776*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446779*/                OPC_EmitMergeInputChains, 1, 3, 
/*446782*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMSUB213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446796*/              /*Scope*/ 53, /*->446850*/
/*446797*/                OPC_MoveChild1,
/*446798*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446801*/                OPC_RecordMemRef,
/*446802*/                OPC_RecordNode, // #2 = 'ld' chained node
/*446803*/                OPC_CheckFoldableChainNode,
/*446804*/                OPC_RecordChild1, // #3 = $src3
/*446805*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446807*/                OPC_CheckPredicate, 9, // Predicate_load
/*446809*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*446811*/                OPC_MoveParent,
/*446812*/                OPC_RecordChild2, // #4 = $src1
/*446813*/                OPC_MoveParent,
/*446814*/                OPC_MoveChild2,
/*446815*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446818*/                OPC_MoveChild0,
/*446819*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446822*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446824*/                OPC_CheckType, MVT::v16i32,
/*446826*/                OPC_MoveParent,
/*446827*/                OPC_MoveParent,
/*446828*/                OPC_CheckType, MVT::v16f32,
/*446830*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446832*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446835*/                OPC_EmitMergeInputChains1_2,
/*446836*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                          // Dst: (VFNMSUB231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446850*/              0, /*End of Scope*/
/*446851*/            /*Scope*/ 54, /*->446906*/
/*446852*/              OPC_MoveChild0,
/*446853*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446856*/              OPC_RecordMemRef,
/*446857*/              OPC_RecordNode, // #1 = 'ld' chained node
/*446858*/              OPC_CheckFoldableChainNode,
/*446859*/              OPC_RecordChild1, // #2 = $src3
/*446860*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446862*/              OPC_CheckPredicate, 9, // Predicate_load
/*446864*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*446866*/              OPC_MoveParent,
/*446867*/              OPC_RecordChild1, // #3 = $src1
/*446868*/              OPC_RecordChild2, // #4 = $src2
/*446869*/              OPC_MoveParent,
/*446870*/              OPC_MoveChild2,
/*446871*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446874*/              OPC_MoveChild0,
/*446875*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446878*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446880*/              OPC_CheckType, MVT::v16i32,
/*446882*/              OPC_MoveParent,
/*446883*/              OPC_MoveParent,
/*446884*/              OPC_CheckType, MVT::v16f32,
/*446886*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446888*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*446891*/              OPC_EmitMergeInputChains1_1,
/*446892*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VFNMSUB132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*446906*/            0, /*End of Scope*/
/*446907*/          /*SwitchOpcode*/ 117, TARGET_VAL(ISD::SINT_TO_FP),// ->447027
/*446910*/            OPC_MoveChild0,
/*446911*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->446970
/*446915*/              OPC_MoveChild0,
/*446916*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446919*/              OPC_RecordMemRef,
/*446920*/              OPC_RecordNode, // #1 = 'ld' chained node
/*446921*/              OPC_CheckFoldableChainNode,
/*446922*/              OPC_RecordChild1, // #2 = $src
/*446923*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446925*/              OPC_CheckPredicate, 9, // Predicate_load
/*446927*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*446929*/              OPC_CheckType, MVT::v8i64,
/*446931*/              OPC_MoveParent,
/*446932*/              OPC_CheckType, MVT::v16i32,
/*446934*/              OPC_MoveParent,
/*446935*/              OPC_MoveParent,
/*446936*/              OPC_MoveChild2,
/*446937*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446940*/              OPC_MoveChild0,
/*446941*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*446944*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*446946*/              OPC_CheckType, MVT::v16i32,
/*446948*/              OPC_MoveParent,
/*446949*/              OPC_MoveParent,
/*446950*/              OPC_CheckType, MVT::v16f32,
/*446952*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*446954*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*446957*/              OPC_EmitMergeInputChains1_1,
/*446958*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (sint_to_fp:{ *:[v16f32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VCVTDQ2PSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*446970*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->447026
/*446973*/              OPC_MoveChild0,
/*446974*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446977*/              OPC_RecordMemRef,
/*446978*/              OPC_RecordNode, // #1 = 'ld' chained node
/*446979*/              OPC_CheckFoldableChainNode,
/*446980*/              OPC_RecordChild1, // #2 = $src
/*446981*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446983*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*446985*/              OPC_CheckType, MVT::i32,
/*446987*/              OPC_MoveParent,
/*446988*/              OPC_CheckType, MVT::v16i32,
/*446990*/              OPC_MoveParent,
/*446991*/              OPC_MoveParent,
/*446992*/              OPC_MoveChild2,
/*446993*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*446996*/              OPC_MoveChild0,
/*446997*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447000*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447002*/              OPC_CheckType, MVT::v16i32,
/*447004*/              OPC_MoveParent,
/*447005*/              OPC_MoveParent,
/*447006*/              OPC_CheckType, MVT::v16f32,
/*447008*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447010*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*447013*/              OPC_EmitMergeInputChains1_1,
/*447014*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (sint_to_fp:{ *:[v16f32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VCVTDQ2PSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*447026*/            0, // EndSwitchOpcode
/*447027*/          /*SwitchOpcode*/ 117, TARGET_VAL(ISD::UINT_TO_FP),// ->447147
/*447030*/            OPC_MoveChild0,
/*447031*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::BITCAST),// ->447090
/*447035*/              OPC_MoveChild0,
/*447036*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447039*/              OPC_RecordMemRef,
/*447040*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447041*/              OPC_CheckFoldableChainNode,
/*447042*/              OPC_RecordChild1, // #2 = $src
/*447043*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447045*/              OPC_CheckPredicate, 9, // Predicate_load
/*447047*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*447049*/              OPC_CheckType, MVT::v8i64,
/*447051*/              OPC_MoveParent,
/*447052*/              OPC_CheckType, MVT::v16i32,
/*447054*/              OPC_MoveParent,
/*447055*/              OPC_MoveParent,
/*447056*/              OPC_MoveChild2,
/*447057*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447060*/              OPC_MoveChild0,
/*447061*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447064*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447066*/              OPC_CheckType, MVT::v16i32,
/*447068*/              OPC_MoveParent,
/*447069*/              OPC_MoveParent,
/*447070*/              OPC_CheckType, MVT::v16f32,
/*447072*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447074*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*447077*/              OPC_EmitMergeInputChains1_1,
/*447078*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (uint_to_fp:{ *:[v16f32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VCVTUDQ2PSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*447090*/            /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST),// ->447146
/*447093*/              OPC_MoveChild0,
/*447094*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447097*/              OPC_RecordMemRef,
/*447098*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447099*/              OPC_CheckFoldableChainNode,
/*447100*/              OPC_RecordChild1, // #2 = $src
/*447101*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447103*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*447105*/              OPC_CheckType, MVT::i32,
/*447107*/              OPC_MoveParent,
/*447108*/              OPC_CheckType, MVT::v16i32,
/*447110*/              OPC_MoveParent,
/*447111*/              OPC_MoveParent,
/*447112*/              OPC_MoveChild2,
/*447113*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447116*/              OPC_MoveChild0,
/*447117*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447120*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447122*/              OPC_CheckType, MVT::v16i32,
/*447124*/              OPC_MoveParent,
/*447125*/              OPC_MoveParent,
/*447126*/              OPC_CheckType, MVT::v16f32,
/*447128*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447130*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*447133*/              OPC_EmitMergeInputChains1_1,
/*447134*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (uint_to_fp:{ *:[v16f32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VCVTUDQ2PSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*447146*/            0, // EndSwitchOpcode
/*447147*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::CVTPH2PS),// ->447209
/*447150*/            OPC_MoveChild0,
/*447151*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447154*/            OPC_MoveChild0,
/*447155*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447158*/            OPC_RecordMemRef,
/*447159*/            OPC_RecordNode, // #1 = 'ld' chained node
/*447160*/            OPC_CheckFoldableChainNode,
/*447161*/            OPC_RecordChild1, // #2 = $src
/*447162*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447164*/            OPC_CheckPredicate, 9, // Predicate_load
/*447166*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*447168*/            OPC_CheckType, MVT::v4i64,
/*447170*/            OPC_MoveParent,
/*447171*/            OPC_CheckType, MVT::v16i16,
/*447173*/            OPC_MoveParent,
/*447174*/            OPC_MoveParent,
/*447175*/            OPC_MoveChild2,
/*447176*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447179*/            OPC_MoveChild0,
/*447180*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447183*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447185*/            OPC_CheckType, MVT::v16i32,
/*447187*/            OPC_MoveParent,
/*447188*/            OPC_MoveParent,
/*447189*/            OPC_CheckType, MVT::v16f32,
/*447191*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447193*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*447196*/            OPC_EmitMergeInputChains1_1,
/*447197*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtph2ps:{ *:[v16f32] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                      // Dst: (VCVTPH2PSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*447209*/          /*SwitchOpcode*/ 106, TARGET_VAL(X86ISD::RSQRT14),// ->447318
/*447212*/            OPC_MoveChild0,
/*447213*/            OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(X86ISD::VBROADCAST),// ->447268
/*447217*/              OPC_MoveChild0,
/*447218*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447221*/              OPC_RecordMemRef,
/*447222*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447223*/              OPC_CheckFoldableChainNode,
/*447224*/              OPC_RecordChild1, // #2 = $src
/*447225*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447227*/              OPC_CheckPredicate, 9, // Predicate_load
/*447229*/              OPC_CheckType, MVT::f32,
/*447231*/              OPC_MoveParent,
/*447232*/              OPC_MoveParent,
/*447233*/              OPC_MoveParent,
/*447234*/              OPC_MoveChild2,
/*447235*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447238*/              OPC_MoveChild0,
/*447239*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447242*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447244*/              OPC_CheckType, MVT::v16i32,
/*447246*/              OPC_MoveParent,
/*447247*/              OPC_MoveParent,
/*447248*/              OPC_CheckType, MVT::v16f32,
/*447250*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447252*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*447255*/              OPC_EmitMergeInputChains1_1,
/*447256*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt14:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VRSQRT14PSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*447268*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->447317
/*447271*/              OPC_RecordMemRef,
/*447272*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447273*/              OPC_CheckFoldableChainNode,
/*447274*/              OPC_RecordChild1, // #2 = $src
/*447275*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447277*/              OPC_CheckPredicate, 9, // Predicate_load
/*447279*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*447281*/              OPC_MoveParent,
/*447282*/              OPC_MoveParent,
/*447283*/              OPC_MoveChild2,
/*447284*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447287*/              OPC_MoveChild0,
/*447288*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447291*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447293*/              OPC_CheckType, MVT::v16i32,
/*447295*/              OPC_MoveParent,
/*447296*/              OPC_MoveParent,
/*447297*/              OPC_CheckType, MVT::v16f32,
/*447299*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447301*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*447304*/              OPC_EmitMergeInputChains1_1,
/*447305*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt14:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VRSQRT14PSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*447317*/            0, // EndSwitchOpcode
/*447318*/          /*SwitchOpcode*/ 106, TARGET_VAL(X86ISD::RCP14),// ->447427
/*447321*/            OPC_MoveChild0,
/*447322*/            OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(X86ISD::VBROADCAST),// ->447377
/*447326*/              OPC_MoveChild0,
/*447327*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447330*/              OPC_RecordMemRef,
/*447331*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447332*/              OPC_CheckFoldableChainNode,
/*447333*/              OPC_RecordChild1, // #2 = $src
/*447334*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447336*/              OPC_CheckPredicate, 9, // Predicate_load
/*447338*/              OPC_CheckType, MVT::f32,
/*447340*/              OPC_MoveParent,
/*447341*/              OPC_MoveParent,
/*447342*/              OPC_MoveParent,
/*447343*/              OPC_MoveChild2,
/*447344*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447347*/              OPC_MoveChild0,
/*447348*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447351*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447353*/              OPC_CheckType, MVT::v16i32,
/*447355*/              OPC_MoveParent,
/*447356*/              OPC_MoveParent,
/*447357*/              OPC_CheckType, MVT::v16f32,
/*447359*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447361*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*447364*/              OPC_EmitMergeInputChains1_1,
/*447365*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp14:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VRCP14PSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*447377*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->447426
/*447380*/              OPC_RecordMemRef,
/*447381*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447382*/              OPC_CheckFoldableChainNode,
/*447383*/              OPC_RecordChild1, // #2 = $src
/*447384*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447386*/              OPC_CheckPredicate, 9, // Predicate_load
/*447388*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*447390*/              OPC_MoveParent,
/*447391*/              OPC_MoveParent,
/*447392*/              OPC_MoveChild2,
/*447393*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447396*/              OPC_MoveChild0,
/*447397*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447400*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447402*/              OPC_CheckType, MVT::v16i32,
/*447404*/              OPC_MoveParent,
/*447405*/              OPC_MoveParent,
/*447406*/              OPC_CheckType, MVT::v16f32,
/*447408*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447410*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*447413*/              OPC_EmitMergeInputChains1_1,
/*447414*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp14:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VRCP14PSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*447426*/            0, // EndSwitchOpcode
/*447427*/          /*SwitchOpcode*/ 106, TARGET_VAL(ISD::FSQRT),// ->447536
/*447430*/            OPC_MoveChild0,
/*447431*/            OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(X86ISD::VBROADCAST),// ->447486
/*447435*/              OPC_MoveChild0,
/*447436*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447439*/              OPC_RecordMemRef,
/*447440*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447441*/              OPC_CheckFoldableChainNode,
/*447442*/              OPC_RecordChild1, // #2 = $src
/*447443*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447445*/              OPC_CheckPredicate, 9, // Predicate_load
/*447447*/              OPC_CheckType, MVT::f32,
/*447449*/              OPC_MoveParent,
/*447450*/              OPC_MoveParent,
/*447451*/              OPC_MoveParent,
/*447452*/              OPC_MoveChild2,
/*447453*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447456*/              OPC_MoveChild0,
/*447457*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447460*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447462*/              OPC_CheckType, MVT::v16i32,
/*447464*/              OPC_MoveParent,
/*447465*/              OPC_MoveParent,
/*447466*/              OPC_CheckType, MVT::v16f32,
/*447468*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447470*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*447473*/              OPC_EmitMergeInputChains1_1,
/*447474*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsqrt:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VSQRTPSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*447486*/            /*SwitchOpcode*/ 46, TARGET_VAL(ISD::LOAD),// ->447535
/*447489*/              OPC_RecordMemRef,
/*447490*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447491*/              OPC_CheckFoldableChainNode,
/*447492*/              OPC_RecordChild1, // #2 = $src
/*447493*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447495*/              OPC_CheckPredicate, 9, // Predicate_load
/*447497*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*447499*/              OPC_MoveParent,
/*447500*/              OPC_MoveParent,
/*447501*/              OPC_MoveChild2,
/*447502*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447505*/              OPC_MoveChild0,
/*447506*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447509*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447511*/              OPC_CheckType, MVT::v16i32,
/*447513*/              OPC_MoveParent,
/*447514*/              OPC_MoveParent,
/*447515*/              OPC_CheckType, MVT::v16f32,
/*447517*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447519*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*447522*/              OPC_EmitMergeInputChains1_1,
/*447523*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsqrt:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VSQRTPSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*447535*/            0, // EndSwitchOpcode
/*447536*/          /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VREDUCE),// ->447651
/*447539*/            OPC_MoveChild0,
/*447540*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->447599
/*447544*/              OPC_RecordMemRef,
/*447545*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447546*/              OPC_CheckFoldableChainNode,
/*447547*/              OPC_RecordChild1, // #2 = $src1
/*447548*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447550*/              OPC_CheckPredicate, 9, // Predicate_load
/*447552*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*447554*/              OPC_MoveParent,
/*447555*/              OPC_RecordChild1, // #3 = $src2
/*447556*/              OPC_MoveChild1,
/*447557*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*447560*/              OPC_MoveParent,
/*447561*/              OPC_MoveParent,
/*447562*/              OPC_MoveChild2,
/*447563*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447566*/              OPC_MoveChild0,
/*447567*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447570*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447572*/              OPC_CheckType, MVT::v16i32,
/*447574*/              OPC_MoveParent,
/*447575*/              OPC_MoveParent,
/*447576*/              OPC_CheckType, MVT::v16f32,
/*447578*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*447580*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*447583*/              OPC_EmitMergeInputChains1_1,
/*447584*/              OPC_EmitConvertToTarget, 3,
/*447586*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VREDUCEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*447599*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->447650
/*447602*/              OPC_MoveChild0,
/*447603*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447606*/              OPC_RecordMemRef,
/*447607*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447608*/              OPC_CheckFoldableChainNode,
/*447609*/              OPC_RecordChild1, // #2 = $src1
/*447610*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447612*/              OPC_CheckPredicate, 9, // Predicate_load
/*447614*/              OPC_CheckType, MVT::f32,
/*447616*/              OPC_MoveParent,
/*447617*/              OPC_MoveParent,
/*447618*/              OPC_RecordChild1, // #3 = $src2
/*447619*/              OPC_MoveChild1,
/*447620*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*447623*/              OPC_MoveParent,
/*447624*/              OPC_MoveParent,
/*447625*/              OPC_RecordChild2, // #4 = $src0
/*447626*/              OPC_CheckType, MVT::v16f32,
/*447628*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*447630*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*447633*/              OPC_EmitMergeInputChains1_1,
/*447634*/              OPC_EmitConvertToTarget, 3,
/*447636*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 34
                        // Dst: (VREDUCEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*447650*/            0, // EndSwitchOpcode
/*447651*/          /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VRNDSCALE),// ->447766
/*447654*/            OPC_MoveChild0,
/*447655*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->447714
/*447659*/              OPC_RecordMemRef,
/*447660*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447661*/              OPC_CheckFoldableChainNode,
/*447662*/              OPC_RecordChild1, // #2 = $src1
/*447663*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447665*/              OPC_CheckPredicate, 9, // Predicate_load
/*447667*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*447669*/              OPC_MoveParent,
/*447670*/              OPC_RecordChild1, // #3 = $src2
/*447671*/              OPC_MoveChild1,
/*447672*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*447675*/              OPC_MoveParent,
/*447676*/              OPC_MoveParent,
/*447677*/              OPC_MoveChild2,
/*447678*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447681*/              OPC_MoveChild0,
/*447682*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447685*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447687*/              OPC_CheckType, MVT::v16i32,
/*447689*/              OPC_MoveParent,
/*447690*/              OPC_MoveParent,
/*447691*/              OPC_CheckType, MVT::v16f32,
/*447693*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447695*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*447698*/              OPC_EmitMergeInputChains1_1,
/*447699*/              OPC_EmitConvertToTarget, 3,
/*447701*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VRNDSCALEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*447714*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->447765
/*447717*/              OPC_MoveChild0,
/*447718*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447721*/              OPC_RecordMemRef,
/*447722*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447723*/              OPC_CheckFoldableChainNode,
/*447724*/              OPC_RecordChild1, // #2 = $src1
/*447725*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447727*/              OPC_CheckPredicate, 9, // Predicate_load
/*447729*/              OPC_CheckType, MVT::f32,
/*447731*/              OPC_MoveParent,
/*447732*/              OPC_MoveParent,
/*447733*/              OPC_RecordChild1, // #3 = $src2
/*447734*/              OPC_MoveChild1,
/*447735*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*447738*/              OPC_MoveParent,
/*447739*/              OPC_MoveParent,
/*447740*/              OPC_RecordChild2, // #4 = $src0
/*447741*/              OPC_CheckType, MVT::v16f32,
/*447743*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447745*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*447748*/              OPC_EmitMergeInputChains1_1,
/*447749*/              OPC_EmitConvertToTarget, 3,
/*447751*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 34
                        // Dst: (VRNDSCALEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*447765*/            0, // EndSwitchOpcode
/*447766*/          /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VGETMANT),// ->447881
/*447769*/            OPC_MoveChild0,
/*447770*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->447829
/*447774*/              OPC_RecordMemRef,
/*447775*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447776*/              OPC_CheckFoldableChainNode,
/*447777*/              OPC_RecordChild1, // #2 = $src1
/*447778*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447780*/              OPC_CheckPredicate, 9, // Predicate_load
/*447782*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*447784*/              OPC_MoveParent,
/*447785*/              OPC_RecordChild1, // #3 = $src2
/*447786*/              OPC_MoveChild1,
/*447787*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*447790*/              OPC_MoveParent,
/*447791*/              OPC_MoveParent,
/*447792*/              OPC_MoveChild2,
/*447793*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447796*/              OPC_MoveChild0,
/*447797*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447800*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447802*/              OPC_CheckType, MVT::v16i32,
/*447804*/              OPC_MoveParent,
/*447805*/              OPC_MoveParent,
/*447806*/              OPC_CheckType, MVT::v16f32,
/*447808*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447810*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*447813*/              OPC_EmitMergeInputChains1_1,
/*447814*/              OPC_EmitConvertToTarget, 3,
/*447816*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VGETMANTPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*447829*/            /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VBROADCAST),// ->447880
/*447832*/              OPC_MoveChild0,
/*447833*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447836*/              OPC_RecordMemRef,
/*447837*/              OPC_RecordNode, // #1 = 'ld' chained node
/*447838*/              OPC_CheckFoldableChainNode,
/*447839*/              OPC_RecordChild1, // #2 = $src1
/*447840*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447842*/              OPC_CheckPredicate, 9, // Predicate_load
/*447844*/              OPC_CheckType, MVT::f32,
/*447846*/              OPC_MoveParent,
/*447847*/              OPC_MoveParent,
/*447848*/              OPC_RecordChild1, // #3 = $src2
/*447849*/              OPC_MoveChild1,
/*447850*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*447853*/              OPC_MoveParent,
/*447854*/              OPC_MoveParent,
/*447855*/              OPC_RecordChild2, // #4 = $src0
/*447856*/              OPC_CheckType, MVT::v16f32,
/*447858*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*447860*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*447863*/              OPC_EmitMergeInputChains1_1,
/*447864*/              OPC_EmitConvertToTarget, 3,
/*447866*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 34
                        // Dst: (VGETMANTPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*447880*/            0, // EndSwitchOpcode
/*447881*/          /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::VRANGE),// ->447999
/*447884*/            OPC_RecordChild0, // #1 = $src1
/*447885*/            OPC_MoveChild1,
/*447886*/            OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::LOAD),// ->447946
/*447890*/              OPC_RecordMemRef,
/*447891*/              OPC_RecordNode, // #2 = 'ld' chained node
/*447892*/              OPC_CheckFoldableChainNode,
/*447893*/              OPC_RecordChild1, // #3 = $src2
/*447894*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447896*/              OPC_CheckPredicate, 9, // Predicate_load
/*447898*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*447900*/              OPC_MoveParent,
/*447901*/              OPC_RecordChild2, // #4 = $src3
/*447902*/              OPC_MoveChild2,
/*447903*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*447906*/              OPC_MoveParent,
/*447907*/              OPC_MoveParent,
/*447908*/              OPC_MoveChild2,
/*447909*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*447912*/              OPC_MoveChild0,
/*447913*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*447916*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*447918*/              OPC_CheckType, MVT::v16i32,
/*447920*/              OPC_MoveParent,
/*447921*/              OPC_MoveParent,
/*447922*/              OPC_CheckType, MVT::v16f32,
/*447924*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*447926*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*447929*/              OPC_EmitMergeInputChains1_2,
/*447930*/              OPC_EmitConvertToTarget, 4,
/*447932*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VRANGEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*447946*/            /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VBROADCAST),// ->447998
/*447949*/              OPC_MoveChild0,
/*447950*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447953*/              OPC_RecordMemRef,
/*447954*/              OPC_RecordNode, // #2 = 'ld' chained node
/*447955*/              OPC_CheckFoldableChainNode,
/*447956*/              OPC_RecordChild1, // #3 = $src2
/*447957*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447959*/              OPC_CheckPredicate, 9, // Predicate_load
/*447961*/              OPC_CheckType, MVT::f32,
/*447963*/              OPC_MoveParent,
/*447964*/              OPC_MoveParent,
/*447965*/              OPC_RecordChild2, // #4 = $src3
/*447966*/              OPC_MoveChild2,
/*447967*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*447970*/              OPC_MoveParent,
/*447971*/              OPC_MoveParent,
/*447972*/              OPC_RecordChild2, // #5 = $src0
/*447973*/              OPC_CheckType, MVT::v16f32,
/*447975*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*447977*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*447980*/              OPC_EmitMergeInputChains1_2,
/*447981*/              OPC_EmitConvertToTarget, 4,
/*447983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 34
                        // Dst: (VRANGEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*447998*/            0, // EndSwitchOpcode
/*447999*/          /*SwitchOpcode*/ 114, TARGET_VAL(ISD::FFLOOR),// ->448116
/*448002*/            OPC_MoveChild0,
/*448003*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(X86ISD::VBROADCAST),// ->448062
/*448007*/              OPC_MoveChild0,
/*448008*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448011*/              OPC_RecordMemRef,
/*448012*/              OPC_RecordNode, // #1 = 'ld' chained node
/*448013*/              OPC_CheckFoldableChainNode,
/*448014*/              OPC_RecordChild1, // #2 = $src
/*448015*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448017*/              OPC_CheckPredicate, 9, // Predicate_load
/*448019*/              OPC_CheckType, MVT::f32,
/*448021*/              OPC_MoveParent,
/*448022*/              OPC_MoveParent,
/*448023*/              OPC_MoveParent,
/*448024*/              OPC_MoveChild2,
/*448025*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448028*/              OPC_MoveChild0,
/*448029*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448032*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448034*/              OPC_CheckType, MVT::v16i32,
/*448036*/              OPC_MoveParent,
/*448037*/              OPC_MoveParent,
/*448038*/              OPC_CheckType, MVT::v16f32,
/*448040*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448042*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*448045*/              OPC_EmitMergeInputChains1_1,
/*448046*/              OPC_EmitInteger, MVT::i32, 9, 
/*448049*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ffloor:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VRNDSCALEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*448062*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->448115
/*448065*/              OPC_RecordMemRef,
/*448066*/              OPC_RecordNode, // #1 = 'ld' chained node
/*448067*/              OPC_CheckFoldableChainNode,
/*448068*/              OPC_RecordChild1, // #2 = $src
/*448069*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448071*/              OPC_CheckPredicate, 9, // Predicate_load
/*448073*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*448075*/              OPC_MoveParent,
/*448076*/              OPC_MoveParent,
/*448077*/              OPC_MoveChild2,
/*448078*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448081*/              OPC_MoveChild0,
/*448082*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448085*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448087*/              OPC_CheckType, MVT::v16i32,
/*448089*/              OPC_MoveParent,
/*448090*/              OPC_MoveParent,
/*448091*/              OPC_CheckType, MVT::v16f32,
/*448093*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448095*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*448098*/              OPC_EmitMergeInputChains1_1,
/*448099*/              OPC_EmitInteger, MVT::i32, 9, 
/*448102*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ffloor:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VRNDSCALEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*448115*/            0, // EndSwitchOpcode
/*448116*/          /*SwitchOpcode*/ 114, TARGET_VAL(ISD::FNEARBYINT),// ->448233
/*448119*/            OPC_MoveChild0,
/*448120*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(X86ISD::VBROADCAST),// ->448179
/*448124*/              OPC_MoveChild0,
/*448125*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448128*/              OPC_RecordMemRef,
/*448129*/              OPC_RecordNode, // #1 = 'ld' chained node
/*448130*/              OPC_CheckFoldableChainNode,
/*448131*/              OPC_RecordChild1, // #2 = $src
/*448132*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448134*/              OPC_CheckPredicate, 9, // Predicate_load
/*448136*/              OPC_CheckType, MVT::f32,
/*448138*/              OPC_MoveParent,
/*448139*/              OPC_MoveParent,
/*448140*/              OPC_MoveParent,
/*448141*/              OPC_MoveChild2,
/*448142*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448145*/              OPC_MoveChild0,
/*448146*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448149*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448151*/              OPC_CheckType, MVT::v16i32,
/*448153*/              OPC_MoveParent,
/*448154*/              OPC_MoveParent,
/*448155*/              OPC_CheckType, MVT::v16f32,
/*448157*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448159*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*448162*/              OPC_EmitMergeInputChains1_1,
/*448163*/              OPC_EmitInteger, MVT::i32, 12, 
/*448166*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fnearbyint:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VRNDSCALEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*448179*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->448232
/*448182*/              OPC_RecordMemRef,
/*448183*/              OPC_RecordNode, // #1 = 'ld' chained node
/*448184*/              OPC_CheckFoldableChainNode,
/*448185*/              OPC_RecordChild1, // #2 = $src
/*448186*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448188*/              OPC_CheckPredicate, 9, // Predicate_load
/*448190*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*448192*/              OPC_MoveParent,
/*448193*/              OPC_MoveParent,
/*448194*/              OPC_MoveChild2,
/*448195*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448198*/              OPC_MoveChild0,
/*448199*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448202*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448204*/              OPC_CheckType, MVT::v16i32,
/*448206*/              OPC_MoveParent,
/*448207*/              OPC_MoveParent,
/*448208*/              OPC_CheckType, MVT::v16f32,
/*448210*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448212*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*448215*/              OPC_EmitMergeInputChains1_1,
/*448216*/              OPC_EmitInteger, MVT::i32, 12, 
/*448219*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fnearbyint:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VRNDSCALEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*448232*/            0, // EndSwitchOpcode
/*448233*/          /*SwitchOpcode*/ 114, TARGET_VAL(ISD::FCEIL),// ->448350
/*448236*/            OPC_MoveChild0,
/*448237*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(X86ISD::VBROADCAST),// ->448296
/*448241*/              OPC_MoveChild0,
/*448242*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448245*/              OPC_RecordMemRef,
/*448246*/              OPC_RecordNode, // #1 = 'ld' chained node
/*448247*/              OPC_CheckFoldableChainNode,
/*448248*/              OPC_RecordChild1, // #2 = $src
/*448249*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448251*/              OPC_CheckPredicate, 9, // Predicate_load
/*448253*/              OPC_CheckType, MVT::f32,
/*448255*/              OPC_MoveParent,
/*448256*/              OPC_MoveParent,
/*448257*/              OPC_MoveParent,
/*448258*/              OPC_MoveChild2,
/*448259*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448262*/              OPC_MoveChild0,
/*448263*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448266*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448268*/              OPC_CheckType, MVT::v16i32,
/*448270*/              OPC_MoveParent,
/*448271*/              OPC_MoveParent,
/*448272*/              OPC_CheckType, MVT::v16f32,
/*448274*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448276*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*448279*/              OPC_EmitMergeInputChains1_1,
/*448280*/              OPC_EmitInteger, MVT::i32, 10, 
/*448283*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fceil:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VRNDSCALEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*448296*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->448349
/*448299*/              OPC_RecordMemRef,
/*448300*/              OPC_RecordNode, // #1 = 'ld' chained node
/*448301*/              OPC_CheckFoldableChainNode,
/*448302*/              OPC_RecordChild1, // #2 = $src
/*448303*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448305*/              OPC_CheckPredicate, 9, // Predicate_load
/*448307*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*448309*/              OPC_MoveParent,
/*448310*/              OPC_MoveParent,
/*448311*/              OPC_MoveChild2,
/*448312*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448315*/              OPC_MoveChild0,
/*448316*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448319*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448321*/              OPC_CheckType, MVT::v16i32,
/*448323*/              OPC_MoveParent,
/*448324*/              OPC_MoveParent,
/*448325*/              OPC_CheckType, MVT::v16f32,
/*448327*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448329*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*448332*/              OPC_EmitMergeInputChains1_1,
/*448333*/              OPC_EmitInteger, MVT::i32, 10, 
/*448336*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fceil:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VRNDSCALEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*448349*/            0, // EndSwitchOpcode
/*448350*/          /*SwitchOpcode*/ 114, TARGET_VAL(ISD::FRINT),// ->448467
/*448353*/            OPC_MoveChild0,
/*448354*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(X86ISD::VBROADCAST),// ->448413
/*448358*/              OPC_MoveChild0,
/*448359*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448362*/              OPC_RecordMemRef,
/*448363*/              OPC_RecordNode, // #1 = 'ld' chained node
/*448364*/              OPC_CheckFoldableChainNode,
/*448365*/              OPC_RecordChild1, // #2 = $src
/*448366*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448368*/              OPC_CheckPredicate, 9, // Predicate_load
/*448370*/              OPC_CheckType, MVT::f32,
/*448372*/              OPC_MoveParent,
/*448373*/              OPC_MoveParent,
/*448374*/              OPC_MoveParent,
/*448375*/              OPC_MoveChild2,
/*448376*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448379*/              OPC_MoveChild0,
/*448380*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448383*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448385*/              OPC_CheckType, MVT::v16i32,
/*448387*/              OPC_MoveParent,
/*448388*/              OPC_MoveParent,
/*448389*/              OPC_CheckType, MVT::v16f32,
/*448391*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448393*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*448396*/              OPC_EmitMergeInputChains1_1,
/*448397*/              OPC_EmitInteger, MVT::i32, 4, 
/*448400*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (frint:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VRNDSCALEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*448413*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->448466
/*448416*/              OPC_RecordMemRef,
/*448417*/              OPC_RecordNode, // #1 = 'ld' chained node
/*448418*/              OPC_CheckFoldableChainNode,
/*448419*/              OPC_RecordChild1, // #2 = $src
/*448420*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448422*/              OPC_CheckPredicate, 9, // Predicate_load
/*448424*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*448426*/              OPC_MoveParent,
/*448427*/              OPC_MoveParent,
/*448428*/              OPC_MoveChild2,
/*448429*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448432*/              OPC_MoveChild0,
/*448433*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448436*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448438*/              OPC_CheckType, MVT::v16i32,
/*448440*/              OPC_MoveParent,
/*448441*/              OPC_MoveParent,
/*448442*/              OPC_CheckType, MVT::v16f32,
/*448444*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448446*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*448449*/              OPC_EmitMergeInputChains1_1,
/*448450*/              OPC_EmitInteger, MVT::i32, 4, 
/*448453*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (frint:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VRNDSCALEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*448466*/            0, // EndSwitchOpcode
/*448467*/          /*SwitchOpcode*/ 114, TARGET_VAL(ISD::FTRUNC),// ->448584
/*448470*/            OPC_MoveChild0,
/*448471*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(X86ISD::VBROADCAST),// ->448530
/*448475*/              OPC_MoveChild0,
/*448476*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448479*/              OPC_RecordMemRef,
/*448480*/              OPC_RecordNode, // #1 = 'ld' chained node
/*448481*/              OPC_CheckFoldableChainNode,
/*448482*/              OPC_RecordChild1, // #2 = $src
/*448483*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448485*/              OPC_CheckPredicate, 9, // Predicate_load
/*448487*/              OPC_CheckType, MVT::f32,
/*448489*/              OPC_MoveParent,
/*448490*/              OPC_MoveParent,
/*448491*/              OPC_MoveParent,
/*448492*/              OPC_MoveChild2,
/*448493*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448496*/              OPC_MoveChild0,
/*448497*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448500*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448502*/              OPC_CheckType, MVT::v16i32,
/*448504*/              OPC_MoveParent,
/*448505*/              OPC_MoveParent,
/*448506*/              OPC_CheckType, MVT::v16f32,
/*448508*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448510*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*448513*/              OPC_EmitMergeInputChains1_1,
/*448514*/              OPC_EmitInteger, MVT::i32, 11, 
/*448517*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ftrunc:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VRNDSCALEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*448530*/            /*SwitchOpcode*/ 50, TARGET_VAL(ISD::LOAD),// ->448583
/*448533*/              OPC_RecordMemRef,
/*448534*/              OPC_RecordNode, // #1 = 'ld' chained node
/*448535*/              OPC_CheckFoldableChainNode,
/*448536*/              OPC_RecordChild1, // #2 = $src
/*448537*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448539*/              OPC_CheckPredicate, 9, // Predicate_load
/*448541*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*448543*/              OPC_MoveParent,
/*448544*/              OPC_MoveParent,
/*448545*/              OPC_MoveChild2,
/*448546*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448549*/              OPC_MoveChild0,
/*448550*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448553*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448555*/              OPC_CheckType, MVT::v16i32,
/*448557*/              OPC_MoveParent,
/*448558*/              OPC_MoveParent,
/*448559*/              OPC_CheckType, MVT::v16f32,
/*448561*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448563*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*448566*/              OPC_EmitMergeInputChains1_1,
/*448567*/              OPC_EmitInteger, MVT::i32, 11, 
/*448570*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ftrunc:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VRNDSCALEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*448583*/            0, // EndSwitchOpcode
/*448584*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::UNPCKH),// ->448696
/*448587*/            OPC_RecordChild0, // #1 = $src1
/*448588*/            OPC_MoveChild1,
/*448589*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->448645
/*448593*/              OPC_MoveChild0,
/*448594*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448597*/              OPC_RecordMemRef,
/*448598*/              OPC_RecordNode, // #2 = 'ld' chained node
/*448599*/              OPC_CheckFoldableChainNode,
/*448600*/              OPC_RecordChild1, // #3 = $src2
/*448601*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448603*/              OPC_CheckPredicate, 9, // Predicate_load
/*448605*/              OPC_CheckType, MVT::f32,
/*448607*/              OPC_MoveParent,
/*448608*/              OPC_MoveParent,
/*448609*/              OPC_MoveParent,
/*448610*/              OPC_MoveChild2,
/*448611*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448614*/              OPC_MoveChild0,
/*448615*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448618*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448620*/              OPC_CheckType, MVT::v16i32,
/*448622*/              OPC_MoveParent,
/*448623*/              OPC_MoveParent,
/*448624*/              OPC_CheckType, MVT::v16f32,
/*448626*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448628*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*448631*/              OPC_EmitMergeInputChains1_2,
/*448632*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VUNPCKHPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*448645*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->448695
/*448648*/              OPC_RecordMemRef,
/*448649*/              OPC_RecordNode, // #2 = 'ld' chained node
/*448650*/              OPC_CheckFoldableChainNode,
/*448651*/              OPC_RecordChild1, // #3 = $src2
/*448652*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448654*/              OPC_CheckPredicate, 9, // Predicate_load
/*448656*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*448658*/              OPC_MoveParent,
/*448659*/              OPC_MoveParent,
/*448660*/              OPC_MoveChild2,
/*448661*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448664*/              OPC_MoveChild0,
/*448665*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448668*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448670*/              OPC_CheckType, MVT::v16i32,
/*448672*/              OPC_MoveParent,
/*448673*/              OPC_MoveParent,
/*448674*/              OPC_CheckType, MVT::v16f32,
/*448676*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448678*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*448681*/              OPC_EmitMergeInputChains1_2,
/*448682*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VUNPCKHPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*448695*/            0, // EndSwitchOpcode
/*448696*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::UNPCKL),// ->448808
/*448699*/            OPC_RecordChild0, // #1 = $src1
/*448700*/            OPC_MoveChild1,
/*448701*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(X86ISD::VBROADCAST),// ->448757
/*448705*/              OPC_MoveChild0,
/*448706*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448709*/              OPC_RecordMemRef,
/*448710*/              OPC_RecordNode, // #2 = 'ld' chained node
/*448711*/              OPC_CheckFoldableChainNode,
/*448712*/              OPC_RecordChild1, // #3 = $src2
/*448713*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448715*/              OPC_CheckPredicate, 9, // Predicate_load
/*448717*/              OPC_CheckType, MVT::f32,
/*448719*/              OPC_MoveParent,
/*448720*/              OPC_MoveParent,
/*448721*/              OPC_MoveParent,
/*448722*/              OPC_MoveChild2,
/*448723*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448726*/              OPC_MoveChild0,
/*448727*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448730*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448732*/              OPC_CheckType, MVT::v16i32,
/*448734*/              OPC_MoveParent,
/*448735*/              OPC_MoveParent,
/*448736*/              OPC_CheckType, MVT::v16f32,
/*448738*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448740*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*448743*/              OPC_EmitMergeInputChains1_2,
/*448744*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VUNPCKLPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*448757*/            /*SwitchOpcode*/ 47, TARGET_VAL(ISD::LOAD),// ->448807
/*448760*/              OPC_RecordMemRef,
/*448761*/              OPC_RecordNode, // #2 = 'ld' chained node
/*448762*/              OPC_CheckFoldableChainNode,
/*448763*/              OPC_RecordChild1, // #3 = $src2
/*448764*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448766*/              OPC_CheckPredicate, 9, // Predicate_load
/*448768*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*448770*/              OPC_MoveParent,
/*448771*/              OPC_MoveParent,
/*448772*/              OPC_MoveChild2,
/*448773*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448776*/              OPC_MoveChild0,
/*448777*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448780*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448782*/              OPC_CheckType, MVT::v16i32,
/*448784*/              OPC_MoveParent,
/*448785*/              OPC_MoveParent,
/*448786*/              OPC_CheckType, MVT::v16f32,
/*448788*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448790*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*448793*/              OPC_EmitMergeInputChains1_2,
/*448794*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VUNPCKLPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*448807*/            0, // EndSwitchOpcode
/*448808*/          /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::SHUFP),// ->448926
/*448811*/            OPC_RecordChild0, // #1 = $src1
/*448812*/            OPC_MoveChild1,
/*448813*/            OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::LOAD),// ->448873
/*448817*/              OPC_RecordMemRef,
/*448818*/              OPC_RecordNode, // #2 = 'ld' chained node
/*448819*/              OPC_CheckFoldableChainNode,
/*448820*/              OPC_RecordChild1, // #3 = $src2
/*448821*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448823*/              OPC_CheckPredicate, 9, // Predicate_load
/*448825*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*448827*/              OPC_MoveParent,
/*448828*/              OPC_RecordChild2, // #4 = $src3
/*448829*/              OPC_MoveChild2,
/*448830*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*448833*/              OPC_MoveParent,
/*448834*/              OPC_MoveParent,
/*448835*/              OPC_MoveChild2,
/*448836*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*448839*/              OPC_MoveChild0,
/*448840*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*448843*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*448845*/              OPC_CheckType, MVT::v16i32,
/*448847*/              OPC_MoveParent,
/*448848*/              OPC_MoveParent,
/*448849*/              OPC_CheckType, MVT::v16f32,
/*448851*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448853*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*448856*/              OPC_EmitMergeInputChains1_2,
/*448857*/              OPC_EmitConvertToTarget, 4,
/*448859*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 38
                        // Dst: (VSHUFPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*448873*/            /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VBROADCAST),// ->448925
/*448876*/              OPC_MoveChild0,
/*448877*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448880*/              OPC_RecordMemRef,
/*448881*/              OPC_RecordNode, // #2 = 'ld' chained node
/*448882*/              OPC_CheckFoldableChainNode,
/*448883*/              OPC_RecordChild1, // #3 = $src2
/*448884*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448886*/              OPC_CheckPredicate, 9, // Predicate_load
/*448888*/              OPC_CheckType, MVT::f32,
/*448890*/              OPC_MoveParent,
/*448891*/              OPC_MoveParent,
/*448892*/              OPC_RecordChild2, // #4 = $src3
/*448893*/              OPC_MoveChild2,
/*448894*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*448897*/              OPC_MoveParent,
/*448898*/              OPC_MoveParent,
/*448899*/              OPC_RecordChild2, // #5 = $src0
/*448900*/              OPC_CheckType, MVT::v16f32,
/*448902*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448904*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*448907*/              OPC_EmitMergeInputChains1_2,
/*448908*/              OPC_EmitConvertToTarget, 4,
/*448910*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 34
                        // Dst: (VSHUFPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*448925*/            0, // EndSwitchOpcode
/*448926*/          /*SwitchOpcode*/ 89, TARGET_VAL(X86ISD::SCALEF),// ->449018
/*448929*/            OPC_RecordChild0, // #1 = $src1
/*448930*/            OPC_MoveChild1,
/*448931*/            OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(X86ISD::VBROADCAST),// ->448977
/*448935*/              OPC_MoveChild0,
/*448936*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448939*/              OPC_RecordMemRef,
/*448940*/              OPC_RecordNode, // #2 = 'ld' chained node
/*448941*/              OPC_CheckFoldableChainNode,
/*448942*/              OPC_RecordChild1, // #3 = $src2
/*448943*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448945*/              OPC_CheckPredicate, 9, // Predicate_load
/*448947*/              OPC_CheckType, MVT::f32,
/*448949*/              OPC_MoveParent,
/*448950*/              OPC_MoveParent,
/*448951*/              OPC_CheckChild2Integer, 4, 
/*448953*/              OPC_MoveParent,
/*448954*/              OPC_RecordChild2, // #4 = $src0
/*448955*/              OPC_CheckType, MVT::v16f32,
/*448957*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448959*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*448962*/              OPC_EmitMergeInputChains1_2,
/*448963*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 36
                        // Dst: (VSCALEFPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*448977*/            /*SwitchOpcode*/ 37, TARGET_VAL(ISD::LOAD),// ->449017
/*448980*/              OPC_RecordMemRef,
/*448981*/              OPC_RecordNode, // #2 = 'ld' chained node
/*448982*/              OPC_CheckFoldableChainNode,
/*448983*/              OPC_RecordChild1, // #3 = $src2
/*448984*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448986*/              OPC_CheckPredicate, 9, // Predicate_load
/*448988*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*448990*/              OPC_MoveParent,
/*448991*/              OPC_CheckChild2Integer, 4, 
/*448993*/              OPC_MoveParent,
/*448994*/              OPC_RecordChild2, // #4 = $src0
/*448995*/              OPC_CheckType, MVT::v16f32,
/*448997*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448999*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*449002*/              OPC_EmitMergeInputChains1_2,
/*449003*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 33
                        // Dst: (VSCALEFPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*449017*/            0, // EndSwitchOpcode
/*449018*/          /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::RSQRT28),// ->449107
/*449021*/            OPC_MoveChild0,
/*449022*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(X86ISD::VBROADCAST),// ->449067
/*449026*/              OPC_MoveChild0,
/*449027*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*449030*/              OPC_RecordMemRef,
/*449031*/              OPC_RecordNode, // #1 = 'ld' chained node
/*449032*/              OPC_CheckFoldableChainNode,
/*449033*/              OPC_RecordChild1, // #2 = $src
/*449034*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449036*/              OPC_CheckPredicate, 9, // Predicate_load
/*449038*/              OPC_CheckType, MVT::f32,
/*449040*/              OPC_MoveParent,
/*449041*/              OPC_MoveParent,
/*449042*/              OPC_CheckChild1Integer, 4, 
/*449044*/              OPC_MoveParent,
/*449045*/              OPC_RecordChild2, // #3 = $src0
/*449046*/              OPC_CheckType, MVT::v16f32,
/*449048*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*449050*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449053*/              OPC_EmitMergeInputChains1_1,
/*449054*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt28:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 36
                        // Dst: (VRSQRT28PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449067*/            /*SwitchOpcode*/ 36, TARGET_VAL(ISD::LOAD),// ->449106
/*449070*/              OPC_RecordMemRef,
/*449071*/              OPC_RecordNode, // #1 = 'ld' chained node
/*449072*/              OPC_CheckFoldableChainNode,
/*449073*/              OPC_RecordChild1, // #2 = $src
/*449074*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449076*/              OPC_CheckPredicate, 9, // Predicate_load
/*449078*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*449080*/              OPC_MoveParent,
/*449081*/              OPC_CheckChild1Integer, 4, 
/*449083*/              OPC_MoveParent,
/*449084*/              OPC_RecordChild2, // #3 = $src0
/*449085*/              OPC_CheckType, MVT::v16f32,
/*449087*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*449089*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449092*/              OPC_EmitMergeInputChains1_1,
/*449093*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt28:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 33
                        // Dst: (VRSQRT28PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449106*/            0, // EndSwitchOpcode
/*449107*/          /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::RCP28),// ->449196
/*449110*/            OPC_MoveChild0,
/*449111*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(X86ISD::VBROADCAST),// ->449156
/*449115*/              OPC_MoveChild0,
/*449116*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*449119*/              OPC_RecordMemRef,
/*449120*/              OPC_RecordNode, // #1 = 'ld' chained node
/*449121*/              OPC_CheckFoldableChainNode,
/*449122*/              OPC_RecordChild1, // #2 = $src
/*449123*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449125*/              OPC_CheckPredicate, 9, // Predicate_load
/*449127*/              OPC_CheckType, MVT::f32,
/*449129*/              OPC_MoveParent,
/*449130*/              OPC_MoveParent,
/*449131*/              OPC_CheckChild1Integer, 4, 
/*449133*/              OPC_MoveParent,
/*449134*/              OPC_RecordChild2, // #3 = $src0
/*449135*/              OPC_CheckType, MVT::v16f32,
/*449137*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*449139*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449142*/              OPC_EmitMergeInputChains1_1,
/*449143*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp28:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 36
                        // Dst: (VRCP28PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449156*/            /*SwitchOpcode*/ 36, TARGET_VAL(ISD::LOAD),// ->449195
/*449159*/              OPC_RecordMemRef,
/*449160*/              OPC_RecordNode, // #1 = 'ld' chained node
/*449161*/              OPC_CheckFoldableChainNode,
/*449162*/              OPC_RecordChild1, // #2 = $src
/*449163*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449165*/              OPC_CheckPredicate, 9, // Predicate_load
/*449167*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*449169*/              OPC_MoveParent,
/*449170*/              OPC_CheckChild1Integer, 4, 
/*449172*/              OPC_MoveParent,
/*449173*/              OPC_RecordChild2, // #3 = $src0
/*449174*/              OPC_CheckType, MVT::v16f32,
/*449176*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*449178*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449181*/              OPC_EmitMergeInputChains1_1,
/*449182*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp28:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 33
                        // Dst: (VRCP28PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449195*/            0, // EndSwitchOpcode
/*449196*/          /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::EXP2),// ->449285
/*449199*/            OPC_MoveChild0,
/*449200*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(X86ISD::VBROADCAST),// ->449245
/*449204*/              OPC_MoveChild0,
/*449205*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*449208*/              OPC_RecordMemRef,
/*449209*/              OPC_RecordNode, // #1 = 'ld' chained node
/*449210*/              OPC_CheckFoldableChainNode,
/*449211*/              OPC_RecordChild1, // #2 = $src
/*449212*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449214*/              OPC_CheckPredicate, 9, // Predicate_load
/*449216*/              OPC_CheckType, MVT::f32,
/*449218*/              OPC_MoveParent,
/*449219*/              OPC_MoveParent,
/*449220*/              OPC_CheckChild1Integer, 4, 
/*449222*/              OPC_MoveParent,
/*449223*/              OPC_RecordChild2, // #3 = $src0
/*449224*/              OPC_CheckType, MVT::v16f32,
/*449226*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*449228*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449231*/              OPC_EmitMergeInputChains1_1,
/*449232*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86exp2:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 36
                        // Dst: (VEXP2PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449245*/            /*SwitchOpcode*/ 36, TARGET_VAL(ISD::LOAD),// ->449284
/*449248*/              OPC_RecordMemRef,
/*449249*/              OPC_RecordNode, // #1 = 'ld' chained node
/*449250*/              OPC_CheckFoldableChainNode,
/*449251*/              OPC_RecordChild1, // #2 = $src
/*449252*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449254*/              OPC_CheckPredicate, 9, // Predicate_load
/*449256*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*449258*/              OPC_MoveParent,
/*449259*/              OPC_CheckChild1Integer, 4, 
/*449261*/              OPC_MoveParent,
/*449262*/              OPC_RecordChild2, // #3 = $src0
/*449263*/              OPC_CheckType, MVT::v16f32,
/*449265*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*449267*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449270*/              OPC_EmitMergeInputChains1_1,
/*449271*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86exp2:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 33
                        // Dst: (VEXP2PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449284*/            0, // EndSwitchOpcode
/*449285*/          /*SwitchOpcode*/ 86, TARGET_VAL(X86ISD::FGETEXP_RND),// ->449374
/*449288*/            OPC_MoveChild0,
/*449289*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(X86ISD::VBROADCAST),// ->449334
/*449293*/              OPC_MoveChild0,
/*449294*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*449297*/              OPC_RecordMemRef,
/*449298*/              OPC_RecordNode, // #1 = 'ld' chained node
/*449299*/              OPC_CheckFoldableChainNode,
/*449300*/              OPC_RecordChild1, // #2 = $src
/*449301*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449303*/              OPC_CheckPredicate, 9, // Predicate_load
/*449305*/              OPC_CheckType, MVT::f32,
/*449307*/              OPC_MoveParent,
/*449308*/              OPC_MoveParent,
/*449309*/              OPC_CheckChild1Integer, 4, 
/*449311*/              OPC_MoveParent,
/*449312*/              OPC_RecordChild2, // #3 = $src0
/*449313*/              OPC_CheckType, MVT::v16f32,
/*449315*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449317*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449320*/              OPC_EmitMergeInputChains1_1,
/*449321*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexpRnd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 36
                        // Dst: (VGETEXPPSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449334*/            /*SwitchOpcode*/ 36, TARGET_VAL(ISD::LOAD),// ->449373
/*449337*/              OPC_RecordMemRef,
/*449338*/              OPC_RecordNode, // #1 = 'ld' chained node
/*449339*/              OPC_CheckFoldableChainNode,
/*449340*/              OPC_RecordChild1, // #2 = $src
/*449341*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449343*/              OPC_CheckPredicate, 9, // Predicate_load
/*449345*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*449347*/              OPC_MoveParent,
/*449348*/              OPC_CheckChild1Integer, 4, 
/*449350*/              OPC_MoveParent,
/*449351*/              OPC_RecordChild2, // #3 = $src0
/*449352*/              OPC_CheckType, MVT::v16f32,
/*449354*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449356*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449359*/              OPC_EmitMergeInputChains1_1,
/*449360*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexpRnd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 33
                        // Dst: (VGETEXPPSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449373*/            0, // EndSwitchOpcode
/*449374*/          /*SwitchOpcode*/ 92, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->449469
/*449377*/            OPC_MoveChild0,
/*449378*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*449381*/            OPC_RecordMemRef,
/*449382*/            OPC_RecordNode, // #1 = 'ld' chained node
/*449383*/            OPC_CheckFoldableChainNode,
/*449384*/            OPC_RecordChild1, // #2 = $src
/*449385*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449387*/            OPC_CheckPredicate, 9, // Predicate_load
/*449389*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*449391*/            OPC_SwitchType /*2 cases */, 36, MVT::v4f32,// ->449430
/*449394*/              OPC_MoveParent,
/*449395*/              OPC_MoveParent,
/*449396*/              OPC_MoveChild2,
/*449397*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*449400*/              OPC_MoveChild0,
/*449401*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*449404*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*449406*/              OPC_CheckType, MVT::v16i32,
/*449408*/              OPC_MoveParent,
/*449409*/              OPC_MoveParent,
/*449410*/              OPC_CheckType, MVT::v16f32,
/*449412*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449414*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*449417*/              OPC_EmitMergeInputChains1_1,
/*449418*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86SubVBroadcast:{ *:[v16f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VBROADCASTF32X4rmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449430*/            /*SwitchType*/ 36, MVT::v8f32,// ->449468
/*449432*/              OPC_MoveParent,
/*449433*/              OPC_MoveParent,
/*449434*/              OPC_MoveChild2,
/*449435*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*449438*/              OPC_MoveChild0,
/*449439*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*449442*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*449444*/              OPC_CheckType, MVT::v16i32,
/*449446*/              OPC_MoveParent,
/*449447*/              OPC_MoveParent,
/*449448*/              OPC_CheckType, MVT::v16f32,
/*449450*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*449452*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*449455*/              OPC_EmitMergeInputChains1_1,
/*449456*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X8rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86SubVBroadcast:{ *:[v16f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                        // Dst: (VBROADCASTF32X8rmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449468*/            0, // EndSwitchType
/*449469*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::EXPAND),// ->449522
/*449472*/            OPC_MoveChild0,
/*449473*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*449476*/            OPC_RecordMemRef,
/*449477*/            OPC_RecordNode, // #1 = 'ld' chained node
/*449478*/            OPC_CheckFoldableChainNode,
/*449479*/            OPC_RecordChild1, // #2 = $src1
/*449480*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449482*/            OPC_CheckPredicate, 9, // Predicate_load
/*449484*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*449486*/            OPC_MoveParent,
/*449487*/            OPC_MoveParent,
/*449488*/            OPC_MoveChild2,
/*449489*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*449492*/            OPC_MoveChild0,
/*449493*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*449496*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*449498*/            OPC_CheckType, MVT::v16i32,
/*449500*/            OPC_MoveParent,
/*449501*/            OPC_MoveParent,
/*449502*/            OPC_CheckType, MVT::v16f32,
/*449504*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449506*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*449509*/            OPC_EmitMergeInputChains1_1,
/*449510*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VEXPANDPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*449522*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::MOVSHDUP),// ->449575
/*449525*/            OPC_MoveChild0,
/*449526*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*449529*/            OPC_RecordMemRef,
/*449530*/            OPC_RecordNode, // #1 = 'ld' chained node
/*449531*/            OPC_CheckFoldableChainNode,
/*449532*/            OPC_RecordChild1, // #2 = $src1
/*449533*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449535*/            OPC_CheckPredicate, 9, // Predicate_load
/*449537*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*449539*/            OPC_MoveParent,
/*449540*/            OPC_MoveParent,
/*449541*/            OPC_MoveChild2,
/*449542*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*449545*/            OPC_MoveChild0,
/*449546*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*449549*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*449551*/            OPC_CheckType, MVT::v16i32,
/*449553*/            OPC_MoveParent,
/*449554*/            OPC_MoveParent,
/*449555*/            OPC_CheckType, MVT::v16f32,
/*449557*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449559*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*449562*/            OPC_EmitMergeInputChains1_1,
/*449563*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Movshdup:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VMOVSHDUPZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*449575*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::MOVSLDUP),// ->449628
/*449578*/            OPC_MoveChild0,
/*449579*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*449582*/            OPC_RecordMemRef,
/*449583*/            OPC_RecordNode, // #1 = 'ld' chained node
/*449584*/            OPC_CheckFoldableChainNode,
/*449585*/            OPC_RecordChild1, // #2 = $src1
/*449586*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449588*/            OPC_CheckPredicate, 9, // Predicate_load
/*449590*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*449592*/            OPC_MoveParent,
/*449593*/            OPC_MoveParent,
/*449594*/            OPC_MoveChild2,
/*449595*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*449598*/            OPC_MoveChild0,
/*449599*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*449602*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*449604*/            OPC_CheckType, MVT::v16i32,
/*449606*/            OPC_MoveParent,
/*449607*/            OPC_MoveParent,
/*449608*/            OPC_CheckType, MVT::v16f32,
/*449610*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449612*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*449615*/            OPC_EmitMergeInputChains1_1,
/*449616*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Movsldup:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 35
                      // Dst: (VMOVSLDUPZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*449628*/          /*SwitchOpcode*/ 86, TARGET_VAL(ISD::LOAD),// ->449717
/*449631*/            OPC_RecordMemRef,
/*449632*/            OPC_RecordNode, // #1 = 'ld' chained node
/*449633*/            OPC_CheckFoldableChainNode,
/*449634*/            OPC_RecordChild1, // #2 = $src
/*449635*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449637*/            OPC_CheckPredicate, 9, // Predicate_load
/*449639*/            OPC_Scope, 37, /*->449678*/ // 2 children in Scope
/*449641*/              OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*449643*/              OPC_MoveParent,
/*449644*/              OPC_MoveChild2,
/*449645*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*449648*/              OPC_MoveChild0,
/*449649*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*449652*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*449654*/              OPC_CheckType, MVT::v16i32,
/*449656*/              OPC_MoveParent,
/*449657*/              OPC_MoveParent,
/*449658*/              OPC_CheckType, MVT::v16f32,
/*449660*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449662*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*449665*/              OPC_EmitMergeInputChains1_1,
/*449666*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VMOVAPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449678*/            /*Scope*/ 37, /*->449716*/
/*449679*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*449681*/              OPC_MoveParent,
/*449682*/              OPC_MoveChild2,
/*449683*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*449686*/              OPC_MoveChild0,
/*449687*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*449690*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*449692*/              OPC_CheckType, MVT::v16i32,
/*449694*/              OPC_MoveParent,
/*449695*/              OPC_MoveParent,
/*449696*/              OPC_CheckType, MVT::v16f32,
/*449698*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449700*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*449703*/              OPC_EmitMergeInputChains1_1,
/*449704*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 32
                        // Dst: (VMOVUPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449716*/            0, /*End of Scope*/
/*449717*/          0, // EndSwitchOpcode
/*449718*/        /*Scope*/ 102, /*->449821*/
/*449719*/          OPC_RecordChild1, // #1 = $src3
/*449720*/          OPC_MoveChild1,
/*449721*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*449724*/          OPC_RecordChild0, // #2 = $src1
/*449725*/          OPC_MoveChild1,
/*449726*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*449729*/          OPC_RecordMemRef,
/*449730*/          OPC_RecordNode, // #3 = 'ld' chained node
/*449731*/          OPC_CheckFoldableChainNode,
/*449732*/          OPC_RecordChild1, // #4 = $src2
/*449733*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449735*/          OPC_CheckPredicate, 9, // Predicate_load
/*449737*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*449739*/          OPC_SwitchType /*2 cases */, 38, MVT::v4f32,// ->449780
/*449742*/            OPC_MoveParent,
/*449743*/            OPC_MoveChild2,
/*449744*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*449747*/            OPC_CheckType, MVT::iPTR,
/*449749*/            OPC_MoveParent,
/*449750*/            OPC_MoveParent,
/*449751*/            OPC_RecordChild2, // #5 = $src0
/*449752*/            OPC_CheckType, MVT::v16f32,
/*449754*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449756*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*449759*/            OPC_EmitMergeInputChains, 1, 3, 
/*449762*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*449765*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                      // Dst: (VINSERTF32x4Zrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*449780*/          /*SwitchType*/ 38, MVT::v8f32,// ->449820
/*449782*/            OPC_MoveParent,
/*449783*/            OPC_MoveChild2,
/*449784*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*449787*/            OPC_CheckType, MVT::iPTR,
/*449789*/            OPC_MoveParent,
/*449790*/            OPC_MoveParent,
/*449791*/            OPC_RecordChild2, // #5 = $src0
/*449792*/            OPC_CheckType, MVT::v16f32,
/*449794*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*449796*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*449799*/            OPC_EmitMergeInputChains, 1, 3, 
/*449802*/            OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*449805*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x8Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 9/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                      // Dst: (VINSERTF32x8Zrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*449820*/          0, // EndSwitchType
/*449821*/        /*Scope*/ 0|128,61/*7808*/, /*->457631*/
/*449823*/          OPC_MoveChild1,
/*449824*/          OPC_SwitchOpcode /*56 cases */, 84, TARGET_VAL(X86ISD::VBROADCAST),// ->449912
/*449828*/            OPC_MoveChild0,
/*449829*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->449874
/*449833*/              OPC_MoveChild0,
/*449834*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*449837*/              OPC_RecordMemRef,
/*449838*/              OPC_RecordNode, // #1 = 'ld' chained node
/*449839*/              OPC_CheckFoldableChainNode,
/*449840*/              OPC_RecordChild1, // #2 = $src
/*449841*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449843*/              OPC_CheckPredicate, 9, // Predicate_load
/*449845*/              OPC_CheckType, MVT::f32,
/*449847*/              OPC_MoveParent,
/*449848*/              OPC_CheckType, MVT::v4f32,
/*449850*/              OPC_MoveParent,
/*449851*/              OPC_MoveParent,
/*449852*/              OPC_RecordChild2, // #3 = $src0
/*449853*/              OPC_CheckType, MVT::v16f32,
/*449855*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449857*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449860*/              OPC_EmitMergeInputChains1_1,
/*449861*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VBROADCASTSSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449874*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->449911
/*449877*/              OPC_RecordMemRef,
/*449878*/              OPC_RecordNode, // #1 = 'ld' chained node
/*449879*/              OPC_CheckFoldableChainNode,
/*449880*/              OPC_RecordChild1, // #2 = $src
/*449881*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449883*/              OPC_CheckPredicate, 9, // Predicate_load
/*449885*/              OPC_CheckType, MVT::f32,
/*449887*/              OPC_MoveParent,
/*449888*/              OPC_MoveParent,
/*449889*/              OPC_RecordChild2, // #3 = $src0
/*449890*/              OPC_CheckType, MVT::v16f32,
/*449892*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449894*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449897*/              OPC_EmitMergeInputChains1_1,
/*449898*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTSSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449911*/            0, // EndSwitchOpcode
/*449912*/          /*SwitchOpcode*/ 74|128,4/*586*/, TARGET_VAL(ISD::BITCAST),// ->450502
/*449916*/            OPC_Scope, 51|128,3/*435*/, /*->450354*/ // 3 children in Scope
/*449919*/              OPC_MoveChild0,
/*449920*/              OPC_SwitchOpcode /*6 cases */, 74, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->449998
/*449924*/                OPC_MoveChild0,
/*449925*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*449928*/                OPC_RecordMemRef,
/*449929*/                OPC_RecordNode, // #1 = 'ld' chained node
/*449930*/                OPC_CheckFoldableChainNode,
/*449931*/                OPC_RecordChild1, // #2 = $src
/*449932*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*449934*/                OPC_CheckPredicate, 9, // Predicate_load
/*449936*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*449938*/                OPC_SwitchType /*2 cases */, 27, MVT::v2f64,// ->449968
/*449941*/                  OPC_MoveParent,
/*449942*/                  OPC_CheckType, MVT::v8f64,
/*449944*/                  OPC_MoveParent,
/*449945*/                  OPC_MoveParent,
/*449946*/                  OPC_RecordChild2, // #3 = $src0
/*449947*/                  OPC_CheckType, MVT::v16f32,
/*449949*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449951*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449954*/                  OPC_EmitMergeInputChains1_1,
/*449955*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86SubVBroadcast:{ *:[v8f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTF32X4rmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449968*/                /*SwitchType*/ 27, MVT::v4f64,// ->449997
/*449970*/                  OPC_MoveParent,
/*449971*/                  OPC_CheckType, MVT::v8f64,
/*449973*/                  OPC_MoveParent,
/*449974*/                  OPC_MoveParent,
/*449975*/                  OPC_RecordChild2, // #3 = $src0
/*449976*/                  OPC_CheckType, MVT::v16f32,
/*449978*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*449980*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*449983*/                  OPC_EmitMergeInputChains1_1,
/*449984*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X8rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86SubVBroadcast:{ *:[v8f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTF32X8rmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*449997*/                0, // EndSwitchType
/*449998*/              /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->450042
/*450001*/                OPC_MoveChild0,
/*450002*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450005*/                OPC_RecordMemRef,
/*450006*/                OPC_RecordNode, // #1 = 'ld' chained node
/*450007*/                OPC_CheckFoldableChainNode,
/*450008*/                OPC_RecordChild1, // #2 = $src
/*450009*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450011*/                OPC_CheckPredicate, 9, // Predicate_load
/*450013*/                OPC_CheckType, MVT::f64,
/*450015*/                OPC_MoveParent,
/*450016*/                OPC_CheckType, MVT::v8f64,
/*450018*/                OPC_MoveParent,
/*450019*/                OPC_MoveParent,
/*450020*/                OPC_RecordChild2, // #3 = $src0
/*450021*/                OPC_CheckType, MVT::v16f32,
/*450023*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*450025*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*450028*/                OPC_EmitMergeInputChains1_1,
/*450029*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Zmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTF32X2Zmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*450042*/              /*SwitchOpcode*/ 86, TARGET_VAL(ISD::AND),// ->450131
/*450045*/                OPC_Scope, 41, /*->450088*/ // 2 children in Scope
/*450047*/                  OPC_RecordChild0, // #1 = $src1
/*450048*/                  OPC_MoveChild1,
/*450049*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450052*/                  OPC_RecordMemRef,
/*450053*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*450054*/                  OPC_CheckFoldableChainNode,
/*450055*/                  OPC_RecordChild1, // #3 = $src2
/*450056*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450058*/                  OPC_CheckPredicate, 9, // Predicate_load
/*450060*/                  OPC_MoveParent,
/*450061*/                  OPC_CheckType, MVT::v8i64,
/*450063*/                  OPC_MoveParent,
/*450064*/                  OPC_MoveParent,
/*450065*/                  OPC_RecordChild2, // #4 = $src0
/*450066*/                  OPC_CheckType, MVT::v16f32,
/*450068*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450070*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450073*/                  OPC_EmitMergeInputChains1_2,
/*450074*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                            // Dst: (VPANDDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450088*/                /*Scope*/ 41, /*->450130*/
/*450089*/                  OPC_MoveChild0,
/*450090*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450093*/                  OPC_RecordMemRef,
/*450094*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*450095*/                  OPC_CheckFoldableChainNode,
/*450096*/                  OPC_RecordChild1, // #2 = $src2
/*450097*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450099*/                  OPC_CheckPredicate, 9, // Predicate_load
/*450101*/                  OPC_MoveParent,
/*450102*/                  OPC_RecordChild1, // #3 = $src1
/*450103*/                  OPC_CheckType, MVT::v8i64,
/*450105*/                  OPC_MoveParent,
/*450106*/                  OPC_MoveParent,
/*450107*/                  OPC_RecordChild2, // #4 = $src0
/*450108*/                  OPC_CheckType, MVT::v16f32,
/*450110*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450112*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450115*/                  OPC_EmitMergeInputChains1_1,
/*450116*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                            // Dst: (VPANDDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450130*/                0, /*End of Scope*/
/*450131*/              /*SwitchOpcode*/ 86, TARGET_VAL(ISD::OR),// ->450220
/*450134*/                OPC_Scope, 41, /*->450177*/ // 2 children in Scope
/*450136*/                  OPC_RecordChild0, // #1 = $src1
/*450137*/                  OPC_MoveChild1,
/*450138*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450141*/                  OPC_RecordMemRef,
/*450142*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*450143*/                  OPC_CheckFoldableChainNode,
/*450144*/                  OPC_RecordChild1, // #3 = $src2
/*450145*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450147*/                  OPC_CheckPredicate, 9, // Predicate_load
/*450149*/                  OPC_MoveParent,
/*450150*/                  OPC_CheckType, MVT::v8i64,
/*450152*/                  OPC_MoveParent,
/*450153*/                  OPC_MoveParent,
/*450154*/                  OPC_RecordChild2, // #4 = $src0
/*450155*/                  OPC_CheckType, MVT::v16f32,
/*450157*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450159*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450162*/                  OPC_EmitMergeInputChains1_2,
/*450163*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                            // Dst: (VPORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450177*/                /*Scope*/ 41, /*->450219*/
/*450178*/                  OPC_MoveChild0,
/*450179*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450182*/                  OPC_RecordMemRef,
/*450183*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*450184*/                  OPC_CheckFoldableChainNode,
/*450185*/                  OPC_RecordChild1, // #2 = $src2
/*450186*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450188*/                  OPC_CheckPredicate, 9, // Predicate_load
/*450190*/                  OPC_MoveParent,
/*450191*/                  OPC_RecordChild1, // #3 = $src1
/*450192*/                  OPC_CheckType, MVT::v8i64,
/*450194*/                  OPC_MoveParent,
/*450195*/                  OPC_MoveParent,
/*450196*/                  OPC_RecordChild2, // #4 = $src0
/*450197*/                  OPC_CheckType, MVT::v16f32,
/*450199*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450201*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450204*/                  OPC_EmitMergeInputChains1_1,
/*450205*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                            // Dst: (VPORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450219*/                0, /*End of Scope*/
/*450220*/              /*SwitchOpcode*/ 86, TARGET_VAL(ISD::XOR),// ->450309
/*450223*/                OPC_Scope, 41, /*->450266*/ // 2 children in Scope
/*450225*/                  OPC_RecordChild0, // #1 = $src1
/*450226*/                  OPC_MoveChild1,
/*450227*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450230*/                  OPC_RecordMemRef,
/*450231*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*450232*/                  OPC_CheckFoldableChainNode,
/*450233*/                  OPC_RecordChild1, // #3 = $src2
/*450234*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450236*/                  OPC_CheckPredicate, 9, // Predicate_load
/*450238*/                  OPC_MoveParent,
/*450239*/                  OPC_CheckType, MVT::v8i64,
/*450241*/                  OPC_MoveParent,
/*450242*/                  OPC_MoveParent,
/*450243*/                  OPC_RecordChild2, // #4 = $src0
/*450244*/                  OPC_CheckType, MVT::v16f32,
/*450246*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450248*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450251*/                  OPC_EmitMergeInputChains1_2,
/*450252*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                            // Dst: (VPXORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450266*/                /*Scope*/ 41, /*->450308*/
/*450267*/                  OPC_MoveChild0,
/*450268*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450271*/                  OPC_RecordMemRef,
/*450272*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*450273*/                  OPC_CheckFoldableChainNode,
/*450274*/                  OPC_RecordChild1, // #2 = $src2
/*450275*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450277*/                  OPC_CheckPredicate, 9, // Predicate_load
/*450279*/                  OPC_MoveParent,
/*450280*/                  OPC_RecordChild1, // #3 = $src1
/*450281*/                  OPC_CheckType, MVT::v8i64,
/*450283*/                  OPC_MoveParent,
/*450284*/                  OPC_MoveParent,
/*450285*/                  OPC_RecordChild2, // #4 = $src0
/*450286*/                  OPC_CheckType, MVT::v16f32,
/*450288*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450290*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450293*/                  OPC_EmitMergeInputChains1_1,
/*450294*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                            // Dst: (VPXORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450308*/                0, /*End of Scope*/
/*450309*/              /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::ANDNP),// ->450353
/*450312*/                OPC_RecordChild0, // #1 = $src1
/*450313*/                OPC_MoveChild1,
/*450314*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450317*/                OPC_RecordMemRef,
/*450318*/                OPC_RecordNode, // #2 = 'ld' chained node
/*450319*/                OPC_CheckFoldableChainNode,
/*450320*/                OPC_RecordChild1, // #3 = $src2
/*450321*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450323*/                OPC_CheckPredicate, 9, // Predicate_load
/*450325*/                OPC_MoveParent,
/*450326*/                OPC_CheckType, MVT::v8i64,
/*450328*/                OPC_MoveParent,
/*450329*/                OPC_MoveParent,
/*450330*/                OPC_RecordChild2, // #4 = $src0
/*450331*/                OPC_CheckType, MVT::v16f32,
/*450333*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450335*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450338*/                OPC_EmitMergeInputChains1_2,
/*450339*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                          // Dst: (VPANDNDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450353*/              0, // EndSwitchOpcode
/*450354*/            /*Scope*/ 99, /*->450454*/
/*450355*/              OPC_RecordChild0, // #1 = $ins
/*450356*/              OPC_MoveChild0,
/*450357*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*450360*/              OPC_RecordChild0, // #2 = $src1
/*450361*/              OPC_RecordChild1, // #3 = $src2
/*450362*/              OPC_Scope, 44, /*->450408*/ // 2 children in Scope
/*450364*/                OPC_CheckChild1Type, MVT::v2f64,
/*450366*/                OPC_MoveChild2,
/*450367*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*450370*/                OPC_CheckType, MVT::iPTR,
/*450372*/                OPC_MoveParent,
/*450373*/                OPC_CheckType, MVT::v8f64,
/*450375*/                OPC_MoveParent,
/*450376*/                OPC_MoveParent,
/*450377*/                OPC_MoveChild2,
/*450378*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*450381*/                OPC_MoveChild0,
/*450382*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*450385*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*450387*/                OPC_CheckType, MVT::v16i32,
/*450389*/                OPC_MoveParent,
/*450390*/                OPC_MoveParent,
/*450391*/                OPC_CheckType, MVT::v16f32,
/*450393*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450395*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*450398*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrrkz), 0,
                              MVT::v16f32, 4/*#Ops*/, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VINSERTF32x4Zrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*450408*/              /*Scope*/ 44, /*->450453*/
/*450409*/                OPC_CheckChild1Type, MVT::v4f64,
/*450411*/                OPC_MoveChild2,
/*450412*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*450415*/                OPC_CheckType, MVT::iPTR,
/*450417*/                OPC_MoveParent,
/*450418*/                OPC_CheckType, MVT::v8f64,
/*450420*/                OPC_MoveParent,
/*450421*/                OPC_MoveParent,
/*450422*/                OPC_MoveChild2,
/*450423*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*450426*/                OPC_MoveChild0,
/*450427*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*450430*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*450432*/                OPC_CheckType, MVT::v16i32,
/*450434*/                OPC_MoveParent,
/*450435*/                OPC_MoveParent,
/*450436*/                OPC_CheckType, MVT::v16f32,
/*450438*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*450440*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*450443*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x8Zrrkz), 0,
                              MVT::v16f32, 4/*#Ops*/, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                          // Dst: (VINSERTF32x8Zrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*450453*/              0, /*End of Scope*/
/*450454*/            /*Scope*/ 46, /*->450501*/
/*450455*/              OPC_MoveChild0,
/*450456*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*450459*/              OPC_RecordChild0, // #1 = $src1
/*450460*/              OPC_RecordChild1, // #2 = $src2
/*450461*/              OPC_RecordChild2, // #3 = $src3
/*450462*/              OPC_MoveChild2,
/*450463*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*450466*/              OPC_MoveParent,
/*450467*/              OPC_CheckType, MVT::v8f64,
/*450469*/              OPC_MoveParent,
/*450470*/              OPC_MoveParent,
/*450471*/              OPC_MoveChild2,
/*450472*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*450475*/              OPC_MoveChild0,
/*450476*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*450479*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*450481*/              OPC_CheckType, MVT::v16i32,
/*450483*/              OPC_MoveParent,
/*450484*/              OPC_MoveParent,
/*450485*/              OPC_CheckType, MVT::v16f32,
/*450487*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450489*/              OPC_EmitConvertToTarget, 3,
/*450491*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrrikz), 0,
                            MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 19
                        // Dst: (VSHUFF32X4Zrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*450501*/            0, /*End of Scope*/
/*450502*/          /*SwitchOpcode*/ 127, TARGET_VAL(X86ISD::VPERMV3),// ->450632
/*450505*/            OPC_RecordChild0, // #1 = $src2
/*450506*/            OPC_RecordChild1, // #2 = $src1
/*450507*/            OPC_MoveChild2,
/*450508*/            OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::LOAD),// ->450585
/*450512*/              OPC_RecordMemRef,
/*450513*/              OPC_RecordNode, // #3 = 'ld' chained node
/*450514*/              OPC_CheckFoldableChainNode,
/*450515*/              OPC_RecordChild1, // #4 = $src3
/*450516*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450518*/              OPC_CheckPredicate, 9, // Predicate_load
/*450520*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*450522*/              OPC_MoveParent,
/*450523*/              OPC_MoveParent,
/*450524*/              OPC_Scope, 31, /*->450557*/ // 2 children in Scope
/*450526*/                OPC_MoveChild2,
/*450527*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*450530*/                OPC_CheckChild0Same, 2,
/*450532*/                OPC_MoveParent,
/*450533*/                OPC_CheckType, MVT::v16f32,
/*450535*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450537*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*450540*/                OPC_EmitMergeInputChains, 1, 3, 
/*450543*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PSrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1)) - Complexity = 31
                          // Dst: (VPERMI2PSrmk:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*450557*/              /*Scope*/ 26, /*->450584*/
/*450558*/                OPC_CheckChild2Same, 1,
/*450560*/                OPC_CheckType, MVT::v16f32,
/*450562*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450564*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*450567*/                OPC_EmitMergeInputChains, 1, 3, 
/*450570*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PSrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2PSrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*450584*/              0, /*End of Scope*/
/*450585*/            /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST),// ->450631
/*450588*/              OPC_MoveChild0,
/*450589*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450592*/              OPC_RecordMemRef,
/*450593*/              OPC_RecordNode, // #3 = 'ld' chained node
/*450594*/              OPC_CheckFoldableChainNode,
/*450595*/              OPC_RecordChild1, // #4 = $src3
/*450596*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450598*/              OPC_CheckPredicate, 9, // Predicate_load
/*450600*/              OPC_CheckType, MVT::f32,
/*450602*/              OPC_MoveParent,
/*450603*/              OPC_MoveParent,
/*450604*/              OPC_MoveParent,
/*450605*/              OPC_CheckChild2Same, 1,
/*450607*/              OPC_CheckType, MVT::v16f32,
/*450609*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450611*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*450614*/              OPC_EmitMergeInputChains, 1, 3, 
/*450617*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PSrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VPERMT2PSrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*450631*/            0, // EndSwitchOpcode
/*450632*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(ISD::FADD),// ->450812
/*450636*/            OPC_Scope, 45, /*->450683*/ // 4 children in Scope
/*450638*/              OPC_RecordChild0, // #1 = $src1
/*450639*/              OPC_MoveChild1,
/*450640*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*450643*/              OPC_MoveChild0,
/*450644*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450647*/              OPC_RecordMemRef,
/*450648*/              OPC_RecordNode, // #2 = 'ld' chained node
/*450649*/              OPC_CheckFoldableChainNode,
/*450650*/              OPC_RecordChild1, // #3 = $src2
/*450651*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450653*/              OPC_CheckPredicate, 9, // Predicate_load
/*450655*/              OPC_CheckType, MVT::f32,
/*450657*/              OPC_MoveParent,
/*450658*/              OPC_MoveParent,
/*450659*/              OPC_MoveParent,
/*450660*/              OPC_RecordChild2, // #4 = $src0
/*450661*/              OPC_CheckType, MVT::v16f32,
/*450663*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450665*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450668*/              OPC_EmitMergeInputChains1_2,
/*450669*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VADDPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450683*/            /*Scope*/ 45, /*->450729*/
/*450684*/              OPC_MoveChild0,
/*450685*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*450688*/              OPC_MoveChild0,
/*450689*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450692*/              OPC_RecordMemRef,
/*450693*/              OPC_RecordNode, // #1 = 'ld' chained node
/*450694*/              OPC_CheckFoldableChainNode,
/*450695*/              OPC_RecordChild1, // #2 = $src2
/*450696*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450698*/              OPC_CheckPredicate, 9, // Predicate_load
/*450700*/              OPC_CheckType, MVT::f32,
/*450702*/              OPC_MoveParent,
/*450703*/              OPC_MoveParent,
/*450704*/              OPC_RecordChild1, // #3 = $src1
/*450705*/              OPC_MoveParent,
/*450706*/              OPC_RecordChild2, // #4 = $src0
/*450707*/              OPC_CheckType, MVT::v16f32,
/*450709*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450711*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450714*/              OPC_EmitMergeInputChains1_1,
/*450715*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VADDPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450729*/            /*Scope*/ 40, /*->450770*/
/*450730*/              OPC_RecordChild0, // #1 = $src1
/*450731*/              OPC_MoveChild1,
/*450732*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450735*/              OPC_RecordMemRef,
/*450736*/              OPC_RecordNode, // #2 = 'ld' chained node
/*450737*/              OPC_CheckFoldableChainNode,
/*450738*/              OPC_RecordChild1, // #3 = $src2
/*450739*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450741*/              OPC_CheckPredicate, 9, // Predicate_load
/*450743*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*450745*/              OPC_MoveParent,
/*450746*/              OPC_MoveParent,
/*450747*/              OPC_RecordChild2, // #4 = $src0
/*450748*/              OPC_CheckType, MVT::v16f32,
/*450750*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450752*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450755*/              OPC_EmitMergeInputChains1_2,
/*450756*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VADDPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450770*/            /*Scope*/ 40, /*->450811*/
/*450771*/              OPC_MoveChild0,
/*450772*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450775*/              OPC_RecordMemRef,
/*450776*/              OPC_RecordNode, // #1 = 'ld' chained node
/*450777*/              OPC_CheckFoldableChainNode,
/*450778*/              OPC_RecordChild1, // #2 = $src2
/*450779*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450781*/              OPC_CheckPredicate, 9, // Predicate_load
/*450783*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*450785*/              OPC_MoveParent,
/*450786*/              OPC_RecordChild1, // #3 = $src1
/*450787*/              OPC_MoveParent,
/*450788*/              OPC_RecordChild2, // #4 = $src0
/*450789*/              OPC_CheckType, MVT::v16f32,
/*450791*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450793*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450796*/              OPC_EmitMergeInputChains1_1,
/*450797*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VADDPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450811*/            0, /*End of Scope*/
/*450812*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(ISD::FMUL),// ->450992
/*450816*/            OPC_Scope, 45, /*->450863*/ // 4 children in Scope
/*450818*/              OPC_RecordChild0, // #1 = $src1
/*450819*/              OPC_MoveChild1,
/*450820*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*450823*/              OPC_MoveChild0,
/*450824*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450827*/              OPC_RecordMemRef,
/*450828*/              OPC_RecordNode, // #2 = 'ld' chained node
/*450829*/              OPC_CheckFoldableChainNode,
/*450830*/              OPC_RecordChild1, // #3 = $src2
/*450831*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450833*/              OPC_CheckPredicate, 9, // Predicate_load
/*450835*/              OPC_CheckType, MVT::f32,
/*450837*/              OPC_MoveParent,
/*450838*/              OPC_MoveParent,
/*450839*/              OPC_MoveParent,
/*450840*/              OPC_RecordChild2, // #4 = $src0
/*450841*/              OPC_CheckType, MVT::v16f32,
/*450843*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450845*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450848*/              OPC_EmitMergeInputChains1_2,
/*450849*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VMULPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450863*/            /*Scope*/ 45, /*->450909*/
/*450864*/              OPC_MoveChild0,
/*450865*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*450868*/              OPC_MoveChild0,
/*450869*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450872*/              OPC_RecordMemRef,
/*450873*/              OPC_RecordNode, // #1 = 'ld' chained node
/*450874*/              OPC_CheckFoldableChainNode,
/*450875*/              OPC_RecordChild1, // #2 = $src2
/*450876*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450878*/              OPC_CheckPredicate, 9, // Predicate_load
/*450880*/              OPC_CheckType, MVT::f32,
/*450882*/              OPC_MoveParent,
/*450883*/              OPC_MoveParent,
/*450884*/              OPC_RecordChild1, // #3 = $src1
/*450885*/              OPC_MoveParent,
/*450886*/              OPC_RecordChild2, // #4 = $src0
/*450887*/              OPC_CheckType, MVT::v16f32,
/*450889*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450891*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450894*/              OPC_EmitMergeInputChains1_1,
/*450895*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fmul:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VMULPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450909*/            /*Scope*/ 40, /*->450950*/
/*450910*/              OPC_RecordChild0, // #1 = $src1
/*450911*/              OPC_MoveChild1,
/*450912*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450915*/              OPC_RecordMemRef,
/*450916*/              OPC_RecordNode, // #2 = 'ld' chained node
/*450917*/              OPC_CheckFoldableChainNode,
/*450918*/              OPC_RecordChild1, // #3 = $src2
/*450919*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450921*/              OPC_CheckPredicate, 9, // Predicate_load
/*450923*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*450925*/              OPC_MoveParent,
/*450926*/              OPC_MoveParent,
/*450927*/              OPC_RecordChild2, // #4 = $src0
/*450928*/              OPC_CheckType, MVT::v16f32,
/*450930*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450932*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450935*/              OPC_EmitMergeInputChains1_2,
/*450936*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMULPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450950*/            /*Scope*/ 40, /*->450991*/
/*450951*/              OPC_MoveChild0,
/*450952*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*450955*/              OPC_RecordMemRef,
/*450956*/              OPC_RecordNode, // #1 = 'ld' chained node
/*450957*/              OPC_CheckFoldableChainNode,
/*450958*/              OPC_RecordChild1, // #2 = $src2
/*450959*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450961*/              OPC_CheckPredicate, 9, // Predicate_load
/*450963*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*450965*/              OPC_MoveParent,
/*450966*/              OPC_RecordChild1, // #3 = $src1
/*450967*/              OPC_MoveParent,
/*450968*/              OPC_RecordChild2, // #4 = $src0
/*450969*/              OPC_CheckType, MVT::v16f32,
/*450971*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450973*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*450976*/              OPC_EmitMergeInputChains1_1,
/*450977*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fmul:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMULPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*450991*/            0, /*End of Scope*/
/*450992*/          /*SwitchOpcode*/ 85, TARGET_VAL(ISD::FSUB),// ->451080
/*450995*/            OPC_RecordChild0, // #1 = $src1
/*450996*/            OPC_MoveChild1,
/*450997*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(X86ISD::VBROADCAST),// ->451041
/*451001*/              OPC_MoveChild0,
/*451002*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451005*/              OPC_RecordMemRef,
/*451006*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451007*/              OPC_CheckFoldableChainNode,
/*451008*/              OPC_RecordChild1, // #3 = $src2
/*451009*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451011*/              OPC_CheckPredicate, 9, // Predicate_load
/*451013*/              OPC_CheckType, MVT::f32,
/*451015*/              OPC_MoveParent,
/*451016*/              OPC_MoveParent,
/*451017*/              OPC_MoveParent,
/*451018*/              OPC_RecordChild2, // #4 = $src0
/*451019*/              OPC_CheckType, MVT::v16f32,
/*451021*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451023*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451026*/              OPC_EmitMergeInputChains1_2,
/*451027*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VSUBPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451041*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->451079
/*451044*/              OPC_RecordMemRef,
/*451045*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451046*/              OPC_CheckFoldableChainNode,
/*451047*/              OPC_RecordChild1, // #3 = $src2
/*451048*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451050*/              OPC_CheckPredicate, 9, // Predicate_load
/*451052*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*451054*/              OPC_MoveParent,
/*451055*/              OPC_MoveParent,
/*451056*/              OPC_RecordChild2, // #4 = $src0
/*451057*/              OPC_CheckType, MVT::v16f32,
/*451059*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451061*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451064*/              OPC_EmitMergeInputChains1_2,
/*451065*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSUBPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451079*/            0, // EndSwitchOpcode
/*451080*/          /*SwitchOpcode*/ 85, TARGET_VAL(ISD::FDIV),// ->451168
/*451083*/            OPC_RecordChild0, // #1 = $src1
/*451084*/            OPC_MoveChild1,
/*451085*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(X86ISD::VBROADCAST),// ->451129
/*451089*/              OPC_MoveChild0,
/*451090*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451093*/              OPC_RecordMemRef,
/*451094*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451095*/              OPC_CheckFoldableChainNode,
/*451096*/              OPC_RecordChild1, // #3 = $src2
/*451097*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451099*/              OPC_CheckPredicate, 9, // Predicate_load
/*451101*/              OPC_CheckType, MVT::f32,
/*451103*/              OPC_MoveParent,
/*451104*/              OPC_MoveParent,
/*451105*/              OPC_MoveParent,
/*451106*/              OPC_RecordChild2, // #4 = $src0
/*451107*/              OPC_CheckType, MVT::v16f32,
/*451109*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451111*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451114*/              OPC_EmitMergeInputChains1_2,
/*451115*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VDIVPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451129*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->451167
/*451132*/              OPC_RecordMemRef,
/*451133*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451134*/              OPC_CheckFoldableChainNode,
/*451135*/              OPC_RecordChild1, // #3 = $src2
/*451136*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451138*/              OPC_CheckPredicate, 9, // Predicate_load
/*451140*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*451142*/              OPC_MoveParent,
/*451143*/              OPC_MoveParent,
/*451144*/              OPC_RecordChild2, // #4 = $src0
/*451145*/              OPC_CheckType, MVT::v16f32,
/*451147*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451149*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451152*/              OPC_EmitMergeInputChains1_2,
/*451153*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VDIVPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451167*/            0, // EndSwitchOpcode
/*451168*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::FMIN),// ->451256
/*451171*/            OPC_RecordChild0, // #1 = $src1
/*451172*/            OPC_MoveChild1,
/*451173*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(X86ISD::VBROADCAST),// ->451217
/*451177*/              OPC_MoveChild0,
/*451178*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451181*/              OPC_RecordMemRef,
/*451182*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451183*/              OPC_CheckFoldableChainNode,
/*451184*/              OPC_RecordChild1, // #3 = $src2
/*451185*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451187*/              OPC_CheckPredicate, 9, // Predicate_load
/*451189*/              OPC_CheckType, MVT::f32,
/*451191*/              OPC_MoveParent,
/*451192*/              OPC_MoveParent,
/*451193*/              OPC_MoveParent,
/*451194*/              OPC_RecordChild2, // #4 = $src0
/*451195*/              OPC_CheckType, MVT::v16f32,
/*451197*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451199*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451202*/              OPC_EmitMergeInputChains1_2,
/*451203*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmin:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VMINPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451217*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->451255
/*451220*/              OPC_RecordMemRef,
/*451221*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451222*/              OPC_CheckFoldableChainNode,
/*451223*/              OPC_RecordChild1, // #3 = $src2
/*451224*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451226*/              OPC_CheckPredicate, 9, // Predicate_load
/*451228*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*451230*/              OPC_MoveParent,
/*451231*/              OPC_MoveParent,
/*451232*/              OPC_RecordChild2, // #4 = $src0
/*451233*/              OPC_CheckType, MVT::v16f32,
/*451235*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451237*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451240*/              OPC_EmitMergeInputChains1_2,
/*451241*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmin:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMINPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451255*/            0, // EndSwitchOpcode
/*451256*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::FMAX),// ->451344
/*451259*/            OPC_RecordChild0, // #1 = $src1
/*451260*/            OPC_MoveChild1,
/*451261*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(X86ISD::VBROADCAST),// ->451305
/*451265*/              OPC_MoveChild0,
/*451266*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451269*/              OPC_RecordMemRef,
/*451270*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451271*/              OPC_CheckFoldableChainNode,
/*451272*/              OPC_RecordChild1, // #3 = $src2
/*451273*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451275*/              OPC_CheckPredicate, 9, // Predicate_load
/*451277*/              OPC_CheckType, MVT::f32,
/*451279*/              OPC_MoveParent,
/*451280*/              OPC_MoveParent,
/*451281*/              OPC_MoveParent,
/*451282*/              OPC_RecordChild2, // #4 = $src0
/*451283*/              OPC_CheckType, MVT::v16f32,
/*451285*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451287*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451290*/              OPC_EmitMergeInputChains1_2,
/*451291*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmax:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VMAXPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451305*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->451343
/*451308*/              OPC_RecordMemRef,
/*451309*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451310*/              OPC_CheckFoldableChainNode,
/*451311*/              OPC_RecordChild1, // #3 = $src2
/*451312*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451314*/              OPC_CheckPredicate, 9, // Predicate_load
/*451316*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*451318*/              OPC_MoveParent,
/*451319*/              OPC_MoveParent,
/*451320*/              OPC_RecordChild2, // #4 = $src0
/*451321*/              OPC_CheckType, MVT::v16f32,
/*451323*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451325*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451328*/              OPC_EmitMergeInputChains1_2,
/*451329*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmax:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMAXPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451343*/            0, // EndSwitchOpcode
/*451344*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::FMINC),// ->451524
/*451348*/            OPC_Scope, 45, /*->451395*/ // 4 children in Scope
/*451350*/              OPC_RecordChild0, // #1 = $src1
/*451351*/              OPC_MoveChild1,
/*451352*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*451355*/              OPC_MoveChild0,
/*451356*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451359*/              OPC_RecordMemRef,
/*451360*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451361*/              OPC_CheckFoldableChainNode,
/*451362*/              OPC_RecordChild1, // #3 = $src2
/*451363*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451365*/              OPC_CheckPredicate, 9, // Predicate_load
/*451367*/              OPC_CheckType, MVT::f32,
/*451369*/              OPC_MoveParent,
/*451370*/              OPC_MoveParent,
/*451371*/              OPC_MoveParent,
/*451372*/              OPC_RecordChild2, // #4 = $src0
/*451373*/              OPC_CheckType, MVT::v16f32,
/*451375*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451377*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451380*/              OPC_EmitMergeInputChains1_2,
/*451381*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VMINCPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451395*/            /*Scope*/ 45, /*->451441*/
/*451396*/              OPC_MoveChild0,
/*451397*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*451400*/              OPC_MoveChild0,
/*451401*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451404*/              OPC_RecordMemRef,
/*451405*/              OPC_RecordNode, // #1 = 'ld' chained node
/*451406*/              OPC_CheckFoldableChainNode,
/*451407*/              OPC_RecordChild1, // #2 = $src2
/*451408*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451410*/              OPC_CheckPredicate, 9, // Predicate_load
/*451412*/              OPC_CheckType, MVT::f32,
/*451414*/              OPC_MoveParent,
/*451415*/              OPC_MoveParent,
/*451416*/              OPC_RecordChild1, // #3 = $src1
/*451417*/              OPC_MoveParent,
/*451418*/              OPC_RecordChild2, // #4 = $src0
/*451419*/              OPC_CheckType, MVT::v16f32,
/*451421*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451423*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451426*/              OPC_EmitMergeInputChains1_1,
/*451427*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminc:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VMINCPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451441*/            /*Scope*/ 40, /*->451482*/
/*451442*/              OPC_RecordChild0, // #1 = $src1
/*451443*/              OPC_MoveChild1,
/*451444*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451447*/              OPC_RecordMemRef,
/*451448*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451449*/              OPC_CheckFoldableChainNode,
/*451450*/              OPC_RecordChild1, // #3 = $src2
/*451451*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451453*/              OPC_CheckPredicate, 9, // Predicate_load
/*451455*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*451457*/              OPC_MoveParent,
/*451458*/              OPC_MoveParent,
/*451459*/              OPC_RecordChild2, // #4 = $src0
/*451460*/              OPC_CheckType, MVT::v16f32,
/*451462*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451464*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451467*/              OPC_EmitMergeInputChains1_2,
/*451468*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMINCPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451482*/            /*Scope*/ 40, /*->451523*/
/*451483*/              OPC_MoveChild0,
/*451484*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451487*/              OPC_RecordMemRef,
/*451488*/              OPC_RecordNode, // #1 = 'ld' chained node
/*451489*/              OPC_CheckFoldableChainNode,
/*451490*/              OPC_RecordChild1, // #2 = $src2
/*451491*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451493*/              OPC_CheckPredicate, 9, // Predicate_load
/*451495*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*451497*/              OPC_MoveParent,
/*451498*/              OPC_RecordChild1, // #3 = $src1
/*451499*/              OPC_MoveParent,
/*451500*/              OPC_RecordChild2, // #4 = $src0
/*451501*/              OPC_CheckType, MVT::v16f32,
/*451503*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451505*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451508*/              OPC_EmitMergeInputChains1_1,
/*451509*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminc:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMINCPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451523*/            0, /*End of Scope*/
/*451524*/          /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::FMAXC),// ->451704
/*451528*/            OPC_Scope, 45, /*->451575*/ // 4 children in Scope
/*451530*/              OPC_RecordChild0, // #1 = $src1
/*451531*/              OPC_MoveChild1,
/*451532*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*451535*/              OPC_MoveChild0,
/*451536*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451539*/              OPC_RecordMemRef,
/*451540*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451541*/              OPC_CheckFoldableChainNode,
/*451542*/              OPC_RecordChild1, // #3 = $src2
/*451543*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451545*/              OPC_CheckPredicate, 9, // Predicate_load
/*451547*/              OPC_CheckType, MVT::f32,
/*451549*/              OPC_MoveParent,
/*451550*/              OPC_MoveParent,
/*451551*/              OPC_MoveParent,
/*451552*/              OPC_RecordChild2, // #4 = $src0
/*451553*/              OPC_CheckType, MVT::v16f32,
/*451555*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451557*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451560*/              OPC_EmitMergeInputChains1_2,
/*451561*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VMAXCPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451575*/            /*Scope*/ 45, /*->451621*/
/*451576*/              OPC_MoveChild0,
/*451577*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*451580*/              OPC_MoveChild0,
/*451581*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451584*/              OPC_RecordMemRef,
/*451585*/              OPC_RecordNode, // #1 = 'ld' chained node
/*451586*/              OPC_CheckFoldableChainNode,
/*451587*/              OPC_RecordChild1, // #2 = $src2
/*451588*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451590*/              OPC_CheckPredicate, 9, // Predicate_load
/*451592*/              OPC_CheckType, MVT::f32,
/*451594*/              OPC_MoveParent,
/*451595*/              OPC_MoveParent,
/*451596*/              OPC_RecordChild1, // #3 = $src1
/*451597*/              OPC_MoveParent,
/*451598*/              OPC_RecordChild2, // #4 = $src0
/*451599*/              OPC_CheckType, MVT::v16f32,
/*451601*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451603*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451606*/              OPC_EmitMergeInputChains1_1,
/*451607*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxc:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VMAXCPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451621*/            /*Scope*/ 40, /*->451662*/
/*451622*/              OPC_RecordChild0, // #1 = $src1
/*451623*/              OPC_MoveChild1,
/*451624*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451627*/              OPC_RecordMemRef,
/*451628*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451629*/              OPC_CheckFoldableChainNode,
/*451630*/              OPC_RecordChild1, // #3 = $src2
/*451631*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451633*/              OPC_CheckPredicate, 9, // Predicate_load
/*451635*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*451637*/              OPC_MoveParent,
/*451638*/              OPC_MoveParent,
/*451639*/              OPC_RecordChild2, // #4 = $src0
/*451640*/              OPC_CheckType, MVT::v16f32,
/*451642*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451644*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451647*/              OPC_EmitMergeInputChains1_2,
/*451648*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMAXCPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451662*/            /*Scope*/ 40, /*->451703*/
/*451663*/              OPC_MoveChild0,
/*451664*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451667*/              OPC_RecordMemRef,
/*451668*/              OPC_RecordNode, // #1 = 'ld' chained node
/*451669*/              OPC_CheckFoldableChainNode,
/*451670*/              OPC_RecordChild1, // #2 = $src2
/*451671*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451673*/              OPC_CheckPredicate, 9, // Predicate_load
/*451675*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*451677*/              OPC_MoveParent,
/*451678*/              OPC_RecordChild1, // #3 = $src1
/*451679*/              OPC_MoveParent,
/*451680*/              OPC_RecordChild2, // #4 = $src0
/*451681*/              OPC_CheckType, MVT::v16f32,
/*451683*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451685*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451688*/              OPC_EmitMergeInputChains1_1,
/*451689*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxc:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMAXCPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451703*/            0, /*End of Scope*/
/*451704*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VPERMV),// ->451792
/*451707*/            OPC_RecordChild0, // #1 = $src1
/*451708*/            OPC_MoveChild1,
/*451709*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(X86ISD::VBROADCAST),// ->451753
/*451713*/              OPC_MoveChild0,
/*451714*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451717*/              OPC_RecordMemRef,
/*451718*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451719*/              OPC_CheckFoldableChainNode,
/*451720*/              OPC_RecordChild1, // #3 = $src2
/*451721*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451723*/              OPC_CheckPredicate, 9, // Predicate_load
/*451725*/              OPC_CheckType, MVT::f32,
/*451727*/              OPC_MoveParent,
/*451728*/              OPC_MoveParent,
/*451729*/              OPC_MoveParent,
/*451730*/              OPC_RecordChild2, // #4 = $src0
/*451731*/              OPC_CheckType, MVT::v16f32,
/*451733*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451735*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451738*/              OPC_EmitMergeInputChains1_2,
/*451739*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VPERMPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451753*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->451791
/*451756*/              OPC_RecordMemRef,
/*451757*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451758*/              OPC_CheckFoldableChainNode,
/*451759*/              OPC_RecordChild1, // #3 = $src2
/*451760*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451762*/              OPC_CheckPredicate, 9, // Predicate_load
/*451764*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*451766*/              OPC_MoveParent,
/*451767*/              OPC_MoveParent,
/*451768*/              OPC_RecordChild2, // #4 = $src0
/*451769*/              OPC_CheckType, MVT::v16f32,
/*451771*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451773*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451776*/              OPC_EmitMergeInputChains1_2,
/*451777*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VPERMPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451791*/            0, // EndSwitchOpcode
/*451792*/          /*SwitchOpcode*/ 92, TARGET_VAL(X86ISD::VPERMILPV),// ->451887
/*451795*/            OPC_RecordChild0, // #1 = $src1
/*451796*/            OPC_MoveChild1,
/*451797*/            OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::BITCAST),// ->451843
/*451801*/              OPC_MoveChild0,
/*451802*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451805*/              OPC_RecordMemRef,
/*451806*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451807*/              OPC_CheckFoldableChainNode,
/*451808*/              OPC_RecordChild1, // #3 = $src2
/*451809*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451811*/              OPC_CheckPredicate, 9, // Predicate_load
/*451813*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*451815*/              OPC_CheckType, MVT::v8i64,
/*451817*/              OPC_MoveParent,
/*451818*/              OPC_MoveParent,
/*451819*/              OPC_MoveParent,
/*451820*/              OPC_RecordChild2, // #4 = $src0
/*451821*/              OPC_CheckType, MVT::v16f32,
/*451823*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451825*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451828*/              OPC_EmitMergeInputChains1_2,
/*451829*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VPERMILPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451843*/            /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST),// ->451886
/*451846*/              OPC_MoveChild0,
/*451847*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451850*/              OPC_RecordMemRef,
/*451851*/              OPC_RecordNode, // #2 = 'ld' chained node
/*451852*/              OPC_CheckFoldableChainNode,
/*451853*/              OPC_RecordChild1, // #3 = $src2
/*451854*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451856*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*451858*/              OPC_CheckType, MVT::i32,
/*451860*/              OPC_MoveParent,
/*451861*/              OPC_MoveParent,
/*451862*/              OPC_MoveParent,
/*451863*/              OPC_RecordChild2, // #4 = $src0
/*451864*/              OPC_CheckType, MVT::v16f32,
/*451866*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451868*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451871*/              OPC_EmitMergeInputChains1_2,
/*451872*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VPERMILPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*451886*/            0, // EndSwitchOpcode
/*451887*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VPERMILPI),// ->451937
/*451890*/            OPC_MoveChild0,
/*451891*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451894*/            OPC_RecordMemRef,
/*451895*/            OPC_RecordNode, // #1 = 'ld' chained node
/*451896*/            OPC_CheckFoldableChainNode,
/*451897*/            OPC_RecordChild1, // #2 = $src1
/*451898*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451900*/            OPC_CheckPredicate, 9, // Predicate_load
/*451902*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*451904*/            OPC_MoveParent,
/*451905*/            OPC_RecordChild1, // #3 = $src2
/*451906*/            OPC_MoveChild1,
/*451907*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*451910*/            OPC_MoveParent,
/*451911*/            OPC_MoveParent,
/*451912*/            OPC_RecordChild2, // #4 = $src0
/*451913*/            OPC_CheckType, MVT::v16f32,
/*451915*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451917*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*451920*/            OPC_EmitMergeInputChains1_1,
/*451921*/            OPC_EmitConvertToTarget, 3,
/*451923*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                      // Dst: (VPERMILPSZmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*451937*/          /*SwitchOpcode*/ 48|128,4/*560*/, TARGET_VAL(ISD::FMA),// ->452501
/*451941*/            OPC_Scope, 99, /*->452042*/ // 9 children in Scope
/*451943*/              OPC_RecordChild0, // #1 = $src2
/*451944*/              OPC_Scope, 48, /*->451994*/ // 2 children in Scope
/*451946*/                OPC_RecordChild1, // #2 = $src1
/*451947*/                OPC_MoveChild2,
/*451948*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*451951*/                OPC_MoveChild0,
/*451952*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451955*/                OPC_RecordMemRef,
/*451956*/                OPC_RecordNode, // #3 = 'ld' chained node
/*451957*/                OPC_CheckFoldableChainNode,
/*451958*/                OPC_RecordChild1, // #4 = $src3
/*451959*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451961*/                OPC_CheckPredicate, 9, // Predicate_load
/*451963*/                OPC_CheckType, MVT::f32,
/*451965*/                OPC_MoveParent,
/*451966*/                OPC_MoveParent,
/*451967*/                OPC_MoveParent,
/*451968*/                OPC_CheckChild2Same, 2,
/*451970*/                OPC_CheckType, MVT::v16f32,
/*451972*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451974*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*451977*/                OPC_EmitMergeInputChains, 1, 3, 
/*451980*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*451994*/              /*Scope*/ 46, /*->452041*/
/*451995*/                OPC_MoveChild1,
/*451996*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*451999*/                OPC_MoveChild0,
/*452000*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452003*/                OPC_RecordMemRef,
/*452004*/                OPC_RecordNode, // #2 = 'ld' chained node
/*452005*/                OPC_CheckFoldableChainNode,
/*452006*/                OPC_RecordChild1, // #3 = $src3
/*452007*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452009*/                OPC_CheckPredicate, 9, // Predicate_load
/*452011*/                OPC_CheckType, MVT::f32,
/*452013*/                OPC_MoveParent,
/*452014*/                OPC_MoveParent,
/*452015*/                OPC_RecordChild2, // #4 = $src1
/*452016*/                OPC_MoveParent,
/*452017*/                OPC_CheckChild2Same, 4,
/*452019*/                OPC_CheckType, MVT::v16f32,
/*452021*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452023*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452026*/                OPC_EmitMergeInputChains1_2,
/*452027*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452041*/              0, /*End of Scope*/
/*452042*/            /*Scope*/ 47, /*->452090*/
/*452043*/              OPC_MoveChild0,
/*452044*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*452047*/              OPC_MoveChild0,
/*452048*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452051*/              OPC_RecordMemRef,
/*452052*/              OPC_RecordNode, // #1 = 'ld' chained node
/*452053*/              OPC_CheckFoldableChainNode,
/*452054*/              OPC_RecordChild1, // #2 = $src3
/*452055*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452057*/              OPC_CheckPredicate, 9, // Predicate_load
/*452059*/              OPC_CheckType, MVT::f32,
/*452061*/              OPC_MoveParent,
/*452062*/              OPC_MoveParent,
/*452063*/              OPC_RecordChild1, // #3 = $src1
/*452064*/              OPC_RecordChild2, // #4 = $src2
/*452065*/              OPC_MoveParent,
/*452066*/              OPC_CheckChild2Same, 3,
/*452068*/              OPC_CheckType, MVT::v16f32,
/*452070*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452072*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452075*/              OPC_EmitMergeInputChains1_1,
/*452076*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452090*/            /*Scope*/ 49, /*->452140*/
/*452091*/              OPC_RecordChild0, // #1 = $src1
/*452092*/              OPC_RecordChild1, // #2 = $src2
/*452093*/              OPC_MoveChild2,
/*452094*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*452097*/              OPC_MoveChild0,
/*452098*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452101*/              OPC_RecordMemRef,
/*452102*/              OPC_RecordNode, // #3 = 'ld' chained node
/*452103*/              OPC_CheckFoldableChainNode,
/*452104*/              OPC_RecordChild1, // #4 = $src3
/*452105*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452107*/              OPC_CheckPredicate, 9, // Predicate_load
/*452109*/              OPC_CheckType, MVT::f32,
/*452111*/              OPC_MoveParent,
/*452112*/              OPC_MoveParent,
/*452113*/              OPC_MoveParent,
/*452114*/              OPC_CheckChild2Same, 1,
/*452116*/              OPC_CheckType, MVT::v16f32,
/*452118*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452120*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452123*/              OPC_EmitMergeInputChains, 1, 3, 
/*452126*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452140*/            /*Scope*/ 47, /*->452188*/
/*452141*/              OPC_MoveChild0,
/*452142*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*452145*/              OPC_MoveChild0,
/*452146*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452149*/              OPC_RecordMemRef,
/*452150*/              OPC_RecordNode, // #1 = 'ld' chained node
/*452151*/              OPC_CheckFoldableChainNode,
/*452152*/              OPC_RecordChild1, // #2 = $src3
/*452153*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452155*/              OPC_CheckPredicate, 9, // Predicate_load
/*452157*/              OPC_CheckType, MVT::f32,
/*452159*/              OPC_MoveParent,
/*452160*/              OPC_MoveParent,
/*452161*/              OPC_RecordChild1, // #3 = $src2
/*452162*/              OPC_RecordChild2, // #4 = $src1
/*452163*/              OPC_MoveParent,
/*452164*/              OPC_CheckChild2Same, 4,
/*452166*/              OPC_CheckType, MVT::v16f32,
/*452168*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452170*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452173*/              OPC_EmitMergeInputChains1_1,
/*452174*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452188*/            /*Scope*/ 8|128,1/*136*/, /*->452326*/
/*452190*/              OPC_RecordChild0, // #1 = $src1
/*452191*/              OPC_Scope, 46, /*->452239*/ // 3 children in Scope
/*452193*/                OPC_MoveChild1,
/*452194*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*452197*/                OPC_MoveChild0,
/*452198*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452201*/                OPC_RecordMemRef,
/*452202*/                OPC_RecordNode, // #2 = 'ld' chained node
/*452203*/                OPC_CheckFoldableChainNode,
/*452204*/                OPC_RecordChild1, // #3 = $src3
/*452205*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452207*/                OPC_CheckPredicate, 9, // Predicate_load
/*452209*/                OPC_CheckType, MVT::f32,
/*452211*/                OPC_MoveParent,
/*452212*/                OPC_MoveParent,
/*452213*/                OPC_RecordChild2, // #4 = $src2
/*452214*/                OPC_MoveParent,
/*452215*/                OPC_CheckChild2Same, 1,
/*452217*/                OPC_CheckType, MVT::v16f32,
/*452219*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452221*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452224*/                OPC_EmitMergeInputChains1_2,
/*452225*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452239*/              /*Scope*/ 43, /*->452283*/
/*452240*/                OPC_RecordChild1, // #2 = $src1
/*452241*/                OPC_MoveChild2,
/*452242*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452245*/                OPC_RecordMemRef,
/*452246*/                OPC_RecordNode, // #3 = 'ld' chained node
/*452247*/                OPC_CheckFoldableChainNode,
/*452248*/                OPC_RecordChild1, // #4 = $src3
/*452249*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452251*/                OPC_CheckPredicate, 9, // Predicate_load
/*452253*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*452255*/                OPC_MoveParent,
/*452256*/                OPC_MoveParent,
/*452257*/                OPC_CheckChild2Same, 2,
/*452259*/                OPC_CheckType, MVT::v16f32,
/*452261*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452263*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452266*/                OPC_EmitMergeInputChains, 1, 3, 
/*452269*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452283*/              /*Scope*/ 41, /*->452325*/
/*452284*/                OPC_MoveChild1,
/*452285*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452288*/                OPC_RecordMemRef,
/*452289*/                OPC_RecordNode, // #2 = 'ld' chained node
/*452290*/                OPC_CheckFoldableChainNode,
/*452291*/                OPC_RecordChild1, // #3 = $src3
/*452292*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452294*/                OPC_CheckPredicate, 9, // Predicate_load
/*452296*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*452298*/                OPC_MoveParent,
/*452299*/                OPC_RecordChild2, // #4 = $src1
/*452300*/                OPC_MoveParent,
/*452301*/                OPC_CheckChild2Same, 4,
/*452303*/                OPC_CheckType, MVT::v16f32,
/*452305*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452307*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452310*/                OPC_EmitMergeInputChains1_2,
/*452311*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452325*/              0, /*End of Scope*/
/*452326*/            /*Scope*/ 42, /*->452369*/
/*452327*/              OPC_MoveChild0,
/*452328*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452331*/              OPC_RecordMemRef,
/*452332*/              OPC_RecordNode, // #1 = 'ld' chained node
/*452333*/              OPC_CheckFoldableChainNode,
/*452334*/              OPC_RecordChild1, // #2 = $src3
/*452335*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452337*/              OPC_CheckPredicate, 9, // Predicate_load
/*452339*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*452341*/              OPC_MoveParent,
/*452342*/              OPC_RecordChild1, // #3 = $src1
/*452343*/              OPC_RecordChild2, // #4 = $src2
/*452344*/              OPC_MoveParent,
/*452345*/              OPC_CheckChild2Same, 3,
/*452347*/              OPC_CheckType, MVT::v16f32,
/*452349*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452351*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452354*/              OPC_EmitMergeInputChains1_1,
/*452355*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMADD132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452369*/            /*Scope*/ 44, /*->452414*/
/*452370*/              OPC_RecordChild0, // #1 = $src1
/*452371*/              OPC_RecordChild1, // #2 = $src2
/*452372*/              OPC_MoveChild2,
/*452373*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452376*/              OPC_RecordMemRef,
/*452377*/              OPC_RecordNode, // #3 = 'ld' chained node
/*452378*/              OPC_CheckFoldableChainNode,
/*452379*/              OPC_RecordChild1, // #4 = $src3
/*452380*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452382*/              OPC_CheckPredicate, 9, // Predicate_load
/*452384*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*452386*/              OPC_MoveParent,
/*452387*/              OPC_MoveParent,
/*452388*/              OPC_CheckChild2Same, 1,
/*452390*/              OPC_CheckType, MVT::v16f32,
/*452392*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452394*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452397*/              OPC_EmitMergeInputChains, 1, 3, 
/*452400*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452414*/            /*Scope*/ 42, /*->452457*/
/*452415*/              OPC_MoveChild0,
/*452416*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452419*/              OPC_RecordMemRef,
/*452420*/              OPC_RecordNode, // #1 = 'ld' chained node
/*452421*/              OPC_CheckFoldableChainNode,
/*452422*/              OPC_RecordChild1, // #2 = $src3
/*452423*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452425*/              OPC_CheckPredicate, 9, // Predicate_load
/*452427*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*452429*/              OPC_MoveParent,
/*452430*/              OPC_RecordChild1, // #3 = $src2
/*452431*/              OPC_RecordChild2, // #4 = $src1
/*452432*/              OPC_MoveParent,
/*452433*/              OPC_CheckChild2Same, 4,
/*452435*/              OPC_CheckType, MVT::v16f32,
/*452437*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452439*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452442*/              OPC_EmitMergeInputChains1_1,
/*452443*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMADD231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452457*/            /*Scope*/ 42, /*->452500*/
/*452458*/              OPC_RecordChild0, // #1 = $src1
/*452459*/              OPC_MoveChild1,
/*452460*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452463*/              OPC_RecordMemRef,
/*452464*/              OPC_RecordNode, // #2 = 'ld' chained node
/*452465*/              OPC_CheckFoldableChainNode,
/*452466*/              OPC_RecordChild1, // #3 = $src3
/*452467*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452469*/              OPC_CheckPredicate, 9, // Predicate_load
/*452471*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*452473*/              OPC_MoveParent,
/*452474*/              OPC_RecordChild2, // #4 = $src2
/*452475*/              OPC_MoveParent,
/*452476*/              OPC_CheckChild2Same, 1,
/*452478*/              OPC_CheckType, MVT::v16f32,
/*452480*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452482*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452485*/              OPC_EmitMergeInputChains1_2,
/*452486*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMADD132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452500*/            0, /*End of Scope*/
/*452501*/          /*SwitchOpcode*/ 48|128,4/*560*/, TARGET_VAL(X86ISD::FMSUB),// ->453065
/*452505*/            OPC_Scope, 99, /*->452606*/ // 9 children in Scope
/*452507*/              OPC_RecordChild0, // #1 = $src2
/*452508*/              OPC_Scope, 48, /*->452558*/ // 2 children in Scope
/*452510*/                OPC_RecordChild1, // #2 = $src1
/*452511*/                OPC_MoveChild2,
/*452512*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*452515*/                OPC_MoveChild0,
/*452516*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452519*/                OPC_RecordMemRef,
/*452520*/                OPC_RecordNode, // #3 = 'ld' chained node
/*452521*/                OPC_CheckFoldableChainNode,
/*452522*/                OPC_RecordChild1, // #4 = $src3
/*452523*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452525*/                OPC_CheckPredicate, 9, // Predicate_load
/*452527*/                OPC_CheckType, MVT::f32,
/*452529*/                OPC_MoveParent,
/*452530*/                OPC_MoveParent,
/*452531*/                OPC_MoveParent,
/*452532*/                OPC_CheckChild2Same, 2,
/*452534*/                OPC_CheckType, MVT::v16f32,
/*452536*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452538*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452541*/                OPC_EmitMergeInputChains, 1, 3, 
/*452544*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452558*/              /*Scope*/ 46, /*->452605*/
/*452559*/                OPC_MoveChild1,
/*452560*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*452563*/                OPC_MoveChild0,
/*452564*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452567*/                OPC_RecordMemRef,
/*452568*/                OPC_RecordNode, // #2 = 'ld' chained node
/*452569*/                OPC_CheckFoldableChainNode,
/*452570*/                OPC_RecordChild1, // #3 = $src3
/*452571*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452573*/                OPC_CheckPredicate, 9, // Predicate_load
/*452575*/                OPC_CheckType, MVT::f32,
/*452577*/                OPC_MoveParent,
/*452578*/                OPC_MoveParent,
/*452579*/                OPC_RecordChild2, // #4 = $src1
/*452580*/                OPC_MoveParent,
/*452581*/                OPC_CheckChild2Same, 4,
/*452583*/                OPC_CheckType, MVT::v16f32,
/*452585*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452587*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452590*/                OPC_EmitMergeInputChains1_2,
/*452591*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452605*/              0, /*End of Scope*/
/*452606*/            /*Scope*/ 47, /*->452654*/
/*452607*/              OPC_MoveChild0,
/*452608*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*452611*/              OPC_MoveChild0,
/*452612*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452615*/              OPC_RecordMemRef,
/*452616*/              OPC_RecordNode, // #1 = 'ld' chained node
/*452617*/              OPC_CheckFoldableChainNode,
/*452618*/              OPC_RecordChild1, // #2 = $src3
/*452619*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452621*/              OPC_CheckPredicate, 9, // Predicate_load
/*452623*/              OPC_CheckType, MVT::f32,
/*452625*/              OPC_MoveParent,
/*452626*/              OPC_MoveParent,
/*452627*/              OPC_RecordChild1, // #3 = $src1
/*452628*/              OPC_RecordChild2, // #4 = $src2
/*452629*/              OPC_MoveParent,
/*452630*/              OPC_CheckChild2Same, 3,
/*452632*/              OPC_CheckType, MVT::v16f32,
/*452634*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452636*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452639*/              OPC_EmitMergeInputChains1_1,
/*452640*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452654*/            /*Scope*/ 49, /*->452704*/
/*452655*/              OPC_RecordChild0, // #1 = $src1
/*452656*/              OPC_RecordChild1, // #2 = $src2
/*452657*/              OPC_MoveChild2,
/*452658*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*452661*/              OPC_MoveChild0,
/*452662*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452665*/              OPC_RecordMemRef,
/*452666*/              OPC_RecordNode, // #3 = 'ld' chained node
/*452667*/              OPC_CheckFoldableChainNode,
/*452668*/              OPC_RecordChild1, // #4 = $src3
/*452669*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452671*/              OPC_CheckPredicate, 9, // Predicate_load
/*452673*/              OPC_CheckType, MVT::f32,
/*452675*/              OPC_MoveParent,
/*452676*/              OPC_MoveParent,
/*452677*/              OPC_MoveParent,
/*452678*/              OPC_CheckChild2Same, 1,
/*452680*/              OPC_CheckType, MVT::v16f32,
/*452682*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452684*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452687*/              OPC_EmitMergeInputChains, 1, 3, 
/*452690*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452704*/            /*Scope*/ 47, /*->452752*/
/*452705*/              OPC_MoveChild0,
/*452706*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*452709*/              OPC_MoveChild0,
/*452710*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452713*/              OPC_RecordMemRef,
/*452714*/              OPC_RecordNode, // #1 = 'ld' chained node
/*452715*/              OPC_CheckFoldableChainNode,
/*452716*/              OPC_RecordChild1, // #2 = $src3
/*452717*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452719*/              OPC_CheckPredicate, 9, // Predicate_load
/*452721*/              OPC_CheckType, MVT::f32,
/*452723*/              OPC_MoveParent,
/*452724*/              OPC_MoveParent,
/*452725*/              OPC_RecordChild1, // #3 = $src2
/*452726*/              OPC_RecordChild2, // #4 = $src1
/*452727*/              OPC_MoveParent,
/*452728*/              OPC_CheckChild2Same, 4,
/*452730*/              OPC_CheckType, MVT::v16f32,
/*452732*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452734*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452737*/              OPC_EmitMergeInputChains1_1,
/*452738*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452752*/            /*Scope*/ 8|128,1/*136*/, /*->452890*/
/*452754*/              OPC_RecordChild0, // #1 = $src1
/*452755*/              OPC_Scope, 46, /*->452803*/ // 3 children in Scope
/*452757*/                OPC_MoveChild1,
/*452758*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*452761*/                OPC_MoveChild0,
/*452762*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452765*/                OPC_RecordMemRef,
/*452766*/                OPC_RecordNode, // #2 = 'ld' chained node
/*452767*/                OPC_CheckFoldableChainNode,
/*452768*/                OPC_RecordChild1, // #3 = $src3
/*452769*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452771*/                OPC_CheckPredicate, 9, // Predicate_load
/*452773*/                OPC_CheckType, MVT::f32,
/*452775*/                OPC_MoveParent,
/*452776*/                OPC_MoveParent,
/*452777*/                OPC_RecordChild2, // #4 = $src2
/*452778*/                OPC_MoveParent,
/*452779*/                OPC_CheckChild2Same, 1,
/*452781*/                OPC_CheckType, MVT::v16f32,
/*452783*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452785*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452788*/                OPC_EmitMergeInputChains1_2,
/*452789*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452803*/              /*Scope*/ 43, /*->452847*/
/*452804*/                OPC_RecordChild1, // #2 = $src1
/*452805*/                OPC_MoveChild2,
/*452806*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452809*/                OPC_RecordMemRef,
/*452810*/                OPC_RecordNode, // #3 = 'ld' chained node
/*452811*/                OPC_CheckFoldableChainNode,
/*452812*/                OPC_RecordChild1, // #4 = $src3
/*452813*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452815*/                OPC_CheckPredicate, 9, // Predicate_load
/*452817*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*452819*/                OPC_MoveParent,
/*452820*/                OPC_MoveParent,
/*452821*/                OPC_CheckChild2Same, 2,
/*452823*/                OPC_CheckType, MVT::v16f32,
/*452825*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452827*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452830*/                OPC_EmitMergeInputChains, 1, 3, 
/*452833*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452847*/              /*Scope*/ 41, /*->452889*/
/*452848*/                OPC_MoveChild1,
/*452849*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452852*/                OPC_RecordMemRef,
/*452853*/                OPC_RecordNode, // #2 = 'ld' chained node
/*452854*/                OPC_CheckFoldableChainNode,
/*452855*/                OPC_RecordChild1, // #3 = $src3
/*452856*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452858*/                OPC_CheckPredicate, 9, // Predicate_load
/*452860*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*452862*/                OPC_MoveParent,
/*452863*/                OPC_RecordChild2, // #4 = $src1
/*452864*/                OPC_MoveParent,
/*452865*/                OPC_CheckChild2Same, 4,
/*452867*/                OPC_CheckType, MVT::v16f32,
/*452869*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452874*/                OPC_EmitMergeInputChains1_2,
/*452875*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452889*/              0, /*End of Scope*/
/*452890*/            /*Scope*/ 42, /*->452933*/
/*452891*/              OPC_MoveChild0,
/*452892*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452895*/              OPC_RecordMemRef,
/*452896*/              OPC_RecordNode, // #1 = 'ld' chained node
/*452897*/              OPC_CheckFoldableChainNode,
/*452898*/              OPC_RecordChild1, // #2 = $src3
/*452899*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452901*/              OPC_CheckPredicate, 9, // Predicate_load
/*452903*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*452905*/              OPC_MoveParent,
/*452906*/              OPC_RecordChild1, // #3 = $src1
/*452907*/              OPC_RecordChild2, // #4 = $src2
/*452908*/              OPC_MoveParent,
/*452909*/              OPC_CheckChild2Same, 3,
/*452911*/              OPC_CheckType, MVT::v16f32,
/*452913*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452915*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452918*/              OPC_EmitMergeInputChains1_1,
/*452919*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMSUB132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452933*/            /*Scope*/ 44, /*->452978*/
/*452934*/              OPC_RecordChild0, // #1 = $src1
/*452935*/              OPC_RecordChild1, // #2 = $src2
/*452936*/              OPC_MoveChild2,
/*452937*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452940*/              OPC_RecordMemRef,
/*452941*/              OPC_RecordNode, // #3 = 'ld' chained node
/*452942*/              OPC_CheckFoldableChainNode,
/*452943*/              OPC_RecordChild1, // #4 = $src3
/*452944*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452946*/              OPC_CheckPredicate, 9, // Predicate_load
/*452948*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*452950*/              OPC_MoveParent,
/*452951*/              OPC_MoveParent,
/*452952*/              OPC_CheckChild2Same, 1,
/*452954*/              OPC_CheckType, MVT::v16f32,
/*452956*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452958*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*452961*/              OPC_EmitMergeInputChains, 1, 3, 
/*452964*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*452978*/            /*Scope*/ 42, /*->453021*/
/*452979*/              OPC_MoveChild0,
/*452980*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*452983*/              OPC_RecordMemRef,
/*452984*/              OPC_RecordNode, // #1 = 'ld' chained node
/*452985*/              OPC_CheckFoldableChainNode,
/*452986*/              OPC_RecordChild1, // #2 = $src3
/*452987*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452989*/              OPC_CheckPredicate, 9, // Predicate_load
/*452991*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*452993*/              OPC_MoveParent,
/*452994*/              OPC_RecordChild1, // #3 = $src2
/*452995*/              OPC_RecordChild2, // #4 = $src1
/*452996*/              OPC_MoveParent,
/*452997*/              OPC_CheckChild2Same, 4,
/*452999*/              OPC_CheckType, MVT::v16f32,
/*453001*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453003*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453006*/              OPC_EmitMergeInputChains1_1,
/*453007*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMSUB231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453021*/            /*Scope*/ 42, /*->453064*/
/*453022*/              OPC_RecordChild0, // #1 = $src1
/*453023*/              OPC_MoveChild1,
/*453024*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453027*/              OPC_RecordMemRef,
/*453028*/              OPC_RecordNode, // #2 = 'ld' chained node
/*453029*/              OPC_CheckFoldableChainNode,
/*453030*/              OPC_RecordChild1, // #3 = $src3
/*453031*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453033*/              OPC_CheckPredicate, 9, // Predicate_load
/*453035*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*453037*/              OPC_MoveParent,
/*453038*/              OPC_RecordChild2, // #4 = $src2
/*453039*/              OPC_MoveParent,
/*453040*/              OPC_CheckChild2Same, 1,
/*453042*/              OPC_CheckType, MVT::v16f32,
/*453044*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453046*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453049*/              OPC_EmitMergeInputChains1_2,
/*453050*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMSUB132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453064*/            0, /*End of Scope*/
/*453065*/          /*SwitchOpcode*/ 48|128,4/*560*/, TARGET_VAL(X86ISD::FMADDSUB),// ->453629
/*453069*/            OPC_Scope, 99, /*->453170*/ // 9 children in Scope
/*453071*/              OPC_RecordChild0, // #1 = $src2
/*453072*/              OPC_Scope, 48, /*->453122*/ // 2 children in Scope
/*453074*/                OPC_RecordChild1, // #2 = $src1
/*453075*/                OPC_MoveChild2,
/*453076*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453079*/                OPC_MoveChild0,
/*453080*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453083*/                OPC_RecordMemRef,
/*453084*/                OPC_RecordNode, // #3 = 'ld' chained node
/*453085*/                OPC_CheckFoldableChainNode,
/*453086*/                OPC_RecordChild1, // #4 = $src3
/*453087*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453089*/                OPC_CheckPredicate, 9, // Predicate_load
/*453091*/                OPC_CheckType, MVT::f32,
/*453093*/                OPC_MoveParent,
/*453094*/                OPC_MoveParent,
/*453095*/                OPC_MoveParent,
/*453096*/                OPC_CheckChild2Same, 2,
/*453098*/                OPC_CheckType, MVT::v16f32,
/*453100*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453102*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453105*/                OPC_EmitMergeInputChains, 1, 3, 
/*453108*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453122*/              /*Scope*/ 46, /*->453169*/
/*453123*/                OPC_MoveChild1,
/*453124*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453127*/                OPC_MoveChild0,
/*453128*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453131*/                OPC_RecordMemRef,
/*453132*/                OPC_RecordNode, // #2 = 'ld' chained node
/*453133*/                OPC_CheckFoldableChainNode,
/*453134*/                OPC_RecordChild1, // #3 = $src3
/*453135*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453137*/                OPC_CheckPredicate, 9, // Predicate_load
/*453139*/                OPC_CheckType, MVT::f32,
/*453141*/                OPC_MoveParent,
/*453142*/                OPC_MoveParent,
/*453143*/                OPC_RecordChild2, // #4 = $src1
/*453144*/                OPC_MoveParent,
/*453145*/                OPC_CheckChild2Same, 4,
/*453147*/                OPC_CheckType, MVT::v16f32,
/*453149*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453151*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453154*/                OPC_EmitMergeInputChains1_2,
/*453155*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453169*/              0, /*End of Scope*/
/*453170*/            /*Scope*/ 47, /*->453218*/
/*453171*/              OPC_MoveChild0,
/*453172*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453175*/              OPC_MoveChild0,
/*453176*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453179*/              OPC_RecordMemRef,
/*453180*/              OPC_RecordNode, // #1 = 'ld' chained node
/*453181*/              OPC_CheckFoldableChainNode,
/*453182*/              OPC_RecordChild1, // #2 = $src3
/*453183*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453185*/              OPC_CheckPredicate, 9, // Predicate_load
/*453187*/              OPC_CheckType, MVT::f32,
/*453189*/              OPC_MoveParent,
/*453190*/              OPC_MoveParent,
/*453191*/              OPC_RecordChild1, // #3 = $src1
/*453192*/              OPC_RecordChild2, // #4 = $src2
/*453193*/              OPC_MoveParent,
/*453194*/              OPC_CheckChild2Same, 3,
/*453196*/              OPC_CheckType, MVT::v16f32,
/*453198*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453200*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453203*/              OPC_EmitMergeInputChains1_1,
/*453204*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMADDSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453218*/            /*Scope*/ 49, /*->453268*/
/*453219*/              OPC_RecordChild0, // #1 = $src1
/*453220*/              OPC_RecordChild1, // #2 = $src2
/*453221*/              OPC_MoveChild2,
/*453222*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453225*/              OPC_MoveChild0,
/*453226*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453229*/              OPC_RecordMemRef,
/*453230*/              OPC_RecordNode, // #3 = 'ld' chained node
/*453231*/              OPC_CheckFoldableChainNode,
/*453232*/              OPC_RecordChild1, // #4 = $src3
/*453233*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453235*/              OPC_CheckPredicate, 9, // Predicate_load
/*453237*/              OPC_CheckType, MVT::f32,
/*453239*/              OPC_MoveParent,
/*453240*/              OPC_MoveParent,
/*453241*/              OPC_MoveParent,
/*453242*/              OPC_CheckChild2Same, 1,
/*453244*/              OPC_CheckType, MVT::v16f32,
/*453246*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453248*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453251*/              OPC_EmitMergeInputChains, 1, 3, 
/*453254*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMADDSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453268*/            /*Scope*/ 47, /*->453316*/
/*453269*/              OPC_MoveChild0,
/*453270*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453273*/              OPC_MoveChild0,
/*453274*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453277*/              OPC_RecordMemRef,
/*453278*/              OPC_RecordNode, // #1 = 'ld' chained node
/*453279*/              OPC_CheckFoldableChainNode,
/*453280*/              OPC_RecordChild1, // #2 = $src3
/*453281*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453283*/              OPC_CheckPredicate, 9, // Predicate_load
/*453285*/              OPC_CheckType, MVT::f32,
/*453287*/              OPC_MoveParent,
/*453288*/              OPC_MoveParent,
/*453289*/              OPC_RecordChild1, // #3 = $src2
/*453290*/              OPC_RecordChild2, // #4 = $src1
/*453291*/              OPC_MoveParent,
/*453292*/              OPC_CheckChild2Same, 4,
/*453294*/              OPC_CheckType, MVT::v16f32,
/*453296*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453298*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453301*/              OPC_EmitMergeInputChains1_1,
/*453302*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMADDSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453316*/            /*Scope*/ 8|128,1/*136*/, /*->453454*/
/*453318*/              OPC_RecordChild0, // #1 = $src1
/*453319*/              OPC_Scope, 46, /*->453367*/ // 3 children in Scope
/*453321*/                OPC_MoveChild1,
/*453322*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453325*/                OPC_MoveChild0,
/*453326*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453329*/                OPC_RecordMemRef,
/*453330*/                OPC_RecordNode, // #2 = 'ld' chained node
/*453331*/                OPC_CheckFoldableChainNode,
/*453332*/                OPC_RecordChild1, // #3 = $src3
/*453333*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453335*/                OPC_CheckPredicate, 9, // Predicate_load
/*453337*/                OPC_CheckType, MVT::f32,
/*453339*/                OPC_MoveParent,
/*453340*/                OPC_MoveParent,
/*453341*/                OPC_RecordChild2, // #4 = $src2
/*453342*/                OPC_MoveParent,
/*453343*/                OPC_CheckChild2Same, 1,
/*453345*/                OPC_CheckType, MVT::v16f32,
/*453347*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453349*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453352*/                OPC_EmitMergeInputChains1_2,
/*453353*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMADDSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453367*/              /*Scope*/ 43, /*->453411*/
/*453368*/                OPC_RecordChild1, // #2 = $src1
/*453369*/                OPC_MoveChild2,
/*453370*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453373*/                OPC_RecordMemRef,
/*453374*/                OPC_RecordNode, // #3 = 'ld' chained node
/*453375*/                OPC_CheckFoldableChainNode,
/*453376*/                OPC_RecordChild1, // #4 = $src3
/*453377*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453379*/                OPC_CheckPredicate, 9, // Predicate_load
/*453381*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*453383*/                OPC_MoveParent,
/*453384*/                OPC_MoveParent,
/*453385*/                OPC_CheckChild2Same, 2,
/*453387*/                OPC_CheckType, MVT::v16f32,
/*453389*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453391*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453394*/                OPC_EmitMergeInputChains, 1, 3, 
/*453397*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453411*/              /*Scope*/ 41, /*->453453*/
/*453412*/                OPC_MoveChild1,
/*453413*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453416*/                OPC_RecordMemRef,
/*453417*/                OPC_RecordNode, // #2 = 'ld' chained node
/*453418*/                OPC_CheckFoldableChainNode,
/*453419*/                OPC_RecordChild1, // #3 = $src3
/*453420*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453422*/                OPC_CheckPredicate, 9, // Predicate_load
/*453424*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*453426*/                OPC_MoveParent,
/*453427*/                OPC_RecordChild2, // #4 = $src1
/*453428*/                OPC_MoveParent,
/*453429*/                OPC_CheckChild2Same, 4,
/*453431*/                OPC_CheckType, MVT::v16f32,
/*453433*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453435*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453438*/                OPC_EmitMergeInputChains1_2,
/*453439*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453453*/              0, /*End of Scope*/
/*453454*/            /*Scope*/ 42, /*->453497*/
/*453455*/              OPC_MoveChild0,
/*453456*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453459*/              OPC_RecordMemRef,
/*453460*/              OPC_RecordNode, // #1 = 'ld' chained node
/*453461*/              OPC_CheckFoldableChainNode,
/*453462*/              OPC_RecordChild1, // #2 = $src3
/*453463*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453465*/              OPC_CheckPredicate, 9, // Predicate_load
/*453467*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*453469*/              OPC_MoveParent,
/*453470*/              OPC_RecordChild1, // #3 = $src1
/*453471*/              OPC_RecordChild2, // #4 = $src2
/*453472*/              OPC_MoveParent,
/*453473*/              OPC_CheckChild2Same, 3,
/*453475*/              OPC_CheckType, MVT::v16f32,
/*453477*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453479*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453482*/              OPC_EmitMergeInputChains1_1,
/*453483*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMADDSUB132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453497*/            /*Scope*/ 44, /*->453542*/
/*453498*/              OPC_RecordChild0, // #1 = $src1
/*453499*/              OPC_RecordChild1, // #2 = $src2
/*453500*/              OPC_MoveChild2,
/*453501*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453504*/              OPC_RecordMemRef,
/*453505*/              OPC_RecordNode, // #3 = 'ld' chained node
/*453506*/              OPC_CheckFoldableChainNode,
/*453507*/              OPC_RecordChild1, // #4 = $src3
/*453508*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453510*/              OPC_CheckPredicate, 9, // Predicate_load
/*453512*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*453514*/              OPC_MoveParent,
/*453515*/              OPC_MoveParent,
/*453516*/              OPC_CheckChild2Same, 1,
/*453518*/              OPC_CheckType, MVT::v16f32,
/*453520*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453522*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453525*/              OPC_EmitMergeInputChains, 1, 3, 
/*453528*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMADDSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453542*/            /*Scope*/ 42, /*->453585*/
/*453543*/              OPC_MoveChild0,
/*453544*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453547*/              OPC_RecordMemRef,
/*453548*/              OPC_RecordNode, // #1 = 'ld' chained node
/*453549*/              OPC_CheckFoldableChainNode,
/*453550*/              OPC_RecordChild1, // #2 = $src3
/*453551*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453553*/              OPC_CheckPredicate, 9, // Predicate_load
/*453555*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*453557*/              OPC_MoveParent,
/*453558*/              OPC_RecordChild1, // #3 = $src2
/*453559*/              OPC_RecordChild2, // #4 = $src1
/*453560*/              OPC_MoveParent,
/*453561*/              OPC_CheckChild2Same, 4,
/*453563*/              OPC_CheckType, MVT::v16f32,
/*453565*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453567*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453570*/              OPC_EmitMergeInputChains1_1,
/*453571*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMADDSUB231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453585*/            /*Scope*/ 42, /*->453628*/
/*453586*/              OPC_RecordChild0, // #1 = $src1
/*453587*/              OPC_MoveChild1,
/*453588*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453591*/              OPC_RecordMemRef,
/*453592*/              OPC_RecordNode, // #2 = 'ld' chained node
/*453593*/              OPC_CheckFoldableChainNode,
/*453594*/              OPC_RecordChild1, // #3 = $src3
/*453595*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453597*/              OPC_CheckPredicate, 9, // Predicate_load
/*453599*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*453601*/              OPC_MoveParent,
/*453602*/              OPC_RecordChild2, // #4 = $src2
/*453603*/              OPC_MoveParent,
/*453604*/              OPC_CheckChild2Same, 1,
/*453606*/              OPC_CheckType, MVT::v16f32,
/*453608*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453610*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453613*/              OPC_EmitMergeInputChains1_2,
/*453614*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMADDSUB132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453628*/            0, /*End of Scope*/
/*453629*/          /*SwitchOpcode*/ 48|128,4/*560*/, TARGET_VAL(X86ISD::FMSUBADD),// ->454193
/*453633*/            OPC_Scope, 99, /*->453734*/ // 9 children in Scope
/*453635*/              OPC_RecordChild0, // #1 = $src2
/*453636*/              OPC_Scope, 48, /*->453686*/ // 2 children in Scope
/*453638*/                OPC_RecordChild1, // #2 = $src1
/*453639*/                OPC_MoveChild2,
/*453640*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453643*/                OPC_MoveChild0,
/*453644*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453647*/                OPC_RecordMemRef,
/*453648*/                OPC_RecordNode, // #3 = 'ld' chained node
/*453649*/                OPC_CheckFoldableChainNode,
/*453650*/                OPC_RecordChild1, // #4 = $src3
/*453651*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453653*/                OPC_CheckPredicate, 9, // Predicate_load
/*453655*/                OPC_CheckType, MVT::f32,
/*453657*/                OPC_MoveParent,
/*453658*/                OPC_MoveParent,
/*453659*/                OPC_MoveParent,
/*453660*/                OPC_CheckChild2Same, 2,
/*453662*/                OPC_CheckType, MVT::v16f32,
/*453664*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453666*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453669*/                OPC_EmitMergeInputChains, 1, 3, 
/*453672*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453686*/              /*Scope*/ 46, /*->453733*/
/*453687*/                OPC_MoveChild1,
/*453688*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453691*/                OPC_MoveChild0,
/*453692*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453695*/                OPC_RecordMemRef,
/*453696*/                OPC_RecordNode, // #2 = 'ld' chained node
/*453697*/                OPC_CheckFoldableChainNode,
/*453698*/                OPC_RecordChild1, // #3 = $src3
/*453699*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453701*/                OPC_CheckPredicate, 9, // Predicate_load
/*453703*/                OPC_CheckType, MVT::f32,
/*453705*/                OPC_MoveParent,
/*453706*/                OPC_MoveParent,
/*453707*/                OPC_RecordChild2, // #4 = $src1
/*453708*/                OPC_MoveParent,
/*453709*/                OPC_CheckChild2Same, 4,
/*453711*/                OPC_CheckType, MVT::v16f32,
/*453713*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453715*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453718*/                OPC_EmitMergeInputChains1_2,
/*453719*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453733*/              0, /*End of Scope*/
/*453734*/            /*Scope*/ 47, /*->453782*/
/*453735*/              OPC_MoveChild0,
/*453736*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453739*/              OPC_MoveChild0,
/*453740*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453743*/              OPC_RecordMemRef,
/*453744*/              OPC_RecordNode, // #1 = 'ld' chained node
/*453745*/              OPC_CheckFoldableChainNode,
/*453746*/              OPC_RecordChild1, // #2 = $src3
/*453747*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453749*/              OPC_CheckPredicate, 9, // Predicate_load
/*453751*/              OPC_CheckType, MVT::f32,
/*453753*/              OPC_MoveParent,
/*453754*/              OPC_MoveParent,
/*453755*/              OPC_RecordChild1, // #3 = $src1
/*453756*/              OPC_RecordChild2, // #4 = $src2
/*453757*/              OPC_MoveParent,
/*453758*/              OPC_CheckChild2Same, 3,
/*453760*/              OPC_CheckType, MVT::v16f32,
/*453762*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453764*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453767*/              OPC_EmitMergeInputChains1_1,
/*453768*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMSUBADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453782*/            /*Scope*/ 49, /*->453832*/
/*453783*/              OPC_RecordChild0, // #1 = $src1
/*453784*/              OPC_RecordChild1, // #2 = $src2
/*453785*/              OPC_MoveChild2,
/*453786*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453789*/              OPC_MoveChild0,
/*453790*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453793*/              OPC_RecordMemRef,
/*453794*/              OPC_RecordNode, // #3 = 'ld' chained node
/*453795*/              OPC_CheckFoldableChainNode,
/*453796*/              OPC_RecordChild1, // #4 = $src3
/*453797*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453799*/              OPC_CheckPredicate, 9, // Predicate_load
/*453801*/              OPC_CheckType, MVT::f32,
/*453803*/              OPC_MoveParent,
/*453804*/              OPC_MoveParent,
/*453805*/              OPC_MoveParent,
/*453806*/              OPC_CheckChild2Same, 1,
/*453808*/              OPC_CheckType, MVT::v16f32,
/*453810*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453812*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453815*/              OPC_EmitMergeInputChains, 1, 3, 
/*453818*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMSUBADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453832*/            /*Scope*/ 47, /*->453880*/
/*453833*/              OPC_MoveChild0,
/*453834*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453837*/              OPC_MoveChild0,
/*453838*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453841*/              OPC_RecordMemRef,
/*453842*/              OPC_RecordNode, // #1 = 'ld' chained node
/*453843*/              OPC_CheckFoldableChainNode,
/*453844*/              OPC_RecordChild1, // #2 = $src3
/*453845*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453847*/              OPC_CheckPredicate, 9, // Predicate_load
/*453849*/              OPC_CheckType, MVT::f32,
/*453851*/              OPC_MoveParent,
/*453852*/              OPC_MoveParent,
/*453853*/              OPC_RecordChild1, // #3 = $src2
/*453854*/              OPC_RecordChild2, // #4 = $src1
/*453855*/              OPC_MoveParent,
/*453856*/              OPC_CheckChild2Same, 4,
/*453858*/              OPC_CheckType, MVT::v16f32,
/*453860*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453862*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453865*/              OPC_EmitMergeInputChains1_1,
/*453866*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFMSUBADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453880*/            /*Scope*/ 8|128,1/*136*/, /*->454018*/
/*453882*/              OPC_RecordChild0, // #1 = $src1
/*453883*/              OPC_Scope, 46, /*->453931*/ // 3 children in Scope
/*453885*/                OPC_MoveChild1,
/*453886*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*453889*/                OPC_MoveChild0,
/*453890*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453893*/                OPC_RecordMemRef,
/*453894*/                OPC_RecordNode, // #2 = 'ld' chained node
/*453895*/                OPC_CheckFoldableChainNode,
/*453896*/                OPC_RecordChild1, // #3 = $src3
/*453897*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453899*/                OPC_CheckPredicate, 9, // Predicate_load
/*453901*/                OPC_CheckType, MVT::f32,
/*453903*/                OPC_MoveParent,
/*453904*/                OPC_MoveParent,
/*453905*/                OPC_RecordChild2, // #4 = $src2
/*453906*/                OPC_MoveParent,
/*453907*/                OPC_CheckChild2Same, 1,
/*453909*/                OPC_CheckType, MVT::v16f32,
/*453911*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453913*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453916*/                OPC_EmitMergeInputChains1_2,
/*453917*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFMSUBADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453931*/              /*Scope*/ 43, /*->453975*/
/*453932*/                OPC_RecordChild1, // #2 = $src1
/*453933*/                OPC_MoveChild2,
/*453934*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453937*/                OPC_RecordMemRef,
/*453938*/                OPC_RecordNode, // #3 = 'ld' chained node
/*453939*/                OPC_CheckFoldableChainNode,
/*453940*/                OPC_RecordChild1, // #4 = $src3
/*453941*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453943*/                OPC_CheckPredicate, 9, // Predicate_load
/*453945*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*453947*/                OPC_MoveParent,
/*453948*/                OPC_MoveParent,
/*453949*/                OPC_CheckChild2Same, 2,
/*453951*/                OPC_CheckType, MVT::v16f32,
/*453953*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453955*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*453958*/                OPC_EmitMergeInputChains, 1, 3, 
/*453961*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*453975*/              /*Scope*/ 41, /*->454017*/
/*453976*/                OPC_MoveChild1,
/*453977*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*453980*/                OPC_RecordMemRef,
/*453981*/                OPC_RecordNode, // #2 = 'ld' chained node
/*453982*/                OPC_CheckFoldableChainNode,
/*453983*/                OPC_RecordChild1, // #3 = $src3
/*453984*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453986*/                OPC_CheckPredicate, 9, // Predicate_load
/*453988*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*453990*/                OPC_MoveParent,
/*453991*/                OPC_RecordChild2, // #4 = $src1
/*453992*/                OPC_MoveParent,
/*453993*/                OPC_CheckChild2Same, 4,
/*453995*/                OPC_CheckType, MVT::v16f32,
/*453997*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453999*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454002*/                OPC_EmitMergeInputChains1_2,
/*454003*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454017*/              0, /*End of Scope*/
/*454018*/            /*Scope*/ 42, /*->454061*/
/*454019*/              OPC_MoveChild0,
/*454020*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454023*/              OPC_RecordMemRef,
/*454024*/              OPC_RecordNode, // #1 = 'ld' chained node
/*454025*/              OPC_CheckFoldableChainNode,
/*454026*/              OPC_RecordChild1, // #2 = $src3
/*454027*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454029*/              OPC_CheckPredicate, 9, // Predicate_load
/*454031*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*454033*/              OPC_MoveParent,
/*454034*/              OPC_RecordChild1, // #3 = $src1
/*454035*/              OPC_RecordChild2, // #4 = $src2
/*454036*/              OPC_MoveParent,
/*454037*/              OPC_CheckChild2Same, 3,
/*454039*/              OPC_CheckType, MVT::v16f32,
/*454041*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454043*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454046*/              OPC_EmitMergeInputChains1_1,
/*454047*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMSUBADD132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454061*/            /*Scope*/ 44, /*->454106*/
/*454062*/              OPC_RecordChild0, // #1 = $src1
/*454063*/              OPC_RecordChild1, // #2 = $src2
/*454064*/              OPC_MoveChild2,
/*454065*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454068*/              OPC_RecordMemRef,
/*454069*/              OPC_RecordNode, // #3 = 'ld' chained node
/*454070*/              OPC_CheckFoldableChainNode,
/*454071*/              OPC_RecordChild1, // #4 = $src3
/*454072*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454074*/              OPC_CheckPredicate, 9, // Predicate_load
/*454076*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*454078*/              OPC_MoveParent,
/*454079*/              OPC_MoveParent,
/*454080*/              OPC_CheckChild2Same, 1,
/*454082*/              OPC_CheckType, MVT::v16f32,
/*454084*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454086*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454089*/              OPC_EmitMergeInputChains, 1, 3, 
/*454092*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMSUBADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454106*/            /*Scope*/ 42, /*->454149*/
/*454107*/              OPC_MoveChild0,
/*454108*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454111*/              OPC_RecordMemRef,
/*454112*/              OPC_RecordNode, // #1 = 'ld' chained node
/*454113*/              OPC_CheckFoldableChainNode,
/*454114*/              OPC_RecordChild1, // #2 = $src3
/*454115*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454117*/              OPC_CheckPredicate, 9, // Predicate_load
/*454119*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*454121*/              OPC_MoveParent,
/*454122*/              OPC_RecordChild1, // #3 = $src2
/*454123*/              OPC_RecordChild2, // #4 = $src1
/*454124*/              OPC_MoveParent,
/*454125*/              OPC_CheckChild2Same, 4,
/*454127*/              OPC_CheckType, MVT::v16f32,
/*454129*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454131*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454134*/              OPC_EmitMergeInputChains1_1,
/*454135*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMSUBADD231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454149*/            /*Scope*/ 42, /*->454192*/
/*454150*/              OPC_RecordChild0, // #1 = $src1
/*454151*/              OPC_MoveChild1,
/*454152*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454155*/              OPC_RecordMemRef,
/*454156*/              OPC_RecordNode, // #2 = 'ld' chained node
/*454157*/              OPC_CheckFoldableChainNode,
/*454158*/              OPC_RecordChild1, // #3 = $src3
/*454159*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454161*/              OPC_CheckPredicate, 9, // Predicate_load
/*454163*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*454165*/              OPC_MoveParent,
/*454166*/              OPC_RecordChild2, // #4 = $src2
/*454167*/              OPC_MoveParent,
/*454168*/              OPC_CheckChild2Same, 1,
/*454170*/              OPC_CheckType, MVT::v16f32,
/*454172*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454174*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454177*/              OPC_EmitMergeInputChains1_2,
/*454178*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFMSUBADD132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454192*/            0, /*End of Scope*/
/*454193*/          /*SwitchOpcode*/ 48|128,4/*560*/, TARGET_VAL(X86ISD::FNMADD),// ->454757
/*454197*/            OPC_Scope, 99, /*->454298*/ // 9 children in Scope
/*454199*/              OPC_RecordChild0, // #1 = $src2
/*454200*/              OPC_Scope, 48, /*->454250*/ // 2 children in Scope
/*454202*/                OPC_RecordChild1, // #2 = $src1
/*454203*/                OPC_MoveChild2,
/*454204*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*454207*/                OPC_MoveChild0,
/*454208*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454211*/                OPC_RecordMemRef,
/*454212*/                OPC_RecordNode, // #3 = 'ld' chained node
/*454213*/                OPC_CheckFoldableChainNode,
/*454214*/                OPC_RecordChild1, // #4 = $src3
/*454215*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454217*/                OPC_CheckPredicate, 9, // Predicate_load
/*454219*/                OPC_CheckType, MVT::f32,
/*454221*/                OPC_MoveParent,
/*454222*/                OPC_MoveParent,
/*454223*/                OPC_MoveParent,
/*454224*/                OPC_CheckChild2Same, 2,
/*454226*/                OPC_CheckType, MVT::v16f32,
/*454228*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454230*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454233*/                OPC_EmitMergeInputChains, 1, 3, 
/*454236*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454250*/              /*Scope*/ 46, /*->454297*/
/*454251*/                OPC_MoveChild1,
/*454252*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*454255*/                OPC_MoveChild0,
/*454256*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454259*/                OPC_RecordMemRef,
/*454260*/                OPC_RecordNode, // #2 = 'ld' chained node
/*454261*/                OPC_CheckFoldableChainNode,
/*454262*/                OPC_RecordChild1, // #3 = $src3
/*454263*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454265*/                OPC_CheckPredicate, 9, // Predicate_load
/*454267*/                OPC_CheckType, MVT::f32,
/*454269*/                OPC_MoveParent,
/*454270*/                OPC_MoveParent,
/*454271*/                OPC_RecordChild2, // #4 = $src1
/*454272*/                OPC_MoveParent,
/*454273*/                OPC_CheckChild2Same, 4,
/*454275*/                OPC_CheckType, MVT::v16f32,
/*454277*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454279*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454282*/                OPC_EmitMergeInputChains1_2,
/*454283*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454297*/              0, /*End of Scope*/
/*454298*/            /*Scope*/ 47, /*->454346*/
/*454299*/              OPC_MoveChild0,
/*454300*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*454303*/              OPC_MoveChild0,
/*454304*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454307*/              OPC_RecordMemRef,
/*454308*/              OPC_RecordNode, // #1 = 'ld' chained node
/*454309*/              OPC_CheckFoldableChainNode,
/*454310*/              OPC_RecordChild1, // #2 = $src3
/*454311*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454313*/              OPC_CheckPredicate, 9, // Predicate_load
/*454315*/              OPC_CheckType, MVT::f32,
/*454317*/              OPC_MoveParent,
/*454318*/              OPC_MoveParent,
/*454319*/              OPC_RecordChild1, // #3 = $src1
/*454320*/              OPC_RecordChild2, // #4 = $src2
/*454321*/              OPC_MoveParent,
/*454322*/              OPC_CheckChild2Same, 3,
/*454324*/              OPC_CheckType, MVT::v16f32,
/*454326*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454328*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454331*/              OPC_EmitMergeInputChains1_1,
/*454332*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFNMADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454346*/            /*Scope*/ 49, /*->454396*/
/*454347*/              OPC_RecordChild0, // #1 = $src1
/*454348*/              OPC_RecordChild1, // #2 = $src2
/*454349*/              OPC_MoveChild2,
/*454350*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*454353*/              OPC_MoveChild0,
/*454354*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454357*/              OPC_RecordMemRef,
/*454358*/              OPC_RecordNode, // #3 = 'ld' chained node
/*454359*/              OPC_CheckFoldableChainNode,
/*454360*/              OPC_RecordChild1, // #4 = $src3
/*454361*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454363*/              OPC_CheckPredicate, 9, // Predicate_load
/*454365*/              OPC_CheckType, MVT::f32,
/*454367*/              OPC_MoveParent,
/*454368*/              OPC_MoveParent,
/*454369*/              OPC_MoveParent,
/*454370*/              OPC_CheckChild2Same, 1,
/*454372*/              OPC_CheckType, MVT::v16f32,
/*454374*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454376*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454379*/              OPC_EmitMergeInputChains, 1, 3, 
/*454382*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFNMADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454396*/            /*Scope*/ 47, /*->454444*/
/*454397*/              OPC_MoveChild0,
/*454398*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*454401*/              OPC_MoveChild0,
/*454402*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454405*/              OPC_RecordMemRef,
/*454406*/              OPC_RecordNode, // #1 = 'ld' chained node
/*454407*/              OPC_CheckFoldableChainNode,
/*454408*/              OPC_RecordChild1, // #2 = $src3
/*454409*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454411*/              OPC_CheckPredicate, 9, // Predicate_load
/*454413*/              OPC_CheckType, MVT::f32,
/*454415*/              OPC_MoveParent,
/*454416*/              OPC_MoveParent,
/*454417*/              OPC_RecordChild1, // #3 = $src2
/*454418*/              OPC_RecordChild2, // #4 = $src1
/*454419*/              OPC_MoveParent,
/*454420*/              OPC_CheckChild2Same, 4,
/*454422*/              OPC_CheckType, MVT::v16f32,
/*454424*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454426*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454429*/              OPC_EmitMergeInputChains1_1,
/*454430*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFNMADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454444*/            /*Scope*/ 8|128,1/*136*/, /*->454582*/
/*454446*/              OPC_RecordChild0, // #1 = $src1
/*454447*/              OPC_Scope, 46, /*->454495*/ // 3 children in Scope
/*454449*/                OPC_MoveChild1,
/*454450*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*454453*/                OPC_MoveChild0,
/*454454*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454457*/                OPC_RecordMemRef,
/*454458*/                OPC_RecordNode, // #2 = 'ld' chained node
/*454459*/                OPC_CheckFoldableChainNode,
/*454460*/                OPC_RecordChild1, // #3 = $src3
/*454461*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454463*/                OPC_CheckPredicate, 9, // Predicate_load
/*454465*/                OPC_CheckType, MVT::f32,
/*454467*/                OPC_MoveParent,
/*454468*/                OPC_MoveParent,
/*454469*/                OPC_RecordChild2, // #4 = $src2
/*454470*/                OPC_MoveParent,
/*454471*/                OPC_CheckChild2Same, 1,
/*454473*/                OPC_CheckType, MVT::v16f32,
/*454475*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454477*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454480*/                OPC_EmitMergeInputChains1_2,
/*454481*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454495*/              /*Scope*/ 43, /*->454539*/
/*454496*/                OPC_RecordChild1, // #2 = $src1
/*454497*/                OPC_MoveChild2,
/*454498*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454501*/                OPC_RecordMemRef,
/*454502*/                OPC_RecordNode, // #3 = 'ld' chained node
/*454503*/                OPC_CheckFoldableChainNode,
/*454504*/                OPC_RecordChild1, // #4 = $src3
/*454505*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454507*/                OPC_CheckPredicate, 9, // Predicate_load
/*454509*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*454511*/                OPC_MoveParent,
/*454512*/                OPC_MoveParent,
/*454513*/                OPC_CheckChild2Same, 2,
/*454515*/                OPC_CheckType, MVT::v16f32,
/*454517*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454519*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454522*/                OPC_EmitMergeInputChains, 1, 3, 
/*454525*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454539*/              /*Scope*/ 41, /*->454581*/
/*454540*/                OPC_MoveChild1,
/*454541*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454544*/                OPC_RecordMemRef,
/*454545*/                OPC_RecordNode, // #2 = 'ld' chained node
/*454546*/                OPC_CheckFoldableChainNode,
/*454547*/                OPC_RecordChild1, // #3 = $src3
/*454548*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454550*/                OPC_CheckPredicate, 9, // Predicate_load
/*454552*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*454554*/                OPC_MoveParent,
/*454555*/                OPC_RecordChild2, // #4 = $src1
/*454556*/                OPC_MoveParent,
/*454557*/                OPC_CheckChild2Same, 4,
/*454559*/                OPC_CheckType, MVT::v16f32,
/*454561*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454563*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454566*/                OPC_EmitMergeInputChains1_2,
/*454567*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454581*/              0, /*End of Scope*/
/*454582*/            /*Scope*/ 42, /*->454625*/
/*454583*/              OPC_MoveChild0,
/*454584*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454587*/              OPC_RecordMemRef,
/*454588*/              OPC_RecordNode, // #1 = 'ld' chained node
/*454589*/              OPC_CheckFoldableChainNode,
/*454590*/              OPC_RecordChild1, // #2 = $src3
/*454591*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454593*/              OPC_CheckPredicate, 9, // Predicate_load
/*454595*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*454597*/              OPC_MoveParent,
/*454598*/              OPC_RecordChild1, // #3 = $src1
/*454599*/              OPC_RecordChild2, // #4 = $src2
/*454600*/              OPC_MoveParent,
/*454601*/              OPC_CheckChild2Same, 3,
/*454603*/              OPC_CheckType, MVT::v16f32,
/*454605*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454607*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454610*/              OPC_EmitMergeInputChains1_1,
/*454611*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFNMADD132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454625*/            /*Scope*/ 44, /*->454670*/
/*454626*/              OPC_RecordChild0, // #1 = $src1
/*454627*/              OPC_RecordChild1, // #2 = $src2
/*454628*/              OPC_MoveChild2,
/*454629*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454632*/              OPC_RecordMemRef,
/*454633*/              OPC_RecordNode, // #3 = 'ld' chained node
/*454634*/              OPC_CheckFoldableChainNode,
/*454635*/              OPC_RecordChild1, // #4 = $src3
/*454636*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454638*/              OPC_CheckPredicate, 9, // Predicate_load
/*454640*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*454642*/              OPC_MoveParent,
/*454643*/              OPC_MoveParent,
/*454644*/              OPC_CheckChild2Same, 1,
/*454646*/              OPC_CheckType, MVT::v16f32,
/*454648*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454650*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454653*/              OPC_EmitMergeInputChains, 1, 3, 
/*454656*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFNMADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454670*/            /*Scope*/ 42, /*->454713*/
/*454671*/              OPC_MoveChild0,
/*454672*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454675*/              OPC_RecordMemRef,
/*454676*/              OPC_RecordNode, // #1 = 'ld' chained node
/*454677*/              OPC_CheckFoldableChainNode,
/*454678*/              OPC_RecordChild1, // #2 = $src3
/*454679*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454681*/              OPC_CheckPredicate, 9, // Predicate_load
/*454683*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*454685*/              OPC_MoveParent,
/*454686*/              OPC_RecordChild1, // #3 = $src2
/*454687*/              OPC_RecordChild2, // #4 = $src1
/*454688*/              OPC_MoveParent,
/*454689*/              OPC_CheckChild2Same, 4,
/*454691*/              OPC_CheckType, MVT::v16f32,
/*454693*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454695*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454698*/              OPC_EmitMergeInputChains1_1,
/*454699*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFNMADD231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454713*/            /*Scope*/ 42, /*->454756*/
/*454714*/              OPC_RecordChild0, // #1 = $src1
/*454715*/              OPC_MoveChild1,
/*454716*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454719*/              OPC_RecordMemRef,
/*454720*/              OPC_RecordNode, // #2 = 'ld' chained node
/*454721*/              OPC_CheckFoldableChainNode,
/*454722*/              OPC_RecordChild1, // #3 = $src3
/*454723*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454725*/              OPC_CheckPredicate, 9, // Predicate_load
/*454727*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*454729*/              OPC_MoveParent,
/*454730*/              OPC_RecordChild2, // #4 = $src2
/*454731*/              OPC_MoveParent,
/*454732*/              OPC_CheckChild2Same, 1,
/*454734*/              OPC_CheckType, MVT::v16f32,
/*454736*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454738*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454741*/              OPC_EmitMergeInputChains1_2,
/*454742*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFNMADD132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454756*/            0, /*End of Scope*/
/*454757*/          /*SwitchOpcode*/ 48|128,4/*560*/, TARGET_VAL(X86ISD::FNMSUB),// ->455321
/*454761*/            OPC_Scope, 99, /*->454862*/ // 9 children in Scope
/*454763*/              OPC_RecordChild0, // #1 = $src2
/*454764*/              OPC_Scope, 48, /*->454814*/ // 2 children in Scope
/*454766*/                OPC_RecordChild1, // #2 = $src1
/*454767*/                OPC_MoveChild2,
/*454768*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*454771*/                OPC_MoveChild0,
/*454772*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454775*/                OPC_RecordMemRef,
/*454776*/                OPC_RecordNode, // #3 = 'ld' chained node
/*454777*/                OPC_CheckFoldableChainNode,
/*454778*/                OPC_RecordChild1, // #4 = $src3
/*454779*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454781*/                OPC_CheckPredicate, 9, // Predicate_load
/*454783*/                OPC_CheckType, MVT::f32,
/*454785*/                OPC_MoveParent,
/*454786*/                OPC_MoveParent,
/*454787*/                OPC_MoveParent,
/*454788*/                OPC_CheckChild2Same, 2,
/*454790*/                OPC_CheckType, MVT::v16f32,
/*454792*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454794*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454797*/                OPC_EmitMergeInputChains, 1, 3, 
/*454800*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454814*/              /*Scope*/ 46, /*->454861*/
/*454815*/                OPC_MoveChild1,
/*454816*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*454819*/                OPC_MoveChild0,
/*454820*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454823*/                OPC_RecordMemRef,
/*454824*/                OPC_RecordNode, // #2 = 'ld' chained node
/*454825*/                OPC_CheckFoldableChainNode,
/*454826*/                OPC_RecordChild1, // #3 = $src3
/*454827*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454829*/                OPC_CheckPredicate, 9, // Predicate_load
/*454831*/                OPC_CheckType, MVT::f32,
/*454833*/                OPC_MoveParent,
/*454834*/                OPC_MoveParent,
/*454835*/                OPC_RecordChild2, // #4 = $src1
/*454836*/                OPC_MoveParent,
/*454837*/                OPC_CheckChild2Same, 4,
/*454839*/                OPC_CheckType, MVT::v16f32,
/*454841*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454843*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454846*/                OPC_EmitMergeInputChains1_2,
/*454847*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454861*/              0, /*End of Scope*/
/*454862*/            /*Scope*/ 47, /*->454910*/
/*454863*/              OPC_MoveChild0,
/*454864*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*454867*/              OPC_MoveChild0,
/*454868*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454871*/              OPC_RecordMemRef,
/*454872*/              OPC_RecordNode, // #1 = 'ld' chained node
/*454873*/              OPC_CheckFoldableChainNode,
/*454874*/              OPC_RecordChild1, // #2 = $src3
/*454875*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454877*/              OPC_CheckPredicate, 9, // Predicate_load
/*454879*/              OPC_CheckType, MVT::f32,
/*454881*/              OPC_MoveParent,
/*454882*/              OPC_MoveParent,
/*454883*/              OPC_RecordChild1, // #3 = $src1
/*454884*/              OPC_RecordChild2, // #4 = $src2
/*454885*/              OPC_MoveParent,
/*454886*/              OPC_CheckChild2Same, 3,
/*454888*/              OPC_CheckType, MVT::v16f32,
/*454890*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454892*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454895*/              OPC_EmitMergeInputChains1_1,
/*454896*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFNMSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454910*/            /*Scope*/ 49, /*->454960*/
/*454911*/              OPC_RecordChild0, // #1 = $src1
/*454912*/              OPC_RecordChild1, // #2 = $src2
/*454913*/              OPC_MoveChild2,
/*454914*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*454917*/              OPC_MoveChild0,
/*454918*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454921*/              OPC_RecordMemRef,
/*454922*/              OPC_RecordNode, // #3 = 'ld' chained node
/*454923*/              OPC_CheckFoldableChainNode,
/*454924*/              OPC_RecordChild1, // #4 = $src3
/*454925*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454927*/              OPC_CheckPredicate, 9, // Predicate_load
/*454929*/              OPC_CheckType, MVT::f32,
/*454931*/              OPC_MoveParent,
/*454932*/              OPC_MoveParent,
/*454933*/              OPC_MoveParent,
/*454934*/              OPC_CheckChild2Same, 1,
/*454936*/              OPC_CheckType, MVT::v16f32,
/*454938*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454940*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454943*/              OPC_EmitMergeInputChains, 1, 3, 
/*454946*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFNMSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*454960*/            /*Scope*/ 47, /*->455008*/
/*454961*/              OPC_MoveChild0,
/*454962*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*454965*/              OPC_MoveChild0,
/*454966*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*454969*/              OPC_RecordMemRef,
/*454970*/              OPC_RecordNode, // #1 = 'ld' chained node
/*454971*/              OPC_CheckFoldableChainNode,
/*454972*/              OPC_RecordChild1, // #2 = $src3
/*454973*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454975*/              OPC_CheckPredicate, 9, // Predicate_load
/*454977*/              OPC_CheckType, MVT::f32,
/*454979*/              OPC_MoveParent,
/*454980*/              OPC_MoveParent,
/*454981*/              OPC_RecordChild1, // #3 = $src2
/*454982*/              OPC_RecordChild2, // #4 = $src1
/*454983*/              OPC_MoveParent,
/*454984*/              OPC_CheckChild2Same, 4,
/*454986*/              OPC_CheckType, MVT::v16f32,
/*454988*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454990*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*454993*/              OPC_EmitMergeInputChains1_1,
/*454994*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFNMSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*455008*/            /*Scope*/ 8|128,1/*136*/, /*->455146*/
/*455010*/              OPC_RecordChild0, // #1 = $src1
/*455011*/              OPC_Scope, 46, /*->455059*/ // 3 children in Scope
/*455013*/                OPC_MoveChild1,
/*455014*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*455017*/                OPC_MoveChild0,
/*455018*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455021*/                OPC_RecordMemRef,
/*455022*/                OPC_RecordNode, // #2 = 'ld' chained node
/*455023*/                OPC_CheckFoldableChainNode,
/*455024*/                OPC_RecordChild1, // #3 = $src3
/*455025*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455027*/                OPC_CheckPredicate, 9, // Predicate_load
/*455029*/                OPC_CheckType, MVT::f32,
/*455031*/                OPC_MoveParent,
/*455032*/                OPC_MoveParent,
/*455033*/                OPC_RecordChild2, // #4 = $src2
/*455034*/                OPC_MoveParent,
/*455035*/                OPC_CheckChild2Same, 1,
/*455037*/                OPC_CheckType, MVT::v16f32,
/*455039*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455041*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*455044*/                OPC_EmitMergeInputChains1_2,
/*455045*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                          // Dst: (VFNMSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*455059*/              /*Scope*/ 43, /*->455103*/
/*455060*/                OPC_RecordChild1, // #2 = $src1
/*455061*/                OPC_MoveChild2,
/*455062*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455065*/                OPC_RecordMemRef,
/*455066*/                OPC_RecordNode, // #3 = 'ld' chained node
/*455067*/                OPC_CheckFoldableChainNode,
/*455068*/                OPC_RecordChild1, // #4 = $src3
/*455069*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455071*/                OPC_CheckPredicate, 9, // Predicate_load
/*455073*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*455075*/                OPC_MoveParent,
/*455076*/                OPC_MoveParent,
/*455077*/                OPC_CheckChild2Same, 2,
/*455079*/                OPC_CheckType, MVT::v16f32,
/*455081*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455083*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*455086*/                OPC_EmitMergeInputChains, 1, 3, 
/*455089*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*455103*/              /*Scope*/ 41, /*->455145*/
/*455104*/                OPC_MoveChild1,
/*455105*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455108*/                OPC_RecordMemRef,
/*455109*/                OPC_RecordNode, // #2 = 'ld' chained node
/*455110*/                OPC_CheckFoldableChainNode,
/*455111*/                OPC_RecordChild1, // #3 = $src3
/*455112*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455114*/                OPC_CheckPredicate, 9, // Predicate_load
/*455116*/                OPC_CheckPredicate, 40, // Predicate_vecload
/*455118*/                OPC_MoveParent,
/*455119*/                OPC_RecordChild2, // #4 = $src1
/*455120*/                OPC_MoveParent,
/*455121*/                OPC_CheckChild2Same, 4,
/*455123*/                OPC_CheckType, MVT::v16f32,
/*455125*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455127*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*455130*/                OPC_EmitMergeInputChains1_2,
/*455131*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*455145*/              0, /*End of Scope*/
/*455146*/            /*Scope*/ 42, /*->455189*/
/*455147*/              OPC_MoveChild0,
/*455148*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455151*/              OPC_RecordMemRef,
/*455152*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455153*/              OPC_CheckFoldableChainNode,
/*455154*/              OPC_RecordChild1, // #2 = $src3
/*455155*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455157*/              OPC_CheckPredicate, 9, // Predicate_load
/*455159*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*455161*/              OPC_MoveParent,
/*455162*/              OPC_RecordChild1, // #3 = $src1
/*455163*/              OPC_RecordChild2, // #4 = $src2
/*455164*/              OPC_MoveParent,
/*455165*/              OPC_CheckChild2Same, 3,
/*455167*/              OPC_CheckType, MVT::v16f32,
/*455169*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455171*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*455174*/              OPC_EmitMergeInputChains1_1,
/*455175*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFNMSUB132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*455189*/            /*Scope*/ 44, /*->455234*/
/*455190*/              OPC_RecordChild0, // #1 = $src1
/*455191*/              OPC_RecordChild1, // #2 = $src2
/*455192*/              OPC_MoveChild2,
/*455193*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455196*/              OPC_RecordMemRef,
/*455197*/              OPC_RecordNode, // #3 = 'ld' chained node
/*455198*/              OPC_CheckFoldableChainNode,
/*455199*/              OPC_RecordChild1, // #4 = $src3
/*455200*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455202*/              OPC_CheckPredicate, 9, // Predicate_load
/*455204*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*455206*/              OPC_MoveParent,
/*455207*/              OPC_MoveParent,
/*455208*/              OPC_CheckChild2Same, 1,
/*455210*/              OPC_CheckType, MVT::v16f32,
/*455212*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455214*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*455217*/              OPC_EmitMergeInputChains, 1, 3, 
/*455220*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFNMSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*455234*/            /*Scope*/ 42, /*->455277*/
/*455235*/              OPC_MoveChild0,
/*455236*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455239*/              OPC_RecordMemRef,
/*455240*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455241*/              OPC_CheckFoldableChainNode,
/*455242*/              OPC_RecordChild1, // #2 = $src3
/*455243*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455245*/              OPC_CheckPredicate, 9, // Predicate_load
/*455247*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*455249*/              OPC_MoveParent,
/*455250*/              OPC_RecordChild1, // #3 = $src2
/*455251*/              OPC_RecordChild2, // #4 = $src1
/*455252*/              OPC_MoveParent,
/*455253*/              OPC_CheckChild2Same, 4,
/*455255*/              OPC_CheckType, MVT::v16f32,
/*455257*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455259*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*455262*/              OPC_EmitMergeInputChains1_1,
/*455263*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 3, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFNMSUB231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*455277*/            /*Scope*/ 42, /*->455320*/
/*455278*/              OPC_RecordChild0, // #1 = $src1
/*455279*/              OPC_MoveChild1,
/*455280*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455283*/              OPC_RecordMemRef,
/*455284*/              OPC_RecordNode, // #2 = 'ld' chained node
/*455285*/              OPC_CheckFoldableChainNode,
/*455286*/              OPC_RecordChild1, // #3 = $src3
/*455287*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455289*/              OPC_CheckPredicate, 9, // Predicate_load
/*455291*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*455293*/              OPC_MoveParent,
/*455294*/              OPC_RecordChild2, // #4 = $src2
/*455295*/              OPC_MoveParent,
/*455296*/              OPC_CheckChild2Same, 1,
/*455298*/              OPC_CheckType, MVT::v16f32,
/*455300*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455302*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*455305*/              OPC_EmitMergeInputChains1_2,
/*455306*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VFNMSUB132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*455320*/            0, /*End of Scope*/
/*455321*/          /*SwitchOpcode*/ 93, TARGET_VAL(ISD::SINT_TO_FP),// ->455417
/*455324*/            OPC_MoveChild0,
/*455325*/            OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::BITCAST),// ->455372
/*455329*/              OPC_MoveChild0,
/*455330*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455333*/              OPC_RecordMemRef,
/*455334*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455335*/              OPC_CheckFoldableChainNode,
/*455336*/              OPC_RecordChild1, // #2 = $src
/*455337*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455339*/              OPC_CheckPredicate, 9, // Predicate_load
/*455341*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*455343*/              OPC_CheckType, MVT::v8i64,
/*455345*/              OPC_MoveParent,
/*455346*/              OPC_CheckType, MVT::v16i32,
/*455348*/              OPC_MoveParent,
/*455349*/              OPC_MoveParent,
/*455350*/              OPC_RecordChild2, // #3 = $src0
/*455351*/              OPC_CheckType, MVT::v16f32,
/*455353*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455355*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*455358*/              OPC_EmitMergeInputChains1_1,
/*455359*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (sint_to_fp:{ *:[v16f32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VCVTDQ2PSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*455372*/            /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->455416
/*455375*/              OPC_MoveChild0,
/*455376*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455379*/              OPC_RecordMemRef,
/*455380*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455381*/              OPC_CheckFoldableChainNode,
/*455382*/              OPC_RecordChild1, // #2 = $src
/*455383*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455385*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*455387*/              OPC_CheckType, MVT::i32,
/*455389*/              OPC_MoveParent,
/*455390*/              OPC_CheckType, MVT::v16i32,
/*455392*/              OPC_MoveParent,
/*455393*/              OPC_MoveParent,
/*455394*/              OPC_RecordChild2, // #3 = $src0
/*455395*/              OPC_CheckType, MVT::v16f32,
/*455397*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455399*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*455402*/              OPC_EmitMergeInputChains1_1,
/*455403*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (sint_to_fp:{ *:[v16f32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VCVTDQ2PSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*455416*/            0, // EndSwitchOpcode
/*455417*/          /*SwitchOpcode*/ 93, TARGET_VAL(ISD::UINT_TO_FP),// ->455513
/*455420*/            OPC_MoveChild0,
/*455421*/            OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::BITCAST),// ->455468
/*455425*/              OPC_MoveChild0,
/*455426*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455429*/              OPC_RecordMemRef,
/*455430*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455431*/              OPC_CheckFoldableChainNode,
/*455432*/              OPC_RecordChild1, // #2 = $src
/*455433*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455435*/              OPC_CheckPredicate, 9, // Predicate_load
/*455437*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*455439*/              OPC_CheckType, MVT::v8i64,
/*455441*/              OPC_MoveParent,
/*455442*/              OPC_CheckType, MVT::v16i32,
/*455444*/              OPC_MoveParent,
/*455445*/              OPC_MoveParent,
/*455446*/              OPC_RecordChild2, // #3 = $src0
/*455447*/              OPC_CheckType, MVT::v16f32,
/*455449*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455451*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*455454*/              OPC_EmitMergeInputChains1_1,
/*455455*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (uint_to_fp:{ *:[v16f32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VCVTUDQ2PSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*455468*/            /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST),// ->455512
/*455471*/              OPC_MoveChild0,
/*455472*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455475*/              OPC_RecordMemRef,
/*455476*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455477*/              OPC_CheckFoldableChainNode,
/*455478*/              OPC_RecordChild1, // #2 = $src
/*455479*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455481*/              OPC_CheckPredicate, 8, // Predicate_loadi32
/*455483*/              OPC_CheckType, MVT::i32,
/*455485*/              OPC_MoveParent,
/*455486*/              OPC_CheckType, MVT::v16i32,
/*455488*/              OPC_MoveParent,
/*455489*/              OPC_MoveParent,
/*455490*/              OPC_RecordChild2, // #3 = $src0
/*455491*/              OPC_CheckType, MVT::v16f32,
/*455493*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455495*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*455498*/              OPC_EmitMergeInputChains1_1,
/*455499*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (uint_to_fp:{ *:[v16f32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VCVTUDQ2PSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*455512*/            0, // EndSwitchOpcode
/*455513*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::CVTPH2PS),// ->455563
/*455516*/            OPC_MoveChild0,
/*455517*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*455520*/            OPC_MoveChild0,
/*455521*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455524*/            OPC_RecordMemRef,
/*455525*/            OPC_RecordNode, // #1 = 'ld' chained node
/*455526*/            OPC_CheckFoldableChainNode,
/*455527*/            OPC_RecordChild1, // #2 = $src
/*455528*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455530*/            OPC_CheckPredicate, 9, // Predicate_load
/*455532*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*455534*/            OPC_CheckType, MVT::v4i64,
/*455536*/            OPC_MoveParent,
/*455537*/            OPC_CheckType, MVT::v16i16,
/*455539*/            OPC_MoveParent,
/*455540*/            OPC_MoveParent,
/*455541*/            OPC_RecordChild2, // #3 = $src0
/*455542*/            OPC_CheckType, MVT::v16f32,
/*455544*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455546*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*455549*/            OPC_EmitMergeInputChains1_1,
/*455550*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtph2ps:{ *:[v16f32] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                      // Dst: (VCVTPH2PSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*455563*/          /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::RSQRT14),// ->455648
/*455566*/            OPC_MoveChild0,
/*455567*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->455610
/*455571*/              OPC_MoveChild0,
/*455572*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455575*/              OPC_RecordMemRef,
/*455576*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455577*/              OPC_CheckFoldableChainNode,
/*455578*/              OPC_RecordChild1, // #2 = $src
/*455579*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455581*/              OPC_CheckPredicate, 9, // Predicate_load
/*455583*/              OPC_CheckType, MVT::f32,
/*455585*/              OPC_MoveParent,
/*455586*/              OPC_MoveParent,
/*455587*/              OPC_MoveParent,
/*455588*/              OPC_RecordChild2, // #3 = $src0
/*455589*/              OPC_CheckType, MVT::v16f32,
/*455591*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455593*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*455596*/              OPC_EmitMergeInputChains1_1,
/*455597*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt14:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VRSQRT14PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*455610*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->455647
/*455613*/              OPC_RecordMemRef,
/*455614*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455615*/              OPC_CheckFoldableChainNode,
/*455616*/              OPC_RecordChild1, // #2 = $src
/*455617*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455619*/              OPC_CheckPredicate, 9, // Predicate_load
/*455621*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*455623*/              OPC_MoveParent,
/*455624*/              OPC_MoveParent,
/*455625*/              OPC_RecordChild2, // #3 = $src0
/*455626*/              OPC_CheckType, MVT::v16f32,
/*455628*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455630*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*455633*/              OPC_EmitMergeInputChains1_1,
/*455634*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt14:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VRSQRT14PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*455647*/            0, // EndSwitchOpcode
/*455648*/          /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::RCP14),// ->455733
/*455651*/            OPC_MoveChild0,
/*455652*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->455695
/*455656*/              OPC_MoveChild0,
/*455657*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455660*/              OPC_RecordMemRef,
/*455661*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455662*/              OPC_CheckFoldableChainNode,
/*455663*/              OPC_RecordChild1, // #2 = $src
/*455664*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455666*/              OPC_CheckPredicate, 9, // Predicate_load
/*455668*/              OPC_CheckType, MVT::f32,
/*455670*/              OPC_MoveParent,
/*455671*/              OPC_MoveParent,
/*455672*/              OPC_MoveParent,
/*455673*/              OPC_RecordChild2, // #3 = $src0
/*455674*/              OPC_CheckType, MVT::v16f32,
/*455676*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455678*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*455681*/              OPC_EmitMergeInputChains1_1,
/*455682*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp14:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VRCP14PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*455695*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->455732
/*455698*/              OPC_RecordMemRef,
/*455699*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455700*/              OPC_CheckFoldableChainNode,
/*455701*/              OPC_RecordChild1, // #2 = $src
/*455702*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455704*/              OPC_CheckPredicate, 9, // Predicate_load
/*455706*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*455708*/              OPC_MoveParent,
/*455709*/              OPC_MoveParent,
/*455710*/              OPC_RecordChild2, // #3 = $src0
/*455711*/              OPC_CheckType, MVT::v16f32,
/*455713*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455715*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*455718*/              OPC_EmitMergeInputChains1_1,
/*455719*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp14:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VRCP14PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*455732*/            0, // EndSwitchOpcode
/*455733*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::FSQRT),// ->455818
/*455736*/            OPC_MoveChild0,
/*455737*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->455780
/*455741*/              OPC_MoveChild0,
/*455742*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455745*/              OPC_RecordMemRef,
/*455746*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455747*/              OPC_CheckFoldableChainNode,
/*455748*/              OPC_RecordChild1, // #2 = $src
/*455749*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455751*/              OPC_CheckPredicate, 9, // Predicate_load
/*455753*/              OPC_CheckType, MVT::f32,
/*455755*/              OPC_MoveParent,
/*455756*/              OPC_MoveParent,
/*455757*/              OPC_MoveParent,
/*455758*/              OPC_RecordChild2, // #3 = $src0
/*455759*/              OPC_CheckType, MVT::v16f32,
/*455761*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455763*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*455766*/              OPC_EmitMergeInputChains1_1,
/*455767*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsqrt:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VSQRTPSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*455780*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->455817
/*455783*/              OPC_RecordMemRef,
/*455784*/              OPC_RecordNode, // #1 = 'ld' chained node
/*455785*/              OPC_CheckFoldableChainNode,
/*455786*/              OPC_RecordChild1, // #2 = $src
/*455787*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455789*/              OPC_CheckPredicate, 9, // Predicate_load
/*455791*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*455793*/              OPC_MoveParent,
/*455794*/              OPC_MoveParent,
/*455795*/              OPC_RecordChild2, // #3 = $src0
/*455796*/              OPC_CheckType, MVT::v16f32,
/*455798*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455800*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*455803*/              OPC_EmitMergeInputChains1_1,
/*455804*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsqrt:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSQRTPSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*455817*/            0, // EndSwitchOpcode
/*455818*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VREDUCE),// ->455868
/*455821*/            OPC_MoveChild0,
/*455822*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455825*/            OPC_RecordMemRef,
/*455826*/            OPC_RecordNode, // #1 = 'ld' chained node
/*455827*/            OPC_CheckFoldableChainNode,
/*455828*/            OPC_RecordChild1, // #2 = $src1
/*455829*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455831*/            OPC_CheckPredicate, 9, // Predicate_load
/*455833*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*455835*/            OPC_MoveParent,
/*455836*/            OPC_RecordChild1, // #3 = $src2
/*455837*/            OPC_MoveChild1,
/*455838*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*455841*/            OPC_MoveParent,
/*455842*/            OPC_MoveParent,
/*455843*/            OPC_RecordChild2, // #4 = $src0
/*455844*/            OPC_CheckType, MVT::v16f32,
/*455846*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*455848*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*455851*/            OPC_EmitMergeInputChains1_1,
/*455852*/            OPC_EmitConvertToTarget, 3,
/*455854*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                      // Dst: (VREDUCEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*455868*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VRNDSCALE),// ->455918
/*455871*/            OPC_MoveChild0,
/*455872*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455875*/            OPC_RecordMemRef,
/*455876*/            OPC_RecordNode, // #1 = 'ld' chained node
/*455877*/            OPC_CheckFoldableChainNode,
/*455878*/            OPC_RecordChild1, // #2 = $src1
/*455879*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455881*/            OPC_CheckPredicate, 9, // Predicate_load
/*455883*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*455885*/            OPC_MoveParent,
/*455886*/            OPC_RecordChild1, // #3 = $src2
/*455887*/            OPC_MoveChild1,
/*455888*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*455891*/            OPC_MoveParent,
/*455892*/            OPC_MoveParent,
/*455893*/            OPC_RecordChild2, // #4 = $src0
/*455894*/            OPC_CheckType, MVT::v16f32,
/*455896*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455898*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*455901*/            OPC_EmitMergeInputChains1_1,
/*455902*/            OPC_EmitConvertToTarget, 3,
/*455904*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                      // Dst: (VRNDSCALEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*455918*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VGETMANT),// ->455968
/*455921*/            OPC_MoveChild0,
/*455922*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455925*/            OPC_RecordMemRef,
/*455926*/            OPC_RecordNode, // #1 = 'ld' chained node
/*455927*/            OPC_CheckFoldableChainNode,
/*455928*/            OPC_RecordChild1, // #2 = $src1
/*455929*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455931*/            OPC_CheckPredicate, 9, // Predicate_load
/*455933*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*455935*/            OPC_MoveParent,
/*455936*/            OPC_RecordChild1, // #3 = $src2
/*455937*/            OPC_MoveChild1,
/*455938*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*455941*/            OPC_MoveParent,
/*455942*/            OPC_MoveParent,
/*455943*/            OPC_RecordChild2, // #4 = $src0
/*455944*/            OPC_CheckType, MVT::v16f32,
/*455946*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455948*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*455951*/            OPC_EmitMergeInputChains1_1,
/*455952*/            OPC_EmitConvertToTarget, 3,
/*455954*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                      // Dst: (VGETMANTPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*455968*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VRANGE),// ->456020
/*455971*/            OPC_RecordChild0, // #1 = $src1
/*455972*/            OPC_MoveChild1,
/*455973*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*455976*/            OPC_RecordMemRef,
/*455977*/            OPC_RecordNode, // #2 = 'ld' chained node
/*455978*/            OPC_CheckFoldableChainNode,
/*455979*/            OPC_RecordChild1, // #3 = $src2
/*455980*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455982*/            OPC_CheckPredicate, 9, // Predicate_load
/*455984*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*455986*/            OPC_MoveParent,
/*455987*/            OPC_RecordChild2, // #4 = $src3
/*455988*/            OPC_MoveChild2,
/*455989*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*455992*/            OPC_MoveParent,
/*455993*/            OPC_MoveParent,
/*455994*/            OPC_RecordChild2, // #5 = $src0
/*455995*/            OPC_CheckType, MVT::v16f32,
/*455997*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*455999*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*456002*/            OPC_EmitMergeInputChains1_2,
/*456003*/            OPC_EmitConvertToTarget, 4,
/*456005*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                      // Dst: (VRANGEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*456020*/          /*SwitchOpcode*/ 90, TARGET_VAL(ISD::FFLOOR),// ->456113
/*456023*/            OPC_MoveChild0,
/*456024*/            OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(X86ISD::VBROADCAST),// ->456071
/*456028*/              OPC_MoveChild0,
/*456029*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456032*/              OPC_RecordMemRef,
/*456033*/              OPC_RecordNode, // #1 = 'ld' chained node
/*456034*/              OPC_CheckFoldableChainNode,
/*456035*/              OPC_RecordChild1, // #2 = $src
/*456036*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456038*/              OPC_CheckPredicate, 9, // Predicate_load
/*456040*/              OPC_CheckType, MVT::f32,
/*456042*/              OPC_MoveParent,
/*456043*/              OPC_MoveParent,
/*456044*/              OPC_MoveParent,
/*456045*/              OPC_RecordChild2, // #3 = $dst
/*456046*/              OPC_CheckType, MVT::v16f32,
/*456048*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456050*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456053*/              OPC_EmitMergeInputChains1_1,
/*456054*/              OPC_EmitInteger, MVT::i32, 9, 
/*456057*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ffloor:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$dst) - Complexity = 31
                        // Dst: (VRNDSCALEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*456071*/            /*SwitchOpcode*/ 38, TARGET_VAL(ISD::LOAD),// ->456112
/*456074*/              OPC_RecordMemRef,
/*456075*/              OPC_RecordNode, // #1 = 'ld' chained node
/*456076*/              OPC_CheckFoldableChainNode,
/*456077*/              OPC_RecordChild1, // #2 = $src
/*456078*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456080*/              OPC_CheckPredicate, 9, // Predicate_load
/*456082*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*456084*/              OPC_MoveParent,
/*456085*/              OPC_MoveParent,
/*456086*/              OPC_RecordChild2, // #3 = $dst
/*456087*/              OPC_CheckType, MVT::v16f32,
/*456089*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456091*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456094*/              OPC_EmitMergeInputChains1_1,
/*456095*/              OPC_EmitInteger, MVT::i32, 9, 
/*456098*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ffloor:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$dst) - Complexity = 28
                        // Dst: (VRNDSCALEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 9:{ *:[i32] })
/*456112*/            0, // EndSwitchOpcode
/*456113*/          /*SwitchOpcode*/ 90, TARGET_VAL(ISD::FNEARBYINT),// ->456206
/*456116*/            OPC_MoveChild0,
/*456117*/            OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(X86ISD::VBROADCAST),// ->456164
/*456121*/              OPC_MoveChild0,
/*456122*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456125*/              OPC_RecordMemRef,
/*456126*/              OPC_RecordNode, // #1 = 'ld' chained node
/*456127*/              OPC_CheckFoldableChainNode,
/*456128*/              OPC_RecordChild1, // #2 = $src
/*456129*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456131*/              OPC_CheckPredicate, 9, // Predicate_load
/*456133*/              OPC_CheckType, MVT::f32,
/*456135*/              OPC_MoveParent,
/*456136*/              OPC_MoveParent,
/*456137*/              OPC_MoveParent,
/*456138*/              OPC_RecordChild2, // #3 = $dst
/*456139*/              OPC_CheckType, MVT::v16f32,
/*456141*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456143*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456146*/              OPC_EmitMergeInputChains1_1,
/*456147*/              OPC_EmitInteger, MVT::i32, 12, 
/*456150*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fnearbyint:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$dst) - Complexity = 31
                        // Dst: (VRNDSCALEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*456164*/            /*SwitchOpcode*/ 38, TARGET_VAL(ISD::LOAD),// ->456205
/*456167*/              OPC_RecordMemRef,
/*456168*/              OPC_RecordNode, // #1 = 'ld' chained node
/*456169*/              OPC_CheckFoldableChainNode,
/*456170*/              OPC_RecordChild1, // #2 = $src
/*456171*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456173*/              OPC_CheckPredicate, 9, // Predicate_load
/*456175*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*456177*/              OPC_MoveParent,
/*456178*/              OPC_MoveParent,
/*456179*/              OPC_RecordChild2, // #3 = $dst
/*456180*/              OPC_CheckType, MVT::v16f32,
/*456182*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456184*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456187*/              OPC_EmitMergeInputChains1_1,
/*456188*/              OPC_EmitInteger, MVT::i32, 12, 
/*456191*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fnearbyint:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$dst) - Complexity = 28
                        // Dst: (VRNDSCALEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 12:{ *:[i32] })
/*456205*/            0, // EndSwitchOpcode
/*456206*/          /*SwitchOpcode*/ 90, TARGET_VAL(ISD::FCEIL),// ->456299
/*456209*/            OPC_MoveChild0,
/*456210*/            OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(X86ISD::VBROADCAST),// ->456257
/*456214*/              OPC_MoveChild0,
/*456215*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456218*/              OPC_RecordMemRef,
/*456219*/              OPC_RecordNode, // #1 = 'ld' chained node
/*456220*/              OPC_CheckFoldableChainNode,
/*456221*/              OPC_RecordChild1, // #2 = $src
/*456222*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456224*/              OPC_CheckPredicate, 9, // Predicate_load
/*456226*/              OPC_CheckType, MVT::f32,
/*456228*/              OPC_MoveParent,
/*456229*/              OPC_MoveParent,
/*456230*/              OPC_MoveParent,
/*456231*/              OPC_RecordChild2, // #3 = $dst
/*456232*/              OPC_CheckType, MVT::v16f32,
/*456234*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456236*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456239*/              OPC_EmitMergeInputChains1_1,
/*456240*/              OPC_EmitInteger, MVT::i32, 10, 
/*456243*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fceil:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$dst) - Complexity = 31
                        // Dst: (VRNDSCALEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*456257*/            /*SwitchOpcode*/ 38, TARGET_VAL(ISD::LOAD),// ->456298
/*456260*/              OPC_RecordMemRef,
/*456261*/              OPC_RecordNode, // #1 = 'ld' chained node
/*456262*/              OPC_CheckFoldableChainNode,
/*456263*/              OPC_RecordChild1, // #2 = $src
/*456264*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456266*/              OPC_CheckPredicate, 9, // Predicate_load
/*456268*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*456270*/              OPC_MoveParent,
/*456271*/              OPC_MoveParent,
/*456272*/              OPC_RecordChild2, // #3 = $dst
/*456273*/              OPC_CheckType, MVT::v16f32,
/*456275*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456277*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456280*/              OPC_EmitMergeInputChains1_1,
/*456281*/              OPC_EmitInteger, MVT::i32, 10, 
/*456284*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fceil:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$dst) - Complexity = 28
                        // Dst: (VRNDSCALEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 10:{ *:[i32] })
/*456298*/            0, // EndSwitchOpcode
/*456299*/          /*SwitchOpcode*/ 90, TARGET_VAL(ISD::FRINT),// ->456392
/*456302*/            OPC_MoveChild0,
/*456303*/            OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(X86ISD::VBROADCAST),// ->456350
/*456307*/              OPC_MoveChild0,
/*456308*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456311*/              OPC_RecordMemRef,
/*456312*/              OPC_RecordNode, // #1 = 'ld' chained node
/*456313*/              OPC_CheckFoldableChainNode,
/*456314*/              OPC_RecordChild1, // #2 = $src
/*456315*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456317*/              OPC_CheckPredicate, 9, // Predicate_load
/*456319*/              OPC_CheckType, MVT::f32,
/*456321*/              OPC_MoveParent,
/*456322*/              OPC_MoveParent,
/*456323*/              OPC_MoveParent,
/*456324*/              OPC_RecordChild2, // #3 = $dst
/*456325*/              OPC_CheckType, MVT::v16f32,
/*456327*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456329*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456332*/              OPC_EmitMergeInputChains1_1,
/*456333*/              OPC_EmitInteger, MVT::i32, 4, 
/*456336*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (frint:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$dst) - Complexity = 31
                        // Dst: (VRNDSCALEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*456350*/            /*SwitchOpcode*/ 38, TARGET_VAL(ISD::LOAD),// ->456391
/*456353*/              OPC_RecordMemRef,
/*456354*/              OPC_RecordNode, // #1 = 'ld' chained node
/*456355*/              OPC_CheckFoldableChainNode,
/*456356*/              OPC_RecordChild1, // #2 = $src
/*456357*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456359*/              OPC_CheckPredicate, 9, // Predicate_load
/*456361*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*456363*/              OPC_MoveParent,
/*456364*/              OPC_MoveParent,
/*456365*/              OPC_RecordChild2, // #3 = $dst
/*456366*/              OPC_CheckType, MVT::v16f32,
/*456368*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456370*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456373*/              OPC_EmitMergeInputChains1_1,
/*456374*/              OPC_EmitInteger, MVT::i32, 4, 
/*456377*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (frint:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$dst) - Complexity = 28
                        // Dst: (VRNDSCALEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 4:{ *:[i32] })
/*456391*/            0, // EndSwitchOpcode
/*456392*/          /*SwitchOpcode*/ 90, TARGET_VAL(ISD::FTRUNC),// ->456485
/*456395*/            OPC_MoveChild0,
/*456396*/            OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(X86ISD::VBROADCAST),// ->456443
/*456400*/              OPC_MoveChild0,
/*456401*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456404*/              OPC_RecordMemRef,
/*456405*/              OPC_RecordNode, // #1 = 'ld' chained node
/*456406*/              OPC_CheckFoldableChainNode,
/*456407*/              OPC_RecordChild1, // #2 = $src
/*456408*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456410*/              OPC_CheckPredicate, 9, // Predicate_load
/*456412*/              OPC_CheckType, MVT::f32,
/*456414*/              OPC_MoveParent,
/*456415*/              OPC_MoveParent,
/*456416*/              OPC_MoveParent,
/*456417*/              OPC_RecordChild2, // #3 = $dst
/*456418*/              OPC_CheckType, MVT::v16f32,
/*456420*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456422*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456425*/              OPC_EmitMergeInputChains1_1,
/*456426*/              OPC_EmitInteger, MVT::i32, 11, 
/*456429*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ftrunc:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$dst) - Complexity = 31
                        // Dst: (VRNDSCALEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*456443*/            /*SwitchOpcode*/ 38, TARGET_VAL(ISD::LOAD),// ->456484
/*456446*/              OPC_RecordMemRef,
/*456447*/              OPC_RecordNode, // #1 = 'ld' chained node
/*456448*/              OPC_CheckFoldableChainNode,
/*456449*/              OPC_RecordChild1, // #2 = $src
/*456450*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456452*/              OPC_CheckPredicate, 9, // Predicate_load
/*456454*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*456456*/              OPC_MoveParent,
/*456457*/              OPC_MoveParent,
/*456458*/              OPC_RecordChild2, // #3 = $dst
/*456459*/              OPC_CheckType, MVT::v16f32,
/*456461*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456463*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456466*/              OPC_EmitMergeInputChains1_1,
/*456467*/              OPC_EmitInteger, MVT::i32, 11, 
/*456470*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ftrunc:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$dst) - Complexity = 28
                        // Dst: (VRNDSCALEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src, 11:{ *:[i32] })
/*456484*/            0, // EndSwitchOpcode
/*456485*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::UNPCKH),// ->456573
/*456488*/            OPC_RecordChild0, // #1 = $src1
/*456489*/            OPC_MoveChild1,
/*456490*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(X86ISD::VBROADCAST),// ->456534
/*456494*/              OPC_MoveChild0,
/*456495*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456498*/              OPC_RecordMemRef,
/*456499*/              OPC_RecordNode, // #2 = 'ld' chained node
/*456500*/              OPC_CheckFoldableChainNode,
/*456501*/              OPC_RecordChild1, // #3 = $src2
/*456502*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456504*/              OPC_CheckPredicate, 9, // Predicate_load
/*456506*/              OPC_CheckType, MVT::f32,
/*456508*/              OPC_MoveParent,
/*456509*/              OPC_MoveParent,
/*456510*/              OPC_MoveParent,
/*456511*/              OPC_RecordChild2, // #4 = $src0
/*456512*/              OPC_CheckType, MVT::v16f32,
/*456514*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456516*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*456519*/              OPC_EmitMergeInputChains1_2,
/*456520*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VUNPCKHPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*456534*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->456572
/*456537*/              OPC_RecordMemRef,
/*456538*/              OPC_RecordNode, // #2 = 'ld' chained node
/*456539*/              OPC_CheckFoldableChainNode,
/*456540*/              OPC_RecordChild1, // #3 = $src2
/*456541*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456543*/              OPC_CheckPredicate, 9, // Predicate_load
/*456545*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*456547*/              OPC_MoveParent,
/*456548*/              OPC_MoveParent,
/*456549*/              OPC_RecordChild2, // #4 = $src0
/*456550*/              OPC_CheckType, MVT::v16f32,
/*456552*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456554*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*456557*/              OPC_EmitMergeInputChains1_2,
/*456558*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VUNPCKHPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*456572*/            0, // EndSwitchOpcode
/*456573*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::UNPCKL),// ->456661
/*456576*/            OPC_RecordChild0, // #1 = $src1
/*456577*/            OPC_MoveChild1,
/*456578*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(X86ISD::VBROADCAST),// ->456622
/*456582*/              OPC_MoveChild0,
/*456583*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456586*/              OPC_RecordMemRef,
/*456587*/              OPC_RecordNode, // #2 = 'ld' chained node
/*456588*/              OPC_CheckFoldableChainNode,
/*456589*/              OPC_RecordChild1, // #3 = $src2
/*456590*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456592*/              OPC_CheckPredicate, 9, // Predicate_load
/*456594*/              OPC_CheckType, MVT::f32,
/*456596*/              OPC_MoveParent,
/*456597*/              OPC_MoveParent,
/*456598*/              OPC_MoveParent,
/*456599*/              OPC_RecordChild2, // #4 = $src0
/*456600*/              OPC_CheckType, MVT::v16f32,
/*456602*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456604*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*456607*/              OPC_EmitMergeInputChains1_2,
/*456608*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VUNPCKLPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*456622*/            /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->456660
/*456625*/              OPC_RecordMemRef,
/*456626*/              OPC_RecordNode, // #2 = 'ld' chained node
/*456627*/              OPC_CheckFoldableChainNode,
/*456628*/              OPC_RecordChild1, // #3 = $src2
/*456629*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456631*/              OPC_CheckPredicate, 9, // Predicate_load
/*456633*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*456635*/              OPC_MoveParent,
/*456636*/              OPC_MoveParent,
/*456637*/              OPC_RecordChild2, // #4 = $src0
/*456638*/              OPC_CheckType, MVT::v16f32,
/*456640*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456642*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*456645*/              OPC_EmitMergeInputChains1_2,
/*456646*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VUNPCKLPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*456660*/            0, // EndSwitchOpcode
/*456661*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::SHUFP),// ->456713
/*456664*/            OPC_RecordChild0, // #1 = $src1
/*456665*/            OPC_MoveChild1,
/*456666*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456669*/            OPC_RecordMemRef,
/*456670*/            OPC_RecordNode, // #2 = 'ld' chained node
/*456671*/            OPC_CheckFoldableChainNode,
/*456672*/            OPC_RecordChild1, // #3 = $src2
/*456673*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456675*/            OPC_CheckPredicate, 9, // Predicate_load
/*456677*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*456679*/            OPC_MoveParent,
/*456680*/            OPC_RecordChild2, // #4 = $src3
/*456681*/            OPC_MoveChild2,
/*456682*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*456685*/            OPC_MoveParent,
/*456686*/            OPC_MoveParent,
/*456687*/            OPC_RecordChild2, // #5 = $src0
/*456688*/            OPC_CheckType, MVT::v16f32,
/*456690*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456692*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*456695*/            OPC_EmitMergeInputChains1_2,
/*456696*/            OPC_EmitConvertToTarget, 4,
/*456698*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 11, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                      // Dst: (VSHUFPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*456713*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->456784
/*456716*/            OPC_MoveChild0,
/*456717*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456720*/            OPC_RecordMemRef,
/*456721*/            OPC_RecordNode, // #1 = 'ld' chained node
/*456722*/            OPC_CheckFoldableChainNode,
/*456723*/            OPC_RecordChild1, // #2 = $src
/*456724*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456726*/            OPC_CheckPredicate, 9, // Predicate_load
/*456728*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*456730*/            OPC_SwitchType /*2 cases */, 24, MVT::v4f32,// ->456757
/*456733*/              OPC_MoveParent,
/*456734*/              OPC_MoveParent,
/*456735*/              OPC_RecordChild2, // #3 = $src0
/*456736*/              OPC_CheckType, MVT::v16f32,
/*456738*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456740*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456743*/              OPC_EmitMergeInputChains1_1,
/*456744*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86SubVBroadcast:{ *:[v16f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTF32X4rmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*456757*/            /*SwitchType*/ 24, MVT::v8f32,// ->456783
/*456759*/              OPC_MoveParent,
/*456760*/              OPC_MoveParent,
/*456761*/              OPC_RecordChild2, // #3 = $src0
/*456762*/              OPC_CheckType, MVT::v16f32,
/*456764*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*456766*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*456769*/              OPC_EmitMergeInputChains1_1,
/*456770*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X8rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86SubVBroadcast:{ *:[v16f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTF32X8rmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*456783*/            0, // EndSwitchType
/*456784*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::EXPAND),// ->456825
/*456787*/            OPC_MoveChild0,
/*456788*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456791*/            OPC_RecordMemRef,
/*456792*/            OPC_RecordNode, // #1 = 'ld' chained node
/*456793*/            OPC_CheckFoldableChainNode,
/*456794*/            OPC_RecordChild1, // #2 = $src1
/*456795*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456797*/            OPC_CheckPredicate, 9, // Predicate_load
/*456799*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*456801*/            OPC_MoveParent,
/*456802*/            OPC_MoveParent,
/*456803*/            OPC_RecordChild2, // #3 = $src0
/*456804*/            OPC_CheckType, MVT::v16f32,
/*456806*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456808*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*456811*/            OPC_EmitMergeInputChains1_1,
/*456812*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                      // Dst: (VEXPANDPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*456825*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::MOVSHDUP),// ->456866
/*456828*/            OPC_MoveChild0,
/*456829*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456832*/            OPC_RecordMemRef,
/*456833*/            OPC_RecordNode, // #1 = 'ld' chained node
/*456834*/            OPC_CheckFoldableChainNode,
/*456835*/            OPC_RecordChild1, // #2 = $src1
/*456836*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456838*/            OPC_CheckPredicate, 9, // Predicate_load
/*456840*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*456842*/            OPC_MoveParent,
/*456843*/            OPC_MoveParent,
/*456844*/            OPC_RecordChild2, // #3 = $src0
/*456845*/            OPC_CheckType, MVT::v16f32,
/*456847*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456849*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*456852*/            OPC_EmitMergeInputChains1_1,
/*456853*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Movshdup:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSHDUPZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*456866*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::MOVSLDUP),// ->456907
/*456869*/            OPC_MoveChild0,
/*456870*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*456873*/            OPC_RecordMemRef,
/*456874*/            OPC_RecordNode, // #1 = 'ld' chained node
/*456875*/            OPC_CheckFoldableChainNode,
/*456876*/            OPC_RecordChild1, // #2 = $src1
/*456877*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456879*/            OPC_CheckPredicate, 9, // Predicate_load
/*456881*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*456883*/            OPC_MoveParent,
/*456884*/            OPC_MoveParent,
/*456885*/            OPC_RecordChild2, // #3 = $src0
/*456886*/            OPC_CheckType, MVT::v16f32,
/*456888*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456890*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*456893*/            OPC_EmitMergeInputChains1_1,
/*456894*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Movsldup:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSLDUPZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*456907*/          /*SwitchOpcode*/ 62, TARGET_VAL(ISD::LOAD),// ->456972
/*456910*/            OPC_RecordMemRef,
/*456911*/            OPC_RecordNode, // #1 = 'ld' chained node
/*456912*/            OPC_CheckFoldableChainNode,
/*456913*/            OPC_RecordChild1, // #2 = $src1
/*456914*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456916*/            OPC_CheckPredicate, 9, // Predicate_load
/*456918*/            OPC_Scope, 25, /*->456945*/ // 2 children in Scope
/*456920*/              OPC_CheckPredicate, 69, // Predicate_alignedvecload
/*456922*/              OPC_MoveParent,
/*456923*/              OPC_RecordChild2, // #3 = $src0
/*456924*/              OPC_CheckType, MVT::v16f32,
/*456926*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456928*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*456931*/              OPC_EmitMergeInputChains1_1,
/*456932*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedvecload>>, VR512:{ *:[v16f32] }:$src0) - Complexity = 25
                        // Dst: (VMOVAPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*456945*/            /*Scope*/ 25, /*->456971*/
/*456946*/              OPC_CheckPredicate, 40, // Predicate_vecload
/*456948*/              OPC_MoveParent,
/*456949*/              OPC_RecordChild2, // #3 = $src0
/*456950*/              OPC_CheckType, MVT::v16f32,
/*456952*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456954*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*456957*/              OPC_EmitMergeInputChains1_1,
/*456958*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src0) - Complexity = 25
                        // Dst: (VMOVUPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*456971*/            0, /*End of Scope*/
/*456972*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VREDUCE_RND),// ->457014
/*456975*/            OPC_RecordChild0, // #1 = $src1
/*456976*/            OPC_RecordChild1, // #2 = $src2
/*456977*/            OPC_MoveChild1,
/*456978*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*456981*/            OPC_MoveParent,
/*456982*/            OPC_CheckChild2Integer, 8, 
/*456984*/            OPC_MoveParent,
/*456985*/            OPC_MoveChild2,
/*456986*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*456989*/            OPC_MoveChild0,
/*456990*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*456993*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*456995*/            OPC_CheckType, MVT::v16i32,
/*456997*/            OPC_MoveParent,
/*456998*/            OPC_MoveParent,
/*456999*/            OPC_CheckType, MVT::v16f32,
/*457001*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*457003*/            OPC_EmitConvertToTarget, 2,
/*457005*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrribkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduceRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VREDUCEPSZrribkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*457014*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VRNDSCALE_RND),// ->457056
/*457017*/            OPC_RecordChild0, // #1 = $src1
/*457018*/            OPC_RecordChild1, // #2 = $src2
/*457019*/            OPC_MoveChild1,
/*457020*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*457023*/            OPC_MoveParent,
/*457024*/            OPC_CheckChild2Integer, 8, 
/*457026*/            OPC_MoveParent,
/*457027*/            OPC_MoveChild2,
/*457028*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457031*/            OPC_MoveChild0,
/*457032*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457035*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457037*/            OPC_CheckType, MVT::v16i32,
/*457039*/            OPC_MoveParent,
/*457040*/            OPC_MoveParent,
/*457041*/            OPC_CheckType, MVT::v16f32,
/*457043*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457045*/            OPC_EmitConvertToTarget, 2,
/*457047*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrribkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScaleRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VRNDSCALEPSZrribkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*457056*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VGETMANT_RND),// ->457098
/*457059*/            OPC_RecordChild0, // #1 = $src1
/*457060*/            OPC_RecordChild1, // #2 = $src2
/*457061*/            OPC_MoveChild1,
/*457062*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*457065*/            OPC_MoveParent,
/*457066*/            OPC_CheckChild2Integer, 8, 
/*457068*/            OPC_MoveParent,
/*457069*/            OPC_MoveChild2,
/*457070*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457073*/            OPC_MoveChild0,
/*457074*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457077*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457079*/            OPC_CheckType, MVT::v16i32,
/*457081*/            OPC_MoveParent,
/*457082*/            OPC_MoveParent,
/*457083*/            OPC_CheckType, MVT::v16f32,
/*457085*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457087*/            OPC_EmitConvertToTarget, 2,
/*457089*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrribkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMantRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VGETMANTPSZrribkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*457098*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VRANGE_RND),// ->457142
/*457101*/            OPC_RecordChild0, // #1 = $src1
/*457102*/            OPC_RecordChild1, // #2 = $src2
/*457103*/            OPC_RecordChild2, // #3 = $src3
/*457104*/            OPC_MoveChild2,
/*457105*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*457108*/            OPC_MoveParent,
/*457109*/            OPC_CheckChild3Integer, 8, 
/*457111*/            OPC_MoveParent,
/*457112*/            OPC_MoveChild2,
/*457113*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457116*/            OPC_MoveChild0,
/*457117*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457120*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457122*/            OPC_CheckType, MVT::v16i32,
/*457124*/            OPC_MoveParent,
/*457125*/            OPC_MoveParent,
/*457126*/            OPC_CheckType, MVT::v16f32,
/*457128*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*457130*/            OPC_EmitConvertToTarget, 3,
/*457132*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrribkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRangeRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                      // Dst: (VRANGEPSZrribkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*457142*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VFIXUPIMM),// ->457226
/*457145*/            OPC_RecordChild0, // #1 = $src1
/*457146*/            OPC_RecordChild1, // #2 = $src2
/*457147*/            OPC_RecordChild2, // #3 = $src3
/*457148*/            OPC_RecordChild3, // #4 = $src4
/*457149*/            OPC_MoveChild3,
/*457150*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*457153*/            OPC_MoveParent,
/*457154*/            OPC_Scope, 34, /*->457190*/ // 2 children in Scope
/*457156*/              OPC_CheckChild4Integer, 4, 
/*457158*/              OPC_MoveParent,
/*457159*/              OPC_MoveChild2,
/*457160*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457163*/              OPC_MoveChild0,
/*457164*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457167*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457169*/              OPC_CheckType, MVT::v16i32,
/*457171*/              OPC_MoveParent,
/*457172*/              OPC_MoveParent,
/*457173*/              OPC_CheckType, MVT::v16f32,
/*457175*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457177*/              OPC_EmitConvertToTarget, 4,
/*457179*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrrikz), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                        // Dst: (VFIXUPIMMPSZrrikz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*457190*/            /*Scope*/ 34, /*->457225*/
/*457191*/              OPC_CheckChild4Integer, 8, 
/*457193*/              OPC_MoveParent,
/*457194*/              OPC_MoveChild2,
/*457195*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457198*/              OPC_MoveChild0,
/*457199*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457202*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457204*/              OPC_CheckType, MVT::v16i32,
/*457206*/              OPC_MoveParent,
/*457207*/              OPC_MoveParent,
/*457208*/              OPC_CheckType, MVT::v16f32,
/*457210*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457212*/              OPC_EmitConvertToTarget, 4,
/*457214*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrribkz), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 21
                        // Dst: (VFIXUPIMMPSZrribkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*457225*/            0, /*End of Scope*/
/*457226*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FMIN_RND),// ->457261
/*457229*/            OPC_RecordChild0, // #1 = $src1
/*457230*/            OPC_RecordChild1, // #2 = $src2
/*457231*/            OPC_CheckChild2Integer, 8, 
/*457233*/            OPC_MoveParent,
/*457234*/            OPC_MoveChild2,
/*457235*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457238*/            OPC_MoveChild0,
/*457239*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457242*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457244*/            OPC_CheckType, MVT::v16i32,
/*457246*/            OPC_MoveParent,
/*457247*/            OPC_MoveParent,
/*457248*/            OPC_CheckType, MVT::v16f32,
/*457250*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457252*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrrbkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMINPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*457261*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FMAX_RND),// ->457296
/*457264*/            OPC_RecordChild0, // #1 = $src1
/*457265*/            OPC_RecordChild1, // #2 = $src2
/*457266*/            OPC_CheckChild2Integer, 8, 
/*457268*/            OPC_MoveParent,
/*457269*/            OPC_MoveChild2,
/*457270*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457273*/            OPC_MoveChild0,
/*457274*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457277*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457279*/            OPC_CheckType, MVT::v16i32,
/*457281*/            OPC_MoveParent,
/*457282*/            OPC_MoveParent,
/*457283*/            OPC_CheckType, MVT::v16f32,
/*457285*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457287*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrrbkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VMAXPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*457296*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::SCALEF),// ->457331
/*457299*/            OPC_RecordChild0, // #1 = $src1
/*457300*/            OPC_RecordChild1, // #2 = $src2
/*457301*/            OPC_CheckChild2Integer, 4, 
/*457303*/            OPC_MoveParent,
/*457304*/            OPC_MoveChild2,
/*457305*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457308*/            OPC_MoveChild0,
/*457309*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457312*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457314*/            OPC_CheckType, MVT::v16i32,
/*457316*/            OPC_MoveParent,
/*457317*/            OPC_MoveParent,
/*457318*/            OPC_CheckType, MVT::v16f32,
/*457320*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457322*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VSCALEFPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*457331*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::CVTPH2PS_RND),// ->457366
/*457334*/            OPC_RecordChild0, // #1 = $src
/*457335*/            OPC_CheckChild0Type, MVT::v16i16,
/*457337*/            OPC_CheckChild1Integer, 8, 
/*457339*/            OPC_MoveParent,
/*457340*/            OPC_MoveChild2,
/*457341*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457344*/            OPC_MoveChild0,
/*457345*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457348*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457350*/            OPC_CheckType, MVT::v16i32,
/*457352*/            OPC_MoveParent,
/*457353*/            OPC_MoveParent,
/*457354*/            OPC_CheckType, MVT::v16f32,
/*457356*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457358*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrrbkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtph2psRnd:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                      // Dst: (VCVTPH2PSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*457366*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::RSQRT28),// ->457432
/*457369*/            OPC_RecordChild0, // #1 = $src
/*457370*/            OPC_Scope, 29, /*->457401*/ // 2 children in Scope
/*457372*/              OPC_CheckChild1Integer, 4, 
/*457374*/              OPC_MoveParent,
/*457375*/              OPC_MoveChild2,
/*457376*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457379*/              OPC_MoveChild0,
/*457380*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457383*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457385*/              OPC_CheckType, MVT::v16i32,
/*457387*/              OPC_MoveParent,
/*457388*/              OPC_MoveParent,
/*457389*/              OPC_CheckType, MVT::v16f32,
/*457391*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*457393*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZrkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRSQRT28PSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*457401*/            /*Scope*/ 29, /*->457431*/
/*457402*/              OPC_CheckChild1Integer, 8, 
/*457404*/              OPC_MoveParent,
/*457405*/              OPC_MoveChild2,
/*457406*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457409*/              OPC_MoveChild0,
/*457410*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457413*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457415*/              OPC_CheckType, MVT::v16i32,
/*457417*/              OPC_MoveParent,
/*457418*/              OPC_MoveParent,
/*457419*/              OPC_CheckType, MVT::v16f32,
/*457421*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*457423*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZrbkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRSQRT28PSZrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*457431*/            0, /*End of Scope*/
/*457432*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::RCP28),// ->457498
/*457435*/            OPC_RecordChild0, // #1 = $src
/*457436*/            OPC_Scope, 29, /*->457467*/ // 2 children in Scope
/*457438*/              OPC_CheckChild1Integer, 4, 
/*457440*/              OPC_MoveParent,
/*457441*/              OPC_MoveChild2,
/*457442*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457445*/              OPC_MoveChild0,
/*457446*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457449*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457451*/              OPC_CheckType, MVT::v16i32,
/*457453*/              OPC_MoveParent,
/*457454*/              OPC_MoveParent,
/*457455*/              OPC_CheckType, MVT::v16f32,
/*457457*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*457459*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZrkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRCP28PSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*457467*/            /*Scope*/ 29, /*->457497*/
/*457468*/              OPC_CheckChild1Integer, 8, 
/*457470*/              OPC_MoveParent,
/*457471*/              OPC_MoveChild2,
/*457472*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457475*/              OPC_MoveChild0,
/*457476*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457479*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457481*/              OPC_CheckType, MVT::v16i32,
/*457483*/              OPC_MoveParent,
/*457484*/              OPC_MoveParent,
/*457485*/              OPC_CheckType, MVT::v16f32,
/*457487*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*457489*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZrbkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VRCP28PSZrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*457497*/            0, /*End of Scope*/
/*457498*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::EXP2),// ->457564
/*457501*/            OPC_RecordChild0, // #1 = $src
/*457502*/            OPC_Scope, 29, /*->457533*/ // 2 children in Scope
/*457504*/              OPC_CheckChild1Integer, 4, 
/*457506*/              OPC_MoveParent,
/*457507*/              OPC_MoveChild2,
/*457508*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457511*/              OPC_MoveChild0,
/*457512*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457515*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457517*/              OPC_CheckType, MVT::v16i32,
/*457519*/              OPC_MoveParent,
/*457520*/              OPC_MoveParent,
/*457521*/              OPC_CheckType, MVT::v16f32,
/*457523*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*457525*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZrkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86exp2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VEXP2PSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*457533*/            /*Scope*/ 29, /*->457563*/
/*457534*/              OPC_CheckChild1Integer, 8, 
/*457536*/              OPC_MoveParent,
/*457537*/              OPC_MoveChild2,
/*457538*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457541*/              OPC_MoveChild0,
/*457542*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457545*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457547*/              OPC_CheckType, MVT::v16i32,
/*457549*/              OPC_MoveParent,
/*457550*/              OPC_MoveParent,
/*457551*/              OPC_CheckType, MVT::v16f32,
/*457553*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*457555*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZrbkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86exp2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VEXP2PSZrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*457563*/            0, /*End of Scope*/
/*457564*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::FGETEXP_RND),// ->457630
/*457567*/            OPC_RecordChild0, // #1 = $src
/*457568*/            OPC_Scope, 29, /*->457599*/ // 2 children in Scope
/*457570*/              OPC_CheckChild1Integer, 4, 
/*457572*/              OPC_MoveParent,
/*457573*/              OPC_MoveChild2,
/*457574*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457577*/              OPC_MoveChild0,
/*457578*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457581*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457583*/              OPC_CheckType, MVT::v16i32,
/*457585*/              OPC_MoveParent,
/*457586*/              OPC_MoveParent,
/*457587*/              OPC_CheckType, MVT::v16f32,
/*457589*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457591*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZrkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexpRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VGETEXPPSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*457599*/            /*Scope*/ 29, /*->457629*/
/*457600*/              OPC_CheckChild1Integer, 8, 
/*457602*/              OPC_MoveParent,
/*457603*/              OPC_MoveChild2,
/*457604*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457607*/              OPC_MoveChild0,
/*457608*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457611*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457613*/              OPC_CheckType, MVT::v16i32,
/*457615*/              OPC_MoveParent,
/*457616*/              OPC_MoveParent,
/*457617*/              OPC_CheckType, MVT::v16f32,
/*457619*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457621*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZrbkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexpRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 18
                        // Dst: (VGETEXPPSZrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*457629*/            0, /*End of Scope*/
/*457630*/          0, // EndSwitchOpcode
/*457631*/        /*Scope*/ 93, /*->457725*/
/*457632*/          OPC_RecordChild1, // #1 = $src3
/*457633*/          OPC_MoveChild1,
/*457634*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*457637*/          OPC_RecordChild0, // #2 = $src1
/*457638*/          OPC_RecordChild1, // #3 = $src2
/*457639*/          OPC_Scope, 41, /*->457682*/ // 2 children in Scope
/*457641*/            OPC_CheckChild1Type, MVT::v4f32,
/*457643*/            OPC_MoveChild2,
/*457644*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*457647*/            OPC_CheckType, MVT::iPTR,
/*457649*/            OPC_MoveParent,
/*457650*/            OPC_MoveParent,
/*457651*/            OPC_MoveChild2,
/*457652*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457655*/            OPC_MoveChild0,
/*457656*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457659*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457661*/            OPC_CheckType, MVT::v16i32,
/*457663*/            OPC_MoveParent,
/*457664*/            OPC_MoveParent,
/*457665*/            OPC_CheckType, MVT::v16f32,
/*457667*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457669*/            OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*457672*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrrkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VINSERTF32x4Zrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*457682*/          /*Scope*/ 41, /*->457724*/
/*457683*/            OPC_CheckChild1Type, MVT::v8f32,
/*457685*/            OPC_MoveChild2,
/*457686*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*457689*/            OPC_CheckType, MVT::iPTR,
/*457691*/            OPC_MoveParent,
/*457692*/            OPC_MoveParent,
/*457693*/            OPC_MoveChild2,
/*457694*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457697*/            OPC_MoveChild0,
/*457698*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457701*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457703*/            OPC_CheckType, MVT::v16i32,
/*457705*/            OPC_MoveParent,
/*457706*/            OPC_MoveParent,
/*457707*/            OPC_CheckType, MVT::v16f32,
/*457709*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*457711*/            OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*457714*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x8Zrrkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VINSERTF32x8Zrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*457724*/          0, /*End of Scope*/
/*457725*/        /*Scope*/ 14|128,22/*2830*/, /*->460557*/
/*457727*/          OPC_MoveChild1,
/*457728*/          OPC_SwitchOpcode /*68 cases */, 42|128,2/*298*/, TARGET_VAL(ISD::BITCAST),// ->458031
/*457733*/            OPC_Scope, 55|128,1/*183*/, /*->457919*/ // 3 children in Scope
/*457736*/              OPC_MoveChild0,
/*457737*/              OPC_SwitchOpcode /*5 cases */, 33, TARGET_VAL(X86ISD::VBROADCAST),// ->457774
/*457741*/                OPC_RecordChild0, // #1 = $src
/*457742*/                OPC_CheckChild0Type, MVT::v2f64,
/*457744*/                OPC_CheckType, MVT::v8f64,
/*457746*/                OPC_MoveParent,
/*457747*/                OPC_MoveParent,
/*457748*/                OPC_MoveChild2,
/*457749*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457752*/                OPC_MoveChild0,
/*457753*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457756*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457758*/                OPC_CheckType, MVT::v16i32,
/*457760*/                OPC_MoveParent,
/*457761*/                OPC_MoveParent,
/*457762*/                OPC_CheckType, MVT::v16f32,
/*457764*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*457766*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Zrkz), 0,
                              MVT::v16f32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86VBroadcast:{ *:[v8f64] } VR128X:{ *:[v2f64] }:$src)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                          // Dst: (VBROADCASTF32X2Zrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*457774*/              /*SwitchOpcode*/ 33, TARGET_VAL(ISD::AND),// ->457810
/*457777*/                OPC_RecordChild0, // #1 = $src1
/*457778*/                OPC_RecordChild1, // #2 = $src2
/*457779*/                OPC_CheckType, MVT::v8i64,
/*457781*/                OPC_MoveParent,
/*457782*/                OPC_MoveParent,
/*457783*/                OPC_MoveChild2,
/*457784*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457787*/                OPC_MoveChild0,
/*457788*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457791*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457793*/                OPC_CheckType, MVT::v16i32,
/*457795*/                OPC_MoveParent,
/*457796*/                OPC_MoveParent,
/*457797*/                OPC_CheckType, MVT::v16f32,
/*457799*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457801*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrkz), 0,
                              MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                          // Dst: (VPANDDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*457810*/              /*SwitchOpcode*/ 33, TARGET_VAL(ISD::OR),// ->457846
/*457813*/                OPC_RecordChild0, // #1 = $src1
/*457814*/                OPC_RecordChild1, // #2 = $src2
/*457815*/                OPC_CheckType, MVT::v8i64,
/*457817*/                OPC_MoveParent,
/*457818*/                OPC_MoveParent,
/*457819*/                OPC_MoveChild2,
/*457820*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457823*/                OPC_MoveChild0,
/*457824*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457827*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457829*/                OPC_CheckType, MVT::v16i32,
/*457831*/                OPC_MoveParent,
/*457832*/                OPC_MoveParent,
/*457833*/                OPC_CheckType, MVT::v16f32,
/*457835*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457837*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrkz), 0,
                              MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                          // Dst: (VPORDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*457846*/              /*SwitchOpcode*/ 33, TARGET_VAL(ISD::XOR),// ->457882
/*457849*/                OPC_RecordChild0, // #1 = $src1
/*457850*/                OPC_RecordChild1, // #2 = $src2
/*457851*/                OPC_CheckType, MVT::v8i64,
/*457853*/                OPC_MoveParent,
/*457854*/                OPC_MoveParent,
/*457855*/                OPC_MoveChild2,
/*457856*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457859*/                OPC_MoveChild0,
/*457860*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457863*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457865*/                OPC_CheckType, MVT::v16i32,
/*457867*/                OPC_MoveParent,
/*457868*/                OPC_MoveParent,
/*457869*/                OPC_CheckType, MVT::v16f32,
/*457871*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457873*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrkz), 0,
                              MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                          // Dst: (VPXORDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*457882*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::ANDNP),// ->457918
/*457885*/                OPC_RecordChild0, // #1 = $src1
/*457886*/                OPC_RecordChild1, // #2 = $src2
/*457887*/                OPC_CheckType, MVT::v8i64,
/*457889*/                OPC_MoveParent,
/*457890*/                OPC_MoveParent,
/*457891*/                OPC_MoveChild2,
/*457892*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*457895*/                OPC_MoveChild0,
/*457896*/                OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*457899*/                OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*457901*/                OPC_CheckType, MVT::v16i32,
/*457903*/                OPC_MoveParent,
/*457904*/                OPC_MoveParent,
/*457905*/                OPC_CheckType, MVT::v16f32,
/*457907*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457909*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrkz), 0,
                              MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                          // Dst: (VPANDNDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*457918*/              0, // EndSwitchOpcode
/*457919*/            /*Scope*/ 75, /*->457995*/
/*457920*/              OPC_RecordChild0, // #1 = $ins
/*457921*/              OPC_MoveChild0,
/*457922*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*457925*/              OPC_RecordChild0, // #2 = $src1
/*457926*/              OPC_RecordChild1, // #3 = $src2
/*457927*/              OPC_Scope, 32, /*->457961*/ // 2 children in Scope
/*457929*/                OPC_CheckChild1Type, MVT::v2f64,
/*457931*/                OPC_MoveChild2,
/*457932*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*457935*/                OPC_CheckType, MVT::iPTR,
/*457937*/                OPC_MoveParent,
/*457938*/                OPC_CheckType, MVT::v8f64,
/*457940*/                OPC_MoveParent,
/*457941*/                OPC_MoveParent,
/*457942*/                OPC_RecordChild2, // #4 = $src0
/*457943*/                OPC_CheckType, MVT::v16f32,
/*457945*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457947*/                OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*457950*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrrk), 0,
                              MVT::v16f32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v16f32] }:$src0) - Complexity = 12
                          // Dst: (VINSERTF32x4Zrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*457961*/              /*Scope*/ 32, /*->457994*/
/*457962*/                OPC_CheckChild1Type, MVT::v4f64,
/*457964*/                OPC_MoveChild2,
/*457965*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*457968*/                OPC_CheckType, MVT::iPTR,
/*457970*/                OPC_MoveParent,
/*457971*/                OPC_CheckType, MVT::v8f64,
/*457973*/                OPC_MoveParent,
/*457974*/                OPC_MoveParent,
/*457975*/                OPC_RecordChild2, // #4 = $src0
/*457976*/                OPC_CheckType, MVT::v16f32,
/*457978*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*457980*/                OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*457983*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x8Zrrk), 0,
                              MVT::v16f32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v16f32] }:$src0) - Complexity = 12
                          // Dst: (VINSERTF32x8Zrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*457994*/              0, /*End of Scope*/
/*457995*/            /*Scope*/ 34, /*->458030*/
/*457996*/              OPC_MoveChild0,
/*457997*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*458000*/              OPC_RecordChild0, // #1 = $src1
/*458001*/              OPC_RecordChild1, // #2 = $src2
/*458002*/              OPC_RecordChild2, // #3 = $src3
/*458003*/              OPC_MoveChild2,
/*458004*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458007*/              OPC_MoveParent,
/*458008*/              OPC_CheckType, MVT::v8f64,
/*458010*/              OPC_MoveParent,
/*458011*/              OPC_MoveParent,
/*458012*/              OPC_RecordChild2, // #4 = $src0
/*458013*/              OPC_CheckType, MVT::v16f32,
/*458015*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458017*/              OPC_EmitConvertToTarget, 3,
/*458019*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrrik), 0,
                            MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)), VR512:{ *:[v16f32] }:$src0) - Complexity = 12
                        // Dst: (VSHUFF32X4Zrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*458030*/            0, /*End of Scope*/
/*458031*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::FADD_RND),// ->458073
/*458034*/            OPC_RecordChild0, // #1 = $src1
/*458035*/            OPC_RecordChild1, // #2 = $src2
/*458036*/            OPC_RecordChild2, // #3 = $rc
/*458037*/            OPC_MoveChild2,
/*458038*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458041*/            OPC_MoveParent,
/*458042*/            OPC_MoveParent,
/*458043*/            OPC_MoveChild2,
/*458044*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458047*/            OPC_MoveChild0,
/*458048*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458051*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458053*/            OPC_CheckType, MVT::v16i32,
/*458055*/            OPC_MoveParent,
/*458056*/            OPC_MoveParent,
/*458057*/            OPC_CheckType, MVT::v16f32,
/*458059*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458061*/            OPC_EmitConvertToTarget, 3,
/*458063*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrrbkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86faddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VADDPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*458073*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::FMUL_RND),// ->458115
/*458076*/            OPC_RecordChild0, // #1 = $src1
/*458077*/            OPC_RecordChild1, // #2 = $src2
/*458078*/            OPC_RecordChild2, // #3 = $rc
/*458079*/            OPC_MoveChild2,
/*458080*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458083*/            OPC_MoveParent,
/*458084*/            OPC_MoveParent,
/*458085*/            OPC_MoveChild2,
/*458086*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458089*/            OPC_MoveChild0,
/*458090*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458093*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458095*/            OPC_CheckType, MVT::v16i32,
/*458097*/            OPC_MoveParent,
/*458098*/            OPC_MoveParent,
/*458099*/            OPC_CheckType, MVT::v16f32,
/*458101*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458103*/            OPC_EmitConvertToTarget, 3,
/*458105*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrrbkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmulRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VMULPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*458115*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::FSUB_RND),// ->458157
/*458118*/            OPC_RecordChild0, // #1 = $src1
/*458119*/            OPC_RecordChild1, // #2 = $src2
/*458120*/            OPC_RecordChild2, // #3 = $rc
/*458121*/            OPC_MoveChild2,
/*458122*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458125*/            OPC_MoveParent,
/*458126*/            OPC_MoveParent,
/*458127*/            OPC_MoveChild2,
/*458128*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458131*/            OPC_MoveChild0,
/*458132*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458135*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458137*/            OPC_CheckType, MVT::v16i32,
/*458139*/            OPC_MoveParent,
/*458140*/            OPC_MoveParent,
/*458141*/            OPC_CheckType, MVT::v16f32,
/*458143*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458145*/            OPC_EmitConvertToTarget, 3,
/*458147*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrrbkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSUBPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*458157*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::FDIV_RND),// ->458199
/*458160*/            OPC_RecordChild0, // #1 = $src1
/*458161*/            OPC_RecordChild1, // #2 = $src2
/*458162*/            OPC_RecordChild2, // #3 = $rc
/*458163*/            OPC_MoveChild2,
/*458164*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458167*/            OPC_MoveParent,
/*458168*/            OPC_MoveParent,
/*458169*/            OPC_MoveChild2,
/*458170*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458173*/            OPC_MoveChild0,
/*458174*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458177*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458179*/            OPC_CheckType, MVT::v16i32,
/*458181*/            OPC_MoveParent,
/*458182*/            OPC_MoveParent,
/*458183*/            OPC_CheckType, MVT::v16f32,
/*458185*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458187*/            OPC_EmitConvertToTarget, 3,
/*458189*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrrbkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fdivRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VDIVPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*458199*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::SCALEF),// ->458263
/*458202*/            OPC_RecordChild0, // #1 = $src1
/*458203*/            OPC_RecordChild1, // #2 = $src2
/*458204*/            OPC_Scope, 37, /*->458243*/ // 2 children in Scope
/*458206*/              OPC_RecordChild2, // #3 = $rc
/*458207*/              OPC_MoveChild2,
/*458208*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458211*/              OPC_MoveParent,
/*458212*/              OPC_MoveParent,
/*458213*/              OPC_MoveChild2,
/*458214*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458217*/              OPC_MoveChild0,
/*458218*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458221*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458223*/              OPC_CheckType, MVT::v16i32,
/*458225*/              OPC_MoveParent,
/*458226*/              OPC_MoveParent,
/*458227*/              OPC_CheckType, MVT::v16f32,
/*458229*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458231*/              OPC_EmitConvertToTarget, 3,
/*458233*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrrbkz), 0,
                            MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                        // Dst: (VSCALEFPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*458243*/            /*Scope*/ 18, /*->458262*/
/*458244*/              OPC_CheckChild2Integer, 4, 
/*458246*/              OPC_MoveParent,
/*458247*/              OPC_RecordChild2, // #3 = $src0
/*458248*/              OPC_CheckType, MVT::v16f32,
/*458250*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458252*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                        // Dst: (VSCALEFPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*458262*/            0, /*End of Scope*/
/*458263*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VPERMILPI),// ->458303
/*458266*/            OPC_RecordChild0, // #1 = $src1
/*458267*/            OPC_RecordChild1, // #2 = $src2
/*458268*/            OPC_MoveChild1,
/*458269*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458272*/            OPC_MoveParent,
/*458273*/            OPC_MoveParent,
/*458274*/            OPC_MoveChild2,
/*458275*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458278*/            OPC_MoveChild0,
/*458279*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458282*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458284*/            OPC_CheckType, MVT::v16i32,
/*458286*/            OPC_MoveParent,
/*458287*/            OPC_MoveParent,
/*458288*/            OPC_CheckType, MVT::v16f32,
/*458290*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458292*/            OPC_EmitConvertToTarget, 2,
/*458294*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VPERMILPSZrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*458303*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FMADD_RND),// ->458347
/*458306*/            OPC_RecordChild0, // #1 = $src2
/*458307*/            OPC_RecordChild1, // #2 = $src1
/*458308*/            OPC_RecordChild2, // #3 = $src3
/*458309*/            OPC_RecordChild3, // #4 = $rc
/*458310*/            OPC_MoveChild3,
/*458311*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458314*/            OPC_MoveParent,
/*458315*/            OPC_MoveParent,
/*458316*/            OPC_MoveChild2,
/*458317*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458320*/            OPC_MoveChild0,
/*458321*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458324*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458326*/            OPC_CheckType, MVT::v16i32,
/*458328*/            OPC_MoveParent,
/*458329*/            OPC_MoveParent,
/*458330*/            OPC_CheckType, MVT::v16f32,
/*458332*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458334*/            OPC_EmitConvertToTarget, 4,
/*458336*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFMADD213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*458347*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FMSUB_RND),// ->458391
/*458350*/            OPC_RecordChild0, // #1 = $src2
/*458351*/            OPC_RecordChild1, // #2 = $src1
/*458352*/            OPC_RecordChild2, // #3 = $src3
/*458353*/            OPC_RecordChild3, // #4 = $rc
/*458354*/            OPC_MoveChild3,
/*458355*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458358*/            OPC_MoveParent,
/*458359*/            OPC_MoveParent,
/*458360*/            OPC_MoveChild2,
/*458361*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458364*/            OPC_MoveChild0,
/*458365*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458368*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458370*/            OPC_CheckType, MVT::v16i32,
/*458372*/            OPC_MoveParent,
/*458373*/            OPC_MoveParent,
/*458374*/            OPC_CheckType, MVT::v16f32,
/*458376*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458378*/            OPC_EmitConvertToTarget, 4,
/*458380*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFMSUB213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*458391*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FMADDSUB_RND),// ->458435
/*458394*/            OPC_RecordChild0, // #1 = $src2
/*458395*/            OPC_RecordChild1, // #2 = $src1
/*458396*/            OPC_RecordChild2, // #3 = $src3
/*458397*/            OPC_RecordChild3, // #4 = $rc
/*458398*/            OPC_MoveChild3,
/*458399*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458402*/            OPC_MoveParent,
/*458403*/            OPC_MoveParent,
/*458404*/            OPC_MoveChild2,
/*458405*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458408*/            OPC_MoveChild0,
/*458409*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458412*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458414*/            OPC_CheckType, MVT::v16i32,
/*458416*/            OPC_MoveParent,
/*458417*/            OPC_MoveParent,
/*458418*/            OPC_CheckType, MVT::v16f32,
/*458420*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458422*/            OPC_EmitConvertToTarget, 4,
/*458424*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFMADDSUB213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*458435*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FMSUBADD_RND),// ->458479
/*458438*/            OPC_RecordChild0, // #1 = $src2
/*458439*/            OPC_RecordChild1, // #2 = $src1
/*458440*/            OPC_RecordChild2, // #3 = $src3
/*458441*/            OPC_RecordChild3, // #4 = $rc
/*458442*/            OPC_MoveChild3,
/*458443*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458446*/            OPC_MoveParent,
/*458447*/            OPC_MoveParent,
/*458448*/            OPC_MoveChild2,
/*458449*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458452*/            OPC_MoveChild0,
/*458453*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458456*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458458*/            OPC_CheckType, MVT::v16i32,
/*458460*/            OPC_MoveParent,
/*458461*/            OPC_MoveParent,
/*458462*/            OPC_CheckType, MVT::v16f32,
/*458464*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458466*/            OPC_EmitConvertToTarget, 4,
/*458468*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFMSUBADD213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*458479*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FNMADD_RND),// ->458523
/*458482*/            OPC_RecordChild0, // #1 = $src2
/*458483*/            OPC_RecordChild1, // #2 = $src1
/*458484*/            OPC_RecordChild2, // #3 = $src3
/*458485*/            OPC_RecordChild3, // #4 = $rc
/*458486*/            OPC_MoveChild3,
/*458487*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458490*/            OPC_MoveParent,
/*458491*/            OPC_MoveParent,
/*458492*/            OPC_MoveChild2,
/*458493*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458496*/            OPC_MoveChild0,
/*458497*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458500*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458502*/            OPC_CheckType, MVT::v16i32,
/*458504*/            OPC_MoveParent,
/*458505*/            OPC_MoveParent,
/*458506*/            OPC_CheckType, MVT::v16f32,
/*458508*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458510*/            OPC_EmitConvertToTarget, 4,
/*458512*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFNMADD213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*458523*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::FNMSUB_RND),// ->458567
/*458526*/            OPC_RecordChild0, // #1 = $src2
/*458527*/            OPC_RecordChild1, // #2 = $src1
/*458528*/            OPC_RecordChild2, // #3 = $src3
/*458529*/            OPC_RecordChild3, // #4 = $rc
/*458530*/            OPC_MoveChild3,
/*458531*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458534*/            OPC_MoveParent,
/*458535*/            OPC_MoveParent,
/*458536*/            OPC_MoveChild2,
/*458537*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458540*/            OPC_MoveChild0,
/*458541*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458544*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458546*/            OPC_CheckType, MVT::v16i32,
/*458548*/            OPC_MoveParent,
/*458549*/            OPC_MoveParent,
/*458550*/            OPC_CheckType, MVT::v16f32,
/*458552*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458554*/            OPC_EmitConvertToTarget, 4,
/*458556*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VFNMSUB213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*458567*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::SINT_TO_FP_RND),// ->458609
/*458570*/            OPC_RecordChild0, // #1 = $src
/*458571*/            OPC_CheckChild0Type, MVT::v16i32,
/*458573*/            OPC_RecordChild1, // #2 = $rc
/*458574*/            OPC_MoveChild1,
/*458575*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458578*/            OPC_MoveParent,
/*458579*/            OPC_MoveParent,
/*458580*/            OPC_MoveChild2,
/*458581*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458584*/            OPC_MoveChild0,
/*458585*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458588*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458590*/            OPC_CheckType, MVT::v16i32,
/*458592*/            OPC_MoveParent,
/*458593*/            OPC_MoveParent,
/*458594*/            OPC_CheckType, MVT::v16f32,
/*458596*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458598*/            OPC_EmitConvertToTarget, 2,
/*458600*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrrbkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VSintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VCVTDQ2PSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc)
/*458609*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::UINT_TO_FP_RND),// ->458651
/*458612*/            OPC_RecordChild0, // #1 = $src
/*458613*/            OPC_CheckChild0Type, MVT::v16i32,
/*458615*/            OPC_RecordChild1, // #2 = $rc
/*458616*/            OPC_MoveChild1,
/*458617*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458620*/            OPC_MoveParent,
/*458621*/            OPC_MoveParent,
/*458622*/            OPC_MoveChild2,
/*458623*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458626*/            OPC_MoveChild0,
/*458627*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458630*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458632*/            OPC_CheckType, MVT::v16i32,
/*458634*/            OPC_MoveParent,
/*458635*/            OPC_MoveParent,
/*458636*/            OPC_CheckType, MVT::v16f32,
/*458638*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458640*/            OPC_EmitConvertToTarget, 2,
/*458642*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrrbkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VUintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VCVTUDQ2PSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc)
/*458651*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FSQRT_RND),// ->458691
/*458654*/            OPC_RecordChild0, // #1 = $src
/*458655*/            OPC_RecordChild1, // #2 = $rc
/*458656*/            OPC_MoveChild1,
/*458657*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458660*/            OPC_MoveParent,
/*458661*/            OPC_MoveParent,
/*458662*/            OPC_MoveChild2,
/*458663*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458666*/            OPC_MoveChild0,
/*458667*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458670*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458672*/            OPC_CheckType, MVT::v16i32,
/*458674*/            OPC_MoveParent,
/*458675*/            OPC_MoveParent,
/*458676*/            OPC_CheckType, MVT::v16f32,
/*458678*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458680*/            OPC_EmitConvertToTarget, 2,
/*458682*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZrbkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fsqrtRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSQRTPSZrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc)
/*458691*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VREDUCE),// ->458731
/*458694*/            OPC_RecordChild0, // #1 = $src1
/*458695*/            OPC_RecordChild1, // #2 = $src2
/*458696*/            OPC_MoveChild1,
/*458697*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458700*/            OPC_MoveParent,
/*458701*/            OPC_MoveParent,
/*458702*/            OPC_MoveChild2,
/*458703*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458706*/            OPC_MoveChild0,
/*458707*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458710*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458712*/            OPC_CheckType, MVT::v16i32,
/*458714*/            OPC_MoveParent,
/*458715*/            OPC_MoveParent,
/*458716*/            OPC_CheckType, MVT::v16f32,
/*458718*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*458720*/            OPC_EmitConvertToTarget, 2,
/*458722*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VREDUCEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*458731*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VRNDSCALE),// ->458771
/*458734*/            OPC_RecordChild0, // #1 = $src1
/*458735*/            OPC_RecordChild1, // #2 = $src2
/*458736*/            OPC_MoveChild1,
/*458737*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458740*/            OPC_MoveParent,
/*458741*/            OPC_MoveParent,
/*458742*/            OPC_MoveChild2,
/*458743*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458746*/            OPC_MoveChild0,
/*458747*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458750*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458752*/            OPC_CheckType, MVT::v16i32,
/*458754*/            OPC_MoveParent,
/*458755*/            OPC_MoveParent,
/*458756*/            OPC_CheckType, MVT::v16f32,
/*458758*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458760*/            OPC_EmitConvertToTarget, 2,
/*458762*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VRNDSCALEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*458771*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VGETMANT),// ->458811
/*458774*/            OPC_RecordChild0, // #1 = $src1
/*458775*/            OPC_RecordChild1, // #2 = $src2
/*458776*/            OPC_MoveChild1,
/*458777*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458780*/            OPC_MoveParent,
/*458781*/            OPC_MoveParent,
/*458782*/            OPC_MoveChild2,
/*458783*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458786*/            OPC_MoveChild0,
/*458787*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458790*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458792*/            OPC_CheckType, MVT::v16i32,
/*458794*/            OPC_MoveParent,
/*458795*/            OPC_MoveParent,
/*458796*/            OPC_CheckType, MVT::v16f32,
/*458798*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458800*/            OPC_EmitConvertToTarget, 2,
/*458802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VGETMANTPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*458811*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VRANGE),// ->458853
/*458814*/            OPC_RecordChild0, // #1 = $src1
/*458815*/            OPC_RecordChild1, // #2 = $src2
/*458816*/            OPC_RecordChild2, // #3 = $src3
/*458817*/            OPC_MoveChild2,
/*458818*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458821*/            OPC_MoveParent,
/*458822*/            OPC_MoveParent,
/*458823*/            OPC_MoveChild2,
/*458824*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458827*/            OPC_MoveChild0,
/*458828*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458831*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458833*/            OPC_CheckType, MVT::v16i32,
/*458835*/            OPC_MoveParent,
/*458836*/            OPC_MoveParent,
/*458837*/            OPC_CheckType, MVT::v16f32,
/*458839*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*458841*/            OPC_EmitConvertToTarget, 3,
/*458843*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrrikz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VRANGEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*458853*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::SHUFP),// ->458895
/*458856*/            OPC_RecordChild0, // #1 = $src1
/*458857*/            OPC_RecordChild1, // #2 = $src2
/*458858*/            OPC_RecordChild2, // #3 = $src3
/*458859*/            OPC_MoveChild2,
/*458860*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458863*/            OPC_MoveParent,
/*458864*/            OPC_MoveParent,
/*458865*/            OPC_MoveChild2,
/*458866*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*458869*/            OPC_MoveChild0,
/*458870*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*458873*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*458875*/            OPC_CheckType, MVT::v16i32,
/*458877*/            OPC_MoveParent,
/*458878*/            OPC_MoveParent,
/*458879*/            OPC_CheckType, MVT::v16f32,
/*458881*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458883*/            OPC_EmitConvertToTarget, 3,
/*458885*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrrikz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 16
                      // Dst: (VSHUFPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*458895*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VREDUCE_RND),// ->458925
/*458898*/            OPC_RecordChild0, // #1 = $src1
/*458899*/            OPC_RecordChild1, // #2 = $src2
/*458900*/            OPC_MoveChild1,
/*458901*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458904*/            OPC_MoveParent,
/*458905*/            OPC_CheckChild2Integer, 8, 
/*458907*/            OPC_MoveParent,
/*458908*/            OPC_RecordChild2, // #3 = $src0
/*458909*/            OPC_CheckType, MVT::v16f32,
/*458911*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*458913*/            OPC_EmitConvertToTarget, 2,
/*458915*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrribk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduceRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 14
                      // Dst: (VREDUCEPSZrribk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*458925*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VRNDSCALE_RND),// ->458955
/*458928*/            OPC_RecordChild0, // #1 = $src1
/*458929*/            OPC_RecordChild1, // #2 = $src2
/*458930*/            OPC_MoveChild1,
/*458931*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458934*/            OPC_MoveParent,
/*458935*/            OPC_CheckChild2Integer, 8, 
/*458937*/            OPC_MoveParent,
/*458938*/            OPC_RecordChild2, // #3 = $src0
/*458939*/            OPC_CheckType, MVT::v16f32,
/*458941*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458943*/            OPC_EmitConvertToTarget, 2,
/*458945*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrribk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScaleRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 14
                      // Dst: (VRNDSCALEPSZrribk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*458955*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VGETMANT_RND),// ->458985
/*458958*/            OPC_RecordChild0, // #1 = $src1
/*458959*/            OPC_RecordChild1, // #2 = $src2
/*458960*/            OPC_MoveChild1,
/*458961*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458964*/            OPC_MoveParent,
/*458965*/            OPC_CheckChild2Integer, 8, 
/*458967*/            OPC_MoveParent,
/*458968*/            OPC_RecordChild2, // #3 = $src0
/*458969*/            OPC_CheckType, MVT::v16f32,
/*458971*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458973*/            OPC_EmitConvertToTarget, 2,
/*458975*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrribk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMantRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 14
                      // Dst: (VGETMANTPSZrribk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*458985*/          /*SwitchOpcode*/ 29, TARGET_VAL(X86ISD::VRANGE_RND),// ->459017
/*458988*/            OPC_RecordChild0, // #1 = $src1
/*458989*/            OPC_RecordChild1, // #2 = $src2
/*458990*/            OPC_RecordChild2, // #3 = $src3
/*458991*/            OPC_MoveChild2,
/*458992*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*458995*/            OPC_MoveParent,
/*458996*/            OPC_CheckChild3Integer, 8, 
/*458998*/            OPC_MoveParent,
/*458999*/            OPC_RecordChild2, // #4 = $src0
/*459000*/            OPC_CheckType, MVT::v16f32,
/*459002*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*459004*/            OPC_EmitConvertToTarget, 3,
/*459006*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrribk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRangeRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 14
                      // Dst: (VRANGEPSZrribk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*459017*/          /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VFIXUPIMM),// ->459077
/*459020*/            OPC_RecordChild0, // #1 = $src1
/*459021*/            OPC_RecordChild1, // #2 = $src2
/*459022*/            OPC_RecordChild2, // #3 = $src3
/*459023*/            OPC_RecordChild3, // #4 = $src4
/*459024*/            OPC_MoveChild3,
/*459025*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*459028*/            OPC_MoveParent,
/*459029*/            OPC_Scope, 22, /*->459053*/ // 2 children in Scope
/*459031*/              OPC_CheckChild4Integer, 4, 
/*459033*/              OPC_MoveParent,
/*459034*/              OPC_CheckChild2Same, 1,
/*459036*/              OPC_CheckType, MVT::v16f32,
/*459038*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459040*/              OPC_EmitConvertToTarget, 4,
/*459042*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrrik), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src1) - Complexity = 14
                        // Dst: (VFIXUPIMMPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*459053*/            /*Scope*/ 22, /*->459076*/
/*459054*/              OPC_CheckChild4Integer, 8, 
/*459056*/              OPC_MoveParent,
/*459057*/              OPC_CheckChild2Same, 1,
/*459059*/              OPC_CheckType, MVT::v16f32,
/*459061*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459063*/              OPC_EmitConvertToTarget, 4,
/*459065*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrribk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src1) - Complexity = 14
                        // Dst: (VFIXUPIMMPSZrribk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*459076*/            0, /*End of Scope*/
/*459077*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST),// ->459154
/*459080*/            OPC_RecordChild0, // #1 = $src
/*459081*/            OPC_Scope, 29, /*->459112*/ // 2 children in Scope
/*459083*/              OPC_CheckChild0Type, MVT::v4f32,
/*459085*/              OPC_MoveParent,
/*459086*/              OPC_MoveChild2,
/*459087*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459090*/              OPC_MoveChild0,
/*459091*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459094*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459096*/              OPC_CheckType, MVT::v16i32,
/*459098*/              OPC_MoveParent,
/*459099*/              OPC_MoveParent,
/*459100*/              OPC_CheckType, MVT::v16f32,
/*459102*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459104*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZrkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16f32] } VR128X:{ *:[v4f32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VBROADCASTSSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*459112*/            /*Scope*/ 40, /*->459153*/
/*459113*/              OPC_CheckChild0Type, MVT::f32,
/*459115*/              OPC_MoveParent,
/*459116*/              OPC_MoveChild2,
/*459117*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459120*/              OPC_MoveChild0,
/*459121*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459124*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459126*/              OPC_CheckType, MVT::v16i32,
/*459128*/              OPC_MoveParent,
/*459129*/              OPC_MoveParent,
/*459130*/              OPC_CheckType, MVT::v16f32,
/*459132*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459134*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*459137*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*459145*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZrkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16f32] } FR32X:{ *:[f32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VBROADCASTSSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*459153*/            0, /*End of Scope*/
/*459154*/          /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VPERMV3),// ->459222
/*459157*/            OPC_RecordChild0, // #1 = $src1
/*459158*/            OPC_Scope, 31, /*->459191*/ // 2 children in Scope
/*459160*/              OPC_RecordChild1, // #2 = $src2
/*459161*/              OPC_RecordChild2, // #3 = $src3
/*459162*/              OPC_MoveParent,
/*459163*/              OPC_MoveChild2,
/*459164*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459167*/              OPC_MoveChild0,
/*459168*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459171*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459173*/              OPC_CheckType, MVT::v16i32,
/*459175*/              OPC_MoveParent,
/*459176*/              OPC_MoveParent,
/*459177*/              OPC_CheckType, MVT::v16f32,
/*459179*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459181*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PSrrkz), 0,
                            MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16f32] }:$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMT2PSrrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*459191*/            /*Scope*/ 29, /*->459221*/
/*459192*/              OPC_MoveChild1,
/*459193*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459196*/              OPC_RecordChild0, // #2 = $src1
/*459197*/              OPC_CheckChild0Type, MVT::v8i64,
/*459199*/              OPC_MoveParent,
/*459200*/              OPC_RecordChild2, // #3 = $src3
/*459201*/              OPC_MoveParent,
/*459202*/              OPC_MoveChild2,
/*459203*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459206*/              OPC_CheckChild0Same, 2,
/*459208*/              OPC_MoveParent,
/*459209*/              OPC_CheckType, MVT::v16f32,
/*459211*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PSrrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (bitconvert:{ *:[v16i32] } VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v16f32] }:$src3), (bitconvert:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src1)) - Complexity = 12
                        // Dst: (VPERMI2PSrrk:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*459221*/            0, /*End of Scope*/
/*459222*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::FADD),// ->459255
/*459225*/            OPC_RecordChild0, // #1 = $src1
/*459226*/            OPC_RecordChild1, // #2 = $src2
/*459227*/            OPC_MoveParent,
/*459228*/            OPC_MoveChild2,
/*459229*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459232*/            OPC_MoveChild0,
/*459233*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459236*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459238*/            OPC_CheckType, MVT::v16i32,
/*459240*/            OPC_MoveParent,
/*459241*/            OPC_MoveParent,
/*459242*/            OPC_CheckType, MVT::v16f32,
/*459244*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459246*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VADDPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*459255*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::FMUL),// ->459288
/*459258*/            OPC_RecordChild0, // #1 = $src1
/*459259*/            OPC_RecordChild1, // #2 = $src2
/*459260*/            OPC_MoveParent,
/*459261*/            OPC_MoveChild2,
/*459262*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459265*/            OPC_MoveChild0,
/*459266*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459269*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459271*/            OPC_CheckType, MVT::v16i32,
/*459273*/            OPC_MoveParent,
/*459274*/            OPC_MoveParent,
/*459275*/            OPC_CheckType, MVT::v16f32,
/*459277*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMULPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*459288*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::FSUB),// ->459321
/*459291*/            OPC_RecordChild0, // #1 = $src1
/*459292*/            OPC_RecordChild1, // #2 = $src2
/*459293*/            OPC_MoveParent,
/*459294*/            OPC_MoveChild2,
/*459295*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459298*/            OPC_MoveChild0,
/*459299*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459302*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459304*/            OPC_CheckType, MVT::v16i32,
/*459306*/            OPC_MoveParent,
/*459307*/            OPC_MoveParent,
/*459308*/            OPC_CheckType, MVT::v16f32,
/*459310*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459312*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VSUBPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*459321*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::FDIV),// ->459354
/*459324*/            OPC_RecordChild0, // #1 = $src1
/*459325*/            OPC_RecordChild1, // #2 = $src2
/*459326*/            OPC_MoveParent,
/*459327*/            OPC_MoveChild2,
/*459328*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459331*/            OPC_MoveChild0,
/*459332*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459335*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459337*/            OPC_CheckType, MVT::v16i32,
/*459339*/            OPC_MoveParent,
/*459340*/            OPC_MoveParent,
/*459341*/            OPC_CheckType, MVT::v16f32,
/*459343*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459345*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VDIVPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*459354*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMIN),// ->459387
/*459357*/            OPC_RecordChild0, // #1 = $src1
/*459358*/            OPC_RecordChild1, // #2 = $src2
/*459359*/            OPC_MoveParent,
/*459360*/            OPC_MoveChild2,
/*459361*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459364*/            OPC_MoveChild0,
/*459365*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459368*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459370*/            OPC_CheckType, MVT::v16i32,
/*459372*/            OPC_MoveParent,
/*459373*/            OPC_MoveParent,
/*459374*/            OPC_CheckType, MVT::v16f32,
/*459376*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459378*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmin:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMINPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*459387*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMAX),// ->459420
/*459390*/            OPC_RecordChild0, // #1 = $src1
/*459391*/            OPC_RecordChild1, // #2 = $src2
/*459392*/            OPC_MoveParent,
/*459393*/            OPC_MoveChild2,
/*459394*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459397*/            OPC_MoveChild0,
/*459398*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459401*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459403*/            OPC_CheckType, MVT::v16i32,
/*459405*/            OPC_MoveParent,
/*459406*/            OPC_MoveParent,
/*459407*/            OPC_CheckType, MVT::v16f32,
/*459409*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459411*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmax:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMAXPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*459420*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMINC),// ->459453
/*459423*/            OPC_RecordChild0, // #1 = $src1
/*459424*/            OPC_RecordChild1, // #2 = $src2
/*459425*/            OPC_MoveParent,
/*459426*/            OPC_MoveChild2,
/*459427*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459430*/            OPC_MoveChild0,
/*459431*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459434*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459436*/            OPC_CheckType, MVT::v16i32,
/*459438*/            OPC_MoveParent,
/*459439*/            OPC_MoveParent,
/*459440*/            OPC_CheckType, MVT::v16f32,
/*459442*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459444*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMINCPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*459453*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMAXC),// ->459486
/*459456*/            OPC_RecordChild0, // #1 = $src1
/*459457*/            OPC_RecordChild1, // #2 = $src2
/*459458*/            OPC_MoveParent,
/*459459*/            OPC_MoveChild2,
/*459460*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459463*/            OPC_MoveChild0,
/*459464*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459467*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459469*/            OPC_CheckType, MVT::v16i32,
/*459471*/            OPC_MoveParent,
/*459472*/            OPC_MoveParent,
/*459473*/            OPC_CheckType, MVT::v16f32,
/*459475*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459477*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMAXCPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*459486*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VPERMV),// ->459519
/*459489*/            OPC_RecordChild0, // #1 = $src1
/*459490*/            OPC_RecordChild1, // #2 = $src2
/*459491*/            OPC_MoveParent,
/*459492*/            OPC_MoveChild2,
/*459493*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459496*/            OPC_MoveChild0,
/*459497*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459500*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459502*/            OPC_CheckType, MVT::v16i32,
/*459504*/            OPC_MoveParent,
/*459505*/            OPC_MoveParent,
/*459506*/            OPC_CheckType, MVT::v16f32,
/*459508*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459510*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPERMPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*459519*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VPERMILPV),// ->459552
/*459522*/            OPC_RecordChild0, // #1 = $src1
/*459523*/            OPC_RecordChild1, // #2 = $src2
/*459524*/            OPC_MoveParent,
/*459525*/            OPC_MoveChild2,
/*459526*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459529*/            OPC_MoveChild0,
/*459530*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459533*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459535*/            OPC_CheckType, MVT::v16i32,
/*459537*/            OPC_MoveParent,
/*459538*/            OPC_MoveParent,
/*459539*/            OPC_CheckType, MVT::v16f32,
/*459541*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459543*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPERMILPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*459552*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FMA),// ->459587
/*459555*/            OPC_RecordChild0, // #1 = $src2
/*459556*/            OPC_RecordChild1, // #2 = $src1
/*459557*/            OPC_RecordChild2, // #3 = $src3
/*459558*/            OPC_MoveParent,
/*459559*/            OPC_MoveChild2,
/*459560*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459563*/            OPC_MoveChild0,
/*459564*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459567*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459569*/            OPC_CheckType, MVT::v16i32,
/*459571*/            OPC_MoveParent,
/*459572*/            OPC_MoveParent,
/*459573*/            OPC_CheckType, MVT::v16f32,
/*459575*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459577*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZrkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFMADD213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*459587*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FMSUB),// ->459622
/*459590*/            OPC_RecordChild0, // #1 = $src2
/*459591*/            OPC_RecordChild1, // #2 = $src1
/*459592*/            OPC_RecordChild2, // #3 = $src3
/*459593*/            OPC_MoveParent,
/*459594*/            OPC_MoveChild2,
/*459595*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459598*/            OPC_MoveChild0,
/*459599*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459602*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459604*/            OPC_CheckType, MVT::v16i32,
/*459606*/            OPC_MoveParent,
/*459607*/            OPC_MoveParent,
/*459608*/            OPC_CheckType, MVT::v16f32,
/*459610*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459612*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZrkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFMSUB213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*459622*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FMADDSUB),// ->459657
/*459625*/            OPC_RecordChild0, // #1 = $src2
/*459626*/            OPC_RecordChild1, // #2 = $src1
/*459627*/            OPC_RecordChild2, // #3 = $src3
/*459628*/            OPC_MoveParent,
/*459629*/            OPC_MoveChild2,
/*459630*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459633*/            OPC_MoveChild0,
/*459634*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459637*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459639*/            OPC_CheckType, MVT::v16i32,
/*459641*/            OPC_MoveParent,
/*459642*/            OPC_MoveParent,
/*459643*/            OPC_CheckType, MVT::v16f32,
/*459645*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459647*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZrkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFMADDSUB213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*459657*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FMSUBADD),// ->459692
/*459660*/            OPC_RecordChild0, // #1 = $src2
/*459661*/            OPC_RecordChild1, // #2 = $src1
/*459662*/            OPC_RecordChild2, // #3 = $src3
/*459663*/            OPC_MoveParent,
/*459664*/            OPC_MoveChild2,
/*459665*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459668*/            OPC_MoveChild0,
/*459669*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459672*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459674*/            OPC_CheckType, MVT::v16i32,
/*459676*/            OPC_MoveParent,
/*459677*/            OPC_MoveParent,
/*459678*/            OPC_CheckType, MVT::v16f32,
/*459680*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459682*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZrkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFMSUBADD213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*459692*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FNMADD),// ->459727
/*459695*/            OPC_RecordChild0, // #1 = $src2
/*459696*/            OPC_RecordChild1, // #2 = $src1
/*459697*/            OPC_RecordChild2, // #3 = $src3
/*459698*/            OPC_MoveParent,
/*459699*/            OPC_MoveChild2,
/*459700*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459703*/            OPC_MoveChild0,
/*459704*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459707*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459709*/            OPC_CheckType, MVT::v16i32,
/*459711*/            OPC_MoveParent,
/*459712*/            OPC_MoveParent,
/*459713*/            OPC_CheckType, MVT::v16f32,
/*459715*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459717*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZrkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFNMADD213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*459727*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::FNMSUB),// ->459762
/*459730*/            OPC_RecordChild0, // #1 = $src2
/*459731*/            OPC_RecordChild1, // #2 = $src1
/*459732*/            OPC_RecordChild2, // #3 = $src3
/*459733*/            OPC_MoveParent,
/*459734*/            OPC_MoveChild2,
/*459735*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459738*/            OPC_MoveChild0,
/*459739*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459742*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459744*/            OPC_CheckType, MVT::v16i32,
/*459746*/            OPC_MoveParent,
/*459747*/            OPC_MoveParent,
/*459748*/            OPC_CheckType, MVT::v16f32,
/*459750*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459752*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZrkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VFNMSUB213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*459762*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SINT_TO_FP),// ->459795
/*459765*/            OPC_RecordChild0, // #1 = $src
/*459766*/            OPC_CheckChild0Type, MVT::v16i32,
/*459768*/            OPC_MoveParent,
/*459769*/            OPC_MoveChild2,
/*459770*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459773*/            OPC_MoveChild0,
/*459774*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459777*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459779*/            OPC_CheckType, MVT::v16i32,
/*459781*/            OPC_MoveParent,
/*459782*/            OPC_MoveParent,
/*459783*/            OPC_CheckType, MVT::v16f32,
/*459785*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459787*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (sint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTDQ2PSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*459795*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::UINT_TO_FP),// ->459828
/*459798*/            OPC_RecordChild0, // #1 = $src
/*459799*/            OPC_CheckChild0Type, MVT::v16i32,
/*459801*/            OPC_MoveParent,
/*459802*/            OPC_MoveChild2,
/*459803*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459806*/            OPC_MoveChild0,
/*459807*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459810*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459812*/            OPC_CheckType, MVT::v16i32,
/*459814*/            OPC_MoveParent,
/*459815*/            OPC_MoveParent,
/*459816*/            OPC_CheckType, MVT::v16f32,
/*459818*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459820*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (uint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTUDQ2PSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*459828*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::CVTPH2PS),// ->459861
/*459831*/            OPC_RecordChild0, // #1 = $src
/*459832*/            OPC_CheckChild0Type, MVT::v16i16,
/*459834*/            OPC_MoveParent,
/*459835*/            OPC_MoveChild2,
/*459836*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459839*/            OPC_MoveChild0,
/*459840*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459843*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459845*/            OPC_CheckType, MVT::v16i32,
/*459847*/            OPC_MoveParent,
/*459848*/            OPC_MoveParent,
/*459849*/            OPC_CheckType, MVT::v16f32,
/*459851*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459853*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtph2ps:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCVTPH2PSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*459861*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::RSQRT14),// ->459892
/*459864*/            OPC_RecordChild0, // #1 = $src
/*459865*/            OPC_MoveParent,
/*459866*/            OPC_MoveChild2,
/*459867*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459870*/            OPC_MoveChild0,
/*459871*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459874*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459876*/            OPC_CheckType, MVT::v16i32,
/*459878*/            OPC_MoveParent,
/*459879*/            OPC_MoveParent,
/*459880*/            OPC_CheckType, MVT::v16f32,
/*459882*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt14:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRSQRT14PSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*459892*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::RCP14),// ->459923
/*459895*/            OPC_RecordChild0, // #1 = $src
/*459896*/            OPC_MoveParent,
/*459897*/            OPC_MoveChild2,
/*459898*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459901*/            OPC_MoveChild0,
/*459902*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459905*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459907*/            OPC_CheckType, MVT::v16i32,
/*459909*/            OPC_MoveParent,
/*459910*/            OPC_MoveParent,
/*459911*/            OPC_CheckType, MVT::v16f32,
/*459913*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459915*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp14:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRCP14PSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*459923*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::FSQRT),// ->459954
/*459926*/            OPC_RecordChild0, // #1 = $src
/*459927*/            OPC_MoveParent,
/*459928*/            OPC_MoveChild2,
/*459929*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459932*/            OPC_MoveChild0,
/*459933*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459936*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459938*/            OPC_CheckType, MVT::v16i32,
/*459940*/            OPC_MoveParent,
/*459941*/            OPC_MoveParent,
/*459942*/            OPC_CheckType, MVT::v16f32,
/*459944*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459946*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsqrt:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VSQRTPSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*459954*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::COMPRESS),// ->459985
/*459957*/            OPC_RecordChild0, // #1 = $src1
/*459958*/            OPC_MoveParent,
/*459959*/            OPC_MoveChild2,
/*459960*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459963*/            OPC_MoveChild0,
/*459964*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459967*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*459969*/            OPC_CheckType, MVT::v16i32,
/*459971*/            OPC_MoveParent,
/*459972*/            OPC_MoveParent,
/*459973*/            OPC_CheckType, MVT::v16f32,
/*459975*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459977*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZrrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86compress:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VCOMPRESSPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1)
/*459985*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::EXPAND),// ->460016
/*459988*/            OPC_RecordChild0, // #1 = $src1
/*459989*/            OPC_MoveParent,
/*459990*/            OPC_MoveChild2,
/*459991*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*459994*/            OPC_MoveChild0,
/*459995*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*459998*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*460000*/            OPC_CheckType, MVT::v16i32,
/*460002*/            OPC_MoveParent,
/*460003*/            OPC_MoveParent,
/*460004*/            OPC_CheckType, MVT::v16f32,
/*460006*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460008*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VEXPANDPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1)
/*460016*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FFLOOR),// ->460051
/*460019*/            OPC_RecordChild0, // #1 = $src
/*460020*/            OPC_MoveParent,
/*460021*/            OPC_MoveChild2,
/*460022*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*460025*/            OPC_MoveChild0,
/*460026*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*460029*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*460031*/            OPC_CheckType, MVT::v16i32,
/*460033*/            OPC_MoveParent,
/*460034*/            OPC_MoveParent,
/*460035*/            OPC_CheckType, MVT::v16f32,
/*460037*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460039*/            OPC_EmitInteger, MVT::i32, 9, 
/*460042*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ffloor:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRNDSCALEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, 9:{ *:[i32] })
/*460051*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FNEARBYINT),// ->460086
/*460054*/            OPC_RecordChild0, // #1 = $src
/*460055*/            OPC_MoveParent,
/*460056*/            OPC_MoveChild2,
/*460057*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*460060*/            OPC_MoveChild0,
/*460061*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*460064*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*460066*/            OPC_CheckType, MVT::v16i32,
/*460068*/            OPC_MoveParent,
/*460069*/            OPC_MoveParent,
/*460070*/            OPC_CheckType, MVT::v16f32,
/*460072*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460074*/            OPC_EmitInteger, MVT::i32, 12, 
/*460077*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fnearbyint:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRNDSCALEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, 12:{ *:[i32] })
/*460086*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FCEIL),// ->460121
/*460089*/            OPC_RecordChild0, // #1 = $src
/*460090*/            OPC_MoveParent,
/*460091*/            OPC_MoveChild2,
/*460092*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*460095*/            OPC_MoveChild0,
/*460096*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*460099*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*460101*/            OPC_CheckType, MVT::v16i32,
/*460103*/            OPC_MoveParent,
/*460104*/            OPC_MoveParent,
/*460105*/            OPC_CheckType, MVT::v16f32,
/*460107*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460109*/            OPC_EmitInteger, MVT::i32, 10, 
/*460112*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fceil:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRNDSCALEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, 10:{ *:[i32] })
/*460121*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FRINT),// ->460156
/*460124*/            OPC_RecordChild0, // #1 = $src
/*460125*/            OPC_MoveParent,
/*460126*/            OPC_MoveChild2,
/*460127*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*460130*/            OPC_MoveChild0,
/*460131*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*460134*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*460136*/            OPC_CheckType, MVT::v16i32,
/*460138*/            OPC_MoveParent,
/*460139*/            OPC_MoveParent,
/*460140*/            OPC_CheckType, MVT::v16f32,
/*460142*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460144*/            OPC_EmitInteger, MVT::i32, 4, 
/*460147*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (frint:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRNDSCALEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] })
/*460156*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FTRUNC),// ->460191
/*460159*/            OPC_RecordChild0, // #1 = $src
/*460160*/            OPC_MoveParent,
/*460161*/            OPC_MoveChild2,
/*460162*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*460165*/            OPC_MoveChild0,
/*460166*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*460169*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*460171*/            OPC_CheckType, MVT::v16i32,
/*460173*/            OPC_MoveParent,
/*460174*/            OPC_MoveParent,
/*460175*/            OPC_CheckType, MVT::v16f32,
/*460177*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460179*/            OPC_EmitInteger, MVT::i32, 11, 
/*460182*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ftrunc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VRNDSCALEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, 11:{ *:[i32] })
/*460191*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::MOVSHDUP),// ->460222
/*460194*/            OPC_RecordChild0, // #1 = $src1
/*460195*/            OPC_MoveParent,
/*460196*/            OPC_MoveChild2,
/*460197*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*460200*/            OPC_MoveChild0,
/*460201*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*460204*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*460206*/            OPC_CheckType, MVT::v16i32,
/*460208*/            OPC_MoveParent,
/*460209*/            OPC_MoveParent,
/*460210*/            OPC_CheckType, MVT::v16f32,
/*460212*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460214*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZrrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Movshdup:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMOVSHDUPZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1)
/*460222*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::MOVSLDUP),// ->460253
/*460225*/            OPC_RecordChild0, // #1 = $src1
/*460226*/            OPC_MoveParent,
/*460227*/            OPC_MoveChild2,
/*460228*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*460231*/            OPC_MoveChild0,
/*460232*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*460235*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*460237*/            OPC_CheckType, MVT::v16i32,
/*460239*/            OPC_MoveParent,
/*460240*/            OPC_MoveParent,
/*460241*/            OPC_CheckType, MVT::v16f32,
/*460243*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460245*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZrrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Movsldup:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VMOVSLDUPZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1)
/*460253*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::UNPCKH),// ->460286
/*460256*/            OPC_RecordChild0, // #1 = $src1
/*460257*/            OPC_RecordChild1, // #2 = $src2
/*460258*/            OPC_MoveParent,
/*460259*/            OPC_MoveChild2,
/*460260*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*460263*/            OPC_MoveChild0,
/*460264*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*460267*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*460269*/            OPC_CheckType, MVT::v16i32,
/*460271*/            OPC_MoveParent,
/*460272*/            OPC_MoveParent,
/*460273*/            OPC_CheckType, MVT::v16f32,
/*460275*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460277*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VUNPCKHPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*460286*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::UNPCKL),// ->460319
/*460289*/            OPC_RecordChild0, // #1 = $src1
/*460290*/            OPC_RecordChild1, // #2 = $src2
/*460291*/            OPC_MoveParent,
/*460292*/            OPC_MoveChild2,
/*460293*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*460296*/            OPC_MoveChild0,
/*460297*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*460300*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*460302*/            OPC_CheckType, MVT::v16i32,
/*460304*/            OPC_MoveParent,
/*460305*/            OPC_MoveParent,
/*460306*/            OPC_CheckType, MVT::v16f32,
/*460308*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460310*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZrrkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VUNPCKLPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*460319*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::FMIN_RND),// ->460342
/*460322*/            OPC_RecordChild0, // #1 = $src1
/*460323*/            OPC_RecordChild1, // #2 = $src2
/*460324*/            OPC_CheckChild2Integer, 8, 
/*460326*/            OPC_MoveParent,
/*460327*/            OPC_RecordChild2, // #3 = $src0
/*460328*/            OPC_CheckType, MVT::v16f32,
/*460330*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460332*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrrbk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                      // Dst: (VMINPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*460342*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::FMAX_RND),// ->460365
/*460345*/            OPC_RecordChild0, // #1 = $src1
/*460346*/            OPC_RecordChild1, // #2 = $src2
/*460347*/            OPC_CheckChild2Integer, 8, 
/*460349*/            OPC_MoveParent,
/*460350*/            OPC_RecordChild2, // #3 = $src0
/*460351*/            OPC_CheckType, MVT::v16f32,
/*460353*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460355*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrrbk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                      // Dst: (VMAXPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*460365*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::CVTPH2PS_RND),// ->460388
/*460368*/            OPC_RecordChild0, // #1 = $src
/*460369*/            OPC_CheckChild0Type, MVT::v16i16,
/*460371*/            OPC_CheckChild1Integer, 8, 
/*460373*/            OPC_MoveParent,
/*460374*/            OPC_RecordChild2, // #2 = $src0
/*460375*/            OPC_CheckType, MVT::v16f32,
/*460377*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460379*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrrbk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtph2psRnd:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                      // Dst: (VCVTPH2PSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*460388*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::RSQRT28),// ->460430
/*460391*/            OPC_RecordChild0, // #1 = $src
/*460392*/            OPC_Scope, 17, /*->460411*/ // 2 children in Scope
/*460394*/              OPC_CheckChild1Integer, 4, 
/*460396*/              OPC_MoveParent,
/*460397*/              OPC_RecordChild2, // #2 = $src0
/*460398*/              OPC_CheckType, MVT::v16f32,
/*460400*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*460402*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZrk), 0,
                            MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                        // Dst: (VRSQRT28PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*460411*/            /*Scope*/ 17, /*->460429*/
/*460412*/              OPC_CheckChild1Integer, 8, 
/*460414*/              OPC_MoveParent,
/*460415*/              OPC_RecordChild2, // #2 = $src0
/*460416*/              OPC_CheckType, MVT::v16f32,
/*460418*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*460420*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZrbk), 0,
                            MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                        // Dst: (VRSQRT28PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*460429*/            0, /*End of Scope*/
/*460430*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::RCP28),// ->460472
/*460433*/            OPC_RecordChild0, // #1 = $src
/*460434*/            OPC_Scope, 17, /*->460453*/ // 2 children in Scope
/*460436*/              OPC_CheckChild1Integer, 4, 
/*460438*/              OPC_MoveParent,
/*460439*/              OPC_RecordChild2, // #2 = $src0
/*460440*/              OPC_CheckType, MVT::v16f32,
/*460442*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*460444*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZrk), 0,
                            MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                        // Dst: (VRCP28PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*460453*/            /*Scope*/ 17, /*->460471*/
/*460454*/              OPC_CheckChild1Integer, 8, 
/*460456*/              OPC_MoveParent,
/*460457*/              OPC_RecordChild2, // #2 = $src0
/*460458*/              OPC_CheckType, MVT::v16f32,
/*460460*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*460462*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZrbk), 0,
                            MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                        // Dst: (VRCP28PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*460471*/            0, /*End of Scope*/
/*460472*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::EXP2),// ->460514
/*460475*/            OPC_RecordChild0, // #1 = $src
/*460476*/            OPC_Scope, 17, /*->460495*/ // 2 children in Scope
/*460478*/              OPC_CheckChild1Integer, 4, 
/*460480*/              OPC_MoveParent,
/*460481*/              OPC_RecordChild2, // #2 = $src0
/*460482*/              OPC_CheckType, MVT::v16f32,
/*460484*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*460486*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZrk), 0,
                            MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86exp2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                        // Dst: (VEXP2PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*460495*/            /*Scope*/ 17, /*->460513*/
/*460496*/              OPC_CheckChild1Integer, 8, 
/*460498*/              OPC_MoveParent,
/*460499*/              OPC_RecordChild2, // #2 = $src0
/*460500*/              OPC_CheckType, MVT::v16f32,
/*460502*/              OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*460504*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZrbk), 0,
                            MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86exp2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                        // Dst: (VEXP2PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*460513*/            0, /*End of Scope*/
/*460514*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::FGETEXP_RND),// ->460556
/*460517*/            OPC_RecordChild0, // #1 = $src
/*460518*/            OPC_Scope, 17, /*->460537*/ // 2 children in Scope
/*460520*/              OPC_CheckChild1Integer, 4, 
/*460522*/              OPC_MoveParent,
/*460523*/              OPC_RecordChild2, // #2 = $src0
/*460524*/              OPC_CheckType, MVT::v16f32,
/*460526*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460528*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZrk), 0,
                            MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexpRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                        // Dst: (VGETEXPPSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*460537*/            /*Scope*/ 17, /*->460555*/
/*460538*/              OPC_CheckChild1Integer, 8, 
/*460540*/              OPC_MoveParent,
/*460541*/              OPC_RecordChild2, // #2 = $src0
/*460542*/              OPC_CheckType, MVT::v16f32,
/*460544*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460546*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZrbk), 0,
                            MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexpRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }), VR512:{ *:[v16f32] }:$src0) - Complexity = 11
                        // Dst: (VGETEXPPSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*460555*/            0, /*End of Scope*/
/*460556*/          0, // EndSwitchOpcode
/*460557*/        /*Scope*/ 99, /*->460657*/
/*460558*/          OPC_RecordChild1, // #1 = $src
/*460559*/          OPC_Scope, 26, /*->460587*/ // 2 children in Scope
/*460561*/            OPC_MoveChild2,
/*460562*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*460565*/            OPC_MoveChild0,
/*460566*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*460569*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*460571*/            OPC_CheckType, MVT::v16i32,
/*460573*/            OPC_MoveParent,
/*460574*/            OPC_MoveParent,
/*460575*/            OPC_CheckType, MVT::v16f32,
/*460577*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460579*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                      // Dst: (VMOVAPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*460587*/          /*Scope*/ 68, /*->460656*/
/*460588*/            OPC_MoveChild1,
/*460589*/            OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*460592*/            OPC_RecordChild0, // #2 = $src1
/*460593*/            OPC_RecordChild1, // #3 = $src2
/*460594*/            OPC_Scope, 29, /*->460625*/ // 2 children in Scope
/*460596*/              OPC_CheckChild1Type, MVT::v4f32,
/*460598*/              OPC_MoveChild2,
/*460599*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*460602*/              OPC_CheckType, MVT::iPTR,
/*460604*/              OPC_MoveParent,
/*460605*/              OPC_MoveParent,
/*460606*/              OPC_RecordChild2, // #4 = $src0
/*460607*/              OPC_CheckType, MVT::v16f32,
/*460609*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460611*/              OPC_EmitNodeXForm, 13, 1, // INSERT_get_vinsert128_imm
/*460614*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrrk), 0,
                            MVT::v16f32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                        // Dst: (VINSERTF32x4Zrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*460625*/            /*Scope*/ 29, /*->460655*/
/*460626*/              OPC_CheckChild1Type, MVT::v8f32,
/*460628*/              OPC_MoveChild2,
/*460629*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*460632*/              OPC_CheckType, MVT::iPTR,
/*460634*/              OPC_MoveParent,
/*460635*/              OPC_MoveParent,
/*460636*/              OPC_RecordChild2, // #4 = $src0
/*460637*/              OPC_CheckType, MVT::v16f32,
/*460639*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*460641*/              OPC_EmitNodeXForm, 20, 1, // INSERT_get_vinsert256_imm
/*460644*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x8Zrrk), 0,
                            MVT::v16f32, 5/*#Ops*/, 4, 0, 2, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                        // Dst: (VINSERTF32x8Zrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*460655*/            0, /*End of Scope*/
/*460656*/          0, /*End of Scope*/
/*460657*/        /*Scope*/ 45|128,15/*1965*/, /*->462624*/
/*460659*/          OPC_MoveChild1,
/*460660*/          OPC_SwitchOpcode /*56 cases */, 123, TARGET_VAL(ISD::BITCAST),// ->460787
/*460664*/            OPC_MoveChild0,
/*460665*/            OPC_SwitchOpcode /*5 cases */, 21, TARGET_VAL(X86ISD::VBROADCAST),// ->460690
/*460669*/              OPC_RecordChild0, // #1 = $src
/*460670*/              OPC_CheckChild0Type, MVT::v2f64,
/*460672*/              OPC_CheckType, MVT::v8f64,
/*460674*/              OPC_MoveParent,
/*460675*/              OPC_MoveParent,
/*460676*/              OPC_RecordChild2, // #2 = $src0
/*460677*/              OPC_CheckType, MVT::v16f32,
/*460679*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*460681*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X2Zrk), 0,
                            MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86VBroadcast:{ *:[v8f64] } VR128X:{ *:[v2f64] }:$src)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                        // Dst: (VBROADCASTF32X2Zrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*460690*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::AND),// ->460714
/*460693*/              OPC_RecordChild0, // #1 = $src1
/*460694*/              OPC_RecordChild1, // #2 = $src2
/*460695*/              OPC_CheckType, MVT::v8i64,
/*460697*/              OPC_MoveParent,
/*460698*/              OPC_MoveParent,
/*460699*/              OPC_RecordChild2, // #3 = $src0
/*460700*/              OPC_CheckType, MVT::v16f32,
/*460702*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460704*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                        // Dst: (VPANDDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*460714*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::OR),// ->460738
/*460717*/              OPC_RecordChild0, // #1 = $src1
/*460718*/              OPC_RecordChild1, // #2 = $src2
/*460719*/              OPC_CheckType, MVT::v8i64,
/*460721*/              OPC_MoveParent,
/*460722*/              OPC_MoveParent,
/*460723*/              OPC_RecordChild2, // #3 = $src0
/*460724*/              OPC_CheckType, MVT::v16f32,
/*460726*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460728*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                        // Dst: (VPORDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*460738*/            /*SwitchOpcode*/ 21, TARGET_VAL(ISD::XOR),// ->460762
/*460741*/              OPC_RecordChild0, // #1 = $src1
/*460742*/              OPC_RecordChild1, // #2 = $src2
/*460743*/              OPC_CheckType, MVT::v8i64,
/*460745*/              OPC_MoveParent,
/*460746*/              OPC_MoveParent,
/*460747*/              OPC_RecordChild2, // #3 = $src0
/*460748*/              OPC_CheckType, MVT::v16f32,
/*460750*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460752*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                        // Dst: (VPXORDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*460762*/            /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::ANDNP),// ->460786
/*460765*/              OPC_RecordChild0, // #1 = $src1
/*460766*/              OPC_RecordChild1, // #2 = $src2
/*460767*/              OPC_CheckType, MVT::v8i64,
/*460769*/              OPC_MoveParent,
/*460770*/              OPC_MoveParent,
/*460771*/              OPC_RecordChild2, // #3 = $src0
/*460772*/              OPC_CheckType, MVT::v16f32,
/*460774*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460776*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                        // Dst: (VPANDNDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*460786*/            0, // EndSwitchOpcode
/*460787*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VPERMV3),// ->460835
/*460790*/            OPC_RecordChild0, // #1 = $src2
/*460791*/            OPC_RecordChild1, // #2 = $src1
/*460792*/            OPC_RecordChild2, // #3 = $src3
/*460793*/            OPC_MoveParent,
/*460794*/            OPC_Scope, 21, /*->460817*/ // 2 children in Scope
/*460796*/              OPC_MoveChild2,
/*460797*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*460800*/              OPC_CheckChild0Same, 2,
/*460802*/              OPC_MoveParent,
/*460803*/              OPC_CheckType, MVT::v16f32,
/*460805*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460807*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2PSrrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16f32] }:$src3), (bitconvert:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1)) - Complexity = 9
                        // Dst: (VPERMI2PSrrk:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*460817*/            /*Scope*/ 16, /*->460834*/
/*460818*/              OPC_CheckChild2Same, 1,
/*460820*/              OPC_CheckType, MVT::v16f32,
/*460822*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460824*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PSrrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16f32] }:$src3), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VPERMT2PSrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*460834*/            0, /*End of Scope*/
/*460835*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::FADD_RND),// ->460865
/*460838*/            OPC_RecordChild0, // #1 = $src1
/*460839*/            OPC_RecordChild1, // #2 = $src2
/*460840*/            OPC_RecordChild2, // #3 = $rc
/*460841*/            OPC_MoveChild2,
/*460842*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*460845*/            OPC_MoveParent,
/*460846*/            OPC_MoveParent,
/*460847*/            OPC_RecordChild2, // #4 = $src0
/*460848*/            OPC_CheckType, MVT::v16f32,
/*460850*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460852*/            OPC_EmitConvertToTarget, 3,
/*460854*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrrbk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86faddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VADDPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*460865*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::FMUL_RND),// ->460895
/*460868*/            OPC_RecordChild0, // #1 = $src1
/*460869*/            OPC_RecordChild1, // #2 = $src2
/*460870*/            OPC_RecordChild2, // #3 = $rc
/*460871*/            OPC_MoveChild2,
/*460872*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*460875*/            OPC_MoveParent,
/*460876*/            OPC_MoveParent,
/*460877*/            OPC_RecordChild2, // #4 = $src0
/*460878*/            OPC_CheckType, MVT::v16f32,
/*460880*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460882*/            OPC_EmitConvertToTarget, 3,
/*460884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrrbk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmulRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VMULPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*460895*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::FSUB_RND),// ->460925
/*460898*/            OPC_RecordChild0, // #1 = $src1
/*460899*/            OPC_RecordChild1, // #2 = $src2
/*460900*/            OPC_RecordChild2, // #3 = $rc
/*460901*/            OPC_MoveChild2,
/*460902*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*460905*/            OPC_MoveParent,
/*460906*/            OPC_MoveParent,
/*460907*/            OPC_RecordChild2, // #4 = $src0
/*460908*/            OPC_CheckType, MVT::v16f32,
/*460910*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460912*/            OPC_EmitConvertToTarget, 3,
/*460914*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrrbk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VSUBPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*460925*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::FDIV_RND),// ->460955
/*460928*/            OPC_RecordChild0, // #1 = $src1
/*460929*/            OPC_RecordChild1, // #2 = $src2
/*460930*/            OPC_RecordChild2, // #3 = $rc
/*460931*/            OPC_MoveChild2,
/*460932*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*460935*/            OPC_MoveParent,
/*460936*/            OPC_MoveParent,
/*460937*/            OPC_RecordChild2, // #4 = $src0
/*460938*/            OPC_CheckType, MVT::v16f32,
/*460940*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460942*/            OPC_EmitConvertToTarget, 3,
/*460944*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrrbk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fdivRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VDIVPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*460955*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::SCALEF),// ->460985
/*460958*/            OPC_RecordChild0, // #1 = $src1
/*460959*/            OPC_RecordChild1, // #2 = $src2
/*460960*/            OPC_RecordChild2, // #3 = $rc
/*460961*/            OPC_MoveChild2,
/*460962*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*460965*/            OPC_MoveParent,
/*460966*/            OPC_MoveParent,
/*460967*/            OPC_RecordChild2, // #4 = $src0
/*460968*/            OPC_CheckType, MVT::v16f32,
/*460970*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460972*/            OPC_EmitConvertToTarget, 3,
/*460974*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrrbk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VSCALEFPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*460985*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPERMILPI),// ->461013
/*460988*/            OPC_RecordChild0, // #1 = $src1
/*460989*/            OPC_RecordChild1, // #2 = $src2
/*460990*/            OPC_MoveChild1,
/*460991*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*460994*/            OPC_MoveParent,
/*460995*/            OPC_MoveParent,
/*460996*/            OPC_RecordChild2, // #3 = $src0
/*460997*/            OPC_CheckType, MVT::v16f32,
/*460999*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461001*/            OPC_EmitConvertToTarget, 2,
/*461003*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VPERMILPSZrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*461013*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FMADD_RND),// ->461084
/*461016*/            OPC_RecordChild0, // #1 = $src2
/*461017*/            OPC_RecordChild1, // #2 = $src1
/*461018*/            OPC_RecordChild2, // #3 = $src3
/*461019*/            OPC_RecordChild3, // #4 = $rc
/*461020*/            OPC_MoveChild3,
/*461021*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461024*/            OPC_MoveParent,
/*461025*/            OPC_MoveParent,
/*461026*/            OPC_CheckType, MVT::v16f32,
/*461028*/            OPC_Scope, 17, /*->461047*/ // 3 children in Scope
/*461030*/              OPC_CheckChild2Same, 2,
/*461032*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461034*/              OPC_EmitConvertToTarget, 4,
/*461036*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADD213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461047*/            /*Scope*/ 17, /*->461065*/
/*461048*/              OPC_CheckChild2Same, 3,
/*461050*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461052*/              OPC_EmitConvertToTarget, 4,
/*461054*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADD231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461065*/            /*Scope*/ 17, /*->461083*/
/*461066*/              OPC_CheckChild2Same, 1,
/*461068*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461070*/              OPC_EmitConvertToTarget, 4,
/*461072*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADD132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461083*/            0, /*End of Scope*/
/*461084*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FMSUB_RND),// ->461155
/*461087*/            OPC_RecordChild0, // #1 = $src2
/*461088*/            OPC_RecordChild1, // #2 = $src1
/*461089*/            OPC_RecordChild2, // #3 = $src3
/*461090*/            OPC_RecordChild3, // #4 = $rc
/*461091*/            OPC_MoveChild3,
/*461092*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461095*/            OPC_MoveParent,
/*461096*/            OPC_MoveParent,
/*461097*/            OPC_CheckType, MVT::v16f32,
/*461099*/            OPC_Scope, 17, /*->461118*/ // 3 children in Scope
/*461101*/              OPC_CheckChild2Same, 2,
/*461103*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461105*/              OPC_EmitConvertToTarget, 4,
/*461107*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461118*/            /*Scope*/ 17, /*->461136*/
/*461119*/              OPC_CheckChild2Same, 3,
/*461121*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461123*/              OPC_EmitConvertToTarget, 4,
/*461125*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461136*/            /*Scope*/ 17, /*->461154*/
/*461137*/              OPC_CheckChild2Same, 1,
/*461139*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461141*/              OPC_EmitConvertToTarget, 4,
/*461143*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461154*/            0, /*End of Scope*/
/*461155*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FMADDSUB_RND),// ->461226
/*461158*/            OPC_RecordChild0, // #1 = $src2
/*461159*/            OPC_RecordChild1, // #2 = $src1
/*461160*/            OPC_RecordChild2, // #3 = $src3
/*461161*/            OPC_RecordChild3, // #4 = $rc
/*461162*/            OPC_MoveChild3,
/*461163*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461166*/            OPC_MoveParent,
/*461167*/            OPC_MoveParent,
/*461168*/            OPC_CheckType, MVT::v16f32,
/*461170*/            OPC_Scope, 17, /*->461189*/ // 3 children in Scope
/*461172*/              OPC_CheckChild2Same, 2,
/*461174*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461176*/              OPC_EmitConvertToTarget, 4,
/*461178*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461189*/            /*Scope*/ 17, /*->461207*/
/*461190*/              OPC_CheckChild2Same, 3,
/*461192*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461194*/              OPC_EmitConvertToTarget, 4,
/*461196*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461207*/            /*Scope*/ 17, /*->461225*/
/*461208*/              OPC_CheckChild2Same, 1,
/*461210*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461212*/              OPC_EmitConvertToTarget, 4,
/*461214*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461225*/            0, /*End of Scope*/
/*461226*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FMSUBADD_RND),// ->461297
/*461229*/            OPC_RecordChild0, // #1 = $src2
/*461230*/            OPC_RecordChild1, // #2 = $src1
/*461231*/            OPC_RecordChild2, // #3 = $src3
/*461232*/            OPC_RecordChild3, // #4 = $rc
/*461233*/            OPC_MoveChild3,
/*461234*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461237*/            OPC_MoveParent,
/*461238*/            OPC_MoveParent,
/*461239*/            OPC_CheckType, MVT::v16f32,
/*461241*/            OPC_Scope, 17, /*->461260*/ // 3 children in Scope
/*461243*/              OPC_CheckChild2Same, 2,
/*461245*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461247*/              OPC_EmitConvertToTarget, 4,
/*461249*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461260*/            /*Scope*/ 17, /*->461278*/
/*461261*/              OPC_CheckChild2Same, 3,
/*461263*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461265*/              OPC_EmitConvertToTarget, 4,
/*461267*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461278*/            /*Scope*/ 17, /*->461296*/
/*461279*/              OPC_CheckChild2Same, 1,
/*461281*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461283*/              OPC_EmitConvertToTarget, 4,
/*461285*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461296*/            0, /*End of Scope*/
/*461297*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FNMADD_RND),// ->461368
/*461300*/            OPC_RecordChild0, // #1 = $src2
/*461301*/            OPC_RecordChild1, // #2 = $src1
/*461302*/            OPC_RecordChild2, // #3 = $src3
/*461303*/            OPC_RecordChild3, // #4 = $rc
/*461304*/            OPC_MoveChild3,
/*461305*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461308*/            OPC_MoveParent,
/*461309*/            OPC_MoveParent,
/*461310*/            OPC_CheckType, MVT::v16f32,
/*461312*/            OPC_Scope, 17, /*->461331*/ // 3 children in Scope
/*461314*/              OPC_CheckChild2Same, 2,
/*461316*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461318*/              OPC_EmitConvertToTarget, 4,
/*461320*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461331*/            /*Scope*/ 17, /*->461349*/
/*461332*/              OPC_CheckChild2Same, 3,
/*461334*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461336*/              OPC_EmitConvertToTarget, 4,
/*461338*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461349*/            /*Scope*/ 17, /*->461367*/
/*461350*/              OPC_CheckChild2Same, 1,
/*461352*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461354*/              OPC_EmitConvertToTarget, 4,
/*461356*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461367*/            0, /*End of Scope*/
/*461368*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::FNMSUB_RND),// ->461439
/*461371*/            OPC_RecordChild0, // #1 = $src2
/*461372*/            OPC_RecordChild1, // #2 = $src1
/*461373*/            OPC_RecordChild2, // #3 = $src3
/*461374*/            OPC_RecordChild3, // #4 = $rc
/*461375*/            OPC_MoveChild3,
/*461376*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461379*/            OPC_MoveParent,
/*461380*/            OPC_MoveParent,
/*461381*/            OPC_CheckType, MVT::v16f32,
/*461383*/            OPC_Scope, 17, /*->461402*/ // 3 children in Scope
/*461385*/              OPC_CheckChild2Same, 2,
/*461387*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461389*/              OPC_EmitConvertToTarget, 4,
/*461391*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461402*/            /*Scope*/ 17, /*->461420*/
/*461403*/              OPC_CheckChild2Same, 3,
/*461405*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461407*/              OPC_EmitConvertToTarget, 4,
/*461409*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461420*/            /*Scope*/ 17, /*->461438*/
/*461421*/              OPC_CheckChild2Same, 1,
/*461423*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461425*/              OPC_EmitConvertToTarget, 4,
/*461427*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*461438*/            0, /*End of Scope*/
/*461439*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::SINT_TO_FP_RND),// ->461469
/*461442*/            OPC_RecordChild0, // #1 = $src
/*461443*/            OPC_CheckChild0Type, MVT::v16i32,
/*461445*/            OPC_RecordChild1, // #2 = $rc
/*461446*/            OPC_MoveChild1,
/*461447*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461450*/            OPC_MoveParent,
/*461451*/            OPC_MoveParent,
/*461452*/            OPC_RecordChild2, // #3 = $src0
/*461453*/            OPC_CheckType, MVT::v16f32,
/*461455*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461457*/            OPC_EmitConvertToTarget, 2,
/*461459*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrrbk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VSintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VCVTDQ2PSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc)
/*461469*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::UINT_TO_FP_RND),// ->461499
/*461472*/            OPC_RecordChild0, // #1 = $src
/*461473*/            OPC_CheckChild0Type, MVT::v16i32,
/*461475*/            OPC_RecordChild1, // #2 = $rc
/*461476*/            OPC_MoveChild1,
/*461477*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461480*/            OPC_MoveParent,
/*461481*/            OPC_MoveParent,
/*461482*/            OPC_RecordChild2, // #3 = $src0
/*461483*/            OPC_CheckType, MVT::v16f32,
/*461485*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461487*/            OPC_EmitConvertToTarget, 2,
/*461489*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrrbk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VUintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VCVTUDQ2PSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc)
/*461499*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FSQRT_RND),// ->461527
/*461502*/            OPC_RecordChild0, // #1 = $src
/*461503*/            OPC_RecordChild1, // #2 = $rc
/*461504*/            OPC_MoveChild1,
/*461505*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461508*/            OPC_MoveParent,
/*461509*/            OPC_MoveParent,
/*461510*/            OPC_RecordChild2, // #3 = $src0
/*461511*/            OPC_CheckType, MVT::v16f32,
/*461513*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461515*/            OPC_EmitConvertToTarget, 2,
/*461517*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZrbk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fsqrtRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VSQRTPSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc)
/*461527*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VREDUCE),// ->461555
/*461530*/            OPC_RecordChild0, // #1 = $src1
/*461531*/            OPC_RecordChild1, // #2 = $src2
/*461532*/            OPC_MoveChild1,
/*461533*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461536*/            OPC_MoveParent,
/*461537*/            OPC_MoveParent,
/*461538*/            OPC_RecordChild2, // #3 = $src0
/*461539*/            OPC_CheckType, MVT::v16f32,
/*461541*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*461543*/            OPC_EmitConvertToTarget, 2,
/*461545*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VREDUCEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*461555*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VRNDSCALE),// ->461583
/*461558*/            OPC_RecordChild0, // #1 = $src1
/*461559*/            OPC_RecordChild1, // #2 = $src2
/*461560*/            OPC_MoveChild1,
/*461561*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461564*/            OPC_MoveParent,
/*461565*/            OPC_MoveParent,
/*461566*/            OPC_RecordChild2, // #3 = $src0
/*461567*/            OPC_CheckType, MVT::v16f32,
/*461569*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461571*/            OPC_EmitConvertToTarget, 2,
/*461573*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*461583*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VGETMANT),// ->461611
/*461586*/            OPC_RecordChild0, // #1 = $src1
/*461587*/            OPC_RecordChild1, // #2 = $src2
/*461588*/            OPC_MoveChild1,
/*461589*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461592*/            OPC_MoveParent,
/*461593*/            OPC_MoveParent,
/*461594*/            OPC_RecordChild2, // #3 = $src0
/*461595*/            OPC_CheckType, MVT::v16f32,
/*461597*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461599*/            OPC_EmitConvertToTarget, 2,
/*461601*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VGETMANTPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*461611*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VRANGE),// ->461641
/*461614*/            OPC_RecordChild0, // #1 = $src1
/*461615*/            OPC_RecordChild1, // #2 = $src2
/*461616*/            OPC_RecordChild2, // #3 = $src3
/*461617*/            OPC_MoveChild2,
/*461618*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461621*/            OPC_MoveParent,
/*461622*/            OPC_MoveParent,
/*461623*/            OPC_RecordChild2, // #4 = $src0
/*461624*/            OPC_CheckType, MVT::v16f32,
/*461626*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*461628*/            OPC_EmitConvertToTarget, 3,
/*461630*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrrik), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VRANGEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*461641*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::SHUFP),// ->461671
/*461644*/            OPC_RecordChild0, // #1 = $src1
/*461645*/            OPC_RecordChild1, // #2 = $src2
/*461646*/            OPC_RecordChild2, // #3 = $src3
/*461647*/            OPC_MoveChild2,
/*461648*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*461651*/            OPC_MoveParent,
/*461652*/            OPC_MoveParent,
/*461653*/            OPC_RecordChild2, // #4 = $src0
/*461654*/            OPC_CheckType, MVT::v16f32,
/*461656*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461658*/            OPC_EmitConvertToTarget, 3,
/*461660*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrrik), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VSHUFPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*461671*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::VBROADCAST),// ->461724
/*461674*/            OPC_RecordChild0, // #1 = $src
/*461675*/            OPC_Scope, 17, /*->461694*/ // 2 children in Scope
/*461677*/              OPC_CheckChild0Type, MVT::v4f32,
/*461679*/              OPC_MoveParent,
/*461680*/              OPC_RecordChild2, // #2 = $src0
/*461681*/              OPC_CheckType, MVT::v16f32,
/*461683*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461685*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZrk), 0,
                            MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16f32] } VR128X:{ *:[v4f32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                        // Dst: (VBROADCASTSSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*461694*/            /*Scope*/ 28, /*->461723*/
/*461695*/              OPC_CheckChild0Type, MVT::f32,
/*461697*/              OPC_MoveParent,
/*461698*/              OPC_RecordChild2, // #2 = $src0
/*461699*/              OPC_CheckType, MVT::v16f32,
/*461701*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461703*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*461706*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*461714*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZrk), 0,
                            MVT::v16f32, 3/*#Ops*/, 2, 0, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16f32] } FR32X:{ *:[f32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                        // Dst: (VBROADCASTSSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*461723*/            0, /*End of Scope*/
/*461724*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FADD),// ->461745
/*461727*/            OPC_RecordChild0, // #1 = $src1
/*461728*/            OPC_RecordChild1, // #2 = $src2
/*461729*/            OPC_MoveParent,
/*461730*/            OPC_RecordChild2, // #3 = $src0
/*461731*/            OPC_CheckType, MVT::v16f32,
/*461733*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461735*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VADDPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*461745*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FMUL),// ->461766
/*461748*/            OPC_RecordChild0, // #1 = $src1
/*461749*/            OPC_RecordChild1, // #2 = $src2
/*461750*/            OPC_MoveParent,
/*461751*/            OPC_RecordChild2, // #3 = $src0
/*461752*/            OPC_CheckType, MVT::v16f32,
/*461754*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461756*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VMULPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*461766*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FSUB),// ->461787
/*461769*/            OPC_RecordChild0, // #1 = $src1
/*461770*/            OPC_RecordChild1, // #2 = $src2
/*461771*/            OPC_MoveParent,
/*461772*/            OPC_RecordChild2, // #3 = $src0
/*461773*/            OPC_CheckType, MVT::v16f32,
/*461775*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461777*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VSUBPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*461787*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FDIV),// ->461808
/*461790*/            OPC_RecordChild0, // #1 = $src1
/*461791*/            OPC_RecordChild1, // #2 = $src2
/*461792*/            OPC_MoveParent,
/*461793*/            OPC_RecordChild2, // #3 = $src0
/*461794*/            OPC_CheckType, MVT::v16f32,
/*461796*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461798*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VDIVPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*461808*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMIN),// ->461829
/*461811*/            OPC_RecordChild0, // #1 = $src1
/*461812*/            OPC_RecordChild1, // #2 = $src2
/*461813*/            OPC_MoveParent,
/*461814*/            OPC_RecordChild2, // #3 = $src0
/*461815*/            OPC_CheckType, MVT::v16f32,
/*461817*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461819*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmin:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VMINPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*461829*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMAX),// ->461850
/*461832*/            OPC_RecordChild0, // #1 = $src1
/*461833*/            OPC_RecordChild1, // #2 = $src2
/*461834*/            OPC_MoveParent,
/*461835*/            OPC_RecordChild2, // #3 = $src0
/*461836*/            OPC_CheckType, MVT::v16f32,
/*461838*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461840*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmax:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VMAXPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*461850*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMINC),// ->461871
/*461853*/            OPC_RecordChild0, // #1 = $src1
/*461854*/            OPC_RecordChild1, // #2 = $src2
/*461855*/            OPC_MoveParent,
/*461856*/            OPC_RecordChild2, // #3 = $src0
/*461857*/            OPC_CheckType, MVT::v16f32,
/*461859*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461861*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VMINCPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*461871*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMAXC),// ->461892
/*461874*/            OPC_RecordChild0, // #1 = $src1
/*461875*/            OPC_RecordChild1, // #2 = $src2
/*461876*/            OPC_MoveParent,
/*461877*/            OPC_RecordChild2, // #3 = $src0
/*461878*/            OPC_CheckType, MVT::v16f32,
/*461880*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461882*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VMAXCPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*461892*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMV),// ->461913
/*461895*/            OPC_RecordChild0, // #1 = $src1
/*461896*/            OPC_RecordChild1, // #2 = $src2
/*461897*/            OPC_MoveParent,
/*461898*/            OPC_RecordChild2, // #3 = $src0
/*461899*/            OPC_CheckType, MVT::v16f32,
/*461901*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461903*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermv:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VPERMPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*461913*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMILPV),// ->461934
/*461916*/            OPC_RecordChild0, // #1 = $src1
/*461917*/            OPC_RecordChild1, // #2 = $src2
/*461918*/            OPC_MoveParent,
/*461919*/            OPC_RecordChild2, // #3 = $src0
/*461920*/            OPC_CheckType, MVT::v16f32,
/*461922*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461924*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VPERMILPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*461934*/          /*SwitchOpcode*/ 53, TARGET_VAL(ISD::FMA),// ->461990
/*461937*/            OPC_RecordChild0, // #1 = $src2
/*461938*/            OPC_RecordChild1, // #2 = $src1
/*461939*/            OPC_RecordChild2, // #3 = $src3
/*461940*/            OPC_MoveParent,
/*461941*/            OPC_CheckType, MVT::v16f32,
/*461943*/            OPC_Scope, 14, /*->461959*/ // 3 children in Scope
/*461945*/              OPC_CheckChild2Same, 2,
/*461947*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461949*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMADD213PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*461959*/            /*Scope*/ 14, /*->461974*/
/*461960*/              OPC_CheckChild2Same, 3,
/*461962*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461964*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMADD231PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*461974*/            /*Scope*/ 14, /*->461989*/
/*461975*/              OPC_CheckChild2Same, 1,
/*461977*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461979*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMADD132PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*461989*/            0, /*End of Scope*/
/*461990*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMSUB),// ->462046
/*461993*/            OPC_RecordChild0, // #1 = $src2
/*461994*/            OPC_RecordChild1, // #2 = $src1
/*461995*/            OPC_RecordChild2, // #3 = $src3
/*461996*/            OPC_MoveParent,
/*461997*/            OPC_CheckType, MVT::v16f32,
/*461999*/            OPC_Scope, 14, /*->462015*/ // 3 children in Scope
/*462001*/              OPC_CheckChild2Same, 2,
/*462003*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462005*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMSUB213PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462015*/            /*Scope*/ 14, /*->462030*/
/*462016*/              OPC_CheckChild2Same, 3,
/*462018*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462020*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMSUB231PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462030*/            /*Scope*/ 14, /*->462045*/
/*462031*/              OPC_CheckChild2Same, 1,
/*462033*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462035*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMSUB132PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462045*/            0, /*End of Scope*/
/*462046*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMADDSUB),// ->462102
/*462049*/            OPC_RecordChild0, // #1 = $src2
/*462050*/            OPC_RecordChild1, // #2 = $src1
/*462051*/            OPC_RecordChild2, // #3 = $src3
/*462052*/            OPC_MoveParent,
/*462053*/            OPC_CheckType, MVT::v16f32,
/*462055*/            OPC_Scope, 14, /*->462071*/ // 3 children in Scope
/*462057*/              OPC_CheckChild2Same, 2,
/*462059*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462061*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMADDSUB213PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462071*/            /*Scope*/ 14, /*->462086*/
/*462072*/              OPC_CheckChild2Same, 3,
/*462074*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462076*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMADDSUB231PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462086*/            /*Scope*/ 14, /*->462101*/
/*462087*/              OPC_CheckChild2Same, 1,
/*462089*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462091*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMADDSUB132PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462101*/            0, /*End of Scope*/
/*462102*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMSUBADD),// ->462158
/*462105*/            OPC_RecordChild0, // #1 = $src2
/*462106*/            OPC_RecordChild1, // #2 = $src1
/*462107*/            OPC_RecordChild2, // #3 = $src3
/*462108*/            OPC_MoveParent,
/*462109*/            OPC_CheckType, MVT::v16f32,
/*462111*/            OPC_Scope, 14, /*->462127*/ // 3 children in Scope
/*462113*/              OPC_CheckChild2Same, 2,
/*462115*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462117*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMSUBADD213PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462127*/            /*Scope*/ 14, /*->462142*/
/*462128*/              OPC_CheckChild2Same, 3,
/*462130*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462132*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMSUBADD231PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462142*/            /*Scope*/ 14, /*->462157*/
/*462143*/              OPC_CheckChild2Same, 1,
/*462145*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462147*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFMSUBADD132PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462157*/            0, /*End of Scope*/
/*462158*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FNMADD),// ->462214
/*462161*/            OPC_RecordChild0, // #1 = $src2
/*462162*/            OPC_RecordChild1, // #2 = $src1
/*462163*/            OPC_RecordChild2, // #3 = $src3
/*462164*/            OPC_MoveParent,
/*462165*/            OPC_CheckType, MVT::v16f32,
/*462167*/            OPC_Scope, 14, /*->462183*/ // 3 children in Scope
/*462169*/              OPC_CheckChild2Same, 2,
/*462171*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462173*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFNMADD213PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462183*/            /*Scope*/ 14, /*->462198*/
/*462184*/              OPC_CheckChild2Same, 3,
/*462186*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462188*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFNMADD231PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462198*/            /*Scope*/ 14, /*->462213*/
/*462199*/              OPC_CheckChild2Same, 1,
/*462201*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462203*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFNMADD132PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462213*/            0, /*End of Scope*/
/*462214*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FNMSUB),// ->462270
/*462217*/            OPC_RecordChild0, // #1 = $src2
/*462218*/            OPC_RecordChild1, // #2 = $src1
/*462219*/            OPC_RecordChild2, // #3 = $src3
/*462220*/            OPC_MoveParent,
/*462221*/            OPC_CheckType, MVT::v16f32,
/*462223*/            OPC_Scope, 14, /*->462239*/ // 3 children in Scope
/*462225*/              OPC_CheckChild2Same, 2,
/*462227*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462229*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFNMSUB213PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462239*/            /*Scope*/ 14, /*->462254*/
/*462240*/              OPC_CheckChild2Same, 3,
/*462242*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462244*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFNMSUB231PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462254*/            /*Scope*/ 14, /*->462269*/
/*462255*/              OPC_CheckChild2Same, 1,
/*462257*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462259*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZrk), 0,
                            MVT::v16f32, 4/*#Ops*/, 1, 0, 3, 2, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Fnmsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                        // Dst: (VFNMSUB132PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*462269*/            0, /*End of Scope*/
/*462270*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SINT_TO_FP),// ->462291
/*462273*/            OPC_RecordChild0, // #1 = $src
/*462274*/            OPC_CheckChild0Type, MVT::v16i32,
/*462276*/            OPC_MoveParent,
/*462277*/            OPC_RecordChild2, // #2 = $src0
/*462278*/            OPC_CheckType, MVT::v16f32,
/*462280*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462282*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrrk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (sint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTDQ2PSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*462291*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UINT_TO_FP),// ->462312
/*462294*/            OPC_RecordChild0, // #1 = $src
/*462295*/            OPC_CheckChild0Type, MVT::v16i32,
/*462297*/            OPC_MoveParent,
/*462298*/            OPC_RecordChild2, // #2 = $src0
/*462299*/            OPC_CheckType, MVT::v16f32,
/*462301*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462303*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrrk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (uint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTUDQ2PSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*462312*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTPH2PS),// ->462333
/*462315*/            OPC_RecordChild0, // #1 = $src
/*462316*/            OPC_CheckChild0Type, MVT::v16i16,
/*462318*/            OPC_MoveParent,
/*462319*/            OPC_RecordChild2, // #2 = $src0
/*462320*/            OPC_CheckType, MVT::v16f32,
/*462322*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462324*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrrk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtph2ps:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPH2PSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*462333*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RSQRT14),// ->462352
/*462336*/            OPC_RecordChild0, // #1 = $src
/*462337*/            OPC_MoveParent,
/*462338*/            OPC_RecordChild2, // #2 = $src0
/*462339*/            OPC_CheckType, MVT::v16f32,
/*462341*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462343*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZrk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt14:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT14PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*462352*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RCP14),// ->462371
/*462355*/            OPC_RecordChild0, // #1 = $src
/*462356*/            OPC_MoveParent,
/*462357*/            OPC_RecordChild2, // #2 = $src0
/*462358*/            OPC_CheckType, MVT::v16f32,
/*462360*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462362*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZrk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp14:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VRCP14PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*462371*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::FSQRT),// ->462390
/*462374*/            OPC_RecordChild0, // #1 = $src
/*462375*/            OPC_MoveParent,
/*462376*/            OPC_RecordChild2, // #2 = $src0
/*462377*/            OPC_CheckType, MVT::v16f32,
/*462379*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462381*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZrk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsqrt:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VSQRTPSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*462390*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::COMPRESS),// ->462409
/*462393*/            OPC_RecordChild0, // #1 = $src1
/*462394*/            OPC_MoveParent,
/*462395*/            OPC_RecordChild2, // #2 = $src0
/*462396*/            OPC_CheckType, MVT::v16f32,
/*462398*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462400*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZrrk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86compress:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VCOMPRESSPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1)
/*462409*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::EXPAND),// ->462428
/*462412*/            OPC_RecordChild0, // #1 = $src1
/*462413*/            OPC_MoveParent,
/*462414*/            OPC_RecordChild2, // #2 = $src0
/*462415*/            OPC_CheckType, MVT::v16f32,
/*462417*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462419*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrrk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86expand:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VEXPANDPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1)
/*462428*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FFLOOR),// ->462451
/*462431*/            OPC_RecordChild0, // #1 = $src
/*462432*/            OPC_MoveParent,
/*462433*/            OPC_RecordChild2, // #2 = $dst
/*462434*/            OPC_CheckType, MVT::v16f32,
/*462436*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462438*/            OPC_EmitInteger, MVT::i32, 9, 
/*462441*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ffloor:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$dst) - Complexity = 6
                      // Dst: (VRNDSCALEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, 9:{ *:[i32] })
/*462451*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FNEARBYINT),// ->462474
/*462454*/            OPC_RecordChild0, // #1 = $src
/*462455*/            OPC_MoveParent,
/*462456*/            OPC_RecordChild2, // #2 = $dst
/*462457*/            OPC_CheckType, MVT::v16f32,
/*462459*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462461*/            OPC_EmitInteger, MVT::i32, 12, 
/*462464*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fnearbyint:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$dst) - Complexity = 6
                      // Dst: (VRNDSCALEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, 12:{ *:[i32] })
/*462474*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FCEIL),// ->462497
/*462477*/            OPC_RecordChild0, // #1 = $src
/*462478*/            OPC_MoveParent,
/*462479*/            OPC_RecordChild2, // #2 = $dst
/*462480*/            OPC_CheckType, MVT::v16f32,
/*462482*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462484*/            OPC_EmitInteger, MVT::i32, 10, 
/*462487*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fceil:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$dst) - Complexity = 6
                      // Dst: (VRNDSCALEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, 10:{ *:[i32] })
/*462497*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FRINT),// ->462520
/*462500*/            OPC_RecordChild0, // #1 = $src
/*462501*/            OPC_MoveParent,
/*462502*/            OPC_RecordChild2, // #2 = $dst
/*462503*/            OPC_CheckType, MVT::v16f32,
/*462505*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462507*/            OPC_EmitInteger, MVT::i32, 4, 
/*462510*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (frint:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$dst) - Complexity = 6
                      // Dst: (VRNDSCALEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] })
/*462520*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FTRUNC),// ->462543
/*462523*/            OPC_RecordChild0, // #1 = $src
/*462524*/            OPC_MoveParent,
/*462525*/            OPC_RecordChild2, // #2 = $dst
/*462526*/            OPC_CheckType, MVT::v16f32,
/*462528*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462530*/            OPC_EmitInteger, MVT::i32, 11, 
/*462533*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 2, 0, 1, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (ftrunc:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$dst) - Complexity = 6
                      // Dst: (VRNDSCALEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, 11:{ *:[i32] })
/*462543*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSHDUP),// ->462562
/*462546*/            OPC_RecordChild0, // #1 = $src1
/*462547*/            OPC_MoveParent,
/*462548*/            OPC_RecordChild2, // #2 = $src0
/*462549*/            OPC_CheckType, MVT::v16f32,
/*462551*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462553*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZrrk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Movshdup:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VMOVSHDUPZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1)
/*462562*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSLDUP),// ->462581
/*462565*/            OPC_RecordChild0, // #1 = $src1
/*462566*/            OPC_MoveParent,
/*462567*/            OPC_RecordChild2, // #2 = $src0
/*462568*/            OPC_CheckType, MVT::v16f32,
/*462570*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462572*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZrrk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Movsldup:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VMOVSLDUPZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1)
/*462581*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKH),// ->462602
/*462584*/            OPC_RecordChild0, // #1 = $src1
/*462585*/            OPC_RecordChild1, // #2 = $src2
/*462586*/            OPC_MoveParent,
/*462587*/            OPC_RecordChild2, // #3 = $src0
/*462588*/            OPC_CheckType, MVT::v16f32,
/*462590*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462592*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckh:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VUNPCKHPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*462602*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKL),// ->462623
/*462605*/            OPC_RecordChild0, // #1 = $src1
/*462606*/            OPC_RecordChild1, // #2 = $src2
/*462607*/            OPC_MoveParent,
/*462608*/            OPC_RecordChild2, // #3 = $src0
/*462609*/            OPC_CheckType, MVT::v16f32,
/*462611*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462613*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZrrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Unpckl:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VUNPCKLPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*462623*/          0, // EndSwitchOpcode
/*462624*/        /*Scope*/ 15, /*->462640*/
/*462625*/          OPC_RecordChild1, // #1 = $src1
/*462626*/          OPC_RecordChild2, // #2 = $src0
/*462627*/          OPC_CheckType, MVT::v16f32,
/*462629*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462631*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrrk), 0,
                        MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src0) - Complexity = 3
                    // Dst: (VMOVAPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1)
/*462640*/        0, /*End of Scope*/
/*462641*/      /*Scope*/ 70|128,12/*1606*/, /*->464249*/
/*462643*/        OPC_CheckChild0Type, MVT::v64i1,
/*462645*/        OPC_Scope, 111|128,6/*879*/, /*->463527*/ // 4 children in Scope
/*462648*/          OPC_MoveChild1,
/*462649*/          OPC_SwitchOpcode /*25 cases */, 81, TARGET_VAL(X86ISD::VBROADCAST),// ->462734
/*462653*/            OPC_RecordChild0, // #1 = $src
/*462654*/            OPC_Scope, 29, /*->462685*/ // 2 children in Scope
/*462656*/              OPC_CheckChild0Type, MVT::v16i8,
/*462658*/              OPC_MoveParent,
/*462659*/              OPC_MoveChild2,
/*462660*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*462663*/              OPC_MoveChild0,
/*462664*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*462667*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*462669*/              OPC_CheckType, MVT::v16i32,
/*462671*/              OPC_MoveParent,
/*462672*/              OPC_MoveParent,
/*462673*/              OPC_CheckType, MVT::v64i8,
/*462675*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*462677*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZrkz), 0,
                            MVT::v64i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VBroadcast:{ *:[v64i8] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTBZrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*462685*/            /*Scope*/ 47, /*->462733*/
/*462686*/              OPC_CheckChild0Type, MVT::i8,
/*462688*/              OPC_MoveParent,
/*462689*/              OPC_MoveChild2,
/*462690*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*462693*/              OPC_MoveChild0,
/*462694*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*462697*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*462699*/              OPC_CheckType, MVT::v16i32,
/*462701*/              OPC_MoveParent,
/*462702*/              OPC_MoveParent,
/*462703*/              OPC_CheckType, MVT::v64i8,
/*462705*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*462707*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*462713*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*462716*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*462725*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZrkz), 0,
                            MVT::v64i8, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VBroadcast:{ *:[v64i8] } GR8:{ *:[i8] }:$src), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTBrZrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*462733*/            0, /*End of Scope*/
/*462734*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VPERMV3),// ->462769
/*462737*/            OPC_RecordChild0, // #1 = $src1
/*462738*/            OPC_RecordChild1, // #2 = $src2
/*462739*/            OPC_RecordChild2, // #3 = $src3
/*462740*/            OPC_MoveParent,
/*462741*/            OPC_MoveChild2,
/*462742*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*462745*/            OPC_MoveChild0,
/*462746*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*462749*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*462751*/            OPC_CheckType, MVT::v16i32,
/*462753*/            OPC_MoveParent,
/*462754*/            OPC_MoveParent,
/*462755*/            OPC_CheckType, MVT::v64i8,
/*462757*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*462759*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Brrkz), 0,
                          MVT::v64i8, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VPermt2:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src3), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPERMT2Brrkz:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src3)
/*462769*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::ADD),// ->462802
/*462772*/            OPC_RecordChild0, // #1 = $src1
/*462773*/            OPC_RecordChild1, // #2 = $src2
/*462774*/            OPC_MoveParent,
/*462775*/            OPC_MoveChild2,
/*462776*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*462779*/            OPC_MoveChild0,
/*462780*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*462783*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*462785*/            OPC_CheckType, MVT::v16i32,
/*462787*/            OPC_MoveParent,
/*462788*/            OPC_MoveParent,
/*462789*/            OPC_CheckType, MVT::v64i8,
/*462791*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*462793*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (add:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPADDBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*462802*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SUB),// ->462835
/*462805*/            OPC_RecordChild0, // #1 = $src1
/*462806*/            OPC_RecordChild1, // #2 = $src2
/*462807*/            OPC_MoveParent,
/*462808*/            OPC_MoveChild2,
/*462809*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*462812*/            OPC_MoveChild0,
/*462813*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*462816*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*462818*/            OPC_CheckType, MVT::v16i32,
/*462820*/            OPC_MoveParent,
/*462821*/            OPC_MoveParent,
/*462822*/            OPC_CheckType, MVT::v64i8,
/*462824*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*462826*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (sub:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSUBBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*462835*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::ADDS),// ->462868
/*462838*/            OPC_RecordChild0, // #1 = $src1
/*462839*/            OPC_RecordChild1, // #2 = $src2
/*462840*/            OPC_MoveParent,
/*462841*/            OPC_MoveChild2,
/*462842*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*462845*/            OPC_MoveChild0,
/*462846*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*462849*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*462851*/            OPC_CheckType, MVT::v16i32,
/*462853*/            OPC_MoveParent,
/*462854*/            OPC_MoveParent,
/*462855*/            OPC_CheckType, MVT::v64i8,
/*462857*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*462859*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86adds:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPADDSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*462868*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::SUBS),// ->462901
/*462871*/            OPC_RecordChild0, // #1 = $src1
/*462872*/            OPC_RecordChild1, // #2 = $src2
/*462873*/            OPC_MoveParent,
/*462874*/            OPC_MoveChild2,
/*462875*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*462878*/            OPC_MoveChild0,
/*462879*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*462882*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*462884*/            OPC_CheckType, MVT::v16i32,
/*462886*/            OPC_MoveParent,
/*462887*/            OPC_MoveParent,
/*462888*/            OPC_CheckType, MVT::v64i8,
/*462890*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*462892*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86subs:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSUBSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*462901*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::ADDUS),// ->462934
/*462904*/            OPC_RecordChild0, // #1 = $src1
/*462905*/            OPC_RecordChild1, // #2 = $src2
/*462906*/            OPC_MoveParent,
/*462907*/            OPC_MoveChild2,
/*462908*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*462911*/            OPC_MoveChild0,
/*462912*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*462915*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*462917*/            OPC_CheckType, MVT::v16i32,
/*462919*/            OPC_MoveParent,
/*462920*/            OPC_MoveParent,
/*462921*/            OPC_CheckType, MVT::v64i8,
/*462923*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*462925*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86addus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPADDUSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*462934*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::SUBUS),// ->462967
/*462937*/            OPC_RecordChild0, // #1 = $src1
/*462938*/            OPC_RecordChild1, // #2 = $src2
/*462939*/            OPC_MoveParent,
/*462940*/            OPC_MoveChild2,
/*462941*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*462944*/            OPC_MoveChild0,
/*462945*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*462948*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*462950*/            OPC_CheckType, MVT::v16i32,
/*462952*/            OPC_MoveParent,
/*462953*/            OPC_MoveParent,
/*462954*/            OPC_CheckType, MVT::v64i8,
/*462956*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*462958*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86subus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSUBUSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*462967*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::AVG),// ->463000
/*462970*/            OPC_RecordChild0, // #1 = $src1
/*462971*/            OPC_RecordChild1, // #2 = $src2
/*462972*/            OPC_MoveParent,
/*462973*/            OPC_MoveChild2,
/*462974*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*462977*/            OPC_MoveChild0,
/*462978*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*462981*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*462983*/            OPC_CheckType, MVT::v16i32,
/*462985*/            OPC_MoveParent,
/*462986*/            OPC_MoveParent,
/*462987*/            OPC_CheckType, MVT::v64i8,
/*462989*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*462991*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86avg:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPAVGBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463000*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::MULTISHIFT),// ->463035
/*463003*/            OPC_RecordChild0, // #1 = $src1
/*463004*/            OPC_CheckChild0Type, MVT::v64i8,
/*463006*/            OPC_RecordChild1, // #2 = $src2
/*463007*/            OPC_MoveParent,
/*463008*/            OPC_MoveChild2,
/*463009*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463012*/            OPC_MoveChild0,
/*463013*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463016*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463018*/            OPC_CheckType, MVT::v16i32,
/*463020*/            OPC_MoveParent,
/*463021*/            OPC_MoveParent,
/*463022*/            OPC_CheckType, MVT::v64i8,
/*463024*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*463026*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86multishift:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULTISHIFTQBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463035*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::PACKSS),// ->463070
/*463038*/            OPC_RecordChild0, // #1 = $src1
/*463039*/            OPC_CheckChild0Type, MVT::v32i16,
/*463041*/            OPC_RecordChild1, // #2 = $src2
/*463042*/            OPC_MoveParent,
/*463043*/            OPC_MoveChild2,
/*463044*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463047*/            OPC_MoveChild0,
/*463048*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463051*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463053*/            OPC_CheckType, MVT::v16i32,
/*463055*/            OPC_MoveParent,
/*463056*/            OPC_MoveParent,
/*463057*/            OPC_CheckType, MVT::v64i8,
/*463059*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463061*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Packss:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPACKSSWBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*463070*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::PACKUS),// ->463105
/*463073*/            OPC_RecordChild0, // #1 = $src1
/*463074*/            OPC_CheckChild0Type, MVT::v32i16,
/*463076*/            OPC_RecordChild1, // #2 = $src2
/*463077*/            OPC_MoveParent,
/*463078*/            OPC_MoveChild2,
/*463079*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463082*/            OPC_MoveChild0,
/*463083*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463086*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463088*/            OPC_CheckType, MVT::v16i32,
/*463090*/            OPC_MoveParent,
/*463091*/            OPC_MoveParent,
/*463092*/            OPC_CheckType, MVT::v64i8,
/*463094*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463096*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Packus:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPACKUSWBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*463105*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SMAX),// ->463138
/*463108*/            OPC_RecordChild0, // #1 = $src1
/*463109*/            OPC_RecordChild1, // #2 = $src2
/*463110*/            OPC_MoveParent,
/*463111*/            OPC_MoveChild2,
/*463112*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463115*/            OPC_MoveChild0,
/*463116*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463119*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463121*/            OPC_CheckType, MVT::v16i32,
/*463123*/            OPC_MoveParent,
/*463124*/            OPC_MoveParent,
/*463125*/            OPC_CheckType, MVT::v64i8,
/*463127*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463129*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMAXSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463138*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::UMAX),// ->463171
/*463141*/            OPC_RecordChild0, // #1 = $src1
/*463142*/            OPC_RecordChild1, // #2 = $src2
/*463143*/            OPC_MoveParent,
/*463144*/            OPC_MoveChild2,
/*463145*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463148*/            OPC_MoveChild0,
/*463149*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463152*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463154*/            OPC_CheckType, MVT::v16i32,
/*463156*/            OPC_MoveParent,
/*463157*/            OPC_MoveParent,
/*463158*/            OPC_CheckType, MVT::v64i8,
/*463160*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463162*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMAXUBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463171*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SMIN),// ->463204
/*463174*/            OPC_RecordChild0, // #1 = $src1
/*463175*/            OPC_RecordChild1, // #2 = $src2
/*463176*/            OPC_MoveParent,
/*463177*/            OPC_MoveChild2,
/*463178*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463181*/            OPC_MoveChild0,
/*463182*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463185*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463187*/            OPC_CheckType, MVT::v16i32,
/*463189*/            OPC_MoveParent,
/*463190*/            OPC_MoveParent,
/*463191*/            OPC_CheckType, MVT::v64i8,
/*463193*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463195*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMINSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463204*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::UMIN),// ->463237
/*463207*/            OPC_RecordChild0, // #1 = $src1
/*463208*/            OPC_RecordChild1, // #2 = $src2
/*463209*/            OPC_MoveParent,
/*463210*/            OPC_MoveChild2,
/*463211*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463214*/            OPC_MoveChild0,
/*463215*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463218*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463220*/            OPC_CheckType, MVT::v16i32,
/*463222*/            OPC_MoveParent,
/*463223*/            OPC_MoveParent,
/*463224*/            OPC_CheckType, MVT::v64i8,
/*463226*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463228*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMINUBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463237*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VPERMV),// ->463270
/*463240*/            OPC_RecordChild0, // #1 = $src1
/*463241*/            OPC_RecordChild1, // #2 = $src2
/*463242*/            OPC_MoveParent,
/*463243*/            OPC_MoveChild2,
/*463244*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463247*/            OPC_MoveChild0,
/*463248*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463251*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463253*/            OPC_CheckType, MVT::v16i32,
/*463255*/            OPC_MoveParent,
/*463256*/            OPC_MoveParent,
/*463257*/            OPC_CheckType, MVT::v64i8,
/*463259*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*463261*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VPermv:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPERMBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463270*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PSHUFB),// ->463303
/*463273*/            OPC_RecordChild0, // #1 = $src1
/*463274*/            OPC_RecordChild1, // #2 = $src2
/*463275*/            OPC_MoveParent,
/*463276*/            OPC_MoveChild2,
/*463277*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463280*/            OPC_MoveChild0,
/*463281*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463284*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463286*/            OPC_CheckType, MVT::v16i32,
/*463288*/            OPC_MoveParent,
/*463289*/            OPC_MoveParent,
/*463290*/            OPC_CheckType, MVT::v64i8,
/*463292*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463294*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86pshufb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSHUFBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463303*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::ABS),// ->463334
/*463306*/            OPC_RecordChild0, // #1 = $src1
/*463307*/            OPC_MoveParent,
/*463308*/            OPC_MoveChild2,
/*463309*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463312*/            OPC_MoveChild0,
/*463313*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463316*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463318*/            OPC_CheckType, MVT::v16i32,
/*463320*/            OPC_MoveParent,
/*463321*/            OPC_MoveParent,
/*463322*/            OPC_CheckType, MVT::v64i8,
/*463324*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463326*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZrrkz), 0,
                          MVT::v64i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (abs:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPABSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1)
/*463334*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::UNPCKL),// ->463367
/*463337*/            OPC_RecordChild0, // #1 = $src1
/*463338*/            OPC_RecordChild1, // #2 = $src2
/*463339*/            OPC_MoveParent,
/*463340*/            OPC_MoveChild2,
/*463341*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463344*/            OPC_MoveChild0,
/*463345*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463348*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463350*/            OPC_CheckType, MVT::v16i32,
/*463352*/            OPC_MoveParent,
/*463353*/            OPC_MoveParent,
/*463354*/            OPC_CheckType, MVT::v64i8,
/*463356*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463358*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Unpckl:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPUNPCKLBWZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463367*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::UNPCKH),// ->463400
/*463370*/            OPC_RecordChild0, // #1 = $src1
/*463371*/            OPC_RecordChild1, // #2 = $src2
/*463372*/            OPC_MoveParent,
/*463373*/            OPC_MoveChild2,
/*463374*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463377*/            OPC_MoveChild0,
/*463378*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463381*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463383*/            OPC_CheckType, MVT::v16i32,
/*463385*/            OPC_MoveParent,
/*463386*/            OPC_MoveParent,
/*463387*/            OPC_CheckType, MVT::v64i8,
/*463389*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463391*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Unpckh:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPUNPCKHBWZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463400*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::COMPRESS),// ->463431
/*463403*/            OPC_RecordChild0, // #1 = $src1
/*463404*/            OPC_MoveParent,
/*463405*/            OPC_MoveChild2,
/*463406*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463409*/            OPC_MoveChild0,
/*463410*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463413*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463415*/            OPC_CheckType, MVT::v16i32,
/*463417*/            OPC_MoveParent,
/*463418*/            OPC_MoveParent,
/*463419*/            OPC_CheckType, MVT::v64i8,
/*463421*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*463423*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZrrkz), 0,
                          MVT::v64i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86compress:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPCOMPRESSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1)
/*463431*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::EXPAND),// ->463462
/*463434*/            OPC_RecordChild0, // #1 = $src1
/*463435*/            OPC_MoveParent,
/*463436*/            OPC_MoveChild2,
/*463437*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463440*/            OPC_MoveChild0,
/*463441*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463444*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463446*/            OPC_CheckType, MVT::v16i32,
/*463448*/            OPC_MoveParent,
/*463449*/            OPC_MoveParent,
/*463450*/            OPC_CheckType, MVT::v64i8,
/*463452*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*463454*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrrkz), 0,
                          MVT::v64i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86expand:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPEXPANDBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1)
/*463462*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::CTPOP),// ->463493
/*463465*/            OPC_RecordChild0, // #1 = $src1
/*463466*/            OPC_MoveParent,
/*463467*/            OPC_MoveChild2,
/*463468*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463471*/            OPC_MoveChild0,
/*463472*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463475*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463477*/            OPC_CheckType, MVT::v16i32,
/*463479*/            OPC_MoveParent,
/*463480*/            OPC_MoveParent,
/*463481*/            OPC_CheckType, MVT::v64i8,
/*463483*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*463485*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZrrkz), 0,
                          MVT::v64i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (ctpop:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPOPCNTBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1)
/*463493*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::GF2P8MULB),// ->463526
/*463496*/            OPC_RecordChild0, // #1 = $src1
/*463497*/            OPC_RecordChild1, // #2 = $src2
/*463498*/            OPC_MoveParent,
/*463499*/            OPC_MoveChild2,
/*463500*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463503*/            OPC_MoveChild0,
/*463504*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463507*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463509*/            OPC_CheckType, MVT::v16i32,
/*463511*/            OPC_MoveParent,
/*463512*/            OPC_MoveParent,
/*463513*/            OPC_CheckType, MVT::v64i8,
/*463515*/            OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*463517*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8mulb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VGF2P8MULBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463526*/          0, // EndSwitchOpcode
/*463527*/        /*Scope*/ 27, /*->463555*/
/*463528*/          OPC_RecordChild1, // #1 = $src
/*463529*/          OPC_MoveChild2,
/*463530*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*463533*/          OPC_MoveChild0,
/*463534*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*463537*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*463539*/          OPC_CheckType, MVT::v16i32,
/*463541*/          OPC_MoveParent,
/*463542*/          OPC_MoveParent,
/*463543*/          OPC_CheckType, MVT::v64i8,
/*463545*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463547*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Zrrkz), 0,
                        MVT::v64i8, 2/*#Ops*/, 0, 1, 
                    // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src, (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                    // Dst: (VMOVDQU8Zrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)
/*463555*/        /*Scope*/ 35|128,5/*675*/, /*->464232*/
/*463557*/          OPC_MoveChild1,
/*463558*/          OPC_SwitchOpcode /*28 cases */, 27, TARGET_VAL(X86ISD::PALIGNR),// ->463589
/*463562*/            OPC_RecordChild0, // #1 = $src1
/*463563*/            OPC_RecordChild1, // #2 = $src2
/*463564*/            OPC_RecordChild2, // #3 = $src3
/*463565*/            OPC_MoveChild2,
/*463566*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*463569*/            OPC_MoveParent,
/*463570*/            OPC_MoveParent,
/*463571*/            OPC_RecordChild2, // #4 = $src0
/*463572*/            OPC_CheckType, MVT::v64i8,
/*463574*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463576*/            OPC_EmitConvertToTarget, 3,
/*463578*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrrik), 0,
                          MVT::v64i8, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 9
                      // Dst: (VPALIGNRZrrik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*463589*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->463619
/*463592*/            OPC_RecordChild0, // #1 = $src1
/*463593*/            OPC_RecordChild1, // #2 = $src2
/*463594*/            OPC_RecordChild2, // #3 = $src3
/*463595*/            OPC_MoveChild2,
/*463596*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*463599*/            OPC_MoveParent,
/*463600*/            OPC_MoveParent,
/*463601*/            OPC_RecordChild2, // #4 = $src0
/*463602*/            OPC_CheckType, MVT::v64i8,
/*463604*/            OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*463606*/            OPC_EmitConvertToTarget, 3,
/*463608*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrrik), 0,
                          MVT::v64i8, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 9
                      // Dst: (VGF2P8AFFINEINVQBZrrik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*463619*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->463649
/*463622*/            OPC_RecordChild0, // #1 = $src1
/*463623*/            OPC_RecordChild1, // #2 = $src2
/*463624*/            OPC_RecordChild2, // #3 = $src3
/*463625*/            OPC_MoveChild2,
/*463626*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*463629*/            OPC_MoveParent,
/*463630*/            OPC_MoveParent,
/*463631*/            OPC_RecordChild2, // #4 = $src0
/*463632*/            OPC_CheckType, MVT::v64i8,
/*463634*/            OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*463636*/            OPC_EmitConvertToTarget, 3,
/*463638*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrrik), 0,
                          MVT::v64i8, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 9
                      // Dst: (VGF2P8AFFINEQBZrrik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*463649*/          /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST),// ->463709
/*463652*/            OPC_RecordChild0, // #1 = $src
/*463653*/            OPC_Scope, 17, /*->463672*/ // 2 children in Scope
/*463655*/              OPC_CheckChild0Type, MVT::v16i8,
/*463657*/              OPC_MoveParent,
/*463658*/              OPC_RecordChild2, // #2 = $src0
/*463659*/              OPC_CheckType, MVT::v64i8,
/*463661*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463663*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZrk), 0,
                            MVT::v64i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VBroadcast:{ *:[v64i8] } VR128X:{ *:[v16i8] }:$src), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTBZrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*463672*/            /*Scope*/ 35, /*->463708*/
/*463673*/              OPC_CheckChild0Type, MVT::i8,
/*463675*/              OPC_MoveParent,
/*463676*/              OPC_RecordChild2, // #2 = $src0
/*463677*/              OPC_CheckType, MVT::v64i8,
/*463679*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463681*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*463687*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*463690*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*463699*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZrk), 0,
                            MVT::v64i8, 3/*#Ops*/, 2, 0, 5, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VBroadcast:{ *:[v64i8] } GR8:{ *:[i8] }:$src), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTBrZrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*463708*/            0, /*End of Scope*/
/*463709*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VPERMV3),// ->463750
/*463712*/            OPC_RecordChild0, // #1 = $src2
/*463713*/            OPC_RecordChild1, // #2 = $src1
/*463714*/            OPC_RecordChild2, // #3 = $src3
/*463715*/            OPC_MoveParent,
/*463716*/            OPC_CheckType, MVT::v64i8,
/*463718*/            OPC_Scope, 14, /*->463734*/ // 2 children in Scope
/*463720*/              OPC_CheckChild2Same, 2,
/*463722*/              OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*463724*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Brrk), 0,
                            MVT::v64i8, 4/*#Ops*/, 2, 0, 1, 3, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VPermt2:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src3), VR512:{ *:[v64i8] }:$src1) - Complexity = 6
                        // Dst: (VPERMI2Brrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src3)
/*463734*/            /*Scope*/ 14, /*->463749*/
/*463735*/              OPC_CheckChild2Same, 1,
/*463737*/              OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*463739*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Brrk), 0,
                            MVT::v64i8, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VPermt2:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src3), VR512:{ *:[v64i8] }:$src1) - Complexity = 6
                        // Dst: (VPERMT2Brrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src3)
/*463749*/            0, /*End of Scope*/
/*463750*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::ADD),// ->463771
/*463753*/            OPC_RecordChild0, // #1 = $src1
/*463754*/            OPC_RecordChild1, // #2 = $src2
/*463755*/            OPC_MoveParent,
/*463756*/            OPC_RecordChild2, // #3 = $src0
/*463757*/            OPC_CheckType, MVT::v64i8,
/*463759*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463761*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (add:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPADDBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463771*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SUB),// ->463792
/*463774*/            OPC_RecordChild0, // #1 = $src1
/*463775*/            OPC_RecordChild1, // #2 = $src2
/*463776*/            OPC_MoveParent,
/*463777*/            OPC_RecordChild2, // #3 = $src0
/*463778*/            OPC_CheckType, MVT::v64i8,
/*463780*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463782*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (sub:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPSUBBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463792*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::ADDS),// ->463813
/*463795*/            OPC_RecordChild0, // #1 = $src1
/*463796*/            OPC_RecordChild1, // #2 = $src2
/*463797*/            OPC_MoveParent,
/*463798*/            OPC_RecordChild2, // #3 = $src0
/*463799*/            OPC_CheckType, MVT::v64i8,
/*463801*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463803*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86adds:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPADDSBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463813*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::SUBS),// ->463834
/*463816*/            OPC_RecordChild0, // #1 = $src1
/*463817*/            OPC_RecordChild1, // #2 = $src2
/*463818*/            OPC_MoveParent,
/*463819*/            OPC_RecordChild2, // #3 = $src0
/*463820*/            OPC_CheckType, MVT::v64i8,
/*463822*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463824*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86subs:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPSUBSBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463834*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::ADDUS),// ->463855
/*463837*/            OPC_RecordChild0, // #1 = $src1
/*463838*/            OPC_RecordChild1, // #2 = $src2
/*463839*/            OPC_MoveParent,
/*463840*/            OPC_RecordChild2, // #3 = $src0
/*463841*/            OPC_CheckType, MVT::v64i8,
/*463843*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463845*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86addus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPADDUSBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463855*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::SUBUS),// ->463876
/*463858*/            OPC_RecordChild0, // #1 = $src1
/*463859*/            OPC_RecordChild1, // #2 = $src2
/*463860*/            OPC_MoveParent,
/*463861*/            OPC_RecordChild2, // #3 = $src0
/*463862*/            OPC_CheckType, MVT::v64i8,
/*463864*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463866*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86subus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPSUBUSBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463876*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::AVG),// ->463897
/*463879*/            OPC_RecordChild0, // #1 = $src1
/*463880*/            OPC_RecordChild1, // #2 = $src2
/*463881*/            OPC_MoveParent,
/*463882*/            OPC_RecordChild2, // #3 = $src0
/*463883*/            OPC_CheckType, MVT::v64i8,
/*463885*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463887*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86avg:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPAVGBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463897*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::MULTISHIFT),// ->463920
/*463900*/            OPC_RecordChild0, // #1 = $src1
/*463901*/            OPC_CheckChild0Type, MVT::v64i8,
/*463903*/            OPC_RecordChild1, // #2 = $src2
/*463904*/            OPC_MoveParent,
/*463905*/            OPC_RecordChild2, // #3 = $src0
/*463906*/            OPC_CheckType, MVT::v64i8,
/*463908*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*463910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86multishift:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPMULTISHIFTQBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463920*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::PACKSS),// ->463943
/*463923*/            OPC_RecordChild0, // #1 = $src1
/*463924*/            OPC_CheckChild0Type, MVT::v32i16,
/*463926*/            OPC_RecordChild1, // #2 = $src2
/*463927*/            OPC_MoveParent,
/*463928*/            OPC_RecordChild2, // #3 = $src0
/*463929*/            OPC_CheckType, MVT::v64i8,
/*463931*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463933*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Packss:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPACKSSWBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*463943*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::PACKUS),// ->463966
/*463946*/            OPC_RecordChild0, // #1 = $src1
/*463947*/            OPC_CheckChild0Type, MVT::v32i16,
/*463949*/            OPC_RecordChild1, // #2 = $src2
/*463950*/            OPC_MoveParent,
/*463951*/            OPC_RecordChild2, // #3 = $src0
/*463952*/            OPC_CheckType, MVT::v64i8,
/*463954*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463956*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Packus:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPACKUSWBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*463966*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SMAX),// ->463987
/*463969*/            OPC_RecordChild0, // #1 = $src1
/*463970*/            OPC_RecordChild1, // #2 = $src2
/*463971*/            OPC_MoveParent,
/*463972*/            OPC_RecordChild2, // #3 = $src0
/*463973*/            OPC_CheckType, MVT::v64i8,
/*463975*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463977*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPMAXSBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*463987*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UMAX),// ->464008
/*463990*/            OPC_RecordChild0, // #1 = $src1
/*463991*/            OPC_RecordChild1, // #2 = $src2
/*463992*/            OPC_MoveParent,
/*463993*/            OPC_RecordChild2, // #3 = $src0
/*463994*/            OPC_CheckType, MVT::v64i8,
/*463996*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*463998*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPMAXUBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*464008*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SMIN),// ->464029
/*464011*/            OPC_RecordChild0, // #1 = $src1
/*464012*/            OPC_RecordChild1, // #2 = $src2
/*464013*/            OPC_MoveParent,
/*464014*/            OPC_RecordChild2, // #3 = $src0
/*464015*/            OPC_CheckType, MVT::v64i8,
/*464017*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464019*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (smin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPMINSBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*464029*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UMIN),// ->464050
/*464032*/            OPC_RecordChild0, // #1 = $src1
/*464033*/            OPC_RecordChild1, // #2 = $src2
/*464034*/            OPC_MoveParent,
/*464035*/            OPC_RecordChild2, // #3 = $src0
/*464036*/            OPC_CheckType, MVT::v64i8,
/*464038*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464040*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (umin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPMINUBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*464050*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMV),// ->464071
/*464053*/            OPC_RecordChild0, // #1 = $src1
/*464054*/            OPC_RecordChild1, // #2 = $src2
/*464055*/            OPC_MoveParent,
/*464056*/            OPC_RecordChild2, // #3 = $src0
/*464057*/            OPC_CheckType, MVT::v64i8,
/*464059*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*464061*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VPermv:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPERMBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*464071*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PSHUFB),// ->464092
/*464074*/            OPC_RecordChild0, // #1 = $src1
/*464075*/            OPC_RecordChild1, // #2 = $src2
/*464076*/            OPC_MoveParent,
/*464077*/            OPC_RecordChild2, // #3 = $src0
/*464078*/            OPC_CheckType, MVT::v64i8,
/*464080*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464082*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86pshufb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPSHUFBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*464092*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::ABS),// ->464111
/*464095*/            OPC_RecordChild0, // #1 = $src1
/*464096*/            OPC_MoveParent,
/*464097*/            OPC_RecordChild2, // #2 = $src0
/*464098*/            OPC_CheckType, MVT::v64i8,
/*464100*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464102*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZrrk), 0,
                          MVT::v64i8, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (abs:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPABSBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1)
/*464111*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKL),// ->464132
/*464114*/            OPC_RecordChild0, // #1 = $src1
/*464115*/            OPC_RecordChild1, // #2 = $src2
/*464116*/            OPC_MoveParent,
/*464117*/            OPC_RecordChild2, // #3 = $src0
/*464118*/            OPC_CheckType, MVT::v64i8,
/*464120*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464122*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Unpckl:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPUNPCKLBWZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*464132*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKH),// ->464153
/*464135*/            OPC_RecordChild0, // #1 = $src1
/*464136*/            OPC_RecordChild1, // #2 = $src2
/*464137*/            OPC_MoveParent,
/*464138*/            OPC_RecordChild2, // #3 = $src0
/*464139*/            OPC_CheckType, MVT::v64i8,
/*464141*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464143*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86Unpckh:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPUNPCKHBWZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*464153*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::COMPRESS),// ->464172
/*464156*/            OPC_RecordChild0, // #1 = $src1
/*464157*/            OPC_MoveParent,
/*464158*/            OPC_RecordChild2, // #2 = $src0
/*464159*/            OPC_CheckType, MVT::v64i8,
/*464161*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*464163*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZrrk), 0,
                          MVT::v64i8, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86compress:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPCOMPRESSBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1)
/*464172*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::EXPAND),// ->464191
/*464175*/            OPC_RecordChild0, // #1 = $src1
/*464176*/            OPC_MoveParent,
/*464177*/            OPC_RecordChild2, // #2 = $src0
/*464178*/            OPC_CheckType, MVT::v64i8,
/*464180*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*464182*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrrk), 0,
                          MVT::v64i8, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86expand:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPEXPANDBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1)
/*464191*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::CTPOP),// ->464210
/*464194*/            OPC_RecordChild0, // #1 = $src1
/*464195*/            OPC_MoveParent,
/*464196*/            OPC_RecordChild2, // #2 = $src0
/*464197*/            OPC_CheckType, MVT::v64i8,
/*464199*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*464201*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZrrk), 0,
                          MVT::v64i8, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (ctpop:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VPOPCNTBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1)
/*464210*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::GF2P8MULB),// ->464231
/*464213*/            OPC_RecordChild0, // #1 = $src1
/*464214*/            OPC_RecordChild1, // #2 = $src2
/*464215*/            OPC_MoveParent,
/*464216*/            OPC_RecordChild2, // #3 = $src0
/*464217*/            OPC_CheckType, MVT::v64i8,
/*464219*/            OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*464221*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8mulb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v64i8] }:$src0) - Complexity = 6
                      // Dst: (VGF2P8MULBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*464231*/          0, // EndSwitchOpcode
/*464232*/        /*Scope*/ 15, /*->464248*/
/*464233*/          OPC_RecordChild1, // #1 = $src1
/*464234*/          OPC_RecordChild2, // #2 = $src0
/*464235*/          OPC_CheckType, MVT::v64i8,
/*464237*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464239*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Zrrk), 0,
                        MVT::v64i8, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src0) - Complexity = 3
                    // Dst: (VMOVDQU8Zrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1)
/*464248*/        0, /*End of Scope*/
/*464249*/      /*Scope*/ 9|128,31/*3977*/, /*->468228*/
/*464251*/        OPC_CheckChild0Type, MVT::v32i1,
/*464253*/        OPC_Scope, 107|128,15/*2027*/, /*->466283*/ // 4 children in Scope
/*464256*/          OPC_MoveChild1,
/*464257*/          OPC_SwitchOpcode /*44 cases */, 31|128,1/*159*/, TARGET_VAL(X86ISD::VBROADCAST),// ->464421
/*464262*/            OPC_RecordChild0, // #1 = $src
/*464263*/            OPC_Scope, 29, /*->464294*/ // 4 children in Scope
/*464265*/              OPC_CheckChild0Type, MVT::v16i8,
/*464267*/              OPC_MoveParent,
/*464268*/              OPC_MoveChild2,
/*464269*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464272*/              OPC_MoveChild0,
/*464273*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464276*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464278*/              OPC_CheckType, MVT::v8i32,
/*464280*/              OPC_MoveParent,
/*464281*/              OPC_MoveParent,
/*464282*/              OPC_CheckType, MVT::v32i8,
/*464284*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464286*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256rkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i8] } VR128X:{ *:[v16i8] }:$src), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTBZ256rkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*464294*/            /*Scope*/ 29, /*->464324*/
/*464295*/              OPC_CheckChild0Type, MVT::v8i16,
/*464297*/              OPC_MoveParent,
/*464298*/              OPC_MoveChild2,
/*464299*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464302*/              OPC_MoveChild0,
/*464303*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464306*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464308*/              OPC_CheckType, MVT::v16i32,
/*464310*/              OPC_MoveParent,
/*464311*/              OPC_MoveParent,
/*464312*/              OPC_CheckType, MVT::v32i16,
/*464314*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464316*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZrkz), 0,
                            MVT::v32i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i16] } VR128X:{ *:[v8i16] }:$src), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTWZrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*464324*/            /*Scope*/ 47, /*->464372*/
/*464325*/              OPC_CheckChild0Type, MVT::i8,
/*464327*/              OPC_MoveParent,
/*464328*/              OPC_MoveChild2,
/*464329*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464332*/              OPC_MoveChild0,
/*464333*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464336*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464338*/              OPC_CheckType, MVT::v8i32,
/*464340*/              OPC_MoveParent,
/*464341*/              OPC_MoveParent,
/*464342*/              OPC_CheckType, MVT::v32i8,
/*464344*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464346*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*464352*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*464355*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*464364*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZ256rkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i8] } GR8:{ *:[i8] }:$src), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTBrZ256rkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*464372*/            /*Scope*/ 47, /*->464420*/
/*464373*/              OPC_CheckChild0Type, MVT::i16,
/*464375*/              OPC_MoveParent,
/*464376*/              OPC_MoveChild2,
/*464377*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464380*/              OPC_MoveChild0,
/*464381*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464384*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464386*/              OPC_CheckType, MVT::v16i32,
/*464388*/              OPC_MoveParent,
/*464389*/              OPC_MoveParent,
/*464390*/              OPC_CheckType, MVT::v32i16,
/*464392*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464394*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*464400*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*464403*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*464412*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZrkz), 0,
                            MVT::v32i16, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i16] } GR16:{ *:[i16] }:$src), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPBROADCASTWrZrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*464420*/            0, /*End of Scope*/
/*464421*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VPERMV3),// ->464476
/*464424*/            OPC_RecordChild0, // #1 = $src1
/*464425*/            OPC_RecordChild1, // #2 = $src2
/*464426*/            OPC_RecordChild2, // #3 = $src3
/*464427*/            OPC_MoveParent,
/*464428*/            OPC_MoveChild2,
/*464429*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464432*/            OPC_MoveChild0,
/*464433*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464436*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464438*/            OPC_SwitchType /*2 cases */, 16, MVT::v16i32,// ->464457
/*464441*/              OPC_MoveParent,
/*464442*/              OPC_MoveParent,
/*464443*/              OPC_CheckType, MVT::v32i16,
/*464445*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464447*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Wrrkz), 0,
                            MVT::v32i16, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMT2Wrrkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*464457*/            /*SwitchType*/ 16, MVT::v8i32,// ->464475
/*464459*/              OPC_MoveParent,
/*464460*/              OPC_MoveParent,
/*464461*/              OPC_CheckType, MVT::v32i8,
/*464463*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*464465*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B256rrkz), 0,
                            MVT::v32i8, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src3), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMT2B256rrkz:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src3)
/*464475*/            0, // EndSwitchType
/*464476*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::ADD),// ->464528
/*464479*/            OPC_RecordChild0, // #1 = $src1
/*464480*/            OPC_RecordChild1, // #2 = $src2
/*464481*/            OPC_MoveParent,
/*464482*/            OPC_MoveChild2,
/*464483*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464486*/            OPC_MoveChild0,
/*464487*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464490*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464492*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->464510
/*464495*/              OPC_MoveParent,
/*464496*/              OPC_MoveParent,
/*464497*/              OPC_CheckType, MVT::v32i16,
/*464499*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464501*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*464510*/            /*SwitchType*/ 15, MVT::v8i32,// ->464527
/*464512*/              OPC_MoveParent,
/*464513*/              OPC_MoveParent,
/*464514*/              OPC_CheckType, MVT::v32i8,
/*464516*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464518*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*464527*/            0, // EndSwitchType
/*464528*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::SUB),// ->464580
/*464531*/            OPC_RecordChild0, // #1 = $src1
/*464532*/            OPC_RecordChild1, // #2 = $src2
/*464533*/            OPC_MoveParent,
/*464534*/            OPC_MoveChild2,
/*464535*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464538*/            OPC_MoveChild0,
/*464539*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464542*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464544*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->464562
/*464547*/              OPC_MoveParent,
/*464548*/              OPC_MoveParent,
/*464549*/              OPC_CheckType, MVT::v32i16,
/*464551*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464553*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (sub:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*464562*/            /*SwitchType*/ 15, MVT::v8i32,// ->464579
/*464564*/              OPC_MoveParent,
/*464565*/              OPC_MoveParent,
/*464566*/              OPC_CheckType, MVT::v32i8,
/*464568*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464570*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (sub:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*464579*/            0, // EndSwitchType
/*464580*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::ADDS),// ->464632
/*464583*/            OPC_RecordChild0, // #1 = $src1
/*464584*/            OPC_RecordChild1, // #2 = $src2
/*464585*/            OPC_MoveParent,
/*464586*/            OPC_MoveChild2,
/*464587*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464590*/            OPC_MoveChild0,
/*464591*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464594*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464596*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->464614
/*464599*/              OPC_MoveParent,
/*464600*/              OPC_MoveParent,
/*464601*/              OPC_CheckType, MVT::v32i16,
/*464603*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464605*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*464614*/            /*SwitchType*/ 15, MVT::v8i32,// ->464631
/*464616*/              OPC_MoveParent,
/*464617*/              OPC_MoveParent,
/*464618*/              OPC_CheckType, MVT::v32i8,
/*464620*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464622*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*464631*/            0, // EndSwitchType
/*464632*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::SUBS),// ->464684
/*464635*/            OPC_RecordChild0, // #1 = $src1
/*464636*/            OPC_RecordChild1, // #2 = $src2
/*464637*/            OPC_MoveParent,
/*464638*/            OPC_MoveChild2,
/*464639*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464642*/            OPC_MoveChild0,
/*464643*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464646*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464648*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->464666
/*464651*/              OPC_MoveParent,
/*464652*/              OPC_MoveParent,
/*464653*/              OPC_CheckType, MVT::v32i16,
/*464655*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464657*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86subs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*464666*/            /*SwitchType*/ 15, MVT::v8i32,// ->464683
/*464668*/              OPC_MoveParent,
/*464669*/              OPC_MoveParent,
/*464670*/              OPC_CheckType, MVT::v32i8,
/*464672*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464674*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86subs:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*464683*/            0, // EndSwitchType
/*464684*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::ADDUS),// ->464736
/*464687*/            OPC_RecordChild0, // #1 = $src1
/*464688*/            OPC_RecordChild1, // #2 = $src2
/*464689*/            OPC_MoveParent,
/*464690*/            OPC_MoveChild2,
/*464691*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464694*/            OPC_MoveChild0,
/*464695*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464698*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464700*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->464718
/*464703*/              OPC_MoveParent,
/*464704*/              OPC_MoveParent,
/*464705*/              OPC_CheckType, MVT::v32i16,
/*464707*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464709*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDUSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*464718*/            /*SwitchType*/ 15, MVT::v8i32,// ->464735
/*464720*/              OPC_MoveParent,
/*464721*/              OPC_MoveParent,
/*464722*/              OPC_CheckType, MVT::v32i8,
/*464724*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464726*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPADDUSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*464735*/            0, // EndSwitchType
/*464736*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::SUBUS),// ->464788
/*464739*/            OPC_RecordChild0, // #1 = $src1
/*464740*/            OPC_RecordChild1, // #2 = $src2
/*464741*/            OPC_MoveParent,
/*464742*/            OPC_MoveChild2,
/*464743*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464746*/            OPC_MoveChild0,
/*464747*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464750*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464752*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->464770
/*464755*/              OPC_MoveParent,
/*464756*/              OPC_MoveParent,
/*464757*/              OPC_CheckType, MVT::v32i16,
/*464759*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464761*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86subus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBUSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*464770*/            /*SwitchType*/ 15, MVT::v8i32,// ->464787
/*464772*/              OPC_MoveParent,
/*464773*/              OPC_MoveParent,
/*464774*/              OPC_CheckType, MVT::v32i8,
/*464776*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464778*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86subus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPSUBUSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*464787*/            0, // EndSwitchType
/*464788*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::MUL),// ->464821
/*464791*/            OPC_RecordChild0, // #1 = $src1
/*464792*/            OPC_RecordChild1, // #2 = $src2
/*464793*/            OPC_MoveParent,
/*464794*/            OPC_MoveChild2,
/*464795*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464798*/            OPC_MoveChild0,
/*464799*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464802*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464804*/            OPC_CheckType, MVT::v16i32,
/*464806*/            OPC_MoveParent,
/*464807*/            OPC_MoveParent,
/*464808*/            OPC_CheckType, MVT::v32i16,
/*464810*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464812*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mul:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULLWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*464821*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::MULHS),// ->464854
/*464824*/            OPC_RecordChild0, // #1 = $src1
/*464825*/            OPC_RecordChild1, // #2 = $src2
/*464826*/            OPC_MoveParent,
/*464827*/            OPC_MoveChild2,
/*464828*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464831*/            OPC_MoveChild0,
/*464832*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464835*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464837*/            OPC_CheckType, MVT::v16i32,
/*464839*/            OPC_MoveParent,
/*464840*/            OPC_MoveParent,
/*464841*/            OPC_CheckType, MVT::v32i16,
/*464843*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464845*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULHWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*464854*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::MULHU),// ->464887
/*464857*/            OPC_RecordChild0, // #1 = $src1
/*464858*/            OPC_RecordChild1, // #2 = $src2
/*464859*/            OPC_MoveParent,
/*464860*/            OPC_MoveChild2,
/*464861*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464864*/            OPC_MoveChild0,
/*464865*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464868*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464870*/            OPC_CheckType, MVT::v16i32,
/*464872*/            OPC_MoveParent,
/*464873*/            OPC_MoveParent,
/*464874*/            OPC_CheckType, MVT::v32i16,
/*464876*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464878*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhu:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULHUWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*464887*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::MULHRS),// ->464920
/*464890*/            OPC_RecordChild0, // #1 = $src1
/*464891*/            OPC_RecordChild1, // #2 = $src2
/*464892*/            OPC_MoveParent,
/*464893*/            OPC_MoveChild2,
/*464894*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464897*/            OPC_MoveChild0,
/*464898*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464901*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464903*/            OPC_CheckType, MVT::v16i32,
/*464905*/            OPC_MoveParent,
/*464906*/            OPC_MoveParent,
/*464907*/            OPC_CheckType, MVT::v32i16,
/*464909*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464911*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86mulhrs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULHRSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*464920*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::AVG),// ->464972
/*464923*/            OPC_RecordChild0, // #1 = $src1
/*464924*/            OPC_RecordChild1, // #2 = $src2
/*464925*/            OPC_MoveParent,
/*464926*/            OPC_MoveChild2,
/*464927*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464930*/            OPC_MoveChild0,
/*464931*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464934*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464936*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->464954
/*464939*/              OPC_MoveParent,
/*464940*/              OPC_MoveParent,
/*464941*/              OPC_CheckType, MVT::v32i16,
/*464943*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*464945*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPAVGWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*464954*/            /*SwitchType*/ 15, MVT::v8i32,// ->464971
/*464956*/              OPC_MoveParent,
/*464957*/              OPC_MoveParent,
/*464958*/              OPC_CheckType, MVT::v32i8,
/*464960*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464962*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPAVGBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*464971*/            0, // EndSwitchType
/*464972*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::MULTISHIFT),// ->465007
/*464975*/            OPC_RecordChild0, // #1 = $src1
/*464976*/            OPC_CheckChild0Type, MVT::v32i8,
/*464978*/            OPC_RecordChild1, // #2 = $src2
/*464979*/            OPC_MoveParent,
/*464980*/            OPC_MoveChild2,
/*464981*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*464984*/            OPC_MoveChild0,
/*464985*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*464988*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*464990*/            OPC_CheckType, MVT::v8i32,
/*464992*/            OPC_MoveParent,
/*464993*/            OPC_MoveParent,
/*464994*/            OPC_CheckType, MVT::v32i8,
/*464996*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*464998*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ256rrkz), 0,
                          MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86multishift:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMULTISHIFTQBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*465007*/          /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::PACKSS),// ->465077
/*465010*/            OPC_RecordChild0, // #1 = $src1
/*465011*/            OPC_Scope, 31, /*->465044*/ // 2 children in Scope
/*465013*/              OPC_CheckChild0Type, MVT::v16i32,
/*465015*/              OPC_RecordChild1, // #2 = $src2
/*465016*/              OPC_MoveParent,
/*465017*/              OPC_MoveChild2,
/*465018*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465021*/              OPC_MoveChild0,
/*465022*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465025*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465027*/              OPC_CheckType, MVT::v16i32,
/*465029*/              OPC_MoveParent,
/*465030*/              OPC_MoveParent,
/*465031*/              OPC_CheckType, MVT::v32i16,
/*465033*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465035*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packss:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPACKSSDWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*465044*/            /*Scope*/ 31, /*->465076*/
/*465045*/              OPC_CheckChild0Type, MVT::v16i16,
/*465047*/              OPC_RecordChild1, // #2 = $src2
/*465048*/              OPC_MoveParent,
/*465049*/              OPC_MoveChild2,
/*465050*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465053*/              OPC_MoveChild0,
/*465054*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465057*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465059*/              OPC_CheckType, MVT::v8i32,
/*465061*/              OPC_MoveParent,
/*465062*/              OPC_MoveParent,
/*465063*/              OPC_CheckType, MVT::v32i8,
/*465065*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*465067*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Packss:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPACKSSWBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*465076*/            0, /*End of Scope*/
/*465077*/          /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::PACKUS),// ->465147
/*465080*/            OPC_RecordChild0, // #1 = $src1
/*465081*/            OPC_Scope, 31, /*->465114*/ // 2 children in Scope
/*465083*/              OPC_CheckChild0Type, MVT::v16i32,
/*465085*/              OPC_RecordChild1, // #2 = $src2
/*465086*/              OPC_MoveParent,
/*465087*/              OPC_MoveChild2,
/*465088*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465091*/              OPC_MoveChild0,
/*465092*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465095*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465097*/              OPC_CheckType, MVT::v16i32,
/*465099*/              OPC_MoveParent,
/*465100*/              OPC_MoveParent,
/*465101*/              OPC_CheckType, MVT::v32i16,
/*465103*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465105*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packus:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPACKUSDWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*465114*/            /*Scope*/ 31, /*->465146*/
/*465115*/              OPC_CheckChild0Type, MVT::v16i16,
/*465117*/              OPC_RecordChild1, // #2 = $src2
/*465118*/              OPC_MoveParent,
/*465119*/              OPC_MoveChild2,
/*465120*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465123*/              OPC_MoveChild0,
/*465124*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465127*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465129*/              OPC_CheckType, MVT::v8i32,
/*465131*/              OPC_MoveParent,
/*465132*/              OPC_MoveParent,
/*465133*/              OPC_CheckType, MVT::v32i8,
/*465135*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*465137*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Packus:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPACKUSWBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*465146*/            0, /*End of Scope*/
/*465147*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VPMADDUBSW),// ->465180
/*465150*/            OPC_RecordChild0, // #1 = $src1
/*465151*/            OPC_RecordChild1, // #2 = $src2
/*465152*/            OPC_MoveParent,
/*465153*/            OPC_MoveChild2,
/*465154*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465157*/            OPC_MoveChild0,
/*465158*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465161*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465163*/            OPC_CheckType, MVT::v16i32,
/*465165*/            OPC_MoveParent,
/*465166*/            OPC_MoveParent,
/*465167*/            OPC_CheckType, MVT::v32i16,
/*465169*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465171*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vpmaddubsw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMADDUBSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*465180*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::SMAX),// ->465232
/*465183*/            OPC_RecordChild0, // #1 = $src1
/*465184*/            OPC_RecordChild1, // #2 = $src2
/*465185*/            OPC_MoveParent,
/*465186*/            OPC_MoveChild2,
/*465187*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465190*/            OPC_MoveChild0,
/*465191*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465194*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465196*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->465214
/*465199*/              OPC_MoveParent,
/*465200*/              OPC_MoveParent,
/*465201*/              OPC_CheckType, MVT::v32i8,
/*465203*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*465205*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*465214*/            /*SwitchType*/ 15, MVT::v16i32,// ->465231
/*465216*/              OPC_MoveParent,
/*465217*/              OPC_MoveParent,
/*465218*/              OPC_CheckType, MVT::v32i16,
/*465220*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465222*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*465231*/            0, // EndSwitchType
/*465232*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::UMAX),// ->465284
/*465235*/            OPC_RecordChild0, // #1 = $src1
/*465236*/            OPC_RecordChild1, // #2 = $src2
/*465237*/            OPC_MoveParent,
/*465238*/            OPC_MoveChild2,
/*465239*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465242*/            OPC_MoveChild0,
/*465243*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465246*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465248*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->465266
/*465251*/              OPC_MoveParent,
/*465252*/              OPC_MoveParent,
/*465253*/              OPC_CheckType, MVT::v32i8,
/*465255*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*465257*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXUBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*465266*/            /*SwitchType*/ 15, MVT::v16i32,// ->465283
/*465268*/              OPC_MoveParent,
/*465269*/              OPC_MoveParent,
/*465270*/              OPC_CheckType, MVT::v32i16,
/*465272*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465274*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMAXUWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*465283*/            0, // EndSwitchType
/*465284*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::SMIN),// ->465336
/*465287*/            OPC_RecordChild0, // #1 = $src1
/*465288*/            OPC_RecordChild1, // #2 = $src2
/*465289*/            OPC_MoveParent,
/*465290*/            OPC_MoveChild2,
/*465291*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465294*/            OPC_MoveChild0,
/*465295*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465298*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465300*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->465318
/*465303*/              OPC_MoveParent,
/*465304*/              OPC_MoveParent,
/*465305*/              OPC_CheckType, MVT::v32i8,
/*465307*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*465309*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*465318*/            /*SwitchType*/ 15, MVT::v16i32,// ->465335
/*465320*/              OPC_MoveParent,
/*465321*/              OPC_MoveParent,
/*465322*/              OPC_CheckType, MVT::v32i16,
/*465324*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465326*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*465335*/            0, // EndSwitchType
/*465336*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::UMIN),// ->465388
/*465339*/            OPC_RecordChild0, // #1 = $src1
/*465340*/            OPC_RecordChild1, // #2 = $src2
/*465341*/            OPC_MoveParent,
/*465342*/            OPC_MoveChild2,
/*465343*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465346*/            OPC_MoveChild0,
/*465347*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465350*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465352*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->465370
/*465355*/              OPC_MoveParent,
/*465356*/              OPC_MoveParent,
/*465357*/              OPC_CheckType, MVT::v32i8,
/*465359*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*465361*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINUBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*465370*/            /*SwitchType*/ 15, MVT::v16i32,// ->465387
/*465372*/              OPC_MoveParent,
/*465373*/              OPC_MoveParent,
/*465374*/              OPC_CheckType, MVT::v32i16,
/*465376*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465378*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPMINUWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*465387*/            0, // EndSwitchType
/*465388*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHL),// ->465423
/*465391*/            OPC_RecordChild0, // #1 = $src1
/*465392*/            OPC_RecordChild1, // #2 = $src2
/*465393*/            OPC_CheckChild1Type, MVT::v8i16,
/*465395*/            OPC_MoveParent,
/*465396*/            OPC_MoveChild2,
/*465397*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465400*/            OPC_MoveChild0,
/*465401*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465404*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465406*/            OPC_CheckType, MVT::v16i32,
/*465408*/            OPC_MoveParent,
/*465409*/            OPC_MoveParent,
/*465410*/            OPC_CheckType, MVT::v32i16,
/*465412*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465414*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSLLWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*465423*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSRA),// ->465458
/*465426*/            OPC_RecordChild0, // #1 = $src1
/*465427*/            OPC_RecordChild1, // #2 = $src2
/*465428*/            OPC_CheckChild1Type, MVT::v8i16,
/*465430*/            OPC_MoveParent,
/*465431*/            OPC_MoveChild2,
/*465432*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465435*/            OPC_MoveChild0,
/*465436*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465439*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465441*/            OPC_CheckType, MVT::v16i32,
/*465443*/            OPC_MoveParent,
/*465444*/            OPC_MoveParent,
/*465445*/            OPC_CheckType, MVT::v32i16,
/*465447*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465449*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*465458*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSRL),// ->465493
/*465461*/            OPC_RecordChild0, // #1 = $src1
/*465462*/            OPC_RecordChild1, // #2 = $src2
/*465463*/            OPC_CheckChild1Type, MVT::v8i16,
/*465465*/            OPC_MoveParent,
/*465466*/            OPC_MoveChild2,
/*465467*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465470*/            OPC_MoveChild0,
/*465471*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465474*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465476*/            OPC_CheckType, MVT::v16i32,
/*465478*/            OPC_MoveParent,
/*465479*/            OPC_MoveParent,
/*465480*/            OPC_CheckType, MVT::v32i16,
/*465482*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465484*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRLWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*465493*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SHL),// ->465528
/*465496*/            OPC_RecordChild0, // #1 = $src1
/*465497*/            OPC_RecordChild1, // #2 = $src2
/*465498*/            OPC_CheckChild1Type, MVT::v32i16,
/*465500*/            OPC_MoveParent,
/*465501*/            OPC_MoveChild2,
/*465502*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465505*/            OPC_MoveChild0,
/*465506*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465509*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465511*/            OPC_CheckType, MVT::v16i32,
/*465513*/            OPC_MoveParent,
/*465514*/            OPC_MoveParent,
/*465515*/            OPC_CheckType, MVT::v32i16,
/*465517*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465519*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (shl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSLLVWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*465528*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SRA),// ->465563
/*465531*/            OPC_RecordChild0, // #1 = $src1
/*465532*/            OPC_RecordChild1, // #2 = $src2
/*465533*/            OPC_CheckChild1Type, MVT::v32i16,
/*465535*/            OPC_MoveParent,
/*465536*/            OPC_MoveChild2,
/*465537*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465540*/            OPC_MoveChild0,
/*465541*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465544*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465546*/            OPC_CheckType, MVT::v16i32,
/*465548*/            OPC_MoveParent,
/*465549*/            OPC_MoveParent,
/*465550*/            OPC_CheckType, MVT::v32i16,
/*465552*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465554*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (sra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAVWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*465563*/          /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SRL),// ->465598
/*465566*/            OPC_RecordChild0, // #1 = $src1
/*465567*/            OPC_RecordChild1, // #2 = $src2
/*465568*/            OPC_CheckChild1Type, MVT::v32i16,
/*465570*/            OPC_MoveParent,
/*465571*/            OPC_MoveChild2,
/*465572*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465575*/            OPC_MoveChild0,
/*465576*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465579*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465581*/            OPC_CheckType, MVT::v16i32,
/*465583*/            OPC_MoveParent,
/*465584*/            OPC_MoveParent,
/*465585*/            OPC_CheckType, MVT::v32i16,
/*465587*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465589*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (srl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRLVWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*465598*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSRAV),// ->465631
/*465601*/            OPC_RecordChild0, // #1 = $src1
/*465602*/            OPC_RecordChild1, // #2 = $src2
/*465603*/            OPC_MoveParent,
/*465604*/            OPC_MoveChild2,
/*465605*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465608*/            OPC_MoveChild0,
/*465609*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465612*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465614*/            OPC_CheckType, MVT::v16i32,
/*465616*/            OPC_MoveParent,
/*465617*/            OPC_MoveParent,
/*465618*/            OPC_CheckType, MVT::v32i16,
/*465620*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465622*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrav:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSRAVWZrrkz:{ *:[v32i16] } VK32:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*465631*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VPERMV),// ->465683
/*465634*/            OPC_RecordChild0, // #1 = $src1
/*465635*/            OPC_RecordChild1, // #2 = $src2
/*465636*/            OPC_MoveParent,
/*465637*/            OPC_MoveChild2,
/*465638*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465641*/            OPC_MoveChild0,
/*465642*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465645*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465647*/            OPC_SwitchType /*2 cases */, 15, MVT::v16i32,// ->465665
/*465650*/              OPC_MoveParent,
/*465651*/              OPC_MoveParent,
/*465652*/              OPC_CheckType, MVT::v32i16,
/*465654*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465656*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*465665*/            /*SwitchType*/ 15, MVT::v8i32,// ->465682
/*465667*/              OPC_MoveParent,
/*465668*/              OPC_MoveParent,
/*465669*/              OPC_CheckType, MVT::v32i8,
/*465671*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*465673*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermv:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPERMBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*465682*/            0, // EndSwitchType
/*465683*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::PSHUFB),// ->465716
/*465686*/            OPC_RecordChild0, // #1 = $src1
/*465687*/            OPC_RecordChild1, // #2 = $src2
/*465688*/            OPC_MoveParent,
/*465689*/            OPC_MoveChild2,
/*465690*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465693*/            OPC_MoveChild0,
/*465694*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465697*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465699*/            OPC_CheckType, MVT::v8i32,
/*465701*/            OPC_MoveParent,
/*465702*/            OPC_MoveParent,
/*465703*/            OPC_CheckType, MVT::v32i8,
/*465705*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*465707*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ256rrkz), 0,
                          MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86pshufb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSHUFBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*465716*/          /*SwitchOpcode*/ 28, TARGET_VAL(ISD::TRUNCATE),// ->465747
/*465719*/            OPC_RecordChild0, // #1 = $src1
/*465720*/            OPC_MoveParent,
/*465721*/            OPC_MoveChild2,
/*465722*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465725*/            OPC_MoveChild0,
/*465726*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465729*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465731*/            OPC_CheckType, MVT::v8i32,
/*465733*/            OPC_MoveParent,
/*465734*/            OPC_MoveParent,
/*465735*/            OPC_CheckType, MVT::v32i8,
/*465737*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465739*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZrrkz), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (trunc:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMOVWBZrrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*465747*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VTRUNCS),// ->465780
/*465750*/            OPC_RecordChild0, // #1 = $src1
/*465751*/            OPC_CheckChild0Type, MVT::v32i16,
/*465753*/            OPC_MoveParent,
/*465754*/            OPC_MoveChild2,
/*465755*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465758*/            OPC_MoveChild0,
/*465759*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465762*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465764*/            OPC_CheckType, MVT::v8i32,
/*465766*/            OPC_MoveParent,
/*465767*/            OPC_MoveParent,
/*465768*/            OPC_CheckType, MVT::v32i8,
/*465770*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465772*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZrrkz), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86vtruncs:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMOVSWBZrrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*465780*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VTRUNCUS),// ->465813
/*465783*/            OPC_RecordChild0, // #1 = $src1
/*465784*/            OPC_CheckChild0Type, MVT::v32i16,
/*465786*/            OPC_MoveParent,
/*465787*/            OPC_MoveChild2,
/*465788*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465791*/            OPC_MoveChild0,
/*465792*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465795*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465797*/            OPC_CheckType, MVT::v8i32,
/*465799*/            OPC_MoveParent,
/*465800*/            OPC_MoveParent,
/*465801*/            OPC_CheckType, MVT::v32i8,
/*465803*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465805*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZrrkz), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86vtruncus:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMOVUSWBZrrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*465813*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VZEXT),// ->465846
/*465816*/            OPC_RecordChild0, // #1 = $src
/*465817*/            OPC_CheckChild0Type, MVT::v32i8,
/*465819*/            OPC_MoveParent,
/*465820*/            OPC_MoveChild2,
/*465821*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465824*/            OPC_MoveChild0,
/*465825*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465828*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465830*/            OPC_CheckType, MVT::v16i32,
/*465832*/            OPC_MoveParent,
/*465833*/            OPC_MoveParent,
/*465834*/            OPC_CheckType, MVT::v32i16,
/*465836*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465838*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZrrkz), 0,
                          MVT::v32i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vzext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMOVZXBWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*465846*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VSEXT),// ->465879
/*465849*/            OPC_RecordChild0, // #1 = $src
/*465850*/            OPC_CheckChild0Type, MVT::v32i8,
/*465852*/            OPC_MoveParent,
/*465853*/            OPC_MoveChild2,
/*465854*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465857*/            OPC_MoveChild0,
/*465858*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465861*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465863*/            OPC_CheckType, MVT::v16i32,
/*465865*/            OPC_MoveParent,
/*465866*/            OPC_MoveParent,
/*465867*/            OPC_CheckType, MVT::v32i16,
/*465869*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465871*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZrrkz), 0,
                          MVT::v32i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPMOVSXBWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*465879*/          /*SwitchOpcode*/ 46, TARGET_VAL(ISD::ABS),// ->465928
/*465882*/            OPC_RecordChild0, // #1 = $src1
/*465883*/            OPC_MoveParent,
/*465884*/            OPC_MoveChild2,
/*465885*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465888*/            OPC_MoveChild0,
/*465889*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465892*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465894*/            OPC_SwitchType /*2 cases */, 14, MVT::v16i32,// ->465911
/*465897*/              OPC_MoveParent,
/*465898*/              OPC_MoveParent,
/*465899*/              OPC_CheckType, MVT::v32i16,
/*465901*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465903*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZrrkz), 0,
                            MVT::v32i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (abs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPABSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*465911*/            /*SwitchType*/ 14, MVT::v8i32,// ->465927
/*465913*/              OPC_MoveParent,
/*465914*/              OPC_MoveParent,
/*465915*/              OPC_CheckType, MVT::v32i8,
/*465917*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*465919*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ256rrkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (abs:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPABSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1)
/*465927*/            0, // EndSwitchType
/*465928*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::UNPCKL),// ->465980
/*465931*/            OPC_RecordChild0, // #1 = $src1
/*465932*/            OPC_RecordChild1, // #2 = $src2
/*465933*/            OPC_MoveParent,
/*465934*/            OPC_MoveChild2,
/*465935*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465938*/            OPC_MoveChild0,
/*465939*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465942*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465944*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->465962
/*465947*/              OPC_MoveParent,
/*465948*/              OPC_MoveParent,
/*465949*/              OPC_CheckType, MVT::v32i8,
/*465951*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*465953*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckl:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKLBWZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*465962*/            /*SwitchType*/ 15, MVT::v16i32,// ->465979
/*465964*/              OPC_MoveParent,
/*465965*/              OPC_MoveParent,
/*465966*/              OPC_CheckType, MVT::v32i16,
/*465968*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*465970*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKLWDZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*465979*/            0, // EndSwitchType
/*465980*/          /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::UNPCKH),// ->466032
/*465983*/            OPC_RecordChild0, // #1 = $src1
/*465984*/            OPC_RecordChild1, // #2 = $src2
/*465985*/            OPC_MoveParent,
/*465986*/            OPC_MoveChild2,
/*465987*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*465990*/            OPC_MoveChild0,
/*465991*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*465994*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*465996*/            OPC_SwitchType /*2 cases */, 15, MVT::v8i32,// ->466014
/*465999*/              OPC_MoveParent,
/*466000*/              OPC_MoveParent,
/*466001*/              OPC_CheckType, MVT::v32i8,
/*466003*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*466005*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckh:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKHBWZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*466014*/            /*SwitchType*/ 15, MVT::v16i32,// ->466031
/*466016*/              OPC_MoveParent,
/*466017*/              OPC_MoveParent,
/*466018*/              OPC_CheckType, MVT::v32i16,
/*466020*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466022*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckh:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPUNPCKHWDZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*466031*/            0, // EndSwitchType
/*466032*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHLDV),// ->466067
/*466035*/            OPC_RecordChild0, // #1 = $src1
/*466036*/            OPC_RecordChild1, // #2 = $src2
/*466037*/            OPC_RecordChild2, // #3 = $src3
/*466038*/            OPC_MoveParent,
/*466039*/            OPC_MoveChild2,
/*466040*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*466043*/            OPC_MoveChild0,
/*466044*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*466047*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*466049*/            OPC_CheckType, MVT::v16i32,
/*466051*/            OPC_MoveParent,
/*466052*/            OPC_MoveParent,
/*466053*/            OPC_CheckType, MVT::v32i16,
/*466055*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*466057*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZrkz), 0,
                          MVT::v32i16, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShldv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSHLDVWZrkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*466067*/          /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VSHRDV),// ->466102
/*466070*/            OPC_RecordChild0, // #1 = $src1
/*466071*/            OPC_RecordChild1, // #2 = $src2
/*466072*/            OPC_RecordChild2, // #3 = $src3
/*466073*/            OPC_MoveParent,
/*466074*/            OPC_MoveChild2,
/*466075*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*466078*/            OPC_MoveChild0,
/*466079*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*466082*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*466084*/            OPC_CheckType, MVT::v16i32,
/*466086*/            OPC_MoveParent,
/*466087*/            OPC_MoveParent,
/*466088*/            OPC_CheckType, MVT::v32i16,
/*466090*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*466092*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZrkz), 0,
                          MVT::v32i16, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrdv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VPSHRDVWZrkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*466102*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::COMPRESS),// ->466151
/*466105*/            OPC_RecordChild0, // #1 = $src1
/*466106*/            OPC_MoveParent,
/*466107*/            OPC_MoveChild2,
/*466108*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*466111*/            OPC_MoveChild0,
/*466112*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*466115*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*466117*/            OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->466134
/*466120*/              OPC_MoveParent,
/*466121*/              OPC_MoveParent,
/*466122*/              OPC_CheckType, MVT::v32i8,
/*466124*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*466126*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZ256rrkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86compress:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPCOMPRESSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1)
/*466134*/            /*SwitchType*/ 14, MVT::v16i32,// ->466150
/*466136*/              OPC_MoveParent,
/*466137*/              OPC_MoveParent,
/*466138*/              OPC_CheckType, MVT::v32i16,
/*466140*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*466142*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZrrkz), 0,
                            MVT::v32i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86compress:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPCOMPRESSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*466150*/            0, // EndSwitchType
/*466151*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::EXPAND),// ->466200
/*466154*/            OPC_RecordChild0, // #1 = $src1
/*466155*/            OPC_MoveParent,
/*466156*/            OPC_MoveChild2,
/*466157*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*466160*/            OPC_MoveChild0,
/*466161*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*466164*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*466166*/            OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->466183
/*466169*/              OPC_MoveParent,
/*466170*/              OPC_MoveParent,
/*466171*/              OPC_CheckType, MVT::v32i8,
/*466173*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*466175*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rrkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86expand:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPEXPANDBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1)
/*466183*/            /*SwitchType*/ 14, MVT::v16i32,// ->466199
/*466185*/              OPC_MoveParent,
/*466186*/              OPC_MoveParent,
/*466187*/              OPC_CheckType, MVT::v32i16,
/*466189*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*466191*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrrkz), 0,
                            MVT::v32i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86expand:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPEXPANDWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*466199*/            0, // EndSwitchType
/*466200*/          /*SwitchOpcode*/ 46, TARGET_VAL(ISD::CTPOP),// ->466249
/*466203*/            OPC_RecordChild0, // #1 = $src1
/*466204*/            OPC_MoveParent,
/*466205*/            OPC_MoveChild2,
/*466206*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*466209*/            OPC_MoveChild0,
/*466210*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*466213*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*466215*/            OPC_SwitchType /*2 cases */, 14, MVT::v8i32,// ->466232
/*466218*/              OPC_MoveParent,
/*466219*/              OPC_MoveParent,
/*466220*/              OPC_CheckType, MVT::v32i8,
/*466222*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*466224*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ256rrkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (ctpop:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPOPCNTBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1)
/*466232*/            /*SwitchType*/ 14, MVT::v16i32,// ->466248
/*466234*/              OPC_MoveParent,
/*466235*/              OPC_MoveParent,
/*466236*/              OPC_CheckType, MVT::v32i16,
/*466238*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*466240*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZrrkz), 0,
                            MVT::v32i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (ctpop:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                        // Dst: (VPOPCNTWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*466248*/            0, // EndSwitchType
/*466249*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::GF2P8MULB),// ->466282
/*466252*/            OPC_RecordChild0, // #1 = $src1
/*466253*/            OPC_RecordChild1, // #2 = $src2
/*466254*/            OPC_MoveParent,
/*466255*/            OPC_MoveChild2,
/*466256*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*466259*/            OPC_MoveChild0,
/*466260*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*466263*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*466265*/            OPC_CheckType, MVT::v8i32,
/*466267*/            OPC_MoveParent,
/*466268*/            OPC_MoveParent,
/*466269*/            OPC_CheckType, MVT::v32i8,
/*466271*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*466273*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ256rrkz), 0,
                          MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8mulb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 13
                      // Dst: (VGF2P8MULBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*466282*/          0, // EndSwitchOpcode
/*466283*/        /*Scope*/ 99, /*->466383*/
/*466284*/          OPC_RecordChild1, // #1 = $src
/*466285*/          OPC_MoveChild2,
/*466286*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*466289*/          OPC_MoveChild0,
/*466290*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*466293*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*466295*/          OPC_SwitchType /*2 cases */, 68, MVT::v8i32,// ->466366
/*466298*/            OPC_MoveParent,
/*466299*/            OPC_MoveParent,
/*466300*/            OPC_CheckType, MVT::v32i8,
/*466302*/            OPC_Scope, 10, /*->466314*/ // 2 children in Scope
/*466304*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*466306*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z256rrkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                        // Dst: (VMOVDQU8Z256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*466314*/            /*Scope*/ 50, /*->466365*/
/*466315*/              OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*466317*/              OPC_EmitInteger, MVT::i32, X86::VK64WMRegClassID,
/*466320*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*466328*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #4
/*466334*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*466337*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*466346*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU8Zrrkz), 0,
                            MVT::v64i8, 2/*#Ops*/, 3, 6,  // Results = #7
/*466354*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*466357*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v32i8, 2/*#Ops*/, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                        // Dst: (EXTRACT_SUBREG:{ *:[v32i8] } (VMOVDQU8Zrrkz:{ *:[v64i8] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32WM:{ *:[v32i1] }:$mask, VK64WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*466365*/            0, /*End of Scope*/
/*466366*/          /*SwitchType*/ 14, MVT::v16i32,// ->466382
/*466368*/            OPC_MoveParent,
/*466369*/            OPC_MoveParent,
/*466370*/            OPC_CheckType, MVT::v32i16,
/*466372*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466374*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Zrrkz), 0,
                          MVT::v32i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src, (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 10
                      // Dst: (VMOVDQU16Zrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*466382*/          0, // EndSwitchType
/*466383*/        /*Scope*/ 74|128,13/*1738*/, /*->468123*/
/*466385*/          OPC_MoveChild1,
/*466386*/          OPC_SwitchOpcode /*55 cases */, 25, TARGET_VAL(X86ISD::VSRLI),// ->466415
/*466390*/            OPC_RecordChild0, // #1 = $src1
/*466391*/            OPC_RecordChild1, // #2 = $src2
/*466392*/            OPC_MoveChild1,
/*466393*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*466396*/            OPC_MoveParent,
/*466397*/            OPC_MoveParent,
/*466398*/            OPC_RecordChild2, // #3 = $src0
/*466399*/            OPC_CheckType, MVT::v32i16,
/*466401*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466403*/            OPC_EmitConvertToTarget, 2,
/*466405*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZrik), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                      // Dst: (VPSRLWZrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*466415*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHLI),// ->466443
/*466418*/            OPC_RecordChild0, // #1 = $src1
/*466419*/            OPC_RecordChild1, // #2 = $src2
/*466420*/            OPC_MoveChild1,
/*466421*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*466424*/            OPC_MoveParent,
/*466425*/            OPC_MoveParent,
/*466426*/            OPC_RecordChild2, // #3 = $src0
/*466427*/            OPC_CheckType, MVT::v32i16,
/*466429*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466431*/            OPC_EmitConvertToTarget, 2,
/*466433*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZrik), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                      // Dst: (VPSLLWZrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*466443*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSRAI),// ->466471
/*466446*/            OPC_RecordChild0, // #1 = $src1
/*466447*/            OPC_RecordChild1, // #2 = $src2
/*466448*/            OPC_MoveChild1,
/*466449*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*466452*/            OPC_MoveParent,
/*466453*/            OPC_MoveParent,
/*466454*/            OPC_RecordChild2, // #3 = $src0
/*466455*/            OPC_CheckType, MVT::v32i16,
/*466457*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466459*/            OPC_EmitConvertToTarget, 2,
/*466461*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZrik), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrai:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                      // Dst: (VPSRAWZrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*466471*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::PSHUFHW),// ->466499
/*466474*/            OPC_RecordChild0, // #1 = $src1
/*466475*/            OPC_RecordChild1, // #2 = $src2
/*466476*/            OPC_MoveChild1,
/*466477*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*466480*/            OPC_MoveParent,
/*466481*/            OPC_MoveParent,
/*466482*/            OPC_RecordChild2, // #3 = $src0
/*466483*/            OPC_CheckType, MVT::v32i16,
/*466485*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466487*/            OPC_EmitConvertToTarget, 2,
/*466489*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZrik), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShufhw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFHWZrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*466499*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::PSHUFLW),// ->466527
/*466502*/            OPC_RecordChild0, // #1 = $src1
/*466503*/            OPC_RecordChild1, // #2 = $src2
/*466504*/            OPC_MoveChild1,
/*466505*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*466508*/            OPC_MoveParent,
/*466509*/            OPC_MoveParent,
/*466510*/            OPC_RecordChild2, // #3 = $src0
/*466511*/            OPC_CheckType, MVT::v32i16,
/*466513*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466515*/            OPC_EmitConvertToTarget, 2,
/*466517*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZrik), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShuflw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFLWZrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*466527*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::PALIGNR),// ->466557
/*466530*/            OPC_RecordChild0, // #1 = $src1
/*466531*/            OPC_RecordChild1, // #2 = $src2
/*466532*/            OPC_RecordChild2, // #3 = $src3
/*466533*/            OPC_MoveChild2,
/*466534*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*466537*/            OPC_MoveParent,
/*466538*/            OPC_MoveParent,
/*466539*/            OPC_RecordChild2, // #4 = $src0
/*466540*/            OPC_CheckType, MVT::v32i8,
/*466542*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*466544*/            OPC_EmitConvertToTarget, 3,
/*466546*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rrik), 0,
                          MVT::v32i8, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 9
                      // Dst: (VPALIGNRZ256rrik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*466557*/          /*SwitchOpcode*/ 29, TARGET_VAL(X86ISD::DBPSADBW),// ->466589
/*466560*/            OPC_RecordChild0, // #1 = $src1
/*466561*/            OPC_RecordChild1, // #2 = $src2
/*466562*/            OPC_RecordChild2, // #3 = $src3
/*466563*/            OPC_MoveChild2,
/*466564*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*466567*/            OPC_CheckType, MVT::i8,
/*466569*/            OPC_MoveParent,
/*466570*/            OPC_MoveParent,
/*466571*/            OPC_RecordChild2, // #4 = $src0
/*466572*/            OPC_CheckType, MVT::v32i16,
/*466574*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466576*/            OPC_EmitConvertToTarget, 3,
/*466578*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrrik), 0,
                          MVT::v32i16, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                      // Dst: (VDBPSADBWZrrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*466589*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VSHLD),// ->466619
/*466592*/            OPC_RecordChild0, // #1 = $src1
/*466593*/            OPC_RecordChild1, // #2 = $src2
/*466594*/            OPC_RecordChild2, // #3 = $src3
/*466595*/            OPC_MoveChild2,
/*466596*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*466599*/            OPC_MoveParent,
/*466600*/            OPC_MoveParent,
/*466601*/            OPC_RecordChild2, // #4 = $src0
/*466602*/            OPC_CheckType, MVT::v32i16,
/*466604*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*466606*/            OPC_EmitConvertToTarget, 3,
/*466608*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrrik), 0,
                          MVT::v32i16, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHLDWZrrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*466619*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VSHRD),// ->466649
/*466622*/            OPC_RecordChild0, // #1 = $src1
/*466623*/            OPC_RecordChild1, // #2 = $src2
/*466624*/            OPC_RecordChild2, // #3 = $src3
/*466625*/            OPC_MoveChild2,
/*466626*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*466629*/            OPC_MoveParent,
/*466630*/            OPC_MoveParent,
/*466631*/            OPC_RecordChild2, // #4 = $src0
/*466632*/            OPC_CheckType, MVT::v32i16,
/*466634*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*466636*/            OPC_EmitConvertToTarget, 3,
/*466638*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrrik), 0,
                          MVT::v32i16, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHRDWZrrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*466649*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->466679
/*466652*/            OPC_RecordChild0, // #1 = $src1
/*466653*/            OPC_RecordChild1, // #2 = $src2
/*466654*/            OPC_RecordChild2, // #3 = $src3
/*466655*/            OPC_MoveChild2,
/*466656*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*466659*/            OPC_MoveParent,
/*466660*/            OPC_MoveParent,
/*466661*/            OPC_RecordChild2, // #4 = $src0
/*466662*/            OPC_CheckType, MVT::v32i8,
/*466664*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*466666*/            OPC_EmitConvertToTarget, 3,
/*466668*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rrik), 0,
                          MVT::v32i8, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 9
                      // Dst: (VGF2P8AFFINEINVQBZ256rrik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*466679*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->466709
/*466682*/            OPC_RecordChild0, // #1 = $src1
/*466683*/            OPC_RecordChild1, // #2 = $src2
/*466684*/            OPC_RecordChild2, // #3 = $src3
/*466685*/            OPC_MoveChild2,
/*466686*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*466689*/            OPC_MoveParent,
/*466690*/            OPC_MoveParent,
/*466691*/            OPC_RecordChild2, // #4 = $src0
/*466692*/            OPC_CheckType, MVT::v32i8,
/*466694*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*466696*/            OPC_EmitConvertToTarget, 3,
/*466698*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rrik), 0,
                          MVT::v32i8, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 9
                      // Dst: (VGF2P8AFFINEQBZ256rrik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*466709*/          /*SwitchOpcode*/ 111, TARGET_VAL(X86ISD::VBROADCAST),// ->466823
/*466712*/            OPC_RecordChild0, // #1 = $src
/*466713*/            OPC_Scope, 17, /*->466732*/ // 4 children in Scope
/*466715*/              OPC_CheckChild0Type, MVT::v16i8,
/*466717*/              OPC_MoveParent,
/*466718*/              OPC_RecordChild2, // #2 = $src0
/*466719*/              OPC_CheckType, MVT::v32i8,
/*466721*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*466723*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256rk), 0,
                            MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i8] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTBZ256rk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*466732*/            /*Scope*/ 17, /*->466750*/
/*466733*/              OPC_CheckChild0Type, MVT::v8i16,
/*466735*/              OPC_MoveParent,
/*466736*/              OPC_RecordChild2, // #2 = $src0
/*466737*/              OPC_CheckType, MVT::v32i16,
/*466739*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466741*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZrk), 0,
                            MVT::v32i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i16] } VR128X:{ *:[v8i16] }:$src), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTWZrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*466750*/            /*Scope*/ 35, /*->466786*/
/*466751*/              OPC_CheckChild0Type, MVT::i8,
/*466753*/              OPC_MoveParent,
/*466754*/              OPC_RecordChild2, // #2 = $src0
/*466755*/              OPC_CheckType, MVT::v32i8,
/*466757*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*466759*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*466765*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*466768*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*466777*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZ256rk), 0,
                            MVT::v32i8, 3/*#Ops*/, 2, 0, 5, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i8] } GR8:{ *:[i8] }:$src), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTBrZ256rk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*466786*/            /*Scope*/ 35, /*->466822*/
/*466787*/              OPC_CheckChild0Type, MVT::i16,
/*466789*/              OPC_MoveParent,
/*466790*/              OPC_RecordChild2, // #2 = $src0
/*466791*/              OPC_CheckType, MVT::v32i16,
/*466793*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466795*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*466801*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*466804*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*466813*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZrk), 0,
                            MVT::v32i16, 3/*#Ops*/, 2, 0, 5, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i16] } GR16:{ *:[i16] }:$src), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPBROADCASTWrZrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*466822*/            0, /*End of Scope*/
/*466823*/          /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VPERMV3),// ->466898
/*466826*/            OPC_RecordChild0, // #1 = $src2
/*466827*/            OPC_RecordChild1, // #2 = $src1
/*466828*/            OPC_RecordChild2, // #3 = $src3
/*466829*/            OPC_MoveParent,
/*466830*/            OPC_Scope, 32, /*->466864*/ // 2 children in Scope
/*466832*/              OPC_CheckChild2Same, 2,
/*466834*/              OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->466849
/*466837*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466839*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2Wrrk), 0,
                              MVT::v32i16, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src3), VR512:{ *:[v32i16] }:$src1) - Complexity = 6
                          // Dst: (VPERMI2Wrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*466849*/              /*SwitchType*/ 12, MVT::v32i8,// ->466863
/*466851*/                OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*466853*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMI2B256rrk), 0,
                              MVT::v32i8, 4/*#Ops*/, 2, 0, 1, 3, 
                          // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src3), VR256X:{ *:[v32i8] }:$src1) - Complexity = 6
                          // Dst: (VPERMI2B256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src3)
/*466863*/              0, // EndSwitchType
/*466864*/            /*Scope*/ 32, /*->466897*/
/*466865*/              OPC_CheckChild2Same, 1,
/*466867*/              OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->466882
/*466870*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466872*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Wrrk), 0,
                              MVT::v32i16, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3), VR512:{ *:[v32i16] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2Wrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*466882*/              /*SwitchType*/ 12, MVT::v32i8,// ->466896
/*466884*/                OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*466886*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B256rrk), 0,
                              MVT::v32i8, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermt2:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src3), VR256X:{ *:[v32i8] }:$src1) - Complexity = 6
                          // Dst: (VPERMT2B256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src3)
/*466896*/              0, // EndSwitchType
/*466897*/            0, /*End of Scope*/
/*466898*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ADD),// ->466935
/*466901*/            OPC_RecordChild0, // #1 = $src1
/*466902*/            OPC_RecordChild1, // #2 = $src2
/*466903*/            OPC_MoveParent,
/*466904*/            OPC_RecordChild2, // #3 = $src0
/*466905*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->466920
/*466908*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466910*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPADDWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*466920*/            /*SwitchType*/ 12, MVT::v32i8,// ->466934
/*466922*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*466924*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (add:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPADDBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*466934*/            0, // EndSwitchType
/*466935*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SUB),// ->466972
/*466938*/            OPC_RecordChild0, // #1 = $src1
/*466939*/            OPC_RecordChild1, // #2 = $src2
/*466940*/            OPC_MoveParent,
/*466941*/            OPC_RecordChild2, // #3 = $src0
/*466942*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->466957
/*466945*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466947*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (sub:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPSUBWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*466957*/            /*SwitchType*/ 12, MVT::v32i8,// ->466971
/*466959*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*466961*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (sub:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPSUBBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*466971*/            0, // EndSwitchType
/*466972*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::ADDS),// ->467009
/*466975*/            OPC_RecordChild0, // #1 = $src1
/*466976*/            OPC_RecordChild1, // #2 = $src2
/*466977*/            OPC_MoveParent,
/*466978*/            OPC_RecordChild2, // #3 = $src0
/*466979*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->466994
/*466982*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*466984*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPADDSWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*466994*/            /*SwitchType*/ 12, MVT::v32i8,// ->467008
/*466996*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*466998*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86adds:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPADDSBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467008*/            0, // EndSwitchType
/*467009*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::SUBS),// ->467046
/*467012*/            OPC_RecordChild0, // #1 = $src1
/*467013*/            OPC_RecordChild1, // #2 = $src2
/*467014*/            OPC_MoveParent,
/*467015*/            OPC_RecordChild2, // #3 = $src0
/*467016*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->467031
/*467019*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467021*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86subs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPSUBSWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467031*/            /*SwitchType*/ 12, MVT::v32i8,// ->467045
/*467033*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467035*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86subs:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPSUBSBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467045*/            0, // EndSwitchType
/*467046*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::ADDUS),// ->467083
/*467049*/            OPC_RecordChild0, // #1 = $src1
/*467050*/            OPC_RecordChild1, // #2 = $src2
/*467051*/            OPC_MoveParent,
/*467052*/            OPC_RecordChild2, // #3 = $src0
/*467053*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->467068
/*467056*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467058*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPADDUSWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467068*/            /*SwitchType*/ 12, MVT::v32i8,// ->467082
/*467070*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467072*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86addus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPADDUSBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467082*/            0, // EndSwitchType
/*467083*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::SUBUS),// ->467120
/*467086*/            OPC_RecordChild0, // #1 = $src1
/*467087*/            OPC_RecordChild1, // #2 = $src2
/*467088*/            OPC_MoveParent,
/*467089*/            OPC_RecordChild2, // #3 = $src0
/*467090*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->467105
/*467093*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467095*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86subus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPSUBUSWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467105*/            /*SwitchType*/ 12, MVT::v32i8,// ->467119
/*467107*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467109*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86subus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPSUBUSBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467119*/            0, // EndSwitchType
/*467120*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MUL),// ->467141
/*467123*/            OPC_RecordChild0, // #1 = $src1
/*467124*/            OPC_RecordChild1, // #2 = $src2
/*467125*/            OPC_MoveParent,
/*467126*/            OPC_RecordChild2, // #3 = $src0
/*467127*/            OPC_CheckType, MVT::v32i16,
/*467129*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467131*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mul:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPMULLWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467141*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHS),// ->467162
/*467144*/            OPC_RecordChild0, // #1 = $src1
/*467145*/            OPC_RecordChild1, // #2 = $src2
/*467146*/            OPC_MoveParent,
/*467147*/            OPC_RecordChild2, // #3 = $src0
/*467148*/            OPC_CheckType, MVT::v32i16,
/*467150*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467152*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPMULHWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467162*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHU),// ->467183
/*467165*/            OPC_RecordChild0, // #1 = $src1
/*467166*/            OPC_RecordChild1, // #2 = $src2
/*467167*/            OPC_MoveParent,
/*467168*/            OPC_RecordChild2, // #3 = $src0
/*467169*/            OPC_CheckType, MVT::v32i16,
/*467171*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467173*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (mulhu:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPMULHUWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467183*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::MULHRS),// ->467204
/*467186*/            OPC_RecordChild0, // #1 = $src1
/*467187*/            OPC_RecordChild1, // #2 = $src2
/*467188*/            OPC_MoveParent,
/*467189*/            OPC_RecordChild2, // #3 = $src0
/*467190*/            OPC_CheckType, MVT::v32i16,
/*467192*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467194*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86mulhrs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPMULHRSWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467204*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::AVG),// ->467241
/*467207*/            OPC_RecordChild0, // #1 = $src1
/*467208*/            OPC_RecordChild1, // #2 = $src2
/*467209*/            OPC_MoveParent,
/*467210*/            OPC_RecordChild2, // #3 = $src0
/*467211*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->467226
/*467214*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467216*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPAVGWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467226*/            /*SwitchType*/ 12, MVT::v32i8,// ->467240
/*467228*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467230*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86avg:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPAVGBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467240*/            0, // EndSwitchType
/*467241*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::MULTISHIFT),// ->467264
/*467244*/            OPC_RecordChild0, // #1 = $src1
/*467245*/            OPC_CheckChild0Type, MVT::v32i8,
/*467247*/            OPC_RecordChild1, // #2 = $src2
/*467248*/            OPC_MoveParent,
/*467249*/            OPC_RecordChild2, // #3 = $src0
/*467250*/            OPC_CheckType, MVT::v32i8,
/*467252*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*467254*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ256rrk), 0,
                          MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86multishift:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                      // Dst: (VPMULTISHIFTQBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467264*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PACKSS),// ->467310
/*467267*/            OPC_RecordChild0, // #1 = $src1
/*467268*/            OPC_Scope, 19, /*->467289*/ // 2 children in Scope
/*467270*/              OPC_CheckChild0Type, MVT::v16i32,
/*467272*/              OPC_RecordChild1, // #2 = $src2
/*467273*/              OPC_MoveParent,
/*467274*/              OPC_RecordChild2, // #3 = $src0
/*467275*/              OPC_CheckType, MVT::v32i16,
/*467277*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467279*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packss:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPACKSSDWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*467289*/            /*Scope*/ 19, /*->467309*/
/*467290*/              OPC_CheckChild0Type, MVT::v16i16,
/*467292*/              OPC_RecordChild1, // #2 = $src2
/*467293*/              OPC_MoveParent,
/*467294*/              OPC_RecordChild2, // #3 = $src0
/*467295*/              OPC_CheckType, MVT::v32i8,
/*467297*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467299*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Packss:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPACKSSWBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*467309*/            0, /*End of Scope*/
/*467310*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PACKUS),// ->467356
/*467313*/            OPC_RecordChild0, // #1 = $src1
/*467314*/            OPC_Scope, 19, /*->467335*/ // 2 children in Scope
/*467316*/              OPC_CheckChild0Type, MVT::v16i32,
/*467318*/              OPC_RecordChild1, // #2 = $src2
/*467319*/              OPC_MoveParent,
/*467320*/              OPC_RecordChild2, // #3 = $src0
/*467321*/              OPC_CheckType, MVT::v32i16,
/*467323*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467325*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Packus:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPACKUSDWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*467335*/            /*Scope*/ 19, /*->467355*/
/*467336*/              OPC_CheckChild0Type, MVT::v16i16,
/*467338*/              OPC_RecordChild1, // #2 = $src2
/*467339*/              OPC_MoveParent,
/*467340*/              OPC_RecordChild2, // #3 = $src0
/*467341*/              OPC_CheckType, MVT::v32i8,
/*467343*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467345*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Packus:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPACKUSWBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*467355*/            0, /*End of Scope*/
/*467356*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDUBSW),// ->467377
/*467359*/            OPC_RecordChild0, // #1 = $src1
/*467360*/            OPC_RecordChild1, // #2 = $src2
/*467361*/            OPC_MoveParent,
/*467362*/            OPC_RecordChild2, // #3 = $src0
/*467363*/            OPC_CheckType, MVT::v32i16,
/*467365*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467367*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vpmaddubsw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPMADDUBSWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*467377*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMAX),// ->467414
/*467380*/            OPC_RecordChild0, // #1 = $src1
/*467381*/            OPC_RecordChild1, // #2 = $src2
/*467382*/            OPC_MoveParent,
/*467383*/            OPC_RecordChild2, // #3 = $src0
/*467384*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->467399
/*467387*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467389*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPMAXSBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467399*/            /*SwitchType*/ 12, MVT::v32i16,// ->467413
/*467401*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467403*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPMAXSWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467413*/            0, // EndSwitchType
/*467414*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMAX),// ->467451
/*467417*/            OPC_RecordChild0, // #1 = $src1
/*467418*/            OPC_RecordChild1, // #2 = $src2
/*467419*/            OPC_MoveParent,
/*467420*/            OPC_RecordChild2, // #3 = $src0
/*467421*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->467436
/*467424*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467426*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPMAXUBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467436*/            /*SwitchType*/ 12, MVT::v32i16,// ->467450
/*467438*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467440*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPMAXUWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467450*/            0, // EndSwitchType
/*467451*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMIN),// ->467488
/*467454*/            OPC_RecordChild0, // #1 = $src1
/*467455*/            OPC_RecordChild1, // #2 = $src2
/*467456*/            OPC_MoveParent,
/*467457*/            OPC_RecordChild2, // #3 = $src0
/*467458*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->467473
/*467461*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467463*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPMINSBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467473*/            /*SwitchType*/ 12, MVT::v32i16,// ->467487
/*467475*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467477*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (smin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPMINSWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467487*/            0, // EndSwitchType
/*467488*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMIN),// ->467525
/*467491*/            OPC_RecordChild0, // #1 = $src1
/*467492*/            OPC_RecordChild1, // #2 = $src2
/*467493*/            OPC_MoveParent,
/*467494*/            OPC_RecordChild2, // #3 = $src0
/*467495*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->467510
/*467498*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467500*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPMINUBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467510*/            /*SwitchType*/ 12, MVT::v32i16,// ->467524
/*467512*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467514*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (umin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPMINUWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467524*/            0, // EndSwitchType
/*467525*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHL),// ->467548
/*467528*/            OPC_RecordChild0, // #1 = $src1
/*467529*/            OPC_RecordChild1, // #2 = $src2
/*467530*/            OPC_CheckChild1Type, MVT::v8i16,
/*467532*/            OPC_MoveParent,
/*467533*/            OPC_RecordChild2, // #3 = $src0
/*467534*/            OPC_CheckType, MVT::v32i16,
/*467536*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467538*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPSLLWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*467548*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSRA),// ->467571
/*467551*/            OPC_RecordChild0, // #1 = $src1
/*467552*/            OPC_RecordChild1, // #2 = $src2
/*467553*/            OPC_CheckChild1Type, MVT::v8i16,
/*467555*/            OPC_MoveParent,
/*467556*/            OPC_RecordChild2, // #3 = $src0
/*467557*/            OPC_CheckType, MVT::v32i16,
/*467559*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467561*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPSRAWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*467571*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSRL),// ->467594
/*467574*/            OPC_RecordChild0, // #1 = $src1
/*467575*/            OPC_RecordChild1, // #2 = $src2
/*467576*/            OPC_CheckChild1Type, MVT::v8i16,
/*467578*/            OPC_MoveParent,
/*467579*/            OPC_RecordChild2, // #3 = $src0
/*467580*/            OPC_CheckType, MVT::v32i16,
/*467582*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467584*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPSRLWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*467594*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::SHL),// ->467617
/*467597*/            OPC_RecordChild0, // #1 = $src1
/*467598*/            OPC_RecordChild1, // #2 = $src2
/*467599*/            OPC_CheckChild1Type, MVT::v32i16,
/*467601*/            OPC_MoveParent,
/*467602*/            OPC_RecordChild2, // #3 = $src0
/*467603*/            OPC_CheckType, MVT::v32i16,
/*467605*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467607*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (shl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPSLLVWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467617*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::SRA),// ->467640
/*467620*/            OPC_RecordChild0, // #1 = $src1
/*467621*/            OPC_RecordChild1, // #2 = $src2
/*467622*/            OPC_CheckChild1Type, MVT::v32i16,
/*467624*/            OPC_MoveParent,
/*467625*/            OPC_RecordChild2, // #3 = $src0
/*467626*/            OPC_CheckType, MVT::v32i16,
/*467628*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467630*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (sra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPSRAVWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467640*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::SRL),// ->467663
/*467643*/            OPC_RecordChild0, // #1 = $src1
/*467644*/            OPC_RecordChild1, // #2 = $src2
/*467645*/            OPC_CheckChild1Type, MVT::v32i16,
/*467647*/            OPC_MoveParent,
/*467648*/            OPC_RecordChild2, // #3 = $src0
/*467649*/            OPC_CheckType, MVT::v32i16,
/*467651*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467653*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (srl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPSRLVWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467663*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VSRAV),// ->467684
/*467666*/            OPC_RecordChild0, // #1 = $src1
/*467667*/            OPC_RecordChild1, // #2 = $src2
/*467668*/            OPC_MoveParent,
/*467669*/            OPC_RecordChild2, // #3 = $src0
/*467670*/            OPC_CheckType, MVT::v32i16,
/*467672*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467674*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrav:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPSRAVWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467684*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMV),// ->467721
/*467687*/            OPC_RecordChild0, // #1 = $src1
/*467688*/            OPC_RecordChild1, // #2 = $src2
/*467689*/            OPC_MoveParent,
/*467690*/            OPC_RecordChild2, // #3 = $src0
/*467691*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->467706
/*467694*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467696*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPERMWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467706*/            /*SwitchType*/ 12, MVT::v32i8,// ->467720
/*467708*/              OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*467710*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VPermv:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPERMBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467720*/            0, // EndSwitchType
/*467721*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PSHUFB),// ->467742
/*467724*/            OPC_RecordChild0, // #1 = $src1
/*467725*/            OPC_RecordChild1, // #2 = $src2
/*467726*/            OPC_MoveParent,
/*467727*/            OPC_RecordChild2, // #3 = $src0
/*467728*/            OPC_CheckType, MVT::v32i8,
/*467730*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467732*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ256rrk), 0,
                          MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86pshufb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                      // Dst: (VPSHUFBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467742*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::TRUNCATE),// ->467761
/*467745*/            OPC_RecordChild0, // #1 = $src1
/*467746*/            OPC_MoveParent,
/*467747*/            OPC_RecordChild2, // #2 = $src0
/*467748*/            OPC_CheckType, MVT::v32i8,
/*467750*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467752*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZrrk), 0,
                          MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (trunc:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                      // Dst: (VPMOVWBZrrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*467761*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VTRUNCS),// ->467782
/*467764*/            OPC_RecordChild0, // #1 = $src1
/*467765*/            OPC_CheckChild0Type, MVT::v32i16,
/*467767*/            OPC_MoveParent,
/*467768*/            OPC_RecordChild2, // #2 = $src0
/*467769*/            OPC_CheckType, MVT::v32i8,
/*467771*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467773*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZrrk), 0,
                          MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86vtruncs:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                      // Dst: (VPMOVSWBZrrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*467782*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VTRUNCUS),// ->467803
/*467785*/            OPC_RecordChild0, // #1 = $src1
/*467786*/            OPC_CheckChild0Type, MVT::v32i16,
/*467788*/            OPC_MoveParent,
/*467789*/            OPC_RecordChild2, // #2 = $src0
/*467790*/            OPC_CheckType, MVT::v32i8,
/*467792*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467794*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZrrk), 0,
                          MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86vtruncus:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                      // Dst: (VPMOVUSWBZrrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*467803*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VZEXT),// ->467824
/*467806*/            OPC_RecordChild0, // #1 = $src
/*467807*/            OPC_CheckChild0Type, MVT::v32i8,
/*467809*/            OPC_MoveParent,
/*467810*/            OPC_RecordChild2, // #2 = $src0
/*467811*/            OPC_CheckType, MVT::v32i16,
/*467813*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467815*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZrrk), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vzext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPMOVZXBWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*467824*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VSEXT),// ->467845
/*467827*/            OPC_RecordChild0, // #1 = $src
/*467828*/            OPC_CheckChild0Type, MVT::v32i8,
/*467830*/            OPC_MoveParent,
/*467831*/            OPC_RecordChild2, // #2 = $src0
/*467832*/            OPC_CheckType, MVT::v32i16,
/*467834*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467836*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZrrk), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPMOVSXBWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*467845*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::ABS),// ->467879
/*467848*/            OPC_RecordChild0, // #1 = $src1
/*467849*/            OPC_MoveParent,
/*467850*/            OPC_RecordChild2, // #2 = $src0
/*467851*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i16,// ->467865
/*467854*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467856*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZrrk), 0,
                            MVT::v32i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (abs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPABSWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*467865*/            /*SwitchType*/ 11, MVT::v32i8,// ->467878
/*467867*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467869*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ256rrk), 0,
                            MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (abs:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPABSBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1)
/*467878*/            0, // EndSwitchType
/*467879*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->467916
/*467882*/            OPC_RecordChild0, // #1 = $src1
/*467883*/            OPC_RecordChild1, // #2 = $src2
/*467884*/            OPC_MoveParent,
/*467885*/            OPC_RecordChild2, // #3 = $src0
/*467886*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->467901
/*467889*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467891*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckl:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKLBWZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467901*/            /*SwitchType*/ 12, MVT::v32i16,// ->467915
/*467903*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467905*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKLWDZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467915*/            0, // EndSwitchType
/*467916*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->467953
/*467919*/            OPC_RecordChild0, // #1 = $src1
/*467920*/            OPC_RecordChild1, // #2 = $src2
/*467921*/            OPC_MoveParent,
/*467922*/            OPC_RecordChild2, // #3 = $src0
/*467923*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->467938
/*467926*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*467928*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckh:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKHBWZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*467938*/            /*SwitchType*/ 12, MVT::v32i16,// ->467952
/*467940*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*467942*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86Unpckh:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPUNPCKHWDZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*467952*/            0, // EndSwitchType
/*467953*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHLDV),// ->467976
/*467956*/            OPC_RecordChild0, // #1 = $src1
/*467957*/            OPC_RecordChild1, // #2 = $src2
/*467958*/            OPC_RecordChild2, // #3 = $src3
/*467959*/            OPC_MoveParent,
/*467960*/            OPC_CheckChild2Same, 1,
/*467962*/            OPC_CheckType, MVT::v32i16,
/*467964*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*467966*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShldv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3), VR512:{ *:[v32i16] }:$src1) - Complexity = 6
                      // Dst: (VPSHLDVWZrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*467976*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHRDV),// ->467999
/*467979*/            OPC_RecordChild0, // #1 = $src1
/*467980*/            OPC_RecordChild1, // #2 = $src2
/*467981*/            OPC_RecordChild2, // #3 = $src3
/*467982*/            OPC_MoveParent,
/*467983*/            OPC_CheckChild2Same, 1,
/*467985*/            OPC_CheckType, MVT::v32i16,
/*467987*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*467989*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrdv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3), VR512:{ *:[v32i16] }:$src1) - Complexity = 6
                      // Dst: (VPSHRDVWZrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*467999*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::COMPRESS),// ->468033
/*468002*/            OPC_RecordChild0, // #1 = $src1
/*468003*/            OPC_MoveParent,
/*468004*/            OPC_RecordChild2, // #2 = $src0
/*468005*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i8,// ->468019
/*468008*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*468010*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZ256rrk), 0,
                            MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86compress:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPCOMPRESSBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1)
/*468019*/            /*SwitchType*/ 11, MVT::v32i16,// ->468032
/*468021*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*468023*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZrrk), 0,
                            MVT::v32i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86compress:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPCOMPRESSWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*468032*/            0, // EndSwitchType
/*468033*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::EXPAND),// ->468067
/*468036*/            OPC_RecordChild0, // #1 = $src1
/*468037*/            OPC_MoveParent,
/*468038*/            OPC_RecordChild2, // #2 = $src0
/*468039*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i8,// ->468053
/*468042*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*468044*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rrk), 0,
                            MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86expand:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPEXPANDBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1)
/*468053*/            /*SwitchType*/ 11, MVT::v32i16,// ->468066
/*468055*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*468057*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrrk), 0,
                            MVT::v32i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86expand:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPEXPANDWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*468066*/            0, // EndSwitchType
/*468067*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::CTPOP),// ->468101
/*468070*/            OPC_RecordChild0, // #1 = $src1
/*468071*/            OPC_MoveParent,
/*468072*/            OPC_RecordChild2, // #2 = $src0
/*468073*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i8,// ->468087
/*468076*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*468078*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ256rrk), 0,
                            MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (ctpop:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                        // Dst: (VPOPCNTBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1)
/*468087*/            /*SwitchType*/ 11, MVT::v32i16,// ->468100
/*468089*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*468091*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZrrk), 0,
                            MVT::v32i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (ctpop:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                        // Dst: (VPOPCNTWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*468100*/            0, // EndSwitchType
/*468101*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::GF2P8MULB),// ->468122
/*468104*/            OPC_RecordChild0, // #1 = $src1
/*468105*/            OPC_RecordChild1, // #2 = $src2
/*468106*/            OPC_MoveParent,
/*468107*/            OPC_RecordChild2, // #3 = $src0
/*468108*/            OPC_CheckType, MVT::v32i8,
/*468110*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*468112*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ256rrk), 0,
                          MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8mulb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                      // Dst: (VGF2P8MULBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*468122*/          0, // EndSwitchOpcode
/*468123*/        /*Scope*/ 103, /*->468227*/
/*468124*/          OPC_RecordChild1, // #1 = $src1
/*468125*/          OPC_RecordChild2, // #2 = $src0
/*468126*/          OPC_SwitchType /*2 cases */, 84, MVT::v32i8,// ->468213
/*468129*/            OPC_Scope, 11, /*->468142*/ // 2 children in Scope
/*468131*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468133*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z256rrk), 0,
                            MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src0) - Complexity = 3
                        // Dst: (VMOVDQU8Z256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1)
/*468142*/            /*Scope*/ 69, /*->468212*/
/*468143*/              OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*468145*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*468151*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*468154*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*468163*/              OPC_EmitInteger, MVT::i32, X86::VK64WMRegClassID,
/*468166*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*468174*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #8
/*468180*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*468183*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*468192*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU8Zrrk), 0,
                            MVT::v64i8, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*468201*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*468204*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v32i8, 2/*#Ops*/, 11, 12, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src0) - Complexity = 3
                        // Dst: (EXTRACT_SUBREG:{ *:[v32i8] } (VMOVDQU8Zrrk:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src0, sub_ymm:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v64i1] } VK32WM:{ *:[v32i1] }:$mask, VK64WM:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*468212*/            0, /*End of Scope*/
/*468213*/          /*SwitchType*/ 11, MVT::v32i16,// ->468226
/*468215*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*468217*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Zrrk), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src0) - Complexity = 3
                      // Dst: (VMOVDQU16Zrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*468226*/          0, // EndSwitchType
/*468227*/        0, /*End of Scope*/
/*468228*/      /*Scope*/ 34, /*->468263*/
/*468229*/        OPC_CheckChild0Type, MVT::v16i8,
/*468231*/        OPC_RecordChild1, // #1 = $src1
/*468232*/        OPC_RecordChild2, // #2 = $src2
/*468233*/        OPC_CheckType, MVT::v16i8,
/*468235*/        OPC_Scope, 11, /*->468248*/ // 2 children in Scope
/*468237*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*468239*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDVBrr), 0,
                        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)
/*468248*/        /*Scope*/ 13, /*->468262*/
/*468249*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*468251*/          OPC_EmitCopyToReg, 0, X86::XMM0,
/*468254*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDVBrr0), 0|OPFL_GlueInput,
                        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)
/*468262*/        0, /*End of Scope*/
/*468263*/      /*Scope*/ 66, /*->468330*/
/*468264*/        OPC_CheckChild0Type, MVT::v4i32,
/*468266*/        OPC_RecordChild1, // #1 = $src1
/*468267*/        OPC_RecordChild2, // #2 = $src2
/*468268*/        OPC_SwitchType /*2 cases */, 28, MVT::v4i32,// ->468299
/*468271*/          OPC_Scope, 11, /*->468284*/ // 2 children in Scope
/*468273*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*468275*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSrr), 0,
                          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)
/*468284*/          /*Scope*/ 13, /*->468298*/
/*468285*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*468287*/            OPC_EmitCopyToReg, 0, X86::XMM0,
/*468290*/            OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPSrr0), 0|OPFL_GlueInput,
                          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)
/*468298*/          0, /*End of Scope*/
/*468299*/        /*SwitchType*/ 28, MVT::v4f32,// ->468329
/*468301*/          OPC_Scope, 11, /*->468314*/ // 2 children in Scope
/*468303*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*468305*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSrr), 0,
                          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)
/*468314*/          /*Scope*/ 13, /*->468328*/
/*468315*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*468317*/            OPC_EmitCopyToReg, 0, X86::XMM0,
/*468320*/            OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPSrr0), 0|OPFL_GlueInput,
                          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)
/*468328*/          0, /*End of Scope*/
/*468329*/        0, // EndSwitchType
/*468330*/      /*Scope*/ 66, /*->468397*/
/*468331*/        OPC_CheckChild0Type, MVT::v2i64,
/*468333*/        OPC_RecordChild1, // #1 = $src1
/*468334*/        OPC_RecordChild2, // #2 = $src2
/*468335*/        OPC_SwitchType /*2 cases */, 28, MVT::v2i64,// ->468366
/*468338*/          OPC_Scope, 11, /*->468351*/ // 2 children in Scope
/*468340*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*468342*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDrr), 0,
                          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)
/*468351*/          /*Scope*/ 13, /*->468365*/
/*468352*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*468354*/            OPC_EmitCopyToReg, 0, X86::XMM0,
/*468357*/            OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPDrr0), 0|OPFL_GlueInput,
                          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)
/*468365*/          0, /*End of Scope*/
/*468366*/        /*SwitchType*/ 28, MVT::v2f64,// ->468396
/*468368*/          OPC_Scope, 11, /*->468381*/ // 2 children in Scope
/*468370*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*468372*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDrr), 0,
                          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)
/*468381*/          /*Scope*/ 13, /*->468395*/
/*468382*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*468384*/            OPC_EmitCopyToReg, 0, X86::XMM0,
/*468387*/            OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPDrr0), 0|OPFL_GlueInput,
                          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)
/*468395*/          0, /*End of Scope*/
/*468396*/        0, // EndSwitchType
/*468397*/      /*Scope*/ 32, /*->468430*/
/*468398*/        OPC_CheckChild0Type, MVT::v8i32,
/*468400*/        OPC_RecordChild1, // #1 = $src1
/*468401*/        OPC_RecordChild2, // #2 = $src2
/*468402*/        OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->468416
/*468405*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*468407*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSYrr), 0,
                        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)
/*468416*/        /*SwitchType*/ 11, MVT::v8f32,// ->468429
/*468418*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*468420*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSYrr), 0,
                        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)
/*468429*/        0, // EndSwitchType
/*468430*/      /*Scope*/ 32, /*->468463*/
/*468431*/        OPC_CheckChild0Type, MVT::v4i64,
/*468433*/        OPC_RecordChild1, // #1 = $src1
/*468434*/        OPC_RecordChild2, // #2 = $src2
/*468435*/        OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->468449
/*468438*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*468440*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDYrr), 0,
                        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)
/*468449*/        /*SwitchType*/ 11, MVT::v4f64,// ->468462
/*468451*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*468453*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDYrr), 0,
                        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)
/*468462*/        0, // EndSwitchType
/*468463*/      /*Scope*/ 17, /*->468481*/
/*468464*/        OPC_CheckChild0Type, MVT::v32i8,
/*468466*/        OPC_RecordChild1, // #1 = $src1
/*468467*/        OPC_RecordChild2, // #2 = $src2
/*468468*/        OPC_CheckType, MVT::v32i8,
/*468470*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*468472*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDVBYrr), 0,
                      MVT::v32i8, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (vselect:{ *:[v32i8] } VR256:{ *:[v32i8] }:$mask, VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                  // Dst: (VPBLENDVBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src2, VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$mask)
/*468481*/      0, /*End of Scope*/
/*468482*/    0, /*End of Scope*/
/*468483*/  /*SwitchOpcode*/ 82|128,122/*15698*/, TARGET_VAL(ISD::SETCC),// ->484185
/*468487*/    OPC_Scope, 98|128,20/*2658*/, /*->471148*/ // 14 children in Scope
/*468490*/      OPC_MoveChild0,
/*468491*/      OPC_SwitchOpcode /*2 cases */, 42|128,10/*1322*/, TARGET_VAL(ISD::BITCAST),// ->469818
/*468496*/        OPC_MoveChild0,
/*468497*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*468500*/        OPC_Scope, 60|128,3/*444*/, /*->468947*/ // 4 children in Scope
/*468503*/          OPC_RecordChild0, // #0 = $src1
/*468504*/          OPC_MoveChild1,
/*468505*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*468508*/          OPC_RecordMemRef,
/*468509*/          OPC_RecordNode, // #1 = 'ld' chained node
/*468510*/          OPC_CheckFoldableChainNode,
/*468511*/          OPC_RecordChild1, // #2 = $src2
/*468512*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*468514*/          OPC_CheckPredicate, 9, // Predicate_load
/*468516*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*468518*/          OPC_MoveParent,
/*468519*/          OPC_SwitchType /*3 cases */, 11|128,1/*139*/, MVT::v8i64,// ->468662
/*468523*/            OPC_MoveParent,
/*468524*/            OPC_SwitchType /*2 cases */, 66, MVT::v32i16,// ->468593
/*468527*/              OPC_MoveParent,
/*468528*/              OPC_MoveChild1,
/*468529*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*468532*/              OPC_MoveChild0,
/*468533*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*468536*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*468538*/              OPC_CheckType, MVT::v16i32,
/*468540*/              OPC_MoveParent,
/*468541*/              OPC_MoveParent,
/*468542*/              OPC_MoveChild2,
/*468543*/              OPC_Scope, 23, /*->468568*/ // 2 children in Scope
/*468545*/                OPC_CheckCondCode, ISD::SETNE,
/*468547*/                OPC_MoveParent,
/*468548*/                OPC_CheckType, MVT::v32i1,
/*468550*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*468552*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468555*/                OPC_EmitMergeInputChains1_1,
/*468556*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMWZrm:{ *:[v32i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468568*/              /*Scope*/ 23, /*->468592*/
/*468569*/                OPC_CheckCondCode, ISD::SETEQ,
/*468571*/                OPC_MoveParent,
/*468572*/                OPC_CheckType, MVT::v32i1,
/*468574*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*468576*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468579*/                OPC_EmitMergeInputChains1_1,
/*468580*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMWZrm:{ *:[v32i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468592*/              0, /*End of Scope*/
/*468593*/            /*SwitchType*/ 66, MVT::v64i8,// ->468661
/*468595*/              OPC_MoveParent,
/*468596*/              OPC_MoveChild1,
/*468597*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*468600*/              OPC_MoveChild0,
/*468601*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*468604*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*468606*/              OPC_CheckType, MVT::v16i32,
/*468608*/              OPC_MoveParent,
/*468609*/              OPC_MoveParent,
/*468610*/              OPC_MoveChild2,
/*468611*/              OPC_Scope, 23, /*->468636*/ // 2 children in Scope
/*468613*/                OPC_CheckCondCode, ISD::SETNE,
/*468615*/                OPC_MoveParent,
/*468616*/                OPC_CheckType, MVT::v64i1,
/*468618*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*468620*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468623*/                OPC_EmitMergeInputChains1_1,
/*468624*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v64i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMBZrm:{ *:[v64i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468636*/              /*Scope*/ 23, /*->468660*/
/*468637*/                OPC_CheckCondCode, ISD::SETEQ,
/*468639*/                OPC_MoveParent,
/*468640*/                OPC_CheckType, MVT::v64i1,
/*468642*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*468644*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468647*/                OPC_EmitMergeInputChains1_1,
/*468648*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v64i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMBZrm:{ *:[v64i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468660*/              0, /*End of Scope*/
/*468661*/            0, // EndSwitchType
/*468662*/          /*SwitchType*/ 11|128,1/*139*/, MVT::v4i64,// ->468804
/*468665*/            OPC_MoveParent,
/*468666*/            OPC_SwitchType /*2 cases */, 66, MVT::v16i16,// ->468735
/*468669*/              OPC_MoveParent,
/*468670*/              OPC_MoveChild1,
/*468671*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*468674*/              OPC_MoveChild0,
/*468675*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*468678*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*468680*/              OPC_CheckType, MVT::v8i32,
/*468682*/              OPC_MoveParent,
/*468683*/              OPC_MoveParent,
/*468684*/              OPC_MoveChild2,
/*468685*/              OPC_Scope, 23, /*->468710*/ // 2 children in Scope
/*468687*/                OPC_CheckCondCode, ISD::SETNE,
/*468689*/                OPC_MoveParent,
/*468690*/                OPC_CheckType, MVT::v16i1,
/*468692*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468694*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468697*/                OPC_EmitMergeInputChains1_1,
/*468698*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMWZ256rm:{ *:[v16i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468710*/              /*Scope*/ 23, /*->468734*/
/*468711*/                OPC_CheckCondCode, ISD::SETEQ,
/*468713*/                OPC_MoveParent,
/*468714*/                OPC_CheckType, MVT::v16i1,
/*468716*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468718*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468721*/                OPC_EmitMergeInputChains1_1,
/*468722*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMWZ256rm:{ *:[v16i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468734*/              0, /*End of Scope*/
/*468735*/            /*SwitchType*/ 66, MVT::v32i8,// ->468803
/*468737*/              OPC_MoveParent,
/*468738*/              OPC_MoveChild1,
/*468739*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*468742*/              OPC_MoveChild0,
/*468743*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*468746*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*468748*/              OPC_CheckType, MVT::v8i32,
/*468750*/              OPC_MoveParent,
/*468751*/              OPC_MoveParent,
/*468752*/              OPC_MoveChild2,
/*468753*/              OPC_Scope, 23, /*->468778*/ // 2 children in Scope
/*468755*/                OPC_CheckCondCode, ISD::SETNE,
/*468757*/                OPC_MoveParent,
/*468758*/                OPC_CheckType, MVT::v32i1,
/*468760*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468762*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468765*/                OPC_EmitMergeInputChains1_1,
/*468766*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMBZ256rm:{ *:[v32i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468778*/              /*Scope*/ 23, /*->468802*/
/*468779*/                OPC_CheckCondCode, ISD::SETEQ,
/*468781*/                OPC_MoveParent,
/*468782*/                OPC_CheckType, MVT::v32i1,
/*468784*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468786*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468789*/                OPC_EmitMergeInputChains1_1,
/*468790*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMBZ256rm:{ *:[v32i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468802*/              0, /*End of Scope*/
/*468803*/            0, // EndSwitchType
/*468804*/          /*SwitchType*/ 11|128,1/*139*/, MVT::v2i64,// ->468946
/*468807*/            OPC_MoveParent,
/*468808*/            OPC_SwitchType /*2 cases */, 66, MVT::v8i16,// ->468877
/*468811*/              OPC_MoveParent,
/*468812*/              OPC_MoveChild1,
/*468813*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*468816*/              OPC_MoveChild0,
/*468817*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*468820*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*468822*/              OPC_CheckType, MVT::v4i32,
/*468824*/              OPC_MoveParent,
/*468825*/              OPC_MoveParent,
/*468826*/              OPC_MoveChild2,
/*468827*/              OPC_Scope, 23, /*->468852*/ // 2 children in Scope
/*468829*/                OPC_CheckCondCode, ISD::SETNE,
/*468831*/                OPC_MoveParent,
/*468832*/                OPC_CheckType, MVT::v8i1,
/*468834*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468836*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468839*/                OPC_EmitMergeInputChains1_1,
/*468840*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMWZ128rm:{ *:[v8i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468852*/              /*Scope*/ 23, /*->468876*/
/*468853*/                OPC_CheckCondCode, ISD::SETEQ,
/*468855*/                OPC_MoveParent,
/*468856*/                OPC_CheckType, MVT::v8i1,
/*468858*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468860*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468863*/                OPC_EmitMergeInputChains1_1,
/*468864*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMWZ128rm:{ *:[v8i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468876*/              0, /*End of Scope*/
/*468877*/            /*SwitchType*/ 66, MVT::v16i8,// ->468945
/*468879*/              OPC_MoveParent,
/*468880*/              OPC_MoveChild1,
/*468881*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*468884*/              OPC_MoveChild0,
/*468885*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*468888*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*468890*/              OPC_CheckType, MVT::v4i32,
/*468892*/              OPC_MoveParent,
/*468893*/              OPC_MoveParent,
/*468894*/              OPC_MoveChild2,
/*468895*/              OPC_Scope, 23, /*->468920*/ // 2 children in Scope
/*468897*/                OPC_CheckCondCode, ISD::SETNE,
/*468899*/                OPC_MoveParent,
/*468900*/                OPC_CheckType, MVT::v16i1,
/*468902*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468904*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468907*/                OPC_EmitMergeInputChains1_1,
/*468908*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMBZ128rm:{ *:[v16i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468920*/              /*Scope*/ 23, /*->468944*/
/*468921*/                OPC_CheckCondCode, ISD::SETEQ,
/*468923*/                OPC_MoveParent,
/*468924*/                OPC_CheckType, MVT::v16i1,
/*468926*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468928*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*468931*/                OPC_EmitMergeInputChains1_1,
/*468932*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMBZ128rm:{ *:[v16i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*468944*/              0, /*End of Scope*/
/*468945*/            0, // EndSwitchType
/*468946*/          0, // EndSwitchType
/*468947*/        /*Scope*/ 60|128,3/*444*/, /*->469393*/
/*468949*/          OPC_MoveChild0,
/*468950*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*468953*/          OPC_RecordMemRef,
/*468954*/          OPC_RecordNode, // #0 = 'ld' chained node
/*468955*/          OPC_CheckFoldableChainNode,
/*468956*/          OPC_RecordChild1, // #1 = $src2
/*468957*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*468959*/          OPC_CheckPredicate, 9, // Predicate_load
/*468961*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*468963*/          OPC_MoveParent,
/*468964*/          OPC_RecordChild1, // #2 = $src1
/*468965*/          OPC_SwitchType /*3 cases */, 11|128,1/*139*/, MVT::v8i64,// ->469108
/*468969*/            OPC_MoveParent,
/*468970*/            OPC_SwitchType /*2 cases */, 66, MVT::v32i16,// ->469039
/*468973*/              OPC_MoveParent,
/*468974*/              OPC_MoveChild1,
/*468975*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*468978*/              OPC_MoveChild0,
/*468979*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*468982*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*468984*/              OPC_CheckType, MVT::v16i32,
/*468986*/              OPC_MoveParent,
/*468987*/              OPC_MoveParent,
/*468988*/              OPC_MoveChild2,
/*468989*/              OPC_Scope, 23, /*->469014*/ // 2 children in Scope
/*468991*/                OPC_CheckCondCode, ISD::SETNE,
/*468993*/                OPC_MoveParent,
/*468994*/                OPC_CheckType, MVT::v32i1,
/*468996*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*468998*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469001*/                OPC_EmitMergeInputChains1_0,
/*469002*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMWZrm:{ *:[v32i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469014*/              /*Scope*/ 23, /*->469038*/
/*469015*/                OPC_CheckCondCode, ISD::SETEQ,
/*469017*/                OPC_MoveParent,
/*469018*/                OPC_CheckType, MVT::v32i1,
/*469020*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*469022*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469025*/                OPC_EmitMergeInputChains1_0,
/*469026*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMWZrm:{ *:[v32i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469038*/              0, /*End of Scope*/
/*469039*/            /*SwitchType*/ 66, MVT::v64i8,// ->469107
/*469041*/              OPC_MoveParent,
/*469042*/              OPC_MoveChild1,
/*469043*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*469046*/              OPC_MoveChild0,
/*469047*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469050*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469052*/              OPC_CheckType, MVT::v16i32,
/*469054*/              OPC_MoveParent,
/*469055*/              OPC_MoveParent,
/*469056*/              OPC_MoveChild2,
/*469057*/              OPC_Scope, 23, /*->469082*/ // 2 children in Scope
/*469059*/                OPC_CheckCondCode, ISD::SETNE,
/*469061*/                OPC_MoveParent,
/*469062*/                OPC_CheckType, MVT::v64i1,
/*469064*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*469066*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469069*/                OPC_EmitMergeInputChains1_0,
/*469070*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v64i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMBZrm:{ *:[v64i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469082*/              /*Scope*/ 23, /*->469106*/
/*469083*/                OPC_CheckCondCode, ISD::SETEQ,
/*469085*/                OPC_MoveParent,
/*469086*/                OPC_CheckType, MVT::v64i1,
/*469088*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*469090*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469093*/                OPC_EmitMergeInputChains1_0,
/*469094*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v64i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMBZrm:{ *:[v64i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469106*/              0, /*End of Scope*/
/*469107*/            0, // EndSwitchType
/*469108*/          /*SwitchType*/ 11|128,1/*139*/, MVT::v4i64,// ->469250
/*469111*/            OPC_MoveParent,
/*469112*/            OPC_SwitchType /*2 cases */, 66, MVT::v16i16,// ->469181
/*469115*/              OPC_MoveParent,
/*469116*/              OPC_MoveChild1,
/*469117*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*469120*/              OPC_MoveChild0,
/*469121*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469124*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469126*/              OPC_CheckType, MVT::v8i32,
/*469128*/              OPC_MoveParent,
/*469129*/              OPC_MoveParent,
/*469130*/              OPC_MoveChild2,
/*469131*/              OPC_Scope, 23, /*->469156*/ // 2 children in Scope
/*469133*/                OPC_CheckCondCode, ISD::SETNE,
/*469135*/                OPC_MoveParent,
/*469136*/                OPC_CheckType, MVT::v16i1,
/*469138*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*469140*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469143*/                OPC_EmitMergeInputChains1_0,
/*469144*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMWZ256rm:{ *:[v16i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469156*/              /*Scope*/ 23, /*->469180*/
/*469157*/                OPC_CheckCondCode, ISD::SETEQ,
/*469159*/                OPC_MoveParent,
/*469160*/                OPC_CheckType, MVT::v16i1,
/*469162*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*469164*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469167*/                OPC_EmitMergeInputChains1_0,
/*469168*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMWZ256rm:{ *:[v16i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469180*/              0, /*End of Scope*/
/*469181*/            /*SwitchType*/ 66, MVT::v32i8,// ->469249
/*469183*/              OPC_MoveParent,
/*469184*/              OPC_MoveChild1,
/*469185*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*469188*/              OPC_MoveChild0,
/*469189*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469192*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469194*/              OPC_CheckType, MVT::v8i32,
/*469196*/              OPC_MoveParent,
/*469197*/              OPC_MoveParent,
/*469198*/              OPC_MoveChild2,
/*469199*/              OPC_Scope, 23, /*->469224*/ // 2 children in Scope
/*469201*/                OPC_CheckCondCode, ISD::SETNE,
/*469203*/                OPC_MoveParent,
/*469204*/                OPC_CheckType, MVT::v32i1,
/*469206*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*469208*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469211*/                OPC_EmitMergeInputChains1_0,
/*469212*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMBZ256rm:{ *:[v32i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469224*/              /*Scope*/ 23, /*->469248*/
/*469225*/                OPC_CheckCondCode, ISD::SETEQ,
/*469227*/                OPC_MoveParent,
/*469228*/                OPC_CheckType, MVT::v32i1,
/*469230*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*469232*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469235*/                OPC_EmitMergeInputChains1_0,
/*469236*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMBZ256rm:{ *:[v32i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469248*/              0, /*End of Scope*/
/*469249*/            0, // EndSwitchType
/*469250*/          /*SwitchType*/ 11|128,1/*139*/, MVT::v2i64,// ->469392
/*469253*/            OPC_MoveParent,
/*469254*/            OPC_SwitchType /*2 cases */, 66, MVT::v8i16,// ->469323
/*469257*/              OPC_MoveParent,
/*469258*/              OPC_MoveChild1,
/*469259*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*469262*/              OPC_MoveChild0,
/*469263*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469266*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469268*/              OPC_CheckType, MVT::v4i32,
/*469270*/              OPC_MoveParent,
/*469271*/              OPC_MoveParent,
/*469272*/              OPC_MoveChild2,
/*469273*/              OPC_Scope, 23, /*->469298*/ // 2 children in Scope
/*469275*/                OPC_CheckCondCode, ISD::SETNE,
/*469277*/                OPC_MoveParent,
/*469278*/                OPC_CheckType, MVT::v8i1,
/*469280*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*469282*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469285*/                OPC_EmitMergeInputChains1_0,
/*469286*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMWZ128rm:{ *:[v8i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469298*/              /*Scope*/ 23, /*->469322*/
/*469299*/                OPC_CheckCondCode, ISD::SETEQ,
/*469301*/                OPC_MoveParent,
/*469302*/                OPC_CheckType, MVT::v8i1,
/*469304*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*469306*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469309*/                OPC_EmitMergeInputChains1_0,
/*469310*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMWZ128rm:{ *:[v8i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469322*/              0, /*End of Scope*/
/*469323*/            /*SwitchType*/ 66, MVT::v16i8,// ->469391
/*469325*/              OPC_MoveParent,
/*469326*/              OPC_MoveChild1,
/*469327*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*469330*/              OPC_MoveChild0,
/*469331*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469334*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469336*/              OPC_CheckType, MVT::v4i32,
/*469338*/              OPC_MoveParent,
/*469339*/              OPC_MoveParent,
/*469340*/              OPC_MoveChild2,
/*469341*/              OPC_Scope, 23, /*->469366*/ // 2 children in Scope
/*469343*/                OPC_CheckCondCode, ISD::SETNE,
/*469345*/                OPC_MoveParent,
/*469346*/                OPC_CheckType, MVT::v16i1,
/*469348*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*469350*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469353*/                OPC_EmitMergeInputChains1_0,
/*469354*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTMBZ128rm:{ *:[v16i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469366*/              /*Scope*/ 23, /*->469390*/
/*469367*/                OPC_CheckCondCode, ISD::SETEQ,
/*469369*/                OPC_MoveParent,
/*469370*/                OPC_CheckType, MVT::v16i1,
/*469372*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*469374*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469377*/                OPC_EmitMergeInputChains1_0,
/*469378*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                          // Dst: (VPTESTNMBZ128rm:{ *:[v16i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469390*/              0, /*End of Scope*/
/*469391*/            0, // EndSwitchType
/*469392*/          0, // EndSwitchType
/*469393*/        /*Scope*/ 82|128,1/*210*/, /*->469605*/
/*469395*/          OPC_RecordChild0, // #0 = $src1
/*469396*/          OPC_MoveChild1,
/*469397*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*469400*/          OPC_RecordMemRef,
/*469401*/          OPC_RecordNode, // #1 = 'ld' chained node
/*469402*/          OPC_CheckFoldableChainNode,
/*469403*/          OPC_RecordChild1, // #2 = $src2
/*469404*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*469406*/          OPC_CheckPredicate, 9, // Predicate_load
/*469408*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*469410*/          OPC_MoveParent,
/*469411*/          OPC_SwitchType /*3 cases */, 62, MVT::v8i64,// ->469476
/*469414*/            OPC_MoveParent,
/*469415*/            OPC_CheckType, MVT::v16i32,
/*469417*/            OPC_MoveParent,
/*469418*/            OPC_MoveChild1,
/*469419*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469422*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469424*/            OPC_MoveParent,
/*469425*/            OPC_MoveChild2,
/*469426*/            OPC_Scope, 23, /*->469451*/ // 2 children in Scope
/*469428*/              OPC_CheckCondCode, ISD::SETNE,
/*469430*/              OPC_MoveParent,
/*469431*/              OPC_CheckType, MVT::v16i1,
/*469433*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*469435*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469438*/              OPC_EmitMergeInputChains1_1,
/*469439*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTMDZrm:{ *:[v16i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469451*/            /*Scope*/ 23, /*->469475*/
/*469452*/              OPC_CheckCondCode, ISD::SETEQ,
/*469454*/              OPC_MoveParent,
/*469455*/              OPC_CheckType, MVT::v16i1,
/*469457*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*469459*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469462*/              OPC_EmitMergeInputChains1_1,
/*469463*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTNMDZrm:{ *:[v16i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469475*/            0, /*End of Scope*/
/*469476*/          /*SwitchType*/ 62, MVT::v4i64,// ->469540
/*469478*/            OPC_MoveParent,
/*469479*/            OPC_CheckType, MVT::v8i32,
/*469481*/            OPC_MoveParent,
/*469482*/            OPC_MoveChild1,
/*469483*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469486*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469488*/            OPC_MoveParent,
/*469489*/            OPC_MoveChild2,
/*469490*/            OPC_Scope, 23, /*->469515*/ // 2 children in Scope
/*469492*/              OPC_CheckCondCode, ISD::SETNE,
/*469494*/              OPC_MoveParent,
/*469495*/              OPC_CheckType, MVT::v8i1,
/*469497*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469499*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469502*/              OPC_EmitMergeInputChains1_1,
/*469503*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTMDZ256rm:{ *:[v8i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469515*/            /*Scope*/ 23, /*->469539*/
/*469516*/              OPC_CheckCondCode, ISD::SETEQ,
/*469518*/              OPC_MoveParent,
/*469519*/              OPC_CheckType, MVT::v8i1,
/*469521*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469523*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469526*/              OPC_EmitMergeInputChains1_1,
/*469527*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTNMDZ256rm:{ *:[v8i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469539*/            0, /*End of Scope*/
/*469540*/          /*SwitchType*/ 62, MVT::v2i64,// ->469604
/*469542*/            OPC_MoveParent,
/*469543*/            OPC_CheckType, MVT::v4i32,
/*469545*/            OPC_MoveParent,
/*469546*/            OPC_MoveChild1,
/*469547*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469550*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469552*/            OPC_MoveParent,
/*469553*/            OPC_MoveChild2,
/*469554*/            OPC_Scope, 23, /*->469579*/ // 2 children in Scope
/*469556*/              OPC_CheckCondCode, ISD::SETNE,
/*469558*/              OPC_MoveParent,
/*469559*/              OPC_CheckType, MVT::v4i1,
/*469561*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469563*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469566*/              OPC_EmitMergeInputChains1_1,
/*469567*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTMDZ128rm:{ *:[v4i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469579*/            /*Scope*/ 23, /*->469603*/
/*469580*/              OPC_CheckCondCode, ISD::SETEQ,
/*469582*/              OPC_MoveParent,
/*469583*/              OPC_CheckType, MVT::v4i1,
/*469585*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469587*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469590*/              OPC_EmitMergeInputChains1_1,
/*469591*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTNMDZ128rm:{ *:[v4i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469603*/            0, /*End of Scope*/
/*469604*/          0, // EndSwitchType
/*469605*/        /*Scope*/ 82|128,1/*210*/, /*->469817*/
/*469607*/          OPC_MoveChild0,
/*469608*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*469611*/          OPC_RecordMemRef,
/*469612*/          OPC_RecordNode, // #0 = 'ld' chained node
/*469613*/          OPC_CheckFoldableChainNode,
/*469614*/          OPC_RecordChild1, // #1 = $src2
/*469615*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*469617*/          OPC_CheckPredicate, 9, // Predicate_load
/*469619*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*469621*/          OPC_MoveParent,
/*469622*/          OPC_RecordChild1, // #2 = $src1
/*469623*/          OPC_SwitchType /*3 cases */, 62, MVT::v8i64,// ->469688
/*469626*/            OPC_MoveParent,
/*469627*/            OPC_CheckType, MVT::v16i32,
/*469629*/            OPC_MoveParent,
/*469630*/            OPC_MoveChild1,
/*469631*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469634*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469636*/            OPC_MoveParent,
/*469637*/            OPC_MoveChild2,
/*469638*/            OPC_Scope, 23, /*->469663*/ // 2 children in Scope
/*469640*/              OPC_CheckCondCode, ISD::SETNE,
/*469642*/              OPC_MoveParent,
/*469643*/              OPC_CheckType, MVT::v16i1,
/*469645*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*469647*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469650*/              OPC_EmitMergeInputChains1_0,
/*469651*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTMDZrm:{ *:[v16i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469663*/            /*Scope*/ 23, /*->469687*/
/*469664*/              OPC_CheckCondCode, ISD::SETEQ,
/*469666*/              OPC_MoveParent,
/*469667*/              OPC_CheckType, MVT::v16i1,
/*469669*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*469671*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469674*/              OPC_EmitMergeInputChains1_0,
/*469675*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTNMDZrm:{ *:[v16i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469687*/            0, /*End of Scope*/
/*469688*/          /*SwitchType*/ 62, MVT::v4i64,// ->469752
/*469690*/            OPC_MoveParent,
/*469691*/            OPC_CheckType, MVT::v8i32,
/*469693*/            OPC_MoveParent,
/*469694*/            OPC_MoveChild1,
/*469695*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469698*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469700*/            OPC_MoveParent,
/*469701*/            OPC_MoveChild2,
/*469702*/            OPC_Scope, 23, /*->469727*/ // 2 children in Scope
/*469704*/              OPC_CheckCondCode, ISD::SETNE,
/*469706*/              OPC_MoveParent,
/*469707*/              OPC_CheckType, MVT::v8i1,
/*469709*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469711*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469714*/              OPC_EmitMergeInputChains1_0,
/*469715*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTMDZ256rm:{ *:[v8i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469727*/            /*Scope*/ 23, /*->469751*/
/*469728*/              OPC_CheckCondCode, ISD::SETEQ,
/*469730*/              OPC_MoveParent,
/*469731*/              OPC_CheckType, MVT::v8i1,
/*469733*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469735*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469738*/              OPC_EmitMergeInputChains1_0,
/*469739*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTNMDZ256rm:{ *:[v8i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469751*/            0, /*End of Scope*/
/*469752*/          /*SwitchType*/ 62, MVT::v2i64,// ->469816
/*469754*/            OPC_MoveParent,
/*469755*/            OPC_CheckType, MVT::v4i32,
/*469757*/            OPC_MoveParent,
/*469758*/            OPC_MoveChild1,
/*469759*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469762*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469764*/            OPC_MoveParent,
/*469765*/            OPC_MoveChild2,
/*469766*/            OPC_Scope, 23, /*->469791*/ // 2 children in Scope
/*469768*/              OPC_CheckCondCode, ISD::SETNE,
/*469770*/              OPC_MoveParent,
/*469771*/              OPC_CheckType, MVT::v4i1,
/*469773*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469775*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469778*/              OPC_EmitMergeInputChains1_0,
/*469779*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTMDZ128rm:{ *:[v4i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469791*/            /*Scope*/ 23, /*->469815*/
/*469792*/              OPC_CheckCondCode, ISD::SETEQ,
/*469794*/              OPC_MoveParent,
/*469795*/              OPC_CheckType, MVT::v4i1,
/*469797*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469799*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469802*/              OPC_EmitMergeInputChains1_0,
/*469803*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                        // Dst: (VPTESTNMDZ128rm:{ *:[v4i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469815*/            0, /*End of Scope*/
/*469816*/          0, // EndSwitchType
/*469817*/        0, /*End of Scope*/
/*469818*/      /*SwitchOpcode*/ 45|128,10/*1325*/, TARGET_VAL(ISD::AND),// ->471147
/*469822*/        OPC_Scope, 99|128,1/*227*/, /*->470052*/ // 4 children in Scope
/*469825*/          OPC_RecordChild0, // #0 = $src1
/*469826*/          OPC_MoveChild1,
/*469827*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*469830*/          OPC_MoveChild0,
/*469831*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*469834*/          OPC_RecordMemRef,
/*469835*/          OPC_RecordNode, // #1 = 'ld' chained node
/*469836*/          OPC_CheckFoldableChainNode,
/*469837*/          OPC_RecordChild1, // #2 = $src2
/*469838*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*469840*/          OPC_CheckPredicate, 9, // Predicate_load
/*469842*/          OPC_CheckType, MVT::i64,
/*469844*/          OPC_MoveParent,
/*469845*/          OPC_MoveParent,
/*469846*/          OPC_SwitchType /*3 cases */, 66, MVT::v8i64,// ->469915
/*469849*/            OPC_MoveParent,
/*469850*/            OPC_MoveChild1,
/*469851*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*469854*/            OPC_MoveChild0,
/*469855*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469858*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469860*/            OPC_CheckType, MVT::v16i32,
/*469862*/            OPC_MoveParent,
/*469863*/            OPC_MoveParent,
/*469864*/            OPC_MoveChild2,
/*469865*/            OPC_Scope, 23, /*->469890*/ // 2 children in Scope
/*469867*/              OPC_CheckCondCode, ISD::SETNE,
/*469869*/              OPC_MoveParent,
/*469870*/              OPC_CheckType, MVT::v8i1,
/*469872*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*469874*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469877*/              OPC_EmitMergeInputChains1_1,
/*469878*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTMQZrmb:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469890*/            /*Scope*/ 23, /*->469914*/
/*469891*/              OPC_CheckCondCode, ISD::SETEQ,
/*469893*/              OPC_MoveParent,
/*469894*/              OPC_CheckType, MVT::v8i1,
/*469896*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*469898*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469901*/              OPC_EmitMergeInputChains1_1,
/*469902*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTNMQZrmb:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469914*/            0, /*End of Scope*/
/*469915*/          /*SwitchType*/ 66, MVT::v4i64,// ->469983
/*469917*/            OPC_MoveParent,
/*469918*/            OPC_MoveChild1,
/*469919*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*469922*/            OPC_MoveChild0,
/*469923*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469926*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469928*/            OPC_CheckType, MVT::v8i32,
/*469930*/            OPC_MoveParent,
/*469931*/            OPC_MoveParent,
/*469932*/            OPC_MoveChild2,
/*469933*/            OPC_Scope, 23, /*->469958*/ // 2 children in Scope
/*469935*/              OPC_CheckCondCode, ISD::SETNE,
/*469937*/              OPC_MoveParent,
/*469938*/              OPC_CheckType, MVT::v4i1,
/*469940*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469942*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469945*/              OPC_EmitMergeInputChains1_1,
/*469946*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTMQZ256rmb:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469958*/            /*Scope*/ 23, /*->469982*/
/*469959*/              OPC_CheckCondCode, ISD::SETEQ,
/*469961*/              OPC_MoveParent,
/*469962*/              OPC_CheckType, MVT::v4i1,
/*469964*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469966*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*469969*/              OPC_EmitMergeInputChains1_1,
/*469970*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTNMQZ256rmb:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*469982*/            0, /*End of Scope*/
/*469983*/          /*SwitchType*/ 66, MVT::v2i64,// ->470051
/*469985*/            OPC_MoveParent,
/*469986*/            OPC_MoveChild1,
/*469987*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*469990*/            OPC_MoveChild0,
/*469991*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*469994*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*469996*/            OPC_CheckType, MVT::v4i32,
/*469998*/            OPC_MoveParent,
/*469999*/            OPC_MoveParent,
/*470000*/            OPC_MoveChild2,
/*470001*/            OPC_Scope, 23, /*->470026*/ // 2 children in Scope
/*470003*/              OPC_CheckCondCode, ISD::SETNE,
/*470005*/              OPC_MoveParent,
/*470006*/              OPC_CheckType, MVT::v2i1,
/*470008*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470010*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470013*/              OPC_EmitMergeInputChains1_1,
/*470014*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTMQZ128rmb:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470026*/            /*Scope*/ 23, /*->470050*/
/*470027*/              OPC_CheckCondCode, ISD::SETEQ,
/*470029*/              OPC_MoveParent,
/*470030*/              OPC_CheckType, MVT::v2i1,
/*470032*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470034*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470037*/              OPC_EmitMergeInputChains1_1,
/*470038*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTNMQZ128rmb:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470050*/            0, /*End of Scope*/
/*470051*/          0, // EndSwitchType
/*470052*/        /*Scope*/ 99|128,1/*227*/, /*->470281*/
/*470054*/          OPC_MoveChild0,
/*470055*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*470058*/          OPC_MoveChild0,
/*470059*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470062*/          OPC_RecordMemRef,
/*470063*/          OPC_RecordNode, // #0 = 'ld' chained node
/*470064*/          OPC_CheckFoldableChainNode,
/*470065*/          OPC_RecordChild1, // #1 = $src2
/*470066*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470068*/          OPC_CheckPredicate, 9, // Predicate_load
/*470070*/          OPC_CheckType, MVT::i64,
/*470072*/          OPC_MoveParent,
/*470073*/          OPC_MoveParent,
/*470074*/          OPC_RecordChild1, // #2 = $src1
/*470075*/          OPC_SwitchType /*3 cases */, 66, MVT::v8i64,// ->470144
/*470078*/            OPC_MoveParent,
/*470079*/            OPC_MoveChild1,
/*470080*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*470083*/            OPC_MoveChild0,
/*470084*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470087*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470089*/            OPC_CheckType, MVT::v16i32,
/*470091*/            OPC_MoveParent,
/*470092*/            OPC_MoveParent,
/*470093*/            OPC_MoveChild2,
/*470094*/            OPC_Scope, 23, /*->470119*/ // 2 children in Scope
/*470096*/              OPC_CheckCondCode, ISD::SETNE,
/*470098*/              OPC_MoveParent,
/*470099*/              OPC_CheckType, MVT::v8i1,
/*470101*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*470103*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470106*/              OPC_EmitMergeInputChains1_0,
/*470107*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTMQZrmb:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470119*/            /*Scope*/ 23, /*->470143*/
/*470120*/              OPC_CheckCondCode, ISD::SETEQ,
/*470122*/              OPC_MoveParent,
/*470123*/              OPC_CheckType, MVT::v8i1,
/*470125*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*470127*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470130*/              OPC_EmitMergeInputChains1_0,
/*470131*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTNMQZrmb:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470143*/            0, /*End of Scope*/
/*470144*/          /*SwitchType*/ 66, MVT::v4i64,// ->470212
/*470146*/            OPC_MoveParent,
/*470147*/            OPC_MoveChild1,
/*470148*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*470151*/            OPC_MoveChild0,
/*470152*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470155*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470157*/            OPC_CheckType, MVT::v8i32,
/*470159*/            OPC_MoveParent,
/*470160*/            OPC_MoveParent,
/*470161*/            OPC_MoveChild2,
/*470162*/            OPC_Scope, 23, /*->470187*/ // 2 children in Scope
/*470164*/              OPC_CheckCondCode, ISD::SETNE,
/*470166*/              OPC_MoveParent,
/*470167*/              OPC_CheckType, MVT::v4i1,
/*470169*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470171*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470174*/              OPC_EmitMergeInputChains1_0,
/*470175*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTMQZ256rmb:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470187*/            /*Scope*/ 23, /*->470211*/
/*470188*/              OPC_CheckCondCode, ISD::SETEQ,
/*470190*/              OPC_MoveParent,
/*470191*/              OPC_CheckType, MVT::v4i1,
/*470193*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470195*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470198*/              OPC_EmitMergeInputChains1_0,
/*470199*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTNMQZ256rmb:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470211*/            0, /*End of Scope*/
/*470212*/          /*SwitchType*/ 66, MVT::v2i64,// ->470280
/*470214*/            OPC_MoveParent,
/*470215*/            OPC_MoveChild1,
/*470216*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*470219*/            OPC_MoveChild0,
/*470220*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470223*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470225*/            OPC_CheckType, MVT::v4i32,
/*470227*/            OPC_MoveParent,
/*470228*/            OPC_MoveParent,
/*470229*/            OPC_MoveChild2,
/*470230*/            OPC_Scope, 23, /*->470255*/ // 2 children in Scope
/*470232*/              OPC_CheckCondCode, ISD::SETNE,
/*470234*/              OPC_MoveParent,
/*470235*/              OPC_CheckType, MVT::v2i1,
/*470237*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470239*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470242*/              OPC_EmitMergeInputChains1_0,
/*470243*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTMQZ128rmb:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470255*/            /*Scope*/ 23, /*->470279*/
/*470256*/              OPC_CheckCondCode, ISD::SETEQ,
/*470258*/              OPC_MoveParent,
/*470259*/              OPC_CheckType, MVT::v2i1,
/*470261*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470263*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470266*/              OPC_EmitMergeInputChains1_0,
/*470267*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 38
                        // Dst: (VPTESTNMQZ128rmb:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470279*/            0, /*End of Scope*/
/*470280*/          0, // EndSwitchType
/*470281*/        /*Scope*/ 46|128,3/*430*/, /*->470713*/
/*470283*/          OPC_RecordChild0, // #0 = $src1
/*470284*/          OPC_MoveChild1,
/*470285*/          OPC_SwitchOpcode /*2 cases */, 73|128,1/*201*/, TARGET_VAL(X86ISD::VBROADCAST),// ->470491
/*470290*/            OPC_MoveChild0,
/*470291*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470294*/            OPC_RecordMemRef,
/*470295*/            OPC_RecordNode, // #1 = 'ld' chained node
/*470296*/            OPC_CheckFoldableChainNode,
/*470297*/            OPC_RecordChild1, // #2 = $src2
/*470298*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470300*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*470302*/            OPC_CheckType, MVT::i32,
/*470304*/            OPC_MoveParent,
/*470305*/            OPC_MoveParent,
/*470306*/            OPC_SwitchType /*3 cases */, 59, MVT::v16i32,// ->470368
/*470309*/              OPC_MoveParent,
/*470310*/              OPC_MoveChild1,
/*470311*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470314*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470316*/              OPC_MoveParent,
/*470317*/              OPC_MoveChild2,
/*470318*/              OPC_Scope, 23, /*->470343*/ // 2 children in Scope
/*470320*/                OPC_CheckCondCode, ISD::SETNE,
/*470322*/                OPC_MoveParent,
/*470323*/                OPC_CheckType, MVT::v16i1,
/*470325*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*470327*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470330*/                OPC_EmitMergeInputChains1_1,
/*470331*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMDZrmb:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470343*/              /*Scope*/ 23, /*->470367*/
/*470344*/                OPC_CheckCondCode, ISD::SETEQ,
/*470346*/                OPC_MoveParent,
/*470347*/                OPC_CheckType, MVT::v16i1,
/*470349*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*470351*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470354*/                OPC_EmitMergeInputChains1_1,
/*470355*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMDZrmb:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470367*/              0, /*End of Scope*/
/*470368*/            /*SwitchType*/ 59, MVT::v8i32,// ->470429
/*470370*/              OPC_MoveParent,
/*470371*/              OPC_MoveChild1,
/*470372*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470375*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470377*/              OPC_MoveParent,
/*470378*/              OPC_MoveChild2,
/*470379*/              OPC_Scope, 23, /*->470404*/ // 2 children in Scope
/*470381*/                OPC_CheckCondCode, ISD::SETNE,
/*470383*/                OPC_MoveParent,
/*470384*/                OPC_CheckType, MVT::v8i1,
/*470386*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470388*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470391*/                OPC_EmitMergeInputChains1_1,
/*470392*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMDZ256rmb:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470404*/              /*Scope*/ 23, /*->470428*/
/*470405*/                OPC_CheckCondCode, ISD::SETEQ,
/*470407*/                OPC_MoveParent,
/*470408*/                OPC_CheckType, MVT::v8i1,
/*470410*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470412*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470415*/                OPC_EmitMergeInputChains1_1,
/*470416*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMDZ256rmb:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470428*/              0, /*End of Scope*/
/*470429*/            /*SwitchType*/ 59, MVT::v4i32,// ->470490
/*470431*/              OPC_MoveParent,
/*470432*/              OPC_MoveChild1,
/*470433*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470436*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470438*/              OPC_MoveParent,
/*470439*/              OPC_MoveChild2,
/*470440*/              OPC_Scope, 23, /*->470465*/ // 2 children in Scope
/*470442*/                OPC_CheckCondCode, ISD::SETNE,
/*470444*/                OPC_MoveParent,
/*470445*/                OPC_CheckType, MVT::v4i1,
/*470447*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470449*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470452*/                OPC_EmitMergeInputChains1_1,
/*470453*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMDZ128rmb:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470465*/              /*Scope*/ 23, /*->470489*/
/*470466*/                OPC_CheckCondCode, ISD::SETEQ,
/*470468*/                OPC_MoveParent,
/*470469*/                OPC_CheckType, MVT::v4i1,
/*470471*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470473*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470476*/                OPC_EmitMergeInputChains1_1,
/*470477*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMDZ128rmb:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470489*/              0, /*End of Scope*/
/*470490*/            0, // EndSwitchType
/*470491*/          /*SwitchOpcode*/ 89|128,1/*217*/, TARGET_VAL(ISD::LOAD),// ->470712
/*470495*/            OPC_RecordMemRef,
/*470496*/            OPC_RecordNode, // #1 = 'ld' chained node
/*470497*/            OPC_CheckFoldableChainNode,
/*470498*/            OPC_RecordChild1, // #2 = $src2
/*470499*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470501*/            OPC_CheckPredicate, 9, // Predicate_load
/*470503*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*470505*/            OPC_MoveParent,
/*470506*/            OPC_SwitchType /*3 cases */, 66, MVT::v8i64,// ->470575
/*470509*/              OPC_MoveParent,
/*470510*/              OPC_MoveChild1,
/*470511*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*470514*/              OPC_MoveChild0,
/*470515*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470518*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470520*/              OPC_CheckType, MVT::v16i32,
/*470522*/              OPC_MoveParent,
/*470523*/              OPC_MoveParent,
/*470524*/              OPC_MoveChild2,
/*470525*/              OPC_Scope, 23, /*->470550*/ // 2 children in Scope
/*470527*/                OPC_CheckCondCode, ISD::SETNE,
/*470529*/                OPC_MoveParent,
/*470530*/                OPC_CheckType, MVT::v8i1,
/*470532*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*470534*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470537*/                OPC_EmitMergeInputChains1_1,
/*470538*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMQZrm:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470550*/              /*Scope*/ 23, /*->470574*/
/*470551*/                OPC_CheckCondCode, ISD::SETEQ,
/*470553*/                OPC_MoveParent,
/*470554*/                OPC_CheckType, MVT::v8i1,
/*470556*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*470558*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470561*/                OPC_EmitMergeInputChains1_1,
/*470562*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMQZrm:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470574*/              0, /*End of Scope*/
/*470575*/            /*SwitchType*/ 66, MVT::v4i64,// ->470643
/*470577*/              OPC_MoveParent,
/*470578*/              OPC_MoveChild1,
/*470579*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*470582*/              OPC_MoveChild0,
/*470583*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470586*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470588*/              OPC_CheckType, MVT::v8i32,
/*470590*/              OPC_MoveParent,
/*470591*/              OPC_MoveParent,
/*470592*/              OPC_MoveChild2,
/*470593*/              OPC_Scope, 23, /*->470618*/ // 2 children in Scope
/*470595*/                OPC_CheckCondCode, ISD::SETNE,
/*470597*/                OPC_MoveParent,
/*470598*/                OPC_CheckType, MVT::v4i1,
/*470600*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470602*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470605*/                OPC_EmitMergeInputChains1_1,
/*470606*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMQZ256rm:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470618*/              /*Scope*/ 23, /*->470642*/
/*470619*/                OPC_CheckCondCode, ISD::SETEQ,
/*470621*/                OPC_MoveParent,
/*470622*/                OPC_CheckType, MVT::v4i1,
/*470624*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470626*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470629*/                OPC_EmitMergeInputChains1_1,
/*470630*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMQZ256rm:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470642*/              0, /*End of Scope*/
/*470643*/            /*SwitchType*/ 66, MVT::v2i64,// ->470711
/*470645*/              OPC_MoveParent,
/*470646*/              OPC_MoveChild1,
/*470647*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*470650*/              OPC_MoveChild0,
/*470651*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470654*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470656*/              OPC_CheckType, MVT::v4i32,
/*470658*/              OPC_MoveParent,
/*470659*/              OPC_MoveParent,
/*470660*/              OPC_MoveChild2,
/*470661*/              OPC_Scope, 23, /*->470686*/ // 2 children in Scope
/*470663*/                OPC_CheckCondCode, ISD::SETNE,
/*470665*/                OPC_MoveParent,
/*470666*/                OPC_CheckType, MVT::v2i1,
/*470668*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470670*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470673*/                OPC_EmitMergeInputChains1_1,
/*470674*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMQZ128rm:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470686*/              /*Scope*/ 23, /*->470710*/
/*470687*/                OPC_CheckCondCode, ISD::SETEQ,
/*470689*/                OPC_MoveParent,
/*470690*/                OPC_CheckType, MVT::v2i1,
/*470692*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470694*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470697*/                OPC_EmitMergeInputChains1_1,
/*470698*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMQZ128rm:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470710*/              0, /*End of Scope*/
/*470711*/            0, // EndSwitchType
/*470712*/          0, // EndSwitchOpcode
/*470713*/        /*Scope*/ 47|128,3/*431*/, /*->471146*/
/*470715*/          OPC_MoveChild0,
/*470716*/          OPC_SwitchOpcode /*2 cases */, 74|128,1/*202*/, TARGET_VAL(X86ISD::VBROADCAST),// ->470923
/*470721*/            OPC_MoveChild0,
/*470722*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470725*/            OPC_RecordMemRef,
/*470726*/            OPC_RecordNode, // #0 = 'ld' chained node
/*470727*/            OPC_CheckFoldableChainNode,
/*470728*/            OPC_RecordChild1, // #1 = $src2
/*470729*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470731*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*470733*/            OPC_CheckType, MVT::i32,
/*470735*/            OPC_MoveParent,
/*470736*/            OPC_MoveParent,
/*470737*/            OPC_RecordChild1, // #2 = $src1
/*470738*/            OPC_SwitchType /*3 cases */, 59, MVT::v16i32,// ->470800
/*470741*/              OPC_MoveParent,
/*470742*/              OPC_MoveChild1,
/*470743*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470746*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470748*/              OPC_MoveParent,
/*470749*/              OPC_MoveChild2,
/*470750*/              OPC_Scope, 23, /*->470775*/ // 2 children in Scope
/*470752*/                OPC_CheckCondCode, ISD::SETNE,
/*470754*/                OPC_MoveParent,
/*470755*/                OPC_CheckType, MVT::v16i1,
/*470757*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*470759*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470762*/                OPC_EmitMergeInputChains1_0,
/*470763*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMDZrmb:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470775*/              /*Scope*/ 23, /*->470799*/
/*470776*/                OPC_CheckCondCode, ISD::SETEQ,
/*470778*/                OPC_MoveParent,
/*470779*/                OPC_CheckType, MVT::v16i1,
/*470781*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*470783*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470786*/                OPC_EmitMergeInputChains1_0,
/*470787*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v16i1] } (and:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMDZrmb:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470799*/              0, /*End of Scope*/
/*470800*/            /*SwitchType*/ 59, MVT::v8i32,// ->470861
/*470802*/              OPC_MoveParent,
/*470803*/              OPC_MoveChild1,
/*470804*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470807*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470809*/              OPC_MoveParent,
/*470810*/              OPC_MoveChild2,
/*470811*/              OPC_Scope, 23, /*->470836*/ // 2 children in Scope
/*470813*/                OPC_CheckCondCode, ISD::SETNE,
/*470815*/                OPC_MoveParent,
/*470816*/                OPC_CheckType, MVT::v8i1,
/*470818*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470820*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470823*/                OPC_EmitMergeInputChains1_0,
/*470824*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMDZ256rmb:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470836*/              /*Scope*/ 23, /*->470860*/
/*470837*/                OPC_CheckCondCode, ISD::SETEQ,
/*470839*/                OPC_MoveParent,
/*470840*/                OPC_CheckType, MVT::v8i1,
/*470842*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470844*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470847*/                OPC_EmitMergeInputChains1_0,
/*470848*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMDZ256rmb:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470860*/              0, /*End of Scope*/
/*470861*/            /*SwitchType*/ 59, MVT::v4i32,// ->470922
/*470863*/              OPC_MoveParent,
/*470864*/              OPC_MoveChild1,
/*470865*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470868*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470870*/              OPC_MoveParent,
/*470871*/              OPC_MoveChild2,
/*470872*/              OPC_Scope, 23, /*->470897*/ // 2 children in Scope
/*470874*/                OPC_CheckCondCode, ISD::SETNE,
/*470876*/                OPC_MoveParent,
/*470877*/                OPC_CheckType, MVT::v4i1,
/*470879*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470881*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470884*/                OPC_EmitMergeInputChains1_0,
/*470885*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMDZ128rmb:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470897*/              /*Scope*/ 23, /*->470921*/
/*470898*/                OPC_CheckCondCode, ISD::SETEQ,
/*470900*/                OPC_MoveParent,
/*470901*/                OPC_CheckType, MVT::v4i1,
/*470903*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*470905*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470908*/                OPC_EmitMergeInputChains1_0,
/*470909*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMDZ128rmb:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470921*/              0, /*End of Scope*/
/*470922*/            0, // EndSwitchType
/*470923*/          /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(ISD::LOAD),// ->471145
/*470927*/            OPC_RecordMemRef,
/*470928*/            OPC_RecordNode, // #0 = 'ld' chained node
/*470929*/            OPC_CheckFoldableChainNode,
/*470930*/            OPC_RecordChild1, // #1 = $src2
/*470931*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470933*/            OPC_CheckPredicate, 9, // Predicate_load
/*470935*/            OPC_CheckPredicate, 40, // Predicate_vecload
/*470937*/            OPC_MoveParent,
/*470938*/            OPC_RecordChild1, // #2 = $src1
/*470939*/            OPC_SwitchType /*3 cases */, 66, MVT::v8i64,// ->471008
/*470942*/              OPC_MoveParent,
/*470943*/              OPC_MoveChild1,
/*470944*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*470947*/              OPC_MoveChild0,
/*470948*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*470951*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*470953*/              OPC_CheckType, MVT::v16i32,
/*470955*/              OPC_MoveParent,
/*470956*/              OPC_MoveParent,
/*470957*/              OPC_MoveChild2,
/*470958*/              OPC_Scope, 23, /*->470983*/ // 2 children in Scope
/*470960*/                OPC_CheckCondCode, ISD::SETNE,
/*470962*/                OPC_MoveParent,
/*470963*/                OPC_CheckType, MVT::v8i1,
/*470965*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*470967*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470970*/                OPC_EmitMergeInputChains1_0,
/*470971*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMQZrm:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470983*/              /*Scope*/ 23, /*->471007*/
/*470984*/                OPC_CheckCondCode, ISD::SETEQ,
/*470986*/                OPC_MoveParent,
/*470987*/                OPC_CheckType, MVT::v8i1,
/*470989*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*470991*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470994*/                OPC_EmitMergeInputChains1_0,
/*470995*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMQZrm:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471007*/              0, /*End of Scope*/
/*471008*/            /*SwitchType*/ 66, MVT::v4i64,// ->471076
/*471010*/              OPC_MoveParent,
/*471011*/              OPC_MoveChild1,
/*471012*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*471015*/              OPC_MoveChild0,
/*471016*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*471019*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*471021*/              OPC_CheckType, MVT::v8i32,
/*471023*/              OPC_MoveParent,
/*471024*/              OPC_MoveParent,
/*471025*/              OPC_MoveChild2,
/*471026*/              OPC_Scope, 23, /*->471051*/ // 2 children in Scope
/*471028*/                OPC_CheckCondCode, ISD::SETNE,
/*471030*/                OPC_MoveParent,
/*471031*/                OPC_CheckType, MVT::v4i1,
/*471033*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471035*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471038*/                OPC_EmitMergeInputChains1_0,
/*471039*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMQZ256rm:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471051*/              /*Scope*/ 23, /*->471075*/
/*471052*/                OPC_CheckCondCode, ISD::SETEQ,
/*471054*/                OPC_MoveParent,
/*471055*/                OPC_CheckType, MVT::v4i1,
/*471057*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471059*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471062*/                OPC_EmitMergeInputChains1_0,
/*471063*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMQZ256rm:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471075*/              0, /*End of Scope*/
/*471076*/            /*SwitchType*/ 66, MVT::v2i64,// ->471144
/*471078*/              OPC_MoveParent,
/*471079*/              OPC_MoveChild1,
/*471080*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*471083*/              OPC_MoveChild0,
/*471084*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*471087*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*471089*/              OPC_CheckType, MVT::v4i32,
/*471091*/              OPC_MoveParent,
/*471092*/              OPC_MoveParent,
/*471093*/              OPC_MoveChild2,
/*471094*/              OPC_Scope, 23, /*->471119*/ // 2 children in Scope
/*471096*/                OPC_CheckCondCode, ISD::SETNE,
/*471098*/                OPC_MoveParent,
/*471099*/                OPC_CheckType, MVT::v2i1,
/*471101*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471103*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471106*/                OPC_EmitMergeInputChains1_0,
/*471107*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTMQZ128rm:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471119*/              /*Scope*/ 23, /*->471143*/
/*471120*/                OPC_CheckCondCode, ISD::SETEQ,
/*471122*/                OPC_MoveParent,
/*471123*/                OPC_CheckType, MVT::v2i1,
/*471125*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471127*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471130*/                OPC_EmitMergeInputChains1_0,
/*471131*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 35
                          // Dst: (VPTESTNMQZ128rm:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471143*/              0, /*End of Scope*/
/*471144*/            0, // EndSwitchType
/*471145*/          0, // EndSwitchOpcode
/*471146*/        0, /*End of Scope*/
/*471147*/      0, // EndSwitchOpcode
/*471148*/    /*Scope*/ 104|128,8/*1128*/, /*->472278*/
/*471150*/      OPC_RecordChild0, // #0 = $src1
/*471151*/      OPC_Scope, 75, /*->471228*/ // 12 children in Scope
/*471153*/        OPC_CheckChild0Type, MVT::v64i8,
/*471155*/        OPC_MoveChild1,
/*471156*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*471159*/        OPC_MoveChild0,
/*471160*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471163*/        OPC_RecordMemRef,
/*471164*/        OPC_RecordNode, // #1 = 'ld' chained node
/*471165*/        OPC_CheckFoldableChainNode,
/*471166*/        OPC_RecordChild1, // #2 = $src2
/*471167*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471169*/        OPC_CheckPredicate, 9, // Predicate_load
/*471171*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*471173*/        OPC_CheckType, MVT::v8i64,
/*471175*/        OPC_MoveParent,
/*471176*/        OPC_MoveParent,
/*471177*/        OPC_MoveChild2,
/*471178*/        OPC_Scope, 23, /*->471203*/ // 2 children in Scope
/*471180*/          OPC_CheckCondCode, ISD::SETEQ,
/*471182*/          OPC_MoveParent,
/*471183*/          OPC_CheckType, MVT::v64i1,
/*471185*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*471187*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471190*/          OPC_EmitMergeInputChains1_1,
/*471191*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPEQBZrm:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471203*/        /*Scope*/ 23, /*->471227*/
/*471204*/          OPC_CheckCondCode, ISD::SETGT,
/*471206*/          OPC_MoveParent,
/*471207*/          OPC_CheckType, MVT::v64i1,
/*471209*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*471211*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471214*/          OPC_EmitMergeInputChains1_1,
/*471215*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPGTBZrm:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471227*/        0, /*End of Scope*/
/*471228*/      /*Scope*/ 75, /*->471304*/
/*471229*/        OPC_CheckChild0Type, MVT::v32i8,
/*471231*/        OPC_MoveChild1,
/*471232*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*471235*/        OPC_MoveChild0,
/*471236*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471239*/        OPC_RecordMemRef,
/*471240*/        OPC_RecordNode, // #1 = 'ld' chained node
/*471241*/        OPC_CheckFoldableChainNode,
/*471242*/        OPC_RecordChild1, // #2 = $src2
/*471243*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471245*/        OPC_CheckPredicate, 9, // Predicate_load
/*471247*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*471249*/        OPC_CheckType, MVT::v4i64,
/*471251*/        OPC_MoveParent,
/*471252*/        OPC_MoveParent,
/*471253*/        OPC_MoveChild2,
/*471254*/        OPC_Scope, 23, /*->471279*/ // 2 children in Scope
/*471256*/          OPC_CheckCondCode, ISD::SETEQ,
/*471258*/          OPC_MoveParent,
/*471259*/          OPC_CheckType, MVT::v32i1,
/*471261*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471263*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471266*/          OPC_EmitMergeInputChains1_1,
/*471267*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPEQBZ256rm:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471279*/        /*Scope*/ 23, /*->471303*/
/*471280*/          OPC_CheckCondCode, ISD::SETGT,
/*471282*/          OPC_MoveParent,
/*471283*/          OPC_CheckType, MVT::v32i1,
/*471285*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471287*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471290*/          OPC_EmitMergeInputChains1_1,
/*471291*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPGTBZ256rm:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471303*/        0, /*End of Scope*/
/*471304*/      /*Scope*/ 75, /*->471380*/
/*471305*/        OPC_CheckChild0Type, MVT::v16i8,
/*471307*/        OPC_MoveChild1,
/*471308*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*471311*/        OPC_MoveChild0,
/*471312*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471315*/        OPC_RecordMemRef,
/*471316*/        OPC_RecordNode, // #1 = 'ld' chained node
/*471317*/        OPC_CheckFoldableChainNode,
/*471318*/        OPC_RecordChild1, // #2 = $src2
/*471319*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471321*/        OPC_CheckPredicate, 9, // Predicate_load
/*471323*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*471325*/        OPC_CheckType, MVT::v2i64,
/*471327*/        OPC_MoveParent,
/*471328*/        OPC_MoveParent,
/*471329*/        OPC_MoveChild2,
/*471330*/        OPC_Scope, 23, /*->471355*/ // 2 children in Scope
/*471332*/          OPC_CheckCondCode, ISD::SETEQ,
/*471334*/          OPC_MoveParent,
/*471335*/          OPC_CheckType, MVT::v16i1,
/*471337*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471339*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471342*/          OPC_EmitMergeInputChains1_1,
/*471343*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPEQBZ128rm:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471355*/        /*Scope*/ 23, /*->471379*/
/*471356*/          OPC_CheckCondCode, ISD::SETGT,
/*471358*/          OPC_MoveParent,
/*471359*/          OPC_CheckType, MVT::v16i1,
/*471361*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471363*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471366*/          OPC_EmitMergeInputChains1_1,
/*471367*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPGTBZ128rm:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471379*/        0, /*End of Scope*/
/*471380*/      /*Scope*/ 75, /*->471456*/
/*471381*/        OPC_CheckChild0Type, MVT::v32i16,
/*471383*/        OPC_MoveChild1,
/*471384*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*471387*/        OPC_MoveChild0,
/*471388*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471391*/        OPC_RecordMemRef,
/*471392*/        OPC_RecordNode, // #1 = 'ld' chained node
/*471393*/        OPC_CheckFoldableChainNode,
/*471394*/        OPC_RecordChild1, // #2 = $src2
/*471395*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471397*/        OPC_CheckPredicate, 9, // Predicate_load
/*471399*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*471401*/        OPC_CheckType, MVT::v8i64,
/*471403*/        OPC_MoveParent,
/*471404*/        OPC_MoveParent,
/*471405*/        OPC_MoveChild2,
/*471406*/        OPC_Scope, 23, /*->471431*/ // 2 children in Scope
/*471408*/          OPC_CheckCondCode, ISD::SETEQ,
/*471410*/          OPC_MoveParent,
/*471411*/          OPC_CheckType, MVT::v32i1,
/*471413*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*471415*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471418*/          OPC_EmitMergeInputChains1_1,
/*471419*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPEQWZrm:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471431*/        /*Scope*/ 23, /*->471455*/
/*471432*/          OPC_CheckCondCode, ISD::SETGT,
/*471434*/          OPC_MoveParent,
/*471435*/          OPC_CheckType, MVT::v32i1,
/*471437*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*471439*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471442*/          OPC_EmitMergeInputChains1_1,
/*471443*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPGTWZrm:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471455*/        0, /*End of Scope*/
/*471456*/      /*Scope*/ 75, /*->471532*/
/*471457*/        OPC_CheckChild0Type, MVT::v16i16,
/*471459*/        OPC_MoveChild1,
/*471460*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*471463*/        OPC_MoveChild0,
/*471464*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471467*/        OPC_RecordMemRef,
/*471468*/        OPC_RecordNode, // #1 = 'ld' chained node
/*471469*/        OPC_CheckFoldableChainNode,
/*471470*/        OPC_RecordChild1, // #2 = $src2
/*471471*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471473*/        OPC_CheckPredicate, 9, // Predicate_load
/*471475*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*471477*/        OPC_CheckType, MVT::v4i64,
/*471479*/        OPC_MoveParent,
/*471480*/        OPC_MoveParent,
/*471481*/        OPC_MoveChild2,
/*471482*/        OPC_Scope, 23, /*->471507*/ // 2 children in Scope
/*471484*/          OPC_CheckCondCode, ISD::SETEQ,
/*471486*/          OPC_MoveParent,
/*471487*/          OPC_CheckType, MVT::v16i1,
/*471489*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471491*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471494*/          OPC_EmitMergeInputChains1_1,
/*471495*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPEQWZ256rm:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471507*/        /*Scope*/ 23, /*->471531*/
/*471508*/          OPC_CheckCondCode, ISD::SETGT,
/*471510*/          OPC_MoveParent,
/*471511*/          OPC_CheckType, MVT::v16i1,
/*471513*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471515*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471518*/          OPC_EmitMergeInputChains1_1,
/*471519*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPGTWZ256rm:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471531*/        0, /*End of Scope*/
/*471532*/      /*Scope*/ 75, /*->471608*/
/*471533*/        OPC_CheckChild0Type, MVT::v8i16,
/*471535*/        OPC_MoveChild1,
/*471536*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*471539*/        OPC_MoveChild0,
/*471540*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471543*/        OPC_RecordMemRef,
/*471544*/        OPC_RecordNode, // #1 = 'ld' chained node
/*471545*/        OPC_CheckFoldableChainNode,
/*471546*/        OPC_RecordChild1, // #2 = $src2
/*471547*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471549*/        OPC_CheckPredicate, 9, // Predicate_load
/*471551*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*471553*/        OPC_CheckType, MVT::v2i64,
/*471555*/        OPC_MoveParent,
/*471556*/        OPC_MoveParent,
/*471557*/        OPC_MoveChild2,
/*471558*/        OPC_Scope, 23, /*->471583*/ // 2 children in Scope
/*471560*/          OPC_CheckCondCode, ISD::SETEQ,
/*471562*/          OPC_MoveParent,
/*471563*/          OPC_CheckType, MVT::v8i1,
/*471565*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471567*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471570*/          OPC_EmitMergeInputChains1_1,
/*471571*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPEQWZ128rm:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471583*/        /*Scope*/ 23, /*->471607*/
/*471584*/          OPC_CheckCondCode, ISD::SETGT,
/*471586*/          OPC_MoveParent,
/*471587*/          OPC_CheckType, MVT::v8i1,
/*471589*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471591*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471594*/          OPC_EmitMergeInputChains1_1,
/*471595*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPGTWZ128rm:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471607*/        0, /*End of Scope*/
/*471608*/      /*Scope*/ 19|128,1/*147*/, /*->471757*/
/*471610*/        OPC_CheckChild0Type, MVT::v16i32,
/*471612*/        OPC_MoveChild1,
/*471613*/        OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::BITCAST),// ->471686
/*471617*/          OPC_MoveChild0,
/*471618*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471621*/          OPC_RecordMemRef,
/*471622*/          OPC_RecordNode, // #1 = 'ld' chained node
/*471623*/          OPC_CheckFoldableChainNode,
/*471624*/          OPC_RecordChild1, // #2 = $src2
/*471625*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471627*/          OPC_CheckPredicate, 9, // Predicate_load
/*471629*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*471631*/          OPC_CheckType, MVT::v8i64,
/*471633*/          OPC_MoveParent,
/*471634*/          OPC_MoveParent,
/*471635*/          OPC_MoveChild2,
/*471636*/          OPC_Scope, 23, /*->471661*/ // 2 children in Scope
/*471638*/            OPC_CheckCondCode, ISD::SETEQ,
/*471640*/            OPC_MoveParent,
/*471641*/            OPC_CheckType, MVT::v16i1,
/*471643*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*471645*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471648*/            OPC_EmitMergeInputChains1_1,
/*471649*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZrm:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471661*/          /*Scope*/ 23, /*->471685*/
/*471662*/            OPC_CheckCondCode, ISD::SETGT,
/*471664*/            OPC_MoveParent,
/*471665*/            OPC_CheckType, MVT::v16i1,
/*471667*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*471669*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471672*/            OPC_EmitMergeInputChains1_1,
/*471673*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPGTDZrm:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471685*/          0, /*End of Scope*/
/*471686*/        /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::VBROADCAST),// ->471756
/*471689*/          OPC_MoveChild0,
/*471690*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471693*/          OPC_RecordMemRef,
/*471694*/          OPC_RecordNode, // #1 = 'ld' chained node
/*471695*/          OPC_CheckFoldableChainNode,
/*471696*/          OPC_RecordChild1, // #2 = $src2
/*471697*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471699*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*471701*/          OPC_CheckType, MVT::i32,
/*471703*/          OPC_MoveParent,
/*471704*/          OPC_MoveParent,
/*471705*/          OPC_MoveChild2,
/*471706*/          OPC_Scope, 23, /*->471731*/ // 2 children in Scope
/*471708*/            OPC_CheckCondCode, ISD::SETEQ,
/*471710*/            OPC_MoveParent,
/*471711*/            OPC_CheckType, MVT::v16i1,
/*471713*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*471715*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471718*/            OPC_EmitMergeInputChains1_1,
/*471719*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZrmb:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471731*/          /*Scope*/ 23, /*->471755*/
/*471732*/            OPC_CheckCondCode, ISD::SETGT,
/*471734*/            OPC_MoveParent,
/*471735*/            OPC_CheckType, MVT::v16i1,
/*471737*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*471739*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471742*/            OPC_EmitMergeInputChains1_1,
/*471743*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETGT:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPGTDZrmb:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471755*/          0, /*End of Scope*/
/*471756*/        0, // EndSwitchOpcode
/*471757*/      /*Scope*/ 19|128,1/*147*/, /*->471906*/
/*471759*/        OPC_CheckChild0Type, MVT::v8i32,
/*471761*/        OPC_MoveChild1,
/*471762*/        OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::BITCAST),// ->471835
/*471766*/          OPC_MoveChild0,
/*471767*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471770*/          OPC_RecordMemRef,
/*471771*/          OPC_RecordNode, // #1 = 'ld' chained node
/*471772*/          OPC_CheckFoldableChainNode,
/*471773*/          OPC_RecordChild1, // #2 = $src2
/*471774*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471776*/          OPC_CheckPredicate, 9, // Predicate_load
/*471778*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*471780*/          OPC_CheckType, MVT::v4i64,
/*471782*/          OPC_MoveParent,
/*471783*/          OPC_MoveParent,
/*471784*/          OPC_MoveChild2,
/*471785*/          OPC_Scope, 23, /*->471810*/ // 2 children in Scope
/*471787*/            OPC_CheckCondCode, ISD::SETEQ,
/*471789*/            OPC_MoveParent,
/*471790*/            OPC_CheckType, MVT::v8i1,
/*471792*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471794*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471797*/            OPC_EmitMergeInputChains1_1,
/*471798*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZ256rm:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471810*/          /*Scope*/ 23, /*->471834*/
/*471811*/            OPC_CheckCondCode, ISD::SETGT,
/*471813*/            OPC_MoveParent,
/*471814*/            OPC_CheckType, MVT::v8i1,
/*471816*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471818*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471821*/            OPC_EmitMergeInputChains1_1,
/*471822*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPGTDZ256rm:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471834*/          0, /*End of Scope*/
/*471835*/        /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::VBROADCAST),// ->471905
/*471838*/          OPC_MoveChild0,
/*471839*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471842*/          OPC_RecordMemRef,
/*471843*/          OPC_RecordNode, // #1 = 'ld' chained node
/*471844*/          OPC_CheckFoldableChainNode,
/*471845*/          OPC_RecordChild1, // #2 = $src2
/*471846*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471848*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*471850*/          OPC_CheckType, MVT::i32,
/*471852*/          OPC_MoveParent,
/*471853*/          OPC_MoveParent,
/*471854*/          OPC_MoveChild2,
/*471855*/          OPC_Scope, 23, /*->471880*/ // 2 children in Scope
/*471857*/            OPC_CheckCondCode, ISD::SETEQ,
/*471859*/            OPC_MoveParent,
/*471860*/            OPC_CheckType, MVT::v8i1,
/*471862*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471864*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471867*/            OPC_EmitMergeInputChains1_1,
/*471868*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZ256rmb:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471880*/          /*Scope*/ 23, /*->471904*/
/*471881*/            OPC_CheckCondCode, ISD::SETGT,
/*471883*/            OPC_MoveParent,
/*471884*/            OPC_CheckType, MVT::v8i1,
/*471886*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471888*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471891*/            OPC_EmitMergeInputChains1_1,
/*471892*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETGT:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPGTDZ256rmb:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471904*/          0, /*End of Scope*/
/*471905*/        0, // EndSwitchOpcode
/*471906*/      /*Scope*/ 19|128,1/*147*/, /*->472055*/
/*471908*/        OPC_CheckChild0Type, MVT::v4i32,
/*471910*/        OPC_MoveChild1,
/*471911*/        OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::BITCAST),// ->471984
/*471915*/          OPC_MoveChild0,
/*471916*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471919*/          OPC_RecordMemRef,
/*471920*/          OPC_RecordNode, // #1 = 'ld' chained node
/*471921*/          OPC_CheckFoldableChainNode,
/*471922*/          OPC_RecordChild1, // #2 = $src2
/*471923*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471925*/          OPC_CheckPredicate, 9, // Predicate_load
/*471927*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*471929*/          OPC_CheckType, MVT::v2i64,
/*471931*/          OPC_MoveParent,
/*471932*/          OPC_MoveParent,
/*471933*/          OPC_MoveChild2,
/*471934*/          OPC_Scope, 23, /*->471959*/ // 2 children in Scope
/*471936*/            OPC_CheckCondCode, ISD::SETEQ,
/*471938*/            OPC_MoveParent,
/*471939*/            OPC_CheckType, MVT::v4i1,
/*471941*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471943*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471946*/            OPC_EmitMergeInputChains1_1,
/*471947*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZ128rm:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471959*/          /*Scope*/ 23, /*->471983*/
/*471960*/            OPC_CheckCondCode, ISD::SETGT,
/*471962*/            OPC_MoveParent,
/*471963*/            OPC_CheckType, MVT::v4i1,
/*471965*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471967*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471970*/            OPC_EmitMergeInputChains1_1,
/*471971*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), SETGT:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPGTDZ128rm:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471983*/          0, /*End of Scope*/
/*471984*/        /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::VBROADCAST),// ->472054
/*471987*/          OPC_MoveChild0,
/*471988*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471991*/          OPC_RecordMemRef,
/*471992*/          OPC_RecordNode, // #1 = 'ld' chained node
/*471993*/          OPC_CheckFoldableChainNode,
/*471994*/          OPC_RecordChild1, // #2 = $src2
/*471995*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471997*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*471999*/          OPC_CheckType, MVT::i32,
/*472001*/          OPC_MoveParent,
/*472002*/          OPC_MoveParent,
/*472003*/          OPC_MoveChild2,
/*472004*/          OPC_Scope, 23, /*->472029*/ // 2 children in Scope
/*472006*/            OPC_CheckCondCode, ISD::SETEQ,
/*472008*/            OPC_MoveParent,
/*472009*/            OPC_CheckType, MVT::v4i1,
/*472011*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472013*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472016*/            OPC_EmitMergeInputChains1_1,
/*472017*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZ128rmb:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472029*/          /*Scope*/ 23, /*->472053*/
/*472030*/            OPC_CheckCondCode, ISD::SETGT,
/*472032*/            OPC_MoveParent,
/*472033*/            OPC_CheckType, MVT::v4i1,
/*472035*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472040*/            OPC_EmitMergeInputChains1_1,
/*472041*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), SETGT:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPGTDZ128rmb:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472053*/          0, /*End of Scope*/
/*472054*/        0, // EndSwitchOpcode
/*472055*/      /*Scope*/ 73, /*->472129*/
/*472056*/        OPC_CheckChild0Type, MVT::v8i64,
/*472058*/        OPC_MoveChild1,
/*472059*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*472062*/        OPC_MoveChild0,
/*472063*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*472066*/        OPC_RecordMemRef,
/*472067*/        OPC_RecordNode, // #1 = 'ld' chained node
/*472068*/        OPC_CheckFoldableChainNode,
/*472069*/        OPC_RecordChild1, // #2 = $src2
/*472070*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472072*/        OPC_CheckPredicate, 9, // Predicate_load
/*472074*/        OPC_CheckType, MVT::i64,
/*472076*/        OPC_MoveParent,
/*472077*/        OPC_MoveParent,
/*472078*/        OPC_MoveChild2,
/*472079*/        OPC_Scope, 23, /*->472104*/ // 2 children in Scope
/*472081*/          OPC_CheckCondCode, ISD::SETEQ,
/*472083*/          OPC_MoveParent,
/*472084*/          OPC_CheckType, MVT::v8i1,
/*472086*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472088*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472091*/          OPC_EmitMergeInputChains1_1,
/*472092*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETEQ:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPEQQZrmb:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472104*/        /*Scope*/ 23, /*->472128*/
/*472105*/          OPC_CheckCondCode, ISD::SETGT,
/*472107*/          OPC_MoveParent,
/*472108*/          OPC_CheckType, MVT::v8i1,
/*472110*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472112*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472115*/          OPC_EmitMergeInputChains1_1,
/*472116*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETGT:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPGTQZrmb:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472128*/        0, /*End of Scope*/
/*472129*/      /*Scope*/ 73, /*->472203*/
/*472130*/        OPC_CheckChild0Type, MVT::v4i64,
/*472132*/        OPC_MoveChild1,
/*472133*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*472136*/        OPC_MoveChild0,
/*472137*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*472140*/        OPC_RecordMemRef,
/*472141*/        OPC_RecordNode, // #1 = 'ld' chained node
/*472142*/        OPC_CheckFoldableChainNode,
/*472143*/        OPC_RecordChild1, // #2 = $src2
/*472144*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472146*/        OPC_CheckPredicate, 9, // Predicate_load
/*472148*/        OPC_CheckType, MVT::i64,
/*472150*/        OPC_MoveParent,
/*472151*/        OPC_MoveParent,
/*472152*/        OPC_MoveChild2,
/*472153*/        OPC_Scope, 23, /*->472178*/ // 2 children in Scope
/*472155*/          OPC_CheckCondCode, ISD::SETEQ,
/*472157*/          OPC_MoveParent,
/*472158*/          OPC_CheckType, MVT::v4i1,
/*472160*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472162*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472165*/          OPC_EmitMergeInputChains1_1,
/*472166*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETEQ:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPEQQZ256rmb:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472178*/        /*Scope*/ 23, /*->472202*/
/*472179*/          OPC_CheckCondCode, ISD::SETGT,
/*472181*/          OPC_MoveParent,
/*472182*/          OPC_CheckType, MVT::v4i1,
/*472184*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472186*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472189*/          OPC_EmitMergeInputChains1_1,
/*472190*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETGT:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPGTQZ256rmb:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472202*/        0, /*End of Scope*/
/*472203*/      /*Scope*/ 73, /*->472277*/
/*472204*/        OPC_CheckChild0Type, MVT::v2i64,
/*472206*/        OPC_MoveChild1,
/*472207*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*472210*/        OPC_MoveChild0,
/*472211*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*472214*/        OPC_RecordMemRef,
/*472215*/        OPC_RecordNode, // #1 = 'ld' chained node
/*472216*/        OPC_CheckFoldableChainNode,
/*472217*/        OPC_RecordChild1, // #2 = $src2
/*472218*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472220*/        OPC_CheckPredicate, 9, // Predicate_load
/*472222*/        OPC_CheckType, MVT::i64,
/*472224*/        OPC_MoveParent,
/*472225*/        OPC_MoveParent,
/*472226*/        OPC_MoveChild2,
/*472227*/        OPC_Scope, 23, /*->472252*/ // 2 children in Scope
/*472229*/          OPC_CheckCondCode, ISD::SETEQ,
/*472231*/          OPC_MoveParent,
/*472232*/          OPC_CheckType, MVT::v2i1,
/*472234*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472236*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472239*/          OPC_EmitMergeInputChains1_1,
/*472240*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETEQ:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPEQQZ128rmb:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472252*/        /*Scope*/ 23, /*->472276*/
/*472253*/          OPC_CheckCondCode, ISD::SETGT,
/*472255*/          OPC_MoveParent,
/*472256*/          OPC_CheckType, MVT::v2i1,
/*472258*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472260*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472263*/          OPC_EmitMergeInputChains1_1,
/*472264*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), SETGT:{ *:[Other] }) - Complexity = 30
                    // Dst: (VPCMPGTQZ128rmb:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472276*/        0, /*End of Scope*/
/*472277*/      0, /*End of Scope*/
/*472278*/    /*Scope*/ 104|128,3/*488*/, /*->472768*/
/*472280*/      OPC_MoveChild0,
/*472281*/      OPC_SwitchOpcode /*2 cases */, 27|128,2/*283*/, TARGET_VAL(ISD::BITCAST),// ->472569
/*472286*/        OPC_MoveChild0,
/*472287*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*472290*/        OPC_RecordMemRef,
/*472291*/        OPC_RecordNode, // #0 = 'ld' chained node
/*472292*/        OPC_CheckFoldableChainNode,
/*472293*/        OPC_RecordChild1, // #1 = $src2
/*472294*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472296*/        OPC_CheckPredicate, 9, // Predicate_load
/*472298*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*472300*/        OPC_SwitchType /*3 cases */, 87, MVT::v8i64,// ->472390
/*472303*/          OPC_MoveParent,
/*472304*/          OPC_SwitchType /*3 cases */, 26, MVT::v64i8,// ->472333
/*472307*/            OPC_MoveParent,
/*472308*/            OPC_RecordChild1, // #2 = $src1
/*472309*/            OPC_MoveChild2,
/*472310*/            OPC_CheckCondCode, ISD::SETEQ,
/*472312*/            OPC_MoveParent,
/*472313*/            OPC_CheckType, MVT::v64i1,
/*472315*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*472317*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472320*/            OPC_EmitMergeInputChains1_0,
/*472321*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQBZrm:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472333*/          /*SwitchType*/ 26, MVT::v32i16,// ->472361
/*472335*/            OPC_MoveParent,
/*472336*/            OPC_RecordChild1, // #2 = $src1
/*472337*/            OPC_MoveChild2,
/*472338*/            OPC_CheckCondCode, ISD::SETEQ,
/*472340*/            OPC_MoveParent,
/*472341*/            OPC_CheckType, MVT::v32i1,
/*472343*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*472345*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472348*/            OPC_EmitMergeInputChains1_0,
/*472349*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQWZrm:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472361*/          /*SwitchType*/ 26, MVT::v16i32,// ->472389
/*472363*/            OPC_MoveParent,
/*472364*/            OPC_RecordChild1, // #2 = $src1
/*472365*/            OPC_MoveChild2,
/*472366*/            OPC_CheckCondCode, ISD::SETEQ,
/*472368*/            OPC_MoveParent,
/*472369*/            OPC_CheckType, MVT::v16i1,
/*472371*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472373*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472376*/            OPC_EmitMergeInputChains1_0,
/*472377*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZrm:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472389*/          0, // EndSwitchType
/*472390*/        /*SwitchType*/ 87, MVT::v4i64,// ->472479
/*472392*/          OPC_MoveParent,
/*472393*/          OPC_SwitchType /*3 cases */, 26, MVT::v32i8,// ->472422
/*472396*/            OPC_MoveParent,
/*472397*/            OPC_RecordChild1, // #2 = $src1
/*472398*/            OPC_MoveChild2,
/*472399*/            OPC_CheckCondCode, ISD::SETEQ,
/*472401*/            OPC_MoveParent,
/*472402*/            OPC_CheckType, MVT::v32i1,
/*472404*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*472406*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472409*/            OPC_EmitMergeInputChains1_0,
/*472410*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQBZ256rm:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472422*/          /*SwitchType*/ 26, MVT::v16i16,// ->472450
/*472424*/            OPC_MoveParent,
/*472425*/            OPC_RecordChild1, // #2 = $src1
/*472426*/            OPC_MoveChild2,
/*472427*/            OPC_CheckCondCode, ISD::SETEQ,
/*472429*/            OPC_MoveParent,
/*472430*/            OPC_CheckType, MVT::v16i1,
/*472432*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*472434*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472437*/            OPC_EmitMergeInputChains1_0,
/*472438*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQWZ256rm:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472450*/          /*SwitchType*/ 26, MVT::v8i32,// ->472478
/*472452*/            OPC_MoveParent,
/*472453*/            OPC_RecordChild1, // #2 = $src1
/*472454*/            OPC_MoveChild2,
/*472455*/            OPC_CheckCondCode, ISD::SETEQ,
/*472457*/            OPC_MoveParent,
/*472458*/            OPC_CheckType, MVT::v8i1,
/*472460*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472462*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472465*/            OPC_EmitMergeInputChains1_0,
/*472466*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZ256rm:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472478*/          0, // EndSwitchType
/*472479*/        /*SwitchType*/ 87, MVT::v2i64,// ->472568
/*472481*/          OPC_MoveParent,
/*472482*/          OPC_SwitchType /*3 cases */, 26, MVT::v16i8,// ->472511
/*472485*/            OPC_MoveParent,
/*472486*/            OPC_RecordChild1, // #2 = $src1
/*472487*/            OPC_MoveChild2,
/*472488*/            OPC_CheckCondCode, ISD::SETEQ,
/*472490*/            OPC_MoveParent,
/*472491*/            OPC_CheckType, MVT::v16i1,
/*472493*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*472495*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472498*/            OPC_EmitMergeInputChains1_0,
/*472499*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQBZ128rm:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472511*/          /*SwitchType*/ 26, MVT::v8i16,// ->472539
/*472513*/            OPC_MoveParent,
/*472514*/            OPC_RecordChild1, // #2 = $src1
/*472515*/            OPC_MoveChild2,
/*472516*/            OPC_CheckCondCode, ISD::SETEQ,
/*472518*/            OPC_MoveParent,
/*472519*/            OPC_CheckType, MVT::v8i1,
/*472521*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*472523*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472526*/            OPC_EmitMergeInputChains1_0,
/*472527*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQWZ128rm:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472539*/          /*SwitchType*/ 26, MVT::v4i32,// ->472567
/*472541*/            OPC_MoveParent,
/*472542*/            OPC_RecordChild1, // #2 = $src1
/*472543*/            OPC_MoveChild2,
/*472544*/            OPC_CheckCondCode, ISD::SETEQ,
/*472546*/            OPC_MoveParent,
/*472547*/            OPC_CheckType, MVT::v4i1,
/*472549*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472551*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472554*/            OPC_EmitMergeInputChains1_0,
/*472555*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZ128rm:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472567*/          0, // EndSwitchType
/*472568*/        0, // EndSwitchType
/*472569*/      /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(X86ISD::VBROADCAST),// ->472767
/*472573*/        OPC_MoveChild0,
/*472574*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*472577*/        OPC_RecordMemRef,
/*472578*/        OPC_RecordNode, // #0 = 'ld' chained node
/*472579*/        OPC_CheckFoldableChainNode,
/*472580*/        OPC_RecordChild1, // #1 = $src2
/*472581*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472583*/        OPC_SwitchType /*2 cases */, 89, MVT::i32,// ->472675
/*472586*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*472588*/          OPC_MoveParent,
/*472589*/          OPC_SwitchType /*3 cases */, 26, MVT::v16i32,// ->472618
/*472592*/            OPC_MoveParent,
/*472593*/            OPC_RecordChild1, // #2 = $src1
/*472594*/            OPC_MoveChild2,
/*472595*/            OPC_CheckCondCode, ISD::SETEQ,
/*472597*/            OPC_MoveParent,
/*472598*/            OPC_CheckType, MVT::v16i1,
/*472600*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472602*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472605*/            OPC_EmitMergeInputChains1_0,
/*472606*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v16i1] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZrmb:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472618*/          /*SwitchType*/ 26, MVT::v8i32,// ->472646
/*472620*/            OPC_MoveParent,
/*472621*/            OPC_RecordChild1, // #2 = $src1
/*472622*/            OPC_MoveChild2,
/*472623*/            OPC_CheckCondCode, ISD::SETEQ,
/*472625*/            OPC_MoveParent,
/*472626*/            OPC_CheckType, MVT::v8i1,
/*472628*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472630*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472633*/            OPC_EmitMergeInputChains1_0,
/*472634*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZ256rmb:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472646*/          /*SwitchType*/ 26, MVT::v4i32,// ->472674
/*472648*/            OPC_MoveParent,
/*472649*/            OPC_RecordChild1, // #2 = $src1
/*472650*/            OPC_MoveChild2,
/*472651*/            OPC_CheckCondCode, ISD::SETEQ,
/*472653*/            OPC_MoveParent,
/*472654*/            OPC_CheckType, MVT::v4i1,
/*472656*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472658*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472661*/            OPC_EmitMergeInputChains1_0,
/*472662*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQDZ128rmb:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472674*/          0, // EndSwitchType
/*472675*/        /*SwitchType*/ 89, MVT::i64,// ->472766
/*472677*/          OPC_CheckPredicate, 9, // Predicate_load
/*472679*/          OPC_MoveParent,
/*472680*/          OPC_SwitchType /*3 cases */, 26, MVT::v8i64,// ->472709
/*472683*/            OPC_MoveParent,
/*472684*/            OPC_RecordChild1, // #2 = $src1
/*472685*/            OPC_MoveChild2,
/*472686*/            OPC_CheckCondCode, ISD::SETEQ,
/*472688*/            OPC_MoveParent,
/*472689*/            OPC_CheckType, MVT::v8i1,
/*472691*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472693*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472696*/            OPC_EmitMergeInputChains1_0,
/*472697*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQQZrmb:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472709*/          /*SwitchType*/ 26, MVT::v4i64,// ->472737
/*472711*/            OPC_MoveParent,
/*472712*/            OPC_RecordChild1, // #2 = $src1
/*472713*/            OPC_MoveChild2,
/*472714*/            OPC_CheckCondCode, ISD::SETEQ,
/*472716*/            OPC_MoveParent,
/*472717*/            OPC_CheckType, MVT::v4i1,
/*472719*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472721*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472724*/            OPC_EmitMergeInputChains1_0,
/*472725*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQQZ256rmb:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472737*/          /*SwitchType*/ 26, MVT::v2i64,// ->472765
/*472739*/            OPC_MoveParent,
/*472740*/            OPC_RecordChild1, // #2 = $src1
/*472741*/            OPC_MoveChild2,
/*472742*/            OPC_CheckCondCode, ISD::SETEQ,
/*472744*/            OPC_MoveParent,
/*472745*/            OPC_CheckType, MVT::v2i1,
/*472747*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472749*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472752*/            OPC_EmitMergeInputChains1_0,
/*472753*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86setcc_commute:{ *:[v2i1] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 30
                      // Dst: (VPCMPEQQZ128rmb:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472765*/          0, // EndSwitchType
/*472766*/        0, // EndSwitchType
/*472767*/      0, // EndSwitchOpcode
/*472768*/    /*Scope*/ 47|128,26/*3375*/, /*->476145*/
/*472770*/      OPC_RecordNode, // #0 = $cc
/*472771*/      OPC_Scope, 56, /*->472829*/ // 60 children in Scope
/*472773*/        OPC_RecordChild0, // #1 = $src1
/*472774*/        OPC_CheckChild0Type, MVT::v64i8,
/*472776*/        OPC_MoveChild1,
/*472777*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*472780*/        OPC_MoveChild0,
/*472781*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*472784*/        OPC_RecordMemRef,
/*472785*/        OPC_RecordNode, // #2 = 'ld' chained node
/*472786*/        OPC_CheckFoldableChainNode,
/*472787*/        OPC_RecordChild1, // #3 = $src2
/*472788*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472790*/        OPC_CheckPredicate, 9, // Predicate_load
/*472792*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*472794*/        OPC_CheckType, MVT::v8i64,
/*472796*/        OPC_MoveParent,
/*472797*/        OPC_MoveParent,
/*472798*/        OPC_MoveChild2,
/*472799*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*472802*/        OPC_MoveParent,
/*472803*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*472805*/        OPC_CheckType, MVT::v64i1,
/*472807*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*472809*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*472812*/        OPC_EmitMergeInputChains1_2,
/*472813*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*472816*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPBZrmi:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*472829*/      /*Scope*/ 56, /*->472886*/
/*472830*/        OPC_MoveChild0,
/*472831*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*472834*/        OPC_MoveChild0,
/*472835*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*472838*/        OPC_RecordMemRef,
/*472839*/        OPC_RecordNode, // #1 = 'ld' chained node
/*472840*/        OPC_CheckFoldableChainNode,
/*472841*/        OPC_RecordChild1, // #2 = $src2
/*472842*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472844*/        OPC_CheckPredicate, 9, // Predicate_load
/*472846*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*472848*/        OPC_CheckType, MVT::v8i64,
/*472850*/        OPC_MoveParent,
/*472851*/        OPC_CheckType, MVT::v64i8,
/*472853*/        OPC_MoveParent,
/*472854*/        OPC_RecordChild1, // #3 = $src1
/*472855*/        OPC_MoveChild2,
/*472856*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*472859*/        OPC_MoveParent,
/*472860*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*472862*/        OPC_CheckType, MVT::v64i1,
/*472864*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*472866*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*472869*/        OPC_EmitMergeInputChains1_1,
/*472870*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*472873*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPBZrmi:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/*472886*/      /*Scope*/ 56, /*->472943*/
/*472887*/        OPC_RecordChild0, // #1 = $src1
/*472888*/        OPC_CheckChild0Type, MVT::v32i8,
/*472890*/        OPC_MoveChild1,
/*472891*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*472894*/        OPC_MoveChild0,
/*472895*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*472898*/        OPC_RecordMemRef,
/*472899*/        OPC_RecordNode, // #2 = 'ld' chained node
/*472900*/        OPC_CheckFoldableChainNode,
/*472901*/        OPC_RecordChild1, // #3 = $src2
/*472902*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472904*/        OPC_CheckPredicate, 9, // Predicate_load
/*472906*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*472908*/        OPC_CheckType, MVT::v4i64,
/*472910*/        OPC_MoveParent,
/*472911*/        OPC_MoveParent,
/*472912*/        OPC_MoveChild2,
/*472913*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*472916*/        OPC_MoveParent,
/*472917*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*472919*/        OPC_CheckType, MVT::v32i1,
/*472921*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*472923*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*472926*/        OPC_EmitMergeInputChains1_2,
/*472927*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*472930*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPBZ256rmi:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*472943*/      /*Scope*/ 56, /*->473000*/
/*472944*/        OPC_MoveChild0,
/*472945*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*472948*/        OPC_MoveChild0,
/*472949*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*472952*/        OPC_RecordMemRef,
/*472953*/        OPC_RecordNode, // #1 = 'ld' chained node
/*472954*/        OPC_CheckFoldableChainNode,
/*472955*/        OPC_RecordChild1, // #2 = $src2
/*472956*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472958*/        OPC_CheckPredicate, 9, // Predicate_load
/*472960*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*472962*/        OPC_CheckType, MVT::v4i64,
/*472964*/        OPC_MoveParent,
/*472965*/        OPC_CheckType, MVT::v32i8,
/*472967*/        OPC_MoveParent,
/*472968*/        OPC_RecordChild1, // #3 = $src1
/*472969*/        OPC_MoveChild2,
/*472970*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*472973*/        OPC_MoveParent,
/*472974*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*472976*/        OPC_CheckType, MVT::v32i1,
/*472978*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*472980*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*472983*/        OPC_EmitMergeInputChains1_1,
/*472984*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*472987*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPBZ256rmi:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/*473000*/      /*Scope*/ 56, /*->473057*/
/*473001*/        OPC_RecordChild0, // #1 = $src1
/*473002*/        OPC_CheckChild0Type, MVT::v16i8,
/*473004*/        OPC_MoveChild1,
/*473005*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473008*/        OPC_MoveChild0,
/*473009*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473012*/        OPC_RecordMemRef,
/*473013*/        OPC_RecordNode, // #2 = 'ld' chained node
/*473014*/        OPC_CheckFoldableChainNode,
/*473015*/        OPC_RecordChild1, // #3 = $src2
/*473016*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473018*/        OPC_CheckPredicate, 9, // Predicate_load
/*473020*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473022*/        OPC_CheckType, MVT::v2i64,
/*473024*/        OPC_MoveParent,
/*473025*/        OPC_MoveParent,
/*473026*/        OPC_MoveChild2,
/*473027*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473030*/        OPC_MoveParent,
/*473031*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*473033*/        OPC_CheckType, MVT::v16i1,
/*473035*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473037*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473040*/        OPC_EmitMergeInputChains1_2,
/*473041*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*473044*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPBZ128rmi:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*473057*/      /*Scope*/ 56, /*->473114*/
/*473058*/        OPC_MoveChild0,
/*473059*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473062*/        OPC_MoveChild0,
/*473063*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473066*/        OPC_RecordMemRef,
/*473067*/        OPC_RecordNode, // #1 = 'ld' chained node
/*473068*/        OPC_CheckFoldableChainNode,
/*473069*/        OPC_RecordChild1, // #2 = $src2
/*473070*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473072*/        OPC_CheckPredicate, 9, // Predicate_load
/*473074*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473076*/        OPC_CheckType, MVT::v2i64,
/*473078*/        OPC_MoveParent,
/*473079*/        OPC_CheckType, MVT::v16i8,
/*473081*/        OPC_MoveParent,
/*473082*/        OPC_RecordChild1, // #3 = $src1
/*473083*/        OPC_MoveChild2,
/*473084*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473087*/        OPC_MoveParent,
/*473088*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*473090*/        OPC_CheckType, MVT::v16i1,
/*473092*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473094*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473097*/        OPC_EmitMergeInputChains1_1,
/*473098*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*473101*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPBZ128rmi:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*473114*/      /*Scope*/ 56, /*->473171*/
/*473115*/        OPC_RecordChild0, // #1 = $src1
/*473116*/        OPC_CheckChild0Type, MVT::v64i8,
/*473118*/        OPC_MoveChild1,
/*473119*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473122*/        OPC_MoveChild0,
/*473123*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473126*/        OPC_RecordMemRef,
/*473127*/        OPC_RecordNode, // #2 = 'ld' chained node
/*473128*/        OPC_CheckFoldableChainNode,
/*473129*/        OPC_RecordChild1, // #3 = $src2
/*473130*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473132*/        OPC_CheckPredicate, 9, // Predicate_load
/*473134*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473136*/        OPC_CheckType, MVT::v8i64,
/*473138*/        OPC_MoveParent,
/*473139*/        OPC_MoveParent,
/*473140*/        OPC_MoveChild2,
/*473141*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473144*/        OPC_MoveParent,
/*473145*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*473147*/        OPC_CheckType, MVT::v64i1,
/*473149*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*473151*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473154*/        OPC_EmitMergeInputChains1_2,
/*473155*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*473158*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUBZrmi:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*473171*/      /*Scope*/ 56, /*->473228*/
/*473172*/        OPC_MoveChild0,
/*473173*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473176*/        OPC_MoveChild0,
/*473177*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473180*/        OPC_RecordMemRef,
/*473181*/        OPC_RecordNode, // #1 = 'ld' chained node
/*473182*/        OPC_CheckFoldableChainNode,
/*473183*/        OPC_RecordChild1, // #2 = $src2
/*473184*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473186*/        OPC_CheckPredicate, 9, // Predicate_load
/*473188*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473190*/        OPC_CheckType, MVT::v8i64,
/*473192*/        OPC_MoveParent,
/*473193*/        OPC_CheckType, MVT::v64i8,
/*473195*/        OPC_MoveParent,
/*473196*/        OPC_RecordChild1, // #3 = $src1
/*473197*/        OPC_MoveChild2,
/*473198*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473201*/        OPC_MoveParent,
/*473202*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*473204*/        OPC_CheckType, MVT::v64i1,
/*473206*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*473208*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473211*/        OPC_EmitMergeInputChains1_1,
/*473212*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*473215*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUBZrmi:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/*473228*/      /*Scope*/ 56, /*->473285*/
/*473229*/        OPC_RecordChild0, // #1 = $src1
/*473230*/        OPC_CheckChild0Type, MVT::v32i8,
/*473232*/        OPC_MoveChild1,
/*473233*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473236*/        OPC_MoveChild0,
/*473237*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473240*/        OPC_RecordMemRef,
/*473241*/        OPC_RecordNode, // #2 = 'ld' chained node
/*473242*/        OPC_CheckFoldableChainNode,
/*473243*/        OPC_RecordChild1, // #3 = $src2
/*473244*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473246*/        OPC_CheckPredicate, 9, // Predicate_load
/*473248*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473250*/        OPC_CheckType, MVT::v4i64,
/*473252*/        OPC_MoveParent,
/*473253*/        OPC_MoveParent,
/*473254*/        OPC_MoveChild2,
/*473255*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473258*/        OPC_MoveParent,
/*473259*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*473261*/        OPC_CheckType, MVT::v32i1,
/*473263*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473265*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473268*/        OPC_EmitMergeInputChains1_2,
/*473269*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*473272*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUBZ256rmi:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*473285*/      /*Scope*/ 56, /*->473342*/
/*473286*/        OPC_MoveChild0,
/*473287*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473290*/        OPC_MoveChild0,
/*473291*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473294*/        OPC_RecordMemRef,
/*473295*/        OPC_RecordNode, // #1 = 'ld' chained node
/*473296*/        OPC_CheckFoldableChainNode,
/*473297*/        OPC_RecordChild1, // #2 = $src2
/*473298*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473300*/        OPC_CheckPredicate, 9, // Predicate_load
/*473302*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473304*/        OPC_CheckType, MVT::v4i64,
/*473306*/        OPC_MoveParent,
/*473307*/        OPC_CheckType, MVT::v32i8,
/*473309*/        OPC_MoveParent,
/*473310*/        OPC_RecordChild1, // #3 = $src1
/*473311*/        OPC_MoveChild2,
/*473312*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473315*/        OPC_MoveParent,
/*473316*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*473318*/        OPC_CheckType, MVT::v32i1,
/*473320*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473322*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473325*/        OPC_EmitMergeInputChains1_1,
/*473326*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*473329*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUBZ256rmi:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/*473342*/      /*Scope*/ 56, /*->473399*/
/*473343*/        OPC_RecordChild0, // #1 = $src1
/*473344*/        OPC_CheckChild0Type, MVT::v16i8,
/*473346*/        OPC_MoveChild1,
/*473347*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473350*/        OPC_MoveChild0,
/*473351*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473354*/        OPC_RecordMemRef,
/*473355*/        OPC_RecordNode, // #2 = 'ld' chained node
/*473356*/        OPC_CheckFoldableChainNode,
/*473357*/        OPC_RecordChild1, // #3 = $src2
/*473358*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473360*/        OPC_CheckPredicate, 9, // Predicate_load
/*473362*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473364*/        OPC_CheckType, MVT::v2i64,
/*473366*/        OPC_MoveParent,
/*473367*/        OPC_MoveParent,
/*473368*/        OPC_MoveChild2,
/*473369*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473372*/        OPC_MoveParent,
/*473373*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*473375*/        OPC_CheckType, MVT::v16i1,
/*473377*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473379*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473382*/        OPC_EmitMergeInputChains1_2,
/*473383*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*473386*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUBZ128rmi:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*473399*/      /*Scope*/ 56, /*->473456*/
/*473400*/        OPC_MoveChild0,
/*473401*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473404*/        OPC_MoveChild0,
/*473405*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473408*/        OPC_RecordMemRef,
/*473409*/        OPC_RecordNode, // #1 = 'ld' chained node
/*473410*/        OPC_CheckFoldableChainNode,
/*473411*/        OPC_RecordChild1, // #2 = $src2
/*473412*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473414*/        OPC_CheckPredicate, 9, // Predicate_load
/*473416*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473418*/        OPC_CheckType, MVT::v2i64,
/*473420*/        OPC_MoveParent,
/*473421*/        OPC_CheckType, MVT::v16i8,
/*473423*/        OPC_MoveParent,
/*473424*/        OPC_RecordChild1, // #3 = $src1
/*473425*/        OPC_MoveChild2,
/*473426*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473429*/        OPC_MoveParent,
/*473430*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*473432*/        OPC_CheckType, MVT::v16i1,
/*473434*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473436*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473439*/        OPC_EmitMergeInputChains1_1,
/*473440*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*473443*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUBZ128rmi:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*473456*/      /*Scope*/ 56, /*->473513*/
/*473457*/        OPC_RecordChild0, // #1 = $src1
/*473458*/        OPC_CheckChild0Type, MVT::v32i16,
/*473460*/        OPC_MoveChild1,
/*473461*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473464*/        OPC_MoveChild0,
/*473465*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473468*/        OPC_RecordMemRef,
/*473469*/        OPC_RecordNode, // #2 = 'ld' chained node
/*473470*/        OPC_CheckFoldableChainNode,
/*473471*/        OPC_RecordChild1, // #3 = $src2
/*473472*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473474*/        OPC_CheckPredicate, 9, // Predicate_load
/*473476*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473478*/        OPC_CheckType, MVT::v8i64,
/*473480*/        OPC_MoveParent,
/*473481*/        OPC_MoveParent,
/*473482*/        OPC_MoveChild2,
/*473483*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473486*/        OPC_MoveParent,
/*473487*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*473489*/        OPC_CheckType, MVT::v32i1,
/*473491*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*473493*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473496*/        OPC_EmitMergeInputChains1_2,
/*473497*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*473500*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPWZrmi:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*473513*/      /*Scope*/ 56, /*->473570*/
/*473514*/        OPC_MoveChild0,
/*473515*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473518*/        OPC_MoveChild0,
/*473519*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473522*/        OPC_RecordMemRef,
/*473523*/        OPC_RecordNode, // #1 = 'ld' chained node
/*473524*/        OPC_CheckFoldableChainNode,
/*473525*/        OPC_RecordChild1, // #2 = $src2
/*473526*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473528*/        OPC_CheckPredicate, 9, // Predicate_load
/*473530*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473532*/        OPC_CheckType, MVT::v8i64,
/*473534*/        OPC_MoveParent,
/*473535*/        OPC_CheckType, MVT::v32i16,
/*473537*/        OPC_MoveParent,
/*473538*/        OPC_RecordChild1, // #3 = $src1
/*473539*/        OPC_MoveChild2,
/*473540*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473543*/        OPC_MoveParent,
/*473544*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*473546*/        OPC_CheckType, MVT::v32i1,
/*473548*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*473550*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473553*/        OPC_EmitMergeInputChains1_1,
/*473554*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*473557*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPWZrmi:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/*473570*/      /*Scope*/ 56, /*->473627*/
/*473571*/        OPC_RecordChild0, // #1 = $src1
/*473572*/        OPC_CheckChild0Type, MVT::v16i16,
/*473574*/        OPC_MoveChild1,
/*473575*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473578*/        OPC_MoveChild0,
/*473579*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473582*/        OPC_RecordMemRef,
/*473583*/        OPC_RecordNode, // #2 = 'ld' chained node
/*473584*/        OPC_CheckFoldableChainNode,
/*473585*/        OPC_RecordChild1, // #3 = $src2
/*473586*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473588*/        OPC_CheckPredicate, 9, // Predicate_load
/*473590*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473592*/        OPC_CheckType, MVT::v4i64,
/*473594*/        OPC_MoveParent,
/*473595*/        OPC_MoveParent,
/*473596*/        OPC_MoveChild2,
/*473597*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473600*/        OPC_MoveParent,
/*473601*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*473603*/        OPC_CheckType, MVT::v16i1,
/*473605*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473607*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473610*/        OPC_EmitMergeInputChains1_2,
/*473611*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*473614*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPWZ256rmi:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*473627*/      /*Scope*/ 56, /*->473684*/
/*473628*/        OPC_MoveChild0,
/*473629*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473632*/        OPC_MoveChild0,
/*473633*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473636*/        OPC_RecordMemRef,
/*473637*/        OPC_RecordNode, // #1 = 'ld' chained node
/*473638*/        OPC_CheckFoldableChainNode,
/*473639*/        OPC_RecordChild1, // #2 = $src2
/*473640*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473642*/        OPC_CheckPredicate, 9, // Predicate_load
/*473644*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473646*/        OPC_CheckType, MVT::v4i64,
/*473648*/        OPC_MoveParent,
/*473649*/        OPC_CheckType, MVT::v16i16,
/*473651*/        OPC_MoveParent,
/*473652*/        OPC_RecordChild1, // #3 = $src1
/*473653*/        OPC_MoveChild2,
/*473654*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473657*/        OPC_MoveParent,
/*473658*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*473660*/        OPC_CheckType, MVT::v16i1,
/*473662*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473664*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473667*/        OPC_EmitMergeInputChains1_1,
/*473668*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*473671*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPWZ256rmi:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*473684*/      /*Scope*/ 56, /*->473741*/
/*473685*/        OPC_RecordChild0, // #1 = $src1
/*473686*/        OPC_CheckChild0Type, MVT::v8i16,
/*473688*/        OPC_MoveChild1,
/*473689*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473692*/        OPC_MoveChild0,
/*473693*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473696*/        OPC_RecordMemRef,
/*473697*/        OPC_RecordNode, // #2 = 'ld' chained node
/*473698*/        OPC_CheckFoldableChainNode,
/*473699*/        OPC_RecordChild1, // #3 = $src2
/*473700*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473702*/        OPC_CheckPredicate, 9, // Predicate_load
/*473704*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473706*/        OPC_CheckType, MVT::v2i64,
/*473708*/        OPC_MoveParent,
/*473709*/        OPC_MoveParent,
/*473710*/        OPC_MoveChild2,
/*473711*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473714*/        OPC_MoveParent,
/*473715*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*473717*/        OPC_CheckType, MVT::v8i1,
/*473719*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473721*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473724*/        OPC_EmitMergeInputChains1_2,
/*473725*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*473728*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPWZ128rmi:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*473741*/      /*Scope*/ 56, /*->473798*/
/*473742*/        OPC_MoveChild0,
/*473743*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473746*/        OPC_MoveChild0,
/*473747*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473750*/        OPC_RecordMemRef,
/*473751*/        OPC_RecordNode, // #1 = 'ld' chained node
/*473752*/        OPC_CheckFoldableChainNode,
/*473753*/        OPC_RecordChild1, // #2 = $src2
/*473754*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473756*/        OPC_CheckPredicate, 9, // Predicate_load
/*473758*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473760*/        OPC_CheckType, MVT::v2i64,
/*473762*/        OPC_MoveParent,
/*473763*/        OPC_CheckType, MVT::v8i16,
/*473765*/        OPC_MoveParent,
/*473766*/        OPC_RecordChild1, // #3 = $src1
/*473767*/        OPC_MoveChild2,
/*473768*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473771*/        OPC_MoveParent,
/*473772*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*473774*/        OPC_CheckType, MVT::v8i1,
/*473776*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473778*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473781*/        OPC_EmitMergeInputChains1_1,
/*473782*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*473785*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPWZ128rmi:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*473798*/      /*Scope*/ 56, /*->473855*/
/*473799*/        OPC_RecordChild0, // #1 = $src1
/*473800*/        OPC_CheckChild0Type, MVT::v32i16,
/*473802*/        OPC_MoveChild1,
/*473803*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473806*/        OPC_MoveChild0,
/*473807*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473810*/        OPC_RecordMemRef,
/*473811*/        OPC_RecordNode, // #2 = 'ld' chained node
/*473812*/        OPC_CheckFoldableChainNode,
/*473813*/        OPC_RecordChild1, // #3 = $src2
/*473814*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473816*/        OPC_CheckPredicate, 9, // Predicate_load
/*473818*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473820*/        OPC_CheckType, MVT::v8i64,
/*473822*/        OPC_MoveParent,
/*473823*/        OPC_MoveParent,
/*473824*/        OPC_MoveChild2,
/*473825*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473828*/        OPC_MoveParent,
/*473829*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*473831*/        OPC_CheckType, MVT::v32i1,
/*473833*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*473835*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473838*/        OPC_EmitMergeInputChains1_2,
/*473839*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*473842*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUWZrmi:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*473855*/      /*Scope*/ 56, /*->473912*/
/*473856*/        OPC_MoveChild0,
/*473857*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473860*/        OPC_MoveChild0,
/*473861*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473864*/        OPC_RecordMemRef,
/*473865*/        OPC_RecordNode, // #1 = 'ld' chained node
/*473866*/        OPC_CheckFoldableChainNode,
/*473867*/        OPC_RecordChild1, // #2 = $src2
/*473868*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473870*/        OPC_CheckPredicate, 9, // Predicate_load
/*473872*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473874*/        OPC_CheckType, MVT::v8i64,
/*473876*/        OPC_MoveParent,
/*473877*/        OPC_CheckType, MVT::v32i16,
/*473879*/        OPC_MoveParent,
/*473880*/        OPC_RecordChild1, // #3 = $src1
/*473881*/        OPC_MoveChild2,
/*473882*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473885*/        OPC_MoveParent,
/*473886*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*473888*/        OPC_CheckType, MVT::v32i1,
/*473890*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*473892*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473895*/        OPC_EmitMergeInputChains1_1,
/*473896*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*473899*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUWZrmi:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/*473912*/      /*Scope*/ 56, /*->473969*/
/*473913*/        OPC_RecordChild0, // #1 = $src1
/*473914*/        OPC_CheckChild0Type, MVT::v16i16,
/*473916*/        OPC_MoveChild1,
/*473917*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473920*/        OPC_MoveChild0,
/*473921*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473924*/        OPC_RecordMemRef,
/*473925*/        OPC_RecordNode, // #2 = 'ld' chained node
/*473926*/        OPC_CheckFoldableChainNode,
/*473927*/        OPC_RecordChild1, // #3 = $src2
/*473928*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473930*/        OPC_CheckPredicate, 9, // Predicate_load
/*473932*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473934*/        OPC_CheckType, MVT::v4i64,
/*473936*/        OPC_MoveParent,
/*473937*/        OPC_MoveParent,
/*473938*/        OPC_MoveChild2,
/*473939*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473942*/        OPC_MoveParent,
/*473943*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*473945*/        OPC_CheckType, MVT::v16i1,
/*473947*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473949*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*473952*/        OPC_EmitMergeInputChains1_2,
/*473953*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*473956*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUWZ256rmi:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*473969*/      /*Scope*/ 56, /*->474026*/
/*473970*/        OPC_MoveChild0,
/*473971*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*473974*/        OPC_MoveChild0,
/*473975*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*473978*/        OPC_RecordMemRef,
/*473979*/        OPC_RecordNode, // #1 = 'ld' chained node
/*473980*/        OPC_CheckFoldableChainNode,
/*473981*/        OPC_RecordChild1, // #2 = $src2
/*473982*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473984*/        OPC_CheckPredicate, 9, // Predicate_load
/*473986*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*473988*/        OPC_CheckType, MVT::v4i64,
/*473990*/        OPC_MoveParent,
/*473991*/        OPC_CheckType, MVT::v16i16,
/*473993*/        OPC_MoveParent,
/*473994*/        OPC_RecordChild1, // #3 = $src1
/*473995*/        OPC_MoveChild2,
/*473996*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*473999*/        OPC_MoveParent,
/*474000*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*474002*/        OPC_CheckType, MVT::v16i1,
/*474004*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*474006*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474009*/        OPC_EmitMergeInputChains1_1,
/*474010*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*474013*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUWZ256rmi:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*474026*/      /*Scope*/ 56, /*->474083*/
/*474027*/        OPC_RecordChild0, // #1 = $src1
/*474028*/        OPC_CheckChild0Type, MVT::v8i16,
/*474030*/        OPC_MoveChild1,
/*474031*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*474034*/        OPC_MoveChild0,
/*474035*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474038*/        OPC_RecordMemRef,
/*474039*/        OPC_RecordNode, // #2 = 'ld' chained node
/*474040*/        OPC_CheckFoldableChainNode,
/*474041*/        OPC_RecordChild1, // #3 = $src2
/*474042*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474044*/        OPC_CheckPredicate, 9, // Predicate_load
/*474046*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*474048*/        OPC_CheckType, MVT::v2i64,
/*474050*/        OPC_MoveParent,
/*474051*/        OPC_MoveParent,
/*474052*/        OPC_MoveChild2,
/*474053*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474056*/        OPC_MoveParent,
/*474057*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*474059*/        OPC_CheckType, MVT::v8i1,
/*474061*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*474063*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474066*/        OPC_EmitMergeInputChains1_2,
/*474067*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*474070*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUWZ128rmi:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*474083*/      /*Scope*/ 56, /*->474140*/
/*474084*/        OPC_MoveChild0,
/*474085*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*474088*/        OPC_MoveChild0,
/*474089*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474092*/        OPC_RecordMemRef,
/*474093*/        OPC_RecordNode, // #1 = 'ld' chained node
/*474094*/        OPC_CheckFoldableChainNode,
/*474095*/        OPC_RecordChild1, // #2 = $src2
/*474096*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474098*/        OPC_CheckPredicate, 9, // Predicate_load
/*474100*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*474102*/        OPC_CheckType, MVT::v2i64,
/*474104*/        OPC_MoveParent,
/*474105*/        OPC_CheckType, MVT::v8i16,
/*474107*/        OPC_MoveParent,
/*474108*/        OPC_RecordChild1, // #3 = $src1
/*474109*/        OPC_MoveChild2,
/*474110*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474113*/        OPC_MoveParent,
/*474114*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*474116*/        OPC_CheckType, MVT::v8i1,
/*474118*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*474120*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474123*/        OPC_EmitMergeInputChains1_1,
/*474124*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*474127*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUWZ128rmi:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*474140*/      /*Scope*/ 56, /*->474197*/
/*474141*/        OPC_RecordChild0, // #1 = $src1
/*474142*/        OPC_CheckChild0Type, MVT::v16i32,
/*474144*/        OPC_MoveChild1,
/*474145*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*474148*/        OPC_MoveChild0,
/*474149*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474152*/        OPC_RecordMemRef,
/*474153*/        OPC_RecordNode, // #2 = 'ld' chained node
/*474154*/        OPC_CheckFoldableChainNode,
/*474155*/        OPC_RecordChild1, // #3 = $src2
/*474156*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474158*/        OPC_CheckPredicate, 9, // Predicate_load
/*474160*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*474162*/        OPC_CheckType, MVT::v8i64,
/*474164*/        OPC_MoveParent,
/*474165*/        OPC_MoveParent,
/*474166*/        OPC_MoveChild2,
/*474167*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474170*/        OPC_MoveParent,
/*474171*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*474173*/        OPC_CheckType, MVT::v16i1,
/*474175*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474177*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474180*/        OPC_EmitMergeInputChains1_2,
/*474181*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*474184*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZrmi:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*474197*/      /*Scope*/ 56, /*->474254*/
/*474198*/        OPC_MoveChild0,
/*474199*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*474202*/        OPC_MoveChild0,
/*474203*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474206*/        OPC_RecordMemRef,
/*474207*/        OPC_RecordNode, // #1 = 'ld' chained node
/*474208*/        OPC_CheckFoldableChainNode,
/*474209*/        OPC_RecordChild1, // #2 = $src2
/*474210*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474212*/        OPC_CheckPredicate, 9, // Predicate_load
/*474214*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*474216*/        OPC_CheckType, MVT::v8i64,
/*474218*/        OPC_MoveParent,
/*474219*/        OPC_CheckType, MVT::v16i32,
/*474221*/        OPC_MoveParent,
/*474222*/        OPC_RecordChild1, // #3 = $src1
/*474223*/        OPC_MoveChild2,
/*474224*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474227*/        OPC_MoveParent,
/*474228*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*474230*/        OPC_CheckType, MVT::v16i1,
/*474232*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474234*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474237*/        OPC_EmitMergeInputChains1_1,
/*474238*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*474241*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZrmi:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*474254*/      /*Scope*/ 54, /*->474309*/
/*474255*/        OPC_RecordChild0, // #1 = $src1
/*474256*/        OPC_CheckChild0Type, MVT::v16i32,
/*474258*/        OPC_MoveChild1,
/*474259*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*474262*/        OPC_MoveChild0,
/*474263*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474266*/        OPC_RecordMemRef,
/*474267*/        OPC_RecordNode, // #2 = 'ld' chained node
/*474268*/        OPC_CheckFoldableChainNode,
/*474269*/        OPC_RecordChild1, // #3 = $src2
/*474270*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474272*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*474274*/        OPC_CheckType, MVT::i32,
/*474276*/        OPC_MoveParent,
/*474277*/        OPC_MoveParent,
/*474278*/        OPC_MoveChild2,
/*474279*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474282*/        OPC_MoveParent,
/*474283*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*474285*/        OPC_CheckType, MVT::v16i1,
/*474287*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474289*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474292*/        OPC_EmitMergeInputChains1_2,
/*474293*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*474296*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZrmib:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/*474309*/      /*Scope*/ 54, /*->474364*/
/*474310*/        OPC_MoveChild0,
/*474311*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*474314*/        OPC_MoveChild0,
/*474315*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474318*/        OPC_RecordMemRef,
/*474319*/        OPC_RecordNode, // #1 = 'ld' chained node
/*474320*/        OPC_CheckFoldableChainNode,
/*474321*/        OPC_RecordChild1, // #2 = $src2
/*474322*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474324*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*474326*/        OPC_CheckType, MVT::i32,
/*474328*/        OPC_MoveParent,
/*474329*/        OPC_CheckType, MVT::v16i32,
/*474331*/        OPC_MoveParent,
/*474332*/        OPC_RecordChild1, // #3 = $src1
/*474333*/        OPC_MoveChild2,
/*474334*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474337*/        OPC_MoveParent,
/*474338*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*474340*/        OPC_CheckType, MVT::v16i1,
/*474342*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474344*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474347*/        OPC_EmitMergeInputChains1_1,
/*474348*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*474351*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZrmib:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*474364*/      /*Scope*/ 56, /*->474421*/
/*474365*/        OPC_RecordChild0, // #1 = $src1
/*474366*/        OPC_CheckChild0Type, MVT::v8i32,
/*474368*/        OPC_MoveChild1,
/*474369*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*474372*/        OPC_MoveChild0,
/*474373*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474376*/        OPC_RecordMemRef,
/*474377*/        OPC_RecordNode, // #2 = 'ld' chained node
/*474378*/        OPC_CheckFoldableChainNode,
/*474379*/        OPC_RecordChild1, // #3 = $src2
/*474380*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474382*/        OPC_CheckPredicate, 9, // Predicate_load
/*474384*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*474386*/        OPC_CheckType, MVT::v4i64,
/*474388*/        OPC_MoveParent,
/*474389*/        OPC_MoveParent,
/*474390*/        OPC_MoveChild2,
/*474391*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474394*/        OPC_MoveParent,
/*474395*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*474397*/        OPC_CheckType, MVT::v8i1,
/*474399*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474401*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474404*/        OPC_EmitMergeInputChains1_2,
/*474405*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*474408*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*474421*/      /*Scope*/ 56, /*->474478*/
/*474422*/        OPC_MoveChild0,
/*474423*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*474426*/        OPC_MoveChild0,
/*474427*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474430*/        OPC_RecordMemRef,
/*474431*/        OPC_RecordNode, // #1 = 'ld' chained node
/*474432*/        OPC_CheckFoldableChainNode,
/*474433*/        OPC_RecordChild1, // #2 = $src2
/*474434*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474436*/        OPC_CheckPredicate, 9, // Predicate_load
/*474438*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*474440*/        OPC_CheckType, MVT::v4i64,
/*474442*/        OPC_MoveParent,
/*474443*/        OPC_CheckType, MVT::v8i32,
/*474445*/        OPC_MoveParent,
/*474446*/        OPC_RecordChild1, // #3 = $src1
/*474447*/        OPC_MoveChild2,
/*474448*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474451*/        OPC_MoveParent,
/*474452*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*474454*/        OPC_CheckType, MVT::v8i1,
/*474456*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474458*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474461*/        OPC_EmitMergeInputChains1_1,
/*474462*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*474465*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*474478*/      /*Scope*/ 54, /*->474533*/
/*474479*/        OPC_RecordChild0, // #1 = $src1
/*474480*/        OPC_CheckChild0Type, MVT::v8i32,
/*474482*/        OPC_MoveChild1,
/*474483*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*474486*/        OPC_MoveChild0,
/*474487*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474490*/        OPC_RecordMemRef,
/*474491*/        OPC_RecordNode, // #2 = 'ld' chained node
/*474492*/        OPC_CheckFoldableChainNode,
/*474493*/        OPC_RecordChild1, // #3 = $src2
/*474494*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474496*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*474498*/        OPC_CheckType, MVT::i32,
/*474500*/        OPC_MoveParent,
/*474501*/        OPC_MoveParent,
/*474502*/        OPC_MoveChild2,
/*474503*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474506*/        OPC_MoveParent,
/*474507*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*474509*/        OPC_CheckType, MVT::v8i1,
/*474511*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474513*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474516*/        OPC_EmitMergeInputChains1_2,
/*474517*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*474520*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZ256rmib:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/*474533*/      /*Scope*/ 54, /*->474588*/
/*474534*/        OPC_MoveChild0,
/*474535*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*474538*/        OPC_MoveChild0,
/*474539*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474542*/        OPC_RecordMemRef,
/*474543*/        OPC_RecordNode, // #1 = 'ld' chained node
/*474544*/        OPC_CheckFoldableChainNode,
/*474545*/        OPC_RecordChild1, // #2 = $src2
/*474546*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474548*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*474550*/        OPC_CheckType, MVT::i32,
/*474552*/        OPC_MoveParent,
/*474553*/        OPC_CheckType, MVT::v8i32,
/*474555*/        OPC_MoveParent,
/*474556*/        OPC_RecordChild1, // #3 = $src1
/*474557*/        OPC_MoveChild2,
/*474558*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474561*/        OPC_MoveParent,
/*474562*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*474564*/        OPC_CheckType, MVT::v8i1,
/*474566*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474568*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474571*/        OPC_EmitMergeInputChains1_1,
/*474572*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*474575*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZ256rmib:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*474588*/      /*Scope*/ 56, /*->474645*/
/*474589*/        OPC_RecordChild0, // #1 = $src1
/*474590*/        OPC_CheckChild0Type, MVT::v4i32,
/*474592*/        OPC_MoveChild1,
/*474593*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*474596*/        OPC_MoveChild0,
/*474597*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474600*/        OPC_RecordMemRef,
/*474601*/        OPC_RecordNode, // #2 = 'ld' chained node
/*474602*/        OPC_CheckFoldableChainNode,
/*474603*/        OPC_RecordChild1, // #3 = $src2
/*474604*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474606*/        OPC_CheckPredicate, 9, // Predicate_load
/*474608*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*474610*/        OPC_CheckType, MVT::v2i64,
/*474612*/        OPC_MoveParent,
/*474613*/        OPC_MoveParent,
/*474614*/        OPC_MoveChild2,
/*474615*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474618*/        OPC_MoveParent,
/*474619*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*474621*/        OPC_CheckType, MVT::v4i1,
/*474623*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474625*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474628*/        OPC_EmitMergeInputChains1_2,
/*474629*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*474632*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*474645*/      /*Scope*/ 56, /*->474702*/
/*474646*/        OPC_MoveChild0,
/*474647*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*474650*/        OPC_MoveChild0,
/*474651*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474654*/        OPC_RecordMemRef,
/*474655*/        OPC_RecordNode, // #1 = 'ld' chained node
/*474656*/        OPC_CheckFoldableChainNode,
/*474657*/        OPC_RecordChild1, // #2 = $src2
/*474658*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474660*/        OPC_CheckPredicate, 9, // Predicate_load
/*474662*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*474664*/        OPC_CheckType, MVT::v2i64,
/*474666*/        OPC_MoveParent,
/*474667*/        OPC_CheckType, MVT::v4i32,
/*474669*/        OPC_MoveParent,
/*474670*/        OPC_RecordChild1, // #3 = $src1
/*474671*/        OPC_MoveChild2,
/*474672*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474675*/        OPC_MoveParent,
/*474676*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*474678*/        OPC_CheckType, MVT::v4i1,
/*474680*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474682*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474685*/        OPC_EmitMergeInputChains1_1,
/*474686*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*474689*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*474702*/      /*Scope*/ 54, /*->474757*/
/*474703*/        OPC_RecordChild0, // #1 = $src1
/*474704*/        OPC_CheckChild0Type, MVT::v4i32,
/*474706*/        OPC_MoveChild1,
/*474707*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*474710*/        OPC_MoveChild0,
/*474711*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474714*/        OPC_RecordMemRef,
/*474715*/        OPC_RecordNode, // #2 = 'ld' chained node
/*474716*/        OPC_CheckFoldableChainNode,
/*474717*/        OPC_RecordChild1, // #3 = $src2
/*474718*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474720*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*474722*/        OPC_CheckType, MVT::i32,
/*474724*/        OPC_MoveParent,
/*474725*/        OPC_MoveParent,
/*474726*/        OPC_MoveChild2,
/*474727*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474730*/        OPC_MoveParent,
/*474731*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*474733*/        OPC_CheckType, MVT::v4i1,
/*474735*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474737*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474740*/        OPC_EmitMergeInputChains1_2,
/*474741*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*474744*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZ128rmib:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/*474757*/      /*Scope*/ 54, /*->474812*/
/*474758*/        OPC_MoveChild0,
/*474759*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*474762*/        OPC_MoveChild0,
/*474763*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474766*/        OPC_RecordMemRef,
/*474767*/        OPC_RecordNode, // #1 = 'ld' chained node
/*474768*/        OPC_CheckFoldableChainNode,
/*474769*/        OPC_RecordChild1, // #2 = $src2
/*474770*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474772*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*474774*/        OPC_CheckType, MVT::i32,
/*474776*/        OPC_MoveParent,
/*474777*/        OPC_CheckType, MVT::v4i32,
/*474779*/        OPC_MoveParent,
/*474780*/        OPC_RecordChild1, // #3 = $src1
/*474781*/        OPC_MoveChild2,
/*474782*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474785*/        OPC_MoveParent,
/*474786*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*474788*/        OPC_CheckType, MVT::v4i1,
/*474790*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474792*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474795*/        OPC_EmitMergeInputChains1_1,
/*474796*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*474799*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPDZ128rmib:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*474812*/      /*Scope*/ 56, /*->474869*/
/*474813*/        OPC_RecordChild0, // #1 = $src1
/*474814*/        OPC_CheckChild0Type, MVT::v16i32,
/*474816*/        OPC_MoveChild1,
/*474817*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*474820*/        OPC_MoveChild0,
/*474821*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474824*/        OPC_RecordMemRef,
/*474825*/        OPC_RecordNode, // #2 = 'ld' chained node
/*474826*/        OPC_CheckFoldableChainNode,
/*474827*/        OPC_RecordChild1, // #3 = $src2
/*474828*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474830*/        OPC_CheckPredicate, 9, // Predicate_load
/*474832*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*474834*/        OPC_CheckType, MVT::v8i64,
/*474836*/        OPC_MoveParent,
/*474837*/        OPC_MoveParent,
/*474838*/        OPC_MoveChild2,
/*474839*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474842*/        OPC_MoveParent,
/*474843*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*474845*/        OPC_CheckType, MVT::v16i1,
/*474847*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474849*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474852*/        OPC_EmitMergeInputChains1_2,
/*474853*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*474856*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZrmi:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*474869*/      /*Scope*/ 56, /*->474926*/
/*474870*/        OPC_MoveChild0,
/*474871*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*474874*/        OPC_MoveChild0,
/*474875*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474878*/        OPC_RecordMemRef,
/*474879*/        OPC_RecordNode, // #1 = 'ld' chained node
/*474880*/        OPC_CheckFoldableChainNode,
/*474881*/        OPC_RecordChild1, // #2 = $src2
/*474882*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474884*/        OPC_CheckPredicate, 9, // Predicate_load
/*474886*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*474888*/        OPC_CheckType, MVT::v8i64,
/*474890*/        OPC_MoveParent,
/*474891*/        OPC_CheckType, MVT::v16i32,
/*474893*/        OPC_MoveParent,
/*474894*/        OPC_RecordChild1, // #3 = $src1
/*474895*/        OPC_MoveChild2,
/*474896*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474899*/        OPC_MoveParent,
/*474900*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*474902*/        OPC_CheckType, MVT::v16i1,
/*474904*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474906*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474909*/        OPC_EmitMergeInputChains1_1,
/*474910*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*474913*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZrmi:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*474926*/      /*Scope*/ 54, /*->474981*/
/*474927*/        OPC_RecordChild0, // #1 = $src1
/*474928*/        OPC_CheckChild0Type, MVT::v16i32,
/*474930*/        OPC_MoveChild1,
/*474931*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*474934*/        OPC_MoveChild0,
/*474935*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474938*/        OPC_RecordMemRef,
/*474939*/        OPC_RecordNode, // #2 = 'ld' chained node
/*474940*/        OPC_CheckFoldableChainNode,
/*474941*/        OPC_RecordChild1, // #3 = $src2
/*474942*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474944*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*474946*/        OPC_CheckType, MVT::i32,
/*474948*/        OPC_MoveParent,
/*474949*/        OPC_MoveParent,
/*474950*/        OPC_MoveChild2,
/*474951*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*474954*/        OPC_MoveParent,
/*474955*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*474957*/        OPC_CheckType, MVT::v16i1,
/*474959*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474961*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*474964*/        OPC_EmitMergeInputChains1_2,
/*474965*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*474968*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZrmib:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/*474981*/      /*Scope*/ 54, /*->475036*/
/*474982*/        OPC_MoveChild0,
/*474983*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*474986*/        OPC_MoveChild0,
/*474987*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*474990*/        OPC_RecordMemRef,
/*474991*/        OPC_RecordNode, // #1 = 'ld' chained node
/*474992*/        OPC_CheckFoldableChainNode,
/*474993*/        OPC_RecordChild1, // #2 = $src2
/*474994*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474996*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*474998*/        OPC_CheckType, MVT::i32,
/*475000*/        OPC_MoveParent,
/*475001*/        OPC_CheckType, MVT::v16i32,
/*475003*/        OPC_MoveParent,
/*475004*/        OPC_RecordChild1, // #3 = $src1
/*475005*/        OPC_MoveChild2,
/*475006*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475009*/        OPC_MoveParent,
/*475010*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*475012*/        OPC_CheckType, MVT::v16i1,
/*475014*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*475016*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475019*/        OPC_EmitMergeInputChains1_1,
/*475020*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*475023*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v16i1] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZrmib:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*475036*/      /*Scope*/ 56, /*->475093*/
/*475037*/        OPC_RecordChild0, // #1 = $src1
/*475038*/        OPC_CheckChild0Type, MVT::v8i32,
/*475040*/        OPC_MoveChild1,
/*475041*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*475044*/        OPC_MoveChild0,
/*475045*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475048*/        OPC_RecordMemRef,
/*475049*/        OPC_RecordNode, // #2 = 'ld' chained node
/*475050*/        OPC_CheckFoldableChainNode,
/*475051*/        OPC_RecordChild1, // #3 = $src2
/*475052*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475054*/        OPC_CheckPredicate, 9, // Predicate_load
/*475056*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*475058*/        OPC_CheckType, MVT::v4i64,
/*475060*/        OPC_MoveParent,
/*475061*/        OPC_MoveParent,
/*475062*/        OPC_MoveChild2,
/*475063*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475066*/        OPC_MoveParent,
/*475067*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*475069*/        OPC_CheckType, MVT::v8i1,
/*475071*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475073*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475076*/        OPC_EmitMergeInputChains1_2,
/*475077*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*475080*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*475093*/      /*Scope*/ 56, /*->475150*/
/*475094*/        OPC_MoveChild0,
/*475095*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*475098*/        OPC_MoveChild0,
/*475099*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475102*/        OPC_RecordMemRef,
/*475103*/        OPC_RecordNode, // #1 = 'ld' chained node
/*475104*/        OPC_CheckFoldableChainNode,
/*475105*/        OPC_RecordChild1, // #2 = $src2
/*475106*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475108*/        OPC_CheckPredicate, 9, // Predicate_load
/*475110*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*475112*/        OPC_CheckType, MVT::v4i64,
/*475114*/        OPC_MoveParent,
/*475115*/        OPC_CheckType, MVT::v8i32,
/*475117*/        OPC_MoveParent,
/*475118*/        OPC_RecordChild1, // #3 = $src1
/*475119*/        OPC_MoveChild2,
/*475120*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475123*/        OPC_MoveParent,
/*475124*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*475126*/        OPC_CheckType, MVT::v8i1,
/*475128*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475130*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475133*/        OPC_EmitMergeInputChains1_1,
/*475134*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*475137*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*475150*/      /*Scope*/ 54, /*->475205*/
/*475151*/        OPC_RecordChild0, // #1 = $src1
/*475152*/        OPC_CheckChild0Type, MVT::v8i32,
/*475154*/        OPC_MoveChild1,
/*475155*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475158*/        OPC_MoveChild0,
/*475159*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475162*/        OPC_RecordMemRef,
/*475163*/        OPC_RecordNode, // #2 = 'ld' chained node
/*475164*/        OPC_CheckFoldableChainNode,
/*475165*/        OPC_RecordChild1, // #3 = $src2
/*475166*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475168*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*475170*/        OPC_CheckType, MVT::i32,
/*475172*/        OPC_MoveParent,
/*475173*/        OPC_MoveParent,
/*475174*/        OPC_MoveChild2,
/*475175*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475178*/        OPC_MoveParent,
/*475179*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*475181*/        OPC_CheckType, MVT::v8i1,
/*475183*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475185*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475188*/        OPC_EmitMergeInputChains1_2,
/*475189*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*475192*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZ256rmib:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/*475205*/      /*Scope*/ 54, /*->475260*/
/*475206*/        OPC_MoveChild0,
/*475207*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475210*/        OPC_MoveChild0,
/*475211*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475214*/        OPC_RecordMemRef,
/*475215*/        OPC_RecordNode, // #1 = 'ld' chained node
/*475216*/        OPC_CheckFoldableChainNode,
/*475217*/        OPC_RecordChild1, // #2 = $src2
/*475218*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475220*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*475222*/        OPC_CheckType, MVT::i32,
/*475224*/        OPC_MoveParent,
/*475225*/        OPC_CheckType, MVT::v8i32,
/*475227*/        OPC_MoveParent,
/*475228*/        OPC_RecordChild1, // #3 = $src1
/*475229*/        OPC_MoveChild2,
/*475230*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475233*/        OPC_MoveParent,
/*475234*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*475236*/        OPC_CheckType, MVT::v8i1,
/*475238*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475240*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475243*/        OPC_EmitMergeInputChains1_1,
/*475244*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*475247*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZ256rmib:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*475260*/      /*Scope*/ 56, /*->475317*/
/*475261*/        OPC_RecordChild0, // #1 = $src1
/*475262*/        OPC_CheckChild0Type, MVT::v4i32,
/*475264*/        OPC_MoveChild1,
/*475265*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*475268*/        OPC_MoveChild0,
/*475269*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475272*/        OPC_RecordMemRef,
/*475273*/        OPC_RecordNode, // #2 = 'ld' chained node
/*475274*/        OPC_CheckFoldableChainNode,
/*475275*/        OPC_RecordChild1, // #3 = $src2
/*475276*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475278*/        OPC_CheckPredicate, 9, // Predicate_load
/*475280*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*475282*/        OPC_CheckType, MVT::v2i64,
/*475284*/        OPC_MoveParent,
/*475285*/        OPC_MoveParent,
/*475286*/        OPC_MoveChild2,
/*475287*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475290*/        OPC_MoveParent,
/*475291*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*475293*/        OPC_CheckType, MVT::v4i1,
/*475295*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475297*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475300*/        OPC_EmitMergeInputChains1_2,
/*475301*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*475304*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (cond:{ *:[Other] })):$cc))
/*475317*/      /*Scope*/ 56, /*->475374*/
/*475318*/        OPC_MoveChild0,
/*475319*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*475322*/        OPC_MoveChild0,
/*475323*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475326*/        OPC_RecordMemRef,
/*475327*/        OPC_RecordNode, // #1 = 'ld' chained node
/*475328*/        OPC_CheckFoldableChainNode,
/*475329*/        OPC_RecordChild1, // #2 = $src2
/*475330*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475332*/        OPC_CheckPredicate, 9, // Predicate_load
/*475334*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*475336*/        OPC_CheckType, MVT::v2i64,
/*475338*/        OPC_MoveParent,
/*475339*/        OPC_CheckType, MVT::v4i32,
/*475341*/        OPC_MoveParent,
/*475342*/        OPC_RecordChild1, // #3 = $src1
/*475343*/        OPC_MoveChild2,
/*475344*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475347*/        OPC_MoveParent,
/*475348*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*475350*/        OPC_CheckType, MVT::v4i1,
/*475352*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475354*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475357*/        OPC_EmitMergeInputChains1_1,
/*475358*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*475361*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*475374*/      /*Scope*/ 54, /*->475429*/
/*475375*/        OPC_RecordChild0, // #1 = $src1
/*475376*/        OPC_CheckChild0Type, MVT::v4i32,
/*475378*/        OPC_MoveChild1,
/*475379*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475382*/        OPC_MoveChild0,
/*475383*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475386*/        OPC_RecordMemRef,
/*475387*/        OPC_RecordNode, // #2 = 'ld' chained node
/*475388*/        OPC_CheckFoldableChainNode,
/*475389*/        OPC_RecordChild1, // #3 = $src2
/*475390*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475392*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*475394*/        OPC_CheckType, MVT::i32,
/*475396*/        OPC_MoveParent,
/*475397*/        OPC_MoveParent,
/*475398*/        OPC_MoveChild2,
/*475399*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475402*/        OPC_MoveParent,
/*475403*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*475405*/        OPC_CheckType, MVT::v4i1,
/*475407*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475409*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475412*/        OPC_EmitMergeInputChains1_2,
/*475413*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*475416*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZ128rmib:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (cond:{ *:[Other] })):$cc))
/*475429*/      /*Scope*/ 54, /*->475484*/
/*475430*/        OPC_MoveChild0,
/*475431*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475434*/        OPC_MoveChild0,
/*475435*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475438*/        OPC_RecordMemRef,
/*475439*/        OPC_RecordNode, // #1 = 'ld' chained node
/*475440*/        OPC_CheckFoldableChainNode,
/*475441*/        OPC_RecordChild1, // #2 = $src2
/*475442*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475444*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*475446*/        OPC_CheckType, MVT::i32,
/*475448*/        OPC_MoveParent,
/*475449*/        OPC_CheckType, MVT::v4i32,
/*475451*/        OPC_MoveParent,
/*475452*/        OPC_RecordChild1, // #3 = $src1
/*475453*/        OPC_MoveChild2,
/*475454*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475457*/        OPC_MoveParent,
/*475458*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*475460*/        OPC_CheckType, MVT::v4i1,
/*475462*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475464*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475467*/        OPC_EmitMergeInputChains1_1,
/*475468*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*475471*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUDZ128rmib:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*475484*/      /*Scope*/ 54, /*->475539*/
/*475485*/        OPC_RecordChild0, // #1 = $src1
/*475486*/        OPC_CheckChild0Type, MVT::v8i64,
/*475488*/        OPC_MoveChild1,
/*475489*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475492*/        OPC_MoveChild0,
/*475493*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475496*/        OPC_RecordMemRef,
/*475497*/        OPC_RecordNode, // #2 = 'ld' chained node
/*475498*/        OPC_CheckFoldableChainNode,
/*475499*/        OPC_RecordChild1, // #3 = $src2
/*475500*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475502*/        OPC_CheckPredicate, 9, // Predicate_load
/*475504*/        OPC_CheckType, MVT::i64,
/*475506*/        OPC_MoveParent,
/*475507*/        OPC_MoveParent,
/*475508*/        OPC_MoveChild2,
/*475509*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475512*/        OPC_MoveParent,
/*475513*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*475515*/        OPC_CheckType, MVT::v8i1,
/*475517*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*475519*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475522*/        OPC_EmitMergeInputChains1_2,
/*475523*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*475526*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPQZrmib:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/*475539*/      /*Scope*/ 54, /*->475594*/
/*475540*/        OPC_MoveChild0,
/*475541*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475544*/        OPC_MoveChild0,
/*475545*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475548*/        OPC_RecordMemRef,
/*475549*/        OPC_RecordNode, // #1 = 'ld' chained node
/*475550*/        OPC_CheckFoldableChainNode,
/*475551*/        OPC_RecordChild1, // #2 = $src2
/*475552*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475554*/        OPC_CheckPredicate, 9, // Predicate_load
/*475556*/        OPC_CheckType, MVT::i64,
/*475558*/        OPC_MoveParent,
/*475559*/        OPC_CheckType, MVT::v8i64,
/*475561*/        OPC_MoveParent,
/*475562*/        OPC_RecordChild1, // #3 = $src1
/*475563*/        OPC_MoveChild2,
/*475564*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475567*/        OPC_MoveParent,
/*475568*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*475570*/        OPC_CheckType, MVT::v8i1,
/*475572*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*475574*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475577*/        OPC_EmitMergeInputChains1_1,
/*475578*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*475581*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPQZrmib:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*475594*/      /*Scope*/ 54, /*->475649*/
/*475595*/        OPC_RecordChild0, // #1 = $src1
/*475596*/        OPC_CheckChild0Type, MVT::v4i64,
/*475598*/        OPC_MoveChild1,
/*475599*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475602*/        OPC_MoveChild0,
/*475603*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475606*/        OPC_RecordMemRef,
/*475607*/        OPC_RecordNode, // #2 = 'ld' chained node
/*475608*/        OPC_CheckFoldableChainNode,
/*475609*/        OPC_RecordChild1, // #3 = $src2
/*475610*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475612*/        OPC_CheckPredicate, 9, // Predicate_load
/*475614*/        OPC_CheckType, MVT::i64,
/*475616*/        OPC_MoveParent,
/*475617*/        OPC_MoveParent,
/*475618*/        OPC_MoveChild2,
/*475619*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475622*/        OPC_MoveParent,
/*475623*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*475625*/        OPC_CheckType, MVT::v4i1,
/*475627*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475629*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475632*/        OPC_EmitMergeInputChains1_2,
/*475633*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*475636*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPQZ256rmib:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/*475649*/      /*Scope*/ 54, /*->475704*/
/*475650*/        OPC_MoveChild0,
/*475651*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475654*/        OPC_MoveChild0,
/*475655*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475658*/        OPC_RecordMemRef,
/*475659*/        OPC_RecordNode, // #1 = 'ld' chained node
/*475660*/        OPC_CheckFoldableChainNode,
/*475661*/        OPC_RecordChild1, // #2 = $src2
/*475662*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475664*/        OPC_CheckPredicate, 9, // Predicate_load
/*475666*/        OPC_CheckType, MVT::i64,
/*475668*/        OPC_MoveParent,
/*475669*/        OPC_CheckType, MVT::v4i64,
/*475671*/        OPC_MoveParent,
/*475672*/        OPC_RecordChild1, // #3 = $src1
/*475673*/        OPC_MoveChild2,
/*475674*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475677*/        OPC_MoveParent,
/*475678*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*475680*/        OPC_CheckType, MVT::v4i1,
/*475682*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475684*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475687*/        OPC_EmitMergeInputChains1_1,
/*475688*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*475691*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPQZ256rmib:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*475704*/      /*Scope*/ 54, /*->475759*/
/*475705*/        OPC_RecordChild0, // #1 = $src1
/*475706*/        OPC_CheckChild0Type, MVT::v2i64,
/*475708*/        OPC_MoveChild1,
/*475709*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475712*/        OPC_MoveChild0,
/*475713*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475716*/        OPC_RecordMemRef,
/*475717*/        OPC_RecordNode, // #2 = 'ld' chained node
/*475718*/        OPC_CheckFoldableChainNode,
/*475719*/        OPC_RecordChild1, // #3 = $src2
/*475720*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475722*/        OPC_CheckPredicate, 9, // Predicate_load
/*475724*/        OPC_CheckType, MVT::i64,
/*475726*/        OPC_MoveParent,
/*475727*/        OPC_MoveParent,
/*475728*/        OPC_MoveChild2,
/*475729*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475732*/        OPC_MoveParent,
/*475733*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*475735*/        OPC_CheckType, MVT::v2i1,
/*475737*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475739*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475742*/        OPC_EmitMergeInputChains1_2,
/*475743*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*475746*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPQZ128rmib:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/*475759*/      /*Scope*/ 54, /*->475814*/
/*475760*/        OPC_MoveChild0,
/*475761*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475764*/        OPC_MoveChild0,
/*475765*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475768*/        OPC_RecordMemRef,
/*475769*/        OPC_RecordNode, // #1 = 'ld' chained node
/*475770*/        OPC_CheckFoldableChainNode,
/*475771*/        OPC_RecordChild1, // #2 = $src2
/*475772*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475774*/        OPC_CheckPredicate, 9, // Predicate_load
/*475776*/        OPC_CheckType, MVT::i64,
/*475778*/        OPC_MoveParent,
/*475779*/        OPC_CheckType, MVT::v2i64,
/*475781*/        OPC_MoveParent,
/*475782*/        OPC_RecordChild1, // #3 = $src1
/*475783*/        OPC_MoveChild2,
/*475784*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475787*/        OPC_MoveParent,
/*475788*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*475790*/        OPC_CheckType, MVT::v2i1,
/*475792*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475794*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475797*/        OPC_EmitMergeInputChains1_1,
/*475798*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*475801*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v2i1] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPQZ128rmib:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/*475814*/      /*Scope*/ 54, /*->475869*/
/*475815*/        OPC_RecordChild0, // #1 = $src1
/*475816*/        OPC_CheckChild0Type, MVT::v8i64,
/*475818*/        OPC_MoveChild1,
/*475819*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475822*/        OPC_MoveChild0,
/*475823*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475826*/        OPC_RecordMemRef,
/*475827*/        OPC_RecordNode, // #2 = 'ld' chained node
/*475828*/        OPC_CheckFoldableChainNode,
/*475829*/        OPC_RecordChild1, // #3 = $src2
/*475830*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475832*/        OPC_CheckPredicate, 9, // Predicate_load
/*475834*/        OPC_CheckType, MVT::i64,
/*475836*/        OPC_MoveParent,
/*475837*/        OPC_MoveParent,
/*475838*/        OPC_MoveChild2,
/*475839*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475842*/        OPC_MoveParent,
/*475843*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*475845*/        OPC_CheckType, MVT::v8i1,
/*475847*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*475849*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475852*/        OPC_EmitMergeInputChains1_2,
/*475853*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*475856*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUQZrmib:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/*475869*/      /*Scope*/ 54, /*->475924*/
/*475870*/        OPC_MoveChild0,
/*475871*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475874*/        OPC_MoveChild0,
/*475875*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475878*/        OPC_RecordMemRef,
/*475879*/        OPC_RecordNode, // #1 = 'ld' chained node
/*475880*/        OPC_CheckFoldableChainNode,
/*475881*/        OPC_RecordChild1, // #2 = $src2
/*475882*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475884*/        OPC_CheckPredicate, 9, // Predicate_load
/*475886*/        OPC_CheckType, MVT::i64,
/*475888*/        OPC_MoveParent,
/*475889*/        OPC_CheckType, MVT::v8i64,
/*475891*/        OPC_MoveParent,
/*475892*/        OPC_RecordChild1, // #3 = $src1
/*475893*/        OPC_MoveChild2,
/*475894*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475897*/        OPC_MoveParent,
/*475898*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*475900*/        OPC_CheckType, MVT::v8i1,
/*475902*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*475904*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475907*/        OPC_EmitMergeInputChains1_1,
/*475908*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*475911*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUQZrmib:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*475924*/      /*Scope*/ 54, /*->475979*/
/*475925*/        OPC_RecordChild0, // #1 = $src1
/*475926*/        OPC_CheckChild0Type, MVT::v4i64,
/*475928*/        OPC_MoveChild1,
/*475929*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475932*/        OPC_MoveChild0,
/*475933*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475936*/        OPC_RecordMemRef,
/*475937*/        OPC_RecordNode, // #2 = 'ld' chained node
/*475938*/        OPC_CheckFoldableChainNode,
/*475939*/        OPC_RecordChild1, // #3 = $src2
/*475940*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475942*/        OPC_CheckPredicate, 9, // Predicate_load
/*475944*/        OPC_CheckType, MVT::i64,
/*475946*/        OPC_MoveParent,
/*475947*/        OPC_MoveParent,
/*475948*/        OPC_MoveChild2,
/*475949*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*475952*/        OPC_MoveParent,
/*475953*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*475955*/        OPC_CheckType, MVT::v4i1,
/*475957*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475959*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*475962*/        OPC_EmitMergeInputChains1_2,
/*475963*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*475966*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUQZ256rmib:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/*475979*/      /*Scope*/ 54, /*->476034*/
/*475980*/        OPC_MoveChild0,
/*475981*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*475984*/        OPC_MoveChild0,
/*475985*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475988*/        OPC_RecordMemRef,
/*475989*/        OPC_RecordNode, // #1 = 'ld' chained node
/*475990*/        OPC_CheckFoldableChainNode,
/*475991*/        OPC_RecordChild1, // #2 = $src2
/*475992*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475994*/        OPC_CheckPredicate, 9, // Predicate_load
/*475996*/        OPC_CheckType, MVT::i64,
/*475998*/        OPC_MoveParent,
/*475999*/        OPC_CheckType, MVT::v4i64,
/*476001*/        OPC_MoveParent,
/*476002*/        OPC_RecordChild1, // #3 = $src1
/*476003*/        OPC_MoveChild2,
/*476004*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476007*/        OPC_MoveParent,
/*476008*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*476010*/        OPC_CheckType, MVT::v4i1,
/*476012*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476014*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476017*/        OPC_EmitMergeInputChains1_1,
/*476018*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*476021*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUQZ256rmib:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*476034*/      /*Scope*/ 54, /*->476089*/
/*476035*/        OPC_RecordChild0, // #1 = $src1
/*476036*/        OPC_CheckChild0Type, MVT::v2i64,
/*476038*/        OPC_MoveChild1,
/*476039*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*476042*/        OPC_MoveChild0,
/*476043*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476046*/        OPC_RecordMemRef,
/*476047*/        OPC_RecordNode, // #2 = 'ld' chained node
/*476048*/        OPC_CheckFoldableChainNode,
/*476049*/        OPC_RecordChild1, // #3 = $src2
/*476050*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476052*/        OPC_CheckPredicate, 9, // Predicate_load
/*476054*/        OPC_CheckType, MVT::i64,
/*476056*/        OPC_MoveParent,
/*476057*/        OPC_MoveParent,
/*476058*/        OPC_MoveChild2,
/*476059*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476062*/        OPC_MoveParent,
/*476063*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*476065*/        OPC_CheckType, MVT::v2i1,
/*476067*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476069*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476072*/        OPC_EmitMergeInputChains1_2,
/*476073*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*476076*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 29
                  // Dst: (VPCMPUQZ128rmib:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (cond:{ *:[Other] })):$cc))
/*476089*/      /*Scope*/ 54, /*->476144*/
/*476090*/        OPC_MoveChild0,
/*476091*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*476094*/        OPC_MoveChild0,
/*476095*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476098*/        OPC_RecordMemRef,
/*476099*/        OPC_RecordNode, // #1 = 'ld' chained node
/*476100*/        OPC_CheckFoldableChainNode,
/*476101*/        OPC_RecordChild1, // #2 = $src2
/*476102*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476104*/        OPC_CheckPredicate, 9, // Predicate_load
/*476106*/        OPC_CheckType, MVT::i64,
/*476108*/        OPC_MoveParent,
/*476109*/        OPC_CheckType, MVT::v2i64,
/*476111*/        OPC_MoveParent,
/*476112*/        OPC_RecordChild1, // #3 = $src1
/*476113*/        OPC_MoveChild2,
/*476114*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476117*/        OPC_MoveParent,
/*476118*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*476120*/        OPC_CheckType, MVT::v2i1,
/*476122*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476124*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476127*/        OPC_EmitMergeInputChains1_1,
/*476128*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*476131*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v2i1] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 29
                  // Dst: (VPCMPUQZ128rmib:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/*476144*/      0, /*End of Scope*/
/*476145*/    /*Scope*/ 82|128,1/*210*/, /*->476357*/
/*476147*/      OPC_RecordChild0, // #0 = $src1
/*476148*/      OPC_Scope, 68, /*->476218*/ // 3 children in Scope
/*476150*/        OPC_CheckChild0Type, MVT::v8i64,
/*476152*/        OPC_MoveChild1,
/*476153*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476156*/        OPC_RecordMemRef,
/*476157*/        OPC_RecordNode, // #1 = 'ld' chained node
/*476158*/        OPC_CheckFoldableChainNode,
/*476159*/        OPC_RecordChild1, // #2 = $src2
/*476160*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476162*/        OPC_CheckPredicate, 9, // Predicate_load
/*476164*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476166*/        OPC_MoveParent,
/*476167*/        OPC_MoveChild2,
/*476168*/        OPC_Scope, 23, /*->476193*/ // 2 children in Scope
/*476170*/          OPC_CheckCondCode, ISD::SETEQ,
/*476172*/          OPC_MoveParent,
/*476173*/          OPC_CheckType, MVT::v8i1,
/*476175*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*476177*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476180*/          OPC_EmitMergeInputChains1_1,
/*476181*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETEQ:{ *:[Other] }) - Complexity = 27
                    // Dst: (VPCMPEQQZrm:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476193*/        /*Scope*/ 23, /*->476217*/
/*476194*/          OPC_CheckCondCode, ISD::SETGT,
/*476196*/          OPC_MoveParent,
/*476197*/          OPC_CheckType, MVT::v8i1,
/*476199*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*476201*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476204*/          OPC_EmitMergeInputChains1_1,
/*476205*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETGT:{ *:[Other] }) - Complexity = 27
                    // Dst: (VPCMPGTQZrm:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476217*/        0, /*End of Scope*/
/*476218*/      /*Scope*/ 68, /*->476287*/
/*476219*/        OPC_CheckChild0Type, MVT::v4i64,
/*476221*/        OPC_MoveChild1,
/*476222*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476225*/        OPC_RecordMemRef,
/*476226*/        OPC_RecordNode, // #1 = 'ld' chained node
/*476227*/        OPC_CheckFoldableChainNode,
/*476228*/        OPC_RecordChild1, // #2 = $src2
/*476229*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476231*/        OPC_CheckPredicate, 9, // Predicate_load
/*476233*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476235*/        OPC_MoveParent,
/*476236*/        OPC_MoveChild2,
/*476237*/        OPC_Scope, 23, /*->476262*/ // 2 children in Scope
/*476239*/          OPC_CheckCondCode, ISD::SETEQ,
/*476241*/          OPC_MoveParent,
/*476242*/          OPC_CheckType, MVT::v4i1,
/*476244*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476246*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476249*/          OPC_EmitMergeInputChains1_1,
/*476250*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETEQ:{ *:[Other] }) - Complexity = 27
                    // Dst: (VPCMPEQQZ256rm:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476262*/        /*Scope*/ 23, /*->476286*/
/*476263*/          OPC_CheckCondCode, ISD::SETGT,
/*476265*/          OPC_MoveParent,
/*476266*/          OPC_CheckType, MVT::v4i1,
/*476268*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476270*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476273*/          OPC_EmitMergeInputChains1_1,
/*476274*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETGT:{ *:[Other] }) - Complexity = 27
                    // Dst: (VPCMPGTQZ256rm:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476286*/        0, /*End of Scope*/
/*476287*/      /*Scope*/ 68, /*->476356*/
/*476288*/        OPC_CheckChild0Type, MVT::v2i64,
/*476290*/        OPC_MoveChild1,
/*476291*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476294*/        OPC_RecordMemRef,
/*476295*/        OPC_RecordNode, // #1 = 'ld' chained node
/*476296*/        OPC_CheckFoldableChainNode,
/*476297*/        OPC_RecordChild1, // #2 = $src2
/*476298*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476300*/        OPC_CheckPredicate, 9, // Predicate_load
/*476302*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476304*/        OPC_MoveParent,
/*476305*/        OPC_MoveChild2,
/*476306*/        OPC_Scope, 23, /*->476331*/ // 2 children in Scope
/*476308*/          OPC_CheckCondCode, ISD::SETEQ,
/*476310*/          OPC_MoveParent,
/*476311*/          OPC_CheckType, MVT::v2i1,
/*476313*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476318*/          OPC_EmitMergeInputChains1_1,
/*476319*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETEQ:{ *:[Other] }) - Complexity = 27
                    // Dst: (VPCMPEQQZ128rm:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476331*/        /*Scope*/ 23, /*->476355*/
/*476332*/          OPC_CheckCondCode, ISD::SETGT,
/*476334*/          OPC_MoveParent,
/*476335*/          OPC_CheckType, MVT::v2i1,
/*476337*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476339*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476342*/          OPC_EmitMergeInputChains1_1,
/*476343*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, SETGT:{ *:[Other] }) - Complexity = 27
                    // Dst: (VPCMPGTQZ128rm:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476355*/        0, /*End of Scope*/
/*476356*/      0, /*End of Scope*/
/*476357*/    /*Scope*/ 100, /*->476458*/
/*476358*/      OPC_MoveChild0,
/*476359*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476362*/      OPC_RecordMemRef,
/*476363*/      OPC_RecordNode, // #0 = 'ld' chained node
/*476364*/      OPC_CheckFoldableChainNode,
/*476365*/      OPC_RecordChild1, // #1 = $src2
/*476366*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476368*/      OPC_CheckPredicate, 9, // Predicate_load
/*476370*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*476372*/      OPC_SwitchType /*3 cases */, 26, MVT::v8i64,// ->476401
/*476375*/        OPC_MoveParent,
/*476376*/        OPC_RecordChild1, // #2 = $src1
/*476377*/        OPC_MoveChild2,
/*476378*/        OPC_CheckCondCode, ISD::SETEQ,
/*476380*/        OPC_MoveParent,
/*476381*/        OPC_CheckType, MVT::v8i1,
/*476383*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*476385*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476388*/        OPC_EmitMergeInputChains1_0,
/*476389*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86setcc_commute:{ *:[v8i1] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 27
                  // Dst: (VPCMPEQQZrm:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476401*/      /*SwitchType*/ 26, MVT::v4i64,// ->476429
/*476403*/        OPC_MoveParent,
/*476404*/        OPC_RecordChild1, // #2 = $src1
/*476405*/        OPC_MoveChild2,
/*476406*/        OPC_CheckCondCode, ISD::SETEQ,
/*476408*/        OPC_MoveParent,
/*476409*/        OPC_CheckType, MVT::v4i1,
/*476411*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476413*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476416*/        OPC_EmitMergeInputChains1_0,
/*476417*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86setcc_commute:{ *:[v4i1] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 27
                  // Dst: (VPCMPEQQZ256rm:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476429*/      /*SwitchType*/ 26, MVT::v2i64,// ->476457
/*476431*/        OPC_MoveParent,
/*476432*/        OPC_RecordChild1, // #2 = $src1
/*476433*/        OPC_MoveChild2,
/*476434*/        OPC_CheckCondCode, ISD::SETEQ,
/*476436*/        OPC_MoveParent,
/*476437*/        OPC_CheckType, MVT::v2i1,
/*476439*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476441*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476444*/        OPC_EmitMergeInputChains1_0,
/*476445*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86setcc_commute:{ *:[v2i1] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, SETEQ:{ *:[Other] }) - Complexity = 27
                  // Dst: (VPCMPEQQZ128rm:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476457*/      0, // EndSwitchType
/*476458*/    /*Scope*/ 91|128,4/*603*/, /*->477063*/
/*476460*/      OPC_RecordNode, // #0 = $cc
/*476461*/      OPC_Scope, 49, /*->476512*/ // 12 children in Scope
/*476463*/        OPC_RecordChild0, // #1 = $src1
/*476464*/        OPC_CheckChild0Type, MVT::v8i64,
/*476466*/        OPC_MoveChild1,
/*476467*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476470*/        OPC_RecordMemRef,
/*476471*/        OPC_RecordNode, // #2 = 'ld' chained node
/*476472*/        OPC_CheckFoldableChainNode,
/*476473*/        OPC_RecordChild1, // #3 = $src2
/*476474*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476476*/        OPC_CheckPredicate, 9, // Predicate_load
/*476478*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476480*/        OPC_MoveParent,
/*476481*/        OPC_MoveChild2,
/*476482*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476485*/        OPC_MoveParent,
/*476486*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*476488*/        OPC_CheckType, MVT::v8i1,
/*476490*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*476492*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476495*/        OPC_EmitMergeInputChains1_2,
/*476496*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*476499*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZrmi:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/*476512*/      /*Scope*/ 49, /*->476562*/
/*476513*/        OPC_MoveChild0,
/*476514*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476517*/        OPC_RecordMemRef,
/*476518*/        OPC_RecordNode, // #1 = 'ld' chained node
/*476519*/        OPC_CheckFoldableChainNode,
/*476520*/        OPC_RecordChild1, // #2 = $src2
/*476521*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476523*/        OPC_CheckPredicate, 9, // Predicate_load
/*476525*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476527*/        OPC_CheckType, MVT::v8i64,
/*476529*/        OPC_MoveParent,
/*476530*/        OPC_RecordChild1, // #3 = $src1
/*476531*/        OPC_MoveChild2,
/*476532*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476535*/        OPC_MoveParent,
/*476536*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*476538*/        OPC_CheckType, MVT::v8i1,
/*476540*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*476542*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476545*/        OPC_EmitMergeInputChains1_1,
/*476546*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*476549*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZrmi:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*476562*/      /*Scope*/ 49, /*->476612*/
/*476563*/        OPC_RecordChild0, // #1 = $src1
/*476564*/        OPC_CheckChild0Type, MVT::v4i64,
/*476566*/        OPC_MoveChild1,
/*476567*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476570*/        OPC_RecordMemRef,
/*476571*/        OPC_RecordNode, // #2 = 'ld' chained node
/*476572*/        OPC_CheckFoldableChainNode,
/*476573*/        OPC_RecordChild1, // #3 = $src2
/*476574*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476576*/        OPC_CheckPredicate, 9, // Predicate_load
/*476578*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476580*/        OPC_MoveParent,
/*476581*/        OPC_MoveChild2,
/*476582*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476585*/        OPC_MoveParent,
/*476586*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*476588*/        OPC_CheckType, MVT::v4i1,
/*476590*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476592*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476595*/        OPC_EmitMergeInputChains1_2,
/*476596*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*476599*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZ256rmi:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/*476612*/      /*Scope*/ 49, /*->476662*/
/*476613*/        OPC_MoveChild0,
/*476614*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476617*/        OPC_RecordMemRef,
/*476618*/        OPC_RecordNode, // #1 = 'ld' chained node
/*476619*/        OPC_CheckFoldableChainNode,
/*476620*/        OPC_RecordChild1, // #2 = $src2
/*476621*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476623*/        OPC_CheckPredicate, 9, // Predicate_load
/*476625*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476627*/        OPC_CheckType, MVT::v4i64,
/*476629*/        OPC_MoveParent,
/*476630*/        OPC_RecordChild1, // #3 = $src1
/*476631*/        OPC_MoveChild2,
/*476632*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476635*/        OPC_MoveParent,
/*476636*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*476638*/        OPC_CheckType, MVT::v4i1,
/*476640*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476642*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476645*/        OPC_EmitMergeInputChains1_1,
/*476646*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*476649*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZ256rmi:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*476662*/      /*Scope*/ 49, /*->476712*/
/*476663*/        OPC_RecordChild0, // #1 = $src1
/*476664*/        OPC_CheckChild0Type, MVT::v2i64,
/*476666*/        OPC_MoveChild1,
/*476667*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476670*/        OPC_RecordMemRef,
/*476671*/        OPC_RecordNode, // #2 = 'ld' chained node
/*476672*/        OPC_CheckFoldableChainNode,
/*476673*/        OPC_RecordChild1, // #3 = $src2
/*476674*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476676*/        OPC_CheckPredicate, 9, // Predicate_load
/*476678*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476680*/        OPC_MoveParent,
/*476681*/        OPC_MoveChild2,
/*476682*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476685*/        OPC_MoveParent,
/*476686*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*476688*/        OPC_CheckType, MVT::v2i1,
/*476690*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476692*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476695*/        OPC_EmitMergeInputChains1_2,
/*476696*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*476699*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZ128rmi:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/*476712*/      /*Scope*/ 49, /*->476762*/
/*476713*/        OPC_MoveChild0,
/*476714*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476717*/        OPC_RecordMemRef,
/*476718*/        OPC_RecordNode, // #1 = 'ld' chained node
/*476719*/        OPC_CheckFoldableChainNode,
/*476720*/        OPC_RecordChild1, // #2 = $src2
/*476721*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476723*/        OPC_CheckPredicate, 9, // Predicate_load
/*476725*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476727*/        OPC_CheckType, MVT::v2i64,
/*476729*/        OPC_MoveParent,
/*476730*/        OPC_RecordChild1, // #3 = $src1
/*476731*/        OPC_MoveChild2,
/*476732*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476735*/        OPC_MoveParent,
/*476736*/        OPC_CheckPredicate, 46, // Predicate_X86pcmpm_commute
/*476738*/        OPC_CheckType, MVT::v2i1,
/*476740*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476742*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476745*/        OPC_EmitMergeInputChains1_1,
/*476746*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*476749*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v2i1] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZ128rmi:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/*476762*/      /*Scope*/ 49, /*->476812*/
/*476763*/        OPC_RecordChild0, // #1 = $src1
/*476764*/        OPC_CheckChild0Type, MVT::v8i64,
/*476766*/        OPC_MoveChild1,
/*476767*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476770*/        OPC_RecordMemRef,
/*476771*/        OPC_RecordNode, // #2 = 'ld' chained node
/*476772*/        OPC_CheckFoldableChainNode,
/*476773*/        OPC_RecordChild1, // #3 = $src2
/*476774*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476776*/        OPC_CheckPredicate, 9, // Predicate_load
/*476778*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476780*/        OPC_MoveParent,
/*476781*/        OPC_MoveChild2,
/*476782*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476785*/        OPC_MoveParent,
/*476786*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*476788*/        OPC_CheckType, MVT::v8i1,
/*476790*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*476792*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476795*/        OPC_EmitMergeInputChains1_2,
/*476796*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*476799*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZrmi:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/*476812*/      /*Scope*/ 49, /*->476862*/
/*476813*/        OPC_MoveChild0,
/*476814*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476817*/        OPC_RecordMemRef,
/*476818*/        OPC_RecordNode, // #1 = 'ld' chained node
/*476819*/        OPC_CheckFoldableChainNode,
/*476820*/        OPC_RecordChild1, // #2 = $src2
/*476821*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476823*/        OPC_CheckPredicate, 9, // Predicate_load
/*476825*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476827*/        OPC_CheckType, MVT::v8i64,
/*476829*/        OPC_MoveParent,
/*476830*/        OPC_RecordChild1, // #3 = $src1
/*476831*/        OPC_MoveChild2,
/*476832*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476835*/        OPC_MoveParent,
/*476836*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*476838*/        OPC_CheckType, MVT::v8i1,
/*476840*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*476842*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476845*/        OPC_EmitMergeInputChains1_1,
/*476846*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*476849*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v8i1] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZrmi:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*476862*/      /*Scope*/ 49, /*->476912*/
/*476863*/        OPC_RecordChild0, // #1 = $src1
/*476864*/        OPC_CheckChild0Type, MVT::v4i64,
/*476866*/        OPC_MoveChild1,
/*476867*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476870*/        OPC_RecordMemRef,
/*476871*/        OPC_RecordNode, // #2 = 'ld' chained node
/*476872*/        OPC_CheckFoldableChainNode,
/*476873*/        OPC_RecordChild1, // #3 = $src2
/*476874*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476876*/        OPC_CheckPredicate, 9, // Predicate_load
/*476878*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476880*/        OPC_MoveParent,
/*476881*/        OPC_MoveChild2,
/*476882*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476885*/        OPC_MoveParent,
/*476886*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*476888*/        OPC_CheckType, MVT::v4i1,
/*476890*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476892*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476895*/        OPC_EmitMergeInputChains1_2,
/*476896*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*476899*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZ256rmi:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/*476912*/      /*Scope*/ 49, /*->476962*/
/*476913*/        OPC_MoveChild0,
/*476914*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476917*/        OPC_RecordMemRef,
/*476918*/        OPC_RecordNode, // #1 = 'ld' chained node
/*476919*/        OPC_CheckFoldableChainNode,
/*476920*/        OPC_RecordChild1, // #2 = $src2
/*476921*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476923*/        OPC_CheckPredicate, 9, // Predicate_load
/*476925*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476927*/        OPC_CheckType, MVT::v4i64,
/*476929*/        OPC_MoveParent,
/*476930*/        OPC_RecordChild1, // #3 = $src1
/*476931*/        OPC_MoveChild2,
/*476932*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476935*/        OPC_MoveParent,
/*476936*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*476938*/        OPC_CheckType, MVT::v4i1,
/*476940*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476942*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476945*/        OPC_EmitMergeInputChains1_1,
/*476946*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*476949*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v4i1] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZ256rmi:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*476962*/      /*Scope*/ 49, /*->477012*/
/*476963*/        OPC_RecordChild0, // #1 = $src1
/*476964*/        OPC_CheckChild0Type, MVT::v2i64,
/*476966*/        OPC_MoveChild1,
/*476967*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476970*/        OPC_RecordMemRef,
/*476971*/        OPC_RecordNode, // #2 = 'ld' chained node
/*476972*/        OPC_CheckFoldableChainNode,
/*476973*/        OPC_RecordChild1, // #3 = $src2
/*476974*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476976*/        OPC_CheckPredicate, 9, // Predicate_load
/*476978*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*476980*/        OPC_MoveParent,
/*476981*/        OPC_MoveChild2,
/*476982*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*476985*/        OPC_MoveParent,
/*476986*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*476988*/        OPC_CheckType, MVT::v2i1,
/*476990*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*476992*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*476995*/        OPC_EmitMergeInputChains1_2,
/*476996*/        OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*476999*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZ128rmi:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (cond:{ *:[Other] })):$cc))
/*477012*/      /*Scope*/ 49, /*->477062*/
/*477013*/        OPC_MoveChild0,
/*477014*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*477017*/        OPC_RecordMemRef,
/*477018*/        OPC_RecordNode, // #1 = 'ld' chained node
/*477019*/        OPC_CheckFoldableChainNode,
/*477020*/        OPC_RecordChild1, // #2 = $src2
/*477021*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*477023*/        OPC_CheckPredicate, 9, // Predicate_load
/*477025*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*477027*/        OPC_CheckType, MVT::v2i64,
/*477029*/        OPC_MoveParent,
/*477030*/        OPC_RecordChild1, // #3 = $src1
/*477031*/        OPC_MoveChild2,
/*477032*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*477035*/        OPC_MoveParent,
/*477036*/        OPC_CheckPredicate, 47, // Predicate_X86pcmpum_commute
/*477038*/        OPC_CheckType, MVT::v2i1,
/*477040*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*477042*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*477045*/        OPC_EmitMergeInputChains1_1,
/*477046*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm_commute
/*477049*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                  // Src: (setcc:{ *:[v2i1] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZ128rmi:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/*477062*/      0, /*End of Scope*/
/*477063*/    /*Scope*/ 124|128,12/*1660*/, /*->478725*/
/*477065*/      OPC_MoveChild0,
/*477066*/      OPC_SwitchOpcode /*2 cases */, 83|128,9/*1235*/, TARGET_VAL(ISD::BITCAST),// ->478306
/*477071*/        OPC_MoveChild0,
/*477072*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*477075*/        OPC_RecordChild0, // #0 = $src1
/*477076*/        OPC_RecordChild1, // #1 = $src2
/*477077*/        OPC_SwitchType /*3 cases */, 24|128,1/*152*/, MVT::v8i64,// ->477233
/*477081*/          OPC_MoveParent,
/*477082*/          OPC_SwitchType /*3 cases */, 50, MVT::v32i16,// ->477135
/*477085*/            OPC_MoveParent,
/*477086*/            OPC_MoveChild1,
/*477087*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*477090*/            OPC_MoveChild0,
/*477091*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*477094*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*477096*/            OPC_CheckType, MVT::v16i32,
/*477098*/            OPC_MoveParent,
/*477099*/            OPC_MoveParent,
/*477100*/            OPC_MoveChild2,
/*477101*/            OPC_Scope, 15, /*->477118*/ // 2 children in Scope
/*477103*/              OPC_CheckCondCode, ISD::SETNE,
/*477105*/              OPC_MoveParent,
/*477106*/              OPC_CheckType, MVT::v32i1,
/*477108*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*477110*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrr), 0,
                            MVT::v32i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTMWZrr:{ *:[v32i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*477118*/            /*Scope*/ 15, /*->477134*/
/*477119*/              OPC_CheckCondCode, ISD::SETEQ,
/*477121*/              OPC_MoveParent,
/*477122*/              OPC_CheckType, MVT::v32i1,
/*477124*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*477126*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrr), 0,
                            MVT::v32i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTNMWZrr:{ *:[v32i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*477134*/            0, /*End of Scope*/
/*477135*/          /*SwitchType*/ 50, MVT::v64i8,// ->477187
/*477137*/            OPC_MoveParent,
/*477138*/            OPC_MoveChild1,
/*477139*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*477142*/            OPC_MoveChild0,
/*477143*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*477146*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*477148*/            OPC_CheckType, MVT::v16i32,
/*477150*/            OPC_MoveParent,
/*477151*/            OPC_MoveParent,
/*477152*/            OPC_MoveChild2,
/*477153*/            OPC_Scope, 15, /*->477170*/ // 2 children in Scope
/*477155*/              OPC_CheckCondCode, ISD::SETNE,
/*477157*/              OPC_MoveParent,
/*477158*/              OPC_CheckType, MVT::v64i1,
/*477160*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*477162*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrr), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTMBZrr:{ *:[v64i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*477170*/            /*Scope*/ 15, /*->477186*/
/*477171*/              OPC_CheckCondCode, ISD::SETEQ,
/*477173*/              OPC_MoveParent,
/*477174*/              OPC_CheckType, MVT::v64i1,
/*477176*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*477178*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrr), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTNMBZrr:{ *:[v64i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*477186*/            0, /*End of Scope*/
/*477187*/          /*SwitchType*/ 43, MVT::v16i32,// ->477232
/*477189*/            OPC_MoveParent,
/*477190*/            OPC_MoveChild1,
/*477191*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*477194*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*477196*/            OPC_MoveParent,
/*477197*/            OPC_MoveChild2,
/*477198*/            OPC_Scope, 15, /*->477215*/ // 2 children in Scope
/*477200*/              OPC_CheckCondCode, ISD::SETNE,
/*477202*/              OPC_MoveParent,
/*477203*/              OPC_CheckType, MVT::v16i1,
/*477205*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*477207*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 13
                        // Dst: (VPTESTMDZrr:{ *:[v16i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*477215*/            /*Scope*/ 15, /*->477231*/
/*477216*/              OPC_CheckCondCode, ISD::SETEQ,
/*477218*/              OPC_MoveParent,
/*477219*/              OPC_CheckType, MVT::v16i1,
/*477221*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*477223*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i32] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)), (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 13
                        // Dst: (VPTESTNMDZrr:{ *:[v16i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*477231*/            0, /*End of Scope*/
/*477232*/          0, // EndSwitchType
/*477233*/        /*SwitchType*/ 21|128,4/*533*/, MVT::v4i64,// ->477769
/*477236*/          OPC_MoveParent,
/*477237*/          OPC_SwitchType /*3 cases */, 48|128,1/*176*/, MVT::v16i16,// ->477417
/*477241*/            OPC_MoveParent,
/*477242*/            OPC_MoveChild1,
/*477243*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*477246*/            OPC_MoveChild0,
/*477247*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*477250*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*477252*/            OPC_CheckType, MVT::v8i32,
/*477254*/            OPC_MoveParent,
/*477255*/            OPC_MoveParent,
/*477256*/            OPC_MoveChild2,
/*477257*/            OPC_Scope, 15, /*->477274*/ // 4 children in Scope
/*477259*/              OPC_CheckCondCode, ISD::SETNE,
/*477261*/              OPC_MoveParent,
/*477262*/              OPC_CheckType, MVT::v16i1,
/*477264*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477266*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rr), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTMWZ256rr:{ *:[v16i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*477274*/            /*Scope*/ 15, /*->477290*/
/*477275*/              OPC_CheckCondCode, ISD::SETEQ,
/*477277*/              OPC_MoveParent,
/*477278*/              OPC_CheckType, MVT::v16i1,
/*477280*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477282*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rr), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTNMWZ256rr:{ *:[v16i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*477290*/            /*Scope*/ 62, /*->477353*/
/*477291*/              OPC_CheckCondCode, ISD::SETNE,
/*477293*/              OPC_MoveParent,
/*477294*/              OPC_CheckType, MVT::v16i1,
/*477296*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*477298*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*477304*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477307*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*477316*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*477322*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477325*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*477334*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrr), 0,
                            MVT::v32i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*477342*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*477345*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 16
                        // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/*477353*/            /*Scope*/ 62, /*->477416*/
/*477354*/              OPC_CheckCondCode, ISD::SETEQ,
/*477356*/              OPC_MoveParent,
/*477357*/              OPC_CheckType, MVT::v16i1,
/*477359*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*477361*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*477367*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477370*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*477379*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*477385*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477388*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*477397*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrr), 0,
                            MVT::v32i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*477405*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*477408*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 16
                        // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/*477416*/            0, /*End of Scope*/
/*477417*/          /*SwitchType*/ 48|128,1/*176*/, MVT::v32i8,// ->477596
/*477420*/            OPC_MoveParent,
/*477421*/            OPC_MoveChild1,
/*477422*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*477425*/            OPC_MoveChild0,
/*477426*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*477429*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*477431*/            OPC_CheckType, MVT::v8i32,
/*477433*/            OPC_MoveParent,
/*477434*/            OPC_MoveParent,
/*477435*/            OPC_MoveChild2,
/*477436*/            OPC_Scope, 15, /*->477453*/ // 4 children in Scope
/*477438*/              OPC_CheckCondCode, ISD::SETNE,
/*477440*/              OPC_MoveParent,
/*477441*/              OPC_CheckType, MVT::v32i1,
/*477443*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477445*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rr), 0,
                            MVT::v32i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTMBZ256rr:{ *:[v32i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*477453*/            /*Scope*/ 15, /*->477469*/
/*477454*/              OPC_CheckCondCode, ISD::SETEQ,
/*477456*/              OPC_MoveParent,
/*477457*/              OPC_CheckType, MVT::v32i1,
/*477459*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477461*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rr), 0,
                            MVT::v32i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTNMBZ256rr:{ *:[v32i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*477469*/            /*Scope*/ 62, /*->477532*/
/*477470*/              OPC_CheckCondCode, ISD::SETNE,
/*477472*/              OPC_MoveParent,
/*477473*/              OPC_CheckType, MVT::v32i1,
/*477475*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*477477*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #2
/*477483*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477486*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*477495*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #5
/*477501*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477504*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*477513*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrr), 0,
                            MVT::v64i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*477521*/              OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*477524*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v32i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 16
                        // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTMBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/*477532*/            /*Scope*/ 62, /*->477595*/
/*477533*/              OPC_CheckCondCode, ISD::SETEQ,
/*477535*/              OPC_MoveParent,
/*477536*/              OPC_CheckType, MVT::v32i1,
/*477538*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*477540*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #2
/*477546*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477549*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*477558*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #5
/*477564*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477567*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*477576*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrr), 0,
                            MVT::v64i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*477584*/              OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*477587*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v32i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 16
                        // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTNMBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/*477595*/            0, /*End of Scope*/
/*477596*/          /*SwitchType*/ 41|128,1/*169*/, MVT::v8i32,// ->477768
/*477599*/            OPC_MoveParent,
/*477600*/            OPC_MoveChild1,
/*477601*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*477604*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*477606*/            OPC_MoveParent,
/*477607*/            OPC_MoveChild2,
/*477608*/            OPC_Scope, 15, /*->477625*/ // 4 children in Scope
/*477610*/              OPC_CheckCondCode, ISD::SETNE,
/*477612*/              OPC_MoveParent,
/*477613*/              OPC_CheckType, MVT::v8i1,
/*477615*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*477617*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rr), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 13
                        // Dst: (VPTESTMDZ256rr:{ *:[v8i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*477625*/            /*Scope*/ 15, /*->477641*/
/*477626*/              OPC_CheckCondCode, ISD::SETEQ,
/*477628*/              OPC_MoveParent,
/*477629*/              OPC_CheckType, MVT::v8i1,
/*477631*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*477633*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rr), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 13
                        // Dst: (VPTESTNMDZ256rr:{ *:[v8i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*477641*/            /*Scope*/ 62, /*->477704*/
/*477642*/              OPC_CheckCondCode, ISD::SETNE,
/*477644*/              OPC_MoveParent,
/*477645*/              OPC_CheckType, MVT::v8i1,
/*477647*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*477649*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*477655*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477658*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*477667*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*477673*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477676*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*477685*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*477693*/              OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*477696*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 13
                        // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/*477704*/            /*Scope*/ 62, /*->477767*/
/*477705*/              OPC_CheckCondCode, ISD::SETEQ,
/*477707*/              OPC_MoveParent,
/*477708*/              OPC_CheckType, MVT::v8i1,
/*477710*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*477712*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*477718*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477721*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*477730*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*477736*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*477739*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*477748*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*477756*/              OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*477759*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i32] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)), (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 13
                        // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/*477767*/            0, /*End of Scope*/
/*477768*/          0, // EndSwitchType
/*477769*/        /*SwitchType*/ 21|128,4/*533*/, MVT::v2i64,// ->478305
/*477772*/          OPC_MoveParent,
/*477773*/          OPC_SwitchType /*3 cases */, 48|128,1/*176*/, MVT::v8i16,// ->477953
/*477777*/            OPC_MoveParent,
/*477778*/            OPC_MoveChild1,
/*477779*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*477782*/            OPC_MoveChild0,
/*477783*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*477786*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*477788*/            OPC_CheckType, MVT::v4i32,
/*477790*/            OPC_MoveParent,
/*477791*/            OPC_MoveParent,
/*477792*/            OPC_MoveChild2,
/*477793*/            OPC_Scope, 15, /*->477810*/ // 4 children in Scope
/*477795*/              OPC_CheckCondCode, ISD::SETNE,
/*477797*/              OPC_MoveParent,
/*477798*/              OPC_CheckType, MVT::v8i1,
/*477800*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477802*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rr), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTMWZ128rr:{ *:[v8i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*477810*/            /*Scope*/ 15, /*->477826*/
/*477811*/              OPC_CheckCondCode, ISD::SETEQ,
/*477813*/              OPC_MoveParent,
/*477814*/              OPC_CheckType, MVT::v8i1,
/*477816*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477818*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rr), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTNMWZ128rr:{ *:[v8i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*477826*/            /*Scope*/ 62, /*->477889*/
/*477827*/              OPC_CheckCondCode, ISD::SETNE,
/*477829*/              OPC_MoveParent,
/*477830*/              OPC_CheckType, MVT::v8i1,
/*477832*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*477834*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*477840*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*477843*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*477852*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*477858*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*477861*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*477870*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrr), 0,
                            MVT::v32i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*477878*/              OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*477881*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 16
                        // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/*477889*/            /*Scope*/ 62, /*->477952*/
/*477890*/              OPC_CheckCondCode, ISD::SETEQ,
/*477892*/              OPC_MoveParent,
/*477893*/              OPC_CheckType, MVT::v8i1,
/*477895*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*477897*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*477903*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*477906*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*477915*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*477921*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*477924*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*477933*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrr), 0,
                            MVT::v32i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*477941*/              OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*477944*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 16
                        // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/*477952*/            0, /*End of Scope*/
/*477953*/          /*SwitchType*/ 48|128,1/*176*/, MVT::v16i8,// ->478132
/*477956*/            OPC_MoveParent,
/*477957*/            OPC_MoveChild1,
/*477958*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*477961*/            OPC_MoveChild0,
/*477962*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*477965*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*477967*/            OPC_CheckType, MVT::v4i32,
/*477969*/            OPC_MoveParent,
/*477970*/            OPC_MoveParent,
/*477971*/            OPC_MoveChild2,
/*477972*/            OPC_Scope, 15, /*->477989*/ // 4 children in Scope
/*477974*/              OPC_CheckCondCode, ISD::SETNE,
/*477976*/              OPC_MoveParent,
/*477977*/              OPC_CheckType, MVT::v16i1,
/*477979*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477981*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rr), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTMBZ128rr:{ *:[v16i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*477989*/            /*Scope*/ 15, /*->478005*/
/*477990*/              OPC_CheckCondCode, ISD::SETEQ,
/*477992*/              OPC_MoveParent,
/*477993*/              OPC_CheckType, MVT::v16i1,
/*477995*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477997*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rr), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 16
                        // Dst: (VPTESTNMBZ128rr:{ *:[v16i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*478005*/            /*Scope*/ 62, /*->478068*/
/*478006*/              OPC_CheckCondCode, ISD::SETNE,
/*478008*/              OPC_MoveParent,
/*478009*/              OPC_CheckType, MVT::v16i1,
/*478011*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*478013*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #2
/*478019*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478022*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*478031*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #5
/*478037*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478040*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*478049*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrr), 0,
                            MVT::v64i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*478057*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*478060*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 16
                        // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/*478068*/            /*Scope*/ 62, /*->478131*/
/*478069*/              OPC_CheckCondCode, ISD::SETEQ,
/*478071*/              OPC_MoveParent,
/*478072*/              OPC_CheckType, MVT::v16i1,
/*478074*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*478076*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #2
/*478082*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478085*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*478094*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #5
/*478100*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478103*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*478112*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrr), 0,
                            MVT::v64i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*478120*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*478123*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 16
                        // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/*478131*/            0, /*End of Scope*/
/*478132*/          /*SwitchType*/ 41|128,1/*169*/, MVT::v4i32,// ->478304
/*478135*/            OPC_MoveParent,
/*478136*/            OPC_MoveChild1,
/*478137*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*478140*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*478142*/            OPC_MoveParent,
/*478143*/            OPC_MoveChild2,
/*478144*/            OPC_Scope, 15, /*->478161*/ // 4 children in Scope
/*478146*/              OPC_CheckCondCode, ISD::SETNE,
/*478148*/              OPC_MoveParent,
/*478149*/              OPC_CheckType, MVT::v4i1,
/*478151*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*478153*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rr), 0,
                            MVT::v4i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 13
                        // Dst: (VPTESTMDZ128rr:{ *:[v4i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*478161*/            /*Scope*/ 15, /*->478177*/
/*478162*/              OPC_CheckCondCode, ISD::SETEQ,
/*478164*/              OPC_MoveParent,
/*478165*/              OPC_CheckType, MVT::v4i1,
/*478167*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*478169*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rr), 0,
                            MVT::v4i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 13
                        // Dst: (VPTESTNMDZ128rr:{ *:[v4i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*478177*/            /*Scope*/ 62, /*->478240*/
/*478178*/              OPC_CheckCondCode, ISD::SETNE,
/*478180*/              OPC_MoveParent,
/*478181*/              OPC_CheckType, MVT::v4i1,
/*478183*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*478185*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*478191*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478194*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*478203*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*478209*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478212*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*478221*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*478229*/              OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*478232*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 13
                        // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/*478240*/            /*Scope*/ 62, /*->478303*/
/*478241*/              OPC_CheckCondCode, ISD::SETEQ,
/*478243*/              OPC_MoveParent,
/*478244*/              OPC_CheckType, MVT::v4i1,
/*478246*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*478248*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*478254*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478257*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*478266*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*478272*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478275*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*478284*/              OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*478292*/              OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*478295*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i32] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)), (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 13
                        // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/*478303*/            0, /*End of Scope*/
/*478304*/          0, // EndSwitchType
/*478305*/        0, // EndSwitchType
/*478306*/      /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(ISD::AND),// ->478724
/*478310*/        OPC_RecordChild0, // #0 = $src1
/*478311*/        OPC_RecordChild1, // #1 = $src2
/*478312*/        OPC_SwitchType /*3 cases */, 50, MVT::v8i64,// ->478365
/*478315*/          OPC_MoveParent,
/*478316*/          OPC_MoveChild1,
/*478317*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*478320*/          OPC_MoveChild0,
/*478321*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*478324*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*478326*/          OPC_CheckType, MVT::v16i32,
/*478328*/          OPC_MoveParent,
/*478329*/          OPC_MoveParent,
/*478330*/          OPC_MoveChild2,
/*478331*/          OPC_Scope, 15, /*->478348*/ // 2 children in Scope
/*478333*/            OPC_CheckCondCode, ISD::SETNE,
/*478335*/            OPC_MoveParent,
/*478336*/            OPC_CheckType, MVT::v8i1,
/*478338*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*478340*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrr), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 13
                      // Dst: (VPTESTMQZrr:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*478348*/          /*Scope*/ 15, /*->478364*/
/*478349*/            OPC_CheckCondCode, ISD::SETEQ,
/*478351*/            OPC_MoveParent,
/*478352*/            OPC_CheckType, MVT::v8i1,
/*478354*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*478356*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrr), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v8i1] } (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 13
                      // Dst: (VPTESTNMQZrr:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*478364*/          0, /*End of Scope*/
/*478365*/        /*SwitchType*/ 48|128,1/*176*/, MVT::v4i64,// ->478544
/*478368*/          OPC_MoveParent,
/*478369*/          OPC_MoveChild1,
/*478370*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*478373*/          OPC_MoveChild0,
/*478374*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*478377*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*478379*/          OPC_CheckType, MVT::v8i32,
/*478381*/          OPC_MoveParent,
/*478382*/          OPC_MoveParent,
/*478383*/          OPC_MoveChild2,
/*478384*/          OPC_Scope, 15, /*->478401*/ // 4 children in Scope
/*478386*/            OPC_CheckCondCode, ISD::SETNE,
/*478388*/            OPC_MoveParent,
/*478389*/            OPC_CheckType, MVT::v4i1,
/*478391*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*478393*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rr), 0,
                          MVT::v4i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 13
                      // Dst: (VPTESTMQZ256rr:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*478401*/          /*Scope*/ 15, /*->478417*/
/*478402*/            OPC_CheckCondCode, ISD::SETEQ,
/*478404*/            OPC_MoveParent,
/*478405*/            OPC_CheckType, MVT::v4i1,
/*478407*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*478409*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rr), 0,
                          MVT::v4i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 13
                      // Dst: (VPTESTNMQZ256rr:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*478417*/          /*Scope*/ 62, /*->478480*/
/*478418*/            OPC_CheckCondCode, ISD::SETNE,
/*478420*/            OPC_MoveParent,
/*478421*/            OPC_CheckType, MVT::v4i1,
/*478423*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*478425*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*478431*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*478434*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*478443*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*478449*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*478452*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*478461*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrr), 0,
                          MVT::v8i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*478469*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*478472*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 8, 9, 
                      // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/*478480*/          /*Scope*/ 62, /*->478543*/
/*478481*/            OPC_CheckCondCode, ISD::SETEQ,
/*478483*/            OPC_MoveParent,
/*478484*/            OPC_CheckType, MVT::v4i1,
/*478486*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*478488*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*478494*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*478497*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*478506*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*478512*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*478515*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*478524*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrr), 0,
                          MVT::v8i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*478532*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*478535*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 8, 9, 
                      // Src: (setcc:{ *:[v4i1] } (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/*478543*/          0, /*End of Scope*/
/*478544*/        /*SwitchType*/ 48|128,1/*176*/, MVT::v2i64,// ->478723
/*478547*/          OPC_MoveParent,
/*478548*/          OPC_MoveChild1,
/*478549*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*478552*/          OPC_MoveChild0,
/*478553*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*478556*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*478558*/          OPC_CheckType, MVT::v4i32,
/*478560*/          OPC_MoveParent,
/*478561*/          OPC_MoveParent,
/*478562*/          OPC_MoveChild2,
/*478563*/          OPC_Scope, 15, /*->478580*/ // 4 children in Scope
/*478565*/            OPC_CheckCondCode, ISD::SETNE,
/*478567*/            OPC_MoveParent,
/*478568*/            OPC_CheckType, MVT::v2i1,
/*478570*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*478572*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rr), 0,
                          MVT::v2i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 13
                      // Dst: (VPTESTMQZ128rr:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*478580*/          /*Scope*/ 15, /*->478596*/
/*478581*/            OPC_CheckCondCode, ISD::SETEQ,
/*478583*/            OPC_MoveParent,
/*478584*/            OPC_CheckType, MVT::v2i1,
/*478586*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*478588*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rr), 0,
                          MVT::v2i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 13
                      // Dst: (VPTESTNMQZ128rr:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*478596*/          /*Scope*/ 62, /*->478659*/
/*478597*/            OPC_CheckCondCode, ISD::SETNE,
/*478599*/            OPC_MoveParent,
/*478600*/            OPC_CheckType, MVT::v2i1,
/*478602*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*478604*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*478610*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478613*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*478622*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*478628*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478631*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*478640*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrr), 0,
                          MVT::v8i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*478648*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*478651*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 8, 9, 
                      // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTMQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/*478659*/          /*Scope*/ 62, /*->478722*/
/*478660*/            OPC_CheckCondCode, ISD::SETEQ,
/*478662*/            OPC_MoveParent,
/*478663*/            OPC_CheckType, MVT::v2i1,
/*478665*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*478667*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*478673*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478676*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*478685*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*478691*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*478694*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*478703*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrr), 0,
                          MVT::v8i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*478711*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*478714*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 8, 9, 
                      // Src: (setcc:{ *:[v2i1] } (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 13
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTNMQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/*478722*/          0, /*End of Scope*/
/*478723*/        0, // EndSwitchType
/*478724*/      0, // EndSwitchOpcode
/*478725*/    /*Scope*/ 87|128,3/*471*/, /*->479198*/
/*478727*/      OPC_RecordChild0, // #0 = $src
/*478728*/      OPC_Scope, 51, /*->478781*/ // 9 children in Scope
/*478730*/        OPC_CheckChild0Type, MVT::v32i16,
/*478732*/        OPC_MoveChild1,
/*478733*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*478736*/        OPC_MoveChild0,
/*478737*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*478740*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*478742*/        OPC_CheckType, MVT::v16i32,
/*478744*/        OPC_MoveParent,
/*478745*/        OPC_MoveParent,
/*478746*/        OPC_MoveChild2,
/*478747*/        OPC_Scope, 15, /*->478764*/ // 2 children in Scope
/*478749*/          OPC_CheckCondCode, ISD::SETNE,
/*478751*/          OPC_MoveParent,
/*478752*/          OPC_CheckType, MVT::v32i1,
/*478754*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*478756*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src, (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTMWZrr:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src)
/*478764*/        /*Scope*/ 15, /*->478780*/
/*478765*/          OPC_CheckCondCode, ISD::SETEQ,
/*478767*/          OPC_MoveParent,
/*478768*/          OPC_CheckType, MVT::v32i1,
/*478770*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*478772*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src, (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTNMWZrr:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src)
/*478780*/        0, /*End of Scope*/
/*478781*/      /*Scope*/ 51, /*->478833*/
/*478782*/        OPC_CheckChild0Type, MVT::v64i8,
/*478784*/        OPC_MoveChild1,
/*478785*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*478788*/        OPC_MoveChild0,
/*478789*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*478792*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*478794*/        OPC_CheckType, MVT::v16i32,
/*478796*/        OPC_MoveParent,
/*478797*/        OPC_MoveParent,
/*478798*/        OPC_MoveChild2,
/*478799*/        OPC_Scope, 15, /*->478816*/ // 2 children in Scope
/*478801*/          OPC_CheckCondCode, ISD::SETNE,
/*478803*/          OPC_MoveParent,
/*478804*/          OPC_CheckType, MVT::v64i1,
/*478806*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*478808*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src, (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTMBZrr:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src)
/*478816*/        /*Scope*/ 15, /*->478832*/
/*478817*/          OPC_CheckCondCode, ISD::SETEQ,
/*478819*/          OPC_MoveParent,
/*478820*/          OPC_CheckType, MVT::v64i1,
/*478822*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*478824*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src, (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTNMBZrr:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src)
/*478832*/        0, /*End of Scope*/
/*478833*/      /*Scope*/ 51, /*->478885*/
/*478834*/        OPC_CheckChild0Type, MVT::v16i16,
/*478836*/        OPC_MoveChild1,
/*478837*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*478840*/        OPC_MoveChild0,
/*478841*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*478844*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*478846*/        OPC_CheckType, MVT::v8i32,
/*478848*/        OPC_MoveParent,
/*478849*/        OPC_MoveParent,
/*478850*/        OPC_MoveChild2,
/*478851*/        OPC_Scope, 15, /*->478868*/ // 2 children in Scope
/*478853*/          OPC_CheckCondCode, ISD::SETNE,
/*478855*/          OPC_MoveParent,
/*478856*/          OPC_CheckType, MVT::v16i1,
/*478858*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478860*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ256rr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTMWZ256rr:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src)
/*478868*/        /*Scope*/ 15, /*->478884*/
/*478869*/          OPC_CheckCondCode, ISD::SETEQ,
/*478871*/          OPC_MoveParent,
/*478872*/          OPC_CheckType, MVT::v16i1,
/*478874*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478876*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ256rr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTNMWZ256rr:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src)
/*478884*/        0, /*End of Scope*/
/*478885*/      /*Scope*/ 51, /*->478937*/
/*478886*/        OPC_CheckChild0Type, MVT::v8i16,
/*478888*/        OPC_MoveChild1,
/*478889*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*478892*/        OPC_MoveChild0,
/*478893*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*478896*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*478898*/        OPC_CheckType, MVT::v4i32,
/*478900*/        OPC_MoveParent,
/*478901*/        OPC_MoveParent,
/*478902*/        OPC_MoveChild2,
/*478903*/        OPC_Scope, 15, /*->478920*/ // 2 children in Scope
/*478905*/          OPC_CheckCondCode, ISD::SETNE,
/*478907*/          OPC_MoveParent,
/*478908*/          OPC_CheckType, MVT::v8i1,
/*478910*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478912*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMWZ128rr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTMWZ128rr:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src)
/*478920*/        /*Scope*/ 15, /*->478936*/
/*478921*/          OPC_CheckCondCode, ISD::SETEQ,
/*478923*/          OPC_MoveParent,
/*478924*/          OPC_CheckType, MVT::v8i1,
/*478926*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478928*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMWZ128rr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTNMWZ128rr:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src)
/*478936*/        0, /*End of Scope*/
/*478937*/      /*Scope*/ 51, /*->478989*/
/*478938*/        OPC_CheckChild0Type, MVT::v32i8,
/*478940*/        OPC_MoveChild1,
/*478941*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*478944*/        OPC_MoveChild0,
/*478945*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*478948*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*478950*/        OPC_CheckType, MVT::v8i32,
/*478952*/        OPC_MoveParent,
/*478953*/        OPC_MoveParent,
/*478954*/        OPC_MoveChild2,
/*478955*/        OPC_Scope, 15, /*->478972*/ // 2 children in Scope
/*478957*/          OPC_CheckCondCode, ISD::SETNE,
/*478959*/          OPC_MoveParent,
/*478960*/          OPC_CheckType, MVT::v32i1,
/*478962*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478964*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ256rr), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTMBZ256rr:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src)
/*478972*/        /*Scope*/ 15, /*->478988*/
/*478973*/          OPC_CheckCondCode, ISD::SETEQ,
/*478975*/          OPC_MoveParent,
/*478976*/          OPC_CheckType, MVT::v32i1,
/*478978*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478980*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ256rr), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTNMBZ256rr:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src)
/*478988*/        0, /*End of Scope*/
/*478989*/      /*Scope*/ 51, /*->479041*/
/*478990*/        OPC_CheckChild0Type, MVT::v16i8,
/*478992*/        OPC_MoveChild1,
/*478993*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*478996*/        OPC_MoveChild0,
/*478997*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*479000*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*479002*/        OPC_CheckType, MVT::v4i32,
/*479004*/        OPC_MoveParent,
/*479005*/        OPC_MoveParent,
/*479006*/        OPC_MoveChild2,
/*479007*/        OPC_Scope, 15, /*->479024*/ // 2 children in Scope
/*479009*/          OPC_CheckCondCode, ISD::SETNE,
/*479011*/          OPC_MoveParent,
/*479012*/          OPC_CheckType, MVT::v16i1,
/*479014*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*479016*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMBZ128rr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTMBZ128rr:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src)
/*479024*/        /*Scope*/ 15, /*->479040*/
/*479025*/          OPC_CheckCondCode, ISD::SETEQ,
/*479027*/          OPC_MoveParent,
/*479028*/          OPC_CheckType, MVT::v16i1,
/*479030*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*479032*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMBZ128rr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTNMBZ128rr:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src)
/*479040*/        0, /*End of Scope*/
/*479041*/      /*Scope*/ 51, /*->479093*/
/*479042*/        OPC_CheckChild0Type, MVT::v8i64,
/*479044*/        OPC_MoveChild1,
/*479045*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*479048*/        OPC_MoveChild0,
/*479049*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*479052*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*479054*/        OPC_CheckType, MVT::v16i32,
/*479056*/        OPC_MoveParent,
/*479057*/        OPC_MoveParent,
/*479058*/        OPC_MoveChild2,
/*479059*/        OPC_Scope, 15, /*->479076*/ // 2 children in Scope
/*479061*/          OPC_CheckCondCode, ISD::SETNE,
/*479063*/          OPC_MoveParent,
/*479064*/          OPC_CheckType, MVT::v8i1,
/*479066*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*479068*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTMQZrr:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src)
/*479076*/        /*Scope*/ 15, /*->479092*/
/*479077*/          OPC_CheckCondCode, ISD::SETEQ,
/*479079*/          OPC_MoveParent,
/*479080*/          OPC_CheckType, MVT::v8i1,
/*479082*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*479084*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTNMQZrr:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src)
/*479092*/        0, /*End of Scope*/
/*479093*/      /*Scope*/ 51, /*->479145*/
/*479094*/        OPC_CheckChild0Type, MVT::v4i64,
/*479096*/        OPC_MoveChild1,
/*479097*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*479100*/        OPC_MoveChild0,
/*479101*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*479104*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*479106*/        OPC_CheckType, MVT::v8i32,
/*479108*/        OPC_MoveParent,
/*479109*/        OPC_MoveParent,
/*479110*/        OPC_MoveChild2,
/*479111*/        OPC_Scope, 15, /*->479128*/ // 2 children in Scope
/*479113*/          OPC_CheckCondCode, ISD::SETNE,
/*479115*/          OPC_MoveParent,
/*479116*/          OPC_CheckType, MVT::v4i1,
/*479118*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479120*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ256rr), 0,
                        MVT::v4i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTMQZ256rr:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src)
/*479128*/        /*Scope*/ 15, /*->479144*/
/*479129*/          OPC_CheckCondCode, ISD::SETEQ,
/*479131*/          OPC_MoveParent,
/*479132*/          OPC_CheckType, MVT::v4i1,
/*479134*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479136*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ256rr), 0,
                        MVT::v4i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTNMQZ256rr:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src)
/*479144*/        0, /*End of Scope*/
/*479145*/      /*Scope*/ 51, /*->479197*/
/*479146*/        OPC_CheckChild0Type, MVT::v2i64,
/*479148*/        OPC_MoveChild1,
/*479149*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*479152*/        OPC_MoveChild0,
/*479153*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*479156*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*479158*/        OPC_CheckType, MVT::v4i32,
/*479160*/        OPC_MoveParent,
/*479161*/        OPC_MoveParent,
/*479162*/        OPC_MoveChild2,
/*479163*/        OPC_Scope, 15, /*->479180*/ // 2 children in Scope
/*479165*/          OPC_CheckCondCode, ISD::SETNE,
/*479167*/          OPC_MoveParent,
/*479168*/          OPC_CheckType, MVT::v2i1,
/*479170*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479172*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMQZ128rr), 0,
                        MVT::v2i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTMQZ128rr:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src)
/*479180*/        /*Scope*/ 15, /*->479196*/
/*479181*/          OPC_CheckCondCode, ISD::SETEQ,
/*479183*/          OPC_MoveParent,
/*479184*/          OPC_CheckType, MVT::v2i1,
/*479186*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479188*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMQZ128rr), 0,
                        MVT::v2i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPTESTNMQZ128rr:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src)
/*479196*/        0, /*End of Scope*/
/*479197*/      0, /*End of Scope*/
/*479198*/    /*Scope*/ 68|128,3/*452*/, /*->479652*/
/*479200*/      OPC_MoveChild0,
/*479201*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*479204*/      OPC_MoveChild0,
/*479205*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*479208*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*479210*/      OPC_SwitchType /*3 cases */, 60, MVT::v16i32,// ->479273
/*479213*/        OPC_MoveParent,
/*479214*/        OPC_SwitchType /*3 cases */, 17, MVT::v64i8,// ->479234
/*479217*/          OPC_MoveParent,
/*479218*/          OPC_RecordChild1, // #0 = $src
/*479219*/          OPC_MoveChild2,
/*479220*/          OPC_CheckCondCode, ISD::SETGT,
/*479222*/          OPC_MoveParent,
/*479223*/          OPC_CheckType, MVT::v64i1,
/*479225*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*479227*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVB2MZrr), 0,
                        MVT::v64i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v64i1] } (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR512:{ *:[v64i8] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPMOVB2MZrr:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src)
/*479234*/        /*SwitchType*/ 17, MVT::v32i16,// ->479253
/*479236*/          OPC_MoveParent,
/*479237*/          OPC_RecordChild1, // #0 = $src
/*479238*/          OPC_MoveChild2,
/*479239*/          OPC_CheckCondCode, ISD::SETGT,
/*479241*/          OPC_MoveParent,
/*479242*/          OPC_CheckType, MVT::v32i1,
/*479244*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*479246*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVW2MZrr), 0,
                        MVT::v32i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR512:{ *:[v32i16] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPMOVW2MZrr:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src)
/*479253*/        /*SwitchType*/ 17, MVT::v8i64,// ->479272
/*479255*/          OPC_MoveParent,
/*479256*/          OPC_RecordChild1, // #0 = $src
/*479257*/          OPC_MoveChild2,
/*479258*/          OPC_CheckCondCode, ISD::SETGT,
/*479260*/          OPC_MoveParent,
/*479261*/          OPC_CheckType, MVT::v8i1,
/*479263*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*479265*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQ2MZrr), 0,
                        MVT::v8i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR512:{ *:[v8i64] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                    // Dst: (VPMOVQ2MZrr:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src)
/*479272*/        0, // EndSwitchType
/*479273*/      /*SwitchType*/ 58|128,1/*186*/, MVT::v8i32,// ->479462
/*479276*/        OPC_MoveParent,
/*479277*/        OPC_SwitchType /*3 cases */, 59, MVT::v32i8,// ->479339
/*479280*/          OPC_MoveParent,
/*479281*/          OPC_RecordChild1, // #0 = $src
/*479282*/          OPC_MoveChild2,
/*479283*/          OPC_CheckCondCode, ISD::SETGT,
/*479285*/          OPC_MoveParent,
/*479286*/          OPC_CheckType, MVT::v32i1,
/*479288*/          OPC_Scope, 9, /*->479299*/ // 2 children in Scope
/*479290*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*479292*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVB2MZ256rr), 0,
                          MVT::v32i1, 1/*#Ops*/, 0, 
                      // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR256X:{ *:[v32i8] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (VPMOVB2MZ256rr:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src)
/*479299*/          /*Scope*/ 38, /*->479338*/
/*479300*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*479302*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*479308*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479311*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*479320*/            OPC_EmitNode1, TARGET_VAL(X86::VPMOVB2MZrr), 0,
                          MVT::v64i1, 1/*#Ops*/, 3,  // Results = #4
/*479327*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*479330*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 4, 5, 
                      // Src: (setcc:{ *:[v32i1] } (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR256X:{ *:[v32i8] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPMOVB2MZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/*479338*/          0, /*End of Scope*/
/*479339*/        /*SwitchType*/ 59, MVT::v16i16,// ->479400
/*479341*/          OPC_MoveParent,
/*479342*/          OPC_RecordChild1, // #0 = $src
/*479343*/          OPC_MoveChild2,
/*479344*/          OPC_CheckCondCode, ISD::SETGT,
/*479346*/          OPC_MoveParent,
/*479347*/          OPC_CheckType, MVT::v16i1,
/*479349*/          OPC_Scope, 9, /*->479360*/ // 2 children in Scope
/*479351*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*479353*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVW2MZ256rr), 0,
                          MVT::v16i1, 1/*#Ops*/, 0, 
                      // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR256X:{ *:[v16i16] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (VPMOVW2MZ256rr:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src)
/*479360*/          /*Scope*/ 38, /*->479399*/
/*479361*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*479363*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*479369*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479372*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*479381*/            OPC_EmitNode1, TARGET_VAL(X86::VPMOVW2MZrr), 0,
                          MVT::v32i1, 1/*#Ops*/, 3,  // Results = #4
/*479388*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*479391*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 4, 5, 
                      // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR256X:{ *:[v16i16] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPMOVW2MZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/*479399*/          0, /*End of Scope*/
/*479400*/        /*SwitchType*/ 59, MVT::v4i64,// ->479461
/*479402*/          OPC_MoveParent,
/*479403*/          OPC_RecordChild1, // #0 = $src
/*479404*/          OPC_MoveChild2,
/*479405*/          OPC_CheckCondCode, ISD::SETGT,
/*479407*/          OPC_MoveParent,
/*479408*/          OPC_CheckType, MVT::v4i1,
/*479410*/          OPC_Scope, 9, /*->479421*/ // 2 children in Scope
/*479412*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*479414*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQ2MZ256rr), 0,
                          MVT::v4i1, 1/*#Ops*/, 0, 
                      // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR256X:{ *:[v4i64] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (VPMOVQ2MZ256rr:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src)
/*479421*/          /*Scope*/ 38, /*->479460*/
/*479422*/            OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*479424*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*479430*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479433*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*479442*/            OPC_EmitNode1, TARGET_VAL(X86::VPMOVQ2MZrr), 0,
                          MVT::v8i1, 1/*#Ops*/, 3,  // Results = #4
/*479449*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*479452*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 4, 5, 
                      // Src: (setcc:{ *:[v4i1] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR256X:{ *:[v4i64] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPMOVQ2MZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/*479460*/          0, /*End of Scope*/
/*479461*/        0, // EndSwitchType
/*479462*/      /*SwitchType*/ 58|128,1/*186*/, MVT::v4i32,// ->479651
/*479465*/        OPC_MoveParent,
/*479466*/        OPC_SwitchType /*3 cases */, 59, MVT::v16i8,// ->479528
/*479469*/          OPC_MoveParent,
/*479470*/          OPC_RecordChild1, // #0 = $src
/*479471*/          OPC_MoveChild2,
/*479472*/          OPC_CheckCondCode, ISD::SETGT,
/*479474*/          OPC_MoveParent,
/*479475*/          OPC_CheckType, MVT::v16i1,
/*479477*/          OPC_Scope, 9, /*->479488*/ // 2 children in Scope
/*479479*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*479481*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVB2MZ128rr), 0,
                          MVT::v16i1, 1/*#Ops*/, 0, 
                      // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v16i8] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (VPMOVB2MZ128rr:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src)
/*479488*/          /*Scope*/ 38, /*->479527*/
/*479489*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*479491*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*479497*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*479500*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*479509*/            OPC_EmitNode1, TARGET_VAL(X86::VPMOVB2MZrr), 0,
                          MVT::v64i1, 1/*#Ops*/, 3,  // Results = #4
/*479516*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*479519*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 4, 5, 
                      // Src: (setcc:{ *:[v16i1] } (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v16i8] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPMOVB2MZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/*479527*/          0, /*End of Scope*/
/*479528*/        /*SwitchType*/ 59, MVT::v8i16,// ->479589
/*479530*/          OPC_MoveParent,
/*479531*/          OPC_RecordChild1, // #0 = $src
/*479532*/          OPC_MoveChild2,
/*479533*/          OPC_CheckCondCode, ISD::SETGT,
/*479535*/          OPC_MoveParent,
/*479536*/          OPC_CheckType, MVT::v8i1,
/*479538*/          OPC_Scope, 9, /*->479549*/ // 2 children in Scope
/*479540*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*479542*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVW2MZ128rr), 0,
                          MVT::v8i1, 1/*#Ops*/, 0, 
                      // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v8i16] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (VPMOVW2MZ128rr:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src)
/*479549*/          /*Scope*/ 38, /*->479588*/
/*479550*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*479552*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*479558*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*479561*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*479570*/            OPC_EmitNode1, TARGET_VAL(X86::VPMOVW2MZrr), 0,
                          MVT::v32i1, 1/*#Ops*/, 3,  // Results = #4
/*479577*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*479580*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 4, 5, 
                      // Src: (setcc:{ *:[v8i1] } (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v8i16] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPMOVW2MZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/*479588*/          0, /*End of Scope*/
/*479589*/        /*SwitchType*/ 59, MVT::v2i64,// ->479650
/*479591*/          OPC_MoveParent,
/*479592*/          OPC_RecordChild1, // #0 = $src
/*479593*/          OPC_MoveChild2,
/*479594*/          OPC_CheckCondCode, ISD::SETGT,
/*479596*/          OPC_MoveParent,
/*479597*/          OPC_CheckType, MVT::v2i1,
/*479599*/          OPC_Scope, 9, /*->479610*/ // 2 children in Scope
/*479601*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*479603*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQ2MZ128rr), 0,
                          MVT::v2i1, 1/*#Ops*/, 0, 
                      // Src: (setcc:{ *:[v2i1] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v2i64] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (VPMOVQ2MZ128rr:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src)
/*479610*/          /*Scope*/ 38, /*->479649*/
/*479611*/            OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*479613*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*479619*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*479622*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*479631*/            OPC_EmitNode1, TARGET_VAL(X86::VPMOVQ2MZrr), 0,
                          MVT::v8i1, 1/*#Ops*/, 3,  // Results = #4
/*479638*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*479641*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 4, 5, 
                      // Src: (setcc:{ *:[v2i1] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v2i64] }:$src, SETGT:{ *:[Other] }) - Complexity = 10
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPMOVQ2MZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/*479649*/          0, /*End of Scope*/
/*479650*/        0, // EndSwitchType
/*479651*/      0, // EndSwitchType
/*479652*/    /*Scope*/ 124|128,7/*1020*/, /*->480674*/
/*479654*/      OPC_RecordChild0, // #0 = $src
/*479655*/      OPC_Scope, 17|128,1/*145*/, /*->479803*/ // 9 children in Scope
/*479658*/        OPC_CheckChild0Type, MVT::v32i8,
/*479660*/        OPC_MoveChild1,
/*479661*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*479664*/        OPC_MoveChild0,
/*479665*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*479668*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*479670*/        OPC_CheckType, MVT::v8i32,
/*479672*/        OPC_MoveParent,
/*479673*/        OPC_MoveParent,
/*479674*/        OPC_MoveChild2,
/*479675*/        OPC_Scope, 62, /*->479739*/ // 2 children in Scope
/*479677*/          OPC_CheckCondCode, ISD::SETNE,
/*479679*/          OPC_MoveParent,
/*479680*/          OPC_CheckType, MVT::v32i1,
/*479682*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*479684*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*479690*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479693*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*479702*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #4
/*479708*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479711*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*479720*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*479728*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*479731*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTMBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/*479739*/        /*Scope*/ 62, /*->479802*/
/*479740*/          OPC_CheckCondCode, ISD::SETEQ,
/*479742*/          OPC_MoveParent,
/*479743*/          OPC_CheckType, MVT::v32i1,
/*479745*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*479747*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*479753*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479756*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*479765*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #4
/*479771*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479774*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*479783*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*479791*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*479794*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPTESTNMBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/*479802*/        0, /*End of Scope*/
/*479803*/      /*Scope*/ 17|128,1/*145*/, /*->479950*/
/*479805*/        OPC_CheckChild0Type, MVT::v16i8,
/*479807*/        OPC_MoveChild1,
/*479808*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*479811*/        OPC_MoveChild0,
/*479812*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*479815*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*479817*/        OPC_CheckType, MVT::v4i32,
/*479819*/        OPC_MoveParent,
/*479820*/        OPC_MoveParent,
/*479821*/        OPC_MoveChild2,
/*479822*/        OPC_Scope, 62, /*->479886*/ // 2 children in Scope
/*479824*/          OPC_CheckCondCode, ISD::SETNE,
/*479826*/          OPC_MoveParent,
/*479827*/          OPC_CheckType, MVT::v16i1,
/*479829*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*479831*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*479837*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*479840*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*479849*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #4
/*479855*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*479858*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*479867*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMBZrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*479875*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*479878*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/*479886*/        /*Scope*/ 62, /*->479949*/
/*479887*/          OPC_CheckCondCode, ISD::SETEQ,
/*479889*/          OPC_MoveParent,
/*479890*/          OPC_CheckType, MVT::v16i1,
/*479892*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*479894*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*479900*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*479903*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*479912*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #4
/*479918*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*479921*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*479930*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMBZrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*479938*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*479941*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/*479949*/        0, /*End of Scope*/
/*479950*/      /*Scope*/ 17|128,1/*145*/, /*->480097*/
/*479952*/        OPC_CheckChild0Type, MVT::v16i16,
/*479954*/        OPC_MoveChild1,
/*479955*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*479958*/        OPC_MoveChild0,
/*479959*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*479962*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*479964*/        OPC_CheckType, MVT::v8i32,
/*479966*/        OPC_MoveParent,
/*479967*/        OPC_MoveParent,
/*479968*/        OPC_MoveChild2,
/*479969*/        OPC_Scope, 62, /*->480033*/ // 2 children in Scope
/*479971*/          OPC_CheckCondCode, ISD::SETNE,
/*479973*/          OPC_MoveParent,
/*479974*/          OPC_CheckType, MVT::v16i1,
/*479976*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*479978*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*479984*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479987*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*479996*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #4
/*480002*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480005*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*480014*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*480022*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*480025*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTMWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/*480033*/        /*Scope*/ 62, /*->480096*/
/*480034*/          OPC_CheckCondCode, ISD::SETEQ,
/*480036*/          OPC_MoveParent,
/*480037*/          OPC_CheckType, MVT::v16i1,
/*480039*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*480041*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*480047*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480050*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*480059*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #4
/*480065*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480068*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*480077*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*480085*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*480088*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPTESTNMWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/*480096*/        0, /*End of Scope*/
/*480097*/      /*Scope*/ 17|128,1/*145*/, /*->480244*/
/*480099*/        OPC_CheckChild0Type, MVT::v8i16,
/*480101*/        OPC_MoveChild1,
/*480102*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*480105*/        OPC_MoveChild0,
/*480106*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*480109*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*480111*/        OPC_CheckType, MVT::v4i32,
/*480113*/        OPC_MoveParent,
/*480114*/        OPC_MoveParent,
/*480115*/        OPC_MoveChild2,
/*480116*/        OPC_Scope, 62, /*->480180*/ // 2 children in Scope
/*480118*/          OPC_CheckCondCode, ISD::SETNE,
/*480120*/          OPC_MoveParent,
/*480121*/          OPC_CheckType, MVT::v8i1,
/*480123*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*480125*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*480131*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480134*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*480143*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #4
/*480149*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480152*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*480161*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMWZrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*480169*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*480172*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/*480180*/        /*Scope*/ 62, /*->480243*/
/*480181*/          OPC_CheckCondCode, ISD::SETEQ,
/*480183*/          OPC_MoveParent,
/*480184*/          OPC_CheckType, MVT::v8i1,
/*480186*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*480188*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*480194*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480197*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*480206*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #4
/*480212*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480215*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*480224*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMWZrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*480232*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*480235*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/*480243*/        0, /*End of Scope*/
/*480244*/      /*Scope*/ 17|128,1/*145*/, /*->480391*/
/*480246*/        OPC_CheckChild0Type, MVT::v4i64,
/*480248*/        OPC_MoveChild1,
/*480249*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*480252*/        OPC_MoveChild0,
/*480253*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*480256*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*480258*/        OPC_CheckType, MVT::v8i32,
/*480260*/        OPC_MoveParent,
/*480261*/        OPC_MoveParent,
/*480262*/        OPC_MoveChild2,
/*480263*/        OPC_Scope, 62, /*->480327*/ // 2 children in Scope
/*480265*/          OPC_CheckCondCode, ISD::SETNE,
/*480267*/          OPC_MoveParent,
/*480268*/          OPC_CheckType, MVT::v4i1,
/*480270*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*480272*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*480278*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480281*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*480290*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*480296*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480299*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*480308*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*480316*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*480319*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/*480327*/        /*Scope*/ 62, /*->480390*/
/*480328*/          OPC_CheckCondCode, ISD::SETEQ,
/*480330*/          OPC_MoveParent,
/*480331*/          OPC_CheckType, MVT::v4i1,
/*480333*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*480335*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*480341*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480344*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*480353*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*480359*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480362*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*480371*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*480379*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*480382*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/*480390*/        0, /*End of Scope*/
/*480391*/      /*Scope*/ 17|128,1/*145*/, /*->480538*/
/*480393*/        OPC_CheckChild0Type, MVT::v2i64,
/*480395*/        OPC_MoveChild1,
/*480396*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*480399*/        OPC_MoveChild0,
/*480400*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*480403*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*480405*/        OPC_CheckType, MVT::v4i32,
/*480407*/        OPC_MoveParent,
/*480408*/        OPC_MoveParent,
/*480409*/        OPC_MoveChild2,
/*480410*/        OPC_Scope, 62, /*->480474*/ // 2 children in Scope
/*480412*/          OPC_CheckCondCode, ISD::SETNE,
/*480414*/          OPC_MoveParent,
/*480415*/          OPC_CheckType, MVT::v2i1,
/*480417*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*480419*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*480425*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480428*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*480437*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*480443*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480446*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*480455*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTMQZrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*480463*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*480466*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETNE:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTMQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/*480474*/        /*Scope*/ 62, /*->480537*/
/*480475*/          OPC_CheckCondCode, ISD::SETEQ,
/*480477*/          OPC_MoveParent,
/*480478*/          OPC_CheckType, MVT::v2i1,
/*480480*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*480482*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*480488*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480491*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*480500*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*480506*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480509*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*480518*/          OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMQZrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*480526*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*480529*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), SETEQ:{ *:[Other] }) - Complexity = 10
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPTESTNMQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/*480537*/        0, /*End of Scope*/
/*480538*/      /*Scope*/ 44, /*->480583*/
/*480539*/        OPC_CheckChild0Type, MVT::v16i32,
/*480541*/        OPC_MoveChild1,
/*480542*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*480545*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*480547*/        OPC_MoveParent,
/*480548*/        OPC_MoveChild2,
/*480549*/        OPC_Scope, 15, /*->480566*/ // 2 children in Scope
/*480551*/          OPC_CheckCondCode, ISD::SETNE,
/*480553*/          OPC_MoveParent,
/*480554*/          OPC_CheckType, MVT::v16i1,
/*480556*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*480558*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPTESTMDZrr:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src)
/*480566*/        /*Scope*/ 15, /*->480582*/
/*480567*/          OPC_CheckCondCode, ISD::SETEQ,
/*480569*/          OPC_MoveParent,
/*480570*/          OPC_CheckType, MVT::v16i1,
/*480572*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*480574*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPTESTNMDZrr:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src)
/*480582*/        0, /*End of Scope*/
/*480583*/      /*Scope*/ 44, /*->480628*/
/*480584*/        OPC_CheckChild0Type, MVT::v8i32,
/*480586*/        OPC_MoveChild1,
/*480587*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*480590*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*480592*/        OPC_MoveParent,
/*480593*/        OPC_MoveChild2,
/*480594*/        OPC_Scope, 15, /*->480611*/ // 2 children in Scope
/*480596*/          OPC_CheckCondCode, ISD::SETNE,
/*480598*/          OPC_MoveParent,
/*480599*/          OPC_CheckType, MVT::v8i1,
/*480601*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480603*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ256rr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPTESTMDZ256rr:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src)
/*480611*/        /*Scope*/ 15, /*->480627*/
/*480612*/          OPC_CheckCondCode, ISD::SETEQ,
/*480614*/          OPC_MoveParent,
/*480615*/          OPC_CheckType, MVT::v8i1,
/*480617*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480619*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ256rr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPTESTNMDZ256rr:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src)
/*480627*/        0, /*End of Scope*/
/*480628*/      /*Scope*/ 44, /*->480673*/
/*480629*/        OPC_CheckChild0Type, MVT::v4i32,
/*480631*/        OPC_MoveChild1,
/*480632*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*480635*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*480637*/        OPC_MoveParent,
/*480638*/        OPC_MoveChild2,
/*480639*/        OPC_Scope, 15, /*->480656*/ // 2 children in Scope
/*480641*/          OPC_CheckCondCode, ISD::SETNE,
/*480643*/          OPC_MoveParent,
/*480644*/          OPC_CheckType, MVT::v4i1,
/*480646*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480648*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTMDZ128rr), 0,
                        MVT::v4i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPTESTMDZ128rr:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src)
/*480656*/        /*Scope*/ 15, /*->480672*/
/*480657*/          OPC_CheckCondCode, ISD::SETEQ,
/*480659*/          OPC_MoveParent,
/*480660*/          OPC_CheckType, MVT::v4i1,
/*480662*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480664*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTESTNMDZ128rr), 0,
                        MVT::v4i1, 2/*#Ops*/, 0, 0, 
                    // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPTESTNMDZ128rr:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src)
/*480672*/        0, /*End of Scope*/
/*480673*/      0, /*End of Scope*/
/*480674*/    /*Scope*/ 21|128,1/*149*/, /*->480825*/
/*480676*/      OPC_MoveChild0,
/*480677*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*480680*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*480682*/      OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->480702
/*480685*/        OPC_MoveParent,
/*480686*/        OPC_RecordChild1, // #0 = $src
/*480687*/        OPC_MoveChild2,
/*480688*/        OPC_CheckCondCode, ISD::SETGT,
/*480690*/        OPC_MoveParent,
/*480691*/        OPC_CheckType, MVT::v16i1,
/*480693*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*480695*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVD2MZrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 0, 
                  // Src: (setcc:{ *:[v16i1] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, VR512:{ *:[v16i32] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                  // Dst: (VPMOVD2MZrr:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src)
/*480702*/      /*SwitchType*/ 59, MVT::v8i32,// ->480763
/*480704*/        OPC_MoveParent,
/*480705*/        OPC_RecordChild1, // #0 = $src
/*480706*/        OPC_MoveChild2,
/*480707*/        OPC_CheckCondCode, ISD::SETGT,
/*480709*/        OPC_MoveParent,
/*480710*/        OPC_CheckType, MVT::v8i1,
/*480712*/        OPC_Scope, 9, /*->480723*/ // 2 children in Scope
/*480714*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*480716*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVD2MZ256rr), 0,
                        MVT::v8i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v8i1] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, VR256X:{ *:[v8i32] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPMOVD2MZ256rr:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src)
/*480723*/        /*Scope*/ 38, /*->480762*/
/*480724*/          OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*480726*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*480732*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480735*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*480744*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVD2MZrr), 0,
                        MVT::v16i1, 1/*#Ops*/, 3,  // Results = #4
/*480751*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*480754*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 5, 
                    // Src: (setcc:{ *:[v8i1] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, VR256X:{ *:[v8i32] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPMOVD2MZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/*480762*/        0, /*End of Scope*/
/*480763*/      /*SwitchType*/ 59, MVT::v4i32,// ->480824
/*480765*/        OPC_MoveParent,
/*480766*/        OPC_RecordChild1, // #0 = $src
/*480767*/        OPC_MoveChild2,
/*480768*/        OPC_CheckCondCode, ISD::SETGT,
/*480770*/        OPC_MoveParent,
/*480771*/        OPC_CheckType, MVT::v4i1,
/*480773*/        OPC_Scope, 9, /*->480784*/ // 2 children in Scope
/*480775*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*480777*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVD2MZ128rr), 0,
                        MVT::v4i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v4i1] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, VR128X:{ *:[v4i32] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPMOVD2MZ128rr:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src)
/*480784*/        /*Scope*/ 38, /*->480823*/
/*480785*/          OPC_CheckPatternPredicate, 123, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*480787*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*480793*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480796*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*480805*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVD2MZrr), 0,
                        MVT::v16i1, 1/*#Ops*/, 3,  // Results = #4
/*480812*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*480815*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 4, 5, 
                    // Src: (setcc:{ *:[v4i1] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, VR128X:{ *:[v4i32] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPMOVD2MZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/*480823*/        0, /*End of Scope*/
/*480824*/      0, // EndSwitchType
/*480825*/    /*Scope*/ 91|128,13/*1755*/, /*->482582*/
/*480827*/      OPC_RecordChild0, // #0 = $src
/*480828*/      OPC_Scope, 48|128,2/*304*/, /*->481135*/ // 12 children in Scope
/*480831*/        OPC_CheckChild0Type, MVT::v8i32,
/*480833*/        OPC_Scope, 8|128,1/*136*/, /*->480972*/ // 2 children in Scope
/*480836*/          OPC_MoveChild1,
/*480837*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*480840*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*480842*/          OPC_MoveParent,
/*480843*/          OPC_MoveChild2,
/*480844*/          OPC_Scope, 62, /*->480908*/ // 2 children in Scope
/*480846*/            OPC_CheckCondCode, ISD::SETNE,
/*480848*/            OPC_MoveParent,
/*480849*/            OPC_CheckType, MVT::v8i1,
/*480851*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*480853*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*480859*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480862*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*480871*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #4
/*480877*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480880*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*480889*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*480897*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*480900*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 7, 8, 
                      // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTMDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/*480908*/          /*Scope*/ 62, /*->480971*/
/*480909*/            OPC_CheckCondCode, ISD::SETEQ,
/*480911*/            OPC_MoveParent,
/*480912*/            OPC_CheckType, MVT::v8i1,
/*480914*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*480916*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*480922*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480925*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*480934*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #4
/*480940*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480943*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*480952*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*480960*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*480963*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 7, 8, 
                      // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPTESTNMDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/*480971*/          0, /*End of Scope*/
/*480972*/        /*Scope*/ 32|128,1/*160*/, /*->481134*/
/*480974*/          OPC_RecordChild1, // #1 = $src2
/*480975*/          OPC_MoveChild2,
/*480976*/          OPC_Scope, 15, /*->480993*/ // 3 children in Scope
/*480978*/            OPC_CheckCondCode, ISD::SETEQ,
/*480980*/            OPC_MoveParent,
/*480981*/            OPC_CheckType, MVT::v8i1,
/*480983*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480985*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ256rr), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 1, 
                      // Src: (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                      // Dst: (VPCMPEQDZ256rr:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*480993*/          /*Scope*/ 76, /*->481070*/
/*480994*/            OPC_CheckCondCode, ISD::SETGT,
/*480996*/            OPC_MoveParent,
/*480997*/            OPC_CheckType, MVT::v8i1,
/*480999*/            OPC_Scope, 10, /*->481011*/ // 2 children in Scope
/*481001*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481003*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ256rr), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                        // Dst: (VPCMPGTDZ256rr:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*481011*/            /*Scope*/ 57, /*->481069*/
/*481012*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*481014*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*481020*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481023*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*481032*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*481038*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481041*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*481050*/              OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTDZrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*481058*/              OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*481061*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                        // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPGTDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/*481069*/            0, /*End of Scope*/
/*481070*/          /*Scope*/ 62, /*->481133*/
/*481071*/            OPC_CheckCondCode, ISD::SETEQ,
/*481073*/            OPC_MoveParent,
/*481074*/            OPC_CheckType, MVT::v8i1,
/*481076*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*481078*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*481084*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481087*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*481096*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*481102*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481105*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*481114*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQDZrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*481122*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*481125*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 8, 9, 
                      // Src: (X86setcc_commute:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPEQDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] })), VK8:{ *:[i32] })
/*481133*/          0, /*End of Scope*/
/*481134*/        0, /*End of Scope*/
/*481135*/      /*Scope*/ 48|128,2/*304*/, /*->481441*/
/*481137*/        OPC_CheckChild0Type, MVT::v4i32,
/*481139*/        OPC_Scope, 8|128,1/*136*/, /*->481278*/ // 2 children in Scope
/*481142*/          OPC_MoveChild1,
/*481143*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*481146*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*481148*/          OPC_MoveParent,
/*481149*/          OPC_MoveChild2,
/*481150*/          OPC_Scope, 62, /*->481214*/ // 2 children in Scope
/*481152*/            OPC_CheckCondCode, ISD::SETNE,
/*481154*/            OPC_MoveParent,
/*481155*/            OPC_CheckType, MVT::v4i1,
/*481157*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*481159*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*481165*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481168*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*481177*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #4
/*481183*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481186*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*481195*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTMDZrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*481203*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*481206*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 7, 8, 
                      // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETNE:{ *:[Other] }) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTMDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/*481214*/          /*Scope*/ 62, /*->481277*/
/*481215*/            OPC_CheckCondCode, ISD::SETEQ,
/*481217*/            OPC_MoveParent,
/*481218*/            OPC_CheckType, MVT::v4i1,
/*481220*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*481222*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*481228*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481231*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*481240*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #4
/*481246*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481249*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*481258*/            OPC_EmitNode1, TARGET_VAL(X86::VPTESTNMDZrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 6,  // Results = #7
/*481266*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*481269*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 7, 8, 
                      // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, SETEQ:{ *:[Other] }) - Complexity = 7
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPTESTNMDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/*481277*/          0, /*End of Scope*/
/*481278*/        /*Scope*/ 32|128,1/*160*/, /*->481440*/
/*481280*/          OPC_RecordChild1, // #1 = $src2
/*481281*/          OPC_MoveChild2,
/*481282*/          OPC_Scope, 15, /*->481299*/ // 3 children in Scope
/*481284*/            OPC_CheckCondCode, ISD::SETEQ,
/*481286*/            OPC_MoveParent,
/*481287*/            OPC_CheckType, MVT::v4i1,
/*481289*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481291*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZ128rr), 0,
                          MVT::v4i1, 2/*#Ops*/, 0, 1, 
                      // Src: (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                      // Dst: (VPCMPEQDZ128rr:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*481299*/          /*Scope*/ 76, /*->481376*/
/*481300*/            OPC_CheckCondCode, ISD::SETGT,
/*481302*/            OPC_MoveParent,
/*481303*/            OPC_CheckType, MVT::v4i1,
/*481305*/            OPC_Scope, 10, /*->481317*/ // 2 children in Scope
/*481307*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481309*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZ128rr), 0,
                            MVT::v4i1, 2/*#Ops*/, 0, 1, 
                        // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                        // Dst: (VPCMPGTDZ128rr:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*481317*/            /*Scope*/ 57, /*->481375*/
/*481318*/              OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*481320*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*481326*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481329*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*481338*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*481344*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481347*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*481356*/              OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTDZrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*481364*/              OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*481367*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i1, 2/*#Ops*/, 8, 9, 
                        // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                        // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPGTDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/*481375*/            0, /*End of Scope*/
/*481376*/          /*Scope*/ 62, /*->481439*/
/*481377*/            OPC_CheckCondCode, ISD::SETEQ,
/*481379*/            OPC_MoveParent,
/*481380*/            OPC_CheckType, MVT::v4i1,
/*481382*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*481384*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*481390*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481393*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*481402*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/*481408*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481411*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*481420*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQDZrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*481428*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*481431*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 8, 9, 
                      // Src: (X86setcc_commute:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPEQDZrr:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] })), VK4:{ *:[i32] })
/*481439*/          0, /*End of Scope*/
/*481440*/        0, /*End of Scope*/
/*481441*/      /*Scope*/ 38, /*->481480*/
/*481442*/        OPC_CheckChild0Type, MVT::v64i8,
/*481444*/        OPC_RecordChild1, // #1 = $src2
/*481445*/        OPC_MoveChild2,
/*481446*/        OPC_Scope, 15, /*->481463*/ // 2 children in Scope
/*481448*/          OPC_CheckCondCode, ISD::SETEQ,
/*481450*/          OPC_MoveParent,
/*481451*/          OPC_CheckType, MVT::v64i1,
/*481453*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*481455*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 1, 
                    // Src: (X86setcc_commute:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPEQBZrr:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*481463*/        /*Scope*/ 15, /*->481479*/
/*481464*/          OPC_CheckCondCode, ISD::SETGT,
/*481466*/          OPC_MoveParent,
/*481467*/          OPC_CheckType, MVT::v64i1,
/*481469*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*481471*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 1, 
                    // Src: (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPGTBZrr:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*481479*/        0, /*End of Scope*/
/*481480*/      /*Scope*/ 34|128,1/*162*/, /*->481644*/
/*481482*/        OPC_CheckChild0Type, MVT::v32i8,
/*481484*/        OPC_RecordChild1, // #1 = $src2
/*481485*/        OPC_MoveChild2,
/*481486*/        OPC_Scope, 15, /*->481503*/ // 3 children in Scope
/*481488*/          OPC_CheckCondCode, ISD::SETEQ,
/*481490*/          OPC_MoveParent,
/*481491*/          OPC_CheckType, MVT::v32i1,
/*481493*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481495*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ256rr), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 1, 
                    // Src: (X86setcc_commute:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPEQBZ256rr:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*481503*/        /*Scope*/ 76, /*->481580*/
/*481504*/          OPC_CheckCondCode, ISD::SETGT,
/*481506*/          OPC_MoveParent,
/*481507*/          OPC_CheckType, MVT::v32i1,
/*481509*/          OPC_Scope, 10, /*->481521*/ // 2 children in Scope
/*481511*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481513*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ256rr), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (VPCMPGTBZ256rr:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*481521*/          /*Scope*/ 57, /*->481579*/
/*481522*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*481524*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #2
/*481530*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481533*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*481542*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #5
/*481548*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481551*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*481560*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTBZrr), 0,
                          MVT::v64i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*481568*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*481571*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 8, 9, 
                      // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPGTBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/*481579*/          0, /*End of Scope*/
/*481580*/        /*Scope*/ 62, /*->481643*/
/*481581*/          OPC_CheckCondCode, ISD::SETEQ,
/*481583*/          OPC_MoveParent,
/*481584*/          OPC_CheckType, MVT::v32i1,
/*481586*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*481588*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #2
/*481594*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481597*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*481606*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #5
/*481612*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481615*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*481624*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQBZrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*481632*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*481635*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 8, 9, 
                    // Src: (X86setcc_commute:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPEQBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/*481643*/        0, /*End of Scope*/
/*481644*/      /*Scope*/ 34|128,1/*162*/, /*->481808*/
/*481646*/        OPC_CheckChild0Type, MVT::v16i8,
/*481648*/        OPC_RecordChild1, // #1 = $src2
/*481649*/        OPC_MoveChild2,
/*481650*/        OPC_Scope, 15, /*->481667*/ // 3 children in Scope
/*481652*/          OPC_CheckCondCode, ISD::SETEQ,
/*481654*/          OPC_MoveParent,
/*481655*/          OPC_CheckType, MVT::v16i1,
/*481657*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481659*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBZ128rr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 1, 
                    // Src: (X86setcc_commute:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPEQBZ128rr:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*481667*/        /*Scope*/ 76, /*->481744*/
/*481668*/          OPC_CheckCondCode, ISD::SETGT,
/*481670*/          OPC_MoveParent,
/*481671*/          OPC_CheckType, MVT::v16i1,
/*481673*/          OPC_Scope, 10, /*->481685*/ // 2 children in Scope
/*481675*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481677*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBZ128rr), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (VPCMPGTBZ128rr:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*481685*/          /*Scope*/ 57, /*->481743*/
/*481686*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*481688*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #2
/*481694*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481697*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*481706*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #5
/*481712*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481715*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*481724*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTBZrr), 0,
                          MVT::v64i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*481732*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*481735*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 8, 9, 
                      // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPGTBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/*481743*/          0, /*End of Scope*/
/*481744*/        /*Scope*/ 62, /*->481807*/
/*481745*/          OPC_CheckCondCode, ISD::SETEQ,
/*481747*/          OPC_MoveParent,
/*481748*/          OPC_CheckType, MVT::v16i1,
/*481750*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*481752*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #2
/*481758*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481761*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*481770*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #5
/*481776*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481779*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*481788*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQBZrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*481796*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*481799*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 8, 9, 
                    // Src: (X86setcc_commute:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPEQBZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/*481807*/        0, /*End of Scope*/
/*481808*/      /*Scope*/ 38, /*->481847*/
/*481809*/        OPC_CheckChild0Type, MVT::v32i16,
/*481811*/        OPC_RecordChild1, // #1 = $src2
/*481812*/        OPC_MoveChild2,
/*481813*/        OPC_Scope, 15, /*->481830*/ // 2 children in Scope
/*481815*/          OPC_CheckCondCode, ISD::SETEQ,
/*481817*/          OPC_MoveParent,
/*481818*/          OPC_CheckType, MVT::v32i1,
/*481820*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*481822*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 1, 
                    // Src: (X86setcc_commute:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPEQWZrr:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*481830*/        /*Scope*/ 15, /*->481846*/
/*481831*/          OPC_CheckCondCode, ISD::SETGT,
/*481833*/          OPC_MoveParent,
/*481834*/          OPC_CheckType, MVT::v32i1,
/*481836*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*481838*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 1, 
                    // Src: (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPGTWZrr:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*481846*/        0, /*End of Scope*/
/*481847*/      /*Scope*/ 34|128,1/*162*/, /*->482011*/
/*481849*/        OPC_CheckChild0Type, MVT::v16i16,
/*481851*/        OPC_RecordChild1, // #1 = $src2
/*481852*/        OPC_MoveChild2,
/*481853*/        OPC_Scope, 15, /*->481870*/ // 3 children in Scope
/*481855*/          OPC_CheckCondCode, ISD::SETEQ,
/*481857*/          OPC_MoveParent,
/*481858*/          OPC_CheckType, MVT::v16i1,
/*481860*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481862*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ256rr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 1, 
                    // Src: (X86setcc_commute:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPEQWZ256rr:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*481870*/        /*Scope*/ 76, /*->481947*/
/*481871*/          OPC_CheckCondCode, ISD::SETGT,
/*481873*/          OPC_MoveParent,
/*481874*/          OPC_CheckType, MVT::v16i1,
/*481876*/          OPC_Scope, 10, /*->481888*/ // 2 children in Scope
/*481878*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481880*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ256rr), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (VPCMPGTWZ256rr:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*481888*/          /*Scope*/ 57, /*->481946*/
/*481889*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*481891*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*481897*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481900*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*481909*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*481915*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481918*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*481927*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTWZrr), 0,
                          MVT::v32i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*481935*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*481938*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 8, 9, 
                      // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPGTWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/*481946*/          0, /*End of Scope*/
/*481947*/        /*Scope*/ 62, /*->482010*/
/*481948*/          OPC_CheckCondCode, ISD::SETEQ,
/*481950*/          OPC_MoveParent,
/*481951*/          OPC_CheckType, MVT::v16i1,
/*481953*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*481955*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*481961*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481964*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*481973*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*481979*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481982*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*481991*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQWZrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*481999*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*482002*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 8, 9, 
                    // Src: (X86setcc_commute:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPEQWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/*482010*/        0, /*End of Scope*/
/*482011*/      /*Scope*/ 34|128,1/*162*/, /*->482175*/
/*482013*/        OPC_CheckChild0Type, MVT::v8i16,
/*482015*/        OPC_RecordChild1, // #1 = $src2
/*482016*/        OPC_MoveChild2,
/*482017*/        OPC_Scope, 15, /*->482034*/ // 3 children in Scope
/*482019*/          OPC_CheckCondCode, ISD::SETEQ,
/*482021*/          OPC_MoveParent,
/*482022*/          OPC_CheckType, MVT::v8i1,
/*482024*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*482026*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWZ128rr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (X86setcc_commute:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPEQWZ128rr:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*482034*/        /*Scope*/ 76, /*->482111*/
/*482035*/          OPC_CheckCondCode, ISD::SETGT,
/*482037*/          OPC_MoveParent,
/*482038*/          OPC_CheckType, MVT::v8i1,
/*482040*/          OPC_Scope, 10, /*->482052*/ // 2 children in Scope
/*482042*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*482044*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWZ128rr), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (VPCMPGTWZ128rr:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*482052*/          /*Scope*/ 57, /*->482110*/
/*482053*/            OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*482055*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*482061*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482064*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*482073*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*482079*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482082*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*482091*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTWZrr), 0,
                          MVT::v32i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*482099*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*482102*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 8, 9, 
                      // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPGTWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/*482110*/          0, /*End of Scope*/
/*482111*/        /*Scope*/ 62, /*->482174*/
/*482112*/          OPC_CheckCondCode, ISD::SETEQ,
/*482114*/          OPC_MoveParent,
/*482115*/          OPC_CheckType, MVT::v8i1,
/*482117*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*482119*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*482125*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482128*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*482137*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*482143*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482146*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*482155*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQWZrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*482163*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*482166*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 8, 9, 
                    // Src: (X86setcc_commute:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPEQWZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/*482174*/        0, /*End of Scope*/
/*482175*/      /*Scope*/ 38, /*->482214*/
/*482176*/        OPC_CheckChild0Type, MVT::v16i32,
/*482178*/        OPC_RecordChild1, // #1 = $src2
/*482179*/        OPC_MoveChild2,
/*482180*/        OPC_Scope, 15, /*->482197*/ // 2 children in Scope
/*482182*/          OPC_CheckCondCode, ISD::SETEQ,
/*482184*/          OPC_MoveParent,
/*482185*/          OPC_CheckType, MVT::v16i1,
/*482187*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*482189*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDZrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 1, 
                    // Src: (X86setcc_commute:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPEQDZrr:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*482197*/        /*Scope*/ 15, /*->482213*/
/*482198*/          OPC_CheckCondCode, ISD::SETGT,
/*482200*/          OPC_MoveParent,
/*482201*/          OPC_CheckType, MVT::v16i1,
/*482203*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*482205*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDZrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 1, 
                    // Src: (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPGTDZrr:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*482213*/        0, /*End of Scope*/
/*482214*/      /*Scope*/ 38, /*->482253*/
/*482215*/        OPC_CheckChild0Type, MVT::v8i64,
/*482217*/        OPC_RecordChild1, // #1 = $src2
/*482218*/        OPC_MoveChild2,
/*482219*/        OPC_Scope, 15, /*->482236*/ // 2 children in Scope
/*482221*/          OPC_CheckCondCode, ISD::SETEQ,
/*482223*/          OPC_MoveParent,
/*482224*/          OPC_CheckType, MVT::v8i1,
/*482226*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*482228*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (X86setcc_commute:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPEQQZrr:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*482236*/        /*Scope*/ 15, /*->482252*/
/*482237*/          OPC_CheckCondCode, ISD::SETGT,
/*482239*/          OPC_MoveParent,
/*482240*/          OPC_CheckType, MVT::v8i1,
/*482242*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*482244*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPGTQZrr:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*482252*/        0, /*End of Scope*/
/*482253*/      /*Scope*/ 34|128,1/*162*/, /*->482417*/
/*482255*/        OPC_CheckChild0Type, MVT::v4i64,
/*482257*/        OPC_RecordChild1, // #1 = $src2
/*482258*/        OPC_MoveChild2,
/*482259*/        OPC_Scope, 15, /*->482276*/ // 3 children in Scope
/*482261*/          OPC_CheckCondCode, ISD::SETEQ,
/*482263*/          OPC_MoveParent,
/*482264*/          OPC_CheckType, MVT::v4i1,
/*482266*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482268*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ256rr), 0,
                        MVT::v4i1, 2/*#Ops*/, 0, 1, 
                    // Src: (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPEQQZ256rr:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*482276*/        /*Scope*/ 76, /*->482353*/
/*482277*/          OPC_CheckCondCode, ISD::SETGT,
/*482279*/          OPC_MoveParent,
/*482280*/          OPC_CheckType, MVT::v4i1,
/*482282*/          OPC_Scope, 10, /*->482294*/ // 2 children in Scope
/*482284*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482286*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ256rr), 0,
                          MVT::v4i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (VPCMPGTQZ256rr:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*482294*/          /*Scope*/ 57, /*->482352*/
/*482295*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*482297*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*482303*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*482306*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*482315*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*482321*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*482324*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*482333*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTQZrr), 0,
                          MVT::v8i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*482341*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*482344*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 8, 9, 
                      // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPGTQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/*482352*/          0, /*End of Scope*/
/*482353*/        /*Scope*/ 62, /*->482416*/
/*482354*/          OPC_CheckCondCode, ISD::SETEQ,
/*482356*/          OPC_MoveParent,
/*482357*/          OPC_CheckType, MVT::v4i1,
/*482359*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*482361*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*482367*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*482370*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*482379*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*482385*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*482388*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*482397*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQQZrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*482405*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*482408*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 8, 9, 
                    // Src: (X86setcc_commute:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPEQQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/*482416*/        0, /*End of Scope*/
/*482417*/      /*Scope*/ 34|128,1/*162*/, /*->482581*/
/*482419*/        OPC_CheckChild0Type, MVT::v2i64,
/*482421*/        OPC_RecordChild1, // #1 = $src2
/*482422*/        OPC_MoveChild2,
/*482423*/        OPC_Scope, 15, /*->482440*/ // 3 children in Scope
/*482425*/          OPC_CheckCondCode, ISD::SETEQ,
/*482427*/          OPC_MoveParent,
/*482428*/          OPC_CheckType, MVT::v2i1,
/*482430*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482432*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQZ128rr), 0,
                        MVT::v2i1, 2/*#Ops*/, 0, 1, 
                    // Src: (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (VPCMPEQQZ128rr:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*482440*/        /*Scope*/ 76, /*->482517*/
/*482441*/          OPC_CheckCondCode, ISD::SETGT,
/*482443*/          OPC_MoveParent,
/*482444*/          OPC_CheckType, MVT::v2i1,
/*482446*/          OPC_Scope, 10, /*->482458*/ // 2 children in Scope
/*482448*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482450*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQZ128rr), 0,
                          MVT::v2i1, 2/*#Ops*/, 0, 1, 
                      // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (VPCMPGTQZ128rr:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*482458*/          /*Scope*/ 57, /*->482516*/
/*482459*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*482461*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*482467*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482470*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*482479*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*482485*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482488*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*482497*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPGTQZrr), 0,
                          MVT::v8i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*482505*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*482508*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 8, 9, 
                      // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETGT:{ *:[Other] }) - Complexity = 5
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPGTQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/*482516*/          0, /*End of Scope*/
/*482517*/        /*Scope*/ 62, /*->482580*/
/*482518*/          OPC_CheckCondCode, ISD::SETEQ,
/*482520*/          OPC_MoveParent,
/*482521*/          OPC_CheckType, MVT::v2i1,
/*482523*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*482525*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*482531*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482534*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*482543*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*482549*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482552*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*482561*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPEQQZrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 7,  // Results = #8
/*482569*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*482572*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 8, 9, 
                    // Src: (X86setcc_commute:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, SETEQ:{ *:[Other] }) - Complexity = 5
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPEQQZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/*482580*/        0, /*End of Scope*/
/*482581*/      0, /*End of Scope*/
/*482582*/    /*Scope*/ 64|128,12/*1600*/, /*->484184*/
/*482584*/      OPC_RecordNode, // #0 = $cc
/*482585*/      OPC_RecordChild0, // #1 = $src1
/*482586*/      OPC_Scope, 46, /*->482634*/ // 12 children in Scope
/*482588*/        OPC_CheckChild0Type, MVT::v64i8,
/*482590*/        OPC_RecordChild1, // #2 = $src2
/*482591*/        OPC_MoveChild2,
/*482592*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*482595*/        OPC_MoveParent,
/*482596*/        OPC_CheckType, MVT::v64i1,
/*482598*/        OPC_Scope, 16, /*->482616*/ // 2 children in Scope
/*482600*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*482602*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*482604*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*482607*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZrri), 0,
                        MVT::v64i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPBZrri:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] })):$cc))
/*482616*/        /*Scope*/ 16, /*->482633*/
/*482617*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*482619*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*482621*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*482624*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZrri), 0,
                        MVT::v64i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUBZrri:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (cond:{ *:[Other] })):$cc))
/*482633*/        0, /*End of Scope*/
/*482634*/      /*Scope*/ 46|128,1/*174*/, /*->482810*/
/*482636*/        OPC_CheckChild0Type, MVT::v32i8,
/*482638*/        OPC_RecordChild1, // #2 = $src2
/*482639*/        OPC_MoveChild2,
/*482640*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*482643*/        OPC_MoveParent,
/*482644*/        OPC_CheckType, MVT::v32i1,
/*482646*/        OPC_Scope, 16, /*->482664*/ // 4 children in Scope
/*482648*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*482650*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*482652*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*482655*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ256rri), 0,
                        MVT::v32i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPBZ256rri:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] })):$cc))
/*482664*/        /*Scope*/ 16, /*->482681*/
/*482665*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*482667*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*482669*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*482672*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ256rri), 0,
                        MVT::v32i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUBZ256rri:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] })):$cc))
/*482681*/        /*Scope*/ 63, /*->482745*/
/*482682*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*482684*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*482686*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*482692*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*482695*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*482704*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #6
/*482710*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*482713*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*482722*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*482725*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrri), 0,
                        MVT::v64i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*482734*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*482737*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPBZrri:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v32i1] }:$cc)), VK32:{ *:[i32] })
/*482745*/        /*Scope*/ 63, /*->482809*/
/*482746*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*482748*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*482750*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*482756*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*482759*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*482768*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #6
/*482774*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*482777*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*482786*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*482789*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrri), 0,
                        MVT::v64i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*482798*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*482801*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPCMPUBZrri:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v32i1] }:$cc)), VK32:{ *:[i32] })
/*482809*/        0, /*End of Scope*/
/*482810*/      /*Scope*/ 46|128,1/*174*/, /*->482986*/
/*482812*/        OPC_CheckChild0Type, MVT::v16i8,
/*482814*/        OPC_RecordChild1, // #2 = $src2
/*482815*/        OPC_MoveChild2,
/*482816*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*482819*/        OPC_MoveParent,
/*482820*/        OPC_CheckType, MVT::v16i1,
/*482822*/        OPC_Scope, 16, /*->482840*/ // 4 children in Scope
/*482824*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*482826*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*482828*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*482831*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPBZ128rri), 0,
                        MVT::v16i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPBZ128rri:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] })):$cc))
/*482840*/        /*Scope*/ 16, /*->482857*/
/*482841*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*482843*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*482845*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*482848*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUBZ128rri), 0,
                        MVT::v16i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUBZ128rri:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] })):$cc))
/*482857*/        /*Scope*/ 63, /*->482921*/
/*482858*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*482860*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*482862*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*482868*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482871*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*482880*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #6
/*482886*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482889*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*482898*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*482901*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrri), 0,
                        MVT::v64i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*482910*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*482913*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPBZrri:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/*482921*/        /*Scope*/ 63, /*->482985*/
/*482922*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*482924*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*482926*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*482932*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482935*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*482944*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #6
/*482950*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482953*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*482962*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*482965*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrri), 0,
                        MVT::v64i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*482974*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*482977*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPUBZrri:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/*482985*/        0, /*End of Scope*/
/*482986*/      /*Scope*/ 46, /*->483033*/
/*482987*/        OPC_CheckChild0Type, MVT::v32i16,
/*482989*/        OPC_RecordChild1, // #2 = $src2
/*482990*/        OPC_MoveChild2,
/*482991*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*482994*/        OPC_MoveParent,
/*482995*/        OPC_CheckType, MVT::v32i1,
/*482997*/        OPC_Scope, 16, /*->483015*/ // 2 children in Scope
/*482999*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483001*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*483003*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483006*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZrri), 0,
                        MVT::v32i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPWZrri:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] })):$cc))
/*483015*/        /*Scope*/ 16, /*->483032*/
/*483016*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483018*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*483020*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483023*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZrri), 0,
                        MVT::v32i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUWZrri:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (cond:{ *:[Other] })):$cc))
/*483032*/        0, /*End of Scope*/
/*483033*/      /*Scope*/ 46|128,1/*174*/, /*->483209*/
/*483035*/        OPC_CheckChild0Type, MVT::v16i16,
/*483037*/        OPC_RecordChild1, // #2 = $src2
/*483038*/        OPC_MoveChild2,
/*483039*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*483042*/        OPC_MoveParent,
/*483043*/        OPC_CheckType, MVT::v16i1,
/*483045*/        OPC_Scope, 16, /*->483063*/ // 4 children in Scope
/*483047*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483049*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483051*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483054*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ256rri), 0,
                        MVT::v16i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPWZ256rri:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] })):$cc))
/*483063*/        /*Scope*/ 16, /*->483080*/
/*483064*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483066*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483068*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483071*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ256rri), 0,
                        MVT::v16i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUWZ256rri:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] })):$cc))
/*483080*/        /*Scope*/ 63, /*->483144*/
/*483081*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483083*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*483085*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*483091*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483094*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*483103*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #6
/*483109*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483112*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*483121*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483124*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrri), 0,
                        MVT::v32i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*483133*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*483136*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPWZrri:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/*483144*/        /*Scope*/ 63, /*->483208*/
/*483145*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483147*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*483149*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*483155*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483158*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*483167*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #6
/*483173*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483176*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*483185*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483188*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrri), 0,
                        MVT::v32i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*483197*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*483200*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPCMPUWZrri:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v16i1] }:$cc)), VK16:{ *:[i32] })
/*483208*/        0, /*End of Scope*/
/*483209*/      /*Scope*/ 46|128,1/*174*/, /*->483385*/
/*483211*/        OPC_CheckChild0Type, MVT::v8i16,
/*483213*/        OPC_RecordChild1, // #2 = $src2
/*483214*/        OPC_MoveChild2,
/*483215*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*483218*/        OPC_MoveParent,
/*483219*/        OPC_CheckType, MVT::v8i1,
/*483221*/        OPC_Scope, 16, /*->483239*/ // 4 children in Scope
/*483223*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483225*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483227*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483230*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPWZ128rri), 0,
                        MVT::v8i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPWZ128rri:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] })):$cc))
/*483239*/        /*Scope*/ 16, /*->483256*/
/*483240*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483242*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483244*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483247*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUWZ128rri), 0,
                        MVT::v8i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUWZ128rri:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] })):$cc))
/*483256*/        /*Scope*/ 63, /*->483320*/
/*483257*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483259*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*483261*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*483267*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483270*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*483279*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #6
/*483285*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483288*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*483297*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483300*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrri), 0,
                        MVT::v32i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*483309*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*483312*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPWZrri:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/*483320*/        /*Scope*/ 63, /*->483384*/
/*483321*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483323*/          OPC_CheckPatternPredicate, 33, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*483325*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*483331*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483334*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*483343*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #6
/*483349*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483352*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*483361*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483364*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrri), 0,
                        MVT::v32i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*483373*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*483376*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUWZrri:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/*483384*/        0, /*End of Scope*/
/*483385*/      /*Scope*/ 46, /*->483432*/
/*483386*/        OPC_CheckChild0Type, MVT::v16i32,
/*483388*/        OPC_RecordChild1, // #2 = $src2
/*483389*/        OPC_MoveChild2,
/*483390*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*483393*/        OPC_MoveParent,
/*483394*/        OPC_CheckType, MVT::v16i1,
/*483396*/        OPC_Scope, 16, /*->483414*/ // 2 children in Scope
/*483398*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483400*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*483402*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPDZrri:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] })):$cc))
/*483414*/        /*Scope*/ 16, /*->483431*/
/*483415*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483417*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*483419*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483422*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUDZrri:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (cond:{ *:[Other] })):$cc))
/*483431*/        0, /*End of Scope*/
/*483432*/      /*Scope*/ 46|128,1/*174*/, /*->483608*/
/*483434*/        OPC_CheckChild0Type, MVT::v8i32,
/*483436*/        OPC_RecordChild1, // #2 = $src2
/*483437*/        OPC_MoveChild2,
/*483438*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*483441*/        OPC_MoveParent,
/*483442*/        OPC_CheckType, MVT::v8i1,
/*483444*/        OPC_Scope, 16, /*->483462*/ // 4 children in Scope
/*483446*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483448*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483450*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483453*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ256rri), 0,
                        MVT::v8i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPDZ256rri:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] })):$cc))
/*483462*/        /*Scope*/ 16, /*->483479*/
/*483463*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483465*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483467*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483470*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ256rri), 0,
                        MVT::v8i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUDZ256rri:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] })):$cc))
/*483479*/        /*Scope*/ 63, /*->483543*/
/*483480*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483482*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*483484*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*483490*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483493*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*483502*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #6
/*483508*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483511*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*483520*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483523*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*483532*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*483535*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPDZrri:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/*483543*/        /*Scope*/ 63, /*->483607*/
/*483544*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483546*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*483548*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*483554*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483557*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*483566*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #6
/*483572*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483575*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*483584*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483587*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*483596*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*483599*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUDZrri:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/*483607*/        0, /*End of Scope*/
/*483608*/      /*Scope*/ 46|128,1/*174*/, /*->483784*/
/*483610*/        OPC_CheckChild0Type, MVT::v4i32,
/*483612*/        OPC_RecordChild1, // #2 = $src2
/*483613*/        OPC_MoveChild2,
/*483614*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*483617*/        OPC_MoveParent,
/*483618*/        OPC_CheckType, MVT::v4i1,
/*483620*/        OPC_Scope, 16, /*->483638*/ // 4 children in Scope
/*483622*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483624*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483626*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483629*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPDZ128rri), 0,
                        MVT::v4i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPDZ128rri:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] })):$cc))
/*483638*/        /*Scope*/ 16, /*->483655*/
/*483639*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483641*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483643*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483646*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUDZ128rri), 0,
                        MVT::v4i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUDZ128rri:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] })):$cc))
/*483655*/        /*Scope*/ 63, /*->483719*/
/*483656*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483658*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*483660*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*483666*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483669*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*483678*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #6
/*483684*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483687*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*483696*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483699*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*483708*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*483711*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPDZrri:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*483719*/        /*Scope*/ 63, /*->483783*/
/*483720*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483722*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*483724*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*483730*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483733*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*483742*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #6
/*483748*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483751*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*483760*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483763*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*483772*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*483775*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUDZrri:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*483783*/        0, /*End of Scope*/
/*483784*/      /*Scope*/ 46, /*->483831*/
/*483785*/        OPC_CheckChild0Type, MVT::v8i64,
/*483787*/        OPC_RecordChild1, // #2 = $src2
/*483788*/        OPC_MoveChild2,
/*483789*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*483792*/        OPC_MoveParent,
/*483793*/        OPC_CheckType, MVT::v8i1,
/*483795*/        OPC_Scope, 16, /*->483813*/ // 2 children in Scope
/*483797*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483799*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*483801*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483804*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPQZrri:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] })):$cc))
/*483813*/        /*Scope*/ 16, /*->483830*/
/*483814*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483816*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*483818*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483821*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUQZrri:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (cond:{ *:[Other] })):$cc))
/*483830*/        0, /*End of Scope*/
/*483831*/      /*Scope*/ 46|128,1/*174*/, /*->484007*/
/*483833*/        OPC_CheckChild0Type, MVT::v4i64,
/*483835*/        OPC_RecordChild1, // #2 = $src2
/*483836*/        OPC_MoveChild2,
/*483837*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*483840*/        OPC_MoveParent,
/*483841*/        OPC_CheckType, MVT::v4i1,
/*483843*/        OPC_Scope, 16, /*->483861*/ // 4 children in Scope
/*483845*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483847*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483849*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483852*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ256rri), 0,
                        MVT::v4i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPQZ256rri:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] })):$cc))
/*483861*/        /*Scope*/ 16, /*->483878*/
/*483862*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483864*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483866*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483869*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ256rri), 0,
                        MVT::v4i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUQZ256rri:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] })):$cc))
/*483878*/        /*Scope*/ 63, /*->483942*/
/*483879*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*483881*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*483883*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*483889*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483892*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*483901*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #6
/*483907*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483910*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*483919*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483922*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*483931*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*483934*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPQZrri:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*483942*/        /*Scope*/ 63, /*->484006*/
/*483943*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*483945*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*483947*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*483953*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483956*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*483965*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #6
/*483971*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483974*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*483983*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*483986*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*483995*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*483998*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUQZrri:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*484006*/        0, /*End of Scope*/
/*484007*/      /*Scope*/ 46|128,1/*174*/, /*->484183*/
/*484009*/        OPC_CheckChild0Type, MVT::v2i64,
/*484011*/        OPC_RecordChild1, // #2 = $src2
/*484012*/        OPC_MoveChild2,
/*484013*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*484016*/        OPC_MoveParent,
/*484017*/        OPC_CheckType, MVT::v2i1,
/*484019*/        OPC_Scope, 16, /*->484037*/ // 4 children in Scope
/*484021*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*484023*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*484025*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*484028*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPQZ128rri), 0,
                        MVT::v2i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPQZ128rri:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] })):$cc))
/*484037*/        /*Scope*/ 16, /*->484054*/
/*484038*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*484040*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*484042*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*484045*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPUQZ128rri), 0,
                        MVT::v2i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (VPCMPUQZ128rri:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] })):$cc))
/*484054*/        /*Scope*/ 63, /*->484118*/
/*484055*/          OPC_CheckPredicate, 46, // Predicate_X86pcmpm
/*484057*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*484059*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*484065*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*484068*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*484077*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #6
/*484083*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*484086*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*484095*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*484098*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*484107*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*484110*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPQZrri:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/*484118*/        /*Scope*/ 63, /*->484182*/
/*484119*/          OPC_CheckPredicate, 47, // Predicate_X86pcmpum
/*484121*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*484123*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*484129*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*484132*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*484141*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #6
/*484147*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*484150*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*484159*/          OPC_EmitNodeXForm, 7, 0, // X86pcmpm_imm
/*484162*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*484171*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*484174*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 10, 11, 
                    // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPUQZrri:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] }), (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/*484182*/        0, /*End of Scope*/
/*484183*/      0, /*End of Scope*/
/*484184*/    0, /*End of Scope*/
/*484185*/  /*SwitchOpcode*/ 11|128,11/*1419*/, TARGET_VAL(X86ISD::VSEXT),// ->485608
/*484189*/    OPC_Scope, 26|128,9/*1178*/, /*->485370*/ // 2 children in Scope
/*484192*/      OPC_MoveChild0,
/*484193*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*484196*/      OPC_MoveChild0,
/*484197*/      OPC_SwitchOpcode /*4 cases */, 47|128,2/*303*/, TARGET_VAL(X86ISD::VZEXT_MOVL),// ->484505
/*484202*/        OPC_MoveChild0,
/*484203*/        OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*484206*/        OPC_MoveChild0,
/*484207*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*484210*/        OPC_RecordMemRef,
/*484211*/        OPC_RecordNode, // #0 = 'ld' chained node
/*484212*/        OPC_CheckFoldableChainNode,
/*484213*/        OPC_RecordChild1, // #1 = $src
/*484214*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*484216*/        OPC_SwitchType /*2 cases */, 104|128,1/*232*/, MVT::i64,// ->484452
/*484220*/          OPC_CheckPredicate, 9, // Predicate_load
/*484222*/          OPC_MoveParent,
/*484223*/          OPC_MoveParent,
/*484224*/          OPC_CheckType, MVT::v2i64,
/*484226*/          OPC_MoveParent,
/*484227*/          OPC_Scope, 43, /*->484272*/ // 3 children in Scope
/*484229*/            OPC_CheckType, MVT::v16i8,
/*484231*/            OPC_MoveParent,
/*484232*/            OPC_SwitchType /*2 cases */, 17, MVT::v16i16,// ->484252
/*484235*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*484237*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484240*/              OPC_EmitMergeInputChains1_0,
/*484241*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                        // Dst: (VPMOVSXBWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*484252*/            /*SwitchType*/ 17, MVT::v8i32,// ->484271
/*484254*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484256*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484259*/              OPC_EmitMergeInputChains1_0,
/*484260*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                        // Dst: (VPMOVSXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*484271*/            0, // EndSwitchType
/*484272*/          /*Scope*/ 110, /*->484383*/
/*484273*/            OPC_SwitchType /*3 cases */, 41, MVT::v8i16,// ->484317
/*484276*/              OPC_MoveParent,
/*484277*/              OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->484297
/*484280*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484282*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484285*/                OPC_EmitMergeInputChains1_0,
/*484286*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVSXWDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*484297*/              /*SwitchType*/ 17, MVT::v4i64,// ->484316
/*484299*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484301*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484304*/                OPC_EmitMergeInputChains1_0,
/*484305*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVSXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484316*/              0, // EndSwitchType
/*484317*/            /*SwitchType*/ 20, MVT::v4i32,// ->484339
/*484319*/              OPC_MoveParent,
/*484320*/              OPC_CheckType, MVT::v4i64,
/*484322*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484324*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484327*/              OPC_EmitMergeInputChains1_0,
/*484328*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                        // Dst: (VPMOVSXDQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484339*/            /*SwitchType*/ 41, MVT::v16i8,// ->484382
/*484341*/              OPC_MoveParent,
/*484342*/              OPC_SwitchType /*2 cases */, 17, MVT::v16i16,// ->484362
/*484345*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*484347*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484350*/                OPC_EmitMergeInputChains1_0,
/*484351*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVSXBWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*484362*/              /*SwitchType*/ 17, MVT::v8i32,// ->484381
/*484364*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484366*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484369*/                OPC_EmitMergeInputChains1_0,
/*484370*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVSXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*484381*/              0, // EndSwitchType
/*484382*/            0, // EndSwitchType
/*484383*/          /*Scope*/ 67, /*->484451*/
/*484384*/            OPC_SwitchType /*2 cases */, 41, MVT::v8i16,// ->484428
/*484387*/              OPC_MoveParent,
/*484388*/              OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->484408
/*484391*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484393*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484396*/                OPC_EmitMergeInputChains1_0,
/*484397*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVSXWDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*484408*/              /*SwitchType*/ 17, MVT::v4i64,// ->484427
/*484410*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484412*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484415*/                OPC_EmitMergeInputChains1_0,
/*484416*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVSXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484427*/              0, // EndSwitchType
/*484428*/            /*SwitchType*/ 20, MVT::v4i32,// ->484450
/*484430*/              OPC_MoveParent,
/*484431*/              OPC_CheckType, MVT::v4i64,
/*484433*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484435*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484438*/              OPC_EmitMergeInputChains1_0,
/*484439*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                        // Dst: (VPMOVSXDQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484450*/            0, // EndSwitchType
/*484451*/          0, /*End of Scope*/
/*484452*/        /*SwitchType*/ 50, MVT::i32,// ->484504
/*484454*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*484456*/          OPC_MoveParent,
/*484457*/          OPC_MoveParent,
/*484458*/          OPC_CheckType, MVT::v4i32,
/*484460*/          OPC_MoveParent,
/*484461*/          OPC_CheckType, MVT::v16i8,
/*484463*/          OPC_MoveParent,
/*484464*/          OPC_CheckType, MVT::v4i64,
/*484466*/          OPC_Scope, 17, /*->484485*/ // 2 children in Scope
/*484468*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484470*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484473*/            OPC_EmitMergeInputChains1_0,
/*484474*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                      // Dst: (VPMOVSXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484485*/          /*Scope*/ 17, /*->484503*/
/*484486*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484488*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484491*/            OPC_EmitMergeInputChains1_0,
/*484492*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                      // Dst: (VPMOVSXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484503*/          0, /*End of Scope*/
/*484504*/        0, // EndSwitchType
/*484505*/      /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->484699
/*484509*/        OPC_MoveChild0,
/*484510*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*484513*/        OPC_RecordMemRef,
/*484514*/        OPC_RecordNode, // #0 = 'ld' chained node
/*484515*/        OPC_CheckFoldableChainNode,
/*484516*/        OPC_RecordChild1, // #1 = $src
/*484517*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*484519*/        OPC_SwitchType /*2 cases */, 125, MVT::i64,// ->484647
/*484522*/          OPC_CheckPredicate, 9, // Predicate_load
/*484524*/          OPC_MoveParent,
/*484525*/          OPC_CheckType, MVT::v2i64,
/*484527*/          OPC_MoveParent,
/*484528*/          OPC_Scope, 22, /*->484552*/ // 3 children in Scope
/*484530*/            OPC_CheckType, MVT::v16i8,
/*484532*/            OPC_MoveParent,
/*484533*/            OPC_CheckType, MVT::v8i32,
/*484535*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484537*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484540*/            OPC_EmitMergeInputChains1_0,
/*484541*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVSXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*484552*/          /*Scope*/ 46, /*->484599*/
/*484553*/            OPC_SwitchType /*2 cases */, 20, MVT::v8i16,// ->484576
/*484556*/              OPC_MoveParent,
/*484557*/              OPC_CheckType, MVT::v4i64,
/*484559*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484561*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484564*/              OPC_EmitMergeInputChains1_0,
/*484565*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVSXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484576*/            /*SwitchType*/ 20, MVT::v16i8,// ->484598
/*484578*/              OPC_MoveParent,
/*484579*/              OPC_CheckType, MVT::v8i32,
/*484581*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484583*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484586*/              OPC_EmitMergeInputChains1_0,
/*484587*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVSXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*484598*/            0, // EndSwitchType
/*484599*/          /*Scope*/ 46, /*->484646*/
/*484600*/            OPC_SwitchType /*2 cases */, 20, MVT::v8i16,// ->484623
/*484603*/              OPC_MoveParent,
/*484604*/              OPC_CheckType, MVT::v4i64,
/*484606*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484608*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484611*/              OPC_EmitMergeInputChains1_0,
/*484612*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVSXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484623*/            /*SwitchType*/ 20, MVT::v16i8,// ->484645
/*484625*/              OPC_MoveParent,
/*484626*/              OPC_CheckType, MVT::v8i64,
/*484628*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*484630*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484633*/              OPC_EmitMergeInputChains1_0,
/*484634*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v8i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVSXBQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*484645*/            0, // EndSwitchType
/*484646*/          0, /*End of Scope*/
/*484647*/        /*SwitchType*/ 49, MVT::i32,// ->484698
/*484649*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*484651*/          OPC_MoveParent,
/*484652*/          OPC_CheckType, MVT::v4i32,
/*484654*/          OPC_MoveParent,
/*484655*/          OPC_CheckType, MVT::v16i8,
/*484657*/          OPC_MoveParent,
/*484658*/          OPC_CheckType, MVT::v4i64,
/*484660*/          OPC_Scope, 17, /*->484679*/ // 2 children in Scope
/*484662*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484664*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484667*/            OPC_EmitMergeInputChains1_0,
/*484668*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPMOVSXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484679*/          /*Scope*/ 17, /*->484697*/
/*484680*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484682*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484685*/            OPC_EmitMergeInputChains1_0,
/*484686*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPMOVSXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484697*/          0, /*End of Scope*/
/*484698*/        0, // EndSwitchType
/*484699*/      /*SwitchOpcode*/ 16|128,3/*400*/, TARGET_VAL(ISD::LOAD),// ->485103
/*484703*/        OPC_RecordMemRef,
/*484704*/        OPC_RecordNode, // #0 = 'ld' chained node
/*484705*/        OPC_CheckFoldableChainNode,
/*484706*/        OPC_RecordChild1, // #1 = $src
/*484707*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*484709*/        OPC_CheckPredicate, 9, // Predicate_load
/*484711*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*484713*/        OPC_SwitchType /*2 cases */, 58|128,2/*314*/, MVT::v2i64,// ->485031
/*484717*/          OPC_MoveParent,
/*484718*/          OPC_SwitchType /*3 cases */, 33|128,1/*161*/, MVT::v16i8,// ->484883
/*484722*/            OPC_MoveParent,
/*484723*/            OPC_SwitchType /*5 cases */, 38, MVT::v16i16,// ->484764
/*484726*/              OPC_Scope, 17, /*->484745*/ // 2 children in Scope
/*484728*/                OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*484730*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484733*/                OPC_EmitMergeInputChains1_0,
/*484734*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVSXBWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*484745*/              /*Scope*/ 17, /*->484763*/
/*484746*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*484748*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484751*/                OPC_EmitMergeInputChains1_0,
/*484752*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVSXBWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*484763*/              0, /*End of Scope*/
/*484764*/            /*SwitchType*/ 38, MVT::v8i32,// ->484804
/*484766*/              OPC_Scope, 17, /*->484785*/ // 2 children in Scope
/*484768*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484770*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484773*/                OPC_EmitMergeInputChains1_0,
/*484774*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVSXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*484785*/              /*Scope*/ 17, /*->484803*/
/*484786*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484788*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484791*/                OPC_EmitMergeInputChains1_0,
/*484792*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVSXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*484803*/              0, /*End of Scope*/
/*484804*/            /*SwitchType*/ 38, MVT::v4i64,// ->484844
/*484806*/              OPC_Scope, 17, /*->484825*/ // 2 children in Scope
/*484808*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484810*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484813*/                OPC_EmitMergeInputChains1_0,
/*484814*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVSXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484825*/              /*Scope*/ 17, /*->484843*/
/*484826*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484828*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484831*/                OPC_EmitMergeInputChains1_0,
/*484832*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVSXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484843*/              0, /*End of Scope*/
/*484844*/            /*SwitchType*/ 17, MVT::v16i32,// ->484863
/*484846*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*484848*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484851*/              OPC_EmitMergeInputChains1_0,
/*484852*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v16i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMOVSXBDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*484863*/            /*SwitchType*/ 17, MVT::v8i64,// ->484882
/*484865*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*484867*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484870*/              OPC_EmitMergeInputChains1_0,
/*484871*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v8i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMOVSXBQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*484882*/            0, // EndSwitchType
/*484883*/          /*SwitchType*/ 102, MVT::v8i16,// ->484987
/*484885*/            OPC_MoveParent,
/*484886*/            OPC_SwitchType /*3 cases */, 38, MVT::v8i32,// ->484927
/*484889*/              OPC_Scope, 17, /*->484908*/ // 2 children in Scope
/*484891*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484893*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484896*/                OPC_EmitMergeInputChains1_0,
/*484897*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVSXWDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*484908*/              /*Scope*/ 17, /*->484926*/
/*484909*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484911*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484914*/                OPC_EmitMergeInputChains1_0,
/*484915*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVSXWDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*484926*/              0, /*End of Scope*/
/*484927*/            /*SwitchType*/ 38, MVT::v4i64,// ->484967
/*484929*/              OPC_Scope, 17, /*->484948*/ // 2 children in Scope
/*484931*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484933*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484936*/                OPC_EmitMergeInputChains1_0,
/*484937*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVSXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484948*/              /*Scope*/ 17, /*->484966*/
/*484949*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*484951*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484954*/                OPC_EmitMergeInputChains1_0,
/*484955*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVSXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*484966*/              0, /*End of Scope*/
/*484967*/            /*SwitchType*/ 17, MVT::v8i64,// ->484986
/*484969*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*484971*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484974*/              OPC_EmitMergeInputChains1_0,
/*484975*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v8i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMOVSXWQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*484986*/            0, // EndSwitchType
/*484987*/          /*SwitchType*/ 41, MVT::v4i32,// ->485030
/*484989*/            OPC_MoveParent,
/*484990*/            OPC_CheckType, MVT::v4i64,
/*484992*/            OPC_Scope, 17, /*->485011*/ // 2 children in Scope
/*484994*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484996*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*484999*/              OPC_EmitMergeInputChains1_0,
/*485000*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMOVSXDQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485011*/            /*Scope*/ 17, /*->485029*/
/*485012*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*485014*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485017*/              OPC_EmitMergeInputChains1_0,
/*485018*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMOVSXDQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485029*/            0, /*End of Scope*/
/*485030*/          0, // EndSwitchType
/*485031*/        /*SwitchType*/ 69, MVT::v4i64,// ->485102
/*485033*/          OPC_MoveParent,
/*485034*/          OPC_SwitchType /*3 cases */, 20, MVT::v32i8,// ->485057
/*485037*/            OPC_MoveParent,
/*485038*/            OPC_CheckType, MVT::v32i16,
/*485040*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*485042*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485045*/            OPC_EmitMergeInputChains1_0,
/*485046*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vsext:{ *:[v32i16] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVSXBWZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*485057*/          /*SwitchType*/ 20, MVT::v16i16,// ->485079
/*485059*/            OPC_MoveParent,
/*485060*/            OPC_CheckType, MVT::v16i32,
/*485062*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485064*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485067*/            OPC_EmitMergeInputChains1_0,
/*485068*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vsext:{ *:[v16i32] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVSXWDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*485079*/          /*SwitchType*/ 20, MVT::v8i32,// ->485101
/*485081*/            OPC_MoveParent,
/*485082*/            OPC_CheckType, MVT::v8i64,
/*485084*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485086*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485089*/            OPC_EmitMergeInputChains1_0,
/*485090*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vsext:{ *:[v8i64] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVSXDQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*485101*/          0, // EndSwitchType
/*485102*/        0, // EndSwitchType
/*485103*/      /*SwitchOpcode*/ 6|128,2/*262*/, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->485369
/*485107*/        OPC_RecordMemRef,
/*485108*/        OPC_RecordNode, // #0 = 'X86vzload' chained node
/*485109*/        OPC_CheckFoldableChainNode,
/*485110*/        OPC_RecordChild1, // #1 = $src
/*485111*/        OPC_CheckType, MVT::v2i64,
/*485113*/        OPC_MoveParent,
/*485114*/        OPC_SwitchType /*3 cases */, 123, MVT::v16i8,// ->485240
/*485117*/          OPC_MoveParent,
/*485118*/          OPC_SwitchType /*3 cases */, 38, MVT::v16i16,// ->485159
/*485121*/            OPC_Scope, 17, /*->485140*/ // 2 children in Scope
/*485123*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*485125*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485128*/              OPC_EmitMergeInputChains1_0,
/*485129*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVSXBWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*485140*/            /*Scope*/ 17, /*->485158*/
/*485141*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*485143*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485146*/              OPC_EmitMergeInputChains1_0,
/*485147*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVSXBWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*485158*/            0, /*End of Scope*/
/*485159*/          /*SwitchType*/ 38, MVT::v8i32,// ->485199
/*485161*/            OPC_Scope, 17, /*->485180*/ // 2 children in Scope
/*485163*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485165*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485168*/              OPC_EmitMergeInputChains1_0,
/*485169*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVSXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*485180*/            /*Scope*/ 17, /*->485198*/
/*485181*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*485183*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485186*/              OPC_EmitMergeInputChains1_0,
/*485187*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVSXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*485198*/            0, /*End of Scope*/
/*485199*/          /*SwitchType*/ 38, MVT::v4i64,// ->485239
/*485201*/            OPC_Scope, 17, /*->485220*/ // 2 children in Scope
/*485203*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485205*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485208*/              OPC_EmitMergeInputChains1_0,
/*485209*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVSXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485220*/            /*Scope*/ 17, /*->485238*/
/*485221*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*485223*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485226*/              OPC_EmitMergeInputChains1_0,
/*485227*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVSXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485238*/            0, /*End of Scope*/
/*485239*/          0, // EndSwitchType
/*485240*/        /*SwitchType*/ 83, MVT::v8i16,// ->485325
/*485242*/          OPC_MoveParent,
/*485243*/          OPC_SwitchType /*2 cases */, 38, MVT::v8i32,// ->485284
/*485246*/            OPC_Scope, 17, /*->485265*/ // 2 children in Scope
/*485248*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485250*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485253*/              OPC_EmitMergeInputChains1_0,
/*485254*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVSXWDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*485265*/            /*Scope*/ 17, /*->485283*/
/*485266*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*485268*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485271*/              OPC_EmitMergeInputChains1_0,
/*485272*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVSXWDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*485283*/            0, /*End of Scope*/
/*485284*/          /*SwitchType*/ 38, MVT::v4i64,// ->485324
/*485286*/            OPC_Scope, 17, /*->485305*/ // 2 children in Scope
/*485288*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485290*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485293*/              OPC_EmitMergeInputChains1_0,
/*485294*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVSXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485305*/            /*Scope*/ 17, /*->485323*/
/*485306*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*485308*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485311*/              OPC_EmitMergeInputChains1_0,
/*485312*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVSXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485323*/            0, /*End of Scope*/
/*485324*/          0, // EndSwitchType
/*485325*/        /*SwitchType*/ 41, MVT::v4i32,// ->485368
/*485327*/          OPC_MoveParent,
/*485328*/          OPC_CheckType, MVT::v4i64,
/*485330*/          OPC_Scope, 17, /*->485349*/ // 2 children in Scope
/*485332*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485334*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485337*/            OPC_EmitMergeInputChains1_0,
/*485338*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVSXDQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485349*/          /*Scope*/ 17, /*->485367*/
/*485350*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*485352*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485355*/            OPC_EmitMergeInputChains1_0,
/*485356*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vsext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVSXDQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485367*/          0, /*End of Scope*/
/*485368*/        0, // EndSwitchType
/*485369*/      0, // EndSwitchOpcode
/*485370*/    /*Scope*/ 107|128,1/*235*/, /*->485607*/
/*485372*/      OPC_RecordChild0, // #0 = $src
/*485373*/      OPC_Scope, 98, /*->485473*/ // 6 children in Scope
/*485375*/        OPC_CheckChild0Type, MVT::v16i8,
/*485377*/        OPC_SwitchType /*5 cases */, 22, MVT::v16i16,// ->485402
/*485380*/          OPC_Scope, 9, /*->485391*/ // 2 children in Scope
/*485382*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*485384*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWYrr), 0,
                          MVT::v16i16, 1/*#Ops*/, 0, 
                      // Src: (X86vsext:{ *:[v16i16] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBWYrr:{ *:[v16i16] } VR128:{ *:[v16i8] }:$src)
/*485391*/          /*Scope*/ 9, /*->485401*/
/*485392*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*485394*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rr), 0,
                          MVT::v16i16, 1/*#Ops*/, 0, 
                      // Src: (X86vsext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBWZ256rr:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src)
/*485401*/          0, /*End of Scope*/
/*485402*/        /*SwitchType*/ 22, MVT::v8i32,// ->485426
/*485404*/          OPC_Scope, 9, /*->485415*/ // 2 children in Scope
/*485406*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485408*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86vsext:{ *:[v8i32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBDYrr:{ *:[v8i32] } VR128:{ *:[v16i8] }:$src)
/*485415*/          /*Scope*/ 9, /*->485425*/
/*485416*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485418*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86vsext:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBDZ256rr:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src)
/*485425*/          0, /*End of Scope*/
/*485426*/        /*SwitchType*/ 22, MVT::v4i64,// ->485450
/*485428*/          OPC_Scope, 9, /*->485439*/ // 2 children in Scope
/*485430*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485432*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (X86vsext:{ *:[v4i64] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBQYrr:{ *:[v4i64] } VR128:{ *:[v16i8] }:$src)
/*485439*/          /*Scope*/ 9, /*->485449*/
/*485440*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485442*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (X86vsext:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBQZ256rr:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src)
/*485449*/          0, /*End of Scope*/
/*485450*/        /*SwitchType*/ 9, MVT::v16i32,// ->485461
/*485452*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485454*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZrr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0, 
                    // Src: (X86vsext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXBDZrr:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src)
/*485461*/        /*SwitchType*/ 9, MVT::v8i64,// ->485472
/*485463*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485465*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86vsext:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXBQZrr:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src)
/*485472*/        0, // EndSwitchType
/*485473*/      /*Scope*/ 63, /*->485537*/
/*485474*/        OPC_CheckChild0Type, MVT::v8i16,
/*485476*/        OPC_SwitchType /*3 cases */, 22, MVT::v8i32,// ->485501
/*485479*/          OPC_Scope, 9, /*->485490*/ // 2 children in Scope
/*485481*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485483*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86vsext:{ *:[v8i32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWDYrr:{ *:[v8i32] } VR128:{ *:[v8i16] }:$src)
/*485490*/          /*Scope*/ 9, /*->485500*/
/*485491*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485493*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86vsext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWDZ256rr:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src)
/*485500*/          0, /*End of Scope*/
/*485501*/        /*SwitchType*/ 22, MVT::v4i64,// ->485525
/*485503*/          OPC_Scope, 9, /*->485514*/ // 2 children in Scope
/*485505*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485507*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (X86vsext:{ *:[v4i64] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWQYrr:{ *:[v4i64] } VR128:{ *:[v8i16] }:$src)
/*485514*/          /*Scope*/ 9, /*->485524*/
/*485515*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485517*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (X86vsext:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWQZ256rr:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src)
/*485524*/          0, /*End of Scope*/
/*485525*/        /*SwitchType*/ 9, MVT::v8i64,// ->485536
/*485527*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485529*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86vsext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXWQZrr:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src)
/*485536*/        0, // EndSwitchType
/*485537*/      /*Scope*/ 26, /*->485564*/
/*485538*/        OPC_CheckChild0Type, MVT::v4i32,
/*485540*/        OPC_CheckType, MVT::v4i64,
/*485542*/        OPC_Scope, 9, /*->485553*/ // 2 children in Scope
/*485544*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485546*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQYrr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86vsext:{ *:[v4i64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXDQYrr:{ *:[v4i64] } VR128:{ *:[v4i32] }:$src)
/*485553*/        /*Scope*/ 9, /*->485563*/
/*485554*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485556*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86vsext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXDQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src)
/*485563*/        0, /*End of Scope*/
/*485564*/      /*Scope*/ 13, /*->485578*/
/*485565*/        OPC_CheckChild0Type, MVT::v32i8,
/*485567*/        OPC_CheckType, MVT::v32i16,
/*485569*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*485571*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZrr), 0,
                      MVT::v32i16, 1/*#Ops*/, 0, 
                  // Src: (X86vsext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src) - Complexity = 3
                  // Dst: (VPMOVSXBWZrr:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src)
/*485578*/      /*Scope*/ 13, /*->485592*/
/*485579*/        OPC_CheckChild0Type, MVT::v16i16,
/*485581*/        OPC_CheckType, MVT::v16i32,
/*485583*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485585*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (X86vsext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                  // Dst: (VPMOVSXWDZrr:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src)
/*485592*/      /*Scope*/ 13, /*->485606*/
/*485593*/        OPC_CheckChild0Type, MVT::v8i32,
/*485595*/        OPC_CheckType, MVT::v8i64,
/*485597*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485599*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (X86vsext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVSXDQZrr:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src)
/*485606*/      0, /*End of Scope*/
/*485607*/    0, /*End of Scope*/
/*485608*/  /*SwitchOpcode*/ 11|128,11/*1419*/, TARGET_VAL(X86ISD::VZEXT),// ->487031
/*485612*/    OPC_Scope, 26|128,9/*1178*/, /*->486793*/ // 2 children in Scope
/*485615*/      OPC_MoveChild0,
/*485616*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*485619*/      OPC_MoveChild0,
/*485620*/      OPC_SwitchOpcode /*4 cases */, 47|128,2/*303*/, TARGET_VAL(X86ISD::VZEXT_MOVL),// ->485928
/*485625*/        OPC_MoveChild0,
/*485626*/        OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*485629*/        OPC_MoveChild0,
/*485630*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*485633*/        OPC_RecordMemRef,
/*485634*/        OPC_RecordNode, // #0 = 'ld' chained node
/*485635*/        OPC_CheckFoldableChainNode,
/*485636*/        OPC_RecordChild1, // #1 = $src
/*485637*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*485639*/        OPC_SwitchType /*2 cases */, 104|128,1/*232*/, MVT::i64,// ->485875
/*485643*/          OPC_CheckPredicate, 9, // Predicate_load
/*485645*/          OPC_MoveParent,
/*485646*/          OPC_MoveParent,
/*485647*/          OPC_CheckType, MVT::v2i64,
/*485649*/          OPC_MoveParent,
/*485650*/          OPC_Scope, 43, /*->485695*/ // 3 children in Scope
/*485652*/            OPC_CheckType, MVT::v16i8,
/*485654*/            OPC_MoveParent,
/*485655*/            OPC_SwitchType /*2 cases */, 17, MVT::v16i16,// ->485675
/*485658*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*485660*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485663*/              OPC_EmitMergeInputChains1_0,
/*485664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                        // Dst: (VPMOVZXBWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*485675*/            /*SwitchType*/ 17, MVT::v8i32,// ->485694
/*485677*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485679*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485682*/              OPC_EmitMergeInputChains1_0,
/*485683*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                        // Dst: (VPMOVZXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*485694*/            0, // EndSwitchType
/*485695*/          /*Scope*/ 110, /*->485806*/
/*485696*/            OPC_SwitchType /*3 cases */, 41, MVT::v8i16,// ->485740
/*485699*/              OPC_MoveParent,
/*485700*/              OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->485720
/*485703*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485705*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485708*/                OPC_EmitMergeInputChains1_0,
/*485709*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVZXWDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*485720*/              /*SwitchType*/ 17, MVT::v4i64,// ->485739
/*485722*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485724*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485727*/                OPC_EmitMergeInputChains1_0,
/*485728*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVZXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485739*/              0, // EndSwitchType
/*485740*/            /*SwitchType*/ 20, MVT::v4i32,// ->485762
/*485742*/              OPC_MoveParent,
/*485743*/              OPC_CheckType, MVT::v4i64,
/*485745*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485747*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485750*/              OPC_EmitMergeInputChains1_0,
/*485751*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                        // Dst: (VPMOVZXDQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485762*/            /*SwitchType*/ 41, MVT::v16i8,// ->485805
/*485764*/              OPC_MoveParent,
/*485765*/              OPC_SwitchType /*2 cases */, 17, MVT::v16i16,// ->485785
/*485768*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*485770*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485773*/                OPC_EmitMergeInputChains1_0,
/*485774*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVZXBWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*485785*/              /*SwitchType*/ 17, MVT::v8i32,// ->485804
/*485787*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*485789*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485792*/                OPC_EmitMergeInputChains1_0,
/*485793*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVZXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*485804*/              0, // EndSwitchType
/*485805*/            0, // EndSwitchType
/*485806*/          /*Scope*/ 67, /*->485874*/
/*485807*/            OPC_SwitchType /*2 cases */, 41, MVT::v8i16,// ->485851
/*485810*/              OPC_MoveParent,
/*485811*/              OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->485831
/*485814*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*485816*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485819*/                OPC_EmitMergeInputChains1_0,
/*485820*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVZXWDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*485831*/              /*SwitchType*/ 17, MVT::v4i64,// ->485850
/*485833*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*485835*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485838*/                OPC_EmitMergeInputChains1_0,
/*485839*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                          // Dst: (VPMOVZXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485850*/              0, // EndSwitchType
/*485851*/            /*SwitchType*/ 20, MVT::v4i32,// ->485873
/*485853*/              OPC_MoveParent,
/*485854*/              OPC_CheckType, MVT::v4i64,
/*485856*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*485858*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485861*/              OPC_EmitMergeInputChains1_0,
/*485862*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                        // Dst: (VPMOVZXDQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485873*/            0, // EndSwitchType
/*485874*/          0, /*End of Scope*/
/*485875*/        /*SwitchType*/ 50, MVT::i32,// ->485927
/*485877*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*485879*/          OPC_MoveParent,
/*485880*/          OPC_MoveParent,
/*485881*/          OPC_CheckType, MVT::v4i32,
/*485883*/          OPC_MoveParent,
/*485884*/          OPC_CheckType, MVT::v16i8,
/*485886*/          OPC_MoveParent,
/*485887*/          OPC_CheckType, MVT::v4i64,
/*485889*/          OPC_Scope, 17, /*->485908*/ // 2 children in Scope
/*485891*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485893*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485896*/            OPC_EmitMergeInputChains1_0,
/*485897*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                      // Dst: (VPMOVZXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485908*/          /*Scope*/ 17, /*->485926*/
/*485909*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*485911*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485914*/            OPC_EmitMergeInputChains1_0,
/*485915*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                      // Dst: (VPMOVZXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485926*/          0, /*End of Scope*/
/*485927*/        0, // EndSwitchType
/*485928*/      /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->486122
/*485932*/        OPC_MoveChild0,
/*485933*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*485936*/        OPC_RecordMemRef,
/*485937*/        OPC_RecordNode, // #0 = 'ld' chained node
/*485938*/        OPC_CheckFoldableChainNode,
/*485939*/        OPC_RecordChild1, // #1 = $src
/*485940*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*485942*/        OPC_SwitchType /*2 cases */, 125, MVT::i64,// ->486070
/*485945*/          OPC_CheckPredicate, 9, // Predicate_load
/*485947*/          OPC_MoveParent,
/*485948*/          OPC_CheckType, MVT::v2i64,
/*485950*/          OPC_MoveParent,
/*485951*/          OPC_Scope, 22, /*->485975*/ // 3 children in Scope
/*485953*/            OPC_CheckType, MVT::v16i8,
/*485955*/            OPC_MoveParent,
/*485956*/            OPC_CheckType, MVT::v8i32,
/*485958*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485960*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485963*/            OPC_EmitMergeInputChains1_0,
/*485964*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVZXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*485975*/          /*Scope*/ 46, /*->486022*/
/*485976*/            OPC_SwitchType /*2 cases */, 20, MVT::v8i16,// ->485999
/*485979*/              OPC_MoveParent,
/*485980*/              OPC_CheckType, MVT::v4i64,
/*485982*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485984*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*485987*/              OPC_EmitMergeInputChains1_0,
/*485988*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVZXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*485999*/            /*SwitchType*/ 20, MVT::v16i8,// ->486021
/*486001*/              OPC_MoveParent,
/*486002*/              OPC_CheckType, MVT::v8i32,
/*486004*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486006*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486009*/              OPC_EmitMergeInputChains1_0,
/*486010*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVZXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*486021*/            0, // EndSwitchType
/*486022*/          /*Scope*/ 46, /*->486069*/
/*486023*/            OPC_SwitchType /*2 cases */, 20, MVT::v8i16,// ->486046
/*486026*/              OPC_MoveParent,
/*486027*/              OPC_CheckType, MVT::v4i64,
/*486029*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486031*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486034*/              OPC_EmitMergeInputChains1_0,
/*486035*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVZXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486046*/            /*SwitchType*/ 20, MVT::v16i8,// ->486068
/*486048*/              OPC_MoveParent,
/*486049*/              OPC_CheckType, MVT::v8i64,
/*486051*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486053*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486056*/              OPC_EmitMergeInputChains1_0,
/*486057*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v8i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVZXBQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*486068*/            0, // EndSwitchType
/*486069*/          0, /*End of Scope*/
/*486070*/        /*SwitchType*/ 49, MVT::i32,// ->486121
/*486072*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*486074*/          OPC_MoveParent,
/*486075*/          OPC_CheckType, MVT::v4i32,
/*486077*/          OPC_MoveParent,
/*486078*/          OPC_CheckType, MVT::v16i8,
/*486080*/          OPC_MoveParent,
/*486081*/          OPC_CheckType, MVT::v4i64,
/*486083*/          OPC_Scope, 17, /*->486102*/ // 2 children in Scope
/*486085*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486087*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486090*/            OPC_EmitMergeInputChains1_0,
/*486091*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPMOVZXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486102*/          /*Scope*/ 17, /*->486120*/
/*486103*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486105*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486108*/            OPC_EmitMergeInputChains1_0,
/*486109*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPMOVZXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486120*/          0, /*End of Scope*/
/*486121*/        0, // EndSwitchType
/*486122*/      /*SwitchOpcode*/ 16|128,3/*400*/, TARGET_VAL(ISD::LOAD),// ->486526
/*486126*/        OPC_RecordMemRef,
/*486127*/        OPC_RecordNode, // #0 = 'ld' chained node
/*486128*/        OPC_CheckFoldableChainNode,
/*486129*/        OPC_RecordChild1, // #1 = $src
/*486130*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*486132*/        OPC_CheckPredicate, 9, // Predicate_load
/*486134*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*486136*/        OPC_SwitchType /*2 cases */, 58|128,2/*314*/, MVT::v2i64,// ->486454
/*486140*/          OPC_MoveParent,
/*486141*/          OPC_SwitchType /*3 cases */, 33|128,1/*161*/, MVT::v16i8,// ->486306
/*486145*/            OPC_MoveParent,
/*486146*/            OPC_SwitchType /*5 cases */, 38, MVT::v16i16,// ->486187
/*486149*/              OPC_Scope, 17, /*->486168*/ // 2 children in Scope
/*486151*/                OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486153*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486156*/                OPC_EmitMergeInputChains1_0,
/*486157*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVZXBWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*486168*/              /*Scope*/ 17, /*->486186*/
/*486169*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486171*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486174*/                OPC_EmitMergeInputChains1_0,
/*486175*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVZXBWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*486186*/              0, /*End of Scope*/
/*486187*/            /*SwitchType*/ 38, MVT::v8i32,// ->486227
/*486189*/              OPC_Scope, 17, /*->486208*/ // 2 children in Scope
/*486191*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486193*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486196*/                OPC_EmitMergeInputChains1_0,
/*486197*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVZXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*486208*/              /*Scope*/ 17, /*->486226*/
/*486209*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486211*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486214*/                OPC_EmitMergeInputChains1_0,
/*486215*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVZXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*486226*/              0, /*End of Scope*/
/*486227*/            /*SwitchType*/ 38, MVT::v4i64,// ->486267
/*486229*/              OPC_Scope, 17, /*->486248*/ // 2 children in Scope
/*486231*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486233*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486236*/                OPC_EmitMergeInputChains1_0,
/*486237*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVZXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486248*/              /*Scope*/ 17, /*->486266*/
/*486249*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486251*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486254*/                OPC_EmitMergeInputChains1_0,
/*486255*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVZXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486266*/              0, /*End of Scope*/
/*486267*/            /*SwitchType*/ 17, MVT::v16i32,// ->486286
/*486269*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486271*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486274*/              OPC_EmitMergeInputChains1_0,
/*486275*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v16i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMOVZXBDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*486286*/            /*SwitchType*/ 17, MVT::v8i64,// ->486305
/*486288*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486290*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486293*/              OPC_EmitMergeInputChains1_0,
/*486294*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v8i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMOVZXBQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*486305*/            0, // EndSwitchType
/*486306*/          /*SwitchType*/ 102, MVT::v8i16,// ->486410
/*486308*/            OPC_MoveParent,
/*486309*/            OPC_SwitchType /*3 cases */, 38, MVT::v8i32,// ->486350
/*486312*/              OPC_Scope, 17, /*->486331*/ // 2 children in Scope
/*486314*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486316*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486319*/                OPC_EmitMergeInputChains1_0,
/*486320*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVZXWDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*486331*/              /*Scope*/ 17, /*->486349*/
/*486332*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486334*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486337*/                OPC_EmitMergeInputChains1_0,
/*486338*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVZXWDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*486349*/              0, /*End of Scope*/
/*486350*/            /*SwitchType*/ 38, MVT::v4i64,// ->486390
/*486352*/              OPC_Scope, 17, /*->486371*/ // 2 children in Scope
/*486354*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486356*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486359*/                OPC_EmitMergeInputChains1_0,
/*486360*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVZXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486371*/              /*Scope*/ 17, /*->486389*/
/*486372*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486374*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486377*/                OPC_EmitMergeInputChains1_0,
/*486378*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VPMOVZXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486389*/              0, /*End of Scope*/
/*486390*/            /*SwitchType*/ 17, MVT::v8i64,// ->486409
/*486392*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486394*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486397*/              OPC_EmitMergeInputChains1_0,
/*486398*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v8i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMOVZXWQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*486409*/            0, // EndSwitchType
/*486410*/          /*SwitchType*/ 41, MVT::v4i32,// ->486453
/*486412*/            OPC_MoveParent,
/*486413*/            OPC_CheckType, MVT::v4i64,
/*486415*/            OPC_Scope, 17, /*->486434*/ // 2 children in Scope
/*486417*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486419*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486422*/              OPC_EmitMergeInputChains1_0,
/*486423*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMOVZXDQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486434*/            /*Scope*/ 17, /*->486452*/
/*486435*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486437*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486440*/              OPC_EmitMergeInputChains1_0,
/*486441*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMOVZXDQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486452*/            0, /*End of Scope*/
/*486453*/          0, // EndSwitchType
/*486454*/        /*SwitchType*/ 69, MVT::v4i64,// ->486525
/*486456*/          OPC_MoveParent,
/*486457*/          OPC_SwitchType /*3 cases */, 20, MVT::v32i8,// ->486480
/*486460*/            OPC_MoveParent,
/*486461*/            OPC_CheckType, MVT::v32i16,
/*486463*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*486465*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486468*/            OPC_EmitMergeInputChains1_0,
/*486469*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzext:{ *:[v32i16] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVZXBWZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*486480*/          /*SwitchType*/ 20, MVT::v16i16,// ->486502
/*486482*/            OPC_MoveParent,
/*486483*/            OPC_CheckType, MVT::v16i32,
/*486485*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486487*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486490*/            OPC_EmitMergeInputChains1_0,
/*486491*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzext:{ *:[v16i32] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVZXWDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*486502*/          /*SwitchType*/ 20, MVT::v8i32,// ->486524
/*486504*/            OPC_MoveParent,
/*486505*/            OPC_CheckType, MVT::v8i64,
/*486507*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486509*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486512*/            OPC_EmitMergeInputChains1_0,
/*486513*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzext:{ *:[v8i64] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVZXDQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*486524*/          0, // EndSwitchType
/*486525*/        0, // EndSwitchType
/*486526*/      /*SwitchOpcode*/ 6|128,2/*262*/, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->486792
/*486530*/        OPC_RecordMemRef,
/*486531*/        OPC_RecordNode, // #0 = 'X86vzload' chained node
/*486532*/        OPC_CheckFoldableChainNode,
/*486533*/        OPC_RecordChild1, // #1 = $src
/*486534*/        OPC_CheckType, MVT::v2i64,
/*486536*/        OPC_MoveParent,
/*486537*/        OPC_SwitchType /*3 cases */, 123, MVT::v16i8,// ->486663
/*486540*/          OPC_MoveParent,
/*486541*/          OPC_SwitchType /*3 cases */, 38, MVT::v16i16,// ->486582
/*486544*/            OPC_Scope, 17, /*->486563*/ // 2 children in Scope
/*486546*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486548*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486551*/              OPC_EmitMergeInputChains1_0,
/*486552*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVZXBWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*486563*/            /*Scope*/ 17, /*->486581*/
/*486564*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486566*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486569*/              OPC_EmitMergeInputChains1_0,
/*486570*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v16i16] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVZXBWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*486581*/            0, /*End of Scope*/
/*486582*/          /*SwitchType*/ 38, MVT::v8i32,// ->486622
/*486584*/            OPC_Scope, 17, /*->486603*/ // 2 children in Scope
/*486586*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486588*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486591*/              OPC_EmitMergeInputChains1_0,
/*486592*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVZXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*486603*/            /*Scope*/ 17, /*->486621*/
/*486604*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486606*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486609*/              OPC_EmitMergeInputChains1_0,
/*486610*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVZXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*486621*/            0, /*End of Scope*/
/*486622*/          /*SwitchType*/ 38, MVT::v4i64,// ->486662
/*486624*/            OPC_Scope, 17, /*->486643*/ // 2 children in Scope
/*486626*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486628*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486631*/              OPC_EmitMergeInputChains1_0,
/*486632*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVZXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486643*/            /*Scope*/ 17, /*->486661*/
/*486644*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486646*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486649*/              OPC_EmitMergeInputChains1_0,
/*486650*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVZXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486661*/            0, /*End of Scope*/
/*486662*/          0, // EndSwitchType
/*486663*/        /*SwitchType*/ 83, MVT::v8i16,// ->486748
/*486665*/          OPC_MoveParent,
/*486666*/          OPC_SwitchType /*2 cases */, 38, MVT::v8i32,// ->486707
/*486669*/            OPC_Scope, 17, /*->486688*/ // 2 children in Scope
/*486671*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486673*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486676*/              OPC_EmitMergeInputChains1_0,
/*486677*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVZXWDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*486688*/            /*Scope*/ 17, /*->486706*/
/*486689*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486691*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486694*/              OPC_EmitMergeInputChains1_0,
/*486695*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v8i32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVZXWDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*486706*/            0, /*End of Scope*/
/*486707*/          /*SwitchType*/ 38, MVT::v4i64,// ->486747
/*486709*/            OPC_Scope, 17, /*->486728*/ // 2 children in Scope
/*486711*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486713*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486716*/              OPC_EmitMergeInputChains1_0,
/*486717*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVZXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486728*/            /*Scope*/ 17, /*->486746*/
/*486729*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486731*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486734*/              OPC_EmitMergeInputChains1_0,
/*486735*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                        // Dst: (VPMOVZXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486746*/            0, /*End of Scope*/
/*486747*/          0, // EndSwitchType
/*486748*/        /*SwitchType*/ 41, MVT::v4i32,// ->486791
/*486750*/          OPC_MoveParent,
/*486751*/          OPC_CheckType, MVT::v4i64,
/*486753*/          OPC_Scope, 17, /*->486772*/ // 2 children in Scope
/*486755*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486757*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486760*/            OPC_EmitMergeInputChains1_0,
/*486761*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVZXDQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486772*/          /*Scope*/ 17, /*->486790*/
/*486773*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*486775*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*486778*/            OPC_EmitMergeInputChains1_0,
/*486779*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzext:{ *:[v4i64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVZXDQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*486790*/          0, /*End of Scope*/
/*486791*/        0, // EndSwitchType
/*486792*/      0, // EndSwitchOpcode
/*486793*/    /*Scope*/ 107|128,1/*235*/, /*->487030*/
/*486795*/      OPC_RecordChild0, // #0 = $src
/*486796*/      OPC_Scope, 98, /*->486896*/ // 6 children in Scope
/*486798*/        OPC_CheckChild0Type, MVT::v16i8,
/*486800*/        OPC_SwitchType /*5 cases */, 22, MVT::v16i16,// ->486825
/*486803*/          OPC_Scope, 9, /*->486814*/ // 2 children in Scope
/*486805*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486807*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWYrr), 0,
                          MVT::v16i16, 1/*#Ops*/, 0, 
                      // Src: (X86vzext:{ *:[v16i16] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBWYrr:{ *:[v16i16] } VR128:{ *:[v16i8] }:$src)
/*486814*/          /*Scope*/ 9, /*->486824*/
/*486815*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486817*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rr), 0,
                          MVT::v16i16, 1/*#Ops*/, 0, 
                      // Src: (X86vzext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBWZ256rr:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src)
/*486824*/          0, /*End of Scope*/
/*486825*/        /*SwitchType*/ 22, MVT::v8i32,// ->486849
/*486827*/          OPC_Scope, 9, /*->486838*/ // 2 children in Scope
/*486829*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486831*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86vzext:{ *:[v8i32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBDYrr:{ *:[v8i32] } VR128:{ *:[v16i8] }:$src)
/*486838*/          /*Scope*/ 9, /*->486848*/
/*486839*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*486841*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86vzext:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBDZ256rr:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src)
/*486848*/          0, /*End of Scope*/
/*486849*/        /*SwitchType*/ 22, MVT::v4i64,// ->486873
/*486851*/          OPC_Scope, 9, /*->486862*/ // 2 children in Scope
/*486853*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486855*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (X86vzext:{ *:[v4i64] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBQYrr:{ *:[v4i64] } VR128:{ *:[v16i8] }:$src)
/*486862*/          /*Scope*/ 9, /*->486872*/
/*486863*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*486865*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (X86vzext:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBQZ256rr:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src)
/*486872*/          0, /*End of Scope*/
/*486873*/        /*SwitchType*/ 9, MVT::v16i32,// ->486884
/*486875*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486877*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZrr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0, 
                    // Src: (X86vzext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXBDZrr:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src)
/*486884*/        /*SwitchType*/ 9, MVT::v8i64,// ->486895
/*486886*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486888*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86vzext:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXBQZrr:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src)
/*486895*/        0, // EndSwitchType
/*486896*/      /*Scope*/ 63, /*->486960*/
/*486897*/        OPC_CheckChild0Type, MVT::v8i16,
/*486899*/        OPC_SwitchType /*3 cases */, 22, MVT::v8i32,// ->486924
/*486902*/          OPC_Scope, 9, /*->486913*/ // 2 children in Scope
/*486904*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486906*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86vzext:{ *:[v8i32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWDYrr:{ *:[v8i32] } VR128:{ *:[v8i16] }:$src)
/*486913*/          /*Scope*/ 9, /*->486923*/
/*486914*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*486916*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86vzext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWDZ256rr:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src)
/*486923*/          0, /*End of Scope*/
/*486924*/        /*SwitchType*/ 22, MVT::v4i64,// ->486948
/*486926*/          OPC_Scope, 9, /*->486937*/ // 2 children in Scope
/*486928*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486930*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (X86vzext:{ *:[v4i64] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWQYrr:{ *:[v4i64] } VR128:{ *:[v8i16] }:$src)
/*486937*/          /*Scope*/ 9, /*->486947*/
/*486938*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*486940*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (X86vzext:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWQZ256rr:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src)
/*486947*/          0, /*End of Scope*/
/*486948*/        /*SwitchType*/ 9, MVT::v8i64,// ->486959
/*486950*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486952*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86vzext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXWQZrr:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src)
/*486959*/        0, // EndSwitchType
/*486960*/      /*Scope*/ 26, /*->486987*/
/*486961*/        OPC_CheckChild0Type, MVT::v4i32,
/*486963*/        OPC_CheckType, MVT::v4i64,
/*486965*/        OPC_Scope, 9, /*->486976*/ // 2 children in Scope
/*486967*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486969*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQYrr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86vzext:{ *:[v4i64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXDQYrr:{ *:[v4i64] } VR128:{ *:[v4i32] }:$src)
/*486976*/        /*Scope*/ 9, /*->486986*/
/*486977*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*486979*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86vzext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXDQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src)
/*486986*/        0, /*End of Scope*/
/*486987*/      /*Scope*/ 13, /*->487001*/
/*486988*/        OPC_CheckChild0Type, MVT::v32i8,
/*486990*/        OPC_CheckType, MVT::v32i16,
/*486992*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*486994*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZrr), 0,
                      MVT::v32i16, 1/*#Ops*/, 0, 
                  // Src: (X86vzext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src) - Complexity = 3
                  // Dst: (VPMOVZXBWZrr:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src)
/*487001*/      /*Scope*/ 13, /*->487015*/
/*487002*/        OPC_CheckChild0Type, MVT::v16i16,
/*487004*/        OPC_CheckType, MVT::v16i32,
/*487006*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*487008*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (X86vzext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                  // Dst: (VPMOVZXWDZrr:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src)
/*487015*/      /*Scope*/ 13, /*->487029*/
/*487016*/        OPC_CheckChild0Type, MVT::v8i32,
/*487018*/        OPC_CheckType, MVT::v8i64,
/*487020*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*487022*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (X86vzext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVZXDQZrr:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src)
/*487029*/      0, /*End of Scope*/
/*487030*/    0, /*End of Scope*/
/*487031*/  /*SwitchOpcode*/ 7|128,18/*2311*/, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->489346
/*487035*/    OPC_Scope, 37|128,16/*2085*/, /*->489123*/ // 2 children in Scope
/*487038*/      OPC_MoveChild0,
/*487039*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*487042*/      OPC_MoveChild0,
/*487043*/      OPC_SwitchOpcode /*4 cases */, 46|128,3/*430*/, TARGET_VAL(X86ISD::VZEXT_MOVL),// ->487478
/*487048*/        OPC_MoveChild0,
/*487049*/        OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*487052*/        OPC_MoveChild0,
/*487053*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*487056*/        OPC_RecordMemRef,
/*487057*/        OPC_RecordNode, // #0 = 'ld' chained node
/*487058*/        OPC_CheckFoldableChainNode,
/*487059*/        OPC_RecordChild1, // #1 = $src
/*487060*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*487062*/        OPC_SwitchType /*2 cases */, 82|128,1/*210*/, MVT::i64,// ->487276
/*487066*/          OPC_CheckPredicate, 9, // Predicate_load
/*487068*/          OPC_MoveParent,
/*487069*/          OPC_MoveParent,
/*487070*/          OPC_CheckType, MVT::v2i64,
/*487072*/          OPC_MoveParent,
/*487073*/          OPC_Scope, 20, /*->487095*/ // 9 children in Scope
/*487075*/            OPC_MoveParent,
/*487076*/            OPC_CheckType, MVT::v8i16,
/*487078*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487080*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487083*/            OPC_EmitMergeInputChains1_0,
/*487084*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*487095*/          /*Scope*/ 22, /*->487118*/
/*487096*/            OPC_CheckType, MVT::v8i16,
/*487098*/            OPC_MoveParent,
/*487099*/            OPC_CheckType, MVT::v4i32,
/*487101*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487103*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487106*/            OPC_EmitMergeInputChains1_0,
/*487107*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487118*/          /*Scope*/ 22, /*->487141*/
/*487119*/            OPC_CheckType, MVT::v4i32,
/*487121*/            OPC_MoveParent,
/*487122*/            OPC_CheckType, MVT::v2i64,
/*487124*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487126*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487129*/            OPC_EmitMergeInputChains1_0,
/*487130*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487141*/          /*Scope*/ 20, /*->487162*/
/*487142*/            OPC_MoveParent,
/*487143*/            OPC_CheckType, MVT::v8i16,
/*487145*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487147*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487150*/            OPC_EmitMergeInputChains1_0,
/*487151*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (PMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*487162*/          /*Scope*/ 22, /*->487185*/
/*487163*/            OPC_CheckType, MVT::v8i16,
/*487165*/            OPC_MoveParent,
/*487166*/            OPC_CheckType, MVT::v4i32,
/*487168*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487170*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487173*/            OPC_EmitMergeInputChains1_0,
/*487174*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (PMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487185*/          /*Scope*/ 22, /*->487208*/
/*487186*/            OPC_CheckType, MVT::v4i32,
/*487188*/            OPC_MoveParent,
/*487189*/            OPC_CheckType, MVT::v2i64,
/*487191*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487193*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487196*/            OPC_EmitMergeInputChains1_0,
/*487197*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (PMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487208*/          /*Scope*/ 20, /*->487229*/
/*487209*/            OPC_MoveParent,
/*487210*/            OPC_CheckType, MVT::v8i16,
/*487212*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487214*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487217*/            OPC_EmitMergeInputChains1_0,
/*487218*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVSXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*487229*/          /*Scope*/ 22, /*->487252*/
/*487230*/            OPC_CheckType, MVT::v8i16,
/*487232*/            OPC_MoveParent,
/*487233*/            OPC_CheckType, MVT::v4i32,
/*487235*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*487237*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487240*/            OPC_EmitMergeInputChains1_0,
/*487241*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVSXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487252*/          /*Scope*/ 22, /*->487275*/
/*487253*/            OPC_CheckType, MVT::v4i32,
/*487255*/            OPC_MoveParent,
/*487256*/            OPC_CheckType, MVT::v2i64,
/*487258*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*487260*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487263*/            OPC_EmitMergeInputChains1_0,
/*487264*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVSXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487275*/          0, /*End of Scope*/
/*487276*/        /*SwitchType*/ 70|128,1/*198*/, MVT::i32,// ->487477
/*487279*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*487281*/          OPC_MoveParent,
/*487282*/          OPC_MoveParent,
/*487283*/          OPC_CheckType, MVT::v4i32,
/*487285*/          OPC_MoveParent,
/*487286*/          OPC_SwitchType /*2 cases */, 126, MVT::v16i8,// ->487415
/*487289*/            OPC_MoveParent,
/*487290*/            OPC_Scope, 40, /*->487332*/ // 3 children in Scope
/*487292*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->487312
/*487295*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487297*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487300*/                OPC_EmitMergeInputChains1_0,
/*487301*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (VPMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487312*/              /*SwitchType*/ 17, MVT::v2i64,// ->487331
/*487314*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487316*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487319*/                OPC_EmitMergeInputChains1_0,
/*487320*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (VPMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487331*/              0, // EndSwitchType
/*487332*/            /*Scope*/ 40, /*->487373*/
/*487333*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->487353
/*487336*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487338*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487341*/                OPC_EmitMergeInputChains1_0,
/*487342*/                OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (PMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487353*/              /*SwitchType*/ 17, MVT::v2i64,// ->487372
/*487355*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487357*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487360*/                OPC_EmitMergeInputChains1_0,
/*487361*/                OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (PMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487372*/              0, // EndSwitchType
/*487373*/            /*Scope*/ 40, /*->487414*/
/*487374*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->487394
/*487377*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*487379*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487382*/                OPC_EmitMergeInputChains1_0,
/*487383*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (VPMOVSXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487394*/              /*SwitchType*/ 17, MVT::v2i64,// ->487413
/*487396*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*487398*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487401*/                OPC_EmitMergeInputChains1_0,
/*487402*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (VPMOVSXBQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487413*/              0, // EndSwitchType
/*487414*/            0, /*End of Scope*/
/*487415*/          /*SwitchType*/ 59, MVT::v8i16,// ->487476
/*487417*/            OPC_MoveParent,
/*487418*/            OPC_CheckType, MVT::v2i64,
/*487420*/            OPC_Scope, 17, /*->487439*/ // 3 children in Scope
/*487422*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487424*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487427*/              OPC_EmitMergeInputChains1_0,
/*487428*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                        // Dst: (VPMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487439*/            /*Scope*/ 17, /*->487457*/
/*487440*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487442*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487445*/              OPC_EmitMergeInputChains1_0,
/*487446*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                        // Dst: (PMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487457*/            /*Scope*/ 17, /*->487475*/
/*487458*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*487460*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487463*/              OPC_EmitMergeInputChains1_0,
/*487464*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                        // Dst: (VPMOVSXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487475*/            0, /*End of Scope*/
/*487476*/          0, // EndSwitchType
/*487477*/        0, // EndSwitchType
/*487478*/      /*SwitchOpcode*/ 48|128,6/*816*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->488298
/*487482*/        OPC_MoveChild0,
/*487483*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*487486*/        OPC_RecordMemRef,
/*487487*/        OPC_RecordNode, // #0 = 'ld' chained node
/*487488*/        OPC_CheckFoldableChainNode,
/*487489*/        OPC_RecordChild1, // #1 = $src
/*487490*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*487492*/        OPC_Scope, 56, /*->487550*/ // 16 children in Scope
/*487494*/          OPC_CheckPredicate, 9, // Predicate_load
/*487496*/          OPC_SwitchType /*2 cases */, 24, MVT::i64,// ->487523
/*487499*/            OPC_MoveParent,
/*487500*/            OPC_CheckType, MVT::v2i64,
/*487502*/            OPC_MoveParent,
/*487503*/            OPC_MoveParent,
/*487504*/            OPC_CheckType, MVT::v8i16,
/*487506*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487508*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487511*/            OPC_EmitMergeInputChains1_0,
/*487512*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*487523*/          /*SwitchType*/ 24, MVT::f64,// ->487549
/*487525*/            OPC_MoveParent,
/*487526*/            OPC_CheckType, MVT::v2f64,
/*487528*/            OPC_MoveParent,
/*487529*/            OPC_MoveParent,
/*487530*/            OPC_CheckType, MVT::v8i16,
/*487532*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487534*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487537*/            OPC_EmitMergeInputChains1_0,
/*487538*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*487549*/          0, // EndSwitchType
/*487550*/        /*Scope*/ 30, /*->487581*/
/*487551*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*487553*/          OPC_CheckType, MVT::i32,
/*487555*/          OPC_MoveParent,
/*487556*/          OPC_CheckType, MVT::v4i32,
/*487558*/          OPC_MoveParent,
/*487559*/          OPC_CheckType, MVT::v16i8,
/*487561*/          OPC_MoveParent,
/*487562*/          OPC_CheckType, MVT::v4i32,
/*487564*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487566*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487569*/          OPC_EmitMergeInputChains1_0,
/*487570*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (VPMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487581*/        /*Scope*/ 32, /*->487614*/
/*487582*/          OPC_CheckPredicate, 64, // Predicate_extload
/*487584*/          OPC_CheckPredicate, 62, // Predicate_extloadi16
/*487586*/          OPC_CheckType, MVT::i32,
/*487588*/          OPC_MoveParent,
/*487589*/          OPC_CheckType, MVT::v4i32,
/*487591*/          OPC_MoveParent,
/*487592*/          OPC_CheckType, MVT::v16i8,
/*487594*/          OPC_MoveParent,
/*487595*/          OPC_CheckType, MVT::v2i64,
/*487597*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487599*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487602*/          OPC_EmitMergeInputChains1_0,
/*487603*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>))) - Complexity = 31
                    // Dst: (VPMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487614*/        /*Scope*/ 60, /*->487675*/
/*487615*/          OPC_CheckPredicate, 9, // Predicate_load
/*487617*/          OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->487646
/*487620*/            OPC_MoveParent,
/*487621*/            OPC_CheckType, MVT::v2i64,
/*487623*/            OPC_MoveParent,
/*487624*/            OPC_CheckType, MVT::v8i16,
/*487626*/            OPC_MoveParent,
/*487627*/            OPC_CheckType, MVT::v4i32,
/*487629*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487631*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487634*/            OPC_EmitMergeInputChains1_0,
/*487635*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487646*/          /*SwitchType*/ 26, MVT::f64,// ->487674
/*487648*/            OPC_MoveParent,
/*487649*/            OPC_CheckType, MVT::v2f64,
/*487651*/            OPC_MoveParent,
/*487652*/            OPC_CheckType, MVT::v8i16,
/*487654*/            OPC_MoveParent,
/*487655*/            OPC_CheckType, MVT::v4i32,
/*487657*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487659*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487662*/            OPC_EmitMergeInputChains1_0,
/*487663*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487674*/          0, // EndSwitchType
/*487675*/        /*Scope*/ 30, /*->487706*/
/*487676*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*487678*/          OPC_CheckType, MVT::i32,
/*487680*/          OPC_MoveParent,
/*487681*/          OPC_CheckType, MVT::v4i32,
/*487683*/          OPC_MoveParent,
/*487684*/          OPC_CheckType, MVT::v8i16,
/*487686*/          OPC_MoveParent,
/*487687*/          OPC_CheckType, MVT::v2i64,
/*487689*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487691*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487694*/          OPC_EmitMergeInputChains1_0,
/*487695*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (VPMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487706*/        /*Scope*/ 108, /*->487815*/
/*487707*/          OPC_CheckPredicate, 9, // Predicate_load
/*487709*/          OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->487762
/*487712*/            OPC_MoveParent,
/*487713*/            OPC_CheckType, MVT::v2i64,
/*487715*/            OPC_MoveParent,
/*487716*/            OPC_Scope, 22, /*->487740*/ // 2 children in Scope
/*487718*/              OPC_CheckType, MVT::v4i32,
/*487720*/              OPC_MoveParent,
/*487721*/              OPC_CheckType, MVT::v2i64,
/*487723*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487725*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487728*/              OPC_EmitMergeInputChains1_0,
/*487729*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487740*/            /*Scope*/ 20, /*->487761*/
/*487741*/              OPC_MoveParent,
/*487742*/              OPC_CheckType, MVT::v8i16,
/*487744*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487746*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487749*/              OPC_EmitMergeInputChains1_0,
/*487750*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (PMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*487761*/            0, /*End of Scope*/
/*487762*/          /*SwitchType*/ 50, MVT::f64,// ->487814
/*487764*/            OPC_MoveParent,
/*487765*/            OPC_CheckType, MVT::v2f64,
/*487767*/            OPC_MoveParent,
/*487768*/            OPC_Scope, 22, /*->487792*/ // 2 children in Scope
/*487770*/              OPC_CheckType, MVT::v4i32,
/*487772*/              OPC_MoveParent,
/*487773*/              OPC_CheckType, MVT::v2i64,
/*487775*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487777*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487780*/              OPC_EmitMergeInputChains1_0,
/*487781*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487792*/            /*Scope*/ 20, /*->487813*/
/*487793*/              OPC_MoveParent,
/*487794*/              OPC_CheckType, MVT::v8i16,
/*487796*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487798*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487801*/              OPC_EmitMergeInputChains1_0,
/*487802*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (PMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*487813*/            0, /*End of Scope*/
/*487814*/          0, // EndSwitchType
/*487815*/        /*Scope*/ 30, /*->487846*/
/*487816*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*487818*/          OPC_CheckType, MVT::i32,
/*487820*/          OPC_MoveParent,
/*487821*/          OPC_CheckType, MVT::v4i32,
/*487823*/          OPC_MoveParent,
/*487824*/          OPC_CheckType, MVT::v16i8,
/*487826*/          OPC_MoveParent,
/*487827*/          OPC_CheckType, MVT::v4i32,
/*487829*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487831*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487834*/          OPC_EmitMergeInputChains1_0,
/*487835*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (PMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487846*/        /*Scope*/ 32, /*->487879*/
/*487847*/          OPC_CheckPredicate, 64, // Predicate_extload
/*487849*/          OPC_CheckPredicate, 62, // Predicate_extloadi16
/*487851*/          OPC_CheckType, MVT::i32,
/*487853*/          OPC_MoveParent,
/*487854*/          OPC_CheckType, MVT::v4i32,
/*487856*/          OPC_MoveParent,
/*487857*/          OPC_CheckType, MVT::v16i8,
/*487859*/          OPC_MoveParent,
/*487860*/          OPC_CheckType, MVT::v2i64,
/*487862*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487864*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487867*/          OPC_EmitMergeInputChains1_0,
/*487868*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>))) - Complexity = 31
                    // Dst: (PMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487879*/        /*Scope*/ 60, /*->487940*/
/*487880*/          OPC_CheckPredicate, 9, // Predicate_load
/*487882*/          OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->487911
/*487885*/            OPC_MoveParent,
/*487886*/            OPC_CheckType, MVT::v2i64,
/*487888*/            OPC_MoveParent,
/*487889*/            OPC_CheckType, MVT::v8i16,
/*487891*/            OPC_MoveParent,
/*487892*/            OPC_CheckType, MVT::v4i32,
/*487894*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487896*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487899*/            OPC_EmitMergeInputChains1_0,
/*487900*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (PMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487911*/          /*SwitchType*/ 26, MVT::f64,// ->487939
/*487913*/            OPC_MoveParent,
/*487914*/            OPC_CheckType, MVT::v2f64,
/*487916*/            OPC_MoveParent,
/*487917*/            OPC_CheckType, MVT::v8i16,
/*487919*/            OPC_MoveParent,
/*487920*/            OPC_CheckType, MVT::v4i32,
/*487922*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487924*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487927*/            OPC_EmitMergeInputChains1_0,
/*487928*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (PMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*487939*/          0, // EndSwitchType
/*487940*/        /*Scope*/ 30, /*->487971*/
/*487941*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*487943*/          OPC_CheckType, MVT::i32,
/*487945*/          OPC_MoveParent,
/*487946*/          OPC_CheckType, MVT::v4i32,
/*487948*/          OPC_MoveParent,
/*487949*/          OPC_CheckType, MVT::v8i16,
/*487951*/          OPC_MoveParent,
/*487952*/          OPC_CheckType, MVT::v2i64,
/*487954*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487956*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487959*/          OPC_EmitMergeInputChains1_0,
/*487960*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (PMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*487971*/        /*Scope*/ 108, /*->488080*/
/*487972*/          OPC_CheckPredicate, 9, // Predicate_load
/*487974*/          OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->488027
/*487977*/            OPC_MoveParent,
/*487978*/            OPC_CheckType, MVT::v2i64,
/*487980*/            OPC_MoveParent,
/*487981*/            OPC_Scope, 22, /*->488005*/ // 2 children in Scope
/*487983*/              OPC_CheckType, MVT::v4i32,
/*487985*/              OPC_MoveParent,
/*487986*/              OPC_CheckType, MVT::v2i64,
/*487988*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*487990*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*487993*/              OPC_EmitMergeInputChains1_0,
/*487994*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (PMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488005*/            /*Scope*/ 20, /*->488026*/
/*488006*/              OPC_MoveParent,
/*488007*/              OPC_CheckType, MVT::v8i16,
/*488009*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*488011*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488014*/              OPC_EmitMergeInputChains1_0,
/*488015*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVSXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*488026*/            0, /*End of Scope*/
/*488027*/          /*SwitchType*/ 50, MVT::f64,// ->488079
/*488029*/            OPC_MoveParent,
/*488030*/            OPC_CheckType, MVT::v2f64,
/*488032*/            OPC_MoveParent,
/*488033*/            OPC_Scope, 22, /*->488057*/ // 2 children in Scope
/*488035*/              OPC_CheckType, MVT::v4i32,
/*488037*/              OPC_MoveParent,
/*488038*/              OPC_CheckType, MVT::v2i64,
/*488040*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488042*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488045*/              OPC_EmitMergeInputChains1_0,
/*488046*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (PMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488057*/            /*Scope*/ 20, /*->488078*/
/*488058*/              OPC_MoveParent,
/*488059*/              OPC_CheckType, MVT::v8i16,
/*488061*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*488063*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488066*/              OPC_EmitMergeInputChains1_0,
/*488067*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVSXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*488078*/            0, /*End of Scope*/
/*488079*/          0, // EndSwitchType
/*488080*/        /*Scope*/ 30, /*->488111*/
/*488081*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*488083*/          OPC_CheckType, MVT::i32,
/*488085*/          OPC_MoveParent,
/*488086*/          OPC_CheckType, MVT::v4i32,
/*488088*/          OPC_MoveParent,
/*488089*/          OPC_CheckType, MVT::v16i8,
/*488091*/          OPC_MoveParent,
/*488092*/          OPC_CheckType, MVT::v4i32,
/*488094*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488096*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488099*/          OPC_EmitMergeInputChains1_0,
/*488100*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (VPMOVSXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488111*/        /*Scope*/ 32, /*->488144*/
/*488112*/          OPC_CheckPredicate, 64, // Predicate_extload
/*488114*/          OPC_CheckPredicate, 62, // Predicate_extloadi16
/*488116*/          OPC_CheckType, MVT::i32,
/*488118*/          OPC_MoveParent,
/*488119*/          OPC_CheckType, MVT::v4i32,
/*488121*/          OPC_MoveParent,
/*488122*/          OPC_CheckType, MVT::v16i8,
/*488124*/          OPC_MoveParent,
/*488125*/          OPC_CheckType, MVT::v2i64,
/*488127*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488129*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488132*/          OPC_EmitMergeInputChains1_0,
/*488133*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>))) - Complexity = 31
                    // Dst: (VPMOVSXBQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488144*/        /*Scope*/ 60, /*->488205*/
/*488145*/          OPC_CheckPredicate, 9, // Predicate_load
/*488147*/          OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->488176
/*488150*/            OPC_MoveParent,
/*488151*/            OPC_CheckType, MVT::v2i64,
/*488153*/            OPC_MoveParent,
/*488154*/            OPC_CheckType, MVT::v8i16,
/*488156*/            OPC_MoveParent,
/*488157*/            OPC_CheckType, MVT::v4i32,
/*488159*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488161*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488164*/            OPC_EmitMergeInputChains1_0,
/*488165*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVSXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488176*/          /*SwitchType*/ 26, MVT::f64,// ->488204
/*488178*/            OPC_MoveParent,
/*488179*/            OPC_CheckType, MVT::v2f64,
/*488181*/            OPC_MoveParent,
/*488182*/            OPC_CheckType, MVT::v8i16,
/*488184*/            OPC_MoveParent,
/*488185*/            OPC_CheckType, MVT::v4i32,
/*488187*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488189*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488192*/            OPC_EmitMergeInputChains1_0,
/*488193*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVSXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488204*/          0, // EndSwitchType
/*488205*/        /*Scope*/ 30, /*->488236*/
/*488206*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*488208*/          OPC_CheckType, MVT::i32,
/*488210*/          OPC_MoveParent,
/*488211*/          OPC_CheckType, MVT::v4i32,
/*488213*/          OPC_MoveParent,
/*488214*/          OPC_CheckType, MVT::v8i16,
/*488216*/          OPC_MoveParent,
/*488217*/          OPC_CheckType, MVT::v2i64,
/*488219*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488221*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488224*/          OPC_EmitMergeInputChains1_0,
/*488225*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (VPMOVSXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488236*/        /*Scope*/ 60, /*->488297*/
/*488237*/          OPC_CheckPredicate, 9, // Predicate_load
/*488239*/          OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->488268
/*488242*/            OPC_MoveParent,
/*488243*/            OPC_CheckType, MVT::v2i64,
/*488245*/            OPC_MoveParent,
/*488246*/            OPC_CheckType, MVT::v4i32,
/*488248*/            OPC_MoveParent,
/*488249*/            OPC_CheckType, MVT::v2i64,
/*488251*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488253*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488256*/            OPC_EmitMergeInputChains1_0,
/*488257*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVSXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488268*/          /*SwitchType*/ 26, MVT::f64,// ->488296
/*488270*/            OPC_MoveParent,
/*488271*/            OPC_CheckType, MVT::v2f64,
/*488273*/            OPC_MoveParent,
/*488274*/            OPC_CheckType, MVT::v4i32,
/*488276*/            OPC_MoveParent,
/*488277*/            OPC_CheckType, MVT::v2i64,
/*488279*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488281*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488284*/            OPC_EmitMergeInputChains1_0,
/*488285*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVSXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488296*/          0, // EndSwitchType
/*488297*/        0, /*End of Scope*/
/*488298*/      /*SwitchOpcode*/ 27|128,3/*411*/, TARGET_VAL(ISD::LOAD),// ->488713
/*488302*/        OPC_RecordMemRef,
/*488303*/        OPC_RecordNode, // #0 = 'ld' chained node
/*488304*/        OPC_CheckFoldableChainNode,
/*488305*/        OPC_RecordChild1, // #1 = $src
/*488306*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*488308*/        OPC_CheckPredicate, 9, // Predicate_load
/*488310*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*488312*/        OPC_CheckType, MVT::v2i64,
/*488314*/        OPC_MoveParent,
/*488315*/        OPC_Scope, 20, /*->488337*/ // 12 children in Scope
/*488317*/          OPC_MoveParent,
/*488318*/          OPC_CheckType, MVT::v8i16,
/*488320*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*488322*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488325*/          OPC_EmitMergeInputChains1_0,
/*488326*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*488337*/        /*Scope*/ 43, /*->488381*/
/*488338*/          OPC_CheckType, MVT::v16i8,
/*488340*/          OPC_MoveParent,
/*488341*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->488361
/*488344*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488346*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488349*/            OPC_EmitMergeInputChains1_0,
/*488350*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488361*/          /*SwitchType*/ 17, MVT::v2i64,// ->488380
/*488363*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488365*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488368*/            OPC_EmitMergeInputChains1_0,
/*488369*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488380*/          0, // EndSwitchType
/*488381*/        /*Scope*/ 43, /*->488425*/
/*488382*/          OPC_CheckType, MVT::v8i16,
/*488384*/          OPC_MoveParent,
/*488385*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->488405
/*488388*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488390*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488393*/            OPC_EmitMergeInputChains1_0,
/*488394*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488405*/          /*SwitchType*/ 17, MVT::v2i64,// ->488424
/*488407*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488409*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488412*/            OPC_EmitMergeInputChains1_0,
/*488413*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488424*/          0, // EndSwitchType
/*488425*/        /*Scope*/ 22, /*->488448*/
/*488426*/          OPC_CheckType, MVT::v4i32,
/*488428*/          OPC_MoveParent,
/*488429*/          OPC_CheckType, MVT::v2i64,
/*488431*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488433*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488436*/          OPC_EmitMergeInputChains1_0,
/*488437*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488448*/        /*Scope*/ 20, /*->488469*/
/*488449*/          OPC_MoveParent,
/*488450*/          OPC_CheckType, MVT::v8i16,
/*488452*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488454*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488457*/          OPC_EmitMergeInputChains1_0,
/*488458*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (PMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*488469*/        /*Scope*/ 43, /*->488513*/
/*488470*/          OPC_CheckType, MVT::v16i8,
/*488472*/          OPC_MoveParent,
/*488473*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->488493
/*488476*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488478*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488481*/            OPC_EmitMergeInputChains1_0,
/*488482*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (PMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488493*/          /*SwitchType*/ 17, MVT::v2i64,// ->488512
/*488495*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488497*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488500*/            OPC_EmitMergeInputChains1_0,
/*488501*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (PMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488512*/          0, // EndSwitchType
/*488513*/        /*Scope*/ 43, /*->488557*/
/*488514*/          OPC_CheckType, MVT::v8i16,
/*488516*/          OPC_MoveParent,
/*488517*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->488537
/*488520*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488522*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488525*/            OPC_EmitMergeInputChains1_0,
/*488526*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (PMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488537*/          /*SwitchType*/ 17, MVT::v2i64,// ->488556
/*488539*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488541*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488544*/            OPC_EmitMergeInputChains1_0,
/*488545*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (PMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488556*/          0, // EndSwitchType
/*488557*/        /*Scope*/ 22, /*->488580*/
/*488558*/          OPC_CheckType, MVT::v4i32,
/*488560*/          OPC_MoveParent,
/*488561*/          OPC_CheckType, MVT::v2i64,
/*488563*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488565*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488568*/          OPC_EmitMergeInputChains1_0,
/*488569*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (PMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488580*/        /*Scope*/ 20, /*->488601*/
/*488581*/          OPC_MoveParent,
/*488582*/          OPC_CheckType, MVT::v8i16,
/*488584*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*488586*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488589*/          OPC_EmitMergeInputChains1_0,
/*488590*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMOVSXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*488601*/        /*Scope*/ 43, /*->488645*/
/*488602*/          OPC_CheckType, MVT::v16i8,
/*488604*/          OPC_MoveParent,
/*488605*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->488625
/*488608*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488610*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488613*/            OPC_EmitMergeInputChains1_0,
/*488614*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVSXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488625*/          /*SwitchType*/ 17, MVT::v2i64,// ->488644
/*488627*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488629*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488632*/            OPC_EmitMergeInputChains1_0,
/*488633*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVSXBQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488644*/          0, // EndSwitchType
/*488645*/        /*Scope*/ 43, /*->488689*/
/*488646*/          OPC_CheckType, MVT::v8i16,
/*488648*/          OPC_MoveParent,
/*488649*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->488669
/*488652*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488654*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488657*/            OPC_EmitMergeInputChains1_0,
/*488658*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVSXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488669*/          /*SwitchType*/ 17, MVT::v2i64,// ->488688
/*488671*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488673*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488676*/            OPC_EmitMergeInputChains1_0,
/*488677*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVSXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488688*/          0, // EndSwitchType
/*488689*/        /*Scope*/ 22, /*->488712*/
/*488690*/          OPC_CheckType, MVT::v4i32,
/*488692*/          OPC_MoveParent,
/*488693*/          OPC_CheckType, MVT::v2i64,
/*488695*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*488697*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488700*/          OPC_EmitMergeInputChains1_0,
/*488701*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMOVSXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488712*/        0, /*End of Scope*/
/*488713*/      /*SwitchOpcode*/ 21|128,3/*405*/, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->489122
/*488717*/        OPC_RecordMemRef,
/*488718*/        OPC_RecordNode, // #0 = 'X86vzload' chained node
/*488719*/        OPC_CheckFoldableChainNode,
/*488720*/        OPC_RecordChild1, // #1 = $src
/*488721*/        OPC_CheckType, MVT::v2i64,
/*488723*/        OPC_MoveParent,
/*488724*/        OPC_Scope, 20, /*->488746*/ // 12 children in Scope
/*488726*/          OPC_MoveParent,
/*488727*/          OPC_CheckType, MVT::v8i16,
/*488729*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*488731*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488734*/          OPC_EmitMergeInputChains1_0,
/*488735*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (VPMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*488746*/        /*Scope*/ 43, /*->488790*/
/*488747*/          OPC_CheckType, MVT::v16i8,
/*488749*/          OPC_MoveParent,
/*488750*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->488770
/*488753*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488755*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488758*/            OPC_EmitMergeInputChains1_0,
/*488759*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488770*/          /*SwitchType*/ 17, MVT::v2i64,// ->488789
/*488772*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488774*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488777*/            OPC_EmitMergeInputChains1_0,
/*488778*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488789*/          0, // EndSwitchType
/*488790*/        /*Scope*/ 43, /*->488834*/
/*488791*/          OPC_CheckType, MVT::v8i16,
/*488793*/          OPC_MoveParent,
/*488794*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->488814
/*488797*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488799*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488802*/            OPC_EmitMergeInputChains1_0,
/*488803*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488814*/          /*SwitchType*/ 17, MVT::v2i64,// ->488833
/*488816*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488818*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488821*/            OPC_EmitMergeInputChains1_0,
/*488822*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488833*/          0, // EndSwitchType
/*488834*/        /*Scope*/ 22, /*->488857*/
/*488835*/          OPC_CheckType, MVT::v4i32,
/*488837*/          OPC_MoveParent,
/*488838*/          OPC_CheckType, MVT::v2i64,
/*488840*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488842*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488845*/          OPC_EmitMergeInputChains1_0,
/*488846*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (VPMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488857*/        /*Scope*/ 20, /*->488878*/
/*488858*/          OPC_MoveParent,
/*488859*/          OPC_CheckType, MVT::v8i16,
/*488861*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488863*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488866*/          OPC_EmitMergeInputChains1_0,
/*488867*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (PMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*488878*/        /*Scope*/ 43, /*->488922*/
/*488879*/          OPC_CheckType, MVT::v16i8,
/*488881*/          OPC_MoveParent,
/*488882*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->488902
/*488885*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488887*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488890*/            OPC_EmitMergeInputChains1_0,
/*488891*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (PMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488902*/          /*SwitchType*/ 17, MVT::v2i64,// ->488921
/*488904*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488906*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488909*/            OPC_EmitMergeInputChains1_0,
/*488910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (PMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488921*/          0, // EndSwitchType
/*488922*/        /*Scope*/ 43, /*->488966*/
/*488923*/          OPC_CheckType, MVT::v8i16,
/*488925*/          OPC_MoveParent,
/*488926*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->488946
/*488929*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488931*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488934*/            OPC_EmitMergeInputChains1_0,
/*488935*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (PMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*488946*/          /*SwitchType*/ 17, MVT::v2i64,// ->488965
/*488948*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488950*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488953*/            OPC_EmitMergeInputChains1_0,
/*488954*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (PMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488965*/          0, // EndSwitchType
/*488966*/        /*Scope*/ 22, /*->488989*/
/*488967*/          OPC_CheckType, MVT::v4i32,
/*488969*/          OPC_MoveParent,
/*488970*/          OPC_CheckType, MVT::v2i64,
/*488972*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*488974*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488977*/          OPC_EmitMergeInputChains1_0,
/*488978*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (PMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*488989*/        /*Scope*/ 20, /*->489010*/
/*488990*/          OPC_MoveParent,
/*488991*/          OPC_CheckType, MVT::v8i16,
/*488993*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*488995*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*488998*/          OPC_EmitMergeInputChains1_0,
/*488999*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (VPMOVSXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*489010*/        /*Scope*/ 43, /*->489054*/
/*489011*/          OPC_CheckType, MVT::v16i8,
/*489013*/          OPC_MoveParent,
/*489014*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->489034
/*489017*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*489019*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489022*/            OPC_EmitMergeInputChains1_0,
/*489023*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVSXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*489034*/          /*SwitchType*/ 17, MVT::v2i64,// ->489053
/*489036*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*489038*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489041*/            OPC_EmitMergeInputChains1_0,
/*489042*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVSXBQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489053*/          0, // EndSwitchType
/*489054*/        /*Scope*/ 43, /*->489098*/
/*489055*/          OPC_CheckType, MVT::v8i16,
/*489057*/          OPC_MoveParent,
/*489058*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->489078
/*489061*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*489063*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489066*/            OPC_EmitMergeInputChains1_0,
/*489067*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVSXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*489078*/          /*SwitchType*/ 17, MVT::v2i64,// ->489097
/*489080*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*489082*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489085*/            OPC_EmitMergeInputChains1_0,
/*489086*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVSXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489097*/          0, // EndSwitchType
/*489098*/        /*Scope*/ 22, /*->489121*/
/*489099*/          OPC_CheckType, MVT::v4i32,
/*489101*/          OPC_MoveParent,
/*489102*/          OPC_CheckType, MVT::v2i64,
/*489104*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*489106*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489109*/          OPC_EmitMergeInputChains1_0,
/*489110*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (VPMOVSXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489121*/        0, /*End of Scope*/
/*489122*/      0, // EndSwitchOpcode
/*489123*/    /*Scope*/ 92|128,1/*220*/, /*->489345*/
/*489125*/      OPC_RecordChild0, // #0 = $src
/*489126*/      OPC_SwitchType /*3 cases */, 32, MVT::v8i16,// ->489161
/*489129*/        OPC_Scope, 9, /*->489140*/ // 3 children in Scope
/*489131*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*489133*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWrr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (sext_invec:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
/*489140*/        /*Scope*/ 9, /*->489150*/
/*489141*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489143*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBWrr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (sext_invec:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (PMOVSXBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
/*489150*/        /*Scope*/ 9, /*->489160*/
/*489151*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*489153*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ128rr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (sext_invec:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXBWZ128rr:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src)
/*489160*/        0, /*End of Scope*/
/*489161*/      /*SwitchType*/ 72, MVT::v4i32,// ->489235
/*489163*/        OPC_Scope, 34, /*->489199*/ // 2 children in Scope
/*489165*/          OPC_CheckChild0Type, MVT::v16i8,
/*489167*/          OPC_Scope, 9, /*->489178*/ // 3 children in Scope
/*489169*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489171*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBDrr:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src)
/*489178*/          /*Scope*/ 9, /*->489188*/
/*489179*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489181*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBDrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (PMOVSXBDrr:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src)
/*489188*/          /*Scope*/ 9, /*->489198*/
/*489189*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489191*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ128rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v4i32] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBDZ128rr:{ *:[v4i32] } VR128X:{ *:[v16i8] }:$src)
/*489198*/          0, /*End of Scope*/
/*489199*/        /*Scope*/ 34, /*->489234*/
/*489200*/          OPC_CheckChild0Type, MVT::v8i16,
/*489202*/          OPC_Scope, 9, /*->489213*/ // 3 children in Scope
/*489204*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489206*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
/*489213*/          /*Scope*/ 9, /*->489223*/
/*489214*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489216*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWDrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (PMOVSXWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
/*489223*/          /*Scope*/ 9, /*->489233*/
/*489224*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489226*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ128rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWDZ128rr:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src)
/*489233*/          0, /*End of Scope*/
/*489234*/        0, /*End of Scope*/
/*489235*/      /*SwitchType*/ 107, MVT::v2i64,// ->489344
/*489237*/        OPC_Scope, 34, /*->489273*/ // 3 children in Scope
/*489239*/          OPC_CheckChild0Type, MVT::v16i8,
/*489241*/          OPC_Scope, 9, /*->489252*/ // 3 children in Scope
/*489243*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489245*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBQrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src)
/*489252*/          /*Scope*/ 9, /*->489262*/
/*489253*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489255*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (PMOVSXBQrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src)
/*489262*/          /*Scope*/ 9, /*->489272*/
/*489263*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489265*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ128rr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBQZ128rr:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src)
/*489272*/          0, /*End of Scope*/
/*489273*/        /*Scope*/ 34, /*->489308*/
/*489274*/          OPC_CheckChild0Type, MVT::v8i16,
/*489276*/          OPC_Scope, 9, /*->489287*/ // 3 children in Scope
/*489278*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489280*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWQrr:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src)
/*489287*/          /*Scope*/ 9, /*->489297*/
/*489288*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489290*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (PMOVSXWQrr:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src)
/*489297*/          /*Scope*/ 9, /*->489307*/
/*489298*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489300*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ128rr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v2i64] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWQZ128rr:{ *:[v2i64] } VR128X:{ *:[v8i16] }:$src)
/*489307*/          0, /*End of Scope*/
/*489308*/        /*Scope*/ 34, /*->489343*/
/*489309*/          OPC_CheckChild0Type, MVT::v4i32,
/*489311*/          OPC_Scope, 9, /*->489322*/ // 3 children in Scope
/*489313*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489315*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
/*489322*/          /*Scope*/ 9, /*->489332*/
/*489323*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489325*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXDQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (PMOVSXDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
/*489332*/          /*Scope*/ 9, /*->489342*/
/*489333*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489335*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ128rr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v2i64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v4i32] }:$src)
/*489342*/          0, /*End of Scope*/
/*489343*/        0, /*End of Scope*/
/*489344*/      0, // EndSwitchType
/*489345*/    0, /*End of Scope*/
/*489346*/  /*SwitchOpcode*/ 7|128,18/*2311*/, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->491661
/*489350*/    OPC_Scope, 37|128,16/*2085*/, /*->491438*/ // 2 children in Scope
/*489353*/      OPC_MoveChild0,
/*489354*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*489357*/      OPC_MoveChild0,
/*489358*/      OPC_SwitchOpcode /*4 cases */, 46|128,3/*430*/, TARGET_VAL(X86ISD::VZEXT_MOVL),// ->489793
/*489363*/        OPC_MoveChild0,
/*489364*/        OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*489367*/        OPC_MoveChild0,
/*489368*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*489371*/        OPC_RecordMemRef,
/*489372*/        OPC_RecordNode, // #0 = 'ld' chained node
/*489373*/        OPC_CheckFoldableChainNode,
/*489374*/        OPC_RecordChild1, // #1 = $src
/*489375*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*489377*/        OPC_SwitchType /*2 cases */, 82|128,1/*210*/, MVT::i64,// ->489591
/*489381*/          OPC_CheckPredicate, 9, // Predicate_load
/*489383*/          OPC_MoveParent,
/*489384*/          OPC_MoveParent,
/*489385*/          OPC_CheckType, MVT::v2i64,
/*489387*/          OPC_MoveParent,
/*489388*/          OPC_Scope, 20, /*->489410*/ // 9 children in Scope
/*489390*/            OPC_MoveParent,
/*489391*/            OPC_CheckType, MVT::v8i16,
/*489393*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*489395*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489398*/            OPC_EmitMergeInputChains1_0,
/*489399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*489410*/          /*Scope*/ 22, /*->489433*/
/*489411*/            OPC_CheckType, MVT::v8i16,
/*489413*/            OPC_MoveParent,
/*489414*/            OPC_CheckType, MVT::v4i32,
/*489416*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489418*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489421*/            OPC_EmitMergeInputChains1_0,
/*489422*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*489433*/          /*Scope*/ 22, /*->489456*/
/*489434*/            OPC_CheckType, MVT::v4i32,
/*489436*/            OPC_MoveParent,
/*489437*/            OPC_CheckType, MVT::v2i64,
/*489439*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489441*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489444*/            OPC_EmitMergeInputChains1_0,
/*489445*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489456*/          /*Scope*/ 20, /*->489477*/
/*489457*/            OPC_MoveParent,
/*489458*/            OPC_CheckType, MVT::v8i16,
/*489460*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489462*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489465*/            OPC_EmitMergeInputChains1_0,
/*489466*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (PMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*489477*/          /*Scope*/ 22, /*->489500*/
/*489478*/            OPC_CheckType, MVT::v8i16,
/*489480*/            OPC_MoveParent,
/*489481*/            OPC_CheckType, MVT::v4i32,
/*489483*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489485*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489488*/            OPC_EmitMergeInputChains1_0,
/*489489*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (PMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*489500*/          /*Scope*/ 22, /*->489523*/
/*489501*/            OPC_CheckType, MVT::v4i32,
/*489503*/            OPC_MoveParent,
/*489504*/            OPC_CheckType, MVT::v2i64,
/*489506*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489508*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489511*/            OPC_EmitMergeInputChains1_0,
/*489512*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (PMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489523*/          /*Scope*/ 20, /*->489544*/
/*489524*/            OPC_MoveParent,
/*489525*/            OPC_CheckType, MVT::v8i16,
/*489527*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*489529*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489532*/            OPC_EmitMergeInputChains1_0,
/*489533*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVZXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*489544*/          /*Scope*/ 22, /*->489567*/
/*489545*/            OPC_CheckType, MVT::v8i16,
/*489547*/            OPC_MoveParent,
/*489548*/            OPC_CheckType, MVT::v4i32,
/*489550*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*489552*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489555*/            OPC_EmitMergeInputChains1_0,
/*489556*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVZXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*489567*/          /*Scope*/ 22, /*->489590*/
/*489568*/            OPC_CheckType, MVT::v4i32,
/*489570*/            OPC_MoveParent,
/*489571*/            OPC_CheckType, MVT::v2i64,
/*489573*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*489575*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489578*/            OPC_EmitMergeInputChains1_0,
/*489579*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                      // Dst: (VPMOVZXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489590*/          0, /*End of Scope*/
/*489591*/        /*SwitchType*/ 70|128,1/*198*/, MVT::i32,// ->489792
/*489594*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*489596*/          OPC_MoveParent,
/*489597*/          OPC_MoveParent,
/*489598*/          OPC_CheckType, MVT::v4i32,
/*489600*/          OPC_MoveParent,
/*489601*/          OPC_SwitchType /*2 cases */, 126, MVT::v16i8,// ->489730
/*489604*/            OPC_MoveParent,
/*489605*/            OPC_Scope, 40, /*->489647*/ // 3 children in Scope
/*489607*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->489627
/*489610*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489612*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489615*/                OPC_EmitMergeInputChains1_0,
/*489616*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (VPMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*489627*/              /*SwitchType*/ 17, MVT::v2i64,// ->489646
/*489629*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489631*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489634*/                OPC_EmitMergeInputChains1_0,
/*489635*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (VPMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489646*/              0, // EndSwitchType
/*489647*/            /*Scope*/ 40, /*->489688*/
/*489648*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->489668
/*489651*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489653*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489656*/                OPC_EmitMergeInputChains1_0,
/*489657*/                OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (PMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*489668*/              /*SwitchType*/ 17, MVT::v2i64,// ->489687
/*489670*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489672*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489675*/                OPC_EmitMergeInputChains1_0,
/*489676*/                OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (PMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489687*/              0, // EndSwitchType
/*489688*/            /*Scope*/ 40, /*->489729*/
/*489689*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->489709
/*489692*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*489694*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489697*/                OPC_EmitMergeInputChains1_0,
/*489698*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (VPMOVZXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*489709*/              /*SwitchType*/ 17, MVT::v2i64,// ->489728
/*489711*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*489713*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489716*/                OPC_EmitMergeInputChains1_0,
/*489717*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                          // Dst: (VPMOVZXBQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489728*/              0, // EndSwitchType
/*489729*/            0, /*End of Scope*/
/*489730*/          /*SwitchType*/ 59, MVT::v8i16,// ->489791
/*489732*/            OPC_MoveParent,
/*489733*/            OPC_CheckType, MVT::v2i64,
/*489735*/            OPC_Scope, 17, /*->489754*/ // 3 children in Scope
/*489737*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489739*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489742*/              OPC_EmitMergeInputChains1_0,
/*489743*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                        // Dst: (VPMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489754*/            /*Scope*/ 17, /*->489772*/
/*489755*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*489757*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489760*/              OPC_EmitMergeInputChains1_0,
/*489761*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                        // Dst: (PMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489772*/            /*Scope*/ 17, /*->489790*/
/*489773*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*489775*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489778*/              OPC_EmitMergeInputChains1_0,
/*489779*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 34
                        // Dst: (VPMOVZXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489790*/            0, /*End of Scope*/
/*489791*/          0, // EndSwitchType
/*489792*/        0, // EndSwitchType
/*489793*/      /*SwitchOpcode*/ 48|128,6/*816*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->490613
/*489797*/        OPC_MoveChild0,
/*489798*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*489801*/        OPC_RecordMemRef,
/*489802*/        OPC_RecordNode, // #0 = 'ld' chained node
/*489803*/        OPC_CheckFoldableChainNode,
/*489804*/        OPC_RecordChild1, // #1 = $src
/*489805*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*489807*/        OPC_Scope, 56, /*->489865*/ // 16 children in Scope
/*489809*/          OPC_CheckPredicate, 9, // Predicate_load
/*489811*/          OPC_SwitchType /*2 cases */, 24, MVT::i64,// ->489838
/*489814*/            OPC_MoveParent,
/*489815*/            OPC_CheckType, MVT::v2i64,
/*489817*/            OPC_MoveParent,
/*489818*/            OPC_MoveParent,
/*489819*/            OPC_CheckType, MVT::v8i16,
/*489821*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*489823*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489826*/            OPC_EmitMergeInputChains1_0,
/*489827*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*489838*/          /*SwitchType*/ 24, MVT::f64,// ->489864
/*489840*/            OPC_MoveParent,
/*489841*/            OPC_CheckType, MVT::v2f64,
/*489843*/            OPC_MoveParent,
/*489844*/            OPC_MoveParent,
/*489845*/            OPC_CheckType, MVT::v8i16,
/*489847*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*489849*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489852*/            OPC_EmitMergeInputChains1_0,
/*489853*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*489864*/          0, // EndSwitchType
/*489865*/        /*Scope*/ 30, /*->489896*/
/*489866*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*489868*/          OPC_CheckType, MVT::i32,
/*489870*/          OPC_MoveParent,
/*489871*/          OPC_CheckType, MVT::v4i32,
/*489873*/          OPC_MoveParent,
/*489874*/          OPC_CheckType, MVT::v16i8,
/*489876*/          OPC_MoveParent,
/*489877*/          OPC_CheckType, MVT::v4i32,
/*489879*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489881*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489884*/          OPC_EmitMergeInputChains1_0,
/*489885*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (VPMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*489896*/        /*Scope*/ 32, /*->489929*/
/*489897*/          OPC_CheckPredicate, 64, // Predicate_extload
/*489899*/          OPC_CheckPredicate, 62, // Predicate_extloadi16
/*489901*/          OPC_CheckType, MVT::i32,
/*489903*/          OPC_MoveParent,
/*489904*/          OPC_CheckType, MVT::v4i32,
/*489906*/          OPC_MoveParent,
/*489907*/          OPC_CheckType, MVT::v16i8,
/*489909*/          OPC_MoveParent,
/*489910*/          OPC_CheckType, MVT::v2i64,
/*489912*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489914*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489917*/          OPC_EmitMergeInputChains1_0,
/*489918*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>))) - Complexity = 31
                    // Dst: (VPMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*489929*/        /*Scope*/ 60, /*->489990*/
/*489930*/          OPC_CheckPredicate, 9, // Predicate_load
/*489932*/          OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->489961
/*489935*/            OPC_MoveParent,
/*489936*/            OPC_CheckType, MVT::v2i64,
/*489938*/            OPC_MoveParent,
/*489939*/            OPC_CheckType, MVT::v8i16,
/*489941*/            OPC_MoveParent,
/*489942*/            OPC_CheckType, MVT::v4i32,
/*489944*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489946*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489949*/            OPC_EmitMergeInputChains1_0,
/*489950*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*489961*/          /*SwitchType*/ 26, MVT::f64,// ->489989
/*489963*/            OPC_MoveParent,
/*489964*/            OPC_CheckType, MVT::v2f64,
/*489966*/            OPC_MoveParent,
/*489967*/            OPC_CheckType, MVT::v8i16,
/*489969*/            OPC_MoveParent,
/*489970*/            OPC_CheckType, MVT::v4i32,
/*489972*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489974*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*489977*/            OPC_EmitMergeInputChains1_0,
/*489978*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*489989*/          0, // EndSwitchType
/*489990*/        /*Scope*/ 30, /*->490021*/
/*489991*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*489993*/          OPC_CheckType, MVT::i32,
/*489995*/          OPC_MoveParent,
/*489996*/          OPC_CheckType, MVT::v4i32,
/*489998*/          OPC_MoveParent,
/*489999*/          OPC_CheckType, MVT::v8i16,
/*490001*/          OPC_MoveParent,
/*490002*/          OPC_CheckType, MVT::v2i64,
/*490004*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*490006*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490009*/          OPC_EmitMergeInputChains1_0,
/*490010*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (VPMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490021*/        /*Scope*/ 108, /*->490130*/
/*490022*/          OPC_CheckPredicate, 9, // Predicate_load
/*490024*/          OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->490077
/*490027*/            OPC_MoveParent,
/*490028*/            OPC_CheckType, MVT::v2i64,
/*490030*/            OPC_MoveParent,
/*490031*/            OPC_Scope, 22, /*->490055*/ // 2 children in Scope
/*490033*/              OPC_CheckType, MVT::v4i32,
/*490035*/              OPC_MoveParent,
/*490036*/              OPC_CheckType, MVT::v2i64,
/*490038*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*490040*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490043*/              OPC_EmitMergeInputChains1_0,
/*490044*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490055*/            /*Scope*/ 20, /*->490076*/
/*490056*/              OPC_MoveParent,
/*490057*/              OPC_CheckType, MVT::v8i16,
/*490059*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490061*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490064*/              OPC_EmitMergeInputChains1_0,
/*490065*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (PMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*490076*/            0, /*End of Scope*/
/*490077*/          /*SwitchType*/ 50, MVT::f64,// ->490129
/*490079*/            OPC_MoveParent,
/*490080*/            OPC_CheckType, MVT::v2f64,
/*490082*/            OPC_MoveParent,
/*490083*/            OPC_Scope, 22, /*->490107*/ // 2 children in Scope
/*490085*/              OPC_CheckType, MVT::v4i32,
/*490087*/              OPC_MoveParent,
/*490088*/              OPC_CheckType, MVT::v2i64,
/*490090*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*490092*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490095*/              OPC_EmitMergeInputChains1_0,
/*490096*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490107*/            /*Scope*/ 20, /*->490128*/
/*490108*/              OPC_MoveParent,
/*490109*/              OPC_CheckType, MVT::v8i16,
/*490111*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490113*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490116*/              OPC_EmitMergeInputChains1_0,
/*490117*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (PMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*490128*/            0, /*End of Scope*/
/*490129*/          0, // EndSwitchType
/*490130*/        /*Scope*/ 30, /*->490161*/
/*490131*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*490133*/          OPC_CheckType, MVT::i32,
/*490135*/          OPC_MoveParent,
/*490136*/          OPC_CheckType, MVT::v4i32,
/*490138*/          OPC_MoveParent,
/*490139*/          OPC_CheckType, MVT::v16i8,
/*490141*/          OPC_MoveParent,
/*490142*/          OPC_CheckType, MVT::v4i32,
/*490144*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490146*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490149*/          OPC_EmitMergeInputChains1_0,
/*490150*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (PMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490161*/        /*Scope*/ 32, /*->490194*/
/*490162*/          OPC_CheckPredicate, 64, // Predicate_extload
/*490164*/          OPC_CheckPredicate, 62, // Predicate_extloadi16
/*490166*/          OPC_CheckType, MVT::i32,
/*490168*/          OPC_MoveParent,
/*490169*/          OPC_CheckType, MVT::v4i32,
/*490171*/          OPC_MoveParent,
/*490172*/          OPC_CheckType, MVT::v16i8,
/*490174*/          OPC_MoveParent,
/*490175*/          OPC_CheckType, MVT::v2i64,
/*490177*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490179*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490182*/          OPC_EmitMergeInputChains1_0,
/*490183*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>))) - Complexity = 31
                    // Dst: (PMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490194*/        /*Scope*/ 60, /*->490255*/
/*490195*/          OPC_CheckPredicate, 9, // Predicate_load
/*490197*/          OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->490226
/*490200*/            OPC_MoveParent,
/*490201*/            OPC_CheckType, MVT::v2i64,
/*490203*/            OPC_MoveParent,
/*490204*/            OPC_CheckType, MVT::v8i16,
/*490206*/            OPC_MoveParent,
/*490207*/            OPC_CheckType, MVT::v4i32,
/*490209*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490211*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490214*/            OPC_EmitMergeInputChains1_0,
/*490215*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (PMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490226*/          /*SwitchType*/ 26, MVT::f64,// ->490254
/*490228*/            OPC_MoveParent,
/*490229*/            OPC_CheckType, MVT::v2f64,
/*490231*/            OPC_MoveParent,
/*490232*/            OPC_CheckType, MVT::v8i16,
/*490234*/            OPC_MoveParent,
/*490235*/            OPC_CheckType, MVT::v4i32,
/*490237*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490239*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490242*/            OPC_EmitMergeInputChains1_0,
/*490243*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (PMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490254*/          0, // EndSwitchType
/*490255*/        /*Scope*/ 30, /*->490286*/
/*490256*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*490258*/          OPC_CheckType, MVT::i32,
/*490260*/          OPC_MoveParent,
/*490261*/          OPC_CheckType, MVT::v4i32,
/*490263*/          OPC_MoveParent,
/*490264*/          OPC_CheckType, MVT::v8i16,
/*490266*/          OPC_MoveParent,
/*490267*/          OPC_CheckType, MVT::v2i64,
/*490269*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490271*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490274*/          OPC_EmitMergeInputChains1_0,
/*490275*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (PMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490286*/        /*Scope*/ 108, /*->490395*/
/*490287*/          OPC_CheckPredicate, 9, // Predicate_load
/*490289*/          OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->490342
/*490292*/            OPC_MoveParent,
/*490293*/            OPC_CheckType, MVT::v2i64,
/*490295*/            OPC_MoveParent,
/*490296*/            OPC_Scope, 22, /*->490320*/ // 2 children in Scope
/*490298*/              OPC_CheckType, MVT::v4i32,
/*490300*/              OPC_MoveParent,
/*490301*/              OPC_CheckType, MVT::v2i64,
/*490303*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490305*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490308*/              OPC_EmitMergeInputChains1_0,
/*490309*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (PMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490320*/            /*Scope*/ 20, /*->490341*/
/*490321*/              OPC_MoveParent,
/*490322*/              OPC_CheckType, MVT::v8i16,
/*490324*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*490326*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490329*/              OPC_EmitMergeInputChains1_0,
/*490330*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVZXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*490341*/            0, /*End of Scope*/
/*490342*/          /*SwitchType*/ 50, MVT::f64,// ->490394
/*490344*/            OPC_MoveParent,
/*490345*/            OPC_CheckType, MVT::v2f64,
/*490347*/            OPC_MoveParent,
/*490348*/            OPC_Scope, 22, /*->490372*/ // 2 children in Scope
/*490350*/              OPC_CheckType, MVT::v4i32,
/*490352*/              OPC_MoveParent,
/*490353*/              OPC_CheckType, MVT::v2i64,
/*490355*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490357*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490360*/              OPC_EmitMergeInputChains1_0,
/*490361*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (PMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490372*/            /*Scope*/ 20, /*->490393*/
/*490373*/              OPC_MoveParent,
/*490374*/              OPC_CheckType, MVT::v8i16,
/*490376*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*490378*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490381*/              OPC_EmitMergeInputChains1_0,
/*490382*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPMOVZXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*490393*/            0, /*End of Scope*/
/*490394*/          0, // EndSwitchType
/*490395*/        /*Scope*/ 30, /*->490426*/
/*490396*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*490398*/          OPC_CheckType, MVT::i32,
/*490400*/          OPC_MoveParent,
/*490401*/          OPC_CheckType, MVT::v4i32,
/*490403*/          OPC_MoveParent,
/*490404*/          OPC_CheckType, MVT::v16i8,
/*490406*/          OPC_MoveParent,
/*490407*/          OPC_CheckType, MVT::v4i32,
/*490409*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*490411*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490414*/          OPC_EmitMergeInputChains1_0,
/*490415*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (VPMOVZXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490426*/        /*Scope*/ 32, /*->490459*/
/*490427*/          OPC_CheckPredicate, 64, // Predicate_extload
/*490429*/          OPC_CheckPredicate, 62, // Predicate_extloadi16
/*490431*/          OPC_CheckType, MVT::i32,
/*490433*/          OPC_MoveParent,
/*490434*/          OPC_CheckType, MVT::v4i32,
/*490436*/          OPC_MoveParent,
/*490437*/          OPC_CheckType, MVT::v16i8,
/*490439*/          OPC_MoveParent,
/*490440*/          OPC_CheckType, MVT::v2i64,
/*490442*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*490444*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490447*/          OPC_EmitMergeInputChains1_0,
/*490448*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>))) - Complexity = 31
                    // Dst: (VPMOVZXBQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490459*/        /*Scope*/ 60, /*->490520*/
/*490460*/          OPC_CheckPredicate, 9, // Predicate_load
/*490462*/          OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->490491
/*490465*/            OPC_MoveParent,
/*490466*/            OPC_CheckType, MVT::v2i64,
/*490468*/            OPC_MoveParent,
/*490469*/            OPC_CheckType, MVT::v8i16,
/*490471*/            OPC_MoveParent,
/*490472*/            OPC_CheckType, MVT::v4i32,
/*490474*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*490476*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490479*/            OPC_EmitMergeInputChains1_0,
/*490480*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVZXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490491*/          /*SwitchType*/ 26, MVT::f64,// ->490519
/*490493*/            OPC_MoveParent,
/*490494*/            OPC_CheckType, MVT::v2f64,
/*490496*/            OPC_MoveParent,
/*490497*/            OPC_CheckType, MVT::v8i16,
/*490499*/            OPC_MoveParent,
/*490500*/            OPC_CheckType, MVT::v4i32,
/*490502*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*490504*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490507*/            OPC_EmitMergeInputChains1_0,
/*490508*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVZXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490519*/          0, // EndSwitchType
/*490520*/        /*Scope*/ 30, /*->490551*/
/*490521*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*490523*/          OPC_CheckType, MVT::i32,
/*490525*/          OPC_MoveParent,
/*490526*/          OPC_CheckType, MVT::v4i32,
/*490528*/          OPC_MoveParent,
/*490529*/          OPC_CheckType, MVT::v8i16,
/*490531*/          OPC_MoveParent,
/*490532*/          OPC_CheckType, MVT::v2i64,
/*490534*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*490536*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490539*/          OPC_EmitMergeInputChains1_0,
/*490540*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                    // Dst: (VPMOVZXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490551*/        /*Scope*/ 60, /*->490612*/
/*490552*/          OPC_CheckPredicate, 9, // Predicate_load
/*490554*/          OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->490583
/*490557*/            OPC_MoveParent,
/*490558*/            OPC_CheckType, MVT::v2i64,
/*490560*/            OPC_MoveParent,
/*490561*/            OPC_CheckType, MVT::v4i32,
/*490563*/            OPC_MoveParent,
/*490564*/            OPC_CheckType, MVT::v2i64,
/*490566*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*490568*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490571*/            OPC_EmitMergeInputChains1_0,
/*490572*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVZXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490583*/          /*SwitchType*/ 26, MVT::f64,// ->490611
/*490585*/            OPC_MoveParent,
/*490586*/            OPC_CheckType, MVT::v2f64,
/*490588*/            OPC_MoveParent,
/*490589*/            OPC_CheckType, MVT::v4i32,
/*490591*/            OPC_MoveParent,
/*490592*/            OPC_CheckType, MVT::v2i64,
/*490594*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*490596*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490599*/            OPC_EmitMergeInputChains1_0,
/*490600*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VPMOVZXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490611*/          0, // EndSwitchType
/*490612*/        0, /*End of Scope*/
/*490613*/      /*SwitchOpcode*/ 27|128,3/*411*/, TARGET_VAL(ISD::LOAD),// ->491028
/*490617*/        OPC_RecordMemRef,
/*490618*/        OPC_RecordNode, // #0 = 'ld' chained node
/*490619*/        OPC_CheckFoldableChainNode,
/*490620*/        OPC_RecordChild1, // #1 = $src
/*490621*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*490623*/        OPC_CheckPredicate, 9, // Predicate_load
/*490625*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*490627*/        OPC_CheckType, MVT::v2i64,
/*490629*/        OPC_MoveParent,
/*490630*/        OPC_Scope, 20, /*->490652*/ // 12 children in Scope
/*490632*/          OPC_MoveParent,
/*490633*/          OPC_CheckType, MVT::v8i16,
/*490635*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*490637*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490640*/          OPC_EmitMergeInputChains1_0,
/*490641*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*490652*/        /*Scope*/ 43, /*->490696*/
/*490653*/          OPC_CheckType, MVT::v16i8,
/*490655*/          OPC_MoveParent,
/*490656*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->490676
/*490659*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*490661*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490664*/            OPC_EmitMergeInputChains1_0,
/*490665*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490676*/          /*SwitchType*/ 17, MVT::v2i64,// ->490695
/*490678*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*490680*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490683*/            OPC_EmitMergeInputChains1_0,
/*490684*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490695*/          0, // EndSwitchType
/*490696*/        /*Scope*/ 43, /*->490740*/
/*490697*/          OPC_CheckType, MVT::v8i16,
/*490699*/          OPC_MoveParent,
/*490700*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->490720
/*490703*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*490705*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490708*/            OPC_EmitMergeInputChains1_0,
/*490709*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490720*/          /*SwitchType*/ 17, MVT::v2i64,// ->490739
/*490722*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*490724*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490727*/            OPC_EmitMergeInputChains1_0,
/*490728*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490739*/          0, // EndSwitchType
/*490740*/        /*Scope*/ 22, /*->490763*/
/*490741*/          OPC_CheckType, MVT::v4i32,
/*490743*/          OPC_MoveParent,
/*490744*/          OPC_CheckType, MVT::v2i64,
/*490746*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*490748*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490751*/          OPC_EmitMergeInputChains1_0,
/*490752*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490763*/        /*Scope*/ 20, /*->490784*/
/*490764*/          OPC_MoveParent,
/*490765*/          OPC_CheckType, MVT::v8i16,
/*490767*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490769*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490772*/          OPC_EmitMergeInputChains1_0,
/*490773*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (PMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*490784*/        /*Scope*/ 43, /*->490828*/
/*490785*/          OPC_CheckType, MVT::v16i8,
/*490787*/          OPC_MoveParent,
/*490788*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->490808
/*490791*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490793*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490796*/            OPC_EmitMergeInputChains1_0,
/*490797*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (PMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490808*/          /*SwitchType*/ 17, MVT::v2i64,// ->490827
/*490810*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490812*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490815*/            OPC_EmitMergeInputChains1_0,
/*490816*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (PMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490827*/          0, // EndSwitchType
/*490828*/        /*Scope*/ 43, /*->490872*/
/*490829*/          OPC_CheckType, MVT::v8i16,
/*490831*/          OPC_MoveParent,
/*490832*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->490852
/*490835*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490837*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490840*/            OPC_EmitMergeInputChains1_0,
/*490841*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (PMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490852*/          /*SwitchType*/ 17, MVT::v2i64,// ->490871
/*490854*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490856*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490859*/            OPC_EmitMergeInputChains1_0,
/*490860*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (PMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490871*/          0, // EndSwitchType
/*490872*/        /*Scope*/ 22, /*->490895*/
/*490873*/          OPC_CheckType, MVT::v4i32,
/*490875*/          OPC_MoveParent,
/*490876*/          OPC_CheckType, MVT::v2i64,
/*490878*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490880*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490883*/          OPC_EmitMergeInputChains1_0,
/*490884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (PMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490895*/        /*Scope*/ 20, /*->490916*/
/*490896*/          OPC_MoveParent,
/*490897*/          OPC_CheckType, MVT::v8i16,
/*490899*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*490901*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490904*/          OPC_EmitMergeInputChains1_0,
/*490905*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMOVZXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*490916*/        /*Scope*/ 43, /*->490960*/
/*490917*/          OPC_CheckType, MVT::v16i8,
/*490919*/          OPC_MoveParent,
/*490920*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->490940
/*490923*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*490925*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490928*/            OPC_EmitMergeInputChains1_0,
/*490929*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVZXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490940*/          /*SwitchType*/ 17, MVT::v2i64,// ->490959
/*490942*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*490944*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490947*/            OPC_EmitMergeInputChains1_0,
/*490948*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVZXBQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*490959*/          0, // EndSwitchType
/*490960*/        /*Scope*/ 43, /*->491004*/
/*490961*/          OPC_CheckType, MVT::v8i16,
/*490963*/          OPC_MoveParent,
/*490964*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->490984
/*490967*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*490969*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490972*/            OPC_EmitMergeInputChains1_0,
/*490973*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVZXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*490984*/          /*SwitchType*/ 17, MVT::v2i64,// ->491003
/*490986*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*490988*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*490991*/            OPC_EmitMergeInputChains1_0,
/*490992*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMOVZXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*491003*/          0, // EndSwitchType
/*491004*/        /*Scope*/ 22, /*->491027*/
/*491005*/          OPC_CheckType, MVT::v4i32,
/*491007*/          OPC_MoveParent,
/*491008*/          OPC_CheckType, MVT::v2i64,
/*491010*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*491012*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491015*/          OPC_EmitMergeInputChains1_0,
/*491016*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMOVZXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*491027*/        0, /*End of Scope*/
/*491028*/      /*SwitchOpcode*/ 21|128,3/*405*/, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->491437
/*491032*/        OPC_RecordMemRef,
/*491033*/        OPC_RecordNode, // #0 = 'X86vzload' chained node
/*491034*/        OPC_CheckFoldableChainNode,
/*491035*/        OPC_RecordChild1, // #1 = $src
/*491036*/        OPC_CheckType, MVT::v2i64,
/*491038*/        OPC_MoveParent,
/*491039*/        OPC_Scope, 20, /*->491061*/ // 12 children in Scope
/*491041*/          OPC_MoveParent,
/*491042*/          OPC_CheckType, MVT::v8i16,
/*491044*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491046*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491049*/          OPC_EmitMergeInputChains1_0,
/*491050*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (VPMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*491061*/        /*Scope*/ 43, /*->491105*/
/*491062*/          OPC_CheckType, MVT::v16i8,
/*491064*/          OPC_MoveParent,
/*491065*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->491085
/*491068*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*491070*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491073*/            OPC_EmitMergeInputChains1_0,
/*491074*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*491085*/          /*SwitchType*/ 17, MVT::v2i64,// ->491104
/*491087*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*491089*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491092*/            OPC_EmitMergeInputChains1_0,
/*491093*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*491104*/          0, // EndSwitchType
/*491105*/        /*Scope*/ 43, /*->491149*/
/*491106*/          OPC_CheckType, MVT::v8i16,
/*491108*/          OPC_MoveParent,
/*491109*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->491129
/*491112*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*491114*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491117*/            OPC_EmitMergeInputChains1_0,
/*491118*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*491129*/          /*SwitchType*/ 17, MVT::v2i64,// ->491148
/*491131*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*491133*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491136*/            OPC_EmitMergeInputChains1_0,
/*491137*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*491148*/          0, // EndSwitchType
/*491149*/        /*Scope*/ 22, /*->491172*/
/*491150*/          OPC_CheckType, MVT::v4i32,
/*491152*/          OPC_MoveParent,
/*491153*/          OPC_CheckType, MVT::v2i64,
/*491155*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*491157*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491160*/          OPC_EmitMergeInputChains1_0,
/*491161*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (VPMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*491172*/        /*Scope*/ 20, /*->491193*/
/*491173*/          OPC_MoveParent,
/*491174*/          OPC_CheckType, MVT::v8i16,
/*491176*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491178*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491181*/          OPC_EmitMergeInputChains1_0,
/*491182*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (PMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*491193*/        /*Scope*/ 43, /*->491237*/
/*491194*/          OPC_CheckType, MVT::v16i8,
/*491196*/          OPC_MoveParent,
/*491197*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->491217
/*491200*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491202*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491205*/            OPC_EmitMergeInputChains1_0,
/*491206*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (PMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*491217*/          /*SwitchType*/ 17, MVT::v2i64,// ->491236
/*491219*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491221*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491224*/            OPC_EmitMergeInputChains1_0,
/*491225*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (PMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*491236*/          0, // EndSwitchType
/*491237*/        /*Scope*/ 43, /*->491281*/
/*491238*/          OPC_CheckType, MVT::v8i16,
/*491240*/          OPC_MoveParent,
/*491241*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->491261
/*491244*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491246*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491249*/            OPC_EmitMergeInputChains1_0,
/*491250*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (PMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*491261*/          /*SwitchType*/ 17, MVT::v2i64,// ->491280
/*491263*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491265*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491268*/            OPC_EmitMergeInputChains1_0,
/*491269*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (PMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*491280*/          0, // EndSwitchType
/*491281*/        /*Scope*/ 22, /*->491304*/
/*491282*/          OPC_CheckType, MVT::v4i32,
/*491284*/          OPC_MoveParent,
/*491285*/          OPC_CheckType, MVT::v2i64,
/*491287*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491289*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491292*/          OPC_EmitMergeInputChains1_0,
/*491293*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (PMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*491304*/        /*Scope*/ 20, /*->491325*/
/*491305*/          OPC_MoveParent,
/*491306*/          OPC_CheckType, MVT::v8i16,
/*491308*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491310*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491313*/          OPC_EmitMergeInputChains1_0,
/*491314*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v8i16] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (VPMOVZXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*491325*/        /*Scope*/ 43, /*->491369*/
/*491326*/          OPC_CheckType, MVT::v16i8,
/*491328*/          OPC_MoveParent,
/*491329*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->491349
/*491332*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*491334*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491337*/            OPC_EmitMergeInputChains1_0,
/*491338*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVZXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*491349*/          /*SwitchType*/ 17, MVT::v2i64,// ->491368
/*491351*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*491353*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491356*/            OPC_EmitMergeInputChains1_0,
/*491357*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVZXBQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*491368*/          0, // EndSwitchType
/*491369*/        /*Scope*/ 43, /*->491413*/
/*491370*/          OPC_CheckType, MVT::v8i16,
/*491372*/          OPC_MoveParent,
/*491373*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->491393
/*491376*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*491378*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491381*/            OPC_EmitMergeInputChains1_0,
/*491382*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVZXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*491393*/          /*SwitchType*/ 17, MVT::v2i64,// ->491412
/*491395*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*491397*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491400*/            OPC_EmitMergeInputChains1_0,
/*491401*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VPMOVZXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*491412*/          0, // EndSwitchType
/*491413*/        /*Scope*/ 22, /*->491436*/
/*491414*/          OPC_CheckType, MVT::v4i32,
/*491416*/          OPC_MoveParent,
/*491417*/          OPC_CheckType, MVT::v2i64,
/*491419*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*491421*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*491424*/          OPC_EmitMergeInputChains1_0,
/*491425*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v2i64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (VPMOVZXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*491436*/        0, /*End of Scope*/
/*491437*/      0, // EndSwitchOpcode
/*491438*/    /*Scope*/ 92|128,1/*220*/, /*->491660*/
/*491440*/      OPC_RecordChild0, // #0 = $src
/*491441*/      OPC_SwitchType /*3 cases */, 32, MVT::v8i16,// ->491476
/*491444*/        OPC_Scope, 9, /*->491455*/ // 3 children in Scope
/*491446*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491448*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWrr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (zext_invec:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
/*491455*/        /*Scope*/ 9, /*->491465*/
/*491456*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491458*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBWrr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (zext_invec:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (PMOVZXBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
/*491465*/        /*Scope*/ 9, /*->491475*/
/*491466*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491468*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ128rr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (zext_invec:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXBWZ128rr:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src)
/*491475*/        0, /*End of Scope*/
/*491476*/      /*SwitchType*/ 72, MVT::v4i32,// ->491550
/*491478*/        OPC_Scope, 34, /*->491514*/ // 2 children in Scope
/*491480*/          OPC_CheckChild0Type, MVT::v16i8,
/*491482*/          OPC_Scope, 9, /*->491493*/ // 3 children in Scope
/*491484*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*491486*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBDrr:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src)
/*491493*/          /*Scope*/ 9, /*->491503*/
/*491494*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491496*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBDrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (PMOVZXBDrr:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src)
/*491503*/          /*Scope*/ 9, /*->491513*/
/*491504*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*491506*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ128rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v4i32] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBDZ128rr:{ *:[v4i32] } VR128X:{ *:[v16i8] }:$src)
/*491513*/          0, /*End of Scope*/
/*491514*/        /*Scope*/ 34, /*->491549*/
/*491515*/          OPC_CheckChild0Type, MVT::v8i16,
/*491517*/          OPC_Scope, 9, /*->491528*/ // 3 children in Scope
/*491519*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*491521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
/*491528*/          /*Scope*/ 9, /*->491538*/
/*491529*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491531*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWDrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (PMOVZXWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
/*491538*/          /*Scope*/ 9, /*->491548*/
/*491539*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*491541*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ128rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWDZ128rr:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src)
/*491548*/          0, /*End of Scope*/
/*491549*/        0, /*End of Scope*/
/*491550*/      /*SwitchType*/ 107, MVT::v2i64,// ->491659
/*491552*/        OPC_Scope, 34, /*->491588*/ // 3 children in Scope
/*491554*/          OPC_CheckChild0Type, MVT::v16i8,
/*491556*/          OPC_Scope, 9, /*->491567*/ // 3 children in Scope
/*491558*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*491560*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBQrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src)
/*491567*/          /*Scope*/ 9, /*->491577*/
/*491568*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491570*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (PMOVZXBQrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src)
/*491577*/          /*Scope*/ 9, /*->491587*/
/*491578*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*491580*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ128rr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBQZ128rr:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src)
/*491587*/          0, /*End of Scope*/
/*491588*/        /*Scope*/ 34, /*->491623*/
/*491589*/          OPC_CheckChild0Type, MVT::v8i16,
/*491591*/          OPC_Scope, 9, /*->491602*/ // 3 children in Scope
/*491593*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*491595*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWQrr:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src)
/*491602*/          /*Scope*/ 9, /*->491612*/
/*491603*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491605*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (PMOVZXWQrr:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src)
/*491612*/          /*Scope*/ 9, /*->491622*/
/*491613*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*491615*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ128rr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v2i64] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWQZ128rr:{ *:[v2i64] } VR128X:{ *:[v8i16] }:$src)
/*491622*/          0, /*End of Scope*/
/*491623*/        /*Scope*/ 34, /*->491658*/
/*491624*/          OPC_CheckChild0Type, MVT::v4i32,
/*491626*/          OPC_Scope, 9, /*->491637*/ // 3 children in Scope
/*491628*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*491630*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
/*491637*/          /*Scope*/ 9, /*->491647*/
/*491638*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491640*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXDQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (PMOVZXDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
/*491647*/          /*Scope*/ 9, /*->491657*/
/*491648*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*491650*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ128rr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v2i64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v4i32] }:$src)
/*491657*/          0, /*End of Scope*/
/*491658*/        0, /*End of Scope*/
/*491659*/      0, // EndSwitchType
/*491660*/    0, /*End of Scope*/
/*491661*/  /*SwitchOpcode*/ 118|128,4/*630*/, TARGET_VAL(X86ISD::VALIGN),// ->492295
/*491665*/    OPC_RecordChild0, // #0 = $src1
/*491666*/    OPC_Scope, 13|128,4/*525*/, /*->492194*/ // 2 children in Scope
/*491669*/      OPC_MoveChild1,
/*491670*/      OPC_SwitchOpcode /*3 cases */, 117|128,1/*245*/, TARGET_VAL(ISD::BITCAST),// ->491920
/*491675*/        OPC_MoveChild0,
/*491676*/        OPC_SwitchOpcode /*2 cases */, 125, TARGET_VAL(X86ISD::VBROADCAST),// ->491805
/*491680*/          OPC_MoveChild0,
/*491681*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*491684*/          OPC_RecordMemRef,
/*491685*/          OPC_RecordNode, // #1 = 'ld' chained node
/*491686*/          OPC_CheckFoldableChainNode,
/*491687*/          OPC_RecordChild1, // #2 = $src2
/*491688*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*491690*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*491692*/          OPC_CheckType, MVT::i32,
/*491694*/          OPC_MoveParent,
/*491695*/          OPC_SwitchType /*3 cases */, 34, MVT::v16i32,// ->491732
/*491698*/            OPC_MoveParent,
/*491699*/            OPC_MoveParent,
/*491700*/            OPC_RecordChild2, // #3 = $src3
/*491701*/            OPC_MoveChild2,
/*491702*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*491705*/            OPC_MoveParent,
/*491706*/            OPC_CheckType, MVT::v8i64,
/*491708*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*491710*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*491713*/            OPC_EmitMergeInputChains1_1,
/*491714*/            OPC_EmitConvertToTarget, 3,
/*491716*/            OPC_EmitNodeXForm, 14, 9, // ValignqImm32XForm
/*491719*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 10, 
                      // Src: (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (imm:{ *:[i8] }):$src3) - Complexity = 34
                      // Dst: (VALIGNDZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*491732*/          /*SwitchType*/ 34, MVT::v4i32,// ->491768
/*491734*/            OPC_MoveParent,
/*491735*/            OPC_MoveParent,
/*491736*/            OPC_RecordChild2, // #3 = $src3
/*491737*/            OPC_MoveChild2,
/*491738*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*491741*/            OPC_MoveParent,
/*491742*/            OPC_CheckType, MVT::v2i64,
/*491744*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*491746*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*491749*/            OPC_EmitMergeInputChains1_1,
/*491750*/            OPC_EmitConvertToTarget, 3,
/*491752*/            OPC_EmitNodeXForm, 14, 9, // ValignqImm32XForm
/*491755*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 10, 
                      // Src: (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (imm:{ *:[i8] }):$src3) - Complexity = 34
                      // Dst: (VALIGNDZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*491768*/          /*SwitchType*/ 34, MVT::v8i32,// ->491804
/*491770*/            OPC_MoveParent,
/*491771*/            OPC_MoveParent,
/*491772*/            OPC_RecordChild2, // #3 = $src3
/*491773*/            OPC_MoveChild2,
/*491774*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*491777*/            OPC_MoveParent,
/*491778*/            OPC_CheckType, MVT::v4i64,
/*491780*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*491782*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*491785*/            OPC_EmitMergeInputChains1_1,
/*491786*/            OPC_EmitConvertToTarget, 3,
/*491788*/            OPC_EmitNodeXForm, 14, 9, // ValignqImm32XForm
/*491791*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 10, 
                      // Src: (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)), (imm:{ *:[i8] }):$src3) - Complexity = 34
                      // Dst: (VALIGNDZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*491804*/          0, // EndSwitchType
/*491805*/        /*SwitchOpcode*/ 111, TARGET_VAL(ISD::LOAD),// ->491919
/*491808*/          OPC_RecordMemRef,
/*491809*/          OPC_RecordNode, // #1 = 'ld' chained node
/*491810*/          OPC_CheckFoldableChainNode,
/*491811*/          OPC_RecordChild1, // #2 = $src2
/*491812*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*491814*/          OPC_CheckPredicate, 9, // Predicate_load
/*491816*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*491818*/          OPC_SwitchType /*3 cases */, 31, MVT::v8i64,// ->491852
/*491821*/            OPC_MoveParent,
/*491822*/            OPC_MoveParent,
/*491823*/            OPC_RecordChild2, // #3 = $src3
/*491824*/            OPC_MoveChild2,
/*491825*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*491828*/            OPC_MoveParent,
/*491829*/            OPC_CheckType, MVT::v16i32,
/*491831*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*491833*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*491836*/            OPC_EmitMergeInputChains1_1,
/*491837*/            OPC_EmitConvertToTarget, 3,
/*491839*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VALIGNDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*491852*/          /*SwitchType*/ 31, MVT::v2i64,// ->491885
/*491854*/            OPC_MoveParent,
/*491855*/            OPC_MoveParent,
/*491856*/            OPC_RecordChild2, // #3 = $src3
/*491857*/            OPC_MoveChild2,
/*491858*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*491861*/            OPC_MoveParent,
/*491862*/            OPC_CheckType, MVT::v4i32,
/*491864*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*491866*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*491869*/            OPC_EmitMergeInputChains1_1,
/*491870*/            OPC_EmitConvertToTarget, 3,
/*491872*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VALIGNDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*491885*/          /*SwitchType*/ 31, MVT::v4i64,// ->491918
/*491887*/            OPC_MoveParent,
/*491888*/            OPC_MoveParent,
/*491889*/            OPC_RecordChild2, // #3 = $src3
/*491890*/            OPC_MoveChild2,
/*491891*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*491894*/            OPC_MoveParent,
/*491895*/            OPC_CheckType, MVT::v8i32,
/*491897*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*491899*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*491902*/            OPC_EmitMergeInputChains1_1,
/*491903*/            OPC_EmitConvertToTarget, 3,
/*491905*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VALIGNDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*491918*/          0, // EndSwitchType
/*491919*/        0, // EndSwitchOpcode
/*491920*/      /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::VBROADCAST),// ->492102
/*491924*/        OPC_MoveChild0,
/*491925*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*491928*/        OPC_RecordMemRef,
/*491929*/        OPC_RecordNode, // #1 = 'ld' chained node
/*491930*/        OPC_CheckFoldableChainNode,
/*491931*/        OPC_RecordChild1, // #2 = $src2
/*491932*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*491934*/        OPC_SwitchType /*2 cases */, 81, MVT::i32,// ->492018
/*491937*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*491939*/          OPC_MoveParent,
/*491940*/          OPC_MoveParent,
/*491941*/          OPC_RecordChild2, // #3 = $src3
/*491942*/          OPC_MoveChild2,
/*491943*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*491946*/          OPC_MoveParent,
/*491947*/          OPC_SwitchType /*3 cases */, 21, MVT::v16i32,// ->491971
/*491950*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*491952*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*491955*/            OPC_EmitMergeInputChains1_1,
/*491956*/            OPC_EmitConvertToTarget, 3,
/*491958*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VALIGNDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*491971*/          /*SwitchType*/ 21, MVT::v4i32,// ->491994
/*491973*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*491975*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*491978*/            OPC_EmitMergeInputChains1_1,
/*491979*/            OPC_EmitConvertToTarget, 3,
/*491981*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VALIGNDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*491994*/          /*SwitchType*/ 21, MVT::v8i32,// ->492017
/*491996*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*491998*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492001*/            OPC_EmitMergeInputChains1_1,
/*492002*/            OPC_EmitConvertToTarget, 3,
/*492004*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VALIGNDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492017*/          0, // EndSwitchType
/*492018*/        /*SwitchType*/ 81, MVT::i64,// ->492101
/*492020*/          OPC_CheckPredicate, 9, // Predicate_load
/*492022*/          OPC_MoveParent,
/*492023*/          OPC_MoveParent,
/*492024*/          OPC_RecordChild2, // #3 = $src3
/*492025*/          OPC_MoveChild2,
/*492026*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492029*/          OPC_MoveParent,
/*492030*/          OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->492054
/*492033*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*492035*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492038*/            OPC_EmitMergeInputChains1_1,
/*492039*/            OPC_EmitConvertToTarget, 3,
/*492041*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VALIGNQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492054*/          /*SwitchType*/ 21, MVT::v2i64,// ->492077
/*492056*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492058*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492061*/            OPC_EmitMergeInputChains1_1,
/*492062*/            OPC_EmitConvertToTarget, 3,
/*492064*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VALIGNQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492077*/          /*SwitchType*/ 21, MVT::v4i64,// ->492100
/*492079*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492081*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492084*/            OPC_EmitMergeInputChains1_1,
/*492085*/            OPC_EmitConvertToTarget, 3,
/*492087*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VALIGNQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492100*/          0, // EndSwitchType
/*492101*/        0, // EndSwitchType
/*492102*/      /*SwitchOpcode*/ 88, TARGET_VAL(ISD::LOAD),// ->492193
/*492105*/        OPC_RecordMemRef,
/*492106*/        OPC_RecordNode, // #1 = 'ld' chained node
/*492107*/        OPC_CheckFoldableChainNode,
/*492108*/        OPC_RecordChild1, // #2 = $src2
/*492109*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492111*/        OPC_CheckPredicate, 9, // Predicate_load
/*492113*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*492115*/        OPC_MoveParent,
/*492116*/        OPC_RecordChild2, // #3 = $src3
/*492117*/        OPC_MoveChild2,
/*492118*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492121*/        OPC_MoveParent,
/*492122*/        OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->492146
/*492125*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*492127*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492130*/          OPC_EmitMergeInputChains1_1,
/*492131*/          OPC_EmitConvertToTarget, 3,
/*492133*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VALIGNQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492146*/        /*SwitchType*/ 21, MVT::v2i64,// ->492169
/*492148*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492150*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492153*/          OPC_EmitMergeInputChains1_1,
/*492154*/          OPC_EmitConvertToTarget, 3,
/*492156*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VALIGNQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492169*/        /*SwitchType*/ 21, MVT::v4i64,// ->492192
/*492171*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492173*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492176*/          OPC_EmitMergeInputChains1_1,
/*492177*/          OPC_EmitConvertToTarget, 3,
/*492179*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VALIGNQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492192*/        0, // EndSwitchType
/*492193*/      0, // EndSwitchOpcode
/*492194*/    /*Scope*/ 99, /*->492294*/
/*492195*/      OPC_RecordChild1, // #1 = $src2
/*492196*/      OPC_RecordChild2, // #2 = $src3
/*492197*/      OPC_MoveChild2,
/*492198*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492201*/      OPC_MoveParent,
/*492202*/      OPC_SwitchType /*6 cases */, 13, MVT::v16i32,// ->492218
/*492205*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*492207*/        OPC_EmitConvertToTarget, 2,
/*492209*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrri), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNDZrri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*492218*/      /*SwitchType*/ 13, MVT::v4i32,// ->492233
/*492220*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492222*/        OPC_EmitConvertToTarget, 2,
/*492224*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNDZ128rri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*492233*/      /*SwitchType*/ 13, MVT::v8i32,// ->492248
/*492235*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492237*/        OPC_EmitConvertToTarget, 2,
/*492239*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rri), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNDZ256rri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*492248*/      /*SwitchType*/ 13, MVT::v8i64,// ->492263
/*492250*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*492252*/        OPC_EmitConvertToTarget, 2,
/*492254*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrri), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*492263*/      /*SwitchType*/ 13, MVT::v2i64,// ->492278
/*492265*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492267*/        OPC_EmitConvertToTarget, 2,
/*492269*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rri), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*492278*/      /*SwitchType*/ 13, MVT::v4i64,// ->492293
/*492280*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492282*/        OPC_EmitConvertToTarget, 2,
/*492284*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rri), 0,
                      MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*492293*/      0, // EndSwitchType
/*492294*/    0, /*End of Scope*/
/*492295*/  /*SwitchOpcode*/ 37|128,3/*421*/, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->492720
/*492299*/    OPC_RecordChild0, // #0 = $src1
/*492300*/    OPC_Scope, 57|128,2/*313*/, /*->492616*/ // 2 children in Scope
/*492303*/      OPC_MoveChild1,
/*492304*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*492307*/      OPC_MoveChild0,
/*492308*/      OPC_SwitchOpcode /*2 cases */, 116, TARGET_VAL(X86ISD::VBROADCAST),// ->492428
/*492312*/        OPC_MoveChild0,
/*492313*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*492316*/        OPC_RecordMemRef,
/*492317*/        OPC_RecordNode, // #1 = 'ld' chained node
/*492318*/        OPC_CheckFoldableChainNode,
/*492319*/        OPC_RecordChild1, // #2 = $src2
/*492320*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492322*/        OPC_CheckPredicate, 9, // Predicate_load
/*492324*/        OPC_CheckType, MVT::i64,
/*492326*/        OPC_MoveParent,
/*492327*/        OPC_SwitchType /*3 cases */, 31, MVT::v8i64,// ->492361
/*492330*/          OPC_MoveParent,
/*492331*/          OPC_MoveParent,
/*492332*/          OPC_RecordChild2, // #3 = $src3
/*492333*/          OPC_MoveChild2,
/*492334*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492337*/          OPC_MoveParent,
/*492338*/          OPC_CheckType, MVT::v64i8,
/*492340*/          OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*492342*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492345*/          OPC_EmitMergeInputChains1_1,
/*492346*/          OPC_EmitConvertToTarget, 3,
/*492348*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3) - Complexity = 34
                    // Dst: (VGF2P8AFFINEINVQBZrmbi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492361*/        /*SwitchType*/ 31, MVT::v4i64,// ->492394
/*492363*/          OPC_MoveParent,
/*492364*/          OPC_MoveParent,
/*492365*/          OPC_RecordChild2, // #3 = $src3
/*492366*/          OPC_MoveChild2,
/*492367*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492370*/          OPC_MoveParent,
/*492371*/          OPC_CheckType, MVT::v32i8,
/*492373*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*492375*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492378*/          OPC_EmitMergeInputChains1_1,
/*492379*/          OPC_EmitConvertToTarget, 3,
/*492381*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3) - Complexity = 34
                    // Dst: (VGF2P8AFFINEINVQBZ256rmbi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492394*/        /*SwitchType*/ 31, MVT::v2i64,// ->492427
/*492396*/          OPC_MoveParent,
/*492397*/          OPC_MoveParent,
/*492398*/          OPC_RecordChild2, // #3 = $src3
/*492399*/          OPC_MoveChild2,
/*492400*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492403*/          OPC_MoveParent,
/*492404*/          OPC_CheckType, MVT::v16i8,
/*492406*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*492408*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492411*/          OPC_EmitMergeInputChains1_1,
/*492412*/          OPC_EmitConvertToTarget, 3,
/*492414*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3) - Complexity = 34
                    // Dst: (VGF2P8AFFINEINVQBZ128rmbi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492427*/        0, // EndSwitchType
/*492428*/      /*SwitchOpcode*/ 55|128,1/*183*/, TARGET_VAL(ISD::LOAD),// ->492615
/*492432*/        OPC_RecordMemRef,
/*492433*/        OPC_RecordNode, // #1 = 'ld' chained node
/*492434*/        OPC_CheckFoldableChainNode,
/*492435*/        OPC_RecordChild1, // #2 = $src2
/*492436*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492438*/        OPC_CheckPredicate, 9, // Predicate_load
/*492440*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*492442*/        OPC_SwitchType /*3 cases */, 78, MVT::v2i64,// ->492523
/*492445*/          OPC_MoveParent,
/*492446*/          OPC_MoveParent,
/*492447*/          OPC_RecordChild2, // #3 = $src3
/*492448*/          OPC_MoveChild2,
/*492449*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492452*/          OPC_MoveParent,
/*492453*/          OPC_CheckType, MVT::v16i8,
/*492455*/          OPC_Scope, 21, /*->492478*/ // 3 children in Scope
/*492457*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*492459*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492462*/            OPC_EmitMergeInputChains1_1,
/*492463*/            OPC_EmitConvertToTarget, 3,
/*492465*/            OPC_MorphNodeTo1, TARGET_VAL(X86::GF2P8AFFINEINVQBrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (GF2P8AFFINEINVQBrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492478*/          /*Scope*/ 21, /*->492500*/
/*492479*/            OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*492481*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492484*/            OPC_EmitMergeInputChains1_1,
/*492485*/            OPC_EmitConvertToTarget, 3,
/*492487*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VGF2P8AFFINEINVQBrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492500*/          /*Scope*/ 21, /*->492522*/
/*492501*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*492503*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492506*/            OPC_EmitMergeInputChains1_1,
/*492507*/            OPC_EmitConvertToTarget, 3,
/*492509*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VGF2P8AFFINEINVQBZ128rmi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492522*/          0, /*End of Scope*/
/*492523*/        /*SwitchType*/ 56, MVT::v4i64,// ->492581
/*492525*/          OPC_MoveParent,
/*492526*/          OPC_MoveParent,
/*492527*/          OPC_RecordChild2, // #3 = $src3
/*492528*/          OPC_MoveChild2,
/*492529*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492532*/          OPC_MoveParent,
/*492533*/          OPC_CheckType, MVT::v32i8,
/*492535*/          OPC_Scope, 21, /*->492558*/ // 2 children in Scope
/*492537*/            OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*492539*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492542*/            OPC_EmitMergeInputChains1_1,
/*492543*/            OPC_EmitConvertToTarget, 3,
/*492545*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86GF2P8affineinvqb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VGF2P8AFFINEINVQBYrmi:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492558*/          /*Scope*/ 21, /*->492580*/
/*492559*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*492561*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492564*/            OPC_EmitMergeInputChains1_1,
/*492565*/            OPC_EmitConvertToTarget, 3,
/*492567*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VGF2P8AFFINEINVQBZ256rmi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492580*/          0, /*End of Scope*/
/*492581*/        /*SwitchType*/ 31, MVT::v8i64,// ->492614
/*492583*/          OPC_MoveParent,
/*492584*/          OPC_MoveParent,
/*492585*/          OPC_RecordChild2, // #3 = $src3
/*492586*/          OPC_MoveChild2,
/*492587*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492590*/          OPC_MoveParent,
/*492591*/          OPC_CheckType, MVT::v64i8,
/*492593*/          OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*492595*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492598*/          OPC_EmitMergeInputChains1_1,
/*492599*/          OPC_EmitConvertToTarget, 3,
/*492601*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VGF2P8AFFINEINVQBZrmi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492614*/        0, // EndSwitchType
/*492615*/      0, // EndSwitchOpcode
/*492616*/    /*Scope*/ 102, /*->492719*/
/*492617*/      OPC_RecordChild1, // #1 = $src2
/*492618*/      OPC_RecordChild2, // #2 = $src3
/*492619*/      OPC_MoveChild2,
/*492620*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492623*/      OPC_MoveParent,
/*492624*/      OPC_SwitchType /*3 cases */, 44, MVT::v16i8,// ->492671
/*492627*/        OPC_Scope, 13, /*->492642*/ // 3 children in Scope
/*492629*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*492631*/          OPC_EmitConvertToTarget, 2,
/*492633*/          OPC_MorphNodeTo1, TARGET_VAL(X86::GF2P8AFFINEINVQBrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (GF2P8AFFINEINVQBrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*492642*/        /*Scope*/ 13, /*->492656*/
/*492643*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*492645*/          OPC_EmitConvertToTarget, 2,
/*492647*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEINVQBrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*492656*/        /*Scope*/ 13, /*->492670*/
/*492657*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*492659*/          OPC_EmitConvertToTarget, 2,
/*492661*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEINVQBZ128rri:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*492670*/        0, /*End of Scope*/
/*492671*/      /*SwitchType*/ 30, MVT::v32i8,// ->492703
/*492673*/        OPC_Scope, 13, /*->492688*/ // 2 children in Scope
/*492675*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*492677*/          OPC_EmitConvertToTarget, 2,
/*492679*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBYrri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEINVQBYrri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*492688*/        /*Scope*/ 13, /*->492702*/
/*492689*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*492691*/          OPC_EmitConvertToTarget, 2,
/*492693*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEINVQBZ256rri:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*492702*/        0, /*End of Scope*/
/*492703*/      /*SwitchType*/ 13, MVT::v64i8,// ->492718
/*492705*/        OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*492707*/        OPC_EmitConvertToTarget, 2,
/*492709*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrri), 0,
                      MVT::v64i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VGF2P8AFFINEINVQBZrri:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*492718*/      0, // EndSwitchType
/*492719*/    0, /*End of Scope*/
/*492720*/  /*SwitchOpcode*/ 37|128,3/*421*/, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->493145
/*492724*/    OPC_RecordChild0, // #0 = $src1
/*492725*/    OPC_Scope, 57|128,2/*313*/, /*->493041*/ // 2 children in Scope
/*492728*/      OPC_MoveChild1,
/*492729*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*492732*/      OPC_MoveChild0,
/*492733*/      OPC_SwitchOpcode /*2 cases */, 116, TARGET_VAL(X86ISD::VBROADCAST),// ->492853
/*492737*/        OPC_MoveChild0,
/*492738*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*492741*/        OPC_RecordMemRef,
/*492742*/        OPC_RecordNode, // #1 = 'ld' chained node
/*492743*/        OPC_CheckFoldableChainNode,
/*492744*/        OPC_RecordChild1, // #2 = $src2
/*492745*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492747*/        OPC_CheckPredicate, 9, // Predicate_load
/*492749*/        OPC_CheckType, MVT::i64,
/*492751*/        OPC_MoveParent,
/*492752*/        OPC_SwitchType /*3 cases */, 31, MVT::v8i64,// ->492786
/*492755*/          OPC_MoveParent,
/*492756*/          OPC_MoveParent,
/*492757*/          OPC_RecordChild2, // #3 = $src3
/*492758*/          OPC_MoveChild2,
/*492759*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492762*/          OPC_MoveParent,
/*492763*/          OPC_CheckType, MVT::v64i8,
/*492765*/          OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*492767*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492770*/          OPC_EmitMergeInputChains1_1,
/*492771*/          OPC_EmitConvertToTarget, 3,
/*492773*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3) - Complexity = 34
                    // Dst: (VGF2P8AFFINEQBZrmbi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492786*/        /*SwitchType*/ 31, MVT::v4i64,// ->492819
/*492788*/          OPC_MoveParent,
/*492789*/          OPC_MoveParent,
/*492790*/          OPC_RecordChild2, // #3 = $src3
/*492791*/          OPC_MoveChild2,
/*492792*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492795*/          OPC_MoveParent,
/*492796*/          OPC_CheckType, MVT::v32i8,
/*492798*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*492800*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492803*/          OPC_EmitMergeInputChains1_1,
/*492804*/          OPC_EmitConvertToTarget, 3,
/*492806*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3) - Complexity = 34
                    // Dst: (VGF2P8AFFINEQBZ256rmbi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492819*/        /*SwitchType*/ 31, MVT::v2i64,// ->492852
/*492821*/          OPC_MoveParent,
/*492822*/          OPC_MoveParent,
/*492823*/          OPC_RecordChild2, // #3 = $src3
/*492824*/          OPC_MoveChild2,
/*492825*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492828*/          OPC_MoveParent,
/*492829*/          OPC_CheckType, MVT::v16i8,
/*492831*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*492833*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492836*/          OPC_EmitMergeInputChains1_1,
/*492837*/          OPC_EmitConvertToTarget, 3,
/*492839*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (imm:{ *:[i8] }):$src3) - Complexity = 34
                    // Dst: (VGF2P8AFFINEQBZ128rmbi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492852*/        0, // EndSwitchType
/*492853*/      /*SwitchOpcode*/ 55|128,1/*183*/, TARGET_VAL(ISD::LOAD),// ->493040
/*492857*/        OPC_RecordMemRef,
/*492858*/        OPC_RecordNode, // #1 = 'ld' chained node
/*492859*/        OPC_CheckFoldableChainNode,
/*492860*/        OPC_RecordChild1, // #2 = $src2
/*492861*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492863*/        OPC_CheckPredicate, 9, // Predicate_load
/*492865*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*492867*/        OPC_SwitchType /*3 cases */, 78, MVT::v2i64,// ->492948
/*492870*/          OPC_MoveParent,
/*492871*/          OPC_MoveParent,
/*492872*/          OPC_RecordChild2, // #3 = $src3
/*492873*/          OPC_MoveChild2,
/*492874*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492877*/          OPC_MoveParent,
/*492878*/          OPC_CheckType, MVT::v16i8,
/*492880*/          OPC_Scope, 21, /*->492903*/ // 3 children in Scope
/*492882*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*492884*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492887*/            OPC_EmitMergeInputChains1_1,
/*492888*/            OPC_EmitConvertToTarget, 3,
/*492890*/            OPC_MorphNodeTo1, TARGET_VAL(X86::GF2P8AFFINEQBrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (GF2P8AFFINEQBrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492903*/          /*Scope*/ 21, /*->492925*/
/*492904*/            OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*492906*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492909*/            OPC_EmitMergeInputChains1_1,
/*492910*/            OPC_EmitConvertToTarget, 3,
/*492912*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VGF2P8AFFINEQBrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492925*/          /*Scope*/ 21, /*->492947*/
/*492926*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*492928*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492931*/            OPC_EmitMergeInputChains1_1,
/*492932*/            OPC_EmitConvertToTarget, 3,
/*492934*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VGF2P8AFFINEQBZ128rmi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492947*/          0, /*End of Scope*/
/*492948*/        /*SwitchType*/ 56, MVT::v4i64,// ->493006
/*492950*/          OPC_MoveParent,
/*492951*/          OPC_MoveParent,
/*492952*/          OPC_RecordChild2, // #3 = $src3
/*492953*/          OPC_MoveChild2,
/*492954*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*492957*/          OPC_MoveParent,
/*492958*/          OPC_CheckType, MVT::v32i8,
/*492960*/          OPC_Scope, 21, /*->492983*/ // 2 children in Scope
/*492962*/            OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*492964*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492967*/            OPC_EmitMergeInputChains1_1,
/*492968*/            OPC_EmitConvertToTarget, 3,
/*492970*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86GF2P8affineqb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VGF2P8AFFINEQBYrmi:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*492983*/          /*Scope*/ 21, /*->493005*/
/*492984*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*492986*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*492989*/            OPC_EmitMergeInputChains1_1,
/*492990*/            OPC_EmitConvertToTarget, 3,
/*492992*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VGF2P8AFFINEQBZ256rmi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*493005*/          0, /*End of Scope*/
/*493006*/        /*SwitchType*/ 31, MVT::v8i64,// ->493039
/*493008*/          OPC_MoveParent,
/*493009*/          OPC_MoveParent,
/*493010*/          OPC_RecordChild2, // #3 = $src3
/*493011*/          OPC_MoveChild2,
/*493012*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493015*/          OPC_MoveParent,
/*493016*/          OPC_CheckType, MVT::v64i8,
/*493018*/          OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*493020*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493023*/          OPC_EmitMergeInputChains1_1,
/*493024*/          OPC_EmitConvertToTarget, 3,
/*493026*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VGF2P8AFFINEQBZrmi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*493039*/        0, // EndSwitchType
/*493040*/      0, // EndSwitchOpcode
/*493041*/    /*Scope*/ 102, /*->493144*/
/*493042*/      OPC_RecordChild1, // #1 = $src2
/*493043*/      OPC_RecordChild2, // #2 = $src3
/*493044*/      OPC_MoveChild2,
/*493045*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493048*/      OPC_MoveParent,
/*493049*/      OPC_SwitchType /*3 cases */, 44, MVT::v16i8,// ->493096
/*493052*/        OPC_Scope, 13, /*->493067*/ // 3 children in Scope
/*493054*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*493056*/          OPC_EmitConvertToTarget, 2,
/*493058*/          OPC_MorphNodeTo1, TARGET_VAL(X86::GF2P8AFFINEQBrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (GF2P8AFFINEQBrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*493067*/        /*Scope*/ 13, /*->493081*/
/*493068*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*493070*/          OPC_EmitConvertToTarget, 2,
/*493072*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEQBrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*493081*/        /*Scope*/ 13, /*->493095*/
/*493082*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*493084*/          OPC_EmitConvertToTarget, 2,
/*493086*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEQBZ128rri:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*493095*/        0, /*End of Scope*/
/*493096*/      /*SwitchType*/ 30, MVT::v32i8,// ->493128
/*493098*/        OPC_Scope, 13, /*->493113*/ // 2 children in Scope
/*493100*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*493102*/          OPC_EmitConvertToTarget, 2,
/*493104*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBYrri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86GF2P8affineqb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEQBYrri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*493113*/        /*Scope*/ 13, /*->493127*/
/*493114*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*493116*/          OPC_EmitConvertToTarget, 2,
/*493118*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEQBZ256rri:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*493127*/        0, /*End of Scope*/
/*493128*/      /*SwitchType*/ 13, MVT::v64i8,// ->493143
/*493130*/        OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*493132*/        OPC_EmitConvertToTarget, 2,
/*493134*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrri), 0,
                      MVT::v64i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VGF2P8AFFINEQBZrri:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*493143*/      0, // EndSwitchType
/*493144*/    0, /*End of Scope*/
/*493145*/  /*SwitchOpcode*/ 82|128,11/*1490*/, TARGET_VAL(X86ISD::CMPM),// ->494639
/*493149*/    OPC_Scope, 110|128,1/*238*/, /*->493390*/ // 4 children in Scope
/*493152*/      OPC_MoveChild0,
/*493153*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*493156*/      OPC_MoveChild0,
/*493157*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*493160*/      OPC_RecordMemRef,
/*493161*/      OPC_RecordNode, // #0 = 'ld' chained node
/*493162*/      OPC_CheckFoldableChainNode,
/*493163*/      OPC_RecordChild1, // #1 = $src2
/*493164*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*493166*/      OPC_CheckPredicate, 9, // Predicate_load
/*493168*/      OPC_SwitchType /*2 cases */, 108, MVT::f64,// ->493279
/*493171*/        OPC_MoveParent,
/*493172*/        OPC_SwitchType /*3 cases */, 33, MVT::v8f64,// ->493208
/*493175*/          OPC_MoveParent,
/*493176*/          OPC_RecordChild1, // #2 = $src1
/*493177*/          OPC_RecordChild2, // #3 = $cc
/*493178*/          OPC_MoveChild2,
/*493179*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493182*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493184*/          OPC_MoveParent,
/*493185*/          OPC_CheckType, MVT::v8i1,
/*493187*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493189*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493192*/          OPC_EmitMergeInputChains1_0,
/*493193*/          OPC_EmitConvertToTarget, 3,
/*493195*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 32
                    // Dst: (VCMPPDZrmbi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493208*/        /*SwitchType*/ 33, MVT::v2f64,// ->493243
/*493210*/          OPC_MoveParent,
/*493211*/          OPC_RecordChild1, // #2 = $src1
/*493212*/          OPC_RecordChild2, // #3 = $cc
/*493213*/          OPC_MoveChild2,
/*493214*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493217*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493219*/          OPC_MoveParent,
/*493220*/          OPC_CheckType, MVT::v2i1,
/*493222*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493224*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493227*/          OPC_EmitMergeInputChains1_0,
/*493228*/          OPC_EmitConvertToTarget, 3,
/*493230*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v2i1] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 32
                    // Dst: (VCMPPDZ128rmbi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493243*/        /*SwitchType*/ 33, MVT::v4f64,// ->493278
/*493245*/          OPC_MoveParent,
/*493246*/          OPC_RecordChild1, // #2 = $src1
/*493247*/          OPC_RecordChild2, // #3 = $cc
/*493248*/          OPC_MoveChild2,
/*493249*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493252*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493254*/          OPC_MoveParent,
/*493255*/          OPC_CheckType, MVT::v4i1,
/*493257*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493259*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493262*/          OPC_EmitMergeInputChains1_0,
/*493263*/          OPC_EmitConvertToTarget, 3,
/*493265*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 32
                    // Dst: (VCMPPDZ256rmbi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493278*/        0, // EndSwitchType
/*493279*/      /*SwitchType*/ 108, MVT::f32,// ->493389
/*493281*/        OPC_MoveParent,
/*493282*/        OPC_SwitchType /*3 cases */, 33, MVT::v16f32,// ->493318
/*493285*/          OPC_MoveParent,
/*493286*/          OPC_RecordChild1, // #2 = $src1
/*493287*/          OPC_RecordChild2, // #3 = $cc
/*493288*/          OPC_MoveChild2,
/*493289*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493292*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493294*/          OPC_MoveParent,
/*493295*/          OPC_CheckType, MVT::v16i1,
/*493297*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493299*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493302*/          OPC_EmitMergeInputChains1_0,
/*493303*/          OPC_EmitConvertToTarget, 3,
/*493305*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v16i1] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 32
                    // Dst: (VCMPPSZrmbi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493318*/        /*SwitchType*/ 33, MVT::v4f32,// ->493353
/*493320*/          OPC_MoveParent,
/*493321*/          OPC_RecordChild1, // #2 = $src1
/*493322*/          OPC_RecordChild2, // #3 = $cc
/*493323*/          OPC_MoveChild2,
/*493324*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493327*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493329*/          OPC_MoveParent,
/*493330*/          OPC_CheckType, MVT::v4i1,
/*493332*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493334*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493337*/          OPC_EmitMergeInputChains1_0,
/*493338*/          OPC_EmitConvertToTarget, 3,
/*493340*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 32
                    // Dst: (VCMPPSZ128rmbi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493353*/        /*SwitchType*/ 33, MVT::v8f32,// ->493388
/*493355*/          OPC_MoveParent,
/*493356*/          OPC_RecordChild1, // #2 = $src1
/*493357*/          OPC_RecordChild2, // #3 = $cc
/*493358*/          OPC_MoveChild2,
/*493359*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493362*/          OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493364*/          OPC_MoveParent,
/*493365*/          OPC_CheckType, MVT::v8i1,
/*493367*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493369*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493372*/          OPC_EmitMergeInputChains1_0,
/*493373*/          OPC_EmitConvertToTarget, 3,
/*493375*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 32
                    // Dst: (VCMPPSZ256rmbi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493388*/        0, // EndSwitchType
/*493389*/      0, // EndSwitchType
/*493390*/    /*Scope*/ 59|128,2/*315*/, /*->493707*/
/*493392*/      OPC_RecordChild0, // #0 = $src1
/*493393*/      OPC_Scope, 51, /*->493446*/ // 6 children in Scope
/*493395*/        OPC_CheckChild0Type, MVT::v8f64,
/*493397*/        OPC_MoveChild1,
/*493398*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*493401*/        OPC_MoveChild0,
/*493402*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*493405*/        OPC_RecordMemRef,
/*493406*/        OPC_RecordNode, // #1 = 'ld' chained node
/*493407*/        OPC_CheckFoldableChainNode,
/*493408*/        OPC_RecordChild1, // #2 = $src2
/*493409*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*493411*/        OPC_CheckPredicate, 9, // Predicate_load
/*493413*/        OPC_CheckType, MVT::f64,
/*493415*/        OPC_MoveParent,
/*493416*/        OPC_MoveParent,
/*493417*/        OPC_RecordChild2, // #3 = $cc
/*493418*/        OPC_MoveChild2,
/*493419*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493422*/        OPC_MoveParent,
/*493423*/        OPC_CheckType, MVT::v8i1,
/*493425*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493427*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493430*/        OPC_EmitMergeInputChains1_1,
/*493431*/        OPC_EmitConvertToTarget, 3,
/*493433*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                  // Dst: (VCMPPDZrmbi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493446*/      /*Scope*/ 51, /*->493498*/
/*493447*/        OPC_CheckChild0Type, MVT::v2f64,
/*493449*/        OPC_MoveChild1,
/*493450*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*493453*/        OPC_MoveChild0,
/*493454*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*493457*/        OPC_RecordMemRef,
/*493458*/        OPC_RecordNode, // #1 = 'ld' chained node
/*493459*/        OPC_CheckFoldableChainNode,
/*493460*/        OPC_RecordChild1, // #2 = $src2
/*493461*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*493463*/        OPC_CheckPredicate, 9, // Predicate_load
/*493465*/        OPC_CheckType, MVT::f64,
/*493467*/        OPC_MoveParent,
/*493468*/        OPC_MoveParent,
/*493469*/        OPC_RecordChild2, // #3 = $cc
/*493470*/        OPC_MoveChild2,
/*493471*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493474*/        OPC_MoveParent,
/*493475*/        OPC_CheckType, MVT::v2i1,
/*493477*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493479*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493482*/        OPC_EmitMergeInputChains1_1,
/*493483*/        OPC_EmitConvertToTarget, 3,
/*493485*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                  // Dst: (VCMPPDZ128rmbi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493498*/      /*Scope*/ 51, /*->493550*/
/*493499*/        OPC_CheckChild0Type, MVT::v4f64,
/*493501*/        OPC_MoveChild1,
/*493502*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*493505*/        OPC_MoveChild0,
/*493506*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*493509*/        OPC_RecordMemRef,
/*493510*/        OPC_RecordNode, // #1 = 'ld' chained node
/*493511*/        OPC_CheckFoldableChainNode,
/*493512*/        OPC_RecordChild1, // #2 = $src2
/*493513*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*493515*/        OPC_CheckPredicate, 9, // Predicate_load
/*493517*/        OPC_CheckType, MVT::f64,
/*493519*/        OPC_MoveParent,
/*493520*/        OPC_MoveParent,
/*493521*/        OPC_RecordChild2, // #3 = $cc
/*493522*/        OPC_MoveChild2,
/*493523*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493526*/        OPC_MoveParent,
/*493527*/        OPC_CheckType, MVT::v4i1,
/*493529*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493531*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493534*/        OPC_EmitMergeInputChains1_1,
/*493535*/        OPC_EmitConvertToTarget, 3,
/*493537*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                  // Dst: (VCMPPDZ256rmbi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493550*/      /*Scope*/ 51, /*->493602*/
/*493551*/        OPC_CheckChild0Type, MVT::v16f32,
/*493553*/        OPC_MoveChild1,
/*493554*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*493557*/        OPC_MoveChild0,
/*493558*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*493561*/        OPC_RecordMemRef,
/*493562*/        OPC_RecordNode, // #1 = 'ld' chained node
/*493563*/        OPC_CheckFoldableChainNode,
/*493564*/        OPC_RecordChild1, // #2 = $src2
/*493565*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*493567*/        OPC_CheckPredicate, 9, // Predicate_load
/*493569*/        OPC_CheckType, MVT::f32,
/*493571*/        OPC_MoveParent,
/*493572*/        OPC_MoveParent,
/*493573*/        OPC_RecordChild2, // #3 = $cc
/*493574*/        OPC_MoveChild2,
/*493575*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493578*/        OPC_MoveParent,
/*493579*/        OPC_CheckType, MVT::v16i1,
/*493581*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493583*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493586*/        OPC_EmitMergeInputChains1_1,
/*493587*/        OPC_EmitConvertToTarget, 3,
/*493589*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                  // Dst: (VCMPPSZrmbi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493602*/      /*Scope*/ 51, /*->493654*/
/*493603*/        OPC_CheckChild0Type, MVT::v4f32,
/*493605*/        OPC_MoveChild1,
/*493606*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*493609*/        OPC_MoveChild0,
/*493610*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*493613*/        OPC_RecordMemRef,
/*493614*/        OPC_RecordNode, // #1 = 'ld' chained node
/*493615*/        OPC_CheckFoldableChainNode,
/*493616*/        OPC_RecordChild1, // #2 = $src2
/*493617*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*493619*/        OPC_CheckPredicate, 9, // Predicate_load
/*493621*/        OPC_CheckType, MVT::f32,
/*493623*/        OPC_MoveParent,
/*493624*/        OPC_MoveParent,
/*493625*/        OPC_RecordChild2, // #3 = $cc
/*493626*/        OPC_MoveChild2,
/*493627*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493630*/        OPC_MoveParent,
/*493631*/        OPC_CheckType, MVT::v4i1,
/*493633*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493635*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493638*/        OPC_EmitMergeInputChains1_1,
/*493639*/        OPC_EmitConvertToTarget, 3,
/*493641*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                  // Dst: (VCMPPSZ128rmbi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493654*/      /*Scope*/ 51, /*->493706*/
/*493655*/        OPC_CheckChild0Type, MVT::v8f32,
/*493657*/        OPC_MoveChild1,
/*493658*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*493661*/        OPC_MoveChild0,
/*493662*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*493665*/        OPC_RecordMemRef,
/*493666*/        OPC_RecordNode, // #1 = 'ld' chained node
/*493667*/        OPC_CheckFoldableChainNode,
/*493668*/        OPC_RecordChild1, // #2 = $src2
/*493669*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*493671*/        OPC_CheckPredicate, 9, // Predicate_load
/*493673*/        OPC_CheckType, MVT::f32,
/*493675*/        OPC_MoveParent,
/*493676*/        OPC_MoveParent,
/*493677*/        OPC_RecordChild2, // #3 = $cc
/*493678*/        OPC_MoveChild2,
/*493679*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493682*/        OPC_MoveParent,
/*493683*/        OPC_CheckType, MVT::v8i1,
/*493685*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493687*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493690*/        OPC_EmitMergeInputChains1_1,
/*493691*/        OPC_EmitConvertToTarget, 3,
/*493693*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                  // Dst: (VCMPPSZ256rmbi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493706*/      0, /*End of Scope*/
/*493707*/    /*Scope*/ 98|128,1/*226*/, /*->493935*/
/*493709*/      OPC_MoveChild0,
/*493710*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*493713*/      OPC_RecordMemRef,
/*493714*/      OPC_RecordNode, // #0 = 'ld' chained node
/*493715*/      OPC_CheckFoldableChainNode,
/*493716*/      OPC_RecordChild1, // #1 = $src2
/*493717*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*493719*/      OPC_CheckPredicate, 9, // Predicate_load
/*493721*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*493723*/      OPC_SwitchType /*6 cases */, 33, MVT::v8f64,// ->493759
/*493726*/        OPC_MoveParent,
/*493727*/        OPC_RecordChild1, // #2 = $src1
/*493728*/        OPC_RecordChild2, // #3 = $cc
/*493729*/        OPC_MoveChild2,
/*493730*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493733*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493735*/        OPC_MoveParent,
/*493736*/        OPC_CheckType, MVT::v8i1,
/*493738*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493740*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493743*/        OPC_EmitMergeInputChains1_0,
/*493744*/        OPC_EmitConvertToTarget, 3,
/*493746*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v8i1] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                  // Dst: (VCMPPDZrmi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493759*/      /*SwitchType*/ 33, MVT::v2f64,// ->493794
/*493761*/        OPC_MoveParent,
/*493762*/        OPC_RecordChild1, // #2 = $src1
/*493763*/        OPC_RecordChild2, // #3 = $cc
/*493764*/        OPC_MoveChild2,
/*493765*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493768*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493770*/        OPC_MoveParent,
/*493771*/        OPC_CheckType, MVT::v2i1,
/*493773*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493775*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493778*/        OPC_EmitMergeInputChains1_0,
/*493779*/        OPC_EmitConvertToTarget, 3,
/*493781*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v2i1] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                  // Dst: (VCMPPDZ128rmi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493794*/      /*SwitchType*/ 33, MVT::v4f64,// ->493829
/*493796*/        OPC_MoveParent,
/*493797*/        OPC_RecordChild1, // #2 = $src1
/*493798*/        OPC_RecordChild2, // #3 = $cc
/*493799*/        OPC_MoveChild2,
/*493800*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493803*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493805*/        OPC_MoveParent,
/*493806*/        OPC_CheckType, MVT::v4i1,
/*493808*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493810*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493813*/        OPC_EmitMergeInputChains1_0,
/*493814*/        OPC_EmitConvertToTarget, 3,
/*493816*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v4i1] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                  // Dst: (VCMPPDZ256rmi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493829*/      /*SwitchType*/ 33, MVT::v16f32,// ->493864
/*493831*/        OPC_MoveParent,
/*493832*/        OPC_RecordChild1, // #2 = $src1
/*493833*/        OPC_RecordChild2, // #3 = $cc
/*493834*/        OPC_MoveChild2,
/*493835*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493838*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493840*/        OPC_MoveParent,
/*493841*/        OPC_CheckType, MVT::v16i1,
/*493843*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493845*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493848*/        OPC_EmitMergeInputChains1_0,
/*493849*/        OPC_EmitConvertToTarget, 3,
/*493851*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v16i1] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                  // Dst: (VCMPPSZrmi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493864*/      /*SwitchType*/ 33, MVT::v4f32,// ->493899
/*493866*/        OPC_MoveParent,
/*493867*/        OPC_RecordChild1, // #2 = $src1
/*493868*/        OPC_RecordChild2, // #3 = $cc
/*493869*/        OPC_MoveChild2,
/*493870*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493873*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493875*/        OPC_MoveParent,
/*493876*/        OPC_CheckType, MVT::v4i1,
/*493878*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493880*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493883*/        OPC_EmitMergeInputChains1_0,
/*493884*/        OPC_EmitConvertToTarget, 3,
/*493886*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v4i1] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                  // Dst: (VCMPPSZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493899*/      /*SwitchType*/ 33, MVT::v8f32,// ->493934
/*493901*/        OPC_MoveParent,
/*493902*/        OPC_RecordChild1, // #2 = $src1
/*493903*/        OPC_RecordChild2, // #3 = $cc
/*493904*/        OPC_MoveChild2,
/*493905*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493908*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*493910*/        OPC_MoveParent,
/*493911*/        OPC_CheckType, MVT::v8i1,
/*493913*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493915*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493918*/        OPC_EmitMergeInputChains1_0,
/*493919*/        OPC_EmitConvertToTarget, 3,
/*493921*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpm:{ *:[v8i1] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                  // Dst: (VCMPPSZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493934*/      0, // EndSwitchType
/*493935*/    /*Scope*/ 61|128,5/*701*/, /*->494638*/
/*493937*/      OPC_RecordChild0, // #0 = $src1
/*493938*/      OPC_Scope, 72, /*->494012*/ // 6 children in Scope
/*493940*/        OPC_CheckChild0Type, MVT::v8f64,
/*493942*/        OPC_Scope, 44, /*->493988*/ // 2 children in Scope
/*493944*/          OPC_MoveChild1,
/*493945*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*493948*/          OPC_RecordMemRef,
/*493949*/          OPC_RecordNode, // #1 = 'ld' chained node
/*493950*/          OPC_CheckFoldableChainNode,
/*493951*/          OPC_RecordChild1, // #2 = $src2
/*493952*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*493954*/          OPC_CheckPredicate, 9, // Predicate_load
/*493956*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*493958*/          OPC_MoveParent,
/*493959*/          OPC_RecordChild2, // #3 = $cc
/*493960*/          OPC_MoveChild2,
/*493961*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493964*/          OPC_MoveParent,
/*493965*/          OPC_CheckType, MVT::v8i1,
/*493967*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493969*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*493972*/          OPC_EmitMergeInputChains1_1,
/*493973*/          OPC_EmitConvertToTarget, 3,
/*493975*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                    // Dst: (VCMPPDZrmi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*493988*/        /*Scope*/ 22, /*->494011*/
/*493989*/          OPC_RecordChild1, // #1 = $src2
/*493990*/          OPC_RecordChild2, // #2 = $cc
/*493991*/          OPC_MoveChild2,
/*493992*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*493995*/          OPC_MoveParent,
/*493996*/          OPC_CheckType, MVT::v8i1,
/*493998*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*494000*/          OPC_EmitConvertToTarget, 2,
/*494002*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPDZrri:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*494011*/        0, /*End of Scope*/
/*494012*/      /*Scope*/ 8|128,1/*136*/, /*->494150*/
/*494014*/        OPC_CheckChild0Type, MVT::v2f64,
/*494016*/        OPC_Scope, 44, /*->494062*/ // 2 children in Scope
/*494018*/          OPC_MoveChild1,
/*494019*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494022*/          OPC_RecordMemRef,
/*494023*/          OPC_RecordNode, // #1 = 'ld' chained node
/*494024*/          OPC_CheckFoldableChainNode,
/*494025*/          OPC_RecordChild1, // #2 = $src2
/*494026*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494028*/          OPC_CheckPredicate, 9, // Predicate_load
/*494030*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*494032*/          OPC_MoveParent,
/*494033*/          OPC_RecordChild2, // #3 = $cc
/*494034*/          OPC_MoveChild2,
/*494035*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494038*/          OPC_MoveParent,
/*494039*/          OPC_CheckType, MVT::v2i1,
/*494041*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494043*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*494046*/          OPC_EmitMergeInputChains1_1,
/*494047*/          OPC_EmitConvertToTarget, 3,
/*494049*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                    // Dst: (VCMPPDZ128rmi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*494062*/        /*Scope*/ 86, /*->494149*/
/*494063*/          OPC_RecordChild1, // #1 = $src2
/*494064*/          OPC_RecordChild2, // #2 = $cc
/*494065*/          OPC_MoveChild2,
/*494066*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494069*/          OPC_MoveParent,
/*494070*/          OPC_CheckType, MVT::v2i1,
/*494072*/          OPC_Scope, 13, /*->494087*/ // 2 children in Scope
/*494074*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494076*/            OPC_EmitConvertToTarget, 2,
/*494078*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rri), 0,
                          MVT::v2i1, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPPDZ128rri:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*494087*/          /*Scope*/ 60, /*->494148*/
/*494088*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*494090*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #3
/*494096*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*494099*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/*494108*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #6
/*494114*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*494117*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/*494126*/            OPC_EmitConvertToTarget, 2,
/*494128*/            OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrri), 0,
                          MVT::v8i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*494137*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*494140*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i1, 2/*#Ops*/, 10, 11, 
                      // Src: (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VCMPPDZrri:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src2, sub_xmm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK2:{ *:[i32] })
/*494148*/          0, /*End of Scope*/
/*494149*/        0, /*End of Scope*/
/*494150*/      /*Scope*/ 8|128,1/*136*/, /*->494288*/
/*494152*/        OPC_CheckChild0Type, MVT::v4f64,
/*494154*/        OPC_Scope, 44, /*->494200*/ // 2 children in Scope
/*494156*/          OPC_MoveChild1,
/*494157*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494160*/          OPC_RecordMemRef,
/*494161*/          OPC_RecordNode, // #1 = 'ld' chained node
/*494162*/          OPC_CheckFoldableChainNode,
/*494163*/          OPC_RecordChild1, // #2 = $src2
/*494164*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494166*/          OPC_CheckPredicate, 9, // Predicate_load
/*494168*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*494170*/          OPC_MoveParent,
/*494171*/          OPC_RecordChild2, // #3 = $cc
/*494172*/          OPC_MoveChild2,
/*494173*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494176*/          OPC_MoveParent,
/*494177*/          OPC_CheckType, MVT::v4i1,
/*494179*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494181*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*494184*/          OPC_EmitMergeInputChains1_1,
/*494185*/          OPC_EmitConvertToTarget, 3,
/*494187*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                    // Dst: (VCMPPDZ256rmi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*494200*/        /*Scope*/ 86, /*->494287*/
/*494201*/          OPC_RecordChild1, // #1 = $src2
/*494202*/          OPC_RecordChild2, // #2 = $cc
/*494203*/          OPC_MoveChild2,
/*494204*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494207*/          OPC_MoveParent,
/*494208*/          OPC_CheckType, MVT::v4i1,
/*494210*/          OPC_Scope, 13, /*->494225*/ // 2 children in Scope
/*494212*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494214*/            OPC_EmitConvertToTarget, 2,
/*494216*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rri), 0,
                          MVT::v4i1, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPPDZ256rri:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*494225*/          /*Scope*/ 60, /*->494286*/
/*494226*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*494228*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #3
/*494234*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*494237*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/*494246*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #6
/*494252*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*494255*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/*494264*/            OPC_EmitConvertToTarget, 2,
/*494266*/            OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrri), 0,
                          MVT::v8i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*494275*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*494278*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 10, 11, 
                      // Src: (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPDZrri:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src2, sub_ymm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/*494286*/          0, /*End of Scope*/
/*494287*/        0, /*End of Scope*/
/*494288*/      /*Scope*/ 72, /*->494361*/
/*494289*/        OPC_CheckChild0Type, MVT::v16f32,
/*494291*/        OPC_Scope, 44, /*->494337*/ // 2 children in Scope
/*494293*/          OPC_MoveChild1,
/*494294*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494297*/          OPC_RecordMemRef,
/*494298*/          OPC_RecordNode, // #1 = 'ld' chained node
/*494299*/          OPC_CheckFoldableChainNode,
/*494300*/          OPC_RecordChild1, // #2 = $src2
/*494301*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494303*/          OPC_CheckPredicate, 9, // Predicate_load
/*494305*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*494307*/          OPC_MoveParent,
/*494308*/          OPC_RecordChild2, // #3 = $cc
/*494309*/          OPC_MoveChild2,
/*494310*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494313*/          OPC_MoveParent,
/*494314*/          OPC_CheckType, MVT::v16i1,
/*494316*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*494318*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*494321*/          OPC_EmitMergeInputChains1_1,
/*494322*/          OPC_EmitConvertToTarget, 3,
/*494324*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                    // Dst: (VCMPPSZrmi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*494337*/        /*Scope*/ 22, /*->494360*/
/*494338*/          OPC_RecordChild1, // #1 = $src2
/*494339*/          OPC_RecordChild2, // #2 = $cc
/*494340*/          OPC_MoveChild2,
/*494341*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494344*/          OPC_MoveParent,
/*494345*/          OPC_CheckType, MVT::v16i1,
/*494347*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*494349*/          OPC_EmitConvertToTarget, 2,
/*494351*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPSZrri:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*494360*/        0, /*End of Scope*/
/*494361*/      /*Scope*/ 8|128,1/*136*/, /*->494499*/
/*494363*/        OPC_CheckChild0Type, MVT::v4f32,
/*494365*/        OPC_Scope, 44, /*->494411*/ // 2 children in Scope
/*494367*/          OPC_MoveChild1,
/*494368*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494371*/          OPC_RecordMemRef,
/*494372*/          OPC_RecordNode, // #1 = 'ld' chained node
/*494373*/          OPC_CheckFoldableChainNode,
/*494374*/          OPC_RecordChild1, // #2 = $src2
/*494375*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494377*/          OPC_CheckPredicate, 9, // Predicate_load
/*494379*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*494381*/          OPC_MoveParent,
/*494382*/          OPC_RecordChild2, // #3 = $cc
/*494383*/          OPC_MoveChild2,
/*494384*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494387*/          OPC_MoveParent,
/*494388*/          OPC_CheckType, MVT::v4i1,
/*494390*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494392*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*494395*/          OPC_EmitMergeInputChains1_1,
/*494396*/          OPC_EmitConvertToTarget, 3,
/*494398*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                    // Dst: (VCMPPSZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*494411*/        /*Scope*/ 86, /*->494498*/
/*494412*/          OPC_RecordChild1, // #1 = $src2
/*494413*/          OPC_RecordChild2, // #2 = $cc
/*494414*/          OPC_MoveChild2,
/*494415*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494418*/          OPC_MoveParent,
/*494419*/          OPC_CheckType, MVT::v4i1,
/*494421*/          OPC_Scope, 13, /*->494436*/ // 2 children in Scope
/*494423*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494425*/            OPC_EmitConvertToTarget, 2,
/*494427*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rri), 0,
                          MVT::v4i1, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPPSZ128rri:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*494436*/          /*Scope*/ 60, /*->494497*/
/*494437*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*494439*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16f32, 0/*#Ops*/,  // Results = #3
/*494445*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*494448*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16f32, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/*494457*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16f32, 0/*#Ops*/,  // Results = #6
/*494463*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*494466*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16f32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/*494475*/            OPC_EmitConvertToTarget, 2,
/*494477*/            OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrri), 0,
                          MVT::v16i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*494486*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*494489*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 10, 11, 
                      // Src: (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPSZrri:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src2, sub_xmm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/*494497*/          0, /*End of Scope*/
/*494498*/        0, /*End of Scope*/
/*494499*/      /*Scope*/ 8|128,1/*136*/, /*->494637*/
/*494501*/        OPC_CheckChild0Type, MVT::v8f32,
/*494503*/        OPC_Scope, 44, /*->494549*/ // 2 children in Scope
/*494505*/          OPC_MoveChild1,
/*494506*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494509*/          OPC_RecordMemRef,
/*494510*/          OPC_RecordNode, // #1 = 'ld' chained node
/*494511*/          OPC_CheckFoldableChainNode,
/*494512*/          OPC_RecordChild1, // #2 = $src2
/*494513*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494515*/          OPC_CheckPredicate, 9, // Predicate_load
/*494517*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*494519*/          OPC_MoveParent,
/*494520*/          OPC_RecordChild2, // #3 = $cc
/*494521*/          OPC_MoveChild2,
/*494522*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494525*/          OPC_MoveParent,
/*494526*/          OPC_CheckType, MVT::v8i1,
/*494528*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494530*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*494533*/          OPC_EmitMergeInputChains1_1,
/*494534*/          OPC_EmitConvertToTarget, 3,
/*494536*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                    // Dst: (VCMPPSZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*494549*/        /*Scope*/ 86, /*->494636*/
/*494550*/          OPC_RecordChild1, // #1 = $src2
/*494551*/          OPC_RecordChild2, // #2 = $cc
/*494552*/          OPC_MoveChild2,
/*494553*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494556*/          OPC_MoveParent,
/*494557*/          OPC_CheckType, MVT::v8i1,
/*494559*/          OPC_Scope, 13, /*->494574*/ // 2 children in Scope
/*494561*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494563*/            OPC_EmitConvertToTarget, 2,
/*494565*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rri), 0,
                          MVT::v8i1, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPPSZ256rri:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*494574*/          /*Scope*/ 60, /*->494635*/
/*494575*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*494577*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16f32, 0/*#Ops*/,  // Results = #3
/*494583*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*494586*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16f32, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/*494595*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16f32, 0/*#Ops*/,  // Results = #6
/*494601*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*494604*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16f32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/*494613*/            OPC_EmitConvertToTarget, 2,
/*494615*/            OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrri), 0,
                          MVT::v16i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*494624*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*494627*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 10, 11, 
                      // Src: (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VCMPPSZrri:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src2, sub_ymm:{ *:[i32] }), (imm:{ *:[i8] }):$cc), VK8:{ *:[i32] })
/*494635*/          0, /*End of Scope*/
/*494636*/        0, /*End of Scope*/
/*494637*/      0, /*End of Scope*/
/*494638*/    0, /*End of Scope*/
/*494639*/  /*SwitchOpcode*/ 42|128,6/*810*/, TARGET_VAL(X86ISD::VROTLI),// ->495453
/*494643*/    OPC_Scope, 93|128,3/*477*/, /*->495123*/ // 2 children in Scope
/*494646*/      OPC_MoveChild0,
/*494647*/      OPC_SwitchOpcode /*3 cases */, 54|128,1/*182*/, TARGET_VAL(ISD::BITCAST),// ->494834
/*494652*/        OPC_MoveChild0,
/*494653*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494656*/        OPC_RecordMemRef,
/*494657*/        OPC_RecordNode, // #0 = 'ld' chained node
/*494658*/        OPC_CheckFoldableChainNode,
/*494659*/        OPC_RecordChild1, // #1 = $src1
/*494660*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494662*/        OPC_CheckPredicate, 9, // Predicate_load
/*494664*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*494666*/        OPC_SwitchType /*3 cases */, 100, MVT::v2i64,// ->494769
/*494669*/          OPC_MoveParent,
/*494670*/          OPC_MoveParent,
/*494671*/          OPC_RecordChild1, // #2 = $src2
/*494672*/          OPC_MoveChild1,
/*494673*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494676*/          OPC_MoveParent,
/*494677*/          OPC_SwitchType /*3 cases */, 20, MVT::v16i8,// ->494700
/*494680*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*494682*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494685*/            OPC_EmitMergeInputChains1_0,
/*494686*/            OPC_EmitConvertToTarget, 2,
/*494688*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTBmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotli:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPROTBmi:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*494700*/          /*SwitchType*/ 44, MVT::v4i32,// ->494746
/*494702*/            OPC_Scope, 20, /*->494724*/ // 2 children in Scope
/*494704*/              OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*494706*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494709*/              OPC_EmitMergeInputChains1_0,
/*494710*/              OPC_EmitConvertToTarget, 2,
/*494712*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTDmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (X86vrotli:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                        // Dst: (VPROTDmi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*494724*/            /*Scope*/ 20, /*->494745*/
/*494725*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494727*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494730*/              OPC_EmitMergeInputChains1_0,
/*494731*/              OPC_EmitConvertToTarget, 2,
/*494733*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (X86vrotli:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                        // Dst: (VPROLDZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*494745*/            0, /*End of Scope*/
/*494746*/          /*SwitchType*/ 20, MVT::v8i16,// ->494768
/*494748*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*494750*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494753*/            OPC_EmitMergeInputChains1_0,
/*494754*/            OPC_EmitConvertToTarget, 2,
/*494756*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTWmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotli:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPROTWmi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*494768*/          0, // EndSwitchType
/*494769*/        /*SwitchType*/ 30, MVT::v8i64,// ->494801
/*494771*/          OPC_MoveParent,
/*494772*/          OPC_MoveParent,
/*494773*/          OPC_RecordChild1, // #2 = $src2
/*494774*/          OPC_MoveChild1,
/*494775*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494778*/          OPC_MoveParent,
/*494779*/          OPC_CheckType, MVT::v16i32,
/*494781*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*494783*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494786*/          OPC_EmitMergeInputChains1_0,
/*494787*/          OPC_EmitConvertToTarget, 2,
/*494789*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vrotli:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPROLDZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*494801*/        /*SwitchType*/ 30, MVT::v4i64,// ->494833
/*494803*/          OPC_MoveParent,
/*494804*/          OPC_MoveParent,
/*494805*/          OPC_RecordChild1, // #2 = $src2
/*494806*/          OPC_MoveChild1,
/*494807*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494810*/          OPC_MoveParent,
/*494811*/          OPC_CheckType, MVT::v8i32,
/*494813*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494815*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494818*/          OPC_EmitMergeInputChains1_0,
/*494819*/          OPC_EmitConvertToTarget, 2,
/*494821*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vrotli:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPROLDZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*494833*/        0, // EndSwitchType
/*494834*/      /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::VBROADCAST),// ->495010
/*494838*/        OPC_MoveChild0,
/*494839*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494842*/        OPC_RecordMemRef,
/*494843*/        OPC_RecordNode, // #0 = 'ld' chained node
/*494844*/        OPC_CheckFoldableChainNode,
/*494845*/        OPC_RecordChild1, // #1 = $src1
/*494846*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494848*/        OPC_SwitchType /*2 cases */, 78, MVT::i32,// ->494929
/*494851*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*494853*/          OPC_MoveParent,
/*494854*/          OPC_MoveParent,
/*494855*/          OPC_RecordChild1, // #2 = $src2
/*494856*/          OPC_MoveChild1,
/*494857*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494860*/          OPC_MoveParent,
/*494861*/          OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->494884
/*494864*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*494866*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494869*/            OPC_EmitMergeInputChains1_0,
/*494870*/            OPC_EmitConvertToTarget, 2,
/*494872*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotli:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPROLDZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*494884*/          /*SwitchType*/ 20, MVT::v8i32,// ->494906
/*494886*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494888*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494891*/            OPC_EmitMergeInputChains1_0,
/*494892*/            OPC_EmitConvertToTarget, 2,
/*494894*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotli:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPROLDZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*494906*/          /*SwitchType*/ 20, MVT::v4i32,// ->494928
/*494908*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494910*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494913*/            OPC_EmitMergeInputChains1_0,
/*494914*/            OPC_EmitConvertToTarget, 2,
/*494916*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotli:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPROLDZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*494928*/          0, // EndSwitchType
/*494929*/        /*SwitchType*/ 78, MVT::i64,// ->495009
/*494931*/          OPC_CheckPredicate, 9, // Predicate_load
/*494933*/          OPC_MoveParent,
/*494934*/          OPC_MoveParent,
/*494935*/          OPC_RecordChild1, // #2 = $src2
/*494936*/          OPC_MoveChild1,
/*494937*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*494940*/          OPC_MoveParent,
/*494941*/          OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->494964
/*494944*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*494946*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494949*/            OPC_EmitMergeInputChains1_0,
/*494950*/            OPC_EmitConvertToTarget, 2,
/*494952*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotli:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPROLQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*494964*/          /*SwitchType*/ 20, MVT::v4i64,// ->494986
/*494966*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494968*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494971*/            OPC_EmitMergeInputChains1_0,
/*494972*/            OPC_EmitConvertToTarget, 2,
/*494974*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotli:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPROLQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*494986*/          /*SwitchType*/ 20, MVT::v2i64,// ->495008
/*494988*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*494990*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*494993*/            OPC_EmitMergeInputChains1_0,
/*494994*/            OPC_EmitConvertToTarget, 2,
/*494996*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotli:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPROLQZ128mbi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*495008*/          0, // EndSwitchType
/*495009*/        0, // EndSwitchType
/*495010*/      /*SwitchOpcode*/ 109, TARGET_VAL(ISD::LOAD),// ->495122
/*495013*/        OPC_RecordMemRef,
/*495014*/        OPC_RecordNode, // #0 = 'ld' chained node
/*495015*/        OPC_CheckFoldableChainNode,
/*495016*/        OPC_RecordChild1, // #1 = $src1
/*495017*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495019*/        OPC_CheckPredicate, 9, // Predicate_load
/*495021*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*495023*/        OPC_MoveParent,
/*495024*/        OPC_RecordChild1, // #2 = $src2
/*495025*/        OPC_MoveChild1,
/*495026*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495029*/        OPC_MoveParent,
/*495030*/        OPC_SwitchType /*3 cases */, 44, MVT::v2i64,// ->495077
/*495033*/          OPC_Scope, 20, /*->495055*/ // 2 children in Scope
/*495035*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*495040*/            OPC_EmitMergeInputChains1_0,
/*495041*/            OPC_EmitConvertToTarget, 2,
/*495043*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTQmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROTQmi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*495055*/          /*Scope*/ 20, /*->495076*/
/*495056*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495058*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*495061*/            OPC_EmitMergeInputChains1_0,
/*495062*/            OPC_EmitConvertToTarget, 2,
/*495064*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROLQZ128mi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*495076*/          0, /*End of Scope*/
/*495077*/        /*SwitchType*/ 20, MVT::v8i64,// ->495099
/*495079*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*495081*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*495084*/          OPC_EmitMergeInputChains1_0,
/*495085*/          OPC_EmitConvertToTarget, 2,
/*495087*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vrotli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPROLQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*495099*/        /*SwitchType*/ 20, MVT::v4i64,// ->495121
/*495101*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495103*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*495106*/          OPC_EmitMergeInputChains1_0,
/*495107*/          OPC_EmitConvertToTarget, 2,
/*495109*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vrotli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPROLQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*495121*/        0, // EndSwitchType
/*495122*/      0, // EndSwitchOpcode
/*495123*/    /*Scope*/ 71|128,2/*327*/, /*->495452*/
/*495125*/      OPC_RecordChild0, // #0 = $src1
/*495126*/      OPC_RecordChild1, // #1 = $src2
/*495127*/      OPC_MoveChild1,
/*495128*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495131*/      OPC_MoveParent,
/*495132*/      OPC_SwitchType /*8 cases */, 12, MVT::v16i8,// ->495147
/*495135*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495137*/        OPC_EmitConvertToTarget, 1,
/*495139*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTBri), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vrotli:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPROTBri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*495147*/      /*SwitchType*/ 70, MVT::v4i32,// ->495219
/*495149*/        OPC_Scope, 12, /*->495163*/ // 3 children in Scope
/*495151*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495153*/          OPC_EmitConvertToTarget, 1,
/*495155*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vrotli:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROTDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*495163*/        /*Scope*/ 12, /*->495176*/
/*495164*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495166*/          OPC_EmitConvertToTarget, 1,
/*495168*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vrotli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROLDZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*495176*/        /*Scope*/ 41, /*->495218*/
/*495177*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*495179*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*495185*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*495188*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*495197*/          OPC_EmitConvertToTarget, 1,
/*495199*/          OPC_EmitNode1, TARGET_VAL(X86::VPROLDZri), 0,
                        MVT::v16i32, 2/*#Ops*/, 4, 5,  // Results = #6
/*495207*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*495210*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7, 
                    // Src: (X86vrotli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VPROLDZri:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (imm:{ *:[i8] }):$src2), sub_xmm:{ *:[i32] })
/*495218*/        0, /*End of Scope*/
/*495219*/      /*SwitchType*/ 70, MVT::v2i64,// ->495291
/*495221*/        OPC_Scope, 12, /*->495235*/ // 3 children in Scope
/*495223*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495225*/          OPC_EmitConvertToTarget, 1,
/*495227*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTQri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vrotli:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROTQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*495235*/        /*Scope*/ 12, /*->495248*/
/*495236*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495238*/          OPC_EmitConvertToTarget, 1,
/*495240*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128ri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vrotli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROLQZ128ri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*495248*/        /*Scope*/ 41, /*->495290*/
/*495249*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*495251*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*495257*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*495260*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*495269*/          OPC_EmitConvertToTarget, 1,
/*495271*/          OPC_EmitNode1, TARGET_VAL(X86::VPROLQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 5,  // Results = #6
/*495279*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*495282*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 6, 7, 
                    // Src: (X86vrotli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPROLQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (imm:{ *:[i8] }):$src2), sub_xmm:{ *:[i32] })
/*495290*/        0, /*End of Scope*/
/*495291*/      /*SwitchType*/ 12, MVT::v8i16,// ->495305
/*495293*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495295*/        OPC_EmitConvertToTarget, 1,
/*495297*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTWri), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vrotli:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPROTWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*495305*/      /*SwitchType*/ 12, MVT::v16i32,// ->495319
/*495307*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*495309*/        OPC_EmitConvertToTarget, 1,
/*495311*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vrotli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPROLDZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*495319*/      /*SwitchType*/ 57, MVT::v8i32,// ->495378
/*495321*/        OPC_Scope, 12, /*->495335*/ // 2 children in Scope
/*495323*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495325*/          OPC_EmitConvertToTarget, 1,
/*495327*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vrotli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROLDZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*495335*/        /*Scope*/ 41, /*->495377*/
/*495336*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*495338*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*495344*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*495347*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*495356*/          OPC_EmitConvertToTarget, 1,
/*495358*/          OPC_EmitNode1, TARGET_VAL(X86::VPROLDZri), 0,
                        MVT::v16i32, 2/*#Ops*/, 4, 5,  // Results = #6
/*495366*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*495369*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i32, 2/*#Ops*/, 6, 7, 
                    // Src: (X86vrotli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VPROLDZri:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (imm:{ *:[i8] }):$src2), sub_ymm:{ *:[i32] })
/*495377*/        0, /*End of Scope*/
/*495378*/      /*SwitchType*/ 12, MVT::v8i64,// ->495392
/*495380*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*495382*/        OPC_EmitConvertToTarget, 1,
/*495384*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vrotli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPROLQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*495392*/      /*SwitchType*/ 57, MVT::v4i64,// ->495451
/*495394*/        OPC_Scope, 12, /*->495408*/ // 2 children in Scope
/*495396*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495398*/          OPC_EmitConvertToTarget, 1,
/*495400*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vrotli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROLQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*495408*/        /*Scope*/ 41, /*->495450*/
/*495409*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*495411*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*495417*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*495420*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*495429*/          OPC_EmitConvertToTarget, 1,
/*495431*/          OPC_EmitNode1, TARGET_VAL(X86::VPROLQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 5,  // Results = #6
/*495439*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*495442*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 6, 7, 
                    // Src: (X86vrotli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPROLQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (imm:{ *:[i8] }):$src2), sub_ymm:{ *:[i32] })
/*495450*/        0, /*End of Scope*/
/*495451*/      0, // EndSwitchType
/*495452*/    0, /*End of Scope*/
/*495453*/  /*SwitchOpcode*/ 103|128,3/*487*/, TARGET_VAL(X86ISD::VPCOM),// ->495944
/*495457*/    OPC_Scope, 52, /*->495511*/ // 9 children in Scope
/*495459*/      OPC_RecordChild0, // #0 = $src1
/*495460*/      OPC_MoveChild1,
/*495461*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*495464*/      OPC_MoveChild0,
/*495465*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495468*/      OPC_RecordMemRef,
/*495469*/      OPC_RecordNode, // #1 = 'ld' chained node
/*495470*/      OPC_CheckFoldableChainNode,
/*495471*/      OPC_RecordChild1, // #2 = $src2
/*495472*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495474*/      OPC_CheckPredicate, 9, // Predicate_load
/*495476*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*495478*/      OPC_CheckType, MVT::v2i64,
/*495480*/      OPC_MoveParent,
/*495481*/      OPC_MoveParent,
/*495482*/      OPC_RecordChild2, // #3 = $cc
/*495483*/      OPC_MoveChild2,
/*495484*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495487*/      OPC_MoveParent,
/*495488*/      OPC_CheckType, MVT::v16i8,
/*495490*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495492*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*495495*/      OPC_EmitMergeInputChains1_1,
/*495496*/      OPC_EmitConvertToTarget, 3,
/*495498*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMBmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcom:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMBmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*495511*/    /*Scope*/ 53, /*->495565*/
/*495512*/      OPC_MoveChild0,
/*495513*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*495516*/      OPC_MoveChild0,
/*495517*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495520*/      OPC_RecordMemRef,
/*495521*/      OPC_RecordNode, // #0 = 'ld' chained node
/*495522*/      OPC_CheckFoldableChainNode,
/*495523*/      OPC_RecordChild1, // #1 = $src2
/*495524*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495526*/      OPC_CheckPredicate, 9, // Predicate_load
/*495528*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*495530*/      OPC_CheckType, MVT::v2i64,
/*495532*/      OPC_MoveParent,
/*495533*/      OPC_MoveParent,
/*495534*/      OPC_RecordChild1, // #2 = $src1
/*495535*/      OPC_RecordChild2, // #3 = $cc
/*495536*/      OPC_MoveChild2,
/*495537*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495540*/      OPC_MoveParent,
/*495541*/      OPC_CheckType, MVT::v16i8,
/*495543*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*495546*/      OPC_EmitMergeInputChains1_0,
/*495547*/      OPC_EmitConvertToTarget, 3,
/*495549*/      OPC_EmitNodeXForm, 23, 9, // CommuteVPCOMCC
/*495552*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMBmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86vpcom:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMBmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (imm:{ *:[i8] }):$cc))
/*495565*/    /*Scope*/ 52, /*->495618*/
/*495566*/      OPC_RecordChild0, // #0 = $src1
/*495567*/      OPC_MoveChild1,
/*495568*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*495571*/      OPC_MoveChild0,
/*495572*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495575*/      OPC_RecordMemRef,
/*495576*/      OPC_RecordNode, // #1 = 'ld' chained node
/*495577*/      OPC_CheckFoldableChainNode,
/*495578*/      OPC_RecordChild1, // #2 = $src2
/*495579*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495581*/      OPC_CheckPredicate, 9, // Predicate_load
/*495583*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*495585*/      OPC_CheckType, MVT::v2i64,
/*495587*/      OPC_MoveParent,
/*495588*/      OPC_MoveParent,
/*495589*/      OPC_RecordChild2, // #3 = $cc
/*495590*/      OPC_MoveChild2,
/*495591*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495594*/      OPC_MoveParent,
/*495595*/      OPC_CheckType, MVT::v8i16,
/*495597*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495599*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*495602*/      OPC_EmitMergeInputChains1_1,
/*495603*/      OPC_EmitConvertToTarget, 3,
/*495605*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcom:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMWmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*495618*/    /*Scope*/ 53, /*->495672*/
/*495619*/      OPC_MoveChild0,
/*495620*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*495623*/      OPC_MoveChild0,
/*495624*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495627*/      OPC_RecordMemRef,
/*495628*/      OPC_RecordNode, // #0 = 'ld' chained node
/*495629*/      OPC_CheckFoldableChainNode,
/*495630*/      OPC_RecordChild1, // #1 = $src2
/*495631*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495633*/      OPC_CheckPredicate, 9, // Predicate_load
/*495635*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*495637*/      OPC_CheckType, MVT::v2i64,
/*495639*/      OPC_MoveParent,
/*495640*/      OPC_MoveParent,
/*495641*/      OPC_RecordChild1, // #2 = $src1
/*495642*/      OPC_RecordChild2, // #3 = $cc
/*495643*/      OPC_MoveChild2,
/*495644*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495647*/      OPC_MoveParent,
/*495648*/      OPC_CheckType, MVT::v8i16,
/*495650*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*495653*/      OPC_EmitMergeInputChains1_0,
/*495654*/      OPC_EmitConvertToTarget, 3,
/*495656*/      OPC_EmitNodeXForm, 23, 9, // CommuteVPCOMCC
/*495659*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86vpcom:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMWmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (imm:{ *:[i8] }):$cc))
/*495672*/    /*Scope*/ 52, /*->495725*/
/*495673*/      OPC_RecordChild0, // #0 = $src1
/*495674*/      OPC_MoveChild1,
/*495675*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*495678*/      OPC_MoveChild0,
/*495679*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495682*/      OPC_RecordMemRef,
/*495683*/      OPC_RecordNode, // #1 = 'ld' chained node
/*495684*/      OPC_CheckFoldableChainNode,
/*495685*/      OPC_RecordChild1, // #2 = $src2
/*495686*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495688*/      OPC_CheckPredicate, 9, // Predicate_load
/*495690*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*495692*/      OPC_CheckType, MVT::v2i64,
/*495694*/      OPC_MoveParent,
/*495695*/      OPC_MoveParent,
/*495696*/      OPC_RecordChild2, // #3 = $cc
/*495697*/      OPC_MoveChild2,
/*495698*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495701*/      OPC_MoveParent,
/*495702*/      OPC_CheckType, MVT::v4i32,
/*495704*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495706*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*495709*/      OPC_EmitMergeInputChains1_1,
/*495710*/      OPC_EmitConvertToTarget, 3,
/*495712*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcom:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMDmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*495725*/    /*Scope*/ 53, /*->495779*/
/*495726*/      OPC_MoveChild0,
/*495727*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*495730*/      OPC_MoveChild0,
/*495731*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495734*/      OPC_RecordMemRef,
/*495735*/      OPC_RecordNode, // #0 = 'ld' chained node
/*495736*/      OPC_CheckFoldableChainNode,
/*495737*/      OPC_RecordChild1, // #1 = $src2
/*495738*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495740*/      OPC_CheckPredicate, 9, // Predicate_load
/*495742*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*495744*/      OPC_CheckType, MVT::v2i64,
/*495746*/      OPC_MoveParent,
/*495747*/      OPC_MoveParent,
/*495748*/      OPC_RecordChild1, // #2 = $src1
/*495749*/      OPC_RecordChild2, // #3 = $cc
/*495750*/      OPC_MoveChild2,
/*495751*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495754*/      OPC_MoveParent,
/*495755*/      OPC_CheckType, MVT::v4i32,
/*495757*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*495760*/      OPC_EmitMergeInputChains1_0,
/*495761*/      OPC_EmitConvertToTarget, 3,
/*495763*/      OPC_EmitNodeXForm, 23, 9, // CommuteVPCOMCC
/*495766*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86vpcom:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMDmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (imm:{ *:[i8] }):$cc))
/*495779*/    /*Scope*/ 45, /*->495825*/
/*495780*/      OPC_RecordChild0, // #0 = $src1
/*495781*/      OPC_MoveChild1,
/*495782*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495785*/      OPC_RecordMemRef,
/*495786*/      OPC_RecordNode, // #1 = 'ld' chained node
/*495787*/      OPC_CheckFoldableChainNode,
/*495788*/      OPC_RecordChild1, // #2 = $src2
/*495789*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495791*/      OPC_CheckPredicate, 9, // Predicate_load
/*495793*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*495795*/      OPC_MoveParent,
/*495796*/      OPC_RecordChild2, // #3 = $cc
/*495797*/      OPC_MoveChild2,
/*495798*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495801*/      OPC_MoveParent,
/*495802*/      OPC_CheckType, MVT::v2i64,
/*495804*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495806*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*495809*/      OPC_EmitMergeInputChains1_1,
/*495810*/      OPC_EmitConvertToTarget, 3,
/*495812*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMQmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcom:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMQmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*495825*/    /*Scope*/ 46, /*->495872*/
/*495826*/      OPC_MoveChild0,
/*495827*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495830*/      OPC_RecordMemRef,
/*495831*/      OPC_RecordNode, // #0 = 'ld' chained node
/*495832*/      OPC_CheckFoldableChainNode,
/*495833*/      OPC_RecordChild1, // #1 = $src2
/*495834*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495836*/      OPC_CheckPredicate, 9, // Predicate_load
/*495838*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*495840*/      OPC_MoveParent,
/*495841*/      OPC_RecordChild1, // #2 = $src1
/*495842*/      OPC_RecordChild2, // #3 = $cc
/*495843*/      OPC_MoveChild2,
/*495844*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495847*/      OPC_MoveParent,
/*495848*/      OPC_CheckType, MVT::v2i64,
/*495850*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*495853*/      OPC_EmitMergeInputChains1_0,
/*495854*/      OPC_EmitConvertToTarget, 3,
/*495856*/      OPC_EmitNodeXForm, 23, 9, // CommuteVPCOMCC
/*495859*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMQmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86vpcom:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMQmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (imm:{ *:[i8] }):$cc))
/*495872*/    /*Scope*/ 70, /*->495943*/
/*495873*/      OPC_RecordChild0, // #0 = $src1
/*495874*/      OPC_RecordChild1, // #1 = $src2
/*495875*/      OPC_RecordChild2, // #2 = $cc
/*495876*/      OPC_MoveChild2,
/*495877*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495880*/      OPC_MoveParent,
/*495881*/      OPC_SwitchType /*4 cases */, 13, MVT::v16i8,// ->495897
/*495884*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495886*/        OPC_EmitConvertToTarget, 2,
/*495888*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMBri), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86vpcom:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMBri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$cc)
/*495897*/      /*SwitchType*/ 13, MVT::v8i16,// ->495912
/*495899*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495901*/        OPC_EmitConvertToTarget, 2,
/*495903*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMWri), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86vpcom:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$cc)
/*495912*/      /*SwitchType*/ 13, MVT::v4i32,// ->495927
/*495914*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495916*/        OPC_EmitConvertToTarget, 2,
/*495918*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMDri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86vpcom:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$cc)
/*495927*/      /*SwitchType*/ 13, MVT::v2i64,// ->495942
/*495929*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495931*/        OPC_EmitConvertToTarget, 2,
/*495933*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMQri), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86vpcom:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$cc)
/*495942*/      0, // EndSwitchType
/*495943*/    0, /*End of Scope*/
/*495944*/  /*SwitchOpcode*/ 103|128,3/*487*/, TARGET_VAL(X86ISD::VPCOMU),// ->496435
/*495948*/    OPC_Scope, 52, /*->496002*/ // 9 children in Scope
/*495950*/      OPC_RecordChild0, // #0 = $src1
/*495951*/      OPC_MoveChild1,
/*495952*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*495955*/      OPC_MoveChild0,
/*495956*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495959*/      OPC_RecordMemRef,
/*495960*/      OPC_RecordNode, // #1 = 'ld' chained node
/*495961*/      OPC_CheckFoldableChainNode,
/*495962*/      OPC_RecordChild1, // #2 = $src2
/*495963*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495965*/      OPC_CheckPredicate, 9, // Predicate_load
/*495967*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*495969*/      OPC_CheckType, MVT::v2i64,
/*495971*/      OPC_MoveParent,
/*495972*/      OPC_MoveParent,
/*495973*/      OPC_RecordChild2, // #3 = $cc
/*495974*/      OPC_MoveChild2,
/*495975*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*495978*/      OPC_MoveParent,
/*495979*/      OPC_CheckType, MVT::v16i8,
/*495981*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*495983*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*495986*/      OPC_EmitMergeInputChains1_1,
/*495987*/      OPC_EmitConvertToTarget, 3,
/*495989*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUBmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcomu:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMUBmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*496002*/    /*Scope*/ 53, /*->496056*/
/*496003*/      OPC_MoveChild0,
/*496004*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*496007*/      OPC_MoveChild0,
/*496008*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496011*/      OPC_RecordMemRef,
/*496012*/      OPC_RecordNode, // #0 = 'ld' chained node
/*496013*/      OPC_CheckFoldableChainNode,
/*496014*/      OPC_RecordChild1, // #1 = $src2
/*496015*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496017*/      OPC_CheckPredicate, 9, // Predicate_load
/*496019*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*496021*/      OPC_CheckType, MVT::v2i64,
/*496023*/      OPC_MoveParent,
/*496024*/      OPC_MoveParent,
/*496025*/      OPC_RecordChild1, // #2 = $src1
/*496026*/      OPC_RecordChild2, // #3 = $cc
/*496027*/      OPC_MoveChild2,
/*496028*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496031*/      OPC_MoveParent,
/*496032*/      OPC_CheckType, MVT::v16i8,
/*496034*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496037*/      OPC_EmitMergeInputChains1_0,
/*496038*/      OPC_EmitConvertToTarget, 3,
/*496040*/      OPC_EmitNodeXForm, 23, 9, // CommuteVPCOMCC
/*496043*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUBmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86vpcomu:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMUBmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (imm:{ *:[i8] }):$cc))
/*496056*/    /*Scope*/ 52, /*->496109*/
/*496057*/      OPC_RecordChild0, // #0 = $src1
/*496058*/      OPC_MoveChild1,
/*496059*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*496062*/      OPC_MoveChild0,
/*496063*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496066*/      OPC_RecordMemRef,
/*496067*/      OPC_RecordNode, // #1 = 'ld' chained node
/*496068*/      OPC_CheckFoldableChainNode,
/*496069*/      OPC_RecordChild1, // #2 = $src2
/*496070*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496072*/      OPC_CheckPredicate, 9, // Predicate_load
/*496074*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*496076*/      OPC_CheckType, MVT::v2i64,
/*496078*/      OPC_MoveParent,
/*496079*/      OPC_MoveParent,
/*496080*/      OPC_RecordChild2, // #3 = $cc
/*496081*/      OPC_MoveChild2,
/*496082*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496085*/      OPC_MoveParent,
/*496086*/      OPC_CheckType, MVT::v8i16,
/*496088*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*496090*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496093*/      OPC_EmitMergeInputChains1_1,
/*496094*/      OPC_EmitConvertToTarget, 3,
/*496096*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcomu:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMUWmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*496109*/    /*Scope*/ 53, /*->496163*/
/*496110*/      OPC_MoveChild0,
/*496111*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*496114*/      OPC_MoveChild0,
/*496115*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496118*/      OPC_RecordMemRef,
/*496119*/      OPC_RecordNode, // #0 = 'ld' chained node
/*496120*/      OPC_CheckFoldableChainNode,
/*496121*/      OPC_RecordChild1, // #1 = $src2
/*496122*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496124*/      OPC_CheckPredicate, 9, // Predicate_load
/*496126*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*496128*/      OPC_CheckType, MVT::v2i64,
/*496130*/      OPC_MoveParent,
/*496131*/      OPC_MoveParent,
/*496132*/      OPC_RecordChild1, // #2 = $src1
/*496133*/      OPC_RecordChild2, // #3 = $cc
/*496134*/      OPC_MoveChild2,
/*496135*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496138*/      OPC_MoveParent,
/*496139*/      OPC_CheckType, MVT::v8i16,
/*496141*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496144*/      OPC_EmitMergeInputChains1_0,
/*496145*/      OPC_EmitConvertToTarget, 3,
/*496147*/      OPC_EmitNodeXForm, 23, 9, // CommuteVPCOMCC
/*496150*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86vpcomu:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMUWmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (imm:{ *:[i8] }):$cc))
/*496163*/    /*Scope*/ 52, /*->496216*/
/*496164*/      OPC_RecordChild0, // #0 = $src1
/*496165*/      OPC_MoveChild1,
/*496166*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*496169*/      OPC_MoveChild0,
/*496170*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496173*/      OPC_RecordMemRef,
/*496174*/      OPC_RecordNode, // #1 = 'ld' chained node
/*496175*/      OPC_CheckFoldableChainNode,
/*496176*/      OPC_RecordChild1, // #2 = $src2
/*496177*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496179*/      OPC_CheckPredicate, 9, // Predicate_load
/*496181*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*496183*/      OPC_CheckType, MVT::v2i64,
/*496185*/      OPC_MoveParent,
/*496186*/      OPC_MoveParent,
/*496187*/      OPC_RecordChild2, // #3 = $cc
/*496188*/      OPC_MoveChild2,
/*496189*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496192*/      OPC_MoveParent,
/*496193*/      OPC_CheckType, MVT::v4i32,
/*496195*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*496197*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496200*/      OPC_EmitMergeInputChains1_1,
/*496201*/      OPC_EmitConvertToTarget, 3,
/*496203*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcomu:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMUDmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*496216*/    /*Scope*/ 53, /*->496270*/
/*496217*/      OPC_MoveChild0,
/*496218*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*496221*/      OPC_MoveChild0,
/*496222*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496225*/      OPC_RecordMemRef,
/*496226*/      OPC_RecordNode, // #0 = 'ld' chained node
/*496227*/      OPC_CheckFoldableChainNode,
/*496228*/      OPC_RecordChild1, // #1 = $src2
/*496229*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496231*/      OPC_CheckPredicate, 9, // Predicate_load
/*496233*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*496235*/      OPC_CheckType, MVT::v2i64,
/*496237*/      OPC_MoveParent,
/*496238*/      OPC_MoveParent,
/*496239*/      OPC_RecordChild1, // #2 = $src1
/*496240*/      OPC_RecordChild2, // #3 = $cc
/*496241*/      OPC_MoveChild2,
/*496242*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496245*/      OPC_MoveParent,
/*496246*/      OPC_CheckType, MVT::v4i32,
/*496248*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496251*/      OPC_EmitMergeInputChains1_0,
/*496252*/      OPC_EmitConvertToTarget, 3,
/*496254*/      OPC_EmitNodeXForm, 23, 9, // CommuteVPCOMCC
/*496257*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86vpcomu:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$cc) - Complexity = 31
                // Dst: (VPCOMUDmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (imm:{ *:[i8] }):$cc))
/*496270*/    /*Scope*/ 45, /*->496316*/
/*496271*/      OPC_RecordChild0, // #0 = $src1
/*496272*/      OPC_MoveChild1,
/*496273*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496276*/      OPC_RecordMemRef,
/*496277*/      OPC_RecordNode, // #1 = 'ld' chained node
/*496278*/      OPC_CheckFoldableChainNode,
/*496279*/      OPC_RecordChild1, // #2 = $src2
/*496280*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496282*/      OPC_CheckPredicate, 9, // Predicate_load
/*496284*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*496286*/      OPC_MoveParent,
/*496287*/      OPC_RecordChild2, // #3 = $cc
/*496288*/      OPC_MoveChild2,
/*496289*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496292*/      OPC_MoveParent,
/*496293*/      OPC_CheckType, MVT::v2i64,
/*496295*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*496297*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496300*/      OPC_EmitMergeInputChains1_1,
/*496301*/      OPC_EmitConvertToTarget, 3,
/*496303*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUQmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcomu:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMUQmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*496316*/    /*Scope*/ 46, /*->496363*/
/*496317*/      OPC_MoveChild0,
/*496318*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496321*/      OPC_RecordMemRef,
/*496322*/      OPC_RecordNode, // #0 = 'ld' chained node
/*496323*/      OPC_CheckFoldableChainNode,
/*496324*/      OPC_RecordChild1, // #1 = $src2
/*496325*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496327*/      OPC_CheckPredicate, 9, // Predicate_load
/*496329*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*496331*/      OPC_MoveParent,
/*496332*/      OPC_RecordChild1, // #2 = $src1
/*496333*/      OPC_RecordChild2, // #3 = $cc
/*496334*/      OPC_MoveChild2,
/*496335*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496338*/      OPC_MoveParent,
/*496339*/      OPC_CheckType, MVT::v2i64,
/*496341*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496344*/      OPC_EmitMergeInputChains1_0,
/*496345*/      OPC_EmitConvertToTarget, 3,
/*496347*/      OPC_EmitNodeXForm, 23, 9, // CommuteVPCOMCC
/*496350*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUQmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86vpcomu:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMUQmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (imm:{ *:[i8] }):$cc))
/*496363*/    /*Scope*/ 70, /*->496434*/
/*496364*/      OPC_RecordChild0, // #0 = $src1
/*496365*/      OPC_RecordChild1, // #1 = $src2
/*496366*/      OPC_RecordChild2, // #2 = $cc
/*496367*/      OPC_MoveChild2,
/*496368*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496371*/      OPC_MoveParent,
/*496372*/      OPC_SwitchType /*4 cases */, 13, MVT::v16i8,// ->496388
/*496375*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*496377*/        OPC_EmitConvertToTarget, 2,
/*496379*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUBri), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86vpcomu:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMUBri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$cc)
/*496388*/      /*SwitchType*/ 13, MVT::v8i16,// ->496403
/*496390*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*496392*/        OPC_EmitConvertToTarget, 2,
/*496394*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUWri), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86vpcomu:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMUWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$cc)
/*496403*/      /*SwitchType*/ 13, MVT::v4i32,// ->496418
/*496405*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*496407*/        OPC_EmitConvertToTarget, 2,
/*496409*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUDri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86vpcomu:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMUDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$cc)
/*496418*/      /*SwitchType*/ 13, MVT::v2i64,// ->496433
/*496420*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*496422*/        OPC_EmitConvertToTarget, 2,
/*496424*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUQri), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86vpcomu:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMUQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$cc)
/*496433*/      0, // EndSwitchType
/*496434*/    0, /*End of Scope*/
/*496435*/  /*SwitchOpcode*/ 20|128,3/*404*/, TARGET_VAL(X86ISD::PSHUFD),// ->496843
/*496439*/    OPC_Scope, 47|128,2/*303*/, /*->496745*/ // 2 children in Scope
/*496442*/      OPC_MoveChild0,
/*496443*/      OPC_SwitchOpcode /*2 cases */, 75|128,1/*203*/, TARGET_VAL(ISD::BITCAST),// ->496651
/*496448*/        OPC_MoveChild0,
/*496449*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496452*/        OPC_RecordMemRef,
/*496453*/        OPC_RecordNode, // #0 = 'ld' chained node
/*496454*/        OPC_CheckFoldableChainNode,
/*496455*/        OPC_RecordChild1, // #1 = $src1
/*496456*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496458*/        OPC_CheckPredicate, 9, // Predicate_load
/*496460*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*496462*/        OPC_SwitchType /*3 cases */, 97, MVT::v2i64,// ->496562
/*496465*/          OPC_Scope, 30, /*->496497*/ // 3 children in Scope
/*496467*/            OPC_MoveParent,
/*496468*/            OPC_MoveParent,
/*496469*/            OPC_RecordChild1, // #2 = $src2
/*496470*/            OPC_MoveChild1,
/*496471*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496474*/            OPC_MoveParent,
/*496475*/            OPC_CheckType, MVT::v4i32,
/*496477*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*496479*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496482*/            OPC_EmitMergeInputChains1_0,
/*496483*/            OPC_EmitConvertToTarget, 2,
/*496485*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSHUFDmi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496497*/          /*Scope*/ 32, /*->496530*/
/*496498*/            OPC_CheckPredicate, 48, // Predicate_memop
/*496500*/            OPC_MoveParent,
/*496501*/            OPC_MoveParent,
/*496502*/            OPC_RecordChild1, // #2 = $src2
/*496503*/            OPC_MoveChild1,
/*496504*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496507*/            OPC_MoveParent,
/*496508*/            OPC_CheckType, MVT::v4i32,
/*496510*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*496512*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496515*/            OPC_EmitMergeInputChains1_0,
/*496516*/            OPC_EmitConvertToTarget, 2,
/*496518*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>><<P:Predicate_memop>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (PSHUFDmi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496530*/          /*Scope*/ 30, /*->496561*/
/*496531*/            OPC_MoveParent,
/*496532*/            OPC_MoveParent,
/*496533*/            OPC_RecordChild1, // #2 = $src2
/*496534*/            OPC_MoveChild1,
/*496535*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496538*/            OPC_MoveParent,
/*496539*/            OPC_CheckType, MVT::v4i32,
/*496541*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*496543*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496546*/            OPC_EmitMergeInputChains1_0,
/*496547*/            OPC_EmitConvertToTarget, 2,
/*496549*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSHUFDZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496561*/          0, /*End of Scope*/
/*496562*/        /*SwitchType*/ 54, MVT::v4i64,// ->496618
/*496564*/          OPC_MoveParent,
/*496565*/          OPC_MoveParent,
/*496566*/          OPC_RecordChild1, // #2 = $src2
/*496567*/          OPC_MoveChild1,
/*496568*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496571*/          OPC_MoveParent,
/*496572*/          OPC_CheckType, MVT::v8i32,
/*496574*/          OPC_Scope, 20, /*->496596*/ // 2 children in Scope
/*496576*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*496578*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496581*/            OPC_EmitMergeInputChains1_0,
/*496582*/            OPC_EmitConvertToTarget, 2,
/*496584*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDYmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86PShufd:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSHUFDYmi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496596*/          /*Scope*/ 20, /*->496617*/
/*496597*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*496599*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496602*/            OPC_EmitMergeInputChains1_0,
/*496603*/            OPC_EmitConvertToTarget, 2,
/*496605*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86PShufd:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSHUFDZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496617*/          0, /*End of Scope*/
/*496618*/        /*SwitchType*/ 30, MVT::v8i64,// ->496650
/*496620*/          OPC_MoveParent,
/*496621*/          OPC_MoveParent,
/*496622*/          OPC_RecordChild1, // #2 = $src2
/*496623*/          OPC_MoveChild1,
/*496624*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496627*/          OPC_MoveParent,
/*496628*/          OPC_CheckType, MVT::v16i32,
/*496630*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*496632*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496635*/          OPC_EmitMergeInputChains1_0,
/*496636*/          OPC_EmitConvertToTarget, 2,
/*496638*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShufd:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFDZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496650*/        0, // EndSwitchType
/*496651*/      /*SwitchOpcode*/ 90, TARGET_VAL(X86ISD::VBROADCAST),// ->496744
/*496654*/        OPC_MoveChild0,
/*496655*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496658*/        OPC_RecordMemRef,
/*496659*/        OPC_RecordNode, // #0 = 'ld' chained node
/*496660*/        OPC_CheckFoldableChainNode,
/*496661*/        OPC_RecordChild1, // #1 = $src1
/*496662*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496664*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*496666*/        OPC_CheckType, MVT::i32,
/*496668*/        OPC_MoveParent,
/*496669*/        OPC_MoveParent,
/*496670*/        OPC_RecordChild1, // #2 = $src2
/*496671*/        OPC_MoveChild1,
/*496672*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496675*/        OPC_MoveParent,
/*496676*/        OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->496699
/*496679*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*496681*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496684*/          OPC_EmitMergeInputChains1_0,
/*496685*/          OPC_EmitConvertToTarget, 2,
/*496687*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShufd:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFDZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496699*/        /*SwitchType*/ 20, MVT::v8i32,// ->496721
/*496701*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*496703*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496706*/          OPC_EmitMergeInputChains1_0,
/*496707*/          OPC_EmitConvertToTarget, 2,
/*496709*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShufd:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFDZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496721*/        /*SwitchType*/ 20, MVT::v4i32,// ->496743
/*496723*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*496725*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496728*/          OPC_EmitMergeInputChains1_0,
/*496729*/          OPC_EmitConvertToTarget, 2,
/*496731*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShufd:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFDZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496743*/        0, // EndSwitchType
/*496744*/      0, // EndSwitchOpcode
/*496745*/    /*Scope*/ 96, /*->496842*/
/*496746*/      OPC_RecordChild0, // #0 = $src1
/*496747*/      OPC_RecordChild1, // #1 = $src2
/*496748*/      OPC_MoveChild1,
/*496749*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496752*/      OPC_MoveParent,
/*496753*/      OPC_SwitchType /*3 cases */, 41, MVT::v4i32,// ->496797
/*496756*/        OPC_Scope, 12, /*->496770*/ // 3 children in Scope
/*496758*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*496760*/          OPC_EmitConvertToTarget, 1,
/*496762*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShufd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*496770*/        /*Scope*/ 12, /*->496783*/
/*496771*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*496773*/          OPC_EmitConvertToTarget, 1,
/*496775*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShufd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSHUFDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*496783*/        /*Scope*/ 12, /*->496796*/
/*496784*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*496786*/          OPC_EmitConvertToTarget, 1,
/*496788*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShufd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFDZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*496796*/        0, /*End of Scope*/
/*496797*/      /*SwitchType*/ 28, MVT::v8i32,// ->496827
/*496799*/        OPC_Scope, 12, /*->496813*/ // 2 children in Scope
/*496801*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*496803*/          OPC_EmitConvertToTarget, 1,
/*496805*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDYri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShufd:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFDYri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*496813*/        /*Scope*/ 12, /*->496826*/
/*496814*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*496816*/          OPC_EmitConvertToTarget, 1,
/*496818*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShufd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFDZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*496826*/        0, /*End of Scope*/
/*496827*/      /*SwitchType*/ 12, MVT::v16i32,// ->496841
/*496829*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*496831*/        OPC_EmitConvertToTarget, 1,
/*496833*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86PShufd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSHUFDZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*496841*/      0, // EndSwitchType
/*496842*/    0, /*End of Scope*/
/*496843*/  /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(X86ISD::PSHUFHW),// ->497155
/*496847*/    OPC_Scope, 79|128,1/*207*/, /*->497057*/ // 2 children in Scope
/*496850*/      OPC_MoveChild0,
/*496851*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*496854*/      OPC_MoveChild0,
/*496855*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496858*/      OPC_RecordMemRef,
/*496859*/      OPC_RecordNode, // #0 = 'ld' chained node
/*496860*/      OPC_CheckFoldableChainNode,
/*496861*/      OPC_RecordChild1, // #1 = $src1
/*496862*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496864*/      OPC_CheckPredicate, 9, // Predicate_load
/*496866*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*496868*/      OPC_SwitchType /*3 cases */, 97, MVT::v2i64,// ->496968
/*496871*/        OPC_Scope, 30, /*->496903*/ // 3 children in Scope
/*496873*/          OPC_MoveParent,
/*496874*/          OPC_MoveParent,
/*496875*/          OPC_RecordChild1, // #2 = $src2
/*496876*/          OPC_MoveChild1,
/*496877*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496880*/          OPC_MoveParent,
/*496881*/          OPC_CheckType, MVT::v8i16,
/*496883*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*496885*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496888*/          OPC_EmitMergeInputChains1_0,
/*496889*/          OPC_EmitConvertToTarget, 2,
/*496891*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShufhw:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFHWmi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496903*/        /*Scope*/ 32, /*->496936*/
/*496904*/          OPC_CheckPredicate, 48, // Predicate_memop
/*496906*/          OPC_MoveParent,
/*496907*/          OPC_MoveParent,
/*496908*/          OPC_RecordChild1, // #2 = $src2
/*496909*/          OPC_MoveChild1,
/*496910*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496913*/          OPC_MoveParent,
/*496914*/          OPC_CheckType, MVT::v8i16,
/*496916*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*496918*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496921*/          OPC_EmitMergeInputChains1_0,
/*496922*/          OPC_EmitConvertToTarget, 2,
/*496924*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShufhw:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (PSHUFHWmi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496936*/        /*Scope*/ 30, /*->496967*/
/*496937*/          OPC_MoveParent,
/*496938*/          OPC_MoveParent,
/*496939*/          OPC_RecordChild1, // #2 = $src2
/*496940*/          OPC_MoveChild1,
/*496941*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496944*/          OPC_MoveParent,
/*496945*/          OPC_CheckType, MVT::v8i16,
/*496947*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*496949*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496952*/          OPC_EmitMergeInputChains1_0,
/*496953*/          OPC_EmitConvertToTarget, 2,
/*496955*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShufhw:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFHWZ128mi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*496967*/        0, /*End of Scope*/
/*496968*/      /*SwitchType*/ 54, MVT::v4i64,// ->497024
/*496970*/        OPC_MoveParent,
/*496971*/        OPC_MoveParent,
/*496972*/        OPC_RecordChild1, // #2 = $src2
/*496973*/        OPC_MoveChild1,
/*496974*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*496977*/        OPC_MoveParent,
/*496978*/        OPC_CheckType, MVT::v16i16,
/*496980*/        OPC_Scope, 20, /*->497002*/ // 2 children in Scope
/*496982*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*496984*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*496987*/          OPC_EmitMergeInputChains1_0,
/*496988*/          OPC_EmitConvertToTarget, 2,
/*496990*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWYmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShufhw:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFHWYmi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*497002*/        /*Scope*/ 20, /*->497023*/
/*497003*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*497005*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*497008*/          OPC_EmitMergeInputChains1_0,
/*497009*/          OPC_EmitConvertToTarget, 2,
/*497011*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShufhw:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFHWZ256mi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*497023*/        0, /*End of Scope*/
/*497024*/      /*SwitchType*/ 30, MVT::v8i64,// ->497056
/*497026*/        OPC_MoveParent,
/*497027*/        OPC_MoveParent,
/*497028*/        OPC_RecordChild1, // #2 = $src2
/*497029*/        OPC_MoveChild1,
/*497030*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497033*/        OPC_MoveParent,
/*497034*/        OPC_CheckType, MVT::v32i16,
/*497036*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*497038*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*497041*/        OPC_EmitMergeInputChains1_0,
/*497042*/        OPC_EmitConvertToTarget, 2,
/*497044*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86PShufhw:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                  // Dst: (VPSHUFHWZmi:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*497056*/      0, // EndSwitchType
/*497057*/    /*Scope*/ 96, /*->497154*/
/*497058*/      OPC_RecordChild0, // #0 = $src1
/*497059*/      OPC_RecordChild1, // #1 = $src2
/*497060*/      OPC_MoveChild1,
/*497061*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497064*/      OPC_MoveParent,
/*497065*/      OPC_SwitchType /*3 cases */, 41, MVT::v8i16,// ->497109
/*497068*/        OPC_Scope, 12, /*->497082*/ // 3 children in Scope
/*497070*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*497072*/          OPC_EmitConvertToTarget, 1,
/*497074*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShufhw:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFHWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497082*/        /*Scope*/ 12, /*->497095*/
/*497083*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*497085*/          OPC_EmitConvertToTarget, 1,
/*497087*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFHWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShufhw:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSHUFHWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497095*/        /*Scope*/ 12, /*->497108*/
/*497096*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*497098*/          OPC_EmitConvertToTarget, 1,
/*497100*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128ri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShufhw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFHWZ128ri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497108*/        0, /*End of Scope*/
/*497109*/      /*SwitchType*/ 28, MVT::v16i16,// ->497139
/*497111*/        OPC_Scope, 12, /*->497125*/ // 2 children in Scope
/*497113*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*497115*/          OPC_EmitConvertToTarget, 1,
/*497117*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWYri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShufhw:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFHWYri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497125*/        /*Scope*/ 12, /*->497138*/
/*497126*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*497128*/          OPC_EmitConvertToTarget, 1,
/*497130*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256ri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShufhw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFHWZ256ri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497138*/        0, /*End of Scope*/
/*497139*/      /*SwitchType*/ 12, MVT::v32i16,// ->497153
/*497141*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*497143*/        OPC_EmitConvertToTarget, 1,
/*497145*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZri), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 2, 
                  // Src: (X86PShufhw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSHUFHWZri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497153*/      0, // EndSwitchType
/*497154*/    0, /*End of Scope*/
/*497155*/  /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(X86ISD::PSHUFLW),// ->497467
/*497159*/    OPC_Scope, 79|128,1/*207*/, /*->497369*/ // 2 children in Scope
/*497162*/      OPC_MoveChild0,
/*497163*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*497166*/      OPC_MoveChild0,
/*497167*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*497170*/      OPC_RecordMemRef,
/*497171*/      OPC_RecordNode, // #0 = 'ld' chained node
/*497172*/      OPC_CheckFoldableChainNode,
/*497173*/      OPC_RecordChild1, // #1 = $src1
/*497174*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*497176*/      OPC_CheckPredicate, 9, // Predicate_load
/*497178*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*497180*/      OPC_SwitchType /*3 cases */, 97, MVT::v2i64,// ->497280
/*497183*/        OPC_Scope, 30, /*->497215*/ // 3 children in Scope
/*497185*/          OPC_MoveParent,
/*497186*/          OPC_MoveParent,
/*497187*/          OPC_RecordChild1, // #2 = $src2
/*497188*/          OPC_MoveChild1,
/*497189*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497192*/          OPC_MoveParent,
/*497193*/          OPC_CheckType, MVT::v8i16,
/*497195*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*497197*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*497200*/          OPC_EmitMergeInputChains1_0,
/*497201*/          OPC_EmitConvertToTarget, 2,
/*497203*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShuflw:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFLWmi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*497215*/        /*Scope*/ 32, /*->497248*/
/*497216*/          OPC_CheckPredicate, 48, // Predicate_memop
/*497218*/          OPC_MoveParent,
/*497219*/          OPC_MoveParent,
/*497220*/          OPC_RecordChild1, // #2 = $src2
/*497221*/          OPC_MoveChild1,
/*497222*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497225*/          OPC_MoveParent,
/*497226*/          OPC_CheckType, MVT::v8i16,
/*497228*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*497230*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*497233*/          OPC_EmitMergeInputChains1_0,
/*497234*/          OPC_EmitConvertToTarget, 2,
/*497236*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShuflw:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (PSHUFLWmi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*497248*/        /*Scope*/ 30, /*->497279*/
/*497249*/          OPC_MoveParent,
/*497250*/          OPC_MoveParent,
/*497251*/          OPC_RecordChild1, // #2 = $src2
/*497252*/          OPC_MoveChild1,
/*497253*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497256*/          OPC_MoveParent,
/*497257*/          OPC_CheckType, MVT::v8i16,
/*497259*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*497261*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*497264*/          OPC_EmitMergeInputChains1_0,
/*497265*/          OPC_EmitConvertToTarget, 2,
/*497267*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShuflw:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFLWZ128mi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*497279*/        0, /*End of Scope*/
/*497280*/      /*SwitchType*/ 54, MVT::v4i64,// ->497336
/*497282*/        OPC_MoveParent,
/*497283*/        OPC_MoveParent,
/*497284*/        OPC_RecordChild1, // #2 = $src2
/*497285*/        OPC_MoveChild1,
/*497286*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497289*/        OPC_MoveParent,
/*497290*/        OPC_CheckType, MVT::v16i16,
/*497292*/        OPC_Scope, 20, /*->497314*/ // 2 children in Scope
/*497294*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*497296*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*497299*/          OPC_EmitMergeInputChains1_0,
/*497300*/          OPC_EmitConvertToTarget, 2,
/*497302*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWYmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShuflw:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFLWYmi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*497314*/        /*Scope*/ 20, /*->497335*/
/*497315*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*497317*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*497320*/          OPC_EmitMergeInputChains1_0,
/*497321*/          OPC_EmitConvertToTarget, 2,
/*497323*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86PShuflw:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPSHUFLWZ256mi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*497335*/        0, /*End of Scope*/
/*497336*/      /*SwitchType*/ 30, MVT::v8i64,// ->497368
/*497338*/        OPC_MoveParent,
/*497339*/        OPC_MoveParent,
/*497340*/        OPC_RecordChild1, // #2 = $src2
/*497341*/        OPC_MoveChild1,
/*497342*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497345*/        OPC_MoveParent,
/*497346*/        OPC_CheckType, MVT::v32i16,
/*497348*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*497350*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*497353*/        OPC_EmitMergeInputChains1_0,
/*497354*/        OPC_EmitConvertToTarget, 2,
/*497356*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86PShuflw:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                  // Dst: (VPSHUFLWZmi:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*497368*/      0, // EndSwitchType
/*497369*/    /*Scope*/ 96, /*->497466*/
/*497370*/      OPC_RecordChild0, // #0 = $src1
/*497371*/      OPC_RecordChild1, // #1 = $src2
/*497372*/      OPC_MoveChild1,
/*497373*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497376*/      OPC_MoveParent,
/*497377*/      OPC_SwitchType /*3 cases */, 41, MVT::v8i16,// ->497421
/*497380*/        OPC_Scope, 12, /*->497394*/ // 3 children in Scope
/*497382*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*497384*/          OPC_EmitConvertToTarget, 1,
/*497386*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShuflw:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497394*/        /*Scope*/ 12, /*->497407*/
/*497395*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*497397*/          OPC_EmitConvertToTarget, 1,
/*497399*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShuflw:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSHUFLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497407*/        /*Scope*/ 12, /*->497420*/
/*497408*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*497410*/          OPC_EmitConvertToTarget, 1,
/*497412*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128ri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShuflw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFLWZ128ri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497420*/        0, /*End of Scope*/
/*497421*/      /*SwitchType*/ 28, MVT::v16i16,// ->497451
/*497423*/        OPC_Scope, 12, /*->497437*/ // 2 children in Scope
/*497425*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*497427*/          OPC_EmitConvertToTarget, 1,
/*497429*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWYri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShuflw:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFLWYri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497437*/        /*Scope*/ 12, /*->497450*/
/*497438*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*497440*/          OPC_EmitConvertToTarget, 1,
/*497442*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256ri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86PShuflw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFLWZ256ri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497450*/        0, /*End of Scope*/
/*497451*/      /*SwitchType*/ 12, MVT::v32i16,// ->497465
/*497453*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*497455*/        OPC_EmitConvertToTarget, 1,
/*497457*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZri), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 2, 
                  // Src: (X86PShuflw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSHUFLWZri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*497465*/      0, // EndSwitchType
/*497466*/    0, /*End of Scope*/
/*497467*/  /*SwitchOpcode*/ 65|128,2/*321*/, TARGET_VAL(X86ISD::PALIGNR),// ->497792
/*497471*/    OPC_RecordChild0, // #0 = $src1
/*497472*/    OPC_Scope, 85|128,1/*213*/, /*->497688*/ // 2 children in Scope
/*497475*/      OPC_MoveChild1,
/*497476*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*497479*/      OPC_MoveChild0,
/*497480*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*497483*/      OPC_RecordMemRef,
/*497484*/      OPC_RecordNode, // #1 = 'ld' chained node
/*497485*/      OPC_CheckFoldableChainNode,
/*497486*/      OPC_RecordChild1, // #2 = $src2
/*497487*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*497489*/      OPC_CheckPredicate, 9, // Predicate_load
/*497491*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*497493*/      OPC_SwitchType /*3 cases */, 100, MVT::v2i64,// ->497596
/*497496*/        OPC_Scope, 31, /*->497529*/ // 3 children in Scope
/*497498*/          OPC_MoveParent,
/*497499*/          OPC_MoveParent,
/*497500*/          OPC_RecordChild2, // #3 = $src3
/*497501*/          OPC_MoveChild2,
/*497502*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497505*/          OPC_MoveParent,
/*497506*/          OPC_CheckType, MVT::v16i8,
/*497508*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*497510*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*497513*/          OPC_EmitMergeInputChains1_1,
/*497514*/          OPC_EmitConvertToTarget, 3,
/*497516*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86PAlignr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VPALIGNRrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*497529*/        /*Scope*/ 33, /*->497563*/
/*497530*/          OPC_CheckPredicate, 48, // Predicate_memop
/*497532*/          OPC_MoveParent,
/*497533*/          OPC_MoveParent,
/*497534*/          OPC_RecordChild2, // #3 = $src3
/*497535*/          OPC_MoveChild2,
/*497536*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497539*/          OPC_MoveParent,
/*497540*/          OPC_CheckType, MVT::v16i8,
/*497542*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*497544*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*497547*/          OPC_EmitMergeInputChains1_1,
/*497548*/          OPC_EmitConvertToTarget, 3,
/*497550*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PALIGNRrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86PAlignr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (PALIGNRrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*497563*/        /*Scope*/ 31, /*->497595*/
/*497564*/          OPC_MoveParent,
/*497565*/          OPC_MoveParent,
/*497566*/          OPC_RecordChild2, // #3 = $src3
/*497567*/          OPC_MoveChild2,
/*497568*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497571*/          OPC_MoveParent,
/*497572*/          OPC_CheckType, MVT::v16i8,
/*497574*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*497576*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*497579*/          OPC_EmitMergeInputChains1_1,
/*497580*/          OPC_EmitConvertToTarget, 3,
/*497582*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VPALIGNRZ128rmi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*497595*/        0, /*End of Scope*/
/*497596*/      /*SwitchType*/ 56, MVT::v4i64,// ->497654
/*497598*/        OPC_MoveParent,
/*497599*/        OPC_MoveParent,
/*497600*/        OPC_RecordChild2, // #3 = $src3
/*497601*/        OPC_MoveChild2,
/*497602*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497605*/        OPC_MoveParent,
/*497606*/        OPC_CheckType, MVT::v32i8,
/*497608*/        OPC_Scope, 21, /*->497631*/ // 2 children in Scope
/*497610*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*497612*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*497615*/          OPC_EmitMergeInputChains1_1,
/*497616*/          OPC_EmitConvertToTarget, 3,
/*497618*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86PAlignr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VPALIGNRYrmi:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*497631*/        /*Scope*/ 21, /*->497653*/
/*497632*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*497634*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*497637*/          OPC_EmitMergeInputChains1_1,
/*497638*/          OPC_EmitConvertToTarget, 3,
/*497640*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VPALIGNRZ256rmi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*497653*/        0, /*End of Scope*/
/*497654*/      /*SwitchType*/ 31, MVT::v8i64,// ->497687
/*497656*/        OPC_MoveParent,
/*497657*/        OPC_MoveParent,
/*497658*/        OPC_RecordChild2, // #3 = $src3
/*497659*/        OPC_MoveChild2,
/*497660*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497663*/        OPC_MoveParent,
/*497664*/        OPC_CheckType, MVT::v64i8,
/*497666*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*497668*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*497671*/        OPC_EmitMergeInputChains1_1,
/*497672*/        OPC_EmitConvertToTarget, 3,
/*497674*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                  // Dst: (VPALIGNRZrmi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*497687*/      0, // EndSwitchType
/*497688*/    /*Scope*/ 102, /*->497791*/
/*497689*/      OPC_RecordChild1, // #1 = $src2
/*497690*/      OPC_RecordChild2, // #2 = $src3
/*497691*/      OPC_MoveChild2,
/*497692*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497695*/      OPC_MoveParent,
/*497696*/      OPC_SwitchType /*3 cases */, 44, MVT::v16i8,// ->497743
/*497699*/        OPC_Scope, 13, /*->497714*/ // 3 children in Scope
/*497701*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*497703*/          OPC_EmitConvertToTarget, 2,
/*497705*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86PAlignr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPALIGNRrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*497714*/        /*Scope*/ 13, /*->497728*/
/*497715*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*497717*/          OPC_EmitConvertToTarget, 2,
/*497719*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PALIGNRrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86PAlignr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (PALIGNRrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*497728*/        /*Scope*/ 13, /*->497742*/
/*497729*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*497731*/          OPC_EmitConvertToTarget, 2,
/*497733*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPALIGNRZ128rri:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*497742*/        0, /*End of Scope*/
/*497743*/      /*SwitchType*/ 30, MVT::v32i8,// ->497775
/*497745*/        OPC_Scope, 13, /*->497760*/ // 2 children in Scope
/*497747*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*497749*/          OPC_EmitConvertToTarget, 2,
/*497751*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRYrri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86PAlignr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPALIGNRYrri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*497760*/        /*Scope*/ 13, /*->497774*/
/*497761*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*497763*/          OPC_EmitConvertToTarget, 2,
/*497765*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPALIGNRZ256rri:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*497774*/        0, /*End of Scope*/
/*497775*/      /*SwitchType*/ 13, MVT::v64i8,// ->497790
/*497777*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*497779*/        OPC_EmitConvertToTarget, 2,
/*497781*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrri), 0,
                      MVT::v64i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPALIGNRZrri:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*497790*/      0, // EndSwitchType
/*497791*/    0, /*End of Scope*/
/*497792*/  /*SwitchOpcode*/ 35|128,10/*1315*/, TARGET_VAL(X86ISD::BLENDI),// ->499111
/*497796*/    OPC_Scope, 52, /*->497850*/ // 23 children in Scope
/*497798*/      OPC_RecordChild0, // #0 = $src1
/*497799*/      OPC_MoveChild1,
/*497800*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*497803*/      OPC_MoveChild0,
/*497804*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*497807*/      OPC_RecordMemRef,
/*497808*/      OPC_RecordNode, // #1 = 'ld' chained node
/*497809*/      OPC_CheckFoldableChainNode,
/*497810*/      OPC_RecordChild1, // #2 = $src2
/*497811*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*497813*/      OPC_CheckPredicate, 9, // Predicate_load
/*497815*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*497817*/      OPC_CheckType, MVT::v2i64,
/*497819*/      OPC_MoveParent,
/*497820*/      OPC_MoveParent,
/*497821*/      OPC_RecordChild2, // #3 = $src3
/*497822*/      OPC_MoveChild2,
/*497823*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497826*/      OPC_MoveParent,
/*497827*/      OPC_CheckType, MVT::v8i16,
/*497829*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*497831*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*497834*/      OPC_EmitMergeInputChains1_1,
/*497835*/      OPC_EmitConvertToTarget, 3,
/*497837*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                // Dst: (VPBLENDWrmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*497850*/    /*Scope*/ 55, /*->497906*/
/*497851*/      OPC_MoveChild0,
/*497852*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*497855*/      OPC_MoveChild0,
/*497856*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*497859*/      OPC_RecordMemRef,
/*497860*/      OPC_RecordNode, // #0 = 'ld' chained node
/*497861*/      OPC_CheckFoldableChainNode,
/*497862*/      OPC_RecordChild1, // #1 = $src2
/*497863*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*497865*/      OPC_CheckPredicate, 9, // Predicate_load
/*497867*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*497869*/      OPC_CheckType, MVT::v2i64,
/*497871*/      OPC_MoveParent,
/*497872*/      OPC_MoveParent,
/*497873*/      OPC_RecordChild1, // #2 = $src1
/*497874*/      OPC_RecordChild2, // #3 = $src3
/*497875*/      OPC_MoveChild2,
/*497876*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497879*/      OPC_MoveParent,
/*497880*/      OPC_CheckType, MVT::v8i16,
/*497882*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*497884*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*497887*/      OPC_EmitMergeInputChains1_0,
/*497888*/      OPC_EmitConvertToTarget, 3,
/*497890*/      OPC_EmitNodeXForm, 24, 9, // BlendCommuteImm8
/*497893*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86Blendi:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 31
                // Dst: (VPBLENDWrmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm8:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*497906*/    /*Scope*/ 52, /*->497959*/
/*497907*/      OPC_RecordChild0, // #0 = $src1
/*497908*/      OPC_MoveChild1,
/*497909*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*497912*/      OPC_MoveChild0,
/*497913*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*497916*/      OPC_RecordMemRef,
/*497917*/      OPC_RecordNode, // #1 = 'ld' chained node
/*497918*/      OPC_CheckFoldableChainNode,
/*497919*/      OPC_RecordChild1, // #2 = $src2
/*497920*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*497922*/      OPC_CheckPredicate, 9, // Predicate_load
/*497924*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*497926*/      OPC_CheckType, MVT::v4i64,
/*497928*/      OPC_MoveParent,
/*497929*/      OPC_MoveParent,
/*497930*/      OPC_RecordChild2, // #3 = $src3
/*497931*/      OPC_MoveChild2,
/*497932*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497935*/      OPC_MoveParent,
/*497936*/      OPC_CheckType, MVT::v16i16,
/*497938*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*497940*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*497943*/      OPC_EmitMergeInputChains1_1,
/*497944*/      OPC_EmitConvertToTarget, 3,
/*497946*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                // Dst: (VPBLENDWYrmi:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*497959*/    /*Scope*/ 55, /*->498015*/
/*497960*/      OPC_MoveChild0,
/*497961*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*497964*/      OPC_MoveChild0,
/*497965*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*497968*/      OPC_RecordMemRef,
/*497969*/      OPC_RecordNode, // #0 = 'ld' chained node
/*497970*/      OPC_CheckFoldableChainNode,
/*497971*/      OPC_RecordChild1, // #1 = $src2
/*497972*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*497974*/      OPC_CheckPredicate, 9, // Predicate_load
/*497976*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*497978*/      OPC_CheckType, MVT::v4i64,
/*497980*/      OPC_MoveParent,
/*497981*/      OPC_MoveParent,
/*497982*/      OPC_RecordChild1, // #2 = $src1
/*497983*/      OPC_RecordChild2, // #3 = $src3
/*497984*/      OPC_MoveChild2,
/*497985*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*497988*/      OPC_MoveParent,
/*497989*/      OPC_CheckType, MVT::v16i16,
/*497991*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*497993*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*497996*/      OPC_EmitMergeInputChains1_0,
/*497997*/      OPC_EmitConvertToTarget, 3,
/*497999*/      OPC_EmitNodeXForm, 24, 9, // BlendCommuteImm8
/*498002*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86Blendi:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 31
                // Dst: (VPBLENDWYrmi:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm8:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*498015*/    /*Scope*/ 54, /*->498070*/
/*498016*/      OPC_RecordChild0, // #0 = $src1
/*498017*/      OPC_MoveChild1,
/*498018*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*498021*/      OPC_MoveChild0,
/*498022*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498025*/      OPC_RecordMemRef,
/*498026*/      OPC_RecordNode, // #1 = 'ld' chained node
/*498027*/      OPC_CheckFoldableChainNode,
/*498028*/      OPC_RecordChild1, // #2 = $src2
/*498029*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498031*/      OPC_CheckPredicate, 9, // Predicate_load
/*498033*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498035*/      OPC_CheckPredicate, 48, // Predicate_memop
/*498037*/      OPC_CheckType, MVT::v2i64,
/*498039*/      OPC_MoveParent,
/*498040*/      OPC_MoveParent,
/*498041*/      OPC_RecordChild2, // #3 = $src3
/*498042*/      OPC_MoveChild2,
/*498043*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498046*/      OPC_MoveParent,
/*498047*/      OPC_CheckType, MVT::v8i16,
/*498049*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*498051*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498054*/      OPC_EmitMergeInputChains1_1,
/*498055*/      OPC_EmitConvertToTarget, 3,
/*498057*/      OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                // Dst: (PBLENDWrmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*498070*/    /*Scope*/ 55, /*->498126*/
/*498071*/      OPC_MoveChild0,
/*498072*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*498075*/      OPC_MoveChild0,
/*498076*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498079*/      OPC_RecordMemRef,
/*498080*/      OPC_RecordNode, // #0 = 'ld' chained node
/*498081*/      OPC_CheckFoldableChainNode,
/*498082*/      OPC_RecordChild1, // #1 = $src2
/*498083*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498085*/      OPC_CheckPredicate, 9, // Predicate_load
/*498087*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498089*/      OPC_CheckPredicate, 48, // Predicate_memop
/*498091*/      OPC_CheckType, MVT::v2i64,
/*498093*/      OPC_MoveParent,
/*498094*/      OPC_MoveParent,
/*498095*/      OPC_RecordChild1, // #2 = $src1
/*498096*/      OPC_RecordChild2, // #3 = $src3
/*498097*/      OPC_MoveChild2,
/*498098*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498101*/      OPC_MoveParent,
/*498102*/      OPC_CheckType, MVT::v8i16,
/*498104*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498107*/      OPC_EmitMergeInputChains1_0,
/*498108*/      OPC_EmitConvertToTarget, 3,
/*498110*/      OPC_EmitNodeXForm, 24, 9, // BlendCommuteImm8
/*498113*/      OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86Blendi:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 31
                // Dst: (PBLENDWrmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm8:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*498126*/    /*Scope*/ 52, /*->498179*/
/*498127*/      OPC_RecordChild0, // #0 = $src1
/*498128*/      OPC_MoveChild1,
/*498129*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*498132*/      OPC_MoveChild0,
/*498133*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498136*/      OPC_RecordMemRef,
/*498137*/      OPC_RecordNode, // #1 = 'ld' chained node
/*498138*/      OPC_CheckFoldableChainNode,
/*498139*/      OPC_RecordChild1, // #2 = $src2
/*498140*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498142*/      OPC_CheckPredicate, 9, // Predicate_load
/*498144*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498146*/      OPC_CheckType, MVT::v2i64,
/*498148*/      OPC_MoveParent,
/*498149*/      OPC_MoveParent,
/*498150*/      OPC_RecordChild2, // #3 = $src3
/*498151*/      OPC_MoveChild2,
/*498152*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498155*/      OPC_MoveParent,
/*498156*/      OPC_CheckType, MVT::v4i32,
/*498158*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*498160*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498163*/      OPC_EmitMergeInputChains1_1,
/*498164*/      OPC_EmitConvertToTarget, 3,
/*498166*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                // Dst: (VPBLENDDrmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*498179*/    /*Scope*/ 53, /*->498233*/
/*498180*/      OPC_MoveChild0,
/*498181*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*498184*/      OPC_MoveChild0,
/*498185*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498188*/      OPC_RecordMemRef,
/*498189*/      OPC_RecordNode, // #0 = 'ld' chained node
/*498190*/      OPC_CheckFoldableChainNode,
/*498191*/      OPC_RecordChild1, // #1 = $src2
/*498192*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498194*/      OPC_CheckPredicate, 9, // Predicate_load
/*498196*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498198*/      OPC_CheckType, MVT::v2i64,
/*498200*/      OPC_MoveParent,
/*498201*/      OPC_MoveParent,
/*498202*/      OPC_RecordChild1, // #2 = $src1
/*498203*/      OPC_RecordChild2, // #3 = $src3
/*498204*/      OPC_MoveChild2,
/*498205*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498208*/      OPC_MoveParent,
/*498209*/      OPC_CheckType, MVT::v4i32,
/*498211*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498214*/      OPC_EmitMergeInputChains1_0,
/*498215*/      OPC_EmitConvertToTarget, 3,
/*498217*/      OPC_EmitNodeXForm, 25, 9, // BlendCommuteImm4
/*498220*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86Blendi:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 31
                // Dst: (VPBLENDDrmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm4:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*498233*/    /*Scope*/ 52, /*->498286*/
/*498234*/      OPC_RecordChild0, // #0 = $src1
/*498235*/      OPC_MoveChild1,
/*498236*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*498239*/      OPC_MoveChild0,
/*498240*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498243*/      OPC_RecordMemRef,
/*498244*/      OPC_RecordNode, // #1 = 'ld' chained node
/*498245*/      OPC_CheckFoldableChainNode,
/*498246*/      OPC_RecordChild1, // #2 = $src2
/*498247*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498249*/      OPC_CheckPredicate, 9, // Predicate_load
/*498251*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498253*/      OPC_CheckType, MVT::v4i64,
/*498255*/      OPC_MoveParent,
/*498256*/      OPC_MoveParent,
/*498257*/      OPC_RecordChild2, // #3 = $src3
/*498258*/      OPC_MoveChild2,
/*498259*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498262*/      OPC_MoveParent,
/*498263*/      OPC_CheckType, MVT::v8i32,
/*498265*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*498267*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498270*/      OPC_EmitMergeInputChains1_1,
/*498271*/      OPC_EmitConvertToTarget, 3,
/*498273*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                // Dst: (VPBLENDDYrmi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*498286*/    /*Scope*/ 53, /*->498340*/
/*498287*/      OPC_MoveChild0,
/*498288*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*498291*/      OPC_MoveChild0,
/*498292*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498295*/      OPC_RecordMemRef,
/*498296*/      OPC_RecordNode, // #0 = 'ld' chained node
/*498297*/      OPC_CheckFoldableChainNode,
/*498298*/      OPC_RecordChild1, // #1 = $src2
/*498299*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498301*/      OPC_CheckPredicate, 9, // Predicate_load
/*498303*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498305*/      OPC_CheckType, MVT::v4i64,
/*498307*/      OPC_MoveParent,
/*498308*/      OPC_MoveParent,
/*498309*/      OPC_RecordChild1, // #2 = $src1
/*498310*/      OPC_RecordChild2, // #3 = $src3
/*498311*/      OPC_MoveChild2,
/*498312*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498315*/      OPC_MoveParent,
/*498316*/      OPC_CheckType, MVT::v8i32,
/*498318*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498321*/      OPC_EmitMergeInputChains1_0,
/*498322*/      OPC_EmitConvertToTarget, 3,
/*498324*/      OPC_EmitNodeXForm, 24, 9, // BlendCommuteImm8
/*498327*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86Blendi:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 31
                // Dst: (VPBLENDDYrmi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm8:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*498340*/    /*Scope*/ 7|128,1/*135*/, /*->498477*/
/*498342*/      OPC_RecordChild0, // #0 = $src1
/*498343*/      OPC_Scope, 86, /*->498431*/ // 2 children in Scope
/*498345*/        OPC_RecordChild1, // #1 = $src2
/*498346*/        OPC_RecordChild2, // #2 = $src3
/*498347*/        OPC_MoveChild2,
/*498348*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498351*/        OPC_MoveParent,
/*498352*/        OPC_SwitchType /*4 cases */, 30, MVT::v8i16,// ->498385
/*498355*/          OPC_Scope, 13, /*->498370*/ // 2 children in Scope
/*498357*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*498359*/            OPC_EmitConvertToTarget, 2,
/*498361*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrri), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Blendi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VPBLENDWrri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*498370*/          /*Scope*/ 13, /*->498384*/
/*498371*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*498373*/            OPC_EmitConvertToTarget, 2,
/*498375*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrri), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Blendi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (PBLENDWrri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*498384*/          0, /*End of Scope*/
/*498385*/        /*SwitchType*/ 13, MVT::v16i16,// ->498400
/*498387*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*498389*/          OPC_EmitConvertToTarget, 2,
/*498391*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWYrri), 0,
                        MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86Blendi:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPBLENDWYrri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*498400*/        /*SwitchType*/ 13, MVT::v4i32,// ->498415
/*498402*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*498404*/          OPC_EmitConvertToTarget, 2,
/*498406*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDrri), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86Blendi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPBLENDDrri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*498415*/        /*SwitchType*/ 13, MVT::v8i32,// ->498430
/*498417*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*498419*/          OPC_EmitConvertToTarget, 2,
/*498421*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrri), 0,
                        MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86Blendi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPBLENDDYrri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*498430*/        0, // EndSwitchType
/*498431*/      /*Scope*/ 44, /*->498476*/
/*498432*/        OPC_MoveChild1,
/*498433*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498436*/        OPC_RecordMemRef,
/*498437*/        OPC_RecordNode, // #1 = 'ld' chained node
/*498438*/        OPC_CheckFoldableChainNode,
/*498439*/        OPC_RecordChild1, // #2 = $src2
/*498440*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498442*/        OPC_CheckPredicate, 9, // Predicate_load
/*498444*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*498446*/        OPC_MoveParent,
/*498447*/        OPC_RecordChild2, // #3 = $src3
/*498448*/        OPC_MoveChild2,
/*498449*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498452*/        OPC_MoveParent,
/*498453*/        OPC_CheckType, MVT::v4f32,
/*498455*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*498457*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498460*/        OPC_EmitMergeInputChains1_1,
/*498461*/        OPC_EmitConvertToTarget, 3,
/*498463*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86Blendi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                  // Dst: (VBLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*498476*/      0, /*End of Scope*/
/*498477*/    /*Scope*/ 48, /*->498526*/
/*498478*/      OPC_MoveChild0,
/*498479*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498482*/      OPC_RecordMemRef,
/*498483*/      OPC_RecordNode, // #0 = 'ld' chained node
/*498484*/      OPC_CheckFoldableChainNode,
/*498485*/      OPC_RecordChild1, // #1 = $src2
/*498486*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498488*/      OPC_CheckPredicate, 9, // Predicate_load
/*498490*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498492*/      OPC_MoveParent,
/*498493*/      OPC_RecordChild1, // #2 = $src1
/*498494*/      OPC_RecordChild2, // #3 = $src3
/*498495*/      OPC_MoveChild2,
/*498496*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498499*/      OPC_MoveParent,
/*498500*/      OPC_CheckType, MVT::v4f32,
/*498502*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*498504*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498507*/      OPC_EmitMergeInputChains1_0,
/*498508*/      OPC_EmitConvertToTarget, 3,
/*498510*/      OPC_EmitNodeXForm, 25, 9, // BlendCommuteImm4
/*498513*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86Blendi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm4:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*498526*/    /*Scope*/ 45, /*->498572*/
/*498527*/      OPC_RecordChild0, // #0 = $src1
/*498528*/      OPC_MoveChild1,
/*498529*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498532*/      OPC_RecordMemRef,
/*498533*/      OPC_RecordNode, // #1 = 'ld' chained node
/*498534*/      OPC_CheckFoldableChainNode,
/*498535*/      OPC_RecordChild1, // #2 = $src2
/*498536*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498538*/      OPC_CheckPredicate, 9, // Predicate_load
/*498540*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498542*/      OPC_MoveParent,
/*498543*/      OPC_RecordChild2, // #3 = $src3
/*498544*/      OPC_MoveChild2,
/*498545*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498548*/      OPC_MoveParent,
/*498549*/      OPC_CheckType, MVT::v8f32,
/*498551*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*498553*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498556*/      OPC_EmitMergeInputChains1_1,
/*498557*/      OPC_EmitConvertToTarget, 3,
/*498559*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*498572*/    /*Scope*/ 48, /*->498621*/
/*498573*/      OPC_MoveChild0,
/*498574*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498577*/      OPC_RecordMemRef,
/*498578*/      OPC_RecordNode, // #0 = 'ld' chained node
/*498579*/      OPC_CheckFoldableChainNode,
/*498580*/      OPC_RecordChild1, // #1 = $src2
/*498581*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498583*/      OPC_CheckPredicate, 9, // Predicate_load
/*498585*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498587*/      OPC_MoveParent,
/*498588*/      OPC_RecordChild1, // #2 = $src1
/*498589*/      OPC_RecordChild2, // #3 = $src3
/*498590*/      OPC_MoveChild2,
/*498591*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498594*/      OPC_MoveParent,
/*498595*/      OPC_CheckType, MVT::v8f32,
/*498597*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*498599*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498602*/      OPC_EmitMergeInputChains1_0,
/*498603*/      OPC_EmitConvertToTarget, 3,
/*498605*/      OPC_EmitNodeXForm, 24, 9, // BlendCommuteImm8
/*498608*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86Blendi:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm8:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*498621*/    /*Scope*/ 45, /*->498667*/
/*498622*/      OPC_RecordChild0, // #0 = $src1
/*498623*/      OPC_MoveChild1,
/*498624*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498627*/      OPC_RecordMemRef,
/*498628*/      OPC_RecordNode, // #1 = 'ld' chained node
/*498629*/      OPC_CheckFoldableChainNode,
/*498630*/      OPC_RecordChild1, // #2 = $src2
/*498631*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498633*/      OPC_CheckPredicate, 9, // Predicate_load
/*498635*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498637*/      OPC_MoveParent,
/*498638*/      OPC_RecordChild2, // #3 = $src3
/*498639*/      OPC_MoveChild2,
/*498640*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498643*/      OPC_MoveParent,
/*498644*/      OPC_CheckType, MVT::v2f64,
/*498646*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*498648*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498651*/      OPC_EmitMergeInputChains1_1,
/*498652*/      OPC_EmitConvertToTarget, 3,
/*498654*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*498667*/    /*Scope*/ 48, /*->498716*/
/*498668*/      OPC_MoveChild0,
/*498669*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498672*/      OPC_RecordMemRef,
/*498673*/      OPC_RecordNode, // #0 = 'ld' chained node
/*498674*/      OPC_CheckFoldableChainNode,
/*498675*/      OPC_RecordChild1, // #1 = $src2
/*498676*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498678*/      OPC_CheckPredicate, 9, // Predicate_load
/*498680*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498682*/      OPC_MoveParent,
/*498683*/      OPC_RecordChild1, // #2 = $src1
/*498684*/      OPC_RecordChild2, // #3 = $src3
/*498685*/      OPC_MoveChild2,
/*498686*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498689*/      OPC_MoveParent,
/*498690*/      OPC_CheckType, MVT::v2f64,
/*498692*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*498694*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498697*/      OPC_EmitMergeInputChains1_0,
/*498698*/      OPC_EmitConvertToTarget, 3,
/*498700*/      OPC_EmitNodeXForm, 26, 9, // BlendCommuteImm2
/*498703*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86Blendi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm2:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*498716*/    /*Scope*/ 45, /*->498762*/
/*498717*/      OPC_RecordChild0, // #0 = $src1
/*498718*/      OPC_MoveChild1,
/*498719*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498722*/      OPC_RecordMemRef,
/*498723*/      OPC_RecordNode, // #1 = 'ld' chained node
/*498724*/      OPC_CheckFoldableChainNode,
/*498725*/      OPC_RecordChild1, // #2 = $src2
/*498726*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498728*/      OPC_CheckPredicate, 9, // Predicate_load
/*498730*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498732*/      OPC_MoveParent,
/*498733*/      OPC_RecordChild2, // #3 = $src3
/*498734*/      OPC_MoveChild2,
/*498735*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498738*/      OPC_MoveParent,
/*498739*/      OPC_CheckType, MVT::v4f64,
/*498741*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*498743*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498746*/      OPC_EmitMergeInputChains1_1,
/*498747*/      OPC_EmitConvertToTarget, 3,
/*498749*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*498762*/    /*Scope*/ 48, /*->498811*/
/*498763*/      OPC_MoveChild0,
/*498764*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498767*/      OPC_RecordMemRef,
/*498768*/      OPC_RecordNode, // #0 = 'ld' chained node
/*498769*/      OPC_CheckFoldableChainNode,
/*498770*/      OPC_RecordChild1, // #1 = $src2
/*498771*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498773*/      OPC_CheckPredicate, 9, // Predicate_load
/*498775*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498777*/      OPC_MoveParent,
/*498778*/      OPC_RecordChild1, // #2 = $src1
/*498779*/      OPC_RecordChild2, // #3 = $src3
/*498780*/      OPC_MoveChild2,
/*498781*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498784*/      OPC_MoveParent,
/*498785*/      OPC_CheckType, MVT::v4f64,
/*498787*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*498789*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498792*/      OPC_EmitMergeInputChains1_0,
/*498793*/      OPC_EmitConvertToTarget, 3,
/*498795*/      OPC_EmitNodeXForm, 25, 9, // BlendCommuteImm4
/*498798*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86Blendi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm4:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*498811*/    /*Scope*/ 47, /*->498859*/
/*498812*/      OPC_RecordChild0, // #0 = $src1
/*498813*/      OPC_MoveChild1,
/*498814*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498817*/      OPC_RecordMemRef,
/*498818*/      OPC_RecordNode, // #1 = 'ld' chained node
/*498819*/      OPC_CheckFoldableChainNode,
/*498820*/      OPC_RecordChild1, // #2 = $src2
/*498821*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498823*/      OPC_CheckPredicate, 9, // Predicate_load
/*498825*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498827*/      OPC_CheckPredicate, 48, // Predicate_memop
/*498829*/      OPC_MoveParent,
/*498830*/      OPC_RecordChild2, // #3 = $src3
/*498831*/      OPC_MoveChild2,
/*498832*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498835*/      OPC_MoveParent,
/*498836*/      OPC_CheckType, MVT::v4f32,
/*498838*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*498840*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498843*/      OPC_EmitMergeInputChains1_1,
/*498844*/      OPC_EmitConvertToTarget, 3,
/*498846*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (BLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*498859*/    /*Scope*/ 48, /*->498908*/
/*498860*/      OPC_MoveChild0,
/*498861*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498864*/      OPC_RecordMemRef,
/*498865*/      OPC_RecordNode, // #0 = 'ld' chained node
/*498866*/      OPC_CheckFoldableChainNode,
/*498867*/      OPC_RecordChild1, // #1 = $src2
/*498868*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498870*/      OPC_CheckPredicate, 9, // Predicate_load
/*498872*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498874*/      OPC_CheckPredicate, 48, // Predicate_memop
/*498876*/      OPC_MoveParent,
/*498877*/      OPC_RecordChild1, // #2 = $src1
/*498878*/      OPC_RecordChild2, // #3 = $src3
/*498879*/      OPC_MoveChild2,
/*498880*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498883*/      OPC_MoveParent,
/*498884*/      OPC_CheckType, MVT::v4f32,
/*498886*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498889*/      OPC_EmitMergeInputChains1_0,
/*498890*/      OPC_EmitConvertToTarget, 3,
/*498892*/      OPC_EmitNodeXForm, 25, 9, // BlendCommuteImm4
/*498895*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86Blendi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (BLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm4:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*498908*/    /*Scope*/ 47, /*->498956*/
/*498909*/      OPC_RecordChild0, // #0 = $src1
/*498910*/      OPC_MoveChild1,
/*498911*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498914*/      OPC_RecordMemRef,
/*498915*/      OPC_RecordNode, // #1 = 'ld' chained node
/*498916*/      OPC_CheckFoldableChainNode,
/*498917*/      OPC_RecordChild1, // #2 = $src2
/*498918*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498920*/      OPC_CheckPredicate, 9, // Predicate_load
/*498922*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498924*/      OPC_CheckPredicate, 48, // Predicate_memop
/*498926*/      OPC_MoveParent,
/*498927*/      OPC_RecordChild2, // #3 = $src3
/*498928*/      OPC_MoveChild2,
/*498929*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498932*/      OPC_MoveParent,
/*498933*/      OPC_CheckType, MVT::v2f64,
/*498935*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*498937*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498940*/      OPC_EmitMergeInputChains1_1,
/*498941*/      OPC_EmitConvertToTarget, 3,
/*498943*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (BLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*498956*/    /*Scope*/ 48, /*->499005*/
/*498957*/      OPC_MoveChild0,
/*498958*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*498961*/      OPC_RecordMemRef,
/*498962*/      OPC_RecordNode, // #0 = 'ld' chained node
/*498963*/      OPC_CheckFoldableChainNode,
/*498964*/      OPC_RecordChild1, // #1 = $src2
/*498965*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498967*/      OPC_CheckPredicate, 9, // Predicate_load
/*498969*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*498971*/      OPC_CheckPredicate, 48, // Predicate_memop
/*498973*/      OPC_MoveParent,
/*498974*/      OPC_RecordChild1, // #2 = $src1
/*498975*/      OPC_RecordChild2, // #3 = $src3
/*498976*/      OPC_MoveChild2,
/*498977*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*498980*/      OPC_MoveParent,
/*498981*/      OPC_CheckType, MVT::v2f64,
/*498983*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*498986*/      OPC_EmitMergeInputChains1_0,
/*498987*/      OPC_EmitConvertToTarget, 3,
/*498989*/      OPC_EmitNodeXForm, 26, 9, // BlendCommuteImm2
/*498992*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86Blendi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (BLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm2:{ *:[i8] } (imm:{ *:[i8] }):$src3))
/*499005*/    /*Scope*/ 104, /*->499110*/
/*499006*/      OPC_RecordChild0, // #0 = $src1
/*499007*/      OPC_RecordChild1, // #1 = $src2
/*499008*/      OPC_RecordChild2, // #2 = $src3
/*499009*/      OPC_MoveChild2,
/*499010*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499013*/      OPC_MoveParent,
/*499014*/      OPC_SwitchType /*4 cases */, 30, MVT::v4f32,// ->499047
/*499017*/        OPC_Scope, 13, /*->499032*/ // 2 children in Scope
/*499019*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*499021*/          OPC_EmitConvertToTarget, 2,
/*499023*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86Blendi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VBLENDPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*499032*/        /*Scope*/ 13, /*->499046*/
/*499033*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*499035*/          OPC_EmitConvertToTarget, 2,
/*499037*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86Blendi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (BLENDPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*499046*/        0, /*End of Scope*/
/*499047*/      /*SwitchType*/ 13, MVT::v8f32,// ->499062
/*499049*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*499051*/        OPC_EmitConvertToTarget, 2,
/*499053*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrri), 0,
                      MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Blendi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VBLENDPSYrri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*499062*/      /*SwitchType*/ 30, MVT::v2f64,// ->499094
/*499064*/        OPC_Scope, 13, /*->499079*/ // 2 children in Scope
/*499066*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*499068*/          OPC_EmitConvertToTarget, 2,
/*499070*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86Blendi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VBLENDPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*499079*/        /*Scope*/ 13, /*->499093*/
/*499080*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*499082*/          OPC_EmitConvertToTarget, 2,
/*499084*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86Blendi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (BLENDPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*499093*/        0, /*End of Scope*/
/*499094*/      /*SwitchType*/ 13, MVT::v4f64,// ->499109
/*499096*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*499098*/        OPC_EmitConvertToTarget, 2,
/*499100*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDYrri), 0,
                      MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Blendi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VBLENDPDYrri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*499109*/      0, // EndSwitchType
/*499110*/    0, /*End of Scope*/
/*499111*/  /*SwitchOpcode*/ 19|128,39/*5011*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->504126
/*499115*/    OPC_Scope, 25|128,5/*665*/, /*->499783*/ // 7 children in Scope
/*499118*/      OPC_RecordNode, // #0 = $ins
/*499119*/      OPC_RecordChild0, // #1 = $src1
/*499120*/      OPC_MoveChild1,
/*499121*/      OPC_SwitchOpcode /*2 cases */, 94|128,3/*478*/, TARGET_VAL(ISD::BITCAST),// ->499604
/*499126*/        OPC_MoveChild0,
/*499127*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*499130*/        OPC_RecordMemRef,
/*499131*/        OPC_RecordNode, // #2 = 'ld' chained node
/*499132*/        OPC_CheckFoldableChainNode,
/*499133*/        OPC_RecordChild1, // #3 = $src2
/*499134*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*499136*/        OPC_CheckPredicate, 9, // Predicate_load
/*499138*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*499140*/        OPC_SwitchType /*2 cases */, 96|128,2/*352*/, MVT::v2i64,// ->499496
/*499144*/          OPC_MoveParent,
/*499145*/          OPC_Scope, 55|128,1/*183*/, /*->499331*/ // 5 children in Scope
/*499148*/            OPC_MoveParent,
/*499149*/            OPC_MoveChild2,
/*499150*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499153*/            OPC_CheckType, MVT::iPTR,
/*499155*/            OPC_MoveParent,
/*499156*/            OPC_SwitchType /*3 cases */, 71, MVT::v8i32,// ->499230
/*499159*/              OPC_Scope, 22, /*->499183*/ // 3 children in Scope
/*499161*/                OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*499163*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499166*/                OPC_EmitMergeInputChains1_2,
/*499167*/                OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499170*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                          // Src: (insert_subvector:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 31
                          // Dst: (VINSERTF128rm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v8i32] }:$ins))
/*499183*/              /*Scope*/ 22, /*->499206*/
/*499184*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499186*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499189*/                OPC_EmitMergeInputChains1_2,
/*499190*/                OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499193*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                          // Src: (insert_subvector:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 31
                          // Dst: (VINSERTI128rm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v8i32] }:$ins))
/*499206*/              /*Scope*/ 22, /*->499229*/
/*499207*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*499209*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499212*/                OPC_EmitMergeInputChains1_2,
/*499213*/                OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499216*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                          // Src: (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3 - Complexity = 31
                          // Dst: (VINSERTI32x4Z256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] })):$src3))
/*499229*/              0, /*End of Scope*/
/*499230*/            /*SwitchType*/ 48, MVT::v16i16,// ->499280
/*499232*/              OPC_Scope, 22, /*->499256*/ // 2 children in Scope
/*499234*/                OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*499236*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499239*/                OPC_EmitMergeInputChains1_2,
/*499240*/                OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499243*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                          // Src: (insert_subvector:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 31
                          // Dst: (VINSERTF128rm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v16i16] }:$ins))
/*499256*/              /*Scope*/ 22, /*->499279*/
/*499257*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499259*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499262*/                OPC_EmitMergeInputChains1_2,
/*499263*/                OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499266*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                          // Src: (insert_subvector:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 31
                          // Dst: (VINSERTI128rm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v16i16] }:$ins))
/*499279*/              0, /*End of Scope*/
/*499280*/            /*SwitchType*/ 48, MVT::v32i8,// ->499330
/*499282*/              OPC_Scope, 22, /*->499306*/ // 2 children in Scope
/*499284*/                OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*499286*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499289*/                OPC_EmitMergeInputChains1_2,
/*499290*/                OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499293*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                          // Src: (insert_subvector:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 31
                          // Dst: (VINSERTF128rm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v32i8] }:$ins))
/*499306*/              /*Scope*/ 22, /*->499329*/
/*499307*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499309*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499312*/                OPC_EmitMergeInputChains1_2,
/*499313*/                OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499316*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                          // Src: (insert_subvector:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 31
                          // Dst: (VINSERTI128rm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v32i8] }:$ins))
/*499329*/              0, /*End of Scope*/
/*499330*/            0, // EndSwitchType
/*499331*/          /*Scope*/ 34, /*->499366*/
/*499332*/            OPC_CheckType, MVT::v4i32,
/*499334*/            OPC_MoveParent,
/*499335*/            OPC_MoveChild2,
/*499336*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499339*/            OPC_CheckType, MVT::iPTR,
/*499341*/            OPC_MoveParent,
/*499342*/            OPC_CheckType, MVT::v16i32,
/*499344*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499346*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499349*/            OPC_EmitMergeInputChains1_2,
/*499350*/            OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499353*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                      // Src: (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3 - Complexity = 31
                      // Dst: (VINSERTI32x4Zrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] })):$src3))
/*499366*/          /*Scope*/ 58, /*->499425*/
/*499367*/            OPC_MoveParent,
/*499368*/            OPC_MoveChild2,
/*499369*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499372*/            OPC_CheckType, MVT::iPTR,
/*499374*/            OPC_MoveParent,
/*499375*/            OPC_SwitchType /*2 cases */, 22, MVT::v16i16,// ->499400
/*499378*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*499380*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499383*/              OPC_EmitMergeInputChains1_2,
/*499384*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499387*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                        // Src: (insert_subvector:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 31
                        // Dst: (VINSERTI32x4Z256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*499400*/            /*SwitchType*/ 22, MVT::v32i8,// ->499424
/*499402*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*499404*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499407*/              OPC_EmitMergeInputChains1_2,
/*499408*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499411*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                        // Src: (insert_subvector:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 31
                        // Dst: (VINSERTI32x4Z256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*499424*/            0, // EndSwitchType
/*499425*/          /*Scope*/ 34, /*->499460*/
/*499426*/            OPC_CheckType, MVT::v8i16,
/*499428*/            OPC_MoveParent,
/*499429*/            OPC_MoveChild2,
/*499430*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499433*/            OPC_CheckType, MVT::iPTR,
/*499435*/            OPC_MoveParent,
/*499436*/            OPC_CheckType, MVT::v32i16,
/*499438*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499440*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499443*/            OPC_EmitMergeInputChains1_2,
/*499444*/            OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499447*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                      // Src: (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 31
                      // Dst: (VINSERTI32x4Zrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*499460*/          /*Scope*/ 34, /*->499495*/
/*499461*/            OPC_CheckType, MVT::v16i8,
/*499463*/            OPC_MoveParent,
/*499464*/            OPC_MoveChild2,
/*499465*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499468*/            OPC_CheckType, MVT::iPTR,
/*499470*/            OPC_MoveParent,
/*499471*/            OPC_CheckType, MVT::v64i8,
/*499473*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499475*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499478*/            OPC_EmitMergeInputChains1_2,
/*499479*/            OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499482*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                      // Src: (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 31
                      // Dst: (VINSERTI32x4Zrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*499495*/          0, /*End of Scope*/
/*499496*/        /*SwitchType*/ 105, MVT::v4i64,// ->499603
/*499498*/          OPC_MoveParent,
/*499499*/          OPC_SwitchType /*3 cases */, 32, MVT::v8i32,// ->499534
/*499502*/            OPC_MoveParent,
/*499503*/            OPC_MoveChild2,
/*499504*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499507*/            OPC_CheckType, MVT::iPTR,
/*499509*/            OPC_MoveParent,
/*499510*/            OPC_CheckType, MVT::v16i32,
/*499512*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499514*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499517*/            OPC_EmitMergeInputChains1_2,
/*499518*/            OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*499521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                      // Src: (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins - Complexity = 31
                      // Dst: (VINSERTI64x4Zrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*499534*/          /*SwitchType*/ 32, MVT::v16i16,// ->499568
/*499536*/            OPC_MoveParent,
/*499537*/            OPC_MoveChild2,
/*499538*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499541*/            OPC_CheckType, MVT::iPTR,
/*499543*/            OPC_MoveParent,
/*499544*/            OPC_CheckType, MVT::v32i16,
/*499546*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499548*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499551*/            OPC_EmitMergeInputChains1_2,
/*499552*/            OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*499555*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                      // Src: (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins - Complexity = 31
                      // Dst: (VINSERTI64x4Zrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*499568*/          /*SwitchType*/ 32, MVT::v32i8,// ->499602
/*499570*/            OPC_MoveParent,
/*499571*/            OPC_MoveChild2,
/*499572*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499575*/            OPC_CheckType, MVT::iPTR,
/*499577*/            OPC_MoveParent,
/*499578*/            OPC_CheckType, MVT::v64i8,
/*499580*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499582*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499585*/            OPC_EmitMergeInputChains1_2,
/*499586*/            OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*499589*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                      // Src: (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins - Complexity = 31
                      // Dst: (VINSERTI64x4Zrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*499602*/          0, // EndSwitchType
/*499603*/        0, // EndSwitchType
/*499604*/      /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(ISD::LOAD),// ->499782
/*499608*/        OPC_RecordMemRef,
/*499609*/        OPC_RecordNode, // #2 = 'ld' chained node
/*499610*/        OPC_CheckFoldableChainNode,
/*499611*/        OPC_RecordChild1, // #3 = $src2
/*499612*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*499614*/        OPC_CheckPredicate, 9, // Predicate_load
/*499616*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*499618*/        OPC_Scope, 58, /*->499678*/ // 4 children in Scope
/*499620*/          OPC_MoveParent,
/*499621*/          OPC_MoveChild2,
/*499622*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499625*/          OPC_CheckType, MVT::iPTR,
/*499627*/          OPC_MoveParent,
/*499628*/          OPC_CheckType, MVT::v4i64,
/*499630*/          OPC_Scope, 22, /*->499654*/ // 2 children in Scope
/*499632*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*499634*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499637*/            OPC_EmitMergeInputChains1_2,
/*499638*/            OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499641*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                      // Src: (insert_subvector:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                      // Dst: (VINSERTF128rm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v4i64] }:$ins))
/*499654*/          /*Scope*/ 22, /*->499677*/
/*499655*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499657*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499660*/            OPC_EmitMergeInputChains1_2,
/*499661*/            OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499664*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                      // Src: (insert_subvector:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                      // Dst: (VINSERTI128rm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v4i64] }:$ins))
/*499677*/          0, /*End of Scope*/
/*499678*/        /*Scope*/ 34, /*->499713*/
/*499679*/          OPC_CheckType, MVT::v4i64,
/*499681*/          OPC_MoveParent,
/*499682*/          OPC_MoveChild2,
/*499683*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499686*/          OPC_CheckType, MVT::iPTR,
/*499688*/          OPC_MoveParent,
/*499689*/          OPC_CheckType, MVT::v8i64,
/*499691*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499693*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499696*/          OPC_EmitMergeInputChains1_2,
/*499697*/          OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*499700*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                    // Src: (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3 - Complexity = 28
                    // Dst: (VINSERTI64x4Zrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*499713*/        /*Scope*/ 32, /*->499746*/
/*499714*/          OPC_MoveParent,
/*499715*/          OPC_MoveChild2,
/*499716*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499719*/          OPC_CheckType, MVT::iPTR,
/*499721*/          OPC_MoveParent,
/*499722*/          OPC_CheckType, MVT::v4i64,
/*499724*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*499726*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499729*/          OPC_EmitMergeInputChains1_2,
/*499730*/          OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499733*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                    // Src: (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                    // Dst: (VINSERTI32x4Z256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ins))
/*499746*/        /*Scope*/ 34, /*->499781*/
/*499747*/          OPC_CheckType, MVT::v2i64,
/*499749*/          OPC_MoveParent,
/*499750*/          OPC_MoveChild2,
/*499751*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*499754*/          OPC_CheckType, MVT::iPTR,
/*499756*/          OPC_MoveParent,
/*499757*/          OPC_CheckType, MVT::v8i64,
/*499759*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499761*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*499764*/          OPC_EmitMergeInputChains1_2,
/*499765*/          OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*499768*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                    // Src: (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                    // Dst: (VINSERTI32x4Zrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*499781*/        0, /*End of Scope*/
/*499782*/      0, // EndSwitchOpcode
/*499783*/    /*Scope*/ 80|128,19/*2512*/, /*->502297*/
/*499785*/      OPC_MoveChild0,
/*499786*/      OPC_SwitchOpcode /*3 cases */, 44|128,4/*556*/, TARGET_VAL(ISD::BITCAST),// ->500347
/*499791*/        OPC_MoveChild0,
/*499792*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*499795*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*499797*/        OPC_SwitchType /*2 cases */, 43|128,1/*171*/, MVT::v8i32,// ->499972
/*499801*/          OPC_MoveParent,
/*499802*/          OPC_MoveParent,
/*499803*/          OPC_RecordChild1, // #0 = $src
/*499804*/          OPC_CheckChild2Integer, 0, 
/*499806*/          OPC_CheckChild2Type, MVT::iPTR,
/*499808*/          OPC_SwitchType /*3 cases */, 52, MVT::v4i64,// ->499863
/*499811*/            OPC_Scope, 24, /*->499837*/ // 2 children in Scope
/*499813*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*499815*/              OPC_EmitInteger, MVT::i64, 0, 
/*499818*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0,  // Results = #2
/*499825*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*499828*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v4i64, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR128:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                        // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src), sub_xmm:{ *:[i32] })
/*499837*/            /*Scope*/ 24, /*->499862*/
/*499838*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*499840*/              OPC_EmitInteger, MVT::i64, 0, 
/*499843*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                            MVT::v2i64, 1/*#Ops*/, 0,  // Results = #2
/*499850*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*499853*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v4i64, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v4i64] } (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                        // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src), sub_xmm:{ *:[i32] })
/*499862*/            0, /*End of Scope*/
/*499863*/          /*SwitchType*/ 52, MVT::v16i16,// ->499917
/*499865*/            OPC_Scope, 24, /*->499891*/ // 2 children in Scope
/*499867*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*499869*/              OPC_EmitInteger, MVT::i64, 0, 
/*499872*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                            MVT::v8i16, 1/*#Ops*/, 0,  // Results = #2
/*499879*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*499882*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v16i16, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR128:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                        // Dst: (SUBREG_TO_REG:{ *:[v16i16] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src), sub_xmm:{ *:[i32] })
/*499891*/            /*Scope*/ 24, /*->499916*/
/*499892*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*499894*/              OPC_EmitInteger, MVT::i64, 0, 
/*499897*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                            MVT::v8i16, 1/*#Ops*/, 0,  // Results = #2
/*499904*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*499907*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v16i16, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                        // Dst: (SUBREG_TO_REG:{ *:[v16i16] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src), sub_xmm:{ *:[i32] })
/*499916*/            0, /*End of Scope*/
/*499917*/          /*SwitchType*/ 52, MVT::v32i8,// ->499971
/*499919*/            OPC_Scope, 24, /*->499945*/ // 2 children in Scope
/*499921*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*499923*/              OPC_EmitInteger, MVT::i64, 0, 
/*499926*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                            MVT::v16i8, 1/*#Ops*/, 0,  // Results = #2
/*499933*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*499936*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v32i8, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR128:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                        // Dst: (SUBREG_TO_REG:{ *:[v32i8] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src), sub_xmm:{ *:[i32] })
/*499945*/            /*Scope*/ 24, /*->499970*/
/*499946*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*499948*/              OPC_EmitInteger, MVT::i64, 0, 
/*499951*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                            MVT::v16i8, 1/*#Ops*/, 0,  // Results = #2
/*499958*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*499961*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v32i8, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                        // Dst: (SUBREG_TO_REG:{ *:[v32i8] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src), sub_xmm:{ *:[i32] })
/*499970*/            0, /*End of Scope*/
/*499971*/          0, // EndSwitchType
/*499972*/        /*SwitchType*/ 115|128,2/*371*/, MVT::v16i32,// ->500346
/*499975*/          OPC_MoveParent,
/*499976*/          OPC_MoveParent,
/*499977*/          OPC_RecordChild1, // #0 = $src
/*499978*/          OPC_SwitchType /*3 cases */, 120, MVT::v8i64,// ->500101
/*499981*/            OPC_Scope, 58, /*->500041*/ // 2 children in Scope
/*499983*/              OPC_CheckChild1Type, MVT::v2i64,
/*499985*/              OPC_CheckChild2Integer, 0, 
/*499987*/              OPC_CheckChild2Type, MVT::iPTR,
/*499989*/              OPC_Scope, 24, /*->500015*/ // 2 children in Scope
/*499991*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*499993*/                OPC_EmitInteger, MVT::i64, 0, 
/*499996*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                              MVT::v2i64, 1/*#Ops*/, 0,  // Results = #2
/*500003*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500006*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src), sub_xmm:{ *:[i32] })
/*500015*/              /*Scope*/ 24, /*->500040*/
/*500016*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*500018*/                OPC_EmitInteger, MVT::i64, 0, 
/*500021*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                              MVT::v2i64, 1/*#Ops*/, 0,  // Results = #2
/*500028*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500031*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR128:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src), sub_xmm:{ *:[i32] })
/*500040*/              0, /*End of Scope*/
/*500041*/            /*Scope*/ 58, /*->500100*/
/*500042*/              OPC_CheckChild1Type, MVT::v4i64,
/*500044*/              OPC_CheckChild2Integer, 0, 
/*500046*/              OPC_CheckChild2Type, MVT::iPTR,
/*500048*/              OPC_Scope, 24, /*->500074*/ // 2 children in Scope
/*500050*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*500052*/                OPC_EmitInteger, MVT::i64, 0, 
/*500055*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z256rr), 0,
                              MVT::v4i64, 1/*#Ops*/, 0,  // Results = #2
/*500062*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500065*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR256X:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i64] }, (VMOVDQA64Z256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src), sub_ymm:{ *:[i32] })
/*500074*/              /*Scope*/ 24, /*->500099*/
/*500075*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*500077*/                OPC_EmitInteger, MVT::i64, 0, 
/*500080*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQAYrr), 0,
                              MVT::v4i64, 1/*#Ops*/, 0,  // Results = #2
/*500087*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500090*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8i64] } (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR256:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i64] }, (VMOVDQAYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src), sub_ymm:{ *:[i32] })
/*500099*/              0, /*End of Scope*/
/*500100*/            0, /*End of Scope*/
/*500101*/          /*SwitchType*/ 120, MVT::v32i16,// ->500223
/*500103*/            OPC_Scope, 58, /*->500163*/ // 2 children in Scope
/*500105*/              OPC_CheckChild1Type, MVT::v8i16,
/*500107*/              OPC_CheckChild2Integer, 0, 
/*500109*/              OPC_CheckChild2Type, MVT::iPTR,
/*500111*/              OPC_Scope, 24, /*->500137*/ // 2 children in Scope
/*500113*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*500115*/                OPC_EmitInteger, MVT::i64, 0, 
/*500118*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                              MVT::v8i16, 1/*#Ops*/, 0,  // Results = #2
/*500125*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500128*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v32i16, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v32i16] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src), sub_xmm:{ *:[i32] })
/*500137*/              /*Scope*/ 24, /*->500162*/
/*500138*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*500140*/                OPC_EmitInteger, MVT::i64, 0, 
/*500143*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                              MVT::v8i16, 1/*#Ops*/, 0,  // Results = #2
/*500150*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500153*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v32i16, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR128:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v32i16] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src), sub_xmm:{ *:[i32] })
/*500162*/              0, /*End of Scope*/
/*500163*/            /*Scope*/ 58, /*->500222*/
/*500164*/              OPC_CheckChild1Type, MVT::v16i16,
/*500166*/              OPC_CheckChild2Integer, 0, 
/*500168*/              OPC_CheckChild2Type, MVT::iPTR,
/*500170*/              OPC_Scope, 24, /*->500196*/ // 2 children in Scope
/*500172*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*500174*/                OPC_EmitInteger, MVT::i64, 0, 
/*500177*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z256rr), 0,
                              MVT::v16i16, 1/*#Ops*/, 0,  // Results = #2
/*500184*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500187*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v32i16, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR256X:{ *:[v16i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v32i16] } 0:{ *:[i64] }, (VMOVDQA64Z256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src), sub_ymm:{ *:[i32] })
/*500196*/              /*Scope*/ 24, /*->500221*/
/*500197*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*500199*/                OPC_EmitInteger, MVT::i64, 0, 
/*500202*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQAYrr), 0,
                              MVT::v16i16, 1/*#Ops*/, 0,  // Results = #2
/*500209*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500212*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v32i16, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR256:{ *:[v16i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v32i16] } 0:{ *:[i64] }, (VMOVDQAYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src), sub_ymm:{ *:[i32] })
/*500221*/              0, /*End of Scope*/
/*500222*/            0, /*End of Scope*/
/*500223*/          /*SwitchType*/ 120, MVT::v64i8,// ->500345
/*500225*/            OPC_Scope, 58, /*->500285*/ // 2 children in Scope
/*500227*/              OPC_CheckChild1Type, MVT::v16i8,
/*500229*/              OPC_CheckChild2Integer, 0, 
/*500231*/              OPC_CheckChild2Type, MVT::iPTR,
/*500233*/              OPC_Scope, 24, /*->500259*/ // 2 children in Scope
/*500235*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*500237*/                OPC_EmitInteger, MVT::i64, 0, 
/*500240*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                              MVT::v16i8, 1/*#Ops*/, 0,  // Results = #2
/*500247*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500250*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v64i8, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v64i8] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src), sub_xmm:{ *:[i32] })
/*500259*/              /*Scope*/ 24, /*->500284*/
/*500260*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*500262*/                OPC_EmitInteger, MVT::i64, 0, 
/*500265*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                              MVT::v16i8, 1/*#Ops*/, 0,  // Results = #2
/*500272*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500275*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v64i8, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR128:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v64i8] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src), sub_xmm:{ *:[i32] })
/*500284*/              0, /*End of Scope*/
/*500285*/            /*Scope*/ 58, /*->500344*/
/*500286*/              OPC_CheckChild1Type, MVT::v32i8,
/*500288*/              OPC_CheckChild2Integer, 0, 
/*500290*/              OPC_CheckChild2Type, MVT::iPTR,
/*500292*/              OPC_Scope, 24, /*->500318*/ // 2 children in Scope
/*500294*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*500296*/                OPC_EmitInteger, MVT::i64, 0, 
/*500299*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z256rr), 0,
                              MVT::v32i8, 1/*#Ops*/, 0,  // Results = #2
/*500306*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500309*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v64i8, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR256X:{ *:[v32i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v64i8] } 0:{ *:[i64] }, (VMOVDQA64Z256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src), sub_ymm:{ *:[i32] })
/*500318*/              /*Scope*/ 24, /*->500343*/
/*500319*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*500321*/                OPC_EmitInteger, MVT::i64, 0, 
/*500324*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQAYrr), 0,
                              MVT::v32i8, 1/*#Ops*/, 0,  // Results = #2
/*500331*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500334*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v64i8, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR256:{ *:[v32i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v64i8] } 0:{ *:[i64] }, (VMOVDQAYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src), sub_ymm:{ *:[i32] })
/*500343*/              0, /*End of Scope*/
/*500344*/            0, /*End of Scope*/
/*500345*/          0, // EndSwitchType
/*500346*/        0, // EndSwitchType
/*500347*/      /*SwitchOpcode*/ 54|128,10/*1334*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->501685
/*500351*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*500353*/        OPC_MoveParent,
/*500354*/        OPC_Scope, 66, /*->500422*/ // 2 children in Scope
/*500356*/          OPC_MoveChild1,
/*500357*/          OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*500360*/          OPC_RecordChild0, // #0 = $src
/*500361*/          OPC_CheckChild0Type, MVT::i8,
/*500363*/          OPC_CheckType, MVT::v1i1,
/*500365*/          OPC_MoveParent,
/*500366*/          OPC_CheckChild2Integer, 0, 
/*500368*/          OPC_CheckChild2Type, MVT::iPTR,
/*500370*/          OPC_CheckType, MVT::v16i1,
/*500372*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*500374*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*500380*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*500383*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*500392*/          OPC_EmitInteger, MVT::i32, 1, 
/*500395*/          OPC_EmitNode2, TARGET_VAL(X86::AND32ri8), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 3, 4,  // Results = #5 #6
/*500404*/          OPC_EmitNode1, TARGET_VAL(X86::KMOVWkr), 0,
                        MVT::v16i1, 1/*#Ops*/, 5,  // Results = #7
/*500411*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*500414*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 7, 8, 
                    // Src: (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, (scalar_to_vector:{ *:[v1i1] } GR8:{ *:[i8] }:$src), 0:{ *:[iPTR] }) - Complexity = 15
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (KMOVWkr:{ *:[v16i1] } (AND32ri8:{ *:[i32] }:{ *:[i32] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }), 1:{ *:[i32] })), VK16:{ *:[i32] })
/*500422*/        /*Scope*/ 108|128,9/*1260*/, /*->501684*/
/*500424*/          OPC_RecordChild1, // #0 = $src
/*500425*/          OPC_Scope, 81|128,2/*337*/, /*->500765*/ // 2 children in Scope
/*500428*/            OPC_MoveChild1,
/*500429*/            OPC_SwitchType /*6 cases */, 69, MVT::v1i1,// ->500501
/*500432*/              OPC_CheckPredicate, 97, // Predicate_maskzeroupperv1i1
/*500434*/              OPC_MoveParent,
/*500435*/              OPC_CheckChild2Integer, 0, 
/*500437*/              OPC_CheckChild2Type, MVT::iPTR,
/*500439*/              OPC_SwitchType /*4 cases */, 13, MVT::v32i1,// ->500455
/*500442*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*500444*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*500447*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>>, VK1:{ *:[v1i1] }<<P:Predicate_maskzeroupperv1i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK1:{ *:[v1i1] }:$src, VK32:{ *:[i32] })
/*500455*/              /*SwitchType*/ 13, MVT::v64i1,// ->500470
/*500457*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*500459*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*500462*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK1:{ *:[v1i1] }<<P:Predicate_maskzeroupperv1i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK1:{ *:[v1i1] }:$src, VK64:{ *:[i32] })
/*500470*/              /*SwitchType*/ 13, MVT::v16i1,// ->500485
/*500472*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*500474*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*500477*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, VK1:{ *:[v1i1] }<<P:Predicate_maskzeroupperv1i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src, VK16:{ *:[i32] })
/*500485*/              /*SwitchType*/ 13, MVT::v8i1,// ->500500
/*500487*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*500489*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*500492*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllZerosV>>, VK1:{ *:[v1i1] }<<P:Predicate_maskzeroupperv1i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK1:{ *:[v1i1] }:$src, VK8:{ *:[i32] })
/*500500*/              0, // EndSwitchType
/*500501*/            /*SwitchType*/ 54, MVT::v8i1,// ->500557
/*500503*/              OPC_CheckPredicate, 97, // Predicate_maskzeroupperv8i1
/*500505*/              OPC_MoveParent,
/*500506*/              OPC_CheckChild2Integer, 0, 
/*500508*/              OPC_CheckChild2Type, MVT::iPTR,
/*500510*/              OPC_SwitchType /*3 cases */, 13, MVT::v32i1,// ->500526
/*500513*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*500515*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*500518*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>>, VK8:{ *:[v8i1] }<<P:Predicate_maskzeroupperv8i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$src, VK32:{ *:[i32] })
/*500526*/              /*SwitchType*/ 13, MVT::v64i1,// ->500541
/*500528*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*500530*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*500533*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK8:{ *:[v8i1] }<<P:Predicate_maskzeroupperv8i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK8:{ *:[v8i1] }:$src, VK64:{ *:[i32] })
/*500541*/              /*SwitchType*/ 13, MVT::v16i1,// ->500556
/*500543*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*500545*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*500548*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, VK8:{ *:[v8i1] }<<P:Predicate_maskzeroupperv8i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src, VK16:{ *:[i32] })
/*500556*/              0, // EndSwitchType
/*500557*/            /*SwitchType*/ 39, MVT::v16i1,// ->500598
/*500559*/              OPC_CheckPredicate, 97, // Predicate_maskzeroupperv16i1
/*500561*/              OPC_MoveParent,
/*500562*/              OPC_CheckChild2Integer, 0, 
/*500564*/              OPC_CheckChild2Type, MVT::iPTR,
/*500566*/              OPC_SwitchType /*2 cases */, 13, MVT::v32i1,// ->500582
/*500569*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*500571*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*500574*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>>, VK16:{ *:[v16i1] }<<P:Predicate_maskzeroupperv16i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$src, VK32:{ *:[i32] })
/*500582*/              /*SwitchType*/ 13, MVT::v64i1,// ->500597
/*500584*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*500586*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*500589*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK16:{ *:[v16i1] }<<P:Predicate_maskzeroupperv16i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$src, VK64:{ *:[i32] })
/*500597*/              0, // EndSwitchType
/*500598*/            /*SwitchType*/ 22, MVT::v32i1,// ->500622
/*500600*/              OPC_CheckPredicate, 97, // Predicate_maskzeroupperv32i1
/*500602*/              OPC_MoveParent,
/*500603*/              OPC_CheckChild2Integer, 0, 
/*500605*/              OPC_CheckChild2Type, MVT::iPTR,
/*500607*/              OPC_CheckType, MVT::v64i1,
/*500609*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*500611*/              OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*500614*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 1, 
                        // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK32:{ *:[v32i1] }<<P:Predicate_maskzeroupperv32i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                        // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$src, VK64:{ *:[i32] })
/*500622*/            /*SwitchType*/ 69, MVT::v2i1,// ->500693
/*500624*/              OPC_CheckPredicate, 97, // Predicate_maskzeroupperv2i1
/*500626*/              OPC_MoveParent,
/*500627*/              OPC_CheckChild2Integer, 0, 
/*500629*/              OPC_CheckChild2Type, MVT::iPTR,
/*500631*/              OPC_SwitchType /*4 cases */, 13, MVT::v8i1,// ->500647
/*500634*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*500636*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*500639*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllZerosV>>, VK2:{ *:[v2i1] }<<P:Predicate_maskzeroupperv2i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$src, VK8:{ *:[i32] })
/*500647*/              /*SwitchType*/ 13, MVT::v16i1,// ->500662
/*500649*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*500651*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*500654*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, VK2:{ *:[v2i1] }<<P:Predicate_maskzeroupperv2i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src, VK16:{ *:[i32] })
/*500662*/              /*SwitchType*/ 13, MVT::v32i1,// ->500677
/*500664*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*500666*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*500669*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>>, VK2:{ *:[v2i1] }<<P:Predicate_maskzeroupperv2i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK2:{ *:[v2i1] }:$src, VK32:{ *:[i32] })
/*500677*/              /*SwitchType*/ 13, MVT::v64i1,// ->500692
/*500679*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*500681*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*500684*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK2:{ *:[v2i1] }<<P:Predicate_maskzeroupperv2i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK2:{ *:[v2i1] }:$src, VK64:{ *:[i32] })
/*500692*/              0, // EndSwitchType
/*500693*/            /*SwitchType*/ 69, MVT::v4i1,// ->500764
/*500695*/              OPC_CheckPredicate, 97, // Predicate_maskzeroupperv4i1
/*500697*/              OPC_MoveParent,
/*500698*/              OPC_CheckChild2Integer, 0, 
/*500700*/              OPC_CheckChild2Type, MVT::iPTR,
/*500702*/              OPC_SwitchType /*4 cases */, 13, MVT::v8i1,// ->500718
/*500705*/                OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*500707*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*500710*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllZerosV>>, VK4:{ *:[v4i1] }<<P:Predicate_maskzeroupperv4i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$src, VK8:{ *:[i32] })
/*500718*/              /*SwitchType*/ 13, MVT::v16i1,// ->500733
/*500720*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*500722*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*500725*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, VK4:{ *:[v4i1] }<<P:Predicate_maskzeroupperv4i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src, VK16:{ *:[i32] })
/*500733*/              /*SwitchType*/ 13, MVT::v32i1,// ->500748
/*500735*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*500737*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*500740*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>>, VK4:{ *:[v4i1] }<<P:Predicate_maskzeroupperv4i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK4:{ *:[v4i1] }:$src, VK32:{ *:[i32] })
/*500748*/              /*SwitchType*/ 13, MVT::v64i1,// ->500763
/*500750*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*500752*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*500755*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK4:{ *:[v4i1] }<<P:Predicate_maskzeroupperv4i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK4:{ *:[v4i1] }:$src, VK64:{ *:[i32] })
/*500763*/              0, // EndSwitchType
/*500764*/            0, // EndSwitchType
/*500765*/          /*Scope*/ 20|128,7/*916*/, /*->501683*/
/*500767*/            OPC_CheckChild2Integer, 0, 
/*500769*/            OPC_Scope, 56, /*->500827*/ // 9 children in Scope
/*500771*/              OPC_CheckChild2Type, MVT::iPTR,
/*500773*/              OPC_CheckType, MVT::v8i32,
/*500775*/              OPC_Scope, 24, /*->500801*/ // 2 children in Scope
/*500777*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*500779*/                OPC_EmitInteger, MVT::i64, 0, 
/*500782*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                              MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*500789*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500792*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, VR128:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src), sub_xmm:{ *:[i32] })
/*500801*/              /*Scope*/ 24, /*->500826*/
/*500802*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*500804*/                OPC_EmitInteger, MVT::i64, 0, 
/*500807*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                              MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*500814*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500817*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8i32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>, VR128X:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src), sub_xmm:{ *:[i32] })
/*500826*/              0, /*End of Scope*/
/*500827*/            /*Scope*/ 58, /*->500886*/
/*500828*/              OPC_CheckChild1Type, MVT::v4i32,
/*500830*/              OPC_CheckChild2Type, MVT::iPTR,
/*500832*/              OPC_CheckType, MVT::v16i32,
/*500834*/              OPC_Scope, 24, /*->500860*/ // 2 children in Scope
/*500836*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*500838*/                OPC_EmitInteger, MVT::i64, 0, 
/*500841*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                              MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*500848*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500851*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16i32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, VR128X:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src), sub_xmm:{ *:[i32] })
/*500860*/              /*Scope*/ 24, /*->500885*/
/*500861*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*500863*/                OPC_EmitInteger, MVT::i64, 0, 
/*500866*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                              MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*500873*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500876*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16i32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, VR128:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src), sub_xmm:{ *:[i32] })
/*500885*/              0, /*End of Scope*/
/*500886*/            /*Scope*/ 58, /*->500945*/
/*500887*/              OPC_CheckChild1Type, MVT::v8i32,
/*500889*/              OPC_CheckChild2Type, MVT::iPTR,
/*500891*/              OPC_CheckType, MVT::v16i32,
/*500893*/              OPC_Scope, 24, /*->500919*/ // 2 children in Scope
/*500895*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*500897*/                OPC_EmitInteger, MVT::i64, 0, 
/*500900*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z256rr), 0,
                              MVT::v8i32, 1/*#Ops*/, 0,  // Results = #2
/*500907*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500910*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16i32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, VR256X:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i64] }, (VMOVDQA64Z256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src), sub_ymm:{ *:[i32] })
/*500919*/              /*Scope*/ 24, /*->500944*/
/*500920*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*500922*/                OPC_EmitInteger, MVT::i64, 0, 
/*500925*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQAYrr), 0,
                              MVT::v8i32, 1/*#Ops*/, 0,  // Results = #2
/*500932*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500935*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16i32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>, VR256:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i64] }, (VMOVDQAYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src), sub_ymm:{ *:[i32] })
/*500944*/              0, /*End of Scope*/
/*500945*/            /*Scope*/ 61|128,1/*189*/, /*->501136*/
/*500947*/              OPC_CheckChild1Type, MVT::v8i1,
/*500949*/              OPC_CheckChild2Type, MVT::iPTR,
/*500951*/              OPC_SwitchType /*3 cases */, 59, MVT::v16i1,// ->501013
/*500954*/                OPC_Scope, 20, /*->500976*/ // 2 children in Scope
/*500956*/                  OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*500958*/                  OPC_EmitNode1, TARGET_VAL(X86::KMOVBkk), 0,
                                MVT::v8i1, 1/*#Ops*/, 0,  // Results = #1
/*500965*/                  OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*500968*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v16i1, 2/*#Ops*/, 1, 2, 
                            // Src: (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, VK8:{ *:[v8i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (KMOVBkk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask), VK16:{ *:[i32] })
/*500976*/                /*Scope*/ 35, /*->501012*/
/*500977*/                  OPC_CheckPatternPredicate, 146, // (Subtarget->hasAVX512()) && (!Subtarget->hasDQI())
/*500979*/                  OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*500982*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*500990*/                  OPC_EmitInteger, MVT::i8, 8, 
/*500993*/                  OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLWri), 0,
                                MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501001*/                  OPC_EmitInteger, MVT::i8, 8, 
/*501004*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRWri), 0,
                                MVT::v16i1, 2/*#Ops*/, 4, 5, 
                            // Src: (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, VK8:{ *:[v8i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (KSHIFTRWri:{ *:[v16i1] } (KSHIFTLWri:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), 8:{ *:[i8] }), 8:{ *:[i8] })
/*501012*/                0, /*End of Scope*/
/*501013*/              /*SwitchType*/ 59, MVT::v32i1,// ->501074
/*501015*/                OPC_Scope, 20, /*->501037*/ // 2 children in Scope
/*501017*/                  OPC_CheckPatternPredicate, 182, // (Subtarget->hasBWI()) && (Subtarget->hasDQI())
/*501019*/                  OPC_EmitNode1, TARGET_VAL(X86::KMOVBkk), 0,
                                MVT::v8i1, 1/*#Ops*/, 0,  // Results = #1
/*501026*/                  OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*501029*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v32i1, 2/*#Ops*/, 1, 2, 
                            // Src: (insert_subvector:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>>, VK8:{ *:[v8i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (KMOVBkk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask), VK32:{ *:[i32] })
/*501037*/                /*Scope*/ 35, /*->501073*/
/*501038*/                  OPC_CheckPatternPredicate, 183, // (Subtarget->hasBWI()) && (!Subtarget->hasDQI())
/*501040*/                  OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*501043*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v32i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501051*/                  OPC_EmitInteger, MVT::i8, 24, 
/*501054*/                  OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLDri), 0,
                                MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501062*/                  OPC_EmitInteger, MVT::i8, 24, 
/*501065*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRDri), 0,
                                MVT::v32i1, 2/*#Ops*/, 4, 5, 
                            // Src: (insert_subvector:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>>, VK8:{ *:[v8i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (KSHIFTRDri:{ *:[v32i1] } (KSHIFTLDri:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$mask, VK32:{ *:[i32] }), 24:{ *:[i8] }), 24:{ *:[i8] })
/*501073*/                0, /*End of Scope*/
/*501074*/              /*SwitchType*/ 59, MVT::v64i1,// ->501135
/*501076*/                OPC_Scope, 20, /*->501098*/ // 2 children in Scope
/*501078*/                  OPC_CheckPatternPredicate, 182, // (Subtarget->hasBWI()) && (Subtarget->hasDQI())
/*501080*/                  OPC_EmitNode1, TARGET_VAL(X86::KMOVBkk), 0,
                                MVT::v8i1, 1/*#Ops*/, 0,  // Results = #1
/*501087*/                  OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501090*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v64i1, 2/*#Ops*/, 1, 2, 
                            // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK8:{ *:[v8i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } (KMOVBkk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask), VK64:{ *:[i32] })
/*501098*/                /*Scope*/ 35, /*->501134*/
/*501099*/                  OPC_CheckPatternPredicate, 183, // (Subtarget->hasBWI()) && (!Subtarget->hasDQI())
/*501101*/                  OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501104*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v64i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501112*/                  OPC_EmitInteger, MVT::i8, 56, 
/*501115*/                  OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLQri), 0,
                                MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501123*/                  OPC_EmitInteger, MVT::i8, 56, 
/*501126*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRQri), 0,
                                MVT::v64i1, 2/*#Ops*/, 4, 5, 
                            // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK8:{ *:[v8i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (KSHIFTRQri:{ *:[v64i1] } (KSHIFTLQri:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK8:{ *:[v8i1] }:$mask, VK64:{ *:[i32] }), 56:{ *:[i8] }), 56:{ *:[i8] })
/*501134*/                0, /*End of Scope*/
/*501135*/              0, // EndSwitchType
/*501136*/            /*Scope*/ 50, /*->501187*/
/*501137*/              OPC_CheckChild1Type, MVT::v16i1,
/*501139*/              OPC_CheckChild2Type, MVT::iPTR,
/*501141*/              OPC_SwitchType /*2 cases */, 20, MVT::v32i1,// ->501164
/*501144*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*501146*/                OPC_EmitNode1, TARGET_VAL(X86::KMOVWkk), 0,
                              MVT::v16i1, 1/*#Ops*/, 0,  // Results = #1
/*501153*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*501156*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 1, 2, 
                          // Src: (insert_subvector:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>>, VK16:{ *:[v16i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (KMOVWkk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask), VK32:{ *:[i32] })
/*501164*/              /*SwitchType*/ 20, MVT::v64i1,// ->501186
/*501166*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*501168*/                OPC_EmitNode1, TARGET_VAL(X86::KMOVWkk), 0,
                              MVT::v16i1, 1/*#Ops*/, 0,  // Results = #1
/*501175*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501178*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 1, 2, 
                          // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK16:{ *:[v16i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } (KMOVWkk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask), VK64:{ *:[i32] })
/*501186*/              0, // EndSwitchType
/*501187*/            /*Scope*/ 26, /*->501214*/
/*501188*/              OPC_CheckChild1Type, MVT::v32i1,
/*501190*/              OPC_CheckChild2Type, MVT::iPTR,
/*501192*/              OPC_CheckType, MVT::v64i1,
/*501194*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*501196*/              OPC_EmitNode1, TARGET_VAL(X86::KMOVDkk), 0,
                            MVT::v32i1, 1/*#Ops*/, 0,  // Results = #1
/*501203*/              OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501206*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v64i1, 2/*#Ops*/, 1, 2, 
                        // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK32:{ *:[v32i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                        // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } (KMOVDkk:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask), VK64:{ *:[i32] })
/*501214*/            /*Scope*/ 26|128,1/*154*/, /*->501370*/
/*501216*/              OPC_CheckChild1Type, MVT::v1i1,
/*501218*/              OPC_CheckChild2Type, MVT::iPTR,
/*501220*/              OPC_SwitchType /*4 cases */, 35, MVT::v16i1,// ->501258
/*501223*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501225*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*501228*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501236*/                OPC_EmitInteger, MVT::i8, 15, 
/*501239*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501247*/                OPC_EmitInteger, MVT::i8, 15, 
/*501250*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, VK1:{ *:[v1i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRWri:{ *:[v16i1] } (KSHIFTLWri:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$mask, VK16:{ *:[i32] }), 15:{ *:[i8] }), 15:{ *:[i8] })
/*501258*/              /*SwitchType*/ 35, MVT::v8i1,// ->501295
/*501260*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*501262*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*501265*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501273*/                OPC_EmitInteger, MVT::i8, 7, 
/*501276*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501284*/                OPC_EmitInteger, MVT::i8, 7, 
/*501287*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllZerosV>>, VK1:{ *:[v1i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRBri:{ *:[v8i1] } (KSHIFTLBri:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK1:{ *:[v1i1] }:$mask, VK8:{ *:[i32] }), 7:{ *:[i8] }), 7:{ *:[i8] })
/*501295*/              /*SwitchType*/ 35, MVT::v32i1,// ->501332
/*501297*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*501299*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*501302*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501310*/                OPC_EmitInteger, MVT::i8, 31, 
/*501313*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501321*/                OPC_EmitInteger, MVT::i8, 31, 
/*501324*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>>, VK1:{ *:[v1i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRDri:{ *:[v32i1] } (KSHIFTLDri:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK1:{ *:[v1i1] }:$mask, VK32:{ *:[i32] }), 31:{ *:[i8] }), 31:{ *:[i8] })
/*501332*/              /*SwitchType*/ 35, MVT::v64i1,// ->501369
/*501334*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*501336*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501339*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501347*/                OPC_EmitInteger, MVT::i8, 63, 
/*501350*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501358*/                OPC_EmitInteger, MVT::i8, 63, 
/*501361*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK1:{ *:[v1i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRQri:{ *:[v64i1] } (KSHIFTLQri:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK1:{ *:[v1i1] }:$mask, VK64:{ *:[i32] }), 63:{ *:[i8] }), 63:{ *:[i8] })
/*501369*/              0, // EndSwitchType
/*501370*/            /*Scope*/ 26|128,1/*154*/, /*->501526*/
/*501372*/              OPC_CheckChild1Type, MVT::v2i1,
/*501374*/              OPC_CheckChild2Type, MVT::iPTR,
/*501376*/              OPC_SwitchType /*4 cases */, 35, MVT::v16i1,// ->501414
/*501379*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501381*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*501384*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501392*/                OPC_EmitInteger, MVT::i8, 14, 
/*501395*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501403*/                OPC_EmitInteger, MVT::i8, 14, 
/*501406*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, VK2:{ *:[v2i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRWri:{ *:[v16i1] } (KSHIFTLWri:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$mask, VK16:{ *:[i32] }), 14:{ *:[i8] }), 14:{ *:[i8] })
/*501414*/              /*SwitchType*/ 35, MVT::v8i1,// ->501451
/*501416*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*501418*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*501421*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501429*/                OPC_EmitInteger, MVT::i8, 6, 
/*501432*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501440*/                OPC_EmitInteger, MVT::i8, 6, 
/*501443*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllZerosV>>, VK2:{ *:[v2i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRBri:{ *:[v8i1] } (KSHIFTLBri:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), 6:{ *:[i8] }), 6:{ *:[i8] })
/*501451*/              /*SwitchType*/ 35, MVT::v32i1,// ->501488
/*501453*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*501455*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*501458*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501466*/                OPC_EmitInteger, MVT::i8, 30, 
/*501469*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501477*/                OPC_EmitInteger, MVT::i8, 30, 
/*501480*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>>, VK2:{ *:[v2i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRDri:{ *:[v32i1] } (KSHIFTLDri:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK2:{ *:[v2i1] }:$mask, VK32:{ *:[i32] }), 30:{ *:[i8] }), 30:{ *:[i8] })
/*501488*/              /*SwitchType*/ 35, MVT::v64i1,// ->501525
/*501490*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*501492*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501495*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501503*/                OPC_EmitInteger, MVT::i8, 62, 
/*501506*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501514*/                OPC_EmitInteger, MVT::i8, 62, 
/*501517*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK2:{ *:[v2i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRQri:{ *:[v64i1] } (KSHIFTLQri:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK2:{ *:[v2i1] }:$mask, VK64:{ *:[i32] }), 62:{ *:[i8] }), 62:{ *:[i8] })
/*501525*/              0, // EndSwitchType
/*501526*/            /*Scope*/ 26|128,1/*154*/, /*->501682*/
/*501528*/              OPC_CheckChild1Type, MVT::v4i1,
/*501530*/              OPC_CheckChild2Type, MVT::iPTR,
/*501532*/              OPC_SwitchType /*4 cases */, 35, MVT::v16i1,// ->501570
/*501535*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501537*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*501540*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501548*/                OPC_EmitInteger, MVT::i8, 12, 
/*501551*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501559*/                OPC_EmitInteger, MVT::i8, 12, 
/*501562*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, VK4:{ *:[v4i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRWri:{ *:[v16i1] } (KSHIFTLWri:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), 12:{ *:[i8] }), 12:{ *:[i8] })
/*501570*/              /*SwitchType*/ 35, MVT::v8i1,// ->501607
/*501572*/                OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*501574*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*501577*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501585*/                OPC_EmitInteger, MVT::i8, 4, 
/*501588*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501596*/                OPC_EmitInteger, MVT::i8, 4, 
/*501599*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v8i1] } (build_vector:{ *:[v8i1] })<<P:Predicate_immAllZerosV>>, VK4:{ *:[v4i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRBri:{ *:[v8i1] } (KSHIFTLBri:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), 4:{ *:[i8] }), 4:{ *:[i8] })
/*501607*/              /*SwitchType*/ 35, MVT::v32i1,// ->501644
/*501609*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*501611*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*501614*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501622*/                OPC_EmitInteger, MVT::i8, 28, 
/*501625*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501633*/                OPC_EmitInteger, MVT::i8, 28, 
/*501636*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v32i1] } (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>>, VK4:{ *:[v4i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRDri:{ *:[v32i1] } (KSHIFTLDri:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK4:{ *:[v4i1] }:$mask, VK32:{ *:[i32] }), 28:{ *:[i8] }), 28:{ *:[i8] })
/*501644*/              /*SwitchType*/ 35, MVT::v64i1,// ->501681
/*501646*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*501648*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501651*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*501659*/                OPC_EmitInteger, MVT::i8, 60, 
/*501662*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*501670*/                OPC_EmitInteger, MVT::i8, 60, 
/*501673*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v64i1] } (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>>, VK4:{ *:[v4i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (KSHIFTRQri:{ *:[v64i1] } (KSHIFTLQri:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK4:{ *:[v4i1] }:$mask, VK64:{ *:[i32] }), 60:{ *:[i8] }), 60:{ *:[i8] })
/*501681*/              0, // EndSwitchType
/*501682*/            0, /*End of Scope*/
/*501683*/          0, /*End of Scope*/
/*501684*/        0, /*End of Scope*/
/*501685*/      /*SwitchOpcode*/ 95|128,4/*607*/, TARGET_VAL(ISD::UNDEF),// ->502296
/*501689*/        OPC_MoveParent,
/*501690*/        OPC_RecordChild1, // #0 = $src
/*501691*/        OPC_CheckChild2Integer, 0, 
/*501693*/        OPC_Scope, 15, /*->501710*/ // 16 children in Scope
/*501695*/          OPC_CheckChild2Type, MVT::iPTR,
/*501697*/          OPC_CheckType, MVT::v2i1,
/*501699*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*501702*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 0, 1, 
                    // Src: (insert_subvector:{ *:[v2i1] } (undef:{ *:[v2i1] }), VK1:{ *:[v1i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } VK1:{ *:[v1i1] }:$src, VK2:{ *:[i32] })
/*501710*/        /*Scope*/ 71, /*->501782*/
/*501711*/          OPC_CheckChild1Type, MVT::v1i1,
/*501713*/          OPC_CheckChild2Type, MVT::iPTR,
/*501715*/          OPC_SwitchType /*5 cases */, 11, MVT::v4i1,// ->501729
/*501718*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*501721*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v4i1] } (undef:{ *:[v4i1] }), VK1:{ *:[v1i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } VK1:{ *:[v1i1] }:$src, VK4:{ *:[i32] })
/*501729*/          /*SwitchType*/ 11, MVT::v8i1,// ->501742
/*501731*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*501734*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v8i1] } (undef:{ *:[v8i1] }), VK1:{ *:[v1i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK1:{ *:[v1i1] }:$src, VK8:{ *:[i32] })
/*501742*/          /*SwitchType*/ 11, MVT::v16i1,// ->501755
/*501744*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*501747*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v16i1] } (undef:{ *:[v16i1] }), VK1:{ *:[v1i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src, VK16:{ *:[i32] })
/*501755*/          /*SwitchType*/ 11, MVT::v32i1,// ->501768
/*501757*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*501760*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v32i1] } (undef:{ *:[v32i1] }), VK1:{ *:[v1i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK1:{ *:[v1i1] }:$src, VK32:{ *:[i32] })
/*501768*/          /*SwitchType*/ 11, MVT::v64i1,// ->501781
/*501770*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501773*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v64i1] } (undef:{ *:[v64i1] }), VK1:{ *:[v1i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK1:{ *:[v1i1] }:$src, VK64:{ *:[i32] })
/*501781*/          0, // EndSwitchType
/*501782*/        /*Scope*/ 71, /*->501854*/
/*501783*/          OPC_CheckChild1Type, MVT::v2i1,
/*501785*/          OPC_CheckChild2Type, MVT::iPTR,
/*501787*/          OPC_SwitchType /*5 cases */, 11, MVT::v4i1,// ->501801
/*501790*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*501793*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v4i1] } (undef:{ *:[v4i1] }), VK2:{ *:[v2i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } VK2:{ *:[v2i1] }:$src, VK4:{ *:[i32] })
/*501801*/          /*SwitchType*/ 11, MVT::v8i1,// ->501814
/*501803*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*501806*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v8i1] } (undef:{ *:[v8i1] }), VK2:{ *:[v2i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$src, VK8:{ *:[i32] })
/*501814*/          /*SwitchType*/ 11, MVT::v16i1,// ->501827
/*501816*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*501819*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v16i1] } (undef:{ *:[v16i1] }), VK2:{ *:[v2i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src, VK16:{ *:[i32] })
/*501827*/          /*SwitchType*/ 11, MVT::v32i1,// ->501840
/*501829*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*501832*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v32i1] } (undef:{ *:[v32i1] }), VK2:{ *:[v2i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK2:{ *:[v2i1] }:$src, VK32:{ *:[i32] })
/*501840*/          /*SwitchType*/ 11, MVT::v64i1,// ->501853
/*501842*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501845*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v64i1] } (undef:{ *:[v64i1] }), VK2:{ *:[v2i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK2:{ *:[v2i1] }:$src, VK64:{ *:[i32] })
/*501853*/          0, // EndSwitchType
/*501854*/        /*Scope*/ 58, /*->501913*/
/*501855*/          OPC_CheckChild1Type, MVT::v4i1,
/*501857*/          OPC_CheckChild2Type, MVT::iPTR,
/*501859*/          OPC_SwitchType /*4 cases */, 11, MVT::v8i1,// ->501873
/*501862*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*501865*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v8i1] } (undef:{ *:[v8i1] }), VK4:{ *:[v4i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$src, VK8:{ *:[i32] })
/*501873*/          /*SwitchType*/ 11, MVT::v16i1,// ->501886
/*501875*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*501878*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v16i1] } (undef:{ *:[v16i1] }), VK4:{ *:[v4i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src, VK16:{ *:[i32] })
/*501886*/          /*SwitchType*/ 11, MVT::v32i1,// ->501899
/*501888*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*501891*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v32i1] } (undef:{ *:[v32i1] }), VK4:{ *:[v4i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK4:{ *:[v4i1] }:$src, VK32:{ *:[i32] })
/*501899*/          /*SwitchType*/ 11, MVT::v64i1,// ->501912
/*501901*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501904*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v64i1] } (undef:{ *:[v64i1] }), VK4:{ *:[v4i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK4:{ *:[v4i1] }:$src, VK64:{ *:[i32] })
/*501912*/          0, // EndSwitchType
/*501913*/        /*Scope*/ 45, /*->501959*/
/*501914*/          OPC_CheckChild1Type, MVT::v8i1,
/*501916*/          OPC_CheckChild2Type, MVT::iPTR,
/*501918*/          OPC_SwitchType /*3 cases */, 11, MVT::v16i1,// ->501932
/*501921*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*501924*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v16i1] } (undef:{ *:[v16i1] }), VK8:{ *:[v8i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src, VK16:{ *:[i32] })
/*501932*/          /*SwitchType*/ 11, MVT::v32i1,// ->501945
/*501934*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*501937*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v32i1] } (undef:{ *:[v32i1] }), VK8:{ *:[v8i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$src, VK32:{ *:[i32] })
/*501945*/          /*SwitchType*/ 11, MVT::v64i1,// ->501958
/*501947*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501950*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v64i1] } (undef:{ *:[v64i1] }), VK8:{ *:[v8i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK8:{ *:[v8i1] }:$src, VK64:{ *:[i32] })
/*501958*/          0, // EndSwitchType
/*501959*/        /*Scope*/ 32, /*->501992*/
/*501960*/          OPC_CheckChild1Type, MVT::v16i1,
/*501962*/          OPC_CheckChild2Type, MVT::iPTR,
/*501964*/          OPC_SwitchType /*2 cases */, 11, MVT::v32i1,// ->501978
/*501967*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*501970*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v32i1] } (undef:{ *:[v32i1] }), VK16:{ *:[v16i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$src, VK32:{ *:[i32] })
/*501978*/          /*SwitchType*/ 11, MVT::v64i1,// ->501991
/*501980*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*501983*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 1, 
                      // Src: (insert_subvector:{ *:[v64i1] } (undef:{ *:[v64i1] }), VK16:{ *:[v16i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$src, VK64:{ *:[i32] })
/*501991*/          0, // EndSwitchType
/*501992*/        /*Scope*/ 17, /*->502010*/
/*501993*/          OPC_CheckChild1Type, MVT::v32i1,
/*501995*/          OPC_CheckChild2Type, MVT::iPTR,
/*501997*/          OPC_CheckType, MVT::v64i1,
/*501999*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*502002*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 1, 
                    // Src: (insert_subvector:{ *:[v64i1] } (undef:{ *:[v64i1] }), VK32:{ *:[v32i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$src, VK64:{ *:[i32] })
/*502010*/        /*Scope*/ 84, /*->502095*/
/*502011*/          OPC_CheckChild2Type, MVT::iPTR,
/*502013*/          OPC_SwitchType /*4 cases */, 18, MVT::v8i32,// ->502034
/*502016*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i32, 0/*#Ops*/,  // Results = #1
/*502022*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502025*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i32, 3/*#Ops*/, 1, 0, 2, 
                      // Src: (insert_subvector:{ *:[v8i32] } (undef:{ *:[v8i32] }), VR128:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] })
/*502034*/          /*SwitchType*/ 18, MVT::v4i64,// ->502054
/*502036*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i64, 0/*#Ops*/,  // Results = #1
/*502042*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502045*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4i64, 3/*#Ops*/, 1, 0, 2, 
                      // Src: (insert_subvector:{ *:[v4i64] } (undef:{ *:[v4i64] }), VR128:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), VR128:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] })
/*502054*/          /*SwitchType*/ 18, MVT::v16i16,// ->502074
/*502056*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i16, 0/*#Ops*/,  // Results = #1
/*502062*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502065*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i16, 3/*#Ops*/, 1, 0, 2, 
                      // Src: (insert_subvector:{ *:[v16i16] } (undef:{ *:[v16i16] }), VR128:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), VR128:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] })
/*502074*/          /*SwitchType*/ 18, MVT::v32i8,// ->502094
/*502076*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i8, 0/*#Ops*/,  // Results = #1
/*502082*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502085*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i8, 3/*#Ops*/, 1, 0, 2, 
                      // Src: (insert_subvector:{ *:[v32i8] } (undef:{ *:[v32i8] }), VR128:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), VR128:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] })
/*502094*/          0, // EndSwitchType
/*502095*/        /*Scope*/ 24, /*->502120*/
/*502096*/          OPC_CheckChild1Type, MVT::v4i32,
/*502098*/          OPC_CheckChild2Type, MVT::iPTR,
/*502100*/          OPC_CheckType, MVT::v16i32,
/*502102*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*502108*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502111*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v16i32] } (undef:{ *:[v16i32] }), VR128:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] })
/*502120*/        /*Scope*/ 24, /*->502145*/
/*502121*/          OPC_CheckChild1Type, MVT::v2i64,
/*502123*/          OPC_CheckChild2Type, MVT::iPTR,
/*502125*/          OPC_CheckType, MVT::v8i64,
/*502127*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*502133*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502136*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v8i64] } (undef:{ *:[v8i64] }), VR128:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] })
/*502145*/        /*Scope*/ 24, /*->502170*/
/*502146*/          OPC_CheckChild1Type, MVT::v8i16,
/*502148*/          OPC_CheckChild2Type, MVT::iPTR,
/*502150*/          OPC_CheckType, MVT::v32i16,
/*502152*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*502158*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502161*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v32i16] } (undef:{ *:[v32i16] }), VR128:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] })
/*502170*/        /*Scope*/ 24, /*->502195*/
/*502171*/          OPC_CheckChild1Type, MVT::v16i8,
/*502173*/          OPC_CheckChild2Type, MVT::iPTR,
/*502175*/          OPC_CheckType, MVT::v64i8,
/*502177*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*502183*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502186*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v64i8] } (undef:{ *:[v64i8] }), VR128:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] })
/*502195*/        /*Scope*/ 24, /*->502220*/
/*502196*/          OPC_CheckChild1Type, MVT::v8i32,
/*502198*/          OPC_CheckChild2Type, MVT::iPTR,
/*502200*/          OPC_CheckType, MVT::v16i32,
/*502202*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*502208*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*502211*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v16i32] } (undef:{ *:[v16i32] }), VR256:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] })
/*502220*/        /*Scope*/ 24, /*->502245*/
/*502221*/          OPC_CheckChild1Type, MVT::v4i64,
/*502223*/          OPC_CheckChild2Type, MVT::iPTR,
/*502225*/          OPC_CheckType, MVT::v8i64,
/*502227*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*502233*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*502236*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v8i64] } (undef:{ *:[v8i64] }), VR256:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] })
/*502245*/        /*Scope*/ 24, /*->502270*/
/*502246*/          OPC_CheckChild1Type, MVT::v16i16,
/*502248*/          OPC_CheckChild2Type, MVT::iPTR,
/*502250*/          OPC_CheckType, MVT::v32i16,
/*502252*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*502258*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*502261*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v32i16] } (undef:{ *:[v32i16] }), VR256:{ *:[v16i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] })
/*502270*/        /*Scope*/ 24, /*->502295*/
/*502271*/          OPC_CheckChild1Type, MVT::v32i8,
/*502273*/          OPC_CheckChild2Type, MVT::iPTR,
/*502275*/          OPC_CheckType, MVT::v64i8,
/*502277*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*502283*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*502286*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v64i8] } (undef:{ *:[v64i8] }), VR256:{ *:[v32i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] })
/*502295*/        0, /*End of Scope*/
/*502296*/      0, // EndSwitchOpcode
/*502297*/    /*Scope*/ 32|128,2/*288*/, /*->502587*/
/*502299*/      OPC_RecordChild0, // #0 = $src1
/*502300*/      OPC_RecordChild1, // #1 = $src2
/*502301*/      OPC_CheckChild2Integer, 0, 
/*502303*/      OPC_CheckChild2Type, MVT::iPTR,
/*502305*/      OPC_SwitchType /*4 cases */, 68, MVT::v8i32,// ->502376
/*502308*/        OPC_Scope, 32, /*->502342*/ // 2 children in Scope
/*502310*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*502312*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*502318*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502321*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*502330*/          OPC_EmitInteger, MVT::i8, 15, 
/*502333*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrri), 0,
                        MVT::v8i32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insert_subvector:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VPBLENDDYrri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] }), 15:{ *:[i8] })
/*502342*/        /*Scope*/ 32, /*->502375*/
/*502343*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*502345*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*502351*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502354*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*502363*/          OPC_EmitInteger, MVT::i8, 15, 
/*502366*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrri), 0,
                        MVT::v8i32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insert_subvector:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VBLENDPSYrri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v4i32] }:$src2, sub_xmm:{ *:[i32] }), 15:{ *:[i8] })
/*502375*/        0, /*End of Scope*/
/*502376*/      /*SwitchType*/ 68, MVT::v4i64,// ->502446
/*502378*/        OPC_Scope, 32, /*->502412*/ // 2 children in Scope
/*502380*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*502382*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*502388*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502391*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*502400*/          OPC_EmitInteger, MVT::i8, 15, 
/*502403*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrri), 0,
                        MVT::v4i64, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insert_subvector:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR128:{ *:[v2i64] }:$src2, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VPBLENDDYrri:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] }), 15:{ *:[i8] })
/*502412*/        /*Scope*/ 32, /*->502445*/
/*502413*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*502415*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*502421*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502424*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*502433*/          OPC_EmitInteger, MVT::i8, 15, 
/*502436*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrri), 0,
                        MVT::v4i64, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insert_subvector:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR128:{ *:[v2i64] }:$src2, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VBLENDPSYrri:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] }), 15:{ *:[i8] })
/*502445*/        0, /*End of Scope*/
/*502446*/      /*SwitchType*/ 68, MVT::v16i16,// ->502516
/*502448*/        OPC_Scope, 32, /*->502482*/ // 2 children in Scope
/*502450*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*502452*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*502458*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502461*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*502470*/          OPC_EmitInteger, MVT::i8, 15, 
/*502473*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrri), 0,
                        MVT::v16i16, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insert_subvector:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VPBLENDDYrri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] }), 15:{ *:[i8] })
/*502482*/        /*Scope*/ 32, /*->502515*/
/*502483*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*502485*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*502491*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502494*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*502503*/          OPC_EmitInteger, MVT::i8, 15, 
/*502506*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrri), 0,
                        MVT::v16i16, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insert_subvector:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VBLENDPSYrri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v8i16] }:$src2, sub_xmm:{ *:[i32] }), 15:{ *:[i8] })
/*502515*/        0, /*End of Scope*/
/*502516*/      /*SwitchType*/ 68, MVT::v32i8,// ->502586
/*502518*/        OPC_Scope, 32, /*->502552*/ // 2 children in Scope
/*502520*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*502522*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*502528*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502531*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*502540*/          OPC_EmitInteger, MVT::i8, 15, 
/*502543*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insert_subvector:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR128:{ *:[v16i8] }:$src2, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VPBLENDDYrri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] }), 15:{ *:[i8] })
/*502552*/        /*Scope*/ 32, /*->502585*/
/*502553*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*502555*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*502561*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*502564*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*502573*/          OPC_EmitInteger, MVT::i8, 15, 
/*502576*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insert_subvector:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR128:{ *:[v16i8] }:$src2, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VBLENDPSYrri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v16i8] }:$src2, sub_xmm:{ *:[i32] }), 15:{ *:[i8] })
/*502585*/        0, /*End of Scope*/
/*502586*/      0, // EndSwitchType
/*502587*/    /*Scope*/ 81|128,5/*721*/, /*->503310*/
/*502589*/      OPC_RecordNode, // #0 = $ins
/*502590*/      OPC_RecordChild0, // #1 = $src1
/*502591*/      OPC_Scope, 55|128,3/*439*/, /*->503033*/ // 2 children in Scope
/*502594*/        OPC_RecordChild1, // #2 = $src2
/*502595*/        OPC_Scope, 32|128,1/*160*/, /*->502758*/ // 11 children in Scope
/*502598*/          OPC_MoveChild2,
/*502599*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*502602*/          OPC_CheckType, MVT::iPTR,
/*502604*/          OPC_MoveParent,
/*502605*/          OPC_SwitchType /*4 cases */, 32, MVT::v4i64,// ->502640
/*502608*/            OPC_Scope, 14, /*->502624*/ // 2 children in Scope
/*502610*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*502612*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502615*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                            MVT::v4i64, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                        // Dst: (VINSERTF128rr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v4i64] }:$ins))
/*502624*/            /*Scope*/ 14, /*->502639*/
/*502625*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*502627*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502630*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rr), 0,
                            MVT::v4i64, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                        // Dst: (VINSERTI128rr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v4i64] }:$ins))
/*502639*/            0, /*End of Scope*/
/*502640*/          /*SwitchType*/ 47, MVT::v8i32,// ->502689
/*502642*/            OPC_Scope, 14, /*->502658*/ // 3 children in Scope
/*502644*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*502646*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502649*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                            MVT::v8i32, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                        // Dst: (VINSERTF128rr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v8i32] }:$ins))
/*502658*/            /*Scope*/ 14, /*->502673*/
/*502659*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*502661*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rr), 0,
                            MVT::v8i32, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                        // Dst: (VINSERTI128rr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v8i32] }:$ins))
/*502673*/            /*Scope*/ 14, /*->502688*/
/*502674*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*502676*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502679*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rr), 0,
                            MVT::v8i32, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3 - Complexity = 6
                        // Dst: (VINSERTI32x4Z256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*502688*/            0, /*End of Scope*/
/*502689*/          /*SwitchType*/ 32, MVT::v16i16,// ->502723
/*502691*/            OPC_Scope, 14, /*->502707*/ // 2 children in Scope
/*502693*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*502695*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502698*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                            MVT::v16i16, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                        // Dst: (VINSERTF128rr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v16i16] }:$ins))
/*502707*/            /*Scope*/ 14, /*->502722*/
/*502708*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*502710*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502713*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rr), 0,
                            MVT::v16i16, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                        // Dst: (VINSERTI128rr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v16i16] }:$ins))
/*502722*/            0, /*End of Scope*/
/*502723*/          /*SwitchType*/ 32, MVT::v32i8,// ->502757
/*502725*/            OPC_Scope, 14, /*->502741*/ // 2 children in Scope
/*502727*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*502729*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502732*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                            MVT::v32i8, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                        // Dst: (VINSERTF128rr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v32i8] }:$ins))
/*502741*/            /*Scope*/ 14, /*->502756*/
/*502742*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*502744*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502747*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rr), 0,
                            MVT::v32i8, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                        // Dst: (VINSERTI128rr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v32i8] }:$ins))
/*502756*/            0, /*End of Scope*/
/*502757*/          0, // EndSwitchType
/*502758*/        /*Scope*/ 25, /*->502784*/
/*502759*/          OPC_CheckChild1Type, MVT::v4i32,
/*502761*/          OPC_MoveChild2,
/*502762*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*502765*/          OPC_CheckType, MVT::iPTR,
/*502767*/          OPC_MoveParent,
/*502768*/          OPC_CheckType, MVT::v16i32,
/*502770*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*502772*/          OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502775*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrr), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3 - Complexity = 6
                    // Dst: (VINSERTI32x4Zrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*502784*/        /*Scope*/ 25, /*->502810*/
/*502785*/          OPC_CheckChild1Type, MVT::v4i64,
/*502787*/          OPC_MoveChild2,
/*502788*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*502791*/          OPC_CheckType, MVT::iPTR,
/*502793*/          OPC_MoveParent,
/*502794*/          OPC_CheckType, MVT::v8i64,
/*502796*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*502798*/          OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*502801*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrr), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3 - Complexity = 6
                    // Dst: (VINSERTI64x4Zrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*502810*/        /*Scope*/ 23, /*->502834*/
/*502811*/          OPC_MoveChild2,
/*502812*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*502815*/          OPC_CheckType, MVT::iPTR,
/*502817*/          OPC_MoveParent,
/*502818*/          OPC_CheckType, MVT::v4i64,
/*502820*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*502822*/          OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502825*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rr), 0,
                        MVT::v4i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (insert_subvector:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                    // Dst: (VINSERTI32x4Z256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ins))
/*502834*/        /*Scope*/ 25, /*->502860*/
/*502835*/          OPC_CheckChild1Type, MVT::v2i64,
/*502837*/          OPC_MoveChild2,
/*502838*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*502841*/          OPC_CheckType, MVT::iPTR,
/*502843*/          OPC_MoveParent,
/*502844*/          OPC_CheckType, MVT::v8i64,
/*502846*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*502848*/          OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502851*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrr), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (insert_subvector:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                    // Dst: (VINSERTI32x4Zrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*502860*/        /*Scope*/ 25, /*->502886*/
/*502861*/          OPC_CheckChild1Type, MVT::v8i32,
/*502863*/          OPC_MoveChild2,
/*502864*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*502867*/          OPC_CheckType, MVT::iPTR,
/*502869*/          OPC_MoveParent,
/*502870*/          OPC_CheckType, MVT::v16i32,
/*502872*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*502874*/          OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*502877*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrr), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins - Complexity = 6
                    // Dst: (VINSERTI64x4Zrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*502886*/        /*Scope*/ 41, /*->502928*/
/*502887*/          OPC_MoveChild2,
/*502888*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*502891*/          OPC_CheckType, MVT::iPTR,
/*502893*/          OPC_MoveParent,
/*502894*/          OPC_SwitchType /*2 cases */, 14, MVT::v16i16,// ->502911
/*502897*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*502899*/            OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502902*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rr), 0,
                          MVT::v16i16, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                      // Dst: (VINSERTI32x4Z256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*502911*/          /*SwitchType*/ 14, MVT::v32i8,// ->502927
/*502913*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*502915*/            OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502918*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rr), 0,
                          MVT::v32i8, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                      // Dst: (VINSERTI32x4Z256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*502927*/          0, // EndSwitchType
/*502928*/        /*Scope*/ 25, /*->502954*/
/*502929*/          OPC_CheckChild1Type, MVT::v8i16,
/*502931*/          OPC_MoveChild2,
/*502932*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*502935*/          OPC_CheckType, MVT::iPTR,
/*502937*/          OPC_MoveParent,
/*502938*/          OPC_CheckType, MVT::v32i16,
/*502940*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*502942*/          OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502945*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrr), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                    // Dst: (VINSERTI32x4Zrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*502954*/        /*Scope*/ 25, /*->502980*/
/*502955*/          OPC_CheckChild1Type, MVT::v16i8,
/*502957*/          OPC_MoveChild2,
/*502958*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*502961*/          OPC_CheckType, MVT::iPTR,
/*502963*/          OPC_MoveParent,
/*502964*/          OPC_CheckType, MVT::v64i8,
/*502966*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*502968*/          OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*502971*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Zrr), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                    // Dst: (VINSERTI32x4Zrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*502980*/        /*Scope*/ 25, /*->503006*/
/*502981*/          OPC_CheckChild1Type, MVT::v16i16,
/*502983*/          OPC_MoveChild2,
/*502984*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*502987*/          OPC_CheckType, MVT::iPTR,
/*502989*/          OPC_MoveParent,
/*502990*/          OPC_CheckType, MVT::v32i16,
/*502992*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*502994*/          OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*502997*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrr), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (insert_subvector:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins - Complexity = 6
                    // Dst: (VINSERTI64x4Zrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*503006*/        /*Scope*/ 25, /*->503032*/
/*503007*/          OPC_CheckChild1Type, MVT::v32i8,
/*503009*/          OPC_MoveChild2,
/*503010*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*503013*/          OPC_CheckType, MVT::iPTR,
/*503015*/          OPC_MoveParent,
/*503016*/          OPC_CheckType, MVT::v64i8,
/*503018*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*503020*/          OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*503023*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrr), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (insert_subvector:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins - Complexity = 6
                    // Dst: (VINSERTI64x4Zrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*503032*/        0, /*End of Scope*/
/*503033*/      /*Scope*/ 18|128,2/*274*/, /*->503309*/
/*503035*/        OPC_MoveChild1,
/*503036*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*503039*/        OPC_RecordMemRef,
/*503040*/        OPC_RecordNode, // #2 = 'ld' chained node
/*503041*/        OPC_CheckFoldableChainNode,
/*503042*/        OPC_RecordChild1, // #3 = $src2
/*503043*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*503045*/        OPC_CheckPredicate, 9, // Predicate_load
/*503047*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*503049*/        OPC_Scope, 84, /*->503135*/ // 6 children in Scope
/*503051*/          OPC_MoveParent,
/*503052*/          OPC_MoveChild2,
/*503053*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*503056*/          OPC_CheckType, MVT::iPTR,
/*503058*/          OPC_MoveParent,
/*503059*/          OPC_SwitchType /*2 cases */, 48, MVT::v8f32,// ->503110
/*503062*/            OPC_Scope, 22, /*->503086*/ // 2 children in Scope
/*503064*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*503066*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*503069*/              OPC_EmitMergeInputChains1_2,
/*503070*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*503073*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                        // Src: (insert_subvector:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                        // Dst: (VINSERTF128rm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v8f32] }:$ins))
/*503086*/            /*Scope*/ 22, /*->503109*/
/*503087*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*503089*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*503092*/              OPC_EmitMergeInputChains1_2,
/*503093*/              OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*503096*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                        // Src: (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3 - Complexity = 28
                        // Dst: (VINSERTF32x4Z256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*503109*/            0, /*End of Scope*/
/*503110*/          /*SwitchType*/ 22, MVT::v4f64,// ->503134
/*503112*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*503114*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*503117*/            OPC_EmitMergeInputChains1_2,
/*503118*/            OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*503121*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                      // Src: (insert_subvector:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                      // Dst: (VINSERTF128rm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v4f64] }:$ins))
/*503134*/          0, // EndSwitchType
/*503135*/        /*Scope*/ 34, /*->503170*/
/*503136*/          OPC_CheckType, MVT::v4f32,
/*503138*/          OPC_MoveParent,
/*503139*/          OPC_MoveChild2,
/*503140*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*503143*/          OPC_CheckType, MVT::iPTR,
/*503145*/          OPC_MoveParent,
/*503146*/          OPC_CheckType, MVT::v16f32,
/*503148*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*503150*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*503153*/          OPC_EmitMergeInputChains1_2,
/*503154*/          OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*503157*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                    // Src: (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3 - Complexity = 28
                    // Dst: (VINSERTF32x4Zrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*503170*/        /*Scope*/ 34, /*->503205*/
/*503171*/          OPC_CheckType, MVT::v4f64,
/*503173*/          OPC_MoveParent,
/*503174*/          OPC_MoveChild2,
/*503175*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*503178*/          OPC_CheckType, MVT::iPTR,
/*503180*/          OPC_MoveParent,
/*503181*/          OPC_CheckType, MVT::v8f64,
/*503183*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*503185*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*503188*/          OPC_EmitMergeInputChains1_2,
/*503189*/          OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*503192*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                    // Src: (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3 - Complexity = 28
                    // Dst: (VINSERTF64x4Zrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] })):$src3))
/*503205*/        /*Scope*/ 32, /*->503238*/
/*503206*/          OPC_MoveParent,
/*503207*/          OPC_MoveChild2,
/*503208*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*503211*/          OPC_CheckType, MVT::iPTR,
/*503213*/          OPC_MoveParent,
/*503214*/          OPC_CheckType, MVT::v4f64,
/*503216*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*503218*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*503221*/          OPC_EmitMergeInputChains1_2,
/*503222*/          OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*503225*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                    // Src: (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                    // Dst: (VINSERTF32x4Z256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ins))
/*503238*/        /*Scope*/ 34, /*->503273*/
/*503239*/          OPC_CheckType, MVT::v2f64,
/*503241*/          OPC_MoveParent,
/*503242*/          OPC_MoveChild2,
/*503243*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*503246*/          OPC_CheckType, MVT::iPTR,
/*503248*/          OPC_MoveParent,
/*503249*/          OPC_CheckType, MVT::v8f64,
/*503251*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*503253*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*503256*/          OPC_EmitMergeInputChains1_2,
/*503257*/          OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*503260*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                    // Src: (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                    // Dst: (VINSERTF32x4Zrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*503273*/        /*Scope*/ 34, /*->503308*/
/*503274*/          OPC_CheckType, MVT::v8f32,
/*503276*/          OPC_MoveParent,
/*503277*/          OPC_MoveChild2,
/*503278*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*503281*/          OPC_CheckType, MVT::iPTR,
/*503283*/          OPC_MoveParent,
/*503284*/          OPC_CheckType, MVT::v16f32,
/*503286*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*503288*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*503291*/          OPC_EmitMergeInputChains1_2,
/*503292*/          OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*503295*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                    // Src: (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins - Complexity = 28
                    // Dst: (VINSERTF64x4Zrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*503308*/        0, /*End of Scope*/
/*503309*/      0, /*End of Scope*/
/*503310*/    /*Scope*/ 29|128,4/*541*/, /*->503853*/
/*503312*/      OPC_MoveChild0,
/*503313*/      OPC_SwitchOpcode /*2 cases */, 123|128,2/*379*/, TARGET_VAL(ISD::BITCAST),// ->503697
/*503318*/        OPC_MoveChild0,
/*503319*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*503322*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*503324*/        OPC_SwitchType /*2 cases */, 117, MVT::v8i32,// ->503444
/*503327*/          OPC_MoveParent,
/*503328*/          OPC_MoveParent,
/*503329*/          OPC_RecordChild1, // #0 = $src
/*503330*/          OPC_CheckChild2Integer, 0, 
/*503332*/          OPC_CheckChild2Type, MVT::iPTR,
/*503334*/          OPC_SwitchType /*2 cases */, 52, MVT::v4f64,// ->503389
/*503337*/            OPC_Scope, 24, /*->503363*/ // 2 children in Scope
/*503339*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*503341*/              OPC_EmitInteger, MVT::i64, 0, 
/*503344*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDrr), 0,
                            MVT::v2f64, 1/*#Ops*/, 0,  // Results = #2
/*503351*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503354*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v4f64, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v4f64] } (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR128:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                        // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i64] }, (VMOVAPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src), sub_xmm:{ *:[i32] })
/*503363*/            /*Scope*/ 24, /*->503388*/
/*503364*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*503366*/              OPC_EmitInteger, MVT::i64, 0, 
/*503369*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZ128rr), 0,
                            MVT::v2f64, 1/*#Ops*/, 0,  // Results = #2
/*503376*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503379*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v4f64, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v4f64] } (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                        // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i64] }, (VMOVAPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), sub_xmm:{ *:[i32] })
/*503388*/            0, /*End of Scope*/
/*503389*/          /*SwitchType*/ 52, MVT::v8f32,// ->503443
/*503391*/            OPC_Scope, 24, /*->503417*/ // 2 children in Scope
/*503393*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*503395*/              OPC_EmitInteger, MVT::i64, 0, 
/*503398*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSrr), 0,
                            MVT::v4f32, 1/*#Ops*/, 0,  // Results = #2
/*503405*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503408*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v8f32, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v8f32] } (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                        // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i64] }, (VMOVAPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src), sub_xmm:{ *:[i32] })
/*503417*/            /*Scope*/ 24, /*->503442*/
/*503418*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*503420*/              OPC_EmitInteger, MVT::i64, 0, 
/*503423*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZ128rr), 0,
                            MVT::v4f32, 1/*#Ops*/, 0,  // Results = #2
/*503430*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503433*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v8f32, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v8f32] } (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                        // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i64] }, (VMOVAPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), sub_xmm:{ *:[i32] })
/*503442*/            0, /*End of Scope*/
/*503443*/          0, // EndSwitchType
/*503444*/        /*SwitchType*/ 121|128,1/*249*/, MVT::v16i32,// ->503696
/*503447*/          OPC_MoveParent,
/*503448*/          OPC_MoveParent,
/*503449*/          OPC_RecordChild1, // #0 = $src
/*503450*/          OPC_SwitchType /*2 cases */, 120, MVT::v8f64,// ->503573
/*503453*/            OPC_Scope, 58, /*->503513*/ // 2 children in Scope
/*503455*/              OPC_CheckChild1Type, MVT::v2f64,
/*503457*/              OPC_CheckChild2Integer, 0, 
/*503459*/              OPC_CheckChild2Type, MVT::iPTR,
/*503461*/              OPC_Scope, 24, /*->503487*/ // 2 children in Scope
/*503463*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*503465*/                OPC_EmitInteger, MVT::i64, 0, 
/*503468*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZ128rr), 0,
                              MVT::v2f64, 1/*#Ops*/, 0,  // Results = #2
/*503475*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503478*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8f64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8f64] } (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i64] }, (VMOVAPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), sub_xmm:{ *:[i32] })
/*503487*/              /*Scope*/ 24, /*->503512*/
/*503488*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*503490*/                OPC_EmitInteger, MVT::i64, 0, 
/*503493*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDrr), 0,
                              MVT::v2f64, 1/*#Ops*/, 0,  // Results = #2
/*503500*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503503*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8f64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8f64] } (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR128:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i64] }, (VMOVAPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src), sub_xmm:{ *:[i32] })
/*503512*/              0, /*End of Scope*/
/*503513*/            /*Scope*/ 58, /*->503572*/
/*503514*/              OPC_CheckChild1Type, MVT::v4f64,
/*503516*/              OPC_CheckChild2Integer, 0, 
/*503518*/              OPC_CheckChild2Type, MVT::iPTR,
/*503520*/              OPC_Scope, 24, /*->503546*/ // 2 children in Scope
/*503522*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*503524*/                OPC_EmitInteger, MVT::i64, 0, 
/*503527*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZ256rr), 0,
                              MVT::v4f64, 1/*#Ops*/, 0,  // Results = #2
/*503534*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*503537*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8f64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8f64] } (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR256X:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i64] }, (VMOVAPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), sub_ymm:{ *:[i32] })
/*503546*/              /*Scope*/ 24, /*->503571*/
/*503547*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*503549*/                OPC_EmitInteger, MVT::i64, 0, 
/*503552*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDYrr), 0,
                              MVT::v4f64, 1/*#Ops*/, 0,  // Results = #2
/*503559*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*503562*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8f64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8f64] } (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR256:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i64] }, (VMOVAPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src), sub_ymm:{ *:[i32] })
/*503571*/              0, /*End of Scope*/
/*503572*/            0, /*End of Scope*/
/*503573*/          /*SwitchType*/ 120, MVT::v16f32,// ->503695
/*503575*/            OPC_Scope, 58, /*->503635*/ // 2 children in Scope
/*503577*/              OPC_CheckChild1Type, MVT::v4f32,
/*503579*/              OPC_CheckChild2Integer, 0, 
/*503581*/              OPC_CheckChild2Type, MVT::iPTR,
/*503583*/              OPC_Scope, 24, /*->503609*/ // 2 children in Scope
/*503585*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*503587*/                OPC_EmitInteger, MVT::i64, 0, 
/*503590*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZ128rr), 0,
                              MVT::v4f32, 1/*#Ops*/, 0,  // Results = #2
/*503597*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503600*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16f32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16f32] } (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i64] }, (VMOVAPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), sub_xmm:{ *:[i32] })
/*503609*/              /*Scope*/ 24, /*->503634*/
/*503610*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*503612*/                OPC_EmitInteger, MVT::i64, 0, 
/*503615*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSrr), 0,
                              MVT::v4f32, 1/*#Ops*/, 0,  // Results = #2
/*503622*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503625*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16f32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16f32] } (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i64] }, (VMOVAPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src), sub_xmm:{ *:[i32] })
/*503634*/              0, /*End of Scope*/
/*503635*/            /*Scope*/ 58, /*->503694*/
/*503636*/              OPC_CheckChild1Type, MVT::v8f32,
/*503638*/              OPC_CheckChild2Integer, 0, 
/*503640*/              OPC_CheckChild2Type, MVT::iPTR,
/*503642*/              OPC_Scope, 24, /*->503668*/ // 2 children in Scope
/*503644*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*503646*/                OPC_EmitInteger, MVT::i64, 0, 
/*503649*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZ256rr), 0,
                              MVT::v8f32, 1/*#Ops*/, 0,  // Results = #2
/*503656*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*503659*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16f32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16f32] } (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR256X:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i64] }, (VMOVAPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), sub_ymm:{ *:[i32] })
/*503668*/              /*Scope*/ 24, /*->503693*/
/*503669*/                OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*503671*/                OPC_EmitInteger, MVT::i64, 0, 
/*503674*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSYrr), 0,
                              MVT::v8f32, 1/*#Ops*/, 0,  // Results = #2
/*503681*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*503684*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16f32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16f32] } (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>), VR256:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 15
                          // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i64] }, (VMOVAPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src), sub_ymm:{ *:[i32] })
/*503693*/              0, /*End of Scope*/
/*503694*/            0, /*End of Scope*/
/*503695*/          0, // EndSwitchType
/*503696*/        0, // EndSwitchType
/*503697*/      /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(ISD::UNDEF),// ->503852
/*503701*/        OPC_MoveParent,
/*503702*/        OPC_RecordChild1, // #0 = $src
/*503703*/        OPC_CheckChild2Integer, 0, 
/*503705*/        OPC_Scope, 44, /*->503751*/ // 5 children in Scope
/*503707*/          OPC_CheckChild2Type, MVT::iPTR,
/*503709*/          OPC_SwitchType /*2 cases */, 18, MVT::v8f32,// ->503730
/*503712*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f32, 0/*#Ops*/,  // Results = #1
/*503718*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503721*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                      // Src: (insert_subvector:{ *:[v8f32] } (undef:{ *:[v8f32] }), VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (INSERT_SUBREG:{ *:[v8f32] } (IMPLICIT_DEF:{ *:[v8f32] }), VR128:{ *:[v4f32] }:$src, sub_xmm:{ *:[i32] })
/*503730*/          /*SwitchType*/ 18, MVT::v4f64,// ->503750
/*503732*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4f64, 0/*#Ops*/,  // Results = #1
/*503738*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503741*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                      // Src: (insert_subvector:{ *:[v4f64] } (undef:{ *:[v4f64] }), VR128:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                      // Dst: (INSERT_SUBREG:{ *:[v4f64] } (IMPLICIT_DEF:{ *:[v4f64] }), VR128:{ *:[v2f64] }:$src, sub_xmm:{ *:[i32] })
/*503750*/          0, // EndSwitchType
/*503751*/        /*Scope*/ 24, /*->503776*/
/*503752*/          OPC_CheckChild1Type, MVT::v4f32,
/*503754*/          OPC_CheckChild2Type, MVT::iPTR,
/*503756*/          OPC_CheckType, MVT::v16f32,
/*503758*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #1
/*503764*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503767*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128:{ *:[v4f32] }:$src, sub_xmm:{ *:[i32] })
/*503776*/        /*Scope*/ 24, /*->503801*/
/*503777*/          OPC_CheckChild1Type, MVT::v2f64,
/*503779*/          OPC_CheckChild2Type, MVT::iPTR,
/*503781*/          OPC_CheckType, MVT::v8f64,
/*503783*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*503789*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503792*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v8f64] } (undef:{ *:[v8f64] }), VR128:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128:{ *:[v2f64] }:$src, sub_xmm:{ *:[i32] })
/*503801*/        /*Scope*/ 24, /*->503826*/
/*503802*/          OPC_CheckChild1Type, MVT::v8f32,
/*503804*/          OPC_CheckChild2Type, MVT::iPTR,
/*503806*/          OPC_CheckType, MVT::v16f32,
/*503808*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #1
/*503814*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*503817*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), VR256:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256:{ *:[v8f32] }:$src, sub_ymm:{ *:[i32] })
/*503826*/        /*Scope*/ 24, /*->503851*/
/*503827*/          OPC_CheckChild1Type, MVT::v4f64,
/*503829*/          OPC_CheckChild2Type, MVT::iPTR,
/*503831*/          OPC_CheckType, MVT::v8f64,
/*503833*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*503839*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*503842*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (insert_subvector:{ *:[v8f64] } (undef:{ *:[v8f64] }), VR256:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 11
                    // Dst: (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256:{ *:[v4f64] }:$src, sub_ymm:{ *:[i32] })
/*503851*/        0, /*End of Scope*/
/*503852*/      0, // EndSwitchOpcode
/*503853*/    /*Scope*/ 76, /*->503930*/
/*503854*/      OPC_RecordChild0, // #0 = $src1
/*503855*/      OPC_RecordChild1, // #1 = $src2
/*503856*/      OPC_CheckChild2Integer, 0, 
/*503858*/      OPC_CheckChild2Type, MVT::iPTR,
/*503860*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f64,// ->503895
/*503863*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*503865*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f64, 0/*#Ops*/,  // Results = #2
/*503871*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503874*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4f64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*503883*/        OPC_EmitInteger, MVT::i8, 3, 
/*503886*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDYrri), 0,
                      MVT::v4f64, 3/*#Ops*/, 0, 4, 5, 
                  // Src: (insert_subvector:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR128:{ *:[v2f64] }:$src2, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (VBLENDPDYrri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (INSERT_SUBREG:{ *:[v4f64] } (IMPLICIT_DEF:{ *:[v4f64] }), VR128:{ *:[v2f64] }:$src2, sub_xmm:{ *:[i32] }), 3:{ *:[i8] })
/*503895*/      /*SwitchType*/ 32, MVT::v8f32,// ->503929
/*503897*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*503899*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f32, 0/*#Ops*/,  // Results = #2
/*503905*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*503908*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*503917*/        OPC_EmitInteger, MVT::i8, 15, 
/*503920*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrri), 0,
                      MVT::v8f32, 3/*#Ops*/, 0, 4, 5, 
                  // Src: (insert_subvector:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR128:{ *:[v4f32] }:$src2, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (VBLENDPSYrri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (INSERT_SUBREG:{ *:[v8f32] } (IMPLICIT_DEF:{ *:[v8f32] }), VR128:{ *:[v4f32] }:$src2, sub_xmm:{ *:[i32] }), 15:{ *:[i8] })
/*503929*/      0, // EndSwitchType
/*503930*/    /*Scope*/ 65|128,1/*193*/, /*->504125*/
/*503932*/      OPC_RecordNode, // #0 = $ins
/*503933*/      OPC_RecordChild0, // #1 = $src1
/*503934*/      OPC_RecordChild1, // #2 = $src2
/*503935*/      OPC_Scope, 59, /*->503996*/ // 6 children in Scope
/*503937*/        OPC_MoveChild2,
/*503938*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*503941*/        OPC_CheckType, MVT::iPTR,
/*503943*/        OPC_MoveParent,
/*503944*/        OPC_SwitchType /*2 cases */, 32, MVT::v8f32,// ->503979
/*503947*/          OPC_Scope, 14, /*->503963*/ // 2 children in Scope
/*503949*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*503951*/            OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*503954*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                          MVT::v8f32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                      // Dst: (VINSERTF128rr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v8f32] }:$ins))
/*503963*/          /*Scope*/ 14, /*->503978*/
/*503964*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*503966*/            OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*503969*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rr), 0,
                          MVT::v8f32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3 - Complexity = 6
                      // Dst: (VINSERTF32x4Z256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*503978*/          0, /*End of Scope*/
/*503979*/        /*SwitchType*/ 14, MVT::v4f64,// ->503995
/*503981*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*503983*/          OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*503986*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (insert_subvector:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                    // Dst: (VINSERTF128rr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v4f64] }:$ins))
/*503995*/        0, // EndSwitchType
/*503996*/      /*Scope*/ 25, /*->504022*/
/*503997*/        OPC_CheckChild1Type, MVT::v4f32,
/*503999*/        OPC_MoveChild2,
/*504000*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504003*/        OPC_CheckType, MVT::iPTR,
/*504005*/        OPC_MoveParent,
/*504006*/        OPC_CheckType, MVT::v16f32,
/*504008*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*504010*/        OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*504013*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrr), 0,
                      MVT::v16f32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3 - Complexity = 6
                  // Dst: (VINSERTF32x4Zrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*504022*/      /*Scope*/ 25, /*->504048*/
/*504023*/        OPC_CheckChild1Type, MVT::v4f64,
/*504025*/        OPC_MoveChild2,
/*504026*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504029*/        OPC_CheckType, MVT::iPTR,
/*504031*/        OPC_MoveParent,
/*504032*/        OPC_CheckType, MVT::v8f64,
/*504034*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*504036*/        OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*504039*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrr), 0,
                      MVT::v8f64, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3 - Complexity = 6
                  // Dst: (VINSERTF64x4Zrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[iPTR] })):$src3))
/*504048*/      /*Scope*/ 23, /*->504072*/
/*504049*/        OPC_MoveChild2,
/*504050*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504053*/        OPC_CheckType, MVT::iPTR,
/*504055*/        OPC_MoveParent,
/*504056*/        OPC_CheckType, MVT::v4f64,
/*504058*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*504060*/        OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*504063*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rr), 0,
                      MVT::v4f64, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (insert_subvector:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                  // Dst: (VINSERTF32x4Z256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ins))
/*504072*/      /*Scope*/ 25, /*->504098*/
/*504073*/        OPC_CheckChild1Type, MVT::v2f64,
/*504075*/        OPC_MoveChild2,
/*504076*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504079*/        OPC_CheckType, MVT::iPTR,
/*504081*/        OPC_MoveParent,
/*504082*/        OPC_CheckType, MVT::v8f64,
/*504084*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*504086*/        OPC_EmitNodeXForm, 13, 0, // INSERT_get_vinsert128_imm
/*504089*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Zrr), 0,
                      MVT::v8f64, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (insert_subvector:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 6
                  // Dst: (VINSERTF32x4Zrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*504098*/      /*Scope*/ 25, /*->504124*/
/*504099*/        OPC_CheckChild1Type, MVT::v8f32,
/*504101*/        OPC_MoveChild2,
/*504102*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504105*/        OPC_CheckType, MVT::iPTR,
/*504107*/        OPC_MoveParent,
/*504108*/        OPC_CheckType, MVT::v16f32,
/*504110*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*504112*/        OPC_EmitNodeXForm, 20, 0, // INSERT_get_vinsert256_imm
/*504115*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrr), 0,
                      MVT::v16f32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (insert_subvector:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins - Complexity = 6
                  // Dst: (VINSERTF64x4Zrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*504124*/      0, /*End of Scope*/
/*504125*/    0, /*End of Scope*/
/*504126*/  /*SwitchOpcode*/ 54|128,4/*566*/, TARGET_VAL(X86ISD::VFPCLASS),// ->504696
/*504130*/    OPC_Scope, 39|128,3/*423*/, /*->504556*/ // 2 children in Scope
/*504133*/      OPC_MoveChild0,
/*504134*/      OPC_SwitchOpcode /*2 cases */, 84|128,1/*212*/, TARGET_VAL(X86ISD::VBROADCAST),// ->504351
/*504139*/        OPC_MoveChild0,
/*504140*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*504143*/        OPC_RecordMemRef,
/*504144*/        OPC_RecordNode, // #0 = 'ld' chained node
/*504145*/        OPC_CheckFoldableChainNode,
/*504146*/        OPC_RecordChild1, // #1 = $src1
/*504147*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504149*/        OPC_CheckPredicate, 9, // Predicate_load
/*504151*/        OPC_SwitchType /*2 cases */, 97, MVT::f32,// ->504251
/*504154*/          OPC_MoveParent,
/*504155*/          OPC_Scope, 29, /*->504186*/ // 3 children in Scope
/*504157*/            OPC_MoveParent,
/*504158*/            OPC_RecordChild1, // #2 = $src2
/*504159*/            OPC_MoveChild1,
/*504160*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504163*/            OPC_MoveParent,
/*504164*/            OPC_CheckType, MVT::v16i1,
/*504166*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*504168*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504171*/            OPC_EmitMergeInputChains1_0,
/*504172*/            OPC_EmitConvertToTarget, 2,
/*504174*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86Vfpclass:{ *:[v16i1] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VFPCLASSPSZrmb:{ *:[v16i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504186*/          /*Scope*/ 31, /*->504218*/
/*504187*/            OPC_CheckType, MVT::v4f32,
/*504189*/            OPC_MoveParent,
/*504190*/            OPC_RecordChild1, // #2 = $src2
/*504191*/            OPC_MoveChild1,
/*504192*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504195*/            OPC_MoveParent,
/*504196*/            OPC_CheckType, MVT::v4i1,
/*504198*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504200*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504203*/            OPC_EmitMergeInputChains1_0,
/*504204*/            OPC_EmitConvertToTarget, 2,
/*504206*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86Vfpclass:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VFPCLASSPSZ128rmb:{ *:[v4i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504218*/          /*Scope*/ 31, /*->504250*/
/*504219*/            OPC_CheckType, MVT::v8f32,
/*504221*/            OPC_MoveParent,
/*504222*/            OPC_RecordChild1, // #2 = $src2
/*504223*/            OPC_MoveChild1,
/*504224*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504227*/            OPC_MoveParent,
/*504228*/            OPC_CheckType, MVT::v8i1,
/*504230*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504232*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504235*/            OPC_EmitMergeInputChains1_0,
/*504236*/            OPC_EmitConvertToTarget, 2,
/*504238*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86Vfpclass:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VFPCLASSPSZ256rmb:{ *:[v8i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504250*/          0, /*End of Scope*/
/*504251*/        /*SwitchType*/ 97, MVT::f64,// ->504350
/*504253*/          OPC_MoveParent,
/*504254*/          OPC_Scope, 31, /*->504287*/ // 3 children in Scope
/*504256*/            OPC_CheckType, MVT::v8f64,
/*504258*/            OPC_MoveParent,
/*504259*/            OPC_RecordChild1, // #2 = $src2
/*504260*/            OPC_MoveChild1,
/*504261*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504264*/            OPC_MoveParent,
/*504265*/            OPC_CheckType, MVT::v8i1,
/*504267*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*504269*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504272*/            OPC_EmitMergeInputChains1_0,
/*504273*/            OPC_EmitConvertToTarget, 2,
/*504275*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86Vfpclass:{ *:[v8i1] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VFPCLASSPDZrmb:{ *:[v8i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504287*/          /*Scope*/ 29, /*->504317*/
/*504288*/            OPC_MoveParent,
/*504289*/            OPC_RecordChild1, // #2 = $src2
/*504290*/            OPC_MoveChild1,
/*504291*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504294*/            OPC_MoveParent,
/*504295*/            OPC_CheckType, MVT::v2i1,
/*504297*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504299*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504302*/            OPC_EmitMergeInputChains1_0,
/*504303*/            OPC_EmitConvertToTarget, 2,
/*504305*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86Vfpclass:{ *:[v2i1] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VFPCLASSPDZ128rmb:{ *:[v2i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504317*/          /*Scope*/ 31, /*->504349*/
/*504318*/            OPC_CheckType, MVT::v4f64,
/*504320*/            OPC_MoveParent,
/*504321*/            OPC_RecordChild1, // #2 = $src2
/*504322*/            OPC_MoveChild1,
/*504323*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504326*/            OPC_MoveParent,
/*504327*/            OPC_CheckType, MVT::v4i1,
/*504329*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504331*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504334*/            OPC_EmitMergeInputChains1_0,
/*504335*/            OPC_EmitConvertToTarget, 2,
/*504337*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86Vfpclass:{ *:[v4i1] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VFPCLASSPDZ256rmb:{ *:[v4i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504349*/          0, /*End of Scope*/
/*504350*/        0, // EndSwitchType
/*504351*/      /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(ISD::LOAD),// ->504555
/*504355*/        OPC_RecordMemRef,
/*504356*/        OPC_RecordNode, // #0 = 'ld' chained node
/*504357*/        OPC_CheckFoldableChainNode,
/*504358*/        OPC_RecordChild1, // #1 = $src1
/*504359*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504361*/        OPC_CheckPredicate, 9, // Predicate_load
/*504363*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*504365*/        OPC_Scope, 29, /*->504396*/ // 6 children in Scope
/*504367*/          OPC_MoveParent,
/*504368*/          OPC_RecordChild1, // #2 = $src2
/*504369*/          OPC_MoveChild1,
/*504370*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504373*/          OPC_MoveParent,
/*504374*/          OPC_CheckType, MVT::v16i1,
/*504376*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*504378*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504381*/          OPC_EmitMergeInputChains1_0,
/*504382*/          OPC_EmitConvertToTarget, 2,
/*504384*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Vfpclass:{ *:[v16i1] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPSZrm:{ *:[v16i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504396*/        /*Scope*/ 31, /*->504428*/
/*504397*/          OPC_CheckType, MVT::v4f32,
/*504399*/          OPC_MoveParent,
/*504400*/          OPC_RecordChild1, // #2 = $src2
/*504401*/          OPC_MoveChild1,
/*504402*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504405*/          OPC_MoveParent,
/*504406*/          OPC_CheckType, MVT::v4i1,
/*504408*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504410*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504413*/          OPC_EmitMergeInputChains1_0,
/*504414*/          OPC_EmitConvertToTarget, 2,
/*504416*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPSZ128rm:{ *:[v4i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504428*/        /*Scope*/ 31, /*->504460*/
/*504429*/          OPC_CheckType, MVT::v8f32,
/*504431*/          OPC_MoveParent,
/*504432*/          OPC_RecordChild1, // #2 = $src2
/*504433*/          OPC_MoveChild1,
/*504434*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504437*/          OPC_MoveParent,
/*504438*/          OPC_CheckType, MVT::v8i1,
/*504440*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504442*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504445*/          OPC_EmitMergeInputChains1_0,
/*504446*/          OPC_EmitConvertToTarget, 2,
/*504448*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPSZ256rm:{ *:[v8i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504460*/        /*Scope*/ 31, /*->504492*/
/*504461*/          OPC_CheckType, MVT::v8f64,
/*504463*/          OPC_MoveParent,
/*504464*/          OPC_RecordChild1, // #2 = $src2
/*504465*/          OPC_MoveChild1,
/*504466*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504469*/          OPC_MoveParent,
/*504470*/          OPC_CheckType, MVT::v8i1,
/*504472*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*504474*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504477*/          OPC_EmitMergeInputChains1_0,
/*504478*/          OPC_EmitConvertToTarget, 2,
/*504480*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPDZrm:{ *:[v8i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504492*/        /*Scope*/ 29, /*->504522*/
/*504493*/          OPC_MoveParent,
/*504494*/          OPC_RecordChild1, // #2 = $src2
/*504495*/          OPC_MoveChild1,
/*504496*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504499*/          OPC_MoveParent,
/*504500*/          OPC_CheckType, MVT::v2i1,
/*504502*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504504*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504507*/          OPC_EmitMergeInputChains1_0,
/*504508*/          OPC_EmitConvertToTarget, 2,
/*504510*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Vfpclass:{ *:[v2i1] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPDZ128rm:{ *:[v2i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504522*/        /*Scope*/ 31, /*->504554*/
/*504523*/          OPC_CheckType, MVT::v4f64,
/*504525*/          OPC_MoveParent,
/*504526*/          OPC_RecordChild1, // #2 = $src2
/*504527*/          OPC_MoveChild1,
/*504528*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504531*/          OPC_MoveParent,
/*504532*/          OPC_CheckType, MVT::v4i1,
/*504534*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504536*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*504539*/          OPC_EmitMergeInputChains1_0,
/*504540*/          OPC_EmitConvertToTarget, 2,
/*504542*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPDZ256rm:{ *:[v4i1] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*504554*/        0, /*End of Scope*/
/*504555*/      0, // EndSwitchOpcode
/*504556*/    /*Scope*/ 9|128,1/*137*/, /*->504695*/
/*504558*/      OPC_RecordChild0, // #0 = $src1
/*504559*/      OPC_Scope, 20, /*->504581*/ // 6 children in Scope
/*504561*/        OPC_RecordChild1, // #1 = $src2
/*504562*/        OPC_MoveChild1,
/*504563*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504566*/        OPC_MoveParent,
/*504567*/        OPC_CheckType, MVT::v16i1,
/*504569*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*504571*/        OPC_EmitConvertToTarget, 1,
/*504573*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2, 
                  // Src: (X86Vfpclass:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPSZrr:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*504581*/      /*Scope*/ 22, /*->504604*/
/*504582*/        OPC_CheckChild0Type, MVT::v4f32,
/*504584*/        OPC_RecordChild1, // #1 = $src2
/*504585*/        OPC_MoveChild1,
/*504586*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504589*/        OPC_MoveParent,
/*504590*/        OPC_CheckType, MVT::v4i1,
/*504592*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504594*/        OPC_EmitConvertToTarget, 1,
/*504596*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rr), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 2, 
                  // Src: (X86Vfpclass:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPSZ128rr:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*504604*/      /*Scope*/ 22, /*->504627*/
/*504605*/        OPC_CheckChild0Type, MVT::v8f32,
/*504607*/        OPC_RecordChild1, // #1 = $src2
/*504608*/        OPC_MoveChild1,
/*504609*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504612*/        OPC_MoveParent,
/*504613*/        OPC_CheckType, MVT::v8i1,
/*504615*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504617*/        OPC_EmitConvertToTarget, 1,
/*504619*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rr), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 2, 
                  // Src: (X86Vfpclass:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPSZ256rr:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*504627*/      /*Scope*/ 22, /*->504650*/
/*504628*/        OPC_CheckChild0Type, MVT::v8f64,
/*504630*/        OPC_RecordChild1, // #1 = $src2
/*504631*/        OPC_MoveChild1,
/*504632*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504635*/        OPC_MoveParent,
/*504636*/        OPC_CheckType, MVT::v8i1,
/*504638*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*504640*/        OPC_EmitConvertToTarget, 1,
/*504642*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 2, 
                  // Src: (X86Vfpclass:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPDZrr:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*504650*/      /*Scope*/ 20, /*->504671*/
/*504651*/        OPC_RecordChild1, // #1 = $src2
/*504652*/        OPC_MoveChild1,
/*504653*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504656*/        OPC_MoveParent,
/*504657*/        OPC_CheckType, MVT::v2i1,
/*504659*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504661*/        OPC_EmitConvertToTarget, 1,
/*504663*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rr), 0,
                      MVT::v2i1, 2/*#Ops*/, 0, 2, 
                  // Src: (X86Vfpclass:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPDZ128rr:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*504671*/      /*Scope*/ 22, /*->504694*/
/*504672*/        OPC_CheckChild0Type, MVT::v4f64,
/*504674*/        OPC_RecordChild1, // #1 = $src2
/*504675*/        OPC_MoveChild1,
/*504676*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*504679*/        OPC_MoveParent,
/*504680*/        OPC_CheckType, MVT::v4i1,
/*504682*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*504684*/        OPC_EmitConvertToTarget, 1,
/*504686*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rr), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 2, 
                  // Src: (X86Vfpclass:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPDZ256rr:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*504694*/      0, /*End of Scope*/
/*504695*/    0, /*End of Scope*/
/*504696*/  /*SwitchOpcode*/ 65|128,2/*321*/, TARGET_VAL(X86ISD::MULTISHIFT),// ->505021
/*504700*/    OPC_RecordChild0, // #0 = $src1
/*504701*/    OPC_Scope, 105, /*->504808*/ // 3 children in Scope
/*504703*/      OPC_CheckChild0Type, MVT::v64i8,
/*504705*/      OPC_Scope, 86, /*->504793*/ // 2 children in Scope
/*504707*/        OPC_MoveChild1,
/*504708*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*504711*/        OPC_MoveChild0,
/*504712*/        OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->504755
/*504716*/          OPC_MoveChild0,
/*504717*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*504720*/          OPC_RecordMemRef,
/*504721*/          OPC_RecordNode, // #1 = 'ld' chained node
/*504722*/          OPC_CheckFoldableChainNode,
/*504723*/          OPC_RecordChild1, // #2 = $src2
/*504724*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504726*/          OPC_CheckPredicate, 9, // Predicate_load
/*504728*/          OPC_CheckType, MVT::i64,
/*504730*/          OPC_MoveParent,
/*504731*/          OPC_CheckType, MVT::v8i64,
/*504733*/          OPC_MoveParent,
/*504734*/          OPC_MoveParent,
/*504735*/          OPC_CheckType, MVT::v64i8,
/*504737*/          OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*504739*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*504742*/          OPC_EmitMergeInputChains1_1,
/*504743*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86multishift:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VPMULTISHIFTQBZrmb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*504755*/        /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->504792
/*504758*/          OPC_RecordMemRef,
/*504759*/          OPC_RecordNode, // #1 = 'ld' chained node
/*504760*/          OPC_CheckFoldableChainNode,
/*504761*/          OPC_RecordChild1, // #2 = $src2
/*504762*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504764*/          OPC_CheckPredicate, 9, // Predicate_load
/*504766*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*504768*/          OPC_CheckType, MVT::v8i64,
/*504770*/          OPC_MoveParent,
/*504771*/          OPC_MoveParent,
/*504772*/          OPC_CheckType, MVT::v64i8,
/*504774*/          OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*504776*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*504779*/          OPC_EmitMergeInputChains1_1,
/*504780*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86multishift:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULTISHIFTQBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*504792*/        0, // EndSwitchOpcode
/*504793*/      /*Scope*/ 13, /*->504807*/
/*504794*/        OPC_RecordChild1, // #1 = $src2
/*504795*/        OPC_CheckType, MVT::v64i8,
/*504797*/        OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*504799*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86multishift:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPMULTISHIFTQBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*504807*/      0, /*End of Scope*/
/*504808*/    /*Scope*/ 105, /*->504914*/
/*504809*/      OPC_CheckChild0Type, MVT::v32i8,
/*504811*/      OPC_Scope, 86, /*->504899*/ // 2 children in Scope
/*504813*/        OPC_MoveChild1,
/*504814*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*504817*/        OPC_MoveChild0,
/*504818*/        OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->504861
/*504822*/          OPC_MoveChild0,
/*504823*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*504826*/          OPC_RecordMemRef,
/*504827*/          OPC_RecordNode, // #1 = 'ld' chained node
/*504828*/          OPC_CheckFoldableChainNode,
/*504829*/          OPC_RecordChild1, // #2 = $src2
/*504830*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504832*/          OPC_CheckPredicate, 9, // Predicate_load
/*504834*/          OPC_CheckType, MVT::i64,
/*504836*/          OPC_MoveParent,
/*504837*/          OPC_CheckType, MVT::v4i64,
/*504839*/          OPC_MoveParent,
/*504840*/          OPC_MoveParent,
/*504841*/          OPC_CheckType, MVT::v32i8,
/*504843*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*504845*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*504848*/          OPC_EmitMergeInputChains1_1,
/*504849*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86multishift:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VPMULTISHIFTQBZ256rmb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*504861*/        /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->504898
/*504864*/          OPC_RecordMemRef,
/*504865*/          OPC_RecordNode, // #1 = 'ld' chained node
/*504866*/          OPC_CheckFoldableChainNode,
/*504867*/          OPC_RecordChild1, // #2 = $src2
/*504868*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504870*/          OPC_CheckPredicate, 9, // Predicate_load
/*504872*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*504874*/          OPC_CheckType, MVT::v4i64,
/*504876*/          OPC_MoveParent,
/*504877*/          OPC_MoveParent,
/*504878*/          OPC_CheckType, MVT::v32i8,
/*504880*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*504882*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*504885*/          OPC_EmitMergeInputChains1_1,
/*504886*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86multishift:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULTISHIFTQBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*504898*/        0, // EndSwitchOpcode
/*504899*/      /*Scope*/ 13, /*->504913*/
/*504900*/        OPC_RecordChild1, // #1 = $src2
/*504901*/        OPC_CheckType, MVT::v32i8,
/*504903*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*504905*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ256rr), 0,
                      MVT::v32i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86multishift:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                  // Dst: (VPMULTISHIFTQBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*504913*/      0, /*End of Scope*/
/*504914*/    /*Scope*/ 105, /*->505020*/
/*504915*/      OPC_CheckChild0Type, MVT::v16i8,
/*504917*/      OPC_Scope, 86, /*->505005*/ // 2 children in Scope
/*504919*/        OPC_MoveChild1,
/*504920*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*504923*/        OPC_MoveChild0,
/*504924*/        OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->504967
/*504928*/          OPC_MoveChild0,
/*504929*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*504932*/          OPC_RecordMemRef,
/*504933*/          OPC_RecordNode, // #1 = 'ld' chained node
/*504934*/          OPC_CheckFoldableChainNode,
/*504935*/          OPC_RecordChild1, // #2 = $src2
/*504936*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504938*/          OPC_CheckPredicate, 9, // Predicate_load
/*504940*/          OPC_CheckType, MVT::i64,
/*504942*/          OPC_MoveParent,
/*504943*/          OPC_CheckType, MVT::v2i64,
/*504945*/          OPC_MoveParent,
/*504946*/          OPC_MoveParent,
/*504947*/          OPC_CheckType, MVT::v16i8,
/*504949*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*504951*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*504954*/          OPC_EmitMergeInputChains1_1,
/*504955*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86multishift:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VPMULTISHIFTQBZ128rmb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*504967*/        /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->505004
/*504970*/          OPC_RecordMemRef,
/*504971*/          OPC_RecordNode, // #1 = 'ld' chained node
/*504972*/          OPC_CheckFoldableChainNode,
/*504973*/          OPC_RecordChild1, // #2 = $src2
/*504974*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504976*/          OPC_CheckPredicate, 9, // Predicate_load
/*504978*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*504980*/          OPC_CheckType, MVT::v2i64,
/*504982*/          OPC_MoveParent,
/*504983*/          OPC_MoveParent,
/*504984*/          OPC_CheckType, MVT::v16i8,
/*504986*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*504988*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*504991*/          OPC_EmitMergeInputChains1_1,
/*504992*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86multishift:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULTISHIFTQBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505004*/        0, // EndSwitchOpcode
/*505005*/      /*Scope*/ 13, /*->505019*/
/*505006*/        OPC_RecordChild1, // #1 = $src2
/*505007*/        OPC_CheckType, MVT::v16i8,
/*505009*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*505011*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULTISHIFTQBZ128rr), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86multishift:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                  // Dst: (VPMULTISHIFTQBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*505019*/      0, /*End of Scope*/
/*505020*/    0, /*End of Scope*/
/*505021*/  /*SwitchOpcode*/ 94|128,4/*606*/, TARGET_VAL(X86ISD::ANDNP),// ->505631
/*505025*/    OPC_RecordChild0, // #0 = $src1
/*505026*/    OPC_Scope, 127|128,3/*511*/, /*->505540*/ // 2 children in Scope
/*505029*/      OPC_MoveChild1,
/*505030*/      OPC_SwitchOpcode /*3 cases */, 0|128,2/*256*/, TARGET_VAL(ISD::BITCAST),// ->505291
/*505035*/        OPC_MoveChild0,
/*505036*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*505039*/        OPC_MoveChild0,
/*505040*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*505043*/        OPC_RecordMemRef,
/*505044*/        OPC_RecordNode, // #1 = 'ld' chained node
/*505045*/        OPC_CheckFoldableChainNode,
/*505046*/        OPC_RecordChild1, // #2 = $src2
/*505047*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505049*/        OPC_Scope, 79, /*->505130*/ // 2 children in Scope
/*505051*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*505053*/          OPC_CheckType, MVT::i32,
/*505055*/          OPC_MoveParent,
/*505056*/          OPC_SwitchType /*3 cases */, 22, MVT::v16i32,// ->505081
/*505059*/            OPC_MoveParent,
/*505060*/            OPC_MoveParent,
/*505061*/            OPC_CheckType, MVT::v8i64,
/*505063*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*505065*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505068*/            OPC_EmitMergeInputChains1_1,
/*505069*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPANDNDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505081*/          /*SwitchType*/ 22, MVT::v8i32,// ->505105
/*505083*/            OPC_MoveParent,
/*505084*/            OPC_MoveParent,
/*505085*/            OPC_CheckType, MVT::v4i64,
/*505087*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505089*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505092*/            OPC_EmitMergeInputChains1_1,
/*505093*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPANDNDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505105*/          /*SwitchType*/ 22, MVT::v4i32,// ->505129
/*505107*/            OPC_MoveParent,
/*505108*/            OPC_MoveParent,
/*505109*/            OPC_CheckType, MVT::v2i64,
/*505111*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505113*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505116*/            OPC_EmitMergeInputChains1_1,
/*505117*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VPANDNDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505129*/          0, // EndSwitchType
/*505130*/        /*Scope*/ 30|128,1/*158*/, /*->505290*/
/*505132*/          OPC_CheckPredicate, 9, // Predicate_load
/*505134*/          OPC_SwitchType /*2 cases */, 75, MVT::f32,// ->505212
/*505137*/            OPC_MoveParent,
/*505138*/            OPC_SwitchType /*3 cases */, 22, MVT::v4f32,// ->505163
/*505141*/              OPC_MoveParent,
/*505142*/              OPC_MoveParent,
/*505143*/              OPC_CheckType, MVT::v2i64,
/*505145*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*505147*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505150*/              OPC_EmitMergeInputChains1_1,
/*505151*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDNDZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505163*/            /*SwitchType*/ 22, MVT::v8f32,// ->505187
/*505165*/              OPC_MoveParent,
/*505166*/              OPC_MoveParent,
/*505167*/              OPC_CheckType, MVT::v4i64,
/*505169*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*505171*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505174*/              OPC_EmitMergeInputChains1_1,
/*505175*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDNDZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505187*/            /*SwitchType*/ 22, MVT::v16f32,// ->505211
/*505189*/              OPC_MoveParent,
/*505190*/              OPC_MoveParent,
/*505191*/              OPC_CheckType, MVT::v8i64,
/*505193*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*505195*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505198*/              OPC_EmitMergeInputChains1_1,
/*505199*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDNDZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505211*/            0, // EndSwitchType
/*505212*/          /*SwitchType*/ 75, MVT::f64,// ->505289
/*505214*/            OPC_MoveParent,
/*505215*/            OPC_SwitchType /*3 cases */, 22, MVT::v2f64,// ->505240
/*505218*/              OPC_MoveParent,
/*505219*/              OPC_MoveParent,
/*505220*/              OPC_CheckType, MVT::v2i64,
/*505222*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*505224*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505227*/              OPC_EmitMergeInputChains1_1,
/*505228*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDNQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505240*/            /*SwitchType*/ 22, MVT::v4f64,// ->505264
/*505242*/              OPC_MoveParent,
/*505243*/              OPC_MoveParent,
/*505244*/              OPC_CheckType, MVT::v4i64,
/*505246*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*505248*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505251*/              OPC_EmitMergeInputChains1_1,
/*505252*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDNQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505264*/            /*SwitchType*/ 22, MVT::v8f64,// ->505288
/*505266*/              OPC_MoveParent,
/*505267*/              OPC_MoveParent,
/*505268*/              OPC_CheckType, MVT::v8i64,
/*505270*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*505272*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505275*/              OPC_EmitMergeInputChains1_1,
/*505276*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VPANDNQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505288*/            0, // EndSwitchType
/*505289*/          0, // EndSwitchType
/*505290*/        0, /*End of Scope*/
/*505291*/      /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST),// ->505372
/*505294*/        OPC_MoveChild0,
/*505295*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*505298*/        OPC_RecordMemRef,
/*505299*/        OPC_RecordNode, // #1 = 'ld' chained node
/*505300*/        OPC_CheckFoldableChainNode,
/*505301*/        OPC_RecordChild1, // #2 = $src2
/*505302*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505304*/        OPC_CheckPredicate, 9, // Predicate_load
/*505306*/        OPC_CheckType, MVT::i64,
/*505308*/        OPC_MoveParent,
/*505309*/        OPC_MoveParent,
/*505310*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->505331
/*505313*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*505315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505318*/          OPC_EmitMergeInputChains1_1,
/*505319*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VPANDNQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505331*/        /*SwitchType*/ 18, MVT::v4i64,// ->505351
/*505333*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505335*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505338*/          OPC_EmitMergeInputChains1_1,
/*505339*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VPANDNQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505351*/        /*SwitchType*/ 18, MVT::v2i64,// ->505371
/*505353*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505355*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505358*/          OPC_EmitMergeInputChains1_1,
/*505359*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VPANDNQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505371*/        0, // EndSwitchType
/*505372*/      /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(ISD::LOAD),// ->505539
/*505376*/        OPC_RecordMemRef,
/*505377*/        OPC_RecordNode, // #1 = 'ld' chained node
/*505378*/        OPC_CheckFoldableChainNode,
/*505379*/        OPC_RecordChild1, // #2 = $src2
/*505380*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505382*/        OPC_CheckPredicate, 9, // Predicate_load
/*505384*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*505386*/        OPC_Scope, 21, /*->505409*/ // 3 children in Scope
/*505388*/          OPC_MoveParent,
/*505389*/          OPC_CheckType, MVT::v2i64,
/*505391*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*505393*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505396*/          OPC_EmitMergeInputChains1_1,
/*505397*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VPANDNrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505409*/        /*Scope*/ 23, /*->505433*/
/*505410*/          OPC_CheckPredicate, 48, // Predicate_memop
/*505412*/          OPC_MoveParent,
/*505413*/          OPC_CheckType, MVT::v2i64,
/*505415*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*505417*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505420*/          OPC_EmitMergeInputChains1_1,
/*505421*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PANDNrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505433*/        /*Scope*/ 104, /*->505538*/
/*505434*/          OPC_MoveParent,
/*505435*/          OPC_SwitchType /*3 cases */, 59, MVT::v4i64,// ->505497
/*505438*/            OPC_Scope, 18, /*->505458*/ // 3 children in Scope
/*505440*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*505442*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505445*/              OPC_EmitMergeInputChains1_1,
/*505446*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPANDNYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505458*/            /*Scope*/ 18, /*->505477*/
/*505459*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*505461*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505464*/              OPC_EmitMergeInputChains1_1,
/*505465*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VANDNPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VANDNPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505477*/            /*Scope*/ 18, /*->505496*/
/*505478*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505480*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505483*/              OPC_EmitMergeInputChains1_1,
/*505484*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPANDNQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505496*/            0, /*End of Scope*/
/*505497*/          /*SwitchType*/ 18, MVT::v8i64,// ->505517
/*505499*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*505501*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505504*/            OPC_EmitMergeInputChains1_1,
/*505505*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPANDNQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505517*/          /*SwitchType*/ 18, MVT::v2i64,// ->505537
/*505519*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505521*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505524*/            OPC_EmitMergeInputChains1_1,
/*505525*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPANDNQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505537*/          0, // EndSwitchType
/*505538*/        0, /*End of Scope*/
/*505539*/      0, // EndSwitchOpcode
/*505540*/    /*Scope*/ 89, /*->505630*/
/*505541*/      OPC_RecordChild1, // #1 = $src2
/*505542*/      OPC_SwitchType /*3 cases */, 35, MVT::v2i64,// ->505580
/*505545*/        OPC_Scope, 10, /*->505557*/ // 3 children in Scope
/*505547*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*505549*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNrr), 0,
                        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)
/*505557*/        /*Scope*/ 10, /*->505568*/
/*505558*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*505560*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PANDNrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (PANDNrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*505568*/        /*Scope*/ 10, /*->505579*/
/*505569*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505571*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPANDNQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*505579*/        0, /*End of Scope*/
/*505580*/      /*SwitchType*/ 35, MVT::v4i64,// ->505617
/*505582*/        OPC_Scope, 10, /*->505594*/ // 3 children in Scope
/*505584*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*505586*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPANDNYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*505594*/        /*Scope*/ 10, /*->505605*/
/*505595*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*505597*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VANDNPSYrr), 0,
                        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)
/*505605*/        /*Scope*/ 10, /*->505616*/
/*505606*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505608*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPANDNQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*505616*/        0, /*End of Scope*/
/*505617*/      /*SwitchType*/ 10, MVT::v8i64,// ->505629
/*505619*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*505621*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86andnp:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPANDNQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*505629*/      0, // EndSwitchType
/*505630*/    0, /*End of Scope*/
/*505631*/  /*SwitchOpcode*/ 91|128,5/*731*/, TARGET_VAL(X86ISD::VSRLI),// ->506366
/*505635*/    OPC_Scope, 71|128,3/*455*/, /*->506093*/ // 2 children in Scope
/*505638*/      OPC_MoveChild0,
/*505639*/      OPC_SwitchOpcode /*3 cases */, 56|128,1/*184*/, TARGET_VAL(ISD::BITCAST),// ->505828
/*505644*/        OPC_MoveChild0,
/*505645*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*505648*/        OPC_RecordMemRef,
/*505649*/        OPC_RecordNode, // #0 = 'ld' chained node
/*505650*/        OPC_CheckFoldableChainNode,
/*505651*/        OPC_RecordChild1, // #1 = $src1
/*505652*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505654*/        OPC_CheckPredicate, 9, // Predicate_load
/*505656*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*505658*/        OPC_SwitchType /*3 cases */, 54, MVT::v8i64,// ->505715
/*505661*/          OPC_MoveParent,
/*505662*/          OPC_MoveParent,
/*505663*/          OPC_RecordChild1, // #2 = $src2
/*505664*/          OPC_MoveChild1,
/*505665*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*505668*/          OPC_MoveParent,
/*505669*/          OPC_SwitchType /*2 cases */, 20, MVT::v16i32,// ->505692
/*505672*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*505674*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505677*/            OPC_EmitMergeInputChains1_0,
/*505678*/            OPC_EmitConvertToTarget, 2,
/*505680*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLDZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*505692*/          /*SwitchType*/ 20, MVT::v32i16,// ->505714
/*505694*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*505696*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505699*/            OPC_EmitMergeInputChains1_0,
/*505700*/            OPC_EmitConvertToTarget, 2,
/*505702*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLWZmi:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*505714*/          0, // EndSwitchType
/*505715*/        /*SwitchType*/ 54, MVT::v4i64,// ->505771
/*505717*/          OPC_MoveParent,
/*505718*/          OPC_MoveParent,
/*505719*/          OPC_RecordChild1, // #2 = $src2
/*505720*/          OPC_MoveChild1,
/*505721*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*505724*/          OPC_MoveParent,
/*505725*/          OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->505748
/*505728*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505730*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505733*/            OPC_EmitMergeInputChains1_0,
/*505734*/            OPC_EmitConvertToTarget, 2,
/*505736*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLDZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*505748*/          /*SwitchType*/ 20, MVT::v16i16,// ->505770
/*505750*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*505752*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505755*/            OPC_EmitMergeInputChains1_0,
/*505756*/            OPC_EmitConvertToTarget, 2,
/*505758*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLWZ256mi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*505770*/          0, // EndSwitchType
/*505771*/        /*SwitchType*/ 54, MVT::v2i64,// ->505827
/*505773*/          OPC_MoveParent,
/*505774*/          OPC_MoveParent,
/*505775*/          OPC_RecordChild1, // #2 = $src2
/*505776*/          OPC_MoveChild1,
/*505777*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*505780*/          OPC_MoveParent,
/*505781*/          OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->505804
/*505784*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505786*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505789*/            OPC_EmitMergeInputChains1_0,
/*505790*/            OPC_EmitConvertToTarget, 2,
/*505792*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLDZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*505804*/          /*SwitchType*/ 20, MVT::v8i16,// ->505826
/*505806*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*505808*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505811*/            OPC_EmitMergeInputChains1_0,
/*505812*/            OPC_EmitConvertToTarget, 2,
/*505814*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLWZ128mi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*505826*/          0, // EndSwitchType
/*505827*/        0, // EndSwitchType
/*505828*/      /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::VBROADCAST),// ->506004
/*505832*/        OPC_MoveChild0,
/*505833*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*505836*/        OPC_RecordMemRef,
/*505837*/        OPC_RecordNode, // #0 = 'ld' chained node
/*505838*/        OPC_CheckFoldableChainNode,
/*505839*/        OPC_RecordChild1, // #1 = $src1
/*505840*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505842*/        OPC_SwitchType /*2 cases */, 78, MVT::i32,// ->505923
/*505845*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*505847*/          OPC_MoveParent,
/*505848*/          OPC_MoveParent,
/*505849*/          OPC_RecordChild1, // #2 = $src2
/*505850*/          OPC_MoveChild1,
/*505851*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*505854*/          OPC_MoveParent,
/*505855*/          OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->505878
/*505858*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*505860*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505863*/            OPC_EmitMergeInputChains1_0,
/*505864*/            OPC_EmitConvertToTarget, 2,
/*505866*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLDZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*505878*/          /*SwitchType*/ 20, MVT::v8i32,// ->505900
/*505880*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505882*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505885*/            OPC_EmitMergeInputChains1_0,
/*505886*/            OPC_EmitConvertToTarget, 2,
/*505888*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLDZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*505900*/          /*SwitchType*/ 20, MVT::v4i32,// ->505922
/*505902*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505904*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505907*/            OPC_EmitMergeInputChains1_0,
/*505908*/            OPC_EmitConvertToTarget, 2,
/*505910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLDZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*505922*/          0, // EndSwitchType
/*505923*/        /*SwitchType*/ 78, MVT::i64,// ->506003
/*505925*/          OPC_CheckPredicate, 9, // Predicate_load
/*505927*/          OPC_MoveParent,
/*505928*/          OPC_MoveParent,
/*505929*/          OPC_RecordChild1, // #2 = $src2
/*505930*/          OPC_MoveChild1,
/*505931*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*505934*/          OPC_MoveParent,
/*505935*/          OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->505958
/*505938*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*505940*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505943*/            OPC_EmitMergeInputChains1_0,
/*505944*/            OPC_EmitConvertToTarget, 2,
/*505946*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*505958*/          /*SwitchType*/ 20, MVT::v4i64,// ->505980
/*505960*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505962*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505965*/            OPC_EmitMergeInputChains1_0,
/*505966*/            OPC_EmitConvertToTarget, 2,
/*505968*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*505980*/          /*SwitchType*/ 20, MVT::v2i64,// ->506002
/*505982*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*505984*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*505987*/            OPC_EmitMergeInputChains1_0,
/*505988*/            OPC_EmitConvertToTarget, 2,
/*505990*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrli:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRLQZ128mbi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506002*/          0, // EndSwitchType
/*506003*/        0, // EndSwitchType
/*506004*/      /*SwitchOpcode*/ 85, TARGET_VAL(ISD::LOAD),// ->506092
/*506007*/        OPC_RecordMemRef,
/*506008*/        OPC_RecordNode, // #0 = 'ld' chained node
/*506009*/        OPC_CheckFoldableChainNode,
/*506010*/        OPC_RecordChild1, // #1 = $src1
/*506011*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*506013*/        OPC_CheckPredicate, 9, // Predicate_load
/*506015*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*506017*/        OPC_MoveParent,
/*506018*/        OPC_RecordChild1, // #2 = $src2
/*506019*/        OPC_MoveChild1,
/*506020*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*506023*/        OPC_MoveParent,
/*506024*/        OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->506047
/*506027*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506029*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506032*/          OPC_EmitMergeInputChains1_0,
/*506033*/          OPC_EmitConvertToTarget, 2,
/*506035*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vsrli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506047*/        /*SwitchType*/ 20, MVT::v4i64,// ->506069
/*506049*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506051*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506054*/          OPC_EmitMergeInputChains1_0,
/*506055*/          OPC_EmitConvertToTarget, 2,
/*506057*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vsrli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506069*/        /*SwitchType*/ 20, MVT::v2i64,// ->506091
/*506071*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506073*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506076*/          OPC_EmitMergeInputChains1_0,
/*506077*/          OPC_EmitConvertToTarget, 2,
/*506079*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vsrli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLQZ128mi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506091*/        0, // EndSwitchType
/*506092*/      0, // EndSwitchOpcode
/*506093*/    /*Scope*/ 14|128,2/*270*/, /*->506365*/
/*506095*/      OPC_RecordChild0, // #0 = $src1
/*506096*/      OPC_RecordChild1, // #1 = $src2
/*506097*/      OPC_MoveChild1,
/*506098*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*506101*/      OPC_MoveParent,
/*506102*/      OPC_SwitchType /*9 cases */, 41, MVT::v8i16,// ->506146
/*506105*/        OPC_Scope, 12, /*->506119*/ // 3 children in Scope
/*506107*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*506109*/          OPC_EmitConvertToTarget, 1,
/*506111*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*506119*/        /*Scope*/ 12, /*->506132*/
/*506120*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*506122*/          OPC_EmitConvertToTarget, 1,
/*506124*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*506132*/        /*Scope*/ 12, /*->506145*/
/*506133*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*506135*/          OPC_EmitConvertToTarget, 1,
/*506137*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128ri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLWZ128ri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*506145*/        0, /*End of Scope*/
/*506146*/      /*SwitchType*/ 28, MVT::v16i16,// ->506176
/*506148*/        OPC_Scope, 12, /*->506162*/ // 2 children in Scope
/*506150*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*506152*/          OPC_EmitConvertToTarget, 1,
/*506154*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWYri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLWYri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*506162*/        /*Scope*/ 12, /*->506175*/
/*506163*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*506165*/          OPC_EmitConvertToTarget, 1,
/*506167*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256ri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLWZ256ri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*506175*/        0, /*End of Scope*/
/*506176*/      /*SwitchType*/ 41, MVT::v4i32,// ->506219
/*506178*/        OPC_Scope, 12, /*->506192*/ // 3 children in Scope
/*506180*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*506182*/          OPC_EmitConvertToTarget, 1,
/*506184*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*506192*/        /*Scope*/ 12, /*->506205*/
/*506193*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*506195*/          OPC_EmitConvertToTarget, 1,
/*506197*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRLDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*506205*/        /*Scope*/ 12, /*->506218*/
/*506206*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506208*/          OPC_EmitConvertToTarget, 1,
/*506210*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*506218*/        0, /*End of Scope*/
/*506219*/      /*SwitchType*/ 28, MVT::v8i32,// ->506249
/*506221*/        OPC_Scope, 12, /*->506235*/ // 2 children in Scope
/*506223*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*506225*/          OPC_EmitConvertToTarget, 1,
/*506227*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDYri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDYri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*506235*/        /*Scope*/ 12, /*->506248*/
/*506236*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506238*/          OPC_EmitConvertToTarget, 1,
/*506240*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*506248*/        0, /*End of Scope*/
/*506249*/      /*SwitchType*/ 41, MVT::v2i64,// ->506292
/*506251*/        OPC_Scope, 12, /*->506265*/ // 3 children in Scope
/*506253*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*506255*/          OPC_EmitConvertToTarget, 1,
/*506257*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*506265*/        /*Scope*/ 12, /*->506278*/
/*506266*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*506268*/          OPC_EmitConvertToTarget, 1,
/*506270*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLQri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRLQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*506278*/        /*Scope*/ 12, /*->506291*/
/*506279*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506281*/          OPC_EmitConvertToTarget, 1,
/*506283*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128ri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLQZ128ri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*506291*/        0, /*End of Scope*/
/*506292*/      /*SwitchType*/ 28, MVT::v4i64,// ->506322
/*506294*/        OPC_Scope, 12, /*->506308*/ // 2 children in Scope
/*506296*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*506298*/          OPC_EmitConvertToTarget, 1,
/*506300*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQYri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLQYri:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*506308*/        /*Scope*/ 12, /*->506321*/
/*506309*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506311*/          OPC_EmitConvertToTarget, 1,
/*506313*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*506321*/        0, /*End of Scope*/
/*506322*/      /*SwitchType*/ 12, MVT::v16i32,// ->506336
/*506324*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506326*/        OPC_EmitConvertToTarget, 1,
/*506328*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vsrli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRLDZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*506336*/      /*SwitchType*/ 12, MVT::v8i64,// ->506350
/*506338*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506340*/        OPC_EmitConvertToTarget, 1,
/*506342*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vsrli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRLQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*506350*/      /*SwitchType*/ 12, MVT::v32i16,// ->506364
/*506352*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*506354*/        OPC_EmitConvertToTarget, 1,
/*506356*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZri), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vsrli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRLWZri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*506364*/      0, // EndSwitchType
/*506365*/    0, /*End of Scope*/
/*506366*/  /*SwitchOpcode*/ 91|128,5/*731*/, TARGET_VAL(X86ISD::VSHLI),// ->507101
/*506370*/    OPC_Scope, 71|128,3/*455*/, /*->506828*/ // 2 children in Scope
/*506373*/      OPC_MoveChild0,
/*506374*/      OPC_SwitchOpcode /*3 cases */, 56|128,1/*184*/, TARGET_VAL(ISD::BITCAST),// ->506563
/*506379*/        OPC_MoveChild0,
/*506380*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*506383*/        OPC_RecordMemRef,
/*506384*/        OPC_RecordNode, // #0 = 'ld' chained node
/*506385*/        OPC_CheckFoldableChainNode,
/*506386*/        OPC_RecordChild1, // #1 = $src1
/*506387*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*506389*/        OPC_CheckPredicate, 9, // Predicate_load
/*506391*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*506393*/        OPC_SwitchType /*3 cases */, 54, MVT::v8i64,// ->506450
/*506396*/          OPC_MoveParent,
/*506397*/          OPC_MoveParent,
/*506398*/          OPC_RecordChild1, // #2 = $src2
/*506399*/          OPC_MoveChild1,
/*506400*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*506403*/          OPC_MoveParent,
/*506404*/          OPC_SwitchType /*2 cases */, 20, MVT::v16i32,// ->506427
/*506407*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506409*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506412*/            OPC_EmitMergeInputChains1_0,
/*506413*/            OPC_EmitConvertToTarget, 2,
/*506415*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLDZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506427*/          /*SwitchType*/ 20, MVT::v32i16,// ->506449
/*506429*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*506431*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506434*/            OPC_EmitMergeInputChains1_0,
/*506435*/            OPC_EmitConvertToTarget, 2,
/*506437*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLWZmi:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506449*/          0, // EndSwitchType
/*506450*/        /*SwitchType*/ 54, MVT::v4i64,// ->506506
/*506452*/          OPC_MoveParent,
/*506453*/          OPC_MoveParent,
/*506454*/          OPC_RecordChild1, // #2 = $src2
/*506455*/          OPC_MoveChild1,
/*506456*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*506459*/          OPC_MoveParent,
/*506460*/          OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->506483
/*506463*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506465*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506468*/            OPC_EmitMergeInputChains1_0,
/*506469*/            OPC_EmitConvertToTarget, 2,
/*506471*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLDZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506483*/          /*SwitchType*/ 20, MVT::v16i16,// ->506505
/*506485*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*506487*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506490*/            OPC_EmitMergeInputChains1_0,
/*506491*/            OPC_EmitConvertToTarget, 2,
/*506493*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLWZ256mi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506505*/          0, // EndSwitchType
/*506506*/        /*SwitchType*/ 54, MVT::v2i64,// ->506562
/*506508*/          OPC_MoveParent,
/*506509*/          OPC_MoveParent,
/*506510*/          OPC_RecordChild1, // #2 = $src2
/*506511*/          OPC_MoveChild1,
/*506512*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*506515*/          OPC_MoveParent,
/*506516*/          OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->506539
/*506519*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506521*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506524*/            OPC_EmitMergeInputChains1_0,
/*506525*/            OPC_EmitConvertToTarget, 2,
/*506527*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLDZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506539*/          /*SwitchType*/ 20, MVT::v8i16,// ->506561
/*506541*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*506543*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506546*/            OPC_EmitMergeInputChains1_0,
/*506547*/            OPC_EmitConvertToTarget, 2,
/*506549*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLWZ128mi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506561*/          0, // EndSwitchType
/*506562*/        0, // EndSwitchType
/*506563*/      /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::VBROADCAST),// ->506739
/*506567*/        OPC_MoveChild0,
/*506568*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*506571*/        OPC_RecordMemRef,
/*506572*/        OPC_RecordNode, // #0 = 'ld' chained node
/*506573*/        OPC_CheckFoldableChainNode,
/*506574*/        OPC_RecordChild1, // #1 = $src1
/*506575*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*506577*/        OPC_SwitchType /*2 cases */, 78, MVT::i32,// ->506658
/*506580*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*506582*/          OPC_MoveParent,
/*506583*/          OPC_MoveParent,
/*506584*/          OPC_RecordChild1, // #2 = $src2
/*506585*/          OPC_MoveChild1,
/*506586*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*506589*/          OPC_MoveParent,
/*506590*/          OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->506613
/*506593*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506595*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506598*/            OPC_EmitMergeInputChains1_0,
/*506599*/            OPC_EmitConvertToTarget, 2,
/*506601*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLDZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506613*/          /*SwitchType*/ 20, MVT::v8i32,// ->506635
/*506615*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506617*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506620*/            OPC_EmitMergeInputChains1_0,
/*506621*/            OPC_EmitConvertToTarget, 2,
/*506623*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLDZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506635*/          /*SwitchType*/ 20, MVT::v4i32,// ->506657
/*506637*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506639*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506642*/            OPC_EmitMergeInputChains1_0,
/*506643*/            OPC_EmitConvertToTarget, 2,
/*506645*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLDZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506657*/          0, // EndSwitchType
/*506658*/        /*SwitchType*/ 78, MVT::i64,// ->506738
/*506660*/          OPC_CheckPredicate, 9, // Predicate_load
/*506662*/          OPC_MoveParent,
/*506663*/          OPC_MoveParent,
/*506664*/          OPC_RecordChild1, // #2 = $src2
/*506665*/          OPC_MoveChild1,
/*506666*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*506669*/          OPC_MoveParent,
/*506670*/          OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->506693
/*506673*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506675*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506678*/            OPC_EmitMergeInputChains1_0,
/*506679*/            OPC_EmitConvertToTarget, 2,
/*506681*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506693*/          /*SwitchType*/ 20, MVT::v4i64,// ->506715
/*506695*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506697*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506700*/            OPC_EmitMergeInputChains1_0,
/*506701*/            OPC_EmitConvertToTarget, 2,
/*506703*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506715*/          /*SwitchType*/ 20, MVT::v2i64,// ->506737
/*506717*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506719*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506722*/            OPC_EmitMergeInputChains1_0,
/*506723*/            OPC_EmitConvertToTarget, 2,
/*506725*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vshli:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSLLQZ128mbi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506737*/          0, // EndSwitchType
/*506738*/        0, // EndSwitchType
/*506739*/      /*SwitchOpcode*/ 85, TARGET_VAL(ISD::LOAD),// ->506827
/*506742*/        OPC_RecordMemRef,
/*506743*/        OPC_RecordNode, // #0 = 'ld' chained node
/*506744*/        OPC_CheckFoldableChainNode,
/*506745*/        OPC_RecordChild1, // #1 = $src1
/*506746*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*506748*/        OPC_CheckPredicate, 9, // Predicate_load
/*506750*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*506752*/        OPC_MoveParent,
/*506753*/        OPC_RecordChild1, // #2 = $src2
/*506754*/        OPC_MoveChild1,
/*506755*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*506758*/        OPC_MoveParent,
/*506759*/        OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->506782
/*506762*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506764*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506767*/          OPC_EmitMergeInputChains1_0,
/*506768*/          OPC_EmitConvertToTarget, 2,
/*506770*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vshli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506782*/        /*SwitchType*/ 20, MVT::v4i64,// ->506804
/*506784*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506786*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506789*/          OPC_EmitMergeInputChains1_0,
/*506790*/          OPC_EmitConvertToTarget, 2,
/*506792*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vshli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506804*/        /*SwitchType*/ 20, MVT::v2i64,// ->506826
/*506806*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506808*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*506811*/          OPC_EmitMergeInputChains1_0,
/*506812*/          OPC_EmitConvertToTarget, 2,
/*506814*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vshli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLQZ128mi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*506826*/        0, // EndSwitchType
/*506827*/      0, // EndSwitchOpcode
/*506828*/    /*Scope*/ 14|128,2/*270*/, /*->507100*/
/*506830*/      OPC_RecordChild0, // #0 = $src1
/*506831*/      OPC_RecordChild1, // #1 = $src2
/*506832*/      OPC_MoveChild1,
/*506833*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*506836*/      OPC_MoveParent,
/*506837*/      OPC_SwitchType /*9 cases */, 41, MVT::v8i16,// ->506881
/*506840*/        OPC_Scope, 12, /*->506854*/ // 3 children in Scope
/*506842*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*506844*/          OPC_EmitConvertToTarget, 1,
/*506846*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*506854*/        /*Scope*/ 12, /*->506867*/
/*506855*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*506857*/          OPC_EmitConvertToTarget, 1,
/*506859*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSLLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*506867*/        /*Scope*/ 12, /*->506880*/
/*506868*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*506870*/          OPC_EmitConvertToTarget, 1,
/*506872*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128ri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLWZ128ri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*506880*/        0, /*End of Scope*/
/*506881*/      /*SwitchType*/ 28, MVT::v16i16,// ->506911
/*506883*/        OPC_Scope, 12, /*->506897*/ // 2 children in Scope
/*506885*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*506887*/          OPC_EmitConvertToTarget, 1,
/*506889*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWYri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLWYri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*506897*/        /*Scope*/ 12, /*->506910*/
/*506898*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*506900*/          OPC_EmitConvertToTarget, 1,
/*506902*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256ri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLWZ256ri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*506910*/        0, /*End of Scope*/
/*506911*/      /*SwitchType*/ 41, MVT::v4i32,// ->506954
/*506913*/        OPC_Scope, 12, /*->506927*/ // 3 children in Scope
/*506915*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*506917*/          OPC_EmitConvertToTarget, 1,
/*506919*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*506927*/        /*Scope*/ 12, /*->506940*/
/*506928*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*506930*/          OPC_EmitConvertToTarget, 1,
/*506932*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSLLDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*506940*/        /*Scope*/ 12, /*->506953*/
/*506941*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506943*/          OPC_EmitConvertToTarget, 1,
/*506945*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*506953*/        0, /*End of Scope*/
/*506954*/      /*SwitchType*/ 28, MVT::v8i32,// ->506984
/*506956*/        OPC_Scope, 12, /*->506970*/ // 2 children in Scope
/*506958*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*506960*/          OPC_EmitConvertToTarget, 1,
/*506962*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDYri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDYri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*506970*/        /*Scope*/ 12, /*->506983*/
/*506971*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506973*/          OPC_EmitConvertToTarget, 1,
/*506975*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*506983*/        0, /*End of Scope*/
/*506984*/      /*SwitchType*/ 41, MVT::v2i64,// ->507027
/*506986*/        OPC_Scope, 12, /*->507000*/ // 3 children in Scope
/*506988*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*506990*/          OPC_EmitConvertToTarget, 1,
/*506992*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*507000*/        /*Scope*/ 12, /*->507013*/
/*507001*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*507003*/          OPC_EmitConvertToTarget, 1,
/*507005*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLQri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSLLQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*507013*/        /*Scope*/ 12, /*->507026*/
/*507014*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507016*/          OPC_EmitConvertToTarget, 1,
/*507018*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128ri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLQZ128ri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*507026*/        0, /*End of Scope*/
/*507027*/      /*SwitchType*/ 28, MVT::v4i64,// ->507057
/*507029*/        OPC_Scope, 12, /*->507043*/ // 2 children in Scope
/*507031*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*507033*/          OPC_EmitConvertToTarget, 1,
/*507035*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQYri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLQYri:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*507043*/        /*Scope*/ 12, /*->507056*/
/*507044*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507046*/          OPC_EmitConvertToTarget, 1,
/*507048*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*507056*/        0, /*End of Scope*/
/*507057*/      /*SwitchType*/ 12, MVT::v16i32,// ->507071
/*507059*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507061*/        OPC_EmitConvertToTarget, 1,
/*507063*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vshli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSLLDZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*507071*/      /*SwitchType*/ 12, MVT::v8i64,// ->507085
/*507073*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507075*/        OPC_EmitConvertToTarget, 1,
/*507077*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vshli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSLLQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*507085*/      /*SwitchType*/ 12, MVT::v32i16,// ->507099
/*507087*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*507089*/        OPC_EmitConvertToTarget, 1,
/*507091*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZri), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vshli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSLLWZri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*507099*/      0, // EndSwitchType
/*507100*/    0, /*End of Scope*/
/*507101*/  /*SwitchOpcode*/ 8|128,6/*776*/, TARGET_VAL(X86ISD::VSRAI),// ->507881
/*507105*/    OPC_Scope, 71|128,3/*455*/, /*->507563*/ // 2 children in Scope
/*507108*/      OPC_MoveChild0,
/*507109*/      OPC_SwitchOpcode /*3 cases */, 56|128,1/*184*/, TARGET_VAL(ISD::BITCAST),// ->507298
/*507114*/        OPC_MoveChild0,
/*507115*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*507118*/        OPC_RecordMemRef,
/*507119*/        OPC_RecordNode, // #0 = 'ld' chained node
/*507120*/        OPC_CheckFoldableChainNode,
/*507121*/        OPC_RecordChild1, // #1 = $src1
/*507122*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*507124*/        OPC_CheckPredicate, 9, // Predicate_load
/*507126*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*507128*/        OPC_SwitchType /*3 cases */, 54, MVT::v8i64,// ->507185
/*507131*/          OPC_MoveParent,
/*507132*/          OPC_MoveParent,
/*507133*/          OPC_RecordChild1, // #2 = $src2
/*507134*/          OPC_MoveChild1,
/*507135*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*507138*/          OPC_MoveParent,
/*507139*/          OPC_SwitchType /*2 cases */, 20, MVT::v16i32,// ->507162
/*507142*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507144*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507147*/            OPC_EmitMergeInputChains1_0,
/*507148*/            OPC_EmitConvertToTarget, 2,
/*507150*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRADZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507162*/          /*SwitchType*/ 20, MVT::v32i16,// ->507184
/*507164*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*507166*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507169*/            OPC_EmitMergeInputChains1_0,
/*507170*/            OPC_EmitConvertToTarget, 2,
/*507172*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRAWZmi:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507184*/          0, // EndSwitchType
/*507185*/        /*SwitchType*/ 54, MVT::v4i64,// ->507241
/*507187*/          OPC_MoveParent,
/*507188*/          OPC_MoveParent,
/*507189*/          OPC_RecordChild1, // #2 = $src2
/*507190*/          OPC_MoveChild1,
/*507191*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*507194*/          OPC_MoveParent,
/*507195*/          OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->507218
/*507198*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507200*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507203*/            OPC_EmitMergeInputChains1_0,
/*507204*/            OPC_EmitConvertToTarget, 2,
/*507206*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRADZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507218*/          /*SwitchType*/ 20, MVT::v16i16,// ->507240
/*507220*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*507222*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507225*/            OPC_EmitMergeInputChains1_0,
/*507226*/            OPC_EmitConvertToTarget, 2,
/*507228*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRAWZ256mi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507240*/          0, // EndSwitchType
/*507241*/        /*SwitchType*/ 54, MVT::v2i64,// ->507297
/*507243*/          OPC_MoveParent,
/*507244*/          OPC_MoveParent,
/*507245*/          OPC_RecordChild1, // #2 = $src2
/*507246*/          OPC_MoveChild1,
/*507247*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*507250*/          OPC_MoveParent,
/*507251*/          OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->507274
/*507254*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507256*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507259*/            OPC_EmitMergeInputChains1_0,
/*507260*/            OPC_EmitConvertToTarget, 2,
/*507262*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRADZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507274*/          /*SwitchType*/ 20, MVT::v8i16,// ->507296
/*507276*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*507278*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507281*/            OPC_EmitMergeInputChains1_0,
/*507282*/            OPC_EmitConvertToTarget, 2,
/*507284*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRAWZ128mi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507296*/          0, // EndSwitchType
/*507297*/        0, // EndSwitchType
/*507298*/      /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::VBROADCAST),// ->507474
/*507302*/        OPC_MoveChild0,
/*507303*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*507306*/        OPC_RecordMemRef,
/*507307*/        OPC_RecordNode, // #0 = 'ld' chained node
/*507308*/        OPC_CheckFoldableChainNode,
/*507309*/        OPC_RecordChild1, // #1 = $src1
/*507310*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*507312*/        OPC_SwitchType /*2 cases */, 78, MVT::i32,// ->507393
/*507315*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*507317*/          OPC_MoveParent,
/*507318*/          OPC_MoveParent,
/*507319*/          OPC_RecordChild1, // #2 = $src2
/*507320*/          OPC_MoveChild1,
/*507321*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*507324*/          OPC_MoveParent,
/*507325*/          OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->507348
/*507328*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507330*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507333*/            OPC_EmitMergeInputChains1_0,
/*507334*/            OPC_EmitConvertToTarget, 2,
/*507336*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRADZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507348*/          /*SwitchType*/ 20, MVT::v8i32,// ->507370
/*507350*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507352*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507355*/            OPC_EmitMergeInputChains1_0,
/*507356*/            OPC_EmitConvertToTarget, 2,
/*507358*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRADZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507370*/          /*SwitchType*/ 20, MVT::v4i32,// ->507392
/*507372*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507374*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507377*/            OPC_EmitMergeInputChains1_0,
/*507378*/            OPC_EmitConvertToTarget, 2,
/*507380*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRADZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507392*/          0, // EndSwitchType
/*507393*/        /*SwitchType*/ 78, MVT::i64,// ->507473
/*507395*/          OPC_CheckPredicate, 9, // Predicate_load
/*507397*/          OPC_MoveParent,
/*507398*/          OPC_MoveParent,
/*507399*/          OPC_RecordChild1, // #2 = $src2
/*507400*/          OPC_MoveChild1,
/*507401*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*507404*/          OPC_MoveParent,
/*507405*/          OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->507428
/*507408*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507410*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507413*/            OPC_EmitMergeInputChains1_0,
/*507414*/            OPC_EmitConvertToTarget, 2,
/*507416*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRAQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507428*/          /*SwitchType*/ 20, MVT::v4i64,// ->507450
/*507430*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507432*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507435*/            OPC_EmitMergeInputChains1_0,
/*507436*/            OPC_EmitConvertToTarget, 2,
/*507438*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRAQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507450*/          /*SwitchType*/ 20, MVT::v2i64,// ->507472
/*507452*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507454*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507457*/            OPC_EmitMergeInputChains1_0,
/*507458*/            OPC_EmitConvertToTarget, 2,
/*507460*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vsrai:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPSRAQZ128mbi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507472*/          0, // EndSwitchType
/*507473*/        0, // EndSwitchType
/*507474*/      /*SwitchOpcode*/ 85, TARGET_VAL(ISD::LOAD),// ->507562
/*507477*/        OPC_RecordMemRef,
/*507478*/        OPC_RecordNode, // #0 = 'ld' chained node
/*507479*/        OPC_CheckFoldableChainNode,
/*507480*/        OPC_RecordChild1, // #1 = $src1
/*507481*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*507483*/        OPC_CheckPredicate, 9, // Predicate_load
/*507485*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*507487*/        OPC_MoveParent,
/*507488*/        OPC_RecordChild1, // #2 = $src2
/*507489*/        OPC_MoveChild1,
/*507490*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*507493*/        OPC_MoveParent,
/*507494*/        OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->507517
/*507497*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507499*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507502*/          OPC_EmitMergeInputChains1_0,
/*507503*/          OPC_EmitConvertToTarget, 2,
/*507505*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vsrai:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRAQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507517*/        /*SwitchType*/ 20, MVT::v4i64,// ->507539
/*507519*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507521*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507524*/          OPC_EmitMergeInputChains1_0,
/*507525*/          OPC_EmitConvertToTarget, 2,
/*507527*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vsrai:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRAQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507539*/        /*SwitchType*/ 20, MVT::v2i64,// ->507561
/*507541*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507543*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507546*/          OPC_EmitMergeInputChains1_0,
/*507547*/          OPC_EmitConvertToTarget, 2,
/*507549*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vsrai:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRAQZ128mi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507561*/        0, // EndSwitchType
/*507562*/      0, // EndSwitchOpcode
/*507563*/    /*Scope*/ 59|128,2/*315*/, /*->507880*/
/*507565*/      OPC_RecordChild0, // #0 = $src1
/*507566*/      OPC_RecordChild1, // #1 = $src2
/*507567*/      OPC_MoveChild1,
/*507568*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*507571*/      OPC_MoveParent,
/*507572*/      OPC_SwitchType /*9 cases */, 41, MVT::v8i16,// ->507616
/*507575*/        OPC_Scope, 12, /*->507589*/ // 3 children in Scope
/*507577*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*507579*/          OPC_EmitConvertToTarget, 1,
/*507581*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*507589*/        /*Scope*/ 12, /*->507602*/
/*507590*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*507592*/          OPC_EmitConvertToTarget, 1,
/*507594*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRAWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRAWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*507602*/        /*Scope*/ 12, /*->507615*/
/*507603*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*507605*/          OPC_EmitConvertToTarget, 1,
/*507607*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128ri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAWZ128ri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*507615*/        0, /*End of Scope*/
/*507616*/      /*SwitchType*/ 28, MVT::v16i16,// ->507646
/*507618*/        OPC_Scope, 12, /*->507632*/ // 2 children in Scope
/*507620*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*507622*/          OPC_EmitConvertToTarget, 1,
/*507624*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWYri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAWYri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*507632*/        /*Scope*/ 12, /*->507645*/
/*507633*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*507635*/          OPC_EmitConvertToTarget, 1,
/*507637*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256ri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAWZ256ri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*507645*/        0, /*End of Scope*/
/*507646*/      /*SwitchType*/ 41, MVT::v4i32,// ->507689
/*507648*/        OPC_Scope, 12, /*->507662*/ // 3 children in Scope
/*507650*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*507652*/          OPC_EmitConvertToTarget, 1,
/*507654*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRADri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*507662*/        /*Scope*/ 12, /*->507675*/
/*507663*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*507665*/          OPC_EmitConvertToTarget, 1,
/*507667*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRADri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRADri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*507675*/        /*Scope*/ 12, /*->507688*/
/*507676*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507678*/          OPC_EmitConvertToTarget, 1,
/*507680*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRADZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*507688*/        0, /*End of Scope*/
/*507689*/      /*SwitchType*/ 28, MVT::v8i32,// ->507719
/*507691*/        OPC_Scope, 12, /*->507705*/ // 2 children in Scope
/*507693*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*507695*/          OPC_EmitConvertToTarget, 1,
/*507697*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADYri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRADYri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*507705*/        /*Scope*/ 12, /*->507718*/
/*507706*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507708*/          OPC_EmitConvertToTarget, 1,
/*507710*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRADZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*507718*/        0, /*End of Scope*/
/*507719*/      /*SwitchType*/ 12, MVT::v16i32,// ->507733
/*507721*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507723*/        OPC_EmitConvertToTarget, 1,
/*507725*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vsrai:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRADZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*507733*/      /*SwitchType*/ 12, MVT::v8i64,// ->507747
/*507735*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507737*/        OPC_EmitConvertToTarget, 1,
/*507739*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vsrai:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRAQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*507747*/      /*SwitchType*/ 57, MVT::v4i64,// ->507806
/*507749*/        OPC_Scope, 12, /*->507763*/ // 2 children in Scope
/*507751*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507753*/          OPC_EmitConvertToTarget, 1,
/*507755*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*507763*/        /*Scope*/ 41, /*->507805*/
/*507764*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*507766*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*507772*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*507775*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*507784*/          OPC_EmitConvertToTarget, 1,
/*507786*/          OPC_EmitNode1, TARGET_VAL(X86::VPSRAQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 5,  // Results = #6
/*507794*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*507797*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 6, 7, 
                    // Src: (X86vsrai:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPSRAQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (imm:{ *:[i8] }):$src2), sub_ymm:{ *:[i32] })
/*507805*/        0, /*End of Scope*/
/*507806*/      /*SwitchType*/ 57, MVT::v2i64,// ->507865
/*507808*/        OPC_Scope, 12, /*->507822*/ // 2 children in Scope
/*507810*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507812*/          OPC_EmitConvertToTarget, 1,
/*507814*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128ri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vsrai:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAQZ128ri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*507822*/        /*Scope*/ 41, /*->507864*/
/*507823*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*507825*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*507831*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*507834*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*507843*/          OPC_EmitConvertToTarget, 1,
/*507845*/          OPC_EmitNode1, TARGET_VAL(X86::VPSRAQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 5,  // Results = #6
/*507853*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*507856*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 6, 7, 
                    // Src: (X86vsrai:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPSRAQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (imm:{ *:[i8] }):$src2), sub_xmm:{ *:[i32] })
/*507864*/        0, /*End of Scope*/
/*507865*/      /*SwitchType*/ 12, MVT::v32i16,// ->507879
/*507867*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*507869*/        OPC_EmitConvertToTarget, 1,
/*507871*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZri), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vsrai:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRAWZri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[i8] }):$src2)
/*507879*/      0, // EndSwitchType
/*507880*/    0, /*End of Scope*/
/*507881*/  /*SwitchOpcode*/ 21|128,5/*661*/, TARGET_VAL(X86ISD::VROTRI),// ->508546
/*507885*/    OPC_Scope, 126|128,2/*382*/, /*->508270*/ // 2 children in Scope
/*507888*/      OPC_MoveChild0,
/*507889*/      OPC_SwitchOpcode /*3 cases */, 112, TARGET_VAL(ISD::BITCAST),// ->508005
/*507893*/        OPC_MoveChild0,
/*507894*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*507897*/        OPC_RecordMemRef,
/*507898*/        OPC_RecordNode, // #0 = 'ld' chained node
/*507899*/        OPC_CheckFoldableChainNode,
/*507900*/        OPC_RecordChild1, // #1 = $src1
/*507901*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*507903*/        OPC_CheckPredicate, 9, // Predicate_load
/*507905*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*507907*/        OPC_SwitchType /*3 cases */, 30, MVT::v8i64,// ->507940
/*507910*/          OPC_MoveParent,
/*507911*/          OPC_MoveParent,
/*507912*/          OPC_RecordChild1, // #2 = $src2
/*507913*/          OPC_MoveChild1,
/*507914*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*507917*/          OPC_MoveParent,
/*507918*/          OPC_CheckType, MVT::v16i32,
/*507920*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507922*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507925*/          OPC_EmitMergeInputChains1_0,
/*507926*/          OPC_EmitConvertToTarget, 2,
/*507928*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vrotri:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPRORDZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507940*/        /*SwitchType*/ 30, MVT::v4i64,// ->507972
/*507942*/          OPC_MoveParent,
/*507943*/          OPC_MoveParent,
/*507944*/          OPC_RecordChild1, // #2 = $src2
/*507945*/          OPC_MoveChild1,
/*507946*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*507949*/          OPC_MoveParent,
/*507950*/          OPC_CheckType, MVT::v8i32,
/*507952*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507954*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507957*/          OPC_EmitMergeInputChains1_0,
/*507958*/          OPC_EmitConvertToTarget, 2,
/*507960*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vrotri:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPRORDZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*507972*/        /*SwitchType*/ 30, MVT::v2i64,// ->508004
/*507974*/          OPC_MoveParent,
/*507975*/          OPC_MoveParent,
/*507976*/          OPC_RecordChild1, // #2 = $src2
/*507977*/          OPC_MoveChild1,
/*507978*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*507981*/          OPC_MoveParent,
/*507982*/          OPC_CheckType, MVT::v4i32,
/*507984*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507986*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*507989*/          OPC_EmitMergeInputChains1_0,
/*507990*/          OPC_EmitConvertToTarget, 2,
/*507992*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vrotri:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPRORDZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508004*/        0, // EndSwitchType
/*508005*/      /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::VBROADCAST),// ->508181
/*508009*/        OPC_MoveChild0,
/*508010*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*508013*/        OPC_RecordMemRef,
/*508014*/        OPC_RecordNode, // #0 = 'ld' chained node
/*508015*/        OPC_CheckFoldableChainNode,
/*508016*/        OPC_RecordChild1, // #1 = $src1
/*508017*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*508019*/        OPC_SwitchType /*2 cases */, 78, MVT::i32,// ->508100
/*508022*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*508024*/          OPC_MoveParent,
/*508025*/          OPC_MoveParent,
/*508026*/          OPC_RecordChild1, // #2 = $src2
/*508027*/          OPC_MoveChild1,
/*508028*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*508031*/          OPC_MoveParent,
/*508032*/          OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->508055
/*508035*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508040*/            OPC_EmitMergeInputChains1_0,
/*508041*/            OPC_EmitConvertToTarget, 2,
/*508043*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotri:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPRORDZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508055*/          /*SwitchType*/ 20, MVT::v8i32,// ->508077
/*508057*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508059*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508062*/            OPC_EmitMergeInputChains1_0,
/*508063*/            OPC_EmitConvertToTarget, 2,
/*508065*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotri:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPRORDZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508077*/          /*SwitchType*/ 20, MVT::v4i32,// ->508099
/*508079*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508081*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508084*/            OPC_EmitMergeInputChains1_0,
/*508085*/            OPC_EmitConvertToTarget, 2,
/*508087*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotri:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPRORDZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508099*/          0, // EndSwitchType
/*508100*/        /*SwitchType*/ 78, MVT::i64,// ->508180
/*508102*/          OPC_CheckPredicate, 9, // Predicate_load
/*508104*/          OPC_MoveParent,
/*508105*/          OPC_MoveParent,
/*508106*/          OPC_RecordChild1, // #2 = $src2
/*508107*/          OPC_MoveChild1,
/*508108*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*508111*/          OPC_MoveParent,
/*508112*/          OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->508135
/*508115*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508117*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508120*/            OPC_EmitMergeInputChains1_0,
/*508121*/            OPC_EmitConvertToTarget, 2,
/*508123*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotri:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPRORQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508135*/          /*SwitchType*/ 20, MVT::v4i64,// ->508157
/*508137*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508139*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508142*/            OPC_EmitMergeInputChains1_0,
/*508143*/            OPC_EmitConvertToTarget, 2,
/*508145*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotri:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPRORQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508157*/          /*SwitchType*/ 20, MVT::v2i64,// ->508179
/*508159*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508161*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508164*/            OPC_EmitMergeInputChains1_0,
/*508165*/            OPC_EmitConvertToTarget, 2,
/*508167*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86vrotri:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPRORQZ128mbi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508179*/          0, // EndSwitchType
/*508180*/        0, // EndSwitchType
/*508181*/      /*SwitchOpcode*/ 85, TARGET_VAL(ISD::LOAD),// ->508269
/*508184*/        OPC_RecordMemRef,
/*508185*/        OPC_RecordNode, // #0 = 'ld' chained node
/*508186*/        OPC_CheckFoldableChainNode,
/*508187*/        OPC_RecordChild1, // #1 = $src1
/*508188*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*508190*/        OPC_CheckPredicate, 9, // Predicate_load
/*508192*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*508194*/        OPC_MoveParent,
/*508195*/        OPC_RecordChild1, // #2 = $src2
/*508196*/        OPC_MoveChild1,
/*508197*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*508200*/        OPC_MoveParent,
/*508201*/        OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->508224
/*508204*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508206*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508209*/          OPC_EmitMergeInputChains1_0,
/*508210*/          OPC_EmitConvertToTarget, 2,
/*508212*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vrotri:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPRORQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508224*/        /*SwitchType*/ 20, MVT::v4i64,// ->508246
/*508226*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508228*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508231*/          OPC_EmitMergeInputChains1_0,
/*508232*/          OPC_EmitConvertToTarget, 2,
/*508234*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vrotri:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPRORQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508246*/        /*SwitchType*/ 20, MVT::v2i64,// ->508268
/*508248*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508250*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508253*/          OPC_EmitMergeInputChains1_0,
/*508254*/          OPC_EmitConvertToTarget, 2,
/*508256*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vrotri:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPRORQZ128mi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508268*/        0, // EndSwitchType
/*508269*/      0, // EndSwitchOpcode
/*508270*/    /*Scope*/ 17|128,2/*273*/, /*->508545*/
/*508272*/      OPC_RecordChild0, // #0 = $src1
/*508273*/      OPC_RecordChild1, // #1 = $src2
/*508274*/      OPC_MoveChild1,
/*508275*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*508278*/      OPC_MoveParent,
/*508279*/      OPC_SwitchType /*6 cases */, 12, MVT::v16i32,// ->508294
/*508282*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508284*/        OPC_EmitConvertToTarget, 1,
/*508286*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vrotri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPRORDZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*508294*/      /*SwitchType*/ 57, MVT::v8i32,// ->508353
/*508296*/        OPC_Scope, 12, /*->508310*/ // 2 children in Scope
/*508298*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508300*/          OPC_EmitConvertToTarget, 1,
/*508302*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vrotri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPRORDZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*508310*/        /*Scope*/ 41, /*->508352*/
/*508311*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*508313*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*508319*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*508322*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*508331*/          OPC_EmitConvertToTarget, 1,
/*508333*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORDZri), 0,
                        MVT::v16i32, 2/*#Ops*/, 4, 5,  // Results = #6
/*508341*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*508344*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i32, 2/*#Ops*/, 6, 7, 
                    // Src: (X86vrotri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VPRORDZri:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (imm:{ *:[i8] }):$src2), sub_ymm:{ *:[i32] })
/*508352*/        0, /*End of Scope*/
/*508353*/      /*SwitchType*/ 57, MVT::v4i32,// ->508412
/*508355*/        OPC_Scope, 12, /*->508369*/ // 2 children in Scope
/*508357*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508359*/          OPC_EmitConvertToTarget, 1,
/*508361*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vrotri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPRORDZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2)
/*508369*/        /*Scope*/ 41, /*->508411*/
/*508370*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*508372*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*508378*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*508381*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*508390*/          OPC_EmitConvertToTarget, 1,
/*508392*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORDZri), 0,
                        MVT::v16i32, 2/*#Ops*/, 4, 5,  // Results = #6
/*508400*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*508403*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7, 
                    // Src: (X86vrotri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VPRORDZri:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (imm:{ *:[i8] }):$src2), sub_xmm:{ *:[i32] })
/*508411*/        0, /*End of Scope*/
/*508412*/      /*SwitchType*/ 12, MVT::v8i64,// ->508426
/*508414*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508416*/        OPC_EmitConvertToTarget, 1,
/*508418*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vrotri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPRORQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*508426*/      /*SwitchType*/ 57, MVT::v4i64,// ->508485
/*508428*/        OPC_Scope, 12, /*->508442*/ // 2 children in Scope
/*508430*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508432*/          OPC_EmitConvertToTarget, 1,
/*508434*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vrotri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPRORQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*508442*/        /*Scope*/ 41, /*->508484*/
/*508443*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*508445*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*508451*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*508454*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*508463*/          OPC_EmitConvertToTarget, 1,
/*508465*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 5,  // Results = #6
/*508473*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*508476*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 6, 7, 
                    // Src: (X86vrotri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPRORQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (imm:{ *:[i8] }):$src2), sub_ymm:{ *:[i32] })
/*508484*/        0, /*End of Scope*/
/*508485*/      /*SwitchType*/ 57, MVT::v2i64,// ->508544
/*508487*/        OPC_Scope, 12, /*->508501*/ // 2 children in Scope
/*508489*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508491*/          OPC_EmitConvertToTarget, 1,
/*508493*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128ri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vrotri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPRORQZ128ri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*508501*/        /*Scope*/ 41, /*->508543*/
/*508502*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*508504*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*508510*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*508513*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*508522*/          OPC_EmitConvertToTarget, 1,
/*508524*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 5,  // Results = #6
/*508532*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*508535*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 6, 7, 
                    // Src: (X86vrotri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPRORQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (imm:{ *:[i8] }):$src2), sub_xmm:{ *:[i32] })
/*508543*/        0, /*End of Scope*/
/*508544*/      0, // EndSwitchType
/*508545*/    0, /*End of Scope*/
/*508546*/  /*SwitchOpcode*/ 58|128,3/*442*/, TARGET_VAL(X86ISD::VPERMI),// ->508992
/*508550*/    OPC_Scope, 36|128,1/*164*/, /*->508717*/ // 4 children in Scope
/*508553*/      OPC_MoveChild0,
/*508554*/      OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(X86ISD::VBROADCAST),// ->508626
/*508558*/        OPC_MoveChild0,
/*508559*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*508562*/        OPC_RecordMemRef,
/*508563*/        OPC_RecordNode, // #0 = 'ld' chained node
/*508564*/        OPC_CheckFoldableChainNode,
/*508565*/        OPC_RecordChild1, // #1 = $src1
/*508566*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*508568*/        OPC_CheckPredicate, 9, // Predicate_load
/*508570*/        OPC_CheckType, MVT::i64,
/*508572*/        OPC_MoveParent,
/*508573*/        OPC_MoveParent,
/*508574*/        OPC_RecordChild1, // #2 = $src2
/*508575*/        OPC_MoveChild1,
/*508576*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*508579*/        OPC_MoveParent,
/*508580*/        OPC_SwitchType /*2 cases */, 20, MVT::v8i64,// ->508603
/*508583*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508585*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508588*/          OPC_EmitMergeInputChains1_0,
/*508589*/          OPC_EmitConvertToTarget, 2,
/*508591*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermi:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPERMQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508603*/        /*SwitchType*/ 20, MVT::v4i64,// ->508625
/*508605*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508607*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508610*/          OPC_EmitMergeInputChains1_0,
/*508611*/          OPC_EmitConvertToTarget, 2,
/*508613*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermi:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPERMQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508625*/        0, // EndSwitchType
/*508626*/      /*SwitchOpcode*/ 87, TARGET_VAL(ISD::LOAD),// ->508716
/*508629*/        OPC_RecordMemRef,
/*508630*/        OPC_RecordNode, // #0 = 'ld' chained node
/*508631*/        OPC_CheckFoldableChainNode,
/*508632*/        OPC_RecordChild1, // #1 = $src1
/*508633*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*508635*/        OPC_CheckPredicate, 9, // Predicate_load
/*508637*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*508639*/        OPC_MoveParent,
/*508640*/        OPC_RecordChild1, // #2 = $src2
/*508641*/        OPC_MoveChild1,
/*508642*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*508645*/        OPC_MoveParent,
/*508646*/        OPC_SwitchType /*2 cases */, 44, MVT::v4i64,// ->508693
/*508649*/          OPC_Scope, 20, /*->508671*/ // 2 children in Scope
/*508651*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*508653*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508656*/            OPC_EmitMergeInputChains1_0,
/*508657*/            OPC_EmitConvertToTarget, 2,
/*508659*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQYmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermi:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMQYmi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508671*/          /*Scope*/ 20, /*->508692*/
/*508672*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508674*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508677*/            OPC_EmitMergeInputChains1_0,
/*508678*/            OPC_EmitConvertToTarget, 2,
/*508680*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermi:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508692*/          0, /*End of Scope*/
/*508693*/        /*SwitchType*/ 20, MVT::v8i64,// ->508715
/*508695*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508697*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508700*/          OPC_EmitMergeInputChains1_0,
/*508701*/          OPC_EmitConvertToTarget, 2,
/*508703*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermi:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPERMQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508715*/        0, // EndSwitchType
/*508716*/      0, // EndSwitchOpcode
/*508717*/    /*Scope*/ 53, /*->508771*/
/*508718*/      OPC_RecordChild0, // #0 = $src1
/*508719*/      OPC_RecordChild1, // #1 = $src2
/*508720*/      OPC_MoveChild1,
/*508721*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*508724*/      OPC_MoveParent,
/*508725*/      OPC_SwitchType /*2 cases */, 28, MVT::v4i64,// ->508756
/*508728*/        OPC_Scope, 12, /*->508742*/ // 2 children in Scope
/*508730*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*508732*/          OPC_EmitConvertToTarget, 1,
/*508734*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQYri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermi:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMQYri:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*508742*/        /*Scope*/ 12, /*->508755*/
/*508743*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508745*/          OPC_EmitConvertToTarget, 1,
/*508747*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*508755*/        0, /*End of Scope*/
/*508756*/      /*SwitchType*/ 12, MVT::v8i64,// ->508770
/*508758*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508760*/        OPC_EmitConvertToTarget, 1,
/*508762*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VPermi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPERMQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src2)
/*508770*/      0, // EndSwitchType
/*508771*/    /*Scope*/ 36|128,1/*164*/, /*->508937*/
/*508773*/      OPC_MoveChild0,
/*508774*/      OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(X86ISD::VBROADCAST),// ->508846
/*508778*/        OPC_MoveChild0,
/*508779*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*508782*/        OPC_RecordMemRef,
/*508783*/        OPC_RecordNode, // #0 = 'ld' chained node
/*508784*/        OPC_CheckFoldableChainNode,
/*508785*/        OPC_RecordChild1, // #1 = $src1
/*508786*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*508788*/        OPC_CheckPredicate, 9, // Predicate_load
/*508790*/        OPC_CheckType, MVT::f64,
/*508792*/        OPC_MoveParent,
/*508793*/        OPC_MoveParent,
/*508794*/        OPC_RecordChild1, // #2 = $src2
/*508795*/        OPC_MoveChild1,
/*508796*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*508799*/        OPC_MoveParent,
/*508800*/        OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->508823
/*508803*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508805*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508808*/          OPC_EmitMergeInputChains1_0,
/*508809*/          OPC_EmitConvertToTarget, 2,
/*508811*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermi:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPERMPDZmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508823*/        /*SwitchType*/ 20, MVT::v4f64,// ->508845
/*508825*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508827*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508830*/          OPC_EmitMergeInputChains1_0,
/*508831*/          OPC_EmitConvertToTarget, 2,
/*508833*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermi:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                    // Dst: (VPERMPDZ256mbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508845*/        0, // EndSwitchType
/*508846*/      /*SwitchOpcode*/ 87, TARGET_VAL(ISD::LOAD),// ->508936
/*508849*/        OPC_RecordMemRef,
/*508850*/        OPC_RecordNode, // #0 = 'ld' chained node
/*508851*/        OPC_CheckFoldableChainNode,
/*508852*/        OPC_RecordChild1, // #1 = $src1
/*508853*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*508855*/        OPC_CheckPredicate, 9, // Predicate_load
/*508857*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*508859*/        OPC_MoveParent,
/*508860*/        OPC_RecordChild1, // #2 = $src2
/*508861*/        OPC_MoveChild1,
/*508862*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*508865*/        OPC_MoveParent,
/*508866*/        OPC_SwitchType /*2 cases */, 44, MVT::v4f64,// ->508913
/*508869*/          OPC_Scope, 20, /*->508891*/ // 2 children in Scope
/*508871*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*508873*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508876*/            OPC_EmitMergeInputChains1_0,
/*508877*/            OPC_EmitConvertToTarget, 2,
/*508879*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDYmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMPDYmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508891*/          /*Scope*/ 20, /*->508912*/
/*508892*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508894*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508897*/            OPC_EmitMergeInputChains1_0,
/*508898*/            OPC_EmitConvertToTarget, 2,
/*508900*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMPDZ256mi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508912*/          0, /*End of Scope*/
/*508913*/        /*SwitchType*/ 20, MVT::v8f64,// ->508935
/*508915*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508917*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*508920*/          OPC_EmitMergeInputChains1_0,
/*508921*/          OPC_EmitConvertToTarget, 2,
/*508923*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPERMPDZmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*508935*/        0, // EndSwitchType
/*508936*/      0, // EndSwitchOpcode
/*508937*/    /*Scope*/ 53, /*->508991*/
/*508938*/      OPC_RecordChild0, // #0 = $src1
/*508939*/      OPC_RecordChild1, // #1 = $src2
/*508940*/      OPC_MoveChild1,
/*508941*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*508944*/      OPC_MoveParent,
/*508945*/      OPC_SwitchType /*2 cases */, 28, MVT::v4f64,// ->508976
/*508948*/        OPC_Scope, 12, /*->508962*/ // 2 children in Scope
/*508950*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*508952*/          OPC_EmitConvertToTarget, 1,
/*508954*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDYri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMPDYri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*508962*/        /*Scope*/ 12, /*->508975*/
/*508963*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*508965*/          OPC_EmitConvertToTarget, 1,
/*508967*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256ri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMPDZ256ri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*508975*/        0, /*End of Scope*/
/*508976*/      /*SwitchType*/ 12, MVT::v8f64,// ->508990
/*508978*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508980*/        OPC_EmitConvertToTarget, 1,
/*508982*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VPermi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPERMPDZri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*508990*/      0, // EndSwitchType
/*508991*/    0, /*End of Scope*/
/*508992*/  /*SwitchOpcode*/ 119|128,2/*375*/, TARGET_VAL(X86ISD::SHUF128),// ->509371
/*508996*/    OPC_RecordChild0, // #0 = $src1
/*508997*/    OPC_Scope, 16|128,1/*144*/, /*->509144*/ // 4 children in Scope
/*509000*/      OPC_MoveChild1,
/*509001*/      OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->509075
/*509005*/        OPC_MoveChild0,
/*509006*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*509009*/        OPC_RecordMemRef,
/*509010*/        OPC_RecordNode, // #1 = 'ld' chained node
/*509011*/        OPC_CheckFoldableChainNode,
/*509012*/        OPC_RecordChild1, // #2 = $src2
/*509013*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*509015*/        OPC_CheckPredicate, 9, // Predicate_load
/*509017*/        OPC_CheckType, MVT::i64,
/*509019*/        OPC_MoveParent,
/*509020*/        OPC_MoveParent,
/*509021*/        OPC_RecordChild2, // #3 = $src3
/*509022*/        OPC_MoveChild2,
/*509023*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509026*/        OPC_MoveParent,
/*509027*/        OPC_SwitchType /*2 cases */, 21, MVT::v8i64,// ->509051
/*509030*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*509032*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*509035*/          OPC_EmitMergeInputChains1_1,
/*509036*/          OPC_EmitConvertToTarget, 3,
/*509038*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VSHUFI64X2Zrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*509051*/        /*SwitchType*/ 21, MVT::v4i64,// ->509074
/*509053*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*509055*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*509058*/          OPC_EmitMergeInputChains1_1,
/*509059*/          OPC_EmitConvertToTarget, 3,
/*509061*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VSHUFI64X2Z256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*509074*/        0, // EndSwitchType
/*509075*/      /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->509143
/*509078*/        OPC_RecordMemRef,
/*509079*/        OPC_RecordNode, // #1 = 'ld' chained node
/*509080*/        OPC_CheckFoldableChainNode,
/*509081*/        OPC_RecordChild1, // #2 = $src2
/*509082*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*509084*/        OPC_CheckPredicate, 9, // Predicate_load
/*509086*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*509088*/        OPC_MoveParent,
/*509089*/        OPC_RecordChild2, // #3 = $src3
/*509090*/        OPC_MoveChild2,
/*509091*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509094*/        OPC_MoveParent,
/*509095*/        OPC_SwitchType /*2 cases */, 21, MVT::v8i64,// ->509119
/*509098*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*509100*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*509103*/          OPC_EmitMergeInputChains1_1,
/*509104*/          OPC_EmitConvertToTarget, 3,
/*509106*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFI64X2Zrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*509119*/        /*SwitchType*/ 21, MVT::v4i64,// ->509142
/*509121*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*509123*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*509126*/          OPC_EmitMergeInputChains1_1,
/*509127*/          OPC_EmitConvertToTarget, 3,
/*509129*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFI64X2Z256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*509142*/        0, // EndSwitchType
/*509143*/      0, // EndSwitchOpcode
/*509144*/    /*Scope*/ 39, /*->509184*/
/*509145*/      OPC_RecordChild1, // #1 = $src2
/*509146*/      OPC_RecordChild2, // #2 = $src3
/*509147*/      OPC_MoveChild2,
/*509148*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509151*/      OPC_MoveParent,
/*509152*/      OPC_SwitchType /*2 cases */, 13, MVT::v8i64,// ->509168
/*509155*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*509157*/        OPC_EmitConvertToTarget, 2,
/*509159*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrri), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VSHUFI64X2Zrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*509168*/      /*SwitchType*/ 13, MVT::v4i64,// ->509183
/*509170*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*509172*/        OPC_EmitConvertToTarget, 2,
/*509174*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rri), 0,
                      MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VSHUFI64X2Z256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*509183*/      0, // EndSwitchType
/*509184*/    /*Scope*/ 16|128,1/*144*/, /*->509330*/
/*509186*/      OPC_MoveChild1,
/*509187*/      OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST),// ->509261
/*509191*/        OPC_MoveChild0,
/*509192*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*509195*/        OPC_RecordMemRef,
/*509196*/        OPC_RecordNode, // #1 = 'ld' chained node
/*509197*/        OPC_CheckFoldableChainNode,
/*509198*/        OPC_RecordChild1, // #2 = $src2
/*509199*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*509201*/        OPC_CheckPredicate, 9, // Predicate_load
/*509203*/        OPC_CheckType, MVT::f64,
/*509205*/        OPC_MoveParent,
/*509206*/        OPC_MoveParent,
/*509207*/        OPC_RecordChild2, // #3 = $src3
/*509208*/        OPC_MoveChild2,
/*509209*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509212*/        OPC_MoveParent,
/*509213*/        OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->509237
/*509216*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*509218*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*509221*/          OPC_EmitMergeInputChains1_1,
/*509222*/          OPC_EmitConvertToTarget, 3,
/*509224*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VSHUFF64X2Zrmbi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*509237*/        /*SwitchType*/ 21, MVT::v4f64,// ->509260
/*509239*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*509241*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*509244*/          OPC_EmitMergeInputChains1_1,
/*509245*/          OPC_EmitConvertToTarget, 3,
/*509247*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VSHUFF64X2Z256rmbi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*509260*/        0, // EndSwitchType
/*509261*/      /*SwitchOpcode*/ 65, TARGET_VAL(ISD::LOAD),// ->509329
/*509264*/        OPC_RecordMemRef,
/*509265*/        OPC_RecordNode, // #1 = 'ld' chained node
/*509266*/        OPC_CheckFoldableChainNode,
/*509267*/        OPC_RecordChild1, // #2 = $src2
/*509268*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*509270*/        OPC_CheckPredicate, 9, // Predicate_load
/*509272*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*509274*/        OPC_MoveParent,
/*509275*/        OPC_RecordChild2, // #3 = $src3
/*509276*/        OPC_MoveChild2,
/*509277*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509280*/        OPC_MoveParent,
/*509281*/        OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->509305
/*509284*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*509286*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*509289*/          OPC_EmitMergeInputChains1_1,
/*509290*/          OPC_EmitConvertToTarget, 3,
/*509292*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFF64X2Zrmi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*509305*/        /*SwitchType*/ 21, MVT::v4f64,// ->509328
/*509307*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*509309*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*509312*/          OPC_EmitMergeInputChains1_1,
/*509313*/          OPC_EmitConvertToTarget, 3,
/*509315*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFF64X2Z256rmi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*509328*/        0, // EndSwitchType
/*509329*/      0, // EndSwitchOpcode
/*509330*/    /*Scope*/ 39, /*->509370*/
/*509331*/      OPC_RecordChild1, // #1 = $src2
/*509332*/      OPC_RecordChild2, // #2 = $src3
/*509333*/      OPC_MoveChild2,
/*509334*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509337*/      OPC_MoveParent,
/*509338*/      OPC_SwitchType /*2 cases */, 13, MVT::v8f64,// ->509354
/*509341*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*509343*/        OPC_EmitConvertToTarget, 2,
/*509345*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrri), 0,
                      MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VSHUFF64X2Zrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*509354*/      /*SwitchType*/ 13, MVT::v4f64,// ->509369
/*509356*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*509358*/        OPC_EmitConvertToTarget, 2,
/*509360*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rri), 0,
                      MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VSHUFF64X2Z256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*509369*/      0, // EndSwitchType
/*509370*/    0, /*End of Scope*/
/*509371*/  /*SwitchOpcode*/ 58|128,1/*186*/, TARGET_VAL(X86ISD::DBPSADBW),// ->509561
/*509375*/    OPC_RecordChild0, // #0 = $src1
/*509376*/    OPC_Scope, 125, /*->509503*/ // 2 children in Scope
/*509378*/      OPC_MoveChild1,
/*509379*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*509382*/      OPC_MoveChild0,
/*509383*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*509386*/      OPC_RecordMemRef,
/*509387*/      OPC_RecordNode, // #1 = 'ld' chained node
/*509388*/      OPC_CheckFoldableChainNode,
/*509389*/      OPC_RecordChild1, // #2 = $src2
/*509390*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*509392*/      OPC_CheckPredicate, 9, // Predicate_load
/*509394*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*509396*/      OPC_SwitchType /*3 cases */, 33, MVT::v8i64,// ->509432
/*509399*/        OPC_MoveParent,
/*509400*/        OPC_MoveParent,
/*509401*/        OPC_RecordChild2, // #3 = $src3
/*509402*/        OPC_MoveChild2,
/*509403*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509406*/        OPC_CheckType, MVT::i8,
/*509408*/        OPC_MoveParent,
/*509409*/        OPC_CheckType, MVT::v32i16,
/*509411*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*509413*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*509416*/        OPC_EmitMergeInputChains1_1,
/*509417*/        OPC_EmitConvertToTarget, 3,
/*509419*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                  // Dst: (VDBPSADBWZrmi:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*509432*/      /*SwitchType*/ 33, MVT::v2i64,// ->509467
/*509434*/        OPC_MoveParent,
/*509435*/        OPC_MoveParent,
/*509436*/        OPC_RecordChild2, // #3 = $src3
/*509437*/        OPC_MoveChild2,
/*509438*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509441*/        OPC_CheckType, MVT::i8,
/*509443*/        OPC_MoveParent,
/*509444*/        OPC_CheckType, MVT::v8i16,
/*509446*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509448*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*509451*/        OPC_EmitMergeInputChains1_1,
/*509452*/        OPC_EmitConvertToTarget, 3,
/*509454*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                  // Dst: (VDBPSADBWZ128rmi:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*509467*/      /*SwitchType*/ 33, MVT::v4i64,// ->509502
/*509469*/        OPC_MoveParent,
/*509470*/        OPC_MoveParent,
/*509471*/        OPC_RecordChild2, // #3 = $src3
/*509472*/        OPC_MoveChild2,
/*509473*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509476*/        OPC_CheckType, MVT::i8,
/*509478*/        OPC_MoveParent,
/*509479*/        OPC_CheckType, MVT::v16i16,
/*509481*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509483*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*509486*/        OPC_EmitMergeInputChains1_1,
/*509487*/        OPC_EmitConvertToTarget, 3,
/*509489*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                  // Dst: (VDBPSADBWZ256rmi:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*509502*/      0, // EndSwitchType
/*509503*/    /*Scope*/ 56, /*->509560*/
/*509504*/      OPC_RecordChild1, // #1 = $src2
/*509505*/      OPC_RecordChild2, // #2 = $src3
/*509506*/      OPC_MoveChild2,
/*509507*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509510*/      OPC_CheckType, MVT::i8,
/*509512*/      OPC_MoveParent,
/*509513*/      OPC_SwitchType /*3 cases */, 13, MVT::v32i16,// ->509529
/*509516*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*509518*/        OPC_EmitConvertToTarget, 2,
/*509520*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrri), 0,
                      MVT::v32i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VDBPSADBWZrri:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*509529*/      /*SwitchType*/ 13, MVT::v8i16,// ->509544
/*509531*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509533*/        OPC_EmitConvertToTarget, 2,
/*509535*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rri), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VDBPSADBWZ128rri:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*509544*/      /*SwitchType*/ 13, MVT::v16i16,// ->509559
/*509546*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509548*/        OPC_EmitConvertToTarget, 2,
/*509550*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rri), 0,
                      MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VDBPSADBWZ256rri:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
/*509559*/      0, // EndSwitchType
/*509560*/    0, /*End of Scope*/
/*509561*/  /*SwitchOpcode*/ 88|128,1/*216*/, TARGET_VAL(X86ISD::VSHLDQ),// ->509781
/*509565*/    OPC_Scope, 116, /*->509683*/ // 2 children in Scope
/*509567*/      OPC_MoveChild0,
/*509568*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*509571*/      OPC_MoveChild0,
/*509572*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*509575*/      OPC_RecordMemRef,
/*509576*/      OPC_RecordNode, // #0 = 'ld' chained node
/*509577*/      OPC_CheckFoldableChainNode,
/*509578*/      OPC_RecordChild1, // #1 = $src1
/*509579*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*509581*/      OPC_CheckPredicate, 9, // Predicate_load
/*509583*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*509585*/      OPC_SwitchType /*3 cases */, 30, MVT::v8i64,// ->509618
/*509588*/        OPC_MoveParent,
/*509589*/        OPC_MoveParent,
/*509590*/        OPC_RecordChild1, // #2 = $src2
/*509591*/        OPC_MoveChild1,
/*509592*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509595*/        OPC_MoveParent,
/*509596*/        OPC_CheckType, MVT::v64i8,
/*509598*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*509600*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*509603*/        OPC_EmitMergeInputChains1_0,
/*509604*/        OPC_EmitConvertToTarget, 2,
/*509606*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86vshldq:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                  // Dst: (VPSLLDQZrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*509618*/      /*SwitchType*/ 30, MVT::v4i64,// ->509650
/*509620*/        OPC_MoveParent,
/*509621*/        OPC_MoveParent,
/*509622*/        OPC_RecordChild1, // #2 = $src2
/*509623*/        OPC_MoveChild1,
/*509624*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509627*/        OPC_MoveParent,
/*509628*/        OPC_CheckType, MVT::v32i8,
/*509630*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509632*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*509635*/        OPC_EmitMergeInputChains1_0,
/*509636*/        OPC_EmitConvertToTarget, 2,
/*509638*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86vshldq:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                  // Dst: (VPSLLDQZ256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*509650*/      /*SwitchType*/ 30, MVT::v2i64,// ->509682
/*509652*/        OPC_MoveParent,
/*509653*/        OPC_MoveParent,
/*509654*/        OPC_RecordChild1, // #2 = $src2
/*509655*/        OPC_MoveChild1,
/*509656*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509659*/        OPC_MoveParent,
/*509660*/        OPC_CheckType, MVT::v16i8,
/*509662*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509664*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*509667*/        OPC_EmitMergeInputChains1_0,
/*509668*/        OPC_EmitConvertToTarget, 2,
/*509670*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86vshldq:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                  // Dst: (VPSLLDQZ128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*509682*/      0, // EndSwitchType
/*509683*/    /*Scope*/ 96, /*->509780*/
/*509684*/      OPC_RecordChild0, // #0 = $src1
/*509685*/      OPC_RecordChild1, // #1 = $src2
/*509686*/      OPC_MoveChild1,
/*509687*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509690*/      OPC_MoveParent,
/*509691*/      OPC_SwitchType /*3 cases */, 41, MVT::v16i8,// ->509735
/*509694*/        OPC_Scope, 12, /*->509708*/ // 3 children in Scope
/*509696*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*509698*/          OPC_EmitConvertToTarget, 1,
/*509700*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQri), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshldq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDQri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509708*/        /*Scope*/ 12, /*->509721*/
/*509709*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*509711*/          OPC_EmitConvertToTarget, 1,
/*509713*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLDQri), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshldq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSLLDQri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509721*/        /*Scope*/ 12, /*->509734*/
/*509722*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509724*/          OPC_EmitConvertToTarget, 1,
/*509726*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshldq:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDQZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509734*/        0, /*End of Scope*/
/*509735*/      /*SwitchType*/ 28, MVT::v32i8,// ->509765
/*509737*/        OPC_Scope, 12, /*->509751*/ // 2 children in Scope
/*509739*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*509741*/          OPC_EmitConvertToTarget, 1,
/*509743*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQYri), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshldq:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDQYri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509751*/        /*Scope*/ 12, /*->509764*/
/*509752*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509754*/          OPC_EmitConvertToTarget, 1,
/*509756*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshldq:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDQZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509764*/        0, /*End of Scope*/
/*509765*/      /*SwitchType*/ 12, MVT::v64i8,// ->509779
/*509767*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*509769*/        OPC_EmitConvertToTarget, 1,
/*509771*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vshldq:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSLLDQZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509779*/      0, // EndSwitchType
/*509780*/    0, /*End of Scope*/
/*509781*/  /*SwitchOpcode*/ 88|128,1/*216*/, TARGET_VAL(X86ISD::VSRLDQ),// ->510001
/*509785*/    OPC_Scope, 116, /*->509903*/ // 2 children in Scope
/*509787*/      OPC_MoveChild0,
/*509788*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*509791*/      OPC_MoveChild0,
/*509792*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*509795*/      OPC_RecordMemRef,
/*509796*/      OPC_RecordNode, // #0 = 'ld' chained node
/*509797*/      OPC_CheckFoldableChainNode,
/*509798*/      OPC_RecordChild1, // #1 = $src1
/*509799*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*509801*/      OPC_CheckPredicate, 9, // Predicate_load
/*509803*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*509805*/      OPC_SwitchType /*3 cases */, 30, MVT::v8i64,// ->509838
/*509808*/        OPC_MoveParent,
/*509809*/        OPC_MoveParent,
/*509810*/        OPC_RecordChild1, // #2 = $src2
/*509811*/        OPC_MoveChild1,
/*509812*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509815*/        OPC_MoveParent,
/*509816*/        OPC_CheckType, MVT::v64i8,
/*509818*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*509820*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*509823*/        OPC_EmitMergeInputChains1_0,
/*509824*/        OPC_EmitConvertToTarget, 2,
/*509826*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86vshrdq:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                  // Dst: (VPSRLDQZrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*509838*/      /*SwitchType*/ 30, MVT::v4i64,// ->509870
/*509840*/        OPC_MoveParent,
/*509841*/        OPC_MoveParent,
/*509842*/        OPC_RecordChild1, // #2 = $src2
/*509843*/        OPC_MoveChild1,
/*509844*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509847*/        OPC_MoveParent,
/*509848*/        OPC_CheckType, MVT::v32i8,
/*509850*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509852*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*509855*/        OPC_EmitMergeInputChains1_0,
/*509856*/        OPC_EmitConvertToTarget, 2,
/*509858*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86vshrdq:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                  // Dst: (VPSRLDQZ256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*509870*/      /*SwitchType*/ 30, MVT::v2i64,// ->509902
/*509872*/        OPC_MoveParent,
/*509873*/        OPC_MoveParent,
/*509874*/        OPC_RecordChild1, // #2 = $src2
/*509875*/        OPC_MoveChild1,
/*509876*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509879*/        OPC_MoveParent,
/*509880*/        OPC_CheckType, MVT::v16i8,
/*509882*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509884*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*509887*/        OPC_EmitMergeInputChains1_0,
/*509888*/        OPC_EmitConvertToTarget, 2,
/*509890*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86vshrdq:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                  // Dst: (VPSRLDQZ128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*509902*/      0, // EndSwitchType
/*509903*/    /*Scope*/ 96, /*->510000*/
/*509904*/      OPC_RecordChild0, // #0 = $src1
/*509905*/      OPC_RecordChild1, // #1 = $src2
/*509906*/      OPC_MoveChild1,
/*509907*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*509910*/      OPC_MoveParent,
/*509911*/      OPC_SwitchType /*3 cases */, 41, MVT::v16i8,// ->509955
/*509914*/        OPC_Scope, 12, /*->509928*/ // 3 children in Scope
/*509916*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*509918*/          OPC_EmitConvertToTarget, 1,
/*509920*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQri), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshrdq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDQri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509928*/        /*Scope*/ 12, /*->509941*/
/*509929*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*509931*/          OPC_EmitConvertToTarget, 1,
/*509933*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLDQri), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshrdq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRLDQri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509941*/        /*Scope*/ 12, /*->509954*/
/*509942*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509944*/          OPC_EmitConvertToTarget, 1,
/*509946*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshrdq:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDQZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509954*/        0, /*End of Scope*/
/*509955*/      /*SwitchType*/ 28, MVT::v32i8,// ->509985
/*509957*/        OPC_Scope, 12, /*->509971*/ // 2 children in Scope
/*509959*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*509961*/          OPC_EmitConvertToTarget, 1,
/*509963*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQYri), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshrdq:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDQYri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509971*/        /*Scope*/ 12, /*->509984*/
/*509972*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*509974*/          OPC_EmitConvertToTarget, 1,
/*509976*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 2, 
                    // Src: (X86vshrdq:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDQZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509984*/        0, /*End of Scope*/
/*509985*/      /*SwitchType*/ 12, MVT::v64i8,// ->509999
/*509987*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*509989*/        OPC_EmitConvertToTarget, 1,
/*509991*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 2, 
                  // Src: (X86vshrdq:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRLDQZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (imm:{ *:[i8] }):$src2)
/*509999*/      0, // EndSwitchType
/*510000*/    0, /*End of Scope*/
/*510001*/  /*SwitchOpcode*/ 30|128,16/*2078*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->512083
/*510005*/    OPC_Scope, 105, /*->510112*/ // 25 children in Scope
/*510007*/      OPC_RecordChild0, // #0 = $src1
/*510008*/      OPC_RecordChild1, // #1 = $src2
/*510009*/      OPC_MoveChild2,
/*510010*/      OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->510062
/*510014*/        OPC_MoveChild0,
/*510015*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510018*/        OPC_RecordMemRef,
/*510019*/        OPC_RecordNode, // #2 = 'ld' chained node
/*510020*/        OPC_CheckFoldableChainNode,
/*510021*/        OPC_RecordChild1, // #3 = $src3
/*510022*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510024*/        OPC_CheckPredicate, 9, // Predicate_load
/*510026*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*510028*/        OPC_CheckType, MVT::v8i64,
/*510030*/        OPC_MoveParent,
/*510031*/        OPC_MoveParent,
/*510032*/        OPC_RecordChild3, // #4 = $src4
/*510033*/        OPC_MoveChild3,
/*510034*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510037*/        OPC_MoveParent,
/*510038*/        OPC_CheckType, MVT::v16i32,
/*510040*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510042*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510045*/        OPC_EmitMergeInputChains1_2,
/*510046*/        OPC_EmitConvertToTarget, 4,
/*510048*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4) - Complexity = 31
                  // Dst: (VPTERNLOGDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*510062*/      /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->510111
/*510065*/        OPC_MoveChild0,
/*510066*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510069*/        OPC_RecordMemRef,
/*510070*/        OPC_RecordNode, // #2 = 'ld' chained node
/*510071*/        OPC_CheckFoldableChainNode,
/*510072*/        OPC_RecordChild1, // #3 = $src3
/*510073*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510075*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*510077*/        OPC_CheckType, MVT::i32,
/*510079*/        OPC_MoveParent,
/*510080*/        OPC_MoveParent,
/*510081*/        OPC_RecordChild3, // #4 = $src4
/*510082*/        OPC_MoveChild3,
/*510083*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510086*/        OPC_MoveParent,
/*510087*/        OPC_CheckType, MVT::v16i32,
/*510089*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510091*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510094*/        OPC_EmitMergeInputChains1_2,
/*510095*/        OPC_EmitConvertToTarget, 4,
/*510097*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4) - Complexity = 31
                  // Dst: (VPTERNLOGDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*510111*/      0, // EndSwitchOpcode
/*510112*/    /*Scope*/ 57, /*->510170*/
/*510113*/      OPC_MoveChild0,
/*510114*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*510117*/      OPC_MoveChild0,
/*510118*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510121*/      OPC_RecordMemRef,
/*510122*/      OPC_RecordNode, // #0 = 'ld' chained node
/*510123*/      OPC_CheckFoldableChainNode,
/*510124*/      OPC_RecordChild1, // #1 = $src3
/*510125*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510127*/      OPC_CheckPredicate, 9, // Predicate_load
/*510129*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*510131*/      OPC_CheckType, MVT::v8i64,
/*510133*/      OPC_MoveParent,
/*510134*/      OPC_MoveParent,
/*510135*/      OPC_RecordChild1, // #2 = $src2
/*510136*/      OPC_RecordChild2, // #3 = $src1
/*510137*/      OPC_RecordChild3, // #4 = $src4
/*510138*/      OPC_MoveChild3,
/*510139*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510142*/      OPC_MoveParent,
/*510143*/      OPC_CheckType, MVT::v16i32,
/*510145*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510147*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510150*/      OPC_EmitMergeInputChains1_0,
/*510151*/      OPC_EmitConvertToTarget, 4,
/*510153*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*510156*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*510170*/    /*Scope*/ 57, /*->510228*/
/*510171*/      OPC_RecordChild0, // #0 = $src1
/*510172*/      OPC_MoveChild1,
/*510173*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*510176*/      OPC_MoveChild0,
/*510177*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510180*/      OPC_RecordMemRef,
/*510181*/      OPC_RecordNode, // #1 = 'ld' chained node
/*510182*/      OPC_CheckFoldableChainNode,
/*510183*/      OPC_RecordChild1, // #2 = $src3
/*510184*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510186*/      OPC_CheckPredicate, 9, // Predicate_load
/*510188*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*510190*/      OPC_CheckType, MVT::v8i64,
/*510192*/      OPC_MoveParent,
/*510193*/      OPC_MoveParent,
/*510194*/      OPC_RecordChild2, // #3 = $src2
/*510195*/      OPC_RecordChild3, // #4 = $src4
/*510196*/      OPC_MoveChild3,
/*510197*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510200*/      OPC_MoveParent,
/*510201*/      OPC_CheckType, MVT::v16i32,
/*510203*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510205*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510208*/      OPC_EmitMergeInputChains1_1,
/*510209*/      OPC_EmitConvertToTarget, 4,
/*510211*/      OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*510214*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*510228*/    /*Scope*/ 55, /*->510284*/
/*510229*/      OPC_MoveChild0,
/*510230*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*510233*/      OPC_MoveChild0,
/*510234*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510237*/      OPC_RecordMemRef,
/*510238*/      OPC_RecordNode, // #0 = 'ld' chained node
/*510239*/      OPC_CheckFoldableChainNode,
/*510240*/      OPC_RecordChild1, // #1 = $src3
/*510241*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510243*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/*510245*/      OPC_CheckType, MVT::i32,
/*510247*/      OPC_MoveParent,
/*510248*/      OPC_MoveParent,
/*510249*/      OPC_RecordChild1, // #2 = $src2
/*510250*/      OPC_RecordChild2, // #3 = $src1
/*510251*/      OPC_RecordChild3, // #4 = $src4
/*510252*/      OPC_MoveChild3,
/*510253*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510256*/      OPC_MoveParent,
/*510257*/      OPC_CheckType, MVT::v16i32,
/*510259*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510261*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510264*/      OPC_EmitMergeInputChains1_0,
/*510265*/      OPC_EmitConvertToTarget, 4,
/*510267*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*510270*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*510284*/    /*Scope*/ 35|128,1/*163*/, /*->510449*/
/*510286*/      OPC_RecordChild0, // #0 = $src1
/*510287*/      OPC_Scope, 54, /*->510343*/ // 2 children in Scope
/*510289*/        OPC_MoveChild1,
/*510290*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*510293*/        OPC_MoveChild0,
/*510294*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510297*/        OPC_RecordMemRef,
/*510298*/        OPC_RecordNode, // #1 = 'ld' chained node
/*510299*/        OPC_CheckFoldableChainNode,
/*510300*/        OPC_RecordChild1, // #2 = $src3
/*510301*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510303*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*510305*/        OPC_CheckType, MVT::i32,
/*510307*/        OPC_MoveParent,
/*510308*/        OPC_MoveParent,
/*510309*/        OPC_RecordChild2, // #3 = $src2
/*510310*/        OPC_RecordChild3, // #4 = $src4
/*510311*/        OPC_MoveChild3,
/*510312*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510315*/        OPC_MoveParent,
/*510316*/        OPC_CheckType, MVT::v16i32,
/*510318*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510320*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510323*/        OPC_EmitMergeInputChains1_1,
/*510324*/        OPC_EmitConvertToTarget, 4,
/*510326*/        OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*510329*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                  // Src: (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 31
                  // Dst: (VPTERNLOGDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*510343*/      /*Scope*/ 104, /*->510448*/
/*510344*/        OPC_RecordChild1, // #1 = $src2
/*510345*/        OPC_MoveChild2,
/*510346*/        OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->510398
/*510350*/          OPC_MoveChild0,
/*510351*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510354*/          OPC_RecordMemRef,
/*510355*/          OPC_RecordNode, // #2 = 'ld' chained node
/*510356*/          OPC_CheckFoldableChainNode,
/*510357*/          OPC_RecordChild1, // #3 = $src3
/*510358*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510360*/          OPC_CheckPredicate, 9, // Predicate_load
/*510362*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*510364*/          OPC_CheckType, MVT::v2i64,
/*510366*/          OPC_MoveParent,
/*510367*/          OPC_MoveParent,
/*510368*/          OPC_RecordChild3, // #4 = $src4
/*510369*/          OPC_MoveChild3,
/*510370*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510373*/          OPC_MoveParent,
/*510374*/          OPC_CheckType, MVT::v4i32,
/*510376*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510378*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510381*/          OPC_EmitMergeInputChains1_2,
/*510382*/          OPC_EmitConvertToTarget, 4,
/*510384*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4) - Complexity = 31
                    // Dst: (VPTERNLOGDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*510398*/        /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->510447
/*510401*/          OPC_MoveChild0,
/*510402*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510405*/          OPC_RecordMemRef,
/*510406*/          OPC_RecordNode, // #2 = 'ld' chained node
/*510407*/          OPC_CheckFoldableChainNode,
/*510408*/          OPC_RecordChild1, // #3 = $src3
/*510409*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510411*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*510413*/          OPC_CheckType, MVT::i32,
/*510415*/          OPC_MoveParent,
/*510416*/          OPC_MoveParent,
/*510417*/          OPC_RecordChild3, // #4 = $src4
/*510418*/          OPC_MoveChild3,
/*510419*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510422*/          OPC_MoveParent,
/*510423*/          OPC_CheckType, MVT::v4i32,
/*510425*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510427*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510430*/          OPC_EmitMergeInputChains1_2,
/*510431*/          OPC_EmitConvertToTarget, 4,
/*510433*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4) - Complexity = 31
                    // Dst: (VPTERNLOGDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*510447*/        0, // EndSwitchOpcode
/*510448*/      0, /*End of Scope*/
/*510449*/    /*Scope*/ 57, /*->510507*/
/*510450*/      OPC_MoveChild0,
/*510451*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*510454*/      OPC_MoveChild0,
/*510455*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510458*/      OPC_RecordMemRef,
/*510459*/      OPC_RecordNode, // #0 = 'ld' chained node
/*510460*/      OPC_CheckFoldableChainNode,
/*510461*/      OPC_RecordChild1, // #1 = $src3
/*510462*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510464*/      OPC_CheckPredicate, 9, // Predicate_load
/*510466*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*510468*/      OPC_CheckType, MVT::v2i64,
/*510470*/      OPC_MoveParent,
/*510471*/      OPC_MoveParent,
/*510472*/      OPC_RecordChild1, // #2 = $src2
/*510473*/      OPC_RecordChild2, // #3 = $src1
/*510474*/      OPC_RecordChild3, // #4 = $src4
/*510475*/      OPC_MoveChild3,
/*510476*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510479*/      OPC_MoveParent,
/*510480*/      OPC_CheckType, MVT::v4i32,
/*510482*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510484*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510487*/      OPC_EmitMergeInputChains1_0,
/*510488*/      OPC_EmitConvertToTarget, 4,
/*510490*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*510493*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*510507*/    /*Scope*/ 57, /*->510565*/
/*510508*/      OPC_RecordChild0, // #0 = $src1
/*510509*/      OPC_MoveChild1,
/*510510*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*510513*/      OPC_MoveChild0,
/*510514*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510517*/      OPC_RecordMemRef,
/*510518*/      OPC_RecordNode, // #1 = 'ld' chained node
/*510519*/      OPC_CheckFoldableChainNode,
/*510520*/      OPC_RecordChild1, // #2 = $src3
/*510521*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510523*/      OPC_CheckPredicate, 9, // Predicate_load
/*510525*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*510527*/      OPC_CheckType, MVT::v2i64,
/*510529*/      OPC_MoveParent,
/*510530*/      OPC_MoveParent,
/*510531*/      OPC_RecordChild2, // #3 = $src2
/*510532*/      OPC_RecordChild3, // #4 = $src4
/*510533*/      OPC_MoveChild3,
/*510534*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510537*/      OPC_MoveParent,
/*510538*/      OPC_CheckType, MVT::v4i32,
/*510540*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510542*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510545*/      OPC_EmitMergeInputChains1_1,
/*510546*/      OPC_EmitConvertToTarget, 4,
/*510548*/      OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*510551*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*510565*/    /*Scope*/ 55, /*->510621*/
/*510566*/      OPC_MoveChild0,
/*510567*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*510570*/      OPC_MoveChild0,
/*510571*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510574*/      OPC_RecordMemRef,
/*510575*/      OPC_RecordNode, // #0 = 'ld' chained node
/*510576*/      OPC_CheckFoldableChainNode,
/*510577*/      OPC_RecordChild1, // #1 = $src3
/*510578*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510580*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/*510582*/      OPC_CheckType, MVT::i32,
/*510584*/      OPC_MoveParent,
/*510585*/      OPC_MoveParent,
/*510586*/      OPC_RecordChild1, // #2 = $src2
/*510587*/      OPC_RecordChild2, // #3 = $src1
/*510588*/      OPC_RecordChild3, // #4 = $src4
/*510589*/      OPC_MoveChild3,
/*510590*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510593*/      OPC_MoveParent,
/*510594*/      OPC_CheckType, MVT::v4i32,
/*510596*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510598*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510601*/      OPC_EmitMergeInputChains1_0,
/*510602*/      OPC_EmitConvertToTarget, 4,
/*510604*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*510607*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*510621*/    /*Scope*/ 35|128,1/*163*/, /*->510786*/
/*510623*/      OPC_RecordChild0, // #0 = $src1
/*510624*/      OPC_Scope, 54, /*->510680*/ // 2 children in Scope
/*510626*/        OPC_MoveChild1,
/*510627*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*510630*/        OPC_MoveChild0,
/*510631*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510634*/        OPC_RecordMemRef,
/*510635*/        OPC_RecordNode, // #1 = 'ld' chained node
/*510636*/        OPC_CheckFoldableChainNode,
/*510637*/        OPC_RecordChild1, // #2 = $src3
/*510638*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510640*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*510642*/        OPC_CheckType, MVT::i32,
/*510644*/        OPC_MoveParent,
/*510645*/        OPC_MoveParent,
/*510646*/        OPC_RecordChild2, // #3 = $src2
/*510647*/        OPC_RecordChild3, // #4 = $src4
/*510648*/        OPC_MoveChild3,
/*510649*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510652*/        OPC_MoveParent,
/*510653*/        OPC_CheckType, MVT::v4i32,
/*510655*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510657*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510660*/        OPC_EmitMergeInputChains1_1,
/*510661*/        OPC_EmitConvertToTarget, 4,
/*510663*/        OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*510666*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                  // Src: (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 31
                  // Dst: (VPTERNLOGDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*510680*/      /*Scope*/ 104, /*->510785*/
/*510681*/        OPC_RecordChild1, // #1 = $src2
/*510682*/        OPC_MoveChild2,
/*510683*/        OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::BITCAST),// ->510735
/*510687*/          OPC_MoveChild0,
/*510688*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510691*/          OPC_RecordMemRef,
/*510692*/          OPC_RecordNode, // #2 = 'ld' chained node
/*510693*/          OPC_CheckFoldableChainNode,
/*510694*/          OPC_RecordChild1, // #3 = $src3
/*510695*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510697*/          OPC_CheckPredicate, 9, // Predicate_load
/*510699*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*510701*/          OPC_CheckType, MVT::v4i64,
/*510703*/          OPC_MoveParent,
/*510704*/          OPC_MoveParent,
/*510705*/          OPC_RecordChild3, // #4 = $src4
/*510706*/          OPC_MoveChild3,
/*510707*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510710*/          OPC_MoveParent,
/*510711*/          OPC_CheckType, MVT::v8i32,
/*510713*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510715*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510718*/          OPC_EmitMergeInputChains1_2,
/*510719*/          OPC_EmitConvertToTarget, 4,
/*510721*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4) - Complexity = 31
                    // Dst: (VPTERNLOGDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*510735*/        /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VBROADCAST),// ->510784
/*510738*/          OPC_MoveChild0,
/*510739*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510742*/          OPC_RecordMemRef,
/*510743*/          OPC_RecordNode, // #2 = 'ld' chained node
/*510744*/          OPC_CheckFoldableChainNode,
/*510745*/          OPC_RecordChild1, // #3 = $src3
/*510746*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510748*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*510750*/          OPC_CheckType, MVT::i32,
/*510752*/          OPC_MoveParent,
/*510753*/          OPC_MoveParent,
/*510754*/          OPC_RecordChild3, // #4 = $src4
/*510755*/          OPC_MoveChild3,
/*510756*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510759*/          OPC_MoveParent,
/*510760*/          OPC_CheckType, MVT::v8i32,
/*510762*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510764*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510767*/          OPC_EmitMergeInputChains1_2,
/*510768*/          OPC_EmitConvertToTarget, 4,
/*510770*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src4) - Complexity = 31
                    // Dst: (VPTERNLOGDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*510784*/        0, // EndSwitchOpcode
/*510785*/      0, /*End of Scope*/
/*510786*/    /*Scope*/ 57, /*->510844*/
/*510787*/      OPC_MoveChild0,
/*510788*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*510791*/      OPC_MoveChild0,
/*510792*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510795*/      OPC_RecordMemRef,
/*510796*/      OPC_RecordNode, // #0 = 'ld' chained node
/*510797*/      OPC_CheckFoldableChainNode,
/*510798*/      OPC_RecordChild1, // #1 = $src3
/*510799*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510801*/      OPC_CheckPredicate, 9, // Predicate_load
/*510803*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*510805*/      OPC_CheckType, MVT::v4i64,
/*510807*/      OPC_MoveParent,
/*510808*/      OPC_MoveParent,
/*510809*/      OPC_RecordChild1, // #2 = $src2
/*510810*/      OPC_RecordChild2, // #3 = $src1
/*510811*/      OPC_RecordChild3, // #4 = $src4
/*510812*/      OPC_MoveChild3,
/*510813*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510816*/      OPC_MoveParent,
/*510817*/      OPC_CheckType, MVT::v8i32,
/*510819*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510821*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510824*/      OPC_EmitMergeInputChains1_0,
/*510825*/      OPC_EmitConvertToTarget, 4,
/*510827*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*510830*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*510844*/    /*Scope*/ 57, /*->510902*/
/*510845*/      OPC_RecordChild0, // #0 = $src1
/*510846*/      OPC_MoveChild1,
/*510847*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*510850*/      OPC_MoveChild0,
/*510851*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510854*/      OPC_RecordMemRef,
/*510855*/      OPC_RecordNode, // #1 = 'ld' chained node
/*510856*/      OPC_CheckFoldableChainNode,
/*510857*/      OPC_RecordChild1, // #2 = $src3
/*510858*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510860*/      OPC_CheckPredicate, 9, // Predicate_load
/*510862*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*510864*/      OPC_CheckType, MVT::v4i64,
/*510866*/      OPC_MoveParent,
/*510867*/      OPC_MoveParent,
/*510868*/      OPC_RecordChild2, // #3 = $src2
/*510869*/      OPC_RecordChild3, // #4 = $src4
/*510870*/      OPC_MoveChild3,
/*510871*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510874*/      OPC_MoveParent,
/*510875*/      OPC_CheckType, MVT::v8i32,
/*510877*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510879*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510882*/      OPC_EmitMergeInputChains1_1,
/*510883*/      OPC_EmitConvertToTarget, 4,
/*510885*/      OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*510888*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*510902*/    /*Scope*/ 55, /*->510958*/
/*510903*/      OPC_MoveChild0,
/*510904*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*510907*/      OPC_MoveChild0,
/*510908*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510911*/      OPC_RecordMemRef,
/*510912*/      OPC_RecordNode, // #0 = 'ld' chained node
/*510913*/      OPC_CheckFoldableChainNode,
/*510914*/      OPC_RecordChild1, // #1 = $src3
/*510915*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510917*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/*510919*/      OPC_CheckType, MVT::i32,
/*510921*/      OPC_MoveParent,
/*510922*/      OPC_MoveParent,
/*510923*/      OPC_RecordChild1, // #2 = $src2
/*510924*/      OPC_RecordChild2, // #3 = $src1
/*510925*/      OPC_RecordChild3, // #4 = $src4
/*510926*/      OPC_MoveChild3,
/*510927*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510930*/      OPC_MoveParent,
/*510931*/      OPC_CheckType, MVT::v8i32,
/*510933*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510935*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510938*/      OPC_EmitMergeInputChains1_0,
/*510939*/      OPC_EmitConvertToTarget, 4,
/*510941*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*510944*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*510958*/    /*Scope*/ 110, /*->511069*/
/*510959*/      OPC_RecordChild0, // #0 = $src1
/*510960*/      OPC_Scope, 54, /*->511016*/ // 2 children in Scope
/*510962*/        OPC_MoveChild1,
/*510963*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*510966*/        OPC_MoveChild0,
/*510967*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*510970*/        OPC_RecordMemRef,
/*510971*/        OPC_RecordNode, // #1 = 'ld' chained node
/*510972*/        OPC_CheckFoldableChainNode,
/*510973*/        OPC_RecordChild1, // #2 = $src3
/*510974*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*510976*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*510978*/        OPC_CheckType, MVT::i32,
/*510980*/        OPC_MoveParent,
/*510981*/        OPC_MoveParent,
/*510982*/        OPC_RecordChild2, // #3 = $src2
/*510983*/        OPC_RecordChild3, // #4 = $src4
/*510984*/        OPC_MoveChild3,
/*510985*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510988*/        OPC_MoveParent,
/*510989*/        OPC_CheckType, MVT::v8i32,
/*510991*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*510993*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*510996*/        OPC_EmitMergeInputChains1_1,
/*510997*/        OPC_EmitConvertToTarget, 4,
/*510999*/        OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*511002*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                  // Src: (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 31
                  // Dst: (VPTERNLOGDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511016*/      /*Scope*/ 51, /*->511068*/
/*511017*/        OPC_RecordChild1, // #1 = $src2
/*511018*/        OPC_MoveChild2,
/*511019*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*511022*/        OPC_MoveChild0,
/*511023*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511026*/        OPC_RecordMemRef,
/*511027*/        OPC_RecordNode, // #2 = 'ld' chained node
/*511028*/        OPC_CheckFoldableChainNode,
/*511029*/        OPC_RecordChild1, // #3 = $src3
/*511030*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511032*/        OPC_CheckPredicate, 9, // Predicate_load
/*511034*/        OPC_CheckType, MVT::i64,
/*511036*/        OPC_MoveParent,
/*511037*/        OPC_MoveParent,
/*511038*/        OPC_RecordChild3, // #4 = $src4
/*511039*/        OPC_MoveChild3,
/*511040*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511043*/        OPC_MoveParent,
/*511044*/        OPC_CheckType, MVT::v8i64,
/*511046*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511048*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511051*/        OPC_EmitMergeInputChains1_2,
/*511052*/        OPC_EmitConvertToTarget, 4,
/*511054*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4) - Complexity = 31
                  // Dst: (VPTERNLOGQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*511068*/      0, /*End of Scope*/
/*511069*/    /*Scope*/ 55, /*->511125*/
/*511070*/      OPC_MoveChild0,
/*511071*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*511074*/      OPC_MoveChild0,
/*511075*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511078*/      OPC_RecordMemRef,
/*511079*/      OPC_RecordNode, // #0 = 'ld' chained node
/*511080*/      OPC_CheckFoldableChainNode,
/*511081*/      OPC_RecordChild1, // #1 = $src3
/*511082*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511084*/      OPC_CheckPredicate, 9, // Predicate_load
/*511086*/      OPC_CheckType, MVT::i64,
/*511088*/      OPC_MoveParent,
/*511089*/      OPC_MoveParent,
/*511090*/      OPC_RecordChild1, // #2 = $src2
/*511091*/      OPC_RecordChild2, // #3 = $src1
/*511092*/      OPC_RecordChild3, // #4 = $src4
/*511093*/      OPC_MoveChild3,
/*511094*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511097*/      OPC_MoveParent,
/*511098*/      OPC_CheckType, MVT::v8i64,
/*511100*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511102*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511105*/      OPC_EmitMergeInputChains1_0,
/*511106*/      OPC_EmitConvertToTarget, 4,
/*511108*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*511111*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511125*/    /*Scope*/ 110, /*->511236*/
/*511126*/      OPC_RecordChild0, // #0 = $src1
/*511127*/      OPC_Scope, 54, /*->511183*/ // 2 children in Scope
/*511129*/        OPC_MoveChild1,
/*511130*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*511133*/        OPC_MoveChild0,
/*511134*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511137*/        OPC_RecordMemRef,
/*511138*/        OPC_RecordNode, // #1 = 'ld' chained node
/*511139*/        OPC_CheckFoldableChainNode,
/*511140*/        OPC_RecordChild1, // #2 = $src3
/*511141*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511143*/        OPC_CheckPredicate, 9, // Predicate_load
/*511145*/        OPC_CheckType, MVT::i64,
/*511147*/        OPC_MoveParent,
/*511148*/        OPC_MoveParent,
/*511149*/        OPC_RecordChild2, // #3 = $src2
/*511150*/        OPC_RecordChild3, // #4 = $src4
/*511151*/        OPC_MoveChild3,
/*511152*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511155*/        OPC_MoveParent,
/*511156*/        OPC_CheckType, MVT::v8i64,
/*511158*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511160*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511163*/        OPC_EmitMergeInputChains1_1,
/*511164*/        OPC_EmitConvertToTarget, 4,
/*511166*/        OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*511169*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                  // Src: (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 31
                  // Dst: (VPTERNLOGQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511183*/      /*Scope*/ 51, /*->511235*/
/*511184*/        OPC_RecordChild1, // #1 = $src2
/*511185*/        OPC_MoveChild2,
/*511186*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*511189*/        OPC_MoveChild0,
/*511190*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511193*/        OPC_RecordMemRef,
/*511194*/        OPC_RecordNode, // #2 = 'ld' chained node
/*511195*/        OPC_CheckFoldableChainNode,
/*511196*/        OPC_RecordChild1, // #3 = $src3
/*511197*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511199*/        OPC_CheckPredicate, 9, // Predicate_load
/*511201*/        OPC_CheckType, MVT::i64,
/*511203*/        OPC_MoveParent,
/*511204*/        OPC_MoveParent,
/*511205*/        OPC_RecordChild3, // #4 = $src4
/*511206*/        OPC_MoveChild3,
/*511207*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511210*/        OPC_MoveParent,
/*511211*/        OPC_CheckType, MVT::v2i64,
/*511213*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511215*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511218*/        OPC_EmitMergeInputChains1_2,
/*511219*/        OPC_EmitConvertToTarget, 4,
/*511221*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4) - Complexity = 31
                  // Dst: (VPTERNLOGQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*511235*/      0, /*End of Scope*/
/*511236*/    /*Scope*/ 55, /*->511292*/
/*511237*/      OPC_MoveChild0,
/*511238*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*511241*/      OPC_MoveChild0,
/*511242*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511245*/      OPC_RecordMemRef,
/*511246*/      OPC_RecordNode, // #0 = 'ld' chained node
/*511247*/      OPC_CheckFoldableChainNode,
/*511248*/      OPC_RecordChild1, // #1 = $src3
/*511249*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511251*/      OPC_CheckPredicate, 9, // Predicate_load
/*511253*/      OPC_CheckType, MVT::i64,
/*511255*/      OPC_MoveParent,
/*511256*/      OPC_MoveParent,
/*511257*/      OPC_RecordChild1, // #2 = $src2
/*511258*/      OPC_RecordChild2, // #3 = $src1
/*511259*/      OPC_RecordChild3, // #4 = $src4
/*511260*/      OPC_MoveChild3,
/*511261*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511264*/      OPC_MoveParent,
/*511265*/      OPC_CheckType, MVT::v2i64,
/*511267*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511269*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511272*/      OPC_EmitMergeInputChains1_0,
/*511273*/      OPC_EmitConvertToTarget, 4,
/*511275*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*511278*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511292*/    /*Scope*/ 110, /*->511403*/
/*511293*/      OPC_RecordChild0, // #0 = $src1
/*511294*/      OPC_Scope, 54, /*->511350*/ // 2 children in Scope
/*511296*/        OPC_MoveChild1,
/*511297*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*511300*/        OPC_MoveChild0,
/*511301*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511304*/        OPC_RecordMemRef,
/*511305*/        OPC_RecordNode, // #1 = 'ld' chained node
/*511306*/        OPC_CheckFoldableChainNode,
/*511307*/        OPC_RecordChild1, // #2 = $src3
/*511308*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511310*/        OPC_CheckPredicate, 9, // Predicate_load
/*511312*/        OPC_CheckType, MVT::i64,
/*511314*/        OPC_MoveParent,
/*511315*/        OPC_MoveParent,
/*511316*/        OPC_RecordChild2, // #3 = $src2
/*511317*/        OPC_RecordChild3, // #4 = $src4
/*511318*/        OPC_MoveChild3,
/*511319*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511322*/        OPC_MoveParent,
/*511323*/        OPC_CheckType, MVT::v2i64,
/*511325*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511327*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511330*/        OPC_EmitMergeInputChains1_1,
/*511331*/        OPC_EmitConvertToTarget, 4,
/*511333*/        OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*511336*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                  // Src: (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 31
                  // Dst: (VPTERNLOGQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511350*/      /*Scope*/ 51, /*->511402*/
/*511351*/        OPC_RecordChild1, // #1 = $src2
/*511352*/        OPC_MoveChild2,
/*511353*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*511356*/        OPC_MoveChild0,
/*511357*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511360*/        OPC_RecordMemRef,
/*511361*/        OPC_RecordNode, // #2 = 'ld' chained node
/*511362*/        OPC_CheckFoldableChainNode,
/*511363*/        OPC_RecordChild1, // #3 = $src3
/*511364*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511366*/        OPC_CheckPredicate, 9, // Predicate_load
/*511368*/        OPC_CheckType, MVT::i64,
/*511370*/        OPC_MoveParent,
/*511371*/        OPC_MoveParent,
/*511372*/        OPC_RecordChild3, // #4 = $src4
/*511373*/        OPC_MoveChild3,
/*511374*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511377*/        OPC_MoveParent,
/*511378*/        OPC_CheckType, MVT::v4i64,
/*511380*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511382*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511385*/        OPC_EmitMergeInputChains1_2,
/*511386*/        OPC_EmitConvertToTarget, 4,
/*511388*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src4) - Complexity = 31
                  // Dst: (VPTERNLOGQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*511402*/      0, /*End of Scope*/
/*511403*/    /*Scope*/ 55, /*->511459*/
/*511404*/      OPC_MoveChild0,
/*511405*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*511408*/      OPC_MoveChild0,
/*511409*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511412*/      OPC_RecordMemRef,
/*511413*/      OPC_RecordNode, // #0 = 'ld' chained node
/*511414*/      OPC_CheckFoldableChainNode,
/*511415*/      OPC_RecordChild1, // #1 = $src3
/*511416*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511418*/      OPC_CheckPredicate, 9, // Predicate_load
/*511420*/      OPC_CheckType, MVT::i64,
/*511422*/      OPC_MoveParent,
/*511423*/      OPC_MoveParent,
/*511424*/      OPC_RecordChild1, // #2 = $src2
/*511425*/      OPC_RecordChild2, // #3 = $src1
/*511426*/      OPC_RecordChild3, // #4 = $src4
/*511427*/      OPC_MoveChild3,
/*511428*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511431*/      OPC_MoveParent,
/*511432*/      OPC_CheckType, MVT::v4i64,
/*511434*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511436*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511439*/      OPC_EmitMergeInputChains1_0,
/*511440*/      OPC_EmitConvertToTarget, 4,
/*511442*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*511445*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 31
                // Dst: (VPTERNLOGQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511459*/    /*Scope*/ 105, /*->511565*/
/*511460*/      OPC_RecordChild0, // #0 = $src1
/*511461*/      OPC_Scope, 54, /*->511517*/ // 2 children in Scope
/*511463*/        OPC_MoveChild1,
/*511464*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*511467*/        OPC_MoveChild0,
/*511468*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511471*/        OPC_RecordMemRef,
/*511472*/        OPC_RecordNode, // #1 = 'ld' chained node
/*511473*/        OPC_CheckFoldableChainNode,
/*511474*/        OPC_RecordChild1, // #2 = $src3
/*511475*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511477*/        OPC_CheckPredicate, 9, // Predicate_load
/*511479*/        OPC_CheckType, MVT::i64,
/*511481*/        OPC_MoveParent,
/*511482*/        OPC_MoveParent,
/*511483*/        OPC_RecordChild2, // #3 = $src2
/*511484*/        OPC_RecordChild3, // #4 = $src4
/*511485*/        OPC_MoveChild3,
/*511486*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511489*/        OPC_MoveParent,
/*511490*/        OPC_CheckType, MVT::v4i64,
/*511492*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511494*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511497*/        OPC_EmitMergeInputChains1_1,
/*511498*/        OPC_EmitConvertToTarget, 4,
/*511500*/        OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*511503*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                  // Src: (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 31
                  // Dst: (VPTERNLOGQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511517*/      /*Scope*/ 46, /*->511564*/
/*511518*/        OPC_RecordChild1, // #1 = $src2
/*511519*/        OPC_MoveChild2,
/*511520*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511523*/        OPC_RecordMemRef,
/*511524*/        OPC_RecordNode, // #2 = 'ld' chained node
/*511525*/        OPC_CheckFoldableChainNode,
/*511526*/        OPC_RecordChild1, // #3 = $src3
/*511527*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511529*/        OPC_CheckPredicate, 9, // Predicate_load
/*511531*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*511533*/        OPC_MoveParent,
/*511534*/        OPC_RecordChild3, // #4 = $src4
/*511535*/        OPC_MoveChild3,
/*511536*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511539*/        OPC_MoveParent,
/*511540*/        OPC_CheckType, MVT::v8i64,
/*511542*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511544*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511547*/        OPC_EmitMergeInputChains1_2,
/*511548*/        OPC_EmitConvertToTarget, 4,
/*511550*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*511564*/      0, /*End of Scope*/
/*511565*/    /*Scope*/ 50, /*->511616*/
/*511566*/      OPC_MoveChild0,
/*511567*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511570*/      OPC_RecordMemRef,
/*511571*/      OPC_RecordNode, // #0 = 'ld' chained node
/*511572*/      OPC_CheckFoldableChainNode,
/*511573*/      OPC_RecordChild1, // #1 = $src3
/*511574*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511576*/      OPC_CheckPredicate, 9, // Predicate_load
/*511578*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*511580*/      OPC_MoveParent,
/*511581*/      OPC_RecordChild1, // #2 = $src2
/*511582*/      OPC_RecordChild2, // #3 = $src1
/*511583*/      OPC_RecordChild3, // #4 = $src4
/*511584*/      OPC_MoveChild3,
/*511585*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511588*/      OPC_MoveParent,
/*511589*/      OPC_CheckType, MVT::v8i64,
/*511591*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511593*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511596*/      OPC_EmitMergeInputChains1_0,
/*511597*/      OPC_EmitConvertToTarget, 4,
/*511599*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*511602*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511616*/    /*Scope*/ 100, /*->511717*/
/*511617*/      OPC_RecordChild0, // #0 = $src1
/*511618*/      OPC_Scope, 49, /*->511669*/ // 2 children in Scope
/*511620*/        OPC_MoveChild1,
/*511621*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511624*/        OPC_RecordMemRef,
/*511625*/        OPC_RecordNode, // #1 = 'ld' chained node
/*511626*/        OPC_CheckFoldableChainNode,
/*511627*/        OPC_RecordChild1, // #2 = $src3
/*511628*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511630*/        OPC_CheckPredicate, 9, // Predicate_load
/*511632*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*511634*/        OPC_MoveParent,
/*511635*/        OPC_RecordChild2, // #3 = $src2
/*511636*/        OPC_RecordChild3, // #4 = $src4
/*511637*/        OPC_MoveChild3,
/*511638*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511641*/        OPC_MoveParent,
/*511642*/        OPC_CheckType, MVT::v8i64,
/*511644*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511646*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511649*/        OPC_EmitMergeInputChains1_1,
/*511650*/        OPC_EmitConvertToTarget, 4,
/*511652*/        OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*511655*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                  // Src: (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511669*/      /*Scope*/ 46, /*->511716*/
/*511670*/        OPC_RecordChild1, // #1 = $src2
/*511671*/        OPC_MoveChild2,
/*511672*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511675*/        OPC_RecordMemRef,
/*511676*/        OPC_RecordNode, // #2 = 'ld' chained node
/*511677*/        OPC_CheckFoldableChainNode,
/*511678*/        OPC_RecordChild1, // #3 = $src3
/*511679*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511681*/        OPC_CheckPredicate, 9, // Predicate_load
/*511683*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*511685*/        OPC_MoveParent,
/*511686*/        OPC_RecordChild3, // #4 = $src4
/*511687*/        OPC_MoveChild3,
/*511688*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511691*/        OPC_MoveParent,
/*511692*/        OPC_CheckType, MVT::v2i64,
/*511694*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511696*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511699*/        OPC_EmitMergeInputChains1_2,
/*511700*/        OPC_EmitConvertToTarget, 4,
/*511702*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*511716*/      0, /*End of Scope*/
/*511717*/    /*Scope*/ 50, /*->511768*/
/*511718*/      OPC_MoveChild0,
/*511719*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511722*/      OPC_RecordMemRef,
/*511723*/      OPC_RecordNode, // #0 = 'ld' chained node
/*511724*/      OPC_CheckFoldableChainNode,
/*511725*/      OPC_RecordChild1, // #1 = $src3
/*511726*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511728*/      OPC_CheckPredicate, 9, // Predicate_load
/*511730*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*511732*/      OPC_MoveParent,
/*511733*/      OPC_RecordChild1, // #2 = $src2
/*511734*/      OPC_RecordChild2, // #3 = $src1
/*511735*/      OPC_RecordChild3, // #4 = $src4
/*511736*/      OPC_MoveChild3,
/*511737*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511740*/      OPC_MoveParent,
/*511741*/      OPC_CheckType, MVT::v2i64,
/*511743*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511745*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511748*/      OPC_EmitMergeInputChains1_0,
/*511749*/      OPC_EmitConvertToTarget, 4,
/*511751*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*511754*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511768*/    /*Scope*/ 100, /*->511869*/
/*511769*/      OPC_RecordChild0, // #0 = $src1
/*511770*/      OPC_Scope, 49, /*->511821*/ // 2 children in Scope
/*511772*/        OPC_MoveChild1,
/*511773*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511776*/        OPC_RecordMemRef,
/*511777*/        OPC_RecordNode, // #1 = 'ld' chained node
/*511778*/        OPC_CheckFoldableChainNode,
/*511779*/        OPC_RecordChild1, // #2 = $src3
/*511780*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511782*/        OPC_CheckPredicate, 9, // Predicate_load
/*511784*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*511786*/        OPC_MoveParent,
/*511787*/        OPC_RecordChild2, // #3 = $src2
/*511788*/        OPC_RecordChild3, // #4 = $src4
/*511789*/        OPC_MoveChild3,
/*511790*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511793*/        OPC_MoveParent,
/*511794*/        OPC_CheckType, MVT::v2i64,
/*511796*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511798*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511801*/        OPC_EmitMergeInputChains1_1,
/*511802*/        OPC_EmitConvertToTarget, 4,
/*511804*/        OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*511807*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                  // Src: (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511821*/      /*Scope*/ 46, /*->511868*/
/*511822*/        OPC_RecordChild1, // #1 = $src2
/*511823*/        OPC_MoveChild2,
/*511824*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511827*/        OPC_RecordMemRef,
/*511828*/        OPC_RecordNode, // #2 = 'ld' chained node
/*511829*/        OPC_CheckFoldableChainNode,
/*511830*/        OPC_RecordChild1, // #3 = $src3
/*511831*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511833*/        OPC_CheckPredicate, 9, // Predicate_load
/*511835*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*511837*/        OPC_MoveParent,
/*511838*/        OPC_RecordChild3, // #4 = $src4
/*511839*/        OPC_MoveChild3,
/*511840*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511843*/        OPC_MoveParent,
/*511844*/        OPC_CheckType, MVT::v4i64,
/*511846*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511848*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511851*/        OPC_EmitMergeInputChains1_2,
/*511852*/        OPC_EmitConvertToTarget, 4,
/*511854*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*511868*/      0, /*End of Scope*/
/*511869*/    /*Scope*/ 50, /*->511920*/
/*511870*/      OPC_MoveChild0,
/*511871*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511874*/      OPC_RecordMemRef,
/*511875*/      OPC_RecordNode, // #0 = 'ld' chained node
/*511876*/      OPC_CheckFoldableChainNode,
/*511877*/      OPC_RecordChild1, // #1 = $src3
/*511878*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511880*/      OPC_CheckPredicate, 9, // Predicate_load
/*511882*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*511884*/      OPC_MoveParent,
/*511885*/      OPC_RecordChild1, // #2 = $src2
/*511886*/      OPC_RecordChild2, // #3 = $src1
/*511887*/      OPC_RecordChild3, // #4 = $src4
/*511888*/      OPC_MoveChild3,
/*511889*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511892*/      OPC_MoveParent,
/*511893*/      OPC_CheckType, MVT::v4i64,
/*511895*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511897*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511900*/      OPC_EmitMergeInputChains1_0,
/*511901*/      OPC_EmitConvertToTarget, 4,
/*511903*/      OPC_EmitNodeXForm, 15, 10, // VPTERNLOG321_imm8
/*511906*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 11, 
                // Src: (X86vpternlog:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511920*/    /*Scope*/ 32|128,1/*160*/, /*->512082*/
/*511922*/      OPC_RecordChild0, // #0 = $src1
/*511923*/      OPC_Scope, 49, /*->511974*/ // 2 children in Scope
/*511925*/        OPC_MoveChild1,
/*511926*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*511929*/        OPC_RecordMemRef,
/*511930*/        OPC_RecordNode, // #1 = 'ld' chained node
/*511931*/        OPC_CheckFoldableChainNode,
/*511932*/        OPC_RecordChild1, // #2 = $src3
/*511933*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*511935*/        OPC_CheckPredicate, 9, // Predicate_load
/*511937*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*511939*/        OPC_MoveParent,
/*511940*/        OPC_RecordChild2, // #3 = $src2
/*511941*/        OPC_RecordChild3, // #4 = $src4
/*511942*/        OPC_MoveChild3,
/*511943*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511946*/        OPC_MoveParent,
/*511947*/        OPC_CheckType, MVT::v4i64,
/*511949*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511951*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*511954*/        OPC_EmitMergeInputChains1_1,
/*511955*/        OPC_EmitConvertToTarget, 4,
/*511957*/        OPC_EmitNodeXForm, 16, 10, // VPTERNLOG132_imm8
/*511960*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 11, 
                  // Src: (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (imm:{ *:[i8] }):$src4))
/*511974*/      /*Scope*/ 106, /*->512081*/
/*511975*/        OPC_RecordChild1, // #1 = $src2
/*511976*/        OPC_RecordChild2, // #2 = $src3
/*511977*/        OPC_RecordChild3, // #3 = $src4
/*511978*/        OPC_MoveChild3,
/*511979*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511982*/        OPC_MoveParent,
/*511983*/        OPC_SwitchType /*6 cases */, 14, MVT::v16i32,// ->512000
/*511986*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511988*/          OPC_EmitConvertToTarget, 3,
/*511990*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrri), 0,
                        MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGDZrri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*512000*/        /*SwitchType*/ 14, MVT::v4i32,// ->512016
/*512002*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512004*/          OPC_EmitConvertToTarget, 3,
/*512006*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rri), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGDZ128rri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*512016*/        /*SwitchType*/ 14, MVT::v8i32,// ->512032
/*512018*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512020*/          OPC_EmitConvertToTarget, 3,
/*512022*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rri), 0,
                        MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGDZ256rri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*512032*/        /*SwitchType*/ 14, MVT::v8i64,// ->512048
/*512034*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512036*/          OPC_EmitConvertToTarget, 3,
/*512038*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                        MVT::v8i64, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*512048*/        /*SwitchType*/ 14, MVT::v2i64,// ->512064
/*512050*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512052*/          OPC_EmitConvertToTarget, 3,
/*512054*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*512064*/        /*SwitchType*/ 14, MVT::v4i64,// ->512080
/*512066*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512068*/          OPC_EmitConvertToTarget, 3,
/*512070*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                        MVT::v4i64, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*512080*/        0, // EndSwitchType
/*512081*/      0, /*End of Scope*/
/*512082*/    0, /*End of Scope*/
/*512083*/  /*SwitchOpcode*/ 109|128,4/*621*/, TARGET_VAL(X86ISD::VSHLD),// ->512708
/*512087*/    OPC_RecordChild0, // #0 = $src1
/*512088*/    OPC_Scope, 86|128,3/*470*/, /*->512561*/ // 2 children in Scope
/*512091*/      OPC_MoveChild1,
/*512092*/      OPC_SwitchOpcode /*3 cases */, 62|128,1/*190*/, TARGET_VAL(ISD::BITCAST),// ->512287
/*512097*/        OPC_MoveChild0,
/*512098*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*512101*/        OPC_RecordMemRef,
/*512102*/        OPC_RecordNode, // #1 = 'ld' chained node
/*512103*/        OPC_CheckFoldableChainNode,
/*512104*/        OPC_RecordChild1, // #2 = $src2
/*512105*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*512107*/        OPC_CheckPredicate, 9, // Predicate_load
/*512109*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*512111*/        OPC_SwitchType /*3 cases */, 56, MVT::v8i64,// ->512170
/*512114*/          OPC_MoveParent,
/*512115*/          OPC_MoveParent,
/*512116*/          OPC_RecordChild2, // #3 = $src3
/*512117*/          OPC_MoveChild2,
/*512118*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*512121*/          OPC_MoveParent,
/*512122*/          OPC_SwitchType /*2 cases */, 21, MVT::v32i16,// ->512146
/*512125*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*512127*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512130*/            OPC_EmitMergeInputChains1_1,
/*512131*/            OPC_EmitConvertToTarget, 3,
/*512133*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDWZrmi:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512146*/          /*SwitchType*/ 21, MVT::v16i32,// ->512169
/*512148*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*512150*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512153*/            OPC_EmitMergeInputChains1_1,
/*512154*/            OPC_EmitConvertToTarget, 3,
/*512156*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512169*/          0, // EndSwitchType
/*512170*/        /*SwitchType*/ 56, MVT::v2i64,// ->512228
/*512172*/          OPC_MoveParent,
/*512173*/          OPC_MoveParent,
/*512174*/          OPC_RecordChild2, // #3 = $src3
/*512175*/          OPC_MoveChild2,
/*512176*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*512179*/          OPC_MoveParent,
/*512180*/          OPC_SwitchType /*2 cases */, 21, MVT::v8i16,// ->512204
/*512183*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512185*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512188*/            OPC_EmitMergeInputChains1_1,
/*512189*/            OPC_EmitConvertToTarget, 3,
/*512191*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDWZ128rmi:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512204*/          /*SwitchType*/ 21, MVT::v4i32,// ->512227
/*512206*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512208*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512211*/            OPC_EmitMergeInputChains1_1,
/*512212*/            OPC_EmitConvertToTarget, 3,
/*512214*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512227*/          0, // EndSwitchType
/*512228*/        /*SwitchType*/ 56, MVT::v4i64,// ->512286
/*512230*/          OPC_MoveParent,
/*512231*/          OPC_MoveParent,
/*512232*/          OPC_RecordChild2, // #3 = $src3
/*512233*/          OPC_MoveChild2,
/*512234*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*512237*/          OPC_MoveParent,
/*512238*/          OPC_SwitchType /*2 cases */, 21, MVT::v16i16,// ->512262
/*512241*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512243*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512246*/            OPC_EmitMergeInputChains1_1,
/*512247*/            OPC_EmitConvertToTarget, 3,
/*512249*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDWZ256rmi:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512262*/          /*SwitchType*/ 21, MVT::v8i32,// ->512285
/*512264*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512266*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512269*/            OPC_EmitMergeInputChains1_1,
/*512270*/            OPC_EmitConvertToTarget, 3,
/*512272*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512285*/          0, // EndSwitchType
/*512286*/        0, // EndSwitchType
/*512287*/      /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::VBROADCAST),// ->512469
/*512291*/        OPC_MoveChild0,
/*512292*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*512295*/        OPC_RecordMemRef,
/*512296*/        OPC_RecordNode, // #1 = 'ld' chained node
/*512297*/        OPC_CheckFoldableChainNode,
/*512298*/        OPC_RecordChild1, // #2 = $src2
/*512299*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*512301*/        OPC_SwitchType /*2 cases */, 81, MVT::i32,// ->512385
/*512304*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*512306*/          OPC_MoveParent,
/*512307*/          OPC_MoveParent,
/*512308*/          OPC_RecordChild2, // #3 = $src3
/*512309*/          OPC_MoveChild2,
/*512310*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*512313*/          OPC_MoveParent,
/*512314*/          OPC_SwitchType /*3 cases */, 21, MVT::v16i32,// ->512338
/*512317*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*512319*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512322*/            OPC_EmitMergeInputChains1_1,
/*512323*/            OPC_EmitConvertToTarget, 3,
/*512325*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512338*/          /*SwitchType*/ 21, MVT::v4i32,// ->512361
/*512340*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512342*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512345*/            OPC_EmitMergeInputChains1_1,
/*512346*/            OPC_EmitConvertToTarget, 3,
/*512348*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512361*/          /*SwitchType*/ 21, MVT::v8i32,// ->512384
/*512363*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512365*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512368*/            OPC_EmitMergeInputChains1_1,
/*512369*/            OPC_EmitConvertToTarget, 3,
/*512371*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512384*/          0, // EndSwitchType
/*512385*/        /*SwitchType*/ 81, MVT::i64,// ->512468
/*512387*/          OPC_CheckPredicate, 9, // Predicate_load
/*512389*/          OPC_MoveParent,
/*512390*/          OPC_MoveParent,
/*512391*/          OPC_RecordChild2, // #3 = $src3
/*512392*/          OPC_MoveChild2,
/*512393*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*512396*/          OPC_MoveParent,
/*512397*/          OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->512421
/*512400*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*512402*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512405*/            OPC_EmitMergeInputChains1_1,
/*512406*/            OPC_EmitConvertToTarget, 3,
/*512408*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512421*/          /*SwitchType*/ 21, MVT::v2i64,// ->512444
/*512423*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512425*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512428*/            OPC_EmitMergeInputChains1_1,
/*512429*/            OPC_EmitConvertToTarget, 3,
/*512431*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512444*/          /*SwitchType*/ 21, MVT::v4i64,// ->512467
/*512446*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512448*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512451*/            OPC_EmitMergeInputChains1_1,
/*512452*/            OPC_EmitConvertToTarget, 3,
/*512454*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHLDQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512467*/          0, // EndSwitchType
/*512468*/        0, // EndSwitchType
/*512469*/      /*SwitchOpcode*/ 88, TARGET_VAL(ISD::LOAD),// ->512560
/*512472*/        OPC_RecordMemRef,
/*512473*/        OPC_RecordNode, // #1 = 'ld' chained node
/*512474*/        OPC_CheckFoldableChainNode,
/*512475*/        OPC_RecordChild1, // #2 = $src2
/*512476*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*512478*/        OPC_CheckPredicate, 9, // Predicate_load
/*512480*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*512482*/        OPC_MoveParent,
/*512483*/        OPC_RecordChild2, // #3 = $src3
/*512484*/        OPC_MoveChild2,
/*512485*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*512488*/        OPC_MoveParent,
/*512489*/        OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->512513
/*512492*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*512494*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512497*/          OPC_EmitMergeInputChains1_1,
/*512498*/          OPC_EmitConvertToTarget, 3,
/*512500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512513*/        /*SwitchType*/ 21, MVT::v2i64,// ->512536
/*512515*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512517*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512520*/          OPC_EmitMergeInputChains1_1,
/*512521*/          OPC_EmitConvertToTarget, 3,
/*512523*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512536*/        /*SwitchType*/ 21, MVT::v4i64,// ->512559
/*512538*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512540*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512543*/          OPC_EmitMergeInputChains1_1,
/*512544*/          OPC_EmitConvertToTarget, 3,
/*512546*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512559*/        0, // EndSwitchType
/*512560*/      0, // EndSwitchOpcode
/*512561*/    /*Scope*/ 16|128,1/*144*/, /*->512707*/
/*512563*/      OPC_RecordChild1, // #1 = $src2
/*512564*/      OPC_RecordChild2, // #2 = $src3
/*512565*/      OPC_MoveChild2,
/*512566*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*512569*/      OPC_MoveParent,
/*512570*/      OPC_SwitchType /*9 cases */, 13, MVT::v32i16,// ->512586
/*512573*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*512575*/        OPC_EmitConvertToTarget, 2,
/*512577*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrri), 0,
                      MVT::v32i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDWZrri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*512586*/      /*SwitchType*/ 13, MVT::v8i16,// ->512601
/*512588*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512590*/        OPC_EmitConvertToTarget, 2,
/*512592*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rri), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDWZ128rri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*512601*/      /*SwitchType*/ 13, MVT::v16i16,// ->512616
/*512603*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512605*/        OPC_EmitConvertToTarget, 2,
/*512607*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rri), 0,
                      MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDWZ256rri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*512616*/      /*SwitchType*/ 13, MVT::v16i32,// ->512631
/*512618*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*512620*/        OPC_EmitConvertToTarget, 2,
/*512622*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrri), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDDZrri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*512631*/      /*SwitchType*/ 13, MVT::v4i32,// ->512646
/*512633*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512635*/        OPC_EmitConvertToTarget, 2,
/*512637*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDDZ128rri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*512646*/      /*SwitchType*/ 13, MVT::v8i32,// ->512661
/*512648*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512650*/        OPC_EmitConvertToTarget, 2,
/*512652*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rri), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDDZ256rri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*512661*/      /*SwitchType*/ 13, MVT::v8i64,// ->512676
/*512663*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*512665*/        OPC_EmitConvertToTarget, 2,
/*512667*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrri), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*512676*/      /*SwitchType*/ 13, MVT::v2i64,// ->512691
/*512678*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512680*/        OPC_EmitConvertToTarget, 2,
/*512682*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rri), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*512691*/      /*SwitchType*/ 13, MVT::v4i64,// ->512706
/*512693*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512695*/        OPC_EmitConvertToTarget, 2,
/*512697*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rri), 0,
                      MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*512706*/      0, // EndSwitchType
/*512707*/    0, /*End of Scope*/
/*512708*/  /*SwitchOpcode*/ 109|128,4/*621*/, TARGET_VAL(X86ISD::VSHRD),// ->513333
/*512712*/    OPC_RecordChild0, // #0 = $src1
/*512713*/    OPC_Scope, 86|128,3/*470*/, /*->513186*/ // 2 children in Scope
/*512716*/      OPC_MoveChild1,
/*512717*/      OPC_SwitchOpcode /*3 cases */, 62|128,1/*190*/, TARGET_VAL(ISD::BITCAST),// ->512912
/*512722*/        OPC_MoveChild0,
/*512723*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*512726*/        OPC_RecordMemRef,
/*512727*/        OPC_RecordNode, // #1 = 'ld' chained node
/*512728*/        OPC_CheckFoldableChainNode,
/*512729*/        OPC_RecordChild1, // #2 = $src2
/*512730*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*512732*/        OPC_CheckPredicate, 9, // Predicate_load
/*512734*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*512736*/        OPC_SwitchType /*3 cases */, 56, MVT::v8i64,// ->512795
/*512739*/          OPC_MoveParent,
/*512740*/          OPC_MoveParent,
/*512741*/          OPC_RecordChild2, // #3 = $src3
/*512742*/          OPC_MoveChild2,
/*512743*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*512746*/          OPC_MoveParent,
/*512747*/          OPC_SwitchType /*2 cases */, 21, MVT::v32i16,// ->512771
/*512750*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*512752*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512755*/            OPC_EmitMergeInputChains1_1,
/*512756*/            OPC_EmitConvertToTarget, 3,
/*512758*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDWZrmi:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512771*/          /*SwitchType*/ 21, MVT::v16i32,// ->512794
/*512773*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*512775*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512778*/            OPC_EmitMergeInputChains1_1,
/*512779*/            OPC_EmitConvertToTarget, 3,
/*512781*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512794*/          0, // EndSwitchType
/*512795*/        /*SwitchType*/ 56, MVT::v2i64,// ->512853
/*512797*/          OPC_MoveParent,
/*512798*/          OPC_MoveParent,
/*512799*/          OPC_RecordChild2, // #3 = $src3
/*512800*/          OPC_MoveChild2,
/*512801*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*512804*/          OPC_MoveParent,
/*512805*/          OPC_SwitchType /*2 cases */, 21, MVT::v8i16,// ->512829
/*512808*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512810*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512813*/            OPC_EmitMergeInputChains1_1,
/*512814*/            OPC_EmitConvertToTarget, 3,
/*512816*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDWZ128rmi:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512829*/          /*SwitchType*/ 21, MVT::v4i32,// ->512852
/*512831*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512833*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512836*/            OPC_EmitMergeInputChains1_1,
/*512837*/            OPC_EmitConvertToTarget, 3,
/*512839*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512852*/          0, // EndSwitchType
/*512853*/        /*SwitchType*/ 56, MVT::v4i64,// ->512911
/*512855*/          OPC_MoveParent,
/*512856*/          OPC_MoveParent,
/*512857*/          OPC_RecordChild2, // #3 = $src3
/*512858*/          OPC_MoveChild2,
/*512859*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*512862*/          OPC_MoveParent,
/*512863*/          OPC_SwitchType /*2 cases */, 21, MVT::v16i16,// ->512887
/*512866*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512868*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512871*/            OPC_EmitMergeInputChains1_1,
/*512872*/            OPC_EmitConvertToTarget, 3,
/*512874*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDWZ256rmi:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512887*/          /*SwitchType*/ 21, MVT::v8i32,// ->512910
/*512889*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512891*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512894*/            OPC_EmitMergeInputChains1_1,
/*512895*/            OPC_EmitConvertToTarget, 3,
/*512897*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512910*/          0, // EndSwitchType
/*512911*/        0, // EndSwitchType
/*512912*/      /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::VBROADCAST),// ->513094
/*512916*/        OPC_MoveChild0,
/*512917*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*512920*/        OPC_RecordMemRef,
/*512921*/        OPC_RecordNode, // #1 = 'ld' chained node
/*512922*/        OPC_CheckFoldableChainNode,
/*512923*/        OPC_RecordChild1, // #2 = $src2
/*512924*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*512926*/        OPC_SwitchType /*2 cases */, 81, MVT::i32,// ->513010
/*512929*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*512931*/          OPC_MoveParent,
/*512932*/          OPC_MoveParent,
/*512933*/          OPC_RecordChild2, // #3 = $src3
/*512934*/          OPC_MoveChild2,
/*512935*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*512938*/          OPC_MoveParent,
/*512939*/          OPC_SwitchType /*3 cases */, 21, MVT::v16i32,// ->512963
/*512942*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*512944*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512947*/            OPC_EmitMergeInputChains1_1,
/*512948*/            OPC_EmitConvertToTarget, 3,
/*512950*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512963*/          /*SwitchType*/ 21, MVT::v4i32,// ->512986
/*512965*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512967*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512970*/            OPC_EmitMergeInputChains1_1,
/*512971*/            OPC_EmitConvertToTarget, 3,
/*512973*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*512986*/          /*SwitchType*/ 21, MVT::v8i32,// ->513009
/*512988*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*512990*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*512993*/            OPC_EmitMergeInputChains1_1,
/*512994*/            OPC_EmitConvertToTarget, 3,
/*512996*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*513009*/          0, // EndSwitchType
/*513010*/        /*SwitchType*/ 81, MVT::i64,// ->513093
/*513012*/          OPC_CheckPredicate, 9, // Predicate_load
/*513014*/          OPC_MoveParent,
/*513015*/          OPC_MoveParent,
/*513016*/          OPC_RecordChild2, // #3 = $src3
/*513017*/          OPC_MoveChild2,
/*513018*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*513021*/          OPC_MoveParent,
/*513022*/          OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->513046
/*513025*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513027*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*513030*/            OPC_EmitMergeInputChains1_1,
/*513031*/            OPC_EmitConvertToTarget, 3,
/*513033*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*513046*/          /*SwitchType*/ 21, MVT::v2i64,// ->513069
/*513048*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513050*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*513053*/            OPC_EmitMergeInputChains1_1,
/*513054*/            OPC_EmitConvertToTarget, 3,
/*513056*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*513069*/          /*SwitchType*/ 21, MVT::v4i64,// ->513092
/*513071*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513073*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*513076*/            OPC_EmitMergeInputChains1_1,
/*513077*/            OPC_EmitConvertToTarget, 3,
/*513079*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                      // Dst: (VPSHRDQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*513092*/          0, // EndSwitchType
/*513093*/        0, // EndSwitchType
/*513094*/      /*SwitchOpcode*/ 88, TARGET_VAL(ISD::LOAD),// ->513185
/*513097*/        OPC_RecordMemRef,
/*513098*/        OPC_RecordNode, // #1 = 'ld' chained node
/*513099*/        OPC_CheckFoldableChainNode,
/*513100*/        OPC_RecordChild1, // #2 = $src2
/*513101*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*513103*/        OPC_CheckPredicate, 9, // Predicate_load
/*513105*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*513107*/        OPC_MoveParent,
/*513108*/        OPC_RecordChild2, // #3 = $src3
/*513109*/        OPC_MoveChild2,
/*513110*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*513113*/        OPC_MoveParent,
/*513114*/        OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->513138
/*513117*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513119*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*513122*/          OPC_EmitMergeInputChains1_1,
/*513123*/          OPC_EmitConvertToTarget, 3,
/*513125*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*513138*/        /*SwitchType*/ 21, MVT::v2i64,// ->513161
/*513140*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513142*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*513145*/          OPC_EmitMergeInputChains1_1,
/*513146*/          OPC_EmitConvertToTarget, 3,
/*513148*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*513161*/        /*SwitchType*/ 21, MVT::v4i64,// ->513184
/*513163*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513165*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*513168*/          OPC_EmitMergeInputChains1_1,
/*513169*/          OPC_EmitConvertToTarget, 3,
/*513171*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*513184*/        0, // EndSwitchType
/*513185*/      0, // EndSwitchOpcode
/*513186*/    /*Scope*/ 16|128,1/*144*/, /*->513332*/
/*513188*/      OPC_RecordChild1, // #1 = $src2
/*513189*/      OPC_RecordChild2, // #2 = $src3
/*513190*/      OPC_MoveChild2,
/*513191*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*513194*/      OPC_MoveParent,
/*513195*/      OPC_SwitchType /*9 cases */, 13, MVT::v32i16,// ->513211
/*513198*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513200*/        OPC_EmitConvertToTarget, 2,
/*513202*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrri), 0,
                      MVT::v32i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDWZrri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*513211*/      /*SwitchType*/ 13, MVT::v8i16,// ->513226
/*513213*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513215*/        OPC_EmitConvertToTarget, 2,
/*513217*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rri), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDWZ128rri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*513226*/      /*SwitchType*/ 13, MVT::v16i16,// ->513241
/*513228*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513230*/        OPC_EmitConvertToTarget, 2,
/*513232*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rri), 0,
                      MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDWZ256rri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (imm:{ *:[i8] }):$src3)
/*513241*/      /*SwitchType*/ 13, MVT::v16i32,// ->513256
/*513243*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513245*/        OPC_EmitConvertToTarget, 2,
/*513247*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrri), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDDZrri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*513256*/      /*SwitchType*/ 13, MVT::v4i32,// ->513271
/*513258*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513260*/        OPC_EmitConvertToTarget, 2,
/*513262*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDDZ128rri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*513271*/      /*SwitchType*/ 13, MVT::v8i32,// ->513286
/*513273*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513275*/        OPC_EmitConvertToTarget, 2,
/*513277*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rri), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDDZ256rri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*513286*/      /*SwitchType*/ 13, MVT::v8i64,// ->513301
/*513288*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513290*/        OPC_EmitConvertToTarget, 2,
/*513292*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrri), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*513301*/      /*SwitchType*/ 13, MVT::v2i64,// ->513316
/*513303*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513305*/        OPC_EmitConvertToTarget, 2,
/*513307*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rri), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*513316*/      /*SwitchType*/ 13, MVT::v4i64,// ->513331
/*513318*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513320*/        OPC_EmitConvertToTarget, 2,
/*513322*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rri), 0,
                      MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*513331*/      0, // EndSwitchType
/*513332*/    0, /*End of Scope*/
/*513333*/  /*SwitchOpcode*/ 36|128,40/*5156*/, TARGET_VAL(ISD::MLOAD),// ->518493
/*513337*/    OPC_RecordMemRef,
/*513338*/    OPC_RecordNode, // #0 = 'masked_load' chained node
/*513339*/    OPC_RecordChild1, // #1 = $ptr
/*513340*/    OPC_Scope, 99|128,23/*3043*/, /*->516386*/ // 3 children in Scope
/*513343*/      OPC_RecordChild2, // #2 = $mask
/*513344*/      OPC_Scope, 55|128,1/*183*/, /*->513530*/ // 10 children in Scope
/*513347*/        OPC_CheckChild2Type, MVT::v4i64,
/*513349*/        OPC_Scope, 108, /*->513459*/ // 2 children in Scope
/*513351*/          OPC_MoveChild3,
/*513352*/          OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->513410
/*513356*/            OPC_MoveChild0,
/*513357*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*513360*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*513362*/            OPC_CheckType, MVT::v8i32,
/*513364*/            OPC_MoveParent,
/*513365*/            OPC_MoveParent,
/*513366*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*513368*/            OPC_CheckType, MVT::v4i64,
/*513370*/            OPC_Scope, 18, /*->513390*/ // 2 children in Scope
/*513372*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*513374*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513377*/              OPC_EmitMergeInputChains1_0,
/*513378*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>> - Complexity = 29
                        // Dst: (VMASKMOVPDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513390*/            /*Scope*/ 18, /*->513409*/
/*513391*/              OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*513393*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513396*/              OPC_EmitMergeInputChains1_0,
/*513397*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>> - Complexity = 29
                        // Dst: (VPMASKMOVQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513409*/            0, /*End of Scope*/
/*513410*/          /*SwitchOpcode*/ 45, TARGET_VAL(ISD::UNDEF),// ->513458
/*513413*/            OPC_MoveParent,
/*513414*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*513416*/            OPC_CheckType, MVT::v4i64,
/*513418*/            OPC_Scope, 18, /*->513438*/ // 2 children in Scope
/*513420*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*513422*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513425*/              OPC_EmitMergeInputChains1_0,
/*513426*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, (undef:{ *:[v4i64] }))<<P:Predicate_X86mload>> - Complexity = 25
                        // Dst: (VMASKMOVPDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513438*/            /*Scope*/ 18, /*->513457*/
/*513439*/              OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*513441*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513444*/              OPC_EmitMergeInputChains1_0,
/*513445*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, (undef:{ *:[v4i64] }))<<P:Predicate_X86mload>> - Complexity = 25
                        // Dst: (VPMASKMOVQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513457*/            0, /*End of Scope*/
/*513458*/          0, // EndSwitchOpcode
/*513459*/        /*Scope*/ 69, /*->513529*/
/*513460*/          OPC_RecordChild3, // #3 = $src0
/*513461*/          OPC_CheckPredicate, 98, // Predicate_X86mload
/*513463*/          OPC_CheckType, MVT::v4i64,
/*513465*/          OPC_Scope, 30, /*->513497*/ // 2 children in Scope
/*513467*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*513469*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*513472*/            OPC_EmitMergeInputChains1_0,
/*513473*/            OPC_EmitNode1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*513485*/            OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPDYrr), 0,
                          MVT::v4i64, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*513494*/            OPC_CompleteMatch, 1, 10, 
                       // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4i64] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                       // Dst: (VBLENDVPDYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src0, (VMASKMOVPDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr), VR256:{ *:[v4i64] }:$mask)
/*513497*/          /*Scope*/ 30, /*->513528*/
/*513498*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*513500*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*513503*/            OPC_EmitMergeInputChains1_0,
/*513504*/            OPC_EmitNode1, TARGET_VAL(X86::VPMASKMOVQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*513516*/            OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPDYrr), 0,
                          MVT::v4i64, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*513525*/            OPC_CompleteMatch, 1, 10, 
                       // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4i64] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                       // Dst: (VBLENDVPDYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src0, (VPMASKMOVQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr), VR256:{ *:[v4i64] }:$mask)
/*513528*/          0, /*End of Scope*/
/*513529*/        0, /*End of Scope*/
/*513530*/      /*Scope*/ 55|128,1/*183*/, /*->513715*/
/*513532*/        OPC_CheckChild2Type, MVT::v2i64,
/*513534*/        OPC_Scope, 108, /*->513644*/ // 2 children in Scope
/*513536*/          OPC_MoveChild3,
/*513537*/          OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::BITCAST),// ->513595
/*513541*/            OPC_MoveChild0,
/*513542*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*513545*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*513547*/            OPC_CheckType, MVT::v4i32,
/*513549*/            OPC_MoveParent,
/*513550*/            OPC_MoveParent,
/*513551*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*513553*/            OPC_CheckType, MVT::v2i64,
/*513555*/            OPC_Scope, 18, /*->513575*/ // 2 children in Scope
/*513557*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*513559*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513562*/              OPC_EmitMergeInputChains1_0,
/*513563*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>> - Complexity = 29
                        // Dst: (VMASKMOVPDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513575*/            /*Scope*/ 18, /*->513594*/
/*513576*/              OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*513578*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513581*/              OPC_EmitMergeInputChains1_0,
/*513582*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>> - Complexity = 29
                        // Dst: (VPMASKMOVQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513594*/            0, /*End of Scope*/
/*513595*/          /*SwitchOpcode*/ 45, TARGET_VAL(ISD::UNDEF),// ->513643
/*513598*/            OPC_MoveParent,
/*513599*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*513601*/            OPC_CheckType, MVT::v2i64,
/*513603*/            OPC_Scope, 18, /*->513623*/ // 2 children in Scope
/*513605*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*513607*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513610*/              OPC_EmitMergeInputChains1_0,
/*513611*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, (undef:{ *:[v2i64] }))<<P:Predicate_X86mload>> - Complexity = 25
                        // Dst: (VMASKMOVPDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513623*/            /*Scope*/ 18, /*->513642*/
/*513624*/              OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*513626*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513629*/              OPC_EmitMergeInputChains1_0,
/*513630*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, (undef:{ *:[v2i64] }))<<P:Predicate_X86mload>> - Complexity = 25
                        // Dst: (VPMASKMOVQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513642*/            0, /*End of Scope*/
/*513643*/          0, // EndSwitchOpcode
/*513644*/        /*Scope*/ 69, /*->513714*/
/*513645*/          OPC_RecordChild3, // #3 = $src0
/*513646*/          OPC_CheckPredicate, 98, // Predicate_X86mload
/*513648*/          OPC_CheckType, MVT::v2i64,
/*513650*/          OPC_Scope, 30, /*->513682*/ // 2 children in Scope
/*513652*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*513654*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*513657*/            OPC_EmitMergeInputChains1_0,
/*513658*/            OPC_EmitNode1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*513670*/            OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPDrr), 0,
                          MVT::v2i64, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*513679*/            OPC_CompleteMatch, 1, 10, 
                       // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2i64] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                       // Dst: (VBLENDVPDrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src0, (VMASKMOVPDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr), VR128:{ *:[v2i64] }:$mask)
/*513682*/          /*Scope*/ 30, /*->513713*/
/*513683*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*513685*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*513688*/            OPC_EmitMergeInputChains1_0,
/*513689*/            OPC_EmitNode1, TARGET_VAL(X86::VPMASKMOVQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*513701*/            OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPDrr), 0,
                          MVT::v2i64, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*513710*/            OPC_CompleteMatch, 1, 10, 
                       // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2i64] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                       // Dst: (VBLENDVPDrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src0, (VPMASKMOVQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr), VR128:{ *:[v2i64] }:$mask)
/*513713*/          0, /*End of Scope*/
/*513714*/        0, /*End of Scope*/
/*513715*/      /*Scope*/ 85|128,4/*597*/, /*->514314*/
/*513717*/        OPC_CheckChild2Type, MVT::v8i1,
/*513719*/        OPC_Scope, 15|128,3/*399*/, /*->514121*/ // 2 children in Scope
/*513722*/          OPC_MoveChild3,
/*513723*/          OPC_SwitchOpcode /*3 cases */, 3|128,1/*131*/, TARGET_VAL(ISD::BITCAST),// ->513859
/*513728*/            OPC_MoveChild0,
/*513729*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*513732*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*513734*/            OPC_SwitchType /*2 cases */, 71, MVT::v16i32,// ->513808
/*513737*/              OPC_MoveParent,
/*513738*/              OPC_MoveParent,
/*513739*/              OPC_CheckType, MVT::v8i64,
/*513741*/              OPC_Scope, 22, /*->513765*/ // 3 children in Scope
/*513743*/                OPC_CheckPredicate, 98, // Predicate_X86mload
/*513745*/                OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*513747*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513749*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513752*/                OPC_EmitMergeInputChains1_0,
/*513753*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 29
                          // Dst: (VMOVDQA64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513765*/              /*Scope*/ 20, /*->513786*/
/*513766*/                OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*513768*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513770*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513773*/                OPC_EmitMergeInputChains1_0,
/*513774*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                          // Dst: (VMOVDQU64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513786*/              /*Scope*/ 20, /*->513807*/
/*513787*/                OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*513789*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513791*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*513794*/                OPC_EmitMergeInputChains1_0,
/*513795*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i64] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*513807*/              0, /*End of Scope*/
/*513808*/            /*SwitchType*/ 48, MVT::v4i32,// ->513858
/*513810*/              OPC_MoveParent,
/*513811*/              OPC_MoveParent,
/*513812*/              OPC_CheckType, MVT::v8i16,
/*513814*/              OPC_Scope, 20, /*->513836*/ // 2 children in Scope
/*513816*/                OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*513818*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*513820*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513823*/                OPC_EmitMergeInputChains1_0,
/*513824*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i16] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                          // Dst: (VMOVDQU16Z128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513836*/              /*Scope*/ 20, /*->513857*/
/*513837*/                OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*513839*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513841*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*513844*/                OPC_EmitMergeInputChains1_0,
/*513845*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i16] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i16] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*513857*/              0, /*End of Scope*/
/*513858*/            0, // EndSwitchType
/*513859*/          /*SwitchOpcode*/ 72, TARGET_VAL(ISD::BUILD_VECTOR),// ->513934
/*513862*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*513864*/            OPC_MoveParent,
/*513865*/            OPC_CheckType, MVT::v8i32,
/*513867*/            OPC_Scope, 22, /*->513891*/ // 3 children in Scope
/*513869*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*513871*/              OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*513873*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513875*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513878*/              OPC_EmitMergeInputChains1_0,
/*513879*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 26
                        // Dst: (VMOVDQA32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513891*/            /*Scope*/ 20, /*->513912*/
/*513892*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*513894*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513896*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513899*/              OPC_EmitMergeInputChains1_0,
/*513900*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_masked_load_unaligned>> - Complexity = 26
                        // Dst: (VMOVDQU32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513912*/            /*Scope*/ 20, /*->513933*/
/*513913*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*513915*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513917*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*513920*/              OPC_EmitMergeInputChains1_0,
/*513921*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_X86mExpandingLoad>> - Complexity = 26
                        // Dst: (VPEXPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*513933*/            0, /*End of Scope*/
/*513934*/          /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(ISD::UNDEF),// ->514120
/*513938*/            OPC_MoveParent,
/*513939*/            OPC_Scope, 48, /*->513989*/ // 3 children in Scope
/*513941*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*513943*/              OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->513966
/*513946*/                OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*513948*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513950*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513953*/                OPC_EmitMergeInputChains1_0,
/*513954*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i32] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 25
                          // Dst: (VMOVDQA32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513966*/              /*SwitchType*/ 20, MVT::v8i64,// ->513988
/*513968*/                OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*513970*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513972*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*513975*/                OPC_EmitMergeInputChains1_0,
/*513976*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i64] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 25
                          // Dst: (VMOVDQA64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*513988*/              0, // EndSwitchType
/*513989*/            /*Scope*/ 64, /*->514054*/
/*513990*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*513992*/              OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->514013
/*513995*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*513997*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514000*/                OPC_EmitMergeInputChains1_0,
/*514001*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i16] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i16] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVDQU16Z128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514013*/              /*SwitchType*/ 18, MVT::v8i32,// ->514033
/*514015*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514017*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514020*/                OPC_EmitMergeInputChains1_0,
/*514021*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i32] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVDQU32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514033*/              /*SwitchType*/ 18, MVT::v8i64,// ->514053
/*514035*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514037*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514040*/                OPC_EmitMergeInputChains1_0,
/*514041*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i64] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVDQU64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514053*/              0, // EndSwitchType
/*514054*/            /*Scope*/ 64, /*->514119*/
/*514055*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*514057*/              OPC_SwitchType /*3 cases */, 18, MVT::v8i32,// ->514078
/*514060*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514062*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*514065*/                OPC_EmitMergeInputChains1_0,
/*514066*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VPEXPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514078*/              /*SwitchType*/ 18, MVT::v8i64,// ->514098
/*514080*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514082*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*514085*/                OPC_EmitMergeInputChains1_0,
/*514086*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i64] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VPEXPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514098*/              /*SwitchType*/ 18, MVT::v8i16,// ->514118
/*514100*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*514102*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*514105*/                OPC_EmitMergeInputChains1_0,
/*514106*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8i16] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i16] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VPEXPANDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514118*/              0, // EndSwitchType
/*514119*/            0, /*End of Scope*/
/*514120*/          0, // EndSwitchOpcode
/*514121*/        /*Scope*/ 62|128,1/*190*/, /*->514313*/
/*514123*/          OPC_RecordChild3, // #3 = $src0
/*514124*/          OPC_Scope, 50, /*->514176*/ // 3 children in Scope
/*514126*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*514128*/            OPC_SwitchType /*2 cases */, 21, MVT::v8i32,// ->514152
/*514131*/              OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*514133*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514135*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*514138*/              OPC_EmitMergeInputChains1_0,
/*514139*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 22
                        // Dst: (VMOVDQA32Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514152*/            /*SwitchType*/ 21, MVT::v8i64,// ->514175
/*514154*/              OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*514156*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514158*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*514161*/              OPC_EmitMergeInputChains1_0,
/*514162*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 22
                        // Dst: (VMOVDQA64Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514175*/            0, // EndSwitchType
/*514176*/          /*Scope*/ 67, /*->514244*/
/*514177*/            OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*514179*/            OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->514201
/*514182*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*514184*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*514187*/              OPC_EmitMergeInputChains1_0,
/*514188*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8i16] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVDQU16Z128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514201*/            /*SwitchType*/ 19, MVT::v8i32,// ->514222
/*514203*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514205*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*514208*/              OPC_EmitMergeInputChains1_0,
/*514209*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVDQU32Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514222*/            /*SwitchType*/ 19, MVT::v8i64,// ->514243
/*514224*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514226*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*514229*/              OPC_EmitMergeInputChains1_0,
/*514230*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVDQU64Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514243*/            0, // EndSwitchType
/*514244*/          /*Scope*/ 67, /*->514312*/
/*514245*/            OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*514247*/            OPC_SwitchType /*3 cases */, 19, MVT::v8i32,// ->514269
/*514250*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514252*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*514255*/              OPC_EmitMergeInputChains1_0,
/*514256*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VPEXPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514269*/            /*SwitchType*/ 19, MVT::v8i64,// ->514290
/*514271*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514273*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*514276*/              OPC_EmitMergeInputChains1_0,
/*514277*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8i64] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VPEXPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514290*/            /*SwitchType*/ 19, MVT::v8i16,// ->514311
/*514292*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*514294*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*514297*/              OPC_EmitMergeInputChains1_0,
/*514298*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8i16] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VPEXPANDWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514311*/            0, // EndSwitchType
/*514312*/          0, /*End of Scope*/
/*514313*/        0, /*End of Scope*/
/*514314*/      /*Scope*/ 78|128,3/*462*/, /*->514778*/
/*514316*/        OPC_CheckChild2Type, MVT::v4i1,
/*514318*/        OPC_Scope, 50|128,2/*306*/, /*->514627*/ // 2 children in Scope
/*514321*/          OPC_MoveChild3,
/*514322*/          OPC_SwitchOpcode /*3 cases */, 79, TARGET_VAL(ISD::BITCAST),// ->514405
/*514326*/            OPC_MoveChild0,
/*514327*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*514330*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*514332*/            OPC_CheckType, MVT::v8i32,
/*514334*/            OPC_MoveParent,
/*514335*/            OPC_MoveParent,
/*514336*/            OPC_CheckType, MVT::v4i64,
/*514338*/            OPC_Scope, 22, /*->514362*/ // 3 children in Scope
/*514340*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*514342*/              OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*514344*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514346*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514349*/              OPC_EmitMergeInputChains1_0,
/*514350*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 29
                        // Dst: (VMOVDQA64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514362*/            /*Scope*/ 20, /*->514383*/
/*514363*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*514365*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514367*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514370*/              OPC_EmitMergeInputChains1_0,
/*514371*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                        // Dst: (VMOVDQU64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514383*/            /*Scope*/ 20, /*->514404*/
/*514384*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*514386*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514388*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*514391*/              OPC_EmitMergeInputChains1_0,
/*514392*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                        // Dst: (VPEXPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514404*/            0, /*End of Scope*/
/*514405*/          /*SwitchOpcode*/ 72, TARGET_VAL(ISD::BUILD_VECTOR),// ->514480
/*514408*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*514410*/            OPC_MoveParent,
/*514411*/            OPC_CheckType, MVT::v4i32,
/*514413*/            OPC_Scope, 22, /*->514437*/ // 3 children in Scope
/*514415*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*514417*/              OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*514419*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514421*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514424*/              OPC_EmitMergeInputChains1_0,
/*514425*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 26
                        // Dst: (VMOVDQA32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514437*/            /*Scope*/ 20, /*->514458*/
/*514438*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*514440*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514442*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514445*/              OPC_EmitMergeInputChains1_0,
/*514446*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_masked_load_unaligned>> - Complexity = 26
                        // Dst: (VMOVDQU32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514458*/            /*Scope*/ 20, /*->514479*/
/*514459*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*514461*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514463*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*514466*/              OPC_EmitMergeInputChains1_0,
/*514467*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_X86mExpandingLoad>> - Complexity = 26
                        // Dst: (VPEXPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514479*/            0, /*End of Scope*/
/*514480*/          /*SwitchOpcode*/ 14|128,1/*142*/, TARGET_VAL(ISD::UNDEF),// ->514626
/*514484*/            OPC_MoveParent,
/*514485*/            OPC_Scope, 48, /*->514535*/ // 3 children in Scope
/*514487*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*514489*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->514512
/*514492*/                OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*514494*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514496*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514499*/                OPC_EmitMergeInputChains1_0,
/*514500*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i32] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 25
                          // Dst: (VMOVDQA32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514512*/              /*SwitchType*/ 20, MVT::v4i64,// ->514534
/*514514*/                OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*514516*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514518*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514521*/                OPC_EmitMergeInputChains1_0,
/*514522*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i64] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 25
                          // Dst: (VMOVDQA64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514534*/              0, // EndSwitchType
/*514535*/            /*Scope*/ 44, /*->514580*/
/*514536*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*514538*/              OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->514559
/*514541*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514543*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514546*/                OPC_EmitMergeInputChains1_0,
/*514547*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i32] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVDQU32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514559*/              /*SwitchType*/ 18, MVT::v4i64,// ->514579
/*514561*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514563*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514566*/                OPC_EmitMergeInputChains1_0,
/*514567*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i64] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVDQU64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514579*/              0, // EndSwitchType
/*514580*/            /*Scope*/ 44, /*->514625*/
/*514581*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*514583*/              OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->514604
/*514586*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514588*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*514591*/                OPC_EmitMergeInputChains1_0,
/*514592*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VPEXPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514604*/              /*SwitchType*/ 18, MVT::v4i64,// ->514624
/*514606*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514608*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*514611*/                OPC_EmitMergeInputChains1_0,
/*514612*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VPEXPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514624*/              0, // EndSwitchType
/*514625*/            0, /*End of Scope*/
/*514626*/          0, // EndSwitchOpcode
/*514627*/        /*Scope*/ 20|128,1/*148*/, /*->514777*/
/*514629*/          OPC_RecordChild3, // #3 = $src0
/*514630*/          OPC_Scope, 50, /*->514682*/ // 3 children in Scope
/*514632*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*514634*/            OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->514658
/*514637*/              OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*514639*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514641*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*514644*/              OPC_EmitMergeInputChains1_0,
/*514645*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 22
                        // Dst: (VMOVDQA32Z128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514658*/            /*SwitchType*/ 21, MVT::v4i64,// ->514681
/*514660*/              OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*514662*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514664*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*514667*/              OPC_EmitMergeInputChains1_0,
/*514668*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 22
                        // Dst: (VMOVDQA64Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514681*/            0, // EndSwitchType
/*514682*/          /*Scope*/ 46, /*->514729*/
/*514683*/            OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*514685*/            OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->514707
/*514688*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514690*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*514693*/              OPC_EmitMergeInputChains1_0,
/*514694*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVDQU32Z128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514707*/            /*SwitchType*/ 19, MVT::v4i64,// ->514728
/*514709*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514711*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*514714*/              OPC_EmitMergeInputChains1_0,
/*514715*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVDQU64Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514728*/            0, // EndSwitchType
/*514729*/          /*Scope*/ 46, /*->514776*/
/*514730*/            OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*514732*/            OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->514754
/*514735*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514737*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*514740*/              OPC_EmitMergeInputChains1_0,
/*514741*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VPEXPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514754*/            /*SwitchType*/ 19, MVT::v4i64,// ->514775
/*514756*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514758*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*514761*/              OPC_EmitMergeInputChains1_0,
/*514762*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4i64] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VPEXPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514775*/            0, // EndSwitchType
/*514776*/          0, /*End of Scope*/
/*514777*/        0, /*End of Scope*/
/*514778*/      /*Scope*/ 110|128,1/*238*/, /*->515018*/
/*514780*/        OPC_CheckChild2Type, MVT::v2i1,
/*514782*/        OPC_Scope, 30|128,1/*158*/, /*->514943*/ // 2 children in Scope
/*514785*/          OPC_MoveChild3,
/*514786*/          OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::BITCAST),// ->514869
/*514790*/            OPC_MoveChild0,
/*514791*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*514794*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*514796*/            OPC_CheckType, MVT::v4i32,
/*514798*/            OPC_MoveParent,
/*514799*/            OPC_MoveParent,
/*514800*/            OPC_CheckType, MVT::v2i64,
/*514802*/            OPC_Scope, 22, /*->514826*/ // 3 children in Scope
/*514804*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*514806*/              OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*514808*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514810*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514813*/              OPC_EmitMergeInputChains1_0,
/*514814*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 29
                        // Dst: (VMOVDQA64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514826*/            /*Scope*/ 20, /*->514847*/
/*514827*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*514829*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514831*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514834*/              OPC_EmitMergeInputChains1_0,
/*514835*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                        // Dst: (VMOVDQU64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514847*/            /*Scope*/ 20, /*->514868*/
/*514848*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*514850*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514852*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*514855*/              OPC_EmitMergeInputChains1_0,
/*514856*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$src, VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                        // Dst: (VPEXPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514868*/            0, /*End of Scope*/
/*514869*/          /*SwitchOpcode*/ 70, TARGET_VAL(ISD::UNDEF),// ->514942
/*514872*/            OPC_MoveParent,
/*514873*/            OPC_CheckType, MVT::v2i64,
/*514875*/            OPC_Scope, 22, /*->514899*/ // 3 children in Scope
/*514877*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*514879*/              OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*514881*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514883*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514886*/              OPC_EmitMergeInputChains1_0,
/*514887*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2i64] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 25
                        // Dst: (VMOVDQA64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514899*/            /*Scope*/ 20, /*->514920*/
/*514900*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*514902*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514904*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*514907*/              OPC_EmitMergeInputChains1_0,
/*514908*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2i64] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                        // Dst: (VMOVDQU64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514920*/            /*Scope*/ 20, /*->514941*/
/*514921*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*514923*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514925*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*514928*/              OPC_EmitMergeInputChains1_0,
/*514929*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$src, VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2i64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*514941*/            0, /*End of Scope*/
/*514942*/          0, // EndSwitchOpcode
/*514943*/        /*Scope*/ 73, /*->515017*/
/*514944*/          OPC_RecordChild3, // #3 = $src0
/*514945*/          OPC_CheckType, MVT::v2i64,
/*514947*/          OPC_Scope, 23, /*->514972*/ // 3 children in Scope
/*514949*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*514951*/            OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*514953*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514955*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*514958*/            OPC_EmitMergeInputChains1_0,
/*514959*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 22
                      // Dst: (VMOVDQA64Z128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514972*/          /*Scope*/ 21, /*->514994*/
/*514973*/            OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*514975*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514977*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*514980*/            OPC_EmitMergeInputChains1_0,
/*514981*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU64Z128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*514994*/          /*Scope*/ 21, /*->515016*/
/*514995*/            OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*514997*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514999*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*515002*/            OPC_EmitMergeInputChains1_0,
/*515003*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v2i64] } addr:{ *:[iPTR] }:$src, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                      // Dst: (VPEXPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515016*/          0, /*End of Scope*/
/*515017*/        0, /*End of Scope*/
/*515018*/      /*Scope*/ 39|128,1/*167*/, /*->515187*/
/*515020*/        OPC_CheckChild2Type, MVT::v64i1,
/*515022*/        OPC_Scope, 112, /*->515136*/ // 2 children in Scope
/*515024*/          OPC_MoveChild3,
/*515025*/          OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::BITCAST),// ->515085
/*515029*/            OPC_MoveChild0,
/*515030*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*515033*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*515035*/            OPC_CheckType, MVT::v16i32,
/*515037*/            OPC_MoveParent,
/*515038*/            OPC_MoveParent,
/*515039*/            OPC_CheckType, MVT::v64i8,
/*515041*/            OPC_Scope, 20, /*->515063*/ // 2 children in Scope
/*515043*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515045*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*515047*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515050*/              OPC_EmitMergeInputChains1_0,
/*515051*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v64i8] } addr:{ *:[iPTR] }:$ptr, VK64WM:{ *:[v64i1] }:$mask, (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                        // Dst: (VMOVDQU8Zrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515063*/            /*Scope*/ 20, /*->515084*/
/*515064*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515066*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*515068*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515071*/              OPC_EmitMergeInputChains1_0,
/*515072*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v64i8] } addr:{ *:[iPTR] }:$src, VK64WM:{ *:[v64i1] }:$mask, (bitconvert:{ *:[v64i8] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                        // Dst: (VPEXPANDBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515084*/            0, /*End of Scope*/
/*515085*/          /*SwitchOpcode*/ 47, TARGET_VAL(ISD::UNDEF),// ->515135
/*515088*/            OPC_MoveParent,
/*515089*/            OPC_CheckType, MVT::v64i8,
/*515091*/            OPC_Scope, 20, /*->515113*/ // 2 children in Scope
/*515093*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515095*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*515097*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515100*/              OPC_EmitMergeInputChains1_0,
/*515101*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v64i8] } addr:{ *:[iPTR] }:$ptr, VK64WM:{ *:[v64i1] }:$mask, (undef:{ *:[v64i8] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                        // Dst: (VMOVDQU8Zrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515113*/            /*Scope*/ 20, /*->515134*/
/*515114*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515116*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*515118*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515121*/              OPC_EmitMergeInputChains1_0,
/*515122*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v64i8] } addr:{ *:[iPTR] }:$src, VK64WM:{ *:[v64i1] }:$mask, (undef:{ *:[v64i8] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515134*/            0, /*End of Scope*/
/*515135*/          0, // EndSwitchOpcode
/*515136*/        /*Scope*/ 49, /*->515186*/
/*515137*/          OPC_RecordChild3, // #3 = $src0
/*515138*/          OPC_CheckType, MVT::v64i8,
/*515140*/          OPC_Scope, 21, /*->515163*/ // 2 children in Scope
/*515142*/            OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515144*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*515146*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*515149*/            OPC_EmitMergeInputChains1_0,
/*515150*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v64i8] } addr:{ *:[iPTR] }:$ptr, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                      // Dst: (VMOVDQU8Zrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515163*/          /*Scope*/ 21, /*->515185*/
/*515164*/            OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515166*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*515168*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*515171*/            OPC_EmitMergeInputChains1_0,
/*515172*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v64i8] } addr:{ *:[iPTR] }:$src, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                      // Dst: (VPEXPANDBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515185*/          0, /*End of Scope*/
/*515186*/        0, /*End of Scope*/
/*515187*/      /*Scope*/ 58|128,2/*314*/, /*->515503*/
/*515189*/        OPC_CheckChild2Type, MVT::v32i1,
/*515191*/        OPC_Scope, 82|128,1/*210*/, /*->515404*/ // 2 children in Scope
/*515194*/          OPC_MoveChild3,
/*515195*/          OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::BITCAST),// ->515307
/*515199*/            OPC_MoveChild0,
/*515200*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*515203*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*515205*/            OPC_SwitchType /*2 cases */, 48, MVT::v8i32,// ->515256
/*515208*/              OPC_MoveParent,
/*515209*/              OPC_MoveParent,
/*515210*/              OPC_CheckType, MVT::v32i8,
/*515212*/              OPC_Scope, 20, /*->515234*/ // 2 children in Scope
/*515214*/                OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515216*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515218*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515221*/                OPC_EmitMergeInputChains1_0,
/*515222*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v32i8] } addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                          // Dst: (VMOVDQU8Z256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515234*/              /*Scope*/ 20, /*->515255*/
/*515235*/                OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515237*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*515239*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515242*/                OPC_EmitMergeInputChains1_0,
/*515243*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v32i8] } addr:{ *:[iPTR] }:$src, VK32WM:{ *:[v32i1] }:$mask, (bitconvert:{ *:[v32i8] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515255*/              0, /*End of Scope*/
/*515256*/            /*SwitchType*/ 48, MVT::v16i32,// ->515306
/*515258*/              OPC_MoveParent,
/*515259*/              OPC_MoveParent,
/*515260*/              OPC_CheckType, MVT::v32i16,
/*515262*/              OPC_Scope, 20, /*->515284*/ // 2 children in Scope
/*515264*/                OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515266*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*515268*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515271*/                OPC_EmitMergeInputChains1_0,
/*515272*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v32i16] } addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                          // Dst: (VMOVDQU16Zrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515284*/              /*Scope*/ 20, /*->515305*/
/*515285*/                OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515287*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*515289*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515292*/                OPC_EmitMergeInputChains1_0,
/*515293*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v32i16] } addr:{ *:[iPTR] }:$src, VK32WM:{ *:[v32i1] }:$mask, (bitconvert:{ *:[v32i16] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515305*/              0, /*End of Scope*/
/*515306*/            0, // EndSwitchType
/*515307*/          /*SwitchOpcode*/ 93, TARGET_VAL(ISD::UNDEF),// ->515403
/*515310*/            OPC_MoveParent,
/*515311*/            OPC_Scope, 44, /*->515357*/ // 2 children in Scope
/*515313*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515315*/              OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->515336
/*515318*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515320*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515323*/                OPC_EmitMergeInputChains1_0,
/*515324*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v32i8] } addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, (undef:{ *:[v32i8] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVDQU8Z256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515336*/              /*SwitchType*/ 18, MVT::v32i16,// ->515356
/*515338*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*515340*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515343*/                OPC_EmitMergeInputChains1_0,
/*515344*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v32i16] } addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, (undef:{ *:[v32i16] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVDQU16Zrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515356*/              0, // EndSwitchType
/*515357*/            /*Scope*/ 44, /*->515402*/
/*515358*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515360*/              OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->515381
/*515363*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*515365*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515368*/                OPC_EmitMergeInputChains1_0,
/*515369*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v32i8] } addr:{ *:[iPTR] }:$src, VK32WM:{ *:[v32i1] }:$mask, (undef:{ *:[v32i8] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VPEXPANDBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515381*/              /*SwitchType*/ 18, MVT::v32i16,// ->515401
/*515383*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*515385*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515388*/                OPC_EmitMergeInputChains1_0,
/*515389*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v32i16] } addr:{ *:[iPTR] }:$src, VK32WM:{ *:[v32i1] }:$mask, (undef:{ *:[v32i16] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VPEXPANDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515401*/              0, // EndSwitchType
/*515402*/            0, /*End of Scope*/
/*515403*/          0, // EndSwitchOpcode
/*515404*/        /*Scope*/ 97, /*->515502*/
/*515405*/          OPC_RecordChild3, // #3 = $src0
/*515406*/          OPC_Scope, 46, /*->515454*/ // 2 children in Scope
/*515408*/            OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515410*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->515432
/*515413*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515415*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*515418*/              OPC_EmitMergeInputChains1_0,
/*515419*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v32i8] } addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVDQU8Z256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515432*/            /*SwitchType*/ 19, MVT::v32i16,// ->515453
/*515434*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*515436*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*515439*/              OPC_EmitMergeInputChains1_0,
/*515440*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v32i16] } addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVDQU16Zrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515453*/            0, // EndSwitchType
/*515454*/          /*Scope*/ 46, /*->515501*/
/*515455*/            OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515457*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->515479
/*515460*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*515462*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*515465*/              OPC_EmitMergeInputChains1_0,
/*515466*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v32i8] } addr:{ *:[iPTR] }:$src, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VPEXPANDBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515479*/            /*SwitchType*/ 19, MVT::v32i16,// ->515500
/*515481*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*515483*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*515486*/              OPC_EmitMergeInputChains1_0,
/*515487*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v32i16] } addr:{ *:[iPTR] }:$src, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VPEXPANDWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515500*/            0, // EndSwitchType
/*515501*/          0, /*End of Scope*/
/*515502*/        0, /*End of Scope*/
/*515503*/      /*Scope*/ 12|128,4/*524*/, /*->516029*/
/*515505*/        OPC_CheckChild2Type, MVT::v16i1,
/*515507*/        OPC_Scope, 95|128,2/*351*/, /*->515861*/ // 2 children in Scope
/*515510*/          OPC_MoveChild3,
/*515511*/          OPC_SwitchOpcode /*3 cases */, 108, TARGET_VAL(ISD::BITCAST),// ->515623
/*515515*/            OPC_MoveChild0,
/*515516*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*515519*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*515521*/            OPC_SwitchType /*2 cases */, 48, MVT::v4i32,// ->515572
/*515524*/              OPC_MoveParent,
/*515525*/              OPC_MoveParent,
/*515526*/              OPC_CheckType, MVT::v16i8,
/*515528*/              OPC_Scope, 20, /*->515550*/ // 2 children in Scope
/*515530*/                OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515532*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515534*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515537*/                OPC_EmitMergeInputChains1_0,
/*515538*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v16i8] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                          // Dst: (VMOVDQU8Z128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515550*/              /*Scope*/ 20, /*->515571*/
/*515551*/                OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515553*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*515555*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515558*/                OPC_EmitMergeInputChains1_0,
/*515559*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v16i8] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515571*/              0, /*End of Scope*/
/*515572*/            /*SwitchType*/ 48, MVT::v8i32,// ->515622
/*515574*/              OPC_MoveParent,
/*515575*/              OPC_MoveParent,
/*515576*/              OPC_CheckType, MVT::v16i16,
/*515578*/              OPC_Scope, 20, /*->515600*/ // 2 children in Scope
/*515580*/                OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515582*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515584*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515587*/                OPC_EmitMergeInputChains1_0,
/*515588*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v16i16] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                          // Dst: (VMOVDQU16Z256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515600*/              /*Scope*/ 20, /*->515621*/
/*515601*/                OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515603*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*515605*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515608*/                OPC_EmitMergeInputChains1_0,
/*515609*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v16i16] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i16] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515621*/              0, /*End of Scope*/
/*515622*/            0, // EndSwitchType
/*515623*/          /*SwitchOpcode*/ 72, TARGET_VAL(ISD::BUILD_VECTOR),// ->515698
/*515626*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*515628*/            OPC_MoveParent,
/*515629*/            OPC_CheckType, MVT::v16i32,
/*515631*/            OPC_Scope, 22, /*->515655*/ // 3 children in Scope
/*515633*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*515635*/              OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*515637*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515639*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515642*/              OPC_EmitMergeInputChains1_0,
/*515643*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 26
                        // Dst: (VMOVDQA32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515655*/            /*Scope*/ 20, /*->515676*/
/*515656*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515658*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515660*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515663*/              OPC_EmitMergeInputChains1_0,
/*515664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_masked_load_unaligned>> - Complexity = 26
                        // Dst: (VMOVDQU32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515676*/            /*Scope*/ 20, /*->515697*/
/*515677*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515679*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515681*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515684*/              OPC_EmitMergeInputChains1_0,
/*515685*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v16i32] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_X86mExpandingLoad>> - Complexity = 26
                        // Dst: (VPEXPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515697*/            0, /*End of Scope*/
/*515698*/          /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(ISD::UNDEF),// ->515860
/*515702*/            OPC_MoveParent,
/*515703*/            OPC_Scope, 24, /*->515729*/ // 3 children in Scope
/*515705*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*515707*/              OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*515709*/              OPC_CheckType, MVT::v16i32,
/*515711*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515713*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515716*/              OPC_EmitMergeInputChains1_0,
/*515717*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i32] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 25
                        // Dst: (VMOVDQA32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515729*/            /*Scope*/ 64, /*->515794*/
/*515730*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515732*/              OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->515753
/*515735*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515737*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515740*/                OPC_EmitMergeInputChains1_0,
/*515741*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v16i8] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i8] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVDQU8Z128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515753*/              /*SwitchType*/ 18, MVT::v16i16,// ->515773
/*515755*/                OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515757*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515760*/                OPC_EmitMergeInputChains1_0,
/*515761*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v16i16] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i16] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVDQU16Z256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515773*/              /*SwitchType*/ 18, MVT::v16i32,// ->515793
/*515775*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515777*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*515780*/                OPC_EmitMergeInputChains1_0,
/*515781*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i32] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVDQU32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515793*/              0, // EndSwitchType
/*515794*/            /*Scope*/ 64, /*->515859*/
/*515795*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515797*/              OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->515818
/*515800*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515802*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515805*/                OPC_EmitMergeInputChains1_0,
/*515806*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v16i32] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VPEXPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515818*/              /*SwitchType*/ 18, MVT::v16i8,// ->515838
/*515820*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*515822*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515825*/                OPC_EmitMergeInputChains1_0,
/*515826*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v16i8] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i8] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VPEXPANDBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515838*/              /*SwitchType*/ 18, MVT::v16i16,// ->515858
/*515840*/                OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*515842*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*515845*/                OPC_EmitMergeInputChains1_0,
/*515846*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v16i16] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i16] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VPEXPANDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515858*/              0, // EndSwitchType
/*515859*/            0, /*End of Scope*/
/*515860*/          0, // EndSwitchOpcode
/*515861*/        /*Scope*/ 37|128,1/*165*/, /*->516028*/
/*515863*/          OPC_RecordChild3, // #3 = $src0
/*515864*/          OPC_Scope, 25, /*->515891*/ // 3 children in Scope
/*515866*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*515868*/            OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*515870*/            OPC_CheckType, MVT::v16i32,
/*515872*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515874*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*515877*/            OPC_EmitMergeInputChains1_0,
/*515878*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 22
                      // Dst: (VMOVDQA32Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515891*/          /*Scope*/ 67, /*->515959*/
/*515892*/            OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*515894*/            OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->515916
/*515897*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515899*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*515902*/              OPC_EmitMergeInputChains1_0,
/*515903*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v16i8] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVDQU8Z128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515916*/            /*SwitchType*/ 19, MVT::v16i16,// ->515937
/*515918*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515920*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*515923*/              OPC_EmitMergeInputChains1_0,
/*515924*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v16i16] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVDQU16Z256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515937*/            /*SwitchType*/ 19, MVT::v16i32,// ->515958
/*515939*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515941*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*515944*/              OPC_EmitMergeInputChains1_0,
/*515945*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVDQU32Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*515958*/            0, // EndSwitchType
/*515959*/          /*Scope*/ 67, /*->516027*/
/*515960*/            OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*515962*/            OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->515984
/*515965*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515967*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*515970*/              OPC_EmitMergeInputChains1_0,
/*515971*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v16i32] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VPEXPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*515984*/            /*SwitchType*/ 19, MVT::v16i8,// ->516005
/*515986*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*515988*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*515991*/              OPC_EmitMergeInputChains1_0,
/*515992*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v16i8] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VPEXPANDBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*516005*/            /*SwitchType*/ 19, MVT::v16i16,// ->516026
/*516007*/              OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*516009*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*516012*/              OPC_EmitMergeInputChains1_0,
/*516013*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v16i16] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VPEXPANDWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*516026*/            0, // EndSwitchType
/*516027*/          0, /*End of Scope*/
/*516028*/        0, /*End of Scope*/
/*516029*/      /*Scope*/ 48|128,1/*176*/, /*->516207*/
/*516031*/        OPC_CheckChild2Type, MVT::v8i32,
/*516033*/        OPC_Scope, 101, /*->516136*/ // 2 children in Scope
/*516035*/          OPC_MoveChild3,
/*516036*/          OPC_SwitchOpcode /*2 cases */, 47, TARGET_VAL(ISD::BUILD_VECTOR),// ->516087
/*516040*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*516042*/            OPC_MoveParent,
/*516043*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*516045*/            OPC_CheckType, MVT::v8i32,
/*516047*/            OPC_Scope, 18, /*->516067*/ // 2 children in Scope
/*516049*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*516051*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516054*/              OPC_EmitMergeInputChains1_0,
/*516055*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_X86mload>> - Complexity = 26
                        // Dst: (VMASKMOVPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516067*/            /*Scope*/ 18, /*->516086*/
/*516068*/              OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*516070*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516073*/              OPC_EmitMergeInputChains1_0,
/*516074*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_X86mload>> - Complexity = 26
                        // Dst: (VPMASKMOVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516086*/            0, /*End of Scope*/
/*516087*/          /*SwitchOpcode*/ 45, TARGET_VAL(ISD::UNDEF),// ->516135
/*516090*/            OPC_MoveParent,
/*516091*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*516093*/            OPC_CheckType, MVT::v8i32,
/*516095*/            OPC_Scope, 18, /*->516115*/ // 2 children in Scope
/*516097*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*516099*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516102*/              OPC_EmitMergeInputChains1_0,
/*516103*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, (undef:{ *:[v8i32] }))<<P:Predicate_X86mload>> - Complexity = 25
                        // Dst: (VMASKMOVPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516115*/            /*Scope*/ 18, /*->516134*/
/*516116*/              OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*516118*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516121*/              OPC_EmitMergeInputChains1_0,
/*516122*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, (undef:{ *:[v8i32] }))<<P:Predicate_X86mload>> - Complexity = 25
                        // Dst: (VPMASKMOVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516134*/            0, /*End of Scope*/
/*516135*/          0, // EndSwitchOpcode
/*516136*/        /*Scope*/ 69, /*->516206*/
/*516137*/          OPC_RecordChild3, // #3 = $src0
/*516138*/          OPC_CheckPredicate, 98, // Predicate_X86mload
/*516140*/          OPC_CheckType, MVT::v8i32,
/*516142*/          OPC_Scope, 30, /*->516174*/ // 2 children in Scope
/*516144*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*516146*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*516149*/            OPC_EmitMergeInputChains1_0,
/*516150*/            OPC_EmitNode1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*516162*/            OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPSYrr), 0,
                          MVT::v8i32, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*516171*/            OPC_CompleteMatch, 1, 10, 
                       // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8i32] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                       // Dst: (VBLENDVPSYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src0, (VMASKMOVPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr), VR256:{ *:[v8i32] }:$mask)
/*516174*/          /*Scope*/ 30, /*->516205*/
/*516175*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*516177*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*516180*/            OPC_EmitMergeInputChains1_0,
/*516181*/            OPC_EmitNode1, TARGET_VAL(X86::VPMASKMOVDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*516193*/            OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPSYrr), 0,
                          MVT::v8i32, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*516202*/            OPC_CompleteMatch, 1, 10, 
                       // Src: (masked_load:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8i32] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                       // Dst: (VBLENDVPSYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src0, (VPMASKMOVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr), VR256:{ *:[v8i32] }:$mask)
/*516205*/          0, /*End of Scope*/
/*516206*/        0, /*End of Scope*/
/*516207*/      /*Scope*/ 48|128,1/*176*/, /*->516385*/
/*516209*/        OPC_CheckChild2Type, MVT::v4i32,
/*516211*/        OPC_Scope, 101, /*->516314*/ // 2 children in Scope
/*516213*/          OPC_MoveChild3,
/*516214*/          OPC_SwitchOpcode /*2 cases */, 47, TARGET_VAL(ISD::BUILD_VECTOR),// ->516265
/*516218*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*516220*/            OPC_MoveParent,
/*516221*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*516223*/            OPC_CheckType, MVT::v4i32,
/*516225*/            OPC_Scope, 18, /*->516245*/ // 2 children in Scope
/*516227*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*516229*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516232*/              OPC_EmitMergeInputChains1_0,
/*516233*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_X86mload>> - Complexity = 26
                        // Dst: (VMASKMOVPSrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516245*/            /*Scope*/ 18, /*->516264*/
/*516246*/              OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*516248*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516251*/              OPC_EmitMergeInputChains1_0,
/*516252*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)<<P:Predicate_X86mload>> - Complexity = 26
                        // Dst: (VPMASKMOVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516264*/            0, /*End of Scope*/
/*516265*/          /*SwitchOpcode*/ 45, TARGET_VAL(ISD::UNDEF),// ->516313
/*516268*/            OPC_MoveParent,
/*516269*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*516271*/            OPC_CheckType, MVT::v4i32,
/*516273*/            OPC_Scope, 18, /*->516293*/ // 2 children in Scope
/*516275*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*516277*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516280*/              OPC_EmitMergeInputChains1_0,
/*516281*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, (undef:{ *:[v4i32] }))<<P:Predicate_X86mload>> - Complexity = 25
                        // Dst: (VMASKMOVPSrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516293*/            /*Scope*/ 18, /*->516312*/
/*516294*/              OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*516296*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516299*/              OPC_EmitMergeInputChains1_0,
/*516300*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, (undef:{ *:[v4i32] }))<<P:Predicate_X86mload>> - Complexity = 25
                        // Dst: (VPMASKMOVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516312*/            0, /*End of Scope*/
/*516313*/          0, // EndSwitchOpcode
/*516314*/        /*Scope*/ 69, /*->516384*/
/*516315*/          OPC_RecordChild3, // #3 = $src0
/*516316*/          OPC_CheckPredicate, 98, // Predicate_X86mload
/*516318*/          OPC_CheckType, MVT::v4i32,
/*516320*/          OPC_Scope, 30, /*->516352*/ // 2 children in Scope
/*516322*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*516324*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*516327*/            OPC_EmitMergeInputChains1_0,
/*516328*/            OPC_EmitNode1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*516340*/            OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPSrr), 0,
                          MVT::v4i32, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*516349*/            OPC_CompleteMatch, 1, 10, 
                       // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4i32] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                       // Dst: (VBLENDVPSrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src0, (VMASKMOVPSrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr), VR128:{ *:[v4i32] }:$mask)
/*516352*/          /*Scope*/ 30, /*->516383*/
/*516353*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*516355*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*516358*/            OPC_EmitMergeInputChains1_0,
/*516359*/            OPC_EmitNode1, TARGET_VAL(X86::VPMASKMOVDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*516371*/            OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPSrr), 0,
                          MVT::v4i32, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*516380*/            OPC_CompleteMatch, 1, 10, 
                       // Src: (masked_load:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4i32] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                       // Dst: (VBLENDVPSrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src0, (VPMASKMOVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr), VR128:{ *:[v4i32] }:$mask)
/*516383*/          0, /*End of Scope*/
/*516384*/        0, /*End of Scope*/
/*516385*/      0, /*End of Scope*/
/*516386*/    /*Scope*/ 9|128,2/*265*/, /*->516653*/
/*516388*/      OPC_MoveChild2,
/*516389*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*516392*/      OPC_MoveChild0,
/*516393*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*516396*/      OPC_MoveChild0,
/*516397*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*516400*/      OPC_RecordChild0, // #2 = $mask
/*516401*/      OPC_CheckChild1Integer, 1, 
/*516403*/      OPC_CheckType, MVT::i8,
/*516405*/      OPC_MoveParent,
/*516406*/      OPC_CheckType, MVT::v8i1,
/*516408*/      OPC_MoveParent,
/*516409*/      OPC_CheckChild1Integer, 0, 
/*516411*/      OPC_CheckChild1Type, MVT::iPTR,
/*516413*/      OPC_SwitchType /*2 cases */, 117, MVT::v4i1,// ->516533
/*516416*/        OPC_MoveParent,
/*516417*/        OPC_MoveChild3,
/*516418*/        OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::BITCAST),// ->516479
/*516422*/          OPC_MoveChild0,
/*516423*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*516426*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*516428*/          OPC_CheckType, MVT::v4i32,
/*516430*/          OPC_MoveParent,
/*516431*/          OPC_MoveParent,
/*516432*/          OPC_CheckType, MVT::v4f32,
/*516434*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*516437*/          OPC_EmitMergeInputChains1_0,
/*516438*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/*516444*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*516447*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*516456*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*516459*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*516467*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 12, 3, 4, 5, 6, 7, 
                    // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$srcAddr, (extract_subvector:{ *:[v4i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 47
                    // Dst: (VMOVSSZrmkz:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*516479*/        /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::VZEXT_MOVL),// ->516532
/*516482*/          OPC_RecordChild0, // #3 = $src
/*516483*/          OPC_MoveParent,
/*516484*/          OPC_CheckType, MVT::v4f32,
/*516486*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*516489*/          OPC_EmitMergeInputChains1_0,
/*516490*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/*516496*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*516499*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*516508*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*516511*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*516519*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 13, 4, 5, 6, 7, 8, 
                    // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$srcAddr, (extract_subvector:{ *:[v4i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), (X86vzmovl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src)) - Complexity = 43
                    // Dst: (VMOVSSZrmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*516532*/        0, // EndSwitchOpcode
/*516533*/      /*SwitchType*/ 117, MVT::v2i1,// ->516652
/*516535*/        OPC_MoveParent,
/*516536*/        OPC_MoveChild3,
/*516537*/        OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::BITCAST),// ->516598
/*516541*/          OPC_MoveChild0,
/*516542*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*516545*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*516547*/          OPC_CheckType, MVT::v4i32,
/*516549*/          OPC_MoveParent,
/*516550*/          OPC_MoveParent,
/*516551*/          OPC_CheckType, MVT::v2f64,
/*516553*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*516556*/          OPC_EmitMergeInputChains1_0,
/*516557*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/*516563*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*516566*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*516575*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*516578*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*516586*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 12, 3, 4, 5, 6, 7, 
                    // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$srcAddr, (extract_subvector:{ *:[v2i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>)) - Complexity = 47
                    // Dst: (VMOVSDZrmkz:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*516598*/        /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::VZEXT_MOVL),// ->516651
/*516601*/          OPC_RecordChild0, // #3 = $src
/*516602*/          OPC_MoveParent,
/*516603*/          OPC_CheckType, MVT::v2f64,
/*516605*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*516608*/          OPC_EmitMergeInputChains1_0,
/*516609*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/*516615*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*516618*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*516627*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*516630*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*516638*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 13, 4, 5, 6, 7, 8, 
                    // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$srcAddr, (extract_subvector:{ *:[v2i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), (X86vzmovl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src)) - Complexity = 43
                    // Dst: (VMOVSDZrmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*516651*/        0, // EndSwitchOpcode
/*516652*/      0, // EndSwitchType
/*516653*/    /*Scope*/ 45|128,14/*1837*/, /*->518492*/
/*516655*/      OPC_RecordChild2, // #2 = $mask
/*516656*/      OPC_Scope, 105, /*->516763*/ // 8 children in Scope
/*516658*/        OPC_CheckChild2Type, MVT::v4i32,
/*516660*/        OPC_Scope, 64, /*->516726*/ // 2 children in Scope
/*516662*/          OPC_MoveChild3,
/*516663*/          OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::BITCAST),// ->516699
/*516667*/            OPC_MoveChild0,
/*516668*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*516671*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*516673*/            OPC_CheckType, MVT::v4i32,
/*516675*/            OPC_MoveParent,
/*516676*/            OPC_MoveParent,
/*516677*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*516679*/            OPC_CheckType, MVT::v4f32,
/*516681*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*516683*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516686*/            OPC_EmitMergeInputChains1_0,
/*516687*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>> - Complexity = 29
                      // Dst: (VMASKMOVPSrm:{ *:[v4f32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516699*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::UNDEF),// ->516725
/*516702*/            OPC_MoveParent,
/*516703*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*516705*/            OPC_CheckType, MVT::v4f32,
/*516707*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*516709*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516712*/            OPC_EmitMergeInputChains1_0,
/*516713*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, (undef:{ *:[v4f32] }))<<P:Predicate_X86mload>> - Complexity = 25
                      // Dst: (VMASKMOVPSrm:{ *:[v4f32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516725*/          0, // EndSwitchOpcode
/*516726*/        /*Scope*/ 35, /*->516762*/
/*516727*/          OPC_RecordChild3, // #3 = $src0
/*516728*/          OPC_CheckPredicate, 98, // Predicate_X86mload
/*516730*/          OPC_CheckType, MVT::v4f32,
/*516732*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*516734*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*516737*/          OPC_EmitMergeInputChains1_0,
/*516738*/          OPC_EmitNode1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*516750*/          OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPSrr), 0,
                        MVT::v4f32, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*516759*/          OPC_CompleteMatch, 1, 10, 
                     // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4f32] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                     // Dst: (VBLENDVPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src0, (VMASKMOVPSrm:{ *:[v4f32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr), VR128:{ *:[v4i32] }:$mask)
/*516762*/        0, /*End of Scope*/
/*516763*/      /*Scope*/ 105, /*->516869*/
/*516764*/        OPC_CheckChild2Type, MVT::v2i64,
/*516766*/        OPC_Scope, 64, /*->516832*/ // 2 children in Scope
/*516768*/          OPC_MoveChild3,
/*516769*/          OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::BITCAST),// ->516805
/*516773*/            OPC_MoveChild0,
/*516774*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*516777*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*516779*/            OPC_CheckType, MVT::v4i32,
/*516781*/            OPC_MoveParent,
/*516782*/            OPC_MoveParent,
/*516783*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*516785*/            OPC_CheckType, MVT::v2f64,
/*516787*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*516789*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516792*/            OPC_EmitMergeInputChains1_0,
/*516793*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>> - Complexity = 29
                      // Dst: (VMASKMOVPDrm:{ *:[v2f64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516805*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::UNDEF),// ->516831
/*516808*/            OPC_MoveParent,
/*516809*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*516811*/            OPC_CheckType, MVT::v2f64,
/*516813*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*516815*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516818*/            OPC_EmitMergeInputChains1_0,
/*516819*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, (undef:{ *:[v2f64] }))<<P:Predicate_X86mload>> - Complexity = 25
                      // Dst: (VMASKMOVPDrm:{ *:[v2f64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516831*/          0, // EndSwitchOpcode
/*516832*/        /*Scope*/ 35, /*->516868*/
/*516833*/          OPC_RecordChild3, // #3 = $src0
/*516834*/          OPC_CheckPredicate, 98, // Predicate_X86mload
/*516836*/          OPC_CheckType, MVT::v2f64,
/*516838*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*516840*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*516843*/          OPC_EmitMergeInputChains1_0,
/*516844*/          OPC_EmitNode1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*516856*/          OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPDrr), 0,
                        MVT::v2f64, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*516865*/          OPC_CompleteMatch, 1, 10, 
                     // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2f64] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                     // Dst: (VBLENDVPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src0, (VMASKMOVPDrm:{ *:[v2f64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr), VR128:{ *:[v2i64] }:$mask)
/*516868*/        0, /*End of Scope*/
/*516869*/      /*Scope*/ 105, /*->516975*/
/*516870*/        OPC_CheckChild2Type, MVT::v8i32,
/*516872*/        OPC_Scope, 64, /*->516938*/ // 2 children in Scope
/*516874*/          OPC_MoveChild3,
/*516875*/          OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::BITCAST),// ->516911
/*516879*/            OPC_MoveChild0,
/*516880*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*516883*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*516885*/            OPC_CheckType, MVT::v8i32,
/*516887*/            OPC_MoveParent,
/*516888*/            OPC_MoveParent,
/*516889*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*516891*/            OPC_CheckType, MVT::v8f32,
/*516893*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*516895*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516898*/            OPC_EmitMergeInputChains1_0,
/*516899*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>> - Complexity = 29
                      // Dst: (VMASKMOVPSYrm:{ *:[v8f32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516911*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::UNDEF),// ->516937
/*516914*/            OPC_MoveParent,
/*516915*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*516917*/            OPC_CheckType, MVT::v8f32,
/*516919*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*516921*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*516924*/            OPC_EmitMergeInputChains1_0,
/*516925*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, (undef:{ *:[v8f32] }))<<P:Predicate_X86mload>> - Complexity = 25
                      // Dst: (VMASKMOVPSYrm:{ *:[v8f32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*516937*/          0, // EndSwitchOpcode
/*516938*/        /*Scope*/ 35, /*->516974*/
/*516939*/          OPC_RecordChild3, // #3 = $src0
/*516940*/          OPC_CheckPredicate, 98, // Predicate_X86mload
/*516942*/          OPC_CheckType, MVT::v8f32,
/*516944*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*516946*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*516949*/          OPC_EmitMergeInputChains1_0,
/*516950*/          OPC_EmitNode1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*516962*/          OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPSYrr), 0,
                        MVT::v8f32, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*516971*/          OPC_CompleteMatch, 1, 10, 
                     // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8f32] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                     // Dst: (VBLENDVPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src0, (VMASKMOVPSYrm:{ *:[v8f32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr), VR256:{ *:[v8i32] }:$mask)
/*516974*/        0, /*End of Scope*/
/*516975*/      /*Scope*/ 105, /*->517081*/
/*516976*/        OPC_CheckChild2Type, MVT::v4i64,
/*516978*/        OPC_Scope, 64, /*->517044*/ // 2 children in Scope
/*516980*/          OPC_MoveChild3,
/*516981*/          OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::BITCAST),// ->517017
/*516985*/            OPC_MoveChild0,
/*516986*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*516989*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*516991*/            OPC_CheckType, MVT::v8i32,
/*516993*/            OPC_MoveParent,
/*516994*/            OPC_MoveParent,
/*516995*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*516997*/            OPC_CheckType, MVT::v4f64,
/*516999*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*517001*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517004*/            OPC_EmitMergeInputChains1_0,
/*517005*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>> - Complexity = 29
                      // Dst: (VMASKMOVPDYrm:{ *:[v4f64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517017*/          /*SwitchOpcode*/ 23, TARGET_VAL(ISD::UNDEF),// ->517043
/*517020*/            OPC_MoveParent,
/*517021*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*517023*/            OPC_CheckType, MVT::v4f64,
/*517025*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*517027*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517030*/            OPC_EmitMergeInputChains1_0,
/*517031*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, (undef:{ *:[v4f64] }))<<P:Predicate_X86mload>> - Complexity = 25
                      // Dst: (VMASKMOVPDYrm:{ *:[v4f64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517043*/          0, // EndSwitchOpcode
/*517044*/        /*Scope*/ 35, /*->517080*/
/*517045*/          OPC_RecordChild3, // #3 = $src0
/*517046*/          OPC_CheckPredicate, 98, // Predicate_X86mload
/*517048*/          OPC_CheckType, MVT::v4f64,
/*517050*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*517052*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*517055*/          OPC_EmitMergeInputChains1_0,
/*517056*/          OPC_EmitNode1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8,  // Results = #9
/*517068*/          OPC_EmitNode1, TARGET_VAL(X86::VBLENDVPDYrr), 0,
                        MVT::v4f64, 3/*#Ops*/, 3, 9, 2,  // Results = #10
/*517077*/          OPC_CompleteMatch, 1, 10, 
                     // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4f64] }:$src0)<<P:Predicate_X86mload>> - Complexity = 22
                     // Dst: (VBLENDVPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src0, (VMASKMOVPDYrm:{ *:[v4f64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr), VR256:{ *:[v4i64] }:$mask)
/*517080*/        0, /*End of Scope*/
/*517081*/      /*Scope*/ 110|128,1/*238*/, /*->517321*/
/*517083*/        OPC_CheckChild2Type, MVT::v16i1,
/*517085*/        OPC_Scope, 30|128,1/*158*/, /*->517246*/ // 2 children in Scope
/*517088*/          OPC_MoveChild3,
/*517089*/          OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::BITCAST),// ->517172
/*517093*/            OPC_MoveChild0,
/*517094*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*517097*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*517099*/            OPC_CheckType, MVT::v16i32,
/*517101*/            OPC_MoveParent,
/*517102*/            OPC_MoveParent,
/*517103*/            OPC_CheckType, MVT::v16f32,
/*517105*/            OPC_Scope, 22, /*->517129*/ // 3 children in Scope
/*517107*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*517109*/              OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*517111*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517113*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517116*/              OPC_EmitMergeInputChains1_0,
/*517117*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 29
                        // Dst: (VMOVAPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517129*/            /*Scope*/ 20, /*->517150*/
/*517130*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*517132*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517134*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517137*/              OPC_EmitMergeInputChains1_0,
/*517138*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                        // Dst: (VMOVUPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517150*/            /*Scope*/ 20, /*->517171*/
/*517151*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*517153*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517155*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*517158*/              OPC_EmitMergeInputChains1_0,
/*517159*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                        // Dst: (VEXPANDPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*517171*/            0, /*End of Scope*/
/*517172*/          /*SwitchOpcode*/ 70, TARGET_VAL(ISD::UNDEF),// ->517245
/*517175*/            OPC_MoveParent,
/*517176*/            OPC_CheckType, MVT::v16f32,
/*517178*/            OPC_Scope, 22, /*->517202*/ // 3 children in Scope
/*517180*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*517182*/              OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*517184*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517186*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517189*/              OPC_EmitMergeInputChains1_0,
/*517190*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16f32] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 25
                        // Dst: (VMOVAPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517202*/            /*Scope*/ 20, /*->517223*/
/*517203*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*517205*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517207*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517210*/              OPC_EmitMergeInputChains1_0,
/*517211*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16f32] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                        // Dst: (VMOVUPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517223*/            /*Scope*/ 20, /*->517244*/
/*517224*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*517226*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517228*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*517231*/              OPC_EmitMergeInputChains1_0,
/*517232*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16f32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VEXPANDPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*517244*/            0, /*End of Scope*/
/*517245*/          0, // EndSwitchOpcode
/*517246*/        /*Scope*/ 73, /*->517320*/
/*517247*/          OPC_RecordChild3, // #3 = $src0
/*517248*/          OPC_CheckType, MVT::v16f32,
/*517250*/          OPC_Scope, 23, /*->517275*/ // 3 children in Scope
/*517252*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*517254*/            OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*517256*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*517261*/            OPC_EmitMergeInputChains1_0,
/*517262*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 22
                      // Dst: (VMOVAPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517275*/          /*Scope*/ 21, /*->517297*/
/*517276*/            OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*517278*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517280*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*517283*/            OPC_EmitMergeInputChains1_0,
/*517284*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                      // Dst: (VMOVUPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517297*/          /*Scope*/ 21, /*->517319*/
/*517298*/            OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*517300*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517302*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*517305*/            OPC_EmitMergeInputChains1_0,
/*517306*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                      // Dst: (VEXPANDPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*517319*/          0, /*End of Scope*/
/*517320*/        0, /*End of Scope*/
/*517321*/      /*Scope*/ 79|128,3/*463*/, /*->517786*/
/*517323*/        OPC_CheckChild2Type, MVT::v8i1,
/*517325*/        OPC_Scope, 51|128,2/*307*/, /*->517635*/ // 2 children in Scope
/*517328*/          OPC_MoveChild3,
/*517329*/          OPC_SwitchOpcode /*2 cases */, 26|128,1/*154*/, TARGET_VAL(ISD::BITCAST),// ->517488
/*517334*/            OPC_MoveChild0,
/*517335*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*517338*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*517340*/            OPC_SwitchType /*2 cases */, 71, MVT::v8i32,// ->517414
/*517343*/              OPC_MoveParent,
/*517344*/              OPC_MoveParent,
/*517345*/              OPC_CheckType, MVT::v8f32,
/*517347*/              OPC_Scope, 22, /*->517371*/ // 3 children in Scope
/*517349*/                OPC_CheckPredicate, 98, // Predicate_X86mload
/*517351*/                OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*517353*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517355*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517358*/                OPC_EmitMergeInputChains1_0,
/*517359*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 29
                          // Dst: (VMOVAPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517371*/              /*Scope*/ 20, /*->517392*/
/*517372*/                OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*517374*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517376*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517379*/                OPC_EmitMergeInputChains1_0,
/*517380*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                          // Dst: (VMOVUPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517392*/              /*Scope*/ 20, /*->517413*/
/*517393*/                OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*517395*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517397*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*517400*/                OPC_EmitMergeInputChains1_0,
/*517401*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VEXPANDPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*517413*/              0, /*End of Scope*/
/*517414*/            /*SwitchType*/ 71, MVT::v16i32,// ->517487
/*517416*/              OPC_MoveParent,
/*517417*/              OPC_MoveParent,
/*517418*/              OPC_CheckType, MVT::v8f64,
/*517420*/              OPC_Scope, 22, /*->517444*/ // 3 children in Scope
/*517422*/                OPC_CheckPredicate, 98, // Predicate_X86mload
/*517424*/                OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*517426*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517428*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517431*/                OPC_EmitMergeInputChains1_0,
/*517432*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 29
                          // Dst: (VMOVAPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517444*/              /*Scope*/ 20, /*->517465*/
/*517445*/                OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*517447*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517449*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517452*/                OPC_EmitMergeInputChains1_0,
/*517453*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                          // Dst: (VMOVUPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517465*/              /*Scope*/ 20, /*->517486*/
/*517466*/                OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*517468*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517470*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*517473*/                OPC_EmitMergeInputChains1_0,
/*517474*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VEXPANDPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*517486*/              0, /*End of Scope*/
/*517487*/            0, // EndSwitchType
/*517488*/          /*SwitchOpcode*/ 14|128,1/*142*/, TARGET_VAL(ISD::UNDEF),// ->517634
/*517492*/            OPC_MoveParent,
/*517493*/            OPC_Scope, 48, /*->517543*/ // 3 children in Scope
/*517495*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*517497*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->517520
/*517500*/                OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*517502*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517504*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517507*/                OPC_EmitMergeInputChains1_0,
/*517508*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f32] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 25
                          // Dst: (VMOVAPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517520*/              /*SwitchType*/ 20, MVT::v8f64,// ->517542
/*517522*/                OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*517524*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517526*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517529*/                OPC_EmitMergeInputChains1_0,
/*517530*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f64] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 25
                          // Dst: (VMOVAPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517542*/              0, // EndSwitchType
/*517543*/            /*Scope*/ 44, /*->517588*/
/*517544*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*517546*/              OPC_SwitchType /*2 cases */, 18, MVT::v8f32,// ->517567
/*517549*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517551*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517554*/                OPC_EmitMergeInputChains1_0,
/*517555*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f32] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVUPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517567*/              /*SwitchType*/ 18, MVT::v8f64,// ->517587
/*517569*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517571*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517574*/                OPC_EmitMergeInputChains1_0,
/*517575*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f64] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVUPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517587*/              0, // EndSwitchType
/*517588*/            /*Scope*/ 44, /*->517633*/
/*517589*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*517591*/              OPC_SwitchType /*2 cases */, 18, MVT::v8f32,// ->517612
/*517594*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517596*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*517599*/                OPC_EmitMergeInputChains1_0,
/*517600*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VEXPANDPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*517612*/              /*SwitchType*/ 18, MVT::v8f64,// ->517632
/*517614*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517616*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*517619*/                OPC_EmitMergeInputChains1_0,
/*517620*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VEXPANDPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*517632*/              0, // EndSwitchType
/*517633*/            0, /*End of Scope*/
/*517634*/          0, // EndSwitchOpcode
/*517635*/        /*Scope*/ 20|128,1/*148*/, /*->517785*/
/*517637*/          OPC_RecordChild3, // #3 = $src0
/*517638*/          OPC_Scope, 50, /*->517690*/ // 3 children in Scope
/*517640*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*517642*/            OPC_SwitchType /*2 cases */, 21, MVT::v8f32,// ->517666
/*517645*/              OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*517647*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517649*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*517652*/              OPC_EmitMergeInputChains1_0,
/*517653*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 22
                        // Dst: (VMOVAPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517666*/            /*SwitchType*/ 21, MVT::v8f64,// ->517689
/*517668*/              OPC_CheckPredicate, 99, // Predicate_masked_load_aligned512
/*517670*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517672*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*517675*/              OPC_EmitMergeInputChains1_0,
/*517676*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned512>> - Complexity = 22
                        // Dst: (VMOVAPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517689*/            0, // EndSwitchType
/*517690*/          /*Scope*/ 46, /*->517737*/
/*517691*/            OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*517693*/            OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->517715
/*517696*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517698*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*517701*/              OPC_EmitMergeInputChains1_0,
/*517702*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVUPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517715*/            /*SwitchType*/ 19, MVT::v8f64,// ->517736
/*517717*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517719*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*517722*/              OPC_EmitMergeInputChains1_0,
/*517723*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVUPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517736*/            0, // EndSwitchType
/*517737*/          /*Scope*/ 46, /*->517784*/
/*517738*/            OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*517740*/            OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->517762
/*517743*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517745*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*517748*/              OPC_EmitMergeInputChains1_0,
/*517749*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VEXPANDPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*517762*/            /*SwitchType*/ 19, MVT::v8f64,// ->517783
/*517764*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517766*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*517769*/              OPC_EmitMergeInputChains1_0,
/*517770*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VEXPANDPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*517783*/            0, // EndSwitchType
/*517784*/          0, /*End of Scope*/
/*517785*/        0, /*End of Scope*/
/*517786*/      /*Scope*/ 79|128,3/*463*/, /*->518251*/
/*517788*/        OPC_CheckChild2Type, MVT::v4i1,
/*517790*/        OPC_Scope, 51|128,2/*307*/, /*->518100*/ // 2 children in Scope
/*517793*/          OPC_MoveChild3,
/*517794*/          OPC_SwitchOpcode /*2 cases */, 26|128,1/*154*/, TARGET_VAL(ISD::BITCAST),// ->517953
/*517799*/            OPC_MoveChild0,
/*517800*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*517803*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*517805*/            OPC_SwitchType /*2 cases */, 71, MVT::v4i32,// ->517879
/*517808*/              OPC_MoveParent,
/*517809*/              OPC_MoveParent,
/*517810*/              OPC_CheckType, MVT::v4f32,
/*517812*/              OPC_Scope, 22, /*->517836*/ // 3 children in Scope
/*517814*/                OPC_CheckPredicate, 98, // Predicate_X86mload
/*517816*/                OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*517818*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517820*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517823*/                OPC_EmitMergeInputChains1_0,
/*517824*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 29
                          // Dst: (VMOVAPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517836*/              /*Scope*/ 20, /*->517857*/
/*517837*/                OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*517839*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517841*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517844*/                OPC_EmitMergeInputChains1_0,
/*517845*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                          // Dst: (VMOVUPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517857*/              /*Scope*/ 20, /*->517878*/
/*517858*/                OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*517860*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517862*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*517865*/                OPC_EmitMergeInputChains1_0,
/*517866*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VEXPANDPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*517878*/              0, /*End of Scope*/
/*517879*/            /*SwitchType*/ 71, MVT::v8i32,// ->517952
/*517881*/              OPC_MoveParent,
/*517882*/              OPC_MoveParent,
/*517883*/              OPC_CheckType, MVT::v4f64,
/*517885*/              OPC_Scope, 22, /*->517909*/ // 3 children in Scope
/*517887*/                OPC_CheckPredicate, 98, // Predicate_X86mload
/*517889*/                OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*517891*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517893*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517896*/                OPC_EmitMergeInputChains1_0,
/*517897*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 29
                          // Dst: (VMOVAPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517909*/              /*Scope*/ 20, /*->517930*/
/*517910*/                OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*517912*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517914*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517917*/                OPC_EmitMergeInputChains1_0,
/*517918*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                          // Dst: (VMOVUPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517930*/              /*Scope*/ 20, /*->517951*/
/*517931*/                OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*517933*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517935*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*517938*/                OPC_EmitMergeInputChains1_0,
/*517939*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VEXPANDPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*517951*/              0, /*End of Scope*/
/*517952*/            0, // EndSwitchType
/*517953*/          /*SwitchOpcode*/ 14|128,1/*142*/, TARGET_VAL(ISD::UNDEF),// ->518099
/*517957*/            OPC_MoveParent,
/*517958*/            OPC_Scope, 48, /*->518008*/ // 3 children in Scope
/*517960*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*517962*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->517985
/*517965*/                OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*517967*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517969*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517972*/                OPC_EmitMergeInputChains1_0,
/*517973*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f32] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 25
                          // Dst: (VMOVAPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*517985*/              /*SwitchType*/ 20, MVT::v4f64,// ->518007
/*517987*/                OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*517989*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*517991*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*517994*/                OPC_EmitMergeInputChains1_0,
/*517995*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f64] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 25
                          // Dst: (VMOVAPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518007*/              0, // EndSwitchType
/*518008*/            /*Scope*/ 44, /*->518053*/
/*518009*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*518011*/              OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->518032
/*518014*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518016*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*518019*/                OPC_EmitMergeInputChains1_0,
/*518020*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f32] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVUPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518032*/              /*SwitchType*/ 18, MVT::v4f64,// ->518052
/*518034*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518036*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*518039*/                OPC_EmitMergeInputChains1_0,
/*518040*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f64] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                          // Dst: (VMOVUPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518052*/              0, // EndSwitchType
/*518053*/            /*Scope*/ 44, /*->518098*/
/*518054*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*518056*/              OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->518077
/*518059*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518061*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*518064*/                OPC_EmitMergeInputChains1_0,
/*518065*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VEXPANDPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*518077*/              /*SwitchType*/ 18, MVT::v4f64,// ->518097
/*518079*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518081*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*518084*/                OPC_EmitMergeInputChains1_0,
/*518085*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                          // Dst: (VEXPANDPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*518097*/              0, // EndSwitchType
/*518098*/            0, /*End of Scope*/
/*518099*/          0, // EndSwitchOpcode
/*518100*/        /*Scope*/ 20|128,1/*148*/, /*->518250*/
/*518102*/          OPC_RecordChild3, // #3 = $src0
/*518103*/          OPC_Scope, 50, /*->518155*/ // 3 children in Scope
/*518105*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*518107*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->518131
/*518110*/              OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*518112*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518114*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*518117*/              OPC_EmitMergeInputChains1_0,
/*518118*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 22
                        // Dst: (VMOVAPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518131*/            /*SwitchType*/ 21, MVT::v4f64,// ->518154
/*518133*/              OPC_CheckPredicate, 101, // Predicate_masked_load_aligned256
/*518135*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518137*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*518140*/              OPC_EmitMergeInputChains1_0,
/*518141*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned256>> - Complexity = 22
                        // Dst: (VMOVAPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518154*/            0, // EndSwitchType
/*518155*/          /*Scope*/ 46, /*->518202*/
/*518156*/            OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*518158*/            OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->518180
/*518161*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518163*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*518166*/              OPC_EmitMergeInputChains1_0,
/*518167*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVUPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518180*/            /*SwitchType*/ 19, MVT::v4f64,// ->518201
/*518182*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518184*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*518187*/              OPC_EmitMergeInputChains1_0,
/*518188*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                        // Dst: (VMOVUPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518201*/            0, // EndSwitchType
/*518202*/          /*Scope*/ 46, /*->518249*/
/*518203*/            OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*518205*/            OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->518227
/*518208*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518210*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*518213*/              OPC_EmitMergeInputChains1_0,
/*518214*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VEXPANDPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*518227*/            /*SwitchType*/ 19, MVT::v4f64,// ->518248
/*518229*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518231*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*518234*/              OPC_EmitMergeInputChains1_0,
/*518235*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_load:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                        // Dst: (VEXPANDPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*518248*/            0, // EndSwitchType
/*518249*/          0, /*End of Scope*/
/*518250*/        0, /*End of Scope*/
/*518251*/      /*Scope*/ 110|128,1/*238*/, /*->518491*/
/*518253*/        OPC_CheckChild2Type, MVT::v2i1,
/*518255*/        OPC_Scope, 30|128,1/*158*/, /*->518416*/ // 2 children in Scope
/*518258*/          OPC_MoveChild3,
/*518259*/          OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::BITCAST),// ->518342
/*518263*/            OPC_MoveChild0,
/*518264*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*518267*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*518269*/            OPC_CheckType, MVT::v4i32,
/*518271*/            OPC_MoveParent,
/*518272*/            OPC_MoveParent,
/*518273*/            OPC_CheckType, MVT::v2f64,
/*518275*/            OPC_Scope, 22, /*->518299*/ // 3 children in Scope
/*518277*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*518279*/              OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*518281*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518283*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*518286*/              OPC_EmitMergeInputChains1_0,
/*518287*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 29
                        // Dst: (VMOVAPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518299*/            /*Scope*/ 20, /*->518320*/
/*518300*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*518302*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518304*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*518307*/              OPC_EmitMergeInputChains1_0,
/*518308*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_masked_load_unaligned>> - Complexity = 29
                        // Dst: (VMOVUPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518320*/            /*Scope*/ 20, /*->518341*/
/*518321*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*518323*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518325*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*518328*/              OPC_EmitMergeInputChains1_0,
/*518329*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>))<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                        // Dst: (VEXPANDPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*518341*/            0, /*End of Scope*/
/*518342*/          /*SwitchOpcode*/ 70, TARGET_VAL(ISD::UNDEF),// ->518415
/*518345*/            OPC_MoveParent,
/*518346*/            OPC_CheckType, MVT::v2f64,
/*518348*/            OPC_Scope, 22, /*->518372*/ // 3 children in Scope
/*518350*/              OPC_CheckPredicate, 98, // Predicate_X86mload
/*518352*/              OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*518354*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518356*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*518359*/              OPC_EmitMergeInputChains1_0,
/*518360*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2f64] }))<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 25
                        // Dst: (VMOVAPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518372*/            /*Scope*/ 20, /*->518393*/
/*518373*/              OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*518375*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518377*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*518380*/              OPC_EmitMergeInputChains1_0,
/*518381*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2f64] }))<<P:Predicate_masked_load_unaligned>> - Complexity = 25
                        // Dst: (VMOVUPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518393*/            /*Scope*/ 20, /*->518414*/
/*518394*/              OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*518396*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518398*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*518401*/              OPC_EmitMergeInputChains1_0,
/*518402*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2f64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VEXPANDPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*518414*/            0, /*End of Scope*/
/*518415*/          0, // EndSwitchOpcode
/*518416*/        /*Scope*/ 73, /*->518490*/
/*518417*/          OPC_RecordChild3, // #3 = $src0
/*518418*/          OPC_CheckType, MVT::v2f64,
/*518420*/          OPC_Scope, 23, /*->518445*/ // 3 children in Scope
/*518422*/            OPC_CheckPredicate, 98, // Predicate_X86mload
/*518424*/            OPC_CheckPredicate, 102, // Predicate_masked_load_aligned128
/*518426*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518428*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*518431*/            OPC_EmitMergeInputChains1_0,
/*518432*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src0)<<P:Predicate_X86mload>><<P:Predicate_masked_load_aligned128>> - Complexity = 22
                      // Dst: (VMOVAPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518445*/          /*Scope*/ 21, /*->518467*/
/*518446*/            OPC_CheckPredicate, 98, // Predicate_masked_load_unaligned
/*518448*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518450*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*518453*/            OPC_EmitMergeInputChains1_0,
/*518454*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src0)<<P:Predicate_masked_load_unaligned>> - Complexity = 22
                      // Dst: (VMOVUPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*518467*/          /*Scope*/ 21, /*->518489*/
/*518468*/            OPC_CheckPredicate, 100, // Predicate_X86mExpandingLoad
/*518470*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*518472*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*518475*/            OPC_EmitMergeInputChains1_0,
/*518476*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_load:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 22
                      // Dst: (VEXPANDPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*518489*/          0, /*End of Scope*/
/*518490*/        0, /*End of Scope*/
/*518491*/      0, /*End of Scope*/
/*518492*/    0, /*End of Scope*/
/*518493*/  /*SwitchOpcode*/ 78|128,2/*334*/, TARGET_VAL(X86ISD::FSETCCM),// ->518831
/*518497*/    OPC_Scope, 84, /*->518583*/ // 2 children in Scope
/*518499*/      OPC_MoveChild0,
/*518500*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518503*/      OPC_RecordMemRef,
/*518504*/      OPC_RecordNode, // #0 = 'ld' chained node
/*518505*/      OPC_CheckFoldableChainNode,
/*518506*/      OPC_RecordChild1, // #1 = $src2
/*518507*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518509*/      OPC_CheckPredicate, 9, // Predicate_load
/*518511*/      OPC_SwitchType /*2 cases */, 33, MVT::f64,// ->518547
/*518514*/        OPC_MoveParent,
/*518515*/        OPC_RecordChild1, // #2 = $src1
/*518516*/        OPC_RecordChild2, // #3 = $cc
/*518517*/        OPC_MoveChild2,
/*518518*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*518521*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*518523*/        OPC_MoveParent,
/*518524*/        OPC_CheckType, MVT::v1i1,
/*518526*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518528*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*518531*/        OPC_EmitMergeInputChains1_0,
/*518532*/        OPC_EmitConvertToTarget, 3,
/*518534*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v1i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpms:{ *:[v1i1] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                  // Dst: (VCMPSDZrm:{ *:[v1i1] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*518547*/      /*SwitchType*/ 33, MVT::f32,// ->518582
/*518549*/        OPC_MoveParent,
/*518550*/        OPC_RecordChild1, // #2 = $src1
/*518551*/        OPC_RecordChild2, // #3 = $cc
/*518552*/        OPC_MoveChild2,
/*518553*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*518556*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*518558*/        OPC_MoveParent,
/*518559*/        OPC_CheckType, MVT::v1i1,
/*518561*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518563*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*518566*/        OPC_EmitMergeInputChains1_0,
/*518567*/        OPC_EmitConvertToTarget, 3,
/*518569*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v1i1, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpms:{ *:[v1i1] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                  // Dst: (VCMPSSZrm:{ *:[v1i1] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*518582*/      0, // EndSwitchType
/*518583*/    /*Scope*/ 117|128,1/*245*/, /*->518830*/
/*518585*/      OPC_RecordChild0, // #0 = $src1
/*518586*/      OPC_Scope, 70, /*->518658*/ // 4 children in Scope
/*518588*/        OPC_CheckChild0Type, MVT::f32,
/*518590*/        OPC_Scope, 42, /*->518634*/ // 2 children in Scope
/*518592*/          OPC_MoveChild1,
/*518593*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518596*/          OPC_RecordMemRef,
/*518597*/          OPC_RecordNode, // #1 = 'ld' chained node
/*518598*/          OPC_CheckFoldableChainNode,
/*518599*/          OPC_RecordChild1, // #2 = $src2
/*518600*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518602*/          OPC_CheckPredicate, 9, // Predicate_load
/*518604*/          OPC_MoveParent,
/*518605*/          OPC_RecordChild2, // #3 = $cc
/*518606*/          OPC_MoveChild2,
/*518607*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*518610*/          OPC_MoveParent,
/*518611*/          OPC_CheckType, MVT::v1i1,
/*518613*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518615*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*518618*/          OPC_EmitMergeInputChains1_1,
/*518619*/          OPC_EmitConvertToTarget, 3,
/*518621*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpms:{ *:[v1i1] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                    // Dst: (VCMPSSZrm:{ *:[v1i1] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*518634*/        /*Scope*/ 22, /*->518657*/
/*518635*/          OPC_RecordChild1, // #1 = $src2
/*518636*/          OPC_RecordChild2, // #2 = $cc
/*518637*/          OPC_MoveChild2,
/*518638*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*518641*/          OPC_MoveParent,
/*518642*/          OPC_CheckType, MVT::v1i1,
/*518644*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518646*/          OPC_EmitConvertToTarget, 2,
/*518648*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrr), 0,
                        MVT::v1i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86cmpms:{ *:[v1i1] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPSSZrr:{ *:[v1i1] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*518657*/        0, /*End of Scope*/
/*518658*/      /*Scope*/ 70, /*->518729*/
/*518659*/        OPC_CheckChild0Type, MVT::f64,
/*518661*/        OPC_Scope, 42, /*->518705*/ // 2 children in Scope
/*518663*/          OPC_MoveChild1,
/*518664*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518667*/          OPC_RecordMemRef,
/*518668*/          OPC_RecordNode, // #1 = 'ld' chained node
/*518669*/          OPC_CheckFoldableChainNode,
/*518670*/          OPC_RecordChild1, // #2 = $src2
/*518671*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518673*/          OPC_CheckPredicate, 9, // Predicate_load
/*518675*/          OPC_MoveParent,
/*518676*/          OPC_RecordChild2, // #3 = $cc
/*518677*/          OPC_MoveChild2,
/*518678*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*518681*/          OPC_MoveParent,
/*518682*/          OPC_CheckType, MVT::v1i1,
/*518684*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518686*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*518689*/          OPC_EmitMergeInputChains1_1,
/*518690*/          OPC_EmitConvertToTarget, 3,
/*518692*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpms:{ *:[v1i1] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                    // Dst: (VCMPSDZrm:{ *:[v1i1] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*518705*/        /*Scope*/ 22, /*->518728*/
/*518706*/          OPC_RecordChild1, // #1 = $src2
/*518707*/          OPC_RecordChild2, // #2 = $cc
/*518708*/          OPC_MoveChild2,
/*518709*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*518712*/          OPC_MoveParent,
/*518713*/          OPC_CheckType, MVT::v1i1,
/*518715*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518717*/          OPC_EmitConvertToTarget, 2,
/*518719*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrr), 0,
                        MVT::v1i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86cmpms:{ *:[v1i1] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPSDZrr:{ *:[v1i1] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*518728*/        0, /*End of Scope*/
/*518729*/      /*Scope*/ 49, /*->518779*/
/*518730*/        OPC_CheckChild0Type, MVT::v4f32,
/*518732*/        OPC_RecordChild1, // #1 = $src2
/*518733*/        OPC_RecordChild2, // #2 = $cc
/*518734*/        OPC_MoveChild2,
/*518735*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*518738*/        OPC_MoveParent,
/*518739*/        OPC_CheckType, MVT::v1i1,
/*518741*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518743*/        OPC_Scope, 21, /*->518766*/ // 2 children in Scope
/*518745*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*518748*/          OPC_EmitMergeInputChains, 1, 8, 
/*518751*/          OPC_EmitConvertToTarget, 2,
/*518753*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                    // Src: (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 24
                    // Dst: (VCMPSSZrm_Int:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*518766*/        /*Scope*/ 11, /*->518778*/
/*518767*/          OPC_EmitConvertToTarget, 2,
/*518769*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrr_Int), 0,
                        MVT::v1i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPSSZrr_Int:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*518778*/        0, /*End of Scope*/
/*518779*/      /*Scope*/ 49, /*->518829*/
/*518780*/        OPC_CheckChild0Type, MVT::v2f64,
/*518782*/        OPC_RecordChild1, // #1 = $src2
/*518783*/        OPC_RecordChild2, // #2 = $cc
/*518784*/        OPC_MoveChild2,
/*518785*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*518788*/        OPC_MoveParent,
/*518789*/        OPC_CheckType, MVT::v1i1,
/*518791*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518793*/        OPC_Scope, 21, /*->518816*/ // 2 children in Scope
/*518795*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*518798*/          OPC_EmitMergeInputChains, 1, 8, 
/*518801*/          OPC_EmitConvertToTarget, 2,
/*518803*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                    // Src: (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 24
                    // Dst: (VCMPSDZrm_Int:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*518816*/        /*Scope*/ 11, /*->518828*/
/*518817*/          OPC_EmitConvertToTarget, 2,
/*518819*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrr_Int), 0,
                        MVT::v1i1, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPSDZrr_Int:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*518828*/        0, /*End of Scope*/
/*518829*/      0, /*End of Scope*/
/*518830*/    0, /*End of Scope*/
/*518831*/  /*SwitchOpcode*/ 9|128,3/*393*/, TARGET_VAL(X86ISD::VPSHA),// ->519228
/*518835*/    OPC_Scope, 43, /*->518880*/ // 9 children in Scope
/*518837*/      OPC_RecordChild0, // #0 = $src1
/*518838*/      OPC_MoveChild1,
/*518839*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*518842*/      OPC_MoveChild0,
/*518843*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518846*/      OPC_RecordMemRef,
/*518847*/      OPC_RecordNode, // #1 = 'ld' chained node
/*518848*/      OPC_CheckFoldableChainNode,
/*518849*/      OPC_RecordChild1, // #2 = $src2
/*518850*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518852*/      OPC_CheckPredicate, 9, // Predicate_load
/*518854*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*518856*/      OPC_CheckType, MVT::v2i64,
/*518858*/      OPC_MoveParent,
/*518859*/      OPC_MoveParent,
/*518860*/      OPC_CheckType, MVT::v16i8,
/*518862*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*518864*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*518867*/      OPC_EmitMergeInputChains1_1,
/*518868*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHABrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86vpsha:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                // Dst: (VPSHABrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*518880*/    /*Scope*/ 43, /*->518924*/
/*518881*/      OPC_MoveChild0,
/*518882*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*518885*/      OPC_MoveChild0,
/*518886*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518889*/      OPC_RecordMemRef,
/*518890*/      OPC_RecordNode, // #0 = 'ld' chained node
/*518891*/      OPC_CheckFoldableChainNode,
/*518892*/      OPC_RecordChild1, // #1 = $src1
/*518893*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518895*/      OPC_CheckPredicate, 9, // Predicate_load
/*518897*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*518899*/      OPC_CheckType, MVT::v2i64,
/*518901*/      OPC_MoveParent,
/*518902*/      OPC_MoveParent,
/*518903*/      OPC_RecordChild1, // #2 = $src2
/*518904*/      OPC_CheckType, MVT::v16i8,
/*518906*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*518908*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*518911*/      OPC_EmitMergeInputChains1_0,
/*518912*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHABmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpsha:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src2) - Complexity = 28
                // Dst: (VPSHABmr:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*518924*/    /*Scope*/ 43, /*->518968*/
/*518925*/      OPC_RecordChild0, // #0 = $src1
/*518926*/      OPC_MoveChild1,
/*518927*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*518930*/      OPC_MoveChild0,
/*518931*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518934*/      OPC_RecordMemRef,
/*518935*/      OPC_RecordNode, // #1 = 'ld' chained node
/*518936*/      OPC_CheckFoldableChainNode,
/*518937*/      OPC_RecordChild1, // #2 = $src2
/*518938*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518940*/      OPC_CheckPredicate, 9, // Predicate_load
/*518942*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*518944*/      OPC_CheckType, MVT::v2i64,
/*518946*/      OPC_MoveParent,
/*518947*/      OPC_MoveParent,
/*518948*/      OPC_CheckType, MVT::v4i32,
/*518950*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*518952*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*518955*/      OPC_EmitMergeInputChains1_1,
/*518956*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHADrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86vpsha:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                // Dst: (VPSHADrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*518968*/    /*Scope*/ 43, /*->519012*/
/*518969*/      OPC_MoveChild0,
/*518970*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*518973*/      OPC_MoveChild0,
/*518974*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518977*/      OPC_RecordMemRef,
/*518978*/      OPC_RecordNode, // #0 = 'ld' chained node
/*518979*/      OPC_CheckFoldableChainNode,
/*518980*/      OPC_RecordChild1, // #1 = $src1
/*518981*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518983*/      OPC_CheckPredicate, 9, // Predicate_load
/*518985*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*518987*/      OPC_CheckType, MVT::v2i64,
/*518989*/      OPC_MoveParent,
/*518990*/      OPC_MoveParent,
/*518991*/      OPC_RecordChild1, // #2 = $src2
/*518992*/      OPC_CheckType, MVT::v4i32,
/*518994*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*518996*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*518999*/      OPC_EmitMergeInputChains1_0,
/*519000*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHADmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpsha:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src2) - Complexity = 28
                // Dst: (VPSHADmr:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*519012*/    /*Scope*/ 43, /*->519056*/
/*519013*/      OPC_RecordChild0, // #0 = $src1
/*519014*/      OPC_MoveChild1,
/*519015*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*519018*/      OPC_MoveChild0,
/*519019*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519022*/      OPC_RecordMemRef,
/*519023*/      OPC_RecordNode, // #1 = 'ld' chained node
/*519024*/      OPC_CheckFoldableChainNode,
/*519025*/      OPC_RecordChild1, // #2 = $src2
/*519026*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519028*/      OPC_CheckPredicate, 9, // Predicate_load
/*519030*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519032*/      OPC_CheckType, MVT::v2i64,
/*519034*/      OPC_MoveParent,
/*519035*/      OPC_MoveParent,
/*519036*/      OPC_CheckType, MVT::v8i16,
/*519038*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519040*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519043*/      OPC_EmitMergeInputChains1_1,
/*519044*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHAWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86vpsha:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                // Dst: (VPSHAWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519056*/    /*Scope*/ 43, /*->519100*/
/*519057*/      OPC_MoveChild0,
/*519058*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*519061*/      OPC_MoveChild0,
/*519062*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519065*/      OPC_RecordMemRef,
/*519066*/      OPC_RecordNode, // #0 = 'ld' chained node
/*519067*/      OPC_CheckFoldableChainNode,
/*519068*/      OPC_RecordChild1, // #1 = $src1
/*519069*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519071*/      OPC_CheckPredicate, 9, // Predicate_load
/*519073*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519075*/      OPC_CheckType, MVT::v2i64,
/*519077*/      OPC_MoveParent,
/*519078*/      OPC_MoveParent,
/*519079*/      OPC_RecordChild1, // #2 = $src2
/*519080*/      OPC_CheckType, MVT::v8i16,
/*519082*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519084*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*519087*/      OPC_EmitMergeInputChains1_0,
/*519088*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHAWmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpsha:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src2) - Complexity = 28
                // Dst: (VPSHAWmr:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*519100*/    /*Scope*/ 36, /*->519137*/
/*519101*/      OPC_RecordChild0, // #0 = $src1
/*519102*/      OPC_MoveChild1,
/*519103*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519106*/      OPC_RecordMemRef,
/*519107*/      OPC_RecordNode, // #1 = 'ld' chained node
/*519108*/      OPC_CheckFoldableChainNode,
/*519109*/      OPC_RecordChild1, // #2 = $src2
/*519110*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519112*/      OPC_CheckPredicate, 9, // Predicate_load
/*519114*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519116*/      OPC_MoveParent,
/*519117*/      OPC_CheckType, MVT::v2i64,
/*519119*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519121*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519124*/      OPC_EmitMergeInputChains1_1,
/*519125*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHAQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86vpsha:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                // Dst: (VPSHAQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519137*/    /*Scope*/ 36, /*->519174*/
/*519138*/      OPC_MoveChild0,
/*519139*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519142*/      OPC_RecordMemRef,
/*519143*/      OPC_RecordNode, // #0 = 'ld' chained node
/*519144*/      OPC_CheckFoldableChainNode,
/*519145*/      OPC_RecordChild1, // #1 = $src1
/*519146*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519148*/      OPC_CheckPredicate, 9, // Predicate_load
/*519150*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519152*/      OPC_MoveParent,
/*519153*/      OPC_RecordChild1, // #2 = $src2
/*519154*/      OPC_CheckType, MVT::v2i64,
/*519156*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519158*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*519161*/      OPC_EmitMergeInputChains1_0,
/*519162*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHAQmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpsha:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2i64] }:$src2) - Complexity = 25
                // Dst: (VPSHAQmr:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*519174*/    /*Scope*/ 52, /*->519227*/
/*519175*/      OPC_RecordChild0, // #0 = $src1
/*519176*/      OPC_RecordChild1, // #1 = $src2
/*519177*/      OPC_SwitchType /*4 cases */, 10, MVT::v16i8,// ->519190
/*519180*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519182*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHABrr), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vpsha:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                  // Dst: (VPSHABrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*519190*/      /*SwitchType*/ 10, MVT::v4i32,// ->519202
/*519192*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519194*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHADrr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vpsha:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                  // Dst: (VPSHADrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*519202*/      /*SwitchType*/ 10, MVT::v2i64,// ->519214
/*519204*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519206*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHAQrr), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vpsha:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                  // Dst: (VPSHAQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*519214*/      /*SwitchType*/ 10, MVT::v8i16,// ->519226
/*519216*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519218*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHAWrr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vpsha:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                  // Dst: (VPSHAWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*519226*/      0, // EndSwitchType
/*519227*/    0, /*End of Scope*/
/*519228*/  /*SwitchOpcode*/ 9|128,3/*393*/, TARGET_VAL(X86ISD::VPSHL),// ->519625
/*519232*/    OPC_Scope, 43, /*->519277*/ // 9 children in Scope
/*519234*/      OPC_RecordChild0, // #0 = $src1
/*519235*/      OPC_MoveChild1,
/*519236*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*519239*/      OPC_MoveChild0,
/*519240*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519243*/      OPC_RecordMemRef,
/*519244*/      OPC_RecordNode, // #1 = 'ld' chained node
/*519245*/      OPC_CheckFoldableChainNode,
/*519246*/      OPC_RecordChild1, // #2 = $src2
/*519247*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519249*/      OPC_CheckPredicate, 9, // Predicate_load
/*519251*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519253*/      OPC_CheckType, MVT::v2i64,
/*519255*/      OPC_MoveParent,
/*519256*/      OPC_MoveParent,
/*519257*/      OPC_CheckType, MVT::v16i8,
/*519259*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519261*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519264*/      OPC_EmitMergeInputChains1_1,
/*519265*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86vpshl:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                // Dst: (VPSHLBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519277*/    /*Scope*/ 43, /*->519321*/
/*519278*/      OPC_MoveChild0,
/*519279*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*519282*/      OPC_MoveChild0,
/*519283*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519286*/      OPC_RecordMemRef,
/*519287*/      OPC_RecordNode, // #0 = 'ld' chained node
/*519288*/      OPC_CheckFoldableChainNode,
/*519289*/      OPC_RecordChild1, // #1 = $src1
/*519290*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519292*/      OPC_CheckPredicate, 9, // Predicate_load
/*519294*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519296*/      OPC_CheckType, MVT::v2i64,
/*519298*/      OPC_MoveParent,
/*519299*/      OPC_MoveParent,
/*519300*/      OPC_RecordChild1, // #2 = $src2
/*519301*/      OPC_CheckType, MVT::v16i8,
/*519303*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519305*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*519308*/      OPC_EmitMergeInputChains1_0,
/*519309*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLBmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpshl:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src2) - Complexity = 28
                // Dst: (VPSHLBmr:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*519321*/    /*Scope*/ 43, /*->519365*/
/*519322*/      OPC_RecordChild0, // #0 = $src1
/*519323*/      OPC_MoveChild1,
/*519324*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*519327*/      OPC_MoveChild0,
/*519328*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519331*/      OPC_RecordMemRef,
/*519332*/      OPC_RecordNode, // #1 = 'ld' chained node
/*519333*/      OPC_CheckFoldableChainNode,
/*519334*/      OPC_RecordChild1, // #2 = $src2
/*519335*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519337*/      OPC_CheckPredicate, 9, // Predicate_load
/*519339*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519341*/      OPC_CheckType, MVT::v2i64,
/*519343*/      OPC_MoveParent,
/*519344*/      OPC_MoveParent,
/*519345*/      OPC_CheckType, MVT::v4i32,
/*519347*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519349*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519352*/      OPC_EmitMergeInputChains1_1,
/*519353*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86vpshl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                // Dst: (VPSHLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519365*/    /*Scope*/ 43, /*->519409*/
/*519366*/      OPC_MoveChild0,
/*519367*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*519370*/      OPC_MoveChild0,
/*519371*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519374*/      OPC_RecordMemRef,
/*519375*/      OPC_RecordNode, // #0 = 'ld' chained node
/*519376*/      OPC_CheckFoldableChainNode,
/*519377*/      OPC_RecordChild1, // #1 = $src1
/*519378*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519380*/      OPC_CheckPredicate, 9, // Predicate_load
/*519382*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519384*/      OPC_CheckType, MVT::v2i64,
/*519386*/      OPC_MoveParent,
/*519387*/      OPC_MoveParent,
/*519388*/      OPC_RecordChild1, // #2 = $src2
/*519389*/      OPC_CheckType, MVT::v4i32,
/*519391*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519393*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*519396*/      OPC_EmitMergeInputChains1_0,
/*519397*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpshl:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src2) - Complexity = 28
                // Dst: (VPSHLDmr:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*519409*/    /*Scope*/ 43, /*->519453*/
/*519410*/      OPC_RecordChild0, // #0 = $src1
/*519411*/      OPC_MoveChild1,
/*519412*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*519415*/      OPC_MoveChild0,
/*519416*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519419*/      OPC_RecordMemRef,
/*519420*/      OPC_RecordNode, // #1 = 'ld' chained node
/*519421*/      OPC_CheckFoldableChainNode,
/*519422*/      OPC_RecordChild1, // #2 = $src2
/*519423*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519425*/      OPC_CheckPredicate, 9, // Predicate_load
/*519427*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519429*/      OPC_CheckType, MVT::v2i64,
/*519431*/      OPC_MoveParent,
/*519432*/      OPC_MoveParent,
/*519433*/      OPC_CheckType, MVT::v8i16,
/*519435*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519437*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519440*/      OPC_EmitMergeInputChains1_1,
/*519441*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86vpshl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                // Dst: (VPSHLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519453*/    /*Scope*/ 43, /*->519497*/
/*519454*/      OPC_MoveChild0,
/*519455*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*519458*/      OPC_MoveChild0,
/*519459*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519462*/      OPC_RecordMemRef,
/*519463*/      OPC_RecordNode, // #0 = 'ld' chained node
/*519464*/      OPC_CheckFoldableChainNode,
/*519465*/      OPC_RecordChild1, // #1 = $src1
/*519466*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519468*/      OPC_CheckPredicate, 9, // Predicate_load
/*519470*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519472*/      OPC_CheckType, MVT::v2i64,
/*519474*/      OPC_MoveParent,
/*519475*/      OPC_MoveParent,
/*519476*/      OPC_RecordChild1, // #2 = $src2
/*519477*/      OPC_CheckType, MVT::v8i16,
/*519479*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519481*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*519484*/      OPC_EmitMergeInputChains1_0,
/*519485*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLWmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpshl:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src2) - Complexity = 28
                // Dst: (VPSHLWmr:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*519497*/    /*Scope*/ 36, /*->519534*/
/*519498*/      OPC_RecordChild0, // #0 = $src1
/*519499*/      OPC_MoveChild1,
/*519500*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519503*/      OPC_RecordMemRef,
/*519504*/      OPC_RecordNode, // #1 = 'ld' chained node
/*519505*/      OPC_CheckFoldableChainNode,
/*519506*/      OPC_RecordChild1, // #2 = $src2
/*519507*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519509*/      OPC_CheckPredicate, 9, // Predicate_load
/*519511*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519513*/      OPC_MoveParent,
/*519514*/      OPC_CheckType, MVT::v2i64,
/*519516*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519518*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519521*/      OPC_EmitMergeInputChains1_1,
/*519522*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86vpshl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                // Dst: (VPSHLQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519534*/    /*Scope*/ 36, /*->519571*/
/*519535*/      OPC_MoveChild0,
/*519536*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519539*/      OPC_RecordMemRef,
/*519540*/      OPC_RecordNode, // #0 = 'ld' chained node
/*519541*/      OPC_CheckFoldableChainNode,
/*519542*/      OPC_RecordChild1, // #1 = $src1
/*519543*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519545*/      OPC_CheckPredicate, 9, // Predicate_load
/*519547*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519549*/      OPC_MoveParent,
/*519550*/      OPC_RecordChild1, // #2 = $src2
/*519551*/      OPC_CheckType, MVT::v2i64,
/*519553*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519555*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*519558*/      OPC_EmitMergeInputChains1_0,
/*519559*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLQmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpshl:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2i64] }:$src2) - Complexity = 25
                // Dst: (VPSHLQmr:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*519571*/    /*Scope*/ 52, /*->519624*/
/*519572*/      OPC_RecordChild0, // #0 = $src1
/*519573*/      OPC_RecordChild1, // #1 = $src2
/*519574*/      OPC_SwitchType /*4 cases */, 10, MVT::v16i8,// ->519587
/*519577*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519579*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLBrr), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vpshl:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                  // Dst: (VPSHLBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*519587*/      /*SwitchType*/ 10, MVT::v4i32,// ->519599
/*519589*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519591*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDrr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vpshl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                  // Dst: (VPSHLDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*519599*/      /*SwitchType*/ 10, MVT::v2i64,// ->519611
/*519601*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519603*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLQrr), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vpshl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                  // Dst: (VPSHLQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*519611*/      /*SwitchType*/ 10, MVT::v8i16,// ->519623
/*519613*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519615*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLWrr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vpshl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                  // Dst: (VPSHLWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*519623*/      0, // EndSwitchType
/*519624*/    0, /*End of Scope*/
/*519625*/  /*SwitchOpcode*/ 103, TARGET_VAL(X86ISD::VPPERM),// ->519731
/*519628*/    OPC_RecordChild0, // #0 = $src1
/*519629*/    OPC_Scope, 42, /*->519673*/ // 3 children in Scope
/*519631*/      OPC_RecordChild1, // #1 = $src2
/*519632*/      OPC_MoveChild2,
/*519633*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*519636*/      OPC_MoveChild0,
/*519637*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519640*/      OPC_RecordMemRef,
/*519641*/      OPC_RecordNode, // #2 = 'ld' chained node
/*519642*/      OPC_CheckFoldableChainNode,
/*519643*/      OPC_RecordChild1, // #3 = $src3
/*519644*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519646*/      OPC_CheckPredicate, 9, // Predicate_load
/*519648*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519650*/      OPC_CheckType, MVT::v2i64,
/*519652*/      OPC_MoveParent,
/*519653*/      OPC_MoveParent,
/*519654*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519656*/      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*519659*/      OPC_EmitMergeInputChains1_2,
/*519660*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPPERMrrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                // Src: (X86vpperm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                // Dst: (VPPERMrrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*519673*/    /*Scope*/ 42, /*->519716*/
/*519674*/      OPC_MoveChild1,
/*519675*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*519678*/      OPC_MoveChild0,
/*519679*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519682*/      OPC_RecordMemRef,
/*519683*/      OPC_RecordNode, // #1 = 'ld' chained node
/*519684*/      OPC_CheckFoldableChainNode,
/*519685*/      OPC_RecordChild1, // #2 = $src2
/*519686*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519688*/      OPC_CheckPredicate, 9, // Predicate_load
/*519690*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*519692*/      OPC_CheckType, MVT::v2i64,
/*519694*/      OPC_MoveParent,
/*519695*/      OPC_MoveParent,
/*519696*/      OPC_RecordChild2, // #3 = $src3
/*519697*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519699*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*519702*/      OPC_EmitMergeInputChains1_1,
/*519703*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPPERMrmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86vpperm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src3) - Complexity = 28
                // Dst: (VPPERMrmr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v16i8] }:$src3)
/*519716*/    /*Scope*/ 13, /*->519730*/
/*519717*/      OPC_RecordChild1, // #1 = $src2
/*519718*/      OPC_RecordChild2, // #2 = $src3
/*519719*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*519721*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPPERMrrr), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86vpperm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, VR128:{ *:[v16i8] }:$src3) - Complexity = 3
                // Dst: (VPPERMrrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, VR128:{ *:[v16i8] }:$src3)
/*519730*/    0, /*End of Scope*/
/*519731*/  /*SwitchOpcode*/ 52|128,14/*1844*/, TARGET_VAL(X86ISD::UNPCKL),// ->521579
/*519735*/    OPC_RecordChild0, // #0 = $src1
/*519736*/    OPC_Scope, 125|128,5/*765*/, /*->520504*/ // 4 children in Scope
/*519739*/      OPC_MoveChild1,
/*519740*/      OPC_SwitchOpcode /*3 cases */, 52|128,3/*436*/, TARGET_VAL(ISD::BITCAST),// ->520181
/*519745*/        OPC_MoveChild0,
/*519746*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519749*/        OPC_RecordMemRef,
/*519750*/        OPC_RecordNode, // #1 = 'ld' chained node
/*519751*/        OPC_CheckFoldableChainNode,
/*519752*/        OPC_RecordChild1, // #2 = $src2
/*519753*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519755*/        OPC_CheckPredicate, 9, // Predicate_load
/*519757*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*519759*/        OPC_SwitchType /*3 cases */, 21|128,1/*149*/, MVT::v4i64,// ->519912
/*519763*/          OPC_MoveParent,
/*519764*/          OPC_MoveParent,
/*519765*/          OPC_SwitchType /*3 cases */, 59, MVT::v8i32,// ->519827
/*519768*/            OPC_Scope, 18, /*->519788*/ // 3 children in Scope
/*519770*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*519772*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519775*/              OPC_EmitMergeInputChains1_1,
/*519776*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VUNPCKLPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519788*/            /*Scope*/ 18, /*->519807*/
/*519789*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*519791*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519794*/              OPC_EmitMergeInputChains1_1,
/*519795*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLDQYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519807*/            /*Scope*/ 18, /*->519826*/
/*519808*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*519810*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519813*/              OPC_EmitMergeInputChains1_1,
/*519814*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLDQZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519826*/            0, /*End of Scope*/
/*519827*/          /*SwitchType*/ 40, MVT::v32i8,// ->519869
/*519829*/            OPC_Scope, 18, /*->519849*/ // 2 children in Scope
/*519831*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*519833*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519836*/              OPC_EmitMergeInputChains1_1,
/*519837*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLBWYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519849*/            /*Scope*/ 18, /*->519868*/
/*519850*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*519852*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519855*/              OPC_EmitMergeInputChains1_1,
/*519856*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLBWZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519868*/            0, /*End of Scope*/
/*519869*/          /*SwitchType*/ 40, MVT::v16i16,// ->519911
/*519871*/            OPC_Scope, 18, /*->519891*/ // 2 children in Scope
/*519873*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*519875*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519878*/              OPC_EmitMergeInputChains1_1,
/*519879*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLWDYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519891*/            /*Scope*/ 18, /*->519910*/
/*519892*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*519894*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519897*/              OPC_EmitMergeInputChains1_1,
/*519898*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLWDZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519910*/            0, /*End of Scope*/
/*519911*/          0, // EndSwitchType
/*519912*/        /*SwitchType*/ 71|128,1/*199*/, MVT::v2i64,// ->520114
/*519915*/          OPC_Scope, 64, /*->519981*/ // 3 children in Scope
/*519917*/            OPC_MoveParent,
/*519918*/            OPC_MoveParent,
/*519919*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->519940
/*519922*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*519924*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519927*/              OPC_EmitMergeInputChains1_1,
/*519928*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLBWrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519940*/            /*SwitchType*/ 18, MVT::v8i16,// ->519960
/*519942*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*519944*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519947*/              OPC_EmitMergeInputChains1_1,
/*519948*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLWDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519960*/            /*SwitchType*/ 18, MVT::v4i32,// ->519980
/*519962*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*519964*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519967*/              OPC_EmitMergeInputChains1_1,
/*519968*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLDQrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519980*/            0, // EndSwitchType
/*519981*/          /*Scope*/ 66, /*->520048*/
/*519982*/            OPC_CheckPredicate, 48, // Predicate_memop
/*519984*/            OPC_MoveParent,
/*519985*/            OPC_MoveParent,
/*519986*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->520007
/*519989*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*519991*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*519994*/              OPC_EmitMergeInputChains1_1,
/*519995*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PUNPCKLBWrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520007*/            /*SwitchType*/ 18, MVT::v8i16,// ->520027
/*520009*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*520011*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520014*/              OPC_EmitMergeInputChains1_1,
/*520015*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PUNPCKLWDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520027*/            /*SwitchType*/ 18, MVT::v4i32,// ->520047
/*520029*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*520031*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520034*/              OPC_EmitMergeInputChains1_1,
/*520035*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PUNPCKLDQrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520047*/            0, // EndSwitchType
/*520048*/          /*Scope*/ 64, /*->520113*/
/*520049*/            OPC_MoveParent,
/*520050*/            OPC_MoveParent,
/*520051*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->520072
/*520054*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*520056*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520059*/              OPC_EmitMergeInputChains1_1,
/*520060*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLBWZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520072*/            /*SwitchType*/ 18, MVT::v8i16,// ->520092
/*520074*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*520076*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520079*/              OPC_EmitMergeInputChains1_1,
/*520080*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLWDZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520092*/            /*SwitchType*/ 18, MVT::v4i32,// ->520112
/*520094*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*520096*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520099*/              OPC_EmitMergeInputChains1_1,
/*520100*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKLDQZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520112*/            0, // EndSwitchType
/*520113*/          0, /*End of Scope*/
/*520114*/        /*SwitchType*/ 64, MVT::v8i64,// ->520180
/*520116*/          OPC_MoveParent,
/*520117*/          OPC_MoveParent,
/*520118*/          OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->520139
/*520121*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*520123*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520126*/            OPC_EmitMergeInputChains1_1,
/*520127*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPUNPCKLBWZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520139*/          /*SwitchType*/ 18, MVT::v32i16,// ->520159
/*520141*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*520143*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520146*/            OPC_EmitMergeInputChains1_1,
/*520147*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPUNPCKLWDZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520159*/          /*SwitchType*/ 18, MVT::v16i32,// ->520179
/*520161*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520163*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520166*/            OPC_EmitMergeInputChains1_1,
/*520167*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPUNPCKLDQZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520179*/          0, // EndSwitchType
/*520180*/        0, // EndSwitchType
/*520181*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->520333
/*520185*/        OPC_MoveChild0,
/*520186*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*520189*/        OPC_RecordMemRef,
/*520190*/        OPC_RecordNode, // #1 = 'ld' chained node
/*520191*/        OPC_CheckFoldableChainNode,
/*520192*/        OPC_RecordChild1, // #2 = $src2
/*520193*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*520195*/        OPC_SwitchType /*2 cases */, 66, MVT::i32,// ->520264
/*520198*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*520200*/          OPC_MoveParent,
/*520201*/          OPC_MoveParent,
/*520202*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->520223
/*520205*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520207*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520210*/            OPC_EmitMergeInputChains1_1,
/*520211*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPUNPCKLDQZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520223*/          /*SwitchType*/ 18, MVT::v8i32,// ->520243
/*520225*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*520227*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520230*/            OPC_EmitMergeInputChains1_1,
/*520231*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPUNPCKLDQZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520243*/          /*SwitchType*/ 18, MVT::v4i32,// ->520263
/*520245*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*520247*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520250*/            OPC_EmitMergeInputChains1_1,
/*520251*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPUNPCKLDQZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520263*/          0, // EndSwitchType
/*520264*/        /*SwitchType*/ 66, MVT::i64,// ->520332
/*520266*/          OPC_CheckPredicate, 9, // Predicate_load
/*520268*/          OPC_MoveParent,
/*520269*/          OPC_MoveParent,
/*520270*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->520291
/*520273*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520275*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520278*/            OPC_EmitMergeInputChains1_1,
/*520279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPUNPCKLQDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520291*/          /*SwitchType*/ 18, MVT::v4i64,// ->520311
/*520293*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*520295*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520298*/            OPC_EmitMergeInputChains1_1,
/*520299*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPUNPCKLQDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520311*/          /*SwitchType*/ 18, MVT::v2i64,// ->520331
/*520313*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*520315*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520318*/            OPC_EmitMergeInputChains1_1,
/*520319*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPUNPCKLQDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520331*/          0, // EndSwitchType
/*520332*/        0, // EndSwitchType
/*520333*/      /*SwitchOpcode*/ 38|128,1/*166*/, TARGET_VAL(ISD::LOAD),// ->520503
/*520337*/        OPC_RecordMemRef,
/*520338*/        OPC_RecordNode, // #1 = 'ld' chained node
/*520339*/        OPC_CheckFoldableChainNode,
/*520340*/        OPC_RecordChild1, // #2 = $src2
/*520341*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*520343*/        OPC_CheckPredicate, 9, // Predicate_load
/*520345*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*520347*/        OPC_Scope, 65, /*->520414*/ // 3 children in Scope
/*520349*/          OPC_MoveParent,
/*520350*/          OPC_SwitchType /*2 cases */, 40, MVT::v4i64,// ->520393
/*520353*/            OPC_Scope, 18, /*->520373*/ // 2 children in Scope
/*520355*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*520357*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520360*/              OPC_EmitMergeInputChains1_1,
/*520361*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VUNPCKLPDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520373*/            /*Scope*/ 18, /*->520392*/
/*520374*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*520376*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520379*/              OPC_EmitMergeInputChains1_1,
/*520380*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPUNPCKLQDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520392*/            0, /*End of Scope*/
/*520393*/          /*SwitchType*/ 18, MVT::v2i64,// ->520413
/*520395*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*520397*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520400*/            OPC_EmitMergeInputChains1_1,
/*520401*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPUNPCKLQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520413*/          0, // EndSwitchType
/*520414*/        /*Scope*/ 23, /*->520438*/
/*520415*/          OPC_CheckPredicate, 48, // Predicate_memop
/*520417*/          OPC_MoveParent,
/*520418*/          OPC_CheckType, MVT::v2i64,
/*520420*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*520422*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520425*/          OPC_EmitMergeInputChains1_1,
/*520426*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKLQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Unpckl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PUNPCKLQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520438*/        /*Scope*/ 63, /*->520502*/
/*520439*/          OPC_MoveParent,
/*520440*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->520461
/*520443*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520445*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520448*/            OPC_EmitMergeInputChains1_1,
/*520449*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPUNPCKLQDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520461*/          /*SwitchType*/ 18, MVT::v4i64,// ->520481
/*520463*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*520465*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520468*/            OPC_EmitMergeInputChains1_1,
/*520469*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPUNPCKLQDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520481*/          /*SwitchType*/ 18, MVT::v2i64,// ->520501
/*520483*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*520485*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520488*/            OPC_EmitMergeInputChains1_1,
/*520489*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPUNPCKLQDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520501*/          0, // EndSwitchType
/*520502*/        0, /*End of Scope*/
/*520503*/      0, // EndSwitchOpcode
/*520504*/    /*Scope*/ 69|128,2/*325*/, /*->520831*/
/*520506*/      OPC_RecordChild1, // #1 = $src2
/*520507*/      OPC_SwitchType /*12 cases */, 35, MVT::v8i32,// ->520545
/*520510*/        OPC_Scope, 10, /*->520522*/ // 3 children in Scope
/*520512*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*520514*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKLPSYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*520522*/        /*Scope*/ 10, /*->520533*/
/*520523*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*520525*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLDQYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*520533*/        /*Scope*/ 10, /*->520544*/
/*520534*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*520536*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLDQZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*520544*/        0, /*End of Scope*/
/*520545*/      /*SwitchType*/ 35, MVT::v4i64,// ->520582
/*520547*/        OPC_Scope, 10, /*->520559*/ // 3 children in Scope
/*520549*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*520551*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKLPDYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*520559*/        /*Scope*/ 10, /*->520570*/
/*520560*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*520562*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLQDQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*520570*/        /*Scope*/ 10, /*->520581*/
/*520571*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*520573*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLQDQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*520581*/        0, /*End of Scope*/
/*520582*/      /*SwitchType*/ 35, MVT::v16i8,// ->520619
/*520584*/        OPC_Scope, 10, /*->520596*/ // 3 children in Scope
/*520586*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*520588*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLBWrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*520596*/        /*Scope*/ 10, /*->520607*/
/*520597*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*520599*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKLBWrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PUNPCKLBWrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*520607*/        /*Scope*/ 10, /*->520618*/
/*520608*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*520610*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLBWZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*520618*/        0, /*End of Scope*/
/*520619*/      /*SwitchType*/ 35, MVT::v8i16,// ->520656
/*520621*/        OPC_Scope, 10, /*->520633*/ // 3 children in Scope
/*520623*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*520625*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLWDrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*520633*/        /*Scope*/ 10, /*->520644*/
/*520634*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*520636*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKLWDrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PUNPCKLWDrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*520644*/        /*Scope*/ 10, /*->520655*/
/*520645*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*520647*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLWDZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*520655*/        0, /*End of Scope*/
/*520656*/      /*SwitchType*/ 35, MVT::v4i32,// ->520693
/*520658*/        OPC_Scope, 10, /*->520670*/ // 3 children in Scope
/*520660*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*520662*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLDQrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*520670*/        /*Scope*/ 10, /*->520681*/
/*520671*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*520673*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKLDQrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PUNPCKLDQrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*520681*/        /*Scope*/ 10, /*->520692*/
/*520682*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*520684*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLDQZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*520692*/        0, /*End of Scope*/
/*520693*/      /*SwitchType*/ 35, MVT::v2i64,// ->520730
/*520695*/        OPC_Scope, 10, /*->520707*/ // 3 children in Scope
/*520697*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*520699*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLQDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*520707*/        /*Scope*/ 10, /*->520718*/
/*520708*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*520710*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKLQDQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (PUNPCKLQDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*520718*/        /*Scope*/ 10, /*->520729*/
/*520719*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*520721*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLQDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*520729*/        0, /*End of Scope*/
/*520730*/      /*SwitchType*/ 24, MVT::v32i8,// ->520756
/*520732*/        OPC_Scope, 10, /*->520744*/ // 2 children in Scope
/*520734*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*520736*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLBWYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*520744*/        /*Scope*/ 10, /*->520755*/
/*520745*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*520747*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLBWZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*520755*/        0, /*End of Scope*/
/*520756*/      /*SwitchType*/ 24, MVT::v16i16,// ->520782
/*520758*/        OPC_Scope, 10, /*->520770*/ // 2 children in Scope
/*520760*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*520762*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLWDYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*520770*/        /*Scope*/ 10, /*->520781*/
/*520771*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*520773*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKLWDZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*520781*/        0, /*End of Scope*/
/*520782*/      /*SwitchType*/ 10, MVT::v64i8,// ->520794
/*520784*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*520786*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLBWZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckl:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPUNPCKLBWZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*520794*/      /*SwitchType*/ 10, MVT::v32i16,// ->520806
/*520796*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*520798*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLWDZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPUNPCKLWDZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*520806*/      /*SwitchType*/ 10, MVT::v16i32,// ->520818
/*520808*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520810*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLDQZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPUNPCKLDQZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*520818*/      /*SwitchType*/ 10, MVT::v8i64,// ->520830
/*520820*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520822*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKLQDQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPUNPCKLQDQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*520830*/      0, // EndSwitchType
/*520831*/    /*Scope*/ 78|128,4/*590*/, /*->521423*/
/*520833*/      OPC_MoveChild1,
/*520834*/      OPC_SwitchOpcode /*4 cases */, 84, TARGET_VAL(ISD::BITCAST),// ->520922
/*520838*/        OPC_MoveChild0,
/*520839*/        OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*520842*/        OPC_MoveChild0,
/*520843*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*520846*/        OPC_RecordMemRef,
/*520847*/        OPC_RecordNode, // #1 = 'ld' chained node
/*520848*/        OPC_CheckFoldableChainNode,
/*520849*/        OPC_RecordChild1, // #2 = $src2
/*520850*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*520852*/        OPC_CheckPredicate, 9, // Predicate_load
/*520854*/        OPC_CheckType, MVT::i64,
/*520856*/        OPC_MoveParent,
/*520857*/        OPC_CheckType, MVT::v2i64,
/*520859*/        OPC_MoveParent,
/*520860*/        OPC_MoveParent,
/*520861*/        OPC_CheckType, MVT::v2f64,
/*520863*/        OPC_Scope, 18, /*->520883*/ // 3 children in Scope
/*520865*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*520867*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520870*/          OPC_EmitMergeInputChains1_1,
/*520871*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Unpckl:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (bitconvert:{ *:[v2f64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VMOVHPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520883*/        /*Scope*/ 18, /*->520902*/
/*520884*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*520886*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520889*/          OPC_EmitMergeInputChains1_1,
/*520890*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Unpckl:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (bitconvert:{ *:[v2f64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (MOVHPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520902*/        /*Scope*/ 18, /*->520921*/
/*520903*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520905*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520908*/          OPC_EmitMergeInputChains1_1,
/*520909*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVHPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Unpckl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (bitconvert:{ *:[v2f64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VMOVHPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520921*/        0, /*End of Scope*/
/*520922*/      /*SwitchOpcode*/ 77, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->521002
/*520925*/        OPC_MoveChild0,
/*520926*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*520929*/        OPC_RecordMemRef,
/*520930*/        OPC_RecordNode, // #1 = 'ld' chained node
/*520931*/        OPC_CheckFoldableChainNode,
/*520932*/        OPC_RecordChild1, // #2 = $src2
/*520933*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*520935*/        OPC_CheckPredicate, 9, // Predicate_load
/*520937*/        OPC_CheckType, MVT::f64,
/*520939*/        OPC_MoveParent,
/*520940*/        OPC_MoveParent,
/*520941*/        OPC_CheckType, MVT::v2f64,
/*520943*/        OPC_Scope, 18, /*->520963*/ // 3 children in Scope
/*520945*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*520947*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520950*/          OPC_EmitMergeInputChains1_1,
/*520951*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Unpckl:{ *:[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)
/*520963*/        /*Scope*/ 18, /*->520982*/
/*520964*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*520966*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520969*/          OPC_EmitMergeInputChains1_1,
/*520970*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Unpckl:{ *:[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)
/*520982*/        /*Scope*/ 18, /*->521001*/
/*520983*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520985*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*520988*/          OPC_EmitMergeInputChains1_1,
/*520989*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVHPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Unpckl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VMOVHPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521001*/        0, /*End of Scope*/
/*521002*/      /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST),// ->521152
/*521006*/        OPC_MoveChild0,
/*521007*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*521010*/        OPC_RecordMemRef,
/*521011*/        OPC_RecordNode, // #1 = 'ld' chained node
/*521012*/        OPC_CheckFoldableChainNode,
/*521013*/        OPC_RecordChild1, // #2 = $src2
/*521014*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*521016*/        OPC_CheckPredicate, 9, // Predicate_load
/*521018*/        OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->521085
/*521021*/          OPC_MoveParent,
/*521022*/          OPC_MoveParent,
/*521023*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->521044
/*521026*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521028*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521031*/            OPC_EmitMergeInputChains1_1,
/*521032*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKLPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521044*/          /*SwitchType*/ 18, MVT::v4f32,// ->521064
/*521046*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521048*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521051*/            OPC_EmitMergeInputChains1_1,
/*521052*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKLPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521064*/          /*SwitchType*/ 18, MVT::v8f32,// ->521084
/*521066*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521068*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521071*/            OPC_EmitMergeInputChains1_1,
/*521072*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKLPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521084*/          0, // EndSwitchType
/*521085*/        /*SwitchType*/ 64, MVT::f64,// ->521151
/*521087*/          OPC_MoveParent,
/*521088*/          OPC_MoveParent,
/*521089*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->521110
/*521092*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521094*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521097*/            OPC_EmitMergeInputChains1_1,
/*521098*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKLPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521110*/          /*SwitchType*/ 18, MVT::v2f64,// ->521130
/*521112*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521114*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521117*/            OPC_EmitMergeInputChains1_1,
/*521118*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKLPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521130*/          /*SwitchType*/ 18, MVT::v4f64,// ->521150
/*521132*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521134*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521137*/            OPC_EmitMergeInputChains1_1,
/*521138*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKLPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521150*/          0, // EndSwitchType
/*521151*/        0, // EndSwitchType
/*521152*/      /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::LOAD),// ->521422
/*521156*/        OPC_RecordMemRef,
/*521157*/        OPC_RecordNode, // #1 = 'ld' chained node
/*521158*/        OPC_CheckFoldableChainNode,
/*521159*/        OPC_RecordChild1, // #2 = $src2
/*521160*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*521162*/        OPC_CheckPredicate, 9, // Predicate_load
/*521164*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*521166*/        OPC_Scope, 83, /*->521251*/ // 3 children in Scope
/*521168*/          OPC_MoveParent,
/*521169*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->521190
/*521172*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*521174*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521177*/            OPC_EmitMergeInputChains1_1,
/*521178*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKLPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521190*/          /*SwitchType*/ 18, MVT::v2f64,// ->521210
/*521192*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*521194*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521197*/            OPC_EmitMergeInputChains1_1,
/*521198*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKLPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521210*/          /*SwitchType*/ 18, MVT::v8f32,// ->521230
/*521212*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*521214*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521217*/            OPC_EmitMergeInputChains1_1,
/*521218*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKLPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521230*/          /*SwitchType*/ 18, MVT::v4f64,// ->521250
/*521232*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*521234*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521237*/            OPC_EmitMergeInputChains1_1,
/*521238*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKLPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521250*/          0, // EndSwitchType
/*521251*/        /*Scope*/ 45, /*->521297*/
/*521252*/          OPC_CheckPredicate, 48, // Predicate_memop
/*521254*/          OPC_MoveParent,
/*521255*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->521276
/*521258*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*521260*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521263*/            OPC_EmitMergeInputChains1_1,
/*521264*/            OPC_MorphNodeTo1, TARGET_VAL(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (UNPCKLPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521276*/          /*SwitchType*/ 18, MVT::v2f64,// ->521296
/*521278*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*521280*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521283*/            OPC_EmitMergeInputChains1_1,
/*521284*/            OPC_MorphNodeTo1, TARGET_VAL(X86::UNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (UNPCKLPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521296*/          0, // EndSwitchType
/*521297*/        /*Scope*/ 123, /*->521421*/
/*521298*/          OPC_MoveParent,
/*521299*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->521320
/*521302*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521304*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521307*/            OPC_EmitMergeInputChains1_1,
/*521308*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKLPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521320*/          /*SwitchType*/ 18, MVT::v8f64,// ->521340
/*521322*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521324*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521327*/            OPC_EmitMergeInputChains1_1,
/*521328*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKLPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521340*/          /*SwitchType*/ 18, MVT::v4f32,// ->521360
/*521342*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521344*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521347*/            OPC_EmitMergeInputChains1_1,
/*521348*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKLPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521360*/          /*SwitchType*/ 18, MVT::v8f32,// ->521380
/*521362*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521364*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521367*/            OPC_EmitMergeInputChains1_1,
/*521368*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKLPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521380*/          /*SwitchType*/ 18, MVT::v2f64,// ->521400
/*521382*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521384*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521387*/            OPC_EmitMergeInputChains1_1,
/*521388*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKLPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521400*/          /*SwitchType*/ 18, MVT::v4f64,// ->521420
/*521402*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521404*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521407*/            OPC_EmitMergeInputChains1_1,
/*521408*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckl:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKLPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521420*/          0, // EndSwitchType
/*521421*/        0, /*End of Scope*/
/*521422*/      0, // EndSwitchOpcode
/*521423*/    /*Scope*/ 25|128,1/*153*/, /*->521578*/
/*521425*/      OPC_RecordChild1, // #1 = $src2
/*521426*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->521464
/*521429*/        OPC_Scope, 10, /*->521441*/ // 3 children in Scope
/*521431*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*521433*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKLPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*521441*/        /*Scope*/ 10, /*->521452*/
/*521442*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*521444*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UNPCKLPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (UNPCKLPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*521452*/        /*Scope*/ 10, /*->521463*/
/*521453*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521455*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKLPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*521463*/        0, /*End of Scope*/
/*521464*/      /*SwitchType*/ 35, MVT::v2f64,// ->521501
/*521466*/        OPC_Scope, 10, /*->521478*/ // 3 children in Scope
/*521468*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*521470*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKLPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*521478*/        /*Scope*/ 10, /*->521489*/
/*521479*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*521481*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UNPCKLPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (UNPCKLPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*521489*/        /*Scope*/ 10, /*->521500*/
/*521490*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521492*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKLPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*521500*/        0, /*End of Scope*/
/*521501*/      /*SwitchType*/ 24, MVT::v8f32,// ->521527
/*521503*/        OPC_Scope, 10, /*->521515*/ // 2 children in Scope
/*521505*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*521507*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSYrr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKLPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/*521515*/        /*Scope*/ 10, /*->521526*/
/*521516*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521518*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZ256rr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKLPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*521526*/        0, /*End of Scope*/
/*521527*/      /*SwitchType*/ 24, MVT::v4f64,// ->521553
/*521529*/        OPC_Scope, 10, /*->521541*/ // 2 children in Scope
/*521531*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*521533*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDYrr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKLPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2)
/*521541*/        /*Scope*/ 10, /*->521552*/
/*521542*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521544*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZ256rr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckl:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKLPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*521552*/        0, /*End of Scope*/
/*521553*/      /*SwitchType*/ 10, MVT::v16f32,// ->521565
/*521555*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521557*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPSZrr), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckl:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VUNPCKLPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*521565*/      /*SwitchType*/ 10, MVT::v8f64,// ->521577
/*521567*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521569*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKLPDZrr), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VUNPCKLPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*521577*/      0, // EndSwitchType
/*521578*/    0, /*End of Scope*/
/*521579*/  /*SwitchOpcode*/ 30|128,13/*1694*/, TARGET_VAL(X86ISD::UNPCKH),// ->523277
/*521583*/    OPC_RecordChild0, // #0 = $src1
/*521584*/    OPC_Scope, 125|128,5/*765*/, /*->522352*/ // 5 children in Scope
/*521587*/      OPC_MoveChild1,
/*521588*/      OPC_SwitchOpcode /*3 cases */, 52|128,3/*436*/, TARGET_VAL(ISD::BITCAST),// ->522029
/*521593*/        OPC_MoveChild0,
/*521594*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*521597*/        OPC_RecordMemRef,
/*521598*/        OPC_RecordNode, // #1 = 'ld' chained node
/*521599*/        OPC_CheckFoldableChainNode,
/*521600*/        OPC_RecordChild1, // #2 = $src2
/*521601*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*521603*/        OPC_CheckPredicate, 9, // Predicate_load
/*521605*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*521607*/        OPC_SwitchType /*3 cases */, 21|128,1/*149*/, MVT::v4i64,// ->521760
/*521611*/          OPC_MoveParent,
/*521612*/          OPC_MoveParent,
/*521613*/          OPC_SwitchType /*3 cases */, 59, MVT::v8i32,// ->521675
/*521616*/            OPC_Scope, 18, /*->521636*/ // 3 children in Scope
/*521618*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*521620*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521623*/              OPC_EmitMergeInputChains1_1,
/*521624*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VUNPCKHPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521636*/            /*Scope*/ 18, /*->521655*/
/*521637*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*521639*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521642*/              OPC_EmitMergeInputChains1_1,
/*521643*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHDQYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521655*/            /*Scope*/ 18, /*->521674*/
/*521656*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521658*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521661*/              OPC_EmitMergeInputChains1_1,
/*521662*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHDQZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521674*/            0, /*End of Scope*/
/*521675*/          /*SwitchType*/ 40, MVT::v32i8,// ->521717
/*521677*/            OPC_Scope, 18, /*->521697*/ // 2 children in Scope
/*521679*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*521681*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521684*/              OPC_EmitMergeInputChains1_1,
/*521685*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHBWYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521697*/            /*Scope*/ 18, /*->521716*/
/*521698*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*521700*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521703*/              OPC_EmitMergeInputChains1_1,
/*521704*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHBWZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521716*/            0, /*End of Scope*/
/*521717*/          /*SwitchType*/ 40, MVT::v16i16,// ->521759
/*521719*/            OPC_Scope, 18, /*->521739*/ // 2 children in Scope
/*521721*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*521723*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521726*/              OPC_EmitMergeInputChains1_1,
/*521727*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHWDYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521739*/            /*Scope*/ 18, /*->521758*/
/*521740*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*521742*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521745*/              OPC_EmitMergeInputChains1_1,
/*521746*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHWDZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521758*/            0, /*End of Scope*/
/*521759*/          0, // EndSwitchType
/*521760*/        /*SwitchType*/ 71|128,1/*199*/, MVT::v2i64,// ->521962
/*521763*/          OPC_Scope, 64, /*->521829*/ // 3 children in Scope
/*521765*/            OPC_MoveParent,
/*521766*/            OPC_MoveParent,
/*521767*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->521788
/*521770*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*521772*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521775*/              OPC_EmitMergeInputChains1_1,
/*521776*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHBWrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521788*/            /*SwitchType*/ 18, MVT::v8i16,// ->521808
/*521790*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*521792*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521795*/              OPC_EmitMergeInputChains1_1,
/*521796*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHWDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521808*/            /*SwitchType*/ 18, MVT::v4i32,// ->521828
/*521810*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*521812*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521815*/              OPC_EmitMergeInputChains1_1,
/*521816*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHDQrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521828*/            0, // EndSwitchType
/*521829*/          /*Scope*/ 66, /*->521896*/
/*521830*/            OPC_CheckPredicate, 48, // Predicate_memop
/*521832*/            OPC_MoveParent,
/*521833*/            OPC_MoveParent,
/*521834*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->521855
/*521837*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*521839*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521842*/              OPC_EmitMergeInputChains1_1,
/*521843*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PUNPCKHBWrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521855*/            /*SwitchType*/ 18, MVT::v8i16,// ->521875
/*521857*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*521859*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521862*/              OPC_EmitMergeInputChains1_1,
/*521863*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PUNPCKHWDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521875*/            /*SwitchType*/ 18, MVT::v4i32,// ->521895
/*521877*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*521879*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521882*/              OPC_EmitMergeInputChains1_1,
/*521883*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PUNPCKHDQrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521895*/            0, // EndSwitchType
/*521896*/          /*Scope*/ 64, /*->521961*/
/*521897*/            OPC_MoveParent,
/*521898*/            OPC_MoveParent,
/*521899*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->521920
/*521902*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*521904*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521907*/              OPC_EmitMergeInputChains1_1,
/*521908*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHBWZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521920*/            /*SwitchType*/ 18, MVT::v8i16,// ->521940
/*521922*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*521924*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521927*/              OPC_EmitMergeInputChains1_1,
/*521928*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHWDZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521940*/            /*SwitchType*/ 18, MVT::v4i32,// ->521960
/*521942*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*521944*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521947*/              OPC_EmitMergeInputChains1_1,
/*521948*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPUNPCKHDQZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521960*/            0, // EndSwitchType
/*521961*/          0, /*End of Scope*/
/*521962*/        /*SwitchType*/ 64, MVT::v8i64,// ->522028
/*521964*/          OPC_MoveParent,
/*521965*/          OPC_MoveParent,
/*521966*/          OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->521987
/*521969*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*521971*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521974*/            OPC_EmitMergeInputChains1_1,
/*521975*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPUNPCKHBWZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*521987*/          /*SwitchType*/ 18, MVT::v32i16,// ->522007
/*521989*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*521991*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*521994*/            OPC_EmitMergeInputChains1_1,
/*521995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPUNPCKHWDZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522007*/          /*SwitchType*/ 18, MVT::v16i32,// ->522027
/*522009*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522011*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522014*/            OPC_EmitMergeInputChains1_1,
/*522015*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPUNPCKHDQZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522027*/          0, // EndSwitchType
/*522028*/        0, // EndSwitchType
/*522029*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->522181
/*522033*/        OPC_MoveChild0,
/*522034*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*522037*/        OPC_RecordMemRef,
/*522038*/        OPC_RecordNode, // #1 = 'ld' chained node
/*522039*/        OPC_CheckFoldableChainNode,
/*522040*/        OPC_RecordChild1, // #2 = $src2
/*522041*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*522043*/        OPC_SwitchType /*2 cases */, 66, MVT::i32,// ->522112
/*522046*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*522048*/          OPC_MoveParent,
/*522049*/          OPC_MoveParent,
/*522050*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->522071
/*522053*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522055*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522058*/            OPC_EmitMergeInputChains1_1,
/*522059*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPUNPCKHDQZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522071*/          /*SwitchType*/ 18, MVT::v8i32,// ->522091
/*522073*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522075*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522078*/            OPC_EmitMergeInputChains1_1,
/*522079*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPUNPCKHDQZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522091*/          /*SwitchType*/ 18, MVT::v4i32,// ->522111
/*522093*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522095*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522098*/            OPC_EmitMergeInputChains1_1,
/*522099*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPUNPCKHDQZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522111*/          0, // EndSwitchType
/*522112*/        /*SwitchType*/ 66, MVT::i64,// ->522180
/*522114*/          OPC_CheckPredicate, 9, // Predicate_load
/*522116*/          OPC_MoveParent,
/*522117*/          OPC_MoveParent,
/*522118*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->522139
/*522121*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522123*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522126*/            OPC_EmitMergeInputChains1_1,
/*522127*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPUNPCKHQDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522139*/          /*SwitchType*/ 18, MVT::v4i64,// ->522159
/*522141*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522143*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522146*/            OPC_EmitMergeInputChains1_1,
/*522147*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPUNPCKHQDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522159*/          /*SwitchType*/ 18, MVT::v2i64,// ->522179
/*522161*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522163*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522166*/            OPC_EmitMergeInputChains1_1,
/*522167*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPUNPCKHQDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522179*/          0, // EndSwitchType
/*522180*/        0, // EndSwitchType
/*522181*/      /*SwitchOpcode*/ 38|128,1/*166*/, TARGET_VAL(ISD::LOAD),// ->522351
/*522185*/        OPC_RecordMemRef,
/*522186*/        OPC_RecordNode, // #1 = 'ld' chained node
/*522187*/        OPC_CheckFoldableChainNode,
/*522188*/        OPC_RecordChild1, // #2 = $src2
/*522189*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*522191*/        OPC_CheckPredicate, 9, // Predicate_load
/*522193*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*522195*/        OPC_Scope, 65, /*->522262*/ // 3 children in Scope
/*522197*/          OPC_MoveParent,
/*522198*/          OPC_SwitchType /*2 cases */, 40, MVT::v4i64,// ->522241
/*522201*/            OPC_Scope, 18, /*->522221*/ // 2 children in Scope
/*522203*/              OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*522205*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522208*/              OPC_EmitMergeInputChains1_1,
/*522209*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VUNPCKHPDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522221*/            /*Scope*/ 18, /*->522240*/
/*522222*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*522224*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522227*/              OPC_EmitMergeInputChains1_1,
/*522228*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Unpckh:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VPUNPCKHQDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522240*/            0, /*End of Scope*/
/*522241*/          /*SwitchType*/ 18, MVT::v2i64,// ->522261
/*522243*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*522245*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522248*/            OPC_EmitMergeInputChains1_1,
/*522249*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPUNPCKHQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522261*/          0, // EndSwitchType
/*522262*/        /*Scope*/ 23, /*->522286*/
/*522263*/          OPC_CheckPredicate, 48, // Predicate_memop
/*522265*/          OPC_MoveParent,
/*522266*/          OPC_CheckType, MVT::v2i64,
/*522268*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*522270*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522273*/          OPC_EmitMergeInputChains1_1,
/*522274*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKHQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Unpckh:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PUNPCKHQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522286*/        /*Scope*/ 63, /*->522350*/
/*522287*/          OPC_MoveParent,
/*522288*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->522309
/*522291*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522293*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522296*/            OPC_EmitMergeInputChains1_1,
/*522297*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPUNPCKHQDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522309*/          /*SwitchType*/ 18, MVT::v4i64,// ->522329
/*522311*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522313*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522316*/            OPC_EmitMergeInputChains1_1,
/*522317*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPUNPCKHQDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522329*/          /*SwitchType*/ 18, MVT::v2i64,// ->522349
/*522331*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522333*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522336*/            OPC_EmitMergeInputChains1_1,
/*522337*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPUNPCKHQDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522349*/          0, // EndSwitchType
/*522350*/        0, /*End of Scope*/
/*522351*/      0, // EndSwitchOpcode
/*522352*/    /*Scope*/ 69|128,2/*325*/, /*->522679*/
/*522354*/      OPC_RecordChild1, // #1 = $src2
/*522355*/      OPC_SwitchType /*12 cases */, 35, MVT::v8i32,// ->522393
/*522358*/        OPC_Scope, 10, /*->522370*/ // 3 children in Scope
/*522360*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*522362*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKHPSYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*522370*/        /*Scope*/ 10, /*->522381*/
/*522371*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*522373*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHDQYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*522381*/        /*Scope*/ 10, /*->522392*/
/*522382*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522384*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHDQZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*522392*/        0, /*End of Scope*/
/*522393*/      /*SwitchType*/ 35, MVT::v4i64,// ->522430
/*522395*/        OPC_Scope, 10, /*->522407*/ // 3 children in Scope
/*522397*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*522399*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKHPDYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*522407*/        /*Scope*/ 10, /*->522418*/
/*522408*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*522410*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHQDQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*522418*/        /*Scope*/ 10, /*->522429*/
/*522419*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522421*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHQDQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*522429*/        0, /*End of Scope*/
/*522430*/      /*SwitchType*/ 35, MVT::v16i8,// ->522467
/*522432*/        OPC_Scope, 10, /*->522444*/ // 3 children in Scope
/*522434*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*522436*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHBWrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*522444*/        /*Scope*/ 10, /*->522455*/
/*522445*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*522447*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKHBWrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PUNPCKHBWrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*522455*/        /*Scope*/ 10, /*->522466*/
/*522456*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*522458*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHBWZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*522466*/        0, /*End of Scope*/
/*522467*/      /*SwitchType*/ 35, MVT::v8i16,// ->522504
/*522469*/        OPC_Scope, 10, /*->522481*/ // 3 children in Scope
/*522471*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*522473*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHWDrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*522481*/        /*Scope*/ 10, /*->522492*/
/*522482*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*522484*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKHWDrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PUNPCKHWDrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*522492*/        /*Scope*/ 10, /*->522503*/
/*522493*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*522495*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHWDZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*522503*/        0, /*End of Scope*/
/*522504*/      /*SwitchType*/ 35, MVT::v4i32,// ->522541
/*522506*/        OPC_Scope, 10, /*->522518*/ // 3 children in Scope
/*522508*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*522510*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHDQrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*522518*/        /*Scope*/ 10, /*->522529*/
/*522519*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*522521*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKHDQrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PUNPCKHDQrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*522529*/        /*Scope*/ 10, /*->522540*/
/*522530*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522532*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHDQZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*522540*/        0, /*End of Scope*/
/*522541*/      /*SwitchType*/ 35, MVT::v2i64,// ->522578
/*522543*/        OPC_Scope, 10, /*->522555*/ // 3 children in Scope
/*522545*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*522547*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHQDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*522555*/        /*Scope*/ 10, /*->522566*/
/*522556*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*522558*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PUNPCKHQDQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (PUNPCKHQDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*522566*/        /*Scope*/ 10, /*->522577*/
/*522567*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522569*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHQDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*522577*/        0, /*End of Scope*/
/*522578*/      /*SwitchType*/ 24, MVT::v32i8,// ->522604
/*522580*/        OPC_Scope, 10, /*->522592*/ // 2 children in Scope
/*522582*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*522584*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHBWYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*522592*/        /*Scope*/ 10, /*->522603*/
/*522593*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*522595*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHBWZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*522603*/        0, /*End of Scope*/
/*522604*/      /*SwitchType*/ 24, MVT::v16i16,// ->522630
/*522606*/        OPC_Scope, 10, /*->522618*/ // 2 children in Scope
/*522608*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*522610*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHWDYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*522618*/        /*Scope*/ 10, /*->522629*/
/*522619*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*522621*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPUNPCKHWDZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*522629*/        0, /*End of Scope*/
/*522630*/      /*SwitchType*/ 10, MVT::v64i8,// ->522642
/*522632*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*522634*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHBWZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckh:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPUNPCKHBWZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*522642*/      /*SwitchType*/ 10, MVT::v32i16,// ->522654
/*522644*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*522646*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHWDZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckh:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPUNPCKHWDZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*522654*/      /*SwitchType*/ 10, MVT::v16i32,// ->522666
/*522656*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522658*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHDQZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckh:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPUNPCKHDQZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*522666*/      /*SwitchType*/ 10, MVT::v8i64,// ->522678
/*522668*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522670*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPUNPCKHQDQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckh:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPUNPCKHQDQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*522678*/      0, // EndSwitchType
/*522679*/    /*Scope*/ 39|128,3/*423*/, /*->523104*/
/*522681*/      OPC_MoveChild1,
/*522682*/      OPC_SwitchOpcode /*2 cases */, 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST),// ->522833
/*522687*/        OPC_MoveChild0,
/*522688*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*522691*/        OPC_RecordMemRef,
/*522692*/        OPC_RecordNode, // #1 = 'ld' chained node
/*522693*/        OPC_CheckFoldableChainNode,
/*522694*/        OPC_RecordChild1, // #2 = $src2
/*522695*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*522697*/        OPC_CheckPredicate, 9, // Predicate_load
/*522699*/        OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->522766
/*522702*/          OPC_MoveParent,
/*522703*/          OPC_MoveParent,
/*522704*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->522725
/*522707*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522709*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522712*/            OPC_EmitMergeInputChains1_1,
/*522713*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKHPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522725*/          /*SwitchType*/ 18, MVT::v4f32,// ->522745
/*522727*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522729*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522732*/            OPC_EmitMergeInputChains1_1,
/*522733*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKHPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522745*/          /*SwitchType*/ 18, MVT::v8f32,// ->522765
/*522747*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522749*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522752*/            OPC_EmitMergeInputChains1_1,
/*522753*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKHPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522765*/          0, // EndSwitchType
/*522766*/        /*SwitchType*/ 64, MVT::f64,// ->522832
/*522768*/          OPC_MoveParent,
/*522769*/          OPC_MoveParent,
/*522770*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->522791
/*522773*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522775*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522778*/            OPC_EmitMergeInputChains1_1,
/*522779*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKHPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522791*/          /*SwitchType*/ 18, MVT::v2f64,// ->522811
/*522793*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522795*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522798*/            OPC_EmitMergeInputChains1_1,
/*522799*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKHPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522811*/          /*SwitchType*/ 18, MVT::v4f64,// ->522831
/*522813*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*522815*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522818*/            OPC_EmitMergeInputChains1_1,
/*522819*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VUNPCKHPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522831*/          0, // EndSwitchType
/*522832*/        0, // EndSwitchType
/*522833*/      /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::LOAD),// ->523103
/*522837*/        OPC_RecordMemRef,
/*522838*/        OPC_RecordNode, // #1 = 'ld' chained node
/*522839*/        OPC_CheckFoldableChainNode,
/*522840*/        OPC_RecordChild1, // #2 = $src2
/*522841*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*522843*/        OPC_CheckPredicate, 9, // Predicate_load
/*522845*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*522847*/        OPC_Scope, 83, /*->522932*/ // 3 children in Scope
/*522849*/          OPC_MoveParent,
/*522850*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->522871
/*522853*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*522855*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522858*/            OPC_EmitMergeInputChains1_1,
/*522859*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKHPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522871*/          /*SwitchType*/ 18, MVT::v2f64,// ->522891
/*522873*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*522875*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522878*/            OPC_EmitMergeInputChains1_1,
/*522879*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKHPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522891*/          /*SwitchType*/ 18, MVT::v8f32,// ->522911
/*522893*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*522895*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522898*/            OPC_EmitMergeInputChains1_1,
/*522899*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKHPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522911*/          /*SwitchType*/ 18, MVT::v4f64,// ->522931
/*522913*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*522915*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522918*/            OPC_EmitMergeInputChains1_1,
/*522919*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKHPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522931*/          0, // EndSwitchType
/*522932*/        /*Scope*/ 45, /*->522978*/
/*522933*/          OPC_CheckPredicate, 48, // Predicate_memop
/*522935*/          OPC_MoveParent,
/*522936*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->522957
/*522939*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*522941*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522944*/            OPC_EmitMergeInputChains1_1,
/*522945*/            OPC_MorphNodeTo1, TARGET_VAL(X86::UNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (UNPCKHPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522957*/          /*SwitchType*/ 18, MVT::v2f64,// ->522977
/*522959*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*522961*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522964*/            OPC_EmitMergeInputChains1_1,
/*522965*/            OPC_MorphNodeTo1, TARGET_VAL(X86::UNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (UNPCKHPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*522977*/          0, // EndSwitchType
/*522978*/        /*Scope*/ 123, /*->523102*/
/*522979*/          OPC_MoveParent,
/*522980*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->523001
/*522983*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522985*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*522988*/            OPC_EmitMergeInputChains1_1,
/*522989*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKHPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523001*/          /*SwitchType*/ 18, MVT::v8f64,// ->523021
/*523003*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*523005*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523008*/            OPC_EmitMergeInputChains1_1,
/*523009*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKHPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523021*/          /*SwitchType*/ 18, MVT::v4f32,// ->523041
/*523023*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*523025*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523028*/            OPC_EmitMergeInputChains1_1,
/*523029*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKHPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523041*/          /*SwitchType*/ 18, MVT::v8f32,// ->523061
/*523043*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*523045*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523048*/            OPC_EmitMergeInputChains1_1,
/*523049*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKHPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523061*/          /*SwitchType*/ 18, MVT::v2f64,// ->523081
/*523063*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*523065*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523068*/            OPC_EmitMergeInputChains1_1,
/*523069*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKHPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523081*/          /*SwitchType*/ 18, MVT::v4f64,// ->523101
/*523083*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*523085*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523088*/            OPC_EmitMergeInputChains1_1,
/*523089*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Unpckh:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VUNPCKHPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523101*/          0, // EndSwitchType
/*523102*/        0, /*End of Scope*/
/*523103*/      0, // EndSwitchOpcode
/*523104*/    /*Scope*/ 16, /*->523121*/
/*523105*/      OPC_CheckChild1Same, 0,
/*523107*/      OPC_CheckPredicate, 103, // Predicate_UnpckhUnary
/*523109*/      OPC_CheckType, MVT::v2f64,
/*523111*/      OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*523113*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOVHLPSrr), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 0, 
                // Src: (X86Unpckh:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, VR128:{ *:[v2f64] }:$src)<<P:Predicate_UnpckhUnary>> - Complexity = 4
                // Dst: (MOVHLPSrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src, VR128:{ *:[v2f64] }:$src)
/*523121*/    /*Scope*/ 25|128,1/*153*/, /*->523276*/
/*523123*/      OPC_RecordChild1, // #1 = $src2
/*523124*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->523162
/*523127*/        OPC_Scope, 10, /*->523139*/ // 3 children in Scope
/*523129*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*523131*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKHPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*523139*/        /*Scope*/ 10, /*->523150*/
/*523140*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523142*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UNPCKHPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (UNPCKHPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*523150*/        /*Scope*/ 10, /*->523161*/
/*523151*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*523153*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKHPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*523161*/        0, /*End of Scope*/
/*523162*/      /*SwitchType*/ 35, MVT::v2f64,// ->523199
/*523164*/        OPC_Scope, 10, /*->523176*/ // 3 children in Scope
/*523166*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*523168*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKHPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*523176*/        /*Scope*/ 10, /*->523187*/
/*523177*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*523179*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UNPCKHPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (UNPCKHPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*523187*/        /*Scope*/ 10, /*->523198*/
/*523188*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*523190*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKHPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*523198*/        0, /*End of Scope*/
/*523199*/      /*SwitchType*/ 24, MVT::v8f32,// ->523225
/*523201*/        OPC_Scope, 10, /*->523213*/ // 2 children in Scope
/*523203*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*523205*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSYrr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKHPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/*523213*/        /*Scope*/ 10, /*->523224*/
/*523214*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*523216*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZ256rr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKHPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*523224*/        0, /*End of Scope*/
/*523225*/      /*SwitchType*/ 24, MVT::v4f64,// ->523251
/*523227*/        OPC_Scope, 10, /*->523239*/ // 2 children in Scope
/*523229*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*523231*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDYrr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKHPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2)
/*523239*/        /*Scope*/ 10, /*->523250*/
/*523240*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*523242*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZ256rr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Unpckh:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VUNPCKHPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*523250*/        0, /*End of Scope*/
/*523251*/      /*SwitchType*/ 10, MVT::v16f32,// ->523263
/*523253*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*523255*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPSZrr), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckh:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VUNPCKHPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*523263*/      /*SwitchType*/ 10, MVT::v8f64,// ->523275
/*523265*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*523267*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VUNPCKHPDZrr), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Unpckh:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VUNPCKHPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*523275*/      0, // EndSwitchType
/*523276*/    0, /*End of Scope*/
/*523277*/  /*SwitchOpcode*/ 6|128,6/*774*/, TARGET_VAL(X86ISD::ADDS),// ->524055
/*523281*/    OPC_Scope, 47|128,2/*303*/, /*->523587*/ // 3 children in Scope
/*523284*/      OPC_RecordChild0, // #0 = $src1
/*523285*/      OPC_MoveChild1,
/*523286*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*523289*/      OPC_MoveChild0,
/*523290*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*523293*/      OPC_RecordMemRef,
/*523294*/      OPC_RecordNode, // #1 = 'ld' chained node
/*523295*/      OPC_CheckFoldableChainNode,
/*523296*/      OPC_RecordChild1, // #2 = $src2
/*523297*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523299*/      OPC_CheckPredicate, 9, // Predicate_load
/*523301*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*523303*/      OPC_SwitchType /*3 cases */, 15|128,1/*143*/, MVT::v2i64,// ->523450
/*523307*/        OPC_Scope, 22, /*->523331*/ // 5 children in Scope
/*523309*/          OPC_MoveParent,
/*523310*/          OPC_MoveParent,
/*523311*/          OPC_CheckType, MVT::v16i8,
/*523313*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*523315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523318*/          OPC_EmitMergeInputChains1_1,
/*523319*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPADDSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523331*/        /*Scope*/ 24, /*->523356*/
/*523332*/          OPC_CheckPredicate, 48, // Predicate_memop
/*523334*/          OPC_MoveParent,
/*523335*/          OPC_MoveParent,
/*523336*/          OPC_CheckType, MVT::v16i8,
/*523338*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*523340*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523343*/          OPC_EmitMergeInputChains1_1,
/*523344*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PADDSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523356*/        /*Scope*/ 22, /*->523379*/
/*523357*/          OPC_MoveParent,
/*523358*/          OPC_MoveParent,
/*523359*/          OPC_CheckType, MVT::v8i16,
/*523361*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*523363*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523366*/          OPC_EmitMergeInputChains1_1,
/*523367*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523379*/        /*Scope*/ 24, /*->523404*/
/*523380*/          OPC_CheckPredicate, 48, // Predicate_memop
/*523382*/          OPC_MoveParent,
/*523383*/          OPC_MoveParent,
/*523384*/          OPC_CheckType, MVT::v8i16,
/*523386*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*523388*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523391*/          OPC_EmitMergeInputChains1_1,
/*523392*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523404*/        /*Scope*/ 44, /*->523449*/
/*523405*/          OPC_MoveParent,
/*523406*/          OPC_MoveParent,
/*523407*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->523428
/*523410*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*523412*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523415*/            OPC_EmitMergeInputChains1_1,
/*523416*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523428*/          /*SwitchType*/ 18, MVT::v16i8,// ->523448
/*523430*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*523432*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523435*/            OPC_EmitMergeInputChains1_1,
/*523436*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523448*/          0, // EndSwitchType
/*523449*/        0, /*End of Scope*/
/*523450*/      /*SwitchType*/ 88, MVT::v4i64,// ->523540
/*523452*/        OPC_MoveParent,
/*523453*/        OPC_MoveParent,
/*523454*/        OPC_SwitchType /*2 cases */, 40, MVT::v32i8,// ->523497
/*523457*/          OPC_Scope, 18, /*->523477*/ // 2 children in Scope
/*523459*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*523461*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523464*/            OPC_EmitMergeInputChains1_1,
/*523465*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523477*/          /*Scope*/ 18, /*->523496*/
/*523478*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*523480*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523483*/            OPC_EmitMergeInputChains1_1,
/*523484*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523496*/          0, /*End of Scope*/
/*523497*/        /*SwitchType*/ 40, MVT::v16i16,// ->523539
/*523499*/          OPC_Scope, 18, /*->523519*/ // 2 children in Scope
/*523501*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*523503*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523506*/            OPC_EmitMergeInputChains1_1,
/*523507*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523519*/          /*Scope*/ 18, /*->523538*/
/*523520*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*523522*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523525*/            OPC_EmitMergeInputChains1_1,
/*523526*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523538*/          0, /*End of Scope*/
/*523539*/        0, // EndSwitchType
/*523540*/      /*SwitchType*/ 44, MVT::v8i64,// ->523586
/*523542*/        OPC_MoveParent,
/*523543*/        OPC_MoveParent,
/*523544*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i16,// ->523565
/*523547*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*523549*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523552*/          OPC_EmitMergeInputChains1_1,
/*523553*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPADDSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523565*/        /*SwitchType*/ 18, MVT::v64i8,// ->523585
/*523567*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*523569*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523572*/          OPC_EmitMergeInputChains1_1,
/*523573*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPADDSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523585*/        0, // EndSwitchType
/*523586*/      0, // EndSwitchType
/*523587*/    /*Scope*/ 53|128,2/*309*/, /*->523898*/
/*523589*/      OPC_MoveChild0,
/*523590*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*523593*/      OPC_MoveChild0,
/*523594*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*523597*/      OPC_RecordMemRef,
/*523598*/      OPC_RecordNode, // #0 = 'ld' chained node
/*523599*/      OPC_CheckFoldableChainNode,
/*523600*/      OPC_RecordChild1, // #1 = $src2
/*523601*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523603*/      OPC_CheckPredicate, 9, // Predicate_load
/*523605*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*523607*/      OPC_SwitchType /*3 cases */, 20|128,1/*148*/, MVT::v2i64,// ->523759
/*523611*/        OPC_Scope, 23, /*->523636*/ // 5 children in Scope
/*523613*/          OPC_MoveParent,
/*523614*/          OPC_MoveParent,
/*523615*/          OPC_RecordChild1, // #2 = $src1
/*523616*/          OPC_CheckType, MVT::v16i8,
/*523618*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*523620*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523623*/          OPC_EmitMergeInputChains1_0,
/*523624*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                    // Dst: (VPADDSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523636*/        /*Scope*/ 25, /*->523662*/
/*523637*/          OPC_CheckPredicate, 48, // Predicate_memop
/*523639*/          OPC_MoveParent,
/*523640*/          OPC_MoveParent,
/*523641*/          OPC_RecordChild1, // #2 = $src1
/*523642*/          OPC_CheckType, MVT::v16i8,
/*523644*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*523646*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523649*/          OPC_EmitMergeInputChains1_0,
/*523650*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                    // Dst: (PADDSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523662*/        /*Scope*/ 23, /*->523686*/
/*523663*/          OPC_MoveParent,
/*523664*/          OPC_MoveParent,
/*523665*/          OPC_RecordChild1, // #2 = $src1
/*523666*/          OPC_CheckType, MVT::v8i16,
/*523668*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*523670*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523673*/          OPC_EmitMergeInputChains1_0,
/*523674*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523686*/        /*Scope*/ 25, /*->523712*/
/*523687*/          OPC_CheckPredicate, 48, // Predicate_memop
/*523689*/          OPC_MoveParent,
/*523690*/          OPC_MoveParent,
/*523691*/          OPC_RecordChild1, // #2 = $src1
/*523692*/          OPC_CheckType, MVT::v8i16,
/*523694*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*523696*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523699*/          OPC_EmitMergeInputChains1_0,
/*523700*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (PADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523712*/        /*Scope*/ 45, /*->523758*/
/*523713*/          OPC_MoveParent,
/*523714*/          OPC_MoveParent,
/*523715*/          OPC_RecordChild1, // #2 = $src1
/*523716*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->523737
/*523719*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*523721*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523724*/            OPC_EmitMergeInputChains1_0,
/*523725*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                      // Dst: (VPADDSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523737*/          /*SwitchType*/ 18, MVT::v16i8,// ->523757
/*523739*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*523741*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523744*/            OPC_EmitMergeInputChains1_0,
/*523745*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1) - Complexity = 28
                      // Dst: (VPADDSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523757*/          0, // EndSwitchType
/*523758*/        0, /*End of Scope*/
/*523759*/      /*SwitchType*/ 89, MVT::v4i64,// ->523850
/*523761*/        OPC_MoveParent,
/*523762*/        OPC_MoveParent,
/*523763*/        OPC_RecordChild1, // #2 = $src1
/*523764*/        OPC_SwitchType /*2 cases */, 40, MVT::v32i8,// ->523807
/*523767*/          OPC_Scope, 18, /*->523787*/ // 2 children in Scope
/*523769*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*523771*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523774*/            OPC_EmitMergeInputChains1_0,
/*523775*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src1) - Complexity = 28
                      // Dst: (VPADDSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523787*/          /*Scope*/ 18, /*->523806*/
/*523788*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*523790*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523793*/            OPC_EmitMergeInputChains1_0,
/*523794*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1) - Complexity = 28
                      // Dst: (VPADDSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523806*/          0, /*End of Scope*/
/*523807*/        /*SwitchType*/ 40, MVT::v16i16,// ->523849
/*523809*/          OPC_Scope, 18, /*->523829*/ // 2 children in Scope
/*523811*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*523813*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523816*/            OPC_EmitMergeInputChains1_0,
/*523817*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                      // Dst: (VPADDSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523829*/          /*Scope*/ 18, /*->523848*/
/*523830*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*523832*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523835*/            OPC_EmitMergeInputChains1_0,
/*523836*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86adds:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                      // Dst: (VPADDSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523848*/          0, /*End of Scope*/
/*523849*/        0, // EndSwitchType
/*523850*/      /*SwitchType*/ 45, MVT::v8i64,// ->523897
/*523852*/        OPC_MoveParent,
/*523853*/        OPC_MoveParent,
/*523854*/        OPC_RecordChild1, // #2 = $src1
/*523855*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i16,// ->523876
/*523858*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*523860*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523863*/          OPC_EmitMergeInputChains1_0,
/*523864*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                    // Dst: (VPADDSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523876*/        /*SwitchType*/ 18, MVT::v64i8,// ->523896
/*523878*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*523880*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*523883*/          OPC_EmitMergeInputChains1_0,
/*523884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86adds:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1) - Complexity = 28
                    // Dst: (VPADDSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*523896*/        0, // EndSwitchType
/*523897*/      0, // EndSwitchType
/*523898*/    /*Scope*/ 26|128,1/*154*/, /*->524054*/
/*523900*/      OPC_RecordChild0, // #0 = $src1
/*523901*/      OPC_RecordChild1, // #1 = $src2
/*523902*/      OPC_SwitchType /*6 cases */, 35, MVT::v16i8,// ->523940
/*523905*/        OPC_Scope, 10, /*->523917*/ // 3 children in Scope
/*523907*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*523909*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adds:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*523917*/        /*Scope*/ 10, /*->523928*/
/*523918*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*523920*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adds:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PADDSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*523928*/        /*Scope*/ 10, /*->523939*/
/*523929*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*523931*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adds:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*523939*/        0, /*End of Scope*/
/*523940*/      /*SwitchType*/ 24, MVT::v32i8,// ->523966
/*523942*/        OPC_Scope, 10, /*->523954*/ // 2 children in Scope
/*523944*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*523946*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adds:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDSBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*523954*/        /*Scope*/ 10, /*->523965*/
/*523955*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*523957*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adds:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*523965*/        0, /*End of Scope*/
/*523966*/      /*SwitchType*/ 35, MVT::v8i16,// ->524003
/*523968*/        OPC_Scope, 10, /*->523980*/ // 3 children in Scope
/*523970*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*523972*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adds:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*523980*/        /*Scope*/ 10, /*->523991*/
/*523981*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*523983*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adds:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PADDSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*523991*/        /*Scope*/ 10, /*->524002*/
/*523992*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*523994*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adds:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*524002*/        0, /*End of Scope*/
/*524003*/      /*SwitchType*/ 24, MVT::v16i16,// ->524029
/*524005*/        OPC_Scope, 10, /*->524017*/ // 2 children in Scope
/*524007*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524009*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adds:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*524017*/        /*Scope*/ 10, /*->524028*/
/*524018*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524020*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86adds:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*524028*/        0, /*End of Scope*/
/*524029*/      /*SwitchType*/ 10, MVT::v32i16,// ->524041
/*524031*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*524033*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86adds:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPADDSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*524041*/      /*SwitchType*/ 10, MVT::v64i8,// ->524053
/*524043*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*524045*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86adds:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPADDSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*524053*/      0, // EndSwitchType
/*524054*/    0, /*End of Scope*/
/*524055*/  /*SwitchOpcode*/ 6|128,6/*774*/, TARGET_VAL(X86ISD::ADDUS),// ->524833
/*524059*/    OPC_Scope, 47|128,2/*303*/, /*->524365*/ // 3 children in Scope
/*524062*/      OPC_RecordChild0, // #0 = $src1
/*524063*/      OPC_MoveChild1,
/*524064*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*524067*/      OPC_MoveChild0,
/*524068*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524071*/      OPC_RecordMemRef,
/*524072*/      OPC_RecordNode, // #1 = 'ld' chained node
/*524073*/      OPC_CheckFoldableChainNode,
/*524074*/      OPC_RecordChild1, // #2 = $src2
/*524075*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524077*/      OPC_CheckPredicate, 9, // Predicate_load
/*524079*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*524081*/      OPC_SwitchType /*3 cases */, 15|128,1/*143*/, MVT::v2i64,// ->524228
/*524085*/        OPC_Scope, 22, /*->524109*/ // 5 children in Scope
/*524087*/          OPC_MoveParent,
/*524088*/          OPC_MoveParent,
/*524089*/          OPC_CheckType, MVT::v16i8,
/*524091*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524093*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524096*/          OPC_EmitMergeInputChains1_1,
/*524097*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPADDUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524109*/        /*Scope*/ 24, /*->524134*/
/*524110*/          OPC_CheckPredicate, 48, // Predicate_memop
/*524112*/          OPC_MoveParent,
/*524113*/          OPC_MoveParent,
/*524114*/          OPC_CheckType, MVT::v16i8,
/*524116*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*524118*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524121*/          OPC_EmitMergeInputChains1_1,
/*524122*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PADDUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524134*/        /*Scope*/ 22, /*->524157*/
/*524135*/          OPC_MoveParent,
/*524136*/          OPC_MoveParent,
/*524137*/          OPC_CheckType, MVT::v8i16,
/*524139*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524141*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524144*/          OPC_EmitMergeInputChains1_1,
/*524145*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPADDUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524157*/        /*Scope*/ 24, /*->524182*/
/*524158*/          OPC_CheckPredicate, 48, // Predicate_memop
/*524160*/          OPC_MoveParent,
/*524161*/          OPC_MoveParent,
/*524162*/          OPC_CheckType, MVT::v8i16,
/*524164*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*524166*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524169*/          OPC_EmitMergeInputChains1_1,
/*524170*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PADDUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524182*/        /*Scope*/ 44, /*->524227*/
/*524183*/          OPC_MoveParent,
/*524184*/          OPC_MoveParent,
/*524185*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->524206
/*524188*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524190*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524193*/            OPC_EmitMergeInputChains1_1,
/*524194*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDUSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524206*/          /*SwitchType*/ 18, MVT::v16i8,// ->524226
/*524208*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524210*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524213*/            OPC_EmitMergeInputChains1_1,
/*524214*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDUSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524226*/          0, // EndSwitchType
/*524227*/        0, /*End of Scope*/
/*524228*/      /*SwitchType*/ 88, MVT::v4i64,// ->524318
/*524230*/        OPC_MoveParent,
/*524231*/        OPC_MoveParent,
/*524232*/        OPC_SwitchType /*2 cases */, 40, MVT::v32i8,// ->524275
/*524235*/          OPC_Scope, 18, /*->524255*/ // 2 children in Scope
/*524237*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524239*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524242*/            OPC_EmitMergeInputChains1_1,
/*524243*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDUSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524255*/          /*Scope*/ 18, /*->524274*/
/*524256*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524261*/            OPC_EmitMergeInputChains1_1,
/*524262*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDUSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524274*/          0, /*End of Scope*/
/*524275*/        /*SwitchType*/ 40, MVT::v16i16,// ->524317
/*524277*/          OPC_Scope, 18, /*->524297*/ // 2 children in Scope
/*524279*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524281*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524284*/            OPC_EmitMergeInputChains1_1,
/*524285*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDUSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524297*/          /*Scope*/ 18, /*->524316*/
/*524298*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524300*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524303*/            OPC_EmitMergeInputChains1_1,
/*524304*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPADDUSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524316*/          0, /*End of Scope*/
/*524317*/        0, // EndSwitchType
/*524318*/      /*SwitchType*/ 44, MVT::v8i64,// ->524364
/*524320*/        OPC_MoveParent,
/*524321*/        OPC_MoveParent,
/*524322*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i16,// ->524343
/*524325*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*524327*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524330*/          OPC_EmitMergeInputChains1_1,
/*524331*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPADDUSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524343*/        /*SwitchType*/ 18, MVT::v64i8,// ->524363
/*524345*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*524347*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524350*/          OPC_EmitMergeInputChains1_1,
/*524351*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPADDUSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524363*/        0, // EndSwitchType
/*524364*/      0, // EndSwitchType
/*524365*/    /*Scope*/ 53|128,2/*309*/, /*->524676*/
/*524367*/      OPC_MoveChild0,
/*524368*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*524371*/      OPC_MoveChild0,
/*524372*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524375*/      OPC_RecordMemRef,
/*524376*/      OPC_RecordNode, // #0 = 'ld' chained node
/*524377*/      OPC_CheckFoldableChainNode,
/*524378*/      OPC_RecordChild1, // #1 = $src2
/*524379*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524381*/      OPC_CheckPredicate, 9, // Predicate_load
/*524383*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*524385*/      OPC_SwitchType /*3 cases */, 20|128,1/*148*/, MVT::v2i64,// ->524537
/*524389*/        OPC_Scope, 23, /*->524414*/ // 5 children in Scope
/*524391*/          OPC_MoveParent,
/*524392*/          OPC_MoveParent,
/*524393*/          OPC_RecordChild1, // #2 = $src1
/*524394*/          OPC_CheckType, MVT::v16i8,
/*524396*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524398*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524401*/          OPC_EmitMergeInputChains1_0,
/*524402*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                    // Dst: (VPADDUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524414*/        /*Scope*/ 25, /*->524440*/
/*524415*/          OPC_CheckPredicate, 48, // Predicate_memop
/*524417*/          OPC_MoveParent,
/*524418*/          OPC_MoveParent,
/*524419*/          OPC_RecordChild1, // #2 = $src1
/*524420*/          OPC_CheckType, MVT::v16i8,
/*524422*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*524424*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524427*/          OPC_EmitMergeInputChains1_0,
/*524428*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                    // Dst: (PADDUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524440*/        /*Scope*/ 23, /*->524464*/
/*524441*/          OPC_MoveParent,
/*524442*/          OPC_MoveParent,
/*524443*/          OPC_RecordChild1, // #2 = $src1
/*524444*/          OPC_CheckType, MVT::v8i16,
/*524446*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524448*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524451*/          OPC_EmitMergeInputChains1_0,
/*524452*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPADDUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524464*/        /*Scope*/ 25, /*->524490*/
/*524465*/          OPC_CheckPredicate, 48, // Predicate_memop
/*524467*/          OPC_MoveParent,
/*524468*/          OPC_MoveParent,
/*524469*/          OPC_RecordChild1, // #2 = $src1
/*524470*/          OPC_CheckType, MVT::v8i16,
/*524472*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*524474*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524477*/          OPC_EmitMergeInputChains1_0,
/*524478*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (PADDUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524490*/        /*Scope*/ 45, /*->524536*/
/*524491*/          OPC_MoveParent,
/*524492*/          OPC_MoveParent,
/*524493*/          OPC_RecordChild1, // #2 = $src1
/*524494*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->524515
/*524497*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524499*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524502*/            OPC_EmitMergeInputChains1_0,
/*524503*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                      // Dst: (VPADDUSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524515*/          /*SwitchType*/ 18, MVT::v16i8,// ->524535
/*524517*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524519*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524522*/            OPC_EmitMergeInputChains1_0,
/*524523*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1) - Complexity = 28
                      // Dst: (VPADDUSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524535*/          0, // EndSwitchType
/*524536*/        0, /*End of Scope*/
/*524537*/      /*SwitchType*/ 89, MVT::v4i64,// ->524628
/*524539*/        OPC_MoveParent,
/*524540*/        OPC_MoveParent,
/*524541*/        OPC_RecordChild1, // #2 = $src1
/*524542*/        OPC_SwitchType /*2 cases */, 40, MVT::v32i8,// ->524585
/*524545*/          OPC_Scope, 18, /*->524565*/ // 2 children in Scope
/*524547*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524549*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524552*/            OPC_EmitMergeInputChains1_0,
/*524553*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src1) - Complexity = 28
                      // Dst: (VPADDUSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524565*/          /*Scope*/ 18, /*->524584*/
/*524566*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524568*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524571*/            OPC_EmitMergeInputChains1_0,
/*524572*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1) - Complexity = 28
                      // Dst: (VPADDUSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524584*/          0, /*End of Scope*/
/*524585*/        /*SwitchType*/ 40, MVT::v16i16,// ->524627
/*524587*/          OPC_Scope, 18, /*->524607*/ // 2 children in Scope
/*524589*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524591*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524594*/            OPC_EmitMergeInputChains1_0,
/*524595*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                      // Dst: (VPADDUSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524607*/          /*Scope*/ 18, /*->524626*/
/*524608*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524610*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524613*/            OPC_EmitMergeInputChains1_0,
/*524614*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86addus:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                      // Dst: (VPADDUSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524626*/          0, /*End of Scope*/
/*524627*/        0, // EndSwitchType
/*524628*/      /*SwitchType*/ 45, MVT::v8i64,// ->524675
/*524630*/        OPC_MoveParent,
/*524631*/        OPC_MoveParent,
/*524632*/        OPC_RecordChild1, // #2 = $src1
/*524633*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i16,// ->524654
/*524636*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*524638*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524641*/          OPC_EmitMergeInputChains1_0,
/*524642*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                    // Dst: (VPADDUSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524654*/        /*SwitchType*/ 18, MVT::v64i8,// ->524674
/*524656*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*524658*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524661*/          OPC_EmitMergeInputChains1_0,
/*524662*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86addus:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1) - Complexity = 28
                    // Dst: (VPADDUSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524674*/        0, // EndSwitchType
/*524675*/      0, // EndSwitchType
/*524676*/    /*Scope*/ 26|128,1/*154*/, /*->524832*/
/*524678*/      OPC_RecordChild0, // #0 = $src1
/*524679*/      OPC_RecordChild1, // #1 = $src2
/*524680*/      OPC_SwitchType /*6 cases */, 35, MVT::v16i8,// ->524718
/*524683*/        OPC_Scope, 10, /*->524695*/ // 3 children in Scope
/*524685*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524687*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86addus:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*524695*/        /*Scope*/ 10, /*->524706*/
/*524696*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*524698*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86addus:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PADDUSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*524706*/        /*Scope*/ 10, /*->524717*/
/*524707*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524709*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86addus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*524717*/        0, /*End of Scope*/
/*524718*/      /*SwitchType*/ 24, MVT::v32i8,// ->524744
/*524720*/        OPC_Scope, 10, /*->524732*/ // 2 children in Scope
/*524722*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524724*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86addus:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*524732*/        /*Scope*/ 10, /*->524743*/
/*524733*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524735*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86addus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*524743*/        0, /*End of Scope*/
/*524744*/      /*SwitchType*/ 35, MVT::v8i16,// ->524781
/*524746*/        OPC_Scope, 10, /*->524758*/ // 3 children in Scope
/*524748*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524750*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86addus:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*524758*/        /*Scope*/ 10, /*->524769*/
/*524759*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*524761*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86addus:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PADDUSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*524769*/        /*Scope*/ 10, /*->524780*/
/*524770*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524772*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86addus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*524780*/        0, /*End of Scope*/
/*524781*/      /*SwitchType*/ 24, MVT::v16i16,// ->524807
/*524783*/        OPC_Scope, 10, /*->524795*/ // 2 children in Scope
/*524785*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524787*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86addus:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*524795*/        /*Scope*/ 10, /*->524806*/
/*524796*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524798*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86addus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*524806*/        0, /*End of Scope*/
/*524807*/      /*SwitchType*/ 10, MVT::v32i16,// ->524819
/*524809*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*524811*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86addus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPADDUSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*524819*/      /*SwitchType*/ 10, MVT::v64i8,// ->524831
/*524821*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*524823*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86addus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPADDUSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*524831*/      0, // EndSwitchType
/*524832*/    0, /*End of Scope*/
/*524833*/  /*SwitchOpcode*/ 38|128,3/*422*/, TARGET_VAL(ISD::MULHU),// ->525259
/*524837*/    OPC_Scope, 38|128,1/*166*/, /*->525006*/ // 3 children in Scope
/*524840*/      OPC_RecordChild0, // #0 = $src1
/*524841*/      OPC_MoveChild1,
/*524842*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*524845*/      OPC_MoveChild0,
/*524846*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524849*/      OPC_RecordMemRef,
/*524850*/      OPC_RecordNode, // #1 = 'ld' chained node
/*524851*/      OPC_CheckFoldableChainNode,
/*524852*/      OPC_RecordChild1, // #2 = $src2
/*524853*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524855*/      OPC_CheckPredicate, 9, // Predicate_load
/*524857*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*524859*/      OPC_SwitchType /*3 cases */, 73, MVT::v2i64,// ->524935
/*524862*/        OPC_Scope, 22, /*->524886*/ // 3 children in Scope
/*524864*/          OPC_MoveParent,
/*524865*/          OPC_MoveParent,
/*524866*/          OPC_CheckType, MVT::v8i16,
/*524868*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524870*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524873*/          OPC_EmitMergeInputChains1_1,
/*524874*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524886*/        /*Scope*/ 24, /*->524911*/
/*524887*/          OPC_CheckPredicate, 48, // Predicate_memop
/*524889*/          OPC_MoveParent,
/*524890*/          OPC_MoveParent,
/*524891*/          OPC_CheckType, MVT::v8i16,
/*524893*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*524895*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524898*/          OPC_EmitMergeInputChains1_1,
/*524899*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PMULHUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524911*/        /*Scope*/ 22, /*->524934*/
/*524912*/          OPC_MoveParent,
/*524913*/          OPC_MoveParent,
/*524914*/          OPC_CheckType, MVT::v8i16,
/*524916*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524918*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524921*/          OPC_EmitMergeInputChains1_1,
/*524922*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524934*/        0, /*End of Scope*/
/*524935*/      /*SwitchType*/ 44, MVT::v4i64,// ->524981
/*524937*/        OPC_MoveParent,
/*524938*/        OPC_MoveParent,
/*524939*/        OPC_CheckType, MVT::v16i16,
/*524941*/        OPC_Scope, 18, /*->524961*/ // 2 children in Scope
/*524943*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*524945*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524948*/          OPC_EmitMergeInputChains1_1,
/*524949*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524961*/        /*Scope*/ 18, /*->524980*/
/*524962*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*524964*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524967*/          OPC_EmitMergeInputChains1_1,
/*524968*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*524980*/        0, /*End of Scope*/
/*524981*/      /*SwitchType*/ 22, MVT::v8i64,// ->525005
/*524983*/        OPC_MoveParent,
/*524984*/        OPC_MoveParent,
/*524985*/        OPC_CheckType, MVT::v32i16,
/*524987*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*524989*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*524992*/        OPC_EmitMergeInputChains1_1,
/*524993*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (mulhu:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPMULHUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525005*/      0, // EndSwitchType
/*525006*/    /*Scope*/ 42|128,1/*170*/, /*->525178*/
/*525008*/      OPC_MoveChild0,
/*525009*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*525012*/      OPC_MoveChild0,
/*525013*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525016*/      OPC_RecordMemRef,
/*525017*/      OPC_RecordNode, // #0 = 'ld' chained node
/*525018*/      OPC_CheckFoldableChainNode,
/*525019*/      OPC_RecordChild1, // #1 = $src2
/*525020*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525022*/      OPC_CheckPredicate, 9, // Predicate_load
/*525024*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*525026*/      OPC_SwitchType /*3 cases */, 76, MVT::v2i64,// ->525105
/*525029*/        OPC_Scope, 23, /*->525054*/ // 3 children in Scope
/*525031*/          OPC_MoveParent,
/*525032*/          OPC_MoveParent,
/*525033*/          OPC_RecordChild1, // #2 = $src1
/*525034*/          OPC_CheckType, MVT::v8i16,
/*525036*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525038*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525041*/          OPC_EmitMergeInputChains1_0,
/*525042*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525054*/        /*Scope*/ 25, /*->525080*/
/*525055*/          OPC_CheckPredicate, 48, // Predicate_memop
/*525057*/          OPC_MoveParent,
/*525058*/          OPC_MoveParent,
/*525059*/          OPC_RecordChild1, // #2 = $src1
/*525060*/          OPC_CheckType, MVT::v8i16,
/*525062*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*525064*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525067*/          OPC_EmitMergeInputChains1_0,
/*525068*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (PMULHUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525080*/        /*Scope*/ 23, /*->525104*/
/*525081*/          OPC_MoveParent,
/*525082*/          OPC_MoveParent,
/*525083*/          OPC_RecordChild1, // #2 = $src1
/*525084*/          OPC_CheckType, MVT::v8i16,
/*525086*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525088*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525091*/          OPC_EmitMergeInputChains1_0,
/*525092*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525104*/        0, /*End of Scope*/
/*525105*/      /*SwitchType*/ 45, MVT::v4i64,// ->525152
/*525107*/        OPC_MoveParent,
/*525108*/        OPC_MoveParent,
/*525109*/        OPC_RecordChild1, // #2 = $src1
/*525110*/        OPC_CheckType, MVT::v16i16,
/*525112*/        OPC_Scope, 18, /*->525132*/ // 2 children in Scope
/*525114*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525116*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525119*/          OPC_EmitMergeInputChains1_0,
/*525120*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525132*/        /*Scope*/ 18, /*->525151*/
/*525133*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525135*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525138*/          OPC_EmitMergeInputChains1_0,
/*525139*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525151*/        0, /*End of Scope*/
/*525152*/      /*SwitchType*/ 23, MVT::v8i64,// ->525177
/*525154*/        OPC_MoveParent,
/*525155*/        OPC_MoveParent,
/*525156*/        OPC_RecordChild1, // #2 = $src1
/*525157*/        OPC_CheckType, MVT::v32i16,
/*525159*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*525161*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525164*/        OPC_EmitMergeInputChains1_0,
/*525165*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mulhu:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                  // Dst: (VPMULHUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525177*/      0, // EndSwitchType
/*525178*/    /*Scope*/ 79, /*->525258*/
/*525179*/      OPC_RecordChild0, // #0 = $src1
/*525180*/      OPC_RecordChild1, // #1 = $src2
/*525181*/      OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->525219
/*525184*/        OPC_Scope, 10, /*->525196*/ // 3 children in Scope
/*525186*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525188*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mulhu:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHUWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*525196*/        /*Scope*/ 10, /*->525207*/
/*525197*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*525199*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHUWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mulhu:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PMULHUWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*525207*/        /*Scope*/ 10, /*->525218*/
/*525208*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525210*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mulhu:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHUWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*525218*/        0, /*End of Scope*/
/*525219*/      /*SwitchType*/ 24, MVT::v16i16,// ->525245
/*525221*/        OPC_Scope, 10, /*->525233*/ // 2 children in Scope
/*525223*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525225*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mulhu:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHUWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*525233*/        /*Scope*/ 10, /*->525244*/
/*525234*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525236*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mulhu:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHUWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*525244*/        0, /*End of Scope*/
/*525245*/      /*SwitchType*/ 10, MVT::v32i16,// ->525257
/*525247*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*525249*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (mulhu:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPMULHUWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*525257*/      0, // EndSwitchType
/*525258*/    0, /*End of Scope*/
/*525259*/  /*SwitchOpcode*/ 38|128,3/*422*/, TARGET_VAL(ISD::MULHS),// ->525685
/*525263*/    OPC_Scope, 38|128,1/*166*/, /*->525432*/ // 3 children in Scope
/*525266*/      OPC_RecordChild0, // #0 = $src1
/*525267*/      OPC_MoveChild1,
/*525268*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*525271*/      OPC_MoveChild0,
/*525272*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525275*/      OPC_RecordMemRef,
/*525276*/      OPC_RecordNode, // #1 = 'ld' chained node
/*525277*/      OPC_CheckFoldableChainNode,
/*525278*/      OPC_RecordChild1, // #2 = $src2
/*525279*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525281*/      OPC_CheckPredicate, 9, // Predicate_load
/*525283*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*525285*/      OPC_SwitchType /*3 cases */, 73, MVT::v2i64,// ->525361
/*525288*/        OPC_Scope, 22, /*->525312*/ // 3 children in Scope
/*525290*/          OPC_MoveParent,
/*525291*/          OPC_MoveParent,
/*525292*/          OPC_CheckType, MVT::v8i16,
/*525294*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525296*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525299*/          OPC_EmitMergeInputChains1_1,
/*525300*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525312*/        /*Scope*/ 24, /*->525337*/
/*525313*/          OPC_CheckPredicate, 48, // Predicate_memop
/*525315*/          OPC_MoveParent,
/*525316*/          OPC_MoveParent,
/*525317*/          OPC_CheckType, MVT::v8i16,
/*525319*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*525321*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525324*/          OPC_EmitMergeInputChains1_1,
/*525325*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PMULHWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525337*/        /*Scope*/ 22, /*->525360*/
/*525338*/          OPC_MoveParent,
/*525339*/          OPC_MoveParent,
/*525340*/          OPC_CheckType, MVT::v8i16,
/*525342*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525344*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525347*/          OPC_EmitMergeInputChains1_1,
/*525348*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525360*/        0, /*End of Scope*/
/*525361*/      /*SwitchType*/ 44, MVT::v4i64,// ->525407
/*525363*/        OPC_MoveParent,
/*525364*/        OPC_MoveParent,
/*525365*/        OPC_CheckType, MVT::v16i16,
/*525367*/        OPC_Scope, 18, /*->525387*/ // 2 children in Scope
/*525369*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525371*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525374*/          OPC_EmitMergeInputChains1_1,
/*525375*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525387*/        /*Scope*/ 18, /*->525406*/
/*525388*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525390*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525393*/          OPC_EmitMergeInputChains1_1,
/*525394*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525406*/        0, /*End of Scope*/
/*525407*/      /*SwitchType*/ 22, MVT::v8i64,// ->525431
/*525409*/        OPC_MoveParent,
/*525410*/        OPC_MoveParent,
/*525411*/        OPC_CheckType, MVT::v32i16,
/*525413*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*525415*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525418*/        OPC_EmitMergeInputChains1_1,
/*525419*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (mulhs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPMULHWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525431*/      0, // EndSwitchType
/*525432*/    /*Scope*/ 42|128,1/*170*/, /*->525604*/
/*525434*/      OPC_MoveChild0,
/*525435*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*525438*/      OPC_MoveChild0,
/*525439*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525442*/      OPC_RecordMemRef,
/*525443*/      OPC_RecordNode, // #0 = 'ld' chained node
/*525444*/      OPC_CheckFoldableChainNode,
/*525445*/      OPC_RecordChild1, // #1 = $src2
/*525446*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525448*/      OPC_CheckPredicate, 9, // Predicate_load
/*525450*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*525452*/      OPC_SwitchType /*3 cases */, 76, MVT::v2i64,// ->525531
/*525455*/        OPC_Scope, 23, /*->525480*/ // 3 children in Scope
/*525457*/          OPC_MoveParent,
/*525458*/          OPC_MoveParent,
/*525459*/          OPC_RecordChild1, // #2 = $src1
/*525460*/          OPC_CheckType, MVT::v8i16,
/*525462*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525464*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525467*/          OPC_EmitMergeInputChains1_0,
/*525468*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525480*/        /*Scope*/ 25, /*->525506*/
/*525481*/          OPC_CheckPredicate, 48, // Predicate_memop
/*525483*/          OPC_MoveParent,
/*525484*/          OPC_MoveParent,
/*525485*/          OPC_RecordChild1, // #2 = $src1
/*525486*/          OPC_CheckType, MVT::v8i16,
/*525488*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*525490*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525493*/          OPC_EmitMergeInputChains1_0,
/*525494*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (PMULHWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525506*/        /*Scope*/ 23, /*->525530*/
/*525507*/          OPC_MoveParent,
/*525508*/          OPC_MoveParent,
/*525509*/          OPC_RecordChild1, // #2 = $src1
/*525510*/          OPC_CheckType, MVT::v8i16,
/*525512*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525514*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525517*/          OPC_EmitMergeInputChains1_0,
/*525518*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525530*/        0, /*End of Scope*/
/*525531*/      /*SwitchType*/ 45, MVT::v4i64,// ->525578
/*525533*/        OPC_MoveParent,
/*525534*/        OPC_MoveParent,
/*525535*/        OPC_RecordChild1, // #2 = $src1
/*525536*/        OPC_CheckType, MVT::v16i16,
/*525538*/        OPC_Scope, 18, /*->525558*/ // 2 children in Scope
/*525540*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525542*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525545*/          OPC_EmitMergeInputChains1_0,
/*525546*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525558*/        /*Scope*/ 18, /*->525577*/
/*525559*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525561*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525564*/          OPC_EmitMergeInputChains1_0,
/*525565*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525577*/        0, /*End of Scope*/
/*525578*/      /*SwitchType*/ 23, MVT::v8i64,// ->525603
/*525580*/        OPC_MoveParent,
/*525581*/        OPC_MoveParent,
/*525582*/        OPC_RecordChild1, // #2 = $src1
/*525583*/        OPC_CheckType, MVT::v32i16,
/*525585*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*525587*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525590*/        OPC_EmitMergeInputChains1_0,
/*525591*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mulhs:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                  // Dst: (VPMULHWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525603*/      0, // EndSwitchType
/*525604*/    /*Scope*/ 79, /*->525684*/
/*525605*/      OPC_RecordChild0, // #0 = $src1
/*525606*/      OPC_RecordChild1, // #1 = $src2
/*525607*/      OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->525645
/*525610*/        OPC_Scope, 10, /*->525622*/ // 3 children in Scope
/*525612*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525614*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mulhs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*525622*/        /*Scope*/ 10, /*->525633*/
/*525623*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*525625*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mulhs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PMULHWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*525633*/        /*Scope*/ 10, /*->525644*/
/*525634*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525636*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mulhs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*525644*/        0, /*End of Scope*/
/*525645*/      /*SwitchType*/ 24, MVT::v16i16,// ->525671
/*525647*/        OPC_Scope, 10, /*->525659*/ // 2 children in Scope
/*525649*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525651*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mulhs:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*525659*/        /*Scope*/ 10, /*->525670*/
/*525660*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525662*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (mulhs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*525670*/        0, /*End of Scope*/
/*525671*/      /*SwitchType*/ 10, MVT::v32i16,// ->525683
/*525673*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*525675*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (mulhs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPMULHWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*525683*/      0, // EndSwitchType
/*525684*/    0, /*End of Scope*/
/*525685*/  /*SwitchOpcode*/ 78|128,3/*462*/, TARGET_VAL(X86ISD::SUBS),// ->526151
/*525689*/    OPC_RecordChild0, // #0 = $src1
/*525690*/    OPC_Scope, 46|128,2/*302*/, /*->525995*/ // 2 children in Scope
/*525693*/      OPC_MoveChild1,
/*525694*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*525697*/      OPC_MoveChild0,
/*525698*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525701*/      OPC_RecordMemRef,
/*525702*/      OPC_RecordNode, // #1 = 'ld' chained node
/*525703*/      OPC_CheckFoldableChainNode,
/*525704*/      OPC_RecordChild1, // #2 = $src2
/*525705*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525707*/      OPC_CheckPredicate, 9, // Predicate_load
/*525709*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*525711*/      OPC_SwitchType /*3 cases */, 15|128,1/*143*/, MVT::v2i64,// ->525858
/*525715*/        OPC_Scope, 22, /*->525739*/ // 5 children in Scope
/*525717*/          OPC_MoveParent,
/*525718*/          OPC_MoveParent,
/*525719*/          OPC_CheckType, MVT::v16i8,
/*525721*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525723*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525726*/          OPC_EmitMergeInputChains1_1,
/*525727*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subs:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSUBSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525739*/        /*Scope*/ 24, /*->525764*/
/*525740*/          OPC_CheckPredicate, 48, // Predicate_memop
/*525742*/          OPC_MoveParent,
/*525743*/          OPC_MoveParent,
/*525744*/          OPC_CheckType, MVT::v16i8,
/*525746*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*525748*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525751*/          OPC_EmitMergeInputChains1_1,
/*525752*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subs:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSUBSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525764*/        /*Scope*/ 22, /*->525787*/
/*525765*/          OPC_MoveParent,
/*525766*/          OPC_MoveParent,
/*525767*/          OPC_CheckType, MVT::v8i16,
/*525769*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525771*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525774*/          OPC_EmitMergeInputChains1_1,
/*525775*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSUBSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525787*/        /*Scope*/ 24, /*->525812*/
/*525788*/          OPC_CheckPredicate, 48, // Predicate_memop
/*525790*/          OPC_MoveParent,
/*525791*/          OPC_MoveParent,
/*525792*/          OPC_CheckType, MVT::v8i16,
/*525794*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*525796*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525799*/          OPC_EmitMergeInputChains1_1,
/*525800*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSUBSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525812*/        /*Scope*/ 44, /*->525857*/
/*525813*/          OPC_MoveParent,
/*525814*/          OPC_MoveParent,
/*525815*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->525836
/*525818*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525820*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525823*/            OPC_EmitMergeInputChains1_1,
/*525824*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525836*/          /*SwitchType*/ 18, MVT::v16i8,// ->525856
/*525838*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525840*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525843*/            OPC_EmitMergeInputChains1_1,
/*525844*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subs:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525856*/          0, // EndSwitchType
/*525857*/        0, /*End of Scope*/
/*525858*/      /*SwitchType*/ 88, MVT::v4i64,// ->525948
/*525860*/        OPC_MoveParent,
/*525861*/        OPC_MoveParent,
/*525862*/        OPC_SwitchType /*2 cases */, 40, MVT::v32i8,// ->525905
/*525865*/          OPC_Scope, 18, /*->525885*/ // 2 children in Scope
/*525867*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525869*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525872*/            OPC_EmitMergeInputChains1_1,
/*525873*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subs:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525885*/          /*Scope*/ 18, /*->525904*/
/*525886*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525888*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525891*/            OPC_EmitMergeInputChains1_1,
/*525892*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subs:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525904*/          0, /*End of Scope*/
/*525905*/        /*SwitchType*/ 40, MVT::v16i16,// ->525947
/*525907*/          OPC_Scope, 18, /*->525927*/ // 2 children in Scope
/*525909*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*525911*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525914*/            OPC_EmitMergeInputChains1_1,
/*525915*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subs:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525927*/          /*Scope*/ 18, /*->525946*/
/*525928*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*525930*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525933*/            OPC_EmitMergeInputChains1_1,
/*525934*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525946*/          0, /*End of Scope*/
/*525947*/        0, // EndSwitchType
/*525948*/      /*SwitchType*/ 44, MVT::v8i64,// ->525994
/*525950*/        OPC_MoveParent,
/*525951*/        OPC_MoveParent,
/*525952*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i16,// ->525973
/*525955*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*525957*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525960*/          OPC_EmitMergeInputChains1_1,
/*525961*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSUBSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525973*/        /*SwitchType*/ 18, MVT::v64i8,// ->525993
/*525975*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*525977*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*525980*/          OPC_EmitMergeInputChains1_1,
/*525981*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subs:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSUBSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*525993*/        0, // EndSwitchType
/*525994*/      0, // EndSwitchType
/*525995*/    /*Scope*/ 25|128,1/*153*/, /*->526150*/
/*525997*/      OPC_RecordChild1, // #1 = $src2
/*525998*/      OPC_SwitchType /*6 cases */, 35, MVT::v16i8,// ->526036
/*526001*/        OPC_Scope, 10, /*->526013*/ // 3 children in Scope
/*526003*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526005*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subs:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*526013*/        /*Scope*/ 10, /*->526024*/
/*526014*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*526016*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subs:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PSUBSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*526024*/        /*Scope*/ 10, /*->526035*/
/*526025*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526027*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subs:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*526035*/        0, /*End of Scope*/
/*526036*/      /*SwitchType*/ 24, MVT::v32i8,// ->526062
/*526038*/        OPC_Scope, 10, /*->526050*/ // 2 children in Scope
/*526040*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526042*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subs:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*526050*/        /*Scope*/ 10, /*->526061*/
/*526051*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526053*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subs:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*526061*/        0, /*End of Scope*/
/*526062*/      /*SwitchType*/ 35, MVT::v8i16,// ->526099
/*526064*/        OPC_Scope, 10, /*->526076*/ // 3 children in Scope
/*526066*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526068*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*526076*/        /*Scope*/ 10, /*->526087*/
/*526077*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*526079*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PSUBSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*526087*/        /*Scope*/ 10, /*->526098*/
/*526088*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526090*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*526098*/        0, /*End of Scope*/
/*526099*/      /*SwitchType*/ 24, MVT::v16i16,// ->526125
/*526101*/        OPC_Scope, 10, /*->526113*/ // 2 children in Scope
/*526103*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526105*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subs:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*526113*/        /*Scope*/ 10, /*->526124*/
/*526114*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526116*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*526124*/        0, /*End of Scope*/
/*526125*/      /*SwitchType*/ 10, MVT::v32i16,// ->526137
/*526127*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*526129*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86subs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPSUBSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*526137*/      /*SwitchType*/ 10, MVT::v64i8,// ->526149
/*526139*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*526141*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86subs:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPSUBSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*526149*/      0, // EndSwitchType
/*526150*/    0, /*End of Scope*/
/*526151*/  /*SwitchOpcode*/ 78|128,3/*462*/, TARGET_VAL(X86ISD::SUBUS),// ->526617
/*526155*/    OPC_RecordChild0, // #0 = $src1
/*526156*/    OPC_Scope, 46|128,2/*302*/, /*->526461*/ // 2 children in Scope
/*526159*/      OPC_MoveChild1,
/*526160*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*526163*/      OPC_MoveChild0,
/*526164*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526167*/      OPC_RecordMemRef,
/*526168*/      OPC_RecordNode, // #1 = 'ld' chained node
/*526169*/      OPC_CheckFoldableChainNode,
/*526170*/      OPC_RecordChild1, // #2 = $src2
/*526171*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526173*/      OPC_CheckPredicate, 9, // Predicate_load
/*526175*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*526177*/      OPC_SwitchType /*3 cases */, 15|128,1/*143*/, MVT::v2i64,// ->526324
/*526181*/        OPC_Scope, 22, /*->526205*/ // 5 children in Scope
/*526183*/          OPC_MoveParent,
/*526184*/          OPC_MoveParent,
/*526185*/          OPC_CheckType, MVT::v16i8,
/*526187*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526189*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526192*/          OPC_EmitMergeInputChains1_1,
/*526193*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subus:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSUBUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526205*/        /*Scope*/ 24, /*->526230*/
/*526206*/          OPC_CheckPredicate, 48, // Predicate_memop
/*526208*/          OPC_MoveParent,
/*526209*/          OPC_MoveParent,
/*526210*/          OPC_CheckType, MVT::v16i8,
/*526212*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*526214*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526217*/          OPC_EmitMergeInputChains1_1,
/*526218*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subus:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSUBUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526230*/        /*Scope*/ 22, /*->526253*/
/*526231*/          OPC_MoveParent,
/*526232*/          OPC_MoveParent,
/*526233*/          OPC_CheckType, MVT::v8i16,
/*526235*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526237*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526240*/          OPC_EmitMergeInputChains1_1,
/*526241*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subus:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSUBUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526253*/        /*Scope*/ 24, /*->526278*/
/*526254*/          OPC_CheckPredicate, 48, // Predicate_memop
/*526256*/          OPC_MoveParent,
/*526257*/          OPC_MoveParent,
/*526258*/          OPC_CheckType, MVT::v8i16,
/*526260*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*526262*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526265*/          OPC_EmitMergeInputChains1_1,
/*526266*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subus:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSUBUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526278*/        /*Scope*/ 44, /*->526323*/
/*526279*/          OPC_MoveParent,
/*526280*/          OPC_MoveParent,
/*526281*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->526302
/*526284*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526286*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526289*/            OPC_EmitMergeInputChains1_1,
/*526290*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBUSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526302*/          /*SwitchType*/ 18, MVT::v16i8,// ->526322
/*526304*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526306*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526309*/            OPC_EmitMergeInputChains1_1,
/*526310*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBUSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526322*/          0, // EndSwitchType
/*526323*/        0, /*End of Scope*/
/*526324*/      /*SwitchType*/ 88, MVT::v4i64,// ->526414
/*526326*/        OPC_MoveParent,
/*526327*/        OPC_MoveParent,
/*526328*/        OPC_SwitchType /*2 cases */, 40, MVT::v32i8,// ->526371
/*526331*/          OPC_Scope, 18, /*->526351*/ // 2 children in Scope
/*526333*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526335*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526338*/            OPC_EmitMergeInputChains1_1,
/*526339*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subus:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBUSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526351*/          /*Scope*/ 18, /*->526370*/
/*526352*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526354*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526357*/            OPC_EmitMergeInputChains1_1,
/*526358*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBUSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526370*/          0, /*End of Scope*/
/*526371*/        /*SwitchType*/ 40, MVT::v16i16,// ->526413
/*526373*/          OPC_Scope, 18, /*->526393*/ // 2 children in Scope
/*526375*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526377*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526380*/            OPC_EmitMergeInputChains1_1,
/*526381*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subus:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBUSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526393*/          /*Scope*/ 18, /*->526412*/
/*526394*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526396*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526399*/            OPC_EmitMergeInputChains1_1,
/*526400*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86subus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSUBUSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526412*/          0, /*End of Scope*/
/*526413*/        0, // EndSwitchType
/*526414*/      /*SwitchType*/ 44, MVT::v8i64,// ->526460
/*526416*/        OPC_MoveParent,
/*526417*/        OPC_MoveParent,
/*526418*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i16,// ->526439
/*526421*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*526423*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526426*/          OPC_EmitMergeInputChains1_1,
/*526427*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSUBUSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526439*/        /*SwitchType*/ 18, MVT::v64i8,// ->526459
/*526441*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*526443*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526446*/          OPC_EmitMergeInputChains1_1,
/*526447*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86subus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSUBUSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526459*/        0, // EndSwitchType
/*526460*/      0, // EndSwitchType
/*526461*/    /*Scope*/ 25|128,1/*153*/, /*->526616*/
/*526463*/      OPC_RecordChild1, // #1 = $src2
/*526464*/      OPC_SwitchType /*6 cases */, 35, MVT::v16i8,// ->526502
/*526467*/        OPC_Scope, 10, /*->526479*/ // 3 children in Scope
/*526469*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526471*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subus:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*526479*/        /*Scope*/ 10, /*->526490*/
/*526480*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*526482*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBUSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subus:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PSUBUSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*526490*/        /*Scope*/ 10, /*->526501*/
/*526491*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526493*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subus:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*526501*/        0, /*End of Scope*/
/*526502*/      /*SwitchType*/ 24, MVT::v32i8,// ->526528
/*526504*/        OPC_Scope, 10, /*->526516*/ // 2 children in Scope
/*526506*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526508*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subus:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*526516*/        /*Scope*/ 10, /*->526527*/
/*526517*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526519*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subus:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*526527*/        0, /*End of Scope*/
/*526528*/      /*SwitchType*/ 35, MVT::v8i16,// ->526565
/*526530*/        OPC_Scope, 10, /*->526542*/ // 3 children in Scope
/*526532*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526534*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subus:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*526542*/        /*Scope*/ 10, /*->526553*/
/*526543*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*526545*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBUSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subus:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PSUBUSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*526553*/        /*Scope*/ 10, /*->526564*/
/*526554*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526556*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subus:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*526564*/        0, /*End of Scope*/
/*526565*/      /*SwitchType*/ 24, MVT::v16i16,// ->526591
/*526567*/        OPC_Scope, 10, /*->526579*/ // 2 children in Scope
/*526569*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526571*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subus:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*526579*/        /*Scope*/ 10, /*->526590*/
/*526580*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526582*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86subus:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*526590*/        0, /*End of Scope*/
/*526591*/      /*SwitchType*/ 10, MVT::v32i16,// ->526603
/*526593*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*526595*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86subus:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPSUBUSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*526603*/      /*SwitchType*/ 10, MVT::v64i8,// ->526615
/*526605*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*526607*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86subus:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPSUBUSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*526615*/      0, // EndSwitchType
/*526616*/    0, /*End of Scope*/
/*526617*/  /*SwitchOpcode*/ 67|128,13/*1731*/, TARGET_VAL(ISD::UMIN),// ->528352
/*526621*/    OPC_Scope, 73|128,4/*585*/, /*->527209*/ // 5 children in Scope
/*526624*/      OPC_RecordChild0, // #0 = $src1
/*526625*/      OPC_MoveChild1,
/*526626*/      OPC_SwitchOpcode /*2 cases */, 41|128,3/*425*/, TARGET_VAL(ISD::BITCAST),// ->527056
/*526631*/        OPC_MoveChild0,
/*526632*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526635*/        OPC_RecordMemRef,
/*526636*/        OPC_RecordNode, // #1 = 'ld' chained node
/*526637*/        OPC_CheckFoldableChainNode,
/*526638*/        OPC_RecordChild1, // #2 = $src2
/*526639*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526641*/        OPC_CheckPredicate, 9, // Predicate_load
/*526643*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*526645*/        OPC_SwitchType /*3 cases */, 79|128,1/*207*/, MVT::v2i64,// ->526856
/*526649*/          OPC_Scope, 22, /*->526673*/ // 5 children in Scope
/*526651*/            OPC_MoveParent,
/*526652*/            OPC_MoveParent,
/*526653*/            OPC_CheckType, MVT::v16i8,
/*526655*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526657*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526660*/            OPC_EmitMergeInputChains1_1,
/*526661*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMINUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526673*/          /*Scope*/ 24, /*->526698*/
/*526674*/            OPC_CheckPredicate, 48, // Predicate_memop
/*526676*/            OPC_MoveParent,
/*526677*/            OPC_MoveParent,
/*526678*/            OPC_CheckType, MVT::v16i8,
/*526680*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*526682*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526685*/            OPC_EmitMergeInputChains1_1,
/*526686*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PMINUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526698*/          /*Scope*/ 44, /*->526743*/
/*526699*/            OPC_MoveParent,
/*526700*/            OPC_MoveParent,
/*526701*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->526722
/*526704*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*526706*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526709*/              OPC_EmitMergeInputChains1_1,
/*526710*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526722*/            /*SwitchType*/ 18, MVT::v8i16,// ->526742
/*526724*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526726*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526729*/              OPC_EmitMergeInputChains1_1,
/*526730*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526742*/            0, // EndSwitchType
/*526743*/          /*Scope*/ 46, /*->526790*/
/*526744*/            OPC_CheckPredicate, 48, // Predicate_memop
/*526746*/            OPC_MoveParent,
/*526747*/            OPC_MoveParent,
/*526748*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->526769
/*526751*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*526753*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526756*/              OPC_EmitMergeInputChains1_1,
/*526757*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PMINUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526769*/            /*SwitchType*/ 18, MVT::v8i16,// ->526789
/*526771*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*526773*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526776*/              OPC_EmitMergeInputChains1_1,
/*526777*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PMINUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526789*/            0, // EndSwitchType
/*526790*/          /*Scope*/ 64, /*->526855*/
/*526791*/            OPC_MoveParent,
/*526792*/            OPC_MoveParent,
/*526793*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->526814
/*526796*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526798*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526801*/              OPC_EmitMergeInputChains1_1,
/*526802*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINUBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526814*/            /*SwitchType*/ 18, MVT::v8i16,// ->526834
/*526816*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526818*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526821*/              OPC_EmitMergeInputChains1_1,
/*526822*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526834*/            /*SwitchType*/ 18, MVT::v4i32,// ->526854
/*526836*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*526838*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526841*/              OPC_EmitMergeInputChains1_1,
/*526842*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINUDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526854*/            0, // EndSwitchType
/*526855*/          0, /*End of Scope*/
/*526856*/        /*SwitchType*/ 2|128,1/*130*/, MVT::v4i64,// ->526989
/*526859*/          OPC_MoveParent,
/*526860*/          OPC_MoveParent,
/*526861*/          OPC_SwitchType /*3 cases */, 40, MVT::v32i8,// ->526904
/*526864*/            OPC_Scope, 18, /*->526884*/ // 2 children in Scope
/*526866*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526868*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526871*/              OPC_EmitMergeInputChains1_1,
/*526872*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINUBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526884*/            /*Scope*/ 18, /*->526903*/
/*526885*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526887*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526890*/              OPC_EmitMergeInputChains1_1,
/*526891*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINUBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526903*/            0, /*End of Scope*/
/*526904*/          /*SwitchType*/ 40, MVT::v8i32,// ->526946
/*526906*/            OPC_Scope, 18, /*->526926*/ // 2 children in Scope
/*526908*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*526910*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526913*/              OPC_EmitMergeInputChains1_1,
/*526914*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINUDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526926*/            /*Scope*/ 18, /*->526945*/
/*526927*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*526929*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526932*/              OPC_EmitMergeInputChains1_1,
/*526933*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINUDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526945*/            0, /*End of Scope*/
/*526946*/          /*SwitchType*/ 40, MVT::v16i16,// ->526988
/*526948*/            OPC_Scope, 18, /*->526968*/ // 2 children in Scope
/*526950*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*526952*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526955*/              OPC_EmitMergeInputChains1_1,
/*526956*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526968*/            /*Scope*/ 18, /*->526987*/
/*526969*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*526971*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*526974*/              OPC_EmitMergeInputChains1_1,
/*526975*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*526987*/            0, /*End of Scope*/
/*526988*/          0, // EndSwitchType
/*526989*/        /*SwitchType*/ 64, MVT::v8i64,// ->527055
/*526991*/          OPC_MoveParent,
/*526992*/          OPC_MoveParent,
/*526993*/          OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->527014
/*526996*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*526998*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527001*/            OPC_EmitMergeInputChains1_1,
/*527002*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMINUBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527014*/          /*SwitchType*/ 18, MVT::v32i16,// ->527034
/*527016*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*527018*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527021*/            OPC_EmitMergeInputChains1_1,
/*527022*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMINUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527034*/          /*SwitchType*/ 18, MVT::v16i32,// ->527054
/*527036*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527038*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527041*/            OPC_EmitMergeInputChains1_1,
/*527042*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMINUDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527054*/          0, // EndSwitchType
/*527055*/        0, // EndSwitchType
/*527056*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->527208
/*527060*/        OPC_MoveChild0,
/*527061*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527064*/        OPC_RecordMemRef,
/*527065*/        OPC_RecordNode, // #1 = 'ld' chained node
/*527066*/        OPC_CheckFoldableChainNode,
/*527067*/        OPC_RecordChild1, // #2 = $src2
/*527068*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527070*/        OPC_SwitchType /*2 cases */, 66, MVT::i32,// ->527139
/*527073*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*527075*/          OPC_MoveParent,
/*527076*/          OPC_MoveParent,
/*527077*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->527098
/*527080*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527082*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527085*/            OPC_EmitMergeInputChains1_1,
/*527086*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMINUDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527098*/          /*SwitchType*/ 18, MVT::v8i32,// ->527118
/*527100*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527102*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527105*/            OPC_EmitMergeInputChains1_1,
/*527106*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMINUDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527118*/          /*SwitchType*/ 18, MVT::v4i32,// ->527138
/*527120*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527122*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527125*/            OPC_EmitMergeInputChains1_1,
/*527126*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMINUDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527138*/          0, // EndSwitchType
/*527139*/        /*SwitchType*/ 66, MVT::i64,// ->527207
/*527141*/          OPC_CheckPredicate, 9, // Predicate_load
/*527143*/          OPC_MoveParent,
/*527144*/          OPC_MoveParent,
/*527145*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->527166
/*527148*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527150*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527153*/            OPC_EmitMergeInputChains1_1,
/*527154*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMINUQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527166*/          /*SwitchType*/ 18, MVT::v4i64,// ->527186
/*527168*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527170*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527173*/            OPC_EmitMergeInputChains1_1,
/*527174*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMINUQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527186*/          /*SwitchType*/ 18, MVT::v2i64,// ->527206
/*527188*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527190*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527193*/            OPC_EmitMergeInputChains1_1,
/*527194*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMINUQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527206*/          0, // EndSwitchType
/*527207*/        0, // EndSwitchType
/*527208*/      0, // EndSwitchOpcode
/*527209*/    /*Scope*/ 81|128,4/*593*/, /*->527804*/
/*527211*/      OPC_MoveChild0,
/*527212*/      OPC_SwitchOpcode /*2 cases */, 48|128,3/*432*/, TARGET_VAL(ISD::BITCAST),// ->527649
/*527217*/        OPC_MoveChild0,
/*527218*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527221*/        OPC_RecordMemRef,
/*527222*/        OPC_RecordNode, // #0 = 'ld' chained node
/*527223*/        OPC_CheckFoldableChainNode,
/*527224*/        OPC_RecordChild1, // #1 = $src2
/*527225*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527227*/        OPC_CheckPredicate, 9, // Predicate_load
/*527229*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*527231*/        OPC_SwitchType /*3 cases */, 84|128,1/*212*/, MVT::v2i64,// ->527447
/*527235*/          OPC_Scope, 23, /*->527260*/ // 5 children in Scope
/*527237*/            OPC_MoveParent,
/*527238*/            OPC_MoveParent,
/*527239*/            OPC_RecordChild1, // #2 = $src1
/*527240*/            OPC_CheckType, MVT::v16i8,
/*527242*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*527244*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527247*/            OPC_EmitMergeInputChains1_0,
/*527248*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                      // Dst: (VPMINUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527260*/          /*Scope*/ 25, /*->527286*/
/*527261*/            OPC_CheckPredicate, 48, // Predicate_memop
/*527263*/            OPC_MoveParent,
/*527264*/            OPC_MoveParent,
/*527265*/            OPC_RecordChild1, // #2 = $src1
/*527266*/            OPC_CheckType, MVT::v16i8,
/*527268*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*527270*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527273*/            OPC_EmitMergeInputChains1_0,
/*527274*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                      // Dst: (PMINUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527286*/          /*Scope*/ 45, /*->527332*/
/*527287*/            OPC_MoveParent,
/*527288*/            OPC_MoveParent,
/*527289*/            OPC_RecordChild1, // #2 = $src1
/*527290*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->527311
/*527293*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*527295*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527298*/              OPC_EmitMergeInputChains1_0,
/*527299*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPMINUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527311*/            /*SwitchType*/ 18, MVT::v8i16,// ->527331
/*527313*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*527315*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527318*/              OPC_EmitMergeInputChains1_0,
/*527319*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                        // Dst: (VPMINUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527331*/            0, // EndSwitchType
/*527332*/          /*Scope*/ 47, /*->527380*/
/*527333*/            OPC_CheckPredicate, 48, // Predicate_memop
/*527335*/            OPC_MoveParent,
/*527336*/            OPC_MoveParent,
/*527337*/            OPC_RecordChild1, // #2 = $src1
/*527338*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->527359
/*527341*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*527343*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527346*/              OPC_EmitMergeInputChains1_0,
/*527347*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (PMINUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527359*/            /*SwitchType*/ 18, MVT::v8i16,// ->527379
/*527361*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*527363*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527366*/              OPC_EmitMergeInputChains1_0,
/*527367*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                        // Dst: (PMINUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527379*/            0, // EndSwitchType
/*527380*/          /*Scope*/ 65, /*->527446*/
/*527381*/            OPC_MoveParent,
/*527382*/            OPC_MoveParent,
/*527383*/            OPC_RecordChild1, // #2 = $src1
/*527384*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->527405
/*527387*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*527389*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527392*/              OPC_EmitMergeInputChains1_0,
/*527393*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1) - Complexity = 28
                        // Dst: (VPMINUBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527405*/            /*SwitchType*/ 18, MVT::v8i16,// ->527425
/*527407*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*527409*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527412*/              OPC_EmitMergeInputChains1_0,
/*527413*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                        // Dst: (VPMINUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527425*/            /*SwitchType*/ 18, MVT::v4i32,// ->527445
/*527427*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527429*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527432*/              OPC_EmitMergeInputChains1_0,
/*527433*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPMINUDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527445*/            0, // EndSwitchType
/*527446*/          0, /*End of Scope*/
/*527447*/        /*SwitchType*/ 3|128,1/*131*/, MVT::v4i64,// ->527581
/*527450*/          OPC_MoveParent,
/*527451*/          OPC_MoveParent,
/*527452*/          OPC_RecordChild1, // #2 = $src1
/*527453*/          OPC_SwitchType /*3 cases */, 40, MVT::v32i8,// ->527496
/*527456*/            OPC_Scope, 18, /*->527476*/ // 2 children in Scope
/*527458*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*527460*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527463*/              OPC_EmitMergeInputChains1_0,
/*527464*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPMINUBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527476*/            /*Scope*/ 18, /*->527495*/
/*527477*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*527479*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527482*/              OPC_EmitMergeInputChains1_0,
/*527483*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPMINUBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527495*/            0, /*End of Scope*/
/*527496*/          /*SwitchType*/ 40, MVT::v8i32,// ->527538
/*527498*/            OPC_Scope, 18, /*->527518*/ // 2 children in Scope
/*527500*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*527502*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527505*/              OPC_EmitMergeInputChains1_0,
/*527506*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPMINUDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527518*/            /*Scope*/ 18, /*->527537*/
/*527519*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527521*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527524*/              OPC_EmitMergeInputChains1_0,
/*527525*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPMINUDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527537*/            0, /*End of Scope*/
/*527538*/          /*SwitchType*/ 40, MVT::v16i16,// ->527580
/*527540*/            OPC_Scope, 18, /*->527560*/ // 2 children in Scope
/*527542*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*527544*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527547*/              OPC_EmitMergeInputChains1_0,
/*527548*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPMINUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527560*/            /*Scope*/ 18, /*->527579*/
/*527561*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*527563*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527566*/              OPC_EmitMergeInputChains1_0,
/*527567*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umin:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPMINUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527579*/            0, /*End of Scope*/
/*527580*/          0, // EndSwitchType
/*527581*/        /*SwitchType*/ 65, MVT::v8i64,// ->527648
/*527583*/          OPC_MoveParent,
/*527584*/          OPC_MoveParent,
/*527585*/          OPC_RecordChild1, // #2 = $src1
/*527586*/          OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->527607
/*527589*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*527591*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527594*/            OPC_EmitMergeInputChains1_0,
/*527595*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1) - Complexity = 28
                      // Dst: (VPMINUBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527607*/          /*SwitchType*/ 18, MVT::v32i16,// ->527627
/*527609*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*527611*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527614*/            OPC_EmitMergeInputChains1_0,
/*527615*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                      // Dst: (VPMINUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527627*/          /*SwitchType*/ 18, MVT::v16i32,// ->527647
/*527629*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527631*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527634*/            OPC_EmitMergeInputChains1_0,
/*527635*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPMINUDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527647*/          0, // EndSwitchType
/*527648*/        0, // EndSwitchType
/*527649*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST),// ->527803
/*527653*/        OPC_MoveChild0,
/*527654*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527657*/        OPC_RecordMemRef,
/*527658*/        OPC_RecordNode, // #0 = 'ld' chained node
/*527659*/        OPC_CheckFoldableChainNode,
/*527660*/        OPC_RecordChild1, // #1 = $src2
/*527661*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527663*/        OPC_SwitchType /*2 cases */, 67, MVT::i32,// ->527733
/*527666*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*527668*/          OPC_MoveParent,
/*527669*/          OPC_MoveParent,
/*527670*/          OPC_RecordChild1, // #2 = $src1
/*527671*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->527692
/*527674*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527676*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527679*/            OPC_EmitMergeInputChains1_0,
/*527680*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPMINUDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527692*/          /*SwitchType*/ 18, MVT::v8i32,// ->527712
/*527694*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527696*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527699*/            OPC_EmitMergeInputChains1_0,
/*527700*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                      // Dst: (VPMINUDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527712*/          /*SwitchType*/ 18, MVT::v4i32,// ->527732
/*527714*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527716*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527719*/            OPC_EmitMergeInputChains1_0,
/*527720*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                      // Dst: (VPMINUDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527732*/          0, // EndSwitchType
/*527733*/        /*SwitchType*/ 67, MVT::i64,// ->527802
/*527735*/          OPC_CheckPredicate, 9, // Predicate_load
/*527737*/          OPC_MoveParent,
/*527738*/          OPC_MoveParent,
/*527739*/          OPC_RecordChild1, // #2 = $src1
/*527740*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->527761
/*527743*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527745*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527748*/            OPC_EmitMergeInputChains1_0,
/*527749*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                      // Dst: (VPMINUQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527761*/          /*SwitchType*/ 18, MVT::v4i64,// ->527781
/*527763*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527765*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527768*/            OPC_EmitMergeInputChains1_0,
/*527769*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                      // Dst: (VPMINUQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527781*/          /*SwitchType*/ 18, MVT::v2i64,// ->527801
/*527783*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527785*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527788*/            OPC_EmitMergeInputChains1_0,
/*527789*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                      // Dst: (VPMINUQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527801*/          0, // EndSwitchType
/*527802*/        0, // EndSwitchType
/*527803*/      0, // EndSwitchOpcode
/*527804*/    /*Scope*/ 78, /*->527883*/
/*527805*/      OPC_RecordChild0, // #0 = $src1
/*527806*/      OPC_MoveChild1,
/*527807*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527810*/      OPC_RecordMemRef,
/*527811*/      OPC_RecordNode, // #1 = 'ld' chained node
/*527812*/      OPC_CheckFoldableChainNode,
/*527813*/      OPC_RecordChild1, // #2 = $src2
/*527814*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527816*/      OPC_CheckPredicate, 9, // Predicate_load
/*527818*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*527820*/      OPC_MoveParent,
/*527821*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->527842
/*527824*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527826*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527829*/        OPC_EmitMergeInputChains1_1,
/*527830*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (umin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMINUQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527842*/      /*SwitchType*/ 18, MVT::v4i64,// ->527862
/*527844*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527846*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527849*/        OPC_EmitMergeInputChains1_1,
/*527850*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (umin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMINUQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527862*/      /*SwitchType*/ 18, MVT::v2i64,// ->527882
/*527864*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527866*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527869*/        OPC_EmitMergeInputChains1_1,
/*527870*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (umin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMINUQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527882*/      0, // EndSwitchType
/*527883*/    /*Scope*/ 78, /*->527962*/
/*527884*/      OPC_MoveChild0,
/*527885*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527888*/      OPC_RecordMemRef,
/*527889*/      OPC_RecordNode, // #0 = 'ld' chained node
/*527890*/      OPC_CheckFoldableChainNode,
/*527891*/      OPC_RecordChild1, // #1 = $src2
/*527892*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527894*/      OPC_CheckPredicate, 9, // Predicate_load
/*527896*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*527898*/      OPC_MoveParent,
/*527899*/      OPC_RecordChild1, // #2 = $src1
/*527900*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->527921
/*527903*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527905*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527908*/        OPC_EmitMergeInputChains1_0,
/*527909*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (umin:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                  // Dst: (VPMINUQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527921*/      /*SwitchType*/ 18, MVT::v4i64,// ->527941
/*527923*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527925*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527928*/        OPC_EmitMergeInputChains1_0,
/*527929*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (umin:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (VPMINUQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527941*/      /*SwitchType*/ 18, MVT::v2i64,// ->527961
/*527943*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*527945*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527948*/        OPC_EmitMergeInputChains1_0,
/*527949*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (umin:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (VPMINUQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*527961*/      0, // EndSwitchType
/*527962*/    /*Scope*/ 3|128,3/*387*/, /*->528351*/
/*527964*/      OPC_RecordChild0, // #0 = $src1
/*527965*/      OPC_RecordChild1, // #1 = $src2
/*527966*/      OPC_SwitchType /*12 cases */, 35, MVT::v16i8,// ->528004
/*527969*/        OPC_Scope, 10, /*->527981*/ // 3 children in Scope
/*527971*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*527973*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPMINUBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*527981*/        /*Scope*/ 10, /*->527992*/
/*527982*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*527984*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PMINUBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*527992*/        /*Scope*/ 10, /*->528003*/
/*527993*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*527995*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPMINUBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*528003*/        0, /*End of Scope*/
/*528004*/      /*SwitchType*/ 24, MVT::v32i8,// ->528030
/*528006*/        OPC_Scope, 10, /*->528018*/ // 2 children in Scope
/*528008*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*528010*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPMINUBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*528018*/        /*Scope*/ 10, /*->528029*/
/*528019*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*528021*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPMINUBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*528029*/        0, /*End of Scope*/
/*528030*/      /*SwitchType*/ 35, MVT::v4i32,// ->528067
/*528032*/        OPC_Scope, 10, /*->528044*/ // 3 children in Scope
/*528034*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*528036*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPMINUDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*528044*/        /*Scope*/ 10, /*->528055*/
/*528045*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*528047*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PMINUDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*528055*/        /*Scope*/ 10, /*->528066*/
/*528056*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*528058*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPMINUDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*528066*/        0, /*End of Scope*/
/*528067*/      /*SwitchType*/ 35, MVT::v8i16,// ->528104
/*528069*/        OPC_Scope, 10, /*->528081*/ // 3 children in Scope
/*528071*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*528073*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMINUWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*528081*/        /*Scope*/ 10, /*->528092*/
/*528082*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*528084*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PMINUWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*528092*/        /*Scope*/ 10, /*->528103*/
/*528093*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*528095*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMINUWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*528103*/        0, /*End of Scope*/
/*528104*/      /*SwitchType*/ 24, MVT::v8i32,// ->528130
/*528106*/        OPC_Scope, 10, /*->528118*/ // 2 children in Scope
/*528108*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*528110*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPMINUDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*528118*/        /*Scope*/ 10, /*->528129*/
/*528119*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*528121*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPMINUDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*528129*/        0, /*End of Scope*/
/*528130*/      /*SwitchType*/ 24, MVT::v16i16,// ->528156
/*528132*/        OPC_Scope, 10, /*->528144*/ // 2 children in Scope
/*528134*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*528136*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMINUWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*528144*/        /*Scope*/ 10, /*->528155*/
/*528145*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*528147*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMINUWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*528155*/        0, /*End of Scope*/
/*528156*/      /*SwitchType*/ 10, MVT::v64i8,// ->528168
/*528158*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*528160*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (umin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPMINUBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*528168*/      /*SwitchType*/ 10, MVT::v32i16,// ->528180
/*528170*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*528172*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (umin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPMINUWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*528180*/      /*SwitchType*/ 10, MVT::v16i32,// ->528192
/*528182*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528184*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (umin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPMINUDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*528192*/      /*SwitchType*/ 10, MVT::v8i64,// ->528204
/*528194*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528196*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (umin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPMINUQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*528204*/      /*SwitchType*/ 71, MVT::v4i64,// ->528277
/*528206*/        OPC_Scope, 10, /*->528218*/ // 2 children in Scope
/*528208*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*528210*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPMINUQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*528218*/        /*Scope*/ 57, /*->528276*/
/*528219*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*528221*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*528227*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*528230*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*528239*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*528245*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*528248*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*528257*/          OPC_EmitNode1, TARGET_VAL(X86::VPMINUQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*528265*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*528268*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 8, 9, 
                    // Src: (umin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMINUQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*528276*/        0, /*End of Scope*/
/*528277*/      /*SwitchType*/ 71, MVT::v2i64,// ->528350
/*528279*/        OPC_Scope, 10, /*->528291*/ // 2 children in Scope
/*528281*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*528283*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (umin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPMINUQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*528291*/        /*Scope*/ 57, /*->528349*/
/*528292*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*528294*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*528300*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*528303*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*528312*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*528318*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*528321*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*528330*/          OPC_EmitNode1, TARGET_VAL(X86::VPMINUQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*528338*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*528341*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 8, 9, 
                    // Src: (umin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMINUQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*528349*/        0, /*End of Scope*/
/*528350*/      0, // EndSwitchType
/*528351*/    0, /*End of Scope*/
/*528352*/  /*SwitchOpcode*/ 67|128,13/*1731*/, TARGET_VAL(ISD::SMIN),// ->530087
/*528356*/    OPC_Scope, 73|128,4/*585*/, /*->528944*/ // 5 children in Scope
/*528359*/      OPC_RecordChild0, // #0 = $src1
/*528360*/      OPC_MoveChild1,
/*528361*/      OPC_SwitchOpcode /*2 cases */, 41|128,3/*425*/, TARGET_VAL(ISD::BITCAST),// ->528791
/*528366*/        OPC_MoveChild0,
/*528367*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*528370*/        OPC_RecordMemRef,
/*528371*/        OPC_RecordNode, // #1 = 'ld' chained node
/*528372*/        OPC_CheckFoldableChainNode,
/*528373*/        OPC_RecordChild1, // #2 = $src2
/*528374*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*528376*/        OPC_CheckPredicate, 9, // Predicate_load
/*528378*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*528380*/        OPC_SwitchType /*3 cases */, 79|128,1/*207*/, MVT::v2i64,// ->528591
/*528384*/          OPC_Scope, 22, /*->528408*/ // 5 children in Scope
/*528386*/            OPC_MoveParent,
/*528387*/            OPC_MoveParent,
/*528388*/            OPC_CheckType, MVT::v8i16,
/*528390*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*528392*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528395*/            OPC_EmitMergeInputChains1_1,
/*528396*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMINSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528408*/          /*Scope*/ 24, /*->528433*/
/*528409*/            OPC_CheckPredicate, 48, // Predicate_memop
/*528411*/            OPC_MoveParent,
/*528412*/            OPC_MoveParent,
/*528413*/            OPC_CheckType, MVT::v8i16,
/*528415*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*528417*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528420*/            OPC_EmitMergeInputChains1_1,
/*528421*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PMINSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528433*/          /*Scope*/ 44, /*->528478*/
/*528434*/            OPC_MoveParent,
/*528435*/            OPC_MoveParent,
/*528436*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->528457
/*528439*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*528441*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528444*/              OPC_EmitMergeInputChains1_1,
/*528445*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528457*/            /*SwitchType*/ 18, MVT::v16i8,// ->528477
/*528459*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*528461*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528464*/              OPC_EmitMergeInputChains1_1,
/*528465*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528477*/            0, // EndSwitchType
/*528478*/          /*Scope*/ 46, /*->528525*/
/*528479*/            OPC_CheckPredicate, 48, // Predicate_memop
/*528481*/            OPC_MoveParent,
/*528482*/            OPC_MoveParent,
/*528483*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->528504
/*528486*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*528488*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528491*/              OPC_EmitMergeInputChains1_1,
/*528492*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PMINSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528504*/            /*SwitchType*/ 18, MVT::v4i32,// ->528524
/*528506*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*528508*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528511*/              OPC_EmitMergeInputChains1_1,
/*528512*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PMINSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528524*/            0, // EndSwitchType
/*528525*/          /*Scope*/ 64, /*->528590*/
/*528526*/            OPC_MoveParent,
/*528527*/            OPC_MoveParent,
/*528528*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->528549
/*528531*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*528533*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528536*/              OPC_EmitMergeInputChains1_1,
/*528537*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528549*/            /*SwitchType*/ 18, MVT::v8i16,// ->528569
/*528551*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*528553*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528556*/              OPC_EmitMergeInputChains1_1,
/*528557*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528569*/            /*SwitchType*/ 18, MVT::v4i32,// ->528589
/*528571*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*528573*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528576*/              OPC_EmitMergeInputChains1_1,
/*528577*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINSDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528589*/            0, // EndSwitchType
/*528590*/          0, /*End of Scope*/
/*528591*/        /*SwitchType*/ 2|128,1/*130*/, MVT::v4i64,// ->528724
/*528594*/          OPC_MoveParent,
/*528595*/          OPC_MoveParent,
/*528596*/          OPC_SwitchType /*3 cases */, 40, MVT::v16i16,// ->528639
/*528599*/            OPC_Scope, 18, /*->528619*/ // 2 children in Scope
/*528601*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*528603*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528606*/              OPC_EmitMergeInputChains1_1,
/*528607*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528619*/            /*Scope*/ 18, /*->528638*/
/*528620*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*528622*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528625*/              OPC_EmitMergeInputChains1_1,
/*528626*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528638*/            0, /*End of Scope*/
/*528639*/          /*SwitchType*/ 40, MVT::v8i32,// ->528681
/*528641*/            OPC_Scope, 18, /*->528661*/ // 2 children in Scope
/*528643*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*528645*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528648*/              OPC_EmitMergeInputChains1_1,
/*528649*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINSDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528661*/            /*Scope*/ 18, /*->528680*/
/*528662*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*528664*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528667*/              OPC_EmitMergeInputChains1_1,
/*528668*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINSDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528680*/            0, /*End of Scope*/
/*528681*/          /*SwitchType*/ 40, MVT::v32i8,// ->528723
/*528683*/            OPC_Scope, 18, /*->528703*/ // 2 children in Scope
/*528685*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*528687*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528690*/              OPC_EmitMergeInputChains1_1,
/*528691*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528703*/            /*Scope*/ 18, /*->528722*/
/*528704*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*528706*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528709*/              OPC_EmitMergeInputChains1_1,
/*528710*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMINSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528722*/            0, /*End of Scope*/
/*528723*/          0, // EndSwitchType
/*528724*/        /*SwitchType*/ 64, MVT::v8i64,// ->528790
/*528726*/          OPC_MoveParent,
/*528727*/          OPC_MoveParent,
/*528728*/          OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->528749
/*528731*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*528733*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528736*/            OPC_EmitMergeInputChains1_1,
/*528737*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMINSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528749*/          /*SwitchType*/ 18, MVT::v32i16,// ->528769
/*528751*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*528753*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528756*/            OPC_EmitMergeInputChains1_1,
/*528757*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMINSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528769*/          /*SwitchType*/ 18, MVT::v16i32,// ->528789
/*528771*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528773*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528776*/            OPC_EmitMergeInputChains1_1,
/*528777*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMINSDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528789*/          0, // EndSwitchType
/*528790*/        0, // EndSwitchType
/*528791*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->528943
/*528795*/        OPC_MoveChild0,
/*528796*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*528799*/        OPC_RecordMemRef,
/*528800*/        OPC_RecordNode, // #1 = 'ld' chained node
/*528801*/        OPC_CheckFoldableChainNode,
/*528802*/        OPC_RecordChild1, // #2 = $src2
/*528803*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*528805*/        OPC_SwitchType /*2 cases */, 66, MVT::i32,// ->528874
/*528808*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*528810*/          OPC_MoveParent,
/*528811*/          OPC_MoveParent,
/*528812*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->528833
/*528815*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528817*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528820*/            OPC_EmitMergeInputChains1_1,
/*528821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMINSDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528833*/          /*SwitchType*/ 18, MVT::v8i32,// ->528853
/*528835*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*528837*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528840*/            OPC_EmitMergeInputChains1_1,
/*528841*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMINSDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528853*/          /*SwitchType*/ 18, MVT::v4i32,// ->528873
/*528855*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*528857*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528860*/            OPC_EmitMergeInputChains1_1,
/*528861*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMINSDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528873*/          0, // EndSwitchType
/*528874*/        /*SwitchType*/ 66, MVT::i64,// ->528942
/*528876*/          OPC_CheckPredicate, 9, // Predicate_load
/*528878*/          OPC_MoveParent,
/*528879*/          OPC_MoveParent,
/*528880*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->528901
/*528883*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528885*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528888*/            OPC_EmitMergeInputChains1_1,
/*528889*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMINSQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528901*/          /*SwitchType*/ 18, MVT::v4i64,// ->528921
/*528903*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*528905*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528908*/            OPC_EmitMergeInputChains1_1,
/*528909*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMINSQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528921*/          /*SwitchType*/ 18, MVT::v2i64,// ->528941
/*528923*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*528925*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528928*/            OPC_EmitMergeInputChains1_1,
/*528929*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMINSQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528941*/          0, // EndSwitchType
/*528942*/        0, // EndSwitchType
/*528943*/      0, // EndSwitchOpcode
/*528944*/    /*Scope*/ 81|128,4/*593*/, /*->529539*/
/*528946*/      OPC_MoveChild0,
/*528947*/      OPC_SwitchOpcode /*2 cases */, 48|128,3/*432*/, TARGET_VAL(ISD::BITCAST),// ->529384
/*528952*/        OPC_MoveChild0,
/*528953*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*528956*/        OPC_RecordMemRef,
/*528957*/        OPC_RecordNode, // #0 = 'ld' chained node
/*528958*/        OPC_CheckFoldableChainNode,
/*528959*/        OPC_RecordChild1, // #1 = $src2
/*528960*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*528962*/        OPC_CheckPredicate, 9, // Predicate_load
/*528964*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*528966*/        OPC_SwitchType /*3 cases */, 84|128,1/*212*/, MVT::v2i64,// ->529182
/*528970*/          OPC_Scope, 23, /*->528995*/ // 5 children in Scope
/*528972*/            OPC_MoveParent,
/*528973*/            OPC_MoveParent,
/*528974*/            OPC_RecordChild1, // #2 = $src1
/*528975*/            OPC_CheckType, MVT::v8i16,
/*528977*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*528979*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*528982*/            OPC_EmitMergeInputChains1_0,
/*528983*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                      // Dst: (VPMINSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*528995*/          /*Scope*/ 25, /*->529021*/
/*528996*/            OPC_CheckPredicate, 48, // Predicate_memop
/*528998*/            OPC_MoveParent,
/*528999*/            OPC_MoveParent,
/*529000*/            OPC_RecordChild1, // #2 = $src1
/*529001*/            OPC_CheckType, MVT::v8i16,
/*529003*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*529005*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529008*/            OPC_EmitMergeInputChains1_0,
/*529009*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                      // Dst: (PMINSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529021*/          /*Scope*/ 45, /*->529067*/
/*529022*/            OPC_MoveParent,
/*529023*/            OPC_MoveParent,
/*529024*/            OPC_RecordChild1, // #2 = $src1
/*529025*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->529046
/*529028*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*529030*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529033*/              OPC_EmitMergeInputChains1_0,
/*529034*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPMINSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529046*/            /*SwitchType*/ 18, MVT::v16i8,// ->529066
/*529048*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*529050*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529053*/              OPC_EmitMergeInputChains1_0,
/*529054*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                        // Dst: (VPMINSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529066*/            0, // EndSwitchType
/*529067*/          /*Scope*/ 47, /*->529115*/
/*529068*/            OPC_CheckPredicate, 48, // Predicate_memop
/*529070*/            OPC_MoveParent,
/*529071*/            OPC_MoveParent,
/*529072*/            OPC_RecordChild1, // #2 = $src1
/*529073*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->529094
/*529076*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*529078*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529081*/              OPC_EmitMergeInputChains1_0,
/*529082*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                        // Dst: (PMINSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529094*/            /*SwitchType*/ 18, MVT::v4i32,// ->529114
/*529096*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*529098*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529101*/              OPC_EmitMergeInputChains1_0,
/*529102*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (PMINSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529114*/            0, // EndSwitchType
/*529115*/          /*Scope*/ 65, /*->529181*/
/*529116*/            OPC_MoveParent,
/*529117*/            OPC_MoveParent,
/*529118*/            OPC_RecordChild1, // #2 = $src1
/*529119*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->529140
/*529122*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*529124*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529127*/              OPC_EmitMergeInputChains1_0,
/*529128*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1) - Complexity = 28
                        // Dst: (VPMINSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529140*/            /*SwitchType*/ 18, MVT::v8i16,// ->529160
/*529142*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*529144*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529147*/              OPC_EmitMergeInputChains1_0,
/*529148*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                        // Dst: (VPMINSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529160*/            /*SwitchType*/ 18, MVT::v4i32,// ->529180
/*529162*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529164*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529167*/              OPC_EmitMergeInputChains1_0,
/*529168*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPMINSDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529180*/            0, // EndSwitchType
/*529181*/          0, /*End of Scope*/
/*529182*/        /*SwitchType*/ 3|128,1/*131*/, MVT::v4i64,// ->529316
/*529185*/          OPC_MoveParent,
/*529186*/          OPC_MoveParent,
/*529187*/          OPC_RecordChild1, // #2 = $src1
/*529188*/          OPC_SwitchType /*3 cases */, 40, MVT::v16i16,// ->529231
/*529191*/            OPC_Scope, 18, /*->529211*/ // 2 children in Scope
/*529193*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*529195*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529198*/              OPC_EmitMergeInputChains1_0,
/*529199*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPMINSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529211*/            /*Scope*/ 18, /*->529230*/
/*529212*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*529214*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529217*/              OPC_EmitMergeInputChains1_0,
/*529218*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPMINSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529230*/            0, /*End of Scope*/
/*529231*/          /*SwitchType*/ 40, MVT::v8i32,// ->529273
/*529233*/            OPC_Scope, 18, /*->529253*/ // 2 children in Scope
/*529235*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*529237*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529240*/              OPC_EmitMergeInputChains1_0,
/*529241*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPMINSDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529253*/            /*Scope*/ 18, /*->529272*/
/*529254*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529256*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529259*/              OPC_EmitMergeInputChains1_0,
/*529260*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPMINSDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529272*/            0, /*End of Scope*/
/*529273*/          /*SwitchType*/ 40, MVT::v32i8,// ->529315
/*529275*/            OPC_Scope, 18, /*->529295*/ // 2 children in Scope
/*529277*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*529279*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529282*/              OPC_EmitMergeInputChains1_0,
/*529283*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPMINSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529295*/            /*Scope*/ 18, /*->529314*/
/*529296*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*529298*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529301*/              OPC_EmitMergeInputChains1_0,
/*529302*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smin:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPMINSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529314*/            0, /*End of Scope*/
/*529315*/          0, // EndSwitchType
/*529316*/        /*SwitchType*/ 65, MVT::v8i64,// ->529383
/*529318*/          OPC_MoveParent,
/*529319*/          OPC_MoveParent,
/*529320*/          OPC_RecordChild1, // #2 = $src1
/*529321*/          OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->529342
/*529324*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*529326*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529329*/            OPC_EmitMergeInputChains1_0,
/*529330*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1) - Complexity = 28
                      // Dst: (VPMINSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529342*/          /*SwitchType*/ 18, MVT::v32i16,// ->529362
/*529344*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*529346*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529349*/            OPC_EmitMergeInputChains1_0,
/*529350*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                      // Dst: (VPMINSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529362*/          /*SwitchType*/ 18, MVT::v16i32,// ->529382
/*529364*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529366*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529369*/            OPC_EmitMergeInputChains1_0,
/*529370*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPMINSDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529382*/          0, // EndSwitchType
/*529383*/        0, // EndSwitchType
/*529384*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST),// ->529538
/*529388*/        OPC_MoveChild0,
/*529389*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*529392*/        OPC_RecordMemRef,
/*529393*/        OPC_RecordNode, // #0 = 'ld' chained node
/*529394*/        OPC_CheckFoldableChainNode,
/*529395*/        OPC_RecordChild1, // #1 = $src2
/*529396*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*529398*/        OPC_SwitchType /*2 cases */, 67, MVT::i32,// ->529468
/*529401*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*529403*/          OPC_MoveParent,
/*529404*/          OPC_MoveParent,
/*529405*/          OPC_RecordChild1, // #2 = $src1
/*529406*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->529427
/*529409*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529411*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529414*/            OPC_EmitMergeInputChains1_0,
/*529415*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPMINSDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529427*/          /*SwitchType*/ 18, MVT::v8i32,// ->529447
/*529429*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529431*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529434*/            OPC_EmitMergeInputChains1_0,
/*529435*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                      // Dst: (VPMINSDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529447*/          /*SwitchType*/ 18, MVT::v4i32,// ->529467
/*529449*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529451*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529454*/            OPC_EmitMergeInputChains1_0,
/*529455*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                      // Dst: (VPMINSDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529467*/          0, // EndSwitchType
/*529468*/        /*SwitchType*/ 67, MVT::i64,// ->529537
/*529470*/          OPC_CheckPredicate, 9, // Predicate_load
/*529472*/          OPC_MoveParent,
/*529473*/          OPC_MoveParent,
/*529474*/          OPC_RecordChild1, // #2 = $src1
/*529475*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->529496
/*529478*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529480*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529483*/            OPC_EmitMergeInputChains1_0,
/*529484*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                      // Dst: (VPMINSQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529496*/          /*SwitchType*/ 18, MVT::v4i64,// ->529516
/*529498*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529500*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529503*/            OPC_EmitMergeInputChains1_0,
/*529504*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                      // Dst: (VPMINSQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529516*/          /*SwitchType*/ 18, MVT::v2i64,// ->529536
/*529518*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529520*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529523*/            OPC_EmitMergeInputChains1_0,
/*529524*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                      // Dst: (VPMINSQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529536*/          0, // EndSwitchType
/*529537*/        0, // EndSwitchType
/*529538*/      0, // EndSwitchOpcode
/*529539*/    /*Scope*/ 78, /*->529618*/
/*529540*/      OPC_RecordChild0, // #0 = $src1
/*529541*/      OPC_MoveChild1,
/*529542*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*529545*/      OPC_RecordMemRef,
/*529546*/      OPC_RecordNode, // #1 = 'ld' chained node
/*529547*/      OPC_CheckFoldableChainNode,
/*529548*/      OPC_RecordChild1, // #2 = $src2
/*529549*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*529551*/      OPC_CheckPredicate, 9, // Predicate_load
/*529553*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*529555*/      OPC_MoveParent,
/*529556*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->529577
/*529559*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529561*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529564*/        OPC_EmitMergeInputChains1_1,
/*529565*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (smin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMINSQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529577*/      /*SwitchType*/ 18, MVT::v4i64,// ->529597
/*529579*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529581*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529584*/        OPC_EmitMergeInputChains1_1,
/*529585*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (smin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMINSQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529597*/      /*SwitchType*/ 18, MVT::v2i64,// ->529617
/*529599*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529601*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529604*/        OPC_EmitMergeInputChains1_1,
/*529605*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (smin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMINSQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529617*/      0, // EndSwitchType
/*529618*/    /*Scope*/ 78, /*->529697*/
/*529619*/      OPC_MoveChild0,
/*529620*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*529623*/      OPC_RecordMemRef,
/*529624*/      OPC_RecordNode, // #0 = 'ld' chained node
/*529625*/      OPC_CheckFoldableChainNode,
/*529626*/      OPC_RecordChild1, // #1 = $src2
/*529627*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*529629*/      OPC_CheckPredicate, 9, // Predicate_load
/*529631*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*529633*/      OPC_MoveParent,
/*529634*/      OPC_RecordChild1, // #2 = $src1
/*529635*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->529656
/*529638*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529640*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529643*/        OPC_EmitMergeInputChains1_0,
/*529644*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (smin:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                  // Dst: (VPMINSQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529656*/      /*SwitchType*/ 18, MVT::v4i64,// ->529676
/*529658*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529660*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529663*/        OPC_EmitMergeInputChains1_0,
/*529664*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (smin:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (VPMINSQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529676*/      /*SwitchType*/ 18, MVT::v2i64,// ->529696
/*529678*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529680*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*529683*/        OPC_EmitMergeInputChains1_0,
/*529684*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (smin:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (VPMINSQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*529696*/      0, // EndSwitchType
/*529697*/    /*Scope*/ 3|128,3/*387*/, /*->530086*/
/*529699*/      OPC_RecordChild0, // #0 = $src1
/*529700*/      OPC_RecordChild1, // #1 = $src2
/*529701*/      OPC_SwitchType /*12 cases */, 35, MVT::v8i16,// ->529739
/*529704*/        OPC_Scope, 10, /*->529716*/ // 3 children in Scope
/*529706*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*529708*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMINSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*529716*/        /*Scope*/ 10, /*->529727*/
/*529717*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*529719*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PMINSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*529727*/        /*Scope*/ 10, /*->529738*/
/*529728*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*529730*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMINSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*529738*/        0, /*End of Scope*/
/*529739*/      /*SwitchType*/ 24, MVT::v16i16,// ->529765
/*529741*/        OPC_Scope, 10, /*->529753*/ // 2 children in Scope
/*529743*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*529745*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMINSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*529753*/        /*Scope*/ 10, /*->529764*/
/*529754*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*529756*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMINSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*529764*/        0, /*End of Scope*/
/*529765*/      /*SwitchType*/ 35, MVT::v4i32,// ->529802
/*529767*/        OPC_Scope, 10, /*->529779*/ // 3 children in Scope
/*529769*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*529771*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPMINSDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*529779*/        /*Scope*/ 10, /*->529790*/
/*529780*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*529782*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PMINSDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*529790*/        /*Scope*/ 10, /*->529801*/
/*529791*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529793*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPMINSDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*529801*/        0, /*End of Scope*/
/*529802*/      /*SwitchType*/ 35, MVT::v16i8,// ->529839
/*529804*/        OPC_Scope, 10, /*->529816*/ // 3 children in Scope
/*529806*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*529808*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPMINSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*529816*/        /*Scope*/ 10, /*->529827*/
/*529817*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*529819*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PMINSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*529827*/        /*Scope*/ 10, /*->529838*/
/*529828*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*529830*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPMINSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*529838*/        0, /*End of Scope*/
/*529839*/      /*SwitchType*/ 24, MVT::v8i32,// ->529865
/*529841*/        OPC_Scope, 10, /*->529853*/ // 2 children in Scope
/*529843*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*529845*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPMINSDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*529853*/        /*Scope*/ 10, /*->529864*/
/*529854*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529856*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPMINSDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*529864*/        0, /*End of Scope*/
/*529865*/      /*SwitchType*/ 24, MVT::v32i8,// ->529891
/*529867*/        OPC_Scope, 10, /*->529879*/ // 2 children in Scope
/*529869*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*529871*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPMINSBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*529879*/        /*Scope*/ 10, /*->529890*/
/*529880*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*529882*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPMINSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*529890*/        0, /*End of Scope*/
/*529891*/      /*SwitchType*/ 10, MVT::v64i8,// ->529903
/*529893*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*529895*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (smin:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPMINSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*529903*/      /*SwitchType*/ 10, MVT::v32i16,// ->529915
/*529905*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*529907*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (smin:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPMINSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*529915*/      /*SwitchType*/ 10, MVT::v16i32,// ->529927
/*529917*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529919*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (smin:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPMINSDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*529927*/      /*SwitchType*/ 10, MVT::v8i64,// ->529939
/*529929*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529931*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (smin:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPMINSQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*529939*/      /*SwitchType*/ 71, MVT::v4i64,// ->530012
/*529941*/        OPC_Scope, 10, /*->529953*/ // 2 children in Scope
/*529943*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*529945*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPMINSQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*529953*/        /*Scope*/ 57, /*->530011*/
/*529954*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*529956*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*529962*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*529965*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*529974*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*529980*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*529983*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*529992*/          OPC_EmitNode1, TARGET_VAL(X86::VPMINSQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*530000*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*530003*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 8, 9, 
                    // Src: (smin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMINSQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*530011*/        0, /*End of Scope*/
/*530012*/      /*SwitchType*/ 71, MVT::v2i64,// ->530085
/*530014*/        OPC_Scope, 10, /*->530026*/ // 2 children in Scope
/*530016*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*530018*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (smin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPMINSQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*530026*/        /*Scope*/ 57, /*->530084*/
/*530027*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*530029*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*530035*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*530038*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*530047*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*530053*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*530056*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*530065*/          OPC_EmitNode1, TARGET_VAL(X86::VPMINSQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*530073*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*530076*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 8, 9, 
                    // Src: (smin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMINSQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*530084*/        0, /*End of Scope*/
/*530085*/      0, // EndSwitchType
/*530086*/    0, /*End of Scope*/
/*530087*/  /*SwitchOpcode*/ 67|128,13/*1731*/, TARGET_VAL(ISD::UMAX),// ->531822
/*530091*/    OPC_Scope, 73|128,4/*585*/, /*->530679*/ // 5 children in Scope
/*530094*/      OPC_RecordChild0, // #0 = $src1
/*530095*/      OPC_MoveChild1,
/*530096*/      OPC_SwitchOpcode /*2 cases */, 41|128,3/*425*/, TARGET_VAL(ISD::BITCAST),// ->530526
/*530101*/        OPC_MoveChild0,
/*530102*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*530105*/        OPC_RecordMemRef,
/*530106*/        OPC_RecordNode, // #1 = 'ld' chained node
/*530107*/        OPC_CheckFoldableChainNode,
/*530108*/        OPC_RecordChild1, // #2 = $src2
/*530109*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*530111*/        OPC_CheckPredicate, 9, // Predicate_load
/*530113*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*530115*/        OPC_SwitchType /*3 cases */, 79|128,1/*207*/, MVT::v2i64,// ->530326
/*530119*/          OPC_Scope, 22, /*->530143*/ // 5 children in Scope
/*530121*/            OPC_MoveParent,
/*530122*/            OPC_MoveParent,
/*530123*/            OPC_CheckType, MVT::v16i8,
/*530125*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*530127*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530130*/            OPC_EmitMergeInputChains1_1,
/*530131*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMAXUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530143*/          /*Scope*/ 24, /*->530168*/
/*530144*/            OPC_CheckPredicate, 48, // Predicate_memop
/*530146*/            OPC_MoveParent,
/*530147*/            OPC_MoveParent,
/*530148*/            OPC_CheckType, MVT::v16i8,
/*530150*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*530152*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530155*/            OPC_EmitMergeInputChains1_1,
/*530156*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PMAXUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530168*/          /*Scope*/ 44, /*->530213*/
/*530169*/            OPC_MoveParent,
/*530170*/            OPC_MoveParent,
/*530171*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->530192
/*530174*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*530176*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530179*/              OPC_EmitMergeInputChains1_1,
/*530180*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530192*/            /*SwitchType*/ 18, MVT::v8i16,// ->530212
/*530194*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*530196*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530199*/              OPC_EmitMergeInputChains1_1,
/*530200*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530212*/            0, // EndSwitchType
/*530213*/          /*Scope*/ 46, /*->530260*/
/*530214*/            OPC_CheckPredicate, 48, // Predicate_memop
/*530216*/            OPC_MoveParent,
/*530217*/            OPC_MoveParent,
/*530218*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->530239
/*530221*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*530223*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530226*/              OPC_EmitMergeInputChains1_1,
/*530227*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PMAXUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530239*/            /*SwitchType*/ 18, MVT::v8i16,// ->530259
/*530241*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*530243*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530246*/              OPC_EmitMergeInputChains1_1,
/*530247*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PMAXUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530259*/            0, // EndSwitchType
/*530260*/          /*Scope*/ 64, /*->530325*/
/*530261*/            OPC_MoveParent,
/*530262*/            OPC_MoveParent,
/*530263*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->530284
/*530266*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*530268*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530271*/              OPC_EmitMergeInputChains1_1,
/*530272*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXUBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530284*/            /*SwitchType*/ 18, MVT::v8i16,// ->530304
/*530286*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*530288*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530291*/              OPC_EmitMergeInputChains1_1,
/*530292*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530304*/            /*SwitchType*/ 18, MVT::v4i32,// ->530324
/*530306*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*530308*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530311*/              OPC_EmitMergeInputChains1_1,
/*530312*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXUDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530324*/            0, // EndSwitchType
/*530325*/          0, /*End of Scope*/
/*530326*/        /*SwitchType*/ 2|128,1/*130*/, MVT::v4i64,// ->530459
/*530329*/          OPC_MoveParent,
/*530330*/          OPC_MoveParent,
/*530331*/          OPC_SwitchType /*3 cases */, 40, MVT::v32i8,// ->530374
/*530334*/            OPC_Scope, 18, /*->530354*/ // 2 children in Scope
/*530336*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*530338*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530341*/              OPC_EmitMergeInputChains1_1,
/*530342*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXUBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530354*/            /*Scope*/ 18, /*->530373*/
/*530355*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*530357*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530360*/              OPC_EmitMergeInputChains1_1,
/*530361*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXUBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530373*/            0, /*End of Scope*/
/*530374*/          /*SwitchType*/ 40, MVT::v8i32,// ->530416
/*530376*/            OPC_Scope, 18, /*->530396*/ // 2 children in Scope
/*530378*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*530380*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530383*/              OPC_EmitMergeInputChains1_1,
/*530384*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXUDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530396*/            /*Scope*/ 18, /*->530415*/
/*530397*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*530399*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530402*/              OPC_EmitMergeInputChains1_1,
/*530403*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXUDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530415*/            0, /*End of Scope*/
/*530416*/          /*SwitchType*/ 40, MVT::v16i16,// ->530458
/*530418*/            OPC_Scope, 18, /*->530438*/ // 2 children in Scope
/*530420*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*530422*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530425*/              OPC_EmitMergeInputChains1_1,
/*530426*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530438*/            /*Scope*/ 18, /*->530457*/
/*530439*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*530441*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530444*/              OPC_EmitMergeInputChains1_1,
/*530445*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530457*/            0, /*End of Scope*/
/*530458*/          0, // EndSwitchType
/*530459*/        /*SwitchType*/ 64, MVT::v8i64,// ->530525
/*530461*/          OPC_MoveParent,
/*530462*/          OPC_MoveParent,
/*530463*/          OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->530484
/*530466*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*530468*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530471*/            OPC_EmitMergeInputChains1_1,
/*530472*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMAXUBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530484*/          /*SwitchType*/ 18, MVT::v32i16,// ->530504
/*530486*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*530488*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530491*/            OPC_EmitMergeInputChains1_1,
/*530492*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMAXUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530504*/          /*SwitchType*/ 18, MVT::v16i32,// ->530524
/*530506*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530508*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530511*/            OPC_EmitMergeInputChains1_1,
/*530512*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMAXUDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530524*/          0, // EndSwitchType
/*530525*/        0, // EndSwitchType
/*530526*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->530678
/*530530*/        OPC_MoveChild0,
/*530531*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*530534*/        OPC_RecordMemRef,
/*530535*/        OPC_RecordNode, // #1 = 'ld' chained node
/*530536*/        OPC_CheckFoldableChainNode,
/*530537*/        OPC_RecordChild1, // #2 = $src2
/*530538*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*530540*/        OPC_SwitchType /*2 cases */, 66, MVT::i32,// ->530609
/*530543*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*530545*/          OPC_MoveParent,
/*530546*/          OPC_MoveParent,
/*530547*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->530568
/*530550*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530552*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530555*/            OPC_EmitMergeInputChains1_1,
/*530556*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMAXUDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530568*/          /*SwitchType*/ 18, MVT::v8i32,// ->530588
/*530570*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*530572*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530575*/            OPC_EmitMergeInputChains1_1,
/*530576*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMAXUDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530588*/          /*SwitchType*/ 18, MVT::v4i32,// ->530608
/*530590*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*530592*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530595*/            OPC_EmitMergeInputChains1_1,
/*530596*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMAXUDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530608*/          0, // EndSwitchType
/*530609*/        /*SwitchType*/ 66, MVT::i64,// ->530677
/*530611*/          OPC_CheckPredicate, 9, // Predicate_load
/*530613*/          OPC_MoveParent,
/*530614*/          OPC_MoveParent,
/*530615*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->530636
/*530618*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530620*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530623*/            OPC_EmitMergeInputChains1_1,
/*530624*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMAXUQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530636*/          /*SwitchType*/ 18, MVT::v4i64,// ->530656
/*530638*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*530640*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530643*/            OPC_EmitMergeInputChains1_1,
/*530644*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMAXUQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530656*/          /*SwitchType*/ 18, MVT::v2i64,// ->530676
/*530658*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*530660*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530663*/            OPC_EmitMergeInputChains1_1,
/*530664*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMAXUQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530676*/          0, // EndSwitchType
/*530677*/        0, // EndSwitchType
/*530678*/      0, // EndSwitchOpcode
/*530679*/    /*Scope*/ 81|128,4/*593*/, /*->531274*/
/*530681*/      OPC_MoveChild0,
/*530682*/      OPC_SwitchOpcode /*2 cases */, 48|128,3/*432*/, TARGET_VAL(ISD::BITCAST),// ->531119
/*530687*/        OPC_MoveChild0,
/*530688*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*530691*/        OPC_RecordMemRef,
/*530692*/        OPC_RecordNode, // #0 = 'ld' chained node
/*530693*/        OPC_CheckFoldableChainNode,
/*530694*/        OPC_RecordChild1, // #1 = $src2
/*530695*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*530697*/        OPC_CheckPredicate, 9, // Predicate_load
/*530699*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*530701*/        OPC_SwitchType /*3 cases */, 84|128,1/*212*/, MVT::v2i64,// ->530917
/*530705*/          OPC_Scope, 23, /*->530730*/ // 5 children in Scope
/*530707*/            OPC_MoveParent,
/*530708*/            OPC_MoveParent,
/*530709*/            OPC_RecordChild1, // #2 = $src1
/*530710*/            OPC_CheckType, MVT::v16i8,
/*530712*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*530714*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530717*/            OPC_EmitMergeInputChains1_0,
/*530718*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                      // Dst: (VPMAXUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530730*/          /*Scope*/ 25, /*->530756*/
/*530731*/            OPC_CheckPredicate, 48, // Predicate_memop
/*530733*/            OPC_MoveParent,
/*530734*/            OPC_MoveParent,
/*530735*/            OPC_RecordChild1, // #2 = $src1
/*530736*/            OPC_CheckType, MVT::v16i8,
/*530738*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*530740*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530743*/            OPC_EmitMergeInputChains1_0,
/*530744*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                      // Dst: (PMAXUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530756*/          /*Scope*/ 45, /*->530802*/
/*530757*/            OPC_MoveParent,
/*530758*/            OPC_MoveParent,
/*530759*/            OPC_RecordChild1, // #2 = $src1
/*530760*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->530781
/*530763*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*530765*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530768*/              OPC_EmitMergeInputChains1_0,
/*530769*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPMAXUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530781*/            /*SwitchType*/ 18, MVT::v8i16,// ->530801
/*530783*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*530785*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530788*/              OPC_EmitMergeInputChains1_0,
/*530789*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                        // Dst: (VPMAXUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530801*/            0, // EndSwitchType
/*530802*/          /*Scope*/ 47, /*->530850*/
/*530803*/            OPC_CheckPredicate, 48, // Predicate_memop
/*530805*/            OPC_MoveParent,
/*530806*/            OPC_MoveParent,
/*530807*/            OPC_RecordChild1, // #2 = $src1
/*530808*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->530829
/*530811*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*530813*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530816*/              OPC_EmitMergeInputChains1_0,
/*530817*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (PMAXUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530829*/            /*SwitchType*/ 18, MVT::v8i16,// ->530849
/*530831*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*530833*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530836*/              OPC_EmitMergeInputChains1_0,
/*530837*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                        // Dst: (PMAXUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530849*/            0, // EndSwitchType
/*530850*/          /*Scope*/ 65, /*->530916*/
/*530851*/            OPC_MoveParent,
/*530852*/            OPC_MoveParent,
/*530853*/            OPC_RecordChild1, // #2 = $src1
/*530854*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->530875
/*530857*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*530859*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530862*/              OPC_EmitMergeInputChains1_0,
/*530863*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1) - Complexity = 28
                        // Dst: (VPMAXUBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530875*/            /*SwitchType*/ 18, MVT::v8i16,// ->530895
/*530877*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*530879*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530882*/              OPC_EmitMergeInputChains1_0,
/*530883*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                        // Dst: (VPMAXUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530895*/            /*SwitchType*/ 18, MVT::v4i32,// ->530915
/*530897*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*530899*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530902*/              OPC_EmitMergeInputChains1_0,
/*530903*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPMAXUDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530915*/            0, // EndSwitchType
/*530916*/          0, /*End of Scope*/
/*530917*/        /*SwitchType*/ 3|128,1/*131*/, MVT::v4i64,// ->531051
/*530920*/          OPC_MoveParent,
/*530921*/          OPC_MoveParent,
/*530922*/          OPC_RecordChild1, // #2 = $src1
/*530923*/          OPC_SwitchType /*3 cases */, 40, MVT::v32i8,// ->530966
/*530926*/            OPC_Scope, 18, /*->530946*/ // 2 children in Scope
/*530928*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*530930*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530933*/              OPC_EmitMergeInputChains1_0,
/*530934*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPMAXUBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530946*/            /*Scope*/ 18, /*->530965*/
/*530947*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*530949*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530952*/              OPC_EmitMergeInputChains1_0,
/*530953*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPMAXUBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530965*/            0, /*End of Scope*/
/*530966*/          /*SwitchType*/ 40, MVT::v8i32,// ->531008
/*530968*/            OPC_Scope, 18, /*->530988*/ // 2 children in Scope
/*530970*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*530972*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530975*/              OPC_EmitMergeInputChains1_0,
/*530976*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPMAXUDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*530988*/            /*Scope*/ 18, /*->531007*/
/*530989*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*530991*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*530994*/              OPC_EmitMergeInputChains1_0,
/*530995*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPMAXUDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531007*/            0, /*End of Scope*/
/*531008*/          /*SwitchType*/ 40, MVT::v16i16,// ->531050
/*531010*/            OPC_Scope, 18, /*->531030*/ // 2 children in Scope
/*531012*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*531014*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531017*/              OPC_EmitMergeInputChains1_0,
/*531018*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPMAXUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531030*/            /*Scope*/ 18, /*->531049*/
/*531031*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*531033*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531036*/              OPC_EmitMergeInputChains1_0,
/*531037*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (umax:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPMAXUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531049*/            0, /*End of Scope*/
/*531050*/          0, // EndSwitchType
/*531051*/        /*SwitchType*/ 65, MVT::v8i64,// ->531118
/*531053*/          OPC_MoveParent,
/*531054*/          OPC_MoveParent,
/*531055*/          OPC_RecordChild1, // #2 = $src1
/*531056*/          OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->531077
/*531059*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*531061*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531064*/            OPC_EmitMergeInputChains1_0,
/*531065*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1) - Complexity = 28
                      // Dst: (VPMAXUBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531077*/          /*SwitchType*/ 18, MVT::v32i16,// ->531097
/*531079*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*531081*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531084*/            OPC_EmitMergeInputChains1_0,
/*531085*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                      // Dst: (VPMAXUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531097*/          /*SwitchType*/ 18, MVT::v16i32,// ->531117
/*531099*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531101*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531104*/            OPC_EmitMergeInputChains1_0,
/*531105*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPMAXUDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531117*/          0, // EndSwitchType
/*531118*/        0, // EndSwitchType
/*531119*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST),// ->531273
/*531123*/        OPC_MoveChild0,
/*531124*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*531127*/        OPC_RecordMemRef,
/*531128*/        OPC_RecordNode, // #0 = 'ld' chained node
/*531129*/        OPC_CheckFoldableChainNode,
/*531130*/        OPC_RecordChild1, // #1 = $src2
/*531131*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*531133*/        OPC_SwitchType /*2 cases */, 67, MVT::i32,// ->531203
/*531136*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*531138*/          OPC_MoveParent,
/*531139*/          OPC_MoveParent,
/*531140*/          OPC_RecordChild1, // #2 = $src1
/*531141*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->531162
/*531144*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531146*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531149*/            OPC_EmitMergeInputChains1_0,
/*531150*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPMAXUDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531162*/          /*SwitchType*/ 18, MVT::v8i32,// ->531182
/*531164*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531166*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531169*/            OPC_EmitMergeInputChains1_0,
/*531170*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                      // Dst: (VPMAXUDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531182*/          /*SwitchType*/ 18, MVT::v4i32,// ->531202
/*531184*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531186*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531189*/            OPC_EmitMergeInputChains1_0,
/*531190*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                      // Dst: (VPMAXUDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531202*/          0, // EndSwitchType
/*531203*/        /*SwitchType*/ 67, MVT::i64,// ->531272
/*531205*/          OPC_CheckPredicate, 9, // Predicate_load
/*531207*/          OPC_MoveParent,
/*531208*/          OPC_MoveParent,
/*531209*/          OPC_RecordChild1, // #2 = $src1
/*531210*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->531231
/*531213*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531215*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531218*/            OPC_EmitMergeInputChains1_0,
/*531219*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                      // Dst: (VPMAXUQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531231*/          /*SwitchType*/ 18, MVT::v4i64,// ->531251
/*531233*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531235*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531238*/            OPC_EmitMergeInputChains1_0,
/*531239*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                      // Dst: (VPMAXUQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531251*/          /*SwitchType*/ 18, MVT::v2i64,// ->531271
/*531253*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531255*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531258*/            OPC_EmitMergeInputChains1_0,
/*531259*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                      // Dst: (VPMAXUQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531271*/          0, // EndSwitchType
/*531272*/        0, // EndSwitchType
/*531273*/      0, // EndSwitchOpcode
/*531274*/    /*Scope*/ 78, /*->531353*/
/*531275*/      OPC_RecordChild0, // #0 = $src1
/*531276*/      OPC_MoveChild1,
/*531277*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*531280*/      OPC_RecordMemRef,
/*531281*/      OPC_RecordNode, // #1 = 'ld' chained node
/*531282*/      OPC_CheckFoldableChainNode,
/*531283*/      OPC_RecordChild1, // #2 = $src2
/*531284*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*531286*/      OPC_CheckPredicate, 9, // Predicate_load
/*531288*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*531290*/      OPC_MoveParent,
/*531291*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->531312
/*531294*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531296*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531299*/        OPC_EmitMergeInputChains1_1,
/*531300*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (umax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMAXUQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531312*/      /*SwitchType*/ 18, MVT::v4i64,// ->531332
/*531314*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531316*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531319*/        OPC_EmitMergeInputChains1_1,
/*531320*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (umax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMAXUQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531332*/      /*SwitchType*/ 18, MVT::v2i64,// ->531352
/*531334*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531336*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531339*/        OPC_EmitMergeInputChains1_1,
/*531340*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (umax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMAXUQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531352*/      0, // EndSwitchType
/*531353*/    /*Scope*/ 78, /*->531432*/
/*531354*/      OPC_MoveChild0,
/*531355*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*531358*/      OPC_RecordMemRef,
/*531359*/      OPC_RecordNode, // #0 = 'ld' chained node
/*531360*/      OPC_CheckFoldableChainNode,
/*531361*/      OPC_RecordChild1, // #1 = $src2
/*531362*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*531364*/      OPC_CheckPredicate, 9, // Predicate_load
/*531366*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*531368*/      OPC_MoveParent,
/*531369*/      OPC_RecordChild1, // #2 = $src1
/*531370*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->531391
/*531373*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531375*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531378*/        OPC_EmitMergeInputChains1_0,
/*531379*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (umax:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                  // Dst: (VPMAXUQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531391*/      /*SwitchType*/ 18, MVT::v4i64,// ->531411
/*531393*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531395*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531398*/        OPC_EmitMergeInputChains1_0,
/*531399*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (umax:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (VPMAXUQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531411*/      /*SwitchType*/ 18, MVT::v2i64,// ->531431
/*531413*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531415*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531418*/        OPC_EmitMergeInputChains1_0,
/*531419*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (umax:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (VPMAXUQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531431*/      0, // EndSwitchType
/*531432*/    /*Scope*/ 3|128,3/*387*/, /*->531821*/
/*531434*/      OPC_RecordChild0, // #0 = $src1
/*531435*/      OPC_RecordChild1, // #1 = $src2
/*531436*/      OPC_SwitchType /*12 cases */, 35, MVT::v16i8,// ->531474
/*531439*/        OPC_Scope, 10, /*->531451*/ // 3 children in Scope
/*531441*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*531443*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*531451*/        /*Scope*/ 10, /*->531462*/
/*531452*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*531454*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PMAXUBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*531462*/        /*Scope*/ 10, /*->531473*/
/*531463*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*531465*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*531473*/        0, /*End of Scope*/
/*531474*/      /*SwitchType*/ 24, MVT::v32i8,// ->531500
/*531476*/        OPC_Scope, 10, /*->531488*/ // 2 children in Scope
/*531478*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*531480*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*531488*/        /*Scope*/ 10, /*->531499*/
/*531489*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*531491*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*531499*/        0, /*End of Scope*/
/*531500*/      /*SwitchType*/ 35, MVT::v4i32,// ->531537
/*531502*/        OPC_Scope, 10, /*->531514*/ // 3 children in Scope
/*531504*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*531506*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*531514*/        /*Scope*/ 10, /*->531525*/
/*531515*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*531517*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PMAXUDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*531525*/        /*Scope*/ 10, /*->531536*/
/*531526*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531528*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*531536*/        0, /*End of Scope*/
/*531537*/      /*SwitchType*/ 35, MVT::v8i16,// ->531574
/*531539*/        OPC_Scope, 10, /*->531551*/ // 3 children in Scope
/*531541*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*531543*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*531551*/        /*Scope*/ 10, /*->531562*/
/*531552*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*531554*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PMAXUWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*531562*/        /*Scope*/ 10, /*->531573*/
/*531563*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*531565*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*531573*/        0, /*End of Scope*/
/*531574*/      /*SwitchType*/ 24, MVT::v8i32,// ->531600
/*531576*/        OPC_Scope, 10, /*->531588*/ // 2 children in Scope
/*531578*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*531580*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*531588*/        /*Scope*/ 10, /*->531599*/
/*531589*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531591*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*531599*/        0, /*End of Scope*/
/*531600*/      /*SwitchType*/ 24, MVT::v16i16,// ->531626
/*531602*/        OPC_Scope, 10, /*->531614*/ // 2 children in Scope
/*531604*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*531606*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*531614*/        /*Scope*/ 10, /*->531625*/
/*531615*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*531617*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*531625*/        0, /*End of Scope*/
/*531626*/      /*SwitchType*/ 10, MVT::v64i8,// ->531638
/*531628*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*531630*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (umax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPMAXUBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*531638*/      /*SwitchType*/ 10, MVT::v32i16,// ->531650
/*531640*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*531642*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (umax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPMAXUWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*531650*/      /*SwitchType*/ 10, MVT::v16i32,// ->531662
/*531652*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531654*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (umax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPMAXUDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*531662*/      /*SwitchType*/ 10, MVT::v8i64,// ->531674
/*531664*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531666*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (umax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPMAXUQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*531674*/      /*SwitchType*/ 71, MVT::v4i64,// ->531747
/*531676*/        OPC_Scope, 10, /*->531688*/ // 2 children in Scope
/*531678*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531680*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*531688*/        /*Scope*/ 57, /*->531746*/
/*531689*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*531691*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*531697*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*531700*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*531709*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*531715*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*531718*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*531727*/          OPC_EmitNode1, TARGET_VAL(X86::VPMAXUQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*531735*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*531738*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 8, 9, 
                    // Src: (umax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMAXUQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*531746*/        0, /*End of Scope*/
/*531747*/      /*SwitchType*/ 71, MVT::v2i64,// ->531820
/*531749*/        OPC_Scope, 10, /*->531761*/ // 2 children in Scope
/*531751*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*531753*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (umax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPMAXUQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*531761*/        /*Scope*/ 57, /*->531819*/
/*531762*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*531764*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*531770*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*531773*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*531782*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*531788*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*531791*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*531800*/          OPC_EmitNode1, TARGET_VAL(X86::VPMAXUQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*531808*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*531811*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 8, 9, 
                    // Src: (umax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMAXUQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*531819*/        0, /*End of Scope*/
/*531820*/      0, // EndSwitchType
/*531821*/    0, /*End of Scope*/
/*531822*/  /*SwitchOpcode*/ 67|128,13/*1731*/, TARGET_VAL(ISD::SMAX),// ->533557
/*531826*/    OPC_Scope, 73|128,4/*585*/, /*->532414*/ // 5 children in Scope
/*531829*/      OPC_RecordChild0, // #0 = $src1
/*531830*/      OPC_MoveChild1,
/*531831*/      OPC_SwitchOpcode /*2 cases */, 41|128,3/*425*/, TARGET_VAL(ISD::BITCAST),// ->532261
/*531836*/        OPC_MoveChild0,
/*531837*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*531840*/        OPC_RecordMemRef,
/*531841*/        OPC_RecordNode, // #1 = 'ld' chained node
/*531842*/        OPC_CheckFoldableChainNode,
/*531843*/        OPC_RecordChild1, // #2 = $src2
/*531844*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*531846*/        OPC_CheckPredicate, 9, // Predicate_load
/*531848*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*531850*/        OPC_SwitchType /*3 cases */, 79|128,1/*207*/, MVT::v2i64,// ->532061
/*531854*/          OPC_Scope, 22, /*->531878*/ // 5 children in Scope
/*531856*/            OPC_MoveParent,
/*531857*/            OPC_MoveParent,
/*531858*/            OPC_CheckType, MVT::v8i16,
/*531860*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*531862*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531865*/            OPC_EmitMergeInputChains1_1,
/*531866*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMAXSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531878*/          /*Scope*/ 24, /*->531903*/
/*531879*/            OPC_CheckPredicate, 48, // Predicate_memop
/*531881*/            OPC_MoveParent,
/*531882*/            OPC_MoveParent,
/*531883*/            OPC_CheckType, MVT::v8i16,
/*531885*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*531887*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531890*/            OPC_EmitMergeInputChains1_1,
/*531891*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PMAXSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531903*/          /*Scope*/ 44, /*->531948*/
/*531904*/            OPC_MoveParent,
/*531905*/            OPC_MoveParent,
/*531906*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->531927
/*531909*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*531911*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531914*/              OPC_EmitMergeInputChains1_1,
/*531915*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531927*/            /*SwitchType*/ 18, MVT::v16i8,// ->531947
/*531929*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*531931*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531934*/              OPC_EmitMergeInputChains1_1,
/*531935*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531947*/            0, // EndSwitchType
/*531948*/          /*Scope*/ 46, /*->531995*/
/*531949*/            OPC_CheckPredicate, 48, // Predicate_memop
/*531951*/            OPC_MoveParent,
/*531952*/            OPC_MoveParent,
/*531953*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->531974
/*531956*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*531958*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531961*/              OPC_EmitMergeInputChains1_1,
/*531962*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PMAXSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531974*/            /*SwitchType*/ 18, MVT::v4i32,// ->531994
/*531976*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*531978*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*531981*/              OPC_EmitMergeInputChains1_1,
/*531982*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PMAXSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*531994*/            0, // EndSwitchType
/*531995*/          /*Scope*/ 64, /*->532060*/
/*531996*/            OPC_MoveParent,
/*531997*/            OPC_MoveParent,
/*531998*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->532019
/*532001*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*532003*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532006*/              OPC_EmitMergeInputChains1_1,
/*532007*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532019*/            /*SwitchType*/ 18, MVT::v8i16,// ->532039
/*532021*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*532023*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532026*/              OPC_EmitMergeInputChains1_1,
/*532027*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532039*/            /*SwitchType*/ 18, MVT::v4i32,// ->532059
/*532041*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532043*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532046*/              OPC_EmitMergeInputChains1_1,
/*532047*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXSDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532059*/            0, // EndSwitchType
/*532060*/          0, /*End of Scope*/
/*532061*/        /*SwitchType*/ 2|128,1/*130*/, MVT::v4i64,// ->532194
/*532064*/          OPC_MoveParent,
/*532065*/          OPC_MoveParent,
/*532066*/          OPC_SwitchType /*3 cases */, 40, MVT::v16i16,// ->532109
/*532069*/            OPC_Scope, 18, /*->532089*/ // 2 children in Scope
/*532071*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*532073*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532076*/              OPC_EmitMergeInputChains1_1,
/*532077*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532089*/            /*Scope*/ 18, /*->532108*/
/*532090*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*532092*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532095*/              OPC_EmitMergeInputChains1_1,
/*532096*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532108*/            0, /*End of Scope*/
/*532109*/          /*SwitchType*/ 40, MVT::v8i32,// ->532151
/*532111*/            OPC_Scope, 18, /*->532131*/ // 2 children in Scope
/*532113*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*532115*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532118*/              OPC_EmitMergeInputChains1_1,
/*532119*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXSDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532131*/            /*Scope*/ 18, /*->532150*/
/*532132*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532134*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532137*/              OPC_EmitMergeInputChains1_1,
/*532138*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXSDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532150*/            0, /*End of Scope*/
/*532151*/          /*SwitchType*/ 40, MVT::v32i8,// ->532193
/*532153*/            OPC_Scope, 18, /*->532173*/ // 2 children in Scope
/*532155*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*532157*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532160*/              OPC_EmitMergeInputChains1_1,
/*532161*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532173*/            /*Scope*/ 18, /*->532192*/
/*532174*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*532176*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532179*/              OPC_EmitMergeInputChains1_1,
/*532180*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPMAXSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532192*/            0, /*End of Scope*/
/*532193*/          0, // EndSwitchType
/*532194*/        /*SwitchType*/ 64, MVT::v8i64,// ->532260
/*532196*/          OPC_MoveParent,
/*532197*/          OPC_MoveParent,
/*532198*/          OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->532219
/*532201*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*532203*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532206*/            OPC_EmitMergeInputChains1_1,
/*532207*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMAXSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532219*/          /*SwitchType*/ 18, MVT::v32i16,// ->532239
/*532221*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*532223*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532226*/            OPC_EmitMergeInputChains1_1,
/*532227*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMAXSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532239*/          /*SwitchType*/ 18, MVT::v16i32,// ->532259
/*532241*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532243*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532246*/            OPC_EmitMergeInputChains1_1,
/*532247*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPMAXSDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532259*/          0, // EndSwitchType
/*532260*/        0, // EndSwitchType
/*532261*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->532413
/*532265*/        OPC_MoveChild0,
/*532266*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*532269*/        OPC_RecordMemRef,
/*532270*/        OPC_RecordNode, // #1 = 'ld' chained node
/*532271*/        OPC_CheckFoldableChainNode,
/*532272*/        OPC_RecordChild1, // #2 = $src2
/*532273*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*532275*/        OPC_SwitchType /*2 cases */, 66, MVT::i32,// ->532344
/*532278*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*532280*/          OPC_MoveParent,
/*532281*/          OPC_MoveParent,
/*532282*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->532303
/*532285*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532287*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532290*/            OPC_EmitMergeInputChains1_1,
/*532291*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMAXSDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532303*/          /*SwitchType*/ 18, MVT::v8i32,// ->532323
/*532305*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532307*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532310*/            OPC_EmitMergeInputChains1_1,
/*532311*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMAXSDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532323*/          /*SwitchType*/ 18, MVT::v4i32,// ->532343
/*532325*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532327*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532330*/            OPC_EmitMergeInputChains1_1,
/*532331*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPMAXSDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532343*/          0, // EndSwitchType
/*532344*/        /*SwitchType*/ 66, MVT::i64,// ->532412
/*532346*/          OPC_CheckPredicate, 9, // Predicate_load
/*532348*/          OPC_MoveParent,
/*532349*/          OPC_MoveParent,
/*532350*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->532371
/*532353*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532355*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532358*/            OPC_EmitMergeInputChains1_1,
/*532359*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMAXSQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532371*/          /*SwitchType*/ 18, MVT::v4i64,// ->532391
/*532373*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532375*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532378*/            OPC_EmitMergeInputChains1_1,
/*532379*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMAXSQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532391*/          /*SwitchType*/ 18, MVT::v2i64,// ->532411
/*532393*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532395*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532398*/            OPC_EmitMergeInputChains1_1,
/*532399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPMAXSQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532411*/          0, // EndSwitchType
/*532412*/        0, // EndSwitchType
/*532413*/      0, // EndSwitchOpcode
/*532414*/    /*Scope*/ 81|128,4/*593*/, /*->533009*/
/*532416*/      OPC_MoveChild0,
/*532417*/      OPC_SwitchOpcode /*2 cases */, 48|128,3/*432*/, TARGET_VAL(ISD::BITCAST),// ->532854
/*532422*/        OPC_MoveChild0,
/*532423*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*532426*/        OPC_RecordMemRef,
/*532427*/        OPC_RecordNode, // #0 = 'ld' chained node
/*532428*/        OPC_CheckFoldableChainNode,
/*532429*/        OPC_RecordChild1, // #1 = $src2
/*532430*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*532432*/        OPC_CheckPredicate, 9, // Predicate_load
/*532434*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*532436*/        OPC_SwitchType /*3 cases */, 84|128,1/*212*/, MVT::v2i64,// ->532652
/*532440*/          OPC_Scope, 23, /*->532465*/ // 5 children in Scope
/*532442*/            OPC_MoveParent,
/*532443*/            OPC_MoveParent,
/*532444*/            OPC_RecordChild1, // #2 = $src1
/*532445*/            OPC_CheckType, MVT::v8i16,
/*532447*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*532449*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532452*/            OPC_EmitMergeInputChains1_0,
/*532453*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                      // Dst: (VPMAXSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532465*/          /*Scope*/ 25, /*->532491*/
/*532466*/            OPC_CheckPredicate, 48, // Predicate_memop
/*532468*/            OPC_MoveParent,
/*532469*/            OPC_MoveParent,
/*532470*/            OPC_RecordChild1, // #2 = $src1
/*532471*/            OPC_CheckType, MVT::v8i16,
/*532473*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*532475*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532478*/            OPC_EmitMergeInputChains1_0,
/*532479*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                      // Dst: (PMAXSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532491*/          /*Scope*/ 45, /*->532537*/
/*532492*/            OPC_MoveParent,
/*532493*/            OPC_MoveParent,
/*532494*/            OPC_RecordChild1, // #2 = $src1
/*532495*/            OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->532516
/*532498*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*532500*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532503*/              OPC_EmitMergeInputChains1_0,
/*532504*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPMAXSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532516*/            /*SwitchType*/ 18, MVT::v16i8,// ->532536
/*532518*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*532520*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532523*/              OPC_EmitMergeInputChains1_0,
/*532524*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                        // Dst: (VPMAXSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532536*/            0, // EndSwitchType
/*532537*/          /*Scope*/ 47, /*->532585*/
/*532538*/            OPC_CheckPredicate, 48, // Predicate_memop
/*532540*/            OPC_MoveParent,
/*532541*/            OPC_MoveParent,
/*532542*/            OPC_RecordChild1, // #2 = $src1
/*532543*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->532564
/*532546*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*532548*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532551*/              OPC_EmitMergeInputChains1_0,
/*532552*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                        // Dst: (PMAXSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532564*/            /*SwitchType*/ 18, MVT::v4i32,// ->532584
/*532566*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*532568*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532571*/              OPC_EmitMergeInputChains1_0,
/*532572*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (PMAXSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532584*/            0, // EndSwitchType
/*532585*/          /*Scope*/ 65, /*->532651*/
/*532586*/            OPC_MoveParent,
/*532587*/            OPC_MoveParent,
/*532588*/            OPC_RecordChild1, // #2 = $src1
/*532589*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->532610
/*532592*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*532594*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532597*/              OPC_EmitMergeInputChains1_0,
/*532598*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1) - Complexity = 28
                        // Dst: (VPMAXSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532610*/            /*SwitchType*/ 18, MVT::v8i16,// ->532630
/*532612*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*532614*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532617*/              OPC_EmitMergeInputChains1_0,
/*532618*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                        // Dst: (VPMAXSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532630*/            /*SwitchType*/ 18, MVT::v4i32,// ->532650
/*532632*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532634*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532637*/              OPC_EmitMergeInputChains1_0,
/*532638*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPMAXSDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532650*/            0, // EndSwitchType
/*532651*/          0, /*End of Scope*/
/*532652*/        /*SwitchType*/ 3|128,1/*131*/, MVT::v4i64,// ->532786
/*532655*/          OPC_MoveParent,
/*532656*/          OPC_MoveParent,
/*532657*/          OPC_RecordChild1, // #2 = $src1
/*532658*/          OPC_SwitchType /*3 cases */, 40, MVT::v16i16,// ->532701
/*532661*/            OPC_Scope, 18, /*->532681*/ // 2 children in Scope
/*532663*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*532665*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532668*/              OPC_EmitMergeInputChains1_0,
/*532669*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPMAXSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532681*/            /*Scope*/ 18, /*->532700*/
/*532682*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*532684*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532687*/              OPC_EmitMergeInputChains1_0,
/*532688*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                        // Dst: (VPMAXSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532700*/            0, /*End of Scope*/
/*532701*/          /*SwitchType*/ 40, MVT::v8i32,// ->532743
/*532703*/            OPC_Scope, 18, /*->532723*/ // 2 children in Scope
/*532705*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*532707*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532710*/              OPC_EmitMergeInputChains1_0,
/*532711*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPMAXSDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532723*/            /*Scope*/ 18, /*->532742*/
/*532724*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532726*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532729*/              OPC_EmitMergeInputChains1_0,
/*532730*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPMAXSDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532742*/            0, /*End of Scope*/
/*532743*/          /*SwitchType*/ 40, MVT::v32i8,// ->532785
/*532745*/            OPC_Scope, 18, /*->532765*/ // 2 children in Scope
/*532747*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*532749*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532752*/              OPC_EmitMergeInputChains1_0,
/*532753*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPMAXSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532765*/            /*Scope*/ 18, /*->532784*/
/*532766*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*532768*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532771*/              OPC_EmitMergeInputChains1_0,
/*532772*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (smax:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPMAXSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532784*/            0, /*End of Scope*/
/*532785*/          0, // EndSwitchType
/*532786*/        /*SwitchType*/ 65, MVT::v8i64,// ->532853
/*532788*/          OPC_MoveParent,
/*532789*/          OPC_MoveParent,
/*532790*/          OPC_RecordChild1, // #2 = $src1
/*532791*/          OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->532812
/*532794*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*532796*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532799*/            OPC_EmitMergeInputChains1_0,
/*532800*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1) - Complexity = 28
                      // Dst: (VPMAXSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532812*/          /*SwitchType*/ 18, MVT::v32i16,// ->532832
/*532814*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*532816*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532819*/            OPC_EmitMergeInputChains1_0,
/*532820*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                      // Dst: (VPMAXSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532832*/          /*SwitchType*/ 18, MVT::v16i32,// ->532852
/*532834*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532836*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532839*/            OPC_EmitMergeInputChains1_0,
/*532840*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPMAXSDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532852*/          0, // EndSwitchType
/*532853*/        0, // EndSwitchType
/*532854*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST),// ->533008
/*532858*/        OPC_MoveChild0,
/*532859*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*532862*/        OPC_RecordMemRef,
/*532863*/        OPC_RecordNode, // #0 = 'ld' chained node
/*532864*/        OPC_CheckFoldableChainNode,
/*532865*/        OPC_RecordChild1, // #1 = $src2
/*532866*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*532868*/        OPC_SwitchType /*2 cases */, 67, MVT::i32,// ->532938
/*532871*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*532873*/          OPC_MoveParent,
/*532874*/          OPC_MoveParent,
/*532875*/          OPC_RecordChild1, // #2 = $src1
/*532876*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->532897
/*532879*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532881*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532884*/            OPC_EmitMergeInputChains1_0,
/*532885*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                      // Dst: (VPMAXSDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532897*/          /*SwitchType*/ 18, MVT::v8i32,// ->532917
/*532899*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532901*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532904*/            OPC_EmitMergeInputChains1_0,
/*532905*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                      // Dst: (VPMAXSDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532917*/          /*SwitchType*/ 18, MVT::v4i32,// ->532937
/*532919*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532921*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532924*/            OPC_EmitMergeInputChains1_0,
/*532925*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                      // Dst: (VPMAXSDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532937*/          0, // EndSwitchType
/*532938*/        /*SwitchType*/ 67, MVT::i64,// ->533007
/*532940*/          OPC_CheckPredicate, 9, // Predicate_load
/*532942*/          OPC_MoveParent,
/*532943*/          OPC_MoveParent,
/*532944*/          OPC_RecordChild1, // #2 = $src1
/*532945*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->532966
/*532948*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532950*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532953*/            OPC_EmitMergeInputChains1_0,
/*532954*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                      // Dst: (VPMAXSQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532966*/          /*SwitchType*/ 18, MVT::v4i64,// ->532986
/*532968*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532970*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532973*/            OPC_EmitMergeInputChains1_0,
/*532974*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                      // Dst: (VPMAXSQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*532986*/          /*SwitchType*/ 18, MVT::v2i64,// ->533006
/*532988*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*532990*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*532993*/            OPC_EmitMergeInputChains1_0,
/*532994*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                      // Dst: (VPMAXSQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533006*/          0, // EndSwitchType
/*533007*/        0, // EndSwitchType
/*533008*/      0, // EndSwitchOpcode
/*533009*/    /*Scope*/ 78, /*->533088*/
/*533010*/      OPC_RecordChild0, // #0 = $src1
/*533011*/      OPC_MoveChild1,
/*533012*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533015*/      OPC_RecordMemRef,
/*533016*/      OPC_RecordNode, // #1 = 'ld' chained node
/*533017*/      OPC_CheckFoldableChainNode,
/*533018*/      OPC_RecordChild1, // #2 = $src2
/*533019*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533021*/      OPC_CheckPredicate, 9, // Predicate_load
/*533023*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*533025*/      OPC_MoveParent,
/*533026*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->533047
/*533029*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533031*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533034*/        OPC_EmitMergeInputChains1_1,
/*533035*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (smax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMAXSQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533047*/      /*SwitchType*/ 18, MVT::v4i64,// ->533067
/*533049*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*533051*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533054*/        OPC_EmitMergeInputChains1_1,
/*533055*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (smax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMAXSQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533067*/      /*SwitchType*/ 18, MVT::v2i64,// ->533087
/*533069*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*533071*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533074*/        OPC_EmitMergeInputChains1_1,
/*533075*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (smax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMAXSQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533087*/      0, // EndSwitchType
/*533088*/    /*Scope*/ 78, /*->533167*/
/*533089*/      OPC_MoveChild0,
/*533090*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533093*/      OPC_RecordMemRef,
/*533094*/      OPC_RecordNode, // #0 = 'ld' chained node
/*533095*/      OPC_CheckFoldableChainNode,
/*533096*/      OPC_RecordChild1, // #1 = $src2
/*533097*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533099*/      OPC_CheckPredicate, 9, // Predicate_load
/*533101*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*533103*/      OPC_MoveParent,
/*533104*/      OPC_RecordChild1, // #2 = $src1
/*533105*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->533126
/*533108*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533110*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533113*/        OPC_EmitMergeInputChains1_0,
/*533114*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (smax:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                  // Dst: (VPMAXSQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533126*/      /*SwitchType*/ 18, MVT::v4i64,// ->533146
/*533128*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*533130*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533133*/        OPC_EmitMergeInputChains1_0,
/*533134*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (smax:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (VPMAXSQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533146*/      /*SwitchType*/ 18, MVT::v2i64,// ->533166
/*533148*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*533150*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533153*/        OPC_EmitMergeInputChains1_0,
/*533154*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (smax:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (VPMAXSQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533166*/      0, // EndSwitchType
/*533167*/    /*Scope*/ 3|128,3/*387*/, /*->533556*/
/*533169*/      OPC_RecordChild0, // #0 = $src1
/*533170*/      OPC_RecordChild1, // #1 = $src2
/*533171*/      OPC_SwitchType /*12 cases */, 35, MVT::v8i16,// ->533209
/*533174*/        OPC_Scope, 10, /*->533186*/ // 3 children in Scope
/*533176*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*533178*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*533186*/        /*Scope*/ 10, /*->533197*/
/*533187*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*533189*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PMAXSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*533197*/        /*Scope*/ 10, /*->533208*/
/*533198*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*533200*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*533208*/        0, /*End of Scope*/
/*533209*/      /*SwitchType*/ 24, MVT::v16i16,// ->533235
/*533211*/        OPC_Scope, 10, /*->533223*/ // 2 children in Scope
/*533213*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*533215*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*533223*/        /*Scope*/ 10, /*->533234*/
/*533224*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*533226*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*533234*/        0, /*End of Scope*/
/*533235*/      /*SwitchType*/ 35, MVT::v4i32,// ->533272
/*533237*/        OPC_Scope, 10, /*->533249*/ // 3 children in Scope
/*533239*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*533241*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*533249*/        /*Scope*/ 10, /*->533260*/
/*533250*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*533252*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PMAXSDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*533260*/        /*Scope*/ 10, /*->533271*/
/*533261*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*533263*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*533271*/        0, /*End of Scope*/
/*533272*/      /*SwitchType*/ 35, MVT::v16i8,// ->533309
/*533274*/        OPC_Scope, 10, /*->533286*/ // 3 children in Scope
/*533276*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*533278*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*533286*/        /*Scope*/ 10, /*->533297*/
/*533287*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*533289*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PMAXSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*533297*/        /*Scope*/ 10, /*->533308*/
/*533298*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*533300*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*533308*/        0, /*End of Scope*/
/*533309*/      /*SwitchType*/ 24, MVT::v8i32,// ->533335
/*533311*/        OPC_Scope, 10, /*->533323*/ // 2 children in Scope
/*533313*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*533315*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*533323*/        /*Scope*/ 10, /*->533334*/
/*533324*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*533326*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*533334*/        0, /*End of Scope*/
/*533335*/      /*SwitchType*/ 24, MVT::v32i8,// ->533361
/*533337*/        OPC_Scope, 10, /*->533349*/ // 2 children in Scope
/*533339*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*533341*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*533349*/        /*Scope*/ 10, /*->533360*/
/*533350*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*533352*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*533360*/        0, /*End of Scope*/
/*533361*/      /*SwitchType*/ 10, MVT::v64i8,// ->533373
/*533363*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*533365*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (smax:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPMAXSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*533373*/      /*SwitchType*/ 10, MVT::v32i16,// ->533385
/*533375*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*533377*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (smax:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPMAXSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*533385*/      /*SwitchType*/ 10, MVT::v16i32,// ->533397
/*533387*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533389*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (smax:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPMAXSDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*533397*/      /*SwitchType*/ 10, MVT::v8i64,// ->533409
/*533399*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533401*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (smax:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPMAXSQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*533409*/      /*SwitchType*/ 71, MVT::v4i64,// ->533482
/*533411*/        OPC_Scope, 10, /*->533423*/ // 2 children in Scope
/*533413*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*533415*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*533423*/        /*Scope*/ 57, /*->533481*/
/*533424*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*533426*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*533432*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*533435*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*533444*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*533450*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*533453*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*533462*/          OPC_EmitNode1, TARGET_VAL(X86::VPMAXSQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*533470*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*533473*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 8, 9, 
                    // Src: (smax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMAXSQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src2, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*533481*/        0, /*End of Scope*/
/*533482*/      /*SwitchType*/ 71, MVT::v2i64,// ->533555
/*533484*/        OPC_Scope, 10, /*->533496*/ // 2 children in Scope
/*533486*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*533488*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (smax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPMAXSQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*533496*/        /*Scope*/ 57, /*->533554*/
/*533497*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*533499*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*533505*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*533508*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*533517*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*533523*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*533526*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*533535*/          OPC_EmitNode1, TARGET_VAL(X86::VPMAXSQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*533543*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*533546*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 8, 9, 
                    // Src: (smax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMAXSQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src2, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*533554*/        0, /*End of Scope*/
/*533555*/      0, // EndSwitchType
/*533556*/    0, /*End of Scope*/
/*533557*/  /*SwitchOpcode*/ 6|128,6/*774*/, TARGET_VAL(X86ISD::AVG),// ->534335
/*533561*/    OPC_Scope, 47|128,2/*303*/, /*->533867*/ // 3 children in Scope
/*533564*/      OPC_RecordChild0, // #0 = $src1
/*533565*/      OPC_MoveChild1,
/*533566*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*533569*/      OPC_MoveChild0,
/*533570*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533573*/      OPC_RecordMemRef,
/*533574*/      OPC_RecordNode, // #1 = 'ld' chained node
/*533575*/      OPC_CheckFoldableChainNode,
/*533576*/      OPC_RecordChild1, // #2 = $src2
/*533577*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533579*/      OPC_CheckPredicate, 9, // Predicate_load
/*533581*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*533583*/      OPC_SwitchType /*3 cases */, 15|128,1/*143*/, MVT::v2i64,// ->533730
/*533587*/        OPC_Scope, 22, /*->533611*/ // 5 children in Scope
/*533589*/          OPC_MoveParent,
/*533590*/          OPC_MoveParent,
/*533591*/          OPC_CheckType, MVT::v16i8,
/*533593*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*533595*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533598*/          OPC_EmitMergeInputChains1_1,
/*533599*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPAVGBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533611*/        /*Scope*/ 24, /*->533636*/
/*533612*/          OPC_CheckPredicate, 48, // Predicate_memop
/*533614*/          OPC_MoveParent,
/*533615*/          OPC_MoveParent,
/*533616*/          OPC_CheckType, MVT::v16i8,
/*533618*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*533620*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533623*/          OPC_EmitMergeInputChains1_1,
/*533624*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PAVGBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533636*/        /*Scope*/ 22, /*->533659*/
/*533637*/          OPC_MoveParent,
/*533638*/          OPC_MoveParent,
/*533639*/          OPC_CheckType, MVT::v8i16,
/*533641*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*533643*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533646*/          OPC_EmitMergeInputChains1_1,
/*533647*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPAVGWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533659*/        /*Scope*/ 24, /*->533684*/
/*533660*/          OPC_CheckPredicate, 48, // Predicate_memop
/*533662*/          OPC_MoveParent,
/*533663*/          OPC_MoveParent,
/*533664*/          OPC_CheckType, MVT::v8i16,
/*533666*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*533668*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533671*/          OPC_EmitMergeInputChains1_1,
/*533672*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PAVGWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533684*/        /*Scope*/ 44, /*->533729*/
/*533685*/          OPC_MoveParent,
/*533686*/          OPC_MoveParent,
/*533687*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->533708
/*533690*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*533692*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533695*/            OPC_EmitMergeInputChains1_1,
/*533696*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPAVGWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533708*/          /*SwitchType*/ 18, MVT::v16i8,// ->533728
/*533710*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*533712*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533715*/            OPC_EmitMergeInputChains1_1,
/*533716*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPAVGBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533728*/          0, // EndSwitchType
/*533729*/        0, /*End of Scope*/
/*533730*/      /*SwitchType*/ 88, MVT::v4i64,// ->533820
/*533732*/        OPC_MoveParent,
/*533733*/        OPC_MoveParent,
/*533734*/        OPC_SwitchType /*2 cases */, 40, MVT::v32i8,// ->533777
/*533737*/          OPC_Scope, 18, /*->533757*/ // 2 children in Scope
/*533739*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*533741*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533744*/            OPC_EmitMergeInputChains1_1,
/*533745*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPAVGBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533757*/          /*Scope*/ 18, /*->533776*/
/*533758*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*533760*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533763*/            OPC_EmitMergeInputChains1_1,
/*533764*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPAVGBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533776*/          0, /*End of Scope*/
/*533777*/        /*SwitchType*/ 40, MVT::v16i16,// ->533819
/*533779*/          OPC_Scope, 18, /*->533799*/ // 2 children in Scope
/*533781*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*533783*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533786*/            OPC_EmitMergeInputChains1_1,
/*533787*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPAVGWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533799*/          /*Scope*/ 18, /*->533818*/
/*533800*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*533802*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533805*/            OPC_EmitMergeInputChains1_1,
/*533806*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPAVGWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533818*/          0, /*End of Scope*/
/*533819*/        0, // EndSwitchType
/*533820*/      /*SwitchType*/ 44, MVT::v8i64,// ->533866
/*533822*/        OPC_MoveParent,
/*533823*/        OPC_MoveParent,
/*533824*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i16,// ->533845
/*533827*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*533829*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533832*/          OPC_EmitMergeInputChains1_1,
/*533833*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPAVGWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533845*/        /*SwitchType*/ 18, MVT::v64i8,// ->533865
/*533847*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*533849*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533852*/          OPC_EmitMergeInputChains1_1,
/*533853*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPAVGBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533865*/        0, // EndSwitchType
/*533866*/      0, // EndSwitchType
/*533867*/    /*Scope*/ 53|128,2/*309*/, /*->534178*/
/*533869*/      OPC_MoveChild0,
/*533870*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*533873*/      OPC_MoveChild0,
/*533874*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533877*/      OPC_RecordMemRef,
/*533878*/      OPC_RecordNode, // #0 = 'ld' chained node
/*533879*/      OPC_CheckFoldableChainNode,
/*533880*/      OPC_RecordChild1, // #1 = $src2
/*533881*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533883*/      OPC_CheckPredicate, 9, // Predicate_load
/*533885*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*533887*/      OPC_SwitchType /*3 cases */, 20|128,1/*148*/, MVT::v2i64,// ->534039
/*533891*/        OPC_Scope, 23, /*->533916*/ // 5 children in Scope
/*533893*/          OPC_MoveParent,
/*533894*/          OPC_MoveParent,
/*533895*/          OPC_RecordChild1, // #2 = $src1
/*533896*/          OPC_CheckType, MVT::v16i8,
/*533898*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*533900*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533903*/          OPC_EmitMergeInputChains1_0,
/*533904*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                    // Dst: (VPAVGBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533916*/        /*Scope*/ 25, /*->533942*/
/*533917*/          OPC_CheckPredicate, 48, // Predicate_memop
/*533919*/          OPC_MoveParent,
/*533920*/          OPC_MoveParent,
/*533921*/          OPC_RecordChild1, // #2 = $src1
/*533922*/          OPC_CheckType, MVT::v16i8,
/*533924*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*533926*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533929*/          OPC_EmitMergeInputChains1_0,
/*533930*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                    // Dst: (PAVGBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533942*/        /*Scope*/ 23, /*->533966*/
/*533943*/          OPC_MoveParent,
/*533944*/          OPC_MoveParent,
/*533945*/          OPC_RecordChild1, // #2 = $src1
/*533946*/          OPC_CheckType, MVT::v8i16,
/*533948*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*533950*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533953*/          OPC_EmitMergeInputChains1_0,
/*533954*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPAVGWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533966*/        /*Scope*/ 25, /*->533992*/
/*533967*/          OPC_CheckPredicate, 48, // Predicate_memop
/*533969*/          OPC_MoveParent,
/*533970*/          OPC_MoveParent,
/*533971*/          OPC_RecordChild1, // #2 = $src1
/*533972*/          OPC_CheckType, MVT::v8i16,
/*533974*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*533976*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*533979*/          OPC_EmitMergeInputChains1_0,
/*533980*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (PAVGWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*533992*/        /*Scope*/ 45, /*->534038*/
/*533993*/          OPC_MoveParent,
/*533994*/          OPC_MoveParent,
/*533995*/          OPC_RecordChild1, // #2 = $src1
/*533996*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->534017
/*533999*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534001*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534004*/            OPC_EmitMergeInputChains1_0,
/*534005*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                      // Dst: (VPAVGWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534017*/          /*SwitchType*/ 18, MVT::v16i8,// ->534037
/*534019*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534021*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534024*/            OPC_EmitMergeInputChains1_0,
/*534025*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1) - Complexity = 28
                      // Dst: (VPAVGBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534037*/          0, // EndSwitchType
/*534038*/        0, /*End of Scope*/
/*534039*/      /*SwitchType*/ 89, MVT::v4i64,// ->534130
/*534041*/        OPC_MoveParent,
/*534042*/        OPC_MoveParent,
/*534043*/        OPC_RecordChild1, // #2 = $src1
/*534044*/        OPC_SwitchType /*2 cases */, 40, MVT::v32i8,// ->534087
/*534047*/          OPC_Scope, 18, /*->534067*/ // 2 children in Scope
/*534049*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534051*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534054*/            OPC_EmitMergeInputChains1_0,
/*534055*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src1) - Complexity = 28
                      // Dst: (VPAVGBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534067*/          /*Scope*/ 18, /*->534086*/
/*534068*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534070*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534073*/            OPC_EmitMergeInputChains1_0,
/*534074*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1) - Complexity = 28
                      // Dst: (VPAVGBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534086*/          0, /*End of Scope*/
/*534087*/        /*SwitchType*/ 40, MVT::v16i16,// ->534129
/*534089*/          OPC_Scope, 18, /*->534109*/ // 2 children in Scope
/*534091*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534093*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534096*/            OPC_EmitMergeInputChains1_0,
/*534097*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                      // Dst: (VPAVGWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534109*/          /*Scope*/ 18, /*->534128*/
/*534110*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534112*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534115*/            OPC_EmitMergeInputChains1_0,
/*534116*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                      // Dst: (VPAVGWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534128*/          0, /*End of Scope*/
/*534129*/        0, // EndSwitchType
/*534130*/      /*SwitchType*/ 45, MVT::v8i64,// ->534177
/*534132*/        OPC_MoveParent,
/*534133*/        OPC_MoveParent,
/*534134*/        OPC_RecordChild1, // #2 = $src1
/*534135*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i16,// ->534156
/*534138*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*534140*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534143*/          OPC_EmitMergeInputChains1_0,
/*534144*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                    // Dst: (VPAVGWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534156*/        /*SwitchType*/ 18, MVT::v64i8,// ->534176
/*534158*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*534160*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534163*/          OPC_EmitMergeInputChains1_0,
/*534164*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1) - Complexity = 28
                    // Dst: (VPAVGBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534176*/        0, // EndSwitchType
/*534177*/      0, // EndSwitchType
/*534178*/    /*Scope*/ 26|128,1/*154*/, /*->534334*/
/*534180*/      OPC_RecordChild0, // #0 = $src1
/*534181*/      OPC_RecordChild1, // #1 = $src2
/*534182*/      OPC_SwitchType /*6 cases */, 35, MVT::v16i8,// ->534220
/*534185*/        OPC_Scope, 10, /*->534197*/ // 3 children in Scope
/*534187*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534189*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86avg:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPAVGBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*534197*/        /*Scope*/ 10, /*->534208*/
/*534198*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*534200*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PAVGBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86avg:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PAVGBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*534208*/        /*Scope*/ 10, /*->534219*/
/*534209*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534211*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86avg:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPAVGBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*534219*/        0, /*End of Scope*/
/*534220*/      /*SwitchType*/ 24, MVT::v32i8,// ->534246
/*534222*/        OPC_Scope, 10, /*->534234*/ // 2 children in Scope
/*534224*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534226*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86avg:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPAVGBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*534234*/        /*Scope*/ 10, /*->534245*/
/*534235*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534237*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86avg:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPAVGBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*534245*/        0, /*End of Scope*/
/*534246*/      /*SwitchType*/ 35, MVT::v8i16,// ->534283
/*534248*/        OPC_Scope, 10, /*->534260*/ // 3 children in Scope
/*534250*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534252*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86avg:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPAVGWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*534260*/        /*Scope*/ 10, /*->534271*/
/*534261*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*534263*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PAVGWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86avg:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PAVGWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*534271*/        /*Scope*/ 10, /*->534282*/
/*534272*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534274*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86avg:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPAVGWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*534282*/        0, /*End of Scope*/
/*534283*/      /*SwitchType*/ 24, MVT::v16i16,// ->534309
/*534285*/        OPC_Scope, 10, /*->534297*/ // 2 children in Scope
/*534287*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534289*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86avg:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPAVGWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*534297*/        /*Scope*/ 10, /*->534308*/
/*534298*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534300*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86avg:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPAVGWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*534308*/        0, /*End of Scope*/
/*534309*/      /*SwitchType*/ 10, MVT::v32i16,// ->534321
/*534311*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*534313*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86avg:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPAVGWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*534321*/      /*SwitchType*/ 10, MVT::v64i8,// ->534333
/*534323*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*534325*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86avg:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPAVGBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*534333*/      0, // EndSwitchType
/*534334*/    0, /*End of Scope*/
/*534335*/  /*SwitchOpcode*/ 38|128,3/*422*/, TARGET_VAL(X86ISD::VPMADDWD),// ->534761
/*534339*/    OPC_Scope, 38|128,1/*166*/, /*->534508*/ // 3 children in Scope
/*534342*/      OPC_RecordChild0, // #0 = $src1
/*534343*/      OPC_MoveChild1,
/*534344*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*534347*/      OPC_MoveChild0,
/*534348*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534351*/      OPC_RecordMemRef,
/*534352*/      OPC_RecordNode, // #1 = 'ld' chained node
/*534353*/      OPC_CheckFoldableChainNode,
/*534354*/      OPC_RecordChild1, // #2 = $src2
/*534355*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534357*/      OPC_CheckPredicate, 9, // Predicate_load
/*534359*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*534361*/      OPC_SwitchType /*3 cases */, 73, MVT::v2i64,// ->534437
/*534364*/        OPC_Scope, 22, /*->534388*/ // 3 children in Scope
/*534366*/          OPC_MoveParent,
/*534367*/          OPC_MoveParent,
/*534368*/          OPC_CheckType, MVT::v4i32,
/*534370*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534372*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534375*/          OPC_EmitMergeInputChains1_1,
/*534376*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMADDWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534388*/        /*Scope*/ 24, /*->534413*/
/*534389*/          OPC_CheckPredicate, 48, // Predicate_memop
/*534391*/          OPC_MoveParent,
/*534392*/          OPC_MoveParent,
/*534393*/          OPC_CheckType, MVT::v4i32,
/*534395*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*534397*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534400*/          OPC_EmitMergeInputChains1_1,
/*534401*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PMADDWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534413*/        /*Scope*/ 22, /*->534436*/
/*534414*/          OPC_MoveParent,
/*534415*/          OPC_MoveParent,
/*534416*/          OPC_CheckType, MVT::v4i32,
/*534418*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534420*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534423*/          OPC_EmitMergeInputChains1_1,
/*534424*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMADDWDZ128rm:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534436*/        0, /*End of Scope*/
/*534437*/      /*SwitchType*/ 44, MVT::v4i64,// ->534483
/*534439*/        OPC_MoveParent,
/*534440*/        OPC_MoveParent,
/*534441*/        OPC_CheckType, MVT::v8i32,
/*534443*/        OPC_Scope, 18, /*->534463*/ // 2 children in Scope
/*534445*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534447*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534450*/          OPC_EmitMergeInputChains1_1,
/*534451*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v8i32] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMADDWDYrm:{ *:[v8i32] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534463*/        /*Scope*/ 18, /*->534482*/
/*534464*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534466*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534469*/          OPC_EmitMergeInputChains1_1,
/*534470*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMADDWDZ256rm:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534482*/        0, /*End of Scope*/
/*534483*/      /*SwitchType*/ 22, MVT::v8i64,// ->534507
/*534485*/        OPC_MoveParent,
/*534486*/        OPC_MoveParent,
/*534487*/        OPC_CheckType, MVT::v16i32,
/*534489*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*534491*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534494*/        OPC_EmitMergeInputChains1_1,
/*534495*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86vpmaddwd:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPMADDWDZrm:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534507*/      0, // EndSwitchType
/*534508*/    /*Scope*/ 42|128,1/*170*/, /*->534680*/
/*534510*/      OPC_MoveChild0,
/*534511*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*534514*/      OPC_MoveChild0,
/*534515*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534518*/      OPC_RecordMemRef,
/*534519*/      OPC_RecordNode, // #0 = 'ld' chained node
/*534520*/      OPC_CheckFoldableChainNode,
/*534521*/      OPC_RecordChild1, // #1 = $src2
/*534522*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534524*/      OPC_CheckPredicate, 9, // Predicate_load
/*534526*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*534528*/      OPC_SwitchType /*3 cases */, 76, MVT::v2i64,// ->534607
/*534531*/        OPC_Scope, 23, /*->534556*/ // 3 children in Scope
/*534533*/          OPC_MoveParent,
/*534534*/          OPC_MoveParent,
/*534535*/          OPC_RecordChild1, // #2 = $src1
/*534536*/          OPC_CheckType, MVT::v4i32,
/*534538*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534540*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534543*/          OPC_EmitMergeInputChains1_0,
/*534544*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPMADDWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534556*/        /*Scope*/ 25, /*->534582*/
/*534557*/          OPC_CheckPredicate, 48, // Predicate_memop
/*534559*/          OPC_MoveParent,
/*534560*/          OPC_MoveParent,
/*534561*/          OPC_RecordChild1, // #2 = $src1
/*534562*/          OPC_CheckType, MVT::v4i32,
/*534564*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*534566*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534569*/          OPC_EmitMergeInputChains1_0,
/*534570*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (PMADDWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534582*/        /*Scope*/ 23, /*->534606*/
/*534583*/          OPC_MoveParent,
/*534584*/          OPC_MoveParent,
/*534585*/          OPC_RecordChild1, // #2 = $src1
/*534586*/          OPC_CheckType, MVT::v4i32,
/*534588*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534590*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534593*/          OPC_EmitMergeInputChains1_0,
/*534594*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v4i32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPMADDWDZ128rm:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534606*/        0, /*End of Scope*/
/*534607*/      /*SwitchType*/ 45, MVT::v4i64,// ->534654
/*534609*/        OPC_MoveParent,
/*534610*/        OPC_MoveParent,
/*534611*/        OPC_RecordChild1, // #2 = $src1
/*534612*/        OPC_CheckType, MVT::v8i32,
/*534614*/        OPC_Scope, 18, /*->534634*/ // 2 children in Scope
/*534616*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534618*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534621*/          OPC_EmitMergeInputChains1_0,
/*534622*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v8i32] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                    // Dst: (VPMADDWDYrm:{ *:[v8i32] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534634*/        /*Scope*/ 18, /*->534653*/
/*534635*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534637*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534640*/          OPC_EmitMergeInputChains1_0,
/*534641*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v8i32] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                    // Dst: (VPMADDWDZ256rm:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534653*/        0, /*End of Scope*/
/*534654*/      /*SwitchType*/ 23, MVT::v8i64,// ->534679
/*534656*/        OPC_MoveParent,
/*534657*/        OPC_MoveParent,
/*534658*/        OPC_RecordChild1, // #2 = $src1
/*534659*/        OPC_CheckType, MVT::v16i32,
/*534661*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*534663*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534666*/        OPC_EmitMergeInputChains1_0,
/*534667*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86vpmaddwd:{ *:[v16i32] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                  // Dst: (VPMADDWDZrm:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534679*/      0, // EndSwitchType
/*534680*/    /*Scope*/ 79, /*->534760*/
/*534681*/      OPC_RecordChild0, // #0 = $src1
/*534682*/      OPC_RecordChild1, // #1 = $src2
/*534683*/      OPC_SwitchType /*3 cases */, 35, MVT::v4i32,// ->534721
/*534686*/        OPC_Scope, 10, /*->534698*/ // 3 children in Scope
/*534688*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534690*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vpmaddwd:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMADDWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*534698*/        /*Scope*/ 10, /*->534709*/
/*534699*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*534701*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMADDWDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vpmaddwd:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PMADDWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*534709*/        /*Scope*/ 10, /*->534720*/
/*534710*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534712*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vpmaddwd:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMADDWDZ128rr:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*534720*/        0, /*End of Scope*/
/*534721*/      /*SwitchType*/ 24, MVT::v8i32,// ->534747
/*534723*/        OPC_Scope, 10, /*->534735*/ // 2 children in Scope
/*534725*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534727*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vpmaddwd:{ *:[v8i32] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMADDWDYrr:{ *:[v8i32] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*534735*/        /*Scope*/ 10, /*->534746*/
/*534736*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534738*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vpmaddwd:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMADDWDZ256rr:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*534746*/        0, /*End of Scope*/
/*534747*/      /*SwitchType*/ 10, MVT::v16i32,// ->534759
/*534749*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*534751*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vpmaddwd:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPMADDWDZrr:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*534759*/      0, // EndSwitchType
/*534760*/    0, /*End of Scope*/
/*534761*/  /*SwitchOpcode*/ 38|128,3/*422*/, TARGET_VAL(X86ISD::PSADBW),// ->535187
/*534765*/    OPC_Scope, 38|128,1/*166*/, /*->534934*/ // 3 children in Scope
/*534768*/      OPC_RecordChild0, // #0 = $src1
/*534769*/      OPC_MoveChild1,
/*534770*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*534773*/      OPC_MoveChild0,
/*534774*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534777*/      OPC_RecordMemRef,
/*534778*/      OPC_RecordNode, // #1 = 'ld' chained node
/*534779*/      OPC_CheckFoldableChainNode,
/*534780*/      OPC_RecordChild1, // #2 = $src2
/*534781*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534783*/      OPC_CheckPredicate, 9, // Predicate_load
/*534785*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*534787*/      OPC_SwitchType /*3 cases */, 73, MVT::v2i64,// ->534863
/*534790*/        OPC_Scope, 22, /*->534814*/ // 3 children in Scope
/*534792*/          OPC_MoveParent,
/*534793*/          OPC_MoveParent,
/*534794*/          OPC_CheckType, MVT::v2i64,
/*534796*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534798*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534801*/          OPC_EmitMergeInputChains1_1,
/*534802*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSADBWrm:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534814*/        /*Scope*/ 24, /*->534839*/
/*534815*/          OPC_CheckPredicate, 48, // Predicate_memop
/*534817*/          OPC_MoveParent,
/*534818*/          OPC_MoveParent,
/*534819*/          OPC_CheckType, MVT::v2i64,
/*534821*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*534823*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534826*/          OPC_EmitMergeInputChains1_1,
/*534827*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSADBWrm:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534839*/        /*Scope*/ 22, /*->534862*/
/*534840*/          OPC_MoveParent,
/*534841*/          OPC_MoveParent,
/*534842*/          OPC_CheckType, MVT::v2i64,
/*534844*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534846*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534849*/          OPC_EmitMergeInputChains1_1,
/*534850*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSADBWZ128rm:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534862*/        0, /*End of Scope*/
/*534863*/      /*SwitchType*/ 44, MVT::v4i64,// ->534909
/*534865*/        OPC_MoveParent,
/*534866*/        OPC_MoveParent,
/*534867*/        OPC_CheckType, MVT::v4i64,
/*534869*/        OPC_Scope, 18, /*->534889*/ // 2 children in Scope
/*534871*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534873*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534876*/          OPC_EmitMergeInputChains1_1,
/*534877*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v4i64] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSADBWYrm:{ *:[v4i64] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534889*/        /*Scope*/ 18, /*->534908*/
/*534890*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*534892*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534895*/          OPC_EmitMergeInputChains1_1,
/*534896*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v4i64] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSADBWZ256rm:{ *:[v4i64] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534908*/        0, /*End of Scope*/
/*534909*/      /*SwitchType*/ 22, MVT::v8i64,// ->534933
/*534911*/        OPC_MoveParent,
/*534912*/        OPC_MoveParent,
/*534913*/        OPC_CheckType, MVT::v8i64,
/*534915*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*534917*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534920*/        OPC_EmitMergeInputChains1_1,
/*534921*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86psadbw:{ *:[v8i64] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPSADBWZrm:{ *:[v8i64] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534933*/      0, // EndSwitchType
/*534934*/    /*Scope*/ 42|128,1/*170*/, /*->535106*/
/*534936*/      OPC_MoveChild0,
/*534937*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*534940*/      OPC_MoveChild0,
/*534941*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534944*/      OPC_RecordMemRef,
/*534945*/      OPC_RecordNode, // #0 = 'ld' chained node
/*534946*/      OPC_CheckFoldableChainNode,
/*534947*/      OPC_RecordChild1, // #1 = $src2
/*534948*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534950*/      OPC_CheckPredicate, 9, // Predicate_load
/*534952*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*534954*/      OPC_SwitchType /*3 cases */, 76, MVT::v2i64,// ->535033
/*534957*/        OPC_Scope, 23, /*->534982*/ // 3 children in Scope
/*534959*/          OPC_MoveParent,
/*534960*/          OPC_MoveParent,
/*534961*/          OPC_RecordChild1, // #2 = $src1
/*534962*/          OPC_CheckType, MVT::v2i64,
/*534964*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*534966*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534969*/          OPC_EmitMergeInputChains1_0,
/*534970*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                    // Dst: (VPSADBWrm:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*534982*/        /*Scope*/ 25, /*->535008*/
/*534983*/          OPC_CheckPredicate, 48, // Predicate_memop
/*534985*/          OPC_MoveParent,
/*534986*/          OPC_MoveParent,
/*534987*/          OPC_RecordChild1, // #2 = $src1
/*534988*/          OPC_CheckType, MVT::v2i64,
/*534990*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*534992*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*534995*/          OPC_EmitMergeInputChains1_0,
/*534996*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                    // Dst: (PSADBWrm:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535008*/        /*Scope*/ 23, /*->535032*/
/*535009*/          OPC_MoveParent,
/*535010*/          OPC_MoveParent,
/*535011*/          OPC_RecordChild1, // #2 = $src1
/*535012*/          OPC_CheckType, MVT::v2i64,
/*535014*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*535016*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535019*/          OPC_EmitMergeInputChains1_0,
/*535020*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v2i64] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v16i8] }:$src1) - Complexity = 28
                    // Dst: (VPSADBWZ128rm:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535032*/        0, /*End of Scope*/
/*535033*/      /*SwitchType*/ 45, MVT::v4i64,// ->535080
/*535035*/        OPC_MoveParent,
/*535036*/        OPC_MoveParent,
/*535037*/        OPC_RecordChild1, // #2 = $src1
/*535038*/        OPC_CheckType, MVT::v4i64,
/*535040*/        OPC_Scope, 18, /*->535060*/ // 2 children in Scope
/*535042*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*535044*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535047*/          OPC_EmitMergeInputChains1_0,
/*535048*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v4i64] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src1) - Complexity = 28
                    // Dst: (VPSADBWYrm:{ *:[v4i64] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535060*/        /*Scope*/ 18, /*->535079*/
/*535061*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*535063*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535066*/          OPC_EmitMergeInputChains1_0,
/*535067*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v4i64] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v32i8] }:$src1) - Complexity = 28
                    // Dst: (VPSADBWZ256rm:{ *:[v4i64] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535079*/        0, /*End of Scope*/
/*535080*/      /*SwitchType*/ 23, MVT::v8i64,// ->535105
/*535082*/        OPC_MoveParent,
/*535083*/        OPC_MoveParent,
/*535084*/        OPC_RecordChild1, // #2 = $src1
/*535085*/        OPC_CheckType, MVT::v8i64,
/*535087*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*535089*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535092*/        OPC_EmitMergeInputChains1_0,
/*535093*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86psadbw:{ *:[v8i64] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v64i8] }:$src1) - Complexity = 28
                  // Dst: (VPSADBWZrm:{ *:[v8i64] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535105*/      0, // EndSwitchType
/*535106*/    /*Scope*/ 79, /*->535186*/
/*535107*/      OPC_RecordChild0, // #0 = $src1
/*535108*/      OPC_RecordChild1, // #1 = $src2
/*535109*/      OPC_SwitchType /*3 cases */, 35, MVT::v2i64,// ->535147
/*535112*/        OPC_Scope, 10, /*->535124*/ // 3 children in Scope
/*535114*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*535116*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86psadbw:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSADBWrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*535124*/        /*Scope*/ 10, /*->535135*/
/*535125*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*535127*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSADBWrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86psadbw:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PSADBWrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*535135*/        /*Scope*/ 10, /*->535146*/
/*535136*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*535138*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86psadbw:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSADBWZ128rr:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*535146*/        0, /*End of Scope*/
/*535147*/      /*SwitchType*/ 24, MVT::v4i64,// ->535173
/*535149*/        OPC_Scope, 10, /*->535161*/ // 2 children in Scope
/*535151*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*535153*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86psadbw:{ *:[v4i64] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSADBWYrr:{ *:[v4i64] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*535161*/        /*Scope*/ 10, /*->535172*/
/*535162*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*535164*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86psadbw:{ *:[v4i64] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSADBWZ256rr:{ *:[v4i64] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*535172*/        0, /*End of Scope*/
/*535173*/      /*SwitchType*/ 10, MVT::v8i64,// ->535185
/*535175*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*535177*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86psadbw:{ *:[v8i64] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPSADBWZrr:{ *:[v8i64] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*535185*/      0, // EndSwitchType
/*535186*/    0, /*End of Scope*/
/*535187*/  /*SwitchOpcode*/ 60|128,5/*700*/, TARGET_VAL(X86ISD::VSHL),// ->535891
/*535191*/    OPC_RecordChild0, // #0 = $src1
/*535192*/    OPC_Scope, 66|128,3/*450*/, /*->535645*/ // 2 children in Scope
/*535195*/      OPC_MoveChild1,
/*535196*/      OPC_SwitchOpcode /*2 cases */, 105|128,1/*233*/, TARGET_VAL(ISD::BITCAST),// ->535434
/*535201*/        OPC_MoveChild0,
/*535202*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535205*/        OPC_RecordMemRef,
/*535206*/        OPC_RecordNode, // #1 = 'ld' chained node
/*535207*/        OPC_CheckFoldableChainNode,
/*535208*/        OPC_RecordChild1, // #2 = $src2
/*535209*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535211*/        OPC_CheckPredicate, 9, // Predicate_load
/*535213*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*535215*/        OPC_CheckType, MVT::v2i64,
/*535217*/        OPC_Scope, 46, /*->535265*/ // 5 children in Scope
/*535219*/          OPC_MoveParent,
/*535220*/          OPC_CheckType, MVT::v8i16,
/*535222*/          OPC_MoveParent,
/*535223*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->535244
/*535226*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*535228*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535231*/            OPC_EmitMergeInputChains1_1,
/*535232*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSLLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535244*/          /*SwitchType*/ 18, MVT::v16i16,// ->535264
/*535246*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*535248*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535251*/            OPC_EmitMergeInputChains1_1,
/*535252*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSLLWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535264*/          0, // EndSwitchType
/*535265*/        /*Scope*/ 26, /*->535292*/
/*535266*/          OPC_CheckPredicate, 48, // Predicate_memop
/*535268*/          OPC_MoveParent,
/*535269*/          OPC_CheckType, MVT::v8i16,
/*535271*/          OPC_MoveParent,
/*535272*/          OPC_CheckType, MVT::v8i16,
/*535274*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*535276*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535279*/          OPC_EmitMergeInputChains1_1,
/*535280*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vshl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSLLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535292*/        /*Scope*/ 46, /*->535339*/
/*535293*/          OPC_MoveParent,
/*535294*/          OPC_CheckType, MVT::v4i32,
/*535296*/          OPC_MoveParent,
/*535297*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->535318
/*535300*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*535302*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535305*/            OPC_EmitMergeInputChains1_1,
/*535306*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSLLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535318*/          /*SwitchType*/ 18, MVT::v8i32,// ->535338
/*535320*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*535322*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535325*/            OPC_EmitMergeInputChains1_1,
/*535326*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSLLDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535338*/          0, // EndSwitchType
/*535339*/        /*Scope*/ 26, /*->535366*/
/*535340*/          OPC_CheckPredicate, 48, // Predicate_memop
/*535342*/          OPC_MoveParent,
/*535343*/          OPC_CheckType, MVT::v4i32,
/*535345*/          OPC_MoveParent,
/*535346*/          OPC_CheckType, MVT::v4i32,
/*535348*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*535350*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535353*/          OPC_EmitMergeInputChains1_1,
/*535354*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vshl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSLLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535366*/        /*Scope*/ 66, /*->535433*/
/*535367*/          OPC_MoveParent,
/*535368*/          OPC_CheckType, MVT::v4i32,
/*535370*/          OPC_MoveParent,
/*535371*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->535392
/*535374*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535376*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535379*/            OPC_EmitMergeInputChains1_1,
/*535380*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSLLDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535392*/          /*SwitchType*/ 18, MVT::v8i32,// ->535412
/*535394*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*535396*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535399*/            OPC_EmitMergeInputChains1_1,
/*535400*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSLLDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535412*/          /*SwitchType*/ 18, MVT::v4i32,// ->535432
/*535414*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*535416*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535419*/            OPC_EmitMergeInputChains1_1,
/*535420*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSLLDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535432*/          0, // EndSwitchType
/*535433*/        0, /*End of Scope*/
/*535434*/      /*SwitchOpcode*/ 78|128,1/*206*/, TARGET_VAL(ISD::LOAD),// ->535644
/*535438*/        OPC_RecordMemRef,
/*535439*/        OPC_RecordNode, // #1 = 'ld' chained node
/*535440*/        OPC_CheckFoldableChainNode,
/*535441*/        OPC_RecordChild1, // #2 = $src2
/*535442*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535444*/        OPC_CheckPredicate, 9, // Predicate_load
/*535446*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*535448*/        OPC_CheckType, MVT::v2i64,
/*535450*/        OPC_Scope, 43, /*->535495*/ // 3 children in Scope
/*535452*/          OPC_MoveParent,
/*535453*/          OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->535474
/*535456*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*535458*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535461*/            OPC_EmitMergeInputChains1_1,
/*535462*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSLLQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535474*/          /*SwitchType*/ 18, MVT::v4i64,// ->535494
/*535476*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*535478*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535481*/            OPC_EmitMergeInputChains1_1,
/*535482*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSLLQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535494*/          0, // EndSwitchType
/*535495*/        /*Scope*/ 23, /*->535519*/
/*535496*/          OPC_CheckPredicate, 48, // Predicate_memop
/*535498*/          OPC_MoveParent,
/*535499*/          OPC_CheckType, MVT::v2i64,
/*535501*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*535503*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535506*/          OPC_EmitMergeInputChains1_1,
/*535507*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vshl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PSLLQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535519*/        /*Scope*/ 123, /*->535643*/
/*535520*/          OPC_MoveParent,
/*535521*/          OPC_SwitchType /*6 cases */, 18, MVT::v8i64,// ->535542
/*535524*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535526*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535529*/            OPC_EmitMergeInputChains1_1,
/*535530*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSLLQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535542*/          /*SwitchType*/ 18, MVT::v4i64,// ->535562
/*535544*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*535546*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535549*/            OPC_EmitMergeInputChains1_1,
/*535550*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSLLQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535562*/          /*SwitchType*/ 18, MVT::v2i64,// ->535582
/*535564*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*535566*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535569*/            OPC_EmitMergeInputChains1_1,
/*535570*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSLLQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535582*/          /*SwitchType*/ 18, MVT::v32i16,// ->535602
/*535584*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*535586*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535589*/            OPC_EmitMergeInputChains1_1,
/*535590*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSLLWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535602*/          /*SwitchType*/ 18, MVT::v16i16,// ->535622
/*535604*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*535606*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535609*/            OPC_EmitMergeInputChains1_1,
/*535610*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSLLWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535622*/          /*SwitchType*/ 18, MVT::v8i16,// ->535642
/*535624*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*535626*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535629*/            OPC_EmitMergeInputChains1_1,
/*535630*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSLLWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535642*/          0, // EndSwitchType
/*535643*/        0, /*End of Scope*/
/*535644*/      0, // EndSwitchOpcode
/*535645*/    /*Scope*/ 115|128,1/*243*/, /*->535890*/
/*535647*/      OPC_RecordChild1, // #1 = $src2
/*535648*/      OPC_Scope, 79, /*->535729*/ // 3 children in Scope
/*535650*/        OPC_CheckChild1Type, MVT::v8i16,
/*535652*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->535690
/*535655*/          OPC_Scope, 10, /*->535667*/ // 3 children in Scope
/*535657*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*535659*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWrr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSLLWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*535667*/          /*Scope*/ 10, /*->535678*/
/*535668*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*535670*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLWrr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (PSLLWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*535678*/          /*Scope*/ 10, /*->535689*/
/*535679*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*535681*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128rr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSLLWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*535689*/          0, /*End of Scope*/
/*535690*/        /*SwitchType*/ 24, MVT::v16i16,// ->535716
/*535692*/          OPC_Scope, 10, /*->535704*/ // 2 children in Scope
/*535694*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*535696*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWYrr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSLLWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*535704*/          /*Scope*/ 10, /*->535715*/
/*535705*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*535707*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256rr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSLLWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*535715*/          0, /*End of Scope*/
/*535716*/        /*SwitchType*/ 10, MVT::v32i16,// ->535728
/*535718*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*535720*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZrr), 0,
                        MVT::v32i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSLLWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*535728*/        0, // EndSwitchType
/*535729*/      /*Scope*/ 79, /*->535809*/
/*535730*/        OPC_CheckChild1Type, MVT::v4i32,
/*535732*/        OPC_SwitchType /*3 cases */, 35, MVT::v4i32,// ->535770
/*535735*/          OPC_Scope, 10, /*->535747*/ // 3 children in Scope
/*535737*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*535739*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSLLDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*535747*/          /*Scope*/ 10, /*->535758*/
/*535748*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*535750*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLDrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (PSLLDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*535758*/          /*Scope*/ 10, /*->535769*/
/*535759*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*535761*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128rr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSLLDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*535769*/          0, /*End of Scope*/
/*535770*/        /*SwitchType*/ 24, MVT::v8i32,// ->535796
/*535772*/          OPC_Scope, 10, /*->535784*/ // 2 children in Scope
/*535774*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*535776*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDYrr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSLLDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*535784*/          /*Scope*/ 10, /*->535795*/
/*535785*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*535787*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256rr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSLLDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*535795*/          0, /*End of Scope*/
/*535796*/        /*SwitchType*/ 10, MVT::v16i32,// ->535808
/*535798*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535800*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPSLLDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*535808*/        0, // EndSwitchType
/*535809*/      /*Scope*/ 79, /*->535889*/
/*535810*/        OPC_CheckChild1Type, MVT::v2i64,
/*535812*/        OPC_SwitchType /*3 cases */, 35, MVT::v2i64,// ->535850
/*535815*/          OPC_Scope, 10, /*->535827*/ // 3 children in Scope
/*535817*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*535819*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQrr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSLLQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*535827*/          /*Scope*/ 10, /*->535838*/
/*535828*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*535830*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLQrr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (PSLLQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*535838*/          /*Scope*/ 10, /*->535849*/
/*535839*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*535841*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128rr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSLLQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*535849*/          0, /*End of Scope*/
/*535850*/        /*SwitchType*/ 24, MVT::v4i64,// ->535876
/*535852*/          OPC_Scope, 10, /*->535864*/ // 2 children in Scope
/*535854*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*535856*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQYrr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSLLQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*535864*/          /*Scope*/ 10, /*->535875*/
/*535865*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*535867*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256rr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vshl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSLLQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*535875*/          0, /*End of Scope*/
/*535876*/        /*SwitchType*/ 10, MVT::v8i64,// ->535888
/*535878*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535880*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZrr), 0,
                        MVT::v8i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPSLLQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*535888*/        0, // EndSwitchType
/*535889*/      0, /*End of Scope*/
/*535890*/    0, /*End of Scope*/
/*535891*/  /*SwitchOpcode*/ 60|128,5/*700*/, TARGET_VAL(X86ISD::VSRL),// ->536595
/*535895*/    OPC_RecordChild0, // #0 = $src1
/*535896*/    OPC_Scope, 66|128,3/*450*/, /*->536349*/ // 2 children in Scope
/*535899*/      OPC_MoveChild1,
/*535900*/      OPC_SwitchOpcode /*2 cases */, 105|128,1/*233*/, TARGET_VAL(ISD::BITCAST),// ->536138
/*535905*/        OPC_MoveChild0,
/*535906*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535909*/        OPC_RecordMemRef,
/*535910*/        OPC_RecordNode, // #1 = 'ld' chained node
/*535911*/        OPC_CheckFoldableChainNode,
/*535912*/        OPC_RecordChild1, // #2 = $src2
/*535913*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535915*/        OPC_CheckPredicate, 9, // Predicate_load
/*535917*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*535919*/        OPC_CheckType, MVT::v2i64,
/*535921*/        OPC_Scope, 46, /*->535969*/ // 5 children in Scope
/*535923*/          OPC_MoveParent,
/*535924*/          OPC_CheckType, MVT::v8i16,
/*535926*/          OPC_MoveParent,
/*535927*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->535948
/*535930*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*535932*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535935*/            OPC_EmitMergeInputChains1_1,
/*535936*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535948*/          /*SwitchType*/ 18, MVT::v16i16,// ->535968
/*535950*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*535952*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535955*/            OPC_EmitMergeInputChains1_1,
/*535956*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRLWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535968*/          0, // EndSwitchType
/*535969*/        /*Scope*/ 26, /*->535996*/
/*535970*/          OPC_CheckPredicate, 48, // Predicate_memop
/*535972*/          OPC_MoveParent,
/*535973*/          OPC_CheckType, MVT::v8i16,
/*535975*/          OPC_MoveParent,
/*535976*/          OPC_CheckType, MVT::v8i16,
/*535978*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*535980*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*535983*/          OPC_EmitMergeInputChains1_1,
/*535984*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsrl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSRLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*535996*/        /*Scope*/ 46, /*->536043*/
/*535997*/          OPC_MoveParent,
/*535998*/          OPC_CheckType, MVT::v4i32,
/*536000*/          OPC_MoveParent,
/*536001*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->536022
/*536004*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*536006*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536009*/            OPC_EmitMergeInputChains1_1,
/*536010*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536022*/          /*SwitchType*/ 18, MVT::v8i32,// ->536042
/*536024*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*536026*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536029*/            OPC_EmitMergeInputChains1_1,
/*536030*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRLDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536042*/          0, // EndSwitchType
/*536043*/        /*Scope*/ 26, /*->536070*/
/*536044*/          OPC_CheckPredicate, 48, // Predicate_memop
/*536046*/          OPC_MoveParent,
/*536047*/          OPC_CheckType, MVT::v4i32,
/*536049*/          OPC_MoveParent,
/*536050*/          OPC_CheckType, MVT::v4i32,
/*536052*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*536054*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536057*/          OPC_EmitMergeInputChains1_1,
/*536058*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsrl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSRLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536070*/        /*Scope*/ 66, /*->536137*/
/*536071*/          OPC_MoveParent,
/*536072*/          OPC_CheckType, MVT::v4i32,
/*536074*/          OPC_MoveParent,
/*536075*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->536096
/*536078*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536080*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536083*/            OPC_EmitMergeInputChains1_1,
/*536084*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRLDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536096*/          /*SwitchType*/ 18, MVT::v8i32,// ->536116
/*536098*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536100*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536103*/            OPC_EmitMergeInputChains1_1,
/*536104*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRLDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536116*/          /*SwitchType*/ 18, MVT::v4i32,// ->536136
/*536118*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536120*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536123*/            OPC_EmitMergeInputChains1_1,
/*536124*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRLDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536136*/          0, // EndSwitchType
/*536137*/        0, /*End of Scope*/
/*536138*/      /*SwitchOpcode*/ 78|128,1/*206*/, TARGET_VAL(ISD::LOAD),// ->536348
/*536142*/        OPC_RecordMemRef,
/*536143*/        OPC_RecordNode, // #1 = 'ld' chained node
/*536144*/        OPC_CheckFoldableChainNode,
/*536145*/        OPC_RecordChild1, // #2 = $src2
/*536146*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536148*/        OPC_CheckPredicate, 9, // Predicate_load
/*536150*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*536152*/        OPC_CheckType, MVT::v2i64,
/*536154*/        OPC_Scope, 43, /*->536199*/ // 3 children in Scope
/*536156*/          OPC_MoveParent,
/*536157*/          OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->536178
/*536160*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*536162*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536165*/            OPC_EmitMergeInputChains1_1,
/*536166*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRLQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536178*/          /*SwitchType*/ 18, MVT::v4i64,// ->536198
/*536180*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*536182*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536185*/            OPC_EmitMergeInputChains1_1,
/*536186*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRLQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536198*/          0, // EndSwitchType
/*536199*/        /*Scope*/ 23, /*->536223*/
/*536200*/          OPC_CheckPredicate, 48, // Predicate_memop
/*536202*/          OPC_MoveParent,
/*536203*/          OPC_CheckType, MVT::v2i64,
/*536205*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*536207*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536210*/          OPC_EmitMergeInputChains1_1,
/*536211*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsrl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PSRLQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536223*/        /*Scope*/ 123, /*->536347*/
/*536224*/          OPC_MoveParent,
/*536225*/          OPC_SwitchType /*6 cases */, 18, MVT::v8i64,// ->536246
/*536228*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536230*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536233*/            OPC_EmitMergeInputChains1_1,
/*536234*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRLQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536246*/          /*SwitchType*/ 18, MVT::v4i64,// ->536266
/*536248*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536250*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536253*/            OPC_EmitMergeInputChains1_1,
/*536254*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRLQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536266*/          /*SwitchType*/ 18, MVT::v2i64,// ->536286
/*536268*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536270*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536273*/            OPC_EmitMergeInputChains1_1,
/*536274*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRLQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536286*/          /*SwitchType*/ 18, MVT::v32i16,// ->536306
/*536288*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*536290*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536293*/            OPC_EmitMergeInputChains1_1,
/*536294*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRLWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536306*/          /*SwitchType*/ 18, MVT::v16i16,// ->536326
/*536308*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*536310*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536313*/            OPC_EmitMergeInputChains1_1,
/*536314*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRLWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536326*/          /*SwitchType*/ 18, MVT::v8i16,// ->536346
/*536328*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*536330*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536333*/            OPC_EmitMergeInputChains1_1,
/*536334*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPSRLWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536346*/          0, // EndSwitchType
/*536347*/        0, /*End of Scope*/
/*536348*/      0, // EndSwitchOpcode
/*536349*/    /*Scope*/ 115|128,1/*243*/, /*->536594*/
/*536351*/      OPC_RecordChild1, // #1 = $src2
/*536352*/      OPC_Scope, 79, /*->536433*/ // 3 children in Scope
/*536354*/        OPC_CheckChild1Type, MVT::v8i16,
/*536356*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->536394
/*536359*/          OPC_Scope, 10, /*->536371*/ // 3 children in Scope
/*536361*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*536363*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWrr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRLWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*536371*/          /*Scope*/ 10, /*->536382*/
/*536372*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*536374*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLWrr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (PSRLWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*536382*/          /*Scope*/ 10, /*->536393*/
/*536383*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*536385*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128rr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRLWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*536393*/          0, /*End of Scope*/
/*536394*/        /*SwitchType*/ 24, MVT::v16i16,// ->536420
/*536396*/          OPC_Scope, 10, /*->536408*/ // 2 children in Scope
/*536398*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*536400*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWYrr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRLWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*536408*/          /*Scope*/ 10, /*->536419*/
/*536409*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*536411*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256rr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRLWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*536419*/          0, /*End of Scope*/
/*536420*/        /*SwitchType*/ 10, MVT::v32i16,// ->536432
/*536422*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*536424*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZrr), 0,
                        MVT::v32i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrl:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSRLWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*536432*/        0, // EndSwitchType
/*536433*/      /*Scope*/ 79, /*->536513*/
/*536434*/        OPC_CheckChild1Type, MVT::v4i32,
/*536436*/        OPC_SwitchType /*3 cases */, 35, MVT::v4i32,// ->536474
/*536439*/          OPC_Scope, 10, /*->536451*/ // 3 children in Scope
/*536441*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*536443*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRLDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*536451*/          /*Scope*/ 10, /*->536462*/
/*536452*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*536454*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLDrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (PSRLDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*536462*/          /*Scope*/ 10, /*->536473*/
/*536463*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536465*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128rr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRLDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*536473*/          0, /*End of Scope*/
/*536474*/        /*SwitchType*/ 24, MVT::v8i32,// ->536500
/*536476*/          OPC_Scope, 10, /*->536488*/ // 2 children in Scope
/*536478*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*536480*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDYrr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRLDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*536488*/          /*Scope*/ 10, /*->536499*/
/*536489*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536491*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256rr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRLDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*536499*/          0, /*End of Scope*/
/*536500*/        /*SwitchType*/ 10, MVT::v16i32,// ->536512
/*536502*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536504*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrl:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRLDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*536512*/        0, // EndSwitchType
/*536513*/      /*Scope*/ 79, /*->536593*/
/*536514*/        OPC_CheckChild1Type, MVT::v2i64,
/*536516*/        OPC_SwitchType /*3 cases */, 35, MVT::v2i64,// ->536554
/*536519*/          OPC_Scope, 10, /*->536531*/ // 3 children in Scope
/*536521*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*536523*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQrr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRLQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*536531*/          /*Scope*/ 10, /*->536542*/
/*536532*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*536534*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLQrr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (PSRLQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*536542*/          /*Scope*/ 10, /*->536553*/
/*536543*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536545*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128rr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRLQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*536553*/          0, /*End of Scope*/
/*536554*/        /*SwitchType*/ 24, MVT::v4i64,// ->536580
/*536556*/          OPC_Scope, 10, /*->536568*/ // 2 children in Scope
/*536558*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*536560*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQYrr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRLQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*536568*/          /*Scope*/ 10, /*->536579*/
/*536569*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536571*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256rr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsrl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRLQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*536579*/          0, /*End of Scope*/
/*536580*/        /*SwitchType*/ 10, MVT::v8i64,// ->536592
/*536582*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536584*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZrr), 0,
                        MVT::v8i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPSRLQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*536592*/        0, // EndSwitchType
/*536593*/      0, /*End of Scope*/
/*536594*/    0, /*End of Scope*/
/*536595*/  /*SwitchOpcode*/ 36|128,5/*676*/, TARGET_VAL(X86ISD::VSRA),// ->537275
/*536599*/    OPC_RecordChild0, // #0 = $src1
/*536600*/    OPC_Scope, 123|128,2/*379*/, /*->536982*/ // 2 children in Scope
/*536603*/      OPC_MoveChild1,
/*536604*/      OPC_SwitchOpcode /*2 cases */, 105|128,1/*233*/, TARGET_VAL(ISD::BITCAST),// ->536842
/*536609*/        OPC_MoveChild0,
/*536610*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*536613*/        OPC_RecordMemRef,
/*536614*/        OPC_RecordNode, // #1 = 'ld' chained node
/*536615*/        OPC_CheckFoldableChainNode,
/*536616*/        OPC_RecordChild1, // #2 = $src2
/*536617*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536619*/        OPC_CheckPredicate, 9, // Predicate_load
/*536621*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*536623*/        OPC_CheckType, MVT::v2i64,
/*536625*/        OPC_Scope, 46, /*->536673*/ // 5 children in Scope
/*536627*/          OPC_MoveParent,
/*536628*/          OPC_CheckType, MVT::v8i16,
/*536630*/          OPC_MoveParent,
/*536631*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->536652
/*536634*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*536636*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536639*/            OPC_EmitMergeInputChains1_1,
/*536640*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsra:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRAWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536652*/          /*SwitchType*/ 18, MVT::v16i16,// ->536672
/*536654*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*536656*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536659*/            OPC_EmitMergeInputChains1_1,
/*536660*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsra:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRAWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536672*/          0, // EndSwitchType
/*536673*/        /*Scope*/ 26, /*->536700*/
/*536674*/          OPC_CheckPredicate, 48, // Predicate_memop
/*536676*/          OPC_MoveParent,
/*536677*/          OPC_CheckType, MVT::v8i16,
/*536679*/          OPC_MoveParent,
/*536680*/          OPC_CheckType, MVT::v8i16,
/*536682*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*536684*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536687*/          OPC_EmitMergeInputChains1_1,
/*536688*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRAWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsra:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSRAWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536700*/        /*Scope*/ 46, /*->536747*/
/*536701*/          OPC_MoveParent,
/*536702*/          OPC_CheckType, MVT::v4i32,
/*536704*/          OPC_MoveParent,
/*536705*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->536726
/*536708*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*536710*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536713*/            OPC_EmitMergeInputChains1_1,
/*536714*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsra:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRADrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536726*/          /*SwitchType*/ 18, MVT::v8i32,// ->536746
/*536728*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*536730*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536733*/            OPC_EmitMergeInputChains1_1,
/*536734*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsra:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRADYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536746*/          0, // EndSwitchType
/*536747*/        /*Scope*/ 26, /*->536774*/
/*536748*/          OPC_CheckPredicate, 48, // Predicate_memop
/*536750*/          OPC_MoveParent,
/*536751*/          OPC_CheckType, MVT::v4i32,
/*536753*/          OPC_MoveParent,
/*536754*/          OPC_CheckType, MVT::v4i32,
/*536756*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*536758*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536761*/          OPC_EmitMergeInputChains1_1,
/*536762*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRADrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsra:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSRADrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536774*/        /*Scope*/ 66, /*->536841*/
/*536775*/          OPC_MoveParent,
/*536776*/          OPC_CheckType, MVT::v4i32,
/*536778*/          OPC_MoveParent,
/*536779*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->536800
/*536782*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536784*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536787*/            OPC_EmitMergeInputChains1_1,
/*536788*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRADZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536800*/          /*SwitchType*/ 18, MVT::v8i32,// ->536820
/*536802*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536804*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536807*/            OPC_EmitMergeInputChains1_1,
/*536808*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRADZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536820*/          /*SwitchType*/ 18, MVT::v4i32,// ->536840
/*536822*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536824*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536827*/            OPC_EmitMergeInputChains1_1,
/*536828*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRADZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536840*/          0, // EndSwitchType
/*536841*/        0, /*End of Scope*/
/*536842*/      /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(ISD::LOAD),// ->536981
/*536846*/        OPC_RecordMemRef,
/*536847*/        OPC_RecordNode, // #1 = 'ld' chained node
/*536848*/        OPC_CheckFoldableChainNode,
/*536849*/        OPC_RecordChild1, // #2 = $src2
/*536850*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536852*/        OPC_CheckPredicate, 9, // Predicate_load
/*536854*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*536856*/        OPC_CheckType, MVT::v2i64,
/*536858*/        OPC_MoveParent,
/*536859*/        OPC_SwitchType /*6 cases */, 18, MVT::v8i64,// ->536880
/*536862*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536864*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536867*/          OPC_EmitMergeInputChains1_1,
/*536868*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSRAQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536880*/        /*SwitchType*/ 18, MVT::v4i64,// ->536900
/*536882*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536884*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536887*/          OPC_EmitMergeInputChains1_1,
/*536888*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSRAQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536900*/        /*SwitchType*/ 18, MVT::v2i64,// ->536920
/*536902*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*536904*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536907*/          OPC_EmitMergeInputChains1_1,
/*536908*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSRAQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536920*/        /*SwitchType*/ 18, MVT::v32i16,// ->536940
/*536922*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*536924*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536927*/          OPC_EmitMergeInputChains1_1,
/*536928*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSRAWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536940*/        /*SwitchType*/ 18, MVT::v16i16,// ->536960
/*536942*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*536944*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536947*/          OPC_EmitMergeInputChains1_1,
/*536948*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSRAWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536960*/        /*SwitchType*/ 18, MVT::v8i16,// ->536980
/*536962*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*536964*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*536967*/          OPC_EmitMergeInputChains1_1,
/*536968*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSRAWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536980*/        0, // EndSwitchType
/*536981*/      0, // EndSwitchOpcode
/*536982*/    /*Scope*/ 34|128,2/*290*/, /*->537274*/
/*536984*/      OPC_RecordChild1, // #1 = $src2
/*536985*/      OPC_Scope, 79, /*->537066*/ // 3 children in Scope
/*536987*/        OPC_CheckChild1Type, MVT::v8i16,
/*536989*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->537027
/*536992*/          OPC_Scope, 10, /*->537004*/ // 3 children in Scope
/*536994*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*536996*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWrr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRAWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*537004*/          /*Scope*/ 10, /*->537015*/
/*537005*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*537007*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSRAWrr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (PSRAWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*537015*/          /*Scope*/ 10, /*->537026*/
/*537016*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*537018*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128rr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRAWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*537026*/          0, /*End of Scope*/
/*537027*/        /*SwitchType*/ 24, MVT::v16i16,// ->537053
/*537029*/          OPC_Scope, 10, /*->537041*/ // 2 children in Scope
/*537031*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*537033*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWYrr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRAWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*537041*/          /*Scope*/ 10, /*->537052*/
/*537042*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*537044*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256rr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPSRAWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*537052*/          0, /*End of Scope*/
/*537053*/        /*SwitchType*/ 10, MVT::v32i16,// ->537065
/*537055*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*537057*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZrr), 0,
                        MVT::v32i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsra:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSRAWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*537065*/        0, // EndSwitchType
/*537066*/      /*Scope*/ 79, /*->537146*/
/*537067*/        OPC_CheckChild1Type, MVT::v4i32,
/*537069*/        OPC_SwitchType /*3 cases */, 35, MVT::v4i32,// ->537107
/*537072*/          OPC_Scope, 10, /*->537084*/ // 3 children in Scope
/*537074*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*537076*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRADrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*537084*/          /*Scope*/ 10, /*->537095*/
/*537085*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*537087*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PSRADrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (PSRADrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*537095*/          /*Scope*/ 10, /*->537106*/
/*537096*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*537098*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128rr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRADZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*537106*/          0, /*End of Scope*/
/*537107*/        /*SwitchType*/ 24, MVT::v8i32,// ->537133
/*537109*/          OPC_Scope, 10, /*->537121*/ // 2 children in Scope
/*537111*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*537113*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADYrr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRADYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*537121*/          /*Scope*/ 10, /*->537132*/
/*537122*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*537124*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256rr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPSRADZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*537132*/          0, /*End of Scope*/
/*537133*/        /*SwitchType*/ 10, MVT::v16i32,// ->537145
/*537135*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537137*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsra:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRADZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*537145*/        0, // EndSwitchType
/*537146*/      /*Scope*/ 126, /*->537273*/
/*537147*/        OPC_CheckChild1Type, MVT::v2i64,
/*537149*/        OPC_SwitchType /*3 cases */, 10, MVT::v8i64,// ->537162
/*537152*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537154*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZrr), 0,
                        MVT::v8i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsra:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPSRAQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*537162*/        /*SwitchType*/ 53, MVT::v4i64,// ->537217
/*537164*/          OPC_Scope, 10, /*->537176*/ // 2 children in Scope
/*537166*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*537168*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256rr), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRAQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*537176*/          /*Scope*/ 39, /*->537216*/
/*537177*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*537179*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*537185*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*537188*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*537197*/            OPC_EmitNode1, TARGET_VAL(X86::VPSRAQZrr), 0,
                          MVT::v8i64, 2/*#Ops*/, 4, 1,  // Results = #5
/*537205*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*537208*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i64, 2/*#Ops*/, 5, 6, 
                      // Src: (X86vsra:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPSRAQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), VR128X:{ *:[v2i64] }:$src2), sub_ymm:{ *:[i32] })
/*537216*/          0, /*End of Scope*/
/*537217*/        /*SwitchType*/ 53, MVT::v2i64,// ->537272
/*537219*/          OPC_Scope, 10, /*->537231*/ // 2 children in Scope
/*537221*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*537223*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128rr), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86vsra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (VPSRAQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*537231*/          /*Scope*/ 39, /*->537271*/
/*537232*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*537234*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*537240*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*537243*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*537252*/            OPC_EmitNode1, TARGET_VAL(X86::VPSRAQZrr), 0,
                          MVT::v8i64, 2/*#Ops*/, 4, 1,  // Results = #5
/*537260*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*537263*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 5, 6, 
                      // Src: (X86vsra:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                      // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPSRAQZrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), VR128X:{ *:[v2i64] }:$src2), sub_xmm:{ *:[i32] })
/*537271*/          0, /*End of Scope*/
/*537272*/        0, // EndSwitchType
/*537273*/      0, /*End of Scope*/
/*537274*/    0, /*End of Scope*/
/*537275*/  /*SwitchOpcode*/ 47|128,6/*815*/, TARGET_VAL(X86ISD::PCMPEQ),// ->538094
/*537279*/    OPC_Scope, 108|128,1/*236*/, /*->537518*/ // 5 children in Scope
/*537282*/      OPC_RecordChild0, // #0 = $src1
/*537283*/      OPC_MoveChild1,
/*537284*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*537287*/      OPC_MoveChild0,
/*537288*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*537291*/      OPC_RecordMemRef,
/*537292*/      OPC_RecordNode, // #1 = 'ld' chained node
/*537293*/      OPC_CheckFoldableChainNode,
/*537294*/      OPC_RecordChild1, // #2 = $src2
/*537295*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*537297*/      OPC_CheckPredicate, 9, // Predicate_load
/*537299*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*537301*/      OPC_SwitchType /*2 cases */, 18|128,1/*146*/, MVT::v2i64,// ->537451
/*537305*/        OPC_Scope, 22, /*->537329*/ // 6 children in Scope
/*537307*/          OPC_MoveParent,
/*537308*/          OPC_MoveParent,
/*537309*/          OPC_CheckType, MVT::v16i8,
/*537311*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*537313*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537316*/          OPC_EmitMergeInputChains1_1,
/*537317*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPCMPEQBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537329*/        /*Scope*/ 24, /*->537354*/
/*537330*/          OPC_CheckPredicate, 48, // Predicate_memop
/*537332*/          OPC_MoveParent,
/*537333*/          OPC_MoveParent,
/*537334*/          OPC_CheckType, MVT::v16i8,
/*537336*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*537338*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537341*/          OPC_EmitMergeInputChains1_1,
/*537342*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PCMPEQBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537354*/        /*Scope*/ 22, /*->537377*/
/*537355*/          OPC_MoveParent,
/*537356*/          OPC_MoveParent,
/*537357*/          OPC_CheckType, MVT::v8i16,
/*537359*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*537361*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537364*/          OPC_EmitMergeInputChains1_1,
/*537365*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPCMPEQWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537377*/        /*Scope*/ 24, /*->537402*/
/*537378*/          OPC_CheckPredicate, 48, // Predicate_memop
/*537380*/          OPC_MoveParent,
/*537381*/          OPC_MoveParent,
/*537382*/          OPC_CheckType, MVT::v8i16,
/*537384*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*537386*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537389*/          OPC_EmitMergeInputChains1_1,
/*537390*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PCMPEQWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537402*/        /*Scope*/ 22, /*->537425*/
/*537403*/          OPC_MoveParent,
/*537404*/          OPC_MoveParent,
/*537405*/          OPC_CheckType, MVT::v4i32,
/*537407*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*537409*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537412*/          OPC_EmitMergeInputChains1_1,
/*537413*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPCMPEQDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537425*/        /*Scope*/ 24, /*->537450*/
/*537426*/          OPC_CheckPredicate, 48, // Predicate_memop
/*537428*/          OPC_MoveParent,
/*537429*/          OPC_MoveParent,
/*537430*/          OPC_CheckType, MVT::v4i32,
/*537432*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*537434*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537437*/          OPC_EmitMergeInputChains1_1,
/*537438*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PCMPEQDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537450*/        0, /*End of Scope*/
/*537451*/      /*SwitchType*/ 64, MVT::v4i64,// ->537517
/*537453*/        OPC_MoveParent,
/*537454*/        OPC_MoveParent,
/*537455*/        OPC_SwitchType /*3 cases */, 18, MVT::v32i8,// ->537476
/*537458*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*537460*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537463*/          OPC_EmitMergeInputChains1_1,
/*537464*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPCMPEQBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537476*/        /*SwitchType*/ 18, MVT::v16i16,// ->537496
/*537478*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*537480*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537483*/          OPC_EmitMergeInputChains1_1,
/*537484*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPCMPEQWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537496*/        /*SwitchType*/ 18, MVT::v8i32,// ->537516
/*537498*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*537500*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537503*/          OPC_EmitMergeInputChains1_1,
/*537504*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPCMPEQDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537516*/        0, // EndSwitchType
/*537517*/      0, // EndSwitchType
/*537518*/    /*Scope*/ 114|128,1/*242*/, /*->537762*/
/*537520*/      OPC_MoveChild0,
/*537521*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*537524*/      OPC_MoveChild0,
/*537525*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*537528*/      OPC_RecordMemRef,
/*537529*/      OPC_RecordNode, // #0 = 'ld' chained node
/*537530*/      OPC_CheckFoldableChainNode,
/*537531*/      OPC_RecordChild1, // #1 = $src2
/*537532*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*537534*/      OPC_CheckPredicate, 9, // Predicate_load
/*537536*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*537538*/      OPC_SwitchType /*2 cases */, 24|128,1/*152*/, MVT::v2i64,// ->537694
/*537542*/        OPC_Scope, 23, /*->537567*/ // 6 children in Scope
/*537544*/          OPC_MoveParent,
/*537545*/          OPC_MoveParent,
/*537546*/          OPC_RecordChild1, // #2 = $src1
/*537547*/          OPC_CheckType, MVT::v16i8,
/*537549*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*537551*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537554*/          OPC_EmitMergeInputChains1_0,
/*537555*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                    // Dst: (VPCMPEQBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537567*/        /*Scope*/ 25, /*->537593*/
/*537568*/          OPC_CheckPredicate, 48, // Predicate_memop
/*537570*/          OPC_MoveParent,
/*537571*/          OPC_MoveParent,
/*537572*/          OPC_RecordChild1, // #2 = $src1
/*537573*/          OPC_CheckType, MVT::v16i8,
/*537575*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*537577*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537580*/          OPC_EmitMergeInputChains1_0,
/*537581*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v16i8] }:$src1) - Complexity = 28
                    // Dst: (PCMPEQBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537593*/        /*Scope*/ 23, /*->537617*/
/*537594*/          OPC_MoveParent,
/*537595*/          OPC_MoveParent,
/*537596*/          OPC_RecordChild1, // #2 = $src1
/*537597*/          OPC_CheckType, MVT::v8i16,
/*537599*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*537601*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537604*/          OPC_EmitMergeInputChains1_0,
/*537605*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPCMPEQWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537617*/        /*Scope*/ 25, /*->537643*/
/*537618*/          OPC_CheckPredicate, 48, // Predicate_memop
/*537620*/          OPC_MoveParent,
/*537621*/          OPC_MoveParent,
/*537622*/          OPC_RecordChild1, // #2 = $src1
/*537623*/          OPC_CheckType, MVT::v8i16,
/*537625*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*537627*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537630*/          OPC_EmitMergeInputChains1_0,
/*537631*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (PCMPEQWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537643*/        /*Scope*/ 23, /*->537667*/
/*537644*/          OPC_MoveParent,
/*537645*/          OPC_MoveParent,
/*537646*/          OPC_RecordChild1, // #2 = $src1
/*537647*/          OPC_CheckType, MVT::v4i32,
/*537649*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*537651*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537654*/          OPC_EmitMergeInputChains1_0,
/*537655*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                    // Dst: (VPCMPEQDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537667*/        /*Scope*/ 25, /*->537693*/
/*537668*/          OPC_CheckPredicate, 48, // Predicate_memop
/*537670*/          OPC_MoveParent,
/*537671*/          OPC_MoveParent,
/*537672*/          OPC_RecordChild1, // #2 = $src1
/*537673*/          OPC_CheckType, MVT::v4i32,
/*537675*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*537677*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537680*/          OPC_EmitMergeInputChains1_0,
/*537681*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v4i32] }:$src1) - Complexity = 28
                    // Dst: (PCMPEQDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537693*/        0, /*End of Scope*/
/*537694*/      /*SwitchType*/ 65, MVT::v4i64,// ->537761
/*537696*/        OPC_MoveParent,
/*537697*/        OPC_MoveParent,
/*537698*/        OPC_RecordChild1, // #2 = $src1
/*537699*/        OPC_SwitchType /*3 cases */, 18, MVT::v32i8,// ->537720
/*537702*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*537704*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537707*/          OPC_EmitMergeInputChains1_0,
/*537708*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v32i8] }:$src1) - Complexity = 28
                    // Dst: (VPCMPEQBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537720*/        /*SwitchType*/ 18, MVT::v16i16,// ->537740
/*537722*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*537724*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537727*/          OPC_EmitMergeInputChains1_0,
/*537728*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                    // Dst: (VPCMPEQWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537740*/        /*SwitchType*/ 18, MVT::v8i32,// ->537760
/*537742*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*537744*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537747*/          OPC_EmitMergeInputChains1_0,
/*537748*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v8i32] }:$src1) - Complexity = 28
                    // Dst: (VPCMPEQDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537760*/        0, // EndSwitchType
/*537761*/      0, // EndSwitchType
/*537762*/    /*Scope*/ 85, /*->537848*/
/*537763*/      OPC_RecordChild0, // #0 = $src1
/*537764*/      OPC_MoveChild1,
/*537765*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*537768*/      OPC_RecordMemRef,
/*537769*/      OPC_RecordNode, // #1 = 'ld' chained node
/*537770*/      OPC_CheckFoldableChainNode,
/*537771*/      OPC_RecordChild1, // #2 = $src2
/*537772*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*537774*/      OPC_CheckPredicate, 9, // Predicate_load
/*537776*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*537778*/      OPC_Scope, 43, /*->537823*/ // 2 children in Scope
/*537780*/        OPC_MoveParent,
/*537781*/        OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->537802
/*537784*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*537786*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537789*/          OPC_EmitMergeInputChains1_1,
/*537790*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPCMPEQQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537802*/        /*SwitchType*/ 18, MVT::v4i64,// ->537822
/*537804*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*537806*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537809*/          OPC_EmitMergeInputChains1_1,
/*537810*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPCMPEQQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537822*/        0, // EndSwitchType
/*537823*/      /*Scope*/ 23, /*->537847*/
/*537824*/        OPC_CheckPredicate, 48, // Predicate_memop
/*537826*/        OPC_MoveParent,
/*537827*/        OPC_CheckType, MVT::v2i64,
/*537829*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*537831*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537834*/        OPC_EmitMergeInputChains1_1,
/*537835*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86pcmpeq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PCMPEQQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537847*/      0, /*End of Scope*/
/*537848*/    /*Scope*/ 86, /*->537935*/
/*537849*/      OPC_MoveChild0,
/*537850*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*537853*/      OPC_RecordMemRef,
/*537854*/      OPC_RecordNode, // #0 = 'ld' chained node
/*537855*/      OPC_CheckFoldableChainNode,
/*537856*/      OPC_RecordChild1, // #1 = $src2
/*537857*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*537859*/      OPC_CheckPredicate, 9, // Predicate_load
/*537861*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*537863*/      OPC_Scope, 44, /*->537909*/ // 2 children in Scope
/*537865*/        OPC_MoveParent,
/*537866*/        OPC_RecordChild1, // #2 = $src1
/*537867*/        OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->537888
/*537870*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*537872*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537875*/          OPC_EmitMergeInputChains1_0,
/*537876*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPCMPEQQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537888*/        /*SwitchType*/ 18, MVT::v4i64,// ->537908
/*537890*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*537892*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537895*/          OPC_EmitMergeInputChains1_0,
/*537896*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPCMPEQQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537908*/        0, // EndSwitchType
/*537909*/      /*Scope*/ 24, /*->537934*/
/*537910*/        OPC_CheckPredicate, 48, // Predicate_memop
/*537912*/        OPC_MoveParent,
/*537913*/        OPC_RecordChild1, // #2 = $src1
/*537914*/        OPC_CheckType, MVT::v2i64,
/*537916*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*537918*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*537921*/        OPC_EmitMergeInputChains1_0,
/*537922*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pcmpeq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (PCMPEQQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537934*/      0, /*End of Scope*/
/*537935*/    /*Scope*/ 28|128,1/*156*/, /*->538093*/
/*537937*/      OPC_RecordChild0, // #0 = $src1
/*537938*/      OPC_RecordChild1, // #1 = $src2
/*537939*/      OPC_SwitchType /*8 cases */, 24, MVT::v16i8,// ->537966
/*537942*/        OPC_Scope, 10, /*->537954*/ // 2 children in Scope
/*537944*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*537946*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpeq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPCMPEQBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*537954*/        /*Scope*/ 10, /*->537965*/
/*537955*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*537957*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpeq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PCMPEQBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*537965*/        0, /*End of Scope*/
/*537966*/      /*SwitchType*/ 10, MVT::v32i8,// ->537978
/*537968*/        OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*537970*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBYrr), 0,
                      MVT::v32i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86pcmpeq:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                  // Dst: (VPCMPEQBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*537978*/      /*SwitchType*/ 24, MVT::v8i16,// ->538004
/*537980*/        OPC_Scope, 10, /*->537992*/ // 2 children in Scope
/*537982*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*537984*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpeq:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPCMPEQWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*537992*/        /*Scope*/ 10, /*->538003*/
/*537993*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*537995*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpeq:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PCMPEQWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*538003*/        0, /*End of Scope*/
/*538004*/      /*SwitchType*/ 10, MVT::v16i16,// ->538016
/*538006*/        OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*538008*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWYrr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86pcmpeq:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                  // Dst: (VPCMPEQWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*538016*/      /*SwitchType*/ 24, MVT::v4i32,// ->538042
/*538018*/        OPC_Scope, 10, /*->538030*/ // 2 children in Scope
/*538020*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*538022*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpeq:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPCMPEQDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*538030*/        /*Scope*/ 10, /*->538041*/
/*538031*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*538033*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpeq:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PCMPEQDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*538041*/        0, /*End of Scope*/
/*538042*/      /*SwitchType*/ 10, MVT::v8i32,// ->538054
/*538044*/        OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*538046*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDYrr), 0,
                      MVT::v8i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86pcmpeq:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                  // Dst: (VPCMPEQDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*538054*/      /*SwitchType*/ 24, MVT::v2i64,// ->538080
/*538056*/        OPC_Scope, 10, /*->538068*/ // 2 children in Scope
/*538058*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*538060*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpeq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPCMPEQQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*538068*/        /*Scope*/ 10, /*->538079*/
/*538069*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*538071*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpeq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (PCMPEQQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*538079*/        0, /*End of Scope*/
/*538080*/      /*SwitchType*/ 10, MVT::v4i64,// ->538092
/*538082*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*538084*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQQYrr), 0,
                      MVT::v4i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86pcmpeq:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                  // Dst: (VPCMPEQQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*538092*/      0, // EndSwitchType
/*538093*/    0, /*End of Scope*/
/*538094*/  /*SwitchOpcode*/ 99|128,3/*483*/, TARGET_VAL(X86ISD::PCMPGT),// ->538581
/*538098*/    OPC_RecordChild0, // #0 = $src1
/*538099*/    OPC_Scope, 65|128,2/*321*/, /*->538423*/ // 2 children in Scope
/*538102*/      OPC_MoveChild1,
/*538103*/      OPC_SwitchOpcode /*2 cases */, 103|128,1/*231*/, TARGET_VAL(ISD::BITCAST),// ->538339
/*538108*/        OPC_MoveChild0,
/*538109*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*538112*/        OPC_RecordMemRef,
/*538113*/        OPC_RecordNode, // #1 = 'ld' chained node
/*538114*/        OPC_CheckFoldableChainNode,
/*538115*/        OPC_RecordChild1, // #2 = $src2
/*538116*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*538118*/        OPC_CheckPredicate, 9, // Predicate_load
/*538120*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*538122*/        OPC_SwitchType /*2 cases */, 18|128,1/*146*/, MVT::v2i64,// ->538272
/*538126*/          OPC_Scope, 22, /*->538150*/ // 6 children in Scope
/*538128*/            OPC_MoveParent,
/*538129*/            OPC_MoveParent,
/*538130*/            OPC_CheckType, MVT::v16i8,
/*538132*/            OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*538134*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538137*/            OPC_EmitMergeInputChains1_1,
/*538138*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pcmpgt:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPCMPGTBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538150*/          /*Scope*/ 24, /*->538175*/
/*538151*/            OPC_CheckPredicate, 48, // Predicate_memop
/*538153*/            OPC_MoveParent,
/*538154*/            OPC_MoveParent,
/*538155*/            OPC_CheckType, MVT::v16i8,
/*538157*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*538159*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538162*/            OPC_EmitMergeInputChains1_1,
/*538163*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPGTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pcmpgt:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PCMPGTBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538175*/          /*Scope*/ 22, /*->538198*/
/*538176*/            OPC_MoveParent,
/*538177*/            OPC_MoveParent,
/*538178*/            OPC_CheckType, MVT::v8i16,
/*538180*/            OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*538182*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538185*/            OPC_EmitMergeInputChains1_1,
/*538186*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pcmpgt:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPCMPGTWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538198*/          /*Scope*/ 24, /*->538223*/
/*538199*/            OPC_CheckPredicate, 48, // Predicate_memop
/*538201*/            OPC_MoveParent,
/*538202*/            OPC_MoveParent,
/*538203*/            OPC_CheckType, MVT::v8i16,
/*538205*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*538207*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538210*/            OPC_EmitMergeInputChains1_1,
/*538211*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPGTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pcmpgt:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PCMPGTWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538223*/          /*Scope*/ 22, /*->538246*/
/*538224*/            OPC_MoveParent,
/*538225*/            OPC_MoveParent,
/*538226*/            OPC_CheckType, MVT::v4i32,
/*538228*/            OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*538230*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538233*/            OPC_EmitMergeInputChains1_1,
/*538234*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pcmpgt:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPCMPGTDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538246*/          /*Scope*/ 24, /*->538271*/
/*538247*/            OPC_CheckPredicate, 48, // Predicate_memop
/*538249*/            OPC_MoveParent,
/*538250*/            OPC_MoveParent,
/*538251*/            OPC_CheckType, MVT::v4i32,
/*538253*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*538255*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538258*/            OPC_EmitMergeInputChains1_1,
/*538259*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPGTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pcmpgt:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PCMPGTDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538271*/          0, /*End of Scope*/
/*538272*/        /*SwitchType*/ 64, MVT::v4i64,// ->538338
/*538274*/          OPC_MoveParent,
/*538275*/          OPC_MoveParent,
/*538276*/          OPC_SwitchType /*3 cases */, 18, MVT::v32i8,// ->538297
/*538279*/            OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*538281*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538284*/            OPC_EmitMergeInputChains1_1,
/*538285*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pcmpgt:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPCMPGTBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538297*/          /*SwitchType*/ 18, MVT::v16i16,// ->538317
/*538299*/            OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*538301*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538304*/            OPC_EmitMergeInputChains1_1,
/*538305*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pcmpgt:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPCMPGTWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538317*/          /*SwitchType*/ 18, MVT::v8i32,// ->538337
/*538319*/            OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*538321*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538324*/            OPC_EmitMergeInputChains1_1,
/*538325*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pcmpgt:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPCMPGTDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538337*/          0, // EndSwitchType
/*538338*/        0, // EndSwitchType
/*538339*/      /*SwitchOpcode*/ 80, TARGET_VAL(ISD::LOAD),// ->538422
/*538342*/        OPC_RecordMemRef,
/*538343*/        OPC_RecordNode, // #1 = 'ld' chained node
/*538344*/        OPC_CheckFoldableChainNode,
/*538345*/        OPC_RecordChild1, // #2 = $src2
/*538346*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*538348*/        OPC_CheckPredicate, 9, // Predicate_load
/*538350*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*538352*/        OPC_Scope, 43, /*->538397*/ // 2 children in Scope
/*538354*/          OPC_MoveParent,
/*538355*/          OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->538376
/*538358*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*538360*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538363*/            OPC_EmitMergeInputChains1_1,
/*538364*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pcmpgt:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPCMPGTQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538376*/          /*SwitchType*/ 18, MVT::v4i64,// ->538396
/*538378*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*538380*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538383*/            OPC_EmitMergeInputChains1_1,
/*538384*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pcmpgt:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPCMPGTQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538396*/          0, // EndSwitchType
/*538397*/        /*Scope*/ 23, /*->538421*/
/*538398*/          OPC_CheckPredicate, 48, // Predicate_memop
/*538400*/          OPC_MoveParent,
/*538401*/          OPC_CheckType, MVT::v2i64,
/*538403*/          OPC_CheckPatternPredicate, 186, // (Subtarget->hasSSE42() && !Subtarget->hasAVX())
/*538405*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538408*/          OPC_EmitMergeInputChains1_1,
/*538409*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPGTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpgt:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PCMPGTQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538421*/        0, /*End of Scope*/
/*538422*/      0, // EndSwitchOpcode
/*538423*/    /*Scope*/ 27|128,1/*155*/, /*->538580*/
/*538425*/      OPC_RecordChild1, // #1 = $src2
/*538426*/      OPC_SwitchType /*8 cases */, 24, MVT::v16i8,// ->538453
/*538429*/        OPC_Scope, 10, /*->538441*/ // 2 children in Scope
/*538431*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*538433*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpgt:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPCMPGTBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*538441*/        /*Scope*/ 10, /*->538452*/
/*538442*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*538444*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPGTBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpgt:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PCMPGTBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*538452*/        0, /*End of Scope*/
/*538453*/      /*SwitchType*/ 10, MVT::v32i8,// ->538465
/*538455*/        OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*538457*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTBYrr), 0,
                      MVT::v32i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86pcmpgt:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                  // Dst: (VPCMPGTBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*538465*/      /*SwitchType*/ 24, MVT::v8i16,// ->538491
/*538467*/        OPC_Scope, 10, /*->538479*/ // 2 children in Scope
/*538469*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*538471*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpgt:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPCMPGTWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*538479*/        /*Scope*/ 10, /*->538490*/
/*538480*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*538482*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPGTWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpgt:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PCMPGTWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*538490*/        0, /*End of Scope*/
/*538491*/      /*SwitchType*/ 10, MVT::v16i16,// ->538503
/*538493*/        OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*538495*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTWYrr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86pcmpgt:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                  // Dst: (VPCMPGTWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*538503*/      /*SwitchType*/ 24, MVT::v4i32,// ->538529
/*538505*/        OPC_Scope, 10, /*->538517*/ // 2 children in Scope
/*538507*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasAVX()) && (true)
/*538509*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpgt:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPCMPGTDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*538517*/        /*Scope*/ 10, /*->538528*/
/*538518*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*538520*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPGTDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpgt:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PCMPGTDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*538528*/        0, /*End of Scope*/
/*538529*/      /*SwitchType*/ 10, MVT::v8i32,// ->538541
/*538531*/        OPC_CheckPatternPredicate, 185, // (Subtarget->hasAVX2()) && (true)
/*538533*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTDYrr), 0,
                      MVT::v8i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86pcmpgt:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                  // Dst: (VPCMPGTDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*538541*/      /*SwitchType*/ 24, MVT::v2i64,// ->538567
/*538543*/        OPC_Scope, 10, /*->538555*/ // 2 children in Scope
/*538545*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*538547*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpgt:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPCMPGTQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*538555*/        /*Scope*/ 10, /*->538566*/
/*538556*/          OPC_CheckPatternPredicate, 186, // (Subtarget->hasSSE42() && !Subtarget->hasAVX())
/*538558*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPGTQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pcmpgt:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (PCMPGTQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*538566*/        0, /*End of Scope*/
/*538567*/      /*SwitchType*/ 10, MVT::v4i64,// ->538579
/*538569*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*538571*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPGTQYrr), 0,
                      MVT::v4i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86pcmpgt:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                  // Dst: (VPCMPGTQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*538579*/      0, // EndSwitchType
/*538580*/    0, /*End of Scope*/
/*538581*/  /*SwitchOpcode*/ 86|128,5/*726*/, TARGET_VAL(X86ISD::PACKSS),// ->539311
/*538585*/    OPC_RecordChild0, // #0 = $src1
/*538586*/    OPC_Scope, 9|128,1/*137*/, /*->538726*/ // 6 children in Scope
/*538589*/      OPC_CheckChild0Type, MVT::v8i16,
/*538591*/      OPC_Scope, 93, /*->538686*/ // 2 children in Scope
/*538593*/        OPC_MoveChild1,
/*538594*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*538597*/        OPC_MoveChild0,
/*538598*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*538601*/        OPC_RecordMemRef,
/*538602*/        OPC_RecordNode, // #1 = 'ld' chained node
/*538603*/        OPC_CheckFoldableChainNode,
/*538604*/        OPC_RecordChild1, // #2 = $src2
/*538605*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*538607*/        OPC_CheckPredicate, 9, // Predicate_load
/*538609*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*538611*/        OPC_CheckType, MVT::v2i64,
/*538613*/        OPC_Scope, 22, /*->538637*/ // 3 children in Scope
/*538615*/          OPC_MoveParent,
/*538616*/          OPC_MoveParent,
/*538617*/          OPC_CheckType, MVT::v16i8,
/*538619*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*538621*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538624*/          OPC_EmitMergeInputChains1_1,
/*538625*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packss:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPACKSSWBrm:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538637*/        /*Scope*/ 24, /*->538662*/
/*538638*/          OPC_CheckPredicate, 48, // Predicate_memop
/*538640*/          OPC_MoveParent,
/*538641*/          OPC_MoveParent,
/*538642*/          OPC_CheckType, MVT::v16i8,
/*538644*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*538646*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538649*/          OPC_EmitMergeInputChains1_1,
/*538650*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PACKSSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packss:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PACKSSWBrm:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538662*/        /*Scope*/ 22, /*->538685*/
/*538663*/          OPC_MoveParent,
/*538664*/          OPC_MoveParent,
/*538665*/          OPC_CheckType, MVT::v16i8,
/*538667*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*538669*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538672*/          OPC_EmitMergeInputChains1_1,
/*538673*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packss:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPACKSSWBZ128rm:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538685*/        0, /*End of Scope*/
/*538686*/      /*Scope*/ 38, /*->538725*/
/*538687*/        OPC_RecordChild1, // #1 = $src2
/*538688*/        OPC_CheckType, MVT::v16i8,
/*538690*/        OPC_Scope, 10, /*->538702*/ // 3 children in Scope
/*538692*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*538694*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packss:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPACKSSWBrr:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*538702*/        /*Scope*/ 10, /*->538713*/
/*538703*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*538705*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PACKSSWBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packss:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PACKSSWBrr:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*538713*/        /*Scope*/ 10, /*->538724*/
/*538714*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*538716*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packss:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPACKSSWBZ128rr:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*538724*/        0, /*End of Scope*/
/*538725*/      0, /*End of Scope*/
/*538726*/    /*Scope*/ 51|128,1/*179*/, /*->538907*/
/*538728*/      OPC_CheckChild0Type, MVT::v4i32,
/*538730*/      OPC_Scope, 6|128,1/*134*/, /*->538867*/ // 2 children in Scope
/*538733*/        OPC_MoveChild1,
/*538734*/        OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::BITCAST),// ->538827
/*538738*/          OPC_MoveChild0,
/*538739*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*538742*/          OPC_RecordMemRef,
/*538743*/          OPC_RecordNode, // #1 = 'ld' chained node
/*538744*/          OPC_CheckFoldableChainNode,
/*538745*/          OPC_RecordChild1, // #2 = $src2
/*538746*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*538748*/          OPC_CheckPredicate, 9, // Predicate_load
/*538750*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*538752*/          OPC_CheckType, MVT::v2i64,
/*538754*/          OPC_Scope, 22, /*->538778*/ // 3 children in Scope
/*538756*/            OPC_MoveParent,
/*538757*/            OPC_MoveParent,
/*538758*/            OPC_CheckType, MVT::v8i16,
/*538760*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*538762*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538765*/            OPC_EmitMergeInputChains1_1,
/*538766*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Packss:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPACKSSDWrm:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538778*/          /*Scope*/ 24, /*->538803*/
/*538779*/            OPC_CheckPredicate, 48, // Predicate_memop
/*538781*/            OPC_MoveParent,
/*538782*/            OPC_MoveParent,
/*538783*/            OPC_CheckType, MVT::v8i16,
/*538785*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*538787*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538790*/            OPC_EmitMergeInputChains1_1,
/*538791*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PACKSSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Packss:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PACKSSDWrm:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538803*/          /*Scope*/ 22, /*->538826*/
/*538804*/            OPC_MoveParent,
/*538805*/            OPC_MoveParent,
/*538806*/            OPC_CheckType, MVT::v8i16,
/*538808*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*538810*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538813*/            OPC_EmitMergeInputChains1_1,
/*538814*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Packss:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPACKSSDWZ128rm:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538826*/          0, /*End of Scope*/
/*538827*/        /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST),// ->538866
/*538830*/          OPC_MoveChild0,
/*538831*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*538834*/          OPC_RecordMemRef,
/*538835*/          OPC_RecordNode, // #1 = 'ld' chained node
/*538836*/          OPC_CheckFoldableChainNode,
/*538837*/          OPC_RecordChild1, // #2 = $src2
/*538838*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*538840*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*538842*/          OPC_CheckType, MVT::i32,
/*538844*/          OPC_MoveParent,
/*538845*/          OPC_MoveParent,
/*538846*/          OPC_CheckType, MVT::v8i16,
/*538848*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*538850*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538853*/          OPC_EmitMergeInputChains1_1,
/*538854*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packss:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPACKSSDWZ128rmb:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538866*/        0, // EndSwitchOpcode
/*538867*/      /*Scope*/ 38, /*->538906*/
/*538868*/        OPC_RecordChild1, // #1 = $src2
/*538869*/        OPC_CheckType, MVT::v8i16,
/*538871*/        OPC_Scope, 10, /*->538883*/ // 3 children in Scope
/*538873*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*538875*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packss:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPACKSSDWrr:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*538883*/        /*Scope*/ 10, /*->538894*/
/*538884*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*538886*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PACKSSDWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packss:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PACKSSDWrr:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*538894*/        /*Scope*/ 10, /*->538905*/
/*538895*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*538897*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packss:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPACKSSDWZ128rr:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*538905*/        0, /*End of Scope*/
/*538906*/      0, /*End of Scope*/
/*538907*/    /*Scope*/ 97, /*->539005*/
/*538908*/      OPC_CheckChild0Type, MVT::v16i16,
/*538910*/      OPC_Scope, 64, /*->538976*/ // 2 children in Scope
/*538912*/        OPC_MoveChild1,
/*538913*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*538916*/        OPC_MoveChild0,
/*538917*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*538920*/        OPC_RecordMemRef,
/*538921*/        OPC_RecordNode, // #1 = 'ld' chained node
/*538922*/        OPC_CheckFoldableChainNode,
/*538923*/        OPC_RecordChild1, // #2 = $src2
/*538924*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*538926*/        OPC_CheckPredicate, 9, // Predicate_load
/*538928*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*538930*/        OPC_CheckType, MVT::v4i64,
/*538932*/        OPC_MoveParent,
/*538933*/        OPC_MoveParent,
/*538934*/        OPC_CheckType, MVT::v32i8,
/*538936*/        OPC_Scope, 18, /*->538956*/ // 2 children in Scope
/*538938*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*538940*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538943*/          OPC_EmitMergeInputChains1_1,
/*538944*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packss:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPACKSSWBYrm:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538956*/        /*Scope*/ 18, /*->538975*/
/*538957*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*538959*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*538962*/          OPC_EmitMergeInputChains1_1,
/*538963*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packss:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPACKSSWBZ256rm:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*538975*/        0, /*End of Scope*/
/*538976*/      /*Scope*/ 27, /*->539004*/
/*538977*/        OPC_RecordChild1, // #1 = $src2
/*538978*/        OPC_CheckType, MVT::v32i8,
/*538980*/        OPC_Scope, 10, /*->538992*/ // 2 children in Scope
/*538982*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*538984*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packss:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPACKSSWBYrr:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*538992*/        /*Scope*/ 10, /*->539003*/
/*538993*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*538995*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packss:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPACKSSWBZ256rr:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*539003*/        0, /*End of Scope*/
/*539004*/      0, /*End of Scope*/
/*539005*/    /*Scope*/ 10|128,1/*138*/, /*->539145*/
/*539007*/      OPC_CheckChild0Type, MVT::v8i32,
/*539009*/      OPC_Scope, 105, /*->539116*/ // 2 children in Scope
/*539011*/        OPC_MoveChild1,
/*539012*/        OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::BITCAST),// ->539076
/*539016*/          OPC_MoveChild0,
/*539017*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539020*/          OPC_RecordMemRef,
/*539021*/          OPC_RecordNode, // #1 = 'ld' chained node
/*539022*/          OPC_CheckFoldableChainNode,
/*539023*/          OPC_RecordChild1, // #2 = $src2
/*539024*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539026*/          OPC_CheckPredicate, 9, // Predicate_load
/*539028*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*539030*/          OPC_CheckType, MVT::v4i64,
/*539032*/          OPC_MoveParent,
/*539033*/          OPC_MoveParent,
/*539034*/          OPC_CheckType, MVT::v16i16,
/*539036*/          OPC_Scope, 18, /*->539056*/ // 2 children in Scope
/*539038*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*539040*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539043*/            OPC_EmitMergeInputChains1_1,
/*539044*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Packss:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPACKSSDWYrm:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539056*/          /*Scope*/ 18, /*->539075*/
/*539057*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539059*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539062*/            OPC_EmitMergeInputChains1_1,
/*539063*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Packss:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPACKSSDWZ256rm:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539075*/          0, /*End of Scope*/
/*539076*/        /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST),// ->539115
/*539079*/          OPC_MoveChild0,
/*539080*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539083*/          OPC_RecordMemRef,
/*539084*/          OPC_RecordNode, // #1 = 'ld' chained node
/*539085*/          OPC_CheckFoldableChainNode,
/*539086*/          OPC_RecordChild1, // #2 = $src2
/*539087*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539089*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*539091*/          OPC_CheckType, MVT::i32,
/*539093*/          OPC_MoveParent,
/*539094*/          OPC_MoveParent,
/*539095*/          OPC_CheckType, MVT::v16i16,
/*539097*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539099*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539102*/          OPC_EmitMergeInputChains1_1,
/*539103*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packss:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPACKSSDWZ256rmb:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539115*/        0, // EndSwitchOpcode
/*539116*/      /*Scope*/ 27, /*->539144*/
/*539117*/        OPC_RecordChild1, // #1 = $src2
/*539118*/        OPC_CheckType, MVT::v16i16,
/*539120*/        OPC_Scope, 10, /*->539132*/ // 2 children in Scope
/*539122*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*539124*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packss:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPACKSSDWYrr:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*539132*/        /*Scope*/ 10, /*->539143*/
/*539133*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539135*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packss:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPACKSSDWZ256rr:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*539143*/        0, /*End of Scope*/
/*539144*/      0, /*End of Scope*/
/*539145*/    /*Scope*/ 102, /*->539248*/
/*539146*/      OPC_CheckChild0Type, MVT::v16i32,
/*539148*/      OPC_Scope, 83, /*->539233*/ // 2 children in Scope
/*539150*/        OPC_MoveChild1,
/*539151*/        OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::BITCAST),// ->539193
/*539155*/          OPC_MoveChild0,
/*539156*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539159*/          OPC_RecordMemRef,
/*539160*/          OPC_RecordNode, // #1 = 'ld' chained node
/*539161*/          OPC_CheckFoldableChainNode,
/*539162*/          OPC_RecordChild1, // #2 = $src2
/*539163*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539165*/          OPC_CheckPredicate, 9, // Predicate_load
/*539167*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*539169*/          OPC_CheckType, MVT::v8i64,
/*539171*/          OPC_MoveParent,
/*539172*/          OPC_MoveParent,
/*539173*/          OPC_CheckType, MVT::v32i16,
/*539175*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*539177*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539180*/          OPC_EmitMergeInputChains1_1,
/*539181*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packss:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPACKSSDWZrm:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539193*/        /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST),// ->539232
/*539196*/          OPC_MoveChild0,
/*539197*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539200*/          OPC_RecordMemRef,
/*539201*/          OPC_RecordNode, // #1 = 'ld' chained node
/*539202*/          OPC_CheckFoldableChainNode,
/*539203*/          OPC_RecordChild1, // #2 = $src2
/*539204*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539206*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*539208*/          OPC_CheckType, MVT::i32,
/*539210*/          OPC_MoveParent,
/*539211*/          OPC_MoveParent,
/*539212*/          OPC_CheckType, MVT::v32i16,
/*539214*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*539216*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539219*/          OPC_EmitMergeInputChains1_1,
/*539220*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packss:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPACKSSDWZrmb:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539232*/        0, // EndSwitchOpcode
/*539233*/      /*Scope*/ 13, /*->539247*/
/*539234*/        OPC_RecordChild1, // #1 = $src2
/*539235*/        OPC_CheckType, MVT::v32i16,
/*539237*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*539239*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSDWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Packss:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPACKSSDWZrr:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*539247*/      0, /*End of Scope*/
/*539248*/    /*Scope*/ 61, /*->539310*/
/*539249*/      OPC_CheckChild0Type, MVT::v32i16,
/*539251*/      OPC_Scope, 42, /*->539295*/ // 2 children in Scope
/*539253*/        OPC_MoveChild1,
/*539254*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*539257*/        OPC_MoveChild0,
/*539258*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539261*/        OPC_RecordMemRef,
/*539262*/        OPC_RecordNode, // #1 = 'ld' chained node
/*539263*/        OPC_CheckFoldableChainNode,
/*539264*/        OPC_RecordChild1, // #2 = $src2
/*539265*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539267*/        OPC_CheckPredicate, 9, // Predicate_load
/*539269*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*539271*/        OPC_CheckType, MVT::v8i64,
/*539273*/        OPC_MoveParent,
/*539274*/        OPC_MoveParent,
/*539275*/        OPC_CheckType, MVT::v64i8,
/*539277*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*539279*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539282*/        OPC_EmitMergeInputChains1_1,
/*539283*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Packss:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPACKSSWBZrm:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539295*/      /*Scope*/ 13, /*->539309*/
/*539296*/        OPC_RecordChild1, // #1 = $src2
/*539297*/        OPC_CheckType, MVT::v64i8,
/*539299*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*539301*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKSSWBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Packss:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPACKSSWBZrr:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*539309*/      0, /*End of Scope*/
/*539310*/    0, /*End of Scope*/
/*539311*/  /*SwitchOpcode*/ 86|128,5/*726*/, TARGET_VAL(X86ISD::PACKUS),// ->540041
/*539315*/    OPC_RecordChild0, // #0 = $src1
/*539316*/    OPC_Scope, 9|128,1/*137*/, /*->539456*/ // 6 children in Scope
/*539319*/      OPC_CheckChild0Type, MVT::v8i16,
/*539321*/      OPC_Scope, 93, /*->539416*/ // 2 children in Scope
/*539323*/        OPC_MoveChild1,
/*539324*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*539327*/        OPC_MoveChild0,
/*539328*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539331*/        OPC_RecordMemRef,
/*539332*/        OPC_RecordNode, // #1 = 'ld' chained node
/*539333*/        OPC_CheckFoldableChainNode,
/*539334*/        OPC_RecordChild1, // #2 = $src2
/*539335*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539337*/        OPC_CheckPredicate, 9, // Predicate_load
/*539339*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*539341*/        OPC_CheckType, MVT::v2i64,
/*539343*/        OPC_Scope, 22, /*->539367*/ // 3 children in Scope
/*539345*/          OPC_MoveParent,
/*539346*/          OPC_MoveParent,
/*539347*/          OPC_CheckType, MVT::v16i8,
/*539349*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*539351*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539354*/          OPC_EmitMergeInputChains1_1,
/*539355*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packus:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPACKUSWBrm:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539367*/        /*Scope*/ 24, /*->539392*/
/*539368*/          OPC_CheckPredicate, 48, // Predicate_memop
/*539370*/          OPC_MoveParent,
/*539371*/          OPC_MoveParent,
/*539372*/          OPC_CheckType, MVT::v16i8,
/*539374*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*539376*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539379*/          OPC_EmitMergeInputChains1_1,
/*539380*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PACKUSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packus:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PACKUSWBrm:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539392*/        /*Scope*/ 22, /*->539415*/
/*539393*/          OPC_MoveParent,
/*539394*/          OPC_MoveParent,
/*539395*/          OPC_CheckType, MVT::v16i8,
/*539397*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539399*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539402*/          OPC_EmitMergeInputChains1_1,
/*539403*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPACKUSWBZ128rm:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539415*/        0, /*End of Scope*/
/*539416*/      /*Scope*/ 38, /*->539455*/
/*539417*/        OPC_RecordChild1, // #1 = $src2
/*539418*/        OPC_CheckType, MVT::v16i8,
/*539420*/        OPC_Scope, 10, /*->539432*/ // 3 children in Scope
/*539422*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*539424*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packus:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPACKUSWBrr:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*539432*/        /*Scope*/ 10, /*->539443*/
/*539433*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*539435*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PACKUSWBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packus:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PACKUSWBrr:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*539443*/        /*Scope*/ 10, /*->539454*/
/*539444*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539446*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPACKUSWBZ128rr:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*539454*/        0, /*End of Scope*/
/*539455*/      0, /*End of Scope*/
/*539456*/    /*Scope*/ 51|128,1/*179*/, /*->539637*/
/*539458*/      OPC_CheckChild0Type, MVT::v4i32,
/*539460*/      OPC_Scope, 6|128,1/*134*/, /*->539597*/ // 2 children in Scope
/*539463*/        OPC_MoveChild1,
/*539464*/        OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::BITCAST),// ->539557
/*539468*/          OPC_MoveChild0,
/*539469*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539472*/          OPC_RecordMemRef,
/*539473*/          OPC_RecordNode, // #1 = 'ld' chained node
/*539474*/          OPC_CheckFoldableChainNode,
/*539475*/          OPC_RecordChild1, // #2 = $src2
/*539476*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539478*/          OPC_CheckPredicate, 9, // Predicate_load
/*539480*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*539482*/          OPC_CheckType, MVT::v2i64,
/*539484*/          OPC_Scope, 22, /*->539508*/ // 3 children in Scope
/*539486*/            OPC_MoveParent,
/*539487*/            OPC_MoveParent,
/*539488*/            OPC_CheckType, MVT::v8i16,
/*539490*/            OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*539492*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539495*/            OPC_EmitMergeInputChains1_1,
/*539496*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Packus:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPACKUSDWrm:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539508*/          /*Scope*/ 24, /*->539533*/
/*539509*/            OPC_CheckPredicate, 48, // Predicate_memop
/*539511*/            OPC_MoveParent,
/*539512*/            OPC_MoveParent,
/*539513*/            OPC_CheckType, MVT::v8i16,
/*539515*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*539517*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539520*/            OPC_EmitMergeInputChains1_1,
/*539521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PACKUSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Packus:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PACKUSDWrm:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539533*/          /*Scope*/ 22, /*->539556*/
/*539534*/            OPC_MoveParent,
/*539535*/            OPC_MoveParent,
/*539536*/            OPC_CheckType, MVT::v8i16,
/*539538*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539540*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539543*/            OPC_EmitMergeInputChains1_1,
/*539544*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Packus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPACKUSDWZ128rm:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539556*/          0, /*End of Scope*/
/*539557*/        /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST),// ->539596
/*539560*/          OPC_MoveChild0,
/*539561*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539564*/          OPC_RecordMemRef,
/*539565*/          OPC_RecordNode, // #1 = 'ld' chained node
/*539566*/          OPC_CheckFoldableChainNode,
/*539567*/          OPC_RecordChild1, // #2 = $src2
/*539568*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539570*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*539572*/          OPC_CheckType, MVT::i32,
/*539574*/          OPC_MoveParent,
/*539575*/          OPC_MoveParent,
/*539576*/          OPC_CheckType, MVT::v8i16,
/*539578*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539580*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539583*/          OPC_EmitMergeInputChains1_1,
/*539584*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPACKUSDWZ128rmb:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539596*/        0, // EndSwitchOpcode
/*539597*/      /*Scope*/ 38, /*->539636*/
/*539598*/        OPC_RecordChild1, // #1 = $src2
/*539599*/        OPC_CheckType, MVT::v8i16,
/*539601*/        OPC_Scope, 10, /*->539613*/ // 3 children in Scope
/*539603*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*539605*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packus:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPACKUSDWrr:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*539613*/        /*Scope*/ 10, /*->539624*/
/*539614*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*539616*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PACKUSDWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packus:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PACKUSDWrr:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*539624*/        /*Scope*/ 10, /*->539635*/
/*539625*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539627*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPACKUSDWZ128rr:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*539635*/        0, /*End of Scope*/
/*539636*/      0, /*End of Scope*/
/*539637*/    /*Scope*/ 97, /*->539735*/
/*539638*/      OPC_CheckChild0Type, MVT::v16i16,
/*539640*/      OPC_Scope, 64, /*->539706*/ // 2 children in Scope
/*539642*/        OPC_MoveChild1,
/*539643*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*539646*/        OPC_MoveChild0,
/*539647*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539650*/        OPC_RecordMemRef,
/*539651*/        OPC_RecordNode, // #1 = 'ld' chained node
/*539652*/        OPC_CheckFoldableChainNode,
/*539653*/        OPC_RecordChild1, // #2 = $src2
/*539654*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539656*/        OPC_CheckPredicate, 9, // Predicate_load
/*539658*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*539660*/        OPC_CheckType, MVT::v4i64,
/*539662*/        OPC_MoveParent,
/*539663*/        OPC_MoveParent,
/*539664*/        OPC_CheckType, MVT::v32i8,
/*539666*/        OPC_Scope, 18, /*->539686*/ // 2 children in Scope
/*539668*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*539670*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539673*/          OPC_EmitMergeInputChains1_1,
/*539674*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packus:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPACKUSWBYrm:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539686*/        /*Scope*/ 18, /*->539705*/
/*539687*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539689*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539692*/          OPC_EmitMergeInputChains1_1,
/*539693*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packus:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPACKUSWBZ256rm:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539705*/        0, /*End of Scope*/
/*539706*/      /*Scope*/ 27, /*->539734*/
/*539707*/        OPC_RecordChild1, // #1 = $src2
/*539708*/        OPC_CheckType, MVT::v32i8,
/*539710*/        OPC_Scope, 10, /*->539722*/ // 2 children in Scope
/*539712*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*539714*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packus:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPACKUSWBYrr:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*539722*/        /*Scope*/ 10, /*->539733*/
/*539723*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539725*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packus:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPACKUSWBZ256rr:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*539733*/        0, /*End of Scope*/
/*539734*/      0, /*End of Scope*/
/*539735*/    /*Scope*/ 10|128,1/*138*/, /*->539875*/
/*539737*/      OPC_CheckChild0Type, MVT::v8i32,
/*539739*/      OPC_Scope, 105, /*->539846*/ // 2 children in Scope
/*539741*/        OPC_MoveChild1,
/*539742*/        OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::BITCAST),// ->539806
/*539746*/          OPC_MoveChild0,
/*539747*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539750*/          OPC_RecordMemRef,
/*539751*/          OPC_RecordNode, // #1 = 'ld' chained node
/*539752*/          OPC_CheckFoldableChainNode,
/*539753*/          OPC_RecordChild1, // #2 = $src2
/*539754*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539756*/          OPC_CheckPredicate, 9, // Predicate_load
/*539758*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*539760*/          OPC_CheckType, MVT::v4i64,
/*539762*/          OPC_MoveParent,
/*539763*/          OPC_MoveParent,
/*539764*/          OPC_CheckType, MVT::v16i16,
/*539766*/          OPC_Scope, 18, /*->539786*/ // 2 children in Scope
/*539768*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*539770*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539773*/            OPC_EmitMergeInputChains1_1,
/*539774*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Packus:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPACKUSDWYrm:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539786*/          /*Scope*/ 18, /*->539805*/
/*539787*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539789*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539792*/            OPC_EmitMergeInputChains1_1,
/*539793*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Packus:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPACKUSDWZ256rm:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539805*/          0, /*End of Scope*/
/*539806*/        /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST),// ->539845
/*539809*/          OPC_MoveChild0,
/*539810*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539813*/          OPC_RecordMemRef,
/*539814*/          OPC_RecordNode, // #1 = 'ld' chained node
/*539815*/          OPC_CheckFoldableChainNode,
/*539816*/          OPC_RecordChild1, // #2 = $src2
/*539817*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539819*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*539821*/          OPC_CheckType, MVT::i32,
/*539823*/          OPC_MoveParent,
/*539824*/          OPC_MoveParent,
/*539825*/          OPC_CheckType, MVT::v16i16,
/*539827*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539829*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539832*/          OPC_EmitMergeInputChains1_1,
/*539833*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packus:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPACKUSDWZ256rmb:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539845*/        0, // EndSwitchOpcode
/*539846*/      /*Scope*/ 27, /*->539874*/
/*539847*/        OPC_RecordChild1, // #1 = $src2
/*539848*/        OPC_CheckType, MVT::v16i16,
/*539850*/        OPC_Scope, 10, /*->539862*/ // 2 children in Scope
/*539852*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*539854*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packus:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPACKUSDWYrr:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*539862*/        /*Scope*/ 10, /*->539873*/
/*539863*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*539865*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Packus:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPACKUSDWZ256rr:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*539873*/        0, /*End of Scope*/
/*539874*/      0, /*End of Scope*/
/*539875*/    /*Scope*/ 102, /*->539978*/
/*539876*/      OPC_CheckChild0Type, MVT::v16i32,
/*539878*/      OPC_Scope, 83, /*->539963*/ // 2 children in Scope
/*539880*/        OPC_MoveChild1,
/*539881*/        OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::BITCAST),// ->539923
/*539885*/          OPC_MoveChild0,
/*539886*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539889*/          OPC_RecordMemRef,
/*539890*/          OPC_RecordNode, // #1 = 'ld' chained node
/*539891*/          OPC_CheckFoldableChainNode,
/*539892*/          OPC_RecordChild1, // #2 = $src2
/*539893*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539895*/          OPC_CheckPredicate, 9, // Predicate_load
/*539897*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*539899*/          OPC_CheckType, MVT::v8i64,
/*539901*/          OPC_MoveParent,
/*539902*/          OPC_MoveParent,
/*539903*/          OPC_CheckType, MVT::v32i16,
/*539905*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*539907*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539910*/          OPC_EmitMergeInputChains1_1,
/*539911*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packus:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPACKUSDWZrm:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539923*/        /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST),// ->539962
/*539926*/          OPC_MoveChild0,
/*539927*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539930*/          OPC_RecordMemRef,
/*539931*/          OPC_RecordNode, // #1 = 'ld' chained node
/*539932*/          OPC_CheckFoldableChainNode,
/*539933*/          OPC_RecordChild1, // #2 = $src2
/*539934*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539936*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*539938*/          OPC_CheckType, MVT::i32,
/*539940*/          OPC_MoveParent,
/*539941*/          OPC_MoveParent,
/*539942*/          OPC_CheckType, MVT::v32i16,
/*539944*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*539946*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*539949*/          OPC_EmitMergeInputChains1_1,
/*539950*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Packus:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPACKUSDWZrmb:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*539962*/        0, // EndSwitchOpcode
/*539963*/      /*Scope*/ 13, /*->539977*/
/*539964*/        OPC_RecordChild1, // #1 = $src2
/*539965*/        OPC_CheckType, MVT::v32i16,
/*539967*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*539969*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSDWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Packus:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPACKUSDWZrr:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*539977*/      0, /*End of Scope*/
/*539978*/    /*Scope*/ 61, /*->540040*/
/*539979*/      OPC_CheckChild0Type, MVT::v32i16,
/*539981*/      OPC_Scope, 42, /*->540025*/ // 2 children in Scope
/*539983*/        OPC_MoveChild1,
/*539984*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*539987*/        OPC_MoveChild0,
/*539988*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*539991*/        OPC_RecordMemRef,
/*539992*/        OPC_RecordNode, // #1 = 'ld' chained node
/*539993*/        OPC_CheckFoldableChainNode,
/*539994*/        OPC_RecordChild1, // #2 = $src2
/*539995*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*539997*/        OPC_CheckPredicate, 9, // Predicate_load
/*539999*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*540001*/        OPC_CheckType, MVT::v8i64,
/*540003*/        OPC_MoveParent,
/*540004*/        OPC_MoveParent,
/*540005*/        OPC_CheckType, MVT::v64i8,
/*540007*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*540009*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*540012*/        OPC_EmitMergeInputChains1_1,
/*540013*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Packus:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPACKUSWBZrm:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*540025*/      /*Scope*/ 13, /*->540039*/
/*540026*/        OPC_RecordChild1, // #1 = $src2
/*540027*/        OPC_CheckType, MVT::v64i8,
/*540029*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*540031*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPACKUSWBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Packus:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPACKUSWBZrr:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*540039*/      0, /*End of Scope*/
/*540040*/    0, /*End of Scope*/
/*540041*/  /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(X86ISD::PINSRW),// ->540190
/*540045*/    OPC_RecordChild0, // #0 = $src1
/*540046*/    OPC_Scope, 89, /*->540137*/ // 2 children in Scope
/*540048*/      OPC_MoveChild1,
/*540049*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540052*/      OPC_RecordMemRef,
/*540053*/      OPC_RecordNode, // #1 = 'ld' chained node
/*540054*/      OPC_CheckFoldableChainNode,
/*540055*/      OPC_RecordChild1, // #2 = $src2
/*540056*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540058*/      OPC_CheckPredicate, 64, // Predicate_extload
/*540060*/      OPC_CheckPredicate, 62, // Predicate_extloadi16
/*540062*/      OPC_MoveParent,
/*540063*/      OPC_RecordChild2, // #3 = $src3
/*540064*/      OPC_MoveChild2,
/*540065*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*540068*/      OPC_MoveParent,
/*540069*/      OPC_Scope, 21, /*->540092*/ // 3 children in Scope
/*540071*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*540073*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*540076*/        OPC_EmitMergeInputChains1_1,
/*540077*/        OPC_EmitConvertToTarget, 3,
/*540079*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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: (VPINSRWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*540092*/      /*Scope*/ 21, /*->540114*/
/*540093*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540095*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*540098*/        OPC_EmitMergeInputChains1_1,
/*540099*/        OPC_EmitConvertToTarget, 3,
/*540101*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PINSRWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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: (PINSRWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*540114*/      /*Scope*/ 21, /*->540136*/
/*540115*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*540117*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*540120*/        OPC_EmitMergeInputChains1_1,
/*540121*/        OPC_EmitConvertToTarget, 3,
/*540123*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86pinsrw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>, (imm:{ *:[iPTR] }):$src3) - Complexity = 28
                  // Dst: (VPINSRWZrm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*540136*/      0, /*End of Scope*/
/*540137*/    /*Scope*/ 51, /*->540189*/
/*540138*/      OPC_RecordChild1, // #1 = $src2
/*540139*/      OPC_RecordChild2, // #2 = $src3
/*540140*/      OPC_MoveChild2,
/*540141*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*540144*/      OPC_MoveParent,
/*540145*/      OPC_Scope, 13, /*->540160*/ // 3 children in Scope
/*540147*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*540149*/        OPC_EmitConvertToTarget, 2,
/*540151*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRWrr), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86pinsrw:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$src3) - Complexity = 6
                  // Dst: (VPINSRWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*540160*/      /*Scope*/ 13, /*->540174*/
/*540161*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540163*/        OPC_EmitConvertToTarget, 2,
/*540165*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PINSRWrr), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86pinsrw:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$src3) - Complexity = 6
                  // Dst: (PINSRWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*540174*/      /*Scope*/ 13, /*->540188*/
/*540175*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*540177*/        OPC_EmitConvertToTarget, 2,
/*540179*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRWZrr), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86pinsrw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$src3) - Complexity = 6
                  // Dst: (VPINSRWZrr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*540188*/      0, /*End of Scope*/
/*540189*/    0, /*End of Scope*/
/*540190*/  /*SwitchOpcode*/ 95|128,2/*351*/, TARGET_VAL(X86ISD::MOVSHDUP),// ->540545
/*540194*/    OPC_Scope, 93, /*->540289*/ // 4 children in Scope
/*540196*/      OPC_MoveChild0,
/*540197*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*540200*/      OPC_MoveChild0,
/*540201*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540204*/      OPC_RecordMemRef,
/*540205*/      OPC_RecordNode, // #0 = 'ld' chained node
/*540206*/      OPC_CheckFoldableChainNode,
/*540207*/      OPC_RecordChild1, // #1 = $src
/*540208*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540210*/      OPC_CheckPredicate, 9, // Predicate_load
/*540212*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*540214*/      OPC_SwitchType /*2 cases */, 48, MVT::v2i64,// ->540265
/*540217*/        OPC_Scope, 21, /*->540240*/ // 2 children in Scope
/*540219*/          OPC_MoveParent,
/*540220*/          OPC_MoveParent,
/*540221*/          OPC_CheckType, MVT::v4i32,
/*540223*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540225*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540228*/          OPC_EmitMergeInputChains1_0,
/*540229*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>)) - Complexity = 28
                    // Dst: (VMOVSHDUPrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*540240*/        /*Scope*/ 23, /*->540264*/
/*540241*/          OPC_CheckPredicate, 48, // Predicate_memop
/*540243*/          OPC_MoveParent,
/*540244*/          OPC_MoveParent,
/*540245*/          OPC_CheckType, MVT::v4i32,
/*540247*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*540249*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540252*/          OPC_EmitMergeInputChains1_0,
/*540253*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (MOVSHDUPrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*540264*/        0, /*End of Scope*/
/*540265*/      /*SwitchType*/ 21, MVT::v4i64,// ->540288
/*540267*/        OPC_MoveParent,
/*540268*/        OPC_MoveParent,
/*540269*/        OPC_CheckType, MVT::v8i32,
/*540271*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540273*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540276*/        OPC_EmitMergeInputChains1_0,
/*540277*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>)) - Complexity = 28
                  // Dst: (VMOVSHDUPYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*540288*/      0, // EndSwitchType
/*540289*/    /*Scope*/ 38, /*->540328*/
/*540290*/      OPC_RecordChild0, // #0 = $src
/*540291*/      OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->540316
/*540294*/        OPC_Scope, 9, /*->540305*/ // 2 children in Scope
/*540296*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540298*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPrr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (X86Movshdup:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VMOVSHDUPrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src)
/*540305*/        /*Scope*/ 9, /*->540315*/
/*540306*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*540308*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSHDUPrr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (X86Movshdup:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (MOVSHDUPrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src)
/*540315*/        0, /*End of Scope*/
/*540316*/      /*SwitchType*/ 9, MVT::v8i32,// ->540327
/*540318*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540320*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPYrr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86Movshdup:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                  // Dst: (VMOVSHDUPYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src)
/*540327*/      0, // EndSwitchType
/*540328*/    /*Scope*/ 13|128,1/*141*/, /*->540471*/
/*540330*/      OPC_MoveChild0,
/*540331*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540334*/      OPC_RecordMemRef,
/*540335*/      OPC_RecordNode, // #0 = 'ld' chained node
/*540336*/      OPC_RecordChild1, // #1 = $src
/*540337*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540339*/      OPC_CheckPredicate, 9, // Predicate_load
/*540341*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*540343*/      OPC_Scope, 41, /*->540386*/ // 3 children in Scope
/*540345*/        OPC_MoveParent,
/*540346*/        OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->540366
/*540349*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540351*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540354*/          OPC_EmitMergeInputChains1_0,
/*540355*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VMOVSHDUPrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*540366*/        /*SwitchType*/ 17, MVT::v8f32,// ->540385
/*540368*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540370*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540373*/          OPC_EmitMergeInputChains1_0,
/*540374*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VMOVSHDUPYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*540385*/        0, // EndSwitchType
/*540386*/      /*Scope*/ 22, /*->540409*/
/*540387*/        OPC_CheckPredicate, 48, // Predicate_memop
/*540389*/        OPC_MoveParent,
/*540390*/        OPC_CheckType, MVT::v4f32,
/*540392*/        OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*540394*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540397*/        OPC_EmitMergeInputChains1_0,
/*540398*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (MOVSHDUPrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*540409*/      /*Scope*/ 60, /*->540470*/
/*540410*/        OPC_MoveParent,
/*540411*/        OPC_SwitchType /*3 cases */, 17, MVT::v16f32,// ->540431
/*540414*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*540416*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*540419*/          OPC_EmitMergeInputChains1_0,
/*540420*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movshdup:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMOVSHDUPZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)
/*540431*/        /*SwitchType*/ 17, MVT::v8f32,// ->540450
/*540433*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*540435*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*540438*/          OPC_EmitMergeInputChains1_0,
/*540439*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movshdup:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMOVSHDUPZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)
/*540450*/        /*SwitchType*/ 17, MVT::v4f32,// ->540469
/*540452*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*540454*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*540457*/          OPC_EmitMergeInputChains1_0,
/*540458*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movshdup:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMOVSHDUPZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)
/*540469*/        0, // EndSwitchType
/*540470*/      0, /*End of Scope*/
/*540471*/    /*Scope*/ 72, /*->540544*/
/*540472*/      OPC_RecordChild0, // #0 = $src
/*540473*/      OPC_SwitchType /*3 cases */, 32, MVT::v4f32,// ->540508
/*540476*/        OPC_Scope, 9, /*->540487*/ // 3 children in Scope
/*540478*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540480*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPrr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (X86Movshdup:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VMOVSHDUPrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*540487*/        /*Scope*/ 9, /*->540497*/
/*540488*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*540490*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSHDUPrr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (X86Movshdup:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (MOVSHDUPrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*540497*/        /*Scope*/ 9, /*->540507*/
/*540498*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*540500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ128rr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (X86Movshdup:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1) - Complexity = 3
                    // Dst: (VMOVSHDUPZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1)
/*540507*/        0, /*End of Scope*/
/*540508*/      /*SwitchType*/ 22, MVT::v8f32,// ->540532
/*540510*/        OPC_Scope, 9, /*->540521*/ // 2 children in Scope
/*540512*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540514*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPYrr), 0,
                        MVT::v8f32, 1/*#Ops*/, 0, 
                    // Src: (X86Movshdup:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VMOVSHDUPYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src)
/*540521*/        /*Scope*/ 9, /*->540531*/
/*540522*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*540524*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ256rr), 0,
                        MVT::v8f32, 1/*#Ops*/, 0, 
                    // Src: (X86Movshdup:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1) - Complexity = 3
                    // Dst: (VMOVSHDUPZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1)
/*540531*/        0, /*End of Scope*/
/*540532*/      /*SwitchType*/ 9, MVT::v16f32,// ->540543
/*540534*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*540536*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZrr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (X86Movshdup:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1) - Complexity = 3
                  // Dst: (VMOVSHDUPZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1)
/*540543*/      0, // EndSwitchType
/*540544*/    0, /*End of Scope*/
/*540545*/  /*SwitchOpcode*/ 95|128,2/*351*/, TARGET_VAL(X86ISD::MOVSLDUP),// ->540900
/*540549*/    OPC_Scope, 93, /*->540644*/ // 4 children in Scope
/*540551*/      OPC_MoveChild0,
/*540552*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*540555*/      OPC_MoveChild0,
/*540556*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540559*/      OPC_RecordMemRef,
/*540560*/      OPC_RecordNode, // #0 = 'ld' chained node
/*540561*/      OPC_CheckFoldableChainNode,
/*540562*/      OPC_RecordChild1, // #1 = $src
/*540563*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540565*/      OPC_CheckPredicate, 9, // Predicate_load
/*540567*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*540569*/      OPC_SwitchType /*2 cases */, 48, MVT::v2i64,// ->540620
/*540572*/        OPC_Scope, 21, /*->540595*/ // 2 children in Scope
/*540574*/          OPC_MoveParent,
/*540575*/          OPC_MoveParent,
/*540576*/          OPC_CheckType, MVT::v4i32,
/*540578*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540580*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540583*/          OPC_EmitMergeInputChains1_0,
/*540584*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>)) - Complexity = 28
                    // Dst: (VMOVSLDUPrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*540595*/        /*Scope*/ 23, /*->540619*/
/*540596*/          OPC_CheckPredicate, 48, // Predicate_memop
/*540598*/          OPC_MoveParent,
/*540599*/          OPC_MoveParent,
/*540600*/          OPC_CheckType, MVT::v4i32,
/*540602*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*540604*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540607*/          OPC_EmitMergeInputChains1_0,
/*540608*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (MOVSLDUPrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*540619*/        0, /*End of Scope*/
/*540620*/      /*SwitchType*/ 21, MVT::v4i64,// ->540643
/*540622*/        OPC_MoveParent,
/*540623*/        OPC_MoveParent,
/*540624*/        OPC_CheckType, MVT::v8i32,
/*540626*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540628*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540631*/        OPC_EmitMergeInputChains1_0,
/*540632*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>>)) - Complexity = 28
                  // Dst: (VMOVSLDUPYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*540643*/      0, // EndSwitchType
/*540644*/    /*Scope*/ 38, /*->540683*/
/*540645*/      OPC_RecordChild0, // #0 = $src
/*540646*/      OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->540671
/*540649*/        OPC_Scope, 9, /*->540660*/ // 2 children in Scope
/*540651*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540653*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPrr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (X86Movsldup:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VMOVSLDUPrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src)
/*540660*/        /*Scope*/ 9, /*->540670*/
/*540661*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*540663*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSLDUPrr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (X86Movsldup:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (MOVSLDUPrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src)
/*540670*/        0, /*End of Scope*/
/*540671*/      /*SwitchType*/ 9, MVT::v8i32,// ->540682
/*540673*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540675*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPYrr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86Movsldup:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                  // Dst: (VMOVSLDUPYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src)
/*540682*/      0, // EndSwitchType
/*540683*/    /*Scope*/ 13|128,1/*141*/, /*->540826*/
/*540685*/      OPC_MoveChild0,
/*540686*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540689*/      OPC_RecordMemRef,
/*540690*/      OPC_RecordNode, // #0 = 'ld' chained node
/*540691*/      OPC_RecordChild1, // #1 = $src
/*540692*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540694*/      OPC_CheckPredicate, 9, // Predicate_load
/*540696*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*540698*/      OPC_Scope, 41, /*->540741*/ // 3 children in Scope
/*540700*/        OPC_MoveParent,
/*540701*/        OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->540721
/*540704*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540706*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540709*/          OPC_EmitMergeInputChains1_0,
/*540710*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VMOVSLDUPrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*540721*/        /*SwitchType*/ 17, MVT::v8f32,// ->540740
/*540723*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540725*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540728*/          OPC_EmitMergeInputChains1_0,
/*540729*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VMOVSLDUPYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*540740*/        0, // EndSwitchType
/*540741*/      /*Scope*/ 22, /*->540764*/
/*540742*/        OPC_CheckPredicate, 48, // Predicate_memop
/*540744*/        OPC_MoveParent,
/*540745*/        OPC_CheckType, MVT::v4f32,
/*540747*/        OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*540749*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540752*/        OPC_EmitMergeInputChains1_0,
/*540753*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (MOVSLDUPrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*540764*/      /*Scope*/ 60, /*->540825*/
/*540765*/        OPC_MoveParent,
/*540766*/        OPC_SwitchType /*3 cases */, 17, MVT::v16f32,// ->540786
/*540769*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*540771*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*540774*/          OPC_EmitMergeInputChains1_0,
/*540775*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movsldup:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMOVSLDUPZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)
/*540786*/        /*SwitchType*/ 17, MVT::v8f32,// ->540805
/*540788*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*540790*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*540793*/          OPC_EmitMergeInputChains1_0,
/*540794*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movsldup:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMOVSLDUPZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)
/*540805*/        /*SwitchType*/ 17, MVT::v4f32,// ->540824
/*540807*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*540809*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*540812*/          OPC_EmitMergeInputChains1_0,
/*540813*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movsldup:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMOVSLDUPZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)
/*540824*/        0, // EndSwitchType
/*540825*/      0, /*End of Scope*/
/*540826*/    /*Scope*/ 72, /*->540899*/
/*540827*/      OPC_RecordChild0, // #0 = $src
/*540828*/      OPC_SwitchType /*3 cases */, 32, MVT::v4f32,// ->540863
/*540831*/        OPC_Scope, 9, /*->540842*/ // 3 children in Scope
/*540833*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540835*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPrr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (X86Movsldup:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VMOVSLDUPrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*540842*/        /*Scope*/ 9, /*->540852*/
/*540843*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*540845*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSLDUPrr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (X86Movsldup:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (MOVSLDUPrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*540852*/        /*Scope*/ 9, /*->540862*/
/*540853*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*540855*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ128rr), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (X86Movsldup:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1) - Complexity = 3
                    // Dst: (VMOVSLDUPZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1)
/*540862*/        0, /*End of Scope*/
/*540863*/      /*SwitchType*/ 22, MVT::v8f32,// ->540887
/*540865*/        OPC_Scope, 9, /*->540876*/ // 2 children in Scope
/*540867*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540869*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPYrr), 0,
                        MVT::v8f32, 1/*#Ops*/, 0, 
                    // Src: (X86Movsldup:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VMOVSLDUPYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src)
/*540876*/        /*Scope*/ 9, /*->540886*/
/*540877*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*540879*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ256rr), 0,
                        MVT::v8f32, 1/*#Ops*/, 0, 
                    // Src: (X86Movsldup:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1) - Complexity = 3
                    // Dst: (VMOVSLDUPZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1)
/*540886*/        0, /*End of Scope*/
/*540887*/      /*SwitchType*/ 9, MVT::v16f32,// ->540898
/*540889*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*540891*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZrr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (X86Movsldup:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1) - Complexity = 3
                  // Dst: (VMOVSLDUPZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1)
/*540898*/      0, // EndSwitchType
/*540899*/    0, /*End of Scope*/
/*540900*/  /*SwitchOpcode*/ 60|128,7/*956*/, TARGET_VAL(ISD::ABS),// ->541860
/*540904*/    OPC_Scope, 111|128,4/*623*/, /*->541530*/ // 2 children in Scope
/*540907*/      OPC_MoveChild0,
/*540908*/      OPC_SwitchOpcode /*3 cases */, 14|128,3/*398*/, TARGET_VAL(ISD::BITCAST),// ->541311
/*540913*/        OPC_MoveChild0,
/*540914*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540917*/        OPC_RecordMemRef,
/*540918*/        OPC_RecordNode, // #0 = 'ld' chained node
/*540919*/        OPC_CheckFoldableChainNode,
/*540920*/        OPC_RecordChild1, // #1 = $src
/*540921*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540923*/        OPC_CheckPredicate, 9, // Predicate_load
/*540925*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*540927*/        OPC_SwitchType /*3 cases */, 62|128,1/*190*/, MVT::v2i64,// ->541121
/*540931*/          OPC_Scope, 61, /*->540994*/ // 3 children in Scope
/*540933*/            OPC_MoveParent,
/*540934*/            OPC_MoveParent,
/*540935*/            OPC_SwitchType /*3 cases */, 17, MVT::v16i8,// ->540955
/*540938*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*540940*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540943*/              OPC_EmitMergeInputChains1_0,
/*540944*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSBrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*540955*/            /*SwitchType*/ 17, MVT::v8i16,// ->540974
/*540957*/              OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*540959*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540962*/              OPC_EmitMergeInputChains1_0,
/*540963*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*540974*/            /*SwitchType*/ 17, MVT::v4i32,// ->540993
/*540976*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*540978*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*540981*/              OPC_EmitMergeInputChains1_0,
/*540982*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*540993*/            0, // EndSwitchType
/*540994*/          /*Scope*/ 63, /*->541058*/
/*540995*/            OPC_CheckPredicate, 48, // Predicate_memop
/*540997*/            OPC_MoveParent,
/*540998*/            OPC_MoveParent,
/*540999*/            OPC_SwitchType /*3 cases */, 17, MVT::v16i8,// ->541019
/*541002*/              OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*541004*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*541007*/              OPC_EmitMergeInputChains1_0,
/*541008*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PABSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PABSBrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*541019*/            /*SwitchType*/ 17, MVT::v8i16,// ->541038
/*541021*/              OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*541023*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*541026*/              OPC_EmitMergeInputChains1_0,
/*541027*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PABSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PABSWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*541038*/            /*SwitchType*/ 17, MVT::v4i32,// ->541057
/*541040*/              OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*541042*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*541045*/              OPC_EmitMergeInputChains1_0,
/*541046*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PABSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                        // Dst: (PABSDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*541057*/            0, // EndSwitchType
/*541058*/          /*Scope*/ 61, /*->541120*/
/*541059*/            OPC_MoveParent,
/*541060*/            OPC_MoveParent,
/*541061*/            OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->541081
/*541064*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541066*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541069*/              OPC_EmitMergeInputChains1_0,
/*541070*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*541081*/            /*SwitchType*/ 17, MVT::v8i16,// ->541100
/*541083*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*541085*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541088*/              OPC_EmitMergeInputChains1_0,
/*541089*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)
/*541100*/            /*SwitchType*/ 17, MVT::v16i8,// ->541119
/*541102*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*541104*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541107*/              OPC_EmitMergeInputChains1_0,
/*541108*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSBZ128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)
/*541119*/            0, // EndSwitchType
/*541120*/          0, /*End of Scope*/
/*541121*/        /*SwitchType*/ 124, MVT::v4i64,// ->541247
/*541123*/          OPC_MoveParent,
/*541124*/          OPC_MoveParent,
/*541125*/          OPC_SwitchType /*3 cases */, 38, MVT::v32i8,// ->541166
/*541128*/            OPC_Scope, 17, /*->541147*/ // 2 children in Scope
/*541130*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*541132*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*541135*/              OPC_EmitMergeInputChains1_0,
/*541136*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSBYrm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*541147*/            /*Scope*/ 17, /*->541165*/
/*541148*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*541150*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541153*/              OPC_EmitMergeInputChains1_0,
/*541154*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSBZ256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)
/*541165*/            0, /*End of Scope*/
/*541166*/          /*SwitchType*/ 38, MVT::v16i16,// ->541206
/*541168*/            OPC_Scope, 17, /*->541187*/ // 2 children in Scope
/*541170*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*541172*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*541175*/              OPC_EmitMergeInputChains1_0,
/*541176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*541187*/            /*Scope*/ 17, /*->541205*/
/*541188*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*541190*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541193*/              OPC_EmitMergeInputChains1_0,
/*541194*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)
/*541205*/            0, /*End of Scope*/
/*541206*/          /*SwitchType*/ 38, MVT::v8i32,// ->541246
/*541208*/            OPC_Scope, 17, /*->541227*/ // 2 children in Scope
/*541210*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*541212*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*541215*/              OPC_EmitMergeInputChains1_0,
/*541216*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*541227*/            /*Scope*/ 17, /*->541245*/
/*541228*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541230*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541233*/              OPC_EmitMergeInputChains1_0,
/*541234*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (abs:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPABSDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*541245*/            0, /*End of Scope*/
/*541246*/          0, // EndSwitchType
/*541247*/        /*SwitchType*/ 61, MVT::v8i64,// ->541310
/*541249*/          OPC_MoveParent,
/*541250*/          OPC_MoveParent,
/*541251*/          OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->541271
/*541254*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541256*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541259*/            OPC_EmitMergeInputChains1_0,
/*541260*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPABSDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*541271*/          /*SwitchType*/ 17, MVT::v32i16,// ->541290
/*541273*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*541275*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541278*/            OPC_EmitMergeInputChains1_0,
/*541279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPABSWZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)
/*541290*/          /*SwitchType*/ 17, MVT::v64i8,// ->541309
/*541292*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*541294*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541297*/            OPC_EmitMergeInputChains1_0,
/*541298*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPABSBZrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)
/*541309*/          0, // EndSwitchType
/*541310*/        0, // EndSwitchType
/*541311*/      /*SwitchOpcode*/ 14|128,1/*142*/, TARGET_VAL(X86ISD::VBROADCAST),// ->541457
/*541315*/        OPC_MoveChild0,
/*541316*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541319*/        OPC_RecordMemRef,
/*541320*/        OPC_RecordNode, // #0 = 'ld' chained node
/*541321*/        OPC_CheckFoldableChainNode,
/*541322*/        OPC_RecordChild1, // #1 = $src1
/*541323*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541325*/        OPC_SwitchType /*2 cases */, 63, MVT::i64,// ->541391
/*541328*/          OPC_CheckPredicate, 9, // Predicate_load
/*541330*/          OPC_MoveParent,
/*541331*/          OPC_MoveParent,
/*541332*/          OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->541352
/*541335*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541337*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541340*/            OPC_EmitMergeInputChains1_0,
/*541341*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPABSQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*541352*/          /*SwitchType*/ 17, MVT::v4i64,// ->541371
/*541354*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541356*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541359*/            OPC_EmitMergeInputChains1_0,
/*541360*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPABSQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*541371*/          /*SwitchType*/ 17, MVT::v2i64,// ->541390
/*541373*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541375*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541378*/            OPC_EmitMergeInputChains1_0,
/*541379*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPABSQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*541390*/          0, // EndSwitchType
/*541391*/        /*SwitchType*/ 63, MVT::i32,// ->541456
/*541393*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*541395*/          OPC_MoveParent,
/*541396*/          OPC_MoveParent,
/*541397*/          OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->541417
/*541400*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541402*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541405*/            OPC_EmitMergeInputChains1_0,
/*541406*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPABSDZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*541417*/          /*SwitchType*/ 17, MVT::v8i32,// ->541436
/*541419*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541421*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541424*/            OPC_EmitMergeInputChains1_0,
/*541425*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPABSDZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*541436*/          /*SwitchType*/ 17, MVT::v4i32,// ->541455
/*541438*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541440*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541443*/            OPC_EmitMergeInputChains1_0,
/*541444*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPABSDZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*541455*/          0, // EndSwitchType
/*541456*/        0, // EndSwitchType
/*541457*/      /*SwitchOpcode*/ 69, TARGET_VAL(ISD::LOAD),// ->541529
/*541460*/        OPC_RecordMemRef,
/*541461*/        OPC_RecordNode, // #0 = 'ld' chained node
/*541462*/        OPC_RecordChild1, // #1 = $src1
/*541463*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541465*/        OPC_CheckPredicate, 9, // Predicate_load
/*541467*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*541469*/        OPC_MoveParent,
/*541470*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->541490
/*541473*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541475*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541478*/          OPC_EmitMergeInputChains1_0,
/*541479*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (abs:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPABSQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*541490*/        /*SwitchType*/ 17, MVT::v4i64,// ->541509
/*541492*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541494*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541497*/          OPC_EmitMergeInputChains1_0,
/*541498*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (abs:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPABSQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*541509*/        /*SwitchType*/ 17, MVT::v2i64,// ->541528
/*541511*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541513*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*541516*/          OPC_EmitMergeInputChains1_0,
/*541517*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (abs:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPABSQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*541528*/        0, // EndSwitchType
/*541529*/      0, // EndSwitchOpcode
/*541530*/    /*Scope*/ 71|128,2/*327*/, /*->541859*/
/*541532*/      OPC_RecordChild0, // #0 = $src
/*541533*/      OPC_SwitchType /*12 cases */, 32, MVT::v16i8,// ->541568
/*541536*/        OPC_Scope, 9, /*->541547*/ // 3 children in Scope
/*541538*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*541540*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBrr), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPABSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src)
/*541547*/        /*Scope*/ 9, /*->541557*/
/*541548*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*541550*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PABSBrr), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (PABSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src)
/*541557*/        /*Scope*/ 9, /*->541567*/
/*541558*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*541560*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ128rr), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1) - Complexity = 3
                    // Dst: (VPABSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1)
/*541567*/        0, /*End of Scope*/
/*541568*/      /*SwitchType*/ 32, MVT::v8i16,// ->541602
/*541570*/        OPC_Scope, 9, /*->541581*/ // 3 children in Scope
/*541572*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*541574*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWrr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (VPABSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src)
/*541581*/        /*Scope*/ 9, /*->541591*/
/*541582*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*541584*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PABSWrr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (PABSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src)
/*541591*/        /*Scope*/ 9, /*->541601*/
/*541592*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*541594*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ128rr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1) - Complexity = 3
                    // Dst: (VPABSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1)
/*541601*/        0, /*End of Scope*/
/*541602*/      /*SwitchType*/ 32, MVT::v4i32,// ->541636
/*541604*/        OPC_Scope, 9, /*->541615*/ // 3 children in Scope
/*541606*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*541608*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDrr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VPABSDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src)
/*541615*/        /*Scope*/ 9, /*->541625*/
/*541616*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*541618*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PABSDrr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (PABSDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src)
/*541625*/        /*Scope*/ 9, /*->541635*/
/*541626*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541628*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                    // Dst: (VPABSDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1)
/*541635*/        0, /*End of Scope*/
/*541636*/      /*SwitchType*/ 22, MVT::v32i8,// ->541660
/*541638*/        OPC_Scope, 9, /*->541649*/ // 2 children in Scope
/*541640*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*541642*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBYrr), 0,
                        MVT::v32i8, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src) - Complexity = 3
                    // Dst: (VPABSBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src)
/*541649*/        /*Scope*/ 9, /*->541659*/
/*541650*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*541652*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ256rr), 0,
                        MVT::v32i8, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1) - Complexity = 3
                    // Dst: (VPABSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1)
/*541659*/        0, /*End of Scope*/
/*541660*/      /*SwitchType*/ 22, MVT::v16i16,// ->541684
/*541662*/        OPC_Scope, 9, /*->541673*/ // 2 children in Scope
/*541664*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*541666*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWYrr), 0,
                        MVT::v16i16, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src) - Complexity = 3
                    // Dst: (VPABSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src)
/*541673*/        /*Scope*/ 9, /*->541683*/
/*541674*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*541676*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ256rr), 0,
                        MVT::v16i16, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1) - Complexity = 3
                    // Dst: (VPABSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1)
/*541683*/        0, /*End of Scope*/
/*541684*/      /*SwitchType*/ 22, MVT::v8i32,// ->541708
/*541686*/        OPC_Scope, 9, /*->541697*/ // 2 children in Scope
/*541688*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*541690*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDYrr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                    // Dst: (VPABSDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src)
/*541697*/        /*Scope*/ 9, /*->541707*/
/*541698*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541700*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                    // Dst: (VPABSDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1)
/*541707*/        0, /*End of Scope*/
/*541708*/      /*SwitchType*/ 9, MVT::v8i64,// ->541719
/*541710*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541712*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPABSQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1)
/*541719*/      /*SwitchType*/ 51, MVT::v4i64,// ->541772
/*541721*/        OPC_Scope, 9, /*->541732*/ // 2 children in Scope
/*541723*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541725*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                    // Dst: (VPABSQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1)
/*541732*/        /*Scope*/ 38, /*->541771*/
/*541733*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*541735*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*541741*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*541744*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*541753*/          OPC_EmitNode1, TARGET_VAL(X86::VPABSQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*541760*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*541763*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 4, 5, 
                    // Src: (abs:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPABSQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] })), sub_ymm:{ *:[i32] })
/*541771*/        0, /*End of Scope*/
/*541772*/      /*SwitchType*/ 51, MVT::v2i64,// ->541825
/*541774*/        OPC_Scope, 9, /*->541785*/ // 2 children in Scope
/*541776*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*541778*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (abs:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                    // Dst: (VPABSQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1)
/*541785*/        /*Scope*/ 38, /*->541824*/
/*541786*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*541788*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*541794*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*541797*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*541806*/          OPC_EmitNode1, TARGET_VAL(X86::VPABSQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*541813*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*541816*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 4, 5, 
                    // Src: (abs:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPABSQZrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*541824*/        0, /*End of Scope*/
/*541825*/      /*SwitchType*/ 9, MVT::v16i32,// ->541836
/*541827*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541829*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                  // Dst: (VPABSDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1)
/*541836*/      /*SwitchType*/ 9, MVT::v32i16,// ->541847
/*541838*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*541840*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZrr), 0,
                      MVT::v32i16, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1) - Complexity = 3
                  // Dst: (VPABSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1)
/*541847*/      /*SwitchType*/ 9, MVT::v64i8,// ->541858
/*541849*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*541851*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZrr), 0,
                      MVT::v64i8, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1) - Complexity = 3
                  // Dst: (VPABSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1)
/*541858*/      0, // EndSwitchType
/*541859*/    0, /*End of Scope*/
/*541860*/  /*SwitchOpcode*/ 121|128,1/*249*/, TARGET_VAL(X86ISD::PSHUFB),// ->542113
/*541864*/    OPC_RecordChild0, // #0 = $src1
/*541865*/    OPC_Scope, 37|128,1/*165*/, /*->542033*/ // 2 children in Scope
/*541868*/      OPC_MoveChild1,
/*541869*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*541872*/      OPC_MoveChild0,
/*541873*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541876*/      OPC_RecordMemRef,
/*541877*/      OPC_RecordNode, // #1 = 'ld' chained node
/*541878*/      OPC_CheckFoldableChainNode,
/*541879*/      OPC_RecordChild1, // #2 = $src2
/*541880*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541882*/      OPC_CheckPredicate, 9, // Predicate_load
/*541884*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*541886*/      OPC_SwitchType /*3 cases */, 73, MVT::v2i64,// ->541962
/*541889*/        OPC_Scope, 22, /*->541913*/ // 3 children in Scope
/*541891*/          OPC_MoveParent,
/*541892*/          OPC_MoveParent,
/*541893*/          OPC_CheckType, MVT::v16i8,
/*541895*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*541897*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*541900*/          OPC_EmitMergeInputChains1_1,
/*541901*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pshufb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSHUFBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*541913*/        /*Scope*/ 24, /*->541938*/
/*541914*/          OPC_CheckPredicate, 48, // Predicate_memop
/*541916*/          OPC_MoveParent,
/*541917*/          OPC_MoveParent,
/*541918*/          OPC_CheckType, MVT::v16i8,
/*541920*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*541922*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*541925*/          OPC_EmitMergeInputChains1_1,
/*541926*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pshufb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PSHUFBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*541938*/        /*Scope*/ 22, /*->541961*/
/*541939*/          OPC_MoveParent,
/*541940*/          OPC_MoveParent,
/*541941*/          OPC_CheckType, MVT::v16i8,
/*541943*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*541945*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*541948*/          OPC_EmitMergeInputChains1_1,
/*541949*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pshufb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSHUFBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*541961*/        0, /*End of Scope*/
/*541962*/      /*SwitchType*/ 44, MVT::v4i64,// ->542008
/*541964*/        OPC_MoveParent,
/*541965*/        OPC_MoveParent,
/*541966*/        OPC_CheckType, MVT::v32i8,
/*541968*/        OPC_Scope, 18, /*->541988*/ // 2 children in Scope
/*541970*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*541972*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*541975*/          OPC_EmitMergeInputChains1_1,
/*541976*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pshufb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSHUFBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*541988*/        /*Scope*/ 18, /*->542007*/
/*541989*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*541991*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*541994*/          OPC_EmitMergeInputChains1_1,
/*541995*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pshufb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPSHUFBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542007*/        0, /*End of Scope*/
/*542008*/      /*SwitchType*/ 22, MVT::v8i64,// ->542032
/*542010*/        OPC_MoveParent,
/*542011*/        OPC_MoveParent,
/*542012*/        OPC_CheckType, MVT::v64i8,
/*542014*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*542016*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542019*/        OPC_EmitMergeInputChains1_1,
/*542020*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86pshufb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPSHUFBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542032*/      0, // EndSwitchType
/*542033*/    /*Scope*/ 78, /*->542112*/
/*542034*/      OPC_RecordChild1, // #1 = $src2
/*542035*/      OPC_SwitchType /*3 cases */, 35, MVT::v16i8,// ->542073
/*542038*/        OPC_Scope, 10, /*->542050*/ // 3 children in Scope
/*542040*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542042*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pshufb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSHUFBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*542050*/        /*Scope*/ 10, /*->542061*/
/*542051*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*542053*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pshufb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PSHUFBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*542061*/        /*Scope*/ 10, /*->542072*/
/*542062*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542064*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pshufb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSHUFBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*542072*/        0, /*End of Scope*/
/*542073*/      /*SwitchType*/ 24, MVT::v32i8,// ->542099
/*542075*/        OPC_Scope, 10, /*->542087*/ // 2 children in Scope
/*542077*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542079*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pshufb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSHUFBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*542087*/        /*Scope*/ 10, /*->542098*/
/*542088*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542090*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pshufb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSHUFBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*542098*/        0, /*End of Scope*/
/*542099*/      /*SwitchType*/ 10, MVT::v64i8,// ->542111
/*542101*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*542103*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86pshufb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPSHUFBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*542111*/      0, // EndSwitchType
/*542112*/    0, /*End of Scope*/
/*542113*/  /*SwitchOpcode*/ 121|128,1/*249*/, TARGET_VAL(X86ISD::VPMADDUBSW),// ->542366
/*542117*/    OPC_RecordChild0, // #0 = $src1
/*542118*/    OPC_Scope, 37|128,1/*165*/, /*->542286*/ // 2 children in Scope
/*542121*/      OPC_MoveChild1,
/*542122*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*542125*/      OPC_MoveChild0,
/*542126*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*542129*/      OPC_RecordMemRef,
/*542130*/      OPC_RecordNode, // #1 = 'ld' chained node
/*542131*/      OPC_CheckFoldableChainNode,
/*542132*/      OPC_RecordChild1, // #2 = $src2
/*542133*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542135*/      OPC_CheckPredicate, 9, // Predicate_load
/*542137*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*542139*/      OPC_SwitchType /*3 cases */, 73, MVT::v2i64,// ->542215
/*542142*/        OPC_Scope, 22, /*->542166*/ // 3 children in Scope
/*542144*/          OPC_MoveParent,
/*542145*/          OPC_MoveParent,
/*542146*/          OPC_CheckType, MVT::v8i16,
/*542148*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542150*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542153*/          OPC_EmitMergeInputChains1_1,
/*542154*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddubsw:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMADDUBSWrm:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542166*/        /*Scope*/ 24, /*->542191*/
/*542167*/          OPC_CheckPredicate, 48, // Predicate_memop
/*542169*/          OPC_MoveParent,
/*542170*/          OPC_MoveParent,
/*542171*/          OPC_CheckType, MVT::v8i16,
/*542173*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*542175*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542178*/          OPC_EmitMergeInputChains1_1,
/*542179*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMADDUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddubsw:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PMADDUBSWrm:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542191*/        /*Scope*/ 22, /*->542214*/
/*542192*/          OPC_MoveParent,
/*542193*/          OPC_MoveParent,
/*542194*/          OPC_CheckType, MVT::v8i16,
/*542196*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542198*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542201*/          OPC_EmitMergeInputChains1_1,
/*542202*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddubsw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMADDUBSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542214*/        0, /*End of Scope*/
/*542215*/      /*SwitchType*/ 44, MVT::v4i64,// ->542261
/*542217*/        OPC_MoveParent,
/*542218*/        OPC_MoveParent,
/*542219*/        OPC_CheckType, MVT::v16i16,
/*542221*/        OPC_Scope, 18, /*->542241*/ // 2 children in Scope
/*542223*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542225*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542228*/          OPC_EmitMergeInputChains1_1,
/*542229*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddubsw:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMADDUBSWYrm:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542241*/        /*Scope*/ 18, /*->542260*/
/*542242*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542244*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542247*/          OPC_EmitMergeInputChains1_1,
/*542248*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddubsw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMADDUBSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542260*/        0, /*End of Scope*/
/*542261*/      /*SwitchType*/ 22, MVT::v8i64,// ->542285
/*542263*/        OPC_MoveParent,
/*542264*/        OPC_MoveParent,
/*542265*/        OPC_CheckType, MVT::v32i16,
/*542267*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*542269*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542272*/        OPC_EmitMergeInputChains1_1,
/*542273*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86vpmaddubsw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPMADDUBSWZrm:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542285*/      0, // EndSwitchType
/*542286*/    /*Scope*/ 78, /*->542365*/
/*542287*/      OPC_RecordChild1, // #1 = $src2
/*542288*/      OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->542326
/*542291*/        OPC_Scope, 10, /*->542303*/ // 3 children in Scope
/*542293*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542295*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vpmaddubsw:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPMADDUBSWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*542303*/        /*Scope*/ 10, /*->542314*/
/*542304*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*542306*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMADDUBSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vpmaddubsw:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PMADDUBSWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*542314*/        /*Scope*/ 10, /*->542325*/
/*542315*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542317*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vpmaddubsw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPMADDUBSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*542325*/        0, /*End of Scope*/
/*542326*/      /*SwitchType*/ 24, MVT::v16i16,// ->542352
/*542328*/        OPC_Scope, 10, /*->542340*/ // 2 children in Scope
/*542330*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542332*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vpmaddubsw:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPMADDUBSWYrr:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*542340*/        /*Scope*/ 10, /*->542351*/
/*542341*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542343*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vpmaddubsw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPMADDUBSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*542351*/        0, /*End of Scope*/
/*542352*/      /*SwitchType*/ 10, MVT::v32i16,// ->542364
/*542354*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*542356*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDUBSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vpmaddubsw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPMADDUBSWZrr:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*542364*/      0, // EndSwitchType
/*542365*/    0, /*End of Scope*/
/*542366*/  /*SwitchOpcode*/ 38|128,3/*422*/, TARGET_VAL(X86ISD::MULHRS),// ->542792
/*542370*/    OPC_Scope, 38|128,1/*166*/, /*->542539*/ // 3 children in Scope
/*542373*/      OPC_RecordChild0, // #0 = $src1
/*542374*/      OPC_MoveChild1,
/*542375*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*542378*/      OPC_MoveChild0,
/*542379*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*542382*/      OPC_RecordMemRef,
/*542383*/      OPC_RecordNode, // #1 = 'ld' chained node
/*542384*/      OPC_CheckFoldableChainNode,
/*542385*/      OPC_RecordChild1, // #2 = $src2
/*542386*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542388*/      OPC_CheckPredicate, 9, // Predicate_load
/*542390*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*542392*/      OPC_SwitchType /*3 cases */, 73, MVT::v2i64,// ->542468
/*542395*/        OPC_Scope, 22, /*->542419*/ // 3 children in Scope
/*542397*/          OPC_MoveParent,
/*542398*/          OPC_MoveParent,
/*542399*/          OPC_CheckType, MVT::v8i16,
/*542401*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542403*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542406*/          OPC_EmitMergeInputChains1_1,
/*542407*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHRSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542419*/        /*Scope*/ 24, /*->542444*/
/*542420*/          OPC_CheckPredicate, 48, // Predicate_memop
/*542422*/          OPC_MoveParent,
/*542423*/          OPC_MoveParent,
/*542424*/          OPC_CheckType, MVT::v8i16,
/*542426*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*542428*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542431*/          OPC_EmitMergeInputChains1_1,
/*542432*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHRSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PMULHRSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542444*/        /*Scope*/ 22, /*->542467*/
/*542445*/          OPC_MoveParent,
/*542446*/          OPC_MoveParent,
/*542447*/          OPC_CheckType, MVT::v8i16,
/*542449*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542451*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542454*/          OPC_EmitMergeInputChains1_1,
/*542455*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHRSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542467*/        0, /*End of Scope*/
/*542468*/      /*SwitchType*/ 44, MVT::v4i64,// ->542514
/*542470*/        OPC_MoveParent,
/*542471*/        OPC_MoveParent,
/*542472*/        OPC_CheckType, MVT::v16i16,
/*542474*/        OPC_Scope, 18, /*->542494*/ // 2 children in Scope
/*542476*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542478*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542481*/          OPC_EmitMergeInputChains1_1,
/*542482*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHRSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542494*/        /*Scope*/ 18, /*->542513*/
/*542495*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542497*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542500*/          OPC_EmitMergeInputChains1_1,
/*542501*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPMULHRSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542513*/        0, /*End of Scope*/
/*542514*/      /*SwitchType*/ 22, MVT::v8i64,// ->542538
/*542516*/        OPC_MoveParent,
/*542517*/        OPC_MoveParent,
/*542518*/        OPC_CheckType, MVT::v32i16,
/*542520*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*542522*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542525*/        OPC_EmitMergeInputChains1_1,
/*542526*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86mulhrs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPMULHRSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542538*/      0, // EndSwitchType
/*542539*/    /*Scope*/ 42|128,1/*170*/, /*->542711*/
/*542541*/      OPC_MoveChild0,
/*542542*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*542545*/      OPC_MoveChild0,
/*542546*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*542549*/      OPC_RecordMemRef,
/*542550*/      OPC_RecordNode, // #0 = 'ld' chained node
/*542551*/      OPC_CheckFoldableChainNode,
/*542552*/      OPC_RecordChild1, // #1 = $src2
/*542553*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542555*/      OPC_CheckPredicate, 9, // Predicate_load
/*542557*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*542559*/      OPC_SwitchType /*3 cases */, 76, MVT::v2i64,// ->542638
/*542562*/        OPC_Scope, 23, /*->542587*/ // 3 children in Scope
/*542564*/          OPC_MoveParent,
/*542565*/          OPC_MoveParent,
/*542566*/          OPC_RecordChild1, // #2 = $src1
/*542567*/          OPC_CheckType, MVT::v8i16,
/*542569*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542571*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542574*/          OPC_EmitMergeInputChains1_0,
/*542575*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHRSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542587*/        /*Scope*/ 25, /*->542613*/
/*542588*/          OPC_CheckPredicate, 48, // Predicate_memop
/*542590*/          OPC_MoveParent,
/*542591*/          OPC_MoveParent,
/*542592*/          OPC_RecordChild1, // #2 = $src1
/*542593*/          OPC_CheckType, MVT::v8i16,
/*542595*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*542597*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542600*/          OPC_EmitMergeInputChains1_0,
/*542601*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHRSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>), VR128:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (PMULHRSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542613*/        /*Scope*/ 23, /*->542637*/
/*542614*/          OPC_MoveParent,
/*542615*/          OPC_MoveParent,
/*542616*/          OPC_RecordChild1, // #2 = $src1
/*542617*/          OPC_CheckType, MVT::v8i16,
/*542619*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542621*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542624*/          OPC_EmitMergeInputChains1_0,
/*542625*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHRSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542637*/        0, /*End of Scope*/
/*542638*/      /*SwitchType*/ 45, MVT::v4i64,// ->542685
/*542640*/        OPC_MoveParent,
/*542641*/        OPC_MoveParent,
/*542642*/        OPC_RecordChild1, // #2 = $src1
/*542643*/        OPC_CheckType, MVT::v16i16,
/*542645*/        OPC_Scope, 18, /*->542665*/ // 2 children in Scope
/*542647*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542649*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542652*/          OPC_EmitMergeInputChains1_0,
/*542653*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256:{ *:[v16i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHRSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542665*/        /*Scope*/ 18, /*->542684*/
/*542666*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542668*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542671*/          OPC_EmitMergeInputChains1_0,
/*542672*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                    // Dst: (VPMULHRSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542684*/        0, /*End of Scope*/
/*542685*/      /*SwitchType*/ 23, MVT::v8i64,// ->542710
/*542687*/        OPC_MoveParent,
/*542688*/        OPC_MoveParent,
/*542689*/        OPC_RecordChild1, // #2 = $src1
/*542690*/        OPC_CheckType, MVT::v32i16,
/*542692*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*542694*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542697*/        OPC_EmitMergeInputChains1_0,
/*542698*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86mulhrs:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                  // Dst: (VPMULHRSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542710*/      0, // EndSwitchType
/*542711*/    /*Scope*/ 79, /*->542791*/
/*542712*/      OPC_RecordChild0, // #0 = $src1
/*542713*/      OPC_RecordChild1, // #1 = $src2
/*542714*/      OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->542752
/*542717*/        OPC_Scope, 10, /*->542729*/ // 3 children in Scope
/*542719*/          OPC_CheckPatternPredicate, 121, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542721*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86mulhrs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHRSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*542729*/        /*Scope*/ 10, /*->542740*/
/*542730*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*542732*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHRSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86mulhrs:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PMULHRSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*542740*/        /*Scope*/ 10, /*->542751*/
/*542741*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542743*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86mulhrs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHRSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*542751*/        0, /*End of Scope*/
/*542752*/      /*SwitchType*/ 24, MVT::v16i16,// ->542778
/*542754*/        OPC_Scope, 10, /*->542766*/ // 2 children in Scope
/*542756*/          OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*542758*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86mulhrs:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHRSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*542766*/        /*Scope*/ 10, /*->542777*/
/*542767*/          OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*542769*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86mulhrs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPMULHRSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*542777*/        0, /*End of Scope*/
/*542778*/      /*SwitchType*/ 10, MVT::v32i16,// ->542790
/*542780*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*542782*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86mulhrs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPMULHRSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*542790*/      0, // EndSwitchType
/*542791*/    0, /*End of Scope*/
/*542792*/  /*SwitchOpcode*/ 119|128,1/*247*/, TARGET_VAL(X86ISD::HADD),// ->543043
/*542796*/    OPC_RecordChild0, // #0 = $src1
/*542797*/    OPC_Scope, 34|128,1/*162*/, /*->542962*/ // 2 children in Scope
/*542800*/      OPC_MoveChild1,
/*542801*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*542804*/      OPC_MoveChild0,
/*542805*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*542808*/      OPC_RecordMemRef,
/*542809*/      OPC_RecordNode, // #1 = 'ld' chained node
/*542810*/      OPC_CheckFoldableChainNode,
/*542811*/      OPC_RecordChild1, // #2 = $src2
/*542812*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542814*/      OPC_CheckPredicate, 9, // Predicate_load
/*542816*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*542818*/      OPC_SwitchType /*2 cases */, 94, MVT::v2i64,// ->542915
/*542821*/        OPC_Scope, 44, /*->542867*/ // 2 children in Scope
/*542823*/          OPC_MoveParent,
/*542824*/          OPC_MoveParent,
/*542825*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->542846
/*542828*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*542830*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542833*/            OPC_EmitMergeInputChains1_1,
/*542834*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86hadd:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPHADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542846*/          /*SwitchType*/ 18, MVT::v4i32,// ->542866
/*542848*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*542850*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542853*/            OPC_EmitMergeInputChains1_1,
/*542854*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86hadd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPHADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542866*/          0, // EndSwitchType
/*542867*/        /*Scope*/ 46, /*->542914*/
/*542868*/          OPC_CheckPredicate, 48, // Predicate_memop
/*542870*/          OPC_MoveParent,
/*542871*/          OPC_MoveParent,
/*542872*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->542893
/*542875*/            OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*542877*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542880*/            OPC_EmitMergeInputChains1_1,
/*542881*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PHADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86hadd:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PHADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542893*/          /*SwitchType*/ 18, MVT::v4i32,// ->542913
/*542895*/            OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*542897*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542900*/            OPC_EmitMergeInputChains1_1,
/*542901*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PHADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86hadd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PHADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542913*/          0, // EndSwitchType
/*542914*/        0, /*End of Scope*/
/*542915*/      /*SwitchType*/ 44, MVT::v4i64,// ->542961
/*542917*/        OPC_MoveParent,
/*542918*/        OPC_MoveParent,
/*542919*/        OPC_SwitchType /*2 cases */, 18, MVT::v16i16,// ->542940
/*542922*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*542924*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542927*/          OPC_EmitMergeInputChains1_1,
/*542928*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86hadd:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPHADDWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542940*/        /*SwitchType*/ 18, MVT::v8i32,// ->542960
/*542942*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*542944*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*542947*/          OPC_EmitMergeInputChains1_1,
/*542948*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86hadd:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPHADDDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*542960*/        0, // EndSwitchType
/*542961*/      0, // EndSwitchType
/*542962*/    /*Scope*/ 79, /*->543042*/
/*542963*/      OPC_RecordChild1, // #1 = $src2
/*542964*/      OPC_SwitchType /*4 cases */, 24, MVT::v8i16,// ->542991
/*542967*/        OPC_Scope, 10, /*->542979*/ // 2 children in Scope
/*542969*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*542971*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86hadd:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPHADDWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*542979*/        /*Scope*/ 10, /*->542990*/
/*542980*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*542982*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PHADDWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86hadd:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PHADDWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*542990*/        0, /*End of Scope*/
/*542991*/      /*SwitchType*/ 24, MVT::v4i32,// ->543017
/*542993*/        OPC_Scope, 10, /*->543005*/ // 2 children in Scope
/*542995*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*542997*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86hadd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPHADDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*543005*/        /*Scope*/ 10, /*->543016*/
/*543006*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*543008*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PHADDDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86hadd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PHADDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*543016*/        0, /*End of Scope*/
/*543017*/      /*SwitchType*/ 10, MVT::v16i16,// ->543029
/*543019*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*543021*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDWYrr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86hadd:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                  // Dst: (VPHADDWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*543029*/      /*SwitchType*/ 10, MVT::v8i32,// ->543041
/*543031*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*543033*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDDYrr), 0,
                      MVT::v8i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86hadd:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                  // Dst: (VPHADDDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*543041*/      0, // EndSwitchType
/*543042*/    0, /*End of Scope*/
/*543043*/  /*SwitchOpcode*/ 119|128,1/*247*/, TARGET_VAL(X86ISD::HSUB),// ->543294
/*543047*/    OPC_RecordChild0, // #0 = $src1
/*543048*/    OPC_Scope, 34|128,1/*162*/, /*->543213*/ // 2 children in Scope
/*543051*/      OPC_MoveChild1,
/*543052*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*543055*/      OPC_MoveChild0,
/*543056*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543059*/      OPC_RecordMemRef,
/*543060*/      OPC_RecordNode, // #1 = 'ld' chained node
/*543061*/      OPC_CheckFoldableChainNode,
/*543062*/      OPC_RecordChild1, // #2 = $src2
/*543063*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543065*/      OPC_CheckPredicate, 9, // Predicate_load
/*543067*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*543069*/      OPC_SwitchType /*2 cases */, 94, MVT::v2i64,// ->543166
/*543072*/        OPC_Scope, 44, /*->543118*/ // 2 children in Scope
/*543074*/          OPC_MoveParent,
/*543075*/          OPC_MoveParent,
/*543076*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->543097
/*543079*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*543081*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*543084*/            OPC_EmitMergeInputChains1_1,
/*543085*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86hsub:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPHSUBWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*543097*/          /*SwitchType*/ 18, MVT::v4i32,// ->543117
/*543099*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*543101*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*543104*/            OPC_EmitMergeInputChains1_1,
/*543105*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86hsub:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPHSUBDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*543117*/          0, // EndSwitchType
/*543118*/        /*Scope*/ 46, /*->543165*/
/*543119*/          OPC_CheckPredicate, 48, // Predicate_memop
/*543121*/          OPC_MoveParent,
/*543122*/          OPC_MoveParent,
/*543123*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->543144
/*543126*/            OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*543128*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*543131*/            OPC_EmitMergeInputChains1_1,
/*543132*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PHSUBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86hsub:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PHSUBWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*543144*/          /*SwitchType*/ 18, MVT::v4i32,// ->543164
/*543146*/            OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*543148*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*543151*/            OPC_EmitMergeInputChains1_1,
/*543152*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PHSUBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86hsub:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PHSUBDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*543164*/          0, // EndSwitchType
/*543165*/        0, /*End of Scope*/
/*543166*/      /*SwitchType*/ 44, MVT::v4i64,// ->543212
/*543168*/        OPC_MoveParent,
/*543169*/        OPC_MoveParent,
/*543170*/        OPC_SwitchType /*2 cases */, 18, MVT::v16i16,// ->543191
/*543173*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*543175*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*543178*/          OPC_EmitMergeInputChains1_1,
/*543179*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86hsub:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPHSUBWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*543191*/        /*SwitchType*/ 18, MVT::v8i32,// ->543211
/*543193*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*543195*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*543198*/          OPC_EmitMergeInputChains1_1,
/*543199*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86hsub:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPHSUBDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*543211*/        0, // EndSwitchType
/*543212*/      0, // EndSwitchType
/*543213*/    /*Scope*/ 79, /*->543293*/
/*543214*/      OPC_RecordChild1, // #1 = $src2
/*543215*/      OPC_SwitchType /*4 cases */, 24, MVT::v8i16,// ->543242
/*543218*/        OPC_Scope, 10, /*->543230*/ // 2 children in Scope
/*543220*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*543222*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86hsub:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPHSUBWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*543230*/        /*Scope*/ 10, /*->543241*/
/*543231*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*543233*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PHSUBWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86hsub:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PHSUBWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*543241*/        0, /*End of Scope*/
/*543242*/      /*SwitchType*/ 24, MVT::v4i32,// ->543268
/*543244*/        OPC_Scope, 10, /*->543256*/ // 2 children in Scope
/*543246*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*543248*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86hsub:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPHSUBDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*543256*/        /*Scope*/ 10, /*->543267*/
/*543257*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*543259*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PHSUBDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86hsub:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PHSUBDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*543267*/        0, /*End of Scope*/
/*543268*/      /*SwitchType*/ 10, MVT::v16i16,// ->543280
/*543270*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*543272*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBWYrr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86hsub:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                  // Dst: (VPHSUBWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*543280*/      /*SwitchType*/ 10, MVT::v8i32,// ->543292
/*543282*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*543284*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBDYrr), 0,
                      MVT::v8i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86hsub:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                  // Dst: (VPHSUBDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*543292*/      0, // EndSwitchType
/*543293*/    0, /*End of Scope*/
/*543294*/  /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(X86ISD::PINSRB),// ->543443
/*543298*/    OPC_RecordChild0, // #0 = $src1
/*543299*/    OPC_Scope, 89, /*->543390*/ // 2 children in Scope
/*543301*/      OPC_MoveChild1,
/*543302*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543305*/      OPC_RecordMemRef,
/*543306*/      OPC_RecordNode, // #1 = 'ld' chained node
/*543307*/      OPC_CheckFoldableChainNode,
/*543308*/      OPC_RecordChild1, // #2 = $src2
/*543309*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543311*/      OPC_CheckPredicate, 64, // Predicate_extload
/*543313*/      OPC_CheckPredicate, 61, // Predicate_extloadi8
/*543315*/      OPC_MoveParent,
/*543316*/      OPC_RecordChild2, // #3 = $src3
/*543317*/      OPC_MoveChild2,
/*543318*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*543321*/      OPC_MoveParent,
/*543322*/      OPC_Scope, 21, /*->543345*/ // 3 children in Scope
/*543324*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*543326*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*543329*/        OPC_EmitMergeInputChains1_1,
/*543330*/        OPC_EmitConvertToTarget, 3,
/*543332*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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:{ *:[i8] }):$src3)
/*543345*/      /*Scope*/ 21, /*->543367*/
/*543346*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*543348*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*543351*/        OPC_EmitMergeInputChains1_1,
/*543352*/        OPC_EmitConvertToTarget, 3,
/*543354*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PINSRBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      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:{ *:[i8] }):$src3)
/*543367*/      /*Scope*/ 21, /*->543389*/
/*543368*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*543370*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*543373*/        OPC_EmitMergeInputChains1_1,
/*543374*/        OPC_EmitConvertToTarget, 3,
/*543376*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86pinsrb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>, (imm:{ *:[iPTR] }):$src3) - Complexity = 28
                  // Dst: (VPINSRBZrm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*543389*/      0, /*End of Scope*/
/*543390*/    /*Scope*/ 51, /*->543442*/
/*543391*/      OPC_RecordChild1, // #1 = $src2
/*543392*/      OPC_RecordChild2, // #2 = $src3
/*543393*/      OPC_MoveChild2,
/*543394*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*543397*/      OPC_MoveParent,
/*543398*/      OPC_Scope, 13, /*->543413*/ // 3 children in Scope
/*543400*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*543402*/        OPC_EmitConvertToTarget, 2,
/*543404*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRBrr), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86pinsrb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$src3) - Complexity = 6
                  // Dst: (VPINSRBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*543413*/      /*Scope*/ 13, /*->543427*/
/*543414*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*543416*/        OPC_EmitConvertToTarget, 2,
/*543418*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PINSRBrr), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86pinsrb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$src3) - Complexity = 6
                  // Dst: (PINSRBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*543427*/      /*Scope*/ 13, /*->543441*/
/*543428*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*543430*/        OPC_EmitConvertToTarget, 2,
/*543432*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRBZrr), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86pinsrb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$src3) - Complexity = 6
                  // Dst: (VPINSRBZrr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*543441*/      0, /*End of Scope*/
/*543442*/    0, /*End of Scope*/
/*543443*/  /*SwitchOpcode*/ 45|128,2/*301*/, TARGET_VAL(ISD::INSERT_VECTOR_ELT),// ->543748
/*543447*/    OPC_RecordChild0, // #0 = $src1
/*543448*/    OPC_Scope, 66|128,1/*194*/, /*->543645*/ // 2 children in Scope
/*543451*/      OPC_MoveChild1,
/*543452*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543455*/      OPC_RecordMemRef,
/*543456*/      OPC_RecordNode, // #1 = 'ld' chained node
/*543457*/      OPC_CheckFoldableChainNode,
/*543458*/      OPC_RecordChild1, // #2 = $src2
/*543459*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543461*/      OPC_Scope, 57, /*->543520*/ // 4 children in Scope
/*543463*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*543465*/        OPC_MoveParent,
/*543466*/        OPC_RecordChild2, // #3 = $src3
/*543467*/        OPC_MoveChild2,
/*543468*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*543471*/        OPC_MoveParent,
/*543472*/        OPC_CheckType, MVT::v4i32,
/*543474*/        OPC_Scope, 21, /*->543497*/ // 2 children in Scope
/*543476*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*543478*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*543481*/          OPC_EmitMergeInputChains1_1,
/*543482*/          OPC_EmitConvertToTarget, 3,
/*543484*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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:{ *:[i8] }):$src3)
/*543497*/        /*Scope*/ 21, /*->543519*/
/*543498*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*543500*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*543503*/          OPC_EmitMergeInputChains1_1,
/*543504*/          OPC_EmitConvertToTarget, 3,
/*543506*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PINSRDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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:{ *:[i8] }):$src3)
/*543519*/        0, /*End of Scope*/
/*543520*/      /*Scope*/ 57, /*->543578*/
/*543521*/        OPC_CheckPredicate, 9, // Predicate_load
/*543523*/        OPC_MoveParent,
/*543524*/        OPC_RecordChild2, // #3 = $src3
/*543525*/        OPC_MoveChild2,
/*543526*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*543529*/        OPC_MoveParent,
/*543530*/        OPC_CheckType, MVT::v2i64,
/*543532*/        OPC_Scope, 21, /*->543555*/ // 2 children in Scope
/*543534*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*543536*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*543539*/          OPC_EmitMergeInputChains1_1,
/*543540*/          OPC_EmitConvertToTarget, 3,
/*543542*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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:{ *:[i8] }):$src3)
/*543555*/        /*Scope*/ 21, /*->543577*/
/*543556*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*543558*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*543561*/          OPC_EmitMergeInputChains1_1,
/*543562*/          OPC_EmitConvertToTarget, 3,
/*543564*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PINSRQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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:{ *:[i8] }):$src3)
/*543577*/        0, /*End of Scope*/
/*543578*/      /*Scope*/ 32, /*->543611*/
/*543579*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*543581*/        OPC_MoveParent,
/*543582*/        OPC_RecordChild2, // #3 = $src3
/*543583*/        OPC_MoveChild2,
/*543584*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*543587*/        OPC_MoveParent,
/*543588*/        OPC_CheckType, MVT::v4i32,
/*543590*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*543592*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*543595*/        OPC_EmitMergeInputChains1_1,
/*543596*/        OPC_EmitConvertToTarget, 3,
/*543598*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (insertelt:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:{ *:[iPTR] }):$src3) - Complexity = 28
                  // Dst: (VPINSRDZrm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*543611*/      /*Scope*/ 32, /*->543644*/
/*543612*/        OPC_CheckPredicate, 9, // Predicate_load
/*543614*/        OPC_MoveParent,
/*543615*/        OPC_RecordChild2, // #3 = $src3
/*543616*/        OPC_MoveChild2,
/*543617*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*543620*/        OPC_MoveParent,
/*543621*/        OPC_CheckType, MVT::v2i64,
/*543623*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*543625*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*543628*/        OPC_EmitMergeInputChains1_1,
/*543629*/        OPC_EmitConvertToTarget, 3,
/*543631*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (insertelt:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }):$src3) - Complexity = 28
                  // Dst: (VPINSRQZrm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*543644*/      0, /*End of Scope*/
/*543645*/    /*Scope*/ 101, /*->543747*/
/*543646*/      OPC_RecordChild1, // #1 = $src2
/*543647*/      OPC_RecordChild2, // #2 = $src3
/*543648*/      OPC_MoveChild2,
/*543649*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*543652*/      OPC_MoveParent,
/*543653*/      OPC_SwitchType /*2 cases */, 44, MVT::v4i32,// ->543700
/*543656*/        OPC_Scope, 13, /*->543671*/ // 3 children in Scope
/*543658*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*543660*/          OPC_EmitConvertToTarget, 2,
/*543662*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRDrr), 0,
                        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:{ *:[i8] }):$src3)
/*543671*/        /*Scope*/ 13, /*->543685*/
/*543672*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*543674*/          OPC_EmitConvertToTarget, 2,
/*543676*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PINSRDrr), 0,
                        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:{ *:[i8] }):$src3)
/*543685*/        /*Scope*/ 13, /*->543699*/
/*543686*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*543688*/          OPC_EmitConvertToTarget, 2,
/*543690*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRDZrr), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (insertelt:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, GR32:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$src3) - Complexity = 6
                    // Dst: (VPINSRDZrr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, GR32:{ *:[i32] }:$src2, (imm:{ *:[i8] }):$src3)
/*543699*/        0, /*End of Scope*/
/*543700*/      /*SwitchType*/ 44, MVT::v2i64,// ->543746
/*543702*/        OPC_Scope, 13, /*->543717*/ // 3 children in Scope
/*543704*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*543706*/          OPC_EmitConvertToTarget, 2,
/*543708*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRQrr), 0,
                        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:{ *:[i8] }):$src3)
/*543717*/        /*Scope*/ 13, /*->543731*/
/*543718*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*543720*/          OPC_EmitConvertToTarget, 2,
/*543722*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PINSRQrr), 0,
                        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:{ *:[i8] }):$src3)
/*543731*/        /*Scope*/ 13, /*->543745*/
/*543732*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*543734*/          OPC_EmitConvertToTarget, 2,
/*543736*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPINSRQZrr), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (insertelt:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, GR64:{ *:[i64] }:$src2, (imm:{ *:[iPTR] }):$src3) - Complexity = 6
                    // Dst: (VPINSRQZrr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, GR64:{ *:[i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*543745*/        0, /*End of Scope*/
/*543746*/      0, // EndSwitchType
/*543747*/    0, /*End of Scope*/
/*543748*/  /*SwitchOpcode*/ 91, TARGET_VAL(X86ISD::PHMINPOS),// ->543842
/*543751*/    OPC_Scope, 64, /*->543817*/ // 2 children in Scope
/*543753*/      OPC_MoveChild0,
/*543754*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*543757*/      OPC_MoveChild0,
/*543758*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543761*/      OPC_RecordMemRef,
/*543762*/      OPC_RecordNode, // #0 = 'ld' chained node
/*543763*/      OPC_CheckFoldableChainNode,
/*543764*/      OPC_RecordChild1, // #1 = $src
/*543765*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543767*/      OPC_CheckPredicate, 9, // Predicate_load
/*543769*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*543771*/      OPC_CheckType, MVT::v2i64,
/*543773*/      OPC_Scope, 19, /*->543794*/ // 2 children in Scope
/*543775*/        OPC_MoveParent,
/*543776*/        OPC_MoveParent,
/*543777*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*543779*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*543782*/        OPC_EmitMergeInputChains1_0,
/*543783*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHMINPOSUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86phminpos:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPHMINPOSUWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*543794*/      /*Scope*/ 21, /*->543816*/
/*543795*/        OPC_CheckPredicate, 48, // Predicate_memop
/*543797*/        OPC_MoveParent,
/*543798*/        OPC_MoveParent,
/*543799*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*543801*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*543804*/        OPC_EmitMergeInputChains1_0,
/*543805*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PHMINPOSUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86phminpos:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                  // Dst: (PHMINPOSUWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*543816*/      0, /*End of Scope*/
/*543817*/    /*Scope*/ 23, /*->543841*/
/*543818*/      OPC_RecordChild0, // #0 = $src
/*543819*/      OPC_Scope, 9, /*->543830*/ // 2 children in Scope
/*543821*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*543823*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHMINPOSUWrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86phminpos:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                  // Dst: (VPHMINPOSUWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src)
/*543830*/      /*Scope*/ 9, /*->543840*/
/*543831*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*543833*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PHMINPOSUWrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86phminpos:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                  // Dst: (PHMINPOSUWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src)
/*543840*/      0, /*End of Scope*/
/*543841*/    0, /*End of Scope*/
/*543842*/  /*SwitchOpcode*/ 124|128,13/*1788*/, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->545634
/*543846*/    OPC_Scope, 93|128,3/*477*/, /*->544326*/ // 4 children in Scope
/*543849*/      OPC_MoveChild0,
/*543850*/      OPC_SwitchOpcode /*2 cases */, 91|128,2/*347*/, TARGET_VAL(ISD::BITCAST),// ->544202
/*543855*/        OPC_MoveChild0,
/*543856*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543859*/        OPC_RecordMemRef,
/*543860*/        OPC_RecordNode, // #0 = 'ld' chained node
/*543861*/        OPC_CheckFoldableChainNode,
/*543862*/        OPC_RecordChild1, // #1 = $src
/*543863*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543865*/        OPC_CheckPredicate, 9, // Predicate_load
/*543867*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*543869*/        OPC_SwitchType /*2 cases */, 1|128,2/*257*/, MVT::v2i64,// ->544130
/*543873*/          OPC_MoveParent,
/*543874*/          OPC_Scope, 123, /*->543999*/ // 5 children in Scope
/*543876*/            OPC_MoveParent,
/*543877*/            OPC_SwitchType /*3 cases */, 38, MVT::v8i32,// ->543918
/*543880*/              OPC_Scope, 17, /*->543899*/ // 2 children in Scope
/*543882*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*543884*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*543887*/                OPC_EmitMergeInputChains1_0,
/*543888*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI128), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86SubVBroadcast:{ *:[v8i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VBROADCASTI128:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*543899*/              /*Scope*/ 17, /*->543917*/
/*543900*/                OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*543902*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*543905*/                OPC_EmitMergeInputChains1_0,
/*543906*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF128), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86SubVBroadcast:{ *:[v8i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VBROADCASTF128:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*543917*/              0, /*End of Scope*/
/*543918*/            /*SwitchType*/ 38, MVT::v16i16,// ->543958
/*543920*/              OPC_Scope, 17, /*->543939*/ // 2 children in Scope
/*543922*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*543924*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*543927*/                OPC_EmitMergeInputChains1_0,
/*543928*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI128), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86SubVBroadcast:{ *:[v16i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VBROADCASTI128:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*543939*/              /*Scope*/ 17, /*->543957*/
/*543940*/                OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*543942*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*543945*/                OPC_EmitMergeInputChains1_0,
/*543946*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF128), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86SubVBroadcast:{ *:[v16i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VBROADCASTF128:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*543957*/              0, /*End of Scope*/
/*543958*/            /*SwitchType*/ 38, MVT::v32i8,// ->543998
/*543960*/              OPC_Scope, 17, /*->543979*/ // 2 children in Scope
/*543962*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*543964*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*543967*/                OPC_EmitMergeInputChains1_0,
/*543968*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI128), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86SubVBroadcast:{ *:[v32i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VBROADCASTI128:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*543979*/              /*Scope*/ 17, /*->543997*/
/*543980*/                OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*543982*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*543985*/                OPC_EmitMergeInputChains1_0,
/*543986*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF128), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (X86SubVBroadcast:{ *:[v32i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                          // Dst: (VBROADCASTF128:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*543997*/              0, /*End of Scope*/
/*543998*/            0, // EndSwitchType
/*543999*/          /*Scope*/ 22, /*->544022*/
/*544000*/            OPC_CheckType, MVT::v4i32,
/*544002*/            OPC_MoveParent,
/*544003*/            OPC_CheckType, MVT::v16i32,
/*544005*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544007*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544010*/            OPC_EmitMergeInputChains1_0,
/*544011*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86SubVBroadcast:{ *:[v16i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VBROADCASTI32X4rm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*544022*/          /*Scope*/ 22, /*->544045*/
/*544023*/            OPC_CheckType, MVT::v8i16,
/*544025*/            OPC_MoveParent,
/*544026*/            OPC_CheckType, MVT::v32i16,
/*544028*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544030*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544033*/            OPC_EmitMergeInputChains1_0,
/*544034*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86SubVBroadcast:{ *:[v32i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VBROADCASTI32X4rm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*544045*/          /*Scope*/ 22, /*->544068*/
/*544046*/            OPC_CheckType, MVT::v16i8,
/*544048*/            OPC_MoveParent,
/*544049*/            OPC_CheckType, MVT::v64i8,
/*544051*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544053*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544056*/            OPC_EmitMergeInputChains1_0,
/*544057*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86SubVBroadcast:{ *:[v64i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VBROADCASTI32X4rm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)
/*544068*/          /*Scope*/ 60, /*->544129*/
/*544069*/            OPC_MoveParent,
/*544070*/            OPC_SwitchType /*3 cases */, 17, MVT::v8i32,// ->544090
/*544073*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*544075*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544078*/              OPC_EmitMergeInputChains1_0,
/*544079*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86SubVBroadcast:{ *:[v8i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VBROADCASTI32X4Z256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*544090*/            /*SwitchType*/ 17, MVT::v16i16,// ->544109
/*544092*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*544094*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544097*/              OPC_EmitMergeInputChains1_0,
/*544098*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86SubVBroadcast:{ *:[v16i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VBROADCASTI32X4Z256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*544109*/            /*SwitchType*/ 17, MVT::v32i8,// ->544128
/*544111*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*544113*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544116*/              OPC_EmitMergeInputChains1_0,
/*544117*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86SubVBroadcast:{ *:[v32i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VBROADCASTI32X4Z256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*544128*/            0, // EndSwitchType
/*544129*/          0, /*End of Scope*/
/*544130*/        /*SwitchType*/ 69, MVT::v4i64,// ->544201
/*544132*/          OPC_MoveParent,
/*544133*/          OPC_SwitchType /*3 cases */, 20, MVT::v8i32,// ->544156
/*544136*/            OPC_MoveParent,
/*544137*/            OPC_CheckType, MVT::v16i32,
/*544139*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544141*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544144*/            OPC_EmitMergeInputChains1_0,
/*544145*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86SubVBroadcast:{ *:[v16i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VBROADCASTI64X4rm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*544156*/          /*SwitchType*/ 20, MVT::v16i16,// ->544178
/*544158*/            OPC_MoveParent,
/*544159*/            OPC_CheckType, MVT::v32i16,
/*544161*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544163*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544166*/            OPC_EmitMergeInputChains1_0,
/*544167*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86SubVBroadcast:{ *:[v32i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VBROADCASTI64X4rm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*544178*/          /*SwitchType*/ 20, MVT::v32i8,// ->544200
/*544180*/            OPC_MoveParent,
/*544181*/            OPC_CheckType, MVT::v64i8,
/*544183*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544185*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544188*/            OPC_EmitMergeInputChains1_0,
/*544189*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86SubVBroadcast:{ *:[v64i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VBROADCASTI64X4rm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)
/*544200*/          0, // EndSwitchType
/*544201*/        0, // EndSwitchType
/*544202*/      /*SwitchOpcode*/ 120, TARGET_VAL(ISD::LOAD),// ->544325
/*544205*/        OPC_RecordMemRef,
/*544206*/        OPC_RecordNode, // #0 = 'ld' chained node
/*544207*/        OPC_RecordChild1, // #1 = $src
/*544208*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*544210*/        OPC_CheckPredicate, 9, // Predicate_load
/*544212*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*544214*/        OPC_Scope, 41, /*->544257*/ // 4 children in Scope
/*544216*/          OPC_MoveParent,
/*544217*/          OPC_CheckType, MVT::v4i64,
/*544219*/          OPC_Scope, 17, /*->544238*/ // 2 children in Scope
/*544221*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*544223*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544226*/            OPC_EmitMergeInputChains1_0,
/*544227*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI128), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86SubVBroadcast:{ *:[v4i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VBROADCASTI128:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*544238*/          /*Scope*/ 17, /*->544256*/
/*544239*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*544241*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544244*/            OPC_EmitMergeInputChains1_0,
/*544245*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF128), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86SubVBroadcast:{ *:[v4i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VBROADCASTF128:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*544256*/          0, /*End of Scope*/
/*544257*/        /*Scope*/ 22, /*->544280*/
/*544258*/          OPC_CheckType, MVT::v4i64,
/*544260*/          OPC_MoveParent,
/*544261*/          OPC_CheckType, MVT::v8i64,
/*544263*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544265*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544268*/          OPC_EmitMergeInputChains1_0,
/*544269*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v8i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VBROADCASTI64X4rm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*544280*/        /*Scope*/ 22, /*->544303*/
/*544281*/          OPC_CheckType, MVT::v2i64,
/*544283*/          OPC_MoveParent,
/*544284*/          OPC_CheckType, MVT::v8i64,
/*544286*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544288*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544291*/          OPC_EmitMergeInputChains1_0,
/*544292*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v8i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VBROADCASTI32X4rm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*544303*/        /*Scope*/ 20, /*->544324*/
/*544304*/          OPC_MoveParent,
/*544305*/          OPC_CheckType, MVT::v4i64,
/*544307*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*544309*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*544312*/          OPC_EmitMergeInputChains1_0,
/*544313*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v4i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VBROADCASTI32X4Z256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*544324*/        0, /*End of Scope*/
/*544325*/      0, // EndSwitchOpcode
/*544326*/    /*Scope*/ 15|128,6/*783*/, /*->545111*/
/*544328*/      OPC_RecordChild0, // #0 = $src
/*544329*/      OPC_SwitchType /*8 cases */, 101, MVT::v4i64,// ->544433
/*544332*/        OPC_Scope, 32, /*->544366*/ // 3 children in Scope
/*544334*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*544336*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i64, 0/*#Ops*/,  // Results = #1
/*544342*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544345*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544354*/          OPC_EmitInteger, MVT::i8, 1, 
/*544357*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rr), 0,
                        MVT::v4i64, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v4i64] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (VINSERTI128rr:{ *:[v4i64] } (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), VR128:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), VR128:{ *:[v2i64] }:$src, 1:{ *:[i8] })
/*544366*/        /*Scope*/ 32, /*->544399*/
/*544367*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*544369*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i64, 0/*#Ops*/,  // Results = #1
/*544375*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544378*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544387*/          OPC_EmitInteger, MVT::i8, 1, 
/*544390*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                        MVT::v4i64, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v4i64] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (VINSERTF128rr:{ *:[v4i64] } (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), VR128:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), VR128:{ *:[v2i64] }:$src, 1:{ *:[i8] })
/*544399*/        /*Scope*/ 32, /*->544432*/
/*544400*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*544402*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i64, 0/*#Ops*/,  // Results = #1
/*544408*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544411*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544420*/          OPC_EmitInteger, MVT::i8, 1, 
/*544423*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rr), 0,
                        MVT::v4i64, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v4i64] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (VINSERTI32x4Z256rr:{ *:[v4i64] } (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), VR128X:{ *:[v2i64] }:$src, 1:{ *:[i8] })
/*544432*/        0, /*End of Scope*/
/*544433*/      /*SwitchType*/ 101, MVT::v8i32,// ->544536
/*544435*/        OPC_Scope, 32, /*->544469*/ // 3 children in Scope
/*544437*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*544439*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #1
/*544445*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544448*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544457*/          OPC_EmitInteger, MVT::i8, 1, 
/*544460*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rr), 0,
                        MVT::v8i32, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v8i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VINSERTI128rr:{ *:[v8i32] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), VR128:{ *:[v4i32] }:$src, 1:{ *:[i8] })
/*544469*/        /*Scope*/ 32, /*->544502*/
/*544470*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*544472*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #1
/*544478*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544481*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544490*/          OPC_EmitInteger, MVT::i8, 1, 
/*544493*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                        MVT::v8i32, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v8i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VINSERTF128rr:{ *:[v8i32] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), VR128:{ *:[v4i32] }:$src, 1:{ *:[i8] })
/*544502*/        /*Scope*/ 32, /*->544535*/
/*544503*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*544505*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #1
/*544511*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544514*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544523*/          OPC_EmitInteger, MVT::i8, 1, 
/*544526*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rr), 0,
                        MVT::v8i32, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v8i32] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VINSERTI32x4Z256rr:{ *:[v8i32] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), VR128X:{ *:[v4i32] }:$src, 1:{ *:[i8] })
/*544535*/        0, /*End of Scope*/
/*544536*/      /*SwitchType*/ 101, MVT::v16i16,// ->544639
/*544538*/        OPC_Scope, 32, /*->544572*/ // 3 children in Scope
/*544540*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*544542*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i16, 0/*#Ops*/,  // Results = #1
/*544548*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544551*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544560*/          OPC_EmitInteger, MVT::i8, 1, 
/*544563*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rr), 0,
                        MVT::v16i16, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v16i16] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (VINSERTI128rr:{ *:[v16i16] } (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), VR128:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), VR128:{ *:[v8i16] }:$src, 1:{ *:[i8] })
/*544572*/        /*Scope*/ 32, /*->544605*/
/*544573*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*544575*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i16, 0/*#Ops*/,  // Results = #1
/*544581*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544584*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544593*/          OPC_EmitInteger, MVT::i8, 1, 
/*544596*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                        MVT::v16i16, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v16i16] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (VINSERTF128rr:{ *:[v16i16] } (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), VR128:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), VR128:{ *:[v8i16] }:$src, 1:{ *:[i8] })
/*544605*/        /*Scope*/ 32, /*->544638*/
/*544606*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*544608*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i16, 0/*#Ops*/,  // Results = #1
/*544614*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544617*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544626*/          OPC_EmitInteger, MVT::i8, 1, 
/*544629*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rr), 0,
                        MVT::v16i16, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v16i16] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (VINSERTI32x4Z256rr:{ *:[v16i16] } (INSERT_SUBREG:{ *:[v16i16] } (IMPLICIT_DEF:{ *:[v16i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), VR128X:{ *:[v8i16] }:$src, 1:{ *:[i8] })
/*544638*/        0, /*End of Scope*/
/*544639*/      /*SwitchType*/ 101, MVT::v32i8,// ->544742
/*544641*/        OPC_Scope, 32, /*->544675*/ // 3 children in Scope
/*544643*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*544645*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i8, 0/*#Ops*/,  // Results = #1
/*544651*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544654*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544663*/          OPC_EmitInteger, MVT::i8, 1, 
/*544666*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI128rr), 0,
                        MVT::v32i8, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v32i8] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VINSERTI128rr:{ *:[v32i8] } (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), VR128:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), VR128:{ *:[v16i8] }:$src, 1:{ *:[i8] })
/*544675*/        /*Scope*/ 32, /*->544708*/
/*544676*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*544678*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i8, 0/*#Ops*/,  // Results = #1
/*544684*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544687*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544696*/          OPC_EmitInteger, MVT::i8, 1, 
/*544699*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                        MVT::v32i8, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v32i8] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VINSERTF128rr:{ *:[v32i8] } (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), VR128:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), VR128:{ *:[v16i8] }:$src, 1:{ *:[i8] })
/*544708*/        /*Scope*/ 32, /*->544741*/
/*544709*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*544711*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i8, 0/*#Ops*/,  // Results = #1
/*544717*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544720*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544729*/          OPC_EmitInteger, MVT::i8, 1, 
/*544732*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI32x4Z256rr), 0,
                        MVT::v32i8, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v32i8] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VINSERTI32x4Z256rr:{ *:[v32i8] } (INSERT_SUBREG:{ *:[v32i8] } (IMPLICIT_DEF:{ *:[v32i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), VR128X:{ *:[v16i8] }:$src, 1:{ *:[i8] })
/*544741*/        0, /*End of Scope*/
/*544742*/      /*SwitchType*/ 90, MVT::v8i64,// ->544834
/*544744*/        OPC_Scope, 34, /*->544780*/ // 2 children in Scope
/*544746*/          OPC_CheckChild0Type, MVT::v4i64,
/*544748*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544750*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*544756*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*544759*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544768*/          OPC_EmitInteger, MVT::i8, 1, 
/*544771*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrr), 0,
                        MVT::v8i64, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v8i64] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (VINSERTI64x4Zrr:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] }), VR256X:{ *:[v4i64] }:$src, 1:{ *:[i8] })
/*544780*/        /*Scope*/ 52, /*->544833*/
/*544781*/          OPC_CheckChild0Type, MVT::v2i64,
/*544783*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544785*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*544791*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544794*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544803*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*544809*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544812*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*544821*/          OPC_EmitInteger, MVT::i8, 0, 
/*544824*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrri), 0,
                        MVT::v8i64, 3/*#Ops*/, 3, 6, 7, 
                    // Src: (X86SubVBroadcast:{ *:[v8i64] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (VSHUFI64X2Zrri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] }), 0:{ *:[i8] })
/*544833*/        0, /*End of Scope*/
/*544834*/      /*SwitchType*/ 90, MVT::v16i32,// ->544926
/*544836*/        OPC_Scope, 34, /*->544872*/ // 2 children in Scope
/*544838*/          OPC_CheckChild0Type, MVT::v8i32,
/*544840*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544842*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*544848*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*544851*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544860*/          OPC_EmitInteger, MVT::i8, 1, 
/*544863*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrr), 0,
                        MVT::v16i32, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v16i32] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                    // Dst: (VINSERTI64x4Zrr:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), VR256X:{ *:[v8i32] }:$src, 1:{ *:[i8] })
/*544872*/        /*Scope*/ 52, /*->544925*/
/*544873*/          OPC_CheckChild0Type, MVT::v4i32,
/*544875*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544877*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*544883*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544886*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544895*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #4
/*544901*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544904*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*544913*/          OPC_EmitInteger, MVT::i8, 0, 
/*544916*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrri), 0,
                        MVT::v16i32, 3/*#Ops*/, 3, 6, 7, 
                    // Src: (X86SubVBroadcast:{ *:[v16i32] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VSHUFI32X4Zrri:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), 0:{ *:[i8] })
/*544925*/        0, /*End of Scope*/
/*544926*/      /*SwitchType*/ 90, MVT::v32i16,// ->545018
/*544928*/        OPC_Scope, 34, /*->544964*/ // 2 children in Scope
/*544930*/          OPC_CheckChild0Type, MVT::v16i16,
/*544932*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544934*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*544940*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*544943*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544952*/          OPC_EmitInteger, MVT::i8, 1, 
/*544955*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrr), 0,
                        MVT::v32i16, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v32i16] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                    // Dst: (VINSERTI64x4Zrr:{ *:[v32i16] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), VR256X:{ *:[v16i16] }:$src, 1:{ *:[i8] })
/*544964*/        /*Scope*/ 52, /*->545017*/
/*544965*/          OPC_CheckChild0Type, MVT::v8i16,
/*544967*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544969*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*544975*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544978*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*544987*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #4
/*544993*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*544996*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*545005*/          OPC_EmitInteger, MVT::i8, 0, 
/*545008*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrri), 0,
                        MVT::v32i16, 3/*#Ops*/, 3, 6, 7, 
                    // Src: (X86SubVBroadcast:{ *:[v32i16] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (VSHUFI32X4Zrri:{ *:[v32i16] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), 0:{ *:[i8] })
/*545017*/        0, /*End of Scope*/
/*545018*/      /*SwitchType*/ 90, MVT::v64i8,// ->545110
/*545020*/        OPC_Scope, 34, /*->545056*/ // 2 children in Scope
/*545022*/          OPC_CheckChild0Type, MVT::v32i8,
/*545024*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545026*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*545032*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*545035*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*545044*/          OPC_EmitInteger, MVT::i8, 1, 
/*545047*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTI64x4Zrr), 0,
                        MVT::v64i8, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v64i8] } VR256X:{ *:[v32i8] }:$src) - Complexity = 3
                    // Dst: (VINSERTI64x4Zrr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), VR256X:{ *:[v32i8] }:$src, 1:{ *:[i8] })
/*545056*/        /*Scope*/ 52, /*->545109*/
/*545057*/          OPC_CheckChild0Type, MVT::v16i8,
/*545059*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545061*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*545067*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*545070*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*545079*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #4
/*545085*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*545088*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*545097*/          OPC_EmitInteger, MVT::i8, 0, 
/*545100*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrri), 0,
                        MVT::v64i8, 3/*#Ops*/, 3, 6, 7, 
                    // Src: (X86SubVBroadcast:{ *:[v64i8] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VSHUFI32X4Zrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), 0:{ *:[i8] })
/*545109*/        0, /*End of Scope*/
/*545110*/      0, // EndSwitchType
/*545111*/    /*Scope*/ 63|128,1/*191*/, /*->545304*/
/*545113*/      OPC_MoveChild0,
/*545114*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*545117*/      OPC_RecordMemRef,
/*545118*/      OPC_RecordNode, // #0 = 'ld' chained node
/*545119*/      OPC_RecordChild1, // #1 = $src
/*545120*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*545122*/      OPC_CheckPredicate, 9, // Predicate_load
/*545124*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*545126*/      OPC_Scope, 41, /*->545169*/ // 6 children in Scope
/*545128*/        OPC_MoveParent,
/*545129*/        OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->545149
/*545132*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*545134*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*545137*/          OPC_EmitMergeInputChains1_0,
/*545138*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF128), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v4f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VBROADCASTF128:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*545149*/        /*SwitchType*/ 17, MVT::v8f32,// ->545168
/*545151*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*545153*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*545156*/          OPC_EmitMergeInputChains1_0,
/*545157*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF128), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v8f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VBROADCASTF128:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*545168*/        0, // EndSwitchType
/*545169*/      /*Scope*/ 22, /*->545192*/
/*545170*/        OPC_CheckType, MVT::v4f32,
/*545172*/        OPC_MoveParent,
/*545173*/        OPC_CheckType, MVT::v16f32,
/*545175*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545177*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*545180*/        OPC_EmitMergeInputChains1_0,
/*545181*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86SubVBroadcast:{ *:[v16f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VBROADCASTF32X4rm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*545192*/      /*Scope*/ 22, /*->545215*/
/*545193*/        OPC_CheckType, MVT::v4f64,
/*545195*/        OPC_MoveParent,
/*545196*/        OPC_CheckType, MVT::v8f64,
/*545198*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545200*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*545203*/        OPC_EmitMergeInputChains1_0,
/*545204*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86SubVBroadcast:{ *:[v8f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VBROADCASTF64X4rm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*545215*/      /*Scope*/ 22, /*->545238*/
/*545216*/        OPC_CheckType, MVT::v8f32,
/*545218*/        OPC_MoveParent,
/*545219*/        OPC_CheckType, MVT::v16f32,
/*545221*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545223*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*545226*/        OPC_EmitMergeInputChains1_0,
/*545227*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF64X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86SubVBroadcast:{ *:[v16f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VBROADCASTF64X4rm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*545238*/      /*Scope*/ 22, /*->545261*/
/*545239*/        OPC_CheckType, MVT::v2f64,
/*545241*/        OPC_MoveParent,
/*545242*/        OPC_CheckType, MVT::v8f64,
/*545244*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545246*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*545249*/        OPC_EmitMergeInputChains1_0,
/*545250*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86SubVBroadcast:{ *:[v8f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VBROADCASTF32X4rm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*545261*/      /*Scope*/ 41, /*->545303*/
/*545262*/        OPC_MoveParent,
/*545263*/        OPC_SwitchType /*2 cases */, 17, MVT::v8f32,// ->545283
/*545266*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*545268*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*545271*/          OPC_EmitMergeInputChains1_0,
/*545272*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v8f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VBROADCASTF32X4Z256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*545283*/        /*SwitchType*/ 17, MVT::v4f64,// ->545302
/*545285*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*545287*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*545290*/          OPC_EmitMergeInputChains1_0,
/*545291*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF32X4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v4f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VBROADCASTF32X4Z256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*545302*/        0, // EndSwitchType
/*545303*/      0, /*End of Scope*/
/*545304*/    /*Scope*/ 71|128,2/*327*/, /*->545633*/
/*545306*/      OPC_RecordChild0, // #0 = $src
/*545307*/      OPC_SwitchType /*4 cases */, 68, MVT::v4f64,// ->545378
/*545310*/        OPC_Scope, 32, /*->545344*/ // 2 children in Scope
/*545312*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*545314*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f64, 0/*#Ops*/,  // Results = #1
/*545320*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*545323*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*545332*/          OPC_EmitInteger, MVT::i8, 1, 
/*545335*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                        MVT::v4f64, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v4f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VINSERTF128rr:{ *:[v4f64] } (INSERT_SUBREG:{ *:[v4f64] } (IMPLICIT_DEF:{ *:[v4f64] }), VR128:{ *:[v2f64] }:$src, sub_xmm:{ *:[i32] }), VR128:{ *:[v2f64] }:$src, 1:{ *:[i8] })
/*545344*/        /*Scope*/ 32, /*->545377*/
/*545345*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*545347*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f64, 0/*#Ops*/,  // Results = #1
/*545353*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*545356*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*545365*/          OPC_EmitInteger, MVT::i8, 1, 
/*545368*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rr), 0,
                        MVT::v4f64, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v4f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VINSERTF32x4Z256rr:{ *:[v4f64] } (INSERT_SUBREG:{ *:[v4f64] } (IMPLICIT_DEF:{ *:[v4f64] }), VR128X:{ *:[v2f64] }:$src, sub_xmm:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src, 1:{ *:[i8] })
/*545377*/        0, /*End of Scope*/
/*545378*/      /*SwitchType*/ 68, MVT::v8f32,// ->545448
/*545380*/        OPC_Scope, 32, /*->545414*/ // 2 children in Scope
/*545382*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*545384*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f32, 0/*#Ops*/,  // Results = #1
/*545390*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*545393*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*545402*/          OPC_EmitInteger, MVT::i8, 1, 
/*545405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                        MVT::v8f32, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v8f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VINSERTF128rr:{ *:[v8f32] } (INSERT_SUBREG:{ *:[v8f32] } (IMPLICIT_DEF:{ *:[v8f32] }), VR128:{ *:[v4f32] }:$src, sub_xmm:{ *:[i32] }), VR128:{ *:[v4f32] }:$src, 1:{ *:[i8] })
/*545414*/        /*Scope*/ 32, /*->545447*/
/*545415*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*545417*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f32, 0/*#Ops*/,  // Results = #1
/*545423*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*545426*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*545435*/          OPC_EmitInteger, MVT::i8, 1, 
/*545438*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF32x4Z256rr), 0,
                        MVT::v8f32, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v8f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VINSERTF32x4Z256rr:{ *:[v8f32] } (INSERT_SUBREG:{ *:[v8f32] } (IMPLICIT_DEF:{ *:[v8f32] }), VR128X:{ *:[v4f32] }:$src, sub_xmm:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src, 1:{ *:[i8] })
/*545447*/        0, /*End of Scope*/
/*545448*/      /*SwitchType*/ 90, MVT::v8f64,// ->545540
/*545450*/        OPC_Scope, 34, /*->545486*/ // 2 children in Scope
/*545452*/          OPC_CheckChild0Type, MVT::v4f64,
/*545454*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545456*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*545462*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*545465*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*545474*/          OPC_EmitInteger, MVT::i8, 1, 
/*545477*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrr), 0,
                        MVT::v8f64, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v8f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VINSERTF64x4Zrr:{ *:[v8f64] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src, sub_ymm:{ *:[i32] }), VR256X:{ *:[v4f64] }:$src, 1:{ *:[i8] })
/*545486*/        /*Scope*/ 52, /*->545539*/
/*545487*/          OPC_CheckChild0Type, MVT::v2f64,
/*545489*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545491*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*545497*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*545500*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*545509*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #4
/*545515*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*545518*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*545527*/          OPC_EmitInteger, MVT::i8, 0, 
/*545530*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrri), 0,
                        MVT::v8f64, 3/*#Ops*/, 3, 6, 7, 
                    // Src: (X86SubVBroadcast:{ *:[v8f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VSHUFF64X2Zrri:{ *:[v8f64] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src, sub_xmm:{ *:[i32] }), 0:{ *:[i8] })
/*545539*/        0, /*End of Scope*/
/*545540*/      /*SwitchType*/ 90, MVT::v16f32,// ->545632
/*545542*/        OPC_Scope, 34, /*->545578*/ // 2 children in Scope
/*545544*/          OPC_CheckChild0Type, MVT::v8f32,
/*545546*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545548*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #1
/*545554*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*545557*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*545566*/          OPC_EmitInteger, MVT::i8, 1, 
/*545569*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF64x4Zrr), 0,
                        MVT::v16f32, 3/*#Ops*/, 3, 0, 4, 
                    // Src: (X86SubVBroadcast:{ *:[v16f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VINSERTF64x4Zrr:{ *:[v16f32] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src, sub_ymm:{ *:[i32] }), VR256X:{ *:[v8f32] }:$src, 1:{ *:[i8] })
/*545578*/        /*Scope*/ 52, /*->545631*/
/*545579*/          OPC_CheckChild0Type, MVT::v4f32,
/*545581*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545583*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #1
/*545589*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*545592*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*545601*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #4
/*545607*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*545610*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*545619*/          OPC_EmitInteger, MVT::i8, 0, 
/*545622*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrri), 0,
                        MVT::v16f32, 3/*#Ops*/, 3, 6, 7, 
                    // Src: (X86SubVBroadcast:{ *:[v16f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VSHUFF32X4Zrri:{ *:[v16f32] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src, sub_xmm:{ *:[i32] }), 0:{ *:[i8] })
/*545631*/        0, /*End of Scope*/
/*545632*/      0, // EndSwitchType
/*545633*/    0, /*End of Scope*/
/*545634*/  /*SwitchOpcode*/ 98|128,2/*354*/, TARGET_VAL(X86ISD::VPERM2X128),// ->545992
/*545638*/    OPC_Scope, 45, /*->545685*/ // 7 children in Scope
/*545640*/      OPC_RecordChild0, // #0 = $src1
/*545641*/      OPC_MoveChild1,
/*545642*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*545645*/      OPC_RecordMemRef,
/*545646*/      OPC_RecordNode, // #1 = 'ld' chained node
/*545647*/      OPC_CheckFoldableChainNode,
/*545648*/      OPC_RecordChild1, // #2 = $src2
/*545649*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*545651*/      OPC_CheckPredicate, 9, // Predicate_load
/*545653*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*545655*/      OPC_MoveParent,
/*545656*/      OPC_RecordChild2, // #3 = $imm
/*545657*/      OPC_MoveChild2,
/*545658*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*545661*/      OPC_MoveParent,
/*545662*/      OPC_CheckType, MVT::v4i64,
/*545664*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*545666*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*545669*/      OPC_EmitMergeInputChains1_1,
/*545670*/      OPC_EmitConvertToTarget, 3,
/*545672*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86VPerm2x128:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$imm) - Complexity = 28
                // Dst: (VPERM2F128rm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$imm)
/*545685*/    /*Scope*/ 48, /*->545734*/
/*545686*/      OPC_MoveChild0,
/*545687*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*545690*/      OPC_RecordMemRef,
/*545691*/      OPC_RecordNode, // #0 = 'ld' chained node
/*545692*/      OPC_CheckFoldableChainNode,
/*545693*/      OPC_RecordChild1, // #1 = $src2
/*545694*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*545696*/      OPC_CheckPredicate, 9, // Predicate_load
/*545698*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*545700*/      OPC_MoveParent,
/*545701*/      OPC_RecordChild1, // #2 = $src1
/*545702*/      OPC_RecordChild2, // #3 = $imm
/*545703*/      OPC_MoveChild2,
/*545704*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*545707*/      OPC_MoveParent,
/*545708*/      OPC_CheckType, MVT::v4i64,
/*545710*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*545712*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*545715*/      OPC_EmitMergeInputChains1_0,
/*545716*/      OPC_EmitConvertToTarget, 3,
/*545718*/      OPC_EmitNodeXForm, 27, 9, // Perm2XCommuteImm
/*545721*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86VPerm2x128:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$imm) - Complexity = 28
                // Dst: (VPERM2F128rm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (Perm2XCommuteImm:{ *:[i8] } (imm:{ *:[i8] }):$imm))
/*545734*/    /*Scope*/ 45, /*->545780*/
/*545735*/      OPC_RecordChild0, // #0 = $src1
/*545736*/      OPC_MoveChild1,
/*545737*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*545740*/      OPC_RecordMemRef,
/*545741*/      OPC_RecordNode, // #1 = 'ld' chained node
/*545742*/      OPC_CheckFoldableChainNode,
/*545743*/      OPC_RecordChild1, // #2 = $src2
/*545744*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*545746*/      OPC_CheckPredicate, 9, // Predicate_load
/*545748*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*545750*/      OPC_MoveParent,
/*545751*/      OPC_RecordChild2, // #3 = $src3
/*545752*/      OPC_MoveChild2,
/*545753*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*545756*/      OPC_MoveParent,
/*545757*/      OPC_CheckType, MVT::v4i64,
/*545759*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*545761*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*545764*/      OPC_EmitMergeInputChains1_1,
/*545765*/      OPC_EmitConvertToTarget, 3,
/*545767*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2I128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86VPerm2x128:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPERM2I128rm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*545780*/    /*Scope*/ 48, /*->545829*/
/*545781*/      OPC_MoveChild0,
/*545782*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*545785*/      OPC_RecordMemRef,
/*545786*/      OPC_RecordNode, // #0 = 'ld' chained node
/*545787*/      OPC_CheckFoldableChainNode,
/*545788*/      OPC_RecordChild1, // #1 = $src2
/*545789*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*545791*/      OPC_CheckPredicate, 9, // Predicate_load
/*545793*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*545795*/      OPC_MoveParent,
/*545796*/      OPC_RecordChild1, // #2 = $src1
/*545797*/      OPC_RecordChild2, // #3 = $imm
/*545798*/      OPC_MoveChild2,
/*545799*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*545802*/      OPC_MoveParent,
/*545803*/      OPC_CheckType, MVT::v4i64,
/*545805*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*545807*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*545810*/      OPC_EmitMergeInputChains1_0,
/*545811*/      OPC_EmitConvertToTarget, 3,
/*545813*/      OPC_EmitNodeXForm, 27, 9, // Perm2XCommuteImm
/*545816*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2I128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86VPerm2x128:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4i64] }:$src1, (imm:{ *:[i8] }):$imm) - Complexity = 28
                // Dst: (VPERM2I128rm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (Perm2XCommuteImm:{ *:[i8] } (imm:{ *:[i8] }):$imm))
/*545829*/    /*Scope*/ 88, /*->545918*/
/*545830*/      OPC_RecordChild0, // #0 = $src1
/*545831*/      OPC_Scope, 39, /*->545872*/ // 2 children in Scope
/*545833*/        OPC_RecordChild1, // #1 = $src2
/*545834*/        OPC_RecordChild2, // #2 = $imm
/*545835*/        OPC_MoveChild2,
/*545836*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*545839*/        OPC_MoveParent,
/*545840*/        OPC_CheckType, MVT::v4i64,
/*545842*/        OPC_Scope, 13, /*->545857*/ // 2 children in Scope
/*545844*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*545846*/          OPC_EmitConvertToTarget, 2,
/*545848*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rr), 0,
                        MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86VPerm2x128:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$imm) - Complexity = 6
                    // Dst: (VPERM2F128rr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$imm)
/*545857*/        /*Scope*/ 13, /*->545871*/
/*545858*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*545860*/          OPC_EmitConvertToTarget, 2,
/*545862*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2I128rr), 0,
                        MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86VPerm2x128:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPERM2I128rr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (imm:{ *:[i8] }):$src3)
/*545871*/        0, /*End of Scope*/
/*545872*/      /*Scope*/ 44, /*->545917*/
/*545873*/        OPC_MoveChild1,
/*545874*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*545877*/        OPC_RecordMemRef,
/*545878*/        OPC_RecordNode, // #1 = 'ld' chained node
/*545879*/        OPC_CheckFoldableChainNode,
/*545880*/        OPC_RecordChild1, // #2 = $src2
/*545881*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*545883*/        OPC_CheckPredicate, 9, // Predicate_load
/*545885*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*545887*/        OPC_MoveParent,
/*545888*/        OPC_RecordChild2, // #3 = $src3
/*545889*/        OPC_MoveChild2,
/*545890*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*545893*/        OPC_MoveParent,
/*545894*/        OPC_CheckType, MVT::v4f64,
/*545896*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*545898*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*545901*/        OPC_EmitMergeInputChains1_1,
/*545902*/        OPC_EmitConvertToTarget, 3,
/*545904*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86VPerm2x128:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                  // Dst: (VPERM2F128rm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*545917*/      0, /*End of Scope*/
/*545918*/    /*Scope*/ 48, /*->545967*/
/*545919*/      OPC_MoveChild0,
/*545920*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*545923*/      OPC_RecordMemRef,
/*545924*/      OPC_RecordNode, // #0 = 'ld' chained node
/*545925*/      OPC_CheckFoldableChainNode,
/*545926*/      OPC_RecordChild1, // #1 = $src2
/*545927*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*545929*/      OPC_CheckPredicate, 9, // Predicate_load
/*545931*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*545933*/      OPC_MoveParent,
/*545934*/      OPC_RecordChild1, // #2 = $src1
/*545935*/      OPC_RecordChild2, // #3 = $imm
/*545936*/      OPC_MoveChild2,
/*545937*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*545940*/      OPC_MoveParent,
/*545941*/      OPC_CheckType, MVT::v4f64,
/*545943*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*545945*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*545948*/      OPC_EmitMergeInputChains1_0,
/*545949*/      OPC_EmitConvertToTarget, 3,
/*545951*/      OPC_EmitNodeXForm, 27, 9, // Perm2XCommuteImm
/*545954*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 10, 
                // Src: (X86VPerm2x128:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$imm) - Complexity = 28
                // Dst: (VPERM2F128rm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (Perm2XCommuteImm:{ *:[i8] } (imm:{ *:[i8] }):$imm))
/*545967*/    /*Scope*/ 23, /*->545991*/
/*545968*/      OPC_RecordChild0, // #0 = $src1
/*545969*/      OPC_RecordChild1, // #1 = $src2
/*545970*/      OPC_RecordChild2, // #2 = $src3
/*545971*/      OPC_MoveChild2,
/*545972*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*545975*/      OPC_MoveParent,
/*545976*/      OPC_CheckType, MVT::v4f64,
/*545978*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*545980*/      OPC_EmitConvertToTarget, 2,
/*545982*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rr), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86VPerm2x128:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                // Dst: (VPERM2F128rr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*545991*/    0, /*End of Scope*/
/*545992*/  /*SwitchOpcode*/ 117|128,29/*3829*/, TARGET_VAL(X86ISD::VBROADCAST),// ->549825
/*545996*/    OPC_Scope, 74|128,9/*1226*/, /*->547225*/ // 4 children in Scope
/*545999*/      OPC_MoveChild0,
/*546000*/      OPC_SwitchOpcode /*4 cases */, 112|128,2/*368*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->546373
/*546005*/        OPC_MoveChild0,
/*546006*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*546009*/        OPC_RecordMemRef,
/*546010*/        OPC_RecordNode, // #0 = 'ld' chained node
/*546011*/        OPC_CheckFoldableChainNode,
/*546012*/        OPC_RecordChild1, // #1 = $src
/*546013*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*546015*/        OPC_SwitchType /*4 cases */, 109, MVT::i32,// ->546127
/*546018*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*546020*/          OPC_MoveParent,
/*546021*/          OPC_CheckType, MVT::v4i32,
/*546023*/          OPC_MoveParent,
/*546024*/          OPC_Scope, 40, /*->546066*/ // 2 children in Scope
/*546026*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->546046
/*546029*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*546031*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546034*/              OPC_EmitMergeInputChains1_0,
/*546035*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPBROADCASTDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*546046*/            /*SwitchType*/ 17, MVT::v8i32,// ->546065
/*546048*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*546050*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546053*/              OPC_EmitMergeInputChains1_0,
/*546054*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v8i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPBROADCASTDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*546065*/            0, // EndSwitchType
/*546066*/          /*Scope*/ 59, /*->546126*/
/*546067*/            OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->546087
/*546070*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546072*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546075*/              OPC_EmitMergeInputChains1_0,
/*546076*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v16i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPBROADCASTDZm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*546087*/            /*SwitchType*/ 17, MVT::v8i32,// ->546106
/*546089*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*546091*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546094*/              OPC_EmitMergeInputChains1_0,
/*546095*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v8i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPBROADCASTDZ256m:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*546106*/            /*SwitchType*/ 17, MVT::v4i32,// ->546125
/*546108*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*546110*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546113*/              OPC_EmitMergeInputChains1_0,
/*546114*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v4i32] } (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                        // Dst: (VPBROADCASTDZ128m:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*546125*/            0, // EndSwitchType
/*546126*/          0, /*End of Scope*/
/*546127*/        /*SwitchType*/ 109, MVT::i64,// ->546238
/*546129*/          OPC_CheckPredicate, 9, // Predicate_load
/*546131*/          OPC_MoveParent,
/*546132*/          OPC_CheckType, MVT::v2i64,
/*546134*/          OPC_MoveParent,
/*546135*/          OPC_Scope, 40, /*->546177*/ // 2 children in Scope
/*546137*/            OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->546157
/*546140*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*546142*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546145*/              OPC_EmitMergeInputChains1_0,
/*546146*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPBROADCASTQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*546157*/            /*SwitchType*/ 17, MVT::v4i64,// ->546176
/*546159*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*546161*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546164*/              OPC_EmitMergeInputChains1_0,
/*546165*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v4i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPBROADCASTQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*546176*/            0, // EndSwitchType
/*546177*/          /*Scope*/ 59, /*->546237*/
/*546178*/            OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->546198
/*546181*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546183*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546186*/              OPC_EmitMergeInputChains1_0,
/*546187*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v8i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPBROADCASTQZm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*546198*/            /*SwitchType*/ 17, MVT::v4i64,// ->546217
/*546200*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*546202*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546205*/              OPC_EmitMergeInputChains1_0,
/*546206*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v4i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPBROADCASTQZ256m:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*546217*/            /*SwitchType*/ 17, MVT::v2i64,// ->546236
/*546219*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*546221*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546224*/              OPC_EmitMergeInputChains1_0,
/*546225*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VPBROADCASTQZ128m:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*546236*/            0, // EndSwitchType
/*546237*/          0, /*End of Scope*/
/*546238*/        /*SwitchType*/ 65, MVT::i8,// ->546305
/*546240*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*546242*/          OPC_MoveParent,
/*546243*/          OPC_CheckType, MVT::v16i8,
/*546245*/          OPC_MoveParent,
/*546246*/          OPC_SwitchType /*3 cases */, 17, MVT::v64i8,// ->546266
/*546249*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*546251*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546254*/            OPC_EmitMergeInputChains1_0,
/*546255*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v64i8] } (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>)) - Complexity = 28
                      // Dst: (VPBROADCASTBZm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)
/*546266*/          /*SwitchType*/ 17, MVT::v32i8,// ->546285
/*546268*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546270*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546273*/            OPC_EmitMergeInputChains1_0,
/*546274*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v32i8] } (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>)) - Complexity = 28
                      // Dst: (VPBROADCASTBZ256m:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*546285*/          /*SwitchType*/ 17, MVT::v16i8,// ->546304
/*546287*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546289*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546292*/            OPC_EmitMergeInputChains1_0,
/*546293*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v16i8] } (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>)) - Complexity = 28
                      // Dst: (VPBROADCASTBZ128m:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*546304*/          0, // EndSwitchType
/*546305*/        /*SwitchType*/ 65, MVT::i16,// ->546372
/*546307*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*546309*/          OPC_MoveParent,
/*546310*/          OPC_CheckType, MVT::v8i16,
/*546312*/          OPC_MoveParent,
/*546313*/          OPC_SwitchType /*3 cases */, 17, MVT::v32i16,// ->546333
/*546316*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*546318*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546321*/            OPC_EmitMergeInputChains1_0,
/*546322*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v32i16] } (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)) - Complexity = 28
                      // Dst: (VPBROADCASTWZm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*546333*/          /*SwitchType*/ 17, MVT::v16i16,// ->546352
/*546335*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546337*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546340*/            OPC_EmitMergeInputChains1_0,
/*546341*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)) - Complexity = 28
                      // Dst: (VPBROADCASTWZ256m:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*546352*/          /*SwitchType*/ 17, MVT::v8i16,// ->546371
/*546354*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546356*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546359*/            OPC_EmitMergeInputChains1_0,
/*546360*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v8i16] } (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)) - Complexity = 28
                      // Dst: (VPBROADCASTWZ128m:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*546371*/          0, // EndSwitchType
/*546372*/        0, // EndSwitchType
/*546373*/      /*SwitchOpcode*/ 78|128,1/*206*/, TARGET_VAL(ISD::TRUNCATE),// ->546583
/*546377*/        OPC_MoveChild0,
/*546378*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*546381*/        OPC_RecordMemRef,
/*546382*/        OPC_RecordNode, // #0 = 'ld' chained node
/*546383*/        OPC_CheckFoldableChainNode,
/*546384*/        OPC_RecordChild1, // #1 = $src
/*546385*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*546387*/        OPC_CheckType, MVT::i32,
/*546389*/        OPC_Scope, 46, /*->546437*/ // 4 children in Scope
/*546391*/          OPC_CheckPredicate, 9, // Predicate_load
/*546393*/          OPC_MoveParent,
/*546394*/          OPC_CheckType, MVT::i16,
/*546396*/          OPC_MoveParent,
/*546397*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->546417
/*546400*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*546402*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546405*/            OPC_EmitMergeInputChains1_0,
/*546406*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v8i16] } (trunc:{ *:[i16] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPBROADCASTWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*546417*/          /*SwitchType*/ 17, MVT::v16i16,// ->546436
/*546419*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*546421*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546424*/            OPC_EmitMergeInputChains1_0,
/*546425*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } (trunc:{ *:[i16] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPBROADCASTWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*546436*/          0, // EndSwitchType
/*546437*/        /*Scope*/ 48, /*->546486*/
/*546438*/          OPC_CheckPredicate, 53, // Predicate_zextload
/*546440*/          OPC_CheckPredicate, 62, // Predicate_zextloadi16
/*546442*/          OPC_MoveParent,
/*546443*/          OPC_CheckType, MVT::i16,
/*546445*/          OPC_MoveParent,
/*546446*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->546466
/*546449*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*546451*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546454*/            OPC_EmitMergeInputChains1_0,
/*546455*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v8i16] } (trunc:{ *:[i16] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>)) - Complexity = 28
                      // Dst: (VPBROADCASTWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*546466*/          /*SwitchType*/ 17, MVT::v16i16,// ->546485
/*546468*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*546470*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546473*/            OPC_EmitMergeInputChains1_0,
/*546474*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } (trunc:{ *:[i16] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>)) - Complexity = 28
                      // Dst: (VPBROADCASTWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*546485*/          0, // EndSwitchType
/*546486*/        /*Scope*/ 46, /*->546533*/
/*546487*/          OPC_CheckPredicate, 9, // Predicate_load
/*546489*/          OPC_MoveParent,
/*546490*/          OPC_CheckType, MVT::i16,
/*546492*/          OPC_MoveParent,
/*546493*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->546513
/*546496*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546498*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546501*/            OPC_EmitMergeInputChains1_0,
/*546502*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v8i16] } (trunc:{ *:[i16] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPBROADCASTWZ128m:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*546513*/          /*SwitchType*/ 17, MVT::v16i16,// ->546532
/*546515*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546517*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546520*/            OPC_EmitMergeInputChains1_0,
/*546521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } (trunc:{ *:[i16] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPBROADCASTWZ256m:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*546532*/          0, // EndSwitchType
/*546533*/        /*Scope*/ 48, /*->546582*/
/*546534*/          OPC_CheckPredicate, 53, // Predicate_zextload
/*546536*/          OPC_CheckPredicate, 62, // Predicate_zextloadi16
/*546538*/          OPC_MoveParent,
/*546539*/          OPC_CheckType, MVT::i16,
/*546541*/          OPC_MoveParent,
/*546542*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->546562
/*546545*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546547*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546550*/            OPC_EmitMergeInputChains1_0,
/*546551*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v8i16] } (trunc:{ *:[i16] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>)) - Complexity = 28
                      // Dst: (VPBROADCASTWZ128m:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*546562*/          /*SwitchType*/ 17, MVT::v16i16,// ->546581
/*546564*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546566*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546569*/            OPC_EmitMergeInputChains1_0,
/*546570*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } (trunc:{ *:[i16] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>)) - Complexity = 28
                      // Dst: (VPBROADCASTWZ256m:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*546581*/          0, // EndSwitchType
/*546582*/        0, /*End of Scope*/
/*546583*/      /*SwitchOpcode*/ 9|128,4/*521*/, TARGET_VAL(ISD::LOAD),// ->547108
/*546587*/        OPC_RecordMemRef,
/*546588*/        OPC_RecordNode, // #0 = 'ld' chained node
/*546589*/        OPC_RecordChild1, // #1 = $src
/*546590*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*546592*/        OPC_SwitchType /*4 cases */, 106, MVT::i8,// ->546701
/*546595*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*546597*/          OPC_MoveParent,
/*546598*/          OPC_Scope, 40, /*->546640*/ // 2 children in Scope
/*546600*/            OPC_SwitchType /*2 cases */, 17, MVT::v16i8,// ->546620
/*546603*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*546605*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546608*/              OPC_EmitMergeInputChains1_0,
/*546609*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>) - Complexity = 25
                        // Dst: (VPBROADCASTBrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*546620*/            /*SwitchType*/ 17, MVT::v32i8,// ->546639
/*546622*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*546624*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546627*/              OPC_EmitMergeInputChains1_0,
/*546628*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v32i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>) - Complexity = 25
                        // Dst: (VPBROADCASTBYrm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*546639*/            0, // EndSwitchType
/*546640*/          /*Scope*/ 59, /*->546700*/
/*546641*/            OPC_SwitchType /*3 cases */, 17, MVT::v64i8,// ->546661
/*546644*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*546646*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546649*/              OPC_EmitMergeInputChains1_0,
/*546650*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v64i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>) - Complexity = 25
                        // Dst: (VPBROADCASTBZm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)
/*546661*/            /*SwitchType*/ 17, MVT::v32i8,// ->546680
/*546663*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546665*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546668*/              OPC_EmitMergeInputChains1_0,
/*546669*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v32i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>) - Complexity = 25
                        // Dst: (VPBROADCASTBZ256m:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*546680*/            /*SwitchType*/ 17, MVT::v16i8,// ->546699
/*546682*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546684*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546687*/              OPC_EmitMergeInputChains1_0,
/*546688*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v16i8] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>) - Complexity = 25
                        // Dst: (VPBROADCASTBZ128m:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*546699*/            0, // EndSwitchType
/*546700*/          0, /*End of Scope*/
/*546701*/        /*SwitchType*/ 106, MVT::i16,// ->546809
/*546703*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*546705*/          OPC_MoveParent,
/*546706*/          OPC_Scope, 40, /*->546748*/ // 2 children in Scope
/*546708*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->546728
/*546711*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*546713*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546716*/              OPC_EmitMergeInputChains1_0,
/*546717*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                        // Dst: (VPBROADCASTWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*546728*/            /*SwitchType*/ 17, MVT::v16i16,// ->546747
/*546730*/              OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*546732*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546735*/              OPC_EmitMergeInputChains1_0,
/*546736*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v16i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                        // Dst: (VPBROADCASTWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*546747*/            0, // EndSwitchType
/*546748*/          /*Scope*/ 59, /*->546808*/
/*546749*/            OPC_SwitchType /*3 cases */, 17, MVT::v32i16,// ->546769
/*546752*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*546754*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546757*/              OPC_EmitMergeInputChains1_0,
/*546758*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v32i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                        // Dst: (VPBROADCASTWZm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*546769*/            /*SwitchType*/ 17, MVT::v16i16,// ->546788
/*546771*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546773*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546776*/              OPC_EmitMergeInputChains1_0,
/*546777*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v16i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                        // Dst: (VPBROADCASTWZ256m:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*546788*/            /*SwitchType*/ 17, MVT::v8i16,// ->546807
/*546790*/              OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*546792*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546795*/              OPC_EmitMergeInputChains1_0,
/*546796*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v8i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                        // Dst: (VPBROADCASTWZ128m:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*546807*/            0, // EndSwitchType
/*546808*/          0, /*End of Scope*/
/*546809*/        /*SwitchType*/ 18|128,1/*146*/, MVT::i32,// ->546958
/*546812*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*546814*/          OPC_MoveParent,
/*546815*/          OPC_Scope, 40, /*->546857*/ // 4 children in Scope
/*546817*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->546837
/*546820*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*546822*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546825*/              OPC_EmitMergeInputChains1_0,
/*546826*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VPBROADCASTDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*546837*/            /*SwitchType*/ 17, MVT::v8i32,// ->546856
/*546839*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*546841*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546844*/              OPC_EmitMergeInputChains1_0,
/*546845*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VPBROADCASTDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*546856*/            0, // EndSwitchType
/*546857*/          /*Scope*/ 19, /*->546877*/
/*546858*/            OPC_CheckType, MVT::v8i32,
/*546860*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*546862*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546865*/            OPC_EmitMergeInputChains1_0,
/*546866*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VBROADCASTSSYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*546877*/          /*Scope*/ 19, /*->546897*/
/*546878*/            OPC_CheckType, MVT::v4i32,
/*546880*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*546882*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546885*/            OPC_EmitMergeInputChains1_0,
/*546886*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VBROADCASTSSrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*546897*/          /*Scope*/ 59, /*->546957*/
/*546898*/            OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->546918
/*546901*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546903*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546906*/              OPC_EmitMergeInputChains1_0,
/*546907*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                        // Dst: (VPBROADCASTDZm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*546918*/            /*SwitchType*/ 17, MVT::v8i32,// ->546937
/*546920*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*546922*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546925*/              OPC_EmitMergeInputChains1_0,
/*546926*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VPBROADCASTDZ256m:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*546937*/            /*SwitchType*/ 17, MVT::v4i32,// ->546956
/*546939*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*546941*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546944*/              OPC_EmitMergeInputChains1_0,
/*546945*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VPBROADCASTDZ128m:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*546956*/            0, // EndSwitchType
/*546957*/          0, /*End of Scope*/
/*546958*/        /*SwitchType*/ 18|128,1/*146*/, MVT::i64,// ->547107
/*546961*/          OPC_CheckPredicate, 9, // Predicate_load
/*546963*/          OPC_MoveParent,
/*546964*/          OPC_Scope, 40, /*->547006*/ // 4 children in Scope
/*546966*/            OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->546986
/*546969*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*546971*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546974*/              OPC_EmitMergeInputChains1_0,
/*546975*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPBROADCASTQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*546986*/            /*SwitchType*/ 17, MVT::v4i64,// ->547005
/*546988*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*546990*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*546993*/              OPC_EmitMergeInputChains1_0,
/*546994*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VPBROADCASTQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*547005*/            0, // EndSwitchType
/*547006*/          /*Scope*/ 19, /*->547026*/
/*547007*/            OPC_CheckType, MVT::v4i64,
/*547009*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*547011*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*547014*/            OPC_EmitMergeInputChains1_0,
/*547015*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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: (VBROADCASTSDYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*547026*/          /*Scope*/ 19, /*->547046*/
/*547027*/            OPC_CheckType, MVT::v2i64,
/*547029*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*547031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*547034*/            OPC_EmitMergeInputChains1_0,
/*547035*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VMOVDDUPrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*547046*/          /*Scope*/ 59, /*->547106*/
/*547047*/            OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->547067
/*547050*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547052*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*547055*/              OPC_EmitMergeInputChains1_0,
/*547056*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPBROADCASTQZm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*547067*/            /*SwitchType*/ 17, MVT::v4i64,// ->547086
/*547069*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*547071*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*547074*/              OPC_EmitMergeInputChains1_0,
/*547075*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VPBROADCASTQZ256m:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*547086*/            /*SwitchType*/ 17, MVT::v2i64,// ->547105
/*547088*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*547090*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*547093*/              OPC_EmitMergeInputChains1_0,
/*547094*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPBROADCASTQZ128m:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*547105*/            0, // EndSwitchType
/*547106*/          0, /*End of Scope*/
/*547107*/        0, // EndSwitchType
/*547108*/      /*SwitchOpcode*/ 113, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->547224
/*547111*/        OPC_RecordMemRef,
/*547112*/        OPC_RecordNode, // #0 = 'X86vzload' chained node
/*547113*/        OPC_RecordChild1, // #1 = $src
/*547114*/        OPC_SwitchType /*3 cases */, 41, MVT::v2i64,// ->547158
/*547117*/          OPC_MoveParent,
/*547118*/          OPC_CheckType, MVT::v2i64,
/*547120*/          OPC_Scope, 17, /*->547139*/ // 2 children in Scope
/*547122*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*547124*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*547127*/            OPC_EmitMergeInputChains1_0,
/*547128*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)) - Complexity = 24
                      // Dst: (VPBROADCASTQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*547139*/          /*Scope*/ 17, /*->547157*/
/*547140*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*547142*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*547145*/            OPC_EmitMergeInputChains1_0,
/*547146*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)) - Complexity = 24
                      // Dst: (VPBROADCASTQZ128m:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*547157*/          0, /*End of Scope*/
/*547158*/        /*SwitchType*/ 41, MVT::v4i64,// ->547201
/*547160*/          OPC_MoveParent,
/*547161*/          OPC_CheckType, MVT::v4i64,
/*547163*/          OPC_Scope, 17, /*->547182*/ // 2 children in Scope
/*547165*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*547167*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*547170*/            OPC_EmitMergeInputChains1_0,
/*547171*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } (X86vzload:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)) - Complexity = 24
                      // Dst: (VPBROADCASTQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*547182*/          /*Scope*/ 17, /*->547200*/
/*547183*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*547185*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*547188*/            OPC_EmitMergeInputChains1_0,
/*547189*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } (X86vzload:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)) - Complexity = 24
                      // Dst: (VPBROADCASTQZ256m:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*547200*/          0, /*End of Scope*/
/*547201*/        /*SwitchType*/ 20, MVT::v8i64,// ->547223
/*547203*/          OPC_MoveParent,
/*547204*/          OPC_CheckType, MVT::v8i64,
/*547206*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547208*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*547211*/          OPC_EmitMergeInputChains1_0,
/*547212*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VBroadcast:{ *:[v8i64] } (X86vzload:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)) - Complexity = 24
                    // Dst: (VPBROADCASTQZm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*547223*/        0, // EndSwitchType
/*547224*/      0, // EndSwitchOpcode
/*547225*/    /*Scope*/ 103|128,10/*1383*/, /*->548610*/
/*547227*/      OPC_RecordChild0, // #0 = $src
/*547228*/      OPC_Scope, 63, /*->547293*/ // 16 children in Scope
/*547230*/        OPC_CheckChild0Type, MVT::v16i8,
/*547232*/        OPC_SwitchType /*3 cases */, 22, MVT::v16i8,// ->547257
/*547235*/          OPC_Scope, 9, /*->547246*/ // 2 children in Scope
/*547237*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*547239*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrr), 0,
                          MVT::v16i8, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src)
/*547246*/          /*Scope*/ 9, /*->547256*/
/*547247*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*547249*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ128r), 0,
                          MVT::v16i8, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBZ128r:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src)
/*547256*/          0, /*End of Scope*/
/*547257*/        /*SwitchType*/ 22, MVT::v32i8,// ->547281
/*547259*/          OPC_Scope, 9, /*->547270*/ // 2 children in Scope
/*547261*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*547263*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBYrr), 0,
                          MVT::v32i8, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v32i8] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBYrr:{ *:[v32i8] } VR128:{ *:[v16i8] }:$src)
/*547270*/          /*Scope*/ 9, /*->547280*/
/*547271*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*547273*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256r), 0,
                          MVT::v32i8, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v32i8] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBZ256r:{ *:[v32i8] } VR128X:{ *:[v16i8] }:$src)
/*547280*/          0, /*End of Scope*/
/*547281*/        /*SwitchType*/ 9, MVT::v64i8,// ->547292
/*547283*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*547285*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZr), 0,
                        MVT::v64i8, 1/*#Ops*/, 0, 
                    // Src: (X86VBroadcast:{ *:[v64i8] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTBZr:{ *:[v64i8] } VR128X:{ *:[v16i8] }:$src)
/*547292*/        0, // EndSwitchType
/*547293*/      /*Scope*/ 63, /*->547357*/
/*547294*/        OPC_CheckChild0Type, MVT::v8i16,
/*547296*/        OPC_SwitchType /*3 cases */, 22, MVT::v8i16,// ->547321
/*547299*/          OPC_Scope, 9, /*->547310*/ // 2 children in Scope
/*547301*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*547303*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrr), 0,
                          MVT::v8i16, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src)
/*547310*/          /*Scope*/ 9, /*->547320*/
/*547311*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*547313*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128r), 0,
                          MVT::v8i16, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWZ128r:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src)
/*547320*/          0, /*End of Scope*/
/*547321*/        /*SwitchType*/ 22, MVT::v16i16,// ->547345
/*547323*/          OPC_Scope, 9, /*->547334*/ // 2 children in Scope
/*547325*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*547327*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWYrr), 0,
                          MVT::v16i16, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWYrr:{ *:[v16i16] } VR128:{ *:[v8i16] }:$src)
/*547334*/          /*Scope*/ 9, /*->547344*/
/*547335*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*547337*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256r), 0,
                          MVT::v16i16, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWZ256r:{ *:[v16i16] } VR128X:{ *:[v8i16] }:$src)
/*547344*/          0, /*End of Scope*/
/*547345*/        /*SwitchType*/ 9, MVT::v32i16,// ->547356
/*547347*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*547349*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZr), 0,
                        MVT::v32i16, 1/*#Ops*/, 0, 
                    // Src: (X86VBroadcast:{ *:[v32i16] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTWZr:{ *:[v32i16] } VR128X:{ *:[v8i16] }:$src)
/*547356*/        0, // EndSwitchType
/*547357*/      /*Scope*/ 63, /*->547421*/
/*547358*/        OPC_CheckChild0Type, MVT::v4i32,
/*547360*/        OPC_SwitchType /*3 cases */, 22, MVT::v4i32,// ->547385
/*547363*/          OPC_Scope, 9, /*->547374*/ // 2 children in Scope
/*547365*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*547367*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src)
/*547374*/          /*Scope*/ 9, /*->547384*/
/*547375*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*547377*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ128r), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDZ128r:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src)
/*547384*/          0, /*End of Scope*/
/*547385*/        /*SwitchType*/ 22, MVT::v8i32,// ->547409
/*547387*/          OPC_Scope, 9, /*->547398*/ // 2 children in Scope
/*547389*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*547391*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v8i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDYrr:{ *:[v8i32] } VR128:{ *:[v4i32] }:$src)
/*547398*/          /*Scope*/ 9, /*->547408*/
/*547399*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*547401*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256r), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v8i32] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDZ256r:{ *:[v8i32] } VR128X:{ *:[v4i32] }:$src)
/*547408*/          0, /*End of Scope*/
/*547409*/        /*SwitchType*/ 9, MVT::v16i32,// ->547420
/*547411*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547413*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0, 
                    // Src: (X86VBroadcast:{ *:[v16i32] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTDZr:{ *:[v16i32] } VR128X:{ *:[v4i32] }:$src)
/*547420*/        0, // EndSwitchType
/*547421*/      /*Scope*/ 63, /*->547485*/
/*547422*/        OPC_CheckChild0Type, MVT::v2i64,
/*547424*/        OPC_SwitchType /*3 cases */, 22, MVT::v2i64,// ->547449
/*547427*/          OPC_Scope, 9, /*->547438*/ // 2 children in Scope
/*547429*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*547431*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src)
/*547438*/          /*Scope*/ 9, /*->547448*/
/*547439*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*547441*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128r), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQZ128r:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src)
/*547448*/          0, /*End of Scope*/
/*547449*/        /*SwitchType*/ 22, MVT::v4i64,// ->547473
/*547451*/          OPC_Scope, 9, /*->547462*/ // 2 children in Scope
/*547453*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*547455*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQYrr:{ *:[v4i64] } VR128:{ *:[v2i64] }:$src)
/*547462*/          /*Scope*/ 9, /*->547472*/
/*547463*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*547465*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256r), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQZ256r:{ *:[v4i64] } VR128X:{ *:[v2i64] }:$src)
/*547472*/          0, /*End of Scope*/
/*547473*/        /*SwitchType*/ 9, MVT::v8i64,// ->547484
/*547475*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547477*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86VBroadcast:{ *:[v8i64] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTQZr:{ *:[v8i64] } VR128X:{ *:[v2i64] }:$src)
/*547484*/        0, // EndSwitchType
/*547485*/      /*Scope*/ 59|128,1/*187*/, /*->547674*/
/*547487*/        OPC_CheckChild0Type, MVT::i32,
/*547489*/        OPC_SwitchType /*3 cases */, 9, MVT::v16i32,// ->547501
/*547492*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547494*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0, 
                    // Src: (X86VBroadcast:{ *:[v16i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTDrZr:{ *:[v16i32] } GR32:{ *:[i32] }:$src)
/*547501*/        /*SwitchType*/ 110, MVT::v8i32,// ->547613
/*547503*/          OPC_Scope, 9, /*->547514*/ // 3 children in Scope
/*547505*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*547507*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZ256r), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v8i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDrZ256r:{ *:[v8i32] } GR32:{ *:[i32] }:$src)
/*547514*/          /*Scope*/ 20, /*->547535*/
/*547515*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*547517*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547520*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*547528*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v8i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDYrr:{ *:[v8i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } GR32:{ *:[i32] }:$src, VR128:{ *:[i32] }))
/*547535*/          /*Scope*/ 76, /*->547612*/
/*547536*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*547538*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i32, 0/*#Ops*/,  // Results = #1
/*547544*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547547*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*547555*/            OPC_EmitInteger, MVT::i8, 0, 
/*547558*/            OPC_EmitNode1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v4i32, 2/*#Ops*/, 3, 4,  // Results = #5
/*547566*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*547569*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/*547578*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547581*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 8,  // Results = #9
/*547589*/            OPC_EmitInteger, MVT::i8, 0, 
/*547592*/            OPC_EmitNode1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v4i32, 2/*#Ops*/, 9, 10,  // Results = #11
/*547600*/            OPC_EmitInteger, MVT::i8, 1, 
/*547603*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                          MVT::v8i32, 3/*#Ops*/, 7, 11, 12, 
                      // Src: (X86VBroadcast:{ *:[v8i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VINSERTF128rr:{ *:[v8i32] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), (VPSHUFDri:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } GR32:{ *:[i32] }:$src, VR128:{ *:[i32] }), 0:{ *:[i8] }), sub_xmm:{ *:[i32] }), (VPSHUFDri:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } GR32:{ *:[i32] }:$src, VR128:{ *:[i32] }), 0:{ *:[i8] }), 1:{ *:[i8] })
/*547612*/          0, /*End of Scope*/
/*547613*/        /*SwitchType*/ 58, MVT::v4i32,// ->547673
/*547615*/          OPC_Scope, 9, /*->547626*/ // 3 children in Scope
/*547617*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*547619*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZ128r), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v4i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDrZ128r:{ *:[v4i32] } GR32:{ *:[i32] }:$src)
/*547626*/          /*Scope*/ 20, /*->547647*/
/*547627*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*547629*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547632*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*547640*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v4i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDrr:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } GR32:{ *:[i32] }:$src, VR128:{ *:[i32] }))
/*547647*/          /*Scope*/ 24, /*->547672*/
/*547648*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*547650*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547653*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*547661*/            OPC_EmitInteger, MVT::i8, 0, 
/*547664*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v4i32, 2/*#Ops*/, 2, 3, 
                      // Src: (X86VBroadcast:{ *:[v4i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VPSHUFDri:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } GR32:{ *:[i32] }:$src, VR128:{ *:[i32] }), 0:{ *:[i8] })
/*547672*/          0, /*End of Scope*/
/*547673*/        0, // EndSwitchType
/*547674*/      /*Scope*/ 59|128,1/*187*/, /*->547863*/
/*547676*/        OPC_CheckChild0Type, MVT::i64,
/*547678*/        OPC_SwitchType /*3 cases */, 9, MVT::v8i64,// ->547690
/*547681*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547683*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86VBroadcast:{ *:[v8i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTQrZr:{ *:[v8i64] } GR64:{ *:[i64] }:$src)
/*547690*/        /*SwitchType*/ 110, MVT::v4i64,// ->547802
/*547692*/          OPC_Scope, 9, /*->547703*/ // 3 children in Scope
/*547694*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*547696*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZ256r), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQrZ256r:{ *:[v4i64] } GR64:{ *:[i64] }:$src)
/*547703*/          /*Scope*/ 20, /*->547724*/
/*547704*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*547706*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547709*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*547717*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQYrr:{ *:[v4i64] } (COPY_TO_REGCLASS:{ *:[v2i64] } GR64:{ *:[i64] }:$src, VR128:{ *:[i32] }))
/*547724*/          /*Scope*/ 76, /*->547801*/
/*547725*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*547727*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i64, 0/*#Ops*/,  // Results = #1
/*547733*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547736*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*547744*/            OPC_EmitInteger, MVT::i8, 68, 
/*547747*/            OPC_EmitNode1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v4i32, 2/*#Ops*/, 3, 4,  // Results = #5
/*547755*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*547758*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4i64, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/*547767*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547770*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 8,  // Results = #9
/*547778*/            OPC_EmitInteger, MVT::i8, 68, 
/*547781*/            OPC_EmitNode1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v4i32, 2/*#Ops*/, 9, 10,  // Results = #11
/*547789*/            OPC_EmitInteger, MVT::i8, 1, 
/*547792*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                          MVT::v4i64, 3/*#Ops*/, 7, 11, 12, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VINSERTF128rr:{ *:[v4i64] } (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), (VPSHUFDri:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } GR64:{ *:[i64] }:$src, VR128:{ *:[i32] }), 68:{ *:[i8] }), sub_xmm:{ *:[i32] }), (VPSHUFDri:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } GR64:{ *:[i64] }:$src, VR128:{ *:[i32] }), 68:{ *:[i8] }), 1:{ *:[i8] })
/*547801*/          0, /*End of Scope*/
/*547802*/        /*SwitchType*/ 58, MVT::v2i64,// ->547862
/*547804*/          OPC_Scope, 9, /*->547815*/ // 3 children in Scope
/*547806*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*547808*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZ128r), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQrZ128r:{ *:[v2i64] } GR64:{ *:[i64] }:$src)
/*547815*/          /*Scope*/ 20, /*->547836*/
/*547816*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*547818*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547821*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*547829*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQrr:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[v2i64] } GR64:{ *:[i64] }:$src, VR128:{ *:[i32] }))
/*547836*/          /*Scope*/ 24, /*->547861*/
/*547837*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*547839*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547842*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*547850*/            OPC_EmitInteger, MVT::i8, 68, 
/*547853*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v2i64, 2/*#Ops*/, 2, 3, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } i64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VPSHUFDri:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[v4i32] } GR64:{ *:[i64] }:$src, VR128:{ *:[i32] }), 68:{ *:[i8] })
/*547861*/          0, /*End of Scope*/
/*547862*/        0, // EndSwitchType
/*547863*/      /*Scope*/ 72, /*->547936*/
/*547864*/        OPC_CheckChild0Type, MVT::v32i8,
/*547866*/        OPC_SwitchType /*2 cases */, 44, MVT::v32i8,// ->547913
/*547869*/          OPC_Scope, 20, /*->547891*/ // 2 children in Scope
/*547871*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*547873*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*547876*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*547884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBYrr), 0,
                          MVT::v32i8, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBYrr:{ *:[v32i8] } (EXTRACT_SUBREG:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] }))
/*547891*/          /*Scope*/ 20, /*->547912*/
/*547892*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*547894*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*547897*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*547905*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256r), 0,
                          MVT::v32i8, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBZ256r:{ *:[v32i8] } (EXTRACT_SUBREG:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] }))
/*547912*/          0, /*End of Scope*/
/*547913*/        /*SwitchType*/ 20, MVT::v64i8,// ->547935
/*547915*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*547917*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*547920*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*547928*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZr), 0,
                        MVT::v64i8, 1/*#Ops*/, 2, 
                    // Src: (X86VBroadcast:{ *:[v64i8] } VR256X:{ *:[v32i8] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTBZr:{ *:[v64i8] } (EXTRACT_SUBREG:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] }))
/*547935*/        0, // EndSwitchType
/*547936*/      /*Scope*/ 72, /*->548009*/
/*547937*/        OPC_CheckChild0Type, MVT::v16i16,
/*547939*/        OPC_SwitchType /*2 cases */, 44, MVT::v16i16,// ->547986
/*547942*/          OPC_Scope, 20, /*->547964*/ // 2 children in Scope
/*547944*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*547946*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*547949*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*547957*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWYrr), 0,
                          MVT::v16i16, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWYrr:{ *:[v16i16] } (EXTRACT_SUBREG:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] }))
/*547964*/          /*Scope*/ 20, /*->547985*/
/*547965*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*547967*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*547970*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*547978*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256r), 0,
                          MVT::v16i16, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWZ256r:{ *:[v16i16] } (EXTRACT_SUBREG:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] }))
/*547985*/          0, /*End of Scope*/
/*547986*/        /*SwitchType*/ 20, MVT::v32i16,// ->548008
/*547988*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*547990*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*547993*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*548001*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZr), 0,
                        MVT::v32i16, 1/*#Ops*/, 2, 
                    // Src: (X86VBroadcast:{ *:[v32i16] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTWZr:{ *:[v32i16] } (EXTRACT_SUBREG:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] }))
/*548008*/        0, // EndSwitchType
/*548009*/      /*Scope*/ 72, /*->548082*/
/*548010*/        OPC_CheckChild0Type, MVT::v8i32,
/*548012*/        OPC_SwitchType /*2 cases */, 44, MVT::v8i32,// ->548059
/*548015*/          OPC_Scope, 20, /*->548037*/ // 2 children in Scope
/*548017*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*548019*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*548022*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*548030*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDYrr:{ *:[v8i32] } (EXTRACT_SUBREG:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }))
/*548037*/          /*Scope*/ 20, /*->548058*/
/*548038*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*548040*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*548043*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*548051*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256r), 0,
                          MVT::v8i32, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDZ256r:{ *:[v8i32] } (EXTRACT_SUBREG:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }))
/*548058*/          0, /*End of Scope*/
/*548059*/        /*SwitchType*/ 20, MVT::v16i32,// ->548081
/*548061*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548063*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*548066*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*548074*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZr), 0,
                        MVT::v16i32, 1/*#Ops*/, 2, 
                    // Src: (X86VBroadcast:{ *:[v16i32] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTDZr:{ *:[v16i32] } (EXTRACT_SUBREG:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] }))
/*548081*/        0, // EndSwitchType
/*548082*/      /*Scope*/ 72, /*->548155*/
/*548083*/        OPC_CheckChild0Type, MVT::v4i64,
/*548085*/        OPC_SwitchType /*2 cases */, 44, MVT::v4i64,// ->548132
/*548088*/          OPC_Scope, 20, /*->548110*/ // 2 children in Scope
/*548090*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*548092*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*548095*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*548103*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQYrr:{ *:[v4i64] } (EXTRACT_SUBREG:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }))
/*548110*/          /*Scope*/ 20, /*->548131*/
/*548111*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*548113*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*548116*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*548124*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256r), 0,
                          MVT::v4i64, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQZ256r:{ *:[v4i64] } (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }))
/*548131*/          0, /*End of Scope*/
/*548132*/        /*SwitchType*/ 20, MVT::v8i64,// ->548154
/*548134*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548136*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*548139*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*548147*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZr), 0,
                        MVT::v8i64, 1/*#Ops*/, 2, 
                    // Src: (X86VBroadcast:{ *:[v8i64] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTQZr:{ *:[v8i64] } (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] }))
/*548154*/        0, // EndSwitchType
/*548155*/      /*Scope*/ 24, /*->548180*/
/*548156*/        OPC_CheckChild0Type, MVT::v64i8,
/*548158*/        OPC_CheckType, MVT::v64i8,
/*548160*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*548162*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*548165*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*548173*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZr), 0,
                      MVT::v64i8, 1/*#Ops*/, 2, 
                  // Src: (X86VBroadcast:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src) - Complexity = 3
                  // Dst: (VPBROADCASTBZr:{ *:[v64i8] } (EXTRACT_SUBREG:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, sub_xmm:{ *:[i32] }))
/*548180*/      /*Scope*/ 24, /*->548205*/
/*548181*/        OPC_CheckChild0Type, MVT::v32i16,
/*548183*/        OPC_CheckType, MVT::v32i16,
/*548185*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*548187*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*548190*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*548198*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZr), 0,
                      MVT::v32i16, 1/*#Ops*/, 2, 
                  // Src: (X86VBroadcast:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src) - Complexity = 3
                  // Dst: (VPBROADCASTWZr:{ *:[v32i16] } (EXTRACT_SUBREG:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, sub_xmm:{ *:[i32] }))
/*548205*/      /*Scope*/ 24, /*->548230*/
/*548206*/        OPC_CheckChild0Type, MVT::v16i32,
/*548208*/        OPC_CheckType, MVT::v16i32,
/*548210*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548212*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*548215*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*548223*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZr), 0,
                      MVT::v16i32, 1/*#Ops*/, 2, 
                  // Src: (X86VBroadcast:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                  // Dst: (VPBROADCASTDZr:{ *:[v16i32] } (EXTRACT_SUBREG:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, sub_xmm:{ *:[i32] }))
/*548230*/      /*Scope*/ 24, /*->548255*/
/*548231*/        OPC_CheckChild0Type, MVT::v8i64,
/*548233*/        OPC_CheckType, MVT::v8i64,
/*548235*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548237*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*548240*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*548248*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZr), 0,
                      MVT::v8i64, 1/*#Ops*/, 2, 
                  // Src: (X86VBroadcast:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                  // Dst: (VPBROADCASTQZr:{ *:[v8i64] } (EXTRACT_SUBREG:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, sub_xmm:{ *:[i32] }))
/*548255*/      /*Scope*/ 47|128,1/*175*/, /*->548432*/
/*548257*/        OPC_CheckChild0Type, MVT::i8,
/*548259*/        OPC_SwitchType /*3 cases */, 27, MVT::v64i8,// ->548289
/*548262*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*548264*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*548270*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*548273*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*548282*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3, 
                    // Src: (X86VBroadcast:{ *:[v64i8] } GR8:{ *:[i8] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTBrZr:{ *:[v64i8] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*548289*/        /*SwitchType*/ 69, MVT::v32i8,// ->548360
/*548291*/          OPC_Scope, 27, /*->548320*/ // 2 children in Scope
/*548293*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*548295*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*548301*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*548304*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*548313*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZ256r), 0,
                          MVT::v32i8, 1/*#Ops*/, 3, 
                      // Src: (X86VBroadcast:{ *:[v32i8] } GR8:{ *:[i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBrZ256r:{ *:[v32i8] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*548320*/          /*Scope*/ 38, /*->548359*/
/*548321*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*548323*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*548329*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*548332*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*548341*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548344*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i8, 2/*#Ops*/, 3, 4,  // Results = #5
/*548352*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBYrr), 0,
                          MVT::v32i8, 1/*#Ops*/, 5, 
                      // Src: (X86VBroadcast:{ *:[v32i8] } GR8:{ *:[i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBYrr:{ *:[v32i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }), VR128:{ *:[i32] }))
/*548359*/          0, /*End of Scope*/
/*548360*/        /*SwitchType*/ 69, MVT::v16i8,// ->548431
/*548362*/          OPC_Scope, 27, /*->548391*/ // 2 children in Scope
/*548364*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*548366*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*548372*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*548375*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*548384*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZ128r), 0,
                          MVT::v16i8, 1/*#Ops*/, 3, 
                      // Src: (X86VBroadcast:{ *:[v16i8] } GR8:{ *:[i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBrZ128r:{ *:[v16i8] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*548391*/          /*Scope*/ 38, /*->548430*/
/*548392*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*548394*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*548400*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*548403*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*548412*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548415*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i8, 2/*#Ops*/, 3, 4,  // Results = #5
/*548423*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrr), 0,
                          MVT::v16i8, 1/*#Ops*/, 5, 
                      // Src: (X86VBroadcast:{ *:[v16i8] } GR8:{ *:[i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBrr:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }), VR128:{ *:[i32] }))
/*548430*/          0, /*End of Scope*/
/*548431*/        0, // EndSwitchType
/*548432*/      /*Scope*/ 47|128,1/*175*/, /*->548609*/
/*548434*/        OPC_CheckChild0Type, MVT::i16,
/*548436*/        OPC_SwitchType /*3 cases */, 27, MVT::v32i16,// ->548466
/*548439*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*548441*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*548447*/          OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*548450*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*548459*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZr), 0,
                        MVT::v32i16, 1/*#Ops*/, 3, 
                    // Src: (X86VBroadcast:{ *:[v32i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                    // Dst: (VPBROADCASTWrZr:{ *:[v32i16] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*548466*/        /*SwitchType*/ 69, MVT::v16i16,// ->548537
/*548468*/          OPC_Scope, 27, /*->548497*/ // 2 children in Scope
/*548470*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*548472*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*548478*/            OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*548481*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*548490*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZ256r), 0,
                          MVT::v16i16, 1/*#Ops*/, 3, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWrZ256r:{ *:[v16i16] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*548497*/          /*Scope*/ 38, /*->548536*/
/*548498*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*548500*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*548506*/            OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*548509*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*548518*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548521*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i16, 2/*#Ops*/, 3, 4,  // Results = #5
/*548529*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWYrr), 0,
                          MVT::v16i16, 1/*#Ops*/, 5, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWYrr:{ *:[v16i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }), VR128:{ *:[i32] }))
/*548536*/          0, /*End of Scope*/
/*548537*/        /*SwitchType*/ 69, MVT::v8i16,// ->548608
/*548539*/          OPC_Scope, 27, /*->548568*/ // 2 children in Scope
/*548541*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*548543*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*548549*/            OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*548552*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*548561*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZ128r), 0,
                          MVT::v8i16, 1/*#Ops*/, 3, 
                      // Src: (X86VBroadcast:{ *:[v8i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWrZ128r:{ *:[v8i16] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*548568*/          /*Scope*/ 38, /*->548607*/
/*548569*/            OPC_CheckPatternPredicate, 122, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*548571*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*548577*/            OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*548580*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*548589*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548592*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i16, 2/*#Ops*/, 3, 4,  // Results = #5
/*548600*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrr), 0,
                          MVT::v8i16, 1/*#Ops*/, 5, 
                      // Src: (X86VBroadcast:{ *:[v8i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWrr:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }), VR128:{ *:[i32] }))
/*548607*/          0, /*End of Scope*/
/*548608*/        0, // EndSwitchType
/*548609*/      0, /*End of Scope*/
/*548610*/    /*Scope*/ 96|128,3/*480*/, /*->549092*/
/*548612*/      OPC_MoveChild0,
/*548613*/      OPC_SwitchOpcode /*2 cases */, 79|128,1/*207*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->548825
/*548618*/        OPC_MoveChild0,
/*548619*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*548622*/        OPC_RecordMemRef,
/*548623*/        OPC_RecordNode, // #0 = 'ld' chained node
/*548624*/        OPC_CheckFoldableChainNode,
/*548625*/        OPC_RecordChild1, // #1 = $src
/*548626*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*548628*/        OPC_CheckPredicate, 9, // Predicate_load
/*548630*/        OPC_SwitchType /*2 cases */, 105, MVT::f32,// ->548738
/*548633*/          OPC_MoveParent,
/*548634*/          OPC_CheckType, MVT::v4f32,
/*548636*/          OPC_MoveParent,
/*548637*/          OPC_SwitchType /*3 cases */, 38, MVT::v4f32,// ->548678
/*548640*/            OPC_Scope, 17, /*->548659*/ // 2 children in Scope
/*548642*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*548644*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548647*/              OPC_EmitMergeInputChains1_0,
/*548648*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VBROADCASTSSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*548659*/            /*Scope*/ 17, /*->548677*/
/*548660*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*548662*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548665*/              OPC_EmitMergeInputChains1_0,
/*548666*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VBROADCASTSSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*548677*/            0, /*End of Scope*/
/*548678*/          /*SwitchType*/ 38, MVT::v8f32,// ->548718
/*548680*/            OPC_Scope, 17, /*->548699*/ // 2 children in Scope
/*548682*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*548684*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548687*/              OPC_EmitMergeInputChains1_0,
/*548688*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v8f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VBROADCASTSSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*548699*/            /*Scope*/ 17, /*->548717*/
/*548700*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*548702*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548705*/              OPC_EmitMergeInputChains1_0,
/*548706*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v8f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VBROADCASTSSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*548717*/            0, /*End of Scope*/
/*548718*/          /*SwitchType*/ 17, MVT::v16f32,// ->548737
/*548720*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548722*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548725*/            OPC_EmitMergeInputChains1_0,
/*548726*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v16f32] } (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VBROADCASTSSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*548737*/          0, // EndSwitchType
/*548738*/        /*SwitchType*/ 84, MVT::f64,// ->548824
/*548740*/          OPC_MoveParent,
/*548741*/          OPC_CheckType, MVT::v2f64,
/*548743*/          OPC_MoveParent,
/*548744*/          OPC_SwitchType /*3 cases */, 38, MVT::v4f64,// ->548785
/*548747*/            OPC_Scope, 17, /*->548766*/ // 2 children in Scope
/*548749*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*548751*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548754*/              OPC_EmitMergeInputChains1_0,
/*548755*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v4f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VBROADCASTSDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*548766*/            /*Scope*/ 17, /*->548784*/
/*548767*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*548769*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548772*/              OPC_EmitMergeInputChains1_0,
/*548773*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v4f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VBROADCASTSDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*548784*/            0, /*End of Scope*/
/*548785*/          /*SwitchType*/ 17, MVT::v8f64,// ->548804
/*548787*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548789*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548792*/            OPC_EmitMergeInputChains1_0,
/*548793*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v8f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VBROADCASTSDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*548804*/          /*SwitchType*/ 17, MVT::v2f64,// ->548823
/*548806*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*548808*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548811*/            OPC_EmitMergeInputChains1_0,
/*548812*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMOVDDUPZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*548823*/          0, // EndSwitchType
/*548824*/        0, // EndSwitchType
/*548825*/      /*SwitchOpcode*/ 6|128,2/*262*/, TARGET_VAL(ISD::LOAD),// ->549091
/*548829*/        OPC_RecordMemRef,
/*548830*/        OPC_RecordNode, // #0 = 'ld' chained node
/*548831*/        OPC_RecordChild1, // #1 = $src
/*548832*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*548834*/        OPC_CheckPredicate, 9, // Predicate_load
/*548836*/        OPC_SwitchType /*3 cases */, 102, MVT::f32,// ->548941
/*548839*/          OPC_MoveParent,
/*548840*/          OPC_SwitchType /*3 cases */, 38, MVT::v4f32,// ->548881
/*548843*/            OPC_Scope, 17, /*->548862*/ // 2 children in Scope
/*548845*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*548847*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548850*/              OPC_EmitMergeInputChains1_0,
/*548851*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VBROADCASTSSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*548862*/            /*Scope*/ 17, /*->548880*/
/*548863*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*548865*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548868*/              OPC_EmitMergeInputChains1_0,
/*548869*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VBROADCASTSSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*548880*/            0, /*End of Scope*/
/*548881*/          /*SwitchType*/ 38, MVT::v8f32,// ->548921
/*548883*/            OPC_Scope, 17, /*->548902*/ // 2 children in Scope
/*548885*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*548887*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548890*/              OPC_EmitMergeInputChains1_0,
/*548891*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VBROADCASTSSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*548902*/            /*Scope*/ 17, /*->548920*/
/*548903*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*548905*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548908*/              OPC_EmitMergeInputChains1_0,
/*548909*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VBROADCASTSSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*548920*/            0, /*End of Scope*/
/*548921*/          /*SwitchType*/ 17, MVT::v16f32,// ->548940
/*548923*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548925*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548928*/            OPC_EmitMergeInputChains1_0,
/*548929*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VBROADCASTSSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*548940*/          0, // EndSwitchType
/*548941*/        /*SwitchType*/ 102, MVT::f64,// ->549045
/*548943*/          OPC_MoveParent,
/*548944*/          OPC_SwitchType /*3 cases */, 38, MVT::v4f64,// ->548985
/*548947*/            OPC_Scope, 17, /*->548966*/ // 2 children in Scope
/*548949*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*548951*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548954*/              OPC_EmitMergeInputChains1_0,
/*548955*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VBROADCASTSDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*548966*/            /*Scope*/ 17, /*->548984*/
/*548967*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*548969*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548972*/              OPC_EmitMergeInputChains1_0,
/*548973*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                            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: (VBROADCASTSDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*548984*/            0, /*End of Scope*/
/*548985*/          /*SwitchType*/ 38, MVT::v2f64,// ->549025
/*548987*/            OPC_Scope, 17, /*->549006*/ // 2 children in Scope
/*548989*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*548991*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*548994*/              OPC_EmitMergeInputChains1_0,
/*548995*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMOVDDUPrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*549006*/            /*Scope*/ 17, /*->549024*/
/*549007*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*549009*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*549012*/              OPC_EmitMergeInputChains1_0,
/*549013*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMOVDDUPZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*549024*/            0, /*End of Scope*/
/*549025*/          /*SwitchType*/ 17, MVT::v8f64,// ->549044
/*549027*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549029*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*549032*/            OPC_EmitMergeInputChains1_0,
/*549033*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VBROADCASTSDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*549044*/          0, // EndSwitchType
/*549045*/        /*SwitchType*/ 43, MVT::v2f64,// ->549090
/*549047*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*549049*/          OPC_MoveParent,
/*549050*/          OPC_CheckType, MVT::v2f64,
/*549052*/          OPC_Scope, 17, /*->549071*/ // 2 children in Scope
/*549054*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*549056*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*549059*/            OPC_EmitMergeInputChains1_0,
/*549060*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMOVDDUPrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*549071*/          /*Scope*/ 17, /*->549089*/
/*549072*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*549074*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*549077*/            OPC_EmitMergeInputChains1_0,
/*549078*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMOVDDUPZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*549089*/          0, /*End of Scope*/
/*549090*/        0, // EndSwitchType
/*549091*/      0, // EndSwitchOpcode
/*549092*/    /*Scope*/ 90|128,5/*730*/, /*->549824*/
/*549094*/      OPC_RecordChild0, // #0 = $src
/*549095*/      OPC_Scope, 63, /*->549160*/ // 8 children in Scope
/*549097*/        OPC_CheckChild0Type, MVT::v4f32,
/*549099*/        OPC_SwitchType /*3 cases */, 22, MVT::v4f32,// ->549124
/*549102*/          OPC_Scope, 9, /*->549113*/ // 2 children in Scope
/*549104*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*549106*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSrr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*549113*/          /*Scope*/ 9, /*->549123*/
/*549114*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*549116*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128r), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src)
/*549123*/          0, /*End of Scope*/
/*549124*/        /*SwitchType*/ 22, MVT::v8f32,// ->549148
/*549126*/          OPC_Scope, 9, /*->549137*/ // 2 children in Scope
/*549128*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*549130*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSYrr), 0,
                          MVT::v8f32, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v8f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSSYrr:{ *:[v8f32] } VR128:{ *:[v4f32] }:$src)
/*549137*/          /*Scope*/ 9, /*->549147*/
/*549138*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*549140*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256r), 0,
                          MVT::v8f32, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v8f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSSZ256r:{ *:[v8f32] } VR128X:{ *:[v4f32] }:$src)
/*549147*/          0, /*End of Scope*/
/*549148*/        /*SwitchType*/ 9, MVT::v16f32,// ->549159
/*549150*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549152*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZr), 0,
                        MVT::v16f32, 1/*#Ops*/, 0, 
                    // Src: (X86VBroadcast:{ *:[v16f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VBROADCASTSSZr:{ *:[v16f32] } VR128X:{ *:[v4f32] }:$src)
/*549159*/        0, // EndSwitchType
/*549160*/      /*Scope*/ 63, /*->549224*/
/*549161*/        OPC_CheckChild0Type, MVT::v2f64,
/*549163*/        OPC_SwitchType /*3 cases */, 22, MVT::v4f64,// ->549188
/*549166*/          OPC_Scope, 9, /*->549177*/ // 2 children in Scope
/*549168*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*549170*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDYrr), 0,
                          MVT::v4f64, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v4f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSDYrr:{ *:[v4f64] } VR128:{ *:[v2f64] }:$src)
/*549177*/          /*Scope*/ 9, /*->549187*/
/*549178*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*549180*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256r), 0,
                          MVT::v4f64, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v4f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSDZ256r:{ *:[v4f64] } VR128X:{ *:[v2f64] }:$src)
/*549187*/          0, /*End of Scope*/
/*549188*/        /*SwitchType*/ 22, MVT::v2f64,// ->549212
/*549190*/          OPC_Scope, 9, /*->549201*/ // 2 children in Scope
/*549192*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*549194*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrr), 0,
                          MVT::v2f64, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VMOVDDUPrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/*549201*/          /*Scope*/ 9, /*->549211*/
/*549202*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*549204*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rr), 0,
                          MVT::v2f64, 1/*#Ops*/, 0, 
                      // Src: (X86VBroadcast:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VMOVDDUPZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src)
/*549211*/          0, /*End of Scope*/
/*549212*/        /*SwitchType*/ 9, MVT::v8f64,// ->549223
/*549214*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549216*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZr), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (X86VBroadcast:{ *:[v8f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VBROADCASTSDZr:{ *:[v8f64] } VR128X:{ *:[v2f64] }:$src)
/*549223*/        0, // EndSwitchType
/*549224*/      /*Scope*/ 70, /*->549295*/
/*549225*/        OPC_CheckChild0Type, MVT::v8f32,
/*549227*/        OPC_SwitchType /*2 cases */, 44, MVT::v8f32,// ->549274
/*549230*/          OPC_Scope, 20, /*->549252*/ // 2 children in Scope
/*549232*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*549234*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*549237*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*549245*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSYrr), 0,
                          MVT::v8f32, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSSYrr:{ *:[v8f32] } (EXTRACT_SUBREG:{ *:[v4f32] } VR256:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }))
/*549252*/          /*Scope*/ 20, /*->549273*/
/*549253*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*549255*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*549258*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*549266*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256r), 0,
                          MVT::v8f32, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSSZ256r:{ *:[v8f32] } (EXTRACT_SUBREG:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }))
/*549273*/          0, /*End of Scope*/
/*549274*/        /*SwitchType*/ 18, MVT::v16f32,// ->549294
/*549276*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*549279*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*549287*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZr), 0,
                        MVT::v16f32, 1/*#Ops*/, 2, 
                    // Src: (X86VBroadcast:{ *:[v16f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VBROADCASTSSZr:{ *:[v16f32] } (EXTRACT_SUBREG:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] }))
/*549294*/        0, // EndSwitchType
/*549295*/      /*Scope*/ 70, /*->549366*/
/*549296*/        OPC_CheckChild0Type, MVT::v4f64,
/*549298*/        OPC_SwitchType /*2 cases */, 44, MVT::v4f64,// ->549345
/*549301*/          OPC_Scope, 20, /*->549323*/ // 2 children in Scope
/*549303*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*549305*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*549308*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*549316*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDYrr), 0,
                          MVT::v4f64, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSDYrr:{ *:[v4f64] } (EXTRACT_SUBREG:{ *:[v2f64] } VR256:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }))
/*549323*/          /*Scope*/ 20, /*->549344*/
/*549324*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*549326*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*549329*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*549337*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256r), 0,
                          MVT::v4f64, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSDZ256r:{ *:[v4f64] } (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }))
/*549344*/          0, /*End of Scope*/
/*549345*/        /*SwitchType*/ 18, MVT::v8f64,// ->549365
/*549347*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*549350*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*549358*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZr), 0,
                        MVT::v8f64, 1/*#Ops*/, 2, 
                    // Src: (X86VBroadcast:{ *:[v8f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VBROADCASTSDZr:{ *:[v8f64] } (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] }))
/*549365*/        0, // EndSwitchType
/*549366*/      /*Scope*/ 92|128,1/*220*/, /*->549588*/
/*549368*/        OPC_CheckChild0Type, MVT::f32,
/*549370*/        OPC_SwitchType /*3 cases */, 69, MVT::v4f32,// ->549442
/*549373*/          OPC_Scope, 20, /*->549395*/ // 3 children in Scope
/*549375*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*549377*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549380*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*549388*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSrr), 0,
                          MVT::v4f32, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v4f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSSrr:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*549395*/          /*Scope*/ 24, /*->549420*/
/*549396*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*549398*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549401*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*549409*/            OPC_EmitInteger, MVT::i8, 0, 
/*549412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSri), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 3, 
                      // Src: (X86VBroadcast:{ *:[v4f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VPERMILPSri:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }), 0:{ *:[i8] })
/*549420*/          /*Scope*/ 20, /*->549441*/
/*549421*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*549423*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549426*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*549434*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128r), 0,
                          MVT::v4f32, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v4f32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSSZ128r:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*549441*/          0, /*End of Scope*/
/*549442*/        /*SwitchType*/ 121, MVT::v8f32,// ->549565
/*549444*/          OPC_Scope, 20, /*->549466*/ // 3 children in Scope
/*549446*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*549448*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549451*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*549459*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSYrr), 0,
                          MVT::v8f32, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v8f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSSYrr:{ *:[v8f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*549466*/          /*Scope*/ 20, /*->549487*/
/*549467*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*549469*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549472*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*549480*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256r), 0,
                          MVT::v8f32, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v8f32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSSZ256r:{ *:[v8f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*549487*/          /*Scope*/ 76, /*->549564*/
/*549488*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*549490*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f32, 0/*#Ops*/,  // Results = #1
/*549496*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549499*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*549507*/            OPC_EmitInteger, MVT::i8, 0, 
/*549510*/            OPC_EmitNode1, TARGET_VAL(X86::VPERMILPSri), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*549518*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*549521*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/*549530*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549533*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 8,  // Results = #9
/*549541*/            OPC_EmitInteger, MVT::i8, 0, 
/*549544*/            OPC_EmitNode1, TARGET_VAL(X86::VPERMILPSri), 0,
                          MVT::v4f32, 2/*#Ops*/, 9, 10,  // Results = #11
/*549552*/            OPC_EmitInteger, MVT::i8, 1, 
/*549555*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                          MVT::v8f32, 3/*#Ops*/, 7, 11, 12, 
                      // Src: (X86VBroadcast:{ *:[v8f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VINSERTF128rr:{ *:[v8f32] } (INSERT_SUBREG:{ *:[v8f32] } (IMPLICIT_DEF:{ *:[v8f32] }), (VPERMILPSri:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }), 0:{ *:[i8] }), sub_xmm:{ *:[i32] }), (VPERMILPSri:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }), 0:{ *:[i8] }), 1:{ *:[i8] })
/*549564*/          0, /*End of Scope*/
/*549565*/        /*SwitchType*/ 20, MVT::v16f32,// ->549587
/*549567*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549569*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549572*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*549580*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZr), 0,
                        MVT::v16f32, 1/*#Ops*/, 2, 
                    // Src: (X86VBroadcast:{ *:[v16f32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VBROADCASTSSZr:{ *:[v16f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*549587*/        0, // EndSwitchType
/*549588*/      /*Scope*/ 59|128,1/*187*/, /*->549777*/
/*549590*/        OPC_CheckChild0Type, MVT::f64,
/*549592*/        OPC_SwitchType /*3 cases */, 113, MVT::v4f64,// ->549708
/*549595*/          OPC_Scope, 20, /*->549617*/ // 3 children in Scope
/*549597*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*549599*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549602*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*549610*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDYrr), 0,
                          MVT::v4f64, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v4f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSDYrr:{ *:[v4f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*549617*/          /*Scope*/ 20, /*->549638*/
/*549618*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*549620*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549623*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*549631*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256r), 0,
                          MVT::v4f64, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v4f64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VBROADCASTSDZ256r:{ *:[v4f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*549638*/          /*Scope*/ 68, /*->549707*/
/*549639*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*549641*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4f64, 0/*#Ops*/,  // Results = #1
/*549647*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549650*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*549658*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDDUPrr), 0,
                          MVT::v2f64, 1/*#Ops*/, 3,  // Results = #4
/*549665*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*549668*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4f64, 3/*#Ops*/, 1, 4, 5,  // Results = #6
/*549677*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549680*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 7,  // Results = #8
/*549688*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDDUPrr), 0,
                          MVT::v2f64, 1/*#Ops*/, 8,  // Results = #9
/*549695*/            OPC_EmitInteger, MVT::i8, 1, 
/*549698*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                          MVT::v4f64, 3/*#Ops*/, 6, 9, 10, 
                      // Src: (X86VBroadcast:{ *:[v4f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VINSERTF128rr:{ *:[v4f64] } (INSERT_SUBREG:{ *:[v4f64] } (IMPLICIT_DEF:{ *:[v4f64] }), (VMOVDDUPrr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] })), sub_xmm:{ *:[i32] }), (VMOVDDUPrr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] })), 1:{ *:[i8] })
/*549707*/          0, /*End of Scope*/
/*549708*/        /*SwitchType*/ 44, MVT::v2f64,// ->549754
/*549710*/          OPC_Scope, 20, /*->549732*/ // 2 children in Scope
/*549712*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*549714*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549717*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*549725*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrr), 0,
                          MVT::v2f64, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v2f64] } f64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VMOVDDUPrr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*549732*/          /*Scope*/ 20, /*->549753*/
/*549733*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*549735*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549738*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*549746*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rr), 0,
                          MVT::v2f64, 1/*#Ops*/, 2, 
                      // Src: (X86VBroadcast:{ *:[v2f64] } f64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VMOVDDUPZ128rr:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*549753*/          0, /*End of Scope*/
/*549754*/        /*SwitchType*/ 20, MVT::v8f64,// ->549776
/*549756*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549758*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549761*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*549769*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZr), 0,
                        MVT::v8f64, 1/*#Ops*/, 2, 
                    // Src: (X86VBroadcast:{ *:[v8f64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VBROADCASTSDZr:{ *:[v8f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*549776*/        0, // EndSwitchType
/*549777*/      /*Scope*/ 22, /*->549800*/
/*549778*/        OPC_CheckChild0Type, MVT::v16f32,
/*549780*/        OPC_CheckType, MVT::v16f32,
/*549782*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*549785*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*549793*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZr), 0,
                      MVT::v16f32, 1/*#Ops*/, 2, 
                  // Src: (X86VBroadcast:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VBROADCASTSSZr:{ *:[v16f32] } (EXTRACT_SUBREG:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, sub_xmm:{ *:[i32] }))
/*549800*/      /*Scope*/ 22, /*->549823*/
/*549801*/        OPC_CheckChild0Type, MVT::v8f64,
/*549803*/        OPC_CheckType, MVT::v8f64,
/*549805*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*549808*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*549816*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZr), 0,
                      MVT::v8f64, 1/*#Ops*/, 2, 
                  // Src: (X86VBroadcast:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VBROADCASTSDZr:{ *:[v8f64] } (EXTRACT_SUBREG:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, sub_xmm:{ *:[i32] }))
/*549823*/      0, /*End of Scope*/
/*549824*/    0, /*End of Scope*/
/*549825*/  /*SwitchOpcode*/ 64|128,6/*832*/, TARGET_VAL(X86ISD::VPERMV),// ->550661
/*549829*/    OPC_RecordChild0, // #0 = $src1
/*549830*/    OPC_Scope, 6|128,3/*390*/, /*->550223*/ // 4 children in Scope
/*549833*/      OPC_MoveChild1,
/*549834*/      OPC_SwitchOpcode /*3 cases */, 88|128,1/*216*/, TARGET_VAL(ISD::BITCAST),// ->550055
/*549839*/        OPC_MoveChild0,
/*549840*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*549843*/        OPC_RecordMemRef,
/*549844*/        OPC_RecordNode, // #1 = 'ld' chained node
/*549845*/        OPC_CheckFoldableChainNode,
/*549846*/        OPC_RecordChild1, // #2 = $src2
/*549847*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*549849*/        OPC_CheckPredicate, 9, // Predicate_load
/*549851*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*549853*/        OPC_SwitchType /*3 cases */, 86, MVT::v4i64,// ->549942
/*549856*/          OPC_MoveParent,
/*549857*/          OPC_MoveParent,
/*549858*/          OPC_SwitchType /*3 cases */, 40, MVT::v8i32,// ->549901
/*549861*/            OPC_Scope, 18, /*->549881*/ // 2 children in Scope
/*549863*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*549865*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*549868*/              OPC_EmitMergeInputChains1_1,
/*549869*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86VPermv:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPERMDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*549881*/            /*Scope*/ 18, /*->549900*/
/*549882*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*549884*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*549887*/              OPC_EmitMergeInputChains1_1,
/*549888*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86VPermv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPERMDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*549900*/            0, /*End of Scope*/
/*549901*/          /*SwitchType*/ 18, MVT::v16i16,// ->549921
/*549903*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*549905*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*549908*/            OPC_EmitMergeInputChains1_1,
/*549909*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*549921*/          /*SwitchType*/ 18, MVT::v32i8,// ->549941
/*549923*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*549925*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*549928*/            OPC_EmitMergeInputChains1_1,
/*549929*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*549941*/          0, // EndSwitchType
/*549942*/        /*SwitchType*/ 64, MVT::v8i64,// ->550008
/*549944*/          OPC_MoveParent,
/*549945*/          OPC_MoveParent,
/*549946*/          OPC_SwitchType /*3 cases */, 18, MVT::v32i16,// ->549967
/*549949*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*549951*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*549954*/            OPC_EmitMergeInputChains1_1,
/*549955*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*549967*/          /*SwitchType*/ 18, MVT::v64i8,// ->549987
/*549969*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*549971*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*549974*/            OPC_EmitMergeInputChains1_1,
/*549975*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*549987*/          /*SwitchType*/ 18, MVT::v16i32,// ->550007
/*549989*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549991*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*549994*/            OPC_EmitMergeInputChains1_1,
/*549995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550007*/          0, // EndSwitchType
/*550008*/        /*SwitchType*/ 44, MVT::v2i64,// ->550054
/*550010*/          OPC_MoveParent,
/*550011*/          OPC_MoveParent,
/*550012*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->550033
/*550015*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*550017*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550020*/            OPC_EmitMergeInputChains1_1,
/*550021*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550033*/          /*SwitchType*/ 18, MVT::v16i8,// ->550053
/*550035*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*550037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550040*/            OPC_EmitMergeInputChains1_1,
/*550041*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550053*/          0, // EndSwitchType
/*550054*/        0, // EndSwitchType
/*550055*/      /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST),// ->550166
/*550058*/        OPC_MoveChild0,
/*550059*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*550062*/        OPC_RecordMemRef,
/*550063*/        OPC_RecordNode, // #1 = 'ld' chained node
/*550064*/        OPC_CheckFoldableChainNode,
/*550065*/        OPC_RecordChild1, // #2 = $src2
/*550066*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*550068*/        OPC_SwitchType /*2 cases */, 46, MVT::i32,// ->550117
/*550071*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*550073*/          OPC_MoveParent,
/*550074*/          OPC_MoveParent,
/*550075*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i32,// ->550096
/*550078*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550080*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550083*/            OPC_EmitMergeInputChains1_1,
/*550084*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPERMDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550096*/          /*SwitchType*/ 18, MVT::v8i32,// ->550116
/*550098*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*550100*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550103*/            OPC_EmitMergeInputChains1_1,
/*550104*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPERMDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550116*/          0, // EndSwitchType
/*550117*/        /*SwitchType*/ 46, MVT::i64,// ->550165
/*550119*/          OPC_CheckPredicate, 9, // Predicate_load
/*550121*/          OPC_MoveParent,
/*550122*/          OPC_MoveParent,
/*550123*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i64,// ->550144
/*550126*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550128*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550131*/            OPC_EmitMergeInputChains1_1,
/*550132*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550144*/          /*SwitchType*/ 18, MVT::v4i64,// ->550164
/*550146*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*550148*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550151*/            OPC_EmitMergeInputChains1_1,
/*550152*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550164*/          0, // EndSwitchType
/*550165*/        0, // EndSwitchType
/*550166*/      /*SwitchOpcode*/ 53, TARGET_VAL(ISD::LOAD),// ->550222
/*550169*/        OPC_RecordMemRef,
/*550170*/        OPC_RecordNode, // #1 = 'ld' chained node
/*550171*/        OPC_CheckFoldableChainNode,
/*550172*/        OPC_RecordChild1, // #2 = $src2
/*550173*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*550175*/        OPC_CheckPredicate, 9, // Predicate_load
/*550177*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*550179*/        OPC_MoveParent,
/*550180*/        OPC_SwitchType /*2 cases */, 18, MVT::v8i64,// ->550201
/*550183*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550185*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550188*/          OPC_EmitMergeInputChains1_1,
/*550189*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86VPermv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550201*/        /*SwitchType*/ 18, MVT::v4i64,// ->550221
/*550203*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*550205*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550208*/          OPC_EmitMergeInputChains1_1,
/*550209*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86VPermv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550221*/        0, // EndSwitchType
/*550222*/      0, // EndSwitchOpcode
/*550223*/    /*Scope*/ 9|128,1/*137*/, /*->550362*/
/*550225*/      OPC_RecordChild1, // #1 = $src2
/*550226*/      OPC_SwitchType /*10 cases */, 24, MVT::v8i32,// ->550253
/*550229*/        OPC_Scope, 10, /*->550241*/ // 2 children in Scope
/*550231*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*550233*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermv:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPERMDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*550241*/        /*Scope*/ 10, /*->550252*/
/*550242*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*550244*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPERMDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*550252*/        0, /*End of Scope*/
/*550253*/      /*SwitchType*/ 10, MVT::v32i16,// ->550265
/*550255*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*550257*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPERMWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*550265*/      /*SwitchType*/ 10, MVT::v16i16,// ->550277
/*550267*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*550269*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ256rr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                  // Dst: (VPERMWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*550277*/      /*SwitchType*/ 10, MVT::v8i16,// ->550289
/*550279*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*550281*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMWZ128rr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                  // Dst: (VPERMWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*550289*/      /*SwitchType*/ 10, MVT::v64i8,// ->550301
/*550291*/        OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*550293*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPERMBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*550301*/      /*SwitchType*/ 10, MVT::v32i8,// ->550313
/*550303*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*550305*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ256rr), 0,
                      MVT::v32i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                  // Dst: (VPERMBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*550313*/      /*SwitchType*/ 10, MVT::v16i8,// ->550325
/*550315*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*550317*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMBZ128rr), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                  // Dst: (VPERMBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*550325*/      /*SwitchType*/ 10, MVT::v16i32,// ->550337
/*550327*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550329*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPERMDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*550337*/      /*SwitchType*/ 10, MVT::v8i64,// ->550349
/*550339*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550341*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPERMQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*550349*/      /*SwitchType*/ 10, MVT::v4i64,// ->550361
/*550351*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*550353*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rr), 0,
                      MVT::v4i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                  // Dst: (VPERMQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*550361*/      0, // EndSwitchType
/*550362*/    /*Scope*/ 102|128,1/*230*/, /*->550594*/
/*550364*/      OPC_MoveChild1,
/*550365*/      OPC_SwitchOpcode /*2 cases */, 106, TARGET_VAL(X86ISD::VBROADCAST),// ->550475
/*550369*/        OPC_MoveChild0,
/*550370*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*550373*/        OPC_RecordMemRef,
/*550374*/        OPC_RecordNode, // #1 = 'ld' chained node
/*550375*/        OPC_CheckFoldableChainNode,
/*550376*/        OPC_RecordChild1, // #2 = $src2
/*550377*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*550379*/        OPC_CheckPredicate, 9, // Predicate_load
/*550381*/        OPC_SwitchType /*2 cases */, 44, MVT::f32,// ->550428
/*550384*/          OPC_MoveParent,
/*550385*/          OPC_MoveParent,
/*550386*/          OPC_SwitchType /*2 cases */, 18, MVT::v16f32,// ->550407
/*550389*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550391*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550394*/            OPC_EmitMergeInputChains1_1,
/*550395*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMPSZrmb:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550407*/          /*SwitchType*/ 18, MVT::v8f32,// ->550427
/*550409*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*550411*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550414*/            OPC_EmitMergeInputChains1_1,
/*550415*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550427*/          0, // EndSwitchType
/*550428*/        /*SwitchType*/ 44, MVT::f64,// ->550474
/*550430*/          OPC_MoveParent,
/*550431*/          OPC_MoveParent,
/*550432*/          OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->550453
/*550435*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550437*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550440*/            OPC_EmitMergeInputChains1_1,
/*550441*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMPDZrmb:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550453*/          /*SwitchType*/ 18, MVT::v4f64,// ->550473
/*550455*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*550457*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550460*/            OPC_EmitMergeInputChains1_1,
/*550461*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550473*/          0, // EndSwitchType
/*550474*/        0, // EndSwitchType
/*550475*/      /*SwitchOpcode*/ 115, TARGET_VAL(ISD::LOAD),// ->550593
/*550478*/        OPC_RecordMemRef,
/*550479*/        OPC_RecordNode, // #1 = 'ld' chained node
/*550480*/        OPC_CheckFoldableChainNode,
/*550481*/        OPC_RecordChild1, // #2 = $src2
/*550482*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*550484*/        OPC_CheckPredicate, 9, // Predicate_load
/*550486*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*550488*/        OPC_MoveParent,
/*550489*/        OPC_SwitchType /*4 cases */, 40, MVT::v8f32,// ->550532
/*550492*/          OPC_Scope, 18, /*->550512*/ // 2 children in Scope
/*550494*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*550496*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550499*/            OPC_EmitMergeInputChains1_1,
/*550500*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPERMPSYrm:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550512*/          /*Scope*/ 18, /*->550531*/
/*550513*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*550515*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550518*/            OPC_EmitMergeInputChains1_1,
/*550519*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermv:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPERMPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550531*/          0, /*End of Scope*/
/*550532*/        /*SwitchType*/ 18, MVT::v16f32,// ->550552
/*550534*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550536*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550539*/          OPC_EmitMergeInputChains1_1,
/*550540*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86VPermv:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMPSZrm:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550552*/        /*SwitchType*/ 18, MVT::v8f64,// ->550572
/*550554*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550556*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550559*/          OPC_EmitMergeInputChains1_1,
/*550560*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86VPermv:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMPDZrm:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550572*/        /*SwitchType*/ 18, MVT::v4f64,// ->550592
/*550574*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*550576*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550579*/          OPC_EmitMergeInputChains1_1,
/*550580*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86VPermv:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550592*/        0, // EndSwitchType
/*550593*/      0, // EndSwitchOpcode
/*550594*/    /*Scope*/ 65, /*->550660*/
/*550595*/      OPC_RecordChild1, // #1 = $src2
/*550596*/      OPC_SwitchType /*4 cases */, 24, MVT::v8f32,// ->550623
/*550599*/        OPC_Scope, 10, /*->550611*/ // 2 children in Scope
/*550601*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*550603*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSYrr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermv:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VPERMPSYrr:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/*550611*/        /*Scope*/ 10, /*->550622*/
/*550612*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*550614*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZ256rr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermv:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VPERMPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*550622*/        0, /*End of Scope*/
/*550623*/      /*SwitchType*/ 10, MVT::v16f32,// ->550635
/*550625*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550627*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPSZrr), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VPERMPSZrr:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*550635*/      /*SwitchType*/ 10, MVT::v8f64,// ->550647
/*550637*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550639*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrr), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VPERMPDZrr:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*550647*/      /*SwitchType*/ 10, MVT::v4f64,// ->550659
/*550649*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*550651*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rr), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermv:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                  // Dst: (VPERMPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*550659*/      0, // EndSwitchType
/*550660*/    0, /*End of Scope*/
/*550661*/  /*SwitchOpcode*/ 67|128,4/*579*/, TARGET_VAL(X86ISD::VSRAV),// ->551244
/*550665*/    OPC_RecordChild0, // #0 = $src1
/*550666*/    OPC_Scope, 49|128,3/*433*/, /*->551102*/ // 2 children in Scope
/*550669*/      OPC_MoveChild1,
/*550670*/      OPC_SwitchOpcode /*3 cases */, 70|128,1/*198*/, TARGET_VAL(ISD::BITCAST),// ->550873
/*550675*/        OPC_MoveChild0,
/*550676*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*550679*/        OPC_RecordMemRef,
/*550680*/        OPC_RecordNode, // #1 = 'ld' chained node
/*550681*/        OPC_CheckFoldableChainNode,
/*550682*/        OPC_RecordChild1, // #2 = $src2
/*550683*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*550685*/        OPC_CheckPredicate, 9, // Predicate_load
/*550687*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*550689*/        OPC_SwitchType /*3 cases */, 66, MVT::v2i64,// ->550758
/*550692*/          OPC_MoveParent,
/*550693*/          OPC_MoveParent,
/*550694*/          OPC_SwitchType /*2 cases */, 40, MVT::v4i32,// ->550737
/*550697*/            OPC_Scope, 18, /*->550717*/ // 2 children in Scope
/*550699*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*550701*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550704*/              OPC_EmitMergeInputChains1_1,
/*550705*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86vsrav:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRAVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550717*/            /*Scope*/ 18, /*->550736*/
/*550718*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550720*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550723*/              OPC_EmitMergeInputChains1_1,
/*550724*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86vsrav:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRAVDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550736*/            0, /*End of Scope*/
/*550737*/          /*SwitchType*/ 18, MVT::v8i16,// ->550757
/*550739*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*550741*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550744*/            OPC_EmitMergeInputChains1_1,
/*550745*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrav:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRAVWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550757*/          0, // EndSwitchType
/*550758*/        /*SwitchType*/ 66, MVT::v4i64,// ->550826
/*550760*/          OPC_MoveParent,
/*550761*/          OPC_MoveParent,
/*550762*/          OPC_SwitchType /*2 cases */, 40, MVT::v8i32,// ->550805
/*550765*/            OPC_Scope, 18, /*->550785*/ // 2 children in Scope
/*550767*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*550769*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550772*/              OPC_EmitMergeInputChains1_1,
/*550773*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86vsrav:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRAVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550785*/            /*Scope*/ 18, /*->550804*/
/*550786*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550788*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550791*/              OPC_EmitMergeInputChains1_1,
/*550792*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86vsrav:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VPSRAVDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550804*/            0, /*End of Scope*/
/*550805*/          /*SwitchType*/ 18, MVT::v16i16,// ->550825
/*550807*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*550809*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550812*/            OPC_EmitMergeInputChains1_1,
/*550813*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrav:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRAVWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550825*/          0, // EndSwitchType
/*550826*/        /*SwitchType*/ 44, MVT::v8i64,// ->550872
/*550828*/          OPC_MoveParent,
/*550829*/          OPC_MoveParent,
/*550830*/          OPC_SwitchType /*2 cases */, 18, MVT::v32i16,// ->550851
/*550833*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*550835*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550838*/            OPC_EmitMergeInputChains1_1,
/*550839*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrav:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRAVWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550851*/          /*SwitchType*/ 18, MVT::v16i32,// ->550871
/*550853*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550855*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550858*/            OPC_EmitMergeInputChains1_1,
/*550859*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrav:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSRAVDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550871*/          0, // EndSwitchType
/*550872*/        0, // EndSwitchType
/*550873*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->551025
/*550877*/        OPC_MoveChild0,
/*550878*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*550881*/        OPC_RecordMemRef,
/*550882*/        OPC_RecordNode, // #1 = 'ld' chained node
/*550883*/        OPC_CheckFoldableChainNode,
/*550884*/        OPC_RecordChild1, // #2 = $src2
/*550885*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*550887*/        OPC_SwitchType /*2 cases */, 66, MVT::i32,// ->550956
/*550890*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*550892*/          OPC_MoveParent,
/*550893*/          OPC_MoveParent,
/*550894*/          OPC_SwitchType /*3 cases */, 18, MVT::v4i32,// ->550915
/*550897*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550899*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550902*/            OPC_EmitMergeInputChains1_1,
/*550903*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrav:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPSRAVDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550915*/          /*SwitchType*/ 18, MVT::v8i32,// ->550935
/*550917*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550919*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550922*/            OPC_EmitMergeInputChains1_1,
/*550923*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrav:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPSRAVDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550935*/          /*SwitchType*/ 18, MVT::v16i32,// ->550955
/*550937*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550939*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550942*/            OPC_EmitMergeInputChains1_1,
/*550943*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrav:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPSRAVDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550955*/          0, // EndSwitchType
/*550956*/        /*SwitchType*/ 66, MVT::i64,// ->551024
/*550958*/          OPC_CheckPredicate, 9, // Predicate_load
/*550960*/          OPC_MoveParent,
/*550961*/          OPC_MoveParent,
/*550962*/          OPC_SwitchType /*3 cases */, 18, MVT::v2i64,// ->550983
/*550965*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550967*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550970*/            OPC_EmitMergeInputChains1_1,
/*550971*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrav:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPSRAVQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*550983*/          /*SwitchType*/ 18, MVT::v4i64,// ->551003
/*550985*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550987*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*550990*/            OPC_EmitMergeInputChains1_1,
/*550991*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrav:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPSRAVQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*551003*/          /*SwitchType*/ 18, MVT::v8i64,// ->551023
/*551005*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551007*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*551010*/            OPC_EmitMergeInputChains1_1,
/*551011*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrav:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPSRAVQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*551023*/          0, // EndSwitchType
/*551024*/        0, // EndSwitchType
/*551025*/      /*SwitchOpcode*/ 73, TARGET_VAL(ISD::LOAD),// ->551101
/*551028*/        OPC_RecordMemRef,
/*551029*/        OPC_RecordNode, // #1 = 'ld' chained node
/*551030*/        OPC_CheckFoldableChainNode,
/*551031*/        OPC_RecordChild1, // #2 = $src2
/*551032*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551034*/        OPC_CheckPredicate, 9, // Predicate_load
/*551036*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*551038*/        OPC_MoveParent,
/*551039*/        OPC_SwitchType /*3 cases */, 18, MVT::v2i64,// ->551060
/*551042*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551044*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*551047*/          OPC_EmitMergeInputChains1_1,
/*551048*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsrav:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSRAVQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*551060*/        /*SwitchType*/ 18, MVT::v4i64,// ->551080
/*551062*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551064*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*551067*/          OPC_EmitMergeInputChains1_1,
/*551068*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsrav:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSRAVQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*551080*/        /*SwitchType*/ 18, MVT::v8i64,// ->551100
/*551082*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551084*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*551087*/          OPC_EmitMergeInputChains1_1,
/*551088*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsrav:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSRAVQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*551100*/        0, // EndSwitchType
/*551101*/      0, // EndSwitchOpcode
/*551102*/    /*Scope*/ 11|128,1/*139*/, /*->551243*/
/*551104*/      OPC_RecordChild1, // #1 = $src2
/*551105*/      OPC_SwitchType /*9 cases */, 24, MVT::v4i32,// ->551132
/*551108*/        OPC_Scope, 10, /*->551120*/ // 2 children in Scope
/*551110*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*551112*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrav:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRAVDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*551120*/        /*Scope*/ 10, /*->551131*/
/*551121*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551123*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrav:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRAVDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*551131*/        0, /*End of Scope*/
/*551132*/      /*SwitchType*/ 24, MVT::v8i32,// ->551158
/*551134*/        OPC_Scope, 10, /*->551146*/ // 2 children in Scope
/*551136*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*551138*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrav:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRAVDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*551146*/        /*Scope*/ 10, /*->551157*/
/*551147*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551149*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrav:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRAVDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*551157*/        0, /*End of Scope*/
/*551158*/      /*SwitchType*/ 10, MVT::v8i16,// ->551170
/*551160*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*551162*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ128rr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrav:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                  // Dst: (VPSRAVWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*551170*/      /*SwitchType*/ 10, MVT::v16i16,// ->551182
/*551172*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*551174*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZ256rr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrav:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                  // Dst: (VPSRAVWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*551182*/      /*SwitchType*/ 10, MVT::v32i16,// ->551194
/*551184*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*551186*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrav:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPSRAVWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*551194*/      /*SwitchType*/ 10, MVT::v16i32,// ->551206
/*551196*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551198*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrav:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPSRAVDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*551206*/      /*SwitchType*/ 10, MVT::v2i64,// ->551218
/*551208*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551210*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ128rr), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrav:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                  // Dst: (VPSRAVQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*551218*/      /*SwitchType*/ 10, MVT::v4i64,// ->551230
/*551220*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551222*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZ256rr), 0,
                      MVT::v4i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrav:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                  // Dst: (VPSRAVQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*551230*/      /*SwitchType*/ 10, MVT::v8i64,// ->551242
/*551232*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551234*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAVQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrav:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPSRAVQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*551242*/      0, // EndSwitchType
/*551243*/    0, /*End of Scope*/
/*551244*/  /*SwitchOpcode*/ 120|128,1/*248*/, TARGET_VAL(X86ISD::GF2P8MULB),// ->551496
/*551248*/    OPC_RecordChild0, // #0 = $src1
/*551249*/    OPC_Scope, 36|128,1/*164*/, /*->551416*/ // 2 children in Scope
/*551252*/      OPC_MoveChild1,
/*551253*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*551256*/      OPC_MoveChild0,
/*551257*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*551260*/      OPC_RecordMemRef,
/*551261*/      OPC_RecordNode, // #1 = 'ld' chained node
/*551262*/      OPC_CheckFoldableChainNode,
/*551263*/      OPC_RecordChild1, // #2 = $src2
/*551264*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551266*/      OPC_CheckPredicate, 9, // Predicate_load
/*551268*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*551270*/      OPC_SwitchType /*3 cases */, 72, MVT::v2i64,// ->551345
/*551273*/        OPC_Scope, 24, /*->551299*/ // 2 children in Scope
/*551275*/          OPC_CheckPredicate, 48, // Predicate_memop
/*551277*/          OPC_MoveParent,
/*551278*/          OPC_MoveParent,
/*551279*/          OPC_CheckType, MVT::v16i8,
/*551281*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*551283*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*551286*/          OPC_EmitMergeInputChains1_1,
/*551287*/          OPC_MorphNodeTo1, TARGET_VAL(X86::GF2P8MULBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86GF2P8mulb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (GF2P8MULBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*551299*/        /*Scope*/ 44, /*->551344*/
/*551300*/          OPC_MoveParent,
/*551301*/          OPC_MoveParent,
/*551302*/          OPC_CheckType, MVT::v16i8,
/*551304*/          OPC_Scope, 18, /*->551324*/ // 2 children in Scope
/*551306*/            OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*551308*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*551311*/            OPC_EmitMergeInputChains1_1,
/*551312*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86GF2P8mulb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VGF2P8MULBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*551324*/          /*Scope*/ 18, /*->551343*/
/*551325*/            OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*551327*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*551330*/            OPC_EmitMergeInputChains1_1,
/*551331*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86GF2P8mulb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VGF2P8MULBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*551343*/          0, /*End of Scope*/
/*551344*/        0, /*End of Scope*/
/*551345*/      /*SwitchType*/ 44, MVT::v4i64,// ->551391
/*551347*/        OPC_MoveParent,
/*551348*/        OPC_MoveParent,
/*551349*/        OPC_CheckType, MVT::v32i8,
/*551351*/        OPC_Scope, 18, /*->551371*/ // 2 children in Scope
/*551353*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*551355*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*551358*/          OPC_EmitMergeInputChains1_1,
/*551359*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86GF2P8mulb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VGF2P8MULBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*551371*/        /*Scope*/ 18, /*->551390*/
/*551372*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*551374*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*551377*/          OPC_EmitMergeInputChains1_1,
/*551378*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86GF2P8mulb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VGF2P8MULBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*551390*/        0, /*End of Scope*/
/*551391*/      /*SwitchType*/ 22, MVT::v8i64,// ->551415
/*551393*/        OPC_MoveParent,
/*551394*/        OPC_MoveParent,
/*551395*/        OPC_CheckType, MVT::v64i8,
/*551397*/        OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*551399*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*551402*/        OPC_EmitMergeInputChains1_1,
/*551403*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86GF2P8mulb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VGF2P8MULBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*551415*/      0, // EndSwitchType
/*551416*/    /*Scope*/ 78, /*->551495*/
/*551417*/      OPC_RecordChild1, // #1 = $src2
/*551418*/      OPC_SwitchType /*3 cases */, 35, MVT::v16i8,// ->551456
/*551421*/        OPC_Scope, 10, /*->551433*/ // 3 children in Scope
/*551423*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*551425*/          OPC_MorphNodeTo1, TARGET_VAL(X86::GF2P8MULBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86GF2P8mulb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (GF2P8MULBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*551433*/        /*Scope*/ 10, /*->551444*/
/*551434*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*551436*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86GF2P8mulb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VGF2P8MULBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*551444*/        /*Scope*/ 10, /*->551455*/
/*551445*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*551447*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86GF2P8mulb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VGF2P8MULBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*551455*/        0, /*End of Scope*/
/*551456*/      /*SwitchType*/ 24, MVT::v32i8,// ->551482
/*551458*/        OPC_Scope, 10, /*->551470*/ // 2 children in Scope
/*551460*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*551462*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86GF2P8mulb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VGF2P8MULBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*551470*/        /*Scope*/ 10, /*->551481*/
/*551471*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*551473*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86GF2P8mulb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VGF2P8MULBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*551481*/        0, /*End of Scope*/
/*551482*/      /*SwitchType*/ 10, MVT::v64i8,// ->551494
/*551484*/        OPC_CheckPatternPredicate, 178, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*551486*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8MULBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86GF2P8mulb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VGF2P8MULBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*551494*/      0, // EndSwitchType
/*551495*/    0, /*End of Scope*/
/*551496*/  /*SwitchOpcode*/ 124|128,7/*1020*/, TARGET_VAL(X86ISD::VPERMV3),// ->552520
/*551500*/    OPC_RecordChild0, // #0 = $src1
/*551501*/    OPC_RecordChild1, // #1 = $src2
/*551502*/    OPC_Scope, 83|128,3/*467*/, /*->551972*/ // 4 children in Scope
/*551505*/      OPC_MoveChild2,
/*551506*/      OPC_SwitchOpcode /*3 cases */, 95|128,1/*223*/, TARGET_VAL(ISD::BITCAST),// ->551734
/*551511*/        OPC_MoveChild0,
/*551512*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*551515*/        OPC_RecordMemRef,
/*551516*/        OPC_RecordNode, // #2 = 'ld' chained node
/*551517*/        OPC_CheckFoldableChainNode,
/*551518*/        OPC_RecordChild1, // #3 = $src3
/*551519*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551521*/        OPC_CheckPredicate, 9, // Predicate_load
/*551523*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*551525*/        OPC_SwitchType /*3 cases */, 67, MVT::v8i64,// ->551595
/*551528*/          OPC_MoveParent,
/*551529*/          OPC_MoveParent,
/*551530*/          OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->551552
/*551533*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551535*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551538*/            OPC_EmitMergeInputChains1_2,
/*551539*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Drm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMT2Drm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551552*/          /*SwitchType*/ 19, MVT::v32i16,// ->551573
/*551554*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*551556*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551559*/            OPC_EmitMergeInputChains1_2,
/*551560*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Wrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMT2Wrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551573*/          /*SwitchType*/ 19, MVT::v64i8,// ->551594
/*551575*/            OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*551577*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551580*/            OPC_EmitMergeInputChains1_2,
/*551581*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Brm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMT2Brm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551594*/          0, // EndSwitchType
/*551595*/        /*SwitchType*/ 67, MVT::v2i64,// ->551664
/*551597*/          OPC_MoveParent,
/*551598*/          OPC_MoveParent,
/*551599*/          OPC_SwitchType /*3 cases */, 19, MVT::v4i32,// ->551621
/*551602*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551604*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551607*/            OPC_EmitMergeInputChains1_2,
/*551608*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMT2D128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551621*/          /*SwitchType*/ 19, MVT::v8i16,// ->551642
/*551623*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*551625*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551628*/            OPC_EmitMergeInputChains1_2,
/*551629*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMT2W128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551642*/          /*SwitchType*/ 19, MVT::v16i8,// ->551663
/*551644*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*551646*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551649*/            OPC_EmitMergeInputChains1_2,
/*551650*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMT2B128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551663*/          0, // EndSwitchType
/*551664*/        /*SwitchType*/ 67, MVT::v4i64,// ->551733
/*551666*/          OPC_MoveParent,
/*551667*/          OPC_MoveParent,
/*551668*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i32,// ->551690
/*551671*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551673*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551676*/            OPC_EmitMergeInputChains1_2,
/*551677*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMT2D256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551690*/          /*SwitchType*/ 19, MVT::v16i16,// ->551711
/*551692*/            OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*551694*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551697*/            OPC_EmitMergeInputChains1_2,
/*551698*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMT2W256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551711*/          /*SwitchType*/ 19, MVT::v32i8,// ->551732
/*551713*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*551715*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551718*/            OPC_EmitMergeInputChains1_2,
/*551719*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMT2B256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551732*/          0, // EndSwitchType
/*551733*/        0, // EndSwitchType
/*551734*/      /*SwitchOpcode*/ 26|128,1/*154*/, TARGET_VAL(X86ISD::VBROADCAST),// ->551892
/*551738*/        OPC_MoveChild0,
/*551739*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*551742*/        OPC_RecordMemRef,
/*551743*/        OPC_RecordNode, // #2 = 'ld' chained node
/*551744*/        OPC_CheckFoldableChainNode,
/*551745*/        OPC_RecordChild1, // #3 = $src3
/*551746*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551748*/        OPC_SwitchType /*2 cases */, 69, MVT::i32,// ->551820
/*551751*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*551753*/          OPC_MoveParent,
/*551754*/          OPC_MoveParent,
/*551755*/          OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->551777
/*551758*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551760*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551763*/            OPC_EmitMergeInputChains1_2,
/*551764*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Drmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPERMT2Drmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551777*/          /*SwitchType*/ 19, MVT::v4i32,// ->551798
/*551779*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551781*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551784*/            OPC_EmitMergeInputChains1_2,
/*551785*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPERMT2D128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551798*/          /*SwitchType*/ 19, MVT::v8i32,// ->551819
/*551800*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551802*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551805*/            OPC_EmitMergeInputChains1_2,
/*551806*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPERMT2D256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551819*/          0, // EndSwitchType
/*551820*/        /*SwitchType*/ 69, MVT::i64,// ->551891
/*551822*/          OPC_CheckPredicate, 9, // Predicate_load
/*551824*/          OPC_MoveParent,
/*551825*/          OPC_MoveParent,
/*551826*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->551848
/*551829*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551831*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551834*/            OPC_EmitMergeInputChains1_2,
/*551835*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Qrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMT2Qrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551848*/          /*SwitchType*/ 19, MVT::v2i64,// ->551869
/*551850*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551852*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551855*/            OPC_EmitMergeInputChains1_2,
/*551856*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMT2Q128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551869*/          /*SwitchType*/ 19, MVT::v4i64,// ->551890
/*551871*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551873*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551876*/            OPC_EmitMergeInputChains1_2,
/*551877*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMT2Q256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551890*/          0, // EndSwitchType
/*551891*/        0, // EndSwitchType
/*551892*/      /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->551971
/*551895*/        OPC_RecordMemRef,
/*551896*/        OPC_RecordNode, // #2 = 'ld' chained node
/*551897*/        OPC_CheckFoldableChainNode,
/*551898*/        OPC_RecordChild1, // #3 = $src3
/*551899*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551901*/        OPC_CheckPredicate, 9, // Predicate_load
/*551903*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*551905*/        OPC_MoveParent,
/*551906*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->551928
/*551909*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551911*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551914*/          OPC_EmitMergeInputChains1_2,
/*551915*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Qrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMT2Qrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551928*/        /*SwitchType*/ 19, MVT::v2i64,// ->551949
/*551930*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551932*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551935*/          OPC_EmitMergeInputChains1_2,
/*551936*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMT2Q128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551949*/        /*SwitchType*/ 19, MVT::v4i64,// ->551970
/*551951*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551953*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*551956*/          OPC_EmitMergeInputChains1_2,
/*551957*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMT2Q256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*551970*/        0, // EndSwitchType
/*551971*/      0, // EndSwitchOpcode
/*551972*/    /*Scope*/ 31|128,1/*159*/, /*->552133*/
/*551974*/      OPC_RecordChild2, // #2 = $src3
/*551975*/      OPC_SwitchType /*12 cases */, 11, MVT::v16i32,// ->551989
/*551978*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551980*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Drr), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2Drr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*551989*/      /*SwitchType*/ 11, MVT::v4i32,// ->552002
/*551991*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551993*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D128rr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2D128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*552002*/      /*SwitchType*/ 11, MVT::v8i32,// ->552015
/*552004*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552006*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2D256rr), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2D256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*552015*/      /*SwitchType*/ 11, MVT::v8i64,// ->552028
/*552017*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552019*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Qrr), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2Qrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*552028*/      /*SwitchType*/ 11, MVT::v2i64,// ->552041
/*552030*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552032*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q128rr), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2Q128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*552041*/      /*SwitchType*/ 11, MVT::v4i64,// ->552054
/*552043*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552045*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Q256rr), 0,
                      MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2Q256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*552054*/      /*SwitchType*/ 11, MVT::v32i16,// ->552067
/*552056*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*552058*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Wrr), 0,
                      MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2Wrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*552067*/      /*SwitchType*/ 11, MVT::v8i16,// ->552080
/*552069*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*552071*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W128rr), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2W128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*552080*/      /*SwitchType*/ 11, MVT::v16i16,// ->552093
/*552082*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*552084*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2W256rr), 0,
                      MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2W256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*552093*/      /*SwitchType*/ 11, MVT::v64i8,// ->552106
/*552095*/        OPC_CheckPatternPredicate, 179, // (Subtarget->hasVBMI())
/*552097*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2Brr), 0,
                      MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2Brr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src3)
/*552106*/      /*SwitchType*/ 11, MVT::v16i8,// ->552119
/*552108*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*552110*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B128rr), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2B128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src3)
/*552119*/      /*SwitchType*/ 11, MVT::v32i8,// ->552132
/*552121*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*552123*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2B256rr), 0,
                      MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2B256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src3)
/*552132*/      0, // EndSwitchType
/*552133*/    /*Scope*/ 46|128,2/*302*/, /*->552437*/
/*552135*/      OPC_MoveChild2,
/*552136*/      OPC_SwitchOpcode /*2 cases */, 24|128,1/*152*/, TARGET_VAL(X86ISD::VBROADCAST),// ->552293
/*552141*/        OPC_MoveChild0,
/*552142*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*552145*/        OPC_RecordMemRef,
/*552146*/        OPC_RecordNode, // #2 = 'ld' chained node
/*552147*/        OPC_CheckFoldableChainNode,
/*552148*/        OPC_RecordChild1, // #3 = $src3
/*552149*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*552151*/        OPC_CheckPredicate, 9, // Predicate_load
/*552153*/        OPC_SwitchType /*2 cases */, 67, MVT::f32,// ->552223
/*552156*/          OPC_MoveParent,
/*552157*/          OPC_MoveParent,
/*552158*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->552180
/*552161*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552163*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552166*/            OPC_EmitMergeInputChains1_2,
/*552167*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PSrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMT2PSrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552180*/          /*SwitchType*/ 19, MVT::v4f32,// ->552201
/*552182*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552184*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552187*/            OPC_EmitMergeInputChains1_2,
/*552188*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMT2PS128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552201*/          /*SwitchType*/ 19, MVT::v8f32,// ->552222
/*552203*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552205*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552208*/            OPC_EmitMergeInputChains1_2,
/*552209*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMT2PS256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552222*/          0, // EndSwitchType
/*552223*/        /*SwitchType*/ 67, MVT::f64,// ->552292
/*552225*/          OPC_MoveParent,
/*552226*/          OPC_MoveParent,
/*552227*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->552249
/*552230*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552232*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552235*/            OPC_EmitMergeInputChains1_2,
/*552236*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PDrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMT2PDrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552249*/          /*SwitchType*/ 19, MVT::v2f64,// ->552270
/*552251*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552253*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552256*/            OPC_EmitMergeInputChains1_2,
/*552257*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMT2PD128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552270*/          /*SwitchType*/ 19, MVT::v4f64,// ->552291
/*552272*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552274*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552277*/            OPC_EmitMergeInputChains1_2,
/*552278*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMT2PD256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552291*/          0, // EndSwitchType
/*552292*/        0, // EndSwitchType
/*552293*/      /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(ISD::LOAD),// ->552436
/*552297*/        OPC_RecordMemRef,
/*552298*/        OPC_RecordNode, // #2 = 'ld' chained node
/*552299*/        OPC_CheckFoldableChainNode,
/*552300*/        OPC_RecordChild1, // #3 = $src3
/*552301*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*552303*/        OPC_CheckPredicate, 9, // Predicate_load
/*552305*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*552307*/        OPC_MoveParent,
/*552308*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->552330
/*552311*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552313*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552316*/          OPC_EmitMergeInputChains1_2,
/*552317*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMT2PSrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552330*/        /*SwitchType*/ 19, MVT::v4f32,// ->552351
/*552332*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552334*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552337*/          OPC_EmitMergeInputChains1_2,
/*552338*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMT2PS128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552351*/        /*SwitchType*/ 19, MVT::v8f32,// ->552372
/*552353*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552355*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552358*/          OPC_EmitMergeInputChains1_2,
/*552359*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMT2PS256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552372*/        /*SwitchType*/ 19, MVT::v8f64,// ->552393
/*552374*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552376*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552379*/          OPC_EmitMergeInputChains1_2,
/*552380*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMT2PDrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552393*/        /*SwitchType*/ 19, MVT::v2f64,// ->552414
/*552395*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552397*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552400*/          OPC_EmitMergeInputChains1_2,
/*552401*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMT2PD128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552414*/        /*SwitchType*/ 19, MVT::v4f64,// ->552435
/*552416*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552418*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*552421*/          OPC_EmitMergeInputChains1_2,
/*552422*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMT2PD256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*552435*/        0, // EndSwitchType
/*552436*/      0, // EndSwitchOpcode
/*552437*/    /*Scope*/ 81, /*->552519*/
/*552438*/      OPC_RecordChild2, // #2 = $src3
/*552439*/      OPC_SwitchType /*6 cases */, 11, MVT::v16f32,// ->552453
/*552442*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552444*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PSrr), 0,
                      MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16f32] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2PSrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*552453*/      /*SwitchType*/ 11, MVT::v4f32,// ->552466
/*552455*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552457*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS128rr), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4f32] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2PS128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*552466*/      /*SwitchType*/ 11, MVT::v8f32,// ->552479
/*552468*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552470*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PS256rr), 0,
                      MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8f32] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2PS256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*552479*/      /*SwitchType*/ 11, MVT::v8f64,// ->552492
/*552481*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552483*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PDrr), 0,
                      MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8f64] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2PDrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*552492*/      /*SwitchType*/ 11, MVT::v2f64,// ->552505
/*552494*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552496*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD128rr), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2f64] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2PD128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*552505*/      /*SwitchType*/ 11, MVT::v4f64,// ->552518
/*552507*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*552509*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMT2PD256rr), 0,
                      MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VPermt2:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4f64] }:$src3) - Complexity = 3
                  // Dst: (VPERMT2PD256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*552518*/      0, // EndSwitchType
/*552519*/    0, /*End of Scope*/
/*552520*/  /*SwitchOpcode*/ 42|128,4/*554*/, TARGET_VAL(X86ISD::PMULDQ),// ->553078
/*552524*/    OPC_Scope, 83, /*->552609*/ // 5 children in Scope
/*552526*/      OPC_RecordChild0, // #0 = $src1
/*552527*/      OPC_MoveChild1,
/*552528*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*552531*/      OPC_MoveChild0,
/*552532*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*552535*/      OPC_RecordMemRef,
/*552536*/      OPC_RecordNode, // #1 = 'ld' chained node
/*552537*/      OPC_CheckFoldableChainNode,
/*552538*/      OPC_RecordChild1, // #2 = $src2
/*552539*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*552541*/      OPC_CheckPredicate, 9, // Predicate_load
/*552543*/      OPC_CheckType, MVT::i64,
/*552545*/      OPC_MoveParent,
/*552546*/      OPC_MoveParent,
/*552547*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->552568
/*552550*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552552*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552555*/        OPC_EmitMergeInputChains1_1,
/*552556*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuldq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPMULDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552568*/      /*SwitchType*/ 18, MVT::v4i64,// ->552588
/*552570*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552572*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552575*/        OPC_EmitMergeInputChains1_1,
/*552576*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuldq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPMULDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552588*/      /*SwitchType*/ 18, MVT::v2i64,// ->552608
/*552590*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552592*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552595*/        OPC_EmitMergeInputChains1_1,
/*552596*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuldq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPMULDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552608*/      0, // EndSwitchType
/*552609*/    /*Scope*/ 83, /*->552693*/
/*552610*/      OPC_MoveChild0,
/*552611*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*552614*/      OPC_MoveChild0,
/*552615*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*552618*/      OPC_RecordMemRef,
/*552619*/      OPC_RecordNode, // #0 = 'ld' chained node
/*552620*/      OPC_CheckFoldableChainNode,
/*552621*/      OPC_RecordChild1, // #1 = $src2
/*552622*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*552624*/      OPC_CheckPredicate, 9, // Predicate_load
/*552626*/      OPC_CheckType, MVT::i64,
/*552628*/      OPC_MoveParent,
/*552629*/      OPC_MoveParent,
/*552630*/      OPC_RecordChild1, // #2 = $src1
/*552631*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->552652
/*552634*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552636*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552639*/        OPC_EmitMergeInputChains1_0,
/*552640*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuldq:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                  // Dst: (VPMULDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552652*/      /*SwitchType*/ 18, MVT::v4i64,// ->552672
/*552654*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552656*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552659*/        OPC_EmitMergeInputChains1_0,
/*552660*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuldq:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                  // Dst: (VPMULDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552672*/      /*SwitchType*/ 18, MVT::v2i64,// ->552692
/*552674*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552676*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552679*/        OPC_EmitMergeInputChains1_0,
/*552680*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuldq:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                  // Dst: (VPMULDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552692*/      0, // EndSwitchType
/*552693*/    /*Scope*/ 21|128,1/*149*/, /*->552844*/
/*552695*/      OPC_RecordChild0, // #0 = $src1
/*552696*/      OPC_MoveChild1,
/*552697*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*552700*/      OPC_RecordMemRef,
/*552701*/      OPC_RecordNode, // #1 = 'ld' chained node
/*552702*/      OPC_CheckFoldableChainNode,
/*552703*/      OPC_RecordChild1, // #2 = $src2
/*552704*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*552706*/      OPC_CheckPredicate, 9, // Predicate_load
/*552708*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*552710*/      OPC_Scope, 43, /*->552755*/ // 3 children in Scope
/*552712*/        OPC_MoveParent,
/*552713*/        OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->552734
/*552716*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*552718*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552721*/          OPC_EmitMergeInputChains1_1,
/*552722*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPMULDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552734*/        /*SwitchType*/ 18, MVT::v4i64,// ->552754
/*552736*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*552738*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552741*/          OPC_EmitMergeInputChains1_1,
/*552742*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPMULDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552754*/        0, // EndSwitchType
/*552755*/      /*Scope*/ 23, /*->552779*/
/*552756*/        OPC_CheckPredicate, 48, // Predicate_memop
/*552758*/        OPC_MoveParent,
/*552759*/        OPC_CheckType, MVT::v2i64,
/*552761*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*552763*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552766*/        OPC_EmitMergeInputChains1_1,
/*552767*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuldq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PMULDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552779*/      /*Scope*/ 63, /*->552843*/
/*552780*/        OPC_MoveParent,
/*552781*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->552802
/*552784*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552786*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552789*/          OPC_EmitMergeInputChains1_1,
/*552790*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPMULDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552802*/        /*SwitchType*/ 18, MVT::v4i64,// ->552822
/*552804*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552806*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552809*/          OPC_EmitMergeInputChains1_1,
/*552810*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPMULDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552822*/        /*SwitchType*/ 18, MVT::v2i64,// ->552842
/*552824*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552826*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552829*/          OPC_EmitMergeInputChains1_1,
/*552830*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPMULDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552842*/        0, // EndSwitchType
/*552843*/      0, /*End of Scope*/
/*552844*/    /*Scope*/ 23|128,1/*151*/, /*->552997*/
/*552846*/      OPC_MoveChild0,
/*552847*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*552850*/      OPC_RecordMemRef,
/*552851*/      OPC_RecordNode, // #0 = 'ld' chained node
/*552852*/      OPC_CheckFoldableChainNode,
/*552853*/      OPC_RecordChild1, // #1 = $src2
/*552854*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*552856*/      OPC_CheckPredicate, 9, // Predicate_load
/*552858*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*552860*/      OPC_Scope, 44, /*->552906*/ // 3 children in Scope
/*552862*/        OPC_MoveParent,
/*552863*/        OPC_RecordChild1, // #2 = $src1
/*552864*/        OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->552885
/*552867*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*552869*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552872*/          OPC_EmitMergeInputChains1_0,
/*552873*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552885*/        /*SwitchType*/ 18, MVT::v4i64,// ->552905
/*552887*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*552889*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552892*/          OPC_EmitMergeInputChains1_0,
/*552893*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552905*/        0, // EndSwitchType
/*552906*/      /*Scope*/ 24, /*->552931*/
/*552907*/        OPC_CheckPredicate, 48, // Predicate_memop
/*552909*/        OPC_MoveParent,
/*552910*/        OPC_RecordChild1, // #2 = $src1
/*552911*/        OPC_CheckType, MVT::v2i64,
/*552913*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*552915*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552918*/        OPC_EmitMergeInputChains1_0,
/*552919*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuldq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (PMULDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552931*/      /*Scope*/ 64, /*->552996*/
/*552932*/        OPC_MoveParent,
/*552933*/        OPC_RecordChild1, // #2 = $src1
/*552934*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->552955
/*552937*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552939*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552942*/          OPC_EmitMergeInputChains1_0,
/*552943*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552955*/        /*SwitchType*/ 18, MVT::v4i64,// ->552975
/*552957*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552959*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552962*/          OPC_EmitMergeInputChains1_0,
/*552963*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552975*/        /*SwitchType*/ 18, MVT::v2i64,// ->552995
/*552977*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552979*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552982*/          OPC_EmitMergeInputChains1_0,
/*552983*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552995*/        0, // EndSwitchType
/*552996*/      0, /*End of Scope*/
/*552997*/    /*Scope*/ 79, /*->553077*/
/*552998*/      OPC_RecordChild0, // #0 = $src1
/*552999*/      OPC_RecordChild1, // #1 = $src2
/*553000*/      OPC_SwitchType /*3 cases */, 35, MVT::v2i64,// ->553038
/*553003*/        OPC_Scope, 10, /*->553015*/ // 3 children in Scope
/*553005*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*553007*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pmuldq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPMULDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*553015*/        /*Scope*/ 10, /*->553026*/
/*553016*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*553018*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULDQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pmuldq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (PMULDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*553026*/        /*Scope*/ 10, /*->553037*/
/*553027*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553029*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pmuldq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPMULDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*553037*/        0, /*End of Scope*/
/*553038*/      /*SwitchType*/ 24, MVT::v4i64,// ->553064
/*553040*/        OPC_Scope, 10, /*->553052*/ // 2 children in Scope
/*553042*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*553044*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pmuldq:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPMULDQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*553052*/        /*Scope*/ 10, /*->553063*/
/*553053*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553055*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pmuldq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPMULDQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*553063*/        0, /*End of Scope*/
/*553064*/      /*SwitchType*/ 10, MVT::v8i64,// ->553076
/*553066*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*553068*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86pmuldq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPMULDQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*553076*/      0, // EndSwitchType
/*553077*/    0, /*End of Scope*/
/*553078*/  /*SwitchOpcode*/ 42|128,4/*554*/, TARGET_VAL(X86ISD::PMULUDQ),// ->553636
/*553082*/    OPC_Scope, 83, /*->553167*/ // 5 children in Scope
/*553084*/      OPC_RecordChild0, // #0 = $src1
/*553085*/      OPC_MoveChild1,
/*553086*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*553089*/      OPC_MoveChild0,
/*553090*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*553093*/      OPC_RecordMemRef,
/*553094*/      OPC_RecordNode, // #1 = 'ld' chained node
/*553095*/      OPC_CheckFoldableChainNode,
/*553096*/      OPC_RecordChild1, // #2 = $src2
/*553097*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553099*/      OPC_CheckPredicate, 9, // Predicate_load
/*553101*/      OPC_CheckType, MVT::i64,
/*553103*/      OPC_MoveParent,
/*553104*/      OPC_MoveParent,
/*553105*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->553126
/*553108*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*553110*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553113*/        OPC_EmitMergeInputChains1_1,
/*553114*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuludq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPMULUDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553126*/      /*SwitchType*/ 18, MVT::v4i64,// ->553146
/*553128*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553130*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553133*/        OPC_EmitMergeInputChains1_1,
/*553134*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuludq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPMULUDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553146*/      /*SwitchType*/ 18, MVT::v2i64,// ->553166
/*553148*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553150*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553153*/        OPC_EmitMergeInputChains1_1,
/*553154*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuludq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VPMULUDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553166*/      0, // EndSwitchType
/*553167*/    /*Scope*/ 83, /*->553251*/
/*553168*/      OPC_MoveChild0,
/*553169*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*553172*/      OPC_MoveChild0,
/*553173*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*553176*/      OPC_RecordMemRef,
/*553177*/      OPC_RecordNode, // #0 = 'ld' chained node
/*553178*/      OPC_CheckFoldableChainNode,
/*553179*/      OPC_RecordChild1, // #1 = $src2
/*553180*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553182*/      OPC_CheckPredicate, 9, // Predicate_load
/*553184*/      OPC_CheckType, MVT::i64,
/*553186*/      OPC_MoveParent,
/*553187*/      OPC_MoveParent,
/*553188*/      OPC_RecordChild1, // #2 = $src1
/*553189*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->553210
/*553192*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*553194*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553197*/        OPC_EmitMergeInputChains1_0,
/*553198*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuludq:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                  // Dst: (VPMULUDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553210*/      /*SwitchType*/ 18, MVT::v4i64,// ->553230
/*553212*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553214*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553217*/        OPC_EmitMergeInputChains1_0,
/*553218*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuludq:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                  // Dst: (VPMULUDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553230*/      /*SwitchType*/ 18, MVT::v2i64,// ->553250
/*553232*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553234*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553237*/        OPC_EmitMergeInputChains1_0,
/*553238*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuludq:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                  // Dst: (VPMULUDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553250*/      0, // EndSwitchType
/*553251*/    /*Scope*/ 21|128,1/*149*/, /*->553402*/
/*553253*/      OPC_RecordChild0, // #0 = $src1
/*553254*/      OPC_MoveChild1,
/*553255*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*553258*/      OPC_RecordMemRef,
/*553259*/      OPC_RecordNode, // #1 = 'ld' chained node
/*553260*/      OPC_CheckFoldableChainNode,
/*553261*/      OPC_RecordChild1, // #2 = $src2
/*553262*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553264*/      OPC_CheckPredicate, 9, // Predicate_load
/*553266*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*553268*/      OPC_Scope, 21, /*->553291*/ // 3 children in Scope
/*553270*/        OPC_MoveParent,
/*553271*/        OPC_CheckType, MVT::v2i64,
/*553273*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*553275*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553278*/        OPC_EmitMergeInputChains1_1,
/*553279*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuludq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VPMULUDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553291*/      /*Scope*/ 23, /*->553315*/
/*553292*/        OPC_CheckPredicate, 48, // Predicate_memop
/*553294*/        OPC_MoveParent,
/*553295*/        OPC_CheckType, MVT::v2i64,
/*553297*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*553299*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553302*/        OPC_EmitMergeInputChains1_1,
/*553303*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuludq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PMULUDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553315*/      /*Scope*/ 85, /*->553401*/
/*553316*/        OPC_MoveParent,
/*553317*/        OPC_SwitchType /*3 cases */, 40, MVT::v4i64,// ->553360
/*553320*/          OPC_Scope, 18, /*->553340*/ // 2 children in Scope
/*553322*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*553324*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553327*/            OPC_EmitMergeInputChains1_1,
/*553328*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pmuludq:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPMULUDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553340*/          /*Scope*/ 18, /*->553359*/
/*553341*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553343*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553346*/            OPC_EmitMergeInputChains1_1,
/*553347*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86pmuludq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPMULUDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553359*/          0, /*End of Scope*/
/*553360*/        /*SwitchType*/ 18, MVT::v8i64,// ->553380
/*553362*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*553364*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553367*/          OPC_EmitMergeInputChains1_1,
/*553368*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuludq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPMULUDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553380*/        /*SwitchType*/ 18, MVT::v2i64,// ->553400
/*553382*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553384*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553387*/          OPC_EmitMergeInputChains1_1,
/*553388*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuludq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPMULUDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553400*/        0, // EndSwitchType
/*553401*/      0, /*End of Scope*/
/*553402*/    /*Scope*/ 23|128,1/*151*/, /*->553555*/
/*553404*/      OPC_MoveChild0,
/*553405*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*553408*/      OPC_RecordMemRef,
/*553409*/      OPC_RecordNode, // #0 = 'ld' chained node
/*553410*/      OPC_CheckFoldableChainNode,
/*553411*/      OPC_RecordChild1, // #1 = $src2
/*553412*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553414*/      OPC_CheckPredicate, 9, // Predicate_load
/*553416*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*553418*/      OPC_Scope, 22, /*->553442*/ // 3 children in Scope
/*553420*/        OPC_MoveParent,
/*553421*/        OPC_RecordChild1, // #2 = $src1
/*553422*/        OPC_CheckType, MVT::v2i64,
/*553424*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*553426*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553429*/        OPC_EmitMergeInputChains1_0,
/*553430*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuludq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (VPMULUDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553442*/      /*Scope*/ 24, /*->553467*/
/*553443*/        OPC_CheckPredicate, 48, // Predicate_memop
/*553445*/        OPC_MoveParent,
/*553446*/        OPC_RecordChild1, // #2 = $src1
/*553447*/        OPC_CheckType, MVT::v2i64,
/*553449*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*553451*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553454*/        OPC_EmitMergeInputChains1_0,
/*553455*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pmuludq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (PMULUDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553467*/      /*Scope*/ 86, /*->553554*/
/*553468*/        OPC_MoveParent,
/*553469*/        OPC_RecordChild1, // #2 = $src1
/*553470*/        OPC_SwitchType /*3 cases */, 40, MVT::v4i64,// ->553513
/*553473*/          OPC_Scope, 18, /*->553493*/ // 2 children in Scope
/*553475*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*553477*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553480*/            OPC_EmitMergeInputChains1_0,
/*553481*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86pmuludq:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULUDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553493*/          /*Scope*/ 18, /*->553512*/
/*553494*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553496*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553499*/            OPC_EmitMergeInputChains1_0,
/*553500*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86pmuludq:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULUDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553512*/          0, /*End of Scope*/
/*553513*/        /*SwitchType*/ 18, MVT::v8i64,// ->553533
/*553515*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*553517*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553520*/          OPC_EmitMergeInputChains1_0,
/*553521*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuludq:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULUDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553533*/        /*SwitchType*/ 18, MVT::v2i64,// ->553553
/*553535*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553537*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*553540*/          OPC_EmitMergeInputChains1_0,
/*553541*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuludq:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULUDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*553553*/        0, // EndSwitchType
/*553554*/      0, /*End of Scope*/
/*553555*/    /*Scope*/ 79, /*->553635*/
/*553556*/      OPC_RecordChild0, // #0 = $src1
/*553557*/      OPC_RecordChild1, // #1 = $src2
/*553558*/      OPC_SwitchType /*3 cases */, 35, MVT::v2i64,// ->553596
/*553561*/        OPC_Scope, 10, /*->553573*/ // 3 children in Scope
/*553563*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*553565*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pmuludq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPMULUDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*553573*/        /*Scope*/ 10, /*->553584*/
/*553574*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*553576*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULUDQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pmuludq:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (PMULUDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*553584*/        /*Scope*/ 10, /*->553595*/
/*553585*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553587*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pmuludq:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPMULUDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*553595*/        0, /*End of Scope*/
/*553596*/      /*SwitchType*/ 24, MVT::v4i64,// ->553622
/*553598*/        OPC_Scope, 10, /*->553610*/ // 2 children in Scope
/*553600*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*553602*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pmuludq:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPMULUDQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*553610*/        /*Scope*/ 10, /*->553621*/
/*553611*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*553613*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86pmuludq:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPMULUDQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*553621*/        0, /*End of Scope*/
/*553622*/      /*SwitchType*/ 10, MVT::v8i64,// ->553634
/*553624*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*553626*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86pmuludq:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPMULUDQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*553634*/      0, // EndSwitchType
/*553635*/    0, /*End of Scope*/
/*553636*/  /*SwitchOpcode*/ 5|128,3/*389*/, TARGET_VAL(X86ISD::VPMADD52L),// ->554029
/*553640*/    OPC_Scope, 87, /*->553729*/ // 5 children in Scope
/*553642*/      OPC_RecordChild0, // #0 = $src2
/*553643*/      OPC_MoveChild1,
/*553644*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*553647*/      OPC_MoveChild0,
/*553648*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*553651*/      OPC_RecordMemRef,
/*553652*/      OPC_RecordNode, // #1 = 'ld' chained node
/*553653*/      OPC_CheckFoldableChainNode,
/*553654*/      OPC_RecordChild1, // #2 = $src3
/*553655*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553657*/      OPC_CheckPredicate, 9, // Predicate_load
/*553659*/      OPC_CheckType, MVT::i64,
/*553661*/      OPC_MoveParent,
/*553662*/      OPC_MoveParent,
/*553663*/      OPC_RecordChild2, // #3 = $src1
/*553664*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->553686
/*553667*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*553669*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553672*/        OPC_EmitMergeInputChains1_1,
/*553673*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52LUQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553686*/      /*SwitchType*/ 19, MVT::v4i64,// ->553707
/*553688*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*553690*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553693*/        OPC_EmitMergeInputChains1_1,
/*553694*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52LUQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553707*/      /*SwitchType*/ 19, MVT::v2i64,// ->553728
/*553709*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*553711*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553714*/        OPC_EmitMergeInputChains1_1,
/*553715*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52LUQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553728*/      0, // EndSwitchType
/*553729*/    /*Scope*/ 87, /*->553817*/
/*553730*/      OPC_MoveChild0,
/*553731*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*553734*/      OPC_MoveChild0,
/*553735*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*553738*/      OPC_RecordMemRef,
/*553739*/      OPC_RecordNode, // #0 = 'ld' chained node
/*553740*/      OPC_CheckFoldableChainNode,
/*553741*/      OPC_RecordChild1, // #1 = $src3
/*553742*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553744*/      OPC_CheckPredicate, 9, // Predicate_load
/*553746*/      OPC_CheckType, MVT::i64,
/*553748*/      OPC_MoveParent,
/*553749*/      OPC_MoveParent,
/*553750*/      OPC_RecordChild1, // #2 = $src2
/*553751*/      OPC_RecordChild2, // #3 = $src1
/*553752*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->553774
/*553755*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*553757*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553760*/        OPC_EmitMergeInputChains1_0,
/*553761*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52LUQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553774*/      /*SwitchType*/ 19, MVT::v4i64,// ->553795
/*553776*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*553778*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553781*/        OPC_EmitMergeInputChains1_0,
/*553782*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52LUQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553795*/      /*SwitchType*/ 19, MVT::v2i64,// ->553816
/*553797*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*553799*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553802*/        OPC_EmitMergeInputChains1_0,
/*553803*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52LUQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553816*/      0, // EndSwitchType
/*553817*/    /*Scope*/ 82, /*->553900*/
/*553818*/      OPC_RecordChild0, // #0 = $src2
/*553819*/      OPC_MoveChild1,
/*553820*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*553823*/      OPC_RecordMemRef,
/*553824*/      OPC_RecordNode, // #1 = 'ld' chained node
/*553825*/      OPC_CheckFoldableChainNode,
/*553826*/      OPC_RecordChild1, // #2 = $src3
/*553827*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553829*/      OPC_CheckPredicate, 9, // Predicate_load
/*553831*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*553833*/      OPC_MoveParent,
/*553834*/      OPC_RecordChild2, // #3 = $src1
/*553835*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->553857
/*553838*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*553840*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553843*/        OPC_EmitMergeInputChains1_1,
/*553844*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52LUQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553857*/      /*SwitchType*/ 19, MVT::v4i64,// ->553878
/*553859*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*553861*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553864*/        OPC_EmitMergeInputChains1_1,
/*553865*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52LUQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553878*/      /*SwitchType*/ 19, MVT::v2i64,// ->553899
/*553880*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*553882*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553885*/        OPC_EmitMergeInputChains1_1,
/*553886*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52LUQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553899*/      0, // EndSwitchType
/*553900*/    /*Scope*/ 82, /*->553983*/
/*553901*/      OPC_MoveChild0,
/*553902*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*553905*/      OPC_RecordMemRef,
/*553906*/      OPC_RecordNode, // #0 = 'ld' chained node
/*553907*/      OPC_CheckFoldableChainNode,
/*553908*/      OPC_RecordChild1, // #1 = $src3
/*553909*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553911*/      OPC_CheckPredicate, 9, // Predicate_load
/*553913*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*553915*/      OPC_MoveParent,
/*553916*/      OPC_RecordChild1, // #2 = $src2
/*553917*/      OPC_RecordChild2, // #3 = $src1
/*553918*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->553940
/*553921*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*553923*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553926*/        OPC_EmitMergeInputChains1_0,
/*553927*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52LUQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553940*/      /*SwitchType*/ 19, MVT::v4i64,// ->553961
/*553942*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*553944*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553947*/        OPC_EmitMergeInputChains1_0,
/*553948*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52LUQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553961*/      /*SwitchType*/ 19, MVT::v2i64,// ->553982
/*553963*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*553965*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*553968*/        OPC_EmitMergeInputChains1_0,
/*553969*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52l:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52LUQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*553982*/      0, // EndSwitchType
/*553983*/    /*Scope*/ 44, /*->554028*/
/*553984*/      OPC_RecordChild0, // #0 = $src2
/*553985*/      OPC_RecordChild1, // #1 = $src3
/*553986*/      OPC_RecordChild2, // #2 = $src1
/*553987*/      OPC_SwitchType /*3 cases */, 11, MVT::v8i64,// ->554001
/*553990*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*553992*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZr), 0,
                      MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (x86vpmadd52l:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPMADD52LUQZr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*554001*/      /*SwitchType*/ 11, MVT::v4i64,// ->554014
/*554003*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554005*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ256r), 0,
                      MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (x86vpmadd52l:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPMADD52LUQZ256r:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*554014*/      /*SwitchType*/ 11, MVT::v2i64,// ->554027
/*554016*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554018*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52LUQZ128r), 0,
                      MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (x86vpmadd52l:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPMADD52LUQZ128r:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*554027*/      0, // EndSwitchType
/*554028*/    0, /*End of Scope*/
/*554029*/  /*SwitchOpcode*/ 5|128,3/*389*/, TARGET_VAL(X86ISD::VPMADD52H),// ->554422
/*554033*/    OPC_Scope, 87, /*->554122*/ // 5 children in Scope
/*554035*/      OPC_RecordChild0, // #0 = $src2
/*554036*/      OPC_MoveChild1,
/*554037*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*554040*/      OPC_MoveChild0,
/*554041*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554044*/      OPC_RecordMemRef,
/*554045*/      OPC_RecordNode, // #1 = 'ld' chained node
/*554046*/      OPC_CheckFoldableChainNode,
/*554047*/      OPC_RecordChild1, // #2 = $src3
/*554048*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554050*/      OPC_CheckPredicate, 9, // Predicate_load
/*554052*/      OPC_CheckType, MVT::i64,
/*554054*/      OPC_MoveParent,
/*554055*/      OPC_MoveParent,
/*554056*/      OPC_RecordChild2, // #3 = $src1
/*554057*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->554079
/*554060*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*554062*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554065*/        OPC_EmitMergeInputChains1_1,
/*554066*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52HUQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554079*/      /*SwitchType*/ 19, MVT::v4i64,// ->554100
/*554081*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554083*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554086*/        OPC_EmitMergeInputChains1_1,
/*554087*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52HUQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554100*/      /*SwitchType*/ 19, MVT::v2i64,// ->554121
/*554102*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554104*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554107*/        OPC_EmitMergeInputChains1_1,
/*554108*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52HUQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554121*/      0, // EndSwitchType
/*554122*/    /*Scope*/ 87, /*->554210*/
/*554123*/      OPC_MoveChild0,
/*554124*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*554127*/      OPC_MoveChild0,
/*554128*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554131*/      OPC_RecordMemRef,
/*554132*/      OPC_RecordNode, // #0 = 'ld' chained node
/*554133*/      OPC_CheckFoldableChainNode,
/*554134*/      OPC_RecordChild1, // #1 = $src3
/*554135*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554137*/      OPC_CheckPredicate, 9, // Predicate_load
/*554139*/      OPC_CheckType, MVT::i64,
/*554141*/      OPC_MoveParent,
/*554142*/      OPC_MoveParent,
/*554143*/      OPC_RecordChild1, // #2 = $src2
/*554144*/      OPC_RecordChild2, // #3 = $src1
/*554145*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->554167
/*554148*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*554150*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554153*/        OPC_EmitMergeInputChains1_0,
/*554154*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52HUQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554167*/      /*SwitchType*/ 19, MVT::v4i64,// ->554188
/*554169*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554171*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554174*/        OPC_EmitMergeInputChains1_0,
/*554175*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52HUQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554188*/      /*SwitchType*/ 19, MVT::v2i64,// ->554209
/*554190*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554192*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554195*/        OPC_EmitMergeInputChains1_0,
/*554196*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                  // Dst: (VPMADD52HUQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554209*/      0, // EndSwitchType
/*554210*/    /*Scope*/ 82, /*->554293*/
/*554211*/      OPC_RecordChild0, // #0 = $src2
/*554212*/      OPC_MoveChild1,
/*554213*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554216*/      OPC_RecordMemRef,
/*554217*/      OPC_RecordNode, // #1 = 'ld' chained node
/*554218*/      OPC_CheckFoldableChainNode,
/*554219*/      OPC_RecordChild1, // #2 = $src3
/*554220*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554222*/      OPC_CheckPredicate, 9, // Predicate_load
/*554224*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*554226*/      OPC_MoveParent,
/*554227*/      OPC_RecordChild2, // #3 = $src1
/*554228*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->554250
/*554231*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*554233*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554236*/        OPC_EmitMergeInputChains1_1,
/*554237*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52HUQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554250*/      /*SwitchType*/ 19, MVT::v4i64,// ->554271
/*554252*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554254*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554257*/        OPC_EmitMergeInputChains1_1,
/*554258*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52HUQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554271*/      /*SwitchType*/ 19, MVT::v2i64,// ->554292
/*554273*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554275*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554278*/        OPC_EmitMergeInputChains1_1,
/*554279*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52HUQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554292*/      0, // EndSwitchType
/*554293*/    /*Scope*/ 82, /*->554376*/
/*554294*/      OPC_MoveChild0,
/*554295*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554298*/      OPC_RecordMemRef,
/*554299*/      OPC_RecordNode, // #0 = 'ld' chained node
/*554300*/      OPC_CheckFoldableChainNode,
/*554301*/      OPC_RecordChild1, // #1 = $src3
/*554302*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554304*/      OPC_CheckPredicate, 9, // Predicate_load
/*554306*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*554308*/      OPC_MoveParent,
/*554309*/      OPC_RecordChild1, // #2 = $src2
/*554310*/      OPC_RecordChild2, // #3 = $src1
/*554311*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->554333
/*554314*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*554316*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554319*/        OPC_EmitMergeInputChains1_0,
/*554320*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52HUQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554333*/      /*SwitchType*/ 19, MVT::v4i64,// ->554354
/*554335*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554337*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554340*/        OPC_EmitMergeInputChains1_0,
/*554341*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52HUQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554354*/      /*SwitchType*/ 19, MVT::v2i64,// ->554375
/*554356*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554358*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*554361*/        OPC_EmitMergeInputChains1_0,
/*554362*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (x86vpmadd52h:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (VPMADD52HUQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*554375*/      0, // EndSwitchType
/*554376*/    /*Scope*/ 44, /*->554421*/
/*554377*/      OPC_RecordChild0, // #0 = $src2
/*554378*/      OPC_RecordChild1, // #1 = $src3
/*554379*/      OPC_RecordChild2, // #2 = $src1
/*554380*/      OPC_SwitchType /*3 cases */, 11, MVT::v8i64,// ->554394
/*554383*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasIFMA())
/*554385*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZr), 0,
                      MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (x86vpmadd52h:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPMADD52HUQZr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*554394*/      /*SwitchType*/ 11, MVT::v4i64,// ->554407
/*554396*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554398*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ256r), 0,
                      MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (x86vpmadd52h:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPMADD52HUQZ256r:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*554407*/      /*SwitchType*/ 11, MVT::v2i64,// ->554420
/*554409*/        OPC_CheckPatternPredicate, 172, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*554411*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADD52HUQZ128r), 0,
                      MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (x86vpmadd52h:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPMADD52HUQZ128r:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*554420*/      0, // EndSwitchType
/*554421*/    0, /*End of Scope*/
/*554422*/  /*SwitchOpcode*/ 41|128,7/*937*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->555363
/*554426*/    OPC_Scope, 56|128,5/*696*/, /*->555125*/ // 2 children in Scope
/*554429*/      OPC_MoveChild0,
/*554430*/      OPC_SwitchOpcode /*2 cases */, 26|128,2/*282*/, TARGET_VAL(X86ISD::VBROADCAST),// ->554717
/*554435*/        OPC_MoveChild0,
/*554436*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554439*/        OPC_RecordMemRef,
/*554440*/        OPC_RecordNode, // #0 = 'ld' chained node
/*554441*/        OPC_CheckFoldableChainNode,
/*554442*/        OPC_RecordChild1, // #1 = $src
/*554443*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554445*/        OPC_CheckPredicate, 9, // Predicate_load
/*554447*/        OPC_SwitchType /*2 cases */, 2|128,1/*130*/, MVT::f32,// ->554581
/*554451*/          OPC_MoveParent,
/*554452*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->554475
/*554455*/            OPC_MoveParent,
/*554456*/            OPC_CheckType, MVT::v16i32,
/*554458*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*554460*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554463*/            OPC_EmitMergeInputChains1_0,
/*554464*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VCVTTPS2DQZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*554475*/          /*SwitchType*/ 60, MVT::v4f32,// ->554537
/*554477*/            OPC_MoveParent,
/*554478*/            OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->554498
/*554481*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*554483*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554486*/              OPC_EmitMergeInputChains1_0,
/*554487*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPS2DQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*554498*/            /*SwitchType*/ 17, MVT::v2i64,// ->554517
/*554500*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554502*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554505*/              OPC_EmitMergeInputChains1_0,
/*554506*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPS2QQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*554517*/            /*SwitchType*/ 17, MVT::v4i64,// ->554536
/*554519*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554521*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554524*/              OPC_EmitMergeInputChains1_0,
/*554525*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPS2QQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*554536*/            0, // EndSwitchType
/*554537*/          /*SwitchType*/ 41, MVT::v8f32,// ->554580
/*554539*/            OPC_MoveParent,
/*554540*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->554560
/*554543*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*554545*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554548*/              OPC_EmitMergeInputChains1_0,
/*554549*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPS2DQZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*554560*/            /*SwitchType*/ 17, MVT::v8i64,// ->554579
/*554562*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*554564*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554567*/              OPC_EmitMergeInputChains1_0,
/*554568*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPS2QQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*554579*/            0, // EndSwitchType
/*554580*/          0, // EndSwitchType
/*554581*/        /*SwitchType*/ 4|128,1/*132*/, MVT::f64,// ->554716
/*554584*/          OPC_MoveParent,
/*554585*/          OPC_SwitchType /*3 cases */, 41, MVT::v8f64,// ->554629
/*554588*/            OPC_MoveParent,
/*554589*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->554609
/*554592*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*554594*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554597*/              OPC_EmitMergeInputChains1_0,
/*554598*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2DQZrmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*554609*/            /*SwitchType*/ 17, MVT::v8i64,// ->554628
/*554611*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*554613*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554616*/              OPC_EmitMergeInputChains1_0,
/*554617*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2QQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*554628*/            0, // EndSwitchType
/*554629*/          /*SwitchType*/ 41, MVT::v2f64,// ->554672
/*554631*/            OPC_MoveParent,
/*554632*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->554652
/*554635*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*554637*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554640*/              OPC_EmitMergeInputChains1_0,
/*554641*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2DQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*554652*/            /*SwitchType*/ 17, MVT::v2i64,// ->554671
/*554654*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554656*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554659*/              OPC_EmitMergeInputChains1_0,
/*554660*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2QQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*554671*/            0, // EndSwitchType
/*554672*/          /*SwitchType*/ 41, MVT::v4f64,// ->554715
/*554674*/            OPC_MoveParent,
/*554675*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->554695
/*554678*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*554680*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554683*/              OPC_EmitMergeInputChains1_0,
/*554684*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2DQZ256rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*554695*/            /*SwitchType*/ 17, MVT::v4i64,// ->554714
/*554697*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554699*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554702*/              OPC_EmitMergeInputChains1_0,
/*554703*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2QQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*554714*/            0, // EndSwitchType
/*554715*/          0, // EndSwitchType
/*554716*/        0, // EndSwitchType
/*554717*/      /*SwitchOpcode*/ 19|128,3/*403*/, TARGET_VAL(ISD::LOAD),// ->555124
/*554721*/        OPC_RecordMemRef,
/*554722*/        OPC_RecordNode, // #0 = 'ld' chained node
/*554723*/        OPC_RecordChild1, // #1 = $src
/*554724*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554726*/        OPC_CheckPredicate, 9, // Predicate_load
/*554728*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*554730*/        OPC_SwitchType /*6 cases */, 107, MVT::v4f32,// ->554840
/*554733*/          OPC_Scope, 20, /*->554755*/ // 3 children in Scope
/*554735*/            OPC_MoveParent,
/*554736*/            OPC_CheckType, MVT::v4i32,
/*554738*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554740*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554743*/            OPC_EmitMergeInputChains1_0,
/*554744*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*554755*/          /*Scope*/ 22, /*->554778*/
/*554756*/            OPC_CheckPredicate, 48, // Predicate_memop
/*554758*/            OPC_MoveParent,
/*554759*/            OPC_CheckType, MVT::v4i32,
/*554761*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*554763*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554766*/            OPC_EmitMergeInputChains1_0,
/*554767*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (CVTTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*554778*/          /*Scope*/ 60, /*->554839*/
/*554779*/            OPC_MoveParent,
/*554780*/            OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->554800
/*554783*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*554785*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554788*/              OPC_EmitMergeInputChains1_0,
/*554789*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTTPS2DQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*554800*/            /*SwitchType*/ 17, MVT::v2i64,// ->554819
/*554802*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554804*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554807*/              OPC_EmitMergeInputChains1_0,
/*554808*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTTPS2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*554819*/            /*SwitchType*/ 17, MVT::v4i64,// ->554838
/*554821*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554823*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554826*/              OPC_EmitMergeInputChains1_0,
/*554827*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTTPS2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*554838*/            0, // EndSwitchType
/*554839*/          0, /*End of Scope*/
/*554840*/        /*SwitchType*/ 62, MVT::v8f32,// ->554904
/*554842*/          OPC_MoveParent,
/*554843*/          OPC_SwitchType /*2 cases */, 38, MVT::v8i32,// ->554884
/*554846*/            OPC_Scope, 17, /*->554865*/ // 2 children in Scope
/*554848*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554850*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554853*/              OPC_EmitMergeInputChains1_0,
/*554854*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTTPS2DQYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*554865*/            /*Scope*/ 17, /*->554883*/
/*554866*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*554868*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554871*/              OPC_EmitMergeInputChains1_0,
/*554872*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTTPS2DQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*554883*/            0, /*End of Scope*/
/*554884*/          /*SwitchType*/ 17, MVT::v8i64,// ->554903
/*554886*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*554888*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554891*/            OPC_EmitMergeInputChains1_0,
/*554892*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPS2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*554903*/          0, // EndSwitchType
/*554904*/        /*SwitchType*/ 88, MVT::v2f64,// ->554994
/*554906*/          OPC_Scope, 20, /*->554928*/ // 3 children in Scope
/*554908*/            OPC_MoveParent,
/*554909*/            OPC_CheckType, MVT::v4i32,
/*554911*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554913*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554916*/            OPC_EmitMergeInputChains1_0,
/*554917*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPD2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*554928*/          /*Scope*/ 22, /*->554951*/
/*554929*/            OPC_CheckPredicate, 48, // Predicate_memop
/*554931*/            OPC_MoveParent,
/*554932*/            OPC_CheckType, MVT::v4i32,
/*554934*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*554936*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554939*/            OPC_EmitMergeInputChains1_0,
/*554940*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (CVTTPD2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*554951*/          /*Scope*/ 41, /*->554993*/
/*554952*/            OPC_MoveParent,
/*554953*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->554973
/*554956*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*554958*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554961*/              OPC_EmitMergeInputChains1_0,
/*554962*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*554973*/            /*SwitchType*/ 17, MVT::v2i64,// ->554992
/*554975*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554977*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554980*/              OPC_EmitMergeInputChains1_0,
/*554981*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTTPD2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*554992*/            0, // EndSwitchType
/*554993*/          0, /*End of Scope*/
/*554994*/        /*SwitchType*/ 62, MVT::v4f64,// ->555058
/*554996*/          OPC_MoveParent,
/*554997*/          OPC_SwitchType /*2 cases */, 38, MVT::v4i32,// ->555038
/*555000*/            OPC_Scope, 17, /*->555019*/ // 2 children in Scope
/*555002*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*555004*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555007*/              OPC_EmitMergeInputChains1_0,
/*555008*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQYrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*555019*/            /*Scope*/ 17, /*->555037*/
/*555020*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555022*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555025*/              OPC_EmitMergeInputChains1_0,
/*555026*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*555037*/            0, /*End of Scope*/
/*555038*/          /*SwitchType*/ 17, MVT::v4i64,// ->555057
/*555040*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555042*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555045*/            OPC_EmitMergeInputChains1_0,
/*555046*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPD2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*555057*/          0, // EndSwitchType
/*555058*/        /*SwitchType*/ 20, MVT::v16f32,// ->555080
/*555060*/          OPC_MoveParent,
/*555061*/          OPC_CheckType, MVT::v16i32,
/*555063*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555065*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555068*/          OPC_EmitMergeInputChains1_0,
/*555069*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvttp2si:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPS2DQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*555080*/        /*SwitchType*/ 41, MVT::v8f64,// ->555123
/*555082*/          OPC_MoveParent,
/*555083*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->555103
/*555086*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555088*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555091*/            OPC_EmitMergeInputChains1_0,
/*555092*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPD2DQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*555103*/          /*SwitchType*/ 17, MVT::v8i64,// ->555122
/*555105*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*555107*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555110*/            OPC_EmitMergeInputChains1_0,
/*555111*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPD2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*555122*/          0, // EndSwitchType
/*555123*/        0, // EndSwitchType
/*555124*/      0, // EndSwitchOpcode
/*555125*/    /*Scope*/ 107|128,1/*235*/, /*->555362*/
/*555127*/      OPC_RecordChild0, // #0 = $src
/*555128*/      OPC_Scope, 60, /*->555190*/ // 6 children in Scope
/*555130*/        OPC_CheckChild0Type, MVT::v4f32,
/*555132*/        OPC_SwitchType /*3 cases */, 32, MVT::v4i32,// ->555167
/*555135*/          OPC_Scope, 9, /*->555146*/ // 3 children in Scope
/*555137*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*555139*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQrr:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src)
/*555146*/          /*Scope*/ 9, /*->555156*/
/*555147*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*555149*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPS2DQrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (CVTTPS2DQrr:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src)
/*555156*/          /*Scope*/ 9, /*->555166*/
/*555157*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555159*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQZ128rr:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src)
/*555166*/          0, /*End of Scope*/
/*555167*/        /*SwitchType*/ 9, MVT::v2i64,// ->555178
/*555169*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555171*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2si:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2QQZ128rr:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src)
/*555178*/        /*SwitchType*/ 9, MVT::v4i64,// ->555189
/*555180*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555182*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2si:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2QQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src)
/*555189*/        0, // EndSwitchType
/*555190*/      /*Scope*/ 39, /*->555230*/
/*555191*/        OPC_CheckChild0Type, MVT::v8f32,
/*555193*/        OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->555218
/*555196*/          OPC_Scope, 9, /*->555207*/ // 2 children in Scope
/*555198*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*555200*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvttp2si:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQYrr:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src)
/*555207*/          /*Scope*/ 9, /*->555217*/
/*555208*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555210*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvttp2si:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQZ256rr:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src)
/*555217*/          0, /*End of Scope*/
/*555218*/        /*SwitchType*/ 9, MVT::v8i64,// ->555229
/*555220*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*555222*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2si:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2QQZrr:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*555229*/        0, // EndSwitchType
/*555230*/      /*Scope*/ 49, /*->555280*/
/*555231*/        OPC_CheckChild0Type, MVT::v2f64,
/*555233*/        OPC_SwitchType /*2 cases */, 32, MVT::v4i32,// ->555268
/*555236*/          OPC_Scope, 9, /*->555247*/ // 3 children in Scope
/*555238*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*555240*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2DQrr:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src)
/*555247*/          /*Scope*/ 9, /*->555257*/
/*555248*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*555250*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPD2DQrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (CVTTPD2DQrr:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src)
/*555257*/          /*Scope*/ 9, /*->555267*/
/*555258*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555260*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2DQZ128rr:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src)
/*555267*/          0, /*End of Scope*/
/*555268*/        /*SwitchType*/ 9, MVT::v2i64,// ->555279
/*555270*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555272*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2si:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2QQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*555279*/        0, // EndSwitchType
/*555280*/      /*Scope*/ 39, /*->555320*/
/*555281*/        OPC_CheckChild0Type, MVT::v4f64,
/*555283*/        OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->555308
/*555286*/          OPC_Scope, 9, /*->555297*/ // 2 children in Scope
/*555288*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*555290*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQYrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2DQYrr:{ *:[v4i32] } VR256:{ *:[v4f64] }:$src)
/*555297*/          /*Scope*/ 9, /*->555307*/
/*555298*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555300*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2DQZ256rr:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src)
/*555307*/          0, /*End of Scope*/
/*555308*/        /*SwitchType*/ 9, MVT::v4i64,// ->555319
/*555310*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555312*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2si:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2QQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src)
/*555319*/        0, // EndSwitchType
/*555320*/      /*Scope*/ 13, /*->555334*/
/*555321*/        OPC_CheckChild0Type, MVT::v16f32,
/*555323*/        OPC_CheckType, MVT::v16i32,
/*555325*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555327*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvttp2si:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VCVTTPS2DQZrr:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*555334*/      /*Scope*/ 26, /*->555361*/
/*555335*/        OPC_CheckChild0Type, MVT::v8f64,
/*555337*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->555349
/*555340*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555342*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2si:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2DQZrr:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*555349*/        /*SwitchType*/ 9, MVT::v8i64,// ->555360
/*555351*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*555353*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2si:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2QQZrr:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*555360*/        0, // EndSwitchType
/*555361*/      0, /*End of Scope*/
/*555362*/    0, /*End of Scope*/
/*555363*/  /*SwitchOpcode*/ 89|128,5/*729*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->556096
/*555367*/    OPC_Scope, 48|128,4/*560*/, /*->555930*/ // 2 children in Scope
/*555370*/      OPC_MoveChild0,
/*555371*/      OPC_SwitchOpcode /*2 cases */, 26|128,2/*282*/, TARGET_VAL(X86ISD::VBROADCAST),// ->555658
/*555376*/        OPC_MoveChild0,
/*555377*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*555380*/        OPC_RecordMemRef,
/*555381*/        OPC_RecordNode, // #0 = 'ld' chained node
/*555382*/        OPC_CheckFoldableChainNode,
/*555383*/        OPC_RecordChild1, // #1 = $src
/*555384*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*555386*/        OPC_CheckPredicate, 9, // Predicate_load
/*555388*/        OPC_SwitchType /*2 cases */, 2|128,1/*130*/, MVT::f32,// ->555522
/*555392*/          OPC_MoveParent,
/*555393*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->555416
/*555396*/            OPC_MoveParent,
/*555397*/            OPC_CheckType, MVT::v16i32,
/*555399*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555401*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555404*/            OPC_EmitMergeInputChains1_0,
/*555405*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VCVTTPS2UDQZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*555416*/          /*SwitchType*/ 60, MVT::v4f32,// ->555478
/*555418*/            OPC_MoveParent,
/*555419*/            OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->555439
/*555422*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555424*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555427*/              OPC_EmitMergeInputChains1_0,
/*555428*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPS2UDQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*555439*/            /*SwitchType*/ 17, MVT::v2i64,// ->555458
/*555441*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555443*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555446*/              OPC_EmitMergeInputChains1_0,
/*555447*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPS2UQQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*555458*/            /*SwitchType*/ 17, MVT::v4i64,// ->555477
/*555460*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555462*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555465*/              OPC_EmitMergeInputChains1_0,
/*555466*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPS2UQQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*555477*/            0, // EndSwitchType
/*555478*/          /*SwitchType*/ 41, MVT::v8f32,// ->555521
/*555480*/            OPC_MoveParent,
/*555481*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->555501
/*555484*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555486*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555489*/              OPC_EmitMergeInputChains1_0,
/*555490*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPS2UDQZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*555501*/            /*SwitchType*/ 17, MVT::v8i64,// ->555520
/*555503*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*555505*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555508*/              OPC_EmitMergeInputChains1_0,
/*555509*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPS2UQQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*555520*/            0, // EndSwitchType
/*555521*/          0, // EndSwitchType
/*555522*/        /*SwitchType*/ 4|128,1/*132*/, MVT::f64,// ->555657
/*555525*/          OPC_MoveParent,
/*555526*/          OPC_SwitchType /*3 cases */, 41, MVT::v8f64,// ->555570
/*555529*/            OPC_MoveParent,
/*555530*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->555550
/*555533*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555535*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555538*/              OPC_EmitMergeInputChains1_0,
/*555539*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2UDQZrmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*555550*/            /*SwitchType*/ 17, MVT::v8i64,// ->555569
/*555552*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*555554*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555557*/              OPC_EmitMergeInputChains1_0,
/*555558*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2UQQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*555569*/            0, // EndSwitchType
/*555570*/          /*SwitchType*/ 41, MVT::v2f64,// ->555613
/*555572*/            OPC_MoveParent,
/*555573*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->555593
/*555576*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555578*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555581*/              OPC_EmitMergeInputChains1_0,
/*555582*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2UDQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*555593*/            /*SwitchType*/ 17, MVT::v2i64,// ->555612
/*555595*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555597*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555600*/              OPC_EmitMergeInputChains1_0,
/*555601*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2UQQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*555612*/            0, // EndSwitchType
/*555613*/          /*SwitchType*/ 41, MVT::v4f64,// ->555656
/*555615*/            OPC_MoveParent,
/*555616*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->555636
/*555619*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555621*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555624*/              OPC_EmitMergeInputChains1_0,
/*555625*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2UDQZ256rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*555636*/            /*SwitchType*/ 17, MVT::v4i64,// ->555655
/*555638*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555640*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555643*/              OPC_EmitMergeInputChains1_0,
/*555644*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTTPD2UQQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*555655*/            0, // EndSwitchType
/*555656*/          0, // EndSwitchType
/*555657*/        0, // EndSwitchType
/*555658*/      /*SwitchOpcode*/ 11|128,2/*267*/, TARGET_VAL(ISD::LOAD),// ->555929
/*555662*/        OPC_RecordMemRef,
/*555663*/        OPC_RecordNode, // #0 = 'ld' chained node
/*555664*/        OPC_RecordChild1, // #1 = $src
/*555665*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*555667*/        OPC_CheckPredicate, 9, // Predicate_load
/*555669*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*555671*/        OPC_SwitchType /*6 cases */, 20, MVT::v16f32,// ->555694
/*555674*/          OPC_MoveParent,
/*555675*/          OPC_CheckType, MVT::v16i32,
/*555677*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555679*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555682*/          OPC_EmitMergeInputChains1_0,
/*555683*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvttp2ui:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTTPS2UDQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*555694*/        /*SwitchType*/ 60, MVT::v4f32,// ->555756
/*555696*/          OPC_MoveParent,
/*555697*/          OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->555717
/*555700*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555702*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555705*/            OPC_EmitMergeInputChains1_0,
/*555706*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*555717*/          /*SwitchType*/ 17, MVT::v2i64,// ->555736
/*555719*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555721*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555724*/            OPC_EmitMergeInputChains1_0,
/*555725*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPS2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*555736*/          /*SwitchType*/ 17, MVT::v4i64,// ->555755
/*555738*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555740*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555743*/            OPC_EmitMergeInputChains1_0,
/*555744*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPS2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*555755*/          0, // EndSwitchType
/*555756*/        /*SwitchType*/ 41, MVT::v8f32,// ->555799
/*555758*/          OPC_MoveParent,
/*555759*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->555779
/*555762*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555764*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555767*/            OPC_EmitMergeInputChains1_0,
/*555768*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*555779*/          /*SwitchType*/ 17, MVT::v8i64,// ->555798
/*555781*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*555783*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555786*/            OPC_EmitMergeInputChains1_0,
/*555787*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPS2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*555798*/          0, // EndSwitchType
/*555799*/        /*SwitchType*/ 41, MVT::v8f64,// ->555842
/*555801*/          OPC_MoveParent,
/*555802*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->555822
/*555805*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555807*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555810*/            OPC_EmitMergeInputChains1_0,
/*555811*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPD2UDQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*555822*/          /*SwitchType*/ 17, MVT::v8i64,// ->555841
/*555824*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*555826*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555829*/            OPC_EmitMergeInputChains1_0,
/*555830*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPD2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*555841*/          0, // EndSwitchType
/*555842*/        /*SwitchType*/ 41, MVT::v2f64,// ->555885
/*555844*/          OPC_MoveParent,
/*555845*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->555865
/*555848*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555850*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555853*/            OPC_EmitMergeInputChains1_0,
/*555854*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPD2UDQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*555865*/          /*SwitchType*/ 17, MVT::v2i64,// ->555884
/*555867*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555869*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555872*/            OPC_EmitMergeInputChains1_0,
/*555873*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPD2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*555884*/          0, // EndSwitchType
/*555885*/        /*SwitchType*/ 41, MVT::v4f64,// ->555928
/*555887*/          OPC_MoveParent,
/*555888*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->555908
/*555891*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555893*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555896*/            OPC_EmitMergeInputChains1_0,
/*555897*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPD2UDQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*555908*/          /*SwitchType*/ 17, MVT::v4i64,// ->555927
/*555910*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555912*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*555915*/            OPC_EmitMergeInputChains1_0,
/*555916*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTTPD2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*555927*/          0, // EndSwitchType
/*555928*/        0, // EndSwitchType
/*555929*/      0, // EndSwitchOpcode
/*555930*/    /*Scope*/ 35|128,1/*163*/, /*->556095*/
/*555932*/      OPC_RecordChild0, // #0 = $src
/*555933*/      OPC_Scope, 13, /*->555948*/ // 6 children in Scope
/*555935*/        OPC_CheckChild0Type, MVT::v16f32,
/*555937*/        OPC_CheckType, MVT::v16i32,
/*555939*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555941*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvttp2ui:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VCVTTPS2UDQZrr:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*555948*/      /*Scope*/ 37, /*->555986*/
/*555949*/        OPC_CheckChild0Type, MVT::v4f32,
/*555951*/        OPC_SwitchType /*3 cases */, 9, MVT::v4i32,// ->555963
/*555954*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555956*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2UDQZ128rr:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src)
/*555963*/        /*SwitchType*/ 9, MVT::v2i64,// ->555974
/*555965*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555967*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2UQQZ128rr:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src)
/*555974*/        /*SwitchType*/ 9, MVT::v4i64,// ->555985
/*555976*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555978*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2ui:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2UQQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src)
/*555985*/        0, // EndSwitchType
/*555986*/      /*Scope*/ 26, /*->556013*/
/*555987*/        OPC_CheckChild0Type, MVT::v8f32,
/*555989*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->556001
/*555992*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*555994*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2ui:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2UDQZ256rr:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src)
/*556001*/        /*SwitchType*/ 9, MVT::v8i64,// ->556012
/*556003*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*556005*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2ui:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2UQQZrr:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*556012*/        0, // EndSwitchType
/*556013*/      /*Scope*/ 26, /*->556040*/
/*556014*/        OPC_CheckChild0Type, MVT::v8f64,
/*556016*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->556028
/*556019*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556021*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2ui:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UDQZrr:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*556028*/        /*SwitchType*/ 9, MVT::v8i64,// ->556039
/*556030*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*556032*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2ui:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UQQZrr:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*556039*/        0, // EndSwitchType
/*556040*/      /*Scope*/ 26, /*->556067*/
/*556041*/        OPC_CheckChild0Type, MVT::v2f64,
/*556043*/        OPC_SwitchType /*2 cases */, 9, MVT::v4i32,// ->556055
/*556046*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556048*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UDQZ128rr:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src)
/*556055*/        /*SwitchType*/ 9, MVT::v2i64,// ->556066
/*556057*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556059*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UQQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*556066*/        0, // EndSwitchType
/*556067*/      /*Scope*/ 26, /*->556094*/
/*556068*/        OPC_CheckChild0Type, MVT::v4f64,
/*556070*/        OPC_SwitchType /*2 cases */, 9, MVT::v4i32,// ->556082
/*556073*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556075*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2ui:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UDQZ256rr:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src)
/*556082*/        /*SwitchType*/ 9, MVT::v4i64,// ->556093
/*556084*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556086*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvttp2ui:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UQQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src)
/*556093*/        0, // EndSwitchType
/*556094*/      0, /*End of Scope*/
/*556095*/    0, /*End of Scope*/
/*556096*/  /*SwitchOpcode*/ 41|128,7/*937*/, TARGET_VAL(X86ISD::CVTP2SI),// ->557037
/*556100*/    OPC_Scope, 56|128,5/*696*/, /*->556799*/ // 2 children in Scope
/*556103*/      OPC_MoveChild0,
/*556104*/      OPC_SwitchOpcode /*2 cases */, 26|128,2/*282*/, TARGET_VAL(X86ISD::VBROADCAST),// ->556391
/*556109*/        OPC_MoveChild0,
/*556110*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*556113*/        OPC_RecordMemRef,
/*556114*/        OPC_RecordNode, // #0 = 'ld' chained node
/*556115*/        OPC_CheckFoldableChainNode,
/*556116*/        OPC_RecordChild1, // #1 = $src
/*556117*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*556119*/        OPC_CheckPredicate, 9, // Predicate_load
/*556121*/        OPC_SwitchType /*2 cases */, 2|128,1/*130*/, MVT::f32,// ->556255
/*556125*/          OPC_MoveParent,
/*556126*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->556149
/*556129*/            OPC_MoveParent,
/*556130*/            OPC_CheckType, MVT::v16i32,
/*556132*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556134*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556137*/            OPC_EmitMergeInputChains1_0,
/*556138*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VCVTPS2DQZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*556149*/          /*SwitchType*/ 60, MVT::v4f32,// ->556211
/*556151*/            OPC_MoveParent,
/*556152*/            OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->556172
/*556155*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556157*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556160*/              OPC_EmitMergeInputChains1_0,
/*556161*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPS2DQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*556172*/            /*SwitchType*/ 17, MVT::v2i64,// ->556191
/*556174*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556176*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556179*/              OPC_EmitMergeInputChains1_0,
/*556180*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPS2QQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*556191*/            /*SwitchType*/ 17, MVT::v4i64,// ->556210
/*556193*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556195*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556198*/              OPC_EmitMergeInputChains1_0,
/*556199*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPS2QQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*556210*/            0, // EndSwitchType
/*556211*/          /*SwitchType*/ 41, MVT::v8f32,// ->556254
/*556213*/            OPC_MoveParent,
/*556214*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->556234
/*556217*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556219*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556222*/              OPC_EmitMergeInputChains1_0,
/*556223*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPS2DQZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*556234*/            /*SwitchType*/ 17, MVT::v8i64,// ->556253
/*556236*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*556238*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556241*/              OPC_EmitMergeInputChains1_0,
/*556242*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPS2QQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*556253*/            0, // EndSwitchType
/*556254*/          0, // EndSwitchType
/*556255*/        /*SwitchType*/ 4|128,1/*132*/, MVT::f64,// ->556390
/*556258*/          OPC_MoveParent,
/*556259*/          OPC_SwitchType /*3 cases */, 41, MVT::v8f64,// ->556303
/*556262*/            OPC_MoveParent,
/*556263*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->556283
/*556266*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556268*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556271*/              OPC_EmitMergeInputChains1_0,
/*556272*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2DQZrmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*556283*/            /*SwitchType*/ 17, MVT::v8i64,// ->556302
/*556285*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*556287*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556290*/              OPC_EmitMergeInputChains1_0,
/*556291*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2QQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*556302*/            0, // EndSwitchType
/*556303*/          /*SwitchType*/ 41, MVT::v2f64,// ->556346
/*556305*/            OPC_MoveParent,
/*556306*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->556326
/*556309*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556311*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556314*/              OPC_EmitMergeInputChains1_0,
/*556315*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2DQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*556326*/            /*SwitchType*/ 17, MVT::v2i64,// ->556345
/*556328*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556330*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556333*/              OPC_EmitMergeInputChains1_0,
/*556334*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2QQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*556345*/            0, // EndSwitchType
/*556346*/          /*SwitchType*/ 41, MVT::v4f64,// ->556389
/*556348*/            OPC_MoveParent,
/*556349*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->556369
/*556352*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556354*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556357*/              OPC_EmitMergeInputChains1_0,
/*556358*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2DQZ256rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*556369*/            /*SwitchType*/ 17, MVT::v4i64,// ->556388
/*556371*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556373*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556376*/              OPC_EmitMergeInputChains1_0,
/*556377*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2QQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*556388*/            0, // EndSwitchType
/*556389*/          0, // EndSwitchType
/*556390*/        0, // EndSwitchType
/*556391*/      /*SwitchOpcode*/ 19|128,3/*403*/, TARGET_VAL(ISD::LOAD),// ->556798
/*556395*/        OPC_RecordMemRef,
/*556396*/        OPC_RecordNode, // #0 = 'ld' chained node
/*556397*/        OPC_RecordChild1, // #1 = $src
/*556398*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*556400*/        OPC_CheckPredicate, 9, // Predicate_load
/*556402*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*556404*/        OPC_SwitchType /*6 cases */, 107, MVT::v4f32,// ->556514
/*556407*/          OPC_Scope, 20, /*->556429*/ // 3 children in Scope
/*556409*/            OPC_MoveParent,
/*556410*/            OPC_CheckType, MVT::v4i32,
/*556412*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*556414*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556417*/            OPC_EmitMergeInputChains1_0,
/*556418*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*556429*/          /*Scope*/ 22, /*->556452*/
/*556430*/            OPC_CheckPredicate, 48, // Predicate_memop
/*556432*/            OPC_MoveParent,
/*556433*/            OPC_CheckType, MVT::v4i32,
/*556435*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*556437*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556440*/            OPC_EmitMergeInputChains1_0,
/*556441*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (CVTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*556452*/          /*Scope*/ 60, /*->556513*/
/*556453*/            OPC_MoveParent,
/*556454*/            OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->556474
/*556457*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556459*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556462*/              OPC_EmitMergeInputChains1_0,
/*556463*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTPS2DQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*556474*/            /*SwitchType*/ 17, MVT::v2i64,// ->556493
/*556476*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556478*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556481*/              OPC_EmitMergeInputChains1_0,
/*556482*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTPS2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*556493*/            /*SwitchType*/ 17, MVT::v4i64,// ->556512
/*556495*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556497*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556500*/              OPC_EmitMergeInputChains1_0,
/*556501*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTPS2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*556512*/            0, // EndSwitchType
/*556513*/          0, /*End of Scope*/
/*556514*/        /*SwitchType*/ 62, MVT::v8f32,// ->556578
/*556516*/          OPC_MoveParent,
/*556517*/          OPC_SwitchType /*2 cases */, 38, MVT::v8i32,// ->556558
/*556520*/            OPC_Scope, 17, /*->556539*/ // 2 children in Scope
/*556522*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*556524*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556527*/              OPC_EmitMergeInputChains1_0,
/*556528*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTPS2DQYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*556539*/            /*Scope*/ 17, /*->556557*/
/*556540*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556542*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556545*/              OPC_EmitMergeInputChains1_0,
/*556546*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTPS2DQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*556557*/            0, /*End of Scope*/
/*556558*/          /*SwitchType*/ 17, MVT::v8i64,// ->556577
/*556560*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*556562*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556565*/            OPC_EmitMergeInputChains1_0,
/*556566*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPS2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*556577*/          0, // EndSwitchType
/*556578*/        /*SwitchType*/ 88, MVT::v2f64,// ->556668
/*556580*/          OPC_Scope, 20, /*->556602*/ // 3 children in Scope
/*556582*/            OPC_MoveParent,
/*556583*/            OPC_CheckType, MVT::v4i32,
/*556585*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*556587*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556590*/            OPC_EmitMergeInputChains1_0,
/*556591*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*556602*/          /*Scope*/ 22, /*->556625*/
/*556603*/            OPC_CheckPredicate, 48, // Predicate_memop
/*556605*/            OPC_MoveParent,
/*556606*/            OPC_CheckType, MVT::v4i32,
/*556608*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*556610*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556613*/            OPC_EmitMergeInputChains1_0,
/*556614*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (CVTPD2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*556625*/          /*Scope*/ 41, /*->556667*/
/*556626*/            OPC_MoveParent,
/*556627*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->556647
/*556630*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556632*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556635*/              OPC_EmitMergeInputChains1_0,
/*556636*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTPD2DQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*556647*/            /*SwitchType*/ 17, MVT::v2i64,// ->556666
/*556649*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556651*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556654*/              OPC_EmitMergeInputChains1_0,
/*556655*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTPD2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*556666*/            0, // EndSwitchType
/*556667*/          0, /*End of Scope*/
/*556668*/        /*SwitchType*/ 62, MVT::v4f64,// ->556732
/*556670*/          OPC_MoveParent,
/*556671*/          OPC_SwitchType /*2 cases */, 38, MVT::v4i32,// ->556712
/*556674*/            OPC_Scope, 17, /*->556693*/ // 2 children in Scope
/*556676*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*556678*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556681*/              OPC_EmitMergeInputChains1_0,
/*556682*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTPD2DQYrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*556693*/            /*Scope*/ 17, /*->556711*/
/*556694*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556696*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556699*/              OPC_EmitMergeInputChains1_0,
/*556700*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                        // Dst: (VCVTPD2DQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*556711*/            0, /*End of Scope*/
/*556712*/          /*SwitchType*/ 17, MVT::v4i64,// ->556731
/*556714*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556716*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556719*/            OPC_EmitMergeInputChains1_0,
/*556720*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*556731*/          0, // EndSwitchType
/*556732*/        /*SwitchType*/ 20, MVT::v16f32,// ->556754
/*556734*/          OPC_MoveParent,
/*556735*/          OPC_CheckType, MVT::v16i32,
/*556737*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556739*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556742*/          OPC_EmitMergeInputChains1_0,
/*556743*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtp2Int:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTPS2DQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*556754*/        /*SwitchType*/ 41, MVT::v8f64,// ->556797
/*556756*/          OPC_MoveParent,
/*556757*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->556777
/*556760*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556762*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556765*/            OPC_EmitMergeInputChains1_0,
/*556766*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2DQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*556777*/          /*SwitchType*/ 17, MVT::v8i64,// ->556796
/*556779*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*556781*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*556784*/            OPC_EmitMergeInputChains1_0,
/*556785*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*556796*/          0, // EndSwitchType
/*556797*/        0, // EndSwitchType
/*556798*/      0, // EndSwitchOpcode
/*556799*/    /*Scope*/ 107|128,1/*235*/, /*->557036*/
/*556801*/      OPC_RecordChild0, // #0 = $src
/*556802*/      OPC_Scope, 60, /*->556864*/ // 6 children in Scope
/*556804*/        OPC_CheckChild0Type, MVT::v4f32,
/*556806*/        OPC_SwitchType /*3 cases */, 32, MVT::v4i32,// ->556841
/*556809*/          OPC_Scope, 9, /*->556820*/ // 3 children in Scope
/*556811*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*556813*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VCVTPS2DQrr:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src)
/*556820*/          /*Scope*/ 9, /*->556830*/
/*556821*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*556823*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPS2DQrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (CVTPS2DQrr:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src)
/*556830*/          /*Scope*/ 9, /*->556840*/
/*556831*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556833*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ128rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VCVTPS2DQZ128rr:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src)
/*556840*/          0, /*End of Scope*/
/*556841*/        /*SwitchType*/ 9, MVT::v2i64,// ->556852
/*556843*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556845*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2Int:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2QQZ128rr:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src)
/*556852*/        /*SwitchType*/ 9, MVT::v4i64,// ->556863
/*556854*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556856*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2Int:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2QQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src)
/*556863*/        0, // EndSwitchType
/*556864*/      /*Scope*/ 39, /*->556904*/
/*556865*/        OPC_CheckChild0Type, MVT::v8f32,
/*556867*/        OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->556892
/*556870*/          OPC_Scope, 9, /*->556881*/ // 2 children in Scope
/*556872*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*556874*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtp2Int:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                      // Dst: (VCVTPS2DQYrr:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src)
/*556881*/          /*Scope*/ 9, /*->556891*/
/*556882*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtp2Int:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                      // Dst: (VCVTPS2DQZ256rr:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src)
/*556891*/          0, /*End of Scope*/
/*556892*/        /*SwitchType*/ 9, MVT::v8i64,// ->556903
/*556894*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*556896*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2Int:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2QQZrr:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*556903*/        0, // EndSwitchType
/*556904*/      /*Scope*/ 49, /*->556954*/
/*556905*/        OPC_CheckChild0Type, MVT::v2f64,
/*556907*/        OPC_SwitchType /*2 cases */, 32, MVT::v4i32,// ->556942
/*556910*/          OPC_Scope, 9, /*->556921*/ // 3 children in Scope
/*556912*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*556914*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VCVTPD2DQrr:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src)
/*556921*/          /*Scope*/ 9, /*->556931*/
/*556922*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*556924*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPD2DQrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (CVTPD2DQrr:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src)
/*556931*/          /*Scope*/ 9, /*->556941*/
/*556932*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556934*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VCVTPD2DQZ128rr:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src)
/*556941*/          0, /*End of Scope*/
/*556942*/        /*SwitchType*/ 9, MVT::v2i64,// ->556953
/*556944*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556946*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2Int:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2QQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*556953*/        0, // EndSwitchType
/*556954*/      /*Scope*/ 39, /*->556994*/
/*556955*/        OPC_CheckChild0Type, MVT::v4f64,
/*556957*/        OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->556982
/*556960*/          OPC_Scope, 9, /*->556971*/ // 2 children in Scope
/*556962*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*556964*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQYrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTPD2DQYrr:{ *:[v4i32] } VR256:{ *:[v4f64] }:$src)
/*556971*/          /*Scope*/ 9, /*->556981*/
/*556972*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*556974*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ256rr), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTPD2DQZ256rr:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src)
/*556981*/          0, /*End of Scope*/
/*556982*/        /*SwitchType*/ 9, MVT::v4i64,// ->556993
/*556984*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556986*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2Int:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2QQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src)
/*556993*/        0, // EndSwitchType
/*556994*/      /*Scope*/ 13, /*->557008*/
/*556995*/        OPC_CheckChild0Type, MVT::v16f32,
/*556997*/        OPC_CheckType, MVT::v16i32,
/*556999*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557001*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvtp2Int:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VCVTPS2DQZrr:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*557008*/      /*Scope*/ 26, /*->557035*/
/*557009*/        OPC_CheckChild0Type, MVT::v8f64,
/*557011*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->557023
/*557014*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557016*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2Int:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2DQZrr:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*557023*/        /*SwitchType*/ 9, MVT::v8i64,// ->557034
/*557025*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*557027*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2Int:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2QQZrr:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*557034*/        0, // EndSwitchType
/*557035*/      0, /*End of Scope*/
/*557036*/    0, /*End of Scope*/
/*557037*/  /*SwitchOpcode*/ 89|128,5/*729*/, TARGET_VAL(X86ISD::CVTP2UI),// ->557770
/*557041*/    OPC_Scope, 48|128,4/*560*/, /*->557604*/ // 2 children in Scope
/*557044*/      OPC_MoveChild0,
/*557045*/      OPC_SwitchOpcode /*2 cases */, 26|128,2/*282*/, TARGET_VAL(X86ISD::VBROADCAST),// ->557332
/*557050*/        OPC_MoveChild0,
/*557051*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557054*/        OPC_RecordMemRef,
/*557055*/        OPC_RecordNode, // #0 = 'ld' chained node
/*557056*/        OPC_CheckFoldableChainNode,
/*557057*/        OPC_RecordChild1, // #1 = $src
/*557058*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557060*/        OPC_CheckPredicate, 9, // Predicate_load
/*557062*/        OPC_SwitchType /*2 cases */, 2|128,1/*130*/, MVT::f32,// ->557196
/*557066*/          OPC_MoveParent,
/*557067*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->557090
/*557070*/            OPC_MoveParent,
/*557071*/            OPC_CheckType, MVT::v16i32,
/*557073*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557075*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557078*/            OPC_EmitMergeInputChains1_0,
/*557079*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v16i32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VCVTPS2UDQZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*557090*/          /*SwitchType*/ 60, MVT::v4f32,// ->557152
/*557092*/            OPC_MoveParent,
/*557093*/            OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->557113
/*557096*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557098*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557101*/              OPC_EmitMergeInputChains1_0,
/*557102*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPS2UDQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*557113*/            /*SwitchType*/ 17, MVT::v2i64,// ->557132
/*557115*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557117*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557120*/              OPC_EmitMergeInputChains1_0,
/*557121*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v2i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPS2UQQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*557132*/            /*SwitchType*/ 17, MVT::v4i64,// ->557151
/*557134*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557136*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557139*/              OPC_EmitMergeInputChains1_0,
/*557140*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPS2UQQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*557151*/            0, // EndSwitchType
/*557152*/          /*SwitchType*/ 41, MVT::v8f32,// ->557195
/*557154*/            OPC_MoveParent,
/*557155*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->557175
/*557158*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557160*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557163*/              OPC_EmitMergeInputChains1_0,
/*557164*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPS2UDQZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*557175*/            /*SwitchType*/ 17, MVT::v8i64,// ->557194
/*557177*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*557179*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557182*/              OPC_EmitMergeInputChains1_0,
/*557183*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPS2UQQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*557194*/            0, // EndSwitchType
/*557195*/          0, // EndSwitchType
/*557196*/        /*SwitchType*/ 4|128,1/*132*/, MVT::f64,// ->557331
/*557199*/          OPC_MoveParent,
/*557200*/          OPC_SwitchType /*3 cases */, 41, MVT::v8f64,// ->557244
/*557203*/            OPC_MoveParent,
/*557204*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->557224
/*557207*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557209*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557212*/              OPC_EmitMergeInputChains1_0,
/*557213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v8i32] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2UDQZrmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*557224*/            /*SwitchType*/ 17, MVT::v8i64,// ->557243
/*557226*/              OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*557228*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557231*/              OPC_EmitMergeInputChains1_0,
/*557232*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v8i64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2UQQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*557243*/            0, // EndSwitchType
/*557244*/          /*SwitchType*/ 41, MVT::v2f64,// ->557287
/*557246*/            OPC_MoveParent,
/*557247*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->557267
/*557250*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557252*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557255*/              OPC_EmitMergeInputChains1_0,
/*557256*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2UDQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*557267*/            /*SwitchType*/ 17, MVT::v2i64,// ->557286
/*557269*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557271*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557274*/              OPC_EmitMergeInputChains1_0,
/*557275*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v2i64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2UQQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*557286*/            0, // EndSwitchType
/*557287*/          /*SwitchType*/ 41, MVT::v4f64,// ->557330
/*557289*/            OPC_MoveParent,
/*557290*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->557310
/*557293*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557295*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557298*/              OPC_EmitMergeInputChains1_0,
/*557299*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2UDQZ256rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*557310*/            /*SwitchType*/ 17, MVT::v4i64,// ->557329
/*557312*/              OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557314*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557317*/              OPC_EmitMergeInputChains1_0,
/*557318*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v4i64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                        // Dst: (VCVTPD2UQQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*557329*/            0, // EndSwitchType
/*557330*/          0, // EndSwitchType
/*557331*/        0, // EndSwitchType
/*557332*/      /*SwitchOpcode*/ 11|128,2/*267*/, TARGET_VAL(ISD::LOAD),// ->557603
/*557336*/        OPC_RecordMemRef,
/*557337*/        OPC_RecordNode, // #0 = 'ld' chained node
/*557338*/        OPC_RecordChild1, // #1 = $src
/*557339*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557341*/        OPC_CheckPredicate, 9, // Predicate_load
/*557343*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*557345*/        OPC_SwitchType /*6 cases */, 20, MVT::v16f32,// ->557368
/*557348*/          OPC_MoveParent,
/*557349*/          OPC_CheckType, MVT::v16i32,
/*557351*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557353*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557356*/          OPC_EmitMergeInputChains1_0,
/*557357*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtp2UInt:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTPS2UDQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*557368*/        /*SwitchType*/ 60, MVT::v4f32,// ->557430
/*557370*/          OPC_MoveParent,
/*557371*/          OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->557391
/*557374*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557376*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557379*/            OPC_EmitMergeInputChains1_0,
/*557380*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPS2UDQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*557391*/          /*SwitchType*/ 17, MVT::v2i64,// ->557410
/*557393*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557395*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557398*/            OPC_EmitMergeInputChains1_0,
/*557399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v2i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPS2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*557410*/          /*SwitchType*/ 17, MVT::v4i64,// ->557429
/*557412*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557414*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557417*/            OPC_EmitMergeInputChains1_0,
/*557418*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPS2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*557429*/          0, // EndSwitchType
/*557430*/        /*SwitchType*/ 41, MVT::v8f32,// ->557473
/*557432*/          OPC_MoveParent,
/*557433*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->557453
/*557436*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557438*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557441*/            OPC_EmitMergeInputChains1_0,
/*557442*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPS2UDQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*557453*/          /*SwitchType*/ 17, MVT::v8i64,// ->557472
/*557455*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*557457*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557460*/            OPC_EmitMergeInputChains1_0,
/*557461*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPS2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*557472*/          0, // EndSwitchType
/*557473*/        /*SwitchType*/ 41, MVT::v8f64,// ->557516
/*557475*/          OPC_MoveParent,
/*557476*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->557496
/*557479*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557481*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557484*/            OPC_EmitMergeInputChains1_0,
/*557485*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2UDQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*557496*/          /*SwitchType*/ 17, MVT::v8i64,// ->557515
/*557498*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*557500*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557503*/            OPC_EmitMergeInputChains1_0,
/*557504*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*557515*/          0, // EndSwitchType
/*557516*/        /*SwitchType*/ 41, MVT::v2f64,// ->557559
/*557518*/          OPC_MoveParent,
/*557519*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->557539
/*557522*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557524*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557527*/            OPC_EmitMergeInputChains1_0,
/*557528*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2UDQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*557539*/          /*SwitchType*/ 17, MVT::v2i64,// ->557558
/*557541*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557543*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557546*/            OPC_EmitMergeInputChains1_0,
/*557547*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*557558*/          0, // EndSwitchType
/*557559*/        /*SwitchType*/ 41, MVT::v4f64,// ->557602
/*557561*/          OPC_MoveParent,
/*557562*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->557582
/*557565*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557567*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557570*/            OPC_EmitMergeInputChains1_0,
/*557571*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2UDQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*557582*/          /*SwitchType*/ 17, MVT::v4i64,// ->557601
/*557584*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557586*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*557589*/            OPC_EmitMergeInputChains1_0,
/*557590*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VCVTPD2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*557601*/          0, // EndSwitchType
/*557602*/        0, // EndSwitchType
/*557603*/      0, // EndSwitchOpcode
/*557604*/    /*Scope*/ 35|128,1/*163*/, /*->557769*/
/*557606*/      OPC_RecordChild0, // #0 = $src
/*557607*/      OPC_Scope, 13, /*->557622*/ // 6 children in Scope
/*557609*/        OPC_CheckChild0Type, MVT::v16f32,
/*557611*/        OPC_CheckType, MVT::v16i32,
/*557613*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557615*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvtp2UInt:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VCVTPS2UDQZrr:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*557622*/      /*Scope*/ 37, /*->557660*/
/*557623*/        OPC_CheckChild0Type, MVT::v4f32,
/*557625*/        OPC_SwitchType /*3 cases */, 9, MVT::v4i32,// ->557637
/*557628*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557630*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ128rr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2UInt:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2UDQZ128rr:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src)
/*557637*/        /*SwitchType*/ 9, MVT::v2i64,// ->557648
/*557639*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557641*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2UInt:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2UQQZ128rr:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src)
/*557648*/        /*SwitchType*/ 9, MVT::v4i64,// ->557659
/*557650*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557652*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2UInt:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2UQQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src)
/*557659*/        0, // EndSwitchType
/*557660*/      /*Scope*/ 26, /*->557687*/
/*557661*/        OPC_CheckChild0Type, MVT::v8f32,
/*557663*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->557675
/*557666*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557668*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ256rr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2UInt:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2UDQZ256rr:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src)
/*557675*/        /*SwitchType*/ 9, MVT::v8i64,// ->557686
/*557677*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*557679*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2UInt:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2UQQZrr:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*557686*/        0, // EndSwitchType
/*557687*/      /*Scope*/ 26, /*->557714*/
/*557688*/        OPC_CheckChild0Type, MVT::v8f64,
/*557690*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->557702
/*557693*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557695*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2UInt:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2UDQZrr:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*557702*/        /*SwitchType*/ 9, MVT::v8i64,// ->557713
/*557704*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*557706*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2UInt:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2UQQZrr:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*557713*/        0, // EndSwitchType
/*557714*/      /*Scope*/ 26, /*->557741*/
/*557715*/        OPC_CheckChild0Type, MVT::v2f64,
/*557717*/        OPC_SwitchType /*2 cases */, 9, MVT::v4i32,// ->557729
/*557720*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557722*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2UInt:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2UDQZ128rr:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src)
/*557729*/        /*SwitchType*/ 9, MVT::v2i64,// ->557740
/*557731*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557733*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ128rr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2UInt:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2UQQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*557740*/        0, // EndSwitchType
/*557741*/      /*Scope*/ 26, /*->557768*/
/*557742*/        OPC_CheckChild0Type, MVT::v4f64,
/*557744*/        OPC_SwitchType /*2 cases */, 9, MVT::v4i32,// ->557756
/*557747*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*557749*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ256rr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2UInt:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2UDQZ256rr:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src)
/*557756*/        /*SwitchType*/ 9, MVT::v4i64,// ->557767
/*557758*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*557760*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtp2UInt:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VCVTPD2UQQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src)
/*557767*/        0, // EndSwitchType
/*557768*/      0, /*End of Scope*/
/*557769*/    0, /*End of Scope*/
/*557770*/  /*SwitchOpcode*/ 115|128,4/*627*/, TARGET_VAL(X86ISD::EXPAND),// ->558401
/*557774*/    OPC_Scope, 28|128,2/*284*/, /*->558061*/ // 4 children in Scope
/*557777*/      OPC_MoveChild0,
/*557778*/      OPC_SwitchOpcode /*2 cases */, 77|128,1/*205*/, TARGET_VAL(ISD::BITCAST),// ->557988
/*557783*/        OPC_MoveChild0,
/*557784*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557787*/        OPC_RecordMemRef,
/*557788*/        OPC_RecordNode, // #0 = 'ld' chained node
/*557789*/        OPC_CheckFoldableChainNode,
/*557790*/        OPC_RecordChild1, // #1 = $src1
/*557791*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557793*/        OPC_CheckPredicate, 9, // Predicate_load
/*557795*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*557797*/        OPC_SwitchType /*3 cases */, 61, MVT::v8i64,// ->557861
/*557800*/          OPC_MoveParent,
/*557801*/          OPC_MoveParent,
/*557802*/          OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->557822
/*557805*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557807*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*557810*/            OPC_EmitMergeInputChains1_0,
/*557811*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86expand:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPEXPANDDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*557822*/          /*SwitchType*/ 17, MVT::v64i8,// ->557841
/*557824*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*557826*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*557829*/            OPC_EmitMergeInputChains1_0,
/*557830*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86expand:{ *:[v64i8] } (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPEXPANDBZrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)
/*557841*/          /*SwitchType*/ 17, MVT::v32i16,// ->557860
/*557843*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*557845*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*557848*/            OPC_EmitMergeInputChains1_0,
/*557849*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86expand:{ *:[v32i16] } (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPEXPANDWZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)
/*557860*/          0, // EndSwitchType
/*557861*/        /*SwitchType*/ 61, MVT::v4i64,// ->557924
/*557863*/          OPC_MoveParent,
/*557864*/          OPC_MoveParent,
/*557865*/          OPC_SwitchType /*3 cases */, 17, MVT::v8i32,// ->557885
/*557868*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*557870*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*557873*/            OPC_EmitMergeInputChains1_0,
/*557874*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86expand:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPEXPANDDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*557885*/          /*SwitchType*/ 17, MVT::v32i8,// ->557904
/*557887*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*557889*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*557892*/            OPC_EmitMergeInputChains1_0,
/*557893*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86expand:{ *:[v32i8] } (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPEXPANDBZ256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)
/*557904*/          /*SwitchType*/ 17, MVT::v16i16,// ->557923
/*557906*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*557908*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*557911*/            OPC_EmitMergeInputChains1_0,
/*557912*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86expand:{ *:[v16i16] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPEXPANDWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)
/*557923*/          0, // EndSwitchType
/*557924*/        /*SwitchType*/ 61, MVT::v2i64,// ->557987
/*557926*/          OPC_MoveParent,
/*557927*/          OPC_MoveParent,
/*557928*/          OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->557948
/*557931*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*557933*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*557936*/            OPC_EmitMergeInputChains1_0,
/*557937*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86expand:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPEXPANDDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*557948*/          /*SwitchType*/ 17, MVT::v16i8,// ->557967
/*557950*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*557952*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*557955*/            OPC_EmitMergeInputChains1_0,
/*557956*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86expand:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPEXPANDBZ128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)
/*557967*/          /*SwitchType*/ 17, MVT::v8i16,// ->557986
/*557969*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*557971*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*557974*/            OPC_EmitMergeInputChains1_0,
/*557975*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86expand:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPEXPANDWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)
/*557986*/          0, // EndSwitchType
/*557987*/        0, // EndSwitchType
/*557988*/      /*SwitchOpcode*/ 69, TARGET_VAL(ISD::LOAD),// ->558060
/*557991*/        OPC_RecordMemRef,
/*557992*/        OPC_RecordNode, // #0 = 'ld' chained node
/*557993*/        OPC_RecordChild1, // #1 = $src1
/*557994*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557996*/        OPC_CheckPredicate, 9, // Predicate_load
/*557998*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*558000*/        OPC_MoveParent,
/*558001*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->558021
/*558004*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558006*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558009*/          OPC_EmitMergeInputChains1_0,
/*558010*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86expand:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPEXPANDQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*558021*/        /*SwitchType*/ 17, MVT::v4i64,// ->558040
/*558023*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558025*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558028*/          OPC_EmitMergeInputChains1_0,
/*558029*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86expand:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPEXPANDQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*558040*/        /*SwitchType*/ 17, MVT::v2i64,// ->558059
/*558042*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558044*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558047*/          OPC_EmitMergeInputChains1_0,
/*558048*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86expand:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPEXPANDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*558059*/        0, // EndSwitchType
/*558060*/      0, // EndSwitchOpcode
/*558061*/    /*Scope*/ 7|128,1/*135*/, /*->558198*/
/*558063*/      OPC_RecordChild0, // #0 = $src1
/*558064*/      OPC_SwitchType /*12 cases */, 9, MVT::v16i32,// ->558076
/*558067*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558069*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1)
/*558076*/      /*SwitchType*/ 9, MVT::v8i32,// ->558087
/*558078*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558080*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1)
/*558087*/      /*SwitchType*/ 9, MVT::v4i32,// ->558098
/*558089*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558091*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1)
/*558098*/      /*SwitchType*/ 9, MVT::v8i64,// ->558109
/*558100*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558102*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1)
/*558109*/      /*SwitchType*/ 9, MVT::v4i64,// ->558120
/*558111*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558113*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rr), 0,
                      MVT::v4i64, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1)
/*558120*/      /*SwitchType*/ 9, MVT::v2i64,// ->558131
/*558122*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558124*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1)
/*558131*/      /*SwitchType*/ 9, MVT::v64i8,// ->558142
/*558133*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*558135*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrr), 0,
                      MVT::v64i8, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1)
/*558142*/      /*SwitchType*/ 9, MVT::v32i8,// ->558153
/*558144*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*558146*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rr), 0,
                      MVT::v32i8, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1)
/*558153*/      /*SwitchType*/ 9, MVT::v16i8,// ->558164
/*558155*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*558157*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1)
/*558164*/      /*SwitchType*/ 9, MVT::v32i16,// ->558175
/*558166*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*558168*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrr), 0,
                      MVT::v32i16, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1)
/*558175*/      /*SwitchType*/ 9, MVT::v16i16,// ->558186
/*558177*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*558179*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rr), 0,
                      MVT::v16i16, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1)
/*558186*/      /*SwitchType*/ 9, MVT::v8i16,// ->558197
/*558188*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*558190*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1) - Complexity = 3
                  // Dst: (VPEXPANDWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1)
/*558197*/      0, // EndSwitchType
/*558198*/    /*Scope*/ 2|128,1/*130*/, /*->558330*/
/*558200*/      OPC_MoveChild0,
/*558201*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*558204*/      OPC_RecordMemRef,
/*558205*/      OPC_RecordNode, // #0 = 'ld' chained node
/*558206*/      OPC_RecordChild1, // #1 = $src1
/*558207*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*558209*/      OPC_CheckPredicate, 9, // Predicate_load
/*558211*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*558213*/      OPC_MoveParent,
/*558214*/      OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->558234
/*558217*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558219*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558222*/        OPC_EmitMergeInputChains1_0,
/*558223*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86expand:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VEXPANDPSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)
/*558234*/      /*SwitchType*/ 17, MVT::v8f32,// ->558253
/*558236*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558238*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558241*/        OPC_EmitMergeInputChains1_0,
/*558242*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86expand:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VEXPANDPSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)
/*558253*/      /*SwitchType*/ 17, MVT::v4f32,// ->558272
/*558255*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558257*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558260*/        OPC_EmitMergeInputChains1_0,
/*558261*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86expand:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VEXPANDPSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)
/*558272*/      /*SwitchType*/ 17, MVT::v8f64,// ->558291
/*558274*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558276*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558279*/        OPC_EmitMergeInputChains1_0,
/*558280*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86expand:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VEXPANDPDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)
/*558291*/      /*SwitchType*/ 17, MVT::v4f64,// ->558310
/*558293*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558295*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558298*/        OPC_EmitMergeInputChains1_0,
/*558299*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86expand:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VEXPANDPDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)
/*558310*/      /*SwitchType*/ 17, MVT::v2f64,// ->558329
/*558312*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558314*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558317*/        OPC_EmitMergeInputChains1_0,
/*558318*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86expand:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VEXPANDPDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)
/*558329*/      0, // EndSwitchType
/*558330*/    /*Scope*/ 69, /*->558400*/
/*558331*/      OPC_RecordChild0, // #0 = $src1
/*558332*/      OPC_SwitchType /*6 cases */, 9, MVT::v16f32,// ->558344
/*558335*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558337*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1) - Complexity = 3
                  // Dst: (VEXPANDPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1)
/*558344*/      /*SwitchType*/ 9, MVT::v8f32,// ->558355
/*558346*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558348*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rr), 0,
                      MVT::v8f32, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1) - Complexity = 3
                  // Dst: (VEXPANDPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1)
/*558355*/      /*SwitchType*/ 9, MVT::v4f32,// ->558366
/*558357*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558359*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rr), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1) - Complexity = 3
                  // Dst: (VEXPANDPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1)
/*558366*/      /*SwitchType*/ 9, MVT::v8f64,// ->558377
/*558368*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558370*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrr), 0,
                      MVT::v8f64, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1) - Complexity = 3
                  // Dst: (VEXPANDPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1)
/*558377*/      /*SwitchType*/ 9, MVT::v4f64,// ->558388
/*558379*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558381*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rr), 0,
                      MVT::v4f64, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1) - Complexity = 3
                  // Dst: (VEXPANDPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1)
/*558388*/      /*SwitchType*/ 9, MVT::v2f64,// ->558399
/*558390*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558392*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rr), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (X86expand:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1) - Complexity = 3
                  // Dst: (VEXPANDPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1)
/*558399*/      0, // EndSwitchType
/*558400*/    0, /*End of Scope*/
/*558401*/  /*SwitchOpcode*/ 127|128,2/*383*/, TARGET_VAL(X86ISD::CONFLICT),// ->558788
/*558405*/    OPC_Scope, 53|128,2/*309*/, /*->558717*/ // 2 children in Scope
/*558408*/      OPC_MoveChild0,
/*558409*/      OPC_SwitchOpcode /*3 cases */, 14|128,1/*142*/, TARGET_VAL(X86ISD::VBROADCAST),// ->558556
/*558414*/        OPC_MoveChild0,
/*558415*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*558418*/        OPC_RecordMemRef,
/*558419*/        OPC_RecordNode, // #0 = 'ld' chained node
/*558420*/        OPC_CheckFoldableChainNode,
/*558421*/        OPC_RecordChild1, // #1 = $src1
/*558422*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*558424*/        OPC_SwitchType /*2 cases */, 63, MVT::i64,// ->558490
/*558427*/          OPC_CheckPredicate, 9, // Predicate_load
/*558429*/          OPC_MoveParent,
/*558430*/          OPC_MoveParent,
/*558431*/          OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->558451
/*558434*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*558436*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558439*/            OPC_EmitMergeInputChains1_0,
/*558440*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v8i64] } (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPCONFLICTQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*558451*/          /*SwitchType*/ 17, MVT::v4i64,// ->558470
/*558453*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558455*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558458*/            OPC_EmitMergeInputChains1_0,
/*558459*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v4i64] } (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPCONFLICTQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*558470*/          /*SwitchType*/ 17, MVT::v2i64,// ->558489
/*558472*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558474*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558477*/            OPC_EmitMergeInputChains1_0,
/*558478*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v2i64] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPCONFLICTQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*558489*/          0, // EndSwitchType
/*558490*/        /*SwitchType*/ 63, MVT::i32,// ->558555
/*558492*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*558494*/          OPC_MoveParent,
/*558495*/          OPC_MoveParent,
/*558496*/          OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->558516
/*558499*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*558501*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558504*/            OPC_EmitMergeInputChains1_0,
/*558505*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v16i32] } (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPCONFLICTDZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*558516*/          /*SwitchType*/ 17, MVT::v8i32,// ->558535
/*558518*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558520*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558523*/            OPC_EmitMergeInputChains1_0,
/*558524*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v8i32] } (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPCONFLICTDZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*558535*/          /*SwitchType*/ 17, MVT::v4i32,// ->558554
/*558537*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558539*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558542*/            OPC_EmitMergeInputChains1_0,
/*558543*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v4i32] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPCONFLICTDZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*558554*/          0, // EndSwitchType
/*558555*/        0, // EndSwitchType
/*558556*/      /*SwitchOpcode*/ 85, TARGET_VAL(ISD::BITCAST),// ->558644
/*558559*/        OPC_MoveChild0,
/*558560*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*558563*/        OPC_RecordMemRef,
/*558564*/        OPC_RecordNode, // #0 = 'ld' chained node
/*558565*/        OPC_CheckFoldableChainNode,
/*558566*/        OPC_RecordChild1, // #1 = $src1
/*558567*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*558569*/        OPC_CheckPredicate, 9, // Predicate_load
/*558571*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*558573*/        OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->558597
/*558576*/          OPC_MoveParent,
/*558577*/          OPC_MoveParent,
/*558578*/          OPC_CheckType, MVT::v16i32,
/*558580*/          OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*558582*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558585*/          OPC_EmitMergeInputChains1_0,
/*558586*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Conflict:{ *:[v16i32] } (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPCONFLICTDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*558597*/        /*SwitchType*/ 21, MVT::v4i64,// ->558620
/*558599*/          OPC_MoveParent,
/*558600*/          OPC_MoveParent,
/*558601*/          OPC_CheckType, MVT::v8i32,
/*558603*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558605*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558608*/          OPC_EmitMergeInputChains1_0,
/*558609*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Conflict:{ *:[v8i32] } (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPCONFLICTDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*558620*/        /*SwitchType*/ 21, MVT::v2i64,// ->558643
/*558622*/          OPC_MoveParent,
/*558623*/          OPC_MoveParent,
/*558624*/          OPC_CheckType, MVT::v4i32,
/*558626*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558628*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558631*/          OPC_EmitMergeInputChains1_0,
/*558632*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Conflict:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPCONFLICTDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*558643*/        0, // EndSwitchType
/*558644*/      /*SwitchOpcode*/ 69, TARGET_VAL(ISD::LOAD),// ->558716
/*558647*/        OPC_RecordMemRef,
/*558648*/        OPC_RecordNode, // #0 = 'ld' chained node
/*558649*/        OPC_RecordChild1, // #1 = $src1
/*558650*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*558652*/        OPC_CheckPredicate, 9, // Predicate_load
/*558654*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*558656*/        OPC_MoveParent,
/*558657*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->558677
/*558660*/          OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*558662*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558665*/          OPC_EmitMergeInputChains1_0,
/*558666*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Conflict:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPCONFLICTQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*558677*/        /*SwitchType*/ 17, MVT::v4i64,// ->558696
/*558679*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558681*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558684*/          OPC_EmitMergeInputChains1_0,
/*558685*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Conflict:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPCONFLICTQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*558696*/        /*SwitchType*/ 17, MVT::v2i64,// ->558715
/*558698*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558700*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*558703*/          OPC_EmitMergeInputChains1_0,
/*558704*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Conflict:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPCONFLICTQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*558715*/        0, // EndSwitchType
/*558716*/      0, // EndSwitchOpcode
/*558717*/    /*Scope*/ 69, /*->558787*/
/*558718*/      OPC_RecordChild0, // #0 = $src1
/*558719*/      OPC_SwitchType /*6 cases */, 9, MVT::v8i64,// ->558731
/*558722*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*558724*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (X86Conflict:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPCONFLICTQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1)
/*558731*/      /*SwitchType*/ 9, MVT::v4i64,// ->558742
/*558733*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558735*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ256rr), 0,
                      MVT::v4i64, 1/*#Ops*/, 0, 
                  // Src: (X86Conflict:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPCONFLICTQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1)
/*558742*/      /*SwitchType*/ 9, MVT::v2i64,// ->558753
/*558744*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558746*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ128rr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (X86Conflict:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPCONFLICTQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1)
/*558753*/      /*SwitchType*/ 9, MVT::v16i32,// ->558764
/*558755*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*558757*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (X86Conflict:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                  // Dst: (VPCONFLICTDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1)
/*558764*/      /*SwitchType*/ 9, MVT::v8i32,// ->558775
/*558766*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558768*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86Conflict:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                  // Dst: (VPCONFLICTDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1)
/*558775*/      /*SwitchType*/ 9, MVT::v4i32,// ->558786
/*558777*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*558779*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86Conflict:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                  // Dst: (VPCONFLICTDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1)
/*558786*/      0, // EndSwitchType
/*558787*/    0, /*End of Scope*/
/*558788*/  /*SwitchOpcode*/ 19|128,4/*531*/, TARGET_VAL(X86ISD::VSHLDV),// ->559323
/*558792*/    OPC_RecordChild0, // #0 = $src1
/*558793*/    OPC_RecordChild1, // #1 = $src2
/*558794*/    OPC_Scope, 20|128,3/*404*/, /*->559201*/ // 2 children in Scope
/*558797*/      OPC_MoveChild2,
/*558798*/      OPC_SwitchOpcode /*3 cases */, 32|128,1/*160*/, TARGET_VAL(ISD::BITCAST),// ->558963
/*558803*/        OPC_MoveChild0,
/*558804*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*558807*/        OPC_RecordMemRef,
/*558808*/        OPC_RecordNode, // #2 = 'ld' chained node
/*558809*/        OPC_CheckFoldableChainNode,
/*558810*/        OPC_RecordChild1, // #3 = $src3
/*558811*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*558813*/        OPC_CheckPredicate, 9, // Predicate_load
/*558815*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*558817*/        OPC_SwitchType /*3 cases */, 46, MVT::v8i64,// ->558866
/*558820*/          OPC_MoveParent,
/*558821*/          OPC_MoveParent,
/*558822*/          OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->558844
/*558825*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*558827*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558830*/            OPC_EmitMergeInputChains1_2,
/*558831*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHLDVWZm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558844*/          /*SwitchType*/ 19, MVT::v16i32,// ->558865
/*558846*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*558848*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558851*/            OPC_EmitMergeInputChains1_2,
/*558852*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHLDVDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558865*/          0, // EndSwitchType
/*558866*/        /*SwitchType*/ 46, MVT::v4i64,// ->558914
/*558868*/          OPC_MoveParent,
/*558869*/          OPC_MoveParent,
/*558870*/          OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->558892
/*558873*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*558875*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558878*/            OPC_EmitMergeInputChains1_2,
/*558879*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHLDVWZ256m:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558892*/          /*SwitchType*/ 19, MVT::v8i32,// ->558913
/*558894*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*558896*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558899*/            OPC_EmitMergeInputChains1_2,
/*558900*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHLDVDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558913*/          0, // EndSwitchType
/*558914*/        /*SwitchType*/ 46, MVT::v2i64,// ->558962
/*558916*/          OPC_MoveParent,
/*558917*/          OPC_MoveParent,
/*558918*/          OPC_SwitchType /*2 cases */, 19, MVT::v8i16,// ->558940
/*558921*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*558923*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558926*/            OPC_EmitMergeInputChains1_2,
/*558927*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHLDVWZ128m:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558940*/          /*SwitchType*/ 19, MVT::v4i32,// ->558961
/*558942*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*558944*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558947*/            OPC_EmitMergeInputChains1_2,
/*558948*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHLDVDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558961*/          0, // EndSwitchType
/*558962*/        0, // EndSwitchType
/*558963*/      /*SwitchOpcode*/ 26|128,1/*154*/, TARGET_VAL(X86ISD::VBROADCAST),// ->559121
/*558967*/        OPC_MoveChild0,
/*558968*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*558971*/        OPC_RecordMemRef,
/*558972*/        OPC_RecordNode, // #2 = 'ld' chained node
/*558973*/        OPC_CheckFoldableChainNode,
/*558974*/        OPC_RecordChild1, // #3 = $src3
/*558975*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*558977*/        OPC_SwitchType /*2 cases */, 69, MVT::i32,// ->559049
/*558980*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*558982*/          OPC_MoveParent,
/*558983*/          OPC_MoveParent,
/*558984*/          OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->559006
/*558987*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*558989*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558992*/            OPC_EmitMergeInputChains1_2,
/*558993*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPSHLDVDZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559006*/          /*SwitchType*/ 19, MVT::v8i32,// ->559027
/*559008*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559010*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559013*/            OPC_EmitMergeInputChains1_2,
/*559014*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPSHLDVDZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559027*/          /*SwitchType*/ 19, MVT::v4i32,// ->559048
/*559029*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559034*/            OPC_EmitMergeInputChains1_2,
/*559035*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPSHLDVDZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559048*/          0, // EndSwitchType
/*559049*/        /*SwitchType*/ 69, MVT::i64,// ->559120
/*559051*/          OPC_CheckPredicate, 9, // Predicate_load
/*559053*/          OPC_MoveParent,
/*559054*/          OPC_MoveParent,
/*559055*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->559077
/*559058*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559060*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559063*/            OPC_EmitMergeInputChains1_2,
/*559064*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPSHLDVQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559077*/          /*SwitchType*/ 19, MVT::v4i64,// ->559098
/*559079*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559081*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559084*/            OPC_EmitMergeInputChains1_2,
/*559085*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPSHLDVQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559098*/          /*SwitchType*/ 19, MVT::v2i64,// ->559119
/*559100*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559102*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559105*/            OPC_EmitMergeInputChains1_2,
/*559106*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShldv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPSHLDVQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559119*/          0, // EndSwitchType
/*559120*/        0, // EndSwitchType
/*559121*/      /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->559200
/*559124*/        OPC_RecordMemRef,
/*559125*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559126*/        OPC_CheckFoldableChainNode,
/*559127*/        OPC_RecordChild1, // #3 = $src3
/*559128*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559130*/        OPC_CheckPredicate, 9, // Predicate_load
/*559132*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*559134*/        OPC_MoveParent,
/*559135*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->559157
/*559138*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559140*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559143*/          OPC_EmitMergeInputChains1_2,
/*559144*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VShldv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSHLDVQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559157*/        /*SwitchType*/ 19, MVT::v4i64,// ->559178
/*559159*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559161*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559164*/          OPC_EmitMergeInputChains1_2,
/*559165*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VShldv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSHLDVQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559178*/        /*SwitchType*/ 19, MVT::v2i64,// ->559199
/*559180*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559182*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559185*/          OPC_EmitMergeInputChains1_2,
/*559186*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VShldv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSHLDVQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559199*/        0, // EndSwitchType
/*559200*/      0, // EndSwitchOpcode
/*559201*/    /*Scope*/ 120, /*->559322*/
/*559202*/      OPC_RecordChild2, // #2 = $src3
/*559203*/      OPC_SwitchType /*9 cases */, 11, MVT::v32i16,// ->559217
/*559206*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559208*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZr), 0,
                      MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShldv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3) - Complexity = 3
                  // Dst: (VPSHLDVWZr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*559217*/      /*SwitchType*/ 11, MVT::v16i16,// ->559230
/*559219*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559221*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ256r), 0,
                      MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShldv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3) - Complexity = 3
                  // Dst: (VPSHLDVWZ256r:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*559230*/      /*SwitchType*/ 11, MVT::v8i16,// ->559243
/*559232*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559234*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVWZ128r), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShldv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3) - Complexity = 3
                  // Dst: (VPSHLDVWZ128r:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*559243*/      /*SwitchType*/ 11, MVT::v16i32,// ->559256
/*559245*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559247*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZr), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShldv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3) - Complexity = 3
                  // Dst: (VPSHLDVDZr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*559256*/      /*SwitchType*/ 11, MVT::v8i32,// ->559269
/*559258*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559260*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ256r), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShldv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3) - Complexity = 3
                  // Dst: (VPSHLDVDZ256r:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*559269*/      /*SwitchType*/ 11, MVT::v4i32,// ->559282
/*559271*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559273*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVDZ128r), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShldv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3) - Complexity = 3
                  // Dst: (VPSHLDVDZ128r:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*559282*/      /*SwitchType*/ 11, MVT::v8i64,// ->559295
/*559284*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559286*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZr), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShldv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3) - Complexity = 3
                  // Dst: (VPSHLDVQZr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*559295*/      /*SwitchType*/ 11, MVT::v4i64,// ->559308
/*559297*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559299*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ256r), 0,
                      MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShldv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3) - Complexity = 3
                  // Dst: (VPSHLDVQZ256r:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*559308*/      /*SwitchType*/ 11, MVT::v2i64,// ->559321
/*559310*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559312*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDVQZ128r), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShldv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3) - Complexity = 3
                  // Dst: (VPSHLDVQZ128r:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*559321*/      0, // EndSwitchType
/*559322*/    0, /*End of Scope*/
/*559323*/  /*SwitchOpcode*/ 19|128,4/*531*/, TARGET_VAL(X86ISD::VSHRDV),// ->559858
/*559327*/    OPC_RecordChild0, // #0 = $src1
/*559328*/    OPC_RecordChild1, // #1 = $src2
/*559329*/    OPC_Scope, 20|128,3/*404*/, /*->559736*/ // 2 children in Scope
/*559332*/      OPC_MoveChild2,
/*559333*/      OPC_SwitchOpcode /*3 cases */, 32|128,1/*160*/, TARGET_VAL(ISD::BITCAST),// ->559498
/*559338*/        OPC_MoveChild0,
/*559339*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559342*/        OPC_RecordMemRef,
/*559343*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559344*/        OPC_CheckFoldableChainNode,
/*559345*/        OPC_RecordChild1, // #3 = $src3
/*559346*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559348*/        OPC_CheckPredicate, 9, // Predicate_load
/*559350*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*559352*/        OPC_SwitchType /*3 cases */, 46, MVT::v8i64,// ->559401
/*559355*/          OPC_MoveParent,
/*559356*/          OPC_MoveParent,
/*559357*/          OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->559379
/*559360*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559362*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559365*/            OPC_EmitMergeInputChains1_2,
/*559366*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (bitconvert:{ *:[v32i16] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHRDVWZm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559379*/          /*SwitchType*/ 19, MVT::v16i32,// ->559400
/*559381*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559383*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559386*/            OPC_EmitMergeInputChains1_2,
/*559387*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHRDVDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559400*/          0, // EndSwitchType
/*559401*/        /*SwitchType*/ 46, MVT::v4i64,// ->559449
/*559403*/          OPC_MoveParent,
/*559404*/          OPC_MoveParent,
/*559405*/          OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->559427
/*559408*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559410*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559413*/            OPC_EmitMergeInputChains1_2,
/*559414*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHRDVWZ256m:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559427*/          /*SwitchType*/ 19, MVT::v8i32,// ->559448
/*559429*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559431*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559434*/            OPC_EmitMergeInputChains1_2,
/*559435*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHRDVDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559448*/          0, // EndSwitchType
/*559449*/        /*SwitchType*/ 46, MVT::v2i64,// ->559497
/*559451*/          OPC_MoveParent,
/*559452*/          OPC_MoveParent,
/*559453*/          OPC_SwitchType /*2 cases */, 19, MVT::v8i16,// ->559475
/*559456*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559458*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559461*/            OPC_EmitMergeInputChains1_2,
/*559462*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHRDVWZ128m:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559475*/          /*SwitchType*/ 19, MVT::v4i32,// ->559496
/*559477*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559479*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559482*/            OPC_EmitMergeInputChains1_2,
/*559483*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPSHRDVDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559496*/          0, // EndSwitchType
/*559497*/        0, // EndSwitchType
/*559498*/      /*SwitchOpcode*/ 26|128,1/*154*/, TARGET_VAL(X86ISD::VBROADCAST),// ->559656
/*559502*/        OPC_MoveChild0,
/*559503*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559506*/        OPC_RecordMemRef,
/*559507*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559508*/        OPC_CheckFoldableChainNode,
/*559509*/        OPC_RecordChild1, // #3 = $src3
/*559510*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559512*/        OPC_SwitchType /*2 cases */, 69, MVT::i32,// ->559584
/*559515*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*559517*/          OPC_MoveParent,
/*559518*/          OPC_MoveParent,
/*559519*/          OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->559541
/*559522*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559524*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559527*/            OPC_EmitMergeInputChains1_2,
/*559528*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPSHRDVDZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559541*/          /*SwitchType*/ 19, MVT::v8i32,// ->559562
/*559543*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559545*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559548*/            OPC_EmitMergeInputChains1_2,
/*559549*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPSHRDVDZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559562*/          /*SwitchType*/ 19, MVT::v4i32,// ->559583
/*559564*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559566*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559569*/            OPC_EmitMergeInputChains1_2,
/*559570*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPSHRDVDZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559583*/          0, // EndSwitchType
/*559584*/        /*SwitchType*/ 69, MVT::i64,// ->559655
/*559586*/          OPC_CheckPredicate, 9, // Predicate_load
/*559588*/          OPC_MoveParent,
/*559589*/          OPC_MoveParent,
/*559590*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->559612
/*559593*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559595*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559598*/            OPC_EmitMergeInputChains1_2,
/*559599*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPSHRDVQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559612*/          /*SwitchType*/ 19, MVT::v4i64,// ->559633
/*559614*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559616*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559619*/            OPC_EmitMergeInputChains1_2,
/*559620*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPSHRDVQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559633*/          /*SwitchType*/ 19, MVT::v2i64,// ->559654
/*559635*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559637*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559640*/            OPC_EmitMergeInputChains1_2,
/*559641*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (X86VShrdv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPSHRDVQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559654*/          0, // EndSwitchType
/*559655*/        0, // EndSwitchType
/*559656*/      /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->559735
/*559659*/        OPC_RecordMemRef,
/*559660*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559661*/        OPC_CheckFoldableChainNode,
/*559662*/        OPC_RecordChild1, // #3 = $src3
/*559663*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559665*/        OPC_CheckPredicate, 9, // Predicate_load
/*559667*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*559669*/        OPC_MoveParent,
/*559670*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->559692
/*559673*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559675*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559678*/          OPC_EmitMergeInputChains1_2,
/*559679*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VShrdv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSHRDVQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559692*/        /*SwitchType*/ 19, MVT::v4i64,// ->559713
/*559694*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559696*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559699*/          OPC_EmitMergeInputChains1_2,
/*559700*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VShrdv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSHRDVQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559713*/        /*SwitchType*/ 19, MVT::v2i64,// ->559734
/*559715*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559717*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559720*/          OPC_EmitMergeInputChains1_2,
/*559721*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86VShrdv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPSHRDVQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559734*/        0, // EndSwitchType
/*559735*/      0, // EndSwitchOpcode
/*559736*/    /*Scope*/ 120, /*->559857*/
/*559737*/      OPC_RecordChild2, // #2 = $src3
/*559738*/      OPC_SwitchType /*9 cases */, 11, MVT::v32i16,// ->559752
/*559741*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559743*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZr), 0,
                      MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrdv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3) - Complexity = 3
                  // Dst: (VPSHRDVWZr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*559752*/      /*SwitchType*/ 11, MVT::v16i16,// ->559765
/*559754*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559756*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ256r), 0,
                      MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrdv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3) - Complexity = 3
                  // Dst: (VPSHRDVWZ256r:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*559765*/      /*SwitchType*/ 11, MVT::v8i16,// ->559778
/*559767*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559769*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVWZ128r), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrdv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3) - Complexity = 3
                  // Dst: (VPSHRDVWZ128r:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*559778*/      /*SwitchType*/ 11, MVT::v16i32,// ->559791
/*559780*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559782*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZr), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrdv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3) - Complexity = 3
                  // Dst: (VPSHRDVDZr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*559791*/      /*SwitchType*/ 11, MVT::v8i32,// ->559804
/*559793*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559795*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ256r), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrdv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3) - Complexity = 3
                  // Dst: (VPSHRDVDZ256r:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*559804*/      /*SwitchType*/ 11, MVT::v4i32,// ->559817
/*559806*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559808*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVDZ128r), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrdv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3) - Complexity = 3
                  // Dst: (VPSHRDVDZ128r:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*559817*/      /*SwitchType*/ 11, MVT::v8i64,// ->559830
/*559819*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*559821*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZr), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrdv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3) - Complexity = 3
                  // Dst: (VPSHRDVQZr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*559830*/      /*SwitchType*/ 11, MVT::v4i64,// ->559843
/*559832*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559834*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ256r), 0,
                      MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrdv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3) - Complexity = 3
                  // Dst: (VPSHRDVQZ256r:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*559843*/      /*SwitchType*/ 11, MVT::v2i64,// ->559856
/*559845*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*559847*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDVQZ128r), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrdv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3) - Complexity = 3
                  // Dst: (VPSHRDVQZ128r:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*559856*/      0, // EndSwitchType
/*559857*/    0, /*End of Scope*/
/*559858*/  /*SwitchOpcode*/ 102|128,1/*230*/, TARGET_VAL(X86ISD::VPDPBUSD),// ->560092
/*559862*/    OPC_RecordChild0, // #0 = $src1
/*559863*/    OPC_RecordChild1, // #1 = $src2
/*559864*/    OPC_Scope, 53|128,1/*181*/, /*->560048*/ // 2 children in Scope
/*559867*/      OPC_MoveChild2,
/*559868*/      OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(ISD::BITCAST),// ->559963
/*559872*/        OPC_MoveChild0,
/*559873*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559876*/        OPC_RecordMemRef,
/*559877*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559878*/        OPC_CheckFoldableChainNode,
/*559879*/        OPC_RecordChild1, // #3 = $src3
/*559880*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559882*/        OPC_CheckPredicate, 9, // Predicate_load
/*559884*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*559886*/        OPC_SwitchType /*3 cases */, 23, MVT::v8i64,// ->559912
/*559889*/          OPC_MoveParent,
/*559890*/          OPC_MoveParent,
/*559891*/          OPC_CheckType, MVT::v16i32,
/*559893*/          OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*559895*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559898*/          OPC_EmitMergeInputChains1_2,
/*559899*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPBUSDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559912*/        /*SwitchType*/ 23, MVT::v4i64,// ->559937
/*559914*/          OPC_MoveParent,
/*559915*/          OPC_MoveParent,
/*559916*/          OPC_CheckType, MVT::v8i32,
/*559918*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*559920*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559923*/          OPC_EmitMergeInputChains1_2,
/*559924*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPBUSDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559937*/        /*SwitchType*/ 23, MVT::v2i64,// ->559962
/*559939*/          OPC_MoveParent,
/*559940*/          OPC_MoveParent,
/*559941*/          OPC_CheckType, MVT::v4i32,
/*559943*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*559945*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559948*/          OPC_EmitMergeInputChains1_2,
/*559949*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPBUSDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559962*/        0, // EndSwitchType
/*559963*/      /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VBROADCAST),// ->560047
/*559966*/        OPC_MoveChild0,
/*559967*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559970*/        OPC_RecordMemRef,
/*559971*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559972*/        OPC_CheckFoldableChainNode,
/*559973*/        OPC_RecordChild1, // #3 = $src3
/*559974*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559976*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*559978*/        OPC_CheckType, MVT::i32,
/*559980*/        OPC_MoveParent,
/*559981*/        OPC_MoveParent,
/*559982*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->560004
/*559985*/          OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*559987*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559990*/          OPC_EmitMergeInputChains1_2,
/*559991*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPBUSDZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560004*/        /*SwitchType*/ 19, MVT::v8i32,// ->560025
/*560006*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560008*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560011*/          OPC_EmitMergeInputChains1_2,
/*560012*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPBUSDZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560025*/        /*SwitchType*/ 19, MVT::v4i32,// ->560046
/*560027*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560029*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560032*/          OPC_EmitMergeInputChains1_2,
/*560033*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPBUSDZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560046*/        0, // EndSwitchType
/*560047*/      0, // EndSwitchOpcode
/*560048*/    /*Scope*/ 42, /*->560091*/
/*560049*/      OPC_RecordChild2, // #2 = $src3
/*560050*/      OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->560064
/*560053*/        OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*560055*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZr), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpbusd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPBUSDZr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*560064*/      /*SwitchType*/ 11, MVT::v8i32,// ->560077
/*560066*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560068*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ256r), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpbusd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPBUSDZ256r:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*560077*/      /*SwitchType*/ 11, MVT::v4i32,// ->560090
/*560079*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560081*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDZ128r), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpbusd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPBUSDZ128r:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*560090*/      0, // EndSwitchType
/*560091*/    0, /*End of Scope*/
/*560092*/  /*SwitchOpcode*/ 102|128,1/*230*/, TARGET_VAL(X86ISD::VPDPBUSDS),// ->560326
/*560096*/    OPC_RecordChild0, // #0 = $src1
/*560097*/    OPC_RecordChild1, // #1 = $src2
/*560098*/    OPC_Scope, 53|128,1/*181*/, /*->560282*/ // 2 children in Scope
/*560101*/      OPC_MoveChild2,
/*560102*/      OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(ISD::BITCAST),// ->560197
/*560106*/        OPC_MoveChild0,
/*560107*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*560110*/        OPC_RecordMemRef,
/*560111*/        OPC_RecordNode, // #2 = 'ld' chained node
/*560112*/        OPC_CheckFoldableChainNode,
/*560113*/        OPC_RecordChild1, // #3 = $src3
/*560114*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560116*/        OPC_CheckPredicate, 9, // Predicate_load
/*560118*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*560120*/        OPC_SwitchType /*3 cases */, 23, MVT::v8i64,// ->560146
/*560123*/          OPC_MoveParent,
/*560124*/          OPC_MoveParent,
/*560125*/          OPC_CheckType, MVT::v16i32,
/*560127*/          OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*560129*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560132*/          OPC_EmitMergeInputChains1_2,
/*560133*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPBUSDSZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560146*/        /*SwitchType*/ 23, MVT::v4i64,// ->560171
/*560148*/          OPC_MoveParent,
/*560149*/          OPC_MoveParent,
/*560150*/          OPC_CheckType, MVT::v8i32,
/*560152*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560154*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560157*/          OPC_EmitMergeInputChains1_2,
/*560158*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPBUSDSZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560171*/        /*SwitchType*/ 23, MVT::v2i64,// ->560196
/*560173*/          OPC_MoveParent,
/*560174*/          OPC_MoveParent,
/*560175*/          OPC_CheckType, MVT::v4i32,
/*560177*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560179*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560182*/          OPC_EmitMergeInputChains1_2,
/*560183*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPBUSDSZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560196*/        0, // EndSwitchType
/*560197*/      /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VBROADCAST),// ->560281
/*560200*/        OPC_MoveChild0,
/*560201*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*560204*/        OPC_RecordMemRef,
/*560205*/        OPC_RecordNode, // #2 = 'ld' chained node
/*560206*/        OPC_CheckFoldableChainNode,
/*560207*/        OPC_RecordChild1, // #3 = $src3
/*560208*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560210*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*560212*/        OPC_CheckType, MVT::i32,
/*560214*/        OPC_MoveParent,
/*560215*/        OPC_MoveParent,
/*560216*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->560238
/*560219*/          OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*560221*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560224*/          OPC_EmitMergeInputChains1_2,
/*560225*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPBUSDSZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560238*/        /*SwitchType*/ 19, MVT::v8i32,// ->560259
/*560240*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560242*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560245*/          OPC_EmitMergeInputChains1_2,
/*560246*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPBUSDSZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560259*/        /*SwitchType*/ 19, MVT::v4i32,// ->560280
/*560261*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560263*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560266*/          OPC_EmitMergeInputChains1_2,
/*560267*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpbusds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPBUSDSZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560280*/        0, // EndSwitchType
/*560281*/      0, // EndSwitchOpcode
/*560282*/    /*Scope*/ 42, /*->560325*/
/*560283*/      OPC_RecordChild2, // #2 = $src3
/*560284*/      OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->560298
/*560287*/        OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*560289*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZr), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpbusds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPBUSDSZr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*560298*/      /*SwitchType*/ 11, MVT::v8i32,// ->560311
/*560300*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560302*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ256r), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpbusds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPBUSDSZ256r:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*560311*/      /*SwitchType*/ 11, MVT::v4i32,// ->560324
/*560313*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560315*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPBUSDSZ128r), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpbusds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPBUSDSZ128r:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*560324*/      0, // EndSwitchType
/*560325*/    0, /*End of Scope*/
/*560326*/  /*SwitchOpcode*/ 102|128,1/*230*/, TARGET_VAL(X86ISD::VPDPWSSD),// ->560560
/*560330*/    OPC_RecordChild0, // #0 = $src1
/*560331*/    OPC_RecordChild1, // #1 = $src2
/*560332*/    OPC_Scope, 53|128,1/*181*/, /*->560516*/ // 2 children in Scope
/*560335*/      OPC_MoveChild2,
/*560336*/      OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(ISD::BITCAST),// ->560431
/*560340*/        OPC_MoveChild0,
/*560341*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*560344*/        OPC_RecordMemRef,
/*560345*/        OPC_RecordNode, // #2 = 'ld' chained node
/*560346*/        OPC_CheckFoldableChainNode,
/*560347*/        OPC_RecordChild1, // #3 = $src3
/*560348*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560350*/        OPC_CheckPredicate, 9, // Predicate_load
/*560352*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*560354*/        OPC_SwitchType /*3 cases */, 23, MVT::v8i64,// ->560380
/*560357*/          OPC_MoveParent,
/*560358*/          OPC_MoveParent,
/*560359*/          OPC_CheckType, MVT::v16i32,
/*560361*/          OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*560363*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560366*/          OPC_EmitMergeInputChains1_2,
/*560367*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPWSSDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560380*/        /*SwitchType*/ 23, MVT::v4i64,// ->560405
/*560382*/          OPC_MoveParent,
/*560383*/          OPC_MoveParent,
/*560384*/          OPC_CheckType, MVT::v8i32,
/*560386*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560388*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560391*/          OPC_EmitMergeInputChains1_2,
/*560392*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPWSSDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560405*/        /*SwitchType*/ 23, MVT::v2i64,// ->560430
/*560407*/          OPC_MoveParent,
/*560408*/          OPC_MoveParent,
/*560409*/          OPC_CheckType, MVT::v4i32,
/*560411*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560413*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560416*/          OPC_EmitMergeInputChains1_2,
/*560417*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPWSSDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560430*/        0, // EndSwitchType
/*560431*/      /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VBROADCAST),// ->560515
/*560434*/        OPC_MoveChild0,
/*560435*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*560438*/        OPC_RecordMemRef,
/*560439*/        OPC_RecordNode, // #2 = 'ld' chained node
/*560440*/        OPC_CheckFoldableChainNode,
/*560441*/        OPC_RecordChild1, // #3 = $src3
/*560442*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560444*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*560446*/        OPC_CheckType, MVT::i32,
/*560448*/        OPC_MoveParent,
/*560449*/        OPC_MoveParent,
/*560450*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->560472
/*560453*/          OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*560455*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560458*/          OPC_EmitMergeInputChains1_2,
/*560459*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPWSSDZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560472*/        /*SwitchType*/ 19, MVT::v8i32,// ->560493
/*560474*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560476*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560479*/          OPC_EmitMergeInputChains1_2,
/*560480*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPWSSDZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560493*/        /*SwitchType*/ 19, MVT::v4i32,// ->560514
/*560495*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560497*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560500*/          OPC_EmitMergeInputChains1_2,
/*560501*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPWSSDZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560514*/        0, // EndSwitchType
/*560515*/      0, // EndSwitchOpcode
/*560516*/    /*Scope*/ 42, /*->560559*/
/*560517*/      OPC_RecordChild2, // #2 = $src3
/*560518*/      OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->560532
/*560521*/        OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*560523*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZr), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpwssd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPWSSDZr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*560532*/      /*SwitchType*/ 11, MVT::v8i32,// ->560545
/*560534*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560536*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256r), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpwssd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPWSSDZ256r:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*560545*/      /*SwitchType*/ 11, MVT::v4i32,// ->560558
/*560547*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560549*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128r), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpwssd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPWSSDZ128r:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*560558*/      0, // EndSwitchType
/*560559*/    0, /*End of Scope*/
/*560560*/  /*SwitchOpcode*/ 102|128,1/*230*/, TARGET_VAL(X86ISD::VPDPWSSDS),// ->560794
/*560564*/    OPC_RecordChild0, // #0 = $src1
/*560565*/    OPC_RecordChild1, // #1 = $src2
/*560566*/    OPC_Scope, 53|128,1/*181*/, /*->560750*/ // 2 children in Scope
/*560569*/      OPC_MoveChild2,
/*560570*/      OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(ISD::BITCAST),// ->560665
/*560574*/        OPC_MoveChild0,
/*560575*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*560578*/        OPC_RecordMemRef,
/*560579*/        OPC_RecordNode, // #2 = 'ld' chained node
/*560580*/        OPC_CheckFoldableChainNode,
/*560581*/        OPC_RecordChild1, // #3 = $src3
/*560582*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560584*/        OPC_CheckPredicate, 9, // Predicate_load
/*560586*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*560588*/        OPC_SwitchType /*3 cases */, 23, MVT::v8i64,// ->560614
/*560591*/          OPC_MoveParent,
/*560592*/          OPC_MoveParent,
/*560593*/          OPC_CheckType, MVT::v16i32,
/*560595*/          OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*560597*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560600*/          OPC_EmitMergeInputChains1_2,
/*560601*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPWSSDSZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560614*/        /*SwitchType*/ 23, MVT::v4i64,// ->560639
/*560616*/          OPC_MoveParent,
/*560617*/          OPC_MoveParent,
/*560618*/          OPC_CheckType, MVT::v8i32,
/*560620*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560622*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560625*/          OPC_EmitMergeInputChains1_2,
/*560626*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPWSSDSZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560639*/        /*SwitchType*/ 23, MVT::v2i64,// ->560664
/*560641*/          OPC_MoveParent,
/*560642*/          OPC_MoveParent,
/*560643*/          OPC_CheckType, MVT::v4i32,
/*560645*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560647*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560650*/          OPC_EmitMergeInputChains1_2,
/*560651*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPDPWSSDSZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560664*/        0, // EndSwitchType
/*560665*/      /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VBROADCAST),// ->560749
/*560668*/        OPC_MoveChild0,
/*560669*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*560672*/        OPC_RecordMemRef,
/*560673*/        OPC_RecordNode, // #2 = 'ld' chained node
/*560674*/        OPC_CheckFoldableChainNode,
/*560675*/        OPC_RecordChild1, // #3 = $src3
/*560676*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560678*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*560680*/        OPC_CheckType, MVT::i32,
/*560682*/        OPC_MoveParent,
/*560683*/        OPC_MoveParent,
/*560684*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->560706
/*560687*/          OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*560689*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560692*/          OPC_EmitMergeInputChains1_2,
/*560693*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPWSSDSZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560706*/        /*SwitchType*/ 19, MVT::v8i32,// ->560727
/*560708*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560710*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560713*/          OPC_EmitMergeInputChains1_2,
/*560714*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPWSSDSZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560727*/        /*SwitchType*/ 19, MVT::v4i32,// ->560748
/*560729*/          OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560731*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560734*/          OPC_EmitMergeInputChains1_2,
/*560735*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86Vpdpwssds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VPDPWSSDSZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560748*/        0, // EndSwitchType
/*560749*/      0, // EndSwitchOpcode
/*560750*/    /*Scope*/ 42, /*->560793*/
/*560751*/      OPC_RecordChild2, // #2 = $src3
/*560752*/      OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->560766
/*560755*/        OPC_CheckPatternPredicate, 177, // (Subtarget->hasVNNI())
/*560757*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZr), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpwssds:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPWSSDSZr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*560766*/      /*SwitchType*/ 11, MVT::v8i32,// ->560779
/*560768*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560770*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ256r), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpwssds:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPWSSDSZ256r:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*560779*/      /*SwitchType*/ 11, MVT::v4i32,// ->560792
/*560781*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*560783*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDSZ128r), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Vpdpwssds:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3) - Complexity = 3
                  // Dst: (VPDPWSSDSZ128r:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*560792*/      0, // EndSwitchType
/*560793*/    0, /*End of Scope*/
/*560794*/  /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(X86ISD::VPSHUFBITQMB),// ->560987
/*560798*/    OPC_RecordChild0, // #0 = $src1
/*560799*/    OPC_Scope, 61, /*->560862*/ // 3 children in Scope
/*560801*/      OPC_CheckChild0Type, MVT::v64i8,
/*560803*/      OPC_Scope, 42, /*->560847*/ // 2 children in Scope
/*560805*/        OPC_MoveChild1,
/*560806*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*560809*/        OPC_MoveChild0,
/*560810*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*560813*/        OPC_RecordMemRef,
/*560814*/        OPC_RecordNode, // #1 = 'ld' chained node
/*560815*/        OPC_CheckFoldableChainNode,
/*560816*/        OPC_RecordChild1, // #2 = $src2
/*560817*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560819*/        OPC_CheckPredicate, 9, // Predicate_load
/*560821*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*560823*/        OPC_CheckType, MVT::v8i64,
/*560825*/        OPC_MoveParent,
/*560826*/        OPC_MoveParent,
/*560827*/        OPC_CheckType, MVT::v64i1,
/*560829*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*560831*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*560834*/        OPC_EmitMergeInputChains1_1,
/*560835*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Vpshufbitqmb:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPSHUFBITQMBZrm:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*560847*/      /*Scope*/ 13, /*->560861*/
/*560848*/        OPC_RecordChild1, // #1 = $src2
/*560849*/        OPC_CheckType, MVT::v64i1,
/*560851*/        OPC_CheckPatternPredicate, 40, // (Subtarget->hasBITALG())
/*560853*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Vpshufbitqmb:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPSHUFBITQMBZrr:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*560861*/      0, /*End of Scope*/
/*560862*/    /*Scope*/ 61, /*->560924*/
/*560863*/      OPC_CheckChild0Type, MVT::v32i8,
/*560865*/      OPC_Scope, 42, /*->560909*/ // 2 children in Scope
/*560867*/        OPC_MoveChild1,
/*560868*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*560871*/        OPC_MoveChild0,
/*560872*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*560875*/        OPC_RecordMemRef,
/*560876*/        OPC_RecordNode, // #1 = 'ld' chained node
/*560877*/        OPC_CheckFoldableChainNode,
/*560878*/        OPC_RecordChild1, // #2 = $src2
/*560879*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560881*/        OPC_CheckPredicate, 9, // Predicate_load
/*560883*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*560885*/        OPC_CheckType, MVT::v4i64,
/*560887*/        OPC_MoveParent,
/*560888*/        OPC_MoveParent,
/*560889*/        OPC_CheckType, MVT::v32i1,
/*560891*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*560893*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*560896*/        OPC_EmitMergeInputChains1_1,
/*560897*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Vpshufbitqmb:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPSHUFBITQMBZ256rm:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*560909*/      /*Scope*/ 13, /*->560923*/
/*560910*/        OPC_RecordChild1, // #1 = $src2
/*560911*/        OPC_CheckType, MVT::v32i1,
/*560913*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*560915*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ256rr), 0,
                      MVT::v32i1, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Vpshufbitqmb:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                  // Dst: (VPSHUFBITQMBZ256rr:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*560923*/      0, /*End of Scope*/
/*560924*/    /*Scope*/ 61, /*->560986*/
/*560925*/      OPC_CheckChild0Type, MVT::v16i8,
/*560927*/      OPC_Scope, 42, /*->560971*/ // 2 children in Scope
/*560929*/        OPC_MoveChild1,
/*560930*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*560933*/        OPC_MoveChild0,
/*560934*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*560937*/        OPC_RecordMemRef,
/*560938*/        OPC_RecordNode, // #1 = 'ld' chained node
/*560939*/        OPC_CheckFoldableChainNode,
/*560940*/        OPC_RecordChild1, // #2 = $src2
/*560941*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560943*/        OPC_CheckPredicate, 9, // Predicate_load
/*560945*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*560947*/        OPC_CheckType, MVT::v2i64,
/*560949*/        OPC_MoveParent,
/*560950*/        OPC_MoveParent,
/*560951*/        OPC_CheckType, MVT::v16i1,
/*560953*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*560955*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*560958*/        OPC_EmitMergeInputChains1_1,
/*560959*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Vpshufbitqmb:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                  // Dst: (VPSHUFBITQMBZ128rm:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*560971*/      /*Scope*/ 13, /*->560985*/
/*560972*/        OPC_RecordChild1, // #1 = $src2
/*560973*/        OPC_CheckType, MVT::v16i1,
/*560975*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*560977*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFBITQMBZ128rr), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Vpshufbitqmb:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                  // Dst: (VPSHUFBITQMBZ128rr:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*560985*/      0, /*End of Scope*/
/*560986*/    0, /*End of Scope*/
/*560987*/  /*SwitchOpcode*/ 93, TARGET_VAL(X86ISD::VFPCLASSS),// ->561083
/*560990*/    OPC_RecordChild0, // #0 = $src1
/*560991*/    OPC_Scope, 44, /*->561037*/ // 2 children in Scope
/*560993*/      OPC_CheckChild0Type, MVT::v4f32,
/*560995*/      OPC_RecordChild1, // #1 = $src2
/*560996*/      OPC_MoveChild1,
/*560997*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*561000*/      OPC_MoveParent,
/*561001*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*561003*/      OPC_Scope, 20, /*->561025*/ // 2 children in Scope
/*561005*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src1 #2 #3 #4 #5 #6 + chain result
/*561008*/        OPC_EmitMergeInputChains, 1, 7, 
/*561011*/        OPC_EmitConvertToTarget, 1,
/*561013*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v1i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 8, 
                  // Src: (X86Vfpclasss:{ *:[v1i1] } sse_load_f32:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 24
                  // Dst: (VFPCLASSSSZrm:{ *:[v1i1] } sse_load_f32:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*561025*/      /*Scope*/ 10, /*->561036*/
/*561026*/        OPC_EmitConvertToTarget, 1,
/*561028*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrr), 0,
                      MVT::v1i1, 2/*#Ops*/, 0, 2, 
                  // Src: (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSSSZrr:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*561036*/      0, /*End of Scope*/
/*561037*/    /*Scope*/ 44, /*->561082*/
/*561038*/      OPC_CheckChild0Type, MVT::v2f64,
/*561040*/      OPC_RecordChild1, // #1 = $src2
/*561041*/      OPC_MoveChild1,
/*561042*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*561045*/      OPC_MoveParent,
/*561046*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*561048*/      OPC_Scope, 20, /*->561070*/ // 2 children in Scope
/*561050*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src1 #2 #3 #4 #5 #6 + chain result
/*561053*/        OPC_EmitMergeInputChains, 1, 7, 
/*561056*/        OPC_EmitConvertToTarget, 1,
/*561058*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v1i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 8, 
                  // Src: (X86Vfpclasss:{ *:[v1i1] } sse_load_f64:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 24
                  // Dst: (VFPCLASSSDZrm:{ *:[v1i1] } sse_load_f64:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*561070*/      /*Scope*/ 10, /*->561081*/
/*561071*/        OPC_EmitConvertToTarget, 1,
/*561073*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrr), 0,
                      MVT::v1i1, 2/*#Ops*/, 0, 2, 
                  // Src: (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSSDZrr:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*561081*/      0, /*End of Scope*/
/*561082*/    0, /*End of Scope*/
/*561083*/  /*SwitchOpcode*/ 101|128,8/*1125*/, TARGET_VAL(X86ISD::MGATHER),// ->562212
/*561087*/    OPC_RecordMemRef,
/*561088*/    OPC_RecordNode, // #0 = 'X86masked_gather' chained node
/*561089*/    OPC_RecordChild1, // #1 = $src1
/*561090*/    OPC_RecordChild2, // #2 = $mask
/*561091*/    OPC_RecordChild3, // #3 = $src2
/*561092*/    OPC_Scope, 54, /*->561148*/ // 38 children in Scope
/*561094*/      OPC_CheckPredicate, 104, // Predicate_mgatherv4i32
/*561096*/      OPC_SwitchType /*2 cases */, 23, MVT::v2i64,// ->561122
/*561099*/        OPC_CheckTypeRes, 1, MVT::v2i64,
/*561102*/        OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561104*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561107*/        OPC_EmitMergeInputChains1_0,
/*561108*/        OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, MVT::v2i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                  // Src: (X86masked_gather:{ *:[v2i64] }:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                  // Dst: (VPGATHERDQrm:{ *:[v2i64] }:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$mask)
/*561122*/      /*SwitchType*/ 23, MVT::v4i64,// ->561147
/*561124*/        OPC_CheckTypeRes, 1, MVT::v4i64,
/*561127*/        OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561129*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561132*/        OPC_EmitMergeInputChains1_0,
/*561133*/        OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, MVT::v4i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                  // Src: (X86masked_gather:{ *:[v4i64] }:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                  // Dst: (VPGATHERDQYrm:{ *:[v4i64] }:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$mask)
/*561147*/      0, // EndSwitchType
/*561148*/    /*Scope*/ 27, /*->561176*/
/*561149*/      OPC_CheckPredicate, 105, // Predicate_mgatherv2i64
/*561151*/      OPC_CheckType, MVT::v2i64,
/*561153*/      OPC_CheckTypeRes, 1, MVT::v2i64,
/*561156*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561158*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561161*/      OPC_EmitMergeInputChains1_0,
/*561162*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, MVT::v2i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v2i64] }:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv2i64>> - Complexity = 22
                // Dst: (VPGATHERQQrm:{ *:[v2i64] }:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$mask)
/*561176*/    /*Scope*/ 27, /*->561204*/
/*561177*/      OPC_CheckPredicate, 106, // Predicate_mgatherv4i64
/*561179*/      OPC_CheckType, MVT::v4i64,
/*561181*/      OPC_CheckTypeRes, 1, MVT::v4i64,
/*561184*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561186*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561189*/      OPC_EmitMergeInputChains1_0,
/*561190*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERQQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, MVT::v4i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v4i64] }:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i64>> - Complexity = 22
                // Dst: (VPGATHERQQYrm:{ *:[v4i64] }:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$mask)
/*561204*/    /*Scope*/ 27, /*->561232*/
/*561205*/      OPC_CheckPredicate, 104, // Predicate_mgatherv4i32
/*561207*/      OPC_CheckType, MVT::v4i32,
/*561209*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*561212*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561214*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561217*/      OPC_EmitMergeInputChains1_0,
/*561218*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, MVT::v4i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v4i32] }:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                // Dst: (VPGATHERDDrm:{ *:[v4i32] }:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$mask)
/*561232*/    /*Scope*/ 27, /*->561260*/
/*561233*/      OPC_CheckPredicate, 107, // Predicate_mgatherv8i32
/*561235*/      OPC_CheckType, MVT::v8i32,
/*561237*/      OPC_CheckTypeRes, 1, MVT::v8i32,
/*561240*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561242*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561245*/      OPC_EmitMergeInputChains1_0,
/*561246*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERDDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, MVT::v8i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v8i32] }:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv8i32>> - Complexity = 22
                // Dst: (VPGATHERDDYrm:{ *:[v8i32] }:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$mask)
/*561260*/    /*Scope*/ 27, /*->561288*/
/*561261*/      OPC_CheckPredicate, 105, // Predicate_mgatherv2i64
/*561263*/      OPC_CheckType, MVT::v4i32,
/*561265*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*561268*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561270*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561273*/      OPC_EmitMergeInputChains1_0,
/*561274*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, MVT::v4i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v4i32] }:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv2i64>> - Complexity = 22
                // Dst: (VPGATHERQDrm:{ *:[v4i32] }:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$mask)
/*561288*/    /*Scope*/ 27, /*->561316*/
/*561289*/      OPC_CheckPredicate, 106, // Predicate_mgatherv4i64
/*561291*/      OPC_CheckType, MVT::v4i32,
/*561293*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*561296*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561298*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561301*/      OPC_EmitMergeInputChains1_0,
/*561302*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERQDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, MVT::v4i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v4i32] }:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i64>> - Complexity = 22
                // Dst: (VPGATHERQDYrm:{ *:[v4i32] }:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$mask)
/*561316*/    /*Scope*/ 27, /*->561344*/
/*561317*/      OPC_CheckPredicate, 107, // Predicate_mgatherv8i32
/*561319*/      OPC_CheckType, MVT::v8i64,
/*561321*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*561324*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561326*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561329*/      OPC_EmitMergeInputChains1_0,
/*561330*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i64, MVT::v8i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v8i64] }:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv8i32>> - Complexity = 22
                // Dst: (VPGATHERDQZrm:{ *:[v8i64] }:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561344*/    /*Scope*/ 27, /*->561372*/
/*561345*/      OPC_CheckPredicate, 108, // Predicate_mgatherv8i64
/*561347*/      OPC_CheckType, MVT::v8i64,
/*561349*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*561352*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561354*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561357*/      OPC_EmitMergeInputChains1_0,
/*561358*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERQQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i64, MVT::v8i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v8i64] }:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv8i64>> - Complexity = 22
                // Dst: (VPGATHERQQZrm:{ *:[v8i64] }:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561372*/    /*Scope*/ 27, /*->561400*/
/*561373*/      OPC_CheckPredicate, 104, // Predicate_mgatherv4i32
/*561375*/      OPC_CheckType, MVT::v4i64,
/*561377*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*561380*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561382*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561385*/      OPC_EmitMergeInputChains1_0,
/*561386*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, MVT::v4i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v4i64] }:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                // Dst: (VPGATHERDQZ256rm:{ *:[v4i64] }:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561400*/    /*Scope*/ 27, /*->561428*/
/*561401*/      OPC_CheckPredicate, 106, // Predicate_mgatherv4i64
/*561403*/      OPC_CheckType, MVT::v4i64,
/*561405*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*561408*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561410*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561413*/      OPC_EmitMergeInputChains1_0,
/*561414*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERQQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, MVT::v4i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v4i64] }:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i64>> - Complexity = 22
                // Dst: (VPGATHERQQZ256rm:{ *:[v4i64] }:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561428*/    /*Scope*/ 27, /*->561456*/
/*561429*/      OPC_CheckPredicate, 104, // Predicate_mgatherv4i32
/*561431*/      OPC_CheckType, MVT::v2i64,
/*561433*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*561436*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561438*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561441*/      OPC_EmitMergeInputChains1_0,
/*561442*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, MVT::v2i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v2i64] }:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                // Dst: (VPGATHERDQZ128rm:{ *:[v2i64] }:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561456*/    /*Scope*/ 27, /*->561484*/
/*561457*/      OPC_CheckPredicate, 105, // Predicate_mgatherv2i64
/*561459*/      OPC_CheckType, MVT::v2i64,
/*561461*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*561464*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561466*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561469*/      OPC_EmitMergeInputChains1_0,
/*561470*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, MVT::v2i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v2i64] }:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv2i64>> - Complexity = 22
                // Dst: (VPGATHERQQZ128rm:{ *:[v2i64] }:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561484*/    /*Scope*/ 27, /*->561512*/
/*561485*/      OPC_CheckPredicate, 109, // Predicate_mgatherv16i32
/*561487*/      OPC_CheckType, MVT::v16i32,
/*561489*/      OPC_CheckTypeRes, 1, MVT::v16i1,
/*561492*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561494*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561497*/      OPC_EmitMergeInputChains1_0,
/*561498*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERDDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i32, MVT::v16i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v16i32] }:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv16i32>> - Complexity = 22
                // Dst: (VPGATHERDDZrm:{ *:[v16i32] }:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561512*/    /*Scope*/ 27, /*->561540*/
/*561513*/      OPC_CheckPredicate, 108, // Predicate_mgatherv8i64
/*561515*/      OPC_CheckType, MVT::v8i32,
/*561517*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*561520*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561522*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561525*/      OPC_EmitMergeInputChains1_0,
/*561526*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERQDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, MVT::v8i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v8i32] }:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv8i64>> - Complexity = 22
                // Dst: (VPGATHERQDZrm:{ *:[v8i32] }:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561540*/    /*Scope*/ 27, /*->561568*/
/*561541*/      OPC_CheckPredicate, 107, // Predicate_mgatherv8i32
/*561543*/      OPC_CheckType, MVT::v8i32,
/*561545*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*561548*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561550*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561553*/      OPC_EmitMergeInputChains1_0,
/*561554*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERDDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, MVT::v8i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v8i32] }:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv8i32>> - Complexity = 22
                // Dst: (VPGATHERDDZ256rm:{ *:[v8i32] }:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561568*/    /*Scope*/ 27, /*->561596*/
/*561569*/      OPC_CheckPredicate, 106, // Predicate_mgatherv4i64
/*561571*/      OPC_CheckType, MVT::v4i32,
/*561573*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*561576*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561578*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561581*/      OPC_EmitMergeInputChains1_0,
/*561582*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERQDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, MVT::v4i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v4i32] }:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i64>> - Complexity = 22
                // Dst: (VPGATHERQDZ256rm:{ *:[v4i32] }:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561596*/    /*Scope*/ 27, /*->561624*/
/*561597*/      OPC_CheckPredicate, 104, // Predicate_mgatherv4i32
/*561599*/      OPC_CheckType, MVT::v4i32,
/*561601*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*561604*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561606*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561609*/      OPC_EmitMergeInputChains1_0,
/*561610*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERDDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, MVT::v4i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v4i32] }:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                // Dst: (VPGATHERDDZ128rm:{ *:[v4i32] }:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561624*/    /*Scope*/ 27, /*->561652*/
/*561625*/      OPC_CheckPredicate, 105, // Predicate_mgatherv2i64
/*561627*/      OPC_CheckType, MVT::v4i32,
/*561629*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*561632*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561634*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561637*/      OPC_EmitMergeInputChains1_0,
/*561638*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VPGATHERQDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, MVT::v2i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v4i32] }:{ *:[v2i1] } VR128X:{ *:[v4i32] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv2i64>> - Complexity = 22
                // Dst: (VPGATHERQDZ128rm:{ *:[v4i32] }:{ *:[v2i1] } VR128X:{ *:[v4i32] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561652*/    /*Scope*/ 54, /*->561707*/
/*561653*/      OPC_CheckPredicate, 104, // Predicate_mgatherv4i32
/*561655*/      OPC_SwitchType /*2 cases */, 23, MVT::v2f64,// ->561681
/*561658*/        OPC_CheckTypeRes, 1, MVT::v2i64,
/*561661*/        OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561663*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561666*/        OPC_EmitMergeInputChains1_0,
/*561667*/        OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, MVT::v2i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                  // Src: (X86masked_gather:{ *:[v2f64] }:{ *:[v2i64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2i64] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                  // Dst: (VGATHERDPDrm:{ *:[v2f64] }:{ *:[v2i64] } VR128:{ *:[v2f64] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$mask)
/*561681*/      /*SwitchType*/ 23, MVT::v4f64,// ->561706
/*561683*/        OPC_CheckTypeRes, 1, MVT::v4i64,
/*561686*/        OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561688*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561691*/        OPC_EmitMergeInputChains1_0,
/*561692*/        OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, MVT::v4i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                  // Src: (X86masked_gather:{ *:[v4f64] }:{ *:[v4i64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4i64] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                  // Dst: (VGATHERDPDYrm:{ *:[v4f64] }:{ *:[v4i64] } VR256:{ *:[v4f64] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$mask)
/*561706*/      0, // EndSwitchType
/*561707*/    /*Scope*/ 27, /*->561735*/
/*561708*/      OPC_CheckPredicate, 105, // Predicate_mgatherv2i64
/*561710*/      OPC_CheckType, MVT::v2f64,
/*561712*/      OPC_CheckTypeRes, 1, MVT::v2i64,
/*561715*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561717*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561720*/      OPC_EmitMergeInputChains1_0,
/*561721*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERQPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, MVT::v2i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v2f64] }:{ *:[v2i64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2i64] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv2i64>> - Complexity = 22
                // Dst: (VGATHERQPDrm:{ *:[v2f64] }:{ *:[v2i64] } VR128:{ *:[v2f64] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$mask)
/*561735*/    /*Scope*/ 27, /*->561763*/
/*561736*/      OPC_CheckPredicate, 106, // Predicate_mgatherv4i64
/*561738*/      OPC_CheckType, MVT::v4f64,
/*561740*/      OPC_CheckTypeRes, 1, MVT::v4i64,
/*561743*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561745*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561748*/      OPC_EmitMergeInputChains1_0,
/*561749*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERQPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, MVT::v4i64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v4f64] }:{ *:[v4i64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4i64] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i64>> - Complexity = 22
                // Dst: (VGATHERQPDYrm:{ *:[v4f64] }:{ *:[v4i64] } VR256:{ *:[v4f64] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$mask)
/*561763*/    /*Scope*/ 27, /*->561791*/
/*561764*/      OPC_CheckPredicate, 104, // Predicate_mgatherv4i32
/*561766*/      OPC_CheckType, MVT::v4f32,
/*561768*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*561771*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561773*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561776*/      OPC_EmitMergeInputChains1_0,
/*561777*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, MVT::v4i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v4f32] }:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4i32] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                // Dst: (VGATHERDPSrm:{ *:[v4f32] }:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$mask)
/*561791*/    /*Scope*/ 27, /*->561819*/
/*561792*/      OPC_CheckPredicate, 107, // Predicate_mgatherv8i32
/*561794*/      OPC_CheckType, MVT::v8f32,
/*561796*/      OPC_CheckTypeRes, 1, MVT::v8i32,
/*561799*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561801*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561804*/      OPC_EmitMergeInputChains1_0,
/*561805*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, MVT::v8i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v8f32] }:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8i32] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv8i32>> - Complexity = 22
                // Dst: (VGATHERDPSYrm:{ *:[v8f32] }:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$mask)
/*561819*/    /*Scope*/ 27, /*->561847*/
/*561820*/      OPC_CheckPredicate, 105, // Predicate_mgatherv2i64
/*561822*/      OPC_CheckType, MVT::v4f32,
/*561824*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*561827*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561829*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561832*/      OPC_EmitMergeInputChains1_0,
/*561833*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERQPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, MVT::v4i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v4f32] }:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4i32] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv2i64>> - Complexity = 22
                // Dst: (VGATHERQPSrm:{ *:[v4f32] }:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$mask)
/*561847*/    /*Scope*/ 27, /*->561875*/
/*561848*/      OPC_CheckPredicate, 106, // Predicate_mgatherv4i64
/*561850*/      OPC_CheckType, MVT::v4f32,
/*561852*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*561855*/      OPC_CheckPatternPredicate, 187, // (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
/*561857*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561860*/      OPC_EmitMergeInputChains1_0,
/*561861*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERQPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, MVT::v4i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 2, 
                // Src: (X86masked_gather:{ *:[v4f32] }:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4i32] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i64>> - Complexity = 22
                // Dst: (VGATHERQPSYrm:{ *:[v4f32] }:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src1, vectoraddr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$mask)
/*561875*/    /*Scope*/ 27, /*->561903*/
/*561876*/      OPC_CheckPredicate, 107, // Predicate_mgatherv8i32
/*561878*/      OPC_CheckType, MVT::v8f64,
/*561880*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*561883*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561885*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561888*/      OPC_EmitMergeInputChains1_0,
/*561889*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERDPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f64, MVT::v8i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v8f64] }:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv8i32>> - Complexity = 22
                // Dst: (VGATHERDPDZrm:{ *:[v8f64] }:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561903*/    /*Scope*/ 27, /*->561931*/
/*561904*/      OPC_CheckPredicate, 108, // Predicate_mgatherv8i64
/*561906*/      OPC_CheckType, MVT::v8f64,
/*561908*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*561911*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561913*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561916*/      OPC_EmitMergeInputChains1_0,
/*561917*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERQPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f64, MVT::v8i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v8f64] }:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv8i64>> - Complexity = 22
                // Dst: (VGATHERQPDZrm:{ *:[v8f64] }:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561931*/    /*Scope*/ 27, /*->561959*/
/*561932*/      OPC_CheckPredicate, 104, // Predicate_mgatherv4i32
/*561934*/      OPC_CheckType, MVT::v4f64,
/*561936*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*561939*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561941*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561944*/      OPC_EmitMergeInputChains1_0,
/*561945*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERDPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, MVT::v4i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v4f64] }:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                // Dst: (VGATHERDPDZ256rm:{ *:[v4f64] }:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561959*/    /*Scope*/ 27, /*->561987*/
/*561960*/      OPC_CheckPredicate, 106, // Predicate_mgatherv4i64
/*561962*/      OPC_CheckType, MVT::v4f64,
/*561964*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*561967*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561969*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*561972*/      OPC_EmitMergeInputChains1_0,
/*561973*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERQPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, MVT::v4i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v4f64] }:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i64>> - Complexity = 22
                // Dst: (VGATHERQPDZ256rm:{ *:[v4f64] }:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*561987*/    /*Scope*/ 27, /*->562015*/
/*561988*/      OPC_CheckPredicate, 104, // Predicate_mgatherv4i32
/*561990*/      OPC_CheckType, MVT::v2f64,
/*561992*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*561995*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561997*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*562000*/      OPC_EmitMergeInputChains1_0,
/*562001*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERDPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, MVT::v2i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v2f64] }:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                // Dst: (VGATHERDPDZ128rm:{ *:[v2f64] }:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*562015*/    /*Scope*/ 27, /*->562043*/
/*562016*/      OPC_CheckPredicate, 105, // Predicate_mgatherv2i64
/*562018*/      OPC_CheckType, MVT::v2f64,
/*562020*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*562023*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562025*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*562028*/      OPC_EmitMergeInputChains1_0,
/*562029*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERQPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, MVT::v2i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v2f64] }:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv2i64>> - Complexity = 22
                // Dst: (VGATHERQPDZ128rm:{ *:[v2f64] }:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*562043*/    /*Scope*/ 27, /*->562071*/
/*562044*/      OPC_CheckPredicate, 109, // Predicate_mgatherv16i32
/*562046*/      OPC_CheckType, MVT::v16f32,
/*562048*/      OPC_CheckTypeRes, 1, MVT::v16i1,
/*562051*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562053*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*562056*/      OPC_EmitMergeInputChains1_0,
/*562057*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERDPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16f32, MVT::v16i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v16f32] }:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv16i32>> - Complexity = 22
                // Dst: (VGATHERDPSZrm:{ *:[v16f32] }:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*562071*/    /*Scope*/ 27, /*->562099*/
/*562072*/      OPC_CheckPredicate, 108, // Predicate_mgatherv8i64
/*562074*/      OPC_CheckType, MVT::v8f32,
/*562076*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*562079*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562081*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*562084*/      OPC_EmitMergeInputChains1_0,
/*562085*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERQPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, MVT::v8i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v8f32] }:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv8i64>> - Complexity = 22
                // Dst: (VGATHERQPSZrm:{ *:[v8f32] }:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*562099*/    /*Scope*/ 27, /*->562127*/
/*562100*/      OPC_CheckPredicate, 107, // Predicate_mgatherv8i32
/*562102*/      OPC_CheckType, MVT::v8f32,
/*562104*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*562107*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562109*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*562112*/      OPC_EmitMergeInputChains1_0,
/*562113*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERDPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, MVT::v8i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v8f32] }:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv8i32>> - Complexity = 22
                // Dst: (VGATHERDPSZ256rm:{ *:[v8f32] }:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*562127*/    /*Scope*/ 27, /*->562155*/
/*562128*/      OPC_CheckPredicate, 106, // Predicate_mgatherv4i64
/*562130*/      OPC_CheckType, MVT::v4f32,
/*562132*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*562135*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562137*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*562140*/      OPC_EmitMergeInputChains1_0,
/*562141*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERQPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, MVT::v4i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v4f32] }:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i64>> - Complexity = 22
                // Dst: (VGATHERQPSZ256rm:{ *:[v4f32] }:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*562155*/    /*Scope*/ 27, /*->562183*/
/*562156*/      OPC_CheckPredicate, 104, // Predicate_mgatherv4i32
/*562158*/      OPC_CheckType, MVT::v4f32,
/*562160*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*562163*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562165*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*562168*/      OPC_EmitMergeInputChains1_0,
/*562169*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERDPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, MVT::v4i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v4f32] }:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv4i32>> - Complexity = 22
                // Dst: (VGATHERDPSZ128rm:{ *:[v4f32] }:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*562183*/    /*Scope*/ 27, /*->562211*/
/*562184*/      OPC_CheckPredicate, 105, // Predicate_mgatherv2i64
/*562186*/      OPC_CheckType, MVT::v4f32,
/*562188*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*562191*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562193*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*562196*/      OPC_EmitMergeInputChains1_0,
/*562197*/      OPC_MorphNodeTo2, TARGET_VAL(X86::VGATHERQPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, MVT::v2i1, 7/*#Ops*/, 1, 2, 4, 5, 6, 7, 8, 
                // Src: (X86masked_gather:{ *:[v4f32] }:{ *:[v2i1] } VR128X:{ *:[v4f32] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)<<P:Predicate_mgatherv2i64>> - Complexity = 22
                // Dst: (VGATHERQPSZ128rm:{ *:[v4f32] }:{ *:[v2i1] } VR128X:{ *:[v4f32] }:$src1, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$src2)
/*562211*/    0, /*End of Scope*/
/*562212*/  /*SwitchOpcode*/ 1|128,5/*641*/, TARGET_VAL(X86ISD::MSCATTER),// ->562857
/*562216*/    OPC_RecordMemRef,
/*562217*/    OPC_RecordNode, // #0 = 'X86masked_scatter' chained node
/*562218*/    OPC_RecordChild1, // #1 = $src
/*562219*/    OPC_Scope, 52, /*->562273*/ // 12 children in Scope
/*562221*/      OPC_CheckChild1Type, MVT::v8f64,
/*562223*/      OPC_RecordChild2, // #2 = $mask
/*562224*/      OPC_RecordChild3, // #3 = $dst
/*562225*/      OPC_CheckType, MVT::v8i1,
/*562227*/      OPC_Scope, 21, /*->562250*/ // 2 children in Scope
/*562229*/        OPC_CheckPredicate, 110, // Predicate_mscatterv8i32
/*562231*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562233*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562236*/        OPC_EmitMergeInputChains1_0,
/*562237*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERDPDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv8i32>> - Complexity = 22
                  // Dst: (VSCATTERDPDZmr:{ *:[v8i1] } vectoraddr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*562250*/      /*Scope*/ 21, /*->562272*/
/*562251*/        OPC_CheckPredicate, 111, // Predicate_mscatterv8i64
/*562253*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562255*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562258*/        OPC_EmitMergeInputChains1_0,
/*562259*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERQPDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv8i64>> - Complexity = 22
                  // Dst: (VSCATTERQPDZmr:{ *:[v8i1] } vectoraddr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*562272*/      0, /*End of Scope*/
/*562273*/    /*Scope*/ 52, /*->562326*/
/*562274*/      OPC_CheckChild1Type, MVT::v4f64,
/*562276*/      OPC_RecordChild2, // #2 = $mask
/*562277*/      OPC_RecordChild3, // #3 = $dst
/*562278*/      OPC_CheckType, MVT::v4i1,
/*562280*/      OPC_Scope, 21, /*->562303*/ // 2 children in Scope
/*562282*/        OPC_CheckPredicate, 112, // Predicate_mscatterv4i32
/*562284*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562286*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562289*/        OPC_EmitMergeInputChains1_0,
/*562290*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERDPDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv4i32>> - Complexity = 22
                  // Dst: (VSCATTERDPDZ256mr:{ *:[v4i1] } vectoraddr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*562303*/      /*Scope*/ 21, /*->562325*/
/*562304*/        OPC_CheckPredicate, 113, // Predicate_mscatterv4i64
/*562306*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562308*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562311*/        OPC_EmitMergeInputChains1_0,
/*562312*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERQPDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv4i64>> - Complexity = 22
                  // Dst: (VSCATTERQPDZ256mr:{ *:[v4i1] } vectoraddr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*562325*/      0, /*End of Scope*/
/*562326*/    /*Scope*/ 52, /*->562379*/
/*562327*/      OPC_CheckChild1Type, MVT::v2f64,
/*562329*/      OPC_RecordChild2, // #2 = $mask
/*562330*/      OPC_RecordChild3, // #3 = $dst
/*562331*/      OPC_CheckType, MVT::v2i1,
/*562333*/      OPC_Scope, 21, /*->562356*/ // 2 children in Scope
/*562335*/        OPC_CheckPredicate, 112, // Predicate_mscatterv4i32
/*562337*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562339*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562342*/        OPC_EmitMergeInputChains1_0,
/*562343*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERDPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv4i32>> - Complexity = 22
                  // Dst: (VSCATTERDPDZ128mr:{ *:[v2i1] } vectoraddr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*562356*/      /*Scope*/ 21, /*->562378*/
/*562357*/        OPC_CheckPredicate, 114, // Predicate_mscatterv2i64
/*562359*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562361*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562364*/        OPC_EmitMergeInputChains1_0,
/*562365*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERQPDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv2i64>> - Complexity = 22
                  // Dst: (VSCATTERQPDZ128mr:{ *:[v2i1] } vectoraddr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*562378*/      0, /*End of Scope*/
/*562379*/    /*Scope*/ 27, /*->562407*/
/*562380*/      OPC_CheckChild1Type, MVT::v16f32,
/*562382*/      OPC_RecordChild2, // #2 = $mask
/*562383*/      OPC_RecordChild3, // #3 = $dst
/*562384*/      OPC_CheckPredicate, 115, // Predicate_mscatterv16i32
/*562386*/      OPC_CheckType, MVT::v16i1,
/*562388*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562390*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562393*/      OPC_EmitMergeInputChains1_0,
/*562394*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERDPSZmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                // Src: (X86masked_scatter:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src, VK16WM:{ *:[v16i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv16i32>> - Complexity = 22
                // Dst: (VSCATTERDPSZmr:{ *:[v16i1] } vectoraddr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*562407*/    /*Scope*/ 52, /*->562460*/
/*562408*/      OPC_CheckChild1Type, MVT::v8f32,
/*562410*/      OPC_RecordChild2, // #2 = $mask
/*562411*/      OPC_RecordChild3, // #3 = $dst
/*562412*/      OPC_CheckType, MVT::v8i1,
/*562414*/      OPC_Scope, 21, /*->562437*/ // 2 children in Scope
/*562416*/        OPC_CheckPredicate, 111, // Predicate_mscatterv8i64
/*562418*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562420*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562423*/        OPC_EmitMergeInputChains1_0,
/*562424*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERQPSZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv8i64>> - Complexity = 22
                  // Dst: (VSCATTERQPSZmr:{ *:[v8i1] } vectoraddr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*562437*/      /*Scope*/ 21, /*->562459*/
/*562438*/        OPC_CheckPredicate, 110, // Predicate_mscatterv8i32
/*562440*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562442*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562445*/        OPC_EmitMergeInputChains1_0,
/*562446*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERDPSZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv8i32>> - Complexity = 22
                  // Dst: (VSCATTERDPSZ256mr:{ *:[v8i1] } vectoraddr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*562459*/      0, /*End of Scope*/
/*562460*/    /*Scope*/ 77, /*->562538*/
/*562461*/      OPC_CheckChild1Type, MVT::v4f32,
/*562463*/      OPC_RecordChild2, // #2 = $mask
/*562464*/      OPC_RecordChild3, // #3 = $dst
/*562465*/      OPC_SwitchType /*2 cases */, 46, MVT::v4i1,// ->562514
/*562468*/        OPC_Scope, 21, /*->562491*/ // 2 children in Scope
/*562470*/          OPC_CheckPredicate, 113, // Predicate_mscatterv4i64
/*562472*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562474*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562477*/          OPC_EmitMergeInputChains1_0,
/*562478*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERQPSZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                    // Src: (X86masked_scatter:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv4i64>> - Complexity = 22
                    // Dst: (VSCATTERQPSZ256mr:{ *:[v4i1] } vectoraddr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*562491*/        /*Scope*/ 21, /*->562513*/
/*562492*/          OPC_CheckPredicate, 112, // Predicate_mscatterv4i32
/*562494*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562496*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562499*/          OPC_EmitMergeInputChains1_0,
/*562500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERDPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                    // Src: (X86masked_scatter:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv4i32>> - Complexity = 22
                    // Dst: (VSCATTERDPSZ128mr:{ *:[v4i1] } vectoraddr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*562513*/        0, /*End of Scope*/
/*562514*/      /*SwitchType*/ 21, MVT::v2i1,// ->562537
/*562516*/        OPC_CheckPredicate, 114, // Predicate_mscatterv2i64
/*562518*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562520*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562523*/        OPC_EmitMergeInputChains1_0,
/*562524*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCATTERQPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v2i1] } VR128X:{ *:[v4f32] }:$src, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv2i64>> - Complexity = 22
                  // Dst: (VSCATTERQPSZ128mr:{ *:[v2i1] } vectoraddr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*562537*/      0, // EndSwitchType
/*562538*/    /*Scope*/ 52, /*->562591*/
/*562539*/      OPC_CheckChild1Type, MVT::v8i64,
/*562541*/      OPC_RecordChild2, // #2 = $mask
/*562542*/      OPC_RecordChild3, // #3 = $dst
/*562543*/      OPC_CheckType, MVT::v8i1,
/*562545*/      OPC_Scope, 21, /*->562568*/ // 2 children in Scope
/*562547*/        OPC_CheckPredicate, 110, // Predicate_mscatterv8i32
/*562549*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562551*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562554*/        OPC_EmitMergeInputChains1_0,
/*562555*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERDQZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv8i32>> - Complexity = 22
                  // Dst: (VPSCATTERDQZmr:{ *:[v8i1] } vectoraddr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*562568*/      /*Scope*/ 21, /*->562590*/
/*562569*/        OPC_CheckPredicate, 111, // Predicate_mscatterv8i64
/*562571*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562573*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562576*/        OPC_EmitMergeInputChains1_0,
/*562577*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERQQZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv8i64>> - Complexity = 22
                  // Dst: (VPSCATTERQQZmr:{ *:[v8i1] } vectoraddr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*562590*/      0, /*End of Scope*/
/*562591*/    /*Scope*/ 52, /*->562644*/
/*562592*/      OPC_CheckChild1Type, MVT::v4i64,
/*562594*/      OPC_RecordChild2, // #2 = $mask
/*562595*/      OPC_RecordChild3, // #3 = $dst
/*562596*/      OPC_CheckType, MVT::v4i1,
/*562598*/      OPC_Scope, 21, /*->562621*/ // 2 children in Scope
/*562600*/        OPC_CheckPredicate, 112, // Predicate_mscatterv4i32
/*562602*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562604*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562607*/        OPC_EmitMergeInputChains1_0,
/*562608*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERDQZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv4i32>> - Complexity = 22
                  // Dst: (VPSCATTERDQZ256mr:{ *:[v4i1] } vectoraddr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*562621*/      /*Scope*/ 21, /*->562643*/
/*562622*/        OPC_CheckPredicate, 113, // Predicate_mscatterv4i64
/*562624*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562626*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562629*/        OPC_EmitMergeInputChains1_0,
/*562630*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERQQZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv4i64>> - Complexity = 22
                  // Dst: (VPSCATTERQQZ256mr:{ *:[v4i1] } vectoraddr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*562643*/      0, /*End of Scope*/
/*562644*/    /*Scope*/ 52, /*->562697*/
/*562645*/      OPC_CheckChild1Type, MVT::v2i64,
/*562647*/      OPC_RecordChild2, // #2 = $mask
/*562648*/      OPC_RecordChild3, // #3 = $dst
/*562649*/      OPC_CheckType, MVT::v2i1,
/*562651*/      OPC_Scope, 21, /*->562674*/ // 2 children in Scope
/*562653*/        OPC_CheckPredicate, 112, // Predicate_mscatterv4i32
/*562655*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562657*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562660*/        OPC_EmitMergeInputChains1_0,
/*562661*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERDQZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv4i32>> - Complexity = 22
                  // Dst: (VPSCATTERDQZ128mr:{ *:[v2i1] } vectoraddr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*562674*/      /*Scope*/ 21, /*->562696*/
/*562675*/        OPC_CheckPredicate, 114, // Predicate_mscatterv2i64
/*562677*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562679*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562682*/        OPC_EmitMergeInputChains1_0,
/*562683*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERQQZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv2i64>> - Complexity = 22
                  // Dst: (VPSCATTERQQZ128mr:{ *:[v2i1] } vectoraddr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*562696*/      0, /*End of Scope*/
/*562697*/    /*Scope*/ 27, /*->562725*/
/*562698*/      OPC_CheckChild1Type, MVT::v16i32,
/*562700*/      OPC_RecordChild2, // #2 = $mask
/*562701*/      OPC_RecordChild3, // #3 = $dst
/*562702*/      OPC_CheckPredicate, 115, // Predicate_mscatterv16i32
/*562704*/      OPC_CheckType, MVT::v16i1,
/*562706*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562708*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562711*/      OPC_EmitMergeInputChains1_0,
/*562712*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERDDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                // Src: (X86masked_scatter:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src, VK16WM:{ *:[v16i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv16i32>> - Complexity = 22
                // Dst: (VPSCATTERDDZmr:{ *:[v16i1] } vectoraddr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*562725*/    /*Scope*/ 52, /*->562778*/
/*562726*/      OPC_CheckChild1Type, MVT::v8i32,
/*562728*/      OPC_RecordChild2, // #2 = $mask
/*562729*/      OPC_RecordChild3, // #3 = $dst
/*562730*/      OPC_CheckType, MVT::v8i1,
/*562732*/      OPC_Scope, 21, /*->562755*/ // 2 children in Scope
/*562734*/        OPC_CheckPredicate, 111, // Predicate_mscatterv8i64
/*562736*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562738*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562741*/        OPC_EmitMergeInputChains1_0,
/*562742*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERQDZmr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv8i64>> - Complexity = 22
                  // Dst: (VPSCATTERQDZmr:{ *:[v8i1] } vectoraddr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*562755*/      /*Scope*/ 21, /*->562777*/
/*562756*/        OPC_CheckPredicate, 110, // Predicate_mscatterv8i32
/*562758*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562760*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562763*/        OPC_EmitMergeInputChains1_0,
/*562764*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERDDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src, VK8WM:{ *:[v8i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv8i32>> - Complexity = 22
                  // Dst: (VPSCATTERDDZ256mr:{ *:[v8i1] } vectoraddr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*562777*/      0, /*End of Scope*/
/*562778*/    /*Scope*/ 77, /*->562856*/
/*562779*/      OPC_CheckChild1Type, MVT::v4i32,
/*562781*/      OPC_RecordChild2, // #2 = $mask
/*562782*/      OPC_RecordChild3, // #3 = $dst
/*562783*/      OPC_SwitchType /*2 cases */, 46, MVT::v4i1,// ->562832
/*562786*/        OPC_Scope, 21, /*->562809*/ // 2 children in Scope
/*562788*/          OPC_CheckPredicate, 113, // Predicate_mscatterv4i64
/*562790*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562792*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562795*/          OPC_EmitMergeInputChains1_0,
/*562796*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERQDZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                    // Src: (X86masked_scatter:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv4i64>> - Complexity = 22
                    // Dst: (VPSCATTERQDZ256mr:{ *:[v4i1] } vectoraddr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*562809*/        /*Scope*/ 21, /*->562831*/
/*562810*/          OPC_CheckPredicate, 112, // Predicate_mscatterv4i32
/*562812*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562814*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562817*/          OPC_EmitMergeInputChains1_0,
/*562818*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERDDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                    // Src: (X86masked_scatter:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src, VK4WM:{ *:[v4i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv4i32>> - Complexity = 22
                    // Dst: (VPSCATTERDDZ128mr:{ *:[v4i1] } vectoraddr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*562831*/        0, /*End of Scope*/
/*562832*/      /*SwitchType*/ 21, MVT::v2i1,// ->562855
/*562834*/        OPC_CheckPredicate, 114, // Predicate_mscatterv2i64
/*562836*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562838*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*562841*/        OPC_EmitMergeInputChains1_0,
/*562842*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSCATTERQDZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 1, 
                  // Src: (X86masked_scatter:{ *:[v2i1] } VR128X:{ *:[v4i32] }:$src, VK2WM:{ *:[v2i1] }:$mask, vectoraddr:{ *:[iPTR] }:$dst)<<P:Predicate_mscatterv2i64>> - Complexity = 22
                  // Dst: (VPSCATTERQDZ128mr:{ *:[v2i1] } vectoraddr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*562855*/      0, // EndSwitchType
/*562856*/    0, /*End of Scope*/
/*562857*/  /*SwitchOpcode*/ 79|128,5/*719*/, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->563580
/*562861*/    OPC_RecordMemRef,
/*562862*/    OPC_RecordNode, // #0 = 'X86vzload' chained node
/*562863*/    OPC_RecordChild1, // #1 = $src
/*562864*/    OPC_SwitchType /*12 cases */, 56, MVT::v4i32,// ->562923
/*562867*/      OPC_Scope, 17, /*->562886*/ // 3 children in Scope
/*562869*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*562871*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*562874*/        OPC_EmitMergeInputChains1_0,
/*562875*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzload:{ *:[v4i32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (VMOVDI2PDIrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*562886*/      /*Scope*/ 17, /*->562904*/
/*562887*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*562889*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*562892*/        OPC_EmitMergeInputChains1_0,
/*562893*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzload:{ *:[v4i32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (MOVDI2PDIrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*562904*/      /*Scope*/ 17, /*->562922*/
/*562905*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562907*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*562910*/        OPC_EmitMergeInputChains1_0,
/*562911*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzload:{ *:[v4i32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (VMOVDI2PDIZrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*562922*/      0, /*End of Scope*/
/*562923*/    /*SwitchType*/ 56, MVT::v2i64,// ->562981
/*562925*/      OPC_Scope, 17, /*->562944*/ // 3 children in Scope
/*562927*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*562929*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*562932*/        OPC_EmitMergeInputChains1_0,
/*562933*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (VMOVQI2PQIrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*562944*/      /*Scope*/ 17, /*->562962*/
/*562945*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*562947*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*562950*/        OPC_EmitMergeInputChains1_0,
/*562951*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (MOVQI2PQIrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*562962*/      /*Scope*/ 17, /*->562980*/
/*562963*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562965*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*562968*/        OPC_EmitMergeInputChains1_0,
/*562969*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVQI2PQIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (VMOVQI2PQIZrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*562980*/      0, /*End of Scope*/
/*562981*/    /*SwitchType*/ 68, MVT::v8i32,// ->563051
/*562983*/      OPC_Scope, 32, /*->563017*/ // 2 children in Scope
/*562985*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*562987*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*562990*/        OPC_EmitMergeInputChains1_0,
/*562991*/        OPC_EmitInteger, MVT::i64, 0, 
/*562994*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563005*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563008*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::v8i32, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (X86vzload:{ *:[v8i32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i64] }, (VMOVDI2PDIrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563017*/      /*Scope*/ 32, /*->563050*/
/*563018*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563020*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563023*/        OPC_EmitMergeInputChains1_0,
/*563024*/        OPC_EmitInteger, MVT::i32, 0, 
/*563027*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563038*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563041*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::v8i32, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (X86vzload:{ *:[v8i32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i32] }, (VMOVDI2PDIZrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563050*/      0, /*End of Scope*/
/*563051*/    /*SwitchType*/ 68, MVT::v4i64,// ->563121
/*563053*/      OPC_Scope, 32, /*->563087*/ // 2 children in Scope
/*563055*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*563057*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563060*/        OPC_EmitMergeInputChains1_0,
/*563061*/        OPC_EmitInteger, MVT::i64, 0, 
/*563064*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563075*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563078*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::v4i64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (X86vzload:{ *:[v4i64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOVQI2PQIrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563087*/      /*Scope*/ 32, /*->563120*/
/*563088*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563090*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563093*/        OPC_EmitMergeInputChains1_0,
/*563094*/        OPC_EmitInteger, MVT::i64, 0, 
/*563097*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVQI2PQIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563108*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563111*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::v4i64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (X86vzload:{ *:[v4i64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOVQI2PQIZrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563120*/      0, /*End of Scope*/
/*563121*/    /*SwitchType*/ 32, MVT::v16i32,// ->563155
/*563123*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563125*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563128*/      OPC_EmitMergeInputChains1_0,
/*563129*/      OPC_EmitInteger, MVT::i32, 0, 
/*563132*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563143*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563146*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v16i32, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzload:{ *:[v16i32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i32] }, (VMOVDI2PDIZrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563155*/    /*SwitchType*/ 32, MVT::v8i64,// ->563189
/*563157*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563159*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563162*/      OPC_EmitMergeInputChains1_0,
/*563163*/      OPC_EmitInteger, MVT::i64, 0, 
/*563166*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVQI2PQIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563177*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563180*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v8i64, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzload:{ *:[v8i64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i64] }, (VMOVQI2PQIZrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563189*/    /*SwitchType*/ 89, MVT::v4f32,// ->563280
/*563191*/      OPC_Scope, 28, /*->563221*/ // 3 children in Scope
/*563193*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*563195*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563198*/        OPC_EmitMergeInputChains1_0,
/*563199*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*563210*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*563213*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4f32, 2/*#Ops*/, 7, 8, 
                  // Src: (X86vzload:{ *:[v4f32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } (VMOVSSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*563221*/      /*Scope*/ 28, /*->563250*/
/*563222*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*563224*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563227*/        OPC_EmitMergeInputChains1_0,
/*563228*/        OPC_EmitNode1, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*563239*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*563242*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4f32, 2/*#Ops*/, 7, 8, 
                  // Src: (X86vzload:{ *:[v4f32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } (MOVSSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*563250*/      /*Scope*/ 28, /*->563279*/
/*563251*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563253*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563256*/        OPC_EmitMergeInputChains1_0,
/*563257*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*563268*/        OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*563271*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4f32, 2/*#Ops*/, 7, 8, 
                  // Src: (X86vzload:{ *:[v4f32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } (VMOVSSZrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), VR128X:{ *:[i32] })
/*563279*/      0, /*End of Scope*/
/*563280*/    /*SwitchType*/ 89, MVT::v2f64,// ->563371
/*563282*/      OPC_Scope, 28, /*->563312*/ // 3 children in Scope
/*563284*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*563286*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563289*/        OPC_EmitMergeInputChains1_0,
/*563290*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*563301*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*563304*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2f64, 2/*#Ops*/, 7, 8, 
                  // Src: (X86vzload:{ *:[v2f64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (VMOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*563312*/      /*Scope*/ 28, /*->563341*/
/*563313*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*563315*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563318*/        OPC_EmitMergeInputChains1_0,
/*563319*/        OPC_EmitNode1, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*563330*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*563333*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2f64, 2/*#Ops*/, 7, 8, 
                  // Src: (X86vzload:{ *:[v2f64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (MOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128:{ *:[i32] })
/*563341*/      /*Scope*/ 28, /*->563370*/
/*563342*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563344*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563347*/        OPC_EmitMergeInputChains1_0,
/*563348*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*563359*/        OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*563362*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2f64, 2/*#Ops*/, 7, 8, 
                  // Src: (X86vzload:{ *:[v2f64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (VMOVSDZrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), VR128X:{ *:[i32] })
/*563370*/      0, /*End of Scope*/
/*563371*/    /*SwitchType*/ 68, MVT::v8f32,// ->563441
/*563373*/      OPC_Scope, 32, /*->563407*/ // 2 children in Scope
/*563375*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*563377*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563380*/        OPC_EmitMergeInputChains1_0,
/*563381*/        OPC_EmitInteger, MVT::i32, 0, 
/*563384*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563395*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563398*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::v8f32, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (X86vzload:{ *:[v8f32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i32] }, (VMOVSSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563407*/      /*Scope*/ 32, /*->563440*/
/*563408*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563410*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563413*/        OPC_EmitMergeInputChains1_0,
/*563414*/        OPC_EmitInteger, MVT::i32, 0, 
/*563417*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563428*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563431*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::v8f32, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (X86vzload:{ *:[v8f32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i32] }, (VMOVSSZrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563440*/      0, /*End of Scope*/
/*563441*/    /*SwitchType*/ 68, MVT::v4f64,// ->563511
/*563443*/      OPC_Scope, 32, /*->563477*/ // 2 children in Scope
/*563445*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*563447*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563450*/        OPC_EmitMergeInputChains1_0,
/*563451*/        OPC_EmitInteger, MVT::i32, 0, 
/*563454*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563465*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563468*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::v4f64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (X86vzload:{ *:[v4f64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i32] }, (VMOVSDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563477*/      /*Scope*/ 32, /*->563510*/
/*563478*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563480*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563483*/        OPC_EmitMergeInputChains1_0,
/*563484*/        OPC_EmitInteger, MVT::i32, 0, 
/*563487*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563498*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563501*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::v4f64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (X86vzload:{ *:[v4f64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                  // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i32] }, (VMOVSDZrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563510*/      0, /*End of Scope*/
/*563511*/    /*SwitchType*/ 32, MVT::v16f32,// ->563545
/*563513*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563515*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563518*/      OPC_EmitMergeInputChains1_0,
/*563519*/      OPC_EmitInteger, MVT::i32, 0, 
/*563522*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563533*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563536*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v16f32, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzload:{ *:[v16f32] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i32] }, (VMOVSSZrm:{ *:[f32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563545*/    /*SwitchType*/ 32, MVT::v8f64,// ->563579
/*563547*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563549*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563552*/      OPC_EmitMergeInputChains1_0,
/*563553*/      OPC_EmitInteger, MVT::i32, 0, 
/*563556*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*563567*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*563570*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v8f64, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzload:{ *:[v8f64] } addr:{ *:[iPTR] }:$src) - Complexity = 21
                // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i32] }, (VMOVSDZrm:{ *:[f64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*563579*/    0, // EndSwitchType
/*563580*/  /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::FSETCCM_RND),// ->563640
/*563583*/    OPC_RecordChild0, // #0 = $src1
/*563584*/    OPC_Scope, 26, /*->563612*/ // 2 children in Scope
/*563586*/      OPC_CheckChild0Type, MVT::v4f32,
/*563588*/      OPC_RecordChild1, // #1 = $src2
/*563589*/      OPC_RecordChild2, // #2 = $cc
/*563590*/      OPC_MoveChild2,
/*563591*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*563594*/      OPC_MoveParent,
/*563595*/      OPC_CheckChild3Integer, 8, 
/*563597*/      OPC_CheckType, MVT::v1i1,
/*563599*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563601*/      OPC_EmitConvertToTarget, 2,
/*563603*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrrb_Int), 0,
                    MVT::v1i1, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86cmpmsRnd:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VCMPSSZrrb_Int:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*563612*/    /*Scope*/ 26, /*->563639*/
/*563613*/      OPC_CheckChild0Type, MVT::v2f64,
/*563615*/      OPC_RecordChild1, // #1 = $src2
/*563616*/      OPC_RecordChild2, // #2 = $cc
/*563617*/      OPC_MoveChild2,
/*563618*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*563621*/      OPC_MoveParent,
/*563622*/      OPC_CheckChild3Integer, 8, 
/*563624*/      OPC_CheckType, MVT::v1i1,
/*563626*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563628*/      OPC_EmitConvertToTarget, 2,
/*563630*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrrb_Int), 0,
                    MVT::v1i1, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86cmpmsRnd:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VCMPSDZrrb_Int:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*563639*/    0, /*End of Scope*/
/*563640*/  /*SwitchOpcode*/ 55, TARGET_VAL(X86ISD::CMPM_RND),// ->563698
/*563643*/    OPC_RecordChild0, // #0 = $src1
/*563644*/    OPC_Scope, 26, /*->563672*/ // 2 children in Scope
/*563646*/      OPC_CheckChild0Type, MVT::v8f64,
/*563648*/      OPC_RecordChild1, // #1 = $src2
/*563649*/      OPC_RecordChild2, // #2 = $cc
/*563650*/      OPC_MoveChild2,
/*563651*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*563654*/      OPC_MoveParent,
/*563655*/      OPC_CheckChild3Integer, 8, 
/*563657*/      OPC_CheckType, MVT::v8i1,
/*563659*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563661*/      OPC_EmitConvertToTarget, 2,
/*563663*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrrib), 0,
                    MVT::v8i1, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86cmpmRnd:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VCMPPDZrrib:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*563672*/    /*Scope*/ 24, /*->563697*/
/*563673*/      OPC_RecordChild1, // #1 = $src2
/*563674*/      OPC_RecordChild2, // #2 = $cc
/*563675*/      OPC_MoveChild2,
/*563676*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*563679*/      OPC_MoveParent,
/*563680*/      OPC_CheckChild3Integer, 8, 
/*563682*/      OPC_CheckType, MVT::v16i1,
/*563684*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563686*/      OPC_EmitConvertToTarget, 2,
/*563688*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrrib), 0,
                    MVT::v16i1, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86cmpmRnd:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VCMPPSZrrib:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*563697*/    0, /*End of Scope*/
/*563698*/  /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::EXTRQI),// ->563729
/*563701*/    OPC_RecordChild0, // #0 = $src
/*563702*/    OPC_RecordChild1, // #1 = $len
/*563703*/    OPC_MoveChild1,
/*563704*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*563707*/    OPC_MoveParent,
/*563708*/    OPC_RecordChild2, // #2 = $idx
/*563709*/    OPC_MoveChild2,
/*563710*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*563713*/    OPC_MoveParent,
/*563714*/    OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/*563716*/    OPC_EmitConvertToTarget, 1,
/*563718*/    OPC_EmitConvertToTarget, 2,
/*563720*/    OPC_MorphNodeTo1, TARGET_VAL(X86::EXTRQI), 0,
                  MVT::v2i64, 3/*#Ops*/, 0, 3, 4, 
              // Src: (X86extrqi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, (imm:{ *:[i8] }):$len, (imm:{ *:[i8] }):$idx) - Complexity = 9
              // Dst: (EXTRQI:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, (imm:{ *:[i8] }):$len, (imm:{ *:[i8] }):$idx)
/*563729*/  /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::INSERTQI),// ->563762
/*563732*/    OPC_RecordChild0, // #0 = $src
/*563733*/    OPC_RecordChild1, // #1 = $src2
/*563734*/    OPC_RecordChild2, // #2 = $len
/*563735*/    OPC_MoveChild2,
/*563736*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*563739*/    OPC_MoveParent,
/*563740*/    OPC_RecordChild3, // #3 = $idx
/*563741*/    OPC_MoveChild3,
/*563742*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*563745*/    OPC_MoveParent,
/*563746*/    OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/*563748*/    OPC_EmitConvertToTarget, 2,
/*563750*/    OPC_EmitConvertToTarget, 3,
/*563752*/    OPC_MorphNodeTo1, TARGET_VAL(X86::INSERTQI), 0,
                  MVT::v2i64, 4/*#Ops*/, 0, 1, 4, 5, 
              // Src: (X86insertqi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$len, (imm:{ *:[i8] }):$idx) - Complexity = 9
              // Dst: (INSERTQI:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, VR128:{ *:[v2i64] }:$src2, (imm:{ *:[i8] }):$len, (imm:{ *:[i8] }):$idx)
/*563762*/  /*SwitchOpcode*/ 115|128,19/*2547*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->566313
/*563766*/    OPC_Scope, 14|128,6/*782*/, /*->564551*/ // 5 children in Scope
/*563769*/      OPC_RecordChild0, // #0 = $src
/*563770*/      OPC_Scope, 19, /*->563791*/ // 11 children in Scope
/*563772*/        OPC_CheckChild0Type, MVT::v2i1,
/*563774*/        OPC_CheckChild1Integer, 0, 
/*563776*/        OPC_CheckChild1Type, MVT::iPTR,
/*563778*/        OPC_CheckType, MVT::v1i1,
/*563780*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*563783*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i1, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v1i1] } VK2:{ *:[v2i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } VK2:{ *:[v2i1] }:$src, VK1:{ *:[i32] })
/*563791*/      /*Scope*/ 34, /*->563826*/
/*563792*/        OPC_CheckChild0Type, MVT::v4i1,
/*563794*/        OPC_CheckChild1Integer, 0, 
/*563796*/        OPC_CheckChild1Type, MVT::iPTR,
/*563798*/        OPC_SwitchType /*2 cases */, 11, MVT::v1i1,// ->563812
/*563801*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*563804*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v1i1] } VK4:{ *:[v4i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } VK4:{ *:[v4i1] }:$src, VK1:{ *:[i32] })
/*563812*/        /*SwitchType*/ 11, MVT::v2i1,// ->563825
/*563814*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*563817*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v2i1] } VK4:{ *:[v4i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } VK4:{ *:[v4i1] }:$src, VK2:{ *:[i32] })
/*563825*/        0, // EndSwitchType
/*563826*/      /*Scope*/ 47, /*->563874*/
/*563827*/        OPC_CheckChild0Type, MVT::v8i1,
/*563829*/        OPC_CheckChild1Integer, 0, 
/*563831*/        OPC_CheckChild1Type, MVT::iPTR,
/*563833*/        OPC_SwitchType /*3 cases */, 11, MVT::v1i1,// ->563847
/*563836*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*563839*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v1i1] } VK8:{ *:[v8i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } VK8:{ *:[v8i1] }:$src, VK1:{ *:[i32] })
/*563847*/        /*SwitchType*/ 11, MVT::v2i1,// ->563860
/*563849*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*563852*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v2i1] } VK8:{ *:[v8i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } VK8:{ *:[v8i1] }:$src, VK2:{ *:[i32] })
/*563860*/        /*SwitchType*/ 11, MVT::v4i1,// ->563873
/*563862*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*563865*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v4i1] } VK8:{ *:[v8i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } VK8:{ *:[v8i1] }:$src, VK4:{ *:[i32] })
/*563873*/        0, // EndSwitchType
/*563874*/      /*Scope*/ 60, /*->563935*/
/*563875*/        OPC_CheckChild0Type, MVT::v16i1,
/*563877*/        OPC_CheckChild1Integer, 0, 
/*563879*/        OPC_CheckChild1Type, MVT::iPTR,
/*563881*/        OPC_SwitchType /*4 cases */, 11, MVT::v1i1,// ->563895
/*563884*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*563887*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v1i1] } VK16:{ *:[v16i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } VK16:{ *:[v16i1] }:$src, VK1:{ *:[i32] })
/*563895*/        /*SwitchType*/ 11, MVT::v2i1,// ->563908
/*563897*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*563900*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v2i1] } VK16:{ *:[v16i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } VK16:{ *:[v16i1] }:$src, VK2:{ *:[i32] })
/*563908*/        /*SwitchType*/ 11, MVT::v4i1,// ->563921
/*563910*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*563913*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v4i1] } VK16:{ *:[v16i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } VK16:{ *:[v16i1] }:$src, VK4:{ *:[i32] })
/*563921*/        /*SwitchType*/ 11, MVT::v8i1,// ->563934
/*563923*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*563926*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v8i1] } VK16:{ *:[v16i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK16:{ *:[v16i1] }:$src, VK8:{ *:[i32] })
/*563934*/        0, // EndSwitchType
/*563935*/      /*Scope*/ 73, /*->564009*/
/*563936*/        OPC_CheckChild0Type, MVT::v32i1,
/*563938*/        OPC_CheckChild1Integer, 0, 
/*563940*/        OPC_CheckChild1Type, MVT::iPTR,
/*563942*/        OPC_SwitchType /*5 cases */, 11, MVT::v1i1,// ->563956
/*563945*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*563948*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v1i1] } VK32:{ *:[v32i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } VK32:{ *:[v32i1] }:$src, VK1:{ *:[i32] })
/*563956*/        /*SwitchType*/ 11, MVT::v2i1,// ->563969
/*563958*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*563961*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v2i1] } VK32:{ *:[v32i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } VK32:{ *:[v32i1] }:$src, VK2:{ *:[i32] })
/*563969*/        /*SwitchType*/ 11, MVT::v4i1,// ->563982
/*563971*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*563974*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v4i1] } VK32:{ *:[v32i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } VK32:{ *:[v32i1] }:$src, VK4:{ *:[i32] })
/*563982*/        /*SwitchType*/ 11, MVT::v8i1,// ->563995
/*563984*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*563987*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v8i1] } VK32:{ *:[v32i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK32:{ *:[v32i1] }:$src, VK8:{ *:[i32] })
/*563995*/        /*SwitchType*/ 11, MVT::v16i1,// ->564008
/*563997*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*564000*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v16i1] } VK32:{ *:[v32i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK32:{ *:[v32i1] }:$src, VK16:{ *:[i32] })
/*564008*/        0, // EndSwitchType
/*564009*/      /*Scope*/ 73, /*->564083*/
/*564010*/        OPC_CheckChild0Type, MVT::v64i1,
/*564012*/        OPC_CheckChild1Integer, 0, 
/*564014*/        OPC_CheckChild1Type, MVT::iPTR,
/*564016*/        OPC_SwitchType /*5 cases */, 11, MVT::v1i1,// ->564030
/*564019*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*564022*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v1i1] } VK64:{ *:[v64i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } VK64:{ *:[v64i1] }:$src, VK1:{ *:[i32] })
/*564030*/        /*SwitchType*/ 11, MVT::v2i1,// ->564043
/*564032*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*564035*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v2i1] } VK64:{ *:[v64i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } VK64:{ *:[v64i1] }:$src, VK2:{ *:[i32] })
/*564043*/        /*SwitchType*/ 11, MVT::v4i1,// ->564056
/*564045*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*564048*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v4i1] } VK64:{ *:[v64i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } VK64:{ *:[v64i1] }:$src, VK4:{ *:[i32] })
/*564056*/        /*SwitchType*/ 11, MVT::v8i1,// ->564069
/*564058*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*564061*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v8i1] } VK64:{ *:[v64i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK64:{ *:[v64i1] }:$src, VK8:{ *:[i32] })
/*564069*/        /*SwitchType*/ 11, MVT::v16i1,// ->564082
/*564071*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*564074*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v16i1] } VK64:{ *:[v64i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK64:{ *:[v64i1] }:$src, VK16:{ *:[i32] })
/*564082*/        0, // EndSwitchType
/*564083*/      /*Scope*/ 93|128,1/*221*/, /*->564306*/
/*564085*/        OPC_CheckChild1Integer, 0, 
/*564087*/        OPC_Scope, 15, /*->564104*/ // 10 children in Scope
/*564089*/          OPC_CheckChild1Type, MVT::iPTR,
/*564091*/          OPC_CheckType, MVT::v32i1,
/*564093*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*564096*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v32i1] } VK64:{ *:[v64i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK64:{ *:[v64i1] }:$src, VK32:{ *:[i32] })
/*564104*/        /*Scope*/ 17, /*->564122*/
/*564105*/          OPC_CheckChild0Type, MVT::v8i32,
/*564107*/          OPC_CheckChild1Type, MVT::iPTR,
/*564109*/          OPC_CheckType, MVT::v4i32,
/*564111*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*564114*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src, sub_xmm:{ *:[i32] })
/*564122*/        /*Scope*/ 17, /*->564140*/
/*564123*/          OPC_CheckChild0Type, MVT::v4i64,
/*564125*/          OPC_CheckChild1Type, MVT::iPTR,
/*564127*/          OPC_CheckType, MVT::v2i64,
/*564129*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*564132*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] })
/*564140*/        /*Scope*/ 17, /*->564158*/
/*564141*/          OPC_CheckChild0Type, MVT::v16i16,
/*564143*/          OPC_CheckChild1Type, MVT::iPTR,
/*564145*/          OPC_CheckType, MVT::v8i16,
/*564147*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*564150*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src, sub_xmm:{ *:[i32] })
/*564158*/        /*Scope*/ 17, /*->564176*/
/*564159*/          OPC_CheckChild0Type, MVT::v32i8,
/*564161*/          OPC_CheckChild1Type, MVT::iPTR,
/*564163*/          OPC_CheckType, MVT::v16i8,
/*564165*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*564168*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src, sub_xmm:{ *:[i32] })
/*564176*/        /*Scope*/ 17, /*->564194*/
/*564177*/          OPC_CheckChild0Type, MVT::v16i32,
/*564179*/          OPC_CheckChild1Type, MVT::iPTR,
/*564181*/          OPC_CheckType, MVT::v4i32,
/*564183*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*564186*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, sub_xmm:{ *:[i32] })
/*564194*/        /*Scope*/ 17, /*->564212*/
/*564195*/          OPC_CheckChild0Type, MVT::v8i64,
/*564197*/          OPC_CheckChild1Type, MVT::iPTR,
/*564199*/          OPC_CheckType, MVT::v2i64,
/*564201*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*564204*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, sub_xmm:{ *:[i32] })
/*564212*/        /*Scope*/ 17, /*->564230*/
/*564213*/          OPC_CheckChild0Type, MVT::v32i16,
/*564215*/          OPC_CheckChild1Type, MVT::iPTR,
/*564217*/          OPC_CheckType, MVT::v8i16,
/*564219*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*564222*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, sub_xmm:{ *:[i32] })
/*564230*/        /*Scope*/ 17, /*->564248*/
/*564231*/          OPC_CheckChild0Type, MVT::v64i8,
/*564233*/          OPC_CheckChild1Type, MVT::iPTR,
/*564235*/          OPC_CheckType, MVT::v16i8,
/*564237*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*564240*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, sub_xmm:{ *:[i32] })
/*564248*/        /*Scope*/ 56, /*->564305*/
/*564249*/          OPC_CheckChild1Type, MVT::iPTR,
/*564251*/          OPC_SwitchType /*4 cases */, 11, MVT::v8i32,// ->564265
/*564254*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564257*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                      // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, sub_ymm:{ *:[i32] })
/*564265*/          /*SwitchType*/ 11, MVT::v4i64,// ->564278
/*564267*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564270*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, sub_ymm:{ *:[i32] })
/*564278*/          /*SwitchType*/ 11, MVT::v16i16,// ->564291
/*564280*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564283*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                      // Dst: (EXTRACT_SUBREG:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, sub_ymm:{ *:[i32] })
/*564291*/          /*SwitchType*/ 11, MVT::v32i8,// ->564304
/*564293*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564296*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                      // Dst: (EXTRACT_SUBREG:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, sub_ymm:{ *:[i32] })
/*564304*/          0, // EndSwitchType
/*564305*/        0, /*End of Scope*/
/*564306*/      /*Scope*/ 60, /*->564367*/
/*564307*/        OPC_CheckChild1Integer, 2, 
/*564309*/        OPC_CheckChild0Type, MVT::v8i64,
/*564311*/        OPC_CheckChild1Type, MVT::iPTR,
/*564313*/        OPC_CheckType, MVT::v2i64,
/*564315*/        OPC_Scope, 24, /*->564341*/ // 2 children in Scope
/*564317*/          OPC_CheckPatternPredicate, 188, // (!Subtarget->hasVLX())
/*564319*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564322*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*564330*/          OPC_EmitInteger, MVT::i8, 1, 
/*564333*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, 2:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTI128rr:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*564341*/        /*Scope*/ 24, /*->564366*/
/*564342*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564344*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564347*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*564355*/          OPC_EmitInteger, MVT::i8, 1, 
/*564358*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, 2:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTI32x4Z256rr:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*564366*/        0, /*End of Scope*/
/*564367*/      /*Scope*/ 60, /*->564428*/
/*564368*/        OPC_CheckChild1Integer, 4, 
/*564370*/        OPC_CheckChild0Type, MVT::v16i32,
/*564372*/        OPC_CheckChild1Type, MVT::iPTR,
/*564374*/        OPC_CheckType, MVT::v4i32,
/*564376*/        OPC_Scope, 24, /*->564402*/ // 2 children in Scope
/*564378*/          OPC_CheckPatternPredicate, 188, // (!Subtarget->hasVLX())
/*564380*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564383*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*564391*/          OPC_EmitInteger, MVT::i8, 1, 
/*564394*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, 4:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTI128rr:{ *:[v4i32] } (EXTRACT_SUBREG:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*564402*/        /*Scope*/ 24, /*->564427*/
/*564403*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564405*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564408*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*564416*/          OPC_EmitInteger, MVT::i8, 1, 
/*564419*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src, 4:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTI32x4Z256rr:{ *:[v4i32] } (EXTRACT_SUBREG:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*564427*/        0, /*End of Scope*/
/*564428*/      /*Scope*/ 60, /*->564489*/
/*564429*/        OPC_CheckChild1Integer, 8, 
/*564431*/        OPC_CheckChild0Type, MVT::v32i16,
/*564433*/        OPC_CheckChild1Type, MVT::iPTR,
/*564435*/        OPC_CheckType, MVT::v8i16,
/*564437*/        OPC_Scope, 24, /*->564463*/ // 2 children in Scope
/*564439*/          OPC_CheckPatternPredicate, 188, // (!Subtarget->hasVLX())
/*564441*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564444*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*564452*/          OPC_EmitInteger, MVT::i8, 1, 
/*564455*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, 8:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTI128rr:{ *:[v8i16] } (EXTRACT_SUBREG:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*564463*/        /*Scope*/ 24, /*->564488*/
/*564464*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564466*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564469*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*564477*/          OPC_EmitInteger, MVT::i8, 1, 
/*564480*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src, 8:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTI32x4Z256rr:{ *:[v8i16] } (EXTRACT_SUBREG:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*564488*/        0, /*End of Scope*/
/*564489*/      /*Scope*/ 60, /*->564550*/
/*564490*/        OPC_CheckChild1Integer, 16, 
/*564492*/        OPC_CheckChild0Type, MVT::v64i8,
/*564494*/        OPC_CheckChild1Type, MVT::iPTR,
/*564496*/        OPC_CheckType, MVT::v16i8,
/*564498*/        OPC_Scope, 24, /*->564524*/ // 2 children in Scope
/*564500*/          OPC_CheckPatternPredicate, 188, // (!Subtarget->hasVLX())
/*564502*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564505*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*564513*/          OPC_EmitInteger, MVT::i8, 1, 
/*564516*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, 16:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTI128rr:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*564524*/        /*Scope*/ 24, /*->564549*/
/*564525*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564527*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*564530*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*564538*/          OPC_EmitInteger, MVT::i8, 1, 
/*564541*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src, 16:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTI32x4Z256rr:{ *:[v16i8] } (EXTRACT_SUBREG:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*564549*/        0, /*End of Scope*/
/*564550*/      0, /*End of Scope*/
/*564551*/    /*Scope*/ 74|128,3/*458*/, /*->565011*/
/*564553*/      OPC_RecordNode, // #0 = $ext
/*564554*/      OPC_RecordChild0, // #1 = $src1
/*564555*/      OPC_Scope, 41, /*->564598*/ // 15 children in Scope
/*564557*/        OPC_CheckChild0Type, MVT::v4i64,
/*564559*/        OPC_MoveChild1,
/*564560*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564563*/        OPC_CheckType, MVT::iPTR,
/*564565*/        OPC_MoveParent,
/*564566*/        OPC_CheckType, MVT::v2i64,
/*564568*/        OPC_Scope, 13, /*->564583*/ // 2 children in Scope
/*564570*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*564572*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564575*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                    // Dst: (VEXTRACTF128rr:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2i64] }:$ext))
/*564583*/        /*Scope*/ 13, /*->564597*/
/*564584*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*564586*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564589*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                    // Dst: (VEXTRACTI128rr:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2i64] }:$ext))
/*564597*/        0, /*End of Scope*/
/*564598*/      /*Scope*/ 41, /*->564640*/
/*564599*/        OPC_CheckChild0Type, MVT::v8i32,
/*564601*/        OPC_MoveChild1,
/*564602*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564605*/        OPC_CheckType, MVT::iPTR,
/*564607*/        OPC_MoveParent,
/*564608*/        OPC_CheckType, MVT::v4i32,
/*564610*/        OPC_Scope, 13, /*->564625*/ // 2 children in Scope
/*564612*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*564614*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564617*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                    // Dst: (VEXTRACTF128rr:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4i32] }:$ext))
/*564625*/        /*Scope*/ 13, /*->564639*/
/*564626*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*564628*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564631*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                    // Dst: (VEXTRACTI128rr:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4i32] }:$ext))
/*564639*/        0, /*End of Scope*/
/*564640*/      /*Scope*/ 41, /*->564682*/
/*564641*/        OPC_CheckChild0Type, MVT::v16i16,
/*564643*/        OPC_MoveChild1,
/*564644*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564647*/        OPC_CheckType, MVT::iPTR,
/*564649*/        OPC_MoveParent,
/*564650*/        OPC_CheckType, MVT::v8i16,
/*564652*/        OPC_Scope, 13, /*->564667*/ // 2 children in Scope
/*564654*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*564656*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564659*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                    // Dst: (VEXTRACTF128rr:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v8i16] }:$ext))
/*564667*/        /*Scope*/ 13, /*->564681*/
/*564668*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*564670*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564673*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                    // Dst: (VEXTRACTI128rr:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v8i16] }:$ext))
/*564681*/        0, /*End of Scope*/
/*564682*/      /*Scope*/ 41, /*->564724*/
/*564683*/        OPC_CheckChild0Type, MVT::v32i8,
/*564685*/        OPC_MoveChild1,
/*564686*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564689*/        OPC_CheckType, MVT::iPTR,
/*564691*/        OPC_MoveParent,
/*564692*/        OPC_CheckType, MVT::v16i8,
/*564694*/        OPC_Scope, 13, /*->564709*/ // 2 children in Scope
/*564696*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*564698*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564701*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                    // Dst: (VEXTRACTF128rr:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v16i8] }:$ext))
/*564709*/        /*Scope*/ 13, /*->564723*/
/*564710*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*564712*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564715*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                    // Dst: (VEXTRACTI128rr:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v16i8] }:$ext))
/*564723*/        0, /*End of Scope*/
/*564724*/      /*Scope*/ 24, /*->564749*/
/*564725*/        OPC_CheckChild0Type, MVT::v16i32,
/*564727*/        OPC_MoveChild1,
/*564728*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564731*/        OPC_CheckType, MVT::iPTR,
/*564733*/        OPC_MoveParent,
/*564734*/        OPC_CheckType, MVT::v4i32,
/*564736*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564738*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564741*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrr), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx - Complexity = 6
                  // Dst: (VEXTRACTI32x4Zrr:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*564749*/      /*Scope*/ 22, /*->564772*/
/*564750*/        OPC_MoveChild1,
/*564751*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564754*/        OPC_CheckType, MVT::iPTR,
/*564756*/        OPC_MoveParent,
/*564757*/        OPC_CheckType, MVT::v4i64,
/*564759*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564761*/        OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*564764*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrr), 0,
                      MVT::v4i64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx - Complexity = 6
                  // Dst: (VEXTRACTI64x4Zrr:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*564772*/      /*Scope*/ 24, /*->564797*/
/*564773*/        OPC_CheckChild0Type, MVT::v8i32,
/*564775*/        OPC_MoveChild1,
/*564776*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564779*/        OPC_CheckType, MVT::iPTR,
/*564781*/        OPC_MoveParent,
/*564782*/        OPC_CheckType, MVT::v4i32,
/*564784*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564786*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564789*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx - Complexity = 6
                  // Dst: (VEXTRACTI32x4Z256rr:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*564797*/      /*Scope*/ 24, /*->564822*/
/*564798*/        OPC_CheckChild0Type, MVT::v8i64,
/*564800*/        OPC_MoveChild1,
/*564801*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564804*/        OPC_CheckType, MVT::iPTR,
/*564806*/        OPC_MoveParent,
/*564807*/        OPC_CheckType, MVT::v2i64,
/*564809*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564811*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564814*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrr), 0,
                      MVT::v2i64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTI32x4Zrr:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*564822*/      /*Scope*/ 22, /*->564845*/
/*564823*/        OPC_MoveChild1,
/*564824*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564827*/        OPC_CheckType, MVT::iPTR,
/*564829*/        OPC_MoveParent,
/*564830*/        OPC_CheckType, MVT::v8i32,
/*564832*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564834*/        OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*564837*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrr), 0,
                      MVT::v8i32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTI64x4Zrr:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ext))
/*564845*/      /*Scope*/ 24, /*->564870*/
/*564846*/        OPC_CheckChild0Type, MVT::v4i64,
/*564848*/        OPC_MoveChild1,
/*564849*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564852*/        OPC_CheckType, MVT::iPTR,
/*564854*/        OPC_MoveParent,
/*564855*/        OPC_CheckType, MVT::v2i64,
/*564857*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564859*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564862*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                      MVT::v2i64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTI32x4Z256rr:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*564870*/      /*Scope*/ 24, /*->564895*/
/*564871*/        OPC_CheckChild0Type, MVT::v16i16,
/*564873*/        OPC_MoveChild1,
/*564874*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564877*/        OPC_CheckType, MVT::iPTR,
/*564879*/        OPC_MoveParent,
/*564880*/        OPC_CheckType, MVT::v8i16,
/*564882*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564884*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564887*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTI32x4Z256rr:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*564895*/      /*Scope*/ 24, /*->564920*/
/*564896*/        OPC_CheckChild0Type, MVT::v32i8,
/*564898*/        OPC_MoveChild1,
/*564899*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564902*/        OPC_CheckType, MVT::iPTR,
/*564904*/        OPC_MoveParent,
/*564905*/        OPC_CheckType, MVT::v16i8,
/*564907*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564909*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564912*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTI32x4Z256rr:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*564920*/      /*Scope*/ 24, /*->564945*/
/*564921*/        OPC_CheckChild0Type, MVT::v32i16,
/*564923*/        OPC_MoveChild1,
/*564924*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564927*/        OPC_CheckType, MVT::iPTR,
/*564929*/        OPC_MoveParent,
/*564930*/        OPC_CheckType, MVT::v8i16,
/*564932*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564934*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564937*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrr), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTI32x4Zrr:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*564945*/      /*Scope*/ 24, /*->564970*/
/*564946*/        OPC_CheckChild0Type, MVT::v64i8,
/*564948*/        OPC_MoveChild1,
/*564949*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564952*/        OPC_CheckType, MVT::iPTR,
/*564954*/        OPC_MoveParent,
/*564955*/        OPC_CheckType, MVT::v16i8,
/*564957*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564959*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*564962*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrr), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTI32x4Zrr:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*564970*/      /*Scope*/ 39, /*->565010*/
/*564971*/        OPC_MoveChild1,
/*564972*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*564975*/        OPC_CheckType, MVT::iPTR,
/*564977*/        OPC_MoveParent,
/*564978*/        OPC_SwitchType /*2 cases */, 13, MVT::v16i16,// ->564994
/*564981*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564983*/          OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*564986*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext - Complexity = 6
                    // Dst: (VEXTRACTI64x4Zrr:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/*564994*/        /*SwitchType*/ 13, MVT::v32i8,// ->565009
/*564996*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564998*/          OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*565001*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext - Complexity = 6
                    // Dst: (VEXTRACTI64x4Zrr:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/*565009*/        0, // EndSwitchType
/*565010*/      0, /*End of Scope*/
/*565011*/    /*Scope*/ 89|128,6/*857*/, /*->565870*/
/*565013*/      OPC_MoveChild0,
/*565014*/      OPC_CheckOpcode, TARGET_VAL(ISD::MLOAD),
/*565017*/      OPC_RecordMemRef,
/*565018*/      OPC_RecordNode, // #0 = 'masked_load' chained node
/*565019*/      OPC_CheckFoldableChainNode,
/*565020*/      OPC_RecordChild1, // #1 = $srcAddr
/*565021*/      OPC_MoveChild2,
/*565022*/      OPC_SwitchOpcode /*3 cases */, 71|128,1/*199*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->565226
/*565027*/        OPC_MoveChild0,
/*565028*/        OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*565031*/        OPC_MoveChild0,
/*565032*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*565035*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*565037*/        OPC_MoveParent,
/*565038*/        OPC_MoveChild1,
/*565039*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*565042*/        OPC_MoveChild0,
/*565043*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*565046*/        OPC_MoveChild0,
/*565047*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*565050*/        OPC_RecordChild0, // #2 = $mask
/*565051*/        OPC_CheckChild1Integer, 1, 
/*565053*/        OPC_CheckType, MVT::i8,
/*565055*/        OPC_MoveParent,
/*565056*/        OPC_CheckType, MVT::v8i1,
/*565058*/        OPC_MoveParent,
/*565059*/        OPC_CheckChild1Integer, 0, 
/*565061*/        OPC_CheckChild1Type, MVT::iPTR,
/*565063*/        OPC_CheckType, MVT::v2i1,
/*565065*/        OPC_MoveParent,
/*565066*/        OPC_CheckChild2Integer, 0, 
/*565068*/        OPC_CheckChild2Type, MVT::iPTR,
/*565070*/        OPC_CheckType, MVT::v16i1,
/*565072*/        OPC_MoveParent,
/*565073*/        OPC_CheckChild1Integer, 0, 
/*565075*/        OPC_CheckChild1Type, MVT::iPTR,
/*565077*/        OPC_CheckType, MVT::v8i1,
/*565079*/        OPC_MoveParent,
/*565080*/        OPC_MoveChild3,
/*565081*/        OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->565158
/*565085*/          OPC_MoveChild0,
/*565086*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*565089*/          OPC_MoveParent,
/*565090*/          OPC_MoveChild1,
/*565091*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*565094*/          OPC_RecordChild0, // #3 = $src
/*565095*/          OPC_CheckType, MVT::v2f64,
/*565097*/          OPC_MoveParent,
/*565098*/          OPC_CheckChild2Integer, 0, 
/*565100*/          OPC_CheckChild2Type, MVT::iPTR,
/*565102*/          OPC_MoveParent,
/*565103*/          OPC_CheckType, MVT::v8f64,
/*565105*/          OPC_MoveParent,
/*565106*/          OPC_CheckChild1Integer, 0, 
/*565108*/          OPC_CheckChild1Type, MVT::iPTR,
/*565110*/          OPC_CheckType, MVT::v2f64,
/*565112*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*565115*/          OPC_EmitMergeInputChains1_0,
/*565116*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/*565122*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*565125*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*565134*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*565137*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*565145*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 13, 4, 5, 6, 7, 8, 
                    // Src: (extract_subvector:{ *:[v2f64] } (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$srcAddr, (extract_subvector:{ *:[v8i1] } (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, (extract_subvector:{ *:[v2i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), (insert_subvector:{ *:[v8f64] } (undef:{ *:[v8f64] }), (X86vzmovl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), 0:{ *:[iPTR] })), 0:{ *:[iPTR] }) - Complexity = 82
                    // Dst: (VMOVSDZrmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*565158*/        /*SwitchOpcode*/ 64, TARGET_VAL(ISD::BITCAST),// ->565225
/*565161*/          OPC_MoveChild0,
/*565162*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*565165*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*565167*/          OPC_CheckType, MVT::v16i32,
/*565169*/          OPC_MoveParent,
/*565170*/          OPC_MoveParent,
/*565171*/          OPC_CheckType, MVT::v8f64,
/*565173*/          OPC_MoveParent,
/*565174*/          OPC_CheckChild1Integer, 0, 
/*565176*/          OPC_CheckChild1Type, MVT::iPTR,
/*565178*/          OPC_CheckType, MVT::v2f64,
/*565180*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*565183*/          OPC_EmitMergeInputChains1_0,
/*565184*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/*565190*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*565193*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*565202*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*565205*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*565213*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 12, 3, 4, 5, 6, 7, 
                    // Src: (extract_subvector:{ *:[v2f64] } (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$srcAddr, (extract_subvector:{ *:[v8i1] } (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, (extract_subvector:{ *:[v2i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)), 0:{ *:[iPTR] }) - Complexity = 75
                    // Dst: (VMOVSDZrmkz:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*565225*/        0, // EndSwitchOpcode
/*565226*/      /*SwitchOpcode*/ 60|128,1/*188*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->565418
/*565230*/        OPC_MoveChild0,
/*565231*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*565234*/        OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*565236*/        OPC_MoveParent,
/*565237*/        OPC_MoveChild1,
/*565238*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*565241*/        OPC_MoveChild0,
/*565242*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*565245*/        OPC_MoveChild0,
/*565246*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*565249*/        OPC_RecordChild0, // #2 = $mask
/*565250*/        OPC_CheckChild1Integer, 1, 
/*565252*/        OPC_CheckType, MVT::i8,
/*565254*/        OPC_MoveParent,
/*565255*/        OPC_CheckType, MVT::v8i1,
/*565257*/        OPC_MoveParent,
/*565258*/        OPC_CheckChild1Integer, 0, 
/*565260*/        OPC_CheckChild1Type, MVT::iPTR,
/*565262*/        OPC_CheckType, MVT::v4i1,
/*565264*/        OPC_MoveParent,
/*565265*/        OPC_CheckChild2Integer, 0, 
/*565267*/        OPC_CheckChild2Type, MVT::iPTR,
/*565269*/        OPC_CheckType, MVT::v16i1,
/*565271*/        OPC_MoveParent,
/*565272*/        OPC_MoveChild3,
/*565273*/        OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->565350
/*565277*/          OPC_MoveChild0,
/*565278*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*565281*/          OPC_MoveParent,
/*565282*/          OPC_MoveChild1,
/*565283*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*565286*/          OPC_RecordChild0, // #3 = $src
/*565287*/          OPC_CheckType, MVT::v4f32,
/*565289*/          OPC_MoveParent,
/*565290*/          OPC_CheckChild2Integer, 0, 
/*565292*/          OPC_CheckChild2Type, MVT::iPTR,
/*565294*/          OPC_MoveParent,
/*565295*/          OPC_CheckType, MVT::v16f32,
/*565297*/          OPC_MoveParent,
/*565298*/          OPC_CheckChild1Integer, 0, 
/*565300*/          OPC_CheckChild1Type, MVT::iPTR,
/*565302*/          OPC_CheckType, MVT::v4f32,
/*565304*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*565307*/          OPC_EmitMergeInputChains1_0,
/*565308*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/*565314*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*565317*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*565326*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*565329*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*565337*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 13, 4, 5, 6, 7, 8, 
                    // Src: (extract_subvector:{ *:[v4f32] } (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, (extract_subvector:{ *:[v4i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), (X86vzmovl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), 0:{ *:[iPTR] })), 0:{ *:[iPTR] }) - Complexity = 74
                    // Dst: (VMOVSSZrmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*565350*/        /*SwitchOpcode*/ 64, TARGET_VAL(ISD::BITCAST),// ->565417
/*565353*/          OPC_MoveChild0,
/*565354*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*565357*/          OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*565359*/          OPC_CheckType, MVT::v16i32,
/*565361*/          OPC_MoveParent,
/*565362*/          OPC_MoveParent,
/*565363*/          OPC_CheckType, MVT::v16f32,
/*565365*/          OPC_MoveParent,
/*565366*/          OPC_CheckChild1Integer, 0, 
/*565368*/          OPC_CheckChild1Type, MVT::iPTR,
/*565370*/          OPC_CheckType, MVT::v4f32,
/*565372*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*565375*/          OPC_EmitMergeInputChains1_0,
/*565376*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/*565382*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*565385*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*565394*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*565397*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*565405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 12, 3, 4, 5, 6, 7, 
                    // Src: (extract_subvector:{ *:[v4f32] } (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (insert_subvector:{ *:[v16i1] } (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>>, (extract_subvector:{ *:[v4i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)), 0:{ *:[iPTR] }) - Complexity = 67
                    // Dst: (VMOVSSZrmkz:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*565417*/        0, // EndSwitchOpcode
/*565418*/      /*SwitchOpcode*/ 63|128,3/*447*/, TARGET_VAL(ISD::BITCAST),// ->565869
/*565422*/        OPC_MoveChild0,
/*565423*/        OPC_SwitchOpcode /*2 cases */, 126, TARGET_VAL(ISD::TRUNCATE),// ->565553
/*565427*/          OPC_MoveChild0,
/*565428*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*565431*/          OPC_RecordChild0, // #2 = $mask
/*565432*/          OPC_CheckChild1Integer, 1, 
/*565434*/          OPC_CheckType, MVT::i32,
/*565436*/          OPC_MoveParent,
/*565437*/          OPC_CheckType, MVT::i16,
/*565439*/          OPC_MoveParent,
/*565440*/          OPC_CheckType, MVT::v16i1,
/*565442*/          OPC_MoveParent,
/*565443*/          OPC_MoveChild3,
/*565444*/          OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->565503
/*565448*/            OPC_MoveChild0,
/*565449*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*565452*/            OPC_MoveParent,
/*565453*/            OPC_MoveChild1,
/*565454*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*565457*/            OPC_RecordChild0, // #3 = $src
/*565458*/            OPC_CheckType, MVT::v4f32,
/*565460*/            OPC_MoveParent,
/*565461*/            OPC_CheckChild2Integer, 0, 
/*565463*/            OPC_CheckChild2Type, MVT::iPTR,
/*565465*/            OPC_MoveParent,
/*565466*/            OPC_CheckType, MVT::v16f32,
/*565468*/            OPC_MoveParent,
/*565469*/            OPC_CheckChild1Integer, 0, 
/*565471*/            OPC_CheckChild1Type, MVT::iPTR,
/*565473*/            OPC_CheckType, MVT::v4f32,
/*565475*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*565478*/            OPC_EmitMergeInputChains1_0,
/*565479*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*565482*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 2, 9,  // Results = #10
/*565490*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 10, 4, 5, 6, 7, 8, 
                      // Src: (extract_subvector:{ *:[v4f32] } (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (bitconvert:{ *:[v16i1] } (trunc:{ *:[i16] } (and:{ *:[i32] } GR32:{ *:[i32] }:$mask, 1:{ *:[i32] }))), (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), (X86vzmovl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), 0:{ *:[iPTR] })), 0:{ *:[iPTR] }) - Complexity = 57
                      // Dst: (VMOVSSZrmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, (COPY_TO_REGCLASS:{ *:[v1i1] } GR32:{ *:[i32] }:$mask, VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*565503*/          /*SwitchOpcode*/ 46, TARGET_VAL(ISD::BITCAST),// ->565552
/*565506*/            OPC_MoveChild0,
/*565507*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*565510*/            OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*565512*/            OPC_CheckType, MVT::v16i32,
/*565514*/            OPC_MoveParent,
/*565515*/            OPC_MoveParent,
/*565516*/            OPC_CheckType, MVT::v16f32,
/*565518*/            OPC_MoveParent,
/*565519*/            OPC_CheckChild1Integer, 0, 
/*565521*/            OPC_CheckChild1Type, MVT::iPTR,
/*565523*/            OPC_CheckType, MVT::v4f32,
/*565525*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*565528*/            OPC_EmitMergeInputChains1_0,
/*565529*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*565532*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 2, 8,  // Results = #9
/*565540*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 9, 3, 4, 5, 6, 7, 
                      // Src: (extract_subvector:{ *:[v4f32] } (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (bitconvert:{ *:[v16i1] } (trunc:{ *:[i16] } (and:{ *:[i32] } GR32:{ *:[i32] }:$mask, 1:{ *:[i32] }))), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)), 0:{ *:[iPTR] }) - Complexity = 50
                      // Dst: (VMOVSSZrmkz:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v1i1] } GR32:{ *:[i32] }:$mask, VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*565552*/          0, // EndSwitchOpcode
/*565553*/        /*SwitchOpcode*/ 55|128,2/*311*/, TARGET_VAL(ISD::AND),// ->565868
/*565557*/          OPC_RecordChild0, // #2 = $mask
/*565558*/          OPC_CheckChild1Integer, 1, 
/*565560*/          OPC_SwitchType /*2 cases */, 22|128,1/*150*/, MVT::i16,// ->565714
/*565564*/            OPC_MoveParent,
/*565565*/            OPC_CheckType, MVT::v16i1,
/*565567*/            OPC_MoveParent,
/*565568*/            OPC_MoveChild3,
/*565569*/            OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->565646
/*565573*/              OPC_MoveChild0,
/*565574*/              OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*565577*/              OPC_MoveParent,
/*565578*/              OPC_MoveChild1,
/*565579*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*565582*/              OPC_RecordChild0, // #3 = $src
/*565583*/              OPC_CheckType, MVT::v4f32,
/*565585*/              OPC_MoveParent,
/*565586*/              OPC_CheckChild2Integer, 0, 
/*565588*/              OPC_CheckChild2Type, MVT::iPTR,
/*565590*/              OPC_MoveParent,
/*565591*/              OPC_CheckType, MVT::v16f32,
/*565593*/              OPC_MoveParent,
/*565594*/              OPC_CheckChild1Integer, 0, 
/*565596*/              OPC_CheckChild1Type, MVT::iPTR,
/*565598*/              OPC_CheckType, MVT::v4f32,
/*565600*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*565603*/              OPC_EmitMergeInputChains1_0,
/*565604*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #9
/*565610*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*565613*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*565622*/              OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*565625*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*565633*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 13, 4, 5, 6, 7, 8, 
                        // Src: (extract_subvector:{ *:[v4f32] } (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (bitconvert:{ *:[v16i1] } (and:{ *:[i16] } GR16:{ *:[i16] }:$mask, 1:{ *:[i16] })), (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), (X86vzmovl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), 0:{ *:[iPTR] })), 0:{ *:[iPTR] }) - Complexity = 54
                        // Dst: (VMOVSSZrmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$mask, sub_16bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*565646*/            /*SwitchOpcode*/ 64, TARGET_VAL(ISD::BITCAST),// ->565713
/*565649*/              OPC_MoveChild0,
/*565650*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*565653*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*565655*/              OPC_CheckType, MVT::v16i32,
/*565657*/              OPC_MoveParent,
/*565658*/              OPC_MoveParent,
/*565659*/              OPC_CheckType, MVT::v16f32,
/*565661*/              OPC_MoveParent,
/*565662*/              OPC_CheckChild1Integer, 0, 
/*565664*/              OPC_CheckChild1Type, MVT::iPTR,
/*565666*/              OPC_CheckType, MVT::v4f32,
/*565668*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*565671*/              OPC_EmitMergeInputChains1_0,
/*565672*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #8
/*565678*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*565681*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*565690*/              OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*565693*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*565701*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 12, 3, 4, 5, 6, 7, 
                        // Src: (extract_subvector:{ *:[v4f32] } (masked_load:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (bitconvert:{ *:[v16i1] } (and:{ *:[i16] } GR16:{ *:[i16] }:$mask, 1:{ *:[i16] })), (bitconvert:{ *:[v16f32] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)), 0:{ *:[iPTR] }) - Complexity = 47
                        // Dst: (VMOVSSZrmkz:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$mask, sub_16bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*565713*/            0, // EndSwitchOpcode
/*565714*/          /*SwitchType*/ 22|128,1/*150*/, MVT::i8,// ->565867
/*565717*/            OPC_MoveParent,
/*565718*/            OPC_CheckType, MVT::v8i1,
/*565720*/            OPC_MoveParent,
/*565721*/            OPC_MoveChild3,
/*565722*/            OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->565799
/*565726*/              OPC_MoveChild0,
/*565727*/              OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*565730*/              OPC_MoveParent,
/*565731*/              OPC_MoveChild1,
/*565732*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*565735*/              OPC_RecordChild0, // #3 = $src
/*565736*/              OPC_CheckType, MVT::v2f64,
/*565738*/              OPC_MoveParent,
/*565739*/              OPC_CheckChild2Integer, 0, 
/*565741*/              OPC_CheckChild2Type, MVT::iPTR,
/*565743*/              OPC_MoveParent,
/*565744*/              OPC_CheckType, MVT::v8f64,
/*565746*/              OPC_MoveParent,
/*565747*/              OPC_CheckChild1Integer, 0, 
/*565749*/              OPC_CheckChild1Type, MVT::iPTR,
/*565751*/              OPC_CheckType, MVT::v2f64,
/*565753*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*565756*/              OPC_EmitMergeInputChains1_0,
/*565757*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #9
/*565763*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*565766*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*565775*/              OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*565778*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*565786*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 3, 13, 4, 5, 6, 7, 8, 
                        // Src: (extract_subvector:{ *:[v2f64] } (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$srcAddr, (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), (insert_subvector:{ *:[v8f64] } (undef:{ *:[v8f64] }), (X86vzmovl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), 0:{ *:[iPTR] })), 0:{ *:[iPTR] }) - Complexity = 54
                        // Dst: (VMOVSDZrmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*565799*/            /*SwitchOpcode*/ 64, TARGET_VAL(ISD::BITCAST),// ->565866
/*565802*/              OPC_MoveChild0,
/*565803*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*565806*/              OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*565808*/              OPC_CheckType, MVT::v16i32,
/*565810*/              OPC_MoveParent,
/*565811*/              OPC_MoveParent,
/*565812*/              OPC_CheckType, MVT::v8f64,
/*565814*/              OPC_MoveParent,
/*565815*/              OPC_CheckChild1Integer, 0, 
/*565817*/              OPC_CheckChild1Type, MVT::iPTR,
/*565819*/              OPC_CheckType, MVT::v2f64,
/*565821*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*565824*/              OPC_EmitMergeInputChains1_0,
/*565825*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #8
/*565831*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*565834*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*565843*/              OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*565846*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*565854*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 12, 3, 4, 5, 6, 7, 
                        // Src: (extract_subvector:{ *:[v2f64] } (masked_load:{ *:[v8f64] } addr:{ *:[iPTR] }:$srcAddr, (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), (bitconvert:{ *:[v8f64] } (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>>)), 0:{ *:[iPTR] }) - Complexity = 47
                        // Dst: (VMOVSDZrmkz:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*565866*/            0, // EndSwitchOpcode
/*565867*/          0, // EndSwitchType
/*565868*/        0, // EndSwitchOpcode
/*565869*/      0, // EndSwitchOpcode
/*565870*/    /*Scope*/ 110|128,1/*238*/, /*->566110*/
/*565872*/      OPC_RecordChild0, // #0 = $src
/*565873*/      OPC_Scope, 19, /*->565894*/ // 7 children in Scope
/*565875*/        OPC_CheckChild0Type, MVT::v8f32,
/*565877*/        OPC_CheckChild1Integer, 0, 
/*565879*/        OPC_CheckChild1Type, MVT::iPTR,
/*565881*/        OPC_CheckType, MVT::v4f32,
/*565883*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*565886*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v4f32] } VR256:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v4f32] } VR256:{ *:[v8f32] }:$src, sub_xmm:{ *:[i32] })
/*565894*/      /*Scope*/ 19, /*->565914*/
/*565895*/        OPC_CheckChild0Type, MVT::v4f64,
/*565897*/        OPC_CheckChild1Integer, 0, 
/*565899*/        OPC_CheckChild1Type, MVT::iPTR,
/*565901*/        OPC_CheckType, MVT::v2f64,
/*565903*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*565906*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v2f64] } VR256:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v2f64] } VR256:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] })
/*565914*/      /*Scope*/ 19, /*->565934*/
/*565915*/        OPC_CheckChild0Type, MVT::v16f32,
/*565917*/        OPC_CheckChild1Integer, 0, 
/*565919*/        OPC_CheckChild1Type, MVT::iPTR,
/*565921*/        OPC_CheckType, MVT::v4f32,
/*565923*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*565926*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, sub_xmm:{ *:[i32] })
/*565934*/      /*Scope*/ 19, /*->565954*/
/*565935*/        OPC_CheckChild0Type, MVT::v8f64,
/*565937*/        OPC_CheckChild1Integer, 0, 
/*565939*/        OPC_CheckChild1Type, MVT::iPTR,
/*565941*/        OPC_CheckType, MVT::v2f64,
/*565943*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*565946*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, sub_xmm:{ *:[i32] })
/*565954*/      /*Scope*/ 32, /*->565987*/
/*565955*/        OPC_CheckChild1Integer, 0, 
/*565957*/        OPC_CheckChild1Type, MVT::iPTR,
/*565959*/        OPC_SwitchType /*2 cases */, 11, MVT::v8f32,// ->565973
/*565962*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*565965*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, sub_ymm:{ *:[i32] })
/*565973*/        /*SwitchType*/ 11, MVT::v4f64,// ->565986
/*565975*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*565978*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, sub_ymm:{ *:[i32] })
/*565986*/        0, // EndSwitchType
/*565987*/      /*Scope*/ 60, /*->566048*/
/*565988*/        OPC_CheckChild1Integer, 2, 
/*565990*/        OPC_CheckChild0Type, MVT::v8f64,
/*565992*/        OPC_CheckChild1Type, MVT::iPTR,
/*565994*/        OPC_CheckType, MVT::v2f64,
/*565996*/        OPC_Scope, 24, /*->566022*/ // 2 children in Scope
/*565998*/          OPC_CheckPatternPredicate, 188, // (!Subtarget->hasVLX())
/*566000*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*566003*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*566011*/          OPC_EmitInteger, MVT::i8, 1, 
/*566014*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, 2:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTF128rr:{ *:[v2f64] } (EXTRACT_SUBREG:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*566022*/        /*Scope*/ 24, /*->566047*/
/*566023*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*566025*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*566028*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*566036*/          OPC_EmitInteger, MVT::i8, 1, 
/*566039*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Z256rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, 2:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTF32x4Z256rr:{ *:[v2f64] } (EXTRACT_SUBREG:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*566047*/        0, /*End of Scope*/
/*566048*/      /*Scope*/ 60, /*->566109*/
/*566049*/        OPC_CheckChild1Integer, 4, 
/*566051*/        OPC_CheckChild0Type, MVT::v16f32,
/*566053*/        OPC_CheckChild1Type, MVT::iPTR,
/*566055*/        OPC_CheckType, MVT::v4f32,
/*566057*/        OPC_Scope, 24, /*->566083*/ // 2 children in Scope
/*566059*/          OPC_CheckPatternPredicate, 188, // (!Subtarget->hasVLX())
/*566061*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*566064*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*566072*/          OPC_EmitInteger, MVT::i8, 1, 
/*566075*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTF128rr:{ *:[v4f32] } (EXTRACT_SUBREG:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*566083*/        /*Scope*/ 24, /*->566108*/
/*566084*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*566086*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*566089*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*566097*/          OPC_EmitInteger, MVT::i8, 1, 
/*566100*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Z256rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (VEXTRACTF32x4Z256rr:{ *:[v4f32] } (EXTRACT_SUBREG:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src, sub_ymm:{ *:[i32] }), 1:{ *:[i8] })
/*566108*/        0, /*End of Scope*/
/*566109*/      0, /*End of Scope*/
/*566110*/    /*Scope*/ 72|128,1/*200*/, /*->566312*/
/*566112*/      OPC_RecordNode, // #0 = $ext
/*566113*/      OPC_RecordChild0, // #1 = $src1
/*566114*/      OPC_Scope, 24, /*->566140*/ // 8 children in Scope
/*566116*/        OPC_CheckChild0Type, MVT::v8f32,
/*566118*/        OPC_MoveChild1,
/*566119*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566122*/        OPC_CheckType, MVT::iPTR,
/*566124*/        OPC_MoveParent,
/*566125*/        OPC_CheckType, MVT::v4f32,
/*566127*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*566129*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*566132*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4f32] } VR256:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTF128rr:{ *:[v4f32] } VR256:{ *:[v8f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4f32] }:$ext))
/*566140*/      /*Scope*/ 24, /*->566165*/
/*566141*/        OPC_CheckChild0Type, MVT::v4f64,
/*566143*/        OPC_MoveChild1,
/*566144*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566147*/        OPC_CheckType, MVT::iPTR,
/*566149*/        OPC_MoveParent,
/*566150*/        OPC_CheckType, MVT::v2f64,
/*566152*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*566154*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*566157*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                      MVT::v2f64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v2f64] } VR256:{ *:[v4f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTF128rr:{ *:[v2f64] } VR256:{ *:[v4f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2f64] }:$ext))
/*566165*/      /*Scope*/ 24, /*->566190*/
/*566166*/        OPC_CheckChild0Type, MVT::v16f32,
/*566168*/        OPC_MoveChild1,
/*566169*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566172*/        OPC_CheckType, MVT::iPTR,
/*566174*/        OPC_MoveParent,
/*566175*/        OPC_CheckType, MVT::v4f32,
/*566177*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566179*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*566182*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Zrr), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx - Complexity = 6
                  // Dst: (VEXTRACTF32x4Zrr:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*566190*/      /*Scope*/ 22, /*->566213*/
/*566191*/        OPC_MoveChild1,
/*566192*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566195*/        OPC_CheckType, MVT::iPTR,
/*566197*/        OPC_MoveParent,
/*566198*/        OPC_CheckType, MVT::v4f64,
/*566200*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566202*/        OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*566205*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x4Zrr), 0,
                      MVT::v4f64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$idx - Complexity = 6
                  // Dst: (VEXTRACTF64x4Zrr:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*566213*/      /*Scope*/ 24, /*->566238*/
/*566214*/        OPC_CheckChild0Type, MVT::v8f32,
/*566216*/        OPC_MoveChild1,
/*566217*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566220*/        OPC_CheckType, MVT::iPTR,
/*566222*/        OPC_MoveParent,
/*566223*/        OPC_CheckType, MVT::v4f32,
/*566225*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*566227*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*566230*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Z256rr), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$idx - Complexity = 6
                  // Dst: (VEXTRACTF32x4Z256rr:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*566238*/      /*Scope*/ 24, /*->566263*/
/*566239*/        OPC_CheckChild0Type, MVT::v8f64,
/*566241*/        OPC_MoveChild1,
/*566242*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566245*/        OPC_CheckType, MVT::iPTR,
/*566247*/        OPC_MoveParent,
/*566248*/        OPC_CheckType, MVT::v2f64,
/*566250*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566252*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*566255*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Zrr), 0,
                      MVT::v2f64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTF32x4Zrr:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*566263*/      /*Scope*/ 22, /*->566286*/
/*566264*/        OPC_MoveChild1,
/*566265*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566268*/        OPC_CheckType, MVT::iPTR,
/*566270*/        OPC_MoveParent,
/*566271*/        OPC_CheckType, MVT::v8f32,
/*566273*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566275*/        OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*566278*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x4Zrr), 0,
                      MVT::v8f32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract256_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTF64x4Zrr:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ext))
/*566286*/      /*Scope*/ 24, /*->566311*/
/*566287*/        OPC_CheckChild0Type, MVT::v4f64,
/*566289*/        OPC_MoveChild1,
/*566290*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566293*/        OPC_CheckType, MVT::iPTR,
/*566295*/        OPC_MoveParent,
/*566296*/        OPC_CheckType, MVT::v2f64,
/*566298*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*566300*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*566303*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Z256rr), 0,
                      MVT::v2f64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[iPTR] }))<<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 6
                  // Dst: (VEXTRACTF32x4Z256rr:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*566311*/      0, /*End of Scope*/
/*566312*/    0, /*End of Scope*/
/*566313*/  /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::CVTTP2SI_RND),// ->566380
/*566316*/    OPC_RecordChild0, // #0 = $src
/*566317*/    OPC_Scope, 15, /*->566334*/ // 3 children in Scope
/*566319*/      OPC_CheckChild0Type, MVT::v16f32,
/*566321*/      OPC_CheckChild1Integer, 8, 
/*566323*/      OPC_CheckType, MVT::v16i32,
/*566325*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566327*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrrb), 0,
                    MVT::v16i32, 1/*#Ops*/, 0, 
                // Src: (X86cvttp2siRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VCVTTPS2DQZrrb:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*566334*/    /*Scope*/ 28, /*->566363*/
/*566335*/      OPC_CheckChild0Type, MVT::v8f64,
/*566337*/      OPC_CheckChild1Integer, 8, 
/*566339*/      OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->566351
/*566342*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566344*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrrb), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvttp2siRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCVTTPD2DQZrrb:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*566351*/      /*SwitchType*/ 9, MVT::v8i64,// ->566362
/*566353*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*566355*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrrb), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (X86cvttp2siRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCVTTPD2QQZrrb:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*566362*/      0, // EndSwitchType
/*566363*/    /*Scope*/ 15, /*->566379*/
/*566364*/      OPC_CheckChild0Type, MVT::v8f32,
/*566366*/      OPC_CheckChild1Integer, 8, 
/*566368*/      OPC_CheckType, MVT::v8i64,
/*566370*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*566372*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrrb), 0,
                    MVT::v8i64, 1/*#Ops*/, 0, 
                // Src: (X86cvttp2siRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VCVTTPS2QQZrrb:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*566379*/    0, /*End of Scope*/
/*566380*/  /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::CVTTP2UI_RND),// ->566447
/*566383*/    OPC_RecordChild0, // #0 = $src
/*566384*/    OPC_Scope, 15, /*->566401*/ // 3 children in Scope
/*566386*/      OPC_CheckChild0Type, MVT::v16f32,
/*566388*/      OPC_CheckChild1Integer, 8, 
/*566390*/      OPC_CheckType, MVT::v16i32,
/*566392*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566394*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrrb), 0,
                    MVT::v16i32, 1/*#Ops*/, 0, 
                // Src: (X86cvttp2uiRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VCVTTPS2UDQZrrb:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*566401*/    /*Scope*/ 28, /*->566430*/
/*566402*/      OPC_CheckChild0Type, MVT::v8f64,
/*566404*/      OPC_CheckChild1Integer, 8, 
/*566406*/      OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->566418
/*566409*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566411*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrrb), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvttp2uiRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCVTTPD2UDQZrrb:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*566418*/      /*SwitchType*/ 9, MVT::v8i64,// ->566429
/*566420*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*566422*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrrb), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (X86cvttp2uiRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCVTTPD2UQQZrrb:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*566429*/      0, // EndSwitchType
/*566430*/    /*Scope*/ 15, /*->566446*/
/*566431*/      OPC_CheckChild0Type, MVT::v8f32,
/*566433*/      OPC_CheckChild1Integer, 8, 
/*566435*/      OPC_CheckType, MVT::v8i64,
/*566437*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*566439*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrrb), 0,
                    MVT::v8i64, 1/*#Ops*/, 0, 
                // Src: (X86cvttp2uiRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VCVTTPS2UQQZrrb:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*566446*/    0, /*End of Scope*/
/*566447*/  /*SwitchOpcode*/ 104, TARGET_VAL(X86ISD::CVTPS2PH),// ->566554
/*566450*/    OPC_RecordChild0, // #0 = $src1
/*566451*/    OPC_Scope, 38, /*->566491*/ // 3 children in Scope
/*566453*/      OPC_CheckChild0Type, MVT::v4f32,
/*566455*/      OPC_RecordChild1, // #1 = $src2
/*566456*/      OPC_MoveChild1,
/*566457*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566460*/      OPC_MoveParent,
/*566461*/      OPC_CheckType, MVT::v8i16,
/*566463*/      OPC_Scope, 12, /*->566477*/ // 2 children in Scope
/*566465*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*566467*/        OPC_EmitConvertToTarget, 1,
/*566469*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHrr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (X86cvtps2ph:{ *:[v8i16] } VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VCVTPS2PHrr:{ *:[v8i16] } VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*566477*/      /*Scope*/ 12, /*->566490*/
/*566478*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*566480*/        OPC_EmitConvertToTarget, 1,
/*566482*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ128rr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (X86cvtps2ph:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VCVTPS2PHZ128rr:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*566490*/      0, /*End of Scope*/
/*566491*/    /*Scope*/ 38, /*->566530*/
/*566492*/      OPC_CheckChild0Type, MVT::v8f32,
/*566494*/      OPC_RecordChild1, // #1 = $src2
/*566495*/      OPC_MoveChild1,
/*566496*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566499*/      OPC_MoveParent,
/*566500*/      OPC_CheckType, MVT::v8i16,
/*566502*/      OPC_Scope, 12, /*->566516*/ // 2 children in Scope
/*566504*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*566506*/        OPC_EmitConvertToTarget, 1,
/*566508*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHYrr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (X86cvtps2ph:{ *:[v8i16] } VR256:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VCVTPS2PHYrr:{ *:[v8i16] } VR256:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*566516*/      /*Scope*/ 12, /*->566529*/
/*566517*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*566519*/        OPC_EmitConvertToTarget, 1,
/*566521*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ256rr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (X86cvtps2ph:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VCVTPS2PHZ256rr:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*566529*/      0, /*End of Scope*/
/*566530*/    /*Scope*/ 22, /*->566553*/
/*566531*/      OPC_CheckChild0Type, MVT::v16f32,
/*566533*/      OPC_RecordChild1, // #1 = $src2
/*566534*/      OPC_MoveChild1,
/*566535*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566538*/      OPC_MoveParent,
/*566539*/      OPC_CheckType, MVT::v16i16,
/*566541*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566543*/      OPC_EmitConvertToTarget, 1,
/*566545*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZrr), 0,
                    MVT::v16i16, 2/*#Ops*/, 0, 2, 
                // Src: (X86cvtps2ph:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                // Dst: (VCVTPS2PHZrr:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*566553*/    0, /*End of Scope*/
/*566554*/  /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::KSHIFTL),// ->566622
/*566557*/    OPC_RecordChild0, // #0 = $src
/*566558*/    OPC_RecordChild1, // #1 = $imm
/*566559*/    OPC_MoveChild1,
/*566560*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566563*/    OPC_MoveParent,
/*566564*/    OPC_SwitchType /*4 cases */, 12, MVT::v16i1,// ->566579
/*566567*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566569*/      OPC_EmitConvertToTarget, 1,
/*566571*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTLWri), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 2, 
                // Src: (X86kshiftl:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src, (imm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTLWri:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src, (imm:{ *:[i8] }):$imm)
/*566579*/    /*SwitchType*/ 12, MVT::v8i1,// ->566593
/*566581*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*566583*/      OPC_EmitConvertToTarget, 1,
/*566585*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTLBri), 0,
                    MVT::v8i1, 2/*#Ops*/, 0, 2, 
                // Src: (X86kshiftl:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, (imm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTLBri:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, (imm:{ *:[i8] }):$imm)
/*566593*/    /*SwitchType*/ 12, MVT::v64i1,// ->566607
/*566595*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*566597*/      OPC_EmitConvertToTarget, 1,
/*566599*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTLQri), 0,
                    MVT::v64i1, 2/*#Ops*/, 0, 2, 
                // Src: (X86kshiftl:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src, (imm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTLQri:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src, (imm:{ *:[i8] }):$imm)
/*566607*/    /*SwitchType*/ 12, MVT::v32i1,// ->566621
/*566609*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*566611*/      OPC_EmitConvertToTarget, 1,
/*566613*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTLDri), 0,
                    MVT::v32i1, 2/*#Ops*/, 0, 2, 
                // Src: (X86kshiftl:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src, (imm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTLDri:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src, (imm:{ *:[i8] }):$imm)
/*566621*/    0, // EndSwitchType
/*566622*/  /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::KSHIFTR),// ->566690
/*566625*/    OPC_RecordChild0, // #0 = $src
/*566626*/    OPC_RecordChild1, // #1 = $imm
/*566627*/    OPC_MoveChild1,
/*566628*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566631*/    OPC_MoveParent,
/*566632*/    OPC_SwitchType /*4 cases */, 12, MVT::v16i1,// ->566647
/*566635*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566637*/      OPC_EmitConvertToTarget, 1,
/*566639*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRWri), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 2, 
                // Src: (X86kshiftr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src, (imm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTRWri:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src, (imm:{ *:[i8] }):$imm)
/*566647*/    /*SwitchType*/ 12, MVT::v8i1,// ->566661
/*566649*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*566651*/      OPC_EmitConvertToTarget, 1,
/*566653*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRBri), 0,
                    MVT::v8i1, 2/*#Ops*/, 0, 2, 
                // Src: (X86kshiftr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, (imm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTRBri:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, (imm:{ *:[i8] }):$imm)
/*566661*/    /*SwitchType*/ 12, MVT::v64i1,// ->566675
/*566663*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*566665*/      OPC_EmitConvertToTarget, 1,
/*566667*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRQri), 0,
                    MVT::v64i1, 2/*#Ops*/, 0, 2, 
                // Src: (X86kshiftr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src, (imm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTRQri:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src, (imm:{ *:[i8] }):$imm)
/*566675*/    /*SwitchType*/ 12, MVT::v32i1,// ->566689
/*566677*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*566679*/      OPC_EmitConvertToTarget, 1,
/*566681*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRDri), 0,
                    MVT::v32i1, 2/*#Ops*/, 0, 2, 
                // Src: (X86kshiftr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src, (imm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTRDri:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src, (imm:{ *:[i8] }):$imm)
/*566689*/    0, // EndSwitchType
/*566690*/  /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::CVTP2SI_RND),// ->566781
/*566693*/    OPC_RecordChild0, // #0 = $src
/*566694*/    OPC_Scope, 22, /*->566718*/ // 3 children in Scope
/*566696*/      OPC_CheckChild0Type, MVT::v16f32,
/*566698*/      OPC_RecordChild1, // #1 = $rc
/*566699*/      OPC_MoveChild1,
/*566700*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566703*/      OPC_MoveParent,
/*566704*/      OPC_CheckType, MVT::v16i32,
/*566706*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566708*/      OPC_EmitConvertToTarget, 1,
/*566710*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrrb), 0,
                    MVT::v16i32, 2/*#Ops*/, 0, 2, 
                // Src: (X86cvtp2IntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTPS2DQZrrb:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc)
/*566718*/    /*Scope*/ 38, /*->566757*/
/*566719*/      OPC_CheckChild0Type, MVT::v8f64,
/*566721*/      OPC_RecordChild1, // #1 = $rc
/*566722*/      OPC_MoveChild1,
/*566723*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566726*/      OPC_MoveParent,
/*566727*/      OPC_SwitchType /*2 cases */, 12, MVT::v8i32,// ->566742
/*566730*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566732*/        OPC_EmitConvertToTarget, 1,
/*566734*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrrb), 0,
                      MVT::v8i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86cvtp2IntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTPD2DQZrrb:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*566742*/      /*SwitchType*/ 12, MVT::v8i64,// ->566756
/*566744*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*566746*/        OPC_EmitConvertToTarget, 1,
/*566748*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrrb), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86cvtp2IntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTPD2QQZrrb:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*566756*/      0, // EndSwitchType
/*566757*/    /*Scope*/ 22, /*->566780*/
/*566758*/      OPC_CheckChild0Type, MVT::v8f32,
/*566760*/      OPC_RecordChild1, // #1 = $rc
/*566761*/      OPC_MoveChild1,
/*566762*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566765*/      OPC_MoveParent,
/*566766*/      OPC_CheckType, MVT::v8i64,
/*566768*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*566770*/      OPC_EmitConvertToTarget, 1,
/*566772*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrrb), 0,
                    MVT::v8i64, 2/*#Ops*/, 0, 2, 
                // Src: (X86cvtp2IntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTPS2QQZrrb:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc)
/*566780*/    0, /*End of Scope*/
/*566781*/  /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::CVTP2UI_RND),// ->566872
/*566784*/    OPC_RecordChild0, // #0 = $src
/*566785*/    OPC_Scope, 22, /*->566809*/ // 3 children in Scope
/*566787*/      OPC_CheckChild0Type, MVT::v16f32,
/*566789*/      OPC_RecordChild1, // #1 = $rc
/*566790*/      OPC_MoveChild1,
/*566791*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566794*/      OPC_MoveParent,
/*566795*/      OPC_CheckType, MVT::v16i32,
/*566797*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566799*/      OPC_EmitConvertToTarget, 1,
/*566801*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrrb), 0,
                    MVT::v16i32, 2/*#Ops*/, 0, 2, 
                // Src: (X86cvtp2UIntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTPS2UDQZrrb:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc)
/*566809*/    /*Scope*/ 38, /*->566848*/
/*566810*/      OPC_CheckChild0Type, MVT::v8f64,
/*566812*/      OPC_RecordChild1, // #1 = $rc
/*566813*/      OPC_MoveChild1,
/*566814*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566817*/      OPC_MoveParent,
/*566818*/      OPC_SwitchType /*2 cases */, 12, MVT::v8i32,// ->566833
/*566821*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566823*/        OPC_EmitConvertToTarget, 1,
/*566825*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrrb), 0,
                      MVT::v8i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86cvtp2UIntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTPD2UDQZrrb:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*566833*/      /*SwitchType*/ 12, MVT::v8i64,// ->566847
/*566835*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*566837*/        OPC_EmitConvertToTarget, 1,
/*566839*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrrb), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86cvtp2UIntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTPD2UQQZrrb:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*566847*/      0, // EndSwitchType
/*566848*/    /*Scope*/ 22, /*->566871*/
/*566849*/      OPC_CheckChild0Type, MVT::v8f32,
/*566851*/      OPC_RecordChild1, // #1 = $rc
/*566852*/      OPC_MoveChild1,
/*566853*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*566856*/      OPC_MoveParent,
/*566857*/      OPC_CheckType, MVT::v8i64,
/*566859*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*566861*/      OPC_EmitConvertToTarget, 1,
/*566863*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrrb), 0,
                    MVT::v8i64, 2/*#Ops*/, 0, 2, 
                // Src: (X86cvtp2UIntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTPS2UQQZrrb:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (imm:{ *:[i32] }):$rc)
/*566871*/    0, /*End of Scope*/
/*566872*/  /*SwitchOpcode*/ 11|128,3/*395*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->567271
/*566876*/    OPC_Scope, 24, /*->566902*/ // 9 children in Scope
/*566878*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*566880*/      OPC_SwitchType /*2 cases */, 8, MVT::v4i32,// ->566891
/*566883*/        OPC_CheckPatternPredicate, 189, // (!Subtarget->hasAVX512())
/*566885*/        OPC_MorphNodeTo1, TARGET_VAL(X86::V_SET0), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (V_SET0:{ *:[v4i32] })
/*566891*/      /*SwitchType*/ 8, MVT::v8i32,// ->566901
/*566893*/        OPC_CheckPatternPredicate, 189, // (!Subtarget->hasAVX512())
/*566895*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AVX_SET0), 0,
                      MVT::v8i32, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (AVX_SET0:{ *:[v8i32] })
/*566901*/      0, // EndSwitchType
/*566902*/    /*Scope*/ 34, /*->566937*/
/*566903*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*566905*/      OPC_SwitchType /*2 cases */, 6, MVT::v4i32,// ->566914
/*566908*/        OPC_MorphNodeTo1, TARGET_VAL(X86::V_SETALLONES), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (V_SETALLONES:{ *:[v4i32] })
/*566914*/      /*SwitchType*/ 20, MVT::v8i32,// ->566936
/*566916*/        OPC_Scope, 8, /*->566926*/ // 2 children in Scope
/*566918*/          OPC_CheckPatternPredicate, 190, // (Subtarget->hasAVX() && !Subtarget->hasAVX2()) && (MF->getFunction().optForMinSize())
/*566920*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX1_SETALLONES), 0,
                        MVT::v8i32, 0/*#Ops*/, 
                    // Src: (build_vector:{ *:[v8i32] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                    // Dst: (AVX1_SETALLONES:{ *:[v8i32] })
/*566926*/        /*Scope*/ 8, /*->566935*/
/*566927*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX2())
/*566929*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX2_SETALLONES), 0,
                        MVT::v8i32, 0/*#Ops*/, 
                    // Src: (build_vector:{ *:[v8i32] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                    // Dst: (AVX2_SETALLONES:{ *:[v8i32] })
/*566935*/        0, /*End of Scope*/
/*566936*/      0, // EndSwitchType
/*566937*/    /*Scope*/ 12, /*->566950*/
/*566938*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*566940*/      OPC_CheckType, MVT::v16i32,
/*566942*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566944*/      OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SET0), 0,
                    MVT::v16i32, 0/*#Ops*/, 
                // Src: (build_vector:{ *:[v16i32] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (AVX512_512_SET0:{ *:[v16i32] })
/*566950*/    /*Scope*/ 12, /*->566963*/
/*566951*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*566953*/      OPC_CheckType, MVT::v16i32,
/*566955*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566957*/      OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SETALLONES), 0,
                    MVT::v16i32, 0/*#Ops*/, 
                // Src: (build_vector:{ *:[v16i32] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                // Dst: (AVX512_512_SETALLONES:{ *:[v16i32] })
/*566963*/    /*Scope*/ 54, /*->567018*/
/*566964*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*566966*/      OPC_SwitchType /*5 cases */, 8, MVT::v4i32,// ->566977
/*566969*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566971*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (AVX512_128_SET0:{ *:[v4i32] })
/*566977*/      /*SwitchType*/ 8, MVT::v8i32,// ->566987
/*566979*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566981*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_256_SET0), 0,
                      MVT::v8i32, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v8i32] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (AVX512_256_SET0:{ *:[v8i32] })
/*566987*/      /*SwitchType*/ 8, MVT::v16i1,// ->566997
/*566989*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566991*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET0W), 0,
                      MVT::v16i1, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v16i1] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (KSET0W:{ *:[v16i1] })
/*566997*/      /*SwitchType*/ 8, MVT::v32i1,// ->567007
/*566999*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567001*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET0D), 0,
                      MVT::v32i1, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v32i1] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (KSET0D:{ *:[v32i1] })
/*567007*/      /*SwitchType*/ 8, MVT::v64i1,// ->567017
/*567009*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567011*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET0Q), 0,
                      MVT::v64i1, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v64i1] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (KSET0Q:{ *:[v64i1] })
/*567017*/      0, // EndSwitchType
/*567018*/    /*Scope*/ 34, /*->567053*/
/*567019*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*567021*/      OPC_SwitchType /*3 cases */, 8, MVT::v16i1,// ->567032
/*567024*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567026*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET1W), 0,
                      MVT::v16i1, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v16i1] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (KSET1W:{ *:[v16i1] })
/*567032*/      /*SwitchType*/ 8, MVT::v32i1,// ->567042
/*567034*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567036*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET1D), 0,
                      MVT::v32i1, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v32i1] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (KSET1D:{ *:[v32i1] })
/*567042*/      /*SwitchType*/ 8, MVT::v64i1,// ->567052
/*567044*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567046*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET1Q), 0,
                      MVT::v64i1, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v64i1] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (KSET1Q:{ *:[v64i1] })
/*567052*/      0, // EndSwitchType
/*567053*/    /*Scope*/ 88, /*->567142*/
/*567054*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*567056*/      OPC_SwitchType /*4 cases */, 19, MVT::v8i1,// ->567078
/*567059*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567061*/        OPC_EmitNode1, TARGET_VAL(X86::KSET0W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*567067*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*567070*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (build_vector:{ *:[v8i1] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KSET0W:{ *:[v16i1] }), VK8:{ *:[i32] })
/*567078*/      /*SwitchType*/ 19, MVT::v4i1,// ->567099
/*567080*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567082*/        OPC_EmitNode1, TARGET_VAL(X86::KSET0W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*567088*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*567091*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (build_vector:{ *:[v4i1] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KSET0W:{ *:[v16i1] }), VK4:{ *:[i32] })
/*567099*/      /*SwitchType*/ 19, MVT::v2i1,// ->567120
/*567101*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567103*/        OPC_EmitNode1, TARGET_VAL(X86::KSET0W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*567109*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*567112*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 0, 1, 
                  // Src: (build_vector:{ *:[v2i1] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KSET0W:{ *:[v16i1] }), VK2:{ *:[i32] })
/*567120*/      /*SwitchType*/ 19, MVT::v1i1,// ->567141
/*567122*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567124*/        OPC_EmitNode1, TARGET_VAL(X86::KSET0W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*567130*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*567133*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i1, 2/*#Ops*/, 0, 1, 
                  // Src: (build_vector:{ *:[v1i1] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KSET0W:{ *:[v16i1] }), VK1:{ *:[i32] })
/*567141*/      0, // EndSwitchType
/*567142*/    /*Scope*/ 116, /*->567259*/
/*567143*/      OPC_CheckPredicate, 49, // Predicate_immAllOnesV
/*567145*/      OPC_SwitchType /*5 cases */, 19, MVT::v8i1,// ->567167
/*567148*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567150*/        OPC_EmitNode1, TARGET_VAL(X86::KSET1W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*567156*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*567159*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (build_vector:{ *:[v8i1] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KSET1W:{ *:[v16i1] }), VK8:{ *:[i32] })
/*567167*/      /*SwitchType*/ 19, MVT::v4i1,// ->567188
/*567169*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567171*/        OPC_EmitNode1, TARGET_VAL(X86::KSET1W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*567177*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*567180*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (build_vector:{ *:[v4i1] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KSET1W:{ *:[v16i1] }), VK4:{ *:[i32] })
/*567188*/      /*SwitchType*/ 19, MVT::v2i1,// ->567209
/*567190*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567192*/        OPC_EmitNode1, TARGET_VAL(X86::KSET1W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*567198*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*567201*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 0, 1, 
                  // Src: (build_vector:{ *:[v2i1] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KSET1W:{ *:[v16i1] }), VK2:{ *:[i32] })
/*567209*/      /*SwitchType*/ 19, MVT::v1i1,// ->567230
/*567211*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567213*/        OPC_EmitNode1, TARGET_VAL(X86::KSET1W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*567219*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*567222*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i1, 2/*#Ops*/, 0, 1, 
                  // Src: (build_vector:{ *:[v1i1] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KSET1W:{ *:[v16i1] }), VK1:{ *:[i32] })
/*567230*/      /*SwitchType*/ 26, MVT::v8i32,// ->567258
/*567232*/        OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*567234*/        OPC_EmitNode1, TARGET_VAL(X86::AVX_SET0), 0,
                      MVT::v32i8, 0/*#Ops*/,  // Results = #0
/*567240*/        OPC_EmitNode1, TARGET_VAL(X86::AVX_SET0), 0,
                      MVT::v32i8, 0/*#Ops*/,  // Results = #1
/*567246*/        OPC_EmitInteger, MVT::i8, 15, 
/*567249*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSYrri), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (build_vector:{ *:[v8i32] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (VCMPPSYrri:{ *:[v8i32] } (AVX_SET0:{ *:[v32i8] }), (AVX_SET0:{ *:[v32i8] }), 15:{ *:[i8] })
/*567258*/      0, // EndSwitchType
/*567259*/    /*Scope*/ 10, /*->567270*/
/*567260*/      OPC_CheckPredicate, 25, // Predicate_immAllZerosV
/*567262*/      OPC_CheckType, MVT::v4f32,
/*567264*/      OPC_MorphNodeTo1, TARGET_VAL(X86::V_SET0), 0,
                    MVT::v4f32, 0/*#Ops*/, 
                // Src: (build_vector:{ *:[v4f32] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (V_SET0:{ *:[v4f32] })
/*567270*/    0, /*End of Scope*/
/*567271*/  /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VBROADCASTM),// ->567353
/*567274*/    OPC_RecordChild0, // #0 = $src
/*567275*/    OPC_Scope, 37, /*->567314*/ // 2 children in Scope
/*567277*/      OPC_CheckChild0Type, MVT::v16i1,
/*567279*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i32,// ->567291
/*567282*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*567284*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTMW2DZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (X86VBroadcastm:{ *:[v16i32] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                  // Dst: (VPBROADCASTMW2DZrr:{ *:[v16i32] } VK16:{ *:[v16i1] }:$src)
/*567291*/      /*SwitchType*/ 9, MVT::v8i32,// ->567302
/*567293*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*567295*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTMW2DZ256rr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86VBroadcastm:{ *:[v8i32] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                  // Dst: (VPBROADCASTMW2DZ256rr:{ *:[v8i32] } VK16:{ *:[v16i1] }:$src)
/*567302*/      /*SwitchType*/ 9, MVT::v4i32,// ->567313
/*567304*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*567306*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTMW2DZ128rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86VBroadcastm:{ *:[v4i32] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                  // Dst: (VPBROADCASTMW2DZ128rr:{ *:[v4i32] } VK16:{ *:[v16i1] }:$src)
/*567313*/      0, // EndSwitchType
/*567314*/    /*Scope*/ 37, /*->567352*/
/*567315*/      OPC_CheckChild0Type, MVT::v8i1,
/*567317*/      OPC_SwitchType /*3 cases */, 9, MVT::v8i64,// ->567329
/*567320*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*567322*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTMB2QZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (X86VBroadcastm:{ *:[v8i64] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (VPBROADCASTMB2QZrr:{ *:[v8i64] } VK8:{ *:[v8i1] }:$src)
/*567329*/      /*SwitchType*/ 9, MVT::v4i64,// ->567340
/*567331*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*567333*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTMB2QZ256rr), 0,
                      MVT::v4i64, 1/*#Ops*/, 0, 
                  // Src: (X86VBroadcastm:{ *:[v4i64] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (VPBROADCASTMB2QZ256rr:{ *:[v4i64] } VK8:{ *:[v8i1] }:$src)
/*567340*/      /*SwitchType*/ 9, MVT::v2i64,// ->567351
/*567342*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*567344*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTMB2QZ128rr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (X86VBroadcastm:{ *:[v2i64] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (VPBROADCASTMB2QZ128rr:{ *:[v2i64] } VK8:{ *:[v8i1] }:$src)
/*567351*/      0, // EndSwitchType
/*567352*/    0, /*End of Scope*/
/*567353*/  /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::KADD),// ->567408
/*567356*/    OPC_RecordChild0, // #0 = $src1
/*567357*/    OPC_RecordChild1, // #1 = $src2
/*567358*/    OPC_SwitchType /*4 cases */, 10, MVT::v8i1,// ->567371
/*567361*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*567363*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KADDBrr), 0,
                    MVT::v8i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kadd:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2) - Complexity = 3
                // Dst: (KADDBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*567371*/    /*SwitchType*/ 10, MVT::v16i1,// ->567383
/*567373*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*567375*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KADDWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kadd:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2) - Complexity = 3
                // Dst: (KADDWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*567383*/    /*SwitchType*/ 10, MVT::v32i1,// ->567395
/*567385*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*567387*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KADDDrr), 0,
                    MVT::v32i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kadd:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2) - Complexity = 3
                // Dst: (KADDDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*567395*/    /*SwitchType*/ 10, MVT::v64i1,// ->567407
/*567397*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*567399*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KADDQrr), 0,
                    MVT::v64i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kadd:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2) - Complexity = 3
                // Dst: (KADDQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*567407*/    0, // EndSwitchType
/*567408*/  /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(X86ISD::VTRUNC),// ->567549
/*567412*/    OPC_RecordChild0, // #0 = $src1
/*567413*/    OPC_Scope, 37, /*->567452*/ // 6 children in Scope
/*567415*/      OPC_CheckChild0Type, MVT::v2i64,
/*567417*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->567429
/*567420*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567422*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVQBZ128rr:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1)
/*567429*/      /*SwitchType*/ 9, MVT::v8i16,// ->567440
/*567431*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567433*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVQWZ128rr:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1)
/*567440*/      /*SwitchType*/ 9, MVT::v4i32,// ->567451
/*567442*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567444*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ128rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVQDZ128rr:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1)
/*567451*/      0, // EndSwitchType
/*567452*/    /*Scope*/ 26, /*->567479*/
/*567453*/      OPC_CheckChild0Type, MVT::v4i64,
/*567455*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->567467
/*567458*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567460*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ256rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVQBZ256rr:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1)
/*567467*/      /*SwitchType*/ 9, MVT::v8i16,// ->567478
/*567469*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567471*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ256rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVQWZ256rr:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1)
/*567478*/      0, // EndSwitchType
/*567479*/    /*Scope*/ 13, /*->567493*/
/*567480*/      OPC_CheckChild0Type, MVT::v8i64,
/*567482*/      OPC_CheckType, MVT::v16i8,
/*567484*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567486*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZrr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtrunc:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                // Dst: (VPMOVQBZrr:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1)
/*567493*/    /*Scope*/ 26, /*->567520*/
/*567494*/      OPC_CheckChild0Type, MVT::v4i32,
/*567496*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->567508
/*567499*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567501*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVDBZ128rr:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1)
/*567508*/      /*SwitchType*/ 9, MVT::v8i16,// ->567519
/*567510*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567512*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVDWZ128rr:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1)
/*567519*/      0, // EndSwitchType
/*567520*/    /*Scope*/ 13, /*->567534*/
/*567521*/      OPC_CheckChild0Type, MVT::v8i32,
/*567523*/      OPC_CheckType, MVT::v16i8,
/*567525*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567527*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ256rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtrunc:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                // Dst: (VPMOVDBZ256rr:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1)
/*567534*/    /*Scope*/ 13, /*->567548*/
/*567535*/      OPC_CheckChild0Type, MVT::v8i16,
/*567537*/      OPC_CheckType, MVT::v16i8,
/*567539*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*567541*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ128rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1) - Complexity = 3
                // Dst: (VPMOVWBZ128rr:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1)
/*567548*/    0, /*End of Scope*/
/*567549*/  /*SwitchOpcode*/ 112|128,1/*240*/, TARGET_VAL(X86ISD::VTRUNCS),// ->567793
/*567553*/    OPC_RecordChild0, // #0 = $src1
/*567554*/    OPC_Scope, 37, /*->567593*/ // 9 children in Scope
/*567556*/      OPC_CheckChild0Type, MVT::v2i64,
/*567558*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->567570
/*567561*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567563*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSQBZ128rr:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1)
/*567570*/      /*SwitchType*/ 9, MVT::v8i16,// ->567581
/*567572*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567574*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSQWZ128rr:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1)
/*567581*/      /*SwitchType*/ 9, MVT::v4i32,// ->567592
/*567583*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567585*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ128rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSQDZ128rr:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1)
/*567592*/      0, // EndSwitchType
/*567593*/    /*Scope*/ 37, /*->567631*/
/*567594*/      OPC_CheckChild0Type, MVT::v4i64,
/*567596*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->567608
/*567599*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567601*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ256rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSQBZ256rr:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1)
/*567608*/      /*SwitchType*/ 9, MVT::v8i16,// ->567619
/*567610*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567612*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ256rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSQWZ256rr:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1)
/*567619*/      /*SwitchType*/ 9, MVT::v4i32,// ->567630
/*567621*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567623*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ256rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSQDZ256rr:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1)
/*567630*/      0, // EndSwitchType
/*567631*/    /*Scope*/ 37, /*->567669*/
/*567632*/      OPC_CheckChild0Type, MVT::v8i64,
/*567634*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->567646
/*567637*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567639*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZrr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSQBZrr:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1)
/*567646*/      /*SwitchType*/ 9, MVT::v8i16,// ->567657
/*567648*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567650*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSQWZrr:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1)
/*567657*/      /*SwitchType*/ 9, MVT::v8i32,// ->567668
/*567659*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567661*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZrr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSQDZrr:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1)
/*567668*/      0, // EndSwitchType
/*567669*/    /*Scope*/ 26, /*->567696*/
/*567670*/      OPC_CheckChild0Type, MVT::v4i32,
/*567672*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->567684
/*567675*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567677*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSDBZ128rr:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1)
/*567684*/      /*SwitchType*/ 9, MVT::v8i16,// ->567695
/*567686*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567688*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSDWZ128rr:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1)
/*567695*/      0, // EndSwitchType
/*567696*/    /*Scope*/ 26, /*->567723*/
/*567697*/      OPC_CheckChild0Type, MVT::v8i32,
/*567699*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->567711
/*567702*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567704*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ256rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSDBZ256rr:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1)
/*567711*/      /*SwitchType*/ 9, MVT::v8i16,// ->567722
/*567713*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567715*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ256rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSDWZ256rr:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1)
/*567722*/      0, // EndSwitchType
/*567723*/    /*Scope*/ 26, /*->567750*/
/*567724*/      OPC_CheckChild0Type, MVT::v16i32,
/*567726*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->567738
/*567729*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567731*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZrr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSDBZrr:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1)
/*567738*/      /*SwitchType*/ 9, MVT::v16i16,// ->567749
/*567740*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567742*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZrr), 0,
                      MVT::v16i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVSDWZrr:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1)
/*567749*/      0, // EndSwitchType
/*567750*/    /*Scope*/ 13, /*->567764*/
/*567751*/      OPC_CheckChild0Type, MVT::v8i16,
/*567753*/      OPC_CheckType, MVT::v16i8,
/*567755*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*567757*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ128rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1) - Complexity = 3
                // Dst: (VPMOVSWBZ128rr:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1)
/*567764*/    /*Scope*/ 13, /*->567778*/
/*567765*/      OPC_CheckChild0Type, MVT::v16i16,
/*567767*/      OPC_CheckType, MVT::v16i8,
/*567769*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*567771*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ256rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1) - Complexity = 3
                // Dst: (VPMOVSWBZ256rr:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1)
/*567778*/    /*Scope*/ 13, /*->567792*/
/*567779*/      OPC_CheckChild0Type, MVT::v32i16,
/*567781*/      OPC_CheckType, MVT::v32i8,
/*567783*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*567785*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZrr), 0,
                    MVT::v32i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncs:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1) - Complexity = 3
                // Dst: (VPMOVSWBZrr:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1)
/*567792*/    0, /*End of Scope*/
/*567793*/  /*SwitchOpcode*/ 112|128,1/*240*/, TARGET_VAL(X86ISD::VTRUNCUS),// ->568037
/*567797*/    OPC_RecordChild0, // #0 = $src1
/*567798*/    OPC_Scope, 37, /*->567837*/ // 9 children in Scope
/*567800*/      OPC_CheckChild0Type, MVT::v2i64,
/*567802*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->567814
/*567805*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567807*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSQBZ128rr:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src1)
/*567814*/      /*SwitchType*/ 9, MVT::v8i16,// ->567825
/*567816*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567818*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSQWZ128rr:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src1)
/*567825*/      /*SwitchType*/ 9, MVT::v4i32,// ->567836
/*567827*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567829*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ128rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSQDZ128rr:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src1)
/*567836*/      0, // EndSwitchType
/*567837*/    /*Scope*/ 37, /*->567875*/
/*567838*/      OPC_CheckChild0Type, MVT::v4i64,
/*567840*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->567852
/*567843*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567845*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ256rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSQBZ256rr:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src1)
/*567852*/      /*SwitchType*/ 9, MVT::v8i16,// ->567863
/*567854*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567856*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ256rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSQWZ256rr:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src1)
/*567863*/      /*SwitchType*/ 9, MVT::v4i32,// ->567874
/*567865*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567867*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ256rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSQDZ256rr:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src1)
/*567874*/      0, // EndSwitchType
/*567875*/    /*Scope*/ 37, /*->567913*/
/*567876*/      OPC_CheckChild0Type, MVT::v8i64,
/*567878*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->567890
/*567881*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567883*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZrr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSQBZrr:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src1)
/*567890*/      /*SwitchType*/ 9, MVT::v8i16,// ->567901
/*567892*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567894*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSQWZrr:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src1)
/*567901*/      /*SwitchType*/ 9, MVT::v8i32,// ->567912
/*567903*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567905*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZrr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSQDZrr:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src1)
/*567912*/      0, // EndSwitchType
/*567913*/    /*Scope*/ 26, /*->567940*/
/*567914*/      OPC_CheckChild0Type, MVT::v4i32,
/*567916*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->567928
/*567919*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567921*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSDBZ128rr:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src1)
/*567928*/      /*SwitchType*/ 9, MVT::v8i16,// ->567939
/*567930*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567932*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSDWZ128rr:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1)
/*567939*/      0, // EndSwitchType
/*567940*/    /*Scope*/ 26, /*->567967*/
/*567941*/      OPC_CheckChild0Type, MVT::v8i32,
/*567943*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->567955
/*567946*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567948*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ256rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSDBZ256rr:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src1)
/*567955*/      /*SwitchType*/ 9, MVT::v8i16,// ->567966
/*567957*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*567959*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ256rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSDWZ256rr:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src1)
/*567966*/      0, // EndSwitchType
/*567967*/    /*Scope*/ 26, /*->567994*/
/*567968*/      OPC_CheckChild0Type, MVT::v16i32,
/*567970*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->567982
/*567973*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567975*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZrr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSDBZrr:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src1)
/*567982*/      /*SwitchType*/ 9, MVT::v16i16,// ->567993
/*567984*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567986*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZrr), 0,
                      MVT::v16i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                  // Dst: (VPMOVUSDWZrr:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src1)
/*567993*/      0, // EndSwitchType
/*567994*/    /*Scope*/ 13, /*->568008*/
/*567995*/      OPC_CheckChild0Type, MVT::v8i16,
/*567997*/      OPC_CheckType, MVT::v16i8,
/*567999*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*568001*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ128rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1) - Complexity = 3
                // Dst: (VPMOVUSWBZ128rr:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1)
/*568008*/    /*Scope*/ 13, /*->568022*/
/*568009*/      OPC_CheckChild0Type, MVT::v16i16,
/*568011*/      OPC_CheckType, MVT::v16i8,
/*568013*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*568015*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ256rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1) - Complexity = 3
                // Dst: (VPMOVUSWBZ256rr:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src1)
/*568022*/    /*Scope*/ 13, /*->568036*/
/*568023*/      OPC_CheckChild0Type, MVT::v32i16,
/*568025*/      OPC_CheckType, MVT::v32i8,
/*568027*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*568029*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZrr), 0,
                    MVT::v32i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncus:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1) - Complexity = 3
                // Dst: (VPMOVUSWBZrr:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src1)
/*568036*/    0, /*End of Scope*/
/*568037*/  /*SwitchOpcode*/ 73|128,1/*201*/, TARGET_VAL(X86ISD::COMPRESS),// ->568242
/*568041*/    OPC_RecordChild0, // #0 = $src1
/*568042*/    OPC_SwitchType /*18 cases */, 9, MVT::v16i32,// ->568054
/*568045*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568047*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZrr), 0,
                    MVT::v16i32, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1)
/*568054*/    /*SwitchType*/ 9, MVT::v8i32,// ->568065
/*568056*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*568058*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZ256rr), 0,
                    MVT::v8i32, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1)
/*568065*/    /*SwitchType*/ 9, MVT::v4i32,// ->568076
/*568067*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*568069*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZ128rr), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1)
/*568076*/    /*SwitchType*/ 9, MVT::v8i64,// ->568087
/*568078*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568080*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZrr), 0,
                    MVT::v8i64, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1)
/*568087*/    /*SwitchType*/ 9, MVT::v4i64,// ->568098
/*568089*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*568091*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZ256rr), 0,
                    MVT::v4i64, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1)
/*568098*/    /*SwitchType*/ 9, MVT::v2i64,// ->568109
/*568100*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*568102*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZ128rr), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1)
/*568109*/    /*SwitchType*/ 9, MVT::v64i8,// ->568120
/*568111*/      OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*568113*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZrr), 0,
                    MVT::v64i8, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1)
/*568120*/    /*SwitchType*/ 9, MVT::v32i8,// ->568131
/*568122*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*568124*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZ256rr), 0,
                    MVT::v32i8, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1)
/*568131*/    /*SwitchType*/ 9, MVT::v16i8,// ->568142
/*568133*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*568135*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZ128rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1)
/*568142*/    /*SwitchType*/ 9, MVT::v32i16,// ->568153
/*568144*/      OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*568146*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZrr), 0,
                    MVT::v32i16, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1)
/*568153*/    /*SwitchType*/ 9, MVT::v16i16,// ->568164
/*568155*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*568157*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZ256rr), 0,
                    MVT::v16i16, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1)
/*568164*/    /*SwitchType*/ 9, MVT::v8i16,// ->568175
/*568166*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*568168*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZ128rr), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1) - Complexity = 3
                // Dst: (VPCOMPRESSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1)
/*568175*/    /*SwitchType*/ 9, MVT::v16f32,// ->568186
/*568177*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568179*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZrr), 0,
                    MVT::v16f32, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1) - Complexity = 3
                // Dst: (VCOMPRESSPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1)
/*568186*/    /*SwitchType*/ 9, MVT::v8f32,// ->568197
/*568188*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*568190*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZ256rr), 0,
                    MVT::v8f32, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1) - Complexity = 3
                // Dst: (VCOMPRESSPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1)
/*568197*/    /*SwitchType*/ 9, MVT::v4f32,// ->568208
/*568199*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*568201*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZ128rr), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1) - Complexity = 3
                // Dst: (VCOMPRESSPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1)
/*568208*/    /*SwitchType*/ 9, MVT::v8f64,// ->568219
/*568210*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568212*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZrr), 0,
                    MVT::v8f64, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1) - Complexity = 3
                // Dst: (VCOMPRESSPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1)
/*568219*/    /*SwitchType*/ 9, MVT::v4f64,// ->568230
/*568221*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*568223*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZ256rr), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1) - Complexity = 3
                // Dst: (VCOMPRESSPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1)
/*568230*/    /*SwitchType*/ 9, MVT::v2f64,// ->568241
/*568232*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*568234*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZ128rr), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (X86compress:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1) - Complexity = 3
                // Dst: (VCOMPRESSPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1)
/*568241*/    0, // EndSwitchType
/*568242*/  /*SwitchOpcode*/ 114, TARGET_VAL(ISD::CONCAT_VECTORS),// ->568359
/*568245*/    OPC_RecordChild0, // #0 = $src1
/*568246*/    OPC_SwitchType /*3 cases */, 35, MVT::v16i1,// ->568284
/*568249*/      OPC_CheckChild0Type, MVT::v8i1,
/*568251*/      OPC_RecordChild1, // #1 = $src2
/*568252*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568254*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*568257*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*568265*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*568268*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*568276*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KUNPCKBWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 3, 5, 
                // Src: (concat_vectors:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2) - Complexity = 3
                // Dst: (KUNPCKBWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }))
/*568284*/    /*SwitchType*/ 35, MVT::v32i1,// ->568321
/*568286*/      OPC_CheckChild0Type, MVT::v16i1,
/*568288*/      OPC_RecordChild1, // #1 = $src2
/*568289*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*568291*/      OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*568294*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v32i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*568302*/      OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*568305*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v32i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*568313*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KUNPCKWDrr), 0,
                    MVT::v32i1, 2/*#Ops*/, 3, 5, 
                // Src: (concat_vectors:{ *:[v32i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2) - Complexity = 3
                // Dst: (KUNPCKWDrr:{ *:[v32i1] } (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$src2, VK32:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$src1, VK32:{ *:[i32] }))
/*568321*/    /*SwitchType*/ 35, MVT::v64i1,// ->568358
/*568323*/      OPC_CheckChild0Type, MVT::v32i1,
/*568325*/      OPC_RecordChild1, // #1 = $src2
/*568326*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasBWI())
/*568328*/      OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*568331*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v64i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*568339*/      OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*568342*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v64i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*568350*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KUNPCKDQrr), 0,
                    MVT::v64i1, 2/*#Ops*/, 3, 5, 
                // Src: (concat_vectors:{ *:[v64i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2) - Complexity = 3
                // Dst: (KUNPCKDQrr:{ *:[v64i1] } (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$src2, VK64:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$src1, VK64:{ *:[i32] }))
/*568358*/    0, // EndSwitchType
/*568359*/  /*SwitchOpcode*/ 32|128,103/*13216*/, TARGET_VAL(X86ISD::MOVSS),// ->581579
/*568363*/    OPC_Scope, 114|128,66/*8562*/, /*->576928*/ // 5 children in Scope
/*568366*/      OPC_RecordChild0, // #0 = $src1
/*568367*/      OPC_MoveChild1,
/*568368*/      OPC_SwitchOpcode /*2 cases */, 68|128,66/*8516*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->576889
/*568373*/        OPC_MoveChild0,
/*568374*/        OPC_SwitchOpcode /*7 cases */, 116|128,43/*5620*/, TARGET_VAL(X86ISD::SELECTS),// ->573999
/*568379*/          OPC_Scope, 32|128,22/*2848*/, /*->571230*/ // 5 children in Scope
/*568382*/            OPC_RecordChild0, // #1 = $mask
/*568383*/            OPC_MoveChild1,
/*568384*/            OPC_SwitchOpcode /*4 cases */, 67|128,5/*707*/, TARGET_VAL(ISD::FMA),// ->569096
/*568389*/              OPC_Scope, 72, /*->568463*/ // 8 children in Scope
/*568391*/                OPC_RecordChild0, // #2 = $src2
/*568392*/                OPC_MoveChild1,
/*568393*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568396*/                OPC_CheckChild0Same, 0,
/*568398*/                OPC_CheckChild1Integer, 0, 
/*568400*/                OPC_MoveParent,
/*568401*/                OPC_MoveChild2,
/*568402*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*568405*/                OPC_RecordMemRef,
/*568406*/                OPC_RecordNode, // #3 = 'ld' chained node
/*568407*/                OPC_CheckFoldableChainNode,
/*568408*/                OPC_RecordChild1, // #4 = $src3
/*568409*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*568411*/                OPC_CheckPredicate, 9, // Predicate_load
/*568413*/                OPC_MoveParent,
/*568414*/                OPC_MoveParent,
/*568415*/                OPC_MoveChild2,
/*568416*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568419*/                OPC_CheckChild0Same, 0,
/*568421*/                OPC_CheckChild1Integer, 0, 
/*568423*/                OPC_MoveParent,
/*568424*/                OPC_CheckType, MVT::f32,
/*568426*/                OPC_MoveParent,
/*568427*/                OPC_MoveParent,
/*568428*/                OPC_CheckType, MVT::v4f32,
/*568430*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568432*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*568435*/                OPC_EmitMergeInputChains, 1, 3, 
/*568438*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*568441*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*568449*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMADD213SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*568463*/              /*Scope*/ 70, /*->568534*/
/*568464*/                OPC_MoveChild0,
/*568465*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568468*/                OPC_CheckChild0Same, 0,
/*568470*/                OPC_CheckChild1Integer, 0, 
/*568472*/                OPC_MoveParent,
/*568473*/                OPC_MoveChild1,
/*568474*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*568477*/                OPC_RecordMemRef,
/*568478*/                OPC_RecordNode, // #2 = 'ld' chained node
/*568479*/                OPC_CheckFoldableChainNode,
/*568480*/                OPC_RecordChild1, // #3 = $src3
/*568481*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*568483*/                OPC_CheckPredicate, 9, // Predicate_load
/*568485*/                OPC_MoveParent,
/*568486*/                OPC_RecordChild2, // #4 = $src2
/*568487*/                OPC_MoveParent,
/*568488*/                OPC_MoveChild2,
/*568489*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568492*/                OPC_CheckChild0Same, 0,
/*568494*/                OPC_CheckChild1Integer, 0, 
/*568496*/                OPC_MoveParent,
/*568497*/                OPC_CheckType, MVT::f32,
/*568499*/                OPC_MoveParent,
/*568500*/                OPC_MoveParent,
/*568501*/                OPC_CheckType, MVT::v4f32,
/*568503*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568505*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*568508*/                OPC_EmitMergeInputChains1_2,
/*568509*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*568512*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*568520*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMADD132SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*568534*/              /*Scope*/ 72, /*->568607*/
/*568535*/                OPC_RecordChild0, // #2 = $src2
/*568536*/                OPC_MoveChild1,
/*568537*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*568540*/                OPC_RecordMemRef,
/*568541*/                OPC_RecordNode, // #3 = 'ld' chained node
/*568542*/                OPC_CheckFoldableChainNode,
/*568543*/                OPC_RecordChild1, // #4 = $src3
/*568544*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*568546*/                OPC_CheckPredicate, 9, // Predicate_load
/*568548*/                OPC_MoveParent,
/*568549*/                OPC_MoveChild2,
/*568550*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568553*/                OPC_CheckChild0Same, 0,
/*568555*/                OPC_CheckChild1Integer, 0, 
/*568557*/                OPC_MoveParent,
/*568558*/                OPC_MoveParent,
/*568559*/                OPC_MoveChild2,
/*568560*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568563*/                OPC_CheckChild0Same, 0,
/*568565*/                OPC_CheckChild1Integer, 0, 
/*568567*/                OPC_MoveParent,
/*568568*/                OPC_CheckType, MVT::f32,
/*568570*/                OPC_MoveParent,
/*568571*/                OPC_MoveParent,
/*568572*/                OPC_CheckType, MVT::v4f32,
/*568574*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568576*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*568579*/                OPC_EmitMergeInputChains, 1, 3, 
/*568582*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*568585*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*568593*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMADD231SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*568607*/              /*Scope*/ 76|128,1/*204*/, /*->568813*/
/*568609*/                OPC_MoveChild0,
/*568610*/                OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->568682
/*568614*/                  OPC_CheckChild0Same, 0,
/*568616*/                  OPC_CheckChild1Integer, 0, 
/*568618*/                  OPC_MoveParent,
/*568619*/                  OPC_RecordChild1, // #2 = $src2
/*568620*/                  OPC_MoveChild2,
/*568621*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*568624*/                  OPC_RecordMemRef,
/*568625*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*568626*/                  OPC_CheckFoldableChainNode,
/*568627*/                  OPC_RecordChild1, // #4 = $src3
/*568628*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*568630*/                  OPC_CheckPredicate, 9, // Predicate_load
/*568632*/                  OPC_MoveParent,
/*568633*/                  OPC_MoveParent,
/*568634*/                  OPC_MoveChild2,
/*568635*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568638*/                  OPC_CheckChild0Same, 0,
/*568640*/                  OPC_CheckChild1Integer, 0, 
/*568642*/                  OPC_MoveParent,
/*568643*/                  OPC_CheckType, MVT::f32,
/*568645*/                  OPC_MoveParent,
/*568646*/                  OPC_MoveParent,
/*568647*/                  OPC_CheckType, MVT::v4f32,
/*568649*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568651*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*568654*/                  OPC_EmitMergeInputChains, 1, 3, 
/*568657*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*568660*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*568668*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                            // Dst: (VFMADD213SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*568682*/                /*SwitchOpcode*/ 127, TARGET_VAL(ISD::LOAD),// ->568812
/*568685*/                  OPC_RecordMemRef,
/*568686*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*568687*/                  OPC_CheckFoldableChainNode,
/*568688*/                  OPC_RecordChild1, // #3 = $src3
/*568689*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*568691*/                  OPC_CheckPredicate, 9, // Predicate_load
/*568693*/                  OPC_MoveParent,
/*568694*/                  OPC_Scope, 57, /*->568753*/ // 2 children in Scope
/*568696*/                    OPC_MoveChild1,
/*568697*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568700*/                    OPC_CheckChild0Same, 0,
/*568702*/                    OPC_CheckChild1Integer, 0, 
/*568704*/                    OPC_MoveParent,
/*568705*/                    OPC_RecordChild2, // #4 = $src2
/*568706*/                    OPC_MoveParent,
/*568707*/                    OPC_MoveChild2,
/*568708*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568711*/                    OPC_CheckChild0Same, 0,
/*568713*/                    OPC_CheckChild1Integer, 0, 
/*568715*/                    OPC_MoveParent,
/*568716*/                    OPC_CheckType, MVT::f32,
/*568718*/                    OPC_MoveParent,
/*568719*/                    OPC_MoveParent,
/*568720*/                    OPC_CheckType, MVT::v4f32,
/*568722*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568724*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*568727*/                    OPC_EmitMergeInputChains1_2,
/*568728*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*568731*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*568739*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFMADD132SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*568753*/                  /*Scope*/ 57, /*->568811*/
/*568754*/                    OPC_RecordChild1, // #4 = $src2
/*568755*/                    OPC_MoveChild2,
/*568756*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568759*/                    OPC_CheckChild0Same, 0,
/*568761*/                    OPC_CheckChild1Integer, 0, 
/*568763*/                    OPC_MoveParent,
/*568764*/                    OPC_MoveParent,
/*568765*/                    OPC_MoveChild2,
/*568766*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568769*/                    OPC_CheckChild0Same, 0,
/*568771*/                    OPC_CheckChild1Integer, 0, 
/*568773*/                    OPC_MoveParent,
/*568774*/                    OPC_CheckType, MVT::f32,
/*568776*/                    OPC_MoveParent,
/*568777*/                    OPC_MoveParent,
/*568778*/                    OPC_CheckType, MVT::v4f32,
/*568780*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568782*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*568785*/                    OPC_EmitMergeInputChains1_2,
/*568786*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*568789*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*568797*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFMADD231SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*568811*/                  0, /*End of Scope*/
/*568812*/                0, // EndSwitchOpcode
/*568813*/              /*Scope*/ 70, /*->568884*/
/*568814*/                OPC_RecordChild0, // #2 = $src2
/*568815*/                OPC_MoveChild1,
/*568816*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568819*/                OPC_CheckChild0Same, 0,
/*568821*/                OPC_CheckChild1Integer, 0, 
/*568823*/                OPC_MoveParent,
/*568824*/                OPC_MoveChild2,
/*568825*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*568828*/                OPC_RecordMemRef,
/*568829*/                OPC_RecordNode, // #3 = 'ld' chained node
/*568830*/                OPC_CheckFoldableChainNode,
/*568831*/                OPC_RecordChild1, // #4 = $src3
/*568832*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*568834*/                OPC_CheckPredicate, 9, // Predicate_load
/*568836*/                OPC_MoveParent,
/*568837*/                OPC_MoveParent,
/*568838*/                OPC_MoveChild2,
/*568839*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*568842*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*568844*/                OPC_MoveParent,
/*568845*/                OPC_CheckType, MVT::f32,
/*568847*/                OPC_MoveParent,
/*568848*/                OPC_MoveParent,
/*568849*/                OPC_CheckType, MVT::v4f32,
/*568851*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568853*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*568856*/                OPC_EmitMergeInputChains, 1, 3, 
/*568859*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*568862*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*568870*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFMADD213SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*568884*/              /*Scope*/ 70, /*->568955*/
/*568885*/                OPC_MoveChild0,
/*568886*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568889*/                OPC_CheckChild0Same, 0,
/*568891*/                OPC_CheckChild1Integer, 0, 
/*568893*/                OPC_MoveParent,
/*568894*/                OPC_RecordChild1, // #2 = $src2
/*568895*/                OPC_MoveChild2,
/*568896*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*568899*/                OPC_RecordMemRef,
/*568900*/                OPC_RecordNode, // #3 = 'ld' chained node
/*568901*/                OPC_CheckFoldableChainNode,
/*568902*/                OPC_RecordChild1, // #4 = $src3
/*568903*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*568905*/                OPC_CheckPredicate, 9, // Predicate_load
/*568907*/                OPC_MoveParent,
/*568908*/                OPC_MoveParent,
/*568909*/                OPC_MoveChild2,
/*568910*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*568913*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*568915*/                OPC_MoveParent,
/*568916*/                OPC_CheckType, MVT::f32,
/*568918*/                OPC_MoveParent,
/*568919*/                OPC_MoveParent,
/*568920*/                OPC_CheckType, MVT::v4f32,
/*568922*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568924*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*568927*/                OPC_EmitMergeInputChains, 1, 3, 
/*568930*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*568933*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*568941*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFMADD132SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*568955*/              /*Scope*/ 70, /*->569026*/
/*568956*/                OPC_RecordChild0, // #2 = $src2
/*568957*/                OPC_MoveChild1,
/*568958*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*568961*/                OPC_RecordMemRef,
/*568962*/                OPC_RecordNode, // #3 = 'ld' chained node
/*568963*/                OPC_CheckFoldableChainNode,
/*568964*/                OPC_RecordChild1, // #4 = $src3
/*568965*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*568967*/                OPC_CheckPredicate, 9, // Predicate_load
/*568969*/                OPC_MoveParent,
/*568970*/                OPC_MoveChild2,
/*568971*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*568974*/                OPC_CheckChild0Same, 0,
/*568976*/                OPC_CheckChild1Integer, 0, 
/*568978*/                OPC_MoveParent,
/*568979*/                OPC_MoveParent,
/*568980*/                OPC_MoveChild2,
/*568981*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*568984*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*568986*/                OPC_MoveParent,
/*568987*/                OPC_CheckType, MVT::f32,
/*568989*/                OPC_MoveParent,
/*568990*/                OPC_MoveParent,
/*568991*/                OPC_CheckType, MVT::v4f32,
/*568993*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568995*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*568998*/                OPC_EmitMergeInputChains, 1, 3, 
/*569001*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569004*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*569012*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFMADD231SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569026*/              /*Scope*/ 68, /*->569095*/
/*569027*/                OPC_MoveChild0,
/*569028*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569031*/                OPC_RecordMemRef,
/*569032*/                OPC_RecordNode, // #2 = 'ld' chained node
/*569033*/                OPC_CheckFoldableChainNode,
/*569034*/                OPC_RecordChild1, // #3 = $src3
/*569035*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569037*/                OPC_CheckPredicate, 9, // Predicate_load
/*569039*/                OPC_MoveParent,
/*569040*/                OPC_RecordChild1, // #4 = $src2
/*569041*/                OPC_MoveChild2,
/*569042*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569045*/                OPC_CheckChild0Same, 0,
/*569047*/                OPC_CheckChild1Integer, 0, 
/*569049*/                OPC_MoveParent,
/*569050*/                OPC_MoveParent,
/*569051*/                OPC_MoveChild2,
/*569052*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*569055*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*569057*/                OPC_MoveParent,
/*569058*/                OPC_CheckType, MVT::f32,
/*569060*/                OPC_MoveParent,
/*569061*/                OPC_MoveParent,
/*569062*/                OPC_CheckType, MVT::v4f32,
/*569064*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569066*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569069*/                OPC_EmitMergeInputChains1_2,
/*569070*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569073*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*569081*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFMADD231SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569095*/              0, /*End of Scope*/
/*569096*/            /*SwitchOpcode*/ 67|128,5/*707*/, TARGET_VAL(X86ISD::FMSUB),// ->569807
/*569100*/              OPC_Scope, 72, /*->569174*/ // 8 children in Scope
/*569102*/                OPC_RecordChild0, // #2 = $src2
/*569103*/                OPC_MoveChild1,
/*569104*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569107*/                OPC_CheckChild0Same, 0,
/*569109*/                OPC_CheckChild1Integer, 0, 
/*569111*/                OPC_MoveParent,
/*569112*/                OPC_MoveChild2,
/*569113*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569116*/                OPC_RecordMemRef,
/*569117*/                OPC_RecordNode, // #3 = 'ld' chained node
/*569118*/                OPC_CheckFoldableChainNode,
/*569119*/                OPC_RecordChild1, // #4 = $src3
/*569120*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569122*/                OPC_CheckPredicate, 9, // Predicate_load
/*569124*/                OPC_MoveParent,
/*569125*/                OPC_MoveParent,
/*569126*/                OPC_MoveChild2,
/*569127*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569130*/                OPC_CheckChild0Same, 0,
/*569132*/                OPC_CheckChild1Integer, 0, 
/*569134*/                OPC_MoveParent,
/*569135*/                OPC_CheckType, MVT::f32,
/*569137*/                OPC_MoveParent,
/*569138*/                OPC_MoveParent,
/*569139*/                OPC_CheckType, MVT::v4f32,
/*569141*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569143*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569146*/                OPC_EmitMergeInputChains, 1, 3, 
/*569149*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569152*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*569160*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMSUB213SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569174*/              /*Scope*/ 70, /*->569245*/
/*569175*/                OPC_MoveChild0,
/*569176*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569179*/                OPC_CheckChild0Same, 0,
/*569181*/                OPC_CheckChild1Integer, 0, 
/*569183*/                OPC_MoveParent,
/*569184*/                OPC_MoveChild1,
/*569185*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569188*/                OPC_RecordMemRef,
/*569189*/                OPC_RecordNode, // #2 = 'ld' chained node
/*569190*/                OPC_CheckFoldableChainNode,
/*569191*/                OPC_RecordChild1, // #3 = $src3
/*569192*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569194*/                OPC_CheckPredicate, 9, // Predicate_load
/*569196*/                OPC_MoveParent,
/*569197*/                OPC_RecordChild2, // #4 = $src2
/*569198*/                OPC_MoveParent,
/*569199*/                OPC_MoveChild2,
/*569200*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569203*/                OPC_CheckChild0Same, 0,
/*569205*/                OPC_CheckChild1Integer, 0, 
/*569207*/                OPC_MoveParent,
/*569208*/                OPC_CheckType, MVT::f32,
/*569210*/                OPC_MoveParent,
/*569211*/                OPC_MoveParent,
/*569212*/                OPC_CheckType, MVT::v4f32,
/*569214*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569216*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569219*/                OPC_EmitMergeInputChains1_2,
/*569220*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569223*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*569231*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMSUB132SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569245*/              /*Scope*/ 72, /*->569318*/
/*569246*/                OPC_RecordChild0, // #2 = $src2
/*569247*/                OPC_MoveChild1,
/*569248*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569251*/                OPC_RecordMemRef,
/*569252*/                OPC_RecordNode, // #3 = 'ld' chained node
/*569253*/                OPC_CheckFoldableChainNode,
/*569254*/                OPC_RecordChild1, // #4 = $src3
/*569255*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569257*/                OPC_CheckPredicate, 9, // Predicate_load
/*569259*/                OPC_MoveParent,
/*569260*/                OPC_MoveChild2,
/*569261*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569264*/                OPC_CheckChild0Same, 0,
/*569266*/                OPC_CheckChild1Integer, 0, 
/*569268*/                OPC_MoveParent,
/*569269*/                OPC_MoveParent,
/*569270*/                OPC_MoveChild2,
/*569271*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569274*/                OPC_CheckChild0Same, 0,
/*569276*/                OPC_CheckChild1Integer, 0, 
/*569278*/                OPC_MoveParent,
/*569279*/                OPC_CheckType, MVT::f32,
/*569281*/                OPC_MoveParent,
/*569282*/                OPC_MoveParent,
/*569283*/                OPC_CheckType, MVT::v4f32,
/*569285*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569287*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569290*/                OPC_EmitMergeInputChains, 1, 3, 
/*569293*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569296*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*569304*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMSUB231SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569318*/              /*Scope*/ 76|128,1/*204*/, /*->569524*/
/*569320*/                OPC_MoveChild0,
/*569321*/                OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->569393
/*569325*/                  OPC_CheckChild0Same, 0,
/*569327*/                  OPC_CheckChild1Integer, 0, 
/*569329*/                  OPC_MoveParent,
/*569330*/                  OPC_RecordChild1, // #2 = $src2
/*569331*/                  OPC_MoveChild2,
/*569332*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569335*/                  OPC_RecordMemRef,
/*569336*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*569337*/                  OPC_CheckFoldableChainNode,
/*569338*/                  OPC_RecordChild1, // #4 = $src3
/*569339*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569341*/                  OPC_CheckPredicate, 9, // Predicate_load
/*569343*/                  OPC_MoveParent,
/*569344*/                  OPC_MoveParent,
/*569345*/                  OPC_MoveChild2,
/*569346*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569349*/                  OPC_CheckChild0Same, 0,
/*569351*/                  OPC_CheckChild1Integer, 0, 
/*569353*/                  OPC_MoveParent,
/*569354*/                  OPC_CheckType, MVT::f32,
/*569356*/                  OPC_MoveParent,
/*569357*/                  OPC_MoveParent,
/*569358*/                  OPC_CheckType, MVT::v4f32,
/*569360*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569362*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569365*/                  OPC_EmitMergeInputChains, 1, 3, 
/*569368*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569371*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*569379*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                            // Dst: (VFMSUB213SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569393*/                /*SwitchOpcode*/ 127, TARGET_VAL(ISD::LOAD),// ->569523
/*569396*/                  OPC_RecordMemRef,
/*569397*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*569398*/                  OPC_CheckFoldableChainNode,
/*569399*/                  OPC_RecordChild1, // #3 = $src3
/*569400*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569402*/                  OPC_CheckPredicate, 9, // Predicate_load
/*569404*/                  OPC_MoveParent,
/*569405*/                  OPC_Scope, 57, /*->569464*/ // 2 children in Scope
/*569407*/                    OPC_MoveChild1,
/*569408*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569411*/                    OPC_CheckChild0Same, 0,
/*569413*/                    OPC_CheckChild1Integer, 0, 
/*569415*/                    OPC_MoveParent,
/*569416*/                    OPC_RecordChild2, // #4 = $src2
/*569417*/                    OPC_MoveParent,
/*569418*/                    OPC_MoveChild2,
/*569419*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569422*/                    OPC_CheckChild0Same, 0,
/*569424*/                    OPC_CheckChild1Integer, 0, 
/*569426*/                    OPC_MoveParent,
/*569427*/                    OPC_CheckType, MVT::f32,
/*569429*/                    OPC_MoveParent,
/*569430*/                    OPC_MoveParent,
/*569431*/                    OPC_CheckType, MVT::v4f32,
/*569433*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569435*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569438*/                    OPC_EmitMergeInputChains1_2,
/*569439*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569442*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*569450*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFMSUB132SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569464*/                  /*Scope*/ 57, /*->569522*/
/*569465*/                    OPC_RecordChild1, // #4 = $src2
/*569466*/                    OPC_MoveChild2,
/*569467*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569470*/                    OPC_CheckChild0Same, 0,
/*569472*/                    OPC_CheckChild1Integer, 0, 
/*569474*/                    OPC_MoveParent,
/*569475*/                    OPC_MoveParent,
/*569476*/                    OPC_MoveChild2,
/*569477*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569480*/                    OPC_CheckChild0Same, 0,
/*569482*/                    OPC_CheckChild1Integer, 0, 
/*569484*/                    OPC_MoveParent,
/*569485*/                    OPC_CheckType, MVT::f32,
/*569487*/                    OPC_MoveParent,
/*569488*/                    OPC_MoveParent,
/*569489*/                    OPC_CheckType, MVT::v4f32,
/*569491*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569493*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569496*/                    OPC_EmitMergeInputChains1_2,
/*569497*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569500*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*569508*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFMSUB231SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569522*/                  0, /*End of Scope*/
/*569523*/                0, // EndSwitchOpcode
/*569524*/              /*Scope*/ 70, /*->569595*/
/*569525*/                OPC_RecordChild0, // #2 = $src2
/*569526*/                OPC_MoveChild1,
/*569527*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569530*/                OPC_CheckChild0Same, 0,
/*569532*/                OPC_CheckChild1Integer, 0, 
/*569534*/                OPC_MoveParent,
/*569535*/                OPC_MoveChild2,
/*569536*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569539*/                OPC_RecordMemRef,
/*569540*/                OPC_RecordNode, // #3 = 'ld' chained node
/*569541*/                OPC_CheckFoldableChainNode,
/*569542*/                OPC_RecordChild1, // #4 = $src3
/*569543*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569545*/                OPC_CheckPredicate, 9, // Predicate_load
/*569547*/                OPC_MoveParent,
/*569548*/                OPC_MoveParent,
/*569549*/                OPC_MoveChild2,
/*569550*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*569553*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*569555*/                OPC_MoveParent,
/*569556*/                OPC_CheckType, MVT::f32,
/*569558*/                OPC_MoveParent,
/*569559*/                OPC_MoveParent,
/*569560*/                OPC_CheckType, MVT::v4f32,
/*569562*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569564*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569567*/                OPC_EmitMergeInputChains, 1, 3, 
/*569570*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569573*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*569581*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFMSUB213SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569595*/              /*Scope*/ 70, /*->569666*/
/*569596*/                OPC_MoveChild0,
/*569597*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569600*/                OPC_CheckChild0Same, 0,
/*569602*/                OPC_CheckChild1Integer, 0, 
/*569604*/                OPC_MoveParent,
/*569605*/                OPC_RecordChild1, // #2 = $src2
/*569606*/                OPC_MoveChild2,
/*569607*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569610*/                OPC_RecordMemRef,
/*569611*/                OPC_RecordNode, // #3 = 'ld' chained node
/*569612*/                OPC_CheckFoldableChainNode,
/*569613*/                OPC_RecordChild1, // #4 = $src3
/*569614*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569616*/                OPC_CheckPredicate, 9, // Predicate_load
/*569618*/                OPC_MoveParent,
/*569619*/                OPC_MoveParent,
/*569620*/                OPC_MoveChild2,
/*569621*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*569624*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*569626*/                OPC_MoveParent,
/*569627*/                OPC_CheckType, MVT::f32,
/*569629*/                OPC_MoveParent,
/*569630*/                OPC_MoveParent,
/*569631*/                OPC_CheckType, MVT::v4f32,
/*569633*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569635*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569638*/                OPC_EmitMergeInputChains, 1, 3, 
/*569641*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569644*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*569652*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFMSUB132SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569666*/              /*Scope*/ 70, /*->569737*/
/*569667*/                OPC_RecordChild0, // #2 = $src2
/*569668*/                OPC_MoveChild1,
/*569669*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569672*/                OPC_RecordMemRef,
/*569673*/                OPC_RecordNode, // #3 = 'ld' chained node
/*569674*/                OPC_CheckFoldableChainNode,
/*569675*/                OPC_RecordChild1, // #4 = $src3
/*569676*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569678*/                OPC_CheckPredicate, 9, // Predicate_load
/*569680*/                OPC_MoveParent,
/*569681*/                OPC_MoveChild2,
/*569682*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569685*/                OPC_CheckChild0Same, 0,
/*569687*/                OPC_CheckChild1Integer, 0, 
/*569689*/                OPC_MoveParent,
/*569690*/                OPC_MoveParent,
/*569691*/                OPC_MoveChild2,
/*569692*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*569695*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*569697*/                OPC_MoveParent,
/*569698*/                OPC_CheckType, MVT::f32,
/*569700*/                OPC_MoveParent,
/*569701*/                OPC_MoveParent,
/*569702*/                OPC_CheckType, MVT::v4f32,
/*569704*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569706*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569709*/                OPC_EmitMergeInputChains, 1, 3, 
/*569712*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569715*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*569723*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFMSUB231SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569737*/              /*Scope*/ 68, /*->569806*/
/*569738*/                OPC_MoveChild0,
/*569739*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569742*/                OPC_RecordMemRef,
/*569743*/                OPC_RecordNode, // #2 = 'ld' chained node
/*569744*/                OPC_CheckFoldableChainNode,
/*569745*/                OPC_RecordChild1, // #3 = $src3
/*569746*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569748*/                OPC_CheckPredicate, 9, // Predicate_load
/*569750*/                OPC_MoveParent,
/*569751*/                OPC_RecordChild1, // #4 = $src2
/*569752*/                OPC_MoveChild2,
/*569753*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569756*/                OPC_CheckChild0Same, 0,
/*569758*/                OPC_CheckChild1Integer, 0, 
/*569760*/                OPC_MoveParent,
/*569761*/                OPC_MoveParent,
/*569762*/                OPC_MoveChild2,
/*569763*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*569766*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*569768*/                OPC_MoveParent,
/*569769*/                OPC_CheckType, MVT::f32,
/*569771*/                OPC_MoveParent,
/*569772*/                OPC_MoveParent,
/*569773*/                OPC_CheckType, MVT::v4f32,
/*569775*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569777*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569780*/                OPC_EmitMergeInputChains1_2,
/*569781*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569784*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*569792*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFMSUB231SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569806*/              0, /*End of Scope*/
/*569807*/            /*SwitchOpcode*/ 67|128,5/*707*/, TARGET_VAL(X86ISD::FNMADD),// ->570518
/*569811*/              OPC_Scope, 72, /*->569885*/ // 8 children in Scope
/*569813*/                OPC_RecordChild0, // #2 = $src2
/*569814*/                OPC_MoveChild1,
/*569815*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569818*/                OPC_CheckChild0Same, 0,
/*569820*/                OPC_CheckChild1Integer, 0, 
/*569822*/                OPC_MoveParent,
/*569823*/                OPC_MoveChild2,
/*569824*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569827*/                OPC_RecordMemRef,
/*569828*/                OPC_RecordNode, // #3 = 'ld' chained node
/*569829*/                OPC_CheckFoldableChainNode,
/*569830*/                OPC_RecordChild1, // #4 = $src3
/*569831*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569833*/                OPC_CheckPredicate, 9, // Predicate_load
/*569835*/                OPC_MoveParent,
/*569836*/                OPC_MoveParent,
/*569837*/                OPC_MoveChild2,
/*569838*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569841*/                OPC_CheckChild0Same, 0,
/*569843*/                OPC_CheckChild1Integer, 0, 
/*569845*/                OPC_MoveParent,
/*569846*/                OPC_CheckType, MVT::f32,
/*569848*/                OPC_MoveParent,
/*569849*/                OPC_MoveParent,
/*569850*/                OPC_CheckType, MVT::v4f32,
/*569852*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569854*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569857*/                OPC_EmitMergeInputChains, 1, 3, 
/*569860*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569863*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*569871*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMADD213SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569885*/              /*Scope*/ 70, /*->569956*/
/*569886*/                OPC_MoveChild0,
/*569887*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569890*/                OPC_CheckChild0Same, 0,
/*569892*/                OPC_CheckChild1Integer, 0, 
/*569894*/                OPC_MoveParent,
/*569895*/                OPC_MoveChild1,
/*569896*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569899*/                OPC_RecordMemRef,
/*569900*/                OPC_RecordNode, // #2 = 'ld' chained node
/*569901*/                OPC_CheckFoldableChainNode,
/*569902*/                OPC_RecordChild1, // #3 = $src3
/*569903*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569905*/                OPC_CheckPredicate, 9, // Predicate_load
/*569907*/                OPC_MoveParent,
/*569908*/                OPC_RecordChild2, // #4 = $src2
/*569909*/                OPC_MoveParent,
/*569910*/                OPC_MoveChild2,
/*569911*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569914*/                OPC_CheckChild0Same, 0,
/*569916*/                OPC_CheckChild1Integer, 0, 
/*569918*/                OPC_MoveParent,
/*569919*/                OPC_CheckType, MVT::f32,
/*569921*/                OPC_MoveParent,
/*569922*/                OPC_MoveParent,
/*569923*/                OPC_CheckType, MVT::v4f32,
/*569925*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569927*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*569930*/                OPC_EmitMergeInputChains1_2,
/*569931*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*569934*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*569942*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMADD132SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*569956*/              /*Scope*/ 72, /*->570029*/
/*569957*/                OPC_RecordChild0, // #2 = $src2
/*569958*/                OPC_MoveChild1,
/*569959*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*569962*/                OPC_RecordMemRef,
/*569963*/                OPC_RecordNode, // #3 = 'ld' chained node
/*569964*/                OPC_CheckFoldableChainNode,
/*569965*/                OPC_RecordChild1, // #4 = $src3
/*569966*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*569968*/                OPC_CheckPredicate, 9, // Predicate_load
/*569970*/                OPC_MoveParent,
/*569971*/                OPC_MoveChild2,
/*569972*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569975*/                OPC_CheckChild0Same, 0,
/*569977*/                OPC_CheckChild1Integer, 0, 
/*569979*/                OPC_MoveParent,
/*569980*/                OPC_MoveParent,
/*569981*/                OPC_MoveChild2,
/*569982*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*569985*/                OPC_CheckChild0Same, 0,
/*569987*/                OPC_CheckChild1Integer, 0, 
/*569989*/                OPC_MoveParent,
/*569990*/                OPC_CheckType, MVT::f32,
/*569992*/                OPC_MoveParent,
/*569993*/                OPC_MoveParent,
/*569994*/                OPC_CheckType, MVT::v4f32,
/*569996*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*569998*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570001*/                OPC_EmitMergeInputChains, 1, 3, 
/*570004*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570007*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*570015*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMADD231SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570029*/              /*Scope*/ 76|128,1/*204*/, /*->570235*/
/*570031*/                OPC_MoveChild0,
/*570032*/                OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->570104
/*570036*/                  OPC_CheckChild0Same, 0,
/*570038*/                  OPC_CheckChild1Integer, 0, 
/*570040*/                  OPC_MoveParent,
/*570041*/                  OPC_RecordChild1, // #2 = $src2
/*570042*/                  OPC_MoveChild2,
/*570043*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*570046*/                  OPC_RecordMemRef,
/*570047*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*570048*/                  OPC_CheckFoldableChainNode,
/*570049*/                  OPC_RecordChild1, // #4 = $src3
/*570050*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570052*/                  OPC_CheckPredicate, 9, // Predicate_load
/*570054*/                  OPC_MoveParent,
/*570055*/                  OPC_MoveParent,
/*570056*/                  OPC_MoveChild2,
/*570057*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570060*/                  OPC_CheckChild0Same, 0,
/*570062*/                  OPC_CheckChild1Integer, 0, 
/*570064*/                  OPC_MoveParent,
/*570065*/                  OPC_CheckType, MVT::f32,
/*570067*/                  OPC_MoveParent,
/*570068*/                  OPC_MoveParent,
/*570069*/                  OPC_CheckType, MVT::v4f32,
/*570071*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570073*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570076*/                  OPC_EmitMergeInputChains, 1, 3, 
/*570079*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570082*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*570090*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                            // Dst: (VFNMADD213SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570104*/                /*SwitchOpcode*/ 127, TARGET_VAL(ISD::LOAD),// ->570234
/*570107*/                  OPC_RecordMemRef,
/*570108*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*570109*/                  OPC_CheckFoldableChainNode,
/*570110*/                  OPC_RecordChild1, // #3 = $src3
/*570111*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570113*/                  OPC_CheckPredicate, 9, // Predicate_load
/*570115*/                  OPC_MoveParent,
/*570116*/                  OPC_Scope, 57, /*->570175*/ // 2 children in Scope
/*570118*/                    OPC_MoveChild1,
/*570119*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570122*/                    OPC_CheckChild0Same, 0,
/*570124*/                    OPC_CheckChild1Integer, 0, 
/*570126*/                    OPC_MoveParent,
/*570127*/                    OPC_RecordChild2, // #4 = $src2
/*570128*/                    OPC_MoveParent,
/*570129*/                    OPC_MoveChild2,
/*570130*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570133*/                    OPC_CheckChild0Same, 0,
/*570135*/                    OPC_CheckChild1Integer, 0, 
/*570137*/                    OPC_MoveParent,
/*570138*/                    OPC_CheckType, MVT::f32,
/*570140*/                    OPC_MoveParent,
/*570141*/                    OPC_MoveParent,
/*570142*/                    OPC_CheckType, MVT::v4f32,
/*570144*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570146*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570149*/                    OPC_EmitMergeInputChains1_2,
/*570150*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570153*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*570161*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFNMADD132SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570175*/                  /*Scope*/ 57, /*->570233*/
/*570176*/                    OPC_RecordChild1, // #4 = $src2
/*570177*/                    OPC_MoveChild2,
/*570178*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570181*/                    OPC_CheckChild0Same, 0,
/*570183*/                    OPC_CheckChild1Integer, 0, 
/*570185*/                    OPC_MoveParent,
/*570186*/                    OPC_MoveParent,
/*570187*/                    OPC_MoveChild2,
/*570188*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570191*/                    OPC_CheckChild0Same, 0,
/*570193*/                    OPC_CheckChild1Integer, 0, 
/*570195*/                    OPC_MoveParent,
/*570196*/                    OPC_CheckType, MVT::f32,
/*570198*/                    OPC_MoveParent,
/*570199*/                    OPC_MoveParent,
/*570200*/                    OPC_CheckType, MVT::v4f32,
/*570202*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570204*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570207*/                    OPC_EmitMergeInputChains1_2,
/*570208*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570211*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*570219*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFNMADD231SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570233*/                  0, /*End of Scope*/
/*570234*/                0, // EndSwitchOpcode
/*570235*/              /*Scope*/ 70, /*->570306*/
/*570236*/                OPC_RecordChild0, // #2 = $src2
/*570237*/                OPC_MoveChild1,
/*570238*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570241*/                OPC_CheckChild0Same, 0,
/*570243*/                OPC_CheckChild1Integer, 0, 
/*570245*/                OPC_MoveParent,
/*570246*/                OPC_MoveChild2,
/*570247*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*570250*/                OPC_RecordMemRef,
/*570251*/                OPC_RecordNode, // #3 = 'ld' chained node
/*570252*/                OPC_CheckFoldableChainNode,
/*570253*/                OPC_RecordChild1, // #4 = $src3
/*570254*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570256*/                OPC_CheckPredicate, 9, // Predicate_load
/*570258*/                OPC_MoveParent,
/*570259*/                OPC_MoveParent,
/*570260*/                OPC_MoveChild2,
/*570261*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*570264*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*570266*/                OPC_MoveParent,
/*570267*/                OPC_CheckType, MVT::f32,
/*570269*/                OPC_MoveParent,
/*570270*/                OPC_MoveParent,
/*570271*/                OPC_CheckType, MVT::v4f32,
/*570273*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570275*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570278*/                OPC_EmitMergeInputChains, 1, 3, 
/*570281*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570284*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*570292*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFNMADD213SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570306*/              /*Scope*/ 70, /*->570377*/
/*570307*/                OPC_MoveChild0,
/*570308*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570311*/                OPC_CheckChild0Same, 0,
/*570313*/                OPC_CheckChild1Integer, 0, 
/*570315*/                OPC_MoveParent,
/*570316*/                OPC_RecordChild1, // #2 = $src2
/*570317*/                OPC_MoveChild2,
/*570318*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*570321*/                OPC_RecordMemRef,
/*570322*/                OPC_RecordNode, // #3 = 'ld' chained node
/*570323*/                OPC_CheckFoldableChainNode,
/*570324*/                OPC_RecordChild1, // #4 = $src3
/*570325*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570327*/                OPC_CheckPredicate, 9, // Predicate_load
/*570329*/                OPC_MoveParent,
/*570330*/                OPC_MoveParent,
/*570331*/                OPC_MoveChild2,
/*570332*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*570335*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*570337*/                OPC_MoveParent,
/*570338*/                OPC_CheckType, MVT::f32,
/*570340*/                OPC_MoveParent,
/*570341*/                OPC_MoveParent,
/*570342*/                OPC_CheckType, MVT::v4f32,
/*570344*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570346*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570349*/                OPC_EmitMergeInputChains, 1, 3, 
/*570352*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570355*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*570363*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFNMADD132SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570377*/              /*Scope*/ 70, /*->570448*/
/*570378*/                OPC_RecordChild0, // #2 = $src2
/*570379*/                OPC_MoveChild1,
/*570380*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*570383*/                OPC_RecordMemRef,
/*570384*/                OPC_RecordNode, // #3 = 'ld' chained node
/*570385*/                OPC_CheckFoldableChainNode,
/*570386*/                OPC_RecordChild1, // #4 = $src3
/*570387*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570389*/                OPC_CheckPredicate, 9, // Predicate_load
/*570391*/                OPC_MoveParent,
/*570392*/                OPC_MoveChild2,
/*570393*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570396*/                OPC_CheckChild0Same, 0,
/*570398*/                OPC_CheckChild1Integer, 0, 
/*570400*/                OPC_MoveParent,
/*570401*/                OPC_MoveParent,
/*570402*/                OPC_MoveChild2,
/*570403*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*570406*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*570408*/                OPC_MoveParent,
/*570409*/                OPC_CheckType, MVT::f32,
/*570411*/                OPC_MoveParent,
/*570412*/                OPC_MoveParent,
/*570413*/                OPC_CheckType, MVT::v4f32,
/*570415*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570417*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570420*/                OPC_EmitMergeInputChains, 1, 3, 
/*570423*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570426*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*570434*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFNMADD231SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570448*/              /*Scope*/ 68, /*->570517*/
/*570449*/                OPC_MoveChild0,
/*570450*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*570453*/                OPC_RecordMemRef,
/*570454*/                OPC_RecordNode, // #2 = 'ld' chained node
/*570455*/                OPC_CheckFoldableChainNode,
/*570456*/                OPC_RecordChild1, // #3 = $src3
/*570457*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570459*/                OPC_CheckPredicate, 9, // Predicate_load
/*570461*/                OPC_MoveParent,
/*570462*/                OPC_RecordChild1, // #4 = $src2
/*570463*/                OPC_MoveChild2,
/*570464*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570467*/                OPC_CheckChild0Same, 0,
/*570469*/                OPC_CheckChild1Integer, 0, 
/*570471*/                OPC_MoveParent,
/*570472*/                OPC_MoveParent,
/*570473*/                OPC_MoveChild2,
/*570474*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*570477*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*570479*/                OPC_MoveParent,
/*570480*/                OPC_CheckType, MVT::f32,
/*570482*/                OPC_MoveParent,
/*570483*/                OPC_MoveParent,
/*570484*/                OPC_CheckType, MVT::v4f32,
/*570486*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570488*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570491*/                OPC_EmitMergeInputChains1_2,
/*570492*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570495*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*570503*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFNMADD231SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570517*/              0, /*End of Scope*/
/*570518*/            /*SwitchOpcode*/ 67|128,5/*707*/, TARGET_VAL(X86ISD::FNMSUB),// ->571229
/*570522*/              OPC_Scope, 72, /*->570596*/ // 8 children in Scope
/*570524*/                OPC_RecordChild0, // #2 = $src2
/*570525*/                OPC_MoveChild1,
/*570526*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570529*/                OPC_CheckChild0Same, 0,
/*570531*/                OPC_CheckChild1Integer, 0, 
/*570533*/                OPC_MoveParent,
/*570534*/                OPC_MoveChild2,
/*570535*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*570538*/                OPC_RecordMemRef,
/*570539*/                OPC_RecordNode, // #3 = 'ld' chained node
/*570540*/                OPC_CheckFoldableChainNode,
/*570541*/                OPC_RecordChild1, // #4 = $src3
/*570542*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570544*/                OPC_CheckPredicate, 9, // Predicate_load
/*570546*/                OPC_MoveParent,
/*570547*/                OPC_MoveParent,
/*570548*/                OPC_MoveChild2,
/*570549*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570552*/                OPC_CheckChild0Same, 0,
/*570554*/                OPC_CheckChild1Integer, 0, 
/*570556*/                OPC_MoveParent,
/*570557*/                OPC_CheckType, MVT::f32,
/*570559*/                OPC_MoveParent,
/*570560*/                OPC_MoveParent,
/*570561*/                OPC_CheckType, MVT::v4f32,
/*570563*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570565*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570568*/                OPC_EmitMergeInputChains, 1, 3, 
/*570571*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570574*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*570582*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMSUB213SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570596*/              /*Scope*/ 70, /*->570667*/
/*570597*/                OPC_MoveChild0,
/*570598*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570601*/                OPC_CheckChild0Same, 0,
/*570603*/                OPC_CheckChild1Integer, 0, 
/*570605*/                OPC_MoveParent,
/*570606*/                OPC_MoveChild1,
/*570607*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*570610*/                OPC_RecordMemRef,
/*570611*/                OPC_RecordNode, // #2 = 'ld' chained node
/*570612*/                OPC_CheckFoldableChainNode,
/*570613*/                OPC_RecordChild1, // #3 = $src3
/*570614*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570616*/                OPC_CheckPredicate, 9, // Predicate_load
/*570618*/                OPC_MoveParent,
/*570619*/                OPC_RecordChild2, // #4 = $src2
/*570620*/                OPC_MoveParent,
/*570621*/                OPC_MoveChild2,
/*570622*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570625*/                OPC_CheckChild0Same, 0,
/*570627*/                OPC_CheckChild1Integer, 0, 
/*570629*/                OPC_MoveParent,
/*570630*/                OPC_CheckType, MVT::f32,
/*570632*/                OPC_MoveParent,
/*570633*/                OPC_MoveParent,
/*570634*/                OPC_CheckType, MVT::v4f32,
/*570636*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570638*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570641*/                OPC_EmitMergeInputChains1_2,
/*570642*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570645*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*570653*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMSUB132SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570667*/              /*Scope*/ 72, /*->570740*/
/*570668*/                OPC_RecordChild0, // #2 = $src2
/*570669*/                OPC_MoveChild1,
/*570670*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*570673*/                OPC_RecordMemRef,
/*570674*/                OPC_RecordNode, // #3 = 'ld' chained node
/*570675*/                OPC_CheckFoldableChainNode,
/*570676*/                OPC_RecordChild1, // #4 = $src3
/*570677*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570679*/                OPC_CheckPredicate, 9, // Predicate_load
/*570681*/                OPC_MoveParent,
/*570682*/                OPC_MoveChild2,
/*570683*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570686*/                OPC_CheckChild0Same, 0,
/*570688*/                OPC_CheckChild1Integer, 0, 
/*570690*/                OPC_MoveParent,
/*570691*/                OPC_MoveParent,
/*570692*/                OPC_MoveChild2,
/*570693*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570696*/                OPC_CheckChild0Same, 0,
/*570698*/                OPC_CheckChild1Integer, 0, 
/*570700*/                OPC_MoveParent,
/*570701*/                OPC_CheckType, MVT::f32,
/*570703*/                OPC_MoveParent,
/*570704*/                OPC_MoveParent,
/*570705*/                OPC_CheckType, MVT::v4f32,
/*570707*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570709*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570712*/                OPC_EmitMergeInputChains, 1, 3, 
/*570715*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570718*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*570726*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMSUB231SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570740*/              /*Scope*/ 76|128,1/*204*/, /*->570946*/
/*570742*/                OPC_MoveChild0,
/*570743*/                OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->570815
/*570747*/                  OPC_CheckChild0Same, 0,
/*570749*/                  OPC_CheckChild1Integer, 0, 
/*570751*/                  OPC_MoveParent,
/*570752*/                  OPC_RecordChild1, // #2 = $src2
/*570753*/                  OPC_MoveChild2,
/*570754*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*570757*/                  OPC_RecordMemRef,
/*570758*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*570759*/                  OPC_CheckFoldableChainNode,
/*570760*/                  OPC_RecordChild1, // #4 = $src3
/*570761*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570763*/                  OPC_CheckPredicate, 9, // Predicate_load
/*570765*/                  OPC_MoveParent,
/*570766*/                  OPC_MoveParent,
/*570767*/                  OPC_MoveChild2,
/*570768*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570771*/                  OPC_CheckChild0Same, 0,
/*570773*/                  OPC_CheckChild1Integer, 0, 
/*570775*/                  OPC_MoveParent,
/*570776*/                  OPC_CheckType, MVT::f32,
/*570778*/                  OPC_MoveParent,
/*570779*/                  OPC_MoveParent,
/*570780*/                  OPC_CheckType, MVT::v4f32,
/*570782*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570784*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570787*/                  OPC_EmitMergeInputChains, 1, 3, 
/*570790*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570793*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*570801*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                            // Dst: (VFNMSUB213SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570815*/                /*SwitchOpcode*/ 127, TARGET_VAL(ISD::LOAD),// ->570945
/*570818*/                  OPC_RecordMemRef,
/*570819*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*570820*/                  OPC_CheckFoldableChainNode,
/*570821*/                  OPC_RecordChild1, // #3 = $src3
/*570822*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570824*/                  OPC_CheckPredicate, 9, // Predicate_load
/*570826*/                  OPC_MoveParent,
/*570827*/                  OPC_Scope, 57, /*->570886*/ // 2 children in Scope
/*570829*/                    OPC_MoveChild1,
/*570830*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570833*/                    OPC_CheckChild0Same, 0,
/*570835*/                    OPC_CheckChild1Integer, 0, 
/*570837*/                    OPC_MoveParent,
/*570838*/                    OPC_RecordChild2, // #4 = $src2
/*570839*/                    OPC_MoveParent,
/*570840*/                    OPC_MoveChild2,
/*570841*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570844*/                    OPC_CheckChild0Same, 0,
/*570846*/                    OPC_CheckChild1Integer, 0, 
/*570848*/                    OPC_MoveParent,
/*570849*/                    OPC_CheckType, MVT::f32,
/*570851*/                    OPC_MoveParent,
/*570852*/                    OPC_MoveParent,
/*570853*/                    OPC_CheckType, MVT::v4f32,
/*570855*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570857*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570860*/                    OPC_EmitMergeInputChains1_2,
/*570861*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570864*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*570872*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFNMSUB132SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570886*/                  /*Scope*/ 57, /*->570944*/
/*570887*/                    OPC_RecordChild1, // #4 = $src2
/*570888*/                    OPC_MoveChild2,
/*570889*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570892*/                    OPC_CheckChild0Same, 0,
/*570894*/                    OPC_CheckChild1Integer, 0, 
/*570896*/                    OPC_MoveParent,
/*570897*/                    OPC_MoveParent,
/*570898*/                    OPC_MoveChild2,
/*570899*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570902*/                    OPC_CheckChild0Same, 0,
/*570904*/                    OPC_CheckChild1Integer, 0, 
/*570906*/                    OPC_MoveParent,
/*570907*/                    OPC_CheckType, MVT::f32,
/*570909*/                    OPC_MoveParent,
/*570910*/                    OPC_MoveParent,
/*570911*/                    OPC_CheckType, MVT::v4f32,
/*570913*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570915*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570918*/                    OPC_EmitMergeInputChains1_2,
/*570919*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570922*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*570930*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFNMSUB231SSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*570944*/                  0, /*End of Scope*/
/*570945*/                0, // EndSwitchOpcode
/*570946*/              /*Scope*/ 70, /*->571017*/
/*570947*/                OPC_RecordChild0, // #2 = $src2
/*570948*/                OPC_MoveChild1,
/*570949*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*570952*/                OPC_CheckChild0Same, 0,
/*570954*/                OPC_CheckChild1Integer, 0, 
/*570956*/                OPC_MoveParent,
/*570957*/                OPC_MoveChild2,
/*570958*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*570961*/                OPC_RecordMemRef,
/*570962*/                OPC_RecordNode, // #3 = 'ld' chained node
/*570963*/                OPC_CheckFoldableChainNode,
/*570964*/                OPC_RecordChild1, // #4 = $src3
/*570965*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*570967*/                OPC_CheckPredicate, 9, // Predicate_load
/*570969*/                OPC_MoveParent,
/*570970*/                OPC_MoveParent,
/*570971*/                OPC_MoveChild2,
/*570972*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*570975*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*570977*/                OPC_MoveParent,
/*570978*/                OPC_CheckType, MVT::f32,
/*570980*/                OPC_MoveParent,
/*570981*/                OPC_MoveParent,
/*570982*/                OPC_CheckType, MVT::v4f32,
/*570984*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*570986*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*570989*/                OPC_EmitMergeInputChains, 1, 3, 
/*570992*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*570995*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*571003*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFNMSUB213SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*571017*/              /*Scope*/ 70, /*->571088*/
/*571018*/                OPC_MoveChild0,
/*571019*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571022*/                OPC_CheckChild0Same, 0,
/*571024*/                OPC_CheckChild1Integer, 0, 
/*571026*/                OPC_MoveParent,
/*571027*/                OPC_RecordChild1, // #2 = $src2
/*571028*/                OPC_MoveChild2,
/*571029*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*571032*/                OPC_RecordMemRef,
/*571033*/                OPC_RecordNode, // #3 = 'ld' chained node
/*571034*/                OPC_CheckFoldableChainNode,
/*571035*/                OPC_RecordChild1, // #4 = $src3
/*571036*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*571038*/                OPC_CheckPredicate, 9, // Predicate_load
/*571040*/                OPC_MoveParent,
/*571041*/                OPC_MoveParent,
/*571042*/                OPC_MoveChild2,
/*571043*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*571046*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*571048*/                OPC_MoveParent,
/*571049*/                OPC_CheckType, MVT::f32,
/*571051*/                OPC_MoveParent,
/*571052*/                OPC_MoveParent,
/*571053*/                OPC_CheckType, MVT::v4f32,
/*571055*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571057*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*571060*/                OPC_EmitMergeInputChains, 1, 3, 
/*571063*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571066*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*571074*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFNMSUB132SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*571088*/              /*Scope*/ 70, /*->571159*/
/*571089*/                OPC_RecordChild0, // #2 = $src2
/*571090*/                OPC_MoveChild1,
/*571091*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*571094*/                OPC_RecordMemRef,
/*571095*/                OPC_RecordNode, // #3 = 'ld' chained node
/*571096*/                OPC_CheckFoldableChainNode,
/*571097*/                OPC_RecordChild1, // #4 = $src3
/*571098*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*571100*/                OPC_CheckPredicate, 9, // Predicate_load
/*571102*/                OPC_MoveParent,
/*571103*/                OPC_MoveChild2,
/*571104*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571107*/                OPC_CheckChild0Same, 0,
/*571109*/                OPC_CheckChild1Integer, 0, 
/*571111*/                OPC_MoveParent,
/*571112*/                OPC_MoveParent,
/*571113*/                OPC_MoveChild2,
/*571114*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*571117*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*571119*/                OPC_MoveParent,
/*571120*/                OPC_CheckType, MVT::f32,
/*571122*/                OPC_MoveParent,
/*571123*/                OPC_MoveParent,
/*571124*/                OPC_CheckType, MVT::v4f32,
/*571126*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571128*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*571131*/                OPC_EmitMergeInputChains, 1, 3, 
/*571134*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571137*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*571145*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFNMSUB231SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*571159*/              /*Scope*/ 68, /*->571228*/
/*571160*/                OPC_MoveChild0,
/*571161*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*571164*/                OPC_RecordMemRef,
/*571165*/                OPC_RecordNode, // #2 = 'ld' chained node
/*571166*/                OPC_CheckFoldableChainNode,
/*571167*/                OPC_RecordChild1, // #3 = $src3
/*571168*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*571170*/                OPC_CheckPredicate, 9, // Predicate_load
/*571172*/                OPC_MoveParent,
/*571173*/                OPC_RecordChild1, // #4 = $src2
/*571174*/                OPC_MoveChild2,
/*571175*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571178*/                OPC_CheckChild0Same, 0,
/*571180*/                OPC_CheckChild1Integer, 0, 
/*571182*/                OPC_MoveParent,
/*571183*/                OPC_MoveParent,
/*571184*/                OPC_MoveChild2,
/*571185*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*571188*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*571190*/                OPC_MoveParent,
/*571191*/                OPC_CheckType, MVT::f32,
/*571193*/                OPC_MoveParent,
/*571194*/                OPC_MoveParent,
/*571195*/                OPC_CheckType, MVT::v4f32,
/*571197*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571199*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*571202*/                OPC_EmitMergeInputChains1_2,
/*571203*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571206*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*571214*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VFNMSUB231SSZm_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*571228*/              0, /*End of Scope*/
/*571229*/            0, // EndSwitchOpcode
/*571230*/          /*Scope*/ 69, /*->571300*/
/*571231*/            OPC_MoveChild0,
/*571232*/            OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*571235*/            OPC_MoveChild0,
/*571236*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/*571239*/            OPC_RecordChild0, // #1 = $mask
/*571240*/            OPC_CheckChild0Type, MVT::i32,
/*571242*/            OPC_CheckType, MVT::i8,
/*571244*/            OPC_MoveParent,
/*571245*/            OPC_MoveParent,
/*571246*/            OPC_MoveChild1,
/*571247*/            OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT),
/*571250*/            OPC_MoveChild0,
/*571251*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571254*/            OPC_RecordChild0, // #2 = $src2
/*571255*/            OPC_CheckChild0Type, MVT::v4f32,
/*571257*/            OPC_CheckChild1Integer, 0, 
/*571259*/            OPC_MoveParent,
/*571260*/            OPC_MoveParent,
/*571261*/            OPC_MoveChild2,
/*571262*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571265*/            OPC_RecordChild0, // #3 = $dst
/*571266*/            OPC_CheckChild0Type, MVT::v4f32,
/*571268*/            OPC_CheckChild1Integer, 0, 
/*571270*/            OPC_MoveParent,
/*571271*/            OPC_CheckType, MVT::f32,
/*571273*/            OPC_MoveParent,
/*571274*/            OPC_MoveParent,
/*571275*/            OPC_CheckType, MVT::v4f32,
/*571277*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571279*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*571282*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*571290*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 5, 2, 0, 
                      // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } (scalar_to_vector:{ *:[v1i1] } (trunc:{ *:[i8] } GR32:{ *:[i32] }:$mask)), (fsqrt:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src2, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 34
                      // Dst: (VSQRTSSZr_Intk:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } ?:{ *:[i32] }:$mask, VK1WM:{ *:[i32] }), v4f32:{ *:[v4f32] }:$src2, v4f32:{ *:[v4f32] }:$src1)
/*571300*/          /*Scope*/ 124|128,6/*892*/, /*->572194*/
/*571302*/            OPC_RecordChild0, // #1 = $mask
/*571303*/            OPC_MoveChild1,
/*571304*/            OPC_SwitchOpcode /*4 cases */, 90|128,1/*218*/, TARGET_VAL(X86ISD::FMADD_RND),// ->571527
/*571309*/              OPC_Scope, 15|128,1/*143*/, /*->571455*/ // 2 children in Scope
/*571312*/                OPC_RecordChild0, // #2 = $src2
/*571313*/                OPC_Scope, 69, /*->571384*/ // 2 children in Scope
/*571315*/                  OPC_MoveChild1,
/*571316*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571319*/                  OPC_CheckChild0Same, 0,
/*571321*/                  OPC_CheckChild1Integer, 0, 
/*571323*/                  OPC_MoveParent,
/*571324*/                  OPC_RecordChild2, // #3 = $src3
/*571325*/                  OPC_RecordChild3, // #4 = $rc
/*571326*/                  OPC_MoveChild3,
/*571327*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*571330*/                  OPC_MoveParent,
/*571331*/                  OPC_MoveParent,
/*571332*/                  OPC_MoveChild2,
/*571333*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571336*/                  OPC_CheckChild0Same, 0,
/*571338*/                  OPC_CheckChild1Integer, 0, 
/*571340*/                  OPC_MoveParent,
/*571341*/                  OPC_CheckType, MVT::f32,
/*571343*/                  OPC_MoveParent,
/*571344*/                  OPC_MoveParent,
/*571345*/                  OPC_CheckType, MVT::v4f32,
/*571347*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571349*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571352*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*571360*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571363*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*571371*/                  OPC_EmitConvertToTarget, 4,
/*571373*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFMADD213SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*571384*/                /*Scope*/ 69, /*->571454*/
/*571385*/                  OPC_RecordChild1, // #3 = $src3
/*571386*/                  OPC_MoveChild2,
/*571387*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571390*/                  OPC_CheckChild0Same, 0,
/*571392*/                  OPC_CheckChild1Integer, 0, 
/*571394*/                  OPC_MoveParent,
/*571395*/                  OPC_RecordChild3, // #4 = $rc
/*571396*/                  OPC_MoveChild3,
/*571397*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*571400*/                  OPC_MoveParent,
/*571401*/                  OPC_MoveParent,
/*571402*/                  OPC_MoveChild2,
/*571403*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571406*/                  OPC_CheckChild0Same, 0,
/*571408*/                  OPC_CheckChild1Integer, 0, 
/*571410*/                  OPC_MoveParent,
/*571411*/                  OPC_CheckType, MVT::f32,
/*571413*/                  OPC_MoveParent,
/*571414*/                  OPC_MoveParent,
/*571415*/                  OPC_CheckType, MVT::v4f32,
/*571417*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571419*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571422*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*571430*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571433*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*571441*/                  OPC_EmitConvertToTarget, 4,
/*571443*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFMADD231SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*571454*/                0, /*End of Scope*/
/*571455*/              /*Scope*/ 70, /*->571526*/
/*571456*/                OPC_MoveChild0,
/*571457*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571460*/                OPC_CheckChild0Same, 0,
/*571462*/                OPC_CheckChild1Integer, 0, 
/*571464*/                OPC_MoveParent,
/*571465*/                OPC_RecordChild1, // #2 = $src2
/*571466*/                OPC_RecordChild2, // #3 = $src3
/*571467*/                OPC_RecordChild3, // #4 = $rc
/*571468*/                OPC_MoveChild3,
/*571469*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*571472*/                OPC_MoveParent,
/*571473*/                OPC_MoveParent,
/*571474*/                OPC_MoveChild2,
/*571475*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571478*/                OPC_CheckChild0Same, 0,
/*571480*/                OPC_CheckChild1Integer, 0, 
/*571482*/                OPC_MoveParent,
/*571483*/                OPC_CheckType, MVT::f32,
/*571485*/                OPC_MoveParent,
/*571486*/                OPC_MoveParent,
/*571487*/                OPC_CheckType, MVT::v4f32,
/*571489*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571491*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571494*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*571502*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571505*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*571513*/                OPC_EmitConvertToTarget, 4,
/*571515*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Intk), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                          // Dst: (VFMADD213SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*571526*/              0, /*End of Scope*/
/*571527*/            /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->571749
/*571531*/              OPC_Scope, 15|128,1/*143*/, /*->571677*/ // 2 children in Scope
/*571534*/                OPC_RecordChild0, // #2 = $src2
/*571535*/                OPC_Scope, 69, /*->571606*/ // 2 children in Scope
/*571537*/                  OPC_MoveChild1,
/*571538*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571541*/                  OPC_CheckChild0Same, 0,
/*571543*/                  OPC_CheckChild1Integer, 0, 
/*571545*/                  OPC_MoveParent,
/*571546*/                  OPC_RecordChild2, // #3 = $src3
/*571547*/                  OPC_RecordChild3, // #4 = $rc
/*571548*/                  OPC_MoveChild3,
/*571549*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*571552*/                  OPC_MoveParent,
/*571553*/                  OPC_MoveParent,
/*571554*/                  OPC_MoveChild2,
/*571555*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571558*/                  OPC_CheckChild0Same, 0,
/*571560*/                  OPC_CheckChild1Integer, 0, 
/*571562*/                  OPC_MoveParent,
/*571563*/                  OPC_CheckType, MVT::f32,
/*571565*/                  OPC_MoveParent,
/*571566*/                  OPC_MoveParent,
/*571567*/                  OPC_CheckType, MVT::v4f32,
/*571569*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571571*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571574*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*571582*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571585*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*571593*/                  OPC_EmitConvertToTarget, 4,
/*571595*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFMSUB213SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*571606*/                /*Scope*/ 69, /*->571676*/
/*571607*/                  OPC_RecordChild1, // #3 = $src3
/*571608*/                  OPC_MoveChild2,
/*571609*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571612*/                  OPC_CheckChild0Same, 0,
/*571614*/                  OPC_CheckChild1Integer, 0, 
/*571616*/                  OPC_MoveParent,
/*571617*/                  OPC_RecordChild3, // #4 = $rc
/*571618*/                  OPC_MoveChild3,
/*571619*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*571622*/                  OPC_MoveParent,
/*571623*/                  OPC_MoveParent,
/*571624*/                  OPC_MoveChild2,
/*571625*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571628*/                  OPC_CheckChild0Same, 0,
/*571630*/                  OPC_CheckChild1Integer, 0, 
/*571632*/                  OPC_MoveParent,
/*571633*/                  OPC_CheckType, MVT::f32,
/*571635*/                  OPC_MoveParent,
/*571636*/                  OPC_MoveParent,
/*571637*/                  OPC_CheckType, MVT::v4f32,
/*571639*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571641*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571644*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*571652*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571655*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*571663*/                  OPC_EmitConvertToTarget, 4,
/*571665*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFMSUB231SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*571676*/                0, /*End of Scope*/
/*571677*/              /*Scope*/ 70, /*->571748*/
/*571678*/                OPC_MoveChild0,
/*571679*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571682*/                OPC_CheckChild0Same, 0,
/*571684*/                OPC_CheckChild1Integer, 0, 
/*571686*/                OPC_MoveParent,
/*571687*/                OPC_RecordChild1, // #2 = $src2
/*571688*/                OPC_RecordChild2, // #3 = $src3
/*571689*/                OPC_RecordChild3, // #4 = $rc
/*571690*/                OPC_MoveChild3,
/*571691*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*571694*/                OPC_MoveParent,
/*571695*/                OPC_MoveParent,
/*571696*/                OPC_MoveChild2,
/*571697*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571700*/                OPC_CheckChild0Same, 0,
/*571702*/                OPC_CheckChild1Integer, 0, 
/*571704*/                OPC_MoveParent,
/*571705*/                OPC_CheckType, MVT::f32,
/*571707*/                OPC_MoveParent,
/*571708*/                OPC_MoveParent,
/*571709*/                OPC_CheckType, MVT::v4f32,
/*571711*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571713*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571716*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*571724*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571727*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*571735*/                OPC_EmitConvertToTarget, 4,
/*571737*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Intk), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                          // Dst: (VFMSUB213SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*571748*/              0, /*End of Scope*/
/*571749*/            /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->571971
/*571753*/              OPC_Scope, 15|128,1/*143*/, /*->571899*/ // 2 children in Scope
/*571756*/                OPC_RecordChild0, // #2 = $src2
/*571757*/                OPC_Scope, 69, /*->571828*/ // 2 children in Scope
/*571759*/                  OPC_MoveChild1,
/*571760*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571763*/                  OPC_CheckChild0Same, 0,
/*571765*/                  OPC_CheckChild1Integer, 0, 
/*571767*/                  OPC_MoveParent,
/*571768*/                  OPC_RecordChild2, // #3 = $src3
/*571769*/                  OPC_RecordChild3, // #4 = $rc
/*571770*/                  OPC_MoveChild3,
/*571771*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*571774*/                  OPC_MoveParent,
/*571775*/                  OPC_MoveParent,
/*571776*/                  OPC_MoveChild2,
/*571777*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571780*/                  OPC_CheckChild0Same, 0,
/*571782*/                  OPC_CheckChild1Integer, 0, 
/*571784*/                  OPC_MoveParent,
/*571785*/                  OPC_CheckType, MVT::f32,
/*571787*/                  OPC_MoveParent,
/*571788*/                  OPC_MoveParent,
/*571789*/                  OPC_CheckType, MVT::v4f32,
/*571791*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571793*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571796*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*571804*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571807*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*571815*/                  OPC_EmitConvertToTarget, 4,
/*571817*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFNMADD213SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*571828*/                /*Scope*/ 69, /*->571898*/
/*571829*/                  OPC_RecordChild1, // #3 = $src3
/*571830*/                  OPC_MoveChild2,
/*571831*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571834*/                  OPC_CheckChild0Same, 0,
/*571836*/                  OPC_CheckChild1Integer, 0, 
/*571838*/                  OPC_MoveParent,
/*571839*/                  OPC_RecordChild3, // #4 = $rc
/*571840*/                  OPC_MoveChild3,
/*571841*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*571844*/                  OPC_MoveParent,
/*571845*/                  OPC_MoveParent,
/*571846*/                  OPC_MoveChild2,
/*571847*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571850*/                  OPC_CheckChild0Same, 0,
/*571852*/                  OPC_CheckChild1Integer, 0, 
/*571854*/                  OPC_MoveParent,
/*571855*/                  OPC_CheckType, MVT::f32,
/*571857*/                  OPC_MoveParent,
/*571858*/                  OPC_MoveParent,
/*571859*/                  OPC_CheckType, MVT::v4f32,
/*571861*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571863*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571866*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*571874*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571877*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*571885*/                  OPC_EmitConvertToTarget, 4,
/*571887*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFNMADD231SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*571898*/                0, /*End of Scope*/
/*571899*/              /*Scope*/ 70, /*->571970*/
/*571900*/                OPC_MoveChild0,
/*571901*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571904*/                OPC_CheckChild0Same, 0,
/*571906*/                OPC_CheckChild1Integer, 0, 
/*571908*/                OPC_MoveParent,
/*571909*/                OPC_RecordChild1, // #2 = $src2
/*571910*/                OPC_RecordChild2, // #3 = $src3
/*571911*/                OPC_RecordChild3, // #4 = $rc
/*571912*/                OPC_MoveChild3,
/*571913*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*571916*/                OPC_MoveParent,
/*571917*/                OPC_MoveParent,
/*571918*/                OPC_MoveChild2,
/*571919*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571922*/                OPC_CheckChild0Same, 0,
/*571924*/                OPC_CheckChild1Integer, 0, 
/*571926*/                OPC_MoveParent,
/*571927*/                OPC_CheckType, MVT::f32,
/*571929*/                OPC_MoveParent,
/*571930*/                OPC_MoveParent,
/*571931*/                OPC_CheckType, MVT::v4f32,
/*571933*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*571935*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571938*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*571946*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*571949*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*571957*/                OPC_EmitConvertToTarget, 4,
/*571959*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Intk), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                          // Dst: (VFNMADD213SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*571970*/              0, /*End of Scope*/
/*571971*/            /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->572193
/*571975*/              OPC_Scope, 15|128,1/*143*/, /*->572121*/ // 2 children in Scope
/*571978*/                OPC_RecordChild0, // #2 = $src2
/*571979*/                OPC_Scope, 69, /*->572050*/ // 2 children in Scope
/*571981*/                  OPC_MoveChild1,
/*571982*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*571985*/                  OPC_CheckChild0Same, 0,
/*571987*/                  OPC_CheckChild1Integer, 0, 
/*571989*/                  OPC_MoveParent,
/*571990*/                  OPC_RecordChild2, // #3 = $src3
/*571991*/                  OPC_RecordChild3, // #4 = $rc
/*571992*/                  OPC_MoveChild3,
/*571993*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*571996*/                  OPC_MoveParent,
/*571997*/                  OPC_MoveParent,
/*571998*/                  OPC_MoveChild2,
/*571999*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572002*/                  OPC_CheckChild0Same, 0,
/*572004*/                  OPC_CheckChild1Integer, 0, 
/*572006*/                  OPC_MoveParent,
/*572007*/                  OPC_CheckType, MVT::f32,
/*572009*/                  OPC_MoveParent,
/*572010*/                  OPC_MoveParent,
/*572011*/                  OPC_CheckType, MVT::v4f32,
/*572013*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572015*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572018*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*572026*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572029*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*572037*/                  OPC_EmitConvertToTarget, 4,
/*572039*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFNMSUB213SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*572050*/                /*Scope*/ 69, /*->572120*/
/*572051*/                  OPC_RecordChild1, // #3 = $src3
/*572052*/                  OPC_MoveChild2,
/*572053*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572056*/                  OPC_CheckChild0Same, 0,
/*572058*/                  OPC_CheckChild1Integer, 0, 
/*572060*/                  OPC_MoveParent,
/*572061*/                  OPC_RecordChild3, // #4 = $rc
/*572062*/                  OPC_MoveChild3,
/*572063*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*572066*/                  OPC_MoveParent,
/*572067*/                  OPC_MoveParent,
/*572068*/                  OPC_MoveChild2,
/*572069*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572072*/                  OPC_CheckChild0Same, 0,
/*572074*/                  OPC_CheckChild1Integer, 0, 
/*572076*/                  OPC_MoveParent,
/*572077*/                  OPC_CheckType, MVT::f32,
/*572079*/                  OPC_MoveParent,
/*572080*/                  OPC_MoveParent,
/*572081*/                  OPC_CheckType, MVT::v4f32,
/*572083*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572085*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572088*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*572096*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572099*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*572107*/                  OPC_EmitConvertToTarget, 4,
/*572109*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFNMSUB231SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*572120*/                0, /*End of Scope*/
/*572121*/              /*Scope*/ 70, /*->572192*/
/*572122*/                OPC_MoveChild0,
/*572123*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572126*/                OPC_CheckChild0Same, 0,
/*572128*/                OPC_CheckChild1Integer, 0, 
/*572130*/                OPC_MoveParent,
/*572131*/                OPC_RecordChild1, // #2 = $src2
/*572132*/                OPC_RecordChild2, // #3 = $src3
/*572133*/                OPC_RecordChild3, // #4 = $rc
/*572134*/                OPC_MoveChild3,
/*572135*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*572138*/                OPC_MoveParent,
/*572139*/                OPC_MoveParent,
/*572140*/                OPC_MoveChild2,
/*572141*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572144*/                OPC_CheckChild0Same, 0,
/*572146*/                OPC_CheckChild1Integer, 0, 
/*572148*/                OPC_MoveParent,
/*572149*/                OPC_CheckType, MVT::f32,
/*572151*/                OPC_MoveParent,
/*572152*/                OPC_MoveParent,
/*572153*/                OPC_CheckType, MVT::v4f32,
/*572155*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572157*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572160*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*572168*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572171*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*572179*/                OPC_EmitConvertToTarget, 4,
/*572181*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Intk), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                          // Dst: (VFNMSUB213SSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*572192*/              0, /*End of Scope*/
/*572193*/            0, // EndSwitchOpcode
/*572194*/          /*Scope*/ 65, /*->572260*/
/*572195*/            OPC_MoveChild0,
/*572196*/            OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*572199*/            OPC_MoveChild0,
/*572200*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/*572203*/            OPC_RecordChild0, // #1 = $mask
/*572204*/            OPC_CheckChild0Type, MVT::i32,
/*572206*/            OPC_CheckType, MVT::i8,
/*572208*/            OPC_MoveParent,
/*572209*/            OPC_MoveParent,
/*572210*/            OPC_MoveChild1,
/*572211*/            OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT),
/*572214*/            OPC_MoveChild0,
/*572215*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572218*/            OPC_RecordChild0, // #2 = $src2
/*572219*/            OPC_CheckChild0Type, MVT::v4f32,
/*572221*/            OPC_CheckChild1Integer, 0, 
/*572223*/            OPC_MoveParent,
/*572224*/            OPC_MoveParent,
/*572225*/            OPC_MoveChild2,
/*572226*/            OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*572229*/            OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*572231*/            OPC_MoveParent,
/*572232*/            OPC_CheckType, MVT::f32,
/*572234*/            OPC_MoveParent,
/*572235*/            OPC_MoveParent,
/*572236*/            OPC_CheckType, MVT::v4f32,
/*572238*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572240*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*572243*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 1, 3,  // Results = #4
/*572251*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZr_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 4, 2, 0, 
                      // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } (scalar_to_vector:{ *:[v1i1] } (trunc:{ *:[i8] } GR32:{ *:[i32] }:$mask)), (fsqrt:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src2, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 30
                      // Dst: (VSQRTSSZr_Intkz:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v1i1] } ?:{ *:[i32] }:$mask, VK1WM:{ *:[i32] }), v4f32:{ *:[v4f32] }:$src2, v4f32:{ *:[v4f32] }:$src1)
/*572260*/          /*Scope*/ 72|128,13/*1736*/, /*->573998*/
/*572262*/            OPC_RecordChild0, // #1 = $mask
/*572263*/            OPC_MoveChild1,
/*572264*/            OPC_SwitchOpcode /*10 cases */, 43, TARGET_VAL(ISD::FFLOOR),// ->572311
/*572268*/              OPC_MoveChild0,
/*572269*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572272*/              OPC_RecordChild0, // #2 = $src2
/*572273*/              OPC_CheckChild0Type, MVT::v4f32,
/*572275*/              OPC_CheckChild1Integer, 0, 
/*572277*/              OPC_MoveParent,
/*572278*/              OPC_MoveParent,
/*572279*/              OPC_MoveChild2,
/*572280*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572283*/              OPC_RecordChild0, // #3 = $dst
/*572284*/              OPC_CheckChild0Type, MVT::v4f32,
/*572286*/              OPC_CheckChild1Integer, 0, 
/*572288*/              OPC_MoveParent,
/*572289*/              OPC_CheckType, MVT::f32,
/*572291*/              OPC_MoveParent,
/*572292*/              OPC_MoveParent,
/*572293*/              OPC_CheckType, MVT::v4f32,
/*572295*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572297*/              OPC_EmitInteger, MVT::i32, 1, 
/*572300*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Intk), 0,
                            MVT::v4f32, 5/*#Ops*/, 3, 1, 0, 2, 4, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (ffloor:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src2, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 28
                        // Dst: (VRNDSCALESSZr_Intk:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, v4f32:{ *:[v4f32] }:$src2, 1:{ *:[i32] })
/*572311*/            /*SwitchOpcode*/ 43, TARGET_VAL(ISD::FCEIL),// ->572357
/*572314*/              OPC_MoveChild0,
/*572315*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572318*/              OPC_RecordChild0, // #2 = $src2
/*572319*/              OPC_CheckChild0Type, MVT::v4f32,
/*572321*/              OPC_CheckChild1Integer, 0, 
/*572323*/              OPC_MoveParent,
/*572324*/              OPC_MoveParent,
/*572325*/              OPC_MoveChild2,
/*572326*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572329*/              OPC_RecordChild0, // #3 = $dst
/*572330*/              OPC_CheckChild0Type, MVT::v4f32,
/*572332*/              OPC_CheckChild1Integer, 0, 
/*572334*/              OPC_MoveParent,
/*572335*/              OPC_CheckType, MVT::f32,
/*572337*/              OPC_MoveParent,
/*572338*/              OPC_MoveParent,
/*572339*/              OPC_CheckType, MVT::v4f32,
/*572341*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572343*/              OPC_EmitInteger, MVT::i32, 2, 
/*572346*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Intk), 0,
                            MVT::v4f32, 5/*#Ops*/, 3, 1, 0, 2, 4, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fceil:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src2, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 28
                        // Dst: (VRNDSCALESSZr_Intk:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, v4f32:{ *:[v4f32] }:$src2, 2:{ *:[i32] })
/*572357*/            /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(ISD::FMA),// ->572551
/*572361*/              OPC_Scope, 125, /*->572488*/ // 2 children in Scope
/*572363*/                OPC_RecordChild0, // #2 = $src2
/*572364*/                OPC_Scope, 60, /*->572426*/ // 2 children in Scope
/*572366*/                  OPC_MoveChild1,
/*572367*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572370*/                  OPC_CheckChild0Same, 0,
/*572372*/                  OPC_CheckChild1Integer, 0, 
/*572374*/                  OPC_MoveParent,
/*572375*/                  OPC_RecordChild2, // #3 = $src3
/*572376*/                  OPC_MoveParent,
/*572377*/                  OPC_MoveChild2,
/*572378*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572381*/                  OPC_CheckChild0Same, 0,
/*572383*/                  OPC_CheckChild1Integer, 0, 
/*572385*/                  OPC_MoveParent,
/*572386*/                  OPC_CheckType, MVT::f32,
/*572388*/                  OPC_MoveParent,
/*572389*/                  OPC_MoveParent,
/*572390*/                  OPC_CheckType, MVT::v4f32,
/*572392*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572394*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572397*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*572405*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572408*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*572416*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFMADD213SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*572426*/                /*Scope*/ 60, /*->572487*/
/*572427*/                  OPC_RecordChild1, // #3 = $src3
/*572428*/                  OPC_MoveChild2,
/*572429*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572432*/                  OPC_CheckChild0Same, 0,
/*572434*/                  OPC_CheckChild1Integer, 0, 
/*572436*/                  OPC_MoveParent,
/*572437*/                  OPC_MoveParent,
/*572438*/                  OPC_MoveChild2,
/*572439*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572442*/                  OPC_CheckChild0Same, 0,
/*572444*/                  OPC_CheckChild1Integer, 0, 
/*572446*/                  OPC_MoveParent,
/*572447*/                  OPC_CheckType, MVT::f32,
/*572449*/                  OPC_MoveParent,
/*572450*/                  OPC_MoveParent,
/*572451*/                  OPC_CheckType, MVT::v4f32,
/*572453*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572455*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572458*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*572466*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572469*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*572477*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFMADD231SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*572487*/                0, /*End of Scope*/
/*572488*/              /*Scope*/ 61, /*->572550*/
/*572489*/                OPC_MoveChild0,
/*572490*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572493*/                OPC_CheckChild0Same, 0,
/*572495*/                OPC_CheckChild1Integer, 0, 
/*572497*/                OPC_MoveParent,
/*572498*/                OPC_RecordChild1, // #2 = $src2
/*572499*/                OPC_RecordChild2, // #3 = $src3
/*572500*/                OPC_MoveParent,
/*572501*/                OPC_MoveChild2,
/*572502*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572505*/                OPC_CheckChild0Same, 0,
/*572507*/                OPC_CheckChild1Integer, 0, 
/*572509*/                OPC_MoveParent,
/*572510*/                OPC_CheckType, MVT::f32,
/*572512*/                OPC_MoveParent,
/*572513*/                OPC_MoveParent,
/*572514*/                OPC_CheckType, MVT::v4f32,
/*572516*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572518*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572521*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*572529*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572532*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*572540*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Intk), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                          // Dst: (VFMADD213SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*572550*/              0, /*End of Scope*/
/*572551*/            /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(X86ISD::FMSUB),// ->572745
/*572555*/              OPC_Scope, 125, /*->572682*/ // 2 children in Scope
/*572557*/                OPC_RecordChild0, // #2 = $src2
/*572558*/                OPC_Scope, 60, /*->572620*/ // 2 children in Scope
/*572560*/                  OPC_MoveChild1,
/*572561*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572564*/                  OPC_CheckChild0Same, 0,
/*572566*/                  OPC_CheckChild1Integer, 0, 
/*572568*/                  OPC_MoveParent,
/*572569*/                  OPC_RecordChild2, // #3 = $src3
/*572570*/                  OPC_MoveParent,
/*572571*/                  OPC_MoveChild2,
/*572572*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572575*/                  OPC_CheckChild0Same, 0,
/*572577*/                  OPC_CheckChild1Integer, 0, 
/*572579*/                  OPC_MoveParent,
/*572580*/                  OPC_CheckType, MVT::f32,
/*572582*/                  OPC_MoveParent,
/*572583*/                  OPC_MoveParent,
/*572584*/                  OPC_CheckType, MVT::v4f32,
/*572586*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572588*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572591*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*572599*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572602*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*572610*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFMSUB213SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*572620*/                /*Scope*/ 60, /*->572681*/
/*572621*/                  OPC_RecordChild1, // #3 = $src3
/*572622*/                  OPC_MoveChild2,
/*572623*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572626*/                  OPC_CheckChild0Same, 0,
/*572628*/                  OPC_CheckChild1Integer, 0, 
/*572630*/                  OPC_MoveParent,
/*572631*/                  OPC_MoveParent,
/*572632*/                  OPC_MoveChild2,
/*572633*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572636*/                  OPC_CheckChild0Same, 0,
/*572638*/                  OPC_CheckChild1Integer, 0, 
/*572640*/                  OPC_MoveParent,
/*572641*/                  OPC_CheckType, MVT::f32,
/*572643*/                  OPC_MoveParent,
/*572644*/                  OPC_MoveParent,
/*572645*/                  OPC_CheckType, MVT::v4f32,
/*572647*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572649*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572652*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*572660*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572663*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*572671*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFMSUB231SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*572681*/                0, /*End of Scope*/
/*572682*/              /*Scope*/ 61, /*->572744*/
/*572683*/                OPC_MoveChild0,
/*572684*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572687*/                OPC_CheckChild0Same, 0,
/*572689*/                OPC_CheckChild1Integer, 0, 
/*572691*/                OPC_MoveParent,
/*572692*/                OPC_RecordChild1, // #2 = $src2
/*572693*/                OPC_RecordChild2, // #3 = $src3
/*572694*/                OPC_MoveParent,
/*572695*/                OPC_MoveChild2,
/*572696*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572699*/                OPC_CheckChild0Same, 0,
/*572701*/                OPC_CheckChild1Integer, 0, 
/*572703*/                OPC_MoveParent,
/*572704*/                OPC_CheckType, MVT::f32,
/*572706*/                OPC_MoveParent,
/*572707*/                OPC_MoveParent,
/*572708*/                OPC_CheckType, MVT::v4f32,
/*572710*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572712*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572715*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*572723*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572726*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*572734*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZr_Intk), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                          // Dst: (VFMSUB213SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*572744*/              0, /*End of Scope*/
/*572745*/            /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(X86ISD::FNMADD),// ->572939
/*572749*/              OPC_Scope, 125, /*->572876*/ // 2 children in Scope
/*572751*/                OPC_RecordChild0, // #2 = $src2
/*572752*/                OPC_Scope, 60, /*->572814*/ // 2 children in Scope
/*572754*/                  OPC_MoveChild1,
/*572755*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572758*/                  OPC_CheckChild0Same, 0,
/*572760*/                  OPC_CheckChild1Integer, 0, 
/*572762*/                  OPC_MoveParent,
/*572763*/                  OPC_RecordChild2, // #3 = $src3
/*572764*/                  OPC_MoveParent,
/*572765*/                  OPC_MoveChild2,
/*572766*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572769*/                  OPC_CheckChild0Same, 0,
/*572771*/                  OPC_CheckChild1Integer, 0, 
/*572773*/                  OPC_MoveParent,
/*572774*/                  OPC_CheckType, MVT::f32,
/*572776*/                  OPC_MoveParent,
/*572777*/                  OPC_MoveParent,
/*572778*/                  OPC_CheckType, MVT::v4f32,
/*572780*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572782*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572785*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*572793*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572796*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*572804*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFNMADD213SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*572814*/                /*Scope*/ 60, /*->572875*/
/*572815*/                  OPC_RecordChild1, // #3 = $src3
/*572816*/                  OPC_MoveChild2,
/*572817*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572820*/                  OPC_CheckChild0Same, 0,
/*572822*/                  OPC_CheckChild1Integer, 0, 
/*572824*/                  OPC_MoveParent,
/*572825*/                  OPC_MoveParent,
/*572826*/                  OPC_MoveChild2,
/*572827*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572830*/                  OPC_CheckChild0Same, 0,
/*572832*/                  OPC_CheckChild1Integer, 0, 
/*572834*/                  OPC_MoveParent,
/*572835*/                  OPC_CheckType, MVT::f32,
/*572837*/                  OPC_MoveParent,
/*572838*/                  OPC_MoveParent,
/*572839*/                  OPC_CheckType, MVT::v4f32,
/*572841*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572843*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572846*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*572854*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572857*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*572865*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFNMADD231SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*572875*/                0, /*End of Scope*/
/*572876*/              /*Scope*/ 61, /*->572938*/
/*572877*/                OPC_MoveChild0,
/*572878*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572881*/                OPC_CheckChild0Same, 0,
/*572883*/                OPC_CheckChild1Integer, 0, 
/*572885*/                OPC_MoveParent,
/*572886*/                OPC_RecordChild1, // #2 = $src2
/*572887*/                OPC_RecordChild2, // #3 = $src3
/*572888*/                OPC_MoveParent,
/*572889*/                OPC_MoveChild2,
/*572890*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572893*/                OPC_CheckChild0Same, 0,
/*572895*/                OPC_CheckChild1Integer, 0, 
/*572897*/                OPC_MoveParent,
/*572898*/                OPC_CheckType, MVT::f32,
/*572900*/                OPC_MoveParent,
/*572901*/                OPC_MoveParent,
/*572902*/                OPC_CheckType, MVT::v4f32,
/*572904*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572906*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572909*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*572917*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572920*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*572928*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZr_Intk), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                          // Dst: (VFNMADD213SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*572938*/              0, /*End of Scope*/
/*572939*/            /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(X86ISD::FNMSUB),// ->573133
/*572943*/              OPC_Scope, 125, /*->573070*/ // 2 children in Scope
/*572945*/                OPC_RecordChild0, // #2 = $src2
/*572946*/                OPC_Scope, 60, /*->573008*/ // 2 children in Scope
/*572948*/                  OPC_MoveChild1,
/*572949*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572952*/                  OPC_CheckChild0Same, 0,
/*572954*/                  OPC_CheckChild1Integer, 0, 
/*572956*/                  OPC_MoveParent,
/*572957*/                  OPC_RecordChild2, // #3 = $src3
/*572958*/                  OPC_MoveParent,
/*572959*/                  OPC_MoveChild2,
/*572960*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*572963*/                  OPC_CheckChild0Same, 0,
/*572965*/                  OPC_CheckChild1Integer, 0, 
/*572967*/                  OPC_MoveParent,
/*572968*/                  OPC_CheckType, MVT::f32,
/*572970*/                  OPC_MoveParent,
/*572971*/                  OPC_MoveParent,
/*572972*/                  OPC_CheckType, MVT::v4f32,
/*572974*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*572976*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572979*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*572987*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*572990*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*572998*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFNMSUB213SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*573008*/                /*Scope*/ 60, /*->573069*/
/*573009*/                  OPC_RecordChild1, // #3 = $src3
/*573010*/                  OPC_MoveChild2,
/*573011*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573014*/                  OPC_CheckChild0Same, 0,
/*573016*/                  OPC_CheckChild1Integer, 0, 
/*573018*/                  OPC_MoveParent,
/*573019*/                  OPC_MoveParent,
/*573020*/                  OPC_MoveChild2,
/*573021*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573024*/                  OPC_CheckChild0Same, 0,
/*573026*/                  OPC_CheckChild1Integer, 0, 
/*573028*/                  OPC_MoveParent,
/*573029*/                  OPC_CheckType, MVT::f32,
/*573031*/                  OPC_MoveParent,
/*573032*/                  OPC_MoveParent,
/*573033*/                  OPC_CheckType, MVT::v4f32,
/*573035*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573037*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573040*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*573048*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573051*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*573059*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFNMSUB231SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*573069*/                0, /*End of Scope*/
/*573070*/              /*Scope*/ 61, /*->573132*/
/*573071*/                OPC_MoveChild0,
/*573072*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573075*/                OPC_CheckChild0Same, 0,
/*573077*/                OPC_CheckChild1Integer, 0, 
/*573079*/                OPC_MoveParent,
/*573080*/                OPC_RecordChild1, // #2 = $src2
/*573081*/                OPC_RecordChild2, // #3 = $src3
/*573082*/                OPC_MoveParent,
/*573083*/                OPC_MoveChild2,
/*573084*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573087*/                OPC_CheckChild0Same, 0,
/*573089*/                OPC_CheckChild1Integer, 0, 
/*573091*/                OPC_MoveParent,
/*573092*/                OPC_CheckType, MVT::f32,
/*573094*/                OPC_MoveParent,
/*573095*/                OPC_MoveParent,
/*573096*/                OPC_CheckType, MVT::v4f32,
/*573098*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573100*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573103*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*573111*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573114*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*573122*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZr_Intk), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3), (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                          // Dst: (VFNMSUB213SSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*573132*/              0, /*End of Scope*/
/*573133*/            /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(X86ISD::FMADD_RND),// ->573349
/*573137*/              OPC_Scope, 11|128,1/*139*/, /*->573279*/ // 2 children in Scope
/*573140*/                OPC_RecordChild0, // #2 = $src2
/*573141*/                OPC_Scope, 67, /*->573210*/ // 2 children in Scope
/*573143*/                  OPC_MoveChild1,
/*573144*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573147*/                  OPC_CheckChild0Same, 0,
/*573149*/                  OPC_CheckChild1Integer, 0, 
/*573151*/                  OPC_MoveParent,
/*573152*/                  OPC_RecordChild2, // #3 = $src3
/*573153*/                  OPC_RecordChild3, // #4 = $rc
/*573154*/                  OPC_MoveChild3,
/*573155*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573158*/                  OPC_MoveParent,
/*573159*/                  OPC_MoveParent,
/*573160*/                  OPC_MoveChild2,
/*573161*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573164*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573166*/                  OPC_MoveParent,
/*573167*/                  OPC_CheckType, MVT::f32,
/*573169*/                  OPC_MoveParent,
/*573170*/                  OPC_MoveParent,
/*573171*/                  OPC_CheckType, MVT::v4f32,
/*573173*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573175*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573178*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573186*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573189*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573197*/                  OPC_EmitConvertToTarget, 4,
/*573199*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                            // Dst: (VFMADD213SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573210*/                /*Scope*/ 67, /*->573278*/
/*573211*/                  OPC_RecordChild1, // #3 = $src3
/*573212*/                  OPC_MoveChild2,
/*573213*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573216*/                  OPC_CheckChild0Same, 0,
/*573218*/                  OPC_CheckChild1Integer, 0, 
/*573220*/                  OPC_MoveParent,
/*573221*/                  OPC_RecordChild3, // #4 = $rc
/*573222*/                  OPC_MoveChild3,
/*573223*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573226*/                  OPC_MoveParent,
/*573227*/                  OPC_MoveParent,
/*573228*/                  OPC_MoveChild2,
/*573229*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573232*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573234*/                  OPC_MoveParent,
/*573235*/                  OPC_CheckType, MVT::f32,
/*573237*/                  OPC_MoveParent,
/*573238*/                  OPC_MoveParent,
/*573239*/                  OPC_CheckType, MVT::v4f32,
/*573241*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573243*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573246*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573254*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573257*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573265*/                  OPC_EmitConvertToTarget, 4,
/*573267*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                            // Dst: (VFMADD231SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573278*/                0, /*End of Scope*/
/*573279*/              /*Scope*/ 68, /*->573348*/
/*573280*/                OPC_MoveChild0,
/*573281*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573284*/                OPC_CheckChild0Same, 0,
/*573286*/                OPC_CheckChild1Integer, 0, 
/*573288*/                OPC_MoveParent,
/*573289*/                OPC_RecordChild1, // #2 = $src2
/*573290*/                OPC_RecordChild2, // #3 = $src3
/*573291*/                OPC_RecordChild3, // #4 = $rc
/*573292*/                OPC_MoveChild3,
/*573293*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573296*/                OPC_MoveParent,
/*573297*/                OPC_MoveParent,
/*573298*/                OPC_MoveChild2,
/*573299*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573302*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573304*/                OPC_MoveParent,
/*573305*/                OPC_CheckType, MVT::f32,
/*573307*/                OPC_MoveParent,
/*573308*/                OPC_MoveParent,
/*573309*/                OPC_CheckType, MVT::v4f32,
/*573311*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573313*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573316*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573324*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573327*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573335*/                OPC_EmitConvertToTarget, 4,
/*573337*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Intkz), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                          // Dst: (VFMADD213SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573348*/              0, /*End of Scope*/
/*573349*/            /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->573565
/*573353*/              OPC_Scope, 11|128,1/*139*/, /*->573495*/ // 2 children in Scope
/*573356*/                OPC_RecordChild0, // #2 = $src2
/*573357*/                OPC_Scope, 67, /*->573426*/ // 2 children in Scope
/*573359*/                  OPC_MoveChild1,
/*573360*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573363*/                  OPC_CheckChild0Same, 0,
/*573365*/                  OPC_CheckChild1Integer, 0, 
/*573367*/                  OPC_MoveParent,
/*573368*/                  OPC_RecordChild2, // #3 = $src3
/*573369*/                  OPC_RecordChild3, // #4 = $rc
/*573370*/                  OPC_MoveChild3,
/*573371*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573374*/                  OPC_MoveParent,
/*573375*/                  OPC_MoveParent,
/*573376*/                  OPC_MoveChild2,
/*573377*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573380*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573382*/                  OPC_MoveParent,
/*573383*/                  OPC_CheckType, MVT::f32,
/*573385*/                  OPC_MoveParent,
/*573386*/                  OPC_MoveParent,
/*573387*/                  OPC_CheckType, MVT::v4f32,
/*573389*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573391*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573394*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573402*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573405*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573413*/                  OPC_EmitConvertToTarget, 4,
/*573415*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                            // Dst: (VFMSUB213SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573426*/                /*Scope*/ 67, /*->573494*/
/*573427*/                  OPC_RecordChild1, // #3 = $src3
/*573428*/                  OPC_MoveChild2,
/*573429*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573432*/                  OPC_CheckChild0Same, 0,
/*573434*/                  OPC_CheckChild1Integer, 0, 
/*573436*/                  OPC_MoveParent,
/*573437*/                  OPC_RecordChild3, // #4 = $rc
/*573438*/                  OPC_MoveChild3,
/*573439*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573442*/                  OPC_MoveParent,
/*573443*/                  OPC_MoveParent,
/*573444*/                  OPC_MoveChild2,
/*573445*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573448*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573450*/                  OPC_MoveParent,
/*573451*/                  OPC_CheckType, MVT::f32,
/*573453*/                  OPC_MoveParent,
/*573454*/                  OPC_MoveParent,
/*573455*/                  OPC_CheckType, MVT::v4f32,
/*573457*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573459*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573462*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573470*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573473*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573481*/                  OPC_EmitConvertToTarget, 4,
/*573483*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                            // Dst: (VFMSUB231SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573494*/                0, /*End of Scope*/
/*573495*/              /*Scope*/ 68, /*->573564*/
/*573496*/                OPC_MoveChild0,
/*573497*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573500*/                OPC_CheckChild0Same, 0,
/*573502*/                OPC_CheckChild1Integer, 0, 
/*573504*/                OPC_MoveParent,
/*573505*/                OPC_RecordChild1, // #2 = $src2
/*573506*/                OPC_RecordChild2, // #3 = $src3
/*573507*/                OPC_RecordChild3, // #4 = $rc
/*573508*/                OPC_MoveChild3,
/*573509*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573512*/                OPC_MoveParent,
/*573513*/                OPC_MoveParent,
/*573514*/                OPC_MoveChild2,
/*573515*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573518*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573520*/                OPC_MoveParent,
/*573521*/                OPC_CheckType, MVT::f32,
/*573523*/                OPC_MoveParent,
/*573524*/                OPC_MoveParent,
/*573525*/                OPC_CheckType, MVT::v4f32,
/*573527*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573529*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573532*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573540*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573543*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573551*/                OPC_EmitConvertToTarget, 4,
/*573553*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Intkz), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                          // Dst: (VFMSUB213SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573564*/              0, /*End of Scope*/
/*573565*/            /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->573781
/*573569*/              OPC_Scope, 11|128,1/*139*/, /*->573711*/ // 2 children in Scope
/*573572*/                OPC_RecordChild0, // #2 = $src2
/*573573*/                OPC_Scope, 67, /*->573642*/ // 2 children in Scope
/*573575*/                  OPC_MoveChild1,
/*573576*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573579*/                  OPC_CheckChild0Same, 0,
/*573581*/                  OPC_CheckChild1Integer, 0, 
/*573583*/                  OPC_MoveParent,
/*573584*/                  OPC_RecordChild2, // #3 = $src3
/*573585*/                  OPC_RecordChild3, // #4 = $rc
/*573586*/                  OPC_MoveChild3,
/*573587*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573590*/                  OPC_MoveParent,
/*573591*/                  OPC_MoveParent,
/*573592*/                  OPC_MoveChild2,
/*573593*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573596*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573598*/                  OPC_MoveParent,
/*573599*/                  OPC_CheckType, MVT::f32,
/*573601*/                  OPC_MoveParent,
/*573602*/                  OPC_MoveParent,
/*573603*/                  OPC_CheckType, MVT::v4f32,
/*573605*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573607*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573610*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573618*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573621*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573629*/                  OPC_EmitConvertToTarget, 4,
/*573631*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                            // Dst: (VFNMADD213SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573642*/                /*Scope*/ 67, /*->573710*/
/*573643*/                  OPC_RecordChild1, // #3 = $src3
/*573644*/                  OPC_MoveChild2,
/*573645*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573648*/                  OPC_CheckChild0Same, 0,
/*573650*/                  OPC_CheckChild1Integer, 0, 
/*573652*/                  OPC_MoveParent,
/*573653*/                  OPC_RecordChild3, // #4 = $rc
/*573654*/                  OPC_MoveChild3,
/*573655*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573658*/                  OPC_MoveParent,
/*573659*/                  OPC_MoveParent,
/*573660*/                  OPC_MoveChild2,
/*573661*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573664*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573666*/                  OPC_MoveParent,
/*573667*/                  OPC_CheckType, MVT::f32,
/*573669*/                  OPC_MoveParent,
/*573670*/                  OPC_MoveParent,
/*573671*/                  OPC_CheckType, MVT::v4f32,
/*573673*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573675*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573678*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573686*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573689*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573697*/                  OPC_EmitConvertToTarget, 4,
/*573699*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                            // Dst: (VFNMADD231SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573710*/                0, /*End of Scope*/
/*573711*/              /*Scope*/ 68, /*->573780*/
/*573712*/                OPC_MoveChild0,
/*573713*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573716*/                OPC_CheckChild0Same, 0,
/*573718*/                OPC_CheckChild1Integer, 0, 
/*573720*/                OPC_MoveParent,
/*573721*/                OPC_RecordChild1, // #2 = $src2
/*573722*/                OPC_RecordChild2, // #3 = $src3
/*573723*/                OPC_RecordChild3, // #4 = $rc
/*573724*/                OPC_MoveChild3,
/*573725*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573728*/                OPC_MoveParent,
/*573729*/                OPC_MoveParent,
/*573730*/                OPC_MoveChild2,
/*573731*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573734*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573736*/                OPC_MoveParent,
/*573737*/                OPC_CheckType, MVT::f32,
/*573739*/                OPC_MoveParent,
/*573740*/                OPC_MoveParent,
/*573741*/                OPC_CheckType, MVT::v4f32,
/*573743*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573745*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573748*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573756*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573759*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573767*/                OPC_EmitConvertToTarget, 4,
/*573769*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Intkz), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                          // Dst: (VFNMADD213SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573780*/              0, /*End of Scope*/
/*573781*/            /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->573997
/*573785*/              OPC_Scope, 11|128,1/*139*/, /*->573927*/ // 2 children in Scope
/*573788*/                OPC_RecordChild0, // #2 = $src2
/*573789*/                OPC_Scope, 67, /*->573858*/ // 2 children in Scope
/*573791*/                  OPC_MoveChild1,
/*573792*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573795*/                  OPC_CheckChild0Same, 0,
/*573797*/                  OPC_CheckChild1Integer, 0, 
/*573799*/                  OPC_MoveParent,
/*573800*/                  OPC_RecordChild2, // #3 = $src3
/*573801*/                  OPC_RecordChild3, // #4 = $rc
/*573802*/                  OPC_MoveChild3,
/*573803*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573806*/                  OPC_MoveParent,
/*573807*/                  OPC_MoveParent,
/*573808*/                  OPC_MoveChild2,
/*573809*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573812*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573814*/                  OPC_MoveParent,
/*573815*/                  OPC_CheckType, MVT::f32,
/*573817*/                  OPC_MoveParent,
/*573818*/                  OPC_MoveParent,
/*573819*/                  OPC_CheckType, MVT::v4f32,
/*573821*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573823*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573826*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573834*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573837*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573845*/                  OPC_EmitConvertToTarget, 4,
/*573847*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                            // Dst: (VFNMSUB213SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573858*/                /*Scope*/ 67, /*->573926*/
/*573859*/                  OPC_RecordChild1, // #3 = $src3
/*573860*/                  OPC_MoveChild2,
/*573861*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573864*/                  OPC_CheckChild0Same, 0,
/*573866*/                  OPC_CheckChild1Integer, 0, 
/*573868*/                  OPC_MoveParent,
/*573869*/                  OPC_RecordChild3, // #4 = $rc
/*573870*/                  OPC_MoveChild3,
/*573871*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573874*/                  OPC_MoveParent,
/*573875*/                  OPC_MoveParent,
/*573876*/                  OPC_MoveChild2,
/*573877*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573880*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573882*/                  OPC_MoveParent,
/*573883*/                  OPC_CheckType, MVT::f32,
/*573885*/                  OPC_MoveParent,
/*573886*/                  OPC_MoveParent,
/*573887*/                  OPC_CheckType, MVT::v4f32,
/*573889*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573891*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573894*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573902*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573905*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573913*/                  OPC_EmitConvertToTarget, 4,
/*573915*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                            // Dst: (VFNMSUB231SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573926*/                0, /*End of Scope*/
/*573927*/              /*Scope*/ 68, /*->573996*/
/*573928*/                OPC_MoveChild0,
/*573929*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*573932*/                OPC_CheckChild0Same, 0,
/*573934*/                OPC_CheckChild1Integer, 0, 
/*573936*/                OPC_MoveParent,
/*573937*/                OPC_RecordChild1, // #2 = $src2
/*573938*/                OPC_RecordChild2, // #3 = $src3
/*573939*/                OPC_RecordChild3, // #4 = $rc
/*573940*/                OPC_MoveChild3,
/*573941*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*573944*/                OPC_MoveParent,
/*573945*/                OPC_MoveParent,
/*573946*/                OPC_MoveChild2,
/*573947*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*573950*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*573952*/                OPC_MoveParent,
/*573953*/                OPC_CheckType, MVT::f32,
/*573955*/                OPC_MoveParent,
/*573956*/                OPC_MoveParent,
/*573957*/                OPC_CheckType, MVT::v4f32,
/*573959*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*573961*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573964*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*573972*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*573975*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*573983*/                OPC_EmitConvertToTarget, 4,
/*573985*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Intkz), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 27
                          // Dst: (VFNMSUB213SSZrb_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*573996*/              0, /*End of Scope*/
/*573997*/            0, // EndSwitchOpcode
/*573998*/          0, /*End of Scope*/
/*573999*/        /*SwitchOpcode*/ 21|128,5/*661*/, TARGET_VAL(ISD::FMA),// ->574664
/*574003*/          OPC_Scope, 59, /*->574064*/ // 6 children in Scope
/*574005*/            OPC_RecordChild0, // #1 = $src2
/*574006*/            OPC_MoveChild1,
/*574007*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574010*/            OPC_CheckChild0Same, 0,
/*574012*/            OPC_CheckChild1Integer, 0, 
/*574014*/            OPC_MoveParent,
/*574015*/            OPC_MoveChild2,
/*574016*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*574019*/            OPC_RecordMemRef,
/*574020*/            OPC_RecordNode, // #2 = 'ld' chained node
/*574021*/            OPC_CheckFoldableChainNode,
/*574022*/            OPC_RecordChild1, // #3 = $src3
/*574023*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574025*/            OPC_CheckPredicate, 9, // Predicate_load
/*574027*/            OPC_MoveParent,
/*574028*/            OPC_CheckType, MVT::f32,
/*574030*/            OPC_MoveParent,
/*574031*/            OPC_MoveParent,
/*574032*/            OPC_CheckType, MVT::v4f32,
/*574034*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*574036*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574039*/            OPC_EmitMergeInputChains1_2,
/*574040*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*574043*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*574051*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VFMADD213SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574064*/          /*Scope*/ 59, /*->574124*/
/*574065*/            OPC_MoveChild0,
/*574066*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574069*/            OPC_CheckChild0Same, 0,
/*574071*/            OPC_CheckChild1Integer, 0, 
/*574073*/            OPC_MoveParent,
/*574074*/            OPC_MoveChild1,
/*574075*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*574078*/            OPC_RecordMemRef,
/*574079*/            OPC_RecordNode, // #1 = 'ld' chained node
/*574080*/            OPC_CheckFoldableChainNode,
/*574081*/            OPC_RecordChild1, // #2 = $src3
/*574082*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574084*/            OPC_CheckPredicate, 9, // Predicate_load
/*574086*/            OPC_MoveParent,
/*574087*/            OPC_RecordChild2, // #3 = $src2
/*574088*/            OPC_CheckType, MVT::f32,
/*574090*/            OPC_MoveParent,
/*574091*/            OPC_MoveParent,
/*574092*/            OPC_CheckType, MVT::v4f32,
/*574094*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*574096*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574099*/            OPC_EmitMergeInputChains1_1,
/*574100*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*574103*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*574111*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src2))) - Complexity = 39
                      // Dst: (VFMADD132SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574124*/          /*Scope*/ 118, /*->574243*/
/*574125*/            OPC_RecordChild0, // #1 = $src2
/*574126*/            OPC_MoveChild1,
/*574127*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::LOAD),// ->574185
/*574131*/              OPC_RecordMemRef,
/*574132*/              OPC_RecordNode, // #2 = 'ld' chained node
/*574133*/              OPC_CheckFoldableChainNode,
/*574134*/              OPC_RecordChild1, // #3 = $src3
/*574135*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574137*/              OPC_CheckPredicate, 9, // Predicate_load
/*574139*/              OPC_MoveParent,
/*574140*/              OPC_MoveChild2,
/*574141*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574144*/              OPC_CheckChild0Same, 0,
/*574146*/              OPC_CheckChild1Integer, 0, 
/*574148*/              OPC_MoveParent,
/*574149*/              OPC_CheckType, MVT::f32,
/*574151*/              OPC_MoveParent,
/*574152*/              OPC_MoveParent,
/*574153*/              OPC_CheckType, MVT::v4f32,
/*574155*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*574157*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574160*/              OPC_EmitMergeInputChains1_2,
/*574161*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*574164*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*574172*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VFMADD231SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574185*/            /*SwitchOpcode*/ 54, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->574242
/*574188*/              OPC_CheckChild0Same, 0,
/*574190*/              OPC_CheckChild1Integer, 0, 
/*574192*/              OPC_MoveParent,
/*574193*/              OPC_MoveChild2,
/*574194*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*574197*/              OPC_RecordMemRef,
/*574198*/              OPC_RecordNode, // #2 = 'ld' chained node
/*574199*/              OPC_CheckFoldableChainNode,
/*574200*/              OPC_RecordChild1, // #3 = $src3
/*574201*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574203*/              OPC_CheckPredicate, 9, // Predicate_load
/*574205*/              OPC_MoveParent,
/*574206*/              OPC_CheckType, MVT::f32,
/*574208*/              OPC_MoveParent,
/*574209*/              OPC_MoveParent,
/*574210*/              OPC_CheckType, MVT::v4f32,
/*574212*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*574214*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574217*/              OPC_EmitMergeInputChains1_2,
/*574218*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*574221*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*574229*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VFMADD213SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574242*/            0, // EndSwitchOpcode
/*574243*/          /*Scope*/ 59, /*->574303*/
/*574244*/            OPC_MoveChild0,
/*574245*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574248*/            OPC_CheckChild0Same, 0,
/*574250*/            OPC_CheckChild1Integer, 0, 
/*574252*/            OPC_MoveParent,
/*574253*/            OPC_MoveChild1,
/*574254*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*574257*/            OPC_RecordMemRef,
/*574258*/            OPC_RecordNode, // #1 = 'ld' chained node
/*574259*/            OPC_CheckFoldableChainNode,
/*574260*/            OPC_RecordChild1, // #2 = $src3
/*574261*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574263*/            OPC_CheckPredicate, 9, // Predicate_load
/*574265*/            OPC_MoveParent,
/*574266*/            OPC_RecordChild2, // #3 = $src2
/*574267*/            OPC_CheckType, MVT::f32,
/*574269*/            OPC_MoveParent,
/*574270*/            OPC_MoveParent,
/*574271*/            OPC_CheckType, MVT::v4f32,
/*574273*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*574275*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574278*/            OPC_EmitMergeInputChains1_1,
/*574279*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*574282*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*574290*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2))) - Complexity = 39
                      // Dst: (VFMADD132SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574303*/          /*Scope*/ 59, /*->574363*/
/*574304*/            OPC_RecordChild0, // #1 = $src2
/*574305*/            OPC_MoveChild1,
/*574306*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*574309*/            OPC_RecordMemRef,
/*574310*/            OPC_RecordNode, // #2 = 'ld' chained node
/*574311*/            OPC_CheckFoldableChainNode,
/*574312*/            OPC_RecordChild1, // #3 = $src3
/*574313*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574315*/            OPC_CheckPredicate, 9, // Predicate_load
/*574317*/            OPC_MoveParent,
/*574318*/            OPC_MoveChild2,
/*574319*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574322*/            OPC_CheckChild0Same, 0,
/*574324*/            OPC_CheckChild1Integer, 0, 
/*574326*/            OPC_MoveParent,
/*574327*/            OPC_CheckType, MVT::f32,
/*574329*/            OPC_MoveParent,
/*574330*/            OPC_MoveParent,
/*574331*/            OPC_CheckType, MVT::v4f32,
/*574333*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*574335*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574338*/            OPC_EmitMergeInputChains1_2,
/*574339*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*574342*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*574350*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                      // Dst: (VFMADD231SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574363*/          /*Scope*/ 42|128,2/*298*/, /*->574663*/
/*574365*/            OPC_MoveChild0,
/*574366*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->574459
/*574370*/              OPC_CheckChild0Same, 0,
/*574372*/              OPC_CheckChild1Integer, 0, 
/*574374*/              OPC_MoveParent,
/*574375*/              OPC_RecordChild1, // #1 = $src2
/*574376*/              OPC_MoveChild2,
/*574377*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*574380*/              OPC_RecordMemRef,
/*574381*/              OPC_RecordNode, // #2 = 'ld' chained node
/*574382*/              OPC_CheckFoldableChainNode,
/*574383*/              OPC_RecordChild1, // #3 = $src3
/*574384*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574386*/              OPC_CheckPredicate, 9, // Predicate_load
/*574388*/              OPC_MoveParent,
/*574389*/              OPC_CheckType, MVT::f32,
/*574391*/              OPC_MoveParent,
/*574392*/              OPC_MoveParent,
/*574393*/              OPC_CheckType, MVT::v4f32,
/*574395*/              OPC_Scope, 30, /*->574427*/ // 2 children in Scope
/*574397*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*574399*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574402*/                OPC_EmitMergeInputChains1_2,
/*574403*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*574406*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*574414*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFMADD213SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574427*/              /*Scope*/ 30, /*->574458*/
/*574428*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*574430*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574433*/                OPC_EmitMergeInputChains1_2,
/*574434*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*574437*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*574445*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFMADD213SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574458*/              0, /*End of Scope*/
/*574459*/            /*SwitchOpcode*/ 71|128,1/*199*/, TARGET_VAL(ISD::LOAD),// ->574662
/*574463*/              OPC_RecordMemRef,
/*574464*/              OPC_RecordNode, // #1 = 'ld' chained node
/*574465*/              OPC_CheckFoldableChainNode,
/*574466*/              OPC_RecordChild1, // #2 = $src3
/*574467*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574469*/              OPC_CheckPredicate, 9, // Predicate_load
/*574471*/              OPC_MoveParent,
/*574472*/              OPC_Scope, 46, /*->574520*/ // 4 children in Scope
/*574474*/                OPC_MoveChild1,
/*574475*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574478*/                OPC_CheckChild0Same, 0,
/*574480*/                OPC_CheckChild1Integer, 0, 
/*574482*/                OPC_MoveParent,
/*574483*/                OPC_RecordChild2, // #3 = $src2
/*574484*/                OPC_CheckType, MVT::f32,
/*574486*/                OPC_MoveParent,
/*574487*/                OPC_MoveParent,
/*574488*/                OPC_CheckType, MVT::v4f32,
/*574490*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*574492*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574495*/                OPC_EmitMergeInputChains1_1,
/*574496*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*574499*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*574507*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2))) - Complexity = 39
                          // Dst: (VFMADD132SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574520*/              /*Scope*/ 46, /*->574567*/
/*574521*/                OPC_RecordChild1, // #3 = $src2
/*574522*/                OPC_MoveChild2,
/*574523*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574526*/                OPC_CheckChild0Same, 0,
/*574528*/                OPC_CheckChild1Integer, 0, 
/*574530*/                OPC_MoveParent,
/*574531*/                OPC_CheckType, MVT::f32,
/*574533*/                OPC_MoveParent,
/*574534*/                OPC_MoveParent,
/*574535*/                OPC_CheckType, MVT::v4f32,
/*574537*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*574539*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574542*/                OPC_EmitMergeInputChains1_1,
/*574543*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*574546*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*574554*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFMADD231SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574567*/              /*Scope*/ 46, /*->574614*/
/*574568*/                OPC_MoveChild1,
/*574569*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574572*/                OPC_CheckChild0Same, 0,
/*574574*/                OPC_CheckChild1Integer, 0, 
/*574576*/                OPC_MoveParent,
/*574577*/                OPC_RecordChild2, // #3 = $src2
/*574578*/                OPC_CheckType, MVT::f32,
/*574580*/                OPC_MoveParent,
/*574581*/                OPC_MoveParent,
/*574582*/                OPC_CheckType, MVT::v4f32,
/*574584*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*574586*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574589*/                OPC_EmitMergeInputChains1_1,
/*574590*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*574593*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*574601*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2))) - Complexity = 39
                          // Dst: (VFMADD132SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574614*/              /*Scope*/ 46, /*->574661*/
/*574615*/                OPC_RecordChild1, // #3 = $src2
/*574616*/                OPC_MoveChild2,
/*574617*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574620*/                OPC_CheckChild0Same, 0,
/*574622*/                OPC_CheckChild1Integer, 0, 
/*574624*/                OPC_MoveParent,
/*574625*/                OPC_CheckType, MVT::f32,
/*574627*/                OPC_MoveParent,
/*574628*/                OPC_MoveParent,
/*574629*/                OPC_CheckType, MVT::v4f32,
/*574631*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*574633*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574636*/                OPC_EmitMergeInputChains1_1,
/*574637*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*574640*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*574648*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFMADD231SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574661*/              0, /*End of Scope*/
/*574662*/            0, // EndSwitchOpcode
/*574663*/          0, /*End of Scope*/
/*574664*/        /*SwitchOpcode*/ 21|128,5/*661*/, TARGET_VAL(X86ISD::FMSUB),// ->575329
/*574668*/          OPC_Scope, 59, /*->574729*/ // 6 children in Scope
/*574670*/            OPC_RecordChild0, // #1 = $src2
/*574671*/            OPC_MoveChild1,
/*574672*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574675*/            OPC_CheckChild0Same, 0,
/*574677*/            OPC_CheckChild1Integer, 0, 
/*574679*/            OPC_MoveParent,
/*574680*/            OPC_MoveChild2,
/*574681*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*574684*/            OPC_RecordMemRef,
/*574685*/            OPC_RecordNode, // #2 = 'ld' chained node
/*574686*/            OPC_CheckFoldableChainNode,
/*574687*/            OPC_RecordChild1, // #3 = $src3
/*574688*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574690*/            OPC_CheckPredicate, 9, // Predicate_load
/*574692*/            OPC_MoveParent,
/*574693*/            OPC_CheckType, MVT::f32,
/*574695*/            OPC_MoveParent,
/*574696*/            OPC_MoveParent,
/*574697*/            OPC_CheckType, MVT::v4f32,
/*574699*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*574701*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574704*/            OPC_EmitMergeInputChains1_2,
/*574705*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*574708*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*574716*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VFMSUB213SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574729*/          /*Scope*/ 59, /*->574789*/
/*574730*/            OPC_MoveChild0,
/*574731*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574734*/            OPC_CheckChild0Same, 0,
/*574736*/            OPC_CheckChild1Integer, 0, 
/*574738*/            OPC_MoveParent,
/*574739*/            OPC_MoveChild1,
/*574740*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*574743*/            OPC_RecordMemRef,
/*574744*/            OPC_RecordNode, // #1 = 'ld' chained node
/*574745*/            OPC_CheckFoldableChainNode,
/*574746*/            OPC_RecordChild1, // #2 = $src3
/*574747*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574749*/            OPC_CheckPredicate, 9, // Predicate_load
/*574751*/            OPC_MoveParent,
/*574752*/            OPC_RecordChild2, // #3 = $src2
/*574753*/            OPC_CheckType, MVT::f32,
/*574755*/            OPC_MoveParent,
/*574756*/            OPC_MoveParent,
/*574757*/            OPC_CheckType, MVT::v4f32,
/*574759*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*574761*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574764*/            OPC_EmitMergeInputChains1_1,
/*574765*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*574768*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*574776*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src2))) - Complexity = 39
                      // Dst: (VFMSUB132SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574789*/          /*Scope*/ 118, /*->574908*/
/*574790*/            OPC_RecordChild0, // #1 = $src2
/*574791*/            OPC_MoveChild1,
/*574792*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::LOAD),// ->574850
/*574796*/              OPC_RecordMemRef,
/*574797*/              OPC_RecordNode, // #2 = 'ld' chained node
/*574798*/              OPC_CheckFoldableChainNode,
/*574799*/              OPC_RecordChild1, // #3 = $src3
/*574800*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574802*/              OPC_CheckPredicate, 9, // Predicate_load
/*574804*/              OPC_MoveParent,
/*574805*/              OPC_MoveChild2,
/*574806*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574809*/              OPC_CheckChild0Same, 0,
/*574811*/              OPC_CheckChild1Integer, 0, 
/*574813*/              OPC_MoveParent,
/*574814*/              OPC_CheckType, MVT::f32,
/*574816*/              OPC_MoveParent,
/*574817*/              OPC_MoveParent,
/*574818*/              OPC_CheckType, MVT::v4f32,
/*574820*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*574822*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574825*/              OPC_EmitMergeInputChains1_2,
/*574826*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*574829*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*574837*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VFMSUB231SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574850*/            /*SwitchOpcode*/ 54, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->574907
/*574853*/              OPC_CheckChild0Same, 0,
/*574855*/              OPC_CheckChild1Integer, 0, 
/*574857*/              OPC_MoveParent,
/*574858*/              OPC_MoveChild2,
/*574859*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*574862*/              OPC_RecordMemRef,
/*574863*/              OPC_RecordNode, // #2 = 'ld' chained node
/*574864*/              OPC_CheckFoldableChainNode,
/*574865*/              OPC_RecordChild1, // #3 = $src3
/*574866*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574868*/              OPC_CheckPredicate, 9, // Predicate_load
/*574870*/              OPC_MoveParent,
/*574871*/              OPC_CheckType, MVT::f32,
/*574873*/              OPC_MoveParent,
/*574874*/              OPC_MoveParent,
/*574875*/              OPC_CheckType, MVT::v4f32,
/*574877*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*574879*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574882*/              OPC_EmitMergeInputChains1_2,
/*574883*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*574886*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*574894*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VFMSUB213SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574907*/            0, // EndSwitchOpcode
/*574908*/          /*Scope*/ 59, /*->574968*/
/*574909*/            OPC_MoveChild0,
/*574910*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574913*/            OPC_CheckChild0Same, 0,
/*574915*/            OPC_CheckChild1Integer, 0, 
/*574917*/            OPC_MoveParent,
/*574918*/            OPC_MoveChild1,
/*574919*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*574922*/            OPC_RecordMemRef,
/*574923*/            OPC_RecordNode, // #1 = 'ld' chained node
/*574924*/            OPC_CheckFoldableChainNode,
/*574925*/            OPC_RecordChild1, // #2 = $src3
/*574926*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574928*/            OPC_CheckPredicate, 9, // Predicate_load
/*574930*/            OPC_MoveParent,
/*574931*/            OPC_RecordChild2, // #3 = $src2
/*574932*/            OPC_CheckType, MVT::f32,
/*574934*/            OPC_MoveParent,
/*574935*/            OPC_MoveParent,
/*574936*/            OPC_CheckType, MVT::v4f32,
/*574938*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*574940*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*574943*/            OPC_EmitMergeInputChains1_1,
/*574944*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*574947*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*574955*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2))) - Complexity = 39
                      // Dst: (VFMSUB132SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*574968*/          /*Scope*/ 59, /*->575028*/
/*574969*/            OPC_RecordChild0, // #1 = $src2
/*574970*/            OPC_MoveChild1,
/*574971*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*574974*/            OPC_RecordMemRef,
/*574975*/            OPC_RecordNode, // #2 = 'ld' chained node
/*574976*/            OPC_CheckFoldableChainNode,
/*574977*/            OPC_RecordChild1, // #3 = $src3
/*574978*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*574980*/            OPC_CheckPredicate, 9, // Predicate_load
/*574982*/            OPC_MoveParent,
/*574983*/            OPC_MoveChild2,
/*574984*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*574987*/            OPC_CheckChild0Same, 0,
/*574989*/            OPC_CheckChild1Integer, 0, 
/*574991*/            OPC_MoveParent,
/*574992*/            OPC_CheckType, MVT::f32,
/*574994*/            OPC_MoveParent,
/*574995*/            OPC_MoveParent,
/*574996*/            OPC_CheckType, MVT::v4f32,
/*574998*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*575000*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575003*/            OPC_EmitMergeInputChains1_2,
/*575004*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*575007*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*575015*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                      // Dst: (VFMSUB231SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575028*/          /*Scope*/ 42|128,2/*298*/, /*->575328*/
/*575030*/            OPC_MoveChild0,
/*575031*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->575124
/*575035*/              OPC_CheckChild0Same, 0,
/*575037*/              OPC_CheckChild1Integer, 0, 
/*575039*/              OPC_MoveParent,
/*575040*/              OPC_RecordChild1, // #1 = $src2
/*575041*/              OPC_MoveChild2,
/*575042*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*575045*/              OPC_RecordMemRef,
/*575046*/              OPC_RecordNode, // #2 = 'ld' chained node
/*575047*/              OPC_CheckFoldableChainNode,
/*575048*/              OPC_RecordChild1, // #3 = $src3
/*575049*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*575051*/              OPC_CheckPredicate, 9, // Predicate_load
/*575053*/              OPC_MoveParent,
/*575054*/              OPC_CheckType, MVT::f32,
/*575056*/              OPC_MoveParent,
/*575057*/              OPC_MoveParent,
/*575058*/              OPC_CheckType, MVT::v4f32,
/*575060*/              OPC_Scope, 30, /*->575092*/ // 2 children in Scope
/*575062*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*575064*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575067*/                OPC_EmitMergeInputChains1_2,
/*575068*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*575071*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*575079*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFMSUB213SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575092*/              /*Scope*/ 30, /*->575123*/
/*575093*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*575095*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575098*/                OPC_EmitMergeInputChains1_2,
/*575099*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*575102*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*575110*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFMSUB213SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575123*/              0, /*End of Scope*/
/*575124*/            /*SwitchOpcode*/ 71|128,1/*199*/, TARGET_VAL(ISD::LOAD),// ->575327
/*575128*/              OPC_RecordMemRef,
/*575129*/              OPC_RecordNode, // #1 = 'ld' chained node
/*575130*/              OPC_CheckFoldableChainNode,
/*575131*/              OPC_RecordChild1, // #2 = $src3
/*575132*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*575134*/              OPC_CheckPredicate, 9, // Predicate_load
/*575136*/              OPC_MoveParent,
/*575137*/              OPC_Scope, 46, /*->575185*/ // 4 children in Scope
/*575139*/                OPC_MoveChild1,
/*575140*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575143*/                OPC_CheckChild0Same, 0,
/*575145*/                OPC_CheckChild1Integer, 0, 
/*575147*/                OPC_MoveParent,
/*575148*/                OPC_RecordChild2, // #3 = $src2
/*575149*/                OPC_CheckType, MVT::f32,
/*575151*/                OPC_MoveParent,
/*575152*/                OPC_MoveParent,
/*575153*/                OPC_CheckType, MVT::v4f32,
/*575155*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*575157*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575160*/                OPC_EmitMergeInputChains1_1,
/*575161*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*575164*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*575172*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2))) - Complexity = 39
                          // Dst: (VFMSUB132SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575185*/              /*Scope*/ 46, /*->575232*/
/*575186*/                OPC_RecordChild1, // #3 = $src2
/*575187*/                OPC_MoveChild2,
/*575188*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575191*/                OPC_CheckChild0Same, 0,
/*575193*/                OPC_CheckChild1Integer, 0, 
/*575195*/                OPC_MoveParent,
/*575196*/                OPC_CheckType, MVT::f32,
/*575198*/                OPC_MoveParent,
/*575199*/                OPC_MoveParent,
/*575200*/                OPC_CheckType, MVT::v4f32,
/*575202*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*575204*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575207*/                OPC_EmitMergeInputChains1_1,
/*575208*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*575211*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*575219*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFMSUB231SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575232*/              /*Scope*/ 46, /*->575279*/
/*575233*/                OPC_MoveChild1,
/*575234*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575237*/                OPC_CheckChild0Same, 0,
/*575239*/                OPC_CheckChild1Integer, 0, 
/*575241*/                OPC_MoveParent,
/*575242*/                OPC_RecordChild2, // #3 = $src2
/*575243*/                OPC_CheckType, MVT::f32,
/*575245*/                OPC_MoveParent,
/*575246*/                OPC_MoveParent,
/*575247*/                OPC_CheckType, MVT::v4f32,
/*575249*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*575251*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575254*/                OPC_EmitMergeInputChains1_1,
/*575255*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*575258*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*575266*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2))) - Complexity = 39
                          // Dst: (VFMSUB132SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575279*/              /*Scope*/ 46, /*->575326*/
/*575280*/                OPC_RecordChild1, // #3 = $src2
/*575281*/                OPC_MoveChild2,
/*575282*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575285*/                OPC_CheckChild0Same, 0,
/*575287*/                OPC_CheckChild1Integer, 0, 
/*575289*/                OPC_MoveParent,
/*575290*/                OPC_CheckType, MVT::f32,
/*575292*/                OPC_MoveParent,
/*575293*/                OPC_MoveParent,
/*575294*/                OPC_CheckType, MVT::v4f32,
/*575296*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*575298*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575301*/                OPC_EmitMergeInputChains1_1,
/*575302*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*575305*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*575313*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFMSUB231SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575326*/              0, /*End of Scope*/
/*575327*/            0, // EndSwitchOpcode
/*575328*/          0, /*End of Scope*/
/*575329*/        /*SwitchOpcode*/ 21|128,5/*661*/, TARGET_VAL(X86ISD::FNMADD),// ->575994
/*575333*/          OPC_Scope, 59, /*->575394*/ // 6 children in Scope
/*575335*/            OPC_RecordChild0, // #1 = $src2
/*575336*/            OPC_MoveChild1,
/*575337*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575340*/            OPC_CheckChild0Same, 0,
/*575342*/            OPC_CheckChild1Integer, 0, 
/*575344*/            OPC_MoveParent,
/*575345*/            OPC_MoveChild2,
/*575346*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*575349*/            OPC_RecordMemRef,
/*575350*/            OPC_RecordNode, // #2 = 'ld' chained node
/*575351*/            OPC_CheckFoldableChainNode,
/*575352*/            OPC_RecordChild1, // #3 = $src3
/*575353*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*575355*/            OPC_CheckPredicate, 9, // Predicate_load
/*575357*/            OPC_MoveParent,
/*575358*/            OPC_CheckType, MVT::f32,
/*575360*/            OPC_MoveParent,
/*575361*/            OPC_MoveParent,
/*575362*/            OPC_CheckType, MVT::v4f32,
/*575364*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*575366*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575369*/            OPC_EmitMergeInputChains1_2,
/*575370*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*575373*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*575381*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VFNMADD213SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575394*/          /*Scope*/ 59, /*->575454*/
/*575395*/            OPC_MoveChild0,
/*575396*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575399*/            OPC_CheckChild0Same, 0,
/*575401*/            OPC_CheckChild1Integer, 0, 
/*575403*/            OPC_MoveParent,
/*575404*/            OPC_MoveChild1,
/*575405*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*575408*/            OPC_RecordMemRef,
/*575409*/            OPC_RecordNode, // #1 = 'ld' chained node
/*575410*/            OPC_CheckFoldableChainNode,
/*575411*/            OPC_RecordChild1, // #2 = $src3
/*575412*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*575414*/            OPC_CheckPredicate, 9, // Predicate_load
/*575416*/            OPC_MoveParent,
/*575417*/            OPC_RecordChild2, // #3 = $src2
/*575418*/            OPC_CheckType, MVT::f32,
/*575420*/            OPC_MoveParent,
/*575421*/            OPC_MoveParent,
/*575422*/            OPC_CheckType, MVT::v4f32,
/*575424*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*575426*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575429*/            OPC_EmitMergeInputChains1_1,
/*575430*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*575433*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*575441*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src2))) - Complexity = 39
                      // Dst: (VFNMADD132SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575454*/          /*Scope*/ 118, /*->575573*/
/*575455*/            OPC_RecordChild0, // #1 = $src2
/*575456*/            OPC_MoveChild1,
/*575457*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::LOAD),// ->575515
/*575461*/              OPC_RecordMemRef,
/*575462*/              OPC_RecordNode, // #2 = 'ld' chained node
/*575463*/              OPC_CheckFoldableChainNode,
/*575464*/              OPC_RecordChild1, // #3 = $src3
/*575465*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*575467*/              OPC_CheckPredicate, 9, // Predicate_load
/*575469*/              OPC_MoveParent,
/*575470*/              OPC_MoveChild2,
/*575471*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575474*/              OPC_CheckChild0Same, 0,
/*575476*/              OPC_CheckChild1Integer, 0, 
/*575478*/              OPC_MoveParent,
/*575479*/              OPC_CheckType, MVT::f32,
/*575481*/              OPC_MoveParent,
/*575482*/              OPC_MoveParent,
/*575483*/              OPC_CheckType, MVT::v4f32,
/*575485*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*575487*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575490*/              OPC_EmitMergeInputChains1_2,
/*575491*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*575494*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*575502*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VFNMADD231SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575515*/            /*SwitchOpcode*/ 54, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->575572
/*575518*/              OPC_CheckChild0Same, 0,
/*575520*/              OPC_CheckChild1Integer, 0, 
/*575522*/              OPC_MoveParent,
/*575523*/              OPC_MoveChild2,
/*575524*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*575527*/              OPC_RecordMemRef,
/*575528*/              OPC_RecordNode, // #2 = 'ld' chained node
/*575529*/              OPC_CheckFoldableChainNode,
/*575530*/              OPC_RecordChild1, // #3 = $src3
/*575531*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*575533*/              OPC_CheckPredicate, 9, // Predicate_load
/*575535*/              OPC_MoveParent,
/*575536*/              OPC_CheckType, MVT::f32,
/*575538*/              OPC_MoveParent,
/*575539*/              OPC_MoveParent,
/*575540*/              OPC_CheckType, MVT::v4f32,
/*575542*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*575544*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575547*/              OPC_EmitMergeInputChains1_2,
/*575548*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*575551*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*575559*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VFNMADD213SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575572*/            0, // EndSwitchOpcode
/*575573*/          /*Scope*/ 59, /*->575633*/
/*575574*/            OPC_MoveChild0,
/*575575*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575578*/            OPC_CheckChild0Same, 0,
/*575580*/            OPC_CheckChild1Integer, 0, 
/*575582*/            OPC_MoveParent,
/*575583*/            OPC_MoveChild1,
/*575584*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*575587*/            OPC_RecordMemRef,
/*575588*/            OPC_RecordNode, // #1 = 'ld' chained node
/*575589*/            OPC_CheckFoldableChainNode,
/*575590*/            OPC_RecordChild1, // #2 = $src3
/*575591*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*575593*/            OPC_CheckPredicate, 9, // Predicate_load
/*575595*/            OPC_MoveParent,
/*575596*/            OPC_RecordChild2, // #3 = $src2
/*575597*/            OPC_CheckType, MVT::f32,
/*575599*/            OPC_MoveParent,
/*575600*/            OPC_MoveParent,
/*575601*/            OPC_CheckType, MVT::v4f32,
/*575603*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*575605*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575608*/            OPC_EmitMergeInputChains1_1,
/*575609*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*575612*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*575620*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2))) - Complexity = 39
                      // Dst: (VFNMADD132SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575633*/          /*Scope*/ 59, /*->575693*/
/*575634*/            OPC_RecordChild0, // #1 = $src2
/*575635*/            OPC_MoveChild1,
/*575636*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*575639*/            OPC_RecordMemRef,
/*575640*/            OPC_RecordNode, // #2 = 'ld' chained node
/*575641*/            OPC_CheckFoldableChainNode,
/*575642*/            OPC_RecordChild1, // #3 = $src3
/*575643*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*575645*/            OPC_CheckPredicate, 9, // Predicate_load
/*575647*/            OPC_MoveParent,
/*575648*/            OPC_MoveChild2,
/*575649*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575652*/            OPC_CheckChild0Same, 0,
/*575654*/            OPC_CheckChild1Integer, 0, 
/*575656*/            OPC_MoveParent,
/*575657*/            OPC_CheckType, MVT::f32,
/*575659*/            OPC_MoveParent,
/*575660*/            OPC_MoveParent,
/*575661*/            OPC_CheckType, MVT::v4f32,
/*575663*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*575665*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575668*/            OPC_EmitMergeInputChains1_2,
/*575669*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*575672*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*575680*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                      // Dst: (VFNMADD231SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575693*/          /*Scope*/ 42|128,2/*298*/, /*->575993*/
/*575695*/            OPC_MoveChild0,
/*575696*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->575789
/*575700*/              OPC_CheckChild0Same, 0,
/*575702*/              OPC_CheckChild1Integer, 0, 
/*575704*/              OPC_MoveParent,
/*575705*/              OPC_RecordChild1, // #1 = $src2
/*575706*/              OPC_MoveChild2,
/*575707*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*575710*/              OPC_RecordMemRef,
/*575711*/              OPC_RecordNode, // #2 = 'ld' chained node
/*575712*/              OPC_CheckFoldableChainNode,
/*575713*/              OPC_RecordChild1, // #3 = $src3
/*575714*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*575716*/              OPC_CheckPredicate, 9, // Predicate_load
/*575718*/              OPC_MoveParent,
/*575719*/              OPC_CheckType, MVT::f32,
/*575721*/              OPC_MoveParent,
/*575722*/              OPC_MoveParent,
/*575723*/              OPC_CheckType, MVT::v4f32,
/*575725*/              OPC_Scope, 30, /*->575757*/ // 2 children in Scope
/*575727*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*575729*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575732*/                OPC_EmitMergeInputChains1_2,
/*575733*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*575736*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*575744*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFNMADD213SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575757*/              /*Scope*/ 30, /*->575788*/
/*575758*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*575760*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575763*/                OPC_EmitMergeInputChains1_2,
/*575764*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*575767*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*575775*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFNMADD213SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575788*/              0, /*End of Scope*/
/*575789*/            /*SwitchOpcode*/ 71|128,1/*199*/, TARGET_VAL(ISD::LOAD),// ->575992
/*575793*/              OPC_RecordMemRef,
/*575794*/              OPC_RecordNode, // #1 = 'ld' chained node
/*575795*/              OPC_CheckFoldableChainNode,
/*575796*/              OPC_RecordChild1, // #2 = $src3
/*575797*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*575799*/              OPC_CheckPredicate, 9, // Predicate_load
/*575801*/              OPC_MoveParent,
/*575802*/              OPC_Scope, 46, /*->575850*/ // 4 children in Scope
/*575804*/                OPC_MoveChild1,
/*575805*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575808*/                OPC_CheckChild0Same, 0,
/*575810*/                OPC_CheckChild1Integer, 0, 
/*575812*/                OPC_MoveParent,
/*575813*/                OPC_RecordChild2, // #3 = $src2
/*575814*/                OPC_CheckType, MVT::f32,
/*575816*/                OPC_MoveParent,
/*575817*/                OPC_MoveParent,
/*575818*/                OPC_CheckType, MVT::v4f32,
/*575820*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*575822*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575825*/                OPC_EmitMergeInputChains1_1,
/*575826*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*575829*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*575837*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2))) - Complexity = 39
                          // Dst: (VFNMADD132SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575850*/              /*Scope*/ 46, /*->575897*/
/*575851*/                OPC_RecordChild1, // #3 = $src2
/*575852*/                OPC_MoveChild2,
/*575853*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575856*/                OPC_CheckChild0Same, 0,
/*575858*/                OPC_CheckChild1Integer, 0, 
/*575860*/                OPC_MoveParent,
/*575861*/                OPC_CheckType, MVT::f32,
/*575863*/                OPC_MoveParent,
/*575864*/                OPC_MoveParent,
/*575865*/                OPC_CheckType, MVT::v4f32,
/*575867*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*575869*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575872*/                OPC_EmitMergeInputChains1_1,
/*575873*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*575876*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*575884*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFNMADD231SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575897*/              /*Scope*/ 46, /*->575944*/
/*575898*/                OPC_MoveChild1,
/*575899*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575902*/                OPC_CheckChild0Same, 0,
/*575904*/                OPC_CheckChild1Integer, 0, 
/*575906*/                OPC_MoveParent,
/*575907*/                OPC_RecordChild2, // #3 = $src2
/*575908*/                OPC_CheckType, MVT::f32,
/*575910*/                OPC_MoveParent,
/*575911*/                OPC_MoveParent,
/*575912*/                OPC_CheckType, MVT::v4f32,
/*575914*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*575916*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575919*/                OPC_EmitMergeInputChains1_1,
/*575920*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*575923*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*575931*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2))) - Complexity = 39
                          // Dst: (VFNMADD132SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575944*/              /*Scope*/ 46, /*->575991*/
/*575945*/                OPC_RecordChild1, // #3 = $src2
/*575946*/                OPC_MoveChild2,
/*575947*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*575950*/                OPC_CheckChild0Same, 0,
/*575952*/                OPC_CheckChild1Integer, 0, 
/*575954*/                OPC_MoveParent,
/*575955*/                OPC_CheckType, MVT::f32,
/*575957*/                OPC_MoveParent,
/*575958*/                OPC_MoveParent,
/*575959*/                OPC_CheckType, MVT::v4f32,
/*575961*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*575963*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*575966*/                OPC_EmitMergeInputChains1_1,
/*575967*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*575970*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*575978*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFNMADD231SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*575991*/              0, /*End of Scope*/
/*575992*/            0, // EndSwitchOpcode
/*575993*/          0, /*End of Scope*/
/*575994*/        /*SwitchOpcode*/ 21|128,5/*661*/, TARGET_VAL(X86ISD::FNMSUB),// ->576659
/*575998*/          OPC_Scope, 59, /*->576059*/ // 6 children in Scope
/*576000*/            OPC_RecordChild0, // #1 = $src2
/*576001*/            OPC_MoveChild1,
/*576002*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*576005*/            OPC_CheckChild0Same, 0,
/*576007*/            OPC_CheckChild1Integer, 0, 
/*576009*/            OPC_MoveParent,
/*576010*/            OPC_MoveChild2,
/*576011*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*576014*/            OPC_RecordMemRef,
/*576015*/            OPC_RecordNode, // #2 = 'ld' chained node
/*576016*/            OPC_CheckFoldableChainNode,
/*576017*/            OPC_RecordChild1, // #3 = $src3
/*576018*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576020*/            OPC_CheckPredicate, 9, // Predicate_load
/*576022*/            OPC_MoveParent,
/*576023*/            OPC_CheckType, MVT::f32,
/*576025*/            OPC_MoveParent,
/*576026*/            OPC_MoveParent,
/*576027*/            OPC_CheckType, MVT::v4f32,
/*576029*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*576031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576034*/            OPC_EmitMergeInputChains1_2,
/*576035*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*576038*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*576046*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VFNMSUB213SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576059*/          /*Scope*/ 59, /*->576119*/
/*576060*/            OPC_MoveChild0,
/*576061*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*576064*/            OPC_CheckChild0Same, 0,
/*576066*/            OPC_CheckChild1Integer, 0, 
/*576068*/            OPC_MoveParent,
/*576069*/            OPC_MoveChild1,
/*576070*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*576073*/            OPC_RecordMemRef,
/*576074*/            OPC_RecordNode, // #1 = 'ld' chained node
/*576075*/            OPC_CheckFoldableChainNode,
/*576076*/            OPC_RecordChild1, // #2 = $src3
/*576077*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576079*/            OPC_CheckPredicate, 9, // Predicate_load
/*576081*/            OPC_MoveParent,
/*576082*/            OPC_RecordChild2, // #3 = $src2
/*576083*/            OPC_CheckType, MVT::f32,
/*576085*/            OPC_MoveParent,
/*576086*/            OPC_MoveParent,
/*576087*/            OPC_CheckType, MVT::v4f32,
/*576089*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*576091*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576094*/            OPC_EmitMergeInputChains1_1,
/*576095*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*576098*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*576106*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src2))) - Complexity = 39
                      // Dst: (VFNMSUB132SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576119*/          /*Scope*/ 118, /*->576238*/
/*576120*/            OPC_RecordChild0, // #1 = $src2
/*576121*/            OPC_MoveChild1,
/*576122*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::LOAD),// ->576180
/*576126*/              OPC_RecordMemRef,
/*576127*/              OPC_RecordNode, // #2 = 'ld' chained node
/*576128*/              OPC_CheckFoldableChainNode,
/*576129*/              OPC_RecordChild1, // #3 = $src3
/*576130*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576132*/              OPC_CheckPredicate, 9, // Predicate_load
/*576134*/              OPC_MoveParent,
/*576135*/              OPC_MoveChild2,
/*576136*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*576139*/              OPC_CheckChild0Same, 0,
/*576141*/              OPC_CheckChild1Integer, 0, 
/*576143*/              OPC_MoveParent,
/*576144*/              OPC_CheckType, MVT::f32,
/*576146*/              OPC_MoveParent,
/*576147*/              OPC_MoveParent,
/*576148*/              OPC_CheckType, MVT::v4f32,
/*576150*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*576152*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576155*/              OPC_EmitMergeInputChains1_2,
/*576156*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*576159*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*576167*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VFNMSUB231SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576180*/            /*SwitchOpcode*/ 54, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->576237
/*576183*/              OPC_CheckChild0Same, 0,
/*576185*/              OPC_CheckChild1Integer, 0, 
/*576187*/              OPC_MoveParent,
/*576188*/              OPC_MoveChild2,
/*576189*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*576192*/              OPC_RecordMemRef,
/*576193*/              OPC_RecordNode, // #2 = 'ld' chained node
/*576194*/              OPC_CheckFoldableChainNode,
/*576195*/              OPC_RecordChild1, // #3 = $src3
/*576196*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576198*/              OPC_CheckPredicate, 9, // Predicate_load
/*576200*/              OPC_MoveParent,
/*576201*/              OPC_CheckType, MVT::f32,
/*576203*/              OPC_MoveParent,
/*576204*/              OPC_MoveParent,
/*576205*/              OPC_CheckType, MVT::v4f32,
/*576207*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*576209*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576212*/              OPC_EmitMergeInputChains1_2,
/*576213*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*576216*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*576224*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VFNMSUB213SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576237*/            0, // EndSwitchOpcode
/*576238*/          /*Scope*/ 59, /*->576298*/
/*576239*/            OPC_MoveChild0,
/*576240*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*576243*/            OPC_CheckChild0Same, 0,
/*576245*/            OPC_CheckChild1Integer, 0, 
/*576247*/            OPC_MoveParent,
/*576248*/            OPC_MoveChild1,
/*576249*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*576252*/            OPC_RecordMemRef,
/*576253*/            OPC_RecordNode, // #1 = 'ld' chained node
/*576254*/            OPC_CheckFoldableChainNode,
/*576255*/            OPC_RecordChild1, // #2 = $src3
/*576256*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576258*/            OPC_CheckPredicate, 9, // Predicate_load
/*576260*/            OPC_MoveParent,
/*576261*/            OPC_RecordChild2, // #3 = $src2
/*576262*/            OPC_CheckType, MVT::f32,
/*576264*/            OPC_MoveParent,
/*576265*/            OPC_MoveParent,
/*576266*/            OPC_CheckType, MVT::v4f32,
/*576268*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*576270*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576273*/            OPC_EmitMergeInputChains1_1,
/*576274*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*576277*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*576285*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2))) - Complexity = 39
                      // Dst: (VFNMSUB132SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576298*/          /*Scope*/ 59, /*->576358*/
/*576299*/            OPC_RecordChild0, // #1 = $src2
/*576300*/            OPC_MoveChild1,
/*576301*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*576304*/            OPC_RecordMemRef,
/*576305*/            OPC_RecordNode, // #2 = 'ld' chained node
/*576306*/            OPC_CheckFoldableChainNode,
/*576307*/            OPC_RecordChild1, // #3 = $src3
/*576308*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576310*/            OPC_CheckPredicate, 9, // Predicate_load
/*576312*/            OPC_MoveParent,
/*576313*/            OPC_MoveChild2,
/*576314*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*576317*/            OPC_CheckChild0Same, 0,
/*576319*/            OPC_CheckChild1Integer, 0, 
/*576321*/            OPC_MoveParent,
/*576322*/            OPC_CheckType, MVT::f32,
/*576324*/            OPC_MoveParent,
/*576325*/            OPC_MoveParent,
/*576326*/            OPC_CheckType, MVT::v4f32,
/*576328*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*576330*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576333*/            OPC_EmitMergeInputChains1_2,
/*576334*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*576337*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*576345*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                      // Dst: (VFNMSUB231SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576358*/          /*Scope*/ 42|128,2/*298*/, /*->576658*/
/*576360*/            OPC_MoveChild0,
/*576361*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->576454
/*576365*/              OPC_CheckChild0Same, 0,
/*576367*/              OPC_CheckChild1Integer, 0, 
/*576369*/              OPC_MoveParent,
/*576370*/              OPC_RecordChild1, // #1 = $src2
/*576371*/              OPC_MoveChild2,
/*576372*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*576375*/              OPC_RecordMemRef,
/*576376*/              OPC_RecordNode, // #2 = 'ld' chained node
/*576377*/              OPC_CheckFoldableChainNode,
/*576378*/              OPC_RecordChild1, // #3 = $src3
/*576379*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576381*/              OPC_CheckPredicate, 9, // Predicate_load
/*576383*/              OPC_MoveParent,
/*576384*/              OPC_CheckType, MVT::f32,
/*576386*/              OPC_MoveParent,
/*576387*/              OPC_MoveParent,
/*576388*/              OPC_CheckType, MVT::v4f32,
/*576390*/              OPC_Scope, 30, /*->576422*/ // 2 children in Scope
/*576392*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*576394*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576397*/                OPC_EmitMergeInputChains1_2,
/*576398*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*576401*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*576409*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFNMSUB213SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576422*/              /*Scope*/ 30, /*->576453*/
/*576423*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*576425*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576428*/                OPC_EmitMergeInputChains1_2,
/*576429*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*576432*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*576440*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFNMSUB213SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576453*/              0, /*End of Scope*/
/*576454*/            /*SwitchOpcode*/ 71|128,1/*199*/, TARGET_VAL(ISD::LOAD),// ->576657
/*576458*/              OPC_RecordMemRef,
/*576459*/              OPC_RecordNode, // #1 = 'ld' chained node
/*576460*/              OPC_CheckFoldableChainNode,
/*576461*/              OPC_RecordChild1, // #2 = $src3
/*576462*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576464*/              OPC_CheckPredicate, 9, // Predicate_load
/*576466*/              OPC_MoveParent,
/*576467*/              OPC_Scope, 46, /*->576515*/ // 4 children in Scope
/*576469*/                OPC_MoveChild1,
/*576470*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*576473*/                OPC_CheckChild0Same, 0,
/*576475*/                OPC_CheckChild1Integer, 0, 
/*576477*/                OPC_MoveParent,
/*576478*/                OPC_RecordChild2, // #3 = $src2
/*576479*/                OPC_CheckType, MVT::f32,
/*576481*/                OPC_MoveParent,
/*576482*/                OPC_MoveParent,
/*576483*/                OPC_CheckType, MVT::v4f32,
/*576485*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*576487*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576490*/                OPC_EmitMergeInputChains1_1,
/*576491*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*576494*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*576502*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2))) - Complexity = 39
                          // Dst: (VFNMSUB132SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576515*/              /*Scope*/ 46, /*->576562*/
/*576516*/                OPC_RecordChild1, // #3 = $src2
/*576517*/                OPC_MoveChild2,
/*576518*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*576521*/                OPC_CheckChild0Same, 0,
/*576523*/                OPC_CheckChild1Integer, 0, 
/*576525*/                OPC_MoveParent,
/*576526*/                OPC_CheckType, MVT::f32,
/*576528*/                OPC_MoveParent,
/*576529*/                OPC_MoveParent,
/*576530*/                OPC_CheckType, MVT::v4f32,
/*576532*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*576534*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576537*/                OPC_EmitMergeInputChains1_1,
/*576538*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*576541*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*576549*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFNMSUB231SSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576562*/              /*Scope*/ 46, /*->576609*/
/*576563*/                OPC_MoveChild1,
/*576564*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*576567*/                OPC_CheckChild0Same, 0,
/*576569*/                OPC_CheckChild1Integer, 0, 
/*576571*/                OPC_MoveParent,
/*576572*/                OPC_RecordChild2, // #3 = $src2
/*576573*/                OPC_CheckType, MVT::f32,
/*576575*/                OPC_MoveParent,
/*576576*/                OPC_MoveParent,
/*576577*/                OPC_CheckType, MVT::v4f32,
/*576579*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*576581*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576584*/                OPC_EmitMergeInputChains1_1,
/*576585*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*576588*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*576596*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2))) - Complexity = 39
                          // Dst: (VFNMSUB132SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576609*/              /*Scope*/ 46, /*->576656*/
/*576610*/                OPC_RecordChild1, // #3 = $src2
/*576611*/                OPC_MoveChild2,
/*576612*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*576615*/                OPC_CheckChild0Same, 0,
/*576617*/                OPC_CheckChild1Integer, 0, 
/*576619*/                OPC_MoveParent,
/*576620*/                OPC_CheckType, MVT::f32,
/*576622*/                OPC_MoveParent,
/*576623*/                OPC_MoveParent,
/*576624*/                OPC_CheckType, MVT::v4f32,
/*576626*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*576628*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*576631*/                OPC_EmitMergeInputChains1_1,
/*576632*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*576635*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*576643*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFNMSUB231SSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v4f32] }:$src3)
/*576656*/              0, /*End of Scope*/
/*576657*/            0, // EndSwitchOpcode
/*576658*/          0, /*End of Scope*/
/*576659*/        /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(ISD::SINT_TO_FP),// ->576815
/*576663*/          OPC_MoveChild0,
/*576664*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*576667*/          OPC_RecordMemRef,
/*576668*/          OPC_RecordNode, // #1 = 'ld' chained node
/*576669*/          OPC_CheckFoldableChainNode,
/*576670*/          OPC_RecordChild1, // #2 = $src
/*576671*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576673*/          OPC_SwitchType /*2 cases */, 68, MVT::i64,// ->576744
/*576676*/            OPC_CheckPredicate, 9, // Predicate_load
/*576678*/            OPC_MoveParent,
/*576679*/            OPC_CheckType, MVT::f32,
/*576681*/            OPC_MoveParent,
/*576682*/            OPC_MoveParent,
/*576683*/            OPC_CheckType, MVT::v4f32,
/*576685*/            OPC_Scope, 18, /*->576705*/ // 3 children in Scope
/*576687*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*576689*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*576692*/              OPC_EmitMergeInputChains1_1,
/*576693*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VCVTSI642SSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*576705*/            /*Scope*/ 18, /*->576724*/
/*576706*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*576708*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*576711*/              OPC_EmitMergeInputChains1_1,
/*576712*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (CVTSI642SSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*576724*/            /*Scope*/ 18, /*->576743*/
/*576725*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*576727*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*576730*/              OPC_EmitMergeInputChains1_1,
/*576731*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VCVTSI642SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*576743*/            0, /*End of Scope*/
/*576744*/          /*SwitchType*/ 68, MVT::i32,// ->576814
/*576746*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*576748*/            OPC_MoveParent,
/*576749*/            OPC_CheckType, MVT::f32,
/*576751*/            OPC_MoveParent,
/*576752*/            OPC_MoveParent,
/*576753*/            OPC_CheckType, MVT::v4f32,
/*576755*/            OPC_Scope, 18, /*->576775*/ // 3 children in Scope
/*576757*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*576759*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*576762*/              OPC_EmitMergeInputChains1_1,
/*576763*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                        // Dst: (VCVTSI2SSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*576775*/            /*Scope*/ 18, /*->576794*/
/*576776*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*576778*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*576781*/              OPC_EmitMergeInputChains1_1,
/*576782*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                        // Dst: (CVTSI2SSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*576794*/            /*Scope*/ 18, /*->576813*/
/*576795*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*576797*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*576800*/              OPC_EmitMergeInputChains1_1,
/*576801*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                        // Dst: (VCVTSI2SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*576813*/            0, /*End of Scope*/
/*576814*/          0, // EndSwitchType
/*576815*/        /*SwitchOpcode*/ 70, TARGET_VAL(ISD::UINT_TO_FP),// ->576888
/*576818*/          OPC_MoveChild0,
/*576819*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*576822*/          OPC_RecordMemRef,
/*576823*/          OPC_RecordNode, // #1 = 'ld' chained node
/*576824*/          OPC_CheckFoldableChainNode,
/*576825*/          OPC_RecordChild1, // #2 = $src
/*576826*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576828*/          OPC_SwitchType /*2 cases */, 27, MVT::i64,// ->576858
/*576831*/            OPC_CheckPredicate, 9, // Predicate_load
/*576833*/            OPC_MoveParent,
/*576834*/            OPC_CheckType, MVT::f32,
/*576836*/            OPC_MoveParent,
/*576837*/            OPC_MoveParent,
/*576838*/            OPC_CheckType, MVT::v4f32,
/*576840*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*576842*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*576845*/            OPC_EmitMergeInputChains1_1,
/*576846*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (uint_to_fp:{ *:[f32] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VCVTUSI642SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*576858*/          /*SwitchType*/ 27, MVT::i32,// ->576887
/*576860*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*576862*/            OPC_MoveParent,
/*576863*/            OPC_CheckType, MVT::f32,
/*576865*/            OPC_MoveParent,
/*576866*/            OPC_MoveParent,
/*576867*/            OPC_CheckType, MVT::v4f32,
/*576869*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*576871*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*576874*/            OPC_EmitMergeInputChains1_1,
/*576875*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (uint_to_fp:{ *:[f32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VCVTUSI2SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*576887*/          0, // EndSwitchType
/*576888*/        0, // EndSwitchOpcode
/*576889*/      /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->576927
/*576892*/        OPC_RecordMemRef,
/*576893*/        OPC_RecordNode, // #1 = 'ld' chained node
/*576894*/        OPC_CheckFoldableChainNode,
/*576895*/        OPC_RecordChild1, // #2 = $src2
/*576896*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576898*/        OPC_CheckPredicate, 9, // Predicate_load
/*576900*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*576902*/        OPC_MoveParent,
/*576903*/        OPC_CheckType, MVT::v4f32,
/*576905*/        OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*576907*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*576910*/        OPC_EmitMergeInputChains1_1,
/*576911*/        OPC_EmitInteger, MVT::i8, 1, 
/*576914*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VBLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, 1:{ *:[i8] })
/*576927*/      0, // EndSwitchOpcode
/*576928*/    /*Scope*/ 40, /*->576969*/
/*576929*/      OPC_MoveChild0,
/*576930*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*576933*/      OPC_RecordMemRef,
/*576934*/      OPC_RecordNode, // #0 = 'ld' chained node
/*576935*/      OPC_CheckFoldableChainNode,
/*576936*/      OPC_RecordChild1, // #1 = $src2
/*576937*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576939*/      OPC_CheckPredicate, 9, // Predicate_load
/*576941*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*576943*/      OPC_MoveParent,
/*576944*/      OPC_RecordChild1, // #2 = $src1
/*576945*/      OPC_CheckType, MVT::v4f32,
/*576947*/      OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*576949*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*576952*/      OPC_EmitMergeInputChains1_0,
/*576953*/      OPC_EmitInteger, MVT::i8, 14, 
/*576956*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Movss:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                // Dst: (VBLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, 14:{ *:[i8] })
/*576969*/    /*Scope*/ 42, /*->577012*/
/*576970*/      OPC_RecordChild0, // #0 = $src1
/*576971*/      OPC_MoveChild1,
/*576972*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*576975*/      OPC_RecordMemRef,
/*576976*/      OPC_RecordNode, // #1 = 'ld' chained node
/*576977*/      OPC_CheckFoldableChainNode,
/*576978*/      OPC_RecordChild1, // #2 = $src2
/*576979*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*576981*/      OPC_CheckPredicate, 9, // Predicate_load
/*576983*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*576985*/      OPC_CheckPredicate, 48, // Predicate_memop
/*576987*/      OPC_MoveParent,
/*576988*/      OPC_CheckType, MVT::v4f32,
/*576990*/      OPC_CheckPatternPredicate, 128, // (!MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*576992*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*576995*/      OPC_EmitMergeInputChains1_1,
/*576996*/      OPC_EmitInteger, MVT::i8, 1, 
/*576999*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (BLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, 1:{ *:[i8] })
/*577012*/    /*Scope*/ 42, /*->577055*/
/*577013*/      OPC_MoveChild0,
/*577014*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*577017*/      OPC_RecordMemRef,
/*577018*/      OPC_RecordNode, // #0 = 'ld' chained node
/*577019*/      OPC_CheckFoldableChainNode,
/*577020*/      OPC_RecordChild1, // #1 = $src2
/*577021*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*577023*/      OPC_CheckPredicate, 9, // Predicate_load
/*577025*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*577027*/      OPC_CheckPredicate, 48, // Predicate_memop
/*577029*/      OPC_MoveParent,
/*577030*/      OPC_RecordChild1, // #2 = $src1
/*577031*/      OPC_CheckType, MVT::v4f32,
/*577033*/      OPC_CheckPatternPredicate, 128, // (!MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*577035*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*577038*/      OPC_EmitMergeInputChains1_0,
/*577039*/      OPC_EmitInteger, MVT::i8, 14, 
/*577042*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Movss:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                // Dst: (BLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, 14:{ *:[i8] })
/*577055*/    /*Scope*/ 41|128,35/*4521*/, /*->581578*/
/*577057*/      OPC_RecordChild0, // #0 = $src1
/*577058*/      OPC_Scope, 95|128,34/*4447*/, /*->581508*/ // 2 children in Scope
/*577061*/        OPC_MoveChild1,
/*577062*/        OPC_SwitchOpcode /*2 cases */, 23|128,34/*4375*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->581442
/*577067*/          OPC_MoveChild0,
/*577068*/          OPC_SwitchOpcode /*19 cases */, 114|128,11/*1522*/, TARGET_VAL(X86ISD::SELECTS),// ->578595
/*577073*/            OPC_RecordChild0, // #1 = $mask
/*577074*/            OPC_Scope, 31|128,11/*1439*/, /*->578516*/ // 2 children in Scope
/*577077*/              OPC_MoveChild1,
/*577078*/              OPC_SwitchOpcode /*10 cases */, 39, TARGET_VAL(ISD::FFLOOR),// ->577121
/*577082*/                OPC_MoveChild0,
/*577083*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577086*/                OPC_RecordChild0, // #2 = $src2
/*577087*/                OPC_CheckChild0Type, MVT::v4f32,
/*577089*/                OPC_CheckChild1Integer, 0, 
/*577091*/                OPC_MoveParent,
/*577092*/                OPC_MoveParent,
/*577093*/                OPC_MoveChild2,
/*577094*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577097*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577099*/                OPC_MoveParent,
/*577100*/                OPC_CheckType, MVT::f32,
/*577102*/                OPC_MoveParent,
/*577103*/                OPC_MoveParent,
/*577104*/                OPC_CheckType, MVT::v4f32,
/*577106*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577108*/                OPC_EmitInteger, MVT::i32, 1, 
/*577111*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Intkz), 0,
                              MVT::v4f32, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (ffloor:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src2, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                          // Dst: (VRNDSCALESSZr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, v4f32:{ *:[v4f32] }:$src2, 1:{ *:[i32] })
/*577121*/              /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FCEIL),// ->577163
/*577124*/                OPC_MoveChild0,
/*577125*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577128*/                OPC_RecordChild0, // #2 = $src2
/*577129*/                OPC_CheckChild0Type, MVT::v4f32,
/*577131*/                OPC_CheckChild1Integer, 0, 
/*577133*/                OPC_MoveParent,
/*577134*/                OPC_MoveParent,
/*577135*/                OPC_MoveChild2,
/*577136*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577139*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577141*/                OPC_MoveParent,
/*577142*/                OPC_CheckType, MVT::f32,
/*577144*/                OPC_MoveParent,
/*577145*/                OPC_MoveParent,
/*577146*/                OPC_CheckType, MVT::v4f32,
/*577148*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577150*/                OPC_EmitInteger, MVT::i32, 2, 
/*577153*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Intkz), 0,
                              MVT::v4f32, 4/*#Ops*/, 1, 0, 2, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fceil:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src2, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                          // Dst: (VRNDSCALESSZr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, v4f32:{ *:[v4f32] }:$src2, 2:{ *:[i32] })
/*577163*/              /*SwitchOpcode*/ 74|128,1/*202*/, TARGET_VAL(ISD::FADD),// ->577369
/*577167*/                OPC_Scope, 46, /*->577215*/ // 4 children in Scope
/*577169*/                  OPC_MoveChild0,
/*577170*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577173*/                  OPC_CheckChild0Same, 0,
/*577175*/                  OPC_CheckChild1Integer, 0, 
/*577177*/                  OPC_MoveParent,
/*577178*/                  OPC_RecordChild1, // #2 = $src2
/*577179*/                  OPC_MoveParent,
/*577180*/                  OPC_MoveChild2,
/*577181*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577184*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577186*/                  OPC_MoveParent,
/*577187*/                  OPC_CheckType, MVT::f32,
/*577189*/                  OPC_MoveParent,
/*577190*/                  OPC_MoveParent,
/*577191*/                  OPC_CheckType, MVT::v4f32,
/*577193*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577195*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577198*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*577206*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Intkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 1, 0, 4, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                            // Dst: (VADDSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577215*/                /*Scope*/ 46, /*->577262*/
/*577216*/                  OPC_RecordChild0, // #2 = $src2
/*577217*/                  OPC_MoveChild1,
/*577218*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577221*/                  OPC_CheckChild0Same, 0,
/*577223*/                  OPC_CheckChild1Integer, 0, 
/*577225*/                  OPC_MoveParent,
/*577226*/                  OPC_MoveParent,
/*577227*/                  OPC_MoveChild2,
/*577228*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577231*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577233*/                  OPC_MoveParent,
/*577234*/                  OPC_CheckType, MVT::f32,
/*577236*/                  OPC_MoveParent,
/*577237*/                  OPC_MoveParent,
/*577238*/                  OPC_CheckType, MVT::v4f32,
/*577240*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577242*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577245*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*577253*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Intkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 1, 0, 4, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                            // Dst: (VADDSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577262*/                /*Scope*/ 52, /*->577315*/
/*577263*/                  OPC_MoveChild0,
/*577264*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577267*/                  OPC_CheckChild0Same, 0,
/*577269*/                  OPC_CheckChild1Integer, 0, 
/*577271*/                  OPC_MoveParent,
/*577272*/                  OPC_RecordChild1, // #2 = $src2
/*577273*/                  OPC_MoveParent,
/*577274*/                  OPC_RecordChild2, // #3 = $src0
/*577275*/                  OPC_CheckType, MVT::f32,
/*577277*/                  OPC_MoveParent,
/*577278*/                  OPC_MoveParent,
/*577279*/                  OPC_CheckType, MVT::v4f32,
/*577281*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577283*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577286*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*577294*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577297*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*577305*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 5, 1, 0, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), FR32X:{ *:[f32] }:$src0))) - Complexity = 20
                            // Dst: (VADDSSZrr_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577315*/                /*Scope*/ 52, /*->577368*/
/*577316*/                  OPC_RecordChild0, // #2 = $src2
/*577317*/                  OPC_MoveChild1,
/*577318*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577321*/                  OPC_CheckChild0Same, 0,
/*577323*/                  OPC_CheckChild1Integer, 0, 
/*577325*/                  OPC_MoveParent,
/*577326*/                  OPC_MoveParent,
/*577327*/                  OPC_RecordChild2, // #3 = $src0
/*577328*/                  OPC_CheckType, MVT::f32,
/*577330*/                  OPC_MoveParent,
/*577331*/                  OPC_MoveParent,
/*577332*/                  OPC_CheckType, MVT::v4f32,
/*577334*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577336*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577339*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*577347*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577350*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*577358*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 5, 1, 0, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), FR32X:{ *:[f32] }:$src0))) - Complexity = 20
                            // Dst: (VADDSSZrr_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577368*/                0, /*End of Scope*/
/*577369*/              /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FSUB),// ->577463
/*577372*/                OPC_MoveChild0,
/*577373*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577376*/                OPC_CheckChild0Same, 0,
/*577378*/                OPC_CheckChild1Integer, 0, 
/*577380*/                OPC_MoveParent,
/*577381*/                OPC_RecordChild1, // #2 = $src2
/*577382*/                OPC_MoveParent,
/*577383*/                OPC_Scope, 35, /*->577420*/ // 2 children in Scope
/*577385*/                  OPC_MoveChild2,
/*577386*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577389*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577391*/                  OPC_MoveParent,
/*577392*/                  OPC_CheckType, MVT::f32,
/*577394*/                  OPC_MoveParent,
/*577395*/                  OPC_MoveParent,
/*577396*/                  OPC_CheckType, MVT::v4f32,
/*577398*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577400*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577403*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*577411*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrr_Intkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 1, 0, 4, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                            // Dst: (VSUBSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577420*/                /*Scope*/ 41, /*->577462*/
/*577421*/                  OPC_RecordChild2, // #3 = $src0
/*577422*/                  OPC_CheckType, MVT::f32,
/*577424*/                  OPC_MoveParent,
/*577425*/                  OPC_MoveParent,
/*577426*/                  OPC_CheckType, MVT::v4f32,
/*577428*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577430*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577433*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*577441*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577444*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*577452*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 5, 1, 0, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), FR32X:{ *:[f32] }:$src0))) - Complexity = 20
                            // Dst: (VSUBSSZrr_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577462*/                0, /*End of Scope*/
/*577463*/              /*SwitchOpcode*/ 74|128,1/*202*/, TARGET_VAL(ISD::FMUL),// ->577669
/*577467*/                OPC_Scope, 46, /*->577515*/ // 4 children in Scope
/*577469*/                  OPC_MoveChild0,
/*577470*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577473*/                  OPC_CheckChild0Same, 0,
/*577475*/                  OPC_CheckChild1Integer, 0, 
/*577477*/                  OPC_MoveParent,
/*577478*/                  OPC_RecordChild1, // #2 = $src2
/*577479*/                  OPC_MoveParent,
/*577480*/                  OPC_MoveChild2,
/*577481*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577484*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577486*/                  OPC_MoveParent,
/*577487*/                  OPC_CheckType, MVT::f32,
/*577489*/                  OPC_MoveParent,
/*577490*/                  OPC_MoveParent,
/*577491*/                  OPC_CheckType, MVT::v4f32,
/*577493*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577495*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577498*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*577506*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Intkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 1, 0, 4, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                            // Dst: (VMULSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577515*/                /*Scope*/ 46, /*->577562*/
/*577516*/                  OPC_RecordChild0, // #2 = $src2
/*577517*/                  OPC_MoveChild1,
/*577518*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577521*/                  OPC_CheckChild0Same, 0,
/*577523*/                  OPC_CheckChild1Integer, 0, 
/*577525*/                  OPC_MoveParent,
/*577526*/                  OPC_MoveParent,
/*577527*/                  OPC_MoveChild2,
/*577528*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577531*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577533*/                  OPC_MoveParent,
/*577534*/                  OPC_CheckType, MVT::f32,
/*577536*/                  OPC_MoveParent,
/*577537*/                  OPC_MoveParent,
/*577538*/                  OPC_CheckType, MVT::v4f32,
/*577540*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577542*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577545*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*577553*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Intkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 1, 0, 4, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                            // Dst: (VMULSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577562*/                /*Scope*/ 52, /*->577615*/
/*577563*/                  OPC_MoveChild0,
/*577564*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577567*/                  OPC_CheckChild0Same, 0,
/*577569*/                  OPC_CheckChild1Integer, 0, 
/*577571*/                  OPC_MoveParent,
/*577572*/                  OPC_RecordChild1, // #2 = $src2
/*577573*/                  OPC_MoveParent,
/*577574*/                  OPC_RecordChild2, // #3 = $src0
/*577575*/                  OPC_CheckType, MVT::f32,
/*577577*/                  OPC_MoveParent,
/*577578*/                  OPC_MoveParent,
/*577579*/                  OPC_CheckType, MVT::v4f32,
/*577581*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577583*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577586*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*577594*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577597*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*577605*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 5, 1, 0, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), FR32X:{ *:[f32] }:$src0))) - Complexity = 20
                            // Dst: (VMULSSZrr_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577615*/                /*Scope*/ 52, /*->577668*/
/*577616*/                  OPC_RecordChild0, // #2 = $src2
/*577617*/                  OPC_MoveChild1,
/*577618*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577621*/                  OPC_CheckChild0Same, 0,
/*577623*/                  OPC_CheckChild1Integer, 0, 
/*577625*/                  OPC_MoveParent,
/*577626*/                  OPC_MoveParent,
/*577627*/                  OPC_RecordChild2, // #3 = $src0
/*577628*/                  OPC_CheckType, MVT::f32,
/*577630*/                  OPC_MoveParent,
/*577631*/                  OPC_MoveParent,
/*577632*/                  OPC_CheckType, MVT::v4f32,
/*577634*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577636*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577639*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*577647*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577650*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*577658*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 5, 1, 0, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), FR32X:{ *:[f32] }:$src0))) - Complexity = 20
                            // Dst: (VMULSSZrr_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577668*/                0, /*End of Scope*/
/*577669*/              /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FDIV),// ->577763
/*577672*/                OPC_MoveChild0,
/*577673*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577676*/                OPC_CheckChild0Same, 0,
/*577678*/                OPC_CheckChild1Integer, 0, 
/*577680*/                OPC_MoveParent,
/*577681*/                OPC_RecordChild1, // #2 = $src2
/*577682*/                OPC_MoveParent,
/*577683*/                OPC_Scope, 35, /*->577720*/ // 2 children in Scope
/*577685*/                  OPC_MoveChild2,
/*577686*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577689*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577691*/                  OPC_MoveParent,
/*577692*/                  OPC_CheckType, MVT::f32,
/*577694*/                  OPC_MoveParent,
/*577695*/                  OPC_MoveParent,
/*577696*/                  OPC_CheckType, MVT::v4f32,
/*577698*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577700*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577703*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*577711*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrr_Intkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 1, 0, 4, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                            // Dst: (VDIVSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577720*/                /*Scope*/ 41, /*->577762*/
/*577721*/                  OPC_RecordChild2, // #3 = $src0
/*577722*/                  OPC_CheckType, MVT::f32,
/*577724*/                  OPC_MoveParent,
/*577725*/                  OPC_MoveParent,
/*577726*/                  OPC_CheckType, MVT::v4f32,
/*577728*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577730*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577733*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*577741*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577744*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*577752*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrr_Intk), 0,
                                MVT::v4f32, 4/*#Ops*/, 5, 1, 0, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2), FR32X:{ *:[f32] }:$src0))) - Complexity = 20
                            // Dst: (VDIVSSZrr_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }))
/*577762*/                0, /*End of Scope*/
/*577763*/              /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(ISD::FMA),// ->577951
/*577767*/                OPC_Scope, 121, /*->577890*/ // 2 children in Scope
/*577769*/                  OPC_RecordChild0, // #2 = $src2
/*577770*/                  OPC_Scope, 58, /*->577830*/ // 2 children in Scope
/*577772*/                    OPC_MoveChild1,
/*577773*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577776*/                    OPC_CheckChild0Same, 0,
/*577778*/                    OPC_CheckChild1Integer, 0, 
/*577780*/                    OPC_MoveParent,
/*577781*/                    OPC_RecordChild2, // #3 = $src3
/*577782*/                    OPC_MoveParent,
/*577783*/                    OPC_MoveChild2,
/*577784*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577787*/                    OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577789*/                    OPC_MoveParent,
/*577790*/                    OPC_CheckType, MVT::f32,
/*577792*/                    OPC_MoveParent,
/*577793*/                    OPC_MoveParent,
/*577794*/                    OPC_CheckType, MVT::v4f32,
/*577796*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577798*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577801*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*577809*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577812*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*577820*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Intkz), 0,
                                  MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                              // Dst: (VFMADD213SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*577830*/                  /*Scope*/ 58, /*->577889*/
/*577831*/                    OPC_RecordChild1, // #3 = $src3
/*577832*/                    OPC_MoveChild2,
/*577833*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577836*/                    OPC_CheckChild0Same, 0,
/*577838*/                    OPC_CheckChild1Integer, 0, 
/*577840*/                    OPC_MoveParent,
/*577841*/                    OPC_MoveParent,
/*577842*/                    OPC_MoveChild2,
/*577843*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577846*/                    OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577848*/                    OPC_MoveParent,
/*577849*/                    OPC_CheckType, MVT::f32,
/*577851*/                    OPC_MoveParent,
/*577852*/                    OPC_MoveParent,
/*577853*/                    OPC_CheckType, MVT::v4f32,
/*577855*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577857*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577860*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*577868*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577871*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*577879*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZr_Intkz), 0,
                                  MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                              // Dst: (VFMADD231SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*577889*/                  0, /*End of Scope*/
/*577890*/                /*Scope*/ 59, /*->577950*/
/*577891*/                  OPC_MoveChild0,
/*577892*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577895*/                  OPC_CheckChild0Same, 0,
/*577897*/                  OPC_CheckChild1Integer, 0, 
/*577899*/                  OPC_MoveParent,
/*577900*/                  OPC_RecordChild1, // #2 = $src2
/*577901*/                  OPC_RecordChild2, // #3 = $src3
/*577902*/                  OPC_MoveParent,
/*577903*/                  OPC_MoveChild2,
/*577904*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577907*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577909*/                  OPC_MoveParent,
/*577910*/                  OPC_CheckType, MVT::f32,
/*577912*/                  OPC_MoveParent,
/*577913*/                  OPC_MoveParent,
/*577914*/                  OPC_CheckType, MVT::v4f32,
/*577916*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577918*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577921*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*577929*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577932*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*577940*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Intkz), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                            // Dst: (VFMADD213SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*577950*/                0, /*End of Scope*/
/*577951*/              /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FMSUB),// ->578139
/*577955*/                OPC_Scope, 121, /*->578078*/ // 2 children in Scope
/*577957*/                  OPC_RecordChild0, // #2 = $src2
/*577958*/                  OPC_Scope, 58, /*->578018*/ // 2 children in Scope
/*577960*/                    OPC_MoveChild1,
/*577961*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*577964*/                    OPC_CheckChild0Same, 0,
/*577966*/                    OPC_CheckChild1Integer, 0, 
/*577968*/                    OPC_MoveParent,
/*577969*/                    OPC_RecordChild2, // #3 = $src3
/*577970*/                    OPC_MoveParent,
/*577971*/                    OPC_MoveChild2,
/*577972*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*577975*/                    OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*577977*/                    OPC_MoveParent,
/*577978*/                    OPC_CheckType, MVT::f32,
/*577980*/                    OPC_MoveParent,
/*577981*/                    OPC_MoveParent,
/*577982*/                    OPC_CheckType, MVT::v4f32,
/*577984*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*577986*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*577989*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*577997*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578000*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*578008*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZr_Intkz), 0,
                                  MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                              // Dst: (VFMSUB213SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*578018*/                  /*Scope*/ 58, /*->578077*/
/*578019*/                    OPC_RecordChild1, // #3 = $src3
/*578020*/                    OPC_MoveChild2,
/*578021*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578024*/                    OPC_CheckChild0Same, 0,
/*578026*/                    OPC_CheckChild1Integer, 0, 
/*578028*/                    OPC_MoveParent,
/*578029*/                    OPC_MoveParent,
/*578030*/                    OPC_MoveChild2,
/*578031*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*578034*/                    OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*578036*/                    OPC_MoveParent,
/*578037*/                    OPC_CheckType, MVT::f32,
/*578039*/                    OPC_MoveParent,
/*578040*/                    OPC_MoveParent,
/*578041*/                    OPC_CheckType, MVT::v4f32,
/*578043*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578045*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578048*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*578056*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578059*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*578067*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZr_Intkz), 0,
                                  MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                              // Dst: (VFMSUB231SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*578077*/                  0, /*End of Scope*/
/*578078*/                /*Scope*/ 59, /*->578138*/
/*578079*/                  OPC_MoveChild0,
/*578080*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578083*/                  OPC_CheckChild0Same, 0,
/*578085*/                  OPC_CheckChild1Integer, 0, 
/*578087*/                  OPC_MoveParent,
/*578088*/                  OPC_RecordChild1, // #2 = $src2
/*578089*/                  OPC_RecordChild2, // #3 = $src3
/*578090*/                  OPC_MoveParent,
/*578091*/                  OPC_MoveChild2,
/*578092*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*578095*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*578097*/                  OPC_MoveParent,
/*578098*/                  OPC_CheckType, MVT::f32,
/*578100*/                  OPC_MoveParent,
/*578101*/                  OPC_MoveParent,
/*578102*/                  OPC_CheckType, MVT::v4f32,
/*578104*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578106*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578109*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*578117*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578120*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*578128*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZr_Intkz), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                            // Dst: (VFMSUB213SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*578138*/                0, /*End of Scope*/
/*578139*/              /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMADD),// ->578327
/*578143*/                OPC_Scope, 121, /*->578266*/ // 2 children in Scope
/*578145*/                  OPC_RecordChild0, // #2 = $src2
/*578146*/                  OPC_Scope, 58, /*->578206*/ // 2 children in Scope
/*578148*/                    OPC_MoveChild1,
/*578149*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578152*/                    OPC_CheckChild0Same, 0,
/*578154*/                    OPC_CheckChild1Integer, 0, 
/*578156*/                    OPC_MoveParent,
/*578157*/                    OPC_RecordChild2, // #3 = $src3
/*578158*/                    OPC_MoveParent,
/*578159*/                    OPC_MoveChild2,
/*578160*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*578163*/                    OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*578165*/                    OPC_MoveParent,
/*578166*/                    OPC_CheckType, MVT::f32,
/*578168*/                    OPC_MoveParent,
/*578169*/                    OPC_MoveParent,
/*578170*/                    OPC_CheckType, MVT::v4f32,
/*578172*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578174*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578177*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*578185*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578188*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*578196*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZr_Intkz), 0,
                                  MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                              // Dst: (VFNMADD213SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*578206*/                  /*Scope*/ 58, /*->578265*/
/*578207*/                    OPC_RecordChild1, // #3 = $src3
/*578208*/                    OPC_MoveChild2,
/*578209*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578212*/                    OPC_CheckChild0Same, 0,
/*578214*/                    OPC_CheckChild1Integer, 0, 
/*578216*/                    OPC_MoveParent,
/*578217*/                    OPC_MoveParent,
/*578218*/                    OPC_MoveChild2,
/*578219*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*578222*/                    OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*578224*/                    OPC_MoveParent,
/*578225*/                    OPC_CheckType, MVT::f32,
/*578227*/                    OPC_MoveParent,
/*578228*/                    OPC_MoveParent,
/*578229*/                    OPC_CheckType, MVT::v4f32,
/*578231*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578233*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578236*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*578244*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578247*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*578255*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZr_Intkz), 0,
                                  MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                              // Dst: (VFNMADD231SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*578265*/                  0, /*End of Scope*/
/*578266*/                /*Scope*/ 59, /*->578326*/
/*578267*/                  OPC_MoveChild0,
/*578268*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578271*/                  OPC_CheckChild0Same, 0,
/*578273*/                  OPC_CheckChild1Integer, 0, 
/*578275*/                  OPC_MoveParent,
/*578276*/                  OPC_RecordChild1, // #2 = $src2
/*578277*/                  OPC_RecordChild2, // #3 = $src3
/*578278*/                  OPC_MoveParent,
/*578279*/                  OPC_MoveChild2,
/*578280*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*578283*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*578285*/                  OPC_MoveParent,
/*578286*/                  OPC_CheckType, MVT::f32,
/*578288*/                  OPC_MoveParent,
/*578289*/                  OPC_MoveParent,
/*578290*/                  OPC_CheckType, MVT::v4f32,
/*578292*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578294*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578297*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*578305*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578308*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*578316*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZr_Intkz), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                            // Dst: (VFNMADD213SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*578326*/                0, /*End of Scope*/
/*578327*/              /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMSUB),// ->578515
/*578331*/                OPC_Scope, 121, /*->578454*/ // 2 children in Scope
/*578333*/                  OPC_RecordChild0, // #2 = $src2
/*578334*/                  OPC_Scope, 58, /*->578394*/ // 2 children in Scope
/*578336*/                    OPC_MoveChild1,
/*578337*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578340*/                    OPC_CheckChild0Same, 0,
/*578342*/                    OPC_CheckChild1Integer, 0, 
/*578344*/                    OPC_MoveParent,
/*578345*/                    OPC_RecordChild2, // #3 = $src3
/*578346*/                    OPC_MoveParent,
/*578347*/                    OPC_MoveChild2,
/*578348*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*578351*/                    OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*578353*/                    OPC_MoveParent,
/*578354*/                    OPC_CheckType, MVT::f32,
/*578356*/                    OPC_MoveParent,
/*578357*/                    OPC_MoveParent,
/*578358*/                    OPC_CheckType, MVT::v4f32,
/*578360*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578362*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578365*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*578373*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578376*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*578384*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZr_Intkz), 0,
                                  MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                              // Dst: (VFNMSUB213SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*578394*/                  /*Scope*/ 58, /*->578453*/
/*578395*/                    OPC_RecordChild1, // #3 = $src3
/*578396*/                    OPC_MoveChild2,
/*578397*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578400*/                    OPC_CheckChild0Same, 0,
/*578402*/                    OPC_CheckChild1Integer, 0, 
/*578404*/                    OPC_MoveParent,
/*578405*/                    OPC_MoveParent,
/*578406*/                    OPC_MoveChild2,
/*578407*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*578410*/                    OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*578412*/                    OPC_MoveParent,
/*578413*/                    OPC_CheckType, MVT::f32,
/*578415*/                    OPC_MoveParent,
/*578416*/                    OPC_MoveParent,
/*578417*/                    OPC_CheckType, MVT::v4f32,
/*578419*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578421*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578424*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*578432*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578435*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*578443*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZr_Intkz), 0,
                                  MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                              // Dst: (VFNMSUB231SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*578453*/                  0, /*End of Scope*/
/*578454*/                /*Scope*/ 59, /*->578514*/
/*578455*/                  OPC_MoveChild0,
/*578456*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578459*/                  OPC_CheckChild0Same, 0,
/*578461*/                  OPC_CheckChild1Integer, 0, 
/*578463*/                  OPC_MoveParent,
/*578464*/                  OPC_RecordChild1, // #2 = $src2
/*578465*/                  OPC_RecordChild2, // #3 = $src3
/*578466*/                  OPC_MoveParent,
/*578467*/                  OPC_MoveChild2,
/*578468*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*578471*/                  OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*578473*/                  OPC_MoveParent,
/*578474*/                  OPC_CheckType, MVT::f32,
/*578476*/                  OPC_MoveParent,
/*578477*/                  OPC_MoveParent,
/*578478*/                  OPC_CheckType, MVT::v4f32,
/*578480*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578482*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578485*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*578493*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578496*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*578504*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZr_Intkz), 0,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 24
                            // Dst: (VFNMSUB213SSZr_Intkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*578514*/                0, /*End of Scope*/
/*578515*/              0, // EndSwitchOpcode
/*578516*/            /*Scope*/ 77, /*->578594*/
/*578517*/              OPC_RecordChild1, // #2 = $src1
/*578518*/              OPC_Scope, 33, /*->578553*/ // 2 children in Scope
/*578520*/                OPC_MoveChild2,
/*578521*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*578524*/                OPC_CheckPredicate, 92, // Predicate_fp32imm0
/*578526*/                OPC_MoveParent,
/*578527*/                OPC_CheckType, MVT::f32,
/*578529*/                OPC_MoveParent,
/*578530*/                OPC_MoveParent,
/*578531*/                OPC_CheckType, MVT::v4f32,
/*578533*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578536*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*578544*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrrkz), 0,
                              MVT::v4f32, 3/*#Ops*/, 1, 0, 4, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, FR32X:{ *:[f32] }:$src1, (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 13
                          // Dst: (VMOVSSZrrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src0, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src1, VR128X:{ *:[i32] }))
/*578553*/              /*Scope*/ 39, /*->578593*/
/*578554*/                OPC_RecordChild2, // #3 = $src2
/*578555*/                OPC_CheckType, MVT::f32,
/*578557*/                OPC_MoveParent,
/*578558*/                OPC_MoveParent,
/*578559*/                OPC_CheckType, MVT::v4f32,
/*578561*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578564*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*578572*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578575*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*578583*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 5, 1, 0, 7, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2))) - Complexity = 9
                          // Dst: (VMOVSSZrrk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src0, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src1, VR128X:{ *:[i32] }))
/*578593*/              0, /*End of Scope*/
/*578594*/            0, /*End of Scope*/
/*578595*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FMADD_RND),// ->578783
/*578599*/            OPC_Scope, 121, /*->578722*/ // 2 children in Scope
/*578601*/              OPC_RecordChild0, // #1 = $src2
/*578602*/              OPC_Scope, 58, /*->578662*/ // 2 children in Scope
/*578604*/                OPC_MoveChild1,
/*578605*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578608*/                OPC_CheckChild0Same, 0,
/*578610*/                OPC_CheckChild1Integer, 0, 
/*578612*/                OPC_MoveParent,
/*578613*/                OPC_RecordChild2, // #2 = $src3
/*578614*/                OPC_RecordChild3, // #3 = $rc
/*578615*/                OPC_MoveChild3,
/*578616*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*578619*/                OPC_MoveParent,
/*578620*/                OPC_CheckType, MVT::f32,
/*578622*/                OPC_MoveParent,
/*578623*/                OPC_MoveParent,
/*578624*/                OPC_CheckType, MVT::v4f32,
/*578626*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578628*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578631*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*578639*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578642*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*578650*/                OPC_EmitConvertToTarget, 3,
/*578652*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                          // Dst: (VFMADD213SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*578662*/              /*Scope*/ 58, /*->578721*/
/*578663*/                OPC_RecordChild1, // #2 = $src3
/*578664*/                OPC_MoveChild2,
/*578665*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578668*/                OPC_CheckChild0Same, 0,
/*578670*/                OPC_CheckChild1Integer, 0, 
/*578672*/                OPC_MoveParent,
/*578673*/                OPC_RecordChild3, // #3 = $rc
/*578674*/                OPC_MoveChild3,
/*578675*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*578678*/                OPC_MoveParent,
/*578679*/                OPC_CheckType, MVT::f32,
/*578681*/                OPC_MoveParent,
/*578682*/                OPC_MoveParent,
/*578683*/                OPC_CheckType, MVT::v4f32,
/*578685*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578687*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578690*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*578698*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578701*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*578709*/                OPC_EmitConvertToTarget, 3,
/*578711*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc))) - Complexity = 20
                          // Dst: (VFMADD231SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*578721*/              0, /*End of Scope*/
/*578722*/            /*Scope*/ 59, /*->578782*/
/*578723*/              OPC_MoveChild0,
/*578724*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578727*/              OPC_CheckChild0Same, 0,
/*578729*/              OPC_CheckChild1Integer, 0, 
/*578731*/              OPC_MoveParent,
/*578732*/              OPC_RecordChild1, // #1 = $src2
/*578733*/              OPC_RecordChild2, // #2 = $src3
/*578734*/              OPC_RecordChild3, // #3 = $rc
/*578735*/              OPC_MoveChild3,
/*578736*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*578739*/              OPC_MoveParent,
/*578740*/              OPC_CheckType, MVT::f32,
/*578742*/              OPC_MoveParent,
/*578743*/              OPC_MoveParent,
/*578744*/              OPC_CheckType, MVT::v4f32,
/*578746*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578748*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578751*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*578759*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578762*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*578770*/              OPC_EmitConvertToTarget, 3,
/*578772*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Int), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FmaddRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFMADD213SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*578782*/            0, /*End of Scope*/
/*578783*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->578971
/*578787*/            OPC_Scope, 121, /*->578910*/ // 2 children in Scope
/*578789*/              OPC_RecordChild0, // #1 = $src2
/*578790*/              OPC_Scope, 58, /*->578850*/ // 2 children in Scope
/*578792*/                OPC_MoveChild1,
/*578793*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578796*/                OPC_CheckChild0Same, 0,
/*578798*/                OPC_CheckChild1Integer, 0, 
/*578800*/                OPC_MoveParent,
/*578801*/                OPC_RecordChild2, // #2 = $src3
/*578802*/                OPC_RecordChild3, // #3 = $rc
/*578803*/                OPC_MoveChild3,
/*578804*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*578807*/                OPC_MoveParent,
/*578808*/                OPC_CheckType, MVT::f32,
/*578810*/                OPC_MoveParent,
/*578811*/                OPC_MoveParent,
/*578812*/                OPC_CheckType, MVT::v4f32,
/*578814*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578816*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578819*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*578827*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578830*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*578838*/                OPC_EmitConvertToTarget, 3,
/*578840*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                          // Dst: (VFMSUB213SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*578850*/              /*Scope*/ 58, /*->578909*/
/*578851*/                OPC_RecordChild1, // #2 = $src3
/*578852*/                OPC_MoveChild2,
/*578853*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578856*/                OPC_CheckChild0Same, 0,
/*578858*/                OPC_CheckChild1Integer, 0, 
/*578860*/                OPC_MoveParent,
/*578861*/                OPC_RecordChild3, // #3 = $rc
/*578862*/                OPC_MoveChild3,
/*578863*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*578866*/                OPC_MoveParent,
/*578867*/                OPC_CheckType, MVT::f32,
/*578869*/                OPC_MoveParent,
/*578870*/                OPC_MoveParent,
/*578871*/                OPC_CheckType, MVT::v4f32,
/*578873*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578875*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578878*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*578886*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578889*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*578897*/                OPC_EmitConvertToTarget, 3,
/*578899*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc))) - Complexity = 20
                          // Dst: (VFMSUB231SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*578909*/              0, /*End of Scope*/
/*578910*/            /*Scope*/ 59, /*->578970*/
/*578911*/              OPC_MoveChild0,
/*578912*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578915*/              OPC_CheckChild0Same, 0,
/*578917*/              OPC_CheckChild1Integer, 0, 
/*578919*/              OPC_MoveParent,
/*578920*/              OPC_RecordChild1, // #1 = $src2
/*578921*/              OPC_RecordChild2, // #2 = $src3
/*578922*/              OPC_RecordChild3, // #3 = $rc
/*578923*/              OPC_MoveChild3,
/*578924*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*578927*/              OPC_MoveParent,
/*578928*/              OPC_CheckType, MVT::f32,
/*578930*/              OPC_MoveParent,
/*578931*/              OPC_MoveParent,
/*578932*/              OPC_CheckType, MVT::v4f32,
/*578934*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*578936*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578939*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*578947*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*578950*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*578958*/              OPC_EmitConvertToTarget, 3,
/*578960*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Int), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FmsubRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFMSUB213SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*578970*/            0, /*End of Scope*/
/*578971*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->579159
/*578975*/            OPC_Scope, 121, /*->579098*/ // 2 children in Scope
/*578977*/              OPC_RecordChild0, // #1 = $src2
/*578978*/              OPC_Scope, 58, /*->579038*/ // 2 children in Scope
/*578980*/                OPC_MoveChild1,
/*578981*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*578984*/                OPC_CheckChild0Same, 0,
/*578986*/                OPC_CheckChild1Integer, 0, 
/*578988*/                OPC_MoveParent,
/*578989*/                OPC_RecordChild2, // #2 = $src3
/*578990*/                OPC_RecordChild3, // #3 = $rc
/*578991*/                OPC_MoveChild3,
/*578992*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*578995*/                OPC_MoveParent,
/*578996*/                OPC_CheckType, MVT::f32,
/*578998*/                OPC_MoveParent,
/*578999*/                OPC_MoveParent,
/*579000*/                OPC_CheckType, MVT::v4f32,
/*579002*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579004*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579007*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*579015*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579018*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*579026*/                OPC_EmitConvertToTarget, 3,
/*579028*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FnmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                          // Dst: (VFNMADD213SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*579038*/              /*Scope*/ 58, /*->579097*/
/*579039*/                OPC_RecordChild1, // #2 = $src3
/*579040*/                OPC_MoveChild2,
/*579041*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579044*/                OPC_CheckChild0Same, 0,
/*579046*/                OPC_CheckChild1Integer, 0, 
/*579048*/                OPC_MoveParent,
/*579049*/                OPC_RecordChild3, // #3 = $rc
/*579050*/                OPC_MoveChild3,
/*579051*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*579054*/                OPC_MoveParent,
/*579055*/                OPC_CheckType, MVT::f32,
/*579057*/                OPC_MoveParent,
/*579058*/                OPC_MoveParent,
/*579059*/                OPC_CheckType, MVT::v4f32,
/*579061*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579063*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579066*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*579074*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579077*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*579085*/                OPC_EmitConvertToTarget, 3,
/*579087*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FnmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc))) - Complexity = 20
                          // Dst: (VFNMADD231SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*579097*/              0, /*End of Scope*/
/*579098*/            /*Scope*/ 59, /*->579158*/
/*579099*/              OPC_MoveChild0,
/*579100*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579103*/              OPC_CheckChild0Same, 0,
/*579105*/              OPC_CheckChild1Integer, 0, 
/*579107*/              OPC_MoveParent,
/*579108*/              OPC_RecordChild1, // #1 = $src2
/*579109*/              OPC_RecordChild2, // #2 = $src3
/*579110*/              OPC_RecordChild3, // #3 = $rc
/*579111*/              OPC_MoveChild3,
/*579112*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*579115*/              OPC_MoveParent,
/*579116*/              OPC_CheckType, MVT::f32,
/*579118*/              OPC_MoveParent,
/*579119*/              OPC_MoveParent,
/*579120*/              OPC_CheckType, MVT::v4f32,
/*579122*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579124*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579127*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*579135*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579138*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*579146*/              OPC_EmitConvertToTarget, 3,
/*579148*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Int), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FnmaddRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFNMADD213SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*579158*/            0, /*End of Scope*/
/*579159*/          /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->579347
/*579163*/            OPC_Scope, 121, /*->579286*/ // 2 children in Scope
/*579165*/              OPC_RecordChild0, // #1 = $src2
/*579166*/              OPC_Scope, 58, /*->579226*/ // 2 children in Scope
/*579168*/                OPC_MoveChild1,
/*579169*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579172*/                OPC_CheckChild0Same, 0,
/*579174*/                OPC_CheckChild1Integer, 0, 
/*579176*/                OPC_MoveParent,
/*579177*/                OPC_RecordChild2, // #2 = $src3
/*579178*/                OPC_RecordChild3, // #3 = $rc
/*579179*/                OPC_MoveChild3,
/*579180*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*579183*/                OPC_MoveParent,
/*579184*/                OPC_CheckType, MVT::f32,
/*579186*/                OPC_MoveParent,
/*579187*/                OPC_MoveParent,
/*579188*/                OPC_CheckType, MVT::v4f32,
/*579190*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579192*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579195*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*579203*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579206*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*579214*/                OPC_EmitConvertToTarget, 3,
/*579216*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FnmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                          // Dst: (VFNMSUB213SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*579226*/              /*Scope*/ 58, /*->579285*/
/*579227*/                OPC_RecordChild1, // #2 = $src3
/*579228*/                OPC_MoveChild2,
/*579229*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579232*/                OPC_CheckChild0Same, 0,
/*579234*/                OPC_CheckChild1Integer, 0, 
/*579236*/                OPC_MoveParent,
/*579237*/                OPC_RecordChild3, // #3 = $rc
/*579238*/                OPC_MoveChild3,
/*579239*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*579242*/                OPC_MoveParent,
/*579243*/                OPC_CheckType, MVT::f32,
/*579245*/                OPC_MoveParent,
/*579246*/                OPC_MoveParent,
/*579247*/                OPC_CheckType, MVT::v4f32,
/*579249*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579251*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579254*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*579262*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579265*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*579273*/                OPC_EmitConvertToTarget, 3,
/*579275*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FnmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc))) - Complexity = 20
                          // Dst: (VFNMSUB231SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*579285*/              0, /*End of Scope*/
/*579286*/            /*Scope*/ 59, /*->579346*/
/*579287*/              OPC_MoveChild0,
/*579288*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579291*/              OPC_CheckChild0Same, 0,
/*579293*/              OPC_CheckChild1Integer, 0, 
/*579295*/              OPC_MoveParent,
/*579296*/              OPC_RecordChild1, // #1 = $src2
/*579297*/              OPC_RecordChild2, // #2 = $src3
/*579298*/              OPC_RecordChild3, // #3 = $rc
/*579299*/              OPC_MoveChild3,
/*579300*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*579303*/              OPC_MoveParent,
/*579304*/              OPC_CheckType, MVT::f32,
/*579306*/              OPC_MoveParent,
/*579307*/              OPC_MoveParent,
/*579308*/              OPC_CheckType, MVT::v4f32,
/*579310*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579312*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579315*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*579323*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579326*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*579334*/              OPC_EmitConvertToTarget, 3,
/*579336*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Int), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86FnmsubRnd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFNMSUB213SSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*579346*/            0, /*End of Scope*/
/*579347*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FP_ROUND),// ->579399
/*579350*/            OPC_MoveChild0,
/*579351*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579354*/            OPC_RecordChild0, // #1 = $src
/*579355*/            OPC_CheckChild0Type, MVT::v2f64,
/*579357*/            OPC_CheckChild1Integer, 0, 
/*579359*/            OPC_MoveParent,
/*579360*/            OPC_MoveParent,
/*579361*/            OPC_MoveParent,
/*579362*/            OPC_CheckType, MVT::v4f32,
/*579364*/            OPC_Scope, 10, /*->579376*/ // 3 children in Scope
/*579366*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*579368*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fpround:{ *:[f32] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VCVTSD2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, VR128:{ *:[v2f64] }:$src)
/*579376*/            /*Scope*/ 10, /*->579387*/
/*579377*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*579379*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SSrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fpround:{ *:[f32] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (CVTSD2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, VR128:{ *:[v2f64] }:$src)
/*579387*/            /*Scope*/ 10, /*->579398*/
/*579388*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579390*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fpround:{ *:[f32] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VCVTSD2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VR128X:{ *:[v2f64] }:$src)
/*579398*/            0, /*End of Scope*/
/*579399*/          /*SwitchOpcode*/ 51, TARGET_VAL(ISD::FSQRT),// ->579453
/*579402*/            OPC_MoveChild0,
/*579403*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579406*/            OPC_RecordChild0, // #1 = $src
/*579407*/            OPC_CheckChild0Type, MVT::v4f32,
/*579409*/            OPC_CheckChild1Integer, 0, 
/*579411*/            OPC_MoveParent,
/*579412*/            OPC_CheckType, MVT::f32,
/*579414*/            OPC_MoveParent,
/*579415*/            OPC_MoveParent,
/*579416*/            OPC_CheckType, MVT::v4f32,
/*579418*/            OPC_Scope, 10, /*->579430*/ // 3 children in Scope
/*579420*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*579422*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSSr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fsqrt:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (SQRTSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*579430*/            /*Scope*/ 10, /*->579441*/
/*579431*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*579433*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fsqrt:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VSQRTSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*579441*/            /*Scope*/ 10, /*->579452*/
/*579442*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579444*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fsqrt:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VSQRTSSZr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*579452*/            0, /*End of Scope*/
/*579453*/          /*SwitchOpcode*/ 63, TARGET_VAL(ISD::FFLOOR),// ->579519
/*579456*/            OPC_MoveChild0,
/*579457*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579460*/            OPC_RecordChild0, // #1 = $src
/*579461*/            OPC_CheckChild0Type, MVT::v4f32,
/*579463*/            OPC_CheckChild1Integer, 0, 
/*579465*/            OPC_MoveParent,
/*579466*/            OPC_CheckType, MVT::f32,
/*579468*/            OPC_MoveParent,
/*579469*/            OPC_MoveParent,
/*579470*/            OPC_CheckType, MVT::v4f32,
/*579472*/            OPC_Scope, 14, /*->579488*/ // 3 children in Scope
/*579474*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*579476*/              OPC_EmitInteger, MVT::i32, 1, 
/*579479*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSr_Int), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (ffloor:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (ROUNDSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src, 1:{ *:[i32] })
/*579488*/            /*Scope*/ 14, /*->579503*/
/*579489*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*579491*/              OPC_EmitInteger, MVT::i32, 1, 
/*579494*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSr_Int), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (ffloor:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VROUNDSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src, 1:{ *:[i32] })
/*579503*/            /*Scope*/ 14, /*->579518*/
/*579504*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579506*/              OPC_EmitInteger, MVT::i32, 1, 
/*579509*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Int), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (ffloor:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VRNDSCALESSZr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src, 1:{ *:[i32] })
/*579518*/            0, /*End of Scope*/
/*579519*/          /*SwitchOpcode*/ 63, TARGET_VAL(ISD::FCEIL),// ->579585
/*579522*/            OPC_MoveChild0,
/*579523*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579526*/            OPC_RecordChild0, // #1 = $src
/*579527*/            OPC_CheckChild0Type, MVT::v4f32,
/*579529*/            OPC_CheckChild1Integer, 0, 
/*579531*/            OPC_MoveParent,
/*579532*/            OPC_CheckType, MVT::f32,
/*579534*/            OPC_MoveParent,
/*579535*/            OPC_MoveParent,
/*579536*/            OPC_CheckType, MVT::v4f32,
/*579538*/            OPC_Scope, 14, /*->579554*/ // 3 children in Scope
/*579540*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*579542*/              OPC_EmitInteger, MVT::i32, 2, 
/*579545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSr_Int), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fceil:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (ROUNDSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src, 2:{ *:[i32] })
/*579554*/            /*Scope*/ 14, /*->579569*/
/*579555*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*579557*/              OPC_EmitInteger, MVT::i32, 2, 
/*579560*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSr_Int), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fceil:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VROUNDSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src, 2:{ *:[i32] })
/*579569*/            /*Scope*/ 14, /*->579584*/
/*579570*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579572*/              OPC_EmitInteger, MVT::i32, 2, 
/*579575*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Int), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fceil:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VRNDSCALESSZr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src, 2:{ *:[i32] })
/*579584*/            0, /*End of Scope*/
/*579585*/          /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(ISD::FADD),// ->579761
/*579589*/            OPC_Scope, 84, /*->579675*/ // 2 children in Scope
/*579591*/              OPC_MoveChild0,
/*579592*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579595*/              OPC_CheckChild0Same, 0,
/*579597*/              OPC_CheckChild1Integer, 0, 
/*579599*/              OPC_MoveParent,
/*579600*/              OPC_RecordChild1, // #1 = $src
/*579601*/              OPC_CheckType, MVT::f32,
/*579603*/              OPC_MoveParent,
/*579604*/              OPC_MoveParent,
/*579605*/              OPC_CheckType, MVT::v4f32,
/*579607*/              OPC_Scope, 21, /*->579630*/ // 3 children in Scope
/*579609*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*579611*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*579614*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579622*/                OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src))) - Complexity = 17
                          // Dst: (ADDSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*579630*/              /*Scope*/ 21, /*->579652*/
/*579631*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*579633*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*579636*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579644*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src))) - Complexity = 17
                          // Dst: (VADDSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*579652*/              /*Scope*/ 21, /*->579674*/
/*579653*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579655*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579658*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579666*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src))) - Complexity = 17
                          // Dst: (VADDSSZrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*579674*/              0, /*End of Scope*/
/*579675*/            /*Scope*/ 84, /*->579760*/
/*579676*/              OPC_RecordChild0, // #1 = $src
/*579677*/              OPC_MoveChild1,
/*579678*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579681*/              OPC_CheckChild0Same, 0,
/*579683*/              OPC_CheckChild1Integer, 0, 
/*579685*/              OPC_MoveParent,
/*579686*/              OPC_CheckType, MVT::f32,
/*579688*/              OPC_MoveParent,
/*579689*/              OPC_MoveParent,
/*579690*/              OPC_CheckType, MVT::v4f32,
/*579692*/              OPC_Scope, 21, /*->579715*/ // 3 children in Scope
/*579694*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*579696*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*579699*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579707*/                OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fadd:{ *:[f32] } FR32:{ *:[f32] }:$src, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (ADDSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*579715*/              /*Scope*/ 21, /*->579737*/
/*579716*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*579718*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*579721*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579729*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fadd:{ *:[f32] } FR32:{ *:[f32] }:$src, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VADDSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*579737*/              /*Scope*/ 21, /*->579759*/
/*579738*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579740*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579743*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579751*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fadd:{ *:[f32] } FR32X:{ *:[f32] }:$src, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VADDSSZrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*579759*/              0, /*End of Scope*/
/*579760*/            0, /*End of Scope*/
/*579761*/          /*SwitchOpcode*/ 84, TARGET_VAL(ISD::FSUB),// ->579848
/*579764*/            OPC_MoveChild0,
/*579765*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579768*/            OPC_CheckChild0Same, 0,
/*579770*/            OPC_CheckChild1Integer, 0, 
/*579772*/            OPC_MoveParent,
/*579773*/            OPC_RecordChild1, // #1 = $src
/*579774*/            OPC_CheckType, MVT::f32,
/*579776*/            OPC_MoveParent,
/*579777*/            OPC_MoveParent,
/*579778*/            OPC_CheckType, MVT::v4f32,
/*579780*/            OPC_Scope, 21, /*->579803*/ // 3 children in Scope
/*579782*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*579784*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*579787*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579795*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSSrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src))) - Complexity = 17
                        // Dst: (SUBSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*579803*/            /*Scope*/ 21, /*->579825*/
/*579804*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*579806*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*579809*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579817*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src))) - Complexity = 17
                        // Dst: (VSUBSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*579825*/            /*Scope*/ 21, /*->579847*/
/*579826*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579828*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579831*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579839*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src))) - Complexity = 17
                        // Dst: (VSUBSSZrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*579847*/            0, /*End of Scope*/
/*579848*/          /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(ISD::FMUL),// ->580024
/*579852*/            OPC_Scope, 84, /*->579938*/ // 2 children in Scope
/*579854*/              OPC_MoveChild0,
/*579855*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579858*/              OPC_CheckChild0Same, 0,
/*579860*/              OPC_CheckChild1Integer, 0, 
/*579862*/              OPC_MoveParent,
/*579863*/              OPC_RecordChild1, // #1 = $src
/*579864*/              OPC_CheckType, MVT::f32,
/*579866*/              OPC_MoveParent,
/*579867*/              OPC_MoveParent,
/*579868*/              OPC_CheckType, MVT::v4f32,
/*579870*/              OPC_Scope, 21, /*->579893*/ // 3 children in Scope
/*579872*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*579874*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*579877*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579885*/                OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src))) - Complexity = 17
                          // Dst: (MULSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*579893*/              /*Scope*/ 21, /*->579915*/
/*579894*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*579896*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*579899*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579907*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src))) - Complexity = 17
                          // Dst: (VMULSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*579915*/              /*Scope*/ 21, /*->579937*/
/*579916*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*579918*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*579921*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579929*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src))) - Complexity = 17
                          // Dst: (VMULSSZrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*579937*/              0, /*End of Scope*/
/*579938*/            /*Scope*/ 84, /*->580023*/
/*579939*/              OPC_RecordChild0, // #1 = $src
/*579940*/              OPC_MoveChild1,
/*579941*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*579944*/              OPC_CheckChild0Same, 0,
/*579946*/              OPC_CheckChild1Integer, 0, 
/*579948*/              OPC_MoveParent,
/*579949*/              OPC_CheckType, MVT::f32,
/*579951*/              OPC_MoveParent,
/*579952*/              OPC_MoveParent,
/*579953*/              OPC_CheckType, MVT::v4f32,
/*579955*/              OPC_Scope, 21, /*->579978*/ // 3 children in Scope
/*579957*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*579959*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*579962*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579970*/                OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fmul:{ *:[f32] } FR32:{ *:[f32] }:$src, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (MULSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*579978*/              /*Scope*/ 21, /*->580000*/
/*579979*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*579981*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*579984*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*579992*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fmul:{ *:[f32] } FR32:{ *:[f32] }:$src, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VMULSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*580000*/              /*Scope*/ 21, /*->580022*/
/*580001*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*580003*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580006*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*580014*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 3, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fmul:{ *:[f32] } FR32X:{ *:[f32] }:$src, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VMULSSZrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*580022*/              0, /*End of Scope*/
/*580023*/            0, /*End of Scope*/
/*580024*/          /*SwitchOpcode*/ 84, TARGET_VAL(ISD::FDIV),// ->580111
/*580027*/            OPC_MoveChild0,
/*580028*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580031*/            OPC_CheckChild0Same, 0,
/*580033*/            OPC_CheckChild1Integer, 0, 
/*580035*/            OPC_MoveParent,
/*580036*/            OPC_RecordChild1, // #1 = $src
/*580037*/            OPC_CheckType, MVT::f32,
/*580039*/            OPC_MoveParent,
/*580040*/            OPC_MoveParent,
/*580041*/            OPC_CheckType, MVT::v4f32,
/*580043*/            OPC_Scope, 21, /*->580066*/ // 3 children in Scope
/*580045*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*580047*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580050*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*580058*/              OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSSrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src))) - Complexity = 17
                        // Dst: (DIVSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*580066*/            /*Scope*/ 21, /*->580088*/
/*580067*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*580069*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580072*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*580080*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src))) - Complexity = 17
                        // Dst: (VDIVSSrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src, VR128:{ *:[i32] }))
/*580088*/            /*Scope*/ 21, /*->580110*/
/*580089*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*580091*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580094*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*580102*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src))) - Complexity = 17
                        // Dst: (VDIVSSZrr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*580110*/            0, /*End of Scope*/
/*580111*/          /*SwitchOpcode*/ 39|128,2/*295*/, TARGET_VAL(ISD::FMA),// ->580410
/*580115*/            OPC_Scope, 75|128,1/*203*/, /*->580321*/ // 2 children in Scope
/*580118*/              OPC_RecordChild0, // #1 = $src2
/*580119*/              OPC_Scope, 49, /*->580170*/ // 4 children in Scope
/*580121*/                OPC_MoveChild1,
/*580122*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580125*/                OPC_CheckChild0Same, 0,
/*580127*/                OPC_CheckChild1Integer, 0, 
/*580129*/                OPC_MoveParent,
/*580130*/                OPC_RecordChild2, // #2 = $src3
/*580131*/                OPC_CheckType, MVT::f32,
/*580133*/                OPC_MoveParent,
/*580134*/                OPC_MoveParent,
/*580135*/                OPC_CheckType, MVT::v4f32,
/*580137*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*580139*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580142*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580150*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580153*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFMADD213SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*580170*/              /*Scope*/ 49, /*->580220*/
/*580171*/                OPC_RecordChild1, // #2 = $src3
/*580172*/                OPC_MoveChild2,
/*580173*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580176*/                OPC_CheckChild0Same, 0,
/*580178*/                OPC_CheckChild1Integer, 0, 
/*580180*/                OPC_MoveParent,
/*580181*/                OPC_CheckType, MVT::f32,
/*580183*/                OPC_MoveParent,
/*580184*/                OPC_MoveParent,
/*580185*/                OPC_CheckType, MVT::v4f32,
/*580187*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*580189*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580192*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580200*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580203*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580211*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VFMADD231SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*580220*/              /*Scope*/ 49, /*->580270*/
/*580221*/                OPC_MoveChild1,
/*580222*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580225*/                OPC_CheckChild0Same, 0,
/*580227*/                OPC_CheckChild1Integer, 0, 
/*580229*/                OPC_MoveParent,
/*580230*/                OPC_RecordChild2, // #2 = $src3
/*580231*/                OPC_CheckType, MVT::f32,
/*580233*/                OPC_MoveParent,
/*580234*/                OPC_MoveParent,
/*580235*/                OPC_CheckType, MVT::v4f32,
/*580237*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*580239*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580242*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580250*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580253*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580261*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFMADD213SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*580270*/              /*Scope*/ 49, /*->580320*/
/*580271*/                OPC_RecordChild1, // #2 = $src3
/*580272*/                OPC_MoveChild2,
/*580273*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580276*/                OPC_CheckChild0Same, 0,
/*580278*/                OPC_CheckChild1Integer, 0, 
/*580280*/                OPC_MoveParent,
/*580281*/                OPC_CheckType, MVT::f32,
/*580283*/                OPC_MoveParent,
/*580284*/                OPC_MoveParent,
/*580285*/                OPC_CheckType, MVT::v4f32,
/*580287*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*580289*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580292*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580300*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580303*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580311*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VFMADD231SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*580320*/              0, /*End of Scope*/
/*580321*/            /*Scope*/ 87, /*->580409*/
/*580322*/              OPC_MoveChild0,
/*580323*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580326*/              OPC_CheckChild0Same, 0,
/*580328*/              OPC_CheckChild1Integer, 0, 
/*580330*/              OPC_MoveParent,
/*580331*/              OPC_RecordChild1, // #1 = $src2
/*580332*/              OPC_RecordChild2, // #2 = $src3
/*580333*/              OPC_CheckType, MVT::f32,
/*580335*/              OPC_MoveParent,
/*580336*/              OPC_MoveParent,
/*580337*/              OPC_CheckType, MVT::v4f32,
/*580339*/              OPC_Scope, 33, /*->580374*/ // 2 children in Scope
/*580341*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*580343*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580346*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580354*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580357*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580365*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFMADD213SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*580374*/              /*Scope*/ 33, /*->580408*/
/*580375*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*580377*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580380*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580388*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580391*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580399*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFMADD213SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*580408*/              0, /*End of Scope*/
/*580409*/            0, /*End of Scope*/
/*580410*/          /*SwitchOpcode*/ 39|128,2/*295*/, TARGET_VAL(X86ISD::FMSUB),// ->580709
/*580414*/            OPC_Scope, 75|128,1/*203*/, /*->580620*/ // 2 children in Scope
/*580417*/              OPC_RecordChild0, // #1 = $src2
/*580418*/              OPC_Scope, 49, /*->580469*/ // 4 children in Scope
/*580420*/                OPC_MoveChild1,
/*580421*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580424*/                OPC_CheckChild0Same, 0,
/*580426*/                OPC_CheckChild1Integer, 0, 
/*580428*/                OPC_MoveParent,
/*580429*/                OPC_RecordChild2, // #2 = $src3
/*580430*/                OPC_CheckType, MVT::f32,
/*580432*/                OPC_MoveParent,
/*580433*/                OPC_MoveParent,
/*580434*/                OPC_CheckType, MVT::v4f32,
/*580436*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*580438*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580441*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580449*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580452*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580460*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFMSUB213SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*580469*/              /*Scope*/ 49, /*->580519*/
/*580470*/                OPC_RecordChild1, // #2 = $src3
/*580471*/                OPC_MoveChild2,
/*580472*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580475*/                OPC_CheckChild0Same, 0,
/*580477*/                OPC_CheckChild1Integer, 0, 
/*580479*/                OPC_MoveParent,
/*580480*/                OPC_CheckType, MVT::f32,
/*580482*/                OPC_MoveParent,
/*580483*/                OPC_MoveParent,
/*580484*/                OPC_CheckType, MVT::v4f32,
/*580486*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*580488*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580491*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580499*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580502*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580510*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VFMSUB231SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*580519*/              /*Scope*/ 49, /*->580569*/
/*580520*/                OPC_MoveChild1,
/*580521*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580524*/                OPC_CheckChild0Same, 0,
/*580526*/                OPC_CheckChild1Integer, 0, 
/*580528*/                OPC_MoveParent,
/*580529*/                OPC_RecordChild2, // #2 = $src3
/*580530*/                OPC_CheckType, MVT::f32,
/*580532*/                OPC_MoveParent,
/*580533*/                OPC_MoveParent,
/*580534*/                OPC_CheckType, MVT::v4f32,
/*580536*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*580538*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580541*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580549*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580552*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580560*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFMSUB213SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*580569*/              /*Scope*/ 49, /*->580619*/
/*580570*/                OPC_RecordChild1, // #2 = $src3
/*580571*/                OPC_MoveChild2,
/*580572*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580575*/                OPC_CheckChild0Same, 0,
/*580577*/                OPC_CheckChild1Integer, 0, 
/*580579*/                OPC_MoveParent,
/*580580*/                OPC_CheckType, MVT::f32,
/*580582*/                OPC_MoveParent,
/*580583*/                OPC_MoveParent,
/*580584*/                OPC_CheckType, MVT::v4f32,
/*580586*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*580588*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580591*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580599*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580602*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580610*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VFMSUB231SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*580619*/              0, /*End of Scope*/
/*580620*/            /*Scope*/ 87, /*->580708*/
/*580621*/              OPC_MoveChild0,
/*580622*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580625*/              OPC_CheckChild0Same, 0,
/*580627*/              OPC_CheckChild1Integer, 0, 
/*580629*/              OPC_MoveParent,
/*580630*/              OPC_RecordChild1, // #1 = $src2
/*580631*/              OPC_RecordChild2, // #2 = $src3
/*580632*/              OPC_CheckType, MVT::f32,
/*580634*/              OPC_MoveParent,
/*580635*/              OPC_MoveParent,
/*580636*/              OPC_CheckType, MVT::v4f32,
/*580638*/              OPC_Scope, 33, /*->580673*/ // 2 children in Scope
/*580640*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*580642*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580645*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580653*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580656*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580664*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFMSUB213SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*580673*/              /*Scope*/ 33, /*->580707*/
/*580674*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*580676*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580679*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580687*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580690*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580698*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFMSUB213SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*580707*/              0, /*End of Scope*/
/*580708*/            0, /*End of Scope*/
/*580709*/          /*SwitchOpcode*/ 39|128,2/*295*/, TARGET_VAL(X86ISD::FNMADD),// ->581008
/*580713*/            OPC_Scope, 75|128,1/*203*/, /*->580919*/ // 2 children in Scope
/*580716*/              OPC_RecordChild0, // #1 = $src2
/*580717*/              OPC_Scope, 49, /*->580768*/ // 4 children in Scope
/*580719*/                OPC_MoveChild1,
/*580720*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580723*/                OPC_CheckChild0Same, 0,
/*580725*/                OPC_CheckChild1Integer, 0, 
/*580727*/                OPC_MoveParent,
/*580728*/                OPC_RecordChild2, // #2 = $src3
/*580729*/                OPC_CheckType, MVT::f32,
/*580731*/                OPC_MoveParent,
/*580732*/                OPC_MoveParent,
/*580733*/                OPC_CheckType, MVT::v4f32,
/*580735*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*580737*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580740*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580748*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580751*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580759*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFNMADD213SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*580768*/              /*Scope*/ 49, /*->580818*/
/*580769*/                OPC_RecordChild1, // #2 = $src3
/*580770*/                OPC_MoveChild2,
/*580771*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580774*/                OPC_CheckChild0Same, 0,
/*580776*/                OPC_CheckChild1Integer, 0, 
/*580778*/                OPC_MoveParent,
/*580779*/                OPC_CheckType, MVT::f32,
/*580781*/                OPC_MoveParent,
/*580782*/                OPC_MoveParent,
/*580783*/                OPC_CheckType, MVT::v4f32,
/*580785*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*580787*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580790*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580798*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580801*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580809*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VFNMADD231SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*580818*/              /*Scope*/ 49, /*->580868*/
/*580819*/                OPC_MoveChild1,
/*580820*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580823*/                OPC_CheckChild0Same, 0,
/*580825*/                OPC_CheckChild1Integer, 0, 
/*580827*/                OPC_MoveParent,
/*580828*/                OPC_RecordChild2, // #2 = $src3
/*580829*/                OPC_CheckType, MVT::f32,
/*580831*/                OPC_MoveParent,
/*580832*/                OPC_MoveParent,
/*580833*/                OPC_CheckType, MVT::v4f32,
/*580835*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*580837*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580840*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580848*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580851*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580859*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFNMADD213SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*580868*/              /*Scope*/ 49, /*->580918*/
/*580869*/                OPC_RecordChild1, // #2 = $src3
/*580870*/                OPC_MoveChild2,
/*580871*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580874*/                OPC_CheckChild0Same, 0,
/*580876*/                OPC_CheckChild1Integer, 0, 
/*580878*/                OPC_MoveParent,
/*580879*/                OPC_CheckType, MVT::f32,
/*580881*/                OPC_MoveParent,
/*580882*/                OPC_MoveParent,
/*580883*/                OPC_CheckType, MVT::v4f32,
/*580885*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*580887*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580890*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580898*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580901*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580909*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VFNMADD231SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*580918*/              0, /*End of Scope*/
/*580919*/            /*Scope*/ 87, /*->581007*/
/*580920*/              OPC_MoveChild0,
/*580921*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*580924*/              OPC_CheckChild0Same, 0,
/*580926*/              OPC_CheckChild1Integer, 0, 
/*580928*/              OPC_MoveParent,
/*580929*/              OPC_RecordChild1, // #1 = $src2
/*580930*/              OPC_RecordChild2, // #2 = $src3
/*580931*/              OPC_CheckType, MVT::f32,
/*580933*/              OPC_MoveParent,
/*580934*/              OPC_MoveParent,
/*580935*/              OPC_CheckType, MVT::v4f32,
/*580937*/              OPC_Scope, 33, /*->580972*/ // 2 children in Scope
/*580939*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*580941*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580944*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580952*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*580955*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580963*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFNMADD213SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*580972*/              /*Scope*/ 33, /*->581006*/
/*580973*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*580975*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580978*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*580986*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*580989*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*580997*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFNMADD213SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*581006*/              0, /*End of Scope*/
/*581007*/            0, /*End of Scope*/
/*581008*/          /*SwitchOpcode*/ 39|128,2/*295*/, TARGET_VAL(X86ISD::FNMSUB),// ->581307
/*581012*/            OPC_Scope, 75|128,1/*203*/, /*->581218*/ // 2 children in Scope
/*581015*/              OPC_RecordChild0, // #1 = $src2
/*581016*/              OPC_Scope, 49, /*->581067*/ // 4 children in Scope
/*581018*/                OPC_MoveChild1,
/*581019*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581022*/                OPC_CheckChild0Same, 0,
/*581024*/                OPC_CheckChild1Integer, 0, 
/*581026*/                OPC_MoveParent,
/*581027*/                OPC_RecordChild2, // #2 = $src3
/*581028*/                OPC_CheckType, MVT::f32,
/*581030*/                OPC_MoveParent,
/*581031*/                OPC_MoveParent,
/*581032*/                OPC_CheckType, MVT::v4f32,
/*581034*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*581036*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*581039*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*581047*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*581050*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*581058*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFNMSUB213SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*581067*/              /*Scope*/ 49, /*->581117*/
/*581068*/                OPC_RecordChild1, // #2 = $src3
/*581069*/                OPC_MoveChild2,
/*581070*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581073*/                OPC_CheckChild0Same, 0,
/*581075*/                OPC_CheckChild1Integer, 0, 
/*581077*/                OPC_MoveParent,
/*581078*/                OPC_CheckType, MVT::f32,
/*581080*/                OPC_MoveParent,
/*581081*/                OPC_MoveParent,
/*581082*/                OPC_CheckType, MVT::v4f32,
/*581084*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*581086*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*581089*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*581097*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*581100*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*581108*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VFNMSUB231SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*581117*/              /*Scope*/ 49, /*->581167*/
/*581118*/                OPC_MoveChild1,
/*581119*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581122*/                OPC_CheckChild0Same, 0,
/*581124*/                OPC_CheckChild1Integer, 0, 
/*581126*/                OPC_MoveParent,
/*581127*/                OPC_RecordChild2, // #2 = $src3
/*581128*/                OPC_CheckType, MVT::f32,
/*581130*/                OPC_MoveParent,
/*581131*/                OPC_MoveParent,
/*581132*/                OPC_CheckType, MVT::v4f32,
/*581134*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581136*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*581139*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*581147*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*581150*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*581158*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFNMSUB213SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*581167*/              /*Scope*/ 49, /*->581217*/
/*581168*/                OPC_RecordChild1, // #2 = $src3
/*581169*/                OPC_MoveChild2,
/*581170*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581173*/                OPC_CheckChild0Same, 0,
/*581175*/                OPC_CheckChild1Integer, 0, 
/*581177*/                OPC_MoveParent,
/*581178*/                OPC_CheckType, MVT::f32,
/*581180*/                OPC_MoveParent,
/*581181*/                OPC_MoveParent,
/*581182*/                OPC_CheckType, MVT::v4f32,
/*581184*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581186*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*581189*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*581197*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*581200*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*581208*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                          // Dst: (VFNMSUB231SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*581217*/              0, /*End of Scope*/
/*581218*/            /*Scope*/ 87, /*->581306*/
/*581219*/              OPC_MoveChild0,
/*581220*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581223*/              OPC_CheckChild0Same, 0,
/*581225*/              OPC_CheckChild1Integer, 0, 
/*581227*/              OPC_MoveParent,
/*581228*/              OPC_RecordChild1, // #1 = $src2
/*581229*/              OPC_RecordChild2, // #2 = $src3
/*581230*/              OPC_CheckType, MVT::f32,
/*581232*/              OPC_MoveParent,
/*581233*/              OPC_MoveParent,
/*581234*/              OPC_CheckType, MVT::v4f32,
/*581236*/              OPC_Scope, 33, /*->581271*/ // 2 children in Scope
/*581238*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*581240*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*581243*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*581251*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*581254*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*581262*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFNMSUB213SSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/*581271*/              /*Scope*/ 33, /*->581305*/
/*581272*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581274*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*581277*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*581285*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*581288*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*581296*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZr_Int), 0,
                              MVT::v4f32, 3/*#Ops*/, 0, 4, 6, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86Fnmsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3))) - Complexity = 17
                          // Dst: (VFNMSUB213SSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src3, VR128X:{ *:[i32] }))
/*581305*/              0, /*End of Scope*/
/*581306*/            0, /*End of Scope*/
/*581307*/          /*SwitchOpcode*/ 89, TARGET_VAL(ISD::SINT_TO_FP),// ->581399
/*581310*/            OPC_RecordChild0, // #1 = $src
/*581311*/            OPC_CheckType, MVT::f32,
/*581313*/            OPC_Scope, 41, /*->581356*/ // 2 children in Scope
/*581315*/              OPC_CheckChild0Type, MVT::i64,
/*581317*/              OPC_MoveParent,
/*581318*/              OPC_MoveParent,
/*581319*/              OPC_CheckType, MVT::v4f32,
/*581321*/              OPC_Scope, 10, /*->581333*/ // 3 children in Scope
/*581323*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*581325*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 1, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI642SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, GR64:{ *:[i64] }:$src)
/*581333*/              /*Scope*/ 10, /*->581344*/
/*581334*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*581336*/                OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 1, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                          // Dst: (CVTSI642SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, GR64:{ *:[i64] }:$src)
/*581344*/              /*Scope*/ 10, /*->581355*/
/*581345*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581347*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 1, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI642SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, GR64:{ *:[i64] }:$src)
/*581355*/              0, /*End of Scope*/
/*581356*/            /*Scope*/ 41, /*->581398*/
/*581357*/              OPC_CheckChild0Type, MVT::i32,
/*581359*/              OPC_MoveParent,
/*581360*/              OPC_MoveParent,
/*581361*/              OPC_CheckType, MVT::v4f32,
/*581363*/              OPC_Scope, 10, /*->581375*/ // 3 children in Scope
/*581365*/                OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*581367*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 1, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, GR32:{ *:[i32] }:$src)
/*581375*/              /*Scope*/ 10, /*->581386*/
/*581376*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*581378*/                OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SSrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 1, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                          // Dst: (CVTSI2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, GR32:{ *:[i32] }:$src)
/*581386*/              /*Scope*/ 10, /*->581397*/
/*581387*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581389*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 1, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (sint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, GR32:{ *:[i32] }:$src)
/*581397*/              0, /*End of Scope*/
/*581398*/            0, /*End of Scope*/
/*581399*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::UINT_TO_FP),// ->581441
/*581402*/            OPC_RecordChild0, // #1 = $src
/*581403*/            OPC_CheckType, MVT::f32,
/*581405*/            OPC_Scope, 16, /*->581423*/ // 2 children in Scope
/*581407*/              OPC_CheckChild0Type, MVT::i64,
/*581409*/              OPC_MoveParent,
/*581410*/              OPC_MoveParent,
/*581411*/              OPC_CheckType, MVT::v4f32,
/*581413*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581415*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (uint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                        // Dst: (VCVTUSI642SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, GR64:{ *:[i64] }:$src)
/*581423*/            /*Scope*/ 16, /*->581440*/
/*581424*/              OPC_CheckChild0Type, MVT::i32,
/*581426*/              OPC_MoveParent,
/*581427*/              OPC_MoveParent,
/*581428*/              OPC_CheckType, MVT::v4f32,
/*581430*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581432*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (uint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                        // Dst: (VCVTUSI2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, GR32:{ *:[i32] }:$src)
/*581440*/            0, /*End of Scope*/
/*581441*/          0, // EndSwitchOpcode
/*581442*/        /*SwitchOpcode*/ 62, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->581507
/*581445*/          OPC_Scope, 29, /*->581476*/ // 2 children in Scope
/*581447*/            OPC_CheckChild0Integer, 123|128,49/*6395*/, 
/*581450*/            OPC_RecordChild1, // #1 = $src
/*581451*/            OPC_MoveParent,
/*581452*/            OPC_Scope, 10, /*->581464*/ // 2 children in Scope
/*581454*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*581456*/              OPC_MorphNodeTo1, TARGET_VAL(X86::RCPSSr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (intrinsic_wo_chain:{ *:[v4f32] } 6395:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$src)) - Complexity = 11
                        // Dst: (RCPSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*581464*/            /*Scope*/ 10, /*->581475*/
/*581465*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*581467*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCPSSr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (intrinsic_wo_chain:{ *:[v4f32] } 6395:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$src)) - Complexity = 11
                        // Dst: (VRCPSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*581475*/            0, /*End of Scope*/
/*581476*/          /*Scope*/ 29, /*->581506*/
/*581477*/            OPC_CheckChild0Integer, 125|128,49/*6397*/, 
/*581480*/            OPC_RecordChild1, // #1 = $src
/*581481*/            OPC_MoveParent,
/*581482*/            OPC_Scope, 10, /*->581494*/ // 2 children in Scope
/*581484*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*581486*/              OPC_MorphNodeTo1, TARGET_VAL(X86::RSQRTSSr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (intrinsic_wo_chain:{ *:[v4f32] } 6397:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$src)) - Complexity = 11
                        // Dst: (RSQRTSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*581494*/            /*Scope*/ 10, /*->581505*/
/*581495*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*581497*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRTSSr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (intrinsic_wo_chain:{ *:[v4f32] } 6397:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$src)) - Complexity = 11
                        // Dst: (VRSQRTSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*581505*/            0, /*End of Scope*/
/*581506*/          0, /*End of Scope*/
/*581507*/        0, // EndSwitchOpcode
/*581508*/      /*Scope*/ 68, /*->581577*/
/*581509*/        OPC_RecordChild1, // #1 = $src2
/*581510*/        OPC_CheckType, MVT::v4f32,
/*581512*/        OPC_Scope, 10, /*->581524*/ // 5 children in Scope
/*581514*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*581516*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VMOVSSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*581524*/        /*Scope*/ 10, /*->581535*/
/*581525*/          OPC_CheckPatternPredicate, 126, // (MF->getFunction().optForSize() || !Subtarget->hasSSE41()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*581527*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (MOVSSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*581535*/        /*Scope*/ 14, /*->581550*/
/*581536*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*581538*/          OPC_EmitInteger, MVT::i8, 1, 
/*581541*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VBLENDPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, 1:{ *:[i8] })
/*581550*/        /*Scope*/ 14, /*->581565*/
/*581551*/          OPC_CheckPatternPredicate, 128, // (!MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*581553*/          OPC_EmitInteger, MVT::i8, 1, 
/*581556*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (BLENDPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, 1:{ *:[i8] })
/*581565*/        /*Scope*/ 10, /*->581576*/
/*581566*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*581568*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VMOVSSZrr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*581576*/        0, /*End of Scope*/
/*581577*/      0, /*End of Scope*/
/*581578*/    0, /*End of Scope*/
/*581579*/  /*SwitchOpcode*/ 42|128,103/*13226*/, TARGET_VAL(X86ISD::MOVSD),// ->594809
/*581583*/    OPC_Scope, 62|128,67/*8638*/, /*->590224*/ // 5 children in Scope
/*581586*/      OPC_RecordChild0, // #0 = $src1
/*581587*/      OPC_MoveChild1,
/*581588*/      OPC_SwitchOpcode /*2 cases */, 16|128,67/*8592*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->590185
/*581593*/        OPC_MoveChild0,
/*581594*/        OPC_SwitchOpcode /*8 cases */, 116|128,43/*5620*/, TARGET_VAL(X86ISD::SELECTS),// ->587219
/*581599*/          OPC_Scope, 32|128,22/*2848*/, /*->584450*/ // 5 children in Scope
/*581602*/            OPC_RecordChild0, // #1 = $mask
/*581603*/            OPC_MoveChild1,
/*581604*/            OPC_SwitchOpcode /*4 cases */, 67|128,5/*707*/, TARGET_VAL(ISD::FMA),// ->582316
/*581609*/              OPC_Scope, 72, /*->581683*/ // 8 children in Scope
/*581611*/                OPC_RecordChild0, // #2 = $src2
/*581612*/                OPC_MoveChild1,
/*581613*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581616*/                OPC_CheckChild0Same, 0,
/*581618*/                OPC_CheckChild1Integer, 0, 
/*581620*/                OPC_MoveParent,
/*581621*/                OPC_MoveChild2,
/*581622*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*581625*/                OPC_RecordMemRef,
/*581626*/                OPC_RecordNode, // #3 = 'ld' chained node
/*581627*/                OPC_CheckFoldableChainNode,
/*581628*/                OPC_RecordChild1, // #4 = $src3
/*581629*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*581631*/                OPC_CheckPredicate, 9, // Predicate_load
/*581633*/                OPC_MoveParent,
/*581634*/                OPC_MoveParent,
/*581635*/                OPC_MoveChild2,
/*581636*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581639*/                OPC_CheckChild0Same, 0,
/*581641*/                OPC_CheckChild1Integer, 0, 
/*581643*/                OPC_MoveParent,
/*581644*/                OPC_CheckType, MVT::f64,
/*581646*/                OPC_MoveParent,
/*581647*/                OPC_MoveParent,
/*581648*/                OPC_CheckType, MVT::v2f64,
/*581650*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581652*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*581655*/                OPC_EmitMergeInputChains, 1, 3, 
/*581658*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*581661*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*581669*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMADD213SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*581683*/              /*Scope*/ 70, /*->581754*/
/*581684*/                OPC_MoveChild0,
/*581685*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581688*/                OPC_CheckChild0Same, 0,
/*581690*/                OPC_CheckChild1Integer, 0, 
/*581692*/                OPC_MoveParent,
/*581693*/                OPC_MoveChild1,
/*581694*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*581697*/                OPC_RecordMemRef,
/*581698*/                OPC_RecordNode, // #2 = 'ld' chained node
/*581699*/                OPC_CheckFoldableChainNode,
/*581700*/                OPC_RecordChild1, // #3 = $src3
/*581701*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*581703*/                OPC_CheckPredicate, 9, // Predicate_load
/*581705*/                OPC_MoveParent,
/*581706*/                OPC_RecordChild2, // #4 = $src2
/*581707*/                OPC_MoveParent,
/*581708*/                OPC_MoveChild2,
/*581709*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581712*/                OPC_CheckChild0Same, 0,
/*581714*/                OPC_CheckChild1Integer, 0, 
/*581716*/                OPC_MoveParent,
/*581717*/                OPC_CheckType, MVT::f64,
/*581719*/                OPC_MoveParent,
/*581720*/                OPC_MoveParent,
/*581721*/                OPC_CheckType, MVT::v2f64,
/*581723*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581725*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*581728*/                OPC_EmitMergeInputChains1_2,
/*581729*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*581732*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*581740*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMADD132SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*581754*/              /*Scope*/ 72, /*->581827*/
/*581755*/                OPC_RecordChild0, // #2 = $src2
/*581756*/                OPC_MoveChild1,
/*581757*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*581760*/                OPC_RecordMemRef,
/*581761*/                OPC_RecordNode, // #3 = 'ld' chained node
/*581762*/                OPC_CheckFoldableChainNode,
/*581763*/                OPC_RecordChild1, // #4 = $src3
/*581764*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*581766*/                OPC_CheckPredicate, 9, // Predicate_load
/*581768*/                OPC_MoveParent,
/*581769*/                OPC_MoveChild2,
/*581770*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581773*/                OPC_CheckChild0Same, 0,
/*581775*/                OPC_CheckChild1Integer, 0, 
/*581777*/                OPC_MoveParent,
/*581778*/                OPC_MoveParent,
/*581779*/                OPC_MoveChild2,
/*581780*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581783*/                OPC_CheckChild0Same, 0,
/*581785*/                OPC_CheckChild1Integer, 0, 
/*581787*/                OPC_MoveParent,
/*581788*/                OPC_CheckType, MVT::f64,
/*581790*/                OPC_MoveParent,
/*581791*/                OPC_MoveParent,
/*581792*/                OPC_CheckType, MVT::v2f64,
/*581794*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581796*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*581799*/                OPC_EmitMergeInputChains, 1, 3, 
/*581802*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*581805*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*581813*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMADD231SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*581827*/              /*Scope*/ 76|128,1/*204*/, /*->582033*/
/*581829*/                OPC_MoveChild0,
/*581830*/                OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->581902
/*581834*/                  OPC_CheckChild0Same, 0,
/*581836*/                  OPC_CheckChild1Integer, 0, 
/*581838*/                  OPC_MoveParent,
/*581839*/                  OPC_RecordChild1, // #2 = $src2
/*581840*/                  OPC_MoveChild2,
/*581841*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*581844*/                  OPC_RecordMemRef,
/*581845*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*581846*/                  OPC_CheckFoldableChainNode,
/*581847*/                  OPC_RecordChild1, // #4 = $src3
/*581848*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*581850*/                  OPC_CheckPredicate, 9, // Predicate_load
/*581852*/                  OPC_MoveParent,
/*581853*/                  OPC_MoveParent,
/*581854*/                  OPC_MoveChild2,
/*581855*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581858*/                  OPC_CheckChild0Same, 0,
/*581860*/                  OPC_CheckChild1Integer, 0, 
/*581862*/                  OPC_MoveParent,
/*581863*/                  OPC_CheckType, MVT::f64,
/*581865*/                  OPC_MoveParent,
/*581866*/                  OPC_MoveParent,
/*581867*/                  OPC_CheckType, MVT::v2f64,
/*581869*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581871*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*581874*/                  OPC_EmitMergeInputChains, 1, 3, 
/*581877*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*581880*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*581888*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                            // Dst: (VFMADD213SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*581902*/                /*SwitchOpcode*/ 127, TARGET_VAL(ISD::LOAD),// ->582032
/*581905*/                  OPC_RecordMemRef,
/*581906*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*581907*/                  OPC_CheckFoldableChainNode,
/*581908*/                  OPC_RecordChild1, // #3 = $src3
/*581909*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*581911*/                  OPC_CheckPredicate, 9, // Predicate_load
/*581913*/                  OPC_MoveParent,
/*581914*/                  OPC_Scope, 57, /*->581973*/ // 2 children in Scope
/*581916*/                    OPC_MoveChild1,
/*581917*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581920*/                    OPC_CheckChild0Same, 0,
/*581922*/                    OPC_CheckChild1Integer, 0, 
/*581924*/                    OPC_MoveParent,
/*581925*/                    OPC_RecordChild2, // #4 = $src2
/*581926*/                    OPC_MoveParent,
/*581927*/                    OPC_MoveChild2,
/*581928*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581931*/                    OPC_CheckChild0Same, 0,
/*581933*/                    OPC_CheckChild1Integer, 0, 
/*581935*/                    OPC_MoveParent,
/*581936*/                    OPC_CheckType, MVT::f64,
/*581938*/                    OPC_MoveParent,
/*581939*/                    OPC_MoveParent,
/*581940*/                    OPC_CheckType, MVT::v2f64,
/*581942*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*581944*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*581947*/                    OPC_EmitMergeInputChains1_2,
/*581948*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*581951*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*581959*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFMADD132SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*581973*/                  /*Scope*/ 57, /*->582031*/
/*581974*/                    OPC_RecordChild1, // #4 = $src2
/*581975*/                    OPC_MoveChild2,
/*581976*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581979*/                    OPC_CheckChild0Same, 0,
/*581981*/                    OPC_CheckChild1Integer, 0, 
/*581983*/                    OPC_MoveParent,
/*581984*/                    OPC_MoveParent,
/*581985*/                    OPC_MoveChild2,
/*581986*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*581989*/                    OPC_CheckChild0Same, 0,
/*581991*/                    OPC_CheckChild1Integer, 0, 
/*581993*/                    OPC_MoveParent,
/*581994*/                    OPC_CheckType, MVT::f64,
/*581996*/                    OPC_MoveParent,
/*581997*/                    OPC_MoveParent,
/*581998*/                    OPC_CheckType, MVT::v2f64,
/*582000*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582002*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582005*/                    OPC_EmitMergeInputChains1_2,
/*582006*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582009*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*582017*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFMADD231SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582031*/                  0, /*End of Scope*/
/*582032*/                0, // EndSwitchOpcode
/*582033*/              /*Scope*/ 70, /*->582104*/
/*582034*/                OPC_RecordChild0, // #2 = $src2
/*582035*/                OPC_MoveChild1,
/*582036*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582039*/                OPC_CheckChild0Same, 0,
/*582041*/                OPC_CheckChild1Integer, 0, 
/*582043*/                OPC_MoveParent,
/*582044*/                OPC_MoveChild2,
/*582045*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582048*/                OPC_RecordMemRef,
/*582049*/                OPC_RecordNode, // #3 = 'ld' chained node
/*582050*/                OPC_CheckFoldableChainNode,
/*582051*/                OPC_RecordChild1, // #4 = $src3
/*582052*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582054*/                OPC_CheckPredicate, 9, // Predicate_load
/*582056*/                OPC_MoveParent,
/*582057*/                OPC_MoveParent,
/*582058*/                OPC_MoveChild2,
/*582059*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*582062*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*582064*/                OPC_MoveParent,
/*582065*/                OPC_CheckType, MVT::f64,
/*582067*/                OPC_MoveParent,
/*582068*/                OPC_MoveParent,
/*582069*/                OPC_CheckType, MVT::v2f64,
/*582071*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582073*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582076*/                OPC_EmitMergeInputChains, 1, 3, 
/*582079*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582082*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*582090*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFMADD213SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582104*/              /*Scope*/ 70, /*->582175*/
/*582105*/                OPC_MoveChild0,
/*582106*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582109*/                OPC_CheckChild0Same, 0,
/*582111*/                OPC_CheckChild1Integer, 0, 
/*582113*/                OPC_MoveParent,
/*582114*/                OPC_RecordChild1, // #2 = $src2
/*582115*/                OPC_MoveChild2,
/*582116*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582119*/                OPC_RecordMemRef,
/*582120*/                OPC_RecordNode, // #3 = 'ld' chained node
/*582121*/                OPC_CheckFoldableChainNode,
/*582122*/                OPC_RecordChild1, // #4 = $src3
/*582123*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582125*/                OPC_CheckPredicate, 9, // Predicate_load
/*582127*/                OPC_MoveParent,
/*582128*/                OPC_MoveParent,
/*582129*/                OPC_MoveChild2,
/*582130*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*582133*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*582135*/                OPC_MoveParent,
/*582136*/                OPC_CheckType, MVT::f64,
/*582138*/                OPC_MoveParent,
/*582139*/                OPC_MoveParent,
/*582140*/                OPC_CheckType, MVT::v2f64,
/*582142*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582144*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582147*/                OPC_EmitMergeInputChains, 1, 3, 
/*582150*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582153*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*582161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFMADD132SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582175*/              /*Scope*/ 70, /*->582246*/
/*582176*/                OPC_RecordChild0, // #2 = $src2
/*582177*/                OPC_MoveChild1,
/*582178*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582181*/                OPC_RecordMemRef,
/*582182*/                OPC_RecordNode, // #3 = 'ld' chained node
/*582183*/                OPC_CheckFoldableChainNode,
/*582184*/                OPC_RecordChild1, // #4 = $src3
/*582185*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582187*/                OPC_CheckPredicate, 9, // Predicate_load
/*582189*/                OPC_MoveParent,
/*582190*/                OPC_MoveChild2,
/*582191*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582194*/                OPC_CheckChild0Same, 0,
/*582196*/                OPC_CheckChild1Integer, 0, 
/*582198*/                OPC_MoveParent,
/*582199*/                OPC_MoveParent,
/*582200*/                OPC_MoveChild2,
/*582201*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*582204*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*582206*/                OPC_MoveParent,
/*582207*/                OPC_CheckType, MVT::f64,
/*582209*/                OPC_MoveParent,
/*582210*/                OPC_MoveParent,
/*582211*/                OPC_CheckType, MVT::v2f64,
/*582213*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582215*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582218*/                OPC_EmitMergeInputChains, 1, 3, 
/*582221*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582224*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*582232*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFMADD231SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582246*/              /*Scope*/ 68, /*->582315*/
/*582247*/                OPC_MoveChild0,
/*582248*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582251*/                OPC_RecordMemRef,
/*582252*/                OPC_RecordNode, // #2 = 'ld' chained node
/*582253*/                OPC_CheckFoldableChainNode,
/*582254*/                OPC_RecordChild1, // #3 = $src3
/*582255*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582257*/                OPC_CheckPredicate, 9, // Predicate_load
/*582259*/                OPC_MoveParent,
/*582260*/                OPC_RecordChild1, // #4 = $src2
/*582261*/                OPC_MoveChild2,
/*582262*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582265*/                OPC_CheckChild0Same, 0,
/*582267*/                OPC_CheckChild1Integer, 0, 
/*582269*/                OPC_MoveParent,
/*582270*/                OPC_MoveParent,
/*582271*/                OPC_MoveChild2,
/*582272*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*582275*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*582277*/                OPC_MoveParent,
/*582278*/                OPC_CheckType, MVT::f64,
/*582280*/                OPC_MoveParent,
/*582281*/                OPC_MoveParent,
/*582282*/                OPC_CheckType, MVT::v2f64,
/*582284*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582286*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582289*/                OPC_EmitMergeInputChains1_2,
/*582290*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582293*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*582301*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFMADD231SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582315*/              0, /*End of Scope*/
/*582316*/            /*SwitchOpcode*/ 67|128,5/*707*/, TARGET_VAL(X86ISD::FMSUB),// ->583027
/*582320*/              OPC_Scope, 72, /*->582394*/ // 8 children in Scope
/*582322*/                OPC_RecordChild0, // #2 = $src2
/*582323*/                OPC_MoveChild1,
/*582324*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582327*/                OPC_CheckChild0Same, 0,
/*582329*/                OPC_CheckChild1Integer, 0, 
/*582331*/                OPC_MoveParent,
/*582332*/                OPC_MoveChild2,
/*582333*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582336*/                OPC_RecordMemRef,
/*582337*/                OPC_RecordNode, // #3 = 'ld' chained node
/*582338*/                OPC_CheckFoldableChainNode,
/*582339*/                OPC_RecordChild1, // #4 = $src3
/*582340*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582342*/                OPC_CheckPredicate, 9, // Predicate_load
/*582344*/                OPC_MoveParent,
/*582345*/                OPC_MoveParent,
/*582346*/                OPC_MoveChild2,
/*582347*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582350*/                OPC_CheckChild0Same, 0,
/*582352*/                OPC_CheckChild1Integer, 0, 
/*582354*/                OPC_MoveParent,
/*582355*/                OPC_CheckType, MVT::f64,
/*582357*/                OPC_MoveParent,
/*582358*/                OPC_MoveParent,
/*582359*/                OPC_CheckType, MVT::v2f64,
/*582361*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582363*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582366*/                OPC_EmitMergeInputChains, 1, 3, 
/*582369*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582372*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*582380*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMSUB213SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582394*/              /*Scope*/ 70, /*->582465*/
/*582395*/                OPC_MoveChild0,
/*582396*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582399*/                OPC_CheckChild0Same, 0,
/*582401*/                OPC_CheckChild1Integer, 0, 
/*582403*/                OPC_MoveParent,
/*582404*/                OPC_MoveChild1,
/*582405*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582408*/                OPC_RecordMemRef,
/*582409*/                OPC_RecordNode, // #2 = 'ld' chained node
/*582410*/                OPC_CheckFoldableChainNode,
/*582411*/                OPC_RecordChild1, // #3 = $src3
/*582412*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582414*/                OPC_CheckPredicate, 9, // Predicate_load
/*582416*/                OPC_MoveParent,
/*582417*/                OPC_RecordChild2, // #4 = $src2
/*582418*/                OPC_MoveParent,
/*582419*/                OPC_MoveChild2,
/*582420*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582423*/                OPC_CheckChild0Same, 0,
/*582425*/                OPC_CheckChild1Integer, 0, 
/*582427*/                OPC_MoveParent,
/*582428*/                OPC_CheckType, MVT::f64,
/*582430*/                OPC_MoveParent,
/*582431*/                OPC_MoveParent,
/*582432*/                OPC_CheckType, MVT::v2f64,
/*582434*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582436*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582439*/                OPC_EmitMergeInputChains1_2,
/*582440*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582443*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*582451*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMSUB132SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582465*/              /*Scope*/ 72, /*->582538*/
/*582466*/                OPC_RecordChild0, // #2 = $src2
/*582467*/                OPC_MoveChild1,
/*582468*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582471*/                OPC_RecordMemRef,
/*582472*/                OPC_RecordNode, // #3 = 'ld' chained node
/*582473*/                OPC_CheckFoldableChainNode,
/*582474*/                OPC_RecordChild1, // #4 = $src3
/*582475*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582477*/                OPC_CheckPredicate, 9, // Predicate_load
/*582479*/                OPC_MoveParent,
/*582480*/                OPC_MoveChild2,
/*582481*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582484*/                OPC_CheckChild0Same, 0,
/*582486*/                OPC_CheckChild1Integer, 0, 
/*582488*/                OPC_MoveParent,
/*582489*/                OPC_MoveParent,
/*582490*/                OPC_MoveChild2,
/*582491*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582494*/                OPC_CheckChild0Same, 0,
/*582496*/                OPC_CheckChild1Integer, 0, 
/*582498*/                OPC_MoveParent,
/*582499*/                OPC_CheckType, MVT::f64,
/*582501*/                OPC_MoveParent,
/*582502*/                OPC_MoveParent,
/*582503*/                OPC_CheckType, MVT::v2f64,
/*582505*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582507*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582510*/                OPC_EmitMergeInputChains, 1, 3, 
/*582513*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582516*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*582524*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFMSUB231SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582538*/              /*Scope*/ 76|128,1/*204*/, /*->582744*/
/*582540*/                OPC_MoveChild0,
/*582541*/                OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->582613
/*582545*/                  OPC_CheckChild0Same, 0,
/*582547*/                  OPC_CheckChild1Integer, 0, 
/*582549*/                  OPC_MoveParent,
/*582550*/                  OPC_RecordChild1, // #2 = $src2
/*582551*/                  OPC_MoveChild2,
/*582552*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582555*/                  OPC_RecordMemRef,
/*582556*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*582557*/                  OPC_CheckFoldableChainNode,
/*582558*/                  OPC_RecordChild1, // #4 = $src3
/*582559*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582561*/                  OPC_CheckPredicate, 9, // Predicate_load
/*582563*/                  OPC_MoveParent,
/*582564*/                  OPC_MoveParent,
/*582565*/                  OPC_MoveChild2,
/*582566*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582569*/                  OPC_CheckChild0Same, 0,
/*582571*/                  OPC_CheckChild1Integer, 0, 
/*582573*/                  OPC_MoveParent,
/*582574*/                  OPC_CheckType, MVT::f64,
/*582576*/                  OPC_MoveParent,
/*582577*/                  OPC_MoveParent,
/*582578*/                  OPC_CheckType, MVT::v2f64,
/*582580*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582582*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582585*/                  OPC_EmitMergeInputChains, 1, 3, 
/*582588*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582591*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*582599*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                            // Dst: (VFMSUB213SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582613*/                /*SwitchOpcode*/ 127, TARGET_VAL(ISD::LOAD),// ->582743
/*582616*/                  OPC_RecordMemRef,
/*582617*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*582618*/                  OPC_CheckFoldableChainNode,
/*582619*/                  OPC_RecordChild1, // #3 = $src3
/*582620*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582622*/                  OPC_CheckPredicate, 9, // Predicate_load
/*582624*/                  OPC_MoveParent,
/*582625*/                  OPC_Scope, 57, /*->582684*/ // 2 children in Scope
/*582627*/                    OPC_MoveChild1,
/*582628*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582631*/                    OPC_CheckChild0Same, 0,
/*582633*/                    OPC_CheckChild1Integer, 0, 
/*582635*/                    OPC_MoveParent,
/*582636*/                    OPC_RecordChild2, // #4 = $src2
/*582637*/                    OPC_MoveParent,
/*582638*/                    OPC_MoveChild2,
/*582639*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582642*/                    OPC_CheckChild0Same, 0,
/*582644*/                    OPC_CheckChild1Integer, 0, 
/*582646*/                    OPC_MoveParent,
/*582647*/                    OPC_CheckType, MVT::f64,
/*582649*/                    OPC_MoveParent,
/*582650*/                    OPC_MoveParent,
/*582651*/                    OPC_CheckType, MVT::v2f64,
/*582653*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582655*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582658*/                    OPC_EmitMergeInputChains1_2,
/*582659*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582662*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*582670*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFMSUB132SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582684*/                  /*Scope*/ 57, /*->582742*/
/*582685*/                    OPC_RecordChild1, // #4 = $src2
/*582686*/                    OPC_MoveChild2,
/*582687*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582690*/                    OPC_CheckChild0Same, 0,
/*582692*/                    OPC_CheckChild1Integer, 0, 
/*582694*/                    OPC_MoveParent,
/*582695*/                    OPC_MoveParent,
/*582696*/                    OPC_MoveChild2,
/*582697*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582700*/                    OPC_CheckChild0Same, 0,
/*582702*/                    OPC_CheckChild1Integer, 0, 
/*582704*/                    OPC_MoveParent,
/*582705*/                    OPC_CheckType, MVT::f64,
/*582707*/                    OPC_MoveParent,
/*582708*/                    OPC_MoveParent,
/*582709*/                    OPC_CheckType, MVT::v2f64,
/*582711*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582713*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582716*/                    OPC_EmitMergeInputChains1_2,
/*582717*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582720*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*582728*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFMSUB231SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582742*/                  0, /*End of Scope*/
/*582743*/                0, // EndSwitchOpcode
/*582744*/              /*Scope*/ 70, /*->582815*/
/*582745*/                OPC_RecordChild0, // #2 = $src2
/*582746*/                OPC_MoveChild1,
/*582747*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582750*/                OPC_CheckChild0Same, 0,
/*582752*/                OPC_CheckChild1Integer, 0, 
/*582754*/                OPC_MoveParent,
/*582755*/                OPC_MoveChild2,
/*582756*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582759*/                OPC_RecordMemRef,
/*582760*/                OPC_RecordNode, // #3 = 'ld' chained node
/*582761*/                OPC_CheckFoldableChainNode,
/*582762*/                OPC_RecordChild1, // #4 = $src3
/*582763*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582765*/                OPC_CheckPredicate, 9, // Predicate_load
/*582767*/                OPC_MoveParent,
/*582768*/                OPC_MoveParent,
/*582769*/                OPC_MoveChild2,
/*582770*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*582773*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*582775*/                OPC_MoveParent,
/*582776*/                OPC_CheckType, MVT::f64,
/*582778*/                OPC_MoveParent,
/*582779*/                OPC_MoveParent,
/*582780*/                OPC_CheckType, MVT::v2f64,
/*582782*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582784*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582787*/                OPC_EmitMergeInputChains, 1, 3, 
/*582790*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582793*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*582801*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFMSUB213SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582815*/              /*Scope*/ 70, /*->582886*/
/*582816*/                OPC_MoveChild0,
/*582817*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582820*/                OPC_CheckChild0Same, 0,
/*582822*/                OPC_CheckChild1Integer, 0, 
/*582824*/                OPC_MoveParent,
/*582825*/                OPC_RecordChild1, // #2 = $src2
/*582826*/                OPC_MoveChild2,
/*582827*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582830*/                OPC_RecordMemRef,
/*582831*/                OPC_RecordNode, // #3 = 'ld' chained node
/*582832*/                OPC_CheckFoldableChainNode,
/*582833*/                OPC_RecordChild1, // #4 = $src3
/*582834*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582836*/                OPC_CheckPredicate, 9, // Predicate_load
/*582838*/                OPC_MoveParent,
/*582839*/                OPC_MoveParent,
/*582840*/                OPC_MoveChild2,
/*582841*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*582844*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*582846*/                OPC_MoveParent,
/*582847*/                OPC_CheckType, MVT::f64,
/*582849*/                OPC_MoveParent,
/*582850*/                OPC_MoveParent,
/*582851*/                OPC_CheckType, MVT::v2f64,
/*582853*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582855*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582858*/                OPC_EmitMergeInputChains, 1, 3, 
/*582861*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582864*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*582872*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFMSUB132SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582886*/              /*Scope*/ 70, /*->582957*/
/*582887*/                OPC_RecordChild0, // #2 = $src2
/*582888*/                OPC_MoveChild1,
/*582889*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582892*/                OPC_RecordMemRef,
/*582893*/                OPC_RecordNode, // #3 = 'ld' chained node
/*582894*/                OPC_CheckFoldableChainNode,
/*582895*/                OPC_RecordChild1, // #4 = $src3
/*582896*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582898*/                OPC_CheckPredicate, 9, // Predicate_load
/*582900*/                OPC_MoveParent,
/*582901*/                OPC_MoveChild2,
/*582902*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582905*/                OPC_CheckChild0Same, 0,
/*582907*/                OPC_CheckChild1Integer, 0, 
/*582909*/                OPC_MoveParent,
/*582910*/                OPC_MoveParent,
/*582911*/                OPC_MoveChild2,
/*582912*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*582915*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*582917*/                OPC_MoveParent,
/*582918*/                OPC_CheckType, MVT::f64,
/*582920*/                OPC_MoveParent,
/*582921*/                OPC_MoveParent,
/*582922*/                OPC_CheckType, MVT::v2f64,
/*582924*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582926*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*582929*/                OPC_EmitMergeInputChains, 1, 3, 
/*582932*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*582935*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*582943*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFMSUB231SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*582957*/              /*Scope*/ 68, /*->583026*/
/*582958*/                OPC_MoveChild0,
/*582959*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*582962*/                OPC_RecordMemRef,
/*582963*/                OPC_RecordNode, // #2 = 'ld' chained node
/*582964*/                OPC_CheckFoldableChainNode,
/*582965*/                OPC_RecordChild1, // #3 = $src3
/*582966*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*582968*/                OPC_CheckPredicate, 9, // Predicate_load
/*582970*/                OPC_MoveParent,
/*582971*/                OPC_RecordChild1, // #4 = $src2
/*582972*/                OPC_MoveChild2,
/*582973*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*582976*/                OPC_CheckChild0Same, 0,
/*582978*/                OPC_CheckChild1Integer, 0, 
/*582980*/                OPC_MoveParent,
/*582981*/                OPC_MoveParent,
/*582982*/                OPC_MoveChild2,
/*582983*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*582986*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*582988*/                OPC_MoveParent,
/*582989*/                OPC_CheckType, MVT::f64,
/*582991*/                OPC_MoveParent,
/*582992*/                OPC_MoveParent,
/*582993*/                OPC_CheckType, MVT::v2f64,
/*582995*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*582997*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583000*/                OPC_EmitMergeInputChains1_2,
/*583001*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583004*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*583012*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFMSUB231SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583026*/              0, /*End of Scope*/
/*583027*/            /*SwitchOpcode*/ 67|128,5/*707*/, TARGET_VAL(X86ISD::FNMADD),// ->583738
/*583031*/              OPC_Scope, 72, /*->583105*/ // 8 children in Scope
/*583033*/                OPC_RecordChild0, // #2 = $src2
/*583034*/                OPC_MoveChild1,
/*583035*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583038*/                OPC_CheckChild0Same, 0,
/*583040*/                OPC_CheckChild1Integer, 0, 
/*583042*/                OPC_MoveParent,
/*583043*/                OPC_MoveChild2,
/*583044*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583047*/                OPC_RecordMemRef,
/*583048*/                OPC_RecordNode, // #3 = 'ld' chained node
/*583049*/                OPC_CheckFoldableChainNode,
/*583050*/                OPC_RecordChild1, // #4 = $src3
/*583051*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583053*/                OPC_CheckPredicate, 9, // Predicate_load
/*583055*/                OPC_MoveParent,
/*583056*/                OPC_MoveParent,
/*583057*/                OPC_MoveChild2,
/*583058*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583061*/                OPC_CheckChild0Same, 0,
/*583063*/                OPC_CheckChild1Integer, 0, 
/*583065*/                OPC_MoveParent,
/*583066*/                OPC_CheckType, MVT::f64,
/*583068*/                OPC_MoveParent,
/*583069*/                OPC_MoveParent,
/*583070*/                OPC_CheckType, MVT::v2f64,
/*583072*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583074*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583077*/                OPC_EmitMergeInputChains, 1, 3, 
/*583080*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583083*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*583091*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMADD213SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583105*/              /*Scope*/ 70, /*->583176*/
/*583106*/                OPC_MoveChild0,
/*583107*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583110*/                OPC_CheckChild0Same, 0,
/*583112*/                OPC_CheckChild1Integer, 0, 
/*583114*/                OPC_MoveParent,
/*583115*/                OPC_MoveChild1,
/*583116*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583119*/                OPC_RecordMemRef,
/*583120*/                OPC_RecordNode, // #2 = 'ld' chained node
/*583121*/                OPC_CheckFoldableChainNode,
/*583122*/                OPC_RecordChild1, // #3 = $src3
/*583123*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583125*/                OPC_CheckPredicate, 9, // Predicate_load
/*583127*/                OPC_MoveParent,
/*583128*/                OPC_RecordChild2, // #4 = $src2
/*583129*/                OPC_MoveParent,
/*583130*/                OPC_MoveChild2,
/*583131*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583134*/                OPC_CheckChild0Same, 0,
/*583136*/                OPC_CheckChild1Integer, 0, 
/*583138*/                OPC_MoveParent,
/*583139*/                OPC_CheckType, MVT::f64,
/*583141*/                OPC_MoveParent,
/*583142*/                OPC_MoveParent,
/*583143*/                OPC_CheckType, MVT::v2f64,
/*583145*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583147*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583150*/                OPC_EmitMergeInputChains1_2,
/*583151*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583154*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*583162*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMADD132SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583176*/              /*Scope*/ 72, /*->583249*/
/*583177*/                OPC_RecordChild0, // #2 = $src2
/*583178*/                OPC_MoveChild1,
/*583179*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583182*/                OPC_RecordMemRef,
/*583183*/                OPC_RecordNode, // #3 = 'ld' chained node
/*583184*/                OPC_CheckFoldableChainNode,
/*583185*/                OPC_RecordChild1, // #4 = $src3
/*583186*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583188*/                OPC_CheckPredicate, 9, // Predicate_load
/*583190*/                OPC_MoveParent,
/*583191*/                OPC_MoveChild2,
/*583192*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583195*/                OPC_CheckChild0Same, 0,
/*583197*/                OPC_CheckChild1Integer, 0, 
/*583199*/                OPC_MoveParent,
/*583200*/                OPC_MoveParent,
/*583201*/                OPC_MoveChild2,
/*583202*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583205*/                OPC_CheckChild0Same, 0,
/*583207*/                OPC_CheckChild1Integer, 0, 
/*583209*/                OPC_MoveParent,
/*583210*/                OPC_CheckType, MVT::f64,
/*583212*/                OPC_MoveParent,
/*583213*/                OPC_MoveParent,
/*583214*/                OPC_CheckType, MVT::v2f64,
/*583216*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583218*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583221*/                OPC_EmitMergeInputChains, 1, 3, 
/*583224*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583227*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*583235*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMADD231SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583249*/              /*Scope*/ 76|128,1/*204*/, /*->583455*/
/*583251*/                OPC_MoveChild0,
/*583252*/                OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->583324
/*583256*/                  OPC_CheckChild0Same, 0,
/*583258*/                  OPC_CheckChild1Integer, 0, 
/*583260*/                  OPC_MoveParent,
/*583261*/                  OPC_RecordChild1, // #2 = $src2
/*583262*/                  OPC_MoveChild2,
/*583263*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583266*/                  OPC_RecordMemRef,
/*583267*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*583268*/                  OPC_CheckFoldableChainNode,
/*583269*/                  OPC_RecordChild1, // #4 = $src3
/*583270*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583272*/                  OPC_CheckPredicate, 9, // Predicate_load
/*583274*/                  OPC_MoveParent,
/*583275*/                  OPC_MoveParent,
/*583276*/                  OPC_MoveChild2,
/*583277*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583280*/                  OPC_CheckChild0Same, 0,
/*583282*/                  OPC_CheckChild1Integer, 0, 
/*583284*/                  OPC_MoveParent,
/*583285*/                  OPC_CheckType, MVT::f64,
/*583287*/                  OPC_MoveParent,
/*583288*/                  OPC_MoveParent,
/*583289*/                  OPC_CheckType, MVT::v2f64,
/*583291*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583293*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583296*/                  OPC_EmitMergeInputChains, 1, 3, 
/*583299*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583302*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*583310*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                            // Dst: (VFNMADD213SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583324*/                /*SwitchOpcode*/ 127, TARGET_VAL(ISD::LOAD),// ->583454
/*583327*/                  OPC_RecordMemRef,
/*583328*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*583329*/                  OPC_CheckFoldableChainNode,
/*583330*/                  OPC_RecordChild1, // #3 = $src3
/*583331*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583333*/                  OPC_CheckPredicate, 9, // Predicate_load
/*583335*/                  OPC_MoveParent,
/*583336*/                  OPC_Scope, 57, /*->583395*/ // 2 children in Scope
/*583338*/                    OPC_MoveChild1,
/*583339*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583342*/                    OPC_CheckChild0Same, 0,
/*583344*/                    OPC_CheckChild1Integer, 0, 
/*583346*/                    OPC_MoveParent,
/*583347*/                    OPC_RecordChild2, // #4 = $src2
/*583348*/                    OPC_MoveParent,
/*583349*/                    OPC_MoveChild2,
/*583350*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583353*/                    OPC_CheckChild0Same, 0,
/*583355*/                    OPC_CheckChild1Integer, 0, 
/*583357*/                    OPC_MoveParent,
/*583358*/                    OPC_CheckType, MVT::f64,
/*583360*/                    OPC_MoveParent,
/*583361*/                    OPC_MoveParent,
/*583362*/                    OPC_CheckType, MVT::v2f64,
/*583364*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583366*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583369*/                    OPC_EmitMergeInputChains1_2,
/*583370*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583373*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*583381*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFNMADD132SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583395*/                  /*Scope*/ 57, /*->583453*/
/*583396*/                    OPC_RecordChild1, // #4 = $src2
/*583397*/                    OPC_MoveChild2,
/*583398*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583401*/                    OPC_CheckChild0Same, 0,
/*583403*/                    OPC_CheckChild1Integer, 0, 
/*583405*/                    OPC_MoveParent,
/*583406*/                    OPC_MoveParent,
/*583407*/                    OPC_MoveChild2,
/*583408*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583411*/                    OPC_CheckChild0Same, 0,
/*583413*/                    OPC_CheckChild1Integer, 0, 
/*583415*/                    OPC_MoveParent,
/*583416*/                    OPC_CheckType, MVT::f64,
/*583418*/                    OPC_MoveParent,
/*583419*/                    OPC_MoveParent,
/*583420*/                    OPC_CheckType, MVT::v2f64,
/*583422*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583424*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583427*/                    OPC_EmitMergeInputChains1_2,
/*583428*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583431*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*583439*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFNMADD231SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583453*/                  0, /*End of Scope*/
/*583454*/                0, // EndSwitchOpcode
/*583455*/              /*Scope*/ 70, /*->583526*/
/*583456*/                OPC_RecordChild0, // #2 = $src2
/*583457*/                OPC_MoveChild1,
/*583458*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583461*/                OPC_CheckChild0Same, 0,
/*583463*/                OPC_CheckChild1Integer, 0, 
/*583465*/                OPC_MoveParent,
/*583466*/                OPC_MoveChild2,
/*583467*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583470*/                OPC_RecordMemRef,
/*583471*/                OPC_RecordNode, // #3 = 'ld' chained node
/*583472*/                OPC_CheckFoldableChainNode,
/*583473*/                OPC_RecordChild1, // #4 = $src3
/*583474*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583476*/                OPC_CheckPredicate, 9, // Predicate_load
/*583478*/                OPC_MoveParent,
/*583479*/                OPC_MoveParent,
/*583480*/                OPC_MoveChild2,
/*583481*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*583484*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*583486*/                OPC_MoveParent,
/*583487*/                OPC_CheckType, MVT::f64,
/*583489*/                OPC_MoveParent,
/*583490*/                OPC_MoveParent,
/*583491*/                OPC_CheckType, MVT::v2f64,
/*583493*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583495*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583498*/                OPC_EmitMergeInputChains, 1, 3, 
/*583501*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583504*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*583512*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFNMADD213SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583526*/              /*Scope*/ 70, /*->583597*/
/*583527*/                OPC_MoveChild0,
/*583528*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583531*/                OPC_CheckChild0Same, 0,
/*583533*/                OPC_CheckChild1Integer, 0, 
/*583535*/                OPC_MoveParent,
/*583536*/                OPC_RecordChild1, // #2 = $src2
/*583537*/                OPC_MoveChild2,
/*583538*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583541*/                OPC_RecordMemRef,
/*583542*/                OPC_RecordNode, // #3 = 'ld' chained node
/*583543*/                OPC_CheckFoldableChainNode,
/*583544*/                OPC_RecordChild1, // #4 = $src3
/*583545*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583547*/                OPC_CheckPredicate, 9, // Predicate_load
/*583549*/                OPC_MoveParent,
/*583550*/                OPC_MoveParent,
/*583551*/                OPC_MoveChild2,
/*583552*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*583555*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*583557*/                OPC_MoveParent,
/*583558*/                OPC_CheckType, MVT::f64,
/*583560*/                OPC_MoveParent,
/*583561*/                OPC_MoveParent,
/*583562*/                OPC_CheckType, MVT::v2f64,
/*583564*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583566*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583569*/                OPC_EmitMergeInputChains, 1, 3, 
/*583572*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583575*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*583583*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFNMADD132SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583597*/              /*Scope*/ 70, /*->583668*/
/*583598*/                OPC_RecordChild0, // #2 = $src2
/*583599*/                OPC_MoveChild1,
/*583600*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583603*/                OPC_RecordMemRef,
/*583604*/                OPC_RecordNode, // #3 = 'ld' chained node
/*583605*/                OPC_CheckFoldableChainNode,
/*583606*/                OPC_RecordChild1, // #4 = $src3
/*583607*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583609*/                OPC_CheckPredicate, 9, // Predicate_load
/*583611*/                OPC_MoveParent,
/*583612*/                OPC_MoveChild2,
/*583613*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583616*/                OPC_CheckChild0Same, 0,
/*583618*/                OPC_CheckChild1Integer, 0, 
/*583620*/                OPC_MoveParent,
/*583621*/                OPC_MoveParent,
/*583622*/                OPC_MoveChild2,
/*583623*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*583626*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*583628*/                OPC_MoveParent,
/*583629*/                OPC_CheckType, MVT::f64,
/*583631*/                OPC_MoveParent,
/*583632*/                OPC_MoveParent,
/*583633*/                OPC_CheckType, MVT::v2f64,
/*583635*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583637*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583640*/                OPC_EmitMergeInputChains, 1, 3, 
/*583643*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583646*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*583654*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFNMADD231SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583668*/              /*Scope*/ 68, /*->583737*/
/*583669*/                OPC_MoveChild0,
/*583670*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583673*/                OPC_RecordMemRef,
/*583674*/                OPC_RecordNode, // #2 = 'ld' chained node
/*583675*/                OPC_CheckFoldableChainNode,
/*583676*/                OPC_RecordChild1, // #3 = $src3
/*583677*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583679*/                OPC_CheckPredicate, 9, // Predicate_load
/*583681*/                OPC_MoveParent,
/*583682*/                OPC_RecordChild1, // #4 = $src2
/*583683*/                OPC_MoveChild2,
/*583684*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583687*/                OPC_CheckChild0Same, 0,
/*583689*/                OPC_CheckChild1Integer, 0, 
/*583691*/                OPC_MoveParent,
/*583692*/                OPC_MoveParent,
/*583693*/                OPC_MoveChild2,
/*583694*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*583697*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*583699*/                OPC_MoveParent,
/*583700*/                OPC_CheckType, MVT::f64,
/*583702*/                OPC_MoveParent,
/*583703*/                OPC_MoveParent,
/*583704*/                OPC_CheckType, MVT::v2f64,
/*583706*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583708*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583711*/                OPC_EmitMergeInputChains1_2,
/*583712*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583715*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*583723*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFNMADD231SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583737*/              0, /*End of Scope*/
/*583738*/            /*SwitchOpcode*/ 67|128,5/*707*/, TARGET_VAL(X86ISD::FNMSUB),// ->584449
/*583742*/              OPC_Scope, 72, /*->583816*/ // 8 children in Scope
/*583744*/                OPC_RecordChild0, // #2 = $src2
/*583745*/                OPC_MoveChild1,
/*583746*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583749*/                OPC_CheckChild0Same, 0,
/*583751*/                OPC_CheckChild1Integer, 0, 
/*583753*/                OPC_MoveParent,
/*583754*/                OPC_MoveChild2,
/*583755*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583758*/                OPC_RecordMemRef,
/*583759*/                OPC_RecordNode, // #3 = 'ld' chained node
/*583760*/                OPC_CheckFoldableChainNode,
/*583761*/                OPC_RecordChild1, // #4 = $src3
/*583762*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583764*/                OPC_CheckPredicate, 9, // Predicate_load
/*583766*/                OPC_MoveParent,
/*583767*/                OPC_MoveParent,
/*583768*/                OPC_MoveChild2,
/*583769*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583772*/                OPC_CheckChild0Same, 0,
/*583774*/                OPC_CheckChild1Integer, 0, 
/*583776*/                OPC_MoveParent,
/*583777*/                OPC_CheckType, MVT::f64,
/*583779*/                OPC_MoveParent,
/*583780*/                OPC_MoveParent,
/*583781*/                OPC_CheckType, MVT::v2f64,
/*583783*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583785*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583788*/                OPC_EmitMergeInputChains, 1, 3, 
/*583791*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583794*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*583802*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMSUB213SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583816*/              /*Scope*/ 70, /*->583887*/
/*583817*/                OPC_MoveChild0,
/*583818*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583821*/                OPC_CheckChild0Same, 0,
/*583823*/                OPC_CheckChild1Integer, 0, 
/*583825*/                OPC_MoveParent,
/*583826*/                OPC_MoveChild1,
/*583827*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583830*/                OPC_RecordMemRef,
/*583831*/                OPC_RecordNode, // #2 = 'ld' chained node
/*583832*/                OPC_CheckFoldableChainNode,
/*583833*/                OPC_RecordChild1, // #3 = $src3
/*583834*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583836*/                OPC_CheckPredicate, 9, // Predicate_load
/*583838*/                OPC_MoveParent,
/*583839*/                OPC_RecordChild2, // #4 = $src2
/*583840*/                OPC_MoveParent,
/*583841*/                OPC_MoveChild2,
/*583842*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583845*/                OPC_CheckChild0Same, 0,
/*583847*/                OPC_CheckChild1Integer, 0, 
/*583849*/                OPC_MoveParent,
/*583850*/                OPC_CheckType, MVT::f64,
/*583852*/                OPC_MoveParent,
/*583853*/                OPC_MoveParent,
/*583854*/                OPC_CheckType, MVT::v2f64,
/*583856*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583858*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583861*/                OPC_EmitMergeInputChains1_2,
/*583862*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583865*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*583873*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMSUB132SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583887*/              /*Scope*/ 72, /*->583960*/
/*583888*/                OPC_RecordChild0, // #2 = $src2
/*583889*/                OPC_MoveChild1,
/*583890*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583893*/                OPC_RecordMemRef,
/*583894*/                OPC_RecordNode, // #3 = 'ld' chained node
/*583895*/                OPC_CheckFoldableChainNode,
/*583896*/                OPC_RecordChild1, // #4 = $src3
/*583897*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583899*/                OPC_CheckPredicate, 9, // Predicate_load
/*583901*/                OPC_MoveParent,
/*583902*/                OPC_MoveChild2,
/*583903*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583906*/                OPC_CheckChild0Same, 0,
/*583908*/                OPC_CheckChild1Integer, 0, 
/*583910*/                OPC_MoveParent,
/*583911*/                OPC_MoveParent,
/*583912*/                OPC_MoveChild2,
/*583913*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583916*/                OPC_CheckChild0Same, 0,
/*583918*/                OPC_CheckChild1Integer, 0, 
/*583920*/                OPC_MoveParent,
/*583921*/                OPC_CheckType, MVT::f64,
/*583923*/                OPC_MoveParent,
/*583924*/                OPC_MoveParent,
/*583925*/                OPC_CheckType, MVT::v2f64,
/*583927*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*583929*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*583932*/                OPC_EmitMergeInputChains, 1, 3, 
/*583935*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*583938*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*583946*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                          // Dst: (VFNMSUB231SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*583960*/              /*Scope*/ 76|128,1/*204*/, /*->584166*/
/*583962*/                OPC_MoveChild0,
/*583963*/                OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->584035
/*583967*/                  OPC_CheckChild0Same, 0,
/*583969*/                  OPC_CheckChild1Integer, 0, 
/*583971*/                  OPC_MoveParent,
/*583972*/                  OPC_RecordChild1, // #2 = $src2
/*583973*/                  OPC_MoveChild2,
/*583974*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*583977*/                  OPC_RecordMemRef,
/*583978*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*583979*/                  OPC_CheckFoldableChainNode,
/*583980*/                  OPC_RecordChild1, // #4 = $src3
/*583981*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*583983*/                  OPC_CheckPredicate, 9, // Predicate_load
/*583985*/                  OPC_MoveParent,
/*583986*/                  OPC_MoveParent,
/*583987*/                  OPC_MoveChild2,
/*583988*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*583991*/                  OPC_CheckChild0Same, 0,
/*583993*/                  OPC_CheckChild1Integer, 0, 
/*583995*/                  OPC_MoveParent,
/*583996*/                  OPC_CheckType, MVT::f64,
/*583998*/                  OPC_MoveParent,
/*583999*/                  OPC_MoveParent,
/*584000*/                  OPC_CheckType, MVT::v2f64,
/*584002*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584004*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*584007*/                  OPC_EmitMergeInputChains, 1, 3, 
/*584010*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584013*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*584021*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                            // Dst: (VFNMSUB213SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*584035*/                /*SwitchOpcode*/ 127, TARGET_VAL(ISD::LOAD),// ->584165
/*584038*/                  OPC_RecordMemRef,
/*584039*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*584040*/                  OPC_CheckFoldableChainNode,
/*584041*/                  OPC_RecordChild1, // #3 = $src3
/*584042*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*584044*/                  OPC_CheckPredicate, 9, // Predicate_load
/*584046*/                  OPC_MoveParent,
/*584047*/                  OPC_Scope, 57, /*->584106*/ // 2 children in Scope
/*584049*/                    OPC_MoveChild1,
/*584050*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584053*/                    OPC_CheckChild0Same, 0,
/*584055*/                    OPC_CheckChild1Integer, 0, 
/*584057*/                    OPC_MoveParent,
/*584058*/                    OPC_RecordChild2, // #4 = $src2
/*584059*/                    OPC_MoveParent,
/*584060*/                    OPC_MoveChild2,
/*584061*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584064*/                    OPC_CheckChild0Same, 0,
/*584066*/                    OPC_CheckChild1Integer, 0, 
/*584068*/                    OPC_MoveParent,
/*584069*/                    OPC_CheckType, MVT::f64,
/*584071*/                    OPC_MoveParent,
/*584072*/                    OPC_MoveParent,
/*584073*/                    OPC_CheckType, MVT::v2f64,
/*584075*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584077*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*584080*/                    OPC_EmitMergeInputChains1_2,
/*584081*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584084*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*584092*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFNMSUB132SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*584106*/                  /*Scope*/ 57, /*->584164*/
/*584107*/                    OPC_RecordChild1, // #4 = $src2
/*584108*/                    OPC_MoveChild2,
/*584109*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584112*/                    OPC_CheckChild0Same, 0,
/*584114*/                    OPC_CheckChild1Integer, 0, 
/*584116*/                    OPC_MoveParent,
/*584117*/                    OPC_MoveParent,
/*584118*/                    OPC_MoveChild2,
/*584119*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584122*/                    OPC_CheckChild0Same, 0,
/*584124*/                    OPC_CheckChild1Integer, 0, 
/*584126*/                    OPC_MoveParent,
/*584127*/                    OPC_CheckType, MVT::f64,
/*584129*/                    OPC_MoveParent,
/*584130*/                    OPC_MoveParent,
/*584131*/                    OPC_CheckType, MVT::v2f64,
/*584133*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584135*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*584138*/                    OPC_EmitMergeInputChains1_2,
/*584139*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584142*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*584150*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 50
                              // Dst: (VFNMSUB231SDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*584164*/                  0, /*End of Scope*/
/*584165*/                0, // EndSwitchOpcode
/*584166*/              /*Scope*/ 70, /*->584237*/
/*584167*/                OPC_RecordChild0, // #2 = $src2
/*584168*/                OPC_MoveChild1,
/*584169*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584172*/                OPC_CheckChild0Same, 0,
/*584174*/                OPC_CheckChild1Integer, 0, 
/*584176*/                OPC_MoveParent,
/*584177*/                OPC_MoveChild2,
/*584178*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*584181*/                OPC_RecordMemRef,
/*584182*/                OPC_RecordNode, // #3 = 'ld' chained node
/*584183*/                OPC_CheckFoldableChainNode,
/*584184*/                OPC_RecordChild1, // #4 = $src3
/*584185*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*584187*/                OPC_CheckPredicate, 9, // Predicate_load
/*584189*/                OPC_MoveParent,
/*584190*/                OPC_MoveParent,
/*584191*/                OPC_MoveChild2,
/*584192*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*584195*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*584197*/                OPC_MoveParent,
/*584198*/                OPC_CheckType, MVT::f64,
/*584200*/                OPC_MoveParent,
/*584201*/                OPC_MoveParent,
/*584202*/                OPC_CheckType, MVT::v2f64,
/*584204*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584206*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*584209*/                OPC_EmitMergeInputChains, 1, 3, 
/*584212*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584215*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*584223*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFNMSUB213SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*584237*/              /*Scope*/ 70, /*->584308*/
/*584238*/                OPC_MoveChild0,
/*584239*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584242*/                OPC_CheckChild0Same, 0,
/*584244*/                OPC_CheckChild1Integer, 0, 
/*584246*/                OPC_MoveParent,
/*584247*/                OPC_RecordChild1, // #2 = $src2
/*584248*/                OPC_MoveChild2,
/*584249*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*584252*/                OPC_RecordMemRef,
/*584253*/                OPC_RecordNode, // #3 = 'ld' chained node
/*584254*/                OPC_CheckFoldableChainNode,
/*584255*/                OPC_RecordChild1, // #4 = $src3
/*584256*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*584258*/                OPC_CheckPredicate, 9, // Predicate_load
/*584260*/                OPC_MoveParent,
/*584261*/                OPC_MoveParent,
/*584262*/                OPC_MoveChild2,
/*584263*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*584266*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*584268*/                OPC_MoveParent,
/*584269*/                OPC_CheckType, MVT::f64,
/*584271*/                OPC_MoveParent,
/*584272*/                OPC_MoveParent,
/*584273*/                OPC_CheckType, MVT::v2f64,
/*584275*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584277*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*584280*/                OPC_EmitMergeInputChains, 1, 3, 
/*584283*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584286*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*584294*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFNMSUB132SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*584308*/              /*Scope*/ 70, /*->584379*/
/*584309*/                OPC_RecordChild0, // #2 = $src2
/*584310*/                OPC_MoveChild1,
/*584311*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*584314*/                OPC_RecordMemRef,
/*584315*/                OPC_RecordNode, // #3 = 'ld' chained node
/*584316*/                OPC_CheckFoldableChainNode,
/*584317*/                OPC_RecordChild1, // #4 = $src3
/*584318*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*584320*/                OPC_CheckPredicate, 9, // Predicate_load
/*584322*/                OPC_MoveParent,
/*584323*/                OPC_MoveChild2,
/*584324*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584327*/                OPC_CheckChild0Same, 0,
/*584329*/                OPC_CheckChild1Integer, 0, 
/*584331*/                OPC_MoveParent,
/*584332*/                OPC_MoveParent,
/*584333*/                OPC_MoveChild2,
/*584334*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*584337*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*584339*/                OPC_MoveParent,
/*584340*/                OPC_CheckType, MVT::f64,
/*584342*/                OPC_MoveParent,
/*584343*/                OPC_MoveParent,
/*584344*/                OPC_CheckType, MVT::v2f64,
/*584346*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584348*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*584351*/                OPC_EmitMergeInputChains, 1, 3, 
/*584354*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584357*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*584365*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFNMSUB231SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*584379*/              /*Scope*/ 68, /*->584448*/
/*584380*/                OPC_MoveChild0,
/*584381*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*584384*/                OPC_RecordMemRef,
/*584385*/                OPC_RecordNode, // #2 = 'ld' chained node
/*584386*/                OPC_CheckFoldableChainNode,
/*584387*/                OPC_RecordChild1, // #3 = $src3
/*584388*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*584390*/                OPC_CheckPredicate, 9, // Predicate_load
/*584392*/                OPC_MoveParent,
/*584393*/                OPC_RecordChild1, // #4 = $src2
/*584394*/                OPC_MoveChild2,
/*584395*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584398*/                OPC_CheckChild0Same, 0,
/*584400*/                OPC_CheckChild1Integer, 0, 
/*584402*/                OPC_MoveParent,
/*584403*/                OPC_MoveParent,
/*584404*/                OPC_MoveChild2,
/*584405*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*584408*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*584410*/                OPC_MoveParent,
/*584411*/                OPC_CheckType, MVT::f64,
/*584413*/                OPC_MoveParent,
/*584414*/                OPC_MoveParent,
/*584415*/                OPC_CheckType, MVT::v2f64,
/*584417*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584419*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*584422*/                OPC_EmitMergeInputChains1_2,
/*584423*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584426*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*584434*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VFNMSUB231SDZm_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*584448*/              0, /*End of Scope*/
/*584449*/            0, // EndSwitchOpcode
/*584450*/          /*Scope*/ 69, /*->584520*/
/*584451*/            OPC_MoveChild0,
/*584452*/            OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*584455*/            OPC_MoveChild0,
/*584456*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/*584459*/            OPC_RecordChild0, // #1 = $mask
/*584460*/            OPC_CheckChild0Type, MVT::i32,
/*584462*/            OPC_CheckType, MVT::i8,
/*584464*/            OPC_MoveParent,
/*584465*/            OPC_MoveParent,
/*584466*/            OPC_MoveChild1,
/*584467*/            OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT),
/*584470*/            OPC_MoveChild0,
/*584471*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584474*/            OPC_RecordChild0, // #2 = $src2
/*584475*/            OPC_CheckChild0Type, MVT::v2f64,
/*584477*/            OPC_CheckChild1Integer, 0, 
/*584479*/            OPC_MoveParent,
/*584480*/            OPC_MoveParent,
/*584481*/            OPC_MoveChild2,
/*584482*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584485*/            OPC_RecordChild0, // #3 = $dst
/*584486*/            OPC_CheckChild0Type, MVT::v2f64,
/*584488*/            OPC_CheckChild1Integer, 0, 
/*584490*/            OPC_MoveParent,
/*584491*/            OPC_CheckType, MVT::f64,
/*584493*/            OPC_MoveParent,
/*584494*/            OPC_MoveParent,
/*584495*/            OPC_CheckType, MVT::v2f64,
/*584497*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584499*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*584502*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*584510*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 5, 2, 0, 
                      // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } (scalar_to_vector:{ *:[v1i1] } (trunc:{ *:[i8] } GR32:{ *:[i32] }:$mask)), (fsqrt:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src2, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 34
                      // Dst: (VSQRTSDZr_Intk:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } ?:{ *:[i32] }:$mask, VK1WM:{ *:[i32] }), v2f64:{ *:[v2f64] }:$src2, v2f64:{ *:[v2f64] }:$src1)
/*584520*/          /*Scope*/ 124|128,6/*892*/, /*->585414*/
/*584522*/            OPC_RecordChild0, // #1 = $mask
/*584523*/            OPC_MoveChild1,
/*584524*/            OPC_SwitchOpcode /*4 cases */, 90|128,1/*218*/, TARGET_VAL(X86ISD::FMADD_RND),// ->584747
/*584529*/              OPC_Scope, 15|128,1/*143*/, /*->584675*/ // 2 children in Scope
/*584532*/                OPC_RecordChild0, // #2 = $src2
/*584533*/                OPC_Scope, 69, /*->584604*/ // 2 children in Scope
/*584535*/                  OPC_MoveChild1,
/*584536*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584539*/                  OPC_CheckChild0Same, 0,
/*584541*/                  OPC_CheckChild1Integer, 0, 
/*584543*/                  OPC_MoveParent,
/*584544*/                  OPC_RecordChild2, // #3 = $src3
/*584545*/                  OPC_RecordChild3, // #4 = $rc
/*584546*/                  OPC_MoveChild3,
/*584547*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*584550*/                  OPC_MoveParent,
/*584551*/                  OPC_MoveParent,
/*584552*/                  OPC_MoveChild2,
/*584553*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584556*/                  OPC_CheckChild0Same, 0,
/*584558*/                  OPC_CheckChild1Integer, 0, 
/*584560*/                  OPC_MoveParent,
/*584561*/                  OPC_CheckType, MVT::f64,
/*584563*/                  OPC_MoveParent,
/*584564*/                  OPC_MoveParent,
/*584565*/                  OPC_CheckType, MVT::v2f64,
/*584567*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584569*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584572*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*584580*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584583*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*584591*/                  OPC_EmitConvertToTarget, 4,
/*584593*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFMADD213SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*584604*/                /*Scope*/ 69, /*->584674*/
/*584605*/                  OPC_RecordChild1, // #3 = $src3
/*584606*/                  OPC_MoveChild2,
/*584607*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584610*/                  OPC_CheckChild0Same, 0,
/*584612*/                  OPC_CheckChild1Integer, 0, 
/*584614*/                  OPC_MoveParent,
/*584615*/                  OPC_RecordChild3, // #4 = $rc
/*584616*/                  OPC_MoveChild3,
/*584617*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*584620*/                  OPC_MoveParent,
/*584621*/                  OPC_MoveParent,
/*584622*/                  OPC_MoveChild2,
/*584623*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584626*/                  OPC_CheckChild0Same, 0,
/*584628*/                  OPC_CheckChild1Integer, 0, 
/*584630*/                  OPC_MoveParent,
/*584631*/                  OPC_CheckType, MVT::f64,
/*584633*/                  OPC_MoveParent,
/*584634*/                  OPC_MoveParent,
/*584635*/                  OPC_CheckType, MVT::v2f64,
/*584637*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584639*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584642*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*584650*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584653*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*584661*/                  OPC_EmitConvertToTarget, 4,
/*584663*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFMADD231SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*584674*/                0, /*End of Scope*/
/*584675*/              /*Scope*/ 70, /*->584746*/
/*584676*/                OPC_MoveChild0,
/*584677*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584680*/                OPC_CheckChild0Same, 0,
/*584682*/                OPC_CheckChild1Integer, 0, 
/*584684*/                OPC_MoveParent,
/*584685*/                OPC_RecordChild1, // #2 = $src2
/*584686*/                OPC_RecordChild2, // #3 = $src3
/*584687*/                OPC_RecordChild3, // #4 = $rc
/*584688*/                OPC_MoveChild3,
/*584689*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*584692*/                OPC_MoveParent,
/*584693*/                OPC_MoveParent,
/*584694*/                OPC_MoveChild2,
/*584695*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584698*/                OPC_CheckChild0Same, 0,
/*584700*/                OPC_CheckChild1Integer, 0, 
/*584702*/                OPC_MoveParent,
/*584703*/                OPC_CheckType, MVT::f64,
/*584705*/                OPC_MoveParent,
/*584706*/                OPC_MoveParent,
/*584707*/                OPC_CheckType, MVT::v2f64,
/*584709*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584711*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584714*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*584722*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584725*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*584733*/                OPC_EmitConvertToTarget, 4,
/*584735*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Intk), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                          // Dst: (VFMADD213SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*584746*/              0, /*End of Scope*/
/*584747*/            /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->584969
/*584751*/              OPC_Scope, 15|128,1/*143*/, /*->584897*/ // 2 children in Scope
/*584754*/                OPC_RecordChild0, // #2 = $src2
/*584755*/                OPC_Scope, 69, /*->584826*/ // 2 children in Scope
/*584757*/                  OPC_MoveChild1,
/*584758*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584761*/                  OPC_CheckChild0Same, 0,
/*584763*/                  OPC_CheckChild1Integer, 0, 
/*584765*/                  OPC_MoveParent,
/*584766*/                  OPC_RecordChild2, // #3 = $src3
/*584767*/                  OPC_RecordChild3, // #4 = $rc
/*584768*/                  OPC_MoveChild3,
/*584769*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*584772*/                  OPC_MoveParent,
/*584773*/                  OPC_MoveParent,
/*584774*/                  OPC_MoveChild2,
/*584775*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584778*/                  OPC_CheckChild0Same, 0,
/*584780*/                  OPC_CheckChild1Integer, 0, 
/*584782*/                  OPC_MoveParent,
/*584783*/                  OPC_CheckType, MVT::f64,
/*584785*/                  OPC_MoveParent,
/*584786*/                  OPC_MoveParent,
/*584787*/                  OPC_CheckType, MVT::v2f64,
/*584789*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584791*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584794*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*584802*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584805*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*584813*/                  OPC_EmitConvertToTarget, 4,
/*584815*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFMSUB213SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*584826*/                /*Scope*/ 69, /*->584896*/
/*584827*/                  OPC_RecordChild1, // #3 = $src3
/*584828*/                  OPC_MoveChild2,
/*584829*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584832*/                  OPC_CheckChild0Same, 0,
/*584834*/                  OPC_CheckChild1Integer, 0, 
/*584836*/                  OPC_MoveParent,
/*584837*/                  OPC_RecordChild3, // #4 = $rc
/*584838*/                  OPC_MoveChild3,
/*584839*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*584842*/                  OPC_MoveParent,
/*584843*/                  OPC_MoveParent,
/*584844*/                  OPC_MoveChild2,
/*584845*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584848*/                  OPC_CheckChild0Same, 0,
/*584850*/                  OPC_CheckChild1Integer, 0, 
/*584852*/                  OPC_MoveParent,
/*584853*/                  OPC_CheckType, MVT::f64,
/*584855*/                  OPC_MoveParent,
/*584856*/                  OPC_MoveParent,
/*584857*/                  OPC_CheckType, MVT::v2f64,
/*584859*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584861*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584864*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*584872*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584875*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*584883*/                  OPC_EmitConvertToTarget, 4,
/*584885*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFMSUB231SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*584896*/                0, /*End of Scope*/
/*584897*/              /*Scope*/ 70, /*->584968*/
/*584898*/                OPC_MoveChild0,
/*584899*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584902*/                OPC_CheckChild0Same, 0,
/*584904*/                OPC_CheckChild1Integer, 0, 
/*584906*/                OPC_MoveParent,
/*584907*/                OPC_RecordChild1, // #2 = $src2
/*584908*/                OPC_RecordChild2, // #3 = $src3
/*584909*/                OPC_RecordChild3, // #4 = $rc
/*584910*/                OPC_MoveChild3,
/*584911*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*584914*/                OPC_MoveParent,
/*584915*/                OPC_MoveParent,
/*584916*/                OPC_MoveChild2,
/*584917*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584920*/                OPC_CheckChild0Same, 0,
/*584922*/                OPC_CheckChild1Integer, 0, 
/*584924*/                OPC_MoveParent,
/*584925*/                OPC_CheckType, MVT::f64,
/*584927*/                OPC_MoveParent,
/*584928*/                OPC_MoveParent,
/*584929*/                OPC_CheckType, MVT::v2f64,
/*584931*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*584933*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584936*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*584944*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*584947*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*584955*/                OPC_EmitConvertToTarget, 4,
/*584957*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Intk), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                          // Dst: (VFMSUB213SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*584968*/              0, /*End of Scope*/
/*584969*/            /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->585191
/*584973*/              OPC_Scope, 15|128,1/*143*/, /*->585119*/ // 2 children in Scope
/*584976*/                OPC_RecordChild0, // #2 = $src2
/*584977*/                OPC_Scope, 69, /*->585048*/ // 2 children in Scope
/*584979*/                  OPC_MoveChild1,
/*584980*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*584983*/                  OPC_CheckChild0Same, 0,
/*584985*/                  OPC_CheckChild1Integer, 0, 
/*584987*/                  OPC_MoveParent,
/*584988*/                  OPC_RecordChild2, // #3 = $src3
/*584989*/                  OPC_RecordChild3, // #4 = $rc
/*584990*/                  OPC_MoveChild3,
/*584991*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*584994*/                  OPC_MoveParent,
/*584995*/                  OPC_MoveParent,
/*584996*/                  OPC_MoveChild2,
/*584997*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585000*/                  OPC_CheckChild0Same, 0,
/*585002*/                  OPC_CheckChild1Integer, 0, 
/*585004*/                  OPC_MoveParent,
/*585005*/                  OPC_CheckType, MVT::f64,
/*585007*/                  OPC_MoveParent,
/*585008*/                  OPC_MoveParent,
/*585009*/                  OPC_CheckType, MVT::v2f64,
/*585011*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585013*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585016*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*585024*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585027*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*585035*/                  OPC_EmitConvertToTarget, 4,
/*585037*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFNMADD213SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*585048*/                /*Scope*/ 69, /*->585118*/
/*585049*/                  OPC_RecordChild1, // #3 = $src3
/*585050*/                  OPC_MoveChild2,
/*585051*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585054*/                  OPC_CheckChild0Same, 0,
/*585056*/                  OPC_CheckChild1Integer, 0, 
/*585058*/                  OPC_MoveParent,
/*585059*/                  OPC_RecordChild3, // #4 = $rc
/*585060*/                  OPC_MoveChild3,
/*585061*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*585064*/                  OPC_MoveParent,
/*585065*/                  OPC_MoveParent,
/*585066*/                  OPC_MoveChild2,
/*585067*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585070*/                  OPC_CheckChild0Same, 0,
/*585072*/                  OPC_CheckChild1Integer, 0, 
/*585074*/                  OPC_MoveParent,
/*585075*/                  OPC_CheckType, MVT::f64,
/*585077*/                  OPC_MoveParent,
/*585078*/                  OPC_MoveParent,
/*585079*/                  OPC_CheckType, MVT::v2f64,
/*585081*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585083*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585086*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*585094*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585097*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*585105*/                  OPC_EmitConvertToTarget, 4,
/*585107*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFNMADD231SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*585118*/                0, /*End of Scope*/
/*585119*/              /*Scope*/ 70, /*->585190*/
/*585120*/                OPC_MoveChild0,
/*585121*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585124*/                OPC_CheckChild0Same, 0,
/*585126*/                OPC_CheckChild1Integer, 0, 
/*585128*/                OPC_MoveParent,
/*585129*/                OPC_RecordChild1, // #2 = $src2
/*585130*/                OPC_RecordChild2, // #3 = $src3
/*585131*/                OPC_RecordChild3, // #4 = $rc
/*585132*/                OPC_MoveChild3,
/*585133*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*585136*/                OPC_MoveParent,
/*585137*/                OPC_MoveParent,
/*585138*/                OPC_MoveChild2,
/*585139*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585142*/                OPC_CheckChild0Same, 0,
/*585144*/                OPC_CheckChild1Integer, 0, 
/*585146*/                OPC_MoveParent,
/*585147*/                OPC_CheckType, MVT::f64,
/*585149*/                OPC_MoveParent,
/*585150*/                OPC_MoveParent,
/*585151*/                OPC_CheckType, MVT::v2f64,
/*585153*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585155*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585158*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*585166*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585169*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*585177*/                OPC_EmitConvertToTarget, 4,
/*585179*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Intk), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                          // Dst: (VFNMADD213SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*585190*/              0, /*End of Scope*/
/*585191*/            /*SwitchOpcode*/ 90|128,1/*218*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->585413
/*585195*/              OPC_Scope, 15|128,1/*143*/, /*->585341*/ // 2 children in Scope
/*585198*/                OPC_RecordChild0, // #2 = $src2
/*585199*/                OPC_Scope, 69, /*->585270*/ // 2 children in Scope
/*585201*/                  OPC_MoveChild1,
/*585202*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585205*/                  OPC_CheckChild0Same, 0,
/*585207*/                  OPC_CheckChild1Integer, 0, 
/*585209*/                  OPC_MoveParent,
/*585210*/                  OPC_RecordChild2, // #3 = $src3
/*585211*/                  OPC_RecordChild3, // #4 = $rc
/*585212*/                  OPC_MoveChild3,
/*585213*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*585216*/                  OPC_MoveParent,
/*585217*/                  OPC_MoveParent,
/*585218*/                  OPC_MoveChild2,
/*585219*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585222*/                  OPC_CheckChild0Same, 0,
/*585224*/                  OPC_CheckChild1Integer, 0, 
/*585226*/                  OPC_MoveParent,
/*585227*/                  OPC_CheckType, MVT::f64,
/*585229*/                  OPC_MoveParent,
/*585230*/                  OPC_MoveParent,
/*585231*/                  OPC_CheckType, MVT::v2f64,
/*585233*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585235*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585238*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*585246*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585249*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*585257*/                  OPC_EmitConvertToTarget, 4,
/*585259*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFNMSUB213SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*585270*/                /*Scope*/ 69, /*->585340*/
/*585271*/                  OPC_RecordChild1, // #3 = $src3
/*585272*/                  OPC_MoveChild2,
/*585273*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585276*/                  OPC_CheckChild0Same, 0,
/*585278*/                  OPC_CheckChild1Integer, 0, 
/*585280*/                  OPC_MoveParent,
/*585281*/                  OPC_RecordChild3, // #4 = $rc
/*585282*/                  OPC_MoveChild3,
/*585283*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*585286*/                  OPC_MoveParent,
/*585287*/                  OPC_MoveParent,
/*585288*/                  OPC_MoveChild2,
/*585289*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585292*/                  OPC_CheckChild0Same, 0,
/*585294*/                  OPC_CheckChild1Integer, 0, 
/*585296*/                  OPC_MoveParent,
/*585297*/                  OPC_CheckType, MVT::f64,
/*585299*/                  OPC_MoveParent,
/*585300*/                  OPC_MoveParent,
/*585301*/                  OPC_CheckType, MVT::v2f64,
/*585303*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585305*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585308*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*585316*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585319*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*585327*/                  OPC_EmitConvertToTarget, 4,
/*585329*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                            // Dst: (VFNMSUB231SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*585340*/                0, /*End of Scope*/
/*585341*/              /*Scope*/ 70, /*->585412*/
/*585342*/                OPC_MoveChild0,
/*585343*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585346*/                OPC_CheckChild0Same, 0,
/*585348*/                OPC_CheckChild1Integer, 0, 
/*585350*/                OPC_MoveParent,
/*585351*/                OPC_RecordChild1, // #2 = $src2
/*585352*/                OPC_RecordChild2, // #3 = $src3
/*585353*/                OPC_RecordChild3, // #4 = $rc
/*585354*/                OPC_MoveChild3,
/*585355*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*585358*/                OPC_MoveParent,
/*585359*/                OPC_MoveParent,
/*585360*/                OPC_MoveChild2,
/*585361*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585364*/                OPC_CheckChild0Same, 0,
/*585366*/                OPC_CheckChild1Integer, 0, 
/*585368*/                OPC_MoveParent,
/*585369*/                OPC_CheckType, MVT::f64,
/*585371*/                OPC_MoveParent,
/*585372*/                OPC_MoveParent,
/*585373*/                OPC_CheckType, MVT::v2f64,
/*585375*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585377*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585380*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*585388*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585391*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*585399*/                OPC_EmitConvertToTarget, 4,
/*585401*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Intk), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 31
                          // Dst: (VFNMSUB213SDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*585412*/              0, /*End of Scope*/
/*585413*/            0, // EndSwitchOpcode
/*585414*/          /*Scope*/ 65, /*->585480*/
/*585415*/            OPC_MoveChild0,
/*585416*/            OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*585419*/            OPC_MoveChild0,
/*585420*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/*585423*/            OPC_RecordChild0, // #1 = $mask
/*585424*/            OPC_CheckChild0Type, MVT::i32,
/*585426*/            OPC_CheckType, MVT::i8,
/*585428*/            OPC_MoveParent,
/*585429*/            OPC_MoveParent,
/*585430*/            OPC_MoveChild1,
/*585431*/            OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT),
/*585434*/            OPC_MoveChild0,
/*585435*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585438*/            OPC_RecordChild0, // #2 = $src2
/*585439*/            OPC_CheckChild0Type, MVT::v2f64,
/*585441*/            OPC_CheckChild1Integer, 0, 
/*585443*/            OPC_MoveParent,
/*585444*/            OPC_MoveParent,
/*585445*/            OPC_MoveChild2,
/*585446*/            OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*585449*/            OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*585451*/            OPC_MoveParent,
/*585452*/            OPC_CheckType, MVT::f64,
/*585454*/            OPC_MoveParent,
/*585455*/            OPC_MoveParent,
/*585456*/            OPC_CheckType, MVT::v2f64,
/*585458*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585460*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*585463*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 1, 3,  // Results = #4
/*585471*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZr_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 4, 2, 0, 
                      // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } (scalar_to_vector:{ *:[v1i1] } (trunc:{ *:[i8] } GR32:{ *:[i32] }:$mask)), (fsqrt:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src2, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 30
                      // Dst: (VSQRTSDZr_Intkz:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v1i1] } ?:{ *:[i32] }:$mask, VK1WM:{ *:[i32] }), v2f64:{ *:[v2f64] }:$src2, v2f64:{ *:[v2f64] }:$src1)
/*585480*/          /*Scope*/ 72|128,13/*1736*/, /*->587218*/
/*585482*/            OPC_RecordChild0, // #1 = $mask
/*585483*/            OPC_MoveChild1,
/*585484*/            OPC_SwitchOpcode /*10 cases */, 43, TARGET_VAL(ISD::FFLOOR),// ->585531
/*585488*/              OPC_MoveChild0,
/*585489*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585492*/              OPC_RecordChild0, // #2 = $src2
/*585493*/              OPC_CheckChild0Type, MVT::v2f64,
/*585495*/              OPC_CheckChild1Integer, 0, 
/*585497*/              OPC_MoveParent,
/*585498*/              OPC_MoveParent,
/*585499*/              OPC_MoveChild2,
/*585500*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585503*/              OPC_RecordChild0, // #3 = $dst
/*585504*/              OPC_CheckChild0Type, MVT::v2f64,
/*585506*/              OPC_CheckChild1Integer, 0, 
/*585508*/              OPC_MoveParent,
/*585509*/              OPC_CheckType, MVT::f64,
/*585511*/              OPC_MoveParent,
/*585512*/              OPC_MoveParent,
/*585513*/              OPC_CheckType, MVT::v2f64,
/*585515*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585517*/              OPC_EmitInteger, MVT::i32, 1, 
/*585520*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Intk), 0,
                            MVT::v2f64, 5/*#Ops*/, 3, 1, 0, 2, 4, 
                        // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (ffloor:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src2, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 28
                        // Dst: (VRNDSCALESDZr_Intk:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, v2f64:{ *:[v2f64] }:$src2, 1:{ *:[i32] })
/*585531*/            /*SwitchOpcode*/ 43, TARGET_VAL(ISD::FCEIL),// ->585577
/*585534*/              OPC_MoveChild0,
/*585535*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585538*/              OPC_RecordChild0, // #2 = $src2
/*585539*/              OPC_CheckChild0Type, MVT::v2f64,
/*585541*/              OPC_CheckChild1Integer, 0, 
/*585543*/              OPC_MoveParent,
/*585544*/              OPC_MoveParent,
/*585545*/              OPC_MoveChild2,
/*585546*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585549*/              OPC_RecordChild0, // #3 = $dst
/*585550*/              OPC_CheckChild0Type, MVT::v2f64,
/*585552*/              OPC_CheckChild1Integer, 0, 
/*585554*/              OPC_MoveParent,
/*585555*/              OPC_CheckType, MVT::f64,
/*585557*/              OPC_MoveParent,
/*585558*/              OPC_MoveParent,
/*585559*/              OPC_CheckType, MVT::v2f64,
/*585561*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585563*/              OPC_EmitInteger, MVT::i32, 2, 
/*585566*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Intk), 0,
                            MVT::v2f64, 5/*#Ops*/, 3, 1, 0, 2, 4, 
                        // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fceil:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src2, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 28
                        // Dst: (VRNDSCALESDZr_Intk:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, v2f64:{ *:[v2f64] }:$src2, 2:{ *:[i32] })
/*585577*/            /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(ISD::FMA),// ->585771
/*585581*/              OPC_Scope, 125, /*->585708*/ // 2 children in Scope
/*585583*/                OPC_RecordChild0, // #2 = $src2
/*585584*/                OPC_Scope, 60, /*->585646*/ // 2 children in Scope
/*585586*/                  OPC_MoveChild1,
/*585587*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585590*/                  OPC_CheckChild0Same, 0,
/*585592*/                  OPC_CheckChild1Integer, 0, 
/*585594*/                  OPC_MoveParent,
/*585595*/                  OPC_RecordChild2, // #3 = $src3
/*585596*/                  OPC_MoveParent,
/*585597*/                  OPC_MoveChild2,
/*585598*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585601*/                  OPC_CheckChild0Same, 0,
/*585603*/                  OPC_CheckChild1Integer, 0, 
/*585605*/                  OPC_MoveParent,
/*585606*/                  OPC_CheckType, MVT::f64,
/*585608*/                  OPC_MoveParent,
/*585609*/                  OPC_MoveParent,
/*585610*/                  OPC_CheckType, MVT::v2f64,
/*585612*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585614*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585617*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*585625*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585628*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*585636*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Intk), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFMADD213SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*585646*/                /*Scope*/ 60, /*->585707*/
/*585647*/                  OPC_RecordChild1, // #3 = $src3
/*585648*/                  OPC_MoveChild2,
/*585649*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585652*/                  OPC_CheckChild0Same, 0,
/*585654*/                  OPC_CheckChild1Integer, 0, 
/*585656*/                  OPC_MoveParent,
/*585657*/                  OPC_MoveParent,
/*585658*/                  OPC_MoveChild2,
/*585659*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585662*/                  OPC_CheckChild0Same, 0,
/*585664*/                  OPC_CheckChild1Integer, 0, 
/*585666*/                  OPC_MoveParent,
/*585667*/                  OPC_CheckType, MVT::f64,
/*585669*/                  OPC_MoveParent,
/*585670*/                  OPC_MoveParent,
/*585671*/                  OPC_CheckType, MVT::v2f64,
/*585673*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585675*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585678*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*585686*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585689*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*585697*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZr_Intk), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFMADD231SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*585707*/                0, /*End of Scope*/
/*585708*/              /*Scope*/ 61, /*->585770*/
/*585709*/                OPC_MoveChild0,
/*585710*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585713*/                OPC_CheckChild0Same, 0,
/*585715*/                OPC_CheckChild1Integer, 0, 
/*585717*/                OPC_MoveParent,
/*585718*/                OPC_RecordChild1, // #2 = $src2
/*585719*/                OPC_RecordChild2, // #3 = $src3
/*585720*/                OPC_MoveParent,
/*585721*/                OPC_MoveChild2,
/*585722*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585725*/                OPC_CheckChild0Same, 0,
/*585727*/                OPC_CheckChild1Integer, 0, 
/*585729*/                OPC_MoveParent,
/*585730*/                OPC_CheckType, MVT::f64,
/*585732*/                OPC_MoveParent,
/*585733*/                OPC_MoveParent,
/*585734*/                OPC_CheckType, MVT::v2f64,
/*585736*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585738*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585741*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*585749*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585752*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*585760*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Intk), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                          // Dst: (VFMADD213SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*585770*/              0, /*End of Scope*/
/*585771*/            /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(X86ISD::FMSUB),// ->585965
/*585775*/              OPC_Scope, 125, /*->585902*/ // 2 children in Scope
/*585777*/                OPC_RecordChild0, // #2 = $src2
/*585778*/                OPC_Scope, 60, /*->585840*/ // 2 children in Scope
/*585780*/                  OPC_MoveChild1,
/*585781*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585784*/                  OPC_CheckChild0Same, 0,
/*585786*/                  OPC_CheckChild1Integer, 0, 
/*585788*/                  OPC_MoveParent,
/*585789*/                  OPC_RecordChild2, // #3 = $src3
/*585790*/                  OPC_MoveParent,
/*585791*/                  OPC_MoveChild2,
/*585792*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585795*/                  OPC_CheckChild0Same, 0,
/*585797*/                  OPC_CheckChild1Integer, 0, 
/*585799*/                  OPC_MoveParent,
/*585800*/                  OPC_CheckType, MVT::f64,
/*585802*/                  OPC_MoveParent,
/*585803*/                  OPC_MoveParent,
/*585804*/                  OPC_CheckType, MVT::v2f64,
/*585806*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585808*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585811*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*585819*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585822*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*585830*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZr_Intk), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFMSUB213SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*585840*/                /*Scope*/ 60, /*->585901*/
/*585841*/                  OPC_RecordChild1, // #3 = $src3
/*585842*/                  OPC_MoveChild2,
/*585843*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585846*/                  OPC_CheckChild0Same, 0,
/*585848*/                  OPC_CheckChild1Integer, 0, 
/*585850*/                  OPC_MoveParent,
/*585851*/                  OPC_MoveParent,
/*585852*/                  OPC_MoveChild2,
/*585853*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585856*/                  OPC_CheckChild0Same, 0,
/*585858*/                  OPC_CheckChild1Integer, 0, 
/*585860*/                  OPC_MoveParent,
/*585861*/                  OPC_CheckType, MVT::f64,
/*585863*/                  OPC_MoveParent,
/*585864*/                  OPC_MoveParent,
/*585865*/                  OPC_CheckType, MVT::v2f64,
/*585867*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585869*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585872*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*585880*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585883*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*585891*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZr_Intk), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFMSUB231SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*585901*/                0, /*End of Scope*/
/*585902*/              /*Scope*/ 61, /*->585964*/
/*585903*/                OPC_MoveChild0,
/*585904*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585907*/                OPC_CheckChild0Same, 0,
/*585909*/                OPC_CheckChild1Integer, 0, 
/*585911*/                OPC_MoveParent,
/*585912*/                OPC_RecordChild1, // #2 = $src2
/*585913*/                OPC_RecordChild2, // #3 = $src3
/*585914*/                OPC_MoveParent,
/*585915*/                OPC_MoveChild2,
/*585916*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585919*/                OPC_CheckChild0Same, 0,
/*585921*/                OPC_CheckChild1Integer, 0, 
/*585923*/                OPC_MoveParent,
/*585924*/                OPC_CheckType, MVT::f64,
/*585926*/                OPC_MoveParent,
/*585927*/                OPC_MoveParent,
/*585928*/                OPC_CheckType, MVT::v2f64,
/*585930*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*585932*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585935*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*585943*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*585946*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*585954*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZr_Intk), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                          // Dst: (VFMSUB213SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*585964*/              0, /*End of Scope*/
/*585965*/            /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(X86ISD::FNMADD),// ->586159
/*585969*/              OPC_Scope, 125, /*->586096*/ // 2 children in Scope
/*585971*/                OPC_RecordChild0, // #2 = $src2
/*585972*/                OPC_Scope, 60, /*->586034*/ // 2 children in Scope
/*585974*/                  OPC_MoveChild1,
/*585975*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585978*/                  OPC_CheckChild0Same, 0,
/*585980*/                  OPC_CheckChild1Integer, 0, 
/*585982*/                  OPC_MoveParent,
/*585983*/                  OPC_RecordChild2, // #3 = $src3
/*585984*/                  OPC_MoveParent,
/*585985*/                  OPC_MoveChild2,
/*585986*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*585989*/                  OPC_CheckChild0Same, 0,
/*585991*/                  OPC_CheckChild1Integer, 0, 
/*585993*/                  OPC_MoveParent,
/*585994*/                  OPC_CheckType, MVT::f64,
/*585996*/                  OPC_MoveParent,
/*585997*/                  OPC_MoveParent,
/*585998*/                  OPC_CheckType, MVT::v2f64,
/*586000*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586002*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586005*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*586013*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586016*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*586024*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZr_Intk), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFNMADD213SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*586034*/                /*Scope*/ 60, /*->586095*/
/*586035*/                  OPC_RecordChild1, // #3 = $src3
/*586036*/                  OPC_MoveChild2,
/*586037*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586040*/                  OPC_CheckChild0Same, 0,
/*586042*/                  OPC_CheckChild1Integer, 0, 
/*586044*/                  OPC_MoveParent,
/*586045*/                  OPC_MoveParent,
/*586046*/                  OPC_MoveChild2,
/*586047*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586050*/                  OPC_CheckChild0Same, 0,
/*586052*/                  OPC_CheckChild1Integer, 0, 
/*586054*/                  OPC_MoveParent,
/*586055*/                  OPC_CheckType, MVT::f64,
/*586057*/                  OPC_MoveParent,
/*586058*/                  OPC_MoveParent,
/*586059*/                  OPC_CheckType, MVT::v2f64,
/*586061*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586063*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586066*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*586074*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586077*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*586085*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZr_Intk), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFNMADD231SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*586095*/                0, /*End of Scope*/
/*586096*/              /*Scope*/ 61, /*->586158*/
/*586097*/                OPC_MoveChild0,
/*586098*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586101*/                OPC_CheckChild0Same, 0,
/*586103*/                OPC_CheckChild1Integer, 0, 
/*586105*/                OPC_MoveParent,
/*586106*/                OPC_RecordChild1, // #2 = $src2
/*586107*/                OPC_RecordChild2, // #3 = $src3
/*586108*/                OPC_MoveParent,
/*586109*/                OPC_MoveChild2,
/*586110*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586113*/                OPC_CheckChild0Same, 0,
/*586115*/                OPC_CheckChild1Integer, 0, 
/*586117*/                OPC_MoveParent,
/*586118*/                OPC_CheckType, MVT::f64,
/*586120*/                OPC_MoveParent,
/*586121*/                OPC_MoveParent,
/*586122*/                OPC_CheckType, MVT::v2f64,
/*586124*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586126*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586129*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*586137*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586140*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*586148*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZr_Intk), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                          // Dst: (VFNMADD213SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*586158*/              0, /*End of Scope*/
/*586159*/            /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(X86ISD::FNMSUB),// ->586353
/*586163*/              OPC_Scope, 125, /*->586290*/ // 2 children in Scope
/*586165*/                OPC_RecordChild0, // #2 = $src2
/*586166*/                OPC_Scope, 60, /*->586228*/ // 2 children in Scope
/*586168*/                  OPC_MoveChild1,
/*586169*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586172*/                  OPC_CheckChild0Same, 0,
/*586174*/                  OPC_CheckChild1Integer, 0, 
/*586176*/                  OPC_MoveParent,
/*586177*/                  OPC_RecordChild2, // #3 = $src3
/*586178*/                  OPC_MoveParent,
/*586179*/                  OPC_MoveChild2,
/*586180*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586183*/                  OPC_CheckChild0Same, 0,
/*586185*/                  OPC_CheckChild1Integer, 0, 
/*586187*/                  OPC_MoveParent,
/*586188*/                  OPC_CheckType, MVT::f64,
/*586190*/                  OPC_MoveParent,
/*586191*/                  OPC_MoveParent,
/*586192*/                  OPC_CheckType, MVT::v2f64,
/*586194*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586196*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586199*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*586207*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586210*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*586218*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZr_Intk), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFNMSUB213SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*586228*/                /*Scope*/ 60, /*->586289*/
/*586229*/                  OPC_RecordChild1, // #3 = $src3
/*586230*/                  OPC_MoveChild2,
/*586231*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586234*/                  OPC_CheckChild0Same, 0,
/*586236*/                  OPC_CheckChild1Integer, 0, 
/*586238*/                  OPC_MoveParent,
/*586239*/                  OPC_MoveParent,
/*586240*/                  OPC_MoveChild2,
/*586241*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586244*/                  OPC_CheckChild0Same, 0,
/*586246*/                  OPC_CheckChild1Integer, 0, 
/*586248*/                  OPC_MoveParent,
/*586249*/                  OPC_CheckType, MVT::f64,
/*586251*/                  OPC_MoveParent,
/*586252*/                  OPC_MoveParent,
/*586253*/                  OPC_CheckType, MVT::v2f64,
/*586255*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586257*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586260*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*586268*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586271*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*586279*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZr_Intk), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                            // Dst: (VFNMSUB231SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*586289*/                0, /*End of Scope*/
/*586290*/              /*Scope*/ 61, /*->586352*/
/*586291*/                OPC_MoveChild0,
/*586292*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586295*/                OPC_CheckChild0Same, 0,
/*586297*/                OPC_CheckChild1Integer, 0, 
/*586299*/                OPC_MoveParent,
/*586300*/                OPC_RecordChild1, // #2 = $src2
/*586301*/                OPC_RecordChild2, // #3 = $src3
/*586302*/                OPC_MoveParent,
/*586303*/                OPC_MoveChild2,
/*586304*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586307*/                OPC_CheckChild0Same, 0,
/*586309*/                OPC_CheckChild1Integer, 0, 
/*586311*/                OPC_MoveParent,
/*586312*/                OPC_CheckType, MVT::f64,
/*586314*/                OPC_MoveParent,
/*586315*/                OPC_MoveParent,
/*586316*/                OPC_CheckType, MVT::v2f64,
/*586318*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586320*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586323*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*586331*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586334*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*586342*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZr_Intk), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3), (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 28
                          // Dst: (VFNMSUB213SDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*586352*/              0, /*End of Scope*/
/*586353*/            /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(X86ISD::FMADD_RND),// ->586569
/*586357*/              OPC_Scope, 11|128,1/*139*/, /*->586499*/ // 2 children in Scope
/*586360*/                OPC_RecordChild0, // #2 = $src2
/*586361*/                OPC_Scope, 67, /*->586430*/ // 2 children in Scope
/*586363*/                  OPC_MoveChild1,
/*586364*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586367*/                  OPC_CheckChild0Same, 0,
/*586369*/                  OPC_CheckChild1Integer, 0, 
/*586371*/                  OPC_MoveParent,
/*586372*/                  OPC_RecordChild2, // #3 = $src3
/*586373*/                  OPC_RecordChild3, // #4 = $rc
/*586374*/                  OPC_MoveChild3,
/*586375*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*586378*/                  OPC_MoveParent,
/*586379*/                  OPC_MoveParent,
/*586380*/                  OPC_MoveChild2,
/*586381*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*586384*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*586386*/                  OPC_MoveParent,
/*586387*/                  OPC_CheckType, MVT::f64,
/*586389*/                  OPC_MoveParent,
/*586390*/                  OPC_MoveParent,
/*586391*/                  OPC_CheckType, MVT::v2f64,
/*586393*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586395*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586398*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*586406*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586409*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*586417*/                  OPC_EmitConvertToTarget, 4,
/*586419*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                            // Dst: (VFMADD213SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*586430*/                /*Scope*/ 67, /*->586498*/
/*586431*/                  OPC_RecordChild1, // #3 = $src3
/*586432*/                  OPC_MoveChild2,
/*586433*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586436*/                  OPC_CheckChild0Same, 0,
/*586438*/                  OPC_CheckChild1Integer, 0, 
/*586440*/                  OPC_MoveParent,
/*586441*/                  OPC_RecordChild3, // #4 = $rc
/*586442*/                  OPC_MoveChild3,
/*586443*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*586446*/                  OPC_MoveParent,
/*586447*/                  OPC_MoveParent,
/*586448*/                  OPC_MoveChild2,
/*586449*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*586452*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*586454*/                  OPC_MoveParent,
/*586455*/                  OPC_CheckType, MVT::f64,
/*586457*/                  OPC_MoveParent,
/*586458*/                  OPC_MoveParent,
/*586459*/                  OPC_CheckType, MVT::v2f64,
/*586461*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586463*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586466*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*586474*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586477*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*586485*/                  OPC_EmitConvertToTarget, 4,
/*586487*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                            // Dst: (VFMADD231SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*586498*/                0, /*End of Scope*/
/*586499*/              /*Scope*/ 68, /*->586568*/
/*586500*/                OPC_MoveChild0,
/*586501*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586504*/                OPC_CheckChild0Same, 0,
/*586506*/                OPC_CheckChild1Integer, 0, 
/*586508*/                OPC_MoveParent,
/*586509*/                OPC_RecordChild1, // #2 = $src2
/*586510*/                OPC_RecordChild2, // #3 = $src3
/*586511*/                OPC_RecordChild3, // #4 = $rc
/*586512*/                OPC_MoveChild3,
/*586513*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*586516*/                OPC_MoveParent,
/*586517*/                OPC_MoveParent,
/*586518*/                OPC_MoveChild2,
/*586519*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*586522*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*586524*/                OPC_MoveParent,
/*586525*/                OPC_CheckType, MVT::f64,
/*586527*/                OPC_MoveParent,
/*586528*/                OPC_MoveParent,
/*586529*/                OPC_CheckType, MVT::v2f64,
/*586531*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586533*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586536*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*586544*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586547*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*586555*/                OPC_EmitConvertToTarget, 4,
/*586557*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Intkz), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmaddRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                          // Dst: (VFMADD213SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*586568*/              0, /*End of Scope*/
/*586569*/            /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->586785
/*586573*/              OPC_Scope, 11|128,1/*139*/, /*->586715*/ // 2 children in Scope
/*586576*/                OPC_RecordChild0, // #2 = $src2
/*586577*/                OPC_Scope, 67, /*->586646*/ // 2 children in Scope
/*586579*/                  OPC_MoveChild1,
/*586580*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586583*/                  OPC_CheckChild0Same, 0,
/*586585*/                  OPC_CheckChild1Integer, 0, 
/*586587*/                  OPC_MoveParent,
/*586588*/                  OPC_RecordChild2, // #3 = $src3
/*586589*/                  OPC_RecordChild3, // #4 = $rc
/*586590*/                  OPC_MoveChild3,
/*586591*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*586594*/                  OPC_MoveParent,
/*586595*/                  OPC_MoveParent,
/*586596*/                  OPC_MoveChild2,
/*586597*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*586600*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*586602*/                  OPC_MoveParent,
/*586603*/                  OPC_CheckType, MVT::f64,
/*586605*/                  OPC_MoveParent,
/*586606*/                  OPC_MoveParent,
/*586607*/                  OPC_CheckType, MVT::v2f64,
/*586609*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586611*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586614*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*586622*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586625*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*586633*/                  OPC_EmitConvertToTarget, 4,
/*586635*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                            // Dst: (VFMSUB213SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*586646*/                /*Scope*/ 67, /*->586714*/
/*586647*/                  OPC_RecordChild1, // #3 = $src3
/*586648*/                  OPC_MoveChild2,
/*586649*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586652*/                  OPC_CheckChild0Same, 0,
/*586654*/                  OPC_CheckChild1Integer, 0, 
/*586656*/                  OPC_MoveParent,
/*586657*/                  OPC_RecordChild3, // #4 = $rc
/*586658*/                  OPC_MoveChild3,
/*586659*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*586662*/                  OPC_MoveParent,
/*586663*/                  OPC_MoveParent,
/*586664*/                  OPC_MoveChild2,
/*586665*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*586668*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*586670*/                  OPC_MoveParent,
/*586671*/                  OPC_CheckType, MVT::f64,
/*586673*/                  OPC_MoveParent,
/*586674*/                  OPC_MoveParent,
/*586675*/                  OPC_CheckType, MVT::v2f64,
/*586677*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586679*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586682*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*586690*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586693*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*586701*/                  OPC_EmitConvertToTarget, 4,
/*586703*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                            // Dst: (VFMSUB231SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*586714*/                0, /*End of Scope*/
/*586715*/              /*Scope*/ 68, /*->586784*/
/*586716*/                OPC_MoveChild0,
/*586717*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586720*/                OPC_CheckChild0Same, 0,
/*586722*/                OPC_CheckChild1Integer, 0, 
/*586724*/                OPC_MoveParent,
/*586725*/                OPC_RecordChild1, // #2 = $src2
/*586726*/                OPC_RecordChild2, // #3 = $src3
/*586727*/                OPC_RecordChild3, // #4 = $rc
/*586728*/                OPC_MoveChild3,
/*586729*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*586732*/                OPC_MoveParent,
/*586733*/                OPC_MoveParent,
/*586734*/                OPC_MoveChild2,
/*586735*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*586738*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*586740*/                OPC_MoveParent,
/*586741*/                OPC_CheckType, MVT::f64,
/*586743*/                OPC_MoveParent,
/*586744*/                OPC_MoveParent,
/*586745*/                OPC_CheckType, MVT::v2f64,
/*586747*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586749*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586752*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*586760*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586763*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*586771*/                OPC_EmitConvertToTarget, 4,
/*586773*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Intkz), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FmsubRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                          // Dst: (VFMSUB213SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*586784*/              0, /*End of Scope*/
/*586785*/            /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->587001
/*586789*/              OPC_Scope, 11|128,1/*139*/, /*->586931*/ // 2 children in Scope
/*586792*/                OPC_RecordChild0, // #2 = $src2
/*586793*/                OPC_Scope, 67, /*->586862*/ // 2 children in Scope
/*586795*/                  OPC_MoveChild1,
/*586796*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586799*/                  OPC_CheckChild0Same, 0,
/*586801*/                  OPC_CheckChild1Integer, 0, 
/*586803*/                  OPC_MoveParent,
/*586804*/                  OPC_RecordChild2, // #3 = $src3
/*586805*/                  OPC_RecordChild3, // #4 = $rc
/*586806*/                  OPC_MoveChild3,
/*586807*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*586810*/                  OPC_MoveParent,
/*586811*/                  OPC_MoveParent,
/*586812*/                  OPC_MoveChild2,
/*586813*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*586816*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*586818*/                  OPC_MoveParent,
/*586819*/                  OPC_CheckType, MVT::f64,
/*586821*/                  OPC_MoveParent,
/*586822*/                  OPC_MoveParent,
/*586823*/                  OPC_CheckType, MVT::v2f64,
/*586825*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586827*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586830*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*586838*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586841*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*586849*/                  OPC_EmitConvertToTarget, 4,
/*586851*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                            // Dst: (VFNMADD213SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*586862*/                /*Scope*/ 67, /*->586930*/
/*586863*/                  OPC_RecordChild1, // #3 = $src3
/*586864*/                  OPC_MoveChild2,
/*586865*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586868*/                  OPC_CheckChild0Same, 0,
/*586870*/                  OPC_CheckChild1Integer, 0, 
/*586872*/                  OPC_MoveParent,
/*586873*/                  OPC_RecordChild3, // #4 = $rc
/*586874*/                  OPC_MoveChild3,
/*586875*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*586878*/                  OPC_MoveParent,
/*586879*/                  OPC_MoveParent,
/*586880*/                  OPC_MoveChild2,
/*586881*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*586884*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*586886*/                  OPC_MoveParent,
/*586887*/                  OPC_CheckType, MVT::f64,
/*586889*/                  OPC_MoveParent,
/*586890*/                  OPC_MoveParent,
/*586891*/                  OPC_CheckType, MVT::v2f64,
/*586893*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586895*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586898*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*586906*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586909*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*586917*/                  OPC_EmitConvertToTarget, 4,
/*586919*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                            // Dst: (VFNMADD231SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*586930*/                0, /*End of Scope*/
/*586931*/              /*Scope*/ 68, /*->587000*/
/*586932*/                OPC_MoveChild0,
/*586933*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*586936*/                OPC_CheckChild0Same, 0,
/*586938*/                OPC_CheckChild1Integer, 0, 
/*586940*/                OPC_MoveParent,
/*586941*/                OPC_RecordChild1, // #2 = $src2
/*586942*/                OPC_RecordChild2, // #3 = $src3
/*586943*/                OPC_RecordChild3, // #4 = $rc
/*586944*/                OPC_MoveChild3,
/*586945*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*586948*/                OPC_MoveParent,
/*586949*/                OPC_MoveParent,
/*586950*/                OPC_MoveChild2,
/*586951*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*586954*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*586956*/                OPC_MoveParent,
/*586957*/                OPC_CheckType, MVT::f64,
/*586959*/                OPC_MoveParent,
/*586960*/                OPC_MoveParent,
/*586961*/                OPC_CheckType, MVT::v2f64,
/*586963*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*586965*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586968*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*586976*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*586979*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*586987*/                OPC_EmitConvertToTarget, 4,
/*586989*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Intkz), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmaddRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                          // Dst: (VFNMADD213SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*587000*/              0, /*End of Scope*/
/*587001*/            /*SwitchOpcode*/ 84|128,1/*212*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->587217
/*587005*/              OPC_Scope, 11|128,1/*139*/, /*->587147*/ // 2 children in Scope
/*587008*/                OPC_RecordChild0, // #2 = $src2
/*587009*/                OPC_Scope, 67, /*->587078*/ // 2 children in Scope
/*587011*/                  OPC_MoveChild1,
/*587012*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587015*/                  OPC_CheckChild0Same, 0,
/*587017*/                  OPC_CheckChild1Integer, 0, 
/*587019*/                  OPC_MoveParent,
/*587020*/                  OPC_RecordChild2, // #3 = $src3
/*587021*/                  OPC_RecordChild3, // #4 = $rc
/*587022*/                  OPC_MoveChild3,
/*587023*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*587026*/                  OPC_MoveParent,
/*587027*/                  OPC_MoveParent,
/*587028*/                  OPC_MoveChild2,
/*587029*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*587032*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*587034*/                  OPC_MoveParent,
/*587035*/                  OPC_CheckType, MVT::f64,
/*587037*/                  OPC_MoveParent,
/*587038*/                  OPC_MoveParent,
/*587039*/                  OPC_CheckType, MVT::v2f64,
/*587041*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*587043*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587046*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*587054*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587057*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*587065*/                  OPC_EmitConvertToTarget, 4,
/*587067*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                            // Dst: (VFNMSUB213SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*587078*/                /*Scope*/ 67, /*->587146*/
/*587079*/                  OPC_RecordChild1, // #3 = $src3
/*587080*/                  OPC_MoveChild2,
/*587081*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587084*/                  OPC_CheckChild0Same, 0,
/*587086*/                  OPC_CheckChild1Integer, 0, 
/*587088*/                  OPC_MoveParent,
/*587089*/                  OPC_RecordChild3, // #4 = $rc
/*587090*/                  OPC_MoveChild3,
/*587091*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*587094*/                  OPC_MoveParent,
/*587095*/                  OPC_MoveParent,
/*587096*/                  OPC_MoveChild2,
/*587097*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*587100*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*587102*/                  OPC_MoveParent,
/*587103*/                  OPC_CheckType, MVT::f64,
/*587105*/                  OPC_MoveParent,
/*587106*/                  OPC_MoveParent,
/*587107*/                  OPC_CheckType, MVT::v2f64,
/*587109*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*587111*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587114*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*587122*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587125*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*587133*/                  OPC_EmitConvertToTarget, 4,
/*587135*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                            // Dst: (VFNMSUB231SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*587146*/                0, /*End of Scope*/
/*587147*/              /*Scope*/ 68, /*->587216*/
/*587148*/                OPC_MoveChild0,
/*587149*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587152*/                OPC_CheckChild0Same, 0,
/*587154*/                OPC_CheckChild1Integer, 0, 
/*587156*/                OPC_MoveParent,
/*587157*/                OPC_RecordChild1, // #2 = $src2
/*587158*/                OPC_RecordChild2, // #3 = $src3
/*587159*/                OPC_RecordChild3, // #4 = $rc
/*587160*/                OPC_MoveChild3,
/*587161*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*587164*/                OPC_MoveParent,
/*587165*/                OPC_MoveParent,
/*587166*/                OPC_MoveChild2,
/*587167*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*587170*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*587172*/                OPC_MoveParent,
/*587173*/                OPC_CheckType, MVT::f64,
/*587175*/                OPC_MoveParent,
/*587176*/                OPC_MoveParent,
/*587177*/                OPC_CheckType, MVT::v2f64,
/*587179*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*587181*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587184*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*587192*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587195*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*587203*/                OPC_EmitConvertToTarget, 4,
/*587205*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Intkz), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86FnmsubRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 27
                          // Dst: (VFNMSUB213SDZrb_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*587216*/              0, /*End of Scope*/
/*587217*/            0, // EndSwitchOpcode
/*587218*/          0, /*End of Scope*/
/*587219*/        /*SwitchOpcode*/ 21|128,5/*661*/, TARGET_VAL(ISD::FMA),// ->587884
/*587223*/          OPC_Scope, 59, /*->587284*/ // 6 children in Scope
/*587225*/            OPC_RecordChild0, // #1 = $src2
/*587226*/            OPC_MoveChild1,
/*587227*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587230*/            OPC_CheckChild0Same, 0,
/*587232*/            OPC_CheckChild1Integer, 0, 
/*587234*/            OPC_MoveParent,
/*587235*/            OPC_MoveChild2,
/*587236*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*587239*/            OPC_RecordMemRef,
/*587240*/            OPC_RecordNode, // #2 = 'ld' chained node
/*587241*/            OPC_CheckFoldableChainNode,
/*587242*/            OPC_RecordChild1, // #3 = $src3
/*587243*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*587245*/            OPC_CheckPredicate, 9, // Predicate_load
/*587247*/            OPC_MoveParent,
/*587248*/            OPC_CheckType, MVT::f64,
/*587250*/            OPC_MoveParent,
/*587251*/            OPC_MoveParent,
/*587252*/            OPC_CheckType, MVT::v2f64,
/*587254*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*587256*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587259*/            OPC_EmitMergeInputChains1_2,
/*587260*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*587263*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*587271*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VFMADD213SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587284*/          /*Scope*/ 59, /*->587344*/
/*587285*/            OPC_MoveChild0,
/*587286*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587289*/            OPC_CheckChild0Same, 0,
/*587291*/            OPC_CheckChild1Integer, 0, 
/*587293*/            OPC_MoveParent,
/*587294*/            OPC_MoveChild1,
/*587295*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*587298*/            OPC_RecordMemRef,
/*587299*/            OPC_RecordNode, // #1 = 'ld' chained node
/*587300*/            OPC_CheckFoldableChainNode,
/*587301*/            OPC_RecordChild1, // #2 = $src3
/*587302*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*587304*/            OPC_CheckPredicate, 9, // Predicate_load
/*587306*/            OPC_MoveParent,
/*587307*/            OPC_RecordChild2, // #3 = $src2
/*587308*/            OPC_CheckType, MVT::f64,
/*587310*/            OPC_MoveParent,
/*587311*/            OPC_MoveParent,
/*587312*/            OPC_CheckType, MVT::v2f64,
/*587314*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*587316*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587319*/            OPC_EmitMergeInputChains1_1,
/*587320*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*587323*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*587331*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src2))) - Complexity = 39
                      // Dst: (VFMADD132SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587344*/          /*Scope*/ 118, /*->587463*/
/*587345*/            OPC_RecordChild0, // #1 = $src2
/*587346*/            OPC_MoveChild1,
/*587347*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::LOAD),// ->587405
/*587351*/              OPC_RecordMemRef,
/*587352*/              OPC_RecordNode, // #2 = 'ld' chained node
/*587353*/              OPC_CheckFoldableChainNode,
/*587354*/              OPC_RecordChild1, // #3 = $src3
/*587355*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*587357*/              OPC_CheckPredicate, 9, // Predicate_load
/*587359*/              OPC_MoveParent,
/*587360*/              OPC_MoveChild2,
/*587361*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587364*/              OPC_CheckChild0Same, 0,
/*587366*/              OPC_CheckChild1Integer, 0, 
/*587368*/              OPC_MoveParent,
/*587369*/              OPC_CheckType, MVT::f64,
/*587371*/              OPC_MoveParent,
/*587372*/              OPC_MoveParent,
/*587373*/              OPC_CheckType, MVT::v2f64,
/*587375*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*587377*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587380*/              OPC_EmitMergeInputChains1_2,
/*587381*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*587384*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*587392*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VFMADD231SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587405*/            /*SwitchOpcode*/ 54, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->587462
/*587408*/              OPC_CheckChild0Same, 0,
/*587410*/              OPC_CheckChild1Integer, 0, 
/*587412*/              OPC_MoveParent,
/*587413*/              OPC_MoveChild2,
/*587414*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*587417*/              OPC_RecordMemRef,
/*587418*/              OPC_RecordNode, // #2 = 'ld' chained node
/*587419*/              OPC_CheckFoldableChainNode,
/*587420*/              OPC_RecordChild1, // #3 = $src3
/*587421*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*587423*/              OPC_CheckPredicate, 9, // Predicate_load
/*587425*/              OPC_MoveParent,
/*587426*/              OPC_CheckType, MVT::f64,
/*587428*/              OPC_MoveParent,
/*587429*/              OPC_MoveParent,
/*587430*/              OPC_CheckType, MVT::v2f64,
/*587432*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*587434*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587437*/              OPC_EmitMergeInputChains1_2,
/*587438*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587441*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*587449*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VFMADD213SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587462*/            0, // EndSwitchOpcode
/*587463*/          /*Scope*/ 59, /*->587523*/
/*587464*/            OPC_MoveChild0,
/*587465*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587468*/            OPC_CheckChild0Same, 0,
/*587470*/            OPC_CheckChild1Integer, 0, 
/*587472*/            OPC_MoveParent,
/*587473*/            OPC_MoveChild1,
/*587474*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*587477*/            OPC_RecordMemRef,
/*587478*/            OPC_RecordNode, // #1 = 'ld' chained node
/*587479*/            OPC_CheckFoldableChainNode,
/*587480*/            OPC_RecordChild1, // #2 = $src3
/*587481*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*587483*/            OPC_CheckPredicate, 9, // Predicate_load
/*587485*/            OPC_MoveParent,
/*587486*/            OPC_RecordChild2, // #3 = $src2
/*587487*/            OPC_CheckType, MVT::f64,
/*587489*/            OPC_MoveParent,
/*587490*/            OPC_MoveParent,
/*587491*/            OPC_CheckType, MVT::v2f64,
/*587493*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*587495*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587498*/            OPC_EmitMergeInputChains1_1,
/*587499*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587502*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*587510*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2))) - Complexity = 39
                      // Dst: (VFMADD132SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587523*/          /*Scope*/ 59, /*->587583*/
/*587524*/            OPC_RecordChild0, // #1 = $src2
/*587525*/            OPC_MoveChild1,
/*587526*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*587529*/            OPC_RecordMemRef,
/*587530*/            OPC_RecordNode, // #2 = 'ld' chained node
/*587531*/            OPC_CheckFoldableChainNode,
/*587532*/            OPC_RecordChild1, // #3 = $src3
/*587533*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*587535*/            OPC_CheckPredicate, 9, // Predicate_load
/*587537*/            OPC_MoveParent,
/*587538*/            OPC_MoveChild2,
/*587539*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587542*/            OPC_CheckChild0Same, 0,
/*587544*/            OPC_CheckChild1Integer, 0, 
/*587546*/            OPC_MoveParent,
/*587547*/            OPC_CheckType, MVT::f64,
/*587549*/            OPC_MoveParent,
/*587550*/            OPC_MoveParent,
/*587551*/            OPC_CheckType, MVT::v2f64,
/*587553*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*587555*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587558*/            OPC_EmitMergeInputChains1_2,
/*587559*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587562*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*587570*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                      // Dst: (VFMADD231SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587583*/          /*Scope*/ 42|128,2/*298*/, /*->587883*/
/*587585*/            OPC_MoveChild0,
/*587586*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->587679
/*587590*/              OPC_CheckChild0Same, 0,
/*587592*/              OPC_CheckChild1Integer, 0, 
/*587594*/              OPC_MoveParent,
/*587595*/              OPC_RecordChild1, // #1 = $src2
/*587596*/              OPC_MoveChild2,
/*587597*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*587600*/              OPC_RecordMemRef,
/*587601*/              OPC_RecordNode, // #2 = 'ld' chained node
/*587602*/              OPC_CheckFoldableChainNode,
/*587603*/              OPC_RecordChild1, // #3 = $src3
/*587604*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*587606*/              OPC_CheckPredicate, 9, // Predicate_load
/*587608*/              OPC_MoveParent,
/*587609*/              OPC_CheckType, MVT::f64,
/*587611*/              OPC_MoveParent,
/*587612*/              OPC_MoveParent,
/*587613*/              OPC_CheckType, MVT::v2f64,
/*587615*/              OPC_Scope, 30, /*->587647*/ // 2 children in Scope
/*587617*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*587619*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587622*/                OPC_EmitMergeInputChains1_2,
/*587623*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*587626*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*587634*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFMADD213SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587647*/              /*Scope*/ 30, /*->587678*/
/*587648*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*587650*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587653*/                OPC_EmitMergeInputChains1_2,
/*587654*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587657*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*587665*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFMADD213SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587678*/              0, /*End of Scope*/
/*587679*/            /*SwitchOpcode*/ 71|128,1/*199*/, TARGET_VAL(ISD::LOAD),// ->587882
/*587683*/              OPC_RecordMemRef,
/*587684*/              OPC_RecordNode, // #1 = 'ld' chained node
/*587685*/              OPC_CheckFoldableChainNode,
/*587686*/              OPC_RecordChild1, // #2 = $src3
/*587687*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*587689*/              OPC_CheckPredicate, 9, // Predicate_load
/*587691*/              OPC_MoveParent,
/*587692*/              OPC_Scope, 46, /*->587740*/ // 4 children in Scope
/*587694*/                OPC_MoveChild1,
/*587695*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587698*/                OPC_CheckChild0Same, 0,
/*587700*/                OPC_CheckChild1Integer, 0, 
/*587702*/                OPC_MoveParent,
/*587703*/                OPC_RecordChild2, // #3 = $src2
/*587704*/                OPC_CheckType, MVT::f64,
/*587706*/                OPC_MoveParent,
/*587707*/                OPC_MoveParent,
/*587708*/                OPC_CheckType, MVT::v2f64,
/*587710*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*587712*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587715*/                OPC_EmitMergeInputChains1_1,
/*587716*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*587719*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*587727*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2))) - Complexity = 39
                          // Dst: (VFMADD132SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587740*/              /*Scope*/ 46, /*->587787*/
/*587741*/                OPC_RecordChild1, // #3 = $src2
/*587742*/                OPC_MoveChild2,
/*587743*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587746*/                OPC_CheckChild0Same, 0,
/*587748*/                OPC_CheckChild1Integer, 0, 
/*587750*/                OPC_MoveParent,
/*587751*/                OPC_CheckType, MVT::f64,
/*587753*/                OPC_MoveParent,
/*587754*/                OPC_MoveParent,
/*587755*/                OPC_CheckType, MVT::v2f64,
/*587757*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*587759*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587762*/                OPC_EmitMergeInputChains1_1,
/*587763*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*587766*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*587774*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFMADD231SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587787*/              /*Scope*/ 46, /*->587834*/
/*587788*/                OPC_MoveChild1,
/*587789*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587792*/                OPC_CheckChild0Same, 0,
/*587794*/                OPC_CheckChild1Integer, 0, 
/*587796*/                OPC_MoveParent,
/*587797*/                OPC_RecordChild2, // #3 = $src2
/*587798*/                OPC_CheckType, MVT::f64,
/*587800*/                OPC_MoveParent,
/*587801*/                OPC_MoveParent,
/*587802*/                OPC_CheckType, MVT::v2f64,
/*587804*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*587806*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587809*/                OPC_EmitMergeInputChains1_1,
/*587810*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587813*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*587821*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2))) - Complexity = 39
                          // Dst: (VFMADD132SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587834*/              /*Scope*/ 46, /*->587881*/
/*587835*/                OPC_RecordChild1, // #3 = $src2
/*587836*/                OPC_MoveChild2,
/*587837*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587840*/                OPC_CheckChild0Same, 0,
/*587842*/                OPC_CheckChild1Integer, 0, 
/*587844*/                OPC_MoveParent,
/*587845*/                OPC_CheckType, MVT::f64,
/*587847*/                OPC_MoveParent,
/*587848*/                OPC_MoveParent,
/*587849*/                OPC_CheckType, MVT::v2f64,
/*587851*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*587853*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587856*/                OPC_EmitMergeInputChains1_1,
/*587857*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*587860*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*587868*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFMADD231SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587881*/              0, /*End of Scope*/
/*587882*/            0, // EndSwitchOpcode
/*587883*/          0, /*End of Scope*/
/*587884*/        /*SwitchOpcode*/ 21|128,5/*661*/, TARGET_VAL(X86ISD::FMSUB),// ->588549
/*587888*/          OPC_Scope, 59, /*->587949*/ // 6 children in Scope
/*587890*/            OPC_RecordChild0, // #1 = $src2
/*587891*/            OPC_MoveChild1,
/*587892*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587895*/            OPC_CheckChild0Same, 0,
/*587897*/            OPC_CheckChild1Integer, 0, 
/*587899*/            OPC_MoveParent,
/*587900*/            OPC_MoveChild2,
/*587901*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*587904*/            OPC_RecordMemRef,
/*587905*/            OPC_RecordNode, // #2 = 'ld' chained node
/*587906*/            OPC_CheckFoldableChainNode,
/*587907*/            OPC_RecordChild1, // #3 = $src3
/*587908*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*587910*/            OPC_CheckPredicate, 9, // Predicate_load
/*587912*/            OPC_MoveParent,
/*587913*/            OPC_CheckType, MVT::f64,
/*587915*/            OPC_MoveParent,
/*587916*/            OPC_MoveParent,
/*587917*/            OPC_CheckType, MVT::v2f64,
/*587919*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*587921*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587924*/            OPC_EmitMergeInputChains1_2,
/*587925*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*587928*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*587936*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VFMSUB213SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*587949*/          /*Scope*/ 59, /*->588009*/
/*587950*/            OPC_MoveChild0,
/*587951*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*587954*/            OPC_CheckChild0Same, 0,
/*587956*/            OPC_CheckChild1Integer, 0, 
/*587958*/            OPC_MoveParent,
/*587959*/            OPC_MoveChild1,
/*587960*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*587963*/            OPC_RecordMemRef,
/*587964*/            OPC_RecordNode, // #1 = 'ld' chained node
/*587965*/            OPC_CheckFoldableChainNode,
/*587966*/            OPC_RecordChild1, // #2 = $src3
/*587967*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*587969*/            OPC_CheckPredicate, 9, // Predicate_load
/*587971*/            OPC_MoveParent,
/*587972*/            OPC_RecordChild2, // #3 = $src2
/*587973*/            OPC_CheckType, MVT::f64,
/*587975*/            OPC_MoveParent,
/*587976*/            OPC_MoveParent,
/*587977*/            OPC_CheckType, MVT::v2f64,
/*587979*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*587981*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*587984*/            OPC_EmitMergeInputChains1_1,
/*587985*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*587988*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*587996*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src2))) - Complexity = 39
                      // Dst: (VFMSUB132SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588009*/          /*Scope*/ 118, /*->588128*/
/*588010*/            OPC_RecordChild0, // #1 = $src2
/*588011*/            OPC_MoveChild1,
/*588012*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::LOAD),// ->588070
/*588016*/              OPC_RecordMemRef,
/*588017*/              OPC_RecordNode, // #2 = 'ld' chained node
/*588018*/              OPC_CheckFoldableChainNode,
/*588019*/              OPC_RecordChild1, // #3 = $src3
/*588020*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588022*/              OPC_CheckPredicate, 9, // Predicate_load
/*588024*/              OPC_MoveParent,
/*588025*/              OPC_MoveChild2,
/*588026*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588029*/              OPC_CheckChild0Same, 0,
/*588031*/              OPC_CheckChild1Integer, 0, 
/*588033*/              OPC_MoveParent,
/*588034*/              OPC_CheckType, MVT::f64,
/*588036*/              OPC_MoveParent,
/*588037*/              OPC_MoveParent,
/*588038*/              OPC_CheckType, MVT::v2f64,
/*588040*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*588042*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588045*/              OPC_EmitMergeInputChains1_2,
/*588046*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*588049*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*588057*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VFMSUB231SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588070*/            /*SwitchOpcode*/ 54, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->588127
/*588073*/              OPC_CheckChild0Same, 0,
/*588075*/              OPC_CheckChild1Integer, 0, 
/*588077*/              OPC_MoveParent,
/*588078*/              OPC_MoveChild2,
/*588079*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*588082*/              OPC_RecordMemRef,
/*588083*/              OPC_RecordNode, // #2 = 'ld' chained node
/*588084*/              OPC_CheckFoldableChainNode,
/*588085*/              OPC_RecordChild1, // #3 = $src3
/*588086*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588088*/              OPC_CheckPredicate, 9, // Predicate_load
/*588090*/              OPC_MoveParent,
/*588091*/              OPC_CheckType, MVT::f64,
/*588093*/              OPC_MoveParent,
/*588094*/              OPC_MoveParent,
/*588095*/              OPC_CheckType, MVT::v2f64,
/*588097*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*588099*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588102*/              OPC_EmitMergeInputChains1_2,
/*588103*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*588106*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*588114*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VFMSUB213SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588127*/            0, // EndSwitchOpcode
/*588128*/          /*Scope*/ 59, /*->588188*/
/*588129*/            OPC_MoveChild0,
/*588130*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588133*/            OPC_CheckChild0Same, 0,
/*588135*/            OPC_CheckChild1Integer, 0, 
/*588137*/            OPC_MoveParent,
/*588138*/            OPC_MoveChild1,
/*588139*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*588142*/            OPC_RecordMemRef,
/*588143*/            OPC_RecordNode, // #1 = 'ld' chained node
/*588144*/            OPC_CheckFoldableChainNode,
/*588145*/            OPC_RecordChild1, // #2 = $src3
/*588146*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588148*/            OPC_CheckPredicate, 9, // Predicate_load
/*588150*/            OPC_MoveParent,
/*588151*/            OPC_RecordChild2, // #3 = $src2
/*588152*/            OPC_CheckType, MVT::f64,
/*588154*/            OPC_MoveParent,
/*588155*/            OPC_MoveParent,
/*588156*/            OPC_CheckType, MVT::v2f64,
/*588158*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*588160*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588163*/            OPC_EmitMergeInputChains1_1,
/*588164*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*588167*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*588175*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2))) - Complexity = 39
                      // Dst: (VFMSUB132SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588188*/          /*Scope*/ 59, /*->588248*/
/*588189*/            OPC_RecordChild0, // #1 = $src2
/*588190*/            OPC_MoveChild1,
/*588191*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*588194*/            OPC_RecordMemRef,
/*588195*/            OPC_RecordNode, // #2 = 'ld' chained node
/*588196*/            OPC_CheckFoldableChainNode,
/*588197*/            OPC_RecordChild1, // #3 = $src3
/*588198*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588200*/            OPC_CheckPredicate, 9, // Predicate_load
/*588202*/            OPC_MoveParent,
/*588203*/            OPC_MoveChild2,
/*588204*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588207*/            OPC_CheckChild0Same, 0,
/*588209*/            OPC_CheckChild1Integer, 0, 
/*588211*/            OPC_MoveParent,
/*588212*/            OPC_CheckType, MVT::f64,
/*588214*/            OPC_MoveParent,
/*588215*/            OPC_MoveParent,
/*588216*/            OPC_CheckType, MVT::v2f64,
/*588218*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*588220*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588223*/            OPC_EmitMergeInputChains1_2,
/*588224*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*588227*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*588235*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                      // Dst: (VFMSUB231SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588248*/          /*Scope*/ 42|128,2/*298*/, /*->588548*/
/*588250*/            OPC_MoveChild0,
/*588251*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->588344
/*588255*/              OPC_CheckChild0Same, 0,
/*588257*/              OPC_CheckChild1Integer, 0, 
/*588259*/              OPC_MoveParent,
/*588260*/              OPC_RecordChild1, // #1 = $src2
/*588261*/              OPC_MoveChild2,
/*588262*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*588265*/              OPC_RecordMemRef,
/*588266*/              OPC_RecordNode, // #2 = 'ld' chained node
/*588267*/              OPC_CheckFoldableChainNode,
/*588268*/              OPC_RecordChild1, // #3 = $src3
/*588269*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588271*/              OPC_CheckPredicate, 9, // Predicate_load
/*588273*/              OPC_MoveParent,
/*588274*/              OPC_CheckType, MVT::f64,
/*588276*/              OPC_MoveParent,
/*588277*/              OPC_MoveParent,
/*588278*/              OPC_CheckType, MVT::v2f64,
/*588280*/              OPC_Scope, 30, /*->588312*/ // 2 children in Scope
/*588282*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*588284*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588287*/                OPC_EmitMergeInputChains1_2,
/*588288*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*588291*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*588299*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFMSUB213SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588312*/              /*Scope*/ 30, /*->588343*/
/*588313*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*588315*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588318*/                OPC_EmitMergeInputChains1_2,
/*588319*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*588322*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*588330*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFMSUB213SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588343*/              0, /*End of Scope*/
/*588344*/            /*SwitchOpcode*/ 71|128,1/*199*/, TARGET_VAL(ISD::LOAD),// ->588547
/*588348*/              OPC_RecordMemRef,
/*588349*/              OPC_RecordNode, // #1 = 'ld' chained node
/*588350*/              OPC_CheckFoldableChainNode,
/*588351*/              OPC_RecordChild1, // #2 = $src3
/*588352*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588354*/              OPC_CheckPredicate, 9, // Predicate_load
/*588356*/              OPC_MoveParent,
/*588357*/              OPC_Scope, 46, /*->588405*/ // 4 children in Scope
/*588359*/                OPC_MoveChild1,
/*588360*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588363*/                OPC_CheckChild0Same, 0,
/*588365*/                OPC_CheckChild1Integer, 0, 
/*588367*/                OPC_MoveParent,
/*588368*/                OPC_RecordChild2, // #3 = $src2
/*588369*/                OPC_CheckType, MVT::f64,
/*588371*/                OPC_MoveParent,
/*588372*/                OPC_MoveParent,
/*588373*/                OPC_CheckType, MVT::v2f64,
/*588375*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*588377*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588380*/                OPC_EmitMergeInputChains1_1,
/*588381*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*588384*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*588392*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2))) - Complexity = 39
                          // Dst: (VFMSUB132SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588405*/              /*Scope*/ 46, /*->588452*/
/*588406*/                OPC_RecordChild1, // #3 = $src2
/*588407*/                OPC_MoveChild2,
/*588408*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588411*/                OPC_CheckChild0Same, 0,
/*588413*/                OPC_CheckChild1Integer, 0, 
/*588415*/                OPC_MoveParent,
/*588416*/                OPC_CheckType, MVT::f64,
/*588418*/                OPC_MoveParent,
/*588419*/                OPC_MoveParent,
/*588420*/                OPC_CheckType, MVT::v2f64,
/*588422*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*588424*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588427*/                OPC_EmitMergeInputChains1_1,
/*588428*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*588431*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*588439*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFMSUB231SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588452*/              /*Scope*/ 46, /*->588499*/
/*588453*/                OPC_MoveChild1,
/*588454*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588457*/                OPC_CheckChild0Same, 0,
/*588459*/                OPC_CheckChild1Integer, 0, 
/*588461*/                OPC_MoveParent,
/*588462*/                OPC_RecordChild2, // #3 = $src2
/*588463*/                OPC_CheckType, MVT::f64,
/*588465*/                OPC_MoveParent,
/*588466*/                OPC_MoveParent,
/*588467*/                OPC_CheckType, MVT::v2f64,
/*588469*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*588471*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588474*/                OPC_EmitMergeInputChains1_1,
/*588475*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*588478*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*588486*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2))) - Complexity = 39
                          // Dst: (VFMSUB132SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588499*/              /*Scope*/ 46, /*->588546*/
/*588500*/                OPC_RecordChild1, // #3 = $src2
/*588501*/                OPC_MoveChild2,
/*588502*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588505*/                OPC_CheckChild0Same, 0,
/*588507*/                OPC_CheckChild1Integer, 0, 
/*588509*/                OPC_MoveParent,
/*588510*/                OPC_CheckType, MVT::f64,
/*588512*/                OPC_MoveParent,
/*588513*/                OPC_MoveParent,
/*588514*/                OPC_CheckType, MVT::v2f64,
/*588516*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*588518*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588521*/                OPC_EmitMergeInputChains1_1,
/*588522*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*588525*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*588533*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFMSUB231SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588546*/              0, /*End of Scope*/
/*588547*/            0, // EndSwitchOpcode
/*588548*/          0, /*End of Scope*/
/*588549*/        /*SwitchOpcode*/ 21|128,5/*661*/, TARGET_VAL(X86ISD::FNMADD),// ->589214
/*588553*/          OPC_Scope, 59, /*->588614*/ // 6 children in Scope
/*588555*/            OPC_RecordChild0, // #1 = $src2
/*588556*/            OPC_MoveChild1,
/*588557*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588560*/            OPC_CheckChild0Same, 0,
/*588562*/            OPC_CheckChild1Integer, 0, 
/*588564*/            OPC_MoveParent,
/*588565*/            OPC_MoveChild2,
/*588566*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*588569*/            OPC_RecordMemRef,
/*588570*/            OPC_RecordNode, // #2 = 'ld' chained node
/*588571*/            OPC_CheckFoldableChainNode,
/*588572*/            OPC_RecordChild1, // #3 = $src3
/*588573*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588575*/            OPC_CheckPredicate, 9, // Predicate_load
/*588577*/            OPC_MoveParent,
/*588578*/            OPC_CheckType, MVT::f64,
/*588580*/            OPC_MoveParent,
/*588581*/            OPC_MoveParent,
/*588582*/            OPC_CheckType, MVT::v2f64,
/*588584*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*588586*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588589*/            OPC_EmitMergeInputChains1_2,
/*588590*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*588593*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*588601*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VFNMADD213SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588614*/          /*Scope*/ 59, /*->588674*/
/*588615*/            OPC_MoveChild0,
/*588616*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588619*/            OPC_CheckChild0Same, 0,
/*588621*/            OPC_CheckChild1Integer, 0, 
/*588623*/            OPC_MoveParent,
/*588624*/            OPC_MoveChild1,
/*588625*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*588628*/            OPC_RecordMemRef,
/*588629*/            OPC_RecordNode, // #1 = 'ld' chained node
/*588630*/            OPC_CheckFoldableChainNode,
/*588631*/            OPC_RecordChild1, // #2 = $src3
/*588632*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588634*/            OPC_CheckPredicate, 9, // Predicate_load
/*588636*/            OPC_MoveParent,
/*588637*/            OPC_RecordChild2, // #3 = $src2
/*588638*/            OPC_CheckType, MVT::f64,
/*588640*/            OPC_MoveParent,
/*588641*/            OPC_MoveParent,
/*588642*/            OPC_CheckType, MVT::v2f64,
/*588644*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*588646*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588649*/            OPC_EmitMergeInputChains1_1,
/*588650*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*588653*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*588661*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src2))) - Complexity = 39
                      // Dst: (VFNMADD132SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588674*/          /*Scope*/ 118, /*->588793*/
/*588675*/            OPC_RecordChild0, // #1 = $src2
/*588676*/            OPC_MoveChild1,
/*588677*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::LOAD),// ->588735
/*588681*/              OPC_RecordMemRef,
/*588682*/              OPC_RecordNode, // #2 = 'ld' chained node
/*588683*/              OPC_CheckFoldableChainNode,
/*588684*/              OPC_RecordChild1, // #3 = $src3
/*588685*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588687*/              OPC_CheckPredicate, 9, // Predicate_load
/*588689*/              OPC_MoveParent,
/*588690*/              OPC_MoveChild2,
/*588691*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588694*/              OPC_CheckChild0Same, 0,
/*588696*/              OPC_CheckChild1Integer, 0, 
/*588698*/              OPC_MoveParent,
/*588699*/              OPC_CheckType, MVT::f64,
/*588701*/              OPC_MoveParent,
/*588702*/              OPC_MoveParent,
/*588703*/              OPC_CheckType, MVT::v2f64,
/*588705*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*588707*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588710*/              OPC_EmitMergeInputChains1_2,
/*588711*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*588714*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*588722*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VFNMADD231SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588735*/            /*SwitchOpcode*/ 54, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->588792
/*588738*/              OPC_CheckChild0Same, 0,
/*588740*/              OPC_CheckChild1Integer, 0, 
/*588742*/              OPC_MoveParent,
/*588743*/              OPC_MoveChild2,
/*588744*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*588747*/              OPC_RecordMemRef,
/*588748*/              OPC_RecordNode, // #2 = 'ld' chained node
/*588749*/              OPC_CheckFoldableChainNode,
/*588750*/              OPC_RecordChild1, // #3 = $src3
/*588751*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588753*/              OPC_CheckPredicate, 9, // Predicate_load
/*588755*/              OPC_MoveParent,
/*588756*/              OPC_CheckType, MVT::f64,
/*588758*/              OPC_MoveParent,
/*588759*/              OPC_MoveParent,
/*588760*/              OPC_CheckType, MVT::v2f64,
/*588762*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*588764*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588767*/              OPC_EmitMergeInputChains1_2,
/*588768*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*588771*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*588779*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VFNMADD213SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588792*/            0, // EndSwitchOpcode
/*588793*/          /*Scope*/ 59, /*->588853*/
/*588794*/            OPC_MoveChild0,
/*588795*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588798*/            OPC_CheckChild0Same, 0,
/*588800*/            OPC_CheckChild1Integer, 0, 
/*588802*/            OPC_MoveParent,
/*588803*/            OPC_MoveChild1,
/*588804*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*588807*/            OPC_RecordMemRef,
/*588808*/            OPC_RecordNode, // #1 = 'ld' chained node
/*588809*/            OPC_CheckFoldableChainNode,
/*588810*/            OPC_RecordChild1, // #2 = $src3
/*588811*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588813*/            OPC_CheckPredicate, 9, // Predicate_load
/*588815*/            OPC_MoveParent,
/*588816*/            OPC_RecordChild2, // #3 = $src2
/*588817*/            OPC_CheckType, MVT::f64,
/*588819*/            OPC_MoveParent,
/*588820*/            OPC_MoveParent,
/*588821*/            OPC_CheckType, MVT::v2f64,
/*588823*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*588825*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588828*/            OPC_EmitMergeInputChains1_1,
/*588829*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*588832*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*588840*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2))) - Complexity = 39
                      // Dst: (VFNMADD132SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588853*/          /*Scope*/ 59, /*->588913*/
/*588854*/            OPC_RecordChild0, // #1 = $src2
/*588855*/            OPC_MoveChild1,
/*588856*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*588859*/            OPC_RecordMemRef,
/*588860*/            OPC_RecordNode, // #2 = 'ld' chained node
/*588861*/            OPC_CheckFoldableChainNode,
/*588862*/            OPC_RecordChild1, // #3 = $src3
/*588863*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588865*/            OPC_CheckPredicate, 9, // Predicate_load
/*588867*/            OPC_MoveParent,
/*588868*/            OPC_MoveChild2,
/*588869*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*588872*/            OPC_CheckChild0Same, 0,
/*588874*/            OPC_CheckChild1Integer, 0, 
/*588876*/            OPC_MoveParent,
/*588877*/            OPC_CheckType, MVT::f64,
/*588879*/            OPC_MoveParent,
/*588880*/            OPC_MoveParent,
/*588881*/            OPC_CheckType, MVT::v2f64,
/*588883*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*588885*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588888*/            OPC_EmitMergeInputChains1_2,
/*588889*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*588892*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*588900*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                      // Dst: (VFNMADD231SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588913*/          /*Scope*/ 42|128,2/*298*/, /*->589213*/
/*588915*/            OPC_MoveChild0,
/*588916*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->589009
/*588920*/              OPC_CheckChild0Same, 0,
/*588922*/              OPC_CheckChild1Integer, 0, 
/*588924*/              OPC_MoveParent,
/*588925*/              OPC_RecordChild1, // #1 = $src2
/*588926*/              OPC_MoveChild2,
/*588927*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*588930*/              OPC_RecordMemRef,
/*588931*/              OPC_RecordNode, // #2 = 'ld' chained node
/*588932*/              OPC_CheckFoldableChainNode,
/*588933*/              OPC_RecordChild1, // #3 = $src3
/*588934*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*588936*/              OPC_CheckPredicate, 9, // Predicate_load
/*588938*/              OPC_MoveParent,
/*588939*/              OPC_CheckType, MVT::f64,
/*588941*/              OPC_MoveParent,
/*588942*/              OPC_MoveParent,
/*588943*/              OPC_CheckType, MVT::v2f64,
/*588945*/              OPC_Scope, 30, /*->588977*/ // 2 children in Scope
/*588947*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*588949*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588952*/                OPC_EmitMergeInputChains1_2,
/*588953*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*588956*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*588964*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFNMADD213SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*588977*/              /*Scope*/ 30, /*->589008*/
/*588978*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*588980*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*588983*/                OPC_EmitMergeInputChains1_2,
/*588984*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*588987*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*588995*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFNMADD213SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589008*/              0, /*End of Scope*/
/*589009*/            /*SwitchOpcode*/ 71|128,1/*199*/, TARGET_VAL(ISD::LOAD),// ->589212
/*589013*/              OPC_RecordMemRef,
/*589014*/              OPC_RecordNode, // #1 = 'ld' chained node
/*589015*/              OPC_CheckFoldableChainNode,
/*589016*/              OPC_RecordChild1, // #2 = $src3
/*589017*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*589019*/              OPC_CheckPredicate, 9, // Predicate_load
/*589021*/              OPC_MoveParent,
/*589022*/              OPC_Scope, 46, /*->589070*/ // 4 children in Scope
/*589024*/                OPC_MoveChild1,
/*589025*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589028*/                OPC_CheckChild0Same, 0,
/*589030*/                OPC_CheckChild1Integer, 0, 
/*589032*/                OPC_MoveParent,
/*589033*/                OPC_RecordChild2, // #3 = $src2
/*589034*/                OPC_CheckType, MVT::f64,
/*589036*/                OPC_MoveParent,
/*589037*/                OPC_MoveParent,
/*589038*/                OPC_CheckType, MVT::v2f64,
/*589040*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*589042*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589045*/                OPC_EmitMergeInputChains1_1,
/*589046*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*589049*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*589057*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2))) - Complexity = 39
                          // Dst: (VFNMADD132SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589070*/              /*Scope*/ 46, /*->589117*/
/*589071*/                OPC_RecordChild1, // #3 = $src2
/*589072*/                OPC_MoveChild2,
/*589073*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589076*/                OPC_CheckChild0Same, 0,
/*589078*/                OPC_CheckChild1Integer, 0, 
/*589080*/                OPC_MoveParent,
/*589081*/                OPC_CheckType, MVT::f64,
/*589083*/                OPC_MoveParent,
/*589084*/                OPC_MoveParent,
/*589085*/                OPC_CheckType, MVT::v2f64,
/*589087*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*589089*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589092*/                OPC_EmitMergeInputChains1_1,
/*589093*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*589096*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*589104*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFNMADD231SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589117*/              /*Scope*/ 46, /*->589164*/
/*589118*/                OPC_MoveChild1,
/*589119*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589122*/                OPC_CheckChild0Same, 0,
/*589124*/                OPC_CheckChild1Integer, 0, 
/*589126*/                OPC_MoveParent,
/*589127*/                OPC_RecordChild2, // #3 = $src2
/*589128*/                OPC_CheckType, MVT::f64,
/*589130*/                OPC_MoveParent,
/*589131*/                OPC_MoveParent,
/*589132*/                OPC_CheckType, MVT::v2f64,
/*589134*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*589136*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589139*/                OPC_EmitMergeInputChains1_1,
/*589140*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*589143*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*589151*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2))) - Complexity = 39
                          // Dst: (VFNMADD132SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589164*/              /*Scope*/ 46, /*->589211*/
/*589165*/                OPC_RecordChild1, // #3 = $src2
/*589166*/                OPC_MoveChild2,
/*589167*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589170*/                OPC_CheckChild0Same, 0,
/*589172*/                OPC_CheckChild1Integer, 0, 
/*589174*/                OPC_MoveParent,
/*589175*/                OPC_CheckType, MVT::f64,
/*589177*/                OPC_MoveParent,
/*589178*/                OPC_MoveParent,
/*589179*/                OPC_CheckType, MVT::v2f64,
/*589181*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*589183*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589186*/                OPC_EmitMergeInputChains1_1,
/*589187*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*589190*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*589198*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFNMADD231SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589211*/              0, /*End of Scope*/
/*589212*/            0, // EndSwitchOpcode
/*589213*/          0, /*End of Scope*/
/*589214*/        /*SwitchOpcode*/ 21|128,5/*661*/, TARGET_VAL(X86ISD::FNMSUB),// ->589879
/*589218*/          OPC_Scope, 59, /*->589279*/ // 6 children in Scope
/*589220*/            OPC_RecordChild0, // #1 = $src2
/*589221*/            OPC_MoveChild1,
/*589222*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589225*/            OPC_CheckChild0Same, 0,
/*589227*/            OPC_CheckChild1Integer, 0, 
/*589229*/            OPC_MoveParent,
/*589230*/            OPC_MoveChild2,
/*589231*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*589234*/            OPC_RecordMemRef,
/*589235*/            OPC_RecordNode, // #2 = 'ld' chained node
/*589236*/            OPC_CheckFoldableChainNode,
/*589237*/            OPC_RecordChild1, // #3 = $src3
/*589238*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*589240*/            OPC_CheckPredicate, 9, // Predicate_load
/*589242*/            OPC_MoveParent,
/*589243*/            OPC_CheckType, MVT::f64,
/*589245*/            OPC_MoveParent,
/*589246*/            OPC_MoveParent,
/*589247*/            OPC_CheckType, MVT::v2f64,
/*589249*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*589251*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589254*/            OPC_EmitMergeInputChains1_2,
/*589255*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*589258*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*589266*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VFNMSUB213SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589279*/          /*Scope*/ 59, /*->589339*/
/*589280*/            OPC_MoveChild0,
/*589281*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589284*/            OPC_CheckChild0Same, 0,
/*589286*/            OPC_CheckChild1Integer, 0, 
/*589288*/            OPC_MoveParent,
/*589289*/            OPC_MoveChild1,
/*589290*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*589293*/            OPC_RecordMemRef,
/*589294*/            OPC_RecordNode, // #1 = 'ld' chained node
/*589295*/            OPC_CheckFoldableChainNode,
/*589296*/            OPC_RecordChild1, // #2 = $src3
/*589297*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*589299*/            OPC_CheckPredicate, 9, // Predicate_load
/*589301*/            OPC_MoveParent,
/*589302*/            OPC_RecordChild2, // #3 = $src2
/*589303*/            OPC_CheckType, MVT::f64,
/*589305*/            OPC_MoveParent,
/*589306*/            OPC_MoveParent,
/*589307*/            OPC_CheckType, MVT::v2f64,
/*589309*/            OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*589311*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589314*/            OPC_EmitMergeInputChains1_1,
/*589315*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*589318*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*589326*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src2))) - Complexity = 39
                      // Dst: (VFNMSUB132SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589339*/          /*Scope*/ 118, /*->589458*/
/*589340*/            OPC_RecordChild0, // #1 = $src2
/*589341*/            OPC_MoveChild1,
/*589342*/            OPC_SwitchOpcode /*2 cases */, 54, TARGET_VAL(ISD::LOAD),// ->589400
/*589346*/              OPC_RecordMemRef,
/*589347*/              OPC_RecordNode, // #2 = 'ld' chained node
/*589348*/              OPC_CheckFoldableChainNode,
/*589349*/              OPC_RecordChild1, // #3 = $src3
/*589350*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*589352*/              OPC_CheckPredicate, 9, // Predicate_load
/*589354*/              OPC_MoveParent,
/*589355*/              OPC_MoveChild2,
/*589356*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589359*/              OPC_CheckChild0Same, 0,
/*589361*/              OPC_CheckChild1Integer, 0, 
/*589363*/              OPC_MoveParent,
/*589364*/              OPC_CheckType, MVT::f64,
/*589366*/              OPC_MoveParent,
/*589367*/              OPC_MoveParent,
/*589368*/              OPC_CheckType, MVT::v2f64,
/*589370*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*589372*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589375*/              OPC_EmitMergeInputChains1_2,
/*589376*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*589379*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*589387*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VFNMSUB231SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589400*/            /*SwitchOpcode*/ 54, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->589457
/*589403*/              OPC_CheckChild0Same, 0,
/*589405*/              OPC_CheckChild1Integer, 0, 
/*589407*/              OPC_MoveParent,
/*589408*/              OPC_MoveChild2,
/*589409*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*589412*/              OPC_RecordMemRef,
/*589413*/              OPC_RecordNode, // #2 = 'ld' chained node
/*589414*/              OPC_CheckFoldableChainNode,
/*589415*/              OPC_RecordChild1, // #3 = $src3
/*589416*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*589418*/              OPC_CheckPredicate, 9, // Predicate_load
/*589420*/              OPC_MoveParent,
/*589421*/              OPC_CheckType, MVT::f64,
/*589423*/              OPC_MoveParent,
/*589424*/              OPC_MoveParent,
/*589425*/              OPC_CheckType, MVT::v2f64,
/*589427*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*589429*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589432*/              OPC_EmitMergeInputChains1_2,
/*589433*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*589436*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*589444*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VFNMSUB213SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589457*/            0, // EndSwitchOpcode
/*589458*/          /*Scope*/ 59, /*->589518*/
/*589459*/            OPC_MoveChild0,
/*589460*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589463*/            OPC_CheckChild0Same, 0,
/*589465*/            OPC_CheckChild1Integer, 0, 
/*589467*/            OPC_MoveParent,
/*589468*/            OPC_MoveChild1,
/*589469*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*589472*/            OPC_RecordMemRef,
/*589473*/            OPC_RecordNode, // #1 = 'ld' chained node
/*589474*/            OPC_CheckFoldableChainNode,
/*589475*/            OPC_RecordChild1, // #2 = $src3
/*589476*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*589478*/            OPC_CheckPredicate, 9, // Predicate_load
/*589480*/            OPC_MoveParent,
/*589481*/            OPC_RecordChild2, // #3 = $src2
/*589482*/            OPC_CheckType, MVT::f64,
/*589484*/            OPC_MoveParent,
/*589485*/            OPC_MoveParent,
/*589486*/            OPC_CheckType, MVT::v2f64,
/*589488*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*589490*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589493*/            OPC_EmitMergeInputChains1_1,
/*589494*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*589497*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*589505*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2))) - Complexity = 39
                      // Dst: (VFNMSUB132SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589518*/          /*Scope*/ 59, /*->589578*/
/*589519*/            OPC_RecordChild0, // #1 = $src2
/*589520*/            OPC_MoveChild1,
/*589521*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*589524*/            OPC_RecordMemRef,
/*589525*/            OPC_RecordNode, // #2 = 'ld' chained node
/*589526*/            OPC_CheckFoldableChainNode,
/*589527*/            OPC_RecordChild1, // #3 = $src3
/*589528*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*589530*/            OPC_CheckPredicate, 9, // Predicate_load
/*589532*/            OPC_MoveParent,
/*589533*/            OPC_MoveChild2,
/*589534*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589537*/            OPC_CheckChild0Same, 0,
/*589539*/            OPC_CheckChild1Integer, 0, 
/*589541*/            OPC_MoveParent,
/*589542*/            OPC_CheckType, MVT::f64,
/*589544*/            OPC_MoveParent,
/*589545*/            OPC_MoveParent,
/*589546*/            OPC_CheckType, MVT::v2f64,
/*589548*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*589550*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589553*/            OPC_EmitMergeInputChains1_2,
/*589554*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*589557*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*589565*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                      // Dst: (VFNMSUB231SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589578*/          /*Scope*/ 42|128,2/*298*/, /*->589878*/
/*589580*/            OPC_MoveChild0,
/*589581*/            OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->589674
/*589585*/              OPC_CheckChild0Same, 0,
/*589587*/              OPC_CheckChild1Integer, 0, 
/*589589*/              OPC_MoveParent,
/*589590*/              OPC_RecordChild1, // #1 = $src2
/*589591*/              OPC_MoveChild2,
/*589592*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*589595*/              OPC_RecordMemRef,
/*589596*/              OPC_RecordNode, // #2 = 'ld' chained node
/*589597*/              OPC_CheckFoldableChainNode,
/*589598*/              OPC_RecordChild1, // #3 = $src3
/*589599*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*589601*/              OPC_CheckPredicate, 9, // Predicate_load
/*589603*/              OPC_MoveParent,
/*589604*/              OPC_CheckType, MVT::f64,
/*589606*/              OPC_MoveParent,
/*589607*/              OPC_MoveParent,
/*589608*/              OPC_CheckType, MVT::v2f64,
/*589610*/              OPC_Scope, 30, /*->589642*/ // 2 children in Scope
/*589612*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*589614*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589617*/                OPC_EmitMergeInputChains1_2,
/*589618*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*589621*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*589629*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFNMSUB213SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589642*/              /*Scope*/ 30, /*->589673*/
/*589643*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*589645*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589648*/                OPC_EmitMergeInputChains1_2,
/*589649*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*589652*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*589660*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                          // Dst: (VFNMSUB213SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589673*/              0, /*End of Scope*/
/*589674*/            /*SwitchOpcode*/ 71|128,1/*199*/, TARGET_VAL(ISD::LOAD),// ->589877
/*589678*/              OPC_RecordMemRef,
/*589679*/              OPC_RecordNode, // #1 = 'ld' chained node
/*589680*/              OPC_CheckFoldableChainNode,
/*589681*/              OPC_RecordChild1, // #2 = $src3
/*589682*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*589684*/              OPC_CheckPredicate, 9, // Predicate_load
/*589686*/              OPC_MoveParent,
/*589687*/              OPC_Scope, 46, /*->589735*/ // 4 children in Scope
/*589689*/                OPC_MoveChild1,
/*589690*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589693*/                OPC_CheckChild0Same, 0,
/*589695*/                OPC_CheckChild1Integer, 0, 
/*589697*/                OPC_MoveParent,
/*589698*/                OPC_RecordChild2, // #3 = $src2
/*589699*/                OPC_CheckType, MVT::f64,
/*589701*/                OPC_MoveParent,
/*589702*/                OPC_MoveParent,
/*589703*/                OPC_CheckType, MVT::v2f64,
/*589705*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*589707*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589710*/                OPC_EmitMergeInputChains1_1,
/*589711*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*589714*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*589722*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2))) - Complexity = 39
                          // Dst: (VFNMSUB132SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589735*/              /*Scope*/ 46, /*->589782*/
/*589736*/                OPC_RecordChild1, // #3 = $src2
/*589737*/                OPC_MoveChild2,
/*589738*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589741*/                OPC_CheckChild0Same, 0,
/*589743*/                OPC_CheckChild1Integer, 0, 
/*589745*/                OPC_MoveParent,
/*589746*/                OPC_CheckType, MVT::f64,
/*589748*/                OPC_MoveParent,
/*589749*/                OPC_MoveParent,
/*589750*/                OPC_CheckType, MVT::v2f64,
/*589752*/                OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*589754*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589757*/                OPC_EmitMergeInputChains1_1,
/*589758*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*589761*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*589769*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFNMSUB231SDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589782*/              /*Scope*/ 46, /*->589829*/
/*589783*/                OPC_MoveChild1,
/*589784*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589787*/                OPC_CheckChild0Same, 0,
/*589789*/                OPC_CheckChild1Integer, 0, 
/*589791*/                OPC_MoveParent,
/*589792*/                OPC_RecordChild2, // #3 = $src2
/*589793*/                OPC_CheckType, MVT::f64,
/*589795*/                OPC_MoveParent,
/*589796*/                OPC_MoveParent,
/*589797*/                OPC_CheckType, MVT::v2f64,
/*589799*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*589801*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589804*/                OPC_EmitMergeInputChains1_1,
/*589805*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*589808*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*589816*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2))) - Complexity = 39
                          // Dst: (VFNMSUB132SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589829*/              /*Scope*/ 46, /*->589876*/
/*589830*/                OPC_RecordChild1, // #3 = $src2
/*589831*/                OPC_MoveChild2,
/*589832*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*589835*/                OPC_CheckChild0Same, 0,
/*589837*/                OPC_CheckChild1Integer, 0, 
/*589839*/                OPC_MoveParent,
/*589840*/                OPC_CheckType, MVT::f64,
/*589842*/                OPC_MoveParent,
/*589843*/                OPC_MoveParent,
/*589844*/                OPC_CheckType, MVT::v2f64,
/*589846*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*589848*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*589851*/                OPC_EmitMergeInputChains1_1,
/*589852*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*589855*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*589863*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 10, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 39
                          // Dst: (VFNMSUB231SDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), addr:{ *:[v2f64] }:$src3)
/*589876*/              0, /*End of Scope*/
/*589877*/            0, // EndSwitchOpcode
/*589878*/          0, /*End of Scope*/
/*589879*/        /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(ISD::SINT_TO_FP),// ->590035
/*589883*/          OPC_MoveChild0,
/*589884*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*589887*/          OPC_RecordMemRef,
/*589888*/          OPC_RecordNode, // #1 = 'ld' chained node
/*589889*/          OPC_CheckFoldableChainNode,
/*589890*/          OPC_RecordChild1, // #2 = $src
/*589891*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*589893*/          OPC_SwitchType /*2 cases */, 68, MVT::i64,// ->589964
/*589896*/            OPC_CheckPredicate, 9, // Predicate_load
/*589898*/            OPC_MoveParent,
/*589899*/            OPC_CheckType, MVT::f64,
/*589901*/            OPC_MoveParent,
/*589902*/            OPC_MoveParent,
/*589903*/            OPC_CheckType, MVT::v2f64,
/*589905*/            OPC_Scope, 18, /*->589925*/ // 3 children in Scope
/*589907*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*589909*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*589912*/              OPC_EmitMergeInputChains1_1,
/*589913*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VCVTSI642SDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*589925*/            /*Scope*/ 18, /*->589944*/
/*589926*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*589928*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*589931*/              OPC_EmitMergeInputChains1_1,
/*589932*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (CVTSI642SDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*589944*/            /*Scope*/ 18, /*->589963*/
/*589945*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*589947*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*589950*/              OPC_EmitMergeInputChains1_1,
/*589951*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                        // Dst: (VCVTSI642SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*589963*/            0, /*End of Scope*/
/*589964*/          /*SwitchType*/ 68, MVT::i32,// ->590034
/*589966*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*589968*/            OPC_MoveParent,
/*589969*/            OPC_CheckType, MVT::f64,
/*589971*/            OPC_MoveParent,
/*589972*/            OPC_MoveParent,
/*589973*/            OPC_CheckType, MVT::v2f64,
/*589975*/            OPC_Scope, 18, /*->589995*/ // 3 children in Scope
/*589977*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*589979*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*589982*/              OPC_EmitMergeInputChains1_1,
/*589983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                        // Dst: (VCVTSI2SDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*589995*/            /*Scope*/ 18, /*->590014*/
/*589996*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*589998*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*590001*/              OPC_EmitMergeInputChains1_1,
/*590002*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                        // Dst: (CVTSI2SDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*590014*/            /*Scope*/ 18, /*->590033*/
/*590015*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590017*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*590020*/              OPC_EmitMergeInputChains1_1,
/*590021*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                        // Dst: (VCVTSI2SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*590033*/            0, /*End of Scope*/
/*590034*/          0, // EndSwitchType
/*590035*/        /*SwitchOpcode*/ 70, TARGET_VAL(ISD::UINT_TO_FP),// ->590108
/*590038*/          OPC_MoveChild0,
/*590039*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*590042*/          OPC_RecordMemRef,
/*590043*/          OPC_RecordNode, // #1 = 'ld' chained node
/*590044*/          OPC_CheckFoldableChainNode,
/*590045*/          OPC_RecordChild1, // #2 = $src
/*590046*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*590048*/          OPC_SwitchType /*2 cases */, 27, MVT::i64,// ->590078
/*590051*/            OPC_CheckPredicate, 9, // Predicate_load
/*590053*/            OPC_MoveParent,
/*590054*/            OPC_CheckType, MVT::f64,
/*590056*/            OPC_MoveParent,
/*590057*/            OPC_MoveParent,
/*590058*/            OPC_CheckType, MVT::v2f64,
/*590060*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590062*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*590065*/            OPC_EmitMergeInputChains1_1,
/*590066*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (uint_to_fp:{ *:[f64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VCVTUSI642SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*590078*/          /*SwitchType*/ 27, MVT::i32,// ->590107
/*590080*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*590082*/            OPC_MoveParent,
/*590083*/            OPC_CheckType, MVT::f64,
/*590085*/            OPC_MoveParent,
/*590086*/            OPC_MoveParent,
/*590087*/            OPC_CheckType, MVT::v2f64,
/*590089*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590091*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*590094*/            OPC_EmitMergeInputChains1_1,
/*590095*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 31
                      // Dst: (VCVTUSI2SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*590107*/          0, // EndSwitchType
/*590108*/        /*SwitchOpcode*/ 73, TARGET_VAL(ISD::LOAD),// ->590184
/*590111*/          OPC_RecordMemRef,
/*590112*/          OPC_RecordNode, // #1 = 'ld' chained node
/*590113*/          OPC_CheckFoldableChainNode,
/*590114*/          OPC_RecordChild1, // #2 = $src2
/*590115*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*590117*/          OPC_CheckPredicate, 9, // Predicate_load
/*590119*/          OPC_CheckType, MVT::f64,
/*590121*/          OPC_MoveParent,
/*590122*/          OPC_MoveParent,
/*590123*/          OPC_CheckType, MVT::v2f64,
/*590125*/          OPC_Scope, 18, /*->590145*/ // 3 children in Scope
/*590127*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*590129*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*590132*/            OPC_EmitMergeInputChains1_1,
/*590133*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Movsd:{ *:[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)
/*590145*/          /*Scope*/ 18, /*->590164*/
/*590146*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*590148*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*590151*/            OPC_EmitMergeInputChains1_1,
/*590152*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Movsd:{ *:[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)
/*590164*/          /*Scope*/ 18, /*->590183*/
/*590165*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590167*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*590170*/            OPC_EmitMergeInputChains1_1,
/*590171*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVLPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VMOVLPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*590183*/          0, /*End of Scope*/
/*590184*/        0, // EndSwitchOpcode
/*590185*/      /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->590223
/*590188*/        OPC_RecordMemRef,
/*590189*/        OPC_RecordNode, // #1 = 'ld' chained node
/*590190*/        OPC_CheckFoldableChainNode,
/*590191*/        OPC_RecordChild1, // #2 = $src2
/*590192*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*590194*/        OPC_CheckPredicate, 9, // Predicate_load
/*590196*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*590198*/        OPC_MoveParent,
/*590199*/        OPC_CheckType, MVT::v2f64,
/*590201*/        OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*590203*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*590206*/        OPC_EmitMergeInputChains1_1,
/*590207*/        OPC_EmitInteger, MVT::i8, 1, 
/*590210*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VBLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, 1:{ *:[i8] })
/*590223*/      0, // EndSwitchOpcode
/*590224*/    /*Scope*/ 40, /*->590265*/
/*590225*/      OPC_MoveChild0,
/*590226*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*590229*/      OPC_RecordMemRef,
/*590230*/      OPC_RecordNode, // #0 = 'ld' chained node
/*590231*/      OPC_CheckFoldableChainNode,
/*590232*/      OPC_RecordChild1, // #1 = $src2
/*590233*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*590235*/      OPC_CheckPredicate, 9, // Predicate_load
/*590237*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*590239*/      OPC_MoveParent,
/*590240*/      OPC_RecordChild1, // #2 = $src1
/*590241*/      OPC_CheckType, MVT::v2f64,
/*590243*/      OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*590245*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*590248*/      OPC_EmitMergeInputChains1_0,
/*590249*/      OPC_EmitInteger, MVT::i8, 2, 
/*590252*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Movsd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                // Dst: (VBLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, 2:{ *:[i8] })
/*590265*/    /*Scope*/ 42, /*->590308*/
/*590266*/      OPC_RecordChild0, // #0 = $src1
/*590267*/      OPC_MoveChild1,
/*590268*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*590271*/      OPC_RecordMemRef,
/*590272*/      OPC_RecordNode, // #1 = 'ld' chained node
/*590273*/      OPC_CheckFoldableChainNode,
/*590274*/      OPC_RecordChild1, // #2 = $src2
/*590275*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*590277*/      OPC_CheckPredicate, 9, // Predicate_load
/*590279*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*590281*/      OPC_CheckPredicate, 48, // Predicate_memop
/*590283*/      OPC_MoveParent,
/*590284*/      OPC_CheckType, MVT::v2f64,
/*590286*/      OPC_CheckPatternPredicate, 128, // (!MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*590288*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*590291*/      OPC_EmitMergeInputChains1_1,
/*590292*/      OPC_EmitInteger, MVT::i8, 1, 
/*590295*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (BLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, 1:{ *:[i8] })
/*590308*/    /*Scope*/ 42, /*->590351*/
/*590309*/      OPC_MoveChild0,
/*590310*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*590313*/      OPC_RecordMemRef,
/*590314*/      OPC_RecordNode, // #0 = 'ld' chained node
/*590315*/      OPC_CheckFoldableChainNode,
/*590316*/      OPC_RecordChild1, // #1 = $src2
/*590317*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*590319*/      OPC_CheckPredicate, 9, // Predicate_load
/*590321*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*590323*/      OPC_CheckPredicate, 48, // Predicate_memop
/*590325*/      OPC_MoveParent,
/*590326*/      OPC_RecordChild1, // #2 = $src1
/*590327*/      OPC_CheckType, MVT::v2f64,
/*590329*/      OPC_CheckPatternPredicate, 128, // (!MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*590331*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*590334*/      OPC_EmitMergeInputChains1_0,
/*590335*/      OPC_EmitInteger, MVT::i8, 2, 
/*590338*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Movsd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                // Dst: (BLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, 2:{ *:[i8] })
/*590351*/    /*Scope*/ 103|128,34/*4455*/, /*->594808*/
/*590353*/      OPC_RecordChild0, // #0 = $src1
/*590354*/      OPC_Scope, 29|128,34/*4381*/, /*->594738*/ // 2 children in Scope
/*590357*/        OPC_MoveChild1,
/*590358*/        OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*590361*/        OPC_MoveChild0,
/*590362*/        OPC_SwitchOpcode /*19 cases */, 114|128,11/*1522*/, TARGET_VAL(X86ISD::SELECTS),// ->591889
/*590367*/          OPC_RecordChild0, // #1 = $mask
/*590368*/          OPC_Scope, 31|128,11/*1439*/, /*->591810*/ // 2 children in Scope
/*590371*/            OPC_MoveChild1,
/*590372*/            OPC_SwitchOpcode /*10 cases */, 39, TARGET_VAL(ISD::FFLOOR),// ->590415
/*590376*/              OPC_MoveChild0,
/*590377*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590380*/              OPC_RecordChild0, // #2 = $src2
/*590381*/              OPC_CheckChild0Type, MVT::v2f64,
/*590383*/              OPC_CheckChild1Integer, 0, 
/*590385*/              OPC_MoveParent,
/*590386*/              OPC_MoveParent,
/*590387*/              OPC_MoveChild2,
/*590388*/              OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*590391*/              OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*590393*/              OPC_MoveParent,
/*590394*/              OPC_CheckType, MVT::f64,
/*590396*/              OPC_MoveParent,
/*590397*/              OPC_MoveParent,
/*590398*/              OPC_CheckType, MVT::v2f64,
/*590400*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590402*/              OPC_EmitInteger, MVT::i32, 1, 
/*590405*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Intkz), 0,
                            MVT::v2f64, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (ffloor:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src2, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                        // Dst: (VRNDSCALESDZr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, v2f64:{ *:[v2f64] }:$src2, 1:{ *:[i32] })
/*590415*/            /*SwitchOpcode*/ 39, TARGET_VAL(ISD::FCEIL),// ->590457
/*590418*/              OPC_MoveChild0,
/*590419*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590422*/              OPC_RecordChild0, // #2 = $src2
/*590423*/              OPC_CheckChild0Type, MVT::v2f64,
/*590425*/              OPC_CheckChild1Integer, 0, 
/*590427*/              OPC_MoveParent,
/*590428*/              OPC_MoveParent,
/*590429*/              OPC_MoveChild2,
/*590430*/              OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*590433*/              OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*590435*/              OPC_MoveParent,
/*590436*/              OPC_CheckType, MVT::f64,
/*590438*/              OPC_MoveParent,
/*590439*/              OPC_MoveParent,
/*590440*/              OPC_CheckType, MVT::v2f64,
/*590442*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590444*/              OPC_EmitInteger, MVT::i32, 2, 
/*590447*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Intkz), 0,
                            MVT::v2f64, 4/*#Ops*/, 1, 0, 2, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fceil:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src2, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                        // Dst: (VRNDSCALESDZr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, v2f64:{ *:[v2f64] }:$src2, 2:{ *:[i32] })
/*590457*/            /*SwitchOpcode*/ 74|128,1/*202*/, TARGET_VAL(ISD::FADD),// ->590663
/*590461*/              OPC_Scope, 46, /*->590509*/ // 4 children in Scope
/*590463*/                OPC_MoveChild0,
/*590464*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590467*/                OPC_CheckChild0Same, 0,
/*590469*/                OPC_CheckChild1Integer, 0, 
/*590471*/                OPC_MoveParent,
/*590472*/                OPC_RecordChild1, // #2 = $src2
/*590473*/                OPC_MoveParent,
/*590474*/                OPC_MoveChild2,
/*590475*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*590478*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*590480*/                OPC_MoveParent,
/*590481*/                OPC_CheckType, MVT::f64,
/*590483*/                OPC_MoveParent,
/*590484*/                OPC_MoveParent,
/*590485*/                OPC_CheckType, MVT::v2f64,
/*590487*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590489*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590492*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*590500*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Intkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 1, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                          // Dst: (VADDSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*590509*/              /*Scope*/ 46, /*->590556*/
/*590510*/                OPC_RecordChild0, // #2 = $src2
/*590511*/                OPC_MoveChild1,
/*590512*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590515*/                OPC_CheckChild0Same, 0,
/*590517*/                OPC_CheckChild1Integer, 0, 
/*590519*/                OPC_MoveParent,
/*590520*/                OPC_MoveParent,
/*590521*/                OPC_MoveChild2,
/*590522*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*590525*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*590527*/                OPC_MoveParent,
/*590528*/                OPC_CheckType, MVT::f64,
/*590530*/                OPC_MoveParent,
/*590531*/                OPC_MoveParent,
/*590532*/                OPC_CheckType, MVT::v2f64,
/*590534*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590536*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590539*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*590547*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Intkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 1, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                          // Dst: (VADDSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*590556*/              /*Scope*/ 52, /*->590609*/
/*590557*/                OPC_MoveChild0,
/*590558*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590561*/                OPC_CheckChild0Same, 0,
/*590563*/                OPC_CheckChild1Integer, 0, 
/*590565*/                OPC_MoveParent,
/*590566*/                OPC_RecordChild1, // #2 = $src2
/*590567*/                OPC_MoveParent,
/*590568*/                OPC_RecordChild2, // #3 = $src0
/*590569*/                OPC_CheckType, MVT::f64,
/*590571*/                OPC_MoveParent,
/*590572*/                OPC_MoveParent,
/*590573*/                OPC_CheckType, MVT::v2f64,
/*590575*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590577*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590580*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*590588*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590591*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*590599*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Intk), 0,
                              MVT::v2f64, 4/*#Ops*/, 5, 1, 0, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), FR64X:{ *:[f64] }:$src0))) - Complexity = 20
                          // Dst: (VADDSDZrr_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*590609*/              /*Scope*/ 52, /*->590662*/
/*590610*/                OPC_RecordChild0, // #2 = $src2
/*590611*/                OPC_MoveChild1,
/*590612*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590615*/                OPC_CheckChild0Same, 0,
/*590617*/                OPC_CheckChild1Integer, 0, 
/*590619*/                OPC_MoveParent,
/*590620*/                OPC_MoveParent,
/*590621*/                OPC_RecordChild2, // #3 = $src0
/*590622*/                OPC_CheckType, MVT::f64,
/*590624*/                OPC_MoveParent,
/*590625*/                OPC_MoveParent,
/*590626*/                OPC_CheckType, MVT::v2f64,
/*590628*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590630*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590633*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*590641*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590644*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*590652*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Intk), 0,
                              MVT::v2f64, 4/*#Ops*/, 5, 1, 0, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), FR64X:{ *:[f64] }:$src0))) - Complexity = 20
                          // Dst: (VADDSDZrr_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*590662*/              0, /*End of Scope*/
/*590663*/            /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FSUB),// ->590757
/*590666*/              OPC_MoveChild0,
/*590667*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590670*/              OPC_CheckChild0Same, 0,
/*590672*/              OPC_CheckChild1Integer, 0, 
/*590674*/              OPC_MoveParent,
/*590675*/              OPC_RecordChild1, // #2 = $src2
/*590676*/              OPC_MoveParent,
/*590677*/              OPC_Scope, 35, /*->590714*/ // 2 children in Scope
/*590679*/                OPC_MoveChild2,
/*590680*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*590683*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*590685*/                OPC_MoveParent,
/*590686*/                OPC_CheckType, MVT::f64,
/*590688*/                OPC_MoveParent,
/*590689*/                OPC_MoveParent,
/*590690*/                OPC_CheckType, MVT::v2f64,
/*590692*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590694*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590697*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*590705*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrr_Intkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 1, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                          // Dst: (VSUBSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*590714*/              /*Scope*/ 41, /*->590756*/
/*590715*/                OPC_RecordChild2, // #3 = $src0
/*590716*/                OPC_CheckType, MVT::f64,
/*590718*/                OPC_MoveParent,
/*590719*/                OPC_MoveParent,
/*590720*/                OPC_CheckType, MVT::v2f64,
/*590722*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590724*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590727*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*590735*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590738*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*590746*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrr_Intk), 0,
                              MVT::v2f64, 4/*#Ops*/, 5, 1, 0, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), FR64X:{ *:[f64] }:$src0))) - Complexity = 20
                          // Dst: (VSUBSDZrr_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*590756*/              0, /*End of Scope*/
/*590757*/            /*SwitchOpcode*/ 74|128,1/*202*/, TARGET_VAL(ISD::FMUL),// ->590963
/*590761*/              OPC_Scope, 46, /*->590809*/ // 4 children in Scope
/*590763*/                OPC_MoveChild0,
/*590764*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590767*/                OPC_CheckChild0Same, 0,
/*590769*/                OPC_CheckChild1Integer, 0, 
/*590771*/                OPC_MoveParent,
/*590772*/                OPC_RecordChild1, // #2 = $src2
/*590773*/                OPC_MoveParent,
/*590774*/                OPC_MoveChild2,
/*590775*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*590778*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*590780*/                OPC_MoveParent,
/*590781*/                OPC_CheckType, MVT::f64,
/*590783*/                OPC_MoveParent,
/*590784*/                OPC_MoveParent,
/*590785*/                OPC_CheckType, MVT::v2f64,
/*590787*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590789*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590792*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*590800*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Intkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 1, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                          // Dst: (VMULSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*590809*/              /*Scope*/ 46, /*->590856*/
/*590810*/                OPC_RecordChild0, // #2 = $src2
/*590811*/                OPC_MoveChild1,
/*590812*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590815*/                OPC_CheckChild0Same, 0,
/*590817*/                OPC_CheckChild1Integer, 0, 
/*590819*/                OPC_MoveParent,
/*590820*/                OPC_MoveParent,
/*590821*/                OPC_MoveChild2,
/*590822*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*590825*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*590827*/                OPC_MoveParent,
/*590828*/                OPC_CheckType, MVT::f64,
/*590830*/                OPC_MoveParent,
/*590831*/                OPC_MoveParent,
/*590832*/                OPC_CheckType, MVT::v2f64,
/*590834*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590836*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590839*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*590847*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Intkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 1, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                          // Dst: (VMULSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*590856*/              /*Scope*/ 52, /*->590909*/
/*590857*/                OPC_MoveChild0,
/*590858*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590861*/                OPC_CheckChild0Same, 0,
/*590863*/                OPC_CheckChild1Integer, 0, 
/*590865*/                OPC_MoveParent,
/*590866*/                OPC_RecordChild1, // #2 = $src2
/*590867*/                OPC_MoveParent,
/*590868*/                OPC_RecordChild2, // #3 = $src0
/*590869*/                OPC_CheckType, MVT::f64,
/*590871*/                OPC_MoveParent,
/*590872*/                OPC_MoveParent,
/*590873*/                OPC_CheckType, MVT::v2f64,
/*590875*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590877*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590880*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*590888*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590891*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*590899*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Intk), 0,
                              MVT::v2f64, 4/*#Ops*/, 5, 1, 0, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), FR64X:{ *:[f64] }:$src0))) - Complexity = 20
                          // Dst: (VMULSDZrr_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*590909*/              /*Scope*/ 52, /*->590962*/
/*590910*/                OPC_RecordChild0, // #2 = $src2
/*590911*/                OPC_MoveChild1,
/*590912*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590915*/                OPC_CheckChild0Same, 0,
/*590917*/                OPC_CheckChild1Integer, 0, 
/*590919*/                OPC_MoveParent,
/*590920*/                OPC_MoveParent,
/*590921*/                OPC_RecordChild2, // #3 = $src0
/*590922*/                OPC_CheckType, MVT::f64,
/*590924*/                OPC_MoveParent,
/*590925*/                OPC_MoveParent,
/*590926*/                OPC_CheckType, MVT::v2f64,
/*590928*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590930*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590933*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*590941*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590944*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*590952*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Intk), 0,
                              MVT::v2f64, 4/*#Ops*/, 5, 1, 0, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), FR64X:{ *:[f64] }:$src0))) - Complexity = 20
                          // Dst: (VMULSDZrr_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*590962*/              0, /*End of Scope*/
/*590963*/            /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FDIV),// ->591057
/*590966*/              OPC_MoveChild0,
/*590967*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*590970*/              OPC_CheckChild0Same, 0,
/*590972*/              OPC_CheckChild1Integer, 0, 
/*590974*/              OPC_MoveParent,
/*590975*/              OPC_RecordChild1, // #2 = $src2
/*590976*/              OPC_MoveParent,
/*590977*/              OPC_Scope, 35, /*->591014*/ // 2 children in Scope
/*590979*/                OPC_MoveChild2,
/*590980*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*590983*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*590985*/                OPC_MoveParent,
/*590986*/                OPC_CheckType, MVT::f64,
/*590988*/                OPC_MoveParent,
/*590989*/                OPC_MoveParent,
/*590990*/                OPC_CheckType, MVT::v2f64,
/*590992*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*590994*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*590997*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*591005*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrr_Intkz), 0,
                              MVT::v2f64, 3/*#Ops*/, 1, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                          // Dst: (VDIVSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*591014*/              /*Scope*/ 41, /*->591056*/
/*591015*/                OPC_RecordChild2, // #3 = $src0
/*591016*/                OPC_CheckType, MVT::f64,
/*591018*/                OPC_MoveParent,
/*591019*/                OPC_MoveParent,
/*591020*/                OPC_CheckType, MVT::v2f64,
/*591022*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591024*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591027*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*591035*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591038*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*591046*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrr_Intk), 0,
                              MVT::v2f64, 4/*#Ops*/, 5, 1, 0, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2), FR64X:{ *:[f64] }:$src0))) - Complexity = 20
                          // Dst: (VDIVSDZrr_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }))
/*591056*/              0, /*End of Scope*/
/*591057*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(ISD::FMA),// ->591245
/*591061*/              OPC_Scope, 121, /*->591184*/ // 2 children in Scope
/*591063*/                OPC_RecordChild0, // #2 = $src2
/*591064*/                OPC_Scope, 58, /*->591124*/ // 2 children in Scope
/*591066*/                  OPC_MoveChild1,
/*591067*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591070*/                  OPC_CheckChild0Same, 0,
/*591072*/                  OPC_CheckChild1Integer, 0, 
/*591074*/                  OPC_MoveParent,
/*591075*/                  OPC_RecordChild2, // #3 = $src3
/*591076*/                  OPC_MoveParent,
/*591077*/                  OPC_MoveChild2,
/*591078*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591081*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591083*/                  OPC_MoveParent,
/*591084*/                  OPC_CheckType, MVT::f64,
/*591086*/                  OPC_MoveParent,
/*591087*/                  OPC_MoveParent,
/*591088*/                  OPC_CheckType, MVT::v2f64,
/*591090*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591092*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591095*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591103*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591106*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591114*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Intkz), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                            // Dst: (VFMADD213SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591124*/                /*Scope*/ 58, /*->591183*/
/*591125*/                  OPC_RecordChild1, // #3 = $src3
/*591126*/                  OPC_MoveChild2,
/*591127*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591130*/                  OPC_CheckChild0Same, 0,
/*591132*/                  OPC_CheckChild1Integer, 0, 
/*591134*/                  OPC_MoveParent,
/*591135*/                  OPC_MoveParent,
/*591136*/                  OPC_MoveChild2,
/*591137*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591140*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591142*/                  OPC_MoveParent,
/*591143*/                  OPC_CheckType, MVT::f64,
/*591145*/                  OPC_MoveParent,
/*591146*/                  OPC_MoveParent,
/*591147*/                  OPC_CheckType, MVT::v2f64,
/*591149*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591151*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591154*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591162*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591165*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591173*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZr_Intkz), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                            // Dst: (VFMADD231SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591183*/                0, /*End of Scope*/
/*591184*/              /*Scope*/ 59, /*->591244*/
/*591185*/                OPC_MoveChild0,
/*591186*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591189*/                OPC_CheckChild0Same, 0,
/*591191*/                OPC_CheckChild1Integer, 0, 
/*591193*/                OPC_MoveParent,
/*591194*/                OPC_RecordChild1, // #2 = $src2
/*591195*/                OPC_RecordChild2, // #3 = $src3
/*591196*/                OPC_MoveParent,
/*591197*/                OPC_MoveChild2,
/*591198*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591201*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591203*/                OPC_MoveParent,
/*591204*/                OPC_CheckType, MVT::f64,
/*591206*/                OPC_MoveParent,
/*591207*/                OPC_MoveParent,
/*591208*/                OPC_CheckType, MVT::v2f64,
/*591210*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591212*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591215*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591223*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591226*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591234*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Intkz), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                          // Dst: (VFMADD213SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591244*/              0, /*End of Scope*/
/*591245*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FMSUB),// ->591433
/*591249*/              OPC_Scope, 121, /*->591372*/ // 2 children in Scope
/*591251*/                OPC_RecordChild0, // #2 = $src2
/*591252*/                OPC_Scope, 58, /*->591312*/ // 2 children in Scope
/*591254*/                  OPC_MoveChild1,
/*591255*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591258*/                  OPC_CheckChild0Same, 0,
/*591260*/                  OPC_CheckChild1Integer, 0, 
/*591262*/                  OPC_MoveParent,
/*591263*/                  OPC_RecordChild2, // #3 = $src3
/*591264*/                  OPC_MoveParent,
/*591265*/                  OPC_MoveChild2,
/*591266*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591269*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591271*/                  OPC_MoveParent,
/*591272*/                  OPC_CheckType, MVT::f64,
/*591274*/                  OPC_MoveParent,
/*591275*/                  OPC_MoveParent,
/*591276*/                  OPC_CheckType, MVT::v2f64,
/*591278*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591280*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591283*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591291*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591294*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591302*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZr_Intkz), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                            // Dst: (VFMSUB213SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591312*/                /*Scope*/ 58, /*->591371*/
/*591313*/                  OPC_RecordChild1, // #3 = $src3
/*591314*/                  OPC_MoveChild2,
/*591315*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591318*/                  OPC_CheckChild0Same, 0,
/*591320*/                  OPC_CheckChild1Integer, 0, 
/*591322*/                  OPC_MoveParent,
/*591323*/                  OPC_MoveParent,
/*591324*/                  OPC_MoveChild2,
/*591325*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591328*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591330*/                  OPC_MoveParent,
/*591331*/                  OPC_CheckType, MVT::f64,
/*591333*/                  OPC_MoveParent,
/*591334*/                  OPC_MoveParent,
/*591335*/                  OPC_CheckType, MVT::v2f64,
/*591337*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591339*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591342*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591350*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591353*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591361*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZr_Intkz), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                            // Dst: (VFMSUB231SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591371*/                0, /*End of Scope*/
/*591372*/              /*Scope*/ 59, /*->591432*/
/*591373*/                OPC_MoveChild0,
/*591374*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591377*/                OPC_CheckChild0Same, 0,
/*591379*/                OPC_CheckChild1Integer, 0, 
/*591381*/                OPC_MoveParent,
/*591382*/                OPC_RecordChild1, // #2 = $src2
/*591383*/                OPC_RecordChild2, // #3 = $src3
/*591384*/                OPC_MoveParent,
/*591385*/                OPC_MoveChild2,
/*591386*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591389*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591391*/                OPC_MoveParent,
/*591392*/                OPC_CheckType, MVT::f64,
/*591394*/                OPC_MoveParent,
/*591395*/                OPC_MoveParent,
/*591396*/                OPC_CheckType, MVT::v2f64,
/*591398*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591400*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591403*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591411*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591414*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591422*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZr_Intkz), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                          // Dst: (VFMSUB213SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591432*/              0, /*End of Scope*/
/*591433*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMADD),// ->591621
/*591437*/              OPC_Scope, 121, /*->591560*/ // 2 children in Scope
/*591439*/                OPC_RecordChild0, // #2 = $src2
/*591440*/                OPC_Scope, 58, /*->591500*/ // 2 children in Scope
/*591442*/                  OPC_MoveChild1,
/*591443*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591446*/                  OPC_CheckChild0Same, 0,
/*591448*/                  OPC_CheckChild1Integer, 0, 
/*591450*/                  OPC_MoveParent,
/*591451*/                  OPC_RecordChild2, // #3 = $src3
/*591452*/                  OPC_MoveParent,
/*591453*/                  OPC_MoveChild2,
/*591454*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591457*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591459*/                  OPC_MoveParent,
/*591460*/                  OPC_CheckType, MVT::f64,
/*591462*/                  OPC_MoveParent,
/*591463*/                  OPC_MoveParent,
/*591464*/                  OPC_CheckType, MVT::v2f64,
/*591466*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591468*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591471*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591479*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591482*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591490*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZr_Intkz), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                            // Dst: (VFNMADD213SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591500*/                /*Scope*/ 58, /*->591559*/
/*591501*/                  OPC_RecordChild1, // #3 = $src3
/*591502*/                  OPC_MoveChild2,
/*591503*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591506*/                  OPC_CheckChild0Same, 0,
/*591508*/                  OPC_CheckChild1Integer, 0, 
/*591510*/                  OPC_MoveParent,
/*591511*/                  OPC_MoveParent,
/*591512*/                  OPC_MoveChild2,
/*591513*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591516*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591518*/                  OPC_MoveParent,
/*591519*/                  OPC_CheckType, MVT::f64,
/*591521*/                  OPC_MoveParent,
/*591522*/                  OPC_MoveParent,
/*591523*/                  OPC_CheckType, MVT::v2f64,
/*591525*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591527*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591530*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591538*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591541*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591549*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZr_Intkz), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                            // Dst: (VFNMADD231SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591559*/                0, /*End of Scope*/
/*591560*/              /*Scope*/ 59, /*->591620*/
/*591561*/                OPC_MoveChild0,
/*591562*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591565*/                OPC_CheckChild0Same, 0,
/*591567*/                OPC_CheckChild1Integer, 0, 
/*591569*/                OPC_MoveParent,
/*591570*/                OPC_RecordChild1, // #2 = $src2
/*591571*/                OPC_RecordChild2, // #3 = $src3
/*591572*/                OPC_MoveParent,
/*591573*/                OPC_MoveChild2,
/*591574*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591577*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591579*/                OPC_MoveParent,
/*591580*/                OPC_CheckType, MVT::f64,
/*591582*/                OPC_MoveParent,
/*591583*/                OPC_MoveParent,
/*591584*/                OPC_CheckType, MVT::v2f64,
/*591586*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591588*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591591*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591599*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591602*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591610*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZr_Intkz), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                          // Dst: (VFNMADD213SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591620*/              0, /*End of Scope*/
/*591621*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMSUB),// ->591809
/*591625*/              OPC_Scope, 121, /*->591748*/ // 2 children in Scope
/*591627*/                OPC_RecordChild0, // #2 = $src2
/*591628*/                OPC_Scope, 58, /*->591688*/ // 2 children in Scope
/*591630*/                  OPC_MoveChild1,
/*591631*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591634*/                  OPC_CheckChild0Same, 0,
/*591636*/                  OPC_CheckChild1Integer, 0, 
/*591638*/                  OPC_MoveParent,
/*591639*/                  OPC_RecordChild2, // #3 = $src3
/*591640*/                  OPC_MoveParent,
/*591641*/                  OPC_MoveChild2,
/*591642*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591645*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591647*/                  OPC_MoveParent,
/*591648*/                  OPC_CheckType, MVT::f64,
/*591650*/                  OPC_MoveParent,
/*591651*/                  OPC_MoveParent,
/*591652*/                  OPC_CheckType, MVT::v2f64,
/*591654*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591656*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591659*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591667*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591670*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591678*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZr_Intkz), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                            // Dst: (VFNMSUB213SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591688*/                /*Scope*/ 58, /*->591747*/
/*591689*/                  OPC_RecordChild1, // #3 = $src3
/*591690*/                  OPC_MoveChild2,
/*591691*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591694*/                  OPC_CheckChild0Same, 0,
/*591696*/                  OPC_CheckChild1Integer, 0, 
/*591698*/                  OPC_MoveParent,
/*591699*/                  OPC_MoveParent,
/*591700*/                  OPC_MoveChild2,
/*591701*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591704*/                  OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591706*/                  OPC_MoveParent,
/*591707*/                  OPC_CheckType, MVT::f64,
/*591709*/                  OPC_MoveParent,
/*591710*/                  OPC_MoveParent,
/*591711*/                  OPC_CheckType, MVT::v2f64,
/*591713*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591715*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591718*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591726*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591729*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591737*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZr_Intkz), 0,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                            // Dst: (VFNMSUB231SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591747*/                0, /*End of Scope*/
/*591748*/              /*Scope*/ 59, /*->591808*/
/*591749*/                OPC_MoveChild0,
/*591750*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591753*/                OPC_CheckChild0Same, 0,
/*591755*/                OPC_CheckChild1Integer, 0, 
/*591757*/                OPC_MoveParent,
/*591758*/                OPC_RecordChild1, // #2 = $src2
/*591759*/                OPC_RecordChild2, // #3 = $src3
/*591760*/                OPC_MoveParent,
/*591761*/                OPC_MoveChild2,
/*591762*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591765*/                OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591767*/                OPC_MoveParent,
/*591768*/                OPC_CheckType, MVT::f64,
/*591770*/                OPC_MoveParent,
/*591771*/                OPC_MoveParent,
/*591772*/                OPC_CheckType, MVT::v2f64,
/*591774*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591776*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591779*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*591787*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591790*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*591798*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZr_Intkz), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 1, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Fnmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 24
                          // Dst: (VFNMSUB213SDZr_Intkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*591808*/              0, /*End of Scope*/
/*591809*/            0, // EndSwitchOpcode
/*591810*/          /*Scope*/ 77, /*->591888*/
/*591811*/            OPC_RecordChild1, // #2 = $src1
/*591812*/            OPC_Scope, 33, /*->591847*/ // 2 children in Scope
/*591814*/              OPC_MoveChild2,
/*591815*/              OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*591818*/              OPC_CheckPredicate, 92, // Predicate_fp64imm0
/*591820*/              OPC_MoveParent,
/*591821*/              OPC_CheckType, MVT::f64,
/*591823*/              OPC_MoveParent,
/*591824*/              OPC_MoveParent,
/*591825*/              OPC_CheckType, MVT::v2f64,
/*591827*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591830*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*591838*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrrkz), 0,
                            MVT::v2f64, 3/*#Ops*/, 1, 0, 4, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, FR64X:{ *:[f64] }:$src1, (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 13
                        // Dst: (VMOVSDZrrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src0, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src1, VR128X:{ *:[i32] }))
/*591847*/            /*Scope*/ 39, /*->591887*/
/*591848*/              OPC_RecordChild2, // #3 = $src2
/*591849*/              OPC_CheckType, MVT::f64,
/*591851*/              OPC_MoveParent,
/*591852*/              OPC_MoveParent,
/*591853*/              OPC_CheckType, MVT::v2f64,
/*591855*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591858*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*591866*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591869*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*591877*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrrk), 0,
                            MVT::v2f64, 4/*#Ops*/, 5, 1, 0, 7, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2))) - Complexity = 9
                        // Dst: (VMOVSDZrrk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src0, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src1, VR128X:{ *:[i32] }))
/*591887*/            0, /*End of Scope*/
/*591888*/          0, /*End of Scope*/
/*591889*/        /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FMADD_RND),// ->592077
/*591893*/          OPC_Scope, 121, /*->592016*/ // 2 children in Scope
/*591895*/            OPC_RecordChild0, // #1 = $src2
/*591896*/            OPC_Scope, 58, /*->591956*/ // 2 children in Scope
/*591898*/              OPC_MoveChild1,
/*591899*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591902*/              OPC_CheckChild0Same, 0,
/*591904*/              OPC_CheckChild1Integer, 0, 
/*591906*/              OPC_MoveParent,
/*591907*/              OPC_RecordChild2, // #2 = $src3
/*591908*/              OPC_RecordChild3, // #3 = $rc
/*591909*/              OPC_MoveChild3,
/*591910*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*591913*/              OPC_MoveParent,
/*591914*/              OPC_CheckType, MVT::f64,
/*591916*/              OPC_MoveParent,
/*591917*/              OPC_MoveParent,
/*591918*/              OPC_CheckType, MVT::v2f64,
/*591920*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591922*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591925*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*591933*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591936*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*591944*/              OPC_EmitConvertToTarget, 3,
/*591946*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFMADD213SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*591956*/            /*Scope*/ 58, /*->592015*/
/*591957*/              OPC_RecordChild1, // #2 = $src3
/*591958*/              OPC_MoveChild2,
/*591959*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*591962*/              OPC_CheckChild0Same, 0,
/*591964*/              OPC_CheckChild1Integer, 0, 
/*591966*/              OPC_MoveParent,
/*591967*/              OPC_RecordChild3, // #3 = $rc
/*591968*/              OPC_MoveChild3,
/*591969*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*591972*/              OPC_MoveParent,
/*591973*/              OPC_CheckType, MVT::f64,
/*591975*/              OPC_MoveParent,
/*591976*/              OPC_MoveParent,
/*591977*/              OPC_CheckType, MVT::v2f64,
/*591979*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*591981*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591984*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*591992*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*591995*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*592003*/              OPC_EmitConvertToTarget, 3,
/*592005*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFMADD231SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*592015*/            0, /*End of Scope*/
/*592016*/          /*Scope*/ 59, /*->592076*/
/*592017*/            OPC_MoveChild0,
/*592018*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592021*/            OPC_CheckChild0Same, 0,
/*592023*/            OPC_CheckChild1Integer, 0, 
/*592025*/            OPC_MoveParent,
/*592026*/            OPC_RecordChild1, // #1 = $src2
/*592027*/            OPC_RecordChild2, // #2 = $src3
/*592028*/            OPC_RecordChild3, // #3 = $rc
/*592029*/            OPC_MoveChild3,
/*592030*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*592033*/            OPC_MoveParent,
/*592034*/            OPC_CheckType, MVT::f64,
/*592036*/            OPC_MoveParent,
/*592037*/            OPC_MoveParent,
/*592038*/            OPC_CheckType, MVT::v2f64,
/*592040*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592042*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592045*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*592053*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592056*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*592064*/            OPC_EmitConvertToTarget, 3,
/*592066*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Int), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FmaddRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                      // Dst: (VFMADD213SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*592076*/          0, /*End of Scope*/
/*592077*/        /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->592265
/*592081*/          OPC_Scope, 121, /*->592204*/ // 2 children in Scope
/*592083*/            OPC_RecordChild0, // #1 = $src2
/*592084*/            OPC_Scope, 58, /*->592144*/ // 2 children in Scope
/*592086*/              OPC_MoveChild1,
/*592087*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592090*/              OPC_CheckChild0Same, 0,
/*592092*/              OPC_CheckChild1Integer, 0, 
/*592094*/              OPC_MoveParent,
/*592095*/              OPC_RecordChild2, // #2 = $src3
/*592096*/              OPC_RecordChild3, // #3 = $rc
/*592097*/              OPC_MoveChild3,
/*592098*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*592101*/              OPC_MoveParent,
/*592102*/              OPC_CheckType, MVT::f64,
/*592104*/              OPC_MoveParent,
/*592105*/              OPC_MoveParent,
/*592106*/              OPC_CheckType, MVT::v2f64,
/*592108*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592110*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592113*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*592121*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592124*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*592132*/              OPC_EmitConvertToTarget, 3,
/*592134*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFMSUB213SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*592144*/            /*Scope*/ 58, /*->592203*/
/*592145*/              OPC_RecordChild1, // #2 = $src3
/*592146*/              OPC_MoveChild2,
/*592147*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592150*/              OPC_CheckChild0Same, 0,
/*592152*/              OPC_CheckChild1Integer, 0, 
/*592154*/              OPC_MoveParent,
/*592155*/              OPC_RecordChild3, // #3 = $rc
/*592156*/              OPC_MoveChild3,
/*592157*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*592160*/              OPC_MoveParent,
/*592161*/              OPC_CheckType, MVT::f64,
/*592163*/              OPC_MoveParent,
/*592164*/              OPC_MoveParent,
/*592165*/              OPC_CheckType, MVT::v2f64,
/*592167*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592169*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592172*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*592180*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592183*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*592191*/              OPC_EmitConvertToTarget, 3,
/*592193*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFMSUB231SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*592203*/            0, /*End of Scope*/
/*592204*/          /*Scope*/ 59, /*->592264*/
/*592205*/            OPC_MoveChild0,
/*592206*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592209*/            OPC_CheckChild0Same, 0,
/*592211*/            OPC_CheckChild1Integer, 0, 
/*592213*/            OPC_MoveParent,
/*592214*/            OPC_RecordChild1, // #1 = $src2
/*592215*/            OPC_RecordChild2, // #2 = $src3
/*592216*/            OPC_RecordChild3, // #3 = $rc
/*592217*/            OPC_MoveChild3,
/*592218*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*592221*/            OPC_MoveParent,
/*592222*/            OPC_CheckType, MVT::f64,
/*592224*/            OPC_MoveParent,
/*592225*/            OPC_MoveParent,
/*592226*/            OPC_CheckType, MVT::v2f64,
/*592228*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592230*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592233*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*592241*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592244*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*592252*/            OPC_EmitConvertToTarget, 3,
/*592254*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Int), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FmsubRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                      // Dst: (VFMSUB213SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*592264*/          0, /*End of Scope*/
/*592265*/        /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->592453
/*592269*/          OPC_Scope, 121, /*->592392*/ // 2 children in Scope
/*592271*/            OPC_RecordChild0, // #1 = $src2
/*592272*/            OPC_Scope, 58, /*->592332*/ // 2 children in Scope
/*592274*/              OPC_MoveChild1,
/*592275*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592278*/              OPC_CheckChild0Same, 0,
/*592280*/              OPC_CheckChild1Integer, 0, 
/*592282*/              OPC_MoveParent,
/*592283*/              OPC_RecordChild2, // #2 = $src3
/*592284*/              OPC_RecordChild3, // #3 = $rc
/*592285*/              OPC_MoveChild3,
/*592286*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*592289*/              OPC_MoveParent,
/*592290*/              OPC_CheckType, MVT::f64,
/*592292*/              OPC_MoveParent,
/*592293*/              OPC_MoveParent,
/*592294*/              OPC_CheckType, MVT::v2f64,
/*592296*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592298*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592301*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*592309*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592312*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*592320*/              OPC_EmitConvertToTarget, 3,
/*592322*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FnmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFNMADD213SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*592332*/            /*Scope*/ 58, /*->592391*/
/*592333*/              OPC_RecordChild1, // #2 = $src3
/*592334*/              OPC_MoveChild2,
/*592335*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592338*/              OPC_CheckChild0Same, 0,
/*592340*/              OPC_CheckChild1Integer, 0, 
/*592342*/              OPC_MoveParent,
/*592343*/              OPC_RecordChild3, // #3 = $rc
/*592344*/              OPC_MoveChild3,
/*592345*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*592348*/              OPC_MoveParent,
/*592349*/              OPC_CheckType, MVT::f64,
/*592351*/              OPC_MoveParent,
/*592352*/              OPC_MoveParent,
/*592353*/              OPC_CheckType, MVT::v2f64,
/*592355*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592357*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592360*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*592368*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592371*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*592379*/              OPC_EmitConvertToTarget, 3,
/*592381*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FnmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFNMADD231SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*592391*/            0, /*End of Scope*/
/*592392*/          /*Scope*/ 59, /*->592452*/
/*592393*/            OPC_MoveChild0,
/*592394*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592397*/            OPC_CheckChild0Same, 0,
/*592399*/            OPC_CheckChild1Integer, 0, 
/*592401*/            OPC_MoveParent,
/*592402*/            OPC_RecordChild1, // #1 = $src2
/*592403*/            OPC_RecordChild2, // #2 = $src3
/*592404*/            OPC_RecordChild3, // #3 = $rc
/*592405*/            OPC_MoveChild3,
/*592406*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*592409*/            OPC_MoveParent,
/*592410*/            OPC_CheckType, MVT::f64,
/*592412*/            OPC_MoveParent,
/*592413*/            OPC_MoveParent,
/*592414*/            OPC_CheckType, MVT::v2f64,
/*592416*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592418*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592421*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*592429*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592432*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*592440*/            OPC_EmitConvertToTarget, 3,
/*592442*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Int), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FnmaddRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                      // Dst: (VFNMADD213SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*592452*/          0, /*End of Scope*/
/*592453*/        /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->592641
/*592457*/          OPC_Scope, 121, /*->592580*/ // 2 children in Scope
/*592459*/            OPC_RecordChild0, // #1 = $src2
/*592460*/            OPC_Scope, 58, /*->592520*/ // 2 children in Scope
/*592462*/              OPC_MoveChild1,
/*592463*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592466*/              OPC_CheckChild0Same, 0,
/*592468*/              OPC_CheckChild1Integer, 0, 
/*592470*/              OPC_MoveParent,
/*592471*/              OPC_RecordChild2, // #2 = $src3
/*592472*/              OPC_RecordChild3, // #3 = $rc
/*592473*/              OPC_MoveChild3,
/*592474*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*592477*/              OPC_MoveParent,
/*592478*/              OPC_CheckType, MVT::f64,
/*592480*/              OPC_MoveParent,
/*592481*/              OPC_MoveParent,
/*592482*/              OPC_CheckType, MVT::v2f64,
/*592484*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592486*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592489*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*592497*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592500*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*592508*/              OPC_EmitConvertToTarget, 3,
/*592510*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FnmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFNMSUB213SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*592520*/            /*Scope*/ 58, /*->592579*/
/*592521*/              OPC_RecordChild1, // #2 = $src3
/*592522*/              OPC_MoveChild2,
/*592523*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592526*/              OPC_CheckChild0Same, 0,
/*592528*/              OPC_CheckChild1Integer, 0, 
/*592530*/              OPC_MoveParent,
/*592531*/              OPC_RecordChild3, // #3 = $rc
/*592532*/              OPC_MoveChild3,
/*592533*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*592536*/              OPC_MoveParent,
/*592537*/              OPC_CheckType, MVT::f64,
/*592539*/              OPC_MoveParent,
/*592540*/              OPC_MoveParent,
/*592541*/              OPC_CheckType, MVT::v2f64,
/*592543*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592545*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592548*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*592556*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592559*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*592567*/              OPC_EmitConvertToTarget, 3,
/*592569*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FnmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (imm:{ *:[i32] }):$rc))) - Complexity = 20
                        // Dst: (VFNMSUB231SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*592579*/            0, /*End of Scope*/
/*592580*/          /*Scope*/ 59, /*->592640*/
/*592581*/            OPC_MoveChild0,
/*592582*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592585*/            OPC_CheckChild0Same, 0,
/*592587*/            OPC_CheckChild1Integer, 0, 
/*592589*/            OPC_MoveParent,
/*592590*/            OPC_RecordChild1, // #1 = $src2
/*592591*/            OPC_RecordChild2, // #2 = $src3
/*592592*/            OPC_RecordChild3, // #3 = $rc
/*592593*/            OPC_MoveChild3,
/*592594*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*592597*/            OPC_MoveParent,
/*592598*/            OPC_CheckType, MVT::f64,
/*592600*/            OPC_MoveParent,
/*592601*/            OPC_MoveParent,
/*592602*/            OPC_CheckType, MVT::v2f64,
/*592604*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592606*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592609*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*592617*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592620*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*592628*/            OPC_EmitConvertToTarget, 3,
/*592630*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Int), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86FnmsubRnd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (imm:{ *:[i32] }):$rc))) - Complexity = 20
                      // Dst: (VFNMSUB213SDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }), (imm:{ *:[i32] }):$rc)
/*592640*/          0, /*End of Scope*/
/*592641*/        /*SwitchOpcode*/ 51, TARGET_VAL(ISD::FP_EXTEND),// ->592695
/*592644*/          OPC_MoveChild0,
/*592645*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592648*/          OPC_RecordChild0, // #1 = $src
/*592649*/          OPC_CheckChild0Type, MVT::v4f32,
/*592651*/          OPC_CheckChild1Integer, 0, 
/*592653*/          OPC_MoveParent,
/*592654*/          OPC_CheckType, MVT::f64,
/*592656*/          OPC_MoveParent,
/*592657*/          OPC_MoveParent,
/*592658*/          OPC_CheckType, MVT::v2f64,
/*592660*/          OPC_Scope, 10, /*->592672*/ // 3 children in Scope
/*592662*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*592664*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fpextend:{ *:[f64] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (VCVTSS2SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, VR128:{ *:[v4f32] }:$src)
/*592672*/          /*Scope*/ 10, /*->592683*/
/*592673*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*592675*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SDrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fpextend:{ *:[f64] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (CVTSS2SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, VR128:{ *:[v4f32] }:$src)
/*592683*/          /*Scope*/ 10, /*->592694*/
/*592684*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592686*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fpextend:{ *:[f64] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (VCVTSS2SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VR128X:{ *:[v4f32] }:$src)
/*592694*/          0, /*End of Scope*/
/*592695*/        /*SwitchOpcode*/ 51, TARGET_VAL(ISD::FSQRT),// ->592749
/*592698*/          OPC_MoveChild0,
/*592699*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592702*/          OPC_RecordChild0, // #1 = $src
/*592703*/          OPC_CheckChild0Type, MVT::v2f64,
/*592705*/          OPC_CheckChild1Integer, 0, 
/*592707*/          OPC_MoveParent,
/*592708*/          OPC_CheckType, MVT::f64,
/*592710*/          OPC_MoveParent,
/*592711*/          OPC_MoveParent,
/*592712*/          OPC_CheckType, MVT::v2f64,
/*592714*/          OPC_Scope, 10, /*->592726*/ // 3 children in Scope
/*592716*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*592718*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSDr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fsqrt:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (SQRTSDr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, v2f64:{ *:[v2f64] }:$src)
/*592726*/          /*Scope*/ 10, /*->592737*/
/*592727*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*592729*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fsqrt:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (VSQRTSDr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, v2f64:{ *:[v2f64] }:$src)
/*592737*/          /*Scope*/ 10, /*->592748*/
/*592738*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592740*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fsqrt:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (VSQRTSDZr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, v2f64:{ *:[v2f64] }:$src)
/*592748*/          0, /*End of Scope*/
/*592749*/        /*SwitchOpcode*/ 63, TARGET_VAL(ISD::FFLOOR),// ->592815
/*592752*/          OPC_MoveChild0,
/*592753*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592756*/          OPC_RecordChild0, // #1 = $src
/*592757*/          OPC_CheckChild0Type, MVT::v2f64,
/*592759*/          OPC_CheckChild1Integer, 0, 
/*592761*/          OPC_MoveParent,
/*592762*/          OPC_CheckType, MVT::f64,
/*592764*/          OPC_MoveParent,
/*592765*/          OPC_MoveParent,
/*592766*/          OPC_CheckType, MVT::v2f64,
/*592768*/          OPC_Scope, 14, /*->592784*/ // 3 children in Scope
/*592770*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*592772*/            OPC_EmitInteger, MVT::i32, 1, 
/*592775*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDr_Int), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (ffloor:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (ROUNDSDr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, v2f64:{ *:[v2f64] }:$src, 1:{ *:[i32] })
/*592784*/          /*Scope*/ 14, /*->592799*/
/*592785*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*592787*/            OPC_EmitInteger, MVT::i32, 1, 
/*592790*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDr_Int), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (ffloor:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (VROUNDSDr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, v2f64:{ *:[v2f64] }:$src, 1:{ *:[i32] })
/*592799*/          /*Scope*/ 14, /*->592814*/
/*592800*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592802*/            OPC_EmitInteger, MVT::i32, 1, 
/*592805*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Int), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (ffloor:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (VRNDSCALESDZr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, v2f64:{ *:[v2f64] }:$src, 1:{ *:[i32] })
/*592814*/          0, /*End of Scope*/
/*592815*/        /*SwitchOpcode*/ 63, TARGET_VAL(ISD::FCEIL),// ->592881
/*592818*/          OPC_MoveChild0,
/*592819*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592822*/          OPC_RecordChild0, // #1 = $src
/*592823*/          OPC_CheckChild0Type, MVT::v2f64,
/*592825*/          OPC_CheckChild1Integer, 0, 
/*592827*/          OPC_MoveParent,
/*592828*/          OPC_CheckType, MVT::f64,
/*592830*/          OPC_MoveParent,
/*592831*/          OPC_MoveParent,
/*592832*/          OPC_CheckType, MVT::v2f64,
/*592834*/          OPC_Scope, 14, /*->592850*/ // 3 children in Scope
/*592836*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*592838*/            OPC_EmitInteger, MVT::i32, 2, 
/*592841*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDr_Int), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fceil:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (ROUNDSDr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, v2f64:{ *:[v2f64] }:$src, 2:{ *:[i32] })
/*592850*/          /*Scope*/ 14, /*->592865*/
/*592851*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*592853*/            OPC_EmitInteger, MVT::i32, 2, 
/*592856*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDr_Int), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fceil:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (VROUNDSDr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, v2f64:{ *:[v2f64] }:$src, 2:{ *:[i32] })
/*592865*/          /*Scope*/ 14, /*->592880*/
/*592866*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592868*/            OPC_EmitInteger, MVT::i32, 2, 
/*592871*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Int), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fceil:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                      // Dst: (VRNDSCALESDZr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, v2f64:{ *:[v2f64] }:$src, 2:{ *:[i32] })
/*592880*/          0, /*End of Scope*/
/*592881*/        /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(ISD::FADD),// ->593057
/*592885*/          OPC_Scope, 84, /*->592971*/ // 2 children in Scope
/*592887*/            OPC_MoveChild0,
/*592888*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592891*/            OPC_CheckChild0Same, 0,
/*592893*/            OPC_CheckChild1Integer, 0, 
/*592895*/            OPC_MoveParent,
/*592896*/            OPC_RecordChild1, // #1 = $src
/*592897*/            OPC_CheckType, MVT::f64,
/*592899*/            OPC_MoveParent,
/*592900*/            OPC_MoveParent,
/*592901*/            OPC_CheckType, MVT::v2f64,
/*592903*/            OPC_Scope, 21, /*->592926*/ // 3 children in Scope
/*592905*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*592907*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*592910*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*592918*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src))) - Complexity = 17
                        // Dst: (ADDSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*592926*/            /*Scope*/ 21, /*->592948*/
/*592927*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*592929*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*592932*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*592940*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src))) - Complexity = 17
                        // Dst: (VADDSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*592948*/            /*Scope*/ 21, /*->592970*/
/*592949*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*592951*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*592954*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*592962*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src))) - Complexity = 17
                        // Dst: (VADDSDZrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*592970*/            0, /*End of Scope*/
/*592971*/          /*Scope*/ 84, /*->593056*/
/*592972*/            OPC_RecordChild0, // #1 = $src
/*592973*/            OPC_MoveChild1,
/*592974*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*592977*/            OPC_CheckChild0Same, 0,
/*592979*/            OPC_CheckChild1Integer, 0, 
/*592981*/            OPC_MoveParent,
/*592982*/            OPC_CheckType, MVT::f64,
/*592984*/            OPC_MoveParent,
/*592985*/            OPC_MoveParent,
/*592986*/            OPC_CheckType, MVT::v2f64,
/*592988*/            OPC_Scope, 21, /*->593011*/ // 3 children in Scope
/*592990*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*592992*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*592995*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593003*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fadd:{ *:[f64] } FR64:{ *:[f64] }:$src, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (ADDSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*593011*/            /*Scope*/ 21, /*->593033*/
/*593012*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*593014*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593017*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593025*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fadd:{ *:[f64] } FR64:{ *:[f64] }:$src, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VADDSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*593033*/            /*Scope*/ 21, /*->593055*/
/*593034*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*593036*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593039*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593047*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fadd:{ *:[f64] } FR64X:{ *:[f64] }:$src, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VADDSDZrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*593055*/            0, /*End of Scope*/
/*593056*/          0, /*End of Scope*/
/*593057*/        /*SwitchOpcode*/ 84, TARGET_VAL(ISD::FSUB),// ->593144
/*593060*/          OPC_MoveChild0,
/*593061*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593064*/          OPC_CheckChild0Same, 0,
/*593066*/          OPC_CheckChild1Integer, 0, 
/*593068*/          OPC_MoveParent,
/*593069*/          OPC_RecordChild1, // #1 = $src
/*593070*/          OPC_CheckType, MVT::f64,
/*593072*/          OPC_MoveParent,
/*593073*/          OPC_MoveParent,
/*593074*/          OPC_CheckType, MVT::v2f64,
/*593076*/          OPC_Scope, 21, /*->593099*/ // 3 children in Scope
/*593078*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*593080*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593083*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593091*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSDrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 3, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src))) - Complexity = 17
                      // Dst: (SUBSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*593099*/          /*Scope*/ 21, /*->593121*/
/*593100*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*593102*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593105*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593113*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 3, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src))) - Complexity = 17
                      // Dst: (VSUBSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*593121*/          /*Scope*/ 21, /*->593143*/
/*593122*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*593124*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593127*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593135*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 3, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src))) - Complexity = 17
                      // Dst: (VSUBSDZrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*593143*/          0, /*End of Scope*/
/*593144*/        /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(ISD::FMUL),// ->593320
/*593148*/          OPC_Scope, 84, /*->593234*/ // 2 children in Scope
/*593150*/            OPC_MoveChild0,
/*593151*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593154*/            OPC_CheckChild0Same, 0,
/*593156*/            OPC_CheckChild1Integer, 0, 
/*593158*/            OPC_MoveParent,
/*593159*/            OPC_RecordChild1, // #1 = $src
/*593160*/            OPC_CheckType, MVT::f64,
/*593162*/            OPC_MoveParent,
/*593163*/            OPC_MoveParent,
/*593164*/            OPC_CheckType, MVT::v2f64,
/*593166*/            OPC_Scope, 21, /*->593189*/ // 3 children in Scope
/*593168*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*593170*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593173*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593181*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src))) - Complexity = 17
                        // Dst: (MULSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*593189*/            /*Scope*/ 21, /*->593211*/
/*593190*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*593192*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593195*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593203*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src))) - Complexity = 17
                        // Dst: (VMULSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*593211*/            /*Scope*/ 21, /*->593233*/
/*593212*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*593214*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593217*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593225*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src))) - Complexity = 17
                        // Dst: (VMULSDZrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*593233*/            0, /*End of Scope*/
/*593234*/          /*Scope*/ 84, /*->593319*/
/*593235*/            OPC_RecordChild0, // #1 = $src
/*593236*/            OPC_MoveChild1,
/*593237*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593240*/            OPC_CheckChild0Same, 0,
/*593242*/            OPC_CheckChild1Integer, 0, 
/*593244*/            OPC_MoveParent,
/*593245*/            OPC_CheckType, MVT::f64,
/*593247*/            OPC_MoveParent,
/*593248*/            OPC_MoveParent,
/*593249*/            OPC_CheckType, MVT::v2f64,
/*593251*/            OPC_Scope, 21, /*->593274*/ // 3 children in Scope
/*593253*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*593255*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593258*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593266*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fmul:{ *:[f64] } FR64:{ *:[f64] }:$src, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (MULSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*593274*/            /*Scope*/ 21, /*->593296*/
/*593275*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*593277*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593280*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593288*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fmul:{ *:[f64] } FR64:{ *:[f64] }:$src, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VMULSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*593296*/            /*Scope*/ 21, /*->593318*/
/*593297*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*593299*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593302*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593310*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fmul:{ *:[f64] } FR64X:{ *:[f64] }:$src, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VMULSDZrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*593318*/            0, /*End of Scope*/
/*593319*/          0, /*End of Scope*/
/*593320*/        /*SwitchOpcode*/ 84, TARGET_VAL(ISD::FDIV),// ->593407
/*593323*/          OPC_MoveChild0,
/*593324*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593327*/          OPC_CheckChild0Same, 0,
/*593329*/          OPC_CheckChild1Integer, 0, 
/*593331*/          OPC_MoveParent,
/*593332*/          OPC_RecordChild1, // #1 = $src
/*593333*/          OPC_CheckType, MVT::f64,
/*593335*/          OPC_MoveParent,
/*593336*/          OPC_MoveParent,
/*593337*/          OPC_CheckType, MVT::v2f64,
/*593339*/          OPC_Scope, 21, /*->593362*/ // 3 children in Scope
/*593341*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*593343*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593346*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593354*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSDrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 3, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src))) - Complexity = 17
                      // Dst: (DIVSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*593362*/          /*Scope*/ 21, /*->593384*/
/*593363*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*593365*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593368*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593376*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 3, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src))) - Complexity = 17
                      // Dst: (VDIVSDrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src, VR128:{ *:[i32] }))
/*593384*/          /*Scope*/ 21, /*->593406*/
/*593385*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*593387*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593390*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*593398*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 3, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src))) - Complexity = 17
                      // Dst: (VDIVSDZrr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*593406*/          0, /*End of Scope*/
/*593407*/        /*SwitchOpcode*/ 39|128,2/*295*/, TARGET_VAL(ISD::FMA),// ->593706
/*593411*/          OPC_Scope, 75|128,1/*203*/, /*->593617*/ // 2 children in Scope
/*593414*/            OPC_RecordChild0, // #1 = $src2
/*593415*/            OPC_Scope, 49, /*->593466*/ // 4 children in Scope
/*593417*/              OPC_MoveChild1,
/*593418*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593421*/              OPC_CheckChild0Same, 0,
/*593423*/              OPC_CheckChild1Integer, 0, 
/*593425*/              OPC_MoveParent,
/*593426*/              OPC_RecordChild2, // #2 = $src3
/*593427*/              OPC_CheckType, MVT::f64,
/*593429*/              OPC_MoveParent,
/*593430*/              OPC_MoveParent,
/*593431*/              OPC_CheckType, MVT::v2f64,
/*593433*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*593435*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593438*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593446*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593449*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593457*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFMADD213SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*593466*/            /*Scope*/ 49, /*->593516*/
/*593467*/              OPC_RecordChild1, // #2 = $src3
/*593468*/              OPC_MoveChild2,
/*593469*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593472*/              OPC_CheckChild0Same, 0,
/*593474*/              OPC_CheckChild1Integer, 0, 
/*593476*/              OPC_MoveParent,
/*593477*/              OPC_CheckType, MVT::f64,
/*593479*/              OPC_MoveParent,
/*593480*/              OPC_MoveParent,
/*593481*/              OPC_CheckType, MVT::v2f64,
/*593483*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*593485*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593488*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593496*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593499*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593507*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VFMADD231SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*593516*/            /*Scope*/ 49, /*->593566*/
/*593517*/              OPC_MoveChild1,
/*593518*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593521*/              OPC_CheckChild0Same, 0,
/*593523*/              OPC_CheckChild1Integer, 0, 
/*593525*/              OPC_MoveParent,
/*593526*/              OPC_RecordChild2, // #2 = $src3
/*593527*/              OPC_CheckType, MVT::f64,
/*593529*/              OPC_MoveParent,
/*593530*/              OPC_MoveParent,
/*593531*/              OPC_CheckType, MVT::v2f64,
/*593533*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*593535*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593538*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593546*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593549*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593557*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFMADD213SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*593566*/            /*Scope*/ 49, /*->593616*/
/*593567*/              OPC_RecordChild1, // #2 = $src3
/*593568*/              OPC_MoveChild2,
/*593569*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593572*/              OPC_CheckChild0Same, 0,
/*593574*/              OPC_CheckChild1Integer, 0, 
/*593576*/              OPC_MoveParent,
/*593577*/              OPC_CheckType, MVT::f64,
/*593579*/              OPC_MoveParent,
/*593580*/              OPC_MoveParent,
/*593581*/              OPC_CheckType, MVT::v2f64,
/*593583*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*593585*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593588*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593596*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593599*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593607*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VFMADD231SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*593616*/            0, /*End of Scope*/
/*593617*/          /*Scope*/ 87, /*->593705*/
/*593618*/            OPC_MoveChild0,
/*593619*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593622*/            OPC_CheckChild0Same, 0,
/*593624*/            OPC_CheckChild1Integer, 0, 
/*593626*/            OPC_MoveParent,
/*593627*/            OPC_RecordChild1, // #1 = $src2
/*593628*/            OPC_RecordChild2, // #2 = $src3
/*593629*/            OPC_CheckType, MVT::f64,
/*593631*/            OPC_MoveParent,
/*593632*/            OPC_MoveParent,
/*593633*/            OPC_CheckType, MVT::v2f64,
/*593635*/            OPC_Scope, 33, /*->593670*/ // 2 children in Scope
/*593637*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*593639*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593642*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593650*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593653*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593661*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFMADD213SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*593670*/            /*Scope*/ 33, /*->593704*/
/*593671*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*593673*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593676*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593684*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593687*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593695*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFMADD213SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*593704*/            0, /*End of Scope*/
/*593705*/          0, /*End of Scope*/
/*593706*/        /*SwitchOpcode*/ 39|128,2/*295*/, TARGET_VAL(X86ISD::FMSUB),// ->594005
/*593710*/          OPC_Scope, 75|128,1/*203*/, /*->593916*/ // 2 children in Scope
/*593713*/            OPC_RecordChild0, // #1 = $src2
/*593714*/            OPC_Scope, 49, /*->593765*/ // 4 children in Scope
/*593716*/              OPC_MoveChild1,
/*593717*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593720*/              OPC_CheckChild0Same, 0,
/*593722*/              OPC_CheckChild1Integer, 0, 
/*593724*/              OPC_MoveParent,
/*593725*/              OPC_RecordChild2, // #2 = $src3
/*593726*/              OPC_CheckType, MVT::f64,
/*593728*/              OPC_MoveParent,
/*593729*/              OPC_MoveParent,
/*593730*/              OPC_CheckType, MVT::v2f64,
/*593732*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*593734*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593737*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593745*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593748*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593756*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFMSUB213SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*593765*/            /*Scope*/ 49, /*->593815*/
/*593766*/              OPC_RecordChild1, // #2 = $src3
/*593767*/              OPC_MoveChild2,
/*593768*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593771*/              OPC_CheckChild0Same, 0,
/*593773*/              OPC_CheckChild1Integer, 0, 
/*593775*/              OPC_MoveParent,
/*593776*/              OPC_CheckType, MVT::f64,
/*593778*/              OPC_MoveParent,
/*593779*/              OPC_MoveParent,
/*593780*/              OPC_CheckType, MVT::v2f64,
/*593782*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*593784*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593787*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593795*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593798*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593806*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VFMSUB231SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*593815*/            /*Scope*/ 49, /*->593865*/
/*593816*/              OPC_MoveChild1,
/*593817*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593820*/              OPC_CheckChild0Same, 0,
/*593822*/              OPC_CheckChild1Integer, 0, 
/*593824*/              OPC_MoveParent,
/*593825*/              OPC_RecordChild2, // #2 = $src3
/*593826*/              OPC_CheckType, MVT::f64,
/*593828*/              OPC_MoveParent,
/*593829*/              OPC_MoveParent,
/*593830*/              OPC_CheckType, MVT::v2f64,
/*593832*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*593834*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593837*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593845*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593848*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593856*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFMSUB213SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*593865*/            /*Scope*/ 49, /*->593915*/
/*593866*/              OPC_RecordChild1, // #2 = $src3
/*593867*/              OPC_MoveChild2,
/*593868*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593871*/              OPC_CheckChild0Same, 0,
/*593873*/              OPC_CheckChild1Integer, 0, 
/*593875*/              OPC_MoveParent,
/*593876*/              OPC_CheckType, MVT::f64,
/*593878*/              OPC_MoveParent,
/*593879*/              OPC_MoveParent,
/*593880*/              OPC_CheckType, MVT::v2f64,
/*593882*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*593884*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593887*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593895*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593898*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593906*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VFMSUB231SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*593915*/            0, /*End of Scope*/
/*593916*/          /*Scope*/ 87, /*->594004*/
/*593917*/            OPC_MoveChild0,
/*593918*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*593921*/            OPC_CheckChild0Same, 0,
/*593923*/            OPC_CheckChild1Integer, 0, 
/*593925*/            OPC_MoveParent,
/*593926*/            OPC_RecordChild1, // #1 = $src2
/*593927*/            OPC_RecordChild2, // #2 = $src3
/*593928*/            OPC_CheckType, MVT::f64,
/*593930*/            OPC_MoveParent,
/*593931*/            OPC_MoveParent,
/*593932*/            OPC_CheckType, MVT::v2f64,
/*593934*/            OPC_Scope, 33, /*->593969*/ // 2 children in Scope
/*593936*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*593938*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593941*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593949*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*593952*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593960*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFMSUB213SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*593969*/            /*Scope*/ 33, /*->594003*/
/*593970*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*593972*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593975*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*593983*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*593986*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*593994*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFMSUB213SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*594003*/            0, /*End of Scope*/
/*594004*/          0, /*End of Scope*/
/*594005*/        /*SwitchOpcode*/ 39|128,2/*295*/, TARGET_VAL(X86ISD::FNMADD),// ->594304
/*594009*/          OPC_Scope, 75|128,1/*203*/, /*->594215*/ // 2 children in Scope
/*594012*/            OPC_RecordChild0, // #1 = $src2
/*594013*/            OPC_Scope, 49, /*->594064*/ // 4 children in Scope
/*594015*/              OPC_MoveChild1,
/*594016*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*594019*/              OPC_CheckChild0Same, 0,
/*594021*/              OPC_CheckChild1Integer, 0, 
/*594023*/              OPC_MoveParent,
/*594024*/              OPC_RecordChild2, // #2 = $src3
/*594025*/              OPC_CheckType, MVT::f64,
/*594027*/              OPC_MoveParent,
/*594028*/              OPC_MoveParent,
/*594029*/              OPC_CheckType, MVT::v2f64,
/*594031*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*594033*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594036*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594044*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594047*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594055*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFNMADD213SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*594064*/            /*Scope*/ 49, /*->594114*/
/*594065*/              OPC_RecordChild1, // #2 = $src3
/*594066*/              OPC_MoveChild2,
/*594067*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*594070*/              OPC_CheckChild0Same, 0,
/*594072*/              OPC_CheckChild1Integer, 0, 
/*594074*/              OPC_MoveParent,
/*594075*/              OPC_CheckType, MVT::f64,
/*594077*/              OPC_MoveParent,
/*594078*/              OPC_MoveParent,
/*594079*/              OPC_CheckType, MVT::v2f64,
/*594081*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*594083*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594086*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594094*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594097*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594105*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VFNMADD231SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*594114*/            /*Scope*/ 49, /*->594164*/
/*594115*/              OPC_MoveChild1,
/*594116*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*594119*/              OPC_CheckChild0Same, 0,
/*594121*/              OPC_CheckChild1Integer, 0, 
/*594123*/              OPC_MoveParent,
/*594124*/              OPC_RecordChild2, // #2 = $src3
/*594125*/              OPC_CheckType, MVT::f64,
/*594127*/              OPC_MoveParent,
/*594128*/              OPC_MoveParent,
/*594129*/              OPC_CheckType, MVT::v2f64,
/*594131*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594133*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594136*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594144*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594147*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594155*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFNMADD213SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*594164*/            /*Scope*/ 49, /*->594214*/
/*594165*/              OPC_RecordChild1, // #2 = $src3
/*594166*/              OPC_MoveChild2,
/*594167*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*594170*/              OPC_CheckChild0Same, 0,
/*594172*/              OPC_CheckChild1Integer, 0, 
/*594174*/              OPC_MoveParent,
/*594175*/              OPC_CheckType, MVT::f64,
/*594177*/              OPC_MoveParent,
/*594178*/              OPC_MoveParent,
/*594179*/              OPC_CheckType, MVT::v2f64,
/*594181*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594183*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594186*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594194*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594197*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594205*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VFNMADD231SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*594214*/            0, /*End of Scope*/
/*594215*/          /*Scope*/ 87, /*->594303*/
/*594216*/            OPC_MoveChild0,
/*594217*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*594220*/            OPC_CheckChild0Same, 0,
/*594222*/            OPC_CheckChild1Integer, 0, 
/*594224*/            OPC_MoveParent,
/*594225*/            OPC_RecordChild1, // #1 = $src2
/*594226*/            OPC_RecordChild2, // #2 = $src3
/*594227*/            OPC_CheckType, MVT::f64,
/*594229*/            OPC_MoveParent,
/*594230*/            OPC_MoveParent,
/*594231*/            OPC_CheckType, MVT::v2f64,
/*594233*/            OPC_Scope, 33, /*->594268*/ // 2 children in Scope
/*594235*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*594237*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594240*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594248*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594251*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594259*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFNMADD213SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*594268*/            /*Scope*/ 33, /*->594302*/
/*594269*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594271*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594274*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594282*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594285*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594293*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFNMADD213SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*594302*/            0, /*End of Scope*/
/*594303*/          0, /*End of Scope*/
/*594304*/        /*SwitchOpcode*/ 39|128,2/*295*/, TARGET_VAL(X86ISD::FNMSUB),// ->594603
/*594308*/          OPC_Scope, 75|128,1/*203*/, /*->594514*/ // 2 children in Scope
/*594311*/            OPC_RecordChild0, // #1 = $src2
/*594312*/            OPC_Scope, 49, /*->594363*/ // 4 children in Scope
/*594314*/              OPC_MoveChild1,
/*594315*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*594318*/              OPC_CheckChild0Same, 0,
/*594320*/              OPC_CheckChild1Integer, 0, 
/*594322*/              OPC_MoveParent,
/*594323*/              OPC_RecordChild2, // #2 = $src3
/*594324*/              OPC_CheckType, MVT::f64,
/*594326*/              OPC_MoveParent,
/*594327*/              OPC_MoveParent,
/*594328*/              OPC_CheckType, MVT::v2f64,
/*594330*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*594332*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594335*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594343*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594346*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594354*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFNMSUB213SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*594363*/            /*Scope*/ 49, /*->594413*/
/*594364*/              OPC_RecordChild1, // #2 = $src3
/*594365*/              OPC_MoveChild2,
/*594366*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*594369*/              OPC_CheckChild0Same, 0,
/*594371*/              OPC_CheckChild1Integer, 0, 
/*594373*/              OPC_MoveParent,
/*594374*/              OPC_CheckType, MVT::f64,
/*594376*/              OPC_MoveParent,
/*594377*/              OPC_MoveParent,
/*594378*/              OPC_CheckType, MVT::v2f64,
/*594380*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*594382*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594385*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594393*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594396*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594404*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VFNMSUB231SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*594413*/            /*Scope*/ 49, /*->594463*/
/*594414*/              OPC_MoveChild1,
/*594415*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*594418*/              OPC_CheckChild0Same, 0,
/*594420*/              OPC_CheckChild1Integer, 0, 
/*594422*/              OPC_MoveParent,
/*594423*/              OPC_RecordChild2, // #2 = $src3
/*594424*/              OPC_CheckType, MVT::f64,
/*594426*/              OPC_MoveParent,
/*594427*/              OPC_MoveParent,
/*594428*/              OPC_CheckType, MVT::v2f64,
/*594430*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594432*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594435*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594443*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594446*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594454*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFNMSUB213SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*594463*/            /*Scope*/ 49, /*->594513*/
/*594464*/              OPC_RecordChild1, // #2 = $src3
/*594465*/              OPC_MoveChild2,
/*594466*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*594469*/              OPC_CheckChild0Same, 0,
/*594471*/              OPC_CheckChild1Integer, 0, 
/*594473*/              OPC_MoveParent,
/*594474*/              OPC_CheckType, MVT::f64,
/*594476*/              OPC_MoveParent,
/*594477*/              OPC_MoveParent,
/*594478*/              OPC_CheckType, MVT::v2f64,
/*594480*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594482*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594485*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594493*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594496*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594504*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VFNMSUB231SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*594513*/            0, /*End of Scope*/
/*594514*/          /*Scope*/ 87, /*->594602*/
/*594515*/            OPC_MoveChild0,
/*594516*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*594519*/            OPC_CheckChild0Same, 0,
/*594521*/            OPC_CheckChild1Integer, 0, 
/*594523*/            OPC_MoveParent,
/*594524*/            OPC_RecordChild1, // #1 = $src2
/*594525*/            OPC_RecordChild2, // #2 = $src3
/*594526*/            OPC_CheckType, MVT::f64,
/*594528*/            OPC_MoveParent,
/*594529*/            OPC_MoveParent,
/*594530*/            OPC_CheckType, MVT::v2f64,
/*594532*/            OPC_Scope, 33, /*->594567*/ // 2 children in Scope
/*594534*/              OPC_CheckPatternPredicate, 191, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*594536*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594539*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594547*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*594550*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594558*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFNMSUB213SDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src2, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/*594567*/            /*Scope*/ 33, /*->594601*/
/*594568*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594570*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594573*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*594581*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*594584*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*594592*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZr_Int), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 4, 6, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86Fnmsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3))) - Complexity = 17
                        // Dst: (VFNMSUB213SDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src2, VR128X:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src3, VR128X:{ *:[i32] }))
/*594601*/            0, /*End of Scope*/
/*594602*/          0, /*End of Scope*/
/*594603*/        /*SwitchOpcode*/ 89, TARGET_VAL(ISD::SINT_TO_FP),// ->594695
/*594606*/          OPC_RecordChild0, // #1 = $src
/*594607*/          OPC_CheckType, MVT::f64,
/*594609*/          OPC_Scope, 41, /*->594652*/ // 2 children in Scope
/*594611*/            OPC_CheckChild0Type, MVT::i64,
/*594613*/            OPC_MoveParent,
/*594614*/            OPC_MoveParent,
/*594615*/            OPC_CheckType, MVT::v2f64,
/*594617*/            OPC_Scope, 10, /*->594629*/ // 3 children in Scope
/*594619*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*594621*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                        // Dst: (VCVTSI642SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, GR64:{ *:[i64] }:$src)
/*594629*/            /*Scope*/ 10, /*->594640*/
/*594630*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*594632*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                        // Dst: (CVTSI642SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, GR64:{ *:[i64] }:$src)
/*594640*/            /*Scope*/ 10, /*->594651*/
/*594641*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594643*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                        // Dst: (VCVTSI642SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, GR64:{ *:[i64] }:$src)
/*594651*/            0, /*End of Scope*/
/*594652*/          /*Scope*/ 41, /*->594694*/
/*594653*/            OPC_CheckChild0Type, MVT::i32,
/*594655*/            OPC_MoveParent,
/*594656*/            OPC_MoveParent,
/*594657*/            OPC_CheckType, MVT::v2f64,
/*594659*/            OPC_Scope, 10, /*->594671*/ // 3 children in Scope
/*594661*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*594663*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                        // Dst: (VCVTSI2SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, GR32:{ *:[i32] }:$src)
/*594671*/            /*Scope*/ 10, /*->594682*/
/*594672*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*594674*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SDrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                        // Dst: (CVTSI2SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, GR32:{ *:[i32] }:$src)
/*594682*/            /*Scope*/ 10, /*->594693*/
/*594683*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594685*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDZrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (sint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                        // Dst: (VCVTSI2SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, GR32:{ *:[i32] }:$src)
/*594693*/            0, /*End of Scope*/
/*594694*/          0, /*End of Scope*/
/*594695*/        /*SwitchOpcode*/ 39, TARGET_VAL(ISD::UINT_TO_FP),// ->594737
/*594698*/          OPC_RecordChild0, // #1 = $src
/*594699*/          OPC_CheckType, MVT::f64,
/*594701*/          OPC_Scope, 16, /*->594719*/ // 2 children in Scope
/*594703*/            OPC_CheckChild0Type, MVT::i64,
/*594705*/            OPC_MoveParent,
/*594706*/            OPC_MoveParent,
/*594707*/            OPC_CheckType, MVT::v2f64,
/*594709*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594711*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (uint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                      // Dst: (VCVTUSI642SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, GR64:{ *:[i64] }:$src)
/*594719*/          /*Scope*/ 16, /*->594736*/
/*594720*/            OPC_CheckChild0Type, MVT::i32,
/*594722*/            OPC_MoveParent,
/*594723*/            OPC_MoveParent,
/*594724*/            OPC_CheckType, MVT::v2f64,
/*594726*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594728*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SDZrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (uint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                      // Dst: (VCVTUSI2SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, GR32:{ *:[i32] }:$src)
/*594736*/          0, /*End of Scope*/
/*594737*/        0, // EndSwitchOpcode
/*594738*/      /*Scope*/ 68, /*->594807*/
/*594739*/        OPC_RecordChild1, // #1 = $src2
/*594740*/        OPC_CheckType, MVT::v2f64,
/*594742*/        OPC_Scope, 10, /*->594754*/ // 5 children in Scope
/*594744*/          OPC_CheckPatternPredicate, 125, // (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*594746*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VMOVSDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*594754*/        /*Scope*/ 10, /*->594765*/
/*594755*/          OPC_CheckPatternPredicate, 192, // (MF->getFunction().optForSize() || !Subtarget->hasSSE41()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*594757*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (MOVSDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*594765*/        /*Scope*/ 14, /*->594780*/
/*594766*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!MF->getFunction().optForSize())
/*594768*/          OPC_EmitInteger, MVT::i8, 1, 
/*594771*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VBLENDPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, 1:{ *:[i8] })
/*594780*/        /*Scope*/ 14, /*->594795*/
/*594781*/          OPC_CheckPatternPredicate, 128, // (!MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*594783*/          OPC_EmitInteger, MVT::i8, 1, 
/*594786*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (BLENDPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, 1:{ *:[i8] })
/*594795*/        /*Scope*/ 10, /*->594806*/
/*594796*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (MF->getFunction().optForSize())
/*594798*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VMOVSDZrr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*594806*/        0, /*End of Scope*/
/*594807*/      0, /*End of Scope*/
/*594808*/    0, /*End of Scope*/
/*594809*/  /*SwitchOpcode*/ 53|128,1/*181*/, TARGET_VAL(X86ISD::VFIXUPIMMS),// ->594994
/*594813*/    OPC_RecordChild0, // #0 = $src1
/*594814*/    OPC_RecordChild1, // #1 = $src2
/*594815*/    OPC_Scope, 92, /*->594909*/ // 2 children in Scope
/*594817*/      OPC_MoveChild2,
/*594818*/      OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*594821*/      OPC_MoveChild0,
/*594822*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*594825*/      OPC_RecordMemRef,
/*594826*/      OPC_RecordNode, // #2 = 'ld' chained node
/*594827*/      OPC_CheckFoldableChainNode,
/*594828*/      OPC_RecordChild1, // #3 = $src3
/*594829*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*594831*/      OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->594870
/*594834*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*594836*/        OPC_MoveParent,
/*594837*/        OPC_MoveParent,
/*594838*/        OPC_RecordChild3, // #4 = $src4
/*594839*/        OPC_MoveChild3,
/*594840*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*594843*/        OPC_MoveParent,
/*594844*/        OPC_CheckChild4Integer, 4, 
/*594846*/        OPC_CheckType, MVT::v4f32,
/*594848*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594850*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*594853*/        OPC_EmitMergeInputChains1_2,
/*594854*/        OPC_EmitConvertToTarget, 4,
/*594856*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86VFixupimmScalar:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 36
                  // Dst: (VFIXUPIMMSSZrmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*594870*/      /*SwitchType*/ 36, MVT::i64,// ->594908
/*594872*/        OPC_CheckPredicate, 9, // Predicate_load
/*594874*/        OPC_MoveParent,
/*594875*/        OPC_MoveParent,
/*594876*/        OPC_RecordChild3, // #4 = $src4
/*594877*/        OPC_MoveChild3,
/*594878*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*594881*/        OPC_MoveParent,
/*594882*/        OPC_CheckChild4Integer, 4, 
/*594884*/        OPC_CheckType, MVT::v2f64,
/*594886*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594888*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*594891*/        OPC_EmitMergeInputChains1_2,
/*594892*/        OPC_EmitConvertToTarget, 4,
/*594894*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86VFixupimmScalar:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 36
                  // Dst: (VFIXUPIMMSDZrmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*594908*/      0, // EndSwitchType
/*594909*/    /*Scope*/ 83, /*->594993*/
/*594910*/      OPC_RecordChild2, // #2 = $src3
/*594911*/      OPC_RecordChild3, // #3 = $src4
/*594912*/      OPC_MoveChild3,
/*594913*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*594916*/      OPC_MoveParent,
/*594917*/      OPC_Scope, 36, /*->594955*/ // 2 children in Scope
/*594919*/        OPC_CheckChild4Integer, 4, 
/*594921*/        OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->594938
/*594924*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594926*/          OPC_EmitConvertToTarget, 3,
/*594928*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrri), 0,
                        MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimmScalar:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMSSZrri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*594938*/        /*SwitchType*/ 14, MVT::v2f64,// ->594954
/*594940*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594942*/          OPC_EmitConvertToTarget, 3,
/*594944*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrri), 0,
                        MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimmScalar:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMSDZrri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*594954*/        0, // EndSwitchType
/*594955*/      /*Scope*/ 36, /*->594992*/
/*594956*/        OPC_CheckChild4Integer, 8, 
/*594958*/        OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->594975
/*594961*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594963*/          OPC_EmitConvertToTarget, 3,
/*594965*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrrib), 0,
                        MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimmScalar:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMSSZrrib:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*594975*/        /*SwitchType*/ 14, MVT::v2f64,// ->594991
/*594977*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*594979*/          OPC_EmitConvertToTarget, 3,
/*594981*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrrib), 0,
                        MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimmScalar:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMSDZrrib:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*594991*/        0, // EndSwitchType
/*594992*/      0, /*End of Scope*/
/*594993*/    0, /*End of Scope*/
/*594994*/  /*SwitchOpcode*/ 61|128,4/*573*/, TARGET_VAL(X86ISD::VFIXUPIMM),// ->595571
/*594998*/    OPC_RecordChild0, // #0 = $src1
/*594999*/    OPC_RecordChild1, // #1 = $src2
/*595000*/    OPC_Scope, 34|128,3/*418*/, /*->595421*/ // 2 children in Scope
/*595003*/      OPC_MoveChild2,
/*595004*/      OPC_SwitchOpcode /*3 cases */, 124, TARGET_VAL(ISD::BITCAST),// ->595132
/*595008*/        OPC_MoveChild0,
/*595009*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*595012*/        OPC_RecordMemRef,
/*595013*/        OPC_RecordNode, // #2 = 'ld' chained node
/*595014*/        OPC_CheckFoldableChainNode,
/*595015*/        OPC_RecordChild1, // #3 = $src3
/*595016*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*595018*/        OPC_CheckPredicate, 9, // Predicate_load
/*595020*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*595022*/        OPC_SwitchType /*3 cases */, 34, MVT::v8i64,// ->595059
/*595025*/          OPC_MoveParent,
/*595026*/          OPC_MoveParent,
/*595027*/          OPC_RecordChild3, // #4 = $src4
/*595028*/          OPC_MoveChild3,
/*595029*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*595032*/          OPC_MoveParent,
/*595033*/          OPC_CheckChild4Integer, 4, 
/*595035*/          OPC_CheckType, MVT::v16f32,
/*595037*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*595039*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595042*/          OPC_EmitMergeInputChains1_2,
/*595043*/          OPC_EmitConvertToTarget, 4,
/*595045*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 36
                    // Dst: (VFIXUPIMMPSZrmi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595059*/        /*SwitchType*/ 34, MVT::v2i64,// ->595095
/*595061*/          OPC_MoveParent,
/*595062*/          OPC_MoveParent,
/*595063*/          OPC_RecordChild3, // #4 = $src4
/*595064*/          OPC_MoveChild3,
/*595065*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*595068*/          OPC_MoveParent,
/*595069*/          OPC_CheckChild4Integer, 4, 
/*595071*/          OPC_CheckType, MVT::v4f32,
/*595073*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595075*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595078*/          OPC_EmitMergeInputChains1_2,
/*595079*/          OPC_EmitConvertToTarget, 4,
/*595081*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 36
                    // Dst: (VFIXUPIMMPSZ128rmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595095*/        /*SwitchType*/ 34, MVT::v4i64,// ->595131
/*595097*/          OPC_MoveParent,
/*595098*/          OPC_MoveParent,
/*595099*/          OPC_RecordChild3, // #4 = $src4
/*595100*/          OPC_MoveChild3,
/*595101*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*595104*/          OPC_MoveParent,
/*595105*/          OPC_CheckChild4Integer, 4, 
/*595107*/          OPC_CheckType, MVT::v8f32,
/*595109*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595111*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595114*/          OPC_EmitMergeInputChains1_2,
/*595115*/          OPC_EmitConvertToTarget, 4,
/*595117*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 36
                    // Dst: (VFIXUPIMMPSZ256rmi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595131*/        0, // EndSwitchType
/*595132*/      /*SwitchOpcode*/ 60|128,1/*188*/, TARGET_VAL(X86ISD::VBROADCAST),// ->595324
/*595136*/        OPC_MoveChild0,
/*595137*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*595140*/        OPC_RecordMemRef,
/*595141*/        OPC_RecordNode, // #2 = 'ld' chained node
/*595142*/        OPC_CheckFoldableChainNode,
/*595143*/        OPC_RecordChild1, // #3 = $src3
/*595144*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*595146*/        OPC_SwitchType /*2 cases */, 86, MVT::i32,// ->595235
/*595149*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*595151*/          OPC_MoveParent,
/*595152*/          OPC_MoveParent,
/*595153*/          OPC_RecordChild3, // #4 = $src4
/*595154*/          OPC_MoveChild3,
/*595155*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*595158*/          OPC_MoveParent,
/*595159*/          OPC_CheckChild4Integer, 4, 
/*595161*/          OPC_SwitchType /*3 cases */, 22, MVT::v16f32,// ->595186
/*595164*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*595166*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595169*/            OPC_EmitMergeInputChains1_2,
/*595170*/            OPC_EmitConvertToTarget, 4,
/*595172*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 36
                      // Dst: (VFIXUPIMMPSZrmbi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595186*/          /*SwitchType*/ 22, MVT::v4f32,// ->595210
/*595188*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595190*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595193*/            OPC_EmitMergeInputChains1_2,
/*595194*/            OPC_EmitConvertToTarget, 4,
/*595196*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 36
                      // Dst: (VFIXUPIMMPSZ128rmbi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595210*/          /*SwitchType*/ 22, MVT::v8f32,// ->595234
/*595212*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595214*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595217*/            OPC_EmitMergeInputChains1_2,
/*595218*/            OPC_EmitConvertToTarget, 4,
/*595220*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 36
                      // Dst: (VFIXUPIMMPSZ256rmbi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595234*/          0, // EndSwitchType
/*595235*/        /*SwitchType*/ 86, MVT::i64,// ->595323
/*595237*/          OPC_CheckPredicate, 9, // Predicate_load
/*595239*/          OPC_MoveParent,
/*595240*/          OPC_MoveParent,
/*595241*/          OPC_RecordChild3, // #4 = $src4
/*595242*/          OPC_MoveChild3,
/*595243*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*595246*/          OPC_MoveParent,
/*595247*/          OPC_CheckChild4Integer, 4, 
/*595249*/          OPC_SwitchType /*3 cases */, 22, MVT::v8f64,// ->595274
/*595252*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*595254*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595257*/            OPC_EmitMergeInputChains1_2,
/*595258*/            OPC_EmitConvertToTarget, 4,
/*595260*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 36
                      // Dst: (VFIXUPIMMPDZrmbi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595274*/          /*SwitchType*/ 22, MVT::v2f64,// ->595298
/*595276*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595278*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595281*/            OPC_EmitMergeInputChains1_2,
/*595282*/            OPC_EmitConvertToTarget, 4,
/*595284*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 36
                      // Dst: (VFIXUPIMMPDZ128rmbi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595298*/          /*SwitchType*/ 22, MVT::v4f64,// ->595322
/*595300*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595302*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595305*/            OPC_EmitMergeInputChains1_2,
/*595306*/            OPC_EmitConvertToTarget, 4,
/*595308*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                      // Src: (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 36
                      // Dst: (VFIXUPIMMPDZ256rmbi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595322*/          0, // EndSwitchType
/*595323*/        0, // EndSwitchType
/*595324*/      /*SwitchOpcode*/ 93, TARGET_VAL(ISD::LOAD),// ->595420
/*595327*/        OPC_RecordMemRef,
/*595328*/        OPC_RecordNode, // #2 = 'ld' chained node
/*595329*/        OPC_CheckFoldableChainNode,
/*595330*/        OPC_RecordChild1, // #3 = $src3
/*595331*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*595333*/        OPC_CheckPredicate, 9, // Predicate_load
/*595335*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*595337*/        OPC_MoveParent,
/*595338*/        OPC_RecordChild3, // #4 = $src4
/*595339*/        OPC_MoveChild3,
/*595340*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*595343*/        OPC_MoveParent,
/*595344*/        OPC_CheckChild4Integer, 4, 
/*595346*/        OPC_SwitchType /*3 cases */, 22, MVT::v8f64,// ->595371
/*595349*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*595351*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595354*/          OPC_EmitMergeInputChains1_2,
/*595355*/          OPC_EmitConvertToTarget, 4,
/*595357*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 33
                    // Dst: (VFIXUPIMMPDZrmi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595371*/        /*SwitchType*/ 22, MVT::v2f64,// ->595395
/*595373*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595375*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595378*/          OPC_EmitMergeInputChains1_2,
/*595379*/          OPC_EmitConvertToTarget, 4,
/*595381*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 33
                    // Dst: (VFIXUPIMMPDZ128rmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595395*/        /*SwitchType*/ 22, MVT::v4f64,// ->595419
/*595397*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595399*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*595402*/          OPC_EmitMergeInputChains1_2,
/*595403*/          OPC_EmitConvertToTarget, 4,
/*595405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 33
                    // Dst: (VFIXUPIMMPDZ256rmi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i32] }):$src4)
/*595419*/        0, // EndSwitchType
/*595420*/      0, // EndSwitchOpcode
/*595421*/    /*Scope*/ 19|128,1/*147*/, /*->595570*/
/*595423*/      OPC_RecordChild2, // #2 = $src3
/*595424*/      OPC_RecordChild3, // #3 = $src4
/*595425*/      OPC_MoveChild3,
/*595426*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*595429*/      OPC_MoveParent,
/*595430*/      OPC_Scope, 100, /*->595532*/ // 2 children in Scope
/*595432*/        OPC_CheckChild4Integer, 4, 
/*595434*/        OPC_SwitchType /*6 cases */, 14, MVT::v16f32,// ->595451
/*595437*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*595439*/          OPC_EmitConvertToTarget, 3,
/*595441*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrri), 0,
                        MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*595451*/        /*SwitchType*/ 14, MVT::v4f32,// ->595467
/*595453*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595455*/          OPC_EmitConvertToTarget, 3,
/*595457*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rri), 0,
                        MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*595467*/        /*SwitchType*/ 14, MVT::v8f32,// ->595483
/*595469*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595471*/          OPC_EmitConvertToTarget, 3,
/*595473*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rri), 0,
                        MVT::v8f32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*595483*/        /*SwitchType*/ 14, MVT::v8f64,// ->595499
/*595485*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*595487*/          OPC_EmitConvertToTarget, 3,
/*595489*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrri), 0,
                        MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*595499*/        /*SwitchType*/ 14, MVT::v2f64,// ->595515
/*595501*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595503*/          OPC_EmitConvertToTarget, 3,
/*595505*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rri), 0,
                        MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*595515*/        /*SwitchType*/ 14, MVT::v4f64,// ->595531
/*595517*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*595519*/          OPC_EmitConvertToTarget, 3,
/*595521*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rri), 0,
                        MVT::v4f64, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i32] }):$src4, 4:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*595531*/        0, // EndSwitchType
/*595532*/      /*Scope*/ 36, /*->595569*/
/*595533*/        OPC_CheckChild4Integer, 8, 
/*595535*/        OPC_SwitchType /*2 cases */, 14, MVT::v16f32,// ->595552
/*595538*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*595540*/          OPC_EmitConvertToTarget, 3,
/*595542*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrrib), 0,
                        MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMPSZrrib:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (imm:{ *:[i32] }):$src4)
/*595552*/        /*SwitchType*/ 14, MVT::v8f64,// ->595568
/*595554*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*595556*/          OPC_EmitConvertToTarget, 3,
/*595558*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrrib), 0,
                        MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4, 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (VFIXUPIMMPDZrrib:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (imm:{ *:[i32] }):$src4)
/*595568*/        0, // EndSwitchType
/*595569*/      0, /*End of Scope*/
/*595570*/    0, /*End of Scope*/
/*595571*/  /*SwitchOpcode*/ 12|128,3/*396*/, TARGET_VAL(X86ISD::CVTPH2PS),// ->595971
/*595575*/    OPC_Scope, 65|128,2/*321*/, /*->595899*/ // 2 children in Scope
/*595578*/      OPC_MoveChild0,
/*595579*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*595582*/      OPC_MoveChild0,
/*595583*/      OPC_SwitchOpcode /*4 cases */, 66, TARGET_VAL(X86ISD::VZEXT_MOVL),// ->595653
/*595587*/        OPC_MoveChild0,
/*595588*/        OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*595591*/        OPC_MoveChild0,
/*595592*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*595595*/        OPC_RecordMemRef,
/*595596*/        OPC_RecordNode, // #0 = 'ld' chained node
/*595597*/        OPC_CheckFoldableChainNode,
/*595598*/        OPC_RecordChild1, // #1 = $src
/*595599*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*595601*/        OPC_CheckPredicate, 9, // Predicate_load
/*595603*/        OPC_CheckType, MVT::i64,
/*595605*/        OPC_MoveParent,
/*595606*/        OPC_MoveParent,
/*595607*/        OPC_CheckType, MVT::v2i64,
/*595609*/        OPC_MoveParent,
/*595610*/        OPC_CheckType, MVT::v8i16,
/*595612*/        OPC_MoveParent,
/*595613*/        OPC_CheckType, MVT::v4f32,
/*595615*/        OPC_Scope, 17, /*->595634*/ // 2 children in Scope
/*595617*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*595619*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*595622*/          OPC_EmitMergeInputChains1_0,
/*595623*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtph2ps:{ *:[v4f32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                    // Dst: (VCVTPH2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*595634*/        /*Scope*/ 17, /*->595652*/
/*595635*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*595637*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*595640*/          OPC_EmitMergeInputChains1_0,
/*595641*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtph2ps:{ *:[v4f32] } (bitconvert:{ *:[v8i16] } (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 34
                    // Dst: (VCVTPH2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*595652*/        0, /*End of Scope*/
/*595653*/      /*SwitchOpcode*/ 61, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->595717
/*595656*/        OPC_MoveChild0,
/*595657*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*595660*/        OPC_RecordMemRef,
/*595661*/        OPC_RecordNode, // #0 = 'ld' chained node
/*595662*/        OPC_CheckFoldableChainNode,
/*595663*/        OPC_RecordChild1, // #1 = $src
/*595664*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*595666*/        OPC_CheckPredicate, 9, // Predicate_load
/*595668*/        OPC_CheckType, MVT::i64,
/*595670*/        OPC_MoveParent,
/*595671*/        OPC_CheckType, MVT::v2i64,
/*595673*/        OPC_MoveParent,
/*595674*/        OPC_CheckType, MVT::v8i16,
/*595676*/        OPC_MoveParent,
/*595677*/        OPC_CheckType, MVT::v4f32,
/*595679*/        OPC_Scope, 17, /*->595698*/ // 2 children in Scope
/*595681*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*595683*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*595686*/          OPC_EmitMergeInputChains1_0,
/*595687*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtph2ps:{ *:[v4f32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VCVTPH2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*595698*/        /*Scope*/ 17, /*->595716*/
/*595699*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*595701*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*595704*/          OPC_EmitMergeInputChains1_0,
/*595705*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtph2ps:{ *:[v4f32] } (bitconvert:{ *:[v8i16] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VCVTPH2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*595716*/        0, /*End of Scope*/
/*595717*/      /*SwitchOpcode*/ 125, TARGET_VAL(ISD::LOAD),// ->595845
/*595720*/        OPC_RecordMemRef,
/*595721*/        OPC_RecordNode, // #0 = 'ld' chained node
/*595722*/        OPC_CheckFoldableChainNode,
/*595723*/        OPC_RecordChild1, // #1 = $src
/*595724*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*595726*/        OPC_CheckPredicate, 9, // Predicate_load
/*595728*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*595730*/        OPC_SwitchType /*2 cases */, 86, MVT::v2i64,// ->595819
/*595733*/          OPC_MoveParent,
/*595734*/          OPC_CheckType, MVT::v8i16,
/*595736*/          OPC_MoveParent,
/*595737*/          OPC_SwitchType /*2 cases */, 38, MVT::v4f32,// ->595778
/*595740*/            OPC_Scope, 17, /*->595759*/ // 2 children in Scope
/*595742*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*595744*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*595747*/              OPC_EmitMergeInputChains1_0,
/*595748*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtph2ps:{ *:[v4f32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VCVTPH2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*595759*/            /*Scope*/ 17, /*->595777*/
/*595760*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*595762*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*595765*/              OPC_EmitMergeInputChains1_0,
/*595766*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtph2ps:{ *:[v4f32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VCVTPH2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*595777*/            0, /*End of Scope*/
/*595778*/          /*SwitchType*/ 38, MVT::v8f32,// ->595818
/*595780*/            OPC_Scope, 17, /*->595799*/ // 2 children in Scope
/*595782*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*595784*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*595787*/              OPC_EmitMergeInputChains1_0,
/*595788*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtph2ps:{ *:[v8f32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VCVTPH2PSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*595799*/            /*Scope*/ 17, /*->595817*/
/*595800*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*595802*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*595805*/              OPC_EmitMergeInputChains1_0,
/*595806*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtph2ps:{ *:[v8f32] } (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                        // Dst: (VCVTPH2PSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*595817*/            0, /*End of Scope*/
/*595818*/          0, // EndSwitchType
/*595819*/        /*SwitchType*/ 23, MVT::v4i64,// ->595844
/*595821*/          OPC_MoveParent,
/*595822*/          OPC_CheckType, MVT::v16i16,
/*595824*/          OPC_MoveParent,
/*595825*/          OPC_CheckType, MVT::v16f32,
/*595827*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*595829*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*595832*/          OPC_EmitMergeInputChains1_0,
/*595833*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtph2ps:{ *:[v16f32] } (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VCVTPH2PSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*595844*/        0, // EndSwitchType
/*595845*/      /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->595898
/*595848*/        OPC_RecordMemRef,
/*595849*/        OPC_RecordNode, // #0 = 'X86vzload' chained node
/*595850*/        OPC_CheckFoldableChainNode,
/*595851*/        OPC_RecordChild1, // #1 = $src
/*595852*/        OPC_CheckType, MVT::v2i64,
/*595854*/        OPC_MoveParent,
/*595855*/        OPC_CheckType, MVT::v8i16,
/*595857*/        OPC_MoveParent,
/*595858*/        OPC_CheckType, MVT::v4f32,
/*595860*/        OPC_Scope, 17, /*->595879*/ // 2 children in Scope
/*595862*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*595864*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*595867*/          OPC_EmitMergeInputChains1_0,
/*595868*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtph2ps:{ *:[v4f32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (VCVTPH2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*595879*/        /*Scope*/ 17, /*->595897*/
/*595880*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*595882*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*595885*/          OPC_EmitMergeInputChains1_0,
/*595886*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtph2ps:{ *:[v4f32] } (bitconvert:{ *:[v8i16] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (VCVTPH2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*595897*/        0, /*End of Scope*/
/*595898*/      0, // EndSwitchOpcode
/*595899*/    /*Scope*/ 70, /*->595970*/
/*595900*/      OPC_RecordChild0, // #0 = $src
/*595901*/      OPC_Scope, 52, /*->595955*/ // 2 children in Scope
/*595903*/        OPC_CheckChild0Type, MVT::v8i16,
/*595905*/        OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->595930
/*595908*/          OPC_Scope, 9, /*->595919*/ // 2 children in Scope
/*595910*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*595912*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSrr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtph2ps:{ *:[v4f32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VCVTPH2PSrr:{ *:[v4f32] } VR128:{ *:[v8i16] }:$src)
/*595919*/          /*Scope*/ 9, /*->595929*/
/*595920*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*595922*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ128rr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtph2ps:{ *:[v4f32] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VCVTPH2PSZ128rr:{ *:[v4f32] } VR128X:{ *:[v8i16] }:$src)
/*595929*/          0, /*End of Scope*/
/*595930*/        /*SwitchType*/ 22, MVT::v8f32,// ->595954
/*595932*/          OPC_Scope, 9, /*->595943*/ // 2 children in Scope
/*595934*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*595936*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSYrr), 0,
                          MVT::v8f32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtph2ps:{ *:[v8f32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VCVTPH2PSYrr:{ *:[v8f32] } VR128:{ *:[v8i16] }:$src)
/*595943*/          /*Scope*/ 9, /*->595953*/
/*595944*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*595946*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ256rr), 0,
                          MVT::v8f32, 1/*#Ops*/, 0, 
                      // Src: (X86cvtph2ps:{ *:[v8f32] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VCVTPH2PSZ256rr:{ *:[v8f32] } VR128X:{ *:[v8i16] }:$src)
/*595953*/          0, /*End of Scope*/
/*595954*/        0, // EndSwitchType
/*595955*/      /*Scope*/ 13, /*->595969*/
/*595956*/        OPC_CheckChild0Type, MVT::v16i16,
/*595958*/        OPC_CheckType, MVT::v16f32,
/*595960*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*595962*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (X86cvtph2ps:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                  // Dst: (VCVTPH2PSZrr:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src)
/*595969*/      0, /*End of Scope*/
/*595970*/    0, /*End of Scope*/
/*595971*/  /*SwitchOpcode*/ 37|128,3/*421*/, TARGET_VAL(X86ISD::SCALEF),// ->596396
/*595975*/    OPC_RecordChild0, // #0 = $src1
/*595976*/    OPC_Scope, 40|128,2/*296*/, /*->596275*/ // 2 children in Scope
/*595979*/      OPC_MoveChild1,
/*595980*/      OPC_SwitchOpcode /*2 cases */, 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST),// ->596135
/*595985*/        OPC_MoveChild0,
/*595986*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*595989*/        OPC_RecordMemRef,
/*595990*/        OPC_RecordNode, // #1 = 'ld' chained node
/*595991*/        OPC_CheckFoldableChainNode,
/*595992*/        OPC_RecordChild1, // #2 = $src2
/*595993*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*595995*/        OPC_CheckPredicate, 9, // Predicate_load
/*595997*/        OPC_SwitchType /*2 cases */, 66, MVT::f32,// ->596066
/*596000*/          OPC_MoveParent,
/*596001*/          OPC_MoveParent,
/*596002*/          OPC_CheckChild2Integer, 4, 
/*596004*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->596025
/*596007*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*596009*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596012*/            OPC_EmitMergeInputChains1_1,
/*596013*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VSCALEFPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596025*/          /*SwitchType*/ 18, MVT::v4f32,// ->596045
/*596027*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596029*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596032*/            OPC_EmitMergeInputChains1_1,
/*596033*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86scalef:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VSCALEFPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596045*/          /*SwitchType*/ 18, MVT::v8f32,// ->596065
/*596047*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596049*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596052*/            OPC_EmitMergeInputChains1_1,
/*596053*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86scalef:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VSCALEFPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596065*/          0, // EndSwitchType
/*596066*/        /*SwitchType*/ 66, MVT::f64,// ->596134
/*596068*/          OPC_MoveParent,
/*596069*/          OPC_MoveParent,
/*596070*/          OPC_CheckChild2Integer, 4, 
/*596072*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->596093
/*596075*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*596077*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596080*/            OPC_EmitMergeInputChains1_1,
/*596081*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VSCALEFPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596093*/          /*SwitchType*/ 18, MVT::v2f64,// ->596113
/*596095*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596097*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596100*/            OPC_EmitMergeInputChains1_1,
/*596101*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86scalef:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VSCALEFPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596113*/          /*SwitchType*/ 18, MVT::v4f64,// ->596133
/*596115*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596117*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596120*/            OPC_EmitMergeInputChains1_1,
/*596121*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86scalef:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VSCALEFPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596133*/          0, // EndSwitchType
/*596134*/        0, // EndSwitchType
/*596135*/      /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(ISD::LOAD),// ->596274
/*596139*/        OPC_RecordMemRef,
/*596140*/        OPC_RecordNode, // #1 = 'ld' chained node
/*596141*/        OPC_CheckFoldableChainNode,
/*596142*/        OPC_RecordChild1, // #2 = $src2
/*596143*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*596145*/        OPC_CheckPredicate, 9, // Predicate_load
/*596147*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*596149*/        OPC_MoveParent,
/*596150*/        OPC_CheckChild2Integer, 4, 
/*596152*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->596173
/*596155*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*596157*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596160*/          OPC_EmitMergeInputChains1_1,
/*596161*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VSCALEFPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596173*/        /*SwitchType*/ 18, MVT::v8f64,// ->596193
/*596175*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*596177*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596180*/          OPC_EmitMergeInputChains1_1,
/*596181*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VSCALEFPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596193*/        /*SwitchType*/ 18, MVT::v4f32,// ->596213
/*596195*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596197*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596200*/          OPC_EmitMergeInputChains1_1,
/*596201*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86scalef:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VSCALEFPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596213*/        /*SwitchType*/ 18, MVT::v8f32,// ->596233
/*596215*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596217*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596220*/          OPC_EmitMergeInputChains1_1,
/*596221*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86scalef:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VSCALEFPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596233*/        /*SwitchType*/ 18, MVT::v2f64,// ->596253
/*596235*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596237*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596240*/          OPC_EmitMergeInputChains1_1,
/*596241*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86scalef:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VSCALEFPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596253*/        /*SwitchType*/ 18, MVT::v4f64,// ->596273
/*596255*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596257*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*596260*/          OPC_EmitMergeInputChains1_1,
/*596261*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86scalef:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VSCALEFPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*596273*/        0, // EndSwitchType
/*596274*/      0, // EndSwitchOpcode
/*596275*/    /*Scope*/ 119, /*->596395*/
/*596276*/      OPC_RecordChild1, // #1 = $src2
/*596277*/      OPC_Scope, 76, /*->596355*/ // 2 children in Scope
/*596279*/        OPC_CheckChild2Integer, 4, 
/*596281*/        OPC_SwitchType /*6 cases */, 10, MVT::v16f32,// ->596294
/*596284*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*596286*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrr), 0,
                        MVT::v16f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSCALEFPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*596294*/        /*SwitchType*/ 10, MVT::v8f64,// ->596306
/*596296*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*596298*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrr), 0,
                        MVT::v8f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSCALEFPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*596306*/        /*SwitchType*/ 10, MVT::v4f32,// ->596318
/*596308*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596310*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86scalef:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSCALEFPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*596318*/        /*SwitchType*/ 10, MVT::v8f32,// ->596330
/*596320*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596322*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ256rr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86scalef:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSCALEFPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*596330*/        /*SwitchType*/ 10, MVT::v2f64,// ->596342
/*596332*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596334*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86scalef:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSCALEFPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*596342*/        /*SwitchType*/ 10, MVT::v4f64,// ->596354
/*596344*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*596346*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ256rr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86scalef:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSCALEFPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*596354*/        0, // EndSwitchType
/*596355*/      /*Scope*/ 38, /*->596394*/
/*596356*/        OPC_RecordChild2, // #2 = $rc
/*596357*/        OPC_MoveChild2,
/*596358*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*596361*/        OPC_MoveParent,
/*596362*/        OPC_SwitchType /*2 cases */, 13, MVT::v16f32,// ->596378
/*596365*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*596367*/          OPC_EmitConvertToTarget, 2,
/*596369*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrrb), 0,
                        MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                    // Dst: (VSCALEFPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*596378*/        /*SwitchType*/ 13, MVT::v8f64,// ->596393
/*596380*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*596382*/          OPC_EmitConvertToTarget, 2,
/*596384*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrrb), 0,
                        MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                    // Dst: (VSCALEFPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*596393*/        0, // EndSwitchType
/*596394*/      0, /*End of Scope*/
/*596395*/    0, /*End of Scope*/
/*596396*/  /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::RSQRT28),// ->596587
/*596400*/    OPC_Scope, 126, /*->596528*/ // 2 children in Scope
/*596402*/      OPC_MoveChild0,
/*596403*/      OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(X86ISD::VBROADCAST),// ->596471
/*596407*/        OPC_MoveChild0,
/*596408*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*596411*/        OPC_RecordMemRef,
/*596412*/        OPC_RecordNode, // #0 = 'ld' chained node
/*596413*/        OPC_CheckFoldableChainNode,
/*596414*/        OPC_RecordChild1, // #1 = $src
/*596415*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*596417*/        OPC_CheckPredicate, 9, // Predicate_load
/*596419*/        OPC_SwitchType /*2 cases */, 23, MVT::f32,// ->596445
/*596422*/          OPC_MoveParent,
/*596423*/          OPC_MoveParent,
/*596424*/          OPC_CheckChild1Integer, 4, 
/*596426*/          OPC_CheckType, MVT::v16f32,
/*596428*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596430*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596433*/          OPC_EmitMergeInputChains1_0,
/*596434*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt28:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                    // Dst: (VRSQRT28PSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*596445*/        /*SwitchType*/ 23, MVT::f64,// ->596470
/*596447*/          OPC_MoveParent,
/*596448*/          OPC_MoveParent,
/*596449*/          OPC_CheckChild1Integer, 4, 
/*596451*/          OPC_CheckType, MVT::v8f64,
/*596453*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596455*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596458*/          OPC_EmitMergeInputChains1_0,
/*596459*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt28:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                    // Dst: (VRSQRT28PDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*596470*/        0, // EndSwitchType
/*596471*/      /*SwitchOpcode*/ 53, TARGET_VAL(ISD::LOAD),// ->596527
/*596474*/        OPC_RecordMemRef,
/*596475*/        OPC_RecordNode, // #0 = 'ld' chained node
/*596476*/        OPC_CheckFoldableChainNode,
/*596477*/        OPC_RecordChild1, // #1 = $src
/*596478*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*596480*/        OPC_CheckPredicate, 9, // Predicate_load
/*596482*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*596484*/        OPC_MoveParent,
/*596485*/        OPC_CheckChild1Integer, 4, 
/*596487*/        OPC_SwitchType /*2 cases */, 17, MVT::v16f32,// ->596507
/*596490*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596492*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596495*/          OPC_EmitMergeInputChains1_0,
/*596496*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt28:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VRSQRT28PSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*596507*/        /*SwitchType*/ 17, MVT::v8f64,// ->596526
/*596509*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596511*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596514*/          OPC_EmitMergeInputChains1_0,
/*596515*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt28:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VRSQRT28PDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*596526*/        0, // EndSwitchType
/*596527*/      0, // EndSwitchOpcode
/*596528*/    /*Scope*/ 57, /*->596586*/
/*596529*/      OPC_RecordChild0, // #0 = $src
/*596530*/      OPC_Scope, 26, /*->596558*/ // 2 children in Scope
/*596532*/        OPC_CheckChild1Integer, 4, 
/*596534*/        OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->596546
/*596537*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596539*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZr), 0,
                        MVT::v16f32, 1/*#Ops*/, 0, 
                    // Src: (X86rsqrt28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRSQRT28PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*596546*/        /*SwitchType*/ 9, MVT::v8f64,// ->596557
/*596548*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596550*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZr), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (X86rsqrt28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRSQRT28PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*596557*/        0, // EndSwitchType
/*596558*/      /*Scope*/ 26, /*->596585*/
/*596559*/        OPC_CheckChild1Integer, 8, 
/*596561*/        OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->596573
/*596564*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596566*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZrb), 0,
                        MVT::v16f32, 1/*#Ops*/, 0, 
                    // Src: (X86rsqrt28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRSQRT28PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*596573*/        /*SwitchType*/ 9, MVT::v8f64,// ->596584
/*596575*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596577*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZrb), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (X86rsqrt28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRSQRT28PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*596584*/        0, // EndSwitchType
/*596585*/      0, /*End of Scope*/
/*596586*/    0, /*End of Scope*/
/*596587*/  /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::RCP28),// ->596778
/*596591*/    OPC_Scope, 126, /*->596719*/ // 2 children in Scope
/*596593*/      OPC_MoveChild0,
/*596594*/      OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(X86ISD::VBROADCAST),// ->596662
/*596598*/        OPC_MoveChild0,
/*596599*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*596602*/        OPC_RecordMemRef,
/*596603*/        OPC_RecordNode, // #0 = 'ld' chained node
/*596604*/        OPC_CheckFoldableChainNode,
/*596605*/        OPC_RecordChild1, // #1 = $src
/*596606*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*596608*/        OPC_CheckPredicate, 9, // Predicate_load
/*596610*/        OPC_SwitchType /*2 cases */, 23, MVT::f32,// ->596636
/*596613*/          OPC_MoveParent,
/*596614*/          OPC_MoveParent,
/*596615*/          OPC_CheckChild1Integer, 4, 
/*596617*/          OPC_CheckType, MVT::v16f32,
/*596619*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596621*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596624*/          OPC_EmitMergeInputChains1_0,
/*596625*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp28:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                    // Dst: (VRCP28PSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*596636*/        /*SwitchType*/ 23, MVT::f64,// ->596661
/*596638*/          OPC_MoveParent,
/*596639*/          OPC_MoveParent,
/*596640*/          OPC_CheckChild1Integer, 4, 
/*596642*/          OPC_CheckType, MVT::v8f64,
/*596644*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596646*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596649*/          OPC_EmitMergeInputChains1_0,
/*596650*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp28:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                    // Dst: (VRCP28PDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*596661*/        0, // EndSwitchType
/*596662*/      /*SwitchOpcode*/ 53, TARGET_VAL(ISD::LOAD),// ->596718
/*596665*/        OPC_RecordMemRef,
/*596666*/        OPC_RecordNode, // #0 = 'ld' chained node
/*596667*/        OPC_CheckFoldableChainNode,
/*596668*/        OPC_RecordChild1, // #1 = $src
/*596669*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*596671*/        OPC_CheckPredicate, 9, // Predicate_load
/*596673*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*596675*/        OPC_MoveParent,
/*596676*/        OPC_CheckChild1Integer, 4, 
/*596678*/        OPC_SwitchType /*2 cases */, 17, MVT::v16f32,// ->596698
/*596681*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596683*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596686*/          OPC_EmitMergeInputChains1_0,
/*596687*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp28:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VRCP28PSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*596698*/        /*SwitchType*/ 17, MVT::v8f64,// ->596717
/*596700*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596702*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596705*/          OPC_EmitMergeInputChains1_0,
/*596706*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp28:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VRCP28PDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*596717*/        0, // EndSwitchType
/*596718*/      0, // EndSwitchOpcode
/*596719*/    /*Scope*/ 57, /*->596777*/
/*596720*/      OPC_RecordChild0, // #0 = $src
/*596721*/      OPC_Scope, 26, /*->596749*/ // 2 children in Scope
/*596723*/        OPC_CheckChild1Integer, 4, 
/*596725*/        OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->596737
/*596728*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596730*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZr), 0,
                        MVT::v16f32, 1/*#Ops*/, 0, 
                    // Src: (X86rcp28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRCP28PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*596737*/        /*SwitchType*/ 9, MVT::v8f64,// ->596748
/*596739*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596741*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZr), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (X86rcp28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRCP28PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*596748*/        0, // EndSwitchType
/*596749*/      /*Scope*/ 26, /*->596776*/
/*596750*/        OPC_CheckChild1Integer, 8, 
/*596752*/        OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->596764
/*596755*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596757*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZrb), 0,
                        MVT::v16f32, 1/*#Ops*/, 0, 
                    // Src: (X86rcp28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRCP28PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*596764*/        /*SwitchType*/ 9, MVT::v8f64,// ->596775
/*596766*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596768*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZrb), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (X86rcp28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRCP28PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*596775*/        0, // EndSwitchType
/*596776*/      0, /*End of Scope*/
/*596777*/    0, /*End of Scope*/
/*596778*/  /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::EXP2),// ->596969
/*596782*/    OPC_Scope, 126, /*->596910*/ // 2 children in Scope
/*596784*/      OPC_MoveChild0,
/*596785*/      OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(X86ISD::VBROADCAST),// ->596853
/*596789*/        OPC_MoveChild0,
/*596790*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*596793*/        OPC_RecordMemRef,
/*596794*/        OPC_RecordNode, // #0 = 'ld' chained node
/*596795*/        OPC_CheckFoldableChainNode,
/*596796*/        OPC_RecordChild1, // #1 = $src
/*596797*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*596799*/        OPC_CheckPredicate, 9, // Predicate_load
/*596801*/        OPC_SwitchType /*2 cases */, 23, MVT::f32,// ->596827
/*596804*/          OPC_MoveParent,
/*596805*/          OPC_MoveParent,
/*596806*/          OPC_CheckChild1Integer, 4, 
/*596808*/          OPC_CheckType, MVT::v16f32,
/*596810*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596812*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596815*/          OPC_EmitMergeInputChains1_0,
/*596816*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86exp2:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                    // Dst: (VEXP2PSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*596827*/        /*SwitchType*/ 23, MVT::f64,// ->596852
/*596829*/          OPC_MoveParent,
/*596830*/          OPC_MoveParent,
/*596831*/          OPC_CheckChild1Integer, 4, 
/*596833*/          OPC_CheckType, MVT::v8f64,
/*596835*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596837*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596840*/          OPC_EmitMergeInputChains1_0,
/*596841*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86exp2:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                    // Dst: (VEXP2PDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*596852*/        0, // EndSwitchType
/*596853*/      /*SwitchOpcode*/ 53, TARGET_VAL(ISD::LOAD),// ->596909
/*596856*/        OPC_RecordMemRef,
/*596857*/        OPC_RecordNode, // #0 = 'ld' chained node
/*596858*/        OPC_CheckFoldableChainNode,
/*596859*/        OPC_RecordChild1, // #1 = $src
/*596860*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*596862*/        OPC_CheckPredicate, 9, // Predicate_load
/*596864*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*596866*/        OPC_MoveParent,
/*596867*/        OPC_CheckChild1Integer, 4, 
/*596869*/        OPC_SwitchType /*2 cases */, 17, MVT::v16f32,// ->596889
/*596872*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596874*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596877*/          OPC_EmitMergeInputChains1_0,
/*596878*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86exp2:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VEXP2PSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*596889*/        /*SwitchType*/ 17, MVT::v8f64,// ->596908
/*596891*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596893*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*596896*/          OPC_EmitMergeInputChains1_0,
/*596897*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86exp2:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VEXP2PDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*596908*/        0, // EndSwitchType
/*596909*/      0, // EndSwitchOpcode
/*596910*/    /*Scope*/ 57, /*->596968*/
/*596911*/      OPC_RecordChild0, // #0 = $src
/*596912*/      OPC_Scope, 26, /*->596940*/ // 2 children in Scope
/*596914*/        OPC_CheckChild1Integer, 4, 
/*596916*/        OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->596928
/*596919*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596921*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZr), 0,
                        MVT::v16f32, 1/*#Ops*/, 0, 
                    // Src: (X86exp2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VEXP2PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*596928*/        /*SwitchType*/ 9, MVT::v8f64,// ->596939
/*596930*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596932*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZr), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (X86exp2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VEXP2PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*596939*/        0, // EndSwitchType
/*596940*/      /*Scope*/ 26, /*->596967*/
/*596941*/        OPC_CheckChild1Integer, 8, 
/*596943*/        OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->596955
/*596946*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596948*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZrb), 0,
                        MVT::v16f32, 1/*#Ops*/, 0, 
                    // Src: (X86exp2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VEXP2PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*596955*/        /*SwitchType*/ 9, MVT::v8f64,// ->596966
/*596957*/          OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*596959*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZrb), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (X86exp2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VEXP2PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*596966*/        0, // EndSwitchType
/*596967*/      0, /*End of Scope*/
/*596968*/    0, /*End of Scope*/
/*596969*/  /*SwitchOpcode*/ 6|128,3/*390*/, TARGET_VAL(X86ISD::FGETEXP_RND),// ->597363
/*596973*/    OPC_Scope, 28|128,2/*284*/, /*->597260*/ // 2 children in Scope
/*596976*/      OPC_MoveChild0,
/*596977*/      OPC_SwitchOpcode /*2 cases */, 16|128,1/*144*/, TARGET_VAL(X86ISD::VBROADCAST),// ->597126
/*596982*/        OPC_MoveChild0,
/*596983*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*596986*/        OPC_RecordMemRef,
/*596987*/        OPC_RecordNode, // #0 = 'ld' chained node
/*596988*/        OPC_CheckFoldableChainNode,
/*596989*/        OPC_RecordChild1, // #1 = $src
/*596990*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*596992*/        OPC_CheckPredicate, 9, // Predicate_load
/*596994*/        OPC_SwitchType /*2 cases */, 63, MVT::f32,// ->597060
/*596997*/          OPC_MoveParent,
/*596998*/          OPC_MoveParent,
/*596999*/          OPC_CheckChild1Integer, 4, 
/*597001*/          OPC_SwitchType /*3 cases */, 17, MVT::v16f32,// ->597021
/*597004*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*597006*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597009*/            OPC_EmitMergeInputChains1_0,
/*597010*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86fgetexpRnd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VGETEXPPSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*597021*/          /*SwitchType*/ 17, MVT::v4f32,// ->597040
/*597023*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597025*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597028*/            OPC_EmitMergeInputChains1_0,
/*597029*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86fgetexpRnd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VGETEXPPSZ128mb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*597040*/          /*SwitchType*/ 17, MVT::v8f32,// ->597059
/*597042*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597044*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597047*/            OPC_EmitMergeInputChains1_0,
/*597048*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86fgetexpRnd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VGETEXPPSZ256mb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*597059*/          0, // EndSwitchType
/*597060*/        /*SwitchType*/ 63, MVT::f64,// ->597125
/*597062*/          OPC_MoveParent,
/*597063*/          OPC_MoveParent,
/*597064*/          OPC_CheckChild1Integer, 4, 
/*597066*/          OPC_SwitchType /*3 cases */, 17, MVT::v8f64,// ->597086
/*597069*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*597071*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597074*/            OPC_EmitMergeInputChains1_0,
/*597075*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86fgetexpRnd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VGETEXPPDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*597086*/          /*SwitchType*/ 17, MVT::v2f64,// ->597105
/*597088*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597090*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597093*/            OPC_EmitMergeInputChains1_0,
/*597094*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86fgetexpRnd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VGETEXPPDZ128mb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*597105*/          /*SwitchType*/ 17, MVT::v4f64,// ->597124
/*597107*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597109*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597112*/            OPC_EmitMergeInputChains1_0,
/*597113*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86fgetexpRnd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 4:{ *:[i32] }) - Complexity = 33
                      // Dst: (VGETEXPPDZ256mb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*597124*/          0, // EndSwitchType
/*597125*/        0, // EndSwitchType
/*597126*/      /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::LOAD),// ->597259
/*597130*/        OPC_RecordMemRef,
/*597131*/        OPC_RecordNode, // #0 = 'ld' chained node
/*597132*/        OPC_CheckFoldableChainNode,
/*597133*/        OPC_RecordChild1, // #1 = $src
/*597134*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*597136*/        OPC_CheckPredicate, 9, // Predicate_load
/*597138*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*597140*/        OPC_MoveParent,
/*597141*/        OPC_CheckChild1Integer, 4, 
/*597143*/        OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->597163
/*597146*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*597148*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597151*/          OPC_EmitMergeInputChains1_0,
/*597152*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexpRnd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VGETEXPPSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*597163*/        /*SwitchType*/ 17, MVT::v8f64,// ->597182
/*597165*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*597167*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597170*/          OPC_EmitMergeInputChains1_0,
/*597171*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexpRnd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VGETEXPPDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*597182*/        /*SwitchType*/ 17, MVT::v4f32,// ->597201
/*597184*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597186*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597189*/          OPC_EmitMergeInputChains1_0,
/*597190*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexpRnd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VGETEXPPSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*597201*/        /*SwitchType*/ 17, MVT::v8f32,// ->597220
/*597203*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597205*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597208*/          OPC_EmitMergeInputChains1_0,
/*597209*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexpRnd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VGETEXPPSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*597220*/        /*SwitchType*/ 17, MVT::v2f64,// ->597239
/*597222*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597224*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597227*/          OPC_EmitMergeInputChains1_0,
/*597228*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexpRnd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VGETEXPPDZ128m:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*597239*/        /*SwitchType*/ 17, MVT::v4f64,// ->597258
/*597241*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597243*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597246*/          OPC_EmitMergeInputChains1_0,
/*597247*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexpRnd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VGETEXPPDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*597258*/        0, // EndSwitchType
/*597259*/      0, // EndSwitchOpcode
/*597260*/    /*Scope*/ 101, /*->597362*/
/*597261*/      OPC_RecordChild0, // #0 = $src
/*597262*/      OPC_Scope, 70, /*->597334*/ // 2 children in Scope
/*597264*/        OPC_CheckChild1Integer, 4, 
/*597266*/        OPC_SwitchType /*6 cases */, 9, MVT::v16f32,// ->597278
/*597269*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*597271*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZr), 0,
                        MVT::v16f32, 1/*#Ops*/, 0, 
                    // Src: (X86fgetexpRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VGETEXPPSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*597278*/        /*SwitchType*/ 9, MVT::v8f64,// ->597289
/*597280*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*597282*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZr), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (X86fgetexpRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VGETEXPPDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*597289*/        /*SwitchType*/ 9, MVT::v4f32,// ->597300
/*597291*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597293*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128r), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (X86fgetexpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VGETEXPPSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src)
/*597300*/        /*SwitchType*/ 9, MVT::v8f32,// ->597311
/*597302*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597304*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256r), 0,
                        MVT::v8f32, 1/*#Ops*/, 0, 
                    // Src: (X86fgetexpRnd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VGETEXPPSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src)
/*597311*/        /*SwitchType*/ 9, MVT::v2f64,// ->597322
/*597313*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597315*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128r), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86fgetexpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VGETEXPPDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src)
/*597322*/        /*SwitchType*/ 9, MVT::v4f64,// ->597333
/*597324*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597326*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256r), 0,
                        MVT::v4f64, 1/*#Ops*/, 0, 
                    // Src: (X86fgetexpRnd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VGETEXPPDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src)
/*597333*/        0, // EndSwitchType
/*597334*/      /*Scope*/ 26, /*->597361*/
/*597335*/        OPC_CheckChild1Integer, 8, 
/*597337*/        OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->597349
/*597340*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*597342*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZrb), 0,
                        MVT::v16f32, 1/*#Ops*/, 0, 
                    // Src: (X86fgetexpRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VGETEXPPSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*597349*/        /*SwitchType*/ 9, MVT::v8f64,// ->597360
/*597351*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*597353*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZrb), 0,
                        MVT::v8f64, 1/*#Ops*/, 0, 
                    // Src: (X86fgetexpRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, 8:{ *:[i32] }) - Complexity = 8
                    // Dst: (VGETEXPPDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*597360*/        0, // EndSwitchType
/*597361*/      0, /*End of Scope*/
/*597362*/    0, /*End of Scope*/
/*597363*/  /*SwitchOpcode*/ 22|128,3/*406*/, TARGET_VAL(X86ISD::VPERMIL2),// ->597773
/*597367*/    OPC_RecordChild0, // #0 = $src1
/*597368*/    OPC_Scope, 7|128,1/*135*/, /*->597506*/ // 5 children in Scope
/*597371*/      OPC_RecordChild1, // #1 = $src2
/*597372*/      OPC_MoveChild2,
/*597373*/      OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::BITCAST),// ->597461
/*597377*/        OPC_MoveChild0,
/*597378*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*597381*/        OPC_RecordMemRef,
/*597382*/        OPC_RecordNode, // #2 = 'ld' chained node
/*597383*/        OPC_CheckFoldableChainNode,
/*597384*/        OPC_RecordChild1, // #3 = $src3
/*597385*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*597387*/        OPC_CheckPredicate, 9, // Predicate_load
/*597389*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*597391*/        OPC_SwitchType /*2 cases */, 32, MVT::v2i64,// ->597426
/*597394*/          OPC_MoveParent,
/*597395*/          OPC_MoveParent,
/*597396*/          OPC_RecordChild3, // #4 = $src4
/*597397*/          OPC_MoveChild3,
/*597398*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*597401*/          OPC_MoveParent,
/*597402*/          OPC_CheckType, MVT::v4f32,
/*597404*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597406*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*597409*/          OPC_EmitMergeInputChains1_2,
/*597410*/          OPC_EmitConvertToTarget, 4,
/*597412*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86vpermil2:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4) - Complexity = 31
                    // Dst: (VPERMIL2PSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*597426*/        /*SwitchType*/ 32, MVT::v4i64,// ->597460
/*597428*/          OPC_MoveParent,
/*597429*/          OPC_MoveParent,
/*597430*/          OPC_RecordChild3, // #4 = $src4
/*597431*/          OPC_MoveChild3,
/*597432*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*597435*/          OPC_MoveParent,
/*597436*/          OPC_CheckType, MVT::v8f32,
/*597438*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597440*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*597443*/          OPC_EmitMergeInputChains1_2,
/*597444*/          OPC_EmitConvertToTarget, 4,
/*597446*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                    // Src: (X86vpermil2:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src4) - Complexity = 31
                    // Dst: (VPERMIL2PSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*597460*/        0, // EndSwitchType
/*597461*/      /*SwitchOpcode*/ 41, TARGET_VAL(ISD::LOAD),// ->597505
/*597464*/        OPC_RecordMemRef,
/*597465*/        OPC_RecordNode, // #2 = 'ld' chained node
/*597466*/        OPC_CheckFoldableChainNode,
/*597467*/        OPC_RecordChild1, // #3 = $src3
/*597468*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*597470*/        OPC_CheckPredicate, 9, // Predicate_load
/*597472*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*597474*/        OPC_MoveParent,
/*597475*/        OPC_RecordChild3, // #4 = $src4
/*597476*/        OPC_MoveChild3,
/*597477*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*597480*/        OPC_MoveParent,
/*597481*/        OPC_CheckType, MVT::v2f64,
/*597483*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597485*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*597488*/        OPC_EmitMergeInputChains1_2,
/*597489*/        OPC_EmitConvertToTarget, 4,
/*597491*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpermil2:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPERMIL2PDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*597505*/      0, // EndSwitchOpcode
/*597506*/    /*Scope*/ 46, /*->597553*/
/*597507*/      OPC_MoveChild1,
/*597508*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*597511*/      OPC_RecordMemRef,
/*597512*/      OPC_RecordNode, // #1 = 'ld' chained node
/*597513*/      OPC_CheckFoldableChainNode,
/*597514*/      OPC_RecordChild1, // #2 = $src2
/*597515*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*597517*/      OPC_CheckPredicate, 9, // Predicate_load
/*597519*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*597521*/      OPC_MoveParent,
/*597522*/      OPC_RecordChild2, // #3 = $src3
/*597523*/      OPC_RecordChild3, // #4 = $src4
/*597524*/      OPC_MoveChild3,
/*597525*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*597528*/      OPC_MoveParent,
/*597529*/      OPC_CheckType, MVT::v2f64,
/*597531*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597533*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*597536*/      OPC_EmitMergeInputChains1_1,
/*597537*/      OPC_EmitConvertToTarget, 4,
/*597539*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 8/*#Ops*/, 0, 5, 6, 7, 8, 9, 3, 10, 
                // Src: (X86vpermil2:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2i64] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPERMIL2PDmr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*597553*/    /*Scope*/ 46, /*->597600*/
/*597554*/      OPC_RecordChild1, // #1 = $src2
/*597555*/      OPC_MoveChild2,
/*597556*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*597559*/      OPC_RecordMemRef,
/*597560*/      OPC_RecordNode, // #2 = 'ld' chained node
/*597561*/      OPC_CheckFoldableChainNode,
/*597562*/      OPC_RecordChild1, // #3 = $src3
/*597563*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*597565*/      OPC_CheckPredicate, 9, // Predicate_load
/*597567*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*597569*/      OPC_MoveParent,
/*597570*/      OPC_RecordChild3, // #4 = $src4
/*597571*/      OPC_MoveChild3,
/*597572*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*597575*/      OPC_MoveParent,
/*597576*/      OPC_CheckType, MVT::v4f64,
/*597578*/      OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597580*/      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*597583*/      OPC_EmitMergeInputChains1_2,
/*597584*/      OPC_EmitConvertToTarget, 4,
/*597586*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpermil2:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPERMIL2PDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (imm:{ *:[i8] }):$src4)
/*597600*/    /*Scope*/ 96, /*->597697*/
/*597601*/      OPC_MoveChild1,
/*597602*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*597605*/      OPC_RecordMemRef,
/*597606*/      OPC_RecordNode, // #1 = 'ld' chained node
/*597607*/      OPC_CheckFoldableChainNode,
/*597608*/      OPC_RecordChild1, // #2 = $src2
/*597609*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*597611*/      OPC_CheckPredicate, 9, // Predicate_load
/*597613*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*597615*/      OPC_MoveParent,
/*597616*/      OPC_RecordChild2, // #3 = $src3
/*597617*/      OPC_RecordChild3, // #4 = $src4
/*597618*/      OPC_MoveChild3,
/*597619*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*597622*/      OPC_MoveParent,
/*597623*/      OPC_SwitchType /*3 cases */, 22, MVT::v4f64,// ->597648
/*597626*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597628*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*597631*/        OPC_EmitMergeInputChains1_1,
/*597632*/        OPC_EmitConvertToTarget, 4,
/*597634*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 8/*#Ops*/, 0, 5, 6, 7, 8, 9, 3, 10, 
                  // Src: (X86vpermil2:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4i64] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPERMIL2PDYmr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*597648*/      /*SwitchType*/ 22, MVT::v4f32,// ->597672
/*597650*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597652*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*597655*/        OPC_EmitMergeInputChains1_1,
/*597656*/        OPC_EmitConvertToTarget, 4,
/*597658*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 8/*#Ops*/, 0, 5, 6, 7, 8, 9, 3, 10, 
                  // Src: (X86vpermil2:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4i32] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPERMIL2PSmr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*597672*/      /*SwitchType*/ 22, MVT::v8f32,// ->597696
/*597674*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597676*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*597679*/        OPC_EmitMergeInputChains1_1,
/*597680*/        OPC_EmitConvertToTarget, 4,
/*597682*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 8/*#Ops*/, 0, 5, 6, 7, 8, 9, 3, 10, 
                  // Src: (X86vpermil2:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8i32] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPERMIL2PSYmr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*597696*/      0, // EndSwitchType
/*597697*/    /*Scope*/ 74, /*->597772*/
/*597698*/      OPC_RecordChild1, // #1 = $src2
/*597699*/      OPC_RecordChild2, // #2 = $src3
/*597700*/      OPC_RecordChild3, // #3 = $src4
/*597701*/      OPC_MoveChild3,
/*597702*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*597705*/      OPC_MoveParent,
/*597706*/      OPC_SwitchType /*4 cases */, 14, MVT::v2f64,// ->597723
/*597709*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597711*/        OPC_EmitConvertToTarget, 3,
/*597713*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDrr), 0,
                      MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 4, 
                  // Src: (X86vpermil2:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2i64] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 6
                  // Dst: (VPERMIL2PDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*597723*/      /*SwitchType*/ 14, MVT::v4f64,// ->597739
/*597725*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597727*/        OPC_EmitConvertToTarget, 3,
/*597729*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDYrr), 0,
                      MVT::v4f64, 4/*#Ops*/, 0, 1, 2, 4, 
                  // Src: (X86vpermil2:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4i64] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 6
                  // Dst: (VPERMIL2PDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4i64] }:$src3, (imm:{ *:[i8] }):$src4)
/*597739*/      /*SwitchType*/ 14, MVT::v4f32,// ->597755
/*597741*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597743*/        OPC_EmitConvertToTarget, 3,
/*597745*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSrr), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 4, 
                  // Src: (X86vpermil2:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4i32] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 6
                  // Dst: (VPERMIL2PSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*597755*/      /*SwitchType*/ 14, MVT::v8f32,// ->597771
/*597757*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasXOP())
/*597759*/        OPC_EmitConvertToTarget, 3,
/*597761*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSYrr), 0,
                      MVT::v8f32, 4/*#Ops*/, 0, 1, 2, 4, 
                  // Src: (X86vpermil2:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8i32] }:$src3, (imm:{ *:[i8] }):$src4) - Complexity = 6
                  // Dst: (VPERMIL2PSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8i32] }:$src3, (imm:{ *:[i8] }):$src4)
/*597771*/      0, // EndSwitchType
/*597772*/    0, /*End of Scope*/
/*597773*/  /*SwitchOpcode*/ 16|128,3/*400*/, TARGET_VAL(X86ISD::CVTSI2P),// ->598177
/*597777*/    OPC_Scope, 87|128,2/*343*/, /*->598123*/ // 2 children in Scope
/*597780*/      OPC_MoveChild0,
/*597781*/      OPC_SwitchOpcode /*3 cases */, 105|128,1/*233*/, TARGET_VAL(ISD::BITCAST),// ->598019
/*597786*/        OPC_MoveChild0,
/*597787*/        OPC_SwitchOpcode /*3 cases */, 79, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->597870
/*597791*/          OPC_MoveChild0,
/*597792*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*597795*/          OPC_RecordMemRef,
/*597796*/          OPC_RecordNode, // #0 = 'ld' chained node
/*597797*/          OPC_CheckFoldableChainNode,
/*597798*/          OPC_RecordChild1, // #1 = $src
/*597799*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*597801*/          OPC_CheckPredicate, 9, // Predicate_load
/*597803*/          OPC_CheckType, MVT::i64,
/*597805*/          OPC_MoveParent,
/*597806*/          OPC_CheckType, MVT::v2i64,
/*597808*/          OPC_MoveParent,
/*597809*/          OPC_CheckType, MVT::v4i32,
/*597811*/          OPC_MoveParent,
/*597812*/          OPC_CheckType, MVT::v2f64,
/*597814*/          OPC_Scope, 17, /*->597833*/ // 3 children in Scope
/*597816*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*597818*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597821*/            OPC_EmitMergeInputChains1_0,
/*597822*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VCVTDQ2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*597833*/          /*Scope*/ 17, /*->597851*/
/*597834*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*597836*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597839*/            OPC_EmitMergeInputChains1_0,
/*597840*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (CVTDQ2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*597851*/          /*Scope*/ 17, /*->597869*/
/*597852*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*597854*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597857*/            OPC_EmitMergeInputChains1_0,
/*597858*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                      // Dst: (VCVTDQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*597869*/          0, /*End of Scope*/
/*597870*/        /*SwitchOpcode*/ 74, TARGET_VAL(ISD::LOAD),// ->597947
/*597873*/          OPC_RecordMemRef,
/*597874*/          OPC_RecordNode, // #0 = 'ld' chained node
/*597875*/          OPC_CheckFoldableChainNode,
/*597876*/          OPC_RecordChild1, // #1 = $src
/*597877*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*597879*/          OPC_CheckPredicate, 9, // Predicate_load
/*597881*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*597883*/          OPC_CheckType, MVT::v2i64,
/*597885*/          OPC_MoveParent,
/*597886*/          OPC_CheckType, MVT::v4i32,
/*597888*/          OPC_MoveParent,
/*597889*/          OPC_CheckType, MVT::v2f64,
/*597891*/          OPC_Scope, 17, /*->597910*/ // 3 children in Scope
/*597893*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*597895*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597898*/            OPC_EmitMergeInputChains1_0,
/*597899*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VCVTDQ2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*597910*/          /*Scope*/ 17, /*->597928*/
/*597911*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*597913*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597916*/            OPC_EmitMergeInputChains1_0,
/*597917*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (CVTDQ2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*597928*/          /*Scope*/ 17, /*->597946*/
/*597929*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*597931*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597934*/            OPC_EmitMergeInputChains1_0,
/*597935*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VCVTDQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*597946*/          0, /*End of Scope*/
/*597947*/        /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->598018
/*597950*/          OPC_RecordMemRef,
/*597951*/          OPC_RecordNode, // #0 = 'X86vzload' chained node
/*597952*/          OPC_CheckFoldableChainNode,
/*597953*/          OPC_RecordChild1, // #1 = $src
/*597954*/          OPC_CheckType, MVT::v2i64,
/*597956*/          OPC_MoveParent,
/*597957*/          OPC_CheckType, MVT::v4i32,
/*597959*/          OPC_MoveParent,
/*597960*/          OPC_CheckType, MVT::v2f64,
/*597962*/          OPC_Scope, 17, /*->597981*/ // 3 children in Scope
/*597964*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*597966*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597969*/            OPC_EmitMergeInputChains1_0,
/*597970*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VCVTDQ2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*597981*/          /*Scope*/ 17, /*->597999*/
/*597982*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*597984*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*597987*/            OPC_EmitMergeInputChains1_0,
/*597988*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (CVTDQ2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*597999*/          /*Scope*/ 17, /*->598017*/
/*598000*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598002*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*598005*/            OPC_EmitMergeInputChains1_0,
/*598006*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                      // Dst: (VCVTDQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*598017*/          0, /*End of Scope*/
/*598018*/        0, // EndSwitchOpcode
/*598019*/      /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST),// ->598088
/*598022*/        OPC_MoveChild0,
/*598023*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*598026*/        OPC_RecordMemRef,
/*598027*/        OPC_RecordNode, // #0 = 'ld' chained node
/*598028*/        OPC_CheckFoldableChainNode,
/*598029*/        OPC_RecordChild1, // #1 = $src
/*598030*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*598032*/        OPC_SwitchType /*2 cases */, 25, MVT::i32,// ->598060
/*598035*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*598037*/          OPC_MoveParent,
/*598038*/          OPC_CheckType, MVT::v4i32,
/*598040*/          OPC_MoveParent,
/*598041*/          OPC_CheckType, MVT::v2f64,
/*598043*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*598045*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*598048*/          OPC_EmitMergeInputChains1_0,
/*598049*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VSintToFP:{ *:[v2f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VCVTDQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*598060*/        /*SwitchType*/ 25, MVT::i64,// ->598087
/*598062*/          OPC_CheckPredicate, 9, // Predicate_load
/*598064*/          OPC_MoveParent,
/*598065*/          OPC_CheckType, MVT::v2i64,
/*598067*/          OPC_MoveParent,
/*598068*/          OPC_CheckType, MVT::v4f32,
/*598070*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*598072*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*598075*/          OPC_EmitMergeInputChains1_0,
/*598076*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VSintToFP:{ *:[v4f32] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VCVTQQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*598087*/        0, // EndSwitchType
/*598088*/      /*SwitchOpcode*/ 31, TARGET_VAL(ISD::LOAD),// ->598122
/*598091*/        OPC_RecordMemRef,
/*598092*/        OPC_RecordNode, // #0 = 'ld' chained node
/*598093*/        OPC_RecordChild1, // #1 = $src
/*598094*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*598096*/        OPC_CheckPredicate, 9, // Predicate_load
/*598098*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*598100*/        OPC_CheckType, MVT::v2i64,
/*598102*/        OPC_MoveParent,
/*598103*/        OPC_CheckType, MVT::v4f32,
/*598105*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*598107*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*598110*/        OPC_EmitMergeInputChains1_0,
/*598111*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VSintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VCVTQQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*598122*/      0, // EndSwitchOpcode
/*598123*/    /*Scope*/ 52, /*->598176*/
/*598124*/      OPC_RecordChild0, // #0 = $src
/*598125*/      OPC_SwitchType /*2 cases */, 34, MVT::v2f64,// ->598162
/*598128*/        OPC_CheckChild0Type, MVT::v4i32,
/*598130*/        OPC_Scope, 9, /*->598141*/ // 3 children in Scope
/*598132*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*598134*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDrr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86VSintToFP:{ *:[v2f64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VCVTDQ2PDrr:{ *:[v2f64] } VR128:{ *:[v4i32] }:$src)
/*598141*/        /*Scope*/ 9, /*->598151*/
/*598142*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*598144*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTDQ2PDrr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86VSintToFP:{ *:[v2f64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (CVTDQ2PDrr:{ *:[v2f64] } VR128:{ *:[v4i32] }:$src)
/*598151*/        /*Scope*/ 9, /*->598161*/
/*598152*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*598154*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86VSintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VCVTDQ2PDZ128rr:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src)
/*598161*/        0, /*End of Scope*/
/*598162*/      /*SwitchType*/ 11, MVT::v4f32,// ->598175
/*598164*/        OPC_CheckChild0Type, MVT::v2i64,
/*598166*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*598168*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rr), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86VSintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VCVTQQ2PSZ128rr:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src)
/*598175*/      0, // EndSwitchType
/*598176*/    0, /*End of Scope*/
/*598177*/  /*SwitchOpcode*/ 106|128,1/*234*/, TARGET_VAL(X86ISD::INSERTPS),// ->598415
/*598181*/    OPC_RecordChild0, // #0 = $src1
/*598182*/    OPC_Scope, 49|128,1/*177*/, /*->598362*/ // 2 children in Scope
/*598185*/      OPC_MoveChild1,
/*598186*/      OPC_SwitchOpcode /*2 cases */, 90, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->598280
/*598190*/        OPC_MoveChild0,
/*598191*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*598194*/        OPC_RecordMemRef,
/*598195*/        OPC_RecordNode, // #1 = 'ld' chained node
/*598196*/        OPC_CheckFoldableChainNode,
/*598197*/        OPC_RecordChild1, // #2 = $src2
/*598198*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*598200*/        OPC_CheckPredicate, 9, // Predicate_load
/*598202*/        OPC_CheckType, MVT::f32,
/*598204*/        OPC_MoveParent,
/*598205*/        OPC_MoveParent,
/*598206*/        OPC_RecordChild2, // #3 = $src3
/*598207*/        OPC_MoveChild2,
/*598208*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*598211*/        OPC_MoveParent,
/*598212*/        OPC_Scope, 21, /*->598235*/ // 3 children in Scope
/*598214*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*598216*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*598219*/          OPC_EmitMergeInputChains1_1,
/*598220*/          OPC_EmitConvertToTarget, 3,
/*598222*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86insertps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VINSERTPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*598235*/        /*Scope*/ 21, /*->598257*/
/*598236*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*598238*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*598241*/          OPC_EmitMergeInputChains1_1,
/*598242*/          OPC_EmitConvertToTarget, 3,
/*598244*/          OPC_MorphNodeTo1, TARGET_VAL(X86::INSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86insertps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (INSERTPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*598257*/        /*Scope*/ 21, /*->598279*/
/*598258*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*598260*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*598263*/          OPC_EmitMergeInputChains1_1,
/*598264*/          OPC_EmitConvertToTarget, 3,
/*598266*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86insertps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VINSERTPSZrm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*598279*/        0, /*End of Scope*/
/*598280*/      /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST),// ->598361
/*598283*/        OPC_MoveChild0,
/*598284*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*598287*/        OPC_RecordMemRef,
/*598288*/        OPC_RecordNode, // #1 = 'ld' chained node
/*598289*/        OPC_CheckFoldableChainNode,
/*598290*/        OPC_RecordChild1, // #2 = $src2
/*598291*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*598293*/        OPC_CheckPredicate, 9, // Predicate_load
/*598295*/        OPC_SwitchType /*2 cases */, 29, MVT::f32,// ->598327
/*598298*/          OPC_MoveParent,
/*598299*/          OPC_MoveParent,
/*598300*/          OPC_RecordChild2, // #3 = $src3
/*598301*/          OPC_MoveChild2,
/*598302*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*598305*/          OPC_MoveParent,
/*598306*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*598308*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*598311*/          OPC_EmitMergeInputChains1_1,
/*598312*/          OPC_EmitConvertToTarget, 3,
/*598314*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86insertps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VINSERTPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*598327*/        /*SwitchType*/ 31, MVT::v4f32,// ->598360
/*598329*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*598331*/          OPC_MoveParent,
/*598332*/          OPC_MoveParent,
/*598333*/          OPC_RecordChild2, // #3 = $src3
/*598334*/          OPC_MoveChild2,
/*598335*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*598338*/          OPC_MoveParent,
/*598339*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*598341*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*598344*/          OPC_EmitMergeInputChains1_1,
/*598345*/          OPC_EmitConvertToTarget, 3,
/*598347*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86insertps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VINSERTPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*598360*/        0, // EndSwitchType
/*598361*/      0, // EndSwitchOpcode
/*598362*/    /*Scope*/ 51, /*->598414*/
/*598363*/      OPC_RecordChild1, // #1 = $src2
/*598364*/      OPC_RecordChild2, // #2 = $src3
/*598365*/      OPC_MoveChild2,
/*598366*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*598369*/      OPC_MoveParent,
/*598370*/      OPC_Scope, 13, /*->598385*/ // 3 children in Scope
/*598372*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*598374*/        OPC_EmitConvertToTarget, 2,
/*598376*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTPSrr), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86insertps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VINSERTPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*598385*/      /*Scope*/ 13, /*->598399*/
/*598386*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*598388*/        OPC_EmitConvertToTarget, 2,
/*598390*/        OPC_MorphNodeTo1, TARGET_VAL(X86::INSERTPSrr), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86insertps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (INSERTPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*598399*/      /*Scope*/ 13, /*->598413*/
/*598400*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*598402*/        OPC_EmitConvertToTarget, 2,
/*598404*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTPSZrr), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86insertps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VINSERTPSZrr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*598413*/      0, /*End of Scope*/
/*598414*/    0, /*End of Scope*/
/*598415*/  /*SwitchOpcode*/ 85|128,4/*597*/, TARGET_VAL(X86ISD::VPERMILPI),// ->599016
/*598419*/    OPC_Scope, 50|128,3/*434*/, /*->598856*/ // 2 children in Scope
/*598422*/      OPC_MoveChild0,
/*598423*/      OPC_SwitchOpcode /*2 cases */, 42|128,1/*170*/, TARGET_VAL(X86ISD::VBROADCAST),// ->598598
/*598428*/        OPC_MoveChild0,
/*598429*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*598432*/        OPC_RecordMemRef,
/*598433*/        OPC_RecordNode, // #0 = 'ld' chained node
/*598434*/        OPC_CheckFoldableChainNode,
/*598435*/        OPC_RecordChild1, // #1 = $src1
/*598436*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*598438*/        OPC_CheckPredicate, 9, // Predicate_load
/*598440*/        OPC_SwitchType /*2 cases */, 76, MVT::f32,// ->598519
/*598443*/          OPC_MoveParent,
/*598444*/          OPC_MoveParent,
/*598445*/          OPC_RecordChild1, // #2 = $src2
/*598446*/          OPC_MoveChild1,
/*598447*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*598450*/          OPC_MoveParent,
/*598451*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->598474
/*598454*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*598456*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598459*/            OPC_EmitMergeInputChains1_0,
/*598460*/            OPC_EmitConvertToTarget, 2,
/*598462*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPERMILPSZmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598474*/          /*SwitchType*/ 20, MVT::v8f32,// ->598496
/*598476*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598478*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598481*/            OPC_EmitMergeInputChains1_0,
/*598482*/            OPC_EmitConvertToTarget, 2,
/*598484*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPERMILPSZ256mbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598496*/          /*SwitchType*/ 20, MVT::v4f32,// ->598518
/*598498*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598500*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598503*/            OPC_EmitMergeInputChains1_0,
/*598504*/            OPC_EmitConvertToTarget, 2,
/*598506*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPERMILPSZ128mbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598518*/          0, // EndSwitchType
/*598519*/        /*SwitchType*/ 76, MVT::f64,// ->598597
/*598521*/          OPC_MoveParent,
/*598522*/          OPC_MoveParent,
/*598523*/          OPC_RecordChild1, // #2 = $src2
/*598524*/          OPC_MoveChild1,
/*598525*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*598528*/          OPC_MoveParent,
/*598529*/          OPC_SwitchType /*3 cases */, 20, MVT::v8f64,// ->598552
/*598532*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*598534*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598537*/            OPC_EmitMergeInputChains1_0,
/*598538*/            OPC_EmitConvertToTarget, 2,
/*598540*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPERMILPDZmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598552*/          /*SwitchType*/ 20, MVT::v4f64,// ->598574
/*598554*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598556*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598559*/            OPC_EmitMergeInputChains1_0,
/*598560*/            OPC_EmitConvertToTarget, 2,
/*598562*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPERMILPDZ256mbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598574*/          /*SwitchType*/ 20, MVT::v2f64,// ->598596
/*598576*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598578*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598581*/            OPC_EmitMergeInputChains1_0,
/*598582*/            OPC_EmitConvertToTarget, 2,
/*598584*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src2) - Complexity = 31
                      // Dst: (VPERMILPDZ128mbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598596*/          0, // EndSwitchType
/*598597*/        0, // EndSwitchType
/*598598*/      /*SwitchOpcode*/ 125|128,1/*253*/, TARGET_VAL(ISD::LOAD),// ->598855
/*598602*/        OPC_RecordMemRef,
/*598603*/        OPC_RecordNode, // #0 = 'ld' chained node
/*598604*/        OPC_CheckFoldableChainNode,
/*598605*/        OPC_RecordChild1, // #1 = $src1
/*598606*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*598608*/        OPC_CheckPredicate, 9, // Predicate_load
/*598610*/        OPC_Scope, 97, /*->598709*/ // 2 children in Scope
/*598612*/          OPC_MoveParent,
/*598613*/          OPC_RecordChild1, // #2 = $src2
/*598614*/          OPC_MoveChild1,
/*598615*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*598618*/          OPC_MoveParent,
/*598619*/          OPC_SwitchType /*4 cases */, 20, MVT::v4f32,// ->598642
/*598622*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*598624*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598627*/            OPC_EmitMergeInputChains1_0,
/*598628*/            OPC_EmitConvertToTarget, 2,
/*598630*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598642*/          /*SwitchType*/ 20, MVT::v8f32,// ->598664
/*598644*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*598646*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598649*/            OPC_EmitMergeInputChains1_0,
/*598650*/            OPC_EmitConvertToTarget, 2,
/*598652*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSYmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSYmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598664*/          /*SwitchType*/ 20, MVT::v2f64,// ->598686
/*598666*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*598668*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598671*/            OPC_EmitMergeInputChains1_0,
/*598672*/            OPC_EmitConvertToTarget, 2,
/*598674*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598686*/          /*SwitchType*/ 20, MVT::v4f64,// ->598708
/*598688*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*598690*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598693*/            OPC_EmitMergeInputChains1_0,
/*598694*/            OPC_EmitConvertToTarget, 2,
/*598696*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDYmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDYmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598708*/          0, // EndSwitchType
/*598709*/        /*Scope*/ 15|128,1/*143*/, /*->598854*/
/*598711*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*598713*/          OPC_MoveParent,
/*598714*/          OPC_RecordChild1, // #2 = $src2
/*598715*/          OPC_MoveChild1,
/*598716*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*598719*/          OPC_MoveParent,
/*598720*/          OPC_SwitchType /*6 cases */, 20, MVT::v16f32,// ->598743
/*598723*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*598725*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598728*/            OPC_EmitMergeInputChains1_0,
/*598729*/            OPC_EmitConvertToTarget, 2,
/*598731*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSZmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598743*/          /*SwitchType*/ 20, MVT::v8f32,// ->598765
/*598745*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598747*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598750*/            OPC_EmitMergeInputChains1_0,
/*598751*/            OPC_EmitConvertToTarget, 2,
/*598753*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSZ256mi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598765*/          /*SwitchType*/ 20, MVT::v4f32,// ->598787
/*598767*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598769*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598772*/            OPC_EmitMergeInputChains1_0,
/*598773*/            OPC_EmitConvertToTarget, 2,
/*598775*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSZ128mi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598787*/          /*SwitchType*/ 20, MVT::v8f64,// ->598809
/*598789*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*598791*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598794*/            OPC_EmitMergeInputChains1_0,
/*598795*/            OPC_EmitConvertToTarget, 2,
/*598797*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDZmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598809*/          /*SwitchType*/ 20, MVT::v4f64,// ->598831
/*598811*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598813*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598816*/            OPC_EmitMergeInputChains1_0,
/*598817*/            OPC_EmitConvertToTarget, 2,
/*598819*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDZ256mi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598831*/          /*SwitchType*/ 20, MVT::v2f64,// ->598853
/*598833*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598835*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*598838*/            OPC_EmitMergeInputChains1_0,
/*598839*/            OPC_EmitConvertToTarget, 2,
/*598841*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VPermilpi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDZ128mi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i8] }):$src2)
/*598853*/          0, // EndSwitchType
/*598854*/        0, /*End of Scope*/
/*598855*/      0, // EndSwitchOpcode
/*598856*/    /*Scope*/ 29|128,1/*157*/, /*->599015*/
/*598858*/      OPC_RecordChild0, // #0 = $src1
/*598859*/      OPC_RecordChild1, // #1 = $src2
/*598860*/      OPC_MoveChild1,
/*598861*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*598864*/      OPC_MoveParent,
/*598865*/      OPC_SwitchType /*6 cases */, 28, MVT::v4f32,// ->598896
/*598868*/        OPC_Scope, 12, /*->598882*/ // 2 children in Scope
/*598870*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*598872*/          OPC_EmitConvertToTarget, 1,
/*598874*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSri), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermilpi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPSri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*598882*/        /*Scope*/ 12, /*->598895*/
/*598883*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598885*/          OPC_EmitConvertToTarget, 1,
/*598887*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128ri), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermilpi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPSZ128ri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*598895*/        0, /*End of Scope*/
/*598896*/      /*SwitchType*/ 28, MVT::v8f32,// ->598926
/*598898*/        OPC_Scope, 12, /*->598912*/ // 2 children in Scope
/*598900*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*598902*/          OPC_EmitConvertToTarget, 1,
/*598904*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSYri), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermilpi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPSYri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*598912*/        /*Scope*/ 12, /*->598925*/
/*598913*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598915*/          OPC_EmitConvertToTarget, 1,
/*598917*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256ri), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermilpi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPSZ256ri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*598925*/        0, /*End of Scope*/
/*598926*/      /*SwitchType*/ 28, MVT::v2f64,// ->598956
/*598928*/        OPC_Scope, 12, /*->598942*/ // 2 children in Scope
/*598930*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*598932*/          OPC_EmitConvertToTarget, 1,
/*598934*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDri), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermilpi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPDri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*598942*/        /*Scope*/ 12, /*->598955*/
/*598943*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598945*/          OPC_EmitConvertToTarget, 1,
/*598947*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128ri), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermilpi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPDZ128ri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*598955*/        0, /*End of Scope*/
/*598956*/      /*SwitchType*/ 28, MVT::v4f64,// ->598986
/*598958*/        OPC_Scope, 12, /*->598972*/ // 2 children in Scope
/*598960*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*598962*/          OPC_EmitConvertToTarget, 1,
/*598964*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDYri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermilpi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPDYri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*598972*/        /*Scope*/ 12, /*->598985*/
/*598973*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*598975*/          OPC_EmitConvertToTarget, 1,
/*598977*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256ri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VPermilpi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPDZ256ri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*598985*/        0, /*End of Scope*/
/*598986*/      /*SwitchType*/ 12, MVT::v16f32,// ->599000
/*598988*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*598990*/        OPC_EmitConvertToTarget, 1,
/*598992*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VPermilpi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPERMILPSZri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i8] }):$src2)
/*599000*/      /*SwitchType*/ 12, MVT::v8f64,// ->599014
/*599002*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*599004*/        OPC_EmitConvertToTarget, 1,
/*599006*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VPermilpi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPERMILPDZri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i8] }):$src2)
/*599014*/      0, // EndSwitchType
/*599015*/    0, /*End of Scope*/
/*599016*/  /*SwitchOpcode*/ 45|128,2/*301*/, TARGET_VAL(X86ISD::CVTUI2P),// ->599321
/*599020*/    OPC_Scope, 97|128,1/*225*/, /*->599248*/ // 2 children in Scope
/*599023*/      OPC_MoveChild0,
/*599024*/      OPC_SwitchOpcode /*3 cases */, 116, TARGET_VAL(ISD::BITCAST),// ->599144
/*599028*/        OPC_MoveChild0,
/*599029*/        OPC_SwitchOpcode /*3 cases */, 40, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->599073
/*599033*/          OPC_MoveChild0,
/*599034*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*599037*/          OPC_RecordMemRef,
/*599038*/          OPC_RecordNode, // #0 = 'ld' chained node
/*599039*/          OPC_CheckFoldableChainNode,
/*599040*/          OPC_RecordChild1, // #1 = $src
/*599041*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*599043*/          OPC_CheckPredicate, 9, // Predicate_load
/*599045*/          OPC_CheckType, MVT::i64,
/*599047*/          OPC_MoveParent,
/*599048*/          OPC_CheckType, MVT::v2i64,
/*599050*/          OPC_MoveParent,
/*599051*/          OPC_CheckType, MVT::v4i32,
/*599053*/          OPC_MoveParent,
/*599054*/          OPC_CheckType, MVT::v2f64,
/*599056*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*599058*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*599061*/          OPC_EmitMergeInputChains1_0,
/*599062*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VUintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VCVTUDQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*599073*/        /*SwitchOpcode*/ 35, TARGET_VAL(ISD::LOAD),// ->599111
/*599076*/          OPC_RecordMemRef,
/*599077*/          OPC_RecordNode, // #0 = 'ld' chained node
/*599078*/          OPC_CheckFoldableChainNode,
/*599079*/          OPC_RecordChild1, // #1 = $src
/*599080*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*599082*/          OPC_CheckPredicate, 9, // Predicate_load
/*599084*/          OPC_CheckPredicate, 40, // Predicate_vecload
/*599086*/          OPC_CheckType, MVT::v2i64,
/*599088*/          OPC_MoveParent,
/*599089*/          OPC_CheckType, MVT::v4i32,
/*599091*/          OPC_MoveParent,
/*599092*/          OPC_CheckType, MVT::v2f64,
/*599094*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*599096*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*599099*/          OPC_EmitMergeInputChains1_0,
/*599100*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VUintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VCVTUDQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*599111*/        /*SwitchOpcode*/ 29, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->599143
/*599114*/          OPC_RecordMemRef,
/*599115*/          OPC_RecordNode, // #0 = 'X86vzload' chained node
/*599116*/          OPC_CheckFoldableChainNode,
/*599117*/          OPC_RecordChild1, // #1 = $src
/*599118*/          OPC_CheckType, MVT::v2i64,
/*599120*/          OPC_MoveParent,
/*599121*/          OPC_CheckType, MVT::v4i32,
/*599123*/          OPC_MoveParent,
/*599124*/          OPC_CheckType, MVT::v2f64,
/*599126*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*599128*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*599131*/          OPC_EmitMergeInputChains1_0,
/*599132*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VUintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzload:{ *:[v2i64] } addr:{ *:[iPTR] }:$src))) - Complexity = 27
                    // Dst: (VCVTUDQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*599143*/        0, // EndSwitchOpcode
/*599144*/      /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST),// ->599213
/*599147*/        OPC_MoveChild0,
/*599148*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*599151*/        OPC_RecordMemRef,
/*599152*/        OPC_RecordNode, // #0 = 'ld' chained node
/*599153*/        OPC_CheckFoldableChainNode,
/*599154*/        OPC_RecordChild1, // #1 = $src
/*599155*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*599157*/        OPC_SwitchType /*2 cases */, 25, MVT::i32,// ->599185
/*599160*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*599162*/          OPC_MoveParent,
/*599163*/          OPC_CheckType, MVT::v4i32,
/*599165*/          OPC_MoveParent,
/*599166*/          OPC_CheckType, MVT::v2f64,
/*599168*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*599170*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*599173*/          OPC_EmitMergeInputChains1_0,
/*599174*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VUintToFP:{ *:[v2f64] } (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                    // Dst: (VCVTUDQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*599185*/        /*SwitchType*/ 25, MVT::i64,// ->599212
/*599187*/          OPC_CheckPredicate, 9, // Predicate_load
/*599189*/          OPC_MoveParent,
/*599190*/          OPC_CheckType, MVT::v2i64,
/*599192*/          OPC_MoveParent,
/*599193*/          OPC_CheckType, MVT::v4f32,
/*599195*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599197*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*599200*/          OPC_EmitMergeInputChains1_0,
/*599201*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VUintToFP:{ *:[v4f32] } (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VCVTUQQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*599212*/        0, // EndSwitchType
/*599213*/      /*SwitchOpcode*/ 31, TARGET_VAL(ISD::LOAD),// ->599247
/*599216*/        OPC_RecordMemRef,
/*599217*/        OPC_RecordNode, // #0 = 'ld' chained node
/*599218*/        OPC_RecordChild1, // #1 = $src
/*599219*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*599221*/        OPC_CheckPredicate, 9, // Predicate_load
/*599223*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*599225*/        OPC_CheckType, MVT::v2i64,
/*599227*/        OPC_MoveParent,
/*599228*/        OPC_CheckType, MVT::v4f32,
/*599230*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599232*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*599235*/        OPC_EmitMergeInputChains1_0,
/*599236*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VUintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VCVTUQQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*599247*/      0, // EndSwitchOpcode
/*599248*/    /*Scope*/ 71, /*->599320*/
/*599249*/      OPC_RecordChild0, // #0 = $src
/*599250*/      OPC_SwitchType /*2 cases */, 53, MVT::v2f64,// ->599306
/*599253*/        OPC_CheckChild0Type, MVT::v4i32,
/*599255*/        OPC_Scope, 9, /*->599266*/ // 2 children in Scope
/*599257*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*599259*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86VUintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VCVTUDQ2PDZ128rr:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src)
/*599266*/        /*Scope*/ 38, /*->599305*/
/*599267*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*599269*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #1
/*599275*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*599278*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*599287*/          OPC_EmitNode1, TARGET_VAL(X86::VCVTUDQ2PDZrr), 0,
                        MVT::v8f64, 1/*#Ops*/, 3,  // Results = #4
/*599294*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*599297*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f64, 2/*#Ops*/, 4, 5, 
                    // Src: (X86VUintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src1) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[v2f64] } (VCVTUDQ2PDZrr:{ *:[v8f64] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/*599305*/        0, /*End of Scope*/
/*599306*/      /*SwitchType*/ 11, MVT::v4f32,// ->599319
/*599308*/        OPC_CheckChild0Type, MVT::v2i64,
/*599310*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599312*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rr), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86VUintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VCVTUQQ2PSZ128rr:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src)
/*599319*/      0, // EndSwitchType
/*599320*/    0, /*End of Scope*/
/*599321*/  /*SwitchOpcode*/ 46|128,3/*430*/, TARGET_VAL(X86ISD::VREDUCE),// ->599755
/*599325*/    OPC_Scope, 76|128,2/*332*/, /*->599660*/ // 2 children in Scope
/*599328*/      OPC_MoveChild0,
/*599329*/      OPC_SwitchOpcode /*2 cases */, 42|128,1/*170*/, TARGET_VAL(X86ISD::VBROADCAST),// ->599504
/*599334*/        OPC_MoveChild0,
/*599335*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*599338*/        OPC_RecordMemRef,
/*599339*/        OPC_RecordNode, // #0 = 'ld' chained node
/*599340*/        OPC_CheckFoldableChainNode,
/*599341*/        OPC_RecordChild1, // #1 = $src1
/*599342*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*599344*/        OPC_CheckPredicate, 9, // Predicate_load
/*599346*/        OPC_SwitchType /*2 cases */, 76, MVT::f32,// ->599425
/*599349*/          OPC_MoveParent,
/*599350*/          OPC_MoveParent,
/*599351*/          OPC_RecordChild1, // #2 = $src2
/*599352*/          OPC_MoveChild1,
/*599353*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*599356*/          OPC_MoveParent,
/*599357*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->599380
/*599360*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*599362*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599365*/            OPC_EmitMergeInputChains1_0,
/*599366*/            OPC_EmitConvertToTarget, 2,
/*599368*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VReduce:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VREDUCEPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599380*/          /*SwitchType*/ 20, MVT::v4f32,// ->599402
/*599382*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599384*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599387*/            OPC_EmitMergeInputChains1_0,
/*599388*/            OPC_EmitConvertToTarget, 2,
/*599390*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VReduce:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VREDUCEPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599402*/          /*SwitchType*/ 20, MVT::v8f32,// ->599424
/*599404*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599406*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599409*/            OPC_EmitMergeInputChains1_0,
/*599410*/            OPC_EmitConvertToTarget, 2,
/*599412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VReduce:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VREDUCEPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599424*/          0, // EndSwitchType
/*599425*/        /*SwitchType*/ 76, MVT::f64,// ->599503
/*599427*/          OPC_MoveParent,
/*599428*/          OPC_MoveParent,
/*599429*/          OPC_RecordChild1, // #2 = $src2
/*599430*/          OPC_MoveChild1,
/*599431*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*599434*/          OPC_MoveParent,
/*599435*/          OPC_SwitchType /*3 cases */, 20, MVT::v8f64,// ->599458
/*599438*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*599440*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599443*/            OPC_EmitMergeInputChains1_0,
/*599444*/            OPC_EmitConvertToTarget, 2,
/*599446*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VReduce:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VREDUCEPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599458*/          /*SwitchType*/ 20, MVT::v2f64,// ->599480
/*599460*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599462*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599465*/            OPC_EmitMergeInputChains1_0,
/*599466*/            OPC_EmitConvertToTarget, 2,
/*599468*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VReduce:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VREDUCEPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599480*/          /*SwitchType*/ 20, MVT::v4f64,// ->599502
/*599482*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599484*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599487*/            OPC_EmitMergeInputChains1_0,
/*599488*/            OPC_EmitConvertToTarget, 2,
/*599490*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VReduce:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VREDUCEPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599502*/          0, // EndSwitchType
/*599503*/        0, // EndSwitchType
/*599504*/      /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(ISD::LOAD),// ->599659
/*599508*/        OPC_RecordMemRef,
/*599509*/        OPC_RecordNode, // #0 = 'ld' chained node
/*599510*/        OPC_CheckFoldableChainNode,
/*599511*/        OPC_RecordChild1, // #1 = $src1
/*599512*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*599514*/        OPC_CheckPredicate, 9, // Predicate_load
/*599516*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*599518*/        OPC_MoveParent,
/*599519*/        OPC_RecordChild1, // #2 = $src2
/*599520*/        OPC_MoveChild1,
/*599521*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*599524*/        OPC_MoveParent,
/*599525*/        OPC_SwitchType /*6 cases */, 20, MVT::v16f32,// ->599548
/*599528*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*599530*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599533*/          OPC_EmitMergeInputChains1_0,
/*599534*/          OPC_EmitConvertToTarget, 2,
/*599536*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VReduce:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599548*/        /*SwitchType*/ 20, MVT::v4f32,// ->599570
/*599550*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599552*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599555*/          OPC_EmitMergeInputChains1_0,
/*599556*/          OPC_EmitConvertToTarget, 2,
/*599558*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VReduce:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599570*/        /*SwitchType*/ 20, MVT::v8f32,// ->599592
/*599572*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599574*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599577*/          OPC_EmitMergeInputChains1_0,
/*599578*/          OPC_EmitConvertToTarget, 2,
/*599580*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VReduce:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599592*/        /*SwitchType*/ 20, MVT::v8f64,// ->599614
/*599594*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*599596*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599599*/          OPC_EmitMergeInputChains1_0,
/*599600*/          OPC_EmitConvertToTarget, 2,
/*599602*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VReduce:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599614*/        /*SwitchType*/ 20, MVT::v2f64,// ->599636
/*599616*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599618*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599621*/          OPC_EmitMergeInputChains1_0,
/*599622*/          OPC_EmitConvertToTarget, 2,
/*599624*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VReduce:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599636*/        /*SwitchType*/ 20, MVT::v4f64,// ->599658
/*599638*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599640*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599643*/          OPC_EmitMergeInputChains1_0,
/*599644*/          OPC_EmitConvertToTarget, 2,
/*599646*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VReduce:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599658*/        0, // EndSwitchType
/*599659*/      0, // EndSwitchOpcode
/*599660*/    /*Scope*/ 93, /*->599754*/
/*599661*/      OPC_RecordChild0, // #0 = $src1
/*599662*/      OPC_RecordChild1, // #1 = $src2
/*599663*/      OPC_MoveChild1,
/*599664*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*599667*/      OPC_MoveParent,
/*599668*/      OPC_SwitchType /*6 cases */, 12, MVT::v16f32,// ->599683
/*599671*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*599673*/        OPC_EmitConvertToTarget, 1,
/*599675*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VReduce:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*599683*/      /*SwitchType*/ 12, MVT::v4f32,// ->599697
/*599685*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599687*/        OPC_EmitConvertToTarget, 1,
/*599689*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rri), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VReduce:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*599697*/      /*SwitchType*/ 12, MVT::v8f32,// ->599711
/*599699*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599701*/        OPC_EmitConvertToTarget, 1,
/*599703*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rri), 0,
                      MVT::v8f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VReduce:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*599711*/      /*SwitchType*/ 12, MVT::v8f64,// ->599725
/*599713*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*599715*/        OPC_EmitConvertToTarget, 1,
/*599717*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VReduce:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*599725*/      /*SwitchType*/ 12, MVT::v2f64,// ->599739
/*599727*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599729*/        OPC_EmitConvertToTarget, 1,
/*599731*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rri), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VReduce:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*599739*/      /*SwitchType*/ 12, MVT::v4f64,// ->599753
/*599741*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*599743*/        OPC_EmitConvertToTarget, 1,
/*599745*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rri), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VReduce:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*599753*/      0, // EndSwitchType
/*599754*/    0, /*End of Scope*/
/*599755*/  /*SwitchOpcode*/ 39|128,5/*679*/, TARGET_VAL(X86ISD::VRNDSCALE),// ->600438
/*599759*/    OPC_Scope, 106|128,3/*490*/, /*->600252*/ // 2 children in Scope
/*599762*/      OPC_MoveChild0,
/*599763*/      OPC_SwitchOpcode /*2 cases */, 42|128,1/*170*/, TARGET_VAL(X86ISD::VBROADCAST),// ->599938
/*599768*/        OPC_MoveChild0,
/*599769*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*599772*/        OPC_RecordMemRef,
/*599773*/        OPC_RecordNode, // #0 = 'ld' chained node
/*599774*/        OPC_CheckFoldableChainNode,
/*599775*/        OPC_RecordChild1, // #1 = $src1
/*599776*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*599778*/        OPC_CheckPredicate, 9, // Predicate_load
/*599780*/        OPC_SwitchType /*2 cases */, 76, MVT::f32,// ->599859
/*599783*/          OPC_MoveParent,
/*599784*/          OPC_MoveParent,
/*599785*/          OPC_RecordChild1, // #2 = $src2
/*599786*/          OPC_MoveChild1,
/*599787*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*599790*/          OPC_MoveParent,
/*599791*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->599814
/*599794*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*599796*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599799*/            OPC_EmitMergeInputChains1_0,
/*599800*/            OPC_EmitConvertToTarget, 2,
/*599802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VRNDSCALEPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599814*/          /*SwitchType*/ 20, MVT::v4f32,// ->599836
/*599816*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*599818*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599821*/            OPC_EmitMergeInputChains1_0,
/*599822*/            OPC_EmitConvertToTarget, 2,
/*599824*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VRNDSCALEPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599836*/          /*SwitchType*/ 20, MVT::v8f32,// ->599858
/*599838*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*599840*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599843*/            OPC_EmitMergeInputChains1_0,
/*599844*/            OPC_EmitConvertToTarget, 2,
/*599846*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VRNDSCALEPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599858*/          0, // EndSwitchType
/*599859*/        /*SwitchType*/ 76, MVT::f64,// ->599937
/*599861*/          OPC_MoveParent,
/*599862*/          OPC_MoveParent,
/*599863*/          OPC_RecordChild1, // #2 = $src2
/*599864*/          OPC_MoveChild1,
/*599865*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*599868*/          OPC_MoveParent,
/*599869*/          OPC_SwitchType /*3 cases */, 20, MVT::v8f64,// ->599892
/*599872*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*599874*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599877*/            OPC_EmitMergeInputChains1_0,
/*599878*/            OPC_EmitConvertToTarget, 2,
/*599880*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VRNDSCALEPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599892*/          /*SwitchType*/ 20, MVT::v2f64,// ->599914
/*599894*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*599896*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599899*/            OPC_EmitMergeInputChains1_0,
/*599900*/            OPC_EmitConvertToTarget, 2,
/*599902*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VRNDSCALEPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599914*/          /*SwitchType*/ 20, MVT::v4f64,// ->599936
/*599916*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*599918*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599921*/            OPC_EmitMergeInputChains1_0,
/*599922*/            OPC_EmitConvertToTarget, 2,
/*599924*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VRNDSCALEPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599936*/          0, // EndSwitchType
/*599937*/        0, // EndSwitchType
/*599938*/      /*SwitchOpcode*/ 53|128,2/*309*/, TARGET_VAL(ISD::LOAD),// ->600251
/*599942*/        OPC_RecordMemRef,
/*599943*/        OPC_RecordNode, // #0 = 'ld' chained node
/*599944*/        OPC_CheckFoldableChainNode,
/*599945*/        OPC_RecordChild1, // #1 = $src1
/*599946*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*599948*/        OPC_CheckPredicate, 9, // Predicate_load
/*599950*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*599952*/        OPC_Scope, 97, /*->600051*/ // 3 children in Scope
/*599954*/          OPC_MoveParent,
/*599955*/          OPC_RecordChild1, // #2 = $src2
/*599956*/          OPC_MoveChild1,
/*599957*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*599960*/          OPC_MoveParent,
/*599961*/          OPC_SwitchType /*4 cases */, 20, MVT::v4f32,// ->599984
/*599964*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*599966*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599969*/            OPC_EmitMergeInputChains1_0,
/*599970*/            OPC_EmitConvertToTarget, 2,
/*599972*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*599984*/          /*SwitchType*/ 20, MVT::v8f32,// ->600006
/*599986*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*599988*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*599991*/            OPC_EmitMergeInputChains1_0,
/*599992*/            OPC_EmitConvertToTarget, 2,
/*599994*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600006*/          /*SwitchType*/ 20, MVT::v2f64,// ->600028
/*600008*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*600010*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600013*/            OPC_EmitMergeInputChains1_0,
/*600014*/            OPC_EmitConvertToTarget, 2,
/*600016*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600028*/          /*SwitchType*/ 20, MVT::v4f64,// ->600050
/*600030*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*600032*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600035*/            OPC_EmitMergeInputChains1_0,
/*600036*/            OPC_EmitConvertToTarget, 2,
/*600038*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPDYm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600050*/          0, // EndSwitchType
/*600051*/        /*Scope*/ 55, /*->600107*/
/*600052*/          OPC_CheckPredicate, 48, // Predicate_memop
/*600054*/          OPC_MoveParent,
/*600055*/          OPC_RecordChild1, // #2 = $src2
/*600056*/          OPC_MoveChild1,
/*600057*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*600060*/          OPC_MoveParent,
/*600061*/          OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->600084
/*600064*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*600066*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600069*/            OPC_EmitMergeInputChains1_0,
/*600070*/            OPC_EmitConvertToTarget, 2,
/*600072*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (ROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600084*/          /*SwitchType*/ 20, MVT::v2f64,// ->600106
/*600086*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*600088*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600091*/            OPC_EmitMergeInputChains1_0,
/*600092*/            OPC_EmitConvertToTarget, 2,
/*600094*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (ROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600106*/          0, // EndSwitchType
/*600107*/        /*Scope*/ 13|128,1/*141*/, /*->600250*/
/*600109*/          OPC_MoveParent,
/*600110*/          OPC_RecordChild1, // #2 = $src2
/*600111*/          OPC_MoveChild1,
/*600112*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*600115*/          OPC_MoveParent,
/*600116*/          OPC_SwitchType /*6 cases */, 20, MVT::v16f32,// ->600139
/*600119*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*600121*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600124*/            OPC_EmitMergeInputChains1_0,
/*600125*/            OPC_EmitConvertToTarget, 2,
/*600127*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600139*/          /*SwitchType*/ 20, MVT::v4f32,// ->600161
/*600141*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600143*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600146*/            OPC_EmitMergeInputChains1_0,
/*600147*/            OPC_EmitConvertToTarget, 2,
/*600149*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600161*/          /*SwitchType*/ 20, MVT::v8f32,// ->600183
/*600163*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600165*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600168*/            OPC_EmitMergeInputChains1_0,
/*600169*/            OPC_EmitConvertToTarget, 2,
/*600171*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600183*/          /*SwitchType*/ 20, MVT::v8f64,// ->600205
/*600185*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*600187*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600190*/            OPC_EmitMergeInputChains1_0,
/*600191*/            OPC_EmitConvertToTarget, 2,
/*600193*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600205*/          /*SwitchType*/ 20, MVT::v2f64,// ->600227
/*600207*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600209*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600212*/            OPC_EmitMergeInputChains1_0,
/*600213*/            OPC_EmitConvertToTarget, 2,
/*600215*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600227*/          /*SwitchType*/ 20, MVT::v4f64,// ->600249
/*600229*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600231*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600234*/            OPC_EmitMergeInputChains1_0,
/*600235*/            OPC_EmitConvertToTarget, 2,
/*600237*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600249*/          0, // EndSwitchType
/*600250*/        0, /*End of Scope*/
/*600251*/      0, // EndSwitchOpcode
/*600252*/    /*Scope*/ 55|128,1/*183*/, /*->600437*/
/*600254*/      OPC_RecordChild0, // #0 = $src1
/*600255*/      OPC_RecordChild1, // #1 = $src2
/*600256*/      OPC_MoveChild1,
/*600257*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*600260*/      OPC_MoveParent,
/*600261*/      OPC_SwitchType /*6 cases */, 41, MVT::v4f32,// ->600305
/*600264*/        OPC_Scope, 12, /*->600278*/ // 3 children in Scope
/*600266*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*600268*/          OPC_EmitConvertToTarget, 1,
/*600270*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VRndScale:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*600278*/        /*Scope*/ 12, /*->600291*/
/*600279*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*600281*/          OPC_EmitConvertToTarget, 1,
/*600283*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VRndScale:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (ROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*600291*/        /*Scope*/ 12, /*->600304*/
/*600292*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600294*/          OPC_EmitConvertToTarget, 1,
/*600296*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rri), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VRndScale:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*600304*/        0, /*End of Scope*/
/*600305*/      /*SwitchType*/ 28, MVT::v8f32,// ->600335
/*600307*/        OPC_Scope, 12, /*->600321*/ // 2 children in Scope
/*600309*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*600311*/          OPC_EmitConvertToTarget, 1,
/*600313*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VRndScale:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*600321*/        /*Scope*/ 12, /*->600334*/
/*600322*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600324*/          OPC_EmitConvertToTarget, 1,
/*600326*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rri), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VRndScale:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*600334*/        0, /*End of Scope*/
/*600335*/      /*SwitchType*/ 41, MVT::v2f64,// ->600378
/*600337*/        OPC_Scope, 12, /*->600351*/ // 3 children in Scope
/*600339*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*600341*/          OPC_EmitConvertToTarget, 1,
/*600343*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VRndScale:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*600351*/        /*Scope*/ 12, /*->600364*/
/*600352*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*600354*/          OPC_EmitConvertToTarget, 1,
/*600356*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VRndScale:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (ROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*600364*/        /*Scope*/ 12, /*->600377*/
/*600365*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600367*/          OPC_EmitConvertToTarget, 1,
/*600369*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rri), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VRndScale:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*600377*/        0, /*End of Scope*/
/*600378*/      /*SwitchType*/ 28, MVT::v4f64,// ->600408
/*600380*/        OPC_Scope, 12, /*->600394*/ // 2 children in Scope
/*600382*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*600384*/          OPC_EmitConvertToTarget, 1,
/*600386*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VRndScale:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*600394*/        /*Scope*/ 12, /*->600407*/
/*600395*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600397*/          OPC_EmitConvertToTarget, 1,
/*600399*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 2, 
                    // Src: (X86VRndScale:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*600407*/        0, /*End of Scope*/
/*600408*/      /*SwitchType*/ 12, MVT::v16f32,// ->600422
/*600410*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*600412*/        OPC_EmitConvertToTarget, 1,
/*600414*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VRndScale:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VRNDSCALEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*600422*/      /*SwitchType*/ 12, MVT::v8f64,// ->600436
/*600424*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*600426*/        OPC_EmitConvertToTarget, 1,
/*600428*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VRndScale:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VRNDSCALEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*600436*/      0, // EndSwitchType
/*600437*/    0, /*End of Scope*/
/*600438*/  /*SwitchOpcode*/ 46|128,3/*430*/, TARGET_VAL(X86ISD::VGETMANT),// ->600872
/*600442*/    OPC_Scope, 76|128,2/*332*/, /*->600777*/ // 2 children in Scope
/*600445*/      OPC_MoveChild0,
/*600446*/      OPC_SwitchOpcode /*2 cases */, 42|128,1/*170*/, TARGET_VAL(X86ISD::VBROADCAST),// ->600621
/*600451*/        OPC_MoveChild0,
/*600452*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*600455*/        OPC_RecordMemRef,
/*600456*/        OPC_RecordNode, // #0 = 'ld' chained node
/*600457*/        OPC_CheckFoldableChainNode,
/*600458*/        OPC_RecordChild1, // #1 = $src1
/*600459*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*600461*/        OPC_CheckPredicate, 9, // Predicate_load
/*600463*/        OPC_SwitchType /*2 cases */, 76, MVT::f32,// ->600542
/*600466*/          OPC_MoveParent,
/*600467*/          OPC_MoveParent,
/*600468*/          OPC_RecordChild1, // #2 = $src2
/*600469*/          OPC_MoveChild1,
/*600470*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*600473*/          OPC_MoveParent,
/*600474*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->600497
/*600477*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*600479*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600482*/            OPC_EmitMergeInputChains1_0,
/*600483*/            OPC_EmitConvertToTarget, 2,
/*600485*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VGetMant:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VGETMANTPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600497*/          /*SwitchType*/ 20, MVT::v4f32,// ->600519
/*600499*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600501*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600504*/            OPC_EmitMergeInputChains1_0,
/*600505*/            OPC_EmitConvertToTarget, 2,
/*600507*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VGetMant:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VGETMANTPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600519*/          /*SwitchType*/ 20, MVT::v8f32,// ->600541
/*600521*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600523*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600526*/            OPC_EmitMergeInputChains1_0,
/*600527*/            OPC_EmitConvertToTarget, 2,
/*600529*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VGetMant:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VGETMANTPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600541*/          0, // EndSwitchType
/*600542*/        /*SwitchType*/ 76, MVT::f64,// ->600620
/*600544*/          OPC_MoveParent,
/*600545*/          OPC_MoveParent,
/*600546*/          OPC_RecordChild1, // #2 = $src2
/*600547*/          OPC_MoveChild1,
/*600548*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*600551*/          OPC_MoveParent,
/*600552*/          OPC_SwitchType /*3 cases */, 20, MVT::v8f64,// ->600575
/*600555*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*600557*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600560*/            OPC_EmitMergeInputChains1_0,
/*600561*/            OPC_EmitConvertToTarget, 2,
/*600563*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VGetMant:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VGETMANTPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600575*/          /*SwitchType*/ 20, MVT::v2f64,// ->600597
/*600577*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600579*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600582*/            OPC_EmitMergeInputChains1_0,
/*600583*/            OPC_EmitConvertToTarget, 2,
/*600585*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VGetMant:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VGETMANTPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600597*/          /*SwitchType*/ 20, MVT::v4f64,// ->600619
/*600599*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600601*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600604*/            OPC_EmitMergeInputChains1_0,
/*600605*/            OPC_EmitConvertToTarget, 2,
/*600607*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86VGetMant:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src2) - Complexity = 31
                      // Dst: (VGETMANTPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600619*/          0, // EndSwitchType
/*600620*/        0, // EndSwitchType
/*600621*/      /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(ISD::LOAD),// ->600776
/*600625*/        OPC_RecordMemRef,
/*600626*/        OPC_RecordNode, // #0 = 'ld' chained node
/*600627*/        OPC_CheckFoldableChainNode,
/*600628*/        OPC_RecordChild1, // #1 = $src1
/*600629*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*600631*/        OPC_CheckPredicate, 9, // Predicate_load
/*600633*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*600635*/        OPC_MoveParent,
/*600636*/        OPC_RecordChild1, // #2 = $src2
/*600637*/        OPC_MoveChild1,
/*600638*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*600641*/        OPC_MoveParent,
/*600642*/        OPC_SwitchType /*6 cases */, 20, MVT::v16f32,// ->600665
/*600645*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*600647*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600650*/          OPC_EmitMergeInputChains1_0,
/*600651*/          OPC_EmitConvertToTarget, 2,
/*600653*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VGetMant:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600665*/        /*SwitchType*/ 20, MVT::v4f32,// ->600687
/*600667*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600669*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600672*/          OPC_EmitMergeInputChains1_0,
/*600673*/          OPC_EmitConvertToTarget, 2,
/*600675*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VGetMant:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600687*/        /*SwitchType*/ 20, MVT::v8f32,// ->600709
/*600689*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600691*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600694*/          OPC_EmitMergeInputChains1_0,
/*600695*/          OPC_EmitConvertToTarget, 2,
/*600697*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VGetMant:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600709*/        /*SwitchType*/ 20, MVT::v8f64,// ->600731
/*600711*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*600713*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600716*/          OPC_EmitMergeInputChains1_0,
/*600717*/          OPC_EmitConvertToTarget, 2,
/*600719*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VGetMant:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600731*/        /*SwitchType*/ 20, MVT::v2f64,// ->600753
/*600733*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600735*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600738*/          OPC_EmitMergeInputChains1_0,
/*600739*/          OPC_EmitConvertToTarget, 2,
/*600741*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VGetMant:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600753*/        /*SwitchType*/ 20, MVT::v4f64,// ->600775
/*600755*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600757*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*600760*/          OPC_EmitMergeInputChains1_0,
/*600761*/          OPC_EmitConvertToTarget, 2,
/*600763*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VGetMant:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/*600775*/        0, // EndSwitchType
/*600776*/      0, // EndSwitchOpcode
/*600777*/    /*Scope*/ 93, /*->600871*/
/*600778*/      OPC_RecordChild0, // #0 = $src1
/*600779*/      OPC_RecordChild1, // #1 = $src2
/*600780*/      OPC_MoveChild1,
/*600781*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*600784*/      OPC_MoveParent,
/*600785*/      OPC_SwitchType /*6 cases */, 12, MVT::v16f32,// ->600800
/*600788*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*600790*/        OPC_EmitConvertToTarget, 1,
/*600792*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VGetMant:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*600800*/      /*SwitchType*/ 12, MVT::v4f32,// ->600814
/*600802*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600804*/        OPC_EmitConvertToTarget, 1,
/*600806*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rri), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VGetMant:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*600814*/      /*SwitchType*/ 12, MVT::v8f32,// ->600828
/*600816*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600818*/        OPC_EmitConvertToTarget, 1,
/*600820*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rri), 0,
                      MVT::v8f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VGetMant:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*600828*/      /*SwitchType*/ 12, MVT::v8f64,// ->600842
/*600830*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*600832*/        OPC_EmitConvertToTarget, 1,
/*600834*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VGetMant:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*600842*/      /*SwitchType*/ 12, MVT::v2f64,// ->600856
/*600844*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600846*/        OPC_EmitConvertToTarget, 1,
/*600848*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rri), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VGetMant:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*600856*/      /*SwitchType*/ 12, MVT::v4f64,// ->600870
/*600858*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*600860*/        OPC_EmitConvertToTarget, 1,
/*600862*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rri), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VGetMant:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*600870*/      0, // EndSwitchType
/*600871*/    0, /*End of Scope*/
/*600872*/  /*SwitchOpcode*/ 65|128,3/*449*/, TARGET_VAL(X86ISD::VRANGE),// ->601325
/*600876*/    OPC_RecordChild0, // #0 = $src1
/*600877*/    OPC_Scope, 88|128,2/*344*/, /*->601224*/ // 2 children in Scope
/*600880*/      OPC_MoveChild1,
/*600881*/      OPC_SwitchOpcode /*2 cases */, 48|128,1/*176*/, TARGET_VAL(X86ISD::VBROADCAST),// ->601062
/*600886*/        OPC_MoveChild0,
/*600887*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*600890*/        OPC_RecordMemRef,
/*600891*/        OPC_RecordNode, // #1 = 'ld' chained node
/*600892*/        OPC_CheckFoldableChainNode,
/*600893*/        OPC_RecordChild1, // #2 = $src2
/*600894*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*600896*/        OPC_CheckPredicate, 9, // Predicate_load
/*600898*/        OPC_SwitchType /*2 cases */, 79, MVT::f64,// ->600980
/*600901*/          OPC_MoveParent,
/*600902*/          OPC_MoveParent,
/*600903*/          OPC_RecordChild2, // #3 = $src3
/*600904*/          OPC_MoveChild2,
/*600905*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*600908*/          OPC_MoveParent,
/*600909*/          OPC_SwitchType /*3 cases */, 21, MVT::v8f64,// ->600933
/*600912*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*600914*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*600917*/            OPC_EmitMergeInputChains1_1,
/*600918*/            OPC_EmitConvertToTarget, 3,
/*600920*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                      // Dst: (VRANGEPDZrmbi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*600933*/          /*SwitchType*/ 21, MVT::v2f64,// ->600956
/*600935*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*600937*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*600940*/            OPC_EmitMergeInputChains1_1,
/*600941*/            OPC_EmitConvertToTarget, 3,
/*600943*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                      // Dst: (VRANGEPDZ128rmbi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*600956*/          /*SwitchType*/ 21, MVT::v4f64,// ->600979
/*600958*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*600960*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*600963*/            OPC_EmitMergeInputChains1_1,
/*600964*/            OPC_EmitConvertToTarget, 3,
/*600966*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                      // Dst: (VRANGEPDZ256rmbi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*600979*/          0, // EndSwitchType
/*600980*/        /*SwitchType*/ 79, MVT::f32,// ->601061
/*600982*/          OPC_MoveParent,
/*600983*/          OPC_MoveParent,
/*600984*/          OPC_RecordChild2, // #3 = $src3
/*600985*/          OPC_MoveChild2,
/*600986*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*600989*/          OPC_MoveParent,
/*600990*/          OPC_SwitchType /*3 cases */, 21, MVT::v16f32,// ->601014
/*600993*/            OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*600995*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*600998*/            OPC_EmitMergeInputChains1_1,
/*600999*/            OPC_EmitConvertToTarget, 3,
/*601001*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                      // Dst: (VRANGEPSZrmbi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601014*/          /*SwitchType*/ 21, MVT::v4f32,// ->601037
/*601016*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*601018*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601021*/            OPC_EmitMergeInputChains1_1,
/*601022*/            OPC_EmitConvertToTarget, 3,
/*601024*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                      // Dst: (VRANGEPSZ128rmbi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601037*/          /*SwitchType*/ 21, MVT::v8f32,// ->601060
/*601039*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*601041*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601044*/            OPC_EmitMergeInputChains1_1,
/*601045*/            OPC_EmitConvertToTarget, 3,
/*601047*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                      // Dst: (VRANGEPSZ256rmbi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601060*/          0, // EndSwitchType
/*601061*/        0, // EndSwitchType
/*601062*/      /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ISD::LOAD),// ->601223
/*601066*/        OPC_RecordMemRef,
/*601067*/        OPC_RecordNode, // #1 = 'ld' chained node
/*601068*/        OPC_CheckFoldableChainNode,
/*601069*/        OPC_RecordChild1, // #2 = $src2
/*601070*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*601072*/        OPC_CheckPredicate, 9, // Predicate_load
/*601074*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*601076*/        OPC_MoveParent,
/*601077*/        OPC_RecordChild2, // #3 = $src3
/*601078*/        OPC_MoveChild2,
/*601079*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601082*/        OPC_MoveParent,
/*601083*/        OPC_SwitchType /*6 cases */, 21, MVT::v8f64,// ->601107
/*601086*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601088*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601091*/          OPC_EmitMergeInputChains1_1,
/*601092*/          OPC_EmitConvertToTarget, 3,
/*601094*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPDZrmi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601107*/        /*SwitchType*/ 21, MVT::v2f64,// ->601130
/*601109*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*601111*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601114*/          OPC_EmitMergeInputChains1_1,
/*601115*/          OPC_EmitConvertToTarget, 3,
/*601117*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPDZ128rmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601130*/        /*SwitchType*/ 21, MVT::v4f64,// ->601153
/*601132*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*601134*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601137*/          OPC_EmitMergeInputChains1_1,
/*601138*/          OPC_EmitConvertToTarget, 3,
/*601140*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPDZ256rmi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601153*/        /*SwitchType*/ 21, MVT::v16f32,// ->601176
/*601155*/          OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601157*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601160*/          OPC_EmitMergeInputChains1_1,
/*601161*/          OPC_EmitConvertToTarget, 3,
/*601163*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPSZrmi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601176*/        /*SwitchType*/ 21, MVT::v4f32,// ->601199
/*601178*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*601180*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601183*/          OPC_EmitMergeInputChains1_1,
/*601184*/          OPC_EmitConvertToTarget, 3,
/*601186*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPSZ128rmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601199*/        /*SwitchType*/ 21, MVT::v8f32,// ->601222
/*601201*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*601203*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601206*/          OPC_EmitMergeInputChains1_1,
/*601207*/          OPC_EmitConvertToTarget, 3,
/*601209*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPSZ256rmi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601222*/        0, // EndSwitchType
/*601223*/      0, // EndSwitchOpcode
/*601224*/    /*Scope*/ 99, /*->601324*/
/*601225*/      OPC_RecordChild1, // #1 = $src2
/*601226*/      OPC_RecordChild2, // #2 = $src3
/*601227*/      OPC_MoveChild2,
/*601228*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601231*/      OPC_MoveParent,
/*601232*/      OPC_SwitchType /*6 cases */, 13, MVT::v8f64,// ->601248
/*601235*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601237*/        OPC_EmitConvertToTarget, 2,
/*601239*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrri), 0,
                      MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*601248*/      /*SwitchType*/ 13, MVT::v2f64,// ->601263
/*601250*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*601252*/        OPC_EmitConvertToTarget, 2,
/*601254*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rri), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*601263*/      /*SwitchType*/ 13, MVT::v4f64,// ->601278
/*601265*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*601267*/        OPC_EmitConvertToTarget, 2,
/*601269*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rri), 0,
                      MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*601278*/      /*SwitchType*/ 13, MVT::v16f32,// ->601293
/*601280*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601282*/        OPC_EmitConvertToTarget, 2,
/*601284*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrri), 0,
                      MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*601293*/      /*SwitchType*/ 13, MVT::v4f32,// ->601308
/*601295*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*601297*/        OPC_EmitConvertToTarget, 2,
/*601299*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rri), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*601308*/      /*SwitchType*/ 13, MVT::v8f32,// ->601323
/*601310*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*601312*/        OPC_EmitConvertToTarget, 2,
/*601314*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rri), 0,
                      MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*601323*/      0, // EndSwitchType
/*601324*/    0, /*End of Scope*/
/*601325*/  /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::VRANGES),// ->601457
/*601329*/    OPC_RecordChild0, // #0 = $src1
/*601330*/    OPC_Scope, 84, /*->601416*/ // 2 children in Scope
/*601332*/      OPC_MoveChild1,
/*601333*/      OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*601336*/      OPC_MoveChild0,
/*601337*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*601340*/      OPC_RecordMemRef,
/*601341*/      OPC_RecordNode, // #1 = 'ld' chained node
/*601342*/      OPC_CheckFoldableChainNode,
/*601343*/      OPC_RecordChild1, // #2 = $src2
/*601344*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*601346*/      OPC_CheckPredicate, 9, // Predicate_load
/*601348*/      OPC_SwitchType /*2 cases */, 31, MVT::f64,// ->601382
/*601351*/        OPC_MoveParent,
/*601352*/        OPC_MoveParent,
/*601353*/        OPC_RecordChild2, // #3 = $src3
/*601354*/        OPC_MoveChild2,
/*601355*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601358*/        OPC_MoveParent,
/*601359*/        OPC_CheckType, MVT::v2f64,
/*601361*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601363*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601366*/        OPC_EmitMergeInputChains1_1,
/*601367*/        OPC_EmitConvertToTarget, 3,
/*601369*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                  // Dst: (VRANGESDZrmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601382*/      /*SwitchType*/ 31, MVT::f32,// ->601415
/*601384*/        OPC_MoveParent,
/*601385*/        OPC_MoveParent,
/*601386*/        OPC_RecordChild2, // #3 = $src3
/*601387*/        OPC_MoveChild2,
/*601388*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601391*/        OPC_MoveParent,
/*601392*/        OPC_CheckType, MVT::v4f32,
/*601394*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601396*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601399*/        OPC_EmitMergeInputChains1_1,
/*601400*/        OPC_EmitConvertToTarget, 3,
/*601402*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                  // Dst: (VRANGESSZrmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601415*/      0, // EndSwitchType
/*601416*/    /*Scope*/ 39, /*->601456*/
/*601417*/      OPC_RecordChild1, // #1 = $src2
/*601418*/      OPC_RecordChild2, // #2 = $src3
/*601419*/      OPC_MoveChild2,
/*601420*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601423*/      OPC_MoveParent,
/*601424*/      OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->601440
/*601427*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601429*/        OPC_EmitConvertToTarget, 2,
/*601431*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrri), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGESDZrri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*601440*/      /*SwitchType*/ 13, MVT::v4f32,// ->601455
/*601442*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601444*/        OPC_EmitConvertToTarget, 2,
/*601446*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrri), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGESSZrri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*601455*/      0, // EndSwitchType
/*601456*/    0, /*End of Scope*/
/*601457*/  /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::VREDUCES),// ->601589
/*601461*/    OPC_RecordChild0, // #0 = $src1
/*601462*/    OPC_Scope, 84, /*->601548*/ // 2 children in Scope
/*601464*/      OPC_MoveChild1,
/*601465*/      OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*601468*/      OPC_MoveChild0,
/*601469*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*601472*/      OPC_RecordMemRef,
/*601473*/      OPC_RecordNode, // #1 = 'ld' chained node
/*601474*/      OPC_CheckFoldableChainNode,
/*601475*/      OPC_RecordChild1, // #2 = $src2
/*601476*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*601478*/      OPC_CheckPredicate, 9, // Predicate_load
/*601480*/      OPC_SwitchType /*2 cases */, 31, MVT::f64,// ->601514
/*601483*/        OPC_MoveParent,
/*601484*/        OPC_MoveParent,
/*601485*/        OPC_RecordChild2, // #3 = $src3
/*601486*/        OPC_MoveChild2,
/*601487*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601490*/        OPC_MoveParent,
/*601491*/        OPC_CheckType, MVT::v2f64,
/*601493*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601495*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601498*/        OPC_EmitMergeInputChains1_1,
/*601499*/        OPC_EmitConvertToTarget, 3,
/*601501*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                  // Dst: (VREDUCESDZrmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601514*/      /*SwitchType*/ 31, MVT::f32,// ->601547
/*601516*/        OPC_MoveParent,
/*601517*/        OPC_MoveParent,
/*601518*/        OPC_RecordChild2, // #3 = $src3
/*601519*/        OPC_MoveChild2,
/*601520*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601523*/        OPC_MoveParent,
/*601524*/        OPC_CheckType, MVT::v4f32,
/*601526*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601528*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601531*/        OPC_EmitMergeInputChains1_1,
/*601532*/        OPC_EmitConvertToTarget, 3,
/*601534*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                  // Dst: (VREDUCESSZrmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601547*/      0, // EndSwitchType
/*601548*/    /*Scope*/ 39, /*->601588*/
/*601549*/      OPC_RecordChild1, // #1 = $src2
/*601550*/      OPC_RecordChild2, // #2 = $src3
/*601551*/      OPC_MoveChild2,
/*601552*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601555*/      OPC_MoveParent,
/*601556*/      OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->601572
/*601559*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601561*/        OPC_EmitConvertToTarget, 2,
/*601563*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrri), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VREDUCESDZrri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*601572*/      /*SwitchType*/ 13, MVT::v4f32,// ->601587
/*601574*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*601576*/        OPC_EmitConvertToTarget, 2,
/*601578*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrri), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VREDUCESSZrri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*601587*/      0, // EndSwitchType
/*601588*/    0, /*End of Scope*/
/*601589*/  /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::VGETMANTS),// ->601721
/*601593*/    OPC_RecordChild0, // #0 = $src1
/*601594*/    OPC_Scope, 84, /*->601680*/ // 2 children in Scope
/*601596*/      OPC_MoveChild1,
/*601597*/      OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*601600*/      OPC_MoveChild0,
/*601601*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*601604*/      OPC_RecordMemRef,
/*601605*/      OPC_RecordNode, // #1 = 'ld' chained node
/*601606*/      OPC_CheckFoldableChainNode,
/*601607*/      OPC_RecordChild1, // #2 = $src2
/*601608*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*601610*/      OPC_CheckPredicate, 9, // Predicate_load
/*601612*/      OPC_SwitchType /*2 cases */, 31, MVT::f64,// ->601646
/*601615*/        OPC_MoveParent,
/*601616*/        OPC_MoveParent,
/*601617*/        OPC_RecordChild2, // #3 = $src3
/*601618*/        OPC_MoveChild2,
/*601619*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601622*/        OPC_MoveParent,
/*601623*/        OPC_CheckType, MVT::v2f64,
/*601625*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*601627*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601630*/        OPC_EmitMergeInputChains1_1,
/*601631*/        OPC_EmitConvertToTarget, 3,
/*601633*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                  // Dst: (VGETMANTSDZrmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601646*/      /*SwitchType*/ 31, MVT::f32,// ->601679
/*601648*/        OPC_MoveParent,
/*601649*/        OPC_MoveParent,
/*601650*/        OPC_RecordChild2, // #3 = $src3
/*601651*/        OPC_MoveChild2,
/*601652*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601655*/        OPC_MoveParent,
/*601656*/        OPC_CheckType, MVT::v4f32,
/*601658*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*601660*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601663*/        OPC_EmitMergeInputChains1_1,
/*601664*/        OPC_EmitConvertToTarget, 3,
/*601666*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i32] }):$src3) - Complexity = 31
                  // Dst: (VGETMANTSSZrmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i32] }):$src3)
/*601679*/      0, // EndSwitchType
/*601680*/    /*Scope*/ 39, /*->601720*/
/*601681*/      OPC_RecordChild1, // #1 = $src2
/*601682*/      OPC_RecordChild2, // #2 = $src3
/*601683*/      OPC_MoveChild2,
/*601684*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601687*/      OPC_MoveParent,
/*601688*/      OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->601704
/*601691*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*601693*/        OPC_EmitConvertToTarget, 2,
/*601695*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrri), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VGETMANTSDZrri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*601704*/      /*SwitchType*/ 13, MVT::v4f32,// ->601719
/*601706*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*601708*/        OPC_EmitConvertToTarget, 2,
/*601710*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrri), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VGETMANTSSZrri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*601719*/      0, // EndSwitchType
/*601720*/    0, /*End of Scope*/
/*601721*/  /*SwitchOpcode*/ 122|128,5/*762*/, TARGET_VAL(X86ISD::SHUFP),// ->602487
/*601725*/    OPC_Scope, 53|128,1/*181*/, /*->601909*/ // 3 children in Scope
/*601728*/      OPC_RecordChild0, // #0 = $src1
/*601729*/      OPC_MoveChild1,
/*601730*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*601733*/      OPC_MoveChild0,
/*601734*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*601737*/      OPC_RecordMemRef,
/*601738*/      OPC_RecordNode, // #1 = 'ld' chained node
/*601739*/      OPC_CheckFoldableChainNode,
/*601740*/      OPC_RecordChild1, // #2 = $src2
/*601741*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*601743*/      OPC_CheckPredicate, 9, // Predicate_load
/*601745*/      OPC_SwitchType /*2 cases */, 79, MVT::f32,// ->601827
/*601748*/        OPC_MoveParent,
/*601749*/        OPC_MoveParent,
/*601750*/        OPC_RecordChild2, // #3 = $src3
/*601751*/        OPC_MoveChild2,
/*601752*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601755*/        OPC_MoveParent,
/*601756*/        OPC_SwitchType /*3 cases */, 21, MVT::v16f32,// ->601780
/*601759*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*601761*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601764*/          OPC_EmitMergeInputChains1_1,
/*601765*/          OPC_EmitConvertToTarget, 3,
/*601767*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VSHUFPSZrmbi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*601780*/        /*SwitchType*/ 21, MVT::v4f32,// ->601803
/*601782*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*601784*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601787*/          OPC_EmitMergeInputChains1_1,
/*601788*/          OPC_EmitConvertToTarget, 3,
/*601790*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VSHUFPSZ128rmbi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*601803*/        /*SwitchType*/ 21, MVT::v8f32,// ->601826
/*601805*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*601807*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601810*/          OPC_EmitMergeInputChains1_1,
/*601811*/          OPC_EmitConvertToTarget, 3,
/*601813*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VSHUFPSZ256rmbi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*601826*/        0, // EndSwitchType
/*601827*/      /*SwitchType*/ 79, MVT::f64,// ->601908
/*601829*/        OPC_MoveParent,
/*601830*/        OPC_MoveParent,
/*601831*/        OPC_RecordChild2, // #3 = $src3
/*601832*/        OPC_MoveChild2,
/*601833*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601836*/        OPC_MoveParent,
/*601837*/        OPC_SwitchType /*3 cases */, 21, MVT::v8f64,// ->601861
/*601840*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*601842*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601845*/          OPC_EmitMergeInputChains1_1,
/*601846*/          OPC_EmitConvertToTarget, 3,
/*601848*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VSHUFPDZrmbi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*601861*/        /*SwitchType*/ 21, MVT::v2f64,// ->601884
/*601863*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*601865*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601868*/          OPC_EmitMergeInputChains1_1,
/*601869*/          OPC_EmitConvertToTarget, 3,
/*601871*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VSHUFPDZ128rmbi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*601884*/        /*SwitchType*/ 21, MVT::v4f64,// ->601907
/*601886*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*601888*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601891*/          OPC_EmitMergeInputChains1_1,
/*601892*/          OPC_EmitConvertToTarget, 3,
/*601894*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VSHUFPDZ256rmbi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*601907*/        0, // EndSwitchType
/*601908*/      0, // EndSwitchType
/*601909*/    /*Scope*/ 47, /*->601957*/
/*601910*/      OPC_MoveChild0,
/*601911*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*601914*/      OPC_RecordMemRef,
/*601915*/      OPC_RecordNode, // #0 = 'ld' chained node
/*601916*/      OPC_CheckFoldableChainNode,
/*601917*/      OPC_RecordChild1, // #1 = $src2
/*601918*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*601920*/      OPC_CheckPredicate, 9, // Predicate_load
/*601922*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*601924*/      OPC_MoveParent,
/*601925*/      OPC_RecordChild1, // #2 = $src1
/*601926*/      OPC_CheckChild2Integer, 100|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551588*/, 
/*601937*/      OPC_CheckType, MVT::v4f32,
/*601939*/      OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*601941*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*601944*/      OPC_EmitMergeInputChains1_0,
/*601945*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86Shufp:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, -28:{ *:[i8] }) - Complexity = 30
                // Dst: (MOVLPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*601957*/    /*Scope*/ 15|128,4/*527*/, /*->602486*/
/*601959*/      OPC_RecordChild0, // #0 = $src1
/*601960*/      OPC_Scope, 69|128,2/*325*/, /*->602288*/ // 2 children in Scope
/*601963*/        OPC_MoveChild1,
/*601964*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*601967*/        OPC_RecordMemRef,
/*601968*/        OPC_RecordNode, // #1 = 'ld' chained node
/*601969*/        OPC_CheckFoldableChainNode,
/*601970*/        OPC_RecordChild1, // #2 = $src2
/*601971*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*601973*/        OPC_CheckPredicate, 9, // Predicate_load
/*601975*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*601977*/        OPC_Scope, 101, /*->602080*/ // 3 children in Scope
/*601979*/          OPC_MoveParent,
/*601980*/          OPC_RecordChild2, // #3 = $src3
/*601981*/          OPC_MoveChild2,
/*601982*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*601985*/          OPC_MoveParent,
/*601986*/          OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->602010
/*601989*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*601991*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*601994*/            OPC_EmitMergeInputChains1_1,
/*601995*/            OPC_EmitConvertToTarget, 3,
/*601997*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VSHUFPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602010*/          /*SwitchType*/ 21, MVT::v8f32,// ->602033
/*602012*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*602014*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*602017*/            OPC_EmitMergeInputChains1_1,
/*602018*/            OPC_EmitConvertToTarget, 3,
/*602020*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VSHUFPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602033*/          /*SwitchType*/ 21, MVT::v2f64,// ->602056
/*602035*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*602037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*602040*/            OPC_EmitMergeInputChains1_1,
/*602041*/            OPC_EmitConvertToTarget, 3,
/*602043*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VSHUFPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602056*/          /*SwitchType*/ 21, MVT::v4f64,// ->602079
/*602058*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*602060*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*602063*/            OPC_EmitMergeInputChains1_1,
/*602064*/            OPC_EmitConvertToTarget, 3,
/*602066*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VSHUFPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602079*/          0, // EndSwitchType
/*602080*/        /*Scope*/ 57, /*->602138*/
/*602081*/          OPC_CheckPredicate, 48, // Predicate_memop
/*602083*/          OPC_MoveParent,
/*602084*/          OPC_RecordChild2, // #3 = $src3
/*602085*/          OPC_MoveChild2,
/*602086*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*602089*/          OPC_MoveParent,
/*602090*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->602114
/*602093*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*602095*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*602098*/            OPC_EmitMergeInputChains1_1,
/*602099*/            OPC_EmitConvertToTarget, 3,
/*602101*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (SHUFPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602114*/          /*SwitchType*/ 21, MVT::v2f64,// ->602137
/*602116*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*602118*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*602121*/            OPC_EmitMergeInputChains1_1,
/*602122*/            OPC_EmitConvertToTarget, 3,
/*602124*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (SHUFPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602137*/          0, // EndSwitchType
/*602138*/        /*Scope*/ 19|128,1/*147*/, /*->602287*/
/*602140*/          OPC_MoveParent,
/*602141*/          OPC_RecordChild2, // #3 = $src3
/*602142*/          OPC_MoveChild2,
/*602143*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*602146*/          OPC_MoveParent,
/*602147*/          OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->602171
/*602150*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602152*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*602155*/            OPC_EmitMergeInputChains1_1,
/*602156*/            OPC_EmitConvertToTarget, 3,
/*602158*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VSHUFPSZrmi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602171*/          /*SwitchType*/ 21, MVT::v4f32,// ->602194
/*602173*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*602175*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*602178*/            OPC_EmitMergeInputChains1_1,
/*602179*/            OPC_EmitConvertToTarget, 3,
/*602181*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VSHUFPSZ128rmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602194*/          /*SwitchType*/ 21, MVT::v8f32,// ->602217
/*602196*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*602198*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*602201*/            OPC_EmitMergeInputChains1_1,
/*602202*/            OPC_EmitConvertToTarget, 3,
/*602204*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VSHUFPSZ256rmi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602217*/          /*SwitchType*/ 21, MVT::v8f64,// ->602240
/*602219*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602221*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*602224*/            OPC_EmitMergeInputChains1_1,
/*602225*/            OPC_EmitConvertToTarget, 3,
/*602227*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VSHUFPDZrmi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602240*/          /*SwitchType*/ 21, MVT::v2f64,// ->602263
/*602242*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*602244*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*602247*/            OPC_EmitMergeInputChains1_1,
/*602248*/            OPC_EmitConvertToTarget, 3,
/*602250*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VSHUFPDZ128rmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602263*/          /*SwitchType*/ 21, MVT::v4f64,// ->602286
/*602265*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*602267*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*602270*/            OPC_EmitMergeInputChains1_1,
/*602271*/            OPC_EmitConvertToTarget, 3,
/*602273*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VSHUFPDZ256rmi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$src3)
/*602286*/          0, // EndSwitchType
/*602287*/        0, /*End of Scope*/
/*602288*/      /*Scope*/ 67|128,1/*195*/, /*->602485*/
/*602290*/        OPC_RecordChild1, // #1 = $src2
/*602291*/        OPC_RecordChild2, // #2 = $src3
/*602292*/        OPC_MoveChild2,
/*602293*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*602296*/        OPC_MoveParent,
/*602297*/        OPC_SwitchType /*6 cases */, 44, MVT::v4f32,// ->602344
/*602300*/          OPC_Scope, 13, /*->602315*/ // 3 children in Scope
/*602302*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*602304*/            OPC_EmitConvertToTarget, 2,
/*602306*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSrri), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Shufp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*602315*/          /*Scope*/ 13, /*->602329*/
/*602316*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*602318*/            OPC_EmitConvertToTarget, 2,
/*602320*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SHUFPSrri), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Shufp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (SHUFPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*602329*/          /*Scope*/ 13, /*->602343*/
/*602330*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*602332*/            OPC_EmitConvertToTarget, 2,
/*602334*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rri), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*602343*/          0, /*End of Scope*/
/*602344*/        /*SwitchType*/ 30, MVT::v8f32,// ->602376
/*602346*/          OPC_Scope, 13, /*->602361*/ // 2 children in Scope
/*602348*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*602350*/            OPC_EmitConvertToTarget, 2,
/*602352*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSYrri), 0,
                          MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Shufp:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPSYrri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*602361*/          /*Scope*/ 13, /*->602375*/
/*602362*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*602364*/            OPC_EmitConvertToTarget, 2,
/*602366*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rri), 0,
                          MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*602375*/          0, /*End of Scope*/
/*602376*/        /*SwitchType*/ 44, MVT::v2f64,// ->602422
/*602378*/          OPC_Scope, 13, /*->602393*/ // 3 children in Scope
/*602380*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*602382*/            OPC_EmitConvertToTarget, 2,
/*602384*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDrri), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Shufp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*602393*/          /*Scope*/ 13, /*->602407*/
/*602394*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*602396*/            OPC_EmitConvertToTarget, 2,
/*602398*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SHUFPDrri), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Shufp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (SHUFPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*602407*/          /*Scope*/ 13, /*->602421*/
/*602408*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*602410*/            OPC_EmitConvertToTarget, 2,
/*602412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rri), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*602421*/          0, /*End of Scope*/
/*602422*/        /*SwitchType*/ 30, MVT::v4f64,// ->602454
/*602424*/          OPC_Scope, 13, /*->602439*/ // 2 children in Scope
/*602426*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*602428*/            OPC_EmitConvertToTarget, 2,
/*602430*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDYrri), 0,
                          MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Shufp:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPDYrri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*602439*/          /*Scope*/ 13, /*->602453*/
/*602440*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*602442*/            OPC_EmitConvertToTarget, 2,
/*602444*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rri), 0,
                          MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*602453*/          0, /*End of Scope*/
/*602454*/        /*SwitchType*/ 13, MVT::v16f32,// ->602469
/*602456*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602458*/          OPC_EmitConvertToTarget, 2,
/*602460*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrri), 0,
                        MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VSHUFPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i8] }):$src3)
/*602469*/        /*SwitchType*/ 13, MVT::v8f64,// ->602484
/*602471*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602473*/          OPC_EmitConvertToTarget, 2,
/*602475*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrri), 0,
                        MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VSHUFPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i8] }):$src3)
/*602484*/        0, // EndSwitchType
/*602485*/      0, /*End of Scope*/
/*602486*/    0, /*End of Scope*/
/*602487*/  /*SwitchOpcode*/ 9|128,2/*265*/, TARGET_VAL(X86ISD::SCALAR_SINT_TO_FP_RND),// ->602756
/*602491*/    OPC_RecordChild0, // #0 = $src1
/*602492*/    OPC_Scope, 110, /*->602604*/ // 2 children in Scope
/*602494*/      OPC_MoveChild1,
/*602495*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*602498*/      OPC_RecordMemRef,
/*602499*/      OPC_RecordNode, // #1 = 'ld' chained node
/*602500*/      OPC_CheckFoldableChainNode,
/*602501*/      OPC_RecordChild1, // #2 = $src2
/*602502*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*602504*/      OPC_SwitchType /*2 cases */, 47, MVT::i32,// ->602554
/*602507*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*602509*/        OPC_MoveParent,
/*602510*/        OPC_CheckChild2Integer, 4, 
/*602512*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->602533
/*602515*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602517*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*602520*/          OPC_EmitMergeInputChains1_1,
/*602521*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86SintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VCVTSI2SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*602533*/        /*SwitchType*/ 18, MVT::v2f64,// ->602553
/*602535*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602537*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*602540*/          OPC_EmitMergeInputChains1_1,
/*602541*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86SintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VCVTSI2SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*602553*/        0, // EndSwitchType
/*602554*/      /*SwitchType*/ 47, MVT::i64,// ->602603
/*602556*/        OPC_CheckPredicate, 9, // Predicate_load
/*602558*/        OPC_MoveParent,
/*602559*/        OPC_CheckChild2Integer, 4, 
/*602561*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->602582
/*602564*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602566*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*602569*/          OPC_EmitMergeInputChains1_1,
/*602570*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86SintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VCVTSI642SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*602582*/        /*SwitchType*/ 18, MVT::v2f64,// ->602602
/*602584*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602586*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*602589*/          OPC_EmitMergeInputChains1_1,
/*602590*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86SintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VCVTSI642SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*602602*/        0, // EndSwitchType
/*602603*/      0, // EndSwitchType
/*602604*/    /*Scope*/ 21|128,1/*149*/, /*->602755*/
/*602606*/      OPC_RecordChild1, // #1 = $src2
/*602607*/      OPC_Scope, 72, /*->602681*/ // 2 children in Scope
/*602609*/        OPC_CheckChild1Type, MVT::i32,
/*602611*/        OPC_Scope, 28, /*->602641*/ // 2 children in Scope
/*602613*/          OPC_CheckChild2Integer, 4, 
/*602615*/          OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->602628
/*602618*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602620*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrr_Int), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86SintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSI2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2)
/*602628*/          /*SwitchType*/ 10, MVT::v2f64,// ->602640
/*602630*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602632*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDZrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86SintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR32:{ *:[i32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSI2SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR32:{ *:[i32] }:$src2)
/*602640*/          0, // EndSwitchType
/*602641*/        /*Scope*/ 38, /*->602680*/
/*602642*/          OPC_RecordChild2, // #2 = $rc
/*602643*/          OPC_MoveChild2,
/*602644*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*602647*/          OPC_MoveParent,
/*602648*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->602664
/*602651*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602653*/            OPC_EmitConvertToTarget, 2,
/*602655*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrrb_Int), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86SintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                      // Dst: (VCVTSI2SSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$rc)
/*602664*/          /*SwitchType*/ 13, MVT::v2f64,// ->602679
/*602666*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602668*/            OPC_EmitConvertToTarget, 2,
/*602670*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDZrrb_Int), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86SintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                      // Dst: (VCVTSI2SDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$rc)
/*602679*/          0, // EndSwitchType
/*602680*/        0, /*End of Scope*/
/*602681*/      /*Scope*/ 72, /*->602754*/
/*602682*/        OPC_CheckChild1Type, MVT::i64,
/*602684*/        OPC_Scope, 28, /*->602714*/ // 2 children in Scope
/*602686*/          OPC_CheckChild2Integer, 4, 
/*602688*/          OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->602701
/*602691*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602693*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrr_Int), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86SintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSI642SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2)
/*602701*/          /*SwitchType*/ 10, MVT::v2f64,// ->602713
/*602703*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602705*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86SintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTSI642SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2)
/*602713*/          0, // EndSwitchType
/*602714*/        /*Scope*/ 38, /*->602753*/
/*602715*/          OPC_RecordChild2, // #2 = $rc
/*602716*/          OPC_MoveChild2,
/*602717*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*602720*/          OPC_MoveParent,
/*602721*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->602737
/*602724*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602726*/            OPC_EmitConvertToTarget, 2,
/*602728*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrrb_Int), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86SintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                      // Dst: (VCVTSI642SSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2, (imm:{ *:[i32] }):$rc)
/*602737*/          /*SwitchType*/ 13, MVT::v2f64,// ->602752
/*602739*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602741*/            OPC_EmitConvertToTarget, 2,
/*602743*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrrb_Int), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86SintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                      // Dst: (VCVTSI642SDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2, (imm:{ *:[i32] }):$rc)
/*602752*/          0, // EndSwitchType
/*602753*/        0, /*End of Scope*/
/*602754*/      0, /*End of Scope*/
/*602755*/    0, /*End of Scope*/
/*602756*/  /*SwitchOpcode*/ 120|128,1/*248*/, TARGET_VAL(X86ISD::SCALAR_UINT_TO_FP_RND),// ->603008
/*602760*/    OPC_RecordChild0, // #0 = $src1
/*602761*/    OPC_Scope, 110, /*->602873*/ // 2 children in Scope
/*602763*/      OPC_MoveChild1,
/*602764*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*602767*/      OPC_RecordMemRef,
/*602768*/      OPC_RecordNode, // #1 = 'ld' chained node
/*602769*/      OPC_CheckFoldableChainNode,
/*602770*/      OPC_RecordChild1, // #2 = $src2
/*602771*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*602773*/      OPC_SwitchType /*2 cases */, 47, MVT::i32,// ->602823
/*602776*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*602778*/        OPC_MoveParent,
/*602779*/        OPC_CheckChild2Integer, 4, 
/*602781*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->602802
/*602784*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602786*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*602789*/          OPC_EmitMergeInputChains1_1,
/*602790*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86UintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VCVTUSI2SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*602802*/        /*SwitchType*/ 18, MVT::v2f64,// ->602822
/*602804*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602806*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*602809*/          OPC_EmitMergeInputChains1_1,
/*602810*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86UintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VCVTUSI2SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*602822*/        0, // EndSwitchType
/*602823*/      /*SwitchType*/ 47, MVT::i64,// ->602872
/*602825*/        OPC_CheckPredicate, 9, // Predicate_load
/*602827*/        OPC_MoveParent,
/*602828*/        OPC_CheckChild2Integer, 4, 
/*602830*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->602851
/*602833*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602835*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*602838*/          OPC_EmitMergeInputChains1_1,
/*602839*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86UintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VCVTUSI642SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*602851*/        /*SwitchType*/ 18, MVT::v2f64,// ->602871
/*602853*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602855*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*602858*/          OPC_EmitMergeInputChains1_1,
/*602859*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86UintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 4:{ *:[i32] }) - Complexity = 30
                    // Dst: (VCVTUSI642SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*602871*/        0, // EndSwitchType
/*602872*/      0, // EndSwitchType
/*602873*/    /*Scope*/ 4|128,1/*132*/, /*->603007*/
/*602875*/      OPC_RecordChild1, // #1 = $src2
/*602876*/      OPC_Scope, 55, /*->602933*/ // 2 children in Scope
/*602878*/        OPC_CheckChild1Type, MVT::i32,
/*602880*/        OPC_Scope, 28, /*->602910*/ // 2 children in Scope
/*602882*/          OPC_CheckChild2Integer, 4, 
/*602884*/          OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->602897
/*602887*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602889*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrr_Int), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86UintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTUSI2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2)
/*602897*/          /*SwitchType*/ 10, MVT::v2f64,// ->602909
/*602899*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602901*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SDZrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86UintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR32:{ *:[i32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTUSI2SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR32:{ *:[i32] }:$src2)
/*602909*/          0, // EndSwitchType
/*602910*/        /*Scope*/ 21, /*->602932*/
/*602911*/          OPC_RecordChild2, // #2 = $rc
/*602912*/          OPC_MoveChild2,
/*602913*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*602916*/          OPC_MoveParent,
/*602917*/          OPC_CheckType, MVT::v4f32,
/*602919*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602921*/          OPC_EmitConvertToTarget, 2,
/*602923*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrrb_Int), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86UintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                    // Dst: (VCVTUSI2SSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$rc)
/*602932*/        0, /*End of Scope*/
/*602933*/      /*Scope*/ 72, /*->603006*/
/*602934*/        OPC_CheckChild1Type, MVT::i64,
/*602936*/        OPC_Scope, 28, /*->602966*/ // 2 children in Scope
/*602938*/          OPC_CheckChild2Integer, 4, 
/*602940*/          OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->602953
/*602943*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602945*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrr_Int), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (X86UintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTUSI642SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2)
/*602953*/          /*SwitchType*/ 10, MVT::v2f64,// ->602965
/*602955*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602957*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrr_Int), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (X86UintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCVTUSI642SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2)
/*602965*/          0, // EndSwitchType
/*602966*/        /*Scope*/ 38, /*->603005*/
/*602967*/          OPC_RecordChild2, // #2 = $rc
/*602968*/          OPC_MoveChild2,
/*602969*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*602972*/          OPC_MoveParent,
/*602973*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->602989
/*602976*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602978*/            OPC_EmitConvertToTarget, 2,
/*602980*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrrb_Int), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86UintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                      // Dst: (VCVTUSI642SSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2, (imm:{ *:[i32] }):$rc)
/*602989*/          /*SwitchType*/ 13, MVT::v2f64,// ->603004
/*602991*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*602993*/            OPC_EmitConvertToTarget, 2,
/*602995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrrb_Int), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86UintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                      // Dst: (VCVTUSI642SDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2, (imm:{ *:[i32] }):$rc)
/*603004*/          0, // EndSwitchType
/*603005*/        0, /*End of Scope*/
/*603006*/      0, /*End of Scope*/
/*603007*/    0, /*End of Scope*/
/*603008*/  /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(X86ISD::CMPP),// ->603485
/*603012*/    OPC_Scope, 54|128,1/*182*/, /*->603197*/ // 2 children in Scope
/*603015*/      OPC_MoveChild0,
/*603016*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*603019*/      OPC_RecordMemRef,
/*603020*/      OPC_RecordNode, // #0 = 'ld' chained node
/*603021*/      OPC_CheckFoldableChainNode,
/*603022*/      OPC_RecordChild1, // #1 = $src2
/*603023*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*603025*/      OPC_CheckPredicate, 9, // Predicate_load
/*603027*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*603029*/      OPC_Scope, 104, /*->603135*/ // 2 children in Scope
/*603031*/        OPC_MoveParent,
/*603032*/        OPC_RecordChild1, // #2 = $src1
/*603033*/        OPC_RecordChild2, // #3 = $cc
/*603034*/        OPC_MoveChild2,
/*603035*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*603038*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*603040*/        OPC_MoveParent,
/*603041*/        OPC_SwitchType /*4 cases */, 21, MVT::v4f64,// ->603065
/*603044*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603046*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603049*/          OPC_EmitMergeInputChains1_0,
/*603050*/          OPC_EmitConvertToTarget, 3,
/*603052*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpp:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603065*/        /*SwitchType*/ 21, MVT::v8f32,// ->603088
/*603067*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603069*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603072*/          OPC_EmitMergeInputChains1_0,
/*603073*/          OPC_EmitConvertToTarget, 3,
/*603075*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpp:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603088*/        /*SwitchType*/ 21, MVT::v2f64,// ->603111
/*603090*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603092*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603095*/          OPC_EmitMergeInputChains1_0,
/*603096*/          OPC_EmitConvertToTarget, 3,
/*603098*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpp:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603111*/        /*SwitchType*/ 21, MVT::v4f32,// ->603134
/*603113*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603115*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603118*/          OPC_EmitMergeInputChains1_0,
/*603119*/          OPC_EmitConvertToTarget, 3,
/*603121*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpp:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603134*/        0, // EndSwitchType
/*603135*/      /*Scope*/ 60, /*->603196*/
/*603136*/        OPC_CheckPredicate, 48, // Predicate_memop
/*603138*/        OPC_MoveParent,
/*603139*/        OPC_RecordChild1, // #2 = $src1
/*603140*/        OPC_RecordChild2, // #3 = $cc
/*603141*/        OPC_MoveChild2,
/*603142*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*603145*/        OPC_CheckPredicate, 45, // Predicate_CommutableCMPCC
/*603147*/        OPC_MoveParent,
/*603148*/        OPC_SwitchType /*2 cases */, 21, MVT::v2f64,// ->603172
/*603151*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*603153*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603156*/          OPC_EmitMergeInputChains1_0,
/*603157*/          OPC_EmitConvertToTarget, 3,
/*603159*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpp:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (CMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603172*/        /*SwitchType*/ 21, MVT::v4f32,// ->603195
/*603174*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*603176*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603179*/          OPC_EmitMergeInputChains1_0,
/*603180*/          OPC_EmitConvertToTarget, 3,
/*603182*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86cmpp:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1, (imm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (CMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603195*/        0, // EndSwitchType
/*603196*/      0, /*End of Scope*/
/*603197*/    /*Scope*/ 29|128,2/*285*/, /*->603484*/
/*603199*/      OPC_RecordChild0, // #0 = $src1
/*603200*/      OPC_Scope, 48|128,1/*176*/, /*->603379*/ // 2 children in Scope
/*603203*/        OPC_MoveChild1,
/*603204*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*603207*/        OPC_RecordMemRef,
/*603208*/        OPC_RecordNode, // #1 = 'ld' chained node
/*603209*/        OPC_CheckFoldableChainNode,
/*603210*/        OPC_RecordChild1, // #2 = $src2
/*603211*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*603213*/        OPC_CheckPredicate, 9, // Predicate_load
/*603215*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*603217*/        OPC_Scope, 101, /*->603320*/ // 2 children in Scope
/*603219*/          OPC_MoveParent,
/*603220*/          OPC_RecordChild2, // #3 = $cc
/*603221*/          OPC_MoveChild2,
/*603222*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*603225*/          OPC_MoveParent,
/*603226*/          OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->603250
/*603229*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603231*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603234*/            OPC_EmitMergeInputChains1_1,
/*603235*/            OPC_EmitConvertToTarget, 3,
/*603237*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603250*/          /*SwitchType*/ 21, MVT::v2f64,// ->603273
/*603252*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603254*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603257*/            OPC_EmitMergeInputChains1_1,
/*603258*/            OPC_EmitConvertToTarget, 3,
/*603260*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603273*/          /*SwitchType*/ 21, MVT::v8f32,// ->603296
/*603275*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603277*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603280*/            OPC_EmitMergeInputChains1_1,
/*603281*/            OPC_EmitConvertToTarget, 3,
/*603283*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86cmpp:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603296*/          /*SwitchType*/ 21, MVT::v4f64,// ->603319
/*603298*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603300*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603303*/            OPC_EmitMergeInputChains1_1,
/*603304*/            OPC_EmitConvertToTarget, 3,
/*603306*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86cmpp:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603319*/          0, // EndSwitchType
/*603320*/        /*Scope*/ 57, /*->603378*/
/*603321*/          OPC_CheckPredicate, 48, // Predicate_memop
/*603323*/          OPC_MoveParent,
/*603324*/          OPC_RecordChild2, // #3 = $cc
/*603325*/          OPC_MoveChild2,
/*603326*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*603329*/          OPC_MoveParent,
/*603330*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->603354
/*603333*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*603335*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603338*/            OPC_EmitMergeInputChains1_1,
/*603339*/            OPC_EmitConvertToTarget, 3,
/*603341*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (CMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603354*/          /*SwitchType*/ 21, MVT::v2f64,// ->603377
/*603356*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*603358*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*603361*/            OPC_EmitMergeInputChains1_1,
/*603362*/            OPC_EmitConvertToTarget, 3,
/*603364*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>, (imm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (CMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (imm:{ *:[i8] }):$cc)
/*603377*/          0, // EndSwitchType
/*603378*/        0, /*End of Scope*/
/*603379*/      /*Scope*/ 103, /*->603483*/
/*603380*/        OPC_RecordChild1, // #1 = $src2
/*603381*/        OPC_RecordChild2, // #2 = $cc
/*603382*/        OPC_MoveChild2,
/*603383*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*603386*/        OPC_MoveParent,
/*603387*/        OPC_SwitchType /*4 cases */, 30, MVT::v4f32,// ->603420
/*603390*/          OPC_Scope, 13, /*->603405*/ // 2 children in Scope
/*603392*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603394*/            OPC_EmitConvertToTarget, 2,
/*603396*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSrri), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*603405*/          /*Scope*/ 13, /*->603419*/
/*603406*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*603408*/            OPC_EmitConvertToTarget, 2,
/*603410*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPSrri), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (CMPPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*603419*/          0, /*End of Scope*/
/*603420*/        /*SwitchType*/ 30, MVT::v2f64,// ->603452
/*603422*/          OPC_Scope, 13, /*->603437*/ // 2 children in Scope
/*603424*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603426*/            OPC_EmitConvertToTarget, 2,
/*603428*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDrri), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*603437*/          /*Scope*/ 13, /*->603451*/
/*603438*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*603440*/            OPC_EmitConvertToTarget, 2,
/*603442*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPDrri), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (CMPPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*603451*/          0, /*End of Scope*/
/*603452*/        /*SwitchType*/ 13, MVT::v8f32,// ->603467
/*603454*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603456*/          OPC_EmitConvertToTarget, 2,
/*603458*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSYrri), 0,
                        MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86cmpp:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPSYrri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$cc)
/*603467*/        /*SwitchType*/ 13, MVT::v4f64,// ->603482
/*603469*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*603471*/          OPC_EmitConvertToTarget, 2,
/*603473*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDYrri), 0,
                        MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (X86cmpp:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPDYrri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (imm:{ *:[i8] }):$cc)
/*603482*/        0, // EndSwitchType
/*603483*/      0, /*End of Scope*/
/*603484*/    0, /*End of Scope*/
/*603485*/  /*SwitchOpcode*/ 115|128,1/*243*/, TARGET_VAL(X86ISD::MOVDDUP),// ->603732
/*603489*/    OPC_Scope, 48|128,1/*176*/, /*->603668*/ // 2 children in Scope
/*603492*/      OPC_MoveChild0,
/*603493*/      OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->603553
/*603497*/        OPC_MoveChild0,
/*603498*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*603501*/        OPC_RecordMemRef,
/*603502*/        OPC_RecordNode, // #0 = 'ld' chained node
/*603503*/        OPC_CheckFoldableChainNode,
/*603504*/        OPC_RecordChild1, // #1 = $src
/*603505*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*603507*/        OPC_CheckPredicate, 9, // Predicate_load
/*603509*/        OPC_CheckType, MVT::f64,
/*603511*/        OPC_MoveParent,
/*603512*/        OPC_MoveParent,
/*603513*/        OPC_CheckType, MVT::v2f64,
/*603515*/        OPC_Scope, 17, /*->603534*/ // 2 children in Scope
/*603517*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*603519*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*603522*/          OPC_EmitMergeInputChains1_0,
/*603523*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*603534*/        /*Scope*/ 17, /*->603552*/
/*603535*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*603537*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*603540*/          OPC_EmitMergeInputChains1_0,
/*603541*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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)
/*603552*/        0, /*End of Scope*/
/*603553*/      /*SwitchOpcode*/ 111, TARGET_VAL(ISD::LOAD),// ->603667
/*603556*/        OPC_RecordMemRef,
/*603557*/        OPC_RecordNode, // #0 = 'ld' chained node
/*603558*/        OPC_RecordChild1, // #1 = $src
/*603559*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*603561*/        OPC_CheckPredicate, 9, // Predicate_load
/*603563*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*603565*/        OPC_MoveParent,
/*603566*/        OPC_SwitchType /*3 cases */, 38, MVT::v4f64,// ->603607
/*603569*/          OPC_Scope, 17, /*->603588*/ // 2 children in Scope
/*603571*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*603573*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*603576*/            OPC_EmitMergeInputChains1_0,
/*603577*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VMOVDDUPYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*603588*/          /*Scope*/ 17, /*->603606*/
/*603589*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*603591*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*603594*/            OPC_EmitMergeInputChains1_0,
/*603595*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Movddup:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VMOVDDUPZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)
/*603606*/          0, /*End of Scope*/
/*603607*/        /*SwitchType*/ 38, MVT::v2f64,// ->603647
/*603609*/          OPC_Scope, 17, /*->603628*/ // 2 children in Scope
/*603611*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*603613*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*603616*/            OPC_EmitMergeInputChains1_0,
/*603617*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (VMOVDDUPrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*603628*/          /*Scope*/ 17, /*->603646*/
/*603629*/            OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*603631*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*603634*/            OPC_EmitMergeInputChains1_0,
/*603635*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                          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_vecload>>) - Complexity = 25
                      // Dst: (MOVDDUPrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*603646*/          0, /*End of Scope*/
/*603647*/        /*SwitchType*/ 17, MVT::v8f64,// ->603666
/*603649*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*603651*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*603654*/          OPC_EmitMergeInputChains1_0,
/*603655*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movddup:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VMOVDDUPZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)
/*603666*/        0, // EndSwitchType
/*603667*/      0, // EndSwitchOpcode
/*603668*/    /*Scope*/ 62, /*->603731*/
/*603669*/      OPC_RecordChild0, // #0 = $src
/*603670*/      OPC_SwitchType /*3 cases */, 22, MVT::v2f64,// ->603695
/*603673*/        OPC_Scope, 9, /*->603684*/ // 2 children in Scope
/*603675*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*603677*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86Movddup:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VMOVDDUPrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/*603684*/        /*Scope*/ 9, /*->603694*/
/*603685*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*603687*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDDUPrr), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (X86Movddup:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (MOVDDUPrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/*603694*/        0, /*End of Scope*/
/*603695*/      /*SwitchType*/ 22, MVT::v4f64,// ->603719
/*603697*/        OPC_Scope, 9, /*->603708*/ // 2 children in Scope
/*603699*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*603701*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPYrr), 0,
                        MVT::v4f64, 1/*#Ops*/, 0, 
                    // Src: (X86Movddup:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VMOVDDUPYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src)
/*603708*/        /*Scope*/ 9, /*->603718*/
/*603709*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*603711*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ256rr), 0,
                        MVT::v4f64, 1/*#Ops*/, 0, 
                    // Src: (X86Movddup:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1) - Complexity = 3
                    // Dst: (VMOVDDUPZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1)
/*603718*/        0, /*End of Scope*/
/*603719*/      /*SwitchType*/ 9, MVT::v8f64,// ->603730
/*603721*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*603723*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZrr), 0,
                      MVT::v8f64, 1/*#Ops*/, 0, 
                  // Src: (X86Movddup:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1) - Complexity = 3
                  // Dst: (VMOVDDUPZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1)
/*603730*/      0, // EndSwitchType
/*603731*/    0, /*End of Scope*/
/*603732*/  /*SwitchOpcode*/ 37|128,4/*549*/, TARGET_VAL(X86ISD::VPERMILPV),// ->604285
/*603736*/    OPC_RecordChild0, // #0 = $src1
/*603737*/    OPC_Scope, 27|128,3/*411*/, /*->604151*/ // 2 children in Scope
/*603740*/      OPC_MoveChild1,
/*603741*/      OPC_SwitchOpcode /*3 cases */, 4|128,1/*132*/, TARGET_VAL(ISD::BITCAST),// ->603878
/*603746*/        OPC_MoveChild0,
/*603747*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*603750*/        OPC_RecordMemRef,
/*603751*/        OPC_RecordNode, // #1 = 'ld' chained node
/*603752*/        OPC_CheckFoldableChainNode,
/*603753*/        OPC_RecordChild1, // #2 = $src2
/*603754*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*603756*/        OPC_CheckPredicate, 9, // Predicate_load
/*603758*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*603760*/        OPC_SwitchType /*3 cases */, 44, MVT::v2i64,// ->603807
/*603763*/          OPC_MoveParent,
/*603764*/          OPC_MoveParent,
/*603765*/          OPC_CheckType, MVT::v4f32,
/*603767*/          OPC_Scope, 18, /*->603787*/ // 2 children in Scope
/*603769*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*603771*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*603774*/            OPC_EmitMergeInputChains1_1,
/*603775*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMILPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*603787*/          /*Scope*/ 18, /*->603806*/
/*603788*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*603790*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*603793*/            OPC_EmitMergeInputChains1_1,
/*603794*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMILPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*603806*/          0, /*End of Scope*/
/*603807*/        /*SwitchType*/ 44, MVT::v4i64,// ->603853
/*603809*/          OPC_MoveParent,
/*603810*/          OPC_MoveParent,
/*603811*/          OPC_CheckType, MVT::v8f32,
/*603813*/          OPC_Scope, 18, /*->603833*/ // 2 children in Scope
/*603815*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*603817*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*603820*/            OPC_EmitMergeInputChains1_1,
/*603821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMILPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*603833*/          /*Scope*/ 18, /*->603852*/
/*603834*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*603836*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*603839*/            OPC_EmitMergeInputChains1_1,
/*603840*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                      // Dst: (VPERMILPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*603852*/          0, /*End of Scope*/
/*603853*/        /*SwitchType*/ 22, MVT::v8i64,// ->603877
/*603855*/          OPC_MoveParent,
/*603856*/          OPC_MoveParent,
/*603857*/          OPC_CheckType, MVT::v16f32,
/*603859*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*603861*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*603864*/          OPC_EmitMergeInputChains1_1,
/*603865*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86VPermilpv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (bitconvert:{ *:[v16i32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>)) - Complexity = 28
                    // Dst: (VPERMILPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*603877*/        0, // EndSwitchType
/*603878*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST),// ->604030
/*603882*/        OPC_MoveChild0,
/*603883*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*603886*/        OPC_RecordMemRef,
/*603887*/        OPC_RecordNode, // #1 = 'ld' chained node
/*603888*/        OPC_CheckFoldableChainNode,
/*603889*/        OPC_RecordChild1, // #2 = $src2
/*603890*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*603892*/        OPC_SwitchType /*2 cases */, 66, MVT::i32,// ->603961
/*603895*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*603897*/          OPC_MoveParent,
/*603898*/          OPC_MoveParent,
/*603899*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->603920
/*603902*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*603904*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*603907*/            OPC_EmitMergeInputChains1_1,
/*603908*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPERMILPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*603920*/          /*SwitchType*/ 18, MVT::v4f32,// ->603940
/*603922*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*603924*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*603927*/            OPC_EmitMergeInputChains1_1,
/*603928*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPERMILPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*603940*/          /*SwitchType*/ 18, MVT::v8f32,// ->603960
/*603942*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*603944*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*603947*/            OPC_EmitMergeInputChains1_1,
/*603948*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                      // Dst: (VPERMILPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*603960*/          0, // EndSwitchType
/*603961*/        /*SwitchType*/ 66, MVT::i64,// ->604029
/*603963*/          OPC_CheckPredicate, 9, // Predicate_load
/*603965*/          OPC_MoveParent,
/*603966*/          OPC_MoveParent,
/*603967*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->603988
/*603970*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*603972*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*603975*/            OPC_EmitMergeInputChains1_1,
/*603976*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMILPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*603988*/          /*SwitchType*/ 18, MVT::v2f64,// ->604008
/*603990*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*603992*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*603995*/            OPC_EmitMergeInputChains1_1,
/*603996*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMILPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*604008*/          /*SwitchType*/ 18, MVT::v4f64,// ->604028
/*604010*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604012*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*604015*/            OPC_EmitMergeInputChains1_1,
/*604016*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VPERMILPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*604028*/          0, // EndSwitchType
/*604029*/        0, // EndSwitchType
/*604030*/      /*SwitchOpcode*/ 117, TARGET_VAL(ISD::LOAD),// ->604150
/*604033*/        OPC_RecordMemRef,
/*604034*/        OPC_RecordNode, // #1 = 'ld' chained node
/*604035*/        OPC_CheckFoldableChainNode,
/*604036*/        OPC_RecordChild1, // #2 = $src2
/*604037*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*604039*/        OPC_CheckPredicate, 9, // Predicate_load
/*604041*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*604043*/        OPC_MoveParent,
/*604044*/        OPC_SwitchType /*3 cases */, 40, MVT::v2f64,// ->604087
/*604047*/          OPC_Scope, 18, /*->604067*/ // 2 children in Scope
/*604049*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*604051*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*604054*/            OPC_EmitMergeInputChains1_1,
/*604055*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPERMILPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*604067*/          /*Scope*/ 18, /*->604086*/
/*604068*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604070*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*604073*/            OPC_EmitMergeInputChains1_1,
/*604074*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPERMILPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*604086*/          0, /*End of Scope*/
/*604087*/        /*SwitchType*/ 40, MVT::v4f64,// ->604129
/*604089*/          OPC_Scope, 18, /*->604109*/ // 2 children in Scope
/*604091*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*604093*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*604096*/            OPC_EmitMergeInputChains1_1,
/*604097*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPERMILPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*604109*/          /*Scope*/ 18, /*->604128*/
/*604110*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604112*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*604115*/            OPC_EmitMergeInputChains1_1,
/*604116*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86VPermilpv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                      // Dst: (VPERMILPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*604128*/          0, /*End of Scope*/
/*604129*/        /*SwitchType*/ 18, MVT::v8f64,// ->604149
/*604131*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*604133*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*604136*/          OPC_EmitMergeInputChains1_1,
/*604137*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86VPermilpv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VPERMILPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*604149*/        0, // EndSwitchType
/*604150*/      0, // EndSwitchOpcode
/*604151*/    /*Scope*/ 3|128,1/*131*/, /*->604284*/
/*604153*/      OPC_RecordChild1, // #1 = $src2
/*604154*/      OPC_SwitchType /*6 cases */, 24, MVT::v4f32,// ->604181
/*604157*/        OPC_Scope, 10, /*->604169*/ // 2 children in Scope
/*604159*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*604161*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpv:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPERMILPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*604169*/        /*Scope*/ 10, /*->604180*/
/*604170*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604172*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPERMILPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*604180*/        0, /*End of Scope*/
/*604181*/      /*SwitchType*/ 24, MVT::v8f32,// ->604207
/*604183*/        OPC_Scope, 10, /*->604195*/ // 2 children in Scope
/*604185*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*604187*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSYrr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpv:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPERMILPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*604195*/        /*Scope*/ 10, /*->604206*/
/*604196*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604198*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPERMILPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*604206*/        0, /*End of Scope*/
/*604207*/      /*SwitchType*/ 24, MVT::v2f64,// ->604233
/*604209*/        OPC_Scope, 10, /*->604221*/ // 2 children in Scope
/*604211*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*604213*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpv:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPERMILPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*604221*/        /*Scope*/ 10, /*->604232*/
/*604222*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604224*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPERMILPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*604232*/        0, /*End of Scope*/
/*604233*/      /*SwitchType*/ 24, MVT::v4f64,// ->604259
/*604235*/        OPC_Scope, 10, /*->604247*/ // 2 children in Scope
/*604237*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*604239*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDYrr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpv:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPERMILPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*604247*/        /*Scope*/ 10, /*->604258*/
/*604248*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604250*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPERMILPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*604258*/        0, /*End of Scope*/
/*604259*/      /*SwitchType*/ 10, MVT::v16f32,// ->604271
/*604261*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*604263*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrr), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermilpv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPERMILPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*604271*/      /*SwitchType*/ 10, MVT::v8f64,// ->604283
/*604273*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*604275*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrr), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermilpv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPERMILPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*604283*/      0, // EndSwitchType
/*604284*/    0, /*End of Scope*/
/*604285*/  /*SwitchOpcode*/ 77|128,15/*1997*/, TARGET_VAL(X86ISD::FMADDSUB),// ->606286
/*604289*/    OPC_Scope, 66|128,2/*322*/, /*->604614*/ // 13 children in Scope
/*604292*/      OPC_RecordChild0, // #0 = $src2
/*604293*/      OPC_Scope, 29|128,1/*157*/, /*->604453*/ // 2 children in Scope
/*604296*/        OPC_RecordChild1, // #1 = $src1
/*604297*/        OPC_MoveChild2,
/*604298*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*604301*/        OPC_MoveChild0,
/*604302*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*604305*/        OPC_RecordMemRef,
/*604306*/        OPC_RecordNode, // #2 = 'ld' chained node
/*604307*/        OPC_CheckFoldableChainNode,
/*604308*/        OPC_RecordChild1, // #3 = $src3
/*604309*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*604311*/        OPC_CheckPredicate, 9, // Predicate_load
/*604313*/        OPC_SwitchType /*2 cases */, 67, MVT::f32,// ->604383
/*604316*/          OPC_MoveParent,
/*604317*/          OPC_MoveParent,
/*604318*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->604340
/*604321*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*604323*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604326*/            OPC_EmitMergeInputChains1_2,
/*604327*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMADDSUB213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604340*/          /*SwitchType*/ 19, MVT::v8f32,// ->604361
/*604342*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604344*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604347*/            OPC_EmitMergeInputChains1_2,
/*604348*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMADDSUB213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604361*/          /*SwitchType*/ 19, MVT::v4f32,// ->604382
/*604363*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604365*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604368*/            OPC_EmitMergeInputChains1_2,
/*604369*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMADDSUB213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604382*/          0, // EndSwitchType
/*604383*/        /*SwitchType*/ 67, MVT::f64,// ->604452
/*604385*/          OPC_MoveParent,
/*604386*/          OPC_MoveParent,
/*604387*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->604409
/*604390*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*604392*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604395*/            OPC_EmitMergeInputChains1_2,
/*604396*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMADDSUB213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604409*/          /*SwitchType*/ 19, MVT::v4f64,// ->604430
/*604411*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604413*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604416*/            OPC_EmitMergeInputChains1_2,
/*604417*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMADDSUB213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604430*/          /*SwitchType*/ 19, MVT::v2f64,// ->604451
/*604432*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604434*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604437*/            OPC_EmitMergeInputChains1_2,
/*604438*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMADDSUB213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604451*/          0, // EndSwitchType
/*604452*/        0, // EndSwitchType
/*604453*/      /*Scope*/ 30|128,1/*158*/, /*->604613*/
/*604455*/        OPC_MoveChild1,
/*604456*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*604459*/        OPC_MoveChild0,
/*604460*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*604463*/        OPC_RecordMemRef,
/*604464*/        OPC_RecordNode, // #1 = 'ld' chained node
/*604465*/        OPC_CheckFoldableChainNode,
/*604466*/        OPC_RecordChild1, // #2 = $src3
/*604467*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*604469*/        OPC_CheckPredicate, 9, // Predicate_load
/*604471*/        OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->604542
/*604474*/          OPC_MoveParent,
/*604475*/          OPC_MoveParent,
/*604476*/          OPC_RecordChild2, // #3 = $src1
/*604477*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->604499
/*604480*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*604482*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604485*/            OPC_EmitMergeInputChains1_1,
/*604486*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                      // Dst: (VFMADDSUB231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604499*/          /*SwitchType*/ 19, MVT::v8f32,// ->604520
/*604501*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604503*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604506*/            OPC_EmitMergeInputChains1_1,
/*604507*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                      // Dst: (VFMADDSUB231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604520*/          /*SwitchType*/ 19, MVT::v4f32,// ->604541
/*604522*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604524*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604527*/            OPC_EmitMergeInputChains1_1,
/*604528*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                      // Dst: (VFMADDSUB231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604541*/          0, // EndSwitchType
/*604542*/        /*SwitchType*/ 68, MVT::f64,// ->604612
/*604544*/          OPC_MoveParent,
/*604545*/          OPC_MoveParent,
/*604546*/          OPC_RecordChild2, // #3 = $src1
/*604547*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->604569
/*604550*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*604552*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604555*/            OPC_EmitMergeInputChains1_1,
/*604556*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                      // Dst: (VFMADDSUB231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604569*/          /*SwitchType*/ 19, MVT::v4f64,// ->604590
/*604571*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604573*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604576*/            OPC_EmitMergeInputChains1_1,
/*604577*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                      // Dst: (VFMADDSUB231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604590*/          /*SwitchType*/ 19, MVT::v2f64,// ->604611
/*604592*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604594*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604597*/            OPC_EmitMergeInputChains1_1,
/*604598*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                      // Dst: (VFMADDSUB231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604611*/          0, // EndSwitchType
/*604612*/        0, // EndSwitchType
/*604613*/      0, /*End of Scope*/
/*604614*/    /*Scope*/ 32|128,1/*160*/, /*->604776*/
/*604616*/      OPC_MoveChild0,
/*604617*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*604620*/      OPC_MoveChild0,
/*604621*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*604624*/      OPC_RecordMemRef,
/*604625*/      OPC_RecordNode, // #0 = 'ld' chained node
/*604626*/      OPC_CheckFoldableChainNode,
/*604627*/      OPC_RecordChild1, // #1 = $src3
/*604628*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*604630*/      OPC_CheckPredicate, 9, // Predicate_load
/*604632*/      OPC_SwitchType /*2 cases */, 69, MVT::f32,// ->604704
/*604635*/        OPC_MoveParent,
/*604636*/        OPC_MoveParent,
/*604637*/        OPC_RecordChild1, // #2 = $src1
/*604638*/        OPC_RecordChild2, // #3 = $src2
/*604639*/        OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->604661
/*604642*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*604644*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604647*/          OPC_EmitMergeInputChains1_0,
/*604648*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 28
                    // Dst: (VFMADDSUB132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604661*/        /*SwitchType*/ 19, MVT::v8f32,// ->604682
/*604663*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604665*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604668*/          OPC_EmitMergeInputChains1_0,
/*604669*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 28
                    // Dst: (VFMADDSUB132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604682*/        /*SwitchType*/ 19, MVT::v4f32,// ->604703
/*604684*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604686*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604689*/          OPC_EmitMergeInputChains1_0,
/*604690*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 28
                    // Dst: (VFMADDSUB132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604703*/        0, // EndSwitchType
/*604704*/      /*SwitchType*/ 69, MVT::f64,// ->604775
/*604706*/        OPC_MoveParent,
/*604707*/        OPC_MoveParent,
/*604708*/        OPC_RecordChild1, // #2 = $src1
/*604709*/        OPC_RecordChild2, // #3 = $src2
/*604710*/        OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->604732
/*604713*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*604715*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604718*/          OPC_EmitMergeInputChains1_0,
/*604719*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 28
                    // Dst: (VFMADDSUB132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604732*/        /*SwitchType*/ 19, MVT::v4f64,// ->604753
/*604734*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604736*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604739*/          OPC_EmitMergeInputChains1_0,
/*604740*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 28
                    // Dst: (VFMADDSUB132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604753*/        /*SwitchType*/ 19, MVT::v2f64,// ->604774
/*604755*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*604757*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604760*/          OPC_EmitMergeInputChains1_0,
/*604761*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 28
                    // Dst: (VFMADDSUB132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604774*/        0, // EndSwitchType
/*604775*/      0, // EndSwitchType
/*604776*/    /*Scope*/ 79, /*->604856*/
/*604777*/      OPC_RecordChild0, // #0 = $src2
/*604778*/      OPC_Scope, 37, /*->604817*/ // 2 children in Scope
/*604780*/        OPC_RecordChild1, // #1 = $src1
/*604781*/        OPC_MoveChild2,
/*604782*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*604785*/        OPC_RecordMemRef,
/*604786*/        OPC_RecordNode, // #2 = 'ld' chained node
/*604787*/        OPC_CheckFoldableChainNode,
/*604788*/        OPC_RecordChild1, // #3 = $src3
/*604789*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*604791*/        OPC_CheckPredicate, 9, // Predicate_load
/*604793*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*604795*/        OPC_MoveParent,
/*604796*/        OPC_CheckType, MVT::v4f32,
/*604798*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*604800*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604803*/        OPC_EmitMergeInputChains1_2,
/*604804*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDSUB213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604817*/      /*Scope*/ 37, /*->604855*/
/*604818*/        OPC_MoveChild1,
/*604819*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*604822*/        OPC_RecordMemRef,
/*604823*/        OPC_RecordNode, // #1 = 'ld' chained node
/*604824*/        OPC_CheckFoldableChainNode,
/*604825*/        OPC_RecordChild1, // #2 = $src3
/*604826*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*604828*/        OPC_CheckPredicate, 9, // Predicate_load
/*604830*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*604832*/        OPC_MoveParent,
/*604833*/        OPC_RecordChild2, // #3 = $src1
/*604834*/        OPC_CheckType, MVT::v4f32,
/*604836*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*604838*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604841*/        OPC_EmitMergeInputChains1_1,
/*604842*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADDSUB231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604855*/      0, /*End of Scope*/
/*604856*/    /*Scope*/ 38, /*->604895*/
/*604857*/      OPC_MoveChild0,
/*604858*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*604861*/      OPC_RecordMemRef,
/*604862*/      OPC_RecordNode, // #0 = 'ld' chained node
/*604863*/      OPC_CheckFoldableChainNode,
/*604864*/      OPC_RecordChild1, // #1 = $src3
/*604865*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*604867*/      OPC_CheckPredicate, 9, // Predicate_load
/*604869*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*604871*/      OPC_MoveParent,
/*604872*/      OPC_RecordChild1, // #2 = $src1
/*604873*/      OPC_RecordChild2, // #3 = $src2
/*604874*/      OPC_CheckType, MVT::v4f32,
/*604876*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*604878*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604881*/      OPC_EmitMergeInputChains1_0,
/*604882*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmaddsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFMADDSUB132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604895*/    /*Scope*/ 79, /*->604975*/
/*604896*/      OPC_RecordChild0, // #0 = $src2
/*604897*/      OPC_Scope, 37, /*->604936*/ // 2 children in Scope
/*604899*/        OPC_RecordChild1, // #1 = $src1
/*604900*/        OPC_MoveChild2,
/*604901*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*604904*/        OPC_RecordMemRef,
/*604905*/        OPC_RecordNode, // #2 = 'ld' chained node
/*604906*/        OPC_CheckFoldableChainNode,
/*604907*/        OPC_RecordChild1, // #3 = $src3
/*604908*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*604910*/        OPC_CheckPredicate, 9, // Predicate_load
/*604912*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*604914*/        OPC_MoveParent,
/*604915*/        OPC_CheckType, MVT::v8f32,
/*604917*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*604919*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604922*/        OPC_EmitMergeInputChains1_2,
/*604923*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDSUB213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604936*/      /*Scope*/ 37, /*->604974*/
/*604937*/        OPC_MoveChild1,
/*604938*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*604941*/        OPC_RecordMemRef,
/*604942*/        OPC_RecordNode, // #1 = 'ld' chained node
/*604943*/        OPC_CheckFoldableChainNode,
/*604944*/        OPC_RecordChild1, // #2 = $src3
/*604945*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*604947*/        OPC_CheckPredicate, 9, // Predicate_load
/*604949*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*604951*/        OPC_MoveParent,
/*604952*/        OPC_RecordChild2, // #3 = $src1
/*604953*/        OPC_CheckType, MVT::v8f32,
/*604955*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*604957*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*604960*/        OPC_EmitMergeInputChains1_1,
/*604961*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADDSUB231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*604974*/      0, /*End of Scope*/
/*604975*/    /*Scope*/ 38, /*->605014*/
/*604976*/      OPC_MoveChild0,
/*604977*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*604980*/      OPC_RecordMemRef,
/*604981*/      OPC_RecordNode, // #0 = 'ld' chained node
/*604982*/      OPC_CheckFoldableChainNode,
/*604983*/      OPC_RecordChild1, // #1 = $src3
/*604984*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*604986*/      OPC_CheckPredicate, 9, // Predicate_load
/*604988*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*604990*/      OPC_MoveParent,
/*604991*/      OPC_RecordChild1, // #2 = $src1
/*604992*/      OPC_RecordChild2, // #3 = $src2
/*604993*/      OPC_CheckType, MVT::v8f32,
/*604995*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*604997*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605000*/      OPC_EmitMergeInputChains1_0,
/*605001*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmaddsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFMADDSUB132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605014*/    /*Scope*/ 79, /*->605094*/
/*605015*/      OPC_RecordChild0, // #0 = $src2
/*605016*/      OPC_Scope, 37, /*->605055*/ // 2 children in Scope
/*605018*/        OPC_RecordChild1, // #1 = $src1
/*605019*/        OPC_MoveChild2,
/*605020*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605023*/        OPC_RecordMemRef,
/*605024*/        OPC_RecordNode, // #2 = 'ld' chained node
/*605025*/        OPC_CheckFoldableChainNode,
/*605026*/        OPC_RecordChild1, // #3 = $src3
/*605027*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605029*/        OPC_CheckPredicate, 9, // Predicate_load
/*605031*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605033*/        OPC_MoveParent,
/*605034*/        OPC_CheckType, MVT::v2f64,
/*605036*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605038*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605041*/        OPC_EmitMergeInputChains1_2,
/*605042*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDSUB213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605055*/      /*Scope*/ 37, /*->605093*/
/*605056*/        OPC_MoveChild1,
/*605057*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605060*/        OPC_RecordMemRef,
/*605061*/        OPC_RecordNode, // #1 = 'ld' chained node
/*605062*/        OPC_CheckFoldableChainNode,
/*605063*/        OPC_RecordChild1, // #2 = $src3
/*605064*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605066*/        OPC_CheckPredicate, 9, // Predicate_load
/*605068*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605070*/        OPC_MoveParent,
/*605071*/        OPC_RecordChild2, // #3 = $src1
/*605072*/        OPC_CheckType, MVT::v2f64,
/*605074*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605076*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605079*/        OPC_EmitMergeInputChains1_1,
/*605080*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADDSUB231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605093*/      0, /*End of Scope*/
/*605094*/    /*Scope*/ 38, /*->605133*/
/*605095*/      OPC_MoveChild0,
/*605096*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605099*/      OPC_RecordMemRef,
/*605100*/      OPC_RecordNode, // #0 = 'ld' chained node
/*605101*/      OPC_CheckFoldableChainNode,
/*605102*/      OPC_RecordChild1, // #1 = $src3
/*605103*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605105*/      OPC_CheckPredicate, 9, // Predicate_load
/*605107*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*605109*/      OPC_MoveParent,
/*605110*/      OPC_RecordChild1, // #2 = $src1
/*605111*/      OPC_RecordChild2, // #3 = $src2
/*605112*/      OPC_CheckType, MVT::v2f64,
/*605114*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605116*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605119*/      OPC_EmitMergeInputChains1_0,
/*605120*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmaddsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFMADDSUB132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605133*/    /*Scope*/ 79, /*->605213*/
/*605134*/      OPC_RecordChild0, // #0 = $src2
/*605135*/      OPC_Scope, 37, /*->605174*/ // 2 children in Scope
/*605137*/        OPC_RecordChild1, // #1 = $src1
/*605138*/        OPC_MoveChild2,
/*605139*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605142*/        OPC_RecordMemRef,
/*605143*/        OPC_RecordNode, // #2 = 'ld' chained node
/*605144*/        OPC_CheckFoldableChainNode,
/*605145*/        OPC_RecordChild1, // #3 = $src3
/*605146*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605148*/        OPC_CheckPredicate, 9, // Predicate_load
/*605150*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605152*/        OPC_MoveParent,
/*605153*/        OPC_CheckType, MVT::v4f64,
/*605155*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605157*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605160*/        OPC_EmitMergeInputChains1_2,
/*605161*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDSUB213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605174*/      /*Scope*/ 37, /*->605212*/
/*605175*/        OPC_MoveChild1,
/*605176*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605179*/        OPC_RecordMemRef,
/*605180*/        OPC_RecordNode, // #1 = 'ld' chained node
/*605181*/        OPC_CheckFoldableChainNode,
/*605182*/        OPC_RecordChild1, // #2 = $src3
/*605183*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605185*/        OPC_CheckPredicate, 9, // Predicate_load
/*605187*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605189*/        OPC_MoveParent,
/*605190*/        OPC_RecordChild2, // #3 = $src1
/*605191*/        OPC_CheckType, MVT::v4f64,
/*605193*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605195*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605198*/        OPC_EmitMergeInputChains1_1,
/*605199*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADDSUB231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605212*/      0, /*End of Scope*/
/*605213*/    /*Scope*/ 38, /*->605252*/
/*605214*/      OPC_MoveChild0,
/*605215*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605218*/      OPC_RecordMemRef,
/*605219*/      OPC_RecordNode, // #0 = 'ld' chained node
/*605220*/      OPC_CheckFoldableChainNode,
/*605221*/      OPC_RecordChild1, // #1 = $src3
/*605222*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605224*/      OPC_CheckPredicate, 9, // Predicate_load
/*605226*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*605228*/      OPC_MoveParent,
/*605229*/      OPC_RecordChild1, // #2 = $src1
/*605230*/      OPC_RecordChild2, // #3 = $src2
/*605231*/      OPC_CheckType, MVT::v4f64,
/*605233*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605235*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605238*/      OPC_EmitMergeInputChains1_0,
/*605239*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmaddsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFMADDSUB132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605252*/    /*Scope*/ 87|128,4/*599*/, /*->605853*/
/*605254*/      OPC_RecordChild0, // #0 = $src1
/*605255*/      OPC_Scope, 37, /*->605294*/ // 10 children in Scope
/*605257*/        OPC_RecordChild1, // #1 = $src2
/*605258*/        OPC_MoveChild2,
/*605259*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605262*/        OPC_RecordMemRef,
/*605263*/        OPC_RecordNode, // #2 = 'ld' chained node
/*605264*/        OPC_CheckFoldableChainNode,
/*605265*/        OPC_RecordChild1, // #3 = $src3
/*605266*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605268*/        OPC_CheckPredicate, 9, // Predicate_load
/*605270*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605272*/        OPC_MoveParent,
/*605273*/        OPC_CheckType, MVT::v4f32,
/*605275*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605277*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605280*/        OPC_EmitMergeInputChains1_2,
/*605281*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDSUBPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605294*/      /*Scope*/ 37, /*->605332*/
/*605295*/        OPC_MoveChild1,
/*605296*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605299*/        OPC_RecordMemRef,
/*605300*/        OPC_RecordNode, // #1 = 'ld' chained node
/*605301*/        OPC_CheckFoldableChainNode,
/*605302*/        OPC_RecordChild1, // #2 = $src2
/*605303*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605305*/        OPC_CheckPredicate, 9, // Predicate_load
/*605307*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605309*/        OPC_MoveParent,
/*605310*/        OPC_RecordChild2, // #3 = $src3
/*605311*/        OPC_CheckType, MVT::v4f32,
/*605313*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605315*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*605318*/        OPC_EmitMergeInputChains1_1,
/*605319*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmaddsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*605332*/      /*Scope*/ 37, /*->605370*/
/*605333*/        OPC_RecordChild1, // #1 = $src2
/*605334*/        OPC_MoveChild2,
/*605335*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605338*/        OPC_RecordMemRef,
/*605339*/        OPC_RecordNode, // #2 = 'ld' chained node
/*605340*/        OPC_CheckFoldableChainNode,
/*605341*/        OPC_RecordChild1, // #3 = $src3
/*605342*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605344*/        OPC_CheckPredicate, 9, // Predicate_load
/*605346*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605348*/        OPC_MoveParent,
/*605349*/        OPC_CheckType, MVT::v8f32,
/*605351*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605353*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605356*/        OPC_EmitMergeInputChains1_2,
/*605357*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPS4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDSUBPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605370*/      /*Scope*/ 37, /*->605408*/
/*605371*/        OPC_MoveChild1,
/*605372*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605375*/        OPC_RecordMemRef,
/*605376*/        OPC_RecordNode, // #1 = 'ld' chained node
/*605377*/        OPC_CheckFoldableChainNode,
/*605378*/        OPC_RecordChild1, // #2 = $src2
/*605379*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605381*/        OPC_CheckPredicate, 9, // Predicate_load
/*605383*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605385*/        OPC_MoveParent,
/*605386*/        OPC_RecordChild2, // #3 = $src3
/*605387*/        OPC_CheckType, MVT::v8f32,
/*605389*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605391*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*605394*/        OPC_EmitMergeInputChains1_1,
/*605395*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmaddsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*605408*/      /*Scope*/ 37, /*->605446*/
/*605409*/        OPC_RecordChild1, // #1 = $src2
/*605410*/        OPC_MoveChild2,
/*605411*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605414*/        OPC_RecordMemRef,
/*605415*/        OPC_RecordNode, // #2 = 'ld' chained node
/*605416*/        OPC_CheckFoldableChainNode,
/*605417*/        OPC_RecordChild1, // #3 = $src3
/*605418*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605420*/        OPC_CheckPredicate, 9, // Predicate_load
/*605422*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605424*/        OPC_MoveParent,
/*605425*/        OPC_CheckType, MVT::v2f64,
/*605427*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605429*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605432*/        OPC_EmitMergeInputChains1_2,
/*605433*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDSUBPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605446*/      /*Scope*/ 37, /*->605484*/
/*605447*/        OPC_MoveChild1,
/*605448*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605451*/        OPC_RecordMemRef,
/*605452*/        OPC_RecordNode, // #1 = 'ld' chained node
/*605453*/        OPC_CheckFoldableChainNode,
/*605454*/        OPC_RecordChild1, // #2 = $src2
/*605455*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605457*/        OPC_CheckPredicate, 9, // Predicate_load
/*605459*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605461*/        OPC_MoveParent,
/*605462*/        OPC_RecordChild2, // #3 = $src3
/*605463*/        OPC_CheckType, MVT::v2f64,
/*605465*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605467*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*605470*/        OPC_EmitMergeInputChains1_1,
/*605471*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmaddsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFMADDSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*605484*/      /*Scope*/ 37, /*->605522*/
/*605485*/        OPC_RecordChild1, // #1 = $src2
/*605486*/        OPC_MoveChild2,
/*605487*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605490*/        OPC_RecordMemRef,
/*605491*/        OPC_RecordNode, // #2 = 'ld' chained node
/*605492*/        OPC_CheckFoldableChainNode,
/*605493*/        OPC_RecordChild1, // #3 = $src3
/*605494*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605496*/        OPC_CheckPredicate, 9, // Predicate_load
/*605498*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605500*/        OPC_MoveParent,
/*605501*/        OPC_CheckType, MVT::v4f64,
/*605503*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605505*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605508*/        OPC_EmitMergeInputChains1_2,
/*605509*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPD4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMADDSUBPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605522*/      /*Scope*/ 37, /*->605560*/
/*605523*/        OPC_MoveChild1,
/*605524*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605527*/        OPC_RecordMemRef,
/*605528*/        OPC_RecordNode, // #1 = 'ld' chained node
/*605529*/        OPC_CheckFoldableChainNode,
/*605530*/        OPC_RecordChild1, // #2 = $src2
/*605531*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605533*/        OPC_CheckPredicate, 9, // Predicate_load
/*605535*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605537*/        OPC_MoveParent,
/*605538*/        OPC_RecordChild2, // #3 = $src3
/*605539*/        OPC_CheckType, MVT::v4f64,
/*605541*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605543*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*605546*/        OPC_EmitMergeInputChains1_1,
/*605547*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmaddsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFMADDSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*605560*/      /*Scope*/ 16|128,1/*144*/, /*->605706*/
/*605562*/        OPC_RecordChild1, // #1 = $src1
/*605563*/        OPC_MoveChild2,
/*605564*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605567*/        OPC_RecordMemRef,
/*605568*/        OPC_RecordNode, // #2 = 'ld' chained node
/*605569*/        OPC_CheckFoldableChainNode,
/*605570*/        OPC_RecordChild1, // #3 = $src3
/*605571*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605573*/        OPC_CheckPredicate, 9, // Predicate_load
/*605575*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605577*/        OPC_MoveParent,
/*605578*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->605600
/*605581*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*605583*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605586*/          OPC_EmitMergeInputChains1_2,
/*605587*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADDSUB213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605600*/        /*SwitchType*/ 19, MVT::v8f32,// ->605621
/*605602*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*605604*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605607*/          OPC_EmitMergeInputChains1_2,
/*605608*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADDSUB213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605621*/        /*SwitchType*/ 19, MVT::v4f32,// ->605642
/*605623*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*605625*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605628*/          OPC_EmitMergeInputChains1_2,
/*605629*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADDSUB213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605642*/        /*SwitchType*/ 19, MVT::v8f64,// ->605663
/*605644*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*605646*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605649*/          OPC_EmitMergeInputChains1_2,
/*605650*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADDSUB213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605663*/        /*SwitchType*/ 19, MVT::v4f64,// ->605684
/*605665*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*605667*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605670*/          OPC_EmitMergeInputChains1_2,
/*605671*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADDSUB213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605684*/        /*SwitchType*/ 19, MVT::v2f64,// ->605705
/*605686*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*605688*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605691*/          OPC_EmitMergeInputChains1_2,
/*605692*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMADDSUB213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605705*/        0, // EndSwitchType
/*605706*/      /*Scope*/ 16|128,1/*144*/, /*->605852*/
/*605708*/        OPC_MoveChild1,
/*605709*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605712*/        OPC_RecordMemRef,
/*605713*/        OPC_RecordNode, // #1 = 'ld' chained node
/*605714*/        OPC_CheckFoldableChainNode,
/*605715*/        OPC_RecordChild1, // #2 = $src3
/*605716*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605718*/        OPC_CheckPredicate, 9, // Predicate_load
/*605720*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*605722*/        OPC_MoveParent,
/*605723*/        OPC_RecordChild2, // #3 = $src1
/*605724*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->605746
/*605727*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*605729*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605732*/          OPC_EmitMergeInputChains1_1,
/*605733*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VFMADDSUB231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605746*/        /*SwitchType*/ 19, MVT::v8f32,// ->605767
/*605748*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*605750*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605753*/          OPC_EmitMergeInputChains1_1,
/*605754*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VFMADDSUB231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605767*/        /*SwitchType*/ 19, MVT::v4f32,// ->605788
/*605769*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*605771*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605774*/          OPC_EmitMergeInputChains1_1,
/*605775*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VFMADDSUB231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605788*/        /*SwitchType*/ 19, MVT::v8f64,// ->605809
/*605790*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*605792*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605795*/          OPC_EmitMergeInputChains1_1,
/*605796*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VFMADDSUB231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605809*/        /*SwitchType*/ 19, MVT::v4f64,// ->605830
/*605811*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*605813*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605816*/          OPC_EmitMergeInputChains1_1,
/*605817*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VFMADDSUB231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605830*/        /*SwitchType*/ 19, MVT::v2f64,// ->605851
/*605832*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*605834*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605837*/          OPC_EmitMergeInputChains1_1,
/*605838*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VFMADDSUB231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605851*/        0, // EndSwitchType
/*605852*/      0, /*End of Scope*/
/*605853*/    /*Scope*/ 109|128,1/*237*/, /*->606092*/
/*605855*/      OPC_MoveChild0,
/*605856*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*605859*/      OPC_RecordMemRef,
/*605860*/      OPC_RecordNode, // #0 = 'ld' chained node
/*605861*/      OPC_CheckFoldableChainNode,
/*605862*/      OPC_RecordChild1, // #1 = $src3
/*605863*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*605865*/      OPC_CheckPredicate, 9, // Predicate_load
/*605867*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*605869*/      OPC_MoveParent,
/*605870*/      OPC_RecordChild1, // #2 = $src1
/*605871*/      OPC_RecordChild2, // #3 = $src2
/*605872*/      OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->605894
/*605875*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*605877*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605880*/        OPC_EmitMergeInputChains1_0,
/*605881*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                  // Dst: (VFMADDSUB132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605894*/      /*SwitchType*/ 42, MVT::v8f32,// ->605938
/*605896*/        OPC_Scope, 19, /*->605917*/ // 2 children in Scope
/*605898*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*605900*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605903*/          OPC_EmitMergeInputChains1_0,
/*605904*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                    // Dst: (VFMADDSUB132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605917*/        /*Scope*/ 19, /*->605937*/
/*605918*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605920*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*605923*/          OPC_EmitMergeInputChains1_0,
/*605924*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmaddsub:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                    // Dst: (VFMADDSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*605937*/        0, /*End of Scope*/
/*605938*/      /*SwitchType*/ 42, MVT::v4f32,// ->605982
/*605940*/        OPC_Scope, 19, /*->605961*/ // 2 children in Scope
/*605942*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*605944*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605947*/          OPC_EmitMergeInputChains1_0,
/*605948*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                    // Dst: (VFMADDSUB132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*605961*/        /*Scope*/ 19, /*->605981*/
/*605962*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*605964*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*605967*/          OPC_EmitMergeInputChains1_0,
/*605968*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmaddsub:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                    // Dst: (VFMADDSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*605981*/        0, /*End of Scope*/
/*605982*/      /*SwitchType*/ 19, MVT::v8f64,// ->606003
/*605984*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*605986*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*605989*/        OPC_EmitMergeInputChains1_0,
/*605990*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmaddsub:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                  // Dst: (VFMADDSUB132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606003*/      /*SwitchType*/ 42, MVT::v4f64,// ->606047
/*606005*/        OPC_Scope, 19, /*->606026*/ // 2 children in Scope
/*606007*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606009*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606012*/          OPC_EmitMergeInputChains1_0,
/*606013*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                    // Dst: (VFMADDSUB132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606026*/        /*Scope*/ 19, /*->606046*/
/*606027*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606029*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*606032*/          OPC_EmitMergeInputChains1_0,
/*606033*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmaddsub:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                    // Dst: (VFMADDSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*606046*/        0, /*End of Scope*/
/*606047*/      /*SwitchType*/ 42, MVT::v2f64,// ->606091
/*606049*/        OPC_Scope, 19, /*->606070*/ // 2 children in Scope
/*606051*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606053*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606056*/          OPC_EmitMergeInputChains1_0,
/*606057*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmaddsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                    // Dst: (VFMADDSUB132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606070*/        /*Scope*/ 19, /*->606090*/
/*606071*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606073*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*606076*/          OPC_EmitMergeInputChains1_0,
/*606077*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmaddsub:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                    // Dst: (VFMADDSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*606090*/        0, /*End of Scope*/
/*606091*/      0, // EndSwitchType
/*606092*/    /*Scope*/ 63|128,1/*191*/, /*->606285*/
/*606094*/      OPC_RecordChild0, // #0 = $src2
/*606095*/      OPC_RecordChild1, // #1 = $src1
/*606096*/      OPC_RecordChild2, // #2 = $src3
/*606097*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->606138
/*606100*/        OPC_Scope, 11, /*->606113*/ // 3 children in Scope
/*606102*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606104*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSr), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmaddsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUB213PSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*606113*/        /*Scope*/ 11, /*->606125*/
/*606114*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606116*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPS4rr), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmaddsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUBPS4rr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*606125*/        /*Scope*/ 11, /*->606137*/
/*606126*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606128*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ128r), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmaddsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUB213PSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*606137*/        0, /*End of Scope*/
/*606138*/      /*SwitchType*/ 38, MVT::v8f32,// ->606178
/*606140*/        OPC_Scope, 11, /*->606153*/ // 3 children in Scope
/*606142*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606144*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSYr), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmaddsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUB213PSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*606153*/        /*Scope*/ 11, /*->606165*/
/*606154*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606156*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPS4Yrr), 0,
                        MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmaddsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUBPS4Yrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*606165*/        /*Scope*/ 11, /*->606177*/
/*606166*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606168*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZ256r), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmaddsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUB213PSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*606177*/        0, /*End of Scope*/
/*606178*/      /*SwitchType*/ 38, MVT::v2f64,// ->606218
/*606180*/        OPC_Scope, 11, /*->606193*/ // 3 children in Scope
/*606182*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606184*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDr), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmaddsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUB213PDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*606193*/        /*Scope*/ 11, /*->606205*/
/*606194*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606196*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPD4rr), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmaddsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUBPD4rr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*606205*/        /*Scope*/ 11, /*->606217*/
/*606206*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606208*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ128r), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmaddsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUB213PDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*606217*/        0, /*End of Scope*/
/*606218*/      /*SwitchType*/ 38, MVT::v4f64,// ->606258
/*606220*/        OPC_Scope, 11, /*->606233*/ // 3 children in Scope
/*606222*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606224*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDYr), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmaddsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUB213PDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*606233*/        /*Scope*/ 11, /*->606245*/
/*606234*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606236*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUBPD4Yrr), 0,
                        MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmaddsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUBPD4Yrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*606245*/        /*Scope*/ 11, /*->606257*/
/*606246*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606248*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZ256r), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmaddsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADDSUB213PDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*606257*/        0, /*End of Scope*/
/*606258*/      /*SwitchType*/ 11, MVT::v16f32,// ->606271
/*606260*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*606262*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZr), 0,
                      MVT::v16f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fmaddsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3) - Complexity = 3
                  // Dst: (VFMADDSUB213PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*606271*/      /*SwitchType*/ 11, MVT::v8f64,// ->606284
/*606273*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*606275*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZr), 0,
                      MVT::v8f64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fmaddsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3) - Complexity = 3
                  // Dst: (VFMADDSUB213PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*606284*/      0, // EndSwitchType
/*606285*/    0, /*End of Scope*/
/*606286*/  /*SwitchOpcode*/ 77|128,15/*1997*/, TARGET_VAL(X86ISD::FMSUBADD),// ->608287
/*606290*/    OPC_Scope, 66|128,2/*322*/, /*->606615*/ // 13 children in Scope
/*606293*/      OPC_RecordChild0, // #0 = $src2
/*606294*/      OPC_Scope, 29|128,1/*157*/, /*->606454*/ // 2 children in Scope
/*606297*/        OPC_RecordChild1, // #1 = $src1
/*606298*/        OPC_MoveChild2,
/*606299*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*606302*/        OPC_MoveChild0,
/*606303*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*606306*/        OPC_RecordMemRef,
/*606307*/        OPC_RecordNode, // #2 = 'ld' chained node
/*606308*/        OPC_CheckFoldableChainNode,
/*606309*/        OPC_RecordChild1, // #3 = $src3
/*606310*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*606312*/        OPC_CheckPredicate, 9, // Predicate_load
/*606314*/        OPC_SwitchType /*2 cases */, 67, MVT::f32,// ->606384
/*606317*/          OPC_MoveParent,
/*606318*/          OPC_MoveParent,
/*606319*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->606341
/*606322*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*606324*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606327*/            OPC_EmitMergeInputChains1_2,
/*606328*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMSUBADD213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606341*/          /*SwitchType*/ 19, MVT::v8f32,// ->606362
/*606343*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606345*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606348*/            OPC_EmitMergeInputChains1_2,
/*606349*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMSUBADD213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606362*/          /*SwitchType*/ 19, MVT::v4f32,// ->606383
/*606364*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606366*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606369*/            OPC_EmitMergeInputChains1_2,
/*606370*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMSUBADD213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606383*/          0, // EndSwitchType
/*606384*/        /*SwitchType*/ 67, MVT::f64,// ->606453
/*606386*/          OPC_MoveParent,
/*606387*/          OPC_MoveParent,
/*606388*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->606410
/*606391*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*606393*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606396*/            OPC_EmitMergeInputChains1_2,
/*606397*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMSUBADD213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606410*/          /*SwitchType*/ 19, MVT::v4f64,// ->606431
/*606412*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606414*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606417*/            OPC_EmitMergeInputChains1_2,
/*606418*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMSUBADD213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606431*/          /*SwitchType*/ 19, MVT::v2f64,// ->606452
/*606433*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606435*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606438*/            OPC_EmitMergeInputChains1_2,
/*606439*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VFMSUBADD213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606452*/          0, // EndSwitchType
/*606453*/        0, // EndSwitchType
/*606454*/      /*Scope*/ 30|128,1/*158*/, /*->606614*/
/*606456*/        OPC_MoveChild1,
/*606457*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*606460*/        OPC_MoveChild0,
/*606461*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*606464*/        OPC_RecordMemRef,
/*606465*/        OPC_RecordNode, // #1 = 'ld' chained node
/*606466*/        OPC_CheckFoldableChainNode,
/*606467*/        OPC_RecordChild1, // #2 = $src3
/*606468*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*606470*/        OPC_CheckPredicate, 9, // Predicate_load
/*606472*/        OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->606543
/*606475*/          OPC_MoveParent,
/*606476*/          OPC_MoveParent,
/*606477*/          OPC_RecordChild2, // #3 = $src1
/*606478*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->606500
/*606481*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*606483*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606486*/            OPC_EmitMergeInputChains1_1,
/*606487*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                      // Dst: (VFMSUBADD231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606500*/          /*SwitchType*/ 19, MVT::v8f32,// ->606521
/*606502*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606504*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606507*/            OPC_EmitMergeInputChains1_1,
/*606508*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                      // Dst: (VFMSUBADD231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606521*/          /*SwitchType*/ 19, MVT::v4f32,// ->606542
/*606523*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606525*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606528*/            OPC_EmitMergeInputChains1_1,
/*606529*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                      // Dst: (VFMSUBADD231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606542*/          0, // EndSwitchType
/*606543*/        /*SwitchType*/ 68, MVT::f64,// ->606613
/*606545*/          OPC_MoveParent,
/*606546*/          OPC_MoveParent,
/*606547*/          OPC_RecordChild2, // #3 = $src1
/*606548*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->606570
/*606551*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*606553*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606556*/            OPC_EmitMergeInputChains1_1,
/*606557*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                      // Dst: (VFMSUBADD231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606570*/          /*SwitchType*/ 19, MVT::v4f64,// ->606591
/*606572*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606574*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606577*/            OPC_EmitMergeInputChains1_1,
/*606578*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                      // Dst: (VFMSUBADD231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606591*/          /*SwitchType*/ 19, MVT::v2f64,// ->606612
/*606593*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606595*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606598*/            OPC_EmitMergeInputChains1_1,
/*606599*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                      // Dst: (VFMSUBADD231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606612*/          0, // EndSwitchType
/*606613*/        0, // EndSwitchType
/*606614*/      0, /*End of Scope*/
/*606615*/    /*Scope*/ 32|128,1/*160*/, /*->606777*/
/*606617*/      OPC_MoveChild0,
/*606618*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*606621*/      OPC_MoveChild0,
/*606622*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*606625*/      OPC_RecordMemRef,
/*606626*/      OPC_RecordNode, // #0 = 'ld' chained node
/*606627*/      OPC_CheckFoldableChainNode,
/*606628*/      OPC_RecordChild1, // #1 = $src3
/*606629*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*606631*/      OPC_CheckPredicate, 9, // Predicate_load
/*606633*/      OPC_SwitchType /*2 cases */, 69, MVT::f32,// ->606705
/*606636*/        OPC_MoveParent,
/*606637*/        OPC_MoveParent,
/*606638*/        OPC_RecordChild1, // #2 = $src1
/*606639*/        OPC_RecordChild2, // #3 = $src2
/*606640*/        OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->606662
/*606643*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*606645*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606648*/          OPC_EmitMergeInputChains1_0,
/*606649*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 28
                    // Dst: (VFMSUBADD132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606662*/        /*SwitchType*/ 19, MVT::v8f32,// ->606683
/*606664*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606666*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606669*/          OPC_EmitMergeInputChains1_0,
/*606670*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 28
                    // Dst: (VFMSUBADD132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606683*/        /*SwitchType*/ 19, MVT::v4f32,// ->606704
/*606685*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606687*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606690*/          OPC_EmitMergeInputChains1_0,
/*606691*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 28
                    // Dst: (VFMSUBADD132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606704*/        0, // EndSwitchType
/*606705*/      /*SwitchType*/ 69, MVT::f64,// ->606776
/*606707*/        OPC_MoveParent,
/*606708*/        OPC_MoveParent,
/*606709*/        OPC_RecordChild1, // #2 = $src1
/*606710*/        OPC_RecordChild2, // #3 = $src2
/*606711*/        OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->606733
/*606714*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*606716*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606719*/          OPC_EmitMergeInputChains1_0,
/*606720*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 28
                    // Dst: (VFMSUBADD132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606733*/        /*SwitchType*/ 19, MVT::v4f64,// ->606754
/*606735*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606737*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606740*/          OPC_EmitMergeInputChains1_0,
/*606741*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 28
                    // Dst: (VFMSUBADD132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606754*/        /*SwitchType*/ 19, MVT::v2f64,// ->606775
/*606756*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*606758*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606761*/          OPC_EmitMergeInputChains1_0,
/*606762*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 28
                    // Dst: (VFMSUBADD132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606775*/        0, // EndSwitchType
/*606776*/      0, // EndSwitchType
/*606777*/    /*Scope*/ 79, /*->606857*/
/*606778*/      OPC_RecordChild0, // #0 = $src2
/*606779*/      OPC_Scope, 37, /*->606818*/ // 2 children in Scope
/*606781*/        OPC_RecordChild1, // #1 = $src1
/*606782*/        OPC_MoveChild2,
/*606783*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*606786*/        OPC_RecordMemRef,
/*606787*/        OPC_RecordNode, // #2 = 'ld' chained node
/*606788*/        OPC_CheckFoldableChainNode,
/*606789*/        OPC_RecordChild1, // #3 = $src3
/*606790*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*606792*/        OPC_CheckPredicate, 9, // Predicate_load
/*606794*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*606796*/        OPC_MoveParent,
/*606797*/        OPC_CheckType, MVT::v4f32,
/*606799*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606801*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606804*/        OPC_EmitMergeInputChains1_2,
/*606805*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBADD213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606818*/      /*Scope*/ 37, /*->606856*/
/*606819*/        OPC_MoveChild1,
/*606820*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*606823*/        OPC_RecordMemRef,
/*606824*/        OPC_RecordNode, // #1 = 'ld' chained node
/*606825*/        OPC_CheckFoldableChainNode,
/*606826*/        OPC_RecordChild1, // #2 = $src3
/*606827*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*606829*/        OPC_CheckPredicate, 9, // Predicate_load
/*606831*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*606833*/        OPC_MoveParent,
/*606834*/        OPC_RecordChild2, // #3 = $src1
/*606835*/        OPC_CheckType, MVT::v4f32,
/*606837*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606839*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606842*/        OPC_EmitMergeInputChains1_1,
/*606843*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFMSUBADD231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606856*/      0, /*End of Scope*/
/*606857*/    /*Scope*/ 38, /*->606896*/
/*606858*/      OPC_MoveChild0,
/*606859*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*606862*/      OPC_RecordMemRef,
/*606863*/      OPC_RecordNode, // #0 = 'ld' chained node
/*606864*/      OPC_CheckFoldableChainNode,
/*606865*/      OPC_RecordChild1, // #1 = $src3
/*606866*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*606868*/      OPC_CheckPredicate, 9, // Predicate_load
/*606870*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*606872*/      OPC_MoveParent,
/*606873*/      OPC_RecordChild1, // #2 = $src1
/*606874*/      OPC_RecordChild2, // #3 = $src2
/*606875*/      OPC_CheckType, MVT::v4f32,
/*606877*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606879*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606882*/      OPC_EmitMergeInputChains1_0,
/*606883*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmsubadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFMSUBADD132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606896*/    /*Scope*/ 79, /*->606976*/
/*606897*/      OPC_RecordChild0, // #0 = $src2
/*606898*/      OPC_Scope, 37, /*->606937*/ // 2 children in Scope
/*606900*/        OPC_RecordChild1, // #1 = $src1
/*606901*/        OPC_MoveChild2,
/*606902*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*606905*/        OPC_RecordMemRef,
/*606906*/        OPC_RecordNode, // #2 = 'ld' chained node
/*606907*/        OPC_CheckFoldableChainNode,
/*606908*/        OPC_RecordChild1, // #3 = $src3
/*606909*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*606911*/        OPC_CheckPredicate, 9, // Predicate_load
/*606913*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*606915*/        OPC_MoveParent,
/*606916*/        OPC_CheckType, MVT::v8f32,
/*606918*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606920*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606923*/        OPC_EmitMergeInputChains1_2,
/*606924*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBADD213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606937*/      /*Scope*/ 37, /*->606975*/
/*606938*/        OPC_MoveChild1,
/*606939*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*606942*/        OPC_RecordMemRef,
/*606943*/        OPC_RecordNode, // #1 = 'ld' chained node
/*606944*/        OPC_CheckFoldableChainNode,
/*606945*/        OPC_RecordChild1, // #2 = $src3
/*606946*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*606948*/        OPC_CheckPredicate, 9, // Predicate_load
/*606950*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*606952*/        OPC_MoveParent,
/*606953*/        OPC_RecordChild2, // #3 = $src1
/*606954*/        OPC_CheckType, MVT::v8f32,
/*606956*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606958*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*606961*/        OPC_EmitMergeInputChains1_1,
/*606962*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFMSUBADD231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*606975*/      0, /*End of Scope*/
/*606976*/    /*Scope*/ 38, /*->607015*/
/*606977*/      OPC_MoveChild0,
/*606978*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*606981*/      OPC_RecordMemRef,
/*606982*/      OPC_RecordNode, // #0 = 'ld' chained node
/*606983*/      OPC_CheckFoldableChainNode,
/*606984*/      OPC_RecordChild1, // #1 = $src3
/*606985*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*606987*/      OPC_CheckPredicate, 9, // Predicate_load
/*606989*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*606991*/      OPC_MoveParent,
/*606992*/      OPC_RecordChild1, // #2 = $src1
/*606993*/      OPC_RecordChild2, // #3 = $src2
/*606994*/      OPC_CheckType, MVT::v8f32,
/*606996*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*606998*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607001*/      OPC_EmitMergeInputChains1_0,
/*607002*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmsubadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFMSUBADD132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607015*/    /*Scope*/ 79, /*->607095*/
/*607016*/      OPC_RecordChild0, // #0 = $src2
/*607017*/      OPC_Scope, 37, /*->607056*/ // 2 children in Scope
/*607019*/        OPC_RecordChild1, // #1 = $src1
/*607020*/        OPC_MoveChild2,
/*607021*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607024*/        OPC_RecordMemRef,
/*607025*/        OPC_RecordNode, // #2 = 'ld' chained node
/*607026*/        OPC_CheckFoldableChainNode,
/*607027*/        OPC_RecordChild1, // #3 = $src3
/*607028*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607030*/        OPC_CheckPredicate, 9, // Predicate_load
/*607032*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607034*/        OPC_MoveParent,
/*607035*/        OPC_CheckType, MVT::v2f64,
/*607037*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607039*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607042*/        OPC_EmitMergeInputChains1_2,
/*607043*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBADD213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607056*/      /*Scope*/ 37, /*->607094*/
/*607057*/        OPC_MoveChild1,
/*607058*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607061*/        OPC_RecordMemRef,
/*607062*/        OPC_RecordNode, // #1 = 'ld' chained node
/*607063*/        OPC_CheckFoldableChainNode,
/*607064*/        OPC_RecordChild1, // #2 = $src3
/*607065*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607067*/        OPC_CheckPredicate, 9, // Predicate_load
/*607069*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607071*/        OPC_MoveParent,
/*607072*/        OPC_RecordChild2, // #3 = $src1
/*607073*/        OPC_CheckType, MVT::v2f64,
/*607075*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607077*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607080*/        OPC_EmitMergeInputChains1_1,
/*607081*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFMSUBADD231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607094*/      0, /*End of Scope*/
/*607095*/    /*Scope*/ 38, /*->607134*/
/*607096*/      OPC_MoveChild0,
/*607097*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607100*/      OPC_RecordMemRef,
/*607101*/      OPC_RecordNode, // #0 = 'ld' chained node
/*607102*/      OPC_CheckFoldableChainNode,
/*607103*/      OPC_RecordChild1, // #1 = $src3
/*607104*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607106*/      OPC_CheckPredicate, 9, // Predicate_load
/*607108*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*607110*/      OPC_MoveParent,
/*607111*/      OPC_RecordChild1, // #2 = $src1
/*607112*/      OPC_RecordChild2, // #3 = $src2
/*607113*/      OPC_CheckType, MVT::v2f64,
/*607115*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607117*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607120*/      OPC_EmitMergeInputChains1_0,
/*607121*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmsubadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFMSUBADD132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607134*/    /*Scope*/ 79, /*->607214*/
/*607135*/      OPC_RecordChild0, // #0 = $src2
/*607136*/      OPC_Scope, 37, /*->607175*/ // 2 children in Scope
/*607138*/        OPC_RecordChild1, // #1 = $src1
/*607139*/        OPC_MoveChild2,
/*607140*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607143*/        OPC_RecordMemRef,
/*607144*/        OPC_RecordNode, // #2 = 'ld' chained node
/*607145*/        OPC_CheckFoldableChainNode,
/*607146*/        OPC_RecordChild1, // #3 = $src3
/*607147*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607149*/        OPC_CheckPredicate, 9, // Predicate_load
/*607151*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607153*/        OPC_MoveParent,
/*607154*/        OPC_CheckType, MVT::v4f64,
/*607156*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607158*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607161*/        OPC_EmitMergeInputChains1_2,
/*607162*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBADD213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607175*/      /*Scope*/ 37, /*->607213*/
/*607176*/        OPC_MoveChild1,
/*607177*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607180*/        OPC_RecordMemRef,
/*607181*/        OPC_RecordNode, // #1 = 'ld' chained node
/*607182*/        OPC_CheckFoldableChainNode,
/*607183*/        OPC_RecordChild1, // #2 = $src3
/*607184*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607186*/        OPC_CheckPredicate, 9, // Predicate_load
/*607188*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607190*/        OPC_MoveParent,
/*607191*/        OPC_RecordChild2, // #3 = $src1
/*607192*/        OPC_CheckType, MVT::v4f64,
/*607194*/        OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607196*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607199*/        OPC_EmitMergeInputChains1_1,
/*607200*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFMSUBADD231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607213*/      0, /*End of Scope*/
/*607214*/    /*Scope*/ 38, /*->607253*/
/*607215*/      OPC_MoveChild0,
/*607216*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607219*/      OPC_RecordMemRef,
/*607220*/      OPC_RecordNode, // #0 = 'ld' chained node
/*607221*/      OPC_CheckFoldableChainNode,
/*607222*/      OPC_RecordChild1, // #1 = $src3
/*607223*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607225*/      OPC_CheckPredicate, 9, // Predicate_load
/*607227*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*607229*/      OPC_MoveParent,
/*607230*/      OPC_RecordChild1, // #2 = $src1
/*607231*/      OPC_RecordChild2, // #3 = $src2
/*607232*/      OPC_CheckType, MVT::v4f64,
/*607234*/      OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607236*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607239*/      OPC_EmitMergeInputChains1_0,
/*607240*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                // Src: (X86Fmsubadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFMSUBADD132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607253*/    /*Scope*/ 87|128,4/*599*/, /*->607854*/
/*607255*/      OPC_RecordChild0, // #0 = $src1
/*607256*/      OPC_Scope, 37, /*->607295*/ // 10 children in Scope
/*607258*/        OPC_RecordChild1, // #1 = $src2
/*607259*/        OPC_MoveChild2,
/*607260*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607263*/        OPC_RecordMemRef,
/*607264*/        OPC_RecordNode, // #2 = 'ld' chained node
/*607265*/        OPC_CheckFoldableChainNode,
/*607266*/        OPC_RecordChild1, // #3 = $src3
/*607267*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607269*/        OPC_CheckPredicate, 9, // Predicate_load
/*607271*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607273*/        OPC_MoveParent,
/*607274*/        OPC_CheckType, MVT::v4f32,
/*607276*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607278*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607281*/        OPC_EmitMergeInputChains1_2,
/*607282*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBADDPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607295*/      /*Scope*/ 37, /*->607333*/
/*607296*/        OPC_MoveChild1,
/*607297*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607300*/        OPC_RecordMemRef,
/*607301*/        OPC_RecordNode, // #1 = 'ld' chained node
/*607302*/        OPC_CheckFoldableChainNode,
/*607303*/        OPC_RecordChild1, // #2 = $src2
/*607304*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607306*/        OPC_CheckPredicate, 9, // Predicate_load
/*607308*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607310*/        OPC_MoveParent,
/*607311*/        OPC_RecordChild2, // #3 = $src3
/*607312*/        OPC_CheckType, MVT::v4f32,
/*607314*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607316*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*607319*/        OPC_EmitMergeInputChains1_1,
/*607320*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmsubadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*607333*/      /*Scope*/ 37, /*->607371*/
/*607334*/        OPC_RecordChild1, // #1 = $src2
/*607335*/        OPC_MoveChild2,
/*607336*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607339*/        OPC_RecordMemRef,
/*607340*/        OPC_RecordNode, // #2 = 'ld' chained node
/*607341*/        OPC_CheckFoldableChainNode,
/*607342*/        OPC_RecordChild1, // #3 = $src3
/*607343*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607345*/        OPC_CheckPredicate, 9, // Predicate_load
/*607347*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607349*/        OPC_MoveParent,
/*607350*/        OPC_CheckType, MVT::v8f32,
/*607352*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607354*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607357*/        OPC_EmitMergeInputChains1_2,
/*607358*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPS4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBADDPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607371*/      /*Scope*/ 37, /*->607409*/
/*607372*/        OPC_MoveChild1,
/*607373*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607376*/        OPC_RecordMemRef,
/*607377*/        OPC_RecordNode, // #1 = 'ld' chained node
/*607378*/        OPC_CheckFoldableChainNode,
/*607379*/        OPC_RecordChild1, // #2 = $src2
/*607380*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607382*/        OPC_CheckPredicate, 9, // Predicate_load
/*607384*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607386*/        OPC_MoveParent,
/*607387*/        OPC_RecordChild2, // #3 = $src3
/*607388*/        OPC_CheckType, MVT::v8f32,
/*607390*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607392*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*607395*/        OPC_EmitMergeInputChains1_1,
/*607396*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmsubadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*607409*/      /*Scope*/ 37, /*->607447*/
/*607410*/        OPC_RecordChild1, // #1 = $src2
/*607411*/        OPC_MoveChild2,
/*607412*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607415*/        OPC_RecordMemRef,
/*607416*/        OPC_RecordNode, // #2 = 'ld' chained node
/*607417*/        OPC_CheckFoldableChainNode,
/*607418*/        OPC_RecordChild1, // #3 = $src3
/*607419*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607421*/        OPC_CheckPredicate, 9, // Predicate_load
/*607423*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607425*/        OPC_MoveParent,
/*607426*/        OPC_CheckType, MVT::v2f64,
/*607428*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607430*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607433*/        OPC_EmitMergeInputChains1_2,
/*607434*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBADDPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607447*/      /*Scope*/ 37, /*->607485*/
/*607448*/        OPC_MoveChild1,
/*607449*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607452*/        OPC_RecordMemRef,
/*607453*/        OPC_RecordNode, // #1 = 'ld' chained node
/*607454*/        OPC_CheckFoldableChainNode,
/*607455*/        OPC_RecordChild1, // #2 = $src2
/*607456*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607458*/        OPC_CheckPredicate, 9, // Predicate_load
/*607460*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607462*/        OPC_MoveParent,
/*607463*/        OPC_RecordChild2, // #3 = $src3
/*607464*/        OPC_CheckType, MVT::v2f64,
/*607466*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607468*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*607471*/        OPC_EmitMergeInputChains1_1,
/*607472*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmsubadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*607485*/      /*Scope*/ 37, /*->607523*/
/*607486*/        OPC_RecordChild1, // #1 = $src2
/*607487*/        OPC_MoveChild2,
/*607488*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607491*/        OPC_RecordMemRef,
/*607492*/        OPC_RecordNode, // #2 = 'ld' chained node
/*607493*/        OPC_CheckFoldableChainNode,
/*607494*/        OPC_RecordChild1, // #3 = $src3
/*607495*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607497*/        OPC_CheckPredicate, 9, // Predicate_load
/*607499*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607501*/        OPC_MoveParent,
/*607502*/        OPC_CheckType, MVT::v4f64,
/*607504*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607506*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607509*/        OPC_EmitMergeInputChains1_2,
/*607510*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPD4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VFMSUBADDPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607523*/      /*Scope*/ 37, /*->607561*/
/*607524*/        OPC_MoveChild1,
/*607525*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607528*/        OPC_RecordMemRef,
/*607529*/        OPC_RecordNode, // #1 = 'ld' chained node
/*607530*/        OPC_CheckFoldableChainNode,
/*607531*/        OPC_RecordChild1, // #2 = $src2
/*607532*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607534*/        OPC_CheckPredicate, 9, // Predicate_load
/*607536*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607538*/        OPC_MoveParent,
/*607539*/        OPC_RecordChild2, // #3 = $src3
/*607540*/        OPC_CheckType, MVT::v4f64,
/*607542*/        OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607544*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*607547*/        OPC_EmitMergeInputChains1_1,
/*607548*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Fmsubadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*607561*/      /*Scope*/ 16|128,1/*144*/, /*->607707*/
/*607563*/        OPC_RecordChild1, // #1 = $src1
/*607564*/        OPC_MoveChild2,
/*607565*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607568*/        OPC_RecordMemRef,
/*607569*/        OPC_RecordNode, // #2 = 'ld' chained node
/*607570*/        OPC_CheckFoldableChainNode,
/*607571*/        OPC_RecordChild1, // #3 = $src3
/*607572*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607574*/        OPC_CheckPredicate, 9, // Predicate_load
/*607576*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607578*/        OPC_MoveParent,
/*607579*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->607601
/*607582*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*607584*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607587*/          OPC_EmitMergeInputChains1_2,
/*607588*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUBADD213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607601*/        /*SwitchType*/ 19, MVT::v8f32,// ->607622
/*607603*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*607605*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607608*/          OPC_EmitMergeInputChains1_2,
/*607609*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUBADD213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607622*/        /*SwitchType*/ 19, MVT::v4f32,// ->607643
/*607624*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*607626*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607629*/          OPC_EmitMergeInputChains1_2,
/*607630*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUBADD213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607643*/        /*SwitchType*/ 19, MVT::v8f64,// ->607664
/*607645*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*607647*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607650*/          OPC_EmitMergeInputChains1_2,
/*607651*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUBADD213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607664*/        /*SwitchType*/ 19, MVT::v4f64,// ->607685
/*607666*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*607668*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607671*/          OPC_EmitMergeInputChains1_2,
/*607672*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUBADD213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607685*/        /*SwitchType*/ 19, MVT::v2f64,// ->607706
/*607687*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*607689*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607692*/          OPC_EmitMergeInputChains1_2,
/*607693*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VFMSUBADD213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607706*/        0, // EndSwitchType
/*607707*/      /*Scope*/ 16|128,1/*144*/, /*->607853*/
/*607709*/        OPC_MoveChild1,
/*607710*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607713*/        OPC_RecordMemRef,
/*607714*/        OPC_RecordNode, // #1 = 'ld' chained node
/*607715*/        OPC_CheckFoldableChainNode,
/*607716*/        OPC_RecordChild1, // #2 = $src3
/*607717*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607719*/        OPC_CheckPredicate, 9, // Predicate_load
/*607721*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*607723*/        OPC_MoveParent,
/*607724*/        OPC_RecordChild2, // #3 = $src1
/*607725*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->607747
/*607728*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*607730*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607733*/          OPC_EmitMergeInputChains1_1,
/*607734*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VFMSUBADD231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607747*/        /*SwitchType*/ 19, MVT::v8f32,// ->607768
/*607749*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*607751*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607754*/          OPC_EmitMergeInputChains1_1,
/*607755*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VFMSUBADD231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607768*/        /*SwitchType*/ 19, MVT::v4f32,// ->607789
/*607770*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*607772*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607775*/          OPC_EmitMergeInputChains1_1,
/*607776*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VFMSUBADD231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607789*/        /*SwitchType*/ 19, MVT::v8f64,// ->607810
/*607791*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*607793*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607796*/          OPC_EmitMergeInputChains1_1,
/*607797*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VFMSUBADD231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607810*/        /*SwitchType*/ 19, MVT::v4f64,// ->607831
/*607812*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*607814*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607817*/          OPC_EmitMergeInputChains1_1,
/*607818*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VFMSUBADD231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607831*/        /*SwitchType*/ 19, MVT::v2f64,// ->607852
/*607833*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*607835*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607838*/          OPC_EmitMergeInputChains1_1,
/*607839*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VFMSUBADD231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607852*/        0, // EndSwitchType
/*607853*/      0, /*End of Scope*/
/*607854*/    /*Scope*/ 109|128,1/*237*/, /*->608093*/
/*607856*/      OPC_MoveChild0,
/*607857*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*607860*/      OPC_RecordMemRef,
/*607861*/      OPC_RecordNode, // #0 = 'ld' chained node
/*607862*/      OPC_CheckFoldableChainNode,
/*607863*/      OPC_RecordChild1, // #1 = $src3
/*607864*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*607866*/      OPC_CheckPredicate, 9, // Predicate_load
/*607868*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*607870*/      OPC_MoveParent,
/*607871*/      OPC_RecordChild1, // #2 = $src1
/*607872*/      OPC_RecordChild2, // #3 = $src2
/*607873*/      OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->607895
/*607876*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*607878*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607881*/        OPC_EmitMergeInputChains1_0,
/*607882*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                  // Dst: (VFMSUBADD132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607895*/      /*SwitchType*/ 42, MVT::v8f32,// ->607939
/*607897*/        OPC_Scope, 19, /*->607918*/ // 2 children in Scope
/*607899*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*607901*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607904*/          OPC_EmitMergeInputChains1_0,
/*607905*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                    // Dst: (VFMSUBADD132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607918*/        /*Scope*/ 19, /*->607938*/
/*607919*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607921*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*607924*/          OPC_EmitMergeInputChains1_0,
/*607925*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmsubadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                    // Dst: (VFMSUBADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*607938*/        0, /*End of Scope*/
/*607939*/      /*SwitchType*/ 42, MVT::v4f32,// ->607983
/*607941*/        OPC_Scope, 19, /*->607962*/ // 2 children in Scope
/*607943*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*607945*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607948*/          OPC_EmitMergeInputChains1_0,
/*607949*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                    // Dst: (VFMSUBADD132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*607962*/        /*Scope*/ 19, /*->607982*/
/*607963*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*607965*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*607968*/          OPC_EmitMergeInputChains1_0,
/*607969*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmsubadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                    // Dst: (VFMSUBADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*607982*/        0, /*End of Scope*/
/*607983*/      /*SwitchType*/ 19, MVT::v8f64,// ->608004
/*607985*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*607987*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*607990*/        OPC_EmitMergeInputChains1_0,
/*607991*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Fmsubadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                  // Dst: (VFMSUBADD132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*608004*/      /*SwitchType*/ 42, MVT::v4f64,// ->608048
/*608006*/        OPC_Scope, 19, /*->608027*/ // 2 children in Scope
/*608008*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*608010*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*608013*/          OPC_EmitMergeInputChains1_0,
/*608014*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                    // Dst: (VFMSUBADD132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*608027*/        /*Scope*/ 19, /*->608047*/
/*608028*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*608030*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*608033*/          OPC_EmitMergeInputChains1_0,
/*608034*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmsubadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                    // Dst: (VFMSUBADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*608047*/        0, /*End of Scope*/
/*608048*/      /*SwitchType*/ 42, MVT::v2f64,// ->608092
/*608050*/        OPC_Scope, 19, /*->608071*/ // 2 children in Scope
/*608052*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*608054*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*608057*/          OPC_EmitMergeInputChains1_0,
/*608058*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Fmsubadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                    // Dst: (VFMSUBADD132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*608071*/        /*Scope*/ 19, /*->608091*/
/*608072*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*608074*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*608077*/          OPC_EmitMergeInputChains1_0,
/*608078*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Fmsubadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                    // Dst: (VFMSUBADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*608091*/        0, /*End of Scope*/
/*608092*/      0, // EndSwitchType
/*608093*/    /*Scope*/ 63|128,1/*191*/, /*->608286*/
/*608095*/      OPC_RecordChild0, // #0 = $src2
/*608096*/      OPC_RecordChild1, // #1 = $src1
/*608097*/      OPC_RecordChild2, // #2 = $src3
/*608098*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->608139
/*608101*/        OPC_Scope, 11, /*->608114*/ // 3 children in Scope
/*608103*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*608105*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSr), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsubadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADD213PSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*608114*/        /*Scope*/ 11, /*->608126*/
/*608115*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*608117*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPS4rr), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmsubadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADDPS4rr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*608126*/        /*Scope*/ 11, /*->608138*/
/*608127*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*608129*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ128r), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsubadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADD213PSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*608138*/        0, /*End of Scope*/
/*608139*/      /*SwitchType*/ 38, MVT::v8f32,// ->608179
/*608141*/        OPC_Scope, 11, /*->608154*/ // 3 children in Scope
/*608143*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*608145*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSYr), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsubadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADD213PSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*608154*/        /*Scope*/ 11, /*->608166*/
/*608155*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*608157*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPS4Yrr), 0,
                        MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmsubadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADDPS4Yrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*608166*/        /*Scope*/ 11, /*->608178*/
/*608167*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*608169*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZ256r), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsubadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADD213PSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*608178*/        0, /*End of Scope*/
/*608179*/      /*SwitchType*/ 38, MVT::v2f64,// ->608219
/*608181*/        OPC_Scope, 11, /*->608194*/ // 3 children in Scope
/*608183*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*608185*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDr), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsubadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADD213PDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*608194*/        /*Scope*/ 11, /*->608206*/
/*608195*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*608197*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPD4rr), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmsubadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADDPD4rr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*608206*/        /*Scope*/ 11, /*->608218*/
/*608207*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*608209*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ128r), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsubadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADD213PDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*608218*/        0, /*End of Scope*/
/*608219*/      /*SwitchType*/ 38, MVT::v4f64,// ->608259
/*608221*/        OPC_Scope, 11, /*->608234*/ // 3 children in Scope
/*608223*/          OPC_CheckPatternPredicate, 165, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*608225*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDYr), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsubadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADD213PDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*608234*/        /*Scope*/ 11, /*->608246*/
/*608235*/          OPC_CheckPatternPredicate, 166, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*608237*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADDPD4Yrr), 0,
                        MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Fmsubadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADDPD4Yrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*608246*/        /*Scope*/ 11, /*->608258*/
/*608247*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*608249*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZ256r), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (X86Fmsubadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMSUBADD213PDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*608258*/        0, /*End of Scope*/
/*608259*/      /*SwitchType*/ 11, MVT::v16f32,// ->608272
/*608261*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*608263*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZr), 0,
                      MVT::v16f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fmsubadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3) - Complexity = 3
                  // Dst: (VFMSUBADD213PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*608272*/      /*SwitchType*/ 11, MVT::v8f64,// ->608285
/*608274*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*608276*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZr), 0,
                      MVT::v8f64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (X86Fmsubadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3) - Complexity = 3
                  // Dst: (VFMSUBADD213PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*608285*/      0, // EndSwitchType
/*608286*/    0, /*End of Scope*/
/*608287*/  /*SwitchOpcode*/ 31|128,1/*159*/, TARGET_VAL(X86ISD::VFPROUND),// ->608450
/*608291*/    OPC_Scope, 120, /*->608413*/ // 2 children in Scope
/*608293*/      OPC_MoveChild0,
/*608294*/      OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(X86ISD::VBROADCAST),// ->608333
/*608298*/        OPC_MoveChild0,
/*608299*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*608302*/        OPC_RecordMemRef,
/*608303*/        OPC_RecordNode, // #0 = 'ld' chained node
/*608304*/        OPC_CheckFoldableChainNode,
/*608305*/        OPC_RecordChild1, // #1 = $src
/*608306*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*608308*/        OPC_CheckPredicate, 9, // Predicate_load
/*608310*/        OPC_CheckType, MVT::f64,
/*608312*/        OPC_MoveParent,
/*608313*/        OPC_MoveParent,
/*608314*/        OPC_CheckType, MVT::v4f32,
/*608316*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608318*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608321*/        OPC_EmitMergeInputChains1_0,
/*608322*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vfpround:{ *:[v4f32] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VCVTPD2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*608333*/      /*SwitchOpcode*/ 76, TARGET_VAL(ISD::LOAD),// ->608412
/*608336*/        OPC_RecordMemRef,
/*608337*/        OPC_RecordNode, // #0 = 'ld' chained node
/*608338*/        OPC_RecordChild1, // #1 = $src
/*608339*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*608341*/        OPC_CheckPredicate, 9, // Predicate_load
/*608343*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*608345*/        OPC_Scope, 20, /*->608367*/ // 3 children in Scope
/*608347*/          OPC_MoveParent,
/*608348*/          OPC_CheckType, MVT::v4f32,
/*608350*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*608352*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608355*/          OPC_EmitMergeInputChains1_0,
/*608356*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTPD2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*608367*/        /*Scope*/ 22, /*->608390*/
/*608368*/          OPC_CheckPredicate, 48, // Predicate_memop
/*608370*/          OPC_MoveParent,
/*608371*/          OPC_CheckType, MVT::v4f32,
/*608373*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*608375*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608378*/          OPC_EmitMergeInputChains1_0,
/*608379*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPD2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (CVTPD2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*608390*/        /*Scope*/ 20, /*->608411*/
/*608391*/          OPC_MoveParent,
/*608392*/          OPC_CheckType, MVT::v4f32,
/*608394*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608396*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608399*/          OPC_EmitMergeInputChains1_0,
/*608400*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VCVTPD2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*608411*/        0, /*End of Scope*/
/*608412*/      0, // EndSwitchOpcode
/*608413*/    /*Scope*/ 35, /*->608449*/
/*608414*/      OPC_RecordChild0, // #0 = $src
/*608415*/      OPC_CheckType, MVT::v4f32,
/*608417*/      OPC_Scope, 9, /*->608428*/ // 3 children in Scope
/*608419*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*608421*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSrr), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86vfpround:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (VCVTPD2PSrr:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src)
/*608428*/      /*Scope*/ 9, /*->608438*/
/*608429*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*608431*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPD2PSrr), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86vfpround:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (CVTPD2PSrr:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src)
/*608438*/      /*Scope*/ 9, /*->608448*/
/*608439*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608441*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rr), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86vfpround:{ *:[v4f32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (VCVTPD2PSZ128rr:{ *:[v4f32] } VR128X:{ *:[v2f64] }:$src)
/*608448*/      0, /*End of Scope*/
/*608449*/    0, /*End of Scope*/
/*608450*/  /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VFPEXT),// ->608565
/*608453*/    OPC_Scope, 73, /*->608528*/ // 2 children in Scope
/*608455*/      OPC_MoveChild0,
/*608456*/      OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(X86ISD::VBROADCAST),// ->608495
/*608460*/        OPC_MoveChild0,
/*608461*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*608464*/        OPC_RecordMemRef,
/*608465*/        OPC_RecordNode, // #0 = 'ld' chained node
/*608466*/        OPC_CheckFoldableChainNode,
/*608467*/        OPC_RecordChild1, // #1 = $src
/*608468*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*608470*/        OPC_CheckPredicate, 9, // Predicate_load
/*608472*/        OPC_CheckType, MVT::f32,
/*608474*/        OPC_MoveParent,
/*608475*/        OPC_MoveParent,
/*608476*/        OPC_CheckType, MVT::v2f64,
/*608478*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608480*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608483*/        OPC_EmitMergeInputChains1_0,
/*608484*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vfpext:{ *:[v2f64] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VCVTPS2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*608495*/      /*SwitchOpcode*/ 29, TARGET_VAL(ISD::LOAD),// ->608527
/*608498*/        OPC_RecordMemRef,
/*608499*/        OPC_RecordNode, // #0 = 'ld' chained node
/*608500*/        OPC_RecordChild1, // #1 = $src
/*608501*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*608503*/        OPC_CheckPredicate, 9, // Predicate_load
/*608505*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*608507*/        OPC_MoveParent,
/*608508*/        OPC_CheckType, MVT::v2f64,
/*608510*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608512*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608515*/        OPC_EmitMergeInputChains1_0,
/*608516*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vfpext:{ *:[v2f64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                  // Dst: (VCVTPS2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*608527*/      0, // EndSwitchOpcode
/*608528*/    /*Scope*/ 35, /*->608564*/
/*608529*/      OPC_RecordChild0, // #0 = $src
/*608530*/      OPC_CheckType, MVT::v2f64,
/*608532*/      OPC_Scope, 9, /*->608543*/ // 3 children in Scope
/*608534*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*608536*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDrr), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (X86vfpext:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VCVTPS2PDrr:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src)
/*608543*/      /*Scope*/ 9, /*->608553*/
/*608544*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*608546*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPS2PDrr), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (X86vfpext:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (CVTPS2PDrr:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src)
/*608553*/      /*Scope*/ 9, /*->608563*/
/*608554*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608556*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rr), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (X86vfpext:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VCVTPS2PDZ128rr:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src)
/*608563*/      0, /*End of Scope*/
/*608564*/    0, /*End of Scope*/
/*608565*/  /*SwitchOpcode*/ 94|128,2/*350*/, TARGET_VAL(X86ISD::RSQRT14),// ->608919
/*608569*/    OPC_Scope, 20|128,2/*276*/, /*->608848*/ // 2 children in Scope
/*608572*/      OPC_MoveChild0,
/*608573*/      OPC_SwitchOpcode /*2 cases */, 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST),// ->608718
/*608578*/        OPC_MoveChild0,
/*608579*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*608582*/        OPC_RecordMemRef,
/*608583*/        OPC_RecordNode, // #0 = 'ld' chained node
/*608584*/        OPC_CheckFoldableChainNode,
/*608585*/        OPC_RecordChild1, // #1 = $src
/*608586*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*608588*/        OPC_CheckPredicate, 9, // Predicate_load
/*608590*/        OPC_SwitchType /*2 cases */, 61, MVT::f32,// ->608654
/*608593*/          OPC_MoveParent,
/*608594*/          OPC_MoveParent,
/*608595*/          OPC_SwitchType /*3 cases */, 17, MVT::v16f32,// ->608615
/*608598*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*608600*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608603*/            OPC_EmitMergeInputChains1_0,
/*608604*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rsqrt14:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRSQRT14PSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*608615*/          /*SwitchType*/ 17, MVT::v4f32,// ->608634
/*608617*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608619*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608622*/            OPC_EmitMergeInputChains1_0,
/*608623*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rsqrt14:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRSQRT14PSZ128mb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*608634*/          /*SwitchType*/ 17, MVT::v8f32,// ->608653
/*608636*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608638*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608641*/            OPC_EmitMergeInputChains1_0,
/*608642*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rsqrt14:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRSQRT14PSZ256mb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*608653*/          0, // EndSwitchType
/*608654*/        /*SwitchType*/ 61, MVT::f64,// ->608717
/*608656*/          OPC_MoveParent,
/*608657*/          OPC_MoveParent,
/*608658*/          OPC_SwitchType /*3 cases */, 17, MVT::v8f64,// ->608678
/*608661*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*608663*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608666*/            OPC_EmitMergeInputChains1_0,
/*608667*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rsqrt14:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRSQRT14PDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*608678*/          /*SwitchType*/ 17, MVT::v2f64,// ->608697
/*608680*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608682*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608685*/            OPC_EmitMergeInputChains1_0,
/*608686*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rsqrt14:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRSQRT14PDZ128mb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*608697*/          /*SwitchType*/ 17, MVT::v4f64,// ->608716
/*608699*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608701*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608704*/            OPC_EmitMergeInputChains1_0,
/*608705*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rsqrt14:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRSQRT14PDZ256mb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*608716*/          0, // EndSwitchType
/*608717*/        0, // EndSwitchType
/*608718*/      /*SwitchOpcode*/ 126, TARGET_VAL(ISD::LOAD),// ->608847
/*608721*/        OPC_RecordMemRef,
/*608722*/        OPC_RecordNode, // #0 = 'ld' chained node
/*608723*/        OPC_RecordChild1, // #1 = $src
/*608724*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*608726*/        OPC_CheckPredicate, 9, // Predicate_load
/*608728*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*608730*/        OPC_MoveParent,
/*608731*/        OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->608751
/*608734*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*608736*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608739*/          OPC_EmitMergeInputChains1_0,
/*608740*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt14:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRSQRT14PSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*608751*/        /*SwitchType*/ 17, MVT::v8f64,// ->608770
/*608753*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*608755*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608758*/          OPC_EmitMergeInputChains1_0,
/*608759*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt14:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRSQRT14PDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*608770*/        /*SwitchType*/ 17, MVT::v4f32,// ->608789
/*608772*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608774*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608777*/          OPC_EmitMergeInputChains1_0,
/*608778*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt14:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRSQRT14PSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*608789*/        /*SwitchType*/ 17, MVT::v8f32,// ->608808
/*608791*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608793*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608796*/          OPC_EmitMergeInputChains1_0,
/*608797*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt14:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRSQRT14PSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*608808*/        /*SwitchType*/ 17, MVT::v2f64,// ->608827
/*608810*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608812*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608815*/          OPC_EmitMergeInputChains1_0,
/*608816*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt14:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRSQRT14PDZ128m:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*608827*/        /*SwitchType*/ 17, MVT::v4f64,// ->608846
/*608829*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608831*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608834*/          OPC_EmitMergeInputChains1_0,
/*608835*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt14:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRSQRT14PDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*608846*/        0, // EndSwitchType
/*608847*/      0, // EndSwitchOpcode
/*608848*/    /*Scope*/ 69, /*->608918*/
/*608849*/      OPC_RecordChild0, // #0 = $src
/*608850*/      OPC_SwitchType /*6 cases */, 9, MVT::v16f32,// ->608862
/*608853*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*608855*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (X86rsqrt14:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VRSQRT14PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*608862*/      /*SwitchType*/ 9, MVT::v8f64,// ->608873
/*608864*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*608866*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZr), 0,
                      MVT::v8f64, 1/*#Ops*/, 0, 
                  // Src: (X86rsqrt14:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VRSQRT14PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*608873*/      /*SwitchType*/ 9, MVT::v4f32,// ->608884
/*608875*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608877*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ128r), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86rsqrt14:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VRSQRT14PSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src)
/*608884*/      /*SwitchType*/ 9, MVT::v8f32,// ->608895
/*608886*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608888*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ256r), 0,
                      MVT::v8f32, 1/*#Ops*/, 0, 
                  // Src: (X86rsqrt14:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                  // Dst: (VRSQRT14PSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src)
/*608895*/      /*SwitchType*/ 9, MVT::v2f64,// ->608906
/*608897*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608899*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ128r), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (X86rsqrt14:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (VRSQRT14PDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src)
/*608906*/      /*SwitchType*/ 9, MVT::v4f64,// ->608917
/*608908*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608910*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ256r), 0,
                      MVT::v4f64, 1/*#Ops*/, 0, 
                  // Src: (X86rsqrt14:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                  // Dst: (VRSQRT14PDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src)
/*608917*/      0, // EndSwitchType
/*608918*/    0, /*End of Scope*/
/*608919*/  /*SwitchOpcode*/ 94|128,2/*350*/, TARGET_VAL(X86ISD::RCP14),// ->609273
/*608923*/    OPC_Scope, 20|128,2/*276*/, /*->609202*/ // 2 children in Scope
/*608926*/      OPC_MoveChild0,
/*608927*/      OPC_SwitchOpcode /*2 cases */, 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST),// ->609072
/*608932*/        OPC_MoveChild0,
/*608933*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*608936*/        OPC_RecordMemRef,
/*608937*/        OPC_RecordNode, // #0 = 'ld' chained node
/*608938*/        OPC_CheckFoldableChainNode,
/*608939*/        OPC_RecordChild1, // #1 = $src
/*608940*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*608942*/        OPC_CheckPredicate, 9, // Predicate_load
/*608944*/        OPC_SwitchType /*2 cases */, 61, MVT::f32,// ->609008
/*608947*/          OPC_MoveParent,
/*608948*/          OPC_MoveParent,
/*608949*/          OPC_SwitchType /*3 cases */, 17, MVT::v16f32,// ->608969
/*608952*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*608954*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608957*/            OPC_EmitMergeInputChains1_0,
/*608958*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rcp14:{ *:[v16f32] } (X86VBroadcast:{ *:[v16f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRCP14PSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*608969*/          /*SwitchType*/ 17, MVT::v4f32,// ->608988
/*608971*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608973*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608976*/            OPC_EmitMergeInputChains1_0,
/*608977*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rcp14:{ *:[v4f32] } (X86VBroadcast:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRCP14PSZ128mb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*608988*/          /*SwitchType*/ 17, MVT::v8f32,// ->609007
/*608990*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*608992*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*608995*/            OPC_EmitMergeInputChains1_0,
/*608996*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rcp14:{ *:[v8f32] } (X86VBroadcast:{ *:[v8f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRCP14PSZ256mb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*609007*/          0, // EndSwitchType
/*609008*/        /*SwitchType*/ 61, MVT::f64,// ->609071
/*609010*/          OPC_MoveParent,
/*609011*/          OPC_MoveParent,
/*609012*/          OPC_SwitchType /*3 cases */, 17, MVT::v8f64,// ->609032
/*609015*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609017*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*609020*/            OPC_EmitMergeInputChains1_0,
/*609021*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rcp14:{ *:[v8f64] } (X86VBroadcast:{ *:[v8f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRCP14PDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*609032*/          /*SwitchType*/ 17, MVT::v2f64,// ->609051
/*609034*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*609036*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*609039*/            OPC_EmitMergeInputChains1_0,
/*609040*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rcp14:{ *:[v2f64] } (X86VBroadcast:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRCP14PDZ128mb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*609051*/          /*SwitchType*/ 17, MVT::v4f64,// ->609070
/*609053*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*609055*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*609058*/            OPC_EmitMergeInputChains1_0,
/*609059*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rcp14:{ *:[v4f64] } (X86VBroadcast:{ *:[v4f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                      // Dst: (VRCP14PDZ256mb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*609070*/          0, // EndSwitchType
/*609071*/        0, // EndSwitchType
/*609072*/      /*SwitchOpcode*/ 126, TARGET_VAL(ISD::LOAD),// ->609201
/*609075*/        OPC_RecordMemRef,
/*609076*/        OPC_RecordNode, // #0 = 'ld' chained node
/*609077*/        OPC_RecordChild1, // #1 = $src
/*609078*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*609080*/        OPC_CheckPredicate, 9, // Predicate_load
/*609082*/        OPC_CheckPredicate, 40, // Predicate_vecload
/*609084*/        OPC_MoveParent,
/*609085*/        OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->609105
/*609088*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609090*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*609093*/          OPC_EmitMergeInputChains1_0,
/*609094*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp14:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRCP14PSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*609105*/        /*SwitchType*/ 17, MVT::v8f64,// ->609124
/*609107*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609109*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*609112*/          OPC_EmitMergeInputChains1_0,
/*609113*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp14:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRCP14PDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*609124*/        /*SwitchType*/ 17, MVT::v4f32,// ->609143
/*609126*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*609128*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*609131*/          OPC_EmitMergeInputChains1_0,
/*609132*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp14:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRCP14PSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*609143*/        /*SwitchType*/ 17, MVT::v8f32,// ->609162
/*609145*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*609147*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*609150*/          OPC_EmitMergeInputChains1_0,
/*609151*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp14:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRCP14PSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*609162*/        /*SwitchType*/ 17, MVT::v2f64,// ->609181
/*609164*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*609166*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*609169*/          OPC_EmitMergeInputChains1_0,
/*609170*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp14:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRCP14PDZ128m:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*609181*/        /*SwitchType*/ 17, MVT::v4f64,// ->609200
/*609183*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*609185*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*609188*/          OPC_EmitMergeInputChains1_0,
/*609189*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp14:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VRCP14PDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*609200*/        0, // EndSwitchType
/*609201*/      0, // EndSwitchOpcode
/*609202*/    /*Scope*/ 69, /*->609272*/
/*609203*/      OPC_RecordChild0, // #0 = $src
/*609204*/      OPC_SwitchType /*6 cases */, 9, MVT::v16f32,// ->609216
/*609207*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609209*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (X86rcp14:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VRCP14PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*609216*/      /*SwitchType*/ 9, MVT::v8f64,// ->609227
/*609218*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609220*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZr), 0,
                      MVT::v8f64, 1/*#Ops*/, 0, 
                  // Src: (X86rcp14:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VRCP14PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*609227*/      /*SwitchType*/ 9, MVT::v4f32,// ->609238
/*609229*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*609231*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ128r), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86rcp14:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VRCP14PSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src)
/*609238*/      /*SwitchType*/ 9, MVT::v8f32,// ->609249
/*609240*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*609242*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ256r), 0,
                      MVT::v8f32, 1/*#Ops*/, 0, 
                  // Src: (X86rcp14:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                  // Dst: (VRCP14PSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src)
/*609249*/      /*SwitchType*/ 9, MVT::v2f64,// ->609260
/*609251*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*609253*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ128r), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (X86rcp14:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (VRCP14PDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src)
/*609260*/      /*SwitchType*/ 9, MVT::v4f64,// ->609271
/*609262*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*609264*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ256r), 0,
                      MVT::v4f64, 1/*#Ops*/, 0, 
                  // Src: (X86rcp14:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                  // Dst: (VRCP14PDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src)
/*609271*/      0, // EndSwitchType
/*609272*/    0, /*End of Scope*/
/*609273*/  /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::FADDS_RND),// ->609392
/*609276*/    OPC_RecordChild0, // #0 = $src1
/*609277*/    OPC_RecordChild1, // #1 = $src2
/*609278*/    OPC_Scope, 72, /*->609352*/ // 2 children in Scope
/*609280*/      OPC_CheckChild2Integer, 4, 
/*609282*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->609317
/*609285*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609287*/        OPC_Scope, 18, /*->609307*/ // 2 children in Scope
/*609289*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609292*/          OPC_EmitMergeInputChains, 1, 7, 
/*609295*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VADDSSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*609307*/        /*Scope*/ 8, /*->609316*/
/*609308*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Int), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VADDSSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*609316*/        0, /*End of Scope*/
/*609317*/      /*SwitchType*/ 32, MVT::v2f64,// ->609351
/*609319*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609321*/        OPC_Scope, 18, /*->609341*/ // 2 children in Scope
/*609323*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609326*/          OPC_EmitMergeInputChains, 1, 7, 
/*609329*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VADDSDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*609341*/        /*Scope*/ 8, /*->609350*/
/*609342*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Int), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VADDSDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*609350*/        0, /*End of Scope*/
/*609351*/      0, // EndSwitchType
/*609352*/    /*Scope*/ 38, /*->609391*/
/*609353*/      OPC_RecordChild2, // #2 = $rc
/*609354*/      OPC_MoveChild2,
/*609355*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*609358*/      OPC_MoveParent,
/*609359*/      OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->609375
/*609362*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609364*/        OPC_EmitConvertToTarget, 2,
/*609366*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrrb_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VADDSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*609375*/      /*SwitchType*/ 13, MVT::v2f64,// ->609390
/*609377*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609379*/        OPC_EmitConvertToTarget, 2,
/*609381*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrrb_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VADDSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*609390*/      0, // EndSwitchType
/*609391*/    0, /*End of Scope*/
/*609392*/  /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::FMULS_RND),// ->609511
/*609395*/    OPC_RecordChild0, // #0 = $src1
/*609396*/    OPC_RecordChild1, // #1 = $src2
/*609397*/    OPC_Scope, 72, /*->609471*/ // 2 children in Scope
/*609399*/      OPC_CheckChild2Integer, 4, 
/*609401*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->609436
/*609404*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609406*/        OPC_Scope, 18, /*->609426*/ // 2 children in Scope
/*609408*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609411*/          OPC_EmitMergeInputChains, 1, 7, 
/*609414*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VMULSSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*609426*/        /*Scope*/ 8, /*->609435*/
/*609427*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Int), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VMULSSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*609435*/        0, /*End of Scope*/
/*609436*/      /*SwitchType*/ 32, MVT::v2f64,// ->609470
/*609438*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609440*/        OPC_Scope, 18, /*->609460*/ // 2 children in Scope
/*609442*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609445*/          OPC_EmitMergeInputChains, 1, 7, 
/*609448*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VMULSDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*609460*/        /*Scope*/ 8, /*->609469*/
/*609461*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Int), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VMULSDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*609469*/        0, /*End of Scope*/
/*609470*/      0, // EndSwitchType
/*609471*/    /*Scope*/ 38, /*->609510*/
/*609472*/      OPC_RecordChild2, // #2 = $rc
/*609473*/      OPC_MoveChild2,
/*609474*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*609477*/      OPC_MoveParent,
/*609478*/      OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->609494
/*609481*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609483*/        OPC_EmitConvertToTarget, 2,
/*609485*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrrb_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VMULSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*609494*/      /*SwitchType*/ 13, MVT::v2f64,// ->609509
/*609496*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609498*/        OPC_EmitConvertToTarget, 2,
/*609500*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrrb_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VMULSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*609509*/      0, // EndSwitchType
/*609510*/    0, /*End of Scope*/
/*609511*/  /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::FSUBS_RND),// ->609630
/*609514*/    OPC_RecordChild0, // #0 = $src1
/*609515*/    OPC_RecordChild1, // #1 = $src2
/*609516*/    OPC_Scope, 72, /*->609590*/ // 2 children in Scope
/*609518*/      OPC_CheckChild2Integer, 4, 
/*609520*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->609555
/*609523*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609525*/        OPC_Scope, 18, /*->609545*/ // 2 children in Scope
/*609527*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609530*/          OPC_EmitMergeInputChains, 1, 7, 
/*609533*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VSUBSSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*609545*/        /*Scope*/ 8, /*->609554*/
/*609546*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrr_Int), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSUBSSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*609554*/        0, /*End of Scope*/
/*609555*/      /*SwitchType*/ 32, MVT::v2f64,// ->609589
/*609557*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609559*/        OPC_Scope, 18, /*->609579*/ // 2 children in Scope
/*609561*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609564*/          OPC_EmitMergeInputChains, 1, 7, 
/*609567*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VSUBSDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*609579*/        /*Scope*/ 8, /*->609588*/
/*609580*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrr_Int), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSUBSDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*609588*/        0, /*End of Scope*/
/*609589*/      0, // EndSwitchType
/*609590*/    /*Scope*/ 38, /*->609629*/
/*609591*/      OPC_RecordChild2, // #2 = $rc
/*609592*/      OPC_MoveChild2,
/*609593*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*609596*/      OPC_MoveParent,
/*609597*/      OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->609613
/*609600*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609602*/        OPC_EmitConvertToTarget, 2,
/*609604*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrrb_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VSUBSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*609613*/      /*SwitchType*/ 13, MVT::v2f64,// ->609628
/*609615*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609617*/        OPC_EmitConvertToTarget, 2,
/*609619*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrrb_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VSUBSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*609628*/      0, // EndSwitchType
/*609629*/    0, /*End of Scope*/
/*609630*/  /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::FDIVS_RND),// ->609749
/*609633*/    OPC_RecordChild0, // #0 = $src1
/*609634*/    OPC_RecordChild1, // #1 = $src2
/*609635*/    OPC_Scope, 72, /*->609709*/ // 2 children in Scope
/*609637*/      OPC_CheckChild2Integer, 4, 
/*609639*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->609674
/*609642*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609644*/        OPC_Scope, 18, /*->609664*/ // 2 children in Scope
/*609646*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609649*/          OPC_EmitMergeInputChains, 1, 7, 
/*609652*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VDIVSSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*609664*/        /*Scope*/ 8, /*->609673*/
/*609665*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrr_Int), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VDIVSSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*609673*/        0, /*End of Scope*/
/*609674*/      /*SwitchType*/ 32, MVT::v2f64,// ->609708
/*609676*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609678*/        OPC_Scope, 18, /*->609698*/ // 2 children in Scope
/*609680*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609683*/          OPC_EmitMergeInputChains, 1, 7, 
/*609686*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VDIVSDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*609698*/        /*Scope*/ 8, /*->609707*/
/*609699*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrr_Int), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VDIVSDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*609707*/        0, /*End of Scope*/
/*609708*/      0, // EndSwitchType
/*609709*/    /*Scope*/ 38, /*->609748*/
/*609710*/      OPC_RecordChild2, // #2 = $rc
/*609711*/      OPC_MoveChild2,
/*609712*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*609715*/      OPC_MoveParent,
/*609716*/      OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->609732
/*609719*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609721*/        OPC_EmitConvertToTarget, 2,
/*609723*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrrb_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VDIVSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*609732*/      /*SwitchType*/ 13, MVT::v2f64,// ->609747
/*609734*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609736*/        OPC_EmitConvertToTarget, 2,
/*609738*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrrb_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VDIVSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*609747*/      0, // EndSwitchType
/*609748*/    0, /*End of Scope*/
/*609749*/  /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::SCALEFS),// ->609868
/*609752*/    OPC_RecordChild0, // #0 = $src1
/*609753*/    OPC_RecordChild1, // #1 = $src2
/*609754*/    OPC_Scope, 72, /*->609828*/ // 2 children in Scope
/*609756*/      OPC_CheckChild2Integer, 4, 
/*609758*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->609793
/*609761*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609763*/        OPC_Scope, 18, /*->609783*/ // 2 children in Scope
/*609765*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609768*/          OPC_EmitMergeInputChains, 1, 7, 
/*609771*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86scalefs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VSCALEFSSZrm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*609783*/        /*Scope*/ 8, /*->609792*/
/*609784*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86scalefs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSCALEFSSZrr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*609792*/        0, /*End of Scope*/
/*609793*/      /*SwitchType*/ 32, MVT::v2f64,// ->609827
/*609795*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609797*/        OPC_Scope, 18, /*->609817*/ // 2 children in Scope
/*609799*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609802*/          OPC_EmitMergeInputChains, 1, 7, 
/*609805*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86scalefs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VSCALEFSDZrm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*609817*/        /*Scope*/ 8, /*->609826*/
/*609818*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86scalefs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSCALEFSDZrr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*609826*/        0, /*End of Scope*/
/*609827*/      0, // EndSwitchType
/*609828*/    /*Scope*/ 38, /*->609867*/
/*609829*/      OPC_RecordChild2, // #2 = $rc
/*609830*/      OPC_MoveChild2,
/*609831*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*609834*/      OPC_MoveParent,
/*609835*/      OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->609851
/*609838*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609840*/        OPC_EmitConvertToTarget, 2,
/*609842*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrrb_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86scalefs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VSCALEFSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*609851*/      /*SwitchType*/ 13, MVT::v2f64,// ->609866
/*609853*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609855*/        OPC_EmitConvertToTarget, 2,
/*609857*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrrb_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86scalefs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VSCALEFSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*609866*/      0, // EndSwitchType
/*609867*/    0, /*End of Scope*/
/*609868*/  /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::VFPROUNDS_RND),// ->609934
/*609871*/    OPC_RecordChild0, // #0 = $src1
/*609872*/    OPC_RecordChild1, // #1 = $src2
/*609873*/    OPC_Scope, 36, /*->609911*/ // 2 children in Scope
/*609875*/      OPC_CheckChild2Integer, 4, 
/*609877*/      OPC_CheckType, MVT::v4f32,
/*609879*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609881*/      OPC_Scope, 18, /*->609901*/ // 2 children in Scope
/*609883*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609886*/        OPC_EmitMergeInputChains, 1, 7, 
/*609889*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86froundRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                  // Dst: (VCVTSD2SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*609901*/      /*Scope*/ 8, /*->609910*/
/*609902*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86froundRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCVTSD2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*609910*/      0, /*End of Scope*/
/*609911*/    /*Scope*/ 21, /*->609933*/
/*609912*/      OPC_RecordChild2, // #2 = $rc
/*609913*/      OPC_MoveChild2,
/*609914*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*609917*/      OPC_MoveParent,
/*609918*/      OPC_CheckType, MVT::v4f32,
/*609920*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609922*/      OPC_EmitConvertToTarget, 2,
/*609924*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrrb_Int), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86froundRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTSD2SSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*609933*/    0, /*End of Scope*/
/*609934*/  /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VFPEXTS_RND),// ->609991
/*609937*/    OPC_RecordChild0, // #0 = $src1
/*609938*/    OPC_RecordChild1, // #1 = $src2
/*609939*/    OPC_CheckType, MVT::v2f64,
/*609941*/    OPC_Scope, 34, /*->609977*/ // 2 children in Scope
/*609943*/      OPC_CheckChild2Integer, 4, 
/*609945*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609947*/      OPC_Scope, 18, /*->609967*/ // 2 children in Scope
/*609949*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*609952*/        OPC_EmitMergeInputChains, 1, 7, 
/*609955*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fpextRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                  // Dst: (VCVTSS2SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*609967*/      /*Scope*/ 8, /*->609976*/
/*609968*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fpextRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCVTSS2SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*609976*/      0, /*End of Scope*/
/*609977*/    /*Scope*/ 12, /*->609990*/
/*609978*/      OPC_CheckChild2Integer, 8, 
/*609980*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*609982*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrrb_Int), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fpextRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VCVTSS2SDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*609990*/    0, /*End of Scope*/
/*609991*/  /*SwitchOpcode*/ 106, TARGET_VAL(X86ISD::RCP28S),// ->610100
/*609994*/    OPC_RecordChild0, // #0 = $src1
/*609995*/    OPC_RecordChild1, // #1 = $src2
/*609996*/    OPC_Scope, 72, /*->610070*/ // 2 children in Scope
/*609998*/      OPC_CheckChild2Integer, 4, 
/*610000*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->610035
/*610003*/        OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*610005*/        OPC_Scope, 18, /*->610025*/ // 2 children in Scope
/*610007*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*610010*/          OPC_EmitMergeInputChains, 1, 7, 
/*610013*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VRCP28SSZm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*610025*/        /*Scope*/ 8, /*->610034*/
/*610026*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86rcp28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRCP28SSZr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*610034*/        0, /*End of Scope*/
/*610035*/      /*SwitchType*/ 32, MVT::v2f64,// ->610069
/*610037*/        OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*610039*/        OPC_Scope, 18, /*->610059*/ // 2 children in Scope
/*610041*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*610044*/          OPC_EmitMergeInputChains, 1, 7, 
/*610047*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VRCP28SDZm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*610059*/        /*Scope*/ 8, /*->610068*/
/*610060*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86rcp28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRCP28SDZr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*610068*/        0, /*End of Scope*/
/*610069*/      0, // EndSwitchType
/*610070*/    /*Scope*/ 28, /*->610099*/
/*610071*/      OPC_CheckChild2Integer, 8, 
/*610073*/      OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->610086
/*610076*/        OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*610078*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZrb), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rcp28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VRCP28SSZrb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*610086*/      /*SwitchType*/ 10, MVT::v2f64,// ->610098
/*610088*/        OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*610090*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZrb), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rcp28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VRCP28SDZrb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*610098*/      0, // EndSwitchType
/*610099*/    0, /*End of Scope*/
/*610100*/  /*SwitchOpcode*/ 106, TARGET_VAL(X86ISD::RSQRT28S),// ->610209
/*610103*/    OPC_RecordChild0, // #0 = $src1
/*610104*/    OPC_RecordChild1, // #1 = $src2
/*610105*/    OPC_Scope, 72, /*->610179*/ // 2 children in Scope
/*610107*/      OPC_CheckChild2Integer, 4, 
/*610109*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->610144
/*610112*/        OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*610114*/        OPC_Scope, 18, /*->610134*/ // 2 children in Scope
/*610116*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*610119*/          OPC_EmitMergeInputChains, 1, 7, 
/*610122*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VRSQRT28SSZm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*610134*/        /*Scope*/ 8, /*->610143*/
/*610135*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86rsqrt28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRSQRT28SSZr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*610143*/        0, /*End of Scope*/
/*610144*/      /*SwitchType*/ 32, MVT::v2f64,// ->610178
/*610146*/        OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*610148*/        OPC_Scope, 18, /*->610168*/ // 2 children in Scope
/*610150*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*610153*/          OPC_EmitMergeInputChains, 1, 7, 
/*610156*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VRSQRT28SDZm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*610168*/        /*Scope*/ 8, /*->610177*/
/*610169*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86rsqrt28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VRSQRT28SDZr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*610177*/        0, /*End of Scope*/
/*610178*/      0, // EndSwitchType
/*610179*/    /*Scope*/ 28, /*->610208*/
/*610180*/      OPC_CheckChild2Integer, 8, 
/*610182*/      OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->610195
/*610185*/        OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*610187*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZrb), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rsqrt28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VRSQRT28SSZrb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*610195*/      /*SwitchType*/ 10, MVT::v2f64,// ->610207
/*610197*/        OPC_CheckPatternPredicate, 169, // (Subtarget->hasERI())
/*610199*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZrb), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rsqrt28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VRSQRT28SDZrb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*610207*/      0, // EndSwitchType
/*610208*/    0, /*End of Scope*/
/*610209*/  /*SwitchOpcode*/ 106, TARGET_VAL(X86ISD::FGETEXPS_RND),// ->610318
/*610212*/    OPC_RecordChild0, // #0 = $src1
/*610213*/    OPC_RecordChild1, // #1 = $src2
/*610214*/    OPC_Scope, 72, /*->610288*/ // 2 children in Scope
/*610216*/      OPC_CheckChild2Integer, 4, 
/*610218*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->610253
/*610221*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*610223*/        OPC_Scope, 18, /*->610243*/ // 2 children in Scope
/*610225*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*610228*/          OPC_EmitMergeInputChains, 1, 7, 
/*610231*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexpRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VGETEXPSSZm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*610243*/        /*Scope*/ 8, /*->610252*/
/*610244*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fgetexpRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VGETEXPSSZr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*610252*/        0, /*End of Scope*/
/*610253*/      /*SwitchType*/ 32, MVT::v2f64,// ->610287
/*610255*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*610257*/        OPC_Scope, 18, /*->610277*/ // 2 children in Scope
/*610259*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*610262*/          OPC_EmitMergeInputChains, 1, 7, 
/*610265*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexpRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VGETEXPSDZm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*610277*/        /*Scope*/ 8, /*->610286*/
/*610278*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fgetexpRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VGETEXPSDZr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*610286*/        0, /*End of Scope*/
/*610287*/      0, // EndSwitchType
/*610288*/    /*Scope*/ 28, /*->610317*/
/*610289*/      OPC_CheckChild2Integer, 8, 
/*610291*/      OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->610304
/*610294*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*610296*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZrb), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fgetexpRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VGETEXPSSZrb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*610304*/      /*SwitchType*/ 10, MVT::v2f64,// ->610316
/*610306*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*610308*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZrb), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fgetexpRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VGETEXPSDZrb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*610316*/      0, // EndSwitchType
/*610317*/    0, /*End of Scope*/
/*610318*/  /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::FSQRTS_RND),// ->610437
/*610321*/    OPC_RecordChild0, // #0 = $src1
/*610322*/    OPC_RecordChild1, // #1 = $src2
/*610323*/    OPC_Scope, 72, /*->610397*/ // 2 children in Scope
/*610325*/      OPC_CheckChild2Integer, 4, 
/*610327*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->610362
/*610330*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*610332*/        OPC_Scope, 18, /*->610352*/ // 2 children in Scope
/*610334*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*610337*/          OPC_EmitMergeInputChains, 1, 7, 
/*610340*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VSQRTSSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*610352*/        /*Scope*/ 8, /*->610361*/
/*610353*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZr_Int), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSQRTSSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*610361*/        0, /*End of Scope*/
/*610362*/      /*SwitchType*/ 32, MVT::v2f64,// ->610396
/*610364*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*610366*/        OPC_Scope, 18, /*->610386*/ // 2 children in Scope
/*610368*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*610371*/          OPC_EmitMergeInputChains, 1, 7, 
/*610374*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 26
                    // Dst: (VSQRTSDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*610386*/        /*Scope*/ 8, /*->610395*/
/*610387*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZr_Int), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 4:{ *:[i32] }) - Complexity = 8
                    // Dst: (VSQRTSDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*610395*/        0, /*End of Scope*/
/*610396*/      0, // EndSwitchType
/*610397*/    /*Scope*/ 38, /*->610436*/
/*610398*/      OPC_RecordChild2, // #2 = $rc
/*610399*/      OPC_MoveChild2,
/*610400*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*610403*/      OPC_MoveParent,
/*610404*/      OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->610420
/*610407*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*610409*/        OPC_EmitConvertToTarget, 2,
/*610411*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZrb_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VSQRTSSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*610420*/      /*SwitchType*/ 13, MVT::v2f64,// ->610435
/*610422*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*610424*/        OPC_EmitConvertToTarget, 2,
/*610426*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZrb_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VSQRTSDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*610435*/      0, // EndSwitchType
/*610436*/    0, /*End of Scope*/
/*610437*/  /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::MOVLHPS),// ->610518
/*610440*/    OPC_RecordChild0, // #0 = $src1
/*610441*/    OPC_Scope, 35, /*->610478*/ // 2 children in Scope
/*610443*/      OPC_MoveChild1,
/*610444*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*610447*/      OPC_RecordMemRef,
/*610448*/      OPC_RecordNode, // #1 = 'ld' chained node
/*610449*/      OPC_CheckFoldableChainNode,
/*610450*/      OPC_RecordChild1, // #2 = $src2
/*610451*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*610453*/      OPC_CheckPredicate, 9, // Predicate_load
/*610455*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*610457*/      OPC_MoveParent,
/*610458*/      OPC_CheckType, MVT::v4f32,
/*610460*/      OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*610462*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610465*/      OPC_EmitMergeInputChains1_1,
/*610466*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Movlhps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                // Dst: (MOVHPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610478*/    /*Scope*/ 38, /*->610517*/
/*610479*/      OPC_RecordChild1, // #1 = $src2
/*610480*/      OPC_CheckType, MVT::v4f32,
/*610482*/      OPC_Scope, 10, /*->610494*/ // 3 children in Scope
/*610484*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*610486*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVLHPSrr), 0,
                      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)
/*610494*/      /*Scope*/ 10, /*->610505*/
/*610495*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*610497*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVLHPSrr), 0,
                      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)
/*610505*/      /*Scope*/ 10, /*->610516*/
/*610506*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*610508*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVLHPSZrr), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Movlhps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VMOVLHPSZrr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*610516*/      0, /*End of Scope*/
/*610517*/    0, /*End of Scope*/
/*610518*/  /*SwitchOpcode*/ 103|128,1/*231*/, TARGET_VAL(X86ISD::ADDSUB),// ->610753
/*610522*/    OPC_RecordChild0, // #0 = $src1
/*610523*/    OPC_Scope, 18|128,1/*146*/, /*->610672*/ // 2 children in Scope
/*610526*/      OPC_MoveChild1,
/*610527*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*610530*/      OPC_RecordMemRef,
/*610531*/      OPC_RecordNode, // #1 = 'ld' chained node
/*610532*/      OPC_CheckFoldableChainNode,
/*610533*/      OPC_RecordChild1, // #2 = $src2
/*610534*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*610536*/      OPC_CheckPredicate, 9, // Predicate_load
/*610538*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*610540*/      OPC_Scope, 83, /*->610625*/ // 2 children in Scope
/*610542*/        OPC_MoveParent,
/*610543*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->610564
/*610546*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610548*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610551*/          OPC_EmitMergeInputChains1_1,
/*610552*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Addsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VADDSUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610564*/        /*SwitchType*/ 18, MVT::v8f32,// ->610584
/*610566*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610568*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610571*/          OPC_EmitMergeInputChains1_1,
/*610572*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSUBPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Addsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VADDSUBPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610584*/        /*SwitchType*/ 18, MVT::v2f64,// ->610604
/*610586*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610588*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610591*/          OPC_EmitMergeInputChains1_1,
/*610592*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Addsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VADDSUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610604*/        /*SwitchType*/ 18, MVT::v4f64,// ->610624
/*610606*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610608*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610611*/          OPC_EmitMergeInputChains1_1,
/*610612*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSUBPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Addsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>>) - Complexity = 25
                    // Dst: (VADDSUBPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610624*/        0, // EndSwitchType
/*610625*/      /*Scope*/ 45, /*->610671*/
/*610626*/        OPC_CheckPredicate, 48, // Predicate_memop
/*610628*/        OPC_MoveParent,
/*610629*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->610650
/*610632*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*610634*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610637*/          OPC_EmitMergeInputChains1_1,
/*610638*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Addsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (ADDSUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610650*/        /*SwitchType*/ 18, MVT::v2f64,// ->610670
/*610652*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*610654*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610657*/          OPC_EmitMergeInputChains1_1,
/*610658*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86Addsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (ADDSUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610670*/        0, // EndSwitchType
/*610671*/      0, /*End of Scope*/
/*610672*/    /*Scope*/ 79, /*->610752*/
/*610673*/      OPC_RecordChild1, // #1 = $src2
/*610674*/      OPC_SwitchType /*4 cases */, 24, MVT::v4f32,// ->610701
/*610677*/        OPC_Scope, 10, /*->610689*/ // 2 children in Scope
/*610679*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610681*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSUBPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Addsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VADDSUBPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*610689*/        /*Scope*/ 10, /*->610700*/
/*610690*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*610692*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSUBPSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Addsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (ADDSUBPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*610700*/        0, /*End of Scope*/
/*610701*/      /*SwitchType*/ 10, MVT::v8f32,// ->610713
/*610703*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610705*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSUBPSYrr), 0,
                      MVT::v8f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Addsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 3
                  // Dst: (VADDSUBPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/*610713*/      /*SwitchType*/ 24, MVT::v2f64,// ->610739
/*610715*/        OPC_Scope, 10, /*->610727*/ // 2 children in Scope
/*610717*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610719*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSUBPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Addsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VADDSUBPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*610727*/        /*Scope*/ 10, /*->610738*/
/*610728*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*610730*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSUBPDrr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86Addsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (ADDSUBPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*610738*/        0, /*End of Scope*/
/*610739*/      /*SwitchType*/ 10, MVT::v4f64,// ->610751
/*610741*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610743*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSUBPDYrr), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Addsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 3
                  // Dst: (VADDSUBPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2)
/*610751*/      0, // EndSwitchType
/*610752*/    0, /*End of Scope*/
/*610753*/  /*SwitchOpcode*/ 103|128,1/*231*/, TARGET_VAL(X86ISD::FHADD),// ->610988
/*610757*/    OPC_RecordChild0, // #0 = $src1
/*610758*/    OPC_Scope, 18|128,1/*146*/, /*->610907*/ // 2 children in Scope
/*610761*/      OPC_MoveChild1,
/*610762*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*610765*/      OPC_RecordMemRef,
/*610766*/      OPC_RecordNode, // #1 = 'ld' chained node
/*610767*/      OPC_CheckFoldableChainNode,
/*610768*/      OPC_RecordChild1, // #2 = $src2
/*610769*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*610771*/      OPC_CheckPredicate, 9, // Predicate_load
/*610773*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*610775*/      OPC_Scope, 83, /*->610860*/ // 2 children in Scope
/*610777*/        OPC_MoveParent,
/*610778*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->610799
/*610781*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610783*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610786*/          OPC_EmitMergeInputChains1_1,
/*610787*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VHADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610799*/        /*SwitchType*/ 18, MVT::v8f32,// ->610819
/*610801*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610803*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610806*/          OPC_EmitMergeInputChains1_1,
/*610807*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHADDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VHADDPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610819*/        /*SwitchType*/ 18, MVT::v2f64,// ->610839
/*610821*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610823*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610826*/          OPC_EmitMergeInputChains1_1,
/*610827*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VHADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610839*/        /*SwitchType*/ 18, MVT::v4f64,// ->610859
/*610841*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610843*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610846*/          OPC_EmitMergeInputChains1_1,
/*610847*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHADDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VHADDPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610859*/        0, // EndSwitchType
/*610860*/      /*Scope*/ 45, /*->610906*/
/*610861*/        OPC_CheckPredicate, 48, // Predicate_memop
/*610863*/        OPC_MoveParent,
/*610864*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->610885
/*610867*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*610869*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610872*/          OPC_EmitMergeInputChains1_1,
/*610873*/          OPC_MorphNodeTo1, TARGET_VAL(X86::HADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (HADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610885*/        /*SwitchType*/ 18, MVT::v2f64,// ->610905
/*610887*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*610889*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*610892*/          OPC_EmitMergeInputChains1_1,
/*610893*/          OPC_MorphNodeTo1, TARGET_VAL(X86::HADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (HADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*610905*/        0, // EndSwitchType
/*610906*/      0, /*End of Scope*/
/*610907*/    /*Scope*/ 79, /*->610987*/
/*610908*/      OPC_RecordChild1, // #1 = $src2
/*610909*/      OPC_SwitchType /*4 cases */, 24, MVT::v4f32,// ->610936
/*610912*/        OPC_Scope, 10, /*->610924*/ // 2 children in Scope
/*610914*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610916*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHADDPSrr), 0,
                        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)
/*610924*/        /*Scope*/ 10, /*->610935*/
/*610925*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*610927*/          OPC_MorphNodeTo1, TARGET_VAL(X86::HADDPSrr), 0,
                        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)
/*610935*/        0, /*End of Scope*/
/*610936*/      /*SwitchType*/ 10, MVT::v8f32,// ->610948
/*610938*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610940*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VHADDPSYrr), 0,
                      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)
/*610948*/      /*SwitchType*/ 24, MVT::v2f64,// ->610974
/*610950*/        OPC_Scope, 10, /*->610962*/ // 2 children in Scope
/*610952*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610954*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHADDPDrr), 0,
                        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)
/*610962*/        /*Scope*/ 10, /*->610973*/
/*610963*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*610965*/          OPC_MorphNodeTo1, TARGET_VAL(X86::HADDPDrr), 0,
                        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)
/*610973*/        0, /*End of Scope*/
/*610974*/      /*SwitchType*/ 10, MVT::v4f64,// ->610986
/*610976*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*610978*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VHADDPDYrr), 0,
                      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)
/*610986*/      0, // EndSwitchType
/*610987*/    0, /*End of Scope*/
/*610988*/  /*SwitchOpcode*/ 103|128,1/*231*/, TARGET_VAL(X86ISD::FHSUB),// ->611223
/*610992*/    OPC_RecordChild0, // #0 = $src1
/*610993*/    OPC_Scope, 18|128,1/*146*/, /*->611142*/ // 2 children in Scope
/*610996*/      OPC_MoveChild1,
/*610997*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*611000*/      OPC_RecordMemRef,
/*611001*/      OPC_RecordNode, // #1 = 'ld' chained node
/*611002*/      OPC_CheckFoldableChainNode,
/*611003*/      OPC_RecordChild1, // #2 = $src2
/*611004*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*611006*/      OPC_CheckPredicate, 9, // Predicate_load
/*611008*/      OPC_CheckPredicate, 40, // Predicate_vecload
/*611010*/      OPC_Scope, 83, /*->611095*/ // 2 children in Scope
/*611012*/        OPC_MoveParent,
/*611013*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->611034
/*611016*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*611018*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*611021*/          OPC_EmitMergeInputChains1_1,
/*611022*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VHSUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*611034*/        /*SwitchType*/ 18, MVT::v8f32,// ->611054
/*611036*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*611038*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*611041*/          OPC_EmitMergeInputChains1_1,
/*611042*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHSUBPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VHSUBPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*611054*/        /*SwitchType*/ 18, MVT::v2f64,// ->611074
/*611056*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*611058*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*611061*/          OPC_EmitMergeInputChains1_1,
/*611062*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VHSUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*611074*/        /*SwitchType*/ 18, MVT::v4f64,// ->611094
/*611076*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*611078*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*611081*/          OPC_EmitMergeInputChains1_1,
/*611082*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHSUBPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>>) - Complexity = 25
                    // Dst: (VHSUBPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*611094*/        0, // EndSwitchType
/*611095*/      /*Scope*/ 45, /*->611141*/
/*611096*/        OPC_CheckPredicate, 48, // Predicate_memop
/*611098*/        OPC_MoveParent,
/*611099*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->611120
/*611102*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*611104*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*611107*/          OPC_EmitMergeInputChains1_1,
/*611108*/          OPC_MorphNodeTo1, TARGET_VAL(X86::HSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (HSUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*611120*/        /*SwitchType*/ 18, MVT::v2f64,// ->611140
/*611122*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*611124*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*611127*/          OPC_EmitMergeInputChains1_1,
/*611128*/          OPC_MorphNodeTo1, TARGET_VAL(X86::HSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        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_vecload>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (HSUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*611140*/        0, // EndSwitchType
/*611141*/      0, /*End of Scope*/
/*611142*/    /*Scope*/ 79, /*->611222*/
/*611143*/      OPC_RecordChild1, // #1 = $src2
/*611144*/      OPC_SwitchType /*4 cases */, 24, MVT::v4f32,// ->611171
/*611147*/        OPC_Scope, 10, /*->611159*/ // 2 children in Scope
/*611149*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*611151*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHSUBPSrr), 0,
                        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)
/*611159*/        /*Scope*/ 10, /*->611170*/
/*611160*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*611162*/          OPC_MorphNodeTo1, TARGET_VAL(X86::HSUBPSrr), 0,
                        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)
/*611170*/        0, /*End of Scope*/
/*611171*/      /*SwitchType*/ 10, MVT::v8f32,// ->611183
/*611173*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*611175*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VHSUBPSYrr), 0,
                      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)
/*611183*/      /*SwitchType*/ 24, MVT::v2f64,// ->611209
/*611185*/        OPC_Scope, 10, /*->611197*/ // 2 children in Scope
/*611187*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*611189*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VHSUBPDrr), 0,
                        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)
/*611197*/        /*Scope*/ 10, /*->611208*/
/*611198*/          OPC_CheckPatternPredicate, 156, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*611200*/          OPC_MorphNodeTo1, TARGET_VAL(X86::HSUBPDrr), 0,
                        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)
/*611208*/        0, /*End of Scope*/
/*611209*/      /*SwitchType*/ 10, MVT::v4f64,// ->611221
/*611211*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX())
/*611213*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VHSUBPDYrr), 0,
                      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)
/*611221*/      0, // EndSwitchType
/*611222*/    0, /*End of Scope*/
/*611223*/  /*SwitchOpcode*/ 118|128,1/*246*/, TARGET_VAL(X86ISD::VRNDSCALES),// ->611473
/*611227*/    OPC_RecordChild0, // #0 = $src1
/*611228*/    OPC_RecordChild1, // #1 = $src2
/*611229*/    OPC_RecordChild2, // #2 = $src3
/*611230*/    OPC_MoveChild2,
/*611231*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*611234*/    OPC_MoveParent,
/*611235*/    OPC_SwitchType /*2 cases */, 116, MVT::v4f32,// ->611354
/*611238*/      OPC_Scope, 23, /*->611263*/ // 6 children in Scope
/*611240*/        OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX()) && (!Subtarget->hasAVX512())
/*611242*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*611245*/        OPC_EmitMergeInputChains, 1, 8, 
/*611248*/        OPC_EmitConvertToTarget, 2,
/*611250*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VROUNDSSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*611263*/      /*Scope*/ 23, /*->611287*/
/*611264*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*611266*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*611269*/        OPC_EmitMergeInputChains, 1, 8, 
/*611272*/        OPC_EmitConvertToTarget, 2,
/*611274*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (ROUNDSSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*611287*/      /*Scope*/ 23, /*->611311*/
/*611288*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611290*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*611293*/        OPC_EmitMergeInputChains, 1, 8, 
/*611296*/        OPC_EmitConvertToTarget, 2,
/*611298*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VRNDSCALESSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*611311*/      /*Scope*/ 13, /*->611325*/
/*611312*/        OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX()) && (!Subtarget->hasAVX512())
/*611314*/        OPC_EmitConvertToTarget, 2,
/*611316*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSr_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VROUNDSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*611325*/      /*Scope*/ 13, /*->611339*/
/*611326*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*611328*/        OPC_EmitConvertToTarget, 2,
/*611330*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSr_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (ROUNDSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*611339*/      /*Scope*/ 13, /*->611353*/
/*611340*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611342*/        OPC_EmitConvertToTarget, 2,
/*611344*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRNDSCALESSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*611353*/      0, /*End of Scope*/
/*611354*/    /*SwitchType*/ 116, MVT::v2f64,// ->611472
/*611356*/      OPC_Scope, 23, /*->611381*/ // 6 children in Scope
/*611358*/        OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX()) && (!Subtarget->hasAVX512())
/*611360*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*611363*/        OPC_EmitMergeInputChains, 1, 8, 
/*611366*/        OPC_EmitConvertToTarget, 2,
/*611368*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VROUNDSDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*611381*/      /*Scope*/ 23, /*->611405*/
/*611382*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*611384*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*611387*/        OPC_EmitMergeInputChains, 1, 8, 
/*611390*/        OPC_EmitConvertToTarget, 2,
/*611392*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (ROUNDSDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*611405*/      /*Scope*/ 23, /*->611429*/
/*611406*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611408*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*611411*/        OPC_EmitMergeInputChains, 1, 8, 
/*611414*/        OPC_EmitConvertToTarget, 2,
/*611416*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VRNDSCALESDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*611429*/      /*Scope*/ 13, /*->611443*/
/*611430*/        OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX()) && (!Subtarget->hasAVX512())
/*611432*/        OPC_EmitConvertToTarget, 2,
/*611434*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDr_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VROUNDSDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*611443*/      /*Scope*/ 13, /*->611457*/
/*611444*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*611446*/        OPC_EmitConvertToTarget, 2,
/*611448*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDr_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (ROUNDSDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*611457*/      /*Scope*/ 13, /*->611471*/
/*611458*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611460*/        OPC_EmitConvertToTarget, 2,
/*611462*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRNDSCALESDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*611471*/      0, /*End of Scope*/
/*611472*/    0, // EndSwitchType
/*611473*/  /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(X86ISD::FMAXS),// ->611681
/*611477*/    OPC_RecordChild0, // #0 = $src1
/*611478*/    OPC_RecordChild1, // #1 = $src2
/*611479*/    OPC_SwitchType /*2 cases */, 98, MVT::v4f32,// ->611580
/*611482*/      OPC_Scope, 20, /*->611504*/ // 6 children in Scope
/*611484*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*611486*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611489*/        OPC_EmitMergeInputChains, 1, 7, 
/*611492*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmaxs:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VMAXSSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*611504*/      /*Scope*/ 20, /*->611525*/
/*611505*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*611507*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611510*/        OPC_EmitMergeInputChains, 1, 7, 
/*611513*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MAXSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmaxs:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (MAXSSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*611525*/      /*Scope*/ 20, /*->611546*/
/*611526*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611528*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611531*/        OPC_EmitMergeInputChains, 1, 7, 
/*611534*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmaxs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VMAXSSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*611546*/      /*Scope*/ 10, /*->611557*/
/*611547*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*611549*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmaxs:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VMAXSSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*611557*/      /*Scope*/ 10, /*->611568*/
/*611558*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*611560*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MAXSSrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmaxs:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (MAXSSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*611568*/      /*Scope*/ 10, /*->611579*/
/*611569*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611571*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmaxs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VMAXSSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*611579*/      0, /*End of Scope*/
/*611580*/    /*SwitchType*/ 98, MVT::v2f64,// ->611680
/*611582*/      OPC_Scope, 20, /*->611604*/ // 6 children in Scope
/*611584*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*611586*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611589*/        OPC_EmitMergeInputChains, 1, 7, 
/*611592*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmaxs:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VMAXSDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*611604*/      /*Scope*/ 20, /*->611625*/
/*611605*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*611607*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611610*/        OPC_EmitMergeInputChains, 1, 7, 
/*611613*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MAXSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmaxs:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (MAXSDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*611625*/      /*Scope*/ 20, /*->611646*/
/*611626*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611628*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611631*/        OPC_EmitMergeInputChains, 1, 7, 
/*611634*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmaxs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VMAXSDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*611646*/      /*Scope*/ 10, /*->611657*/
/*611647*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*611649*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDrr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmaxs:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VMAXSDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*611657*/      /*Scope*/ 10, /*->611668*/
/*611658*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*611660*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MAXSDrr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmaxs:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (MAXSDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*611668*/      /*Scope*/ 10, /*->611679*/
/*611669*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611671*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmaxs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VMAXSDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*611679*/      0, /*End of Scope*/
/*611680*/    0, // EndSwitchType
/*611681*/  /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(X86ISD::FMINS),// ->611889
/*611685*/    OPC_RecordChild0, // #0 = $src1
/*611686*/    OPC_RecordChild1, // #1 = $src2
/*611687*/    OPC_SwitchType /*2 cases */, 98, MVT::v4f32,// ->611788
/*611690*/      OPC_Scope, 20, /*->611712*/ // 6 children in Scope
/*611692*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*611694*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611697*/        OPC_EmitMergeInputChains, 1, 7, 
/*611700*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmins:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VMINSSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*611712*/      /*Scope*/ 20, /*->611733*/
/*611713*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*611715*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611718*/        OPC_EmitMergeInputChains, 1, 7, 
/*611721*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MINSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmins:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (MINSSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*611733*/      /*Scope*/ 20, /*->611754*/
/*611734*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611736*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611739*/        OPC_EmitMergeInputChains, 1, 7, 
/*611742*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmins:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VMINSSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*611754*/      /*Scope*/ 10, /*->611765*/
/*611755*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*611757*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmins:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VMINSSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*611765*/      /*Scope*/ 10, /*->611776*/
/*611766*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*611768*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MINSSrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmins:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (MINSSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*611776*/      /*Scope*/ 10, /*->611787*/
/*611777*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611779*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmins:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VMINSSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*611787*/      0, /*End of Scope*/
/*611788*/    /*SwitchType*/ 98, MVT::v2f64,// ->611888
/*611790*/      OPC_Scope, 20, /*->611812*/ // 6 children in Scope
/*611792*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*611794*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611797*/        OPC_EmitMergeInputChains, 1, 7, 
/*611800*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmins:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VMINSDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*611812*/      /*Scope*/ 20, /*->611833*/
/*611813*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*611815*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611818*/        OPC_EmitMergeInputChains, 1, 7, 
/*611821*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MINSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmins:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (MINSDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*611833*/      /*Scope*/ 20, /*->611854*/
/*611834*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611836*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611839*/        OPC_EmitMergeInputChains, 1, 7, 
/*611842*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmins:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VMINSDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*611854*/      /*Scope*/ 10, /*->611865*/
/*611855*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*611857*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDrr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmins:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VMINSDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*611865*/      /*Scope*/ 10, /*->611876*/
/*611866*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*611868*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MINSDrr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmins:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (MINSDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*611876*/      /*Scope*/ 10, /*->611887*/
/*611877*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611879*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmins:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VMINSDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*611887*/      0, /*End of Scope*/
/*611888*/    0, // EndSwitchType
/*611889*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::RCP14S),// ->611964
/*611892*/    OPC_RecordChild0, // #0 = $src1
/*611893*/    OPC_RecordChild1, // #1 = $src2
/*611894*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->611929
/*611897*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611899*/      OPC_Scope, 18, /*->611919*/ // 2 children in Scope
/*611901*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611904*/        OPC_EmitMergeInputChains, 1, 7, 
/*611907*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86rcp14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VRCP14SSZrm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*611919*/      /*Scope*/ 8, /*->611928*/
/*611920*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SSZrr), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rcp14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VRCP14SSZrr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*611928*/      0, /*End of Scope*/
/*611929*/    /*SwitchType*/ 32, MVT::v2f64,// ->611963
/*611931*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611933*/      OPC_Scope, 18, /*->611953*/ // 2 children in Scope
/*611935*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611938*/        OPC_EmitMergeInputChains, 1, 7, 
/*611941*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86rcp14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VRCP14SDZrm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*611953*/      /*Scope*/ 8, /*->611962*/
/*611954*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14SDZrr), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rcp14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VRCP14SDZrr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*611962*/      0, /*End of Scope*/
/*611963*/    0, // EndSwitchType
/*611964*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::RSQRT14S),// ->612039
/*611967*/    OPC_RecordChild0, // #0 = $src1
/*611968*/    OPC_RecordChild1, // #1 = $src2
/*611969*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->612004
/*611972*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*611974*/      OPC_Scope, 18, /*->611994*/ // 2 children in Scope
/*611976*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*611979*/        OPC_EmitMergeInputChains, 1, 7, 
/*611982*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86rsqrt14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VRSQRT14SSZrm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*611994*/      /*Scope*/ 8, /*->612003*/
/*611995*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SSZrr), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rsqrt14s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VRSQRT14SSZrr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*612003*/      0, /*End of Scope*/
/*612004*/    /*SwitchType*/ 32, MVT::v2f64,// ->612038
/*612006*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612008*/      OPC_Scope, 18, /*->612028*/ // 2 children in Scope
/*612010*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*612013*/        OPC_EmitMergeInputChains, 1, 7, 
/*612016*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86rsqrt14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VRSQRT14SDZrm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*612028*/      /*Scope*/ 8, /*->612037*/
/*612029*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14SDZrr), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rsqrt14s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VRSQRT14SDZrr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*612037*/      0, /*End of Scope*/
/*612038*/    0, // EndSwitchType
/*612039*/  /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VRNDSCALES_RND),// ->612084
/*612042*/    OPC_RecordChild0, // #0 = $src1
/*612043*/    OPC_RecordChild1, // #1 = $src2
/*612044*/    OPC_RecordChild2, // #2 = $src3
/*612045*/    OPC_MoveChild2,
/*612046*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612049*/    OPC_MoveParent,
/*612050*/    OPC_CheckChild3Integer, 8, 
/*612052*/    OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->612068
/*612055*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612057*/      OPC_EmitConvertToTarget, 2,
/*612059*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZrb_Int), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86RndScalesRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VRNDSCALESSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*612068*/    /*SwitchType*/ 13, MVT::v2f64,// ->612083
/*612070*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612072*/      OPC_EmitConvertToTarget, 2,
/*612074*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZrb_Int), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86RndScalesRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VRNDSCALESDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*612083*/    0, // EndSwitchType
/*612084*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VREDUCE_RND),// ->612126
/*612087*/    OPC_RecordChild0, // #0 = $src1
/*612088*/    OPC_RecordChild1, // #1 = $src2
/*612089*/    OPC_MoveChild1,
/*612090*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612093*/    OPC_MoveParent,
/*612094*/    OPC_CheckChild2Integer, 8, 
/*612096*/    OPC_SwitchType /*2 cases */, 12, MVT::v16f32,// ->612111
/*612099*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612101*/      OPC_EmitConvertToTarget, 1,
/*612103*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrrib), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 2, 
                // Src: (X86VReduceRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VREDUCEPSZrrib:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*612111*/    /*SwitchType*/ 12, MVT::v8f64,// ->612125
/*612113*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612115*/      OPC_EmitConvertToTarget, 1,
/*612117*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrrib), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 2, 
                // Src: (X86VReduceRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VREDUCEPDZrrib:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*612125*/    0, // EndSwitchType
/*612126*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VRNDSCALE_RND),// ->612168
/*612129*/    OPC_RecordChild0, // #0 = $src1
/*612130*/    OPC_RecordChild1, // #1 = $src2
/*612131*/    OPC_MoveChild1,
/*612132*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612135*/    OPC_MoveParent,
/*612136*/    OPC_CheckChild2Integer, 8, 
/*612138*/    OPC_SwitchType /*2 cases */, 12, MVT::v16f32,// ->612153
/*612141*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612143*/      OPC_EmitConvertToTarget, 1,
/*612145*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrib), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 2, 
                // Src: (X86VRndScaleRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VRNDSCALEPSZrrib:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*612153*/    /*SwitchType*/ 12, MVT::v8f64,// ->612167
/*612155*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612157*/      OPC_EmitConvertToTarget, 1,
/*612159*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrib), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 2, 
                // Src: (X86VRndScaleRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VRNDSCALEPDZrrib:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*612167*/    0, // EndSwitchType
/*612168*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VGETMANT_RND),// ->612210
/*612171*/    OPC_RecordChild0, // #0 = $src1
/*612172*/    OPC_RecordChild1, // #1 = $src2
/*612173*/    OPC_MoveChild1,
/*612174*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612177*/    OPC_MoveParent,
/*612178*/    OPC_CheckChild2Integer, 8, 
/*612180*/    OPC_SwitchType /*2 cases */, 12, MVT::v16f32,// ->612195
/*612183*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612185*/      OPC_EmitConvertToTarget, 1,
/*612187*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrrib), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 2, 
                // Src: (X86VGetMantRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VGETMANTPSZrrib:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[i32] }):$src2)
/*612195*/    /*SwitchType*/ 12, MVT::v8f64,// ->612209
/*612197*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612199*/      OPC_EmitConvertToTarget, 1,
/*612201*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrrib), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 2, 
                // Src: (X86VGetMantRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VGETMANTPDZrrib:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[i32] }):$src2)
/*612209*/    0, // EndSwitchType
/*612210*/  /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VRANGE_RND),// ->612255
/*612213*/    OPC_RecordChild0, // #0 = $src1
/*612214*/    OPC_RecordChild1, // #1 = $src2
/*612215*/    OPC_RecordChild2, // #2 = $src3
/*612216*/    OPC_MoveChild2,
/*612217*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612220*/    OPC_MoveParent,
/*612221*/    OPC_CheckChild3Integer, 8, 
/*612223*/    OPC_SwitchType /*2 cases */, 13, MVT::v8f64,// ->612239
/*612226*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612228*/      OPC_EmitConvertToTarget, 2,
/*612230*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrrib), 0,
                    MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86VRangeRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VRANGEPDZrrib:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*612239*/    /*SwitchType*/ 13, MVT::v16f32,// ->612254
/*612241*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612243*/      OPC_EmitConvertToTarget, 2,
/*612245*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrrib), 0,
                    MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86VRangeRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VRANGEPSZrrib:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*612254*/    0, // EndSwitchType
/*612255*/  /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VRANGES_RND),// ->612300
/*612258*/    OPC_RecordChild0, // #0 = $src1
/*612259*/    OPC_RecordChild1, // #1 = $src2
/*612260*/    OPC_RecordChild2, // #2 = $src3
/*612261*/    OPC_MoveChild2,
/*612262*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612265*/    OPC_MoveParent,
/*612266*/    OPC_CheckChild3Integer, 8, 
/*612268*/    OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->612284
/*612271*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612273*/      OPC_EmitConvertToTarget, 2,
/*612275*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrrib), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86RangesRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VRANGESDZrrib:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*612284*/    /*SwitchType*/ 13, MVT::v4f32,// ->612299
/*612286*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612288*/      OPC_EmitConvertToTarget, 2,
/*612290*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrrib), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86RangesRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VRANGESSZrrib:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*612299*/    0, // EndSwitchType
/*612300*/  /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VREDUCES_RND),// ->612345
/*612303*/    OPC_RecordChild0, // #0 = $src1
/*612304*/    OPC_RecordChild1, // #1 = $src2
/*612305*/    OPC_RecordChild2, // #2 = $src3
/*612306*/    OPC_MoveChild2,
/*612307*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612310*/    OPC_MoveParent,
/*612311*/    OPC_CheckChild3Integer, 8, 
/*612313*/    OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->612329
/*612316*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612318*/      OPC_EmitConvertToTarget, 2,
/*612320*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrrib), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86ReducesRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VREDUCESDZrrib:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*612329*/    /*SwitchType*/ 13, MVT::v4f32,// ->612344
/*612331*/      OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612333*/      OPC_EmitConvertToTarget, 2,
/*612335*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrrib), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86ReducesRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VREDUCESSZrrib:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*612344*/    0, // EndSwitchType
/*612345*/  /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VGETMANTS_RND),// ->612390
/*612348*/    OPC_RecordChild0, // #0 = $src1
/*612349*/    OPC_RecordChild1, // #1 = $src2
/*612350*/    OPC_RecordChild2, // #2 = $src3
/*612351*/    OPC_MoveChild2,
/*612352*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612355*/    OPC_MoveParent,
/*612356*/    OPC_CheckChild3Integer, 8, 
/*612358*/    OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->612374
/*612361*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612363*/      OPC_EmitConvertToTarget, 2,
/*612365*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrrib), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86GetMantsRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VGETMANTSDZrrib:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (imm:{ *:[i32] }):$src3)
/*612374*/    /*SwitchType*/ 13, MVT::v4f32,// ->612389
/*612376*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612378*/      OPC_EmitConvertToTarget, 2,
/*612380*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrrib), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86GetMantsRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3, 8:{ *:[i32] }) - Complexity = 11
                // Dst: (VGETMANTSSZrrib:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (imm:{ *:[i32] }):$src3)
/*612389*/    0, // EndSwitchType
/*612390*/  /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMINS_RND),// ->612423
/*612393*/    OPC_RecordChild0, // #0 = $src1
/*612394*/    OPC_RecordChild1, // #1 = $src2
/*612395*/    OPC_CheckChild2Integer, 8, 
/*612397*/    OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->612410
/*612400*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612402*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrrb_Int), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fminRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VMINSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*612410*/    /*SwitchType*/ 10, MVT::v2f64,// ->612422
/*612412*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612414*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrrb_Int), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fminRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VMINSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*612422*/    0, // EndSwitchType
/*612423*/  /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMAXS_RND),// ->612456
/*612426*/    OPC_RecordChild0, // #0 = $src1
/*612427*/    OPC_RecordChild1, // #1 = $src2
/*612428*/    OPC_CheckChild2Integer, 8, 
/*612430*/    OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->612443
/*612433*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612435*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrrb_Int), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmaxRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VMAXSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*612443*/    /*SwitchType*/ 10, MVT::v2f64,// ->612455
/*612445*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612447*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrrb_Int), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmaxRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VMAXSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*612455*/    0, // EndSwitchType
/*612456*/  /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMIN_RND),// ->612489
/*612459*/    OPC_RecordChild0, // #0 = $src1
/*612460*/    OPC_RecordChild1, // #1 = $src2
/*612461*/    OPC_CheckChild2Integer, 8, 
/*612463*/    OPC_SwitchType /*2 cases */, 10, MVT::v16f32,// ->612476
/*612466*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612468*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrrb), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fminRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VMINPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*612476*/    /*SwitchType*/ 10, MVT::v8f64,// ->612488
/*612478*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612480*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrrb), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fminRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VMINPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*612488*/    0, // EndSwitchType
/*612489*/  /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::FMAX_RND),// ->612522
/*612492*/    OPC_RecordChild0, // #0 = $src1
/*612493*/    OPC_RecordChild1, // #1 = $src2
/*612494*/    OPC_CheckChild2Integer, 8, 
/*612496*/    OPC_SwitchType /*2 cases */, 10, MVT::v16f32,// ->612509
/*612499*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612501*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrrb), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmaxRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VMAXPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*612509*/    /*SwitchType*/ 10, MVT::v8f64,// ->612521
/*612511*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612513*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrrb), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmaxRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, 8:{ *:[i32] }) - Complexity = 8
                // Dst: (VMAXPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*612521*/    0, // EndSwitchType
/*612522*/  /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::VFPEXT_RND),// ->612541
/*612525*/    OPC_RecordChild0, // #0 = $src
/*612526*/    OPC_CheckChild0Type, MVT::v8f32,
/*612528*/    OPC_CheckChild1Integer, 8, 
/*612530*/    OPC_CheckType, MVT::v8f64,
/*612532*/    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612534*/    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrrb), 0,
                  MVT::v8f64, 1/*#Ops*/, 0, 
              // Src: (X86vfpextRnd:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src, 8:{ *:[i32] }) - Complexity = 8
              // Dst: (VCVTPS2PDZrrb:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src)
/*612541*/  /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::CVTPH2PS_RND),// ->612560
/*612544*/    OPC_RecordChild0, // #0 = $src
/*612545*/    OPC_CheckChild0Type, MVT::v16i16,
/*612547*/    OPC_CheckChild1Integer, 8, 
/*612549*/    OPC_CheckType, MVT::v16f32,
/*612551*/    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612553*/    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrrb), 0,
                  MVT::v16f32, 1/*#Ops*/, 0, 
              // Src: (X86cvtph2psRnd:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src, 8:{ *:[i32] }) - Complexity = 8
              // Dst: (VCVTPH2PSZrrb:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src)
/*612560*/  /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::FADD_RND),// ->612603
/*612563*/    OPC_RecordChild0, // #0 = $src1
/*612564*/    OPC_RecordChild1, // #1 = $src2
/*612565*/    OPC_RecordChild2, // #2 = $rc
/*612566*/    OPC_MoveChild2,
/*612567*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612570*/    OPC_MoveParent,
/*612571*/    OPC_SwitchType /*2 cases */, 13, MVT::v16f32,// ->612587
/*612574*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612576*/      OPC_EmitConvertToTarget, 2,
/*612578*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrrb), 0,
                    MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86faddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VADDPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*612587*/    /*SwitchType*/ 13, MVT::v8f64,// ->612602
/*612589*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612591*/      OPC_EmitConvertToTarget, 2,
/*612593*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrrb), 0,
                    MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86faddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VADDPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*612602*/    0, // EndSwitchType
/*612603*/  /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::FMUL_RND),// ->612646
/*612606*/    OPC_RecordChild0, // #0 = $src1
/*612607*/    OPC_RecordChild1, // #1 = $src2
/*612608*/    OPC_RecordChild2, // #2 = $rc
/*612609*/    OPC_MoveChild2,
/*612610*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612613*/    OPC_MoveParent,
/*612614*/    OPC_SwitchType /*2 cases */, 13, MVT::v16f32,// ->612630
/*612617*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612619*/      OPC_EmitConvertToTarget, 2,
/*612621*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrrb), 0,
                    MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86fmulRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VMULPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*612630*/    /*SwitchType*/ 13, MVT::v8f64,// ->612645
/*612632*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612634*/      OPC_EmitConvertToTarget, 2,
/*612636*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrrb), 0,
                    MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86fmulRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VMULPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*612645*/    0, // EndSwitchType
/*612646*/  /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::FSUB_RND),// ->612689
/*612649*/    OPC_RecordChild0, // #0 = $src1
/*612650*/    OPC_RecordChild1, // #1 = $src2
/*612651*/    OPC_RecordChild2, // #2 = $rc
/*612652*/    OPC_MoveChild2,
/*612653*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612656*/    OPC_MoveParent,
/*612657*/    OPC_SwitchType /*2 cases */, 13, MVT::v16f32,// ->612673
/*612660*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612662*/      OPC_EmitConvertToTarget, 2,
/*612664*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrrb), 0,
                    MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86fsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSUBPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*612673*/    /*SwitchType*/ 13, MVT::v8f64,// ->612688
/*612675*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612677*/      OPC_EmitConvertToTarget, 2,
/*612679*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrrb), 0,
                    MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86fsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSUBPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*612688*/    0, // EndSwitchType
/*612689*/  /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::FDIV_RND),// ->612732
/*612692*/    OPC_RecordChild0, // #0 = $src1
/*612693*/    OPC_RecordChild1, // #1 = $src2
/*612694*/    OPC_RecordChild2, // #2 = $rc
/*612695*/    OPC_MoveChild2,
/*612696*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612699*/    OPC_MoveParent,
/*612700*/    OPC_SwitchType /*2 cases */, 13, MVT::v16f32,// ->612716
/*612703*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612705*/      OPC_EmitConvertToTarget, 2,
/*612707*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrrb), 0,
                    MVT::v16f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86fdivRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VDIVPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (imm:{ *:[i32] }):$rc)
/*612716*/    /*SwitchType*/ 13, MVT::v8f64,// ->612731
/*612718*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612720*/      OPC_EmitConvertToTarget, 2,
/*612722*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrrb), 0,
                    MVT::v8f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86fdivRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VDIVPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (imm:{ *:[i32] }):$rc)
/*612731*/    0, // EndSwitchType
/*612732*/  /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::FMADDSUB_RND),// ->612778
/*612735*/    OPC_RecordChild0, // #0 = $src2
/*612736*/    OPC_RecordChild1, // #1 = $src1
/*612737*/    OPC_RecordChild2, // #2 = $src3
/*612738*/    OPC_RecordChild3, // #3 = $rc
/*612739*/    OPC_MoveChild3,
/*612740*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612743*/    OPC_MoveParent,
/*612744*/    OPC_SwitchType /*2 cases */, 14, MVT::v16f32,// ->612761
/*612747*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612749*/      OPC_EmitConvertToTarget, 3,
/*612751*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmaddsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADDSUB213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*612761*/    /*SwitchType*/ 14, MVT::v8f64,// ->612777
/*612763*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612765*/      OPC_EmitConvertToTarget, 3,
/*612767*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmaddsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADDSUB213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*612777*/    0, // EndSwitchType
/*612778*/  /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::FMSUBADD_RND),// ->612824
/*612781*/    OPC_RecordChild0, // #0 = $src2
/*612782*/    OPC_RecordChild1, // #1 = $src1
/*612783*/    OPC_RecordChild2, // #2 = $src3
/*612784*/    OPC_RecordChild3, // #3 = $rc
/*612785*/    OPC_MoveChild3,
/*612786*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612789*/    OPC_MoveParent,
/*612790*/    OPC_SwitchType /*2 cases */, 14, MVT::v16f32,// ->612807
/*612793*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612795*/      OPC_EmitConvertToTarget, 3,
/*612797*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmsubaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUBADD213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (imm:{ *:[i32] }):$rc)
/*612807*/    /*SwitchType*/ 14, MVT::v8f64,// ->612823
/*612809*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612811*/      OPC_EmitConvertToTarget, 3,
/*612813*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 4, 
                // Src: (X86FmsubaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUBADD213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (imm:{ *:[i32] }):$rc)
/*612823*/    0, // EndSwitchType
/*612824*/  /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VFPROUND_RND),// ->612850
/*612827*/    OPC_RecordChild0, // #0 = $src
/*612828*/    OPC_CheckChild0Type, MVT::v8f64,
/*612830*/    OPC_RecordChild1, // #1 = $rc
/*612831*/    OPC_MoveChild1,
/*612832*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612835*/    OPC_MoveParent,
/*612836*/    OPC_CheckType, MVT::v8f32,
/*612838*/    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612840*/    OPC_EmitConvertToTarget, 1,
/*612842*/    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrb), 0,
                  MVT::v8f32, 2/*#Ops*/, 0, 2, 
              // Src: (X86vfproundRnd:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
              // Dst: (VCVTPD2PSZrrb:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*612850*/  /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::SINT_TO_FP_RND),// ->612918
/*612853*/    OPC_RecordChild0, // #0 = $src
/*612854*/    OPC_Scope, 22, /*->612878*/ // 2 children in Scope
/*612856*/      OPC_CheckChild0Type, MVT::v16i32,
/*612858*/      OPC_RecordChild1, // #1 = $rc
/*612859*/      OPC_MoveChild1,
/*612860*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612863*/      OPC_MoveParent,
/*612864*/      OPC_CheckType, MVT::v16f32,
/*612866*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612868*/      OPC_EmitConvertToTarget, 1,
/*612870*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrrb), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 2, 
                // Src: (X86VSintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTDQ2PSZrrb:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc)
/*612878*/    /*Scope*/ 38, /*->612917*/
/*612879*/      OPC_CheckChild0Type, MVT::v8i64,
/*612881*/      OPC_RecordChild1, // #1 = $rc
/*612882*/      OPC_MoveChild1,
/*612883*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612886*/      OPC_MoveParent,
/*612887*/      OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->612902
/*612890*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612892*/        OPC_EmitConvertToTarget, 1,
/*612894*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrrb), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VSintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTQQ2PDZrrb:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*612902*/      /*SwitchType*/ 12, MVT::v8f32,// ->612916
/*612904*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612906*/        OPC_EmitConvertToTarget, 1,
/*612908*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrrb), 0,
                      MVT::v8f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VSintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTQQ2PSZrrb:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*612916*/      0, // EndSwitchType
/*612917*/    0, /*End of Scope*/
/*612918*/  /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::UINT_TO_FP_RND),// ->612986
/*612921*/    OPC_RecordChild0, // #0 = $src
/*612922*/    OPC_Scope, 22, /*->612946*/ // 2 children in Scope
/*612924*/      OPC_CheckChild0Type, MVT::v16i32,
/*612926*/      OPC_RecordChild1, // #1 = $rc
/*612927*/      OPC_MoveChild1,
/*612928*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612931*/      OPC_MoveParent,
/*612932*/      OPC_CheckType, MVT::v16f32,
/*612934*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*612936*/      OPC_EmitConvertToTarget, 1,
/*612938*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrrb), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 2, 
                // Src: (X86VUintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTUDQ2PSZrrb:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (imm:{ *:[i32] }):$rc)
/*612946*/    /*Scope*/ 38, /*->612985*/
/*612947*/      OPC_CheckChild0Type, MVT::v8i64,
/*612949*/      OPC_RecordChild1, // #1 = $rc
/*612950*/      OPC_MoveChild1,
/*612951*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612954*/      OPC_MoveParent,
/*612955*/      OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->612970
/*612958*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612960*/        OPC_EmitConvertToTarget, 1,
/*612962*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrrb), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VUintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTUQQ2PDZrrb:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*612970*/      /*SwitchType*/ 12, MVT::v8f32,// ->612984
/*612972*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasDQI())
/*612974*/        OPC_EmitConvertToTarget, 1,
/*612976*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrrb), 0,
                      MVT::v8f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86VUintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTUQQ2PSZrrb:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (imm:{ *:[i32] }):$rc)
/*612984*/      0, // EndSwitchType
/*612985*/    0, /*End of Scope*/
/*612986*/  /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FSQRT_RND),// ->613026
/*612989*/    OPC_RecordChild0, // #0 = $src
/*612990*/    OPC_RecordChild1, // #1 = $rc
/*612991*/    OPC_MoveChild1,
/*612992*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*612995*/    OPC_MoveParent,
/*612996*/    OPC_SwitchType /*2 cases */, 12, MVT::v16f32,// ->613011
/*612999*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*613001*/      OPC_EmitConvertToTarget, 1,
/*613003*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZrb), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 2, 
                // Src: (X86fsqrtRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSQRTPSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, (imm:{ *:[i32] }):$rc)
/*613011*/    /*SwitchType*/ 12, MVT::v8f64,// ->613025
/*613013*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*613015*/      OPC_EmitConvertToTarget, 1,
/*613017*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZrb), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 2, 
                // Src: (X86fsqrtRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSQRTPDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, (imm:{ *:[i32] }):$rc)
/*613025*/    0, // EndSwitchType
/*613026*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::MOVHLPS),// ->613068
/*613029*/    OPC_RecordChild0, // #0 = $src1
/*613030*/    OPC_RecordChild1, // #1 = $src2
/*613031*/    OPC_CheckType, MVT::v4f32,
/*613033*/    OPC_Scope, 10, /*->613045*/ // 3 children in Scope
/*613035*/      OPC_CheckPatternPredicate, 11, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*613037*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVHLPSrr), 0,
                    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)
/*613045*/    /*Scope*/ 10, /*->613056*/
/*613046*/      OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*613048*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOVHLPSrr), 0,
                    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)
/*613056*/    /*Scope*/ 10, /*->613067*/
/*613057*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*613059*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVHLPSZrr), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Movhlps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                // Dst: (VMOVHLPSZrr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*613067*/    0, /*End of Scope*/
/*613068*/  0, // EndSwitchOpcode
    0
  }; // Total Array size is 613070 bytes

  // Opcode Histogram:
  // #OPC_Scope                                = 4454
  // #OPC_RecordNode                           = 4840
  // #OPC_RecordChild                          = 18983
  // #OPC_RecordMemRef                         = 4780
  // #OPC_CaptureGlueInput                     = 17
  // #OPC_MoveChild                            = 16471
  // #OPC_MoveParent                           = 30913
  // #OPC_CheckSame                            = 0
  // #OPC_CheckChildSame                       = 1505
  // #OPC_CheckPatternPredicate                = 17265
  // #OPC_CheckPredicate                       = 18790
  // #OPC_CheckOpcode                          = 14939
  // #OPC_SwitchOpcode                         = 1035
  // #OPC_CheckType                            = 16439
  // #OPC_SwitchType                           = 3462
  // #OPC_CheckChildType                       = 2331
  // #OPC_CheckInteger                         = 3
  // #OPC_CheckChildInteger                    = 1726
  // #OPC_CheckCondCode                        = 742
  // #OPC_CheckValueType                       = 40
  // #OPC_CheckComplexPat                      = 11201
  // #OPC_CheckAndImm                          = 6
  // #OPC_CheckOrImm                           = 0
  // #OPC_CheckFoldableChainNode               = 4676
  // #OPC_EmitInteger                          = 688
  // #OPC_EmitStringInteger                    = 2784
  // #OPC_EmitRegister                         = 0
  // #OPC_EmitConvertToTarget                  = 2690
  // #OPC_EmitMergeInputChains                 = 11228
  // #OPC_EmitCopyToReg                        = 477
  // #OPC_EmitNode                             = 3621
  // #OPC_EmitNodeXForm                        = 856
  // #OPC_CompleteMatch                        = 103
  // #OPC_MorphNodeTo                          = 18663

  #undef TARGET_VAL
  SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
}
#endif // GET_DAGISEL_BODY

#ifdef GET_DAGISEL_DECL
bool CheckPatternPredicate(unsigned PredNo) const override;
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
bool DAGISEL_CLASS_COLONCOLON CheckPatternPredicate(unsigned PredNo) const
#if DAGISEL_INLINE
  override
#endif
{
  switch (PredNo) {
  default: llvm_unreachable("Invalid predicate in table?");
  case 0: return (Subtarget->hasAVX()) && (!Subtarget->hasVLX());
  case 1: return (Subtarget->hasSSE1() && !Subtarget->hasAVX());
  case 2: return (Subtarget->hasAVX512()) && (Subtarget->hasVLX());
  case 3: return (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 4: return (Subtarget->hasSSE2());
  case 5: return (Subtarget->hasVLX());
  case 6: return (Subtarget->hasAVX512());
  case 7: return (Subtarget->hasSSE4A());
  case 8: return (Subtarget->is64Bit());
  case 9: return (!Subtarget->slowIncDec() || MF->getFunction().optForSize());
  case 10: return (Subtarget->is64Bit()) && (!Subtarget->slowIncDec() || MF->getFunction().optForSize());
  case 11: return (Subtarget->hasAVX() && !Subtarget->hasAVX512());
  case 12: return (Subtarget->hasF16C()) && (!Subtarget->hasVLX());
  case 13: return (Subtarget->hasSSE41() && !Subtarget->hasAVX());
  case 14: return (Subtarget->hasAVX()) && (!Subtarget->hasDQI());
  case 15: return (Subtarget->hasAVX()) && (!Subtarget->hasBWI());
  case 16: return (Subtarget->hasBWI());
  case 17: return (Subtarget->hasAVX());
  case 18: return (Subtarget->hasAVX() && !Subtarget->hasAVX2());
  case 19: return (Subtarget->hasAVX2()) && (!Subtarget->hasVLX());
  case 20: return (Subtarget->hasDQI());
  case 21: return (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel);
  case 22: return (MF->getFunction().optForMinSize());
  case 23: return (Subtarget->hasMOVBE());
  case 24: return (!Subtarget->hasSSE1());
  case 25: return (!Subtarget->hasSSE2());
  case 26: return (Subtarget->hasBWI()) && (Subtarget->hasVLX());
  case 27: return (Subtarget->hasMMX());
  case 28: return (Subtarget->hasAVX2());
  case 29: return (Subtarget->hasVBMI2()) && (Subtarget->hasVLX());
  case 30: return (Subtarget->hasVBMI2());
  case 31: return (Subtarget->hasSSE1());
  case 32: return (Subtarget->hasBMI2());
  case 33: return (Subtarget->hasBWI()) && (!Subtarget->hasVLX());
  case 34: return (Subtarget->hasTBM());
  case 35: return (Subtarget->hasBMI()) && (!Subtarget->hasBMI2()) && (!Subtarget->hasTBM());
  case 36: return (Subtarget->hasBMI2()) && (!Subtarget->hasTBM());
  case 37: return (Subtarget->hasBMI());
  case 38: return (MF->getFunction().optForSize());
  case 39: return (Subtarget->hasDQI()) && (Subtarget->hasVLX());
  case 40: return (Subtarget->hasBITALG());
  case 41: return (Subtarget->hasBITALG()) && (Subtarget->hasVLX());
  case 42: return (Subtarget->hasAVX512()) && (!Subtarget->hasVLX());
  case 43: return (!Subtarget->hasDQI());
  case 44: return (Subtarget->hasMMX()) && (Subtarget->hasSSE1());
  case 45: return (Subtarget->hasMMX()) && (Subtarget->hasSSSE3());
  case 46: return (Subtarget->hasSSE42());
  case 47: return (Subtarget->hasMMX()) && (Subtarget->hasSSE2());
  case 48: return (Subtarget->has3DNow());
  case 49: return (Subtarget->hasSHA());
  case 50: return (Subtarget->hasXOP());
  case 51: return (Subtarget->hasSSSE3() && !Subtarget->hasAVX());
  case 52: return (Subtarget->hasAES()) && (Subtarget->hasAVX());
  case 53: return (Subtarget->hasAES()) && (!Subtarget->hasAVX());
  case 54: return (Subtarget->hasPCLMUL()) && (!Subtarget->hasAVX());
  case 55: return (Subtarget->hasAVX()) && (Subtarget->hasPCLMUL()) && (!Subtarget->hasVLX() || !Subtarget->hasVPCLMULQDQ());
  case 56: return (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ());
  case 57: return (Subtarget->hasVPCLMULQDQ()) && (!Subtarget->hasVLX());
  case 58: return (Subtarget->hasAVX512()) && (Subtarget->hasVPCLMULQDQ());
  case 59: return (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES());
  case 60: return (Subtarget->hasVAES()) && (Subtarget->hasVLX());
  case 61: return (Subtarget->hasVAES()) && (!Subtarget->hasVLX());
  case 62: return (Subtarget->hasAVX512()) && (Subtarget->hasVAES());
  case 63: return (MF->getFunction().optForSize()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX());
  case 64: return (Subtarget->hasAVX()) && (MF->getFunction().optForSize());
  case 65: return (Subtarget->hasADX());
  case 66: return (Subtarget->hasPRFCHW());
  case 67: return (Subtarget->hasPREFETCHWT1());
  case 68: return (Subtarget->hasSSEPrefetch());
  case 69: return (Subtarget->has3DNow()) && (!Subtarget->hasSSEPrefetch());
  case 70: return (Subtarget->hasLWP());
  case 71: return (Subtarget->hasPTWRITE());
  case 72: return (Subtarget->hasPTWRITE()) && (Subtarget->is64Bit());
  case 73: return (Subtarget->hasMOVDIRI());
  case 74: return (Subtarget->hasMOVDIRI()) && (Subtarget->is64Bit());
  case 75: return (Subtarget->hasMOVDIR64B());
  case 76: return (Subtarget->hasMOVDIR64B()) && (Subtarget->is64Bit());
  case 77: return (Subtarget->hasCLFLUSHOPT());
  case 78: return (Subtarget->hasCLWB());
  case 79: return (Subtarget->hasCLDEMOTE());
  case 80: return (Subtarget->hasFXSR());
  case 81: return (Subtarget->hasFXSR()) && (Subtarget->is64Bit());
  case 82: return (Subtarget->hasXSAVE());
  case 83: return (Subtarget->hasXSAVE()) && (Subtarget->is64Bit());
  case 84: return (Subtarget->hasXSAVEOPT());
  case 85: return (Subtarget->hasXSAVEOPT()) && (Subtarget->is64Bit());
  case 86: return (Subtarget->hasXSAVEC());
  case 87: return (Subtarget->hasXSAVEC()) && (Subtarget->is64Bit());
  case 88: return (Subtarget->hasXSAVES());
  case 89: return (Subtarget->hasXSAVES()) && (Subtarget->is64Bit());
  case 90: return (Subtarget->hasINVPCID()) && (!Subtarget->is64Bit());
  case 91: return (Subtarget->hasINVPCID()) && (Subtarget->is64Bit());
  case 92: return (Subtarget->hasMWAITX());
  case 93: return (Subtarget->hasCLZERO());
  case 94: return (Subtarget->hasSSE3());
  case 95: return (Subtarget->hasRTM());
  case 96: return (Subtarget->hasWAITPKG()) && (!Subtarget->is64Bit());
  case 97: return (Subtarget->hasWAITPKG());
  case 98: return (Subtarget->hasWAITPKG()) && (Subtarget->is64Bit());
  case 99: return (Subtarget->hasMFence());
  case 100: return (Subtarget->hasAVX()) && (!Subtarget->is64Bit());
  case 101: return (!Subtarget->is64Bit()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 102: return (Subtarget->hasAVX()) && (Subtarget->is64Bit());
  case 103: return (Subtarget->is64Bit()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 104: return (Subtarget->hasMMX()) && (Subtarget->hasSSE1()) && (!Subtarget->is64Bit());
  case 105: return (Subtarget->hasMMX()) && (Subtarget->hasSSE1()) && (Subtarget->is64Bit());
  case 106: return (Subtarget->hasWBNOINVD());
  case 107: return (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit());
  case 108: return (!Subtarget->is64Bit());
  case 109: return (Subtarget->hasBMI()) && (!Subtarget->hasTBM());
  case 110: return (Subtarget->hasCMov());
  case 111: return (!Subtarget->hasCMov());
  case 112: return (!Subtarget->hasSSE1()) && (Subtarget->hasCMov());
  case 113: return (!Subtarget->hasSSE2()) && (Subtarget->hasCMov());
  case 114: return (Subtarget->is64Bit()) && (!Subtarget->useRetpoline());
  case 115: return (!TM.isPositionIndependent()) && (!Subtarget->is64Bit()) && (!Subtarget->useRetpoline());
  case 116: return (!Subtarget->isTarget64BitLP64());
  case 117: return (Subtarget->isTarget64BitLP64());
  case 118: return (!Subtarget->is64Bit()) && (!Subtarget->useRetpoline());
  case 119: return (Subtarget->is64Bit()) && (Subtarget->useRetpoline());
  case 120: return (!Subtarget->is64Bit()) && (Subtarget->useRetpoline());
  case 121: return (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI());
  case 122: return (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI());
  case 123: return (Subtarget->hasDQI()) && (!Subtarget->hasVLX());
  case 124: return (Subtarget->hasFastSHLDRotate());
  case 125: return (MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512());
  case 126: return (MF->getFunction().optForSize() || !Subtarget->hasSSE41()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX());
  case 127: return (Subtarget->hasAVX()) && (!MF->getFunction().optForSize());
  case 128: return (!MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX());
  case 129: return (Subtarget->hasAVX512()) && (MF->getFunction().optForSize());
  case 130: return (Subtarget->hasAVX512()) && (!MF->getFunction().optForSize());
  case 131: return (Subtarget->hasFMA4());
  case 132: return (Subtarget->hasLZCNT());
  case 133: return (Subtarget->hasCDI());
  case 134: return (Subtarget->hasCDI()) && (Subtarget->hasVLX());
  case 135: return (Subtarget->hasCDI()) && (!Subtarget->hasVLX());
  case 136: return (!Subtarget->slowTwoMemOps()) && (!Subtarget->is64Bit());
  case 137: return (!Subtarget->slowTwoMemOps()) && (!Subtarget->is64Bit()) && (!Subtarget->useRetpoline());
  case 138: return (!Subtarget->slowTwoMemOps()) && (Subtarget->is64Bit()) && (!Subtarget->useRetpoline());
  case 139: return (Subtarget->isLegalToCallImmediateAddr());
  case 140: return (!Subtarget->slowTwoMemOps()) && (Subtarget->is64Bit());
  case 141: return (Subtarget->hasPOPCNT());
  case 142: return (Subtarget->hasVPOPCNTDQ());
  case 143: return (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ());
  case 144: return (Subtarget->hasVPOPCNTDQ()) && (!Subtarget->hasVLX());
  case 145: return (Subtarget->hasBITALG()) && (!Subtarget->hasVLX());
  case 146: return (Subtarget->hasAVX512()) && (!Subtarget->hasDQI());
  case 147: return (MF->getFunction().optForSize()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 148: return (!MF->getFunction().optForSize()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 149: return (!MF->getFunction().optForSize()) && (Subtarget->hasAVX() && !Subtarget->hasAVX512());
  case 150: return (Subtarget->hasCmpxchg16b());
  case 151: return (!Subtarget->is64Bit()) && (MF->getFunction().optForSize());
  case 152: return (!Subtarget->isTargetWin64() ||Subtarget->getFrameLowering()->hasFP(*MF)) && (MF->getFunction().optForMinSize());
  case 153: return (Subtarget->hasDQI()) && (!Subtarget->hasBWI());
  case 154: return (Subtarget->hasRDPID()) && (!Subtarget->is64Bit());
  case 155: return (Subtarget->hasRDPID()) && (Subtarget->is64Bit());
  case 156: return (Subtarget->hasSSE3() && !Subtarget->hasAVX());
  case 157: return (TM.getCodeModel() == CodeModel::Kernel);
  case 158: return (Subtarget->hasLAHFSAHF());
  case 159: return (Subtarget->hasRDRAND());
  case 160: return (Subtarget->hasRDSEED());
  case 161: return (!Subtarget->isTargetPS4());
  case 162: return (Subtarget->isTargetPS4());
  case 163: return (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4());
  case 164: return (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512());
  case 165: return (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX());
  case 166: return (Subtarget->hasFMA4()) && (!Subtarget->hasVLX());
  case 167: return (MF->getFunction().optForSize()) && (Subtarget->hasSSE41() && !Subtarget->hasAVX());
  case 168: return (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasDQI());
  case 169: return (Subtarget->hasERI());
  case 170: return (Subtarget->hasSSE1()) && (!Subtarget->hasAVX512());
  case 171: return (Subtarget->hasSSE2()) && (!Subtarget->hasAVX512());
  case 172: return (Subtarget->hasIFMA()) && (Subtarget->hasVLX());
  case 173: return (Subtarget->hasVLX()) && (Subtarget->hasVNNI());
  case 174: return (Subtarget->hasIFMA());
  case 175: return (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX());
  case 176: return (Subtarget->hasVBMI()) && (Subtarget->hasVLX());
  case 177: return (Subtarget->hasVNNI());
  case 178: return (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI());
  case 179: return (Subtarget->hasVBMI());
  case 180: return (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 181: return (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI());
  case 182: return (Subtarget->hasBWI()) && (Subtarget->hasDQI());
  case 183: return (Subtarget->hasBWI()) && (!Subtarget->hasDQI());
  case 184: return (Subtarget->hasAVX()) && (true);
  case 185: return (Subtarget->hasAVX2()) && (true);
  case 186: return (Subtarget->hasSSE42() && !Subtarget->hasAVX());
  case 187: return (Subtarget->hasAVX2() && !Subtarget->hasAVX512());
  case 188: return (!Subtarget->hasVLX());
  case 189: return (!Subtarget->hasAVX512());
  case 190: return (Subtarget->hasAVX() && !Subtarget->hasAVX2()) && (MF->getFunction().optForMinSize());
  case 191: return (Subtarget->hasFMA()) && (!Subtarget->hasAVX512());
  case 192: return (MF->getFunction().optForSize() || !Subtarget->hasSSE41()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 193: return (Subtarget->hasAVX()) && (!Subtarget->hasAVX512());
  }
}
#endif // GET_DAGISEL_BODY

#ifdef GET_DAGISEL_DECL
bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const override;
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDNode *Node, unsigned PredNo) const
#if DAGISEL_INLINE
  override
#endif
{
  switch (PredNo) {
  default: llvm_unreachable("Invalid predicate in table?");
  case 0: { 
    // Predicate_unindexedstore
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
return true;

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

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

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

  }
  case 3: { 
    // Predicate_alignednontemporalstore
    SDNode *N = Node;

  StoreSDNode *St = cast<StoreSDNode>(N);
  return St->getAlignment() >= St->getMemoryVT().getStoreSize();

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

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

  LoadSDNode *LD = cast<LoadSDNode>(N);
  ISD::LoadExtType ExtType = LD->getExtensionType();
  return ExtType == ISD::NON_EXTLOAD || ExtType == ISD::EXTLOAD ||
         ExtType == ISD::ZEXTLOAD;

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

  return countTrailingOnes<uint64_t>(Imm) >= 5;

  }
  case 7: { 
    // 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 8: { 
    // 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 9: { 
    // Predicate_load
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
return true;

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

  return countTrailingOnes<uint64_t>(Imm) >= 6;

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

  return countTrailingOnes<uint64_t>(Imm) >= 3;

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

  return countTrailingOnes<uint64_t>(Imm) >= 4;

  }
  case 13: { 
    // Predicate_i16immSExt8
    // Predicate_i32immSExt8
    // Predicate_i64immSExt8
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return isInt<8>(Imm); 
  }
  case 14: { 
    // Predicate_i16immSExt8_su
    // Predicate_i32immSExt8_su
    // Predicate_i64immSExt8_su
    // Predicate_i64immSExt32_su
    auto *N = cast<ConstantSDNode>(Node);

    return !shouldAvoidImmediateInstFormsForSize(N);

  }
  case 15: { 
    // Predicate_i64immSExt32
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return isInt<32>(Imm); 
  }
  case 16: { 
    // Predicate_imm8_su
    // Predicate_imm16_su
    // Predicate_imm32_su
    // Predicate_i64relocImmSExt8_su
    // Predicate_i64relocImmSExt32_su
    SDNode *N = Node;

    return !shouldAvoidImmediateInstFormsForSize(N);

  }
  case 17: { 
    // Predicate_srl_su
    // Predicate_trunc_su
    // Predicate_and_su
    SDNode *N = Node;

  return N->hasOneUse();

  }
  case 18: { 
    // Predicate_alignedstore
    SDNode *N = Node;

  auto *St = cast<StoreSDNode>(N);
  return St->getAlignment() >= St->getMemoryVT().getStoreSize();

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

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

  }
  case 21: { 
    // Predicate_truncstoref64
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getMemoryVT() != MVT::f64) return false;
return true;

  }
  case 22: { 
    // Predicate_truncstorevi8
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getMemoryVT().getScalarType() != MVT::i8) return false;
return true;

  }
  case 23: { 
    // Predicate_truncstorevi16
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getMemoryVT().getScalarType() != MVT::i16) return false;
return true;

  }
  case 24: { 
    // Predicate_truncstorevi32
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getMemoryVT().getScalarType() != MVT::i32) return false;
return true;

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

  return ISD::isBuildVectorAllZeros(N);

  }
  case 26: { 
    // Predicate_X86mstore
    // Predicate_masked_store_unaligned
    SDNode *N = Node;

  return (!cast<MaskedStoreSDNode>(N)->isTruncatingStore()) &&
         (!cast<MaskedStoreSDNode>(N)->isCompressingStore());

  }
  case 27: { 
    // Predicate_masked_store_aligned512
    SDNode *N = Node;

  return cast<MaskedStoreSDNode>(N)->getAlignment() >= 64;

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

    return cast<MaskedStoreSDNode>(N)->isCompressingStore();

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

    return cast<MaskedStoreSDNode>(N)->isTruncatingStore();

  }
  case 30: { 
    // Predicate_masked_truncstorevi8
    SDNode *N = Node;

  return cast<MaskedStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i8;

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

  return cast<MaskedStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i16;

  }
  case 32: { 
    // Predicate_masked_store_aligned256
    SDNode *N = Node;

  return cast<MaskedStoreSDNode>(N)->getAlignment() >= 32;

  }
  case 33: { 
    // Predicate_masked_truncstorevi32
    SDNode *N = Node;

  return cast<MaskedStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i32;

  }
  case 34: { 
    // Predicate_masked_store_aligned128
    SDNode *N = Node;

  return cast<MaskedStoreSDNode>(N)->getAlignment() >= 16;

  }
  case 35: { 
    // Predicate_atomic_load_32
    // Predicate_atomic_store_32
    // Predicate_atomic_swap_32
    // Predicate_atomic_load_add_32
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i32) return false;
return true;

  }
  case 36: { 
    // Predicate_atomic_load_64
    // Predicate_atomic_store_64
    // Predicate_atomic_swap_64
    // Predicate_atomic_load_add_64
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i64) return false;
return true;

  }
  case 37: { 
    // Predicate_atomic_load_8
    // Predicate_atomic_store_8
    // Predicate_atomic_swap_8
    // Predicate_atomic_load_add_8
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i8) return false;
return true;

  }
  case 38: { 
    // Predicate_atomic_load_16
    // Predicate_atomic_store_16
    // Predicate_atomic_swap_16
    // Predicate_atomic_load_add_16
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i16) return false;
return true;

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

  return Imm >= 0xff00 && Imm <= 0xffff;

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

  return !useNonTemporalLoad(cast<LoadSDNode>(N));

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

  return isMask_64(Imm) && !isUInt<32>(Imm);

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

  return !isUInt<32>(Imm) && !isInt<32>(Imm) && isPowerOf2_64(~Imm);

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

  return isUInt<32>(Imm) && isInt<8>(static_cast<int32_t>(Imm));

  }
  case 44: { 
    // Predicate_i64immZExt32
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return isUInt<32>(Imm); 
  }
  case 45: { 
    // Predicate_CommutableCMPCC
    auto *N = cast<ConstantSDNode>(Node);

  uint64_t Imm = N->getZExtValue() & 0x7;
  return (Imm == 0x00 || Imm == 0x03 || Imm == 0x04 || Imm == 0x07);

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

  ISD::CondCode CC = cast<CondCodeSDNode>(N->getOperand(2))->get();
  return !ISD::isUnsignedIntSetCC(CC);

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

  ISD::CondCode CC = cast<CondCodeSDNode>(N->getOperand(2))->get();
  return ISD::isUnsignedIntSetCC(CC);

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

  auto *Ld = cast<LoadSDNode>(N);
  return Subtarget->hasSSEUnalignedMem() ||
         Ld->getAlignment() >= Ld->getMemoryVT().getStoreSize();

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

  return ISD::isBuildVectorAllOnes(N);

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

  return N->getSExtValue() == 3 || !Subtarget->hasPREFETCHWT1();

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

  return Imm < 3;

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

  // X86tcret args: (*chain, ptr, imm, regs..., glue)
  unsigned NumRegs = 0;
  for (unsigned i = 3, e = N->getNumOperands(); i != e; ++i)
    if (isa<RegisterSDNode>(N->getOperand(i)) && ++NumRegs > 6)
      return false;
  return true;

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

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

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

  return isSExtRelocImm<8>(N);

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

  return isSExtRelocImm<32>(N);

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

  if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N->getOperand(0))) {
    KnownBits Known;
    CurDAG->computeKnownBits(N->getOperand(1), Known);

    // If all possible ones in the RHS are set in the LHS then there can't be
    // a borrow and we can use xor.
    return (~Known.Zero).isSubsetOf(CN->getAPIntValue());
  }

  return false;

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

  if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N->getOperand(1)))
    return CurDAG->MaskedValueIsZero(N->getOperand(0), CN->getAPIntValue());

  KnownBits Known0;
  CurDAG->computeKnownBits(N->getOperand(0), Known0, 0);
  KnownBits Known1;
  CurDAG->computeKnownBits(N->getOperand(1), Known1, 0);
  return (~Known0.Zero & ~Known1.Zero) == 0;

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

  return !isInt<32>(Imm) && isPowerOf2_64(Imm);

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

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

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

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

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

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

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

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

  LoadSDNode *Ld = cast<LoadSDNode>(N);
  return Ld->getAlignment() >= Ld->getMemoryVT().getStoreSize();

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

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

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

  auto *Ld = cast<LoadSDNode>(N);
  return Ld->getAlignment() >= Ld->getMemoryVT().getStoreSize() &&
         !useNonTemporalLoad(cast<LoadSDNode>(N));

  }
  case 70: { 
    // Predicate_sextloadvi8
    // Predicate_zextloadvi8
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getMemoryVT().getScalarType() != MVT::i8) return false;
return true;

  }
  case 71: { 
    // Predicate_sextloadvi16
    // Predicate_zextloadvi16
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getMemoryVT().getScalarType() != MVT::i16) return false;
return true;

  }
  case 72: { 
    // Predicate_sextloadvi32
    // Predicate_zextloadvi32
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getMemoryVT().getScalarType() != MVT::i32) return false;
return true;

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

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

  return cast<TruncSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i8;

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

  return cast<TruncSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i16;

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

  return cast<TruncSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i32;

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

  return cast<MaskedTruncSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i8;

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

  return cast<MaskedTruncSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i16;

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

  return cast<MaskedTruncSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i32;

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

  return cast<TruncUSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i8;

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

  return cast<TruncUSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i16;

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

  return cast<TruncUSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i32;

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

  return cast<MaskedTruncUSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i8;

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

  return cast<MaskedTruncUSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i16;

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

  return cast<MaskedTruncUSStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i32;

  }
  case 86: { 
    // Predicate_X86lock_inc_8
    // Predicate_X86lock_dec_8
    SDNode *N = Node;

    return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 87: { 
    // Predicate_X86lock_inc_16
    // Predicate_X86lock_dec_16
    SDNode *N = Node;

    return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 88: { 
    // Predicate_X86lock_inc_32
    // Predicate_X86lock_dec_32
    SDNode *N = Node;

    return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 89: { 
    // Predicate_X86lock_inc_64
    // Predicate_X86lock_dec_64
    SDNode *N = Node;

    return cast<MemIntrinsicSDNode>(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() != ISD::AssertSext &&
         N->getOpcode() != ISD::AssertZext;

  }
  case 91: { 
    // Predicate_memopf128
    SDNode *N = Node;

  LoadSDNode *Ld = cast<LoadSDNode>(N);
  return Subtarget->hasSSEUnalignedMem() ||
         Ld->getAlignment() >= Ld->getMemoryVT().getStoreSize();

  }
  case 92: { 
    // Predicate_fp32imm0
    // Predicate_fp64imm0
    auto *N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(+0.0);

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

  return Imm.isExactlyValue(+0.0);

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

  return Imm.isExactlyValue(+1.0);

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

  return Imm.isExactlyValue(-0.0);

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

  return Imm.isExactlyValue(-1.0);

  }
  case 97: { 
    // Predicate_maskzeroupperv1i1
    // Predicate_maskzeroupperv8i1
    // Predicate_maskzeroupperv16i1
    // Predicate_maskzeroupperv32i1
    // Predicate_maskzeroupperv2i1
    // Predicate_maskzeroupperv4i1
    SDNode *N = Node;

    return isMaskZeroExtended(N);
  
  }
  case 98: { 
    // Predicate_X86mload
    // Predicate_masked_load_unaligned
    SDNode *N = Node;

  return !cast<MaskedLoadSDNode>(N)->isExpandingLoad() &&
    cast<MaskedLoadSDNode>(N)->getExtensionType() == ISD::NON_EXTLOAD;

  }
  case 99: { 
    // Predicate_masked_load_aligned512
    SDNode *N = Node;

  return cast<MaskedLoadSDNode>(N)->getAlignment() >= 64;

  }
  case 100: { 
    // Predicate_X86mExpandingLoad
    SDNode *N = Node;

  return cast<MaskedLoadSDNode>(N)->isExpandingLoad();

  }
  case 101: { 
    // Predicate_masked_load_aligned256
    SDNode *N = Node;

  return cast<MaskedLoadSDNode>(N)->getAlignment() >= 32;

  }
  case 102: { 
    // Predicate_masked_load_aligned128
    SDNode *N = Node;

  return cast<MaskedLoadSDNode>(N)->getAlignment() >= 16;

  }
  case 103: { 
    // Predicate_UnpckhUnary
    SDNode *N = Node;

  return N->getOperand(0) == N->getOperand(1);

  }
  case 104: { 
    // Predicate_mgatherv4i32
    SDNode *N = Node;

  X86MaskedGatherSDNode *Mgt = cast<X86MaskedGatherSDNode>(N);
  return Mgt->getIndex().getValueType() == MVT::v4i32;

  }
  case 105: { 
    // Predicate_mgatherv2i64
    SDNode *N = Node;

  X86MaskedGatherSDNode *Mgt = cast<X86MaskedGatherSDNode>(N);
  return Mgt->getIndex().getValueType() == MVT::v2i64;

  }
  case 106: { 
    // Predicate_mgatherv4i64
    SDNode *N = Node;

  X86MaskedGatherSDNode *Mgt = cast<X86MaskedGatherSDNode>(N);
  return Mgt->getIndex().getValueType() == MVT::v4i64;

  }
  case 107: { 
    // Predicate_mgatherv8i32
    SDNode *N = Node;

  X86MaskedGatherSDNode *Mgt = cast<X86MaskedGatherSDNode>(N);
  return Mgt->getIndex().getValueType() == MVT::v8i32;

  }
  case 108: { 
    // Predicate_mgatherv8i64
    SDNode *N = Node;

  X86MaskedGatherSDNode *Mgt = cast<X86MaskedGatherSDNode>(N);
  return Mgt->getIndex().getValueType() == MVT::v8i64;

  }
  case 109: { 
    // Predicate_mgatherv16i32
    SDNode *N = Node;

  X86MaskedGatherSDNode *Mgt = cast<X86MaskedGatherSDNode>(N);
  return Mgt->getIndex().getValueType() == MVT::v16i32;

  }
  case 110: { 
    // Predicate_mscatterv8i32
    SDNode *N = Node;

  X86MaskedScatterSDNode *Sc = cast<X86MaskedScatterSDNode>(N);
  return Sc->getIndex().getValueType() == MVT::v8i32;

  }
  case 111: { 
    // Predicate_mscatterv8i64
    SDNode *N = Node;

  X86MaskedScatterSDNode *Sc = cast<X86MaskedScatterSDNode>(N);
  return Sc->getIndex().getValueType() == MVT::v8i64;

  }
  case 112: { 
    // Predicate_mscatterv4i32
    SDNode *N = Node;

  X86MaskedScatterSDNode *Sc = cast<X86MaskedScatterSDNode>(N);
  return Sc->getIndex().getValueType() == MVT::v4i32;

  }
  case 113: { 
    // Predicate_mscatterv4i64
    SDNode *N = Node;

  X86MaskedScatterSDNode *Sc = cast<X86MaskedScatterSDNode>(N);
  return Sc->getIndex().getValueType() == MVT::v4i64;

  }
  case 114: { 
    // Predicate_mscatterv2i64
    SDNode *N = Node;

  X86MaskedScatterSDNode *Sc = cast<X86MaskedScatterSDNode>(N);
  return Sc->getIndex().getValueType() == MVT::v2i64;

  }
  case 115: { 
    // Predicate_mscatterv16i32
    SDNode *N = Node;

  X86MaskedScatterSDNode *Sc = cast<X86MaskedScatterSDNode>(N);
  return Sc->getIndex().getValueType() == MVT::v16i32;

  }
  }
}
#endif // GET_DAGISEL_BODY

#ifdef GET_DAGISEL_DECL
bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
      SDValue N, unsigned PatternNo,
      SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result) override;
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
      SDValue N, unsigned PatternNo,
      SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result)
#if DAGISEL_INLINE
  override
#endif
{
  unsigned NextRes = Result.size();
  switch (PatternNo) {
  default: llvm_unreachable("Invalid pattern # in table?");
  case 0:
    Result.resize(NextRes+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+1);
  return selectRelocImm(N, Result[NextRes+0].first);
  case 2:
    Result.resize(NextRes+6);
  return selectScalarSSELoad(Root, Parent, 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+6);
  return selectScalarSSELoad(Root, Parent, 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 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 selectLEA64_32Addr(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 selectLEAAddr(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first, Result[NextRes+4].first);
  case 7:
    Result.resize(NextRes+1);
  return selectMOV64Imm32(N, Result[NextRes+0].first);
  case 8:
    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 9:
    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 10:
    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 11:
    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 12:
    Result.resize(NextRes+5);
  return selectVectorAddr(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first, Result[NextRes+4].first);
  }
}
#endif // GET_DAGISEL_BODY

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

  return getExtractVEXTRACTImmediate(N, 128, SDLoc(N));

  }
  case 1: {  // EXTRACT_get_vextract256_imm
    SDNode *N = V.getNode();

  return getExtractVEXTRACTImmediate(N, 256, SDLoc(N));

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

  unsigned Length = countTrailingOnes(N->getZExtValue());
  return getI32Imm(Length << 8, SDLoc(N));

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

  // Count the trailing ones in the immediate.
  return getI8Imm(countTrailingOnes(N->getZExtValue()), SDLoc(N));

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

  // Transformation function: Find the lowest 0.
  return getI64Imm((uint8_t)N->getAPIntValue().countTrailingOnes(), SDLoc(N));

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

  // Transformation function: get the low 8 bits.
  return getI8Imm((uint8_t)N->getZExtValue(), SDLoc(N));

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

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

  }
  case 7: {  // X86pcmpm_imm
    SDNode *N = V.getNode();

  ISD::CondCode CC = cast<CondCodeSDNode>(N->getOperand(2))->get();
  uint8_t SSECC = X86::getVPCMPImmForCond(CC);
  return getI8Imm(SSECC, SDLoc(N));

  }
  case 8: {  // X86pcmpm_imm_commute
    SDNode *N = V.getNode();

  ISD::CondCode CC = cast<CondCodeSDNode>(N->getOperand(2))->get();
  uint8_t SSECC = X86::getVPCMPImmForCond(CC);
  SSECC = X86::getSwappedVPCMPImm(SSECC);
  return getI8Imm(SSECC, SDLoc(N));

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

  uint8_t Imm = N->getZExtValue();
  return getI8Imm((uint8_t)((Imm >> 4) | (Imm << 4)), SDLoc(N));

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

  // Convert a ROTL shamt to a ROTR shamt on 32-bit integer.
  return getI8Imm(32 - N->getZExtValue(), SDLoc(N));

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

  // Convert a ROTL shamt to a ROTR shamt on 64-bit integer.
  return getI8Imm(64 - N->getZExtValue(), SDLoc(N));

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

  // Transformation function: Find the lowest 1.
  return getI64Imm((uint8_t)N->getAPIntValue().countTrailingZeros(), SDLoc(N));

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

  return getInsertVINSERTImmediate(N, 128, SDLoc(N));

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

  return getI8Imm(N->getZExtValue() * 2, SDLoc(N));

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

  // Convert a VPTERNLOG immediate by swapping operand 0 and operand 2.
  uint8_t Imm = N->getZExtValue();
  // Swap bits 1/4 and 3/6.
  uint8_t NewImm = Imm & 0xa5;
  if (Imm & 0x02) NewImm |= 0x10;
  if (Imm & 0x10) NewImm |= 0x02;
  if (Imm & 0x08) NewImm |= 0x40;
  if (Imm & 0x40) NewImm |= 0x08;
  return getI8Imm(NewImm, SDLoc(N));

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

  // Convert a VPTERNLOG immediate by swapping operand 1 and operand 2.
  uint8_t Imm = N->getZExtValue();
  // Swap bits 1/2 and 5/6.
  uint8_t NewImm = Imm & 0x99;
  if (Imm & 0x02) NewImm |= 0x04;
  if (Imm & 0x04) NewImm |= 0x02;
  if (Imm & 0x20) NewImm |= 0x40;
  if (Imm & 0x40) NewImm |= 0x20;
  return getI8Imm(NewImm, SDLoc(N));

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

  // Convert a VPTERNLOG immediate by swapping operand 1 and operand 2.
  uint8_t Imm = N->getZExtValue();
  // Swap bits 2/4 and 3/5.
  uint8_t NewImm = Imm & 0xc3;
  if (Imm & 0x04) NewImm |= 0x10;
  if (Imm & 0x10) NewImm |= 0x04;
  if (Imm & 0x08) NewImm |= 0x20;
  if (Imm & 0x20) NewImm |= 0x08;
  return getI8Imm(NewImm, SDLoc(N));

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

  // Convert a VPTERNLOG immediate by moving operand 1 to the end.
  uint8_t Imm = N->getZExtValue();
  // Move bits 1->2, 2->4, 3->6, 4->1, 5->3, 6->5
  uint8_t NewImm = Imm & 0x81;
  if (Imm & 0x02) NewImm |= 0x04;
  if (Imm & 0x04) NewImm |= 0x10;
  if (Imm & 0x08) NewImm |= 0x40;
  if (Imm & 0x10) NewImm |= 0x02;
  if (Imm & 0x20) NewImm |= 0x08;
  if (Imm & 0x40) NewImm |= 0x20;
  return getI8Imm(NewImm, SDLoc(N));

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

  // Convert a VPTERNLOG immediate by moving operand 2 to the beginning.
  uint8_t Imm = N->getZExtValue();
  // Move bits 1->4, 2->1, 3->5, 4->2, 5->6, 6->3
  uint8_t NewImm = Imm & 0x81;
  if (Imm & 0x02) NewImm |= 0x10;
  if (Imm & 0x04) NewImm |= 0x02;
  if (Imm & 0x08) NewImm |= 0x20;
  if (Imm & 0x10) NewImm |= 0x04;
  if (Imm & 0x20) NewImm |= 0x40;
  if (Imm & 0x40) NewImm |= 0x08;
  return getI8Imm(NewImm, SDLoc(N));

  }
  case 20: {  // INSERT_get_vinsert256_imm
    SDNode *N = V.getNode();

  return getInsertVINSERTImmediate(N, 256, SDLoc(N));

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

  return getI8Imm(N->getZExtValue() * 4, SDLoc(N));

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

  return getI8Imm(N->getZExtValue() * 8, SDLoc(N));

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

  uint8_t Imm = N->getZExtValue() & 0x7;
  Imm = X86::getSwappedVPCOMImm(Imm);
  return getI8Imm(Imm, SDLoc(N));

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

  uint8_t Imm = N->getZExtValue() & 0xff;
  return getI8Imm(Imm ^ 0xff, SDLoc(N));

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

  uint8_t Imm = N->getZExtValue() & 0x0f;
  return getI8Imm(Imm ^ 0x0f, SDLoc(N));

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

  uint8_t Imm = N->getZExtValue() & 0x03;
  return getI8Imm(Imm ^ 0x03, SDLoc(N));

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

  return getI8Imm(N->getZExtValue() ^ 0x22, SDLoc(N));

  }
  }
}
#endif // GET_DAGISEL_BODY


#ifdef DAGISEL_INLINE
#undef DAGISEL_INLINE
#endif
#ifdef DAGISEL_CLASS_COLONCOLON
#undef DAGISEL_CLASS_COLONCOLON
#endif
#ifdef GET_DAGISEL_DECL
#undef GET_DAGISEL_DECL
#endif
#ifdef GET_DAGISEL_BODY
#undef GET_DAGISEL_BODY
#endif
